[
  {
    "path": ".gitignore",
    "content": "*.pyc\n*.so\n*.npy\n*.txt\n*.bin\n*.html\n*checkpoint.ipynb\n*.swp\n*.crc\n*.jpg\n*.jpeg\n*.pdf\n*.vshistory\n.localhistory\n.vs \n.vscode\n./vscode/*\n.vs/*\nmodel.ckpt*\n/data\n/build\n/dist\n/deepiu.egg-info\n/util/build\n/util/dist\n/util/hasky_utils.egg-info\n/examples/sparse-tensor-classification/model\n/examples/classification/model\n/examples/text-classification/model \n/deepiu/image_caption/inference/flickr/tf-bow-predict\n/scripts/log\n*tmphws4so \n/util/gezi/metrics/tokenizer/tmp*\nutil/gezi/metrics/tokenizer/tmp*\n"
  },
  {
    "path": "README.md",
    "content": "# wenzheng\nDeep learning related projects using tf(eager), pytorch(fastai,allenlp) for contests like aichallenger, kaggle\n# ai challenger 2018 细粒度用户评论情感分类第一名（后厂村静静团队）解决方案  \nwenzheng/project/ai2018/sentiment[https://github.com/chenghuige/wenzheng/tree/master/projects/ai2018/sentiment]   \n# ai challenger 2018 阅读理解解决方案（a榜 21 基于港科大rnet，mreader）\nwenzheng/project/ai2018/reader[https://github.com/chenghuige/wenzheng/tree/master/projects/ai2018/reader]  \n"
  },
  {
    "path": "__init__.py",
    "content": "import wenzheng\nimport third \nimport official \nimport projects\n"
  },
  {
    "path": "examples/fastai/lm/lm.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# http://docs.fast.ai/text.html\\n\",\n    \"from fastai.text import *\\n\",\n    \"import html\\n\",\n    \"from pathlib import Path\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import sklearn\\n\",\n    \"from sklearn import model_selection\\n\",\n    \"import re\\n\",\n    \"from functools import partial\\n\",\n    \"from torch import optim\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"PosixPath('data/imdb_sample')\"\n      ]\n     },\n     \"execution_count\": 2,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"IMDB_PATH = Path('./data/imdb_sample/')\\n\",\n    \"IMDB_PATH\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <th>1</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>Explanation\\\\nWhy the edits made under my usern...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>D'aww! He matches this background colour I'm s...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>Hey man, I'm really not trying to edit war. It...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>\\\"\\\\nMore\\\\nI can't make any real suggestions on ...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>You, sir, are my hero. Any chance you remember...</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   0                                                  1\\n\",\n       \"0  0  Explanation\\\\nWhy the edits made under my usern...\\n\",\n       \"1  0  D'aww! He matches this background colour I'm s...\\n\",\n       \"2  0  Hey man, I'm really not trying to edit war. It...\\n\",\n       \"3  0  \\\"\\\\nMore\\\\nI can't make any real suggestions on ...\\n\",\n       \"4  0  You, sir, are my hero. Any chance you remember...\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df = pd.read_csv(IMDB_PATH/'train.csv', header=None)\\n\",\n    \"df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"('negative', 'positive ')\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"classes = read_classes(IMDB_PATH/'classes.txt')\\n\",\n    \"classes[0], classes[1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#train_ds = TextDataset.from_csv(IMDB_PATH, name='train', classes=classes)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"data_lm = text_data_from_csv(Path(IMDB_PATH), data_func=lm_data)\\n\",\n    \"data_clas = text_data_from_csv(Path(IMDB_PATH), data_func=classifier_data, vocab=data_lm.train_ds.vocab)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#download_wt103_model()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn = RNNLearner.language_model(data_lm, pretrained_fnames=['lstm_wt103', 'itos_wt103'], drop_mult=0.5)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7dc9f9f007984489ba332496538bcdba\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"VBox(children=(HBox(children=(IntProgress(value=0, max=1), HTML(value='0.00% [0/1 00:00<00:00]'))), HTML(value…\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"CUDA error: out of memory\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-9-3ea49add0339>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m()\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mlearn\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfit_one_cycle\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m1e-2\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai/train.py\\u001b[0m in \\u001b[0;36mfit_one_cycle\\u001b[0;34m(learn, cyc_len, max_lr, moms, div_factor, pct_start, wd, **kwargs)\\u001b[0m\\n\\u001b[1;32m     16\\u001b[0m     cbs = [OneCycleScheduler(learn, max_lr, moms=moms, div_factor=div_factor,\\n\\u001b[1;32m     17\\u001b[0m                              pct_start=pct_start, **kwargs)]\\n\\u001b[0;32m---> 18\\u001b[0;31m     \\u001b[0mlearn\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfit\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mcyc_len\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mmax_lr\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwd\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mwd\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mcbs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     19\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     20\\u001b[0m \\u001b[0;32mdef\\u001b[0m \\u001b[0mlr_find\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlearn\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mLearner\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mstart_lr\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mfloat\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m1e-5\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mend_lr\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mfloat\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m10\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mnum_it\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mint\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m100\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mAny\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai/basic_train.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(self, epochs, lr, wd, callbacks)\\u001b[0m\\n\\u001b[1;32m    131\\u001b[0m         \\u001b[0mcallbacks\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m[\\u001b[0m\\u001b[0mcb\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mfor\\u001b[0m \\u001b[0mcb\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mcallback_fns\\u001b[0m\\u001b[0;34m]\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0mlistify\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    132\\u001b[0m         fit(epochs, self.model, self.loss_fn, opt=self.opt, data=self.data, metrics=self.metrics,\\n\\u001b[0;32m--> 133\\u001b[0;31m             callbacks=self.callbacks+callbacks)\\n\\u001b[0m\\u001b[1;32m    134\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    135\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mcreate_opt\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlr\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mFloats\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwd\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0mFloats\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m0.\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m->\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai/basic_train.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(epochs, model, loss_fn, opt, data, callbacks, metrics)\\u001b[0m\\n\\u001b[1;32m     84\\u001b[0m     \\u001b[0;32mexcept\\u001b[0m \\u001b[0mException\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0me\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     85\\u001b[0m         \\u001b[0mexception\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0me\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 86\\u001b[0;31m         \\u001b[0;32mraise\\u001b[0m \\u001b[0me\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     87\\u001b[0m     \\u001b[0;32mfinally\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0mcb_handler\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_train_end\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mexception\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     88\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai/basic_train.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(epochs, model, loss_fn, opt, data, callbacks, metrics)\\u001b[0m\\n\\u001b[1;32m     70\\u001b[0m             \\u001b[0;32mfor\\u001b[0m \\u001b[0mxb\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0myb\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mprogress_bar\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mdata\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtrain_dl\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mparent\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mpbar\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     71\\u001b[0m                 \\u001b[0mxb\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0myb\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mcb_handler\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_batch_begin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mxb\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0myb\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 72\\u001b[0;31m                 \\u001b[0mloss\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0m_\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mloss_batch\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mmodel\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mxb\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0myb\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mloss_fn\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mopt\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcb_handler\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     73\\u001b[0m                 \\u001b[0;32mif\\u001b[0m \\u001b[0mcb_handler\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_batch_end\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mloss\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0;32mbreak\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     74\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai/basic_train.py\\u001b[0m in \\u001b[0;36mloss_batch\\u001b[0;34m(model, xb, yb, loss_fn, opt, cb_handler, metrics)\\u001b[0m\\n\\u001b[1;32m     28\\u001b[0m     \\u001b[0;32mif\\u001b[0m \\u001b[0mopt\\u001b[0m \\u001b[0;32mis\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     29\\u001b[0m         \\u001b[0mloss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mcb_handler\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_backward_begin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mloss\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 30\\u001b[0;31m         \\u001b[0mloss\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mbackward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     31\\u001b[0m         \\u001b[0mcb_handler\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_backward_end\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     32\\u001b[0m         \\u001b[0mopt\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mstep\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/tensor.py\\u001b[0m in \\u001b[0;36mbackward\\u001b[0;34m(self, gradient, retain_graph, create_graph)\\u001b[0m\\n\\u001b[1;32m     94\\u001b[0m                 \\u001b[0mproducts\\u001b[0m\\u001b[0;34m.\\u001b[0m \\u001b[0mDefaults\\u001b[0m \\u001b[0mto\\u001b[0m\\u001b[0;31m \\u001b[0m\\u001b[0;31m`\\u001b[0m\\u001b[0;31m`\\u001b[0m\\u001b[0;32mFalse\\u001b[0m\\u001b[0;31m`\\u001b[0m\\u001b[0;31m`\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     95\\u001b[0m         \\\"\\\"\\\"\\n\\u001b[0;32m---> 96\\u001b[0;31m         \\u001b[0mtorch\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mautograd\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mbackward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mgradient\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mretain_graph\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcreate_graph\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     97\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     98\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mregister_hook\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mhook\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/autograd/__init__.py\\u001b[0m in \\u001b[0;36mbackward\\u001b[0;34m(tensors, grad_tensors, retain_graph, create_graph, grad_variables)\\u001b[0m\\n\\u001b[1;32m     88\\u001b[0m     Variable._execution_engine.run_backward(\\n\\u001b[1;32m     89\\u001b[0m         \\u001b[0mtensors\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mgrad_tensors\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mretain_graph\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcreate_graph\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 90\\u001b[0;31m         allow_unreachable=True)  # allow_unreachable flag\\n\\u001b[0m\\u001b[1;32m     91\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     92\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: CUDA error: out of memory\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"learn.fit_one_cycle(1, 1e-2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/fastai/lm/lm.py",
    "content": "# coding: utf-8\nimport melt\n# http://docs.fast.ai/text.html\nfrom fastai.text import *\nimport html\nfrom pathlib import Path\nimport numpy as np\nimport pandas as pd\nimport sklearn\nfrom sklearn import model_selection\nimport re\nfrom functools import partial\nfrom torch import optim\n\nIMDB_PATH = Path('/home/gezi/data/imdb_sample/')\n\n\ndf = pd.read_csv(IMDB_PATH/'train.csv', header=None)\ndf.head()\n\n\nclasses = read_classes(IMDB_PATH/'classes.txt')\nclasses[0], classes[1]\n\ndata_lm = text_data_from_csv(Path(IMDB_PATH), data_func=lm_data)\ndata_clas = text_data_from_csv(Path(IMDB_PATH), data_func=classifier_data, vocab=data_lm.train_ds.vocab)\n\n#download_wt103_model()\n\n#learn = RNNLearner.language_model(data_lm, pretrained_fnames=['lstm_wt103', 'itos_wt103'], drop_mult=0.5)\n#learn.fit_one_cycle(1, 1e-2)\n\n# default bptt 70 will \nlearn = RNNLearner.language_model(data_lm, bptt=30, pretrained_fnames=['lstm_wt103', 'itos_wt103'])\nlearn.unfreeze()\nlearn.fit(2, slice(1e-4,1e-2))\n\nlearn.save_encoder('enc') \n\nlearn = RNNLearner.classifier(data_clas)\nlearn.load_encoder('enc')\nlearn.fit(3, 1e-3)\n\n"
  },
  {
    "path": "examples/pytorch/data_parallel_tutorial.py",
    "content": "\"\"\"\nOptional: Data Parallelism\n==========================\n**Authors**: `Sung Kim <https://github.com/hunkim>`_ and `Jenny Kang <https://github.com/jennykang>`_\n\nIn this tutorial, we will learn how to use multiple GPUs using ``DataParallel``.\n\nIt's very easy to use GPUs with PyTorch. You can put the model on a GPU:\n\n.. code:: python\n\n    device = torch.device(\"cuda:0\")\n    model.to(device)\n\nThen, you can copy all your tensors to the GPU:\n\n.. code:: python\n\n    mytensor = my_tensor.to(device)\n\nPlease note that just calling ``my_tensor.to(device)`` returns a new copy of\n``my_tensor`` on GPU instead of rewriting ``my_tensor``. You need to assign it to\na new tensor and use that tensor on the GPU.\n\nIt's natural to execute your forward, backward propagations on multiple GPUs.\nHowever, Pytorch will only use one GPU by default. You can easily run your\noperations on multiple GPUs by making your model run parallelly using\n``DataParallel``:\n\n.. code:: python\n\n    model = nn.DataParallel(model)\n\nThat's the core behind this tutorial. We will explore it in more detail below.\n\"\"\"\n\n\n######################################################################\n# Imports and parameters\n# ----------------------\n#\n# Import PyTorch modules and define parameters.\n#\n\nimport torch\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader\n\n# Parameters and DataLoaders\ninput_size = 5\noutput_size = 2\n\nbatch_size = 30\ndata_size = 100\n\n\n######################################################################\n# Device\n#\ndevice = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n\n######################################################################\n# Dummy DataSet\n# -------------\n#\n# Make a dummy (random) dataset. You just need to implement the\n# getitem\n#\n\nclass RandomDataset(Dataset):\n\n    def __init__(self, size, length):\n        self.len = length\n        self.data = torch.randn(length, size)\n\n    def __getitem__(self, index):\n        return self.data[index]\n\n    def __len__(self):\n        return self.len\n\nrand_loader = DataLoader(dataset=RandomDataset(input_size, data_size),\n                         batch_size=batch_size, shuffle=True)\n\n\n######################################################################\n# Simple Model\n# ------------\n#\n# For the demo, our model just gets an input, performs a linear operation, and\n# gives an output. However, you can use ``DataParallel`` on any model (CNN, RNN,\n# Capsule Net etc.)\n#\n# We've placed a print statement inside the model to monitor the size of input\n# and output tensors.\n# Please pay attention to what is printed at batch rank 0.\n#\n\nclass Model(nn.Module):\n    # Our model\n\n    def __init__(self, input_size, output_size):\n        super(Model, self).__init__()\n        self.fc = nn.Linear(input_size, output_size)\n\n    def forward(self, input):\n        print('input\\n', input)\n        output = self.fc(input)\n        print(\"\\tIn Model: input size\", input.size(),\n              \"output size\", output.size())\n\n        return output\n\n\n######################################################################\n# Create Model and DataParallel\n# -----------------------------\n#\n# This is the core part of the tutorial. First, we need to make a model instance\n# and check if we have multiple GPUs. If we have multiple GPUs, we can wrap\n# our model using ``nn.DataParallel``. Then we can put our model on GPUs by\n# ``model.to(device)``\n#\n\nmodel = Model(input_size, output_size)\nif torch.cuda.device_count() > 1:\n  print(\"Let's use\", torch.cuda.device_count(), \"GPUs!\")\n  # dim = 0 [30, xxx] -> [10, ...], [10, ...], [10, ...] on 3 GPUs\n  model = nn.DataParallel(model)\n\nmodel.to(device)\n\n\n######################################################################\n# Run the Model\n# -------------\n#\n# Now we can see the sizes of input and output tensors.\n#\n\nfor data in rand_loader:\n    input = data.to(device)\n    output = model(input)\n    print(\"Outside: input size\", input.size(),\n          \"output_size\", output.size())\n\n\n######################################################################\n# Results\n# -------\n#\n# If you have no GPU or one GPU, when we batch 30 inputs and 30 outputs, the model gets 30 and outputs 30 as\n# expected. But if you have multiple GPUs, then you can get results like this.\n#\n# 2 GPUs\n# ~~~~~~\n#\n# If you have 2, you will see:\n#\n# .. code:: bash\n#\n#     # on 2 GPUs\n#     Let's use 2 GPUs!\n#         In Model: input size torch.Size([15, 5]) output size torch.Size([15, 2])\n#         In Model: input size torch.Size([15, 5]) output size torch.Size([15, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([15, 5]) output size torch.Size([15, 2])\n#         In Model: input size torch.Size([15, 5]) output size torch.Size([15, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([15, 5]) output size torch.Size([15, 2])\n#         In Model: input size torch.Size([15, 5]) output size torch.Size([15, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([5, 5]) output size torch.Size([5, 2])\n#         In Model: input size torch.Size([5, 5]) output size torch.Size([5, 2])\n#     Outside: input size torch.Size([10, 5]) output_size torch.Size([10, 2])\n#\n# 3 GPUs\n# ~~~~~~\n#\n# If you have 3 GPUs, you will see:\n#\n# .. code:: bash\n#\n#     Let's use 3 GPUs!\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#         In Model: input size torch.Size([10, 5]) output size torch.Size([10, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#     Outside: input size torch.Size([10, 5]) output_size torch.Size([10, 2])\n#\n# 8 GPUs\n# ~~~~~~~~~~~~~~\n#\n# If you have 8, you will see:\n#\n# .. code:: bash\n#\n#     Let's use 8 GPUs!\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#     Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#         In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])\n#     Outside: input size torch.Size([10, 5]) output_size torch.Size([10, 2])\n#\n\n\n######################################################################\n# Summary\n# -------\n#\n# DataParallel splits your data automatically and sends job orders to multiple\n# models on several GPUs. After each model finishes their job, DataParallel\n# collects and merges the results before returning it to you.\n#\n# For more information, please check out\n# https://pytorch.org/tutorials/beginner/former\\_torchies/parallelism\\_tutorial.html.\n#\n"
  },
  {
    "path": "examples/pytorch/sentiment/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2018-09-27 19:37:57.468263\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport torch\nimport torch.nn as nn\nimport torch.optim as optim\nimport torch.nn.functional as F\nfrom torch.utils.data import Dataset, DataLoader\nfrom torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence\nfrom torch.autograd import Variable\n\nclass SimpleGRU(nn.Module):\n    def __init__(self, vocab_size, embedding_dim, n_hidden, n_out):\n        super().__init__()\n        self.vocab_size,self.embedding_dim,self.n_hidden,self.n_out = vocab_size, embedding_dim, n_hidden, n_out\n        self.emb = nn.Embedding(self.vocab_size, self.embedding_dim)\n        self.gru = nn.GRU(self.embedding_dim, self.n_hidden)\n        self.out = nn.Linear(self.n_hidden, self.n_out)\n        \n    def forward(self, seq, lengths, gpu=True):\n        print('Sequence shape',seq.shape)\n        print('Lengths',lengths)\n        bs = seq.size(1) # batch size\n        print('batch size', bs)\n        self.h = self.init_hidden(bs, gpu) # initialize hidden state of GRU\n        print('Inititial hidden state shape', self.h.shape)\n        embs = self.emb(seq)\n        embs = pack_padded_sequence(embs, lengths) # unpad\n        gru_out, self.h = self.gru(embs, self.h) # gru returns hidden state of all timesteps as well as hidden state at last timestep\n        gru_out, lengths = pad_packed_sequence(gru_out) # pad the sequence to the max length in the batch\n        print('GRU output(all timesteps)', gru_out.shape)\n        print(gru_out)\n        print('GRU last timestep output')\n        print(gru_out[-1])\n        print('Last hidden state', self.h)\n        # since it is as classification problem, we will grab the last hidden state\n        outp = self.out(self.h[-1]) # self.h[-1] contains hidden state of last timestep\n        return F.log_softmax(outp, dim=-1)\n    \n    def init_hidden(self, batch_size, gpu):\n        if gpu: return Variable(torch.zeros((1,batch_size,self.n_hidden)).cuda())\n        else: return Variable(torch.zeros((1,batch_size,self.n_hidden)))\n"
  },
  {
    "path": "examples/pytorch/sentiment/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-09-27 19:37:53.455830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pathlib\nimport random\nfrom collections import Counter, OrderedDict\nimport numpy as np\nimport pandas as pd\nimport spacy\nfrom tqdm import tqdm, tnrange\n\nfrom model import *\n\nnlp = spacy.blank('en')\n\ndata_root = pathlib.Path('./data')\ndf = pd.read_csv(data_root/'Sentiment Analysis Dataset.csv', error_bad_lines=False)\n\ndf['SentimentText'] = df.SentimentText.apply(lambda x: x.strip())\n\nwords = Counter()\nfor sent in tqdm(df.SentimentText.values, ascii=True):\n    words.update(w.text.lower() for w in nlp(sent))\n\nwords = sorted(words, key=words.get, reverse=True)\nwords = ['_PAD','_UNK'] + words\n\nword2idx = {o:i for i,o in enumerate(words)}\nidx2word = {i:o for i,o in enumerate(words)}\n\ndef indexer(s): \n  return [word2idx[w.text.lower()] for w in nlp(s)]\n\ndf['sentimentidx'] = df.SentimentText.apply(indexer)\ndf['lengths'] = df.sentimentidx.apply(len)\n\n\nclass VectorizeData(Dataset):\n    def __init__(self, df_path, maxlen=10):\n        self.maxlen = maxlen\n        self.df = pd.read_csv(df_path, error_bad_lines=False)\n        self.df['SentimentText'] = self.df.SentimentText.apply(lambda x: x.strip())\n        print('Indexing...')\n        self.df['sentimentidx'] = self.df.SentimentText.apply(indexer)\n        print('Calculating lengths')\n        self.df['lengths'] = self.df.sentimentidx.apply(lambda x: self.maxlen if len(x) > self.maxlen else len(x))\n        print('Padding')\n        self.df['sentimentpadded'] = self.df.sentimentidx.apply(self.pad_data)\n        \n    def __len__(self):\n        return self.df.shape[0]\n    \n    def __getitem__(self, idx):\n        X = self.df.sentimentpadded[idx]\n        lens = self.df.lengths[idx]\n        y = self.df.Sentiment[idx]\n        return X,y,lens\n    \n    def pad_data(self, s):\n        padded = np.zeros((self.maxlen,), dtype=np.int64)\n        if len(s) > self.maxlen: padded[:] = s[:self.maxlen]\n        else: padded[:len(s)] = s\n        return padded\n\n\nds = VectorizeData(data_root/'Sentiment Analysis Dataset.csv')\n\nvocab_size = len(words)\nembedding_dim = 4\nn_hidden = 5\nn_out = 2\n\nm = SimpleGRU(vocab_size, embedding_dim, n_hidden, n_out)\n\ndef sort_batch(X, y, lengths):\n    lengths, indx = lengths.sort(dim=0, descending=True)\n    X = X[indx]\n    y = y[indx]\n    return X.transpose(0,1), y, lengths # transpose (batch x seq) to (seq x batch)\n\ndef fit(model, train_dl, val_dl, loss_fn, opt, epochs=3):\n    num_batch = len(train_dl)\n    for epoch in tnrange(epochs):      \n        y_true_train = list()\n        y_pred_train = list()\n        total_loss_train = 0\n        \n        if val_dl:\n            y_true_val = list()\n            y_pred_val = list()\n            total_loss_val = 0\n        \n        t = tqdm(iter(train_dl), leave=False, total=num_batch, ascii=True)\n        for X,y, lengths in t:\n            t.set_description(f'Epoch {epoch}')\n            X,y,lengths = sort_batch(X,y,lengths)\n            X = Variable(X.cuda())\n            y = Variable(y.cuda())\n            lengths = lengths.numpy()\n            \n            opt.zero_grad()\n            pred = model(X, lengths, gpu=True)\n            loss = loss_fn(pred, y)\n            loss.backward()\n            opt.step()\n            \n            t.set_postfix(loss=loss.data[0])\n            pred_idx = torch.max(pred, dim=1)[1]\n            \n            y_true_train += list(y.cpu().data.numpy())\n            y_pred_train += list(pred_idx.cpu().data.numpy())\n            total_loss_train += loss.data[0]\n            \n        train_acc = accuracy_score(y_true_train, y_pred_train)\n        train_loss = total_loss_train/len(train_dl)\n        print(f' Epoch {epoch}: Train loss: {train_loss} acc: {train_acc}')\n        \n        if val_dl:\n            for X,y,lengths in tqdm(valdl, leave=False, ascii=True):\n                X, y,lengths = sort_batch(X,y,lengths)\n                X = Variable(X.cuda())\n                y = Variable(y.cuda())\n                pred = model(X, lengths.numpy())\n                loss = loss_fn(pred, y)\n                pred_idx = torch.max(pred, 1)[1]\n                y_true_val += list(y.cpu().data.numpy())\n                y_pred_val += list(pred_idx.cpu().data.numpy())\n                total_loss_val += loss.data[0]\n            valacc = accuracy_score(y_true_val, y_pred_val)\n            valloss = total_loss_val/len(valdl)\n            print(f'Val loss: {valloss} acc: {valacc}')\n\n\ntrain_dl = DataLoader(ds, batch_size=512)\nm = SimpleGRU(vocab_size, embedding_dim, n_hidden, n_out).cuda()\nopt = optim.Adam(m.parameters(), 1e-2)\n\nfit(model=m, train_dl=train_dl, val_dl=None, loss_fn=F.nll_loss, opt=opt, epochs=4)\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "examples/shap/explainer_1.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   explainer_1.py\n#        \\author   chenghuige  \n#          \\date   2019-08-02 22:12:47.710013\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport seaborn as sns\nimport keras\nimport shap\n\n#let's load the diamonds dataset\ndf=sns.load_dataset(name='diamonds')\nprint(df.head())\nprint(df.describe())  \n"
  },
  {
    "path": "examples/tf/eager/dynamic_dense.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dynamic_dense.py\n#        \\author   chenghuige  \n#          \\date   2018-09-12 10:53:31.858019\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\ntfe = tf.contrib.eager\n\ntf.enable_eager_execution()\n\nkeras = tf.keras\n\nclass Layer(keras.layers.Layer):\n  def __init__(self):\n    super(Layer, self).__init__()\n    self.abc = self.add_variable(\"abc\", [1, 3], initializer=tf.ones_initializer(dtype=tf.float32))\n\n  def call(self, x):\n    result = x + self.abc\n    self.abc = self.abc * 5\n    return result\n\n\nclass Model(keras.Model):\n  def __init__(self):\n    super(Model, self).__init__()\n\n    #self.abc = self.add_variable(\"abc\", [1, 3], initializer=tf.ones_initializer(dtype=tf.float32))\n    #self.encode = keras.layers.Dense(5, activation=None)\n    \n    self.abc = tfe.Variable(tf.ones([1, 3], dtype=tf.float32), name='abc')\n    #self.abc = self.abc * 5\n    #self.abc = Layer()\n\n    self.inited = False\n\n  def call(self, x):\n    if not self.inited:\n      self.inited = True\n      print(tf.shape(x)[-1])\n      self.fc = keras.layers.Dense(tf.shape(x)[-1], activation=None)\n    print(x)\n    return self.fc(x)\n    #return self.encode(x + self.abc)\n    \n    #result = x + self.abc\n    #self.abc = self.abc * 5\n    #return result\n\n    #return self.abc(x)\n\n\nmodel = Model() \nprint(model(tf.constant([[1., 2., 3.]])))\n#print(model.abc)\n\n#m.save_weights('/home/gezi/tmp/model')\n\ncheckpoint = tf.train.Checkpoint(model=model)\nckpt_dir = '/home/gezi/tmp/model'\n\n# latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\n# checkpoint.restore(latest_checkpoint)\n# print(model([[1., 2., 3.]]))\n\n\ncheckpoint_prefix = os.path.join(ckpt_dir, 'ckpt')\ncheckpoint.save(checkpoint_prefix)\n\n#model.abc = model.abc + 1. \n#checkpoint.save(checkpoint_prefix)\n\n#model.abc -= 1.\n# latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\n# checkpoint.restore(latest_checkpoint)\n\n# print(model([[1., 2., 3.]]))\n\n"
  },
  {
    "path": "examples/tf/eager/rnn_ptb.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Penn Treebank RNN model definition compatible with eager execution.\n\nModel similar to\nhttps://github.com/tensorflow/models/tree/master/tutorials/rnn/ptb\n\nUsage: python ./rnn_ptb.py --data-path=<path_to_dataset>\n\nPenn Treebank (PTB) dataset from:\nhttp://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport os\nimport sys\nimport time\n\nimport numpy as np\nimport tensorflow as tf\n\nfrom tensorflow.contrib.cudnn_rnn.python.layers import cudnn_rnn\nfrom tensorflow.contrib.eager.python import tfe\n\nlayers = tf.keras.layers\n\n\nclass RNN(tf.keras.Model):\n  \"\"\"A static RNN.\n\n  Similar to tf.nn.static_rnn, implemented as a class.\n  \"\"\"\n\n  def __init__(self, hidden_dim, num_layers, keep_ratio):\n    super(RNN, self).__init__()\n    self.keep_ratio = keep_ratio\n    self.cells = tf.contrib.checkpoint.List([\n        tf.nn.rnn_cell.BasicLSTMCell(num_units=hidden_dim)\n        for _ in range(num_layers)\n    ])\n\n  def call(self, input_seq, training):\n    batch_size = int(input_seq.shape[1])\n    for c in self.cells:\n      state = c.zero_state(batch_size, tf.float32)\n      outputs = []\n      input_seq = tf.unstack(input_seq, num=int(input_seq.shape[0]), axis=0)\n      for inp in input_seq:\n        output, state = c(inp, state)\n        outputs.append(output)\n\n      input_seq = tf.stack(outputs, axis=0)\n      if training:\n        input_seq = tf.nn.dropout(input_seq, self.keep_ratio)\n    # Returning a list instead of a single tensor so that the line:\n    # y = self.rnn(y, ...)[0]\n    # in PTBModel.call works for both this RNN and CudnnLSTM (which returns a\n    # tuple (output, output_states).\n    return [input_seq]\n\n\nclass Embedding(layers.Layer):\n  \"\"\"An Embedding layer.\"\"\"\n\n  def __init__(self, vocab_size, embedding_dim, **kwargs):\n    super(Embedding, self).__init__(**kwargs)\n    self.vocab_size = vocab_size\n    self.embedding_dim = embedding_dim\n\n  def build(self, _):\n    self.embedding = self.add_variable(\n        \"embedding_kernel\",\n        shape=[self.vocab_size, self.embedding_dim],\n        dtype=tf.float32,\n        initializer=tf.random_uniform_initializer(-0.1, 0.1),\n        trainable=True)\n\n  def call(self, x):\n    return tf.nn.embedding_lookup(self.embedding, x)\n\n\n# pylint: disable=not-callable\nclass PTBModel(tf.keras.Model):\n  \"\"\"LSTM for word language modeling.\n\n  Model described in:\n  (Zaremba, et. al.) Recurrent Neural Network Regularization\n  http://arxiv.org/abs/1409.2329\n\n  See also:\n  https://github.com/tensorflow/models/tree/master/tutorials/rnn/ptb\n  \"\"\"\n\n  def __init__(self,\n               vocab_size,\n               embedding_dim,\n               hidden_dim,\n               num_layers,\n               dropout_ratio,\n               use_cudnn_rnn=True):\n    super(PTBModel, self).__init__()\n\n    self.keep_ratio = 1 - dropout_ratio\n    self.use_cudnn_rnn = use_cudnn_rnn\n    self.embedding = Embedding(vocab_size, embedding_dim)\n\n    if self.use_cudnn_rnn:\n      self.rnn = cudnn_rnn.CudnnLSTM(\n          num_layers, hidden_dim, dropout=dropout_ratio)\n    else:\n      self.rnn = RNN(hidden_dim, num_layers, self.keep_ratio)\n\n    print('rnn:', self.rnn)\n    self.linear = layers.Dense(\n        vocab_size, kernel_initializer=tf.random_uniform_initializer(-0.1, 0.1))\n    self._output_shape = [-1, embedding_dim]\n\n  def call(self, input_seq, training):\n    \"\"\"Run the forward pass of PTBModel.\n\n    Args:\n      input_seq: [length, batch] shape int64 tensor.\n      training: Is this a training call.\n    Returns:\n      outputs tensors of inference.\n    \"\"\"\n    y = self.embedding(input_seq)\n    if training:\n      y = tf.nn.dropout(y, self.keep_ratio)\n    y = self.rnn(y, training=training)[0]\n    return self.linear(tf.reshape(y, self._output_shape))\n\n\ndef clip_gradients(grads_and_vars, clip_ratio):\n  gradients, variables = zip(*grads_and_vars)\n  clipped, _ = tf.clip_by_global_norm(gradients, clip_ratio)\n  return zip(clipped, variables)\n\n\ndef loss_fn(model, inputs, targets, training):\n  labels = tf.reshape(targets, [-1])\n  outputs = model(inputs, training=training)\n  return tf.reduce_mean(\n      tf.nn.sparse_softmax_cross_entropy_with_logits(\n          labels=labels, logits=outputs))\n\n\ndef _divide_into_batches(data, batch_size):\n  \"\"\"Convert a sequence to a batch of sequences.\"\"\"\n  nbatch = data.shape[0] // batch_size\n  data = data[:nbatch * batch_size]\n  data = data.reshape(batch_size, -1).transpose()\n  return data\n\n\ndef _get_batch(data, i, seq_len):\n  slen = min(seq_len, data.shape[0] - 1 - i)\n  inputs = data[i:i + slen, :]\n  target = data[i + 1:i + 1 + slen, :]\n  return tf.constant(inputs), tf.constant(target)\n\n\ndef evaluate(model, data):\n  \"\"\"evaluate an epoch.\"\"\"\n  total_loss = 0.0\n  total_batches = 0\n  start = time.time()\n  for _, i in enumerate(range(0, data.shape[0] - 1, FLAGS.seq_len)):\n    inp, target = _get_batch(data, i, FLAGS.seq_len)\n    loss = loss_fn(model, inp, target, training=False)\n    total_loss += loss.numpy()\n    total_batches += 1\n  time_in_ms = (time.time() - start) * 1000\n  sys.stderr.write(\"eval loss %.2f (eval took %d ms)\\n\" %\n                   (total_loss / total_batches, time_in_ms))\n  return total_loss\n\n\ndef train(model, optimizer, train_data, sequence_length, clip_ratio):\n  \"\"\"training an epoch.\"\"\"\n\n  def model_loss(inputs, targets):\n    return loss_fn(model, inputs, targets, training=True)\n\n  grads = tfe.implicit_gradients(model_loss)\n\n  total_time = 0\n  for batch, i in enumerate(range(0, train_data.shape[0] - 1, sequence_length)):\n    train_seq, train_target = _get_batch(train_data, i, sequence_length)\n    start = time.time()\n    optimizer.apply_gradients(\n        clip_gradients(grads(train_seq, train_target), clip_ratio))\n    total_time += (time.time() - start)\n    if batch % 10 == 0:\n      time_in_ms = (total_time * 1000) / (batch + 1)\n      sys.stderr.write(\"batch %d: training loss %.2f, avg step time %d ms\\n\" %\n                       (batch, model_loss(train_seq, train_target).numpy(),\n                        time_in_ms))\n\n\nclass Datasets(object):\n  \"\"\"Processed form of the Penn Treebank dataset.\"\"\"\n\n  def __init__(self, path):\n    \"\"\"Load the Penn Treebank dataset.\n\n    Args:\n      path: Path to the data/ directory of the dataset from Tomas Mikolov's\n        webpage - http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz\n    \"\"\"\n\n    self.word2idx = {}  # string -> integer id\n    self.idx2word = []  # integer id -> word string\n    # Files represented as a list of integer ids (as opposed to list of string\n    # words).\n    self.train = self.tokenize(os.path.join(path, \"ptb.train.txt\"))\n    self.valid = self.tokenize(os.path.join(path, \"ptb.valid.txt\"))\n\n  def vocab_size(self):\n    return len(self.idx2word)\n\n  def add(self, word):\n    if word not in self.word2idx:\n      self.idx2word.append(word)\n      self.word2idx[word] = len(self.idx2word) - 1\n\n  def tokenize(self, path):\n    \"\"\"Read text file in path and return a list of integer token ids.\"\"\"\n    tokens = 0\n    with tf.gfile.Open(path, \"r\") as f:\n      for line in f:\n        words = line.split() + [\"<eos>\"]\n        tokens += len(words)\n        for word in words:\n          self.add(word)\n\n    # Tokenize file content\n    with tf.gfile.Open(path, \"r\") as f:\n      ids = np.zeros(tokens).astype(np.int64)\n      token = 0\n      for line in f:\n        words = line.split() + [\"<eos>\"]\n        for word in words:\n          ids[token] = self.word2idx[word]\n          token += 1\n\n    return ids\n\n\ndef small_model(use_cudnn_rnn):\n  \"\"\"Returns a PTBModel with a 'small' configuration.\"\"\"\n  return PTBModel(\n      vocab_size=10000,\n      embedding_dim=200,\n      hidden_dim=200,\n      num_layers=2,\n      dropout_ratio=0.,\n      use_cudnn_rnn=use_cudnn_rnn)\n\n\ndef large_model(use_cudnn_rnn):\n  \"\"\"Returns a PTBModel with a 'large' configuration.\"\"\"\n  return PTBModel(\n      vocab_size=10000,\n      embedding_dim=650,\n      hidden_dim=650,\n      num_layers=2,\n      dropout_ratio=0.5,\n      use_cudnn_rnn=use_cudnn_rnn)\n\n\ndef test_model(use_cudnn_rnn):\n  \"\"\"Returns a tiny PTBModel for unit tests.\"\"\"\n  return PTBModel(\n      vocab_size=100,\n      embedding_dim=20,\n      hidden_dim=20,\n      num_layers=2,\n      dropout_ratio=0.,\n      use_cudnn_rnn=use_cudnn_rnn)\n\n\ndef main(_):\n  tf.enable_eager_execution()\n\n  if not FLAGS.data_path:\n    raise ValueError(\"Must specify --data-path\")\n  corpus = Datasets(FLAGS.data_path)\n\n  train_data = _divide_into_batches(corpus.train, FLAGS.batch_size)\n  eval_data = _divide_into_batches(corpus.valid, 10)\n\n  have_gpu = tfe.num_gpus() > 0\n  use_cudnn_rnn = not FLAGS.no_use_cudnn_rnn and have_gpu\n\n  with tf.device(\"/device:GPU:0\" if have_gpu else None):\n    # Make learning_rate a Variable so it can be included in the checkpoint\n    # and we can resume training with the last saved learning_rate.\n    learning_rate = tfe.Variable(20.0, name=\"learning_rate\")\n    model = PTBModel(corpus.vocab_size(), FLAGS.embedding_dim,\n                     FLAGS.hidden_dim, FLAGS.num_layers, FLAGS.dropout,\n                     use_cudnn_rnn)\n    optimizer = tf.train.GradientDescentOptimizer(learning_rate)\n    checkpoint = tf.train.Checkpoint(\n        learning_rate=learning_rate, model=model,\n        # GradientDescentOptimizer has no state to checkpoint, but noting it\n        # here lets us swap in an optimizer that does.\n        optimizer=optimizer)\n    # Restore existing variables now (learning_rate), and restore new variables\n    # on creation if a checkpoint exists.\n    checkpoint.restore(tf.train.latest_checkpoint(FLAGS.logdir))\n    sys.stderr.write(\"learning_rate=%f\\n\" % learning_rate.numpy())\n\n    best_loss = None\n    for _ in range(FLAGS.epoch):\n      train(model, optimizer, train_data, FLAGS.seq_len, FLAGS.clip)\n      eval_loss = evaluate(model, eval_data)\n      if not best_loss or eval_loss < best_loss:\n        if FLAGS.logdir:\n          checkpoint.save(os.path.join(FLAGS.logdir, \"ckpt\"))\n        best_loss = eval_loss\n      else:\n        learning_rate.assign(learning_rate / 4.0)\n        sys.stderr.write(\"eval_loss did not reduce in this epoch, \"\n                         \"changing learning rate to %f for the next epoch\\n\" %\n                         learning_rate.numpy())\n\n\nif __name__ == \"__main__\":\n  parser = argparse.ArgumentParser()\n  parser.add_argument(\n      \"--data-path\",\n      type=str,\n      default=\"\",\n      help=\"Data directory of the Penn Treebank dataset from \"\n      \"http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz\")\n  parser.add_argument(\n      \"--logdir\", type=str, default=\"\", help=\"Directory for checkpoint.\")\n  parser.add_argument(\"--epoch\", type=int, default=20, help=\"Number of epochs.\")\n  parser.add_argument(\"--batch-size\", type=int, default=20, help=\"Batch size.\")\n  parser.add_argument(\n      \"--seq-len\", type=int, default=35, help=\"Sequence length.\")\n  parser.add_argument(\n      \"--embedding-dim\", type=int, default=200, help=\"Embedding dimension.\")\n  parser.add_argument(\n      \"--hidden-dim\", type=int, default=200, help=\"Hidden layer dimension.\")\n  parser.add_argument(\n      \"--num-layers\", type=int, default=2, help=\"Number of RNN layers.\")\n  parser.add_argument(\n      \"--dropout\", type=float, default=0.2, help=\"Drop out ratio.\")\n  parser.add_argument(\n      \"--clip\", type=float, default=0.25, help=\"Gradient clipping ratio.\")\n  parser.add_argument(\n      \"--no-use-cudnn-rnn\",\n      action=\"store_true\",\n      default=False,\n      help=\"Disable the fast CuDNN RNN (when no gpu)\")\n\n  FLAGS, unparsed = parser.parse_known_args()\n  tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)\n"
  },
  {
    "path": "examples/tf/eager/rnn_ptb.sh",
    "content": "python rnn_ptb.py  --data-path /home/gezi/data/ptb/simple-examples/data\n"
  },
  {
    "path": "jupyter/Untitled.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import torch \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"tensorflow_version: 1.14.0\\n\",\n      \"torch_version: 1.1.0\\n\",\n      \"WARNING: Logging before flag parsing goes to stderr.\\n\",\n      \"W0804 13:14:34.019139 139721067423552 deprecation_wrapper.py:119] From /search/odin/chenghuige/mine/wenzheng/utils/melt/training/bert/optimization.py:72: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\\n\",\n      \"\\n\",\n      \"W0804 13:14:35.313520 139721067423552 lazy_loader.py:50] \\n\",\n      \"The TensorFlow contrib module will not be included in TensorFlow 2.0.\\n\",\n      \"For more information, please see:\\n\",\n      \"  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\\n\",\n      \"  * https://github.com/tensorflow/addons\\n\",\n      \"  * https://github.com/tensorflow/io (for I/O related ops)\\n\",\n      \"If you depend on functionality not listed there, please file an issue.\\n\",\n      \"\\n\",\n      \"W0804 13:14:35.325613 139721067423552 deprecation_wrapper.py:119] From /search/odin/chenghuige/mine/wenzheng/utils/melt/util.py:297: The name tf.train.GradientDescentOptimizer is deprecated. Please use tf.compat.v1.train.GradientDescentOptimizer instead.\\n\",\n      \"\\n\",\n      \"W0804 13:14:35.326145 139721067423552 deprecation_wrapper.py:119] From /search/odin/chenghuige/mine/wenzheng/utils/melt/util.py:299: The name tf.train.AdagradOptimizer is deprecated. Please use tf.compat.v1.train.AdagradOptimizer instead.\\n\",\n      \"\\n\",\n      \"W0804 13:14:35.326648 139721067423552 deprecation_wrapper.py:119] From /search/odin/chenghuige/mine/wenzheng/utils/melt/util.py:314: The name tf.train.FtrlOptimizer is deprecated. Please use tf.compat.v1.train.FtrlOptimizer instead.\\n\",\n      \"\\n\",\n      \"Traceback (most recent call last):\\n\",\n      \"  File \\\"/search/odin/chenghuige/mine/wenzheng/utils/melt/apps/train.py\\\", line 61, in <module>\\n\",\n      \"    import horovod.tensorflow as hvd\\n\",\n      \"ModuleNotFoundError: No module named 'horovod'\\n\",\n      \"\\n\",\n      \"W0804 13:14:35.357142 139721067423552 deprecation_wrapper.py:119] From /search/odin/chenghuige/mine/wenzheng/official/transformer/model/attention_layer.py:24: The name tf.layers.Layer is deprecated. Please use tf.compat.v1.layers.Layer instead.\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"---------no horovod support for mutliple gpu, notice we use mpi4py for some allgather op for eval\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import melt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import tensorflow as tf\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"W0804 13:14:36.755970 139721067423552 deprecation_wrapper.py:119] From /search/odin/chenghuige/mine/wenzheng/utils/melt/util.py:335: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"ename\": \"UnrecognizedFlagError\",\n     \"evalue\": \"Unknown command line flag 'f'\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mUnrecognizedFlagError\\u001b[0m                     Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-4-557e387389a0>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0msess\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mmelt\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mget_session\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;32m/search/odin/chenghuige/mine/wenzheng/utils/melt/util.py\\u001b[0m in \\u001b[0;36mget_session\\u001b[0;34m(log_device_placement, allow_soft_placement, debug, device_count)\\u001b[0m\\n\\u001b[1;32m    350\\u001b[0m     \\u001b[0;31m#config.operation_timeout_in_ms=50000   # terminate on long hangs\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    351\\u001b[0m     \\u001b[0;31m#https://github.com/tensorflow/tensorflow/issues/2292 allow_soft_placement=True\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 352\\u001b[0;31m     \\u001b[0;32mif\\u001b[0m \\u001b[0mFLAGS\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0muse_tpu\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    353\\u001b[0m       \\u001b[0mtpu_cluster_resolver\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    354\\u001b[0m       \\u001b[0;32mif\\u001b[0m \\u001b[0mFLAGS\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0muse_tpu\\u001b[0m \\u001b[0;32mand\\u001b[0m \\u001b[0mFLAGS\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtpu_name\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/home/gezi/env/anaconda3/lib/python3.7/site-packages/tensorflow/python/platform/flags.py\\u001b[0m in \\u001b[0;36m__getattr__\\u001b[0;34m(self, name)\\u001b[0m\\n\\u001b[1;32m     82\\u001b[0m     \\u001b[0;31m# a flag.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     83\\u001b[0m     \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0mwrapped\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mis_parsed\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 84\\u001b[0;31m       \\u001b[0mwrapped\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0m_sys\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0margv\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     85\\u001b[0m     \\u001b[0;32mreturn\\u001b[0m \\u001b[0mwrapped\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m__getattr__\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     86\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/home/gezi/env/anaconda3/lib/python3.7/site-packages/absl/flags/_flagvalues.py\\u001b[0m in \\u001b[0;36m__call__\\u001b[0;34m(self, argv, known_only)\\u001b[0m\\n\\u001b[1;32m    631\\u001b[0m       \\u001b[0msuggestions\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0m_helpers\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mget_flag_suggestions\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mname\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlist\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    632\\u001b[0m       raise _exceptions.UnrecognizedFlagError(\\n\\u001b[0;32m--> 633\\u001b[0;31m           name, value, suggestions=suggestions)\\n\\u001b[0m\\u001b[1;32m    634\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    635\\u001b[0m     \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmark_as_parsed\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;31mUnrecognizedFlagError\\u001b[0m: Unknown command line flag 'f'\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"sess = melt.get_session()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sess = tf.Session()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import gezi\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"\\u001b[0;31mInit signature:\\u001b[0m \\u001b[0mgezi\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mAvgScore\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n       \"\\u001b[0;31mDocstring:\\u001b[0m     \\n\",\n       \"Calcuatlate avg scores, input can be single value or list\\n\",\n       \"Not using numpy, so may be much slower then numpy version, now mainly used for tensorflow testers\\n\",\n       \"\\u001b[0;31mFile:\\u001b[0m           /search/odin/chenghuige/mine/wenzheng/utils/gezi/avg_score.py\\n\",\n       \"\\u001b[0;31mType:\\u001b[0m           type\\n\",\n       \"\\u001b[0;31mSubclasses:\\u001b[0m     \\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"gezi.AvgScore?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.3\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "official/.gitignore",
    "content": "MNIST-data\nlabels.txt\n"
  },
  {
    "path": "official/Dockerfile.cpu",
    "content": "# Docker image for running examples in Tensorflow models.\n# base_image depends on whether we are running on GPUs or non-GPUs\nFROM ubuntu:latest\n\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n    ca-certificates \\\n    build-essential \\\n    git \\\n    python \\\n    python-pip \\\n    python-setuptools\n\nRUN pip install tf-nightly\n\n# Checkout tensorflow/models at HEAD\nRUN git clone https://github.com/tensorflow/models.git /tensorflow_models\n\n"
  },
  {
    "path": "official/Dockerfile.gpu",
    "content": "# Docker image for running examples in Tensorflow models.\n# base_image depends on whether we are running on GPUs or non-GPUs\nFROM nvidia/cuda:9.0-cudnn7-runtime-ubuntu16.04\n\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n    ca-certificates \\\n    build-essential \\\n    git \\\n    python \\\n    python-pip \\\n    python-setuptools\n\nRUN pip install tf-nightly-gpu\n\n# Checkout tensorflow/models at HEAD\nRUN git clone https://github.com/tensorflow/models.git /tensorflow_models\n\n\n"
  },
  {
    "path": "official/README.md",
    "content": "# TensorFlow Official Models\n\nThe TensorFlow official models are a collection of example models that use TensorFlow's high-level APIs. They are intended to be well-maintained, tested, and kept up to date with the latest TensorFlow API. They should also be reasonably optimized for fast performance while still being easy to read.\n\nThe master branch of the models are **in development**, and they target the [nightly binaries](https://github.com/tensorflow/tensorflow#installation) built from the [master branch of TensorFlow](https://github.com/tensorflow/tensorflow/tree/master). We aim to keep them backwards compatible with the latest release when possible (currently TensorFlow 1.5), but we cannot always guarantee compatibility.\n\n**Stable versions** of the official models targeting releases of TensorFlow are available as tagged branches or [downloadable releases](https://github.com/tensorflow/models/releases). Model repository version numbers match the target TensorFlow release, such that [branch r1.4.0](https://github.com/tensorflow/models/tree/r1.4.0) and [release v1.4.0](https://github.com/tensorflow/models/releases/tag/v1.4.0) are compatible with [TensorFlow v1.4.0](https://github.com/tensorflow/tensorflow/releases/tag/v1.4.0).\n\nIf you are on a version of TensorFlow earlier than 1.4, please [update your installation](https://www.tensorflow.org/install/).\n\n---\n\nBelow is a list of the models available.\n\n[boosted_trees](boosted_trees): A Gradient Boosted Trees model to classify higgs boson process from HIGGS Data Set.\n\n[mnist](mnist): A basic model to classify digits from the MNIST dataset.\n\n[resnet](resnet): A deep residual network that can be used to classify both CIFAR-10 and ImageNet's dataset of 1000 classes.\n\n[wide_deep](wide_deep): A model that combines a wide model and deep network to classify census income data.\n\nMore models to come!\n\nIf you would like to make any fixes or improvements to the models, please [submit a pull request](https://github.com/tensorflow/models/compare).\n\n---\n\n## Running the models\n\nThe *Official Models* are made available as a Python module. To run the models and associated scripts, add the top-level ***/models*** folder to the Python path with the command: `export PYTHONPATH=\"$PYTHONPATH:/path/to/models\"`\n\nTo install dependencies pass `-r official/requirements.txt` to pip. (i.e. `pip3 install --user -r official/requirements.txt`)\n\nTo make Official Models easier to use, we are planning to create a pip installable Official Models package. This is being tracked in [#917](https://github.com/tensorflow/models/issues/917).\n"
  },
  {
    "path": "official/__init__.py",
    "content": ""
  },
  {
    "path": "official/benchmark/__init__.py",
    "content": ""
  },
  {
    "path": "official/benchmark/benchmark_uploader.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Library to upload benchmark generated by BenchmarkLogger to remote repo.\n\nThis library require google cloud bigquery lib as dependency, which can be\ninstalled with:\n  > pip install --upgrade google-cloud-bigquery\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport json\n\nfrom google.cloud import bigquery\n\nimport tensorflow as tf\n\n\nclass BigQueryUploader(object):\n  \"\"\"Upload the benchmark and metric info from JSON input to BigQuery. \"\"\"\n\n  def __init__(self, gcp_project=None, credentials=None):\n    \"\"\"Initialized BigQueryUploader with proper setting.\n\n    Args:\n      gcp_project: string, the name of the GCP project that the log will be\n        uploaded to. The default project name will be detected from local\n        environment if no value is provided.\n      credentials: google.auth.credentials. The credential to access the\n        BigQuery service. The default service account credential will be\n        detected from local environment if no value is provided. Please use\n        google.oauth2.service_account.Credentials to load credential from local\n        file for the case that the test is run out side of GCP.\n    \"\"\"\n    self._bq_client = bigquery.Client(\n        project=gcp_project, credentials=credentials)\n\n  def upload_benchmark_run_json(\n      self, dataset_name, table_name, run_id, run_json):\n    \"\"\"Upload benchmark run information to Bigquery.\n\n    Args:\n      dataset_name: string, the name of bigquery dataset where the data will be\n        uploaded.\n      table_name: string, the name of bigquery table under the dataset where\n        the data will be uploaded.\n      run_id: string, a unique ID that will be attached to the data, usually\n        this is a UUID4 format.\n      run_json: dict, the JSON data that contains the benchmark run info.\n    \"\"\"\n    run_json[\"model_id\"] = run_id\n    self._upload_json(dataset_name, table_name, [run_json])\n\n  def upload_benchmark_metric_json(\n      self, dataset_name, table_name, run_id, metric_json_list):\n    \"\"\"Upload metric information to Bigquery.\n\n    Args:\n      dataset_name: string, the name of bigquery dataset where the data will be\n        uploaded.\n      table_name: string, the name of bigquery table under the dataset where\n        the metric data will be uploaded. This is different from the\n        benchmark_run table.\n      run_id: string, a unique ID that will be attached to the data, usually\n        this is a UUID4 format. This should be the same as the benchmark run_id.\n      metric_json_list: list, a list of JSON object that record the metric info.\n    \"\"\"\n    for m in metric_json_list:\n      m[\"run_id\"] = run_id\n    self._upload_json(dataset_name, table_name, metric_json_list)\n\n  def upload_benchmark_run_file(\n      self, dataset_name, table_name, run_id, run_json_file):\n    \"\"\"Upload benchmark run information to Bigquery from input json file.\n\n    Args:\n      dataset_name: string, the name of bigquery dataset where the data will be\n        uploaded.\n      table_name: string, the name of bigquery table under the dataset where\n        the data will be uploaded.\n      run_id: string, a unique ID that will be attached to the data, usually\n        this is a UUID4 format.\n      run_json_file: string, the file path that contains the run JSON data.\n    \"\"\"\n    with tf.gfile.GFile(run_json_file) as f:\n      benchmark_json = json.load(f)\n      self.upload_benchmark_run_json(\n          dataset_name, table_name, run_id, benchmark_json)\n\n  def upload_metric_file(\n      self, dataset_name, table_name, run_id, metric_json_file):\n    \"\"\"Upload metric information to Bigquery from input json file.\n\n    Args:\n      dataset_name: string, the name of bigquery dataset where the data will be\n        uploaded.\n      table_name: string, the name of bigquery table under the dataset where\n        the metric data will be uploaded. This is different from the\n        benchmark_run table.\n      run_id: string, a unique ID that will be attached to the data, usually\n        this is a UUID4 format. This should be the same as the benchmark run_id.\n      metric_json_file: string, the file path that contains the metric JSON\n        data.\n    \"\"\"\n    with tf.gfile.GFile(metric_json_file) as f:\n      metrics = []\n      for line in f:\n        metrics.append(json.loads(line.strip()))\n      self.upload_benchmark_metric_json(\n          dataset_name, table_name, run_id, metrics)\n\n  def _upload_json(self, dataset_name, table_name, json_list):\n    # Find the unique table reference based on dataset and table name, so that\n    # the data can be inserted to it.\n    table_ref = self._bq_client.dataset(dataset_name).table(table_name)\n    errors = self._bq_client.insert_rows_json(table_ref, json_list)\n    if errors:\n      tf.logging.error(\n          \"Failed to upload benchmark info to bigquery: {}\".format(errors))\n"
  },
  {
    "path": "official/benchmark/benchmark_uploader_main.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Binary to upload benchmark generated by BenchmarkLogger to remote repo.\n\nThis library require google cloud bigquery lib as dependency, which can be\ninstalled with:\n  > pip install --upgrade google-cloud-bigquery\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport sys\nimport uuid\n\nfrom absl import app as absl_app\nfrom absl import flags\n\nfrom official.benchmark import benchmark_uploader\nfrom official.utils.flags import core as flags_core\nfrom official.utils.logs import logger\n\ndef main(_):\n  if not flags.FLAGS.benchmark_log_dir:\n    print(\"Usage: benchmark_uploader.py --benchmark_log_dir=/some/dir\")\n    sys.exit(1)\n\n  uploader = benchmark_uploader.BigQueryUploader(\n      gcp_project=flags.FLAGS.gcp_project)\n  run_id = str(uuid.uuid4())\n  run_json_file = os.path.join(\n      flags.FLAGS.benchmark_log_dir, logger.BENCHMARK_RUN_LOG_FILE_NAME)\n  metric_json_file = os.path.join(\n      flags.FLAGS.benchmark_log_dir, logger.METRIC_LOG_FILE_NAME)\n\n  uploader.upload_benchmark_run_file(\n      flags.FLAGS.bigquery_data_set, flags.FLAGS.bigquery_run_table, run_id,\n      run_json_file)\n  uploader.upload_metric_file(\n      flags.FLAGS.bigquery_data_set, flags.FLAGS.bigquery_metric_table, run_id,\n      metric_json_file)\n\n\nif __name__ == \"__main__\":\n  flags_core.define_benchmark()\n  flags.adopt_module_key_flags(flags_core)\n  absl_app.run(main=main)\n"
  },
  {
    "path": "official/benchmark/benchmark_uploader_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Tests for benchmark_uploader.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport json\nimport os\nimport tempfile\nimport unittest\nfrom mock import MagicMock\nfrom mock import patch\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\ntry:\n  from google.cloud import bigquery\n  from official.benchmark import benchmark_uploader\nexcept ImportError:\n  bigquery = None\n  benchmark_uploader = None\n\n\n@unittest.skipIf(bigquery is None, 'Bigquery dependency is not installed.')\nclass BigQueryUploaderTest(tf.test.TestCase):\n\n  @patch.object(bigquery, 'Client')\n  def setUp(self, mock_bigquery):\n    self.mock_client = mock_bigquery.return_value\n    self.mock_dataset = MagicMock(name=\"dataset\")\n    self.mock_table = MagicMock(name=\"table\")\n    self.mock_client.dataset.return_value = self.mock_dataset\n    self.mock_dataset.table.return_value = self.mock_table\n    self.mock_client.insert_rows_json.return_value = []\n\n    self.benchmark_uploader = benchmark_uploader.BigQueryUploader()\n    self.benchmark_uploader._bq_client = self.mock_client\n\n    self.log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    with open(os.path.join(self.log_dir, 'metric.log'), 'a') as f:\n      json.dump({'name': 'accuracy', 'value': 1.0}, f)\n      f.write(\"\\n\")\n      json.dump({'name': 'loss', 'value': 0.5}, f)\n      f.write(\"\\n\")\n    with open(os.path.join(self.log_dir, 'run.log'), 'w') as f:\n      json.dump({'model_name': 'value'}, f)\n\n  def tearDown(self):\n    tf.gfile.DeleteRecursively(self.get_temp_dir())\n\n  def test_upload_benchmark_run_json(self):\n    self.benchmark_uploader.upload_benchmark_run_json(\n        'dataset', 'table', 'run_id', {'model_name': 'value'})\n\n    self.mock_client.insert_rows_json.assert_called_once_with(\n        self.mock_table, [{'model_name': 'value', 'model_id': 'run_id'}])\n\n  def test_upload_benchmark_metric_json(self):\n    metric_json_list = [\n        {'name': 'accuracy', 'value': 1.0},\n        {'name': 'loss', 'value': 0.5}\n    ]\n    expected_params = [\n        {'run_id': 'run_id', 'name': 'accuracy', 'value': 1.0},\n        {'run_id': 'run_id', 'name': 'loss', 'value': 0.5}\n    ]\n    self.benchmark_uploader.upload_benchmark_metric_json(\n        'dataset', 'table', 'run_id', metric_json_list)\n    self.mock_client.insert_rows_json.assert_called_once_with(\n        self.mock_table, expected_params)\n\n  def test_upload_benchmark_run_file(self):\n    self.benchmark_uploader.upload_benchmark_run_file(\n        'dataset', 'table', 'run_id', os.path.join(self.log_dir, 'run.log'))\n\n    self.mock_client.insert_rows_json.assert_called_once_with(\n        self.mock_table, [{'model_name': 'value', 'model_id': 'run_id'}])\n\n  def test_upload_metric_file(self):\n    self.benchmark_uploader.upload_metric_file(\n        'dataset', 'table', 'run_id',\n        os.path.join(self.log_dir, 'metric.log'))\n    expected_params = [\n        {'run_id': 'run_id', 'name': 'accuracy', 'value': 1.0},\n        {'run_id': 'run_id', 'name': 'loss', 'value': 0.5}\n    ]\n    self.mock_client.insert_rows_json.assert_called_once_with(\n        self.mock_table, expected_params)\n\n\nif __name__ == '__main__':\n  tf.test.main()\n"
  },
  {
    "path": "official/benchmark/datastore/schema/benchmark_metric.json",
    "content": "[\n  {\n    \"description\": \"The ID of the benchmark run, where this metric should tie to.\",\n    \"mode\": \"REQUIRED\",\n    \"name\": \"run_id\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The name of the metric, which should be descriptive. E.g. training_loss, accuracy.\",\n    \"mode\": \"REQUIRED\",\n    \"name\": \"name\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The unit of the metric. E.g. MB per sec.\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"unit\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The value of the metric.\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"value\",\n    \"type\": \"FLOAT\"\n  },\n  {\n    \"description\": \"The timestamp when the metric is recorded.\",\n    \"mode\": \"REQUIRED\",\n    \"name\": \"timestamp\",\n    \"type\": \"TIMESTAMP\"\n  },\n  {\n    \"description\": \"The global step when this metric is recorded.\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"global_step\",\n    \"type\": \"INTEGER\"\n  },\n  {\n    \"description\": \"Free format metadata for the extra information about the metric.\",\n    \"mode\": \"REPEATED\",\n    \"name\": \"extras\",\n    \"type\": \"RECORD\",\n    \"fields\": [\n      {\n        \"mode\": \"NULLABLE\",\n        \"name\": \"name\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"mode\": \"NULLABLE\",\n        \"name\": \"value\",\n        \"type\": \"STRING\"\n      }\n    ]\n  }\n]\n"
  },
  {
    "path": "official/benchmark/datastore/schema/benchmark_run.json",
    "content": "[\n  {\n    \"description\": \"The UUID of the run for the benchmark.\",\n    \"mode\": \"REQUIRED\",\n    \"name\": \"model_id\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The status of the run for the benchmark. Eg, running, failed, success\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"status\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The name of the model, E.g ResNet50, LeNet-5 etc.\",\n    \"mode\": \"REQUIRED\",\n    \"name\": \"model_name\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The date when the test of the model is started\",\n    \"mode\": \"REQUIRED\",\n    \"name\": \"run_date\",\n    \"type\": \"TIMESTAMP\"\n  },\n  {\n    \"description\": \"The unique name for a test by the combination of key parameters, eg batch size, num of GPU, etc. It is hardware independent.\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"test_id\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The tensorflow version information.\",\n    \"fields\": [\n      {\n        \"description\": \"Version of the tensorflow. E.g. 1.7.0-rc0\",\n        \"mode\": \"REQUIRED\",\n        \"name\": \"version\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"Git Hash of the tensorflow\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"git_hash\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The channel of the tensorflow binary, eg, nightly, RC, final, custom.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"channel\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"Identify anything special about the build, eg CUDA 10, NCCL, MKL, etc.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"build_type\",\n        \"type\": \"STRING\"\n      }\n    ],\n    \"mode\": \"REQUIRED\",\n    \"name\": \"tensorflow_version\",\n    \"type\": \"RECORD\"\n  },\n  {\n    \"description\": \"The arbitrary attribute of the model.\",\n    \"fields\": [\n      {\n        \"description\": \"The name of the attribute.\",\n        \"mode\": \"REQUIRED\",\n        \"name\": \"name\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The value of the attribute.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"value\",\n        \"type\": \"STRING\"\n      }\n    ],\n    \"mode\": \"REPEATED\",\n    \"name\": \"attribute\",\n    \"type\": \"RECORD\"\n  },\n  {\n    \"description\": \"Environment variables when the benchmark run is executed.\",\n    \"fields\": [\n      {\n        \"description\": \"The name of the variable.\",\n        \"mode\": \"REQUIRED\",\n        \"name\": \"name\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The value of the variable.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"value\",\n        \"type\": \"STRING\"\n      }\n    ],\n    \"mode\": \"REPEATED\",\n    \"name\": \"environment_variable\",\n    \"type\": \"RECORD\"\n  },\n  {\n    \"description\": \"TF Environment variables when the benchmark run is executed.\",\n    \"fields\": [\n      {\n        \"description\": \"The name of the variable.\",\n        \"mode\": \"REQUIRED\",\n        \"name\": \"name\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The value of the variable.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"value\",\n        \"type\": \"STRING\"\n      }\n    ],\n    \"mode\": \"REPEATED\",\n    \"name\": \"tensorflow_environment_variables\",\n    \"type\": \"RECORD\"\n  },\n  {\n    \"description\": \"The list of parameters run with the model. It could contain hyperparameters or others.\",\n    \"fields\": [\n      {\n        \"description\": \"The name of the parameter.\",\n        \"mode\": \"REQUIRED\",\n        \"name\": \"name\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The string value of the parameter.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"string_value\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The bool value of the parameter.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"bool_value\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The int/long value of the parameter.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"long_value\",\n        \"type\": \"INTEGER\"\n      },\n      {\n        \"description\": \"The double/float value of parameter.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"float_value\",\n        \"type\": \"FLOAT\"\n      }\n    ],\n    \"mode\": \"REPEATED\",\n    \"name\": \"run_parameters\",\n    \"type\": \"RECORD\"\n  },\n  {\n    \"description\": \"The dataset that run with the benchmark.\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"dataset\",\n    \"type\": \"RECORD\",\n    \"fields\": [\n      {\n        \"description\": \"The name of the dataset that the model is trained/validated with. E.g ImageNet, mnist.\",\n        \"mode\": \"REQUIRED\",\n        \"name\": \"name\",\n        \"type\": \"STRING\"\n      },\n      {\n        \"description\": \"The arbitrary attribute of the dataset.\",\n        \"fields\": [\n          {\n            \"description\": \"The name of the attribute.\",\n            \"mode\": \"REQUIRED\",\n            \"name\": \"name\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"The value of the attribute.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"value\",\n            \"type\": \"STRING\"\n          }\n        ],\n        \"mode\": \"REPEATED\",\n        \"name\": \"attribute\",\n        \"type\": \"RECORD\"\n      }\n    ]\n  },\n  {\n    \"description\": \"Used to differentiate from AWS, GCE or DGX-1 at a high level\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"test_environment\",\n    \"type\": \"STRING\"\n  },\n  {\n    \"description\": \"The machine configuration of the benchmark run.\",\n    \"mode\": \"NULLABLE\",\n    \"name\": \"machine_config\",\n    \"type\": \"RECORD\",\n    \"fields\": [\n      {\n        \"description\": \"The platform information of the benchmark run.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"platform_info\",\n        \"type\": \"RECORD\",\n        \"fields\": [\n          {\n            \"description\": \"Eg: 64bit.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"bits\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"Eg: ELF.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"linkage\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"Eg: i386.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"machine\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"Eg: 3.13.0-76-generic.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"release\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"Eg: Linux.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"system\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"Eg: #120-Ubuntu SMP Mon Jan 18 15:59:10 UTC 2016.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"version\",\n            \"type\": \"STRING\"\n          }\n        ]\n      },\n      {\n        \"description\": \"The CPU information of the benchmark run.\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"cpu_info\",\n        \"type\": \"RECORD\",\n        \"fields\": [\n          {\n            \"mode\": \"NULLABLE\",\n            \"name\": \"num_cores\",\n            \"type\": \"INTEGER\"\n          },\n          {\n            \"mode\": \"NULLABLE\",\n            \"name\": \"num_cores_allowed\",\n            \"type\": \"INTEGER\"\n          },\n          {\n            \"description\" : \"How fast are those CPUs.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"mhz_per_cpu\",\n            \"type\": \"FLOAT\"\n          },\n          {\n            \"description\" : \"Additional CPU info, Eg: Intel Ivybridge with HyperThreading (24 cores).\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"cpu_info\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\" : \"What kind of cpu scaling is enabled on the host. Eg performance, ondemand, conservative, mixed.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"cpu_governor\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"Cache size of the CPUs.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"cache_size\",\n            \"type\": \"RECORD\",\n            \"fields\": [\n              {\n                \"mode\": \"NULLABLE\",\n                \"name\": \"level\",\n                \"type\": \"STRING\"\n              },\n              {\n                \"mode\": \"NULLABLE\",\n                \"name\": \"size\",\n                \"type\": \"INTEGER\"\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"mode\": \"NULLABLE\",\n        \"name\": \"gpu_info\",\n        \"type\": \"RECORD\",\n        \"fields\": [\n          {\n            \"mode\": \"NULLABLE\",\n            \"name\": \"count\",\n            \"type\": \"INTEGER\"\n          },\n          {\n            \"mode\": \"NULLABLE\",\n            \"name\": \"model\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"mode\": \"NULLABLE\",\n            \"name\": \"cuda_version\",\n            \"type\": \"STRING\"\n          }\n        ]\n      },\n      {\n        \"description\": \"The cloud instance inforation if the benchmark run is executed on cloud\",\n        \"mode\": \"NULLABLE\",\n        \"name\": \"cloud_info\",\n        \"type\": \"RECORD\",\n        \"fields\": [\n          {\n            \"description\": \"The instance type, E.g. n1-standard-4.\",\n            \"mode\": \"NULLABLE\",\n            \"name\": \"instance_type\",\n            \"type\": \"STRING\"\n          },\n          {\n            \"description\": \"The arbitrary attribute of the cloud info.\",\n            \"fields\": [\n              {\n                \"description\": \"The name of the attribute.\",\n                \"mode\": \"REQUIRED\",\n                \"name\": \"name\",\n                \"type\": \"STRING\"\n              },\n              {\n                \"description\": \"The value of the attribute.\",\n                \"mode\": \"NULLABLE\",\n                \"name\": \"value\",\n                \"type\": \"STRING\"\n              }\n            ],\n            \"mode\": \"REPEATED\",\n            \"name\": \"attribute\",\n            \"type\": \"RECORD\"\n          }\n        ]\n      },\n      {\n        \"mode\": \"NULLABLE\",\n        \"name\": \"memory_total\",\n        \"type\": \"INTEGER\"\n      },\n      {\n        \"mode\": \"NULLABLE\",\n        \"name\": \"memory_available\",\n        \"type\": \"STRING\"\n      }\n    ]\n  }\n]\n"
  },
  {
    "path": "official/boosted_trees/README.md",
    "content": "# Classifying Higgs boson processes in the HIGGS Data Set\n## Overview\nThe [HIGGS Data Set](https://archive.ics.uci.edu/ml/datasets/HIGGS) contains 11 million samples with 28 features, and is for the classification problem to distinguish between a signal process which produces Higgs bosons and a background process which does not.\n\nWe use Gradient Boosted Trees algorithm to distinguish the two classes.\n\n---\n\nThe code sample uses the high level `tf.estimator.Estimator` and `tf.data.Dataset`.  These APIs are great for fast iteration and quickly adapting models to your own datasets without major code overhauls.  It allows you to move from single-worker training to distributed training, and makes it easy to export model binaries for prediction.  Here, for further simplicity and faster execution, we use a utility function `tf.contrib.estimator.boosted_trees_classifier_train_in_memory`.  This utility function is especially effective when the input is provided as in-memory data sets like numpy arrays.\n\nAn input function for the `Estimator` typically uses `tf.data.Dataset` API, which can handle various data control like streaming, batching, transform and shuffling. However `boosted_trees_classifier_train_in_memory()` utility function requires that the entire data is provided as a single batch (i.e. without using `batch()` API). Thus in this practice, simply `Dataset.from_tensors()` is used to convert numpy arrays into structured tensors, and `Dataset.zip()` is used to put features and label together.\nFor further references of `Dataset`, [Read more here](https://www.tensorflow.org/programmers_guide/datasets).\n\n## Running the code\nFirst make sure you've [added the models folder to your Python path](/official/#running-the-models); otherwise you may encounter an error like `ImportError: No module named official.boosted_trees`.\n\n### Setup\nThe [HIGGS Data Set](https://archive.ics.uci.edu/ml/datasets/HIGGS) that this sample uses for training is hosted by the [UC Irvine Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/). We have provided a script that downloads and cleans the necessary files.\n\n```\npython data_download.py\n```\n\nThis will download a file and store the processed file under the directory designated by `--data_dir` (defaults to `/tmp/higgs_data/`). To change the target directory, set the `--data_dir` flag. The directory could be network storages that Tensorflow supports (like Google Cloud Storage, `gs://<bucket>/<path>/`).\nThe file downloaded to the local temporary folder is about 2.8 GB, and the processed file is about 0.8 GB, so there should be enough storage to handle them.\n\n\n### Training\n\nThis example uses about 3 GB of RAM during training.\nYou can run the code locally as follows:\n\n```\npython train_higgs.py\n```\n\nThe model is by default saved to `/tmp/higgs_model`, which can be changed using the `--model_dir` flag.\nNote that the model_dir is cleaned up before every time training starts.\n\nModel parameters can be adjusted by flags, like `--n_trees`, `--max_depth`, `--learning_rate` and so on.  Check out the code for details.\n\nThe final accuracy will be around 74% and loss will be around 0.516 over the eval set, when trained with the default parameters.\n\nBy default, the first 1 million examples among 11 millions are used for training, and the last 1 million examples are used for evaluation.\nThe training/evaluation data can be selected as index ranges by flags `--train_start`, `--train_count`, `--eval_start`, `--eval_count`, etc.\n\n### TensorBoard\n\nRun TensorBoard to inspect the details about the graph and training progression.\n\n```\ntensorboard --logdir=/tmp/higgs_model  # set logdir as --model_dir set during training.\n```\n\n## Inference with SavedModel\nYou can export the model into Tensorflow [SavedModel](https://www.tensorflow.org/programmers_guide/saved_model) format by using the argument `--export_dir`:\n\n```\npython train_higgs.py --export_dir /tmp/higgs_boosted_trees_saved_model\n```\n\nAfter the model finishes training, use [`saved_model_cli`](https://www.tensorflow.org/programmers_guide/saved_model#cli_to_inspect_and_execute_savedmodel) to inspect and execute the SavedModel.\n\nTry the following commands to inspect the SavedModel:\n\n**Replace `${TIMESTAMP}` with the folder produced (e.g. 1524249124)**\n```\n# List possible tag_sets. Only one metagraph is saved, so there will be one option.\nsaved_model_cli show --dir /tmp/higgs_boosted_trees_saved_model/${TIMESTAMP}/\n\n# Show SignatureDefs for tag_set=serve. SignatureDefs define the outputs to show.\nsaved_model_cli show --dir /tmp/higgs_boosted_trees_saved_model/${TIMESTAMP}/ \\\n    --tag_set serve --all\n```\n\n### Inference\nLet's use the model to predict the income group of two examples.\nNote that this model exports SavedModel with the custom parsing module that accepts csv lines as features. (Each line is an example with 28 columns; be careful to not add a label column, unlike in the training data.)\n\n```\nsaved_model_cli run --dir /tmp/boosted_trees_higgs_saved_model/${TIMESTAMP}/ \\\n    --tag_set serve --signature_def=\"predict\" \\\n    --input_exprs='inputs=[\"0.869293,-0.635082,0.225690,0.327470,-0.689993,0.754202,-0.248573,-1.092064,0.0,1.374992,-0.653674,0.930349,1.107436,1.138904,-1.578198,-1.046985,0.0,0.657930,-0.010455,-0.045767,3.101961,1.353760,0.979563,0.978076,0.920005,0.721657,0.988751,0.876678\", \"1.595839,-0.607811,0.007075,1.818450,-0.111906,0.847550,-0.566437,1.581239,2.173076,0.755421,0.643110,1.426367,0.0,0.921661,-1.190432,-1.615589,0.0,0.651114,-0.654227,-1.274345,3.101961,0.823761,0.938191,0.971758,0.789176,0.430553,0.961357,0.957818\"]'\n```\n\nThis will print out the predicted classes and class probabilities. Something like:\n\n```\nResult for output key class_ids:\n[[1]\n [0]]\nResult for output key classes:\n[['1']\n ['0']]\nResult for output key logistic:\n[[0.6440273 ]\n [0.10902369]]\nResult for output key logits:\n[[ 0.59288704]\n [-2.1007526 ]]\nResult for output key probabilities:\n[[0.3559727 0.6440273]\n [0.8909763 0.1090237]]\n```\n\nPlease note that \"predict\" signature_def gives out different (more detailed) results than \"classification\" or \"serving_default\".\n\n## Additional Links\n\nIf you are interested in distributed training, take a look at [Distributed TensorFlow](https://www.tensorflow.org/deploy/distributed).\n\nYou can also [train models on Cloud ML Engine](https://cloud.google.com/ml-engine/docs/getting-started-training-prediction), which provides [hyperparameter tuning](https://cloud.google.com/ml-engine/docs/getting-started-training-prediction#hyperparameter_tuning) to maximize your model's results and enables [deploying your model for prediction](https://cloud.google.com/ml-engine/docs/getting-started-training-prediction#deploy_a_model_to_support_prediction).\n"
  },
  {
    "path": "official/boosted_trees/__init__.py",
    "content": ""
  },
  {
    "path": "official/boosted_trees/data_download.py",
    "content": "\"\"\"Downloads the UCI HIGGS Dataset and prepares train data.\n\nThe details on the dataset are in https://archive.ics.uci.edu/ml/datasets/HIGGS\n\nIt takes a while as it needs to download 2.8 GB over the network, process, then\nstore it into the specified location as a compressed numpy file.\n\nUsage:\n$ python data_download.py --data_dir=/tmp/higgs_data\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport gzip\nimport os\nimport tempfile\n\n# pylint: disable=g-bad-import-order\nimport numpy as np\nimport pandas as pd\nfrom six.moves import urllib\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n\nfrom official.utils.flags import core as flags_core\n\nURL_ROOT = \"https://archive.ics.uci.edu/ml/machine-learning-databases/00280\"\nINPUT_FILE = \"HIGGS.csv.gz\"\nNPZ_FILE = \"HIGGS.csv.gz.npz\"  # numpy compressed file to contain \"data\" array.\n\n\ndef _download_higgs_data_and_save_npz(data_dir):\n  \"\"\"Download higgs data and store as a numpy compressed file.\"\"\"\n  input_url = os.path.join(URL_ROOT, INPUT_FILE)\n  np_filename = os.path.join(data_dir, NPZ_FILE)\n  if tf.gfile.Exists(np_filename):\n    raise ValueError(\"data_dir already has the processed data file: {}\".format(\n        np_filename))\n  if not tf.gfile.Exists(data_dir):\n    tf.gfile.MkDir(data_dir)\n  # 2.8 GB to download.\n  try:\n    tf.logging.info(\"Data downloading...\")\n    temp_filename, _ = urllib.request.urlretrieve(input_url)\n    # Reading and parsing 11 million csv lines takes 2~3 minutes.\n    tf.logging.info(\"Data processing... taking multiple minutes...\")\n    with gzip.open(temp_filename, \"rb\") as csv_file:\n      data = pd.read_csv(\n          csv_file,\n          dtype=np.float32,\n          names=[\"c%02d\" % i for i in range(29)]  # label + 28 features.\n      ).as_matrix()\n  finally:\n    tf.gfile.Remove(temp_filename)\n\n  # Writing to temporary location then copy to the data_dir (0.8 GB).\n  f = tempfile.NamedTemporaryFile()\n  np.savez_compressed(f, data=data)\n  tf.gfile.Copy(f.name, np_filename)\n  tf.logging.info(\"Data saved to: {}\".format(np_filename))\n\n\ndef main(unused_argv):\n  if not tf.gfile.Exists(FLAGS.data_dir):\n    tf.gfile.MkDir(FLAGS.data_dir)\n  _download_higgs_data_and_save_npz(FLAGS.data_dir)\n\n\ndef define_data_download_flags():\n  \"\"\"Add flags specifying data download arguments.\"\"\"\n  flags.DEFINE_string(\n      name=\"data_dir\", default=\"/tmp/higgs_data\",\n      help=flags_core.help_wrap(\n          \"Directory to download higgs dataset and store training/eval data.\"))\n\n\nif __name__ == \"__main__\":\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_data_download_flags()\n  FLAGS = flags.FLAGS\n  absl_app.run(main)\n"
  },
  {
    "path": "official/boosted_trees/train_higgs.py",
    "content": "r\"\"\"A script that builds boosted trees over higgs data.\n\nIf you haven't, please run data_download.py beforehand to prepare the data.\n\nFor some more details on this example, please refer to README.md as well.\n\nNote that the model_dir is cleaned up before starting the training.\n\nUsage:\n$ python train_higgs.py --n_trees=100 --max_depth=6 --learning_rate=0.1 \\\n    --model_dir=/tmp/higgs_model\n\nNote that BoostedTreesClassifier is available since Tensorflow 1.8.0.\nSo you need to install recent enough version of Tensorflow to use this example.\n\nThe training data is by default the first million examples out of 11M examples,\nand eval data is by default the last million examples.\nThey are controlled by --train_start, --train_count, --eval_start, --eval_count.\ne.g. to train over the first 10 million examples instead of 1 million:\n$ python train_higgs.py --n_trees=100 --max_depth=6 --learning_rate=0.1 \\\n    --model_dir=/tmp/higgs_model --train_count=10000000\n\nTraining history and metrics can be inspected using tensorboard.\nSet --logdir as the --model_dir set by flag when training\n(or the default /tmp/higgs_model).\n$ tensorboard --logdir=/tmp/higgs_model\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\n# pylint: disable=g-bad-import-order\nimport numpy as np\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.utils.flags import core as flags_core\nfrom official.utils.flags._conventions import help_wrap\nfrom official.utils.logs import logger\n\nNPZ_FILE = \"HIGGS.csv.gz.npz\"  # numpy compressed file containing \"data\" array\n\n\ndef read_higgs_data(data_dir, train_start, train_count, eval_start, eval_count):\n  \"\"\"Reads higgs data from csv and returns train and eval data.\n\n  Args:\n    data_dir: A string, the directory of higgs dataset.\n    train_start: An integer, the start index of train examples within the data.\n    train_count: An integer, the number of train examples within the data.\n    eval_start: An integer, the start index of eval examples within the data.\n    eval_count: An integer, the number of eval examples within the data.\n\n  Returns:\n    Numpy array of train data and eval data.\n  \"\"\"\n  npz_filename = os.path.join(data_dir, NPZ_FILE)\n  try:\n    # gfile allows numpy to read data from network data sources as well.\n    with tf.gfile.Open(npz_filename, \"rb\") as npz_file:\n      with np.load(npz_file) as npz:\n        data = npz[\"data\"]\n  except tf.errors.NotFoundError as e:\n    raise RuntimeError(\n        \"Error loading data; use data_download.py to prepare the data.\\n{}: {}\"\n        .format(type(e).__name__, e))\n  return (data[train_start:train_start+train_count],\n          data[eval_start:eval_start+eval_count])\n\n\n# This showcases how to make input_fn when the input data is available in the\n# form of numpy arrays.\ndef make_inputs_from_np_arrays(features_np, label_np):\n  \"\"\"Makes and returns input_fn and feature_columns from numpy arrays.\n\n  The generated input_fn will return tf.data.Dataset of feature dictionary and a\n  label, and feature_columns will consist of the list of\n  tf.feature_column.BucketizedColumn.\n\n  Note, for in-memory training, tf.data.Dataset should contain the whole data\n  as a single tensor. Don't use batch.\n\n  Args:\n    features_np: A numpy ndarray (shape=[batch_size, num_features]) for\n        float32 features.\n    label_np: A numpy ndarray (shape=[batch_size, 1]) for labels.\n\n  Returns:\n    input_fn: A function returning a Dataset of feature dict and label.\n    feature_names: A list of feature names.\n    feature_column: A list of tf.feature_column.BucketizedColumn.\n  \"\"\"\n  num_features = features_np.shape[1]\n  features_np_list = np.split(features_np, num_features, axis=1)\n  # 1-based feature names.\n  feature_names = [\"feature_%02d\" % (i + 1) for i in range(num_features)]\n\n  # Create source feature_columns and bucketized_columns.\n  def get_bucket_boundaries(feature):\n    \"\"\"Returns bucket boundaries for feature by percentiles.\"\"\"\n    return np.unique(np.percentile(feature, range(0, 100))).tolist()\n  source_columns = [\n      tf.feature_column.numeric_column(\n          feature_name, dtype=tf.float32,\n          # Although higgs data have no missing values, in general, default\n          # could be set as 0 or some reasonable value for missing values.\n          default_value=0.0)\n      for feature_name in feature_names\n  ]\n  bucketized_columns = [\n      tf.feature_column.bucketized_column(\n          source_columns[i],\n          boundaries=get_bucket_boundaries(features_np_list[i]))\n      for i in range(num_features)\n  ]\n\n  # Make an input_fn that extracts source features.\n  def input_fn():\n    \"\"\"Returns features as a dictionary of numpy arrays, and a label.\"\"\"\n    features = {\n        feature_name: tf.constant(features_np_list[i])\n        for i, feature_name in enumerate(feature_names)\n    }\n    return tf.data.Dataset.zip((tf.data.Dataset.from_tensors(features),\n                                tf.data.Dataset.from_tensors(label_np),))\n\n  return input_fn, feature_names, bucketized_columns\n\n\ndef make_eval_inputs_from_np_arrays(features_np, label_np):\n  \"\"\"Makes eval input as streaming batches.\"\"\"\n  num_features = features_np.shape[1]\n  features_np_list = np.split(features_np, num_features, axis=1)\n  # 1-based feature names.\n  feature_names = [\"feature_%02d\" % (i + 1) for i in range(num_features)]\n\n  def input_fn():\n    features = {\n        feature_name: tf.constant(features_np_list[i])\n        for i, feature_name in enumerate(feature_names)\n    }\n    return tf.data.Dataset.zip((\n        tf.data.Dataset.from_tensor_slices(features),\n        tf.data.Dataset.from_tensor_slices(label_np),)).batch(1000)\n\n  return input_fn\n\n\ndef _make_csv_serving_input_receiver_fn(column_names, column_defaults):\n  \"\"\"Returns serving_input_receiver_fn for csv.\n\n  The input arguments are relevant to `tf.decode_csv()`.\n\n  Args:\n    column_names: a list of column names in the order within input csv.\n    column_defaults: a list of default values with the same size of\n        column_names. Each entity must be either a list of one scalar, or an\n        empty list to denote the corresponding column is required.\n        e.g. [[\"\"], [2.5], []] indicates the third column is required while\n            the first column must be string and the second must be float/double.\n\n  Returns:\n    a serving_input_receiver_fn that handles csv for serving.\n  \"\"\"\n  def serving_input_receiver_fn():\n    csv = tf.placeholder(dtype=tf.string, shape=[None], name=\"csv\")\n    features = dict(zip(column_names, tf.decode_csv(csv, column_defaults)))\n    receiver_tensors = {\"inputs\": csv}\n    return tf.estimator.export.ServingInputReceiver(features, receiver_tensors)\n\n  return serving_input_receiver_fn\n\n\ndef train_boosted_trees(flags_obj):\n  \"\"\"Train boosted_trees estimator on HIGGS data.\n\n  Args:\n    flags_obj: An object containing parsed flag values.\n  \"\"\"\n  # Clean up the model directory if present.\n  if tf.gfile.Exists(flags_obj.model_dir):\n    tf.gfile.DeleteRecursively(flags_obj.model_dir)\n  tf.logging.info(\"## Data loading...\")\n  train_data, eval_data = read_higgs_data(\n      flags_obj.data_dir, flags_obj.train_start, flags_obj.train_count,\n      flags_obj.eval_start, flags_obj.eval_count)\n  tf.logging.info(\"## Data loaded; train: {}{}, eval: {}{}\".format(\n      train_data.dtype, train_data.shape, eval_data.dtype, eval_data.shape))\n  # Data consists of one label column followed by 28 feature columns.\n  train_input_fn, feature_names, feature_columns = make_inputs_from_np_arrays(\n      features_np=train_data[:, 1:], label_np=train_data[:, 0:1])\n  eval_input_fn = make_eval_inputs_from_np_arrays(\n      features_np=eval_data[:, 1:], label_np=eval_data[:, 0:1])\n  tf.logging.info(\"## Features prepared. Training starts...\")\n\n  # Create benchmark logger to log info about the training and metric values\n  run_params = {\n      \"train_start\": flags_obj.train_start,\n      \"train_count\": flags_obj.train_count,\n      \"eval_start\": flags_obj.eval_start,\n      \"eval_count\": flags_obj.eval_count,\n      \"n_trees\": flags_obj.n_trees,\n      \"max_depth\": flags_obj.max_depth,\n  }\n  benchmark_logger = logger.config_benchmark_logger(flags_obj)\n  benchmark_logger.log_run_info(\n      model_name=\"boosted_trees\",\n      dataset_name=\"higgs\",\n      run_params=run_params)\n\n  # Though BoostedTreesClassifier is under tf.estimator, faster in-memory\n  # training is yet provided as a contrib library.\n  classifier = tf.contrib.estimator.boosted_trees_classifier_train_in_memory(\n      train_input_fn,\n      feature_columns,\n      model_dir=flags_obj.model_dir or None,\n      n_trees=flags_obj.n_trees,\n      max_depth=flags_obj.max_depth,\n      learning_rate=flags_obj.learning_rate)\n\n  # Evaluation.\n  eval_results = classifier.evaluate(eval_input_fn)\n  # Benchmark the evaluation results\n  benchmark_logger.log_evaluation_result(eval_results)\n\n  # Exporting the savedmodel with csv parsing.\n  if flags_obj.export_dir is not None:\n    classifier.export_savedmodel(\n        flags_obj.export_dir,\n        _make_csv_serving_input_receiver_fn(\n            column_names=feature_names,\n            # columns are all floats.\n            column_defaults=[[0.0]] * len(feature_names)))\n\n\ndef main(_):\n  train_boosted_trees(flags.FLAGS)\n\n\ndef define_train_higgs_flags():\n  \"\"\"Add tree related flags as well as training/eval configuration.\"\"\"\n  flags_core.define_base(stop_threshold=False, batch_size=False, num_gpu=False)\n  flags.adopt_module_key_flags(flags_core)\n\n  flags.DEFINE_integer(\n      name=\"train_start\", default=0,\n      help=help_wrap(\"Start index of train examples within the data.\"))\n  flags.DEFINE_integer(\n      name=\"train_count\", default=1000000,\n      help=help_wrap(\"Number of train examples within the data.\"))\n  flags.DEFINE_integer(\n      name=\"eval_start\", default=10000000,\n      help=help_wrap(\"Start index of eval examples within the data.\"))\n  flags.DEFINE_integer(\n      name=\"eval_count\", default=1000000,\n      help=help_wrap(\"Number of eval examples within the data.\"))\n\n  flags.DEFINE_integer(\n      \"n_trees\", default=100, help=help_wrap(\"Number of trees to build.\"))\n  flags.DEFINE_integer(\n      \"max_depth\", default=6, help=help_wrap(\"Maximum depths of each tree.\"))\n  flags.DEFINE_float(\n      \"learning_rate\", default=0.1,\n      help=help_wrap(\"The learning rate.\"))\n\n  flags_core.set_defaults(data_dir=\"/tmp/higgs_data\",\n                          model_dir=\"/tmp/higgs_model\")\n\n\nif __name__ == \"__main__\":\n  # Training progress and eval results are shown as logging.INFO; so enables it.\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_train_higgs_flags()\n  absl_app.run(main)\n"
  },
  {
    "path": "official/boosted_trees/train_higgs_test.csv",
    "content": "1.000000000000000000e+00,8.692932128906250000e-01,-6.350818276405334473e-01,2.256902605295181274e-01,3.274700641632080078e-01,-6.899932026863098145e-01,7.542022466659545898e-01,-2.485731393098831177e-01,-1.092063903808593750e+00,0.000000000000000000e+00,1.374992132186889648e+00,-6.536741852760314941e-01,9.303491115570068359e-01,1.107436060905456543e+00,1.138904333114624023e+00,-1.578198313713073730e+00,-1.046985387802124023e+00,0.000000000000000000e+00,6.579295396804809570e-01,-1.045456994324922562e-02,-4.576716944575309753e-02,3.101961374282836914e+00,1.353760004043579102e+00,9.795631170272827148e-01,9.780761599540710449e-01,9.200048446655273438e-01,7.216574549674987793e-01,9.887509346008300781e-01,8.766783475875854492e-01\n1.000000000000000000e+00,9.075421094894409180e-01,3.291472792625427246e-01,3.594118654727935791e-01,1.497969865798950195e+00,-3.130095303058624268e-01,1.095530629158020020e+00,-5.575249195098876953e-01,-1.588229775428771973e+00,2.173076152801513672e+00,8.125811815261840820e-01,-2.136419266462326050e-01,1.271014571189880371e+00,2.214872121810913086e+00,4.999939501285552979e-01,-1.261431813240051270e+00,7.321561574935913086e-01,0.000000000000000000e+00,3.987008929252624512e-01,-1.138930082321166992e+00,-8.191101951524615288e-04,0.000000000000000000e+00,3.022198975086212158e-01,8.330481648445129395e-01,9.856996536254882812e-01,9.780983924865722656e-01,7.797321677207946777e-01,9.923557639122009277e-01,7.983425855636596680e-01\n1.000000000000000000e+00,7.988347411155700684e-01,1.470638751983642578e+00,-1.635974764823913574e+00,4.537731707096099854e-01,4.256291687488555908e-01,1.104874610900878906e+00,1.282322287559509277e+00,1.381664276123046875e+00,0.000000000000000000e+00,8.517372012138366699e-01,1.540658950805664062e+00,-8.196895122528076172e-01,2.214872121810913086e+00,9.934899210929870605e-01,3.560801148414611816e-01,-2.087775468826293945e-01,2.548224449157714844e+00,1.256954550743103027e+00,1.128847599029541016e+00,9.004608392715454102e-01,0.000000000000000000e+00,9.097532629966735840e-01,1.108330488204956055e+00,9.856922030448913574e-01,9.513312578201293945e-01,8.032515048980712891e-01,8.659244179725646973e-01,7.801175713539123535e-01\n0.000000000000000000e+00,1.344384789466857910e+00,-8.766260147094726562e-01,9.359127283096313477e-01,1.992050051689147949e+00,8.824543952941894531e-01,1.786065936088562012e+00,-1.646777749061584473e+00,-9.423825144767761230e-01,0.000000000000000000e+00,2.423264741897583008e+00,-6.760157942771911621e-01,7.361586689949035645e-01,2.214872121810913086e+00,1.298719763755798340e+00,-1.430738091468811035e+00,-3.646581768989562988e-01,0.000000000000000000e+00,7.453126907348632812e-01,-6.783788204193115234e-01,-1.360356330871582031e+00,0.000000000000000000e+00,9.466524720191955566e-01,1.028703689575195312e+00,9.986560940742492676e-01,7.282806038856506348e-01,8.692002296447753906e-01,1.026736497879028320e+00,9.579039812088012695e-01\n1.000000000000000000e+00,1.105008959770202637e+00,3.213555514812469482e-01,1.522401213645935059e+00,8.828076124191284180e-01,-1.205349326133728027e+00,6.814661026000976562e-01,-1.070463895797729492e+00,-9.218706488609313965e-01,0.000000000000000000e+00,8.008721470832824707e-01,1.020974040031433105e+00,9.714065194129943848e-01,2.214872121810913086e+00,5.967612862586975098e-01,-3.502728641033172607e-01,6.311942934989929199e-01,0.000000000000000000e+00,4.799988865852355957e-01,-3.735655248165130615e-01,1.130406111478805542e-01,0.000000000000000000e+00,7.558564543724060059e-01,1.361057043075561523e+00,9.866096973419189453e-01,8.380846381187438965e-01,1.133295178413391113e+00,8.722448945045471191e-01,8.084865212440490723e-01\n0.000000000000000000e+00,1.595839262008666992e+00,-6.078106760978698730e-01,7.074915803968906403e-03,1.818449616432189941e+00,-1.119059920310974121e-01,8.475499153137207031e-01,-5.664370059967041016e-01,1.581239342689514160e+00,2.173076152801513672e+00,7.554209828376770020e-01,6.431096196174621582e-01,1.426366806030273438e+00,0.000000000000000000e+00,9.216607809066772461e-01,-1.190432429313659668e+00,-1.615589022636413574e+00,0.000000000000000000e+00,6.511141061782836914e-01,-6.542269587516784668e-01,-1.274344921112060547e+00,3.101961374282836914e+00,8.237605690956115723e-01,9.381914138793945312e-01,9.717581868171691895e-01,7.891763448715209961e-01,4.305532872676849365e-01,9.613569378852844238e-01,9.578179121017456055e-01\n1.000000000000000000e+00,4.093913435935974121e-01,-1.884683609008789062e+00,-1.027292013168334961e+00,1.672451734542846680e+00,-1.604598283767700195e+00,1.338014960289001465e+00,5.542744323611259460e-02,1.346588134765625000e-02,2.173076152801513672e+00,5.097832679748535156e-01,-1.038338065147399902e+00,7.078623175621032715e-01,0.000000000000000000e+00,7.469175457954406738e-01,-3.584651052951812744e-01,-1.646654248237609863e+00,0.000000000000000000e+00,3.670579791069030762e-01,6.949646025896072388e-02,1.377130270004272461e+00,3.101961374282836914e+00,8.694183826446533203e-01,1.222082972526550293e+00,1.000627398490905762e+00,5.450449585914611816e-01,6.986525058746337891e-01,9.773144721984863281e-01,8.287860751152038574e-01\n1.000000000000000000e+00,9.338953495025634766e-01,6.291297078132629395e-01,5.275348424911499023e-01,2.380327433347702026e-01,-9.665691256523132324e-01,5.478111505508422852e-01,-5.943922698497772217e-02,-1.706866145133972168e+00,2.173076152801513672e+00,9.410027265548706055e-01,-2.653732776641845703e+00,-1.572199910879135132e-01,0.000000000000000000e+00,1.030370354652404785e+00,-1.755051016807556152e-01,5.230209231376647949e-01,2.548224449157714844e+00,1.373546600341796875e+00,1.291248083114624023e+00,-1.467454433441162109e+00,0.000000000000000000e+00,9.018372893333435059e-01,1.083671212196350098e+00,9.796960949897766113e-01,7.833003997802734375e-01,8.491951823234558105e-01,8.943563103675842285e-01,7.748793959617614746e-01\n1.000000000000000000e+00,1.405143737792968750e+00,5.366026163101196289e-01,6.895543336868286133e-01,1.179567337036132812e+00,-1.100611537694931030e-01,3.202404975891113281e+00,-1.526960015296936035e+00,-1.576033473014831543e+00,0.000000000000000000e+00,2.931536912918090820e+00,5.673424601554870605e-01,-1.300333440303802490e-01,2.214872121810913086e+00,1.787122726440429688e+00,8.994985818862915039e-01,5.851513147354125977e-01,2.548224449157714844e+00,4.018652141094207764e-01,-1.512016952037811279e-01,1.163489103317260742e+00,0.000000000000000000e+00,1.667070508003234863e+00,4.039272785186767578e+00,1.175828456878662109e+00,1.045351743698120117e+00,1.542971968650817871e+00,3.534826755523681641e+00,2.740753889083862305e+00\n1.000000000000000000e+00,1.176565527915954590e+00,1.041605025529861450e-01,1.397002458572387695e+00,4.797213077545166016e-01,2.655133903026580811e-01,1.135563015937805176e+00,1.534830927848815918e+00,-2.532912194728851318e-01,0.000000000000000000e+00,1.027246594429016113e+00,5.343157649040222168e-01,1.180022358894348145e+00,0.000000000000000000e+00,2.405661106109619141e+00,8.755676448345184326e-02,-9.765340685844421387e-01,2.548224449157714844e+00,1.250382542610168457e+00,2.685412168502807617e-01,5.303344726562500000e-01,0.000000000000000000e+00,8.331748843193054199e-01,7.739681005477905273e-01,9.857499599456787109e-01,1.103696346282958984e+00,8.491398692131042480e-01,9.371039867401123047e-01,8.123638033866882324e-01\n1.000000000000000000e+00,9.459739923477172852e-01,1.111244320869445801e+00,1.218337059020996094e+00,9.076390862464904785e-01,8.215369582176208496e-01,1.153243303298950195e+00,-3.654202818870544434e-01,-1.566054821014404297e+00,0.000000000000000000e+00,7.447192072868347168e-01,7.208195328712463379e-01,-3.758229315280914307e-01,2.214872121810913086e+00,6.088791489601135254e-01,3.078369498252868652e-01,-1.281638383865356445e+00,0.000000000000000000e+00,1.597967982292175293e+00,-4.510180354118347168e-01,6.365344673395156860e-02,3.101961374282836914e+00,8.290241360664367676e-01,9.806482791900634766e-01,9.943597912788391113e-01,9.082478284835815430e-01,7.758789062500000000e-01,7.833113670349121094e-01,7.251217961311340332e-01\n0.000000000000000000e+00,7.393567562103271484e-01,-1.782904267311096191e-01,8.299342393875122070e-01,5.045390725135803223e-01,-1.302167475223541260e-01,9.610513448715209961e-01,-3.555179834365844727e-01,-1.717399358749389648e+00,2.173076152801513672e+00,6.209560632705688477e-01,-4.817410409450531006e-01,-1.199193239212036133e+00,0.000000000000000000e+00,9.826014041900634766e-01,8.118502795696258545e-02,-2.903236448764801025e-01,0.000000000000000000e+00,1.064662933349609375e+00,7.740649580955505371e-01,3.988203406333923340e-01,3.101961374282836914e+00,9.445360302925109863e-01,1.026260614395141602e+00,9.821967482566833496e-01,5.421146750450134277e-01,1.250978946685791016e+00,8.300446271896362305e-01,7.613079547882080078e-01\n1.000000000000000000e+00,1.384097695350646973e+00,1.168220937252044678e-01,-1.179878950119018555e+00,7.629125714302062988e-01,-7.978226989507675171e-02,1.019863128662109375e+00,8.773182630538940430e-01,1.276887178421020508e+00,2.173076152801513672e+00,3.312520980834960938e-01,1.409523487091064453e+00,-1.474388837814331055e+00,0.000000000000000000e+00,1.282738208770751953e+00,7.374743819236755371e-01,-2.254196107387542725e-01,0.000000000000000000e+00,1.559753060340881348e+00,8.465205430984497070e-01,5.048085451126098633e-01,3.101961374282836914e+00,9.593246579170227051e-01,8.073760271072387695e-01,1.191813588142395020e+00,1.221210360527038574e+00,8.611412644386291504e-01,9.293408989906311035e-01,8.383023738861083984e-01\n1.000000000000000000e+00,1.383548736572265625e+00,8.891792893409729004e-01,6.185320615768432617e-01,1.081547021865844727e+00,3.446055650711059570e-01,9.563793540000915527e-01,8.545429706573486328e-01,-1.129207015037536621e+00,2.173076152801513672e+00,5.456657409667968750e-01,-3.078651726245880127e-01,-6.232798099517822266e-01,2.214872121810913086e+00,3.482571244239807129e-01,1.024202585220336914e+00,1.840776652097702026e-01,0.000000000000000000e+00,7.813369035720825195e-01,-1.636125564575195312e+00,1.144067287445068359e+00,0.000000000000000000e+00,5.222384929656982422e-01,7.376385331153869629e-01,9.861995577812194824e-01,1.349615693092346191e+00,8.127878904342651367e-01,9.534064531326293945e-01,7.797226309776306152e-01\n1.000000000000000000e+00,1.343652725219726562e+00,8.385329246520996094e-01,-1.061138510704040527e+00,2.472015142440795898e+00,-5.726317167282104492e-01,1.512709975242614746e+00,1.143690109252929688e+00,8.555619716644287109e-01,0.000000000000000000e+00,8.842203021049499512e-01,1.474605560302734375e+00,-1.360648751258850098e+00,1.107436060905456543e+00,1.587265610694885254e+00,2.234833478927612305e+00,7.756848633289337158e-02,0.000000000000000000e+00,1.609408140182495117e+00,2.396404743194580078e+00,7.572935223579406738e-01,0.000000000000000000e+00,9.340201020240783691e-01,8.447072505950927734e-01,1.077844023704528809e+00,1.400183677673339844e+00,9.477745294570922852e-01,1.007614254951477051e+00,9.010174870491027832e-01\n0.000000000000000000e+00,5.470141768455505371e-01,-3.497089445590972900e-01,-6.466571688652038574e-01,2.040462255477905273e+00,2.764569818973541260e-01,5.446965098381042480e-01,8.386992812156677246e-01,1.728703141212463379e+00,0.000000000000000000e+00,6.528096199035644531e-01,1.471691370010375977e+00,1.243273019790649414e+00,0.000000000000000000e+00,7.857298851013183594e-01,-4.442929103970527649e-02,-1.019803404808044434e+00,2.548224449157714844e+00,4.191471040248870850e-01,-6.292421817779541016e-01,1.570794582366943359e+00,3.101961374282836914e+00,6.894335746765136719e-01,8.672295808792114258e-01,1.082487821578979492e+00,6.641419529914855957e-01,3.541145622730255127e-01,5.799450278282165527e-01,8.172734379768371582e-01\n1.000000000000000000e+00,1.484203696250915527e+00,1.699521422386169434e+00,-1.059473991394042969e+00,2.700195550918579102e+00,-1.055963873863220215e+00,2.409452915191650391e+00,4.574607908725738525e-01,3.449823260307312012e-01,0.000000000000000000e+00,1.414903521537780762e+00,1.114225864410400391e+00,-1.448866605758666992e+00,0.000000000000000000e+00,1.012983918190002441e+00,-2.056988954544067383e+00,1.131010890007019043e+00,0.000000000000000000e+00,9.054746031761169434e-01,2.182368993759155273e+00,1.043073177337646484e+00,0.000000000000000000e+00,1.653626322746276855e+00,9.935762286186218262e-01,9.833217859268188477e-01,7.413797974586486816e-01,1.633816361427307129e-01,5.923243165016174316e-01,7.451378703117370605e-01\n0.000000000000000000e+00,1.057975649833679199e+00,-1.607590019702911377e-01,-1.949972510337829590e-01,2.705023050308227539e+00,-7.514767050743103027e-01,1.909918904304504395e+00,-1.031844973564147949e+00,8.649863600730895996e-01,0.000000000000000000e+00,1.300834894180297852e+00,1.467376798391342163e-01,-1.118742942810058594e+00,1.107436060905456543e+00,9.669710993766784668e-01,-3.666573464870452881e-01,1.108266711235046387e+00,0.000000000000000000e+00,5.547249317169189453e-01,-7.141901850700378418e-01,1.505314946174621582e+00,3.101961374282836914e+00,9.544943571090698242e-01,6.510385870933532715e-01,1.124949693679809570e+00,8.940010070800781250e-01,6.721734404563903809e-01,1.182358264923095703e+00,1.316304087638854980e+00\n0.000000000000000000e+00,6.753035783767700195e-01,1.120983958244323730e+00,-2.804459035396575928e-01,1.539554953575134277e+00,7.345175743103027344e-01,6.146844029426574707e-01,-5.070231556892395020e-01,7.945806980133056641e-01,2.173076152801513672e+00,2.188202738761901855e-01,-1.894118309020996094e+00,-5.805578827857971191e-01,0.000000000000000000e+00,1.245682120323181152e+00,-3.475421071052551270e-01,-8.561564683914184570e-01,2.548224449157714844e+00,7.531017661094665527e-01,-1.145592689514160156e+00,-1.374783992767333984e+00,0.000000000000000000e+00,9.069401025772094727e-01,8.983390927314758301e-01,1.119651079177856445e+00,1.269073486328125000e+00,1.088765859603881836e+00,1.015413045883178711e+00,9.146358966827392578e-01\n1.000000000000000000e+00,6.427279114723205566e-01,-1.429840326309204102e+00,1.519071936607360840e+00,9.409985542297363281e-01,8.872274160385131836e-01,1.615126848220825195e+00,-1.336835741996765137e+00,-2.665962278842926025e-01,1.086538076400756836e+00,1.667088270187377930e+00,6.557375192642211914e-01,-1.588128924369812012e+00,0.000000000000000000e+00,8.282302021980285645e-01,1.836144566535949707e+00,4.081907570362091064e-01,0.000000000000000000e+00,1.708718180656433105e+00,-3.469151556491851807e-01,-1.182784557342529297e+00,3.101961374282836914e+00,9.210902452468872070e-01,1.373361706733703613e+00,9.849172830581665039e-01,1.422878146171569824e+00,1.546551108360290527e+00,1.782585501670837402e+00,1.438173770904541016e+00\n"
  },
  {
    "path": "official/boosted_trees/train_higgs_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Tests for boosted_tree.\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport tempfile\n\nimport numpy as np\nimport pandas as pd\nimport tensorflow as tf\n\n# pylint: disable=g-bad-import-order\nfrom official.boosted_trees import train_higgs\nfrom official.utils.testing import integration\n\nTEST_CSV = os.path.join(os.path.dirname(__file__), \"train_higgs_test.csv\")\n\ntf.logging.set_verbosity(tf.logging.ERROR)\n\n\nclass BaseTest(tf.test.TestCase):\n  \"\"\"Tests for Wide Deep model.\"\"\"\n\n  @classmethod\n  def setUpClass(cls):  # pylint: disable=invalid-name\n    super(BaseTest, cls).setUpClass()\n    train_higgs.define_train_higgs_flags()\n\n  def setUp(self):\n    # Create temporary CSV file\n    self.data_dir = self.get_temp_dir()\n    data = pd.read_csv(\n        TEST_CSV, dtype=np.float32, names=[\"c%02d\" % i for i in range(29)]\n    ).as_matrix()\n    self.input_npz = os.path.join(self.data_dir, train_higgs.NPZ_FILE)\n    # numpy.savez doesn't take gfile.Gfile, so need to write down and copy.\n    tmpfile = tempfile.NamedTemporaryFile()\n    np.savez_compressed(tmpfile, data=data)\n    tf.gfile.Copy(tmpfile.name, self.input_npz)\n\n  def test_read_higgs_data(self):\n    \"\"\"Tests read_higgs_data() function.\"\"\"\n    # Error when a wrong data_dir is given.\n    with self.assertRaisesRegexp(RuntimeError, \"Error loading data.*\"):\n      train_data, eval_data = train_higgs.read_higgs_data(\n          self.data_dir + \"non-existing-path\",\n          train_start=0, train_count=15, eval_start=15, eval_count=5)\n\n    # Loading fine with the correct data_dir.\n    train_data, eval_data = train_higgs.read_higgs_data(\n        self.data_dir,\n        train_start=0, train_count=15, eval_start=15, eval_count=5)\n    self.assertEqual((15, 29), train_data.shape)\n    self.assertEqual((5, 29), eval_data.shape)\n\n  def test_make_inputs_from_np_arrays(self):\n    \"\"\"Tests make_inputs_from_np_arrays() function.\"\"\"\n    train_data, _ = train_higgs.read_higgs_data(\n        self.data_dir,\n        train_start=0, train_count=15, eval_start=15, eval_count=5)\n    (input_fn, feature_names,\n     feature_columns) = train_higgs.make_inputs_from_np_arrays(\n         features_np=train_data[:, 1:], label_np=train_data[:, 0:1])\n\n    # Check feature_names.\n    self.assertAllEqual(feature_names,\n                        [\"feature_%02d\" % (i+1) for i in range(28)])\n\n    # Check feature columns.\n    self.assertEqual(28, len(feature_columns))\n    bucketized_column_type = type(\n        tf.feature_column.bucketized_column(\n            tf.feature_column.numeric_column(\"feature_01\"),\n            boundaries=[0, 1, 2]))  # dummy boundaries.\n    for feature_column in feature_columns:\n      self.assertIsInstance(feature_column, bucketized_column_type)\n      # At least 2 boundaries.\n      self.assertGreaterEqual(len(feature_column.boundaries), 2)\n    # Tests that the source column names of the bucketized columns match.\n    self.assertAllEqual(feature_names,\n                        [col.source_column.name for col in feature_columns])\n\n    # Check features.\n    features, labels = input_fn().make_one_shot_iterator().get_next()\n    with tf.Session() as sess:\n      features, labels = sess.run((features, labels))\n    self.assertIsInstance(features, dict)\n    self.assertAllEqual(feature_names, sorted(features.keys()))\n    self.assertAllEqual([[15, 1]] * 28,\n                        [features[name].shape for name in feature_names])\n    # Validate actual values of some features.\n    self.assertAllClose(\n        [0.869293, 0.907542, 0.798834, 1.344384, 1.105009, 1.595839,\n         0.409391, 0.933895, 1.405143, 1.176565, 0.945974, 0.739356,\n         1.384097, 1.383548, 1.343652],\n        np.squeeze(features[feature_names[0]], 1))\n    self.assertAllClose(\n        [-0.653674, -0.213641, 1.540659, -0.676015, 1.020974, 0.643109,\n         -1.038338, -2.653732, 0.567342, 0.534315, 0.720819, -0.481741,\n         1.409523, -0.307865, 1.474605],\n        np.squeeze(features[feature_names[10]], 1))\n\n  def test_end_to_end(self):\n    \"\"\"Tests end-to-end running.\"\"\"\n    model_dir = os.path.join(self.get_temp_dir(), \"model\")\n    integration.run_synthetic(\n        main=train_higgs.main, tmp_root=self.get_temp_dir(), extra_flags=[\n            \"--data_dir\", self.data_dir,\n            \"--model_dir\", model_dir,\n            \"--n_trees\", \"5\",\n            \"--train_start\", \"0\",\n            \"--train_count\", \"12\",\n            \"--eval_start\", \"12\",\n            \"--eval_count\", \"8\",\n        ],\n        synth=False, max_train=None)\n    self.assertTrue(tf.gfile.Exists(os.path.join(model_dir, \"checkpoint\")))\n\n  def test_end_to_end_with_export(self):\n    \"\"\"Tests end-to-end running.\"\"\"\n    model_dir = os.path.join(self.get_temp_dir(), \"model\")\n    export_dir = os.path.join(self.get_temp_dir(), \"export\")\n    integration.run_synthetic(\n        main=train_higgs.main, tmp_root=self.get_temp_dir(), extra_flags=[\n            \"--data_dir\", self.data_dir,\n            \"--model_dir\", model_dir,\n            \"--export_dir\", export_dir,\n            \"--n_trees\", \"5\",\n            \"--train_start\", \"0\",\n            \"--train_count\", \"12\",\n            \"--eval_start\", \"12\",\n            \"--eval_count\", \"8\",\n        ],\n        synth=False, max_train=None)\n    self.assertTrue(tf.gfile.Exists(os.path.join(model_dir, \"checkpoint\")))\n    self.assertTrue(tf.gfile.Exists(os.path.join(export_dir)))\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/mnist/README.md",
    "content": "# MNIST in TensorFlow\n\nThis directory builds a convolutional neural net to classify the [MNIST\ndataset](http://yann.lecun.com/exdb/mnist/) using the\n[tf.data](https://www.tensorflow.org/api_docs/python/tf/data),\n[tf.estimator.Estimator](https://www.tensorflow.org/api_docs/python/tf/estimator/Estimator),\nand\n[tf.layers](https://www.tensorflow.org/api_docs/python/tf/layers)\nAPIs.\n\n\n## Setup\n\nTo begin, you'll simply need the latest version of TensorFlow installed.\nFirst make sure you've [added the models folder to your Python path](/official/#running-the-models); otherwise you may encounter an error like `ImportError: No module named official.mnist`.\n\nThen to train the model, run the following:\n\n```\npython mnist.py\n```\n\nThe model will begin training and will automatically evaluate itself on the\nvalidation data.\n\nIllustrative unit tests and benchmarks can be run with:\n\n```\npython mnist_test.py\npython mnist_test.py --benchmarks=.\n```\n\n## Exporting the model\n\nYou can export the model into Tensorflow [SavedModel](https://www.tensorflow.org/programmers_guide/saved_model) format by using the argument `--export_dir`:\n\n```\npython mnist.py --export_dir /tmp/mnist_saved_model\n```\n\nThe SavedModel will be saved in a timestamped directory under `/tmp/mnist_saved_model/` (e.g. `/tmp/mnist_saved_model/1513630966/`).\n\n**Getting predictions with SavedModel**\nUse [`saved_model_cli`](https://www.tensorflow.org/programmers_guide/saved_model#cli_to_inspect_and_execute_savedmodel) to inspect and execute the SavedModel.\n\n```\nsaved_model_cli run --dir /tmp/mnist_saved_model/TIMESTAMP --tag_set serve --signature_def classify --inputs image=examples.npy\n```\n\n`examples.npy` contains the data from `example5.png` and `example3.png` in a numpy array, in that order. The array values are normalized to values between 0 and 1.\n\nThe output should look similar to below:\n```\nResult for output key classes:\n[5 3]\nResult for output key probabilities:\n[[  1.53558474e-07   1.95694142e-13   1.31193523e-09   5.47467265e-03\n    5.85711526e-22   9.94520664e-01   3.48423509e-06   2.65365645e-17\n    9.78631419e-07   3.15522470e-08]\n [  1.22413359e-04   5.87615965e-08   1.72251271e-06   9.39960718e-01\n    3.30306928e-11   2.87386645e-02   2.82353517e-02   8.21146413e-18\n    2.52568233e-03   4.15460236e-04]]\n```\n\n## Experimental: Eager Execution\n\n[Eager execution](https://research.googleblog.com/2017/10/eager-execution-imperative-define-by.html)\n(an preview feature in TensorFlow 1.5) is an imperative interface to TensorFlow.\nThe exact same model defined in `mnist.py` can be trained without creating a\nTensorFlow graph using:\n\n```\npython mnist_eager.py\n```\n\n## Experimental: TPU Acceleration\n\n`mnist.py` (and `mnist_eager.py`) demonstrate training a neural network to\nclassify digits on CPUs and GPUs. `mnist_tpu.py` can be used to train the\nsame model using TPUs for hardware acceleration. More information in\nthe [tensorflow/tpu](https://github.com/tensorflow/tpu) repository.\n"
  },
  {
    "path": "official/mnist/__init__.py",
    "content": ""
  },
  {
    "path": "official/mnist/dataset.py",
    "content": "#  Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"tf.data.Dataset interface to the MNIST dataset.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport gzip\nimport os\nimport shutil\nimport tempfile\n\nimport numpy as np\nfrom six.moves import urllib\nimport tensorflow as tf\n\n\ndef read32(bytestream):\n  \"\"\"Read 4 bytes from bytestream as an unsigned 32-bit integer.\"\"\"\n  dt = np.dtype(np.uint32).newbyteorder('>')\n  return np.frombuffer(bytestream.read(4), dtype=dt)[0]\n\n\ndef check_image_file_header(filename):\n  \"\"\"Validate that filename corresponds to images for the MNIST dataset.\"\"\"\n  with tf.gfile.Open(filename, 'rb') as f:\n    magic = read32(f)\n    read32(f)  # num_images, unused\n    rows = read32(f)\n    cols = read32(f)\n    if magic != 2051:\n      raise ValueError('Invalid magic number %d in MNIST file %s' % (magic,\n                                                                     f.name))\n    if rows != 28 or cols != 28:\n      raise ValueError(\n          'Invalid MNIST file %s: Expected 28x28 images, found %dx%d' %\n          (f.name, rows, cols))\n\n\ndef check_labels_file_header(filename):\n  \"\"\"Validate that filename corresponds to labels for the MNIST dataset.\"\"\"\n  with tf.gfile.Open(filename, 'rb') as f:\n    magic = read32(f)\n    read32(f)  # num_items, unused\n    if magic != 2049:\n      raise ValueError('Invalid magic number %d in MNIST file %s' % (magic,\n                                                                     f.name))\n\n\ndef download(directory, filename):\n  \"\"\"Download (and unzip) a file from the MNIST dataset if not already done.\"\"\"\n  filepath = os.path.join(directory, filename)\n  if tf.gfile.Exists(filepath):\n    return filepath\n  if not tf.gfile.Exists(directory):\n    tf.gfile.MakeDirs(directory)\n  # CVDF mirror of http://yann.lecun.com/exdb/mnist/\n  url = 'https://storage.googleapis.com/cvdf-datasets/mnist/' + filename + '.gz'\n  _, zipped_filepath = tempfile.mkstemp(suffix='.gz')\n  print('Downloading %s to %s' % (url, zipped_filepath))\n  urllib.request.urlretrieve(url, zipped_filepath)\n  with gzip.open(zipped_filepath, 'rb') as f_in, \\\n      tf.gfile.Open(filepath, 'wb') as f_out:\n    shutil.copyfileobj(f_in, f_out)\n  os.remove(zipped_filepath)\n  return filepath\n\n\ndef dataset(directory, images_file, labels_file):\n  \"\"\"Download and parse MNIST dataset.\"\"\"\n\n  images_file = download(directory, images_file)\n  labels_file = download(directory, labels_file)\n\n  check_image_file_header(images_file)\n  check_labels_file_header(labels_file)\n\n  def decode_image(image):\n    # Normalize from [0, 255] to [0.0, 1.0]\n    image = tf.decode_raw(image, tf.uint8)\n    image = tf.cast(image, tf.float32)\n    image = tf.reshape(image, [784])\n    return image / 255.0\n\n  def decode_label(label):\n    label = tf.decode_raw(label, tf.uint8)  # tf.string -> [tf.uint8]\n    label = tf.reshape(label, [])  # label is a scalar\n    return tf.to_int32(label)\n\n  images = tf.data.FixedLengthRecordDataset(\n      images_file, 28 * 28, header_bytes=16).map(decode_image)\n  labels = tf.data.FixedLengthRecordDataset(\n      labels_file, 1, header_bytes=8).map(decode_label)\n  return tf.data.Dataset.zip((images, labels))\n\n\ndef train(directory):\n  \"\"\"tf.data.Dataset object for MNIST training data.\"\"\"\n  return dataset(directory, 'train-images-idx3-ubyte',\n                 'train-labels-idx1-ubyte')\n\n\ndef test(directory):\n  \"\"\"tf.data.Dataset object for MNIST test data.\"\"\"\n  return dataset(directory, 't10k-images-idx3-ubyte', 't10k-labels-idx1-ubyte')\n"
  },
  {
    "path": "official/mnist/mnist.py",
    "content": "#  Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Convolutional Neural Network Estimator for MNIST, built with tf.layers.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.mnist import dataset\nfrom official.utils.flags import core as flags_core\nfrom official.utils.logs import hooks_helper\nfrom official.utils.misc import model_helpers\n\n\nLEARNING_RATE = 1e-4\n\n\ndef create_model(data_format):\n  \"\"\"Model to recognize digits in the MNIST dataset.\n\n  Network structure is equivalent to:\n  https://github.com/tensorflow/tensorflow/blob/r1.5/tensorflow/examples/tutorials/mnist/mnist_deep.py\n  and\n  https://github.com/tensorflow/models/blob/master/tutorials/image/mnist/convolutional.py\n\n  But uses the tf.keras API.\n\n  Args:\n    data_format: Either 'channels_first' or 'channels_last'. 'channels_first' is\n      typically faster on GPUs while 'channels_last' is typically faster on\n      CPUs. See\n      https://www.tensorflow.org/performance/performance_guide#data_formats\n\n  Returns:\n    A tf.keras.Model.\n  \"\"\"\n  if data_format == 'channels_first':\n    input_shape = [1, 28, 28]\n  else:\n    assert data_format == 'channels_last'\n    input_shape = [28, 28, 1]\n\n  l = tf.keras.layers\n  max_pool = l.MaxPooling2D(\n      (2, 2), (2, 2), padding='same', data_format=data_format)\n  # The model consists of a sequential chain of layers, so tf.keras.Sequential\n  # (a subclass of tf.keras.Model) makes for a compact description.\n  return tf.keras.Sequential(\n      [\n          l.Reshape(\n              target_shape=input_shape,\n              input_shape=(28 * 28,)),\n          l.Conv2D(\n              32,\n              5,\n              padding='same',\n              data_format=data_format,\n              activation=tf.nn.relu),\n          max_pool,\n          l.Conv2D(\n              64,\n              5,\n              padding='same',\n              data_format=data_format,\n              activation=tf.nn.relu),\n          max_pool,\n          l.Flatten(),\n          l.Dense(1024, activation=tf.nn.relu),\n          l.Dropout(0.4),\n          l.Dense(10)\n      ])\n\n\ndef define_mnist_flags():\n  flags_core.define_base(multi_gpu=True, num_gpu=False)\n  flags_core.define_image()\n  flags.adopt_module_key_flags(flags_core)\n  flags_core.set_defaults(data_dir='/tmp/mnist_data',\n                          model_dir='/tmp/mnist_model',\n                          batch_size=100,\n                          train_epochs=40)\n\n\ndef model_fn(features, labels, mode, params):\n  \"\"\"The model_fn argument for creating an Estimator.\"\"\"\n  model = create_model(params['data_format'])\n  image = features\n  if isinstance(image, dict):\n    image = features['image']\n\n  if mode == tf.estimator.ModeKeys.PREDICT:\n    logits = model(image, training=False)\n    predictions = {\n        'classes': tf.argmax(logits, axis=1),\n        'probabilities': tf.nn.softmax(logits),\n    }\n    return tf.estimator.EstimatorSpec(\n        mode=tf.estimator.ModeKeys.PREDICT,\n        predictions=predictions,\n        export_outputs={\n            'classify': tf.estimator.export.PredictOutput(predictions)\n        })\n  if mode == tf.estimator.ModeKeys.TRAIN:\n    optimizer = tf.train.AdamOptimizer(learning_rate=LEARNING_RATE)\n\n    # If we are running multi-GPU, we need to wrap the optimizer.\n    if params.get('multi_gpu'):\n      optimizer = tf.contrib.estimator.TowerOptimizer(optimizer)\n\n    logits = model(image, training=True)\n    loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)\n    accuracy = tf.metrics.accuracy(\n        labels=labels, predictions=tf.argmax(logits, axis=1))\n\n    # Name tensors to be logged with LoggingTensorHook.\n    tf.identity(LEARNING_RATE, 'learning_rate')\n    tf.identity(loss, 'cross_entropy')\n    tf.identity(accuracy[1], name='train_accuracy')\n\n    # Save accuracy scalar to Tensorboard output.\n    tf.summary.scalar('train_accuracy', accuracy[1])\n\n    return tf.estimator.EstimatorSpec(\n        mode=tf.estimator.ModeKeys.TRAIN,\n        loss=loss,\n        train_op=optimizer.minimize(loss, tf.train.get_or_create_global_step()))\n  if mode == tf.estimator.ModeKeys.EVAL:\n    logits = model(image, training=False)\n    loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)\n    return tf.estimator.EstimatorSpec(\n        mode=tf.estimator.ModeKeys.EVAL,\n        loss=loss,\n        eval_metric_ops={\n            'accuracy':\n                tf.metrics.accuracy(\n                    labels=labels, predictions=tf.argmax(logits, axis=1)),\n        })\n\n\ndef validate_batch_size_for_multi_gpu(batch_size):\n  \"\"\"For multi-gpu, batch-size must be a multiple of the number of GPUs.\n\n  Note that this should eventually be handled by replicate_model_fn\n  directly. Multi-GPU support is currently experimental, however,\n  so doing the work here until that feature is in place.\n\n  Args:\n    batch_size: the number of examples processed in each training batch.\n\n  Raises:\n    ValueError: if no GPUs are found, or selected batch_size is invalid.\n  \"\"\"\n  from tensorflow.python.client import device_lib  # pylint: disable=g-import-not-at-top\n\n  local_device_protos = device_lib.list_local_devices()\n  num_gpus = sum([1 for d in local_device_protos if d.device_type == 'GPU'])\n  if not num_gpus:\n    raise ValueError('Multi-GPU mode was specified, but no GPUs '\n                     'were found. To use CPU, run without --multi_gpu.')\n\n  remainder = batch_size % num_gpus\n  if remainder:\n    err = ('When running with multiple GPUs, batch size '\n           'must be a multiple of the number of available GPUs. '\n           'Found {} GPUs with a batch size of {}; try --batch_size={} instead.'\n          ).format(num_gpus, batch_size, batch_size - remainder)\n    raise ValueError(err)\n\n\ndef run_mnist(flags_obj):\n  \"\"\"Run MNIST training and eval loop.\n\n  Args:\n    flags_obj: An object containing parsed flag values.\n  \"\"\"\n\n  model_function = model_fn\n\n  if flags_obj.multi_gpu:\n    validate_batch_size_for_multi_gpu(flags_obj.batch_size)\n\n    # There are two steps required if using multi-GPU: (1) wrap the model_fn,\n    # and (2) wrap the optimizer. The first happens here, and (2) happens\n    # in the model_fn itself when the optimizer is defined.\n    model_function = tf.contrib.estimator.replicate_model_fn(\n        model_fn, loss_reduction=tf.losses.Reduction.MEAN)\n\n  data_format = flags_obj.data_format\n  if data_format is None:\n    data_format = ('channels_first'\n                   if tf.test.is_built_with_cuda() else 'channels_last')\n  mnist_classifier = tf.estimator.Estimator(\n      model_fn=model_function,\n      model_dir=flags_obj.model_dir,\n      params={\n          'data_format': data_format,\n          'multi_gpu': flags_obj.multi_gpu\n      })\n\n  # Set up training and evaluation input functions.\n  def train_input_fn():\n    \"\"\"Prepare data for training.\"\"\"\n\n    # When choosing shuffle buffer sizes, larger sizes result in better\n    # randomness, while smaller sizes use less memory. MNIST is a small\n    # enough dataset that we can easily shuffle the full epoch.\n    ds = dataset.train(flags_obj.data_dir)\n    ds = ds.cache().shuffle(buffer_size=50000).batch(flags_obj.batch_size)\n\n    # Iterate through the dataset a set number (`epochs_between_evals`) of times\n    # during each training session.\n    ds = ds.repeat(flags_obj.epochs_between_evals)\n    return ds\n\n  def eval_input_fn():\n    return dataset.test(flags_obj.data_dir).batch(\n        flags_obj.batch_size).make_one_shot_iterator().get_next()\n\n  # Set up hook that outputs training logs every 100 steps.\n  train_hooks = hooks_helper.get_train_hooks(\n      flags_obj.hooks, batch_size=flags_obj.batch_size)\n\n  # Train and evaluate model.\n  for _ in range(flags_obj.train_epochs // flags_obj.epochs_between_evals):\n    mnist_classifier.train(input_fn=train_input_fn, hooks=train_hooks)\n    eval_results = mnist_classifier.evaluate(input_fn=eval_input_fn)\n    print('\\nEvaluation results:\\n\\t%s\\n' % eval_results)\n\n    if model_helpers.past_stop_threshold(flags_obj.stop_threshold,\n                                         eval_results['accuracy']):\n      break\n\n  # Export the model\n  if flags_obj.export_dir is not None:\n    image = tf.placeholder(tf.float32, [None, 28, 28])\n    input_fn = tf.estimator.export.build_raw_serving_input_receiver_fn({\n        'image': image,\n    })\n    mnist_classifier.export_savedmodel(flags_obj.export_dir, input_fn)\n\n\ndef main(_):\n  run_mnist(flags.FLAGS)\n\n\nif __name__ == '__main__':\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_mnist_flags()\n  absl_app.run(main)\n"
  },
  {
    "path": "official/mnist/mnist_eager.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"MNIST model training with TensorFlow eager execution.\n\nSee:\nhttps://research.googleblog.com/2017/10/eager-execution-imperative-define-by.html\n\nThis program demonstrates training of the convolutional neural network model\ndefined in mnist.py with eager execution enabled.\n\nIf you are not interested in eager execution, you should ignore this file.\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport time\n\n# pylint: disable=g-bad-import-order\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\nimport tensorflow.contrib.eager as tfe\n# pylint: enable=g-bad-import-order\n\nfrom official.mnist import dataset as mnist_dataset\nfrom official.mnist import mnist\nfrom official.utils.flags import core as flags_core\n\n\ndef loss(logits, labels):\n  return tf.reduce_mean(\n      tf.nn.sparse_softmax_cross_entropy_with_logits(\n          logits=logits, labels=labels))\n\n\ndef compute_accuracy(logits, labels):\n  predictions = tf.argmax(logits, axis=1, output_type=tf.int64)\n  labels = tf.cast(labels, tf.int64)\n  batch_size = int(logits.shape[0])\n  return tf.reduce_sum(\n      tf.cast(tf.equal(predictions, labels), dtype=tf.float32)) / batch_size\n\n\ndef train(model, optimizer, dataset, step_counter, log_interval=None):\n  \"\"\"Trains model on `dataset` using `optimizer`.\"\"\"\n\n  start = time.time()\n  for (batch, (images, labels)) in enumerate(tfe.Iterator(dataset)):\n    with tf.contrib.summary.record_summaries_every_n_global_steps(\n        10, global_step=step_counter):\n      # Record the operations used to compute the loss given the input,\n      # so that the gradient of the loss with respect to the variables\n      # can be computed.\n      with tf.GradientTape() as tape:\n        logits = model(images, training=True)\n        loss_value = loss(logits, labels)\n        tf.contrib.summary.scalar('loss', loss_value)\n        tf.contrib.summary.scalar('accuracy', compute_accuracy(logits, labels))\n      grads = tape.gradient(loss_value, model.variables)\n      optimizer.apply_gradients(\n          zip(grads, model.variables), global_step=step_counter)\n      if log_interval and batch % log_interval == 0:\n        rate = log_interval / (time.time() - start)\n        print('Step #%d\\tLoss: %.6f (%d steps/sec)' % (batch, loss_value, rate))\n        start = time.time()\n\n\ndef test(model, dataset):\n  \"\"\"Perform an evaluation of `model` on the examples from `dataset`.\"\"\"\n  avg_loss = tfe.metrics.Mean('loss')\n  accuracy = tfe.metrics.Accuracy('accuracy')\n\n  for (images, labels) in tfe.Iterator(dataset):\n    logits = model(images, training=False)\n    avg_loss(loss(logits, labels))\n    accuracy(\n        tf.argmax(logits, axis=1, output_type=tf.int64),\n        tf.cast(labels, tf.int64))\n  print('Test set: Average loss: %.4f, Accuracy: %4f%%\\n' %\n        (avg_loss.result(), 100 * accuracy.result()))\n  with tf.contrib.summary.always_record_summaries():\n    tf.contrib.summary.scalar('loss', avg_loss.result())\n    tf.contrib.summary.scalar('accuracy', accuracy.result())\n\n\ndef run_mnist_eager(flags_obj):\n  \"\"\"Run MNIST training and eval loop in eager mode.\n\n  Args:\n    flags_obj: An object containing parsed flag values.\n  \"\"\"\n  tf.enable_eager_execution()\n\n  # Automatically determine device and data_format\n  (device, data_format) = ('/gpu:0', 'channels_first')\n  if flags_obj.no_gpu or not tf.test.is_gpu_available():\n    (device, data_format) = ('/cpu:0', 'channels_last')\n  # If data_format is defined in FLAGS, overwrite automatically set value.\n  if flags_obj.data_format is not None:\n    data_format = flags_obj.data_format\n  print('Using device %s, and data format %s.' % (device, data_format))\n\n  # Load the datasets\n  train_ds = mnist_dataset.train(flags_obj.data_dir).shuffle(60000).batch(\n      flags_obj.batch_size)\n  test_ds = mnist_dataset.test(flags_obj.data_dir).batch(\n      flags_obj.batch_size)\n\n  # Create the model and optimizer\n  model = mnist.create_model(data_format)\n  optimizer = tf.train.MomentumOptimizer(flags_obj.lr, flags_obj.momentum)\n\n  # Create file writers for writing TensorBoard summaries.\n  if flags_obj.output_dir:\n    # Create directories to which summaries will be written\n    # tensorboard --logdir=<output_dir>\n    # can then be used to see the recorded summaries.\n    train_dir = os.path.join(flags_obj.output_dir, 'train')\n    test_dir = os.path.join(flags_obj.output_dir, 'eval')\n    tf.gfile.MakeDirs(flags_obj.output_dir)\n  else:\n    train_dir = None\n    test_dir = None\n  summary_writer = tf.contrib.summary.create_file_writer(\n      train_dir, flush_millis=10000)\n  test_summary_writer = tf.contrib.summary.create_file_writer(\n      test_dir, flush_millis=10000, name='test')\n\n  # Create and restore checkpoint (if one exists on the path)\n  checkpoint_prefix = os.path.join(flags_obj.model_dir, 'ckpt')\n  step_counter = tf.train.get_or_create_global_step()\n  checkpoint = tfe.Checkpoint(\n      model=model, optimizer=optimizer, step_counter=step_counter)\n  # Restore variables on creation if a checkpoint exists.\n  checkpoint.restore(tf.train.latest_checkpoint(flags_obj.model_dir))\n\n  # Train and evaluate for a set number of epochs.\n  with tf.device(device):\n    for _ in range(flags_obj.train_epochs):\n      start = time.time()\n      with summary_writer.as_default():\n        train(model, optimizer, train_ds, step_counter,\n              flags_obj.log_interval)\n      end = time.time()\n      print('\\nTrain time for epoch #%d (%d total steps): %f' %\n            (checkpoint.save_counter.numpy() + 1,\n             step_counter.numpy(),\n             end - start))\n      with test_summary_writer.as_default():\n        test(model, test_ds)\n      checkpoint.save(checkpoint_prefix)\n\n\ndef define_mnist_eager_flags():\n  \"\"\"Defined flags and defaults for MNIST in eager mode.\"\"\"\n  flags_core.define_base_eager()\n  flags_core.define_image()\n  flags.adopt_module_key_flags(flags_core)\n\n  flags.DEFINE_integer(\n      name='log_interval', short_name='li', default=10,\n      help=flags_core.help_wrap('batches between logging training status'))\n\n  flags.DEFINE_string(\n      name='output_dir', short_name='od', default=None,\n      help=flags_core.help_wrap('Directory to write TensorBoard summaries'))\n\n  flags.DEFINE_float(name='learning_rate', short_name='lr', default=0.01,\n                     help=flags_core.help_wrap('Learning rate.'))\n\n  flags.DEFINE_float(name='momentum', short_name='m', default=0.5,\n                     help=flags_core.help_wrap('SGD momentum.'))\n\n  flags.DEFINE_bool(name='no_gpu', short_name='nogpu', default=False,\n                    help=flags_core.help_wrap(\n                        'disables GPU usage even if a GPU is available'))\n\n  flags_core.set_defaults(\n      data_dir='/tmp/tensorflow/mnist/input_data',\n      model_dir='/tmp/tensorflow/mnist/checkpoints/',\n      batch_size=100,\n      train_epochs=10,\n  )\n\n\ndef main(_):\n  run_mnist_eager(flags.FLAGS)\n\n\nif __name__ == '__main__':\n  define_mnist_eager_flags()\n  absl_app.run(main=main)\n"
  },
  {
    "path": "official/mnist/mnist_eager_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\nimport tensorflow.contrib.eager as tfe  # pylint: disable=g-bad-import-order\n\nfrom official.mnist import mnist\nfrom official.mnist import mnist_eager\n\n\ndef device():\n  return \"/device:GPU:0\" if tfe.num_gpus() else \"/device:CPU:0\"\n\n\ndef data_format():\n  return \"channels_first\" if tfe.num_gpus() else \"channels_last\"\n\n\ndef random_dataset():\n  batch_size = 64\n  images = tf.random_normal([batch_size, 784])\n  labels = tf.random_uniform([batch_size], minval=0, maxval=10, dtype=tf.int32)\n  return tf.data.Dataset.from_tensors((images, labels))\n\n\ndef train(defun=False):\n  model = mnist.create_model(data_format())\n  if defun:\n    model.call = tfe.defun(model.call)\n  optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)\n  dataset = random_dataset()\n  with tf.device(device()):\n    mnist_eager.train(model, optimizer, dataset,\n                      step_counter=tf.train.get_or_create_global_step())\n\n\ndef evaluate(defun=False):\n  model = mnist.create_model(data_format())\n  dataset = random_dataset()\n  if defun:\n    model.call = tfe.defun(model.call)\n  with tf.device(device()):\n    mnist_eager.test(model, dataset)\n\n\nclass MNISTTest(tf.test.TestCase):\n  \"\"\"Run tests for MNIST eager loop.\"\"\"\n\n  def test_train(self):\n    train(defun=False)\n\n  def test_evaluate(self):\n    evaluate(defun=False)\n\n  def test_train_with_defun(self):\n    train(defun=True)\n\n  def test_evaluate_with_defun(self):\n    evaluate(defun=True)\n\n\nif __name__ == \"__main__\":\n  tfe.enable_eager_execution()\n  tf.test.main()\n"
  },
  {
    "path": "official/mnist/mnist_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport time\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.mnist import mnist\n\nBATCH_SIZE = 100\n\n\ndef dummy_input_fn():\n  image = tf.random_uniform([BATCH_SIZE, 784])\n  labels = tf.random_uniform([BATCH_SIZE, 1], maxval=9, dtype=tf.int32)\n  return image, labels\n\n\ndef make_estimator():\n  data_format = 'channels_last'\n  if tf.test.is_built_with_cuda():\n    data_format = 'channels_first'\n  return tf.estimator.Estimator(\n      model_fn=mnist.model_fn, params={\n          'data_format': data_format\n      })\n\n\nclass Tests(tf.test.TestCase):\n  \"\"\"Run tests for MNIST model.\"\"\"\n\n  def test_mnist(self):\n    classifier = make_estimator()\n    classifier.train(input_fn=dummy_input_fn, steps=2)\n    eval_results = classifier.evaluate(input_fn=dummy_input_fn, steps=1)\n\n    loss = eval_results['loss']\n    global_step = eval_results['global_step']\n    accuracy = eval_results['accuracy']\n    self.assertEqual(loss.shape, ())\n    self.assertEqual(2, global_step)\n    self.assertEqual(accuracy.shape, ())\n\n    input_fn = lambda: tf.random_uniform([3, 784])\n    predictions_generator = classifier.predict(input_fn)\n    for _ in range(3):\n      predictions = next(predictions_generator)\n      self.assertEqual(predictions['probabilities'].shape, (10,))\n      self.assertEqual(predictions['classes'].shape, ())\n\n  def mnist_model_fn_helper(self, mode, multi_gpu=False):\n    features, labels = dummy_input_fn()\n    image_count = features.shape[0]\n    spec = mnist.model_fn(features, labels, mode, {\n        'data_format': 'channels_last',\n        'multi_gpu': multi_gpu\n    })\n\n    if mode == tf.estimator.ModeKeys.PREDICT:\n      predictions = spec.predictions\n      self.assertAllEqual(predictions['probabilities'].shape, (image_count, 10))\n      self.assertEqual(predictions['probabilities'].dtype, tf.float32)\n      self.assertAllEqual(predictions['classes'].shape, (image_count,))\n      self.assertEqual(predictions['classes'].dtype, tf.int64)\n\n    if mode != tf.estimator.ModeKeys.PREDICT:\n      loss = spec.loss\n      self.assertAllEqual(loss.shape, ())\n      self.assertEqual(loss.dtype, tf.float32)\n\n    if mode == tf.estimator.ModeKeys.EVAL:\n      eval_metric_ops = spec.eval_metric_ops\n      self.assertAllEqual(eval_metric_ops['accuracy'][0].shape, ())\n      self.assertAllEqual(eval_metric_ops['accuracy'][1].shape, ())\n      self.assertEqual(eval_metric_ops['accuracy'][0].dtype, tf.float32)\n      self.assertEqual(eval_metric_ops['accuracy'][1].dtype, tf.float32)\n\n  def test_mnist_model_fn_train_mode(self):\n    self.mnist_model_fn_helper(tf.estimator.ModeKeys.TRAIN)\n\n  def test_mnist_model_fn_train_mode_multi_gpu(self):\n    self.mnist_model_fn_helper(tf.estimator.ModeKeys.TRAIN, multi_gpu=True)\n\n  def test_mnist_model_fn_eval_mode(self):\n    self.mnist_model_fn_helper(tf.estimator.ModeKeys.EVAL)\n\n  def test_mnist_model_fn_predict_mode(self):\n    self.mnist_model_fn_helper(tf.estimator.ModeKeys.PREDICT)\n\n\nclass Benchmarks(tf.test.Benchmark):\n  \"\"\"Simple speed benchmarking for MNIST.\"\"\"\n\n  def benchmark_train_step_time(self):\n    classifier = make_estimator()\n    # Run one step to warmup any use of the GPU.\n    classifier.train(input_fn=dummy_input_fn, steps=1)\n\n    have_gpu = tf.test.is_gpu_available()\n    num_steps = 1000 if have_gpu else 100\n    name = 'train_step_time_%s' % ('gpu' if have_gpu else 'cpu')\n\n    start = time.time()\n    classifier.train(input_fn=dummy_input_fn, steps=num_steps)\n    end = time.time()\n\n    wall_time = (end - start) / num_steps\n    self.report_benchmark(\n        iters=num_steps,\n        wall_time=wall_time,\n        name=name,\n        extras={\n            'examples_per_sec': BATCH_SIZE / wall_time\n        })\n\n\nif __name__ == '__main__':\n  tf.logging.set_verbosity(tf.logging.ERROR)\n  tf.test.main()\n"
  },
  {
    "path": "official/mnist/mnist_tpu.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"MNIST model training using TPUs.\n\nThis program demonstrates training of the convolutional neural network model\ndefined in mnist.py on Google Cloud TPUs (https://cloud.google.com/tpu/).\n\nIf you are not interested in TPUs, you should ignore this file.\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport sys\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\n# For open source environment, add grandparent directory for import\nsys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(sys.path[0]))))\n\nfrom official.mnist import dataset  # pylint: disable=wrong-import-position\nfrom official.mnist import mnist  # pylint: disable=wrong-import-position\n\n# Cloud TPU Cluster Resolver flags\ntf.flags.DEFINE_string(\n    \"tpu\", default=None,\n    help=\"The Cloud TPU to use for training. This should be either the name \"\n    \"used when creating the Cloud TPU, or a grpc://ip.address.of.tpu:8470 \"\n    \"url.\")\ntf.flags.DEFINE_string(\n    \"tpu_zone\", default=None,\n    help=\"[Optional] GCE zone where the Cloud TPU is located in. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\ntf.flags.DEFINE_string(\n    \"gcp_project\", default=None,\n    help=\"[Optional] Project name for the Cloud TPU-enabled project. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\n# Model specific parameters\ntf.flags.DEFINE_string(\"data_dir\", \"\",\n                       \"Path to directory containing the MNIST dataset\")\ntf.flags.DEFINE_string(\"model_dir\", None, \"Estimator model_dir\")\ntf.flags.DEFINE_integer(\"batch_size\", 1024,\n                        \"Mini-batch size for the training. Note that this \"\n                        \"is the global batch size and not the per-shard batch.\")\ntf.flags.DEFINE_integer(\"train_steps\", 1000, \"Total number of training steps.\")\ntf.flags.DEFINE_integer(\"eval_steps\", 0,\n                        \"Total number of evaluation steps. If `0`, evaluation \"\n                        \"after training is skipped.\")\ntf.flags.DEFINE_float(\"learning_rate\", 0.05, \"Learning rate.\")\n\ntf.flags.DEFINE_bool(\"use_tpu\", True, \"Use TPUs rather than plain CPUs\")\ntf.flags.DEFINE_integer(\"iterations\", 50,\n                        \"Number of iterations per TPU training loop.\")\ntf.flags.DEFINE_integer(\"num_shards\", 8, \"Number of shards (TPU chips).\")\n\nFLAGS = tf.flags.FLAGS\n\n\ndef metric_fn(labels, logits):\n  accuracy = tf.metrics.accuracy(\n      labels=labels, predictions=tf.argmax(logits, axis=1))\n  return {\"accuracy\": accuracy}\n\n\ndef model_fn(features, labels, mode, params):\n  \"\"\"model_fn constructs the ML model used to predict handwritten digits.\"\"\"\n\n  del params\n  if mode == tf.estimator.ModeKeys.PREDICT:\n    raise RuntimeError(\"mode {} is not supported yet\".format(mode))\n  image = features\n  if isinstance(image, dict):\n    image = features[\"image\"]\n\n  model = mnist.create_model(\"channels_last\")\n  logits = model(image, training=(mode == tf.estimator.ModeKeys.TRAIN))\n  loss = tf.losses.sparse_softmax_cross_entropy(labels=labels, logits=logits)\n\n  if mode == tf.estimator.ModeKeys.TRAIN:\n    learning_rate = tf.train.exponential_decay(\n        FLAGS.learning_rate,\n        tf.train.get_global_step(),\n        decay_steps=100000,\n        decay_rate=0.96)\n    optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)\n    if FLAGS.use_tpu:\n      optimizer = tf.contrib.tpu.CrossShardOptimizer(optimizer)\n    return tf.contrib.tpu.TPUEstimatorSpec(\n        mode=mode,\n        loss=loss,\n        train_op=optimizer.minimize(loss, tf.train.get_global_step()))\n\n  if mode == tf.estimator.ModeKeys.EVAL:\n    return tf.contrib.tpu.TPUEstimatorSpec(\n        mode=mode, loss=loss, eval_metrics=(metric_fn, [labels, logits]))\n\n\ndef train_input_fn(params):\n  \"\"\"train_input_fn defines the input pipeline used for training.\"\"\"\n  batch_size = params[\"batch_size\"]\n  data_dir = params[\"data_dir\"]\n  # Retrieves the batch size for the current shard. The # of shards is\n  # computed according to the input pipeline deployment. See\n  # `tf.contrib.tpu.RunConfig` for details.\n  ds = dataset.train(data_dir).cache().repeat().shuffle(\n      buffer_size=50000).apply(\n          tf.contrib.data.batch_and_drop_remainder(batch_size))\n  images, labels = ds.make_one_shot_iterator().get_next()\n  return images, labels\n\n\ndef eval_input_fn(params):\n  batch_size = params[\"batch_size\"]\n  data_dir = params[\"data_dir\"]\n  ds = dataset.test(data_dir).apply(\n      tf.contrib.data.batch_and_drop_remainder(batch_size))\n  images, labels = ds.make_one_shot_iterator().get_next()\n  return images, labels\n\n\ndef main(argv):\n  del argv  # Unused.\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(\n      FLAGS.tpu,\n      zone=FLAGS.tpu_zone,\n      project=FLAGS.gcp_project\n  )\n\n  run_config = tf.contrib.tpu.RunConfig(\n      cluster=tpu_cluster_resolver,\n      model_dir=FLAGS.model_dir,\n      session_config=tf.ConfigProto(\n          allow_soft_placement=True, log_device_placement=True),\n      tpu_config=tf.contrib.tpu.TPUConfig(FLAGS.iterations, FLAGS.num_shards),\n  )\n\n  estimator = tf.contrib.tpu.TPUEstimator(\n      model_fn=model_fn,\n      use_tpu=FLAGS.use_tpu,\n      train_batch_size=FLAGS.batch_size,\n      eval_batch_size=FLAGS.batch_size,\n      params={\"data_dir\": FLAGS.data_dir},\n      config=run_config)\n  # TPUEstimator.train *requires* a max_steps argument.\n  estimator.train(input_fn=train_input_fn, max_steps=FLAGS.train_steps)\n  # TPUEstimator.evaluate *requires* a steps argument.\n  # Note that the number of examples used during evaluation is\n  # --eval_steps * --batch_size.\n  # So if you change --batch_size then change --eval_steps too.\n  if FLAGS.eval_steps:\n    estimator.evaluate(input_fn=eval_input_fn, steps=FLAGS.eval_steps)\n\n\nif __name__ == \"__main__\":\n  tf.app.run()\n"
  },
  {
    "path": "official/recommendation/README.md",
    "content": "# Recommendation Model\n## Overview\nThis is an implementation of the Neural Collaborative Filtering (NCF) framework with Neural Matrix Factorization (NeuMF) model as described in the [Neural Collaborative Filtering](https://arxiv.org/abs/1708.05031) paper. Current implementation is based on the code from the authors' [NCF code](https://github.com/hexiangnan/neural_collaborative_filtering) and the Stanford implementation in the [MLPerf Repo](https://github.com/mlperf/reference/tree/master/recommendation/pytorch).\n\nNCF is a general framework for collaborative filtering of recommendations in which a neural network architecture is used to model user-item interactions. Unlike traditional models, NCF does not resort to Matrix Factorization (MF) with an inner product on latent features of users and items. It replaces the inner product with a multi-layer perceptron that can learn an arbitrary function from data.\n\nTwo instantiations of NCF are Generalized Matrix Factorization (GMF) and Multi-Layer Perceptron (MLP). GMF applies a linear kernel to model the latent feature interactions, and and MLP uses a nonlinear kernel to learn the interaction function from data. NeuMF is a fused model of GMF and MLP to better model the complex user-item interactions, and unifies the strengths of linearity of MF and non-linearity of MLP for modeling the user-item latent structures. NeuMF allows GMF and MLP to learn separate embeddings, and combines the two models by concatenating their last hidden layer. [neumf_model.py](neumf_model.py) defines the architecture details.\n\nSome abbreviations used the code base include:\n  - NCF: Neural Collaborative Filtering\n  - NeuMF: Neural Matrix Factorization\n  - GMF: Generalized Matrix Factorization\n  - MLP: Multi-Layer Perceptron\n  - HR: Hit Ratio (HR)\n  - NDCG: Normalized Discounted Cumulative Gain\n  - ml-1m: MovieLens 1 million dataset\n  - ml-20m: MovieLens 20 million dataset\n\n## Dataset\nThe [MovieLens datasets](http://files.grouplens.org/datasets/movielens/) are used for model training and evaluation. Specifically, we use two datasets: **ml-1m** (short for MovieLens 1 million) and **ml-20m** (short for MovieLens 20 million).\n\n### ml-1m\nml-1m dataset contains 1,000,209 anonymous ratings of approximately 3,706 movies made by 6,040 users who joined MovieLens in 2000. All ratings are contained in the file \"ratings.dat\" without header row, and are in the following format:\n```\n  UserID::MovieID::Rating::Timestamp\n```\n  - UserIDs range between 1 and 6040.\n  - MovieIDs range between 1 and 3952.\n  - Ratings are made on a 5-star scale (whole-star ratings only).\n\n### ml-20m\nml-20m dataset contains 20,000,263 ratings of 26,744 movies by 138493 users. All ratings are contained in the file \"ratings.csv\". Each line of this file after the header row represents one rating of one movie by one user, and has the following format:\n```\nuserId,movieId,rating,timestamp\n```\n  - The lines within this file are ordered first by userId, then, within user, by movieId.\n  - Ratings are made on a 5-star scale, with half-star increments (0.5 stars - 5.0 stars).\n\nIn both datasets, the timestamp is represented in seconds since midnight Coordinated Universal Time (UTC) of January 1, 1970. Each user has at least 20 ratings.\n\n## Running Code\n\n### Download and preprocess dataset\nTo download the dataset, please install Pandas package first. Then issue the following command:\n```\npython data_download.py\n```\nArguments:\n  * `--data_dir`: Directory where to download and save the preprocessed data. By default, it is `/tmp/movielens-data/`.\n  * `--dataset`: The dataset name to be downloaded and preprocessed. By default, it is `ml-1m`.\n\nUse the `--help` or `-h` flag to get a full list of possible arguments.\n\nNote the ml-20m dataset is large (the rating file is ~500 MB), and it may take several minutes (~10 mins) for data preprocessing.\n\n### Train and evaluate model\nTo train and evaluate the model, issue the following command:\n```\npython ncf_main.py\n```\nArguments:\n  * `--model_dir`: Directory to save model training checkpoints. By default, it is `/tmp/ncf/`.\n  * `--data_dir`: This should be set to the same directory given to the `data_download`'s `data_dir` argument.\n  * `--dataset`: The dataset name to be downloaded and preprocessed. By default, it is `ml-1m`.\n\nThere are other arguments about models and training process. Use the `--help` or `-h` flag to get a full list of possible arguments with detailed descriptions.\n\n## Benchmarks (TODO)\n### Training times\n### Evaluation results\n"
  },
  {
    "path": "official/recommendation/__init__.py",
    "content": ""
  },
  {
    "path": "official/recommendation/constants.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"NCF Constants.\"\"\"\n\nTRAIN_RATINGS_FILENAME = 'train-ratings.csv'\nTEST_RATINGS_FILENAME = 'test-ratings.csv'\nTEST_NEG_FILENAME = 'test-negative.csv'\n\nUSER = \"user_id\"\nITEM = \"item_id\"\nRATING = \"rating\"\n"
  },
  {
    "path": "official/recommendation/data_download.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Download and extract the MovieLens dataset from GroupLens website.\n\nDownload the dataset, and perform data-preprocessing to convert the raw dataset\ninto csv file to be used in model training and evaluation.\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport os\nimport sys\nimport time\nimport zipfile\n\n# pylint: disable=g-bad-import-order\nimport numpy as np\nimport pandas as pd\nfrom six.moves import urllib  # pylint: disable=redefined-builtin\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.recommendation import constants\nfrom official.utils.flags import core as flags_core\n\n# URL to download dataset\n_DATA_URL = \"http://files.grouplens.org/datasets/movielens/\"\n\n_USER_COLUMN = \"user_id\"\n_ITEM_COLUMN = \"item_id\"\n_RATING_COLUMN = \"rating\"\n_TIMESTAMP_COLUMN = \"timestamp\"\n# The number of negative examples attached with a positive example\n# in training dataset. It is set as 100 in the paper.\n_NUMBER_NEGATIVES = 100\n# In both datasets, each user has at least 20 ratings.\n_MIN_NUM_RATINGS = 20\n\nRatingData = collections.namedtuple(\n    \"RatingData\", [\"items\", \"users\", \"ratings\", \"min_date\", \"max_date\"])\n\n\ndef _print_ratings_description(ratings):\n  \"\"\"Describe the rating dataset information.\n\n  Args:\n    ratings: A pandas DataFrame of the rating dataset.\n  \"\"\"\n  info = RatingData(items=len(ratings[_ITEM_COLUMN].unique()),\n                    users=len(ratings[_USER_COLUMN].unique()),\n                    ratings=len(ratings),\n                    min_date=ratings[_TIMESTAMP_COLUMN].min(),\n                    max_date=ratings[_TIMESTAMP_COLUMN].max())\n  tf.logging.info(\"{ratings} ratings on {items} items from {users} users\"\n                  \" from {min_date} to {max_date}\".format(**(info._asdict())))\n\n\ndef process_movielens(ratings, sort=True):\n  \"\"\"Sort and convert timestamp of the MovieLens dataset.\n\n  Args:\n    ratings: A pandas DataFrame of the rating dataset.\n    sort: A boolean to indicate whether to sort the data based on timestamp.\n\n  Returns:\n    ratings: The processed pandas DataFrame.\n  \"\"\"\n  ratings[_TIMESTAMP_COLUMN] = pd.to_datetime(\n      ratings[_TIMESTAMP_COLUMN], unit=\"s\")\n  if sort:\n    ratings.sort_values(by=_TIMESTAMP_COLUMN, inplace=True)\n  _print_ratings_description(ratings)\n  return ratings\n\n\ndef load_movielens_1_million(file_name, sort=True):\n  \"\"\"Load the MovieLens 1 million dataset.\n\n  The file has no header row, and each line is in the following format:\n    UserID::MovieID::Rating::Timestamp\n      - UserIDs range between 1 and 6040\n      - MovieIDs range between 1 and 3952\n      - Ratings are made on a 5-star scale (whole-star ratings only)\n      - Timestamp is represented in seconds since midnight Coordinated Universal\n        Time (UTC) of January 1, 1970.\n      - Each user has at least 20 ratings\n\n  Args:\n    file_name: A string of the file name to be loaded.\n    sort: A boolean to indicate whether to sort the data based on timestamp.\n\n  Returns:\n    A processed pandas DataFrame of the rating dataset.\n  \"\"\"\n  names = [_USER_COLUMN, _ITEM_COLUMN, _RATING_COLUMN, _TIMESTAMP_COLUMN]\n  ratings = pd.read_csv(file_name, sep=\"::\", names=names, engine=\"python\")\n  return process_movielens(ratings, sort=sort)\n\n\ndef load_movielens_20_million(file_name, sort=True):\n  \"\"\"Load the MovieLens 20 million dataset.\n\n  Each line of this file after the header row represents one rating of one movie\n  by one user, and has the following format:\n    userId,movieId,rating,timestamp\n    - The lines within this file are ordered first by userId, then, within user,\n      by movieId.\n    - Ratings are made on a 5-star scale, with half-star increments\n      (0.5 stars - 5.0 stars).\n    - Timestamps represent seconds since midnight Coordinated Universal Time\n      (UTC) of January 1, 1970.\n    - All the users had rated at least 20 movies.\n\n\n  Args:\n    file_name: A string of the file name to be loaded.\n    sort: A boolean to indicate whether to sort the data based on timestamp.\n\n  Returns:\n    A processed pandas DataFrame of the rating dataset.\n  \"\"\"\n  ratings = pd.read_csv(file_name)\n  names = {\"userId\": _USER_COLUMN, \"movieId\": _ITEM_COLUMN}\n  ratings.rename(columns=names, inplace=True)\n  return process_movielens(ratings, sort=sort)\n\n\ndef load_file_to_df(file_name, sort=True):\n  \"\"\"Load rating dataset into DataFrame.\n\n  Two data loading functions are defined to handle dataset ml-1m and ml-20m,\n  as they are provided with different formats.\n\n  Args:\n    file_name: A string of the file name to be loaded.\n    sort: A boolean to indicate whether to sort the data based on timestamp.\n\n  Returns:\n    A pandas DataFrame of the rating dataset.\n  \"\"\"\n  dataset_name = os.path.basename(file_name).split(\".\")[0]\n  # ml-1m with extension .dat\n  file_extension = \".dat\"\n  func = load_movielens_1_million\n  if dataset_name == \"ml-20m\":\n    file_extension = \".csv\"\n    func = load_movielens_20_million\n  ratings_file = os.path.join(file_name, \"ratings\" + file_extension)\n  return func(ratings_file, sort=sort)\n\n\ndef generate_train_eval_data(df, original_users, original_items):\n  \"\"\"Generate the dataset for model training and evaluation.\n\n  Given all user and item interaction information, for each user, first sort\n  the interactions based on timestamp. Then the latest one is taken out as\n  Test ratings (leave-one-out evaluation) and the remaining data for training.\n  The Test negatives are randomly sampled from all non-interacted items, and the\n  number of Test negatives is 100 by default (defined as _NUMBER_NEGATIVES).\n\n  Args:\n    df: The DataFrame of ratings data.\n    original_users: A list of the original unique user ids in the dataset.\n    original_items: A list of the original unique item ids in the dataset.\n\n  Returns:\n    all_ratings: A list of the [user_id, item_id] with interactions.\n    test_ratings: A list of [user_id, item_id], and each line is the latest\n      user_item interaction for the user.\n    test_negs: A list of item ids with shape [num_users, 100].\n      Each line consists of 100 item ids for the user with no interactions.\n  \"\"\"\n  # Need to sort before popping to get last item\n  tf.logging.info(\"Sorting user_item_map by timestamp...\")\n  df.sort_values(by=_TIMESTAMP_COLUMN, inplace=True)\n  all_ratings = set(zip(df[_USER_COLUMN], df[_ITEM_COLUMN]))\n  user_to_items = collections.defaultdict(list)\n\n  # Generate user_item rating matrix for training\n  t1 = time.time()\n  row_count = 0\n  for row in df.itertuples():\n    user_to_items[getattr(row, _USER_COLUMN)].append(getattr(row, _ITEM_COLUMN))\n    row_count += 1\n    if row_count % 50000 == 0:\n      tf.logging.info(\"Processing user_to_items row: {}\".format(row_count))\n  tf.logging.info(\n      \"Process {} rows in [{:.1f}]s\".format(row_count, time.time() - t1))\n\n  # Generate test ratings and test negatives\n  t2 = time.time()\n  test_ratings = []\n  test_negs = []\n  # Generate the 0-based index for each item, and put it into a set\n  all_items = set(range(len(original_items)))\n  for user in range(len(original_users)):\n    test_item = user_to_items[user].pop()  # Get the latest item id\n\n    all_ratings.remove((user, test_item))  # Remove the test item\n    all_negs = all_items.difference(user_to_items[user])\n    all_negs = sorted(list(all_negs))  # determinism\n\n    test_ratings.append((user, test_item))\n    test_negs.append(list(np.random.choice(all_negs, _NUMBER_NEGATIVES)))\n\n    if user % 1000 == 0:\n      tf.logging.info(\"Processing user: {}\".format(user))\n\n  tf.logging.info(\"Process {} users in {:.1f}s\".format(\n      len(original_users), time.time() - t2))\n\n  all_ratings = list(all_ratings)  # convert set to list\n  return all_ratings, test_ratings, test_negs\n\n\ndef parse_file_to_csv(data_dir, dataset_name):\n  \"\"\"Parse the raw data to csv file to be used in model training and evaluation.\n\n  ml-1m dataset is small in size (~25M), while ml-20m is large (~500M). It may\n  take several minutes to process ml-20m dataset.\n\n  Args:\n    data_dir: A string, the directory with the unzipped dataset.\n    dataset_name: A string, the dataset name to be processed.\n  \"\"\"\n\n  # Use random seed as parameter\n  np.random.seed(0)\n\n  # Load the file as DataFrame\n  file_path = os.path.join(data_dir, dataset_name)\n  df = load_file_to_df(file_path, sort=False)\n\n  # Get the info of users who have more than 20 ratings on items\n  grouped = df.groupby(_USER_COLUMN)\n  df = grouped.filter(lambda x: len(x) >= _MIN_NUM_RATINGS)\n  original_users = df[_USER_COLUMN].unique()\n  original_items = df[_ITEM_COLUMN].unique()\n\n  # Map the ids of user and item to 0 based index for following processing\n  tf.logging.info(\"Generating user_map and item_map...\")\n  user_map = {user: index for index, user in enumerate(original_users)}\n  item_map = {item: index for index, item in enumerate(original_items)}\n\n  df[_USER_COLUMN] = df[_USER_COLUMN].apply(lambda user: user_map[user])\n  df[_ITEM_COLUMN] = df[_ITEM_COLUMN].apply(lambda item: item_map[item])\n  assert df[_USER_COLUMN].max() == len(original_users) - 1\n  assert df[_ITEM_COLUMN].max() == len(original_items) - 1\n\n  # Generate data for train and test\n  all_ratings, test_ratings, test_negs = generate_train_eval_data(\n      df, original_users, original_items)\n\n  # Serialize to csv file. Each csv file contains three columns\n  # (user_id, item_id, interaction)\n  # As there are only two fields (user_id, item_id) in all_ratings and\n  # test_ratings, we need to add a fake rating to make three columns\n  df_train_ratings = pd.DataFrame(all_ratings)\n  df_train_ratings[\"fake_rating\"] = 1\n  train_ratings_file = os.path.join(\n      FLAGS.data_dir, dataset_name + \"-\" + constants.TRAIN_RATINGS_FILENAME)\n  df_train_ratings.to_csv(\n      train_ratings_file,\n      index=False, header=False, sep=\"\\t\")\n  tf.logging.info(\"Train ratings is {}\".format(train_ratings_file))\n\n  df_test_ratings = pd.DataFrame(test_ratings)\n  df_test_ratings[\"fake_rating\"] = 1\n  test_ratings_file = os.path.join(\n      FLAGS.data_dir, dataset_name + \"-\" + constants.TEST_RATINGS_FILENAME)\n  df_test_ratings.to_csv(\n      test_ratings_file,\n      index=False, header=False, sep=\"\\t\")\n  tf.logging.info(\"Test ratings is {}\".format(test_ratings_file))\n\n  df_test_negs = pd.DataFrame(test_negs)\n  test_negs_file = os.path.join(\n      FLAGS.data_dir, dataset_name + \"-\" + constants.TEST_NEG_FILENAME)\n  df_test_negs.to_csv(\n      test_negs_file,\n      index=False, header=False, sep=\"\\t\")\n  tf.logging.info(\"Test negatives is {}\".format(test_negs_file))\n\n\ndef make_dir(file_dir):\n  if not tf.gfile.Exists(file_dir):\n    tf.logging.info(\"Creating directory {}\".format(file_dir))\n    tf.gfile.MakeDirs(file_dir)\n\n\ndef main(_):\n  \"\"\"Download and extract the data from GroupLens website.\"\"\"\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  make_dir(FLAGS.data_dir)\n\n  assert FLAGS.dataset, (\n      \"Please specify which dataset to download. \"\n      \"Two datasets are available: ml-1m and ml-20m.\")\n\n  # Download the zip dataset\n  dataset_zip = FLAGS.dataset + \".zip\"\n  file_path = os.path.join(FLAGS.data_dir, dataset_zip)\n  if not tf.gfile.Exists(file_path):\n    def _progress(count, block_size, total_size):\n      sys.stdout.write(\"\\r>> Downloading {} {:.1f}%\".format(\n          file_path, 100.0 * count * block_size / total_size))\n      sys.stdout.flush()\n\n    file_path, _ = urllib.request.urlretrieve(\n        _DATA_URL + dataset_zip, file_path, _progress)\n    statinfo = os.stat(file_path)\n    # A new line to clear the carriage return from download progress\n    # tf.logging.info is not applicable here\n    print()\n    tf.logging.info(\n        \"Successfully downloaded {} {} bytes\".format(\n            file_path, statinfo.st_size))\n\n  # Unzip the dataset\n  if not tf.gfile.Exists(os.path.join(FLAGS.data_dir, FLAGS.dataset)):\n    zipfile.ZipFile(file_path, \"r\").extractall(FLAGS.data_dir)\n\n  # Preprocess and parse the dataset to csv\n  train_ratings = FLAGS.dataset + \"-\" + constants.TRAIN_RATINGS_FILENAME\n  if not tf.gfile.Exists(os.path.join(FLAGS.data_dir, train_ratings)):\n    parse_file_to_csv(FLAGS.data_dir, FLAGS.dataset)\n\n\ndef define_data_download_flags():\n  \"\"\"Add flags specifying data download arguments.\"\"\"\n  flags.DEFINE_string(\n      name=\"data_dir\", default=\"/tmp/movielens-data/\",\n      help=flags_core.help_wrap(\n          \"Directory to download and extract data.\"))\n\n  flags.DEFINE_enum(\n      name=\"dataset\", default=None,\n      enum_values=[\"ml-1m\", \"ml-20m\"], case_sensitive=False,\n      help=flags_core.help_wrap(\n          \"Dataset to be trained and evaluated. Two datasets are available \"\n          \": ml-1m and ml-20m.\"))\n\n\nif __name__ == \"__main__\":\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_data_download_flags()\n  FLAGS = flags.FLAGS\n  absl_app.run(main)\n"
  },
  {
    "path": "official/recommendation/dataset.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Prepare dataset for NCF.\n\nLoad the training dataset and evaluation dataset from csv file into memory.\nPrepare input for model training and evaluation.\n\"\"\"\nimport numpy as np\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\n\nfrom official.recommendation import constants  # pylint: disable=g-bad-import-order\n\n# The buffer size for shuffling train dataset.\n_SHUFFLE_BUFFER_SIZE = 1024\n\n\nclass NCFDataSet(object):\n  \"\"\"A class containing data information for model training and evaluation.\"\"\"\n\n  def __init__(self, train_data, num_users, num_items, num_negatives,\n               true_items, all_items, all_eval_data):\n    \"\"\"Initialize NCFDataset class.\n\n    Args:\n      train_data: A list containing the positive training instances.\n      num_users: An integer, the number of users in training dataset.\n      num_items: An integer, the number of items in training dataset.\n      num_negatives: An integer, the number of negative instances for each user\n        in train dataset.\n      true_items: A list, the ground truth (positive) items of users for\n        evaluation. Each entry is a latest positive instance for one user.\n      all_items: A nested list, all items for evaluation, and each entry is the\n        evaluation items for one user.\n      all_eval_data: A numpy array of eval/test dataset.\n    \"\"\"\n    self.train_data = train_data\n    self.num_users = num_users\n    self.num_items = num_items\n    self.num_negatives = num_negatives\n    self.eval_true_items = true_items\n    self.eval_all_items = all_items\n    self.all_eval_data = all_eval_data\n\n\ndef load_data(file_name):\n  \"\"\"Load data from a csv file which splits on tab key.\"\"\"\n  lines = tf.gfile.Open(file_name, \"r\").readlines()\n\n  # Process the file line by line\n  def _process_line(line):\n    return [int(col) for col in line.split(\"\\t\")]\n\n  data = [_process_line(line) for line in lines]\n  return data\n\n\ndef data_preprocessing(train_fname, test_fname, test_neg_fname, num_negatives):\n  \"\"\"Preprocess the train and test dataset.\n\n  In data preprocessing, the training positive instances are loaded into memory\n  for random negative instance generation in each training epoch. The test\n  dataset are generated from test positive and negative instances.\n\n  Args:\n    train_fname: A string, the file name of training positive dataset.\n    test_fname: A string, the file name of test positive dataset. Each user has\n      one positive instance.\n    test_neg_fname: A string, the file name of test negative dataset. Each user\n      has 100 negative instances by default.\n    num_negatives: An integer, the number of negative instances for each user\n      in train dataset.\n\n  Returns:\n    ncf_dataset: A NCFDataset object containing information about training and\n      evaluation/test dataset.\n  \"\"\"\n  # Load training positive instances into memory for later train data generation\n  train_data = load_data(train_fname)\n  # Get total number of users in the dataset\n  num_users = len(np.unique(np.array(train_data)[:, 0]))\n\n  # Process test dataset to csv file\n  test_ratings = load_data(test_fname)\n  test_negatives = load_data(test_neg_fname)\n  # Get the total number of items in both train dataset and test dataset (the\n  # whole dataset)\n  num_items = len(\n      set(np.array(train_data)[:, 1]) | set(np.array(test_ratings)[:, 1]))\n\n  # Generate test instances for each user\n  true_items, all_items = [], []\n  all_test_data = []\n  for idx in range(num_users):\n    items = test_negatives[idx]\n    rating = test_ratings[idx]\n    user = rating[0]  # User\n    true_item = rating[1]  # Positive item as ground truth\n\n    # All items with first 100 as negative and last one positive\n    items.append(true_item)\n    users = np.full(len(items), user, dtype=np.int32)\n\n    users_items = list(zip(users, items))  # User-item list\n    true_items.append(true_item)  # all ground truth items\n    all_items.append(items)  # All items (including positive and negative items)\n    all_test_data.extend(users_items)  # Generate test dataset\n\n  # Create NCFDataset object\n  ncf_dataset = NCFDataSet(\n      train_data, num_users, num_items, num_negatives, true_items, all_items,\n      np.asarray(all_test_data)\n  )\n\n  return ncf_dataset\n\n\ndef generate_train_dataset(train_data, num_items, num_negatives):\n  \"\"\"Generate train dataset for each epoch.\n\n  Given positive training instances, randomly generate negative instances to\n  form the training dataset.\n\n  Args:\n    train_data: A list of positive training instances.\n    num_items: An integer, the number of items in positive training instances.\n    num_negatives: An integer, the number of negative training instances\n      following positive training instances. It is 4 by default.\n\n  Returns:\n    A numpy array of training dataset.\n  \"\"\"\n  all_train_data = []\n  # A set with user-item tuples\n  train_data_set = set((u, i) for u, i, _ in train_data)\n  for u, i, _ in train_data:\n    # Positive instance\n    all_train_data.append([u, i, 1])\n    # Negative instances, randomly generated\n    for _ in xrange(num_negatives):\n      j = np.random.randint(num_items)\n      while (u, j) in train_data_set:\n        j = np.random.randint(num_items)\n      all_train_data.append([u, j, 0])\n\n  return np.asarray(all_train_data)\n\n\ndef input_fn(training, batch_size, ncf_dataset, repeat=1):\n  \"\"\"Input function for model training and evaluation.\n\n  The train input consists of 1 positive instance (user and item have\n  interactions) followed by some number of negative instances in which the items\n  are randomly chosen. The number of negative instances is \"num_negatives\" which\n  is 4 by default. Note that for each epoch, we need to re-generate the negative\n  instances. Together with positive instances, they form a new train dataset.\n\n  Args:\n    training: A boolean flag for training mode.\n    batch_size: An integer, batch size for training and evaluation.\n    ncf_dataset: An NCFDataSet object, which contains the information about\n      training and test data.\n    repeat: An integer, how many times to repeat the dataset.\n\n  Returns:\n    dataset: A tf.data.Dataset object containing examples loaded from the files.\n  \"\"\"\n  # Generate random negative instances for training in each epoch\n  if training:\n    train_data = generate_train_dataset(\n        ncf_dataset.train_data, ncf_dataset.num_items,\n        ncf_dataset.num_negatives)\n    # Get train features and labels\n    train_features = [\n        (constants.USER, np.expand_dims(train_data[:, 0], axis=1)),\n        (constants.ITEM, np.expand_dims(train_data[:, 1], axis=1))\n    ]\n    train_labels = [\n        (constants.RATING, np.expand_dims(train_data[:, 2], axis=1))]\n\n    dataset = tf.data.Dataset.from_tensor_slices(\n        (dict(train_features), dict(train_labels))\n    )\n    dataset = dataset.shuffle(buffer_size=_SHUFFLE_BUFFER_SIZE)\n  else:\n    # Create eval/test dataset\n    test_user = ncf_dataset.all_eval_data[:, 0]\n    test_item = ncf_dataset.all_eval_data[:, 1]\n    test_features = [\n        (constants.USER, np.expand_dims(test_user, axis=1)),\n        (constants.ITEM, np.expand_dims(test_item, axis=1))]\n\n    dataset = tf.data.Dataset.from_tensor_slices(dict(test_features))\n\n  # Repeat and batch the dataset\n  dataset = dataset.repeat(repeat)\n  dataset = dataset.batch(batch_size)\n\n  # Prefetch to improve speed of input pipeline.\n  dataset = dataset.prefetch(1)\n  return dataset\n"
  },
  {
    "path": "official/recommendation/dataset_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Unit tests for dataset.py.\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\nimport numpy as np\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.recommendation import dataset\n\n_TRAIN_FNAME = os.path.join(\n    os.path.dirname(__file__), \"unittest_data/test_train_ratings.csv\")\n_TEST_FNAME = os.path.join(\n    os.path.dirname(__file__), \"unittest_data/test_eval_ratings.csv\")\n_TEST_NEG_FNAME = os.path.join(\n    os.path.dirname(__file__), \"unittest_data/test_eval_negative.csv\")\n_NUM_NEG = 4\n\n\nclass DatasetTest(tf.test.TestCase):\n\n  def test_load_data(self):\n    data = dataset.load_data(_TEST_FNAME)\n    self.assertEqual(len(data), 2)\n\n    self.assertEqual(data[0][0], 0)\n    self.assertEqual(data[0][2], 1)\n\n    self.assertEqual(data[-1][0], 1)\n    self.assertEqual(data[-1][2], 1)\n\n  def test_data_preprocessing(self):\n    ncf_dataset = dataset.data_preprocessing(\n        _TRAIN_FNAME, _TEST_FNAME, _TEST_NEG_FNAME, _NUM_NEG)\n\n    # Check train data preprocessing\n    self.assertAllEqual(np.array(ncf_dataset.train_data)[:, 2],\n                        np.full(len(ncf_dataset.train_data), 1))\n    self.assertEqual(ncf_dataset.num_users, 2)\n    self.assertEqual(ncf_dataset.num_items, 175)\n\n    # Check test dataset\n    test_dataset = ncf_dataset.all_eval_data\n    first_true_item = test_dataset[100]\n    self.assertEqual(first_true_item[1], ncf_dataset.eval_true_items[0])\n    self.assertEqual(first_true_item[1], ncf_dataset.eval_all_items[0][-1])\n\n    last_gt_item = test_dataset[-1]\n    self.assertEqual(last_gt_item[1], ncf_dataset.eval_true_items[-1])\n    self.assertEqual(last_gt_item[1], ncf_dataset.eval_all_items[-1][-1])\n\n    test_list = test_dataset.tolist()\n\n    first_test_items = [x[1] for x in test_list if x[0] == 0]\n    self.assertAllEqual(first_test_items, ncf_dataset.eval_all_items[0])\n\n    last_test_items = [x[1] for x in test_list if x[0] == 1]\n    self.assertAllEqual(last_test_items, ncf_dataset.eval_all_items[-1])\n\n  def test_generate_train_dataset(self):\n    # Check train dataset\n    ncf_dataset = dataset.data_preprocessing(\n        _TRAIN_FNAME, _TEST_FNAME, _TEST_NEG_FNAME, _NUM_NEG)\n\n    train_dataset = dataset.generate_train_dataset(\n        ncf_dataset.train_data, ncf_dataset.num_items, _NUM_NEG)\n\n    # Each user has 1 positive instance followed by _NUM_NEG negative instances\n    train_data_0 = train_dataset[0]\n    self.assertEqual(train_data_0[2], 1)\n    for i in range(1, _NUM_NEG + 1):\n      train_data = train_dataset[i]\n      self.assertEqual(train_data_0[0], train_data[0])\n      self.assertNotEqual(train_data_0[1], train_data[1])\n      self.assertEqual(0, train_data[2])\n\n    train_data_last = train_dataset[-1 - _NUM_NEG]\n    self.assertEqual(train_data_last[2], 1)\n    for i in range(-1, -_NUM_NEG):\n      train_data = train_dataset[i]\n      self.assertEqual(train_data_last[0], train_data[0])\n      self.assertNotEqual(train_data_last[1], train_data[1])\n      self.assertEqual(0, train_data[2])\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/recommendation/ncf_main.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"NCF framework to train and evaluate the NeuMF model.\n\nThe NeuMF model assembles both MF and MLP models under the NCF framework. Check\n`neumf_model.py` for more details about the models.\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport heapq\nimport math\nimport os\n\n# pylint: disable=g-bad-import-order\nimport numpy as np\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.recommendation import constants\nfrom official.recommendation import dataset\nfrom official.recommendation import neumf_model\nfrom official.utils.flags import core as flags_core\nfrom official.utils.logs import hooks_helper\nfrom official.utils.logs import logger\nfrom official.utils.misc import model_helpers\n\n_TOP_K = 10  # Top-k list for evaluation\n# keys for evaluation metrics\n_HR_KEY = \"HR\"\n_NDCG_KEY = \"NDCG\"\n\n\ndef evaluate_model(estimator, batch_size, num_gpus, ncf_dataset):\n  \"\"\"Model evaluation with HR and NDCG metrics.\n\n  The evaluation protocol is to rank the test interacted item (truth items)\n  among the randomly chosen 100 items that are not interacted by the user.\n  The performance of the ranked list is judged by Hit Ratio (HR) and Normalized\n  Discounted Cumulative Gain (NDCG).\n\n  For evaluation, the ranked list is truncated at 10 for both metrics. As such,\n  the HR intuitively measures whether the test item is present on the top-10\n  list, and the NDCG accounts for the position of the hit by assigning higher\n  scores to hits at top ranks. Both metrics are calculated for each test user,\n  and the average scores are reported.\n\n  Args:\n    estimator: The Estimator.\n    batch_size: An integer, the batch size specified by user.\n    num_gpus: An integer, the number of gpus specified by user.\n    ncf_dataset: An NCFDataSet object, which contains the information about\n      test/eval dataset, such as:\n      eval_true_items, which is a list of test items (true items) for HR and\n        NDCG calculation. Each item is for one user.\n      eval_all_items, which is a nested list. Each entry is the 101 items\n        (1 ground truth item and 100 negative items) for one user.\n\n  Returns:\n    eval_results: A dict of evaluation results for benchmark logging.\n      eval_results = {\n        _HR_KEY: hr,\n        _NDCG_KEY: ndcg,\n        tf.GraphKeys.GLOBAL_STEP: global_step\n      }\n      where hr is an integer indicating the average HR scores across all users,\n      ndcg is an integer representing the average NDCG scores across all users,\n      and global_step is the global step\n  \"\"\"\n  # Define prediction input function\n  def pred_input_fn():\n    return dataset.input_fn(\n        False, per_device_batch_size(batch_size, num_gpus), ncf_dataset)\n\n  # Get predictions\n  predictions = estimator.predict(input_fn=pred_input_fn)\n  all_predicted_scores = [p[constants.RATING] for p in predictions]\n\n  # Calculate HR score\n  def _get_hr(ranklist, true_item):\n    return 1 if true_item in ranklist else 0\n\n  # Calculate NDCG score\n  def _get_ndcg(ranklist, true_item):\n    if true_item in ranklist:\n      return math.log(2) / math.log(ranklist.index(true_item) + 2)\n    return 0\n\n  hits, ndcgs = [], []\n  num_users = len(ncf_dataset.eval_true_items)\n  # Reshape the predicted scores and each user takes one row\n  predicted_scores_list = np.asarray(\n      all_predicted_scores).reshape(num_users, -1)\n\n  for i in range(num_users):\n    items = ncf_dataset.eval_all_items[i]\n    predicted_scores = predicted_scores_list[i]\n    # Map item and score for each user\n    map_item_score = {}\n    for j, item in enumerate(items):\n      score = predicted_scores[j]\n      map_item_score[item] = score\n\n    # Evaluate top rank list with HR and NDCG\n    ranklist = heapq.nlargest(_TOP_K, map_item_score, key=map_item_score.get)\n    true_item = ncf_dataset.eval_true_items[i]\n    hr = _get_hr(ranklist, true_item)\n    ndcg = _get_ndcg(ranklist, true_item)\n    hits.append(hr)\n    ndcgs.append(ndcg)\n\n  # Get average HR and NDCG scores\n  hr, ndcg = np.array(hits).mean(), np.array(ndcgs).mean()\n  global_step = estimator.get_variable_value(tf.GraphKeys.GLOBAL_STEP)\n  eval_results = {\n      _HR_KEY: hr,\n      _NDCG_KEY: ndcg,\n      tf.GraphKeys.GLOBAL_STEP: global_step\n  }\n  return eval_results\n\n\ndef convert_keras_to_estimator(keras_model, num_gpus, model_dir):\n  \"\"\"Configure and convert keras model to Estimator.\n\n  Args:\n    keras_model: A Keras model object.\n    num_gpus: An integer, the number of gpus.\n    model_dir: A string, the directory to save and restore checkpoints.\n\n  Returns:\n    est_model: The converted Estimator.\n  \"\"\"\n  # TODO(b/79866338): update GradientDescentOptimizer with AdamOptimizer\n  optimizer = tf.train.GradientDescentOptimizer(\n      learning_rate=FLAGS.learning_rate)\n  keras_model.compile(optimizer=optimizer, loss=\"binary_crossentropy\")\n\n  if num_gpus == 0:\n    distribution = tf.contrib.distribute.OneDeviceStrategy(\"device:CPU:0\")\n  elif num_gpus == 1:\n    distribution = tf.contrib.distribute.OneDeviceStrategy(\"device:GPU:0\")\n  else:\n    distribution = tf.contrib.distribute.MirroredStrategy(num_gpus=num_gpus)\n\n  run_config = tf.estimator.RunConfig(train_distribute=distribution)\n\n  estimator = tf.keras.estimator.model_to_estimator(\n      keras_model=keras_model, model_dir=model_dir, config=run_config)\n\n  return estimator\n\n\ndef per_device_batch_size(batch_size, num_gpus):\n  \"\"\"For multi-gpu, batch-size must be a multiple of the number of GPUs.\n\n  Note that this should eventually be handled by DistributionStrategies\n  directly. Multi-GPU support is currently experimental, however,\n  so doing the work here until that feature is in place.\n\n  Args:\n    batch_size: Global batch size to be divided among devices. This should be\n      equal to num_gpus times the single-GPU batch_size for multi-gpu training.\n    num_gpus: How many GPUs are used with DistributionStrategies.\n\n  Returns:\n    Batch size per device.\n\n  Raises:\n    ValueError: if batch_size is not divisible by number of devices\n  \"\"\"\n  if num_gpus <= 1:\n    return batch_size\n\n  remainder = batch_size % num_gpus\n  if remainder:\n    err = (\"When running with multiple GPUs, batch size \"\n           \"must be a multiple of the number of available GPUs. Found {} \"\n           \"GPUs with a batch size of {}; try --batch_size={} instead.\"\n          ).format(num_gpus, batch_size, batch_size - remainder)\n    raise ValueError(err)\n  return int(batch_size / num_gpus)\n\n\ndef main(_):\n  # Data preprocessing\n  # The file name of training and test dataset\n  train_fname = os.path.join(\n      FLAGS.data_dir, FLAGS.dataset + \"-\" + constants.TRAIN_RATINGS_FILENAME)\n  test_fname = os.path.join(\n      FLAGS.data_dir, FLAGS.dataset + \"-\" + constants.TEST_RATINGS_FILENAME)\n  neg_fname = os.path.join(\n      FLAGS.data_dir, FLAGS.dataset + \"-\" + constants.TEST_NEG_FILENAME)\n\n  assert os.path.exists(train_fname), (\n      \"Run data_download.py first to download and extract {} dataset\".format(\n          FLAGS.dataset))\n\n  tf.logging.info(\"Data preprocessing...\")\n  ncf_dataset = dataset.data_preprocessing(\n      train_fname, test_fname, neg_fname, FLAGS.num_neg)\n\n  # Create NeuMF model and convert it to Estimator\n  tf.logging.info(\"Creating Estimator from Keras model...\")\n  layers = [int(layer) for layer in FLAGS.layers]\n  mlp_regularization = [float(reg) for reg in FLAGS.mlp_regularization]\n  keras_model = neumf_model.NeuMF(\n      ncf_dataset.num_users, ncf_dataset.num_items, FLAGS.num_factors,\n      layers, FLAGS.batch_size, FLAGS.mf_regularization,\n      mlp_regularization)\n  num_gpus = flags_core.get_num_gpus(FLAGS)\n  estimator = convert_keras_to_estimator(keras_model, num_gpus, FLAGS.model_dir)\n\n  # Create hooks that log information about the training and metric values\n  train_hooks = hooks_helper.get_train_hooks(\n      FLAGS.hooks,\n      batch_size=FLAGS.batch_size  # for ExamplesPerSecondHook\n  )\n  run_params = {\n      \"batch_size\": FLAGS.batch_size,\n      \"number_factors\": FLAGS.num_factors,\n      \"hr_threshold\": FLAGS.hr_threshold,\n      \"train_epochs\": FLAGS.train_epochs,\n  }\n  benchmark_logger = logger.config_benchmark_logger(FLAGS)\n  benchmark_logger.log_run_info(\n      model_name=\"recommendation\",\n      dataset_name=FLAGS.dataset,\n      run_params=run_params)\n\n  # Training and evaluation cycle\n  def train_input_fn():\n    return dataset.input_fn(\n        True, per_device_batch_size(FLAGS.batch_size, num_gpus),\n        ncf_dataset, FLAGS.epochs_between_evals)\n\n  total_training_cycle = FLAGS.train_epochs // FLAGS.epochs_between_evals\n\n  for cycle_index in range(total_training_cycle):\n    tf.logging.info(\"Starting a training cycle: {}/{}\".format(\n        cycle_index + 1, total_training_cycle))\n\n    # Train the model\n    estimator.train(input_fn=train_input_fn, hooks=train_hooks)\n\n    # Evaluate the model\n    eval_results = evaluate_model(\n        estimator, FLAGS.batch_size, num_gpus, ncf_dataset)\n\n    # Benchmark the evaluation results\n    benchmark_logger.log_evaluation_result(eval_results)\n    # Log the HR and NDCG results.\n    hr = eval_results[_HR_KEY]\n    ndcg = eval_results[_NDCG_KEY]\n    tf.logging.info(\n        \"Iteration {}: HR = {:.4f}, NDCG = {:.4f}\".format(\n            cycle_index + 1, hr, ndcg))\n\n    # If some evaluation threshold is met\n    if model_helpers.past_stop_threshold(FLAGS.hr_threshold, hr):\n      break\n\n  # Clear the session explicitly to avoid session delete error\n  tf.keras.backend.clear_session()\n\n\ndef define_ncf_flags():\n  \"\"\"Add flags for running ncf_main.\"\"\"\n  # Add common flags\n  flags_core.define_base(export_dir=False)\n  flags_core.define_performance(\n      num_parallel_calls=False,\n      inter_op=False,\n      intra_op=False,\n      synthetic_data=False,\n      max_train_steps=False,\n      dtype=False\n  )\n  flags_core.define_benchmark()\n\n  flags.adopt_module_key_flags(flags_core)\n\n  flags_core.set_defaults(\n      model_dir=\"/tmp/ncf/\",\n      data_dir=\"/tmp/movielens-data/\",\n      train_epochs=2,\n      batch_size=256,\n      hooks=\"ProfilerHook\")\n\n  # Add ncf-specific flags\n  flags.DEFINE_enum(\n      name=\"dataset\", default=\"ml-1m\",\n      enum_values=[\"ml-1m\", \"ml-20m\"], case_sensitive=False,\n      help=flags_core.help_wrap(\n          \"Dataset to be trained and evaluated.\"))\n\n  flags.DEFINE_integer(\n      name=\"num_factors\", default=8,\n      help=flags_core.help_wrap(\"The Embedding size of MF model.\"))\n\n  # Set the default as a list of strings to be consistent with input arguments\n  flags.DEFINE_list(\n      name=\"layers\", default=[\"64\", \"32\", \"16\", \"8\"],\n      help=flags_core.help_wrap(\n          \"The sizes of hidden layers for MLP. Example \"\n          \"to specify different sizes of MLP layers: --layers=32,16,8,4\"))\n\n  flags.DEFINE_float(\n      name=\"mf_regularization\", default=0.,\n      help=flags_core.help_wrap(\n          \"The regularization factor for MF embeddings. The factor is used by \"\n          \"regularizer which allows to apply penalties on layer parameters or \"\n          \"layer activity during optimization.\"))\n\n  flags.DEFINE_list(\n      name=\"mlp_regularization\", default=[\"0.\", \"0.\", \"0.\", \"0.\"],\n      help=flags_core.help_wrap(\n          \"The regularization factor for each MLP layer. See mf_regularization \"\n          \"help for more info about regularization factor.\"))\n\n  flags.DEFINE_integer(\n      name=\"num_neg\", default=4,\n      help=flags_core.help_wrap(\n          \"The Number of negative instances to pair with a positive instance.\"))\n\n  flags.DEFINE_float(\n      name=\"learning_rate\", default=0.001,\n      help=flags_core.help_wrap(\"The learning rate.\"))\n\n  flags.DEFINE_float(\n      name=\"hr_threshold\", default=None,\n      help=flags_core.help_wrap(\n          \"If passed, training will stop when the evaluation metric HR is \"\n          \"greater than or equal to hr_threshold. For dataset ml-1m, the \"\n          \"desired hr_threshold is 0.68 which is the result from the paper; \"\n          \"For dataset ml-20m, the threshold can be set as 0.95 which is \"\n          \"achieved by MLPerf implementation.\"))\n\n\nif __name__ == \"__main__\":\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_ncf_flags()\n  FLAGS = flags.FLAGS\n  absl_app.run(main)\n"
  },
  {
    "path": "official/recommendation/neumf_model.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Defines NeuMF model for NCF framework.\n\nSome abbreviations used in the code base:\nNeuMF: Neural Matrix Factorization\nNCF: Neural Collaborative Filtering\nGMF: Generalized Matrix Factorization\nMLP: Multi-Layer Perceptron\n\nGMF applies a linear kernel to model the latent feature interactions, and MLP\nuses a nonlinear kernel to learn the interaction function from data. NeuMF model\nis a fused model of GMF and MLP to better model the complex user-item\ninteractions, and unifies the strengths of linearity of MF and non-linearity of\nMLP for modeling the user-item latent structures.\n\nIn NeuMF model, it allows GMF and MLP to learn separate embeddings, and combine\nthe two models by concatenating their last hidden layer.\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\n\nfrom official.recommendation import constants  # pylint: disable=g-bad-import-order\n\n\nclass NeuMF(tf.keras.models.Model):\n  \"\"\"Neural matrix factorization (NeuMF) model for recommendations.\"\"\"\n\n  def __init__(self, num_users, num_items, mf_dim, model_layers, batch_size,\n               mf_regularization, mlp_reg_layers):\n    \"\"\"Initialize NeuMF model.\n\n    Args:\n      num_users: An integer, the number of users.\n      num_items: An integer, the number of items.\n      mf_dim: An integer, the embedding size of Matrix Factorization (MF) model.\n      model_layers: A list of integers for Multi-Layer Perceptron (MLP) layers.\n        Note that the first layer is the concatenation of user and item\n        embeddings. So model_layers[0]//2 is the embedding size for MLP.\n      batch_size: An integer for the batch size.\n      mf_regularization: A floating number, the regularization factor for MF\n        embeddings.\n      mlp_reg_layers: A list of floating numbers, the regularization factors for\n        each layer in MLP.\n\n    Raises:\n      ValueError: if the first model layer is not even.\n    \"\"\"\n    if model_layers[0] % 2 != 0:\n      raise ValueError(\"The first layer size should be multiple of 2!\")\n\n    # Input variables\n    user_input = tf.keras.layers.Input(\n        shape=(1,), dtype=tf.int32, name=constants.USER)\n    item_input = tf.keras.layers.Input(\n        shape=(1,), dtype=tf.int32, name=constants.ITEM)\n\n    # Initializer for embedding layer\n    embedding_initializer = tf.keras.initializers.RandomNormal(stddev=0.01)\n    # Embedding layers of GMF and MLP\n    mf_embedding_user = tf.keras.layers.Embedding(\n        num_users,\n        mf_dim,\n        embeddings_initializer=embedding_initializer,\n        embeddings_regularizer=tf.keras.regularizers.l2(mf_regularization),\n        input_length=1)\n    mf_embedding_item = tf.keras.layers.Embedding(\n        num_items,\n        mf_dim,\n        embeddings_initializer=embedding_initializer,\n        embeddings_regularizer=tf.keras.regularizers.l2(mf_regularization),\n        input_length=1)\n\n    mlp_embedding_user = tf.keras.layers.Embedding(\n        num_users,\n        model_layers[0]//2,\n        embeddings_initializer=embedding_initializer,\n        embeddings_regularizer=tf.keras.regularizers.l2(mlp_reg_layers[0]),\n        input_length=1)\n    mlp_embedding_item = tf.keras.layers.Embedding(\n        num_items,\n        model_layers[0]//2,\n        embeddings_initializer=embedding_initializer,\n        embeddings_regularizer=tf.keras.regularizers.l2(mlp_reg_layers[0]),\n        input_length=1)\n\n    # GMF part\n    # Flatten the embedding vector as latent features in GMF\n    mf_user_latent = tf.keras.layers.Flatten()(mf_embedding_user(user_input))\n    mf_item_latent = tf.keras.layers.Flatten()(mf_embedding_item(item_input))\n    # Element-wise multiply\n    mf_vector = tf.keras.layers.multiply([mf_user_latent, mf_item_latent])\n\n    # MLP part\n    # Flatten the embedding vector as latent features in MLP\n    mlp_user_latent = tf.keras.layers.Flatten()(mlp_embedding_user(user_input))\n    mlp_item_latent = tf.keras.layers.Flatten()(mlp_embedding_item(item_input))\n    # Concatenation of two latent features\n    mlp_vector = tf.keras.layers.concatenate([mlp_user_latent, mlp_item_latent])\n\n    num_layer = len(model_layers)  # Number of layers in the MLP\n    for layer in xrange(1, num_layer):\n      model_layer = tf.keras.layers.Dense(\n          model_layers[layer],\n          kernel_regularizer=tf.keras.regularizers.l2(mlp_reg_layers[layer]),\n          activation=\"relu\")\n      mlp_vector = model_layer(mlp_vector)\n\n    # Concatenate GMF and MLP parts\n    predict_vector = tf.keras.layers.concatenate([mf_vector, mlp_vector])\n\n    # Final prediction layer\n    prediction = tf.keras.layers.Dense(\n        1, activation=\"sigmoid\", kernel_initializer=\"lecun_uniform\",\n        name=constants.RATING)(predict_vector)\n\n    super(NeuMF, self).__init__(\n        inputs=[user_input, item_input], outputs=prediction)\n"
  },
  {
    "path": "official/recommendation/unittest_data/test_eval_negative.csv",
    "content": "2784\t2659\t1705\t3316\t887\t815\t1783\t3483\t1085\t329\t1830\t1880\t2699\t3194\t3596\t2700\t3520\t2414\t757\t3610\t2651\t2187\t2274\t2949\t1753\t589\t2945\t2172\t2877\t1992\t2215\t1028\t807\t2098\t1923\t3555\t2548\t2950\t151\t2060\t3301\t807\t849\t711\t3271\t3010\t475\t3412\t3389\t2797\t691\t596\t2643\t766\t2344\t203\t2775\t2610\t3583\t2982\t1259\t2128\t854\t2228\t2228\t2008\t3177\t1977\t3674\t3612\t808\t325\t2435\t440\t1693\t3166\t1518\t2643\t940\t309\t1397\t2157\t2391\t3243\t2879\t482\t3206\t143\t1972\t2498\t2711\t1641\t3008\t2733\t136\t2303\t376\t826\t3064\t1123\n767\t2164\t1283\t1100\t3044\t1332\t2152\t1295\t1812\t3427\t3130\t2967\t2895\t3085\t501\t2005\t688\t1457\t1733\t2345\t1827\t1600\t3295\t3397\t384\t2033\t1444\t2082\t944\t2563\t1762\t1101\t496\t2151\t3093\t329\t2559\t1664\t2058\t2546\t683\t1082\t3583\t2199\t1851\t258\t2553\t2274\t1059\t2910\t2299\t2115\t2770\t2094\t2915\t3348\t337\t2738\t1563\t2958\t3241\t3258\t2881\t3236\t2954\t214\t3243\t1000\t2187\t2946\t435\t1232\t2208\t1334\t1280\t2982\t403\t1326\t1706\t1523\t1336\t2620\t2664\t2462\t1432\t765\t898\t222\t3426\t2027\t3469\t2032\t2472\t1480\t3219\t735\t1562\t2626\t1400\t308\n"
  },
  {
    "path": "official/recommendation/unittest_data/test_eval_ratings.csv",
    "content": "0\t25\t1\n1\t66\t1\n"
  },
  {
    "path": "official/recommendation/unittest_data/test_train_ratings.csv",
    "content": "0\t21\t1\n0\t41\t1\n0\t8\t1\n0\t23\t1\n0\t43\t1\n0\t10\t1\n0\t45\t1\n0\t12\t1\n0\t47\t1\n0\t14\t1\n0\t33\t1\n0\t0\t1\n0\t35\t1\n0\t2\t1\n0\t37\t1\n0\t4\t1\n0\t39\t1\n0\t6\t1\n0\t24\t1\n0\t26\t1\n0\t28\t1\n0\t30\t1\n0\t49\t1\n0\t16\t1\n0\t51\t1\n0\t18\t1\n0\t20\t1\n0\t40\t1\n0\t22\t1\n0\t42\t1\n0\t9\t1\n0\t44\t1\n0\t11\t1\n0\t46\t1\n0\t13\t1\n0\t32\t1\n0\t15\t1\n0\t34\t1\n0\t1\t1\n0\t36\t1\n0\t3\t1\n0\t38\t1\n0\t5\t1\n0\t7\t1\n0\t27\t1\n0\t29\t1\n0\t48\t1\n0\t31\t1\n0\t50\t1\n0\t17\t1\n0\t52\t1\n0\t19\t1\n1\t146\t1\n1\t61\t1\n1\t127\t1\n1\t88\t1\n1\t144\t1\n1\t125\t1\n1\t94\t1\n1\t150\t1\n1\t18\t1\n1\t115\t1\n1\t92\t1\n1\t170\t1\n1\t139\t1\n1\t148\t1\n1\t55\t1\n1\t113\t1\n1\t82\t1\n1\t168\t1\n1\t137\t1\n1\t53\t1\n1\t119\t1\n1\t80\t1\n1\t174\t1\n1\t143\t1\n1\t42\t1\n1\t20\t1\n1\t117\t1\n1\t86\t1\n1\t172\t1\n1\t141\t1\n1\t106\t1\n1\t75\t1\n1\t84\t1\n1\t162\t1\n1\t131\t1\n1\t104\t1\n1\t73\t1\n1\t160\t1\n1\t129\t1\n1\t110\t1\n1\t79\t1\n1\t166\t1\n1\t135\t1\n1\t108\t1\n1\t77\t1\n1\t164\t1\n1\t133\t1\n1\t98\t1\n1\t67\t1\n1\t155\t1\n1\t96\t1\n1\t65\t1\n1\t153\t1\n1\t102\t1\n1\t71\t1\n1\t159\t1\n1\t58\t1\n1\t100\t1\n1\t69\t1\n1\t157\t1\n1\t56\t1\n1\t122\t1\n1\t91\t1\n1\t147\t1\n1\t62\t1\n1\t120\t1\n1\t89\t1\n1\t145\t1\n1\t60\t1\n1\t126\t1\n1\t95\t1\n1\t151\t1\n1\t124\t1\n1\t93\t1\n1\t171\t1\n1\t149\t1\n1\t48\t1\n1\t114\t1\n1\t83\t1\n1\t169\t1\n1\t138\t1\n1\t54\t1\n1\t112\t1\n1\t81\t1\n1\t136\t1\n1\t52\t1\n1\t118\t1\n1\t87\t1\n1\t173\t1\n1\t142\t1\n1\t107\t1\n1\t116\t1\n1\t85\t1\n1\t163\t1\n1\t140\t1\n1\t47\t1\n1\t105\t1\n1\t74\t1\n1\t161\t1\n1\t130\t1\n1\t111\t1\n1\t72\t1\n1\t167\t1\n1\t128\t1\n1\t109\t1\n1\t78\t1\n1\t165\t1\n1\t134\t1\n1\t99\t1\n1\t76\t1\n1\t132\t1\n1\t0\t1\n1\t97\t1\n1\t154\t1\n1\t103\t1\n1\t64\t1\n1\t152\t1\n1\t59\t1\n1\t101\t1\n1\t70\t1\n1\t158\t1\n1\t57\t1\n1\t123\t1\n1\t68\t1\n1\t156\t1\n1\t63\t1\n1\t121\t1\n1\t90\t1\n"
  },
  {
    "path": "official/resnet/README.md",
    "content": "# ResNet in TensorFlow\n\nDeep residual networks, or ResNets for short, provided the breakthrough idea of identity mappings in order to enable training of very deep convolutional neural networks. This folder contains an implementation of ResNet for the ImageNet dataset written in TensorFlow.\n\nSee the following papers for more background:\n\n[1] [Deep Residual Learning for Image Recognition](https://arxiv.org/pdf/1512.03385.pdf) by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Dec 2015.\n\n[2] [Identity Mappings in Deep Residual Networks](https://arxiv.org/pdf/1603.05027.pdf) by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Jul 2016.\n\nIn code v1 refers to the resnet defined in [1], while v2 correspondingly refers to [2]. The principle difference between the two versions is that v1 applies batch normalization and activation after convolution, while v2 applies batch normalization, then activation, and finally convolution. A schematic comparison is presented in Figure 1 (left) of [2].\n\nPlease proceed according to which dataset you would like to train/evaluate on:\n\n\n## CIFAR-10\n\n### Setup\n\nYou simply need to have the latest version of TensorFlow installed.\nFirst make sure you've [added the models folder to your Python path](/official/#running-the-models); otherwise you may encounter an error like `ImportError: No module named official.resnet`.\n\nThen download and extract the CIFAR-10 data from Alex's website, specifying the location with the `--data_dir` flag. Run the following:\n\n```\npython cifar10_download_and_extract.py\n```\n\nThen to train the model, run the following:\n\n```\npython cifar10_main.py\n```\n\nUse `--data_dir` to specify the location of the CIFAR-10 data used in the previous step. There are more flag options as described in `cifar10_main.py`.\n\n\n## ImageNet\n\n### Setup\nTo begin, you will need to download the ImageNet dataset and convert it to TFRecord format. Follow along with the [Inception guide](https://github.com/tensorflow/models/tree/master/research/inception#getting-started) in order to prepare the dataset.\n\nOnce your dataset is ready, you can begin training the model as follows:\n\n```\npython imagenet_main.py --data_dir=/path/to/imagenet\n```\n\nThe model will begin training and will automatically evaluate itself on the validation data roughly once per epoch.\n\nNote that there are a number of other options you can specify, including `--model_dir` to choose where to store the model and `--resnet_size` to choose the model size (options include ResNet-18 through ResNet-200). See [`resnet.py`](resnet.py) for the full list of options.\n\n\n## Compute Devices\nTraining is accomplished using the DistributionStrategies API. (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/distribute/README.md)\n\nThe appropriate distribution strategy is chosen based on the `--num_gpus` flag. By default this flag is one if TensorFlow is compiled with CUDA, and zero otherwise.\n\nnum_gpus:\n+ 0:  Use OneDeviceStrategy and train on CPU.\n+ 1:  Use OneDeviceStrategy and train on GPU.\n+ 2+: Use MirroredStrategy (data parallelism) to distribute a batch between devices.\n"
  },
  {
    "path": "official/resnet/__init__.py",
    "content": ""
  },
  {
    "path": "official/resnet/cifar10_download_and_extract.py",
    "content": "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Downloads and extracts the binary version of the CIFAR-10 dataset.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport os\nimport sys\nimport tarfile\n\nfrom six.moves import urllib\nimport tensorflow as tf\n\nDATA_URL = 'https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz'\n\nparser = argparse.ArgumentParser()\n\nparser.add_argument(\n    '--data_dir', type=str, default='/tmp/cifar10_data',\n    help='Directory to download data and extract the tarball')\n\n\ndef main(_):\n  \"\"\"Download and extract the tarball from Alex's website.\"\"\"\n  if not os.path.exists(FLAGS.data_dir):\n    os.makedirs(FLAGS.data_dir)\n\n  filename = DATA_URL.split('/')[-1]\n  filepath = os.path.join(FLAGS.data_dir, filename)\n\n  if not os.path.exists(filepath):\n    def _progress(count, block_size, total_size):\n      sys.stdout.write('\\r>> Downloading %s %.1f%%' % (\n          filename, 100.0 * count * block_size / total_size))\n      sys.stdout.flush()\n\n    filepath, _ = urllib.request.urlretrieve(DATA_URL, filepath, _progress)\n    print()\n    statinfo = os.stat(filepath)\n    print('Successfully downloaded', filename, statinfo.st_size, 'bytes.')\n\n  tarfile.open(filepath, 'r:gz').extractall(FLAGS.data_dir)\n\n\nif __name__ == '__main__':\n  FLAGS, unparsed = parser.parse_known_args()\n  tf.app.run(argv=[sys.argv[0]] + unparsed)\n"
  },
  {
    "path": "official/resnet/cifar10_main.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Runs a ResNet model on the CIFAR-10 dataset.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.flags import core as flags_core\nfrom official.resnet import resnet_model\nfrom official.resnet import resnet_run_loop\n\n_HEIGHT = 32\n_WIDTH = 32\n_NUM_CHANNELS = 3\n_DEFAULT_IMAGE_BYTES = _HEIGHT * _WIDTH * _NUM_CHANNELS\n# The record is the image plus a one-byte label\n_RECORD_BYTES = _DEFAULT_IMAGE_BYTES + 1\n_NUM_CLASSES = 10\n_NUM_DATA_FILES = 5\n\n_NUM_IMAGES = {\n    'train': 50000,\n    'validation': 10000,\n}\n\nDATASET_NAME = 'CIFAR-10'\n\n\n###############################################################################\n# Data processing\n###############################################################################\ndef get_filenames(is_training, data_dir):\n  \"\"\"Returns a list of filenames.\"\"\"\n  data_dir = os.path.join(data_dir, 'cifar-10-batches-bin')\n\n  assert os.path.exists(data_dir), (\n      'Run cifar10_download_and_extract.py first to download and extract the '\n      'CIFAR-10 data.')\n\n  if is_training:\n    return [\n        os.path.join(data_dir, 'data_batch_%d.bin' % i)\n        for i in range(1, _NUM_DATA_FILES + 1)\n    ]\n  else:\n    return [os.path.join(data_dir, 'test_batch.bin')]\n\n\ndef parse_record(raw_record, is_training):\n  \"\"\"Parse CIFAR-10 image and label from a raw record.\"\"\"\n  # Convert bytes to a vector of uint8 that is record_bytes long.\n  record_vector = tf.decode_raw(raw_record, tf.uint8)\n\n  # The first byte represents the label, which we convert from uint8 to int32\n  # and then to one-hot.\n  label = tf.cast(record_vector[0], tf.int32)\n\n  # The remaining bytes after the label represent the image, which we reshape\n  # from [depth * height * width] to [depth, height, width].\n  depth_major = tf.reshape(record_vector[1:_RECORD_BYTES],\n                           [_NUM_CHANNELS, _HEIGHT, _WIDTH])\n\n  # Convert from [depth, height, width] to [height, width, depth], and cast as\n  # float32.\n  image = tf.cast(tf.transpose(depth_major, [1, 2, 0]), tf.float32)\n\n  image = preprocess_image(image, is_training)\n\n  return image, label\n\n\ndef preprocess_image(image, is_training):\n  \"\"\"Preprocess a single image of layout [height, width, depth].\"\"\"\n  if is_training:\n    # Resize the image to add four extra pixels on each side.\n    image = tf.image.resize_image_with_crop_or_pad(\n        image, _HEIGHT + 8, _WIDTH + 8)\n\n    # Randomly crop a [_HEIGHT, _WIDTH] section of the image.\n    image = tf.random_crop(image, [_HEIGHT, _WIDTH, _NUM_CHANNELS])\n\n    # Randomly flip the image horizontally.\n    image = tf.image.random_flip_left_right(image)\n\n  # Subtract off the mean and divide by the variance of the pixels.\n  image = tf.image.per_image_standardization(image)\n  return image\n\n\ndef input_fn(is_training, data_dir, batch_size, num_epochs=1):\n  \"\"\"Input_fn using the tf.data input pipeline for CIFAR-10 dataset.\n\n  Args:\n    is_training: A boolean denoting whether the input is for training.\n    data_dir: The directory containing the input data.\n    batch_size: The number of samples per batch.\n    num_epochs: The number of epochs to repeat the dataset.\n\n  Returns:\n    A dataset that can be used for iteration.\n  \"\"\"\n  filenames = get_filenames(is_training, data_dir)\n  dataset = tf.data.FixedLengthRecordDataset(filenames, _RECORD_BYTES)\n\n  return resnet_run_loop.process_record_dataset(\n      dataset, is_training, batch_size, _NUM_IMAGES['train'],\n      parse_record, num_epochs,\n  )\n\n\ndef get_synth_input_fn():\n  return resnet_run_loop.get_synth_input_fn(\n      _HEIGHT, _WIDTH, _NUM_CHANNELS, _NUM_CLASSES)\n\n\n###############################################################################\n# Running the model\n###############################################################################\nclass Cifar10Model(resnet_model.Model):\n  \"\"\"Model class with appropriate defaults for CIFAR-10 data.\"\"\"\n\n  def __init__(self, resnet_size, data_format=None, num_classes=_NUM_CLASSES,\n               resnet_version=resnet_model.DEFAULT_VERSION,\n               dtype=resnet_model.DEFAULT_DTYPE):\n    \"\"\"These are the parameters that work for CIFAR-10 data.\n\n    Args:\n      resnet_size: The number of convolutional layers needed in the model.\n      data_format: Either 'channels_first' or 'channels_last', specifying which\n        data format to use when setting up the model.\n      num_classes: The number of output classes needed from the model. This\n        enables users to extend the same model to their own datasets.\n      resnet_version: Integer representing which version of the ResNet network\n      to use. See README for details. Valid values: [1, 2]\n      dtype: The TensorFlow dtype to use for calculations.\n\n    Raises:\n      ValueError: if invalid resnet_size is chosen\n    \"\"\"\n    if resnet_size % 6 != 2:\n      raise ValueError('resnet_size must be 6n + 2:', resnet_size)\n\n    num_blocks = (resnet_size - 2) // 6\n\n    super(Cifar10Model, self).__init__(\n        resnet_size=resnet_size,\n        bottleneck=False,\n        num_classes=num_classes,\n        num_filters=16,\n        kernel_size=3,\n        conv_stride=1,\n        first_pool_size=None,\n        first_pool_stride=None,\n        block_sizes=[num_blocks] * 3,\n        block_strides=[1, 2, 2],\n        final_size=64,\n        resnet_version=resnet_version,\n        data_format=data_format,\n        dtype=dtype\n    )\n\n\ndef cifar10_model_fn(features, labels, mode, params):\n  \"\"\"Model function for CIFAR-10.\"\"\"\n  features = tf.reshape(features, [-1, _HEIGHT, _WIDTH, _NUM_CHANNELS])\n\n  learning_rate_fn = resnet_run_loop.learning_rate_with_decay(\n      batch_size=params['batch_size'], batch_denom=128,\n      num_images=_NUM_IMAGES['train'], boundary_epochs=[100, 150, 200],\n      decay_rates=[1, 0.1, 0.01, 0.001])\n\n  # We use a weight decay of 0.0002, which performs better\n  # than the 0.0001 that was originally suggested.\n  weight_decay = 2e-4\n\n  # Empirical testing showed that including batch_normalization variables\n  # in the calculation of regularized loss helped validation accuracy\n  # for the CIFAR-10 dataset, perhaps because the regularization prevents\n  # overfitting on the small data set. We therefore include all vars when\n  # regularizing and computing loss during training.\n  def loss_filter_fn(_):\n    return True\n\n  return resnet_run_loop.resnet_model_fn(\n      features=features,\n      labels=labels,\n      mode=mode,\n      model_class=Cifar10Model,\n      resnet_size=params['resnet_size'],\n      weight_decay=weight_decay,\n      learning_rate_fn=learning_rate_fn,\n      momentum=0.9,\n      data_format=params['data_format'],\n      resnet_version=params['resnet_version'],\n      loss_scale=params['loss_scale'],\n      loss_filter_fn=loss_filter_fn,\n      dtype=params['dtype']\n  )\n\n\ndef define_cifar_flags():\n  resnet_run_loop.define_resnet_flags()\n  flags.adopt_module_key_flags(resnet_run_loop)\n  flags_core.set_defaults(data_dir='/tmp/cifar10_data',\n                          model_dir='/tmp/cifar10_model',\n                          resnet_size='32',\n                          train_epochs=250,\n                          epochs_between_evals=10,\n                          batch_size=128)\n\n\ndef run_cifar(flags_obj):\n  \"\"\"Run ResNet CIFAR-10 training and eval loop.\n\n  Args:\n    flags_obj: An object containing parsed flag values.\n  \"\"\"\n  input_function = (flags_obj.use_synthetic_data and get_synth_input_fn()\n                    or input_fn)\n\n  resnet_run_loop.resnet_main(\n      flags_obj, cifar10_model_fn, input_function, DATASET_NAME,\n      shape=[_HEIGHT, _WIDTH, _NUM_CHANNELS])\n\n\ndef main(_):\n  run_cifar(flags.FLAGS)\n\n\nif __name__ == '__main__':\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_cifar_flags()\n  absl_app.run(main)\n"
  },
  {
    "path": "official/resnet/cifar10_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tempfile import mkstemp\n\nimport numpy as np\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.resnet import cifar10_main\nfrom official.utils.testing import integration\n\ntf.logging.set_verbosity(tf.logging.ERROR)\n\n_BATCH_SIZE = 128\n_HEIGHT = 32\n_WIDTH = 32\n_NUM_CHANNELS = 3\n\n\nclass BaseTest(tf.test.TestCase):\n  \"\"\"Tests for the Cifar10 version of Resnet.\n  \"\"\"\n\n  @classmethod\n  def setUpClass(cls):  # pylint: disable=invalid-name\n    super(BaseTest, cls).setUpClass()\n    cifar10_main.define_cifar_flags()\n\n  def tearDown(self):\n    super(BaseTest, self).tearDown()\n    tf.gfile.DeleteRecursively(self.get_temp_dir())\n\n  def test_dataset_input_fn(self):\n    fake_data = bytearray()\n    fake_data.append(7)\n    for i in range(_NUM_CHANNELS):\n      for _ in range(_HEIGHT * _WIDTH):\n        fake_data.append(i)\n\n    _, filename = mkstemp(dir=self.get_temp_dir())\n    data_file = open(filename, 'wb')\n    data_file.write(fake_data)\n    data_file.close()\n\n    fake_dataset = tf.data.FixedLengthRecordDataset(\n        filename, cifar10_main._RECORD_BYTES)  # pylint: disable=protected-access\n    fake_dataset = fake_dataset.map(\n        lambda val: cifar10_main.parse_record(val, False))\n    image, label = fake_dataset.make_one_shot_iterator().get_next()\n\n    self.assertAllEqual(label.shape, ())\n    self.assertAllEqual(image.shape, (_HEIGHT, _WIDTH, _NUM_CHANNELS))\n\n    with self.test_session() as sess:\n      image, label = sess.run([image, label])\n\n      self.assertEqual(label, 7)\n\n      for row in image:\n        for pixel in row:\n          self.assertAllClose(pixel, np.array([-1.225, 0., 1.225]), rtol=1e-3)\n\n  def cifar10_model_fn_helper(self, mode, resnet_version, dtype):\n    input_fn = cifar10_main.get_synth_input_fn()\n    dataset = input_fn(True, '', _BATCH_SIZE)\n    iterator = dataset.make_one_shot_iterator()\n    features, labels = iterator.get_next()\n    spec = cifar10_main.cifar10_model_fn(\n        features, labels, mode, {\n            'dtype': dtype,\n            'resnet_size': 32,\n            'data_format': 'channels_last',\n            'batch_size': _BATCH_SIZE,\n            'resnet_version': resnet_version,\n            'loss_scale': 128 if dtype == tf.float16 else 1,\n        })\n\n    predictions = spec.predictions\n    self.assertAllEqual(predictions['probabilities'].shape,\n                        (_BATCH_SIZE, 10))\n    self.assertEqual(predictions['probabilities'].dtype, tf.float32)\n    self.assertAllEqual(predictions['classes'].shape, (_BATCH_SIZE,))\n    self.assertEqual(predictions['classes'].dtype, tf.int64)\n\n    if mode != tf.estimator.ModeKeys.PREDICT:\n      loss = spec.loss\n      self.assertAllEqual(loss.shape, ())\n      self.assertEqual(loss.dtype, tf.float32)\n\n    if mode == tf.estimator.ModeKeys.EVAL:\n      eval_metric_ops = spec.eval_metric_ops\n      self.assertAllEqual(eval_metric_ops['accuracy'][0].shape, ())\n      self.assertAllEqual(eval_metric_ops['accuracy'][1].shape, ())\n      self.assertEqual(eval_metric_ops['accuracy'][0].dtype, tf.float32)\n      self.assertEqual(eval_metric_ops['accuracy'][1].dtype, tf.float32)\n\n  def test_cifar10_model_fn_train_mode_v1(self):\n    self.cifar10_model_fn_helper(tf.estimator.ModeKeys.TRAIN, resnet_version=1,\n                                 dtype=tf.float32)\n\n  def test_cifar10_model_fn_trainmode__v2(self):\n    self.cifar10_model_fn_helper(tf.estimator.ModeKeys.TRAIN, resnet_version=2,\n                                 dtype=tf.float32)\n\n  def test_cifar10_model_fn_eval_mode_v1(self):\n    self.cifar10_model_fn_helper(tf.estimator.ModeKeys.EVAL, resnet_version=1,\n                                 dtype=tf.float32)\n\n  def test_cifar10_model_fn_eval_mode_v2(self):\n    self.cifar10_model_fn_helper(tf.estimator.ModeKeys.EVAL, resnet_version=2,\n                                 dtype=tf.float32)\n\n  def test_cifar10_model_fn_predict_mode_v1(self):\n    self.cifar10_model_fn_helper(tf.estimator.ModeKeys.PREDICT,\n                                 resnet_version=1, dtype=tf.float32)\n\n  def test_cifar10_model_fn_predict_mode_v2(self):\n    self.cifar10_model_fn_helper(tf.estimator.ModeKeys.PREDICT,\n                                 resnet_version=2, dtype=tf.float32)\n\n  def _test_cifar10model_shape(self, resnet_version):\n    batch_size = 135\n    num_classes = 246\n\n    model = cifar10_main.Cifar10Model(32, data_format='channels_last',\n                                      num_classes=num_classes,\n                                      resnet_version=resnet_version)\n    fake_input = tf.random_uniform([batch_size, _HEIGHT, _WIDTH, _NUM_CHANNELS])\n    output = model(fake_input, training=True)\n\n    self.assertAllEqual(output.shape, (batch_size, num_classes))\n\n  def test_cifar10model_shape_v1(self):\n    self._test_cifar10model_shape(resnet_version=1)\n\n  def test_cifar10model_shape_v2(self):\n    self._test_cifar10model_shape(resnet_version=2)\n\n  def test_cifar10_end_to_end_synthetic_v1(self):\n    integration.run_synthetic(\n        main=cifar10_main.run_cifar, tmp_root=self.get_temp_dir(),\n        extra_flags=['-resnet_version', '1']\n    )\n\n  def test_cifar10_end_to_end_synthetic_v2(self):\n    integration.run_synthetic(\n        main=cifar10_main.run_cifar, tmp_root=self.get_temp_dir(),\n        extra_flags=['-resnet_version', '2']\n    )\n\n  def test_flag_restriction(self):\n    with self.assertRaises(SystemExit):\n      integration.run_synthetic(\n          main=cifar10_main.run_cifar, tmp_root=self.get_temp_dir(),\n          extra_flags=['-resnet_version', '1', \"-dtype\", \"fp16\"]\n      )\n\n\nif __name__ == '__main__':\n  tf.test.main()\n"
  },
  {
    "path": "official/resnet/imagenet_main.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Runs a ResNet model on the ImageNet dataset.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.flags import core as flags_core\nfrom official.resnet import imagenet_preprocessing\nfrom official.resnet import resnet_model\nfrom official.resnet import resnet_run_loop\n\n_DEFAULT_IMAGE_SIZE = 224\n_NUM_CHANNELS = 3\n_NUM_CLASSES = 1001\n\n_NUM_IMAGES = {\n    'train': 1281167,\n    'validation': 50000,\n}\n\n_NUM_TRAIN_FILES = 1024\n_SHUFFLE_BUFFER = 10000\n\nDATASET_NAME = 'ImageNet'\n\n###############################################################################\n# Data processing\n###############################################################################\ndef get_filenames(is_training, data_dir):\n  \"\"\"Return filenames for dataset.\"\"\"\n  if is_training:\n    return [\n        os.path.join(data_dir, 'train-%05d-of-01024' % i)\n        for i in range(_NUM_TRAIN_FILES)]\n  else:\n    return [\n        os.path.join(data_dir, 'validation-%05d-of-00128' % i)\n        for i in range(128)]\n\n\ndef _parse_example_proto(example_serialized):\n  \"\"\"Parses an Example proto containing a training example of an image.\n\n  The output of the build_image_data.py image preprocessing script is a dataset\n  containing serialized Example protocol buffers. Each Example proto contains\n  the following fields (values are included as examples):\n\n    image/height: 462\n    image/width: 581\n    image/colorspace: 'RGB'\n    image/channels: 3\n    image/class/label: 615\n    image/class/synset: 'n03623198'\n    image/class/text: 'knee pad'\n    image/object/bbox/xmin: 0.1\n    image/object/bbox/xmax: 0.9\n    image/object/bbox/ymin: 0.2\n    image/object/bbox/ymax: 0.6\n    image/object/bbox/label: 615\n    image/format: 'JPEG'\n    image/filename: 'ILSVRC2012_val_00041207.JPEG'\n    image/encoded: <JPEG encoded string>\n\n  Args:\n    example_serialized: scalar Tensor tf.string containing a serialized\n      Example protocol buffer.\n\n  Returns:\n    image_buffer: Tensor tf.string containing the contents of a JPEG file.\n    label: Tensor tf.int32 containing the label.\n    bbox: 3-D float Tensor of bounding boxes arranged [1, num_boxes, coords]\n      where each coordinate is [0, 1) and the coordinates are arranged as\n      [ymin, xmin, ymax, xmax].\n  \"\"\"\n  # Dense features in Example proto.\n  feature_map = {\n      'image/encoded': tf.FixedLenFeature([], dtype=tf.string,\n                                          default_value=''),\n      'image/class/label': tf.FixedLenFeature([1], dtype=tf.int64,\n                                              default_value=-1),\n      'image/class/text': tf.FixedLenFeature([], dtype=tf.string,\n                                             default_value=''),\n  }\n  sparse_float32 = tf.VarLenFeature(dtype=tf.float32)\n  # Sparse features in Example proto.\n  feature_map.update(\n      {k: sparse_float32 for k in ['image/object/bbox/xmin',\n                                   'image/object/bbox/ymin',\n                                   'image/object/bbox/xmax',\n                                   'image/object/bbox/ymax']})\n\n  features = tf.parse_single_example(example_serialized, feature_map)\n  label = tf.cast(features['image/class/label'], dtype=tf.int32)\n\n  xmin = tf.expand_dims(features['image/object/bbox/xmin'].values, 0)\n  ymin = tf.expand_dims(features['image/object/bbox/ymin'].values, 0)\n  xmax = tf.expand_dims(features['image/object/bbox/xmax'].values, 0)\n  ymax = tf.expand_dims(features['image/object/bbox/ymax'].values, 0)\n\n  # Note that we impose an ordering of (y, x) just to make life difficult.\n  bbox = tf.concat([ymin, xmin, ymax, xmax], 0)\n\n  # Force the variable number of bounding boxes into the shape\n  # [1, num_boxes, coords].\n  bbox = tf.expand_dims(bbox, 0)\n  bbox = tf.transpose(bbox, [0, 2, 1])\n\n  return features['image/encoded'], label, bbox\n\n\ndef parse_record(raw_record, is_training):\n  \"\"\"Parses a record containing a training example of an image.\n\n  The input record is parsed into a label and image, and the image is passed\n  through preprocessing steps (cropping, flipping, and so on).\n\n  Args:\n    raw_record: scalar Tensor tf.string containing a serialized\n      Example protocol buffer.\n    is_training: A boolean denoting whether the input is for training.\n\n  Returns:\n    Tuple with processed image tensor and one-hot-encoded label tensor.\n  \"\"\"\n  image_buffer, label, bbox = _parse_example_proto(raw_record)\n\n  image = imagenet_preprocessing.preprocess_image(\n      image_buffer=image_buffer,\n      bbox=bbox,\n      output_height=_DEFAULT_IMAGE_SIZE,\n      output_width=_DEFAULT_IMAGE_SIZE,\n      num_channels=_NUM_CHANNELS,\n      is_training=is_training)\n\n  return image, label\n\n\ndef input_fn(is_training, data_dir, batch_size, num_epochs=1):\n  \"\"\"Input function which provides batches for train or eval.\n\n  Args:\n    is_training: A boolean denoting whether the input is for training.\n    data_dir: The directory containing the input data.\n    batch_size: The number of samples per batch.\n    num_epochs: The number of epochs to repeat the dataset.\n\n  Returns:\n    A dataset that can be used for iteration.\n  \"\"\"\n  filenames = get_filenames(is_training, data_dir)\n  dataset = tf.data.Dataset.from_tensor_slices(filenames)\n\n  if is_training:\n    # Shuffle the input files\n    dataset = dataset.shuffle(buffer_size=_NUM_TRAIN_FILES)\n\n  # Convert to individual records.\n  # cycle_length = 10 means 10 files will be read and deserialized in parallel.\n  # This number is low enough to not cause too much contention on small systems\n  # but high enough to provide the benefits of parallelization. You may want\n  # to increase this number if you have a large number of CPU cores.\n  dataset = dataset.apply(tf.contrib.data.parallel_interleave(\n      tf.data.TFRecordDataset, cycle_length=10))\n\n  return resnet_run_loop.process_record_dataset(\n      dataset, is_training, batch_size, _SHUFFLE_BUFFER, parse_record,\n      num_epochs\n  )\n\n\ndef get_synth_input_fn():\n  return resnet_run_loop.get_synth_input_fn(\n      _DEFAULT_IMAGE_SIZE, _DEFAULT_IMAGE_SIZE, _NUM_CHANNELS, _NUM_CLASSES)\n\n\n###############################################################################\n# Running the model\n###############################################################################\nclass ImagenetModel(resnet_model.Model):\n  \"\"\"Model class with appropriate defaults for Imagenet data.\"\"\"\n\n  def __init__(self, resnet_size, data_format=None, num_classes=_NUM_CLASSES,\n               resnet_version=resnet_model.DEFAULT_VERSION,\n               dtype=resnet_model.DEFAULT_DTYPE):\n    \"\"\"These are the parameters that work for Imagenet data.\n\n    Args:\n      resnet_size: The number of convolutional layers needed in the model.\n      data_format: Either 'channels_first' or 'channels_last', specifying which\n        data format to use when setting up the model.\n      num_classes: The number of output classes needed from the model. This\n        enables users to extend the same model to their own datasets.\n      resnet_version: Integer representing which version of the ResNet network\n        to use. See README for details. Valid values: [1, 2]\n      dtype: The TensorFlow dtype to use for calculations.\n    \"\"\"\n\n    # For bigger models, we want to use \"bottleneck\" layers\n    if resnet_size < 50:\n      bottleneck = False\n      final_size = 512\n    else:\n      bottleneck = True\n      final_size = 2048\n\n    super(ImagenetModel, self).__init__(\n        resnet_size=resnet_size,\n        bottleneck=bottleneck,\n        num_classes=num_classes,\n        num_filters=64,\n        kernel_size=7,\n        conv_stride=2,\n        first_pool_size=3,\n        first_pool_stride=2,\n        block_sizes=_get_block_sizes(resnet_size),\n        block_strides=[1, 2, 2, 2],\n        final_size=final_size,\n        resnet_version=resnet_version,\n        data_format=data_format,\n        dtype=dtype\n    )\n\n\ndef _get_block_sizes(resnet_size):\n  \"\"\"Retrieve the size of each block_layer in the ResNet model.\n\n  The number of block layers used for the Resnet model varies according\n  to the size of the model. This helper grabs the layer set we want, throwing\n  an error if a non-standard size has been selected.\n\n  Args:\n    resnet_size: The number of convolutional layers needed in the model.\n\n  Returns:\n    A list of block sizes to use in building the model.\n\n  Raises:\n    KeyError: if invalid resnet_size is received.\n  \"\"\"\n  choices = {\n      18: [2, 2, 2, 2],\n      34: [3, 4, 6, 3],\n      50: [3, 4, 6, 3],\n      101: [3, 4, 23, 3],\n      152: [3, 8, 36, 3],\n      200: [3, 24, 36, 3]\n  }\n\n  try:\n    return choices[resnet_size]\n  except KeyError:\n    err = ('Could not find layers for selected Resnet size.\\n'\n           'Size received: {}; sizes allowed: {}.'.format(\n               resnet_size, choices.keys()))\n    raise ValueError(err)\n\n\ndef imagenet_model_fn(features, labels, mode, params):\n  \"\"\"Our model_fn for ResNet to be used with our Estimator.\"\"\"\n  learning_rate_fn = resnet_run_loop.learning_rate_with_decay(\n      batch_size=params['batch_size'], batch_denom=256,\n      num_images=_NUM_IMAGES['train'], boundary_epochs=[30, 60, 80, 90],\n      decay_rates=[1, 0.1, 0.01, 0.001, 1e-4])\n\n  return resnet_run_loop.resnet_model_fn(\n      features=features,\n      labels=labels,\n      mode=mode,\n      model_class=ImagenetModel,\n      resnet_size=params['resnet_size'],\n      weight_decay=1e-4,\n      learning_rate_fn=learning_rate_fn,\n      momentum=0.9,\n      data_format=params['data_format'],\n      resnet_version=params['resnet_version'],\n      loss_scale=params['loss_scale'],\n      loss_filter_fn=None,\n      dtype=params['dtype']\n  )\n\n\ndef define_imagenet_flags():\n  resnet_run_loop.define_resnet_flags(\n      resnet_size_choices=['18', '34', '50', '101', '152', '200'])\n  flags.adopt_module_key_flags(resnet_run_loop)\n  flags_core.set_defaults(train_epochs=100)\n\n\ndef run_imagenet(flags_obj):\n  \"\"\"Run ResNet ImageNet training and eval loop.\n\n  Args:\n    flags_obj: An object containing parsed flag values.\n  \"\"\"\n  input_function = (flags_obj.use_synthetic_data and get_synth_input_fn()\n                    or input_fn)\n\n  resnet_run_loop.resnet_main(\n      flags_obj, imagenet_model_fn, input_function, DATASET_NAME,\n      shape=[_DEFAULT_IMAGE_SIZE, _DEFAULT_IMAGE_SIZE, _NUM_CHANNELS])\n\n\ndef main(_):\n  run_imagenet(flags.FLAGS)\n\n\nif __name__ == '__main__':\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_imagenet_flags()\n  absl_app.run(main)\n"
  },
  {
    "path": "official/resnet/imagenet_preprocessing.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Provides utilities to preprocess images.\n\nTraining images are sampled using the provided bounding boxes, and subsequently\ncropped to the sampled bounding box. Images are additionally flipped randomly,\nthen resized to the target output size (without aspect-ratio preservation).\n\nImages used during evaluation are resized (with aspect-ratio preservation) and\ncentrally cropped.\n\nAll images undergo mean color subtraction.\n\nNote that these steps are colloquially referred to as \"ResNet preprocessing,\"\nand they differ from \"VGG preprocessing,\" which does not use bounding boxes\nand instead does an aspect-preserving resize followed by random crop during\ntraining. (These both differ from \"Inception preprocessing,\" which introduces\ncolor distortion steps.)\n\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n_R_MEAN = 123.68\n_G_MEAN = 116.78\n_B_MEAN = 103.94\n_CHANNEL_MEANS = [_R_MEAN, _G_MEAN, _B_MEAN]\n\n# The lower bound for the smallest side of the image for aspect-preserving\n# resizing. For example, if an image is 500 x 1000, it will be resized to\n# _RESIZE_MIN x (_RESIZE_MIN * 2).\n_RESIZE_MIN = 256\n\n\ndef _decode_crop_and_flip(image_buffer, bbox, num_channels):\n  \"\"\"Crops the given image to a random part of the image, and randomly flips.\n\n  We use the fused decode_and_crop op, which performs better than the two ops\n  used separately in series, but note that this requires that the image be\n  passed in as an un-decoded string Tensor.\n\n  Args:\n    image_buffer: scalar string Tensor representing the raw JPEG image buffer.\n    bbox: 3-D float Tensor of bounding boxes arranged [1, num_boxes, coords]\n      where each coordinate is [0, 1) and the coordinates are arranged as\n      [ymin, xmin, ymax, xmax].\n    num_channels: Integer depth of the image buffer for decoding.\n\n  Returns:\n    3-D tensor with cropped image.\n\n  \"\"\"\n  # A large fraction of image datasets contain a human-annotated bounding box\n  # delineating the region of the image containing the object of interest.  We\n  # choose to create a new bounding box for the object which is a randomly\n  # distorted version of the human-annotated bounding box that obeys an\n  # allowed range of aspect ratios, sizes and overlap with the human-annotated\n  # bounding box. If no box is supplied, then we assume the bounding box is\n  # the entire image.\n  sample_distorted_bounding_box = tf.image.sample_distorted_bounding_box(\n      tf.image.extract_jpeg_shape(image_buffer),\n      bounding_boxes=bbox,\n      min_object_covered=0.1,\n      aspect_ratio_range=[0.75, 1.33],\n      area_range=[0.05, 1.0],\n      max_attempts=100,\n      use_image_if_no_bounding_boxes=True)\n  bbox_begin, bbox_size, _ = sample_distorted_bounding_box\n\n  # Reassemble the bounding box in the format the crop op requires.\n  offset_y, offset_x, _ = tf.unstack(bbox_begin)\n  target_height, target_width, _ = tf.unstack(bbox_size)\n  crop_window = tf.stack([offset_y, offset_x, target_height, target_width])\n\n  # Use the fused decode and crop op here, which is faster than each in series.\n  cropped = tf.image.decode_and_crop_jpeg(\n      image_buffer, crop_window, channels=num_channels)\n\n  # Flip to add a little more random distortion in.\n  cropped = tf.image.random_flip_left_right(cropped)\n  return cropped\n\n\ndef _central_crop(image, crop_height, crop_width):\n  \"\"\"Performs central crops of the given image list.\n\n  Args:\n    image: a 3-D image tensor\n    crop_height: the height of the image following the crop.\n    crop_width: the width of the image following the crop.\n\n  Returns:\n    3-D tensor with cropped image.\n  \"\"\"\n  shape = tf.shape(image)\n  height, width = shape[0], shape[1]\n\n  amount_to_be_cropped_h = (height - crop_height)\n  crop_top = amount_to_be_cropped_h // 2\n  amount_to_be_cropped_w = (width - crop_width)\n  crop_left = amount_to_be_cropped_w // 2\n  return tf.slice(\n      image, [crop_top, crop_left, 0], [crop_height, crop_width, -1])\n\n\ndef _mean_image_subtraction(image, means, num_channels):\n  \"\"\"Subtracts the given means from each image channel.\n\n  For example:\n    means = [123.68, 116.779, 103.939]\n    image = _mean_image_subtraction(image, means)\n\n  Note that the rank of `image` must be known.\n\n  Args:\n    image: a tensor of size [height, width, C].\n    means: a C-vector of values to subtract from each channel.\n    num_channels: number of color channels in the image that will be distorted.\n\n  Returns:\n    the centered image.\n\n  Raises:\n    ValueError: If the rank of `image` is unknown, if `image` has a rank other\n      than three or if the number of channels in `image` doesn't match the\n      number of values in `means`.\n  \"\"\"\n  if image.get_shape().ndims != 3:\n    raise ValueError('Input must be of size [height, width, C>0]')\n\n  if len(means) != num_channels:\n    raise ValueError('len(means) must match the number of channels')\n\n  # We have a 1-D tensor of means; convert to 3-D.\n  means = tf.expand_dims(tf.expand_dims(means, 0), 0)\n\n  return image - means\n\n\ndef _smallest_size_at_least(height, width, resize_min):\n  \"\"\"Computes new shape with the smallest side equal to `smallest_side`.\n\n  Computes new shape with the smallest side equal to `smallest_side` while\n  preserving the original aspect ratio.\n\n  Args:\n    height: an int32 scalar tensor indicating the current height.\n    width: an int32 scalar tensor indicating the current width.\n    resize_min: A python integer or scalar `Tensor` indicating the size of\n      the smallest side after resize.\n\n  Returns:\n    new_height: an int32 scalar tensor indicating the new height.\n    new_width: an int32 scalar tensor indicating the new width.\n  \"\"\"\n  resize_min = tf.cast(resize_min, tf.float32)\n\n  # Convert to floats to make subsequent calculations go smoothly.\n  height, width = tf.cast(height, tf.float32), tf.cast(width, tf.float32)\n\n  smaller_dim = tf.minimum(height, width)\n  scale_ratio = resize_min / smaller_dim\n\n  # Convert back to ints to make heights and widths that TF ops will accept.\n  new_height = tf.cast(height * scale_ratio, tf.int32)\n  new_width = tf.cast(width * scale_ratio, tf.int32)\n\n  return new_height, new_width\n\n\ndef _aspect_preserving_resize(image, resize_min):\n  \"\"\"Resize images preserving the original aspect ratio.\n\n  Args:\n    image: A 3-D image `Tensor`.\n    resize_min: A python integer or scalar `Tensor` indicating the size of\n      the smallest side after resize.\n\n  Returns:\n    resized_image: A 3-D tensor containing the resized image.\n  \"\"\"\n  shape = tf.shape(image)\n  height, width = shape[0], shape[1]\n\n  new_height, new_width = _smallest_size_at_least(height, width, resize_min)\n\n  return _resize_image(image, new_height, new_width)\n\n\ndef _resize_image(image, height, width):\n  \"\"\"Simple wrapper around tf.resize_images.\n\n  This is primarily to make sure we use the same `ResizeMethod` and other\n  details each time.\n\n  Args:\n    image: A 3-D image `Tensor`.\n    height: The target height for the resized image.\n    width: The target width for the resized image.\n\n  Returns:\n    resized_image: A 3-D tensor containing the resized image. The first two\n      dimensions have the shape [height, width].\n  \"\"\"\n  return tf.image.resize_images(\n      image, [height, width], method=tf.image.ResizeMethod.BILINEAR,\n      align_corners=False)\n\n\ndef preprocess_image(image_buffer, bbox, output_height, output_width,\n                     num_channels, is_training=False):\n  \"\"\"Preprocesses the given image.\n\n  Preprocessing includes decoding, cropping, and resizing for both training\n  and eval images. Training preprocessing, however, introduces some random\n  distortion of the image to improve accuracy.\n\n  Args:\n    image_buffer: scalar string Tensor representing the raw JPEG image buffer.\n    bbox: 3-D float Tensor of bounding boxes arranged [1, num_boxes, coords]\n      where each coordinate is [0, 1) and the coordinates are arranged as\n      [ymin, xmin, ymax, xmax].\n    output_height: The height of the image after preprocessing.\n    output_width: The width of the image after preprocessing.\n    num_channels: Integer depth of the image buffer for decoding.\n    is_training: `True` if we're preprocessing the image for training and\n      `False` otherwise.\n\n  Returns:\n    A preprocessed image.\n  \"\"\"\n  if is_training:\n    # For training, we want to randomize some of the distortions.\n    image = _decode_crop_and_flip(image_buffer, bbox, num_channels)\n    image = _resize_image(image, output_height, output_width)\n  else:\n    # For validation, we want to decode, resize, then just crop the middle.\n    image = tf.image.decode_jpeg(image_buffer, channels=num_channels)\n    image = _aspect_preserving_resize(image, _RESIZE_MIN)\n    image = _central_crop(image, output_height, output_width)\n\n  image.set_shape([output_height, output_width, num_channels])\n\n  return _mean_image_subtraction(image, _CHANNEL_MEANS, num_channels)\n"
  },
  {
    "path": "official/resnet/imagenet_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport unittest\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.resnet import imagenet_main\nfrom official.utils.testing import integration\n\ntf.logging.set_verbosity(tf.logging.ERROR)\n\n_BATCH_SIZE = 32\n_LABEL_CLASSES = 1001\n\n\nclass BaseTest(tf.test.TestCase):\n\n  @classmethod\n  def setUpClass(cls):  # pylint: disable=invalid-name\n    super(BaseTest, cls).setUpClass()\n    imagenet_main.define_imagenet_flags()\n\n  def tearDown(self):\n    super(BaseTest, self).tearDown()\n    tf.gfile.DeleteRecursively(self.get_temp_dir())\n\n  def _tensor_shapes_helper(self, resnet_size, resnet_version, dtype, with_gpu):\n    \"\"\"Checks the tensor shapes after each phase of the ResNet model.\"\"\"\n    def reshape(shape):\n      \"\"\"Returns the expected dimensions depending on if a GPU is being used.\"\"\"\n\n      # If a GPU is used for the test, the shape is returned (already in NCHW\n      # form). When GPU is not used, the shape is converted to NHWC.\n      if with_gpu:\n        return shape\n      return shape[0], shape[2], shape[3], shape[1]\n\n    graph = tf.Graph()\n\n    with graph.as_default(), self.test_session(\n        graph=graph, use_gpu=with_gpu, force_gpu=with_gpu):\n      model = imagenet_main.ImagenetModel(\n          resnet_size=resnet_size,\n          data_format='channels_first' if with_gpu else 'channels_last',\n          resnet_version=resnet_version,\n          dtype=dtype\n      )\n      inputs = tf.random_uniform([1, 224, 224, 3])\n      output = model(inputs, training=True)\n\n      initial_conv = graph.get_tensor_by_name('resnet_model/initial_conv:0')\n      max_pool = graph.get_tensor_by_name('resnet_model/initial_max_pool:0')\n      block_layer1 = graph.get_tensor_by_name('resnet_model/block_layer1:0')\n      block_layer2 = graph.get_tensor_by_name('resnet_model/block_layer2:0')\n      block_layer3 = graph.get_tensor_by_name('resnet_model/block_layer3:0')\n      block_layer4 = graph.get_tensor_by_name('resnet_model/block_layer4:0')\n      reduce_mean = graph.get_tensor_by_name('resnet_model/final_reduce_mean:0')\n      dense = graph.get_tensor_by_name('resnet_model/final_dense:0')\n\n      self.assertAllEqual(initial_conv.shape, reshape((1, 64, 112, 112)))\n      self.assertAllEqual(max_pool.shape, reshape((1, 64, 56, 56)))\n\n      # The number of channels after each block depends on whether we're\n      # using the building_block or the bottleneck_block.\n      if resnet_size < 50:\n        self.assertAllEqual(block_layer1.shape, reshape((1, 64, 56, 56)))\n        self.assertAllEqual(block_layer2.shape, reshape((1, 128, 28, 28)))\n        self.assertAllEqual(block_layer3.shape, reshape((1, 256, 14, 14)))\n        self.assertAllEqual(block_layer4.shape, reshape((1, 512, 7, 7)))\n        self.assertAllEqual(reduce_mean.shape, reshape((1, 512, 1, 1)))\n      else:\n        self.assertAllEqual(block_layer1.shape, reshape((1, 256, 56, 56)))\n        self.assertAllEqual(block_layer2.shape, reshape((1, 512, 28, 28)))\n        self.assertAllEqual(block_layer3.shape, reshape((1, 1024, 14, 14)))\n        self.assertAllEqual(block_layer4.shape, reshape((1, 2048, 7, 7)))\n        self.assertAllEqual(reduce_mean.shape, reshape((1, 2048, 1, 1)))\n\n      self.assertAllEqual(dense.shape, (1, _LABEL_CLASSES))\n      self.assertAllEqual(output.shape, (1, _LABEL_CLASSES))\n\n  def tensor_shapes_helper(self, resnet_size, resnet_version, with_gpu=False):\n    self._tensor_shapes_helper(resnet_size=resnet_size,\n                               resnet_version=resnet_version,\n                               dtype=tf.float32, with_gpu=with_gpu)\n    self._tensor_shapes_helper(resnet_size=resnet_size,\n                               resnet_version=resnet_version,\n                               dtype=tf.float16, with_gpu=with_gpu)\n\n  def test_tensor_shapes_resnet_18_v1(self):\n    self.tensor_shapes_helper(18, resnet_version=1)\n\n  def test_tensor_shapes_resnet_18_v2(self):\n    self.tensor_shapes_helper(18, resnet_version=2)\n\n  def test_tensor_shapes_resnet_34_v1(self):\n    self.tensor_shapes_helper(34, resnet_version=1)\n\n  def test_tensor_shapes_resnet_34_v2(self):\n    self.tensor_shapes_helper(34, resnet_version=2)\n\n  def test_tensor_shapes_resnet_50_v1(self):\n    self.tensor_shapes_helper(50, resnet_version=1)\n\n  def test_tensor_shapes_resnet_50_v2(self):\n    self.tensor_shapes_helper(50, resnet_version=2)\n\n  def test_tensor_shapes_resnet_101_v1(self):\n    self.tensor_shapes_helper(101, resnet_version=1)\n\n  def test_tensor_shapes_resnet_101_v2(self):\n    self.tensor_shapes_helper(101, resnet_version=2)\n\n  def test_tensor_shapes_resnet_152_v1(self):\n    self.tensor_shapes_helper(152, resnet_version=1)\n\n  def test_tensor_shapes_resnet_152_v2(self):\n    self.tensor_shapes_helper(152, resnet_version=2)\n\n  def test_tensor_shapes_resnet_200_v1(self):\n    self.tensor_shapes_helper(200, resnet_version=1)\n\n  def test_tensor_shapes_resnet_200_v2(self):\n    self.tensor_shapes_helper(200, resnet_version=2)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_18_with_gpu_v1(self):\n    self.tensor_shapes_helper(18, resnet_version=1, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_18_with_gpu_v2(self):\n    self.tensor_shapes_helper(18, resnet_version=2, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_34_with_gpu_v1(self):\n    self.tensor_shapes_helper(34, resnet_version=1, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_34_with_gpu_v2(self):\n    self.tensor_shapes_helper(34, resnet_version=2, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_50_with_gpu_v1(self):\n    self.tensor_shapes_helper(50, resnet_version=1, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_50_with_gpu_v2(self):\n    self.tensor_shapes_helper(50, resnet_version=2, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_101_with_gpu_v1(self):\n    self.tensor_shapes_helper(101, resnet_version=1, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_101_with_gpu_v2(self):\n    self.tensor_shapes_helper(101, resnet_version=2, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_152_with_gpu_v1(self):\n    self.tensor_shapes_helper(152, resnet_version=1, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_152_with_gpu_v2(self):\n    self.tensor_shapes_helper(152, resnet_version=2, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_200_with_gpu_v1(self):\n    self.tensor_shapes_helper(200, resnet_version=1, with_gpu=True)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), 'requires GPU')\n  def test_tensor_shapes_resnet_200_with_gpu_v2(self):\n    self.tensor_shapes_helper(200, resnet_version=2, with_gpu=True)\n\n  def resnet_model_fn_helper(self, mode, resnet_version, dtype):\n    \"\"\"Tests that the EstimatorSpec is given the appropriate arguments.\"\"\"\n    tf.train.create_global_step()\n\n    input_fn = imagenet_main.get_synth_input_fn()\n    dataset = input_fn(True, '', _BATCH_SIZE)\n    iterator = dataset.make_one_shot_iterator()\n    features, labels = iterator.get_next()\n    spec = imagenet_main.imagenet_model_fn(\n        features, labels, mode, {\n            'dtype': dtype,\n            'resnet_size': 50,\n            'data_format': 'channels_last',\n            'batch_size': _BATCH_SIZE,\n            'resnet_version': resnet_version,\n            'loss_scale': 128 if dtype == tf.float16 else 1,\n        })\n\n    predictions = spec.predictions\n    self.assertAllEqual(predictions['probabilities'].shape,\n                        (_BATCH_SIZE, _LABEL_CLASSES))\n    self.assertEqual(predictions['probabilities'].dtype, tf.float32)\n    self.assertAllEqual(predictions['classes'].shape, (_BATCH_SIZE,))\n    self.assertEqual(predictions['classes'].dtype, tf.int64)\n\n    if mode != tf.estimator.ModeKeys.PREDICT:\n      loss = spec.loss\n      self.assertAllEqual(loss.shape, ())\n      self.assertEqual(loss.dtype, tf.float32)\n\n    if mode == tf.estimator.ModeKeys.EVAL:\n      eval_metric_ops = spec.eval_metric_ops\n      self.assertAllEqual(eval_metric_ops['accuracy'][0].shape, ())\n      self.assertAllEqual(eval_metric_ops['accuracy'][1].shape, ())\n      self.assertEqual(eval_metric_ops['accuracy'][0].dtype, tf.float32)\n      self.assertEqual(eval_metric_ops['accuracy'][1].dtype, tf.float32)\n\n  def test_resnet_model_fn_train_mode_v1(self):\n    self.resnet_model_fn_helper(tf.estimator.ModeKeys.TRAIN, resnet_version=1,\n                                dtype=tf.float32)\n\n  def test_resnet_model_fn_train_mode_v2(self):\n    self.resnet_model_fn_helper(tf.estimator.ModeKeys.TRAIN, resnet_version=2,\n                                dtype=tf.float32)\n\n  def test_resnet_model_fn_eval_mode_v1(self):\n    self.resnet_model_fn_helper(tf.estimator.ModeKeys.EVAL, resnet_version=1,\n                                dtype=tf.float32)\n\n  def test_resnet_model_fn_eval_mode_v2(self):\n    self.resnet_model_fn_helper(tf.estimator.ModeKeys.EVAL, resnet_version=2,\n                                dtype=tf.float32)\n\n  def test_resnet_model_fn_predict_mode_v1(self):\n    self.resnet_model_fn_helper(tf.estimator.ModeKeys.PREDICT, resnet_version=1,\n                                dtype=tf.float32)\n\n  def test_resnet_model_fn_predict_mode_v2(self):\n    self.resnet_model_fn_helper(tf.estimator.ModeKeys.PREDICT, resnet_version=2,\n                                dtype=tf.float32)\n\n  def _test_imagenetmodel_shape(self, resnet_version):\n    batch_size = 135\n    num_classes = 246\n\n    model = imagenet_main.ImagenetModel(\n        50, data_format='channels_last', num_classes=num_classes,\n        resnet_version=resnet_version)\n\n    fake_input = tf.random_uniform([batch_size, 224, 224, 3])\n    output = model(fake_input, training=True)\n\n    self.assertAllEqual(output.shape, (batch_size, num_classes))\n\n  def test_imagenetmodel_shape_v1(self):\n    self._test_imagenetmodel_shape(resnet_version=1)\n\n  def test_imagenetmodel_shape_v2(self):\n    self._test_imagenetmodel_shape(resnet_version=2)\n\n  def test_imagenet_end_to_end_synthetic_v1(self):\n    integration.run_synthetic(\n        main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n        extra_flags=['-v', '1']\n    )\n\n  def test_imagenet_end_to_end_synthetic_v2(self):\n    integration.run_synthetic(\n        main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n        extra_flags=['-v', '2']\n    )\n\n  def test_imagenet_end_to_end_synthetic_v1_tiny(self):\n    integration.run_synthetic(\n        main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n        extra_flags=['-resnet_version', '1', '-resnet_size', '18']\n    )\n\n  def test_imagenet_end_to_end_synthetic_v2_tiny(self):\n    integration.run_synthetic(\n        main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n        extra_flags=['-resnet_version', '2', '-resnet_size', '18']\n    )\n\n  def test_imagenet_end_to_end_synthetic_v1_huge(self):\n    integration.run_synthetic(\n        main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n        extra_flags=['-resnet_version', '1', '-resnet_size', '200']\n    )\n\n  def test_imagenet_end_to_end_synthetic_v2_huge(self):\n    integration.run_synthetic(\n        main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n        extra_flags=['-resnet_version', '2', '-resnet_size', '200']\n    )\n\n  def test_flag_restriction(self):\n    with self.assertRaises(SystemExit):\n      integration.run_synthetic(\n          main=imagenet_main.run_imagenet, tmp_root=self.get_temp_dir(),\n          extra_flags=['-resnet_version', '1', '-dtype', 'fp16']\n      )\n\n\nif __name__ == '__main__':\n  tf.test.main()\n"
  },
  {
    "path": "official/resnet/layer_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Test that the definitions of ResNet layers haven't changed.\n\nThese tests will fail if either:\n  a)  The graph of a resnet layer changes and the change is significant enough\n      that it can no longer load existing checkpoints.\n  b)  The numerical results produced by the layer change.\n\nA warning will be issued if the graph changes, but the checkpoint still loads.\n\nIn the event that a layer change is intended, or the TensorFlow implementation\nof a layer changes (and thus changes the graph), regenerate using the command:\n\n  $ python3 layer_test.py -regen\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys\n\nimport tensorflow as tf   # pylint: disable=g-bad-import-order\nfrom official.resnet import resnet_model\nfrom official.utils.testing import reference_data\n\n\nDATA_FORMAT = \"channels_last\"  # CPU instructions often preclude channels_first\nBATCH_SIZE = 32\nBLOCK_TESTS = [\n    dict(bottleneck=True, projection=True, resnet_version=1, width=8,\n         channels=4),\n    dict(bottleneck=True, projection=True, resnet_version=2, width=8,\n         channels=4),\n    dict(bottleneck=True, projection=False, resnet_version=1, width=8,\n         channels=4),\n    dict(bottleneck=True, projection=False, resnet_version=2, width=8,\n         channels=4),\n    dict(bottleneck=False, projection=True, resnet_version=1, width=8,\n         channels=4),\n    dict(bottleneck=False, projection=True, resnet_version=2, width=8,\n         channels=4),\n    dict(bottleneck=False, projection=False, resnet_version=1, width=8,\n         channels=4),\n    dict(bottleneck=False, projection=False, resnet_version=2, width=8,\n         channels=4),\n]\n\n\nclass BaseTest(reference_data.BaseTest):\n  \"\"\"Tests for core ResNet layers.\"\"\"\n\n  @property\n  def test_name(self):\n    return \"resnet\"\n\n  def _batch_norm_ops(self, test=False):\n    name = \"batch_norm\"\n\n    g = tf.Graph()\n    with g.as_default():\n      tf.set_random_seed(self.name_to_seed(name))\n      input_tensor = tf.get_variable(\n          \"input_tensor\", dtype=tf.float32,\n          initializer=tf.random_uniform((32, 16, 16, 3), maxval=1)\n      )\n      layer = resnet_model.batch_norm(\n          inputs=input_tensor, data_format=DATA_FORMAT, training=True)\n\n    self._save_or_test_ops(\n        name=name, graph=g, ops_to_eval=[input_tensor, layer], test=test,\n        correctness_function=self.default_correctness_function\n    )\n\n  def make_projection(self, filters_out, strides, data_format):\n    \"\"\"1D convolution with stride projector.\n\n    Args:\n      filters_out: Number of filters in the projection.\n      strides: Stride length for convolution.\n      data_format: channels_first or channels_last\n\n    Returns:\n      A CNN projector function with kernel_size 1.\n    \"\"\"\n    def projection_shortcut(inputs):\n      return resnet_model.conv2d_fixed_padding(\n          inputs=inputs, filters=filters_out, kernel_size=1, strides=strides,\n          data_format=data_format)\n    return projection_shortcut\n\n  def _resnet_block_ops(self, test, batch_size, bottleneck, projection,\n                        resnet_version, width, channels):\n    \"\"\"Test whether resnet block construction has changed.\n\n    Args:\n      test: Whether or not to run as a test case.\n      batch_size: Number of points in the fake image. This is needed due to\n        batch normalization.\n      bottleneck: Whether or not to use bottleneck layers.\n      projection: Whether or not to project the input.\n      resnet_version: Which version of ResNet to test.\n      width: The width of the fake image.\n      channels: The number of channels in the fake image.\n    \"\"\"\n\n    name = \"batch-size-{}_{}{}_version-{}_width-{}_channels-{}\".format(\n        batch_size,\n        \"bottleneck\" if bottleneck else \"building\",\n        \"_projection\" if projection else \"\",\n        resnet_version,\n        width,\n        channels\n    )\n\n    if resnet_version == 1:\n      block_fn = resnet_model._building_block_v1\n      if bottleneck:\n        block_fn = resnet_model._bottleneck_block_v1\n    else:\n      block_fn = resnet_model._building_block_v2\n      if bottleneck:\n        block_fn = resnet_model._bottleneck_block_v2\n\n    g = tf.Graph()\n    with g.as_default():\n      tf.set_random_seed(self.name_to_seed(name))\n      strides = 1\n      channels_out = channels\n      projection_shortcut = None\n      if projection:\n        strides = 2\n        channels_out *= strides\n        projection_shortcut = self.make_projection(\n            filters_out=channels_out, strides=strides, data_format=DATA_FORMAT)\n\n      filters = channels_out\n      if bottleneck:\n        filters = channels_out // 4\n\n      input_tensor = tf.get_variable(\n          \"input_tensor\", dtype=tf.float32,\n          initializer=tf.random_uniform((batch_size, width, width, channels),\n                                        maxval=1)\n      )\n\n      layer = block_fn(inputs=input_tensor, filters=filters, training=True,\n                       projection_shortcut=projection_shortcut, strides=strides,\n                       data_format=DATA_FORMAT)\n\n    self._save_or_test_ops(\n        name=name, graph=g, ops_to_eval=[input_tensor, layer], test=test,\n        correctness_function=self.default_correctness_function\n    )\n\n  def test_batch_norm(self):\n    self._batch_norm_ops(test=True)\n\n  def test_block_0(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[0])\n\n  def test_block_1(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[1])\n\n  def test_block_2(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[2])\n\n  def test_block_3(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[3])\n\n  def test_block_4(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[4])\n\n  def test_block_5(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[5])\n\n  def test_block_6(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[6])\n\n  def test_block_7(self):\n    self._resnet_block_ops(test=True, batch_size=BATCH_SIZE, **BLOCK_TESTS[7])\n\n  def regenerate(self):\n    \"\"\"Create reference data files for ResNet layer tests.\"\"\"\n    self._batch_norm_ops(test=False)\n    for block_params in BLOCK_TESTS:\n      self._resnet_block_ops(test=False, batch_size=BATCH_SIZE, **block_params)\n\n\nif __name__ == \"__main__\":\n  reference_data.main(argv=sys.argv, test_class=BaseTest)\n"
  },
  {
    "path": "official/resnet/resnet_model.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Contains definitions for Residual Networks.\n\nResidual networks ('v1' ResNets) were originally proposed in:\n[1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun\n    Deep Residual Learning for Image Recognition. arXiv:1512.03385\n\nThe full preactivation 'v2' ResNet variant was introduced by:\n[2] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun\n    Identity Mappings in Deep Residual Networks. arXiv: 1603.05027\n\nThe key difference of the full preactivation 'v2' variant compared to the\n'v1' variant in [1] is the use of batch normalization before every weight layer\nrather than after.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n_BATCH_NORM_DECAY = 0.997\n_BATCH_NORM_EPSILON = 1e-5\nDEFAULT_VERSION = 2\nDEFAULT_DTYPE = tf.float32\nCASTABLE_TYPES = (tf.float16,)\nALLOWED_TYPES = (DEFAULT_DTYPE,) + CASTABLE_TYPES\n\n\n################################################################################\n# Convenience functions for building the ResNet model.\n################################################################################\ndef batch_norm(inputs, training, data_format):\n  \"\"\"Performs a batch normalization using a standard set of parameters.\"\"\"\n  # We set fused=True for a significant performance boost. See\n  # https://www.tensorflow.org/performance/performance_guide#common_fused_ops\n  return tf.layers.batch_normalization(\n      inputs=inputs, axis=1 if data_format == 'channels_first' else 3,\n      momentum=_BATCH_NORM_DECAY, epsilon=_BATCH_NORM_EPSILON, center=True,\n      scale=True, training=training, fused=True)\n\n\ndef fixed_padding(inputs, kernel_size, data_format):\n  \"\"\"Pads the input along the spatial dimensions independently of input size.\n\n  Args:\n    inputs: A tensor of size [batch, channels, height_in, width_in] or\n      [batch, height_in, width_in, channels] depending on data_format.\n    kernel_size: The kernel to be used in the conv2d or max_pool2d operation.\n                 Should be a positive integer.\n    data_format: The input format ('channels_last' or 'channels_first').\n\n  Returns:\n    A tensor with the same format as the input with the data either intact\n    (if kernel_size == 1) or padded (if kernel_size > 1).\n  \"\"\"\n  pad_total = kernel_size - 1\n  pad_beg = pad_total // 2\n  pad_end = pad_total - pad_beg\n\n  if data_format == 'channels_first':\n    padded_inputs = tf.pad(inputs, [[0, 0], [0, 0],\n                                    [pad_beg, pad_end], [pad_beg, pad_end]])\n  else:\n    padded_inputs = tf.pad(inputs, [[0, 0], [pad_beg, pad_end],\n                                    [pad_beg, pad_end], [0, 0]])\n  return padded_inputs\n\n\ndef conv2d_fixed_padding(inputs, filters, kernel_size, strides, data_format):\n  \"\"\"Strided 2-D convolution with explicit padding.\"\"\"\n  # The padding is consistent and is based only on `kernel_size`, not on the\n  # dimensions of `inputs` (as opposed to using `tf.layers.conv2d` alone).\n  if strides > 1:\n    inputs = fixed_padding(inputs, kernel_size, data_format)\n\n  return tf.layers.conv2d(\n      inputs=inputs, filters=filters, kernel_size=kernel_size, strides=strides,\n      padding=('SAME' if strides == 1 else 'VALID'), use_bias=False,\n      kernel_initializer=tf.variance_scaling_initializer(),\n      data_format=data_format)\n\n\n################################################################################\n# ResNet block definitions.\n################################################################################\ndef _building_block_v1(inputs, filters, training, projection_shortcut, strides,\n                       data_format):\n  \"\"\"A single block for ResNet v1, without a bottleneck.\n\n  Convolution then batch normalization then ReLU as described by:\n    Deep Residual Learning for Image Recognition\n    https://arxiv.org/pdf/1512.03385.pdf\n    by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Dec 2015.\n\n  Args:\n    inputs: A tensor of size [batch, channels, height_in, width_in] or\n      [batch, height_in, width_in, channels] depending on data_format.\n    filters: The number of filters for the convolutions.\n    training: A Boolean for whether the model is in training or inference\n      mode. Needed for batch normalization.\n    projection_shortcut: The function to use for projection shortcuts\n      (typically a 1x1 convolution when downsampling the input).\n    strides: The block's stride. If greater than 1, this block will ultimately\n      downsample the input.\n    data_format: The input format ('channels_last' or 'channels_first').\n\n  Returns:\n    The output tensor of the block; shape should match inputs.\n  \"\"\"\n  shortcut = inputs\n\n  if projection_shortcut is not None:\n    shortcut = projection_shortcut(inputs)\n    shortcut = batch_norm(inputs=shortcut, training=training,\n                          data_format=data_format)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=3, strides=strides,\n      data_format=data_format)\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=3, strides=1,\n      data_format=data_format)\n  inputs = batch_norm(inputs, training, data_format)\n  inputs += shortcut\n  inputs = tf.nn.relu(inputs)\n\n  return inputs\n\n\ndef _building_block_v2(inputs, filters, training, projection_shortcut, strides,\n                       data_format):\n  \"\"\"A single block for ResNet v2, without a bottleneck.\n\n  Batch normalization then ReLu then convolution as described by:\n    Identity Mappings in Deep Residual Networks\n    https://arxiv.org/pdf/1603.05027.pdf\n    by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Jul 2016.\n\n  Args:\n    inputs: A tensor of size [batch, channels, height_in, width_in] or\n      [batch, height_in, width_in, channels] depending on data_format.\n    filters: The number of filters for the convolutions.\n    training: A Boolean for whether the model is in training or inference\n      mode. Needed for batch normalization.\n    projection_shortcut: The function to use for projection shortcuts\n      (typically a 1x1 convolution when downsampling the input).\n    strides: The block's stride. If greater than 1, this block will ultimately\n      downsample the input.\n    data_format: The input format ('channels_last' or 'channels_first').\n\n  Returns:\n    The output tensor of the block; shape should match inputs.\n  \"\"\"\n  shortcut = inputs\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n\n  # The projection shortcut should come after the first batch norm and ReLU\n  # since it performs a 1x1 convolution.\n  if projection_shortcut is not None:\n    shortcut = projection_shortcut(inputs)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=3, strides=strides,\n      data_format=data_format)\n\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=3, strides=1,\n      data_format=data_format)\n\n  return inputs + shortcut\n\n\ndef _bottleneck_block_v1(inputs, filters, training, projection_shortcut,\n                         strides, data_format):\n  \"\"\"A single block for ResNet v1, with a bottleneck.\n\n  Similar to _building_block_v1(), except using the \"bottleneck\" blocks\n  described in:\n    Convolution then batch normalization then ReLU as described by:\n      Deep Residual Learning for Image Recognition\n      https://arxiv.org/pdf/1512.03385.pdf\n      by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Dec 2015.\n\n  Args:\n    inputs: A tensor of size [batch, channels, height_in, width_in] or\n      [batch, height_in, width_in, channels] depending on data_format.\n    filters: The number of filters for the convolutions.\n    training: A Boolean for whether the model is in training or inference\n      mode. Needed for batch normalization.\n    projection_shortcut: The function to use for projection shortcuts\n      (typically a 1x1 convolution when downsampling the input).\n    strides: The block's stride. If greater than 1, this block will ultimately\n      downsample the input.\n    data_format: The input format ('channels_last' or 'channels_first').\n\n  Returns:\n    The output tensor of the block; shape should match inputs.\n  \"\"\"\n  shortcut = inputs\n\n  if projection_shortcut is not None:\n    shortcut = projection_shortcut(inputs)\n    shortcut = batch_norm(inputs=shortcut, training=training,\n                          data_format=data_format)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=1, strides=1,\n      data_format=data_format)\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=3, strides=strides,\n      data_format=data_format)\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=4 * filters, kernel_size=1, strides=1,\n      data_format=data_format)\n  inputs = batch_norm(inputs, training, data_format)\n  inputs += shortcut\n  inputs = tf.nn.relu(inputs)\n\n  return inputs\n\n\ndef _bottleneck_block_v2(inputs, filters, training, projection_shortcut,\n                         strides, data_format):\n  \"\"\"A single block for ResNet v2, without a bottleneck.\n\n  Similar to _building_block_v2(), except using the \"bottleneck\" blocks\n  described in:\n    Convolution then batch normalization then ReLU as described by:\n      Deep Residual Learning for Image Recognition\n      https://arxiv.org/pdf/1512.03385.pdf\n      by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Dec 2015.\n\n  Adapted to the ordering conventions of:\n    Batch normalization then ReLu then convolution as described by:\n      Identity Mappings in Deep Residual Networks\n      https://arxiv.org/pdf/1603.05027.pdf\n      by Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun, Jul 2016.\n\n  Args:\n    inputs: A tensor of size [batch, channels, height_in, width_in] or\n      [batch, height_in, width_in, channels] depending on data_format.\n    filters: The number of filters for the convolutions.\n    training: A Boolean for whether the model is in training or inference\n      mode. Needed for batch normalization.\n    projection_shortcut: The function to use for projection shortcuts\n      (typically a 1x1 convolution when downsampling the input).\n    strides: The block's stride. If greater than 1, this block will ultimately\n      downsample the input.\n    data_format: The input format ('channels_last' or 'channels_first').\n\n  Returns:\n    The output tensor of the block; shape should match inputs.\n  \"\"\"\n  shortcut = inputs\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n\n  # The projection shortcut should come after the first batch norm and ReLU\n  # since it performs a 1x1 convolution.\n  if projection_shortcut is not None:\n    shortcut = projection_shortcut(inputs)\n\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=1, strides=1,\n      data_format=data_format)\n\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=filters, kernel_size=3, strides=strides,\n      data_format=data_format)\n\n  inputs = batch_norm(inputs, training, data_format)\n  inputs = tf.nn.relu(inputs)\n  inputs = conv2d_fixed_padding(\n      inputs=inputs, filters=4 * filters, kernel_size=1, strides=1,\n      data_format=data_format)\n\n  return inputs + shortcut\n\n\ndef block_layer(inputs, filters, bottleneck, block_fn, blocks, strides,\n                training, name, data_format):\n  \"\"\"Creates one layer of blocks for the ResNet model.\n\n  Args:\n    inputs: A tensor of size [batch, channels, height_in, width_in] or\n      [batch, height_in, width_in, channels] depending on data_format.\n    filters: The number of filters for the first convolution of the layer.\n    bottleneck: Is the block created a bottleneck block.\n    block_fn: The block to use within the model, either `building_block` or\n      `bottleneck_block`.\n    blocks: The number of blocks contained in the layer.\n    strides: The stride to use for the first convolution of the layer. If\n      greater than 1, this layer will ultimately downsample the input.\n    training: Either True or False, whether we are currently training the\n      model. Needed for batch norm.\n    name: A string name for the tensor output of the block layer.\n    data_format: The input format ('channels_last' or 'channels_first').\n\n  Returns:\n    The output tensor of the block layer.\n  \"\"\"\n\n  # Bottleneck blocks end with 4x the number of filters as they start with\n  filters_out = filters * 4 if bottleneck else filters\n\n  def projection_shortcut(inputs):\n    return conv2d_fixed_padding(\n        inputs=inputs, filters=filters_out, kernel_size=1, strides=strides,\n        data_format=data_format)\n\n  # Only the first block per block_layer uses projection_shortcut and strides\n  inputs = block_fn(inputs, filters, training, projection_shortcut, strides,\n                    data_format)\n\n  for _ in range(1, blocks):\n    inputs = block_fn(inputs, filters, training, None, 1, data_format)\n\n  return tf.identity(inputs, name)\n\n\nclass Model(object):\n  \"\"\"Base class for building the Resnet Model.\"\"\"\n\n  def __init__(self, resnet_size, bottleneck, num_classes, num_filters,\n               kernel_size,\n               conv_stride, first_pool_size, first_pool_stride,\n               block_sizes, block_strides,\n               final_size, resnet_version=DEFAULT_VERSION, data_format=None,\n               dtype=DEFAULT_DTYPE):\n    \"\"\"Creates a model for classifying an image.\n\n    Args:\n      resnet_size: A single integer for the size of the ResNet model.\n      bottleneck: Use regular blocks or bottleneck blocks.\n      num_classes: The number of classes used as labels.\n      num_filters: The number of filters to use for the first block layer\n        of the model. This number is then doubled for each subsequent block\n        layer.\n      kernel_size: The kernel size to use for convolution.\n      conv_stride: stride size for the initial convolutional layer\n      first_pool_size: Pool size to be used for the first pooling layer.\n        If none, the first pooling layer is skipped.\n      first_pool_stride: stride size for the first pooling layer. Not used\n        if first_pool_size is None.\n      block_sizes: A list containing n values, where n is the number of sets of\n        block layers desired. Each value should be the number of blocks in the\n        i-th set.\n      block_strides: List of integers representing the desired stride size for\n        each of the sets of block layers. Should be same length as block_sizes.\n      final_size: The expected size of the model after the second pooling.\n      resnet_version: Integer representing which version of the ResNet network\n        to use. See README for details. Valid values: [1, 2]\n      data_format: Input format ('channels_last', 'channels_first', or None).\n        If set to None, the format is dependent on whether a GPU is available.\n      dtype: The TensorFlow dtype to use for calculations. If not specified\n        tf.float32 is used.\n\n    Raises:\n      ValueError: if invalid version is selected.\n    \"\"\"\n    self.resnet_size = resnet_size\n\n    if not data_format:\n      data_format = (\n          'channels_first' if tf.test.is_built_with_cuda() else 'channels_last')\n\n    self.resnet_version = resnet_version\n    if resnet_version not in (1, 2):\n      raise ValueError(\n          'Resnet version should be 1 or 2. See README for citations.')\n\n    self.bottleneck = bottleneck\n    if bottleneck:\n      if resnet_version == 1:\n        self.block_fn = _bottleneck_block_v1\n      else:\n        self.block_fn = _bottleneck_block_v2\n    else:\n      if resnet_version == 1:\n        self.block_fn = _building_block_v1\n      else:\n        self.block_fn = _building_block_v2\n\n    if dtype not in ALLOWED_TYPES:\n      raise ValueError('dtype must be one of: {}'.format(ALLOWED_TYPES))\n\n    self.data_format = data_format\n    self.num_classes = num_classes\n    self.num_filters = num_filters\n    self.kernel_size = kernel_size\n    self.conv_stride = conv_stride\n    self.first_pool_size = first_pool_size\n    self.first_pool_stride = first_pool_stride\n    self.block_sizes = block_sizes\n    self.block_strides = block_strides\n    self.final_size = final_size\n    self.dtype = dtype\n    self.pre_activation = resnet_version == 2\n\n  def _custom_dtype_getter(self, getter, name, shape=None, dtype=DEFAULT_DTYPE,\n                           *args, **kwargs):\n    \"\"\"Creates variables in fp32, then casts to fp16 if necessary.\n\n    This function is a custom getter. A custom getter is a function with the\n    same signature as tf.get_variable, except it has an additional getter\n    parameter. Custom getters can be passed as the `custom_getter` parameter of\n    tf.variable_scope. Then, tf.get_variable will call the custom getter,\n    instead of directly getting a variable itself. This can be used to change\n    the types of variables that are retrieved with tf.get_variable.\n    The `getter` parameter is the underlying variable getter, that would have\n    been called if no custom getter was used. Custom getters typically get a\n    variable with `getter`, then modify it in some way.\n\n    This custom getter will create an fp32 variable. If a low precision\n    (e.g. float16) variable was requested it will then cast the variable to the\n    requested dtype. The reason we do not directly create variables in low\n    precision dtypes is that applying small gradients to such variables may\n    cause the variable not to change.\n\n    Args:\n      getter: The underlying variable getter, that has the same signature as\n        tf.get_variable and returns a variable.\n      name: The name of the variable to get.\n      shape: The shape of the variable to get.\n      dtype: The dtype of the variable to get. Note that if this is a low\n        precision dtype, the variable will be created as a tf.float32 variable,\n        then cast to the appropriate dtype\n      *args: Additional arguments to pass unmodified to getter.\n      **kwargs: Additional keyword arguments to pass unmodified to getter.\n\n    Returns:\n      A variable which is cast to fp16 if necessary.\n    \"\"\"\n\n    if dtype in CASTABLE_TYPES:\n      var = getter(name, shape, tf.float32, *args, **kwargs)\n      return tf.cast(var, dtype=dtype, name=name + '_cast')\n    else:\n      return getter(name, shape, dtype, *args, **kwargs)\n\n  def _model_variable_scope(self):\n    \"\"\"Returns a variable scope that the model should be created under.\n\n    If self.dtype is a castable type, model variable will be created in fp32\n    then cast to self.dtype before being used.\n\n    Returns:\n      A variable scope for the model.\n    \"\"\"\n\n    return tf.variable_scope('resnet_model',\n                             custom_getter=self._custom_dtype_getter)\n\n  def __call__(self, inputs, training):\n    \"\"\"Add operations to classify a batch of input images.\n\n    Args:\n      inputs: A Tensor representing a batch of input images.\n      training: A boolean. Set to True to add operations required only when\n        training the classifier.\n\n    Returns:\n      A logits Tensor with shape [<batch_size>, self.num_classes].\n    \"\"\"\n\n    with self._model_variable_scope():\n      if self.data_format == 'channels_first':\n        # Convert the inputs from channels_last (NHWC) to channels_first (NCHW).\n        # This provides a large performance boost on GPU. See\n        # https://www.tensorflow.org/performance/performance_guide#data_formats\n        inputs = tf.transpose(inputs, [0, 3, 1, 2])\n\n      inputs = conv2d_fixed_padding(\n          inputs=inputs, filters=self.num_filters, kernel_size=self.kernel_size,\n          strides=self.conv_stride, data_format=self.data_format)\n      inputs = tf.identity(inputs, 'initial_conv')\n\n      # We do not include batch normalization or activation functions in V2\n      # for the initial conv1 because the first ResNet unit will perform these\n      # for both the shortcut and non-shortcut paths as part of the first\n      # block's projection. Cf. Appendix of [2].\n      if self.resnet_version == 1:\n        inputs = batch_norm(inputs, training, self.data_format)\n        inputs = tf.nn.relu(inputs)\n\n      if self.first_pool_size:\n        inputs = tf.layers.max_pooling2d(\n            inputs=inputs, pool_size=self.first_pool_size,\n            strides=self.first_pool_stride, padding='SAME',\n            data_format=self.data_format)\n        inputs = tf.identity(inputs, 'initial_max_pool')\n\n      for i, num_blocks in enumerate(self.block_sizes):\n        num_filters = self.num_filters * (2**i)\n        inputs = block_layer(\n            inputs=inputs, filters=num_filters, bottleneck=self.bottleneck,\n            block_fn=self.block_fn, blocks=num_blocks,\n            strides=self.block_strides[i], training=training,\n            name='block_layer{}'.format(i + 1), data_format=self.data_format)\n\n      # Only apply the BN and ReLU for model that does pre_activation in each\n      # building/bottleneck block, eg resnet V2.\n      if self.pre_activation:\n        inputs = batch_norm(inputs, training, self.data_format)\n        inputs = tf.nn.relu(inputs)\n\n      # The current top layer has shape\n      # `batch_size x pool_size x pool_size x final_size`.\n      # ResNet does an Average Pooling layer over pool_size,\n      # but that is the same as doing a reduce_mean. We do a reduce_mean\n      # here because it performs better than AveragePooling2D.\n      axes = [2, 3] if self.data_format == 'channels_first' else [1, 2]\n      inputs = tf.reduce_mean(inputs, axes, keepdims=True)\n      inputs = tf.identity(inputs, 'final_reduce_mean')\n\n      inputs = tf.reshape(inputs, [-1, self.final_size])\n      inputs = tf.layers.dense(inputs=inputs, units=self.num_classes)\n      inputs = tf.identity(inputs, 'final_dense')\n      return inputs\n"
  },
  {
    "path": "official/resnet/resnet_run_loop.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Contains utility and supporting functions for ResNet.\n\n  This module contains ResNet code which does not directly build layers. This\nincludes dataset management, hyperparameter and optimizer code, and argument\nparsing. Code for defining the ResNet layers can be found in resnet_model.py.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\n# pylint: disable=g-bad-import-order\nfrom absl import flags\nimport tensorflow as tf\n\nfrom official.resnet import resnet_model\nfrom official.utils.flags import core as flags_core\nfrom official.utils.export import export\nfrom official.utils.logs import hooks_helper\nfrom official.utils.logs import logger\nfrom official.utils.misc import model_helpers\n# pylint: enable=g-bad-import-order\n\n\n################################################################################\n# Functions for input processing.\n################################################################################\ndef process_record_dataset(dataset, is_training, batch_size, shuffle_buffer,\n                           parse_record_fn, num_epochs=1):\n  \"\"\"Given a Dataset with raw records, return an iterator over the records.\n\n  Args:\n    dataset: A Dataset representing raw records\n    is_training: A boolean denoting whether the input is for training.\n    batch_size: The number of samples per batch.\n    shuffle_buffer: The buffer size to use when shuffling records. A larger\n      value results in better randomness, but smaller values reduce startup\n      time and use less memory.\n    parse_record_fn: A function that takes a raw record and returns the\n      corresponding (image, label) pair.\n    num_epochs: The number of epochs to repeat the dataset.\n\n  Returns:\n    Dataset of (image, label) pairs ready for iteration.\n  \"\"\"\n\n  # We prefetch a batch at a time, This can help smooth out the time taken to\n  # load input files as we go through shuffling and processing.\n  dataset = dataset.prefetch(buffer_size=batch_size)\n  if is_training:\n    # Shuffle the records. Note that we shuffle before repeating to ensure\n    # that the shuffling respects epoch boundaries.\n    dataset = dataset.shuffle(buffer_size=shuffle_buffer)\n\n  # If we are training over multiple epochs before evaluating, repeat the\n  # dataset for the appropriate number of epochs.\n  dataset = dataset.repeat(num_epochs)\n\n  # Parse the raw records into images and labels. Testing has shown that setting\n  # num_parallel_batches > 1 produces no improvement in throughput, since\n  # batch_size is almost always much greater than the number of CPU cores.\n  dataset = dataset.apply(\n      tf.contrib.data.map_and_batch(\n          lambda value: parse_record_fn(value, is_training),\n          batch_size=batch_size,\n          num_parallel_batches=1,\n          drop_remainder=True))\n\n  # Operations between the final prefetch and the get_next call to the iterator\n  # will happen synchronously during run time. We prefetch here again to\n  # background all of the above processing work and keep it out of the\n  # critical training path. Setting buffer_size to tf.contrib.data.AUTOTUNE\n  # allows DistributionStrategies to adjust how many batches to fetch based\n  # on how many devices are present.\n  dataset = dataset.prefetch(buffer_size=tf.contrib.data.AUTOTUNE)\n\n  return dataset\n\n\ndef get_synth_input_fn(height, width, num_channels, num_classes):\n  \"\"\"Returns an input function that returns a dataset with zeroes.\n\n  This is useful in debugging input pipeline performance, as it removes all\n  elements of file reading and image preprocessing.\n\n  Args:\n    height: Integer height that will be used to create a fake image tensor.\n    width: Integer width that will be used to create a fake image tensor.\n    num_channels: Integer depth that will be used to create a fake image tensor.\n    num_classes: Number of classes that should be represented in the fake labels\n      tensor\n\n  Returns:\n    An input_fn that can be used in place of a real one to return a dataset\n    that can be used for iteration.\n  \"\"\"\n  def input_fn(is_training, data_dir, batch_size, *args, **kwargs):  # pylint: disable=unused-argument\n    images = tf.zeros((batch_size, height, width, num_channels), tf.float32)\n    labels = tf.zeros((batch_size), tf.int32)\n    return tf.data.Dataset.from_tensors((images, labels)).repeat()\n\n  return input_fn\n\n\n################################################################################\n# Functions for running training/eval/validation loops for the model.\n################################################################################\ndef learning_rate_with_decay(\n    batch_size, batch_denom, num_images, boundary_epochs, decay_rates):\n  \"\"\"Get a learning rate that decays step-wise as training progresses.\n\n  Args:\n    batch_size: the number of examples processed in each training batch.\n    batch_denom: this value will be used to scale the base learning rate.\n      `0.1 * batch size` is divided by this number, such that when\n      batch_denom == batch_size, the initial learning rate will be 0.1.\n    num_images: total number of images that will be used for training.\n    boundary_epochs: list of ints representing the epochs at which we\n      decay the learning rate.\n    decay_rates: list of floats representing the decay rates to be used\n      for scaling the learning rate. It should have one more element\n      than `boundary_epochs`, and all elements should have the same type.\n\n  Returns:\n    Returns a function that takes a single argument - the number of batches\n    trained so far (global_step)- and returns the learning rate to be used\n    for training the next batch.\n  \"\"\"\n  initial_learning_rate = 0.1 * batch_size / batch_denom\n  batches_per_epoch = num_images / batch_size\n\n  # Multiply the learning rate by 0.1 at 100, 150, and 200 epochs.\n  boundaries = [int(batches_per_epoch * epoch) for epoch in boundary_epochs]\n  vals = [initial_learning_rate * decay for decay in decay_rates]\n\n  def learning_rate_fn(global_step):\n    global_step = tf.cast(global_step, tf.int32)\n    return tf.train.piecewise_constant(global_step, boundaries, vals)\n\n  return learning_rate_fn\n\n\ndef resnet_model_fn(features, labels, mode, model_class,\n                    resnet_size, weight_decay, learning_rate_fn, momentum,\n                    data_format, resnet_version, loss_scale,\n                    loss_filter_fn=None, dtype=resnet_model.DEFAULT_DTYPE):\n  \"\"\"Shared functionality for different resnet model_fns.\n\n  Initializes the ResnetModel representing the model layers\n  and uses that model to build the necessary EstimatorSpecs for\n  the `mode` in question. For training, this means building losses,\n  the optimizer, and the train op that get passed into the EstimatorSpec.\n  For evaluation and prediction, the EstimatorSpec is returned without\n  a train op, but with the necessary parameters for the given mode.\n\n  Args:\n    features: tensor representing input images\n    labels: tensor representing class labels for all input images\n    mode: current estimator mode; should be one of\n      `tf.estimator.ModeKeys.TRAIN`, `EVALUATE`, `PREDICT`\n    model_class: a class representing a TensorFlow model that has a __call__\n      function. We assume here that this is a subclass of ResnetModel.\n    resnet_size: A single integer for the size of the ResNet model.\n    weight_decay: weight decay loss rate used to regularize learned variables.\n    learning_rate_fn: function that returns the current learning rate given\n      the current global_step\n    momentum: momentum term used for optimization\n    data_format: Input format ('channels_last', 'channels_first', or None).\n      If set to None, the format is dependent on whether a GPU is available.\n    resnet_version: Integer representing which version of the ResNet network to\n      use. See README for details. Valid values: [1, 2]\n    loss_scale: The factor to scale the loss for numerical stability. A detailed\n      summary is present in the arg parser help text.\n    loss_filter_fn: function that takes a string variable name and returns\n      True if the var should be included in loss calculation, and False\n      otherwise. If None, batch_normalization variables will be excluded\n      from the loss.\n    dtype: the TensorFlow dtype to use for calculations.\n\n  Returns:\n    EstimatorSpec parameterized according to the input params and the\n    current mode.\n  \"\"\"\n\n  # Generate a summary node for the images\n  tf.summary.image('images', features, max_outputs=6)\n\n  features = tf.cast(features, dtype)\n\n  model = model_class(resnet_size, data_format, resnet_version=resnet_version,\n                      dtype=dtype)\n\n  logits = model(features, mode == tf.estimator.ModeKeys.TRAIN)\n\n  # This acts as a no-op if the logits are already in fp32 (provided logits are\n  # not a SparseTensor). If dtype is is low precision, logits must be cast to\n  # fp32 for numerical stability.\n  logits = tf.cast(logits, tf.float32)\n\n  predictions = {\n      'classes': tf.argmax(logits, axis=1),\n      'probabilities': tf.nn.softmax(logits, name='softmax_tensor')\n  }\n\n  if mode == tf.estimator.ModeKeys.PREDICT:\n    # Return the predictions and the specification for serving a SavedModel\n    return tf.estimator.EstimatorSpec(\n        mode=mode,\n        predictions=predictions,\n        export_outputs={\n            'predict': tf.estimator.export.PredictOutput(predictions)\n        })\n\n  # Calculate loss, which includes softmax cross entropy and L2 regularization.\n  cross_entropy = tf.losses.sparse_softmax_cross_entropy(\n      logits=logits, labels=labels)\n\n  # Create a tensor named cross_entropy for logging purposes.\n  tf.identity(cross_entropy, name='cross_entropy')\n  tf.summary.scalar('cross_entropy', cross_entropy)\n\n  # If no loss_filter_fn is passed, assume we want the default behavior,\n  # which is that batch_normalization variables are excluded from loss.\n  def exclude_batch_norm(name):\n    return 'batch_normalization' not in name\n  loss_filter_fn = loss_filter_fn or exclude_batch_norm\n\n  # Add weight decay to the loss.\n  l2_loss = weight_decay * tf.add_n(\n      # loss is computed using fp32 for numerical stability.\n      [tf.nn.l2_loss(tf.cast(v, tf.float32)) for v in tf.trainable_variables()\n       if loss_filter_fn(v.name)])\n  tf.summary.scalar('l2_loss', l2_loss)\n  loss = cross_entropy + l2_loss\n\n  if mode == tf.estimator.ModeKeys.TRAIN:\n    global_step = tf.train.get_or_create_global_step()\n\n    learning_rate = learning_rate_fn(global_step)\n\n    # Create a tensor named learning_rate for logging purposes\n    tf.identity(learning_rate, name='learning_rate')\n    tf.summary.scalar('learning_rate', learning_rate)\n\n    optimizer = tf.train.MomentumOptimizer(\n        learning_rate=learning_rate,\n        momentum=momentum\n    )\n\n    if loss_scale != 1:\n      # When computing fp16 gradients, often intermediate tensor values are\n      # so small, they underflow to 0. To avoid this, we multiply the loss by\n      # loss_scale to make these tensor values loss_scale times bigger.\n      scaled_grad_vars = optimizer.compute_gradients(loss * loss_scale)\n\n      # Once the gradient computation is complete we can scale the gradients\n      # back to the correct scale before passing them to the optimizer.\n      unscaled_grad_vars = [(grad / loss_scale, var)\n                            for grad, var in scaled_grad_vars]\n      minimize_op = optimizer.apply_gradients(unscaled_grad_vars, global_step)\n    else:\n      minimize_op = optimizer.minimize(loss, global_step)\n\n    update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)\n    train_op = tf.group(minimize_op, update_ops)\n  else:\n    train_op = None\n\n  if not tf.contrib.distribute.has_distribution_strategy():\n    accuracy = tf.metrics.accuracy(labels, predictions['classes'])\n  else:\n    # Metrics are currently not compatible with distribution strategies during\n    # training. This does not affect the overall performance of the model.\n    accuracy = (tf.no_op(), tf.constant(0))\n\n  metrics = {'accuracy': accuracy}\n\n  # Create a tensor named train_accuracy for logging purposes\n  tf.identity(accuracy[1], name='train_accuracy')\n  tf.summary.scalar('train_accuracy', accuracy[1])\n\n  return tf.estimator.EstimatorSpec(\n      mode=mode,\n      predictions=predictions,\n      loss=loss,\n      train_op=train_op,\n      eval_metric_ops=metrics)\n\n\ndef per_device_batch_size(batch_size, num_gpus):\n  \"\"\"For multi-gpu, batch-size must be a multiple of the number of GPUs.\n\n  Note that this should eventually be handled by DistributionStrategies\n  directly. Multi-GPU support is currently experimental, however,\n  so doing the work here until that feature is in place.\n\n  Args:\n    batch_size: Global batch size to be divided among devices. This should be\n      equal to num_gpus times the single-GPU batch_size for multi-gpu training.\n    num_gpus: How many GPUs are used with DistributionStrategies.\n\n  Returns:\n    Batch size per device.\n\n  Raises:\n    ValueError: if batch_size is not divisible by number of devices\n  \"\"\"\n  if num_gpus <= 1:\n    return batch_size\n\n  remainder = batch_size % num_gpus\n  if remainder:\n    err = ('When running with multiple GPUs, batch size '\n           'must be a multiple of the number of available GPUs. Found {} '\n           'GPUs with a batch size of {}; try --batch_size={} instead.'\n          ).format(num_gpus, batch_size, batch_size - remainder)\n    raise ValueError(err)\n  return int(batch_size / num_gpus)\n\n\ndef resnet_main(\n    flags_obj, model_function, input_function, dataset_name, shape=None):\n  \"\"\"Shared main loop for ResNet Models.\n\n  Args:\n    flags_obj: An object containing parsed flags. See define_resnet_flags()\n      for details.\n    model_function: the function that instantiates the Model and builds the\n      ops for train/eval. This will be passed directly into the estimator.\n    input_function: the function that processes the dataset and returns a\n      dataset that the estimator can train on. This will be wrapped with\n      all the relevant flags for running and passed to estimator.\n    dataset_name: the name of the dataset for training and evaluation. This is\n      used for logging purpose.\n    shape: list of ints representing the shape of the images used for training.\n      This is only used if flags_obj.export_dir is passed.\n  \"\"\"\n\n  # Using the Winograd non-fused algorithms provides a small performance boost.\n  os.environ['TF_ENABLE_WINOGRAD_NONFUSED'] = '1'\n\n  # Create session config based on values of inter_op_parallelism_threads and\n  # intra_op_parallelism_threads. Note that we default to having\n  # allow_soft_placement = True, which is required for multi-GPU and not\n  # harmful for other modes.\n  session_config = tf.ConfigProto(\n      inter_op_parallelism_threads=flags_obj.inter_op_parallelism_threads,\n      intra_op_parallelism_threads=flags_obj.intra_op_parallelism_threads,\n      allow_soft_placement=True)\n\n  if flags_core.get_num_gpus(flags_obj) == 0:\n    distribution = tf.contrib.distribute.OneDeviceStrategy('device:CPU:0')\n  elif flags_core.get_num_gpus(flags_obj) == 1:\n    distribution = tf.contrib.distribute.OneDeviceStrategy('device:GPU:0')\n  else:\n    distribution = tf.contrib.distribute.MirroredStrategy(\n        num_gpus=flags_core.get_num_gpus(flags_obj)\n    )\n\n  run_config = tf.estimator.RunConfig(train_distribute=distribution,\n                                      session_config=session_config)\n\n  classifier = tf.estimator.Estimator(\n      model_fn=model_function, model_dir=flags_obj.model_dir, config=run_config,\n      params={\n          'resnet_size': int(flags_obj.resnet_size),\n          'data_format': flags_obj.data_format,\n          'batch_size': flags_obj.batch_size,\n          'resnet_version': int(flags_obj.resnet_version),\n          'loss_scale': flags_core.get_loss_scale(flags_obj),\n          'dtype': flags_core.get_tf_dtype(flags_obj)\n      })\n\n  run_params = {\n      'batch_size': flags_obj.batch_size,\n      'dtype': flags_core.get_tf_dtype(flags_obj),\n      'resnet_size': flags_obj.resnet_size,\n      'resnet_version': flags_obj.resnet_version,\n      'synthetic_data': flags_obj.use_synthetic_data,\n      'train_epochs': flags_obj.train_epochs,\n  }\n  benchmark_logger = logger.config_benchmark_logger(flags_obj)\n  benchmark_logger.log_run_info('resnet', dataset_name, run_params)\n\n  train_hooks = hooks_helper.get_train_hooks(\n      flags_obj.hooks,\n      batch_size=flags_obj.batch_size)\n\n  def input_fn_train():\n    return input_function(\n        is_training=True, data_dir=flags_obj.data_dir,\n        batch_size=per_device_batch_size(\n            flags_obj.batch_size, flags_core.get_num_gpus(flags_obj)),\n        num_epochs=flags_obj.epochs_between_evals)\n\n  def input_fn_eval():\n    return input_function(\n        is_training=False, data_dir=flags_obj.data_dir,\n        batch_size=per_device_batch_size(\n            flags_obj.batch_size, flags_core.get_num_gpus(flags_obj)),\n        num_epochs=1)\n\n  total_training_cycle = (flags_obj.train_epochs //\n                          flags_obj.epochs_between_evals)\n  for cycle_index in range(total_training_cycle):\n    tf.logging.info('Starting a training cycle: %d/%d',\n                    cycle_index, total_training_cycle)\n\n    classifier.train(input_fn=input_fn_train, hooks=train_hooks,\n                     max_steps=flags_obj.max_train_steps)\n\n    tf.logging.info('Starting to evaluate.')\n\n    # flags_obj.max_train_steps is generally associated with testing and\n    # profiling. As a result it is frequently called with synthetic data, which\n    # will iterate forever. Passing steps=flags_obj.max_train_steps allows the\n    # eval (which is generally unimportant in those circumstances) to terminate.\n    # Note that eval will run for max_train_steps each loop, regardless of the\n    # global_step count.\n    eval_results = classifier.evaluate(input_fn=input_fn_eval,\n                                       steps=flags_obj.max_train_steps)\n\n    benchmark_logger.log_evaluation_result(eval_results)\n\n    if model_helpers.past_stop_threshold(\n        flags_obj.stop_threshold, eval_results['accuracy']):\n      break\n\n  if flags_obj.export_dir is not None:\n    # Exports a saved model for the given classifier.\n    input_receiver_fn = export.build_tensor_serving_input_receiver_fn(\n        shape, batch_size=flags_obj.batch_size)\n    classifier.export_savedmodel(flags_obj.export_dir, input_receiver_fn)\n\n\ndef define_resnet_flags(resnet_size_choices=None):\n  \"\"\"Add flags and validators for ResNet.\"\"\"\n  flags_core.define_base()\n  flags_core.define_performance(num_parallel_calls=False)\n  flags_core.define_image()\n  flags_core.define_benchmark()\n  flags.adopt_module_key_flags(flags_core)\n\n  flags.DEFINE_enum(\n      name='resnet_version', short_name='rv', default='2',\n      enum_values=['1', '2'],\n      help=flags_core.help_wrap(\n          'Version of ResNet. (1 or 2) See README.md for details.'))\n\n  choice_kwargs = dict(\n      name='resnet_size', short_name='rs', default='50',\n      help=flags_core.help_wrap('The size of the ResNet model to use.'))\n\n  if resnet_size_choices is None:\n    flags.DEFINE_string(**choice_kwargs)\n  else:\n    flags.DEFINE_enum(enum_values=resnet_size_choices, **choice_kwargs)\n\n  # The current implementation of ResNet v1 is numerically unstable when run\n  # with fp16 and will produce NaN errors soon after training begins.\n  msg = ('ResNet version 1 is not currently supported with fp16. '\n         'Please use version 2 instead.')\n  @flags.multi_flags_validator(['dtype', 'resnet_version'], message=msg)\n  def _forbid_v1_fp16(flag_values):  # pylint: disable=unused-variable\n    return (flags_core.DTYPE_MAP[flag_values['dtype']][0] != tf.float16 or\n            flag_values['resnet_version'] != '1')\n"
  },
  {
    "path": "official/transformer/README.md",
    "content": "# Transformer Translation Model\nThis is an implementation of the Transformer translation model as described in the [Attention is All You Need](https://arxiv.org/abs/1706.03762) paper. Based on the code provided by the authors: [Transformer code](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/transformer.py) from [Tensor2Tensor](https://github.com/tensorflow/tensor2tensor).\n\nTransformer is a neural network architecture that solves sequence to sequence problems using attention mechanisms. Unlike traditional neural seq2seq models, Transformer does not involve recurrent connections. The attention mechanism learns dependencies between tokens in two sequences. Since attention weights apply to all tokens in the sequences, the Tranformer model is able to easily capture long-distance depedencies.\n\nTransformer's overall structure follows the standard encoder-decoder pattern. The encoder uses self-attention to compute a representation of the input sequence. The decoder generates the output sequence one token at a time, taking the encoder output and previous decoder-outputted tokens as inputs.\n\nThe model also applies embeddings on the input and output tokens, and adds a constant positional encoding. The positional encoding adds information about the position of each token.\n\n## Contents\n  * [Contents](#contents)\n  * [Walkthrough](#walkthrough)\n  * [Benchmarks](#benchmarks)\n    * [Training times](#training-times)\n    * [Evaluation results](#evaluation-results)\n  * [Detailed instructions](#detailed-instructions)\n    * [Environment preparation](#environment-preparation)\n    * [Download and preprocess datasets](#download-and-preprocess-datasets)\n    * [Model training and evaluation](#model-training-and-evaluation)\n    * [Translate using the model](#translate-using-the-model)\n    * [Compute official BLEU score](#compute-official-bleu-score)\n  * [Implementation overview](#implementation-overview)\n    * [Model Definition](#model-definition)\n    * [Model Estimator](#model-estimator)\n    * [Other scripts](#other-scripts)\n    * [Test dataset](#test-dataset)\n  * [Term definitions](#term-definitions)\n\n## Walkthrough\n\nBelow are the commands for running the Transformer model. See the [Detailed instrutions](#detailed-instructions) for more details on running the model.\n\n```\ncd /path/to/models/official/transformer\n\n# Ensure that PYTHONPATH is correctly defined as described in\n# https://github.com/tensorflow/models/tree/master/official#running-the-models\n# export PYTHONPATH=\"$PYTHONPATH:/path/to/models\"\n\n# Export variables\nPARAM_SET=big\nDATA_DIR=$HOME/transformer/data\nMODEL_DIR=$HOME/transformer/model_$PARAM_SET\n\n# Download training/evaluation datasets\npython data_download.py --data_dir=$DATA_DIR\n\n# Train the model for 10 epochs, and evaluate after every epoch.\npython transformer_main.py --data_dir=$DATA_DIR --model_dir=$MODEL_DIR \\\n    --param_set=$PARAM_SET --bleu_source=test_data/newstest2014.en --bleu_ref=test_data/newstest2014.de\n\n# Run during training in a separate process to get continuous updates,\n# or after training is complete.\ntensorboard --logdir=$MODEL_DIR\n\n# Translate some text using the trained model\npython translate.py --data_dir=$DATA_DIR --model_dir=$MODEL_DIR \\\n    --param_set=$PARAM_SET --text=\"hello world\"\n\n# Compute model's BLEU score using the newstest2014 dataset.\npython translate.py --data_dir=$DATA_DIR --model_dir=$MODEL_DIR \\\n    --param_set=$PARAM_SET --file=test_data/newstest2014.en --file_out=translation.en\npython compute_bleu.py --translation=translation.en --reference=test_data/newstest2014.de\n```\n\n## Benchmarks\n### Training times\n\nCurrently, both big and base parameter sets run on a single GPU. The measurements below\nare reported from running the model on a P100 GPU.\n\nParam Set | batches/sec | batches per epoch | time per epoch\n--- | --- | --- | ---\nbase | 4.8 | 83244 | 4 hr\nbig | 1.1 | 41365 | 10 hr\n\n### Evaluation results\nBelow are the case-insensitive BLEU scores after 10 epochs.\n\nParam Set | Score\n--- | --- |\nbase | 27.7\nbig | 28.9\n\n\n## Detailed instructions\n\n\n0. ### Environment preparation\n\n   #### Add models repo to PYTHONPATH\n   Follow the instructions described in the [Running the models](https://github.com/tensorflow/models/tree/master/official#running-the-models) section to add the models folder to the python path.\n\n   #### Export variables (optional)\n\n   Export the following variables, or modify the values in each of the snippets below:\n   ```\n   PARAM_SET=big\n   DATA_DIR=$HOME/transformer/data\n   MODEL_DIR=$HOME/transformer/model_$PARAM_SET\n   ```\n\n1. ### Download and preprocess datasets\n\n   [data_download.py](data_download.py) downloads and preprocesses the training and evaluation WMT datasets. After the data is downloaded and extracted, the training data is used to generate a vocabulary of subtokens. The evaluation and training strings are tokenized, and the resulting data is sharded, shuffled, and saved as TFRecords.\n\n   1.75GB of compressed data will be downloaded. In total, the raw files (compressed, extracted, and combined files) take up 8.4GB of disk space. The resulting TFRecord and vocabulary files are 722MB. The script takes around 40 minutes to run, with the bulk of the time spent downloading and ~15 minutes spent on preprocessing.\n\n   Command to run:\n   ```\n   python data_download.py --data_dir=$DATA_DIR\n   ```\n\n   Arguments:\n   * `--data_dir`: Path where the preprocessed TFRecord data, and vocab file will be saved.\n   * Use the `--help` or `-h` flag to get a full list of possible arguments.\n\n2. ### Model training and evaluation\n\n   [transformer_main.py](transformer_main.py) creates a Transformer model, and trains it using Tensorflow Estimator.\n\n   Command to run:\n   ```\n   python transformer_main.py --data_dir=$DATA_DIR --model_dir=$MODEL_DIR --param_set=$PARAM_SET\n   ```\n\n   Arguments:\n   * `--data_dir`: This should be set to the same directory given to the `data_download`'s `data_dir` argument.\n   * `--model_dir`: Directory to save Transformer model training checkpoints.\n   * `--param_set`: Parameter set to use when creating and training the model. Options are `base` and `big` (default).\n   * Use the `--help` or `-h` flag to get a full list of possible arguments.\n\n   #### Customizing training schedule\n\n   By default, the model will train for 10 epochs, and evaluate after every epoch. The training schedule may be defined through the flags:\n   * Training with epochs (default):\n     * `--train_epochs`: The total number of complete passes to make through the dataset\n     * `--epochs_between_evals`: The number of epochs to train between evaluations.\n   * Training with steps:\n     * `--train_steps`: sets the total number of training steps to run.\n     * `--steps_between_evals`: Number of training steps to run between evaluations.\n\n   Only one of `train_epochs` or `train_steps` may be set. Since the default option is to evaluate the model after training for an epoch, it may take 4 or more hours between model evaluations. To get more frequent evaluations, use the flags `--train_steps=250000 --steps_between_evals=1000`.\n\n   Note: At the beginning of each training session, the training dataset is reloaded and shuffled. Stopping the training before completing an epoch may result in worse model quality, due to the chance that some examples may be seen more than others. Therefore, it is recommended to use epochs when the model quality is important.\n\n   #### Compute BLEU score during model evaluation\n\n   Use these flags to compute the BLEU when the model evaluates:\n   * `--bleu_source`: Path to file containing text to translate.\n   * `--bleu_ref`: Path to file containing the reference translation.\n   * `--stop_threshold`: Train until the BLEU score reaches this lower bound. This setting overrides the `--train_steps` and `--train_epochs` flags.\n\n   The test source and reference files located in the `test_data` directory are extracted from the preprocessed dataset from the [NMT Seq2Seq tutorial](https://google.github.io/seq2seq/nmt/#download-data).\n\n   When running `transformer_main.py`, use the flags: `--bleu_source=test_data/newstest2014.en --bleu_ref=test_data/newstest2014.de`\n\n   #### Tensorboard\n   Training and evaluation metrics (loss, accuracy, approximate BLEU score, etc.) are logged, and can be displayed in the browser using Tensorboard.\n   ```\n   tensorboard --logdir=$MODEL_DIR\n   ```\n   The values are displayed at [localhost:6006](localhost:6006).\n\n3. ### Translate using the model\n   [translate.py](translate.py) contains the script to use the trained model to translate input text or file. Each line in the file is translated separately.\n\n   Command to run:\n   ```\n   python translate.py --data_dir=$DATA_DIR --model_dir=$MODEL_DIR --param_set=PARAM_SET --text=\"hello world\"\n   ```\n\n   Arguments for initializing the Subtokenizer and trained model:\n   * `--data_dir`: Used to locate the vocabulary file to create a Subtokenizer, which encodes the input and decodes the model output.\n   * `--model_dir` and `--param_set`: These parameters are used to rebuild the trained model\n\n   Arguments for specifying what to translate:\n   * `--text`: Text to translate\n   * `--file`: Path to file containing text to translate\n   * `--file_out`: If `--file` is set, then this file will store the input file's translations.\n\n   To translate the newstest2014 data, run:\n   ```\n   python translate.py --data_dir=$DATA_DIR --model_dir=$MODEL_DIR \\\n       --param_set=PARAM_SET --file=test_data/newstest2014.en --file_out=translation.en\n   ```\n\n   Translating the file takes around 15 minutes on a GTX1080, or 5 minutes on a P100.\n\n4. ### Compute official BLEU score\n   Use [compute_bleu.py](compute_bleu.py) to compute the BLEU by comparing generated translations to the reference translation.\n\n   Command to run:\n   ```\n   python compute_bleu.py --translation=translation.en --reference=test_data/newstest2014.de\n   ```\n\n   Arguments:\n   * `--translation`: Path to file containing generated translations.\n   * `--reference`: Path to file containing reference translations.\n   * Use the `--help` or `-h` flag to get a full list of possible arguments.\n\n## Implementation overview\n\nA brief look at each component in the code:\n\n### Model Definition\nThe [model](model) subdirectory contains the implementation of the Transformer model. The following files define the Transformer model and its layers:\n* [transformer.py](model/transformer.py): Defines the transformer model and its encoder/decoder layer stacks.\n* [embedding_layer.py](model/embedding_layer.py): Contains the layer that calculates the embeddings. The embedding weights are also used to calculate the pre-softmax probabilities from the decoder output.\n* [attention_layer.py](model/attention_layer.py): Defines the multi-headed and self attention layers that are used in the encoder/decoder stacks.\n* [ffn_layer.py](model/ffn_layer.py): Defines the feedforward network that is used in the encoder/decoder stacks. The network is composed of 2 fully connected layers.\n\nOther files:\n* [beam_search.py](model/beam_search.py) contains the beam search implementation, which is used during model inference to find high scoring translations.\n* [model_params.py](model/model_params.py) contains the parameters used for the big and base models.\n* [model_utils.py](model/model_utils.py) defines some helper functions used in the model (calculating padding, bias, etc.).\n\n\n### Model Estimator\n[transformer_main.py](model/transformer.py) creates an `Estimator` to train and evaluate the model.\n\nHelper functions:\n* [utils/dataset.py](utils/dataset.py): contains functions for creating a `dataset` that is passed to the `Estimator`.\n* [utils/metrics.py](utils/metrics.py): defines metrics functions used by the `Estimator` to evaluate the\n\n### Other scripts\n\nAside from the main file to train the Transformer model, we provide other scripts for using the model or downloading the data:\n\n#### Data download and preprocessing\n\n[data_download.py](data_download.py) downloads and extracts data, then uses `Subtokenizer` to tokenize strings into arrays of int IDs. The int arrays are converted to `tf.Examples` and saved in the `tf.RecordDataset` format.\n\n The data is downloaded from the Workshop of Machine Transtion (WMT) [news translation task](http://www.statmt.org/wmt17/translation-task.html). The following datasets are used:\n\n * Europarl v7\n * Common Crawl corpus\n * News Commentary v12\n\n See the [download section](http://www.statmt.org/wmt17/translation-task.html#download) to explore the raw datasets. The parameters in this model are tuned to fit the English-German translation data, so the EN-DE texts are extracted from the downloaded compressed files.\n\nThe text is transformed into arrays of integer IDs using the `Subtokenizer` defined in [`utils/tokenizer.py`](util/tokenizer.py). During initialization of the `Subtokenizer`, the raw training data is used to generate a vocabulary list containing common subtokens.\n\nThe target vocabulary size of the WMT dataset is 32,768. The set of subtokens is found through binary search on the minimum number of times a subtoken appears in the data. The actual vocabulary size is 33,708, and is stored in a 324kB file.\n\n#### Translation\nTranslation is defined in [translate.py](translate.py). First, `Subtokenizer` tokenizes the input. The vocabulary file is the same used to tokenize the training/eval files. Next, beam search is used to find the combination of tokens that maximizes the probability outputted by the model decoder. The tokens are then converted back to strings with `Subtokenizer`.\n\n#### BLEU computation\n[compute_bleu.py](compute_bleu.py): Implementation from [https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/bleu_hook.py](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/bleu_hook.py).\n\n### Test dataset\nThe [newstest2014 files](test_data) are extracted from the [NMT Seq2Seq tutorial](https://google.github.io/seq2seq/nmt/#download-data). The raw text files are converted from the SGM format of the [WMT 2016](http://www.statmt.org/wmt16/translation-task.html) test sets.\n\n## Term definitions\n\n**Steps / Epochs**:\n* Step: unit for processing a single batch of data\n* Epoch: a complete run through the dataset\n\nExample: Consider a training a dataset with 100 examples that is divided into 20 batches with 5 examples per batch. A single training step trains the model on one batch. After 20 training steps, the model will have trained on every batch in the dataset, or one epoch.\n\n**Subtoken**: Words are referred to as tokens, and parts of words are referred to as 'subtokens'. For example, the word 'inclined' may be split into `['incline', 'd_']`. The '\\_' indicates the end of the token. The subtoken vocabulary list is guaranteed to contain the alphabet (including numbers and special characters), so all words can be tokenized."
  },
  {
    "path": "official/transformer/__init__.py",
    "content": ""
  },
  {
    "path": "official/transformer/compute_bleu.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Script to compute official BLEU score.\n\nSource:\nhttps://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/bleu_hook.py\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport re\nimport sys\nimport unicodedata\n\n# pylint: disable=g-bad-import-order\nimport six\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.transformer.utils import metrics\nfrom official.utils.flags import core as flags_core\n\n\nclass UnicodeRegex(object):\n  \"\"\"Ad-hoc hack to recognize all punctuation and symbols.\"\"\"\n\n  def __init__(self):\n    punctuation = self.property_chars(\"P\")\n    self.nondigit_punct_re = re.compile(r\"([^\\d])([\" + punctuation + r\"])\")\n    self.punct_nondigit_re = re.compile(r\"([\" + punctuation + r\"])([^\\d])\")\n    self.symbol_re = re.compile(\"([\" + self.property_chars(\"S\") + \"])\")\n\n  def property_chars(self, prefix):\n    return \"\".join(six.unichr(x) for x in range(sys.maxunicode)\n                   if unicodedata.category(six.unichr(x)).startswith(prefix))\n\n\nuregex = UnicodeRegex()\n\n\ndef bleu_tokenize(string):\n  r\"\"\"Tokenize a string following the official BLEU implementation.\n\n  See https://github.com/moses-smt/mosesdecoder/'\n           'blob/master/scripts/generic/mteval-v14.pl#L954-L983\n  In our case, the input string is expected to be just one line\n  and no HTML entities de-escaping is needed.\n  So we just tokenize on punctuation and symbols,\n  except when a punctuation is preceded and followed by a digit\n  (e.g. a comma/dot as a thousand/decimal separator).\n\n  Note that a numer (e.g. a year) followed by a dot at the end of sentence\n  is NOT tokenized,\n  i.e. the dot stays with the number because `s/(\\p{P})(\\P{N})/ $1 $2/g`\n  does not match this case (unless we add a space after each sentence).\n  However, this error is already in the original mteval-v14.pl\n  and we want to be consistent with it.\n\n  Args:\n    string: the input string\n\n  Returns:\n    a list of tokens\n  \"\"\"\n  string = uregex.nondigit_punct_re.sub(r\"\\1 \\2 \", string)\n  string = uregex.punct_nondigit_re.sub(r\" \\1 \\2\", string)\n  string = uregex.symbol_re.sub(r\" \\1 \", string)\n  return string.split()\n\n\ndef bleu_wrapper(ref_filename, hyp_filename, case_sensitive=False):\n  \"\"\"Compute BLEU for two files (reference and hypothesis translation).\"\"\"\n  ref_lines = tf.gfile.Open(ref_filename).read().strip().splitlines()\n  hyp_lines = tf.gfile.Open(hyp_filename).read().strip().splitlines()\n\n  if len(ref_lines) != len(hyp_lines):\n    raise ValueError(\"Reference and translation files have different number of \"\n                     \"lines.\")\n  if not case_sensitive:\n    ref_lines = [x.lower() for x in ref_lines]\n    hyp_lines = [x.lower() for x in hyp_lines]\n  ref_tokens = [bleu_tokenize(x) for x in ref_lines]\n  hyp_tokens = [bleu_tokenize(x) for x in hyp_lines]\n  return metrics.compute_bleu(ref_tokens, hyp_tokens) * 100\n\n\ndef main(unused_argv):\n  if FLAGS.bleu_variant in (\"both\", \"uncased\"):\n    score = bleu_wrapper(FLAGS.reference, FLAGS.translation, False)\n    tf.logging.info(\"Case-insensitive results: %f\" % score)\n\n  if FLAGS.bleu_variant in (\"both\", \"cased\"):\n    score = bleu_wrapper(FLAGS.reference, FLAGS.translation, True)\n    tf.logging.info(\"Case-sensitive results: %f\" % score)\n\n\ndef define_compute_bleu_flags():\n  \"\"\"Add flags for computing BLEU score.\"\"\"\n  flags.DEFINE_string(\n      name=\"translation\", default=None,\n      help=flags_core.help_wrap(\"File containing translated text.\"))\n  flags.mark_flag_as_required(\"translation\")\n\n  flags.DEFINE_string(\n      name=\"reference\", default=None,\n      help=flags_core.help_wrap(\"File containing reference translation.\"))\n  flags.mark_flag_as_required(\"reference\")\n\n  flags.DEFINE_enum(\n      name=\"bleu_variant\", short_name=\"bv\", default=\"both\",\n      enum_values=[\"both\", \"uncased\", \"cased\"], case_sensitive=False,\n      help=flags_core.help_wrap(\n          \"Specify one or more BLEU variants to calculate. Variants: \\\"cased\\\"\"\n          \", \\\"uncased\\\", or \\\"both\\\".\"))\n\n\nif __name__ == \"__main__\":\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_compute_bleu_flags()\n  FLAGS = flags.FLAGS\n  absl_app.run(main)\n"
  },
  {
    "path": "official/transformer/compute_bleu_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Test functions in compute_blue.py.\"\"\"\n\nimport tempfile\nimport unittest\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer import compute_bleu\n\n\nclass ComputeBleuTest(unittest.TestCase):\n\n  def _create_temp_file(self, text):\n    temp_file = tempfile.NamedTemporaryFile(delete=False)\n    with tf.gfile.Open(temp_file.name, 'w') as w:\n      w.write(text)\n    return temp_file.name\n\n  def test_bleu_same(self):\n    ref = self._create_temp_file(\"test 1 two 3\\nmore tests!\")\n    hyp = self._create_temp_file(\"test 1 two 3\\nmore tests!\")\n\n    uncased_score = compute_bleu.bleu_wrapper(ref, hyp, False)\n    cased_score = compute_bleu.bleu_wrapper(ref, hyp, True)\n    self.assertEqual(100, uncased_score)\n    self.assertEqual(100, cased_score)\n\n  def test_bleu_same_different_case(self):\n    ref = self._create_temp_file(\"Test 1 two 3\\nmore tests!\")\n    hyp = self._create_temp_file(\"test 1 two 3\\nMore tests!\")\n    uncased_score = compute_bleu.bleu_wrapper(ref, hyp, False)\n    cased_score = compute_bleu.bleu_wrapper(ref, hyp, True)\n    self.assertEqual(100, uncased_score)\n    self.assertLess(cased_score, 100)\n\n  def test_bleu_different(self):\n    ref = self._create_temp_file(\"Testing\\nmore tests!\")\n    hyp = self._create_temp_file(\"Dog\\nCat\")\n    uncased_score = compute_bleu.bleu_wrapper(ref, hyp, False)\n    cased_score = compute_bleu.bleu_wrapper(ref, hyp, True)\n    self.assertLess(uncased_score, 100)\n    self.assertLess(cased_score, 100)\n\n  def test_bleu_tokenize(self):\n    s = \"Test0, 1 two, 3\"\n    tokenized = compute_bleu.bleu_tokenize(s)\n    self.assertEqual([\"Test0\", \",\", \"1\", \"two\", \",\", \"3\"], tokenized)\n\n\nif __name__ == \"__main__\":\n  unittest.main()\n"
  },
  {
    "path": "official/transformer/data_download.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Download and preprocess WMT17 ende training and evaluation datasets.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport random\nimport tarfile\n\n# pylint: disable=g-bad-import-order\nimport six\nfrom six.moves import urllib\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.transformer.utils import tokenizer\nfrom official.utils.flags import core as flags_core\n\n# Data sources for training/evaluating the transformer translation model.\n# If any of the training sources are changed, then either:\n#   1) use the flag `--search` to find the best min count or\n#   2) update the _TRAIN_DATA_MIN_COUNT constant.\n# min_count is the minimum number of times a token must appear in the data\n# before it is added to the vocabulary. \"Best min count\" refers to the value\n# that generates a vocabulary set that is closest in size to _TARGET_VOCAB_SIZE.\n_TRAIN_DATA_SOURCES = [\n    {\n        \"url\": \"http://data.statmt.org/wmt17/translation-task/\"\n               \"training-parallel-nc-v12.tgz\",\n        \"input\": \"news-commentary-v12.de-en.en\",\n        \"target\": \"news-commentary-v12.de-en.de\",\n    },\n    {\n        \"url\": \"http://www.statmt.org/wmt13/training-parallel-commoncrawl.tgz\",\n        \"input\": \"commoncrawl.de-en.en\",\n        \"target\": \"commoncrawl.de-en.de\",\n    },\n    {\n        \"url\": \"http://www.statmt.org/wmt13/training-parallel-europarl-v7.tgz\",\n        \"input\": \"europarl-v7.de-en.en\",\n        \"target\": \"europarl-v7.de-en.de\",\n    },\n]\n# Use pre-defined minimum count to generate subtoken vocabulary.\n_TRAIN_DATA_MIN_COUNT = 6\n\n_EVAL_DATA_SOURCES = [\n    {\n        \"url\": \"http://data.statmt.org/wmt17/translation-task/dev.tgz\",\n        \"input\": \"newstest2013.en\",\n        \"target\": \"newstest2013.de\",\n    }\n]\n\n# Vocabulary constants\n_TARGET_VOCAB_SIZE = 32768  # Number of subtokens in the vocabulary list.\n_TARGET_THRESHOLD = 327  # Accept vocabulary if size is within this threshold\nVOCAB_FILE = \"vocab.ende.%d\" % _TARGET_VOCAB_SIZE\n\n# Strings to inclue in the generated files.\n_PREFIX = \"wmt32k\"\n_TRAIN_TAG = \"train\"\n_EVAL_TAG = \"dev\"  # Following WMT and Tensor2Tensor conventions, in which the\n                   # evaluation datasets are tagged as \"dev\" for development.\n\n# Number of files to split train and evaluation data\n_TRAIN_SHARDS = 100\n_EVAL_SHARDS = 1\n\n\ndef find_file(path, filename, max_depth=5):\n  \"\"\"Returns full filepath if the file is in path or a subdirectory.\"\"\"\n  for root, dirs, files in os.walk(path):\n    if filename in files:\n      return os.path.join(root, filename)\n\n    # Don't search past max_depth\n    depth = root[len(path) + 1:].count(os.sep)\n    if depth > max_depth:\n      del dirs[:]  # Clear dirs\n  return None\n\n\n###############################################################################\n# Download and extraction functions\n###############################################################################\ndef get_raw_files(raw_dir, data_source):\n  \"\"\"Return raw files from source. Downloads/extracts if needed.\n\n  Args:\n    raw_dir: string directory to store raw files\n    data_source: dictionary with\n      {\"url\": url of compressed dataset containing input and target files\n       \"input\": file with data in input language\n       \"target\": file with data in target language}\n\n  Returns:\n    dictionary with\n      {\"inputs\": list of files containing data in input language\n       \"targets\": list of files containing corresponding data in target language\n      }\n  \"\"\"\n  raw_files = {\n      \"inputs\": [],\n      \"targets\": [],\n  }  # keys\n  for d in data_source:\n    input_file, target_file = download_and_extract(\n        raw_dir, d[\"url\"], d[\"input\"], d[\"target\"])\n    raw_files[\"inputs\"].append(input_file)\n    raw_files[\"targets\"].append(target_file)\n  return raw_files\n\n\ndef download_report_hook(count, block_size, total_size):\n  \"\"\"Report hook for download progress.\n\n  Args:\n    count: current block number\n    block_size: block size\n    total_size: total size\n  \"\"\"\n  percent = int(count * block_size * 100 / total_size)\n  print(\"\\r%d%%\" % percent + \" completed\", end=\"\\r\")\n\n\ndef download_from_url(path, url):\n  \"\"\"Download content from a url.\n\n  Args:\n    path: string directory where file will be downloaded\n    url: string url\n\n  Returns:\n    Full path to downloaded file\n  \"\"\"\n  filename = url.split(\"/\")[-1]\n  found_file = find_file(path, filename, max_depth=0)\n  if found_file is None:\n    filename = os.path.join(path, filename)\n    tf.logging.info(\"Downloading from %s to %s.\" % (url, filename))\n    inprogress_filepath = filename + \".incomplete\"\n    inprogress_filepath, _ = urllib.request.urlretrieve(\n        url, inprogress_filepath, reporthook=download_report_hook)\n    # Print newline to clear the carriage return from the download progress.\n    print()\n    tf.gfile.Rename(inprogress_filepath, filename)\n    return filename\n  else:\n    tf.logging.info(\"Already downloaded: %s (at %s).\" % (url, found_file))\n    return found_file\n\n\ndef download_and_extract(path, url, input_filename, target_filename):\n  \"\"\"Extract files from downloaded compressed archive file.\n\n  Args:\n    path: string directory where the files will be downloaded\n    url: url containing the compressed input and target files\n    input_filename: name of file containing data in source language\n    target_filename: name of file containing data in target language\n\n  Returns:\n    Full paths to extracted input and target files.\n\n  Raises:\n    OSError: if the the download/extraction fails.\n  \"\"\"\n  # Check if extracted files already exist in path\n  input_file = find_file(path, input_filename)\n  target_file = find_file(path, target_filename)\n  if input_file and target_file:\n    tf.logging.info(\"Already downloaded and extracted %s.\" % url)\n    return input_file, target_file\n\n  # Download archive file if it doesn't already exist.\n  compressed_file = download_from_url(path, url)\n\n  # Extract compressed files\n  tf.logging.info(\"Extracting %s.\" % compressed_file)\n  with tarfile.open(compressed_file, \"r:gz\") as corpus_tar:\n    corpus_tar.extractall(path)\n\n  # Return filepaths of the requested files.\n  input_file = find_file(path, input_filename)\n  target_file = find_file(path, target_filename)\n\n  if input_file and target_file:\n    return input_file, target_file\n\n  raise OSError(\"Download/extraction failed for url %s to path %s\" %\n                (url, path))\n\n\ndef txt_line_iterator(path):\n  \"\"\"Iterate through lines of file.\"\"\"\n  with tf.gfile.Open(path) as f:\n    for line in f:\n      yield line.strip()\n\n\ndef compile_files(raw_dir, raw_files, tag):\n  \"\"\"Compile raw files into a single file for each language.\n\n  Args:\n    raw_dir: Directory containing downloaded raw files.\n    raw_files: Dict containing filenames of input and target data.\n      {\"inputs\": list of files containing data in input language\n       \"targets\": list of files containing corresponding data in target language\n      }\n    tag: String to append to the compiled filename.\n\n  Returns:\n    Full path of compiled input and target files.\n  \"\"\"\n  tf.logging.info(\"Compiling files with tag %s.\" % tag)\n  filename = \"%s-%s\" % (_PREFIX, tag)\n  input_compiled_file = os.path.join(raw_dir, filename + \".lang1\")\n  target_compiled_file = os.path.join(raw_dir, filename + \".lang2\")\n\n  with tf.gfile.Open(input_compiled_file, mode=\"w\") as input_writer:\n    with tf.gfile.Open(target_compiled_file, mode=\"w\") as target_writer:\n      for i in range(len(raw_files[\"inputs\"])):\n        input_file = raw_files[\"inputs\"][i]\n        target_file = raw_files[\"targets\"][i]\n\n        tf.logging.info(\"Reading files %s and %s.\" % (input_file, target_file))\n        write_file(input_writer, input_file)\n        write_file(target_writer, target_file)\n  return input_compiled_file, target_compiled_file\n\n\ndef write_file(writer, filename):\n  \"\"\"Write all of lines from file using the writer.\"\"\"\n  for line in txt_line_iterator(filename):\n    writer.write(line)\n    writer.write(\"\\n\")\n\n\n###############################################################################\n# Data preprocessing\n###############################################################################\ndef encode_and_save_files(\n    subtokenizer, data_dir, raw_files, tag, total_shards):\n  \"\"\"Save data from files as encoded Examples in TFrecord format.\n\n  Args:\n    subtokenizer: Subtokenizer object that will be used to encode the strings.\n    data_dir: The directory in which to write the examples\n    raw_files: A tuple of (input, target) data files. Each line in the input and\n      the corresponding line in target file will be saved in a tf.Example.\n    tag: String that will be added onto the file names.\n    total_shards: Number of files to divide the data into.\n\n  Returns:\n    List of all files produced.\n  \"\"\"\n  # Create a file for each shard.\n  filepaths = [shard_filename(data_dir, tag, n + 1, total_shards)\n               for n in range(total_shards)]\n\n  if all_exist(filepaths):\n    tf.logging.info(\"Files with tag %s already exist.\" % tag)\n    return filepaths\n\n  tf.logging.info(\"Saving files with tag %s.\" % tag)\n  input_file = raw_files[0]\n  target_file = raw_files[1]\n\n  # Write examples to each shard in round robin order.\n  tmp_filepaths = [fname + \".incomplete\" for fname in filepaths]\n  writers = [tf.python_io.TFRecordWriter(fname) for fname in tmp_filepaths]\n  counter, shard = 0, 0\n  for counter, (input_line, target_line) in enumerate(zip(\n      txt_line_iterator(input_file), txt_line_iterator(target_file))):\n    if counter > 0 and counter % 100000 == 0:\n      tf.logging.info(\"\\tSaving case %d.\" % counter)\n    example = dict_to_example(\n        {\"inputs\": subtokenizer.encode(input_line, add_eos=True),\n         \"targets\": subtokenizer.encode(target_line, add_eos=True)})\n    writers[shard].write(example.SerializeToString())\n    shard = (shard + 1) % total_shards\n  for writer in writers:\n    writer.close()\n\n  for tmp_name, final_name in zip(tmp_filepaths, filepaths):\n    tf.gfile.Rename(tmp_name, final_name)\n\n  tf.logging.info(\"Saved %d Examples\", counter + 1)\n  return filepaths\n\n\ndef shard_filename(path, tag, shard_num, total_shards):\n  \"\"\"Create filename for data shard.\"\"\"\n  return os.path.join(\n      path, \"%s-%s-%.5d-of-%.5d\" % (_PREFIX, tag, shard_num, total_shards))\n\n\ndef shuffle_records(fname):\n  \"\"\"Shuffle records in a single file.\"\"\"\n  tf.logging.info(\"Shuffling records in file %s\" % fname)\n\n  # Rename file prior to shuffling\n  tmp_fname = fname + \".unshuffled\"\n  tf.gfile.Rename(fname, tmp_fname)\n\n  reader = tf.python_io.tf_record_iterator(tmp_fname)\n  records = []\n  for record in reader:\n    records.append(record)\n    if len(records) % 100000 == 0:\n      tf.logging.info(\"\\tRead: %d\", len(records))\n\n  random.shuffle(records)\n\n  # Write shuffled records to original file name\n  with tf.python_io.TFRecordWriter(fname) as w:\n    for count, record in enumerate(records):\n      w.write(record)\n      if count > 0 and count % 100000 == 0:\n        tf.logging.info(\"\\tWriting record: %d\" % count)\n\n  tf.gfile.Remove(tmp_fname)\n\n\ndef dict_to_example(dictionary):\n  \"\"\"Converts a dictionary of string->int to a tf.Example.\"\"\"\n  features = {}\n  for k, v in six.iteritems(dictionary):\n    features[k] = tf.train.Feature(int64_list=tf.train.Int64List(value=v))\n  return tf.train.Example(features=tf.train.Features(feature=features))\n\n\ndef all_exist(filepaths):\n  \"\"\"Returns true if all files in the list exist.\"\"\"\n  for fname in filepaths:\n    if not tf.gfile.Exists(fname):\n      return False\n  return True\n\n\ndef make_dir(path):\n  if not tf.gfile.Exists(path):\n    tf.logging.info(\"Creating directory %s\" % path)\n    tf.gfile.MakeDirs(path)\n\n\ndef main(unused_argv):\n  \"\"\"Obtain training and evaluation data for the Transformer model.\"\"\"\n  make_dir(FLAGS.raw_dir)\n  make_dir(FLAGS.data_dir)\n\n  # Get paths of download/extracted training and evaluation files.\n  tf.logging.info(\"Step 1/4: Downloading data from source\")\n  train_files = get_raw_files(FLAGS.raw_dir, _TRAIN_DATA_SOURCES)\n  eval_files = get_raw_files(FLAGS.raw_dir, _EVAL_DATA_SOURCES)\n\n  # Create subtokenizer based on the training files.\n  tf.logging.info(\"Step 2/4: Creating subtokenizer and building vocabulary\")\n  train_files_flat = train_files[\"inputs\"] + train_files[\"targets\"]\n  vocab_file = os.path.join(FLAGS.data_dir, VOCAB_FILE)\n  subtokenizer = tokenizer.Subtokenizer.init_from_files(\n      vocab_file, train_files_flat, _TARGET_VOCAB_SIZE, _TARGET_THRESHOLD,\n      min_count=None if FLAGS.search else _TRAIN_DATA_MIN_COUNT)\n\n  tf.logging.info(\"Step 3/4: Compiling training and evaluation data\")\n  compiled_train_files = compile_files(FLAGS.raw_dir, train_files, _TRAIN_TAG)\n  compiled_eval_files = compile_files(FLAGS.raw_dir, eval_files, _EVAL_TAG)\n\n  # Tokenize and save data as Examples in the TFRecord format.\n  tf.logging.info(\"Step 4/4: Preprocessing and saving data\")\n  train_tfrecord_files = encode_and_save_files(\n      subtokenizer, FLAGS.data_dir, compiled_train_files, _TRAIN_TAG,\n      _TRAIN_SHARDS)\n  encode_and_save_files(\n      subtokenizer, FLAGS.data_dir, compiled_eval_files, _EVAL_TAG,\n      _EVAL_SHARDS)\n\n  for fname in train_tfrecord_files:\n    shuffle_records(fname)\n\n\ndef define_data_download_flags():\n  \"\"\"Add flags specifying data download arguments.\"\"\"\n  flags.DEFINE_string(\n      name=\"data_dir\", short_name=\"dd\", default=\"/tmp/translate_ende\",\n      help=flags_core.help_wrap(\n          \"Directory for where the translate_ende_wmt32k dataset is saved.\"))\n  flags.DEFINE_string(\n      name=\"raw_dir\", short_name=\"rd\", default=\"/tmp/translate_ende_raw\",\n      help=flags_core.help_wrap(\n          \"Path where the raw data will be downloaded and extracted.\"))\n  flags.DEFINE_bool(\n      name=\"search\", default=False,\n      help=flags_core.help_wrap(\n          \"If set, use binary search to find the vocabulary set with size\"\n          \"closest to the target size (%d).\" % _TARGET_VOCAB_SIZE))\n\n\nif __name__ == \"__main__\":\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_data_download_flags()\n  FLAGS = flags.FLAGS\n  absl_app.run(main)\n"
  },
  {
    "path": "official/transformer/model/__init__.py",
    "content": ""
  },
  {
    "path": "official/transformer/model/attention_layer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Implementation of multiheaded attention and self-attention layers.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\nclass Attention(tf.layers.Layer):\n  \"\"\"Multi-headed attention layer.\"\"\"\n\n  def __init__(self, hidden_size, num_heads, attention_dropout, train):\n    if hidden_size % num_heads != 0:\n      raise ValueError(\"Hidden size must be evenly divisible by the number of \"\n                       \"heads.\")\n\n    super(Attention, self).__init__()\n    self.hidden_size = hidden_size\n    self.num_heads = num_heads\n    self.attention_dropout = attention_dropout\n    self.train = train\n\n    # Layers for linearly projecting the queries, keys, and values.\n    self.q_dense_layer = tf.layers.Dense(hidden_size, use_bias=False, name=\"q\")\n    self.k_dense_layer = tf.layers.Dense(hidden_size, use_bias=False, name=\"k\")\n    self.v_dense_layer = tf.layers.Dense(hidden_size, use_bias=False, name=\"v\")\n\n    self.output_dense_layer = tf.layers.Dense(hidden_size, use_bias=False,\n                                              name=\"output_transform\")\n\n  def split_heads(self, x):\n    \"\"\"Split x into different heads, and transpose the resulting value.\n\n    The tensor is transposed to insure the inner dimensions hold the correct\n    values during the matrix multiplication.\n\n    Args:\n      x: A tensor with shape [batch_size, length, hidden_size]\n\n    Returns:\n      A tensor with shape [batch_size, num_heads, length, hidden_size/num_heads]\n    \"\"\"\n    with tf.name_scope(\"split_heads\"):\n      batch_size = tf.shape(x)[0]\n      length = tf.shape(x)[1]\n\n      # Calculate depth of last dimension after it has been split.\n      depth = (self.hidden_size // self.num_heads)\n\n      # Split the last dimension\n      x = tf.reshape(x, [batch_size, length, self.num_heads, depth])\n\n      # Transpose the result\n      return tf.transpose(x, [0, 2, 1, 3])\n\n  def combine_heads(self, x):\n    \"\"\"Combine tensor that has been split.\n\n    Args:\n      x: A tensor [batch_size, num_heads, length, hidden_size/num_heads]\n\n    Returns:\n      A tensor with shape [batch_size, length, hidden_size]\n    \"\"\"\n    with tf.name_scope(\"combine_heads\"):\n      batch_size = tf.shape(x)[0]\n      length = tf.shape(x)[2]\n      x = tf.transpose(x, [0, 2, 1, 3])  # --> [batch, length, num_heads, depth]\n      return tf.reshape(x, [batch_size, length, self.hidden_size])\n\n  def call(self, x, y, bias, cache=None):\n    \"\"\"Apply attention mechanism to x and y.\n\n    Args:\n      x: a tensor with shape [batch_size, length_x, hidden_size]\n      y: a tensor with shape [batch_size, length_y, hidden_size]\n      bias: attention bias that will be added to the result of the dot product.\n      cache: (Used during prediction) dictionary with tensors containing results\n        of previous attentions. The dictionary must have the items:\n            {\"k\": tensor with shape [batch_size, i, key_channels],\n             \"v\": tensor with shape [batch_size, i, value_channels]}\n        where i is the current decoded length.\n\n    Returns:\n      Attention layer output with shape [batch_size, length_x, hidden_size]\n    \"\"\"\n    # Linearly project the query (q), key (k) and value (v) using different\n    # learned projections. This is in preparation of splitting them into\n    # multiple heads. Multi-head attention uses multiple queries, keys, and\n    # values rather than regular attention (which uses a single q, k, v).\n    q = self.q_dense_layer(x)\n    k = self.k_dense_layer(y)\n    v = self.v_dense_layer(y)\n\n    if cache is not None:\n      # Combine cached keys and values with new keys and values.\n      k = tf.concat([cache[\"k\"], k], axis=1)\n      v = tf.concat([cache[\"v\"], v], axis=1)\n\n      # Update cache\n      cache[\"k\"] = k\n      cache[\"v\"] = v\n\n    # Split q, k, v into heads.\n    q = self.split_heads(q)\n    k = self.split_heads(k)\n    v = self.split_heads(v)\n\n    # Scale q to prevent the dot product between q and k from growing too large.\n    depth = (self.hidden_size // self.num_heads)\n    q *= depth ** -0.5\n\n    # Calculate dot product attention\n    logits = tf.matmul(q, k, transpose_b=True)\n    logits += bias\n    weights = tf.nn.softmax(logits, name=\"attention_weights\")\n    if self.train:\n      weights = tf.nn.dropout(weights, 1.0 - self.attention_dropout)\n    attention_output = tf.matmul(weights, v)\n\n    # Recombine heads --> [batch_size, length, hidden_size]\n    attention_output = self.combine_heads(attention_output)\n\n    # Run the combined outputs through another linear projection layer.\n    attention_output = self.output_dense_layer(attention_output)\n    return attention_output\n\n\nclass SelfAttention(Attention):\n  \"\"\"Multiheaded self-attention layer.\"\"\"\n\n  def call(self, x, bias, cache=None):\n    return super(SelfAttention, self).call(x, x, bias, cache)\n"
  },
  {
    "path": "official/transformer/model/beam_search.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Beam search to find the translated sequence with the highest probability.\n\nSource implementation from Tensor2Tensor:\nhttps://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/beam_search.py\n\"\"\"\n\nimport tensorflow as tf\nfrom tensorflow.python.util import nest\n\n# Default value for INF\nINF = 1. * 1e7\n\n\nclass _StateKeys(object):\n  \"\"\"Keys to dictionary storing the state of the beam search loop.\"\"\"\n\n  # Variable storing the loop index.\n  CUR_INDEX = \"CUR_INDEX\"\n\n  # Top sequences that are alive for each batch item. Alive sequences are ones\n  # that have not generated an EOS token. Sequences that reach EOS are marked as\n  # finished and moved to the FINISHED_SEQ tensor.\n  # Has shape [batch_size, beam_size, CUR_INDEX + 1]\n  ALIVE_SEQ = \"ALIVE_SEQ\"\n  # Log probabilities of each alive sequence. Shape [batch_size, beam_size]\n  ALIVE_LOG_PROBS = \"ALIVE_LOG_PROBS\"\n  # Dictionary of cached values for each alive sequence. The cache stores\n  # the encoder output, attention bias, and the decoder attention output from\n  # the previous iteration.\n  ALIVE_CACHE = \"ALIVE_CACHE\"\n\n  # Top finished sequences for each batch item.\n  # Has shape [batch_size, beam_size, CUR_INDEX + 1]. Sequences that are\n  # shorter than CUR_INDEX + 1 are padded with 0s.\n  FINISHED_SEQ = \"FINISHED_SEQ\"\n  # Scores for each finished sequence. Score = log probability / length norm\n  # Shape [batch_size, beam_size]\n  FINISHED_SCORES = \"FINISHED_SCORES\"\n  # Flags indicating which sequences in the finished sequences are finished.\n  # At the beginning, all of the sequences in FINISHED_SEQ are filler values.\n  # True -> finished sequence, False -> filler. Shape [batch_size, beam_size]\n  FINISHED_FLAGS = \"FINISHED_FLAGS\"\n\n\nclass SequenceBeamSearch(object):\n  \"\"\"Implementation of beam search loop.\"\"\"\n\n  def __init__(self, symbols_to_logits_fn, vocab_size, batch_size,\n               beam_size, alpha, max_decode_length, eos_id):\n    self.symbols_to_logits_fn = symbols_to_logits_fn\n    self.vocab_size = vocab_size\n    self.batch_size = batch_size\n    self.beam_size = beam_size\n    self.alpha = alpha\n    self.max_decode_length = max_decode_length\n    self.eos_id = eos_id\n\n  def search(self, initial_ids, initial_cache):\n    \"\"\"Beam search for sequences with highest scores.\"\"\"\n    state, state_shapes = self._create_initial_state(initial_ids, initial_cache)\n\n    finished_state = tf.while_loop(\n        self._continue_search, self._search_step, loop_vars=[state],\n        shape_invariants=[state_shapes], parallel_iterations=1, back_prop=False)\n    finished_state = finished_state[0]\n\n    alive_seq = finished_state[_StateKeys.ALIVE_SEQ]\n    alive_log_probs = finished_state[_StateKeys.ALIVE_LOG_PROBS]\n    finished_seq = finished_state[_StateKeys.FINISHED_SEQ]\n    finished_scores = finished_state[_StateKeys.FINISHED_SCORES]\n    finished_flags = finished_state[_StateKeys.FINISHED_FLAGS]\n\n    # Account for corner case where there are no finished sequences for a\n    # particular batch item. In that case, return alive sequences for that batch\n    # item.\n    finished_seq = tf.where(\n        tf.reduce_any(finished_flags, 1), finished_seq, alive_seq)\n    finished_scores = tf.where(\n        tf.reduce_any(finished_flags, 1), finished_scores, alive_log_probs)\n    return finished_seq, finished_scores\n\n  def _create_initial_state(self, initial_ids, initial_cache):\n    \"\"\"Return initial state dictionary and its shape invariants.\n\n    Args:\n      initial_ids: initial ids to pass into the symbols_to_logits_fn.\n        int tensor with shape [batch_size, 1]\n      initial_cache: dictionary storing values to be passed into the\n        symbols_to_logits_fn.\n\n    Returns:\n        state and shape invariant dictionaries with keys from _StateKeys\n    \"\"\"\n    # Current loop index (starts at 0)\n    cur_index = tf.constant(0)\n\n    # Create alive sequence with shape [batch_size, beam_size, 1]\n    alive_seq = _expand_to_beam_size(initial_ids, self.beam_size)\n    alive_seq = tf.expand_dims(alive_seq, axis=2)\n\n    # Create tensor for storing initial log probabilities.\n    # Assume initial_ids are prob 1.0\n    initial_log_probs = tf.constant(\n        [[0.] + [-float(\"inf\")] * (self.beam_size - 1)])\n    alive_log_probs = tf.tile(initial_log_probs, [self.batch_size, 1])\n\n    # Expand all values stored in the dictionary to the beam size, so that each\n    # beam has a separate cache.\n    alive_cache = nest.map_structure(\n        lambda t: _expand_to_beam_size(t, self.beam_size), initial_cache)\n\n    # Initialize tensor storing finished sequences with filler values.\n    finished_seq = tf.zeros(tf.shape(alive_seq), tf.int32)\n\n    # Set scores of the initial finished seqs to negative infinity.\n    finished_scores = tf.ones([self.batch_size, self.beam_size]) * -INF\n\n    # Initialize finished flags with all False values.\n    finished_flags = tf.zeros([self.batch_size, self.beam_size], tf.bool)\n\n    # Create state dictionary\n    state = {\n        _StateKeys.CUR_INDEX: cur_index,\n        _StateKeys.ALIVE_SEQ: alive_seq,\n        _StateKeys.ALIVE_LOG_PROBS: alive_log_probs,\n        _StateKeys.ALIVE_CACHE: alive_cache,\n        _StateKeys.FINISHED_SEQ: finished_seq,\n        _StateKeys.FINISHED_SCORES: finished_scores,\n        _StateKeys.FINISHED_FLAGS: finished_flags\n    }\n\n    # Create state invariants for each value in the state dictionary. Each\n    # dimension must be a constant or None. A None dimension means either:\n    #   1) the dimension's value is a tensor that remains the same but may\n    #      depend on the input sequence to the model (e.g. batch size).\n    #   2) the dimension may have different values on different iterations.\n    state_shape_invariants = {\n        _StateKeys.CUR_INDEX: tf.TensorShape([]),\n        _StateKeys.ALIVE_SEQ: tf.TensorShape([None, self.beam_size, None]),\n        _StateKeys.ALIVE_LOG_PROBS: tf.TensorShape([None, self.beam_size]),\n        _StateKeys.ALIVE_CACHE: nest.map_structure(\n            _get_shape_keep_last_dim, alive_cache),\n        _StateKeys.FINISHED_SEQ: tf.TensorShape([None, self.beam_size, None]),\n        _StateKeys.FINISHED_SCORES: tf.TensorShape([None, self.beam_size]),\n        _StateKeys.FINISHED_FLAGS: tf.TensorShape([None, self.beam_size])\n    }\n\n    return state, state_shape_invariants\n\n  def _continue_search(self, state):\n    \"\"\"Return whether to continue the search loop.\n\n    The loops should terminate when\n      1) when decode length has been reached, or\n      2) when the worst score in the finished sequences is better than the best\n         score in the alive sequences (i.e. the finished sequences are provably\n         unchanging)\n\n    Args:\n      state: A dictionary with the current loop state.\n\n    Returns:\n      Bool tensor with value True if loop should continue, False if loop should\n      terminate.\n    \"\"\"\n    i = state[_StateKeys.CUR_INDEX]\n    alive_log_probs = state[_StateKeys.ALIVE_LOG_PROBS]\n    finished_scores = state[_StateKeys.FINISHED_SCORES]\n    finished_flags = state[_StateKeys.FINISHED_FLAGS]\n\n    not_at_max_decode_length = tf.less(i, self.max_decode_length)\n\n    # Calculate largest length penalty (the larger penalty, the better score).\n    max_length_norm = _length_normalization(self.alpha, self.max_decode_length)\n    # Get the best possible scores from alive sequences.\n    best_alive_scores = alive_log_probs[:, 0] / max_length_norm\n\n    # Compute worst score in finished sequences for each batch element\n    finished_scores *= tf.to_float(finished_flags)  # set filler scores to zero\n    lowest_finished_scores = tf.reduce_min(finished_scores, axis=1)\n\n    # If there are no finished sequences in a batch element, then set the lowest\n    # finished score to -INF for that element.\n    finished_batches = tf.reduce_any(finished_flags, 1)\n    lowest_finished_scores += (1. - tf.to_float(finished_batches)) * -INF\n\n    worst_finished_score_better_than_best_alive_score = tf.reduce_all(\n        tf.greater(lowest_finished_scores, best_alive_scores)\n    )\n\n    return tf.logical_and(\n        not_at_max_decode_length,\n        tf.logical_not(worst_finished_score_better_than_best_alive_score)\n    )\n\n  def _search_step(self, state):\n    \"\"\"Beam search loop body.\n\n    Grow alive sequences by a single ID. Sequences that have reached the EOS\n    token are marked as finished. The alive and finished sequences with the\n    highest log probabilities and scores are returned.\n\n    A sequence's finished score is calculating by dividing the log probability\n    by the length normalization factor. Without length normalization, the\n    search is more likely to return shorter sequences.\n\n    Args:\n      state: A dictionary with the current loop state.\n\n    Returns:\n      new state dictionary.\n    \"\"\"\n    # Grow alive sequences by one token.\n    new_seq, new_log_probs, new_cache = self._grow_alive_seq(state)\n    # Collect top beam_size alive sequences\n    alive_state = self._get_new_alive_state(new_seq, new_log_probs, new_cache)\n\n    # Combine newly finished sequences with existing finished sequences, and\n    # collect the top k scoring sequences.\n    finished_state = self._get_new_finished_state(state, new_seq, new_log_probs)\n\n    # Increment loop index and create new state dictionary\n    new_state = {_StateKeys.CUR_INDEX: state[_StateKeys.CUR_INDEX] + 1}\n    new_state.update(alive_state)\n    new_state.update(finished_state)\n    return [new_state]\n\n  def _grow_alive_seq(self, state):\n    \"\"\"Grow alive sequences by one token, and collect top 2*beam_size sequences.\n\n    2*beam_size sequences are collected because some sequences may have reached\n    the EOS token. 2*beam_size ensures that at least beam_size sequences are\n    still alive.\n\n    Args:\n      state: A dictionary with the current loop state.\n    Returns:\n      Tuple of\n      (Top 2*beam_size sequences [batch_size, 2 * beam_size, cur_index + 1],\n       Scores of returned sequences [batch_size, 2 * beam_size],\n       New alive cache, for each of the 2 * beam_size sequences)\n    \"\"\"\n    i = state[_StateKeys.CUR_INDEX]\n    alive_seq = state[_StateKeys.ALIVE_SEQ]\n    alive_log_probs = state[_StateKeys.ALIVE_LOG_PROBS]\n    alive_cache = state[_StateKeys.ALIVE_CACHE]\n\n    beams_to_keep = 2 * self.beam_size\n\n    # Get logits for the next candidate IDs for the alive sequences. Get the new\n    # cache values at the same time.\n    flat_ids = _flatten_beam_dim(alive_seq)  # [batch_size * beam_size]\n    flat_cache = nest.map_structure(_flatten_beam_dim, alive_cache)\n\n    flat_logits, flat_cache = self.symbols_to_logits_fn(flat_ids, i, flat_cache)\n\n    # Unflatten logits to shape [batch_size, beam_size, vocab_size]\n    logits = _unflatten_beam_dim(flat_logits, self.batch_size, self.beam_size)\n    new_cache = nest.map_structure(\n        lambda t: _unflatten_beam_dim(t, self.batch_size, self.beam_size),\n        flat_cache)\n\n    # Convert logits to normalized log probs\n    candidate_log_probs = _log_prob_from_logits(logits)\n\n    # Calculate new log probabilities if each of the alive sequences were\n    # extended # by the the candidate IDs.\n    # Shape [batch_size, beam_size, vocab_size]\n    log_probs = candidate_log_probs + tf.expand_dims(alive_log_probs, axis=2)\n\n    # Each batch item has beam_size * vocab_size candidate sequences. For each\n    # batch item, get the k candidates with the highest log probabilities.\n    flat_log_probs = tf.reshape(log_probs,\n                                [-1, self.beam_size * self.vocab_size])\n    topk_log_probs, topk_indices = tf.nn.top_k(flat_log_probs, k=beams_to_keep)\n\n    # Extract the alive sequences that generate the highest log probabilities\n    # after being extended.\n    topk_beam_indices = topk_indices // self.vocab_size\n    topk_seq, new_cache = _gather_beams(\n        [alive_seq, new_cache], topk_beam_indices, self.batch_size,\n        beams_to_keep)\n\n    # Append the most probable IDs to the topk sequences\n    topk_ids = topk_indices % self.vocab_size\n    topk_ids = tf.expand_dims(topk_ids, axis=2)\n    topk_seq = tf.concat([topk_seq, topk_ids], axis=2)\n    return topk_seq, topk_log_probs, new_cache\n\n  def _get_new_alive_state(self, new_seq, new_log_probs, new_cache):\n    \"\"\"Gather the top k sequences that are still alive.\n\n    Args:\n      new_seq: New sequences generated by growing the current alive sequences\n        int32 tensor with shape [batch_size, 2 * beam_size, cur_index + 1]\n      new_log_probs: Log probabilities of new sequences\n        float32 tensor with shape [batch_size, beam_size]\n      new_cache: Dict of cached values for each sequence.\n\n    Returns:\n      Dictionary with alive keys from _StateKeys:\n        {Top beam_size sequences that are still alive (don't end with eos_id)\n         Log probabilities of top alive sequences\n         Dict cache storing decoder states for top alive sequences}\n    \"\"\"\n    # To prevent finished sequences from being considered, set log probs to -INF\n    new_finished_flags = tf.equal(new_seq[:, :, -1], self.eos_id)\n    new_log_probs += tf.to_float(new_finished_flags) * -INF\n\n    top_alive_seq, top_alive_log_probs, top_alive_cache = _gather_topk_beams(\n        [new_seq, new_log_probs, new_cache], new_log_probs, self.batch_size,\n        self.beam_size)\n\n    return {\n        _StateKeys.ALIVE_SEQ: top_alive_seq,\n        _StateKeys.ALIVE_LOG_PROBS: top_alive_log_probs,\n        _StateKeys.ALIVE_CACHE: top_alive_cache\n    }\n\n  def _get_new_finished_state(self, state, new_seq, new_log_probs):\n    \"\"\"Combine new and old finished sequences, and gather the top k sequences.\n\n    Args:\n      state: A dictionary with the current loop state.\n      new_seq: New sequences generated by growing the current alive sequences\n        int32 tensor with shape [batch_size, beam_size, i + 1]\n      new_log_probs: Log probabilities of new sequences\n        float32 tensor with shape [batch_size, beam_size]\n\n    Returns:\n      Dictionary with finished keys from _StateKeys:\n        {Top beam_size finished sequences based on score,\n         Scores of finished sequences,\n         Finished flags of finished sequences}\n    \"\"\"\n    i = state[_StateKeys.CUR_INDEX]\n    finished_seq = state[_StateKeys.FINISHED_SEQ]\n    finished_scores = state[_StateKeys.FINISHED_SCORES]\n    finished_flags = state[_StateKeys.FINISHED_FLAGS]\n\n    # First append a column of 0-ids to finished_seq to increment the length.\n    # New shape of finished_seq: [batch_size, beam_size, i + 1]\n    finished_seq = tf.concat(\n        [finished_seq,\n         tf.zeros([self.batch_size, self.beam_size, 1], tf.int32)], axis=2)\n\n    # Calculate new seq scores from log probabilities.\n    length_norm = _length_normalization(self.alpha, i + 1)\n    new_scores = new_log_probs / length_norm\n\n    # Set the scores of the still-alive seq in new_seq to large negative values.\n    new_finished_flags = tf.equal(new_seq[:, :, -1], self.eos_id)\n    new_scores += (1. - tf.to_float(new_finished_flags)) * -INF\n\n    # Combine sequences, scores, and flags.\n    finished_seq = tf.concat([finished_seq, new_seq], axis=1)\n    finished_scores = tf.concat([finished_scores, new_scores], axis=1)\n    finished_flags = tf.concat([finished_flags, new_finished_flags], axis=1)\n\n    # Return the finished sequences with the best scores.\n    top_finished_seq, top_finished_scores, top_finished_flags = (\n        _gather_topk_beams([finished_seq, finished_scores, finished_flags],\n                           finished_scores, self.batch_size, self.beam_size))\n\n    return {\n        _StateKeys.FINISHED_SEQ: top_finished_seq,\n        _StateKeys.FINISHED_SCORES: top_finished_scores,\n        _StateKeys.FINISHED_FLAGS: top_finished_flags\n    }\n\n\ndef sequence_beam_search(\n    symbols_to_logits_fn, initial_ids, initial_cache, vocab_size, beam_size,\n    alpha, max_decode_length, eos_id):\n  \"\"\"Search for sequence of subtoken ids with the largest probability.\n\n  Args:\n    symbols_to_logits_fn: A function that takes in ids, index, and cache as\n      arguments. The passed in arguments will have shape:\n        ids -> [batch_size * beam_size, index]\n        index -> [] (scalar)\n        cache -> nested dictionary of tensors [batch_size * beam_size, ...]\n      The function must return logits and new cache.\n        logits -> [batch * beam_size, vocab_size]\n        new cache -> same shape/structure as inputted cache\n    initial_ids: Starting ids for each batch item.\n      int32 tensor with shape [batch_size]\n    initial_cache: dict containing starting decoder variables information\n    vocab_size: int size of tokens\n    beam_size: int number of beams\n    alpha: float defining the strength of length normalization\n    max_decode_length: maximum length to decoded sequence\n    eos_id: int id of eos token, used to determine when a sequence has finished\n\n  Returns:\n    Top decoded sequences [batch_size, beam_size, max_decode_length]\n    sequence scores [batch_size, beam_size]\n  \"\"\"\n  batch_size = tf.shape(initial_ids)[0]\n  sbs = SequenceBeamSearch(symbols_to_logits_fn, vocab_size, batch_size,\n                           beam_size, alpha, max_decode_length, eos_id)\n  return sbs.search(initial_ids, initial_cache)\n\n\ndef _log_prob_from_logits(logits):\n  return logits - tf.reduce_logsumexp(logits, axis=2, keep_dims=True)\n\n\ndef _length_normalization(alpha, length):\n  \"\"\"Return length normalization factor.\"\"\"\n  return tf.pow(((5. + tf.to_float(length)) / 6.), alpha)\n\n\ndef _expand_to_beam_size(tensor, beam_size):\n  \"\"\"Tiles a given tensor by beam_size.\n\n  Args:\n    tensor: tensor to tile [batch_size, ...]\n    beam_size: How much to tile the tensor by.\n\n  Returns:\n    Tiled tensor [batch_size, beam_size, ...]\n  \"\"\"\n  tensor = tf.expand_dims(tensor, axis=1)\n  tile_dims = [1] * tensor.shape.ndims\n  tile_dims[1] = beam_size\n\n  return tf.tile(tensor, tile_dims)\n\n\ndef _shape_list(tensor):\n  \"\"\"Return a list of the tensor's shape, and ensure no None values in list.\"\"\"\n  # Get statically known shape (may contain None's for unknown dimensions)\n  shape = tensor.get_shape().as_list()\n\n  # Ensure that the shape values are not None\n  dynamic_shape = tf.shape(tensor)\n  for i in range(len(shape)):  # pylint: disable=consider-using-enumerate\n    if shape[i] is None:\n      shape[i] = dynamic_shape[i]\n  return shape\n\n\ndef _get_shape_keep_last_dim(tensor):\n  shape_list = _shape_list(tensor)\n\n  # Only the last\n  for i in range(len(shape_list) - 1):\n    shape_list[i] = None\n\n  if isinstance(shape_list[-1], tf.Tensor):\n    shape_list[-1] = None\n  return tf.TensorShape(shape_list)\n\n\ndef _flatten_beam_dim(tensor):\n  \"\"\"Reshapes first two dimensions in to single dimension.\n\n  Args:\n    tensor: Tensor to reshape of shape [A, B, ...]\n\n  Returns:\n    Reshaped tensor of shape [A*B, ...]\n  \"\"\"\n  shape = _shape_list(tensor)\n  shape[0] *= shape[1]\n  shape.pop(1)  # Remove beam dim\n  return tf.reshape(tensor, shape)\n\n\ndef _unflatten_beam_dim(tensor, batch_size, beam_size):\n  \"\"\"Reshapes first dimension back to [batch_size, beam_size].\n\n  Args:\n    tensor: Tensor to reshape of shape [batch_size*beam_size, ...]\n    batch_size: Tensor, original batch size.\n    beam_size: int, original beam size.\n\n  Returns:\n    Reshaped tensor of shape [batch_size, beam_size, ...]\n  \"\"\"\n  shape = _shape_list(tensor)\n  new_shape = [batch_size, beam_size] + shape[1:]\n  return tf.reshape(tensor, new_shape)\n\n\ndef _gather_beams(nested, beam_indices, batch_size, new_beam_size):\n  \"\"\"Gather beams from nested structure of tensors.\n\n  Each tensor in nested represents a batch of beams, where beam refers to a\n  single search state (beam search involves searching through multiple states\n  in parallel).\n\n  This function is used to gather the top beams, specified by\n  beam_indices, from the nested tensors.\n\n  Args:\n    nested: Nested structure (tensor, list, tuple or dict) containing tensors\n      with shape [batch_size, beam_size, ...].\n    beam_indices: int32 tensor with shape [batch_size, new_beam_size]. Each\n     value in beam_indices must be between [0, beam_size), and are not\n     necessarily unique.\n    batch_size: int size of batch\n    new_beam_size: int number of beams to be pulled from the nested tensors.\n\n  Returns:\n    Nested structure containing tensors with shape\n      [batch_size, new_beam_size, ...]\n  \"\"\"\n  # Computes the i'th coodinate that contains the batch index for gather_nd.\n  # Batch pos is a tensor like [[0,0,0,0,],[1,1,1,1],..].\n  batch_pos = tf.range(batch_size * new_beam_size) // new_beam_size\n  batch_pos = tf.reshape(batch_pos, [batch_size, new_beam_size])\n\n  # Create coordinates to be passed to tf.gather_nd. Stacking creates a tensor\n  # with shape [batch_size, beam_size, 2], where the last dimension contains\n  # the (i, j) gathering coordinates.\n  coordinates = tf.stack([batch_pos, beam_indices], axis=2)\n\n  return nest.map_structure(\n      lambda state: tf.gather_nd(state, coordinates), nested)\n\n\ndef _gather_topk_beams(nested, score_or_log_prob, batch_size, beam_size):\n  \"\"\"Gather top beams from nested structure.\"\"\"\n  _, topk_indexes = tf.nn.top_k(score_or_log_prob, k=beam_size)\n  return _gather_beams(nested, topk_indexes, batch_size, beam_size)\n"
  },
  {
    "path": "official/transformer/model/beam_search_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Test beam search helper methods.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.model import beam_search\n\n\nclass BeamSearchHelperTests(tf.test.TestCase):\n\n  def test_expand_to_beam_size(self):\n    x = tf.ones([7, 4, 2, 5])\n    x = beam_search._expand_to_beam_size(x, 3)\n    with self.test_session() as sess:\n      shape = sess.run(tf.shape(x))\n    self.assertAllEqual([7, 3, 4, 2, 5], shape)\n\n  def test_shape_list(self):\n    y = tf.constant(4.0)\n    x = tf.ones([7, tf.to_int32(tf.sqrt(y)), 2, 5])\n    shape = beam_search._shape_list(x)\n    self.assertIsInstance(shape[0], int)\n    self.assertIsInstance(shape[1], tf.Tensor)\n    self.assertIsInstance(shape[2], int)\n    self.assertIsInstance(shape[3], int)\n\n  def test_get_shape_keep_last_dim(self):\n    y = tf.constant(4.0)\n    x = tf.ones([7, tf.to_int32(tf.sqrt(y)), 2, 5])\n    shape = beam_search._get_shape_keep_last_dim(x)\n    self.assertAllEqual([None, None, None, 5],\n                        shape.as_list())\n\n  def test_flatten_beam_dim(self):\n    x = tf.ones([7, 4, 2, 5])\n    x = beam_search._flatten_beam_dim(x)\n    with self.test_session() as sess:\n      shape = sess.run(tf.shape(x))\n    self.assertAllEqual([28, 2, 5], shape)\n\n  def test_unflatten_beam_dim(self):\n    x = tf.ones([28, 2, 5])\n    x = beam_search._unflatten_beam_dim(x, 7, 4)\n    with self.test_session() as sess:\n      shape = sess.run(tf.shape(x))\n    self.assertAllEqual([7, 4, 2, 5], shape)\n\n  def test_gather_beams(self):\n    x = tf.reshape(tf.range(24), [2, 3, 4])\n    # x looks like:  [[[ 0  1  2  3]\n    #                  [ 4  5  6  7]\n    #                  [ 8  9 10 11]]\n    #\n    #                 [[12 13 14 15]\n    #                  [16 17 18 19]\n    #                  [20 21 22 23]]]\n\n    y = beam_search._gather_beams(x, [[1, 2], [0, 2]], 2, 2)\n    with self.test_session() as sess:\n      y = sess.run(y)\n\n    self.assertAllEqual([[[4, 5, 6, 7],\n                          [8, 9, 10, 11]],\n                         [[12, 13, 14, 15],\n                          [20, 21, 22, 23]]],\n                        y)\n\n  def test_gather_topk_beams(self):\n    x = tf.reshape(tf.range(24), [2, 3, 4])\n    x_scores = [[0, 1, 1], [1, 0, 1]]\n\n    y = beam_search._gather_topk_beams(x, x_scores, 2, 2)\n    with self.test_session() as sess:\n      y = sess.run(y)\n\n    self.assertAllEqual([[[4, 5, 6, 7],\n                          [8, 9, 10, 11]],\n                         [[12, 13, 14, 15],\n                          [20, 21, 22, 23]]],\n                        y)\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/transformer/model/embedding_layer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Implementation of embedding layer with shared weights.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.model import model_utils\n\n\nclass EmbeddingSharedWeights(tf.layers.Layer):\n  \"\"\"Calculates input embeddings and pre-softmax linear with shared weights.\"\"\"\n\n  def __init__(self, vocab_size, hidden_size):\n    super(EmbeddingSharedWeights, self).__init__()\n    self.vocab_size = vocab_size\n    self.hidden_size = hidden_size\n\n  def build(self, _):\n    with tf.variable_scope(\"embedding_and_softmax\", reuse=tf.AUTO_REUSE):\n      # Create and initialize weights. The random normal initializer was chosen\n      # randomly, and works well.\n      self.shared_weights = tf.get_variable(\n          \"weights\", [self.vocab_size, self.hidden_size],\n          initializer=tf.random_normal_initializer(\n              0., self.hidden_size ** -0.5))\n\n    self.built = True\n\n  def call(self, x):\n    \"\"\"Get token embeddings of x.\n\n    Args:\n      x: An int64 tensor with shape [batch_size, length]\n    Returns:\n      embeddings: float32 tensor with shape [batch_size, length, embedding_size]\n      padding: float32 tensor with shape [batch_size, length] indicating the\n        locations of the padding tokens in x.\n    \"\"\"\n    with tf.name_scope(\"embedding\"):\n      embeddings = tf.gather(self.shared_weights, x)\n\n      # Scale embedding by the sqrt of the hidden size\n      embeddings *= self.hidden_size ** 0.5\n\n      # Create binary array of size [batch_size, length]\n      # where 1 = padding, 0 = not padding\n      padding = model_utils.get_padding(x)\n\n      # Set all padding embedding values to 0\n      embeddings *= tf.expand_dims(1 - padding, -1)\n      return embeddings\n\n  def linear(self, x):\n    \"\"\"Computes logits by running x through a linear layer.\n\n    Args:\n      x: A float32 tensor with shape [batch_size, length, hidden_size]\n    Returns:\n      float32 tensor with shape [batch_size, length, vocab_size].\n    \"\"\"\n    with tf.name_scope(\"presoftmax_linear\"):\n      batch_size = tf.shape(x)[0]\n      length = tf.shape(x)[1]\n\n      x = tf.reshape(x, [-1, self.hidden_size])\n      logits = tf.matmul(x, self.shared_weights, transpose_b=True)\n\n      return tf.reshape(logits, [batch_size, length, self.vocab_size])\n"
  },
  {
    "path": "official/transformer/model/ffn_layer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Implementation of fully connected network.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\nclass FeedFowardNetwork(tf.layers.Layer):\n  \"\"\"Fully connected feedforward network.\"\"\"\n\n  def __init__(self, hidden_size, filter_size, relu_dropout, train):\n    super(FeedFowardNetwork, self).__init__()\n    self.hidden_size = hidden_size\n    self.filter_size = filter_size\n    self.relu_dropout = relu_dropout\n    self.train = train\n\n    self.filter_dense_layer = tf.layers.Dense(\n        filter_size, use_bias=True, activation=tf.nn.relu, name=\"filter_layer\")\n    self.output_dense_layer = tf.layers.Dense(\n        hidden_size, use_bias=True, name=\"output_layer\")\n\n  def call(self, x, padding=None):\n    \"\"\"Return outputs of the feedforward network.\n\n    Args:\n      x: tensor with shape [batch_size, length, hidden_size]\n      padding: (optional) If set, the padding values are temporarily removed\n        from x. The padding values are placed back in the output tensor in the\n        same locations. shape [batch_size, length]\n\n    Returns:\n      Output of the feedforward network.\n      tensor with shape [batch_size, length, hidden_size]\n    \"\"\"\n    # Retrieve dynamically known shapes\n    batch_size = tf.shape(x)[0]\n    length = tf.shape(x)[1]\n\n    if padding is not None:\n      with tf.name_scope(\"remove_padding\"):\n        # Flatten padding to [batch_size*length]\n        pad_mask = tf.reshape(padding, [-1])\n\n        nonpad_ids = tf.to_int32(tf.where(pad_mask < 1e-9))\n\n        # Reshape x to [batch_size*length, hidden_size] to remove padding\n        x = tf.reshape(x, [-1, self.hidden_size])\n        x = tf.gather_nd(x, indices=nonpad_ids)\n\n        # Reshape x from 2 dimensions to 3 dimensions.\n        x.set_shape([None, self.hidden_size])\n        x = tf.expand_dims(x, axis=0)\n\n    output = self.filter_dense_layer(x)\n    if self.train:\n      output = tf.nn.dropout(output, 1.0 - self.relu_dropout)\n    output = self.output_dense_layer(output)\n\n    if padding is not None:\n      with tf.name_scope(\"re_add_padding\"):\n        output = tf.squeeze(output, axis=0)\n        output = tf.scatter_nd(\n            indices=nonpad_ids,\n            updates=output,\n            shape=[batch_size * length, self.hidden_size]\n        )\n        output = tf.reshape(output, [batch_size, length, self.hidden_size])\n    return output\n"
  },
  {
    "path": "official/transformer/model/model_params.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Defines Transformer model parameters.\"\"\"\n\n\nclass TransformerBaseParams(object):\n  \"\"\"Parameters for the base Transformer model.\"\"\"\n  # Input params\n  batch_size = 2048  # Maximum number of tokens per batch of examples.\n  max_length = 256  # Maximum number of tokens per example.\n\n  # Model params\n  initializer_gain = 1.0  # Used in trainable variable initialization.\n  vocab_size = 33708  # Number of tokens defined in the vocabulary file.\n  hidden_size = 512  # Model dimension in the hidden layers.\n  num_hidden_layers = 6  # Number of layers in the encoder and decoder stacks.\n  num_heads = 8  # Number of heads to use in multi-headed attention.\n  filter_size = 2048  # Inner layer dimensionality in the feedforward network.\n\n  # Dropout values (only used when training)\n  layer_postprocess_dropout = 0.1\n  attention_dropout = 0.1\n  relu_dropout = 0.1\n\n  # Training params\n  label_smoothing = 0.1\n  learning_rate = 2.0\n  learning_rate_decay_rate = 1.0\n  learning_rate_warmup_steps = 16000\n\n  # Optimizer params\n  optimizer_adam_beta1 = 0.9\n  optimizer_adam_beta2 = 0.997\n  optimizer_adam_epsilon = 1e-09\n\n  # Default prediction params\n  extra_decode_length = 50\n  beam_size = 4\n  alpha = 0.6  # used to calculate length normalization in beam search\n\n\nclass TransformerBigParams(TransformerBaseParams):\n  \"\"\"Parameters for the big Transformer model.\"\"\"\n  batch_size = 4096\n  hidden_size = 1024\n  filter_size = 4096\n  num_heads = 16\n"
  },
  {
    "path": "official/transformer/model/model_utils.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Transformer model helper methods.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport math\n\nimport tensorflow as tf\n\n_NEG_INF = -1e9\n\n\ndef get_position_encoding(\n    length, hidden_size, min_timescale=1.0, max_timescale=1.0e4):\n  \"\"\"Return positional encoding.\n\n  Calculates the position encoding as a mix of sine and cosine functions with\n  geometrically increasing wavelengths.\n  Defined and formulized in Attention is All You Need, section 3.5.\n\n  Args:\n    length: Sequence length.\n    hidden_size: Size of the\n    min_timescale: Minimum scale that will be applied at each position\n    max_timescale: Maximum scale that will be applied at each position\n\n  Returns:\n    Tensor with shape [length, hidden_size]\n  \"\"\"\n  position = tf.to_float(tf.range(length))\n  num_timescales = hidden_size // 2\n  log_timescale_increment = (\n      math.log(float(max_timescale) / float(min_timescale)) /\n      (tf.to_float(num_timescales) - 1))\n  inv_timescales = min_timescale * tf.exp(\n      tf.to_float(tf.range(num_timescales)) * -log_timescale_increment)\n  scaled_time = tf.expand_dims(position, 1) * tf.expand_dims(inv_timescales, 0)\n  signal = tf.concat([tf.sin(scaled_time), tf.cos(scaled_time)], axis=1)\n  return signal\n\n\ndef get_decoder_self_attention_bias(length):\n  \"\"\"Calculate bias for decoder that maintains model's autoregressive property.\n\n  Creates a tensor that masks out locations that correspond to illegal\n  connections, so prediction at position i cannot draw information from future\n  positions.\n\n  Args:\n    length: int length of sequences in batch.\n\n  Returns:\n    float tensor of shape [1, 1, length, length]\n  \"\"\"\n  with tf.name_scope(\"decoder_self_attention_bias\"):\n    valid_locs = tf.matrix_band_part(tf.ones([length, length]), -1, 0)\n    valid_locs = tf.reshape(valid_locs, [1, 1, length, length])\n    decoder_bias = _NEG_INF * (1.0 - valid_locs)\n  return decoder_bias\n\n\ndef get_padding(x, padding_value=0):\n  \"\"\"Return float tensor representing the padding values in x.\n\n  Args:\n    x: int tensor with any shape\n    padding_value: int value that\n\n  Returns:\n    flaot tensor with same shape as x containing values 0 or 1.\n      0 -> non-padding, 1 -> padding\n  \"\"\"\n  with tf.name_scope(\"padding\"):\n    return tf.to_float(tf.equal(x, padding_value))\n\n\ndef get_padding_bias(x):\n  \"\"\"Calculate bias tensor from padding values in tensor.\n\n  Bias tensor that is added to the pre-softmax multi-headed attention logits,\n  which has shape [batch_size, num_heads, length, length]. The tensor is zero at\n  non-padding locations, and -1e9 (negative infinity) at padding locations.\n\n  Args:\n    x: int tensor with shape [batch_size, length]\n\n  Returns:\n    Attention bias tensor of shape [batch_size, 1, 1, length].\n  \"\"\"\n  with tf.name_scope(\"attention_bias\"):\n    padding = get_padding(x)\n    attention_bias = padding * _NEG_INF\n    attention_bias = tf.expand_dims(\n        tf.expand_dims(attention_bias, axis=1), axis=1)\n  return attention_bias\n"
  },
  {
    "path": "official/transformer/model/model_utils_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Test Transformer model helper methods.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.model import model_utils\n\nNEG_INF = -1e9\n\n\nclass ModelUtilsTest(tf.test.TestCase):\n\n  def test_get_padding(self):\n    x = tf.constant([[1, 0, 0, 0, 2], [3, 4, 0, 0, 0], [0, 5, 6, 0, 7]])\n    padding = model_utils.get_padding(x, padding_value=0)\n    with self.test_session() as sess:\n      padding = sess.run(padding)\n\n    self.assertAllEqual([[0, 1, 1, 1, 0], [0, 0, 1, 1, 1], [1, 0, 0, 1, 0]],\n                        padding)\n\n  def test_get_padding_bias(self):\n    x = tf.constant([[1, 0, 0, 0, 2], [3, 4, 0, 0, 0], [0, 5, 6, 0, 7]])\n    bias = model_utils.get_padding_bias(x)\n    bias_shape = tf.shape(bias)\n    flattened_bias = tf.reshape(bias, [3, 5])\n    with self.test_session() as sess:\n      flattened_bias, bias_shape = sess.run((flattened_bias, bias_shape))\n\n    self.assertAllEqual([[0, NEG_INF, NEG_INF, NEG_INF, 0],\n                         [0, 0, NEG_INF, NEG_INF, NEG_INF],\n                         [NEG_INF, 0, 0, NEG_INF, 0]],\n                        flattened_bias)\n    self.assertAllEqual([3, 1, 1, 5], bias_shape)\n\n  def test_get_decoder_self_attention_bias(self):\n    length = 5\n    bias = model_utils.get_decoder_self_attention_bias(length)\n    with self.test_session() as sess:\n      bias = sess.run(bias)\n\n    self.assertAllEqual([[[[0, NEG_INF, NEG_INF, NEG_INF, NEG_INF],\n                           [0, 0, NEG_INF, NEG_INF, NEG_INF],\n                           [0, 0, 0, NEG_INF, NEG_INF],\n                           [0, 0, 0, 0, NEG_INF],\n                           [0, 0, 0, 0, 0]]]],\n                        bias)\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/transformer/model/transformer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Defines the Transformer model, and its encoder and decoder stacks.\n\nModel paper: https://arxiv.org/pdf/1706.03762.pdf\nTransformer model code source: https://github.com/tensorflow/tensor2tensor\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.model import attention_layer\nfrom official.transformer.model import beam_search\nfrom official.transformer.model import embedding_layer\nfrom official.transformer.model import ffn_layer\nfrom official.transformer.model import model_utils\nfrom official.transformer.utils.tokenizer import EOS_ID\n\n_NEG_INF = -1e9\n\n\nclass Transformer(object):\n  \"\"\"Transformer model for sequence to sequence data.\n\n  Implemented as described in: https://arxiv.org/pdf/1706.03762.pdf\n\n  The Transformer model consists of an encoder and decoder. The input is an int\n  sequence (or a batch of sequences). The encoder produces a continous\n  representation, and the decoder uses the encoder output to generate\n  probabilities for the output sequence.\n  \"\"\"\n\n  def __init__(self, params, train):\n    \"\"\"Initialize layers to build Transformer model.\n\n    Args:\n      params: hyperparameter object defining layer sizes, dropout values, etc.\n      train: boolean indicating whether the model is in training mode. Used to\n        determine if dropout layers should be added.\n    \"\"\"\n    self.train = train\n    self.params = params\n\n    self.embedding_softmax_layer = embedding_layer.EmbeddingSharedWeights(\n        params.vocab_size, params.hidden_size)\n    self.encoder_stack = EncoderStack(params, train)\n    self.decoder_stack = DecoderStack(params, train)\n\n  def __call__(self, inputs, targets=None):\n    \"\"\"Calculate target logits or inferred target sequences.\n\n    Args:\n      inputs: int tensor with shape [batch_size, input_length].\n      targets: None or int tensor with shape [batch_size, target_length].\n\n    Returns:\n      If targets is defined, then return logits for each word in the target\n      sequence. float tensor with shape [batch_size, target_length, vocab_size]\n      If target is none, then generate output sequence one token at a time.\n        returns a dictionary {\n          output: [batch_size, decoded length]\n          score: [batch_size, float]}\n    \"\"\"\n    # Variance scaling is used here because it seems to work in many problems.\n    # Other reasonable initializers may also work just as well.\n    initializer = tf.variance_scaling_initializer(\n        self.params.initializer_gain, mode=\"fan_avg\", distribution=\"uniform\")\n    with tf.variable_scope(\"Transformer\", initializer=initializer):\n      # Calculate attention bias for encoder self-attention and decoder\n      # multi-headed attention layers.\n      attention_bias = model_utils.get_padding_bias(inputs)\n\n      # Run the inputs through the encoder layer to map the symbol\n      # representations to continuous representations.\n      encoder_outputs = self.encode(inputs, attention_bias)\n\n      # Generate output sequence if targets is None, or return logits if target\n      # sequence is known.\n      if targets is None:\n        return self.predict(encoder_outputs, attention_bias)\n      else:\n        logits = self.decode(targets, encoder_outputs, attention_bias)\n        return logits\n\n  def encode(self, inputs, attention_bias):\n    \"\"\"Generate continuous representation for inputs.\n\n    Args:\n      inputs: int tensor with shape [batch_size, input_length].\n      attention_bias: float tensor with shape [batch_size, 1, 1, input_length]\n\n    Returns:\n      float tensor with shape [batch_size, input_length, hidden_size]\n    \"\"\"\n    with tf.name_scope(\"encode\"):\n      # Prepare inputs to the layer stack by adding positional encodings and\n      # applying dropout.\n      embedded_inputs = self.embedding_softmax_layer(inputs)\n      inputs_padding = model_utils.get_padding(inputs)\n\n      with tf.name_scope(\"add_pos_encoding\"):\n        length = tf.shape(embedded_inputs)[1]\n        pos_encoding = model_utils.get_position_encoding(\n            length, self.params.hidden_size)\n        encoder_inputs = embedded_inputs + pos_encoding\n\n      if self.train:\n        encoder_inputs = tf.nn.dropout(\n            encoder_inputs, 1 - self.params.layer_postprocess_dropout)\n\n      return self.encoder_stack(encoder_inputs, attention_bias, inputs_padding)\n\n  def decode(self, targets, encoder_outputs, attention_bias):\n    \"\"\"Generate logits for each value in the target sequence.\n\n    Args:\n      targets: target values for the output sequence.\n        int tensor with shape [batch_size, target_length]\n      encoder_outputs: continuous representation of input sequence.\n        float tensor with shape [batch_size, input_length, hidden_size]\n      attention_bias: float tensor with shape [batch_size, 1, 1, input_length]\n\n    Returns:\n      float32 tensor with shape [batch_size, target_length, vocab_size]\n    \"\"\"\n    with tf.name_scope(\"decode\"):\n      # Prepare inputs to decoder layers by shifting targets, adding positional\n      # encoding and applying dropout.\n      decoder_inputs = self.embedding_softmax_layer(targets)\n      with tf.name_scope(\"shift_targets\"):\n        # Shift targets to the right, and remove the last element\n        decoder_inputs = tf.pad(\n            decoder_inputs, [[0, 0], [1, 0], [0, 0]])[:, :-1, :]\n      with tf.name_scope(\"add_pos_encoding\"):\n        length = tf.shape(decoder_inputs)[1]\n        decoder_inputs += model_utils.get_position_encoding(\n            length, self.params.hidden_size)\n      if self.train:\n        decoder_inputs = tf.nn.dropout(\n            decoder_inputs, 1 - self.params.layer_postprocess_dropout)\n\n      # Run values\n      decoder_self_attention_bias = model_utils.get_decoder_self_attention_bias(\n          length)\n      outputs = self.decoder_stack(\n          decoder_inputs, encoder_outputs, decoder_self_attention_bias,\n          attention_bias)\n      logits = self.embedding_softmax_layer.linear(outputs)\n      return logits\n\n  def _get_symbols_to_logits_fn(self, max_decode_length):\n    \"\"\"Returns a decoding function that calculates logits of the next tokens.\"\"\"\n\n    timing_signal = model_utils.get_position_encoding(\n        max_decode_length + 1, self.params.hidden_size)\n    decoder_self_attention_bias = model_utils.get_decoder_self_attention_bias(\n        max_decode_length)\n\n    def symbols_to_logits_fn(ids, i, cache):\n      \"\"\"Generate logits for next potential IDs.\n\n      Args:\n        ids: Current decoded sequences.\n          int tensor with shape [batch_size * beam_size, i + 1]\n        i: Loop index\n        cache: dictionary of values storing the encoder output, encoder-decoder\n          attention bias, and previous decoder attention values.\n\n      Returns:\n        Tuple of\n          (logits with shape [batch_size * beam_size, vocab_size],\n           updated cache values)\n      \"\"\"\n      # Set decoder input to the last generated IDs\n      decoder_input = ids[:, -1:]\n\n      # Preprocess decoder input by getting embeddings and adding timing signal.\n      decoder_input = self.embedding_softmax_layer(decoder_input)\n      decoder_input += timing_signal[i:i + 1]\n\n      self_attention_bias = decoder_self_attention_bias[:, :, i:i + 1, :i + 1]\n      decoder_outputs = self.decoder_stack(\n          decoder_input, cache.get(\"encoder_outputs\"), self_attention_bias,\n          cache.get(\"encoder_decoder_attention_bias\"), cache)\n      logits = self.embedding_softmax_layer.linear(decoder_outputs)\n      logits = tf.squeeze(logits, axis=[1])\n      return logits, cache\n    return symbols_to_logits_fn\n\n  def predict(self, encoder_outputs, encoder_decoder_attention_bias):\n    \"\"\"Return predicted sequence.\"\"\"\n    batch_size = tf.shape(encoder_outputs)[0]\n    input_length = tf.shape(encoder_outputs)[1]\n    max_decode_length = input_length + self.params.extra_decode_length\n\n    symbols_to_logits_fn = self._get_symbols_to_logits_fn(max_decode_length)\n\n    # Create initial set of IDs that will be passed into symbols_to_logits_fn.\n    initial_ids = tf.zeros([batch_size], dtype=tf.int32)\n\n    # Create cache storing decoder attention values for each layer.\n    cache = {\n        \"layer_%d\" % layer: {\n            \"k\": tf.zeros([batch_size, 0, self.params.hidden_size]),\n            \"v\": tf.zeros([batch_size, 0, self.params.hidden_size]),\n        } for layer in range(self.params.num_hidden_layers)}\n\n    # Add encoder output and attention bias to the cache.\n    cache[\"encoder_outputs\"] = encoder_outputs\n    cache[\"encoder_decoder_attention_bias\"] = encoder_decoder_attention_bias\n\n    # Use beam search to find the top beam_size sequences and scores.\n    decoded_ids, scores = beam_search.sequence_beam_search(\n        symbols_to_logits_fn=symbols_to_logits_fn,\n        initial_ids=initial_ids,\n        initial_cache=cache,\n        vocab_size=self.params.vocab_size,\n        beam_size=self.params.beam_size,\n        alpha=self.params.alpha,\n        max_decode_length=max_decode_length,\n        eos_id=EOS_ID)\n\n    # Get the top sequence for each batch element\n    top_decoded_ids = decoded_ids[:, 0, 1:]\n    top_scores = scores[:, 0]\n\n    return {\"outputs\": top_decoded_ids, \"scores\": top_scores}\n\n\nclass LayerNormalization(tf.layers.Layer):\n  \"\"\"Applies layer normalization.\"\"\"\n\n  def __init__(self, hidden_size):\n    super(LayerNormalization, self).__init__()\n    self.hidden_size = hidden_size\n\n  def build(self, _):\n    self.scale = tf.get_variable(\"layer_norm_scale\", [self.hidden_size],\n                                 initializer=tf.ones_initializer())\n    self.bias = tf.get_variable(\"layer_norm_bias\", [self.hidden_size],\n                                initializer=tf.zeros_initializer())\n    self.built = True\n\n  def call(self, x, epsilon=1e-6):\n    mean = tf.reduce_mean(x, axis=[-1], keepdims=True)\n    variance = tf.reduce_mean(tf.square(x - mean), axis=[-1], keepdims=True)\n    norm_x = (x - mean) * tf.rsqrt(variance + epsilon)\n    return norm_x * self.scale + self.bias\n\n\nclass PrePostProcessingWrapper(object):\n  \"\"\"Wrapper class that applies layer pre-processing and post-processing.\"\"\"\n\n  def __init__(self, layer, params, train):\n    self.layer = layer\n    self.postprocess_dropout = params.layer_postprocess_dropout\n    self.train = train\n\n    # Create normalization layer\n    self.layer_norm = LayerNormalization(params.hidden_size)\n\n  def __call__(self, x, *args, **kwargs):\n    # Preprocessing: apply layer normalization\n    y = self.layer_norm(x)\n\n    # Get layer output\n    y = self.layer(y, *args, **kwargs)\n\n    # Postprocessing: apply dropout and residual connection\n    if self.train:\n      y = tf.nn.dropout(y, 1 - self.postprocess_dropout)\n    return x + y\n\n\nclass EncoderStack(tf.layers.Layer):\n  \"\"\"Transformer encoder stack.\n\n  The encoder stack is made up of N identical layers. Each layer is composed\n  of the sublayers:\n    1. Self-attention layer\n    2. Feedforward network (which is 2 fully-connected layers)\n  \"\"\"\n\n  def __init__(self, params, train):\n    super(EncoderStack, self).__init__()\n    self.layers = []\n    for _ in range(params.num_hidden_layers):\n      # Create sublayers for each layer.\n      self_attention_layer = attention_layer.SelfAttention(\n          params.hidden_size, params.num_heads, params.attention_dropout, train)\n      feed_forward_network = ffn_layer.FeedFowardNetwork(\n          params.hidden_size, params.filter_size, params.relu_dropout, train)\n\n      self.layers.append([\n          PrePostProcessingWrapper(self_attention_layer, params, train),\n          PrePostProcessingWrapper(feed_forward_network, params, train)])\n\n    # Create final layer normalization layer.\n    self.output_normalization = LayerNormalization(params.hidden_size)\n\n  def call(self, encoder_inputs, attention_bias, inputs_padding):\n    \"\"\"Return the output of the encoder layer stacks.\n\n    Args:\n      encoder_inputs: tensor with shape [batch_size, input_length, hidden_size]\n      attention_bias: bias for the encoder self-attention layer.\n        [batch_size, 1, 1, input_length]\n      inputs_padding: P\n\n    Returns:\n      Output of encoder layer stack.\n      float32 tensor with shape [batch_size, input_length, hidden_size]\n    \"\"\"\n    for n, layer in enumerate(self.layers):\n      # Run inputs through the sublayers.\n      self_attention_layer = layer[0]\n      feed_forward_network = layer[1]\n\n      with tf.variable_scope(\"layer_%d\" % n):\n        with tf.variable_scope(\"self_attention\"):\n          encoder_inputs = self_attention_layer(encoder_inputs, attention_bias)\n        with tf.variable_scope(\"ffn\"):\n          encoder_inputs = feed_forward_network(encoder_inputs, inputs_padding)\n\n    return self.output_normalization(encoder_inputs)\n\n\nclass DecoderStack(tf.layers.Layer):\n  \"\"\"Transformer decoder stack.\n\n  Like the encoder stack, the decoder stack is made up of N identical layers.\n  Each layer is composed of the sublayers:\n    1. Self-attention layer\n    2. Multi-headed attention layer combining encoder outputs with results from\n       the previous self-attention layer.\n    3. Feedforward network (2 fully-connected layers)\n  \"\"\"\n\n  def __init__(self, params, train):\n    super(DecoderStack, self).__init__()\n    self.layers = []\n    for _ in range(params.num_hidden_layers):\n      self_attention_layer = attention_layer.SelfAttention(\n          params.hidden_size, params.num_heads, params.attention_dropout, train)\n      enc_dec_attention_layer = attention_layer.Attention(\n          params.hidden_size, params.num_heads, params.attention_dropout, train)\n      feed_forward_network = ffn_layer.FeedFowardNetwork(\n          params.hidden_size, params.filter_size, params.relu_dropout, train)\n\n      self.layers.append([\n          PrePostProcessingWrapper(self_attention_layer, params, train),\n          PrePostProcessingWrapper(enc_dec_attention_layer, params, train),\n          PrePostProcessingWrapper(feed_forward_network, params, train)])\n\n    self.output_normalization = LayerNormalization(params.hidden_size)\n\n  def call(self, decoder_inputs, encoder_outputs, decoder_self_attention_bias,\n           attention_bias, cache=None):\n    \"\"\"Return the output of the decoder layer stacks.\n\n    Args:\n      decoder_inputs: tensor with shape [batch_size, target_length, hidden_size]\n      encoder_outputs: tensor with shape [batch_size, input_length, hidden_size]\n      decoder_self_attention_bias: bias for decoder self-attention layer.\n        [1, 1, target_len, target_length]\n      attention_bias: bias for encoder-decoder attention layer.\n        [batch_size, 1, 1, input_length]\n      cache: (Used for fast decoding) A nested dictionary storing previous\n        decoder self-attention values. The items are:\n          {layer_n: {\"k\": tensor with shape [batch_size, i, key_channels],\n                     \"v\": tensor with shape [batch_size, i, value_channels]},\n           ...}\n\n    Returns:\n      Output of decoder layer stack.\n      float32 tensor with shape [batch_size, target_length, hidden_size]\n    \"\"\"\n    for n, layer in enumerate(self.layers):\n      self_attention_layer = layer[0]\n      enc_dec_attention_layer = layer[1]\n      feed_forward_network = layer[2]\n\n      # Run inputs through the sublayers.\n      layer_name = \"layer_%d\" % n\n      layer_cache = cache[layer_name] if cache is not None else None\n      with tf.variable_scope(layer_name):\n        with tf.variable_scope(\"self_attention\"):\n          decoder_inputs = self_attention_layer(\n              decoder_inputs, decoder_self_attention_bias, cache=layer_cache)\n        with tf.variable_scope(\"encdec_attention\"):\n          decoder_inputs = enc_dec_attention_layer(\n              decoder_inputs, encoder_outputs, attention_bias)\n        with tf.variable_scope(\"ffn\"):\n          decoder_inputs = feed_forward_network(decoder_inputs)\n\n    return self.output_normalization(decoder_inputs)\n"
  },
  {
    "path": "official/transformer/test_data/newstest2014.de",
    "content": "Gutach: Noch mehr Sicherheit für Fußgänger\nSie stehen keine 100 Meter voneinander entfernt: Am Dienstag ist in Gutach die neue B 33-Fußgängerampel am Dorfparkplatz in Betrieb genommen worden - in Sichtweite der älteren Rathausampel.\nZwei Anlagen so nah beieinander: Absicht oder Schildbürgerstreich?\nDiese Frage hat Gutachs Bürgermeister gestern klar beantwortet.\n\"Die Rathausampel ist damals installiert worden, weil diese den Schulweg sichert\", erläuterte Eckert gestern.\nDie Kluser-Ampel sichere sowohl Radfahrer als auch Busfahrgäste und die Bergle-Bewohner.\nDie gestern offiziell in Betrieb genommene Anlage sei wichtig für den Kreuzungsbereich Sulzbachweg/Kirchstraße.\nWir haben das Museum, zwei Kirchen, Kurpark, die Bushaltestelle, einen Arzt und eine Bank sowie den Verkehrsfluss aus dem Wohngebiet ›Grub‹.\n\"Bei dem hohen Verkehrs- und Fußgängeraufkommen musste zu deren Sicherheit eine weitere Ampel her\", so Eckert.\nDies bestätigt auch Peter Arnold vom Landratsamt Offenburg.\n\"Laut aktuellen Messungen durchfahren auf der B 33 täglich etwa 12 000 Fahrzeuge die Gemeinde Gutach, davon sind etwa zehn Prozent Schwerlastverkehr\", betont Arnold.\nDaher sei der Bau einer weiteren Ampel mehr als notwendig: \"Sicherheit geht hier einfach vor\", so Arnold.\nInsgesamt seien vier Verkehrsschauen durchgeführt worden, auch ein Kreisverkehr wurde angedacht, allerdings wegen der Enge in dem Kreuzungsbereich Sulzbachweg/Kirchstraße wieder verworfen.\nEs wurde laut Arnold bei der Standortwahl der Ampelmasten zuvor alles ausgetestet: \"Mittels eines extra für uns mit besonders langen Holzstämmen beladener Transporter haben wir ausgestestet, ob diese Fahrzeuge aus dem Sulzbachweg auf die B 33 ausfahren können, ohne den Ampelmasten umzuknicken\".\nDie rund 15 000 Euro teure Ampelanlage selbst ist das \"modernste, was es derzeit auf dem Markt gibt\", erläuterte Arnold.\nDie Anlage ist mit farbigen LEDs ausgestattet, die so kräftig leuchten, dass die Lichter von den Autofahrern beispielsweise auch bei tiefstehender Sonne gut zu erkennen sind.\nUnd sparsam ist sie auch: Die älteren Lichtanlagen verbrauchen etwa 100 Watt, die neuen gerade mal acht Watt.\nPro Fahrtrichtung gibt es drei Lichtanlagen.\nArnold erklärte die Technik der neuen Anlage: Diese ist mit zwei Radarsensoren ausgestattet.\nDrückt der Fußgänger den Ampelknopf, testet der obere Radarsensor die Verkehrslage.\nIst die Straße frei, kommt unmittelbar Grün für den Fußgänger, wenn nicht, dauert es etwa 15 Sekunden.\nEin weiteres Radarsensor prüft, ob die Grünphase für den Fußgänger beendet werden kann.\n\"Sollte eine Gruppe oder gehbehinderte Menschen über die Straße gehen, wird die Grünphase verlängert, es kommt also jeder sicher über die Fahrbahn\", erklärte Arnold.\nNatürlich müsse der Autofahrer hier als Partner mitdenken und die Fahrbahn beobachten.\nDies war gestern nicht der Fall: Kaum zeigte die Ampel für Fußgänger grün, rauschte ein Oberklasse-Fahrzeug durch - bei leuchtendem Rot.\nJosef Winkler schreibt sich seit mehr als 30 Jahren die Nöte seiner Kindheit und Jugend von der Seele.\nDie Katastrophen seiner katholischen Dorfkindheit - die Sprachlosigkeit, der Hang zu roher Gewalt und stumpfer Sexualität, die Enge und Freudlosigkeit - hat der Kärntner Dichter vielfach beschrieben.\nBekannt ist der Büchner-Preisträger vor allem als Prosaautor, Theatertexte sind in seinem Werk rar.\nCollage aus Prosatexten Gerhard Fresacher stellt für seine Aufführung \"Wetterleuchten auf der Zungenspitze\", die nun in der Garage X am Petersplatz zu sehen ist, daher eine Collage aus Prosatexten zusammen.\nDer Theatermacher verbindet etwa Elemente aus dem autobiografisch geprägten Roman \"Der Leibeigene\" (1987) mit Prosaminiaturen aus \"Leichnam, seine Familie belauernd\" (2003).\nAuf der weitgehend leergeräumten Bühne - wichtiges Requisit: ein zerknautschtes Sofa, auf dem andeutungsweise kopuliert und masturbiert wird - hangelt sich das achtköpfige Ensemble durch das Textmaterial.\nDabei scheint Regisseur Fresacher dem Text wenig zu vertrauen.\nDie 70-minütige Performance übertüncht die Vorlage mit einer Fülle an Regieeinfällen, bekannt aus dem Repertoire postdramatischer Spielformen.\nVor allem die Schauspielerinnen kommen bei den mitunter etwas fragwürdigen szenischen Umsetzungen dran.\nSie werden hart angefasst, mit dem Kopf unter Wasser getaucht, mit ihren Abendroben an die Wand getackert.\nEingezwängt in Zellophan oder Mieder, staksen sie auf gefährlich hohen Stöckeln durch die Inszenierung, entweder monologisieren sie lautstark oder liegen völlig verstummt auf dem Bühnenboden.\nDer Text vermittelt sich auf diese angestrengte Weise jedoch kaum.\nDie besten Momente hat der Abend, wenn gesungen wird - die Bandbreite reicht von Deep Purple bis zu volkstümlichem Liedgut.\nErst gegen Ende kommt die überdrehte Aufführung etwas zur Ruhe, und Winklers nachgerade absurder Humor blitzt auf.\nEine Blackbox im Auto?\nUS-amerikanische Straßenplaner sind auf der Suche nach einer Geldquelle, um das verfallende Highway-System zu reparieren, und glauben die Lösung in einem kleinen schwarzen Kasten gefunden zu haben, der im Armaturenbrett jedes Autos Platz findet.\nDie Geräte, die jeden gefahrenen Kilometer aufzeichnen und die Informationen an die Behörden melden, sind Kernpunkt eines kontroversen Versuchs von Washington und den Planungsbüros der Bundesstaaten, das veraltete System zur Finanzierung US-amerikanischer Straßen zu überarbeiten.\nDas normalerweise eher langweilige Gebiet der Straßenplanung hat plötzlich eine intensive Debatte mit bunten Allianzen entfacht.\nLibertäre haben sich mit Umweltgruppen verbündet und sprechen sich dafür aus, dass die Regierung die kleinen Boxen zum Aufzeichnen der gefahrenen Kilometer – und möglicherweise auch, wo sie gefahren wurden – verwenden und die Informationen dann für die Berechnung von Steuerbescheiden einsetzen kann.\nDie Tea Party ist entsetzt.\nDie amerikanische Bürgerrechtsvereinigung (ACLU) ist ebenfalls zutiefst besorgt und äußert eine Reihe von Datenschutzbedenken.\nDoch während man sich im Kongress nicht auf ein Vorgehen einigen kann, warten mehrere Bundesstaaten nicht länger.\nSie prüfen derzeit, wie sie im Laufe der nächsten zehn Jahre zu einem System wechseln können, bei dem Fahrer pro gefahrener Meile bezahlen.\nTausende von Autofahrern haben die Fahrtenschreiber, von denen einige mit GPS-Überwachung ausgestattet sind, bereits getestet.\nDas ist wirklich ein Muss für unser Land.\n„Es ist nichts, das wir nur möglicherweise verwenden werden“, sagte Hasan Ikhrata, Geschäftsführer der Southern California Assn. of Governments, die eine Aufzeichnung der gefahrenen Meilen bei allen kalifornischen Autofahrern im Bundesstaat ab 2025 plant.\nDie Art und Weise, wie wir diese Steuern zahlen, wird sich verändern.\nDie Technologie dafür ist da.\nDie Initiative kommt zu einem Zeitpunkt, da der Highway Trust Fund, der aus den Steuern finanziert wird, die US-Amerikaner an der Zapfsäule entrichten, pleite ist.\nDoch in Amerika wird nicht mehr so viel getankt wie früher.\nAutos verbrauchen weniger Benzin.\nDie staatliche Mineralölsteuer von 18,4 Cent pro Gallone (weniger als 4 Eurocent pro Liter) ist seit 20 Jahren nicht gestiegen.\nPolitiker wagen bei hohen Spritpreisen nicht, die Steuer auch nur um einen Cent anzuheben.\n„Die Benzinsteuer ist einfach nicht zukunftsfähig“, so Lee Munnich, ein Experte für Verkehrsgesetzgebung an der Universität von Minnesota.\nSein Bundesstaat hat kürzlich 500 Autos mit Fahrtenschreibern ausgerüstet, mit denen ein meilenbasiertes Bezahlsystem getestet werden soll.\n„Das stellt die langfristig sinnvollste Alternative dar“, sagte er.\nBürokraten bezeichnen es als meilenbasierte Benutzergebühr.\nEs überrascht nicht, dass die Idee bei städtischen Liberalen Anklang findet, denn die Steuer ließe sich beispielsweise dazu einsetzen, das Fahrverhalten so zu beeinflussen, dass Staus und klimaschädliche Abgase reduziert werden.\nDie kalifornischen Planer setzen auf das System bei der Ausarbeitung von Strategien, mit denen die ambitionierten, gesetzlich verankerten Ziele des Bundesstaats zum Klimawandel erreicht werden sollen.\nDoch der Republikaner Bill Shuster aus Pennsylvania, Vorsitzender des House Transportation Committee, hat ebenfalls erklärt, dass er darin die gangbarste langfristige Alternative sehe.\nAuch die freien Vermarkter der Reason Foundation sind von der Idee angetan, Fahrer nach zurückgelegter Strecke zahlen zu lassen.\n„Das ist keine Steuer, die in einem schwarzen Loch verschwindet“, erklärt Adrian Moore, Vizepräsident für Richtlinien bei Reason.\nDie Leute bezahlen direkt für das, was sie bekommen.\nDie Bewegung wird auch von zwei früheren amerikanischen Verkehrsministern unterstützt, die in einem Bericht im Jahr 2011 den Kongress aufgefordert hatten, sich in Richtung meilenbasierter Abrechnung zu bewegen.\nDer US-Senat genehmigte letztes Jahr ein 90 Millionen Dollar teures Pilotprojekt, das 10.000 Autos umfasst hätte.\nDoch die Mehrheit im Repräsentantenhaus verhinderte den Vorstoß und reagierte damit auf die Bedenken von Abgeordneten aus ländlichen Gebieten, die Menschen vertreten, die im Alltag oft viele Meilen auf dem Weg zur Arbeit oder in die Stadt zurücklegen müssen.\nMehrere Bundesstaaten und Großstädte bewegen sich nichtsdestotrotz auf eigene Faust in diese Richtung.\nAm engagiertesten ist Oregon, das derzeit 5.000 Fahrer für das größte Experiment des Landes anwirbt.\nDiese Fahrer werden bald die Meilengebühren statt der Mineralölsteuer an den Bundesstaat zahlen.\nNevada hat bereits ein Pilotprojekt abgeschlossen.\nNew York City erwägt ebenfalls ein solches.\nIllinois testet es in eingeschränktem Maße mit Lkws.\nUnd die I-95-Koalition, zu der die Verkehrsministerien von 17 Bundesstaaten an der Ostküste gehören (einschließlich Maryland, Pennsylvania, Virginia und Florida), untersucht derzeit, wie man die Änderung einführen könnte.\nDas Konzept ist kein universeller Hit.\nIn Nevada, wo vor kurzem 50 Freiwillige mit den Geräten ausgestattet wurden, waren Autofahrer skeptisch beim Gedanken, die Regierung könnte jede ihrer Bewegungen verfolgen.\n„Bedenken gegen Big Brother und derartige Dinge waren ein großes Problem“, erklärt Alauddin Khan, Leiter des Strategie- und Ergebnismanagements im Verkehrsministerium von Nevada.\nDie Leute wollten es nicht.\nAls der Test anlief, warnte die ACLU von Nevada auf ihrer Website: „Es wäre relativ einfach, die Fahrtenschreiber in ausgewachsene Überwachungsgeräte zu verwandeln.“\nEs bestehe keine Notwendigkeit, eine gigantische, sperrige technologische Infrastruktur aufzubauen, die unweigerlich dazu verwendet werden würde, Daten über die täglichen Bewegungen von Einzelpersonen zu erfassen.\nNevada gehört zu einer Reihe von Bundesstaaten, die nun nach erschwinglicher Technologie Ausschau halten, mit der der Staat die gefahrenen Kilometer erfassen kann, aber nicht genau wann und wo.\nDamit, so Khan, wäre auch die Öffentlichkeit beruhigter.\nDie Jagd nach dieser Technologie hat einige Behörden zu einem kleinen Startup-Unternehmen namens True Mileage in Kalifornien geführt.\nDie Firma ist ursprünglich nicht angetreten, um Bundesstaaten bei der Besteuerung von Autofahrern zu helfen.\nVielmehr war es ihr Ziel, in einem aufstrebenden Markt für Kfz-Versicherungen Fuß zu fassen, bei denen Fahrer auf Grundlage der gefahrenen Meilen zahlen sollen.\nDoch die von ihr getesteten Geräte sind auch für die Straßenplaner interessant, denn sie arbeiten nicht mit GPS und liefern nur begrenzte Informationen, die regelmäßig per Modem hochgeladen werden.\n„Die Leute sind eher bereit, sich daran zu beteiligen, wenn ihre Geschwindigkeit und Standorte nicht aufgezeichnet werden“, erklärte Ryan Morrison, Geschäftsführer von True Mileage.\nIn einigen dieser öffentlichen Pilotprogramme wurden große Fehler gemacht.\nEs gibt wesentlich billigere und weniger intrusive Möglichkeiten, dies umzusetzen.\nIn Oregon experimentieren die Planer damit, Autofahrern eine Reihe von Auswahlmöglichkeiten zu geben.\nSie können sich für ein Gerät mit oder ohne GPS entscheiden.\nOder sie wählen überhaupt kein Gerät und zahlen stattdessen eine Pauschalgebühr auf Grundlage der durchschnittlich von allen Einwohnern des Bundesstaates gefahrenen Meilen.\nAndere Stellen hoffen, das Konzept einer misstrauischen Öffentlichkeit verkaufen zu können, indem sie die Geräte mit mehr Funktionen ausstatten als mit wenigeren.\nIn New York City wollen Verkehrsbeamte ein Gerät zur Besteuerung entwickeln, mit dem sich auch Parkgebühren bezahlen lassen, eine Versicherung nur für gefahrene Kilometer bezahlt werden muss und Geschwindigkeitsdaten von anderen Fahrzeugen in Echtzeit erhoben werden, dank derer Autofahrer Staus ausweichen können.\n„Autofahrer würden durch den Mehrwert der Vorteile, die das System bietet, zur Teilnahme motiviert“, heißt es in einem Planungsdokument der Stadt.\nEinige Verkehrsplaner fragen sich allerdings, ob das ganze Gerede über das Bezahlen pro Meile nicht nur ein riesiges Ablenkungsmanöver sei.\nBei der Metropolitan Transportation Commission für das Gebiet der San Francisco Bay erklärten Beamte, der Kongress könne das Problem des bankrotten Highway Trust Fund einfach durch Erhöhung der Kraftstoffsteuer lösen.\nEine zusätzliche einmalige Gebühr oder eine jährliche Abgabe könnte Autofahrern mit Hybridfahrzeugen oder anderen Fahrzeugen, die wenig Benzin verbrauchen, auferlegt werden, sodass auch diese einen fairen Anteil zahlen.\n„Es gibt keinen Grund für eine Operation, wenn ein Aspirin auch ausreicht“, erläutert Randy Rentschler, der Leiter für Gesetzgebung und öffentliche Angelegenheiten der Kommission.\nWenn wir das tun, machen sich Hunderte Millionen von Autofahrern sorgen über ihre Privatsphäre und zahlreiche andere Dinge.\nKönigsfeld: Kleine Mannschaft schlägt sich wacker\nDie Freiwillige Feuerwehr bewältigte ihre Herbsthauptprobe trotz Personalmangels mit Bravour.\nNur elf Mann nahmen an der Übung teil.\nAbteilungskommandant Hans Kammerer hatte sich in seiner Übungsannahme das Anwesen Feder in der Burgberger Straße ausgesucht.\nDort soll beim Sägen ein Kurzschluss entstanden sein.\nDurch den entstehenden Brand und die Rauchentwicklung wurden zwei Menschen verletzt, einer davon konnte aber noch einen Notruf absenden.\nZwei Atemschutzträger der Wehr machten sich nach der ersten Überprüfung der Sachlage durch Hans Kammerer bereit, das Gebäude zu betreten.\nNach kurzer Zeit gelang es, die erste Person zu finden und ins Freie zu geleiten.\nDie zweite Person musste getragen werden.\nDies war nicht so einfach, da auch eine enge Treppe zu überwinden war.\nDas Gebäude, eine Werkstatt mit integrierter Stallung für zwei Pferde, war nicht einfach zu sichern.\nEs lagerte viel Holz und auch Strohballen darin.\nWeiter gab es noch elektrische Maschinen zur Holzbearbeitung.\nDer erste Löschangriff erfolgte über den Tank im Fahrzeug.\nEine weitere Leitung erfolgte über einen Überflur- Hydranten in rund 100 Meter Entfernung.\nNun konnten drei Löschangriffe gestaltet werden.\nZum Einsatz kam auch im Gebäude ein Hohlstrahlrohr.\nHans Kammerer ging es bei der Übung auch darum aufzuzeigen, was mit wenig zur Verfügung stehendem Personal zu bewerkstelligen ist.\nIm Ernstfall erfolgt eine Unterstützung über die Tageseinsatzgruppe Königsfeld.\nDer Kommandant zeigte sich mit dem Ablauf der Übung zufrieden.\nVernetzung von Hochschulen und Firmen wichtig\nAuf seinem Besuch im Landkreis Breisgau-Hochschwarzwald ließ sich Landtagspräsident Guido Wolf auch in Titisee-Neustadt darüber aufklären, woher die Arbeitskräfte von morgen kommen.\nIm Förderzentrum Hochschwarzwald ging er zusammen mit den Geschäftsführenden Schulleitern der Beruflichen Schulen sowie des Kreisgymnasiums und den Elternbeiratsvorsitzenden dieser wichtigen Frage nach.\n\"Bildung ist ein wichtiger Standortfaktor\", unterstrich Claudia Stehle, Direktorin der Hans-Thoma-Schule, die das vernetzte Schulprojekt Bildungszentrum Hochschwarzwald vorstellte.\nDabei zeigte sich Wolf beeindruckt über die Modellprojekte zur Ausbildung.\nSeit 2011 existiert in der Wälderstadt eine erfolgreiche Zusammenarbeit zwischen Förderzentrum, Kreisgymnasium und Berufsschulzentrum.\nAußerdem lobte er die Familienfreundlichkeit im Landkreis.\n\"Es ist wichtig, nicht nur die Familienphase im Blick zu haben, sondern aufgrund des demografischen Wandels auch die Phase um die Pflege der Betreuung von Angehörigen\", erklärte Wolf.\nAußerdem führte er an, dass sich immer mehr Beschäftigte um die Pflege und Betreuung ihrer Angehörigen kümmerten.\n\"Ohne die Unterstützung der Arbeitgeber kann die daraus resultierende Belastung der Beschäftigten zu einer Beendigung des Arbeitsverhältnisses führen\", sagte Wolf.\nAber niemand könne es sich leisten, qualifizierte Arbeitskräfte zu verlieren, sagte er weiter.\nEin weiterer, besonders wichtiger Faktor sei die Vernetzung von Hochschulen und Unternehmen.\n\"Denn wer schon während seines Studiums die Vorzüge der Region kennengelernt hat, bleibt mit seinem erworbenen Wissen und seinen Fähigkeiten oft der regionalen Wirtschaft erhalten, was zur Stärkung der Region beiträgt\", zeigte sich der Landtagspräsident überzeugt.\nDenn nur wenn ausreichend Ausbildungsplätze angeboten würden, könne auch der Fachkräftebedarf gedeckt werden.\nSeiner Meinung nach ist der Standortvorteil des Landkreises seine vorteilhafte Lage im Südwesten Deutschlands, in unmittelbarer Nähe zu Frankreich und zur Schweiz.\nAußerdem erlebte er auf seiner Bahnfahrt von Titisee-Neustadt nach Freiburg die bereits unternommenen Anstrengungen für den Ausbau des öffentlichen Personennahverkehrs.\n\"Bleiben Sie weiterhin hartnäckig und sorgen Sie dafür, dass der öffentliche Nahverkehr besser wird\", erklärte er an die Adresse der anwesenden Kommunalpolitiker.\nMit Musik einen unterhaltsamen Nachmittag erlebt\nBereits seit 15 Jahren lädt die Familie Kaul die Dietinger Senioren zu Kaffee, Kuchen und danach zu einem Vesper ein.\nFrüher wurden die älteren Mitbürger in der Raststätte bewirtet.\nMittlerweile findet dieser Nachmittag im Pflegeheim St. Josef statt.\nDie Heimbewohner freuten sich auf die leckeren Kuchen und Torten.\nSpäter gab es Wurstsalat.\nMit gängigen Melodien unterhielten Silvia Kimmich-Bantle und ihr Vater Karl Kimmich.\nDie über 100 Jahre alte Natursteinmauer als vordere Abgrenzung des vor der Sanierung stehenden alten Schulhofes zur Kirchstraße soll erneut mit auf den Sanierungskostenplan der Stadt Bräunlingen gesetzt werden.\nIn den Tagen vor der Kilbig wurde bei den ersten Arbeiten der Sanierung des vorderen Schulhofes eine kleine Winkelmauer, zur Stabilisierung und statischen Entlastung der über einhundert Jahre alten Natursteinwand mit Balustrade eingebaut.\nDas weitere Vorgehen sieht vor, so Alexander Misok vom Bräunlinger Stadtbauamt, das Landesdenkmalamt in die Planungen mit einzubeziehen und ein Sanierungskonzept für die alte Mauer zu erstellen.\nDanach soll eine Kostenberechnung durch Fachleute vorgenommen werden, die dann dem Gemeinderat zur Entscheidung und Festlegung des weiteren Vorgehens auf den Tisch gelegt werden soll.\nEine Entscheidung darüber wird voraussichtlich bereits im kommenden Jahr fallen.\nNach der Sanierung, Pflasterung und Baumbepflanzung des alten Schulinnenhofes innerhalb der beiden Seitenflügel der 1912 erbauten Schule muss in absehbarer Zeit als Folgemaßnahme, die sanierungsbedürftige Begrenzungsmauer von Grund auf saniert und auf neuen Unterbau gestellt werden.\nDie historische, einhundert Jahre alte Abgrenzungsmauer des alten Schulhofes zur Kirchstraße, ist vor allem durch Wasser- und Frostschäden, da keine Drainage vorhanden ist, sanierungsbedürftig und hat eine Bogenneigung nach vorne.\nTiefe Risse in einzelnen Steinen zeugen von Witterungsschäden, jedoch ist die Mauer derzeit nicht einsturzgefährdet.\nEine standsichere Mauer ist Voraussetzung für einen von Schülern benutzen Schulhof, was durch die aktuellen Befestigungsarbeiten erfolgt ist.\nUrsprünglich war die Schulhofsanierung sogar schon in den Jahren 2008/2009 geplant, doch hohe unplanmäßige Ausgaben brachten eine Verschiebung.\nEin wichtiges Wort bei der historischen Schulmauersanierung, die sogar schon für Filmaufnahmen benutzt wurde, wird das Landesdenkmalamt mitsprechen.\nSollten Vorgaben von dieser Seite kommen, dann hofft die Stadt Bräunlingen auf Zuschüsse von den Denkmalschützern.\nDie Schüler der Bräunlinger Grundschule, die inzwischen wieder in einem gut sanierten alten Schulgebäude mit neuer Aula unterrichtet werden, können bald den alten Schulhof benutzen.\nÖzdemir will Jazzausbildung in Stuttgart erhalten\nIn die anhaltenden Diskussionen um die Zukunft der Musikhochschulen in Baden-Württemberg hat sich nun auch Cem Özdemir, Bundesvorsitzender der Grünen, eingeschaltet.\n\"Ich halte es für falsch, die ganzheitliche Ausbildung in der Musikhochschule Stuttgart aufzugeben\", sagte Özdemir den \"Stuttgarter Nachrichten\".\nJazz und Klassik gehören gerade am Jazzstandort Stuttgart zusammen.\nDamit widerspricht Özdemir, der in Stuttgart als Favorit für ein Direktmandat bei der Bundestagswahl am 22. September gilt, der Grün-Roten Landesregierung.\nDiese forciert auf der Basis einer Expertenstudie eine Neuordnung der fünf Musikhochschulen in Baden-Württemberg.\nDanach soll unter anderem der Studiengang Jazz und Pop von der Musikhochschule Stuttgart an die Musikhochschule Mannheim verlagert werden.\nUS-Grenze: \"Super-Tunnel\" zum Drogenschmuggel entdeckt\nAn der Grenze zwischen Mexiko und den USA haben Ermittler einen \"Super-Tunnel\" zum Drogenschmuggel entdeckt und stillgelegt.\nWie die US-Zollbehörden mitteilten, war die mehr als 500 Meter lange Röhre zwischen Tijuana und San Diego mit Elektrizität, Bahngleisen und einer Belüftungsanlage ausgestattet.\nDrei Verdächtige wurden demnach festgenommen, acht Tonnen Marihuana sowie fast 150 Kilogramm Kokain beschlagnahmt.\nDer Tunnel war den Angaben zufolge noch nicht in Gebrauch genommen worden.\n\"Diese Kartelle sind dumm, wenn sie meinen, sie könnten sich unter dem Radar hinweg durchgraben\", sagte die Generalstaatsanwältin des US-Distrikts Southern California, Laura Duffy, bei einer Pressekonferenz vor einem Lagerhaus in San Diego, wo das eine Ende des Tunnels entdeckt worden war.\nAn die Drogenbanden gewandt versicherte Duffy: \"Wenn Ihr weiter solche Tunnel baut und versucht, sie zu nutzen, sind wir entschlossen, das zu einer riesigen Verschwendung Eures schmutzigen Geldes zu machen\".\nSowohl die US-Behörden als auch die mexikanischen Sicherheitskräfte befinden sich in einem Dauer-Kampf gegen die Drogenkartelle.\nSeit 2006 wurden in Mexiko mehr als 77. 000 Menschen im Zusammenhang mit der Drogenkriminalität getötet.\nVon Experten konstruiert\nWegen der aufwendigen Ausstattung des Tunnels gehen die Ermittler davon aus, dass er von Architekten und Ingenieuren konstruiert wurde und dass der Bau rund ein Jahr in Anspruch nahm.\nDie Gleisanlage war so ausgestattet, dass dort elektrisch betriebene Wagen eingesetzt werden konnten.\nAuf mexikanischer Seite liegt der Zugang in einem Gebäude, das 80 Meter von der Grenze entfernt ist.\nLaut Behörden führt eine Leiter 20 Meter in die Tiefe zum eigentlichen Tunneleingang.\nDer Tunnel hat einen Querschnitt von 1,20 Meter Höhe und 90 Zentimeter Breite.\nEr wäre damit auch geeignet gewesen, um die illegale Einwanderung Richtung USA zu fördern.\nZwei der Verdächtigen wurden in Zusammenhang mit dem Kokain-Fund festgenommen.\nDer Dritte, ein Mexikaner, wurde wegen des beschlagnahmten Marihuanas gefasst.\nAllen dreien droht als Höchststrafe lebenslanger Freiheitsentzug, wie Beamte sagten.\nSeit 2006 seien acht derartige Tunnel entdeckt worden, hieß es auf der Pressekonferenz in San Diego weiter.\nEs sei aber das erste Mal, dass in einem solchen Tunnelbau Kokain gefunden wurde.\nNormalerweise wird Kokain in kleineren Mengen und nicht durch Tunnel geschmuggelt.\nDies zeige die \"Verzweiflung\" der Drogenbanden, deren traditionelle Routen inzwischen abgeschnitten seien, sagte Bill Sherman von der Drogenfahndung DEA in San Diego.\nSie würden alles tun, um in die USA zu gelangen.\nZu den Festgenommenen wurden keine Einzelheiten bekannt gegeben, zumindest einer sei Mexikaner, hieß es.\nSie müssen mit Haftstrafen bis zu zehn Jahren rechnen.\n2014 wird Geisinger Festjahr\nDas Jubiläum der Stadt Geisingen anlässlich der 1250.\nWiederkehr der ersten urkundlichen Erwähnung rückt immer näher.\nWenn in gut acht Wochen das Jahr zu Ende geht, steht das Jubiläumsjahr an.\nGeisingen und Kirchen-Hausen wurden 794 erstmals urkundlich zusammen erwähnt.\nIn Kirchen wurde eine Urkunde gefertigt, in der beide Orte erwähnt sind.\nAm 15. März soll es einen offiziellen Auftakt zum Jubiläumsjahr geben, und da Geisingen derzeit keine Halle hat, findet diese Auftaktveranstaltung in dem Ort statt, wo vor 1250 Jahren beide erstmals erwähnt wurde, in Kirchen-Hausen.\nIm Rahmen des Jubiläums sind etliche Veranstaltungen sowohl in Geisingen, als auch in Kirchen-Hausen geplant.\nKirchen-Hausen wird im Juli an einem Festwochenende vom 18. bis 20. Juli die 1250.\nWiederkehr feiern.\nAm Freitag mit einem Festakt, am Samstag und Sonntag mit einem Fest rund um die Kirchtalhalle.\nAn diesem Festwochenende ist außerdem noch das Kirchen-Hausener Kirchenfest.\nStadtmusikdirektor Rudolf Barth hat für die Stadt anlässlich des Jubiläums eine Auftragskomposition geschrieben, die an drei Terminen aufgeführt wird.\nAm 21. Juni zusammen mit der Sonnwendfeier des Schwarzwaldvereins, am 12. Juli in der Arena mit Feuerwerk und am 13. Dezember als erstes Konzert der Stadtmusik in der neuen Festhalle.\nDiese wird im Jubiläumsjahr fertig und eingeweiht, der offizielle Termin ist am letzten Septemberwochenende, am 27. und 28. September.\nAnlässlich des Geisinger Stadtjubiläums wird auch noch eine neue Chronik herausgebracht.\n\"Es soll aber eine Chronik nicht nur von Geisingen selbst werden, sondern ein gedrucktes Werk über das Geisingen von heute, das eben aus Geisingen, Kirchen-Hausen, Leipferdingen, Aulfingen und Gutmadingen besteht\", so Bürgermeister Walter Hengstler.\nUnd auch das Geisingen von heute feiert 2014 Geburtstag, 1974 wurde die heutige Raumschaft mit den Eingemeindungen vollzogen.\nDie neue Chronik soll dann am 21. oder 22. November in der neuen Festhalle in Geisingen vorgestellt werden.\n2014 ist aber auch sonst ein Jahr mit vielen Jubiläen.\nDie Narrenzunft Strohglonki beginnt am 8. Februar mit einem Brauchtumsabend anlässlich ihres 60-jährigen Bestehens, die Harmonie Gutmadingen wird 90 Jahre und hat am 29. März das Festbankett und feiert dann vom 1. bis 4. Mai das Bezirksmusikfest.\nDas Altenwerk Leipferdingen wird 40 Jahre alt, die Geisinger Schule ist seit 50 Jahren am neuen Standort und feiert dies am 10. Mai, der Musikverein Polyhymnia Leipferdingen wird 150 Jahre alt und feiert dies im Rahmen des Brunnenfestes vom 4. bis 7. Juli.\nDie Stadt Geisingen wurde in einer Schenkungsurkunde, die im Besitz des Klosters St. Gallen ist, im Jahre 764 erstmals urkundlich erwähnt.\nDie Urkunde wurde in Kirchen (Hausen) gefertigt, das damals Gerichtsplatz war.\nBeide Gemeinden sind demnach in der gleichen Urkunde erwähnt.\nGrund 2014 dieses 1250-jährige entsprechend zu feiern, zusätzlich liegt auch noch die Gemeindereform 40 Jahre zurück.\nRat nimmt Gleisanlagen ins Visier\nSoll der Bahnübergang \"Am Hirschen\" aufwändig umgebaut werden, um die Verkehrssicherheit zu erhöhen?\nJa, haben die Gemeinderäte beschlossen.\nSchiltach muss dafür 220 000 Euro in die Hand nehmen.\nDie Deutsche Bahn will im kommenden Jahr die Kinzigtal-Bahnstrecke verbessern.\nBesonders soll dabei die Sicherheit an Bahnübergängen erhöht werden - regelmäßig kommt es bundesweit zu Kollisionen von Zügen mit anderen Fahrzeuge.\nStimmen die Gemeinden den Umbaumaßnahmen zu, müssen sie sich mit einem Drittel an den Kosten beteiligen, den Rest teilen sich Bahn und Bund.\nSchiltachs Stadtbaumeister Roland Grießhaber erläuterte dem Gemeinderat die Besonderheiten des Bahübergangs \"Am Hirschen\".\nDort plant die Stadt, in Höhe des dortigen Tunnelmundes westlich der Bahngleise eine Ausbuchtung zu bauen.\nDort könnten auch größere Fahrzeuge, zum Beispiel solche, die Langholz transportieren, bei Gegenverkehr stehen, ohne die Gleise blockieren zu müssen.\nGrießhaber schlug daher vor, eine erforderliche Stützmauer so zu konstruieren, dass die Stadt die anschließende Straße zu gegebener Zeit verbreitern könne, um einen reibungslosen Verkehrsfluss zu gewährleisten.\nDies wurde im Gemeinderat kontrovers diskutiert, da einige Räte die Notwendigkeit einer Straßenverbreitung in Zweifel zogen: Thomas Kipp brachte mit seiner Äußerung die Stimmung der Kritiker auf den Punkt: \"Müssen wir wegen so wenigen Fahrzeugen so viel Geld in die Hand nehmen?\"\nBürgermeister Thomas Haas widersprach: Der Bahnübergang \"Hirschen\" werde regelmäßig für Langholztransporte genutzt.\nSelbst Holz aus dem Bereich \"Kuhbach\" werde teilweise über diese Strecke transportiert, weil die bis zu 20 Meter langen Fahrzeuge die Strecke an der Häberlesbrücke nicht nutzen könnten, weil sie dort nicht in die Hauptstraße abbiegen könnten.\nDarüber hinaus diene die Strecke als Umleitungfür diejenigen Fahrzeuge, die den Tunnel nicht benutzen dürfen, wenn die Hauptstraße gesperrt ist, argumentierte Haas.\nDa abzusehen sei, dass Kirchberg- und Schlossbergtunnel umgebaut und saniert werden müssten, wie dies derzeit in Wolfach der Fall ist, könne dem Bahnübergang \"Am \"Hirschen\" auch für einen längeren Zeitraum eine wichtige Verkehrsbedeutung zukommen.\nDie Räte kamen überein, untersuchen zu lassen, welche Kosten die angedachte Verbreiterung der Straße verursachen würde.\nUngeachtet dessen wurde dem Umbau des Bahnübergangs mehrheitlich zugestimmt mit der Maßgabe, dass die erforderliche Stützmauer so gebaut wird, dass die Stadt die anschließende Straße Richtung \"Bahnhofstraße\" gegebenenfalls für Begegnungsverkehr auf rund 5,5 Meter ausbauen könne.\nDer Umbau des Bahnübergangs bei der Gerberei Trautwein könnte dagegen ein ganz anderes Problem nach sich ziehen, das die Zufahrt in den stark ansteigenden \"Geroltzhäuser Weg\" betrifft.\nDie Verwaltung hatte die Umbaupläne der Bahn vom Ingenieurbüro Breinlinger untersuchen lassen, da sie Zweifel daran hatte, ob der geplante Anschluss des Geroltzhäuser Wegs dann noch ohne weiteres möglich sei.\nDie Untersuchung kam zu dem Ergebnis, dass nicht auszuschließen sei, dass die Neigungsverhältnisse der Straße dazu führen könnten, dass längere Fahrzeuge aufsitzen.\nDie Verantwortung hierfür trage wiederum die Stadt als Straßenbaulastträgerin.\nDer Umbau könne demnach Haftungsstreitigkeiten nach sich ziehen.\nDa sowohl die Holzabfuhr als auch das Abbiegen im aktuellen Ausbauzustand funktionierten, solle man dem Umbau des Bahnübergangs nicht zustimmen, argumentierte Haas.\nAuch sei an dieser Stelle das Risiko einer Kollision des Zuges mit einem auf dem Übergang stehenden Fahrzeug deutlich geringer als an den anderen Bahnübergängen, weil sich direkt daneben der Haltepunkt Mitte befinde, zu dem eine gute Sichtverbindung bestehe.\nSelbst Züge vom Hauptbahnhof her müssten an dieser Stelle schon soweit abgebremst sein, dass keine Kollision drohe.\nMehrheitlich wurde dem Umbau dieses Bahnübergangs die Zustimmung verweigert, da die Stadt Schiltach das Problem mit aufsitzenden Fahrzeugen \"ausbaden müsste\", so die Räte, da sich die Bahn nach Abschluss der Bauarbeiten aus der Verantwortung zurückziehen könne.\nAls unproblematisch betrachtet das Gremium die Umbauten an den Bahnübergängen \"Vor Heubach\" und \"Vor Kuhbach\", für die bereits Kreuzungsvereinbarungen mit der Bahn getroffen wurden.\nEsa entscheidet über große Weltraummissionen: Missionen für Milliarden\nFerne Planeten, Gravitationswellen oder schwarze Löcher - Experten der europäischen Raumfahrtagentur müssen sich jetzt auf zwei Großprojekte einigen, die sie in den nächsten Jahren starten wollen.\n30 Vorschläge standen zur Auswahl, fünf sind noch im Rennen.\nFerne Welten.\nMehr als 1000 Planeten bei anderen Sternen haben Astronomen bereits gefunden.\nOb es zumindest auf einigen davon Leben gibt, weiß keiner.\nDie Auswahl fällt schwer: Soll man nach Gravitationswellen suchen?\nOder lieber den Ursprung des Kosmos erforschen?\nOder nach erdähnlichen Planeten fahnden und damit vielleicht außerirdisches Leben entdecken?\nDiese Fragen stellen sich gerade die Verantwortlichen der europäischen Raumfahrtagentur Esa.\nFür ihr Programm \"Cosmic Vision\" suchen sie Ideen für zwei große Raumfahrtprojekte, die die Forschung entscheidend voranbringen sollen.\nDer Etat für solche \"L-Missionen\" liegt jeweils etwa bei einer Milliarde Euro.\nDer Start wird voraussichtlich 2028 und 2034 sein.\nAnfang September traf sich in Paris die Elite der europäischen Weltraumforschung, um Vorschläge für solche Missionen zu diskutieren.\n30 Ideen standen zur Debatte, fünf davon sind nun in die engere Wahl gekommen.\nZahlreiche Gremien begutachten die Vorschläge, haken bei den Forschern nach.\nIn den nächsten Tagen soll eine endgültige Entscheidung durch das wissenschaftliche Programmkomitee fallen.\nInsgesamt vier große Fragen hat die Esa ausgewählt, auf welche die Missionen des 2007 initiierten Programms \"Cosmic Vision\" Antworten finden sollen.\nWas sind die Bedingungen für die Entstehung von Planeten und Leben?\nDie genauen Vorgänge bei der Entstehung von Sternen aus großen Gaswolken - und damit auch der Entstehung von Planeten, die diese Sterne umkreisen - liegen immer noch im sprichwörtlichen Dunkeln.\nEin großes Infrarotteleskop im All könnte dieses Dunkel durchdringen.\nUnd wenn ein Stern Planeten besitzt, unter welchen Umständen kann dort Leben entstehen?\nUm dieser Frage nachzugehen, soll 2017 das Weltraumteleskop \"Cheops\" starten, mit dem 500 bereits bekannte Planetensysteme in unserer näheren Umgebung genauer untersucht werden.\nDie Möglichkeiten sind aber begrenzt, Cheops ist eine kleine Mission mit einem Budget von 150 Millionen Euro.\nMit größeren Instrumenten könnten die Astronomen erdähnliche Planeten abbilden und sogar die Zusammensetzung ihrer Atmosphären analysieren und so nach \"Biomarkern\" suchen: Gasen, die als Indiz für biologische Aktivität gelten.\nWie funktioniert das Sonnensystem?\nAuch diese Frage soll letztlich Aufschluss darüber geben, welche Voraussetzungen es für die Entstehung von Leben gibt.\nEine wichtige Rolle spielt die magnetische Aktivität eines Sterns und die Wechselwirkung seines Magnetfelds sowie der von ihm ausgehenden Teilchenstrahlung mit dem Planetensystem.\nIn unserem Sonnensystem lassen sich diese Vorgänge exemplarisch untersuchen.\nMit dem \"Solar Orbiter\" hat die Esa bereits eine Mission der M-Klasse (dort liegt das Budget bei etwa einer halben Milliarde Euro) für diese Frage bewilligt.\nDie Sonde soll 2017 starten und Oberfläche und Aktivität der Sonne genau beobachten.\nVon großem Interesse für die Forscher sind auch Jupiter und seine Monde.\nSie wollen herausfinden, welche Rolle der Riesenplanet bei der Entwicklung des Sonnensystems gespielt hat.\nDafür sieht die Esa die erste der insgesamt drei L-Missionen des \"Cosmic Vision\"-Programms vor.\nDie Sonde \"Juice\" (Jupiter Icy Moons Explorer) beginnt ihre Reise voraussichtlich 2022.\nAcht Jahre später erreicht sie Jupiter und soll die Atmosphäre des Planeten sowie die eisigen Monde Europa, Kallisto und Ganymed untersuchen.\nWas sind die grundlegenden physikalischen Gesetze des Universums?\nDas Weltall bietet viele Möglichkeiten, Materie unter extremen Bedingungen zu studieren und so zu untersuchen, ob die uns bekannten Naturgesetze dort immer noch gültig sind.\nVielleicht finden sich auch Abweichungen, die den Physikern den Weg zu einer neuen Theorie weisen könnten, unter deren Dach sich alle bekannten Naturgesetze vereinen lassen.\nWie ist das Universum entstanden und woraus besteht es?\nVor 13,7 Milliarden Jahren entstand unser Kosmos durch den Urknall.\nNeben der uns geläufigen Materie, aus der Sterne, Planeten und Lebewesen wie wir bestehen, gibt es Dunkle Materie, deren Schwerkraft Galaxien und Galaxienhaufen zusammenhält, und Dunkle Energie, durch deren Wirken sich die Expansion des Weltalls beschleunigt.\nBislang wissen die Forscher weder, welche physikalischen Gesetze in den ersten Sekundenbruchteilen des Urknalls gültig waren, noch woraus Dunkle Materie und Dunkle Energie bestehen.\nMit \"Euclid\" hat die Esa auch hier bereits eine M-Mission bewilligt, deren Start für 2020 vorgesehen ist.\nMit einem speziellen Teleskop soll die Sonde die Verteilung der Materie im Universum erstmalig am gesamten Himmel untersuchen und so Rückschlüsse auf die Beschaffenheit von Dunkler Materie und Dunkler Energie ermöglichen.\nWer das Rennen machen könnte\nVon den 30 Vorschlägen werden am Ende des Auswahlverfahrens nur zwei übrig bleiben.\nDie besten Chancen auf eine Bewilligung als L-Mission hat nach Meinung vieler Experten \"E-Lisa\", ein anspruchsvolles Konzept zum Nachweis von Gravitationswellen.\nDarunter verstehen Physiker Änderungen in der Struktur der Raumzeit, die Albert Einstein vor fast 100 Jahren vorausgesagt hatte.\nNachgewiesen wurden sie bis heute nicht.\nElisa könnte das schaffen, hoffen die Wissenschaftler hinter dem Projekt.\nDie Mission sieht einen aus zwei oder drei Sonden bestehenden Detektor vor, der im All stationiert wird.\nEr könnte im Gegensatz zu Anlagen auf der Erde auch Gravitationswellen nachweisen, die beim Urknall entstanden sind, und so neue Erkenntnisse über die Entstehung des Kosmos liefern.\nVier weitere Vorschläge konkurrieren noch um die zweite L-Mission: ein großes Röntgenteleskop namens \"Athena\", das unter anderem schwarze Löcher erforschen soll, \"Icy Planets\", eine weitere Mission zu den äußeren Planeten des Sonnensystems, \"Prism\", eine Mission zur Vermessung der kosmischen Hintergrundstrahlung, und der \"Exoplanet Finder\", der erdähnliche Planeten aufspüren und untersuchen soll.\nBereits ausgeschieden sind unter anderem Vorschläge zum Proben-Rücktransport vom Mars, zur Erforschung von Mond, Venus und Asteroiden sowie zur Sonnenphysik.\nSnowden bereit, mit Deutschland in Bezug auf US-Überwachung zu „kooperieren“\nEdward Snowden, der Whistleblower des US-amerikanischen Geheimdienstes, hat erklärt, er sei bereit, nach Berlin zu reisen und vor dem deutschen Bundestag auszusagen, wenn die amerikanische National Security Agency und ihr Direktor Keith Alexander keine Antworten über ihre Aktivitäten geben.\nDer deutsche Abgeordnete Hans-Christian Ströbele traf Snowden am Donnerstag in Russland, wo dieser Asyl erhalten hat, um mit ihm die Aussage in Deutschland zu besprechen.\nIn einem Brief von Snowden, der am Freitag von Ströbele den Medien in Berlin präsentiert wurde, schreibt dieser: „Auch wenn das Ergebnis meiner Bemühungen nachweislich positiv war, behandelt meine Regierung eine abweichende Meinung weiterhin als Treuebruch und versucht, politische Meinungsäußerung mit Strafandrohung zu kriminalisieren, bei der keine Verteidigung möglich ist.“\nDie Wahrheit zu sagen ist aber kein Verbrechen.\nIn dem Brief schreibt Snowden, er sei davon überzeugt, dass die Unterstützung der internationalen Gemeinschaft die amerikanische Regierung davon überzeugen könne, die Anklage gegen ihn fallen zu lassen.\nDie vom US-Justizministerium erhobene Anklage umfasst Spionage und Diebstahl von Staatseigentum.\nDer deutsche Innenminister Hans-Peter Friedrich sagte gegenüber Zeit Online: „Wenn Herr Snowden bereit ist, mit deutschen Vertretern zu sprechen, dann finden wir Wege, das zu ermöglichen.“\nDie Beziehungen zwischen den USA und Deutschland sind durch die Behauptungen belastet, die NSA habe das Handy von Kanzlerin Angela Merkel abgehört.\nThomas Oppermann, der Abgeordnete, der den für den Geheimdienst zuständigen parlamentarischen Ausschuss leitet, erklärte, man solle die Gelegenheit ergreifen, Snowden als Zeuge anzuhören, wenn dies möglich sei, „ohne ihn zu gefährden und die Beziehungen zu den USA völlig zu ruinieren“.\nStröbele, ein Abgeordneter der Grünen, veröffentlichte ein Bild von sich und Snowden in seinem Twitter-Feed.\nEr wurde bei seinem Besuch in Russland von zwei deutschen Journalisten begleitet.\nStröbele erklärte, dass laut dem Anwalt des früheren NSA-Mitarbeiters Snowden nicht nach Russland zurückkehren könne, wenn er das Land verlasse.\nWenn Snowden in Deutschland aussage, dann benötige er eine Zusicherung, dass er dort „sicher“ sei, so der Abgeordnete.\nSnowden erklärt in seinem Brief, dass er sich einer „ernsthaften und fortlaufenden“ Verfolgungskampagne ausgesetzt sähe, die ihn aus seiner Heimat vertrieben habe.\nEr sei jedoch berührt von der weltweiten Reaktion auf „meinen Akt der politischen Meinungsäußerung“.\nBürger auf der ganzen Welt sowie hochrangige Politiker – auch in den Vereinigten Staaten – haben die Enthüllungen über ein unkontrolliertes System umfassender Überwachung als ein Verdienst an der Allgemeinheit bezeichnet.\nIn seinem Brief macht Snowden den deutschen Behörden ein Angebot der Zusammenarbeit, „wenn die Schwierigkeiten rund um die humanitäre Situation gelöst wurden“.\nFrontier Airlines erhebt Gebühren für Handgepäck\nFrontier Airlines plant, bis zu 100 US-Dollar von Passagieren zu verlangen, die auf ihrem Flug Handgepäck verstauen möchten.\nFrontier Airlines beabsichtigt, bis zu 100 US-Dollar für ein Stück Handgepäck und 2 Dollar für Kaffee oder Limonade zu berechnen, auch wenn in der Ankündigung am Mittwoch zu lesen war, dass Passagiere die ganze Dose behalten dürften.\nDie neue Gebühr gilt für Handgepäck im Gepäckfach über dem Sitz, kleine Taschen unter dem Sitz sind weiterhin kostenlos.\nFrontier erklärte, man berechne 25 US-Dollar, wenn die Gebühr im Voraus bezahlt werde, und 100 US-Dollar bei Reisenden, die erst am Flugsteig zahlten.\nFrontier-Sprecherin Kate O'Malley sagte, die Gebühr von 100 US-Dollar ziele darauf ab, Reisende zu bewegen, sich im Vorfeld um die Zahlung zu kümmern.\n„Wir möchten diese Summe nicht berechnen“, erklärte sie.\nFluggesellschaften begannen 2008 damit, für das erste und zweite aufgegebene Gepäckstück Gebühren zu verlangen.\nPassagiere, die versuchten, diese zu umgehen, haben deshalb soviel wie möglich ins Handgepäck gestopft, was zur Folge hat, dass die Gepäckfächer über dem Sitz häufig überfüllt sind.\nGebühren sind eine Möglichkeit, Passagiere dazu zu bewegen, weniger mit an Bord zu nehmen.\nO'Malley sagte, bei der neuen Gebühr gehe es nicht wirklich darum, Geld zu verdienen.\nEs gehe um die treuesten Kunden von Frontier, die deutlich zum Ausdruck gebracht hätten, dass es immer schwerer werde, Platz im Fach über dem Sitz zu finden.\nPassagiere, die Ihre Tickets auf der Website der Fluggesellschaft kaufen, müssen nicht bezahlen.\nDas bedeutet, dass ein Passagier am Flugsteig von Frontier unter Umständen ein Gepäckstück kostenlos mitnehmen darf, die nächste Person aber 100 Dollar für ein vergleichbares Gepäckstück bezahlen muss.\nO'Malley erklärte, die Website von Frontier und die Check-in-Verfahren würden geändert, sodass die Passagiere über die Gebühr informiert seien, ehe sie zum Flugsteig kämen.\nDie neue Handgepäckgebühr von Frontier tritt erst im Sommer in Kraft, ein genaues Datum gibt es noch nicht.\nPassagiere schimpfen häufig über Gepäckzuschläge und andere Gebühren, doch Fluggesellschaften greifen gern darauf zurück.\nSie argumentieren, dass der Transport des Gepäcks Geld koste und Passagiere diesen Service bezahlen sollten, wenn sie ihn wünschten.\nViele an der Wall Street betrachten die neuen Gepäckgebühren als Zeichen dafür, dass die Fluggesellschaften genug Geld einnehmen, um nach Jahren der Verluste die Kosten von Flugreisen zu decken.\nDie meisten lassen bislang jedoch die Finger von Gebühren für Handgepäck.\nSpirit Airlines Inc. verlangte vor drei Jahren als Erste Gebühren für Handgepäck und später folgte Allegiant Air, ebenfalls ein Billigflieger.\nDie einzige andere Fluggesellschaft mit einer derartigen Gebühr sei die ungarische Wizz Air, erklärte der Airline-Berater Jay Sorensen, der die Zusatzgebühren aufmerksam verfolgt.\nEr schätzte in einem Bericht vom Dezember 2011, dass die Handgepäckgebühr Spirit jährlich 50 Millionen US-Dollar einbringe.\nSorensen, der früher eine Führungsposition bei Midwest Airlines innehatte, ist kürzlich mit Spirit geflogen und war neugierig, was ihm am Flugsteig erwarten würde, wenn Passagiere mit der ungewöhnlichen Handgepäckgebühr des Unternehmens konfrontiert würden.\n„Der Boarding-Prozess gehörte zu den reibungslosesten, die ich in meiner Laufbahn in der Luftfahrt erlebt habe“, sagte er.\nIch erwartete, Zähneknirschen und handgreifliche Diskussionen am Flugsteig zu sehen.\n„Das Flugzeug war voll“, erklärte er, „und das Boarding lief wie geschmiert.“\nFrontier folgt Spirit auch bei den 2 Dollar, die für Kaffee, Tee, Limonade oder Saft verlangt werden.\nDas Unternehmen erklärte, dass Passagiere, die Limonade oder Saft kauften, die ganze Dose behalten dürften und Kaffee gratis nachgefüllt werde.\nWasser ist weiterhin kostenlos.\nUS Airways hatte 2008 kurzzeitig versucht, für Erfrischungsgetränke Geld zu verlangen, machte dies aber sieben Monate später wieder rückgängig, nachdem sich Passagiere beschwert hatten und keine andere große Gesellschaft nachgezogen war.\nFrontiers Schritt, Gebühren für das Handgepäck zu erheben, wenn Passagiere nicht direkt bei der Fluggesellschaft kaufen, ist die jüngste Initiative, mit der Kunden auf die eigene Website gelenkt werden sollen.\nFluggesellschaften bezahlen Online-Reisebüros wie Orbitz 10 bis 25 US-Dollar pro verkauftem Ticket.\nDas liefert allen Gesellschaften einen Anreiz, Passagiere zum Direktkauf bei ihnen zu bewegen statt über ein Online-Reisebüro.\nFrontier ist in diesem Bereich allerdings am weitesten gegangen.\nIm September begann das Unternehmen damit, bei Buchung über ein Online-Reisebüro nur noch halb so viele Vielfliegermeilen zu vergeben.\nAm Mittwoch wurden die Meilen noch einmal auf 25 Prozent der Flugstrecke gekürzt.\nEine bei einem Drittanbieter gebuchte Flugreise mit Frontier über 1000 Meilen bringt Kunden deshalb nur noch 250 Meilen ein.\nPassagiere können auch ausschließlich beim Direktkauf auf der Website von Frontier Plätze reservieren.\nFrontier verfügt über einen treuen Kundenstamm an seinem Sitz in Denver, doch das Geschäft schrumpft und das Unternehmen verliert Geld.\nDer Erlös ging um 9 Prozent zurück und die Flugkapazität schrumpfte knapp 13 Prozent im ersten Quartal, wie im Finanzbericht zu lesen ist, der am Mittwoch von dem Mutterkonzern, Republic Airways Holdings Inc., veröffentlicht wurde.\nRepublic hat versucht, im Rahmen des Verkaufs der Gesellschaft die Finanzen von Frontier in den Griff zu bekommen.\nSprichwörter kommen aus der Bibel\nGut 40 Frauen besuchten das letzte Frauenfrühstück dieses Jahres in der evangelischen Kirchengemeinde Bisingen.\nThema des Tages im Gemeindehaus waren \"Sprichwörter aus der Bibel\" und \"Redewendungen aus dem Mittelalter\".\nZita Köhler, die Vorsitzende des Kirchengemeinde- rats, ging nach dem Frühstück in einem Vortrag auf die biblischen Sprichwörter ein.\n\"Sprichwörter enthalten Lebensweisheiten, Vorschriften oder Warnungen\", erklärte sie.\nSie verglich mehrere Sprichwörter mit den entsprechenden Bibelstellen und erklärte die Bedeutung.\nSie nannte Sprichwörter wie: Holzauge sei wachsam, wie Schuppen von den Augen fallen, ein Auge auf jemand werfen, den Seinen gibt's der Herr im Schlaf, seine Hände in Unschuld waschen.\nMehrmals ließ die Referentin ihre Zuhörer auch raten, um welches Sprichwort es sich handelte.\nDer Redewendungen aus dem Mittelalter nahm sich die Kirchengemeinderätin Christel Dehner an: Aller guten Dinge sind drei, blau machen, etwas verhauen.\nSie erklärte Bedeutung und Herkunft der Redewendungen, die sie \"Brücken in die Vergangenheit\" nannte.\nZum Abschluss wurde eine Tombola verlost.\nDie Preise lagen zugedeckt auf einem Tisch und wurden humorvoll umschrieben, bevor sie an die Gewinner übergeben wurden.\nUnter die Besucherinnen der Frühstücksrunde mischte sich auch Bürgermeisterkandidat Roman Waizenegger.\nLernen statt arbeitslos: Pilotprojekt für Ungelernte im Tourismus\nAn der Mecklenburgischen Seenplatte startetheute ein Pilotprojekt für die Tourismusbranche.\nUnter Führung der Bundesarbeitsagentur sollen 49 Frauen und Männer, die bereits als Ungelernte in der Branche arbeiten, über drei Winter hinweg zu Fachkräften für Hotels und Gaststätten qualifiziert werden.\n\"Neu daran ist, dass die sechsmonatigen Kurse mit Abschlüssen enden\", sagte Carmen Wiechert von der Arbeitsagentur Neubrandenburg.\nDer Nutzen sei vielfältig: Die Teilnehmer würden dadurch nicht arbeitslos, die Firmen bekämen geschulte Fachkräfte, die immer stärker in Hotels und Gaststätten fehlten, und die Agentur müsse nicht Arbeitslosigkeit finanzieren.\nAn dem Projekt sind auch die Industrie- und Handelskammer in Neubrandenburg sowie der Deutsche Hotel- und Gaststättenverband (Dehoga) Mecklenburg-Vorpommern beteiligt.\nNSA erklärt, ein „interner Fehler“ und nicht Hacker seien Schuld am Crash der Website\nDie schattenhafte National Security Agency erklärte am späten Freitag, ein Fehler habe ihre öffentliche Website einige Stunden lahmgelegt und nicht Hacker, wie online behauptet wurde.\n„NSA.gov war heute Nacht einige Stunden lang nicht erreichbar, da während eines geplanten Updates ein interner Fehler aufgetreten ist“, erläuterte die Spionageagentur in einer per E-Mail versandten Meldung.\nDas Problem werde an diesem Abend behoben.\nDie Behauptung, der Ausfall sei durch einen verteilt ausgeführten Denial of Service-Angriff (DDoS) verursacht worden, sei nicht wahr.\nIn den frühen Abendstunden war Online-Server-Trackern aufgefallen, dass die NSA-Website mindestens sechs Stunden lang nicht erreichbar war und dies für manche Nutzer auch weiterhin nicht ist.\nZuvor hatte ein Sprecher der NSA gegenüber ABC News erklärt, das sensible interne Netzwerk der Behörde sei „in keiner Weise“ kompromittiert.\nGeheime Informationen seien nicht in Gefahr, so der Sprecher.\nMindestens eine Gruppe von Hacktivisten nahm für sich in Anspruch, die NSA-Website mit einem DDoS-Angriff lahmgelegt zu haben.\nBei derartigen Angriffen wird die Zielwebsite mit Seitenaufrufen überflutet, bis die Server überlastet sind und die Website zusammenbricht.\nDie Cybertaktik ist relativ simpel und die Angriffe dienen nicht dazu, in das interne Netzwerk des Zielsystems einzudringen.\nDie früher supergeheime NSA, deren Spitzname einst No Such Agency (Keine solche Behörde) lautete, findet sich inzwischen im hellen Licht der Öffentlichkeit und sieht sich nach den in den letzten Monaten bekannt gewordenen Enthüllungen über ihr ausgedehntes Überwachungsprogramm im In- und Ausland scharfer Kritik ausgesetzt – ein Resultat der geheimen NSA-Daten, die vom desillusionierten ehemaligen NSA-Mitarbeiter Edward Snowden gestohlen und veröffentlicht wurden.\nDie wachsende Kontroverse um den Geheimdienst befeuerte anfängliche Spekulationen darüber, der Zwischenfall heute sei das Ergebnis einer gezielten Cyperoperation.\nLeicht gesunken ist die Zahl der Menschen ohne Job im Oktober um 22 auf 1.307.\nZwar sei die Quote mit 3,1 Prozent besser als vergangenes Jahr und auch besser als im September, \"wir hätten uns aber mehr erhofft\", sagt Monika Felder-Bauer, stellvertretende Geschäftsstellenleiterin der Agentur für Arbeit in Sonthofen.\nDenn zahlreiche Betriebe reagierten bislang verhalten bei Einstellungen.\nEin Grund hierfür ist laut Felder-Bauer: \"Wir haben kaum Fachkräfte im Handwerk, im Gesundheitswesen und in der Altenpflege\".\nJahreszeitenbedingt laufen seit September auch wieder Stellenangebote für Personal im Hotel- und Gaststättengewerbe ein.\nMitte Dezember beginnt dort die Wintersaison.\nDen ganzen Hintergrundbericht dazu finden Sie im Allgäuer Anzeigeblatt vom 31.10.2013 (Seite 33).\nGewinneinbußen bei Bombardier nach Rückgang bei Lieferzahlen und Aufträgen\nDer kanadische Flugzeug- und Eisenbahnhersteller Bombardier Inc meldete am Donnerstag einen 15-prozentigen Rückgang des Nettogewinns, nachdem er durch rückläufige Bestellungen und Auslieferungen bei Flugzeugen im dritten Quartal sowie Vertragsprobleme in der Eisenbahnsparte unter Druck geraten war.\nBombardier mit Sitz in Montreal veröffentlichte auch keine Flugtestdaten für sein brandneues Flugzeug der CSeries und erteilte keine neuen Auskünfte darüber, ob das Flugzeug gemäß des ehrgeizigen Zeitplans im nächsten September in die kommerzielle Nutzung gehen könne.\nAuf den Jungfernflug des Testflugzeugs vor eineinhalb Monaten folgten bislang nur drei weitere Starts, was es fraglich erscheinen lässt, ob die Testphase wie geplant verläuft.\nDie Ergebnisse blieben hinter den Prognosen zurück und führten zu einem Kurssturz von über acht Prozent an der Börse von Toronto.\nCameron Doerksen, Analyst bei National Bank Financial, senkte am Donnerstag seine Bewertung von „outperform“ auf „sector perform“ im Hinblick darauf, dass die Aktie in den nächsten ein bis zwei Quartalen ein begrenztes Kurspotenzial besitzt.\n„Zwar wurden schwächere Lieferzahlen bei Flugzeugen weitestgehend erwartet, doch von der Margenentwicklung im Transportbereich sind wir ganz klar enttäuscht“, sagte Doerksen in einen Kundenschreiben.\nWir sind der Ansicht, dass Bombardier neue Bestellungen für die CSeries erhalten wird, wenn das Testprogramm für das Flugzeug voranschreitet.\nFalls allerdings in den kommenden Monaten keine neuen Bestellungen bekannt gegeben werden, dann erwarten wir, dass der Markt dem Programm gegenüber skeptischer wird.\nBombardier hofft, dass die Flugzeugreihe der CSeries das Unternehmen in das untere Marktsegment katapultieren kann, das derzeit von Boeing und Airbus dominiert wird.\nDas erste Testflugzeug wurde im März der Öffentlichkeit vorgestellt und flog nach monatelangen Verzögerungen erstmals im September.\nDoch bisher sind verbindliche Bestellungen für die CSeries mit 177 moderat, da potenzielle Käufer auf die Ergebnisse der Flugtests warten und sehen möchten, ob die Behauptungen des Unternehmens hinsichtlich Treibstoffeffizienz und Kosteneinsparpotenzial des neuen Düsenverkehrsflugzeugs zutreffend sind.\nDerzeit gibt es insgesamt 403 Bestellungen und Zusagen von 15 Kunden und Gesellschaften.\nVorstandsvorsitzender Pierre Beaudoin gibt sich zuversichtlich, dass Bombardier sein Ziel von 300 verbindlichen Bestellungen zu Beginn der kommerziellen Nutzung des Jets erreichen werde.\nDie Unternehmensführung versicherte am Donnerstag gegenüber Analysten und Medien außerdem, das Programm liege im Terminplan.\n„Das Testflugzeug ist nicht länger am Boden geblieben als erwartet“, sagte Beaudoin bei einer Telefonkonferenz und fügte hinzu, während der Standzeit des Flugzeugs seien Bodentests und Software-Updates angesetzt gewesen.\nJeder Hersteller plant anders.\nWir haben beschlossen, einen ersten Flug zu unternehmen und dann einen Überarbeitungszeitraum anzuhängen, was wir auch getan haben.\nDas geschieht während des gesamten Flugprogramms.\nDas zweite von fünf Testflugzeugen werde voraussichtlich in den nächsten Wochen starten, die restlichen kurz danach, hieß es von Unternehmensseite.\nDennoch bleiben Analysten skeptisch, ob zwölf Monate nach dem Jungfernflug der erste Kunde ein Flugzeug der CSeries in Betrieb nehmen kann.\nBombardier erklärte, es überprüfe die Planung für die Inbetriebnahme (EIS) und werde diese in den nächsten Monaten aktualisieren.\n„Das langsame Voranschreiten der Flugtest – auch wenn sie offensichtlich Bombardiers interner Planung entsprechen – bestärkt unsere Ansicht, dass sich die Inbetriebnahme auf das erste Quartal 2015 verschiebt“, sagte Doerksen.\nIm dritten Quartal mit Ende am 30. September fiel Bombardiers Nettogewinn auf 147 Millionen Dollar bzw. 8 Cent pro Aktie von 172 Millionen Dollar bzw. 9 Cent pro Aktie im Jahr zuvor.\nDer angepasste Gewinn pro Aktie beträgt unverändert 9 Cent.\nDer Umsatz gab geringfügig nach und sank von 4,2 auf 4,1 Milliarden Dollar.\nAnalysten hatten einen Gewinn von 10 Cent pro Aktie und einen Umsatz von 4,56 Milliarden Dollar erwartet, so Thomson Reuters I/B/E/S.\nDer weltweit viertgrößte Flugzeughersteller gibt an, er habe in diesem Quartal 45 Flugzeuge ausgeliefert, ein Rückgang von 57 im letzten Jahr.\nDie Nettobestellungen fielen von 83 Flugzeugen auf 26.\nDer Auftragsbestand in der Luft- und Raumfahrtsparte betrug am 30. September 32,9 Milliarden Dollar und war damit gegenüber dem 31. Dezember unverändert.\n„Im Bereich Luft- und Raumfahrt lagen die Ergebnisse im Rahmen unserer Vorgaben, aber der niedrige Auftragseingang und die Marktverhältnisse insgesamt waren enttäuschend“, sagte Beaudoin.\nDer Umsatz in der Luft- und Raumfahrtsparte fiel um 13 Prozent auf zwei Milliarden Dollar.\nBombardier, der weltweit größte Eisenbahnhersteller, gab bekannt, dass der Umsatz in dieser Sparte um knapp elf Prozent auf 2,1 Milliarden Dollar gestiegen ist.\nDer Auftragsbestand in der Transportsparte betrug am 30. September 32,6 Milliarden Dollar und war damit gegenüber dem 31. Dezember leicht erhöht.\nDie Gewinnspanne im Bereich Transport wurde durch Abwicklungsprobleme bei einigen Großverträgen beeinträchtigt.\nLaut Unternehmensführung wird es für das vierte Quartal neue Vorgaben geben.\nIm nachmittäglichen Handel am Donnerstag gab die Bombardier-Aktie um 8,5 Prozent nach und lag bei 4,83 kanadischen Dollar, nachdem auch angekündigt wurde, dass der Google-Finanzvorstand Patrick Pichette in den Vorstand wechseln wird.\nDie brasilianische Embraer SA, der weltweit drittgrößte kommerzielle Flugzeughersteller und Bombardiers engster Rivale, meldete am Donnerstag einen zehnprozentigen Rückgang des Quartalsgewinns.\nUSA: Schüsse am Flughafen von Los Angeles\nEin Unbekannter hat am Freitagvormittag (Ortszeit) am LAX-Flughafen Schüsse abgefeuert.\nWährend die Flughafenleitung über den Kurznachrichtendienst Twitter mitteilte, der Schütze sei in Gewahrsam, berichtete die \"Los Angeles Times\", der Mann sei tot.\nAuch ein Sicherheitsmann sei getötet worden.\nMedien berichteten außerdem von mehreren Verletzten.\nUS-Präsident Barack Obama werde laufend über die Lage informiert, sagte der Sprecher des Weißen Hauses, Jay Carney.\nDer Vorfall ereignete sich in Terminal 3. Augenzeugen gaben an, einen Schützen mit einem Gewehr in einer der Abflughallen gesehen zu haben, wie mehrere Medien berichteten.\nEin Reisender erzählte dem Sender CNN, viele Menschen hätten in Panik Schutz gesucht.\nReisende hätten geschrien und Kinder geweint.\nUnter den Wartenden sei Panik ausgebrochen, viele hätten sich aus Angst hinter Stühlen versteckt.\nEr habe zwei Schüsse gehört, sagt ein Reisender der \"Los Angeles Times\".\nEin Mitarbeiter der Sicherheitsbehörde TSA habe eine Schussverletzung am Fuß erlitten.\nDie Szene sei \"wie in einem Film\" gewesen.\nDanach sei er selbst in einen Sicherheitsbereich gebracht worden, berichtete der Mann.\nDie Schüsse sollen nahe eines Sicherheitskontrollbereichs gefallen sein.\nFlughafen-Gebäude evakuiert\nAuf Fernsehbildern war zu sehen, wie zahlreiche Kranken- und Polizeiwagen vor einem Terminal vorfuhren.\nHunderte Menschen wurden aus dem Gebäude in Sicherheit gebracht.\nNutzer auf Twitter veröffentlichten Fotos von einem Spezialeinsatzkommando und einem auf dem Boden liegenden Gewehr.\nWie die Flughafenleitung über Twitter mitteilte, begann der Vorfall um 9.30 Uhr morgens (Ortszeit).\nDie Zufahrtsstraßen wurden gesperrt, wodurch sich laut CNN lange Rückstaus bildeten.\nBis auf Landungen sei der Flugverkehr vorübergehend eingestellt worden, hieß es.\nAllerdings waren auf CNN auch mehrere Flieger beim Start zu beobachten.\nTerminal 3 wird vor allem von kleineren US-Fluggesellschaften bedient.\nDer LAX-Flughafen von Los Angeles ist einer größten Flughafen der USA.\nKokainabhängiger Anwalt, der Drogenboss vor polizeilicher Ermittlung warnte, muss ins Gefängnis\nBasharat Ditta, 42, gab Informationen an Unterweltgröße Neil Scarborough weiter\nDer Anwalt hatte Angst, seine heimliche Drogenabhängigkeit könnte ans Licht kommen\nEr wurde vom Liverpooler Crown Court zu drei Jahren Gefängnis verurteilt\nEin bekannter Strafverteidiger, der einen Drogenbaron vor einer großen polizeilichen Ermittlung warnte, weil er Angst hatte, seine geheime Drogensucht könnte aufgedeckt werden, wurde zu drei Jahren Haft verurteilt.\nBasharat Ditta, 42, versorgte Unterweltgröße Neil Scarborough mit sensiblen Informationen über Ermittlungen zu dessen Aktivitäten im Drogenhandel, nachdem er durch seine eigene Kokainsucht kompromittiert worden war.\nDer von Kriminalisten als „erstklassig“ gepriesene Anwalt mit dem Spitznamen „Bash“ wurde 2011 in seinem Haus verhaftet, nachdem die Polizei Scarborough überwacht hatte, den er in einem früheren Drogenverfahren vertreten hatte.\nBeamte beobachteten, wie Scarborough (32) drei Beutel Kokain am Haus des Anwalts in Blackburn, Lancashire, ablieferte, während dieser mit Kollegen bei einem Essen der Anwaltskammer war.\nDie Ermittlungen brachten zutage, dass Ditta regelmäßig Drogen der Klasse A konsumierte, nachdem bei Tests Spuren von Kokain in seinen Haaren, auf seiner Brieftasche und an Kreditkarten gefunden worden waren.\nÜber einen Zeitraum von acht Monaten zwischen Januar und August 2011 versuchte er, unerlaubt Informationen über die Verhaftung zweier Männer im Auftrag von Scarborough und einem seiner Partner zu beschaffen.\nAlle vier Verdächtigen wurden damals von der Polizei im Rahmen eines großen Ermittlungsverfahrens zum Heroin- und Kokainhandel in Lancashire, Cumbria, Merseyside, Berkshire und West Yorkshire überwacht.\nGemeinsam mit 32 anderen Personen wurden sie später verhaftet, nachdem die Polizei bei einer Reihe von Hausdurchsuchungen Heroin und Kokain im Wert von 1,5 Millionen Pfund sowie 200.000 Pfund an Bargeld sicherstellte.\nDitta, 42, gab Informationen an die Kriminellen weiter, weil er fürchtete, seine Drogenabhängigkeit könne publik werden.\nHeute wurde Ditta, der für die Kanzlei Forbes Solicitors in Blackburn arbeitet, am Liverpooler Crown Court nach einem dreiwöchigen Verfahren in zwei Anklagepunkten wegen Behinderung der Justiz für schuldig befunden und verurteilt.\nEr gab bei einer früheren Befragung den Kokainbesitz zu.\nDer Anwalt wurde überführt, nachdem die Polizei bei ihren Ermittlungen gegen Scarborough herausfand, dass dieser im Februar 2011 in regelmäßigem telefonischen Kontakt mit Ditta gestanden hatte.\nZwei Ermittlungsbeamte folgten dem Verdächtigen und sahen, wie er zu Dittas Haus ging und dort die Drogen mit einer Reinheit von 60 Prozent in einem schwarzen Golfhandschuh unter die Mülltonne des Anwalts legte.\nKurz nachdem er die Drogen abgeliefert hatte, telefonierte Scarborough regelmäßig mit Ditta, der sich beim Abendessen im Fußballstadion der Blackburn Rovers in Ewood Park befand.\nDer Anwalt kehrte nach Hause zurück, holte sich die Drogen und dann wurden neun Mitteilungen zwischen den beiden ausgetauscht.\nVor Gericht wurde bekannt, dass Ditta ein „regelmäßiger Konsument“ von Kokain war, nachdem bei Tests Drogen der Klasse A in seinen Haaren, seiner Brieftasche und auf seinen Kreditkarten entdeckt worden waren.\nDitta wurde später verhaftet, stritt aber ab, Kokain zu nehmen und sagte, er habe mit dem mutmaßlichen Dealer gesprochen, weil dieser sein Mandant sei, und behauptete, ihre Diskussion unterliege dem „Anwaltsgeheimnis“.\nWährend seiner Verhaftung nahm Ditta seine Brieftasche und versuchte, eine Reihe von Kreditkarten zu entfernen, doch sie wurden sichergestellt und ihm wurde eine Haarprobe entnommen.\nBeim polizeilichen Verhör gab er an, er betreibe sowohl unter seiner Privatadresse als auch am Arbeitsplatz ein Büro und Mandanten würden ihn zu Hause wegen juristischer Angelegenheiten anrufen.\nVor Gericht wurde bekannt, dass er wichtige Akteure des Drogenhandels, von denen er einige zuvor vertreten hatte, nach bedeutsamen Verhaftungen angerufen und darüber informiert hatte, was die Ermittler über sie wussten.\nStaatsanwältin Anne Whyte sagte: „Ein Strafrechtsanwalt sollte besser als alle anderen wissen, dass man das Gesetz nicht bricht.“\nDitta wird des Missbrauchs seiner Position als Strafverteidiger angeklagt, da er sich zu sehr mit bestimmten Mandanten eingelassen hat.\nDie fragliche Beziehung ist nicht einfach die eines Drogenhändlers, sondern eines Drogenhändlers, der seinen Anwalt mit Drogen versorgt.\nEin Teil seiner Mitteilungen war zweifellos legitim, denn er war der Anwalt dieser Personen.\nDoch das ging weit über die Grenzen einer normalen Beziehung zwischen Anwalt und Mandant hinaus.\nEr wirkte den polizeilichen Ermittlungen soweit wie möglich entgegen, sodass sie weiterhin ihren kriminellen Aktivitäten nachgehen konnten.\nHerr Ditta brachte damit seinen Berufsstand in Verruf.\nEr stand bestimmten Mandanten zu nahe, insbesondere Scarborough, und er ließ es zu, dass seine Unabhängigkeit kompromittiert wurde.\nDitta wies jedes Fehlverhalten von sich und behauptete: „Wenn ich ein korrupter Anwalt wäre, was ich nicht bin, und Informationen an Scarborough weitergeben wollte, dann würde ich keine 15 Stunden warten, sondern das sofort tun.“\nDoch nach der Anhörung sagte Superintendent Lee Halstead von der Polizei in Lancashire: „Herr Ditta hat den Schritt von einem Strafverteidiger zu einem Kriminellen in dem Moment getan, als er anfing, Drogen von organisierten Kriminellen zu erwerben.“\nSeine Kokainabhängigkeit führte zu einer hoffnungslosen Kompromittierung und machte ihn empfänglich für die Motive führender Mitglieder der organisierten Kriminalität, die ihn beauftragten, wertvolle Informationen über polizeiliche Ermittlungen einzuholen.\nAnwälte müssen die höchsten Standards an Integrität aufrechterhalten und in der Öffentlichkeit für Vertrauen und Zuversicht sorgen.\nDitta hat dieses Vertrauen hintergangen und versucht, sich hinter der Fassade seines Berufs zu verschanzen.\nDie Serious and Organised Crime Unit von Lancashire leitete die Ermittlungen gegen Ditta, die auch zu einer Verurteilung in drei Fällen wegen des Besitzes von Kokain und Justizbehinderung führten, was unsere Entschlossenheit unterstreicht, Kriminelle vor Gericht zu bringen.\nDieser Fall sollte Kriminellen eine Warnung sein und zeigt, dass sich keiner dem Arm des Gesetzes entziehen kann.\nWir finden Sie und bringen Sie vor Gericht.\nScarborough selbst wurde zu 14 Jahren Gefängnis verurteilt, nachdem er sich der Verschwörung zum Heroin-, Kokain- und Cannabishandel für schuldig erklärt hatte.\nFünfunddreißig weitere am Drogenhandel beteiligte´Personen wurden zu Gesamtstrafen von 153 Jahren wegen Drogendelikten verurteilt.\nAuf seiner Website veröffentlichte Ditta einen Bereich mit Fragen und Antworten über sich, in dem er angab, sein Traumjob sei es, als Anwalt Mandanten in der Todeszelle in Amerika zu vertreten, sein ultimativer Gast beim Abendessen sei Mohammed Ali und Chancenungleichheit sei die Motivation für seine Arbeit.\nRevolutionäres Werk der Kirchenmusik\nZum Abschluss der Feierlichkeiten aus Anlass seines 160-jährigen Bestehens wird der Liederkranz Dunningen zwei Gottesdienste mit der \"Deutschen Messe\" von Franz Schubert umrahmen.\nNach dem großen Erfolg des Musicals \"Rock my Life\", das die Zuschauer im Frühjahr diesen Jahres begeisterte, wird der Liederkranz zum Abschluss des Jubiläumsjahres zwei Gottesdienste mit der Aufführung der Deutschen Messe von Franz Schubert bereichern.\nAm Samstag, 26. Oktober, wird diese außergewöhnliche Messe ab 19 während der Abendmesse in der St. Martinuskirche Dunningen und am Sonntag, 27. Oktober, ab 10.15 Uhr beim Gottesdienst in der St. Johannes Baptistkirche in Lackendorf zu hören sein.\nDie so genannte Deutsche Messe mit dem Originaltitel \"Gesänge zur Feier des heiliges Opfers der Messe\", D 872, ist ein geistliches Musikwerk des Komponisten Franz Schubert aus dem Jahre 1826 und galt zur Zeit der Entstehung fast als revolutionär.\nDie Messe wird im Rahmen der Gottesdienste aufgeführt, wie der Auftraggeber Johann Philipp Neumann es im Sinn hatte.\nUnter der Leitung von Hermann Schneider wird der Chor von der Bläsergruppe des Musikvereins Frohsinn Tennenbronn und Noemi Lokodi an der Orgel begleitet.\nHaslach: Skepsis weicht zusehends Zuversicht\nMit den Wahlen zum Pfarrgemeinderat 2015 wird sich beispielsweise in der Seelsorgeeinheit Haslach (SE) Grundlegendes ändern.\nEs gibt dann nur noch einen gemeinsamen Pfarrgemeinderat für alle sechs Pfarreien.\nIn einer gemeinsamen Sitzung bereiteten sich am Samstag die Gremien aus Haslach, Hofstetten, Mühlenbach, Fischerbach, Steinach und Welschensteinach auf die Veränderungen vor.\nDenn an den grundsätzlichen Beschlüssen der Diözese ist nichts mehr zu ändern und es ist an den Pfarrgemeinderäten, diese möglichst zufriedenstellend umzusetzen.\nIm Laufe des Tages wurde besonders deutlich: die Skepsis gegenüber dem Neuen weicht zögernd aber zusehends einer Zuversicht.\nVon den Vorstellungen und Erwartungen an die Neuerungen 2015 bis hin zu konkreten Vorschlägen über die künftige Zusammensetzung und die Größe des Pfarrgemeinderats reichten die äußerst konstruktiven Gespräche der sechs Gremien mit den Hauptamtlichen des Seelsorgeteams.\nRegionaldekan Georg Schmitt erläuterte anhand einer Präsentation die neu gefassten Richtlinien für Seelsorgeeinheiten in der Erzdiözese Freiburg.\nDanach bildet die SE Haslach als Kirchengemeinde künftig eine Körperschaft des öffentlichen Rechts, die in die Rechte und Pflichten der bisher sechs einzelnen Kirchengemeinden eintritt.\nEs wird nur noch einen gemeinsamen Pfarrgemeinderat und einen Stiftungsrat geben, in dem der Pfarrer Kraft Amtes vertreten ist.\nAus jeder Pfarrei sollen mindestens zwei gewählte Mitglieder vertreten sein, in den sechs Pfarreien werden vor Ort so genannte Gemeindeteams gebildet.\nIhre Aufgabe wird es künftig sein, das kirchliche Leben im Ort zu fördern.\nBei der Frage nach den Finanzen der einzelnen Pfarrgemeinde zeigte sich dann erheblicher Gesprächsbedarf.\nDie Neuerungen sehen vor, dass angesammelte Guthaben in den Pfarreien zweckgebunden erhalten bleiben.\nDie Verbindlichkeiten gehen dagegen auf die Gesamtgemeinde über.\nGerade im Hinblick auf die großen geplanten Investitionen, deren Verpflichtung dann alle Pfarreien treffen, gab es große Bedenken.\n\"Auch in der Vergangenheit wurde nur in Projekte investiert, die von den einzelnen Pfarreien alleine bewältigt werden konnten\", relativierte Haslachs Pfarrgemeinderatsvorsitzender Bruno Prinzbach.\nPraktische Erfahrung mit einem gemeinsamen Gremium für fünf Pfarreien schilderte Barbar Ritter, die Vorsitzende des Gremiums in der Seelsorgeeinheit Schutterwald-Neuried.\nSie hatten sich 2006 zur Aufgabe gemacht, \"Eins werden, fünf bleiben\" und mussten feststellen, dass das gar nicht so einfach ist.\nDie Gremien der Haslacher Seelsorgeeinheit machten sich dann daran, die Fragen zur künftigen Zusammensetzung und Größe des gemeinsamen Pfarrgemeinderats sowie der praktischen Arbeit der Gemeindeteams zu beantworten.\nDie Ausarbeitungen werden in weiteren Sitzungen konkretisiert und in einer weiteren gemeinsamen Sitzung aller sechs Gremien im kommenden Frühjahr beschlossen.\nAm Ende präsentierte Pfarrgemeinderat Michael Schöner aus Steinach das neue Logo der Seelsorgeeinheit, dem mit deutlicher Mehrheit zugestimmt wurde.\nIn Pfullendorf wird der Strom teurer\nDie Bürger Pfullendorfs müssen sich auf höhere Stromkosten einstellen.\nWie der Geschäftsführer der Stadtwerke, Jörg-Arne Bias, gegenüber dem SÜDKURIER bestätigte, kommen auf eine vierköpfige Pfullendorfer Familie 70 bis 90 Euro Mehrkosten pro Jahr zu.\nWesentlicher Grund der anstehenden Preiserhöhung ist der Anstieg der sogenannten EEG-Umlage von 5,277 auf 6,3 Cent pro Kilowattstunde.\nDiese Umlage wird jedes Jahr im Oktober von den vier Betreibern der der großen Stromtrassen neu festgesetzt.\nDiese beziffern die ihnen aus der Energiewende entstehenden Mehrkosten, die sie durch eine Umlage über den Strompreis erheben können.\nDie Stadtwerke Pfullendorf bilden das letzte Glied in dieser Kette.\nDer Aufsichtsrat des Energieunternehmens war in seinen Prognosen sogar von einer höheren Umlage ausgegangen, wie Jörg-Arne Bias berichtet.\nNun müssten die konkreten zahlen errechnet werden, bevor die Stadtwerke nächste Woche ihre Kunden über die exakte Preiserhöhung informieren könnten.\n\"Wir gehen von einer Anhebung von 1 Cent plus x aus\", so Bias, wobei die Zahl eher in der Nähe der 2 Cent liegen werde.\nAmpel auf Dauerrot: Auf Wartezeit achten\nManchmal wird eine Ampel einfach nicht grün.\nDie Kontaktschleife in der Straße reagiert nicht, oder das Lichtzeichen ist defekt.\nWas soll man dann tun - bei Rot fahren?\nHat ein Betroffener lange genug an einer roten Ampel gewartet und die Kreuzung ist frei, kann er weiterfahren, erklärt der Stuttgarter Rechtsanwalt Ralf Becker in der Zeitschrift \"Motorrad\".\nDie Wartezeit müsse aber \"angemessen\" sein, was von Fall zu Fall unterschiedlich ausgelegt werden könne.\nBecker rät, mindestens fünf Minuten auszuharren, bevor von einer Funktionsstörung der Ampel auszugehen ist.\nWer die Fahrt trotz Rotlichts fortsetzt, müsse sich jedoch im Klaren darüber sein, dass er für einen dadurch verursachten Unfall die volle Schuld trägt.\nWer sich weniger als fünf Minuten geduldet, wartet unter Umständen nicht lange genug, warnt Becker und verweist auf einen Beschluss des Oberlandesgerichts Hamm.\nIn dem verhandelten Fall hatte ein Fahrer nach etwa drei Minuten Dauerrot die Ampel ignoriert und musste sich für einen fahrlässigen Rotlichtverstoß verantworten.\nDie Ampel war nämlich nicht defekt, sondern sprang wenig später auf Grün um.\nEin Fahrverbot blieb ihm wegen der besonderen Situation erspart - die Geldstrafe aber nicht.\nGemeinderat freut sich über soliden Haushalt\nImmer wenn es in Gemeinderatssitzungen um den Haushalt geht, hat Bürgermeister Ralph Gerster gut lachen.\nDas Gemeindesäckl in Herdwangen-Schönach ist gut gefüllt und Schulden kennt die Verwaltung bereits seit 2005 nicht mehr.\nAuch das Haushaltsjahr 2012 kann in diesem Sinne als voller Erfolg verbucht werden.\nDies wurde bei der Vorstellung der Jahresrechnung für 2012 deutlich.\nWie Andrea Rothmund erläuterte, sei der Verwaltungshaushalt mit rund 7,6 Millionen Euro über eine Millionen Euro höher ausgefallen als geplant.\nAuch der Überschuss des Verwaltungshaushaltes liege mit etwa 1,8 Millionen Euro rund eine Millionen Euro über dem Ansatz.\nZu verdanken sei der Überschuss vor allem höheren Gewerbesteuereinnahmen und dem Gemeindeanteil an der Einkommenssteuer.\nAuch der Vermögenshaushalt lag wieder deutlich über den geplanten Werten.\nStatt der vorgesehenen 1,5 Millionen Euro betrug er im vergangenen Jahr 2,5 Millionen Euro.\n\"Dies liegt im Wesentlichen an der höheren Zuführung aus dem Verwaltungshaushalt\", so Rothmund.\nDa im Haushaltsjahr 2012 weniger Investitionen als geplant getätigt worden sind, ist auch die Rücklagenzuführung höher ausgefallen.\nInsgesamt konnte die allgemeine Rücklage um rund 2,1 Millionen Euro auf jetzt insgesamt 4,9 Millionen Euro gesteigert werden.\nBürgermeister Ralph Gerster bedankte sich bei Rothmund und ihrem Team für die gute Arbeit.\n\"So ein Werk schüttelt man nicht einfach aus dem Ärmel\", lobte Gerster mit Blick auf die Jahresrechnung.\nEr und die Gemeinderäte freuten sich sichtlich über die guten Zahlen.\nEs mag paradox klingen, doch genau diese guten Zahlen könnten die Bürger bald teuer zu stehen kommen.\nDurch die gute Finanzlage konnte die Gemeinde in der Vergangenheit auf hohe Hebesätze verzichten.\nDadurch wiederum seien aber laut Gerster schon öfters Zuschüsse vom Land gekürzt worden.\nFür diese Zuschüsse aus diversen Ausgleichsstöcken gibt es Voraussetzungen.\nUnter anderem müssen die Städte und Gemeinden, die Zuschüsse beantragen, bestimmte Hebesätze vorweisen.\n\"Das Thema Hebesätze müssen wir uns anschauen, da in den kommenden Jahren Investitionen anstehen, für die wir gerne Zuschüsse hätten\", kündigte Gerster in diesem Zusammenhang an.\nNagold: Hugo Wermter seit 60 Jahren im Chor\nMit 60 Jahren als Sänger ist Hubert Wermters Geschichte beim Männergesangverein Cäcilia fast doppelt so lange wie die des Herbsfestes, in dessen Rahmen er feierlich geehrt wurde.\nHubert Wermter stand wie gewohnt in den Farben seines Männergesangvereines auf der Bühne.\nAuch nach 60 Jahren macht ihm das Singen mit dem inzwischen wohl mehr als lieb gewonnenen Chor immer noch großen Spaß.\nIm Verein war Wermter ebenfalls aktiv, unter anderem 28 Jahre lang als Mitglied des Ausschusses.\nFür sein Engagement und seine Vereinstreue erhielt er gleich mehrere Auszeichnungen: Jörg Kohr, Pastoralreferent im Auftrag des Cäcilienverbandes Rottenburg-Stuttgart, überreichte ihm - da der Chor auch ein Kirchenchor ist - eine Urkunde des Verbandes und einen von Bischof Gebhard Fürst unterzeichneten Ehrenbrief.\nSeine Sängerkollegen überreichten ihm die Urkunde des deutschen Chorverbandes sowie einen gravierten Zinnteller.\nNeben der Ehrung verlief das 31. Herbstfest in gewohnten Bahnen: Mit dem MGV Betra, dem Liederkranz Salzstetten, der Sängerabteilung Baisingen und dem örtlichen Musikverein hatten die Vollmaringer eine bunte Mischung verschiedener Chöre und Gesangsstile geladen, welche die rund 400 Besucher unterhielten.\nDer MGV Vollmaringen eröffnete mit stimmungsvollen Liedern wie \"Im Weinparadies\" und \"Lustig, ihr Brüder\".\nIhrem Ehrensänger Hubert Wermter bereiteten sie zur Ehrung noch ein kleines Ständchen - Wolfgang Amadeus Mozarts \"Bundeslied\".\nDer Männergesangverein Betra sang ebenfalls klassische Chorlieder wie \"Jägerwerben\" von Julius Wengert, \"Weit, weit weg\" von Hubert Goisern sowie das Volkslied \"Wann du durchgehst durchs Tal\".\nDer Liederkranz Salzstetten sorgte mit seinem gemischten Chor und seiner Frauengruppe - dem \"Impulschor\" - für die Frauenquote des Festes.\nDer gemischte Chor entführte mit der neapolitanischen Volksweise \"Santa Lucia\" und \"Eviva Espana\" von Antos Gus in fremde Länder, während der \"Impulschor\" ebenfalls auf fremde Sprachen zurück griff: \"Liberatio\" und \"Hey Jude\" gehörten zu ihrem Programm.\nDie Sängerabteilung des Baisinger Sportvereins kam mit \"Was isch der Schwob?\" von Hans Süssmuth und Robert Papperts \"Bierlied\" wieder zurück in heimische Gefilde, wo der Vollmaringer Musikverein den krönenden musikalischen Abschluss bot.\nFür die Kinder gab es ein kleines Nebenprogramm - \"Oma Hanne\" alias Hannelore Stollsteimer führte ein Kasperltheater auf und las ein paar Geschichten vor, welche die Kinder den Mittag über gut beschäftigten.\nKinderträume werden wahr\nDie Kindergärten und Kindertagesstätten im Zollernalbkreis bekommen in diesen Tagen Post.\nDer Schwarzwälder Bote möchte in Zusammenarbeit mit Bauhaus und der Sparkasse Zollernalb die Einrichtungen bei der Realisierung ihrer Bau- und Verschönerungswünsche unterstützen.\nBraucht der Kindergarten einen neuen Sandkasten?\nMitmachen bei der Aktion können alle Kindergärten, Kindertagesstätten und Kinderkrippen aus dem gesamten Zollernalbkreis.\nWenn Sie einen Bau- oder Verschönerungswunsch für Ihre Einrichtung haben, können Sie sich mit diesem beim Schwarzwälder Boten bewerben.\nSeien Sie mit Ihren Kindern kreativ und überraschen Sie die Jury der Aktion Kindergarten-Baustelle.\nEine Jury, bestehend aus Vertretern von Schwarzwälder Bote, Bauhaus und Sparkasse Zollernalb, wählt aus allen Einsendungen drei Wünsche aus.\nWelche Voraussetzungen zur Teilnahme gibt es?\nDer Wunsch sollte mit Baumaterial im Wert von maximal 2000 Euro und an einem (Aktions-) Tag zu realisieren sein.\nDarüber hinaus muss der Gewinner selbst für viele fleißige Bauhelfer sorgen.\nWas hat es mit dem Aktionstag und den Helfern auf sich?\nBauhaus stellt mit Unterstützung der Sparkasse Zollernalb das Material zur Verfügung.\nEs wird am vereinbarten Tag in den Kindergarten geliefert und soll dann direkt von den Helfern verarbeitet werden.\nHelfer können Eltern, Großeltern, Freunde, Vereine und natürlich die Erzieher und Kinder selbst sein.\nKenianische Presse empört über kontroverses Mediengesetz\n„Wir befinden uns in einer beängstigenden Lage und man darf sich fragen: Was hält das Parlament davon ab, morgen einfach die richterliche Unabhängigkeit abzuschaffen?“, war in der Zeitung zu lesen, die den Gesetzesentwurf für nicht verfassungsgemäß hält.\n„Das Gesetz ist drakonisch und sehr strafend und wir lehnen es ab“, sagte Cyrus Kamau, Geschäftsführer der Capital Group, zu der auch CapitalFM gehört, eine der angesehensten unabhängigen Radiostationen und Nachrichten-Websites Kenias.\nEr sagte, das neue Medientribunal „wird immer voreingenommen sein, denn es ist ein verlängerter Arm der Regierung“, und Einschränkungen bei Inhalten und Werbung würden Kenias Stellung in der globalen Wirtschaft beschädigen.\n„Ich hoffe, der Präsident hört auf uns und wir appellieren an ihn, diesen Gesetzesentwurf abzulehnen und an das Parlament zurückzuschicken“, sagte er.\nLaut der Zeitung The Star nehme die Regierung durch das neue Gesetz „die Medien effektiv in einen Würgegriff“. Dagegen schreibt The Standard, Demokratie und Redefreiheit in Kenia hätten „einen schweren Schlag“ erlitten, und betitelte den Entwurf als „drakonisch“.\nDie Verabschiedung des Gesetzes gehört zu einer Reihe von Maßnahmen, mit denen die nationale Sicherheit im Nachgang zu den Angriffen durch bewaffnete Islamisten auf das Westgate-Einkaufszentrum im September gestärkt werden soll.\nDie kenianischen Medien zogen den Zorn der Behörden auf sich, weil sie Aufnahmen von Sicherheitskameras veröffentlichten, auf denen zu sehen war, wie die an den Tatort entsandten Einheiten angeblich das luxuriöse Einkaufszentrum ausraubten.\nPolizeichef David Kimaiyo reagierte darauf mit der Einbestellung zweier Journalisten und eines führenden Medienvertreters zu Verhören, auch wenn die Vorladung nach einem Aufschrei der Medien zurückgezogen wurde.\nNach dem neuen Gesetz können Medienhäuser mit einer Strafe von bis zu 20 Millionen kenianischen Schillingen belegt werden und einzelne Journalisten mit bis zu einer Million sowie dem weiteren Risiko, ihre berufliche Anerkennung zu verlieren oder von einer offiziellen Presseakkreditierung ausgeschlossen zu werden.\nDas Tribunal hat außerdem das Recht, den Besitz der Betroffenen zu beschlagnahmen, wenn eine Strafe nicht bezahlt wird.\nLaut Daily Nation kann „schon eine einzige Strafe die meisten Radiosender in den Bankrott drängen“.\nDarüber hinaus ist die Zeitung der Ansicht, diese Maßnahmen könnten eine vernichtende Auswirkung auf die ihrer Beschreibung nach „lebhafte Blogosphäre“ Kenias haben.\nWenn sie die Medien zum Schweigen brächten, könnten Politiker ungestraft tun, was immer sie wollen.\n„Keiner wird es jemals erfahren“, schrieb Mutuma Mathiu, Journalist bei der Nation, der die kenianischen Medien als einen entscheidenden Kontrollfaktor im öffentlichen Leben bezeichnet.\n„Überlässt man Politiker sich selbst, führen sie das Land in den Bankrott und uns zurück in die Zeit der Jäger und Sammler“, kommentierte er.\nDie kenianischen Gesetzgeber zogen schon in der Vergangenheit den öffentlichen Ärger auf sich.\nIm Mai stimmten sie ab, die von der nationalen Vergütungskommission angeordneten Kürzungen rückgängig zu machen und setzten ihre deftigen Gehälter von etwa 532.000 Schilling steuerfrei pro Monat wieder in Kraft – sie zählen zu den weltweit höchsten.\nBad-Dürrheim: Ein Traum wird wahr für den FC\nAn der Bedeutung für die Stadt und den Fußballclub büßte die offizielle Einweihungsfeier für den Kunstrasensportplatz trotz der kalten Witterung und dem Regen nichts ein.\nEine angenehmere Feierstunde hatten sich am vergangenen Samstag wohl alle gewünscht, doch Petrus wollte dabei nicht mitspielen.\nSo hatten all jene das Nachsehen, die ohne Regenschirm kamen oder solch einen aus irgend einem Grund nicht halten konnten.\nDas ging den Musikern, die den Festakt umrahmten, genauso wie so manchem Redner.\nNass wurde deshalb auch der FC-Vorsitzende Albrecht Schlenker, der von der Erfüllung eines Traums sprach.\nSein Dank galt allen voran Bürgermeister Walter Klumpp, der sich für die Umsetzung des Projektes stark engagiert habe, dem Gemeinderat, den beteiligten Unternehmen und Vereinsmitgliedern, die sich einbrachten.\nHier ganz besonders Lothar Held, Paul Weizenegger, Heiner Gail und Peter Graf.\nDie rüstigen Rentner verlegten 400 Quadratmeter Pflastersteine für die neuen Wege.\nDieses bemerkenswerte ehrenamtliche Engagement würdigte auch der Landtagsabgeordnete Karl Rombach.\nWeitere Grußworte sprachen für den städtischen Sportausschuss Hubert Baier, der Bezirksvorsitzende des südbadischen Fußballverbandes, Kuno Kayan, und Friedrich Knorr vom Planungsbüro, der eine Spende für die Jugendabteilung des Clubs ankündigte.\nBürgermeister Klumpp brachte in Erinnerung, dass immer wiederkehrende witterungsbedingte Einflüsse im Frühjahr und Herbst dem ursprünglichen Rasenplatz so zusetzten, dass er nicht bespielt werden konnte.\nBereits vor 15 Jahren gab es die ersten Überlegungen zur Lösung des Problems, als an den Bau eines dritten Platzes beim Gelände des Fußballclubs oder bei der Realschule am Salinensee gedacht wurde.\nBeides wurde wieder verworfen.\nVor sechs Jahren kamen Gedanken zur Anlegung eines Kunstrasensportplatzes auf, was allgemein als die ultimative Lösung angesehen wurde.\nKonkrete Planungen wurden vor zwei Jahren aufgenommen, als der FC die Schabelstube in Erbpacht übernahm, eine Kostenbeteiligung von 100 000 Euro für den Bau des Platzes zusagte und das Land Fördermittel von 104 000 Euro billigte.\nDer Gemeinderat beschloss im Oktober 2012 die Übernahme der restlichen 356 000 Euro an den Gesamtkosten von 560 000 Euro, fasste Klumpp zusammen.\nDer Baubeginn des 68 mal 108 Meter großen Kunstrasenplatzes erfolgte am 4. Juni.\nWährend der über drei Monate andauernden Bauphase wurden 3000 Kubikmeter Erde abgetragen, wovon die Hälfte für die Anlegung einer Dirt-Bike-Strecke verwendet wurde.\nUnion und SPD haben ihre Koalitionsverhandlungen mit den Themen Inneres und Justiz fortgesetzt.\nDazu kam die zuständige Arbeitsgruppe am Morgen in Berlin zusammen.\nUnter anderem geht es um direkte Demokratie, Abgeordnetenbestechung und die Bundespolizei.\nAm Vormittag wollte auch die Arbeitsgruppe Migration und Integration ihre Beratungen fortsetzen.\nDabei dürfte es unter anderem um das Thema doppelte Staatsbürgerschaft gehen, bei dem beide Seiten gegensätzliche Vorstellungen haben.\nDie SPD möchte den Zwang für in Deutschland geborene Zuwandererkinder, sich für eine zu entscheiden, beenden - die Union lehnt einen Doppelpass ab.\nBeim Thema Verkehr, das an diesem Freitag nicht auf der Tagungsordnung steht, untermauerte die SPD ihr Nein zu einer von der CSU geforderten Pkw-Maut.\nEine Vignette sei eine \"Flatrate fürs Vielfahren und damit ökologisch kontraproduktiv\", erklärte der SPD-Verhandlungsführer für das Thema Verkehr, Florian Pronold, in einem Schreiben an seine Fraktion.\nEs drohten Ausweichverkehre auf Landstraßen, die schon jetzt Unfallschwerpunkte seien.\nDie Einführung einer Maut für alle Pkw wäre aus Sicht Pronolds zudem nur ein erster Schritt.\n\"Es besteht die Gefahr, dass zu einem späteren Zeitpunkt die Kompensation für Deutsche gestrichen wird\", sagte er.\nDieter Thomas Kuhn in Stuttgart: Die singende Föhnwelle auf der Freilichtbühne\nStuttgart - \"Wann wird's mal wieder richtig Sommer?\" war eigentlich nicht die Frage am Freitagabend auf der Freilichtbühne Killesberg.\nEs war wahrlich eine tropische Nacht in Stuttgart.\nDie besten Voraussetzungen also für Schlagerstar Dieter Thomas Kuhn und seine Band.\nKlicken Sie sich durch die Bildergalerie zum Aufrtitt der \"singenden Föhnwelle\".\nAutofahrer bei Unfall schwer verletzt\nBei einem Unfall am Donnerstagabend ist ein 37-jähriger Pkw-Fahrer aus Aachen schwer verletzt worden.\nNach Angaben der Polizei war eine 41-Jährige aus Müsch gegen 21.15 Uhr mit ihrem Wagen auf dem Kempener Außenring in Richtung Grefrath unterwegs.\nAls die nach links auf die St. Töniser Straße abbiegen wollte, übersah sie den entgegenkommenden Wagen des 37-Jährigen.\nDie Fahrzauge kollidierten.\nDer Aachener erlitt schwere Verletzungen und musste zur Behandlung ins Krankenhaus gebracht werden.\nKonstanz: Sperrung nach Unfall am Schänzlekreisel\nZu dem Unfall war es laut Polizei gekommen, als ein 51 Jahre alter Fahrer eines Schweizer Seat Ibizas am Donnerstagabend, gegen 20 Uhr, auf der linken Fahrspur der zweispurigen Reichenaustraße stadtauswärts fuhr.\nKurz vor dem Kreisverkehr am Schänzle bemerkte er, dass er sich auf der Linksabbiegespur in Richtung Stromeyersdorfstraße befand und wechselte auf die rechte Fahrspur.\nHierbei kam es zum Zusammenstoß mit dem dort fahrenden BMW eines 23-jährigen Konstanzers.\nEbenfalls beschädigt wurde der hinter dem BMW fahrende VW Passat eines 19-Jährigen.\nInsgesamt entstand rund 15000 Sachschaden, teilte die Polizei mit.\nDie Fahrbahn musste während der Unfallaufnahme gesperrt werden, hieß es weiter.\nFlughafen Wien schafft Passagier-Aufrufe ab\nHerr Max Maier, bitte kommen Sie zu Gate 24.\nDurchsagen wie diese wird es künftig am Flughafen Wien-Schwechat nicht mehr geben.\nEin Großteil der Lautsprecherdurchsagen fällt damit weg - der Lärmpegel soll so deutlich gesenkt werden.\nEine entspanntere Atmosphäre zu schaffen, ist das Ziel dieser Neuerung.\nWie Airport-Sprecher Peter Kleemann gegenüber Radio Wien bekannt gab, folgt der Flughafen Wien mit der Einstellung von Durchsagen, die einzelne Personen betreffen, einem internationalen Trend.\nSo verzichten bereits unter anderem die Flughäfen in Kopenhagen, Frankfurt oder Dubai auf die lärmenden Aufrufe.\nDurch den Wegfall dieser Durchsagen - im Durchschnitt ertönen an einem Tag rund 200 persönliche Aufrufe durch die Lautsprecher - soll es künftig ruhiger am Flughafen zugehen.\n\"Es hat sich auch in der Erfahrung gezeigt, dass diese individuellen Durchsagen relativ wenig wahrgenommen wurden, gleichzeitig aber auch alle anderen Informationen zu geänderten Flugsteigen oder Abflugzeiten hier ein bisschen untergehen\", so Kleemann im Gespräch mit dem Radiosender.\nHighlander-Games auf dem Kaltenhof\nNeben dem Bremswagenziehen mit Traktoren gibt es beim landwirtschaftlichen Herbstfest auf dem Kaltenhof vom 6. bis 8. September noch einen zweiten Wettkampf.\nAm Samstag, 7. September, starten um 13.30 Uhr die Highlander-Games.\nDie haben zwar eine schottische Tradition, sind aber auf dem Kaltenhof schwäbisch angehaucht.\nTeams und Einzelkämpfer messen sich dabei in den Disziplinen Baumstammwerfen, Hufeisenwerfen und Wassereimertragen.\nViereinhalb Meter ist der Baumstamm lang und 25 bis 30 Kilogramm schwer.\n\"Es kommt nicht auf die Weite an\", erklärt Organisator Peter Saile.\nDer Stamm muss senkrecht abgeworfen werden, soll sich einmal überschlagen und dann gerade zum Liegen kommen.\nDas wird mit den meisten Punkten bewertet.\nBeim Hufeisenwerfen kommt es auf die Zielgenauigkeit an.\nAus acht Metern Entfernung wird auf einen Pflock geworfen.\nGeschicklichkeit und Kraft müssen die Teilnehmer beim Wassereimertragen über 50 Meter unter Beweis stellen.\nZeit und Wassermenge in einem Bottich werden am Ende gemessen.\nAus jedem \"Clan\" beziehungsweise Team dürfen dann zwei am Einzelwettbewerb teilnehmen.\nDie Gewinner des Team- und Einzelwettkampfs erhalten Preise.\nTrainiert werden kann schon ab 10 Uhr.\nErwünscht ist eine passende Kleidung, beispielsweise können die Wettkämpfer im Schottenrock antreten.\nDoch auch schwäbische Tracht ist erlaubt.\nFürs \"Outfit\" vergibt die Jury noch ein paar Bonuspunkte.\nAnmelden kann man sich bis eine Stunde vor Wettkampfbeginn.\nMit den schottisch-schwäbischen Highlander-Games und dem Traktor-Pulling, das eine halbe Stunde früher beginnt, ist auf dem Festgelände am Samstag schon mal viel Action angesagt.\nAbends kommen die Blasmusikfreunde auf ihre Kosten.\nUm 19 Uhr gestaltet die biraböhmische Blasmusik aus Schömberg den großen Unterhaltungsabend.\nDie Kapelle spielt flotte Polkas und Märsche.\nZu ihrem Repertoire gehören aber auch gefühlvolle Walzer und ein satter Big-Band-Sound.\nMit dabei sein wird der als singender Wirt und Schwarzwurstbaron bekannte Heinz Koch aus Weilen unter den Rinnen.\nIn Dornhan ist er beim Weihnachtsmarkt und bei der Narrenzunft bereits aufgetreten.\nAm Sonntag unterhält der Musikverein Leinstetten zum Frühschoppen, ab 14 Uhr ist die Bauernkapelle Böffingen zu Gast, und die \"Oldies\" lassen dann das Fest ausklingen.\nAuftakt ist bereits am Freitag die Stoppelackerparty mit DJ Ralf.\nWeitere Programmpunkte sind am Samstag und Sonntag unter anderem das Oldtimer- und Schleppertreffen, Ausstellungen von Firmen zum Thema Land- und Forstwirtschaft.\nWeitere Attraktionen am Sonntag sind das Maislabyrinth, der Handwerkermarkt und das Schafscheren.\nSpeziell für Kinder gibt es einen Streichelzoo, Strohhüpfburg, Traktorfahren (unter Anleitung) und Traktor-Surfing.\nVeranstalter sind der Förderverein Mehrzweckhalle, der Skiclub und die Traktorfreunde \"Zündkäpsele\".\nMilch- und Ei-Alternativen im Überblick\nVegane Ernährung erfordert pflanzliche Alternativen zu Eiern, Milch und Milchprodukten.\nPürierter Tofu mit Pflanzensahne ist beispielsweise ein Quarkersatz.\nWeitere nennt der Vegetarierbund zum Weltvegantag am 1. November.\nDer Vegetarierbund Deutschland schlägt anlässlich des Weltvegantags am 1. November eine Reihe von veganen Alternativen vor:\nReine Pflanzenmargarine sei eine gute Alternative zu Butter, Joghurt lasse durch Sojajoghurt ersetzen.\nStatt Milch könne Soja-, Hafer-, Mandel- oder Reismilch zum Einsatz kommen.\nAufschlagbare Pflanzensahne ersetze herkömmliche Schlagsahne.\nAuch zu Eiern gibt es pflanzliche Alternativen.\nEine halbe zerdrückte, reife Banane zum Beispiel kann ein Ei als Bindemittel in einem Kuchen ersetzen.\nAuch 50 Gramm Apfelmus oder ein Esslöffel gemahlene Leinsamen plus drei Esslöffel Wasser eignen sich dafür.\nLocker werden Teige statt mit Ei zum Beispiel mit einer Mischung aus einem Teelöffel Backpulver, einem Esslöffel Speisestärke und drei Esslöffeln Mineralwasser.\nAber auch 50 Gramm Sojajoghurt oder Seidentofu können diesen Zweck erfüllen.\nNach Angaben des Vebu ernähren sich derzeit in Deutschland rund 800 000 Menschen vegan, also rein pflanzlich.\nSchlaflos in New York\nAuf dem Weg zu ihren Gastfamilien in Weymouth, Massachusetts, lernten die Schüler des Schwarzwald-Gymnasiums die amerikanische Großstadt New York kennen.\nNach acht Stunden Flug ging es gleich los zur Brooklyn Bridge, über die zu Fuß das Herz der Stadt, Manhattan, erreicht wurde.\nHier bot sich bereits ein faszinierender Blick auf die weltbekannte Skyline, welche im Abendlicht einen besonderen Reiz ausmacht.\nDurch die Zeitverschiebung waren die Schüler fast 24 Stunden auf den Beinen, aber getreu dem Motto \"Die Stadt schläft nicht\" wurde der Tag am Times Square beschlossen.\nTrotz Shutdown konnte am zweiten Tag die Freiheitsstatue mit einer Fähre erreicht und zu Fuß erklommen werden.\nAnschließend ging es über das Finanzzentrum um die Wall Street zur Gedenkstätte des 11. Septembers.\nAm dritten Tag konnten die Schüler von der 373 Meter hoch gelegenen Aussichtsplattform des Empire-State-Buildings einen Überblick über die faszinierend große Stadt gewinnen und dabei die Aussicht genießen.\nDanach ging es durch das hektische Treiben der New Yorker Straßen über das Rockefeller Center zum Central Park, der eine ideale Gelegenheit zum kurzen Verweilen in der Herbstsonne bot.\nNach einem kurzen Flug von New York nach Boston sind die Schüler inzwischen in ihren Gastfamilien angekommen und erleben an der Weymouth High School den Schulalltag.\nAuch in diesem Jahr wird am Namenstag des Heiligen Hubertus in der Pfarrkirche St. Marien an der Hülsbergstraße eine Hubertusmesse zelebriert.\nSt. Hubertus war der Sage nach ein recht rücksichtsloser Jäger, der durch eine Vision bekehrt und später zum Bischof von Lüttich ernannt wurde.\nDie Jagdhornbläsergruppe der Jagdreiter Westfalen unter der Leitung von Brigitte Kluth musiziert auf Parforcehörnern (Naturhörner in der Stimmung Es) nach alten, ursprünglich französischen Melodien.\nDie Bläser tragen Reitkleidung, weil sie vornehmlich Reiter, Pferde und Hundemeute auf Schleppjagden musikalisch begleiten.\nDie feierliche Messe findet statt am Sonntag, 3. November, um 11.30 Uhr.\nDer neu gestaltete Opschlag glänzt mit einem neuen Cafe.\nEins, das zum Verweilen und Wiederkommen einlädt.\nEins, das den Namen zum Programm machen möchte.\nAls Déjà Vu bezeichnet man laut Lexikon ein psychologisches Phänomen, das sich in dem Gefühl äußert, eine neue Situation schon einmal erlebt oder gesehen zu haben.\nIm Falle des Besuchs des gleichnamigen Cafés am Opschlag in der Kreisstadt Kleve in Sichtweite zur Hochschule Rhein-Waal muss es nicht beim reinen Déjà Vu-Gefühl bleiben.\nSchließlich hat das Café mit dem schönen Namen genau das zum Ziel: einen tatsächlichen Aufenthalt nicht nur gedanklich, sondern handfest immer wiederkehrend erlebbar zu machen.\nWeil's eben Spaß macht und einfach schön ist.\nEin Blick ins Innenleben am Opschlag 8 gibt dem Betrachter auf Anhieb ein gutes Gefühl.\nDas hochmoderne, aber nicht kühle Café-Ambiente sieht wie ein Ort zum Wohlfühlen aus.\nHier verwöhnt das Team mit den Gründern Mirjam van der Stelt und Daniel Büttner an der Spitze den Gast mit verschiedensten Kaffee- oder Cocktail-Varianten.\nDazu gibt's köstlichen Kuchen oder individuell belegte frische Baguettes.\nDie Inhaber, beide 33 Jahre alt, haben sich bereits vor der Eröffnung des schmucken Cafés am Opschlag als Gastronomen einen Namen gemacht: In Kranenburg führten sie das \"Art Lounge\".\nVom Umzug nach Kleve an den Opschlag erhoffen sich die sympathischen Café-Liebhaber mehr Publikum.\nNicht zuletzt auch durch die Hochschule.\n\"Wobei wir keine bestimmte Zielgruppe haben\", betont Daniel Büttner.\nVielmehr möchte die beiden hier junge Studenten genauso ansprechen wie Senioren und alle Altersklassen dazwischen.\nApropos Café-Liebhaber.\nDas sympathische Inhaberpaar steht hinter dem Kaffee-Genuss.\nGenießt das duftende heiße Gebräu in den verschiedensten Variationen selbst.\nExpressofan\nDaniel Büttner ist eher der Expresso-Fan und Mirjam van der Stelt die Cappuccino-Trinkerin.\n\"Dazu ein Baguette - das ist mein Ding\", verrät sie der NRZ.\nZwei Events gab's auch schon im hellen Café.\nBesser gesagt eins.\nDenn das Hafenfest fand ja eher draußen statt - das Café Déjà Vu profitierte nicht davon.\nAber es gab auch den Ringelnatzabend.\n\"Schön, erfolgreich und witzig\", fanden die beiden 33-Jährigen.\nAber eben nicht Jedermanns Sache.\nVielleicht ist Daniel Büttner auch deswegen kein ausgesprochener Fan von Event-Abenden: \"Man kann's ja nun mal nicht allen Recht machen\".\nUnd mit einem Event spreche ich immer nur die an, die sich auch für das spezielle Event interessieren.\nDeswegen werden Events eher die Ausnahme bei uns sein.\n\"Wir möchten den ganz normalen Betrieb so wenig wie möglich stören\".\nSoll heißen: Déjà Vu steht auch für Verlässlichkeit.\nIn Bezug auf die Qualität der Produkte, die hier geboten werden, ebenso, wie auf das Team und die schöne Umgebung am Opschlag in Kleve.\nDer Straße, die sich mehr und mehr zu einer Gastronomiemeile entwickelt.\nZur Freude vieler Klever, der Gäste aus nah und fern und der Studenten, die die Gastromeile und damit auch das Café Déjà Vu für sich entdecken.\nAnke Gellert-Helpenstein\nEin Tag des Dankeschöns beim MGV in Dinker\nEs war das 165. Stiftungsfest zu dem der MGV \"Friedrich Wilhelm Dinker\" in diesem Jahr eingeladen hatte und 52 Gäste, aktive Sänger und ihre Ehefrauen, waren gerne gekommen.\nIm Vereinslokal der Gaststätte \"Witteborg\" in Dinker genossen alle das harmonische Miteinander ganz im Zeichen der Musik.\nTraditionell ist das Stiftungsfest auch immer die passende Festivität, um Ehrungen vorzunehmen.\nÜber die besondere Auszeichnung \"Sänger des Jahres\" freute sich diesmal Schriftführer Rolf Wagener.\n\"Du hast nicht nur viel für uns aufgeschrieben, sondern hast auch so manche Runde für uns gedreht, dafür unser herzliches Dankeschön\", so der Vorsitzende des Chores Erich Schlotmann.\nDie Auszeichnungen für die Teilnahme an den Auftritten und Chorproben mittels Aktivitätssträußchen gingen in diesem Jahr an den Chorleiter Dieter Schulze mit 44 Teilnahmen, gefolgt vom Ehrenvorsitzenden Horst Pier-Ribbert, dem Vorsitzenden selbst, und dem letztjährigen \"Sänger des Jahres\" Friedrich Winkler mit jeweils 42 Teilnahmen.\nPlatz fünf belegte Notenwart Artur Brückner.\nEin besonders Dankeschön richtete der Vorstand an das Team von Vereinswirtin Ange Pier-Ribbert, das einmal mehr ein Menü der Extraklasse gezaubert hatte und an Gerda Pier-Ribbert für die Tischdekoration.\nDer MGV \"Friedrich-Wilhelm\" trifft sich zu seinen regelmäßigen Chorproben immer dienstags um 19.45 Uhr im Vereinslokal.\n\"Neue sangesfreudige Stimmen sind uns jederzeit herzlich willkommen\", so Schlotmann.\nUN verkündet neue Ziele bei der Armutsbekämpfung\nDie Vereinten Nationen beginnen ab sofort mit der Ausarbeitung einer Reihe neuer Ziele, mit denen die vor zwölf Jahren verkündeten Millenniumsentwicklungsziele zur Armutsbekämpfung ersetzt werden sollen.\nIm Vorfeld des UN-Gipfels für nachhaltige Entwicklung, der am Abend in Rio de Janeiro begann, spielten australische Diplomaten eine Schlüsselrolle beim Vorstoß für „nachhaltige Entwicklungsziele“, die die 2015 auslaufenden Millenniumsziele ersetzen sollen.\nSie wurden in den abschließenden Entwurf des Dokuments aufgenommen, der von weltpolitischen Führern, einschließlich Frau Gillard, beim Gipfel verabschiedet werden wird.\nUN-Generalsekretär Ban Ki-moon erklärte am Abend auf dem Gipfel, der Zeitpunkt sei gekommen, „über die nationalen Interessen hinauszudenken“.\n„Ich freue mich, dass sich die Mitgliedsstaaten darauf verständigt haben, einen Prozess in Angriff zu nehmen, mit dem universelle, nachhaltige Entwicklungsziele vereinbart werden sollen“, sagte er.\n„Diese Ziele werden auf unseren Fortschritten aus den Millenniumsentwicklungszielen aufbauen und einen integralen Bestandteil des Rahmenwerks für die Entwicklung nach 2015 bilden.\nIch werde keine Mühen scheuen, dieses mir von den Mitgliedsstaaten erteilte Mandat umzusetzen, um unsere Vision der nachhaltigen Entwicklungsziele zu verwirklichen, die auf dem Erfolg der Millenniumsziele aufbauen.“\nAuch wenn die SG Achim/Baden seit vier Spieltagen ohne Sieg ist, herrscht beim Handball-Oberligisten weiterhin gute Stimmung.\nDaran lässt Trainer Tomasz Malmon überhaupt keine Zweifel.\nAlle sind weiterhin voll motiviert bei der Sache.\nDennoch hoffe ich, dass wir endlich auch mal wieder gewinnen.\n\"Denn ich weiß ja schon gar nicht mehr, wie so ein Sieg schmeckt\", erwartet Malmon ein Erfolgserlebnis von seiner Mannschaft beim VfL Fredenbeck II.\nAuch wenn die Drittliga-Reserve aus Fredenbeck aktuell noch keine Bäume ausgerissen hat, hebt Malmon im Vorfeld warnend den Zeigefinger.\nViele Spieler habe ich selber noch in der A-Jugend trainiert.\nVon daher werden sie gegen ihren Ex-Coach sicher ganz besonders motiviert sein.\n\"Zudem gilt es abzuwarten, ob dann noch Verstärkung aus der Ersten dabei ist\", verdeutlicht der SG-Coach.\nUm endlich wieder in die Erfolgsspur zurückzukehren, muss sich das Malmon-Team im Vergleich zu den vergangenen Auftritten auf jeden Fall steigern.\nVor allen Dingen in der Deckungsarbeit und beim Umschaltspiel haperte es zuletzt doch gewaltig.\nAuch die Chancenverwertung muss definitiv besser werden.\nDaher hoffe ich, dass meine Spieler während der kurzen Pause endlich den Kopf frei bekommen haben.\nSicherheitsbedenken in Mosambik wachsen angesichts von Zusammenstößen zwischen einflussreichen Persönlichkeiten\nTausende Menschen versammelten sich im Zentrum Maputos unter den wachsamen Augen der Statue von Samora Machel, dem Staatsgründer und ersten Präsidenten Mosambiks, um bei einer seltenen öffentlichen Demonstration Friedensrufe anzustimmen.\n„Wir wollen wieder Frieden, wir wollen Stabilität“, sagte Vanessa de Sousa, Geschäftsführerin eines Investment-Unternehmens.\nAus Angst um die Zukunft des Landes hat sie ihre Geschäftskleidung gegen ein T-Shirt mit der Aufschrift „Wir fordern Sicherheit“ auf Portugiesisch eingetauscht und sich am Donnerstag der Menge auf dem Unabhängigkeitsplatz der Hauptstadt angeschlossen.\nSeit zwei Wochen gibt es beinahe täglich Berichte über Zusammenstöße zwischen Regierungskräften und Renamo, die zu den schlimmsten Gefechten seit dem Friedensabkommen vor über 20 Jahren zählen.\nRenamo war einstmals eine berüchtigte Rebellenbewegung, die anfänglich vom von Weißen regierten Rhodesien und später der Apartheitsregierung Südafrikas unterstützt wurde im Bemühen, die unabhängige Regierung des Landes zu destabilisieren.\nNach dem Friedensvertrag von 1992 wurde sie zu einer Oppositionspartei.\nAnalysten halten es für unwahrscheinlich, dass das Land wieder in einen ausgewachsenen Konflikt zurückfalle, doch haben die jüngsten Ereignisse ausländische Investoren und Einheimische beunruhigt.\nFür die schnell wachsende Wirtschaft steht viel auf dem Spiel, denn die Entdeckung riesiger Gasvorkommen vor der Küste und Kohlelager im Nordwesten könnte in den nächsten Jahren Investitionen von über 50 Milliarden US-Dollar von Firmen wie Rio Tinto, Vale aus Brasilien, Eni aus Italien und Anadarko aus den USA ins Land bringen.\nDie regierende Frelimo-Partei, seit 1975 die dominierende Kraft, und Renamo geben sich gegenseitig die Schuld für die Spannungen.\nRenamo behauptet, die Regierung habe die jüngsten Zusammenstöße provoziert, indem sie am 17. Oktober ihre Mitglieder in der Provinz Sofala, einer traditionellen Hochburg Renamos, angegriffen hätte.\nDie Übergriffe auf die früheren Rebellen eskalierten, als Regierungstruppen Renamo-Stützpunkte attackierten und versuchten, Afonso Dhlakama zu töten, den Anführer der Gruppe, erklärte Renamos Sprecher gegenüber der Financial Times.\nDie Regierung gibt Renamo die Schuld für die Zusammenstöße und beschuldigt die Organisation, Soldaten angegriffen zu haben.\nPräsident Armando Guebuza hat versucht, Bedenken über eine Instabilität herunterzuspielen.\nGegenüber AFP, der französischen Nachrichtenagentur, sagte er am Mittwoch, dass Dhlakama sich als „Verlierer“ betrachte, der „all seine noch verbleibenden Kräfte einsetzen will, um zu beweisen, dass er der Regierung seine Entscheidungen aufzwingen kann“.\nSowohl Frelimo als auch Renamo betonen, dass sie einen Krieg vermeiden möchten.\nDoch die Bedenken haben zugenommen, seit Mazanga mit den Worten zitiert wurde, Renamo gebe das Friedensabkommen von 1992 auf.\nGegenüber der FT erklärte er, damit habe er gemeint, dass Frelimo die Vereinbarung nicht mehr respektiere.\n„Unsere Vision ist es, wieder Verhandlungen aufzunehmen und zwar ernsthaft“, sagte Mazanga.\nFrühere Gespräche zwischen den Parteien haben nur wenig zur Beilegung der Spannungen beigetragen, die durch eine Reihe von Zusammenstößen in diesem Jahr befeuert wurden.\n„Wir haben hier zwei erwachsene Männer (Guebuza und Dhlakama), die die Köpfe zusammenstoßen“, meint Joseph Hanlon, Dozent an der Open University und Mosambik-Experte.\nKeiner von ihnen ist gut im Verhandeln und keiner ist bereit, die nötigen Zugeständnisse zu machen.\nRenamo, die auf Wahlreformen drängt, hat bereits erklärt, sie werde die Kommunalwahlen im November boykottieren.\nPräsidentschafts- und Parlamentswahlen sind für nächstes Jahr geplant.\nEinige Kommentatoren haben den Einsatz von Gewalt als den Versuch einer kränkelnden Bewegung interpretiert, Zugeständnisse und finanzielle Vergünstigungen von der Regierung zu erwirken.\nRenamos Wahlerfolge schrumpfen seit 1992, während eine neuere Partei, die von einem früheren Renamo-Mitglied gegründete Movimento Democrático de Moçambique (MDM), sich vermutlich bei den Wahlen verbessern wird.\nMazanga behauptet, dass Guebuza – dessen Rücktritt ansteht, wenn seine zweite Amtszeit im nächsten Jahr endet – die Demokratie des Landes zerstören wolle.\n„Er will keine Mehrparteien-Demokratie, er will keine transparenten Wahlen, er will keinen Frieden, weil er das Präsidentenamt nicht aufgeben will“, so Mazanga.\nEs ist unklar, über welche Kapazitäten Renamo verfügt, doch sie hat Unruhe stiftende Angriffe auf Polizeistationen und Fahrzeuge auf einer wichtigen Nord-Süd-Verbindungen unternommen.\nDie meisten Gefechte fanden in der Provinz Sofala statt, die einige Hundert Kilometer nördlich von Maputo liegt, in der sich aber Beira befindet, der Hafen, den Bergbaufirmen wie Rio Tinto und Vale zum Export von Kohle nutzen.\nIm Juni unterbrach Rio einen Monat lang die Nutzung der Eisenbahn, nachdem Renamo einen Angriff auf die Strecke angekündigt hatte.\nMazanga antwortete zurückhaltend auf die Frage, ob Renamo diese Drohung wiederholen werde.\nRenamo wollte „die internationale Gemeinschaft warnen, dass die Dinge in Mosambik nicht gut stehen“, sagte Mazanga.\nDie Instabilität habe die Frustration über die Regierung noch gesteigert, sagt Fernando Lima, Leiter von Mediacoop, einem unabhängigen Medienunternehmen, denn viele Menschen sorgten sich bereits wegen der Korruption, den schleppenden Fortschritten bei der Entwicklung und einer kürzlichen Entführungswelle.\n„Die Menschen denken, dass die Regierung und der Präsident für die Zukunft des Landes verantwortlich sind und er derjenige sein sollte, der Lösungen für die Probleme findet“, erklärt er.\nOmar Sultane, ein Demonstrant, sagte, die Menschen wollten einfach nur Stabilität.\n„Keinen interessieren Renamo und Frelimo, sie wollen einfach nur wieder Frieden und benutzbare Straßen“, erklärte er.\nKinder sollten Mythen und Legenden als „Vorbilder für das Leben“ beigebracht bekommen, meint ein Autor.\nDie Geschichten von Thor zeigten, dass „brutale Kraft keine Chance hat gegen clevere Tricks“, und die Artus-Legende demonstriere, wie wichtig es sei, einen Traum zu haben.\nViele der Mythen seien allerdings „bei weitem zu wild, zu anstößig und in manchen Fällen zu schmutzig, um an Schulen gelehrt zu werden“, weshalb Crossley-Holland für eine „sorgfältige Auswahl“ altersgerechter Werke plädierte.\n„Ich finde es wundervoll, dass in Amerika Mythen und Folklore bereits Teil der Bildung sind“, sagte er.\nIch habe das schon seit zwanzig Jahren als Plan vorgeschlagen.\nEr fügte hinzu, bei Autoren und Lehrern, die „übermäßig didaktisch“ seien, würden Kinder „komplett abschalten“, denn in unterhaltsamen Geschichten würden die Botschaften „unterschwellig“ vermittelt.\nCrossley-Holland, der Beowulf aus dem Angelsächsischen übersetzt hat und Autor des Penguin Book of Norse Myths und der British Folk Tales ist, erklärte: „Man kann bestimmte Absichten verfolgen, aber man sollte sie möglichst im Hintergrund halten.“\nDer vielleicht größte Unterschied zwischen einem erwachsenen Autor, der für Erwachsene schreibt, und einem Autor, der für Kinder schreibt, liegt in der Notwendigkeit, Hoffnung zu vermitteln.\nNicht alles muss vereinfacht werden oder zum Happy End führen, aber es gibt einen immanenten Sinn für Gut und Böse.\nDieser muss unterschwellig dargestellt sein, durch die Geschichte offenbart werden und nicht erklärt.\nDas ist die alte Geschichte vom Zeigen statt Erzählen.\nHansjakob zieht noch einmal in Freihof\nVor 100 Jahren hat Heinrich Hansjakob seinen Altersruhesitz in Haslach bezogen, am Sonntag wurden seine letzten Jahre im \"Freihof\" lebendig.\nDie vielen Zuschauer waren vom äußerst kurzweiligen Szenenspiel begeistert.\nVon der Ankunft über die Verleihung der Ehrenbürgerschaft bis hin zu seinem Tod hatte Drehbuchautor und Hansjakobdarsteller Alois Kraftzcyk ein unterhaltsames Stück entworfen, das unter der Regie von Cornelia Volk viel Beifall bekam.\nMarcus Zagermann nahm das Publikum als Sprecher mit durch die zehn verschiedenen Szenen, erklärte Zusammenhänge und überbrückte Zeitsprünge von der Jugend bis zur nahenden Pensionierung.\nAm 22. Oktober 1913 kommt Hansjakob heim in seinen Kinderhimmel, in seinen Freihof.\nUnd dann begann das Szenenspiel, in dem Alois Krafczyk einmal mehr in seiner Paraderolle als großer Sohn der Stadt glänzte.\nStilecht fuhr er mit dem Zweispänner und \"Schwarzwälder Füchsen\" von Erich Becherer aus Mühlenbach vor.\nEr wurde nicht nur vom Publikum mit viel Applaus empfangen, auch seine Schwester Philippine hieß ihn willkommen.\nBilly Sum-Hermann verstand es unglaublich gut, sich in die Rolle der Schwester hineinzuversetzen und verlieh ihr in Mimik und Gestik ungeheures Leben.\nZwischen den einzelnen Spielszenen spielte die Mühlenbacher Bauernkapelle passend ausgewählte Musikstücke und rundete damit die Aufführung ab.\nZur Verleihung der Ehrenbürgerwürde gab sich dann Haslachs Bürgermeister Heinz Winkler die Ehre, der in Vertretung des damaligen Amtsinhabers Hättich zusammen mit einem Teil des Stadtrates seine Aufwartung machte.\nIhre Aufwartung machten anschließend die Dreikönig- singer, die Hansjakob zu dem Ausruf veranlassten: \"Ach wie schön, da werden wieder Jugenderinnerungen an meine eigene Dreikönigzeit lebendig\".\nMit ihrem Lied \"O Jesulein\" erfreuten sie das Publikum im Freihof ebenso wie die Storchentagskinder mit ihrem lauten \"Heraus, Heraus\".\nSeine Kritik an der Amtskirche hatte Hansjakob damals genauso geäußert, wie seine Bedenken über die Auswüchse in der Landwirtschaft, die Folgen der Industrialisierung oder die Auswirkungen des Krieges.\nIn der Heimaterde, hinter seiner Grabkapelle auf der Brand bei Hofstetten, fand er seine Ruhestätte.\n\"Ein unruhiger Geist hatte endlich seine Ruhe gefunden und war für immer heimgegangen\", hieß es am Ende des Szenenspiels.\nViel Applaus und viele lobenden Worten gab es vom Publikum für die Aufführung.\nBasketball: Die Hoffnung der Neckar Riesen wächst\nDie Chancen auf den Ligaverbleib der sportlich abgestiegenen Ludwigsburger Bundesliga-Basketballer sind gestiegen.\nDenn sollte es ein Wildcard-Verfahren geben, dann gibt es für die Neckar Riesen nun einen Mitbewerber weniger.\nDas Basketball-Projekt Hamburg Towers verzichtet auf eine Bewerbung für einen möglichen Nachrückerplatz.\n\"Wir werden nicht am Wildcard-Verfahren teilnehmen\", sagte Ex-Nationalspieler Pascal Roller, der seit 2012 das Konzept für einen Proficlub in der Hansestadt aufstellt.\nEin erstes Aufatmen war aus Ludwigsburg dennoch nicht zu vernehmen.\n\"Wir beschäftigten uns nicht mit dem Wildcard-Verfahren, so lange nicht feststeht, dass Düsseldorf keine Lizenz erhält\", sagte Neckar-Riesen-Boss Alexander Reil unserer Zeitung.\nBis zum 23. Mai kann Aufsteiger Düsseldorf Baskets noch Unterlagen beim Schiedsgericht einreichen und seine wirtschaftliche Bundesliga-Tauglichkeit nachweisen.\nBisher wurde den Rheinländern die Lizenz aber zweimal verweigert.\nDas Schiedsgericht ist die letzte Instanz.\nHaigerloch: Abendmahlskirche rückt in den Blickpunkt\nAls Beitrag der Stadt zum 150-jährigen Bestehend der Evangelischen Kirche in Haigerloch widmet das Kultur- und Tourismusbüro der Stadt die letzte ihrer diesjährigen öffentlichen Themenführungen am Sonntag, 27. Oktober, der Abendmahlskirche.\nNach dem Besuch des Atomkeller-Museums soll die Haigerlocher Zeit nach 1850 betrachtet werden, als Haigerloch unter preussische Herrschaft kam.\nKrönender Schlusspunkt ist dabei ein Besuch in der Abendmahlskirche.\nDort bekommen die Führungsteilnehmer die Geschichte vom Bau der Kirche erzählt und gewinnen Einblicke in die Entwicklung der evangelischen Gemeinde in einer durch und durch katholischen Gegend.\nNicht zuletzt fällt in der Kirche auch der Blick auf das von Friedrich Schüz mit Unterstützung von Walter Kröll und Georg Halbritter geschaffene Abendmahlgemälde.\nEs ist eine orginalgetreue Reproduktion des berühmten Mailänder Vorbildes von Leonardo da Vinci.\nTreffpunkt zu der andert­halbstündigen Führung ist um 15 Uhr am Atomkeller-Museum.\nKarten gibt es an der Kasse des Atomkellermuseums.\nFür Fragen und Informationen steht das Tourismusbüro der Stadt Haigerloch zur Verfügung.\nSnowden könnte auch in Russland aussagen\nDer frühere US-Geheimdienstexperte Edward Snowden könnte in der US-Spähaffäre auch in seinem russischen Asyl Aussagen machen.\nVertreter der Bundesgeneralstaatsanwaltschaft könnten entweder schriftlich Fragen stellen oder den 30-Jährigen auch persönlich in Russland treffen.\nDas meldete die Agentur Interfax unter Berufung auf nicht näher benannte Kreise, die mit der Lage vertraut seien.\nEine solche Frage könne zwischenstaatlich geklärt werden, hieß es.\nEine Ausreise Snowdens aus Russland ist praktisch ausgeschlossen.\n\"In diesem Fall verliert er seinen Flüchtlingsstatus\", zitierte die Agentur ihre Quelle.\nWeil Deutschland Verbündeter der USA sei, drohe Snowden dort die Auslieferung, hieß es weiter\nLanger Atem macht sich bezahlt\nSechs Männermannschaften kämpften beim Tennisturnier der Vereine um den Siegertitel.\nAm Ende entschied die Ausdauer vom Team Maier/Bronner das letzte Match.\nEin Traumwetter hatte die Tennisabteilung der Sportfreunde Rohrdorf zum Turnier der örtlichen Vereine und Freunde erhalten.\nDer Spaß am Tennisspielen stand im Vordergrund des Turniers.\nEs standen fünf Spiele pro Team auf dem Plan, wobei jeder gegen jeden spielte.\nGespielt wurde im Doppelmodus mit einem langen Satz bis zu neun Punkten oder maximal 45 Minuten Dauer.\nAnja Schlichter leitet das Turnier\nDie Turnierleitung lag in den bewährten Händen von Anja Schlichter, unterstützt wurde sie von Carmen Müller und Inga Kronemeyer.\nNach den ersten drei Spielen und einer Mittagspause mit Pasta ging das Turnier in die entscheidende Phase.\nDie Favoriten Andre Maier/Matthias Bronner lagen punktgleich mit Michael Klippel und Sadmin Osmicic (beide Teams der SG Rohrweiler), so dass die letzten beiden Matches die Entscheidung bringen mussten.\nBei der Siegerehrung konnte Carmen Müller den Wanderpokal schließlich an Andre Maier/Matthias Bronner überreichen, die auf der Zielgerade den längsten Atem hatten.\nDen zweiten Platz belegte das Doppel Michael Klippel/Sadmin Osmicic.\nDas Bronzetreppchen erreichten Rainer und Bernd Maier des Teams Asphaltriecher.\nBei Spätnachmittagsonne und Kaffee und Kuchen fand der gelungene Ausklang des Turniers statt.\nAm letzten Augustwochenende ist das Schwarzwälder Freilichtmuseum Vogtsbauernhof in Gutach bei Hornberg wieder fest in Kinderhand.\nTraditionell heißt das Museum die Besucher am Samstag und am Sonntag, den 24. und 25. August, im Rahmen des Sommerferienprogramms zu einem bunten Kinder- und Familienfest mit zahlreichen Mitmachaktionen und Veranstaltungen willkommen.\n\"Groß und Klein können an beiden Tagen verschiedene alte Handwerke erlernen\", heißt es in der Pressemitteilung.\nOb Seife herstellen, Kerzen drehen, filzen oder Seile fertigen, für jedes Alter ist das Passende dabei.\nDen Kindern stehen regionale Handwerker von 11 bis 17 Uhr helfend zur Seite.\nIn der Museumswerkstatt wird ebenfalls gewerkelt.\nBeim Bau von Kuckuckspfeifen, Wasserrädern oder Kreiseln können die jungen Gäste ihr handwerkliches Geschick unter Beweis stellen.\nViel Spaß versprechen auch die vielen alten Spiele, wie Schubkarren-Rennen oder Stelzenlaufen.\nSchnelligkeit und Koordination sind hier gefragt.\nFür alle kleinen Detektive bietet das Freilichtmuseum am Samstag und am Sonntag, jeweils um 12 und 14 Uhr, eine Rätselführung durch das Museum an.\nAuf einem Geländerundgang müssen die Kinder erraten, welche Geschichten der Wahrheit entsprechen oder doch gelogen sind.\nDarüber hinaus haben die Besucher die besondere Gelegenheit, das Freilichtmuseum während einer Kutschfahrt mit Schwarzwälder Füchsen kennenzulernen.\nNicht nur Pferde, sondern auch viele weitere Tiere wie Schafe, Ziegen, Kühe und Hühner sind auf dem Gelände anzutreffen und zu bestaunen.\nZusätzlich dürfen sich alle Kinder am Sonntag auf den Clown Otsch freuen, der seinen Schabernack ab 11 Uhr mit den Museumsgästen treibt.\nGemütlich und märchenhaft geht es unterdessen bei Hermann Büttner zu.\nDer Geschichtenerzähler nimmt die kleinen Gäste um 11, 13 und 15 Uhr mit in die wunderbare Welt der Märchen.\nZudem führt die Kindertrachtentanzgruppe aus Gutach um 11.30 Uhr traditionelle Tänze vor.\nDes Weiteren lassen sich an beiden Veranstaltungstagen von 11 bis 17 Uhr zahlreiche Handwerker wie der Besenbinder, die Näherin, die Spinnerin, die Weberin und die Bäckerin bei ihrer traditionellen Arbeit über die Schulter schauen.\nNoch bis zum Ende der Sommerferien in Baden-Württemberg erwartet die Besucher des Freilichtmuseums ein abwechslungsreiches Ferienprogramm.\nIn einer neuseeländischen Kleinstadt gilt Burt Muro als liebenswerter Kauz, weil er sich vorgenommen hat, mit seinem Motorrad, Baujahr 1920, an einem Rennen in Amerika teilzunehmen.\nBurt ist trotz eines Herzfehlers nicht von seinem Traum abzubringen.\nMit seinem Ersparten, einpaar Spenden und einer Hypothek auf seinen alten Werkstattschuppen setzt er per Schiff nach Los Angeles über.\nNach dem Film gibt es Kaffee, Tee und Kuchen.\nSchrilles Piepsen stört Anwohner\nRhenus Midgard hat auch an Land kräftig investiert.\nSie verteilen die von den Schiffen kommende Kohle auf die Halde.\nDas Unternehmen hat am Standort gleich mehrere Eisen im Feuer.\nNeben dem Kohleimport setzt Rhenus Midgard unter anderem auf Windanlagen-Logistik.\nSchwarz schimmert die Steinkohle auf dem Lagerplatz vor dem Deich.\nZwei gewaltige blaue Haldenschütt- und Rückladegeräte verteilen oder verladen die Kohle hier nach Bedarf.\nBei jeder Bewegung der Umschlaggeräte tönt ein schrilles Warngeräusch übers Gelände.\n\"Die Signale dienen der Sicherheit und sind gesetzlich vorgeschrieben\", sagt Matthias Schrell, Geschäftsführer der Rhenus Midgard in Wilhelmshaven.\nBei ungünstig stehendem Wind ist das leider weithin zu hören - und so gab es bereits einige Beschwerden von Leuten aus dem Stadtnorden.\nEr nehme die Klagen sehr ernst und habe deshalb Kontakt aufgenommen mit den Betroffenen, sagt der 40-Jährige.\nIn enger Absprache mit den Behörden sei man nun dabei, die Warnsignale mit technischen Maßnahmen leiser zu halten.\nAuch künftig setze er auf den offenen Dialog mit den Nachbarn.\nDenn Matthias Schrell hat noch einiges vor am Standort.\nMit dem Ausbau der Niedersachsenbrücke setzt Rhenus Midgard weiterhin auf den Kohleimport für Kraftwerke und ist auf diesem Sektor einer der Großen in Europa.\nDank der auf 18,5 Meter vertieften Liegewanne vorm Terminal können längst auch Capesize-Bulkcarrier hier abgefertigt werden.\n\"In diesem Jahr wollen wir beim Umschlag die 3-Millionen-Tonnen-Marke knacken\", so Schrell.\nNeben dem Eon-Kraftwerk vor Ort geht die Importkohle zu Kraftwerken im Binnenland.\nWenn dann noch das GDF-Suez-Kraftwerk ans Netz gehe, seien gut 5 Millionen Tonnen Kohleimport pro Jahr realistisch.\nDie drei Schiffsentlader auf der Brücke sowie das zweite Transportband könnten bis zu 10 Millionen schaffen.\nBayerns Basketballer trotz erster Niederlage optimistisch\nSelbst die erste Niederlage in der Euroleague konnte bei den Basketballern des FC Bayern München den riesigen Optimismus nicht schmälern.\n\"Niemand kann uns verbieten daran zu glauben, auch gegen das beste Team Europas der vergangenen beiden Jahre zu gewinnen\", bilanzierte Bayern-Coach Svetislav Pesic nach dem unglücklichen 83:88 (39:47) am Donnerstagabend bei Titelverteidiger Olympiakos Piräus.\nWir haben die Message gesendet: Auch in München existiert Basketball!\nBei ihrem erst dritten Auftritt in der europäischen Königsklasse verkauften sich die Münchner lange sehr gut, waren in den entscheidenden Phasen aber einfach nicht abgeklärt genug.\nDie Gäste schafften zunächst das Kunststück, einen 15-Punkte-Rückstand 13 Minuten vor Schluss noch in eine Führung umzuwandeln, ehe Piräus dem Spiel erneut eine Wende gab.\n\"Wir haben uns unglaublich zurückgekämpft gegen den zweimaligen Euroleague-Champion, aber dann wieder leichtsinnige Fehler gemacht\", sagte Bayern-Profi Yassin Idbihi.\nWir sind stolz auf unsere Leistung, aber wir wollen jedes Spiel gewinnen.\nMalcolm Delaney und Nihad Djedovic waren die erfolgreichsten Werfer der Münchner, die in den ersten beiden Partien gegen den italienischen Serienmeister Montepaschi Siena und den polnischen Titelträger Zielona Góra deutliche Siege gefeiert hatten.\nBen Greenman: Zehn Jahre New York Comedy Festival: The New Yorker\nMan könnte sagen, dass New York City die Geburtsstätte von Stand-up Comedy in Amerika ist: Vor knapp hundert Jahren fing der Varietekünstler Frank Fay, der als Conférencier im Palace Theatre am Broadway arbeitete, damit an, der Menge direkt Witze in Form eines Gesprächs zu erzählen.\nIm Laufe der Jahre wurde Fays Innovation ausgebaut, so wie zuletzt auf dem New York Comedy Festival.\nIns Leben gerufen und geleitet von Caroline Hirsch, der Gründerin der Stand-up-Institution Carolines, feiert das Festival in diesem Jahr sein zehnjähriges Jubiläum mit über sechzig Shows in kleinen Clubs und großen Theatern.\n„Die meisten dieser Headliner fingen bei Carolines an und wurden dann immer erfolgreicher, bis sie irgendwann zu bekannt waren, um in einem Club aufzutreten“, sagte Hirsch.\nWir haben dieses Festival konzipiert, damit wir weiter mit ihnen arbeiten können.\nBei der diesjährigen Veranstaltung gibt es Auftritte von Wanda Sykes, Kathy Griffin und Bill Maher sowie auch von „Stand Up for Heroes“, einer jährlichen Musik- und Comedy-Benefizveranstaltung für Armeeveteranen im Madison Square Garden, bei der unter anderem Bruce Springsteen, Jon Stewart, Roger Waters und Bill Cosby auftreten.\nMit dem Festival ist auch die Welt der Comedy gewachsen.\nEine Reihe der Comedians, die dieses Jahr am Festival teilnehmen, sind über eher unkonventionelle Wege bekannt geworden, wie beispielsweise Sendungen auf kleineren Fernsehkanälen wie Comedy Central, FX und Spike.\nNick Kroll wurde mit einer Sitcom im Kabelfernsehen bekannt (die ironisch-schlüpfrige Fantasy-Football-Serie „The League“ auf FXX) und hat jetzt seine eigene Sketch-Show auf Comedy Central.\nJenny Slate war sowohl bei „Saturday Night Live“ als auch bei „Parks and Recreation“ Teil der Besetzung, obwohl sie am bekanntesten für ihre virale Videoserie „Marcel the Shell with Shoes On“ ist.\nSowohl Kroll als auch Slate und andere junge Comedians mit charakteristischen Stimmen (der surreal pessimistische Anthony Jeselnik, der ironische, auf Rassenthemen konzentrierte W. Kaumau Bell) sind Produkte der dezentralisierten Welt der amerikanischen Comedy.\nZu den größten Besuchermagneten des Festivals gehört ein Interview: David Steinberg spricht mit Larry David.\nSteinberg begann als Stand-up Comedian, hat sich aber zu einem angesehenen Fernseh- und Filmregisseur sowie zu einem inoffiziellen Comedy-Historiker entwickelt.\nVon 2005 bis 2007 moderierte er eine Fernsehsendung mit dem Titel „Sit Down Comedy with David Steinberg“ bei TV Land.\nDas Treffen findet in der Town Hall mitten in Manhattan statt.\n„Die Stadt ist definitiv in der Comedy-DNA von Larrys gesamter Arbeit“, sagte Steinberg.\nEr hat mir erzählt, wenn er hier ist, dann gehe er manchmal durch die Gasse zwischen zwei Gebäuden und denkt sich: Hey, wenn ich mein ganzes Geld verliere, dann lebe ich vielleicht hier.\nIran zufrieden mit Prozess der Atomverhandlungen\nDer Iran zeigt sich eine Woche vor dem nächsten Atomtreffen mit den fünf UN-Vetomächten und Deutschland zufrieden mit dem Verhandlungsprozess.\n\"Nach Jahren habe man nun eine Einigung mit der Internationalen Atomenergiebehörde, um die Differenzen der letzen Jahre auszuräumen\", schrieb Außenminister Mohammed Dschawad Sarif auf seiner Facebookseite.\nEs wäre zwar noch ein langer Weg, aber der Atomchefunterhändler sei mit dem Verhandlungsprozess zufrieden und auch optimistisch, dass am Ende beide Seiten zu einer Lösung kommen.\nDrama in Uruguay: Jungen töten Spielkamderaden mit Machete\nZwei Kinder haben in Uruguay den Mord eines 11-Jährigen eingestanden.\nDie beiden 14 und 12 Jahre alten Jungen hatten ihr Opfer eingeladen, mit ihnen auf Vogeljagd zu gehen.\nMit Macheten und Messern bewaffnet erstachen sie am Dienstag den 11-Jährigen und warfen den Leichnam in einen Brunnen, berichtete die Zeitung \"El País\" am Donnerstag.\nAnschließend hätten sie vor ihren Wohnungen in einem Arbeiterviertel Fußball gespielt.\nDer Leichnam wurde in der folgenden Nacht in der Ortschaft Cerro Pelado, 15 Kilometer nördlich vom exklusiven Strandort Punta del Este aufgefunden.\nAls Alibi sollte eine fünfjährige Halbschwester des Jüngeren, die sie mitgenommen hatten, aussagen, sie sei von dem Jungen sexuell angegriffen worden.\nAls das Mädchen aber vor der Polizei den Tathergang ohne Erwähnung eines Angriffs gegen sie beschrieb, gaben die zwei Jungen die vorsätzliche Tötung des 11-Jährigen zu.\nAls Grund nannte der Ältere unter anderem eine Rivalität im Fußballspiel.\nEr wurde vorläufig in eine psychiatrische Jugendanstalt eingeliefert.\nZuhälter muss ins Gefängnis\nWegen ausbeuterischen Menschenhandels, Zuhälterei, Bedrohung, Beleidigung und gefährlicher Körperverletzung hat das Landgericht Konstanz einen 33-jährigen Mann aus St. Georgen zu dreieinhalb Jahren Haft verurteilt.\nDer ehemalige Bundeswehrsoldat, der nach zwei Einsätzen in Afghanistan als Türsteher arbeitete, legte im Rahmen einer Prozessabsprache ein Geständnis ab.\nDemnach hat er in fünf Fällen Frauen über Internet- oder Telefonkontakte kennengelernt, die er nach einigen Wochen gegen ihren Willen auf den Strich schickte.\nWiderstand pflegte er mit Gewalt und Drohungen zu brechen.\nDie Einnahmen der Frauen, die zum Teil jahrelang für ihn anschafften, behielt er ein.\nDurch Konfiszierung von Handys und SIM-Karten unterband er Kontakte der Frauen zur Außenwelt.\nZusammen mit einem Kollegen, der die Frauen vermittelte, brachte er sie in verschiedene Bordelle im Südwesten.\nDort ließ er sie zum Teil überwachen, um ihre Einnahmen zu kontrollieren.\nVor Gericht behauptete der Angeklagte zunächst, er leide unter einem schweren Trauma, nachdem Kollegen in Afghanistan neben ihm bei einer Explosion ums Leben gekommen seien.\nNachdem ein psychiatrischer Sachverständiger große Zweifel an der psychischen Einschränkung und damit an einer eingeschränkten Schuldfähigkeit andeutete, legte der 33-Jährige ein umfassendes Geständnis ab.\nDas Gericht musste keine der geschädigten Frauen mehr vernehmen.\nWie ein Kripo-Beamter berichtete, konnten nach einer ersten Anzeige durch Telefonüberwachungsmaßnahmen mindestens vier weitere Fälle von ausbeuterischem Menschenhandel ermittelt werden.\nDie abgehörten Gespräche seien von hoher Aggression geprägt gewesen.\nIn späteren Vernehmungen hätten die Geschädigten ihr Martyrium bestätigt.\nEine weitere Zeugin, bei der eine der Frauen am ganzen Körper blaue Flecken entdeckt hatte, habe bis heute keine Aussage gemacht.\nEs handle sich um \"eine völlig gebrochene Persönlichkeit\", die Gewalt und Ausbeutung in diesem Metier als normal ansehe.\nDer Angeklagte bedauerte sein Verhalten gestern.\n\"Er habe sich aus diesen Kreisen gelöst und wolle nach der Haft ein ganz normales Leben führen\", meinte er.\nÖlpreis gibt weiter nach bis auf 96 USD pro Barrel\nDer Ölpreis ist auch am Freitag weiter gefallen, nachdem Sorgen über ein hohes Angebot einen Bericht überschatteten, wonach der energiehungrige Fertigungssektor Chinas wächst.\nDie Referenzrohölsorte für Lieferungen im Dezember war am späten Morgen in Europa im elektronischen Handel an der New York Mercantile Exchange um 14 Cent auf 96,24 USD pro Barrel gefallen.\nDer Vertrag fiel um 39 Cent am Donnerstag, was einen Preisverfall von 5,8 Prozent im Oktober bedeutete.\nDas große Rohölangebot hat die Preise in den vergangenen Wochen belastet.\nDas Energieministerium der USA erklärte am Mittwoch, das US-Angebot habe letzte Woche um 4,1 Millionen Barrel zugenommen.\nIm Laufe von fünf Wochen war das Angebot um 25 Millionen Barrel gestiegen.\nDoch am Freitag gab es Hinweise auf stärkere Nachfrage durch zwei Berichte über einen Aktivitätszuwachs in der chinesischen Fertigung.\nDies deutet auf eine fortgesetzte Erholung der Wirtschaft Chinas hin, deren Wachstum auf 7,8 Prozent im dritten Quartal angestiegen war, nachdem es im vorherigen Quartal auf dem niedrigsten Stand seit zwei Jahrzehnten angelangt war.\nRohöl von der Sorte Brent, ein Referenzwert für internationales Rohöl, das auch von US-amerikanischen Raffinerien verwendet wird, fiel an der ICE Exchange in London um 26 Cent auf 108,58 USD pro Barrel.\nGericht blockiert Entscheidung zur Stop-and-Frisk-Richtlinie des NYPD\nEin Bundesberufungsgericht in den USA blockierte am Donnerstag die Anordnung einer Richterin, die Änderungen am Stop-and-Frisk-Programm („Anhalten und durchsuchen“) des New Yorker Polizeidepartments gefordert hatte, und entband die Richterin von dem Fall.\nDas 2. US-Berufungsgericht erklärte, die Entscheidungen von Richterin Shira Scheindlin würden ausgesetzt, bis über eine Berufung der Stadt entschieden sei.\nDie Richterin hatte im August geurteilt, die Stadt verstoße gegen die Verfassung mit der Art und Weise, wie das Programm für das Anhalten und Befragen von Personen umgesetzt werde.\nDie Stadt legte Berufung gegen ihre Einschätzung und die angeordneten Abhilfemaßnahmen ein, einschließlich der Entscheidung, eine Überwachungsstelle einzurichten, die die Polizei bei der Änderung ihrer Richtlinie und des entsprechenden Schulungsprogramms unterstützen solle.\nDas Berufungsgericht hörte am Dienstag die Argumente zur geforderten Aussetzung.\nDas Berufungsbericht erklärte, die Richterin müsse von dem Fall entbunden werden, da sie den Verhaltenskodex für US-amerikanische Richter verletzt habe, indem bestimmt ist, dass ein Richter den Anschein der Parteilichkeit vermeiden soll; dies wurde teilweise mit einer Reihe von Medieninterviews und öffentlichen Aussagen begründet, in denen sie öffentlich auf die Kritik des Gerichts reagiert hatte.\nDie Richterin hatte geurteilt, Polizeibeamte verletzten die Bürgerrechte von Zehntausenden von Menschen, weil sie in unangemessener Weise gezielt schwarze und lateinamerikanische Männer mit dem Stop-and-Frisk-Programm ins Visier nähmen.\nSie ernannte eine externe Stelle zur Überwachung der Umsetzung wesentlicher Änderungen, einschließlich Reformen bei Richtlinien, Schulung und Dienstaufsicht, und ordnete ein Pilotprogramm mit am Körper getragenen Kameras in Vierteln an, in denen die meisten Kontrollen durchgeführt wurden.\nIm August erklärte sich die Stadt New York bereit, die Praxis der Speicherung von Namen und Adressen von Personen zu beenden, die nach einer Kontrolle durch die Polizei wieder entlassen wurden.\nEine mündliche Verhandlung zur Berufung der Stadt ist nach dem 14. März 2014 geplant.\nDie Stop-and-Frisk-Taktik wurde von einer Reihe von Bürgerrechtsverfechtern kritisiert.\nKontrollen dieser Art gibt es seit Jahrzehnten in verschiedenen Formen, doch stieg die Anzahl der aufgezeichneten Kontrollen während der Amtszeit des parteilosen Bürgermeisters Michael Bloomberg auf ein Allzeithoch von 684.330 im Jahr 2011, die meisten davon schwarze und lateinamerikanische Männer.\n2004 wurde von vier Männern, die alle Minderheiten angehörten, Klage eingereicht, die sich zu einer Sammelklage entwickelte.\nBefürworter von Änderungen am Stop-and-Frisk-Programm des NYPD sagen, die Veränderungen werden unfaire Praktiken beenden und eine vertrauenswürdigere und effektivere Polizei schaffen sowie die Art und Weise beeinflussen, wie andere Polizeipräsidien die Regelung einsetzen.\nGegner sind der Ansicht, die Veränderungen würden die Moral der Polizei dämpfen, aber nicht die Kriminalität; auch würde Geld verschwendet und das breitere Problem einer Polizei nicht gelöst, die nach dem Wegfall Tausender von Stellen im letzten Jahrzehnt unter Druck stehe.\nDie Richterin wies darauf hin, dass sie die Stop-and-Frisk-Praxis nicht beende, die verfassungsmäßig sei, sondern nur die Art der Umsetzung der Kontrollen durch das NYPD reformiere.\nVom Glück der träumenden Kamele\nGlück ist eine Oase, die zu erreichen nur träumenden Kamelen gelingt\nMit dieser Beduinenweisheit beschrieb der erste Vorsitzende Wolfgang Henne die Geschichte und Faszination des Vereins \"Helfende Hände\".\nAm Samstagnachmittag wurde der zehnte Geburtstag des Vereins gefeiert, der schon beachtliche Erfolge aufweisen kann.\nDer erste Vorsitzende Henne berichtete ausführlich von der Arbeit des Vereins.\nEr selbst war im Jahr 2004 das erste Mal in Mauretanien im Cheijk-Zajed-Krankenhaus in Nouakchott.\nIn der Folge entwickelte sich eine weitere Kooperation, und der Gynäkologe Henne führte vor Ort auf mehreren Reisen zahlreiche Operationen durch.\nWährend der Reden wurden Bilder von den Einsätzen auf einer großen Leinwand gezeigt, so dass sich die Gäste der Jubiläumsveranstaltung von den erwähnten Aktionen ein Bild machen konnten.\nDas Wüstenfahrzeug des Vereins wurde auch gezeigt.\nEs handelt sich um ein ehemaliges Bundesgrenzschutzfahrzeug.\nRainer Prewo, der ehemalige OB von Nagold, hatte den Vorschlag gemacht, dieses Fahrzeug mit einer Fotovoltaikanlage auszustatten und plant nun, laut Henne, beim Verein in beratender Funktion tätig zu werden.\nIm Jahr 2008 hat die Zimmerei Schleeh aus Baiersbronn in der Rekordzeit von knapp einer Woche die Krankenstation in Socogim, ein Elendsviertel am Rande der Hauptstadt erstellt - ehrenamtlich.\nHenne erwähnte auch ein neues Mutter-Kind-Krankenhaus in Nouakchott\nBesonders interessant in Zeiten in denen in Nagold die Geburtsklinik wegrationalisiert werden soll.\nMan lerne viel in Afrika als Mediziner, so Henne, zum Beispiel Entschleunigung gegen Burn-out.\nAufgrund der politischen Unruhen im Land konnte man nicht so viele Reisen wie geplant unternehmen, aber dafür kamen viele Mediziner nach Deutschland, um hier in verschiedenen Bereichen zu hospitieren.\nAußerdem werden regelmäßig Container mit Material nach Afrika geschickt, so im März diesen Jahres medizinische Geräte, Medikamente, Verbandsmaterial, Krankenhausbetten und Brillen.\nMitinitiator Hans-Joachim Fuchtel selbst lieferte reichlich Lokalkolorit, indem er aus Mauretanien von zum mobilen Ziegenstall umgebauten Mercedes-Fahrzeugen erzählte und die Erlebnisse der Stammheimer Musiker, welche den Verein traditionell unterstützen, bei ihrer Mauretanienreise schilderte.\nAls seine persönlichen Beweggründe nannte er seine Arbeit im Bereich Rechnungsprüfung als junger Abgeordneter.\nAls ihm klar geworden sei, wie viel Geld unterwegs verloren ging, habe er beschlossen, den Afrikanern bei der Kontrolle eines Budgets durch das Volk zu helfen.\nAußerdem betonte Fuchtel, dass globale Wirtschaft auch globale Menschenliebe verlange.\nEs solle auch keineswegs vergessen werden, dass Afrika näher liegt als mancher denke.\nVon Gran Canaria sei es nicht weit nach Afrika.\nCoulson setzte Telefon-Hacking für das Überprüfen eines Tipps ein\nDer frühere News of the Word-Herausgeber Andy Coulson setzte angeblich „Telefon-Hacking, Überwachung und Konfrontation“ beim Versuch ein, einen falschen Tipp über eine Affäre des damaligen Innenministers Charles Clarke zu bestätigen.\nStaatsanwalt Andrew Edis QC erklärte dem Gericht im Old Bailey, News of the World habe im Mai 2005 ein falsches Gerücht dahingehend gehört, dass Clarke ein Verhältnis mit seiner „attraktiven Sonderberaterin“ Hannah Pawlby hätte.\nDie Zeitung beauftragte den Privatdetektiv Glenn Mulcaire damit, Pawlbys Voicemails zu hacken, und verfolgte sie, aber Coulson rief sie auch an und hinterließ Nachrichten, wie das Gericht erfuhr.\n„Nach Auffassung der Staatsanwaltschaft ist Coulson, der jetzt Herausgeber der NotW ist, niemand, der vor der Wohnung von Leuten steht und hofft, sie auf frischer Tat zu ertappen, sondern einer, der Leute gern mit einer Geschichte konfrontiert, um ihre Reaktion zu sehen“, erklärte Edis.\nEr sagte, NotW verwende drei Verfahren, um Geschichten investigativ zu recherchieren: Telefon-Hacking, Überwachung und Konfrontation.\nDer Herausgeber ist persönlich an der dritten Methode beteiligt.\nOffensichtlich weiß er von der zweiten, der Überwachung, anders kann es nicht sein.\nWie sieht es mit der ersten aus?\nWeiß er über das Telefon-Hacking Bescheid?\nEr streitet das ab, aber wir sagen: „Und ob er davon wusste.“\nGerüchte über eine Affäre Clarkes wurden zuerst von der Feature-Redaktion von NotW aufgegriffen, als einer Quelle, die sexuell an Pawlby interessiert war, gesagt wurde: „Verschwenden Sie nicht Ihre Zeit, sie ist mit Charles zusammen.“\nEin Band mit Voicemails von ihrem Telefon von mindestens drei Anlässen wurde im August 2006 in Mulcaires Wohnung sichergestellt.\nDie Ermittler fanden außerdem Einträge auf dem Computer des Detektivs, auf dem Pawlby und ihre Schwester als „Projekte“ gespeichert waren.\nIn der Zeit, als die Recherchen liefen, erhielten die Großeltern von Pawlby anonyme Anrufe, in denen sie nach Informationen über sie gefragt wurden, erklärte Edis.\nUnterdessen beaufsichtigten der ehemalige Chefreporter Neville Thurlbeck und der frühere Reporter James Weatherup die Überwachung der Bewegungen von Pawlby.\nAm 18. Juni 2005 hinterließ Coulson ihr eine Voicemail mit folgendem Inhalt: „Ich habe eine Story, die wir morgen herausbringen wollen, über die ich gern mit Charles sprechen möchte.“\nEdis erklärte, Coulsons Aktivitäten bei dieser Story folgten demselben Muster wie bei anderen wichtigen Persönlichkeiten, etwa dem früheren Innenminister David Blunkett.\nDie Geschworenen hörten am Donnerstag, dass Coulson Blunkett wegen einer Affäre mit einer verheirateten Frau konfrontiert habe, als er selbst mit der Mitangeklagten Rebekah Brooks liiert war, die damals verheiratet gewesen war.\nCoulson und Brooks streiten ab, sich mit anderen verschworen zu haben, zwischen dem 3. Oktober 2000 und dem 9. August 2006 Telefone zu hacken.\nMulcaire, Thurlbeck und Weatherup haben das Telefon-Hacking zugegeben.\nAus Protest gegen die geplante Reichensteuer wird der französische Fussball tatsächlich den ersten Streik seit 1972 durchziehen.\nEin Schlichtungstreffen geht ergebnislos zu Ende.\nIm Konflikt um die Reichensteuer haben sich die Regierung und der Profi-Fussball in Frankreich nach einem gescheiterten Schlichtungstreffen in eine Sackgasse manövriert.\nPräsident François Hollande empfing zwar am Donnerstag im Pariser Élysée-Palast Vereins- und Verbandsvertreter und hörte sich auch deren Klagen an.\nEr weigerte sich aber, den Fussball von der geplanten 75-prozentigen Abgabe auf Einkommen von mehr als einer Million Euro pro Jahr, die alle Firmen des Landes ab 2014 zwei Jahre lang zahlen sollen, zu verschonen.\nAuch die Gegenseite blieb hart.\nDen für Ende November angekündigten Streik werde man nun auch durchziehen, teilte der Chef Vereinigung der Profiklubs (UCPF), Jean-Pierre Louvel, mit.\nDie zwischen dem 29. November und dem 2. Dezember angesetzten Spieltage in der Ligue 1 und Ligue 2 fallen somit aus.\nGechingen: Kein absoluter Schutz möglich\n\"Wir wollen die Einwohner frühzeitig in die Planung einbinden\", eröffnete Bürgermeister Jens Häußler die Bürgerinformationsveranstaltung zum Hochwasserschutzkonzept in Gechingen.\nRund 80 Teilnehmer waren in die Gemeindehalle gekommen, um sich die geplanten Maßnahmen erklären zu lassen, Fragen zu stellen, Bedenken zu äußern und Ideen einzubringen.\nHäußler stellte klar: \"Die letztendlichen Entscheidungen fällen die Mitglieder des Gemeinderats\".\nDas Hochwasser, das Gechingen am 15. Mai 2009, unvorbereitet traf, sei ein einschneidendes Ereignis gewesen, das die Frage nach Schutzmaßnahmen für die Zukunft aufwarf, so Häußler.\nEine Flussgebietsuntersuchung war mit der Nachbargemeinde Aidlingen in Auftrag gegeben worden, die nun Grundlage für das Hochwasserschutzkonzept in Gechingen ist.\n\"Der Schutz möglichst vieler bebauter Grundstücke ist das Ziel\", so Häußler.\nZugrunde gelegt ist der Planung der Schutz vor einem laut Deutschen Wetterdienst statistisch alle 100 Jahre zu erwartenden Hochwasser.\nDer Klimaveränderung wird durch einen 15-prozentigen Zuschlag Rechnung getragen.\nIn Fachkreisen wird dies mit \"HQ 100aKlima\" bezeichnet.\nDie Wassermassen, die 2009 in Gechingen zu beträchtlichen Schäden geführt hatten, entsprachen einem 1000-jährigen Hochwasser.\n\"Einen absoluten Schutz gibt es nicht, aber eine relative Verbesserung können wir erzielen\", so Häußler.\nUm den Schutz HQ 100aKlima zu erzielen, müssen in Gechingen rund vier Millionen Euro investiert werden, wobei die Gemeinde mit Landeszuschüssen in Höhe von rund 70 Prozent rechnen kann.\nHäußler wies aber darauf hin, dass es die Förderung nur gebe, wenn ein Gesamtkonzept umgesetzt werde.\nDazu sei die Gemeinde auf die Mitwirkung der Bürger angewiesen.\nEin aufwändiges Planungs- und Genehmigungsverfahren müsse absolviert werden.\nIm besten Fall könne 2016 mit der Umsetzung begonnen werden.\nUnter anderem sieht das Schutzkonzept, das bereits in der vergangenen Woche im Gemeinderat präsentiert wurde (wir berichteten) lokale Maßnahmen im Zufluss des Flüsschens Irm aus dem Stammheimer Tal vor.\nIm Anschluss an die Präsentation des Hochwasserschutzkonzepts nutzten die Teilnehmer die Gelegenheit, ihre Anliegen einzubringen.\nUnter anderem wurde in Frage gestellt, warum nicht mehr Dämme und Rückhaltebecken zum Schutz des Ortes geplant seien.\nGregor Kühn, Fachplaner des beauftragten Ingenieurbüros Wald und Corbe aus Hügelsheim, der das Konzept vorstellte, betonte, dass es das Zusammenspiel aller vorgestellten Maßnahmen benötige, um in der Summe das gewünschte Ziel zu erreichen.\nDarüber hinaus sei man gehalten die wirtschaftlichste Lösung zu finden, so Joachim Wald von Wald und Corbe.\nUnmut herrschte bei Anliegern des Altorts, die selbst bei normalen Gewitterregen immer wieder unter einer Überlastung des Kanalnetzes zu leiden haben.\nDas Problem ist bei der Verwaltung bekannt und erste Maßnahmen wurden bereits ergriffen.\nHäußler wies jedoch darauf hin, dass die Richtlinien für Kanalsysteme andere seien, als für den Hochwasserschutz und dies nicht vermischt werden dürfe.\nDie Gemeinde sei verpflichtet, das Kanalnetz so auszulegen, dass zwei- bis dreijährige Regenereignisse verkraftet werden könnten.\nDie Abwasserkanäle größer zu dimensionieren, würde Millionen verschlingen.\nSchwerverletzte nach Zusammenstoß\nAm frühen Freitagnachmittag sind auf der Landesstraße 44 nahe Revensdorf zwei Autofahrer bei einem Frontalzusammenstoß schwer verletzt worden.\nDie Polizei sperrte die Straße sofort komplett, konnte aber zum Unfallhergang zunächst wenig sagen.\nAllerdings gebe es verschiedene Zeugenaussagen, die erst ausgewertet werden sollten.\nFest steht, dass die 19 Jahre alte Lenkerin eines VW Golf in Richtung Revensdorf fuhr und der 38-jährige Mann aus Gettorf ihr mit seinem Hyundai entgegen kam.\nBeide Fahrzeuge prallten zusammen, wobei die Frau so schwer eingeklemmt war, dass die Feuerwehr knapp eine halbe Stunde benötigte, um sie aus dem Fahrzeugwrack zu befreien.\nDie eigentliche Unfallursache blieb zunächst ungeklärt.\nBeide Verunglückten kamen in nahe gelegene Krankenhäuser.\nDie Strecke blieb etwa zwei Stunden voll gesperrt.\nMan könnte ihn den Dostojewski der USA nennen.\nPhilip K. Dick war ein Gottsucher, ein Metaphysiker, seine Romane und Erzählungen haben auch etwas Serielles.\nVerblüffend die Verwandtschaft im Äußeren: die stechenden Augen, der Bart, die hohe Stirn.\nUnd so, wie Fjodor M. Dostojewski mit seinem massiven Oeuvre als Ergründer und Apologet der russischen Seele zu verstehen ist, liest man Philip K. Dick als amerikanischen Propheten, der im eigenen Land durchaus etwas gilt.\nEinige Titel sind im Heyne Verlag erschienen, die Haffmans-Kassette mit den 118 Erzählungen vertreibt Zweitausendeins.\nDick erklärt Amerika - das Reich des atemberaubenden technischen Fortschritts, gepaart mit Paranoia, Sicherheitswahn und dem Glauben, auserwählt zu sein.\nDick hatte Gotteserlebnisse, seine späten Bücher lesen sich wie eine Mischung aus der Offenbarung des Johannes und einem Computer-Manual.\nVielleicht war er verrückt, hatten Drogen seinem Hirn zugesetzt.\nEr hat kapiert, früh schon, dass die Rechner Divinitäten sind.\nEr schrieb eine Theologie des Computers und fragte, was einen Menschen von einer Maschine unterscheidet, den Schöpfer von seinem Geschöpf.\nDas ist das \"Blade Runner\"-Problem.\nDas Töten.\nEin Meister der Science Fiction.\nEin fantastischer Schriftsteller.\nSeine Storys haben Filmregisseure wie Ridley Scott, Paul Verhoeven und Steven Spielberg inspiriert.\nDiese Geschichte ist jetzt besonders signifikant.\nDer \"Minderheiten-Report\" stammt aus dem Jahr 1956, er verströmt den Geruch des Kalten Kriegs und der McCarthy-Tribunale.\nEs wird hier das Prinzip des \"Prä-Verbrechens\" entwickelt, \"Pre-Crime\", also das, was inzwischen mehr oder weniger offizielle Doktrin des Weißen Hauses ist.\nIn Dicks Welt, die der unseren erschreckend gleicht, schauen Mutanten in die Zukunft - und die Polizei greift zu.\n\"Wir erfassen Individuen, die gegen keinerlei Gesetz verstoßen haben\", sagt der Chef der Behörde.\n\"Wir schnappen sie uns, noch bevor sie ein Gewaltverbrechen begehen können\".\nUnd: \"In unserer Gesellschaft gibt es keine Schwerverbrecher, dafür haben wir ein Straflager voller Pesudoverbrecher\". Sie lesen Zeitströme.\nSie nehmen an, dass Schlimmes geschieht, und verhindern, dass der kriminelle Gedanke in die Tat umgesetzt wird.\nDicks Erzählung wirkt wie die Blaupause für die Anti-Terror-Gesetze und den Abhörrausch der NSA.\nAntizipation des Anschlags: So funktioniert auch Obamas Drohnen-Philosophie und -Praxis.\nAber Dicks Story ist noch nicht zu Ende.\nDer Polizeichef beklagt, dass es keine Gewaltenteilung mehr gebe, das Militär kontrolliert den Alltag - und was vom Staat übrig ist.\nDann wird der Überwacher selbst überwacht und eines zukünftigen Verbrechens überführt.\nDas System dreht durch.\nEs ist perfekt, aber es lügt.\nEs erfindet seine eigenen Voraussetzungen.\nNimmt Irrtümer und Opfer nicht nur in Kauf, sondern baut sich darauf auf.\nDas System schafft die Gefahr, die es bekämpft.\nPhilip K. Dick lesen heißt, immer wieder, der Wahrheit näher zu kommen.\nSpähaffäre um Merkel in Russland aussagen\nDer frühere US-Geheimdienstexperte Edward Snowden könnte in der US-Spähaffäre um Bundeskanzlerin Angela Merkel auch in seinem russischen Asyl Aussagen machen.\nVertreter der deutschen Bundesanwaltschaft könnten entweder schriftlich Fragen stellen oder den 30-Jährigen auch persönlich in Russland treffen, meldete die Agentur Interfax.\nZuvor hatte der Grünen-Bundestagsabgeordnete Hans-Christian Ströbele gestern als erster deutscher Politiker Snowden in Moskau getroffen, um mit ihm über die Affäre zu sprechen.\nNSA-Enthüllungen verstärken Firmenparanoia wegen staatlicher Überwachung\nAn einem milden Tag Ende August flog ein deutscher Polizeihubschrauber tief über das US-Konsulat in Frankfurt am Main, der Finanzhauptstadt Deutschlands.\nAuf Anweisung des Bundesamtes für Verfassungsschutz und Terrorismusbekämpfung (BVT), des deutschen Innengeheimdienstes, sollte er das Dach des US-Außenpostens fotografieren, der sich weniger als 5 km von der Europäischen Zentralbank und der Bundesbank befindet.\nLaut deutschen Medien wollte das BVT das Vorhandensein von Überwachungsantennen nachweisen und die Aktion führte zu einem Wortwechsel zwischen den USA und dem deutschen Außenministerium in Berlin.\nJames Clapper, US-amerikanischer Director of National Intelligence, bestand im September erneut darauf, dass die USA keine Möglichkeiten der Auslandsspionage einsetzten, „um die Betriebsgeheimnisse ausländischer Unternehmen im Auftrag US-amerikanischer Firmen zu stehlen, damit diese ihre internationale Wettbewerbsfähigkeit oder ihren Gewinn ausbauen könnten.“\nDoch seit Edward Snowden, der zum Whistleblower gewordene einstige Mitarbeiter, mit der Veröffentlichung seines Füllhorns an US-amerikanischen Überwachungsgeheimnissen begonnen hat, sind sich europäische Regierungen und Unternehmenschefs nicht mehr sicher, ob sie den Direktor beim Wort nehmen können.\nBerichte, wonach die amerikanische National Security Agency die brasilianische Ölfirma Petrobas ausspioniert und sich Daten amerikanischer Cloud-Anbieter einschließlich Google und Yahoo beschafft hat, haben die Firmenparanoia wegen staatlicher Überwachung auf einen neuen Höchststand gebracht.\nDas Fass zum Überlaufen brachte die Enthüllung, dass Kanzlerin Angela Merkels Telefon verwanzt war, möglicherweise schon seit zehn Jahren.\nWenn die mächtigste Person in Europa ins Visier geraten kann, dann sind mit Sicherheit auch Unternehmensleitungen potenzielle Ziele.\nSnowden hat die intensive Zusammenarbeit zwischen US-Geheimdiensten und Unternehmen transparent gemacht.\nIch glaube, es ist denkbar, dass diese Daten zum gegenseitigen Nutzen verwendet werden.\n„Deutschland muss aufwachen“, erklärt Oliver Grün, Präsident des BITMi, der kleine und mittlere IT-Firmen in Deutschland vertritt.\nDeutsche Unternehmen glauben, die USA stellten nun ein beinahe ebenso großes Risiko dar wie China, wenn es um Industriespionage und Datendiebstahl gehe, so eine Umfrage, die im Juli von der Beraterfirma EY veröffentlicht wurde.\nIn den von Snowden durchgesickerten Dokumenten gab es allerdings bisher keinen Beleg, dass die USA die Betriebsgeheimnisse ausländischer Unternehmen an eigene Firmen weitergegeben haben.\nPolitiker haben ihre Sorge darüber zum Ausdruck gebracht, dass der EU bestimmte IT- und Internet-Möglichkeiten fehlten und sie ihre Abhängigkeit von den USA reduzieren sollte.\nDie Unternehmen sind diesbezüglich skeptisch.\nIm Bundestag wurde vorgeschlagen, wir sollten ein deutsches Google aufbauen.\nIch kann nur meine Augen schließen und sie langsam wieder öffnen ...\n„So funktioniert das nicht“, sagt Hasso Plattner, Vorsitzender des deutschen Softwareherstellers SAP.\nWenn man eine starke europäische IT-Industrie gewollt hätte, dann hätte man sie nicht vor 20 Jahren aussterben lassen sollen.\nAlles in Deutschland wird subventioniert, von der Kohle über Autos bis zur Landwirtschaft.\nAlles, bis auf die IT-Branche.\nDennoch haben Reichweite und technische Raffinesse der von den Snowden-Enthüllungen aufgedeckten US-Spionagebehörden Firmen schockiert, die vorher das größte Spionagerisiko in China gesehen hatten.\nBeim Cloud Computing findet eine große Veränderung statt, weil europäische Unternehmensleiter sich nun bewusster sind, dass in den USA gespeicherte Daten der dortigen Rechtsprechung unterliegen und deshalb potenziell gefährdet sind.\nLaut einer von der Cloud Security Alliance, einer Handelsinstitution, durchgeführten Umfrage verwarfen nach den Enthüllungen über die US-amerikanischen Data-Mining-Aktivitäten mit Prism etwa zehn Prozent der nicht in den USA ansässigen Mitglieder Pläne, einen amerikanischen Anbieter zu nutzen.\nJim Snabe, stellvertretender Geschäftsführer von SAP, sagt: „Wir sehen eine neue Frage von Kunden, die es vor einem Jahr noch nicht gab – sie lautet: Wo werden meine Daten gespeichert und können Sie garantieren, dass diese physisch in diesem Rechtsraum bleiben?“\nViele deutsche Unternehmensleiter vertreten die Ansicht, die jüngsten Berichte bestätigen einfach nur, was sie sowieso schon wussten, nämlich dass mächtige Staaten ihre wertvollsten Geheimnisse stehlen wollen und diese deshalb um jeden Preis bewacht werden müssen.\nDass Wirtschaftsspionage stattfindet, ist keine Überraschung.\nDas war schon immer so.\n„Es war viele Jahre lang ein Thema und hat sich durch die aktuelle Diskussion nicht fundamental geändert“, sagt Kurt Bock, Vorsitzender des Chemieunternehmens BASF.\nDie Amerikaner spionieren uns auf kommerzieller und industrieller Ebene aus, so wie wir das auch machen, denn es ist im nationalen Interesse, unsere Unternehmen zu verteidigen.\nDie Unternehmensführung prahlt normalerweise nicht über die Gegenmaßnahmen, die man ergriffen hat, denn das verschafft Angreifern Vorteile.\nIn großen Unternehmen wird Mitarbeitern schon lange eingebläut, dass das Mitnehmen eines kostenlosen USB-Sticks auf einer Messe oder das unbewachte Liegenlassen eines Laptops im Hotelzimmer nicht ratsam sei, gelinde gesagt.\nUlrich Hackenberk, Vorstandsmitglied bei Autohersteller Audi, sagt, dass es seit Jahren zur Standardpraxis gehöre, vor einem Vorstandstreffen die Handys einzusammeln, damit sie nicht als Abhörgeräte verwendet werden können.\nDas deutsche BVT rät Führungskräften, einfache Prepaid-Handys zu verwenden, wenn sie auf Auslandsreisen gehen, weil Smartphones möglicherweise kompromittiert sein können.\nDie Prepaid-Handys werden hinterher weggeworfen.\nEs besteht allerdings die Sorge, dass kleine und mittlere Unternehmen angreifbar gegenüber Hacking und Überwachung bleiben.\nIn Deutschland sind viele dieser Unternehmen weltweite Marktführer in der jeweiligen Nische.\n„Kleinen und mittleren Unternehmen fehlen oft die Erfahrung, das Personal und die finanziellen Ressourcen, um Betriebsgeheimnisse effektiv gegen nicht autorisierten Zugriff zu schützen“, warnt das BVT in einem Bericht.\nDie USA warnen eigene Firmen vor Wirtschaftsspionage durch andere Länder.\nLaut Washington Post wurden im US National Intelligence Estimate im Februar Frankreich, Russland und Israel hinter China auf Rang zwei der Länder eingeordnet, die sich zur Beschaffung von Wirtschaftsdaten des Hackings bedienten.\nEin Vorstandsmitglied eines deutschen Blue-Chip-Unternehmens stimmte zu, wenn es um Wirtschaftsspionage gehe, dann „sind die Franzosen die Schlimmsten“.\nBernard Squarcini, ehemaliger Leiter des französischen Innengeheimdienstes DCRL, wurde diesen Monat in einem Interview mit folgenden Worten zitiert: „Die Geheimdienste wissen sehr genau, dass alle Länder, selbst wenn sie im Kampf gegen den Terror zusammenarbeiten, ihre Verbündeten ausspionieren.“\nHechingen: Messe gibt Antwort auf Hochzeits-Fragen\n\"Die Ehe ist die wichtigste Entdeckungsreise, die der Mensch unternehmen kann\", sagte der Philosoph Sören Kierkegaard.\nTipps, wie zumindest die Hochzeitsfeier gelingt, gab nun eine Spezialmesse in der Domäne in Hechingen.\nVertreten waren wichtige Anbieter rund um eine Hochzeit.\nEin Trend: Der Retro-Look hat wieder Einzug gehalten.\nDas beginnt etwa bei den Hochzeitskleidern.\nWeiß ist Muss, am besten gedeckt oder in Creme.\nVorne sind die vielfach gerüschten und mit Stickereien versehenen Kleider geschlossen, oft mit einem Schleier, hinten hingegen gehen sie den Rücken hinab und enden oft in einer Schleppe.\nDa allerdings scheiden sich die Geister, wie Stefanie Koch vom Modehaus Kleidermüller betont.\nBei Herren dominiert der Anzug mit Weste und Plastron, aber es können auch cremefarbige oder braune Kombinationen gewählt werden.\nWichtig sei die Auswahl des Lokals, wurde erklärt.\nSchmucklose Nebenzimmer sind nicht optimal, das Ambiente sollte besonders sein.\nHier machte die Domäne auf ihr eigenes Angebot in der Remise aufmerksam.\nWer dann mit der Kutsche vorfahren will, für den hat Uwe Link ein Angebot.\n\"Kutschen sind aber auch für Jungesellinnenabschiede beliebt\", meint er.\nRomantik ist auch für Einladungskarten, Blumenarrangements und auch für Hochzeitsbilder gefragt.\nImmer mehr in Mode komme das \"After-Wedding-Foto\" - also Aufnahmeserien an besonderen Orten, vorzugsweise etwa Wasserfälle, einige Tage nach dem Fest, aber in Hochzeitskleidung, erklärte Elisabeth Keidel.\nViele weitere Details einer gelungenen Hochzeit wurden am Sonntag in der Domäne präsentiert.\nBlumenarrangement, Ringe, Hochzeitstafel, Kuchen und auch ein Zauberer, wie etwa Marko Ripperger, der Gäste stilvoll unterhalten kann.\nNicht zu vergessen die richtige Kosmetik und Nagelpflege.\nAlles für ein unvergessliches Fest.\nHundefreunde erfolgreich\nZum wiederholten Mal waren die Sportler der Hundefreunde Bitz erfolgreich auf einem Rally-Obedience-Turnier.\nAchim Scherrenbacher startete in Kandel mit zwei Hunden; mit seiner Hündin Sandy erzielte er in der Klasse Beginner 94 Punkte und sicherte sich den fünften Platz, und mit dem 15 Monate alten Marley brachte er es mit 87 Punkten auf Platz zwölf.\nSusi Höpp stellte sich mit ihrem Woody in der Klasse 1 den kritischen Blicken des Leistungsrichters.\nEltern eines Teenagers aus Georgia, der bei tragischem Unfall starb, glauben an Mord\nDie Eltern des Teenagers, dessen Leiche in einer zusammengerollten Ringermatte in der Turnhalle seiner High School gefunden wurde, sind überzeugt, dass ihr Sohn ermordet wurde, erklärte der Anwalt der Familie am Donnerstag.\nKendrick Johnson aus Valdosta im US-amerikanischen Bundesstaat Georgia wurde am 11. Januar in einer aufrecht aufgestellten Matte gefunden, die hinter der Tribüne in der Schulturnhalle stand.\nDie Untersuchungsbeamten des Sheriffs von Lowndes County kamen zu dem Schluss, dass Johnson bei einem tragischen Unfall starb, was die Familie des 17-Jährigen jedoch anzweifelt.\n„Sie sind davon überzeugt, dass ihr Sohn ermordet wurde“, erklärte Benjamin Crump, der Anwalt von Kenneth und Jacquelyn Johnson, gegenüber FoxNews.com.\nSie hätten nie geglaubt, er sei so gestorben, wie es der Sheriff geschlussfolgert habe.\n„Sie sind der Ansicht, dass es jeder Logik entbehre, gegen die Gesetze der Physik wie auch gegen den gesunden Menschenverstand verstoße“, so Crump.\nVielmehr seien sie überzeugt, die Wahrheit werde vertuscht, um die Person oder Personen zu schützen, die für den Tod ihres Sohnes verantwortlich seien.\n„Ihr Sohn ging zum Lernen in die Schule und kam im Leichensack zurück“, kommentiert er.\nUS-Staatsanwalt Michael Moore sagte am Donnerstag, es werde eine formelle Ermittlung zum Tod Johnsons geben, da eine Reihe wichtiger Fragen noch ungeklärt seien.\nWas war die Todesursache?\nIst sein Tod auf ein Verbrechen zurückzuführen?\nDas erklärte Moore bei einer Pressekonferenz am Donnerstagnachmittag.\nIch folge den Fakten, in welche Richtung sie auch führen.\nMein Ziel ist es, die Wahrheit herauszufinden.\n„Ich vertrete die Auffassung, dass eine hinreichende Grundlage für eine formelle Ermittlung besteht“, sagte er.\nMoore erklärte gegenüber Reportern, die anfängliche Autopsie deute darauf hin, dass Johnson an den Folgen einer „positionsbedingten Erstickung“ verstorben sei.\nEine zweite Autopsie habe allerdings eine andere Todesursache ergeben, so Moore.\n„Es gibt eine Reihe von Fragen, die beantwortet oder bestätigt werden müssen“, sagte er.\nMoore fügte hinzu, falls es ausreichende Beweise für eine strafrechtliche oder zivilrechtliche Untersuchung zum Tode Johnsons gebe, werde er das FBI mit der Durchführung der Ermittlungen beauftragen.\nEin Vertreter der Behörde des County Sheriffs war auf unsere Anfrage am Donnerstag hin nicht sofort zu einem Kommentar bereit.\nEin Gericht im Süden Georgias ordnete am Mittwoch an, dass die Behörden alle Überwachungsvideos freigeben müssen, die die Ermittler überprüft haben.\nDie Eltern des Teenagers sagten, sie hofften, dass die Videoaufzeichnungen Hinweise darauf enthielten, wie er gestorben sei.\nCDC veröffentlichen Allergierichtlinien für Schulen\nAm Mittwoch veröffentlichten die Centers for Disease Control and Prevention (CDC) eine Reihe von Richtlinien für den Umgang mit Lebensmittelallergien von Kindern an Schulen.\nDies sind die ersten derartigen Richtlinien, die die US-amerikanische Regierung herausgegeben hat, da die Anzahl der schulpflichtigen Kinder mit Lebensmittelallergien steigt.\nEines von 20 Kindern in den Vereinigten Staaten hat inzwischen eine Lebensmittelallergie.\nDie Verbreitung von Lebensmittelallergien unter Kindern hat laut CDC zwischen 1997 und 2007 um 18 Prozent zugenommen.\nDie Leitlinien enthalten Informationen für Schulen, die beim Lehrkörper und den Mitarbeitern ein Bewusstsein für Lebensmittelallergien wecken sollen und wie mit Kindern umgegangen werden soll, die allergische Reaktionen zeigen.\nEs wird auch empfohlen, dass Schulen Epinephrin vorrätig haben – die Auto-Injektion der Marke EpiPen wird am häufigsten verwendet –, um einer potentiell tödlichen Überempfindlichkeitsreaktion begegnen zu können.\nDie Gesetzgeber in den Bundesstaaten haben kürzlich die Vorschriften geändert, damit Schulen Epinephrin einfacher vorrätig halten können.\nIm Bericht ist auch eine Liste typischer Symptome enthalten, die von Kindern genannt werden, die eine allergische Reaktion aufweisen.\nKinder sagen vielleicht: „Es fühlt sich an, als ob etwas auf meine Zunge drückt“, „Meine Zunge fühlt sich an, als ob ein Haar darauf liegt“ oder „Meine Zunge kribbelt“.\nEltern von intersexuellen Kindern können „Geschlecht unbestimmt“ wählen\nDeutschland ist die erste europäische Nation, in der ein drittes Geschlecht für Kinder anerkannt ist, die mit nicht eindeutigen Genitalien geboren wurden.\nNeugeborenen wird nicht mehr starr männlich oder weiblich zugewiesen.\nNach dem neuen Gesetz müssen Eltern kein Geschlecht mehr für solche Kinder erklären, sondern können „unbestimmt“ oder „nicht festgelegt“ auf der Geburtsurkunde angeben.\nZiel des Gesetzes ist es, den Druck von Eltern zu nehmen, damit sie keine übereilten Entscheidungen in Bezug auf Operationen für eine Geschlechtszuweisung bei Neugeborenen treffen müssen, und die Diskriminierung von intersexuellen Menschen zu bekämpfen.\nEine intersexuelle Person sagte laut BBC Jahre später: „Ich bin weder Mann noch Frau.“\nIch bleibe das Flickwerk, das von Ärzten erschaffen wurde, verstümmelt und voller Narben.\nSchätzungsweise kommt eines von 2.000 Kindern jedes Jahr weder als Junge noch als Mädchen zur Welt.\nSie gehören zu den Intersexuellen, einer Gruppe, die unter die Diagnose „Sexualdifferenzierungsstörung“ (DSD) fallen, ein Sammelbegriff für Menschen mit atypischen Chromosomen, Keimdrüsen (Eierstöcken oder Hoden) oder ungewöhnlich entwickelten Genitalien.\nWallis Simpson war möglicherweise intersexuell.\nDas Verständnis der Geschlechteridentifikation ist noch immer nicht sehr gut entwickelt, doch raten die meisten Experten in den USA dazu, man solle die besten verfügbaren Informationen zur Geschlechtszuweisung verwenden, falls eine Bestimmung nicht möglich sei, und nicht auf die psychologische und körperliche Entwicklung des Kindes warten, ehe man sich – wenn überhaupt – für eine Operation entscheide.\nDer New Yorker Psychiater Dr. Jack Drescher, der sich auf die Problematik der Geschlechteridentifikation spezialisiert hat, sagte, das neue deutsche Gesetz „klinge nach einer guten Sache“.\nIntersexuelle Kinder stellen ein ethisches Dilemma dar.\n„Manche Menschen haben lebensbedrohliche Erkrankungen, die einen chirurgischen Eingriff erforderlich machen, doch für die meisten Kinder gilt das nicht“, sagte er.\nMan könne eine Geschlechtszuweisung ohne Operation vornehmen und dann abwarten, wie sich die Identität entwickle.\nDie wissenschaftlichen Daten darüber, wie ein Kind überhaupt seine geschlechtliche Identität entwickelt, sind nicht sehr genau.\nNiemand weiß, warum es geschieht.\nEs ist wie das Geheimnis, weshalb Menschen homosexuell sind.\nIn einem Bericht an die Europäische Kommission aus dem Jahr 2011 heißt es, intersexuelle Menschen seien von transsexuellen oder Transgender-Personen zu unterscheiden, denn ihr Status sei nicht geschlechtsbezogen, sondern durch ihre biologische Konstitution bedingt, die weder ausschließlich männlich noch weiblich ist, sondern typischerweise beides gleichzeitig oder nicht klar als eines davon definiert.\nDiese Eigenschaften zeigten sich in nachrangigen sexuellen Charakteristiken wie Muskelmasse, Behaarung, Brüste und Statur, vorrangigen sexuellen Charakteristiken wie Fortpflanzungsorgane und Genitalien oder in Chromosomstrukturen und Hormonen.\nDer Bericht gibt auch einen Überblick über die Diskriminierung, der sich intersexuelle und Transgender-Personen im Berufsleben ausgesetzt sehen sowie über das Ausmaß von Belästigung, Gewalt und Vorurteilskriminalität.\nNicht mit dem Geschlechterbild übereinstimmende Jungen haben jetzt ein spezielles Camp.\nInzwischen ist es in Australien und Nepal für Erwachsene möglich, auf offiziellen Dokumenten männlich, weiblich oder „drittes Geschlecht“ anzugeben.\nIm Juni wurde Australier Norrie May-Welby (52) als weltweit erste „geschlechtslose“ Person anerkannt, nachdem ein Gericht die lebenslange Beibehaltung eines „nicht festgelegten“ Geschlechtsstatus zugestanden hatte.\nDeutsche Ausweise haben neben M und W künftig eine dritte Zuweisung, X für intersexuell, so das Innenministerium.\nIm benachbarten Frankreich sind Geschlechtsthemen immer noch kontrovers, so eine Nachrichtenmeldung auf France 24.\n2011 unterzeichneten Dutzende französische Abgeordnete des streng katholischen Landes eine Petition, dass die „Geschlechtertheorie“ aus Schulbüchern entfernt werden solle.\nDie US-amerikanische Website Catholic Online hat sich ebenfalls gegen das deutsche Gesetz ausgesprochen, mit der Begründung: „Wenn die Welt in einen neuen Zustand gezerrt wird, wo das Geschlecht eine Entscheidung darstellt, sexuelle Aktivität aber nicht, dann verdrehen wir zwei weitere Säulen der Zivilisation.“\nDie Mutter eines Neugeborenen aus Maryland erklärte gegenüber Baby Zone, sie fände es besser, wenn Babys bei der Geburt ein Geschlecht zugewiesen werde.\n„Das Elterndasein ist auch ohne weitere Einschränkungen schon stressig genug, besonders wenn man das Geschlecht des eigenen Kindes nicht kennt“, sagte sie der Elternwebsite.\nKinder brauchen Stabilität und Sicherheit.\nHistorisch gesehen wurden Kindern, die sowohl mit männlichen als auch weiblichen Geschlechtsteilen geboren wurden, als Hermaphroditen bezeichnet, nach dem attraktiven griechischen Gott, der beide Geschlechter hatte.\nNoch vor zehn Jahren betrachtete die Medizin das Geschlecht als etwas, das man auslöschen und dann neu aufbauen könne.\nDoch inzwischen werden die ethischen Grundlagen einer Operation angezweifelt, nachdem nun bekannt ist, wie komplex die geschlechtliche Identität ist, und dass Ärzte auch falsch liegen können, weil sie nicht wissen, wie sich das Kind beim Aufwachsen mit dem von ihnen zugewiesenen Geschlecht fühlt.\n„Mitte des 20. Jahrhunderts nannte man das einen ,psychiatrischen Notfall‘“, sagte Drescher.\nWenn ein solches Kind geboren wurde, dann rief man nicht den Psychiater, sondern den Chirurgen.\nDie herrschende Theorie über die Behandlung von Kindern mit nicht eindeutigen Genitalien geht auf Dr. John Money von der Johns Hopkins University zurück, der die Ansicht vertrat, das Geschlecht sei formbar.\nEr prägte den Begriff „geschlechtliche Identität“ und argumentierte, soziale und umweltbedingte Anstöße – wie die Eltern ein Kind erziehen – interagierten mit den Genen und Hormonen eines Kindes und prägten so, ob sich eine Person als männlich oder weiblich betrachte.\nDoch in einem unter dem Titel „John/Joan“ bekannt gewordenen Fall aus dem Jahr 1966 wurden seine Theorien kontrovers.\nEr riet den Eltern eines Jungen, dessen Penis bei einer verpfuschten Beschneidung abgetrennt worden war, das Kind ganz zu kastrieren und auch seine Hoden zu entfernen und ihn dann als Mädchen großzuziehen.\n„Money präsentierte diesen Fall als erfolgreiches Beispiel für eine Umwandlung, was er aber nicht war“, so Drescher.\nAls der Junge etwa 15 war, wechselte er zurück zum männlichen Geschlecht und heiratete eine Frau.\nMit 38 aber beging er Selbstmord.\nLaut Drescher gibt es noch immer Ärzte, die dieses Modell praktizieren würden.\nDoch in den 1990er Jahren, mit dem Einzug des Internet, sind Überlebende dieser Geschlechtsoperationen an die Öffentlichkeit getreten, die „nicht glücklich mit dem Ergebnis“ sind.\nSo etwa bei Jim Bruce, einem 36 Jahre alten Autor aus Montana, der mit XY-männlichen Chromosomen geboren wurde, aber zweideutigen Genitalien.\nDie Ärzte waren sich nicht klar darüber, ob er eine große Klitoris oder einen kleinen Penis hatte und waren überzeugt, er könne niemals ein „befriedigendes Leben“ als Mann führen.\nAlso wurden sein externes Organ und die Hoden kurz nach der Geburt 1976 chirurgisch entfernt und er wurde als Mädchen großgezogen.\nIm Alter von 12 erhielt er weibliche Hormone.\n„Ich wusste, dass ich kein Mädchen bin“, erklärte er gegenüber ABCNews.com\nIch war unglücklich, aber es war wirklich schwer, Fragen zu stellen.\nIm Alter von 18 sollte er eine Vaginalplastik erhalten.\nDoch da er depressiv war und wusste, dass etwas nicht stimmte, verlangte er seine medizinischen Akten.\nWas er herausfand, war schockierend.\nIch wurde bei meiner Geburt sterilisiert – und keiner hat mir das jemals gesagt.\nBruce wurde mit einer DSD geboren, durch die sein Körper nicht genug Testosteron zur Entwicklung der Genitalien produzieren konnte.\nNachdem er die Wahrheit erfahren hatte, wechselte er wieder zur männlichen Identität, erhielt Testosteron-Injektionen und ließ sich seine Brüste entfernen.\nDurch die Operation ist er unfruchtbar geworden.\nHeute kämpft er für andere in einer Organisation namens Interface Project dafür, dass intersexuelle Menschen als normal wahrgenommen werden.\nDoch Anne Tamar-Mattis, Geschäftsführerin der in Kalifornien ansässigen Rechtsgruppe Advocates for Informed Choice, sorgt sich, dass das deutsche Gesetz „zum Abstempeln und Stigmatisieren ermutigen“ könne.\n„Viele Aktivisten sind besorgt, dass die deutsche Entscheidung Eltern ermutigen könnte, schnelle Entscheidungen zu treffen und dem Kind ein ,nicht festgelegt‘ zuzuweisen“, erklärte sie.\nWir fürchten, das begünstigt Interventionen.\nWir denken, es wäre besser, das männliche oder weibliche Geschlecht zuzuweisen und dann abzuwarten.\nDoch noch wissen wir nicht, wie sich das Gesetz auswirken wird, also können wir nur spekulieren.\nTamar-Mattis sagte, ihre Organisation unterstütze das australische Gesetz, denn „es ermöglicht Erwachsenen die Anerkennung als drittes Geschlecht“.\n„Erwachsene sollten in der Lage sein, eigene Entscheidungen über ihr rechtliches Geschlecht zu treffen“, erklärte sie.\nBei dem deutschen Gesetz geht es um die Zuweisung bei der Geburt.\nDas ist kein Kampf, zu dem man kleine Kinder zu diesem Zeitpunkt zwingen sollte.\nWenn sie erwachsen sind, können sie selbst über ihren Körper entscheiden.\nDoch Dr. Arlene Baratz, eine Brustradiologin aus Pittsburg, die eine Tochter mit einer sexuellen Differenzierungsstörung hat und Hunderte andere in einer Selbsthilfegruppe unterstützt, sagt, das deutsche Gesetz „bevollmächtige“ sowohl Eltern als auch Kinder.\nKatie, die Tochter von Baratz, wurde mit männlichen Chromosomen geboren, hat aber eine DSD namens komplette Androgenresistenz.\nWegen des Rezeptordefektes der Zielzellen für Testosteron entwickelte Katie weibliche Charakteristiken.\nSie hat eine Vagina, aber keinen Uterus und keine Eierstöcke.\nHeute ist Katie 29 und verheiratet; sie arbeitet an der University of Pennsylvania als Mitarbeiterin in der Kinderpsychiatrie.\nZwar ist sie unfruchtbar, hofft allerdings, durch Adoption oder eine Leihmutter ein Kind bekommen zu können.\n„Das Gesetz gibt Eltern Raum, wodurch sie nicht überstürzt Entscheidungen treffen müssen“, sagte Baratz.\nEs verschafft ihnen die Zeit, verschiedene Tests zu machen und Dinge zu klären und gibt ihnen so Zeit, ehe sie „männlich“ oder „weiblich“ schreiben.\nAuf diese Weise ist alles in Ordnung – man zieht das Kind groß und liebt es.\nMan hat ein wunderbares Baby und genießt das Elternglück.\nUnd man muss nicht übereilt eine Operation vornehmen, die sich nicht mehr rückgängig machen lässt.\n„Das schließt die Kinder in die Entscheidung mit ein und beseitigt die Angst, die Eltern umtreibt, weil sie der Meinung sind, sie würden nicht das Richtige tun“, erläuterte sie.\nLetztendlich entscheidet das Kind über das Geschlecht, das besser zu ihm passt – und das ist wunderbar.\nDadurch werden Kinder in die Lage versetzt, die Entscheidung selbst zu treffen.\nUnbekannte verletzen Mädchen durch Schuss aus Auto\nUnbekannte haben bei Schüssen aus einem Auto eine Zwölfjährige in Sachsen-Anhalt verletzt.\nDie Täter hatten am Donnerstagabend in Genthin vermutlich mit einer Luftdruckwaffe auf eine Gruppe von Kindern gefeuert.\nDas teilte die Polizei in Burg mit.\nDas Mädchen sei leicht an der linken Wade verletzt worden.\nRettungskräfte brachten das Mädchen ins Krankenhaus.\nDer Schuss kam aus einem Kleinwagen, der an einer Gruppe von sechs Kindern vorbeigefahren war und plötzlich angehalten hatte.\nZeugen sahen zwei Menschen in dem Auto sitzen.\nDie Täter schossen außerdem auf eine Bushaltestelle.\nEine Scheibe zerbrach.\nAnschließend fuhren sie davon.\nDie Kriminalpolizei ermittelt, hieß es am Freitag.\nBis zum jetzigen Zeitpunkt kann die Polizeiinspektion Kempten auf eine ruhige Halloween-Nacht zurückblicken.\nDie Beamten wurden lediglich zweimal zu eierwerfenden Kindern gerufen, welche diese gegen Hausfassaden warfen.\nDa die Hauseigentümer dies rechtzeitig erkannten und die Eierreste gleich entfernten, dürfte auch kein Sachschaden entstanden sein.\nDesweiteren wurden im Stadtgebiet wohl auch einige Sylvesterböller gezündet, aber auch hier ist kein Sachschaden entstanden.\nEin Anwohner im Bischof-Freundorfer-Weg meldete, dass sein Pkw mit Klopapier eingewickelt und seine Radzierblenden entwendet wurden.\nBis zum Eintreffen der Polizei hat der Mann seine Radzierblenden jedoch in unmittelbarer Nähe alle wieder aufgefunden, weswegen die Polizei nicht weiter tätig werden musste.\nWohnen mit Zukunftsperspektive\nEigentlich wohnt Waltraud Ries traumhaft.\nIhr Haus liegt in einer ruhigen Wohngegend von Stuttgart mit viel Grün, einem alten Baumbestand, netten Nachbarn und auch nicht allzu viel Verkehr.\nIn die Stadt sind es nur wenige Minuten mit öffentlichen Verkehrsmitteln.\n\"Sie haben hoffentlich keine Angst vor Spinnen?\", fragt Waltraud Ries und zeigt auf eine fette Spinne am Türrahmen.\nIch suche schon seit einiger Zeit eine neue Wohnung für meinen Mann und mich.\nAber Sie wissen ja, wie schwierig das in Stuttgart ist.\nDer Grund ist allerdings keine Spinnenphobie, sondern die Sorge, im Alter die vielen Treppenstufen zum Haus und in der Wohnung nicht mehr bewältigen zu können, erklärt sie.\nZudem: Seit einer Meniskus-Operation hat die Mittfünfzigerin am eigenen Leib erfahren müssen, was es bedeutet, sich mit Handicap von Stockwerk zu Stockwerk zu bewegen.\nVor kurzem erst ist ein Buch von ihr erschienen zum Thema 'Glücklich wohnen im Alter - Welche Wohnform ist die beste für mich?'.\n'Unsere Wohnung ist das beste Beispiel dafür, was im Alter gar nicht geht', beginnt sie zu erzählen.\nAls sie vor mehr als 20 Jahren mit ihrem Mann in die Maisonette-Wohnung zog, war es einfach nur eine schöne Wohnung mitten im Grünen.\nHeute mit Mitte fünfzig denkt Waltraud Ries anders darüber.\nSie weiß aber auch, dass sie zu den wenigen Menschen gehört, die sich überhaupt mit dem Thema 'Wohnen im Alter' auseinandersetzen.\nDie meisten verdrängen es, solange es geht.\nAlt werden immer nur die anderen', sagt sie schmunzelnd.\nErst wenn der Leidensdruck wirklich groß ist, mache man sich Gedanken.\n'Dann kann es aber auch schon zu spät sein', so Ries.\nIn ihrem Buch stellt die Innenarchitektin 17 Wohnmodelle für ein selbstbestimmtes Wohnen im Alter vor.\n'Welche Wohnform man aber wählt, ist immer eine Individualentscheidung', erklärt sie.\nD i e Lösung gebe es nicht für das Alter.\nSelbst wer sich den Altersruhesitz in der Toskana oder der Bretagne leisten könne, sollte sich immer überlegen, dass er auch krank werden könne.\nUnd: 'Ohne gute Kenntnisse der Landessprache vereinsame man auch im Dolce Vita,' gibt die Fachbuchautorin Aussiedlungswilligen zu bedenken.\nUnter ihren Modellen finden sich klassische Betreuungsmodelle, alternative Wohnformen oder die oft zitierte Rentner-WG.\nIm Alter hat jeder so seine Ticks und Macken\n'Für mich wäre so eine Wohngemeinschaft aber nichts', meint sie mit einem Augenzwinkern.\nSchon gar nicht wie in einer Studenten-WG mit einem gemeinsamen Bad und einer Küche.\n'Im Alter braucht man einfach auch seine Rückzugsräume', so Ries.\nDass eine Senioren-Wohngemeinschaft dennoch funktionieren kann, will die Buchautorin dennoch nicht ausschließen.\nDas müsse dann aber anders verlaufen als in der klassischen Studenten-WG.\nUnd manchmal will man einfach auch nur seine Ruhe', glaubt sie.\nMit dieser Meinung steht sie zumindest in der Landeshauptstadt nicht allein da.\n'Die meisten alten Menschen in Stuttgart wollen so lange es geht in ihrer eigenen Wohnung bleiben', ist auch die Erfahrung von Theresa Rütten, der Leiterin des Bürgerservices Leben im Alter der Landeshauptstadt.\nIhre Dienststelle berät Menschen rund um das Thema 'Älter werden'.\nDeshalb würden gerade ältere Menschen häufig auch Unbequemlichkeiten und Einschränkungen in Kauf nehmen, nur um in ihrer gewohnten Umgebung bleiben zu können, das ist auch die Erfahrung der Stiftung Warentest.\nDabei gibt es heute viele Möglichkeiten, das Haus oder die Wohnung barrierefrei zu gestalten.\nRies empfiehlt allen, die sich mit dem altersgerechten Umbau ihres Hauses oder ihrer Wohnung beschäftigen, sich erst einmal gründlich zu informieren und nicht den erstbesten Handwerker zu beauftragen.\nHeute gibt es auch für den altersgerechten Umbau Spezialisten.\nSelbst in der Mietwohnung lasse sich das eine oder andere realisieren, und wenn es nur die Toilettensitzerhöhung ist, klärt die Innenarchitektin auf.\nAber nicht immer lässt sich die bestehende Wohnung altersgerecht und damit barrierefrei umgestalten, auch wenn sie noch so schön liegt.\nDiese Erfahrung musste Waltraud Ries machen.\nZwar könnte man innerhalb der Wohnung einen Treppenlift installieren, der ebenfalls mit Treppen gepflasterte Weg bis an die Wohnungstür wäre aber das weitaus größere Hindernis.\nSie wird weitersuchen, bis sie das ideale Objekt für sich und ihren Mann gefunden hat.\nVor dem Umzug graut es ihr mehr als vor der Spinne an ihrer Wohnungstür.\nUSA wollen Snowden weiter strafrechtlich verfolgen\nDie USA haben ihre Haltung zum früheren US-Geheimdienstmitarbeiter Edward Snowden nicht geändert.\nIhm werde weiterhin vorgeworfen, unerlaubt geheime Informationen weitergegeben zu haben.\nDaher müsse er sich in den USA einem Strafverfahren stellen, sagte die Sprecherin des US-Außenministeriums, Jennifer Psaki, in Washington.\nAuch die jüngsten Äußerungen von Snowden würden daran nichts ändern.\nZuvor hatte der deutsche Grünen-Politiker Hans-Christian Ströbele nach einem Treffen mit Snowden in Moskau an die USA appelliert, ihn nicht weiter mit Strafe zu bedrohen.\nPsaki betonte, dass es sich bei Ströbeles Äußerungen um die eines Parlamentariers handele und nicht um die eines deutschen Regierungsmitglieds.\nGeheimdienstenthüller Edward Snowden ist grundsätzlich zu einem Gespräch mit deutschen Behörden bereit.\nZuerst will er jedoch seine Situation geklärt wissen.\nDas hat der von den USA gesuchte ehemalige NSA-Mitarbeiter in einem nicht adressierten Schreiben klargemacht, das der Grünen-Politiker Hans-Christian Ströbele am Freitag nach einem Treffen mit Snowden veröffentlichte und an Bundesregierung, Bundestag und Generalbundesanwalt weiterleitete.\nDas Schreiben hat nach einer von Ströbele verbreiteten Übersetzung folgenden Wortlaut:\nAn die Zuständigen\nIch wurde gebeten, Ihnen bezüglich Ihrer Untersuchung zur Massenüberwachung zu schreiben.\nIch heiße Edward Joseph Snowden und war früher vertraglich bzw. über eine Direktanstellung als technischer Experte bei der National Security Agency (NSA), der Central Intelligence Agency (CIA) und der Defense Intelligence Agency (DIA) der Vereinigten Staaten beschäftigt.\nIm Zuge meiner Beschäftigung in diesen Einrichtungen wurde ich Zeuge systematischer Gesetzesverstöße meiner Regierung, die mich aus moralischer Pflicht zum Handeln veranlassten.\nAls Ergebnis der Veröffentlichung dieser Bedenken sah ich mich ich einer schwerwiegenden und anhaltenden Hetze ausgesetzt, die mich zwang, meine Familie und meine Heimat zu verlassen.\nIch lebe derzeit im Exil und genieße befristetes Asyl, das mir die Russische Föderation gemäß internationalem Recht gewährt.\nIch bin ermutigt von der Resonanz auf mein politisches Handeln, sowohl in den USA als auch anderswo.\nBürger auf der ganzen Welt und auch hohe Amtsträger - einschließlich der Vereinigten Staaten - haben die Enthüllungen zu einem System der allumfassenden Überwachung, das niemandem Rechenschaft schuldig ist, als einen Dienst an der Öffentlichkeit beurteilt.\nDiese Spionage-Enthüllungen zogen viele Vorschläge zu neuen Gesetzen und Richtlinien nach sich, die auf den vormals verdeckten Missbrauch des öffentlichen Vertrauens abzielten.\nDer Nutzen für die Gesellschaft aus diesen gewonnenen Erkenntnissen wird zunehmend klarer; gleichzeitig wurden die in Kauf genommenen Risiken sichtlich vermindert.\nObwohl das Ergebnis meiner Bemühungen nachweislich positiv war, behandelt meine Regierung Dissens nach wie vor als Treuebruch und strebt danach, politische Meinungsäußerung zu kriminalisieren und unter Anklage zu stellen.\nDennoch: Die Wahrheit auszusprechen ist kein Verbrechen.\nIch bin zuversichtlich, dass die Regierung der Vereinigten Staaten mit Unterstützung der internationalen Gemeinschaft diese abträgliche Haltung ablegen wird.\nIch hoffe, dass ich, wenn die Schwierigkeiten dieser humanitären Lage beigelegt sind, in der Lage sein werde, mich an der verantwortungsvollen Aufklärung der Sachverhalte bezüglich der in den Medien getätigten Aussagen, insbesondere im Hinblick auf Wahrheit und Authentizität der Berichte, angemessen und gesetzesgemäß zu beteiligen.\nIch freue mich auf ein Gespräch mit Ihnen in Ihrem Land, sobald die Situation geklärt ist und danke Ihnen für ihre Bemühungen, das internationale Recht zu wahren, das uns alle beschützt.\nEdward Snowden bezeugt durch Hans-Christian Ströbele\nKindergarten hat einen privaten Käufer gefunden\n\"Das Gebäude ist in guten Händen\", sagt Winterlingens Bürgermeister Michael Maier.\nDen ehemaligen Kindergarten in der Gartenstraße hat die Kommune an eine Privatperson verkauft.\nDem Verkauf stimmte der Gemeinderat in seiner jüngsten Sitzung im nicht öffentlichen Teil zu.\nDas Gebäude wechselte seinen Besitzer zu einem \"angemessenen\" Preis.\n\"Die Gemeinde ist zufrieden\", betont Maier.\nIm Haushalt waren 100 000 Euro angesetzt.\nNoch nicht klar ist, wie der neue Eigentümer den früheren Kindergarten nutzen will.\nDem Bürgermeister ist es Recht, dass Winterlingen die Verantwortung für das Gebäude vor dem Winter an jemand anderen übergeben hat und somit nicht mehr für die Unterhaltung des Hauses aufkommen muss, wie zu heizen, nach dem Garten zu schauen und den Gehweg zu räumen.\n\"Dieser Aufwand ist nun weg\", freut sich Maier.\nPlatzkonzert bei hochsommerlichen Temperaturen\nDer Musikverein Hammereisenbach gibt ein Platzkonzert auf der Terrasse des Gasthauses Hammer.\nAls Dirigentin Bianca Willmann um 19.30 Uhr den Taktstock hebt, zeigt das Thermometer immer noch 25 Grad.\nEtwa 50 Zuhörer erfreuen sich an den Klängen der Hammricher Musiker.\nDie Vorsitzende Manuela Honeck erläutert die Musikstücke.\nHoneck dankte in diesem Rahmen allen, die geholfen hatten, den ersten Musikerhock erfolgreich zu bewältigen.\nBericht: Obama-Kampagne überlegte, Biden durch Hillary Clinton zu ersetzen\nDie engsten Berater von Präsident Barack Obama haben im Geheimen überlegt, Vizepräsident Joe Biden im Wahlkampf 2012 durch Hillary Clinton zu ersetzen, so die New York Times.\nDie Enthüllung ist die beachtenswerteste Überraschung des lang erwarteten Werkes von Mark Halperin und John Heilemann über den Wahlkampf 2012, „Double Down: Game Change 2012“.\nDer Times liegt ein Exemplar des demnächst erscheinenden Buchs vor und sie berichtete am Donnerstagabend, dass die Topberater des Präsidenten „umfangreiche Gruppensitzungen und Umfragen Ende 2011“ durchgeführt hätten, um herauszufinden, ob es für Obamas schwindende Hoffnung auf Wiederwahl besser aussehe, wenn er Biden fallen lasse.\nLaut Jonathan Martin, nationalpolitischer Korrespondent der Times, zeichnet das Buch gründlich die Geschichte der Bemühungen führender Mitarbeiter der Kampagne und des Weißen Hauses nach, namentlich des früheren White House Chief of Staff Bill Daley, zu messen, welchen Effekt es auf die Umfragewerte habe, die ehemalige Außenministerin Clinton gegen den Vizepräsidenten zu tauschen.\nDer potenzielle Wechsel war ein streng gehütetes Geheimnis innerhalb der Kampagneninfrastruktur in Chicago und im Oval Office.\nNur ein halbes Dutzend der engsten Berater des Präsidenten – einschließlich Daley, dem früheren Kampagnenleiter Obamas, Jim Messina, und der früheren leitenden Berater des Weißen Hauses, David Axelrod und David Plouffe – wussten über den angedachten Wechsel Bescheid.\nIn „Double Down“ wird behauptet, Daley habe an der Spitze der Bemühungen gestanden, Biden trotz ihres „engen, persönlichen Verhältnisses“ auszutauschen, ehe man sich schließlich gegen einen solchen Schachzug entschied, nachdem die Daten zeigten, dass die Kandidatur Clintons „die Chancen Obamas nicht maßgeblich verbessern“ würde.\nIn einem Interview mit Martin bestätigte Daley, dass die Regierung tatsächlich überlegt habe, Biden durch Clinton zu ersetzen.\n„Ich äußerte eine ganze Reihe von Dingen, die man in Erwägung ziehen sollte, und das war eines davon“, erklärte Daley dem Magazin.\nMan muss sich in Erinnerung rufen, dass der Präsident damals furchtbare Umfragewerte hatte, also dachten wir: „Um Gottes Willen, was machen wir?“\nWährend Daley die Untersuchungen als „gebotene Sorgfalt“ bezeichnete, sagte Martin gegenüber Anderson Cooper von CNN, dass während der Kampagne für die Wiederwahl erheblicher Aufwand betrieben worden sei, um herauszufinden, ob ein solcher Zug sich im Hinblick auf die Wahlurnen auszahle.\n„In Kampagnen wird nicht so viel Geld für Umfragen und Fokusgruppen ausgegeben, wenn man nicht ernsthaft über etwas nachdenkt“, erklärte Martin auf AC360.\nEs ist allerdings nicht klar, ob Obama wusste, dass sein Team über einen Austausch nachdachte.\nMartin sagte gegenüber CNN, er habe Daley gefragt, ob sein damaliger Boss über den potenziellen Wechsel Bescheid gewusst hätte.\nWenngleich Daley erklärte, er glaube nicht, dass sich der Präsident der möglichen Veränderung „bewusst war“, gab der frühere Stabschef zu, es sei „möglich“ gewesen, dass Obama davon gewusst habe.\nMartin fügte hinzu, dass „Double Down“ keine definitive Antwort auf die Frage liefere, ob die politischen Sondierungen Obamas Schreibtisch erreicht hätten.\nCooper fragte Martin, ob er ernsthaft denke, Obama habe nichts von den Untersuchungen darüber gewusst, ob man Biden bei den Wahlen fallen lassen solle.\n„Möglich“, erwiderte Martin.\nWas passiert unterwegs mit meiner E-Mail?\nE-Mail heißt ja eigentlich elektronischer Brief.\nWurde beim Entwurf des Internet-Dienstes E-Mail ähnlich wie bei der herkömmlichen Post technisch das Briefgeheimnis umgesetzt?\nBei der Konzeption der frühen Internetdienste stand im Vordergrund, Kommunikation möglich zu machen.\nDaher hat man bei den grundlegenden technischen Protokollen nicht darauf geachtet, ein stabiles Fundament für einen anhörsicheren Briefwechsel zu schaffen.\nDaher entspricht eine herkömmliche E-Mail eher einer offenen Postkarte als einem versiegelten Brief.\nWenn Nutzerin \"Anna\" an \"Benni\" eine Mail schickt, sind die Rechner der beiden dann direkt verbunden?\nDas E-Mail-Programm oder der Browser von Anna schickt im ersten Schritt die Mail an den Mail-Server ihres Service-Providers.\nWenn sie zum Beispiel ein GMail-Konto hat, wäre das Google.\nDieser Mail-Server schickt den Inhalt an den Provider, den Benni nutzt.\nAuf der Strecke kann die Mail über etliche andere Server im Internet laufen.\nBennie kann den Inhalt dann bei seinem Provider anrufen.\nWerden herkömmliche E-Mails auf ihrem Weg durchs Netz mitgelesen?\nDie meisten Mails werden unterwegs mehrfach von Software-Robotern gelesen.\nBeim Provider des Absenders wird in der Regel überprüft, ob die Mail ein Schadprogramm als Anhang mit sich führt.\nAuf den Empfänger-Systemen wird ebenfalls ein Virus-Check vorgenommen.\nAußerdem überprüfen die Provider, ob es sich um eine lästige und unerwünschte Spam-Mail handelt, die gleich gelöscht oder zumindest in einen Spam-Ordner wegsortiert wird.\nHaben die Roboter noch eine weitere Aufgabe?\nBei Systemen wie GMail ermittelt der Roboter auch die Informationen, die Google zum Platzieren von Kontext-Werbung benötigt.\nWenn Anna und Benni per GMail über ihre kommenden Ferienreise kommunizieren, kann Google entsprechende Links zu Urlaubsangeboten einblenden.\nLesen auch unbekannte Menschen die E-Mails mit?\nDie Wahrscheinlichkeit, dass unbefugte Personen eine Mail mitlesen, ist äußerst gering.\nTheoretisch ist das aber möglich.\nIn Firmen haben häufig Administratoren die Möglichkeit, elektronische Post mitzulesen.\nAuch die Strafverfolgungsbehörden und Geheimdienste haben legale Möglichkeiten, E-Mails abzufangen oder zur Kenntnis zu nehmen.\nDazu kommen mögliche illegale Ausspäh-Aktionen.\nIst es möglich, E-Mails gegen das Mitlesen zu schützen?\nMit einer Verschlüsselung nach dem OpenPGP-Standard kann eine E-Mail wirksam gegen Mitlesen verschlüsselt werden.\nMit hohem technischen Aufwand ist es auch möglich, die Metadaten einer E-Mail-Kommunikation zu verschleiern, so dass nicht einmal ohne weiteres erkannt werden kann, wer mit wem kommuniziert hat.\nWie wichtig sind Yahoo und Google auf dem E-Mail-Markt in Deutschland?\nBei den hauptsächlich privat verwendeten Postfächern spielen Yahoo und Google laut einer Untersuchung von Convios Consulting aus dem August 2013 nur eine untergeordnete Rolle.\nWährend die Anteile von Yahoo-Mail zuletzt gefallen waren, konnte GMail von Google deutlich zulegen.\nMutter im Wald verscharrt und Rente kassiert\nAls seine betagte Mutter starb, schmiedete ein Mann aus Wolfsburg einen Plan.\nEr begrub die Tote in einem Wald - und kassierte weiterhin ihre Rente und Pflegegeld.\nUm weiter Rente und Pflegegeld kassieren zu können, hat ein 67-jähriger Wolfsburger seine tote Mutter nach Ermittlungen der Polizei im Wald begraben.\nZunächst habe er den Tod der 89-Jährigen vertuscht, dann habe er das Geld mehr als anderthalb Jahre lang eingestrichen.\nNun muss sich der 67-Jährige wegen Betrugs verantworten, wie ein Sprecher am Freitag sagte.\nDemnach versteckte der Mann die Frau in einem Wald in der Nähe von Helmstedt.\nVerdächtigt wurde der Mann bereits im Mai: Damals fiel auf, dass für die pflegebedürftige Mutter keine Medikamente mehr benötigt wurden.\nDen Ermittlern erzählte der Rentner, seine Mutter sei nach Spanien gereist.\nWeil den Beamten dies merkwürdig vorkam, ermittelten sie weiter.\nDabei kam heraus, dass die beiden seit mehr als 15 Jahren in einer gemeinsamen Wohnung gelebt hatten und er sie zuletzt gepflegt hatte.\nDer 67-Jährige habe schließlich den Tod seiner Mutter eingeräumt.\nEine Obduktion ergab laut Polizei keine Anhaltspunkte für ein Kapitalverbrechen.\nLust auf Eiscreme, die im Dunkeln leuchtet?\nEin britischer Unternehmer hat das erste im Dunkeln leuchtende Eis entwickelt – mithilfe von Quallen.\nCharlie Francis machte sich die fluoreszierenden Eigenschaften der Meerestiere zunutze und schuf daraus eine leuchtende Leckerei.\nDie Idee dazu kam ihm, nachdem er eine Forschungsarbeit über Quallen gelesen hatte und chinesische Wissenschaftler überzeugen konnte, das leuchtende Protein künstlich herzustellen.\nDie Eiscreme reagiert beim Verzehr mit der Zunge, wodurch der pH-Wert im Protein angehoben und das Leuchten ausgelöst wird.\nChris erklärt, das Speiseeis reagiere auf die Wärme im Mund und leuchte – je mehr man also leckt, desto heller wird es.\nCharlie, Gründer der Eiscremefirma „Lick Me I'm Delicious“, sagt: „Das Produkt ist unglaublich, aber noch in einer sehr frühen Produktionsphase, und so bekommt man zwei Gramm davon für 200 Pfund.“\nDas in der Eiscreme verwendete Protein reagiert mit der Zunge bei einem neutralen pH-Wert.\nWenn der Mund das Protein erwärmt, steigt der pH-Wert und das Eis leuchtet.\nWir haben es in den letzten Monaten getestet und es erschien uns ideal, es an Halloween auf den Markt zu bringen, weil es diesen wunderbaren Leuchteffekt hat.\nEs ist wahrscheinlich die teuerste Eiscreme, die ich je hergestellt habe, denn der Quallenleuchtstoff ist viermal teurer als Gold.\nJede Kugel kostet mich etwa 140 Pfund.\nAber dafür schmeckt es lecker.\nCharlies experimentelle Firma mit Sitz in Bristol ist berühmt für ihre ungewöhnlichen Geschmacksrichtungen, zu denen Bier, Käse, Rindfleisch und Blattgold gehören.\nDoch seine neueste Schöpfung soll noch ambitionierter werden.\nEr sagt: „Ich möchte gern eine unsichtbare Eiscreme entwickeln.“\nDas ist an und für sich unmöglich aufgrund der Lichtbrechung, die durch die Eiskristalle hervorgerufen wird, aus denen Eiscreme besteht; aber ich vermute, wir finden eine Möglichkeit, es zu schaffen.\nDie Eiscreme nutzt die fluoreszierenden Eigenschaften einer Qualle, die von chinesischen Wissenschaftler künstlich hergestellt werden\nDer TSV Morsum ist nach sechs Spieltagen noch immer ohne jeden Punkt in der Handball-Verbandsliga.\nAusgerechnet jetzt kommt es für das Team von Ingo Ehlers morgen zum Derby gegen den TSV Daverden, der am vergangenen Wochenende seiner ersten Sieg gefeiert hat.\nMit diesem Spiel beginnt die Saison neu für uns.\n\"Ich hoffe, dass wir endlich mal den Kopf frei haben\", gibt sich Ehlers verhalten optimistisch.\nDabei hat er endlich mal, mit Ausnahme des dauerverletzten Hendrik Blohme, seinen kompletten Kader zur Verfügung.\nAuch Daverden setzt wie wir auf Tempospiel.\nDaher müssen wir unsere Fehlerquote gering halten.\nIn erster Linie gilt es sich jedoch in der Deckung zu steigern, die zuletzt alles andere als einen sicheren Eindruck hinterlassen hat.\nDeutlich entspannter gibt sich Daverdens Coach Thomas Panitz nach dem ersten Saisonsieg gegen Nordhorn.\nDas Spiel war natürlich eine Hausnummer.\nAber deswegen sind wir noch lange nicht der Favorit, denn im Derby kann immer alles passieren.\nGleichwohl will Panitz nun nachlegen in Morsum, um eine Serie zu starten.\nFehlen wird Jan-Malte Jodat.\nDafür feiert der A-Jugendliche Joost Windßuß, der mit Doppelspielrecht beim A-Jugend-Bundesligisten HC Bremen aktiv ist, sein Saisondebüt.\nWer in so einem Spiel nicht heiß ist, soll zuhause bleiben.\nHalloween 2013: In Zahlen\nAls ich klein war, hatte Halloween etwas Magisches.\nMeine Schwester und ich durften Süßigkeiten essen, spät aufbleiben und uns für die Nachbarschaft verkleiden.\nHeute bin ich eher zum Halloween-Muffel geworden.\nIn den letzten zwei Jahren habe ich mich nicht bereit erklärt, von meiner Wohnung aus Süßigkeiten zu verteilen, und werde es wohl auch dieses Jahr nicht tun.\nAber laut Statistik bin ich ein schwarzes Schaf, was Halloween angeht.\nDie Mehrheit der Amerikaner – 158 Millionen, um genau zu sein – feiern dieses Jahr Halloween und geben dabei insgesamt 6,9 Milliarden US-Dollar für Süßigkeiten, Kostüme und Dekorationen aus, so der US-amerikanische Verband der Einzelhändler (NRF).\nEine Sache, auf die ich mich jedes Halloween dann doch wieder freue, sind die Trendwerte.\nDie Kostüme werden etwa 1,2 Milliarden der 6,9 Milliarden ausgegebenen US-Dollar ausmachen, so der NRF.\nIn diesem Jahr sind aufreizende unbelebte Gegenstände der letzte Schrei.\nFrauen müssen sich nicht mehr in sexy Kleidung hüllen, sie können jetzt auch verführerisches Essen wie etwa Pizza, Hamburger oder Karotten verkörpern.\nWas Männer angeht, erwarte ich jede Menge Zombies dank The Walking Dead, und ich wette, die Daft-Punk-Weltraummänner werden es dieses Jahr in die Instagram-Feeds schaffen.\nLaut Google sind die meistgesuchten Kostüme Zombies, Batman, Piraten und Hexen.\nIch vermute, es ist nichts verkehrt an Tradition.\nWir haben letztes Jahr unsere Hunde verkleidet und waren damit zu meinem Erstaunen nicht allein.\nTatsächlich geben Amerikaner 330 Millionen Dollar dieses Jahr für Kostüme ihrer Haustiere aus, so der NRF.\nDas sind eine Menge „Hot Dogs“.\nWas Süßigkeiten angeht, sind wir nicht zimperlich.\nAmerikaner werden dieses Jahr 1,9 Milliarden Dollar dafür ausgeben, so The Nielsen Company.\nDas sind etwa 270 Millionen Kilogramm an Schokoriegeln, Lutschern, Bonbons und Gummibärchen.\nAlso gute Nachrichten für die laut US-Handelsministerium 41 Millionen Menschen, die mit dem Spruch „Süßes oder Saures“ durch die Viertel ziehen.\nTatsächlich werden wir über 40 Millionen Kilogramm Schokolade für Halloween kaufen und – machen wir uns nichts vor – essen.\nDas Einzige, was wir nicht konsumieren möchten, ist das zuckersüße Candy Corn; dennoch werden 15 Millionen Kilogramm davon um Halloween verkauft, so der Nationale Verband der Süßwarenhersteller.\nDas sind etwa neun Milliarden Maiskörner.\nEs ist ein Rätsel, das ich noch nicht lösen konnte.\nNichts gehört mehr zu Halloween als Häuser, in denen es spukt.\nSie haben großartige Namen wie „Terror Behind the Walls“ (was übrigens in einem echten Gefängnis steht), „Howl-O-Scream“ und „The House of Shock“.\nEs gibt tatsächlich 1.200 offiziell anerkannte Spukhäuser in den Vereinigten Staaten, die 500 Millionen Dollar Erlös erzielen, so America Haunts, und das schließt die wunderbaren Fotos ein, auf denen man sich gerade in die Hose pinkelt und die Freunde dann auf Facebook stellen, wo man sie nicht wieder loswird, und einem dann der Typ, auf den man steht, einen Kommentar hinterlässt wie „netter Gesichtsausdruck“.\nAber kommen wir endlich zu den Kürbissen.\nCharlie Brown machte uns mit dem Großen Kürbis vertraut, als wir Kinder waren, und das Schnitzen einer Kürbislaterne ist wie das Schmücken des Weihnachtsbaums – etwas, das wir von klein auf gemacht haben.\nGlücklicherweise begann der „Baby im Kürbis“-Trend erst letztes Jahr dank Pinterest, sodass die meisten von uns damit aufgewachsen sind, den Kürbis zurechtzuschnitzen und nicht, darin zu sitzen.\nDieses Jahr werden Amerikaner etwa 106 Millionen Dollar für Kürbisse ausgeben, so das US Census Bureau.\nDie Kürbislaterne, die langsam im Vorgarten verrottet, stammt vermutlich aus Illinois, wo dieses Jahr 245 Millionen Kilogramm Kürbisse geerntet wurden.\nWenn Sie richtig punkten möchten, dann rufen Sie Tim und Susan Mathisdon in Napa, Kalifornien an und schnitzen Sie etwas Hübsches aus ihrem 921 Kilo schweren Kürbis.\nWohnungsbrand in Helmbrechts: Rettungskräfte bergen verkohlte Leiche\nDie Feuerwehr musste am späten Donnerstagabend in Helmbrechts ausrücken.\nEin Dreifamilienhaus im Landkreis Hof fängt in der Nacht zum Freitag Feuer.\nDie Rettungskräfte bergen eine verkohlte Leiche aus dem Haus.\nRettungskräfte haben bei einem Brand in Helmbrechts eine verkohlte Leiche in einem Dreifamilienhaus gefunden.\nOb es sich um einen Bewohner handle sei noch unklar, wie ein Sprecher der Polizei in Bayreuth sagte.\nAm späten Donnerstagabend hatte es im Erdgeschoss des Hauses gebrannt.\nAls die Feuerwehr eintraf, schlugen die Flammen bereits aus einem Fenster.\nDie Einsatzkräfte gingen in die Wohnung und fanden die Leiche in einem Zimmer.\nDieses und ein weiteres Zimmer brannten vollständig aus.\nDas gesamte Erdgeschoss wurde beschädigt.\nAlle anderen Bewohner seien während des Brands nicht zu Hause gewesen, erklärte der Polizeisprecher weiter.\nDas Gebäude sei vorerst nicht mehr bewohnbar.\nDie genaue Ursache für das Feuer war zunächst nicht klar.\nDeutschlands größte Landeskirche hat eine Offensivegestartet, um für den Beruf des Pastors zu werben.\nHintergrund ist ein möglicher Pfarrermangel: Die Evangelisch-lutherische Landeskirche Hannover rechnet damit, dass sich die Zahl ihrer derzeit rund 1.800 Pastorinnen und Pastoren nach jetziger Lage bis 2030 halbieren wird.\nFür junge Leute von heute sei der Beruf sehr attraktiv und biete gute Zukunftsaussichten, sagte Pastor Mathis Burfien (43) im Gespräch mit dem Evangelischen Pressedienst.\nEs ist attraktiv, den Arbeits- und Tagesablauf selbst bestimmen zu können.\nMit Burfien hat die Landeskirche erstmals einen Pastor auf einer vollen Stelle beauftragt, junge Leute für das Theologiestudium zu begeistern.\nZurzeit entscheiden sich immer weniger junge Menschen nach dem Abitur, Theologie zu studieren.\nBurfien führt dies auf den Prozess der Entkirchlichung zurück: \"Gottes Stimme ist leise, die Welt ist laut\".\nDabei sei der Beruf von großer Freiheit und Vielfalt geprägt.\nIch bin Herr meines Terminkalenders und kann dort meine Schwerpunkte setzen, wo es mir wichtig ist.\nPastoren könnten als Seelsorger ganz nah bei den Menschen sein.\nSie verdienten so viel wie Lehrer und könnten gut davon leben.\nSicherlich werde in der freien Wirtschaft mehr bezahlt, aber dafür hätten Theologen einen sicheren Arbeitgeber.\nDas komme den jungen Leuten von heute entgegen, denen es nicht nur um Karriere, sondern um eine sinnerfüllte Arbeit gehe.\nNach Angaben der Landeskirche, die drei Viertel Niedersachsens umfasst, gehen derzeit pro Jahr rund 60 Pastoren in den Ruhestand.\nGleichzeitig beginnen etwa 40 Absolventen eines Theologiestudiums ihr Vikariat.\nIn dünn besiedelten Randgebieten wie dem Harz, dem Emsland oder dem Wendland könne künftig es schwer werden, Stellen zu besetzen.\nBurfien will unter anderem Studientage für junge Leute veranstalten und dazu auch Prominente einladen, die Theologie studiert haben.\nDas Theologiestudium biete eine breite Ausbildung.\nMan kann damit sogar Bundespräsident werden.\nLand Rover Rally Series angekündigt\nIm Interieur finden sich Rennsitze und Sechs-Punkt-Gurte sowie eine Freisprechanlage.\nDie Optionen reichen von verstärkten Bremsen, einem Servicepaket mit Betreuung von Bowler-Works-Mechanikern und logistischer Unterstützung bis hin zu Fahrzeugeinlagerung zwischen Veranstaltungen.\nDrew Bowler, Geschäftsführer von Bowler Motorsport, erklärt: „Die Rally-Kunden, die zu Bowler kommen, haben sich verändert.“\nSie sind nicht alle erfahrene Rennfahrer, sondern Leute, die auf der Suche nach Spannung und Abenteuer sind sowie nach einem erreichbaren Weg zu Weltklasse-Veranstaltungen.\nWir freuen uns, diesen Weg in Partnerschaft mit Land Rover und der MSA eröffnen zu können und glauben, dass das Format neue Möglichkeiten erschließt, die verschiedenen Rally-Disziplinen in Großbritannien und dem Ausland zu erleben und Neulinge auf die Strapazen und die Wirklichkeit von Rally Raid vorzubereiten.\nWir hatten wirklich Spaß daran, den Defender Challenge-Wagen zu entwickeln – das wird eine unterhaltsame Meisterschaft.\nDarüber hinaus gibt es bei der Defender Challenge einen Trainings- und Testtag im Februar sowie die Option, an Wüstenrennen in Nordafrika und dem Nahen Osten teilzunehmen.\nFeuerwehr zur Rettung eines Hündchens gerufen, das 15 Meter über dem Boden auf einem gefährlichen Felsvorsprung in einem Steinbruch festsaß\nCockerspaniel-Hündin Ruby war nach einem kleineren Verkehrsunfall davongelaufen\nDrei Tage später wurde sie von einem Spaziergänger im Steinbruch in ihrer misslichen Lage entdeckt\nFeuerwehrleute seilten sich an Felswand ab und retteten den Hund vor dem sicherem Tod\nDer Feuerwehr gelang es, ein Hündchen in Sicherheit zu bringen, das auf einem 15 Meter hohen Vorsprung in einer Felswand festsaß.\nDie neun Monate alte Cockerspaniel-Hündin Ruby war nach einem Verkehrsunfall am Sonntagnachmittag davongelaufen und überlebte drei Tage allein, ehe sie am Mittwoch aus einem Steinbruch gerettet wurde.\nScott Alderson, 25, und seine Freundin Becky Hall, 20, denen der Hund gehört, kamen zum Steinbruch Flappit in Denholme, West Yorkshire, um Ruby wieder in Empfang zu nehmen und sich bei den Feuerwehrleuten des West Yorkshire Fire and Rescue Service zu bedanken.\nSie hatten verzweifelt nach ihrer vermissten Hündin gesucht und Hilferufe in sozialen Netzwerken veröffentlicht, als sie nach dem kleinen Verkehrsunfall in den Steinbruch entlaufen war.\nEtwa gegen 14:15 Uhr am Mittwoch sah ein Spaziergänger, der seinen Hund ausführte, die gestrandete Ruby auf dem 15 Meter hohen Absatz im Steinbruch.\nDas technische Rettungsteam der Cleckheaton Fire Station eilte zur Stelle und seilte sich zur Rettung Rubys ab, die dann in einer Hundebox nach oben transportiert wurde.\nAndy Clayton, Spezialist des technischen Rettungsteams, sagte: „Sie war in einer gefährlichen Lage.\nSie befand sich in der Mitte der Felswand – 15 Meter von oben und dem Boden entfernt.\nSie bewegte keinen Muskel während ihrer Rettung – sie war wie steifgefroren.\nAber jetzt geht es ihr gut.\nSie hat anschließend ein paar Hundekuchen gefressen.\nDas war ein ziemlich ungewöhnlicher Einsatz.\nDie Tatsache, dass der Hund entdeckt wurde, ist unglaublich.\nPeter Lau, Spezialist des technischen Rettungsteams, sagte: „Ruby hatte ein Riesenglück.“\nEs bestand die Möglichkeit, dass sie sehr schwer verletzt war oder Schlimmeres.\nRuby wurde zum Tierarzt zur Untersuchung gebracht, der aber außer Erschöpfung und Dehydrierung nichts feststellte.\nBecky Hall aus Halifax, West Yorkshire, sagte: „Bei der Rettung zuzusehen war beängstigend.“\nIch konnte gar nicht glauben, dass sie wirklich da oben war.\nEs war wundervoll, sie wieder in den Armen zu halten.\nDer Tierarzt erklärte, wenn die Erschöpfung zu groß geworden und sie zusammengebrochen wäre, wäre sie vermutlich abgestürzt.\nDie Feuerwehrleute haben Großartiges geleistet.\nEs war wirklich mutig, was sie getan haben.\nWir sind einfach so dankbar und jeder von ihnen war absolut unglaublich.\nScott Alderson aus Keighley fügte hinzu: „Wir hatten Angst, dass sie herunterfallen würde, aber sie blieb oben.“\nDie Feuerwehrleute waren großartig.\nIch kann kaum glauben, wo sie war.\nMick Jagger erklärt, er habe Katy Perry nie angemacht, als sie 18 war.\nBei einem Interview mit einem australischen Radiosender diese Woche sagte der Pop-Star, sie habe als Background-Sängerin an Jaggers Song „Old Habits Die Hard“ aus dem Jahr 2004 mitgearbeitet.\nPerry erklärte, sie habe mit dem Altrocker zu Abend gegessen, und dass „er mich angebaggert hat, als ich 18 war“.\nSie fügte hinzu: „Das ist schon lange her und er war sehr nett zu mir.“\nIn einer Erklärung sagte ein Vertreter Jaggers, 70, am Donnerstag, dass er „kategorisch verneint, dass er jemals Annäherungsversuche bei Katy Perry unternommen habe“.\nDer Vertreter ergänzte: „Vielleicht hat sie ihn mit jemand anderem verwechselt.“\nPerry war eine der Sängerinnen, die bei der Rolling-Stones-Tour dieses Jahr einen Gastauftritt hatten.\nIhr neues Album „Prism“ landete auf Anhieb auf Platz 1 diese Woche.\nGeorge Kerevan: Europäische Entflechtung gibt den Schotten die Wahl\nEin neuer Tag, eine neue Schreckensgeschichte zur Unabhängigkeit.\nDiesmal werden wir gewarnt, dass ein unabhängiges Schottland erforderlich sei, um dem Schengen-Raum als Bedingung für die EU-Mitgliedschaft beizutreten.\nDas liefert das Stichwort für Geschichten über Passkontrollen in Berwick und eine mit Stacheldraht gesicherte Grenze entlang des Hadrianswalls.\nIn der Tat wurde in der Strathclyde-Vorlage auf die möglichen wirtschaftlichen Vorteile hingewiesen, die mehr Reisefreiheit im restlichen Europa mit sich bringen würde, doch spielte dies – erwartungsgemäß – in den Schlagzeilen keine Rolle.\nAuch hat niemand erwähnt, dass sich die EU-Mitgliedsstaaten häufig ihre strikten Regeln zurechtbiegen, wenn es für sie günstiger ist.\nDa Schottland derzeit nicht zum Schengen-Raum gehört, wäre die fortgesetzte Nichtbeachtung für Brüssel nur ein kleines Zugeständnis im Gegenzug für das, was man wirklich von den Schotten will.\nAlso eigentlich keine Story.\nUnd eine, die schon so in der Jahre gekommen ist, dass sie bereits einem Fossil gleicht: Das erste Mal habe ich die „Unabhängigkeit bedeutet Passkontrollen“-Ente vor mindestens 40 Jahren gehört.\nDabei geht ein interessanter Punkt beim ständigen Wiederholen dieser uralten Geschichte verloren.\nWeshalb sollte man von einem unabhängigen Schottland erwarten, dass es nach der europäischen Pfeife tanzt?\nWarum das Londoner Joch gegen das von Brüssel eintauschen, besonders jetzt?\nDas sind die wirklichen europäischen Neuigkeiten: Der große, nach dem Krieg gefasste Plan zur Vereinigung Europas ist ins Stocken geraten.\nMit der Eurokrise ist das Projekt Europa offiziell gestorben.\nÜberall in der EU gewinnen Parteien an Boden, die EU-feindlich sind oder den Euro als Gemeinschaftswährung über Bord werfen möchten.\nSelbst in Deutschland konnte die euroskeptische Partei Alternative für Deutschland – erst dieses Jahr gegründet – knapp fünf Millionen Stimmen bei der Bundestagswahl im September für sich ergattern und damit effektiv die Freien Demokraten (das Äquivalent zu den britischen Liberal Democrats) aus dem Bundestag vertreiben.\nEs gab schon immer heimischen Widerstand gegen den Plan, ein föderalistisches Europa zu schaffen.\nDie aktuelle Wirtschaftskrise stellt sich allerdings als Wendepunkt heraus.\nWegen der von Berlin und der Europäischen Zentralbank verhängten strengen Sparpolitik in Verbindung mit der Zwangsjacke, in die die jeweilige nationale Wirtschaft durch das Festhalten an der gemeinsamen Währung genötigt wird, sind viele Menschen der Ansicht, das Projekt Europa sei zu weit gegangen.\nDie Krise des Euro hat wenig damit zu tun, dass nationale Regierungen exzessive Haushaltsdefizite verursachen – das war nur in Griechenland der Fall.\nStattdessen hat das Eurosystem seine Mitglieder auf Wechselkurse festgenagelt, die für deutsche Exporteure vorteilhaft sind – und das möchten deutsche Politiker gern so lassen.\nOhne die Möglichkeit einer Abwertung der lokalen Währung findet sich Südeuropa mit einem eingebauten Produktivitätsnachteil gegenüber Deutschland wieder.\nDie einzige Möglichkeit besteht darin, Löhne und öffentliche Ausgaben zu kürzen – angespornt von Berlin.\nHinter den aktuellen Etat- und Währungsproblemen liegt ein tiefer gehendes europäisches Produktivitätsproblem.\nAls Folge der von Brüssel verordneten „grünen“ Energierichtlinien – ein Code für die Subventionierung französischer und deutscher Energieunternehmen auf Kosten der Verbraucher – zahlt die europäische Industrie verglichen mit den Vereinigten Staaten das Doppelte für Elektrizität und das Vierfache für Gas.\nDas ist ein lähmender Kostennachteil, wie wir bereits in Grangemouth sehen konnten.\nAlle Lohnfestschreibungen der Welt schützen die europäische petrochemische Industrie nicht davor, von billigem amerikanischem Schiefergas in die Ecke gedrängt zu werden.\nAls Folge zieht eine Revolte herauf, besonders in Frankreich, dem einstigen Cheerleader der EU.\nNach dem Krieg sah die politische Elite Frankreichs die EU als ein Vehikel, mit dem man Deutschland in Schach halten und Paris auf Augenhöhe mit Washington heben konnte.\nDoch Berlin braucht Paris nicht mehr als Tor zur politischen Legitimation und hat Europa seine eigene Wirtschaftspolitik aufgedrückt, womit die angeschlagene französische Wirtschaft zu kämpfen hat.\nDas Ergebnis: Marine Le Pens rechtsgerichteter, EU-feindlicher Front National hat gerade eine entscheidende Nachwahl gewonnen und damit die regierenden Sozialisten auf Platz drei verwiesen.\nDer Front National ist nun die beliebteste Partei in Frankreich mit 24 Prozent der Wählerstimmen – eine zeitgerechte Warnung für die britische Labour-Partei, dass sie nicht davon ausgehen kann, eine Spaltung im rechten Spektrum würde automatisch Vorteile für die Linke bedeuten.\nWas macht Le Pen mit ihrer neu gewonnen Popularität unter den weißen Franzosen der Arbeiterklasse?\nSie möchte die EU-Wahlen nächstes Jahr dazu nutzen, einen Anti-EU-, Anti-Gemeinschaftswährungsblock im Europäischen Parlament zu schmieden.\nFalls die Anti-EU-Parteien bei diesen Wahlen gut abschneiden – und das ist sehr gut möglich –, dann könnte erstmals ein solcher Block das Europäische Parlament dominieren.\nDies ist der Punkt, auf den ich hinaus will: In nicht allzu ferner Zukunft wird das wachsende Ressentiment gegen die EU und die gemeinsame Währung sich zur Abschaffung des Euro zusammenfinden.\nDie EU wird nicht verschwinden, aber sie wird eher so etwas wie das „Europa der (souveränen) Nationen“ werden, das General de Gaulle favorisierte.\nDeutschland und ein paar seiner Satelliten-Wirtschaften halten vielleicht am Euro fest, aber Frankreich und Südeuropa werden zu ihren eigenen Währungen zurückkehren.\nIch erwarte, dass sich Großbritannien von diesem Projekt distanziert in der Hoffnung, sich bei den USA einzuschmeicheln.\nAllerdings legt Washingtons wachsendes Interesse am Pazifikraum nahe, dass Großbritannien allein im atlantischen Regen stehen wird.\nWo bleibt Schottland bei all dem?\nWir können entscheiden, eine Region von (in letzter Konsequenz) Klein-England zu sein.\nOder wir können unsere eigenen wirtschaftlichen Interessen verteidigen – wozu auch gehört, Berlin und Brüssel zu sagen, was sie sich wo hinstecken können.\nIch vermute, Schottland könnte in einem lockereren europäischen Verbund ganz gut fahren, sofern wir unsere eigene Währung behalten.\nDie Kooperation mit anderen, ähnlich denkenden Ländern ist in einem nicht föderierten Europa der Nationen einfacher.\nAnsonsten sollten wir erwägen, es Norwegen gleichzutun und unsere wirtschaftliche Unabhängigkeit behalten.\nDie SNP-Regierung in Schottland ist – bemerkenswerterweise – die erfolgreichste politische Bewegung gegen die Sparpolitik in Europa und hat 2011 eine spektakuläre Mehrheit aufgrund der Ablehnung der vorgeschlagenen (und vorgenommenen) Kürzungen gewonnen, die der Labour-Finanzminister Alistair Darling und die nachfolgende Tory-Lib Dem-Koalition zu verantworten hatten.\nEs wäre für Schottland lächerlich, sich jetzt für eine Unabhängigkeit zu entscheiden, nur um dann von Berlin und Brüssel eine Sparpolitik aufgezwungen zu bekommen.\nFrühe Pubertät: Schneller erwachsen werden\nAfroamerikanische und hispanische Mädchen erreichen tendenziell eher die Pubertät als ihre weißen Altersgenossinnen, wie Untersuchungen zeigen.\nKörperliche Veränderungen bedeuten noch nicht unmittelbar die Pubertät\nEs gibt keinen Beleg dafür, dass Hormone oder andere Chemikalien verantwortlich sind\nExperten glauben, die epidemische Fettleibigkeit sei ein Auslöser der frühen Pubertät\nDer Trend zur frühen Pubertät ist weniger ausgeprägt bei Jungen\nDie frühere CNN-Korrespondentin Pat Etheridge ist eine Journalist, die sich auf Kindergesundheit und Familienthemen spezialisiert hat.\nSollte eine Mutter besorgt sein, wenn ihrer Tochter schon im Alter von sieben oder acht Jahren Brüste und Schamhaare wachsen?\nBei der jährlichen Konferenz des Kinderärzteverbandes American Academy of Pediatrics diese Woche in Orlando, Florida, erklärte der pädiatrische Endokrinologe Dr. Paul Kaplowitz, dass diese frühen körperlichen Veränderungen relativ normal unter amerikanischen Mädchen seien und eine neue Norm darstellten.\n„Ich verbringe viel Zeit damit, Eltern zu beruhigen – normalerweise ist das kein Anzeichen dafür, dass nun schnell die Pubertät eintritt“, erläuterte Kaplowitz.\nOffensichtliche Anzeigen der Entwicklung, wie zum Beispiel wachsende Brüste, Scham- und Achselhaare sowie Körpergeruch, zeigen sich bei Mädchen früher.\nDennoch es gab nur eine leichte Verschiebung beim Alter der Menarche (Auftreten der ersten Regelblutung) in den letzten 40 Jahren.\nIn den Vereinigten Staaten liegt das Durchschnittsalter bei 12,5 Jahren, etwas weniger als 12,75 im Jahr 1970.\n„Wenn die Entwicklung der Brüste beginnt, dauert es noch mindestens zwei bis drei Jahre bis zur Menarche“, sagte Kaplowitz, auch Autor des Buchs „Frühe Pubertät bei Mädchen: Der essentielle Ratgeber zum Umgang mit diesem häufig auftretenden Problem“.\nZeit ist der genaueste Test, wie die Pubertät voranschreitet.\nEs ist umstritten, was tatsächlich den Beginn der Pubertät darstellt, doch gilt es „frühreif“, wenn die Brustvergrößerung von einem Wachstumsschub vor einem Alter von acht Jahren begleitet wird.\nIn den meisten Fällen verlangsamt sich der Prozess oder stagniert – etwas, das ein Kinderarzt genau überwachen kann.\nBei schnellerem Voranschreiten könnten Tests durch einen Endikronologen angezeigt sein, damit ernste Probleme wie Tumore oder Zysten ausgeschlossen werden können.\nEs gibt Behandlungsmethoden zum Verzögern einer frühen Menstruation und der Abwehr einer anderen Folge: der vorzeitigen Alterung der Knochen, die ultimativ zu Wachstumshemmung und damit kleinem Körperwuchs bei Erwachsenen führen kann.\nDie Empfehlungen für eine medikamentöse oder hormonelle Therapie orientieren sich am Alter des Kindes, der Entwicklungsgeschwindigkeit, der Wachstumsrate und der emotionalen Reife.\nPsychosoziale Aspekte sind ebenfalls wichtig.\nKaplowitz ist zurückhaltend, was Medikamente angeht, aber er räumt ein: „Das Unterdrücken der Pubertät kann Verhaltensprobleme und die Gefühle von Mädchen mildern, anders als ihre Altersgenossinnen zu sein.“\nDas andere große Problem ist verständlich: Eltern möchten einfach nicht, dass ihre sehr jungen Töchter die Periode haben.\n„Sie sorgen sich wegen des Schwangerschaftsrisikos oder darüber, wie sie die hygienische Seite handhaben“, sagte Kaplowitz.\n„Es war ein Schock“, erinnert sich eine Frau, deren Tochter mit zehn ihre Tage bekommen hat.\nAuch wenn es erste Anzeichen gab und wir über Menstruation gesprochen hatten, war sie emotional nicht vorbereitet.\nSie kam verängstigt und aufgeregt von der Schule nach Hause, weil sie die erste in ihrem Freundeskreis war.\nEs gibt viele umfassend publizierte Theorien über die Ursachen frühzeitiger Pubertät.\nDoch es liegen keine schlüssigen Beweise dafür vor, dass Hormone in Milch oder anderen Nahrungsmitteln, Chemikalien in der Umwelt oder sexuelle Botschaften in den Medien ursächlich wären.\nJungen kommen ähnlich wie Mädchen früher in die Pubertät.\nKaplowitz ist der Ansicht, die überzeugendste Prämisse sei die Epidemie der Fettleibigkeit.\nEr unterstützte die Durchführung einer Studie im Jahr 2001 über Mädchen im Alter von sechs bis neun Jahren, die einen Zusammenhang zwischen Körperfett und dem Eintritt in die Pubertät herstellt.\nAndere Untersuchungen unterstützen diese Schlussfolgerung, aber es gebe viele andere Faktoren, die eine Rolle spielten.\nIn diesem Land erreichen afroamerikanische und hispanische Mädchen tendenziell eher die Pubertät als ihre weißen Altersgenossinnen.\nEs gibt dafür unterschiedliche Erklärungen.\nGlobal scheint eine frühe Pubertät von allen möglichen Dingen beeinflusst zu sein, von Wirtschaftsbedingungen über das Klima bis zu den Genen.\nEin weiteres Rätsel: Obwohl Jungen die Gesichts- und Schambehaarung schon früher wächst, ist der Trend zu einer vollumfänglichen früheren Pubertät nicht so ausgeprägt wie bei Mädchen.\nAndere Ärzte auf der AAP-Konferenz unterstrichen die Komplexität des Themas.\nDas Auftauchen von Akne und Schamhaar ist selbst bei Babys und Kleinkindern verbreitet.\n„Wir müssen vorsichtig sein, wie wir den wahren Beginn der Pubertät identifizieren“, sagte Dr. Lawrence Silverman, ein pädiatrischer Endokrinologe am Goryeb Children's Hospital in Morristown, New Jersey.\nEltern sollten nicht zögern, sich von ihrem Kinderarzt beraten zu lassen, wie sie mit ihrem Kind sprechen sollten.\n„Das kann bedeuten, dass man früher als erwartet ein Gespräch führen muss“, riet Kaplowitz.\nWenn man ruhig bleibt, reagiert das Kind normalerweise gut.\nMädchen, die früh erblühen, brauchen die Versicherung, das der Prozess ein normaler Teil des Lebens ist, selbst wenn er früher als gedacht eintritt.\nJumbo-Hersteller streiten im Angesicht großer Bestellungen über Sitzbreite\nZwischen führenden Flugzeugherstellern ist es zu einer Auseinandersetzung über die Breite von Sitzen in der Touristenklasse bei Langstreckenflügen gekommen, was den Ton für einen bitteren Zusammenstoß auf der Dubai Airshow diesen Monat angibt.\nDer Streit dreht sich um die Sitzbreite, die Passagieren bei langen Flügen in der Touristenklasse angeboten wird – nicht immer diejenigen, um die sich Fluggesellschaften am meisten bemühen, doch dieser ausgewiesene Raum stellt den Schlüssel für die Effizienzbehauptungen bei den neuesten Flugzeugen von Airbus SAS und Boeing Co. dar.\nAirbus forderte diese Woche einen Branchenstandard, der eine Sitzbreite von mindestens 46 cm (18 Zoll) in der Touristenklasse vorschreibt, doch der US-amerikanische Erzrivale Boeing sagt, das sollten die Fluggesellschaften entscheiden.\nDie Auseinandersetzung kommt zu einem Zeitpunkt, da die Flugzeugbauer darum wetteifern, noch größere Versionen ihrer zweimotorigen Langstreckenflieger zu verkaufen, und bei der Veranstaltung vom 17. bis 21. November Rekordaufträge erwarten.\nWie der hintere Teil des Flugzeugs ausgestaltet ist – insbesondere ob es Reihen mit neun oder zehn Sitzen gibt –, ist entscheidend für die angegebenen wirtschaftlichen Ergebnisse, die das neue „Mini-Jumbo“-Design liefern soll.\nBoeing behauptet, seine modernisierte „777X“ fasse 406 Personen bei Sitzen in der Touristenklasse, die über 17 Zoll breit sind und so zehn pro Reihe erlauben.\nAirbus erklärt, die konkurrierende Version des A350 befördere 350 Personen in 18 Zoll breiten Sitzen in der Touristenklasse, wobei es neun pro Reihe gibt.\nFlugzeuggiganten teilen häufig Hiebe über technische Details mittels Werbung in der Fachpresse aus.\nJetzt appelliert Airbus vor der Dubai Airshow, wo die 777X mit über 100 Bestellungen voraussichtlich das Rennen machen wird, direkt an die Öffentlichkeit.\nKürzlich stellte das Unternehmen eine Anzeige vor, die der Beginn eines neuen Anzeigenkriegs sind könnte und Geldgebern ein Bild zeigte, in dem drei Personen zusammengequetscht in einem Restaurant sitzen, und dazu der Titel: „Würden Sie das akzeptieren?“\n„Boeing schlägt Langstreckenflüge in Sitzen vor, die enger sind als regionale Turbo-Props“, sagt Airbus-Vertriebschef John Leahy.\nAngesichts geänderter Ernährungsgewohnheiten werden die Leute dicker, doch Flugzeugsitze haben sich nicht radikal verändert.\nZwischen den frühen 1970ern, als die Boeing 747 die moderne Langstreckenreise definierte, und dem Ende des Jahrhunderts hat das Gewicht des männlichen Durchschnittsamerikaners zwischen 40 und 49 Jahren um zehn Prozent zugenommen, so die Daten des US-Gesundheitsministeriums.\nDer Taillenumfang des männlichen Durchschnittsamerikaners im 21. Jahrhundert beträgt laut US-amerikanischen Gesundheitsstatistiken 100,8 cm.\nAirbus sagt, sein Rivale halte sich an ein Sitzkonzept aus den 1950ern, als der durchschnittliche Körperumfang des frisch getauften „Jet Set“ schmaler war.\nMan habe, so Airbus, Untersuchungen durchgeführt, die belegten, dass ein zusätzliches Zoll (2,54 cm) pro Sitz die Schlafqualität um 53 Prozent steigere.\nBoeing bestreitet die Zahlen von Airbus zu den Sitzmaßen und sagt, es stehe nicht im Ermessen der Hersteller zu entscheiden, wie Fluggesellschaften die Balance zwischen Flugtarifen und Einrichtung gestalten.\nDas Unternehmen erklärt auch, laut Untersuchungen hänge das Erlebnis im Flugzeug von mehr als der Sitzbreite ab.\n„Es läuft wirklich darauf hinaus, Fluggesellschaften Flexibilität zu geben, damit sie das tun können, was sie ihrer Ansicht nach müssen, um erfolgreich zu sein“, erläutert der Flugkabinenexperte Kent Craver von Boeing.\nSie möchten nicht, dass wir ihnen diktieren, was sie profitabel macht.\nSie kennen ihr Geschäft besser als jeder andere.\nFür Fluggäste geht es um mehr Ellenbogenfreiheit, aber für Hersteller wird es in zunehmendem Maße ein Thema, das sich auf die Umsätze auswirken kann.\nHinter der Auseinandersetzung steht ein Rennen um Flugzeugbestellungen mit einem geschätzten Volumen von mindestens 700 Milliarden US-Dollar nach Listenpreisen in den kommenden Jahrzehnten, was sich nachhaltig auf die Exportbilanz der USA oder Europas auswirken könnte.\nWie Reuters im Juli erstmals berichtete, ist das Sitzlayout die treibende Kraft hinter der Auseinandersetzung um die neuen Jets.\nSowohl Airbus als auch Boeing behaupten 20 Prozent mehr Effizienz pro Sitz bei ihren neuesten zweimotorigen Langstreckendesigns als der Marktführer in diesem Segment, die 365-sitzige Boeing 77-300ER.\nDie Aussagen Boeings zu den Ergebnissen hängen teilweise davon ab, dass die 777X mit ihren zehn Sitzen pro Reihe mit dem Originaldesign von neun Sitzen in der 777 verglichen wird.\nDie gestiegenen Kosten pro Einheit sind immer noch geringer als bei derzeit verwendeten Maschinen mit zehn Sitzen pro Reihe.\n„Boeing quetscht deshalb mehr Sitze in sein Flugzeug, um es wettbewerbsfähiger zu unseren Produkten zu machen“, sagt Kevin Keniston, Leiter für Passagierkomfort bei der europäischen Airbus.\nAndererseits sagen Analysten, volle Kabinen mit zehn Sitzen pro Reihe bei vorhandenen 777s deuteten darauf hin, dass sich viele Passagiere für die engere Anordnung entschieden, was mit billigeren Flugtarifen einhergehen könnte.\n„Achtzehn Zoll Sitzbreite wären toll für Passagiere, aber die Wirklichkeit ist: von einem wirtschaftlichen Gesichtspunkt aus ist das Airbus-Angebot von der Bedrohung durch die 777 gesteuert“, sagt Mary Kirby, Expertin für Kabineneinrichtung, Gründerin und Herausgeberin von Runway Girl Network.\nAirbus und Boeing bieten keine Sitze an, sondern einen Katalog von Zulieferern, aus denen die Fluggesellschaften auswählen können.\nDie weltreisenden Jet-Verkäufer tragen sogar Bandmaß bei sich, um die Einrichtung bei der Konkurrenz nachzumessen.\nSelbst wenn sie den Komfort anpreisen, so bieten doch alle Hersteller auch Jets mit hochverdichteter Ausgestaltung für Billigfluglinien und regionale Flüge.\nAirbus bietet einen A350 mit zehnsitzigen Reihen, hat aber laut eigener Aussage noch keinen verkauft.\nBis vor kurzem hat Airbus betont, wie wichtig mehr Anpassbarkeit der Kabinen sei und für einige Jets breite Sitze an den Gängen angeboten.\nOhne die Unterstützung des einzigen anderen Herstellers großer moderner Jets sagen Experten, dass der Ruf nach einem neuen Branchenstandard vermutlich verpuffen werde, aber von der Welle von 777X-Verkäufen ablenken könnte.\nNeuer Anti-Nikotin-Impfstoff könnte dem Vergnügen beim Rauchen den Garaus machen\nWissenschaftler haben einen Anti-Nikotin-Impfstoff entwickelt, der den Spaß am Rauchen verderben könnte.\nEine einzige Dosis des Impfstoffs konnte Mäuse ein Leben lang vor Nikotinsucht schützen.\nVor Tests am Menschen werden noch weitere Versuche benötigt, was noch einige Jahre dauern kann, doch Professor Ronald Crystal vom Weill Cornell Medical College in New York sagte, die ersten Ergebnisse seien gut.\n„Wir sind sehr hoffnungsvoll, dass diese Art von Impfstrategie einmal Millionen von Rauchern helfen kann, die versucht haben aufzuhören und dabei alle auf dem Markt erhältlichen Methoden ausprobiert haben, aber erleben mussten, dass ihre Nikotinsucht stärker ist als diese Ansätze“, so Cornell.\nDer neue Impfstoff enthält einen harmlosen Virus, der so verändert wurde, dass er die genetischen Informationen zur Herstellung von Nikotin-Antikörpern enthält.\nDer Virus infiziert selektiv die Leberzellen, die dann einen ständigen Strom von Antikörpern produzieren.\nDie Antikörper jagen die Nikotinmoleküle im Blut und neutralisieren sie, ehe sie das Gehirn erreichen, wodurch ein Raucher kein Nikotin-High erfährt.\nIn Versuchen behielten geimpfte Mäuse, denen Nikotin verabreicht wurde, ihr normales Aktivitätsniveau bei.\nMäuse ohne Impfung dagegen hätten eine „Auszeit“ genommen, erklärten die Forscher, ein Zeichen dafür, dass das Nikotin ihr Gehirn erreicht habe.\nDie Experimente sind im Fachblatt Science Translational Medicine beschrieben.\nFrühere Tabakimpfstoffe schlugen fehl, weil sie Antikörper enthielten.\nDie Impfungen mussten zur Aufrechterhaltung des Antikörperpegels so häufig gegeben werden, dass sie teuer und unpraktisch waren.\nDoch die Kosten des neuen Impfstoffs sind wahrscheinlich deutlich niedriger, denn er verwandelt Leberzellen in Antikörperfabriken.\nWie Professor Crystal sagte, könnte ein zukünftiger Impfstoff für Menschen, wenn er ganz sicher sei, Kindern verabreicht werden, ehe sie in Versuchung gerieten, eine Zigarette zu probieren, und so Nikotinsucht verhindern.\nWahrscheinlicher aber ist, dass Raucher ihn einsetzen würden, um aufzuhören.\n„Sie wissen dann: Wenn sie wieder anfangen zu rauchen, empfinden sie wegen des Nikotinimpfstoffs kein Vergnügen mehr dabei, und das hilft ihnen, die Gewohnheit abzulegen“, erläutert er.\nBritische Wissenschaftler sagten, die Ergebnisse seien interessant, warnten aber gleichzeitig, es sei noch weitere Forschung notwendig.\nTripodi bestreitet, von Obeid beeinflusst worden zu sein\nGegen den früheren Minister der Labor-Partei Joe Tripodi aus New South Wales wird eine Ermittlung durch die staatliche Korruptionsaufsicht eingeleitet.\nDer ehemalige NSW-Minister bestreitet, die Regelungen zur Maritimverpachtung auf Bitte seines politischen Mentors Eddie Obeid geändert zu haben, der verdeckte Beteiligungen an drei Grundstücken auf staatlich kontrolliertem Land besaß.\nDie Independent Commission Against Corruption (ICAC ­ Unabhängige Kommission gegen Korruption) hat am Freitag ihre Untersuchungen zur Frage ausgeweitet, ob Obeid verschiedene Staatsminister dahingehend beeinflusst hat, Pachtverträge am Circular Quay, wo die Obeids zwei Restaurants und ein Café betrieben, ohne Ausschreibung nach deren Auslaufen im August 2005 zu verlängern.\nJetzt wird wegen der Anschuldigung ermittelt, Tripodi habe von Obeids verdecktem Interesse an den Grundstücken gewusst, nachdem Tripodis frühere stellvertretende Stabschefin Lynne Ashpole am Donnerstag entsprechend ausgesagt hatte.\nIn jahrelangen Gesprächen, die 2005 begannen, hatte die Regierung auf öffentliche Ausschreibungen für die Pachtverträge gedrängt.\nDie Pächter waren dagegen und wollten zudem längere Laufzeiten.\n2009 wurden die Pachtverträge für die Unternehmen am Circular Quay, die den Obeids jährlich 2,5 Millionen Dollar einbrachten, ohne öffentliche Ausschreibung verlängert.\nTripodi, der von Februar 2006 bis November 2009 Hafenminister war, hatte sich ursprünglich für öffentliche Ausschreibungen ausgesprochen.\nDoch er stritt ab, die Änderungen auf Bitten von Obeid vorgenommen zu haben, der, wie Tripodi bestätigte, auf eine Umgestaltung der Pachtregelungen der Regierung gedrängt hatte.\nEine der ICAC vorgelegte Telefonniederschrift zeigte Gespräche aus dem August und September 2007 zwischen Obeid, Tripodi und Steve Dunn, einem leitenden Beamten, der ins Hafenministerium gewechselt war, nachdem er unter Obeid in der Fischereibehörde gearbeitet hatte.\n„War das in diesen Telefongesprächen besprochene Thema die Ausarbeitung der kommerziellen Verpachtungsregelungen?“, fragte das stellvertretende Kommissionsmitglied Anthony Whealy Tripodi.\n„Nein“, antwortete Tripodi.\nIch kann mich nicht erinnern, was besprochen wurde, aber das war es definitiv nicht.\nDefinitiv nicht zwischen mir und Herrn Obeid.\nIsraelische Kampfflugzeuge greifen Ziel in Syrien an, so offizielle Quellen\nIsraelische Jagdflugzeuge hätten Donnerstagnacht ein Ziel im syrischen Hafen Latakia angegriffen, bestätigte ein leitender Regierungsmitarbeiter gegenüber Fox News.\nDer Beamte erläuterte nicht, was das Ziel gewesen sei, sagte aber, es sei mindestens eines gewesen.\nLaut Associated Press handelte es sich bei dem Ziel um russische SA-125-Raketen.\nMindestens zweimal hat Israel dieses Jahr schon Luftschläge auf Raketenlieferungen in Syrien durchgeführt.\nAusländische Arbeitnehmer mit 457-Visa könnten „Echtheitstest“ unterzogen werden\nDie Regierung denkt im Rahmen erweiterter Maßnahmen über einen „Echtheitstest“ für ausländische Arbeitnehmer mit 457-Visum nach.\nSollte der Test eingeführt werden, käme er über ein Kriterium zum Einsatz, das verhindern soll, dass das 457 zur Besetzung unqualifizierter Arbeitsplätze oder als Hintertür für den Zuzug von Familie und Freunden nach Australien benutzt wird.\nHeute wurde ein Diskussionsvorschlag der Regierung veröffentlicht, nachdem die frühere Abgeordnete der Labor-Partei, Maxine McKew, die Kommentare der Regierung im Hinblick auf ausländische Arbeitnehmer verurteilt hatte, weil diese von den Nachbarn Australiens als Beleidigung aufgefasst werden könnten.\n„Lautstarke Erklärungen wie ,Ausländer sollen sich hinten anstellen‘ und ,Australier zuerst einstellen‘ sind ein sehr unangenehmer Rückfall in Zeiten, in denen Gewerkschaften einen geschützten Arbeitsmarkt forderten“, sagte sie dem Australia India Institute heute.\nHistorisch betrachtet hieß das, dass weiße Arbeitskräfte geschützt werden sollten – und wenn manche in der Region ein Echo dieses historischen Artefakts vernähmen, würde mich das nicht wundern.\nDer Diskussionsvorschlag umreißt zwölf Maßnahmen, die einst vom ehemaligen Einwanderungsminister Chris Bowen angedacht wurden.\nEinwanderungsminister Brendan O'Connor, der gestern zu Gesprächen über Menschenschmuggel in Sri Lanka weilte, hat fünf der empfohlenen Änderungen umgesetzt, die anderen werden noch erwogen.\nWenn das „Echtheitskriterium“ übernommen wird, dann könnte jemand, der ein Visum beantragt, dahingehend überprüft werden, ob „der Antrag in den Fällen echt ist, in denen der Antragsteller mit dem Inhaber oder einer relevanten Person des unterstützenden Unternehmens verwandt oder persönlich verbunden ist.“\nFirmen könnten außerdem verpflichtet werden, Rechenschaft über die Anzahl der 457-Visumsinhaber abzulegen, nachdem in der Vergangenheit Unternehmen, die zunächst nur eine kleine Anzahl von Arbeitern unterstützen wollten, schließlich Hunderte eingestellt haben.\nUnterdessen starb ein 35-jähriger sri-lankischer Asylant vermutlich an einem Herzinfarkt, nachdem er diese Woche mit einem Flüchtlingsboot auf der Weihnachtsinsel angekommen war.\nDer verstörte neunjährige Sohn des Mannes, der mit ihm nach Australien gekommen war, wird seit dem Tod seines Vaters am Mittwoch von einem erwachsenen Cousin betreut, der ebenfalls auf dem Boot war.\nAustralische Behörden brachten den Mann in das Christmas Island Hospital, wo er starb.\nVon der britischen Regierung wurde eine Studie angekündigt, die die Vorteile des HS2-Eisenbahnprojekts für Schottland erhöhen soll.\nIn der Arbeit von HS2 Ltd wird vorgeschlagen, schon mit Beginn von Phase 1 im Jahr 2026 Hochgeschwindigkeitsverbindungen zwischen Schottland und dem Norden Englands zu verwirklichen.\nVerkehrsministerin Baroness Kramer sagte, das Projekt „wird Großbritannien näher zusammenbringen“.\nDer schottische Verkehrsminister Keith Brown erklärte, er sei sehr erfreut, mit der britischen Regierung an diesem Plan zu arbeiten.\nPhase 1 besteht aus einer neuen Hochgeschwindigkeits-Bahnverbindung zwischen London und den West Midlands.\nNach Abschluss von Phase 2 wird es Verbindungen nach Manchester und Leeds geben.\nIm Juni korrigierte die Regierung die geschätzten Kosten für den Bau der Hochgeschwindigkeitstrasse zwischen London und Nordengland von 32,7 Mrd. Pfund auf 42,6 Mrd. Pfund.\nDie britische Regierung, die in Gesprächen mit Transport Scotland steht, hat HS2 Ltd beauftragt, nach weiteren Streckenkapazitäten und Reisezeitverbesserungen für Nordengland und Schottland zu suchen.\nDazu gehört die Möglichkeit einer Reisezeit von letztendlich drei Stunden oder weniger von Glasgow und Edinburgh nach London.\nBaroness Kramer sagte: „Unser Ziel für HS2 ist ein wirklich nationales Streckennetz, das Großbritannien und seine Städte näher zusammenbringt.“\nWir gehen mit HS2 voran, weil es enorme Vorteile mit sich bringt.\nOhne es stehen wir vor einer Kapazitätskrise in unserem Bahnnetz.\nDoch es geht auch um die Verbindung zwischen 18 britischen Städten, einschließlich Glasgow und Edinburgh, die dank HS2 verbessert wird.\nDer schottische Staatssekretär Alistair Carmichael kommentierte: „Die heutige Ankündigung ist eine gute Nachricht für Schottland.“\nIm Namen der schottischen Regierung forderte Keith Brown Carmichael auf, sich „unmissverständlich“ für die schottische Einbindung in das HS2-Netzwerk einzusetzen.\nBrown sagte: „Die Hochgeschwindigkeits-Bahnverbindung birgt das Potenzial enormer wirtschaftlicher Vorteile für Schottland, gleichzeitig liefert aber auch die Wirtschaftskraft Schottlands ein Argument für schnelle Bahnverbindungen in ganz Großbritannien.“\nDeshalb sind wir erfreut, als Partner der britischen Regierung zu arbeiten und die Optionen für eine Hochgeschwindigkeits-Bahnverbindung in Schottland zu untersuchen, die Vorteile für alle schafft und die Verbindung Glasgow-Edinburgh ergänzt, die die schottische Regierung bereits plant.\nIch freue mich darauf, den Untersuchungsbericht mit den britischen Ministern im nächsten Jahr zu prüfen und gemeinsam die nächsten Schritte zu beschließen.\nVorschriften zu elektronischen Geräten in Flugzeugen bleiben in Australien vorläufig in Kraft\nAustralische Flugpassagiere müssen auch weiterhin Tablets und Smartphones bei Start und Landung abschalten, trotz Bemühungen in den USA, die Regelungen für derartige Geräte zu lockern.\nDie US-amerikanische Federal Aviation Administration (FAA) ermöglicht US-Fluggesellschaften, ihre Vorgaben zu ändern, sodass Passagiere auf ihren Geräten während kritischer Flugphasen E-Books lesen, Videos sehen oder spielen können, sofern diese sich im „Flugmodus“ befinden.\nWährend des Großteils des Flugs ist Passagieren dies bereits erlaubt, doch finden es viele Leute ärgerlich, dass sie beim Start und der Landung ihre E-Books nicht lesen dürfen.\nAustralische Gesellschaften beobachten die Entscheidung, zu deren Umsetzung die US-amerikanischen Fluggesellschaften Unmengen an Arbeit erledigen müssen, verfolgen jedoch keine unmittelbare Pläne zur Änderung ihrer Vorschriften.\nDie Flugsicherungsbehörde CASA erklärte ebenfalls, man werde sich die Ankündigung ansehen, betonte aber, dass die Einschränkungen bei der Nutzung elektronischer Geräte in kritischen Flugphasen in Australien nach wie vor gelten.\n„Die CASA hat derzeit keine spezifischen Regelungen hinsichtlich des Gebrauchs elektronischer Geräte im Flugzeug“, wurde verlautbart.\nDas Thema unterliegt Bestimmungen, denen zufolge Fluggesellschaften die Sicherheit jederzeit aufrechterhalten und Passagiere die vom Kabinenpersonal gegebenen Sicherheitsanweisungen befolgen müssen.\nVirgin hat bereits mit der CASA Gespräche über eine Nutzungsausweitung seines Wi-Fi-Unterhaltungssystems auf Flügen geführt und erklärt, man sei offen für Veränderungen, diese müssten aber vom Gesetzgeber initiiert werden.\n„Wir würden eine Überprüfung der Zulassung elektronischer Geräte durch die CASA begrüßen, denn wir sind überzeugt, dass dies das Kundenerlebnis verbessern würde, nachdem wir nun (drahtlose Unterhaltung) während des Flugs anbieten“, sagte ein Sprecher.\nQantas erklärte, man werde bis auf Weiteres bei den aktuellen Vorschriften bleiben.\n„Unsere derzeitigen Richtlinien sehen vor, dass elektronische Geräte beim Start und der Landung nicht verwendet werden dürfen, und wir haben zurzeit keine Pläne, das zu ändern“, erklärte das Unternehmen.\nDie FAA-Regelungen gelten für US-amerikanische Fluggesellschaften.\nWir sind allerdings immer an Entwicklungen bei Regelungen interessiert, von denen Passagiere profitieren können, und werden uns die FAA-Entscheidung sowie die Gründe dahinter sicherlich genau ansehen.\nDie Entscheidung wirkt sich bei US-amerikanischen Gesellschaften je nach Alter der Flotte unterschiedlich aus.\nSie müssen nachweisen, dass ihre Flugzeuge die Funkstörungen durch Mobilgeräte tolerieren können, und Handbücher, Schulungsmaterialien, Handgepäck-Programme sowie Kundenunterweisung ändern.\n„Nachdem eine Fluggesellschaft die Toleranz ihrer Flotte bestätigt hat, kann sie Passagieren das Verwenden tragbarer, leichter elektronischer Geräte wie Tablets, E-Book-Lesegeräte und Smartphones in jeder Höhe erlauben“, gab die FAA bekannt.\nIn seltenen Fällen bei schlechter Sicht wird die Crew die Passagiere anweisen, während der Landung die Geräte abzuschalten.\nDie Gruppe empfahl außerdem, schwerere Geräte bei Start und Landung sicher unter dem Sitz oder in den Fächern über den Sitzen zu verstauen.\nVor dem Revierderby gegen Schalke hatten mitgereiste BVB-Anhänger mit Leuchtraketen für hässliche Szenen in der Veltins-Arena gesorgt.\nBorussia Dortmund kündigte daraufhin harte Konsequenzen an.\nVor dem Freitagsspiel der Fußball-Bundesliga gegen den VfB Stuttgart reagierten die Ultras mit einem Schweigen - zunächst.\nEs war eine ungewohnte, fast schon gespenstische Akustik, die sich dem Betrachter bis kurz vor dem Anpfiff des Bundesligaspiels zwischen dem deutschen Vizemeister Borussia Dortmund und dem VfB Stuttgart im Signal Iduna Park bot.\nZu hören waren überwiegend die Gästefans mit ihren Gesängen.\nDie Südtribüne dagegen, wo die treuesten der treuen - und lautesten - BVB-Fans stehen, präsentierte sich zunächst außergewöhnlich leise: Keine Gesänge, keine Schlachtrufe.\nDas Podest des Capo, der sonst die gemeinsame Anfeuerung koordiniert, blieb unbesetzt.\nUnd ganz vorne auf der Tribüne wehte einsam eine große Fahne mit Aufschrift \"Sektion Stadionverbot\".\nNur als Torhüter Roman Weidenfeller wie immer als erster BVB-Spieler den Platz betrat, brandete kurzzeitiger Jubel auf.\nAls seine Mannschaftskollegen folgten, gab es lautstarken Gesang und wehende Schals - aber längst nicht überall.\nIn den zentralen Blöcken 12 und 13 der Südtribüne regte sich nichts.\nAuch dass Stadionsprecher Norbert Dickel noch einmal die positiven Erlebnisse der letzten Tage - Derbysieg, Sieg über Arsenal, Vertragsverlängerung von Trainer Jürgen Klopp - aufzählte, sorgte nicht für Feierlaune.\nErst fünf Minuten vor dem Anpfiff erklomm der Capo sein Podest - und die bis dahin geradezu mit Händen greifbare Anspannung entlud sich in einem lauten Schrei, als Dickel wie gewohnt die Stimmung auf den Rängen im Stadion abfragte.\nAls letztes war wie immer die Südtribüne an der Reihe - und endlich war hier wieder wie gewohnt der lauteste Ort im Stadion.\nUnd spätestens als mit Anpfiff von der Südtribüne die lautstarke Aufforderung \"Derbysieger steht auf\" kam, war wieder alles wie immer.\nDas Schweigen zuvor war wohl eine Reaktion auf die Geschehnisse der vergangenen Tage.\nUnmittelbar vor Revierderby beim FC Schalke 04 hatten einige der mitgereisten BVB-Anhänger Leuchtraketen in die Zuschauerränge und auf den Platz gefeuert - und dabei fast Torhüter Roman Weidenfeller getroffen.\nDas Spiel wurde wegen der chaotischen Szenen verspätet angepfiffen.\nBVB-Boss Hans-Joachim Watzke hatte die Spitzen der Dortmunder Ultras daraufhin in seinem Büro empfangen - und glaubt man Watzkes Worten, war dies für die Fanvertreter ein eher ungemütlicher Termin.\n\"Es wird für die gesamte Ultrabewegung massive Einschnitte geben\", verkündete der BVB-Boss am Donnerstagabend auf einer Podiumsdiskussion in Frankfurt.\nAls Sofortmaßnahme untersagte Watzke den Ultras eine Choreographie für das Heimspiel gegen den VfB Stuttgart.\n\"Das habe ich verboten\", erklärte er.\nDie Null-Toleranz-Politik in Sachen Pyrotechnik können wir nicht aufgeben.\nZudem wurden den Ultras verschiedene Möglichkeiten einer Bestrafung aufgezeigt - bis zum Dienstag haben diese nun Zeit, sich für eine zu entscheiden.\nAndernfalls, so Watzke, werde der BVB bis Ende der kommenden Woche eine Sanktion festlegen.\n\"Das wird einschneidend\", versicherte Watzke .\nMan darf gespannt sein, wie die Reaktionen auf der Südtribüne dann ausfallen.\nPfandhäuser boomen in Singapur, da die Krise in der Mittelschicht angekommen ist\nIn einem Pfandhaus im Einkaufszentrum Bendemeer in Singapur tauscht Janani Amirthalinga einen goldenen Armreif, einen Ring und ein Paar Ohrringe ein, um die Schulgebühren ihrer Töchter bezahlen zu können.\n„Mein Ehemann und ich haben gerade ein Haus gekauft, da steckt mein ganzes Geld drin“, sagt Amirthalinga.\nObwohl sie jeden Monat 3.000 Singapur-Dollar (ca 1.730 Euro) als Verwaltungsmitarbeiterin verdiene und ihr Mann auch arbeite, reiche das monatliche Familieneinkommen nicht aus, erläutert sie.\nTatsächlich ist die Nachfrage in Teilen Südostasiens – wo die Verschuldung der Haushalte zunimmt – so groß, dass ValueMax, wo sie ihren Tausch vorgenommen hat, diese Woche das dritte Pfandhaus wurde, das an der singapurischen Börse gelistet ist.\nDas Verpfänden von Schmuck ist nicht nur ein schneller Weg, um Geld zu bekommen – 1.300 Singapur-Dollar im Fall von Janani Amirthalinga –, sondern auch fast so günstig wie ein ungesichertes Bankdarlehen.\nTypischerweise verlangen Pfandhäuser in Singapur einen effektiven Jahreszins von 17 Prozent, der nur knapp über den 15,4 Prozent liegt, die die United Overseas Bank verlangt, ein lokaler Kreditgeber mit einer Filiale im selben Einkaufszentrum.\nPfandhäuser bieten aber den Vorteil, dass hier keine Überprüfung der Kreditwürdigkeit oder Einkommensnachweise erforderlich sind, weshalb Darlehen schneller als bei Banken möglich sind.\nAus diesem Grund wenden sich Millionen von Menschen in der Region an Pfandhäuser, nachdem Familien den Druck durch steigende Lebenshaltungskosten sowie eine zunehmende Haushalts- und Verbraucherverschuldung spüren.\nNach fünf Jahren robusten Wachstums seit der globalen Finanzkrise und billigen Krediten aufgrund einer lockeren Finanzpolitik in den entwickelten Wirtschaftsräumen suchen Familien mit geringeren und mittleren Einkommen Pfandhäuser auf, um so bei stotternder Wirtschaft den Unterschied auszugleichen.\nDiese Woche bezeichnete die Rating-Agentur Standard & Poor's wachsende Haushaltsverschuldung, hauptsächlich durch steigende Hypotheken, als einen Risikofaktor für die Kreditwürdigkeit asiatischer Banken.\nMalaysia, Thailand und Singapur haben nach Einschätzung der Agentur die höchste Haushaltsverschuldung in Asien im Verhältnis zum Bruttoinlandsprodukt.\nMalaysia steht mit 80 Prozent des BIP an der Spitze der Liste, ein Anstieg von 60 Prozent noch im Jahr 2008.\nVolkswirtschaftler sorgen sich auch wegen der hohen Verbraucherverschuldung in Thailand, das diese Woche knapp aus einer technischen Rezession herausgekommen ist.\nAm Donnerstag zeigten die Daten eine weiterhin bestehende Exportschwäche und ein Nachlassen der Verbrauchernachfrage.\n„Im Endeffekt bedeutet das, dass angesichts steigender Kosten die Menschen im mittleren bis unteren Segment (der Einkommensskala) versuchen werden, ihr Einkommen zu ergänzen, wo immer das möglich ist“, sagt Song Seng Wun, Ökonom bei CIMB, einer malaysischen Bank.\nHistorische Höchststände bei den Goldpreisen in den letzten zwei Jahren haben den Trend zur Verpfändung persönlicher Gegenstände noch verstärkt, da die Menschen die Gelegenheit nutzen, den Schmuck der Familie in Bargeld zu verwandeln.\nIn Singapur sind etwa 70 Prozent der verpfändeten Gegenstände in den 200 Pfandhäusern des Stadtstaats Gold.\nDie Leute sagen sich: „Der Goldpreis sieht gut aus, lasst uns Großmutters Goldkette verpfänden und nächsten Monat zurückholen.“\nDer größte thailändische Pfandhausbetreiber, EasyMoney, hat in seinen Filialen einen 20-prozentigen Kundenzuwachs in den letzten Monaten erlebt.\nDas Wachstum im Pfandgeschäft ist so stark, dass ValueMax, Betreiber der Filiale in Bendemeer und 15 weiterer in Singapur, nicht nur in das benachbarte Malaysia expandieren möchte – wo das Unternehmen vier Häuser betreibt –, sondern auch außerhalb Asiens, so Yeah Lee Ching, Geschäftsführerin von ValueMax.\nDas Unternehmen finanziert das mit 60 Prozent der 66 Millionen Singapur-Dollar, die es diese Woche mit dem Börsengang in Singapur einnahm.\nWährend einige Kreditgeber wegen hoher Zinssätze ins Kreuzfeuer geraten seien, erklärt Yeah, dass Pfandhäuser nicht nur günstigere Zinsen als andere Verleiher böten, sondern auch nicht direkt die Schulden erhöhten.\n„Kunden beleihen Gegenstände, die sie bereits besitzen, und das Verflüssigen persönlicher Wertgegenstände vergrößert nicht die Haushaltsverschulung“, erläutert sie.\nDas Pfandleihgeschäft wird gesellschaftlich zunehmend als kurzfristige, abgesicherte Finanzierung akzeptiert.\nAuch sind nicht alle Menschen, die Pfandleihe nutzen, in finanziellen Schwierigkeiten.\nReiche Leute aus Singapur kommen auch in die Filialen von ValueMax, um Goldbarren und Rolex-Uhren zu verpfänden, wofür sie bis zu 60 Prozent des Kaufpreises in bar erhalten.\nZu uns kommen Kunden aus jeder sozialen Schicht.\n„Dazu gehören Wohlhabende, die kurzfristig etwas für ein Geschäft oder eine Investition leihen, oder kleine Unternehmen, die Engpässe im Cash-Flow überbrücken müssen“, sagt Yeah.\nManchmal brauchen sie auch einfach nur sehr schnell Geld.\nNSA saugt Daten von Google und Yahoo ab - Snowden will helfen\nDer Geheimdienst-Enthüller Edward Snowden hat prinzipielles Interesse, Deutschland bei der Aufklärung der immer brisanter werdenden NSA-Spähaffäre zu helfen.\nNach Darstellung des Grünen-Bundestagsabgeordneten Hans-Christian Ströbele ging es bei seinem überraschenden Treffen mit Snowden in Russland darum, unter welchen Bedingungen der Ex-Geheimdienstmitarbeiter bei einer deutschen Staatsanwaltschaft oder vor einem Untersuchungsausschuss aussagen würde.\nSnowden habe auf seine komplizierte juristische Situation verwiesen, sagte Ströbele dem ARD-Magazin \"Panorama\".\nRettungspaket über 325 Millionen australische Dollar für tasmanisches Gesundheitswesen\nDie australische Regierung besteht auf den harten Bedingungen, die mit dem Rettungspaket über 325 Millionen australische Dollar für das tasmanische Gesundheitswesen verknüpft sind, um sicherzustellen, dass die Regierung des Bundesstaates das Geld nicht verschwenden kann.\nBundesgesundheitsministerin Tanya Plibersek hat angekündigt, der Commonwealth werde „unverzügliche Maßnahmen“ ergreifen, um eine Krise abzuwenden, die durch eine alternde Bevölkerung des Inselstaats, eine höhere Quote an chronischen Erkrankungen und Systemeinschränkungen verursacht worden sei.\nDie Finanzierung für einen Zeitraum von vier Jahren wurde nach Regierungsberatungen mit dem unabhängigen tasmanischen Abgeordneten Andrew Wilkie beschlossen.\n„Die Regierung hat ein Notfallrettungspaket geschnürt, das unserer Ansicht nach die einzigartigen Herausforderungen angeht, denen sich der Bundesstaat gegenüber sieht“, erklärte Plibersek heute.\nDas 325-Millionen-Dollar-Paket umfasst 31 Millionen Dollar Soforthilfe für Wahlleistungen.\nDurch weitere 2600 Operationen, einschließlich orthopädischer Eingriffe und Behandlungen wegen grauem Star, sollen Rückstände beseitigt werden.\nDarüber hinaus gibt es Geld für Tageskliniken in Hobart und Launceston, bessere Nachsorge nach stationären Aufenthalten, die Facharztausbildung, Dienstleistungen im Bereich psychische Gesundheit und die Einführung eines Systems zur elektronischen Aufzeichnung von Gesundheitsdaten in lokalen Krankenhäusern.\n„Diese Investitionen entsprechen den Ideen, von denen mir betroffene Klinikmitarbeiter gesagt haben, sie seien die beste Möglichkeit, das tasmanische Gesundheitssystem zu verbessern“, sagte Tanya Plibersek.\nDie Ministerin bestand auf einer strengen Berichts- und Rechenschaftspflicht der tasmanischen Regierung.\nDer Bundesstaat müsse das aktuelle Finanzierungsniveau beibehalten, um Geld aus dem Commonwealth erhalten zu können, und monatlich darüber berichten, wo die zusätzlichen Gelder ausgegeben wurden.\nEine dreiköpfige Kommission wird eingerichtet und soll sicherstellen, dass der Bundesstaat Gesundheitsdienste so effektiv und effizient wie möglich bereitstellt.\nWie Wilkie heute erklärte, würden die 325 Millionen Dollar nur wenig nützen, wenn „sie nicht von echten Reformen begleitet werden, die das öffentliche tasmanische Gesundheitssystem auf einen nachhaltigeren Kurs bringen.“\nDessen ungeachtet lobte er die Regierung dafür, dass sie auf seine Bitte um dringende Hilfe reagiert habe, die er zuerst gegenüber dem Premierminister Anfang Mai zum Ausdruck gebracht habe.\n„Ich bin zuversichtlich, dass die Bundeshilfen einen großen Beitrag dazu leisten werden, das öffentliche Gesundheitssystem des Bundesstaates von der Sorgenliste zu nehmen“, sagte Wilkie.\nLaut der Regierung des Bundesstaates werden diese Wahlleistungen weitgehend die kürzlichen Einschnitte wettmachen.\nDoch der gesundheitspolitische Sprecher der Opposition auf Bundesebene, Peter Dutton, ist der Ansicht, die heutige Ankündigung sei nur eine „Pflasterlösung“.\n„Wir sind deshalb in der heutigen Lage, weil die Labor-Staatsregierung 430 Millionen Dollar aus dem Gesundheitssystem abgezogen hat“, sagte er gegenüber ABC TV.\nEs kann nicht sein, dass eine Staatsregierung beinahe eine halbe Milliarde Dollar aus dem System reißt und der Commonwealth 300 Million hineinsteckt und dann so tun, als seien das gute Nachrichten.\nDutton forderte Plibersek auf zu garantieren, dass nicht ein einziger Dollar des Rettungspakets für zusätzliche Bürokratie ausgegeben werde.\nGuillaume Nicloux' Adaption des Romans von Denis Diderot überzeugt mit außergewöhnlicher Produktionsausstattung und zeitgenössischen Details, ist allerdings auch schwerere Kost als nötig.\nDie im Frankreich der 1760er Jahre spielende Handlung erzählt die ergreifende Geschichte von Suzanne, einer jungen Adligen, die von ihrer Familie ins Kloster geschickt wird.\nAls sie rebelliert, ist sie mit der extremen Grausamkeit einer äußerst sadistischen Oberin konfrontiert und wird zum Objekt erotischer Faszination einer anderen.\nDer Film gleitet niemals ab in Lüsternheit oder Sensationslust – und darin liegt sein Problem.\nDer feierliche Ernst, mit dem der Film erzählt wird, macht ihn auch für das Publikum zum quälerischen Büßerhemd.\nSyrien hat seine Möglichkeit zur Herstellung von Chemiewaffen zerstört, so eine Überwachungsgruppe\nSyrien habe wichtige Einrichtungen zur Herstellung von Chemiewaffen und Gitftgasmunition zerstört, erklärte die globale Überwachungsgruppe für Chemiewaffen am Donnerstag, während es im Norden des Landes zu schweren Zusammenstößen in der Nähe eines der Standorte kam, an denen mutmaßlich giftige Substanzen gelagert werden.\nEbenfalls am Donnerstag verkündete eine syrische Aktivistengruppe, dass mehr als 120.000 Menschen seit Beginn des Bürgerkrieges vor nun schon bald drei Jahren getötet worden seien.\nDie Ankündigung der Organisation für das Verbot chemischer Waffen (OPCW) kam einen Tag vor dem Termin am\n1. November, den die in Den Haag ansässige Organisation Damaskus gesetzt hatte, um alle Einrichtungen zur Herstellung von Chemiewaffen zu zerstören oder „inoperabel“ zu machen, einschließlich aller Maschinen für das Mischen von Chemikalien zu Giftgas und das Befüllen von Munition.\nDer Abschluss dieses Vorgangs, der im Grunde genommen die erste Stufe der Zerstörung darstellt, ist ein wichtiger Meilenstein eines ambitionierten Zeitplans, der auf die Vernichtung aller Chemiewaffen Syriens bis Mitte 2014 abzielt.\nDie Zerstörung der Einrichtungen bedeutet, dass Syrien keine neuen Chemiewaffen mehr produzieren kann.\nDamaskus muss allerdings noch damit beginnen, die vorhandenen Waffen und Vorräte zu vernichten.\nAnnahmen zufolge gibt es im Land etwa 1.000 Tonnen an Chemikalien und Waffen, wozu auch Senfgas und das Nervengas Sarin zählen.\nDie Ankündigung kam zu einer Zeit, als am Donnerstag Kämpfe in der Stadt Safira stattfanden, von der Experten sagen, dass es hier eine Produktionseinrichtung für Chemiewaffen sowie Lagerstätten gebe, wie die in Großbritannien ansässige Syrische Beobachtungsstelle für Menschenrechte mitteilte.\nDie Aktivistengruppe, die über ein Netzwerk von Aktivisten in Syrien die Zahl der Toten verfolgt, erklärte am Donnerstag, 120.296 Menschen seien gestorben.\nDavon seien 61.067 Zivilisten, einschließlich 6.365 Kinder.\nAuf Seiten der Regierung gehörten 29.954 von ihnen der Armee von Präsident Bashar Assad an, 18.678 seien regierungsfreundliche Kämpfer und 187 libanesische Hisbollah-Milizen.\nEbenfalls unter den Toten seien 2.202 desertierte Armeesoldaten und 5.375 Kämpfer der Opposition, viele von ihnen Ausländer.\nAm 25. Juli schätzten die UN die Zahl der Toten in diesem Konflikt seit März 2011 auf 100.000.\nDiese Zahl wurde bisher nicht aktualisiert.\nDer Konflikt hat etwa zwei Millionen Menschen zur Flucht aus dem Land gezwungen.\nAssads Truppen kämpfen seit Wochen in Safira gegen die Rebellen, von denen viele Verbindungen zu al-Qaida-Gruppen haben.\nDie Beobachtungsstelle sagte, es habe am Donnerstag Verluste auf beiden Seiten gegeben, nannte aber keine Details.\nDie Kämpfe unterstreichen die Gefahr, der die Chemiewaffeninspektoren ausgesetzt sind, denn ihre Mission zur Befreiung Syriens von seinem giftigen Waffenarsenal ist ein Rennen gegen die Zeit inmitten eines tobenden Bürgerkriegs.\nNach Aussage der OPCW, die eng mit den Vereinten Nationen zusammenarbeitet, sei das Team „nun überzeugt, dass es alle von Syrien genannten wichtigen Produktions- und Misch-/Befüllungseinrichtungen gesehen und ihre Zerstörung miterlebt hat.“\nDeshalb „sind derzeit keine weiteren Inspektionsaktivitäten geplant.“\nAnfang der Woche hatten die Inspektoren erklärt, sie hätten die erste Runde der Überprüfungen abgeschlossen und 21 von 23 der von Damaskus angegebenen Stätten besucht.\nWegen Sicherheitsbedenken sei der Besuch zweier Einrichtungen nicht möglich gewesen, sagten die Inspektoren.\nAm Donnerstag erklärte die OPWC, die beiden Standorte seien laut syrischer Aussage „aufgegeben worden ... und die dort vorhandenen Objekte des Chemiewaffenprogramms seien an andere genannte Einrichtungen verlagert worden, die inspiziert wurden.“\nEs war nicht sofort klar, ob die Stätte in Safira eine der beiden Einrichtungen war, die die OPCW-Inspektoren nicht besuchen konnten.\nSyrien hat einen Plan für die komplette Zerstörung seiner Chemiewaffen vorgelegt, der nächsten Monat vom Exekutivkomitee des OPWC genehmigt werden muss.\n„Ich ziehe den Hut vor der Tapferkeit und dem Mut, den Sie alle beim Erfüllen der herausforderndsten Mission, die je von dieser Organisation ausgeführt wurde, gezeigt haben“, erklärte Ahmed Uzumcu, der Generaldirektor der Überwachungsorganisation in einem von OPCW veröffentlichten Kommentar.\nSeit inzwischen drei Jahren kämpfen die hauptsächlich sunnitischen Muslimrebellen in diesem Bürgerkrieg gegen Assads Regierung und ihre Sicherheitskräfte, der viele Mitglieder der Alawiten angehören, einer Abspaltung des schiitischen Islam.\nIm Hinblick auf weitere Entwicklungen sagte der Leiter der Beobachtungsgruppe, Rami Abdurrahman, es habe am Mittwoch eine starke Explosion in einer Luftverteidigungseinrichtung in der syrischen Küstenprovinz Latakia gegeben.\nDie Ursache der Explosion sei nicht bekannt, erklärte er.\nZorn über Urteil für Bombenleger von Bali\nÜberlebende und Verwandte der 202 Menschen, die 2002 bei dem Bombenanschlag in Bali ums Leben gekommen waren, reagierten verärgert über das Urteil für den letzten der Anstifter, der vor Gericht gestellt wurde, da Umar Patek ihrer Ansicht nach standrechtlich erschossen werden sollte.\nPatek, der knapp zehn Jahre als eine der meistgesuchten Personen Südostasiens auf der Flucht war, wurde gestern für seine Rolle beim Bau von Sprengkörpern für den Bombenanschlag zu einer Haftstrafe von 20 Jahren verurteilt.\nMit Strafaussetzung könnte er nach 15 Jahren entlassen werden.\nDer 45-jährige wurde des Massenmords für schuldig befunden wegen des Angriffs auf zwei Nachtclubs im beliebten Touristenviertel von Kuta, bei dem 202 Menschen starben, darunter 88 Australier, und viele weitere verletzt wurden.\nEin Schuldspruch erfolgte außerdem in einer Reihe terrorismusbezogener Anklagepunkte, wozu eine Welle von Sprengstoffanschlägen auf Kirchen in Indonesien an Heiligabend im Jahr 2000 zählten.\nDie Staatsanwaltschaft hatte eine lebenslange Haftstrafe gefordert, auch wenn sie für den Mann, der wegen seines Rufs als meisterlicher Bombenbauer auch als „Demolition Man“ bezeichnet wird, die Todesstrafe hätte beantragen können.\nDie Entscheidung hat schmerzhafte Erinnerungen bei June Corteen geweckt, einer Mutter aus Perth, die ihre 39 Jahre alten Zwillingstöchter Jane und Jenny in der von Patek und seinen Mitverschwörern vor fast zehn Jahren angerichteten Verwüstung verloren hat.\nMit Tränen kämpfend sagte sie, Patek hätte zum Tode verurteilt werden sollen.\nIch meine wirklich, er sollte in den Fußstapfen der anderen Kerle folgen.\n„Man sollte ihn vor ein Erschießungskommando stellen“, sagte Corteen gegenüber AAP.\nIch muss jeden Tag damit leben, dass ich keine weiteren Enkel bekommen werde und ich meine Töchter nie mehr sehen werde.\nDer Sari Club wurde dem Erdboden gleichgemacht, als am 12. Oktober 2002 kurz nach 23 Uhr eine gewaltige Bombe in einem Kleinlaster explodierte, der vor dem Nachtclub geparkt war.\nPeter Hughes war in Paddy's Bar, wo nur 20 Sekunden früher ein Selbstmordattentäter einen mit Sprengstoff gefüllten Rucksack explodieren ließ.\nEr fiel nach dem Anschlag einen Monat lang ins Koma und „starb“ dreimal, während er an einem Lebenserhaltungssystem hing.\nHughes sagte, Patek habe dasselbe Schicksal verdient wie die drei anderen Mitglieder der Terrorzelle Jemaah Islamiah – Amrozi, Mukhlas und Imam Samudra –, die für das Blutbad verantwortlich waren und vor vier Jahren hingerichtet wurden.\nWirklich, dieser Typ sollte vor allen anderen die Todesstrafe bekommen.\nIhn am Leben zu lassen – nein, es gibt keinen Grund, ihn am Leben zu lassen.\n20 Jahre zu bekommen, nachdem er 202 Menschen getötet und viele Hunderte verletzt hat, ist nicht viel.\nPatek ist der letzte der Bali-Bomber, der vor Gericht stand.\nEr entzog sich beinahe ein Jahrzehnt der Festnahme, wurde aber schließlich im Januar 2011 in der pakistanischen Stadt Abbottabad aufgegriffen, wo US-Streitkräfte knapp vier Monate später den früheren al-Qaida-Chef Osama bin Laden töteten.\nWährend der Verhandlung sagte ein FBI-Agent aus, dass Geheimdienstberichte den Hinweis erbracht hätten, dass sich Patek in Pakistan befand, um bin Laden zu treffen mit dem Ziel, die Verbindung zwischen südostasiatischen Terrorgruppen und al-Qaida wieder aufzubauen.\n„Er hat sich nicht gestellt“, sagte Corteen.\nBis vor kurzem hat er keine Reue dafür gezeigt, wie viel Leid er anderen Menschen zugefügt hat.\nDas Urteil erging vor dem zehnjährigen Jahrestag des Anschlags in diesem Jahr, der mit Gedenkfeiern in Bali und Australien begangen wird.\n„Es wird dieses Jahr viele Tränen geben“, sagte Corteen.\nPatek kann gegen sein Urteil noch Berufung einlegen.\nFAA: Fluggäste können jetzt elektronische Geräte in Flugzeugen verwenden (aber keine Handygespräche führen)\nFlugreisende können jetzt vom Abflug bis zur Landung ihre elektronischen Geräte zum Lesen, Arbeiten, Spielen, Musik hören und dem Ansehen von Filmen verwenden, nicht aber mit dem Handy telefonieren, so die neuen Richtlinien, die am Donnerstag von der Federal Aviation Administration (FAA) in den USA herausgegeben wurden.\nDoch sollten die Passagiere nicht erwarten, dass diese Änderungen sofort umgesetzt werden.\nWie schnell sie implementiert würden, hinge von der jeweiligen Fluggesellschaft ab, erklärte FAA-Mitarbeiter Michael Huerta auf einer Pressekonferenz.\nDie Fluggesellschaften müssen der FAA nachweisen, dass Flugzeuge den neuen Richtlinien entsprechen und dass sie die Schulungshandbücher des Flugpersonals sowie die Regelungen für das Verstauen der Geräte entsprechend der neuen Vorschriften aktualisiert haben.\nDie FAA erklärte, sie habe bereits von einigen Fluggesellschaften Pläne erhalten, die den Einsatz tragbarer elektronischer Geräte in Flugzeugen ausbauen möchten.\nUnter diesen Fluggesellschaften waren auch Delta und JetBlue.\n„Je nach Zustand des Plans könnten wir die erweiterte Nutzung elektronischer Geräte sehr bald genehmigen“, gab die FAA in einer Verlautbarung bekannt.\nDerzeit müssen Passagiere Smartphones, Tablets und andere Geräte abschalten, wenn die Flugzeugtüren geschlossen werden.\nSie dürfen sie erst dann wieder starten, wenn das Flugzeug eine Höhe von drei Kilometern erreicht hat und der Kapitän grünes Licht gibt.\nBeim Eintritt in den Landeanflug müssen die Fluggäste sie wieder abschalten und dürfen sie nicht wieder starten, ehe das Flugzeug gelandet ist.\nNach den neuen Richtlinien könnten Fluggesellschaften, deren Flugzeuge gegen elektronische Störungen gesichert seien, ihren Passagieren erlauben, die Geräte auch bei Start, Landung und auf dem Rollfeld zu verwenden, erklärte die FAA.\nDie meisten neuen Verkehrsflugzeuge und andere Flieger, die für die Verwendung von Wi-Fi in größeren Höhen umgerüstet wurden, sollten den Kriterien entsprechen.\nLaura Glading, Präsidentin des Berufsverbands professioneller Flugbegleiter, begrüßte die Änderungen.\n„Wenn die neue Regelung sicher umgesetzt ist – und wir arbeiten diesbezüglich eng mit der Fluggesellschaft zusammen –, werden beide Seite davon profitieren“, kommentierte Glading.\nWir sind es ehrlich gesagt leid, uns bei diesem Thema wie Aufpasser fühlen zu müssen.\nDennoch blieben Internetverbindungen zum Surfen, Austauschen von E-Mails, Textnachrichten oder Herunterladen von Daten unter drei Kilometern weiterhin verboten, erläuterte die Behörde.\nPassagiere werden aufgefordert, Smartphones, Tablets und andere Geräte in den Flugmodus zu versetzen.\nAlso immer noch kein „Words With Friends“, das Scrabble ähnelnde Online-Spiel, das der Schauspieler Alec Baldwin 2011 auf seinem Smartphone spielte, als er öffentlichkeitswirksam einen Jet von American Airlines verlassen musste, weil er sich weigerte, das Gerät abzuschalten, während das Flugzeug am Flugsteig geparkt war.\nUnd schwerere Geräte wie Laptops müssen auch weiterhin verstaut werden, da hier eine Verletzungsgefahr besteht, falls sie durch die Kabine fliegen.\nHandygespräche während des Flugs bleiben ebenfalls weiterhin verboten.\nDie Regulierungskompetenz für Telefongespräche liegt bei der Federal Communications Commission (FCC), nicht bei der FAA.\nFAA hebt möglicherweise Verbot für bestimmte elektronische Geräte bei Start und Landung auf\nLetzten Monat sagte Mark Rosenker von der Verkehrssicherheitsbehörde National Transportation Safety Board, Sicherheitsexperte für nationale Verkehrsfragen auf CBS News, Handys würden noch immer als Risiko betrachtet.\n„Handy sind wirklich ein Problem, nicht nur weil sie potenziell Störungen bei Navigationsgeräten verursachen könnten, sondern weil wir von der FCC wissen, dass die Übertragung aus der Luft auch Sendemasten stören kann“, so Rosenker.\nEin Beratungskomitee der Branche, das von der FAA zur Untersuchung dieses Themas ins Leben gerufen wurde, empfahl letzten Monat, dass die Regierung einen breiteren Einsatz persönlicher elektronischer Geräte erlaube.\nIn den letzten Jahren hat sich der Druck auf die FAA erhöht, Einschränkungen für den Gebrauch zu lockern.\nKritiker wie die demokratische Senatorin Claire McCaskill aus Missouri vertreten die Ansicht, es gebe keine gültigen Sicherheitsgründe für das Verbot.\nDie Einschränkungen sind auch zunehmend schwerer durchzusetzen, weil die Nutzung der Geräte allgegenwärtig geworden ist.\nIn einigen Studien ist davon die Rede, das bis zu ein Drittel der Passagiere das Abschalten des Gerätes vergisst oder ignoriert.\nDie FAA begann 1966, die Nutzung elektronischer Geräte durch Flugreisende einzuschränken, nachdem Berichte über Störungen von Navigations- und Kommunikationsgeräten durch von Passagieren mitgeführte UKW-Radios bekannt geworden waren, die damals den neuesten Techniktrend darstellten.\nNeue Flugzeuge sind weitaus abhängiger von elektrischen Systemen als frühere Generationen von Luftfahrzeugen, aber sie sind auch so konstruiert und von der FAA genehmigt, dass ihnen elektronische Interferenzen nichts ausmachen.\nFluglinien bieten Passagieren schon seit einigen Jahren Wi-Fi, wenn die Flughöhe erreicht ist.\nDie an Wi-Fi-Systeme angepassten Flieger sind auch unempfindlicher gegenüber Interferenzen.\nDie überwiegende Mehrheit der Passagierflugzeuge sollte für den stärkeren Gebrauch elektronischer Geräte nach den neuen Richtlinien geeignet sein, sagte Huerta.\nDie heutigen elektronischen Geräte geben im Allgemeinen wesentlich weniger Funkstrahlung ab als frühere Generationen.\nE-Reader beispielsweise geben nur minimale Strahlung ab, wenn man umblättert.\nDoch beim Herunterladen oder Senden von Daten sind die Übertragungswerte stärker.\nZu den Verfechtern einer Lockerung der Einschränkungen für die Gerätenutzung durch Passagiere zählt Amazon.com.\n2011 luden Firmenmitarbeiter ein Passagierflugzeug voller Kindle E-Reader und machten einen Testflug, um Probleme zu ermitteln, konnten aber keine feststellen.\nMitglieder des FAA-Beratungskomitees äußerten gemischte Gefühle, was das Risiko bei der Nutzung von Geräten angeht.\nDouglas Kidd vom Passagierverband National Association of Airline Passengers sagte, er sei der Ansicht, die Störung durch die Geräte sei echt, auch wenn das Risiko minimal sei.\nAndere Komiteemitglieder sagten, es gebe nur vereinzelte Berichte von Piloten, die für eine Störung von Flugzeugsystemen durch die Geräte sprächen, und die meisten davon seien sehr alt.\nDas Komitee empfahl der FAA allerdings, es Piloten zu erlauben, bei Instrumentenlandung unter schlechten Sichtverhältnissen das Abschalten der Geräte durch die Passagiere anzuordnen.\nEine Gruppierung aus der Reisebranche begrüßte die Änderungen und bezeichnete sie als vernünftige Anpassung für Reisende, die heute umfangreich mit Technik ausgestattet wären.\n„Wir freuen uns, dass die FAA erkennt, dass ein angenehmes Passagiererlebnis nicht im Widerspruch zur Sicherheit steht“, sagte Roger Dow, CEO der U.S. Travel Association.\nPer Luftrettungsdienst von Nordsee-Bohrinsel geretteter Vogel wieder freigesetzt\nEin per Luftrettungsdienst an die Küste geflogener Vogel, der erschöpft auf einer Nordsee-Bohrinsel gefunden worden war, wurde wieder in die Natur entlassen.\nDie Wasserralle wurde letzten Monat mit einem Hubschrauber nach Aberdeen geflogen, wo sie von der schottischen Tierschutzorganisation SPCA in deren Rettungscenter in Alloa aufgepäppelt wurde.\nColin Seddon, Leiter des Zentrums, sagte: „Diese Wasserralle war wahrscheinlich ein winterlicher Zugvogel aus Nordeuropa, der durch die starken Winde über der Nordsee aufgehalten wurde.“\nAnscheinend suchte der erschöpfte Vogel Zuflucht auf der Bohrinsel.\nEr fügte hinzu: „Er konnte nicht mehr weiterfliegen, weshalb wir mit der Bitte um Hilfe kontaktiert wurden.“\nBei ihrer Freilassung war die Wasserralle wieder fit und gesund.\nIst Europas Elite bereit, mit Großbritannien Geschäfte zu machen?\nBusiness for Britain wurde im April mit der Absicht gestartet, die Wirtschaft an einen Tisch zu bringen und zu definieren, was diejenigen, die in Großbritannien für Wohlstand und Arbeit sorgen, an unseren Beziehungen zur EU ändern möchten.\nZu diesem Zweck haben wir die größte und umfassendste Umfrage unter britischen Wirtschaftsführern in Auftrag gegeben und sie gefragt, was sie über Großbritannien, die Wirtschaft und die EU denken.\nYouGov befragte über 1.000 Führungskräfte aus der Wirtschaft, die in etwa die britischen Unternehmensgrößen, -sektoren und Regionen abbilden.\nDie Ergebnisse der Umfrage werden viele überraschen.\nWir haben herausgefunden, dass die überwiegende Mehrheit der Unternehmen inzwischen außerhalb Europas exportiert und sich auf Länder konzentriert, die modernisieren und wachsen, während die Staaten in der EU stagnieren.\nSie wünschen sich, dass von Regierungsseite neue Handelsverbindungen mit Ländern wie China, Indien und Brasilien favorisiert werden, statt sich mit dem langen und anstrengenden Prozess aufzuhalten, die obskuren EU-Institutionen zu reformieren.\nGefragt nach ihrer Ansicht zu bestimmten gesetzlich geregelten Themen – vom Kartellrecht bis zur Produktgesetzgebung – ist die Mehrheit der Wirtschaftsführer der Ansicht, die Kontrolle über diese Schlüsselkompetenzen sollte nach Westminster zurückgeholt werden.\nEs herrschte allgemeine Unzufriedenheit über den Binnenmarkt, da laut Aussage der Unternehmen die Kosten der Brüsseler Vorschriften inzwischen die Vorteile überwiegen würden, Teil von Europas Handelszone zu sein – selbst 40 Prozent der Großunternehmen stimmten dem zu, die traditionell am europafreundlichsten sind.\nSchließlich, und das sagt vermutlich am meisten, ergab unsere Befragung von Wirtschaftsführern, dass eine deutliche Mehrheit sich von Großbritannien einen Kurs in Richtung Veränderung des Abkommens wünscht und eine Beziehung zur EU, die auf Handel basiert, nicht auf Politik.\nDiese Erkenntnis, die sich bei Unternehmen aller Größen und führenden Konzernen findet, zeigt, dass die Wirtschaft auf eine „sinnvolle Veränderung“ drängt, die das Heft des Handelns wieder nach Großbritannien bringt.\nEs geht um viel – eine Änderung des Abkommens und bessere Bedingungen für Großbritannien würden bei 16 Prozent zu einer Meinungsänderung zugunsten des Verbleibs in der EU in einer Volksabstimmung führen.\nDer Premierminister sollte keine Zweifel haben: Diese Umfrage zeigt, dass die britische Wirtschaft hinter seinem Plan für die Neuverhandlungen der britischen Bedingungen für die EU-Mitgliedschaft steht.\nSie zeigt auch, dass die Unternehmen von einer Neuverhandlung eine deutliche Verschiebung der Machtverhältnisse zurück nach Großbritannien erwarten.\nEin besserer Deal für die britische Wirtschaft ist möglich und in zunehmendem Maße notwendig, nachdem die Eurozone sich nun in Richtung einer engeren Wirtschafts- und Fiskalunion bewegt.\nDie Priorität müssen Arbeitsplätze und Wachstum in Großbritannien sein, wie das Ergebnis unserer Umfrage zeigt, was für Unternehmen ein verstärktes Augenmerk auf Handel und eine fundamentale Veränderung im Brüsseler Ansatz für Vorschriften bedeutet.\nAlexei Miller von Gazprom bezeichnet Pipeline in Bulgarien als Beginn einer neuen Gasära\nDer Baubeginn der South-Stream-Pipeline in Bulgarien stelle den Start eines der größten europäischen Energieprojekte dar, erklärte der Gazprom-Vorstand.\n„Das heutige Ereignis ist ein Meilenstein: Die Bauarbeiten am bulgarischen Abschnitt der South-Stream-Gaspipeline, dem größten und wichtigsten Projekt in Europa, haben begonnen“, sagte der Vorstandsvorsitzende von Gazprom, Alexei Miller, am Donnerstag in einer Erklärung.\nDas Projekt ist ein Schlüsselelement für die Energiesicherheit des gesamten europäischen Kontinents.\nSouth Stream soll für mehr Vielfalt bei Russlands Exportrouten durch Europa sorgen.\nEin Vertragsstreit zwischen Gazprom und seinen Pendants in der Ukraine, in dem der Großteil des russischen Gases für Europa gelagert ist, sorge für ein erhöhtes Risiko bei konventionellen Routen, wie von offizieller Seite zu hören ist.\nMiller sagte, die direkte Verbindung nach Bulgarien, einem Mitglied der Europäischen Union, bedeute, dass die mit Transitländern verknüpften geopolitischen Risiken „für immer“ ausgeschaltet seien.\nBulgarische Verbraucher erhalten Gas von South Stream zu vergünstigten Tarifen, wenn das gesamte Projekt 2015 in Betrieb geht.\nLaut Gazprom sollen die Bauarbeiten in anderen nachgeordneten Ländern auf der geplanten Route zum Jahresende beginnen.\nDie Pipeline ist auf eine jährliche Kapazität von 62,3 Milliarden Kubikmetern Erdgas ausgelegt.\nFür nationale und internationale Investoren führt kein Weg vorbei am Immobilienstandort Deutschland.\nDie wirtschaftlichen Rahmendaten stimmen, und die Finanzierungsmöglichkeiten sind hervorragend.\nDies ist der Tenor des 9. Immobilientages der Börsen-Zeitung gewesen.\nDie deutschen Immobilienmärkte profitieren von der wirtschaftlichen Stärke und den im europäischen Vergleich guten konjunkturellen Rahmenbedingungen im Land.\nDarauf hat Christian Ulbrich, CEO Europa, Naher Osten und Afrika von Jones Lang LaSalle, auf dem 9. Immobilientag der Börsen-Zeitung hingewiesen.\nWie gesucht deutsche Gewerbeimmobilien seien, zeige der Blick auf das Transaktionsvolumen, so Ulbrich.\nIn den ersten drei Quartalen dieses Jahres legte es im Vergleich zum Vorjahresabschnitt um 31% zu.\nIn Großbritannien lag das Plus nur bei 6%, in Frankreich bei 19%.\n\"Immobilieninvestments bieten eine attraktive Verzinsung\", sagte Ulbrich.\nDer Renditeabstand zwischen Immobilien und Bundesanleihen sei auf einem historisch hohen Niveau.\nDie FAA lockert Einschränkungen für die Nutzung elektronischer Geräte in Flugzeugen – auch wenn das Telefonieren mit dem Handy weiterhin verboten bleibt.\nKampfflugzeuge greifen ein Depot russischer Raketen in der Hafenstadt Latakia an, wie offiziell verlautbart wurde.\nDies ist offenbar eine Fortsetzung der israelischen Kampagne, mit der die Verbreitung von Waffen im Nahen Osten verhindert werden soll.\nBundesberufungsgericht blockiert Entscheidung einer Richterin, wonach die umstrittene Taktik des NYPD Minderheiten diskriminiere.\nKnapp 100 afrikanische Einwanderer, die nach Algerien einreisen wollten, verdursten, nachdem zwei LKWs mitten in der Sahara liegen bleiben.\nExperten sagen, dass das Gewaltverbrechen, bei dem 14 Erwachsene und sieben Kinder starben, nichts als reiner Zufall sei und kein Zeichen für wachsende Gewalt in Amerika.\nStatt sich von der Zahlungsunfähigkeit der US-Regierung verunsichern zu lassen, konzentrierten sich Investoren auf das, was vermutlich mehr zählt: die Federal Reserve.\nDie Kalifornierin plant, die möglicherweise erste Vorladung dieser Art anzufechten, mit der Begründung, die mit dem Internet verbundene Brille erleichtere die Navigation.\nDie Polizei gibt an, sie sei im Besitz eines Videos, auf dem angeblich zu sehen sei, wie Bürgermeister Rob Ford eine Crack-Pfeife rauche.\nSelbst enge Verbündete haben Geheimnisse voreinander – und versuchen alles, um herauszufinden, was zurückgehalten wird.\nDer Vatikan möchte wissen, wie katholische Pfarreien auf der ganzen Welt mit sensiblen Themen wie Verhütung, Scheidung und schwule Paare umgehen.\nAnhörung vor der Königlichen Kommission: Zwei YMCA-Mitarbeiter vor Anschuldigungen gegen Jonathan Lord wegen Sexualdelikten angeklagt\nZwei YMCA-Mitarbeiter aus New South Wales (NSW) seien wegen Sexualdelikten im Zusammenhang mit Kindern angeklagt worden, ehe 2011 Vorwürfe gegen den Kinderpfleger Jonathan Lord aus Caringbah erhoben wurden, wie die Königliche Kommission für sexuellen Missbrauch von Kindern erfuhr.\nDoch bei der Eröffnungserklärung vor der Kommission hatte der YMCA erklärt, man habe „in der Organisation niemals mit einem Vorfall von sexuellem Kindesmissbrauch zu tun gehabt“.\nGeschäftsführer Phillip Hare wurde über einen Fall befragt, bei dem ein YMCA-Mitarbeiter wegen Vergehen mit Kinderpornografie angeklagt worden war, und einen anderen, bei dem ein Sportlehrer der YMCA Caringbah Hall 1991 wegen des Missbrauchs ihm anvertrauter Kinder verurteilt worden war.\nHare sagte Gail Furness, einer der Kommission assistierenden Anwältin, dass er von dem ersten Fall gewusst habe, den zweiten aber nicht gekannt habe.\nEr räumte ein, die Eröffnungserklärung des YMCA gegenüber der Kommission sei ebenfalls ungenau in der Behauptung gewesen, „es habe externe Überprüfungen des YMCA gegeben, in denen der YMCA als an vorderster Front bei der Kindersicherheit anerkannt wurde“.\nBeweise vor der Kommission zeigen vielmehr, dass der YMCA darüber unterrichtet wurde, dass er die zweitniedrigste Bewertung von vier möglichen in einem Qualitätsaudit des Department of Education and Communities (Erziehungsministerium) im August des Jahres erhalten hat.\nHare, der mit 21 beim YMCA angefangen hat, räumte ein, die Geschäftsleitung habe „von mir an abwärts“ bei der Einstellung von Lord versagt und nicht sichergestellt, dass Mitarbeiter sich über ihre Verpflichtungen im Klaren gewesen seien, Verstöße gegen die Richtlinien zur Kindersicherheit zu melden.\nLord war Anfang des Jahres wegen Sexualvergehen an zwölf Jungen während seiner zweijährigen Tätigkeit für den YMCA verurteilt worden.\nEr wurde zu mindestens sechs Jahren Gefängnis verurteilt.\nHare stritt aber ab, dass der YMCA ein kulturelles Problem hätte, das Mitarbeiter davon abgehalten habe, Lords Verstöße in Bezug auf die Sicherheit von Kindern zu melden.\nDie Mitarbeiter sagten aus, sie hätten Verstöße beobachtet, unter anderem, dass Lord allein mit Kindern war, sie privat als Babysitter betreute, sie auf seinem Schoß sitzen ließ, zu einem sagte, dass er es lieb habe, und Kinder mit seinem Handy spielen ließ.\nDanielle Ockwell, deren Vorgesetzter Lord war und die um eine Schulung zum Kinderschutz gebeten hatte, weil sie wegen seines Verhaltens besorgt war, sagte aus, dass die Kinderdienstleiterin Jacqui Barnat, die im YMCA Caringbah die Vorgesetzte Lords war, „sehr einschüchternd und die meiste Zeit sehr unnahbar war“.\nDer Geschäftsführer erklärte, er würde Aussagen von Mitarbeitern nicht akzeptieren, wonach diese sich nicht getraut hätten, ihren Vorgesetzten Meldung zu erstatten.\nStattdessen, so sagte er, habe vielmehr ihre Freundschaft mit Lord ihr Urteilsvermögen beeinträchtigt, weshalb sie ihn nicht gemeldet hätten.\nHare erklärte, er habe dem Vorstand des YMCA NSW seine Ansicht mitgeteilt, dass die Lektion, die die Organisation aus dem „Jonathan-Lord-Zwischenfall“ zu ziehen habe, „nicht das Melden“ durch Mitarbeiter betreffe, und der Vorstand habe ihm zugestimmt.\nHare sagte, die Entscheidung, die Mitarbeiter zur Unterzeichnung von Geheimhaltungsverpflichtungen kurz nach Auftreten der Anschuldigungen zu drängen, sei vom Geschäftsführer der Kinderdienste des YMCA, Liam Whitley, getroffen worden.\nEr sagte, damit sollte eine Kontaminierung der Beweise verhindert werden, was aber „übereifrig“ und schlecht umgesetzt worden sei.\nDer YMCA NSW sei in der Zeit, als Jonathan Lord zwischen 2009 und 2011 dort beschäftigt war, keine für Kinder sichere Organisation gewesen, erklärte Professor Stephen Smallbone von der Griffith University, Experte für sexuellen Kindesmissbrauch, der Kommission.\nEr erläuterte, dass es „ernsthafte Probleme“ bei der Einstellung, Überprüfung, Einarbeitung, Schulung und Beaufsichtigung der Mitarbeiter gegeben habe.\nDie Anhörung wurde bis 20. Dezember vertagt.\nTony Blair erklärte, er würde die Chance zu einer Rückkehr als britischer Premierminister nutzen – räumt aber ein, dass ein Comeback unwahrscheinlich sei.\nIn einem Interview heute Abend anlässlich des fünften Jahrestages seines Ausscheidens aus dem Amt verkündete der 59-Jährige seine Ansichten zu verschiedenen innenpolitischen Themen.\nSeit seinem Rücktritt im Juni 2007 nach einem Jahrzehnt als Staatschef hat Blair es weitgehend vermieden, sich zu britischer Politik zu äußern, und seine Kommentare meistens auf die Außenpolitik und seine Rolle als Gesandter des Quartetts der Friedensstifter im Nahen Osten beschränkt.\nAuf die Frage, ob er gerne in das Amt des Premierministers zurückkehren würde, wurde Blair vom Evening Standard aus London mit den Worten zitiert: „Ja, sicher, aber es ist unwahrscheinlich, dass das passiert, also ...“\nAls sich die Pferdeschau-Experten in Scharen in Cardiff einfanden, um das Pferd des Jahres zu küren, war ihnen bewusst, dass ein harter Konkurrenzkampf bevorstand.\nDoch keiner war auf den drei Jahre alten Fenton Kirkland vorbereitet.\nDer Knirps, der noch nicht einmal im Kindergarten ist und erst vor ein paar Monaten seine ersten Schritte gemacht hat, und sein Shetland-Pony Toffee trabten locker durch die drei Runden und holten den ersten Preis – wobei sie 30 erwachsene Gegner hinter sich ließen.\nDas unzertrennliche Paar, beide gleich groß, wurden wegen ihres Auftretens, Verhaltens und Stils beim alljährlichen Wettbewerb gelobt, der vom Sunnybank Equestrian Centre in Rudry nahe Cardiff veranstaltet wird.\nBei seinem Auftritt in Konkurrenz gegen Männer und Frauen mit eleganten Melonen hatte er seine Tellermütze in einem frechen Winkel aufgesetzt und führte den zwei Jahre alten Toffee durch den Ring.\nFenton wurde von den Juroren für seine natürlichen Fähigkeiten beim Umgang mit dem Pony gepriesen, die weit über seinem Alter lägen.\nUnd Toffee erhielt Bestnoten für sein Auftreten und seine Persönlichkeit.\nFenton hatte Toffee letzten März als Geschenk zu seinem dritten Geburtstag bekommen und seitdem jeden Tag mit dem Shetland-Pony geübt.\nSeine Mutter, Donna, 30, sagte: „Fenton und Toffee sind ein großartiges Gespann.“\nSie mussten gegen das gesamte Teilnehmerfeld antreten und sind mit Goldpokal und Rosette vom Platz gegangen.\nEs war erst das zweite Mal, dass er mit Toffee an einem Wettbewerb teilgenommen hatte, und wir waren alle begeistert, als er gewonnen hat.\nVollkommen Fremde in der Arena hielten ihn für so phänomenal, dass sie mit ihm fotografiert werden wollten.\nDer kleine Junge aus dem Dorf Nantyglo in der Nähe von Ebbw Vale, South Wales, folgt in den Fußstapfen seiner Tante Sharon Howells, die seit über zehn Jahren Pferde vorführt.\nHowells erzählte: „Das ganze Publikum war wie elektrisiert und alle haben ihn angefeuert und geklatscht.“\nEr lief auf Sand die gesamte Länge der Arena und obwohl er so winzig aussah, hat er phantastische Arbeit geleistet.\nFenton ist verrückt nach Tieren – er liebt Pferde, Traktoren und Bauernhöfe und hat zwei Hühner, um die er sich kümmert.\nSo wie er gestartet ist, wird es nicht lange dauern, bis er auf der „Pferd des Jahres“-Schau ist – und ich bin mir sicher, dass er gut abschneiden wird.\nEin Sprecher der jährlichen Pferdeschau sagte: „Fenton ist erst drei, aber er weiß, wie er mit seinem Pony umgehen muss.“\nZusammen sind sie ein tolles Team.\nDie Juroren bewerteten Fenton und Toffee danach, wie gut sie sich geschlagen und im Vorführring präsentiert hätten.\nSie achten auf gute Zusammenarbeit zwischen Pony und Führer – und da waren Fenton und Toffee die Besten im Ring.\nIch bin mir sicher, dass Fentons süße Kleidung ihren Teil dazu beigetragen hat, das passte wirklich perfekt zum Anlass.\nChinesische Zeitung soll nach Aufruf „reformiert“ werden\nEine chinesische Zeitung, die auf der Titelseite die Freilassung eines Reporters gefordert hatte, der wegen Diffamierung angeklagt worden war, solle reformiert werden, erklärte ein Presseregulator.\nDer in Guangzhou ansässige Neue Express hatte einen seltenen öffentlichen Aufruf zur Freilassung des Journalisten Chen Yongzhou abgedruckt.\nDoch Chen gab später im Fernsehen zu, dass er Bestechungsgelder angenommen habe, um Berichte über eine teilstaatliche Firma zu fälschen.\nJetzt werde der Neue Express einer „umfassenden Rektifizierung“ unterzogen, erklärte die Regulierungsbehörde.\nDie „Rektifizierunganordnung“ erging von der Behörde für Presse und Publikationen, Radio, Film und Fernsehen in Guangdong.\nVorläufige Ermittlungen ergaben, dass der Neue Express, der zur Yangcheng Evening News Group gehört, zwischen September 2012 und August 2013 mehrere unzutreffende Berichte über das börsennotierte Unternehmen Zoomlion veröffentlicht hatte.\n„Das Redaktionsmanagement des Neuen Express war ungeordnet“, gab die Regulierungsbehörde in einer Erklärung bekannt.\nSie sagte, man habe entschieden, „eine administrative Strafe für Chen Yongzhou zu verhängen und ihm seine Reporterlizenz zu entziehen“.\nAußerdem habe man „die Yangcheng Evening News Group angewiesen, eine vollständige Rektifizierung des Neuen Express vorzunehmen und empfohlen, die relevanten Verantwortlichen beim Neuen Express zu ermitteln und unverzüglich das Führungsteam des Neuen Express zu überprüfen.“\nChen hatte mehrere Artikel für den Neuen Express geschrieben, in denen er über angebliche finanzielle Unregelmäßigkeiten bei einem Hersteller von Baumaschinen namens Zoomlion berichtete.\nNachdem er verhaftet worden war, veröffentlichte die Zeitung zwei Aufrufe für seine Freilassung auf der Titelseite und stellte sich hinter seine journalistische Arbeit.\nDoch dann trat Chen im Staatsfernsehen auf und gab zu, dass er gegen Bezahlung falsche Berichte veröffentlicht habe.\n„In diesem Fall habe ich Zoomlion geschädigt ebenso wie die gesamte Nachrichtenbranche und ihre Fähigkeit, das Vertrauen der Öffentlichkeit zu gewinnen“, erklärte er gegenüber dem staatlichen Nachrichtensender CCTV.\nIch habe es in erster Linie getan, weil ich auf Geld und Ruhm aus war.\nMir ist klar geworden, dass ich falsch gehandelt habe.\nIm Anschluss an Chens Entschuldigung veröffentlichte der Neue Express eine Entschuldigung auf der Titelseite und erklärte, man habe es versäumt, die Berichte korrekt zu überprüfen.\nVerschiedene bekannte Verdächtige haben in jüngster Zeit im Fernsehen Geständnisse abgelegt.\nExperten sagen, dass Geständnisse immer noch routinemäßig erzwungen werden, trotz einer Gesetzesänderung Anfang des Jahres, in der den Behörden verboten wurde, jemanden zu zwingen, sich selbst zu beschuldigen.\nDrogentunnel mit eigener Eisenbahn zwischen den USA und Mexiko entdeckt\nEiner der raffiniertesten Tunnel für den Drogenschmuggel zwischen den USA und Mexiko, der komplett mit Beleuchtung, Belüftung und elektrischem Bahnbetrieb ausgestattet war, wurde jetzt entdeckt.\nDie US-amerikanischen Behörden beschrieben den 120 mal 90 Zentimeter messenden Tunnel als eine der ausgefeiltesten Passagen, die sie jemals gefunden hätten.\nDer Tunnel, der im Zickzackmuster über eine Länge von knapp sechs Fußballfeldern verläuft, verbindet Lagerhallen in der Nähe von Tijuana, Mexiko, und San Diego, USA.\nIn der Gegend gibt es zahllose unscheinbare Lagerhallen, was es leichter macht, mit Drogen beladene LKWs zu verbergen.\nDer Tunnel sei geschlossen worden, bevor Drogen unerkannt darin transportiert werden konnten, erklärten die Behörden.\nBei der Entdeckung des Tunnels seien achteinhalb Tonnen Marihuana und 148 Kilogramm Kokain sichergestellt worden, so die Aufzeichnungen des Gerichts.\nDrei Männer, die laut Aussage der Behörden als Fahrer arbeiteten, wurden wegen des Besitzes und des beabsichtigten Verkaufs von Marihuana und Kokain angeklagt.\nIhnen drohen bei einem Schuldspruch Gefängnisstrafen zwischen zehn Jahren und lebenslang.\nIn Nogales, Arizona, setzen Schmuggler auf ein ausgedehntes unterirdisches Netzwerk von Entwässungskanälen.\nDer Tunnel ist die achte große Passage, die seit 2006 in San Diego entdeckt wurde.\nEinige der größten Tunnel wurden nach der Marihuana-Ernte in Zentralmexiko im Oktober entdeckt, was die Drogenkartelle vor die Herausforderung stellt, wie sie ihr Produkt schnell zu den Konsumenten bringen können.\nIm Jahr 2010 fanden Behörden eine knapp 640 Meter lange Passage mit Schienen, die von einer Küche in einem Wohnhaus in Tijuana zu zwei Lagerhäusern in San Diego verlief.\nOrlando Bloom und Miranda Kerr lieben sich noch immer\nSchauspieler Orlando Bloom und Model Miranda Kerr wollen künftig getrennte Wege gehen.\nIn einem Interview sagte Bloom jedoch, dass er und Kerr sich noch immer lieben.\nMiranda Kerr und Orlando Bloom sind Eltern des zweijährigen Flynn.\nSchauspieler Orlando Bloom hat sich zur Trennung von seiner Frau, Topmodel Miranda Kerr, geäußert.\nIn einem Interview mit US-Journalistin Katie Couric, das am Freitag (Ortszeit) ausgestrahlt werden sollte, sagte Bloom, \"das Leben verläuft manchmal nicht genau so, wie wir es planen oder erhoffen\".\nKerr und er selbst liebten sich noch immer, betonte der 36-Jährige.\n\"Wir werden uns gegenseitig unterstützen und lieben als Eltern von Flynn\".\nKerr und Bloom sind seit 2010 verheiratet, im Jahr 2011 wurde ihr Söhnchen Flynn geboren.\nDer Veganismus ist laut Lexika dem Vegetarismus unterstellt, unterscheidet sich von diesem aber doch auf ganz erhebliche Weise.\nDenn während Vegetarier sich den Verzehr von Sahnetorte, Eis oder einem kräftigen Edamer erlauben, stehen diese Schlemmereien nicht auf der Speisekarte eines Veganers.\nMilch, Käse, Ei, neben den Verzicht auf Fleisch und Fisch lässt der Veganer vom sämtlichen Verzehr tierischer Produkte ab - auch Honig wird verneint.\nWas bleibt, mag man sich fragen, doch bei näherer Betrachtung zeichnet sich die vegane Ernährungswelt durch einen beachtlichen Einfallsreichtum aus.\n\"Brotaufstriche sind sehr beliebt\", erklärt Ute Henkelmann, die Inhaberin des hiesigen Reformhauses, die eine Vielzahl spezieller Produkte für Veganer bereithält.\nAuch Reuben Proctor besucht den Laden in der Domgasse gerne.\nSeit 13 Jahren lebt der gebürtige Neuseeländer vegan, in Lampertheim findet er (fast) alles vor, was er zum Leben braucht. \"1997 stellte ich meine Ernährung um und wurde Vegetarier\".\nUm die Jahrhundertwende erfolgte dann der nächste Schritt und ich wurde Veganer.\n\"Die Überzeugung kam aber nicht nur wegen der Ernährung, sondern aufgrund der Schuhwahl\", sagt Proctor, der Kunstleder normalem Leder vorzieht.\nEr erkannte, dass es auch in anderen alltäglichen Belangen ohne tierische Produkte geht.\nIn erster Linie ist vegan sein eine Ethik.\n\"Ich will nicht, dass Tiere für mich sterben müssen\", spricht Proctor die Maxime der Veganer aus, die sich auf das gesamte Konsumverhalten erstreckt.\nStatt Burgern, Rühreiern oder Gummibären hinterherzutrauern, habe der Veganer schnell ganz neue Produkte entdeckt, die Begeisterung stieg an.\n\"Es ist ein doppelter Bonus\", sagt Proctor heute, \"tatsächlich stellt vegan sein keinen Verzicht, keine Askese dar, sondern es ist eine Bereicherung\". Die Annahme, dass man mit der Ernährungsumstellung die Auswahl an Speiseoptionen reduziere, führt Proctor eher auf die Macht der Gewohnheit zurück.\nUnd genau diese Konditionierungen ließen auch manchen noch so gut gemeinten Versuch scheitern.\n\"Der Suchtfaktor ist ein ganz entscheidender Faktor, der viele schnell aufgeben lässt, ähnlich wie beim Rauchen\", stellt Proctor einen Vergleich auf.\nUnd wendet ein: \"Bestimmte Geschmäcker sind nicht am Tier festzumachen\".\nOft sind es die Gewürze oder die Art der Zubereitung, die den Geschmack ausmachen.\n\"Man kann aber auch auf andere Weise den gleichen Effekt erzeugen\", verdeutlicht der Veganer.\nZu einem Grillfest bringt Proctor beispielsweise Auberginen, Champignons und auch ein paar Veganwürste mit.\nEr achtet auf eine ausgewogene, abwechslungsreiche Ernährung, bei der es durchaus auch einmal deftig schmecken soll.\nNatürlich möchte man etwas zwischen den Zähnen haben, das ist legitim.\n\"Es soll schmecken, aber das ist nicht nur auf tierische Nahrung zu reduzieren\", so Proctor.\nGesundheitliche Schäden bis hin zu Essstörungen, eine weitere weitverbreitete Annahme, habe er nicht erlitten.\nFür mich hatte die Umstellung einen positiven Aspekt.\nIch nehme kein fremdes Cholesterin auf und habe einen erhöhten Vitaminanteil.\nEs gibt Hochleistungsathleten, die sich ausschließlich vegan ernähren.\n\"Meine Blutwerte sind bestens, ich lasse mich oft checken\", verrät Proctor.\nInsbesondere vor dem Mangel an Vitamin B12 warnen viele Vegansimus-Kritiker.\n\"Da Tiere mit Futtermitteln genährt werden, statt auf der Weide zu grasen, ist es fraglich, ob in dem Fleisch, das man in der Kühltruhe kauft, der Vitamin-B12-Anteil hoch ist\", findet Proctor.\nFür Veganer gebe es zudem die Möglichkeit, das Coenzym in Form von Tabletten zu sich zu nehmen.\n\"Meine B12-Werte sind in Ordnung\", erklärt er.\nWeite Wege müsse Proctor für die Nahrungsmittelbeschaffung nicht gehen.\nGrundnahrungsmittel gibt es schließlich überall und jeder Supermarkt hat mittlerweile Sojamilch und andere Produkte.\nAlles, was ich brauche, finde ich vor Ort.\nNur ab und an kaufe ich etwas Spezielles.\n\"Viele Leute übersehen, dass eben nur die Fertigprodukte teuer sind, aber so verhält es sich bei \"gewöhnlichen\" Fertigprodukten bekanntermaßen auch\".\nOhnehin sei die Zubereitung veganer Gerichte weitaus günstiger und weniger zeitaufwendig, als gemeinhin angenommen.\n\"In der Hausküche gibt es viel zu entdecken, mit ein paar kleinen Kniffen kann man gute, wenn nicht teilweise bessere Ergebnisse erzielen\", sagt Proctor.\nMargarine statt Butter, etwas mehr Backpulver und Kohlensäure statt Ei, mit seinen veganen Käsekuchen konnte Proctor auch seine Schwiegereltern zum Staunen bringen.\nFamilienfesten verleiht der Veganer eine neue Würze.\nDas hat Dynamik, wenn man zusammen kocht, hat das einen neuen Stellenwert.\n\"Die Situationen, die dabei entstehen können, sind so unterschiedlich wie die Menschen selbst\", sagt Proctor.\nNatürlich wurde ihm aber auch schon Skepsis entgegengebracht.\nSchmeckt dir mein Essen nicht mehr?\n\"Soll ich mich jetzt schlecht fühlen, weil ich Milch trinke?\" - bei solcherlei Fragen müsse man als Veganer mit Fingerspitzengefühl agieren.\n\"Ich lehne die Menschen ja nicht ab, ich bin Teil dieser Gesellschaft\", möchte Proctor kein Enklavendasein fristen.\nUnd genauer betrachtet erscheint die Alltagswelt dann gar nicht so veganfremd wie vermutet - und der Veganer nicht so im Alltag eingeschränkt wie gemeinhin angenommen.\nAuch Fast Food ist erlaubt.\nPommes gibt es überall!\n\"Viele Dönerläden bieten Falafel an, oder eben einen vegetarischen Yufka\", sagt Proctor.\nIn einer Pizzeria weicht er auf Pastagerichte aus, oder bestellt eben eine Pizza ohne Käse, alles eine Frage der Gewohnheit.\nDie Restaurants stellen sich so langsam darauf ein.\n\"Als ich vor 13 Jahren angefangen habe, mich vegan zu ernähren, war alles noch viel schwieriger\", kann der Neuseeländer eine Entwicklung ausfindig machen: \"Man muss mit den Leuten reden, sie darauf aufmerksam machen\".\n\"Wenn genügend Nachfragen kommen, sind sie vielleicht dazu geneigt, die Speisekarte zu ergänzen\", hofft er.\nVegane Restaurants entwickeln sich, wie zum Beispiel die Kombüse in Mannheim oder das Café Vogelfrei.\nProctor hegt den Wunsch, dass auch andere Restaurants zumindest ein veganes Gericht auf der Speisekarte stehen haben.\nIm Grunde genommen sind vegane Gerichte für alle da.\nJeder kann sie essen, sie sind also genau das Gegenteil von exklusiv.\n\"Fleischgerichte sind dagegen exklusiv, und zwar im wahrsten Sinne des Wortes, denn sie schließen andere aus\", stellt Proctor fest.\n\"Wenn man Lebensmittelskandale vermeiden will, dann ist Veganismus ein sicherer Weg, den allergrößten Teil von vornherein unmöglich zu machen\", sagt Proctor.\nDer Einkauf veganer Produkte könne aber zu Beginn etwas schwierig sein.\nInsbesondere wenn man zu verstehen lernt, das auch in Erdnüsse tierische Zusatzstoffe als Farbgeber enthalten seinen können, scheint man mit der Befolgung der Ethik bei so vielen Hürden und Fallen schnell der Mut zu verlassen.\nNicht nur deshalb haben Reuben Proctor und Lars Thomsen ein Buch geschrieben: \"Veganissimo - Tierische Inhaltsstoffe und ihre Alternativen\" erklärt die vielen Inhaltsstoffe, die Nahrungs- aber auch Reinigungsmitteln beigesetzt werden.\n\"Nach und nach entwickelt man einen Scannerblick und weiß, auf welche Zeichen und Logos man zu achten hat \"Es ist manchmal besser kleine Schritte zu tun als stehenzubleiben oder zu stolpern\", weiß Proctor.\nDer Veganismus, er ist ein wichtiger moralischer Fingerzeig, der auf das Bewusstsein schlägt.\nVielleicht schafft er es nicht ganz, dass man seine Gewohnheiten ablegt, doch zumindest kann er den Konsumenten lehren, seine Gewohnheiten kritisch zu hinterfragen.\nDer Börsenbetreiber Nasdaq OMX hält seine Kunden weiter in Atem.\nDer Handel am Nasdaq Options Market wurde am Freitagnachmittag deutscher Zeit unterbrochen.\nIn einer Mitteilung machte der Betreiber technische Probleme verantwortlich.\nDie anderen elf US-Optionsmärkte, darunter auch zwei der Nasdaq OMX, setzten ihr Geschäft ungehindert fort.\nDer jüngste Zwischenfall setzt eine ganze Serie von kleineren und größeren Pannen bei dem Börsenbetreiber fort.\nErst am Dienstag waren die Indizes der Nasdaq wegen Fehlern im Datentransport eine Stunde lang nicht berechnet worden.\nIm August dieses Jahres hatte es allein in einer Woche zwei Pannen gegeben.\nZuerst hatte die US-Investmentbank Goldman Sachs wegen technischer Probleme massenhaft fehlerhafte Kaufaufträge an die Optionsmärkte geschickt.\nDaraufhin brauchten die Börsenbetreiber fast einen ganzen Tag, um die Orders durchzuschauen und zu streichen.\nZwei Tage darauf kam die Hälfte des gesamten Aktienhandels in den USA wegen einer Computerpanne an der Nasdaq-Börse für mehrere Stunden zum Erliegen.\nFür Aufsehen hatte zudem im vergangenen Jahr der Börsengang von Facebook gesorgt.\nDie Nasdaq-Systeme waren der Flut von Kauf- und Verkaufsaufträgen nicht gewachsen gewesen, stellte später die Börsenaufsicht SEC fest und verdonnerte das Unternehmen zu einer Rekordstrafe von 10 Millionen Dollar.\nKonstanz: Radler fährt 63-Jährigen um\nZu dem Unfall war es nach Angaben der Polizei gekommen, als ein 26 Jahre alter Mann am Donnerstagabend, gegen 22 Uhr, mit einem Damenfahrrad ordnungswidrig auf dem linken Gehweg vom Bahnhofplatz in Richtung Marktstätte unterwegs war.\nAls plötzlich ein 63 Jahre alter Mann von einem Lokal auf den Gehweg trat, konnte der Fahrradfahrer laut Polizei nicht mehr rechtzeitig bremsen.\nBei dem folgenden Zusammenstoß wurde der Fußgänger gegen die Hauswand gedrückt, ging im weiteren Verlauf zu Boden und zog sich eine rund 15 Zentimeter lange Platzwunde am Kopf zu.\nEin Rettungswagenteam brachte den Verletzten zur ärztlichen Behandlung ins Klinikum.\nBritische Polizei stellt Assange einen Auslieferungsbescheid zu\nDie britische Polizei hat heute einen Auslieferungsbescheid an WikiLeaks-Gründer Julian Assange übergeben, der in der ecuadorianischen Botschaft in London Zuflucht gesucht und Asyl beantragt hat.\nScotland Yard erklärte, man habe dem 40-jährigen Australier eine „Aufforderung, sich zu stellen“ zugestellt, die ihn zum Erscheinen in einer Polizeiwache auffordere, und fügte hinzu, sollte er dem nicht nachkommen, drohe ihm die Verhaftung.\nAssange droht die Auslieferung nach Schweden wegen der Anklage in einem Sexualdelikt, nachdem seine Möglichkeiten nach britischem Recht ausgeschöpft sind, seit der Oberste Gerichtshof seinen Einspruch gegen die Auslieferung Anfang des Monats abgelehnt hat.\nDa er befürchtet, Stockholm werde ihn an die USA ausliefern, hatte er am 19. Juni in der ecuadorianischen Botschaft in London Zuflucht gesucht und das südamerikanische Land um politisches Asyl gebeten.\nScotland Yard habe „einem 40-jährigen Mann eine Aufforderung zugestellt, sich zu einem von uns gewählten Zeitpunkt bei einer Polizeiwache zu stellen“, erklärte ein Sprecher.\nEr verletzt weiterhin die Bedingungen seiner Freilassung auf Kaution.\nDie Botschaft gab keinen Kommentar zur Zustellung der polizeilichen Aufforderung ab.\nAssange fürchtet, er werde von Schweden an die Vereinigten Staaten ausgeliefert und dort wegen möglicher Spionagevorwürfe angeklagt, nachdem er über 250.000 diplomatische Nachrichten auf der Enthüllungswebsite WikiLeaks veröffentlicht hatte.\nFahrer, der mit 210 km/h und heißem Getränk zwischen den Beinen gerast war, erhält 1.000 £ Strafe\nEinem Autofahrer wurde eine Strafe in Höhe von 1.000 £ auferlegt, weil er mit bis zu 210 km/h und einem Heißgetränk zwischen seinen Beinen gefahren war.\nAndrew Howie, 35, aus Tiptree, Essex, wurde am 27. Mai mit seinem Mercedes Benz auf der A120 bei Braintree gestoppt.\nNachdem ihn die Polizei angehalten hatte, entdeckten sie den Getränkebecher zwischen seinen Beinen.\nVor dem Amtsgericht Colchester bekannte sich Howie schuldig, ohne die nötige Sorgfalt und Aufmerksamkeit gefahren zu sein.\nEr erhielt sieben Punkte und ein sechsmonatiges Fahrverbot.\nHowie wurde außerdem zur Zahlung von Kosten in Höhe von 90 £ sowie eines Opferzuschlags von 100 £ verurteilt.\nSteuer für ausländische Immobilienbesitzer gegen Londons Spekulationsblase\nDas Finanzministerium hat provisorisch die CGT-Maßnahme durchkalkuliert, wartet aber noch auf die abschließende Entscheidung von Schatzkanzler George Osborne, der im Haushalt 2012 eine Stempelsteuer in Höhe von 7 % auf Wohnungen verhängt hatte, die über zwei Millionen Pfund kosten sowie jährliche Gebühren für Käufer, die Wohnungen als Firma und nicht als Einzelpersonen halten.\nBereits jetzt übersteigen die Einnahmen aus der Stempelsteuer für Wohneigentum in den Bezirken Westminster und Kensington & Chelsea, die im Steuerjahr 2012/13 bei 708 Millionen Pfund lagen, die Erlöse für Nordirland, Wales, Schottland, den Nordosten, Nordwesten, Yorkshire und die Region Humber zusammengenommen.\nCook sagte: „Nach den Erhöhungen bei der Stempelsteuer auf hochpreisige Wohnungen und der Einführung der damit verbundenen Gesetzgebung gegen ein Umgehen kann man schwerlich behaupten, hochwertige Immobilien seien zu niedrig besteuert, ungeachtet der Auswirkungen des veralteten Gemeindesteuersystems.“\n„Doch dieser Schritt könnte einige ausländische Investoren zurückhaltender machen, was den Kauf von Immobilien in London angeht, oder Eigentümer davon abhalten zu verkaufen“, fügte er hinzu.\nErstklassige Immobilien – die obersten fünf bis zehn Prozent des Wohnungsmarkts nach Preis – im wohlhabenden Londoner Südwestgürtel, der sich von Fulham bis Wimbledon erstreckt, haben sich um den Rekordwert von 11,8 % im letzten Jahr verteuert.\nDie Preise in Central London wiesen ein gleichmäßiges jährliches Wachstum von 5,6 % auf, wurden aber von einem aufstrebenden „Inlandsmarkt“ überschattet, auf dem der südwestliche Teil der Stadt, der Norden (7,4 %) und der Osten (6,5 %) einen Aufwärtstrend erlebten, so eine Untersuchung von Savills.\nWissenschaftler konnten mehr Licht darauf werfen, in welchem Zusammenhang das Schwanzwedeln eines Hundes mit seiner Stimmung steht.\nFrühere Forschungen hatten gezeigt, dass glückliche Hunde mit dem Schwanz mehr nach rechts wedelten (aus Sicht des Hundes), während es bei nervösen Hunden die linke Seite war.\nDoch jetzt sagen Wissenschaftler, dass andere Hunde diese subtilen Unterschiede wahrnehmen und darauf reagieren können.\nProfessor Georgio Vallortigara, ein Neurowissenschaftler der Universität Trient, sagte: „Beim Menschen ist gut bekannt, dass die linke und rechte Gehirnhälfte unterschiedlich auf Stimuli reagieren, die positive oder negative Emotionen hervorrufen.“\nHier haben wir versucht, uns dies bei anderen Spezies anzusehen.\nEr bemerkte außerdem, dass bei Hunden genau wie beim Menschen die rechte Gehirnhälfte für die Bewegung der linken Seite zuständig sei und umgekehrt, und dass die beiden Hemisphären unterschiedliche Rollen bei den Gefühlen spielten.\nUm mehr darüber zu erfahren, wie Hunde auf das seitliche Schwanzwedeln ihrer Artgenossen reagieren, überwachten die Forscher die Tiere, während sich diese Filme anderer Hunde ansahen.\nSie maßen die Herzfrequenz der Vierbeiner und analysierten das Verhalten.\nWahrscheinlich werden wir bald verstehen, warum sich der Schwanz mal in die eine, mal in die andere Richtung bewegt\nProfessor Vallortigara sagte: „Wir haben den Hunden Filme mit Hunden gezeigt – entweder eine naturgetreue Version oder eine Silhouette, um ablenkende andere Aspekte zu eliminieren, und wir konnten damit die Bewegung des Schwanzes mehr nach links oder rechts steuern.“\nWenn die Tiere sahen, wie ein ansonsten ausdrucksloser Hund den Schwanz nach rechts bewegt hat (von der Perspektive des wedelnden Hundes aus gesehen), blieben sie völlig entspannt.\nWar aber die Schwanzneigung vornehmlich nach links (wieder aus Perspektive des Hundes, der wedelt), so stieg ihre Herzfrequenz und sie sahen unruhig aus.\nNach Ansicht von Professor Vallortigara kommunizieren die Hunde nicht absichtlich miteinander durch diese Bewegungen.\nEr ist vielmehr überzeugt, dass die Hunde aus Erfahrung gelernt hätten, bei welchen Bewegungen sie sich Sorgen machen sollten und wann nicht.\nEr sagte: „Wenn man verschiedene Begegnungen mit anderen Hunden hat und das Wedeln mit dem Schwanz in eine Richtung eher mit freundlichem Verhalten verknüpft ist und die rechte Seite eher ein weniger freundliches Verhalten produziert, dann reagiert man auf Basis dieser Erfahrungen.“\nDie Forscher sagen, dass die Erkenntnisse Hundebesitzern, Tierärzten und Trainern zu einem besseren Verständnis der Emotionen ihres Tieres verhelfen könnten.\nJohn Bradshaw, Experte für Hundeverhalten und Gaststipendiat an der Fakultät für Tierheilkunde der Universität von Bristol erklärte, dies sei nicht die erste Studie gewesen, bei der untersucht wurde, ob links und rechts für Hunde wichtig sei.\nLetztes Jahr fand ein Team der Universität von Lincoln heraus, dass Hunde den Kopf nach links drehen, wenn sie einen aggressiven Hund ansehen, und nach rechts, wenn es sich um einen zufriedenen Hund handelt.\nIn einer anderen Forschungsarbeit an der Universität von Victoria in Kanada stand Folgendes: „Hunde gehen eher auf einen Roboterhund zu, wenn sein ,Schwanz‘ links wedelt und nicht rechts, statt unruhig zu werden – genau andersherum als in der italienischen Studie.“\nLaut seiner Aussage könnten die Unterschiede daher rühren, dass die Hunde in den verschiedenen Studien die Tiere in den Filmen bzw. die Roboterhunde nicht als Hunde interpretierten.\nEine Studie, wie Hunde auf echte Hunde reagieren, könnte helfen, erklärte er.\n„Zwar gibt es beträchtliche Belege für viele verschiedene Säugetiere, dass die beiden Gehirnhälften für verschiedene Zwecke verwendet werden, doch müssen viele der Details noch bestimmt werden – und Hunde bilden da keine Ausnahme“, so Bradshaw.\nDa sich ihr Verhalten aber einfach aufzeichnen lasse, werde es vermutlich nicht lange dauern, bis wir verstehen, weshalb sich der Schwanz manchmal in die eine, manchmal in die andere Richtung bewegt.\nArctic Monkeys verschieben Auftritt in Glasgow wegen der Erkrankung Alex Turners\nDie Rockband Arctic Monkeys hat einen Auftritt in Glasgow verschoben, nachdem ihr Leadsänger an Kehlkopfentzündung erkrankt ist.\nDie Band aus Sheffield sollte am Freitag im Hydro spielen.\nWegen der Krankheit des Leadsängers Alex Turner muss das Konzert nun allerdings verlegt werden.\nDie Ankündigung der Band kam, nachdem sie zuvor schon einen Auftritt in der LG Arena in Birmingham am Donnerstag verschieben musste.\nIn einer Erklärung auf ihrer offiziellen Website teilten die Arctic Monkeys mit: „Nach der Entscheidung, die Show in der LG Arena in Birmingham heute Abend abzusagen sowie auf ärztlichen Rat müssen die Arctic Monkeys auch die Show im Hydro in Glasgow am Freitag, dem 1. November absagen.“\n„Bei Alex Turner wurde eine Kehlkopfentzündung diagnostiziert, weshalb er leider nicht auftreten kann.“\nDie Show in der LG Arena in Birmingham findet nun am 20. November statt, die im Hydro in Glasgow wurde auf den 21. November verlegt.\nAlle Tickets behalten für diese Shows Gültigkeit.\nWir entschuldigen uns bei allen Ticketinhabern für die hierdurch entstandenen Unannehmlichkeiten.\nBitte wenden Sie sich an den Kundenservice an den Verkaufsstellen, an denen Sie Ihr Ticket gekauft haben, falls Sie weitere Unterstützung benötigen.\nPapst Franziskus ernennt im Februar erste Kardinäle\nPapst Franziskus werde am 22. Februar erstmals neue Kardinäle der katholischen Kirche berufen, wie der Vatikan am Donnerstag bekannt gab.\nKardinäle sind die ranghöchsten Kleriker in der katholischen Kirche nach dem Papst und sie sind es auch, die einen Papst wählen, sodass Franziskus damit die erste Gruppe von Männern ernennen wird, die letztendlich bei der Wahl seines Nachfolgers mitwirken werden.\nDerzeit gibt es 201 Kardinäle.\nJedoch kann ein Kardinal, der ein Alter von 80 Jahren erreicht hat, nicht mehr an der Papstwahl teilnehmen – das fällt einer Gruppe von 120 „wahlberechtigten Kardinälen“ zu.\nIn einer Erklärung, in der die Nachricht bekannt gegeben wurde, sagte Pater Federico Lombardi, ein Sprecher des Vatikans, es werde ein Treffen aller Kardinäle stattfinden, ehe die Zeremonie zur Ernennung der neuen Kardinäle abgehalten werde, die auch als Konsistorium bekannt sei.\n„Papst Franziskus hat beschlossen, seine Entscheidung zur Einberufung des Konsistoriums im Februar im Voraus bekannt zu geben, damit andere Treffen, die die Teilnahme von Kardinälen aus aller Welt erfordern, geplant werden können“, sagte Lombardi.\nJack Valero von Catholic Voices sagte, dass die Zahl der wahlberechtigten Kardinäle bis Februar wahrscheinlich gesunken sein werde.\nEr erklärte, ein Papst ernenne normalerweise so viele Kardinäle wie nötig, damit die Zahl der wahlberechtigten Kardinäle wieder 120 betrage, und so viele Kardinäle über 80, wie er möchte.\nDas Konsistorium im nächsten Jahr sei deshalb bedeutsam, weil es das Erste seit der Wahl von Franziskus im März diesen Jahres sei, so Valero.\nDerzeit gebe es einen gewissen Überhang aufseiten Europas und insbesondere Italiens.\n„Es wird interessant sein zu sehen, ob der neue Papst Kardinäle aus dem Rest der Welt ernennen wird, um das Gleichgewicht wiederherzustellen“, sagte er.\nVierzig Prozent der Katholiken leben in Südamerika, doch sie haben nur eine winzige Anzahl von Kardinälen.\nDie Kardinäle werden auch die Ersten sein, die seit der Bildung des von Franziskus gegründeten Rates der Kardinäle berufen werden, eine Gruppe von acht Kardinälen aus der ganzen Welt, die den Auftrag haben, Möglichkeiten zur Reformierung der Kirche zu finden.\nIn der Vergangenheit entschied der Papst alles allein.\n„Nun hat Franziskus diese acht Kardinäle ausgewählt, die ihm helfen sollen“, sagte Valero.\nEr erklärte, es sei „gut möglich“, dass Franziskus die Kardinäle um Rat bitte.\nDoch bisher waren wir nicht in dieser Lage – das ist alles ganz neu.\nValero sagte, dass typischerweise die Bischöfe aus großen Orten zu Kardinälen berufen würden, doch stecke Franziskus „voller Überraschungen – wir wissen also nicht, wen er ernennt“.\nGM ruft neue Pickup-Trucks in den USA zur Reparatur der Sitzlehne zurück\nGeneral Motors rufe knapp 19.000 seiner brandneuen Chevrolet Silverado- und GMC Sierra-Pickup-Trucks mit Baujahr 2014 zurück, um ein Problem mit der manuell verstellbaren Sitzlehne zu beheben, so eine Mitteilung der US-amerikanischen Regulierungsbehörde für Fahrzeugsicherheit am Freitag.\nBei einigen der Wagen kann es einen Defekt im Mechanismus für das Zurückstellen der Vordersitzlehne geben.\nAus diesem Grund erfüllen sie nicht die Bundesrichtlinien für die Fahrzeugsicherheit bei Kopfstützen.\n„Wenn von hinten auf das Fahrzeug aufgefahren wird, ist es möglich, dass die Kopfstütze die Insassen nicht richtig schützt, sodass ein erhöhtes Verletzungsrisiko besteht“, war in der Nachricht auf der Website der National Highway Traffic Safety Administration (NHTSA) zu lesen.\nDie zurückgerufenen Modelle wurden zwischen dem 1. August und 10. September hergestellt.\nDie Lieferung der GM-Trucks begann im Juni und stellt den wichtigsten Modellstart des führenden US-amerikanischen Autoherstellers seit der insolvenzbedingten Umstrukturierung 2009 dar.\nGM informierte die Fahrzeugbesitzer in der ersten Oktoberhälfte über den Defekt.\nDie NHTSA konnte wegen des 16-tägigen Government Shutdowns das Benachrichtigungsschreiben nicht prüfen, was sich negativ auf die Autoverkäufe im Oktober auswirkte.\nDer Verkauf der Silverado- und Sierra-Trucks, die für das Modelljahr 2014 neu entwickelt wurden, sei in den ersten zehn Monaten des Jahres um 20 Prozent gestiegen, erklärte GM am Freitag.\nIm Oktober verkaufte GM 42.660 Silverado- und 16.503 Sierra-Pickup-Trucks.\nDie GM-Aktie stieg an der New Yorker Börse um 1,4 Prozent auf 37,47 US-Dollar am Freitagnachmittag.\nVerzweiflungsschrei eines Obama-Wählers\nIch habe Präsident Obama zweimal gewählt in der Hoffnung darauf, dass Veränderung möglich sei\nEr sagt, Obama habe lobenswerte Bemühungen unternommen, die von der Blockadetaktik der Republikaner vereitelt worden seien\nDie Blockadepolitik entschuldige nicht die Website-Probleme von Obamacare, die Drohnenangriffe\nObamas Memoiren über den Wahlkampf 2008 seien eine traurige Erinnerung an das, was möglich gewesen wäre\nNathaniel P. Morris ist Student im zweiten Jahr an der Harvard Medical School.\nIch lese derzeit ein furchtbar trauriges Buch.\nEs ist ein Buch, von dem ich geglaubt habe, es würde mich während des trübsinnigen zweiten Jahres meines Medizinstudiums aufheitern und mir wieder Hoffnung geben.\nEs heißt „The Audacity to Win“ (Mut zu gewinnen) und schildert die Memoiren Barack Obamas zur Präsidentschaftswahl 2008.\nWenn ich abends mit meinen Patientenniederschriften fertig bin und zu Bett gehe, dann führt mich das Buch zurück in eine Zeit, als die Politik Millionen inspirierte und einem Reden den Atem rauben konnten.\nDie Wahl wurde zu einem Erdrutschsieg und Nachrichtensprecher hielten inne, um die historische Bedeutung dieser Stunde vor Augen zu führen.\nMeine Klassenkameraden weinten vor Freude und meine Eltern sammelten alle Zeitungen, die sie finden konnten.\nEin junges Team von Visionären war auf dem Weg ins Weiße Haus und die Nation war bereit für Veränderung.\nAls damals 2008 Obama ins Amt wechselte, hatte er Zustimmungswerte von 82 %.\nUnd dann schließe ich das Buch.\nWieder umzuschalten auf die Gegenwart ist ein böses Erwachen, als ob man aus einem Traum gerissen wird.\nEs fällt schwer, sich an diese optimistischen Zeiten zu erinnern – sie scheinen eine vage Erinnerung zu sein, eine traurige Mahnung an verpasste Möglichkeiten.\nIn den Jahren, seit ich erstmals meine Stimme abgegeben habe, hat sich tatsächlich etwas verändert.\nAber es ist einfach nichts, was ich mir hätte vorstellen können.\nIch erkenne die großartigen und vielseitigen Dinge an, die Obama erreicht hat, von der Verabschiedung des Affordable Care Act für Krankenversicherung bis zum militärischen Abzug aus dem Irak, dem Ende des erzwungenen Verschweigens von Homosexualität in der Armee und der Tötung Osama bin Ladens.\nAuch ich bin der Ansicht, dass die parteipolitische Blockadetaktik zu viele Bestrebungen gekippt habe, mit denen unsere Nation vorwärts gebracht werden sollte: Einwanderungsreform, eine öffentliche Option für Krankenversicherung und das Schließen von Guantanamo Bay, um nur einige zu nennen.\nDoch nachdem ich zahllose Male die Obama-Regierung gegenüber Kollegen und Bekannten verteidigt habe, bin ich mit meinen Erklärungsversuchen am Ende angelangt.\nIch habe einen Punkt politischer Verzweiflung erreicht.\nDie republikanische Blockadepolitik kann nicht erklären, weshalb man das Abhören ausländischer Staatsoberhäupter zulässt oder die Tötung unschuldiger Kinder durch Drohnen in Übersee.\nEs kann nicht erklären, weshalb die National Security Agency Daten über das Privatleben von Amerikanern sammelt und warum Whistleblower bestraft werden, die staatliches Fehlverhalten offenlegen.\nEs kann nicht erklären, weshalb Anwar al-Awlaki, ein US-amerikanischer Staatsbürger, ohne Verfahren ermordet wurde, noch weshalb die öffentlichen Finanzierungs- und Ausgabegrenzen während der Präsidentschaftswahlen umgangen werden.\nEs rechtfertigt nicht die Ergebnisse eines Berichts, in dem es heißt, die Anstrengungen des Weißen Hauses zur Ruhigstellung der Medien seien die „aggressivsten ... seit der Nixon-Regierung“.\nUnd jüngstens kann es nicht die Unfähigkeit entschuldigen, in den mehr als drei Jahren seit der Verabschiedung des Affordable Care Act eine einfache Website zu entwerfen.\nIch weiß nicht, ob es das ist, was ich hätte erwarten sollen.\nOb ich mit 18 hätte verstehen sollen, dass die Regierungsarbeit den ihr vorangehenden politischen Kampagnen widersprechen könnte.\nOffensichtlich ist das Abgeordnetenamt kein vorhersehbarer Kurs, da eine Oppositionspartei und zufällige Ereignisse wie das Newtown-Massaker die öffentliche Diskussion prägen.\nDoch wenn ich mir die oben genannten Beispiele ansehe, dann scheinen sie weitgehend von der Regierung selbst gewählt zu sein.\nUnd das stört mich am meisten.\nIch habe 2012 wieder Obama gewählt, nicht weil ich über seine Kandidatur begeistert war.\nMitt Romney stellte eine verwirrende und unausgegorene Alternative dar, er schien seine Richtung und Positionen nicht festlegen zu können.\nIch hatte den Eindruck, eine zweite Amtszeit für Obama, frei vom Druck künftiger Wahlen, würde die Hoffnung erfüllen, von der wir schon so lange gehört hatten.\nDoch mit dem Sinken der Zustimmungswerte für Obama auf unter 45 % diese Woche ist die Rückkehr ins Jahr 2008 durch dieses Buch um so härter geworden.\nEs weckt in mir die Sehnsucht nach den vielen Versprechen, die sich in Luft aufgelöst haben.\nDiese Woche las ich einen Abschnitt in dem Buch, der beschreibt, wie Obama einen schweren Verlust gegen Clinton bei den Vorwahlen in Pennsylvania einstecken musste.\nIn einem Treffen mit den Wahlhelfern nach der Entscheidung sagte er seinen Mitarbeitern, sie müssten zurück auf Kurs kommen und dem Zweck ihrer Sache folgen.\n„Ich möchte, dass wir unseren Zauber wiederfinden“, sagte er.\nWir müssen uns daran erinnern, wer wir sind.\nEs sind fünf Jahre später, Mr. President, und ich könnte Ihnen nicht stärker zustimmen.\nDie in diesem Kommentar ausgedrückten Ansichten sind ausschließlich die von Nathaniel Morris.\nClive Palmer behauptet, Premierminister Tony Abbott habe Interessenkonflikt beim Elternurlaub\nDer Milliardär und Abgeordnete Clive Palmer sagt, Premierminister Tony Abbott stünde in einem Interessenkonflikt bei seinen Plänen zum Elternurlaub, weil seine Töchter schwanger werden und deshalb davon profitieren könnten.\nDer Bergbaumagnat, der sich in einer gerichtlichen Auseinandersetzung über die Zahlung von 6 Millionen Dollar an CO2-Steuer befindet, stellte die Behauptung auf, als er Fragen vom Tisch wischen wollte, ob er sich in einem Konflikt befände.\nDie Palmer United Party könnte bis zu vier Stimmen im Senat kontrollieren, die wichtig für die Entscheidung sind, ob die CO2- und Bergbausteuern gestrichen oder gekürzt werden.\nDoch Palmer behauptete, dass nur Minister Interessenkonflikte haben könnten und die Töchter von Abbott persönlich von den Gesetzen profitieren würden.\n„Er befindet sich in einem großen Interessenkonflikt, wenn es um bezahlten Elternurlaub geht, denn wenn eine seiner Töchter schwanger wird, hat er ein direktes Interesse daran, ob sie Urlaub erhält oder nicht“, sagte Palmer.\nZwei Monate nach der Wahl erklärte die Wahlkommission Palmer mit 53 Stimmen Vorsprung nach der Neuauszählung offiziell zum Gewinner des Sunshine-Coast-Sitzes von Fairfax.\nPalmer forderte eine Überarbeitung des Prozesses zur Stimmauszählung, damit dieser schneller vonstatten gehe.\nTony Abbotts Töchter Frances und Bridget.\nSollten diese Wahlen zwei Monate nach dem Ende der Stimmabgabe entschieden werden?\n„Wir brauchen ein besseres System“, sagte er.\nWeshalb sollten wir kein System haben, bei dem man hereinmarschiert, die Daten in einen Computer eingibt, sofort wählt und dann um 6:30 Uhr abends das Ergebnis hat?\nPalmer kritisierte auch die Verwendung von Bleistiften beim Markieren der Stimmzettel.\nVerwendet man sie, weil man dann die Ergebnisse ausradieren kann, wenn sie einem nicht gefallen?\nHeutzutage mit Bleistiften abzustimmen ist unglaublich.\nDie Wahlkommission hat die Optionen für eine elektronische Wahl geprüft und kürzlich einen gemeinsamen Gesetzesvorschlag mit Neuseeland veröffentlicht.\nPalmer, 59, erklärte, dass zu seiner Politik ein internationaler Flughafen für die Sunshine Coast gehöre und dass er sein neues Amt „sehr ernst“ nehmen werde.\nBei einem öffentlichen Amt gehe es um den Dienst an der Öffentlichkeit.\n„Wir streben nach keiner Belohnung außer der der Geschichte, nämlich, dass wir in einer kritischen Zeit dieser Gemeinschaft dienen können“, sagte er.\nRBS suspendiert zwei Devisenhändler\nDie Royal Bank of Scotland hat zwei Händler aus ihrer Devisenabteilung suspendiert, so zwei Personen, die mit der Situation vertraut sind; dies ist ein weiteres Indiz dafür, dass die weltweite behördliche Ermittlung zu den mutmaßlichen Manipulationen am Währungsmarkt rasant an Fahrt aufnimmt.\nEinige der größten Banken der Welt, einschließlich UBS, Barclays, Deutsche Bank und RBS, bestätigten, dass sie mit den Behörden bei den Ermittlungen im weltweit größten Finanzmarkt zusammenarbeiten, auf dem täglich 5,3 Billiarden US-Dollar den Besitzer wechseln.\nDie beiden Händler wären die ersten RBS-Mitarbeiter, die in der sich ausweitenden Untersuchung suspendiert wurden, die der Skandal um das Libor-Interbankengeschäft nach sich zieht.\nDie Bank, die keinen Kommentar zu den Suspendierungen abgab, bestätigte diesen Monat, dass sie Informationsanfragen von Behörden erhalten habe.\n„Unsere Ermittlungen zu diesem Thema gehen weiter und wir kooperieren voll mit der FCA und anderen Regulierungsbehörden“, sagte die Bank vor zwei Wochen.\nLetzten Monat gaben der Situation nahestehende Personen an, dass die RBS die Aufzeichnungen von E-Mails und Instant Messages, die von und an einen früheren Händler gesandt wurden, an die britische Aufsichtsbehörde, die Financial Conduct Authority, weitergeleitet habe.\nDieser Händler, Richard Usher, hatte die RBS 2010 verlassen und soll inzwischen von seiner derzeitigen Position als europäischer Leiter des Forex-Spot-Handels bei JPMorgan beurlaubt worden sein.\nRohan Ramchandani, Leiter des europäischen Spot Trading bei Citi, wurde diese Woche beurlaubt und Matt Gardiner, früher leitender Währungshändler bei Barclays und UBS, wurde diese Woche bei Standard Chartered suspendiert.\nKeinem dieser Händler wurde irgendein Fehlverhalten vorgeworfen.\nZur Instant Message-Gruppe von Usher gehörten Banker bei Barclays und der Citigroup, sagten der Situation nahestehende Personen.\nUBS gab diese Woche bekannt, dass sie Schritte gegen einige ihrer Mitarbeiter unternommen habe, nachdem die Schweizer Regulierungsbehörde Finma erklärt hatte, dass sie eine mutmaßliche Manipulation des Devisenmarkts bei einer Reihe schweizerischer Banken untersuche.\nMindestens sechs Behörden weltweit – die Europäische Kommission, Finma, die Schweizer Wettbewerbsbehörde Weko, die FCA, das US-amerikanische Justizministerium und die Hong Kong Monetary Authority – beschäftigen sich derzeit mit Vorwürfen, wonach Banker sich bei Transaktionen am Währungsmarkt abgesprochen haben sollen.\nHSBC, Citigroup, JPMorgan und Credit Suisse haben außerdem interne Untersuchungen eingeleitet oder Informationsanfragen von Behörden erhalten, sagten mit der Situation vertraute Personen.\nBanken durchkämmen Instant Messages und E-Mails aus mehreren Jahren auf der Suche nach Fällen von Fehlverhalten.\nDie Nachrichten über diese Untersuchungen hat die Händler in einem Bereich in Aufruhr versetzt, der in den letzten Jahren zu einem der profitabelsten der Trading-Einheiten von Investmentbanken gehört hat, aber dieses Jahr unter Druck stand, weil niedrige Volatilität bei Währungen die Chancen für Spekulanten einschränkt.\nEinige Banker haben versucht, die Affäre herunterzuspielen und sagten, dass es nahezu unmöglich sei, den ausgedehnten und hochgradig liquiden Devisenmarkt zu manipulieren, doch führende Händler sind der Ansicht, dass dies nicht unbedingt wahr sei.\nEin führender Händler bemerkte, dass trotz des enormen täglichen Volumens im Devisenhandel die Fragmentierung der Liquidität zwischen den verschiedenen Handelsplattformen und der zunehmende Einsatz eigener interner Plattformen durch Banken dazu führe, dass „man schon mit sehr geringen Ticket-Preisen den Markt beeinflussen kann“.\nDie Nachricht kam am selben Tag heraus, als Credit Suisse bekannt gab, sie habe diese Woche einem Händler ihres London Exchange Traded Funds-Büros gekündigt, nachdem er Ende letzten Jahres einen Verlust von knapp sechs Millionen Dollar verursacht hatte.\nDie Bank informierte prompt die zuständigen Behörden und arbeitet mit ihnen zusammen.\n„Wir sind sicher, dass der Händler allein gehandelt hat und dass die Angelegenheit eingedämmt ist“, erklärte Credit Suisse.\nDen Bauzaun auf dem Bechtle-Grundstück bemalt\nEine Gruppe der Bürgerinitiative \"Schweizer Wiese\" hat den Bauzaun auf dem Bechtle-Grundstück an der Kurpromenade in Bad Herrenalb verschönert.\nAußerdem säuberte und verbreiterte sie den Fußweg, heißt es in einer Pressemitteilung.\nDas geplante Abdecken des zerfallenden Hauses im hinteren Teil des Grundstücks war aus Sicherheitsgründen nicht erlaubt worden, denn das Gelände droht abzurutschen.\nAlfred Abel, der das Grundstück derzeit verwaltet, hatte die Verschönerungsaktion mit seinem Kollegen Reinhard Domke von der BI abgesprochen.\nVor der Aktion der BI war ein Transparent mit der Botschaft \"Wir sind dafür\" angebracht worden.\nDas störte die etwa 20 Mitglieder der Bürgerinitiative jedoch wenig bei ihrer Aktion.\nIhr Motto auf dem großen Plakat hieß \"Wir sind gegen Bauruinen\".\nDamit wollte sie auf die Gefahr von noch größeren Ruinen auf der Schweizer Wiese hinweisen - sollte das Riesenprojekt eines Tages scheitern.\nIm Gespräch mit vielen Passanten vor der \"Baustelle\" wurde deutlich, dass manche Bürger glauben, dass es mit der Verwirklichung des Projektes der Stadt vielen besser gehen werde, obwohl nicht wenige die gleichen Fragen an die Dimension des vorgestellten Projekts haben wie die BI.\nAber sie fangen an zu resignieren, weil die Stadt diese Antworten weiter hinauszögert, heißt es vonseiten der BI.\nWie zu hören war, wirken sich auch die öffentlichen Äußerungen des Bürgermeisters aus.\nMai hatte in der Gemeinderatssitzung gesagt, dass er das Aus für das Thermalbad befürchtet, sollte die Bevölkerung beim Bürgerentscheid gegen die Pläne für einen Bade- und Wellnesskomplex auf der Schweizer Wiese stimmen.\nManche erscheinen deswegen geradezu verängstigt, andere empfinden sie als \"plumpen Erpressungsversuch\" an der Bevölkerung, heißt es in der Pressemitteilung der BI weiter.\nDie BI dankte den Spendern für die Farbe und allen Helfern.\nRangnick-Schelte für Schiris: Mane kein Schwalbenkönig\nSo zufrieden Ralf Rangnick mit der aktuellen Hochform von Bundesliga-Tabellenführer Red Bull Salzburg auch ist, so enttäuscht zeigte sich der Sportdirektor der \"Bullen\" von den Schiedsrichtern.\n\"Es gibt derzeit eine gefährliche Tendenz, dass Mane und Alan in die Kategorie Schwalbenkönige gedrängt werden\", nahm er die beiden Offensivwirbler am Donnerstag auf einer Pressekonferenz in Salzburg in Schutz.\nJüngster Anlass für Rangnicks Kritik war Gelb für Mane beim 3:0 gegen Grödig am vergangenen Sonntag, bei dem dem Senegalesen eine angebliche Schauspielerei zum Verhängnis wurde - die freilich keine war, wie die TV-Bilder zeigten.\n\"Eine krasse Fehlentscheidung\", meinte Rangnick, der Schiedsrichter Harkam als \"völlig überfordert\" bezeichnete.\nHarkam hätte zudem \"seinen Teil\" zur Eskalation zwischen Salzburg-Coach Roger Schmidt und Grödig-Trainer Adi Hütter nach der Partie beigetragen.\nSeinen deutschen Landsmann verteidigte er dezidiert: \"Da hätte ich mich in jeder einzelnen Situation gleich verhalten wie Roger Schmidt\".\nSchmidt selbst will nach dem Scharmützel mit Hütter keinen Kontakt mit seinem Kollegen gehabt haben.\nIch wüsste nicht, wieso.\n\"Denn ich bin derjenige, der beleidigt wurde\", betonte der 46-Jährige.\nAngesichts des Erfolgslaufs stimmte Rangnick aber eine Lobeshymne an.\n\"Dafür gibt es nur zwei Worte: Richtig gut\", konstatierte er.\nEs gibt nicht viel auszusetzen.\nVor allem die Art und Weise, wie die Mannschaft spielt, ist beeindruckend.\nDas soll ruhig so weitergehen.\nKaderänderungen in der Winter-Transferzeit werde es kaum geben.\nEs gibt keine großartigen Gründe, etwas zu verändern.\n\"Außer ein Spieler tritt mit dem Wunsch heran, dass er den Verein verlassen will\", stellte Rangnick klar.\nSupreme Court bestätigt Obamas Gesundheitsgesetz\nEs ist ein großer Sieg für die Regierung Obama: Der US-amerikanische Supreme Court entschied heute, dass das eng mit Barack Obama verknüpfte Gesundheitsgesetz verfassungsmäßig ist.\nMit fünf zu vier Stimmen urteilten die Richter, dass das Einzelmandat des Patient Protection and Affordable Care Act – es zwingt US-amerikanische Bürger, bis 2014 eine Krankenversicherung abzuschließen oder eine Strafe zu zahlen – im Rahmen der Steuerautorität des Staates verfassungsmäßig ist.\nDer oberste Richter John Roberts schlug sich auf die Seite der vier liberaleren Mitglieder der Kammer, während die Richter Scalia, Thomas, Alito und Kennedy dagegen entschieden.\nDas Gericht bestätigte auch die restlichen Abschnitte des 2700 Seiten umfassenden Gesetzes und vertrat außerdem die Ansicht, die Vorgabe des Gesundheitsgesetzes, wonach Bundesstaaten entweder die Zugangsvoraussetzungen für Medicaid erweitern müssten oder ansonsten sämtliche staatlichen Medicaid-Förderungen gestrichen würden, sei nicht verfassungswidrig einschränkend.\nDas Klageverfahren gegen das Gesetz war von 26 Bundesstaaten und der National Federation of Independent Business angestrengt worden.\nDas Gesetz war von allen führenden republikanischen Präsidentschaftskandidaten, einschließlich des letztendlichen Herausforderers Mitt Romney, im Vorwahlkampf 2012 entschieden abgelehnt worden.\nNorwegen: Norwegischer Ort macht sich mit Riesenspiegeln Licht\nMit riesigen Spiegeln haben die Einwohner eines norwegischen Örtchens Licht in ihr düsteres Tal gebracht.\nWegen des niedrigen Sonneneinfallgrades versinkt das im Vestfjord-Tal gelegene Rjukan von Herbst bis Frühling normalerweise im Schatten der umliegenden Berge.\nMit drei gigantischen Reflektoren in 45 Metern Höhe wurde am Mittwoch ein Jahrhunderttraum wahr.\n\"Endlich!\", schwärmte Bürgermeister Steinar Bergsland bei der Startzeremonie im Sender TV2.\nEinige Talbewohner rückten sich Sonnenstühle zurecht, andere setzten sicherheitshalber Sonnenbrillen auf.\nBisher mussten Sonnenhungrige im Winter mit einer Seilbahn auf einen nahen Gipfel fahren.\nVor zehn Jahren hatte der lokale Künstler Martin Andersen den Vorschlag präsentiert, die Strahlen mit Spiegeln ins Tal zu lenken.\nDiese Grundidee gab es aber schon seit 1913 im Ort.\nNach mehrjähriger Debatte hatte der Stadtrat schließlich das 5 Millionen Kronen (rund 615 000 Euro) teure Projekt verabschiedet.\nEine ähnliche Konstruktion verschafft seit einigen Jahren dem italienischen Alpenort Viganella winterlichen Sonnenschein.\nPost leert kaum noch sonntags\n\"Viele Bürger werden es noch nicht gemerkt haben, die roten Punkte für die Sonntagsleerung befinden sich noch an verschiedenen Briefkästen der Kernstadt und den Stadtteilen, aber liest man das Kleingedruckte an den gelben Behältern der Post AG, findet man schnell heraus, dass die Leerung an Sonn- und Feiertagen nicht mehr stattfindet\", teilt die FDP mit.\nEine Anfrage der FDP habe das bestätigt.\nAn Sonn- und Feiertagen werde nur noch vor dem Postgebäude in der Ernst-Ludwig-Straße 36 und in der Jakob-Müller-Straße 1 in Hüttenfeld geleert.\nOb in Hofheim und Rosengarten auch noch Sonntag geleert wird, werde in der Antwort auf die Anfrage der FDP nicht beantwortet.\nDer sozial- und jugendpolitische Sprecher der FDP, Fritz Röhrenbeck, will hier nachhaken.\nDie Sonntagsleerung ist gerade bei Terminpost ein wichtiger Postservice.\n\"Diesen dünnt diese Unternehmung trotz der Preiserhöhung für Briefe am Januar 2013 radikal und unzumutbar aus\".\nThomas Bittner, Fraktions- und Stadtverbandsvorsitzender der Liberalen, unterstützt seinen Fraktionskollegen: \"Was mich ärgert, ist die Tatsache, dass hier klammheimlich die Leerungszeiten geändert oder auch gestrichen werden\".\nVon Bürgernähe ist die Post dabei meilenweit entfernt.\n\"Mindestens müssen die Briefkästen in den Stadtteilen Neuschloß und Rosengarten wieder sonntags geleert werden\", so Bittner und Röhrenbeck unisono.\nAuch für die Kernstadt gelte, besonders nicht mobile Mitbürger müssten einen Briefkasten mit Sonntagsleerung auch fußläufig erreichen können.\nRöhrenbeck fragte im Stadtparlament, ob die Stadtverwaltung Gespräche mit der Post über diese Sache plant.\nBürgermeister Erich Maier antwortete, die Post habe nicht mit Lampertheim kommuniziert.\nSeines Wissens gebe es aber in Hofheim auch eine Sonntagsleerung.\nIhre Partei hat sich ja für Privatisierungen ausgesprochen.\n\"Dann werden Entscheidungen an anderer Stelle getroffen\", sagte Maier.\nFrankfurter Parkgebühren sollen kräftig steigen\nParken in Frankfurt könnte bald empfindlich teurer werden.\nDer Magistrat der Stadt berät heute Vormittag über eine Vorlage von Verkehrsdezernent Stefan Majer (Grüne).\nDemnach sollen die Parkgebühren um 50 Prozent erhöht werden.\nDafür sollen aber nicht die Preise angehoben, sondern das Zeitintervall von Parkuhren und Parkscheinautomaten von 30 auf 20 Minuten verkürzt werden.\nIm Dezember muss dann noch die Stadtverordnetenversammlung entscheiden.\nDer Einzelhandelsausschuss der IHK Frankfurt hält das \"für keine gute Idee\".\nDie Parkmöglichkeit unmittelbar vor dem Geschäft sei \"ein nicht zu unterschätzender Vorteil für kleinere Fachhändler\".\nDer Verkehrsclub Deutschland ist der Meinung, dass eine Erhöhung nach zwei Jahrzehnten \"durchaus angemessen und eigentlich längst überfällig\" ist.\nDer öffentliche Nahverkehr werde auch teurer.\nFreudenstadt: Schnelle Aktionen überrumpeln Gastgeber\nMit einem schmalen Kader mussten die Herren I des TSV Freudenstadt in der Schiller-Schulturnhalle in Reutlingen gegen die TG Gönningen von der Schwäbischen Alb antreten.\nDie Älbler standen zwar mit einer erfahrenen Mannschaft auf der anderen Netzseite.\nBald zeigte sich aber, dass sie, auch altersbedingt, mit den schnellen Aktionen der Freudenstädter nicht ganz mithalten konnten .\nMit den harten und platzierten Aufschlägen taten sich die Gönninger äußerst schwer.\nWiederholt verpassten sie die von Simon Schenk und Eduard Schulz sauber über die Netzmitte zugespielten Pässe und Angriffe und waren bei der Blockabwehr nicht zur Stelle.\nZwei hohe erste Satzgewinne drückten deutlich die Überlegenheit der Freudenstädter in allen Belangen aus.\nAngesichts dieser erdrückenden und spielbestimmenden Leistung wurde dann der dritte Satz etwas lasch und lustlos zum 3:0-Endstand (25:13, 25:14, 25:22) gewonnen.\nDa wird am 2. November mit dem TV Baiersbronn, der sich in Nagold klar durchsetzen konnte, ein wesentlich leistungsstärkerer Gegner auf dem Feld stehen.\nTSV Freudenstadt I: Dominik Bäuerle, Yannik Büchle, Sebastian Dölker, Felix Pälchen, Stefan Räller, Simon Schenk und Eduard Schulz.\nIn der B-Klasse standen sich in der Murgtalhalle in Baiersbronn die zweiten Mannschaften aus Baiersbronn und Freudenstadt gegenüber.\nSie lieferten ein hart umkämpftes Zwei-Stunden-Match ab.\nNervosität auf beiden Seiten verursachte vor allem bei der Ballannahme Fehler und Punktegeschenke; auch bei den Pässen war die Präzision zuweilen Mangelware und in einigen kritischen Spielszenen verhinderte der Übereifer den Blick für mögliche Punktgewinne.\nIn dieser leistungsmäßig sehr ausgeglichenen Begegnung stimmte im TSV-Team von Marcus Blasutto aber durchweg der große körperliche Einsatz und ein erfreuliches Engagement beider Teams.\nPflegetag an der kleinen Engländerhütte\nZum mittlerweile fünften Pflegetag in der Nachfolge des Natura 2000-Projektes oberer Hotzenwald traf sich eine Gruppe engagierter Teilnehmer bei der kleinen Engländerhütte in Ibach.\nAufgrund von Anregungen aus der Bevölkerung sollte an diesem Tag im Bereich der Hütte der Blick ins Tal freigeschnitten werden, sagte Bürgermeister Helmut Kaiser.\nViele Wanderer bezeichneten, so Kaiser, diesen Bereich als das Glanzstück des Schluchtensteigs, auf dem die Landschaft den idealen Rahmen für herrliche Ausblicke biete.\nEr dankte den Anwesenden für ihre Bereitschaft zur Mitarbeit und betonte, der Pflegetag sei ein geeignetes Instrument, um die Verbindung von Mensch und Natur zu stärken.\nEr biete jedem Bürger die Möglichkeit, in der Natur selbst Akzente zu setzen.\nZugleich mit dem touristischen Aspekt könne auch der ökologische Berücksichtigung finden.\nDiesen ökologischen Aspekt erläuterte Friederike Tribukait von der Abteilung Naturschutz des Regierungspräsidiums Freiburg im Anschluss an die Begrüßung durch Landrat Tilman Bollacher, der die Schirmherrschaft übernommen hatte und der Aktion ein gutes Gelingen wünschte.\nDas touristische Ziel des Weitblicks deckt sich laut Tribukait mit dem Ziel, das inzwischen stark zugewachsene alte Allmendweidfeld mit seinen spezifischen geschützten Lebensraumtypen zu erhalten durch Öffnung und Verbindung zu den noch bestehenden Weiden hin.\nBestimmte Arten wie etwa seltene Schmetterlinge und Grashüpfer können Barrieren in Form von Waldflächen nicht überwinden.\nSie benötigen diese freien Verbindungen zur Arterhaltung.\nTribukait sagte, sie wolle es an dieser Stelle nicht versäumen, eine Lanze zu brechen für das geplante Biosphärengebiet.\nIn diese Planung füge sich die aktuelle Maßnahme nicht nur nahtlos ein.\nEin Biosphärengebiet biete auch die Chance zu nachhaltiger ökonomischer wie ökologischer Entwicklung auf der Basis des international anerkannten Unesco-Status und somit eine kontinuierliche Ergänzung des mit dem Life-Projekt sowie den bisherigen Pflegetagen Erreichten für die Zukunft.\nNach diesen verschiedenen Ausführungen teilten Revierleiter Christoph Wehle und Life-Projektmanagerin Cornelia Bischoff die Helfer in Gruppen ein.\nDie größeren Bäume waren im Vorfeld bereits geschlagen worden, der Forstschlepper stehe gegebenenfalls abrufbereit.\nEine Gruppe von Helfern sollte sich um die Freistellung von Wacholderbüschen und um die Pflege eines Trockensteinriegels kümmern.\nZiel war die freie Sicht am Aussichtspunkt.\nLöffingen: Köpfler immer noch einziger Kandidat\nInformationen im Internet: Obwohl das Baarstädtchen Löffingen mit seinen 7514 Einwohnern, einer intakten Infrastruktur, einer zukunftsweisenden Schul-, Kinder-, Jugend- und Seniorenpolitik, sowie eigenen Stadtwerken als attraktive Stadt bezeichnet werden kann, hat sich bisher noch kein zweiter Bürgermeisterkandidat gemeldet.\nAls einziger Kandidat um die Nachfolge des aus Altersgründen nicht mehr kandidierenden Bürgermeisters Norbert Brugger steht bisher der 46-jährige Bankkaufmann und Betriebswirt Dieter Köpfler aus Löffingen fest.\nDie Bewerbungsfrist läuft am Montag, 11. November, um 18 Uhr ab.\nGoogle, Samsung, Huawei wegen Nortel-Patenten verklagt\nDie Gruppe, die Tausende früherer Nortel-Patente besitzt, strengte am Donnerstag eine Lawine von Klagen wegen Patentverletzung gegen Handyhersteller an, darunter auch Google, das Unternehmen, das bei der Insolvenzversteigerung von Nortel von ihm überboten wurde.\nRockstar, das Konsortium, das die Nortel-Patente für 4,5 Milliarden US-Dollar gekauft hatte, verklagte Samsung Electronics Co Ltd, HTC Corp, Huawei und vier andere Unternehmen wegen Patentverletzungen vor dem US-Bezirksgericht in Texas.\nRockstar befindet sich im Gemeinschaftsbesitz von Apple, Microsoft, BlackBerry, Ericsson und Sony.\nGoogle wird in sieben Fällen der Patentverletzung bezichtigt.\nDie Patente beträfen Technologie, die Suchbegriffe im Internet mit relevanter Werbung in Übereinstimmung bringe, so die Klage, die damit den Kern von Googles Suchmaschinengeschäft trifft.\nVertreter von Samsung, Huawei, HTC und Rockstar waren nicht unmittelbar erreichbar.\nSamsung, Huawei und HTC stellen Handys her, die mit Googles Betriebssystem Android arbeiten, das in scharfem Wettbewerb zu den Mobilprodukten von Apple und Microsoft steht.\nIm Jahr 2011 gab Google ein anfängliches Gebot über 900 Millionen Dollar für die Nortel-Patente ab.\nGoogle steigerte sein Angebot mehrmals und bot zuletzt 4,4 Milliarden US-Dollar.\nNachdem es bei den Nortel-Patenten von Rockstar überboten wurde, erwarb Google Motorola Mobility für 12,5 Milliarden US-Dollar, ein Geschäft, das auch zum Teil von Motorolas Bibliothek an Patenten motiviert war.\n„Obwohl Google mit seinem Versuch gescheitert ist, die Klagepatente bei der Auktion zu erwerben, hat Google die Patente verletzt und tut dies auch weiterhin“, so das Klageschreiben.\nRockstar fordert einen hohen Schadensersatz von Google, da es behauptet, Googles Patentverletzung sei absichtlich, so die Anschuldigung.\nÄgypten vereidigt ersten frei gewählten Präsidenten\nMohammed Mursi legt den Amtseid ab, doch sein Tag des Triumphs dürfte nicht das Ende der politischen Streitigkeiten in Ägypten bedeuten.\nDer Islamist Mohammed Mursi versprach ein „neues Ägypten“, als er als erster frei gewählter Präsident des Landes vereidigt wurde und damit die Nachfolge von Husni Mubarak antrat, der 16 Monate zuvor aus dem Amt vertrieben worden war.\nMit seiner Amtseinführung vor dem obersten Verfassungsgericht wurde Mursi auch zum ersten frei gewählten islamistischen Präsidenten der arabischen Welt und Ägyptens fünftes Staatsoberhaupt seit dem Sturz der Monarchie vor ungefähr 60 Jahren.\nEr legte den Eid vor den 18 in schwarze Roben gekleideten Richtern des Gerichts ab, das seinen Sitz am Nil hat und einem antiken ägyptischen Tempel nachempfunden ist.\n„Wir streben nach einer besseren Zukunft, einem neuen Ägypten und einer zweiten Republik“, sagte Mursi bei der feierlichen Zeremonie, die live im staatlichen Fernsehen übertragen wurde.\n„Heute hat das ägyptische Volk das Fundament für ein neues Leben gelegt – absolute Freiheit, eine echte Demokratie und Stabilität“, sagte der 60-jährige Mursi, ein in den USA ausgebildeter Ingenieur und Mitglied der Muslimbruderschaft, einer fundamentalistischen Gruppe, die seit ihrer Gründung vor 84 Jahren meist als verbotene Organisation von der jeweiligen Regierung scharf ins Visier genommen worden war.\nHunderte Soldaten und Polizisten bewachten das Gebäude, als Mursi kurz nach elf Uhr Ortszeit in einem kleinen Autokonvoi eintraf.\nNur ein paar Hundert Anhänger hatten sich vor dem Gericht versammelt, um dem neuen Präsidenten zuzujubeln, und im Gegensatz zum präsidialen Prunk aus der Mubarak-Zeit wurde der Verkehr nur kurzzeitig angehalten, damit der Autokonvoi die üblicherweise belebte Straße überqueren konnte, die das Stadtzentrum mit den südlichen Vorstädten verbindet.\nAls uncharismatisches „Ersatzrad“ der Bruderschaft verspottet hat sein persönliches Prestige seit seinem Sieg und einer Freitagsrede zugenommen, bei der er sich nicht nur als Kandidat der Islamisten, sondern all derer präsentierte, die die Bestrebungen des Aufstands aus dem Jahr 2011 gegen den autoritären Mubarak ans Ziel bringen wollten.\n„Ägypten ist heute ein ziviler, nationaler, verfassungsmäßiger und moderner Staat“, erklärte der in einen blauen Anzug mit roter Krawatte gekleidete Mursi den Richtern in der holzgetäfelten Kammer, in der er den Amtseid ablegte.\nSpäter fuhr Mursi zur Universität von Kairo, wo er seine Antrittsrede halten sollte.\nEr wurde offiziell von einer Armeekapelle begrüßt, die die Nationalhymne spielte, der er in Habachtstellung zuhörte.\nDer Militärführer Feldmarschall Hussein Tantawi war anwesend.\nBei seiner Ankunft wurde er von Hunderten Anwesenden im größten Hörsaal der Universität mit Sprechchören von „Die Armee und das Volk sind eine Hand“ begrüßt.\nDie im Jahr 1908 als Bastion säkularer Bildung errichtete Universität von Kairo hat sich in den 1970er Jahren zu einer Hochburg islamistischer Studentengruppen entwickelt.\nMursi legte am Freitag einen symbolischen Eid auf dem Tahir-Platz ab, der Geburtsstätte des Aufstands, der letztes Jahr zum Ende der autoritären Herrschaft Mubaraks führte, und er gelobte, präsidiale Machtbefugnisse zurückzufordern, die der Militärrat vom aus dem Amt gejagten Staatschef übernommen hatte.\nDoch mit dem Ablegen des offiziellen Eides vor dem Gericht und nicht wie üblich vor dem Parlament beugt er sich dem Willen des Militärs, was darauf hinweist, dass der Machtkampf weitergehen wird.\nMursis Rede auf dem Tahir-Platz war voller dramatischer populistischer Gesten.\nFalkenberger Discothek sorgt für zwei tollen Abende\nDie neue Saison in der Falkenberger Discothek \"Blue Velvet\" hat begonnen.\nAm heutigen Freitagabend heißt es \"Pump this party\", am morgigen Samstagabend geht es mit einer Ü 25-Party weiter.\nFette Beats und coole Sounds werden von den Veranstaltern natürlich an beiden Tagen versprochen.\nArbeiter stürzte von Leiter: schwer verletzt\nBeim Auswechseln eines defekten Außenfühlers stürzte am Donnerstag ein 51-jähriger Arbeiter in Eggelsberg von einer Leiter und verletzte sich schwer.\nDer Mann aus Lamprechtshausen wollte an der Außenfassade eines Gasthauses einen defekten Heizungsfühler auswechseln.\nAls er auf die an die Dachrinne angelehnte Leiter stieg, rutschte diese weg und der Mann stürzte auf den Betonboden.\nEr erlitt schwere Verletzungen und wurde mit dem Rettungshubschrauber \"Christophorus 6\" in das Landeskrankenhaus Salzburg gebracht.\nVergewaltiger in Südafrika: zweimal lebenslange Haft\nNeun Monate nach der brutalen Vergewaltigung und Verstümmelung eines 17-jährigen Mädchens in Südafrika ist der Täter am Freitag zu zweimal lebenslänglich verurteilt worden.\nDies berichtete der Sender SABC.\nDas Opfer war später an den Folgen der schweren Verletzungen gestorben.\nJohannes Kana war bereits Anfang der Woche des Verbrechens für schuldig befunden worden.\nDie Tat hatte landesweit Entsetzen ausgelöst.\nDer damals 21-Jährige hatte Anene Booysen im Februar in einem Industriegelände in Bredasdorp nahe Kapstadt vergewaltigt.\n14 Stunden kämpften die Ärzte um das Überleben des Opfers, jedoch vergeblich.\nDer Anblick der Jugendlichen war so entsetzlich, dass die Pfleger und Schwestern psychologischen Beistand brauchten.\nKana hatte während des Prozesses zugegeben, in der Tatnacht mit Booysen in einer Bar gewesen zu sein.\nEr gestand auch, sie geschlagen und vergewaltigt zu haben, jedoch bestritt er, für den Tod des Mädchens verantwortlich zu sein.\nDie Polizei war zunächst von mehreren Tätern ausgegangen, entließ jedoch zwei Verdächtige aus der Haft, weil die Beweise gegen sie nicht ausreichten.\nAuch die Staatsanwaltschaft betonte während des Verfahrens, sie sei überzeugt, dass Kana zum Zeitpunkt der Attacke allein war.\nVergewaltigungen gehören in Südafrika schon fast zum Alltag: Jährlich gibt es etwa 64 000 Anzeigen wegen sexueller Gewalt.\nDas sind fast zehnmal so viel wie in Deutschland, das aber mit 82 Millionen Menschen deutlich mehr Einwohner hat als Südafrika (50 Millionen).\nPolizei und Frauenverbände in Südafrika schätzen die Dunkelziffer bei sexueller Gewalt aber auf das 10- bis 25-fache.\nJumbo besucht den Schwarzwälder Schinken\nJumbo auf der Suche nach dem \"besten Schinken der Welt\": Für die TV-Sendung \"Galileo\" besuchte der Pro7-Star Bonndorf.\nDer Sprecher stellt gleich zu Beginn klar: Das wichtigste für den Schinken sind die Schweinekeulen, Turbomast ist dabei keine gute Voraussetzung.\nKann Schinken, den man in jedem Supermarkt bekommt, also ein Qualitätsprodukt sein?\nUli als Chef der großen Schinkenfabrik im Schwarzwald erklärt Jumbo die Arbeitsweise der Firma \"Adler\" in Bonndorf.\n\"Deutschlands liebster Schinken\", wie Jumbo den Schwarzwälder Schinken ankündigt.\nNur mit Haar-Schutz und Kittel kommt er ins Innere der Fabrik.\nAuch Jumbo muss sich erstmal die Hände desinfizieren, bevor er zum Mikro greifen darf.\nJumbo zur Stärkung bei Schnellimbiss in Waldshut gesichtet\n\"Hier wird mir rießigen Mengen gearbeitet\", staunen die Fernseh-Macher, Schwarzwälder Schinken als Massenprodukt.\n16.000 Keulen pro Woche sprechen für sich.\nGewicht, Fettanteil, Farbe: Uli erklärt worauf es bei der Qualität ankommt.\nDie meisten Schweine werden mit sechs Monaten geschlachtet.\nFernsehen mit Niveau?\nAuch Einzelheiten wie der Ph-Wert des Fleisches spielen eine Rolle.\nJe dunkler das Fleisch, desto höher der ph-Wert.\n\"Da bin ich gespannt, wenn ihr Roberto Blanco messt, was dann passiert\", so Jumbo zynisch.\nHier wird das Niveau des Privatfernsehens in Reinkultur präsentiert.\nAber das Zuschauen lohnt sich trotzdem.\nDer Zuschauer sieht, dass das Zerlegen der Keulen weiterhin Handarbeit ist.\nDenn: Schwarzwälder Schinken ist traditionell ohne Knochen im Regal zu finden.\nDas Geheimnis des Schinkens ist die Gewürzmischung mit dem Salz.\nRauchturm und Rauchfeuerung erinnern Jumbo optisch an ein \"U-Boot\".\nDer Trick: Tannenzweige sorgen hier im Rauch für den besonderen Geschmack des Schwarzwälder Schinkens.\n20 Tage im Rauch machen den Schinken schließlich fast schwarz.\n\"Jetzt verschwindet die Scheibe im Jumbo\", kündigt er die Test-Verspeisung an.\n\"Der ist richtig lecker\", so das Fazit des TV-Stars.\nDamit werden alle Beteiligten leben können.\nSie dachten, Reisebüros gehören dank Internet der Vergangenheit an?\nFlight Centre scheint sich dem Trend zu widersetzen.\nDas Unternehmen hat seine Gewinnaussichten für das Gesamtjahr erhöht und erwartet Rekordeinnahmen von Urlaubern in Australien und Großbritannien.\nDas Reiseunternehmen geht jetzt von einem bereinigten Jahresgewinn vor Steuern zwischen 325 und 340 Millionen Dollar aus, verglichen mit 305 bis 315 Millionen Dollar in seiner früheren Prognose.\nWenn die aktuellen Zielwerte erreicht werden, dann bedeutet das ein Wachstum von 12 bis 17 Prozent im Vergleich zum Rekordgewinn von 290,4 Millionen Dollar im Zeitraum 2011/12.\nWie Geschäftsführer Graham Turner bekannt gab, erzielte Flight Centre im ersten Halbjahr acht Prozent Gewinn und verbuchte einen starken Start ins zweite Halbjahr, besonders im australischen und britischen Privatgeschäft.\n„Seit Jahresbeginn sind unsere zehn Länder profitabel und einige davon befinden sich auf gutem Wege in Richtung Rekordjahreseinnahmen vor Zinsen und Steuern“, erklärte er.\nDazu gehören Australien und Großbritannien, die typischerweise zu unseren stärksten Ergebnisträgern gehören.\nIn Australien hat sich die Freizeitbranche in der zweiten Jahreshälfte erholt, was einen leicht schwächeren Markt für Geschäftsreisen ausglich.\nÄhnlich gut lief es für das Freizeitgeschäft von Flight Centre in Großbritannien, während auch hier die Geschäftskunden weniger ausgaben.\nDas US-Geschäft erholte sich gegenüber dem saisonbedingt schwächeren ersten Halbjahr, sodass für das dritte Jahr in Folge ein Gewinn für das Gesamtjahr erwartet wird.\nDie Aktien von Flight Centre stiegen gestern um 3 Cent auf 38,20 Dollar.\nSchulen werden zu größerem Fokus auf Mathematik, Rechtschreibung und Grammatik angehalten\nIn Kursen zu englischer Literatur müssen Schüler künftig mindestens ein Stück von Shakespeare, einen Roman des 19. Jahrhunderts, romantische Lyrik und zeitgenössische britische Romane ab 1914 behandeln.\nIn die Prüfung finden auch „ungesehene Texte“ Eingang, um zu breiterem Lesen anzuregen.\nDer kombinierte Kurs aus englischer Literatur und Sprache wird abgeschafft.\nAb 2015 müssen Schüler eine eigenständige GCSE-Prüfung für Sprache ablegen, wobei es starke Anreize dafür gibt, englische Literatur als separate Qualifikation zu wählen.\nDas Bildungsministerium wird morgen die neuen Lehrpläne für Englisch und Mathematik veröffentlichen – die ersten Fächer, die radikal umgestaltet wurden.\nAndere Kernfächer werden nächstes Jahr geändert.\nIn einer separaten Initiative wird Ofqual, die Aufsichtsbehörde für Prüfungen, eine Neuorganisation der GCSE-Strukturen bekannt geben, einschließlich eines neuen Benotungssystems und weniger Kursarbeit.\nIn einer Rede im Sommer sagte Bildungsminister Michael Gove, dass es einen „breiten Konsens gibt, dass wir unser Prüfungssystem reformieren müssen, um das öffentliche Vertrauen wiederherzustellen“, wobei er betonte, die GCSEs würden „herausfordernder, ambitionierter und strenger“ werden.\nStudien zeigen, dass in englischen Schulen weniger Zeit für Mathematik aufgewendet wird – 116 Stunden pro Jahr oder drei Stunden wöchentlich pro Schuljahr – als in den meisten anderen Ländern.\nDemgegenüber unterrichten australische Schulen durchschnittlich 143 Stunden jährlich und Schüler in Singapur erhalten 138 Stunden.\nZwar wird es keine formelle Anforderung geben, im Stundenplan mehr Zeit für Mathematik vorzusehen, doch aus Koalitionskreisen heißt es, die umfassende Matheprüfung – kombiniert mit einer stärkeren Gewichtung des Fachs in Ranglisten – werde Schulen vermutlich dazu ermutigen, mehr Stunden anzusetzen.\nIm Lehrplan wird mehr Augenmerk auf „Probleme aus dem richtigen Leben“ gelegt, einschließlich Finanzmathematik.\nSchöne Tiere und leckere Torten locken\nDie schönsten Kaninchen verschiedener Rassen und Farbenschläge präsentiert die Kreisverbandsleistungsschau an diesem Wochenende im Bürgerhaus.\nDie Bewertungen wurden bereits am Donnerstag vorgenommen\nErneut richtet der Ortsverein W514 diese große Ausstellung aus.\nZüchter der im Kreis Soest bestehenden Vereine zeigen hier ihre besten Tiere wie auch junge Wickeder Hobbyhalter ihre Kaninchen.\nAm Donnerstag nahmen sechs Preisrichter die Bewertung der zahlreichen Kaninchen vor und konnten dabei herausragende Tiere auszeichnen.\nDie Besucher der Schau werden bestens informiert, da die Beurteilung aller Tiere an den Käfigen angebracht ist.\nDie offizielle Eröffnung der Ausstellung nimmt Bürgermeister Hermann Arndt Samstag um 14.30 Uhr vor.\nFür alle Besucher geöffnet ist die Kaninchenschau am Samstag bereits ab 10 Uhr sowie am Sonntag von 10 bis 15.30 Uhr, woran sich die Siegerehrung anschließt.\nDie Gäste sind auch zu einer mit stattlichen Sachpreisen bestückte Tombola und zu einer lecker bestückten Cafeteria eingeladen.\nPamela Anderson trennt sich von ihren legendären blonden Locken und tritt erstmals mit neuem Bubikopf auf.\nPamelas blonde Locken sind seit ihrer Rolle in der Fernsehserie Baywatch berühmt.\nPamela Anderson ist der neueste Star, der seine Fans mit einem drastischen neuen Haarschnitt schockiert.\nDie ehemalige Baywatch-Schönheit hat sich zugunsten eines platinblonden Kurzhaarschnitts von ihren langen blonden Locken getrennt.\nIhren neuesten Look präsentierte die 46-jährige Schauspielerin am Mittwoch in Los Angeles und stellte auch gleich einen Schnappschuss auf ihre Twitter-Seite.\nEs ist das erste Mal seit 20 Jahren, dass das blonde Sexsymbol kurze Haare hat, und wir lieben die sittsame Veränderung.\nWas halten Sie von Pammys Haar?\nVerraten Sie uns Ihre Meinung unten in den Kommentaren.\nSalem: Johanna Rahner beim Ökumenischen Gesprächsforum\nBeim nächsten Ökumenischen Gesprächsforum am Montag, 21. Oktober, im Neuen Museum des Schlosses geht es um das Thema \"Zur Hölle mit der Hölle - Theologische Überlegungen zum heutigen Umgang mit den letzten Dingen\".\nReferentin ist Professorin Johanna Rahner.\nDas Ökumenische Gesprächsforum ist eine Initiative der katholischen und evangelischen Kirchengemeinden Salem, des Schlosses Salem und des Kulturamtes Bodenseekreis.\nJohanna Rahner will im Forum der Frage nachgehen, wie denn heute die Menschen die \"letzten Dinge\" nach dem Tod einstufen.\nHätten die Menschen in den vergangenen Jahrhunderten davon zu viel gewusst und dabei auf jene Bilder von Himmel und Hölle gesetzt, \"die bis heute unsere Vorstellungen prägen\", so zeichne sich die zeitgenössische prophetische Lehre von den Hoffnungen auf Vollendung eher durch eine gewisse Verlegenheit oder gar Sprachlosigkeit aus.\n\"Die größere Hoffnung ist Christinnen und Christen durch die Religionskritik gehörig ausgetrieben worden\", sagt die Referentin.\nSie habe \"uns mit so vielen Fragezeichen versorgt, dass uns die Ausrufezeichen abhanden gekommen zu sein scheinen\".\nJohanna Rahner sagt weiter: \"Doch die entscheidende Herausforderung bleibt das Ärgernis des Todes\".\nDamit verbunden sei die Frage nach jener Sehnsucht, \"die davon träumt, dass am Ende alles gut sein möge\".\nJohanna Rahner, 1962 geboren in Baden-Baden, studierte von 1982 bis 1989 Katholische Theologie und Biologie an der Albert-Ludwigs-Universität Freiburg.\nSie promovierte 1997 zum Dr. theol., ebenfalls in Freiburg.\nDie Habilitation für Fundamentaltheologie und Ökumenische Theologie folgte 2003 an der Westfälischen Wilhelms-Universität.\nSeit 2010 hat Johanna Rahner einen Lehrstuhl für Systematische Theologie am Institut für Katholische Theologie der Universität Kassel inne.\nGeislingen: Mehr als 100 junge Katholiken vom Kleinen Heuberg bekräftigen bei der Firmung ihr Glaubensbekenntnis\nIn zwei Gottesdiensten sind 101 15- und 16-jährige Jugendliche der Seelsorgeeinheit Am Kleinen Heuberg gefirmt worden.\nDen Gottesdienst begleitete am Vormittag die Gruppe Laudato-Si, am Nachmittag der Jugendchor The Spirit.\nMit dem Empfang des Firmsakraments sagten die Jugendlichen Ja zu ihrer Taufe und erbaten die Kraft des Heiligen Geistes.\nDie Firmlinge hatten sich in den vergangenen Monaten, unter der Leitung von Diakon Reiner Dehner und der Mithilfe zahlreicher Gemeindemitglieder auf den großen Festtag vorbereitet.\nIn unterschiedlichen Projekten lernten sie dabei verschiedene Aufgaben des christlichen Gemeindelebens kennen und erlebten gemeinsam den Jugendtag in Untermachtal.\nIllmensee: Zweites Mountainbike-Rennen begeistert Teilnehmer\nBei herrlichem Wetter kamen 214 Fahrradfahrer nach Illmensee, um den Rundkurs über die Hügelketten rund um den See zu bewältigen.\nDas teilt Ulrich Knobel vom veranstaltenden Sportverein Illmensee mit.\nUnter den Teilnehmern waren, insbesondere auf der Kurzdistanz über 15 Kilometer und 300 Höhenmeter, auch zahlreiche Jedermannsradler, die ihr Hobby einmal in Wettkampfatmosphäre ausüben wollten.\nZwei Juniorenfahrer der deutschen Spitzenklasse waren in diesem Wettkampf ebenfalls am Start: Felix Bader aus Bad Waldsee und Pascal Treubel aus Aach-Linz kamen mit der Empfehlung gute Platzierungen bei den Deutschen Meisterschaften.\nDiese Beiden konnten setzten sich erwartungsgemäß vom Feld ab.\nWie im Vorjahr konnte Felix Bader einen kleinen Zeitvorsprung bis ins Ziel retten und verteidigte seinen Titel als Gesamtsieger der Kurzdistanz.\nAuf Platz zwei konnte sich erneut Pascal Treubel platzieren.\nBei den Damen war es Theresa Duelli vom Team Albtraum, die es ganz oben aufs Siegertreppchen schaffte.\nAuf Platz zwei und drei kamen Anne Adel aus Illmensee und Leonie Treiber aus Owingen.\nEine erfreuliche Entwicklung ist die zunehmende Anzahl von Fahrern, die in der Gemeinde wohnen oder arbeiten.\nNicht nur was das Leistungsvermögen betrifft, war die ganze Bandbreite an Sportlern vertreten.\nAuch die Altersstruktur reichte von zehn Jahren bei den Jüngsten bis zu über 70 Jahren bei den ältesten Startern.\nIm Hauptrennen waren in diesem Jahr noch mehr absolute Topathleten am Start.\nVier Fahrer konnten sich von den regionalen Spitzenfahrern absetzen.\nDarunter Philipp Pangerl, ein Mountainbike-Halbprofi vom Black-Tusk-Racing-Team.\nPangerl war zusammen mit einem Teamkollegen bereits zwei Mal Weltmeister im Zwölf-Stunden-Fahren.\nIn diesem Jahr wurde er Europameister in dieser Spezialdisziplin.\nMit dabei auch Roland Ballerstedt, der bereits zwei deutschen Meistertitel im Duathlon sein Eigen nennt.\nNach 45 Kilometern und 900 Höhenmetern kam es zu einem Wimpernschlagfinale im Zieleinlauf vor der Drei-Seen-Halle.\nPangerl raste als Erster über die Ziellinie.\nNur eine Sekunde dahinter konnte sich der Routinier Ballerstedt den zweiten Platz in der Gesamtwertung sichern.\nZeitgleich kamen dann Hermann und Warthmann als Dritte der Gesamtwertung ins Ziel.\nIn der Damenwertung war Christiane Cohsmann die Zeitschnellste im Hauptrennen.\nDen zweiten Platz sicherte sich Areane Blersch aus Binzwangen vor Natascha Werner aus Stuttgart.\nSportler und Helfer zeigten sich sehr zufrieden mit dem reibungslosen und gut organisierten Ablauf der Veranstaltung.\nUnterwegs durch Schlamm, Flüsse und Dschungel für kostenlose medizinische Versorgung\nDr. Georges Bwelle bringt kostenlose medizinische Hilfe in entlegene Dörfer in Kamerun\nBwelle und sein Team verbringen beinahe jedes Wochenende damit, Hunderte von Patienten zu behandeln\nIn dem westafrikanischen Land gibt es nicht viele Ärzte, nur einen für 5.000 Menschen\nStimmen Sie hier oder mit Ihrem Mobilgerät ab\nDr. Georges Bwelle gehört zu den Top 10 der „CNN Heroes of 2013“.\nSie können für ihn oder einen der anderen Helden in den Top 10 abstimmen, um ihn zum „CNN Hero of the Year“ zu wählen.\nDer Sieger erhält 250.000 Dollar zur Fortsetzung seiner außergewöhnlichen Arbeit.\n21 Jahre lang sah Georges Bwelle mit an, wie sein kranker Vater immer wieder das Bewusstsein verlor und zu Krankenhäusern reiste, die nicht über die Mittel verfügten, um ihm zu helfen.\nJamef Bwelle wurde 1981 bei einem Autounfall in der Nähe von Yaoundé, der Hauptstadt Kameruns, verletzt.\nZuerst hatte er nur einen gebrochenen Arm, doch dann bildete sich eine Entzündung, die sich auf sein Gehirn ausweitete und dort ein Hämatom verursachte, das ihn für den Rest seines Lebens beeinträchtigen sollte.\n„Es gab keine Neurochirurgen in Kamerun“, so Georges Bwelle.\nWir hätten ihn aus Kamerun herausgebracht, wenn wir das Geld gehabt hätten.\nStattdessen verbrachte Bwelle Jahre damit, seinen Vater in überfüllte Kliniken und Hospitäler zu begleiten, um dort die Behandlung zu bekommen, die sie zu bieten hatten.\n„Es ist nicht einfach“, kommentiert Bwelle.\nMan kann um fünf Uhr morgens das Haus verlassen und zum Krankenhaus rennen, um der Erste zu sein, und ist doch nicht Erster.\nEs gibt sehr viele Patienten.\nEinige Menschen sterben sogar, weil sie warten müssen.\nDie Situation hat sich kaum verändert, seit Bwelles Vater 2002 starb.\nIn Kamerun gibt es nur einen Arzt für je 5.000 Menschen, so die Weltgesundheitsorganisation.\nDemgegenüber liegt das Verhältnis in den Vereinigten Staaten bei einem Arzt für 413 Personen.\nDoch selbst wenn es einen Arzt für sie gäbe, könnten sich die meisten Kameruner den Besuch nicht leisten.\nZwei von fünf Menschen im Land leben unterhalb der Armutsgrenze und nahezu Dreiviertel der Gesundheitsausgaben im Land sind privat.\n„Das einzige Problem, das sie haben, ist die Armut“, sagt Bwelle.\nUnd die Armut macht es unmöglich, das Leben zu genießen.\nSeinen Vater und so viele seiner Landsleute leiden zu sehen ließ in Bwelle den Entschluss reifen, etwas dagegen zu unternehmen.\nDr. Georges Bwelle und sein Freiwilligenteam haben im letzten Jahr 700 kostenlose Operationen durchgeführt.\nEr wurde selbst Arzt und arbeitet als Gefäßchirurg im Central Hospital in Yaoundé.\nAußerdem gründete er eine gemeinnützige Organisation namens ASCOVIME, die an Wochenenden in ländliche Gegenden reist und dort kostenlose medizinische Versorgung anbietet.\nSeit 2008 haben er und seine Freiwilligengruppe knapp 32.000 Menschen geholfen.\nBeinahe jeden Freitag zwängen er und bis zu 30 Leute sich in Kleinbusse und fahren mit der verschnürten medizinischen Ausrüstung auf dem Dach über unbefestigtes Terrain in die Dörfer, die Hilfe benötigen.\nNicht immer verläuft alles reibungslos.\nSchon mehr als einmal mussten sie die Fahrzeuge durch Flüsse und Schlamm schieben.\nDoch wenn sie ankommen, werden sie wie Helden empfangen: ein Festessen, Gesang und Tanz und die beste Unterbringung, die der Ort zu bieten hat.\nIn diesen Dörfern ist kostenlose medizinische Versorgung wirklich ein Grund zum Feiern und Bwelle – mit seinem breiten Lächeln und seiner grenzenlosen Energie – ist gerne bei der fröhlichen Feier dabei.\nAm nächsten Morgen beginnt das Team dann mit der Untersuchung von Hunderten von Patienten.\n„Pro Fahrt behandeln wir 500 Personen“, so Bwelle.\nSie kommen aus einem Umkreis von 60 Kilometern um das Dorf – und das zu Fuß.\nJede dieser Wochenendkliniken bietet medizinische Versorgung in einer Reihe von Bereichen an.\nViele Leute werden wegen Malaria, Tuberkulose, Unterernährung, Diabetes, Parasiten und sexuell übertragbaren Krankheiten behandelt.\nAndere erhalten Krücken, gespendete Brillen oder kostenlose Geburtsurkunden – ein Dokument, das für die Schule erforderlich ist, sich aber viele arme Familien einfach nicht leisten können.\nAbends führt das Team einfache Operationen mit örtlicher Betäubung aus.\nDie Operationen finden normalerweise in einer Schule, dem Rathaus oder einer Wohnung statt; nach dem Eingriff stehen die Patienten auf und gehen in den Erholungsbereich, um Platz zu machen für den Nächsten.\nDie Beleuchtung für den OP und die Desinfektionsausstattung wird vom Generator der Gruppe gespeist und so arbeiten Bwelle und seine Freiwilligen bis in die frühen Morgenstunden am Sonntag.\nEs ist ein anstrengendes Pensum, aber die Dorfmusiker helfen normalerweise, das Team motiviert zu halten.\n„Sie trommeln die ganze Nacht, damit wir wach bleiben und unsere Arbeit fortsetzen können“, sagt Bwelle.\nAm Sonntag fährt das Team dann zurück in die Stadt, müde, aber stolz auf die geleistete Arbeit.\nDie Gruppe – eine Mischung aus kamerunischen Ärzten und ausländischen Medizinstudenten – hat im letzten Jahr 700 kostenlose Operationen durchgeführt und weiß, dass sie mit ihrer Arbeit einen enormen Unterschied für die Menschen bewirkt, denen sie hilft.\nEin Mann erklärte, dass die kostenlose Operation eines Leistenbruchs, die er erhalten habe, ihm nun ermögliche, wieder zu arbeiten.\n„Das verändert die Zukunft meiner Familie“, meinte der Mann.\nNeben den Wochenendkliniken und seiner Arbeit als Chirurg im Krankenhaus arbeitet Bwelle auch nachts in privaten Kliniken in Yaoundé.\nMit diesem zweiten Job finanziere er 60 % seiner gemeinnützigen Tätigkeit, so Bwelle; der Rest stamme aus privaten Spenden.\n„Ich weiß wirklich nicht, wann er schläft“, sagt Katie O'Malley, die im zweiten Jahr an der Drexel University in Philadelphia Medizin studiert und freiwillig in Bwelles Gruppe mitarbeitet.\nEr ist immer entweder im Krankenhaus oder versucht, Geld für die Organisation aufzubringen, damit er auf diese Kampagnen gehen kann.\nFür Medizin- und Krankenpflegestudenten wie O'Malley, die aus den USA und Europa kommen und Bwelle unterstützen, ist dies eine Chance, praktische Erfahrungen zu sammeln, die sie zu Hause nie bekommen würden.\n„Wir können bei Operationen dabei sein, wo wir helfen, Blut abzutupfen oder die Instrumente für Dr. Bwelle halten“, erklärt O'Malley.\nDas wäre in Amerika als Medizinstudent im zweiten Jahr niemals möglich.\nDie Studenten bezahlen ihre Reise nach Kamerun normalerweise selbst und bringen häufig gespendetes Sanitätsmaterial mit.\nSind sie aber erst einmal in Yaoundé, übernimmt Bwelle die Unterbringung, den Transport und die Anleitung.\n„Er ist ganz ohne Zweifel ein Held“, sagt O'Malley.\nEr widmet sein Leben dieser Organisation und sein Wunsch, dem kamerunischen Volk zu helfen, kennt keine Grenzen.\nFür Bwelle ist die beinahe ständige Arbeit keine Belastung.\nAnderen zu einem glücklicheren Leben zu verhelfen und damit ein Versprechen zu erfüllen, das er seinem Vater gegeben hat, bereitet ihm große Freude.\n„Ich bin so glücklich, wenn ich diese Arbeit mache“, meint Bwelle.\nUnd ich denke an meinen Vater.\nIch hoffe, er sieht, was ich tue.\nIch mache es, um Menschen wieder zum Lachen zu bringen und um die Schmerzen zu lindern.\nBesuchen Sie die Website von ASCOVIME und erfahren Sie, wie Sie helfen können.\nExzellent den Kampf gemeistert\nDie Rolle des Santiago, dem alten Mann in Hemingways Novelle \"Der alte Mann und das Meer\", ist Horst Janson auf den Leib geschnitten.\nJanson ist selbst ein alter Hase in seinem Metier, der Schauspielkunst.\nDem alten Mann Santiago kann keiner beim Fischfang etwas vormachen.\nSo ergänzen sich die beiden einfach großartig.\nMan meint fast, die Falten im Nacken des alten Mannes, von denen der Fischerjunge Manolo spricht, sehen zu können.\nWenn Santiago müde vom Leben gebeugt auf dem Stuhl sitzt, ist das bei Janson echt.\nDaneben ist die Rolle des alten Fischers durch und durch eine Charakterrolle, die Janson exzellent meistert.\nHemingway erzählte die Geschichte eines Kämpfers, eines mutigen Mannes, der nicht aufgibt und letztendlich durch sein Wissen und auch seine Willensstärke den Kampf gegen den Fisch gewinnt.\nJanson ist in weiten Strecken als Alleindarsteller auf der Bühne.\nEr schafft es, die Aufmerksamkeit des Publikums auf sich zu fokussieren, so dass seine Monologe keinen Moment langweilig sind.\nSeine Anstrengungen, den Fisch endlich an die Oberfläche des Wassers zu ziehen, sind so echt, dass die Zuschauer vergessen, dass das Meer doch nur aus blau beleuchteten Wasserflaschen besteht.\nRegisseur Jens Hasselmann lässt den alten Mann im Boot vor dem Fischerdorf agieren.\nIm Verlauf der Aufführung setzt er die jeweils aktive Szene ins Licht: Die Hütte von Santiago, die Bar der Sängerin Marie-Luise Gunst, die mit ihren Lieder und ihrer herrlichen Stimme das Lebensgefühl Kubas besingt.\nDie vier Musiker spielen Kubas Rhythmus dazu und sind zugleich Gäste der Bar.\nTourismus: Abstieg zu den Römern\nAuf rund 120 Metern Länge ist unterhalb von Köln ein Abwasserkanal aus der Römerzeit erhalten.\nWer Köln besucht, kommt am Dom nicht vorbei.\nRund 157 Meter ragen die beiden Türme in den Himmel und machen ihn zum zweithöchsten Kirchengebäude Europas.\nDoch nur wenige Besucher, die die beiden filigranen Kirchtürme bestaunen, ahnen, dass es auch unter dem Dom eine Menge zu entdecken gibt.\nRainer Schulze ist Experte in Sachen Kölner Unterwelt.\nTreffpunkt für seine Führungen ist das Service-Center von Köln-Tourismus direkt am Dom.\nDer Rundgang beginnt ganz unspektakulär: \"Wir fangen in der Tiefgarage an\", sagt Schulze.\nIn den siebziger Jahren wollten die Stadtväter eine autogerechte Stadt, und deshalb blieb von den Resten der alten Stadtmauer nur das stehen, was nicht zu groß war.\nDie meisten Benutzer des Parkhauses eilen deshalb heute auch an den römischen Überresten vorbei und stellen nur ihr Auto ab.\nDoch wer genauer hinschaut, entdeckt im Parkdeck D2 eine durch Metallgitterstäbe abgetrennte archäologische Fundstelle.\nZu sehen sind etwa fünf Meter hohe Ruinen aus handtellergroßen Steinen.\n\"Es sind Reste der römischen Stadtmauer, die in der zweiten Hälfte des ersten Jahrhunderts nach Christus erbaut wurde\", erzählt Schulze.\nBevor es wieder zurück ans Tageslicht geht, lässt Schulze die Teilnehmer auf der oberen Parkebene noch einen Blick in einen finsteren, 15 Meter tiefen Schacht werfen.\nDas ist der Brunnen des alten Domes, der leider auch kaum wahrgenommen wird.\nNächste Station des Rundgangs ist das Prätorium, und hier steigen die Teilnehmer wieder hinunter in die Tiefe.\nWir erleben hier den Amtssitz des einst mächtigsten Mannes nördlich der Alpen, des Prätors der CCAA.\nWas CCAA bedeutet, möchte eine Besucherin wissen.\n\"Die Abkürzung steht für \"Colonia Claudia Ara Agrippinensium\", was auf gut Deutsch so viel wie \"Stadt römischen Rechts und Stadt der Agrippinenser, gegründet unter Kaiser Claudius am Ort des Altars für den Kaiserkult\" bedeutet\".\nUnd beim Prätorium handelt es sich um den ehemaligen Statthalterpalast, das Machtzentrum des römischen Imperiums am Rhein.\nVom Vorraum der Ausstellung führt ein Tunnelzugang zum römischen Abwasserkanal, der hier auf rund 120 Metern Länge erhalten ist.\n\"Sie können ruhig ein Stück entlang der sogenannten Cloaca Maxima entlanggehen, wenn Sie wollen\", muntert Schulze die Gäste auf.\nEine Überraschung hat Schulze noch.\nNachdem er an der Kasse den Schlüssel geholt hat, führt er die Gruppe zu einem 16 Meter tiefen, begehbaren Schacht.\n\"Wir sind jetzt in der Mikwe, einem rituellen jüdischen Bad\", erklärt er.\nDie jüdische Gemeinde baute ihr Bad tief in den Boden, um an das Grundwasser zu kommen, das für die rituellen Waschungen unabdingbar war.\nBis heute sind im unteren Ende der Mikwe, deren Ursprünge bis ins achte Jahrhundert zurückgehen, unterschiedliche Wasserstände durch wechselnde Pegel des Rheins ablesbar.\nDie Mikwe wird Teil einer archäologischen Zone auf dem Rathausplatz, für das die Bauarbeiten in Kürze beginnen sollen.\nBis zur Fertigstellung werden aber noch einige Jahre vergehen.\nBein fast abgehackt: Neuauflage von Rocker-Prozess\nEine blutige Attacke im Rockermilieu wird nach über vier Jahre neu aufgerollt.\nEin Prozess wegen versuchten Totschlags, gefährlicher Körperverletzung und Sachbeschädigung gegen zwei 30-Jährige hat vor dem Landgericht Frankfurt (Oder) begonnen.\nEr wird von strengen Sicherheitsvorkehrungen begleitet.\nDie Angeklagten schwiegen zum Auftakt.\nSie sollen in der Rockerszene aktiv gewesen sein und damals zu den Bandidos gehört haben.\nDie Staatsanwaltschaft wirft ihnen vor, im Juni 2009 gemeinsam mit unbekannten Komplizen in Finowfurt auf drei Männer in einem Auto eingestochen und eingeschlagen zu haben.\nAlle Opfer wurden schwer verletzt, ein Mann hätte fast sein Bein verloren.\nDie Opfer sollen zur konkurrierenden Gruppierung Hells Angels gehört haben.\nEiner soll ein hochrangiges Mitglied aus Berlin gewesen sein.\nVorausgegangen war anscheinend eine Verfolgungsjagd mit mehreren Autos.\nLaut Anklage ging es um Revierkämpfe und eine Machtdemonstration.\nDie beiden Angeklagten waren Anfang 2012 in einem ersten Verfahren freigesprochen worden.\nEin Gerichtssprecher sagte damals, es habe nicht bewiesen werden können, dass die Männer an der blutigen Fehde tatsächlich beteiligt gewesen seien.\nDie Täter hatten Masken getragen und waren nicht erkannt worden.\nDer Bundesgerichtshof hob das Urteil nach Revision der Staatsanwaltschaft auf und verwies es zur erneuten Verhandlung an das Landgericht zurück.\nEiner der Angeklagten ist derzeit wegen eines anderen Deliktes im offenen Vollzug.\nZum Auftakt ging es vor allem um die Rekonstruktion der Abläufe in der Tatnacht.\nAls Zeuge war der damals ermittelnde Kommissar geladen.\nIm Zentrum standen Handygespräche der Angeklagten und weiterer Personen, die die Polizei abgehört hatte.\nSchwierig ist, dass sich Rocker vor Gericht fast immer an ein für sie ehernes Gesetz halten - und nicht aussagen.\nDas gilt auch für die Opfer.\nIm ersten Prozess hatte nur eines der Opfer ausgepackt.\nStaatsanwalt Stefan Golfier von der Staatsanwaltschaft Frankfurt (Oder) sagte auf Nachfrage, es seien seit dem letzten Verfahren neue Spuren aufgetaucht.\nFür den Prozess sind elf weitere Verhandlungstage angesetzt.\nDie Wegwerfgesellschaft denkt nicht\nDie Nacht war lang, die Musik laut und die Stimmung gut, aber irgendwann geht es nach Hause.\nNur: In den Bäuchen der Leute auf dem Beifahrer- und Rücksitz macht sich der Hunger bemerkbar.\nKlar, dafür mag der eine oder andere Cocktail oder Sekt verantwortlich sein!\nWas liegt da näher, als gechillt zum nächsten Drive-In zu fahren, um sich eine Kleinigkeit zu gönnen?\nIch gebe zu, ich bin gerne mit dabei, wenn es spätnachts beziehungsweise frühmorgens ans Fastfood-Holen geht.\nEin paar Pommes, eine Cola, ein Burger - und dann nix wie ab nach Hause und ins Bett!\nDoch auf dem Heimweg machen sich die offensichtlichen Unterschiede zwischen mir und anderen hungrigen Disco-Gängern bemerkbar.\nDenn was muss einem fehlen, dass man mit steter Regelmäßigkeit seine Fastfood-Tüten aus dem Autofenster wirft?!\nVor allem an den Wochenenden liegen weggeworfene Papiertüten an Straßenrändern und auf Parkplätzen.\n\"Wieso?\", frage ich mich.\nSind die Leute zu doof, um die Tüten mit nach Hause respektive bis zum nächsten Mülleimer zu nehmen?\nEs ist ja nicht nur so, dass das Papierzeugs die Landschaft verschandelt.\nTüten haben auch schon Verkehrseinrichtungen wie Leitplanken verdeckt und dadurch Unfälle ausgelöst.\nÜber so was denkt besagte \"Wegwerfgesellschaft\" aber nicht nach, vermutlich weiß sie nicht einmal, was dieses Wort eigentlich bedeutet.\nWenn man abends öfter unterwegs ist, erst recht mit mehreren Leuten im Auto, weiß man, wie eine Rückbank nach durchfeierten Nächten aussehen kann: Klamotten, Flaschen und sonstiger Müll türmen sich da.\nDa würden ein paar Tüten mehr oder weniger doch auch nix ausmachen - im Gegensatz zur Straße, wo keiner auf den Essensresten anderer rumtrampeln will.\nIch sehe ja schon den Tag kommen, an dem den Städten und Gemeinden das Wegräumen zu blöd wird - und die Fastfood-Ketten für ihre Tüten Pfand verlangen müssen.\nObamas Rückzieher in der Gesundheitspolitik\nNach heftiger Kritik machte Präsident Obama gestern einen Rückzieher bei seinem häufig wiederholten, eindeutigen Versprechen: „Wenn Ihnen Ihre Krankenversicherung gefällt, dann können Sie sie behalten.“\nNachdem Hunderttausende von ihrem Versicherer ein Kündigungsschreiben erhalten haben, warfen die Republikaner dem Präsidenten in den letzten Tagen vor, er habe die amerikanische Öffentlichkeit getäuscht.\nGestern relativierte Obama sein ursprüngliches Versprechen.\n„Die überwiegende Mehrheit der Bürger, die eine funktionierende Krankenversicherung haben, können sie behalten“, sagte er bei einer Rede in Boston.\nAls Reaktion auf die zahlreichen Medienberichte zu den Kündigungen forderte Obama jene Amerikaner, die derartige Mitteilungen erhalten haben, auf, sich auf dem freien Markt nach einer neuen Versicherung umzusehen.\nDie meisten Bürger könnten so eine bessere, umfassendere Krankenversicherung für denselben Preis oder günstiger als prognostiziert erhalten.\n„Sie kommen ein besseres Angebot“, sagte er.\nDie Regierung bezeichnete es als wenig überraschend, dass sich die fünf Prozent der Bevölkerung, die selbst eine Versicherung abgeschlossen haben, nach einem anderen Tarif umsehen müssten, da ihr Vertrag nicht den neuen Standards nach dem Affordable Care Act entspreche.\n„Ich möchte diesen Amerikanern ganz direkt sagen: Sie haben Besseres verdient“, sagte Sebelius bei einer Anhörung vor dem Energie- und Handelsausschuss des Repräsentantenhauses in Washington.\nSebelius, die für die Umsetzung des Affordable Care Acts verantwortlich ist, erklärte, dass der Start der Online-Plattform seit Oktober „miserabel“ verlaufen sei.\n„Ich bin ebenso frustriert und wütend wie alle anderen auch“, sagte sie.\nIch bin entschlossen, Ihr Vertrauen zurückzugewinnen.\nDieser Ausspruch einer aufgebrachten Sebelius zu einem hinter ihr sitzenden Berater bei der gestrigen Anhörung im Repräsentantenhaus wurde nach einem Streitgespräch mit dem republikanischen Abgeordneten Billy Long aus Missouri aufgenommen. Dabei ging es darum, ob sie zur Teilnahme an Obamacare verpflichtet sein sollte.\nNach mehr als drei Stunden Anhörung bedrängte Long Sebelius wiederholt mit der Frage, warum die „Architektin“ des Affordable Care Acts nicht freiwillig auf eine staatlich geförderte Versicherung verzichtet habe, um selber einen Tarif bei HealthCare.gov abzuschließen, den sie nun Millionen von Amerikanern verkaufen wolle.\nRegierung in Jerusalem bestätigt Angriff auf syrischen Luftwaffenstützpunkt nicht\nEin amerikanischer Regierungsbeamter, der anonym bleiben wollte, hat am Donnerstag gegenüber dem amerikanischen Nachrichtensender CNN behauptet, israelische Kampfflugzeuge hätten einen Tag zuvor einen Luftwaffenstützpunkt im syrischen Latakia angegriffen.\nDas Ziel seien \"Raketen und zugehörige Ausrüstung\" gewesen, von denen die israelische Regierung befürchtet habe, sie seien für die libanesische Hisbollah bestimmt gewesen, hieß es laut CNN.\nSyrische und libanesische Medien sowie der arabische Sender Al-Arabiya hatten zuvor berichtet, dass der Stützpunkt in der Hafenstadt Latakia in der Nacht von Mittwoch auf Donnerstag beschossen worden sei, und die Israelis dafür verantwortlich gemacht.\nDer israelische Fernsehsender Channel 2 zeigte Satellitenbilder des Stützpunktes in Latakia, auf denen russische Abwehrraketen vom Typ S-125 Newa sowie eine Batterie von SA-3 Raketen zu sehen waren, die Channel 2 zufolge eine Reichweite von 35 Kilometern haben und Sprengköpfe bis zu 70 Kilogramm transportieren können.\nUnsicher Die Regierung in Jerusalem hat den Angriff offiziell nicht bestätigt.\nAllerdings zitiert die Nachrichtenagentur Reuters einen ebenfalls anonymen israelischen Regierungsbeamten mit den Worten, er glaube, dass Israel den Angriff ausgeführt habe, sei aber nicht sicher.\nEin Sprecher des israelischen Verteidigungsministeriums sagte jedenfalls: \"Wir kommentieren diese Berichte nicht\".\nDer Journalist Ron Ben-Yishai betonte in der Tageszeitung Yedioth Ahronoth, dass das syrische Regime bereits früher, teils erfolgreich, versucht habe, Boden-Luft-Raketen an die Hisbollah zu liefern.\nDie israelische Regierung hatte wiederholt davor gewarnt, dass jeder Versuch Syriens, die Hisbollah mit chemischen oder anderen gefährlichen Waffen zu versorgen, das Überschreiten einer \"roten Linie\" bedeute, dem eine militärische Antwort folgen würde.\nJohn Kerry erklärt in einem beispiellosen Eingeständnis, die US-Spionage sei „unangemessen zu weit gegangen“\nJohn Kerry deutete mit einem unerwarteten Eingeständnis ein Aufweichen der abwehrenden Haltung der USA in Bezug auf ihre Überwachungsprogramme an, indem er sagte, die Spionage sei in bestimmten Fällen „unangemessen zu weit gegangen“.\nDer Außenminister gab außerdem zu, er trüge gemeinsam mit Barack Obama die Verantwortung dafür, dass man auf „Autopilot“ geschaltet habe, als die explosiven Enthüllungen des Whistleblowers Edward Snowden über die Spionageaktivitäten der NSA öffentlich wurden.\nDurch die durchgesickerten Informationen ist die US-Regierung in einen diplomatischen Sturm der Entrüstung vonseiten ihrer Verbündeten geraten.\nBei einer per Videoverbindung übertragenen Rede auf der Open Government-Konferenz in London sagte Kerry: „Ganz ohne Frage haben der Präsident und ich sowie andere in der Regierung von einigen Dingen erfahren, die quasi per Autopilot abgelaufen sind, einfach weil die Fähigkeit dazu bestand, was noch auf den Zweiten Weltkrieg und die schwierigen Jahre des Kalten Krieges sowie natürlich auf den 11. September zurückgeht.“\nAnschließend gestand er als erstes hochrangiges Mitglied der US-amerikanischen Regierung ein, dass die US-Spionage eine Grenze überschritten habe, betonte aber auch, dass keine Rechte missbraucht worden seien.\nEr sagte: „In einigen Fällen ist das unangemessen zu weit gegangen.“\nDer Präsident ist entschlossen, Klarheit zu schaffen, und führt deshalb eine gründliche Untersuchung durch, damit niemand das Gefühl haben muss, hier finde Missbrauch statt.\nIch versichere Ihnen, dass die Rechte unschuldiger Personen in diesem Prozess nicht beeinträchtigt werden.\nKerry bestand allerdings darauf, dass die NSA eine Kraft des Guten sei und durch ihre Überwachungsvorgänge viele Leben gerettet worden seien.\nEr fügte hinzu: „Wir haben es mit einer neuen Welt zu tun, in der Menschen bereit sind, sich selbst in die Luft zu sprengen.“\nEs gibt einen radikalen Extremismus in der Welt, der versessen darauf ist, Menschen zu töten, in die Luft zu sprengen und Regierungen anzugreifen.\nWas wäre also, wenn man in der Lage wäre, das abzufangen und zu stoppen, ehe es passiert?\nWir haben tatsächlich Flugzeugabstürze, Anschläge auf Gebäude und die Ermordung von Menschen verhindert, weil wir im Vorfeld von solchen Plänen erfahren haben.\nUnterdessen werden US-amerikanische Gesetzgeber nach Europa reisen, um die Bedenken gegen die angebliche amerikanische Spionage zu zerstreuen und die Europäer von der Notwendigkeit zu überzeugen, bei den Anti-Terror-Bemühungen weiterhin mit den USA zusammenzuarbeiten, wie der Vorsitzende des Senatsunterausschusses für europäische Angelegenheiten am Donnerstag erklärte.\nSenator Chris Murphy aus Connecticut sagte, er habe diese Woche mit Vertretern des Europäischen Parlaments und anderen Personen gesprochen und sei besorgt wegen ihrer Drohungen, sich aufgrund der Frustration über die Überwachung durch die National Security Agency nicht mehr an Anti-Terror-Organisationen zu beteiligen.\n„Es ist sehr wichtig für die nationalen Sicherheitsinteressen der USA, dass die Europäer im Hinblick auf unsere gemeinsamen Anstrengungen gegen den Terrorismus mit an Bord bleiben“, erklärte Murphy, der als Demokrat erstmals im Senat sitzt und als Vorsitzender des Senatsunterausschusses für auswärtige Beziehungen und europäische Angelegenheiten tätig ist, in einem Interview in Washington.\nAußerdem gehe ich nach Europa, um dort klarzumachen, dass wir in der Terrorbekämpfung weiterhin zusammenarbeiten müssen, ungeachtet ihres Ärgers über die NSA-Programme.\nMedienberichte, wonach die NSA Millionen von Telefondaten in Europa erfasst hat, haben die Beziehungen zu einigen US-Verbündeten belastet, wenngleich der Leiter des Geheimdienstes diese Woche erklärte, die Berichte seien unzutreffend und basierten auf einem Missverständnis der Metadaten, die von Nato-Verbündeten gesammelt und mit den Vereinigten Staaten ausgetauscht worden seien.\nAndere Enthüllungen zitierten aus von Snowden weitergegebenen Dokumenten, wonach die NSA das Handy von Bundeskanzlerin Angela Merkel und bis zu 34 weiteren Staatsoberhäuptern weltweit überwacht habe.\nDer Leiter der nationalen Geheimdienste, James Clapper, verteidigte die Spionage bei Verbündeten als notwendig und erklärte, dies sei auf beiden Seiten üblich.\nIn all dem Tumult sagte Murphy, seine Behörde bereite die Reise des Kongresses vor, die dieses Jahr stattfinden soll, und hoffte, die Delegation werde Mitglieder aus beiden Parteien und Kammern umfassen.\nDie Namen der anderen teilnehmenden Abgeordneten sollen in den kommenden Tagen veröffentlicht werden.\nEr sagte, das genaue Reiseroute werde noch ausgearbeitet.\nWährend Murphy betonte, der Zweck der Reise sei die Verbesserung der Beziehungen, sprach er auch davon, dass es einige „ernste Worte“ geben würde.\nEr sagte, die europäischen Regierungen müssten ihrer Bevölkerung gegenüber ehrlich über die Art von Spionageprogrammen sein, die sie selbst seit Jahren einsetzten.\n„Zwar können wir unsere Überwachungsprogramme ändern und so die Rechte der Europäer besser schützen, diese müssen sich aber auch mit der Tatsache abfinden, dass wir nicht die einzigen sind, die spionieren“, so Murphy.\nWährenddessen steht für John Kerry am Wochenende eine Reise in den Nahen Osten und nach Polen an, um sich dort mit dem Groll über die US-amerikanische Strategie in Syrien, Ägypten und Iran sowie die US-amerikanischen Überwachungsaktivitäten auseinanderzusetzen.\nEine hartnäckige Verletzung am Sprunggelenk droht den Einsatz von Nicolai Müller im Bundesliga-Auswärtsspiel des FSV Mainz 05 beim FC Augsburg zu verhindern.\nMainz bnagt um einen Einsatz von Nicolai Müller.\nMorgen wird er versuchen, mit der Mannschaft zu trainieren.\nBisher konnte er das nur individuell.\n\"Wir werden kurzfristig über seinen Einsatz entscheiden\", sagte Trainer Thomas Tuchel.\nDer 40-Jährige hofft, seinen mit sechs Treffern besten Torschützen dabei zu haben.\nDenn die Mainzer müssen bereits auf die verletzten Leistungsträger Niki Zimling, Julian Baumgartlinger und Niko Bungert verzichten.\nAustralierin legt Berufung gegen Gefängnisstrafe in Thailand ein\nEine 21-jährige Frau aus Sydney, die in Phuket zu 15 Tagen Gefängnis verurteilt wurde, weil sie fälschlicherweise behauptet hatte, von einem Taxifahrer vergewaltigt worden zu sein, hat gegen das Urteil Berufung eingelegt und wurde auf Kaution freigelassen.\nStevie Rochelle Bamford wurde zunächst von einem Provinzgericht in Phuket am 15. Juni für schuldig befunden, eine Falschaussage gemacht zu haben, nachdem sie der thailändischen Polizei gegenüber angegeben hatte, ein lokaler Taxifahrer habe sie in den Morgenstunden am Sonntag, dem 10. Juni, vergewaltigt, während zwei andere Männer sie festhielten.\nSpäter allerdings zeigten die Aufnahmen einer Videokamera, dass sie sicher in ihr Hotel gelangt war, nachdem sie von ihrem australischen Freund getrennt worden war.\nDie Polizei in Phuket verhörte Bamford zwei Tage lang, bis sie gestand, sich die Geschichte ausgedacht zu haben.\nBis zur Gerichtsverhandlung befand sie sich vor Ort in Polizeigewahrsam.\nBamford wurde zu einer 15-tägigen Gefängnisstrafe in einer Haftanstalt mit niedriger Sicherheitsstufe am Rande Phukets verurteilt, statt in einem Gefängnis für erwachsene Frauen.\nSie ist die Tochter von Peter Tunks, einem ehemaligen Spieler der australischen Rubgy-Liga, der sich an das Außenministerium in Canberra mit der Bitte um Hilfe für seine Tochter gewandt hat.\nTunks erklärte gegenüber dem Sunday Telegraph in Sydney, die ganze Familie sei „extrem besorgt“ über das Wohlergehen seiner Tochter und wollte sie zurück in Australien haben.\n„Wir machen uns natürlich große Sorgen, aber wir hoffen, dass sie so bald wie möglich wieder zu Hause ist“, sagte Tunks.\nBamford hat gegen das Urteil Berufung eingelegt und ist gegen eine Kaution von 50.000 Baht auf freiem Fuß.\nIn australischen Berichten war zu lesen, dass sie in der Zwischenzeit im Ferienort Krabi in Südthailand Urlaub macht.\nVonseiten des Gerichts war zu hören, Bamford werde durch einen lokalen Anwalt in Phuket vertreten und sei gewarnt worden, dass die Berufung auch zur Verhängung einer höheren Strafe von bis zu zwei Jahren in einem Gefängnis für Erwachsene führen könne.\nAllerdings ist es auch möglich, dass Thailand nach der kürzlichen Ermordung der Reisekauffrau Michelle Smith in Phuket bemüht sein könnte, sein angeschlagenes touristisches Image zu verbessern, und es deshalb zu einem Freispruch kommt.\n"
  },
  {
    "path": "official/transformer/test_data/newstest2014.en",
    "content": "Gutach: Increased safety for pedestrians\nThey are not even 100 metres apart: On Tuesday, the new B 33 pedestrian lights in Dorfparkplatz in Gutach became operational - within view of the existing Town Hall traffic lights.\nTwo sets of lights so close to one another: intentional or just a silly error?\nYesterday, Gutacht's Mayor gave a clear answer to this question.\n\"At the time, the Town Hall traffic lights were installed because this was a school route,\" explained Eckert yesterday.\nThe Kluser lights protect cyclists, as well as those travelling by bus and the residents of Bergle.\nThe system, which officially became operational yesterday, is of importance to the Sulzbachweg/Kirchstrasse junction.\nWe have the museum, two churches, the spa gardens, the bus stop, a doctor's practice and a bank, not to mention the traffic from the 'Grub' residential area.\n\"At times of high road and pedestrian traffic, an additional set of lights were required to ensure safety,\" said Eckert.\nThis was also confirmed by Peter Arnold from the Offenburg District Office.\n\"According to current measurements, around 12,000 vehicles travel through the town of Gutach on the B33 on a daily basis, of which heavy goods traffic accounts for around ten per cent,\" emphasised Arnold.\nTherefore the construction of an additional set of lights was more than necessary: \"Here safety comes first, it's that simple,\" said Arnold.\nA total of four road safety inspections were carried out and a roundabout was also considered, however, this idea was rejected on account of the narrowness of the Sulzbachweg/Kirchstrasse junctions.\nAccording to Arnold, every possible test was carried out prior to the selection of the location for the traffic light posts: \"Using a goods vehicle loaded with particularly long tree trunks, we also tested whether such vehicles could access the B 33 from the Sulzbachweg without knocking over the traffic light posts\".\nThe traffic light system itself, which cost around EUR 15,000, is the \"most modern system that is currently available on the market,\" explained Arnold.\nThe system is fitted with coloured LEDs, which are bright enough that drivers can easily see the lights, even when the sun is low in the sky.\nAnd they are also energy-efficient: The older light systems consume around 100 Watts, with the new ones consuming just eight.\nThere are three sets of lights per direction of travel.\nArnold explained the technology used by the new system: It is fitted with two radar sensors.\nIf the pedestrian presses the button at the traffic lights, the top radar sensor checks the traffic status.\nIf the street is clear, the pedestrian obtains a green light immediately, if not, there is a delay of around 15 seconds.\nAn additional radar sensor checks whether the green phase for the pedestrian can be ended.\n\"If a group of people or if disabled persons are crossing the street, the green phase is extended, thus ensuring that everyone gets safely across the street,\" explained Arnold.\nOf course, drivers must also play their part and keep their eyes on the road.\nYesterday this was not the case: The light had barely turned green for pedestrians when a luxury vehicle sped through on a red light.\nFor more than 30 years, Josef Winkler has been writing from the heart, telling of the hardships of his childhood and youth.\nThe catastrophes of his Catholic village upbringing - the speechlessness, his tendency towards brute force and dulled sexuality, the confinement and lack of joy - all of this has been described many times by the Kaernten-born poet.\nThe Büchner prizewinner is known primarily as a writer of prose, with theatre texts something of a rarity for him.\nIn a collage of prose texts For his performance piece, \"Wetterleuchten auf der Zungenspitze\" (Summer lightning on the tip of your tongue), which can now be seen in Garage X on Petersplatz, Gerhard Fresacher ,creates a collage of prose texts.\nThe theatre producer has thus combined elements from the autobiographically inspired novel \"Der Leibeigene\" (1987) [The Bondsman] featuring prose miniatures from \"Leichnam, seine Familie belauernd\" (2003) [Corpse, stalking his family].\nOn the predominantly empty stage - with one important requirement: a crumpled sofa, on which cast members allude to copulating and masturbating - the eight-person ensemble work their way through the text material.\nHowever, Director Fresacher seems to have little trust in the text.\nThe 70-minute performance glosses over the script with a host of director's additions, well-known from the repertoire of post-dramatic theatrical styles.\nIn particular, the actresses play a major role in the sometimes rather dubious staging.\nThey are manhandled, their heads held under water, tacked to the wall by their evening gowns.\nWrapped in cellophane or in girdles, they stumble on dangerously high heels across the set, either delivering monologues at the top of their voices or lying completely silent on the stage.\nHowever, the source text makes barely any reference to this intense delivery.\nThe best moments of the evening is when the singing starts - tracks range from Deep Purple to traditional folk songs.\nOnly towards the end does the highly charged performance start to wind down, and we see flashes of Winkler's somewhat absurd sense of humour.\nA black box in your car?\nAs America's road planners struggle to find the cash to mend a crumbling highway system, many are beginning to see a solution in a little black box that fits neatly by the dashboard of your car.\nThe devices, which track every mile a motorist drives and transmit that information to bureaucrats, are at the center of a controversial attempt in Washington and state planning offices to overhaul the outdated system for funding America's major roads.\nThe usually dull arena of highway planning has suddenly spawned intense debate and colorful alliances.\nLibertarians have joined environmental groups in lobbying to allow government to use the little boxes to keep track of the miles you drive, and possibly where you drive them - then use the information to draw up a tax bill.\nThe tea party is aghast.\nThe American Civil Liberties Union is deeply concerned, too, raising a variety of privacy issues.\nAnd while Congress can't agree on whether to proceed, several states are not waiting.\nThey are exploring how, over the next decade, they can move to a system in which drivers pay per mile of road they roll over.\nThousands of motorists have already taken the black boxes, some of which have GPS monitoring, for a test drive.\nThis really is a must for our nation.\n\"It is not a matter of something we might choose to do,\" said Hasan Ikhrata, executive director of the Southern California Assn. of Governments, which is planning for the state to start tracking miles driven by every California motorist by 2025.\nThere is going to be a change in how we pay these taxes.\nThe technology is there to do it.\nThe push comes as the country's Highway Trust Fund, financed with taxes Americans pay at the gas pump, is broke.\nAmericans don't buy as much gas as they used to.\nCars get many more miles to the gallon.\nThe federal tax itself, 18.4 cents per gallon, hasn't gone up in 20 years.\nPoliticians are loath to raise the tax even one penny when gas prices are high.\n\"The gas tax is just not sustainable,\" said Lee Munnich, a transportation policy expert at the University of Minnesota.\nHis state recently put tracking devices on 500 cars to test out a pay-by-mile system.\n\"This works out as the most logical alternative over the long term,\" he said.\nWonks call it a mileage-based user fee.\nIt is no surprise that the idea appeals to urban liberals, as the taxes could be rigged to change driving patterns in ways that could help reduce congestion and greenhouse gases, for example.\nCalifornia planners are looking to the system as they devise strategies to meet the goals laid out in the state's ambitious global warming laws.\nBut Rep. Bill Shuster (R-Pa.), chairman of the House Transportation Committee, has said he, too, sees it as the most viable long-term alternative.\nThe free marketeers at the Reason Foundation are also fond of having drivers pay per mile.\n\"This is not just a tax going into a black hole,\" said Adrian Moore, vice president of policy at Reason.\nPeople are paying more directly into what they are getting.\nThe movement is also bolstered by two former U.S. Transportation secretaries, who in a 2011 report urged Congress to move in the pay-per-mile direction.\nThe U.S. Senate approved a $90-million pilot project last year that would have involved about 10,000 cars.\nBut the House leadership killed the proposal, acting on concerns of rural lawmakers representing constituents whose daily lives often involve logging lots of miles to get to work or into town.\nSeveral states and cities are nonetheless moving ahead on their own.\nThe most eager is Oregon, which is enlisting 5,000 drivers in the country's biggest experiment.\nThose drivers will soon pay the mileage fees instead of gas taxes to the state.\nNevada has already completed a pilot.\nNew York City is looking into one.\nIllinois is trying it on a limited basis with trucks.\nAnd the I-95 Coalition, which includes 17 state transportation departments along the Eastern Seaboard (including Maryland, Pennsylvania, Virginia and Florida), is studying how they could go about implementing the change.\nThe concept is not a universal hit.\nIn Nevada, where about 50 volunteers' cars were equipped with the devices not long ago, drivers were uneasy about the government being able to monitor their every move.\n\"Concerns about Big Brother and those sorts of things were a major problem,\" said Alauddin Khan, who directs strategic and performance management at the Nevada Department of Transportation.\nIt was not something people wanted.\nAs the trial got underway, the ACLU of Nevada warned on its website: \"It would be fairly easy to turn these devices into full-fledged tracking devices.\"\nThere is no need to build an enormous, unwieldy technological infrastructure that will inevitably be expanded to keep records of individuals' everyday comings and goings.\nNevada is among several states now scrambling to find affordable technology that would allow the state to keep track of how many miles a car is being driven, but not exactly where and at what time.\nIf you can do that, Khan said, the public gets more comfortable.\nThe hunt for that technology has led some state agencies to a small California startup called True Mileage.\nThe firm was not originally in the business of helping states tax drivers.\nIt was seeking to break into an emerging market in auto insurance, in which drivers would pay based on their mileage.\nBut the devices it is testing appeal to highway planners because they don't use GPS and deliver a limited amount of information, uploaded periodically by modem.\n\"People will be more willing to do this if you do not track their speed and you do not track their location,\" said Ryan Morrison, chief executive of True Mileage.\nThere have been some big mistakes in some of these state pilot programs.\nThere are a lot less expensive and less intrusive ways to do this.\nIn Oregon, planners are experimenting with giving drivers different choices.\nThey can choose a device with or without GPS.\nOr they can choose not to have a device at all, opting instead to pay a flat fee based on the average number of miles driven by all state residents.\nOther places are hoping to sell the concept to a wary public by having the devices do more, not less.\nIn New York City, transportation officials are seeking to develop a taxing device that would also be equipped to pay parking meter fees, provide \"pay-as-you-drive\" insurance, and create a pool of real-time speed data from other drivers that motorists could use to avoid traffic.\n\"Motorists would be attracted to participate because of the value of the benefits it offers to them,\" says a city planning document.\nSome transportation planners, though, wonder if all the talk about paying by the mile is just a giant distraction.\nAt the Metropolitan Transportation Commission in the San Francisco Bay Area, officials say Congress could very simply deal with the bankrupt Highway Trust Fund by raising gas taxes.\nAn extra one-time or annual levy could be imposed on drivers of hybrids and others whose vehicles don't use much gas, so they pay their fair share.\n\"There is no need for radical surgery when all you need to do is take an aspirin,\" said Randy Rentschler, the commission's director of legislation and public affairs.\nIf we do this, hundreds of millions of drivers will be concerned about their privacy and a host of other things.\nKönigsfeld: Small team gives a spirited performance\nThe voluntary fire service bravely came through the main autumn test run in spite of a lack of personnel.\nOnly eleven men took part in the exercise.\nFor the training exercise, department commander, Hans Kammerer, chose the Feder premises on Burgberger Strasse.\nA short-circuit was reported to have occurred there during sawing.\nTwo people were injured by the resulting fire and the spread of smoke, however, one was able to make an emergency call.\nTwo fire fighters equipped with respiratory gear prepared to enter the building following the initial inspection of the situation by Hans Kammerer.\nAfter a short time they managed to find the first person and direct them out of the building.\nThe second person had to be carried.\nThis was not so simple as they also had to negotiate a narrow stairwell.\nThe building, a workshop with integrated stabling for two horses, was not easy to secure.\nThere were large quantities of wood and bales of straw stored inside.\nIn addition to this, there were also electrical machines for wood processing.\nThe first attempt to extinguish the fire was made using the tank on the fire engine.\nAnother line was taken from the surface hydrant around 100 metres away.\nOnly three attempts could be made to extinguish the blaze.\nA hollow-stream nozzle in the building was also used.\nFor Hans Kammerer, the exercise was also a chance to show what can be achieved with just a few available staff.\nIn case of emergency, support is provided by the Königsfeld daytime task force.\nThe Commander expressed his satisfaction following the exercise.\nNetworking between universities and companies is important\nOn a visit to the district of Breisgau-Hochschwarzwald, it was explained to Parliamentary President Guido Wolf in Titisee-Neustadt where the workforce of tomorrow will come from.\nIn the Hochschwarzwald Support Centre, he addressed this important question alongside the executive principals of the vocational colleges and the district grammar school and the chairs of the parents' council.\n\"Education is an important factor for the location,\" highlighted Claudia Stehle, Director of the Hans Thoma School, which introduced the networked Hochschwarzwald Education Centre Schools Project.\nDuring the presentation, Wolf seemed impressed by the educational pilot project.\nSince 2011, there has been successful collaboration in Wälderstadt between the Support Centre, the District Grammar School and the Vocational School Complex.\nHe also praised the family-friendly approach within the district.\n\"It is important, not only to keep the family life stage in mind, but, on account of demographic change, the period spent providing long-term care and support for relatives as well,\" explained Wolf.\nHe also stated that an increasing number of employed persons are looking after the long-term care and support of relatives.\n\"Without support from their employer, the resulting burden placed on employees could result in the termination of the employment contract,\" said Wolf.\nHowever, nobody can afford to lose qualified workers,\" he added.\nAnother, particularly important factor is that of networking between universities and companies.\n\"After all, people who have learned of the merits of the region during their studies often remain within the region, along with their acquired knowledge and skills, which contributes to the strengthening of the region,\" said the State Parliamentary President, expressing his thorough conviction.\nFor it is only if a sufficient number of educational places can be provided that the need for skilled workers can be covered.\nIn his opinion, the district's advantage as a location is its advantageous location in south-west Germany, in immediate proximity to France and Switzerland.\nIn addition to this, on his train journey from Titisee-Neustadt to Freiburg, he experienced first-hand the efforts already undertaken to develop public transport.\n\"You must continue to be tenacious and make sure that local public transport becomes even better,\" he explained in the address given to the local politicians in attendance.\nMusic makes for an entertaining afternoon\nIt was 15 years ago that the Kaul family first invited the Dietingen senior citizens for coffee and cake, followed by a snack.\nPreviously, the elderly citizens were hosted in the service station canteen.\nThe coffee afternoon is now held in the St. Josef nursing home.\nThe residents of the home were delighted with the delicious cakes and tarts.\nLater on, a sausage salad was provided.\nSilvia Kimmich-Bantle and her father Karl Kimmich entertained those in attendance with popular tunes.\nThe more than 100-year-old natural stone wall, serving as the foremost boundary between the old school yard - which is due to be renovated - and Kirchstrasse, will once again feature on the renovation cost plan for the town of Bräunlingen.\nIn the days before the Kilbig Autumn Folk Festival, when the first renovation work was being carried out at the front of the school yard, a small corner wall with balustrades was installed to stabilise and relieve the static load on the old natural stone wall, which is more than one hundred years old.\nAccording to Alexander Misok of the Bräunlingen Municipal Planning and Building Control Authority, the ongoing procedure plans to involve the Regional Memorial Authority in the planning stage and to draw up a renovation concept for the old wall.\nA cost calculation is to be performed by a team of professionals, which will then be submitted to the Town Council, which will make a decision and determine the ongoing procedure.\nA decision is expected to be made in the coming year.\nFollowing the renovation, plastering and planting of trees in the old internal school yard, within the two wings of the 1912 school, as a subsequent measure the boundary wall, which is in need of refurbishment, must be renovated from the ground up within the foreseeable future.\nThe historic, one hundred-year-old boundary wall between the old school-yard and Kirchstrasse is in need of renovation, primarily as a result of water and frost damage, on account of the lack of drainage, and is leaning forwards.\nDeep cracks in a number of individual stones testify to the weather damage, however, at present the wall is not in danger of collapse.\nA secure wall is essential for a school yard that is used by pupils, and this is the purpose of the current fortification work.\nThe school yard renovation was originally planned back in 2008/2009, however, high unplanned expenses meant that the work had to be pushed back.\nThe Regional Memorial Authority will have a major say in the historic school wall renovation, which has even been used for filming.\nIf this authority were to impose requirements, then the town of Bräunlingen would hope to receive subsidies from the monument preservationists.\nThe pupils of the Bräunlingen Primary School, who are now being taught in a well renovated old school building, with a new hall, will soon be able to use the old school yard as well.\nÖzdemir wants jazz training in Stuttgart\nCem Özdemir, Federal Chairman of the Green Party, has now engaged in the ongoing discussions regarding the future of the Baden-Wuerttemberg Music Academy.\n\"I do not think it is right to abandon comprehensive training in the Stuttgart Music College,\" said Özdemir, speaking to the \"Stuttgarter Nachrichten\".\nJazz and classical music belong together at the jazz location of Stuttgart.\nAs such, Özdemir, who is the favourite in Stuttgart for a direct mandate in the parliamentary elections on 22 September, is in disagreement with the Green-Red State Government.\nOn the basis of an expert study, this government is urging the reorganisation of the five music colleges in Baden-Wuerttemberg.\nIn accordance with these plans, the jazz and pop courses, among others, are to be relocated from the Stuttgart Music College to the Mannheim Music College.\nUS borders: \"Super tunnel\" for drug smuggling discovered\nOn the border between Mexico and the USA, investigators have discovered and shut down a \"super tunnel\" intended for drug smuggling.\nAs announced by the US Customs Authorities, the pipe between Tijuana and San Diego, measuring more than 500 metres in length, was equipped with electricity, a railway track and a ventilation system.\nThree suspects were detained in relation to the discovery, with eight tonnes of marijuana and almost 150 kilograms of cocaine seized.\nAccording to the details provided, the tunnel had not yet been put into use.\n\"These cartels are stupid if they think that they can dig through under the radar,\" said the US Attorney for the District of Southern California, Laura Diffy, at a press conference held in front of a warehouse in San Diego, where the end of the tunnel was discovered.\nReferring to the drug gangs, Duffy assured: \"If you continue to build and attempt to use these tunnels, we are determined to make this a big waste of your dirty money\".\nBoth the US authorities and the Mexican security forces are engaged in an ongoing battle against the drug cartels.\nSince 2006, more than 77,000 people have been killed in conjunction with drug crime in Mexico.\nBuilt by experts\nDue to the elaborate configuration of the tunnel, investigators are working on the assumption that it was build by architects and engineers and that the construction took around one year.\nThe railway system was equipped in such a way that electrically powered carts could be used on it.\nOn the Mexican side, the entrance is located in a building located 80 metres from the border.\nAccording to the authorities, a ladder runs 20 metres underground to the actual entrance of the tunnel.\nThe tunnel has a cross-section measuring 1.20 metres high and 90 centimetres across.\nIt would thus be suitable to assist illegal immigration into the USA.\nTwo of the suspects were detained in conjunction with the cocaine find.\nThe third, a Mexican, was detained due to the seizure of the marijuana.\nAll three face a maximum penalty of life imprisonment, according to the authorities.\nSince 2006, eight tunnels of this type have been discovered, the press conference in San Diego continued.\nHowever, this was the first time that cocaine was found in such a tunnel construction.\nNormally cocaine is smuggled in smaller quantities and not through tunnels.\nThis shows the \"desperation\" of the drug gangs, whose traditional routes have now been cut off, said Bill Sherman of the DEA Drug Squad in San Diego.\nThey will do anything to make it to the USA.\nNo specific details were given regarding those detained, but it is reported that at least one is Mexican\nThey can expect prison terms of up to ten years.\n2014 is to be a year of celebration in Geisingen\nThe anniversary celebrations in the town of Geisingen, to mark the 1,250th\nanniversary of the first documented mention of the town, are drawing closer.\nWhen the year comes to an end in just eight weeks, the anniversary year will be upon us.\nGeisingen and Kirchen-Hausen were first documented together in the year 794.\nA deed was drafted in Kirchen, in which both towns are mentioned.\nOn 15 March, the anniversary year will be officially launched, and because Geisingen currently has no suitable venues, this launch event will take place in the location where the two towns were first documented 1,250 years ago, in Kirchen-Hausen.\nAs part of the anniversary celebrations, a number of events are planned both in Geisingen and Kirchen-Hausen.\nKirchen-Hausen will celebrate the 1,250th anniversary with a celebratory weekend from 18 to 20\nJuly.\nOn the Friday there will be a ceremony, and on the Saturday and Sunday a party will be held at the Kirchtalhalle.\nThe Kirchen-Hausen Kirchenfest festival will also be held on this celebratory weekend.\nTown Musical Director, Rudolf Barth, has composed a commissioned piece for the town on the occasion of the anniversary, which will be performed on three dates.\nOn 21 June, in conjunction with the Schwarzwaldverein [Black Forest Association] Mid-Summer Festival, on 12 July in the Arena, accompanied by fireworks, and on 13 December as the first concert put on by the Stadtmusik (Town Musical Society) in the new Festival Hall.\nThis venue will be completed and inaugurated in the anniversary year, with the official date set for the last weekend in September, on 27 and 28 September.\nOn the occasion of the Geisingen town anniversary, a new chronicle will also be published.\n\"However, it will not merely be a chronicle of Geisingen itself, but rather a printed work on the Geisingen of today, which now consists of Geisingen, Kirchen-Hausen, Leipferdingen, Aulfingen and Gutmadingen,\" said Mayor Walter Hengstler.\nAnd the Geisingen of today is also celebrating a birthday in 2014, as it was in 1974 that the incorporations to form the current region were completed.\nThe new chronicle is to be presented on 21 or 22 November in the new Festival Hall in Geisingen.\nHowever, 2014 is also a year of many anniversaries in other respects.\nThe Narrenzunft Strohglonki (Strohglonki Fool's Guild celebration) begins on 8 February with an evening of traditional customs on the occasion of its 60-year anniversary/ The Harmonie Gutmadingen music association will turn 90 years old and on 29 March will hold a celebratory banquet and then from 1 to 4 May will be celebrating the Bezirksfest [District Music Festival].\nThe Leipferdingen Nursing Home will turn 40 years old, the Geisingen School has now been at its new location for 50 years and will be celebrating this on 10 May, and the Polyhymnia Leipferdingen music association will turn 150 years old and will be celebrating this as part of the Brunnenfest [Fountain Festival] from 4 to 7 July.\nThe town of Geisingen was first officially documented in the year 764, in a deed of donation, which is now in the possession of the St. Gallen Monastery.\nThe deed was drawn up in Kirchen (Hausen), which at the time was the location of the courthouse.\nBoth communities are thus mentioned in the same deed.\nOne reason for choosing 2014 to celebrate the 1,250-year anniversary in this way, is that it also coincides with the 40th anniversary of the Community Reform (Gemeindereform).\nCouncil sets its sights on rail system\nShould the \"Am Hirschen\" railway crossing be reconstructed at great cost, in order to increase traffic safety?\nThe Town Councils have decided that the answer is yes.\nSchiltach will have to contribute up to EUR 220,000 to the project.\nThe Deutsche Bahn hopes to improve the Kinzigtal railway line in the coming year.\nIn particular, safety at railway crossings is to be increased - collisions between trains and other vehicles frequently occur at these across the country.\nIf the municipalities agree to the reconstruction measures, they will be required to contribute one third of the costs, with the remainder divided between Deutsche Bahn and the Federal Government.\nSchiltach's town master mason, Roland Grießhaber, explained the peculiarities of the \"Am Hirschen\" railway crossing to the Town Council.\nAt the crossing, the town is planning to increase the height of the mouth of the tunnel to the west of the railway line.\nLarger vehicles, for example those that transport long logs, would be able to wait there in the event of oncoming traffic, without having to block the railway line.\nGrießhaber therefore suggested that a required supporting wall be constructed in such a way that the town could in due course widen the adjoining street in order to guarantee the smooth flow of traffic.\nThis was the subject of controversial discussion in the Town Council, as some council members cast doubt over the need to widen the road: Thomas Kipp summarised the perspective of the critics with this statement: \"Do we have to hand over so much money on account of so few vehicles?\"\nMayor Thomas Haas retorted: The \"Hirschen\" railway crossing is used regularly for the transportation of long logs.\nEven wood from the \"Kuhbach\" area is occasionally transported via this route, as the vehicles, which measure 20 metres in length, would not be able to use the route via the Häberles Bridge, as they would not be able to make the turn on the Hauptstrasse.\nFurthermore, when the Hauptstrasse is blocked, the route would also serve as a bypass for those vehicles that are not permitted to use the tunnel, argued Haas.\nGiven that it is likely that the Kirchberg and Schlossberg tunnel will have to be reconstructed and renovated, as is currently the case in Wolfach, the \"Am Hirschen\" railway crossing may become of major traffic significance for a longer period of time.\nThe councillors agreed to have an investigation conducted as to what costs the planned widening of the road would incur.\nNevertheless, the reconstruction of the railway crossing was consented to by a majority, on the provision that the required supporting wall be built in such a way that the town could, if required, extend the connecting road in the \"Bahnhofstraße\" direction to around 5.5 metres to accommodate oncoming traffic.\nThe reconstruction of the railway crossing at the Trautwein tannery could, on the other hand, bring with it an entirely different problem with regard to access to the steep \"Geroltzhäuser Weg\".\nThe Administrative Department had Deutsche Bahn's reconstruction plans investigated by the Breinlinger Engineering Office, as they had doubts as to whether the planned connection of the Geroltzhäuser Weg will be straightforward.\nThe investigation came to the conclusion that it could not be ruled out that the inclination of the road could result in longer vehicles becoming stuck.\nThe town, as the authority responsible for road construction, would then bear responsibility for this.\nThe reconstruction could therefore result in liability disputes.\nBecause both the transportation of wood and turning are both possible as things are, the reconstruction of the railway crossing should not be consented to, argued Haas.\nAt this point, the risk of a train collision with a vehicle positioned on the crossing is considerably lower than at other railway crossings, on account of the fact that there is a midpoint from which there is a good line of sight, directly alongside the stopping point.\nThe trains themselves, coming from the central station, must also be sufficiently slowed down so that there is no threat of collision.\nAccording to the councillors, the reconstruction of this railway line was rejected by a majority, as the town of Schiltach would \"bear the brunt of the cost\" for the problem of vehicles becoming stuck, since the Deutsche Bahn would be able to deny any responsibility following the completion of the construction work.\nThe committee considers the reconstruction of the \"Vor Heubach\" and 'Vor Kuhbach\" railway crossings, for which the crossing agreements have already been reached with Deutsche Bahn, to be unproblematic.\nESA makes decision on major space missions: Missions costing billions\nDistant planets, gravitational waves or black holes - experts from the European Space Agency must now agree on two major projects that are to be launched in the coming years.\nThere were 30 proposals to choose from, five of which are still in the running.\nDistant worlds.\nAstronomers have already found more than 1,000 planets near other stars.\nWhether or not life exists on at least some of these, no-one knows.\nThe choice is a difficult one: Should we search for gravitational waves?\nOr instead conduct research into the origin of the cosmos?\nOr search for planets similar to the Earth and thus perhaps discover extraterrestrial life?\nThese are the questions currently being asked by those responsible at the European Space Agency, ESA.\nFor their \"Cosmic Vision\" programme, they are looking for ideas for two major space projects, which should greatly advance research.\nThe budget for \"L-Missions\" such as this lies at around one billion Euro.\nThe projects are planned to start in 2028 and 2034.\nAt the beginning of September, the elite in the field of European space research met in Paris to discuss proposals for such missions.\n30 ideas were up for debate, of which five have now made it onto the short list.\nNumerous panels are assessing the proposals, posing questions to the researchers.\nOver the coming days, a final decision is to be made by the Scientific Programme Committee.\nIn total, four main questions were chosen by the ESA, to which the missions of the \"Cosmic Vision\" programme, initiated in 2007, are to find the answers.\nWhat are the conditions required for the formation of planets and life?\nThe precise processes for the formation of stars from large gas clouds - and thus the formation of the planets that orbit these stars - lie in proverbial darkness.\nA large infra-red telescope in space could penetrate this darkness.\nAnd if a star has planets, under what circumstances can life exist there?\nIn order to pursue this question, the \"Cheops\" space telescope is to be launched in 2017, with which 500 known planetary systems in proximity to us will be investigated in greater detail.\nThe possibilities are, however, limited - Cheops is a small mission with a budget of 150 million Euro.\nWith larger instruments, astronomers could map planets similar to Earth and even analyse the composition of their atmospheres, and thus search for \"biomarkers\": gases that serve as an indicator for biological activity.\nHow does the solar system function?\nThis question should also provide information regarding the preconditions for the origins of life.\nThe magnetic activity of a star, the interaction of its magnetic field and the emitted particle radiation play an important role.\nIt is possible to investigate these processes in our solar system, to serve as an example to be applied elsewhere.\nWith the \"Solar Orbiter\", the ESA has already approved an M-class mission (for which the budget stands at around half a million Euro) to address this matter.\nThe probe is to be launched in 2017 and will closely observe the surface and activity of the sun.\nJupiter and its moons are also of great interest to the researchers.\nThey want to find our what role the giant planet has played in the development of the solar system.\nThe ESA is planning that the first of the total of three L-Missions of the \"Cosmic Vision\" programme will address this subject.\nThe \"Juice\" (Jupiter Icy Moons Explorer) probe is planned to begin its journey in 2022.\nEight years later it will reach Jupiter and will investigate the atmosphere of the planet as well as the icy moons Europa, Callisto and Ganymede.\nWhat are the basic physical laws of the Universe?\nOuter space offers many possibilities for studying substances under extreme conditions and thus examining whether the laws of nature, as known to us, are still valid there.\nThere may also be deviations that could show physicians the path to a new theory, under the umbrella of which all known natural laws could be united.\nHow did the universe come about and what does it consist of?\n13.7 billion years ago, our cosmos was created by the Big Bang.\nAlongside the materials familiar to us, from which stars, planets and life forms such as ourselves are composed, there exists dark matter, the gravitational force of which holds galaxies and galaxy clusters together, and dark energy, the effects of which accelerate the expansion of the universe.\nThus far, researchers know neither which physical laws applied in the initial moments after the Big Bang, nor what dark matter and dark energy consist of.\nWith \"Euclid\", the ESA has already approved an M-mission, planned to commence in 2020.\nWith a special telescope, the probe is to examine the distribution of material in the universe across the entire sky, thus enabling conclusions to be drawn regarding the properties of dark matter and dark energy.\nProposals that are in the running...\nOf the 30 proposals, only two will remain at the end of the selection procedure.\nThe proposal with the best chance of approval as an L-mission, in the opinion of many experts, is \"E-Lisa\", a demanding concept that aims to prove the existence of gravitational waves.\nMany physicians perceive this to entail changes in the structure of space-time, which Albert Einstein predicted almost 100 years ago.\nTo date they have never been proved to exist.\nThe scientists behind the project hope that Elisa could achieve this.\nThe mission involves placing a detector, consisting of two or three probes, in outer space.\nUnlike systems on Earth, it could also prove gravitational waves created during the Big Bang, and thus provide fresh knowledge regarding the origin of the cosmos.\nFour other proposals are still competing for the second L-mission place: a large X-ray telescope called \"Athena\", which among other things would research black holes, \"Icy Planets\", another mission to the outer planets of the solar system, \"prism\", a mission for the measurement of cosmic background radiation, and the \"Exoplanet Finder\", which would find and investigate planets similar to Earth.\nAmong others, proposals that have already been ruled out include proposals for bringing samples back from Mars, conducting research on the moon, Venus and asteroids, as well as proposals in the area of solar physics.\nSnowden ready to \"cooperate\" with Germany over US surveillance\nEdward Snowden, the US intelligence whistleblower, has declared that he is willing to travel to Berlin to give evidence to the German parliament if the US National Security Agency and its director Keith Alexander fail to provide answers about its activities.\nGerman MP Hans-Christian Ströbele on Thursday met Mr Snowden in Russia, where he has been granted asylum, to discuss him testifying in Germany.\nA letter from Mr Snowden, presented to the media in Berlin on Friday by the MP, said: \"Though the outcome of my efforts has been demonstrably positive, my government continues to treat dissent as defection, and seeks to criminalise political speech with felony charges that provide no defence.\"\nHowever, speaking the truth is not a crime.\nIn the letter, Mr Snowden said he believed the support of the international community could persuade the US government to abandon criminal charges against him.\nThe charges filed by the US justice department include espionage and theft of government property.\nHans-Peter Friedrich, German interior minister, told Zeit Online: \"If Mr Snowden is ready to speak to German officials, we will find ways to make this possible.\"\nRelations between the US and Germany have come under strain following claims that the NSA bugged Chancellor Angela's Merkel's phone.\nThomas Oppermann, the MP who heads the parliamentary panel that oversees intelligence, said that if there were an opportunity to hear Mr Snowden as a witness \"without bringing him into danger and completely ruining relations with the US,\" it should be taken.\nMr Ströbele, an MP for Germany's Green party, published a picture of himself with Mr Snowden on his Twitter feed.\nHe was accompanied on his visit to Russia by two German journalists.\nMr Ströbele said that, according to the former NSA contractor's lawyer, Mr Snowden would not be able to return to Russia if he left.\nIf Mr Snowden testified in Germany he would need assurances that he would be \"safe\" there, the MP said.\nMr Snowden said in his letter that he had faced a \"severe and sustained\" campaign of persecution that forced him from his home.\nHowever he said that he was heartened by the worldwide response to \"my act of political expression.\"\nCitizens around the world as well as high officials - including in the United States - have judged the revelation of an unaccountable system of pervasive surveillance to be a public service.\nThe letter extends an offer to cooperate with German authorities \"when the difficulties of this humanitarian situation have been resolved.\"\nFrontier Airlines to charge for carry-on baggage\nFrontier Airlines plans to charge up to $100 for passengers to store carry-on luggage on board their flight.\nFrontier Airlines plans to start charging up to $100 for a carry-on bag and $2 for coffee or soda, although its announcement on Wednesday did say that passengers will get to keep the whole can.\nThe new carry-on fee is for bags in the overhead bin, so small bags under the seat will still be free.\nFrontier said it will charge $25 if the fee is paid in advance, $100 if travelers wait to pay until they're at the gate.\nFrontier spokeswoman Kate O'Malley said the $100 fee is to get travelers to take care of the charge in advance.\n\"We don't want to charge that,\" she said.\nAirlines began charging for the first and second checked bags in 2008.\nPassengers trying to avoid those fees have been stuffing as much as they can into carry-on baggage stashed in overhead bins, meaning those bins often run out of space.\nFees are one way to get passengers to bring less on board.\nO'Malley said the new charge is not really about raising money.\nIt's about Frontier's most loyal customers making it very clear that finding overhead bin space has become increasingly difficult.\nPassengers who buy their tickets on the airline's website won't have to pay.\nThat means one passenger in line at a Frontier gate might get to bring a bag on for free, while the next person in line might owe $100 for a similar bag.\nO'Malley said Frontier's website and check-in procedures are being changed to make sure passengers know about the fee before they get to the gate.\nFrontier's new carry-on fee won't start until summer, though a date hasn't been set.\nPassengers often grumble about baggage charges and other fees, but airlines love them.\nThey argue that luggage costs money to handle, and passengers who want the service should pay for it.\nMany on Wall Street view the addition of baggage fees as a sign that airlines are charging enough money to cover the cost of air travel after years of losses.\nMost haven't touched carry-on bag fees, though.\nSpirit Airlines Inc. started the first carry-on fee three years ago, and fellow discounter Allegiant Air later followed.\nThe only other airline with such a fee is Hungary's Wizz Air, said airline consultant Jay Sorensen, who closely tracks add-on fees.\nHe estimated in a December 2011 report that Spirit's carry-on fee brings in $50 million a year.\nSorensen, a former executive with Midwest Airlines, flew Spirit recently and wondered what he'd find at the gate as passengers encountered Spirit's unusual carry-on bag fee.\n\"The boarding process was the smoothest I had seen in my airline career,\" he said.\nI was expecting to see gnashing of teeth and a fight breaking out at the gate.\nThe plane was full, he said, \"and it boarded lickety-split.\"\nFrontier is also following Spirit's $2 charge for coffee, tea, soda, or juice.\nFrontier said passengers who get soda or juice can keep the whole can, and it will give coffee refills for free.\nIt will still give away water.\nUS Airways briefly tried charging for beverages in 2008 but backed down seven months later after passengers complained and no other major airline followed.\nFrontier's move to charge the carry-on fee if passengers don't buy direct from the airline is its latest effort to steer customers toward its own website.\nAirlines pay online travel sellers such as Orbitz $10 to $25 for each ticket sold.\nThat has given all airlines an incentive to steer passengers to buy directly from them instead of going through an online travel agency.\nFrontier has gone the furthest in this area, though.\nIn September it began giving half as many frequent flier miles to customers who bought through an online travel agency.\nOn Wednesday it slashed the mileage award to 25 percent of the miles of the trip.\nSo, a 1,000 mile Frontier trip purchased from an online travel agency would earn 250 miles.\nIt also allows passengers to choose their seat in advance only if they buy directly from the Frontier website.\nFrontier has a loyal base of customers in its home city of Denver, but its business is shrinking and losing money.\nRevenue dropped 9 percent and its flying capacity shrank almost 13 percent in the first quarter, according to financial results released Wednesday by corporate parent Republic Airways Holdings Inc.\nRepublic has been trying to fix Frontier's finances as part of selling the airline.\nSayings come from the Bible\nAt least 40 women attended the last women's breakfast of the year, in the Evangelical Parish of Bisingen.\nThe theme of the day in the parish hall was \"Sayings from the Bible\" and \"Expressions from the Middle Ages\".\nZita Köhler, the Chairperson of the Parish Council, agreed to give a talk on Biblical proverbs after breakfast.\n\"Proverbs contain pearls of wisdom, commandments or warnings,\" she explained.\nShe compared several German sayings with the corresponding Bible verses and explained the meaning.\nShe referred to sayings such as: \"Holzauge sei wachsam\" (keep your eyes peeled), \"wie Schuppen von den Augen fallen\" (like scales falling from one's eyes), \"ein Auge auf jemand werfen\" (to cast an eye on someone), \"den Seinen gibt's der Herr im Schlaf\" (good things come to some when they sleep) and \"seine Hände in Unschuld waschen\" (to wash one's hands of something).\nOn several occasions, the speaker asked those listening to guess what proverb they were based on.\nExpressions from the Middle Ages were addressed by Parish Councillor Christel Dehner: \"Aller guten Dinge sind drei\" (All good things come in threes), \"blau machen\" (to skip school/work), \"etwas verhauen\" (to wallop something).\nShe explained the meaning and origin of the expressions, which she referred to as \"bridges to the past\".\nTo round off the morning there was a tombola.\nThe prizes were placed, covered, on a table and were humorously paraphrased prior to being presented to the winners.\nMayoral candidate Roman Waizenegger was also to be found among the visitors to the joint breakfast.\nLearning rather than unemployment: Tourism pilot project for the untrained\nA pilot project for the tourist industry is being launched today in the Mecklenburg lake district.\nUnder the management of the Federal Employment Agency, 49 men and women who are already working within the industry as untrained workers, will be trained as qualified hotel and restaurant staff over the course of three winters.\n\"What's innovative about it is that the six-month courses end with diplomas,\" said Carmen Wiechert of the Neubrandenburg Employment Agency.\nThere are many benefits: The participants will not be unemployed, the companies receive trained skilled workers, which are in continually increasing demand in hotels and restaurants, and the agency will not have to fund unemployment.\nAlso involved in the project are the Chamber of Industry and Commerce in Neubrandenburg and the German Hotel and Restaurant Association (Deutsche Hotel- und Gaststätte, Dehoga) of Mecklenburg-Western Pomerania.\nNSA Blames \"Internal Error,\" Not Hackers, For Website Crash\nThe shadowy National Security Agency said late Friday that it was a glitch that brought down its public website for a few hours, not hackers as some claimed online.\n\"NSA.gov was not accessible for several hours tonight because of an internal error that occurred during a scheduled update,\" the spy agency said in an emailed statement.\nThe issue will be resolved this evening.\nClaims that the outage was caused by a distributed denial of service [DDoS] attack are not true.\nEarlier this evening online server trackers noted the NSA's website had been down for at least six hours, and the site continues to be inaccessible for some users.\nEarlier an NSA spokesperson told ABC News the agency's internal, sensitive network was \"not at all\" compromised.\nNo classified information is in danger, the spokesperson said.\nAt least one hacktivist group online claimed that they were responsible for bringing down the NSA site with a DDoS attack.\nDDoS attacks are designed to flood a target website with traffic until the servers are overloaded and the site collapses.\nThe cyber tactic is a relatively unsophisticated one and the attacks are not meant to penetrate the internal network of the target system.\nThe formerly super secretive NSA, once nicknamed No Such Agency, has found itself in very public light, and amid vicious criticism, in past months following a stream of revelations about is vast foreign and domestic surveillance programs - collectively the product of secret NSA files stolen from the agency and leaked by disenchanted former NSA contractor Edward Snowden.\nSuch growing controversy surrounding the agency prompted early speculation that tonight's incident was the result of a targeted cyber operation.\nIn October, the number of jobless fell slightly by 22, to a total of 1,307.\nThe rate of 3.1 per cent is indeed better than the previous year and is also better than in September, \"however, we had hoped for more,\" said Monika Felder-Bauer, acting branch manager of the Employment Agency in Sonthofen.\nSeveral companies have thus far reacted cautiously when it comes to hiring.\nStating a reason for this, Felder-Bauer said: \"We have barely any skilled workers in the fields of skilled crafts and trades, healthcare and geriatric care.\"\nSeasonal job offers for staff in hotel and restaurant businesses have been coming in since September.\nThe Winter season within the industry begins in mid-December.\nThe complete background report on this can be found in the \"Allgäuer Anzeigeblatt\" newspaper dated 31/10/2013 (page 33).\nBombardier profit dips as plane deliveries, orders fall\nCanadian plane and train maker Bombardier Inc reported a 15 percent fall in net profit on Thursday, pressured by fewer aircraft orders and deliveries in the third quarter and contract issues in its train unit.\nMontreal-based Bombardier also did not release any flight test data for its brand-new CSeries aircraft or offer an update on whether the plane will meet its ambitious schedule of going into commercial service by next September.\nAfter the test plane's inaugural flight about a month and a half ago, it has only flown three more times, raising questions over whether the testing phase is on track.\nResults fell short of forecasts and sent shares sliding more than 8 percent on the Toronto Stock Exchange.\nCameron Doerksen, an analyst with National Bank Financial, lowered his rating to \"sector perform\" from \"outperform\" on Thursday with the view that the stock has limited upside over the next one or two quarters.\n\"While the weaker aircraft deliveries were mostly anticipated, we are clearly disappointed by the margin performance in transportation,\" Doerksen said in a client note.\nWe believe that Bombardier will receive new orders for the CSeries as the flight test program progresses.\nHowever, if no new orders are announced in the coming months, we suspect that the market will become more skeptical of the program.\nBombardier hopes the CSeries aircraft family can catapult it into the low end of a market now dominated by Boeing and Airbus.\nThe first test plane was unveiled in March and took flight for the first time in September after months of delays.\nBut firm orders for the CSeries are moderate so far at 177 as potential buyers wait for flight test results to validate the company's claims about the new jetliner's fuel efficiency and cost savings potential.\nThere are currently 403 total orders and commitments with 15 customers and operators.\nChief Executive Officer Pierre Beaudoin was confident Bombardier would meet its 300 firm order target by the time the first jet is put into commercial use.\nExecutives also reassured analysts and media on Thursday the program was progressing according to schedule.\n\"The test plane didn't stay on the ground longer than anticipated,\" Beaudoin said in a conference call, adding that ground tests and software updates were scheduled during the plane's downtime.\nEvery manufacturer schedules it in a different way.\nWe had decided to do a first flight and to do an update period and that's what we have done.\nThat will happen all through the flight program.\nThe second of five test planes is expected to take flight in the coming weeks, with the remainder following shortly after, the company said.\nStill, analysts are skeptical the first customer can begin operating a CSeries plane 12 months after its maiden flight.\nBombardier said it was evaluating the entry-into-service (EIS) schedule and will provide an update in the next few months.\n\"This slow pace of flight testing - although in line with Bombardier's internal schedule apparently - reinforces our view that entry-into-service will be pushed to Q1/15,\" said Doerksen.\nFor the third quarter ended September 30, Bombardier's net profit fell to $147 million, or 8 cents per share, from $172 million, or 9 cents per share a year earlier.\nAdjusted earnings per share were unchanged at 9 cents.\nRevenue dipped marginally to $4.1 billion from $4.2 billion.\nAnalysts had expected earnings of 10 cents per share and revenue of $4.56 billion, according to Thomson Reuters I/B/E/S.\nThe world's fourth-largest planemaker said it delivered 45 aircraft during the quarter, down from 57 a year earlier.\nNet orders fell to 26 aircraft, from 83.\nThe backlog in the aerospace division was $32.9 billion as of September 30, unchanged from December 31.\n\"In aerospace, results were in line with our guidance, but the low order intake and overall market conditions were a disappointment,\" Beaudoin said.\nAerospace revenue fell 13 percent to $2 billion.\nBombardier, the world's largest trainmaker, said revenue in that division rose nearly 11 percent to $2.1 billion.\nThe order backlog in the transportation unit was $32.6 billion as of September 30, up marginally from December 31.\nThe transportation division's margins were affected by execution issues in a few large contracts.\nExecutives said new guidance would be provided in the fourth quarter.\nShares of Bombardier, which also announced that Google Inc Chief Financial Officer Patrick Pichette would join the board, were down 8.5 percent at C$4.83 in mid afternoon trading on Thursday.\nBrazil's Embraer SA, the world's third-largest commercial planemaker and Bombardier's closest rival, reported a 10 percent fall in quarterly profit on Thursday.\nUSA: Shots fired at Los Angeles Airport\nOn Friday morning (local time) an unknown suspect fired shots at the LAX Airport.\nWhile the airport management announced via short messaging service Twitter that the shooter is in custody, the \"Los Angeles Times\" reported that the man is dead.\nA member of security staff was also killed.\nThe media also reported that several people injured.\nUS President Barack Obama is being kept informed of the situation, said White House spokesperson Jay Carney.\nThe incident took place in Terminal 3. Eye witnesses reported seeing a shooter with a gun in one of the departure lounges, as was reported by several media.\nOne traveller told the broadcaster CNN about how many people had sought protection in panic.\nTravellers screamed and children cried.\nPanic broke out among those waiting, with many hiding behind seats in fear.\nAn employee of the \"Los Angeles Times\" who was travelling at the time told of how he had heard two shots fired.\nAn employee of security company TSA suffered a gunshot wound to the foot.\nThe scene was \"like something out of a movie\".\nThe man reported that he was then himself taken to a safety area.\nThe shots were said to have been fired near a security inspection area.\nAirport building evacuated\nTelevision footage revealed how numerous ambulances and police cars arrived at a terminal.\nOne hundred people were brought out of the building to safety.\nUsers on Twitter published photos of a SWAT officer and a weapon lying on the ground.\nAccording to a message shared by the airport management via twitter, the incident began at 9.30 am (local time).\nThe access roads were blocked off, which, according to CNN, caused long tailbacks.\nExcept for the landing of arrival aircraft, flight traffic was temporarily suspended, it was reported.\nHowever, several planes could be seen taking off on CNN.\nTerminal 3 serves mainly small US airlines.\nThe Los Angeles LAX airport is one of the largest airports in the USA.\nCocaine-addict lawyer who tipped off Mr Big about police investigation is jailed\nBasharat Ditta, 42, would feed information to crime lord Neil Scarbrough\nThe solicitor feared his secret drug addiction would be exposed\nWas given a three-year prison sentence at Liverpool Crown Court\nA top defence lawyer who told a drugs Mr Big about a major police investigation, because he feared his secret drug addiction would be exposed, has been jailed for three years.\nBasharat Ditta, 42, would feed sensitive intelligence to crime lord Neil Scarbrough about inquiries into his drug trafficking activities after he became compromised by his cocaine habit.\nThe solicitor, who was nicknamed \"Bash\" and hailed by criminals as a \"top brief,\" was arrested at his home in 2011 following a police surveillance operation into Scarborough, who he had represented in a previous narcotics trial.\nOfficers spotted Sarborough, 32, dropping off three bags of cocaine at the lawyer's home in Blackburn, Lancashire, while he was out at a Law Society dinner with colleagues.\nInquiries revealed Ditta was a \"regular user\" of the Class A drug after tests found traces of cocaine in his hair, on his wallet and on his credit cards.\nOver an eight month period between January and August 2011 he sought to illicitly obtain information on the arrests of two men on behalf of Scarborough as well as one of his associates.\nAll four suspects were being watched by police at the time as part of a major investigation into a heroin and cocaine racket operating across Lancashire, Cumbria, Merseyside, Berkshire and West Yorkshire.\nThey and 32 other men were later jailed after police seized heroin and cocaine worth £1.5million along with more than £200,000 in cash during a series of raids.\nDitta, 42, fed information to criminals because of fears his cocaine addiction would be exposed\nToday at Liverpool Crown Court Ditta, who works at law firm Forbes Solicitors, based in Blackburn, was facing disgrace after being found guilty of two counts of perverting the course of justice following a three week trial at Liverpool Crown Court.\nHe admitted cocaine possession at an earlier hearing.\nThe lawyer's downfall came after police investigating Scarborough discovered he had been in regular phone contact with Ditta in February 2011.\nTwo detectives trailed the suspect and spotted him arriving at Ditta's house in and was seen to place the drugs which had a purity of 60 per cent under the lawyer's bins in a black golf glove.\nSoon after the drop off, Scarborough was in regular phone contact with Ditta who had been out at the dinner at the Blackburn Rovers football stadium, Ewood Park.\nThe lawyer returned home to discover the drugs and there were nine communications between them.\nThe court heard Ditta was a \"regular user\" of cocaine after tests found traces of the Class A drug in his hair, wallet and on his credit cards\nDitta was arrested later but denied using cocaine and and said he had been speaking to the suspected dealer because he was his client and argued their discussions were subject to \"legal privilege.\"\nDuring his arrest Ditta picked up his wallet and tried to remove several credit cards but they were all seized and a hair sample was taken fom him.\nIn a police interview he said he ran an office at his home address as well as work place and clients would call at his house on legal business.\nBut the court heard he would call major players in the drugs supply chain, some of whom he had previously represented, after key arrests to tell them what detectives knew about them.\nProsecuting, Anne Whyte said: \"If anyone should know not to the break the law, it is a criminal solicitor.\"\nMr Ditta is accused of abusing his position as a criminal solicitor, having become too involved with specific clients.\nThe relationship we are talking about is not simply a drug dealer, but a drug dealer providing his own lawyer with drugs.\nSome of his communications will undoubtedly have been legitimate ones because he was their lawyer.\nBut this went way beyond the ordinary confines of a lawyer-client relationship.\nHe thwarted the police's investigation as much as possible to enable them to continue in their criminal activities.\nMr Ditta was not honouring his profession, but dishonouring it.\nHe got too close to certain clients, in particular Scarborough, and he allowed his independence to be compromised.\nDitta denied wrongdoing and claimed: \"If I was a corrupt lawyer, which I am not, and I wanted to feed information to Mr Scarborough, I would not wait 15 hours, I would do it immediately.\"\nBut after the hearing Supt Lee Halstead from Lancashire Police said: \"Mr Ditta turned from criminal solicitor to a criminal himself the moment he started obtaining drugs from organised criminals.\"\nHis addiction to cocaine left him hopelessly compromised and vulnerable to the motives of leading members of organised crime groups who tasked him to obtain valuable information regarding police investigations.\nSolicitors should uphold the highest standards of integrity and should instil trust and confidence in the public.\nMr Ditta has betrayed this trust and attempted to hide behind the veneer of his profession.\nLancashire's Serious and Organised Crime Unit led the investigation into Mr Ditta which has also seen him convicted of three counts of possession of cocaine and now perverting the course of justice, demonstrating our commitment to bringing criminals to justice.\nLet this case serve as a warning to criminals that no one is beyond the reach of the law.\nWe will find you and put you before the courts.\nScarborough himself was jailed for 14 years after pleading guilty to conspiracy to supply heroin, cocaine and cannabis.\nThirty five other men involved in the racket were jailed for a total of 153 years for drugs offences.\nOn his website Ditta gave a question and answer session about himself in which he says his fantasy job would be a lawyer representing clients on Death Row in America, his ultimate dinner guest as being Mohammed Ali and inequality as his motivation for work.\nRevolutionary Sacred Music Factory\nTo close the celebrations on the occasion of its 160th anniversary, the Liederkranz Dunningen (Dunningen Amateur Choir, or Glee Club, if you like) will perform Franz Schubert's \"Deutsche Messe\" (German Mass) to accompany two church services.\nFollowing the great success of the musical, \"Rock my Life\", which enthused audiences this past Spring, the Liederkranz will bless two church services with the performance of Franz Schubert's Deutsche Messe, to close its anniversary year celebrations.\nOn Saturday 26 October, this exceptional mass will be heard from 7.00 p.m. during the evening mass in the St. Marinuskirche Dunningen and on Sunday 27 October, from 10.15, at the service in the St. Johannes Baptistkirche in Lackendorf.\nThe so-called 'German Mass', with the original title \"Gesänge zur Feier des heiliges Opfers der Messe\" (Songs to celebrate the holy sacrifice of the mass), D 872, is a spiritual work by composer Franz Schubert, dating from 1826, at at the time it was written was considered almost revolutionary.\nPatron Johan Philipp Neumann has in mind for the mass to be performed as part of the church services.\nUnder the directorship of Hermann Schneider, the choir will be accompanied by the wind ensemble of the Frohsinn Tennenbronn Music Society, and by Noemi Lokodi on the organ.\nHaslach: Scepticism visibly gives way to confidence\nThe 2015 Parish Council elections will bring about fundamental change, for example in the Haslach Pastoral Care Unit (Seelsorgeeinheit Haslach, SE).\nThere will then only be one joint Parish Council for all six parishes.\nIn a joint meeting on Saturday, the committees from Haslach, Hofstetten, Mühlenbach, Fischerbach, Steinach and Welschensteinach prepared for the changes.\nThis is because there are no further changes to be made to the fundamental decisions of the diocese and it is up to the Parish Councils to implement these in as satisfactory a manner possible.\nDuring the course of the day one thing became particularly clear: the scepticism towards the new system is reluctantly yet visibly giving way to confidence.\nThe extremely constructive discussions between the six committees and the full-time members of the pastoral care team addressed topics ranging from perceptions and expectations regarding the 2015 reforms, to concrete proposals regarding the future composition and size of the Parish Council.\nRegional Dean Georg Schmitt explained the newly drawn-up guidelines for pastoral care units in the arch-diocese of Freiburg with the help of a presentation.\nAccording to the guidelines, the SE Haslach, as a church community, will be a corporation under public law, which shall assume the rights and obligations of the six individual church communities.\nThere will then only be one joint Parish Council and a Foundation Council, in which the rector will be represented by virtue of his office.\nFrom each parish, at least two elected members are to be represented, with so-called church community teams set up on-site in the six parishes.\nIn future their task will be to promote church life on a local basis.\nRegarding the issue of the finances of the individual parishes, the need for extensive discussion became evident.\nThe reforms plan for the accumulated assets in the parishes to be retained for a specified purpose.\nAccounts payable, on the other hand, will be passed over to the \"church community\" as a whole.\nIn particular, planned major investments, the debts from which thus affect all parishes, were cause for great concern.\n\"In the past, investments were only made in projects that could be managed by the individual parishes by themselves,\" said Haslach's Parish Council Chairman Bruno Prinzbach.\nBarbar Ritter, Chair of the Committee in the Schutterwald-Neuried pastoral care unit, has practical experience of a joint committee for five parishes.\nIn 2006 she set herself the task, \"Become one, remain five\" and came to realise that the task is really not that simple.\nThe Committees of the Haslach pastoral care unit set out to answer questions regarding the future composition and size of the joint Parish Council, and the practical work of the church community teams.\nThe specific details will be confirmed in subsequent meetings and decided in an additional joint meeting of all six committees in the coming spring.\nAt the end, Parish Counsellor Michael Schöner from Steinach presented the new logo of the pastoral care unit, which was agreed on by a clear majority.\nElectricity to become more expensive in Pfullendorf\nThe citizens of Pfullendorf will have to adjust to high electricity costs.\nAs Managing Director of the municipal energy company, Jörg-Arne Bias, confirmed to the SÜDKURIER, families of four in Pfullendorf will be on the receiving end of a price increase of EUR 70 to 90 per year.\nOne major reason for the upcoming price increase is the rise of the so-called EEC Levy from 5.277 to 6.3 Cents per kilowatt hour.\nThis levy will be reset by the four operators of the large power grids, in October of each year.\nThey estimate the additional costs they will incur as a result of the \"energy turnaround\", which they will be able to recover by means of a levy on the price of electricity.\nThe Pfullendorf municipal energy company forms the last link in this chain.\nIn its projections, the supervisory council of the energy company even assumed a levy higher than that reported by Jörg-Arne Bias.\nThe specific figures must now be calculated before the municipal energy cmpany can inform its customers of the precise price increase next week.\n\"We are working on the assumption of an increase of 1 cent plus x,\" said Bias, with the figure likely to be closer to 2 cents.\nTraffic lights permanently red: observe waiting time\nSometimes a traffic light simply never turns green.\nThe contact loop on the road does not react, or the light itself is defective.\nWhat should you do - drive through on red?\nIf an affected person has waited for a sufficiently long period of time at a red light, and provided the crossing is clear, they can drive on, explained Stuttgart-based lawyer Ralf Becker in \"Motorrad\" (Motorcycle) magazine.\nThe waiting time must, however, be \"appropriate\", which can be interpreted differently on a case-to-case basis.\nBecker advises that you wait at least five minutes before a fault with the traffic lights can be assumed.\nAnyone who drives on in spite of a red light must, however, be aware that he/she will be fully liable for any resulting accident.\nAnyone who waits for less than five minutes has, under certain circumstances, not waited long enough, warned Becker, referring to a ruling of the Hamm Higher Regional Court.\nIn the case in question, a driver ignored a light that was permanently red after around three minutes and and was held responsible for negligently jumping a red light.\nThe traffic lights were actually not defective, but rather turned green just a few minutes later.\nHe was spared a driving ban on account of the special circumstances - but was not spared a fine.\nTown Council delighted with solid budget\nEvery time discussion in Town Council meetings turns to the budget, Mayor Ralph Gerster has good reason to smile.\nThe municipality coffers in Herdwangen-Schönach are well stocked and the administration has been debt-free since 2005.\nIn this sense, this the 2012 budgetary year, can also be recorded as a complete success.\nThis became clear upon presentation of the annual accounts for 2012.\nAs Andrea Rothmund explained, the administrative budget came in at more than EUR one million higher than originally planned, at around 7.6 million Euro.\nThe administrative budget surplus, at around EUR 1.8 million, also stood at around EUR one million above projections.\nThe surplus is primarily due to higher trade tax income and the local authorities' contribution towards income tax.\nThe capital budget also stood well above the projected values.\nInstead of the projected EUR 1.5 million Euro, the value for last year was EUR 2.5 million.\n\"This is mainly due to the higher contribution from the administrative budget,\" said Rothmund.\nBecause fewer investments were made in the 2012 budgetary year than planned, the reserves also came in higher.\nIn total, they managed to increase the general contingency reserves by around EUR 2.1 million, to a total of EUR 4.9 million.\nMayor Ralph Gerster thanked Rothmund and its team for the good work.\n\"A job like this is not something you achieve overnight,\" said Gerster in praise of the annual financial statement.\nHe and the Town Councillors are clearly delighted with the good figures.\nIt may sound like a paradox, but it is precisely these good figures that could soon work out expensive for the citizens.\nIn the past, a good financial situation meant that the local authorities could do away with high municipal rates.\nHowever, according to Gerster, from time to time this has resulted in subsidies being reduced by the state.\nThere are prerequisites that must be fulfilled in order to receive these subsidies from various compensation elements.\nAmong other requirements, the towns and municipalities applying for the subsidies must levy certain municipal rates.\n\"We have to address the subject of municipal rates, as there are investments to be made in the coming years for which we could do with subsidies,\" commented Gerster regarding this matter.\nNagold: Hugo Wermter - a choir member for 60 years\nHaving been a singer for 60 years, Hubert Wermter's story with the Cäcilia Male Choral Society is almost twice as long as that of the Autumn Festival, during which he was ceremonially honoured.\nAs per usual, Hubert Wermter stood on the stage in the colours of his male voice choir.\nEven after 60 years he still finds great pleasure from singing with the choir, which has achieved much more than popularity during this period.\nWermter has also been active within the association, serving as a member of the committee for 28 years, among other roles.\nFor his commitment and loyalty to the organisation, he has also received several awards: Jörg Kohr, Lay Pastor acting on behalf of the Cäcilian Association of Rottenburg-Stuttgart, presented him with an Association Certificate and a letter of commendation signed by Bishop Gebhard Fürst - the choir also serves as a church choir.\nHis choir colleagues presented him with a German Choral Association certificate and an engraved pewter plate.\nAside from honouring Hugo, the 31st Autumn Festival progressed as usual: Alongside the Betra Male Voice Choir, the Salzstetten Choral Club, the Baisingen Choral Division and the Local Music Society, the Vollmaringen singers delivered a colourful blend of different choral and song styles, which entertained the 400 or so visitors.\nThe Vollmaringen Male Voice Choir got things running with atmospheric songs such as \"Im Weinparadies\" and \"Lustig, ihr Brüder\".\nThey had also prepared a short serenade as a tribute to their honorary singer Hubert Wermter - Wolfgang Amadeus Mozart's \"Bundeslied\".\nThe Betra Male Voice Choir also sang classic choral pieces such as \"Jägerwerben\" by Julius Wengert, \"Weit, weit weg\" by Hubert Goisern and the folk song \"Wann du durchgehst durchs Tal\".\nWith its mixed choir and its ladies' ensemble - the \"Impulschor\" (Impulse Choir), the Salzstetten Choral Club ensured that the female quota was fulfilled at the festival.\nThe mixed choir carried listeners away to foreign lands with the Neapolitan folksongs \"Santa Lucia\" and \"Eviva Espana\" by Antos Gus, while the \"Impulschor\" also drew on foreign languages: \"Liberatio\" and \"Hey Jude\" were included on their programme.\nThe Choral Division of the Baisingen Sports Club returned to its home ground with \"Was isch der Schwob?\" by Hans Süssmuth and Robert Pappert's \"Bierlied\", while the Vollmaringen Music Society provided the crowning musical conclusion.\nFor children, there was a small auxiliary programme - \"Oma Hanne\" (Grandma Hanne), a.k.a Hannelore Stollsteimer, performed a 'Kasperl' theater (similar to Punch and Judy) and read some stories, which kept the children entertained throughout the afternoon.\nChildren's dreams come true\nOver the next few days, the nursery schools and day care centres in Zollernalb district will be receiving mail.\nThe Schwarzwälder Bote (Black Forest Herald), in collaboration with Bauhaus and the Sparkasse Zollernalb Savings Bank, would like to support the institutions in granting their construction and renovation wishes.\nDoes the nursery school need a new sand box?\nAll nurseries, day care centres and créches from across the entire Zollernalb district can become involved in the campaign.\nIf they have a construction or renovation request for their institution, they can register this with the Schwarzwälder Bote.\nGet creative with your children and surprise the judging panel of the Kindergarten-Baustelle (Nursery School-Construction Site) campaign.\nA panel consisting of representatives from the Schwarzwälder Bote, Bauhaus and Sparkasse Zollernalb will select three wishes from those submitted.\nWhat are the requirements for participation?\nIt must be possible to fulfil the wish using construction materials to a maximum value of EUR 2,000 and on one (campaign) day.\nFurthermore, the winner must provide a number of hard-working building helpers.\nWhat is the deal with the campaign day and the helpers?\nWith the support of the Sparkasse Zollernalb, Bauhaus will be providing the materials.\nThey will be delivered to the nursery schools on an agreed day and should there be assembled/made use of directly by the helpers.\nHelpers can include parents, grandparents, friends, organisations and, of course, the teachers and children themselves.\nKenyan press outraged at controversial media law\n\"It is a frightening place, and it is valid to ask: what is there to prevent Parliament from simply sweeping away the independence of the judiciary tomorrow?\" the paper said, challenging the bill as unconstitutional.\n\"This law is draconian and very punitive and we reject it,\" said Cyrus Kamau, managing director for Capital Group - home to CapitalFM, one of Kenya's most respected independent radio stations and news websites.\nHe said the new media tribunal \"will always be biased because it's an extension of the government,\" and that restrictions on content and advertising would damage Kenya's place in the global economy.\n\"I hope the president will listen to us, and we appeal to him to reject this bill and return it to the MPs,\" he said.\nAccording to The Star newspaper, the new bill will effectively hand the government \"a stranglehold over the media,\" while The Standard said democracy and free speech in Kenya had been \"dealt a major blow\" and lambasted the bill as \"draconian.\"\nThe passing of the bill comes amid a string of measures to reinforce national security in the wake of the September's attack by Islamist gunmen on the Westgate shopping mall.\nKenya media drew the ire of authorities by broadcasting security camera footage of troops who were dispatched to the scene of the attack purportedly robbing the upmarket mall.\nPolice chief David Kimaiyo reacted by summoning two journalists and a media executive for questioning, although the summons was retracted following a media outcry.\nUnder the new bill, media houses can be fined up to 20 million Kenyan shillings and individual journalists up to one million with the additional risk of being \"de-listed,\" or barred from receiving official press accreditation.\nThe tribunal also has the power to seize the property of an offender if a fine is not paid.\nAccording to the Daily Nation, \"even one fine is enough to cripple most FM stations.\"\nIt also said the measures could have a devastating effect on what it described as Kenya's \"lively blogosphere.\"\nBy silencing the media, politicians know they can do whatever they like with impunity.\n\"No one will ever know,\" wrote Nation journalist Mutuma Mathiu, describing the Kenyan media as a key source of checks and balances in public life.\n\"Left to themselves, politicians would bankrupt the country and take us back to hunting and gathering,\" he wrote.\nKenyan lawmakers have been the target of public anger in the past.\nIn May they voted to overturn cuts ordered by the national salaries commission and reinstate their hefty salaries of around 532,000 shillings a month tax-free - ranked among the highest in the world.\nBad-Dürrheim: A dream comes true for the FC\nThe official inaugural ceremony for the astro-turf sports field did not wane in significance for the town and the football club, in spite of the cold weather and rain.\nEveryone had hoped for more pleasant conditions for the ceremony last Saturday, however the weather gods chose not to cooperate.\nSo anyone who came without an umbrella, or for whatever reason could not hold onto one, drew the short straw.\nThis was the case for the musicians who accompanied the ceremony, as well as for a number of speakers.\nThus, FC Chairman Albrecht Schlenker, who spoke of the fulfilment of a dream, also got fairly wet.\nHis thanks went first and foremost to Mayor Walter Klumpp, who was heavily involved in the realisation of the project, the Town Council, the companies involved and club members who played a part.\nParticular mention went out to Lothar Held, Paul Weizenegger, Heiner Gail and Peter Graf.\nThe spry pensioners laid 400 square metres of flagging for the new paths.\nThis remarkable voluntary commitment was also honoured by Member of the State Parliament, Karl Rombach.\nFurther words of greeting were issued to the town Sports Commissioner, Hubert Baier, the District Chairperson of the Southern Baden Football Association, Kuno Kayan, and Friedrich Knorr from the planning office, who announced a donation to the club's youth division.\nMayor Klumpp recalled that weather-related influences in the Spring and Autumn had repeatedly afflicted the original sports field, to such an extent that it could not be played on.\nIt was way back 15 years ago that solutions to the problem were first considered, when the construction of a third pitch on the football club site or at the secondary school on Salinensee Lake were considered.\nBoth ideas were rejected.\nSix years ago, thoughts turned to laying an astro-turf pitch, which was generally viewed as the perfect solution.\nSpecific plans were drawn up two years ago, when the FC inherited the Schabelstube in leasehold, promised a contribution of EUR 100,000 for the construction of the pitch and the state approved a subsidy of EUR 104,000.\nIn October 2012, the Town Council decided to cover the remaining EUR 356,000 of the total cost of EUR 560,000, summarised Klumpp.\nWork began on the 68 x 108 metre astro-turf pitch on 4 June.\nDuring the construction phase, which lasted over three months, 3,000 cubic metres of earth were removed, of which half was used for the laying of a dirt bike track.\nUnion and SPD have continued their coalition negotiations, addressing the topics of internal affairs and justice.\nTo this end, the competent working group met this morning.\nAmong other issues, topics discussed included direct democracy, the bribery of MPs and the Federal Police.\nDuring the morning, the Migration and Integration working group also sought to continue its discussions.\nAmong the issues to be addressed was that of dual nationality, in which regard both sides have opposing ideas.\nThe SPD would like to put an end to the pressure placed on immigrant children to decide on one nationality - the Union rejects the notion of a dual passport.\nRegarding the subject of traffic, which was not on the agenda for this Friday, the SPD substantiated its opposition to a car toll charge promoted by the CSU.\nA toll road sticker would amount to a \"flat rate fee for frequent drivers and would thus be environmentally counterproductive,\" explained the SPD negotiator for issues relating to traffic, Florian Pronold, in a letter to his parliamentary group.\nThere would be a threat of diverted traffic on country roads, which are already accident hotspots.\nThe introduction of a toll for cars would also only be a first step, in Pronold's eyes.\n\"There is the risk that the compensation for Germans would be abolished at a later point in time,\" he said.\nDieter Thomas Kuhn in Stuttgart: The \"singing mountain wave\" on the open-air stage\nStuttgart - \"When will it be summer again?\" was actually not the question on people's lips at the Killesberg Open-Air Theatre on Friday evening.\nIt genuinely was a tropical evening in Stuttgart.\nThis therefore provided the ideal conditions for pop star, Dieter Thomas Kuhn, and his band.\nClick through the image gallery of the performance by the \"singing mountain wave\".\nCar driver seriously injured in accident\nA 37-year-old car driver from Aachen was seriously injured in an accident on Thursday evening.\nAccording to information from the police, a 41-year-old from Müsch was travelling in his car on the Kempener bypass in the direction of Grefrath, at around 9.15 p.m..\nAs he went to turn right onto St. Töniser Straße he failed to see the 37-year-old's oncoming vehicle.\nThe vehicles collided.\nThe Aachen resident suffered serious injuries and had to be taken to the hospital for treatment.\nKonstanz: Road block following accident on the Schänzle roundabout\nAccording to police, the accident occurred when a 51-year-old driver of a Swiss Seat Ibiza was travelling out of town in the left lane of the two-lane Reichenaustrasse.\nShortly before the Schänzle roundabout he noticed that was in the left-turn lane going in the direction of Stromeyersdorfstraße and moved across to the right lane.\nIn so doing, he collided with the BMW of a 23-year-old Konstanz resident, travelling in that lane.\nThe VW Passat of a 19-year-old driver travelling behind the BMW was also damaged.\nIn total, EUR 15,000 of material damage was caused, announced the police.\nThe road had to be blocked off while the accident was being investigated, the statement continued.\nVienna Airport abolishes passenger call-outs\nMr. Max Maier, please make your way to Gate 24.\nIn future, announcements such as this will no longer happen at Vienna International Airport.\nThe majority of loudspeaker announcements will cease - thus considerably reducing the noise level.\nThe goal of this adjustment is to create a more relaxing atmosphere.\nAs airport spokesperson Peter Kleeman announced to Radio Vienna that in adjusting the approach towards announcements, Vienna Airport is following an international trend.\nAmong others, the airports in Kopenhagen, Frankfurt and Dubai have already done away with the noisy call-outs.\nBy doing away with these announcements - on average around 200 personal call-outs come through the loudspeakers per day - the atmosphere in the airport should be calmer in future.\n\"Experience has also shown that these individual announcements are relatively seldom taken notice of, and at the same time, all other information regarding changes to departure gates or flight times are somewhat lost among them,\" said Kleeman while chatting to the radio broadcaster.\nHighland Games in Kaltenhof\nAlongside brake van pulling with tractors, there will also be a second contest at the agricultural autumn festival at Kaltenhof from 6 to 8 September.\nOn Saturday 7 September, the Highland Games will start at 1:30 p.m.\nWhile they are of course a Scottish tradition, they have been given a touch of Swabian colour at the Kaltenhof event grounds.\nTeams and individual competitors will be pitted against one another in the disciplines of tossing the caber, horseshoe tossing and bucket carrying.\nThe caber is four and a half metres long and weighs 25 to 30 kilometres.\n\"It isn't about the distance,\" explains organiser Peter Saile.\nThe log must be thrown vertically, somersault once and then finish lying straight.\nThis scores maximum points.\nIn tossing the horseshoe, it all comes down to accuracy.\nHorseshoes are thrown onto a peg from a distance of eight metres.\nParticipants must then prove their skill and strength by carrying a bucket of water 50 metres.\nTime is recorded and water quantity measured in a vat at the end.\nTwo members of each \"clan\" or team can then take part in the individual competition.\nThe winners of the team and individual contests receive prizes.\nTeams can practice from 10:00 a.m.\nSuitable clothing is desirable - for example competitors can wear kilts.\nHowever, Swabian traditional clothing is also permitted.\nThe judging panel will also award a few bonus points for \"outfits\".\nRegistration is open until a few hours prior to the beginning of the competition.\nWith the Scottish-Swabian Highland Games and the tractor pulling contest, which will begin half an hour beforehand, there promises to be a great deal of action at the event grounds on Saturday.\nIn the evening, fans of brass band music will be in for a treat of their own.\nAt 19:00, the \"biraböhmische\" (a play on words alluding to the regions pear trees, Bohemia, and perhaps their love of beer as well!) wind music group from Schömberg, provide a great evening of entertainment.\nThe band plays lively polkas and marches.\nHowever, their repertoire also includes emotive waltzes and a full big band sound.\nHeinz Koch from Weilen unter den Rinnen will also be there, better known as the 'singing inn keeper and black sausage baron\".\nIn the past, he has appeared at the Christmas market in Dornhan and the Narrenzunft (Fool's Guild event).\nOn Sunday, the Leinstetten Music Society will entertain audiences with a morning session, with the Böffingen Farmer's Band as guests from 2:00 p.m., and then the \"Oldies\" will bring the celebrations to a close.\nThe celebrations will get under way on Friday, with the \"Stoppelacker\" (Stubble Field) party featuring DJ Ralf.\nOther items in the itinerary on Saturday and Sunday include the vintage car and tractor meet and exhibitions by companies on the topic of agriculture and forestry.\nFurther attractions on Sunday are the corn maze, the craft market and sheep shearing.\nSpecially for children, there is a petting zoo, \"straw bouncy castle\", tractor driving (under supervision) and tractor surfing.\nThe event is organised by the community hall association, the ski club and the \"Zündkapsele\" (blasting caps) tractor enthusiasts.\nAn overview of milk and egg alternatives\nVegan nutrition promotes vegetable alternatives to eggs, milk and dairy products.\nMashed tofu with plant cream, for example, serves as a substitute for quark cheese.\nThe Vegetarian Association will provide further examples on World Vegan Day on 1 November.\nOn the occasion of World vegan Day on 1 November, the Vegetarian Association of Germany will propose a host of vegan alternatives:\nPure plant margarine is a good alternative to butter, while yoghurt can be replaced by soya yoghurt.\nSoya, oat, almond or rice milk can be used in place of milk.\nPlant whipping cream can replace traditional whipping cream.\nThere are also plant alternatives to eggs.\nHalf a mashed, ripe banana, for example, can replace an egg as a binding agent in a cake.\n50 grams of apple sauce or a tablespoon of ground linseed plus three tablespoons of water are also suitable.\nA dough becomes fluffy by replacing egg with a mixture of one tablespoon of baking powder, one tablespoon of cornflour and three tablespoons of mineral water, for example.\n50 grams of soya yoghurt or silken tofu can also fulfil this purpose.\nAccording to information from the Vegetarian Association, around 800,000 Germans currently have a vegan diet, i.e. a 100% vegetable diet.\nSleepless in New York\nOn the way to their host families in Weymouth, Massachusetts, the pupils of the Schwarzwald Grammar School got to know the American city of New York.\nAfter an eight-hour flight, they headed straight for Brooklyn Bridge, via which the heart of the city, Manhattan, can be reached on foot.\nFrom here there is a fascinating view of the world-famous skyline, which is particularly impressive in the evening light.\nDue to the time difference, the pupils had been on the go for almost 24 hours, however, true to the slogan, \"the city never sleeps\", the day was rounded off with a trip to Times Square.\nIn spite of a shutdown, they were able to visit the Statue of Liberty on the second day, and climb the statue on foot.\nThey then moved on to the Financial District, via Wall Street, to visit the 9/11 memorial.\nOn the third day, the pupils were able to take in an overview of the fascinating city from the viewing platform of the Empire State Building, enjoying the views from a height of 373 metres.\nThey then made their way through the hustle and bustle of the New York streets, via the Rockerfeller Center, to Central Park, which provided the perfect opportunity to rest a while in the Autumn sun.\nFollowing a short flight from New York to Boston, the pupils have now arrived with their host families and are experiencing the school day at Weymouth High School.\nOnce again this year, on Saint Hubert's day, a Hubert mass will be celebrated in the Parish of St. Marien on Hülsbergstrasse.\nSt. Hubert was, according to legend, a truly ruthless hunter, who converted following a vision and was later appointed Bishop of Lüttich.\nHunting horn group \"Jagdreiter Westfalen\", under the directorship of Brigitte Kluth, played old, traditional French melodies on parforce horns (natural horns in the key of E flat).\nThe wind players wear riding clothes, as they provide musical accompaniment mainly for riders, horses and packs of hounds on drag hunts.\nThe solemn mass is to take place on Sunday 3 November at 11.30 a.m.\nThe newly designed Opschlag stands out with a new café.\nOne that invites you to linger a while and to come again.\nOne that wants to get its name out there.\nAccording to dictionaries, déjà vu is defined as a psychological phenomenon, which expresses itself in the feeling of having already experienced or seen a new situation.\nIn the case of a visit to the café of the same name at the Opschlag in Kleve County, with a view of the Rhein-Waal University, it doesn't always have to remain a pure déjà vu feeling.\nUltimately, this is precisely the aim of the café with the wonderful name: to make an actual visit and something that can be repeated on a recurring basis, not just theoretically, but tangibly.\nBecause it is fun and simply beautiful.\nA glance into the internal workings at Opschlag 8 gives the onlooker a positive feeling right from the outset.\nWith its ultra-modern yet cosy café ambience, it looks like a place designed to make you feel good.\nThe team here, with business founders, Mirjam van der Stelt and Daniel Büttner at the helm, spoils guests with a wide range of coffees and cocktails.\nIn addition to this, there are delicious cakes or freshly baked baguettes, filled to order.\nThe owners, both 33 years old, have already made a name for themselves as restaurateurs prior to opening the chic café on the Opschlag: They previously managed the \"Art Lounge\" in Kranenburg.\nBy moving to Kleve on the Opschlag, the friendly café lovers hope to reach a wider audience.\nNot least through university customers.\n\"We don't have a specific target group,\" emphasises Daniel Büttner.\nIn actual fact, here the pair hope to appeal as much to young students as they do to senior citizens and all age brackets.\nSpeaking of café lovers...\nThe two friendly owners are motivated by their love of coffee.\nThey themselves enjoy the fragrant, hot brew in a variet of formats.\nEspresso fan\nDaniel Büttner is more of an espresso fan, while Mirjam van der Stelt is the cappuccino drinker.\n\"And a baguette with it - that's my thing,\" she revealed to the NRZ.\nThere have already been two events held in the brightly lit café.\nOr perhaps more accurately, one.\nThis is because the Hafenfest took place more outside than in - Café Déjà Vu did not benefit from it.\nHowever, there was also the Ringelnatz evening.\nThe two 33-year-olds found it \"beautiful, successful and funny\".\nBut it was not for everyone.\nPerhaps this is why Daniel Büttner is not a vocal fan of evening events: \"You just cannot please everyone\".\nAnd with an event, I am always only appealing to those who have expressed an interest in the special event.\nFor this reason, events will always be an exception to the rule for us.\n\"We want to cause as little disruption as possible to normal business\".\nThat is to say: Déjà Vu also stands for reliability.\nThis is with regard to the quality of the products that are offered here, as well as the team and the fantastic setting on the Opschlag in Kleve.\nThe street that is fast becoming a 'restaurant mile'.\nThis is to the delight of many Kleve residents, guests from near and far and the students who are discovering the 'restaurant mile', and with it the Café Déjà Vu, for themselves.\nAnke Gellert-Helpenstein\nA day of thanks with the MGV (Male Choral Society) in Dinker\nThis year the \"Friedrich Wilhelm Dinker\" MGV issued an invitation to its 165th anniversary celebration, which 52 guests, active singers and their wives were happy to accept.\nIn the clubhouse at the \"Witteborg\" Inn in Dinker, all those present enjoyed the friendly get-together in the name of music.\nTraditionally, the anniversary celebration is also always the fitting occasion to bestow honours.\nThis time around, secretary Rolf Wagener was delighted to receive the special \"Singer of the Year\" award.\n\"Not only have you kept countless records for us, but you have also done so much running around for us, and for this we offer our sincere thanks,\" said Choir Chairman Erich Schlotmann.\nThe awards for participation in the performances and choir rehearsals by means of the presentation of \"activity posies\", this year went to Choir Director Dieter Schulze, with 44 attendance marks, followed by Honorary Chairman Horst Pier-Ribbert, the Chairman himself, and last year's \"Singer of the Year\" Friedrich Winkler, each having attended 42 times.\nFifth place went to Artur Brückner, responsible for organising music copies.\nThe Board of Directors gave special thanks to the team managed by innkeeper, Ange Pier-Ribbert, which once again delighted those present with a top class menu, and to Gerda Pier-Ribbert for the table decorations.\nThe \"Friedrich-Wilhelm\" MGV meets for its regular choir rehearsals in the clubhouse every Tuesday at 19:45.\n\"New voices that love to sing are more than welcome any time,\" said Schlotmann.\nUN hails new goals to tackle poverty\nThe United Nations is to start work immediately on a new set of goals to replace the millennium development goals, which were put place 12 years ago to tackle global poverty.\nAustralian diplomats played a key role in pushing for \"sustainable development goals\" to replace the MDGs, which expire in 2015, ahead of the UN sustainable development summit that began in Rio de Janeiro overnight.\nThey were included in the final draft of the document, which will be endorsed by world leaders including Ms Gillard during the summit.\nUN Secretary-General Ban Ki-moon told the summit overnight that now is the time to \"rise above national interests.\"\n\"I am pleased that member states have agreed to launch and take ownership of a process to establish universal sustainable development goals - SDGs,\" he said.\nThese SDGs will build on our advances under the millennium development goals, and they will be an integral part of the post-2015 development framework.\nI will spare no effort to implement the mandate given to me by member states to realise our vision of sustainable development goals that build on the success of the MDGs.\nEven though the SG Achim/Baden has gone four match days without victory, a positive mood is still prevailing within the top flight handball team.\nTrainer Tomasz Malmon will not let there be any doubt of this fact.\nEveryone is still fully motivated for the task at hand.\nThat said, I do hope that we finally start winning again.\n\"I no longer remember how a victory like that tastes,\" said Malmon, anticipating success for his team at VfL Fredenbeck II.\nEven though the third-tier reserves from Fredenbeck are no't exactly in the best form at the moment, Malmon has issued a warning in advance\nI trained many of the players myself in the A-Youth.\nConsequently, they will be particularly motivated playing against their former coach.\n\"In addition, we will have to wait and see whether reinforcements from the first team will be there,\" explained the SG coach.\nIn any case, if they are to finally get back on the winning track, Malmon's team will have to improve on recent performances.\nThere have been major problems, primarily in terms of covering and counter attacking.\nThe team's eye for the goal must be considerably improved.\nTherefore, I hope that my players have finally managed to clear their heads during the short break.\nMozambique security concerns mount as powerful personalities clash\nWith a statue of Samora Machel, Mozambique's founding president, staring down on them, thousands of people gathered in central Maputo to chant peace slogans in a rare public demonstration.\n\"We want peace back; we want stability,\" said Vanessa de Sousa, chief executive of an investment company.\nFearful about the future of her country, she swapped her corporate attire for a T-shirt emblazoned with \"we demand security\" in Portuguese as she joined the crowds in the capital's Independence Square on Thursday.\nFor two weeks, there have been almost daily reports of clashes between government forces and Renamo, some of the worst skirmishes since a peace deal more than 20 years ago.\nRenamo was once a notorious rebel movement, initially backed by white-ruled Rhodesia and then South Africa's apartheid government as part of efforts to destabilise the country's independent government.\nAfter a 1992 peace deal, it became an opposition party.\nAnalysts believe the country is unlikely to slide back into full-blown conflict, but recent events have unnerved foreign investors and locals.\nThe stakes are high for the fast-growing economy as the discovery of huge offshore gas reserves and coal deposits in the northwest could bring in more than $50bn of investment over the next few next years from companies including Rio Tinto, Vale of Brazil, Eni of Italy and Anadarko of the US.\nThe ruling Frelimo party, the dominant political force since 1975, and Renamo blame each other for the tension.\nRenamo says the government initiated the latest clashes by launching an attack on its members in Sofala province, traditionally a Renamo stronghold, on October 17.\nAssaults on the former rebels then escalated as government forces attacked Renamo bases and attempted to kill Afonso Dhlakama, the group's leader, Fernando Mazanga, Renamo's spokesman, told the Financial Times.\nThe government blames Renamo for triggering the clashes, accusing it of attacking soldiers.\nPresident Armando Guebuza has sought to play down concerns about instability.\nMr Guebuza told AFP, the French news agency, on Wednesday that Mr Dhlakama saw himself as a \"loser\" who wanted to use \"whatever remains of his forces to try to prove that he can impose on the government his own decisions.\"\nBoth Frelimo and Renamo insist they want to avoid war.\nBut concerns have grown after Mr Mazanga was quoted as saying Renamo was abandoning the 1992 peace accord.\nHe told the FT that he meant the agreement was no longer being respected by Frelimo.\n\"Our vision is to come back to negotiations, but with seriousness,\" Mr Mazanga said.\nPrevious talks between the parties have done little to ease tensions fuelled by a series of clashes this year.\n\"It's two big men (Guebuza and Dhlakama) butting heads together,\" said Joseph Hanlon, a lecturer at the Open University and Mozambique expert.\nNeither of them are good negotiators and neither of them are prepared to make the kind of concessions that are necessary.\nRenamo, which has been pushing for electoral reforms, had already said that it would boycott municipal elections due in November.\nPresidential and parliamentary polls are scheduled for next year.\nSome commentators have interpreted its use of force as the attempt of an ailing movement to win concessions and financial spoils from the government.\nRenamo's share of the vote has been declining since 1992, while a newer party, the Democratic Movement of Mozambique (MDM) which was formed by a former Renamo member, is expected to improve its showing at the elections.\nMr Mazanga says Mr Guebuza - who is due to step down when his second term ends next year - wants to destroy the country's democracy.\n\"He does not want multi-party democracy, he does not want transparent elections he does not want peace because he does not want to leave the presidency,\" Mr Mazanga said.\nIt is unclear how much capacity Renamo has, but it has carried out disruptive hit-and-run attacks on police stations and vehicles on a key north-south highway.\nMost of the skirmishes have taken place in Sofala province, which is several hundred kilometres north of Maputo, but hosts Beira, the port that miners, including Rio Tinto and Vale, rely on to export coal.\nIn June, Rio suspended its use of the railway for about a week after Renamo threatened to attack the line.\nMr Mazanga was coy when asked about whether Renamo would repeat this threat.\nRenamo wanted to \"warn the international community that things were not going well in Mozambique,\" Mr Mazanga said.\nThe instability has added to frustrations with the government, says Fernando Lima, head of Mediacoop, an independent media company, with many people also concerned about corruption, the slow pace of development and a recent spate of kidnappings.\n\"People think the ones responsible for the future of the country are the government and the president, and he should be the one to find solutions for the problems,\" he says.\nOmar Sultuane, a demonstrator, said people just wanted stability.\n\"No one cares about Renamo and Frelimo, they just want peace again, they want free access to the roads,\" he said.\nChildren should be taught myths and legends as \"models for a way of life\", author says.\nTales of Thor could show \"brute strength is no match for subtle trickery,\" while the Arthurian legends reveal the importance of having a dream.\nSaying many of the myths would be \"far too wild, far too scandalous and in some cases far too filthy to be taught in schools,\" Crossley-Holland advocated a \"careful selection\" of age-appropriate works.\n\"I find it wonderful that in America, myth and folklore already has a part in education,\" he said.\nI have been advocating it as a plan for twenty years.\nHe added authors and teachers being \"overtly didactic\" is a \"total switch-off\" for children, with messages being \"subliminated\" in enjoyable stories.\nCrossley-Holland, who has translated Beowulf from Anglo-Saxon as well as writing the Penguin Book of Norse Myths and British Folk Tales, said: \"You may well have intentions but you do better to keep them well out of sight.\"\nPerhaps the big difference between an adult author writing for an adult and an adult author writing for a child is the necessity for some sense of hope.\nNot that everything has to be simplified or come to a happy ending, but that there is an innate sense of good and evil.\nAnd that must be subliminated; revealed through a story rather than stated.\nThe old basis of showing not telling.\nHansjakob back in Freihof once again\n100 years ago, Heinrich Hansjakob moved into his retirement home in Haslach, on Sunday his final years in the \"Freihof\" were brought to life.\nThe large audience was inspired by the extremely amusing role play.\nFrom his arrival, to his being conferred with honorary citizenship and his death, Alois Kraftzcyk, the scriptwriter and actor portraying Hansjakob, has written an entertaining play, which received great acclaim under the directorship of Cornelia Volk.\nMarcus Zagermann, serving as narrator, guided the audience through the ten different scenes, explained circumstances and provided links explaining leaps from his youth to the time when he was approaching retirement.\nOn 22 October 1913, Hansjakob returned home to his childhood paradise, to his Freihof.\nIt was there that the role-play began, with Alois Krafczyk shining once again in his famous role as the town's great son.\nTrue to style, he travelled with a two-horse carriage drawn by \"Schwarzwälder Füchsen\" (Black Forest Chestnut Horses) owned by Erich Becherer from Mühlenbach.\nNot only was he received with great applause from the audience, but was also welcomed by his sister Philippine.\nBilly Sum-Hermann managed unbelievably well to place herself in the role of the sister and brought the character to life amazingly well, in terms of both her expressions and gestures.\nBetween the individual scenes, the Mühlenbacher Bauernkapelle played appropriately selected musical pieces, thus rounding off the performance.\nThe honour of presenting the title of honorary citizen went to Haslach's Mayor, Heinz Winkler, who, together with a section of the Town Council, made an appearance representing the Mayor of Hüttich from back in Hansjakob's day.\nThe \"Dreikönig\" singers then made their own appearance, leading Hansjakob to exclaim: \"Oh how beautiful, this brings childhood memories of my own time in a Dreikönig group back to life\".\nWith their song, \"O Jesulein\", they delighted the audience in the Freihof, as did the \"Storchentagskinder\" with their loud cries of \"Heraus, Heraus\" .\nIn his day, Hansjakob expressed his criticism of the institutional church, as well as his concerns regarding the excesses in the rural economy, the consequences of industrialisation and the effects of the war.\nHe found his place of rest on his native soil, behind his mausoleum on the Brand near Hofstetten.\nThe role-play ended with the words \"A restless spirit finally found rest and returned home forever\".\nThe performance received great applause and many words of praise from the audience.\nBasketball: Hopes are growing for the Neckar Riesen (Neckar Giants).\nThe chances of the relegated Ludwigsburg Budesliga basketball players remaining in the league have improved.\nThis is because there is to be a wild card procedure, and the Neckar Riesen are now up against one applicant fewer.\nThe Hamburg Towers basketball project is declining to make an application for a possible stand-in place.\n\"We will not participate in the wild card process,\" said former national team player Pascal Roller, who has been putting together the concept for a professional club in the Hansa town since 2012.\nHowever, there was no sigh of relief to be heard from Ludwigsburg.\n\"We are not concerning ourselves with the wild card process until it is certain that Düsseldorf is not receiving a licence,\" said boss of the Neckar Riesen Alexander Reil, speaking to our paper.\nNewly promoted Düsseldorf Baskets have until 23 May to submit documents to the arbitration panel and prove their financial fitness for the Bundesliga.\nHowever, the Rhineland team have already been refused the licence twice.\nThe Court of Arbitration is the authority of last resort.\nHaigerloch: Focus on the Abendmahlskirche\nAs the town's contribution to the 150th anniversary of the Protestant Church in Haigerloch, the town's Office of Culture and Tourism is to dedicate the last of this year's public thematic tours on Sunday 27 October to the Abendsmahlskirche (Church of the Holy Communion).\nFollowing a visit to the Nuclear Bunker Museum, the focus will turn to Haigerloch in the period after 1850, when Haigerloch came under Prussian rule.\nThe crowning glory will be a visit to the Abendmahlskirche.\nThere the participants of the tour will be told the story of the construction of the church and will gain insight into the development of the Protestant congregation, in what is a Catholic area through and through.\nLast but not least, while in the church eyes will also turn to the last supper painting, painted by Friedrich Schüz with the support of Walter Kröll and Georg Halbritter.\nIt is a faithful reproduction of the famous work Leonardo da Vinci in Milan.\nThe meeting point for the one and a half hour tour is the Nuclear Bunder Museum, at 3:00 p.m.\nTickets are available from the ticket office at the Nuclear Bunker Museum.\nThe Haigerloch Town Tourist Office is available for questions and to provide you with information.\nSnowden may make further statements in Russia\nThe former US intelligence expert, Edward Snowden, may make further statements regarding the US espionage scandal from his Russian asylum.\nRepresentatives of the Federal Prosecutor could either submit questions in writing or meet the 30-year-old in person in Russia.\nThis was reported by the Interfax Agency with reference to groups aware of the situation, which were not named in greater detail.\nSuch matters are to be clarified at an intergovernmental level, it was stated.\nA departure of Snowden from Russia is virtually impossible.\n\"If this were to happen, he would lose his status as a refugee,\" said the Agency, quoting their source.\nBecause Germany is an ally of the USA, Snowden would be at risk of deportation if he were to travel there, the source continued.\nEndurance pays dividends\nSix teams battled to become champion at the club tennis tournament.\nIn the end, it was the endurance of the Maier/Bronner team that decided the final match.\nThe tennis division of the Sportfreunde Rohrdorf (Rohrdorf Sports Fans) enjoyed perfect weather for the tournament for local clubs and enthusiasts.\nThe focus of the tournament was on the fun of playing tennis.\nFive matches were scheduled for each team, with every team playing one match against all the others.\nThe matches were doubles matches with a long set up to nine points, or a maximum duration of 45 minutes.\nAnja Schlichter managed the tournament\nThe organisation of the tournament was placed in the trusty hands of Anja Schlichter, who was supported by Carmen Müller and Inga Kronemeyer.\nAfter the first three matches and a lunch break with pasta, the tournament moved into the crucial phase.\nThe favourites, Andre Maier/Matthias Bronner, were tied with Michael Klippel and Sadmin Osmicic (both teams from the SG Rohrweiler), meaning that the last two games had to produce a victor.\nAt the awards ceremony, Carmen Müller finally had the pleasure of presenting the Challenge Cup to Andre Maier and Matthias Bronner, who had shown the greatest staying power on the final leg.\nSecond place was taken by the Michael Klippel / Sadmin Osmicic partnership.\nBronze went to Rainer and Bernd Maier of the Asphaltriecher team.\nIn the late afternoon sun, accompanied by coffee and cake, the tournament drew to a successful close.\nOn the last weekend in August, the Vogtsbauernhof Black Forest Open Air Museum in Gutach near Hornberg will once again be firmly in the hands of children.\nTraditionally, the museum welcomes visitors on a Saturday and Sunday, this year on on 24 and 25 August, to a colourful party for children and families as part of the summer holiday programme, with numerous participation activities and events.\n\"On both days, adults and children alike can learn various traditional handicrafts,\" said the press release.\nWhether producing soap, turning candles, felting or making silk, there is a suitable activity whatever your age.\nThe children will receive help from regional artisans, present from 11.00 a.m. until 5:00 p.m.\nActivities will also be taking place in the museum workshop.\nThe young guests will be able to demonstrate their manual skills building cuckoo pipes, water wheels or spinning tops.\nThe host of old games, such as wheelbarrow racing or walking on stilts, promises plenty of fun.\nHere speed and coordination are the order of the day.\nFor any miniature detectives, the open air museum will be offering a mystery tour through the museum on Saturday and Sunday, at midday and 2.00 p.m. respectively.\nOn a tour of the premises, the children will have to work out which stories are true and which have been made up.\nIn addition, visitors will have the special opportunity to get to know the open air museum on a carriage journey drawn by Black Forest Chestnut horses.\nIt is not just horses that can be found and admired on the grounds, but many other animals such as sheep, goats, cows and chickens as well.\nOn the Sunday the children will also be able to enjoy the clown, Otsch, who will be doing pranks with the museum guests from 11.00 a.m.\nMeanwhile, a cosy and magical alternative will be provided by Hermann Büttner.\nThe story-teller will be taking the younger guests to the wonderful world of fairytale at 11.00 a.m., 1:00 p.m. and 3:00 p.m.\nThe traditional children's dance group from Gutach will also be performing at 11:30 a.m.\nFurthermore, on both event days, from 11.00 a.m. until 5.00 p.m., numerous artisans such as the broom maker, the sewer, the spinner, the weaver and the baker will be letting visitors look over their shoulders.\nSo, visitors to the open air museum can expect a varied holiday programme right through to the end of the summer holidays in Baden-Wuerttemberg.\nIn a small town in New Zealand, Burt Munro is considered a lovable oddball, all because he resolved to compete in a race in America with his 1920 motorbike.\nIn spite of his heart defect, Burt could not be deterred from pursuing his dream.\nWith his savings, a few donations and a mortgage on his old workshop, he set off to Los Angeles by ship.\nThe film will be followed by coffee, tea and cake.\nPiercing beep disturbs residents\nRhenus Midgard has also invested highly in land\nThey stockpile the coal that arrives on ships.\nAt the same time, the company also has other irons in the fire at the location.\nBesides coal imports, Rhenus Midgard is also active in the field of wind park logistics, among other ventures.\nThe coals shimmer black in the storage yard in front of the embankment.\nHere two huge blue stacker and reclaimer machines distribute or load the coals as required.\nWith each movement of the handling machines, a shrill warning noise rings out over the site.\n\"The signals are for the purpose of security and are legally prescribed,\" said Matthias Schrell, Managing Director of Rhenus Midgard in Wilhelmshaven.\nUnfortunately, in the event of unfavourable wind, they can be heard from far away - and as a result there have already been a number of complaints from people from the north of the town.\nThe 40-year-old said that he is taking the complaints very seriously and has therefore been in touch with those affected.\nIn close consultation with the authorities, we are now in a position to make the warning signals quieter by means of the implementation of technical measures.\nIn future he will also seek open dialogue with neighbours.\nFor Matthias Schrell has some further plans at the location.\nWith the construction of the Lower Saxony Bridge, Rhenus Midgard is continuing to focus on coal exports for power stations and is one of the major powers in this sector in Europe.\nThanks to the mooring basin to the front of the terminal, sunken to a depth of 18.5 metres, it has for some time now been possible to unload Capesize bulk carriers here.\n\"In terms of handling, this year we hope to break the 3 million tonne mark,\" said Schrell.\nAlongside the local Eon power plant, the imported coals also go to power plants inland.\nWhen the GDF-Suez plant is added to the network, around 5 million tonnes of coal imports per year will be realistic.\nThe three ship unloaders on the bridge and the second transport belt could see this rise to 10 million.\nBavaria's basketball players optimistic in spite of first defeat.\nEven their first defeat in the Euroleague could not curtail the huge optimism of the FC Bayern München Basketballers.\n\"No-one can stop us believing that we can win, even against the best team in Europe over the last two years,\" assessed Bayern coach Svetislav Pesic following the unfortunate 83:88 (39:47) defeat to title defenders Olympiakos Piräus on Thursday evening.\nWe have delivered a message: Basketball also exists in Munich!\nIn their first three appearances in the European top flight, the Munich team put in a good performance for long periods, but in the crucial phases were not sufficiently focussed.\nInitially the guests managed to turn a 15-point deficit into a lead, with 13 minutes to go, before Piräus was able to turn the game around once again.\n\"We fought back incredibly well against the two-time Euroleague champions, but then once again made careless mistakes.\nWe are proud of our performance, but we want to win every game.\nMalcolm Delaney and Nihad Djedovic were the most successful strikers for the Munich team, who had celebrated clear wins against the Italian Series champions Montepaschi Siena, and the Polish title-holders, Zielona Góra, in their first two games.\nBen Greenman: The Tenth Anniversary of the New York Comedy Festival: The New Yorker\nOne could argue that New York City is the birthplace of standup comedy in America: nearly a hundred years ago, the vaudevillian Frank Fay, who served as the master of ceremonies at the Palace Theatre, on Broadway, started telling jokes directly to the crowd, in a conversational manner.\nFay's innovation has been extended through the years, most recently by the New York Comedy Festival.\nCreated and overseen by Caroline Hirsch, the founder of the standup institution Carolines, the festival celebrates its tenth anniversary this year, with more than sixty shows at small clubs and large theatres.\n\"Most of these headliners appeared at Carolines, and went on to greater success, to the point where they're too big to play a club,\" Hirsch said.\nWe built this festival as a way of continuing to work with them.\nThis year's event includes appearances by Wanda Sykes, Kathy Griffin, and Bill Maher, as well as \"Stand Up for Heroes,\" an annual music-and-comedy benefit for military veterans, at Madison Square Garden, featuring, among others, Bruce Springsteen, Jon Stewart, Roger Waters, and Bill Cosby.\nAs the festival has expanded, so has the world of comedy.\nSeveral of the comedians participating in this year's festival came up through nontraditional channels, such as shows on smaller networks, like Comedy Central, FX, and Spike.\nNick Kroll rose to prominence on a deep-cable sitcom (FXX's gleefully raunchy fantasy-football-themed \"The League\") and now has his own Comedy Central sketch show.\nJenny Slate has been a cast member on both \"Saturday Night Live\" and \"Parks and Recreation,\" though she is best known for her viral video series \"Marcel the Shell with Shoes On.\"\nBoth Kroll and Slate, as well as other young comedians with distinctive voices (the surreally pessimistic Anthony Jeselnik, the wry, racially focussed W. Kamau Bell), are products of the decentralized world of American comedy.\nOne of the festival's biggest draws will be an interview: David Steinberg talking to Larry David.\nSteinberg started as a standup comedian but has become an accomplished television and film director, as well as an unofficial comedy historian.\nFrom 2005 to 2007, he hosted a show on TV Land called \"Sit Down Comedy with David Steinberg.\"\nThe meeting takes place at Town Hall, in the center of Manhattan.\n\"The city is definitely in the comedy DNA of all of Larry's work,\" Steinberg said.\nHe was telling me that, when he's here, sometimes he'll walk down an alley between two buildings and think to himself, Hey, if I lose all my money, maybe I'll live here.\nIran satisfied with the nuclear negotiations process\nIran has expressed satisfaction with the negotiation process, one week before the next nuclear meeting with the five UN veto powers and Germany.\n\"After many years, we have now reached an agreement with the International Nuclear Energy Authorities to clear up the differences from past years,\" wrote Foreign Minister Mohammed Dschawad Sarif on his Facebook page.\nIt will without doubt be a long path, but the chief nuclear negotiator is satisfied with the negotiation process and is also optimistic that both sides will come to a solution in the end.\nDrama in Uruguay: Boys kill playmate with machetes\nTwo children have confessed to the murder of an 11-year-old in Uruguay.\nThe two boys, aged 14 and 12, had invited their victim to go bird hunting with them.\nOn Tuesday, armed with machetes and knives, they stabbed the 11-year-old to death and threw the body into a well, reported the \"El País\" newspaper on Thursday.\nThey then went and played football in front of their homes in a working class district.\nThe body was found the following night in the village of Cerro Pelado, 15 kilometres to the north of the exclusive beach resort of Punta del Este.\nA five year-old half-sister of the younger offender, who they took with them, was to make a statement as an alibi, stating that she was sexually assaulted by the boy.\nHowever, when the girl described the progression of events to the police without mentioning an attack against herself, the two boys confessed to the pre-meditated murder of the 11-year-old.\nThe older of the pair cited a rivalry on the football field as the motive.\nHe was provisionally taken to a psychiatric young offenders institute.\nPimp must go to prison\nThe District Court of Constance has condemned a 33-year-old man from St. Georgen to three and a half years in prison for exploitative human trafficking, pimping, issuing threats and grievous bodily harm.\nThe former German soldier who, following two tours in Afghanistan, had worked as a doorman, made a confession within the context of a plea-bargaining procedure.\nAccording to the confession, on five occasions he got to know women via Internet or telephone contacts, who he then sent out onto the streets against their will after a few weeks.\nHe broke any resistance by means of violence and the issuing of threats.\nHe kept the income from women, some of whom worked for him for years.\nHe prevented the women from making contact with the outside world by confiscating their mobile phones and SIM cards.\nTogether with an accomplice, who procured the women, he brought them to various brothels in the south-west.\nThere he had them monitored to some extent, in order to control their income.\nAppearing before the court, the accused initially claimed that he was suffering from severe trauma after colleagues serving alongside him in Afghanistan had lost their lives in an explosion.\nOnce a psychiatric expert had cast considerable doubt on him suffering from any psychiatric condition, and thus on his limited culpability, the 33-year-old made a full confession.\nThe court did not have to question any more of the female victims.\nAs an official from the Criminal Investigation Department reported, following the first conviction achieved using telephone surveillance measures, at least four further cases of exploitative human trafficking could be identified.\nThe intercepted conversations were characterised by a high level of aggression.\nIn subsequent hearings, the victims confirmed their ordeal.\nA further witness, whereby one of the woman had suffered blue bruises all over her body, is yet to make a statement.\nThis is a case of a \"completely broken personality\", that views the violence and exploitation in this field as normal.\nYesterday the accused expressed regret for his behaviour.\n\"I have removed myself from these circles and hope to lead a completely normal life following my imprisonment,\" he stated.\nOil extends drop toward $96 a barrel\nThe price of oil continued to fall on Friday as concerns over high supplies offset a report showing China's power-hungry manufacturing sector is strengthening.\nBenchmark U.S. crude for December delivery was down 14 cents at $96.24 a barrel by late morning in Europe in electronic trading on the New York Mercantile Exchange.\nThe contract fell 39 cents on Thursday, leaving it down 5.8 percent for the month of October.\nAmple supplies of crude have weighed on the price in recent weeks.\nThe Energy Department said Wednesday that U.S. supplies increased 4.1 million barrels last week.\nOver five weeks, supplies have risen by more than 25 million barrels.\nBut a suggestion of stronger demand came Friday from two reports on Chinese manufacturing that showed an uptick in activity.\nThat suggests China's economic recovery could continue to strengthen after growth rebounded to 7.8 percent in the third quarter from a two-decade low in the previous quarter.\nBrent crude, a benchmark for international crude also used by U.S. refineries, fell 26 cents to $108.58 a barrel on the ICE exchange in London.\nCourt blocks ruling on NYPD stop-and-frisk policy\nA federal appeals court on Thursday blocked a judge's order requiring changes to the New York Police Department's stop-and-frisk program and removed the judge from the case.\nThe 2nd U.S. Circuit Court of Appeals said the decisions of Judge Shira Scheindlin will be stayed pending the outcome of an appeal by the city.\nThe judge had ruled in August the city violated the Constitution in the way it carried out its program of stopping and questioning people.\nThe city appealed her findings and her remedial orders, including a decision to assign a monitor to help the police department changes its policy and training program associated with it.\nThe appeals court heard arguments Tuesday on the requested stay.\nThe appeals court said the judge needed to be removed from the case because she ran afoul of the code of conduct for U.S. judges by compromising the necessity for a judge to avoid the appearance of partiality in part because of a series of media interviews and public statements responding publicly to criticism of the court.\nThe judge had ruled that police officers violated the civil rights of tens of thousands of people by wrongly targeting black and Hispanic men with its stop-and-frisk program.\nShe appointed an outside monitor to oversee major changes, including reforms in policies, training and supervision, and she ordered a pilot program to test body-worn cameras in some precincts where most stops occur.\nIn August, New York City agreed to end the practice of storing the names and addresses of people whose cases are dismissed after a police stop.\nAn oral argument on the city's appeal is scheduled for sometime after March 14, 2014.\nThe stop-and-frisk tactic has been criticized by a number of civil rights advocates.\nStop-and-frisk has been around for decades in some form, but recorded stops increased dramatically under the administration of independent Mayor Michael Bloomberg to an all-time high in 2011 of 684,330, mostly of black and Hispanic men.\nA lawsuit was filed in 2004 by four men, all minorities, and became a class action case.\nSupporters of changes to the NYPD's stop-and-frisk program say the changes will end unfair practices, will mold a more trusted and effective police force and can affect how other police departments use the policy.\nOpponents say the changes would lower police morale but not crime, waste money and not solve a broader problem of a police force under pressure after shrinking by thousands of officers during the last decade.\nThe judge noted she wasn't putting an end to the stop-and-frisk practice, which is constitutional, but was reforming the way the NYPD implemented its stops.\nOn the happiness of dreaming camels\nHappiness is an oasis that only dreaming camels manage to reach\nIt was with this piece of Bedouin wisdom that the first ever chairman Wolfgang Henne described the history and fascination behind the \"Helping Hands\" society.\nSaturday evening saw the celebration of the tenth birthday of the organisation, which can already look back on impressive results.\nFounding Chairman Henne reported in depth on the work of the organisation.\nIn 2004, he visited the Cheijk-Zajed Hospital in Nouakchott in Mauritania for the first time.\nAs a result, an important collaboration was developed and the gynaecologist, Hanne, has performed countless operations on several journeys to the location.\nDuring the speech, images from the trips were shown on a large screen, in order to give the guests at the anniversary event an insight into the initiatives mentioned.\nThe organisation's desert vehicle was also shown.\nIt is a former federal border protection vehicle.\nRainer Prewo, the former Lord Mayor of Nagold, made the suggestion of equipping this vehicle with a photovoltaic system and, according to Henne, he is now planning to assume an advisory role within the organisation.\nIn 2008, the Schleeh carpentry company from Baiersbronn built the hospital station in Socogim, a poor district on the edge of the Capital, in the record time of less than one week - free of charge.\nHenne also mentioned a new mother and child hospital in Nouakchott\nThis is particularly interesting at a time when Nagold is set to do away with its maternity clinic.\nYou learn a great deal working as a doctor in Africa, said Henne, for example that you should slow down to avoid burn-out.\nDue to the political unrest in the country, it has not been possible to make as many journeys as planned, but for this reason, many local doctors have come to Germany, to sit in on lectures on a variety of topics.\nIn addition, containers with materials are regularly sent to Africa, for example in March of this year when medical devices, medicines, bandaging material, hospital beds and spectacles were sent.\nCo-initiator Hans-Joachim Fuchtel himself provided plenty of local colour, telling of Mercedes vehicles in Mauritania converted into mobile goat stalls and sharing the experiences of the Stammheim musicians, who traditionally support the organisation on their trips to Mauritania.\nHe identified his personal motivation as being his work in the area of auditing as a young member of parliament.\nWhen it became clear to him how much money is wasted, he decided to help the Africans with controlling of their budget by the people.\nFuchtel also emphasised that a global economy requires global human kindness.\nThe fact that Africa lies closer than many think should by no means be forgotten.\nAfrica is not at all that far from Gran Canaria.\nCoulson used phone hacking to verify tip\nFormer News of the World editor Andy Coulson allegedly used \"phone hacking, surveillance and confrontation\" in an attempt to confirm a bogus tip about an affair involving then-home secretary Charles Clarke.\nProsecutor Andrew Edis QC told the Old Bailey that the News of the World heard a false rumour in May 2005 that Clarke was seeing his \"attractive special adviser,\" Hannah Pawlby.\nThe newspaper tasked private investigator Glenn Mulcaire with hacking Pawlby's voicemails and \"door-stepped\" her, but Coulson also called and left her voicemails, the court heard.\n\"The prosecution suggests that Mr Coulson, who is now the editor of the NotW, he is not the man who stands outside people's houses hoping to catch them out, he is the man who likes to put the story to people to see what they will say,\" Mr Edis said.\nHe said the NotW used three ways to investigate stories: phone hacking, surveillance, and confrontation.\nThe editor is personally involved in the third.\nObviously he knows about the second, surveillance, he must do.\nWhat about the first?\nDoes he know about phone hacking?\nHe says he doesn't, we say \"Oh yes, he did\".\nRumours about an affair involving Clarke were first picked up by the NotW's features desk when a source who was sexually interested in Ms Pawlby was told: \"Don't bother wasting your time, she's with Charles.\"\nA tape of voicemails taken from her phone on at least three occasions was seized from Mulcaire's home in August 2006.\nInvestigators also found entries on the private investigator's computer which had Ms Pawlby and her sister as \"Projects.\"\nDuring the period she was being investigated, Ms Pawlby's grandparents received anonymous calls asking for information about her, Mr Edis said.\nMeanwhile, former chief reporter Neville Thurlbeck and former reporter James Weatherup oversaw surveillance of Ms Pawlby's movements.\nLeaving her a voicemail on June 18 2005, Coulson told her: \"I've got a story that we're planning to run tomorrow that I really would like to speak to Charles about.\"\nMr Edis said Coulson's involvement in the story followed the same pattern as with other important men, such as former home secretary David Blunkett.\nThe jury heard on Thursday that Coulson confronted Mr Blunkett over an affair with a married woman while he was himself seeing co-defendant Rebekah Brooks, who was married at the time.\nCoulson and Brooks deny conspiring with others to hack phones between October 3 2000 and August 9 2006.\nMulcaire, Thurlbeck and Weatherup have admitted phone hacking.\nIn protest against the planned tax on the rich, the French Football Association is set to actually go through with the first strike since 1972.\nA mediation meeting comes to an end without resolution.\nIn the conflict regarding the tax on the wealthy, the government and the professional football association in France have manoeuvred into a cul-de-sac following a failed mediation meeting.\nPresident François Hollande welcomed club and association representatives to Paris' Élysée Palace on Thursday, where he listened to their complaints.\nHowever, he refused to spare the football association from the planned 75% income tax to be imposed on those earning in excess of one million €per year, which every company in the country will have to pay for two years, from 2014.\nThe opposition also remained adamant.\nThe strike announced for the end of November will now go ahead, informed the head of the Union of Professional Football Clubs (UCPF), Jean-Pierre Louvel.\nThe Ligue 1 and Ligue 2 match days scheduled between 29 November and 2 December will thus be cancelled.\nGechingen: Absolute protection not possible\n\"We want to involve the residents in the planning at as early a stage as possible,\" said Mayor Jens Häußler, opening the citizen's information event regarding the flood protection concept in Gechingen.\nAround 80 participants came to the Gemeindehalle (community hall) to have the planned measures explained to them, to express their concerns and submit ideas.\nHäußler made clear: \"The final decisions will be made by the members of the Town Council\".\nHäußler commented that the flood that found Gechingen unprepared on 15 May 2009, was a decisive event in raising the question of protective measures for the future.\nA river basin study was commissioned in collaboration with the neighbouring community of Aidlingen, which now forms the basis for the flood protection concept in Gechingen.\n\"The goal is the protection of as many developed plots of land as possible,\" said Häußler.\nThe basis for the plans is the need for protection against expected floods, which statistically occurs every 100 years, according to the German Weather Service.\nClimate change is taken into account in the form of an allowance of 15 per cent.\nIn expert circles this is referred to as \"HQ 100aKlima\".\nThe masses of water that caused considerable damage in Gechingen in 2009 was equivalent to a 1,000-year flood.\n\"There is no such thing as absolute protection, but we can attempt to make a relative improvement,\" said Häußler.\nIn order to achieve HQ 100aKlima protection, around four million €must be invested in Gechingen, whereby the town can count on a State subsidy of around 70 per cent.\nHowever, Häußler indicated that the funding would only be provided if an overall concept is developed.\nIn order to develop such a concept, the town is reliant on the cooperation of its citizens.\nA complex planning and approval procedure must be completed.\nIn a best case scenario, implementation could begin in 2016.\nAmong other measures, the protection concept, which (we reported) has already been presented to the Town Council during the past week, plans local measures in the tributary to the River Irm, running from the Stammheim Valley.\nIn conjunction with the presentation of the flood protection concept, the participants made use of the opportunity to submit their concerns.\nAmong others, the question was raised as to why embankments and detention reservoirs are no longer planned to protect the location.\nGregor Kühn, technical planner at the commissioned engineering company, Hügelsheim-based 'Wald und Corbe', who presented the concept, emphasised that it required the interplay of all proposed measures, in order that their sum might achieve the desired goal.\nFurthermore, the most economic solution must be found, said Joachim Wald of Wald und Corbe.\nThere was resentment among local residents of the old town, who have repeatedly to suffer as a result of the overflowing of the canal network, even during normal thunderstorms.\nThe problem is known to the administrative department and initial measures have already been taken.\nHowever, Häußler indicated that the guidelines for canal systems are different to those for flood protection, and these must not be confused.\nThe town is obliged to design the canal network in such a way that it can withstand rainfall events every two to three years.\nTo make the sewerage channels wider would gobble up millions.\nPersons seriously injured following collision\nEarly on Friday afternoon, two car drivers were seriously injured in a head-on collision on Landesstraße 44 (a rural road).\nThe police completely blocked off the road immediately, but initially could not make much comment on the cause of the accident.\nHowever, they did mention that there were various witness statements that first had to be assessed.\nWhat is certain is that the 19-year-old female driver of a VW Golf was driving in the direction of Revensdorf and the 38-year-old man from Gettorf came towards her in his Hyundai.\nThe two vehicles collided, whereby the woman was so severely stuck that it took the fire service almost half an hour to free her from the vehicle wreckage.\nInitially the actual cause of the accident remained unclear.\nBoth unfortunate parties were taken to nearby hospitals.\nThe road remained fully blocked off for around two hours.\nYou could call him the Dostoevsky of the USA.\nPhilip K. Dick was a God seeker, a metaphysician, and to a certain extent his novels and stories also feature recurring themes.\nThe external likeness is astounding: the piercing eyes, the beard, the high forehead.\nAnd so, as Fyodor M. Dostoevsky - with his massive oeuvre - is considered the revealer and apologist of the Russian soul, Philip K. Dick is considered an American prophet, who is certainly highly esteemed within his own native country.\nSome titles have been released by the Heyne Verlag publishing house,the 'Haffman's cassette' featuring 118 stories was distributed by Zweitaudenseins.\nDick illustrates America - the kingdom of breathtaking technical progress, paired with paranoia, a fixation on security and the belief of having been chosen.\nDick had 'God experiences', and his later books read like a mixture of the Book of Revelation and a computer manual.\nPerhaps he was crazy, or perhaps drugs had affected his brain.\nHe realised, early on, that computers are divinities.\nHe wrote a 'Theology of the Computer' and questioned what separates humans from the machine, the creator from the creation.\nThat is the \"Blade Runner\" problem.\nKilling.\nA master of science fiction.\nA fantastic writer.\nHis stories have inspired film producers such as Ridley Scott, Paul Verhoeven and Steven Spielberg.\nThe latter story is now particularly significant.\n\"Minority Report\" originates from the year 1956, and exudes the scent of the Cold War and the McCarthy Tribunal.\nHere the principle of the \"Pre-Crime\" is developed, i.e. something that is now more or less official doctrine within the White House.\nIn Dick's world, which is alarmingly similar to our own, mutants look into the future - and the police have access to this insight.\n\"We arrest individuals who've broken no law,\" says the government official.\n\"We get to them first, before they can commit an act of violence\".\nAnd: \"In our society we have no major crimes, but we do have a detention camp full of would-be criminals\". They read time streams.\nThey assume that bad things are going to happen and prevent the criminal thought turning into action.\nDick's tale acts as a blueprint for the anti-terror laws and the phone tapping madness of the NSA.\nAnticipation of attack: This is also how Obama's drone philosophy and practices work.\nHowever, Dick's story is not yet finished.\nThe Police Chief argues that there is no more division of power, the military controls daily life - and what is left of the State.\nThen the watcher is himself being watched and is convicted of a future crime.\nThe system slips up.\nIt is perfect, but it lies.\nIt devises its own conditions.\nIt not only accepts errors and victims, but builds itself on them.\nThe system creates the threat that it is fighting against.\nTo read Philip K. Dick means to get closer to the truth, time and time again.\nIssuing statements regarding the Merkel spying scandal from Russia\nThe former US intelligence expert, Edward Snowden, may make further statements regarding the US espionage scandal involving Federal Chancellor, Angela Merkel, from his Russian asylum.\nRepresentatives of the German Federal Prosecutor's Office could either submit questions in writing or meet the 30-year-old in person in Russia, reported the Interfax Agency.\nGreen Party parliament representative, Hans-Christian Ströbele, was yesterday the first German politician to meet with Snowden in Moscow, to discuss the scandal with him.\nNSA revelations boost corporate paranoia about state surveillance\nOn a mild day in late August a German police helicopter buzzed low over the US consulate in Frankfurt, the financial capital of Germany.\nOn the instruction of the Office for the Protection of the Constitution (BfV), Germany's domestic intelligence agency, its mission was to photograph the rooftop of the US outpost, which is located less than 5km from the European Central Bank and Bundesbank.\nGerman media say the BfV hoped to identify the presence of listening antennas and the action prompted an exchange between the US and the German foreign ministry in Berlin.\nJames Clapper, US Director of National Intelligence, insisted again in September that the US does not use foreign intelligence capabilities \"to steal the trade secrets of foreign companies on behalf of US companies to enhance their international competitiveness or increase their bottom line.\"\nBut ever since Edward Snowden, the contractor turned whistleblower, began releasing his treasure trove of US surveillance secrets, European governments and business leaders are no longer sure whether to take the director at his word.\nReports that the US National Security Agency spied on Brazilian oil company Petrobras and gained access to data held by US cloud providers including Google and Yahoo have ratcheted corporate paranoia about state surveillance to new highs.\nThe final straw came when it was revealed that Chancellor Angela Merkel's phone had been bugged, possibly for about a decade.\nIf Europe's most powerful person can be targeted, then surely business leaders are also potential targets.\nSnowden has made transparent the intensive collaboration between US intelligence services and companies.\nI think it's conceivable that these data are used for mutual benefit.\n\"Germany must wake up,\" says Oliver Grün, president of BITMi, which represents small and medium sized German IT companies.\nGerman companies believe the US now poses almost as big a risk as China when it comes to industrial espionage and data theft, according to a survey published in July by EY, the consultancy.\nIn all the documentation leaked by Mr Snowden, there has, however, been no evidence to date that the US has passed on foreign companies' trade secrets to its own companies.\nPoliticians have expressed concern that the EU lacks certain IT and internet capabilities and should strive to reduce its dependence on the US.\nBusiness leaders are sceptical about this.\nSomeone in the German parliament says we should build a German Google.\nI can only shut my eyes and slowly open them again...\n\"That's not the way,\" Hasso Plattner, chairman of German business software company SAP, says.\nIf one wanted a strong European IT industry, then one shouldn't have let it die out 20 years ago.\nEverything is subsidised in Germany, from coal, to cars and farmers.\nEverything but the IT industry.\nStill, the reach and technical sophistication of US spy agencies exposed by the Snowden revelations have come as a shock to some companies who previously thought the biggest surveillance risk was posed by China.\nA big shift is occurring in cloud computing where European executives have become more aware that data stored in the US is subject to that jurisdiction and therefore potentially vulnerable.\nAccording to a survey carried out by the Cloud Security Alliance, a trade body, some 10 per cent of non-US members cancelled plans to use a US-based cloud provider after revelations about the US Prism data mining programme.\nJim Snabe, co-chief executive at SAP, says: \"We see a new question from customers that didn't come up a year ago - which is where is my data stored and can you guarantee that it stays physically in that jurisdiction.\"\nMany German executives argue that the latest reports are simply confirmation of what they already knew: that powerful states want to steal their most prized secrets and these data must therefore be guarded at all costs.\nThat economic spying takes place is not a surprise.\nIt has always taken place.\n\"This has been a topic for many years and hasn't fundamentally changed through the current discussion,\" says Kurt Bock, chief executive of chemical maker BASF.\nThe Americans spy on us on the commercial and industrial level as we spy on them too, because it is in the national interest to defend our businesses.\nCorporate leaders are not generally keen to boast about the countermeasures they have taken, in case this hands an advantage to an attacker.\nFor large companies, the message has long since been drummed home that picking up a free USB stick at a trade fair, or leaving a laptop unguarded in a hotel room are unwise, to say the least.\nUlrich Hackenberg, board member at carmaker Audi, says it has been standard practice for years for mobile phones to be collected before board meetings so they cannot be used as remote listening devices.\nGermany's BfV advises executives to consider using simple prepaid mobiles when on foreign trips because of the risk that smart phones are compromised.\nThe prepaid mobiles are then thrown away afterwards.\nHowever, there is concern that small and medium-sized companies remain vulnerable to hacking and surveillance.\nIn Germany, many of these companies are global market leaders in their particular niche.\n\"Small and medium sized companies often lack the experience, personnel and financial resources to protect corporate secrets effectively against unauthorised access,\" the BfV warns in a report.\nThe US warns its own companies about economic espionage by other countries.\nThe US National Intelligence Estimate in February named France alongside Russia and Israel in a second tier of offenders who engage in hacking for economic intelligence, behind China, according to The Washington Post.\nA board member at a German blue-chip company concurred that when it comes to economic espionage, \"the French are the worst.\"\nBernard Squarcini, former head of the French internal intelligence agency DCRI, was quoted in an interview this month as saying: \"The services know perfectly well that all countries, even as they co-operate in the antiterrorist fight, spy on their allies.\"\nHechingen: Trade fair provides the answers to wedding questions\n\"Marriage is and remains the most important journey of discovery a person can undertake,\" said the philosopher Sören Kierkegaard.\nTips, at least as to how the wedding celebration can be a success, have now been given at a special trade fair in the Domäne in Hechingen.\nImportant suppliers of all wedding-related products and services were represented.\nA trend: The retro look is back once again.\nThis begins with the wedding clothing.\nWhite is a must, best muted or in cream.\nAt the front, dresses with numerous ruffles and embroidery are in, often with a veil, while to the rear they run down the back and often end in a train.\nHowever, opinions differ, as Stefanie Koch from the Modehaus Kleidermüller emphasised.\nFor men, suits with a waistcoat and neckerchief are most popular, although some people do choose cream or brown combinations.\nSelecting the venue is important, it was explained.\nPlain adjoining rooms are not ideal, the ambience should be special.\nIn this regard, the Domäne drew attention to their own facilities in the carriage house.\nUwe Link has an offer for anyone who wants to set off in a carriage.\n\"However, carriages are also popular for hen parties,\" he commented.\nPeople were also on the lookout for romantic ideas for invitations, flower arrangements and wedding photographs.\nThe \"After-Wedding Photo\" is becoming increasingly fashionable - that is, series of pictures taken a few days after the celebration, at special locations, preferably in front of waterfalls or the like, but in full wedding clothing, explained Elisabeth Keidel.\nMany other details for a successful wedding were presented in the Domäne on Sunday.\nFlower arrangements, rings, wedding tables, cakes and also a magician, such as Marko Ripperger, who can entertain guests with style.\nThe correct cosmetics and nail care mustn't be forgotten.\nEverything you need for an unforgettable celebration.\nDog-lovers victorious\nOnce again the athletes from the Bitz dog-lovers association were victorious at a Rally Obedience Tournament.\nAchim Scherrenbacher started things off in Kandel with two dogs; with his bitch Sandy he achieved 94 points in the Beginners class and thus took fifth place, while with 15-month-old Marley he took twelfth place with 87 points.\nWith her dog Woody competing in the Class 1 competition, Susi Höpp was subject to the critical scrutiny of the judge.\nParents of Georgia teen who died in 'freak accident' believe son was murdered\nThe parents of a Georgia teenager, whose body was found inside a rolled-up wrestling mat in his high school gym, believe their son was murdered, the family's attorney said Thursday.\nKendrick Johnson, of Valdosta, Ga., was found Jan. 11 stuck in an upright mat propped behind the bleachers inside his high school gym.\nLowndes County sheriff's investigators concluded Johnson died in a freak accident, but the 17-year-old's family disputes that.\n\"They absolutely think their son was murdered,\" Benjamin Crump, an attorney representing Kenneth and Jacquelyn Johnson, told FoxNews.com.\nThey never believed he died the way the sheriff concluded.\n\"They believe that it defies logic, the laws of physics as well as common sense,\" Crump said.\nThey think this is a cover-up to protect the person or people responsible for their son's death.\n\"They sent their son to school with a book-bag and he was returned to them in a body bag,\" he said.\nU.S. Attorney Michael Moore said Thursday he is conducting a formal investigation into Johnson's death, noting that several key questions remain unanswered.\nWhat was the cause of death?\nWas his death the result of a crime?\nMoore said at a press conference Thursday afternoon.\nI will follow the facts wherever they lead.\nMy objective is to discovery the truth.\n\"I am of the opinion that a sufficient basis exists\" for a formal investigation, he said.\nMoore told reporters that the initial autopsy indicated Johnson died as a result of \"positional asphyxia.\"\nA second autopsy, however, listed a different cause of death, according to Moore.\n\"There are several questions that must be answered or confirmed,\" he said.\nMoore added that if he uncovers sufficient evidence to warrant a criminal or civil rights investigation into the death of Johnson he will ask the FBI to conduct it.\nA representative from the Lowndes County Sheriff's Office was not immediately available for comment when contacted Thursday.\nA southern Georgia judge on Wednesday ordered authorities to release all surveillance video that investigators reviewed.\nThe teenager's parents said they hope the video footage will contain clues to how he died.\nCDC issues children's allergy guidelines for schools\nOn Wednesday, the Centers for Disease Control and Prevention released a set of guidelines to manage children's food allergies at school.\nThis is the first set of such guidelines the U.S. government has put out, as the number of school-age children suffering from food allergies climbs.\nOne in 20 children in the United States now have food allergies.\nThe CDC found the prevalence of food allergies among children increased 18 percent between 1997 and 2007.\nThe guide contains information for schools on how to make faculty and staff aware of children's food allergies, and how to handle them should an allergic reaction occur.\nIt also recommends schools have epinephrine stocked -- the EpiPen brand auto-injector being most commonly used -- to respond to potentially fatal anaphylaxis.\nState legislatures have recently been updating rules to allow schools to stock epinephrine more easily.\nThe report also includes a list of typical symptoms communicated by children who are having an allergic reaction.\nKids may say, \"It feels like something is poking my tongue,\" \"My tongue feels like there is hair on it,\" or \"My tongue is tingling.\"\nParents of Intersex Kids Can Pick 'Gender Undetermined'\nGermany became the first European nation to recognize a third gender for babies born with ambiguous genitalia.\nNo longer will newborns be rigidly assigned to male or female.\nThe new law doesn't require parents to declare any gender for such children, allowing parents to declare gender \"undetermined\" or \"unspecified\" on their birth certificates.\nThe aim of the law was to take the pressure off parents who might make hasty decisions on sex-assignment surgery for newborns, and to fight discrimination against those who are intersex.\nOne intersex person, according to the BBC, said years later, \"I am neither a man nor a woman.\"\nI will remain the patchwork created by doctors, bruised and scarred.\nAn estimated one in 2,000 children born each year is neither boy nor girl.\nThey are intersex, part of a group of about 60 conditions that fall under the diagnosis of disorders of sexual development, an umbrella term for those with atypical chromosomes, gonads (ovaries or testes), or unusually developed genitalia.\nWallis Simpson may have been intersex.\nGender identification is still not well understood, but most experts in the United States say that when sex cannot be determined, it's better to use the best available information to assign it then to wait and monitor the child's psychological and physical development before undertaking surgery, if at all.\nNew York City psychiatrist Dr. Jack Drescher, who specializes in issues of gender identification, said the new German law \"sounds like a good thing.\"\nIntersex children pose ethical dilemma.\n\"Some people have life-endangering conditions that require surgery, but most kids do not,\" he said.\nYou can make a gender assignment without surgery, and then see how identity develops.\nThe science of knowing how a child will develop any gender identity is not very accurate.\nNobody can answer the questions about why this happens.\nIt's like the mystery of why people are gay.\nA report filed to the European Commission in 2011 described intersex people as different from transsexual or transgender people, as their status is not gender related but instead relates to their biological makeup, which is neither exclusively male nor exclusively female, but is typical of both at once or not clearly defined as either.\nThese features can manifest themselves in secondary sexual characteristics, such as muscle mass, hair distribution, breasts and stature; primary sexual characteristics such as reproductive organs and genitalia; or in chromosomal structures and hormones.\nThe report also gives an overview of the discrimination faced by intersex and transgender people in the realm of employment, as well as levels of harassment, violence and bias crimes.\nGender nonconforming boys now have special camp.\nAlready, Australia and Nepal allow adults to mark male, female or a \"third gender\" on their official documents.\nIn June, a 52-year-old Australian, Norrie May-Welby, became the world's first recognized \"genderless\" person after winning a legal appeal to keep an \"unspecified\" gender status for life.\nGerman passports will have a third designation other than M or F -- X, for intersex, according to the Interior Ministry.\nIn neighboring France, gender issues are still controversial, according to a news report on France 24.\nIn 2011, dozens of French lawmakers from that strongly Catholic country signed a petition for \"gender theory\" to be withdrawn from school textbooks.\nThe U.S. website Catholic Online has also opposed the German law, writing that \"as the world is being dragged into a new state, where gender is a choice, but sexual activity is not, we reverse two more pillars of civilization.\"\nOne Maryland mother of a newborn also told the Baby Zone that she would rather see babies assigned gender at birth.\n\"Parenting is stressful enough without extra limitations, especially if you don't know the gender of your child,\" she told the parenting website.\nChildren need stability and certainty.\nHistorically, children born with both male and female genitalia were called hermaphrodites, named for the handsome Greek god who had dual sexuality.\nAnd as little as a decade ago, the medical community thought of gender as a slate that could be erased and then redrawn.\nBut now, many are challenging the ethical basis of surgery, knowing that gender identity is complex, and doctors can sometimes get it wrong, not knowing how a child will feel about their gender assignment when they grow up.\n\"Back in the middle of the 20th century, it was called a 'psychiatric emergency,'\" said Drescher.\nWhen these kids were born, you didn't call the psychiatrist, you called a surgeon.\nThe prevailing theory on how to treat children with ambiguous genitalia was put forward by Dr. John Money at Johns Hopkins University, who held that gender was malleable.\nHe coined the term \"gender identity\" and argued that social and environmental cues -- how parents raised a child -- interacted with a child's genes and hormones to shape whether the person identified as male or female.\nBut in one 1966 case, known as \"John/Joan,\" his theories became controversial.\nHe advised the parents of a boy whose penis had been severed in a botched circumcision to have the child fully castrated, removing his testicles, as well, and to raise him as a girl.\n\"Money presented the case as a successful case of transition, but it was not,\" said Drescher.\nWhen the boy was around 15, he transitioned back to a boy and married a woman.\nBut at 38, he committed suicide.\nDrescher said that now some doctors are still \"practicing that model.\"\nBut in the 1990s, with the advent of the Internet, survivors of these gender surgeries have come forward \"not happy with the outcome.\"\nSuch was the case with Jim Bruce, a 36-year-old writer from Montana, who was born with XY male chromosomes but ambiguous genitals.\nDoctors couldn't be sure if he had a large clitoris or a small penis and were convinced he could never live a \"satisfactory life\" as a man.\nSo shortly after his birth in 1976, Bruce's external organ and testes were surgically removed and he was raised as a girl.\nHe was given female hormones at age 12.\n\"I knew that I wasn't a girl,\" he told ABCNews.com.\nI was unhappy, but it was really difficult to ask questions.\nAt 18, he was set for a vaginoplasty.\nBut depressed and knowing something was wrong, he demanded medical records.\nWhat he found out was horrifying.\nI was sterilized at birth -- and no one ever told me.\nBruce was born with a DSD that prevented his body from producing enough testosterone to properly develop his genitals.\nAfter learning the truth, he changed back to a man, taking testosterone shots and having his breasts removed.\nSurgery rendered him infertile.\nToday, he advocates for others in an organization called the Interface Project, trying to normalize perceptions of those who are intersex.\nBut Anne Tamar-Mattis, executive director for California-based legal group Advocates for Informed Choice, worries that the German law \"invites labeling and stigma.\"\n\"A lot of activists are concerned that what the German rule will do is encourage parents to make quick decisions and give the child an 'undetermined,'\" she said.\nWe are afraid it will encourage intervention.\nWe think a better process is assigning male or female sex, then waiting.\nBut we haven't seen how the law will play out, so all we can do is speculate.\nTamar-Mattis said that her organization supports the Australian law because \"it allows adults to choose to be recognized in a third gender.\"\n\"Adults should be able to make their own decisions about legal gender,\" she said.\nGerman law is about assigning it at birth.\nThat is not a battle young children should have to take up at this point.\nWhen they are grown, they can make decisions about their own bodies.\nBut Dr. Arlene Baratz, a Pittsburgh breast radiologist who has a daughter with a disorder of sexual development and helps hundreds of others in a support group, said the German law will \"empower\" both parents and children.\nBaratz's daughter Katie was born with male chromosomes, but has a DSD called complete androgen insensitivity syndrome.\nBecause her androgen receptors are faulty, Katie developed female characteristics.\nShe has a vagina, but no uterus or ovaries.\nNow at 29, Katie is married and at the University of Pennsylvania, a resident in child psychiatry.\nThough she is infertile, she hopes to become a parent through adoption or gestational surrogacy.\n\"The law gives parents some space not to have to rush into making decisions themselves,\" said Baratz.\nIt gives them the time to do some tests and figure it out and a period of time before they write 'male' or 'female.'\nThis way, you are OK -- raise the child, love the child.\nYou have a wonderful baby and enjoy the fun.\nWe don't have to rush into surgery that is irreversible.\n\"It brings the children into the decision and takes away the anxiety that motivates parents because they don't feel they are doing the right thing,\" she said.\nUltimately, the child will decide which sex he or she feels more comfortable with -- and that's a wonderful thing.\nIt empowers children to make the decision for themselves.\nUnknown attackers injure girl with shots fired from car\nUnknown attackers have injured a twelve-year-old girl in Saxony-Anhalt when firing shots from a car.\nThe assailants fired on a group of children on Thursday evening in Genthin, presumably with an air gun.\nThis was announced by the police in Burg.\nThe girl suffered minor injury to her left calf.\nRescue workers took the girl to the hospital.\nThe shots came from a small car, which drove past a group of six children and suddenly stopped.\nWitnesses saw two people sitting in the car.\nThe assailants also fired shots at a bus stop.\nA pane of glass was shattered.\nThey then drove away.\nThe Criminal Investigation Department is investigating the matter, it was stated on Friday.\nThus far, the Kempten Police Department can look back on a calm Halloween night.\nThe authorities were only called out twice to deal with children throwing eggs against houses.\nBecause the home owners realised this immediately, the egg remnants could be cleaned off at once, meaning that no material damage occurred.\nFurthermore, in the town centre area, while a few fireworks were set off, no material damage was caused here either.\nThe residents of the Bischof-Freundorfer-Weg reported that a car was wrapped in toilet paper and its wheel trims stolen.\nHowever, the man found all his wheel trims nearby prior to the police arriving, on account of which no further police involvement was required.\nLiving with a future-oriented perspective\nIf truth be told, Waltraud Ries, lives a dreamy life.\nHer house is located in a peaceful neighbourhood in Stuttgart, with plenty of greenery, an old tree population, nice neighbours and not too much traffic.\nShe is only a few minutes from the city centre using public transport.\n\"Hopefully you aren't afraid of spiders?\" asks Waltraud Ries, pointing out a large spider on the door frame.\nI have been looking for a new home for my husband and myself for some time now.\nBut you know how difficult that is in Stuttgart.\nHowever, the reason for the desire to move is not arachnophobia, but rather the fear of not being able to manage the large number of steps up to their house, and inside their home in their old age, she explained.\nFurthermore: Since undergoing a meniscus operation, the lady, in her mid-fifties, has had to experience for herself what it means to move from floor to floor with a disability.\nOnly recently, she released a book on the subject of \"Living happily in old age - Which type of property is the best for me?\".\n\"Our home is the best example of a property that simply doesn't work in old age,\" she begins to recount.\nWhen she moved to the maisonette with her husband 20 years ago, it was simply just a pretty apartment in green surroundings.\nNow, in her mid-fifties, Waltraud Ries has different thoughts about it.\nHowever, she is aware that she is one of the few people to actually deal with the topic of 'living in old age'.\nThe majority of people put it to the back of their minds for as long as possible.\nOnly other people get old, she says, smirking.\nOnly when the psychological strain becomes severe do people give it consideration.\n\"But at this stage it can be too late,\" said Ries.\nIn her book, the interior decorator presents 17 housing models for independent living in old age.\n\"However, which type of residence you choose is always a personal decision,\" she explains.\nThere is no solution to overcoming old age.\nEven if you can afford to spend your retirement in Tuscany or Brittany, you should always take the fact that you may become ill into consideration.\nAnd: 'Without a sound knowledge of the local language, you can even become lonely when living the dolce vita,' added the author, providing food for thought for those seeking to move abroad.\nHer models include classic care models, alternative living arrangements and the often-mentioned pensioners' living community.\nIn old age everyone has their quirks and ticks.\n'However, this type of residential community would not be for me,' she commented with a wink.\nDefinitely nothing like student accommodation with a shared bathroom and kitchen.\n'In old age you simply need your own space to withdraw to,' said Ries.\nHowever, the author does not wish to rule out the possibility that a pensioners' residential community can work.\nHowever, it must operate differently to the classic student digs.\nAnd sometimes you also just want your peace and quiet,' she believes.\nWith this opinion she is at least not alone in the State Capital.\nThe experience of Theresa Rütten, head of the citizen's Life in Old Age service in the State Capital, is also that 'the majority of old people in Stuttgart want to remain in their own homes for as long as possible'.\nHer agency agency advises people on the topic of 'growing old'.\nTherefore the experience of the Stiftung Warentest consumer study is also that elderly people in particular would accept inconveniences and limitations just to be able to remain in their usual environment.\nNowadays there are many possibilities for designing the house or apartment in such a way as to be barrier-free.\nRies recommends that all those working on the age-appropriate renovation of their house or apartment first seek out in-depth information and don't simply use the first tradesman that comes along.\nNowadays there are specialists in renovation to suit the needs of the elderly.\nEven in the case of rental apartments some landlords can have this work carried out, even if it is just a matter of raising the level of the toilet seat, clarified the interior designer.\nHowever, it is not always the case that your existing apartment can be made age-appropriate and therefore barrier-free, even if it is as beautiful as ever.\nWaltraud Ries had to go through this experience herself.\nYou could of course install a stair lift inside the apartment, but the cobbled path up to the door of the apartment, featuring a number of steps would be a much greater hindrance.\nShe will keep looking until she has found the ideal property for herself and her husband.\nShe is more afraid of the move than of the spider on her front door.\nThe USA still want to prosecute Snowden\nThe USA have not changed their position regarding the former US Secret Service employee Edward Snowden.\nHe is still accused of passing on secret information without authorisation.\nHe must therefore face criminal proceedings in the USA, said the spokesperson for the US Foreign Office, Jennifer Psaki, in Washington.\nEven the most recent statements from Snowden will not change this fact.\nFollowing a recent meeting with Snowden in Moscow, German Green Party politician Hans-Christian Ströbele appealed to the USA not to continue to threaten him with prosecution.\nPsaki emphasised that Ströbele's comments were the views of a parliamentarian, and not those of a German government member.\nSecret Service whistleblower, Edward Snowden is, in principle, willing to hold a discussion with the German authorities.\nHowever, he first wishes for his situation to be clarified.\nThis was made clear by the former NSA employee, currently sought by the USA, in an open letter that Green Party politician Hans-Christian Ströbele made public on Friday following a meeting with Snowden, and passed on to the Federal Government, the Federal Parliament and the Federal Public Prosecutor General.\nThe letter was purported to have been worded as follows:\nTo whom it may concern,\nI have been invited to write to you regarding your investigation of mass surveillance.\nI am Edward Joseph Snowden, formerly employed through contracts or direct hire as a technical expert for the United States National Security Agency, and Defense Intelligence Agency.\nIn the course of my service to these organizations, I believe I witnessed systemic violations of law by my government that created a moral duty to act.\nAs a result of reporting these concerns, I have faced a severe and sustained campaign of persecution that forced me from my family and home.\nI am currently living in exile under a grant of temporary asylum in the Russian Federation in accordance with international law.\nI am heartened by the response to my act of political expression, in both the United States and beyond.\nCitizens around the world as well as high officials - including in the United States - have judged the revelation of an unaccountable system of pervasive surveillance to be a public service.\nThese spying revelations have resulted in the proposal of many new laws and policies to address formerly concealed abuses of the public trust.\nThe benefits to society of this growing knowledge are becoming increasingly clear at the same time that claimed risks are being shown to have been mitigated.\nThough the outcome of my efforts has been demonstrably positive, my government continues to treat dissent as defection, and seeks to criminalize political speech with felony charges that provide no defence.\nHowever, speaking the truth is not a crime.\nI am confident that with the support of the international community, the government of the United States will abandon this harmful behaviour.\nI hope that when the difficulties of this humanitarian situation have been resolved, I will be able to cooperate in the responsible finding of facts regarding reports in the media, particularly with regard to the truth and authenticity of documents, as appropriate and in accordance with the law.\nI look forward to speaking with you in your country when the situation is resolved, and thank you for your efforts in upholding the international laws that protect us all.\nEdward Snowden, as witnessed by Hans-Christian Ströbele\nA kindergarten has found a private buyer\n\"The building is in good hands,\" said Winterlingen's Mayor Michael Maier.\nThe local authorities have sold the former Kindergarten on Gartenstraße to a private buyer.\nThe Town Council consented to the sale in its most recent meeting, during the part of the meeting that was not open to the public.\nThe building changed hands for an \"appropriate\" price.\n\"The local authorities are satisfied,\" emphasised Maier.\nEUR 100,000 have been added to the local budget.\nIt is not yet clear how the new owner will use the former Kindergarten.\nThe Mayor considers it the right decision that Winterlingen has handed over responsibility for the building to someone else before the winter, and thus will no longer have to pay for the upkeep of the building, such as heating it, tending to the garden and clearing the pavement.\n\"This expense has now been offloaded,\" Maier was glad to say.\nOpen-air concert accompanied by high summer temperatures.\nThe Hammereisenbach Music Society gave an open-air concert on the terrace of the Hammer Guest House.\nWhen conductor, Bianca Willmann, raised the baton at 7:30 p.m., the thermometer was still reading 25 degrees.\nAround 50 listeners enjoyed the sounds of the Hammrich musicians.\nChairperson, Manuela Honeck, provided explanation to accompany the pieces.\nIn so doing, Honeck thanked all those who had helped successfully manage the first Musikerhock.\nReport: Obama campaign considered dumping Biden for Hillary Clinton\nPresident Barack Obama's closest advisers secretly considered replacing Vice President Joe Biden with Hillary Clinton on the 2012 ticket, according to the New York Times.\nThe revelation is the most notable bombshell from Mark Halperin and John Heilemann's heavily anticipated 2012 campaign tome, \"Double Down: Game Change 2012.\"\nThe Times obtained a copy of the forthcoming book and reported Thursday evening that the President's top aides conducted \"extensive group-sessions and polling in late 2011\" to gauge whether the dumping Biden could help bolster Obama's waning re-election hopes.\nAccording to the Times' national political correspondent Jonathan Martin, the book provides a thorough account of the effort by senior officials inside the campaign and the White House, namely former White House Chief of Staff Bill Daley, to measure what effect swapping former Secretary of State Clinton for the Vice President would have in the polls.\nThe potential switch was a closely guarded secret within the Chicago campaign infrastructure and inside the Oval Office.\nOnly half a dozen of the President's closest advisers -- including Daley, former Obama campaign chief Jim Messina, and former White House senior advisers David Axelrod and David Plouffe -- knew the change was under consideration.\n\"Double Down\" claims Daley spearheaded the effort to replace Biden, despite their \"close personal rapport,\" before ultimately deciding against the move when their data showed adding Clinton to the ticket wouldn't \"materially improve Obama's odds.\"\nIn an interview with Martin, Daley confirmed that the administration did in fact consider replacing Biden with Clinton.\n\"I was vocal about looking into a whole bunch of things, and this was one of them,\" Daley told the paper.\nYou have to remember, at that point the President was in awful shape, so we were like, \"Holy Christ, what do we do?\"\nWhile Daley characterized the research as \"due diligence,\" Martin told CNN's Anderson Cooper that the re-election campaign made a significant investment in finding out whether the move would pay dividends at the polls.\n\"Campaigns don't spend the kind of money on polling and focus groups unless they're seriously considering something,\" Martin said on AC360.\nIt's unclear, however, whether Obama knew his team was exploring the swap.\nMartin told CNN that he asked Daley whether his then-boss knew about the potential shuffle.\nWhile Daley said he doesn't think the President \"was aware\" of the potential change, the former chief of staff admitted that it's \"possible\" Obama knew.\nMartin added that \"Double Down\" does not definitively answer whether the political probing reached Obama's desk.\nCooper asked Martin whether he seriously thought Obama did not know about the research into dumping Biden from the ticket.\n\"Possibly,\" Martin replied.\nWhat happens with my e-mail when in transit?\nE-mail is short for electronic mail.\nAre there technical measures to maintain privacy of correspondence, similar to that of the traditional postal service, implemented into the design of this Internet-based service?\nWhen designing the early Internet services, the focus lay on making communication possible.\nThus, when developing the underlying technical protocols, no attention was given to creating a stable foundation for the interception-proof exchange of mail.\nFor this reason, a traditional email is more like an open postcard than a sealed letter.\nWhen user \"Anna\" sends an email to \"Benni\", are the pair's computers then directly connected?\nAnna's email program or browser first sends the mail to her service provider's mail server.\nIf she has a Gmail account, for example, this would be Google.\nThis mail server sends the content to the provider that Benni uses.\nEn route, the mail can pass through any number of other servers on the Internet.\nBenni can then call up the content from his provider.\nAre traditional e-mails read by third parties on their journey through the net?\nThe majority of e-mails are read several times by software robots en route to the recipient.\nChecks are generally carried out by the sender's provider as to whether the mail contains malware as an attachment.\nA virus check is also carried out on the recipient systems.\nIn addition, the providers check whether it is nuisance or unwanted spam mail, which are deleted immediately or at least sorted into a spam folder.\nDo the robots have other tasks?\nIn the case of systems such as Gmail, the robots also identify the information that Google requires for displaying context-based advertising.\nIf Anna and Benni communicate about their upcoming holiday travels via Gmail, Google can display corresponding links to holiday offers.\nDo unknown individuals also read the e-mails?\nThe probability of unauthorised persons reading a mail is extremely low.\nHowever, theoretically, it is possible.\nWithin companies, administrators are often able to read electronic mail that is sent.\nLaw enforcement authorities and Secret Services also have legal authorisation to intercept or take note of e-mails.\nThis may include potential illegal spying activities.\nIs it possible to protect e-mails against being read?\nWith an encryption using the OpenPGP standard, an e-mail can be effectively protected against being read.\nWith great technical effort, it is also possible to conceal the metadata of email communication so that it is not even possible to tell who is communicating with whom.\nHow important are Yahoo and Google within the e-mail market in Germany?\nAccording to a study conducted by Convios Consulting in August 2013, among the main mail services in private use, Yahoo and Google play only a minor role.\nWhile the number of Yahoo Mail accounts has fallen recently, Google's Gmail managed to grow considerably.\nMother buried in shallow forest grave and pension stolen\nWhen his elderly mother died, a man from Wolfsburg devised a plan.\nHe buried the deceased in a forest - and continued to collect her pension and care allowance.\nAccording to police investigations, a 67-year-old Wolfsburg resident buried his dead mother in the woods in order that he might continue to collect her pension and care allowance.\nHe first covered up the death of the 89-year-old and then pocketed the money for more than a year and a half.\nThe 67-year-old must now face charges of fraud, said a spokesperson on Friday.\nAccording to the statement, the man hid the woman in a forest near Helmstedt.\nThe man was already under suspicion back in May: At that time the fact that medications for his care-reliant mother were no longer required drew suspicion.\nThe pensioner told investigators that his mother had travelled to Spain.\nThe officials found this strange and so continued to investigate.\nIt was discovered that the mother and son had lived in the same residence for more than 15 years and that he had cared for her in her final days.\nThe 67-year-old finally acknowledged the death of his mother.\nAccording to police, an autopsy showed no evidence of any capital offence.\nFancy a glow-in-the-dark ice cream?\nA British entrepreneur has created the world's first glow-in-the-dark ice cream - using jellyfish.\nCharlie Francis has harnessed the fluorescent properties of the marine animal to develop the luminescent snack.\nHe came up with the idea after reading a research paper on jellyfish and convinced scientists in China to chemically recreate the glowing protein.\nThe ice cream reacts with the eater's tongue - raising the pH level in the protein and making it glow.\nChris says because the ice cream lights up when it reacts with the heat of the mouth it means the more you lick, the brighter it becomes.\nCharlie, founder of the \"Lick Me I'm Delicious\" ice cream company, said: \"It is incredible stuff but still at very early days in terms of production, so £200 gets you about 2g of the stuff.\"\nThe protein we are using in the ice cream reacts with your tongue at neutral pH.\nSo as your mouth warms up the protein it will raise the pH level and the ice cream will glow.\nWe have been testing it out over the past few months and it seemed perfect to share it over Halloween because it gives that wonderful glow effect.\nIt is probably the most expensive ice cream I have made because the jellyfish luminescence is four times more expensive than gold.\nSo each scoop costs me around £140.\nIt tastes pretty good though.\nCharlie's experimental company, based in Bristol, is famed for its unusual flavours including beer, cheese, beef and gold leaf.\nBut his next creation is set to be even more ambitious.\nHe said: \"I really want to develop an invisible ice cream.\"\nIt is inherently impossible because of the refraction caused by the ice crystals which make up the ice cream, but I reckon we will find a way of doing it.\nThe ice cream harnesses the fluorescent properties of a jellyfish, synthesized by Chinese scientists\nAfter six match days, TSV Morsum are yet to score a single point in the Handball Association League.\nAnd of all possible times, Ingo Ehler's team has a derby match against TSV Daverden tomorrow, which celebrated their first victory last week.\nThe season begins afresh for us with this match.\n\"I hope that we finally have our heads clear,\" commented Ehlers, remaining cautiously optimistic.\nFor this match he finally has his complete squad available, with the exception of Hendrick Blohme who is out with long-term injury.\nLike us, Daverden place emphasis on high tempo play.\nFor this reason, we must keep our errors to a minimum.\nHowever, the top priority is to improve our cover play, which has recently left much to be desired.\nDaverden's coach Thomas Panitz comes across as much more relaxed following his team's first victory of the season against Nordhorn.\nThe match was of course a indication of what we are capable of.\nHowever, it by no means makes us favourites, as anything can happen in the derby.\nNonetheless, Panitz is now looking to come up with the goods in Morsum and thus start a winning streak.\nJan-Malte Jodat will not be playing.\nThus, A-Youth player Joost Windßuß, who plays an active part for A-Youth League team HC Bremen, will be celebrating his season début.\nAnyone who is not fired up for a game like this should stay at home.\nHalloween 2013: By the Numbers\nWhen I was little, Halloween was magical.\nMy sister and I were allowed to eat candy, stay up late and play dress-up for the neighborhood.\nNowadays, I've become more of a scrooge.\nI haven't signed up for the past two years to give out candy in my apartment and probably won't this year.\nBut stats show that I'm a black sheep when it comes to Halloween.\nThe majority of Americans - 158 million of them in fact - will be celebrating Halloween this year, spending a total of $6.9 billion on candy, costumes and decorations, according to the National Retail Federation.\nOne thing I do look forward to every Halloween are the trends.\nCostumes are expected to account for $1.2 billion dollars out of the $6.9 billion spent, according to the NRF.\nThis year, sexy inanimate objects are all the rage.\nWomen don't have to be sexy professionals anymore; they can also be sexy foods like pizza, hamburgers and carrots.\nAs for men, I expect we will be seeing a lot of zombies, thanks to The Walking Dead and I'll bet the Daft Punk space men will make it into our Instagram feeds this year.\nAccording to Google, the highest searched costumes are zombies, Batman, pirates and witches.\nI guess there's nothing wrong with going traditional.\nWe dressed our dogs up last year and to my amazement we were not alone.\nIn fact, Americans will spend $330 million on pet costumes this year, according to the NRF.\nThat's a lot of ironic hotdog dogs.\nWhen it comes to candy, we don't screw around.\nAmericans will spend $1.9 billion on it this year, according to The Nielsen Company.\nThat's around 600 million pounds worth of Hershey bars, lollipops, Milk Duds, Twizzlers and Clark Bars.\nThat's great news for the 41 million trick-or-treaters set to take over our neighborhoods, according to the U.S. Commerce Department.\nIn fact, we will buy and, who are we kidding, consume 90 million pounds of chocolate during Halloween.\nThe one thing we don't want to consume, candy corn; and yet nearly 35 million pounds of it are sold around Halloween, according to the National Confectioners Association.\nThat's about 9 billion individual kernels of corn.\nIt's a mystery I have yet to solve.\nNothing is more quintessentially Halloween than haunted houses.\nThey have the best names, like \"Terror Behind the Walls\" (which, by the way is in an actual prison), \"Howl-O-Scream\" and \"The House of Shock.\"\nIn fact, there are 1,200 officially sanctioned haunted houses in the United States generating about $500 million in revenue, according to America Haunts, and that includes those awesome photos of you mid-peeing your pants that your friend puts on Facebook and you can't take down and then that guy you like sees the photo and leaves a comment like \"nice face.\"\nFinally, let's talk pumpkins.\nCharlie Brown introduced us to The Great Pumpkin when we were kids, and carving a jack-o-lantern is like decorating a Christmas tree - it's something we've done since we were little.\nLucky for us, the \"baby in a pumpkin trend\" started only last year thanks to Pinterest, so most of us grew up carving these gourds not sitting in them.\nThis year, Americans will spend around $106 million on pumpkins, according to the U.S. Census Bureau.\nThe jack-o-lantern slowly withering on your front porch probably came from Illinois, which grew 542 million pounds of pumpkin this year.\nIf you're looking for extra credit, call Tim and Susan Mathisdon in Napa, Calif., and try to carve up their 2,032 pound pumpkin.\nHouse fire in Helmbrechts: Rescue services retrieve charred body\nThe fire service were called out to Helmbrechts late on Thursday evening.\nA three-bedroom house in the district of Hof catches fire during the night.\nRescue workers retrieve a charred body from the house.\nDuring a fire in Helmbrechts, rescue services found a charred body in a three-bedroom house.\nWhether this person was living in the house is as yet unclear, said a police spokesperson in Bayreuth.\nLate on Thursday evening, fire broke out on the ground floor of the house.\nWhen the fire service arrived, the flames were already bursting out of a window.\nRescue workers entered the premises and found the body in a bedroom.\nThis and another bedroom were completely burnt out.\nThe entire ground floor suffered damage.\nThere were no other residents at home during the fire, continued the police spokesperson.\nFor the time being, the house is no longer habitable.\nThe precise cause of the fire was initially unclear.\nGermany's largest national church has launched a campaign advertising the minister's position.\nThis comes at the same time as a possible shortage of ministers: The Protestant Lutheran Regional Church of Hanover calculates that, as things stand, the current number of around 1,800 pastors will be halved by 2030.\nFor the young people of today, the career is very attractive and offers good future prospects, said Pastor Mathis Burfien (43) in a conversation with the Protestant Press Service.\nIt is attractive to be able to determine your own daily working routine.\nWith Burfien, the regional church has for first time commissioned a minister to work full time, endeavouring to inspire young people to study theology.\nAt present, fewer and fewer young people are deciding to study theology after their Abitur examinations (equivalent to A levels).\nBurfien puts this down to the process of secularisation: \"God's voice is quiet, the world is loud\".\nThe job is characterised by great freedom and variety.\nI am the master of my own schedule and can therefore turn my focus to what is important to me.\nAs pastoral workers, ministers can be close to people.\nThey earn as much as teachers and can make a good living.\nOf course wages are higher within the private sector, but on the other hand, theologians have a secure employer.\nThis would suit the young people of today, as it is not just about your career, but about having a meaningful job as well.\nAccording to information from the Regional Church, which covers three quarters of Lower Saxony, around 60 pastors retire every year.\nAt the same time, around 40 theology graduates begin as vicars.\nIn future it may be difficult to fill positions in sparsely populated outlying areas such as Harz, Emsland or Wendland.\nAmong other initiatives, Burfien wants to organise study days for young people, inviting famous faces who have studied theology.\nTheology courses offer broad training.\nYou can even become Federal President with a theology degree.\nLand Rover rally series announced\nThe interior has racing seats and six-point harness belts, as well as an intercom system.\nOptions include upgraded brakes, a service package providing access to Bowler Works mechanics, logistic support, and vehicle storage between events.\nDrew Bowler, the managing director of Bowler Motorsport, said: \"Rally customers coming to Bowler have changed.\"\nThey're not all experienced racers, but people looking for excitement and adventure, and an achievable path towards world-class events.\nWe're delighted to be offering this path in partnership with Land Rover and the MSA, and believe the format offers a new way to experience different rally disciplines in the UK and overseas, and prepare entrants for the rigours and realities of Rally Raid.\nWe've really enjoyed developing the Defender Challenge car - it'll be a really fun championship.\nAdditionally, the Defender Challenge will provide a training and test day in February, as well as the option to compete in desert events in North Africa and the Middle East.\nFire crews called to rescue lost puppy after she got stuck 50ft above the ground on precarious ledge in a quarry\nCocker spaniel Ruby had run off after she was in a minor road crash\nShe was spotted three days later by a dog walker trapped in the quarry\nFirefighters abseil down cliff face to pluck the dog from certain death\nA puppy had a lucky escape after fire crews were called to lift her to safety when she somehow got herself stuck 50ft up on a precarious cliff ledge.\nNine month-old cocker spaniel Ruby had run off after being involved in a road crash on Sunday afternoon and survived three days alone before being rescued from a quarry on Wednesday.\nHer owners Scott Alderson, 25, and his girlfriend Becky Hall, 20, were at Flappit Quarry in Denholme, West Yorkshire, to be reunited with Ruby and have thanked West Yorkshire Fire and Rescue Service.\nThey had searched frantically for their missing dog and posted appeals on social networking sites after she had ran into the quarry following the minor accident.\nAt around 2.15pm on Wednesday, an eagle-eyed dog walker spotted Ruby on the ledge in the quarry, stranded 50ft up.\nA Technical Rescue Team from Cleckheaton Fire Station rushed to the scene and abseiled down to rescue Ruby and used a pet tube to transport her up the cliff.\nSpecialist Technical Rescue Officer Andy Clayton said: 'She was in a precarious situation.\nShe was right in the middle of the cliff face - 50ft from the top and bottom.\nShe did not move a muscle during the rescue - she was frozen solid.\nBut she is fine now.\nShe was eating biscuits afterwards.\nThis was a very unusual call-out.\nThe fact that the dog was spotted is unbelievable.\nSpecialist Technical Rescue Officer Peter Lau said: \"Ruby had a very lucky escape.\"\nThe potential was there that she could have been very seriously injured or worse.\nRuby was taken to the vets for a check-up and was found to be fine other than exhaustion and dehydration.\nMiss Hall, from Halifax, West Yorkshire, said: \"Watching the rescue was terrifying.\"\nI could not believe that she was up there in the first place.\nIt was amazing to get her back in our arms.\nThe vet said that if she became too exhausted and collapsed she would probably have fallen.\nThe firefighters were amazing.\nIt was really daring what they did.\nWe are just so grateful and every single one of them was absolutely tremendous.\nMr Alderson, from Keighley, added: \"We were scared that she might fall but she stayed there.\"\nThe firefighters were brilliant.\nI just can't believe where she was.\nMick Jagger says he never hit on Katy Perry when she was 18.\nDuring an interview with an Australian radio show this week, the pop star said she sang backing vocals for Jagger's 2004 song \"Old Habits Die Hard.\"\nPerry said she had dinner with the veteran rocker and that \"he hit on me when I was 18.\"\nShe added, \"That was a long time ago, and he's been very kind.\"\nIn a statement Thursday, a representative for Jagger, 70, says he \"categorically denies that he has ever made a pass at Katy Perry.\"\nThe rep adds: \"Perhaps she is confusing him with someone else.\"\nPerry was one of the singers to make a guest appearance on the Rolling Stones' tour this year.\nHer new album, \"Prism,\" debuted at No. 1 this week.\nGeorge Kerevan: Europe break-up gives Scots choice\nAnother day, another independence scare story.\nThis time we are warned that an independent Scotland would be required to join the Europe-wide free-travel zone as a condition of EU membership.\nCue stories about passport controls at Berwick and a barbed wire border along Hadrian's Wall.\nTrue, the Strathclyde paper pointed out the possible economic benefits of freer movement with the rest of Europe, though - predictably - that did not figure in the headlines.\nNor did anyone point out that the EU member states spend much of their time bending their formal rules if it suits them.\nSince Scotland isn't in the Schengen area now, continued non-compliance would be a cheap concession for Brussels to offer up in return for whatever it really wanted out of the Scots.\nSo, a non-story, then.\nAnd one that is so long in the tooth it has become fossilised: I first heard the \"independence means passport controls\" canard at least 40 years ago.\nYet there is an interesting point lost in this retelling of a whiskery old tale.\nWhy should an independent Scotland be expected to do Europe's bidding, anyway?\nWhy trade London's yoke for that of Brussels, especially now?\nHere is the real European news: the great, post-war plan to unite Europe has finally stalled.\nWith the euro crisis, Project Europe is officially dead.\nAcross the EU, parties which are dedicated to opposing the EU, or to scrapping the euro as a common currency, are gaining ground.\nEven in Germany, the Eurosceptic Alternative for Germany Party - founded only this year - came from nowhere to grab nearly five million votes in September's federal elections, thus effectively knocking the Free Democrats (equivalent to our own Lib Dems) out of the Bundestag.\nThere has always been domestic opposition to the plan to create a federal Europe.\nHowever, the current economic crisis has proved a watershed.\nThe austerity imposed by Berlin and the European Central Bank, coupled with the straitjacket imposed on national economies through adherence to the common currency, has led many people to think Project Europe has gone too far.\nThe crisis of the euro has little to do with national governments running excessive budget deficits - that was true only of Greece.\nRather, the euro system locked in its members at exchange rates favourable to German exporters - something German politicians want to keep.\nWithout the possibility of domestic currency devaluation, southern Europe finds itself with a built-in productivity disadvantage vis-à-vis Germany.\nThe only recourse is to slash wages and public spending - spurred on by Berlin.\nBeyond the current budget and currency problems lies a deeper European productivity malaise.\nAs a result of \"green\" energy policies imposed by Brussels - code for subsidising French and German energy firms at the consumer's expense - European industry pays twice as much for electricity, and four times as much for gas, as in the United States.\nThat is a crippling cost disadvantage, as we've already seen at Grangemouth.\nAll the wage freezes in the world won't stop the European petrochemicals industry being hammered by cheap US shale gas.\nAs a result, revolt is brewing, especially in France, once the EU's main cheerleader.\nAfter the war, the French political elite saw the EU as a vehicle to keep Germany in check, and to give Paris equal billing in the world with Washington.\nBut Berlin no longer needs Paris as a passport to political legitimacy and has imposed its own economic policy on Europe, leaving the battered French economy struggling.\nResult: Marine Le Pen's right-wing, anti-EU National Front has just won a crucial by-election, knocking the ruling Socialists into third place.\nThe Front is now the most popular party in France with 24 per cent of the vote - a timely warning to British Labour that they can't assume a split on the right will automatically favour the left.\nWhat is Le Pen doing with her newfound popularity among the French white, working class?\nShe wants to use next year's EU elections to create an anti-EU, anti-common currency bloc across the European Parliament.\nIf, as is very possible, anti-EU parties do well in these elections, such a bloc could dominate the European Parliament for the first time.\nHere's my point: sometime soon growing anti-EU and anti-common currency feeling in Europe will coalesce to kill the euro.\nThe EU won't disappear, but it will revert to something more like the loose \"Europe of the (Sovereign) Nations\" favoured by General de Gaulle.\nGermany and a few of its satellite economies might keep the euro but France and southern Europe will revive their own currencies.\nI expect the UK will distance itself from this project, hoping to cosy up to the US.\nHowever, Washington's growing interest in the Pacific suggests Britain will be left out in the Atlantic cold.\nWhere does this leave Scotland?\nWe can choose to be a region of (essentially) Little England.\nOr we can defend our own economic interests - which includes telling Berlin and Brussels where to get off.\nI suspect that Scotland could do well inside a looser European arrangement provided we kept our own currency.\nCo-operation with other like-minded countries will be easier in a non-federal Europe of the Nations.\nOtherwise we should consider emulating Norway and retaining our economic independence.\nThe SNP government in Scotland is - remarkably-- the most successful anti-austerity political movement in Europe, having won a spectacular majority in 2011 on the basis of opposing the cuts proposed (and implemented) by Labour's chancellor Alistair Darling and the subsequent Tory-Lib Dem coalition.\nIt would be ridiculous now for Scotland to vote for independence only to accept austerity imposed by Berlin and Brussels.\nEarly puberty: Growing older sooner\nAfrican-American and Hispanic girls tend to reach puberty earlier than their white counterparts, research shows.\nPhysical changes don't mean puberty is imminent\nThere's no evidence that hormones or other chemicals are to blame\nExperts think the obesity epidemic might be one trigger of early puberty\nThe trend toward early puberty is not as pronounced with boys\nFormer CNN correspondent Pat Etheridge is a journalist specializing in children's health and family issues.\nShould a mother be alarmed if her daughter begins to sprout breast buds and pubic hair at 7 or 8?\nAt the annual conference of the American Academy of Pediatrics this week in Orlando, Florida, pediatric endocrinologist Dr. Paul Kaplowitz explained that these early physical changes are quite common among American girls and represent a new norm.\n\"I spend a lot of time reassuring parents -- usually, this does not signal a rapid progression into full puberty,\" said Kaplowitz.\nObvious signs of development, such as budding breasts, pubic and underarm hair and body odor are appearing sooner in girls.\nBut there has been only a slight shift in the age of menarche (the first period) over the past four decades.\nIn the United States, the average age is 12.5 years, down from 12.75 in 1970.\n\"Once breasts begin to develop, it takes at least two to three years before menarche,\" said Kaplowitz, also author of \"Early Puberty in Girls: The Essential Guide to Coping with This Common Problem.\"\nTime is the most accurate test of how puberty is going to progress.\nThere is debate about what constitutes the actual onset of puberty, but it is considered \"precocious\" when breast enlargement is accompanied by a growth spurt before age 8.\nIn most cases, the process will slow down or stall -- something a pediatrician can monitor closely.\nA more rapid progression may warrant tests by an endocrinologist to rule out serious problems such as tumors or cysts.\nThere are treatments to delay early menses and ward off another consequence: premature aging of the bones that ultimately can lead to stunted growth and being short as an adult.\nRecommendations for drug or hormone therapy are based on the child's age, rate of development, growth rate and emotional maturity.\nPsychosocial aspects are important, too.\nKaplowitz is cautious with medication but acknowledges, \"suppressing puberty may alleviate behavioral issues and girls' feelings of being different from peers.\"\nThe other big issue is understandable: Parents simply don't want their very young daughters having periods.\n\"They worry about the risk of pregnancy or even how they will handle hygiene,\" said Kaplowitz.\n\"It was a shock,\" recalls one woman whose daughter started her period at 10.\nEven though there were signs and we had talked about menstruation, she was not emotionally prepared.\nShe came home from school scared and upset to be the first among her friends.\nThere are lots of well-publicized theories about the causes of precocious puberty.\nYet, there's no consistent body of evidence that hormones in milk or other foods, chemicals in the environment or sexual messages in the media are to blame.\nBoys - like girls - are hitting puberty earlier.\nKaplowitz contends the premise that holds the most weight is the epidemic of obesity.\nHe helped conduct a 2001 study of 6- to 9-year-old girls that links body fat to the timing of puberty.\nOther findings support this conclusion, but there are many other contributing factors.\nIn this country, African-American and Hispanic girls tend to reach puberty earlier than their white counterparts.\nThere are varying explanations.\nGlobally, patterns of early puberty appear to be influenced by everything from economic conditions to climate to genes.\nAnother conundrum: Although boys are getting facial and pubic hair at younger ages, the trend toward full-blown early puberty is not as pronounced as it is with girls.\nOther doctors attending the AAP conference reinforced the complexities of the topic.\nThe appearance of acne and pubic hair is common even in infants and toddlers.\n\"We need to be careful about how we identify the true onset of puberty,\" said Dr. Lawrence Silverman, a pediatric endocrinologist at Goryeb Children's Hospital in Morristown, New Jersey.\nParents should not hesitate to get guidance from their pediatrician about how to talk with their child.\n\"It may mean having a sooner-than-expected conversation,\" Kaplowitz advised.\nIf you remain calm, your child usually will respond well.\nGirls who blossom early need reassurance that, even when it happens ahead of schedule, the process is a normal part of life.\nJet makers feud over seat width with big orders at stake\nA row has flared up between leading plane makers over the width of tourist-class seats on long-distance flights, setting the tone for a bitter confrontation at this month's Dubai Airshow.\nThe dispute focuses on the width of seats provided on long-haul flights for economy passengers - not always the ones most courted by airlines, but whose allocated space holds the key to efficiency claims for the latest jets offered by Airbus SAS and Boeing Co.\nAirbus this week called for an industry standard that would provide for a seat at least 18 inches (46 cm) wide in economy cabins, but its U.S. arch-rival Boeing says it should be for airlines to decide.\nThe dispute comes as plane makers vie to sell ever-larger versions of their twin-engined long-distance aircraft, with potentially record orders expected at the November 17-21 event.\nHow the back of the plane is laid out - particularly whether seating is 9 or 10 abreast - is central to the economic performance claims being made for new \"mini-jumbo\" jet designs.\nBoeing says its revamped \"777X\" will hold 406 people based on economy seats more than 17 inches wide and set out 10 in each row.\nAirbus says the competing version of its A350 will carry 350 people in 18-inch-wide economy seat laid out 9 abreast.\nPlane giants often trade blows on technical matters through advertising in the trade press.\nNow, Airbus is appealing directly to the public ahead of the Dubai Airshow, where the 777X is expected to dominate with more than 100 orders.\nIt recently previewed what may be the start of a new ad war by showing financiers a slide illustrating three people squashed together at a restaurant, titled \"Would You Accept This?\"\n\"Boeing is proposing long-distance flying in seats narrower than regional turbo-props,\" said Airbus sales chief John Leahy.\nAs diets change, people get bigger but plane seating has not radically changed.\nBetween the early 1970s, when the Boeing 747 jumbo defined modern long-haul travel, and the turn of the century, the weight of the average American 40- to 49-year-old male increased by 10 per cent, according to U.S. Health Department Data.\nThe waist of the average 21st-century American male is 39.7 inches, according to U.S. health statistics.\nAirbus says its rival is sticking to a seat concept from the 1950s, when the average girth of the newly christened \"jet set\" was narrower.\nAirbus says it has commissioned research suggesting an extra inch in seat width improves sleep quality by 53 per cent.\nBoeing disputes Airbus's figures on seat measurements and says it is not up to manufacturers to step into decisions on how airlines balance fares and facilities.\nIt also says research shows cabin experience depends on more than the width of a seat.\n\"It really comes down to providing flexibility to airlines and allowing them to do the things that they believe they need to do to be successful,\" said Boeing cabins expert Kent Craver.\nThey don't want us to dictate to them what makes them profitable.\nThey know their business better than anyone else.\nFor flyers it is about more elbow room, but for suppliers it is increasingly an issue that could affect earnings.\nBehind the dispute is a race for plane orders with at least $700-billion of estimated business at list prices in coming decades, enough to tip the scales of U.S. and European exports.\nAs Reuters first reported in July, seat layout is exactly what drives the battle between the latest jets.\nBoth Airbus and Boeing claim 20 per cent better efficiency per seat in their latest twin-engined long-haul designs than the market leader in that segment, the 365-seat Boeing 777-300ER.\nBoeing's performance claims depend in part on comparing the 10-abreast 777X with an original 9-abreast 777 design.\nThe gain in unit costs is blunted compared with 10-abreast now in use.\n\"The reason Boeing are doing this is to cram more seats in to make their plane more competitive with our products,\" said Kevin Keniston, head of passenger comfort at Europe's Airbus.\nOn the other hand, analysts say full 10-seat-per-row cabins for existing 777s suggest many passengers are voting for the denser layout, which may go hand in hand with cheaper fares.\n\"Eighteen inches in seat width would be great for passengers, but the reality is that from a business point of the Airbus proposal is driven by the threat of the 777,\" said cabin interiors expert Mary Kirby, founder and editor of the Runway Girl Network.\nAirbus and Boeing do not supply seats but offer a catalogue of suppliers for airlines to choose from.\nGlobe-trotting jet sellers even carry tape measures to check on competing layouts.\nWhile boasting comfort, all builders also offer jets with high-density layouts for low-cost airlines and regional travel.\nAirbus offers a 10-abreast A350 but says it has not yet sold it.\nUntil recently, Airbus was stressing the need for more cabin customization by offering wider aisle seats on some of its jets.\nWithout the support of the only other maker of large modern jets, experts say its call for a new industry standard is unlikely to fly, but could distract from a wave of 777X sales.\nNew anti-nicotine vaccine could take the pleasure out of smoking\nScientists have developed an anti-nicotine vaccine that could take the pleasure out of smoking a cigarette.\nA single dose of the vaccine was able to protect mice against nicotine addiction for life.\nFurther tests are needed before starting human trials, which would take several years, but Professor Ronald Crystal of Weill Cornell Medical College in New York said the early signs are good.\n\"We are very hopeful that this kind of vaccine strategy can finally help the millions of smokers who have tried to stop, exhausting all the methods on the market today, but find their nicotine addiction to be strong enough to overcome these current approaches,\" Prof Cornell said.\nThe new vaccine contains a harmless virus that has been engineered to carry the genetic information to make anti-nicotine antibodies.\nThe virus selectively infects liver cells, which then start to make a steady stream of the antibodies.\nThe antibodies hunt down any nicotine molecules in the bloodstream, neutralising them before they reached the brain, preventing a smoker from getting a nicotine hit.\nIn tests, vaccinated mice who were subsequently given nicotine continued with their normal activity.\nBut mice who had not been given the vaccine \"chilled out,\" say the researchers, a sign that the nicotine had reached their brains.\nThe experiments are described in the journal Science Translational Medicine.\nPrevious tobacco vaccines failed because they contained antibodies.\nThe jabs had to be given so frequently to keep antibody levels topped up that they proved expensive and impractical.\nBut the cost of the new vaccine is likely to be far lower, because it turns liver cells into antibody factories.\nProf Crystal said that if a future human vaccine was completely safe it could be given to children before they were tempted to try a cigarette, preventing nicotine addiction.\nBut more likely it would be used by smokers to quit.\n\"They will know if they start smoking again, they will receive no pleasure from it due to the nicotine vaccine, and that can help them kick the habit,\" he said.\nBritish scientists said the results were interesting but warned far more research was needed.\nTripodi denies being influenced by Obeid\nFormer NSW Labor minister Joe Tripodi will be investigated by the state's corruption watchdog.\nFormer NSW minister Joe Tripodi has denied changing maritime leases policy at the request of his political mentor Eddie Obeid, who had hidden interests in three properties on government-controlled land.\nThe Independent Commission Against Corruption (ICAC) on Friday widened its inquiry into whether Mr Obeid lobbied several state ministers to have leases at Circular Quay, where the Obeids owned two restaurants and a cafe, renewed without going to tender after their expiration in August 2005.\nIt's now investigating allegations Mr Tripodi knew of Mr Obeid's secret interest in the properties, after evidence given by Mr Tripodi's former deputy chief of staff, Lynne Ashpole, on Thursday.\nDuring years of discussions starting in 2005 the government had been pushing for the leases to go to public tender.\nThe lessees were against this and also wanted longer terms.\nIn 2009 leases for the Circular Quay enterprises, which earned the Obeids about $2.5 million annually, were renewed without going to public tender.\nMr Tripodi, who was ports minister from February 2006 until November 2009, was initially in favour of public tenders.\nBut he denied the changes were made at the request of Mr Obeid, who Mr Tripodi acknowledged was urging a shift in government lease policy.\nA phone transcript tabled in ICAC showed calls in August and September 2007 between Mr Obeid, Mr Tripodi and Steve Dunn, a senior bureaucrat who had come into the ports ministry after working under Mr Obeid in the fisheries department.\n\"Was the matter being discussed in the course of these telephone conversations the development of the commercial lease policy,\" Assistant Commissioner Anthony Whealy asked Mr Tripodi.\n\"No,\" Mr Tripodi replied.\nI can't remember what was discussed but it definitely wasn't that.\nDefinitely not between myself and Mr Obeid.\nIsraeli warplanes attack target inside Syria, official says\nIsraeli warplanes struck a target inside the Syrian port city of Latakia Thursday night, a senior administration official confirms to Fox News.\nThe official did not specify what the target was, but said there was at least one.\nThe Associated Press reports the target was Russian-made SA-125 missiles.\nAt least twice earlier this year Israel launched airstrikes on shipments of missiles inside Syria.\nForeign workers on 457 visas could undergo \"genuineness\" test\nA \"genuineness\" test for foreign workers on 457 visas is being considered by the government as it contemplates expanding a crackdown.\nThe test, if adopted, would be applied through a criteria aimed at preventing 457s being used to fill unskilled positions or as a back door way to move family and friends to Australia.\nA government discussion paper was released today as former Labor MP Maxine McKew slammed the government's rhetoric about foreign workers, saying it could offend Australia's neighbours.\n\"Loud declarations about 'foreigners getting to the back of the queue' and 'Aussie jobs first' are a very unpleasant throwback to a time when unions demanded a protected labor market,\" she told the Australia India Institute today.\nHistorically, that meant it was white labour that had to be protected - and if some in the region saw echoes of that historic artifact, I wouldn't be surprised.\nThe discussion paper outlines 12 measures that were previously considered by former Immigration Minister Chris Bowen.\nImmigration Minister Brendan O'Connor, who was yesterday in Sri Lanka where he is meeting officials about people smuggling, has implemented five of the recommended changes with the remainder under consideration.\nIf the \"genuineness\" criteria was adopted a visa applicant could be scrutinised about \"whether the nomination is genuine in circumstances where the nominee is a relation or personal associate of an owner or relevant person of the sponsoring business.\"\nBusinesses could also be required to account for the number of 457 visa holders after previously businesses who had intended to sponsor a small number of workers then employed hundreds.\nMeanwhile, a 35-year-old Sri Lankan asylum seeker died of a suspected heart attack after arriving on an asylum boat at Christmas Island this week.\nThe man's distraught nine-year-old son travelled to Australia with him and has been comforted since the death of his father on Wednesday by an adult cousin who was also on the vessel.\nAustralian authorities rushed the man to Christmas Island Hospital, where he died.\nA study aiming to increase the benefits to Scotland of the HS2 rail project has been announced by the UK government.\nThe work by HS2 Ltd suggests high-speed services to Scotland and the north of England will start as soon as Phase One opens in 2026.\nTransport minister Baroness Kramer said the project would \"bring the UK together.\"\nScottish transport minister Keith Brown said he was \"excited\" to work with the UK government on the plan.\nPhase One will consist of a new high speed rail line between London and the West Midlands.\nWhen Phase Two is completed, lines will run to Manchester and Leeds.\nIn June the government revised the estimated cost of building the high-speed link between London and the North of England from £32.7bn to £42.6bn.\nThe UK government, which has been holding talks with Transport Scotland, has instructed HS2 Ltd to look at further rail capacity and journey time improvements for northern England and Scotland.\nThis is to include the possibility of eventual journey times from Glasgow and Edinburgh to London of three hours or less.\nBaroness Kramer said: \"Our goal for HS2 is for a truly national network that will bring the UK and its cities closer together.\"\nWe are driving forward HS2 because the benefits it will bring are huge.\nWithout it we face a crisis in capacity on our rail network.\nBut it is also about connectivity, across the UK 18 cities including Glasgow and Edinburgh will be better connected because of HS2.\nScottish Secretary Alistair Carmichael added: \"Today's announcement is good news for Scotland.\"\nFor the Scottish government, Keith Brown called on Mr Carmichael to \"unequivocally\" back Scotland's inclusion in the HS2 network.\nMr Brown said: \"High speed rail has the potential to bring huge economic benefits to Scotland, but also adds Scotland's economic weight to the overall case for high speed rail across Britain.\"\nSo we are excited to work in partnership with the UK Government to examine options for bringing high speed rail to Scotland, creating benefit for all and complementing the Glasgow-Edinburgh line which the Scottish Government is already planning.\nI look forward to reviewing the report of the investigation with UK ministers next year and together decide on the next steps.\nAircraft electronic device rules to stay in force in Australia for now\nAustralian airline passengers will need to continue turning off their tablets and smart phones during take-off and landing despite moves in the US to loosen regulations covering the devices.\nThe US Federal Aviation Administration has left the way open for American carriers to change their procedures so that passengers will be able to read e-books, watch videos or play games on their devices during critical phases of flight provided they remain in \"airplane\" mode.\nPassengers can already do this during the bulk of a flight but many people find it annoying to be unable to access their e-books during take-offs and landings.\nAustralian carriers are looking at the decision, which requires US carriers to undertake a massive amount of work to meet the requirements, but have indicated they have no immediate plans to change their procedures.\nThe Civil Aviation Safety Authority also said it was looking at the announcement but emphasised that restrictions on the use of electronic devices in critical phases of flight were still in place in Australia.\n\"CASA currently has no specific regulations governing the use of electronic devices in aircraft,\" it said.\nThe issue is covered by regulations which require aircraft operators to ensure safety is maintained at all times and passengers to comply with the safety instructions given by crew members.\nVirgin, which has already been talking to CASA about extending the use its in-flight wi-fi entertainment system, was amenable to a change but said it would take its lead from the regulator.\n\"We would welcome a review by CASA into allowing the use of electronic devices because we really do think it will improve the customer experience now that we have (wireless in-flight entertainment) on our planes,\" a spokesman said.\nQantas said it would stick with the current rules for now.\n\"Our current policy is that electronic devices cannot be used during take-off and landing and we have no immediate plans to change that,\" it said.\nThe FAA ruling applies to American airlines.\nHowever, we are always interested in regulatory developments that could benefit passengers and we will certainly be taking a close look at the FAA's decision and the reasons behind it.\nFor US carriers, the impact of the ruling will vary from airline to airline and will depend on the age of their fleet.\nCarriers will need to prove their planes can tolerate radio interference from mobile devices as well as revise manuals, training materials, carry-on baggage programs and passenger briefings.\n\"Once an airline verifies the tolerance of its fleet, it can allow passengers to use handheld, lightweight electronic devices such as tablets, e-readers, and smartphones-at all altitudes,\" the FAA said.\nIn rare instances of low visibility, the crew will instruct passengers to turn off their devices during landing.\nThe group also recommended that heavier devices should be safely stowed under seats or in overhead bins during take-off and landing.\nTravelling BVB fans created terrible scenes with flares in the Veltins Arena before the district derby against Schalke\nBorussia Dortmund announced that there would be serious consequences.\nBefore Friday's Bundesliga match against VfB Stuttgart, the 'Ultras' responded with silence - initially.\nIt was an unusual, almost ghostly atmosphere that the fans created until shortly before the kick-off of the Bundesliga match between the German runners-up Borussia Dortmend and VfB Stuttgart, in the Signal Iduna Park.\nIt was mainly the chants of away fans that could be heard.\nThe south stand, on the other hand, where the most loyal - and the loudest - of BVB fans stand, was initially unusually quiet: No singing and no battle cries.\nThe 'Capo's' podium, the individual who usually coordinates the unison chants, remained empty.\nAnd right at the front, on the stand, a single large flag with the text \"Stadium Ban Section\" blew in the wind.\nOnly when goalkeeper, Roman Weidenfeller, was the first BVB player to step onto the field, did cheers briefly erupt, as is usually the case.\nWhen his team mates followed, there was loud singing and scarves were waving - but by no means everywhere.\nIn the central blocks of the south stand, blocks 12 and 13, nothing moved.\nEven stadium announcer, Norbert Dickel, speaking once again of the successful results in recent days - the derby victory, the win against Arsenal, the contract extension of coach Jörgen klopp - did not raise spirits.\nJust five minutes before kick-off, the Capo climbed onto his podium - and the tension that had been almost tangible up until that point, lifted with a large shout, as Dickel asked for a shout from each section of fans as usual.\nAs always, the south stand was left until the end, and finally the stand resumed its usual role as the loudest section of the stadium.\nAnd as soon as the vociferous request for \"derby winners stand up\" came from the south stand upon kick-off, everything was back to normal.\nThe previous silence was indeed a reaction to the events of previous days.\nImmediately before the local district derby against FC Schalke 04, some of the travelling BVB fans fired flares into the crowds of spectators and onto the pitch - and in so doing almost hit goalkeeper Roman Weidenfeller.\nThe kick-off was delayed on account of the chaotic scenes,\nAs a result, BVB Chairman Hans Joachim Watzke had invited the heads of the Dortmund Ultras fan group to his office - and if Watzke's words are to be believed, this was a rather uncomfortable meeting for the fan representatives.\n\"There will be massive impact for the entire Ultra movement,\" announced the BVB Chairman on Thursday evening at a panel discussion in Frankfurt.\nAs an immediate measure, Watzke prohibited the Ultras from organising choreography for the home match against VfB Stuttgart.\n\"I have banned it,\" he explained.\nWe cannot ignore the zero tolerance policy regarding pyrotechnics in Saxony.\nIn addition, the Ultras were given the option of several different punishments - they now have until Tuesday to decide which one to accept.\nOtherwise BVB will impose a sanction by the end of next week, said Watzke.\n\"It will be severe,\" assured Watzke.\nIt will be interesting to see the reactions in the south stand then.\nPawnbrokers shine in Singapore as middle class feel the pinch\nAt a pawnshop in Bendemeer shopping centre in Singapore, Janani Amirthalinga is swapping a gold bangle, ring and pair of earrings to pay her daughters\" school fees.\n\"My husband and I have just bought a house so all my money's stuck there,\" Mrs Amirthalinga says.\nEven though she earns S$3,000 ($2,400) a month as an administrator and her husband works as well, the monthly family income is insufficient, she says.\nIndeed, such is demand across parts of southeast Asia - where household debt is rising - that ValueMax, where she is carrying out her transaction, this week became the third pawnshop to list on the Singapore stock exchange.\nPawning jewellery is not merely a fast way to land cash - S$1,300 in Ms Amirthalinga's case - but almost as cheap as unsecured bank loans.\nTypically pawnbrokers in Singapore charge an effective annual percentage rate of 17 per cent, just above the 15.4 per cent offered at United Overseas Bank, a local lender with a branch in the same shopping centre.\nHowever, pawnbrokers have the advantage of not requiring credit checks or proof of salary, and can arrange loans faster than banks.\nHence millions of people across the region are turning to pawnshops as families feel the squeeze from rising living costs and ballooning household and consumer debt.\nAfter five years of robust growth since the global financial crisis, and cheap credit fuelled by loose monetary policy in advanced economies, lower- and middle-income families are turning to pawn shops to make up the difference as their economies slow.\nThis week Standard & Poor's, the rating agency, cited increasing household leverage, mainly from rising mortgages, as a risk factor for Asian banks\" creditworthiness.\nIt said that Malaysia, Thailand and Singapore had the highest household debt to gross domestic product ratios in Asia.\nMalaysia topped the list at 80 per cent of GDP, up from 60 per cent in 2008.\nEconomists are also worried about high levels of consumer debt in Thailand, which this week narrowly emerged from technical recession.\nOn Thursday, data showed continued export weakness, and a softening in consumer demand.\n\"Bottom line is that with costs rising, people in the middle to lower end [of the income scale] will be looking to supplement their income wherever they can,\" says Song Seng Wun, economist at CIMB, a Malaysian bank.\nHistorically high prices for gold in the past two years have added to the rush to pawn personal belongings, as people take the opportunity to cash in the value of their family jewellery.\nIn Singapore, about 70 per cent of items pawned at the city-state's 200 pawn outlets are gold.\nPeople are saying \"the gold price looks good, let's pawn grandma's gold chain and get it back next month.\nIn Thailand the largest pawnshop operator, EasyMoney, has seen an up to 20 per cent rise in the number of customers using its outlets in recent months.\nSuch is the growth in the pawn business that ValueMax, operator of the outlet at Bendemeer and of 15 others like it in Singapore, plans to expand not only in neighbouring Malaysia - where it has four shops - but outside Asia too, says Yeah Lee Ching, ValueMax's executive director.\nThe company will fund that by using 60 per cent of S$66m it raised this week in a listing on the Singapore stock exchange.\nWhile some discount lenders have come under fire for high interest rates, Ms Yeah says that not only does pawning offer cheaper rates than other lenders, it also does not add directly to debt.\n\"Customers are mortgaging items that they already own, and monetising personal assets does not increase household debt,\" she says.\nThere's an increased social acceptance of pawnbroking as a means to secure short term, secured financing.\nNor are the types of people who use pawnbrokers only the financially stretched.\nWealthy people in Singapore also use ValueMax outlets, pawning gold bars or Rolex watches, which can command up to 60 per cent of their purchase price in cash.\nWe see customers from all walks of life.\n\"They include wealthy individuals who need to borrow short term for business ventures or investments, or small businesses with a need to tide over their cash flow needs,\" says Ms Yeah.\nSometimes they just need the money very quickly.\nNSA siphons data from Google and Yahoo - Snowden wants to help\nSecret Service whistleblower, Edward Snowden, has a fundamental interest in helping Germany clarify the increasingly explosive NSA espionage scandal.\nAccording to Green Party MP. Hans-Christian Ströbele, his surprising meeting with Snowden in Russia addressed the conditions under which the former Secret Service employee would make a statement to a German District Attorney or before an investigation committee.\nSnowden referred to his complex legal situation, Ströbele said on ARD's \"Panorama\" programme.\n$325m rescue package for Tassie health\nThe Federal Government insists a $325 million rescue package for Tasmania's ailing health system has tough conditions attached that will ensure the State Government can't waste the funds.\nFederal Health Minister Tanya Plibersek has announced the Commonwealth is taking \"urgent action\" to head off a crisis caused by the island state's aging population, higher rates of chronic disease and system constraints.\nThe funding, over four years, was decided after government consultations with Tasmanian independent MP Andrew Wilkie.\n\"The Government has come up with an emergency rescue package we believe will address the unique challenges faced by the state,\" Ms Plibersek said today.\nThe $325 million package includes a $31 million elective surgery blitz.\nAn additional 2600 operations including orthopedic and cataract surgery will help clear a backlog.\nThere's also money for walk-in clinics in Hobart and Launceston, better after-hospital care, medical specialist training, mental health services and the rollout of personal electronic health record systems in local hospitals.\n\"These investments respond to the ideas that front-line clinicians have told me will be the best ways to tend to Tasmania's health system,\" Ms Plibersek said.\nThe minister insisted the Tasmanian Government would face a strict reporting and accountability regime.\nThe state would have to maintain current funding levels in order to receive Commonwealth cash and report monthly on where it was spending the extra funds.\nA three-person commission will be set up to ensure the state is delivering services as effectively and efficiently as possible.\nMr Wilkie today said the $325 million would count for little \"unless it's followed by genuine reform to put Tasmania's public health system on a more sustainable footing.\"\nHe nevertheless praised the Government for responding to his request for urgent assistance which he first raised with the Prime Minister at the beginning of May.\n\"I'm hopeful the federal assistance package will go a long way towards taking the state's public health system off the critical list,\" Mr Wilkie said.\nAccording to the State Government these additional elective procedures will largely reverse the recent cuts.\nBut federal Opposition health spokesman Peter Dutton believes today's announcement is a \"band-aid solution.\"\n\"The reason we are here is that the Labor State Government ripped $430 million out of its health system,\" he told ABC TV.\nYou can't have a state government ripping out almost half-a-billion dollars and the Commonwealth put in $300 million and pretend it's a good news day.\nMr Dutton called on Ms Plibersek to guarantee that not one dollar out of the rescue package would be spent on additional bureaucracy.\nGuillaume Nicloux's adaptation of Denis Diderot's novel boasts exceptional production design and period detail but is also heavier going than it should be.\nUnfolding in 1760s France, it tells the grim story of Suzanne, a young aristocrat sent to a convent by her family.\nWhen she rebels, she experiences extreme cruelty at the hands of a wantonly sadistic Mother Superior and becomes an object of erotic fascination for another.\nThe film never slips into prurience or sensationalism - and that's the problem.\nThe earnest solemnity of the storytelling risks making it a hair shirt-like ordeal for audiences, too.\nSyria has destroyed its chemical weapons making ability, watchdog group says\nSyria has destroyed critical equipment for producing chemical weapons and poison gas munitions, the global chemical weapons watchdog said Thursday as fierce clashes raged in the country's north, close to one of the sites where toxic agents are believed to be stored.\nAlso Thursday, a Syrian activist group said more than 120,000 people have been killed since the start of the country's civil war nearly three years ago.\nThe announcement by the Organization for the Prohibition of Chemical Weapons came one day ahead of the Nov.\n1 deadline set by The Hague-based organization for Damascus to destroy or \"render inoperable\" all chemical weapon production facilities and machinery for mixing chemicals into poison gas and filling munitions.\nThe completion of what is essentially the initial stage of destruction is a significant milestone in an ambitious timeline that aims to destroy all of Damascus' chemical weapons by mid-2014.\nDestruction of the equipment means that Syria can no longer produce new chemical weapons.\nHowever, Damascus still has to start destroying existing weapons and stockpiles.\nThe country is believed to have around 1,000 metric tons of chemicals and weapons including mustard gas and the nerve agent sarin.\nThe announcement came as fighting raged Thursday in the town of Safira, which experts say is home to a chemical weapons production facility as well as storage sites, reported the Britain-based Syrian Observatory for Human Rights.\nThe activist group, which has been tracking the death toll through a network of activists in Syria, said Thursday that 120,296 people have died.\nOf those, it said 61,067 are civilians, including 6,365 children.\nOn the government side, it said 29,954 are members of President Bashar Assad's armed forces, 18,678 are pro-government fighters and 187 are Lebanese Hezbollah militants.\nAlso among the dead it said were 2,202 army defectors and some 5,375 opposition fighters, many of them foreigners.\nOn July 25, the U.N. estimated 100,000 have died in the conflict since March 2011.\nIt has not updated that figure since.\nThe conflict has forced some 2 million people to flee the country.\nAssad's troops have been battling rebels, many of them linked to al-Qaida groups, in Safira for weeks.\nThe Observatory said there were casualties on both sides Thursday but had no specifics.\nThe fighting underscored the dangers the chemical weapons' inspectors face as they race against tight deadlines in their mission to rid Syria of the toxic arsenal in the midst of an ongoing civil war.\nA statement from the OPCW, which works closely with the United Nations, said its team was \"now satisfied that it has verified - and seen destroyed - all of Syria's declared critical production and mixing/filling equipment.\"\nIt added that, \"no further inspection activities are currently planned.\"\nEarlier this week, the inspectors said they had completed their first round of verification work, visiting 21 of 23 sites declared by Damascus.\nThey were unable to visit two sites because of security concerns, the inspectors said.\nOn Thursday, OPCW said the two locations were, according to Syria, \"abandoned and ... the chemical weapons program items they contained were moved to other declared sites, which were inspected.\"\nIt was not immediately clear if the facility in Safira was one of the two sites that OPCW inspectors were not able to visit.\nSyria has submitted a plan for the total destruction of its chemical weapons that has to be approved next month by the OPCW's executive committee.\n\"I salute the fortitude and courage you've all demonstrated in fulfilling the most challenging mission ever undertaken by this organization,\" the watchdog's director-general, Ahmet Uzumcu, said in comments released by the OPCW.\nNow in its third year, the civil war pits the primarily Sunni Muslim rebels against Assad's government and its security forces, which are stacked with members of his Alawite sect, an offshoot of Shiite Islam.\nIn other developments, the Observatory's chief Rami Abdurrahman said there had been a strong explosion Wednesday inside an air defense facility in Syria's coastal province of Latakia.\nThe cause of the blast was not known, he said.\nAnger over Bali bomb plotter's sentence\nSurvivors and relatives of the 202 people killed in the 2002 Bali bombing have reacted with anger over the sentence given to the last of the plotters to face justice, saying Umar Patek should face a firing squad.\nPatek, who spent almost 10 years on the run as one of South-East Asia's most wanted, was yesterday sentenced to 20 years in jail for his role in building the explosive devices used in the bombing.\nHe could be released within 15 years if granted parole.\nThe 45-year-old was found guilty of mass murder for the attack on two nightclubs in the popular tourist area of Kuta which left 202 people dead, including 88 Australians, and injured scores more.\nHe was also found guilty of a number of other terrorism-related charges, including a wave of bombings of churches across Indonesia on Christmas Eve in 2000.\nProsecutors had demanded a life sentence, although they could have pushed that the man dubbed the \"Demolition Man\" for his reputation as a master bomb-maker be sentenced to death.\nThe decision has reignited painful memories for Perth mother June Corteen, who lost her 39-year-old twin daughters Jane and Jenny in the destruction unleashed by Patek and his co-conspirators almost a decade ago.\nFighting back tears, she said Patek should have been sentenced to death.\nI really feel that he should follow in the footsteps of the other guys.\n\"He should be put in front of the firing squad,\" Ms Corteen told AAP.\nI have to live every day without seeing more grandchildren, and my daughters.\nThe Sari Club was levelled when a massive bomb loaded into a van parked outside was detonated just after 11pm on October 12, 2002.\nPeter Hughes was in Paddy's Bar where a suicide bomber detonated a backpack loaded with explosives just 20 seconds earlier.\nHe lapsed into a month-long coma in the wake of the bombing, and \"died\" three times while on life support.\nMr Hughes said Patek should have shared the same fate as three other members of the Jemaah Islamiah terror cell responsible for the carnage - Amrozi, Mukhlas and Imam Samudra - who were executed four years ago.\nReally, this guy should get the death penalty before anybody.\nTo keep him alive, well, there's no reason to keep him alive.\nTo get 20 years, after killing 202 people and injuring many hundreds, it's not much.\nPatek is the last of the Bali bombers to face justice.\nHe had avoided capture for almost a decade but was eventually apprehended in January 2011 in the Pakistani town of Abbottabad, where US forces killed former al-Qaeda chief Osama bin Laden less than four months later.\nDuring the trial, an FBI agent testified that intelligence reports had revealed Patek was in Pakistan to meet with bin Laden in an effort to re-establish links between South-East Asian terrorist groups and al-Qaeda.\n\"He didn't give himself up,\" Ms Corteen said.\nUntil just recently, he really didn't feel sorry for how much grief he caused other people.\nThe verdict comes ahead of the 10th anniversary of the attack later this year, which will be marked by ceremonies in Bali and Australia.\n\"There will be a lot of tears this year,\" Ms Corteen said.\nPatek may yet appeal his sentence.\nFAA: Air passengers can now use gadgets on planes (but not make cell phone calls)\nAirline passengers will be able to use their electronic devices gate-to-gate to read, work, play games, watch movies and listen to music - but not talk on their cellphones - under much-anticipated new guidelines issued Thursday by the Federal Aviation Administration.\nBut passengers shouldn't expect changes to happen immediately.\nHow fast the change is implemented will vary by the airline, FAA Administrator Michael Huerta said at a news conference.\nAirlines will have to show the FAA how their airplanes meet the new guidelines and that they've updating their flight crew training manuals and rules for stowing devices to reflect the new guidelines.\nThe FAA said it has already received plans from some airlines to expand the use of portable electronic devices on planes.\nDelta and JetBlue were among the airliners who have already submitted plans.\n\"Depending on the condition of the plan, we could approve expanded use of electronic devices very soon,\" the FAA said in a statement.\nCurrently, passengers are required to turn off their smartphones, tablets and other devices once a plane's door closes.\nThey're not supposed to restart them until the planes reach 10,000 feet and the captain gives the go-ahead.\nPassengers are supposed to turn their devices off again as the plane descends to land and not restart them until the plane is on the ground.\nUnder the new guidelines, airlines whose planes are properly protected from electronic interference may allow passengers to use the devices during takeoffs, landings and taxiing, the FAA said.\nMost new airliners and other planes that have been modified so that passengers can use Wifi at higher altitudes are expected to meet the criteria.\nLaura Glading, president of the Association of Professional Flight Attendants, welcomed the changes.\n\"Once the new policy is safely implemented - and we're going to work closely with the carrier to do that - it will be a win-win,\" Glading said in a statement.\nWe're frankly tired of feeling like 'hall monitors' when it comes to this issue.\nBut connecting to the Internet to surf, exchange emails, text or download data will still be prohibited below 10,000 feet, the agency said.\nPassengers will be told to switch their smartphones, tablets and other devices to airplane mode.\nSo, still no Words With Friends, the online Scrabble-type game that actor Alec Baldwin was playing on his smartphone in 2011 when he was famously booted off an American Airlines jet for refusing to turn off the device while the plane was parked at the gate.\nAnd heavier devices such as laptops will continue to have to be stowed because of concern they might injure someone if they go flying around the cabin.\nIn-flight cellphone calls also will continue to be prohibited.\nRegulatory authority over phone calls belongs to the Federal Communications Commission, not the FAA.\nFAA may lift ban on some electronic devices during takeoff and landing\nLast month, National Transportation Safety Board Mark Rosenker, a CBS News national transportation safety expert, said that cell phones are still considered a risk.\n\"Cell phones, that really is an issue, not just because potentially it could create interference with navigational devices, but we do know, according to the FCC, that it could interfere with cell phone towers when they're in the air,\" Rosenker said.\nAn industry advisory committee created by the FAA to examine the issue recommended last month that the government permit greater use of personal electronic devices.\nPressure has been building on the FAA in recent years to ease restrictions on their use.\nCritics such as Sen. Claire McCaskill, D-Mo., contend there is no valid safety reason for the prohibitions.\nThe restrictions have also become increasingly difficult to enforce as use of the devices has become ubiquitous.\nSome studies indicate as many as a third of passengers forget or ignore directions to turn off their devices.\nThe FAA began restricting passengers' use of electronic devices in 1966 in response to reports of interference with navigation and communications equipment when passengers began carrying FM radios, the high-tech gadgets of their day.\nNew airliners are far more reliant on electrical systems than previous generations of aircraft, but they are also designed and approved by the FAA to be resistant to electronic interference.\nAirlines have been offering Wi-Fi use at cruising altitudes to passengers for several years.\nPlanes modified for Wi-Fi systems are also more resistant to interference.\nThe vast majority of airliners should qualify for greater electronic device use under the new guidelines, Huerta said.\nToday's electronic devices generally emit much lower power radio transmissions than previous generations of devices.\nE-readers, for example, emit only minimal transmissions when turning a page.\nBut transmissions are stronger when devices are downloading or sending data.\nAmong those pressing for a relaxation of restrictions on passengers' use of the devices has been Amazon.com.\nIn 2011, company officials loaded an airliner full of their Kindle e-readers and flew it around to test for problems but found none.\nFAA advisory committee members expressed mixed feelings about whether use of the devices presents any risk.\nDouglas Kidd of the National Association of Airline Passengers said he believes interference from the devices is genuine even if the risk is minimal.\nOther committee members said there are only anecdotal reports from pilots to support that the devices can interfere with aircraft systems, and most of those reports are very old.\nHowever, the committee recommended the FAA allow pilots to order passengers to shut off devices during instrument landings in low visibility.\nA travel industry group welcomed the changes, calling them common-sense accommodations for a traveling public now bristling with technology.\n\"We're pleased the FAA recognizes that an enjoyable passenger experience is not incompatible with safety and security,\" said Roger Dow, CEO of the U.S. Travel Association.\nBird airlifted to safety from North Sea rig released back into wild\nA bird airlifted ashore after being found exhausted on a North Sea oil rig has been released back into the wild.\nThe water rail was put on a helicopter to Aberdeen last month before being nursed back to health by the Scottish SPCA at its rescue centre in Alloa.\nCentre manager Colin Seddon said: \"This water rail was likely a winter migrant from Northern Europe who got caught up in strong winds over the North Sea.\"\nIt seems the bird became exhausted and managed to find refuge on the oil rig.\nHe added: \"It was unable to fly off again so we were contacted for help.\"\nThe water rail was fit and well by the time it was released.\nIs Europe's elite ready to do business with Britain?\nBusiness for Britain launched in April with a pledge to bring business together and define what the UK's wealth and job creators want to see changed in our relationship with the EU.\nTo that end, we commissioned the largest and most comprehensive poll of British business leaders asking them for their thoughts on Britain, business and the EU.\nYouGov polled over 1,000 business leaders, broadly representative of Britain's business sizes, sectors and regions.\nThe conclusions of the poll will come as a surprise to many.\nWe found that the vast majority of businesses are now looking to export outside of Europe, focusing on countries that are modernising and growing while the EU states stagnate.\nThey want to see the Government prioritise new trading links with the likes of China, India and Brazil, rather than getting bogged down in the long and arduous process of reforming the EU's arcane institutions.\nWhen asked their views on specific policy areas - ranging from monopoly regulation to product laws - the majority of business leaders thought that control of these key competences should be returned to Westminster.\nThere was general discontent with the Single Market, with businesses saying that the costs of Brussels regulation now outweighed the benefits of being part of Europe's trading area - even 40 per cent of large businesses, traditionally the most pro-European of companies, agreed.\nFinally, and most tellingly of all, our poll of business leaders found a clear majority wanted to see Britain pursue a course of treaty change and a relationship with the EU that is based on trade, not politics.\nThis finding, which was reflected across the sizes and major business groups, shows that business is pushing for a \"meaningful change\" that brings powers back to the UK.\nThe stakes are high - achieving treaty change and a better deal for Britain sees a 16 per cent swing towards voting to stay in the EU in a referendum.\nThe Prime Minister should be in no doubt: this poll shows that British business backs his plan for renegotiating the terms of Britain's membership of the EU.\nIt also shows that business expects that renegotiation to make a significant shift in the current balance of power back towards the UK.\nA better deal for British business is possible, and increasingly necessary as the eurozone embarks on the road to closer economic and fiscal union.\nThe priority must be jobs and growth in Britain and, as the findings of our poll show, for business this means a renewed focus on trade and a fundamental change in Brussels\" regulatory approach.\nGazprom's Alexei Miller says pipeline in Bulgaria starts new gas era\nThe start of construction of the South Stream gas pipeline in Bulgaria marks the launch of one of Europe's largest energy projects, Gazprom's chief said.\n\"A landmark event has taken place today: Construction started on the Bulgarian section of the South Stream gas pipeline, the most large-scale and important project in Europe,\" Gazprom Chairman Alexei Miller said in a statement Thursday.\nThis project is a key element of energy security of the whole European continent.\nSouth Stream is meant to add diversity to Russia's export routes through Europe.\nA contractual dispute between Gazprom and its counterparts in Ukraine, which hosts most of Russia's gas for Europe, adds a layer of risk to conventional routes, officials say.\nMiller said the direct connection to Bulgaria, a member of the European Union, means geopolitical risks associated with transit countries are eliminated \"forever.\"\nBulgarian consumers will receive gas from South Stream at a discounted rate once the entire project starts operating in 2015.\nGazprom said construction should begin in other downstream countries by year's end.\nThe pipeline is designed for an annual capacity of 2.2 trillion cubic feet of natural gas.\nNothing beats Germany as a property location for national and international investors.\nThe economic situation is right, and the financing options are fantastic.\nThis was the message of the 9th 'Immobilientag' (Property Day) organised by the Börsen Zeitung (stock exchange newspaper).\nThe German property markets are benefiting from the country's economic strength and general conditions which, compared with the rest of Europe, are very competitive.\nThis was pointed out by Christian Ulbrich, Jones Lang LaSalle CEO for Europe, the Near East and Africa, at the 9th 'Immobilientag' (Property Day) organised by the Börsen Zeitung (stock exchange newspaper).\nThe extent to which German commercial properties are sought after is evident in the transaction volumes, said Ulbrich.\nIn the first three quarters of this year, there was an increase of 31% compared to the same period the year before.\nIn Great Britain, growth stands at just 6%, and in France at 19%.\n\"Property investments offer an attractive rate of return,\" said Ulbrich.\nThe yield gap between properties and federal government bonds is at a historically high level.\nThe FAA is easing restrictions on the use of electronic gadgets on airplanes - though chatting on cellphones will still be prohibited.\nWarplanes attack a store of Russian missiles in the port city of Latakia, an official says.\nIt's an apparent continuation of Israel's campaign to keep arms from proliferating in the Mideast.\nA federal appeals court blocks a judge's ruling that the NYPD's controversial tactic discriminates against minorities.\nNearly 100 African migrants hoping to travel to Algeria die of thirst after their two trucks break down in the middle of the Sahara.\nExperts say violence that left 14 adults and seven children dead is nothing more than random chance, not a sign of growing violence in America.\nRather than being rattled by the U.S. government shutdown, investors kept their focus on what probably matters more: the Federal Reserve.\nThe California woman plans to challenge what may be a first-of-its-kind citation, saying the Internet-connected eyewear makes navigation easier.\nPolice say they have a video that appears to show Mayor Rob Ford smoking a crack pipe.\nEven close allies keep things from one another - and work every angle to find out what's being held back.\nThe Vatican wants to know how Catholic parishes around the globe handle sensitive issues like contraception, divorce and gay couples.\nTwo YMCA employees charged with sex offences before allegations against Jonathan Lord, Royal Commission hears\nTwo YMCA NSW employees had been charged with child sex offences before allegations were raised against Caringbah child care worker Jonathan Lord in 2011, the child sexual abuse Royal Commission has heard.\nBut in its opening statement to the Commission it said it had \"never dealt with an incident of child sexual assault within its organisation,\" the Commission was told.\nChief executive officer Phillip Hare was asked about one case where a YMCA employee was charged child pornography offences, and another when a gym instructor at the YMCA Caringbah Hall was convicted of child sexual offences against children in his care in 1991.\nMr Hare told Gail Furness, counsel assisting the Commission, he knew about the first case but did not know about the second one.\nHe conceded the YMCA's opening statement to the commission was also inaccurate in claiming \"there have been external audits of the YMCA that have recognised the YMCA as being at the forefront of child safety.\"\nEvidence before the commission is that YMCA was notified that it received the second lowest of four possible ratings in a Department of Education and Communities quality audit in August this year.\nMr Hare, who started with the YMCA when he was 21, conceded management \"from myself down\" failed by recruiting Lord and failed to make sure staff were clear about their obligations to report child safe policy breaches.\nEarlier this year Lord was convicted for sexual offences against 12 boys during the two years he worked at the YMCA.\nHe was jailed for a minimum of six years.\nBut Mr Hare rejected the suggestion the YMCA had a cultural problem which prevented staff from reporting Lord's breaches of child safety.\nStaff gave evidence they observed breaches including Lord being alone with children, babysitting them privately, having them sit on his lap, saying he loved one and letting them play with his mobile phone.\nDanielle Ockwell, who was supervised by Lord and asked for child protection training because she was concerned about his behaviour, testified she found the YMCA Caringbah children's services manager Jacqui Barnat who supervised Lord \"very intimidating and hard to approach a lot of the time.\"\nThe CEO said he did not accept staff's evidence that they were uncomfortable with reporting upwards to their managers.\nRather, he said, their friendships with Lord clouded their judgements about reporting him.\nMr Hare said he had provided his view to the YMCA NSW board that the lesson for the organisation from the \"Jonathan Lord incident\" was \"not about reporting\" by staff, and the board agreed with him.\nMr Hare said the decision to get staff to sign confidentiality agreements soon after the allegations emerged was made by YMCA general manager of children's services Liam Whitley.\nHe said it was intended to avoid contamination of evidence but was \"overzealous\" and poorly executed.\nYMCA NSW was not a child safe organisation at the time Jonathan Lord was employed between 2009 and 2011, child sex abuse expert Professor Stephen Smallbone of Griffith University told the commission.\nHe said there were \"serious problems\" in recruitment, screening, induction, training and supervision of staff.\nThe hearing adjourned until December 20.\nTony Blair said he'd seize the chance to return as Britain's prime minister - but acknowledges a comeback is unlikely.\nIn an interview overnight to mark the fifth anniversary of his departure from office, the 59-year-old aired his views on various domestic policies.\nSince he stood down in June 2007 after a decade as leader, Mr Blair has largely avoided discussing British politics, confining most of his comments to foreign affairs and his role as envoy to the Quartet of Middle East peacemakers.\nAsked if he would return to the post of prime minister, Mr Blair was quoted by London's Evening Standard as saying: \"Yes, sure, but it's not likely to happen is it, so...\"\nAs crowds of horse-showing experts gathered in Cardiff to battle it out for Horse of the Year, they knew the competition would be tough.\nBut nobody was quite ready for three-year-old Fenton Kirkland.\nNot yet in school and just months on from taking his first steps, the toddler and his pet Shetland pony Toffee trotted through the three rounds with ease to take the top prize - leaving their 30 adult opponents trailing behind.\nThe inseparable pair - who are the same height - were commended for appearance, behaviour and style at the annual contest run by Sunnybank Equestrian Centre, in Rudry near Cardiff.\nTaking to the stage against men and women in smart bowler hats, he tipped his flat cap at a jaunty angle and paraded two-year-old Toffee around the ring.\nFenton was lauded by judges for natural handling skills well beyond his years.\nAnd Toffee received top marks for his appearance and personality.\nFenton was given Toffee as a third birthday present last March and has practised with the Shetland pony every day since.\nHis mother Donna, 30, said: \"Fenton and Toffee are a great double act.\"\nThey were up against all comers but the two of them walked off with the gold cup and rosette.\nIt was only the second time he had competed with Toffee and we were all ecstatic when he won.\nComplete strangers in the arena all thought he was so phenomenal they wanted photos taken with him.\nThe youngster, from the village of Nantyglo, near Ebbw Vale, South Wales, is following in the footsteps of his aunt Sharon Howells, who has been showing horses for more than 10 years.\nMrs Howells said: \"The whole place was electric and everybody was cheering and clapping.\"\nHe was running on sand down the full length of the arena and even though he looked so tiny he did a marvellous job.\nFenton is animal mad - he loves horses, tractors and farms and has got two chickens which he looks after.\nThe way he has started he'll be at the Horse of the Year show before long - and I'm sure he'll do well.\nA spokesman for the annual horse show said: \"Fenton is only three but he knows how to handle his pony.\"\nThey are a great team together.\nThe judges marked Fenton and Toffee on how well they were turned out and the way they presented in the show ring.\nThey look for good teamwork between the pony and the handler - Fenton and Toffee were the best in the ring.\nI'm sure Fenton was helped by his cute clothes, he really looked the part.\nChina plea paper 'to be overhauled'\nA Chinese newspaper that made a front-page appeal for the release of a reporter accused of defamation is to be overhauled, a press regulator says.\nThe Guangzhou-based New Express made a rare public plea for the release of journalist Chen Yongzhou.\nBut Mr Chen subsequently admitted on television that he had taken bribes to fabricate stories about a part state-owned company.\nNow the New Express is to undergo \"full rectification,\" the regulator said.\nThe \"rectification\" order came from the Guangdong Administration of Press and Publication, Radio, Film and Television.\nA preliminary investigation showed that Yangcheng Evening News Group's New Express had published several untrue reports about listed company Zoomlion in the period of September 2012 to August 2013.\n\"New Express's editorial management was disordered,\" the regulator said in a statement.\nIt said it had decided to \"impose an administrative penalty on Chen Yongzhou by revoking his reporter's license.\"\nIt had also \"instructed Yangcheng Evening News Group to undertake a complete rectification of New Express, and recommended they investigate the relevant responsible persons at New Express and immediately revise New Express's leadership team.\"\nMr Chen wrote several articles for the New Express alleging financial irregularities at a construction-equipment company called Zoomlion.\nAfter he was detained, his newspaper published two front-page appeals for his release, saying it backed his journalism.\nBut Mr Chen then appeared on state television admitting he had published false stories for money.\n\"In this case I've caused damages to Zoomlion and also the whole news media industry and its ability to earn the public's trust,\" he told state broadcaster CCTV.\nI did this mainly because I hankered after money and fame.\nI've realised my wrongdoing.\nFollowing Mr Chen's apology, New Express issued a front-page apology, saying it had failed to properly check his reports.\nSeveral high-profile suspects have made televised confessions recently.\nExperts say confessions are still routinely coerced, despite a change in the law earlier this year banning the authorities from forcing anyone to incriminate themselves.\nUS-Mexico drug tunnel with its own railway found\nOne of the most sophisticated drug smuggling tunnels between the USA and Mexico has been found, complete with its own lighting, ventilation and electric rail systems.\nUS authorities described the four foot by three foot tunnel as one of the most sophisticated secret passages they have ever discovered.\nThe tunnel, which zigzags the length of nearly six football pitches, links warehouses near Tijuana, Mexico and San Diego, USA.\nThe area is filled with nondescript warehouses, making it easier to conceal trucks being loaded with drugs.\nThe tunnel was shut down before any drugs made it through undetected, authorities said.\nAuthorities seized eight-and-a-half tons of marijuana and 327 pounds of cocaine in connection with the tunnel's discovery, according to court records.\nThree men who authorities say worked as drivers were charged with possession of marijuana and cocaine with intent to distribute.\nThey face prison sentences between 10 years and life imprisonment if convicted.\nIn Nogales, Arizona, smugglers tap into vast underground drainage canals.\nThe tunnel is the eighth major passage discovered in San Diego since 2006.\nSome of the largest tunnels have been discovered after central Mexico's marijuana harvest in October, which presents drug cartels with a challenge of how to quickly get their product to consumers.\nIn 2010, authorities found a roughly 700-yard passage equipped with rail tracks that extended from the kitchen of a Tijuana home to two San Diego warehouses.\nOrlando Bloom and Miranda Kerr still love each other\nActors Orlando Bloom and Model Miranda Kerr want to go their separate ways.\nHowever, in an interview, Bloom has said that he and Kerr still love each other.\nMiranda Kerr and Orlando Bloom are parents to two-year-old Flynn.\nActor Orlando Bloom announced his separation from his wife, supermodel Miranda Kerr.\nIn an interview with US journalist Katie Couric, which is to be broadcast on Friday (local time), Bloom said, \"sometimes life doesn't go exactly as we plan or hope for\".\nHe and Kerr still love each other, emphasised the 36-year-old.\n\"We're going to support one another and love each other as parents to Flynn\".\nKerr and Bloom have been married since 2010. Their son Flynn was born in 2011.\nAccording to dictionaries, veganism is a sub-category of vegetarianism, yet the two do differ considerably.\nFor while vegetarians allow themselves to consume cream tarts, ice cream or a strong Edam, these indulgences are off the menu for vegans.\nMilk, cheese, egg - alongside avoiding meat and fish, vegans refrain from eating all products of animal origin - even honey is not permitted.\nYou might ask what is left, however, upon closer inspection the world of vegan nutrition is characterised by great resourcefulness.\n\"Spreads are very popular,\" explained Ute Henkelmann the owner of the local health food store, which provides a host of special products for vegans.\nReuben Proctor also likes to visit the store on \"Domgasse\".\nThe New Zealander has been vegan for 13 years, and in Lampertheim he can find (almost) everything that he needs to get by. \"In 1997 I adjusted my diet and became a vegetarian\".\nAt the turn of the millennium I took the next step and became vegan.\n\"However, it wasn't just the diet that convinced me, but also my choice of shoes,\" said Proctor, who prefers artificial leather over normal leather.\nHe realised that you can also overcome all other daily concerns without animal products.\nFirst and foremost, being vegan is a matter of ethics.\n\"I don't want animals to have to die for me,\" said Proctor, expressing the maxim of vegans, which applies to all their consumer behaviour.\nRather than missing burgers, scrambled eggs or gummi bears, the vegan has quickly discovered entirely new products that really inspire him.\n\"It is a double bonus,\" says Proctor now, \"in actual fact being vegan is not about doing without, it's not about asceticism, but rather it is an enhancement\". Regarding the assumption that when you convert your diet you are reducing your choice of meal options, Proctor puts this down to force of habit.\nAnd it is precisely this conditioning that results in many a well-intentioned attempt failing.\n\"The temptation factor is a decisive factor in causing many to quickly give up, similar to with smoking,\" says Proctor, providing a comparison.\nAnd he argues: \"Certain flavours are not linked to animal produce\".\nOften it is the herbs or the type of preparation that provide the flavour.\n\"You can, however, create the same effect in other ways,\" explains the vegan.\nFor example, when attending a barbecue party, Proctor brings aubergines, mushrooms and also a few vegan sausages.\nHe ensures a balanced, varied diet, whereby everything should also have a good hearty flavour.\nOf course you want to have something with a bit of bite, that is fair enough.\n\"It should be tasty, but this doesn't necessarily mean animal-based food,\" said Proctor.\nHe has not suffered any damage to his health or eating disorders - another wide-spread assumption.\nConverting has had a positive effect for me.\nI do not consume any foreign cholesterol and have increased my vitamin intake.\nThere are top athletes who also have an exclusively vegan diet.\n\"My blood values are excellent - I have myself checked on a regular basis,\" revealed Proctor.\nMany critics of veganism warn in particular of the lack of vitamin B12.\n\"Because animals are fed on fodder instead of grazing, it is dubious whether the vitamin B12 content in meat sold in freezers is actually high,\" commented Proctor.\nFor vegans there is also the option of taking the co-enzyme in the form of tablets.\n\"My B12 values are fine,\" he explained.\nProctor does not have to travel far to buy food.\nThere are basic foodstuffs available everywhere, and every supermarket now has soya milk and other products.\nI can find everything I need locally.\nI only purchase special items now and again.\n\"Many people overlook the fact that even though ready-made vegan products are expensive, it is well-known that this is also the case for \"normal\" ready-made products.\nIn any case, the preparation of vegan dishes is much cheaper and less time consuming than commonly assumed.\n\"In home cooking, there is much to be discovered - with a few minor tweaks you can achieve good, if not sometimes better results,\" said Proctor.\nMargarine in place of butter, a little more baking powder and bicarbonate of soda in place of egg - Proctor has even managed to astonish his in-laws with his vegan cheese cakes.\nThe vegan adds new spice to family parties.\nWhen you cook together there is a certain dynamic - cooking takes on new value.\n\"The situations that may arise are as varied as the people themselves,\" said Proctor.\nOf course he has already met with scepticism.\nDo you not like my food any more?\n\"Should I feel bad now because I drink milk?\" - as a vegan you have to be tactful in such matters.\n\"I do not disapprove of people, I am part of this society,\" said Proctor, explaining that he was not choosing a life of isolation.\nAnd on closer observation, the everyday world does not appear quite so 'un-vegan' - and vegans are not quite as limited in their everyday lives as is commonly assumed.\nFast food is also permitted.\nChips are available everywhere!\n\"Many doner kebab houses offer falafel, or even vegetarian Yufka,\" says Proctor.\nIn a pizzeria he avoids pasta dishes or just orders a pizza without cheese, all just a question of habit.\nRestaurants are slowly adapting to things.\n\"When I began eating a vegan diet 13 years ago, things were even more difficult,\" says the New Zealander, and he points out: \"You have to talk with people, make them aware\".\n\"If enough requests are made, they will perhaps be inclined to expand their menus,\" he hopes.\nThere are vegan restaurants opening up, such as the Kombüse in Mannheim or Café Vogelfrei.\nProctor hopes that other restaurants will also have at least one vegan dish on the menu.\nEssentially, vegan dishes are for everyone.\nAnyone can eat them, they are the exact opposite of exclusive.\n\"Meat dishes, on the other hand, are exclusive, in the truest sense of the word, as they rule others out,\" assessed Proctor.\n\"If you want to avoid food scandals, veganism is a safe way to rule out the majority of scandals from the outset,\" says Proctor.\nHowever, purchasing vegan products can be difficult to start with.\nOInce you come to understand that peanuts, in particular, may also contain animal additives as a colourant, people seem to quickly lose courage when following a code of ethics with so many hurdles and pitfalls.\nTherefore, for this reason and others, Reuben Proctor and Lars Thomsen have written a book. \"Veganissimo - Tierische Inhaltsstoffe und ihre Alternativen\" (Veganissimo - Animal Ingredients and their Alternatives) explains the many ingredients hidden in both foodstuffs and cleaning agents.\n\"You gradually develop an internal scanner and you know which symbols and logos you have to look out for\". Proctor has learned that \"it is sometimes better too take small steps rather than to stand still or stumble\".\nVeganism is an important moral compass, which has an effect on your consciousness.\nPerhaps he won't manage to help you break old habits altogether, but at least he manages to teach consumers to critically question their habits.\nStock exchange operator Nasdaq OMX keeps its customers on tenterhooks.\nTrading at the Nasdaq Options Market was interrupted on Friday afternoon, German time.\nIn an announcement, the operator cited technical problems as the reason.\nOn the other eleven options markets, including two also operated by Nasdaq OMX, business continued as normal.\nThe most recent incident is the latest in a series of both small and large breakdowns suffered by the stock exchange operator.\nAs recently as last Tuesday, the Nasdaq indices were not calculated for one hour due to data transfer errors.\nIn August of this year there were two breakdowns in a single week.\nFirst of all, US investment bank Goldman Sachs sent large quantities of incorrect purchase orders to the options markets due to technical problems.\nAs a result, the stock exchange operators required almost an entire day to look through and delete the orders.\nTwo days later, half of all stock dealing in the USA came to a standstill for several hours, due to a computer failure in the Nasdaq exchange.\nFurthermore, last year the listing of Facebook on the stock exchange caused quite a furore.\nThe Nasdaq systems could not cope with the flood of purchase and sales orders, the Exchange Supervisory Authority established at a later date, imposing a record penalty of 10 million dollars on the company.\nKonstanz: Cyclist knocks over 63-year-old man\nAccording to the police, the accident occurred on Thursday evening at around 10:00 p.m., when a 26-year-old man was cycling illegally, on the left footpath of the Bahnhofplatz in the direction of Marktstätte, on a ladies bicycle.\nAccording to police, when a 63-year-old man suddenly stepped out of a pub onto the footpath, the cyclist was unable to brake in time.\nDuring the subsequent collision, the pedestrian was thrown against the wall of the building, and then fell onto the ground, suffering a laceration to the head that measured around 15 centimetres in length.\nAn ambulance team brought the injured man to the clinic for medical treatment.\nBritish police serve Assange with extradition notice\nBtitish police served an extradition notice today on WikiLeaks founder Julian Assange, who has taken refuge in Ecuador's embassy in London and requested asylum.\nScotland Yard said they had served a \"surrender notice\" on the 40-year-old Australian requiring him to appear at a police station, adding that failure to do so would make him further liable to arrest.\nAssange faces extradition to Sweden over sex crime allegations, having exhausted his options under British law when the Supreme Court overturned his appeal against extradition earlier this month.\nFearing Stockholm would pass him on to the US, he sought refuge at Ecuador's embassy in London on June 19, asking the South American country for political asylum.\nScotland Yard has \"served a surrender notice upon a 40-year-old man that requires him to attend a police station at date and time of our choosing,\" a spokesman said.\nHe remains in breach of his bail conditions.\nThe embassy declined to comment on the serving of the police notice.\nAssange fears he will be extradited from Sweden to the United States to face possible espionage charges, after releasing more than 250,000 US diplomatic cables on the WikiLeaks anti-secrecy website.\nDriver speeding at 130mph with hot drink between legs fined £1,000\nA motorist has been fined £1,000 for driving at up to 130mph (210km/h) with a hot drink balanced between his legs.\nAndrew Howie, 35, of Tiptree, Essex, was spotted driving his Mercedes Benz on the A120 at Braintree on 27 May.\nWhen police stopped him they discovered the takeaway drink between his legs.\nAt Colchester Magistrates' Court Howie admitted a charge of driving without due care and attention.\nSeven points added to his licence resulted in him receiving a six-month driving ban.\nHowie was also ordered to pay costs of £90 and a victim surcharge of £100.\nTax on foreign property owners to burst London's bubble\nThe Treasury have provisionally costed out the CGT measure but are awaiting a final decision from Mr Osborne, who, in the 2012 Budget, introduced a 7% rate of stamp duty for homes costing more than £2m and annual charges for buyers who choose to hold homes in a company rather than as individuals.\nAlready the stamp duty take for residential property in the boroughs of Westminster and Kensington & Chelsea, which stood at £708 million in the 2012/13 tax year, exceeds the combined total for Northern Ireland, Wales, Scotland, the North East, North West and Yorkshire and the Humber put together.\nMr Cook said: \"Following increases in stamp duty of high value homes and the introduction of associated anti-avoidance legislation, it is very difficult to argue that high value property is under-taxed irrespective of the effect of the out-dated council tax system.\"\n\"But this move could make some foreign investors reticent to buy property in London or current owners reluctant to sell,\" he added.\nPrime property - the top 5% to 10% of the housing market by price - in the affluent south-west London belt, which stretches from Fulham to Wimbledon, has increased by a record 11.8% over the past year.\nPrices in central London continued to show steady year-on-year growth of 5.6% but were overshadowed by a burgeoning \"domestic market\" with the city's south west, north (7.4%) and east (6.5%) all experiencing an uptick, according to research from Savills.\nScientists have shed more light on how the movements of a dog's tail are linked to its mood.\nEarlier research had revealed that happy dogs wag their tails more to the right (from the dog's point of view), while nervous dogs have a left-dominated swish.\nBut now scientists say that fellow canines can spot and respond to these subtle tail differences.\nProf Georgio Vallortigara, a neuroscientist from the University of Trento, said: \"It is very well known in humans that the left and right side of the brain are differently involved in stimuli that invokes positive or negative emotions.\"\nHere we attempted to look at it in other species.\nHe added that just as in humans, for dogs the right side of the brain was responsible for left-handed movement and vice versa, and the two hemispheres played different roles in emotions.\nTo find out more about how dogs react to the lop-sided tail wags of other dogs, the researchers monitored the animals as they watched films of other dogs.\nThey measured the pets' heart rates and analysed their behaviour.\nIt will probably not be long before we understand why their tails sometimes go one way, sometimes the other\nProf Vallortigara said: \"We presented dogs with movies of dogs - either a naturalistic version or a silhouette to get rid of any other confounding issues, and we could doctor the movement of the tail and present the tail more to the left or right.\"\nWhen the animals saw an otherwise expressionless dog move its tail to the right (from the tail-wagging dog's point of view), they stayed perfectly relaxed.\nBut when they spotted a tail veer predominantly to the left (again from the tail-swishing dog's point of view), their heart rates picked up and they looked anxious.\nProf Vallortigara said he didn't think that the dogs were intentionally communicating with each other through these movements.\nInstead, he believes that they dogs have learned from experience what moves they should and shouldn't feel worried about.\nHe said: \"If you have several meetings with other dogs, and frequently their tail wagging one way is associated with a more friendly behaviour, and the right side is producing a less friendly behaviour, you respond on the basis of that experience.\"\nThe researchers say the findings could give owners, vets and trainers a better insight into their animal's emotions.\nDog behaviour expert John Bradshaw, a visiting fellow at the University of Bristol's school of veterinary science, said this was not the first study to examine whether left and right were important to canines.\nLast year a team from the University of Lincoln found that dogs turn their heads to the left when looking at an aggressive dog and to the right when looking at a happy dog.\nAnd in another research paper from the University of Victoria in Canada, he said: \"Dogs were more likely to approach a robot dog when its 'tail' was made to wag left rather than right, rather than becoming anxious - the opposite way around to the Italian study.\"\nHe said the differences could be because the dogs in the different studies were not fully interpreting the animals in the films or robo-dogs as canines.\nA study of how dogs responded to real dogs could help, he explained.\n\"While there is considerable evidence from many different mammals that the two sides of the brain are used for different purposes, much of the detail still has to be hammered out - and dogs are no exception,\" he said.\nHowever, given the ease with which their behaviour can be recorded, it will probably not be long before we understand why their tails sometimes go one way, sometimes the other.\nArctic Monkeys postpone Glasgow gig due to Alex Turner's illness\nRock band the Arctic Monkeys have postponed a gig in Glasgow after their lead singer was diagnosed with laryngitis.\nThe Sheffield group were scheduled to perform at the Hydro venue in the city on Friday.\nHowever, lead singer Alex Turner's illness has forced them to reschedule the show.\nThe band's announcement came after they were forced to similarly postpone a gig at the LG Arena in Birmingham on Thursday.\nIn a statement on their official website, the Arctic Monkeys said: \"Following the decision to postpone the show at the Birmingham LG Arena tonight and after seeking medical advice, Arctic Monkeys must also postpone the show at the Glasgow Hydro on Friday, November 1.\"\n\"Alex Turner has been diagnosed with laryngitis and is regrettably not able to perform.\"\nThe show at the LG Arena in Birmingham will now take place on November 20 and the show at the Glasgow Hydro will now take place on November 21.\nAll tickets remain valid for these shows.\nWe wish to apologise to all ticket holders for any inconvenience this has caused.\nPlease contact the customer services at the box office you purchased your tickets from for any further assistance.\nPope Francis to name first cardinals in February\nPope Francis will create new cardinals of the Catholic Church for his first time on February 22, the Vatican announced Thursday.\nCardinals are the highest-ranking clergy in the Catholic Church below the pope, and they're the ones who elect popes, so Francis will be appointing his first group of men who will ultimately help choose his successor.\nThere are now 201 cardinals.\nHowever, once a cardinal reaches 80 he is no longer permitted to participate in the election of a pope -- this falls to a group of 120 \"cardinal electors.\"\nIn a statement announcing the news, Father Federico Lombardi, a Vatican spokesman, said a meeting of all the existing cardinals would be held before the ceremony to elevate the new cardinals, known as a consistory.\n\"Pope Francis has decided to communicate his decision to convoke February's consistory in advance in order to facilitate the planning of other meetings involving the participation of cardinals from different parts of the world,\" Lombardi said.\nJack Valero of Catholic Voices said that by February, the number of cardinal electors was likely to have dropped.\nHe said usually a pope would name as many cardinals as was needed to raise the number of cardinal electors back to 120 and as many cardinals aged over 80 as he wanted.\nNext year's consistory would be significant because it would be the first since Francis was elected in March this year, Valero said.\nAt the moment there is a sort of bias towards Europe and especially towards Italy.\n\"It will be interesting to see whether the new Pope will nominate cardinals from the rest of the world to restore the balance,\" he said.\nForty percent of Roman Catholics are in South America, but they have a tiny number of cardinals.\nThe cardinals will also be the first to be chosen since Francis formed the Council of Cardinals, a group of eight cardinals from around the world tasked with looking into ways to reform the church.\nIn the past the Pope decided everything on his own.\n\"Now Francis has selected these eight cardinals to help him,\" Valero said.\nHe said it was \"quite possible\" that Francis would ask the cardinals for advice.\nBut we've not been in that situation before -- it's all completely new.\nValero said popes typically elevated bishops from large places to the position of cardinal but that Francis was \"full of surprises -- so we don't know who he'll name.\"\nGM recalls some new pickup trucks in U.S. to fix seatbacks\nGeneral Motors Co is recalling nearly 19,000 of its all-new 2014 Chevrolet Silverado and GMC Sierra pickup trucks to repair a problem with the manual reclining seatback, according to a notice from U.S. auto safety regulators on Friday.\nOn some of the trucks, the front seats may have a defect in the reclining mechanism.\nAs a result, the seatbacks fail to comply with federal auto safety standards on head restraints.\n\"If the vehicle is struck from behind, the head restraint may not properly protect occupants, increasing the risk of injury,\" according to the notice posted on the National Highway Traffic Safety Administration website.\nThe recalled models were built between August 1 and September 10.\nGM's truck roll-out began in June and represents the most important vehicle launch for the No. 1 U.S. automaker since its 2009 bankruptcy restructuring.\nGM told truck owners about the defect in the first half of October.\nNHTSA could not review the owner notification letter due to the 16-day government shutdown, which tempered auto sales growth in October.\nSales of the Silverado and Sierra trucks, which were redesigned for the 2014 model year, were up about 20 percent during the first 10 months of the year, GM said on Friday.\nIn October, GM sold 42,660 Silverado and 16,503 Sierra pickup trucks.\nGM shares were up 1.4 percent at $37.47 on the New York Stock Exchange on Friday afternoon.\nAn Obama voter's cry of despair\nI voted for President Obama twice, sharing hope in possibility of change\nHe says Obama has had worthy efforts thwarted by GOP obstructionism\nObstructionism can't excuse Obamacare website woes, drone attacks\nObama's 2008 campaign memoir is a sad reminder of what might have been\nNathaniel P. Morris is a second-year student at Harvard Medical School.\nI'm reading a terribly sad book these days.\nIt's a book that I thought would uplift me during the doldrums of second-year medical school, and renew in me a sense of hope.\nIt's called \"The Audacity to Win,\" and it's a memoir of Barack Obama's 2008 presidential campaign.\nWhen I'm finished with my patient write-ups at night and get into bed, the book returns me to a time when politics inspired millions and speeches could take your breath away.\nThe election turned out to be a landslide, and news anchors paused to reflect on the historic nature of the hour.\nMy classmates cried with joy, and my parents saved every newspaper they could find.\nA young team of visionaries was headed for the White House, and the nation was ready for change.\nDuring Obama's transition to office in 2008, he had an 82% approval rating.\nAnd then I close the book.\nCutting to the present is a rude awakening, like snapping out of a dream.\nIt's hard to remember those days of optimism -- they seem a distant memory, a sad reminder of opportunities gone by.\nChange indeed happened, in the years since I cast my first ballot.\nIt was simply nothing I could have imagined.\nI credit Obama with great and varied accomplishments, from the passage of the Affordable Care Act to our military exit from Iraq, the end of \"don't ask don't tell,\" to the killing of Osama bin Laden.\nMoreover, I believe that partisan obstructionism has upended too many efforts to push our nation forward: immigration reform, a public option for health care, and closing the base at Guantanamo Bay, among others.\nBut, after the countless times in which I have found myself defending the Obama administration to colleagues and peers, I've reached a limit to the explanations that I can provide.\nI've reached a point of political despair.\nRepublican obstructionism cannot explain allowing the bugging of foreign leaders, nor having drones strike innocent children overseas.\nIt cannot explain having the National Security Agency collect data on the private lives of Americans, nor prosecuting whistle-blowers who reveal government wrongdoing.\nIt cannot account for assassinating Anwar al-Awlaki, an American citizen, without a trial, nor shirking public funding and spending limits during presidential campaigns.\nIt cannot justify the findings of a report that says the White House's efforts to silence the media are the \"most aggressive ... since the Nixon Administration.\"\nAnd, most recently, it cannot excuse the failure to design a simple website more than three years since the Affordable Care Act was signed into law.\nI don't know if this is what I should have expected.\nIf, at 18 years old, I was supposed to figure out that governance may contradict the political campaigns that precede it.\nObviously, elective office isn't a predictable course, as the opposing political party and random events, such as the Newtown massacre, will shape our public conversation.\nYet, of all of the examples that I have listed above, they largely seem to be of the administration's own choosing.\nThat is what troubles me most of all.\nI voted for Obama again in 2012, but not because I was excited by his candidacy.\nMitt Romney presented a confusing and unrefined alternative who could not seem to lock down his policies or his positions.\nI felt that a second term for Obama, free from the pressures of future elections, would fulfill the hope that we had heard of for so long.\nStill, as Obama's approval rating sank below 45% this week, returning to 2008 through that book has become that much harder.\nIt makes me yearn for the many promises that disappeared.\nThis week I was reading the portion of the book describing how Obama suffered a huge loss to Clinton in the Pennsylvania primary.\nAt a post-mortem campaign meeting, he told his staff that they needed to get back on track and stay true to the purpose of their cause.\n\"I want us to get our mojo back,\" he said.\nWe've got to remember who we are.'\nIt's five years later, Mr. President, and I couldn't agree with you more.\nThe opinions expressed in this commentary are solely those of Nathaniel Morris.\nClive Palmer claims PM Tony Abbott has conflict of interest over parental leave scheme\nBillionaire MP Clive Palmer says Prime Minister Tony Abbott has a conflict of interest over his parental leave scheme because his daughters might get pregnant and benefit from it.\nThe mining magnate, who is in a dispute about paying a $6 million carbon tax bill, made the claim as he tried to brush off questions about whether he had a conflict.\nThe Palmer United Party could control up to four votes in the Senate that may be crucial in deciding if the carbon and mining taxes are axed.\nBut Mr Palmer claimed it was only ministers who could have a conflict of interest and said Mr Abbott's daughters stood to personally benefit from policies.\n\"He's got a major conflict of interest when it comes to paid parental leave because if any of those daughters get pregnant, he'll have a direct interest whether they get leave or not,\" Mr Palmer said.\nTwo months after the election, the electoral commission officially declared Mr Palmer the winner of the Sunshine Coast seat of Fairfax by 53 votes, after a recount.\nMr Palmer called for overhaul of election counting to speed up the process.\nTony Abbott's daughters Frances and Bridget.\nShould this election be decided two months after we stopped voting?\n\"We need to have a better system,\" he said.\nWhy is it that we shouldn't have a system where you can walk in, punch your details into a computer, vote immediately and have a result at 6.30 that night?\nMr Palmer also criticised the use of pencils to mark ballots.\nIs it because they can rub out the result if someone doesn't like it?\nIn this day and age having a pencil seems extraordinary.\nThe Electoral Commission has been studying options for electronic voting and recently released a joint discussion paper with New Zealand.\nMr Palmer, 59, said his policies included an international airport for the Sunshine Coast and he would take \"very seriously\" his new job.\nPublic office is about public service.\n\"We seek no reward, except the reward of history that we can at a critical time serve this community,\" he said.\nRBS suspends two forex traders\nRoyal Bank of Scotland has suspended two traders in its foreign exchange division according to two people familiar with the situation, in another sign that the global probe by regulators into the suspected manipulation of the currency market is rapidly gaining traction.\nSome of the world's largest banks, including UBS, Barclays, Deutsche Bank and RBS, have confirmed they are co-operating with regulators in investigations into the world's largest financial market, where $5.3tn changes hands each day.\nThe two traders would be the first RBS employees to be suspended in the widening probe that echoes the Libor interbank lending manipulation scandal.\nThe bank, which declined to comment on the suspensions, confirmed this month that it has received requests for information from regulators.\n\"Our ongoing inquiry into this matter continues and we are co-operating fully with the FCA and our other regulators,\" the bank said two weeks ago.\nLast month, people close to the situation said that RBS had turned over records of emails and instant messages to the UK regulator, the Financial Conduct Authority, sent to and from a former trader.\nThis trader, Richard Usher, left RBS in 2010 and is understand to have be given leave from his current position as European head of forex spot trading at JPMorgan.\nRohan Ramchandani, head of European spot trading at Citi, went on leave this week, while Matt Gardiner, a former senior currencies trader at Barclays and UBS, was suspended by Standard Chartered this week.\nNone of these traders have been accused of any wrongdoing.\nMr Usher's instant message group included bankers at Barclays and Citigroup, people close to the situation said.\nUBS said this week it had taken action against some of its employees after the Swiss regulator, Finma, said it was investigating suspected manipulation of the foreign exchange market at a number of Swiss banks.\nAt least six authorities globally - the European Commission, Finma, Switzerland's competition authority Weko, the FCA, the Department of Justice in the US and the Hong Kong Monetary Authority - are looking at allegations that bankers colluded to move the currencies market.\nHSBC, Citigroup, JPMorgan and Credit Suisse have also launched internal probes or received requests for information from regulators, said people familiar with the situation.\nBanks are scouring through years\" worth of instant messages and emails to search for instances of wrongdoing.\nNews about the probes has rattled traders in an area that has been one of the bigger profit drivers of investment banks' trading units in past years but which has been challenged this year as low volatility in currencies cuts opportunities for speculators.\nSome bankers have tried to play down the affair by saying the vast and highly liquid foreign exchange market is almost impossible to manipulate, but senior traders are saying this is not necessarily true.\nA senior trader said that despite the huge volume of daily foreign exchange trading, the fragmentation of liquidity between different trading platforms and banks\" increasing use of their own internal platforms meant that \"you can start to get an impact on the market at quite small ticket prices.\"\nThe news came on the same day as Credit Suisse announced it had dismissed a trader at its London exchange traded funds desk this week after he had caused a nearly $6m loss late last year.\nThe bank promptly notified the relevant authorities and has been co-operating with its regulators.\n\"We are confident the trader acted alone and that the matter has been contained,\" Credit Suisse said.\nHoarding on the Bechtle plot painted\nA group belonging to the \"Schweizer Wiese\" citizen's initiative has given the hoarding on the Bechtle plot on the spa promenade in Bad Herrenalb a face-lift.\nIn addition, they have cleaned and widened the footpath, a press release announced.\nThe planned covering of the dilapidated house to the rear of the plot was not permitted for safety reasons, as the premises were at risk of collapsing.\nAlfred Abel, who currently manages the site, arranged the 'face-lift' in cooperation with his colleague, Reinhard Domke, from the citizen's initiative.\nBefore the citizen's initiative project, a banner with the message \"We are in favour\" was put up.\nHowever, this did little to distract the 20 or so members of the citizen's initiative from their project.\nTheir motto, on the large billboard stated \"We are against unfinished buildings\".\nIn so doing they wanted to point out the danger of even bigger ruins on the Schweizer Wiese - should the huge project one day fail.\nChatting with many people passing by the \"construction site\", it became clear that many citizens believe the execution of the project would make things much better for the town, although many have the same questions as the citizen's initiative regarding the scale of the planned project.\nHowever, they are beginning to resign themselves as the town continues to stall in providing answers, said a statement from the citizen's initiative.\nWe have now been told that the public statements made by the Mayor are also having an impact.\nIn May, in the meeting of the Town Council, he said that he feared for the outcome of the spa should the population vote against the plans for a spa and wellness complex on the Schweizer Wiese in the local referendum.\nSome appear utterly frightened by it, others perceive it as a \"blatant attempt to blackmail\" the population, continued the press release from the citizen's initiative.\nThe citizen's initiative thanked those who donated paint and all those who lent a hand.\nRangnick scolding for refs: Mane is no diver\nAs satisfied as Ralf Rangnick is with the present winning form of the Austrian Bundesliga table-toppers, Red Bull Salzburg, the Sporting Director of the \"Bulls\" expressed equal disappointment with the referees.\n\"There is currently a dangerous trend, with Mane and Alan being dubbed as 'divers',\" he said at a press conference in Salburg on Thursday, in defence of the two tricky offensive players.\nThe most recent cause for Rangnick's criticism was the yellow card for Mane at 3:0 against Grödig last Sunday, whereby the Senegalese striker was penalised for supposed play acting - admittedly this was not justified, as shown by TV footage.\n\"A blatant wrong decision,\" commented Rangnick, who referred to Harkam as being \"completely out of his depth\".\nHarkam also played \"his part\" in the escalation between Salzburg Coach Roger Schmidt and Grödig Trainer Adi Hütter after the game.\nHe firmly defended his German compatriot: \"In each individual situation I would have behaved in the same way as Roger Schmidt\".\nSchmidt himself did not wish to have any contact with his colleagues after the skirmish with Hütter.\nI do not know why.\n\"After all, I was the one who was insulted,\" emphasised the 46-year-old.\nHowever, with regard to the winning run, Rangnick sang his team's praises.\n\"There are only two words for it: Really good,\" he stated.\nThere is not a lot you can criticise.\nMost of all, the manner in which the team is playing is impressive.\nWe must stay composed and keep it up.\nThere will hardly be any squad changes in the winter transfer window.\nThere is no major reason to change anything.\n\"Unless a player comes forward and expresses the desire to leave the club,\" explained Rangnick.\nSupreme Court upholds Obama health care law\nIn a major victory for the Obama administration, the US Supreme Court today ruled Barack Obama's signature health care law is constitutional.\nBy a 5-4 vote, the justices ruled the Patient Protection and Affordable Care Act's individual mandate - which requires citizens to buy health insurance by 2014 or else pay a penalty - was constitutional under the taxing power of the government.\nChief Justice John Roberts sided with the four more liberal members of the court while Justices Scalia, Thomas, Alito and Kennedy dissented.\nThe court also upheld the remaining sections of the 2700 page law, and further held that the health care law's requirement that states increase Medicaid eligibility or else lose all federal Medicaid funding is not unconstitutionally coercive.\nThe suit to block the law was brought by 26 states and the National Federation of Independent Business.\nThe law was vigorously opposed by each of the major Republican presidential candidates during the 2012 primary season, including presumptive nominee Mitt Romney.\nNorway: Norwegian village lights itself up with huge mirrors\nUsing huge mirrors, the residents of a Norwegian village have brought light to their dreary valley.\nDue to the low level of sunshine, from autumn until spring the village of Rjukan in the Vestfjord valley normally languishes in the shadows of the surrounding mountains.\nWith three gigantic mirrors, each 45 metres tall, a centuries-old dream came true on Wednesday.\n\"Finally!', raved Mayor Steinar Bergsland at the inaugural ceremony, televised by broadcaster TV2.\nSome valley residents lay back on sun loungers, while others safely put on their sunglasses.\nUp until now, those hungry for sunshine in the winter had to travel to a nearby peak by cable car.\nTen years ago, local artist Martin Andersen presented the proposal of directing the sun into the valley using mirrors.\nHowever, this basic idea had been talked of in the location since 1913.\nAfter several years of debate, the Town Council finally approved the project, which cost 5 million krone (around EUR 615,000).\nA similar construction has provided sunshine to the Italian alpine resort of Viganella for a number of years.\nThe post is hardly ever emptied on Sundays\n\"Many citizens will not yet have noticed that red dots indicating a Sunday post collection are still to be found on many post boxes in the town centre and its districts. However, if you read the small print on the yellow boxes operated by Post AG, you will quickly find out that the boxes are no longer emptied on Sundays and holidays,\" announced the FDP.\nAn inquiry by the FDP confirmed this.\nOnly the post boxes in front of the post office building at Ernst-Ludwig-Straße 36 and at Jakob-Müller-Straße 1 in Hüttenfeld are still emptied.\nWhether there are still Sunday collections in Hofheim and Rosengarten is not addressed in the inquiry by the FDP.\nThe FDP spokesperson for social and youth-related affairs, Fritz Röhrenbeck wants to dig deeper into this.\nThe Sunday collection is an important postal service, especially in the case of scheduled post.\n\"The company is radically and unacceptably cutting back on this, despite the price increase for letters in January 2013.\nThomas Bittner, Liberal Party Parliamentary Group and Municipal Association Chairman, is supporting his fellow group members: \"What annoys me, is the fact that the collection times have been changed or cancelled on the quiet here\".\nIn so doing, the postal service is miles off the mark when it comes to public accessibility.\n\"At least the post boxes in the districts of Neuschloß and Rosengarten must still be emptied on Sundays,\" said Bittner and Röhrenbeck in unison.\nIt is also the case for the town centre that those citizens in particular who are not mobile must also be able to access a post box with a Sunday collection on foot.\nIn the Town Parliament, Röhrenbeck asked whether the Town Council was planning discussions with the postal service regarding this matter.\nMayor Erich Maier responded that the postal service had not communicated with Lampertheim.\nTo the best of his knowledge, however, there is a Sunday collection in Hofheim.\nTheir party has spoken out in favour of privatisation.\n\"Decisions will then be made elsewhere,\" said Maier.\nFrankfurt parking fees to increase dramatically\nParking in Frankfurt could soon be noticeably more expensive.\nThe City Magistrate today discussed a submission by the head of the department for transport, Stefan Majer (Green Party).\nAccording to the proposal, parking fees are to be increased by 50 per cent.\nThis increase will not, however, be the result of raised prices, but rather the fact that time interval permitted by parking meters and ticketing machines will be reduced from 30 to 20 minutes.\nThe City Council must reach a decision on this in December.\nThe Retail Committee of the Frankfurt Chamber of Industry and Commerce believes that this is \"not a good idea\".\nThe option of parking right outside their businesses is \"an advantage to smaller retailers that must not be underestimated.\".\nThe Verkehrsclub Deutschland (German Traffic Club) is of the opinion that an increase after two decades is \"completely appropriate and actually long overdue\".\nLocal public transport will also become more expensive.\nFreudenstadt: Quick moves take hosts by surprise\nWith a slender squad, the TSV Freudenstadt Herren I team (Men's First Team) stepped into the Schiller School Gymnasium in Reutlingen to face TG Gönningen of the Swabian Alb region.\nThe Alb men stood on the other side of the net with what was undoubtedly a more experienced team.\nHowever, it soon became evident that, due in part to their age, they could not really keep up with the fast pace of the Freudenstadt team.\nGönningen found it extremely difficult to cope with the hard and well-positioned offensive moves.\nThey repeatedly missed the passes and attacks coming cleanly over the net from Simon Schenk and Eduard Schulz and their blocking game was not up to scratch.\nClear victories in the first two sets clearly demonstrated the superiority of the Freudenstadt team in all areas.\nFaced with this overwhelming and match-determining performance, the third set was won following a somewhat tame and spiritless performance, for a final score of 3:0 (25:13, 25:14, 25:22).\nOn 2 November, when they play TV Baiersbronn, who managed a clear victory in Nagold, they will step onto the court to face a much stronger opponent.\nTSV Freudenstadt I: Dominik Bäuerle, Yannik Büchle, Sebastian Dölker, Felix Pälchen, Stefan Räller, Simon Schenk and Eduard Schulz.\nIn the B Class, two teams from Baiersbronn and Freudenstadt faced off in the Murgtalhalle in Baiersbronn.\nThey produced a hard-fought two-hour match.\nNerves on both sides, particularly when receiving the ball, resulted in errors and lost points; there was even a lack of passing at times and at some critical moments overeagerness saw potential points wasted.\nHowever, in this evenly matched game, the great physical effort of Marcus Blasutto's TSV team proved decisive in spite of tremendous commitment by both teams.\nMaintenance day at the small 'Engländerhütte'\nFor what was then the fifth maintenance day in the follow-up to the Natura 2000 project in Upper Hotzenwald, a group of dedicated participants met at the small Engländerhütte (Englishman's Cottage) in Ibach\nFollowing suggestions from the population, the of the valley in the area of the cottage was to be cleared, said Mayor Helmut Kaiser.\nAccording to Kaiser, many hikers refer to this area as the showpiece of the Schluchtensteig, where the landscape provides the ideal framework for fantastic views.\nHe thanked those present for their willingness to cooperate and emphasised that the maintenance day is a suitable instrument through which to strengthen the connection between people and nature,\nHe is offering every citizen the opportunity to focus on nature itself.\nAt the same time as the tourist aspect, environmental aspects should also be taken into consideration.\nThis environmental aspect was explained by Friederike Tribukait of the Department of Nature Conservation of the Freiburg Regional Council, following the greeting by Regional Councillor Tilman Bollacher, who had taken on the role of patron and wished the campaign every success.\nAccording to Tribukait, the tourist objective of the vision coincided with the goal of preserving the now extremely overgrown old Allmend grazing pasture, with its specific protected habitats, through its opening and connection to the still existing grazing land.\nCertain species, such as rare butterflies or grasshoppers, cannot get past barriers in the form of forest areas.\nThey require these clear pathways in order to preserve their species.\nTribukait said that she did not want to fail to use this opportunity to say a word in defence of the planned biosphere area.\nThe current measures do not integrate seamlessly into these plans.\nA biosphere area offers the chance for sustainable economic and ecological development on the basis of the internationally recognised Unesco status, and thus offers an extension to what has been achieved thus far with the Life Project and the previous care days.\nAfter the various statements, forest ranger Christoph Wehle and Life Project manager Cornelia Bischoff divided the helpers into groups.\nThe larger trees had been cut down in advance, although forest tractors were on-call if required.\nOne group of helpers were to take care of the clearance of juniper bushes and the maintenance of a dry stone wall.\nThe objective was to create a clear view at the viewpoint.\nLöffingen: Köpfler still the only candidate\nInformation online: Although Löffingen, the small town of Baar, with its 7,514 residents, can be described as having an intact infrastructure, forward-looking school, youth and senior citizens policies and its own municipal energy companies, thus far no-one has registered as a second mayoral candidate.\nSo far, the only candidate to succeed Mayor Norbert Brugger, who is no longer running on account of his age, is 46-year-old banker and business economist Dieter Köpfler from Löffingen.\nThe deadline for applications is Monday 11 November, at 6:00 p.m.\nGoogle, Samsung, Huawei sued over Nortel patents\nThe group that owns thousands of former Nortel patents filed a barrage of patent lawsuits on Thursday against cell phone manufacturers including Google, the company it outbid in the Nortel bankruptcy auction.\nRockstar, the consortium that bought the Nortel patents for $4.5 billion, sued Samsung Electronics Co Ltd, HTC Corp, Huawei and four other companies for patent infringement in U.S. District Court in Texas.\nRockstar is jointly owned by Apple, Microsoft, Blackberry, Ericsson and Sony.\nGoogle is accused of infringing seven patents.\nThe patents cover technology that helps match Internet search terms with relevant advertising, the lawsuit said, which is the core of Google's search business.\nRepresentatives for Samsung, Huawei, HTC and Rockstar could not immediately be reached.\nSamsung, Huawei and HTC all manufacture phones that operate on Google's Android operating system, which competes fiercely with Apple and Microsoft mobile products.\nIn 2011 Google placed an initial $900 million bid for Nortel's patents.\nGoogle increased its bid several times, ultimately offering as much as $4.4 billion.\nAfter losing out to Rockstar on the Nortel patents, Google went on to acquire Motorola Mobility for $12.5 billion, a deal driven partly by Motorola's library of patents.\n\"Despite losing in its attempt to acquire the patents-in-suit at auction, Google has infringed and continues to infringe,\" the lawsuit said.\nRockstar is seeking increased damages against Google, as it claims Google's patent infringement is willful, according to the complaint.\nEgypt swears in first freely elected president\nMohamed Morsi takes the oath of office but his day of triumph is unlikely to mark end of political strife in Egypt.\nISLAMIST Mohamed Morsi promised a \"new Egypt\" as he took the oath of office to become the country's first freely elected president, succeeding Hosni Mubarak who was ousted 16 months ago.\nAt his inauguration before the Supreme Constitutional Court, Morsi also became the Arab world's first freely elected Islamist president and Egypt's fifth head of state since the overthrow of the monarchy some 60 years ago.\nHe took the oath before the court's 18 black-robed judges in its Nile-side seat built to resemble an ancient Egyptian temple.\n\"We aspire to a better tomorrow, a new Egypt and a second republic,\" Morsi said during a solemn ceremony shown live on state television.\n\"Today, the Egyptian people laid the foundation of a new life - absolute freedom, a genuine democracy and stability,\" said Morsi, a 60-year-old US-trained engineer from the Muslim Brotherhood, a fundamentalist group that has spent most of the 84 years since its inception as an outlawed organisation harshly targeted by successive governments.\nHundreds of soldiers and policemen guarded the building as Morsi arrived shortly after 11am local time in a small motorcade.\nOnly several hundred supporters gathered outside the court to cheer the new president and, in a departure from the presidential pomp of the Mubarak years, traffic was only briefly halted to allow his motorcade through on the usually busy road linking the city centre with its southern suburbs.\nDerided as the Brotherhood's uncharismatic \"spare tyre,\" his personal prestige has surged since his victory and his delivery of a Friday speech that tried to present him as a candidate not just of Islamists but of all those who want to complete the work of the 2011 uprising against the authoritarian Mubarak.\n\"Egypt today is a civil, national, constitutional and modern state,\" Morsi, wearing a blue business suit and a red tie, told the judges in the wood-panelled chamber where he took the oath of office.\nMorsi later travelled to Cairo University where he was to make his inauguration address.\nHe was given an official welcome by an army band that played the national anthem as he stood to attention.\nMilitary ruler Field Marshal Hussein Tantawi was in attendance.\nHis arrival was greeted with chants of, \"The army and the people are one hand,\" from the hundreds gathered in the university's main lecture room.\nEstablished in 1908 as a bastion of secular education, Cairo University later became a stronghold of Islamist student groups in the 1970s.\nMorsi took a symbolic oath on Friday in Tahrir Square, birthplace of the uprising that ended Mubarak's authoritarian rule last year, and vowed to reclaim presidential powers stripped from his office by the military council that took over from the ousted leader.\nBut by agreeing to take the official oath before the court, rather than before parliament as is customary, he is bowing to the military's will in an indication that the contest for power will continue.\nMorsi's speech in Tahrir Square was filled with dramatic populist gestures.\nFalkenberg club makes for two wonderful evenings.\nThe new season in the Falkenberg \"Blue Velvet\" club has begun.\nThis Friday evening, the \"Pump this party\" event will be taking place, while one day later, on Saturday evening, festivities will continue with an over-25s party.\nFat beats and cool sounds are of course promised by the organisers on both nights.\nWorker falls from ladder: seriously injured\nOn Thursday, a 51-year-old worker in Eggelsberg fell from a ladder while replacing a broken external sensor and was seriously injured.\nThe man from Lamprechtshausen wanted to replace a broken heating sensor on the external facade of a guest house.\nAs he was climbing the ladder, which was resting on the roof guttering, it slipped away and the man fell onto the concrete below.\nHe suffered serious injuries and was taken by the \"Christophorus 6\" rescue helicopter to the Salzburg Regional Hospital.\nRapist in South Africa: two life sentences\nNine months after the brutal rape and mutilation of a 17-year-old girl in South Africa, the perpetrator was condemned to two life sentences on Friday.\nThis was reported by broadcaster SABC.\nThe victim later died as a result of the serious injuries.\nJohannes Kana had already been found guilty of the crime at the start of the week.\nThe crime had caused nationwide horror.\nThe then 21-year-old had raped Anene Booysen in February in an industrial estate in Bredasdorp, near Capetown.\nFor 14 hours, doctors battled to save the life of the victim, ultimately in vain.\nThe sight of the young girl was so horrific that the carers and nursing staff required psychological support.\nDuring the trial, Kana admitted to having been in a bar with Booysen on the night of the attack.\nHe also admitted to beating and raping her, however he denied being responsible for the death of the girl.\nThe police had initially assumed that there were multiple attackers, however, they released two suspects from custody as the evidence against them was insufficient.\nDuring the proceedings the public prosecution also emphasised that they were convinced that Kana was alone at the time of the attack.\nRapes are almost part of everyday life in South Africa: There are around 64,000 reports of sexual assault every year.\nThis is almost ten times as many as in Germany, although with a population of 82 million people, Germany has a much higher number of residents than South Africa (50 million).\nPolice and women's associations in South Africa, however, estimate the number of unreported cases of sexual assault to be 10-25 times as high.\nJumbo visits the home of Black Forest ham\nJumbo on the search for the \"world's best ham\": For the TV programme \"Galileo\", the Pro7 star visited Bonndorf.\nThe presenter established one thing right from the outset: The most important thing when it comes to ham are the legs of pork - turbo fattening does not provide a good basis for this.\nCan ham bought in a supermarket be as good as a quality product?\nUli, boss of the large ham factory in Schwarzwald, explained to Jumbo how the Bonndorf company, \"Adler\", operates.\n\"Germany's most-loved ham,\" said Jumbo, presenting the Black Forest ham.\nHe could only enter the factory when wearing hair protection and a white coat.\nJumbo also had to first disinfect his hands before he could reach for the microphone.\nJumbo seen getting something to keep him going at a fast food restaurant in Waldshut\n\"Here they work with huge quantities,\" commented the television producers, astonished by the mass production of Black Forest ham.\n16,000 joints of meat per week speak for themselves.\nWeight, fat content and colour: Uli explained what was required for the best quality.\nThe majority of the pigs are slaughtered at six months old.\nTelevision with standards?\nEven specific details such as the pH value of the meat play a role.\nThe darker the meat, the higher the pH value.\n\"I would be curious what would happen if you were to measure Roberto Blanco,\" said Jumbo cynically.\nHere the standard of private television production is presented in its purest form.\nNonetheless, it is worth watching.\nThe viewer sees that joints are still carved by hand.\nAfter all: Black Forest ham traditionally arrives on the shelf boneless.\nThe secret of the ham is the mix of herbs combined with salt.\nThe appearance of the smoking tower and furnace remind Jumbo of a submarine.\nThe trick: Here fir branches in the smoker provide the special flavour of Black Forest ham.\nAfter 20 days in the smoke, the ham is finally almost black.\n\"And now the slice will disappear inside Jumbo,\" he said, announcing his sampling of the product.\n\"That is really delicious,\" said the TV star in conclusion.\nAll those involved will be happy with that evaluation.\nThought travel agents were a thing of the past thanks to the internet?\nFlight Centre seem to be bucking the trend.\nThe company has upgraded its full year profit forecast and is looking to record earnings from holidaymakers in Australia and the United Kingdom.\nThe travel company now expects its full year underlying profit before tax to be between $325 million and $340 million, compared with the $305 million to $315 million it previously forecast.\nIf the current guidance is achieved it will represent a 12 to 17 per cent growth on the record $290.4 million profit it achieved in 2011/12.\nManaging director Graham Turner said Flight Centre had made 8 per cent profit in the first half and had started the second half strongly especially in Australian and UK non-business travel.\n\"Year-to-date, our 10 countries are profitable and several are on track for record full-year earnings before interest and tax contributions,\" he said.\nThis includes Australia and the United Kingdom, which are typically our largest profit generators.\nIn Australia the leisure business rebounded during the second half which offset a slightly weaker domestic corporate travel market.\nSimilarly in the UK, Flight Centre's leisure business performed well while corporate clients were spending less.\nIts US business had recovered its losses during its seasonally weaker first half and was expected to deliver its third consecutive full year profit.\nFlight Centre shares were up 3c at $38.20 yesterday.\nSchools urged to focus more on maths, spelling and grammar\nEnglish literature courses will require pupils to study at least one Shakespeare play, a 19th century novel, Romantic poetry and contemporary British fiction from 1914 onwards.\nThe exam will also feature \"unseen texts\" to encourage wider reading;\nA combined English literature and language course will be scrapped.\nFrom 2015, pupils will be required to take a standalone GCSE in language, with strong incentives to choose English literature as a separate qualification.\nThe Department for Education is due to release the new syllabuses in English and maths tomorrow - the first subjects to undergo a radical overhaul.\nIt will make changes in other core subjects next year.\nIn a separate move, Ofqual, the exams regulator, will unveil a shake-up of the structure of GCSEs, with a new grading system and less coursework.\nSpeaking in the summer, Michael Gove, the Education Secretary, said there was a \"widespread consensus that we need to reform our examination system to restore public confidence,\" insisting GCSEs would be \"more challenging, more ambitious and more rigorous.\"\nStudies show that English schools devote less time to maths - 116 hours a year or three hours a week during term time - than in most countries.\nBy comparison, Australian schools provide an average of 143 hours a year and pupils do around 138 hours in Singapore.\nWhile there will be no formal requirement to devote more of the timetable to maths, Coalition sources said the extensive maths GCSE - combined with more weighting for the subject in league tables - was likely to encourage schools to provide extra teaching.\nThe syllabus will place a greater focus on \"real world problems,\" including financial mathematics.\nBeautiful animals and delicious tarts entice\nThe most beautiful rabbits of various breeds and colourings will be presented at the District Exhibition this weekend in the community centre.\nThe evaluations were already made on Thursday.\nOnce again, the W514 local association are organising this large exhibition.\nHere breeders from the clubs in the District of Soest will be exhibiting their best animals, while young private individuals from Wickeder are also showing their rabbits.\nOn Thursday, six adjudicators assessed the numerous rabbits and were able to assign awards to the exceptional animals.\nThe visitors to the show will be kept well informed, with the evaluations of all animals posted on their cages.\nMayor Hermann Arndt will be officially opening the exhibition at 14:30.\nThe rabbit show will, however, be open to all visitors from 10:00 a.m. on Saturday and from 10:00 a.m. until 3:30 p.m. on Sunday, which will be followed by the prize ceremony.\nGuests are also invited to take part in a tombola with impressive prizes and to sample some delicious food from the cafeteria.\nPamela Anderson chops off those iconic blonde locks, debuts dramatic new pixie cut.\nPam's blonde locks were made famous by her role in sexy TV show Baywatch.\nPamela Anderson is the latest celebrity to shock fans with a dramatic new hairdo.\nThe ex-Baywatch babe has ditched her long blonde locks in favour of a platinum pixie crop.\nThe 46-year-old actress revealed her latest look while out and about in LA on Wednesday and shared a snap on her Twitter page.\nIt's the first time in 20 years that the blonde beauty has had short hair, and we're loving the demure change.\nWhat do you think about Pammy's hair?\nShare with us your thoughts in the comments below.\nSalem: Johanna Rahner at the Ecumenical Discussion Forum\nAt the next Ecumenical Discussion Forum on Monday 21 October, in the Neues Museum des Schlosses (New Castle Museum), the focus will be on the topic of \"To hell with Hell - Theological reflections on how we now approach the notion of end times\".\nThe speaker will be Johanna Rahner.\nThe Ecumenical Discussion Forum is an initiative of the Catholic and Protestant churches in Salem, the Salem Castle and the Lake Constance District Cultural Office.\nAt the forum, Johanna Rahner wants to address the question of how people today view the \"end times\" after death.\nWhile people in past centuries were overly conscious of it, focusing on the pictures of heaven and hell \"that up until now have defined our ideas\", contemporary prophetic teaching on the hope of consummation is characterised more by a certain bashfulness, or even speechlessness.\n\"The greater hope has been well and truly cast out of Christians by religious critics,\" said the speaker.\nThey have \"provided us with so many question marks, that we seem to have lost our exclamation marks\".\nJohanna Rahner continued: \"However, the crucial challenge to this remains fear of death\".\nAssociated with this is the matter of that longing, \"that dreams that everything will be good at the end\".\nJohanna Rahner, born in 1962 in Baden-Baden, studied Catholic theology and biology from 1982 to 1989 at the Albert Ludwig's University in Freiburg.\nIn 1997 she graduated as a doctor of theology, also in Freiburg.\nA post-doctoral lecturing qualification in fundamental theology and ecumenical theology followed in 2003 at the Westfalian Wilhelm's University.\nSince 2010, Johanna Rahner has occupied a Chair for Systematic Theology in the Institute for Catholic Theology at the University of Kassel.\nGeislingen: More than 100 young Catholics from Kleiner Heuberg stand together in the confirmation of their profession of faith\nIn two services, 101 15 and 16-year-olds from the Am Kleinen Heuberg pastoral care unit were confirmed.\nIn the morning, the service was accompanied by the Laudato-Si Group, while the afternoon service featured 'The Spirit' youth choir.\nUpon receiving the confirmation sacrament, the young people accepted their baptism and asked for the power of the Holy Spirit.\nOver recent months those being confirmed, under the direction of Deacon Reiner Dehner and the assistance of several church members, have been preparing for the special day.\nIn various projects, they learned of the different tasks involved in Christian church life and attended the Youth Day in Untermachtal together.\nIllmensee: Second mountain bike race enthuses participants\nIn fantastic weather, 214 cyclists came to Illmensee to take on the circuit, over the hills and around the lake.\nThis was announced by Ulrich Knobel of the organising Illmensee Sports Club.\nAmong the participants there were also numerous amateur cyclists who wanted the chance to practice their hobby in a competitive environment, in particular over the short distance of 15 kilometres with a 300 metre climb.\nTwo top-class junior cyclists were also in the starting line-up for the competition: Felix Bader from Bad Waldsee and Pascal Treubel from Aach-Linz came with the recommendation of having achieved good positions at the German Championships.\nThe pair managed to break away from the field in keeping with expectations.\nAs was the case the previous year, Felix Bader managed to hold on to a small lead right to the end and defended his title as the overall winner of the short distance race\nOnce again, Pascal Treubel took second place.\nIn the ladies' race it was Theresa Duelli of Team Albtraum who managed to take top place on the podium.\nIn second and third places were Anne Adel from Illmensee and Leonie Treiber from Owingen.\nThe increasing number of riders that live or work in the area is a fantastic development.\nAnd it was not only about top performance - the entire range of athletic ability was represented.\nParticipants' ages were also wide-ranging, with the youngest starters at ten years old up to the oldest at over 70.\nThis year, there were even more absolute top athletes at the starting line for the main race.\nFour cyclists managed to break away from the top regional racers.\nThese included Philipp Pangerl, a semi-professional mountain biker from the Black Tusk Racing Team.\nTogether with a team mate, Pangerl has already twice been crowned World Champion in the 12-hour race.\nThis year he became European Champion in this special discipline.\nAlso competing was Roland Ballerstedt, who has already claimed two German duathlon championships.\nAfter 45 kilometres and a climb of 900 metres, the leading riders were neck and neck on the final straight in front of the Drei-Seen-Hall.\nPangerl sped over the finish line in first place.\nOnly one second later, the experienced Ballerstedt managed to take second place in the overall standings.\nHermann and Warthmann then reached the finish line simultaneously to take joint third in the overall standings.\nIn the ladies' race, Christiane Cohsmann achieved the fastest time in the main race.\nAreane Blersch from Binzwangen took second place, ahead of Natascha Werner from Stuttgart.\nAthletes and assistants seemed very satisfied with the smooth and well-organised running of the event.\nTrekking through mud, rivers and jungle to provide free medical care\nDr. Georges Bwelle is bringing free health care to rural villages in Cameroon\nBwelle and his team spend almost every weekend seeing hundreds of patients\nThere aren't many doctors in the west African country; just one for every 5,000 people\nCast your vote here or through your mobile device\nDr. Georges Bwelle is one of the top 10 CNN Heroes of 2013.\nYou can vote for him, or any of the other top 10 Heroes, to be CNN Hero of the Year.\nThat person will receive $250,000 to continue their extraordinary work.\nFor 21 years, Georges Bwelle watched his ill father slip in and out of consciousness, traveling to hospitals that weren't equipped to help him.\nJamef Bwelle was injured in a 1981 car accident near Yaounde, Cameroon's capital.\nHe suffered only a broken arm at first, but an infection developed and spread to his brain, creating a hematoma that would affect him for the rest of his life.\n\"There were no neurosurgeons in Cameroon,\" Georges Bwelle said.\nWe would have taken him out of Cameroon if we had the money.\nInstead, Bwelle spent years escorting his father to overcrowded clinics and hospitals, getting whatever treatment they could get.\n\"It's not easy,\" Bwelle said.\nYou can leave home at 5 a.m., running to the hospital to be the first, and you are not the first.\nThere are a lot of patients.\nSome people can die because they are waiting.\nThe situation hasn't changed much since Bwelle's father passed away in 2002.\nIn Cameroon, there is only one doctor for every 5,000 people, according to the World Health Organization.\nFor comparison's sake, the ratio in the United States is one doctor for every 413 people.\nAnd even if they could see a physician, many Cameroonians couldn't afford it.\nTwo out of five people in the country live below the poverty line, and nearly three-quarters of the country's health-care spending is private.\n\"The only problem they have is poverty,\" Bwelle said.\nAnd with poverty, they cannot enjoy their life.\nSeeing his father and so many of his countrymen suffer, Bwelle was determined to do something about it.\nDr. Georges Bwelle and his team of volunteers have performed 700 free surgeries in the past year.\nHe became a doctor himself, working as a vascular surgeon in Yaounde's Central Hospital.\nAnd he started a nonprofit, ASCOVIME, that travels into rural areas on weekends to provide free medical care.\nSince 2008, he and his group of volunteers have helped nearly 32,000 people.\nAlmost every Friday, he and up to 30 people jam into vans, tie medical supplies to the roofs and travel across rough terrain to visit villages in need.\nTheir luck doesn't always hold out.\nThey've had to push vehicles through rivers and mud more than once.\nBut when they arrive, they receive a true heroes' welcome: a feast, singing and dancing, and the best accommodations the community can offer.\nIn these villages, free medical care is truly a cause for celebration, and Bwelle -- with his big smile and boundless energy -- is more than happy to join in the fun.\nThe next morning, the team begins meeting with hundreds of patients.\n\"We are receiving 500 people in each trip,\" Bwelle said.\nThey are coming from 60 kilometers around the village, and they're coming on foot.\nEach of these weekend clinics provides a variety of medical care.\nMany people are treated for malaria, tuberculosis, malnutrition, diabetes, parasites and sexually transmitted diseases.\nOthers might receive crutches, a pair of donated eyeglasses or free birth certificates -- documentation that's required for school but that many impoverished families simply can't afford.\nIn the evenings, the team will do simple surgeries with local anesthesia.\nOperations are usually done in a schoolhouse, town hall or home; after the procedure, patients get up and walk to the recovery area to make way for the next person.\nWith the group's generator lighting the operating room and sanitizing equipment, Bwelle and his volunteers work into the early hours of Sunday morning.\nIt's a backbreaking pace, but village musicians usually help keep the team motivated.\n\"They are beating drums all night to keep us awake and continue our work,\" Bwelle said.\nOn Sunday, the team heads back to the city, tired but proud of their work.\nThe group -- a mix of Cameroonian doctors and foreign medical students -- has performed 700 free surgeries in the past year, and they know that their help can make a world of difference to those they help.\nOne man explained that the free hernia surgery he'd received will allow him to work again.\n\"This will change my future with my family,\" the man said.\nIn addition to holding these weekend clinics and working as a hospital surgeon, Bwelle also works nights at private medical clinics around Yaounde.\nIt's this second job, he said, that funds about 60% of his nonprofit; the rest is covered by private donations.\n\"I'm not sure when he sleeps,\" said Katie O'Malley, a second-year medical student from Drexel University in Philadelphia and volunteer with Bwelle's group.\nHe is always either at the hospital or trying to make money for the organization so he can go on these campaigns.\nFor medical and nursing students such as O'Malley, who come from the United States and Europe to join Bwelle on his missions, it's a hands-on opportunity they'd never get at home.\n\"We've been able to scrub in on surgeries where we help blot blood away or hold tools for Dr. Bwelle,\" O'Malley said.\nThat's not something you'd ever get to do in America as a second-year medical student.\nThe student volunteers usually pay their own way to Cameroon, often arriving with donated medical supplies.\nBut once they arrive in Yaounde, their board, transportation and instruction are covered by Bwelle.\n\"He's a hero, without a doubt,\" O'Malley said.\nHe gives his life to this organization, and his desire to help the Cameroon people is everlasting.\nFor Bwelle, the near-constant workload isn't a hardship.\nHelping others live happier lives, fulfilling a promise he made to his father, is something that brings him great joy.\n\"I am so happy when I am doing this work,\" Bwelle said.\nAnd I think about my father.\nI hope he sees what I am doing.\nTo make people laugh, to reduce the pain, that's why I'm doing this.\nCheck out the ASCOVIME website and see how to help.\nMastering the struggle to perfection.\nThe role of Santiago, the old man in Hemingway's novel \"The Old Man and the Sea\", is perfectly suited to Horst Janson.\nJanson is an old hand himself when it comes to his profession, the art of acting.\nThe old man, Santiago, is the best there is when it comes to fishing.\nAs such, the pair complement one another superbly.\nYou almost think that you can see the folds in the old man's neck, of which young fisherman Manolo speaks.\nWhen Santiago sits arched over on the chair, tired of life, this is a genuine emotion for Janson.\nFurthermore, the role of the old fisherman is a character role, through and through, which Janson masters excellently.\nHemingway told the story of a fighter, a courageous man who doesn't give up and who ultimately wins the battle against the fish as a result of his knowledge and his strong will.\nFor long periods, Janson is the only performer on the stage.\nHe manages to focus the audience's attention on himself, with the result that his monologues never become boring, not even for just a moment.\nHis efforts to finally pull the fish to the surface of the water are so genuine that members of the audience forget that the sea in question consists merely of water bottles, illuminated in blue.\nDirector Jens Hasselmann has the old man in the boat perform in front of Fischerdorf.\nDuring the course of the performance he has the respective active scene illuminated. Santiago's cabin and the bar of singer Marie-Luise Gunst, who sings of the Cuban lifestyle, with your songs and beautiful voice.\nThe four musicians accompany with Cuban rhythms and guests at the bar at the same time.\nTourism: Descent to the Romans\nBeneath Cologne, a sewage channel from Roman times, measuring around 120 metres in length, has been preserved.\nAnyone visiting Cologne cannot miss the cathedral.\nThe two towers, measuring around 157 metres, extend into the heavens, making it Europe's second tallest church building.\nHowever, only a few visitors who marvel at the two ornate church towers realise that there is much to discover beneath the cathedral.\nRainer Schulze is an expert when it comes to the Cologne underworld.\nThe meeting point for his tours is the Cologne Tourism Service Centre, right at the cathedral.\nThe tour begins in a somewhat unspectacular fashion: \"We begin in the underground car park,\" says Schulze.\nIn the 1970s, the city fathers wanted a car-friendly city, and therefore the only sections of the old city wall that remain are those that were not too tall.\nThe majority of the users of the parking garage therefore now hurry past the Roman relics and simply drop off their car.\nHowever, anyone who takes a closer look on parking level D2 will discover an archaeological site, cordoned off by metal railings.\nRuins measuring five metres tall, made from stones around the size of the palm of your hand, are waiting to be discovered.\n\"These are remnants of the Roman city wall, which was built in the second half of the first century A.D,\" explains Schulze.\nBefore returning to daylight, Schulze has participants take a glance into a dark, 15-metre shaft on the upper parking level.\nThis is the well of the old cathedral, which is barely noticed at all these days.\nThe next stop on the tour is the praetorium, where participants once again descend to the depths.\nHere we find the residence of what was once the most powerful man to the north of the Alps, the Praetor of the CCAA.\nOne visitor wants to know what CCAA means.\n\"The abbreviation stands for \"Colonia Claudia Ara Agrippinensium\", which is basically amounts to \"City under Roman Law and City of the Agrippinians, founded under Emperor Claudius at the Site of the Altars for the Imperial Cult\".\nAnd the Praetorium refers to the former Governor's Palace and the centre of power of the Roman Empire on the Rhine.\nFrom the exhibition vestibule, a tunnel leads to the preserved Roman sewer, measuring around 120 metres in length.\n\"If you want you can take a peaceful stroll along a section of the so-called Cloaca Maxima,\" says Schulze, encouraging the guests.\nSchulze has one more surprise.\nOnce he has collected the key from the information desk, he leads the group to a 16-metre, accessible shaft.\n\"We are now in the Mikwe, a ritual Jewish bath,\" he explains.\nThe Jewish congregation built their bath deep into the ground in order to reach the groundwater essential for ritual washing.\nTo this day the differing water levels caused by the varying levels of the Rhine can be read at the lower end of the Mikwe, the origins of which trace back to the eighth century.\nThe Mikwe is to form part of an archaeological area at the Town Hall Square, on which construction work is set to begin shortly.\nHowever, it will be a few years before it is complete.\nLeg almost hacked off: Rocker retrial\nA bloody attack within the 'Rocker' scene is to be re-investigated after more than four years.\nProceedings for attempted murder, grievous bodily harm and material damage, brought against two 30-year-olds have begun before the Frankfurt District Court.\nThey are being accompanied by strict security precautions.\nThe accused initially remained silent.\nThey are said to have been active within the Rocker scene and to have at the time belonged to the Bandidos.\nThe Public Prosecutor accused them of having stabbed and beaten three men in a car in Finowfurt, together with unknown accomplices.\nAll the victims were seriously injured, with one man almost losing a leg.\nThe victims were said to have belonged to the competing gang, the Hell's Angels.\nOne is said to have been a high-ranking member from Berlin.\nIt seems that the attack was preceded by a car chase involving several cars.\nAccording to accusations, this was part of a turf war and represented a demonstration of power.\nThe two accused were acquitted in an initial trial at the beginning of 2012.\nAt the time, a speaker for the court said that it could not be proven that the men had actually been involved in the bloody feud.\nThe assailants had worn masks and had not been recognised.\nThe Federal Supreme Court repealed the verdict following an appeal by the Public Prosecutor's Office and referred the case back to the District Court for a re-trial.\nOne of the accused is currently serving time in an open prison on account of another offence.\nProceedings initially mainly involved the reconstruction of the series of events on the night of the crime.\nThe police inspector responsible at the time was invited as a witness.\nThe central point of focus was on mobile phone conversations between the accused and third parties, which the police had intercepted.\nWhat makes things difficult is that Rockers almost always observe what they consider to be complete silence appearing before the court - they say absolutely nothing.\nThis also applies in the case of the victims.\nIn the first trial, only one of the victims spoke out.\nWhen asked, Public Prosecutor Stefan Golfier of the Frankfurt (Oder) Public Prosecutor's Office said that new evidence had come to light since the previous trial.\nA further eleven days of proceedings have been scheduled for the trial.\nThe throwaway society does not think\nThe night was long, the music loud and the atmosphere good, but at some point everyone has to go home.\nExcept: In the stomachs of those in the passenger and back seats, hunger strikes.\nOf course, this may be down to the odd cocktail or glass of bubbly!\nSo what could be more natural than to casually pull into the next drive-through to pick yourself up a little treat?\nI admit, I am right with you with it comes to picking up some fast food late at night, or early in the morning as the case may be.\nA few chips, a coke, a burger - and then straight home and into bed!\nHowever, on the way home the clear differences between me and other hungry clubbers become evident.\nWhat is wrong with people who continually throw their fast food bags out of the car window?!\nAt the weekend in particular, discarded paper bags can be found at the side of the road and in car parks.\n\"Why is this?\" I ask myself.\nAre the people too stupid to take their bags home or throw them into the nearest rubbish bin?\nAfter all, waste paper does more than spoil the landscape.\nBags have also been seen covering transport facilities such as crash barriers, thus causing accidents.\nHowever, the so-called \"throwaway society\" does not think about such things. They probably do not even know what the term even means.\nIf you are often out and about in the evening, more often than not with several people in the car, you will know what a back seat can look like after having partied through the night: clothes, bottles and other rubbish begin to pile up.\nA few bags won't make much of a difference there - in contrast to on the street where no-one wants to trample through other peoples' leftover food.\nI can see the day coming when towns and municipalities will get fed up clearing up - and the fast food chains will have to operate a deposit scheme for their bags.\nObama's Health Care Walk Back\nAmid a firestorm of criticism, President Obama yesterday walked back his oft-repeated, unambiguous promise that \"if you like your health plan, you can keep it.\"\nWith hundreds of thousands receiving cancellation notices from their providers, Republicans have slammed the president in recent days for misleading the American public.\nYesterday, Obama tweaked his original pledge.\n\"For the vast majority of people who have health insurance that works, you can keep it,\" he said in a speech in Boston.\nAddressing what he called the \"flurry in the news\" about the cancellations, Obama urged Americans receiving these notices to shop for new coverage in the marketplace.\nMost people are going to be able to get better, comprehensive health care plans for the same price or even cheaper than projected.\n\"You're going to get a better deal,\" he said.\nThe administration has said it should come as no surprise that the 5 percent of the population who purchase insurance on their own may be forced to switch plans because their coverage doesn't meet the new standards required under the Affordable Care Act.\n\"Let me say directly to these Americans: you deserve better,\" Sebelius said in testimony before the House Energy and Commerce Committee in Washington.\nSebelius, who is overseeing implementation of the Affordable Care Act, said the launch of the online marketplace has gone \"miserably\" since October.\n\"I am as frustrated and angry as anyone,\" she said.\nI am eager to earn your confidence back.\nAn exasperated Sebelius uttered that phrase, caught by a hot mic, to an aide seated behind her at yesterday's House hearing following a contentious exchange with Rep. Billy Long, R-Mo., over whether she should be required to enroll in Obamacare.\nMore than three hours into the hearing, Long repeatedly pressed Sebelius on why the \"architect\" of the Affordable Care Act has not voluntarily forgone government-sponsored insurance to purchase a plan through HealthCare.gov, which she is now pitching to millions of Americans.\nThe government in Jerusalem fails to confirm an attack on the Syrian airforce base\nOn Thursday, an American government official, who wished to remain anonymous, made a statement to American news broadcaster CNN, stating that Israeli fighter planes had attacked an airforce base in the Syrian town of Latakia the day before.\nThe target was \"missiles and related equipment\", which the Israeli government feared were intended for the Lebanese Hezbollah, according to CNN.\nThe Syrian and Lebanese media, as well as Arabic broadcaster Al-Arabiya, had previously reported that the base in the port town of Latakia was fired upon during the night from Wednesday to Thursday, and the Israelis were identified as the responsible party.\nIsraeli television broadcaster Channel 2 showed satellite images of the base in Latakia, in which Russian S-125 Newa-type defence missiles and a battery of SA-3 missiles could be seen, which according to Channel 2 have a range of 35 kilometres and can transport warheads weighing up to 70 kilograms.\nUnsure, the government in Jerusalem has not officially confirmed the attack.\nHowever, press agency Reuters has also quoted an anonymous Israeli government official as saying that he believed that Israel had carried out the attack, but was not sure.\nIn any case, a spokesperson for the Israeli Ministry of Defence said: \"We are not commenting on these reports\".\nJournalist Ron Ben-Yishai, writing for daily newspaper Yedioth Ahronoth, emphasised that the Syrian regime had already previously attempted, in some cases successfully, to deliver ground to air missiles to Hezbollah.\nThe Israeli government had previously repeatedly warned that any attempt by Syria to supply Hezbollah with chemical or other dangerous weapons would be crossing a \"red line\", which would result in a military response.\nJohn Kerry says US spying has \"reached too far inappropriately\" in unprecedented admission\nJohn Kerry has indicated a softening of the U.S's defensive stance on its surveillance programmes with an unprecedented admission that on occasions its spying has \"reached too far inappropriately.\"\nThe Secretary of State also admitted that he'd been guilty, along with Barack Obama, of being on \"automatic pilot\" as incendiary revelations from whistleblower Edward Snowden about the NSA's spying activities emerged.\nThe leaks have put the US government at the centre of a diplomatic storm with its allies.\nSpeaking to an open government conference in London via video link, Mr Kerry said: \"There is no question that the President and I and others in government have actually learned of some things that had been happening on an automatic pilot because the ability has been there, going back to World War Two and to the very difficult years of the Cold War, and then, of course, 9/11.\"\nHe then became the first high-ranking member of the U.S government to admit that US spying had crossed the line, but emphasised that no one's rights had been abused.\nHe said: \"In some cases, it has reached too far inappropriately.\"\nAnd the President is determined to try to clarify and make clear for people and is now doing a thorough review in order that nobody will have the sense of abuse.\nI assure you innocent people are not being abused in this process.\nMr Kerry insisted, however, that the NSA was a force for good and that its surveillance operations had saved many lives.\nHe added: \"We're dealing in a new world where people are willing to blow themselves up.\"\nThere is radical extremism in the world that is hell-bent and determined to try to kill people and blow people up and attack governments.\nSo what if you were able to intercept that and stop it before it happens?\nWe have actually prevented airplanes from going down, buildings from being blown up, and people from being assassinated because we've been able to learn ahead of time of the plans.\nMeanwhile, U.S. lawmakers will head to Europe to help address concerns abroad about alleged U.S. spying and convince the Europeans of the need to continue joint anti-terrorism efforts with the U.S., the chairman of a Senate subcommittee on European affairs said on Thursday.\nSenator Chris Murphy of Connecticut said he spoke with European Parliament members and others this week and is concerned about their threats to stop participating in anti-terrorist organizations because of frustration over surveillance by the National Security Agency.\n\"It's really important for U.S. national security interests for Europeans to stay on board with us with respect to our mutual anti-terrorism endeavors,\" Murphy, a first-term Democrat and chairman of the Senate Foreign Relations Subcommittee on European Affairs, said in an interview from Washington.\nAnd I'm going to Europe to make it clear to them that we need to continue to work together in combatting terrorism, notwithstanding their anger over these NSA programs.\nNews reports that the NSA swept up millions of phone records in Europe have frayed relations with some U.S. allies, though the agency's chief said this week that they were inaccurate and reflected a misunderstanding of metadata that Nato allies collected and shared with the United States.\nOther revelations cited documents leaked by Snowden that the NSA monitored German Chancellor Angela Merkel's cellphone and those of up to 34 other world leaders.\nThe national intelligence director, James Clapper, defended spying on allies as necessary and said it's commonplace on both sides.\nAmid the uproar, Murphy said his office is arranging the congressional trip, expected to take place this year, and hopes the delegation will include members of both parties and both chambers.\nNames of other participating lawmakers were to be released in coming days.\nHe said the itinerary is still being worked out.\nWhile Murphy said the purpose of the trip is to help improve relationships, he said some \"tough love\" will also be dispensed.\nHe said European leaders need to be honest with their own people about the kind of espionage programs they've used for years themselves.\n\"While we can amend our surveillance programs to better protect the rights of Europeans, they also need to come to terms with the fact that we're not the only ones that are out there spying,\" Murphy said.\nMeanwhile, Mr Kerry is scheduled to head this weekend to the Middle East and Poland to address rancor over U.S. strategies in the Syria, Egypt and Iran as well as U.S. surveillance activities.\nA stubborn ankle injury threatens to prevent the deployment of Nicolai Müller in the FSV Mainz's Bundesliga away match at FC Augsburg.\nMainz are concerned regarding the availability of Nicolai Müller.\nTomorrow he will attempt to train with the team.\nUp until now he has only managed individual training.\n\"We will shortly make a decision regarding whether he will play,\" said manager Thomas Tuchel.\nThe 40 year-old hopes to have his best striker (with six goals) in the team.\nMainz are already without the injured key players Niki Zimling, Julian Baumgartlinger and Niko Bungert.\nAustralian woman appeals Thai jail time\nA 21-year-old Sydney woman sentenced to 15 days jail in Phuket for falsely claiming she was assaulted by a taxi driver is appealing the verdict and has been granted bail.\nStevie Rochelle Bamford was initially found guilty by a Phuket provincial court on June 15 of making false claims after telling Thai police a local taxi driver, with two other men restraining her, carried out the assault in the early hours of Sunday June 10.\nHowever, CCTV footage later revealed she had returned to her hotel safely after becoming separated from her Australian boyfriend.\nPhuket police interviewed Bamford for two days before she confessed to fabricating the story.\nShe was held in local police cells before the court hearing.\nBamford was sentenced to serve the 15-day prison term at a low security detention centre on the outskirts of Phuket rather than in an adult women's jail.\nShe is the daughter of former Australian league player Peter Tunks, who has appealed to the Department of Foreign Affairs in Canberra to assist his daughter.\nTunks told Sydney's Sunday Telegraph the whole family was \"extremely concerned\" about his daughter's welfare and wanted her back in Australia.\n\"It's obviously been a worrying time but we're hopeful to have her back home safely as soon as possible,\" Tunks said.\nBamford is appealing the sentence and has been granted bail of 50,000 baht.\nReports in Australia said that in the meantime, she was holidaying at the resort area of Krabi in Southern Thailand.\nThai-based legal sources said Bamford was being represented by a local lawyer in Phuket but warned that the appeal may lead to the court increasing her sentence by up to two years and forcing her to serve it in an adult prison.\nHowever, following the recent murder of Australian travel agent Michelle Smith in Phuket, Thailand may also be looking to repair its battered tourist image, leading to an acquittal.\n"
  },
  {
    "path": "official/transformer/transformer_main.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Train and evaluate the Transformer model.\n\nSee README for description of setting the training schedule and evaluating the\nBLEU score.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport tempfile\n\n# pylint: disable=g-bad-import-order\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.transformer import compute_bleu\nfrom official.transformer import translate\nfrom official.transformer.data_download import VOCAB_FILE\nfrom official.transformer.model import model_params\nfrom official.transformer.model import transformer\nfrom official.transformer.utils import dataset\nfrom official.transformer.utils import metrics\nfrom official.transformer.utils import tokenizer\nfrom official.utils.flags import core as flags_core\nfrom official.utils.logs import hooks_helper\nfrom official.utils.logs import logger\nfrom official.utils.misc import model_helpers\n\n\nPARAMS_MAP = {\n    \"base\": model_params.TransformerBaseParams,\n    \"big\": model_params.TransformerBigParams,\n}\nDEFAULT_TRAIN_EPOCHS = 10\nBLEU_DIR = \"bleu\"\nINF = int(1e9)\n\n# Dictionary containing tensors that are logged by the logging hooks. Each item\n# maps a string to the tensor name.\nTENSORS_TO_LOG = {\n    \"learning_rate\": \"model/get_train_op/learning_rate/learning_rate\",\n    \"cross_entropy_loss\": \"model/cross_entropy\"}\n\n\ndef model_fn(features, labels, mode, params):\n  \"\"\"Defines how to train, evaluate and predict from the transformer model.\"\"\"\n  with tf.variable_scope(\"model\"):\n    inputs, targets = features, labels\n\n    # Create model and get output logits.\n    model = transformer.Transformer(params, mode == tf.estimator.ModeKeys.TRAIN)\n\n    output = model(inputs, targets)\n\n    # When in prediction mode, the labels/targets is None. The model output\n    # is the prediction\n    if mode == tf.estimator.ModeKeys.PREDICT:\n      return tf.estimator.EstimatorSpec(\n          tf.estimator.ModeKeys.PREDICT,\n          predictions=output)\n\n    logits = output\n\n    # Calculate model loss.\n    # xentropy contains the cross entropy loss of every nonpadding token in the\n    # targets.\n    xentropy, weights = metrics.padded_cross_entropy_loss(\n        logits, targets, params.label_smoothing, params.vocab_size)\n    # Compute the weighted mean of the cross entropy losses\n    loss = tf.reduce_sum(xentropy) / tf.reduce_sum(weights)\n\n    # Save loss as named tensor that will be logged with the logging hook.\n    tf.identity(loss, \"cross_entropy\")\n\n    if mode == tf.estimator.ModeKeys.EVAL:\n      return tf.estimator.EstimatorSpec(\n          mode=mode, loss=loss, predictions={\"predictions\": logits},\n          eval_metric_ops=metrics.get_eval_metrics(logits, labels, params))\n    else:\n      train_op = get_train_op(loss, params)\n      return tf.estimator.EstimatorSpec(mode=mode, loss=loss, train_op=train_op)\n\n\ndef get_learning_rate(learning_rate, hidden_size, learning_rate_warmup_steps):\n  \"\"\"Calculate learning rate with linear warmup and rsqrt decay.\"\"\"\n  with tf.name_scope(\"learning_rate\"):\n    warmup_steps = tf.to_float(learning_rate_warmup_steps)\n    step = tf.to_float(tf.train.get_or_create_global_step())\n\n    learning_rate *= (hidden_size ** -0.5)\n    # Apply linear warmup\n    learning_rate *= tf.minimum(1.0, step / warmup_steps)\n    # Apply rsqrt decay\n    learning_rate *= tf.rsqrt(tf.maximum(step, warmup_steps))\n\n    # Create a named tensor that will be logged using the logging hook.\n    # The full name includes variable and names scope. In this case, the name\n    # is model/get_train_op/learning_rate/learning_rate\n    tf.identity(learning_rate, \"learning_rate\")\n    # Save learning rate value to TensorBoard summary.\n    tf.summary.scalar(\"learning_rate\", learning_rate)\n\n    return learning_rate\n\n\ndef get_train_op(loss, params):\n  \"\"\"Generate training operation that updates variables based on loss.\"\"\"\n  with tf.variable_scope(\"get_train_op\"):\n    learning_rate = get_learning_rate(\n        params.learning_rate, params.hidden_size,\n        params.learning_rate_warmup_steps)\n\n    # Create optimizer. Use LazyAdamOptimizer from TF contrib, which is faster\n    # than the TF core Adam optimizer.\n    optimizer = tf.contrib.opt.LazyAdamOptimizer(\n        learning_rate,\n        beta1=params.optimizer_adam_beta1,\n        beta2=params.optimizer_adam_beta2,\n        epsilon=params.optimizer_adam_epsilon)\n\n    # Calculate and apply gradients using LazyAdamOptimizer.\n    global_step = tf.train.get_global_step()\n    tvars = tf.trainable_variables()\n    gradients = optimizer.compute_gradients(\n        loss, tvars, colocate_gradients_with_ops=True)\n    train_op = optimizer.apply_gradients(\n        gradients, global_step=global_step, name=\"train\")\n\n    # Save gradient norm to Tensorboard\n    tf.summary.scalar(\"global_norm/gradient_norm\",\n                      tf.global_norm(list(zip(*gradients))[0]))\n\n    return train_op\n\n\ndef translate_and_compute_bleu(estimator, subtokenizer, bleu_source, bleu_ref):\n  \"\"\"Translate file and report the cased and uncased bleu scores.\"\"\"\n  # Create temporary file to store translation.\n  tmp = tempfile.NamedTemporaryFile(delete=False)\n  tmp_filename = tmp.name\n\n  translate.translate_file(\n      estimator, subtokenizer, bleu_source, output_file=tmp_filename,\n      print_all_translations=False)\n\n  # Compute uncased and cased bleu scores.\n  uncased_score = compute_bleu.bleu_wrapper(bleu_ref, tmp_filename, False)\n  cased_score = compute_bleu.bleu_wrapper(bleu_ref, tmp_filename, True)\n  os.remove(tmp_filename)\n  return uncased_score, cased_score\n\n\ndef get_global_step(estimator):\n  \"\"\"Return estimator's last checkpoint.\"\"\"\n  return int(estimator.latest_checkpoint().split(\"-\")[-1])\n\n\ndef evaluate_and_log_bleu(estimator, bleu_source, bleu_ref, vocab_file_path):\n  \"\"\"Calculate and record the BLEU score.\"\"\"\n  subtokenizer = tokenizer.Subtokenizer(vocab_file_path)\n\n  uncased_score, cased_score = translate_and_compute_bleu(\n      estimator, subtokenizer, bleu_source, bleu_ref)\n\n  tf.logging.info(\"Bleu score (uncased):\", uncased_score)\n  tf.logging.info(\"Bleu score (cased):\", cased_score)\n  return uncased_score, cased_score\n\n\ndef train_schedule(\n    estimator, train_eval_iterations, single_iteration_train_steps=None,\n    single_iteration_train_epochs=None, train_hooks=None, benchmark_logger=None,\n    bleu_source=None, bleu_ref=None, bleu_threshold=None, vocab_file_path=None):\n  \"\"\"Train and evaluate model, and optionally compute model's BLEU score.\n\n  **Step vs. Epoch vs. Iteration**\n\n  Steps and epochs are canonical terms used in TensorFlow and general machine\n  learning. They are used to describe running a single process (train/eval):\n    - Step refers to running the process through a single or batch of examples.\n    - Epoch refers to running the process through an entire dataset.\n\n  E.g. training a dataset with 100 examples. The dataset is\n  divided into 20 batches with 5 examples per batch. A single training step\n  trains the model on one batch. After 20 training steps, the model will have\n  trained on every batch in the dataset, or, in other words, one epoch.\n\n  Meanwhile, iteration is used in this implementation to describe running\n  multiple processes (training and eval).\n    - A single iteration:\n      1. trains the model for a specific number of steps or epochs.\n      2. evaluates the model.\n      3. (if source and ref files are provided) compute BLEU score.\n\n  This function runs through multiple train+eval+bleu iterations.\n\n  Args:\n    estimator: tf.Estimator containing model to train.\n    train_eval_iterations: Number of times to repeat the train+eval iteration.\n    single_iteration_train_steps: Number of steps to train in one iteration.\n    single_iteration_train_epochs: Number of epochs to train in one iteration.\n    train_hooks: List of hooks to pass to the estimator during training.\n    benchmark_logger: a BenchmarkLogger object that logs evaluation data\n    bleu_source: File containing text to be translated for BLEU calculation.\n    bleu_ref: File containing reference translations for BLEU calculation.\n    bleu_threshold: minimum BLEU score before training is stopped.\n    vocab_file_path: Path to vocabulary file used to subtokenize bleu_source.\n\n  Raises:\n    ValueError: if both or none of single_iteration_train_steps and\n      single_iteration_train_epochs were defined.\n  \"\"\"\n  # Ensure that exactly one of single_iteration_train_steps and\n  # single_iteration_train_epochs is defined.\n  if single_iteration_train_steps is None:\n    if single_iteration_train_epochs is None:\n      raise ValueError(\n          \"Exactly one of single_iteration_train_steps or \"\n          \"single_iteration_train_epochs must be defined. Both were none.\")\n  else:\n    if single_iteration_train_epochs is not None:\n      raise ValueError(\n          \"Exactly one of single_iteration_train_steps or \"\n          \"single_iteration_train_epochs must be defined. Both were defined.\")\n\n  evaluate_bleu = bleu_source is not None and bleu_ref is not None\n\n  # Print details of training schedule.\n  tf.logging.info(\"Training schedule:\")\n  if single_iteration_train_epochs is not None:\n    tf.logging.info(\"\\t1. Train for %d epochs.\" % single_iteration_train_epochs)\n  else:\n    tf.logging.info(\"\\t1. Train for %d steps.\" % single_iteration_train_steps)\n  tf.logging.info(\"\\t2. Evaluate model.\")\n  if evaluate_bleu:\n    tf.logging.info(\"\\t3. Compute BLEU score.\")\n    if bleu_threshold is not None:\n      tf.logging.info(\"Repeat above steps until the BLEU score reaches %f\" %\n                      bleu_threshold)\n  if not evaluate_bleu or bleu_threshold is None:\n    tf.logging.info(\"Repeat above steps %d times.\" % train_eval_iterations)\n\n  if evaluate_bleu:\n    # Create summary writer to log bleu score (values can be displayed in\n    # Tensorboard).\n    bleu_writer = tf.summary.FileWriter(\n        os.path.join(estimator.model_dir, BLEU_DIR))\n    if bleu_threshold is not None:\n      # Change loop stopping condition if bleu_threshold is defined.\n      train_eval_iterations = INF\n\n  # Loop training/evaluation/bleu cycles\n  for i in xrange(train_eval_iterations):\n    tf.logging.info(\"Starting iteration %d\" % (i + 1))\n\n    # Train the model for single_iteration_train_steps or until the input fn\n    # runs out of examples (if single_iteration_train_steps is None).\n    estimator.train(\n        dataset.train_input_fn, steps=single_iteration_train_steps,\n        hooks=train_hooks)\n\n    eval_results = estimator.evaluate(dataset.eval_input_fn)\n    tf.logging.info(\"Evaluation results (iter %d/%d):\" %\n                    (i + 1, train_eval_iterations))\n    tf.logging.info(eval_results)\n    benchmark_logger.log_evaluation_result(eval_results)\n\n    # The results from estimator.evaluate() are measured on an approximate\n    # translation, which utilize the target golden values provided. The actual\n    # bleu score must be computed using the estimator.predict() path, which\n    # outputs translations that are not based on golden values. The translations\n    # are compared to reference file to get the actual bleu score.\n    if evaluate_bleu:\n      uncased_score, cased_score = evaluate_and_log_bleu(\n          estimator, bleu_source, bleu_ref, vocab_file_path)\n\n      # Write actual bleu scores using summary writer and benchmark logger\n      global_step = get_global_step(estimator)\n      summary = tf.Summary(value=[\n          tf.Summary.Value(tag=\"bleu/uncased\", simple_value=uncased_score),\n          tf.Summary.Value(tag=\"bleu/cased\", simple_value=cased_score),\n      ])\n      bleu_writer.add_summary(summary, global_step)\n      bleu_writer.flush()\n      benchmark_logger.log_metric(\n          \"bleu_uncased\", uncased_score, global_step=global_step)\n      benchmark_logger.log_metric(\n          \"bleu_cased\", cased_score, global_step=global_step)\n\n      # Stop training if bleu stopping threshold is met.\n      if model_helpers.past_stop_threshold(bleu_threshold, uncased_score):\n        bleu_writer.close()\n        break\n\n\ndef define_transformer_flags():\n  \"\"\"Add flags and flag validators for running transformer_main.\"\"\"\n  # Add common flags (data_dir, model_dir, train_epochs, etc.).\n  flags_core.define_base(multi_gpu=False, num_gpu=False, export_dir=False)\n  flags_core.define_performance(\n      num_parallel_calls=True,\n      inter_op=False,\n      intra_op=False,\n      synthetic_data=False,\n      max_train_steps=False,\n      dtype=False\n  )\n  flags_core.define_benchmark()\n\n  # Set flags from the flags_core module as \"key flags\" so they're listed when\n  # the '-h' flag is used. Without this line, the flags defined above are\n  # only shown in the full `--helpful` help text.\n  flags.adopt_module_key_flags(flags_core)\n\n  # Add transformer-specific flags\n  flags.DEFINE_enum(\n      name=\"param_set\", short_name=\"mp\", default=\"big\",\n      enum_values=[\"base\", \"big\"],\n      help=flags_core.help_wrap(\n          \"Parameter set to use when creating and training the model. The \"\n          \"parameters define the input shape (batch size and max length), \"\n          \"model configuration (size of embedding, # of hidden layers, etc.), \"\n          \"and various other settings. The big parameter set increases the \"\n          \"default batch size, embedding/hidden size, and filter size. For a \"\n          \"complete list of parameters, please see model/model_params.py.\"))\n\n  # Flags for training with steps (may be used for debugging)\n  flags.DEFINE_integer(\n      name=\"train_steps\", short_name=\"ts\", default=None,\n      help=flags_core.help_wrap(\"The number of steps used to train.\"))\n  flags.DEFINE_integer(\n      name=\"steps_between_evals\", short_name=\"sbe\", default=1000,\n      help=flags_core.help_wrap(\n          \"The Number of training steps to run between evaluations. This is \"\n          \"used if --train_steps is defined.\"))\n\n  # BLEU score computation\n  flags.DEFINE_string(\n      name=\"bleu_source\", short_name=\"bls\", default=None,\n      help=flags_core.help_wrap(\n          \"Path to source file containing text translate when calculating the \"\n          \"official BLEU score. --bleu_source, --bleu_ref, and --vocab_file \"\n          \"must be set. Use the flag --stop_threshold to stop the script based \"\n          \"on the uncased BLEU score.\"))\n  flags.DEFINE_string(\n      name=\"bleu_ref\", short_name=\"blr\", default=None,\n      help=flags_core.help_wrap(\n          \"Path to source file containing text translate when calculating the \"\n          \"official BLEU score. --bleu_source, --bleu_ref, and --vocab_file \"\n          \"must be set. Use the flag --stop_threshold to stop the script based \"\n          \"on the uncased BLEU score.\"))\n  flags.DEFINE_string(\n      name=\"vocab_file\", short_name=\"vf\", default=VOCAB_FILE,\n      help=flags_core.help_wrap(\n          \"Name of vocabulary file containing subtokens for subtokenizing the \"\n          \"bleu_source file. This file is expected to be in the directory \"\n          \"defined by --data_dir.\"))\n\n  flags_core.set_defaults(data_dir=\"/tmp/translate_ende\",\n                          model_dir=\"/tmp/transformer_model\",\n                          batch_size=None,\n                          train_epochs=None)\n\n  @flags.multi_flags_validator(\n      [\"train_epochs\", \"train_steps\"],\n      message=\"Both --train_steps and --train_epochs were set. Only one may be \"\n              \"defined.\")\n  def _check_train_limits(flag_dict):\n    return flag_dict[\"train_epochs\"] is None or flag_dict[\"train_steps\"] is None\n\n  @flags.multi_flags_validator(\n      [\"data_dir\", \"bleu_source\", \"bleu_ref\", \"vocab_file\"],\n      message=\"--bleu_source, --bleu_ref, and/or --vocab_file don't exist. \"\n              \"Please ensure that the file paths are correct.\")\n  def _check_bleu_files(flags_dict):\n    \"\"\"Validate files when bleu_source and bleu_ref are defined.\"\"\"\n    if flags_dict[\"bleu_source\"] is None or flags_dict[\"bleu_ref\"] is None:\n      return True\n    # Ensure that bleu_source, bleu_ref, and vocab files exist.\n    vocab_file_path = os.path.join(\n        flags_dict[\"data_dir\"], flags_dict[\"vocab_file\"])\n    return all([\n        tf.gfile.Exists(flags_dict[\"bleu_source\"]),\n        tf.gfile.Exists(flags_dict[\"bleu_ref\"]),\n        tf.gfile.Exists(vocab_file_path)])\n\n\ndef run_transformer(flags_obj):\n  \"\"\"Create tf.Estimator to train and evaluate transformer model.\n\n  Args:\n    flags_obj: Object containing parsed flag values.\n  \"\"\"\n  # Determine training schedule based on flags.\n  if flags_obj.train_steps is not None:\n    train_eval_iterations = (\n        flags_obj.train_steps // flags_obj.steps_between_evals)\n    single_iteration_train_steps = flags_obj.steps_between_evals\n    single_iteration_train_epochs = None\n  else:\n    train_epochs = flags_obj.train_epochs or DEFAULT_TRAIN_EPOCHS\n    train_eval_iterations = train_epochs // flags_obj.epochs_between_evals\n    single_iteration_train_steps = None\n    single_iteration_train_epochs = flags_obj.epochs_between_evals\n\n  # Add flag-defined parameters to params object\n  params = PARAMS_MAP[flags_obj.param_set]\n  params.data_dir = flags_obj.data_dir\n  params.num_parallel_calls = flags_obj.num_parallel_calls\n  params.epochs_between_evals = flags_obj.epochs_between_evals\n  params.repeat_dataset = single_iteration_train_epochs\n  params.batch_size = flags_obj.batch_size or params.batch_size\n\n  # Create hooks that log information about the training and metric values\n  train_hooks = hooks_helper.get_train_hooks(\n      flags_obj.hooks,\n      tensors_to_log=TENSORS_TO_LOG,  # used for logging hooks\n      batch_size=params.batch_size  # for ExamplesPerSecondHook\n  )\n  benchmark_logger = logger.config_benchmark_logger(flags_obj)\n  benchmark_logger.log_run_info(\n      model_name=\"transformer\",\n      dataset_name=\"wmt_translate_ende\",\n      run_params=params.__dict__)\n\n  # Train and evaluate transformer model\n  estimator = tf.estimator.Estimator(\n      model_fn=model_fn, model_dir=flags_obj.model_dir, params=params)\n  train_schedule(\n      estimator=estimator,\n      # Training arguments\n      train_eval_iterations=train_eval_iterations,\n      single_iteration_train_steps=single_iteration_train_steps,\n      single_iteration_train_epochs=single_iteration_train_epochs,\n      train_hooks=train_hooks,\n      benchmark_logger=benchmark_logger,\n      # BLEU calculation arguments\n      bleu_source=flags_obj.bleu_source,\n      bleu_ref=flags_obj.bleu_ref,\n      bleu_threshold=flags_obj.stop_threshold,\n      vocab_file_path=os.path.join(flags_obj.data_dir, flags_obj.vocab_file))\n\n\ndef main(_):\n  run_transformer(flags.FLAGS)\n\n\nif __name__ == \"__main__\":\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_transformer_flags()\n  absl_app.run(main)\n"
  },
  {
    "path": "official/transformer/translate.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Translate text or files using trained transformer model.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\n# pylint: disable=g-bad-import-order\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf\n# pylint: enable=g-bad-import-order\n\nfrom official.transformer.data_download import VOCAB_FILE\nfrom official.transformer.model import model_params\nfrom official.transformer.utils import tokenizer\nfrom official.utils.flags import core as flags_core\n\n_DECODE_BATCH_SIZE = 32\n_EXTRA_DECODE_LENGTH = 100\n_BEAM_SIZE = 4\n_ALPHA = 0.6\n\n\ndef _get_sorted_inputs(filename):\n  \"\"\"Read and sort lines from the file sorted by decreasing length.\n\n  Args:\n    filename: String name of file to read inputs from.\n  Returns:\n    Sorted list of inputs, and dictionary mapping original index->sorted index\n    of each element.\n  \"\"\"\n  with tf.gfile.Open(filename) as f:\n    records = f.read().split(\"\\n\")\n    inputs = [record.strip() for record in records]\n    if not inputs[-1]:\n      inputs.pop()\n\n  input_lens = [(i, len(line.split())) for i, line in enumerate(inputs)]\n  sorted_input_lens = sorted(input_lens, key=lambda x: x[1], reverse=True)\n\n  sorted_inputs = []\n  sorted_keys = {}\n  for i, (index, _) in enumerate(sorted_input_lens):\n    sorted_inputs.append(inputs[index])\n    sorted_keys[index] = i\n  return sorted_inputs, sorted_keys\n\n\ndef _encode_and_add_eos(line, subtokenizer):\n  \"\"\"Encode line with subtokenizer, and add EOS id to the end.\"\"\"\n  return subtokenizer.encode(line) + [tokenizer.EOS_ID]\n\n\ndef _trim_and_decode(ids, subtokenizer):\n  \"\"\"Trim EOS and PAD tokens from ids, and decode to return a string.\"\"\"\n  try:\n    index = list(ids).index(tokenizer.EOS_ID)\n    return subtokenizer.decode(ids[:index])\n  except ValueError:  # No EOS found in sequence\n    return subtokenizer.decode(ids)\n\n\ndef translate_file(\n    estimator, subtokenizer, input_file, output_file=None,\n    print_all_translations=True):\n  \"\"\"Translate lines in file, and save to output file if specified.\n\n  Args:\n    estimator: tf.Estimator used to generate the translations.\n    subtokenizer: Subtokenizer object for encoding and decoding source and\n       translated lines.\n    input_file: file containing lines to translate\n    output_file: file that stores the generated translations.\n    print_all_translations: If true, all translations are printed to stdout.\n\n  Raises:\n    ValueError: if output file is invalid.\n  \"\"\"\n  batch_size = _DECODE_BATCH_SIZE\n\n  # Read and sort inputs by length. Keep dictionary (original index-->new index\n  # in sorted list) to write translations in the original order.\n  sorted_inputs, sorted_keys = _get_sorted_inputs(input_file)\n  num_decode_batches = (len(sorted_inputs) - 1) // batch_size + 1\n\n  def input_generator():\n    \"\"\"Yield encoded strings from sorted_inputs.\"\"\"\n    for i, line in enumerate(sorted_inputs):\n      if i % batch_size == 0:\n        batch_num = (i // batch_size) + 1\n\n        tf.logging.info(\"Decoding batch %d out of %d.\" %\n                        (batch_num, num_decode_batches))\n      yield _encode_and_add_eos(line, subtokenizer)\n\n  def input_fn():\n    \"\"\"Created batched dataset of encoded inputs.\"\"\"\n    ds = tf.data.Dataset.from_generator(\n        input_generator, tf.int64, tf.TensorShape([None]))\n    ds = ds.padded_batch(batch_size, [None])\n    return ds\n\n  translations = []\n  for i, prediction in enumerate(estimator.predict(input_fn)):\n    translation = _trim_and_decode(prediction[\"outputs\"], subtokenizer)\n    translations.append(translation)\n\n    if print_all_translations:\n      tf.logging.info(\"Translating:\\n\\tInput: %s\\n\\tOutput: %s\" %\n                      (sorted_inputs[i], translation))\n\n  # Write translations in the order they appeared in the original file.\n  if output_file is not None:\n    if tf.gfile.IsDirectory(output_file):\n      raise ValueError(\"File output is a directory, will not save outputs to \"\n                       \"file.\")\n    tf.logging.info(\"Writing to file %s\" % output_file)\n    with tf.gfile.Open(output_file, \"w\") as f:\n      for index in xrange(len(sorted_keys)):\n        f.write(\"%s\\n\" % translations[sorted_keys[index]])\n\n\ndef translate_text(estimator, subtokenizer, txt):\n  \"\"\"Translate a single string.\"\"\"\n  encoded_txt = _encode_and_add_eos(txt, subtokenizer)\n\n  def input_fn():\n    ds = tf.data.Dataset.from_tensors(encoded_txt)\n    ds = ds.batch(_DECODE_BATCH_SIZE)\n    return ds\n\n  predictions = estimator.predict(input_fn)\n  translation = next(predictions)[\"outputs\"]\n  translation = _trim_and_decode(translation, subtokenizer)\n  tf.logging.info(\"Translation of \\\"%s\\\": \\\"%s\\\"\" % (txt, translation))\n\n\ndef main(unused_argv):\n  from official.transformer import transformer_main\n\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  if FLAGS.text is None and FLAGS.file is None:\n    tf.logging.warn(\"Nothing to translate. Make sure to call this script using \"\n                    \"flags --text or --file.\")\n    return\n\n  subtokenizer = tokenizer.Subtokenizer(\n      os.path.join(FLAGS.data_dir, FLAGS.vocab_file))\n\n  # Set up estimator and params\n  params = transformer_main.PARAMS_MAP[FLAGS.param_set]\n  params.beam_size = _BEAM_SIZE\n  params.alpha = _ALPHA\n  params.extra_decode_length = _EXTRA_DECODE_LENGTH\n  params.batch_size = _DECODE_BATCH_SIZE\n  estimator = tf.estimator.Estimator(\n      model_fn=transformer_main.model_fn, model_dir=FLAGS.model_dir,\n      params=params)\n\n  if FLAGS.text is not None:\n    tf.logging.info(\"Translating text: %s\" % FLAGS.text)\n    translate_text(estimator, subtokenizer, FLAGS.text)\n\n  if FLAGS.file is not None:\n    input_file = os.path.abspath(FLAGS.file)\n    tf.logging.info(\"Translating file: %s\" % input_file)\n    if not tf.gfile.Exists(FLAGS.file):\n      raise ValueError(\"File does not exist: %s\" % input_file)\n\n    output_file = None\n    if FLAGS.file_out is not None:\n      output_file = os.path.abspath(FLAGS.file_out)\n      tf.logging.info(\"File output specified: %s\" % output_file)\n\n    translate_file(estimator, subtokenizer, input_file, output_file)\n\n\ndef define_translate_flags():\n  \"\"\"Define flags used for translation script.\"\"\"\n  # Model and vocab file flags\n  flags.DEFINE_string(\n      name=\"data_dir\", short_name=\"dd\", default=\"/tmp/translate_ende\",\n      help=flags_core.help_wrap(\n          \"Directory for where the translate_ende_wmt32k dataset is saved.\"))\n  flags.DEFINE_string(\n      name=\"vocab_file\", short_name=\"vf\", default=VOCAB_FILE,\n      help=flags_core.help_wrap(\n          \"Name of vocabulary file containing subtokens for subtokenizing the \"\n          \"input text or file. This file is expected to be in the directory \"\n          \"defined by --data_dir.\"))\n  flags.DEFINE_string(\n      name=\"model_dir\", short_name=\"md\", default=\"/tmp/transformer_model\",\n      help=flags_core.help_wrap(\n          \"Directory containing Transformer model checkpoints.\"))\n  flags.DEFINE_enum(\n      name=\"param_set\", short_name=\"mp\", default=\"big\",\n      enum_values=[\"base\", \"big\"],\n      help=flags_core.help_wrap(\n          \"Parameter set to use when creating and training the model. The \"\n          \"parameters define the input shape (batch size and max length), \"\n          \"model configuration (size of embedding, # of hidden layers, etc.), \"\n          \"and various other settings. The big parameter set increases the \"\n          \"default batch size, embedding/hidden size, and filter size. For a \"\n          \"complete list of parameters, please see model/model_params.py.\"))\n\n  flags.DEFINE_string(\n      name=\"text\", default=None,\n      help=flags_core.help_wrap(\n          \"Text to translate. Output will be printed to console.\"))\n  flags.DEFINE_string(\n      name=\"file\", default=None,\n      help=flags_core.help_wrap(\n          \"File containing text to translate. Translation will be printed to \"\n          \"console and, if --file_out is provided, saved to an output file.\"))\n  flags.DEFINE_string(\n      name=\"file_out\", default=None,\n      help=flags_core.help_wrap(\n          \"If --file flag is specified, save translation to this file.\"))\n\n\nif __name__ == \"__main__\":\n  define_translate_flags()\n  FLAGS = flags.FLAGS\n  absl_app.run(main)\n"
  },
  {
    "path": "official/transformer/utils/__init__.py",
    "content": ""
  },
  {
    "path": "official/transformer/utils/dataset.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Input pipeline for the transformer model to read, filter, and batch examples.\n\nTwo things to note in the pipeline:\n\n1. Batching scheme\n\n   The examples encoded in the TFRecord files contain data in the format:\n     {\"inputs\": [variable length array of integers],\n      \"targets\": [variable length array of integers]}\n   Where integers in the arrays refer to tokens in the English and German vocab\n   file (named `vocab.ende.32768`).\n\n   Prior to batching, elements in the dataset are grouped by length (max between\n   \"inputs\" and \"targets\" length). Each group is then batched such that:\n     group_batch_size * length <= batch_size.\n\n   Another way to view batch_size is the maximum number of tokens in each batch.\n\n   Once batched, each element in the dataset will have the shape:\n     {\"inputs\": [group_batch_size, padded_input_length],\n      \"targets\": [group_batch_size, padded_target_length]}\n   Lengths are padded to the longest \"inputs\" or \"targets\" sequence in the batch\n   (padded_input_length and padded_target_length can be different).\n\n   This batching scheme decreases the fraction of padding tokens per training\n   batch, thus improving the training speed significantly.\n\n2. Shuffling\n\n   While training, the dataset is shuffled in two places in the code. The first\n   is the list of training files. Second, while reading records using\n   `parallel_interleave`, the `sloppy` argument is used to generate randomness\n   in the order of the examples.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\nimport tensorflow as tf\n\n# Use the number of training files as the shuffle buffer.\n_FILE_SHUFFLE_BUFFER = 100\n# Buffer size for reading records from a TFRecord file. Each training file is\n# 7.2 MB, so 8 MB allows an entire file to be kept in memory.\n_READ_RECORD_BUFFER = 8 * 1000 * 1000\n\n# Example grouping constants. Defines length boundaries for each group.\n# These values are the defaults used in Tensor2Tensor.\n_MIN_BOUNDARY = 8\n_BOUNDARY_SCALE = 1.1\n\n\ndef _load_records(filename):\n  \"\"\"Read file and return a dataset of tf.Examples.\"\"\"\n  return tf.data.TFRecordDataset(filename, buffer_size=_READ_RECORD_BUFFER)\n\n\ndef _parse_example(serialized_example):\n  \"\"\"Return inputs and targets Tensors from a serialized tf.Example.\"\"\"\n  data_fields = {\n      \"inputs\": tf.VarLenFeature(tf.int64),\n      \"targets\": tf.VarLenFeature(tf.int64)\n  }\n  parsed = tf.parse_single_example(serialized_example, data_fields)\n  inputs = tf.sparse_tensor_to_dense(parsed[\"inputs\"])\n  targets = tf.sparse_tensor_to_dense(parsed[\"targets\"])\n  return inputs, targets\n\n\ndef _filter_max_length(example, max_length=256):\n  \"\"\"Indicates whether the example's length is lower than the maximum length.\"\"\"\n  return tf.logical_and(tf.size(example[0]) <= max_length,\n                        tf.size(example[1]) <= max_length)\n\n\ndef _get_example_length(example):\n  \"\"\"Returns the maximum length between the example inputs and targets.\"\"\"\n  length = tf.maximum(tf.shape(example[0])[0], tf.shape(example[1])[0])\n  return length\n\n\ndef _create_min_max_boundaries(\n    max_length, min_boundary=_MIN_BOUNDARY, boundary_scale=_BOUNDARY_SCALE):\n  \"\"\"Create min and max boundary lists up to max_length.\n\n  For example, when max_length=24, min_boundary=4 and boundary_scale=2, the\n  returned values will be:\n    buckets_min = [0, 4, 8, 16, 24]\n    buckets_max = [4, 8, 16, 24, 25]\n\n  Args:\n    max_length: The maximum length of example in dataset.\n    min_boundary: Minimum length in boundary.\n    boundary_scale: Amount to scale consecutive boundaries in the list.\n\n  Returns:\n    min and max boundary lists\n\n  \"\"\"\n  # Create bucket boundaries list by scaling the previous boundary or adding 1\n  # (to ensure increasing boundary sizes).\n  bucket_boundaries = []\n  x = min_boundary\n  while x < max_length:\n    bucket_boundaries.append(x)\n    x = max(x + 1, int(x * boundary_scale))\n\n  # Create min and max boundary lists from the initial list.\n  buckets_min = [0] + bucket_boundaries\n  buckets_max = bucket_boundaries + [max_length + 1]\n  return buckets_min, buckets_max\n\n\ndef _batch_examples(dataset, batch_size, max_length):\n  \"\"\"Group examples by similar lengths, and return batched dataset.\n\n  Each batch of similar-length examples are padded to the same length, and may\n  have different number of elements in each batch, such that:\n    group_batch_size * padded_length <= batch_size.\n\n  This decreases the number of padding tokens per batch, which improves the\n  training speed.\n\n  Args:\n    dataset: Dataset of unbatched examples.\n    batch_size: Max number of tokens per batch of examples.\n    max_length: Max number of tokens in an example input or target sequence.\n\n  Returns:\n    Dataset of batched examples with similar lengths.\n  \"\"\"\n  # Get min and max boundary lists for each example. These are used to calculate\n  # the `bucket_id`, which is the index at which:\n  # buckets_min[bucket_id] <= len(example) < buckets_max[bucket_id]\n  # Note that using both min and max lists improves the performance.\n  buckets_min, buckets_max = _create_min_max_boundaries(max_length)\n\n  # Create list of batch sizes for each bucket_id, so that\n  # bucket_batch_size[bucket_id] * buckets_max[bucket_id] <= batch_size\n  bucket_batch_sizes = [batch_size // x for x in buckets_max]\n  # bucket_id will be a tensor, so convert this list to a tensor as well.\n  bucket_batch_sizes = tf.constant(bucket_batch_sizes, dtype=tf.int64)\n\n  def example_to_bucket_id(example_input, example_target):\n    \"\"\"Return int64 bucket id for this example, calculated based on length.\"\"\"\n    seq_length = _get_example_length((example_input, example_target))\n\n    # TODO: investigate whether removing code branching improves performance.\n    conditions_c = tf.logical_and(\n        tf.less_equal(buckets_min, seq_length),\n        tf.less(seq_length, buckets_max))\n    bucket_id = tf.reduce_min(tf.where(conditions_c))\n    return bucket_id\n\n  def window_size_fn(bucket_id):\n    \"\"\"Return number of examples to be grouped when given a bucket id.\"\"\"\n    return bucket_batch_sizes[bucket_id]\n\n  def batching_fn(bucket_id, grouped_dataset):\n    \"\"\"Batch and add padding to a dataset of elements with similar lengths.\"\"\"\n    bucket_batch_size = window_size_fn(bucket_id)\n\n    # Batch the dataset and add padding so that all input sequences in the\n    # examples have the same length, and all target sequences have the same\n    # lengths as well. Resulting lengths of inputs and targets can differ.\n    return grouped_dataset.padded_batch(bucket_batch_size, ([None], [None]))\n\n  return dataset.apply(tf.contrib.data.group_by_window(\n      key_func=example_to_bucket_id,\n      reduce_func=batching_fn,\n      window_size=None,\n      window_size_func=window_size_fn))\n\n\ndef _read_and_batch_from_files(\n    file_pattern, batch_size, max_length, num_parallel_calls, shuffle, repeat):\n  \"\"\"Create dataset where each item is a dict of \"inputs\" and \"targets\".\n\n  Args:\n    file_pattern: String used to match the input TFRecord files.\n    batch_size: Maximum number of tokens per batch of examples\n    max_length: Maximum number of tokens per example\n    num_parallel_calls: Number of cpu cores for parallel input processing.\n    shuffle: If true, randomizes order of elements.\n    repeat: Number of times to repeat the dataset. If None, the dataset is\n      repeated forever.\n\n  Returns:\n    tf.data.Dataset object containing examples loaded from the files.\n  \"\"\"\n  dataset = tf.data.Dataset.list_files(file_pattern)\n\n  if shuffle:\n    # Shuffle filenames\n    dataset = dataset.shuffle(buffer_size=_FILE_SHUFFLE_BUFFER)\n\n  # Read files and interleave results. When training, the order of the examples\n  # will be non-deterministic.\n  dataset = dataset.apply(\n      tf.contrib.data.parallel_interleave(\n          _load_records, sloppy=shuffle, cycle_length=num_parallel_calls))\n\n  # Parse each tf.Example into a dictionary\n  # TODO: Look into prefetch_input_elements for performance optimization.\n  dataset = dataset.map(_parse_example,\n                        num_parallel_calls=num_parallel_calls)\n\n  # Remove examples where the input or target length exceeds the maximum length,\n  dataset = dataset.filter(lambda x, y: _filter_max_length((x, y), max_length))\n\n  # Batch such that each batch has examples of similar length.\n  dataset = _batch_examples(dataset, batch_size, max_length)\n  dataset = dataset.repeat(repeat)\n\n  # Prefetch the next element to improve speed of input pipeline.\n  dataset = dataset.prefetch(1)\n  return dataset\n\n\ndef train_input_fn(params):\n  \"\"\"Load and return dataset of batched examples for use during training.\"\"\"\n  file_pattern = os.path.join(getattr(params, \"data_dir\", \"\"), \"*train*\")\n  return _read_and_batch_from_files(\n      file_pattern, params.batch_size, params.max_length,\n      params.num_parallel_calls, shuffle=True, repeat=params.repeat_dataset)\n\n\ndef eval_input_fn(params):\n  \"\"\"Load and return dataset of batched examples for use during evaluation.\"\"\"\n  file_pattern = os.path.join(getattr(params, \"data_dir\", \"\"), \"*dev*\")\n  return _read_and_batch_from_files(\n      file_pattern, params.batch_size, params.max_length,\n      params.num_parallel_calls, shuffle=False, repeat=1)\n"
  },
  {
    "path": "official/transformer/utils/metrics.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Functions for calculating loss, accuracy, and other model metrics.\n\nMetrics:\n - Padded loss, accuracy, and negative log perplexity. Source:\n     https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/metrics.py\n - BLEU approximation. Source:\n     https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/bleu_hook.py\n - ROUGE score. Source:\n     https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/rouge.py\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport math\n\nimport numpy as np\nimport six\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\n\n\ndef _pad_tensors_to_same_length(x, y):\n  \"\"\"Pad x and y so that the results have the same length (second dimension).\"\"\"\n  with tf.name_scope(\"pad_to_same_length\"):\n    x_length = tf.shape(x)[1]\n    y_length = tf.shape(y)[1]\n\n    max_length = tf.maximum(x_length, y_length)\n\n    x = tf.pad(x, [[0, 0], [0, max_length - x_length], [0, 0]])\n    y = tf.pad(y, [[0, 0], [0, max_length - y_length]])\n    return x, y\n\n\ndef padded_cross_entropy_loss(logits, labels, smoothing, vocab_size):\n  \"\"\"Calculate cross entropy loss while ignoring padding.\n\n  Args:\n    logits: Tensor of size [batch_size, length_logits, vocab_size]\n    labels: Tensor of size [batch_size, length_labels]\n    smoothing: Label smoothing constant, used to determine the on and off values\n    vocab_size: int size of the vocabulary\n  Returns:\n    Returns the cross entropy loss and weight tensors: float32 tensors with\n      shape [batch_size, max(length_logits, length_labels)]\n  \"\"\"\n  with tf.name_scope(\"loss\", [logits, labels]):\n    logits, labels = _pad_tensors_to_same_length(logits, labels)\n\n    # Calculate smoothing cross entropy\n    with tf.name_scope(\"smoothing_cross_entropy\", [logits, labels]):\n      confidence = 1.0 - smoothing\n      low_confidence = (1.0 - confidence) / tf.to_float(vocab_size - 1)\n      soft_targets = tf.one_hot(\n          tf.cast(labels, tf.int32),\n          depth=vocab_size,\n          on_value=confidence,\n          off_value=low_confidence)\n      xentropy = tf.nn.softmax_cross_entropy_with_logits_v2(\n          logits=logits, labels=soft_targets)\n\n      # Calculate the best (lowest) possible value of cross entropy, and\n      # subtract from the cross entropy loss.\n      normalizing_constant = -(\n          confidence * tf.log(confidence) + tf.to_float(vocab_size - 1) *\n          low_confidence * tf.log(low_confidence + 1e-20))\n      xentropy -= normalizing_constant\n\n    weights = tf.to_float(tf.not_equal(labels, 0))\n    return xentropy * weights, weights\n\n\ndef _convert_to_eval_metric(metric_fn):\n  \"\"\"Wrap a metric fn that returns scores and weights as an eval metric fn.\n\n  The input metric_fn returns values for the current batch. The wrapper\n  aggregates the return values collected over all of the batches evaluated.\n\n  Args:\n    metric_fn: function that returns scores and weights for the current batch's\n      logits and predicted labels.\n\n  Returns:\n    function that aggregates the scores and weights from metric_fn.\n  \"\"\"\n  def problem_metric_fn(*args):\n    \"\"\"Returns an aggregation of the metric_fn's returned values.\"\"\"\n    (scores, weights) = metric_fn(*args)\n\n    # The tf.metrics.mean function assures correct aggregation.\n    return tf.metrics.mean(scores, weights)\n  return problem_metric_fn\n\n\ndef get_eval_metrics(logits, labels, params):\n  \"\"\"Return dictionary of model evaluation metrics.\"\"\"\n  metrics = {\n      \"accuracy\": _convert_to_eval_metric(padded_accuracy)(logits, labels),\n      \"accuracy_top5\": _convert_to_eval_metric(padded_accuracy_top5)(\n          logits, labels),\n      \"accuracy_per_sequence\": _convert_to_eval_metric(\n          padded_sequence_accuracy)(logits, labels),\n      \"neg_log_perplexity\": _convert_to_eval_metric(padded_neg_log_perplexity)(\n          logits, labels, params.vocab_size),\n      \"approx_bleu_score\": _convert_to_eval_metric(bleu_score)(logits, labels),\n      \"rouge_2_fscore\": _convert_to_eval_metric(rouge_2_fscore)(logits, labels),\n      \"rouge_L_fscore\": _convert_to_eval_metric(rouge_l_fscore)(logits, labels),\n  }\n\n  # Prefix each of the metric names with \"metrics/\". This allows the metric\n  # graphs to display under the \"metrics\" category in TensorBoard.\n  metrics = {\"metrics/%s\" % k: v for k, v in six.iteritems(metrics)}\n  return metrics\n\n\ndef padded_accuracy(logits, labels):\n  \"\"\"Percentage of times that predictions matches labels on non-0s.\"\"\"\n  with tf.variable_scope(\"padded_accuracy\", values=[logits, labels]):\n    logits, labels = _pad_tensors_to_same_length(logits, labels)\n    weights = tf.to_float(tf.not_equal(labels, 0))\n    outputs = tf.to_int32(tf.argmax(logits, axis=-1))\n    padded_labels = tf.to_int32(labels)\n    return tf.to_float(tf.equal(outputs, padded_labels)), weights\n\n\ndef padded_accuracy_topk(logits, labels, k):\n  \"\"\"Percentage of times that top-k predictions matches labels on non-0s.\"\"\"\n  with tf.variable_scope(\"padded_accuracy_topk\", values=[logits, labels]):\n    logits, labels = _pad_tensors_to_same_length(logits, labels)\n    weights = tf.to_float(tf.not_equal(labels, 0))\n    effective_k = tf.minimum(k, tf.shape(logits)[-1])\n    _, outputs = tf.nn.top_k(logits, k=effective_k)\n    outputs = tf.to_int32(outputs)\n    padded_labels = tf.to_int32(labels)\n    padded_labels = tf.expand_dims(padded_labels, axis=-1)\n    padded_labels += tf.zeros_like(outputs)  # Pad to same shape.\n    same = tf.to_float(tf.equal(outputs, padded_labels))\n    same_topk = tf.reduce_sum(same, axis=-1)\n    return same_topk, weights\n\n\ndef padded_accuracy_top5(logits, labels):\n  return padded_accuracy_topk(logits, labels, 5)\n\n\ndef padded_sequence_accuracy(logits, labels):\n  \"\"\"Percentage of times that predictions matches labels everywhere (non-0).\"\"\"\n  with tf.variable_scope(\"padded_sequence_accuracy\", values=[logits, labels]):\n    logits, labels = _pad_tensors_to_same_length(logits, labels)\n    weights = tf.to_float(tf.not_equal(labels, 0))\n    outputs = tf.to_int32(tf.argmax(logits, axis=-1))\n    padded_labels = tf.to_int32(labels)\n    not_correct = tf.to_float(tf.not_equal(outputs, padded_labels)) * weights\n    axis = list(range(1, len(outputs.get_shape())))\n    correct_seq = 1.0 - tf.minimum(1.0, tf.reduce_sum(not_correct, axis=axis))\n    return correct_seq, tf.constant(1.0)\n\n\ndef padded_neg_log_perplexity(logits, labels, vocab_size):\n  \"\"\"Average log-perplexity excluding padding 0s. No smoothing.\"\"\"\n  num, den = padded_cross_entropy_loss(logits, labels, 0, vocab_size)\n  return -num, den\n\n\ndef bleu_score(logits, labels):\n  \"\"\"Approximate BLEU score computation between labels and predictions.\n\n  An approximate BLEU scoring method since we do not glue word pieces or\n  decode the ids and tokenize the output. By default, we use ngram order of 4\n  and use brevity penalty. Also, this does not have beam search.\n\n  Args:\n    logits: Tensor of size [batch_size, length_logits, vocab_size]\n    labels: Tensor of size [batch-size, length_labels]\n\n  Returns:\n    bleu: int, approx bleu score\n  \"\"\"\n  predictions = tf.to_int32(tf.argmax(logits, axis=-1))\n  # TODO: Look into removing use of py_func\n  bleu = tf.py_func(compute_bleu, (labels, predictions), tf.float32)\n  return bleu, tf.constant(1.0)\n\n\ndef _get_ngrams_with_counter(segment, max_order):\n  \"\"\"Extracts all n-grams up to a given maximum order from an input segment.\n\n  Args:\n    segment: text segment from which n-grams will be extracted.\n    max_order: maximum length in tokens of the n-grams returned by this\n        methods.\n\n  Returns:\n    The Counter containing all n-grams upto max_order in segment\n    with a count of how many times each n-gram occurred.\n  \"\"\"\n  ngram_counts = collections.Counter()\n  for order in xrange(1, max_order + 1):\n    for i in xrange(0, len(segment) - order + 1):\n      ngram = tuple(segment[i:i + order])\n      ngram_counts[ngram] += 1\n  return ngram_counts\n\n\ndef compute_bleu(reference_corpus, translation_corpus, max_order=4,\n                 use_bp=True):\n  \"\"\"Computes BLEU score of translated segments against one or more references.\n\n  Args:\n    reference_corpus: list of references for each translation. Each\n        reference should be tokenized into a list of tokens.\n    translation_corpus: list of translations to score. Each translation\n        should be tokenized into a list of tokens.\n    max_order: Maximum n-gram order to use when computing BLEU score.\n    use_bp: boolean, whether to apply brevity penalty.\n\n  Returns:\n    BLEU score.\n  \"\"\"\n  reference_length = 0\n  translation_length = 0\n  bp = 1.0\n  geo_mean = 0\n\n  matches_by_order = [0] * max_order\n  possible_matches_by_order = [0] * max_order\n  precisions = []\n\n  for (references, translations) in zip(reference_corpus, translation_corpus):\n    reference_length += len(references)\n    translation_length += len(translations)\n    ref_ngram_counts = _get_ngrams_with_counter(references, max_order)\n    translation_ngram_counts = _get_ngrams_with_counter(translations, max_order)\n\n    overlap = dict((ngram,\n                    min(count, translation_ngram_counts[ngram]))\n                   for ngram, count in ref_ngram_counts.items())\n\n    for ngram in overlap:\n      matches_by_order[len(ngram) - 1] += overlap[ngram]\n    for ngram in translation_ngram_counts:\n      possible_matches_by_order[len(ngram) - 1] += translation_ngram_counts[\n          ngram]\n\n  precisions = [0] * max_order\n  smooth = 1.0\n\n  for i in xrange(0, max_order):\n    if possible_matches_by_order[i] > 0:\n      precisions[i] = float(matches_by_order[i]) / possible_matches_by_order[i]\n      if matches_by_order[i] > 0:\n        precisions[i] = float(matches_by_order[i]) / possible_matches_by_order[\n            i]\n      else:\n        smooth *= 2\n        precisions[i] = 1.0 / (smooth * possible_matches_by_order[i])\n    else:\n      precisions[i] = 0.0\n\n  if max(precisions) > 0:\n    p_log_sum = sum(math.log(p) for p in precisions if p)\n    geo_mean = math.exp(p_log_sum / max_order)\n\n  if use_bp:\n    ratio = translation_length / reference_length\n    bp = math.exp(1 - 1. / ratio) if ratio < 1.0 else 1.0\n  bleu = geo_mean * bp\n  return np.float32(bleu)\n\n\ndef rouge_2_fscore(logits, labels):\n  \"\"\"ROUGE-2 F1 score computation between labels and predictions.\n\n  This is an approximate ROUGE scoring method since we do not glue word pieces\n  or decode the ids and tokenize the output.\n\n  Args:\n    logits: tensor, model predictions\n    labels: tensor, gold output.\n\n  Returns:\n    rouge2_fscore: approx rouge-2 f1 score.\n  \"\"\"\n  predictions = tf.to_int32(tf.argmax(logits, axis=-1))\n  # TODO: Look into removing use of py_func\n  rouge_2_f_score = tf.py_func(rouge_n, (predictions, labels), tf.float32)\n  return rouge_2_f_score, tf.constant(1.0)\n\n\ndef _get_ngrams(n, text):\n  \"\"\"Calculates n-grams.\n\n  Args:\n    n: which n-grams to calculate\n    text: An array of tokens\n\n  Returns:\n    A set of n-grams\n  \"\"\"\n  ngram_set = set()\n  text_length = len(text)\n  max_index_ngram_start = text_length - n\n  for i in range(max_index_ngram_start + 1):\n    ngram_set.add(tuple(text[i:i + n]))\n  return ngram_set\n\n\ndef rouge_n(eval_sentences, ref_sentences, n=2):\n  \"\"\"Computes ROUGE-N f1 score of two text collections of sentences.\n\n  Source: https://www.microsoft.com/en-us/research/publication/\n  rouge-a-package-for-automatic-evaluation-of-summaries/\n\n  Args:\n    eval_sentences: Predicted sentences.\n    ref_sentences: Sentences from the reference set\n    n: Size of ngram.  Defaults to 2.\n\n  Returns:\n    f1 score for ROUGE-N\n  \"\"\"\n  f1_scores = []\n  for eval_sentence, ref_sentence in zip(eval_sentences, ref_sentences):\n    eval_ngrams = _get_ngrams(n, eval_sentence)\n    ref_ngrams = _get_ngrams(n, ref_sentence)\n    ref_count = len(ref_ngrams)\n    eval_count = len(eval_ngrams)\n\n    # Count the overlapping ngrams between evaluated and reference\n    overlapping_ngrams = eval_ngrams.intersection(ref_ngrams)\n    overlapping_count = len(overlapping_ngrams)\n\n    # Handle edge case. This isn't mathematically correct, but it's good enough\n    if eval_count == 0:\n      precision = 0.0\n    else:\n      precision = float(overlapping_count) / eval_count\n    if ref_count == 0:\n      recall = 0.0\n    else:\n      recall = float(overlapping_count) / ref_count\n    f1_scores.append(2.0 * ((precision * recall) / (precision + recall + 1e-8)))\n\n  # return overlapping_count / reference_count\n  return np.mean(f1_scores, dtype=np.float32)\n\n\ndef rouge_l_fscore(predictions, labels):\n  \"\"\"ROUGE scores computation between labels and predictions.\n\n  This is an approximate ROUGE scoring method since we do not glue word pieces\n  or decode the ids and tokenize the output.\n\n  Args:\n    predictions: tensor, model predictions\n    labels: tensor, gold output.\n\n  Returns:\n    rouge_l_fscore: approx rouge-l f1 score.\n  \"\"\"\n  outputs = tf.to_int32(tf.argmax(predictions, axis=-1))\n  rouge_l_f_score = tf.py_func(rouge_l_sentence_level, (outputs, labels),\n                               tf.float32)\n  return rouge_l_f_score, tf.constant(1.0)\n\n\ndef rouge_l_sentence_level(eval_sentences, ref_sentences):\n  \"\"\"Computes ROUGE-L (sentence level) of two collections of sentences.\n\n  Source: https://www.microsoft.com/en-us/research/publication/\n  rouge-a-package-for-automatic-evaluation-of-summaries/\n\n  Calculated according to:\n  R_lcs = LCS(X,Y)/m\n  P_lcs = LCS(X,Y)/n\n  F_lcs = ((1 + beta^2)*R_lcs*P_lcs) / (R_lcs + (beta^2) * P_lcs)\n\n  where:\n  X = reference summary\n  Y = Candidate summary\n  m = length of reference summary\n  n = length of candidate summary\n\n  Args:\n    eval_sentences: The sentences that have been picked by the summarizer\n    ref_sentences: The sentences from the reference set\n\n  Returns:\n    A float: F_lcs\n  \"\"\"\n\n  f1_scores = []\n  for eval_sentence, ref_sentence in zip(eval_sentences, ref_sentences):\n    m = float(len(ref_sentence))\n    n = float(len(eval_sentence))\n    lcs = _len_lcs(eval_sentence, ref_sentence)\n    f1_scores.append(_f_lcs(lcs, m, n))\n  return np.mean(f1_scores, dtype=np.float32)\n\n\ndef _len_lcs(x, y):\n  \"\"\"Returns the length of the Longest Common Subsequence between two seqs.\n\n  Source: http://www.algorithmist.com/index.php/Longest_Common_Subsequence\n\n  Args:\n    x: sequence of words\n    y: sequence of words\n\n  Returns\n    integer: Length of LCS between x and y\n  \"\"\"\n  table = _lcs(x, y)\n  n, m = len(x), len(y)\n  return table[n, m]\n\n\ndef _lcs(x, y):\n  \"\"\"Computes the length of the LCS between two seqs.\n\n  The implementation below uses a DP programming algorithm and runs\n  in O(nm) time where n = len(x) and m = len(y).\n  Source: http://www.algorithmist.com/index.php/Longest_Common_Subsequence\n\n  Args:\n    x: collection of words\n    y: collection of words\n\n  Returns:\n    Table of dictionary of coord and len lcs\n  \"\"\"\n  n, m = len(x), len(y)\n  table = dict()\n  for i in range(n + 1):\n    for j in range(m + 1):\n      if i == 0 or j == 0:\n        table[i, j] = 0\n      elif x[i - 1] == y[j - 1]:\n        table[i, j] = table[i - 1, j - 1] + 1\n      else:\n        table[i, j] = max(table[i - 1, j], table[i, j - 1])\n  return table\n\n\ndef _f_lcs(llcs, m, n):\n  \"\"\"Computes the LCS-based F-measure score.\n\n  Source: http://research.microsoft.com/en-us/um/people/cyl/download/papers/\n  rouge-working-note-v1.3.1.pdf\n\n  Args:\n    llcs: Length of LCS\n    m: number of words in reference summary\n    n: number of words in candidate summary\n\n  Returns:\n    Float. LCS-based F-measure score\n  \"\"\"\n  r_lcs = llcs / m\n  p_lcs = llcs / n\n  beta = p_lcs / (r_lcs + 1e-12)\n  num = (1 + (beta ** 2)) * r_lcs * p_lcs\n  denom = r_lcs + ((beta ** 2) * p_lcs)\n  f_lcs = num / (denom + 1e-12)\n  return f_lcs\n"
  },
  {
    "path": "official/transformer/utils/tokenizer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Defines Subtokenizer class to encode and decode strings.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport re\nimport sys\nimport unicodedata\n\nimport numpy as np\nimport six\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\n\nPAD = \"<pad>\"\nPAD_ID = 0\nEOS = \"<EOS>\"\nEOS_ID = 1\nRESERVED_TOKENS = [PAD, EOS]\n\n# Set of characters that will be used in the function _escape_token() (see func\n# docstring for more details).\n# This set is added to the alphabet list to ensure that all escaped tokens can\n# be encoded.\n_ESCAPE_CHARS = set(u\"\\\\_u;0123456789\")\n# Regex for the function _unescape_token(), the inverse of _escape_token().\n# This is used to find \"\\u\", \"\\\\\", and \"\\###;\" substrings in the token.\n_UNESCAPE_REGEX = re.compile(r\"\\\\u|\\\\\\\\|\\\\([0-9]+);\")\n\n_UNDEFINED_UNICODE = u\"\\u3013\"\n\n# Set contains all letter and number characters.\n_ALPHANUMERIC_CHAR_SET = set(\n    six.unichr(i) for i in xrange(sys.maxunicode)\n    if (unicodedata.category(six.unichr(i)).startswith(\"L\") or\n        unicodedata.category(six.unichr(i)).startswith(\"N\")))\n\n# min_count is the minimum number of times a subtoken must appear in the data\n# before before it is added to the vocabulary. The value is found using binary\n# search to obtain the target vocabulary size.\n_MIN_MIN_COUNT = 1     # min value to use when binary searching for min_count\n_MAX_MIN_COUNT = 1000  # max value to use when binary searching for min_count\n\n\nclass Subtokenizer(object):\n  \"\"\"Encodes and decodes strings to/from integer IDs.\"\"\"\n\n  def __init__(self, vocab_file, reserved_tokens=None):\n    \"\"\"Initializes class, creating a vocab file if data_files is provided.\"\"\"\n    tf.logging.info(\"Initializing Subtokenizer from file %s.\" % vocab_file)\n\n    if reserved_tokens is None:\n      reserved_tokens = RESERVED_TOKENS\n\n    self.subtoken_list = _load_vocab_file(vocab_file, reserved_tokens)\n    self.alphabet = _generate_alphabet_dict(self.subtoken_list)\n    self.subtoken_to_id_dict = _list_to_index_dict(self.subtoken_list)\n\n    self.max_subtoken_length = 0\n    for subtoken in self.subtoken_list:\n      self.max_subtoken_length = max(self.max_subtoken_length, len(subtoken))\n\n    # Create cache to speed up subtokenization\n    self._cache_size = 2 ** 20\n    self._cache = [(None, None)] * self._cache_size\n\n  @staticmethod\n  def init_from_files(\n      vocab_file, files, target_vocab_size, threshold, min_count=None,\n      file_byte_limit=1e6, reserved_tokens=None):\n    \"\"\"Create subtoken vocabulary based on files, and save vocab to file.\n\n    Args:\n      vocab_file: String name of vocab file to store subtoken vocabulary.\n      files: List of file paths that will be used to generate vocabulary.\n      target_vocab_size: target vocabulary size to generate.\n      threshold: int threshold of vocabulary size to accept.\n      min_count: int minimum count to use for generating the vocabulary. The min\n        count is the minimum number of times a subtoken should appear in the\n        files before it is added to the vocabulary. If set to none, this value\n        is found using binary search.\n      file_byte_limit: (Default 1e6) Maximum number of bytes of sample text that\n        will be drawn from the files.\n      reserved_tokens: List of string tokens that are guaranteed to be at the\n        beginning of the subtoken vocabulary list.\n\n    Returns:\n      Subtokenizer object\n    \"\"\"\n    if reserved_tokens is None:\n      reserved_tokens = RESERVED_TOKENS\n\n    if tf.gfile.Exists(vocab_file):\n      tf.logging.info(\"Vocab file already exists (%s)\" % vocab_file)\n    else:\n      tf.logging.info(\"Begin steps to create subtoken vocabulary...\")\n      token_counts = _count_tokens(files, file_byte_limit)\n      alphabet = _generate_alphabet_dict(token_counts)\n      subtoken_list = _generate_subtokens_with_target_vocab_size(\n          token_counts, alphabet, target_vocab_size, threshold, min_count,\n          reserved_tokens)\n      tf.logging.info(\"Generated vocabulary with %d subtokens.\" %\n                      len(subtoken_list))\n      _save_vocab_file(vocab_file, subtoken_list)\n    return Subtokenizer(vocab_file)\n\n  def encode(self, raw_string, add_eos=False):\n    \"\"\"Encodes a string into a list of int subtoken ids.\"\"\"\n    ret = []\n    tokens = _split_string_to_tokens(_native_to_unicode(raw_string))\n    for token in tokens:\n      ret.extend(self._token_to_subtoken_ids(token))\n    if add_eos:\n      ret.append(EOS_ID)\n    return ret\n\n  def _token_to_subtoken_ids(self, token):\n    \"\"\"Encode a single token into a list of subtoken ids.\"\"\"\n    cache_location = hash(token) % self._cache_size\n    cache_key, cache_value = self._cache[cache_location]\n    if cache_key == token:\n      return cache_value\n\n    ret = _split_token_to_subtokens(\n        _escape_token(token, self.alphabet), self.subtoken_to_id_dict,\n        self.max_subtoken_length)\n    ret = [self.subtoken_to_id_dict[subtoken_id] for subtoken_id in ret]\n\n    self._cache[cache_location] = (token, ret)\n    return ret\n\n  def decode(self, subtokens):\n    \"\"\"Converts list of int subtokens ids into a string.\"\"\"\n    if isinstance(subtokens, np.ndarray):\n      # Note that list(subtokens) converts subtokens to a python list, but the\n      # items remain as np.int32. This converts both the array and its items.\n      subtokens = subtokens.tolist()\n\n    if not subtokens:\n      return \"\"\n\n    assert isinstance(subtokens, list) and isinstance(subtokens[0], int), (\n        \"Subtokens argument passed into decode() must be a list of integers.\")\n\n    return _unicode_to_native(\n        _join_tokens_to_string(self._subtoken_ids_to_tokens(subtokens)))\n\n  def _subtoken_ids_to_tokens(self, subtokens):\n    \"\"\"Convert list of int subtoken ids to a list of string tokens.\"\"\"\n    escaped_tokens = \"\".join([\n        self.subtoken_list[s] for s in subtokens\n        if s < len(self.subtoken_list)])\n    escaped_tokens = escaped_tokens.split(\"_\")\n\n    # All tokens in the vocabulary list have been escaped (see _escape_token())\n    # so each token must be unescaped when decoding.\n    ret = []\n    for token in escaped_tokens:\n      if token:\n        ret.append(_unescape_token(token))\n    return ret\n\n\ndef _save_vocab_file(vocab_file, subtoken_list):\n  \"\"\"Save subtokens to file.\"\"\"\n  with tf.gfile.Open(vocab_file, mode=\"w\") as f:\n    for subtoken in subtoken_list:\n      f.write(\"'%s'\\n\" % _unicode_to_native(subtoken))\n\n\ndef _load_vocab_file(vocab_file, reserved_tokens=None):\n  \"\"\"Load vocabulary while ensuring reserved tokens are at the top.\"\"\"\n  if reserved_tokens is None:\n    reserved_tokens = RESERVED_TOKENS\n\n  subtoken_list = []\n  with tf.gfile.Open(vocab_file, mode=\"r\") as f:\n    for line in f:\n      subtoken = _native_to_unicode(line.strip())\n      subtoken = subtoken[1:-1]  # Remove surrounding single-quotes\n      if subtoken in reserved_tokens:\n        continue\n      subtoken_list.append(_native_to_unicode(subtoken))\n  return reserved_tokens + subtoken_list\n\n\ndef _native_to_unicode(s):\n  \"\"\"Convert string to unicode (required in Python 2).\"\"\"\n  if six.PY2:\n    return s if isinstance(s, unicode) else s.decode(\"utf-8\")\n  else:\n    return s\n\n\ndef _unicode_to_native(s):\n  \"\"\"Convert string from unicode to native format (required in Python 2).\"\"\"\n  if six.PY2:\n    return s.encode(\"utf-8\") if isinstance(s, unicode) else s\n  else:\n    return s\n\n\ndef _split_string_to_tokens(text):\n  \"\"\"Splits text to a list of string tokens.\"\"\"\n  if not text:\n    return []\n  ret = []\n  token_start = 0\n  # Classify each character in the input string\n  is_alnum = [c in _ALPHANUMERIC_CHAR_SET for c in text]\n  for pos in xrange(1, len(text)):\n    if is_alnum[pos] != is_alnum[pos - 1]:\n      token = text[token_start:pos]\n      if token != u\" \" or token_start == 0:\n        ret.append(token)\n      token_start = pos\n  final_token = text[token_start:]\n  ret.append(final_token)\n  return ret\n\n\ndef _join_tokens_to_string(tokens):\n  \"\"\"Join a list of string tokens into a single string.\"\"\"\n  token_is_alnum = [t[0] in _ALPHANUMERIC_CHAR_SET for t in tokens]\n  ret = []\n  for i, token in enumerate(tokens):\n    if i > 0 and token_is_alnum[i - 1] and token_is_alnum[i]:\n      ret.append(u\" \")\n    ret.append(token)\n  return \"\".join(ret)\n\n\ndef _escape_token(token, alphabet):\n  r\"\"\"Replace characters that aren't in the alphabet and append \"_\" to token.\n\n  Apply three transformations to the token:\n    1. Replace underline character \"_\" with \"\\u\", and backslash \"\\\" with \"\\\\\".\n    2. Replace characters outside of the alphabet with \"\\###;\", where ### is the\n       character's Unicode code point.\n    3. Appends \"_\" to mark the end of a token.\n\n  Args:\n    token: unicode string to be escaped\n    alphabet: list of all known characters\n\n  Returns:\n    escaped string\n  \"\"\"\n  token = token.replace(u\"\\\\\", u\"\\\\\\\\\").replace(u\"_\", u\"\\\\u\")\n  ret = [c if c in alphabet and c != u\"\\n\" else r\"\\%d;\" % ord(c) for c in token]\n  return u\"\".join(ret) + \"_\"\n\n\ndef _unescape_token(token):\n  r\"\"\"Replaces escaped characters in the token with their unescaped versions.\n\n  Applies inverse transformations as _escape_token():\n    1. Replace \"\\u\" with \"_\", and \"\\\\\" with \"\\\".\n    2. Replace \"\\###;\" with the unicode character the ### refers to.\n\n  Args:\n    token: escaped string\n\n  Returns:\n    unescaped string\n  \"\"\"\n\n  def match(m):\n    r\"\"\"Returns replacement string for matched object.\n\n    Matched objects contain one of the strings that matches the regex pattern:\n      r\"\\\\u|\\\\\\\\|\\\\([0-9]+);\"\n    The strings can be '\\u', '\\\\', or '\\###;' (### is any digit number).\n\n    m.group(0) refers to the entire matched string ('\\u', '\\\\', or '\\###;').\n    m.group(1) refers to the first parenthesized subgroup ('###').\n\n    m.group(0) exists for all match objects, while m.group(1) exists only for\n    the string '\\###;'.\n\n    This function looks to see if m.group(1) exists. If it doesn't, then the\n    matched string must be '\\u' or '\\\\' . In this case, the corresponding\n    replacement ('_' and '\\') are returned. Note that in python, a single\n    backslash is written as '\\\\', and double backslash as '\\\\\\\\'.\n\n    If m.goup(1) exists, then use the integer in m.group(1) to return a\n    unicode character.\n\n    Args:\n      m: match object\n\n    Returns:\n      String to replace matched object with.\n    \"\"\"\n    # Check if the matched strings are '\\u' or '\\\\'.\n    if m.group(1) is None:\n      return u\"_\" if m.group(0) == u\"\\\\u\" else u\"\\\\\"\n\n    # If m.group(1) exists, try and return unicode character.\n    try:\n      return six.unichr(int(m.group(1)))\n    except (ValueError, OverflowError) as _:\n      return _UNDEFINED_UNICODE\n\n  # Use match function to replace escaped substrings in the token.\n  return _UNESCAPE_REGEX.sub(match, token)\n\n\ndef _count_tokens(files, file_byte_limit=1e6):\n  \"\"\"Return token counts of words in the files.\n\n  Samples file_byte_limit bytes from each file, and counts the words that appear\n  in the samples. The samples are semi-evenly distributed across the file.\n\n  Args:\n    files: List of filepaths\n    file_byte_limit: Max number of bytes that will be read from each file.\n\n  Returns:\n    Dictionary mapping tokens to the number of times they appear in the sampled\n    lines from the files.\n  \"\"\"\n  token_counts = collections.defaultdict(int)\n\n  for filepath in files:\n    with tf.gfile.Open(filepath, mode=\"r\") as reader:\n      file_byte_budget = file_byte_limit\n      counter = 0\n      lines_to_skip = int(reader.size() / (file_byte_budget * 2))\n      for line in reader:\n        if counter < lines_to_skip:\n          counter += 1\n        else:\n          if file_byte_budget < 0:\n            break\n          line = line.strip()\n          file_byte_budget -= len(line)\n          counter = 0\n\n          # Add words to token counts\n          for token in _split_string_to_tokens(_native_to_unicode(line)):\n            token_counts[token] += 1\n  return token_counts\n\n\ndef _list_to_index_dict(lst):\n  \"\"\"Create dictionary mapping list items to their indices in the list.\"\"\"\n  return {item: n for n, item in enumerate(lst)}\n\n\ndef _split_token_to_subtokens(token, subtoken_dict, max_subtoken_length):\n  \"\"\"Splits a token into subtokens defined in the subtoken dict.\"\"\"\n  ret = []\n  start = 0\n  token_len = len(token)\n  while start < token_len:\n    # Find the longest subtoken, so iterate backwards.\n    for end in xrange(min(token_len, start + max_subtoken_length), start, -1):\n      subtoken = token[start:end]\n      if subtoken in subtoken_dict:\n        ret.append(subtoken)\n        start = end\n        break\n    else:  # Did not break\n      # If there is no possible encoding of the escaped token then one of the\n      # characters in the token is not in the alphabet. This should be\n      # impossible and would be indicative of a bug.\n      raise ValueError(\"Was unable to split token \\\"%s\\\" into subtokens.\" %\n                       token)\n  return ret\n\n\ndef _generate_subtokens_with_target_vocab_size(\n    token_counts, alphabet, target_size, threshold, min_count=None,\n    reserved_tokens=None):\n  \"\"\"Generate subtoken vocabulary close to the target size.\"\"\"\n  if reserved_tokens is None:\n    reserved_tokens = RESERVED_TOKENS\n\n  if min_count is not None:\n    tf.logging.info(\"Using min_count=%d to generate vocab with target size %d\" %\n                    (min_count, target_size))\n    return _generate_subtokens(\n        token_counts, alphabet, min_count, reserved_tokens=reserved_tokens)\n\n  def bisect(min_val, max_val):\n    \"\"\"Recursive function to binary search for subtoken vocabulary.\"\"\"\n    cur_count = (min_val + max_val) // 2\n    tf.logging.info(\"Binary search: trying min_count=%d (%d %d)\" %\n                    (cur_count, min_val, max_val))\n    subtoken_list = _generate_subtokens(\n        token_counts, alphabet, cur_count, reserved_tokens=reserved_tokens)\n\n    val = len(subtoken_list)\n    tf.logging.info(\"Binary search: min_count=%d resulted in %d tokens\" %\n                    (cur_count, val))\n\n    within_threshold = abs(val - target_size) < threshold\n    if within_threshold or min_val >= max_val or cur_count < 2:\n      return subtoken_list\n    if val > target_size:\n      other_subtoken_list = bisect(cur_count + 1, max_val)\n    else:\n      other_subtoken_list = bisect(min_val, cur_count - 1)\n\n    # Return vocabulary dictionary with the closest number of tokens.\n    other_val = len(other_subtoken_list)\n    if abs(other_val - target_size) < abs(val - target_size):\n      return other_subtoken_list\n    return subtoken_list\n\n  tf.logging.info(\"Finding best min_count to get target size of %d\" %\n                  target_size)\n  return bisect(_MIN_MIN_COUNT, _MAX_MIN_COUNT)\n\n\ndef _generate_alphabet_dict(iterable, reserved_tokens=None):\n  \"\"\"Create set of characters that appear in any element in the iterable.\"\"\"\n  if reserved_tokens is None:\n    reserved_tokens = RESERVED_TOKENS\n  alphabet = {c for token in iterable for c in token}\n  alphabet |= {c for token in reserved_tokens for c in token}\n  alphabet |= _ESCAPE_CHARS  # Add escape characters to alphabet set.\n  return alphabet\n\n\ndef _count_and_gen_subtokens(\n    token_counts, alphabet, subtoken_dict, max_subtoken_length):\n  \"\"\"Count number of times subtokens appear, and generate new subtokens.\n\n  Args:\n    token_counts: dict mapping tokens to the number of times they appear in the\n      original files.\n    alphabet: list of allowed characters. Used to escape the tokens, which\n      guarantees that all tokens can be split into subtokens.\n    subtoken_dict: dict mapping subtokens to ids.\n    max_subtoken_length: maximum length of subtoken in subtoken_dict.\n\n  Returns:\n    A defaultdict mapping subtokens to the number of times they appear in the\n    tokens. The dict may contain new subtokens.\n  \"\"\"\n  subtoken_counts = collections.defaultdict(int)\n  for token, count in six.iteritems(token_counts):\n    token = _escape_token(token, alphabet)\n    subtokens = _split_token_to_subtokens(\n        token, subtoken_dict, max_subtoken_length)\n\n    # Generate new subtokens by taking substrings from token.\n    start = 0\n    for subtoken in subtokens:\n      for end in xrange(start + 1, len(token) + 1):\n        new_subtoken = token[start:end]\n        subtoken_counts[new_subtoken] += count\n      start += len(subtoken)\n\n  return subtoken_counts\n\n\ndef _filter_and_bucket_subtokens(subtoken_counts, min_count):\n  \"\"\"Return a bucketed list of subtokens that are filtered by count.\n\n  Args:\n    subtoken_counts: defaultdict mapping subtokens to their counts\n    min_count: int count used to filter subtokens\n\n  Returns:\n    List of subtoken sets, where subtokens in set i have the same length=i.\n  \"\"\"\n  # Create list of buckets, where subtokens in bucket i have length i.\n  subtoken_buckets = []\n  for subtoken, count in six.iteritems(subtoken_counts):\n    if count < min_count:  # Filter out subtokens that don't appear enough\n      continue\n    while len(subtoken_buckets) <= len(subtoken):\n      subtoken_buckets.append(set())\n    subtoken_buckets[len(subtoken)].add(subtoken)\n  return subtoken_buckets\n\n\ndef _gen_new_subtoken_list(\n    subtoken_counts, min_count, alphabet, reserved_tokens=None):\n  \"\"\"Generate candidate subtokens ordered by count, and new max subtoken length.\n\n  Add subtokens to the candiate list in order of length (longest subtokens\n  first). When a subtoken is added, the counts of each of its prefixes are\n  decreased. Prefixes that don't appear much outside the subtoken are not added\n  to the candidate list.\n\n  For example:\n    subtoken being added to candidate list: 'translate'\n    subtoken_counts: {'translate':10, 't':40, 'tr':16, 'tra':12, ...}\n    min_count: 5\n\n  When 'translate' is added, subtoken_counts is updated to:\n    {'translate':0, 't':30, 'tr':6, 'tra': 2, ...}\n\n  The subtoken 'tra' will not be added to the candidate list, because it appears\n  twice (less than min_count) outside of 'translate'.\n\n  Args:\n    subtoken_counts: defaultdict mapping str subtokens to int counts\n    min_count: int minumum count requirement for subtokens\n    alphabet: set of characters. Each character is added to the subtoken list to\n      guarantee that all tokens can be encoded.\n    reserved_tokens: list of tokens that will be added to the beginning of the\n      returned subtoken list.\n\n  Returns:\n    List of candidate subtokens in decreasing count order, and maximum subtoken\n    length\n  \"\"\"\n  if reserved_tokens is None:\n    reserved_tokens = RESERVED_TOKENS\n\n  # Create a list of (count, subtoken) for each candidate subtoken.\n  subtoken_candidates = []\n\n  # Use bucketted list to iterate through subtokens in order of length.\n  # subtoken_buckets[i] = set(subtokens), where each subtoken has length i.\n  subtoken_buckets = _filter_and_bucket_subtokens(subtoken_counts, min_count)\n  max_subtoken_length = len(subtoken_buckets) - 1\n\n  # Go through the list in reverse order to consider longer subtokens first.\n  for subtoken_len in xrange(max_subtoken_length, 0, -1):\n    for subtoken in subtoken_buckets[subtoken_len]:\n      count = subtoken_counts[subtoken]\n\n      # Possible if this subtoken is a prefix of another token.\n      if count < min_count:\n        continue\n\n      # Ignore alphabet/reserved tokens, which will be added manually later.\n      if subtoken not in alphabet and subtoken not in reserved_tokens:\n        subtoken_candidates.append((count, subtoken))\n\n      # Decrement count of the subtoken's prefixes (if a longer subtoken is\n      # added, its prefixes lose priority to be added).\n      for end in xrange(1, subtoken_len):\n        subtoken_counts[subtoken[:end]] -= count\n\n  # Add alphabet subtokens (guarantees that all strings are encodable).\n  subtoken_candidates.extend((subtoken_counts.get(a, 0), a) for a in alphabet)\n\n  # Order subtoken candidates by decreasing count.\n  subtoken_list = [t for _, t in sorted(subtoken_candidates, reverse=True)]\n\n  # Add reserved tokens to beginning of the list.\n  subtoken_list = reserved_tokens + subtoken_list\n  return subtoken_list, max_subtoken_length\n\n\ndef _generate_subtokens(\n    token_counts, alphabet, min_count, num_iterations=4,\n    reserved_tokens=None):\n  \"\"\"Create a list of subtokens in decreasing order of frequency.\n\n  Args:\n    token_counts: dict mapping str tokens -> int count\n    alphabet: set of characters\n    min_count: int minimum number of times a subtoken must appear before it is\n      added to the vocabulary.\n    num_iterations: int number of iterations to generate new tokens.\n    reserved_tokens: list of tokens that will be added to the beginning to the\n      returned subtoken list.\n\n  Returns:\n    Sorted list of subtokens (most frequent first)\n  \"\"\"\n  if reserved_tokens is None:\n    reserved_tokens = RESERVED_TOKENS\n\n  # Use alphabet set to create initial list of subtokens\n  subtoken_list = reserved_tokens + list(alphabet)\n  max_subtoken_length = 1\n\n  # On each iteration, segment all words using the subtokens defined in\n  # subtoken_dict, count how often the resulting subtokens appear, and update\n  # the dictionary with subtokens w/ high enough counts.\n  for i in xrange(num_iterations):\n    tf.logging.info(\"\\tGenerating subtokens: iteration %d\" % i)\n    # Generate new subtoken->id dictionary using the new subtoken list.\n    subtoken_dict = _list_to_index_dict(subtoken_list)\n\n    # Create dict mapping subtoken->count, with additional subtokens created\n    # from substrings taken from the tokens.\n    subtoken_counts = _count_and_gen_subtokens(\n        token_counts, alphabet, subtoken_dict, max_subtoken_length)\n\n    # Generate new list of subtokens sorted by subtoken count.\n    subtoken_list, max_subtoken_length = _gen_new_subtoken_list(\n        subtoken_counts, min_count, alphabet, reserved_tokens)\n\n    tf.logging.info(\"\\tVocab size: %d\" % len(subtoken_list))\n  return subtoken_list\n"
  },
  {
    "path": "official/transformer/utils/tokenizer_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Test Subtokenizer and string helper methods.\"\"\"\n\nimport collections\nimport tempfile\nimport unittest\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.utils import tokenizer\n\n\nclass SubtokenizerTest(unittest.TestCase):\n\n  def _init_subtokenizer(self, vocab_list):\n    temp_file = tempfile.NamedTemporaryFile(delete=False)\n    with tf.gfile.Open(temp_file.name, 'w') as w:\n      for subtoken in vocab_list:\n        w.write(\"'%s'\" % subtoken)\n        w.write(\"\\n\")\n    return tokenizer.Subtokenizer(temp_file.name, reserved_tokens=[])\n\n  def test_encode(self):\n    vocab_list = [\"123_\", \"test\", \"ing_\"]\n    subtokenizer = self._init_subtokenizer(vocab_list)\n    s = \"testing 123\"\n    encoded_list = subtokenizer.encode(s)\n    self.assertEqual([1, 2, 0], encoded_list)\n\n  def test_decode(self):\n    vocab_list = [\"123_\", \"test\", \"ing_\"]\n    subtokenizer = self._init_subtokenizer(vocab_list)\n    encoded_list = [1, 2, 0]  # testing 123\n    decoded_str = subtokenizer.decode(encoded_list)\n    self.assertEqual(\"testing 123\", decoded_str)\n\n  def test_subtoken_ids_to_tokens(self):\n    vocab_list = [\"123_\", \"test\", \"ing_\"]\n    subtokenizer = self._init_subtokenizer(vocab_list)\n    encoded_list = [1, 2, 0]  # testing 123\n    token_list = subtokenizer._subtoken_ids_to_tokens(encoded_list)\n    self.assertEqual([u\"testing\", u\"123\"], token_list)\n\n\nclass StringHelperTest(unittest.TestCase):\n\n  def test_split_string_to_tokens(self):\n    text = \"test? testing 123.\"\n\n    tokens = tokenizer._split_string_to_tokens(text)\n    self.assertEqual([\"test\", \"? \", \"testing\", \"123\", \".\"], tokens)\n\n  def test_join_tokens_to_string(self):\n    tokens = [\"test\", \"? \", \"testing\", \"123\", \".\"]\n\n    s = tokenizer._join_tokens_to_string(tokens)\n    self.assertEqual(\"test? testing 123.\", s)\n\n  def test_escape_token(self):\n    token = u\"abc_\\\\4\"\n    alphabet = set(\"abc_\\\\u;\")\n\n    escaped_token = tokenizer._escape_token(token, alphabet)\n    self.assertEqual(\"abc\\\\u\\\\\\\\\\\\52;_\", escaped_token)\n\n  def test_unescape_token(self):\n    escaped_token = u\"Underline: \\\\u, Backslash: \\\\\\\\, Unicode: \\\\52;\"\n\n    unescaped_token = tokenizer._unescape_token(escaped_token)\n    self.assertEqual(\n        \"Underline: _, Backslash: \\\\, Unicode: 4\", unescaped_token)\n\n  def test_list_to_index_dict(self):\n    lst = [\"test\", \"strings\"]\n\n    d = tokenizer._list_to_index_dict(lst)\n    self.assertDictEqual({\"test\": 0, \"strings\": 1}, d)\n\n  def test_split_token_to_subtokens(self):\n    token = \"abc\"\n    subtoken_dict = {\"a\": 0, \"b\": 1, \"c\": 2, \"ab\": 3}\n    max_subtoken_length = 2\n\n    subtokens = tokenizer._split_token_to_subtokens(\n        token, subtoken_dict, max_subtoken_length)\n    self.assertEqual([\"ab\", \"c\"], subtokens)\n\n  def test_generate_alphabet_dict(self):\n    s = [\"testing\", \"123\"]\n    reserved_tokens = [\"???\"]\n\n    alphabet = tokenizer._generate_alphabet_dict(s, reserved_tokens)\n    self.assertIn(\"?\", alphabet)\n    self.assertIn(\"t\", alphabet)\n    self.assertIn(\"e\", alphabet)\n    self.assertIn(\"s\", alphabet)\n    self.assertIn(\"i\", alphabet)\n    self.assertIn(\"n\", alphabet)\n    self.assertIn(\"g\", alphabet)\n    self.assertIn(\"1\", alphabet)\n    self.assertIn(\"2\", alphabet)\n    self.assertIn(\"3\", alphabet)\n\n  def test_count_and_gen_subtokens(self):\n    token_counts = {\"abc\": 5}\n    alphabet = set(\"abc_\")\n    subtoken_dict = {\"a\": 0, \"b\": 1, \"c\": 2, \"_\": 3}\n    max_subtoken_length = 2\n\n    subtoken_counts = tokenizer._count_and_gen_subtokens(\n        token_counts, alphabet, subtoken_dict, max_subtoken_length)\n\n    self.assertIsInstance(subtoken_counts, collections.defaultdict)\n    self.assertDictEqual(\n        {\"a\": 5, \"b\": 5, \"c\": 5, \"_\": 5, \"ab\": 5, \"bc\": 5, \"c_\": 5,\n         \"abc\": 5, \"bc_\": 5, \"abc_\": 5}, subtoken_counts)\n\n  def test_filter_and_bucket_subtokens(self):\n    subtoken_counts = collections.defaultdict(\n        int, {\"a\": 2, \"b\": 4, \"c\": 1, \"ab\": 6, \"ac\": 3, \"abbc\": 5})\n    min_count = 3\n\n    subtoken_buckets = tokenizer._filter_and_bucket_subtokens(\n        subtoken_counts, min_count)\n\n    self.assertEqual(len(subtoken_buckets[0]), 0)\n    self.assertEqual(set(\"b\"), subtoken_buckets[1])\n    self.assertEqual(set([\"ab\", \"ac\"]), subtoken_buckets[2])\n    self.assertEqual(len(subtoken_buckets[3]), 0)\n    self.assertEqual(set([\"abbc\"]), subtoken_buckets[4])\n\n  def test_gen_new_subtoken_list(self):\n    subtoken_counts = collections.defaultdict(\n        int, {\"translate\": 10, \"t\": 40, \"tr\": 16, \"tra\": 12})\n    min_count = 5\n    alphabet = set(\"translate\")\n    reserved_tokens = [\"reserved\", \"tokens\"]\n\n    subtoken_list, max_token_length = tokenizer._gen_new_subtoken_list(\n        subtoken_counts, min_count, alphabet, reserved_tokens)\n\n    # Check that \"tra\" isn\"t in the list (its count should be decremented to 2,\n    # so it should not be added to the canddiate list).\n    self.assertNotIn(\"tra\", subtoken_list)\n\n    self.assertIn(\"tr\", subtoken_list)\n    self.assertIn(\"t\", subtoken_list)\n\n    self.assertEqual(len(\"translate\"), max_token_length)\n\n  def test_generate_subtokens(self):\n    token_counts = {\"ab\": 1, \"bc\": 3, \"abc\": 5}\n    alphabet = set(\"abc_\")\n    min_count = 100\n    num_iterations = 1\n    reserved_tokens = [\"reserved\", \"tokens\"]\n\n    vocab_list = tokenizer._generate_subtokens(\n        token_counts, alphabet, min_count, num_iterations, reserved_tokens)\n\n    # Check that reserved tokens are at the front of the list\n    self.assertEqual(vocab_list[:2], reserved_tokens)\n\n    # Check that each character in alphabet is in the vocab list\n    for c in alphabet:\n      self.assertIn(c, vocab_list)\n\n\nif __name__ == \"__main__\":\n  unittest.main()\n"
  },
  {
    "path": "official/utils/__init__.py",
    "content": ""
  },
  {
    "path": "official/utils/export/__init__.py",
    "content": ""
  },
  {
    "path": "official/utils/export/export.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Convenience functions for exporting models as SavedModels or other types.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\ndef build_tensor_serving_input_receiver_fn(shape, dtype=tf.float32,\n                                           batch_size=1):\n  \"\"\"Returns a input_receiver_fn that can be used during serving.\n\n  This expects examples to come through as float tensors, and simply\n  wraps them as TensorServingInputReceivers.\n\n  Arguably, this should live in tf.estimator.export. Testing here first.\n\n  Args:\n    shape: list representing target size of a single example.\n    dtype: the expected datatype for the input example\n    batch_size: number of input tensors that will be passed for prediction\n\n  Returns:\n    A function that itself returns a TensorServingInputReceiver.\n  \"\"\"\n  def serving_input_receiver_fn():\n    # Prep a placeholder where the input example will be fed in\n    features = tf.placeholder(\n        dtype=dtype, shape=[batch_size] + shape, name='input_tensor')\n\n    return tf.estimator.export.TensorServingInputReceiver(\n        features=features, receiver_tensors=features)\n\n  return serving_input_receiver_fn\n"
  },
  {
    "path": "official/utils/export/export_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Tests for exporting utils.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.export import export\n\n\nclass ExportUtilsTest(tf.test.TestCase):\n  \"\"\"Tests for the ExportUtils.\"\"\"\n\n  def test_build_tensor_serving_input_receiver_fn(self):\n    receiver_fn = export.build_tensor_serving_input_receiver_fn(shape=[4, 5])\n    with tf.Graph().as_default():\n      receiver = receiver_fn()\n      self.assertIsInstance(\n          receiver, tf.estimator.export.TensorServingInputReceiver)\n\n      self.assertIsInstance(receiver.features, tf.Tensor)\n      self.assertEqual(receiver.features.shape, tf.TensorShape([1, 4, 5]))\n      self.assertEqual(receiver.features.dtype, tf.float32)\n      self.assertIsInstance(receiver.receiver_tensors, dict)\n      # Note that Python 3 can no longer index .values() directly; cast to list.\n      self.assertEqual(list(receiver.receiver_tensors.values())[0].shape,\n                       tf.TensorShape([1, 4, 5]))\n\n  def test_build_tensor_serving_input_receiver_fn_batch_dtype(self):\n    receiver_fn = export.build_tensor_serving_input_receiver_fn(\n        shape=[4, 5], dtype=tf.int8, batch_size=10)\n\n    with tf.Graph().as_default():\n      receiver = receiver_fn()\n      self.assertIsInstance(\n          receiver, tf.estimator.export.TensorServingInputReceiver)\n\n      self.assertIsInstance(receiver.features, tf.Tensor)\n      self.assertEqual(receiver.features.shape, tf.TensorShape([10, 4, 5]))\n      self.assertEqual(receiver.features.dtype, tf.int8)\n      self.assertIsInstance(receiver.receiver_tensors, dict)\n      # Note that Python 3 can no longer index .values() directly; cast to list.\n      self.assertEqual(list(receiver.receiver_tensors.values())[0].shape,\n                       tf.TensorShape([10, 4, 5]))\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/utils/flags/README.md",
    "content": "# Adding Abseil (absl) flags quickstart\n## Defining a flag\nabsl flag definitions are similar to argparse, although they are defined on a global namespace.\n\nFor instance defining a string flag looks like:\n```$xslt\nfrom absl import flags\nflags.DEFINE_string(\n    name=\"my_flag\",\n    default=\"a_sensible_default\",\n    help=\"Here is what this flag does.\"\n)\n```\n\nAll three arguments are required, but default may be `None`. A common optional argument is\nshort_name for defining abreviations. Certain `DEFINE_*` methods will have other required arguments.\nFor instance `DEFINE_enum` requires the `enum_values` argument to be specified.\n\n## Key Flags\nabsl has the concept of a key flag. Any flag defined in `__main__` is considered a key flag by\ndefault. Key flags are displayed in `--help`, others only appear in `--helpfull`. In order to\nhandle key flags that are defined outside the module in question, absl provides the\n`flags.adopt_module_key_flags()` method. This adds the key flags of a different module to one's own\nkey flags. For example:\n```$xslt\nFile: flag_source.py\n---------------------------------------\n\nfrom absl import flags\nflags.DEFINE_string(name=\"my_flag\", default=\"abc\", help=\"a flag.\")\n```\n\n```$xslt\nFile: my_module.py\n---------------------------------------\n\nfrom absl import app as absl_app\nfrom absl import flags\n\nimport flag_source\n\nflags.adopt_module_key_flags(flag_source)\n\ndef main(_):\n  pass\n\nabsl_app.run(main, [__file__, \"-h\"]\n```\n\nwhen `my_module.py` is run it will show the help text for `my_flag`. Because not all flags defined\nin a file are equally important, `official/utils/flags/core.py` (generally imported as flags_core)\nprovides an abstraction for handling key flag declaration in an easy way through the\n`register_key_flags_in_core()` function, which allows a module to make a single\n`adopt_key_flags(flags_core)` call when using the util flag declaration functions.\n\n## Validators\nOften the constraints on a flag are complicated. absl provides the validator decorator to allow\none to mark a function as a flag validation function. Suppose we want users to provide a flag\nwhich is a palindrome.\n\n```$xslt\nfrom absl import flags\n\nflags.DEFINE_string(name=\"pal_flag\", short_name=\"pf\", default=\"\", help=\"Give me a palindrome\")\n\n@flags.validator(\"pal_flag\")\ndef _check_pal(provided_pal_flag):\n  return provided_pal_flag == provided_pal_flag[::-1]\n\n```\n\nValidators take the form that returning True (truthy) passes, and all others \n(False, None, exception) fail.\n\n## Common Flags\nCommon flags (i.e. batch_size, model_dir, etc.) are provided by various flag definition functions,\nand channeled through `official.utils.flags.core`. For instance to define common supervised\nlearning parameters one could use the following code:\n\n```$xslt\nfrom absl import app as absl_app\nfrom absl import flags\n\nfrom official.utils.flags import core as flags_core\n\n\ndef define_flags():\n  flags_core.define_base()\n  flags.adopt_key_flags(flags_core)\n  \n  \ndef main(_):\n  flags_obj = flags.FLAGS\n  print(flags_obj)\n  \n  \nif __name__ == \"__main__\"\n  absl_app.run(main)\n```\n\n## Testing\nTo test using absl, simply declare flags in the setupClass method of TensorFlow's TestCase.\n\n```$xslt\nfrom absl import flags\nimport tensorflow as tf\n\ndef define_flags():\n  flags.DEFINE_string(name=\"test_flag\", default=\"abc\", help=\"an example flag\")\n\n\nclass BaseTester(unittest.TestCase):\n\n  @classmethod\n  def setUpClass(cls):\n    super(BaseTester, cls).setUpClass()\n    define_flags()\n    \n  def test_trivial(self):\n    flags_core.parse_flags([__file__, \"test_flag\", \"def\"])\n    self.AssertEqual(flags.FLAGS.test_flag, \"def\")\n    \n```\n\n## Immutability\nFlag values should not be mutated. Instead, use getter functions to return\nthe desired values. An example getter function is `get_loss_scale` function\nbelow:\n\n```\n# Map string to (TensorFlow dtype, default loss scale)\nDTYPE_MAP = {\n    \"fp16\": (tf.float16, 128),\n    \"fp32\": (tf.float32, 1),\n}\n\n\ndef get_loss_scale(flags_obj):\n  if flags_obj.loss_scale is not None:\n    return flags_obj.loss_scale\n  return DTYPE_MAP[flags_obj.dtype][1]\n\n\ndef main(_):\n  flags_obj = flags.FLAGS()\n\n  # Do not mutate flags_obj\n  # if flags_obj.loss_scale is None:\n  #   flags_obj.loss_scale = DTYPE_MAP[flags_obj.dtype][1] # Don't do this\n  print(get_loss_scale(flags_obj))\n  ...\n```\n"
  },
  {
    "path": "official/utils/flags/__init__.py",
    "content": ""
  },
  {
    "path": "official/utils/flags/_base.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Flags which will be nearly universal across models.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom absl import flags\nimport tensorflow as tf\n\nfrom official.utils.flags._conventions import help_wrap\nfrom official.utils.logs import hooks_helper\n\n\ndef define_base(data_dir=True, model_dir=True, train_epochs=True,\n                epochs_between_evals=True, stop_threshold=True, batch_size=True,\n                multi_gpu=False, num_gpu=True, hooks=True, export_dir=True):\n  \"\"\"Register base flags.\n\n  Args:\n    data_dir: Create a flag for specifying the input data directory.\n    model_dir: Create a flag for specifying the model file directory.\n    train_epochs: Create a flag to specify the number of training epochs.\n    epochs_between_evals: Create a flag to specify the frequency of testing.\n    stop_threshold: Create a flag to specify a threshold accuracy or other\n      eval metric which should trigger the end of training.\n    batch_size: Create a flag to specify the batch size.\n    multi_gpu: Create a flag to allow the use of all available GPUs.\n    num_gpu: Create a flag to specify the number of GPUs used.\n    hooks: Create a flag to specify hooks for logging.\n    export_dir: Create a flag to specify where a SavedModel should be exported.\n\n  Returns:\n    A list of flags for core.py to marks as key flags.\n  \"\"\"\n  key_flags = []\n\n  if data_dir:\n    flags.DEFINE_string(\n        name=\"data_dir\", short_name=\"dd\", default=\"/tmp\",\n        help=help_wrap(\"The location of the input data.\"))\n    key_flags.append(\"data_dir\")\n\n  if model_dir:\n    flags.DEFINE_string(\n        name=\"model_dir\", short_name=\"md\", default=\"/tmp\",\n        help=help_wrap(\"The location of the model checkpoint files.\"))\n    key_flags.append(\"model_dir\")\n\n  if train_epochs:\n    flags.DEFINE_integer(\n        name=\"train_epochs\", short_name=\"te\", default=1,\n        help=help_wrap(\"The number of epochs used to train.\"))\n    key_flags.append(\"train_epochs\")\n\n  if epochs_between_evals:\n    flags.DEFINE_integer(\n        name=\"epochs_between_evals\", short_name=\"ebe\", default=1,\n        help=help_wrap(\"The number of training epochs to run between \"\n                       \"evaluations.\"))\n    key_flags.append(\"epochs_between_evals\")\n\n  if stop_threshold:\n    flags.DEFINE_float(\n        name=\"stop_threshold\", short_name=\"st\",\n        default=None,\n        help=help_wrap(\"If passed, training will stop at the earlier of \"\n                       \"train_epochs and when the evaluation metric is  \"\n                       \"greater than or equal to stop_threshold.\"))\n\n  if batch_size:\n    flags.DEFINE_integer(\n        name=\"batch_size\", short_name=\"bs\", default=32,\n        help=help_wrap(\"Batch size for training and evaluation.\"))\n    key_flags.append(\"batch_size\")\n\n  assert not (multi_gpu and num_gpu)\n\n  if multi_gpu:\n    flags.DEFINE_bool(\n        name=\"multi_gpu\", default=False,\n        help=help_wrap(\"If set, run across all available GPUs.\"))\n    key_flags.append(\"multi_gpu\")\n\n  if num_gpu:\n    flags.DEFINE_integer(\n        name=\"num_gpus\", short_name=\"ng\",\n        default=1 if tf.test.is_gpu_available() else 0,\n        help=help_wrap(\n            \"How many GPUs to use with the DistributionStrategies API. The \"\n            \"default is 1 if TensorFlow can detect a GPU, and 0 otherwise.\"))\n\n  if hooks:\n    # Construct a pretty summary of hooks.\n    hook_list_str = (\n        u\"\\ufeff  Hook:\\n\" + u\"\\n\".join([u\"\\ufeff    {}\".format(key) for key\n                                         in hooks_helper.HOOKS]))\n    flags.DEFINE_list(\n        name=\"hooks\", short_name=\"hk\", default=\"LoggingTensorHook\",\n        help=help_wrap(\n            u\"A list of (case insensitive) strings to specify the names of \"\n            u\"training hooks.\\n{}\\n\\ufeff  Example: `--hooks ProfilerHook,\"\n            u\"ExamplesPerSecondHook`\\n See official.utils.logs.hooks_helper \"\n            u\"for details.\".format(hook_list_str))\n    )\n    key_flags.append(\"hooks\")\n\n  if export_dir:\n    flags.DEFINE_string(\n        name=\"export_dir\", short_name=\"ed\", default=None,\n        help=help_wrap(\"If set, a SavedModel serialization of the model will \"\n                       \"be exported to this directory at the end of training. \"\n                       \"See the README for more details and relevant links.\")\n    )\n    key_flags.append(\"export_dir\")\n\n  return key_flags\n\n\ndef get_num_gpus(flags_obj):\n  \"\"\"Treat num_gpus=-1 as 'use all'.\"\"\"\n  if flags_obj.num_gpus != -1:\n    return flags_obj.num_gpus\n\n  from tensorflow.python.client import device_lib  # pylint: disable=g-import-not-at-top\n  local_device_protos = device_lib.list_local_devices()\n  return sum([1 for d in local_device_protos if d.device_type == \"GPU\"])\n"
  },
  {
    "path": "official/utils/flags/_benchmark.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Flags for benchmarking models.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom absl import flags\n\nfrom official.utils.flags._conventions import help_wrap\n\n\ndef define_benchmark(benchmark_log_dir=True, bigquery_uploader=True):\n  \"\"\"Register benchmarking flags.\n\n  Args:\n    benchmark_log_dir: Create a flag to specify location for benchmark logging.\n    bigquery_uploader: Create flags for uploading results to BigQuery.\n\n  Returns:\n    A list of flags for core.py to marks as key flags.\n  \"\"\"\n\n  key_flags = []\n\n  flags.DEFINE_enum(\n      name=\"benchmark_logger_type\", default=\"BaseBenchmarkLogger\",\n      enum_values=[\"BaseBenchmarkLogger\", \"BenchmarkFileLogger\",\n                   \"BenchmarkBigQueryLogger\"],\n      help=help_wrap(\"The type of benchmark logger to use. Defaults to using \"\n                     \"BaseBenchmarkLogger which logs to STDOUT. Different \"\n                     \"loggers will require other flags to be able to work.\"))\n\n  if benchmark_log_dir:\n    flags.DEFINE_string(\n        name=\"benchmark_log_dir\", short_name=\"bld\", default=None,\n        help=help_wrap(\"The location of the benchmark logging.\")\n    )\n\n  if bigquery_uploader:\n    flags.DEFINE_string(\n        name=\"gcp_project\", short_name=\"gp\", default=None,\n        help=help_wrap(\n            \"The GCP project name where the benchmark will be uploaded.\"))\n\n    flags.DEFINE_string(\n        name=\"bigquery_data_set\", short_name=\"bds\", default=\"test_benchmark\",\n        help=help_wrap(\n            \"The Bigquery dataset name where the benchmark will be uploaded.\"))\n\n    flags.DEFINE_string(\n        name=\"bigquery_run_table\", short_name=\"brt\", default=\"benchmark_run\",\n        help=help_wrap(\"The Bigquery table name where the benchmark run \"\n                       \"information will be uploaded.\"))\n\n    flags.DEFINE_string(\n        name=\"bigquery_metric_table\", short_name=\"bmt\",\n        default=\"benchmark_metric\",\n        help=help_wrap(\"The Bigquery table name where the benchmark metric \"\n                       \"information will be uploaded.\"))\n\n  @flags.multi_flags_validator(\n      [\"benchmark_logger_type\", \"benchmark_log_dir\"],\n      message=\"--benchmark_logger_type=BenchmarkFileLogger will require \"\n              \"--benchmark_log_dir being set\")\n  def _check_benchmark_log_dir(flags_dict):\n    benchmark_logger_type = flags_dict[\"benchmark_logger_type\"]\n    if benchmark_logger_type == \"BenchmarkFileLogger\":\n      return flags_dict[\"benchmark_log_dir\"]\n    return True\n\n  return key_flags\n"
  },
  {
    "path": "official/utils/flags/_conventions.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Central location for shared arparse convention definitions.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport functools\n\nfrom absl import app as absl_app\nfrom absl import flags\n\n\n# This codifies help string conventions and makes it easy to update them if\n# necessary. Currently the only major effect is that help bodies start on the\n# line after flags are listed. All flag definitions should wrap the text bodies\n# with help wrap when calling DEFINE_*.\nhelp_wrap = functools.partial(flags.text_wrap, length=80, indent=\"\",\n                              firstline_indent=\"\\n\")\n\n\n# Replace None with h to also allow -h\nabsl_app.HelpshortFlag.SHORT_NAME = \"h\"\n"
  },
  {
    "path": "official/utils/flags/_misc.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Misc flags.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom absl import flags\n\nfrom official.utils.flags._conventions import help_wrap\n\n\ndef define_image(data_format=True):\n  \"\"\"Register image specific flags.\n\n  Args:\n    data_format: Create a flag to specify image axis convention.\n\n  Returns:\n    A list of flags for core.py to marks as key flags.\n  \"\"\"\n\n  key_flags = []\n\n  if data_format:\n    flags.DEFINE_enum(\n        name=\"data_format\", short_name=\"df\", default=None,\n        enum_values=[\"channels_first\", \"channels_last\"],\n        help=help_wrap(\n            \"A flag to override the data format used in the model. \"\n            \"channels_first provides a performance boost on GPU but is not \"\n            \"always compatible with CPU. If left unspecified, the data format \"\n            \"will be chosen automatically based on whether TensorFlow was \"\n            \"built for CPU or GPU.\"))\n    key_flags.append(\"data_format\")\n\n  return key_flags\n"
  },
  {
    "path": "official/utils/flags/_performance.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Register flags for optimizing performance.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport multiprocessing\n\nfrom absl import flags    # pylint: disable=g-bad-import-order\nimport tensorflow as tf   # pylint: disable=g-bad-import-order\n\nfrom official.utils.flags._conventions import help_wrap\n\n\n# Map string to (TensorFlow dtype, default loss scale)\nDTYPE_MAP = {\n    \"fp16\": (tf.float16, 128),\n    \"fp32\": (tf.float32, 1),\n}\n\n\ndef get_tf_dtype(flags_obj):\n  return DTYPE_MAP[flags_obj.dtype][0]\n\n\ndef get_loss_scale(flags_obj):\n  if flags_obj.loss_scale is not None:\n    return flags_obj.loss_scale\n  return DTYPE_MAP[flags_obj.dtype][1]\n\n\ndef define_performance(num_parallel_calls=True, inter_op=True, intra_op=True,\n                       synthetic_data=True, max_train_steps=True, dtype=True):\n  \"\"\"Register flags for specifying performance tuning arguments.\n\n  Args:\n    num_parallel_calls: Create a flag to specify parallelism of data loading.\n    inter_op: Create a flag to allow specification of inter op threads.\n    intra_op: Create a flag to allow specification of intra op threads.\n    synthetic_data: Create a flag to allow the use of synthetic data.\n    max_train_steps: Create a flags to allow specification of maximum number\n      of training steps\n    dtype: Create flags for specifying dtype.\n\n  Returns:\n    A list of flags for core.py to marks as key flags.\n  \"\"\"\n\n  key_flags = []\n  if num_parallel_calls:\n    flags.DEFINE_integer(\n        name=\"num_parallel_calls\", short_name=\"npc\",\n        default=multiprocessing.cpu_count(),\n        help=help_wrap(\"The number of records that are  processed in parallel \"\n                       \"during input processing. This can be optimized per \"\n                       \"data set but for generally homogeneous data sets, \"\n                       \"should be approximately the number of available CPU \"\n                       \"cores. (default behavior)\"))\n\n  if inter_op:\n    flags.DEFINE_integer(\n        name=\"inter_op_parallelism_threads\", short_name=\"inter\", default=0,\n        help=help_wrap(\"Number of inter_op_parallelism_threads to use for CPU. \"\n                       \"See TensorFlow config.proto for details.\")\n    )\n\n  if intra_op:\n    flags.DEFINE_integer(\n        name=\"intra_op_parallelism_threads\", short_name=\"intra\", default=0,\n        help=help_wrap(\"Number of intra_op_parallelism_threads to use for CPU. \"\n                       \"See TensorFlow config.proto for details.\"))\n\n  if synthetic_data:\n    flags.DEFINE_bool(\n        name=\"use_synthetic_data\", short_name=\"synth\", default=False,\n        help=help_wrap(\n            \"If set, use fake data (zeroes) instead of a real dataset. \"\n            \"This mode is useful for performance debugging, as it removes \"\n            \"input processing steps, but will not learn anything.\"))\n\n  if max_train_steps:\n    flags.DEFINE_integer(\n        name=\"max_train_steps\", short_name=\"mts\", default=None, help=help_wrap(\n            \"The model will stop training if the global_step reaches this \"\n            \"value. If not set, training will run until the specified number \"\n            \"of epochs have run as usual. It is generally recommended to set \"\n            \"--train_epochs=1 when using this flag.\"\n        ))\n\n  if dtype:\n    flags.DEFINE_enum(\n        name=\"dtype\", short_name=\"dt\", default=\"fp32\",\n        enum_values=DTYPE_MAP.keys(),\n        help=help_wrap(\"The TensorFlow datatype used for calculations. \"\n                       \"Variables may be cast to a higher precision on a \"\n                       \"case-by-case basis for numerical stability.\"))\n\n    flags.DEFINE_integer(\n        name=\"loss_scale\", short_name=\"ls\", default=None,\n        help=help_wrap(\n            \"The amount to scale the loss by when the model is run. Before \"\n            \"gradients are computed, the loss is multiplied by the loss scale, \"\n            \"making all gradients loss_scale times larger. To adjust for this, \"\n            \"gradients are divided by the loss scale before being applied to \"\n            \"variables. This is mathematically equivalent to training without \"\n            \"a loss scale, but the loss scale helps avoid some intermediate \"\n            \"gradients from underflowing to zero. If not provided the default \"\n            \"for fp16 is 128 and 1 for all other dtypes.\"))\n\n    loss_scale_val_msg = \"loss_scale should be a positive integer.\"\n    @flags.validator(flag_name=\"loss_scale\", message=loss_scale_val_msg)\n    def _check_loss_scale(loss_scale):  # pylint: disable=unused-variable\n      if loss_scale is None:\n        return True  # null case is handled in get_loss_scale()\n\n      return loss_scale > 0\n\n  return key_flags\n"
  },
  {
    "path": "official/utils/flags/core.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Public interface for flag definition.\n\nSee _example.py for detailed instructions on defining flags.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport functools\nimport sys\n\nfrom absl import app as absl_app\nfrom absl import flags\n\nfrom official.utils.flags import _base\nfrom official.utils.flags import _benchmark\nfrom official.utils.flags import _conventions\nfrom official.utils.flags import _misc\nfrom official.utils.flags import _performance\n\n\ndef set_defaults(**kwargs):\n  for key, value in kwargs.items():\n    flags.FLAGS.set_default(name=key, value=value)\n\n\ndef parse_flags(argv=None):\n  \"\"\"Reset flags and reparse. Currently only used in testing.\"\"\"\n  flags.FLAGS.unparse_flags()\n  absl_app.parse_flags_with_usage(argv or sys.argv)\n\n\ndef register_key_flags_in_core(f):\n  \"\"\"Defines a function in core.py, and registers its key flags.\n\n  absl uses the location of a flags.declare_key_flag() to determine the context\n  in which a flag is key. By making all declares in core, this allows model\n  main functions to call flags.adopt_module_key_flags() on core and correctly\n  chain key flags.\n\n  Args:\n    f:  The function to be wrapped\n\n  Returns:\n    The \"core-defined\" version of the input function.\n  \"\"\"\n\n  def core_fn(*args, **kwargs):\n    key_flags = f(*args, **kwargs)\n    [flags.declare_key_flag(fl) for fl in key_flags]  # pylint: disable=expression-not-assigned\n  return core_fn\n\n\ndefine_base = register_key_flags_in_core(_base.define_base)\n# Remove options not relevant for Eager from define_base().\ndefine_base_eager = register_key_flags_in_core(functools.partial(\n    _base.define_base, epochs_between_evals=False, stop_threshold=False,\n    multi_gpu=False, hooks=False))\ndefine_benchmark = register_key_flags_in_core(_benchmark.define_benchmark)\ndefine_image = register_key_flags_in_core(_misc.define_image)\ndefine_performance = register_key_flags_in_core(_performance.define_performance)\n\n\nhelp_wrap = _conventions.help_wrap\n\n\nget_num_gpus = _base.get_num_gpus\nget_tf_dtype = _performance.get_tf_dtype\nget_loss_scale = _performance.get_loss_scale\nDTYPE_MAP = _performance.DTYPE_MAP\n"
  },
  {
    "path": "official/utils/flags/flags_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\nimport unittest\n\nfrom absl import flags\nimport tensorflow as tf\n\nfrom official.utils.flags import core as flags_core  # pylint: disable=g-bad-import-order\n\n\ndef define_flags():\n  flags_core.define_base(multi_gpu=True, num_gpu=False)\n  flags_core.define_performance()\n  flags_core.define_image()\n  flags_core.define_benchmark()\n\n\nclass BaseTester(unittest.TestCase):\n\n  @classmethod\n  def setUpClass(cls):\n    super(BaseTester, cls).setUpClass()\n    define_flags()\n\n  def test_default_setting(self):\n    \"\"\"Test to ensure fields exist and defaults can be set.\n    \"\"\"\n\n    defaults = dict(\n        data_dir=\"dfgasf\",\n        model_dir=\"dfsdkjgbs\",\n        train_epochs=534,\n        epochs_between_evals=15,\n        batch_size=256,\n        hooks=[\"LoggingTensorHook\"],\n        num_parallel_calls=18,\n        inter_op_parallelism_threads=5,\n        intra_op_parallelism_threads=10,\n        data_format=\"channels_first\"\n    )\n\n    flags_core.set_defaults(**defaults)\n    flags_core.parse_flags()\n\n    for key, value in defaults.items():\n      assert flags.FLAGS.get_flag_value(name=key, default=None) == value\n\n  def test_benchmark_setting(self):\n    defaults = dict(\n        hooks=[\"LoggingMetricHook\"],\n        benchmark_log_dir=\"/tmp/12345\",\n        gcp_project=\"project_abc\",\n    )\n\n    flags_core.set_defaults(**defaults)\n    flags_core.parse_flags()\n\n    for key, value in defaults.items():\n      assert flags.FLAGS.get_flag_value(name=key, default=None) == value\n\n  def test_booleans(self):\n    \"\"\"Test to ensure boolean flags trigger as expected.\n    \"\"\"\n\n    flags_core.parse_flags([__file__, \"--multi_gpu\", \"--use_synthetic_data\"])\n\n    assert flags.FLAGS.multi_gpu\n    assert flags.FLAGS.use_synthetic_data\n\n  def test_parse_dtype_info(self):\n    for dtype_str, tf_dtype, loss_scale in [[\"fp16\", tf.float16, 128],\n                                            [\"fp32\", tf.float32, 1]]:\n      flags_core.parse_flags([__file__, \"--dtype\", dtype_str])\n\n      self.assertEqual(flags_core.get_tf_dtype(flags.FLAGS), tf_dtype)\n      self.assertEqual(flags_core.get_loss_scale(flags.FLAGS), loss_scale)\n\n      flags_core.parse_flags(\n          [__file__, \"--dtype\", dtype_str, \"--loss_scale\", \"5\"])\n\n      self.assertEqual(flags_core.get_loss_scale(flags.FLAGS), 5)\n\n    with self.assertRaises(SystemExit):\n      flags_core.parse_flags([__file__, \"--dtype\", \"int8\"])\n\n\nif __name__ == \"__main__\":\n  unittest.main()\n"
  },
  {
    "path": "official/utils/logs/__init__.py",
    "content": ""
  },
  {
    "path": "official/utils/logs/hooks.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Hook that counts examples per second every N steps or seconds.\"\"\"\n\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.logs import logger\n\n\nclass ExamplesPerSecondHook(tf.train.SessionRunHook):\n  \"\"\"Hook to print out examples per second.\n\n  Total time is tracked and then divided by the total number of steps\n  to get the average step time and then batch_size is used to determine\n  the running average of examples per second. The examples per second for the\n  most recent interval is also logged.\n  \"\"\"\n\n  def __init__(self,\n               batch_size,\n               every_n_steps=None,\n               every_n_secs=None,\n               warm_steps=0,\n               metric_logger=None):\n    \"\"\"Initializer for ExamplesPerSecondHook.\n\n    Args:\n      batch_size: Total batch size across all workers used to calculate\n        examples/second from global time.\n      every_n_steps: Log stats every n steps.\n      every_n_secs: Log stats every n seconds. Exactly one of the\n        `every_n_steps` or `every_n_secs` should be set.\n      warm_steps: The number of steps to be skipped before logging and running\n        average calculation. warm_steps steps refers to global steps across all\n        workers, not on each worker\n      metric_logger: instance of `BenchmarkLogger`, the benchmark logger that\n          hook should use to write the log. If None, BaseBenchmarkLogger will\n          be used.\n\n    Raises:\n      ValueError: if neither `every_n_steps` or `every_n_secs` is set, or\n      both are set.\n    \"\"\"\n\n    if (every_n_steps is None) == (every_n_secs is None):\n      raise ValueError(\"exactly one of every_n_steps\"\n                       \" and every_n_secs should be provided.\")\n\n    self._logger = metric_logger or logger.BaseBenchmarkLogger()\n\n    self._timer = tf.train.SecondOrStepTimer(\n        every_steps=every_n_steps, every_secs=every_n_secs)\n\n    self._step_train_time = 0\n    self._total_steps = 0\n    self._batch_size = batch_size\n    self._warm_steps = warm_steps\n\n  def begin(self):\n    \"\"\"Called once before using the session to check global step.\"\"\"\n    self._global_step_tensor = tf.train.get_global_step()\n    if self._global_step_tensor is None:\n      raise RuntimeError(\n          \"Global step should be created to use StepCounterHook.\")\n\n  def before_run(self, run_context):  # pylint: disable=unused-argument\n    \"\"\"Called before each call to run().\n\n    Args:\n      run_context: A SessionRunContext object.\n\n    Returns:\n      A SessionRunArgs object or None if never triggered.\n    \"\"\"\n    return tf.train.SessionRunArgs(self._global_step_tensor)\n\n  def after_run(self, run_context, run_values):  # pylint: disable=unused-argument\n    \"\"\"Called after each call to run().\n\n    Args:\n      run_context: A SessionRunContext object.\n      run_values: A SessionRunValues object.\n    \"\"\"\n    global_step = run_values.results\n\n    if self._timer.should_trigger_for_step(\n        global_step) and global_step > self._warm_steps:\n      elapsed_time, elapsed_steps = self._timer.update_last_triggered_step(\n          global_step)\n      if elapsed_time is not None:\n        self._step_train_time += elapsed_time\n        self._total_steps += elapsed_steps\n\n        # average examples per second is based on the total (accumulative)\n        # training steps and training time so far\n        average_examples_per_sec = self._batch_size * (\n            self._total_steps / self._step_train_time)\n        # current examples per second is based on the elapsed training steps\n        # and training time per batch\n        current_examples_per_sec = self._batch_size * (\n            elapsed_steps / elapsed_time)\n\n        self._logger.log_metric(\n            \"average_examples_per_sec\", average_examples_per_sec,\n            global_step=global_step)\n\n        self._logger.log_metric(\n            \"current_examples_per_sec\", current_examples_per_sec,\n            global_step=global_step)\n"
  },
  {
    "path": "official/utils/logs/hooks_helper.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Hooks helper to return a list of TensorFlow hooks for training by name.\n\nMore hooks can be added to this set. To add a new hook, 1) add the new hook to\nthe registry in HOOKS, 2) add a corresponding function that parses out necessary\nparameters.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.logs import hooks\nfrom official.utils.logs import logger\nfrom official.utils.logs import metric_hook\n\n_TENSORS_TO_LOG = dict((x, x) for x in ['learning_rate',\n                                        'cross_entropy',\n                                        'train_accuracy'])\n\n\ndef get_train_hooks(name_list, **kwargs):\n  \"\"\"Factory for getting a list of TensorFlow hooks for training by name.\n\n  Args:\n    name_list: a list of strings to name desired hook classes. Allowed:\n      LoggingTensorHook, ProfilerHook, ExamplesPerSecondHook, which are defined\n      as keys in HOOKS\n    **kwargs: a dictionary of arguments to the hooks.\n\n  Returns:\n    list of instantiated hooks, ready to be used in a classifier.train call.\n\n  Raises:\n    ValueError: if an unrecognized name is passed.\n  \"\"\"\n\n  if not name_list:\n    return []\n\n  train_hooks = []\n  for name in name_list:\n    hook_name = HOOKS.get(name.strip().lower())\n    if hook_name is None:\n      raise ValueError('Unrecognized training hook requested: {}'.format(name))\n    else:\n      train_hooks.append(hook_name(**kwargs))\n\n  return train_hooks\n\n\ndef get_logging_tensor_hook(every_n_iter=100, tensors_to_log=None, **kwargs):  # pylint: disable=unused-argument\n  \"\"\"Function to get LoggingTensorHook.\n\n  Args:\n    every_n_iter: `int`, print the values of `tensors` once every N local\n      steps taken on the current worker.\n    tensors_to_log: List of tensor names or dictionary mapping labels to tensor\n      names. If not set, log _TENSORS_TO_LOG by default.\n    **kwargs: a dictionary of arguments to LoggingTensorHook.\n\n  Returns:\n    Returns a LoggingTensorHook with a standard set of tensors that will be\n    printed to stdout.\n  \"\"\"\n  if tensors_to_log is None:\n    tensors_to_log = _TENSORS_TO_LOG\n\n  return tf.train.LoggingTensorHook(\n      tensors=tensors_to_log,\n      every_n_iter=every_n_iter)\n\n\ndef get_profiler_hook(save_steps=1000, **kwargs):  # pylint: disable=unused-argument\n  \"\"\"Function to get ProfilerHook.\n\n  Args:\n    save_steps: `int`, print profile traces every N steps.\n    **kwargs: a dictionary of arguments to ProfilerHook.\n\n  Returns:\n    Returns a ProfilerHook that writes out timelines that can be loaded into\n    profiling tools like chrome://tracing.\n  \"\"\"\n  return tf.train.ProfilerHook(save_steps=save_steps)\n\n\ndef get_examples_per_second_hook(every_n_steps=100,\n                                 batch_size=128,\n                                 warm_steps=5,\n                                 **kwargs):  # pylint: disable=unused-argument\n  \"\"\"Function to get ExamplesPerSecondHook.\n\n  Args:\n    every_n_steps: `int`, print current and average examples per second every\n      N steps.\n    batch_size: `int`, total batch size used to calculate examples/second from\n      global time.\n    warm_steps: skip this number of steps before logging and running average.\n    **kwargs: a dictionary of arguments to ExamplesPerSecondHook.\n\n  Returns:\n    Returns a ProfilerHook that writes out timelines that can be loaded into\n    profiling tools like chrome://tracing.\n  \"\"\"\n  return hooks.ExamplesPerSecondHook(\n      batch_size=batch_size, every_n_steps=every_n_steps,\n      warm_steps=warm_steps, metric_logger=logger.get_benchmark_logger())\n\n\ndef get_logging_metric_hook(tensors_to_log=None,\n                            every_n_secs=600,\n                            **kwargs):  # pylint: disable=unused-argument\n  \"\"\"Function to get LoggingMetricHook.\n\n  Args:\n    tensors_to_log: List of tensor names or dictionary mapping labels to tensor\n      names. If not set, log _TENSORS_TO_LOG by default.\n    every_n_secs: `int`, the frequency for logging the metric. Default to every\n      10 mins.\n\n  Returns:\n    Returns a ProfilerHook that writes out timelines that can be loaded into\n    profiling tools like chrome://tracing.\n  \"\"\"\n  if tensors_to_log is None:\n    tensors_to_log = _TENSORS_TO_LOG\n  return metric_hook.LoggingMetricHook(\n      tensors=tensors_to_log,\n      metric_logger=logger.get_benchmark_logger(),\n      every_n_secs=every_n_secs)\n\n\n# A dictionary to map one hook name and its corresponding function\nHOOKS = {\n    'loggingtensorhook': get_logging_tensor_hook,\n    'profilerhook': get_profiler_hook,\n    'examplespersecondhook': get_examples_per_second_hook,\n    'loggingmetrichook': get_logging_metric_hook,\n}\n"
  },
  {
    "path": "official/utils/logs/hooks_helper_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Tests for hooks_helper.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport unittest\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.logs import hooks_helper\n\n\nclass BaseTest(unittest.TestCase):\n\n  def test_raise_in_non_list_names(self):\n    with self.assertRaises(ValueError):\n      hooks_helper.get_train_hooks(\n          'LoggingTensorHook, ProfilerHook', batch_size=256)\n\n  def test_raise_in_invalid_names(self):\n    invalid_names = ['StepCounterHook', 'StopAtStepHook']\n    with self.assertRaises(ValueError):\n      hooks_helper.get_train_hooks(invalid_names, batch_size=256)\n\n  def validate_train_hook_name(self,\n                               test_hook_name,\n                               expected_hook_name,\n                               **kwargs):\n    returned_hook = hooks_helper.get_train_hooks([test_hook_name], **kwargs)\n    self.assertEqual(len(returned_hook), 1)\n    self.assertIsInstance(returned_hook[0], tf.train.SessionRunHook)\n    self.assertEqual(returned_hook[0].__class__.__name__.lower(),\n                     expected_hook_name)\n\n  def test_get_train_hooks_logging_tensor_hook(self):\n    self.validate_train_hook_name('LoggingTensorHook', 'loggingtensorhook')\n\n  def test_get_train_hooks_profiler_hook(self):\n    self.validate_train_hook_name('ProfilerHook', 'profilerhook')\n\n  def test_get_train_hooks_examples_per_second_hook(self):\n    self.validate_train_hook_name('ExamplesPerSecondHook',\n                                  'examplespersecondhook')\n\n  def test_get_logging_metric_hook(self):\n    test_hook_name = 'LoggingMetricHook'\n    self.validate_train_hook_name(test_hook_name, 'loggingmetrichook')\n\nif __name__ == '__main__':\n  tf.test.main()\n"
  },
  {
    "path": "official/utils/logs/hooks_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Tests for hooks.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport time\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.logs import hooks\nfrom official.utils.testing import mock_lib\n\ntf.logging.set_verbosity(tf.logging.DEBUG)\n\n\nclass ExamplesPerSecondHookTest(tf.test.TestCase):\n  \"\"\"Tests for the ExamplesPerSecondHook.\n\n  In this test, we explicitly run global_step tensor after train_op in order to\n  grab the correct global step value. This is to correct for discrepancies in\n  reported global step when running on GPUs. As in the after_run functions in\n  ExamplesPerSecondHook, the global step from run_results\n  (global_step = run_values.results) is not always correct and taken as the\n  stale global_step (which may be 1 off the correct value). The exact\n  global_step value should be from run_context\n  (global_step = run_context.session.run(global_step_tensor)\n  \"\"\"\n\n  def setUp(self):\n    \"\"\"Mock out logging calls to verify if correct info is being monitored.\"\"\"\n    self._logger = mock_lib.MockBenchmarkLogger()\n\n    self.graph = tf.Graph()\n    with self.graph.as_default():\n      tf.train.create_global_step()\n      self.train_op = tf.assign_add(tf.train.get_global_step(), 1)\n      self.global_step = tf.train.get_global_step()\n\n  def test_raise_in_both_secs_and_steps(self):\n    with self.assertRaises(ValueError):\n      hooks.ExamplesPerSecondHook(\n          batch_size=256,\n          every_n_steps=10,\n          every_n_secs=20,\n          metric_logger=self._logger)\n\n  def test_raise_in_none_secs_and_steps(self):\n    with self.assertRaises(ValueError):\n      hooks.ExamplesPerSecondHook(\n          batch_size=256,\n          every_n_steps=None,\n          every_n_secs=None,\n          metric_logger=self._logger)\n\n  def _validate_log_every_n_steps(self, every_n_steps, warm_steps):\n    hook = hooks.ExamplesPerSecondHook(\n        batch_size=256,\n        every_n_steps=every_n_steps,\n        warm_steps=warm_steps,\n        metric_logger=self._logger)\n\n    with tf.train.MonitoredSession(\n        tf.train.ChiefSessionCreator(), [hook]) as mon_sess:\n      for _ in range(every_n_steps):\n        # Explicitly run global_step after train_op to get the accurate\n        # global_step value\n        mon_sess.run(self.train_op)\n        mon_sess.run(self.global_step)\n        # Nothing should be in the list yet\n        self.assertFalse(self._logger.logged_metric)\n\n      mon_sess.run(self.train_op)\n      global_step_val = mon_sess.run(self.global_step)\n\n      if global_step_val > warm_steps:\n        self._assert_metrics()\n      else:\n        # Nothing should be in the list yet\n        self.assertFalse(self._logger.logged_metric)\n\n      # Add additional run to verify proper reset when called multiple times.\n      prev_log_len = len(self._logger.logged_metric)\n      mon_sess.run(self.train_op)\n      global_step_val = mon_sess.run(self.global_step)\n\n      if every_n_steps == 1 and global_step_val > warm_steps:\n        # Each time, we log two additional metrics. Did exactly 2 get added?\n        self.assertEqual(len(self._logger.logged_metric), prev_log_len + 2)\n      else:\n        # No change in the size of the metric list.\n        self.assertEqual(len(self._logger.logged_metric), prev_log_len)\n\n  def test_examples_per_sec_every_1_steps(self):\n    with self.graph.as_default():\n      self._validate_log_every_n_steps(1, 0)\n\n  def test_examples_per_sec_every_5_steps(self):\n    with self.graph.as_default():\n      self._validate_log_every_n_steps(5, 0)\n\n  def test_examples_per_sec_every_1_steps_with_warm_steps(self):\n    with self.graph.as_default():\n      self._validate_log_every_n_steps(1, 10)\n\n  def test_examples_per_sec_every_5_steps_with_warm_steps(self):\n    with self.graph.as_default():\n      self._validate_log_every_n_steps(5, 10)\n\n  def _validate_log_every_n_secs(self, every_n_secs):\n    hook = hooks.ExamplesPerSecondHook(\n        batch_size=256,\n        every_n_steps=None,\n        every_n_secs=every_n_secs,\n        metric_logger=self._logger)\n\n    with tf.train.MonitoredSession(\n        tf.train.ChiefSessionCreator(), [hook]) as mon_sess:\n      # Explicitly run global_step after train_op to get the accurate\n      # global_step value\n      mon_sess.run(self.train_op)\n      mon_sess.run(self.global_step)\n      # Nothing should be in the list yet\n      self.assertFalse(self._logger.logged_metric)\n      time.sleep(every_n_secs)\n\n      mon_sess.run(self.train_op)\n      mon_sess.run(self.global_step)\n      self._assert_metrics()\n\n  def test_examples_per_sec_every_1_secs(self):\n    with self.graph.as_default():\n      self._validate_log_every_n_secs(1)\n\n  def test_examples_per_sec_every_5_secs(self):\n    with self.graph.as_default():\n      self._validate_log_every_n_secs(5)\n\n  def _assert_metrics(self):\n    metrics = self._logger.logged_metric\n    self.assertEqual(metrics[-2][\"name\"], \"average_examples_per_sec\")\n    self.assertEqual(metrics[-1][\"name\"], \"current_examples_per_sec\")\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/utils/logs/logger.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Logging utilities for benchmark.\n\nFor collecting local environment metrics like CPU and memory, certain python\npackages need be installed. See README for details.\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport datetime\nimport json\nimport multiprocessing\nimport numbers\nimport os\nimport threading\nimport uuid\n\nfrom six.moves import _thread as thread\nfrom absl import flags\nimport tensorflow as tf\nfrom tensorflow.python.client import device_lib\n\nMETRIC_LOG_FILE_NAME = \"metric.log\"\nBENCHMARK_RUN_LOG_FILE_NAME = \"benchmark_run.log\"\n_DATE_TIME_FORMAT_PATTERN = \"%Y-%m-%dT%H:%M:%S.%fZ\"\n\nFLAGS = flags.FLAGS\n\n# Don't use it directly. Use get_benchmark_logger to access a logger.\n_benchmark_logger = None\n_logger_lock = threading.Lock()\n\n\ndef config_benchmark_logger(flag_obj=None):\n  \"\"\"Config the global benchmark logger.\"\"\"\n  _logger_lock.acquire()\n  try:\n    global _benchmark_logger\n    if not flag_obj:\n      flag_obj = FLAGS\n\n    if (not hasattr(flag_obj, \"benchmark_logger_type\") or\n        flag_obj.benchmark_logger_type == \"BaseBenchmarkLogger\"):\n      _benchmark_logger = BaseBenchmarkLogger()\n    elif flag_obj.benchmark_logger_type == \"BenchmarkFileLogger\":\n      _benchmark_logger = BenchmarkFileLogger(flag_obj.benchmark_log_dir)\n    elif flag_obj.benchmark_logger_type == \"BenchmarkBigQueryLogger\":\n      from official.benchmark import benchmark_uploader as bu  # pylint: disable=g-import-not-at-top\n      bq_uploader = bu.BigQueryUploader(gcp_project=flag_obj.gcp_project)\n      _benchmark_logger = BenchmarkBigQueryLogger(\n          bigquery_uploader=bq_uploader,\n          bigquery_data_set=flag_obj.bigquery_data_set,\n          bigquery_run_table=flag_obj.bigquery_run_table,\n          bigquery_metric_table=flag_obj.bigquery_metric_table,\n          run_id=str(uuid.uuid4()))\n    else:\n      raise ValueError(\"Unrecognized benchmark_logger_type: %s\"\n                       % flag_obj.benchmark_logger_type)\n\n  finally:\n    _logger_lock.release()\n  return _benchmark_logger\n\n\ndef get_benchmark_logger():\n  if not _benchmark_logger:\n    config_benchmark_logger()\n  return _benchmark_logger\n\n\nclass BaseBenchmarkLogger(object):\n  \"\"\"Class to log the benchmark information to STDOUT.\"\"\"\n\n  def log_evaluation_result(self, eval_results):\n    \"\"\"Log the evaluation result.\n\n    The evaluate result is a dictionary that contains metrics defined in\n    model_fn. It also contains a entry for global_step which contains the value\n    of the global step when evaluation was performed.\n\n    Args:\n      eval_results: dict, the result of evaluate.\n    \"\"\"\n    if not isinstance(eval_results, dict):\n      tf.logging.warning(\"eval_results should be dictionary for logging. \"\n                         \"Got %s\", type(eval_results))\n      return\n    global_step = eval_results[tf.GraphKeys.GLOBAL_STEP]\n    for key in sorted(eval_results):\n      if key != tf.GraphKeys.GLOBAL_STEP:\n        self.log_metric(key, eval_results[key], global_step=global_step)\n\n  def log_metric(self, name, value, unit=None, global_step=None, extras=None):\n    \"\"\"Log the benchmark metric information to local file.\n\n    Currently the logging is done in a synchronized way. This should be updated\n    to log asynchronously.\n\n    Args:\n      name: string, the name of the metric to log.\n      value: number, the value of the metric. The value will not be logged if it\n        is not a number type.\n      unit: string, the unit of the metric, E.g \"image per second\".\n      global_step: int, the global_step when the metric is logged.\n      extras: map of string:string, the extra information about the metric.\n    \"\"\"\n    metric = _process_metric_to_json(name, value, unit, global_step, extras)\n    if metric:\n      tf.logging.info(\"Benchmark metric: %s\", metric)\n\n  def log_run_info(self, model_name, dataset_name, run_params):\n    tf.logging.info(\"Benchmark run: %s\",\n                    _gather_run_info(model_name, dataset_name, run_params))\n\n\nclass BenchmarkFileLogger(BaseBenchmarkLogger):\n  \"\"\"Class to log the benchmark information to local disk.\"\"\"\n\n  def __init__(self, logging_dir):\n    super(BenchmarkFileLogger, self).__init__()\n    self._logging_dir = logging_dir\n    if not tf.gfile.IsDirectory(self._logging_dir):\n      tf.gfile.MakeDirs(self._logging_dir)\n\n  def log_metric(self, name, value, unit=None, global_step=None, extras=None):\n    \"\"\"Log the benchmark metric information to local file.\n\n    Currently the logging is done in a synchronized way. This should be updated\n    to log asynchronously.\n\n    Args:\n      name: string, the name of the metric to log.\n      value: number, the value of the metric. The value will not be logged if it\n        is not a number type.\n      unit: string, the unit of the metric, E.g \"image per second\".\n      global_step: int, the global_step when the metric is logged.\n      extras: map of string:string, the extra information about the metric.\n    \"\"\"\n    metric = _process_metric_to_json(name, value, unit, global_step, extras)\n    if metric:\n      with tf.gfile.GFile(\n          os.path.join(self._logging_dir, METRIC_LOG_FILE_NAME), \"a\") as f:\n        try:\n          json.dump(metric, f)\n          f.write(\"\\n\")\n        except (TypeError, ValueError) as e:\n          tf.logging.warning(\"Failed to dump metric to log file: \"\n                             \"name %s, value %s, error %s\", name, value, e)\n\n  def log_run_info(self, model_name, dataset_name, run_params):\n    \"\"\"Collect most of the TF runtime information for the local env.\n\n    The schema of the run info follows official/benchmark/datastore/schema.\n\n    Args:\n      model_name: string, the name of the model.\n      dataset_name: string, the name of dataset for training and evaluation.\n      run_params: dict, the dictionary of parameters for the run, it could\n        include hyperparameters or other params that are important for the run.\n    \"\"\"\n    run_info = _gather_run_info(model_name, dataset_name, run_params)\n\n    with tf.gfile.GFile(os.path.join(\n        self._logging_dir, BENCHMARK_RUN_LOG_FILE_NAME), \"w\") as f:\n      try:\n        json.dump(run_info, f)\n        f.write(\"\\n\")\n      except (TypeError, ValueError) as e:\n        tf.logging.warning(\"Failed to dump benchmark run info to log file: %s\",\n                           e)\n\n\nclass BenchmarkBigQueryLogger(BaseBenchmarkLogger):\n  \"\"\"Class to log the benchmark information to BigQuery data store.\"\"\"\n\n  def __init__(self,\n               bigquery_uploader,\n               bigquery_data_set,\n               bigquery_run_table,\n               bigquery_metric_table,\n               run_id):\n    super(BenchmarkBigQueryLogger, self).__init__()\n    self._bigquery_uploader = bigquery_uploader\n    self._bigquery_data_set = bigquery_data_set\n    self._bigquery_run_table = bigquery_run_table\n    self._bigquery_metric_table = bigquery_metric_table\n    self._run_id = run_id\n\n  def log_metric(self, name, value, unit=None, global_step=None, extras=None):\n    \"\"\"Log the benchmark metric information to bigquery.\n\n    Args:\n      name: string, the name of the metric to log.\n      value: number, the value of the metric. The value will not be logged if it\n        is not a number type.\n      unit: string, the unit of the metric, E.g \"image per second\".\n      global_step: int, the global_step when the metric is logged.\n      extras: map of string:string, the extra information about the metric.\n    \"\"\"\n    metric = _process_metric_to_json(name, value, unit, global_step, extras)\n    if metric:\n      # Starting new thread for bigquery upload in case it might take long time\n      # and impact the benchmark and performance measurement. Starting a new\n      # thread might have potential performance impact for model that run on\n      # CPU.\n      thread.start_new_thread(\n          self._bigquery_uploader.upload_benchmark_metric_json,\n          (self._bigquery_data_set,\n           self._bigquery_metric_table,\n           self._run_id,\n           [metric]))\n\n  def log_run_info(self, model_name, dataset_name, run_params):\n    \"\"\"Collect most of the TF runtime information for the local env.\n\n    The schema of the run info follows official/benchmark/datastore/schema.\n\n    Args:\n      model_name: string, the name of the model.\n      dataset_name: string, the name of dataset for training and evaluation.\n      run_params: dict, the dictionary of parameters for the run, it could\n        include hyperparameters or other params that are important for the run.\n    \"\"\"\n    run_info = _gather_run_info(model_name, dataset_name, run_params)\n    # Starting new thread for bigquery upload in case it might take long time\n    # and impact the benchmark and performance measurement. Starting a new\n    # thread might have potential performance impact for model that run on CPU.\n    thread.start_new_thread(\n        self._bigquery_uploader.upload_benchmark_run_json,\n        (self._bigquery_data_set,\n         self._bigquery_run_table,\n         self._run_id,\n         run_info))\n\n\ndef _gather_run_info(model_name, dataset_name, run_params):\n  \"\"\"Collect the benchmark run information for the local environment.\"\"\"\n  run_info = {\n      \"model_name\": model_name,\n      \"dataset\": {\"name\": dataset_name},\n      \"machine_config\": {},\n      \"run_date\": datetime.datetime.utcnow().strftime(\n          _DATE_TIME_FORMAT_PATTERN)}\n  _collect_tensorflow_info(run_info)\n  _collect_tensorflow_environment_variables(run_info)\n  _collect_run_params(run_info, run_params)\n  _collect_cpu_info(run_info)\n  _collect_gpu_info(run_info)\n  _collect_memory_info(run_info)\n  return run_info\n\n\ndef _process_metric_to_json(\n    name, value, unit=None, global_step=None, extras=None):\n  \"\"\"Validate the metric data and generate JSON for insert.\"\"\"\n  if not isinstance(value, numbers.Number):\n    tf.logging.warning(\n        \"Metric value to log should be a number. Got %s\", type(value))\n    return None\n\n  extras = _convert_to_json_dict(extras)\n  return {\n      \"name\": name,\n      \"value\": float(value),\n      \"unit\": unit,\n      \"global_step\": global_step,\n      \"timestamp\": datetime.datetime.utcnow().strftime(\n          _DATE_TIME_FORMAT_PATTERN),\n      \"extras\": extras}\n\n\ndef _collect_tensorflow_info(run_info):\n  run_info[\"tensorflow_version\"] = {\n      \"version\": tf.VERSION, \"git_hash\": tf.GIT_VERSION}\n\n\ndef _collect_run_params(run_info, run_params):\n  \"\"\"Log the parameter information for the benchmark run.\"\"\"\n  def process_param(name, value):\n    type_check = {\n        str: {\"name\": name, \"string_value\": value},\n        int: {\"name\": name, \"long_value\": value},\n        bool: {\"name\": name, \"bool_value\": str(value)},\n        float: {\"name\": name, \"float_value\": value},\n    }\n    return type_check.get(type(value),\n                          {\"name\": name, \"string_value\": str(value)})\n  if run_params:\n    run_info[\"run_parameters\"] = [\n        process_param(k, v) for k, v in sorted(run_params.items())]\n\n\ndef _collect_tensorflow_environment_variables(run_info):\n  run_info[\"tensorflow_environment_variables\"] = [\n      {\"name\": k, \"value\": v}\n      for k, v in sorted(os.environ.items()) if k.startswith(\"TF_\")]\n\n\n# The following code is mirrored from tensorflow/tools/test/system_info_lib\n# which is not exposed for import.\ndef _collect_cpu_info(run_info):\n  \"\"\"Collect the CPU information for the local environment.\"\"\"\n  cpu_info = {}\n\n  cpu_info[\"num_cores\"] = multiprocessing.cpu_count()\n\n  try:\n    # Note: cpuinfo is not installed in the TensorFlow OSS tree.\n    # It is installable via pip.\n    import cpuinfo    # pylint: disable=g-import-not-at-top\n\n    info = cpuinfo.get_cpu_info()\n    cpu_info[\"cpu_info\"] = info[\"brand\"]\n    cpu_info[\"mhz_per_cpu\"] = info[\"hz_advertised_raw\"][0] / 1.0e6\n\n    run_info[\"machine_config\"][\"cpu_info\"] = cpu_info\n  except ImportError:\n    tf.logging.warn(\"'cpuinfo' not imported. CPU info will not be logged.\")\n\n\ndef _collect_gpu_info(run_info):\n  \"\"\"Collect local GPU information by TF device library.\"\"\"\n  gpu_info = {}\n  local_device_protos = device_lib.list_local_devices()\n\n  gpu_info[\"count\"] = len([d for d in local_device_protos\n                           if d.device_type == \"GPU\"])\n  # The device description usually is a JSON string, which contains the GPU\n  # model info, eg:\n  # \"device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0\"\n  for d in local_device_protos:\n    if d.device_type == \"GPU\":\n      gpu_info[\"model\"] = _parse_gpu_model(d.physical_device_desc)\n      # Assume all the GPU connected are same model\n      break\n  run_info[\"machine_config\"][\"gpu_info\"] = gpu_info\n\n\ndef _collect_memory_info(run_info):\n  try:\n    # Note: psutil is not installed in the TensorFlow OSS tree.\n    # It is installable via pip.\n    import psutil   # pylint: disable=g-import-not-at-top\n    vmem = psutil.virtual_memory()\n    run_info[\"machine_config\"][\"memory_total\"] = vmem.total\n    run_info[\"machine_config\"][\"memory_available\"] = vmem.available\n  except ImportError:\n    tf.logging.warn(\"'psutil' not imported. Memory info will not be logged.\")\n\n\ndef _parse_gpu_model(physical_device_desc):\n  # Assume all the GPU connected are same model\n  for kv in physical_device_desc.split(\",\"):\n    k, _, v = kv.partition(\":\")\n    if k.strip() == \"name\":\n      return v.strip()\n  return None\n\n\ndef _convert_to_json_dict(input_dict):\n  if input_dict:\n    return [{\"name\": k, \"value\": v} for k, v in sorted(input_dict.items())]\n  else:\n    return []\n"
  },
  {
    "path": "official/utils/logs/logger_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Tests for benchmark logger.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport json\nimport os\nimport tempfile\nimport time\nimport unittest\n\nimport mock\nfrom absl.testing import flagsaver\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\ntry:\n  from google.cloud import bigquery\nexcept ImportError:\n  bigquery = None\n\nfrom official.utils.flags import core as flags_core\nfrom official.utils.logs import logger\n\n\nclass BenchmarkLoggerTest(tf.test.TestCase):\n\n  @classmethod\n  def setUpClass(cls):  # pylint: disable=invalid-name\n    super(BenchmarkLoggerTest, cls).setUpClass()\n    flags_core.define_benchmark()\n\n  def test_get_default_benchmark_logger(self):\n    with flagsaver.flagsaver(benchmark_logger_type='foo'):\n      self.assertIsInstance(logger.get_benchmark_logger(),\n                            logger.BaseBenchmarkLogger)\n\n  def test_config_base_benchmark_logger(self):\n    with flagsaver.flagsaver(benchmark_logger_type='BaseBenchmarkLogger'):\n      logger.config_benchmark_logger()\n      self.assertIsInstance(logger.get_benchmark_logger(),\n                            logger.BaseBenchmarkLogger)\n\n  def test_config_benchmark_file_logger(self):\n    # Set the benchmark_log_dir first since the benchmark_logger_type will need\n    # the value to be set when it does the validation.\n    with flagsaver.flagsaver(benchmark_log_dir='/tmp'):\n      with flagsaver.flagsaver(benchmark_logger_type='BenchmarkFileLogger'):\n        logger.config_benchmark_logger()\n        self.assertIsInstance(logger.get_benchmark_logger(),\n                              logger.BenchmarkFileLogger)\n\n  @unittest.skipIf(bigquery is None, 'Bigquery dependency is not installed.')\n  def test_config_benchmark_bigquery_logger(self):\n    with flagsaver.flagsaver(benchmark_logger_type='BenchmarkBigQueryLogger'):\n      logger.config_benchmark_logger()\n      self.assertIsInstance(logger.get_benchmark_logger(),\n                            logger.BenchmarkBigQueryLogger)\n\n\nclass BaseBenchmarkLoggerTest(tf.test.TestCase):\n\n  def setUp(self):\n    super(BaseBenchmarkLoggerTest, self).setUp()\n    self._actual_log = tf.logging.info\n    self.logged_message = None\n\n    def mock_log(*args, **kwargs):\n      self.logged_message = args\n      self._actual_log(*args, **kwargs)\n\n    tf.logging.info = mock_log\n\n  def tearDown(self):\n    super(BaseBenchmarkLoggerTest, self).tearDown()\n    tf.logging.info = self._actual_log\n\n  def test_log_metric(self):\n    log = logger.BaseBenchmarkLogger()\n    log.log_metric(\"accuracy\", 0.999, global_step=1e4, extras={\"name\": \"value\"})\n\n    expected_log_prefix = \"Benchmark metric:\"\n    self.assertRegexpMatches(str(self.logged_message), expected_log_prefix)\n\n\nclass BenchmarkFileLoggerTest(tf.test.TestCase):\n\n  def setUp(self):\n    super(BenchmarkFileLoggerTest, self).setUp()\n    # Avoid pulling extra env vars from test environment which affects the test\n    # result, eg. Kokoro test has a TF_PKG env which affect the test case\n    # test_collect_tensorflow_environment_variables()\n    self.original_environ = dict(os.environ)\n    os.environ.clear()\n\n  def tearDown(self):\n    super(BenchmarkFileLoggerTest, self).tearDown()\n    tf.gfile.DeleteRecursively(self.get_temp_dir())\n    os.environ.clear()\n    os.environ.update(self.original_environ)\n\n  def test_create_logging_dir(self):\n    non_exist_temp_dir = os.path.join(self.get_temp_dir(), \"unknown_dir\")\n    self.assertFalse(tf.gfile.IsDirectory(non_exist_temp_dir))\n\n    logger.BenchmarkFileLogger(non_exist_temp_dir)\n    self.assertTrue(tf.gfile.IsDirectory(non_exist_temp_dir))\n\n  def test_log_metric(self):\n    log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    log = logger.BenchmarkFileLogger(log_dir)\n    log.log_metric(\"accuracy\", 0.999, global_step=1e4, extras={\"name\": \"value\"})\n\n    metric_log = os.path.join(log_dir, \"metric.log\")\n    self.assertTrue(tf.gfile.Exists(metric_log))\n    with tf.gfile.GFile(metric_log) as f:\n      metric = json.loads(f.readline())\n      self.assertEqual(metric[\"name\"], \"accuracy\")\n      self.assertEqual(metric[\"value\"], 0.999)\n      self.assertEqual(metric[\"unit\"], None)\n      self.assertEqual(metric[\"global_step\"], 1e4)\n      self.assertEqual(metric[\"extras\"], [{\"name\": \"name\", \"value\": \"value\"}])\n\n  def test_log_multiple_metrics(self):\n    log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    log = logger.BenchmarkFileLogger(log_dir)\n    log.log_metric(\"accuracy\", 0.999, global_step=1e4, extras={\"name\": \"value\"})\n    log.log_metric(\"loss\", 0.02, global_step=1e4)\n\n    metric_log = os.path.join(log_dir, \"metric.log\")\n    self.assertTrue(tf.gfile.Exists(metric_log))\n    with tf.gfile.GFile(metric_log) as f:\n      accuracy = json.loads(f.readline())\n      self.assertEqual(accuracy[\"name\"], \"accuracy\")\n      self.assertEqual(accuracy[\"value\"], 0.999)\n      self.assertEqual(accuracy[\"unit\"], None)\n      self.assertEqual(accuracy[\"global_step\"], 1e4)\n      self.assertEqual(accuracy[\"extras\"], [{\"name\": \"name\", \"value\": \"value\"}])\n\n      loss = json.loads(f.readline())\n      self.assertEqual(loss[\"name\"], \"loss\")\n      self.assertEqual(loss[\"value\"], 0.02)\n      self.assertEqual(loss[\"unit\"], None)\n      self.assertEqual(loss[\"global_step\"], 1e4)\n      self.assertEqual(loss[\"extras\"], [])\n\n  def test_log_non_number_value(self):\n    log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    log = logger.BenchmarkFileLogger(log_dir)\n    const = tf.constant(1)\n    log.log_metric(\"accuracy\", const)\n\n    metric_log = os.path.join(log_dir, \"metric.log\")\n    self.assertFalse(tf.gfile.Exists(metric_log))\n\n  def test_log_evaluation_result(self):\n    eval_result = {\"loss\": 0.46237424,\n                   \"global_step\": 207082,\n                   \"accuracy\": 0.9285}\n    log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    log = logger.BenchmarkFileLogger(log_dir)\n    log.log_evaluation_result(eval_result)\n\n    metric_log = os.path.join(log_dir, \"metric.log\")\n    self.assertTrue(tf.gfile.Exists(metric_log))\n    with tf.gfile.GFile(metric_log) as f:\n      accuracy = json.loads(f.readline())\n      self.assertEqual(accuracy[\"name\"], \"accuracy\")\n      self.assertEqual(accuracy[\"value\"], 0.9285)\n      self.assertEqual(accuracy[\"unit\"], None)\n      self.assertEqual(accuracy[\"global_step\"], 207082)\n\n      loss = json.loads(f.readline())\n      self.assertEqual(loss[\"name\"], \"loss\")\n      self.assertEqual(loss[\"value\"], 0.46237424)\n      self.assertEqual(loss[\"unit\"], None)\n      self.assertEqual(loss[\"global_step\"], 207082)\n\n  def test_log_evaluation_result_with_invalid_type(self):\n    eval_result = \"{'loss': 0.46237424, 'global_step': 207082}\"\n    log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    log = logger.BenchmarkFileLogger(log_dir)\n    log.log_evaluation_result(eval_result)\n\n    metric_log = os.path.join(log_dir, \"metric.log\")\n    self.assertFalse(tf.gfile.Exists(metric_log))\n\n  def test_collect_tensorflow_info(self):\n    run_info = {}\n    logger._collect_tensorflow_info(run_info)\n    self.assertNotEqual(run_info[\"tensorflow_version\"], {})\n    self.assertEqual(run_info[\"tensorflow_version\"][\"version\"], tf.VERSION)\n    self.assertEqual(run_info[\"tensorflow_version\"][\"git_hash\"], tf.GIT_VERSION)\n\n  def test_collect_run_params(self):\n    run_info = {}\n    run_parameters = {\n        \"batch_size\": 32,\n        \"synthetic_data\": True,\n        \"train_epochs\": 100.00,\n        \"dtype\": \"fp16\",\n        \"resnet_size\": 50,\n        \"random_tensor\": tf.constant(2.0)\n    }\n    logger._collect_run_params(run_info, run_parameters)\n    self.assertEqual(len(run_info[\"run_parameters\"]), 6)\n    self.assertEqual(run_info[\"run_parameters\"][0],\n                     {\"name\": \"batch_size\", \"long_value\": 32})\n    self.assertEqual(run_info[\"run_parameters\"][1],\n                     {\"name\": \"dtype\", \"string_value\": \"fp16\"})\n    self.assertEqual(run_info[\"run_parameters\"][2],\n                     {\"name\": \"random_tensor\", \"string_value\":\n                          \"Tensor(\\\"Const:0\\\", shape=(), dtype=float32)\"})\n    self.assertEqual(run_info[\"run_parameters\"][3],\n                     {\"name\": \"resnet_size\", \"long_value\": 50})\n    self.assertEqual(run_info[\"run_parameters\"][4],\n                     {\"name\": \"synthetic_data\", \"bool_value\": \"True\"})\n    self.assertEqual(run_info[\"run_parameters\"][5],\n                     {\"name\": \"train_epochs\", \"float_value\": 100.00})\n\n  def test_collect_tensorflow_environment_variables(self):\n    os.environ[\"TF_ENABLE_WINOGRAD_NONFUSED\"] = \"1\"\n    os.environ[\"TF_OTHER\"] = \"2\"\n    os.environ[\"OTHER\"] = \"3\"\n\n    run_info = {}\n    logger._collect_tensorflow_environment_variables(run_info)\n    self.assertIsNotNone(run_info[\"tensorflow_environment_variables\"])\n    expected_tf_envs = [\n        {\"name\": \"TF_ENABLE_WINOGRAD_NONFUSED\", \"value\": \"1\"},\n        {\"name\": \"TF_OTHER\", \"value\": \"2\"},\n    ]\n    self.assertEqual(run_info[\"tensorflow_environment_variables\"],\n                     expected_tf_envs)\n\n  @unittest.skipUnless(tf.test.is_built_with_cuda(), \"requires GPU\")\n  def test_collect_gpu_info(self):\n    run_info = {\"machine_config\": {}}\n    logger._collect_gpu_info(run_info)\n    self.assertNotEqual(run_info[\"machine_config\"][\"gpu_info\"], {})\n\n  def test_collect_memory_info(self):\n    run_info = {\"machine_config\": {}}\n    logger._collect_memory_info(run_info)\n    self.assertIsNotNone(run_info[\"machine_config\"][\"memory_total\"])\n    self.assertIsNotNone(run_info[\"machine_config\"][\"memory_available\"])\n\n\n@unittest.skipIf(bigquery is None, 'Bigquery dependency is not installed.')\nclass BenchmarkBigQueryLoggerTest(tf.test.TestCase):\n\n  def setUp(self):\n    super(BenchmarkBigQueryLoggerTest, self).setUp()\n    # Avoid pulling extra env vars from test environment which affects the test\n    # result, eg. Kokoro test has a TF_PKG env which affect the test case\n    # test_collect_tensorflow_environment_variables()\n    self.original_environ = dict(os.environ)\n    os.environ.clear()\n\n    self.mock_bq_uploader = mock.MagicMock()\n    self.logger = logger.BenchmarkBigQueryLogger(\n        self.mock_bq_uploader, \"dataset\", \"run_table\", \"metric_table\",\n        \"run_id\")\n\n  def tearDown(self):\n    super(BenchmarkBigQueryLoggerTest, self).tearDown()\n    tf.gfile.DeleteRecursively(self.get_temp_dir())\n    os.environ.clear()\n    os.environ.update(self.original_environ)\n\n  def test_log_metric(self):\n    self.logger.log_metric(\n        \"accuracy\", 0.999, global_step=1e4, extras={\"name\": \"value\"})\n    expected_metric_json = [{\n        \"name\": \"accuracy\",\n        \"value\": 0.999,\n        \"unit\": None,\n        \"global_step\": 1e4,\n        \"timestamp\": mock.ANY,\n        \"extras\": [{\"name\": \"name\", \"value\": \"value\"}]\n    }]\n    # log_metric will call upload_benchmark_metric_json in a separate thread.\n    # Give it some grace period for the new thread before assert.\n    time.sleep(1)\n    self.mock_bq_uploader.upload_benchmark_metric_json.assert_called_once_with(\n        \"dataset\", \"metric_table\", \"run_id\", expected_metric_json)\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/utils/logs/metric_hook.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Session hook for logging benchmark metric.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\n\nclass LoggingMetricHook(tf.train.LoggingTensorHook):\n  \"\"\"Hook to log benchmark metric information.\n\n  This hook is very similar as tf.train.LoggingTensorHook, which logs given\n  tensors every N local steps, every N seconds, or at the end. The metric\n  information will be logged to given log_dir or via metric_logger in JSON\n  format, which can be consumed by data analysis pipeline later.\n\n  Note that if `at_end` is True, `tensors` should not include any tensor\n  whose evaluation produces a side effect such as consuming additional inputs.\n  \"\"\"\n\n  def __init__(self, tensors, metric_logger=None,\n               every_n_iter=None, every_n_secs=None, at_end=False):\n    \"\"\"Initializer for LoggingMetricHook.\n\n    Args:\n      tensors: `dict` that maps string-valued tags to tensors/tensor names,\n          or `iterable` of tensors/tensor names.\n      metric_logger: instance of `BenchmarkLogger`, the benchmark logger that\n          hook should use to write the log.\n      every_n_iter: `int`, print the values of `tensors` once every N local\n          steps taken on the current worker.\n      every_n_secs: `int` or `float`, print the values of `tensors` once every N\n          seconds. Exactly one of `every_n_iter` and `every_n_secs` should be\n          provided.\n      at_end: `bool` specifying whether to print the values of `tensors` at the\n          end of the run.\n\n    Raises:\n      ValueError:\n        1. `every_n_iter` is non-positive, or\n        2. Exactly one of every_n_iter and every_n_secs should be provided.\n        3. Exactly one of log_dir and metric_logger should be provided.\n    \"\"\"\n    super(LoggingMetricHook, self).__init__(\n        tensors=tensors,\n        every_n_iter=every_n_iter,\n        every_n_secs=every_n_secs,\n        at_end=at_end)\n\n    if metric_logger is None:\n      raise ValueError(\"metric_logger should be provided.\")\n    self._logger = metric_logger\n\n  def begin(self):\n    super(LoggingMetricHook, self).begin()\n    self._global_step_tensor = tf.train.get_global_step()\n    if self._global_step_tensor is None:\n      raise RuntimeError(\n          \"Global step should be created to use LoggingMetricHook.\")\n    if self._global_step_tensor.name not in self._current_tensors:\n      self._current_tensors[self._global_step_tensor.name] = (\n          self._global_step_tensor)\n\n  def after_run(self, unused_run_context, run_values):\n    # should_trigger is a internal state that populated at before_run, and it is\n    # using self_timer to determine whether it should trigger.\n    if self._should_trigger:\n      self._log_metric(run_values.results)\n\n    self._iter_count += 1\n\n  def end(self, session):\n    if self._log_at_end:\n      values = session.run(self._current_tensors)\n      self._log_metric(values)\n\n  def _log_metric(self, tensor_values):\n    self._timer.update_last_triggered_step(self._iter_count)\n    global_step = tensor_values[self._global_step_tensor.name]\n    # self._tag_order is populated during the init of LoggingTensorHook\n    for tag in self._tag_order:\n      self._logger.log_metric(tag, tensor_values[tag], global_step=global_step)\n"
  },
  {
    "path": "official/utils/logs/metric_hook_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Tests for metric_hook.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tempfile\nimport time\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\nfrom tensorflow.python.training import monitored_session  # pylint: disable=g-bad-import-order\n\nfrom official.utils.logs import metric_hook\nfrom official.utils.testing import mock_lib\n\n\nclass LoggingMetricHookTest(tf.test.TestCase):\n  \"\"\"Tests for LoggingMetricHook.\"\"\"\n\n  def setUp(self):\n    super(LoggingMetricHookTest, self).setUp()\n\n    self._log_dir = tempfile.mkdtemp(dir=self.get_temp_dir())\n    self._logger = mock_lib.MockBenchmarkLogger()\n\n  def tearDown(self):\n    super(LoggingMetricHookTest, self).tearDown()\n    tf.gfile.DeleteRecursively(self.get_temp_dir())\n\n  def test_illegal_args(self):\n    with self.assertRaisesRegexp(ValueError, \"nvalid every_n_iter\"):\n      metric_hook.LoggingMetricHook(tensors=[\"t\"], every_n_iter=0)\n    with self.assertRaisesRegexp(ValueError, \"nvalid every_n_iter\"):\n      metric_hook.LoggingMetricHook(tensors=[\"t\"], every_n_iter=-10)\n    with self.assertRaisesRegexp(ValueError, \"xactly one of\"):\n      metric_hook.LoggingMetricHook(\n          tensors=[\"t\"], every_n_iter=5, every_n_secs=5)\n    with self.assertRaisesRegexp(ValueError, \"xactly one of\"):\n      metric_hook.LoggingMetricHook(tensors=[\"t\"])\n    with self.assertRaisesRegexp(ValueError, \"metric_logger\"):\n      metric_hook.LoggingMetricHook(tensors=[\"t\"], every_n_iter=5)\n\n  def test_print_at_end_only(self):\n    with tf.Graph().as_default(), tf.Session() as sess:\n      tf.train.get_or_create_global_step()\n      t = tf.constant(42.0, name=\"foo\")\n      train_op = tf.constant(3)\n      hook = metric_hook.LoggingMetricHook(\n          tensors=[t.name], at_end=True, metric_logger=self._logger)\n      hook.begin()\n      mon_sess = monitored_session._HookedSession(sess, [hook])  # pylint: disable=protected-access\n      sess.run(tf.global_variables_initializer())\n\n      for _ in range(3):\n        mon_sess.run(train_op)\n        self.assertEqual(self._logger.logged_metric, [])\n\n      hook.end(sess)\n      self.assertEqual(len(self._logger.logged_metric), 1)\n      metric = self._logger.logged_metric[0]\n      self.assertRegexpMatches(metric[\"name\"], \"foo\")\n      self.assertEqual(metric[\"value\"], 42.0)\n      self.assertEqual(metric[\"unit\"], None)\n      self.assertEqual(metric[\"global_step\"], 0)\n\n  def test_global_step_not_found(self):\n    with tf.Graph().as_default():\n      t = tf.constant(42.0, name=\"foo\")\n      hook = metric_hook.LoggingMetricHook(\n          tensors=[t.name], at_end=True, metric_logger=self._logger)\n\n      with self.assertRaisesRegexp(\n          RuntimeError, \"should be created to use LoggingMetricHook.\"):\n        hook.begin()\n\n  def test_log_tensors(self):\n    with tf.Graph().as_default(), tf.Session() as sess:\n      tf.train.get_or_create_global_step()\n      t1 = tf.constant(42.0, name=\"foo\")\n      t2 = tf.constant(43.0, name=\"bar\")\n      train_op = tf.constant(3)\n      hook = metric_hook.LoggingMetricHook(\n          tensors=[t1, t2], at_end=True, metric_logger=self._logger)\n      hook.begin()\n      mon_sess = monitored_session._HookedSession(sess, [hook])  # pylint: disable=protected-access\n      sess.run(tf.global_variables_initializer())\n\n      for _ in range(3):\n        mon_sess.run(train_op)\n        self.assertEqual(self._logger.logged_metric, [])\n\n      hook.end(sess)\n      self.assertEqual(len(self._logger.logged_metric), 2)\n      metric1 = self._logger.logged_metric[0]\n      self.assertRegexpMatches(str(metric1[\"name\"]), \"foo\")\n      self.assertEqual(metric1[\"value\"], 42.0)\n      self.assertEqual(metric1[\"unit\"], None)\n      self.assertEqual(metric1[\"global_step\"], 0)\n\n      metric2 = self._logger.logged_metric[1]\n      self.assertRegexpMatches(str(metric2[\"name\"]), \"bar\")\n      self.assertEqual(metric2[\"value\"], 43.0)\n      self.assertEqual(metric2[\"unit\"], None)\n      self.assertEqual(metric2[\"global_step\"], 0)\n\n  def _validate_print_every_n_steps(self, sess, at_end):\n    t = tf.constant(42.0, name=\"foo\")\n\n    train_op = tf.constant(3)\n    hook = metric_hook.LoggingMetricHook(\n        tensors=[t.name], every_n_iter=10, at_end=at_end,\n        metric_logger=self._logger)\n    hook.begin()\n    mon_sess = monitored_session._HookedSession(sess, [hook])  # pylint: disable=protected-access\n    sess.run(tf.global_variables_initializer())\n    mon_sess.run(train_op)\n    self.assertRegexpMatches(str(self._logger.logged_metric), t.name)\n    for _ in range(3):\n      self._logger.logged_metric = []\n      for _ in range(9):\n        mon_sess.run(train_op)\n        # assertNotRegexpMatches is not supported by python 3.1 and later\n        self.assertEqual(str(self._logger.logged_metric).find(t.name), -1)\n      mon_sess.run(train_op)\n      self.assertRegexpMatches(str(self._logger.logged_metric), t.name)\n\n    # Add additional run to verify proper reset when called multiple times.\n    self._logger.logged_metric = []\n    mon_sess.run(train_op)\n    # assertNotRegexpMatches is not supported by python 3.1 and later\n    self.assertEqual(str(self._logger.logged_metric).find(t.name), -1)\n\n    self._logger.logged_metric = []\n    hook.end(sess)\n    if at_end:\n      self.assertRegexpMatches(str(self._logger.logged_metric), t.name)\n    else:\n      # assertNotRegexpMatches is not supported by python 3.1 and later\n      self.assertEqual(str(self._logger.logged_metric).find(t.name), -1)\n\n  def test_print_every_n_steps(self):\n    with tf.Graph().as_default(), tf.Session() as sess:\n      tf.train.get_or_create_global_step()\n      self._validate_print_every_n_steps(sess, at_end=False)\n      # Verify proper reset.\n      self._validate_print_every_n_steps(sess, at_end=False)\n\n  def test_print_every_n_steps_and_end(self):\n    with tf.Graph().as_default(), tf.Session() as sess:\n      tf.train.get_or_create_global_step()\n      self._validate_print_every_n_steps(sess, at_end=True)\n      # Verify proper reset.\n      self._validate_print_every_n_steps(sess, at_end=True)\n\n  def _validate_print_every_n_secs(self, sess, at_end):\n    t = tf.constant(42.0, name=\"foo\")\n    train_op = tf.constant(3)\n\n    hook = metric_hook.LoggingMetricHook(\n        tensors=[t.name], every_n_secs=1.0, at_end=at_end,\n        metric_logger=self._logger)\n    hook.begin()\n    mon_sess = monitored_session._HookedSession(sess, [hook])  # pylint: disable=protected-access\n    sess.run(tf.global_variables_initializer())\n\n    mon_sess.run(train_op)\n    self.assertRegexpMatches(str(self._logger.logged_metric), t.name)\n\n    # assertNotRegexpMatches is not supported by python 3.1 and later\n    self._logger.logged_metric = []\n    mon_sess.run(train_op)\n    self.assertEqual(str(self._logger.logged_metric).find(t.name), -1)\n    time.sleep(1.0)\n\n    self._logger.logged_metric = []\n    mon_sess.run(train_op)\n    self.assertRegexpMatches(str(self._logger.logged_metric), t.name)\n\n    self._logger.logged_metric = []\n    hook.end(sess)\n    if at_end:\n      self.assertRegexpMatches(str(self._logger.logged_metric), t.name)\n    else:\n      # assertNotRegexpMatches is not supported by python 3.1 and later\n      self.assertEqual(str(self._logger.logged_metric).find(t.name), -1)\n\n  def test_print_every_n_secs(self):\n    with tf.Graph().as_default(), tf.Session() as sess:\n      tf.train.get_or_create_global_step()\n      self._validate_print_every_n_secs(sess, at_end=False)\n      # Verify proper reset.\n      self._validate_print_every_n_secs(sess, at_end=False)\n\n  def test_print_every_n_secs_and_end(self):\n    with tf.Graph().as_default(), tf.Session() as sess:\n      tf.train.get_or_create_global_step()\n      self._validate_print_every_n_secs(sess, at_end=True)\n      # Verify proper reset.\n      self._validate_print_every_n_secs(sess, at_end=True)\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/utils/misc/__init__.py",
    "content": ""
  },
  {
    "path": "official/utils/misc/model_helpers.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Miscellaneous functions that can be called by models.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport numbers\n\nimport tensorflow as tf\n\n\ndef past_stop_threshold(stop_threshold, eval_metric):\n  \"\"\"Return a boolean representing whether a model should be stopped.\n\n  Args:\n    stop_threshold: float, the threshold above which a model should stop\n      training.\n    eval_metric: float, the current value of the relevant metric to check.\n\n  Returns:\n    True if training should stop, False otherwise.\n\n  Raises:\n    ValueError: if either stop_threshold or eval_metric is not a number\n  \"\"\"\n  if stop_threshold is None:\n    return False\n\n  if not isinstance(stop_threshold, numbers.Number):\n    raise ValueError(\"Threshold for checking stop conditions must be a number.\")\n  if not isinstance(eval_metric, numbers.Number):\n    raise ValueError(\"Eval metric being checked against stop conditions \"\n                     \"must be a number.\")\n\n  if eval_metric >= stop_threshold:\n    tf.logging.info(\n        \"Stop threshold of {} was passed with metric value {}.\".format(\n            stop_threshold, eval_metric))\n    return True\n\n  return False\n"
  },
  {
    "path": "official/utils/misc/model_helpers_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\" Tests for Model Helper functions.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.misc import model_helpers\n\n\nclass PastStopThresholdTest(tf.test.TestCase):\n  \"\"\"Tests for past_stop_threshold.\"\"\"\n\n  def test_past_stop_threshold(self):\n    \"\"\"Tests for normal operating conditions.\"\"\"\n    self.assertTrue(model_helpers.past_stop_threshold(0.54, 1))\n    self.assertTrue(model_helpers.past_stop_threshold(54, 100))\n    self.assertFalse(model_helpers.past_stop_threshold(0.54, 0.1))\n    self.assertFalse(model_helpers.past_stop_threshold(-0.54, -1.5))\n    self.assertTrue(model_helpers.past_stop_threshold(-0.54, 0))\n    self.assertTrue(model_helpers.past_stop_threshold(0, 0))\n    self.assertTrue(model_helpers.past_stop_threshold(0.54, 0.54))\n\n  def test_past_stop_threshold_none_false(self):\n    \"\"\"Tests that check None returns false.\"\"\"\n    self.assertFalse(model_helpers.past_stop_threshold(None, -1.5))\n    self.assertFalse(model_helpers.past_stop_threshold(None, None))\n    self.assertFalse(model_helpers.past_stop_threshold(None, 1.5))\n    # Zero should be okay, though.\n    self.assertTrue(model_helpers.past_stop_threshold(0, 1.5))\n\n  def test_past_stop_threshold_not_number(self):\n    \"\"\"Tests for error conditions.\"\"\"\n    with self.assertRaises(ValueError):\n      model_helpers.past_stop_threshold(\"str\", 1)\n\n    with self.assertRaises(ValueError):\n      model_helpers.past_stop_threshold(\"str\", tf.constant(5))\n\n    with self.assertRaises(ValueError):\n      model_helpers.past_stop_threshold(\"str\", \"another\")\n\n    with self.assertRaises(ValueError):\n      model_helpers.past_stop_threshold(0, None)\n\n    with self.assertRaises(ValueError):\n      model_helpers.past_stop_threshold(0.7, \"str\")\n\n    with self.assertRaises(ValueError):\n      model_helpers.past_stop_threshold(tf.constant(4), None)\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "official/utils/testing/__init__.py",
    "content": ""
  },
  {
    "path": "official/utils/testing/integration.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Helper code to run complete models from within python.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport shutil\nimport sys\nimport tempfile\n\nfrom absl import flags\n\nfrom official.utils.flags import core as flags_core\n\n\ndef run_synthetic(main, tmp_root, extra_flags=None, synth=True, max_train=1):\n  \"\"\"Performs a minimal run of a model.\n\n    This function is intended to test for syntax errors throughout a model. A\n  very limited run is performed using synthetic data.\n\n  Args:\n    main: The primary function used to exercise a code path. Generally this\n      function is \"<MODULE>.main(argv)\".\n    tmp_root: Root path for the temp directory created by the test class.\n    extra_flags: Additional flags passed by the caller of this function.\n    synth: Use synthetic data.\n    max_train: Maximum number of allowed training steps.\n  \"\"\"\n\n  extra_flags = [] if extra_flags is None else extra_flags\n\n  model_dir = tempfile.mkdtemp(dir=tmp_root)\n\n  args = [sys.argv[0], \"--model_dir\", model_dir, \"--train_epochs\", \"1\",\n          \"--epochs_between_evals\", \"1\"] + extra_flags\n\n  if synth:\n    args.append(\"--use_synthetic_data\")\n\n  if max_train is not None:\n    args.extend([\"--max_train_steps\", str(max_train)])\n\n  try:\n    flags_core.parse_flags(argv=args)\n    main(flags.FLAGS)\n  finally:\n    if os.path.exists(model_dir):\n      shutil.rmtree(model_dir)\n"
  },
  {
    "path": "official/utils/testing/mock_lib.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Mock objects and related functions for testing.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\nclass MockBenchmarkLogger(object):\n  \"\"\"This is a mock logger that can be used in dependent tests.\"\"\"\n\n  def __init__(self):\n    self.logged_metric = []\n\n  def log_metric(self, name, value, unit=None, global_step=None,\n                 extras=None):\n    self.logged_metric.append({\n        \"name\": name,\n        \"value\": float(value),\n        \"unit\": unit,\n        \"global_step\": global_step,\n        \"extras\": extras})\n"
  },
  {
    "path": "official/utils/testing/pylint.rcfile",
    "content": "[MESSAGES CONTROL]\ndisable=R,W,\n        bad-option-value\n\n[REPORTS]\n# Tells whether to display a full report or only the messages\nreports=no\n\n# Activate the evaluation score.\nscore=no\n\n[BASIC]\n\n# Regular expression matching correct argument names\nargument-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct attribute names\nattr-rgx=^_{0,2}[a-z][a-z0-9_]*$\n\n# Regular expression matching correct class attribute names\nclass-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$\n\n# Regular expression matching correct class names\nclass-rgx=^_?[A-Z][a-zA-Z0-9]*$\n\n# Regular expression matching correct constant names\nconst-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$\n\n# Minimum line length for functions/classes that require docstrings, shorter\n# ones are exempt.\ndocstring-min-length=10\n\n# Regular expression matching correct function names\nfunction-rgx=^(?:(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$\n\n# Good variable names which should always be accepted, separated by a comma\ngood-names=main,_\n\n# Regular expression matching correct inline iteration names\ninlinevar-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct method names\nmethod-rgx=^(?:(?P<exempt>__[a-z0-9_]+__|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*)|(setUp|tearDown))$\n\n# Regular expression matching correct module names\nmodule-rgx=^(_?[a-z][a-z0-9_]*)|__init__|PRESUBMIT|PRESUBMIT_unittest$\n\n# Regular expression which should only match function or class names that do\n# not require a docstring.\nno-docstring-rgx=(__.*__|main|.*ArgParser)\n\n# Naming hint for variable names\nvariable-name-hint=[a-z_][a-z0-9_]{2,30}$\n\n# Regular expression matching correct variable names\nvariable-rgx=^[a-z][a-z0-9_]*$\n\n[TYPECHECK]\n\n# List of module names for which member attributes should not be checked\n# (useful for modules/projects where namespaces are manipulated during runtime\n# and thus existing member attributes cannot be deduced by static analysis. It\n# supports qualified module names, as well as Unix pattern matching.\nignored-modules=absl, absl.*, official, official.*, tensorflow, tensorflow.*, LazyLoader, google, google.cloud.*\n\n\n[CLASSES]\n\n# List of method names used to declare (i.e. assign) instance attributes.\ndefining-attr-methods=__init__,__new__,setUp\n\n# List of member names, which should be excluded from the protected access\n# warning.\nexclude-protected=_asdict,_fields,_replace,_source,_make\n\n# This is deprecated, because it is not used anymore.\n#ignore-iface-methods=\n\n# List of valid names for the first argument in a class method.\nvalid-classmethod-first-arg=cls,class_\n\n# List of valid names for the first argument in a metaclass class method.\nvalid-metaclass-classmethod-first-arg=mcs\n\n\n[DESIGN]\n\n# Argument names that match this expression will be ignored. Default to name\n# with leading underscore\nignored-argument-names=_.*\n\n# Maximum number of arguments for function / method\nmax-args=5\n\n# Maximum number of attributes for a class (see R0902).\nmax-attributes=7\n\n# Maximum number of branch for function / method body\nmax-branches=12\n\n# Maximum number of locals for function / method body\nmax-locals=15\n\n# Maximum number of parents for a class (see R0901).\nmax-parents=7\n\n# Maximum number of public methods for a class (see R0904).\nmax-public-methods=20\n\n# Maximum number of return / yield for function / method body\nmax-returns=6\n\n# Maximum number of statements in function / method body\nmax-statements=50\n\n# Minimum number of public methods for a class (see R0903).\nmin-public-methods=2\n\n\n[EXCEPTIONS]\n\n# Exceptions that will emit a warning when being caught. Defaults to\n# \"Exception\"\novergeneral-exceptions=StandardError,Exception,BaseException\n\n\n[FORMAT]\n\n# Number of spaces of indent required inside a hanging or continued line.\nindent-after-paren=4\n\n# String used as indentation unit. This is usually \" \" (4 spaces) or \"\\t\" (1\n# tab).\nindent-string='  '\n\n# Maximum number of characters on a single line.\nmax-line-length=80\n\n# Maximum number of lines in a module\nmax-module-lines=99999\n\n# List of optional constructs for which whitespace checking is disabled\nno-space-check=\n\n# Allow the body of an if to be on the same line as the test if there is no\n# else.\nsingle-line-if-stmt=yes\n\n\n[VARIABLES]\n\n# List of additional names supposed to be defined in builtins. Remember that\n# you should avoid to define new builtins when possible.\nadditional-builtins=\n\n# List of strings which can identify a callback function by name. A callback\n# name must start or end with one of those strings.\ncallbacks=cb_,_cb\n\n# A regular expression matching the name of dummy variables (i.e. expectedly\n# not used).\ndummy-variables-rgx=^\\*{0,2}(_$|unused_|dummy_)\n\n# Tells whether we should check for unused import in __init__ files.\ninit-import=no\n"
  },
  {
    "path": "official/utils/testing/reference_data/reference_data_test/dense/results.json",
    "content": "[1, 1, 0.4701630473136902, 0.4701630473136902, 0.4701630473136902]"
  },
  {
    "path": "official/utils/testing/reference_data/reference_data_test/dense/tf_version.json",
    "content": "[\"1.8.0-dev20180325\", \"v1.7.0-rc1-750-g6c1737e6c8\"]"
  },
  {
    "path": "official/utils/testing/reference_data/reference_data_test/uniform_random/results.json",
    "content": "[0.9872556924819946]"
  },
  {
    "path": "official/utils/testing/reference_data/reference_data_test/uniform_random/tf_version.json",
    "content": "[\"1.8.0-dev20180325\", \"v1.7.0-rc1-750-g6c1737e6c8\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_projection_version-1_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.08920872211456299, 0.8918969631195068, 4064.7060546875, 32, 4, 4, 8, 0.0, 0.10715862363576889, 2344.4775390625]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_projection_version-1_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_projection_version-2_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.918815016746521, 0.1826801300048828, 4064.4677734375, 32, 4, 4, 8, -1.3153012990951538, 0.011247094720602036, 261.84716796875]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_projection_version-2_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_version-1_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.1677999496459961, 0.7767924070358276, 4089.44189453125, 32, 8, 8, 4, 0.8615571856498718, 1.1359407901763916, 5806.876953125]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_version-1_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_version-2_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.8239736557006836, 0.3485994338989258, 4108.87548828125, 32, 8, 8, 4, 0.16798323392868042, -0.2975311279296875, 2860.068359375]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_bottleneck_version-2_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_projection_version-1_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.5349493026733398, 0.5126370191574097, 4070.01220703125, 32, 4, 4, 8, 0.0, 2.7680201530456543, 2341.23486328125]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_projection_version-1_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_projection_version-2_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.7820245027542114, 0.8173515796661377, 4095.256591796875, 32, 4, 4, 8, 0.0679062008857727, 0.009305447340011597, -137.36178588867188]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_projection_version-2_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_version-1_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.23128163814544678, 0.22117376327514648, 4100.51806640625, 32, 8, 8, 4, 1.1768392324447632, 0.2728465795516968, 5832.6416015625]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_version-1_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_version-2_width-8_channels-4/results.json",
    "content": "[32, 8, 8, 4, 0.7616699934005737, 0.5485763549804688, 4106.8720703125, 32, 8, 8, 4, -0.056346118450164795, 0.5792689919471741, 2972.37255859375]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch-size-32_building_version-2_width-8_channels-4/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch_norm/results.json",
    "content": "[32, 16, 16, 3, 0.9722558259963989, 0.18413543701171875, 12374.20703125, 32, 16, 16, 3, 1.6126631498336792, -1.096894383430481, -0.041595458984375]"
  },
  {
    "path": "official/utils/testing/reference_data/resnet/batch_norm/tf_version.json",
    "content": "[\"1.8.0-dev20180408\", \"v1.7.0-1345-gb874783ccd\"]"
  },
  {
    "path": "official/utils/testing/reference_data.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"TensorFlow testing subclass to automate numerical testing.\n\nReference tests determine when behavior deviates from some \"gold standard,\" and\nare useful for determining when layer definitions have changed without\nperforming full regression testing, which is generally prohibitive. This class\nhandles the symbolic graph comparison as well as loading weights to avoid\nrelying on random number generation, which can change.\n\nThe tests performed by this class are:\n\n1) Compare a generated graph against a reference graph. Differences are not\n   necessarily fatal.\n2) Attempt to load known weights for the graph. If this step succeeds but\n   changes are present in the graph, a warning is issued but does not raise\n   an exception.\n3) Perform a calculation and compare the result to a reference value.\n\nThis class also provides a method to generate reference data.\n\nNote:\n  The test class is responsible for fixing the random seed during graph\n  definition. A convenience method name_to_seed() is provided to make this\n  process easier.\n\nThe test class should also define a .regenerate() class method which (usually)\njust calls the op definition function with test=False for all relevant tests.\n\nA concise example of this class in action is provided in:\n  official/utils/testing/reference_data_test.py\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport hashlib\nimport json\nimport os\nimport shutil\nimport sys\n\nimport numpy as np\nimport tensorflow as tf\nfrom tensorflow.python import pywrap_tensorflow\n\n\nclass BaseTest(tf.test.TestCase):\n  \"\"\"TestCase subclass for performing reference data tests.\"\"\"\n\n  def regenerate(self):\n    \"\"\"Subclasses should override this function to generate a new reference.\"\"\"\n    raise NotImplementedError\n\n  @property\n  def test_name(self):\n    \"\"\"Subclass should define its own name.\"\"\"\n    raise NotImplementedError\n\n  @property\n  def data_root(self):\n    \"\"\"Use the subclass directory rather than the parent directory.\n\n    Returns:\n      The path prefix for reference data.\n    \"\"\"\n    return os.path.join(os.path.split(\n        os.path.abspath(__file__))[0], \"reference_data\", self.test_name)\n\n  ckpt_prefix = \"model.ckpt\"\n\n  @staticmethod\n  def name_to_seed(name):\n    \"\"\"Convert a string into a 32 bit integer.\n\n    This function allows test cases to easily generate random fixed seeds by\n    hashing the name of the test. The hash string is in hex rather than base 10\n    which is why there is a 16 in the int call, and the modulo projects the\n    seed from a 128 bit int to 32 bits for readability.\n\n    Args:\n      name: A string containing the name of a test.\n\n    Returns:\n      A pseudo-random 32 bit integer derived from name.\n    \"\"\"\n    seed = hashlib.md5(name.encode(\"utf-8\")).hexdigest()\n    return int(seed, 16) % (2**32 - 1)\n\n  @staticmethod\n  def common_tensor_properties(input_array):\n    \"\"\"Convenience function for matrix testing.\n\n    In tests we wish to determine whether a result has changed. However storing\n    an entire n-dimensional array is impractical. A better approach is to\n    calculate several values from that array and test that those derived values\n    are unchanged. The properties themselves are arbitrary and should be chosen\n    to be good proxies for a full equality test.\n\n    Args:\n      input_array: A numpy array from which key values are extracted.\n\n    Returns:\n      A list of values derived from the input_array for equality tests.\n    \"\"\"\n    output = list(input_array.shape)\n    flat_array = input_array.flatten()\n    output.extend([float(i) for i in\n                   [flat_array[0], flat_array[-1], np.sum(flat_array)]])\n    return output\n\n  def default_correctness_function(self, *args):\n    \"\"\"Returns a vector with the concatenation of common properties.\n\n    This function simply calls common_tensor_properties() for every element.\n    It is useful as it allows one to easily construct tests of layers without\n    having to worry about the details of result checking.\n\n    Args:\n      *args: A list of numpy arrays corresponding to tensors which have been\n        evaluated.\n\n    Returns:\n      A list of values containing properties for every element in args.\n    \"\"\"\n    output = []\n    for arg in args:\n      output.extend(self.common_tensor_properties(arg))\n    return output\n\n  def _construct_and_save_reference_files(\n      self, name, graph, ops_to_eval, correctness_function):\n    \"\"\"Save reference data files.\n\n    Constructs a serialized graph_def, layer weights, and computation results.\n    It then saves them to files which are read at test time.\n\n    Args:\n      name: String defining the run. This will be used to define folder names\n        and will be used for random seed construction.\n      graph: The graph in which the test is conducted.\n      ops_to_eval: Ops which the user wishes to be evaluated under a controlled\n        session.\n      correctness_function: This function accepts the evaluated results of\n        ops_to_eval, and returns a list of values. This list must be JSON\n        serializable; in particular it is up to the user to convert numpy\n        dtypes into builtin dtypes.\n    \"\"\"\n    data_dir = os.path.join(self.data_root, name)\n\n    # Make sure there is a clean space for results.\n    if os.path.exists(data_dir):\n      shutil.rmtree(data_dir)\n    os.makedirs(data_dir)\n\n    # Serialize graph for comparison.\n    graph_bytes = graph.as_graph_def().SerializeToString()\n    expected_file = os.path.join(data_dir, \"expected_graph\")\n    with tf.gfile.Open(expected_file, \"wb\") as f:\n      f.write(graph_bytes)\n\n    with graph.as_default():\n      init = tf.global_variables_initializer()\n      saver = tf.train.Saver()\n\n    with self.test_session(graph=graph) as sess:\n      sess.run(init)\n      saver.save(sess=sess, save_path=os.path.join(data_dir, self.ckpt_prefix))\n\n      # These files are not needed for this test.\n      os.remove(os.path.join(data_dir, \"checkpoint\"))\n      os.remove(os.path.join(data_dir, self.ckpt_prefix + \".meta\"))\n\n      # ops are evaluated even if there is no correctness function to ensure\n      # that they can be evaluated.\n      eval_results = [op.eval() for op in ops_to_eval]\n\n      if correctness_function is not None:\n        results = correctness_function(*eval_results)\n        with tf.gfile.Open(os.path.join(data_dir, \"results.json\"), \"w\") as f:\n          json.dump(results, f)\n\n      with tf.gfile.Open(os.path.join(data_dir, \"tf_version.json\"), \"w\") as f:\n        json.dump([tf.VERSION, tf.GIT_VERSION], f)\n\n  def _evaluate_test_case(self, name, graph, ops_to_eval, correctness_function):\n    \"\"\"Determine if a graph agrees with the reference data.\n\n    Args:\n      name: String defining the run. This will be used to define folder names\n        and will be used for random seed construction.\n      graph: The graph in which the test is conducted.\n      ops_to_eval: Ops which the user wishes to be evaluated under a controlled\n        session.\n      correctness_function: This function accepts the evaluated results of\n        ops_to_eval, and returns a list of values. This list must be JSON\n        serializable; in particular it is up to the user to convert numpy\n        dtypes into builtin dtypes.\n    \"\"\"\n    data_dir = os.path.join(self.data_root, name)\n\n    # Serialize graph for comparison.\n    graph_bytes = graph.as_graph_def().SerializeToString()\n    expected_file = os.path.join(data_dir, \"expected_graph\")\n    with tf.gfile.Open(expected_file, \"rb\") as f:\n      expected_graph_bytes = f.read()\n      # The serialization is non-deterministic byte-for-byte. Instead there is\n      # a utility which evaluates the semantics of the two graphs to test for\n      # equality. This has the added benefit of providing some information on\n      # what changed.\n      #   Note: The summary only show the first difference detected. It is not\n      #         an exhaustive summary of differences.\n    differences = pywrap_tensorflow.EqualGraphDefWrapper(\n        graph_bytes, expected_graph_bytes).decode(\"utf-8\")\n\n    with graph.as_default():\n      init = tf.global_variables_initializer()\n      saver = tf.train.Saver()\n\n    with tf.gfile.Open(os.path.join(data_dir, \"tf_version.json\"), \"r\") as f:\n      tf_version_reference, tf_git_version_reference = json.load(f)  # pylint: disable=unpacking-non-sequence\n\n    tf_version_comparison = \"\"\n    if tf.GIT_VERSION != tf_git_version_reference:\n      tf_version_comparison = (\n          \"Test was built using:     {} (git = {})\\n\"\n          \"Local TensorFlow version: {} (git = {})\"\n          .format(tf_version_reference, tf_git_version_reference,\n                  tf.VERSION, tf.GIT_VERSION)\n      )\n\n    with self.test_session(graph=graph) as sess:\n      sess.run(init)\n      try:\n        saver.restore(sess=sess, save_path=os.path.join(\n            data_dir, self.ckpt_prefix))\n        if differences:\n          tf.logging.warn(\n              \"The provided graph is different than expected:\\n  {}\\n\"\n              \"However the weights were still able to be loaded.\\n{}\".format(\n                  differences, tf_version_comparison)\n          )\n      except:  # pylint: disable=bare-except\n        raise self.failureException(\n            \"Weight load failed. Graph comparison:\\n  {}{}\"\n            .format(differences, tf_version_comparison))\n\n      eval_results = [op.eval() for op in ops_to_eval]\n      if correctness_function is not None:\n        results = correctness_function(*eval_results)\n        with tf.gfile.Open(os.path.join(data_dir, \"results.json\"), \"r\") as f:\n          expected_results = json.load(f)\n        self.assertAllClose(results, expected_results)\n\n  def _save_or_test_ops(self, name, graph, ops_to_eval=None, test=True,\n                        correctness_function=None):\n    \"\"\"Utility function to automate repeated work of graph checking and saving.\n\n    The philosophy of this function is that the user need only define ops on\n    a graph and specify which results should be validated. The actual work of\n    managing snapshots and calculating results should be automated away.\n\n    Args:\n      name: String defining the run. This will be used to define folder names\n        and will be used for random seed construction.\n      graph: The graph in which the test is conducted.\n      ops_to_eval: Ops which the user wishes to be evaluated under a controlled\n        session.\n      test: Boolean. If True this function will test graph correctness, load\n        weights, and compute numerical values. If False the necessary test data\n        will be generated and saved.\n      correctness_function: This function accepts the evaluated results of\n        ops_to_eval, and returns a list of values. This list must be JSON\n        serializable; in particular it is up to the user to convert numpy\n        dtypes into builtin dtypes.\n    \"\"\"\n\n    ops_to_eval = ops_to_eval or []\n\n    if test:\n      try:\n        self._evaluate_test_case(\n            name=name, graph=graph, ops_to_eval=ops_to_eval,\n            correctness_function=correctness_function\n        )\n      except:\n        tf.logging.error(\"Failed unittest {}\".format(name))\n        raise\n    else:\n      self._construct_and_save_reference_files(\n          name=name, graph=graph, ops_to_eval=ops_to_eval,\n          correctness_function=correctness_function\n      )\n\n\nclass ReferenceDataActionParser(argparse.ArgumentParser):\n  \"\"\"Minimal arg parser so that test regeneration can be called from the CLI.\"\"\"\n\n  def __init__(self):\n    super(ReferenceDataActionParser, self).__init__()\n    self.add_argument(\n        \"--regenerate\", \"-regen\",\n        action=\"store_true\",\n        help=\"Enable this flag to regenerate test data. If not set unit tests\"\n             \"will be run.\"\n    )\n\n\ndef main(argv, test_class):\n  \"\"\"Simple switch function to allow test regeneration from the CLI.\"\"\"\n  flags = ReferenceDataActionParser().parse_args(argv[1:])\n  if flags.regenerate:\n    if sys.version_info[0] == 2:\n      raise NameError(\"\\nPython2 unittest does not support being run as a \"\n                      \"standalone class.\\nAs a result tests must be \"\n                      \"regenerated using Python3.\\n\"\n                      \"Tests can be run under 2 or 3.\")\n    test_class().regenerate()\n  else:\n    tf.test.main()\n"
  },
  {
    "path": "official/utils/testing/reference_data_test.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"This module tests generic behavior of reference data tests.\n\nThis test is not intended to test every layer of interest, and models should\ntest the layers that affect them. This test is primarily focused on ensuring\nthat reference_data.BaseTest functions as intended. If there is a legitimate\nchange such as a change to TensorFlow which changes graph construction, tests\ncan be regenerated with the following command:\n\n  $ python3 reference_data_test.py -regen\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys\nimport unittest\nimport warnings\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\nfrom official.utils.testing import reference_data\n\n\nclass GoldenBaseTest(reference_data.BaseTest):\n  \"\"\"Class to ensure that reference data testing runs properly.\"\"\"\n\n  @property\n  def test_name(self):\n    return \"reference_data_test\"\n\n  def _uniform_random_ops(self, test=False, wrong_name=False, wrong_shape=False,\n                          bad_seed=False, bad_function=False):\n    \"\"\"Tests number generation and failure modes.\n\n    This test is of a very simple graph: the generation of a 1x1 random tensor.\n    However, it is also used to confirm that the tests are actually checking\n    properly by failing in predefined ways.\n\n    Args:\n      test: Whether or not to run as a test case.\n      wrong_name: Whether to assign the wrong name to the tensor.\n      wrong_shape: Whether to create a tensor with the wrong shape.\n      bad_seed: Whether or not to perturb the random seed.\n      bad_function: Whether to perturb the correctness function.\n    \"\"\"\n    name = \"uniform_random\"\n\n    g = tf.Graph()\n    with g.as_default():\n      seed = self.name_to_seed(name)\n      seed = seed + 1 if bad_seed else seed\n      tf.set_random_seed(seed)\n      tensor_name = \"wrong_tensor\" if wrong_name else \"input_tensor\"\n      tensor_shape = (1, 2) if wrong_shape else (1, 1)\n      input_tensor = tf.get_variable(\n          tensor_name, dtype=tf.float32,\n          initializer=tf.random_uniform(tensor_shape, maxval=1)\n      )\n\n    def correctness_function(tensor_result):\n      result = float(tensor_result[0, 0])\n      result = result + 0.1 if bad_function else result\n      return [result]\n\n    self._save_or_test_ops(\n        name=name, graph=g, ops_to_eval=[input_tensor], test=test,\n        correctness_function=correctness_function\n    )\n\n  def _dense_ops(self, test=False):\n    name = \"dense\"\n\n    g = tf.Graph()\n    with g.as_default():\n      tf.set_random_seed(self.name_to_seed(name))\n      input_tensor = tf.get_variable(\n          \"input_tensor\", dtype=tf.float32,\n          initializer=tf.random_uniform((1, 2), maxval=1)\n      )\n      layer = tf.layers.dense(inputs=input_tensor, units=4)\n      layer = tf.layers.dense(inputs=layer, units=1)\n\n    self._save_or_test_ops(\n        name=name, graph=g, ops_to_eval=[layer], test=test,\n        correctness_function=self.default_correctness_function\n    )\n\n  def test_uniform_random(self):\n    self._uniform_random_ops(test=True)\n\n  def test_tensor_name_error(self):\n    with self.assertRaises(AssertionError):\n      self._uniform_random_ops(test=True, wrong_name=True)\n\n  def test_tensor_shape_error(self):\n    with self.assertRaises(AssertionError):\n      self._uniform_random_ops(test=True, wrong_shape=True)\n\n  @unittest.skipIf(sys.version_info[0] == 2,\n                   \"catch_warning doesn't catch tf.logging.warn in py 2.\")\n  def test_bad_seed(self):\n    with warnings.catch_warnings(record=True) as warn_catch:\n      self._uniform_random_ops(test=True, bad_seed=True)\n      assert len(warn_catch) == 1, \"Test did not warn of minor graph change.\"\n\n  def test_incorrectness_function(self):\n    with self.assertRaises(AssertionError):\n      self._uniform_random_ops(test=True, bad_function=True)\n\n  def test_dense(self):\n    self._dense_ops(test=True)\n\n  def regenerate(self):\n    self._uniform_random_ops(test=False)\n    self._dense_ops(test=False)\n\n\nif __name__ == \"__main__\":\n  reference_data.main(argv=sys.argv, test_class=GoldenBaseTest)\n"
  },
  {
    "path": "official/utils/testing/scripts/presubmit.sh",
    "content": "#!/bin/bash\n# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n# Presubmit script that run tests and lint under local environment.\n# Make sure that tensorflow and pylint is installed.\n# usage: models >: ./official/utils/testing/scripts/presubmit.sh\n# usage: models >: ./official/utils/testing/scripts/presubmit.sh lint py2_test py3_test\nset +x\n\nSCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\ncd \"$SCRIPT_DIR/../../../..\"\nMODEL_ROOT=\"$(pwd)\"\n\nexport PYTHONPATH=\"$PYTHONPATH:${MODEL_ROOT}\"\n\ncd official\n\nlint() {\n  local exit_code=0\n\n  RC_FILE=\"utils/testing/pylint.rcfile\"\n\n  echo \"===========Running lint test============\"\n  for file in `find . -name '*.py' ! -name '*test.py' -print`\n  do\n    echo \"Linting ${file}\"\n    pylint --rcfile=\"${RC_FILE}\" \"${file}\" || exit_code=$?\n  done\n\n  # More lenient for test files.\n  for file in `find . -name '*test.py' -print`\n  do\n    echo \"Linting ${file}\"\n    pylint --rcfile=\"${RC_FILE}\" --disable=missing-docstring,protected-access \"${file}\" || exit_code=$?\n  done\n\n  return \"${exit_code}\"\n}\n\npy_test() {\n  local PY_BINARY=\"$1\"\n  local exit_code=0\n\n  echo \"===========Running Python test============\"\n\n  for test_file in `find . -name '*test.py' -print`\n  do\n    echo \"Testing ${test_file}\"\n    ${PY_BINARY} \"${test_file}\" || exit_code=$?\n  done\n\n  return \"${exit_code}\"\n}\n\npy2_test() {\n  local PY_BINARY=$(which python2)\n  py_test \"$PY_BINARY\"\n  return $?\n}\n\npy3_test() {\n  local PY_BINARY=$(which python3)\n  py_test \"$PY_BINARY\"\n  return $?\n}\n\ntest_result=0\n\nif [ \"$#\" -eq 0 ]; then\n  TESTS=\"lint py2_test py3_test\"\nelse\n  TESTS=\"$@\"\nfi\n\nfor t in \"${TESTS}\"; do\n  ${t} || test_result=$?\ndone\n\nexit \"${test_result}\"\n"
  },
  {
    "path": "official/wide_deep/README.md",
    "content": "# Predicting Income with the Census Income Dataset\n## Overview\nThe [Census Income Data Set](https://archive.ics.uci.edu/ml/datasets/Census+Income) contains over 48,000 samples with attributes including age, occupation, education, and income (a binary label, either `>50K` or `<=50K`). The dataset is split into roughly 32,000 training and 16,000 testing samples.\n\nHere, we use the [wide and deep model](https://research.googleblog.com/2016/06/wide-deep-learning-better-together-with.html) to predict the income labels. The **wide model** is able to memorize interactions with data with a large number of features but not able to generalize these learned interactions on new data. The **deep model** generalizes well but is unable to learn exceptions within the data. The **wide and deep model** combines the two models and is able to generalize while learning exceptions.\n\nFor the purposes of this example code, the Census Income Data Set was chosen to allow the model to train in a reasonable amount of time. You'll notice that the deep model performs almost as well as the wide and deep model on this dataset. The wide and deep model truly shines on larger data sets with high-cardinality features, where each feature has millions/billions of unique possible values (which is the specialty of the wide model).\n\n---\n\nThe code sample in this directory uses the high level `tf.estimator.Estimator` API. This API is great for fast iteration and quickly adapting models to your own datasets without major code overhauls. It allows you to move from single-worker training to distributed training, and it makes it easy to export model binaries for prediction.\n\nThe input function for the `Estimator` uses `tf.contrib.data.TextLineDataset`, which creates a `Dataset` object. The `Dataset` API makes it easy to apply transformations (map, batch, shuffle, etc.) to the data. [Read more here](https://www.tensorflow.org/programmers_guide/datasets).\n\nThe `Estimator` and `Dataset` APIs are both highly encouraged for fast development and efficient training.\n\n## Running the code\nFirst make sure you've [added the models folder to your Python path](/official/#running-the-models); otherwise you may encounter an error like `ImportError: No module named official.wide_deep`.\n\n### Setup\nThe [Census Income Data Set](https://archive.ics.uci.edu/ml/datasets/Census+Income) that this sample uses for training is hosted by the [UC Irvine Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/). We have provided a script that downloads and cleans the necessary files.\n\n```\npython data_download.py\n```\n\nThis will download the files to `/tmp/census_data`. To change the directory, set the `--data_dir` flag.\n\n### Training\nYou can run the code locally as follows:\n\n```\npython wide_deep.py\n```\n\nThe model is saved to `/tmp/census_model` by default, which can be changed using the `--model_dir` flag.\n\nTo run the *wide* or *deep*-only models, set the `--model_type` flag to `wide` or `deep`. Other flags are configurable as well; see `wide_deep.py` for details.\n\nThe final accuracy should be over 83% with any of the three model types.\n\n### TensorBoard\n\nRun TensorBoard to inspect the details about the graph and training progression.\n\n```\ntensorboard --logdir=/tmp/census_model\n```\n\n## Inference with SavedModel\nYou can export the model into Tensorflow [SavedModel](https://www.tensorflow.org/programmers_guide/saved_model) format by using the argument `--export_dir`:\n\n```\npython wide_deep.py --export_dir /tmp/wide_deep_saved_model\n```\n\nAfter the model finishes training, use [`saved_model_cli`](https://www.tensorflow.org/programmers_guide/saved_model#cli_to_inspect_and_execute_savedmodel) to inspect and execute the SavedModel.\n\nTry the following commands to inspect the SavedModel:\n\n**Replace `${TIMESTAMP}` with the folder produced (e.g. 1524249124)**\n```\n# List possible tag_sets. Only one metagraph is saved, so there will be one option.\nsaved_model_cli show --dir /tmp/wide_deep_saved_model/${TIMESTAMP}/\n\n# Show SignatureDefs for tag_set=serve. SignatureDefs define the outputs to show.\nsaved_model_cli show --dir /tmp/wide_deep_saved_model/${TIMESTAMP}/ \\\n    --tag_set serve --all\n```\n\n### Inference\nLet's use the model to predict the income group of two examples:\n```\nsaved_model_cli run --dir /tmp/wide_deep_saved_model/${TIMESTAMP}/ \\\n--tag_set serve --signature_def=\"predict\" \\\n--input_examples='examples=[{\"age\":[46.], \"education_num\":[10.], \"capital_gain\":[7688.], \"capital_loss\":[0.], \"hours_per_week\":[38.]}, {\"age\":[24.], \"education_num\":[13.], \"capital_gain\":[0.], \"capital_loss\":[0.], \"hours_per_week\":[50.]}]'\n```\n\nThis will print out the predicted classes and class probabilities. Class 0 is the <=50k group and 1 is the >50k group.\n\n## Additional Links\n\nIf you are interested in distributed training, take a look at [Distributed TensorFlow](https://www.tensorflow.org/deploy/distributed).\n\nYou can also [run this model on Cloud ML Engine](https://cloud.google.com/ml-engine/docs/getting-started-training-prediction), which provides [hyperparameter tuning](https://cloud.google.com/ml-engine/docs/getting-started-training-prediction#hyperparameter_tuning) to maximize your model's results and enables [deploying your model for prediction](https://cloud.google.com/ml-engine/docs/getting-started-training-prediction#deploy_a_model_to_support_prediction).\n"
  },
  {
    "path": "official/wide_deep/__init__.py",
    "content": ""
  },
  {
    "path": "official/wide_deep/data_download.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Download and clean the Census Income Dataset.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport os\nimport sys\n\nfrom six.moves import urllib\nimport tensorflow as tf\n\nDATA_URL = 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult'\nTRAINING_FILE = 'adult.data'\nTRAINING_URL = '%s/%s' % (DATA_URL, TRAINING_FILE)\nEVAL_FILE = 'adult.test'\nEVAL_URL = '%s/%s' % (DATA_URL, EVAL_FILE)\n\nparser = argparse.ArgumentParser()\n\nparser.add_argument(\n    '--data_dir', type=str, default='/tmp/census_data',\n    help='Directory to download census data')\n\n\ndef _download_and_clean_file(filename, url):\n  \"\"\"Downloads data from url, and makes changes to match the CSV format.\"\"\"\n  temp_file, _ = urllib.request.urlretrieve(url)\n  with tf.gfile.Open(temp_file, 'r') as temp_eval_file:\n    with tf.gfile.Open(filename, 'w') as eval_file:\n      for line in temp_eval_file:\n        line = line.strip()\n        line = line.replace(', ', ',')\n        if not line or ',' not in line:\n          continue\n        if line[-1] == '.':\n          line = line[:-1]\n        line += '\\n'\n        eval_file.write(line)\n  tf.gfile.Remove(temp_file)\n\n\ndef main(_):\n  if not tf.gfile.Exists(FLAGS.data_dir):\n    tf.gfile.MkDir(FLAGS.data_dir)\n\n  training_file_path = os.path.join(FLAGS.data_dir, TRAINING_FILE)\n  _download_and_clean_file(training_file_path, TRAINING_URL)\n\n  eval_file_path = os.path.join(FLAGS.data_dir, EVAL_FILE)\n  _download_and_clean_file(eval_file_path, EVAL_URL)\n\n\nif __name__ == '__main__':\n  FLAGS, unparsed = parser.parse_known_args()\n  tf.app.run(argv=[sys.argv[0]] + unparsed)\n"
  },
  {
    "path": "official/wide_deep/wide_deep.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Example code for TensorFlow Wide & Deep Tutorial using tf.estimator API.\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport shutil\n\nfrom absl import app as absl_app\nfrom absl import flags\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.flags import core as flags_core\nfrom official.utils.logs import hooks_helper\nfrom official.utils.logs import logger\nfrom official.utils.misc import model_helpers\n\n\n_CSV_COLUMNS = [\n    'age', 'workclass', 'fnlwgt', 'education', 'education_num',\n    'marital_status', 'occupation', 'relationship', 'race', 'gender',\n    'capital_gain', 'capital_loss', 'hours_per_week', 'native_country',\n    'income_bracket'\n]\n\n_CSV_COLUMN_DEFAULTS = [[0], [''], [0], [''], [0], [''], [''], [''], [''], [''],\n                        [0], [0], [0], [''], ['']]\n\n_NUM_EXAMPLES = {\n    'train': 32561,\n    'validation': 16281,\n}\n\n\nLOSS_PREFIX = {'wide': 'linear/', 'deep': 'dnn/'}\n\n\ndef define_wide_deep_flags():\n  \"\"\"Add supervised learning flags, as well as wide-deep model type.\"\"\"\n  flags_core.define_base()\n  flags_core.define_benchmark()\n\n  flags.adopt_module_key_flags(flags_core)\n\n  flags.DEFINE_enum(\n      name=\"model_type\", short_name=\"mt\", default=\"wide_deep\",\n      enum_values=['wide', 'deep', 'wide_deep'],\n      help=\"Select model topology.\")\n\n  flags_core.set_defaults(data_dir='/tmp/census_data',\n                          model_dir='/tmp/census_model',\n                          train_epochs=40,\n                          epochs_between_evals=2,\n                          batch_size=40)\n\n\ndef build_model_columns():\n  \"\"\"Builds a set of wide and deep feature columns.\"\"\"\n  # Continuous columns\n  age = tf.feature_column.numeric_column('age')\n  education_num = tf.feature_column.numeric_column('education_num')\n  capital_gain = tf.feature_column.numeric_column('capital_gain')\n  capital_loss = tf.feature_column.numeric_column('capital_loss')\n  hours_per_week = tf.feature_column.numeric_column('hours_per_week')\n\n  education = tf.feature_column.categorical_column_with_vocabulary_list(\n      'education', [\n          'Bachelors', 'HS-grad', '11th', 'Masters', '9th', 'Some-college',\n          'Assoc-acdm', 'Assoc-voc', '7th-8th', 'Doctorate', 'Prof-school',\n          '5th-6th', '10th', '1st-4th', 'Preschool', '12th'])\n\n  marital_status = tf.feature_column.categorical_column_with_vocabulary_list(\n      'marital_status', [\n          'Married-civ-spouse', 'Divorced', 'Married-spouse-absent',\n          'Never-married', 'Separated', 'Married-AF-spouse', 'Widowed'])\n\n  relationship = tf.feature_column.categorical_column_with_vocabulary_list(\n      'relationship', [\n          'Husband', 'Not-in-family', 'Wife', 'Own-child', 'Unmarried',\n          'Other-relative'])\n\n  workclass = tf.feature_column.categorical_column_with_vocabulary_list(\n      'workclass', [\n          'Self-emp-not-inc', 'Private', 'State-gov', 'Federal-gov',\n          'Local-gov', '?', 'Self-emp-inc', 'Without-pay', 'Never-worked'])\n\n  # To show an example of hashing:\n  occupation = tf.feature_column.categorical_column_with_hash_bucket(\n      'occupation', hash_bucket_size=1000)\n\n  # Transformations.\n  age_buckets = tf.feature_column.bucketized_column(\n      age, boundaries=[18, 25, 30, 35, 40, 45, 50, 55, 60, 65])\n\n  # Wide columns and deep columns.\n  base_columns = [\n      education, marital_status, relationship, workclass, occupation,\n      age_buckets,\n  ]\n\n  crossed_columns = [\n      tf.feature_column.crossed_column(\n          ['education', 'occupation'], hash_bucket_size=1000),\n      tf.feature_column.crossed_column(\n          [age_buckets, 'education', 'occupation'], hash_bucket_size=1000),\n  ]\n\n  wide_columns = base_columns + crossed_columns\n\n  deep_columns = [\n      age,\n      education_num,\n      capital_gain,\n      capital_loss,\n      hours_per_week,\n      tf.feature_column.indicator_column(workclass),\n      tf.feature_column.indicator_column(education),\n      tf.feature_column.indicator_column(marital_status),\n      tf.feature_column.indicator_column(relationship),\n      # To show an example of embedding\n      tf.feature_column.embedding_column(occupation, dimension=8),\n  ]\n\n  return wide_columns, deep_columns\n\n\ndef build_estimator(model_dir, model_type):\n  \"\"\"Build an estimator appropriate for the given model type.\"\"\"\n  wide_columns, deep_columns = build_model_columns()\n  hidden_units = [100, 75, 50, 25]\n\n  # Create a tf.estimator.RunConfig to ensure the model is run on CPU, which\n  # trains faster than GPU for this model.\n  run_config = tf.estimator.RunConfig().replace(\n      session_config=tf.ConfigProto(device_count={'GPU': 0}))\n\n  if model_type == 'wide':\n    return tf.estimator.LinearClassifier(\n        model_dir=model_dir,\n        feature_columns=wide_columns,\n        config=run_config)\n  elif model_type == 'deep':\n    return tf.estimator.DNNClassifier(\n        model_dir=model_dir,\n        feature_columns=deep_columns,\n        hidden_units=hidden_units,\n        config=run_config)\n  else:\n    return tf.estimator.DNNLinearCombinedClassifier(\n        model_dir=model_dir,\n        linear_feature_columns=wide_columns,\n        dnn_feature_columns=deep_columns,\n        dnn_hidden_units=hidden_units,\n        config=run_config)\n\n\ndef input_fn(data_file, num_epochs, shuffle, batch_size):\n  \"\"\"Generate an input function for the Estimator.\"\"\"\n  assert tf.gfile.Exists(data_file), (\n      '%s not found. Please make sure you have run data_download.py and '\n      'set the --data_dir argument to the correct path.' % data_file)\n\n  def parse_csv(value):\n    print('Parsing', data_file)\n    columns = tf.decode_csv(value, record_defaults=_CSV_COLUMN_DEFAULTS)\n    features = dict(zip(_CSV_COLUMNS, columns))\n    labels = features.pop('income_bracket')\n    return features, tf.equal(labels, '>50K')\n\n  # Extract lines from input files using the Dataset API.\n  dataset = tf.data.TextLineDataset(data_file)\n\n  if shuffle:\n    dataset = dataset.shuffle(buffer_size=_NUM_EXAMPLES['train'])\n\n  dataset = dataset.map(parse_csv, num_parallel_calls=5)\n\n  # We call repeat after shuffling, rather than before, to prevent separate\n  # epochs from blending together.\n  dataset = dataset.repeat(num_epochs)\n  dataset = dataset.batch(batch_size)\n  return dataset\n\n\ndef export_model(model, model_type, export_dir):\n  \"\"\"Export to SavedModel format.\n\n  Args:\n    model: Estimator object\n    model_type: string indicating model type. \"wide\", \"deep\" or \"wide_deep\"\n    export_dir: directory to export the model.\n  \"\"\"\n  wide_columns, deep_columns = build_model_columns()\n  if model_type == 'wide':\n    columns = wide_columns\n  elif model_type == 'deep':\n    columns = deep_columns\n  else:\n    columns = wide_columns + deep_columns\n  feature_spec = tf.feature_column.make_parse_example_spec(columns)\n  example_input_fn = (\n      tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec))\n  model.export_savedmodel(export_dir, example_input_fn)\n\n\ndef run_wide_deep(flags_obj):\n  \"\"\"Run Wide-Deep training and eval loop.\n\n  Args:\n    flags_obj: An object containing parsed flag values.\n  \"\"\"\n\n  # Clean up the model directory if present\n  shutil.rmtree(flags_obj.model_dir, ignore_errors=True)\n  model = build_estimator(flags_obj.model_dir, flags_obj.model_type)\n\n  train_file = os.path.join(flags_obj.data_dir, 'adult.data')\n  test_file = os.path.join(flags_obj.data_dir, 'adult.test')\n\n  # Train and evaluate the model every `flags.epochs_between_evals` epochs.\n  def train_input_fn():\n    return input_fn(\n        train_file, flags_obj.epochs_between_evals, True, flags_obj.batch_size)\n\n  def eval_input_fn():\n    return input_fn(test_file, 1, False, flags_obj.batch_size)\n\n  run_params = {\n      'batch_size': flags_obj.batch_size,\n      'train_epochs': flags_obj.train_epochs,\n      'model_type': flags_obj.model_type,\n  }\n\n  benchmark_logger = logger.config_benchmark_logger(flags_obj)\n  benchmark_logger.log_run_info('wide_deep', 'Census Income', run_params)\n\n  loss_prefix = LOSS_PREFIX.get(flags_obj.model_type, '')\n  train_hooks = hooks_helper.get_train_hooks(\n      flags_obj.hooks, batch_size=flags_obj.batch_size,\n      tensors_to_log={'average_loss': loss_prefix + 'head/truediv',\n                      'loss': loss_prefix + 'head/weighted_loss/Sum'})\n\n  # Train and evaluate the model every `flags.epochs_between_evals` epochs.\n  for n in range(flags_obj.train_epochs // flags_obj.epochs_between_evals):\n    model.train(input_fn=train_input_fn, hooks=train_hooks)\n    results = model.evaluate(input_fn=eval_input_fn)\n\n    # Display evaluation metrics\n    tf.logging.info('Results at epoch %d / %d',\n                    (n + 1) * flags_obj.epochs_between_evals,\n                    flags_obj.train_epochs)\n    tf.logging.info('-' * 60)\n\n    for key in sorted(results):\n      tf.logging.info('%s: %s' % (key, results[key]))\n\n    benchmark_logger.log_evaluation_result(results)\n\n    if model_helpers.past_stop_threshold(\n        flags_obj.stop_threshold, results['accuracy']):\n      break\n\n  # Export the model\n  if flags_obj.export_dir is not None:\n    export_model(model, flags_obj.model_type, flags_obj.export_dir)\n\n\ndef main(_):\n  run_wide_deep(flags.FLAGS)\n\n\nif __name__ == '__main__':\n  tf.logging.set_verbosity(tf.logging.INFO)\n  define_wide_deep_flags()\n  absl_app.run(main)\n"
  },
  {
    "path": "official/wide_deep/wide_deep_test.csv",
    "content": "39,State-gov,77516,Bachelors,13,Never-married,Adm-clerical,Not-in-family,,,2174,0,40,,<=50K\n50,Self-emp-not-inc,83311,Bachelors,13,Married-civ-spouse,Exec-managerial,Husband,,,0,0,13,,<=50K\n38,Private,215646,HS-grad,9,Divorced,Handlers-cleaners,Not-in-family,,,0,0,40,,<=50K\n53,Private,234721,11th,7,Married-civ-spouse,Handlers-cleaners,Husband,,,0,0,40,,<=50K\n28,Private,338409,Bachelors,13,Married-civ-spouse,Prof-specialty,Wife,,,0,0,40,,<=50K\n37,Private,284582,Masters,14,Married-civ-spouse,Exec-managerial,Wife,,,0,0,40,,<=50K\n49,Private,160187,9th,5,Married-spouse-absent,Other-service,Not-in-family,,,0,0,16,,<=50K\n52,Self-emp-not-inc,209642,HS-grad,9,Married-civ-spouse,Exec-managerial,Husband,,,0,0,45,,>50K\n31,Private,45781,Masters,14,Never-married,Prof-specialty,Not-in-family,,,14084,0,50,,>50K\n42,Private,159449,Bachelors,13,Married-civ-spouse,Exec-managerial,Husband,,,5178,0,40,,>50K\n37,Private,280464,Some-college,10,Married-civ-spouse,Exec-managerial,Husband,,,0,0,80,,>50K\n30,State-gov,141297,Bachelors,13,Married-civ-spouse,Prof-specialty,Husband,,,0,0,40,,>50K\n23,Private,122272,Bachelors,13,Never-married,Adm-clerical,Own-child,,,0,0,30,,<=50K\n32,Private,205019,Assoc-acdm,12,Never-married,Sales,Not-in-family,,,0,0,50,,<=50K\n40,Private,121772,Assoc-voc,11,Married-civ-spouse,Craft-repair,Husband,,,0,0,40,,>50K\n34,Private,245487,7th-8th,4,Married-civ-spouse,Transport-moving,Husband,,,0,0,45,,<=50K\n25,Self-emp-not-inc,176756,HS-grad,9,Never-married,Farming-fishing,Own-child,,,0,0,35,,<=50K\n32,Private,186824,HS-grad,9,Never-married,Machine-op-inspct,Unmarried,,,0,0,40,,<=50K\n38,Private,28887,11th,7,Married-civ-spouse,Sales,Husband,,,0,0,50,,<=50K\n43,Self-emp-not-inc,292175,Masters,14,Divorced,Exec-managerial,Unmarried,,,0,0,45,,>50K\n40,Private,193524,Doctorate,16,Married-civ-spouse,Prof-specialty,Husband,,,0,0,60,,>50K\n56,Local-gov,216851,Bachelors,13,Married-civ-spouse,Tech-support,Husband,,,0,0,40,,>50K\n54,?,180211,Some-college,10,Married-civ-spouse,?,Husband,,,0,0,60,,>50K\n22,State-gov,311512,Some-college,10,Married-civ-spouse,Other-service,Husband,,,0,0,15,,<=50K\n31,Private,84154,Some-college,10,Married-civ-spouse,Sales,Husband,,,0,0,38,,>50K\n57,Federal-gov,337895,Bachelors,13,Married-civ-spouse,Prof-specialty,Husband,,,0,0,40,,>50K\n47,Private,51835,Prof-school,15,Married-civ-spouse,Prof-specialty,Wife,,,0,1902,60,,>50K\n50,Federal-gov,251585,Bachelors,13,Divorced,Exec-managerial,Not-in-family,,,0,0,55,,>50K\n25,Private,289980,HS-grad,9,Never-married,Handlers-cleaners,Not-in-family,,,0,0,35,,<=50K\n42,Private,116632,Doctorate,16,Married-civ-spouse,Prof-specialty,Husband,,,0,0,45,,>50K\n"
  },
  {
    "path": "official/wide_deep/wide_deep_test.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.utils.testing import integration\nfrom official.wide_deep import wide_deep\n\ntf.logging.set_verbosity(tf.logging.ERROR)\n\nTEST_INPUT = ('18,Self-emp-not-inc,987,Bachelors,12,Married-civ-spouse,abc,'\n              'Husband,zyx,wvu,34,56,78,tsr,<=50K')\n\nTEST_INPUT_VALUES = {\n    'age': 18,\n    'education_num': 12,\n    'capital_gain': 34,\n    'capital_loss': 56,\n    'hours_per_week': 78,\n    'education': 'Bachelors',\n    'marital_status': 'Married-civ-spouse',\n    'relationship': 'Husband',\n    'workclass': 'Self-emp-not-inc',\n    'occupation': 'abc',\n}\n\nTEST_CSV = os.path.join(os.path.dirname(__file__), 'wide_deep_test.csv')\n\n\nclass BaseTest(tf.test.TestCase):\n  \"\"\"Tests for Wide Deep model.\"\"\"\n\n  @classmethod\n  def setUpClass(cls):  # pylint: disable=invalid-name\n    super(BaseTest, cls).setUpClass()\n    wide_deep.define_wide_deep_flags()\n\n  def setUp(self):\n    # Create temporary CSV file\n    self.temp_dir = self.get_temp_dir()\n    self.input_csv = os.path.join(self.temp_dir, 'test.csv')\n    with tf.gfile.Open(self.input_csv, 'w') as temp_csv:\n      temp_csv.write(TEST_INPUT)\n\n    with tf.gfile.Open(TEST_CSV, \"r\") as temp_csv:\n      test_csv_contents = temp_csv.read()\n\n    # Used for end-to-end tests.\n    for fname in ['adult.data', 'adult.test']:\n      with tf.gfile.Open(os.path.join(self.temp_dir, fname), 'w') as test_csv:\n        test_csv.write(test_csv_contents)\n\n  def test_input_fn(self):\n    dataset = wide_deep.input_fn(self.input_csv, 1, False, 1)\n    features, labels = dataset.make_one_shot_iterator().get_next()\n\n    with tf.Session() as sess:\n      features, labels = sess.run((features, labels))\n\n      # Compare the two features dictionaries.\n      for key in TEST_INPUT_VALUES:\n        self.assertTrue(key in features)\n        self.assertEqual(len(features[key]), 1)\n        feature_value = features[key][0]\n\n        # Convert from bytes to string for Python 3.\n        if isinstance(feature_value, bytes):\n          feature_value = feature_value.decode()\n\n        self.assertEqual(TEST_INPUT_VALUES[key], feature_value)\n\n      self.assertFalse(labels)\n\n  def build_and_test_estimator(self, model_type):\n    \"\"\"Ensure that model trains and minimizes loss.\"\"\"\n    model = wide_deep.build_estimator(self.temp_dir, model_type)\n\n    # Train for 1 step to initialize model and evaluate initial loss\n    def get_input_fn(num_epochs, shuffle, batch_size):\n      def input_fn():\n        return wide_deep.input_fn(\n            TEST_CSV, num_epochs=num_epochs, shuffle=shuffle,\n            batch_size=batch_size)\n      return input_fn\n\n    model.train(input_fn=get_input_fn(1, True, 1), steps=1)\n    initial_results = model.evaluate(input_fn=get_input_fn(1, False, 1))\n\n    # Train for 100 epochs at batch size 3 and evaluate final loss\n    model.train(input_fn=get_input_fn(100, True, 3))\n    final_results = model.evaluate(input_fn=get_input_fn(1, False, 1))\n\n    print('%s initial results:' % model_type, initial_results)\n    print('%s final results:' % model_type, final_results)\n\n    # Ensure loss has decreased, while accuracy and both AUCs have increased.\n    self.assertLess(final_results['loss'], initial_results['loss'])\n    self.assertGreater(final_results['auc'], initial_results['auc'])\n    self.assertGreater(final_results['auc_precision_recall'],\n                       initial_results['auc_precision_recall'])\n    self.assertGreater(final_results['accuracy'], initial_results['accuracy'])\n\n  def test_wide_deep_estimator_training(self):\n    self.build_and_test_estimator('wide_deep')\n\n  def test_end_to_end_wide(self):\n    integration.run_synthetic(\n        main=wide_deep.main, tmp_root=self.get_temp_dir(), extra_flags=[\n            '--data_dir', self.get_temp_dir(),\n            '--model_type', 'wide',\n        ],\n        synth=False, max_train=None)\n\n  def test_end_to_end_deep(self):\n    integration.run_synthetic(\n        main=wide_deep.main, tmp_root=self.get_temp_dir(), extra_flags=[\n            '--data_dir', self.get_temp_dir(),\n            '--model_type', 'deep',\n        ],\n        synth=False, max_train=None)\n\n  def test_end_to_end_wide_deep(self):\n    integration.run_synthetic(\n        main=wide_deep.main, tmp_root=self.get_temp_dir(), extra_flags=[\n            '--data_dir', self.get_temp_dir(),\n            '--model_type', 'wide_deep',\n        ],\n        synth=False, max_train=None)\n\n\nif __name__ == '__main__':\n  tf.test.main()\n"
  },
  {
    "path": "projects/__init__.py",
    "content": "import projects.ai2018 \ntry:\n  import projects.kaggle\n  import projects.feed\nexcept Exception:\n  pass\n"
  },
  {
    "path": "projects/ai2018/__init__.py",
    "content": "import projects.ai2018.sentiment\nimport projects.ai2018.reader\n"
  },
  {
    "path": "projects/ai2018/binary/__init__.py",
    "content": "import projects.ai2018.sentiment.prepare\n"
  },
  {
    "path": "projects/ai2018/binary/algos/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/binary/algos/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-02-16 19:12:02.066189\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nASPECTS = ['location', 'service', 'price', 'environment', 'dish', 'others']\n\nNUM_ATTRIBUTES = len(ATTRIBUTES)\nATTRIBUTES_MAP = dict(zip(ATTRIBUTES, range(NUM_ATTRIBUTES)))\n\n# -2,-1,0,1 -> 0,1,2,3\nNUM_CLASSES = 4\n\nflags.DEFINE_bool('share_pooling', True, 'wether to share pooling params for each attribute')\nflags.DEFINE_bool('share_fc', True, 'wether to share fc layer notice if share pooling actually must not share fc also no matter what you set share_fc')\n\nflags.DEFINE_integer('bert_num_heads', 12, '')\nflags.DEFINE_integer('bert_num_layers', 12, '')\nflags.DEFINE_float('bert_dropout', 0.1, '')\nflags.DEFINE_float('bert_lr_ratio', 0.1, '')\nflags.DEFINE_bool('use_soft_label', False, '')\nflags.DEFINE_bool('use_len', False, 'wether add length as a feature')\n\nflags.DEFINE_string('pretrain_encoder', 'bilm', 'bilm or bert')\nflags.DEFINE_bool('transformer_add_rnn', False, '')\n\nflags.DEFINE_bool('unk_aug', False, '')\n#flags.DEFINE_integer('unk_id', 1, 'bert unk id is 100')\nflags.DEFINE_integer('unk_aug_start_epoch', 2, '')\nflags.DEFINE_integer('unk_aug_start_step', 7000, '')\nflags.DEFINE_float('unk_aug_max_ratio', 0.02, '')\n\nflags.DEFINE_bool('use_class_weights', False, '')\nflags.DEFINE_bool('att_dropout', True, 'for tf rnet by default att with dropout')\n\nflags.DEFINE_integer('char_min_count', None, '')\nflags.DEFINE_integer('tag_min_count', None, '')\n\n#flags.DEFINE_float('label_smoothing', 0, '')\n\nflags.DEFINE_bool('cut_front', False, '')\nflags.DEFINE_integer('content_limit', 0, '')\nflags.DEFINE_float('other_corpus_factor', 1., '')\n\nflags.DEFINE_string('model', None, '')\n\nflags.DEFINE_string('loss', 'cross', '')\n\nflags.DEFINE_float('other_loss_factor', 1., '')\nflags.DEFINE_float('na_loss_ratio', 0., '')\nflags.DEFINE_bool('na_loss_ratio_add', True, '')\nflags.DEFINE_float('earth_mover_loss_ratio', 0, '')\n\nflags.DEFINE_string('aspect', 'all', 'location, service, price, enviroment, dis, others')\nflags.DEFINE_integer('attr_index', None, '')\n#flags.DEFINE_string('weights', None, '') \nflags.DEFINE_float('init_weight', 1., '')\n\nflags.DEFINE_float('mlp_ratio', 0., '')\n\nflags.DEFINE_bool('binary_class_index', None, '')\n\nflags.DEFINE_bool('use_hier_encode', False, '')\n\nflags.DEFINE_bool('use_type', False, '')\nflags.DEFINE_bool('use_type_emb', False, '')\nflags.DEFINE_integer('type_emb_dim', 100, '')\nflags.DEFINE_bool('rcontent', False, '')\n\nflags.DEFINE_bool('split_type', False, '')\n\nflags.DEFINE_string('att_type', 'p2q', '')\nflags.DEFINE_string('att_combiner', 'gate', '')\n\nflags.DEFINE_string('att_activation', 'relu', '')\n\nflags.DEFINE_bool('loss_combine_by_scalar', False, '')\n\nflags.DEFINE_string('encoder_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_mlp', False, '')\nflags.DEFINE_bool('use_word', True, '')\nflags.DEFINE_bool('use_simple_char', False, '')\nflags.DEFINE_string('simple_char_combiner', 'concat', '')\n## in prepare.config\n#flags.DEFINE_bool('use_char', False, '')\n\nflags.DEFINE_bool('use_token_info', False, '')\nflags.DEFINE_bool('use_info_fc', False, '')\nflags.DEFINE_string('token_info_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_comment_info', False, '')\nflags.DEFINE_bool('use_comment_info_fc', False, '')\nflags.DEFINE_string('comment_info_combiner', 'concat', '')\nflags.DEFINE_bool('comment_info_lang_only', False, '')\n\nflags.DEFINE_bool('cudnn_gru_encode', False, 'depreciated, for safe you could just use gru_baseline.py with auc 0.954 single model')\n\nflags.DEFINE_bool('use_pos', False, '')\nflags.DEFINE_bool('use_tag', False, '')\nflags.DEFINE_bool('use_ner', False, '')\nflags.DEFINE_integer('tag_emb_dim', 100, '')\n\nflags.DEFINE_bool('use_emb_fc', False, '')\nflags.DEFINE_bool('use_emb_att', False, '')\nflags.DEFINE_bool('use_emb_max', False, '')\n\nflags.DEFINE_float('sfu_keepprob', 0.5, '')\nflags.DEFINE_float('emb_keepprob', 0.5, '')\n\nflags.DEFINE_bool('emb_dropout', False, '')\n\nflags.DEFINE_bool('use_label_emb', False, '')\nflags.DEFINE_bool('use_label_att', False, '')\nflags.DEFINE_bool('simple_label_att', False, '')\nflags.DEFINE_bool('use_label_rnn', False, '')\n\nflags.DEFINE_string('label_attention_combiner', 'gate', 'gate or dsfu')\nflags.DEFINE_string('self_attention_combiner', 'gate', 'gate or dsfu')\n\nflags.DEFINE_integer('label_emb_dim', 100, '')\nflags.DEFINE_integer('label_emb_height', None, '')\nflags.DEFINE_bool('concat_label_emb', False, '')\nflags.DEFINE_bool('label2text_attention', False, '')\nflags.DEFINE_bool('perlabel_encoding', False, '')\n\nflags.DEFINE_bool('use_self_match', False, '')\n\nflags.DEFINE_bool('self_match_before_label_att', True, '')\n\nflags.DEFINE_string('loss_type', 'normal', '')\nflags.DEFINE_bool('hier_finetune', False, '')\n\nflags.DEFINE_bool('char_only', False, '')\nflags.DEFINE_integer('char_num_layers', 1, '')\nflags.DEFINE_integer('char_hidden_size', 100, '')\nflags.DEFINE_string('char_output_method', 'last', '')\n\nflags.DEFINE_integer('simple_char_num_layers', 3, '')\n\nflags.DEFINE_string('addtional_word_info', None, 'pos,tag,ner')\n\nflags.DEFINE_string('decay_target', None, 'loss or auc')\nflags.DEFINE_integer('decay_patience', 4, '')\nflags.DEFINE_float('decay_factor', 0.5, '')\nflags.DEFINE_float('decay_start_epoch_', 1., '')\n\nflags.DEFINE_bool('dynamic_weights', False, '')\n\nflags.DEFINE_bool('use_gate', False, '')\n\nflags.DEFINE_bool('use_position_encoding', False, '')\n"
  },
  {
    "path": "projects/ai2018/binary/algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 20:34:23.281520\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\nfrom algos.weights import *\nfrom algos.config import NUM_CLASSES\n\n#from evaluate import load_class_weights\n\ndef calc_loss(y, y_, weights, training=False):\n  #y += 2\n  #print(y_, y, weights)\n  #-----------deprciated seems per class learning rate decay do not improve\n  if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n    assert FLAGS.loss == 'cross'\n    loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights, reduction=tf.losses.Reduction.NONE)\n    loss = melt.adjust_lrs(loss)\n    loss = tf.reduce_mean(loss)\n    #print('--------------weights', weights)\n\n    # if weights == 1:\n    #   weights = tf.ones([FLAGS.num_learning_rate_weights], dtype=tf.float32)\n    #weights = tf.expand_dims(weights *  tf.get_collection('learning_rate_weights')[-1], 0)\n    #  FIXME weights actually is per example adjust not for classes.. should be of shape [batch_size]\n    #loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights)\n  else: \n    if FLAGS.loss == 'cross':\n      if not FLAGS.label_smoothing:\n        loss = tf.losses.sparse_softmax_cross_entropy(y, y_, weights=weights) \n      else:\n        onehot_labels = tf.one_hot(y, NUM_CLASSES)\n        print('--------------using label smoothing', FLAGS.label_smoothing)\n        loss = tf.losses.softmax_cross_entropy(onehot_labels, y_, weights=weights, label_smoothing=FLAGS.label_smoothing)\n    elif FLAGS.loss == 'focal':\n      loss = melt.losses.focal_loss(y, y_)\n\n  #----------depreciated below has bug..\n  if FLAGS.na_loss_ratio > 0.:\n    y_ = tf.concat([y_[:,:,0:1], tf.reduce_sum(y_[:,:,1:], -1, keepdims=True)], -1)\n    y_onehot = tf.one_hot(tf.to_int64(y > 0), 2)\n    if no_weights():\n      bloss = tf.losses.sigmoid_cross_entropy(y_onehot, y_)\n    else:\n      bloss = tf.losses.sigmoid_cross_entropy(y_onehot, y_, reduction=tf.losses.Reduction.NONE)\n      bloss = tf.reduce_sum(bloss * tf.expand_dims(weights, -1), -1)\n      bloss = tf.reduce_mean(bloss)\n    if FLAGS.na_loss_ratio_add:\n      loss = loss + FLAGS.na_loss_ratio * bloss\n    else:\n      loss = (1 - FLAGS.na_loss_ratio) * loss + FLAGS.na_loss_ratio * bloss\n\n  if FLAGS.earth_mover_loss_ratio > 0.:\n    y_onehot = tf.one_hot(y, 4)\n    earth_mover_loss = melt.losses.earth_mover_loss(y_onehot[:,:,1:], y_[:,:,1:])\n    loss = loss + FLAGS.earth_mover_loss_ratio * earth_mover_loss\n\n  return loss\n\n# now consider simple rule level 0 loss + level 1 loss\n# not imporve, worse...\ndef calc_hier_loss(y, y_, weights):\n  binary_label = tf.to_int64(tf.equal(y, 0))\n  # sigmoid reduction by default is not None will return scalar and if set None will return result shape as label\n  level0_loss  = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,0], weights=weights, reduction=tf.losses.Reduction.NONE)\n  mask = tf.to_float(1 - binary_label)\n  # softmax loss reduction by defualt is not None and will return scalar, set None will return shape as label\n  level1_loss = tf.losses.sparse_softmax_cross_entropy(tf.maximum(y - 1, 0), y_[:,:,1:], weights=weights, reduction=tf.losses.Reduction.NONE)\n\n  loss = level0_loss + level1_loss * mask\n  loss = tf.reduce_mean(loss)\n\n  return loss\n\ndef calc_hier_neu_loss(y, y_, weights):\n  binary_label = tf.to_int64(tf.equal(y, 0))\n  # sigmoid reduction by default is not None will return scalar and if set None will return result shape as label\n  level0_loss  = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,0], weights=weights, reduction=tf.losses.Reduction.NONE)\n  mask = tf.to_float(1 - binary_label)\n  # softmax loss reduction by defualt is not None and will return scalar, set None will return shape as label\n  level1_loss = tf.losses.sparse_softmax_cross_entropy(tf.maximum(y - 1, 0), y_[:,:,1:], weights=weights, reduction=tf.losses.Reduction.NONE)\n\n  loss = level0_loss + level1_loss * mask\n\n  # add neu binary\n  cid = 2\n  binary_label = tf.to_int64(tf.equal(y, cid))\n  binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=tf.losses.Reduction.NONE)\n  loss = loss + binary_loss\n\n  loss = tf.reduce_mean(loss)\n\n  return loss\n\n#now try to add neu binary loss, if imrove can try add all binary loss for na, neg,neu,pos\ndef calc_add_binary_loss(y, y_, cids, weights):\n  reduction = tf.losses.Reduction.SUM_BY_NONZERO_WEIGHTS if FLAGS.loss_combine_by_scalar else tf.losses.Reduction.NONE\n  loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights, reduction=reduction) \n  for cid in cids:\n    binary_label = tf.to_int64(tf.equal(y, cid))\n    binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=reduction)\n    loss = loss + binary_loss * FLAGS.other_loss_factor\n  loss = tf.reduce_mean(loss)\n  return loss\n\ndef calc_binary_loss(y, y_, cid, weights):\n  binary_label = tf.to_int64(tf.equal(y, cid))\n  binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights)\n  return binary_loss\n\ndef calc_regression_loss(y, y_, weights):\n  y = y * 2 + 2\n  return tf.losses.mean_squared_error(y, y_, weights=weights)\n\ndef calc_add_binaries_loss(y, y_, cid, weights):  \n  loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights, reduction=tf.losses.Reduction.NONE) \n  for cid in range(NUM_CLASSES):\n    binary_label = tf.to_int64(tf.equal(y, cid))\n    binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=tf.losses.Reduction.NONE)\n    loss = loss + binary_loss * (1 / NUM_CLASSES)\n  loss = tf.reduce_mean(loss)\n  return loss\n\ndef calc_binaries_only_loss(y, y_, cid, weights):  \n  loss = None\n  for cid in range(NUM_CLASSES):\n    binary_label = tf.to_int64(tf.equal(y, cid))\n    binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=tf.losses.Reduction.NONE)\n    if loss is None:\n      loss = binary_loss\n    else:\n      loss = loss + binary_loss\n    \n  loss = tf.reduce_mean(loss)\n  return loss\n  \ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  weights = get_weights(FLAGS.aspect, FLAGS.attr_index)\n\n  # only need this if we have label -1 means to mask \n  mask = y >= 0\n  weights = weights * tf.to_float(mask)\n  y = y * tf.to_int64(mask)\n\n  # if FLAGS.use_class_weights:\n  #   weights = load_class_weights()\n  #   print('--------------', weights)\n    \n  if FLAGS.loss_type == 'normal':\n    return calc_loss(y, y_, weights, training)\n  elif FLAGS.loss_type == 'binary':\n    return tf.losses.sigmoid_cross_entropy(tf.to_int64(y[:,FLAGS.binary_class_index:FLAGS.binary_class_index + 1] > 0), y_, \n                                           reduction=tf.losses.Reduction.NONE, weights=weights)\n  elif FLAGS.loss_type == 'hier':\n    # not improve deprecated\n    return calc_hier_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'add_neu_binary':\n    # neu cid is 2\n    return calc_add_binary_loss(y, y_, [2], weights)\n  elif FLAGS.loss_type.startswith('add_binary_'):\n    cids = [int(x) for x in FLAGS.loss_type.split('_')[-1].split(',')]\n    return calc_add_binary_loss(y, y_, cids, weights)\n  elif FLAGS.loss_type.startswith('binary_'):\n    cid = int(FLAGS.loss_type.split('_')[-1])\n    return calc_binary_loss(y, y_, cid, weights)\n  elif FLAGS.loss_type == 'regression':\n    return calc_regression_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'add_binaries':\n    return calc_add_binaries_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'binaries_only':\n    return calc_binaries_only_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'hier_neu':\n    return calc_hier_neu_loss(y, y_, weights)\n  else:\n    raise ValueError(f'Unsupported loss type{FLAGS.loss_type}')\n"
  },
  {
    "path": "projects/ai2018/binary/algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ptr-net.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 11:50:08.306272\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.weights import *\nimport prepare.config\n\nimport melt\nlogging = melt.logging\nimport gezi \n\nimport numpy as np\n\nUNK_ID = 1\n\n# code above is dpreciated juse use Models derived from ModelBase\nclass ModelBase(melt.Model):\n  def __init__(self, embedding=None, lm_model=False, use_text_encoder=True):\n    super(ModelBase, self).__init__()\n    \n    self.num_units = FLAGS.rnn_hidden_size if FLAGS.encoder_type != 'convnet' else FLAGS.num_filters\n    self.dropout_rate = 1 - FLAGS.keep_prob\n    self.keep_prob = 1 - self.dropout_rate\n    self.num_layers = FLAGS.num_layers\n\n    config = {\n      'word': {\n        'vocab': FLAGS.vocab,\n        'num_layers': FLAGS.num_layers,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'emb_dim': FLAGS.emb_dim,\n        'embedding_file': FLAGS.word_embedding_file,\n        'trainable': FLAGS.finetune_word_embedding,\n        'num_finetune': FLAGS.num_finetune_words,\n      },\n      'char': {\n        'limit': FLAGS.char_limit,\n        'use_char_emb': FLAGS.use_char_emb,\n        'emb_dim': FLAGS.char_emb_dim,\n        'trainable': FLAGS.finetune_char_embedding,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'output_method': FLAGS.char_output_method,\n        'combiner': FLAGS.char_combiner,\n        'padding': FLAGS.char_padding,\n        'num_finetune': FLAGS.num_finetune_chars,\n      },\n      'pos': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'ner': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'encoder': FLAGS.encoder_type,\n      'dropout_rate': 1 - FLAGS.keep_prob,\n      'recurrent_dropout': FLAGS.recurrent_dropout,\n      'cell': FLAGS.cell,\n      'rnn_padding': FLAGS.rnn_padding,\n      'rnn_no_padding': FLAGS.rnn_no_padding,\n      'rnn_train_init_state': FLAGS.rnn_train_init_state,\n      'concat_layers': FLAGS.concat_layers,\n    }\n\n    self.lm_model = None\n    if use_text_encoder:\n      if FLAGS.pretrain_encoder == 'bilm':\n        self.encode = wenzheng.TextEncoder(config, \n                                           embedding,\n                                           use_char=FLAGS.use_char,\n                                           use_char_emb=FLAGS.use_char_emb,\n                                           use_pos=FLAGS.use_pos,\n                                           use_ner=FLAGS.use_ner,\n                                           lm_model=lm_model)\n      else:\n        self.encode = wenzheng.BertEncoder(embedding)\n\n      self.lm_model = self.encode.lm_model\n\n    if not self.lm_model:\n      # hier not improve\n      self.hier_encode = melt.layers.HierEncode() if FLAGS.use_hier_encode else None\n\n      # top-k best, max,att can benfit ensemble(better then max, worse then topk-3), topk,att now best with 2layers\n      logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n      logging.info('topk:', FLAGS.top_k)\n      self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k,\n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n      #self.pooling = keras.layers.GlobalMaxPool1D()\n\n      # mlp not help much!\n      if FLAGS.mlp_ratio != 0:\n        self.dropout = keras.layers.Dropout(0.3)\n        if FLAGS.mlp_ratio < 0:\n          # here activation hurt perf!\n          #self.dense = keras.layers.Dense(NUM_ATTRIBUTES * NUM_CLASSES * 2, activation=tf.nn.relu)\n          self.dense = keras.layers.Dense(NUM_ATTRIBUTES * NUM_CLASSES * 2)\n        elif FLAGS.mlp_ratio <= 1:\n          self.dense = melt.layers.DynamicDense(FLAGS.mlp_ratio)\n        else:\n          self.dense = kears.layers.Dense(int(FLAGS.mlp_ratio))\n      else:\n        self.dense = None\n\n      if FLAGS.use_len:\n        self.len_embedding = wenzheng.Embedding(3000, 32)\n\n      self.num_classes = NUM_CLASSES if FLAGS.binary_class_index is None else 1\n      if FLAGS.loss_type == 'regression':\n        self.num_classes = 1\n      self.logits = keras.layers.Dense(NUM_ATTRIBUTES * self.num_classes, activation=None)\n\n  def unk_aug(self, x, x_mask=None, training=False):\n    \"\"\"\n    randomly make 10% words as unk\n    TODO this works, but should this be rmoved and put it to Dataset so can share for both pyt and tf\n    \"\"\"\n    # if not self.training or not FLAGS.unk_aug or melt.epoch() < FLAGS.unk_aug_start_epoch:\n    #   return x \n    if not training or not FLAGS.unk_aug:\n      return x\n      \n    def aug(x, x_mask):\n      # print('---------------do unk aug')\n      # print('ori_x....', x)\n      if x_mask is None:\n        x_mask = x > 0\n      x_mask = tf.to_int64(x_mask)\n      ratio = tf.random_uniform([1,], 0, FLAGS.unk_aug_max_ratio)\n      mask = tf.random_uniform([melt.get_shape(x, 0), melt.get_shape(x, 1)])  > ratio\n      mask = tf.to_int64(mask)\n      rmask = FLAGS.unk_id * (1 - mask)\n      x = (x * mask + rmask) * x_mask\n      #print('aug_x....', x)\n      return x\n\n    # print('----------------', FLAGS.unk_aug_start_step)\n    # print(tf.constant(FLAGS.unk_aug_start_step))\n    # print(tf.train.get_global_step())\n    # print(tf.train.get_global_step() < tf.constant(FLAGS.unk_aug_start_step))\n    # well, below eager ok, but graph mode, get_global_step() is None\n    #return tf.cond(tf.train.get_global_step() < tf.constant(FLAGS.unk_aug_start_step), lambda: x, lambda: aug(x, x_mask))\n    return tf.cond(tf.train.get_or_create_global_step() < tf.constant(FLAGS.unk_aug_start_step, dtype=tf.int64), lambda: x, lambda: aug(x, x_mask))\n\n\nclass BiLanguageModel(ModelBase):\n  def __init__(self, embedding=None, lm_model=True):\n    super(BiLanguageModel, self).__init__(embedding, lm_model=True)\n\n  def call(self, input, training=False):\n    return self.encode(input, training=False)\n\nclass RNet(ModelBase):\n  def __init__(self, embedding=None, lm_model=False):\n    super(RNet, self).__init__(embedding, lm_model=lm_model)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob if FLAGS.att_dropout else 1., combiner=FLAGS.att_combiner)\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob, cell=FLAGS.cell)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob, cell=FLAGS.cell)\n\n    \n    #self.multiplier = 2 if self.encode.bidirectional else 1\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob if FLAGS.att_dropout else 1., combiner=FLAGS.att_combiner)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob, cell=FLAGS.cell)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n     \n  def call(self, input, training=False):\n    x = input['content'] \n    x = self.unk_aug(x, training=training)\n\n    c_mask = tf.cast(x, tf.bool)\n    batch_size = melt.get_shape(x, 0)\n    c_len, max_c_len = melt.length2(x)\n    ori_c_len = c_len\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      #c_len = tf.ones([batch_size], dtype=x.dtype) * tf.cast(melt.get_shape(x, -1), x.dtype)\n      c_len = max_c_len\n\n    x = self.encode(input, c_len, max_c_len, training=training)\n\n    if self.lm_model:\n      return x\n    \n    # not help\n    if self.hier_encode is not None:\n      x = self.hier_encode(x, c_len)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding(None)\n      label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n      if FLAGS.use_label_rnn:\n        label_seq = self.label_encode(label_seq, tf.ones([batch_size], tf.int32) * tf.cast(melt.get_shape(label_emb, 1), tf.int32))\n      x = self.att_dot_attention(x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n\n      if not FLAGS.simple_label_att:\n        x = self.att_encode(x, c_len, training=training)\n\n    # put self match at last, selfmatch help a bit\n    if FLAGS.use_self_match:\n       x = self.match_dot_attention(x, x, mask=c_mask, training=training) \n       x = self.match_encode(x, c_len, training=training) \n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    if FLAGS.use_len:\n      len_emb = self.len_embedding(ori_c_len)\n      x = tf.concat([x, len_emb], -1)\n\n    # not help much\n    if self.dense is not None:\n      x = self.dense(x)\n      x = self.dropout(x, training=training)\n\n    if not FLAGS.use_label_emb:\n      x = self.logits(x)\n    else:\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    # # No help match\n    # if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES * NUM_CLASSES:\n    #   x = melt.adjust_lrs(x)\n\n    if FLAGS.loss_type == 'regression':\n      x = tf.nn.sigmoid(x) * 10\n    else:\n      x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, self.num_classes])\n      \n    return x\n\n# same as Model but for match attention using SeqAttn\nclass RNetV2(RNet):\n  def __init__(self, embedding=None, lm_model=False):\n    super(RNetV2, self).__init__(embedding, lm_model=lm_model)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    \n    #self.multiplier = 2 if self.encode.bidirectional else 1\n\n    # hier a bit worse\n    self.hier_encode = melt.layers.HierEncode() if FLAGS.use_hier_encode else None\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False, keep_prob=self.keep_prob)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n  \n  def call(self, input, training=False):\n    x = input['content'] \n    x = self.unk_aug(x, training=training)\n\n    c_mask = tf.cast(x, tf.bool)\n    batch_size = melt.get_shape(x, 0)\n    c_len, max_c_len = melt.length2(x)\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      #c_len = tf.ones([batch_size], dtype=x.dtype) * tf.cast(melt.get_shape(x, -1), x.dtype)\n      c_len = max_c_len\n\n    x = self.encode(input, c_len, max_c_len, training=training)\n\n    if self.lm_model:\n      return x\n    \n    # not help\n    if self.hier_encode is not None:\n      x = self.hier_encode(x, c_len)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding(None)\n      label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n      if FLAGS.use_label_rnn:\n        label_seq = self.label_encode(label_seq, tf.ones([batch_size], tf.int32) * tf.cast(melt.get_shape(label_emb, 1), tf.int32))\n      x = self.att_dot_attention(x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n\n      if not FLAGS.simple_label_att:\n        x = self.att_encode(x, c_len, training=training)\n\n    # put self match at last, selfmatch help a bit\n    if FLAGS.use_self_match:\n       x = self.match_dot_attention(x, mask=c_mask, training=training) \n       x = self.match_encode(x, c_len, training=training) \n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    # not help much\n    if self.dense is not None:\n      x = self.dense(x)\n      x = self.dropout(x, training=training)\n\n    if not FLAGS.use_label_emb:\n      x = self.logits(x)\n    else:\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    # # No help match\n    # if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES * NUM_CLASSES:\n    #   x = melt.adjust_lrs(x)\n\n    if FLAGS.loss_type == 'regression':\n      x = tf.nn.sigmoid(x) * 10\n    else:\n      x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, self.num_classes])\n      \n    return x\n\n# same as RNetV2 but is gate + sfu\nclass RNetV3(RNet):\n  def __init__(self, embedding=None):\n    super(RNetV3, self).__init__(embedding)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner='gate')\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.SelfAttnMatch(combiner='sfu', identity=True, diag=False, keep_prob=self.keep_prob)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n#same as RNetV3 but all use sfu and since dot attention with sfu not good, change \n# V4 is bad , seems for label attention can only use gate\nclass RNetV4(RNet):\n  def __init__(self, embedding=None):\n    super(RNetV4, self).__init__(embedding)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.melt.layers.SeqAttnMatch(combiner='sfu', identity=True, keep_prob=self.keep_prob)\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.SelfAttnMatch(combiner='sfu', identity=True, diag=False, keep_prob=self.keep_prob)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n \n\n #same as ModelV2 but this is pytorch Mreader like attention(light attention)\nclass MReader(ModelBase):\n  def __init__(self, embedding=None):\n    super(MReader, self).__init__()\n\n    #same input dim then outpu dim , if concat will * num_layers\n    assert not FLAGS.concat_layers\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES * NUM_ATTRIBUTES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attentions = []\n        self.att_encodes = []\n        for _ in range(FLAGS.hop):\n          self.att_dot_attentions.append(melt.layers.melt.layers.SeqAttnMatch(combiner=FLAGS.att_combiner, identity=True))\n          #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n          self.att_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_self_match:\n      self.match_dot_attentions = []\n      self.match_encodes = []\n      for _ in range(FLAGS.hop):\n        self.match_dot_attentions.append(melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n  def call(self, input, training=False):\n    x = input['content'] \n    x = self.unk_aug(x, training=training)\n\n    c_mask = tf.cast(x, tf.bool)\n    batch_size = melt.get_shape(x, 0)\n    c_len, max_c_len = melt.length2(x)\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      #c_len = tf.ones([batch_size], dtype=x.dtype) * tf.cast(melt.get_shape(x, -1), x.dtype)\n      c_len = max_c_len\n\n    x = self.encode(input, c_len, max_c_len, training=training)\n    \n    # not help\n    if self.hier_encode is not None:\n      x = self.hier_encode(x, c_len)\n\n    # yes just using label emb..\n    label_emb = self.label_embedding(None)\n    label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n    label_seq = self.label_encode(label_seq, tf.ones([batch_size], dtype=tf.int64) * self.label_emb_height, training=training)\n\n    for i in range(FLAGS.hop):\n      x = self.att_dot_attentions[i](x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n      x = self.att_encodes[i](x, c_len, training=training)\n      x = self.match_dot_attentions[i](x, mask=c_mask, training=training) \n      x = self.match_encodes[i](x, c_len, training=training) \n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n    #x = self.pooling(x)\n\n    # not help much\n    if self.dense is not None:\n      x = self.dense(x)\n      x = self.dropout(x, training=training)\n\n    if not FLAGS.use_label_emb:\n      x = self.logits(x)\n    else:\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, self.num_classes])\n    \n    return x\n\n#--------------BERT!\n# using bert transformer\n\nfrom third.bert import modeling\n\nclass Transformer(ModelBase):\n  def __init__(self, embedding=None):\n    super(Transformer, self).__init__(embedding, lm_model=False, use_text_encoder=False)\n\n    self.init_checkpoint = None\n    \n    if FLAGS.bert_dir:\n      bert_dir = FLAGS.bert_dir\n      bert_config_file = f'{bert_dir}/bert_config.json' \n      bert_config = modeling.BertConfig.from_json_file(bert_config_file)\n      self.init_checkpoint= f'{bert_dir}/bert_model.ckpt' \n    elif FLAGS.bert_config_file:\n      bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n    else:\n      bert_config = {\n        \"attention_probs_dropout_prob\": 0.1, \n        \"directionality\": \"bidi\", \n        \"hidden_act\": \"gelu\", \n        \"hidden_dropout_prob\": 0.1, \n        \"hidden_size\": 768, \n        \"initializer_range\": 0.02, \n        \"intermediate_size\": 3072, \n        \"max_position_embeddings\": 512, \n        \"num_attention_heads\": 12, \n        \"num_hidden_layers\": 12, \n        \"pooler_fc_size\": 768, \n        \"pooler_num_attention_heads\": 12, \n        \"pooler_num_fc_layers\": 3, \n        \"pooler_size_per_head\": 128, \n        \"pooler_type\": \"first_token_transform\", \n        \"type_vocab_size\": 2, \n        \"vocab_size\": gezi.Vocabulary(FLAGS.vocab).size()\n      }\n      bert_config = modeling.BertConfig.from_dict(bert_config)\n\n    bert_config.attention_probs_dropout_prob = FLAGS.bert_dropout\n    bert_config.hidden_dropout_prob = FLAGS.bert_dropout\n    bert_config.num_hidden_layers = FLAGS.bert_num_layers \n    bert_config.num_attention_heads = FLAGS.bert_num_heads\n    logging.info('bert_config\\n', bert_config.to_json_string())\n    self.bert_config = bert_config\n\n    if FLAGS.transformer_add_rnn:\n       self.rnn_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n  def restore(self):\n    tvars = tf.trainable_variables()\n    (assignment_map,\n    initialized_variable_names) = modeling.get_assigment_map_from_checkpoint(\n        tvars, self.init_checkpoint)\n\n    tf.train.init_from_checkpoint(self.init_checkpoint, assignment_map)\n\n    logging.info(\"**** Trainable Variables ****\")\n    for var in tvars:\n      init_string = \"\"\n      if var.name in initialized_variable_names:\n        init_string = \", *INIT_FROM_CKPT*\"\n      logging.info(\"  name = %s, shape = %s%s\", var.name, var.shape,\n                      init_string)  \n\n  def call(self, input, training=False):\n    self.step += 1\n    x = input['content']\n    x = self.unk_aug(x, training=training)\n    batch_size = melt.get_shape(x, 0) \n    # TODO move to __init__\n    model = modeling.BertModel(\n      config=self.bert_config,\n      is_training=training,\n      input_ids=x,\n      use_one_hot_embeddings=FLAGS.use_tpu)\n\n    if self.step == 0 and self.init_checkpoint:\n      self.restore()\n\n    c_len = melt.length(x)\n\n    if FLAGS.encoder_output_method == 'last':\n      x = model.get_pooled_output()\n    else:\n      x = model.get_sequence_output()\n\n    logging.info('---------------bert_lr_ratio', FLAGS.bert_lr_ratio)\n    x = x * FLAGS.bert_lr_ratio + tf.stop_gradient(x) * (1 - FLAGS.bert_lr_ratio)\n    \n    if FLAGS.transformer_add_rnn:\n      assert FLAGS.encoder_output_method != 'last'\n      x = self.rnn_encode(x, c_len)\n    \n    if FLAGS.encoder_output_method != 'last':\n      x = self.pooling(x, c_len)\n      x2 = model.get_pooled_output()\n      x = tf.concat([x, x2], -1)\n    x = self.logits(x)\n    x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, NUM_CLASSES])\n    return x\n\n"
  },
  {
    "path": "projects/ai2018/binary/algos/weights.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   weights.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 19:45:07.901500\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\nimport numpy as np\n\nfrom algos.config import NUM_CLASSES, NUM_ATTRIBUTES, ATTRIBUTES, ATTRIBUTES_MAP\n\nimport melt\nlogging = melt.logging\n\ndef no_weights():\n  return FLAGS.aspect == 'all' and FLAGS.attr_index is None\n\ndef get_pos(aspect):\n  start = None \n  end = None\n  index = None\n  if '-' in aspect:\n    aspect, index = aspect.split('-')\n    index = int(index)\n  if aspect == 'location':\n    start = 0\n    end = 3\n  elif aspect == 'service':\n    start = 3\n    end = 7\n  elif aspect == 'price':\n    start = 7\n    end = 10\n  elif aspect == 'environment':\n    start = 10\n    end = 14\n  elif aspect == 'dish':\n    start = 14\n    end = 18\n  elif aspect == 'others':\n    start = 18\n    end = 20 \n\n  if index is not None:\n    start += index \n    end = start + 1\n\n  return start, end\n\ndef parse_weights():\n  if ':' in FLAGS.weights:\n    weights = np.ones([NUM_ATTRIBUTES]) * FLAGS.init_weight\n    for item in FLAGS.weights.split(','):\n      aspect, val = item.split(':')\n      val = float(val)\n      start, end = get_pos(aspect)\n      if start is None:\n        assert aspect in ATTRIBUTES_MAP\n        weights[ATTRIBUTES_MAP[aspect]] = val\n      else:\n        for i in range(start, end):\n          weights[i] = val\n  else:\n    weights = list(map(float, FLAGS.weights.split(',')))\n    assert len(weights) == NUM_ATTRIBUTES\n\n  return weights\n\ndef get_weights(aspect, attr_index=None):\n  if FLAGS.weights:\n    weights = parse_weights()\n  else:\n    weights = np.zeros([NUM_ATTRIBUTES])\n\n    if no_weights():\n      return 1.\n    \n    if attr_index is not None:\n      weights[attr_index] = 1. \n\n    start, end = get_pos(aspect)\n    if start is None:\n      assert aspect in ATTRIBUTES_MAP\n      weights[ATTRIBUTES_MAP[aspect]] = 1.\n    else:\n      for i in range(start, end):\n        weights[i] = 1.\n\n  logging.info('weights:', weights)\n  logging.info('weights:', list(zip(ATTRIBUTES, weights)))\n  return tf.expand_dims(tf.constant(weights, dtype=tf.float32), 0)\n"
  },
  {
    "path": "projects/ai2018/binary/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom collections import namedtuple\n\nimport gezi\nimport melt\nlogging = melt.logging\nfrom wenzheng.utils import vocabulary\n\nimport prepare.config\n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n\n  def parser(self, example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    features_dict = {\n      'id':  tf.FixedLenFeature([], tf.string),\n      'content_str': tf.FixedLenFeature([], tf.string),\n      'content': tf.VarLenFeature(tf.int64),\n      'char': tf.VarLenFeature(tf.int64),\n      'label': tf.FixedLenFeature([], tf.int64),\n      'source':  tf.FixedLenFeature([], tf.string),\n      }\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    content = features['content']\n    content = melt.sparse_tensor_to_dense(content)\n\n    features['content'] = content\n    label = features['label']\n\n    #if FLAGS.use_char:\n    chars = features['char']\n    chars = melt.sparse_tensor_to_dense(chars)\n    # if FLAGS.char_min_count:\n    #   chars = melt.greater_then_set(chars, FLAGS.char_min_count, UNK_ID)\n    features['char'] = chars\n\n    x = features\n    y = label\n\n    return x, y\n\n"
  },
  {
    "path": "projects/ai2018/binary/evaluate.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('info_path', None, '')\nflags.DEFINE_bool('auc_need_softmax', True, '')\n\nflags.DEFINE_string('class_weights_path', './mount/temp/ai2018/sentiment/class_weights.npy', '')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\n\nflags.DEFINE_bool('show_detail', False, '')\n\nflags.DEFINE_string('i', '.', '')\n\nflags.DEFINE_string('metric_name', 'adjusted_f1/mean', '')\nflags.DEFINE_float('min_thre', 0., '0.705')\nflags.DEFINE_integer('len_thre', 256, '')\nflags.DEFINE_float('max_thre', 1000., '')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\n\n#from sklearn.utils.extmath import softmax\nfrom sklearn.metrics import log_loss, roc_auc_score\n\nimport numpy as np\nimport glob\nimport gezi\nimport melt \nlogging = melt.logging\n\nfrom wenzheng.utils import ids2text\n\n\nimport pickle\nimport pandas as pd\nimport traceback\n\n#since we have same ids... must use valid and test 2 infos\nvalid_infos = {}\ntest_infos = {}\n\ndecay = None\nwnames = []\n\ndef init():\n  global valid_infos, test_infos\n  \n  with open(FLAGS.info_path, 'rb') as f:\n    valid_infos = pickle.load(f)\n  if FLAGS.test_input:\n    with open(FLAGS.info_path.replace('.pkl', '.test.pkl'), 'rb') as f:\n      test_infos = pickle.load(f)\n\n  ids2text.init()\n\ndef calc_loss(labels, predicts):\n  \"\"\"\n  softmax loss, mean loss and per attr loss\n  \"\"\"\n  names = ['loss']\n  loss = log_loss(labels, predicts)\n  vals = [loss] \n\n  return vals, names\n\n# TODO understand macro micro..\ndef calc_auc(labels, predicts):\n  \"\"\"\n  per attr auc\n  \"\"\"\n  names = ['auc']\n  auc = roc_auc_score(labels, predicts)\n  vals = [auc] \n\n  return vals, names\n\ndef evaluate(labels, predicts):\n  vals, names = calc_auc(labels, predicts)\n  vals_loss, names_loss = calc_loss(labels, predicts)\n  \n  vals += vals_loss\n  names += names_loss\n\n  return vals, names\n  \n"
  },
  {
    "path": "projects/ai2018/binary/prepare/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 14:44:21.024368\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('use_char', True, '')\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_integer('word_limit', 3000, '')\nflags.DEFINE_integer('content_limit_', None, 'used for bert 512')\n#flags.DEFINE_bool('use_pos', False, '')\n"
  },
  {
    "path": "projects/ai2018/binary/prepare/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/binary/valid.txt', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/binary/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_integer('num_records_', None, '10 or 5?')\nflags.DEFINE_integer('start_index', 0, 'set it to 1 if you have valid file which you want to put in train as fold 0')\nflags.DEFINE_bool('use_fold', True, '')\nflags.DEFINE_bool('augument', False, '')\nflags.DEFINE_string('mode', None, '')\nflags.DEFINE_string('mode_', None, '')\nflags.DEFINE_bool('ignore_start_end', False, 'If you have not remove start and end quota before,you can filter here')\nflags.DEFINE_bool('add_start_end_', True, '')\nflags.DEFINE_bool('has_position', False, '')\nflags.DEFINE_bool('fixed_vocab', False, '')\nflags.DEFINE_string('start_mark', '<S>', '')\nflags.DEFINE_string('end_mark', '</S>', '')\nflags.DEFINE_string('unk_word', '<UNK>', '')\nflags.DEFINE_bool('word_only', False, '')\nflags.DEFINE_bool('use_soft_label_', False, '')\nflags.DEFINE_bool('is_soft_label', False, '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\ndf = None\n\nvocab = None\nchar_vocab = None\npos_vocab = None\nner_vocab = None\n\nseg_result = None\npos_result = None\nner_result = None\n\ndef get_mode(path):\n  mode = 'train'\n  if 'train' in path:\n    mode ='train'\n  elif 'valid' in path:\n    mode = 'valid'\n  elif 'test' in path:\n    mode = 'test'\n  elif '.pm' in path:\n    mode = 'pm'\n  elif 'trans' in path:\n    mode = 'trans' \n  elif 'deform' in path:\n    mode = 'deform'\n  elif 'canyin' in path:\n    mode = 'canyin'\n  elif 'dianping' in path:\n    mode = 'dianping'\n  elif 'ensemble.infer.debug.csv' in path:\n    mode = 'test'\n  if FLAGS.augument:\n    mode = 'aug.' + mode\n  if FLAGS.mode:\n    mode = FLAGS.mode\n  return mode\n\ndef build_features(index):\n  mode = get_mode(FLAGS.input)\n\n  start_index = FLAGS.start_index\n\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/{1}.record'.format(mode, index + start_index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(df)\n  num_records = FLAGS.num_records_ \n  ## TODO FIXME whty here still None ? FLAGS.num_records has bee modified before in main as 7 ...\n  #print('---------', num_records, FLAGS.num_records_)\n  if not num_records:\n    if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n      num_records = 1\n    else:\n      num_records = 1\n  #print('------------------', num_records, FLAGS.num_records_)\n  start, end = gezi.get_fold(total, num_records, index)\n\n  print('total', total, 'infile', FLAGS.input, 'out_file', out_file, 'num_records', num_records,  'start', start, 'end', end)\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for i in tqdm(range(start, end), ascii=True):\n      try:\n        #row = df.iloc[i]\n        row = df[i]\n        id = str(row[0])\n\n        words = row[-1].split('\\t')\n\n        content = row[2] \n        content_ori = content\n        content = filter.filter(content)\n        \n        label = int(row[1])\n\n        content_ids = [vocab.id(x) for x in words]\n\n        if len(content_ids) > max_len:\n          max_len = len(content_ids)\n          print('max_len', max_len)\n\n        if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n          print('{} {} {}'.format(id, len(content_ids), content_ori))\n\n        content_ids = content_ids[:FLAGS.word_limit]\n        words = words[:FLAGS.word_limit]\n\n        # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode  \n        if FLAGS.use_char:\n          chars = [list(word) for word in words]\n          char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n          \n          vocab_ = char_vocab if char_vocab else vocab\n\n          for i, token in enumerate(chars):\n            for j, ch in enumerate(token):\n              if j == FLAGS.char_limit:\n                break\n              char_ids[i, j] = vocab_.id(ch)\n\n          char_ids = list(char_ids.reshape(-1))\n          if np.sum(char_ids) == 0:\n            print('------------------------bad id', id)\n            print(content_ids)\n            print(words)\n            exit(0)\n        else:\n          char_ids = [0]\n\n        feature = {\n                    'id': melt.bytes_feature(id),\n                    'content':  melt.int64_feature(content_ids),\n                    'content_str': melt.bytes_feature(content_ori), \n                    'char': melt.int64_feature(char_ids),\n                    'source': melt.bytes_feature(mode), \n                  }\n        feature['label'] = melt.int64_feature(label) \n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        writer.write(record)\n        num += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\n\ndef main(_):  \n  mode = get_mode(FLAGS.input)\n \n  global vocab, char_vocab \n  vocab = gezi.Vocabulary(FLAGS.vocab_, fixed=FLAGS.fixed_vocab, unk_word=FLAGS.unk_word)\n  char_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt')\n  if os.path.exists(char_vocab_file):\n    char_vocab = Vocabulary(char_vocab_file)\n    print('char vocab size:', char_vocab.size())\n  \n  mode_ = 'train'\n  if 'valid' in FLAGS.input:\n    mode_ = 'valid'\n  elif 'test' in FLAGS.input:\n    mode_ = 'test'\n  else:\n    assert 'train' in FLAGS.input\n\n  if FLAGS.augument:\n    mode_ = 'aug.' + mode_\n\n  if FLAGS.mode_:\n    mode_ = FLAGS.mode_\n\n  global df\n  df = []\n  for line in open(FLAGS.input):\n    df.append(line.strip().split('\\t', 3))\n  \n  pool = multiprocessing.Pool()\n\n  if not FLAGS.num_records_:\n    if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n      FLAGS.num_records_ = 1\n    else:\n      FLAGS.num_records_ = 1\n\n  print('num records file to gen', FLAGS.num_records_)\n\n  #FLAGS.num_records_ = 1\n\n  pool.map(build_features, range(FLAGS.num_records_))\n  pool.close()\n  pool.join()\n\n  # for i in range(FLAGS.num_records_):\n  #   build_features(i)\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/binary/prepare/run.sh",
    "content": "python ./gen-records.py \npython ./gen-records.py  --input ./mount/data/ai2018/binary/train.txt\n"
  },
  {
    "path": "projects/ai2018/binary/prepare/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('feed_single', False, '')\nflags.DEFINE_bool('to_lower', True, '')\n\nimport sys \nimport os\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \n# TODO check 2018.10.01 add multi grid\ndef text2ids(text, preprocess=True, return_words=False):\n  wenzheng.utils.text2ids.init()\n  if preprocess:\n    text = filter.filter(text)\n  return to_ids(text, \n                seg_method=FLAGS.seg_method, \n                feed_single=FLAGS.feed_single,\n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                multi_grid=False,\n                pad=False,\n                return_words=return_words)\n  \n"
  },
  {
    "path": "projects/ai2018/binary/read-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   inference.py\n#        \\author   chenghuige  \n#          \\date   2018-02-05 20:05:25.123740\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/temp/ai2018/binary/tfrecord/valid/*record,', '')\nflags.DEFINE_integer('batch_size_', 512, '')\nflags.DEFINE_string('type', 'debug', '')\nflags.DEFINE_string('base', './mount/temp/ai2018/binary/tfrecord/', '')\n#flags.DEFINE_integer('unk_id', 1, '')\n#flags.DEFINE_integer('fold', None, '') \nflags.DEFINE_bool('dump_valid', True, '')\nflags.DEFINE_bool('dump_test', False, '') \nflags.DEFINE_integer('unk_id', 1, 'bert unk id is 100')\n\nimport tensorflow as tf\ntf.enable_eager_execution()\n\nimport sys, os\nfrom sklearn import metrics\nimport pandas as pd \nimport numpy as np\nimport gezi\n\n\nimport pickle\n\nfrom wenzheng.utils import ids2text\n\nimport melt\nlogging = melt.logging\nfrom dataset import Dataset\n\nfrom tqdm import tqdm\n\n# TODO by default save all ? so do not need to change the code ? \n# _asdict() https://stackoverflow.com/questions/26180528/python-named-tuple-to-dictionary\n# err... valid and test data share same id...\ndef deal(dataset, infos):\n  for x, _ in tqdm(dataset, ascii=True):\n    for key in x:\n      x[key] = x[key].numpy()\n      if type(x[key][0]) == bytes:\n        x[key] = gezi.decode(x[key])\n    ids = x['id']\n    for j in range(len(ids)):\n      infos[ids[j]] = {}\n      for key in x:\n        infos[ids[j]][key] = x[key][j]\n\ndef main(_):\n\n  base = FLAGS.base\n  logging.set_logging_path('./mount/tmp/')\n  vocab_path = f'{base}/vocab.txt'\n  ids2text.init(vocab_path)\n  FLAGS.vocab = f'{base}/vocab.txt'\n\n  # FLAGS.length_index = 2\n  # FLAGS.buckets = '100,400'\n  # FLAGS.batch_sizes = '64,64,32'\n\n  input_ = FLAGS.input \n  if FLAGS.type == 'test':\n    input_ = input_.replace('valid', 'test')\n\n  inputs = gezi.list_files(input_)\n  inputs.sort()\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n\n  if FLAGS.type == 'debug':\n    print('type', FLAGS.type, 'inputs', inputs, file=sys.stderr)\n\n    dataset = Dataset('valid')\n    dataset = dataset.make_batch(FLAGS.batch_size_, inputs)\n\n    print('dataset', dataset)\n\n    timer = gezi.Timer('read record')\n    for i, (x, y) in enumerate(dataset):\n      # if i % 10 == 1:\n      #   print(x['id'])\n      #   print(x['content'][0])\n      #   print(ids2text.ids2text(x['content'][0], sep='|'))\n      #   print(x['content'])\n      #   print(type(x['id'].numpy()[0]) == bytes)\n      #   break\n      x['id'] = gezi.decode(x['id'].numpy())\n      x['content_str'] = gezi.decode(x['content_str'].numpy())\n      for j, id in enumerate(x['id']):\n        if id == '573':\n          print(id, x['content_str'][j])\n  elif FLAGS.type == 'dump':\n    valid_infos = {}\n    test_infos = {}\n    # TODO notice train and valid also share ids.. so valid only save 0 is ok...\n    # 120000 doc but first 15000 train duplicate id with valid so only save valid result for those ids currently \n    if FLAGS.dump_valid:\n      inputs = gezi.list_files(f'{base}/valid/*record')\n      dataset = Dataset('valid')\n      dataset = dataset.make_batch(1, inputs)\n      deal(dataset, valid_infos)\n      print('after valid', len(valid_infos))\n\n      for key in valid_infos:\n        print(valid_infos[key])\n        print(ids2text.ids2text(valid_infos[key]['content']))\n        break\n\n      ofile = f'{base}/info.pkl'\n      with open(ofile, 'wb') as out:\n        pickle.dump(valid_infos, out)  \n\n      del valid_infos\n\n    if FLAGS.dump_test:\n      inputs = gezi.list_files(f'{base}/test/*record')\n      dataset = Dataset('test')\n      dataset = dataset.make_batch(1, inputs)\n      deal(dataset, test_infos)\n      print('after test', len(test_infos))\n\n      ofile = ofile.replace('.pkl', '.test.pkl')  \n      with open(ofile, 'wb') as out:\n        pickle.dump(test_infos, out)\n      for key in test_infos:\n        print(test_infos[key])\n        print(ids2text.ids2text(test_infos[key]['content']))\n        break\n  elif FLAGS.type == 'show_info':\n    valid_infos = pickle.load(open(f'{base}/info.pkl', 'rb'))\n    lens = [len(valid_infos[key]['content']) for key in valid_infos]\n    unks = [list(valid_infos[key]['content']).count(FLAGS.unk_id) for key in valid_infos]\n    print('num unks per doc:', sum(unks) / len(valid_infos))\n    print('num doc with unk ratio:', len([x for x in unks if x != 0]) / len(unks)) \n    print('un unk tokens ratio:', sum(unks) / sum(lens))\n    print('len max:', np.max(lens))\n    print('len min:', np.min(lens))\n    print('len mean:', np.mean(lens)) \n    print('num docs:', len(valid_infos))\n\n    num_show = 0\n    for key in valid_infos:\n      if list(valid_infos[key]['content']).count(FLAGS.unk_id) > 0:\n        print(valid_infos[key])\n        print(ids2text.ids2text(valid_infos[key]['content']))\n        num_show += 1\n        if num_show > 5:\n          break\n\n    del valid_infos\n    print('--------------for test info:')\n    test_infos = pickle.load(open(f'{base}/info.test.pkl', 'rb'))\n    lens = [len(test_infos[key]['content']) for key in test_infos]\n    unks = [list(test_infos[key]['content']).count(FLAGS.unk_id) for key in test_infos]\n    print('num unks per doc:', sum(unks) / len(test_infos))\n    print('num doc with unk ratio:', len([x for x in unks if x != 0]) / len(test_infos)) \n    print('un unk tokens ratio:', sum(unks) / sum(lens))\n    print('len max:', np.max(lens))\n    print('len min:', np.min(lens))\n    print('len mean:', np.mean(lens))\n    print('num docs:', len(test_infos))\n\n    num_show = 0\n    for key in test_infos:\n      if list(test_infos[key]['content']).count(FLAGS.unk_id) > 0:\n        print(test_infos[key])\n        print(ids2text.ids2text(test_infos[key]['content']))\n        num_show += 1\n        if num_show > 5:\n          break\n  else:\n    raise ValueError(FLAGS.type)\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/binary/torch-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\nimport lele\n\nfrom wenzheng.utils import input_flags \n\nfrom algos import config\n\nfrom torch_algos.loss import Criterion\nimport torch_algos.model as base\nfrom dataset import Dataset\nimport evaluate as ev\n\ndef main(_):\n  FLAGS.torch = True\n  melt.apps.init()\n  \n  ev.init()\n  \n  embedding = None\n  if FLAGS.word_embedding_file and os.path.exists(FLAGS.word_embedding_file):\n    embedding = np.load(FLAGS.word_embedding_file)\n    FLAGS.emb_dim = embedding.shape[1]\n    #model = getattr(base, FLAGS.model)(embedding)\n    model = getattr(base, 'MReader')(embedding)\n\n  logging.info('model\\n', model)\n\n\n  if FLAGS.lm_path:\n    _, updated_params = lele.load(model, FLAGS.lm_path)\n    assert updated_params, FLAGS.lm_path\n\n  train = melt.apps.get_train()\n  criterion = Criterion()\n  \n  train(Dataset,\n        model,  \n        criterion.forward,\n        eval_fn=ev.evaluate)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/binary/torch_algos/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/binary/torch_algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 20:34:23.281520\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\nimport numpy as np\n\nimport lele\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nclass Criterion(object):\n  def __init__(self):\n    self.loss_fn = nn.BCEWithLogitsLoss()\n\n  def forward(self, model, x, y, training=False):\n    y_ = model(x) \n    y_ = y_.squeeze(1)\n    y = y.float()\n    loss = self.loss_fn(y_, y)\n\n    return loss\n \n"
  },
  {
    "path": "projects/ai2018/binary/torch_algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2018-09-30 10:25:11.024133\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nimport melt\nlogging = melt.logging\n\nimport numpy as np\nimport lele\nlayers = lele.layers\nimport gezi\nimport os\n\nclass ModelBase(nn.Module):\n  def __init__(self, embedding=None, lm_model=False):\n    super(ModelBase, self).__init__()\n    \n    self.num_units = FLAGS.rnn_hidden_size\n    self.dropout_rate = 1 - FLAGS.keep_prob\n\n    config = {\n      'word': {\n        'vocab': FLAGS.vocab,\n        'num_layers': FLAGS.num_layers,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'emb_dim': FLAGS.emb_dim,\n        'embedding_file': FLAGS.word_embedding_file,\n        'trainable': FLAGS.finetune_word_embedding,\n        'num_finetune': FLAGS.num_finetune_words,\n      },\n      'char': {\n        'limit': FLAGS.char_limit,\n        'use_char_emb': FLAGS.use_char_emb,\n        'emb_dim': FLAGS.char_emb_dim,\n        'trainable': FLAGS.finetune_char_embedding,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'output_method': FLAGS.char_output_method,\n        'combiner': FLAGS.char_combiner,\n        'padding': FLAGS.char_padding,\n        'num_finetune': FLAGS.num_finetune_chars,\n      },\n      'pos': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'ner': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'encoder': FLAGS.encoder_type,\n      'dropout_rate': 1 - FLAGS.keep_prob,\n      'recurrent_dropout': FLAGS.recurrent_dropout,\n      'cell': FLAGS.cell,\n      'rnn_padding': FLAGS.rnn_padding,\n      'rnn_no_padding': FLAGS.rnn_no_padding,\n      'concat_layers': FLAGS.concat_layers,\n    }\n\n    self.encode = wenzheng.pyt.TextEncoder(config, \n                                         embedding,\n                                         use_char=FLAGS.use_char,\n                                         use_char_emb=FLAGS.use_char_emb,\n                                         use_pos=FLAGS.use_pos,\n                                         use_ner=FLAGS.use_ner,\n                                         lm_model=lm_model)\n\n    self.lm_model = self.encode.lm_model\n\n    if not self.lm_model:\n      doc_hidden_size = self.encode.output_size\n      if FLAGS.share_pooling:\n        self.pooling = lele.layers.Pooling(\n                        FLAGS.encoder_output_method, \n                        input_size=doc_hidden_size,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation)) \n      else:\n        self.pooling = lele.layers.Poolings(\n                        FLAGS.encoder_output_method, \n                        input_size=doc_hidden_size,\n                        num_poolings=NUM_ATTRIBUTES,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation))         \n\n      # input dim not as convinient as tf..\n      pre_logits_dim = self.pooling.output_size\n      self.logits = nn.Linear(pre_logits_dim, 1)\n\n  def unk_aug(self, x, x_mask=None):\n    \"\"\"\n    randomly make 10% words as unk\n    TODO this works, but should this be rmoved and put it to Dataset so can share for both pyt and tf\n    \"\"\"\n    if not self.training or not FLAGS.unk_aug or melt.epoch() < FLAGS.unk_aug_start_epoch:\n      return x \n\n    if x_mask is None:\n      x_mask = x > 0\n    x_mask = x_mask.long()\n\n    ratio = np.random.uniform(0, FLAGS.unk_aug_max_ratio)\n    mask = torch.cuda.FloatTensor(x.size(0), x.size(1)).uniform_() > ratio\n    mask = mask.long()\n    rmask = FLAGS.unk_id * (1 - mask)\n\n    x = (x * mask + rmask) * x_mask\n    return x\n\nclass BiLanguageModel(ModelBase):\n  def __init__(self, embedding=None):\n    super(BiLanguageModel, self).__init__(embedding, lm_model=True)\n    \n# Model is like RNet! if you use label att and self match\n# if not just simple gru model\nclass RNet(ModelBase):\n  def __init__(self, embedding=None):\n    super(RNet, self).__init__(embedding)\n\n    Rnn = lele.layers.StackedBRNN     \n    doc_hidden_size = self.encode.output_size\n\n    if FLAGS.use_label_att:\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = nn.Embedding(self.label_emb_height, FLAGS.emb_dim)\n\n      self.att_dot_attentions = nn.ModuleList()\n      self.att_encodes = nn.ModuleList()\n      for i in range(FLAGS.label_hop):\n        self.att_dot_attentions.append(lele.layers.DotAttention(input_size=doc_hidden_size, \n                                                                input_size2=FLAGS.emb_dim,\n                                                                hidden=self.num_units, \n                                                                dropout_rate=self.dropout_rate, \n                                                                combiner=FLAGS.att_combiner))\n        self.att_encodes.append(Rnn(\n              input_size=self.att_dot_attentions[-1].output_size,\n              hidden_size=self.num_units,\n              num_layers=1,\n              dropout_rate=self.dropout_rate,\n              dropout_output=False,\n              concat_layers=False,\n              rnn_type=FLAGS.cell,\n              padding=FLAGS.rnn_padding,\n          ))\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = lele.layers.DotAttention(input_size=doc_hidden_size, \n                                                          input_size2=doc_hidden_size, \n                                                          hidden=self.num_units, \n                                                          dropout_rate=self.dropout_rate, \n                                                          combiner=FLAGS.att_combiner)\n      self.match_encode = Rnn(\n            input_size=self.match_dot_attention.output_size,\n            hidden_size=self.num_units,\n            num_layers=1,\n            dropout_rate=self.dropout_rate,\n            dropout_output=False,\n            concat_layers=False,\n            rnn_type=FLAGS.cell,\n            padding=FLAGS.rnn_padding,\n        )    \n\n  def forward(self, input, training=False):\n    x = input['content'] \n    #print(x.shape)\n    x_mask = x.eq(0)\n    batch_size = x.size(0)\n\n    x = self.unk_aug(x, x_mask)\n\n    if FLAGS.rnn_no_padding:\n      x_mask = torch.zeros_like(x, dtype=torch.uint8)\n\n    x = self.encode(input, x_mask, training=training)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding.weight\n      label_seq = lele.tile(label_emb.unsqueeze(0), 0, batch_size)\n      # TODO label rnn \n      for i in range(FLAGS.label_hop):\n        x = self.att_dot_attentions[i](x, label_seq, torch.zeros(batch_size, self.label_emb_height).byte().cuda())\n        x = self.att_encodes[i](x, x_mask)\n\n    if FLAGS.use_self_match:\n       x = self.match_dot_attention(x, x, x_mask) \n       x = self.match_encode(x, x_mask) \n\n    x = self.pooling(x, x_mask)\n    \n    x = self.logits(x)  \n\n    return x\n  \n# MReader with hop==1 can be viewed as rnet also\n# NOTICE mainly use this one\n# TODO word and char encoder can merge to one Encoder handle inputs with word and char\nclass MReader(ModelBase):\n  def __init__(self, embedding=None):\n    super(MReader, self).__init__(embedding)\n\n    Rnn = lele.layers.StackedBRNN \n    doc_hidden_size = self.encode.output_size\n\n    if FLAGS.use_label_att:\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = nn.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      # here linear better or another rnn is better ?\n      if not FLAGS.use_label_rnn:\n        self.label_forward = nn.Linear(FLAGS.emb_dim, doc_hidden_size)\n      else:\n        self.label_forward = Rnn(\n              input_size=emb_dim,\n              hidden_size=self.num_units,\n              num_layers=1,\n              dropout_rate=self.dropout_rate,\n              dropout_output=False,\n              concat_layers=False,\n              rnn_type=FLAGS.cell,\n              padding=FLAGS.rnn_padding,\n          )    \n\n    # Interactive aligning, self aligning and aggregating\n    self.interactive_aligners = nn.ModuleList()\n    self.interactive_SFUs = nn.ModuleList()\n    self.self_aligners = nn.ModuleList()\n    self.self_SFUs = nn.ModuleList()\n    self.aggregate_rnns = nn.ModuleList()\n    \n    for i in range(FLAGS.hop):\n      # interactive aligner\n      if FLAGS.use_label_att:\n        self.interactive_aligners.append(layers.SeqAttnMatch(doc_hidden_size, identity=True))\n        self.interactive_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n      # self aligner\n      if FLAGS.use_self_match:\n        self.self_aligners.append(layers.SelfAttnMatch(doc_hidden_size, identity=True, diag=False))\n        self.self_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n        # aggregating\n        self.aggregate_rnns.append(\n            Rnn(\n                input_size=doc_hidden_size,\n                hidden_size=self.num_units,\n                num_layers=1,\n                dropout_rate=self.dropout_rate,\n                dropout_output=False,\n                concat_layers=False,\n                rnn_type=FLAGS.cell,\n                padding=FLAGS.rnn_padding,\n            )\n        )\n\n  def forward(self, input, training=False):\n    #print('------------', input['source'])\n    #print(input['id'])\n    x = input['content']\n    #print(x) \n    #print(x.shape)\n    x_mask = x.eq(0)\n    batch_size = x.size(0)\n    max_c_len = x.size(1)\n\n    x = self.unk_aug(x, x_mask)\n\n    if FLAGS.rnn_no_padding:\n      x_mask = torch.zeros_like(x, dtype=torch.uint8)\n\n    x = self.encode(input, x_mask, training=training)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding.weight\n      label_seq = lele.tile(label_emb.unsqueeze(0), 0, batch_size)\n      x2_mask = torch.zeros(batch_size, self.label_emb_height).byte().cuda()\n      if not FLAGS.use_label_rnn:\n        label_seq = self.label_forward(label_seq)\n      else:\n        label_seq = self.label_forward(label_seq, x2_mask)\n      # Align and aggregate\n      c_check = x\n      q = label_seq\n    else:\n      c_check = x\n    \n    #print(c_check.shape, q.shape, x2_mask.shape)\n    for i in range(FLAGS.hop):\n      if FLAGS.use_label_att:\n        q_tilde = self.interactive_aligners[i].forward(c_check, q, x2_mask)\n        c_bar = self.interactive_SFUs[i].forward(c_check, torch.cat([q_tilde, c_check * q_tilde, c_check - q_tilde], 2))\n      else:\n        c_bar = c_check\n      if FLAGS.use_self_match:\n        c_tilde = self.self_aligners[i].forward(c_bar, x_mask)\n        c_hat = self.self_SFUs[i].forward(c_bar, torch.cat([c_tilde, c_bar * c_tilde, c_bar - c_tilde], 2))\n        c_check = self.aggregate_rnns[i].forward(c_hat, x_mask)\n    \n    x = c_check\n\n    x = self.pooling(x, x_mask)\n\n    x = self.logits(x)  \n\n    return x\n  \n# class Model(ModelBase):\n#   def forward(self, input, training=False):\n#     x = input['content'] \n#     x_mask = x.eq(0)\n#     batch_size = x.size(0)\n#     x = self.encode(input, x_mask, training=training)\n#     x = self.pooling(x, x_mask)\n#     x = self.logits(x)  \n#     x = x.view([-1, NUM_ATTRIBUTES, self.num_classes])\n#     return x\n\n"
  },
  {
    "path": "projects/ai2018/binary/train/train.sh",
    "content": "base=./mount \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/binary/tfrecord/\n\nmodel_dir=$base/temp/ai2018/binary/model/base/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/word.jieba.ft.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/README.md",
    "content": "# generate tfrecord  \ngo to prepare, sh run.sh gen valid/test/train   \n# dump infos.pkl  \npython ./read-records.py --type dump\nif you want just to verify records, python ./read-records.py --type=any.. other then dump   \n# training   \npython ./train.py  # train using graph  \nEAGER=1 python ./train.py # train using eager mode  \n"
  },
  {
    "path": "projects/ai2018/reader/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/reader/algos/README.md",
    "content": "./baseline.py simple rnn based with query + passage one rnn encoding  \n./qcatt.py  query passage separately encode and interact using attention same as rnet without using self match attention  \n./rnet.py  query passage separately encode and interact using attention then add self match attention(support gate combine and sfu combine)  \n./m_reader.py same as rnet but can have multi hop attention steps \n"
  },
  {
    "path": "projects/ai2018/reader/algos/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/reader/algos/baseline.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   baseline.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 15:16:36.730041\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES\n\nimport melt\nlogging = melt.logging\n    \nclass Model(melt.Model):\n  def __init__(self):\n    super(Model, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    ## adadelta adagrad will need cpu, so just use adam..\n    #with tf.device('/cpu:0'):\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        FLAGS.emb_dim, \n                                        FLAGS.word_embedding_file, \n                                        trainable=FLAGS.finetune_word_embedding,\n                                        vocab2_size=FLAGS.unk_vocab_size)\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    self.encode = wenzheng.Encoder(FLAGS.encoder_type)\n\n    self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k, \n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n\n    self.logits = keras.layers.Dense(NUM_CLASSES)\n    self.logits2 = keras.layers.Dense(NUM_CLASSES)\n\n  def call(self, input, training=False):\n    x = input['rcontent'] if FLAGS.rcontent else input['content']\n    #print(x.shape)\n    batch_size = melt.get_shape(x, 0)\n    length = melt.length(x)\n    #with tf.device('/cpu:0'):\n    x = self.embedding(x)\n    \n    x = self.encode(x, length, training=training)\n    \n    # must mask pooling when eval ? but seems much worse result\n    #if not FLAGS.mask_pooling and training:\n    if not FLAGS.mask_pooling:\n      length = None\n    x = self.pooling(x, length)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n\n    if not FLAGS.split_type:\n      x = self.logits(x)\n    else:\n      x1 = self.logits(x)\n      x2 = self.logits2(x)\n      x = tf.cond(tf.cast(input['type'] == 0, tf.bool), lambda: (x1 + x2) / 2., lambda: x2)\n    \n    return x\n\nclass Model2(melt.Model):\n  \"\"\"\n  same as Model but with bi encode separately for passage and query\n  \"\"\"\n  def __init__(self):\n    super(Model2, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    ## adadelta adagrad will need cpu, so just use adam..\n    #with tf.device('/cpu:0'):\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                              FLAGS.emb_dim, \n                                              FLAGS.word_embedding_file, \n                                              trainable=FLAGS.finetune_word_embedding,\n                                              vocab2_size=FLAGS.unk_vocab_size)\n\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    self.encode = melt.layers.CudnnRnn2(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    self.pooling = melt.layers.MaxPooling2()\n    #self.pooling = keras.layers.GlobalMaxPool1D()\n\n    self.logits = keras.layers.Dense(NUM_CLASSES, activation=None)\n    self.logits2 = keras.layers.Dense(NUM_CLASSES, activation=None)\n\n  def call(self, input, training=False):\n    x1 = input['query']\n    x2 = input['passage']\n    length1 = melt.length(x1)\n    length2 = melt.length(x2)\n    #with tf.device('/cpu:0'):\n    x1 = self.embedding(x1)\n    x2 = self.embedding(x2)\n    \n    x = x1\n    batch_size = melt.get_shape(x1, 0)\n\n    num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n    #print('----------------length', tf.reduce_max(length), inputs.comment.shape)\n    mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    \n    x = self.encode(x1, length1, x2, length2, mask_fws=mask_fws, mask_bws=mask_bws)\n    x = self.pooling(x, length1, length2)\n    #x = self.pooling(x)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n\n    if not FLAGS.split_type:\n      x = self.logits(x)\n    else:\n      x1 = self.logits(x)\n      x2 = self.logits2(x)\n      x = tf.cond(tf.cast(input['type'] == 0, tf.bool), lambda: (x1 + x2) / 2., lambda: x2)\n    \n    return x\n\n  \n"
  },
  {
    "path": "projects/ai2018/reader/algos/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-02-16 19:12:02.066189\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nCLASSES = ['neg', 'pos', 'na']\nNUM_CLASSES = 3\n\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_bool('use_char', False, '')\n\nflags.DEFINE_string('model', None, '')\n\nflags.DEFINE_bool('use_type', False, '')\nflags.DEFINE_bool('use_type_emb', False, '')\nflags.DEFINE_bool('use_type_rnn', False, '')\nflags.DEFINE_integer('type_emb_dim', 100, '')\nflags.DEFINE_bool('rcontent', False, '')\n\nflags.DEFINE_bool('split_type', False, '')\n\nflags.DEFINE_string('att_type', 'p2q', '')\nflags.DEFINE_string('att_combiner', 'gate', '')\n\nflags.DEFINE_string('att_activation', 'relu', '')\n\nflags.DEFINE_integer('unk_vocab_size', None, 'none means not to use, and if use can set like 10000')\nflags.DEFINE_bool('finetune_unk_vocab', False, '')\n\nflags.DEFINE_bool('type1_only', False, '')\nflags.DEFINE_bool('type0_only', False, '')\nflags.DEFINE_float('type1_weight', None, '')\nflags.DEFINE_integer('type1_count', None, '')\n\nflags.DEFINE_bool('use_qc_att', True, '')\nflags.DEFINE_bool('use_bidaf_att', False, '')\nflags.DEFINE_bool('use_ac_att', False, '')\nflags.DEFINE_bool('use_self_match', True, '')\n\nflags.DEFINE_bool('cq_reverse', False, '')\n\nflags.DEFINE_bool('use_answer_emb', False, '')\n\nflags.DEFINE_bool('combine_query', False, '')\n\nflags.DEFINE_bool('share_dropout', True, '')\n\nflags.DEFINE_bool('use_att_encode', False, 'for mreader wether to use at encode or not')\n\nflags.DEFINE_bool('use_bias', False, '')\n\nflags.DEFINE_string('encoder_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_mlp', False, '')\nflags.DEFINE_bool('use_word', True, '')\n\nflags.DEFINE_bool('use_pos', False, '')\nflags.DEFINE_bool('use_tag', False, '')\nflags.DEFINE_bool('use_ner', False, '')\nflags.DEFINE_integer('tag_emb_dim', 100, '')\n\nflags.DEFINE_bool('use_emb_fc', False, '')\nflags.DEFINE_bool('use_emb_att', False, '')\nflags.DEFINE_bool('use_emb_max', False, '')\n\nflags.DEFINE_float('sfu_keepprob', 0.5, '')\nflags.DEFINE_float('emb_keepprob', 0.5, '')\n\nflags.DEFINE_bool('emb_dropout', False, '')\n\nflags.DEFINE_bool('use_label_emb', False, '')\nflags.DEFINE_bool('use_label_att', False, '')\nflags.DEFINE_bool('simple_label_att', False, '')\n\nflags.DEFINE_string('label_attention_combiner', 'gate', 'gate or dsfu')\nflags.DEFINE_string('self_attention_combiner', 'gate', 'gate or dsfu')\n\nflags.DEFINE_integer('label_emb_dim', 100, '')\nflags.DEFINE_integer('label_emb_height', None, '')\nflags.DEFINE_bool('concat_label_emb', False, '')\nflags.DEFINE_bool('label2text_attention', False, '')\nflags.DEFINE_bool('perlabel_encoding', False, '')\n\nflags.DEFINE_bool('toxic_only', False, '')\nflags.DEFINE_bool('toxic_softmax_loss', False, 'for toxic and serv')\n\nflags.DEFINE_bool('char_only', False, '')\nflags.DEFINE_integer('char_num_layers', 1, '')\nflags.DEFINE_integer('char_hidden_size', 100, '')\nflags.DEFINE_string('char_output_method', 'last', '')\n\nflags.DEFINE_integer('simple_char_num_layers', 3, '')\n\nflags.DEFINE_string('addtional_word_info', None, 'pos,tag,ner')\n\nflags.DEFINE_string('decay_target', None, 'loss or auc')\nflags.DEFINE_integer('decay_patience', 4, '')\nflags.DEFINE_float('decay_factor', 0.5, '')\n\nflags.DEFINE_bool('optimize_auc', False, '')\nflags.DEFINE_float('auc_ratio', 0., '')\nflags.DEFINE_bool('balance_pos_neg', False, '')\n\nflags.DEFINE_bool('dynamic_weights', False, '')\n\nflags.DEFINE_bool('use_gate', False, '')\n\nflags.DEFINE_bool('hate_corpus', False, '')\n\nflags.DEFINE_bool('use_position_encoding', False, '')\n"
  },
  {
    "path": "projects/ai2018/reader/algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 20:34:23.281520\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport melt \nlogging = melt.logging \n\n# TODO add support for na or not binary sigmoid loss\ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  if not FLAGS.type1_weight:\n    weights = 1.0  \n  else:\n    # weights not help seems\n    weights = tf.map_fn(lambda x: tf.cond(tf.equal(x, 1), lambda: FLAGS.type1_weight, lambda: 1.), x['type'], dtype=tf.float32)\n\n  return tf.losses.sparse_softmax_cross_entropy(labels=y, logits=y_, weights=weights) \n\n"
  },
  {
    "path": "projects/ai2018/reader/algos/m_reader.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   m_reader.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 15:16:16.146020\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES\n\nimport melt\nlogging = melt.logging\n\n# same as V3 but not use share dropout and recurrent dropout\nclass MnemonicReaderV4(melt.Model):\n  def __init__(self):\n    super(MnemonicReaderV4, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        FLAGS.emb_dim, \n                                        FLAGS.word_embedding_file, \n                                        trainable=FLAGS.finetune_word_embedding,\n                                        vocab2_size=FLAGS.unk_vocab_size,\n                                        vocab2_trainable=FLAGS.finetune_unk_vocab)\n    \n    self.num_layers = FLAGS.num_layers\n    \n    if FLAGS.hop > 1:\n      assert self.num_layers == 1 and FLAGS.att_combiner == 'sfu', 'mreader must set num layers to 1 so can iterative align if you set hop > 1, and use sfu as combiner'\n\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    logging.info('num_layers:', self.num_layers)\n    logging.info('num_unints:', self.num_units)\n    logging.info('keep_prob:', self.keep_prob)\n\n    self.encode = melt.layers.CudnnRnn(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob,\n                                       recurrent_dropout=False)\n\n    if FLAGS.use_qc_att or FLAGS.use_bidaf_att:\n      assert not (FLAGS.use_qc_att and FLAGS.use_bidaf_att), 'use rnet or use bidaf? just choose one!'\n      #Attention = melt.layers.DotAttention if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      Attention = melt.layers.SeqAttnMatch if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      # seems share att and match attention is fine a bit improve ? but just follow squad to use diffent dot attention \n      # NOTICE for eager mode ckpt save should not write as x = [None] * 3 can not save...\n      self.att_dot_attentions = [] \n      self.att_encodes = [] \n      for _ in range(FLAGS.hop):\n        #self.att_dot_attentions.append(Attention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        #self.att_dot_attentions.append(Attention(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True))\n        self.att_dot_attentions.append(Attention(combiner=FLAGS.att_combiner, identity=True))\n        # TODO seems not work like layers.Dense... name in graph mode in eager mode will name as att_encode, match_encode \n        # in graph mode just cudnn_rnn, cudnn_rnn_1 so all ignore name=.. not like layers.Dense.. TODO\n        # TODO seems in mreader do not use att_encode .. so check which is better use or not to use..\n        self.att_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n        #self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if not FLAGS.use_label_att:\n        # TODO not use activation ?\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim)\n      else:\n        self.label_att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n        #self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n    if FLAGS.use_self_match:\n      self.match_dot_attentions = []\n      self.match_encodes = []\n      for _ in range(FLAGS.hop):\n        #self.match_dot_attentions.append(melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        #self.match_dot_attentions.append(melt.layers.SelfAttnMatch(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_dot_attentions.append(melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_answer_emb:\n      self.context_dense = keras.layers.Dense(FLAGS.emb_dim)\n      self.answer_dense = keras.layers.Dense(FLAGS.emb_dim)\n      # self.context_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n      # self.answer_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n\n    if FLAGS.use_type_emb:\n      type_emb_dim = 10\n      num_types = 2\n      self.type_embedding = melt.layers.Embedding(num_types, type_emb_dim)\n\n    logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n    logging.info('topk:', FLAGS.top_k)\n    self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k, \n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n\n    self.logits = keras.layers.Dense(NUM_CLASSES)\n    if FLAGS.split_type:\n      self.logits2 = keras.layers.Dense(NUM_CLASSES)\n\n  def call(self, input, training=False):\n    q = input['query']\n    c = input['passage']\n\n    # reverse worse\n    if FLAGS.cq_reverse:\n      q, c = c, q\n\n    #print(input['type'])\n    # print('q', q)\n    # print('c', c)\n\n    q_len = melt.length(q)\n    c_len = melt.length(c)\n    q_mask = tf.cast(q, tf.bool)\n    c_mask = tf.cast(c, tf.bool)\n\n    q_emb = self.embedding(q)\n    c_emb = self.embedding(c)\n    \n    x = c_emb\n    batch_size = melt.get_shape(x, 0)\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      q_len = tf.ones([batch_size], dtype=q.dtype) * tf.cast(melt.get_shape(q, -1), q.dtype)\n      c_len = tf.ones([batch_size], dtype=c.dtype) * tf.cast(melt.get_shape(c, -1), c.dtype)\n      q_mask = tf.ones_like(q)\n      c_mask = tf.ones_like(c)\n\n\n    c = self.encode(c_emb, c_len, training=training)\n    q = self.encode(q_emb, q_len, training=training)      \n\n    # helps a lot using qc att, now bidaf att worse..\n    # TODO... FIXME WRONG!  must use sfu as to iterative align gate will increase dim while sfu not\n    x = c\n    for i in range(FLAGS.hop):\n      if not FLAGS.use_bidaf_att:\n        x = self.att_dot_attentions[i](x, q, mask=q_mask, training=training)\n      else:\n        x = self.att_dot_attentions[i](x, q, c_mask, q_mask, training=training)\n      if FLAGS.use_att_encode:\n        x = self.att_encodes[i](x, c_len, training=training)\n      #x = self.match_dot_attentions[i](x, x, mask=c_mask, training=training)\n      x = self.match_dot_attentions[i](x, mask=c_mask, training=training)\n      x = self.match_encodes[i](x, c_len, training=training)\n\n    if FLAGS.mask_pooling:\n      x = self.pooling(x, c_len, calc_word_scores=self.debug)\n    else:\n      x = self.pooling(x, None, calc_word_scores=self.debug)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n    \n    if FLAGS.use_type_emb:\n      x = tf.concat([x, self.type_embedding(input['type'])], 1)\n\n    # might helps ensemble\n    if FLAGS.use_answer_emb:\n      x1 = x\n\n      neg = input['candidate_neg']\n      pos = input['candidate_pos']\n      na = input['candidate_na']\n      neg_len = melt.length(neg)\n      pos_len = melt.length(pos)\n      na_len = melt.length(na)\n      neg_emb = self.embedding(neg)\n      pos_emb = self.embedding(pos)\n      na_emb = self.embedding(na)\n\n      if FLAGS.share_dropout:\n        neg = self.encode(neg_emb, neg_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        pos = self.encode(pos_emb, pos_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        na = self.encode(na_emb, na_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      else:\n        neg = self.encode(neg_emb, neg_len, training=training)\n        pos = self.encode(pos_emb, pos_len, training=training)\n        na = self.encode(na_emb, na_len, training=training)        \n\n      neg = self.pooling(neg, neg_len)\n      pos = self.pooling(pos, pos_len)\n      na = self.pooling(na, na_len)\n\n      answer = tf.stack([neg, pos, na], 1)\n\n      # [batch_size, emb_dim]\n      x = self.context_dense(x)\n      # [batch_size, 3, emb_dim]\n      answer = self.answer_dense(answer)\n      x = tf.matmul(answer, tf.transpose(tf.expand_dims(x, 1), [0, 2, 1]))\n      x = tf.reshape(x, [batch_size, NUM_CLASSES])\n\n      x = tf.concat([x1, x], -1)\n\n      #return x\n\n    # not help\n    if FLAGS.combine_query:\n      q = self.pooling(q, q_len)\n      x = tf.concat([x, q], -1)\n\n    if not FLAGS.use_label_emb:\n      # split logits by type is useful, especially for type1, and improve a lot with type1 only finetune\n      if not FLAGS.split_type:\n        x = self.logits(x)\n      else:\n        x1 = self.logits(x)\n        x2 = self.logits2(x)\n        mask = tf.expand_dims(tf.to_float(tf.equal(input['type'], 0)), 1)\n        x = x1 * mask + x2 * (1 - mask)\n    else:\n      # use label emb seems not help ?\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    return x\n  \n# this is follow hkust pytorch MnemonicReader with same attention implementation, this is V3\nclass MnemonicReader(melt.Model):\n  def __init__(self):\n    super(MnemonicReader, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        FLAGS.emb_dim, \n                                        FLAGS.word_embedding_file, \n                                        trainable=FLAGS.finetune_word_embedding,\n                                        vocab2_size=FLAGS.unk_vocab_size,\n                                        vocab2_trainable=FLAGS.finetune_unk_vocab)\n    \n    self.num_layers = FLAGS.num_layers\n    \n    if FLAGS.hop > 1:\n      assert self.num_layers == 1 and FLAGS.att_combiner == 'sfu', 'mreader must set num layers to 1 so can iterative align if you set hop > 1, and use sfu as combiner'\n\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    logging.info('num_layers:', self.num_layers)\n    logging.info('num_unints:', self.num_units)\n    logging.info('keep_prob:', self.keep_prob)\n\n    self.encode = melt.layers.CudnnRnn(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_qc_att or FLAGS.use_bidaf_att:\n      assert not (FLAGS.use_qc_att and FLAGS.use_bidaf_att), 'use rnet or use bidaf? just choose one!'\n      #Attention = melt.layers.DotAttention if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      Attention = melt.layers.SeqAttnMatch if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      # seems share att and match attention is fine a bit improve ? but just follow squad to use diffent dot attention \n      # NOTICE for eager mode ckpt save should not write as x = [None] * 3 can not save...\n      self.att_dot_attentions = [] \n      self.att_encodes = [] \n      for _ in range(FLAGS.hop):\n        #self.att_dot_attentions.append(Attention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        #self.att_dot_attentions.append(Attention(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True))\n        self.att_dot_attentions.append(Attention(combiner=FLAGS.att_combiner, identity=True))\n        # TODO seems not work like layers.Dense... name in graph mode in eager mode will name as att_encode, match_encode \n        # in graph mode just cudnn_rnn, cudnn_rnn_1 so all ignore name=.. not like layers.Dense.. TODO\n        # TODO seems in mreader do not use att_encode .. so check which is better use or not to use..\n        self.att_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n        #self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if not FLAGS.use_label_att:\n        # TODO not use activation ?\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim)\n      else:\n        self.label_att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n        #self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n    if FLAGS.use_self_match:\n      self.match_dot_attentions = []\n      self.match_encodes = []\n      for _ in range(FLAGS.hop):\n        #self.match_dot_attentions.append(melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        #self.match_dot_attentions.append(melt.layers.SelfAttnMatch(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_dot_attentions.append(melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_answer_emb:\n      self.context_dense = keras.layers.Dense(FLAGS.emb_dim)\n      self.answer_dense = keras.layers.Dense(FLAGS.emb_dim)\n      # self.context_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n      # self.answer_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n\n    if FLAGS.use_type_emb:\n      type_emb_dim = 10\n      num_types = 2\n      self.type_embedding = melt.layers.Embedding(num_types, type_emb_dim)\n\n    logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n    logging.info('topk:', FLAGS.top_k)\n    self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k, \n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n\n    self.logits = keras.layers.Dense(NUM_CLASSES)\n    if FLAGS.split_type:\n      self.logits2 = keras.layers.Dense(NUM_CLASSES)\n\n  def call(self, input, training=False):\n    q = input['query']\n    c = input['passage']\n\n    # reverse worse\n    if FLAGS.cq_reverse:\n      q, c = c, q\n\n    #print(input['type'])\n    # print('q', q)\n    # print('c', c)\n\n    q_len = melt.length(q)\n    c_len = melt.length(c)\n    q_mask = tf.cast(q, tf.bool)\n    c_mask = tf.cast(c, tf.bool)\n\n    q_emb = self.embedding(q)\n    c_emb = self.embedding(c)\n    \n    x = c_emb\n    batch_size = melt.get_shape(x, 0)\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      q_len = tf.ones([batch_size], dtype=q.dtype) * tf.cast(melt.get_shape(q, -1), q.dtype)\n      c_len = tf.ones([batch_size], dtype=c.dtype) * tf.cast(melt.get_shape(c, -1), c.dtype)\n      q_mask = tf.ones_like(q)\n      c_mask = tf.ones_like(c)\n\n    if FLAGS.share_dropout:\n      num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n      mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n      mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n      \n      # NOTICE query and passage share same drop out, so same word still has same embedding vector after dropout in query and passage\n      c = self.encode(c_emb, c_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      q = self.encode(q_emb, q_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n    else:\n      c = self.encode(c_emb, c_len, training=training)\n      q = self.encode(q_emb, q_len, training=training)      \n\n    # helps a lot using qc att, now bidaf att worse..\n    # TODO... FIXME WRONG!  must use sfu as to iterative align gate will increase dim while sfu not\n    x = c\n    for i in range(FLAGS.hop):\n      if not FLAGS.use_bidaf_att:\n        x = self.att_dot_attentions[i](x, q, mask=q_mask, training=training)\n      else:\n        x = self.att_dot_attentions[i](x, q, c_mask, q_mask, training=training)\n      if FLAGS.use_att_encode:\n        x = self.att_encodes[i](x, c_len, training=training)\n      #x = self.match_dot_attentions[i](x, x, mask=c_mask, training=training)\n      x = self.match_dot_attentions[i](x, mask=c_mask, training=training)\n      x = self.match_encodes[i](x, c_len, training=training)\n\n    if FLAGS.mask_pooling:\n      x = self.pooling(x, c_len, calc_word_scores=self.debug)\n    else:\n      x = self.pooling(x, None, calc_word_scores=self.debug)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n    \n    if FLAGS.use_type_emb:\n      x = tf.concat([x, self.type_embedding(input['type'])], 1)\n\n    # might helps ensemble\n    if FLAGS.use_answer_emb:\n      x1 = x\n\n      neg = input['candidate_neg']\n      pos = input['candidate_pos']\n      na = input['candidate_na']\n      neg_len = melt.length(neg)\n      pos_len = melt.length(pos)\n      na_len = melt.length(na)\n      neg_emb = self.embedding(neg)\n      pos_emb = self.embedding(pos)\n      na_emb = self.embedding(na)\n\n      if FLAGS.share_dropout:\n        neg = self.encode(neg_emb, neg_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        pos = self.encode(pos_emb, pos_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        na = self.encode(na_emb, na_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      else:\n        neg = self.encode(neg_emb, neg_len, training=training)\n        pos = self.encode(pos_emb, pos_len, training=training)\n        na = self.encode(na_emb, na_len, training=training)        \n\n      neg = self.pooling(neg, neg_len)\n      pos = self.pooling(pos, pos_len)\n      na = self.pooling(na, na_len)\n\n      answer = tf.stack([neg, pos, na], 1)\n\n      # [batch_size, emb_dim]\n      x = self.context_dense(x)\n      # [batch_size, 3, emb_dim]\n      answer = self.answer_dense(answer)\n      x = tf.matmul(answer, tf.transpose(tf.expand_dims(x, 1), [0, 2, 1]))\n      x = tf.reshape(x, [batch_size, NUM_CLASSES])\n\n      x = tf.concat([x1, x], -1)\n\n      #return x\n\n    # not help\n    if FLAGS.combine_query:\n      q = self.pooling(q, q_len)\n      x = tf.concat([x, q], -1)\n\n    if not FLAGS.use_label_emb:\n      # split logits by type is useful, especially for type1, and improve a lot with type1 only finetune\n      if not FLAGS.split_type:\n        x = self.logits(x)\n      else:\n        x1 = self.logits(x)\n        x2 = self.logits2(x)\n        mask = tf.expand_dims(tf.to_float(tf.equal(input['type'], 0)), 1)\n        x = x1 * mask + x2 * (1 - mask)\n    else:\n      # use label emb seems not help ?\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    return x\n\n# V2 is follow hkust pytorch MnemonicReader but more dropout on attention(like hkust tensorflow rnet)\nclass MnemonicReaderV2(melt.Model):\n  def __init__(self):\n    super(MnemonicReaderV2, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        FLAGS.emb_dim, \n                                        FLAGS.word_embedding_file, \n                                        trainable=FLAGS.finetune_word_embedding,\n                                        vocab2_size=FLAGS.unk_vocab_size,\n                                        vocab2_trainable=FLAGS.finetune_unk_vocab)\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    logging.info('num_layers:', self.num_layers)\n    logging.info('num_unints:', self.num_units)\n    logging.info('keep_prob:', self.keep_prob)\n\n    self.encode = melt.layers.CudnnRnn(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_qc_att or FLAGS.use_bidaf_att:\n      assert not (FLAGS.use_qc_att and FLAGS.use_bidaf_att), 'use rnet or use bidaf? just choose one!'\n      #Attention = melt.layers.DotAttention if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      Attention = melt.layers.SeqAttnMatch if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      # seems share att and match attention is fine a bit improve ? but just follow squad to use diffent dot attention \n      # NOTICE for eager mode ckpt save should not write as x = [None] * 3 can not save...\n      self.att_dot_attentions = [] \n      self.att_encodes = [] \n      for _ in range(FLAGS.hop):\n        #self.att_dot_attentions.append(Attention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        self.att_dot_attentions.append(Attention(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True))\n        #self.att_dot_attentions.append(Attention(combiner=FLAGS.att_combiner, identity=True))\n        # TODO seems not work like layers.Dense... name in graph mode in eager mode will name as att_encode, match_encode \n        # in graph mode just cudnn_rnn, cudnn_rnn_1 so all ignore name=.. not like layers.Dense.. TODO\n        # TODO seems in mreader do not use att_encode .. so check which is better use or not to use..\n        self.att_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n        #self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if not FLAGS.use_label_att:\n        # TODO not use activation ?\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim)\n      else:\n        self.label_att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n        #self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n    if FLAGS.use_self_match:\n      self.match_dot_attentions = []\n      self.match_encodes = []\n      for _ in range(FLAGS.hop):\n        #self.match_dot_attentions.append(melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        self.match_dot_attentions.append(melt.layers.SelfAttnMatch(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True, diag=False))\n        #self.match_dot_attentions.append(melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_answer_emb:\n      self.context_dense = keras.layers.Dense(FLAGS.emb_dim)\n      self.answer_dense = keras.layers.Dense(FLAGS.emb_dim)\n      # self.context_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n      # self.answer_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n\n    logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n    logging.info('topk:', FLAGS.top_k)\n    self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k, \n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n\n    self.logits = keras.layers.Dense(NUM_CLASSES)\n    if FLAGS.split_type:\n      self.logits2 = keras.layers.Dense(NUM_CLASSES)\n\n  def call(self, input, training=False):\n    q = input['query']\n    c = input['passage']\n\n    # reverse worse\n    if FLAGS.cq_reverse:\n      q, c = c, q\n\n    #print(input['type'])\n    # print('q', q)\n    # print('c', c)\n\n    q_len = melt.length(q)\n    c_len = melt.length(c)\n    q_mask = tf.cast(q, tf.bool)\n    c_mask = tf.cast(c, tf.bool)\n    q_emb = self.embedding(q)\n    c_emb = self.embedding(c)\n    \n    x = c_emb\n    batch_size = melt.get_shape(x, 0)\n\n    if FLAGS.share_dropout:\n      num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n      mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n      mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n      \n      # NOTICE query and passage share same drop out, so same word still has same embedding vector after dropout in query and passage\n      c = self.encode(c_emb, c_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      q = self.encode(q_emb, q_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n    else:\n      c = self.encode(c_emb, c_len, training=training)\n      q = self.encode(q_emb, q_len, training=training)      \n\n    # helps a lot using qc att, now bidaf att worse..\n    for i in range(FLAGS.hop):\n      if not FLAGS.use_bidaf_att:\n        x = self.att_dot_attentions[i](c, q, mask=q_mask, training=training)\n      else:\n        x = self.att_dot_attentions[i](c, q, c_mask, q_mask, training=training)\n      if FLAGS.use_att_encode:\n        x = self.att_encodes[i](x, c_len, training=training)\n      #x = self.match_dot_attentions[i](x, x, mask=c_mask, training=training)\n      x = self.match_dot_attentions[i](x, mask=c_mask, training=training)\n      x = self.match_encodes[i](x, c_len, training=training)\n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n\n    # might helps ensemble\n    if FLAGS.use_answer_emb:\n      x1 = x\n\n      neg = input['candidate_neg']\n      pos = input['candidate_pos']\n      na = input['candidate_na']\n      neg_len = melt.length(neg)\n      pos_len = melt.length(pos)\n      na_len = melt.length(na)\n      neg_emb = self.embedding(neg)\n      pos_emb = self.embedding(pos)\n      na_emb = self.embedding(na)\n\n      if FLAGS.share_dropout:\n        neg = self.encode(neg_emb, neg_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        pos = self.encode(pos_emb, pos_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        na = self.encode(na_emb, na_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      else:\n        neg = self.encode(neg_emb, neg_len, training=training)\n        pos = self.encode(pos_emb, pos_len, training=training)\n        na = self.encode(na_emb, na_len, training=training)        \n\n      neg = self.pooling(neg, neg_len)\n      pos = self.pooling(pos, pos_len)\n      na = self.pooling(na, na_len)\n\n      answer = tf.stack([neg, pos, na], 1)\n\n      # [batch_size, emb_dim]\n      x = self.context_dense(x)\n      # [batch_size, 3, emb_dim]\n      answer = self.answer_dense(answer)\n      x = tf.matmul(answer, tf.transpose(tf.expand_dims(x, 1), [0, 2, 1]))\n      x = tf.reshape(x, [batch_size, NUM_CLASSES])\n\n      x = tf.concat([x1, x], -1)\n\n      #return x\n\n    # not help\n    if FLAGS.combine_query:\n      q = self.pooling(q, q_len)\n      x = tf.concat([x, q], -1)\n\n    if not FLAGS.use_label_emb:\n      # split logits by type is useful, especially for type1, and improve a lot with type1 only finetune\n      if not FLAGS.split_type:\n        x = self.logits(x)\n      else:\n        x1 = self.logits(x)\n        x2 = self.logits2(x)\n        mask = tf.expand_dims(tf.to_float(tf.equal(input['type'], 0)), 1)\n        x = x1 * mask + x2 * (1 - mask)\n    else:\n      # use label emb seems not help ?\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    return x\n\n# V1 is just like hkust rnet with interactive attention\nclass MnemonicReaderV1(melt.Model):\n  def __init__(self):\n    super(MnemonicReaderV1, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        FLAGS.emb_dim, \n                                        FLAGS.word_embedding_file, \n                                        trainable=FLAGS.finetune_word_embedding,\n                                        vocab2_size=FLAGS.unk_vocab_size,\n                                        vocab2_trainable=FLAGS.finetune_unk_vocab)\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    logging.info('num_layers:', self.num_layers)\n    logging.info('num_unints:', self.num_units)\n    logging.info('keep_prob:', self.keep_prob)\n\n    self.encode = melt.layers.CudnnRnn(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_qc_att or FLAGS.use_bidaf_att:\n      assert not (FLAGS.use_qc_att and FLAGS.use_bidaf_att), 'use rnet or use bidaf? just choose one!'\n      #Attention = melt.layers.DotAttention if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      Attention = melt.layers.SeqAttnMatch if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      # seems share att and match attention is fine a bit improve ? but just follow squad to use diffent dot attention \n      # NOTICE for eager mode ckpt save should not write as x = [None] * 3 can not save...\n      self.att_dot_attentions = [] \n      self.att_encodes = [] \n      for _ in range(FLAGS.hop):\n        self.att_dot_attentions.append(Attention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        #self.att_dot_attentions.append(Attention(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True))\n        #self.att_dot_attentions.append(Attention(combiner=FLAGS.att_combiner, identity=True))\n        # TODO seems not work like layers.Dense... name in graph mode in eager mode will name as att_encode, match_encode \n        # in graph mode just cudnn_rnn, cudnn_rnn_1 so all ignore name=.. not like layers.Dense.. TODO\n        # TODO seems in mreader do not use att_encode .. so check which is better use or not to use..\n        self.att_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n        #self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if not FLAGS.use_label_att:\n        # TODO not use activation ?\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim)\n      else:\n        self.label_att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n        #self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n    if FLAGS.use_self_match:\n      self.match_dot_attentions = []\n      self.match_encodes = []\n      for _ in range(FLAGS.hop):\n        self.match_dot_attentions.append(melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner))\n        #self.match_dot_attentions.append(melt.layers.SelfAttnMatch(keep_prob=self.keep_prob, combiner=FLAGS.att_combiner, identity=True, diag=False))\n        #self.match_dot_attentions.append(melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_answer_emb:\n      self.context_dense = keras.layers.Dense(FLAGS.emb_dim)\n      self.answer_dense = keras.layers.Dense(FLAGS.emb_dim)\n      # self.context_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n      # self.answer_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n\n    logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n    logging.info('topk:', FLAGS.top_k)\n    self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k, \n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n\n    self.logits = keras.layers.Dense(NUM_CLASSES)\n    if FLAGS.split_type:\n      self.logits2 = keras.layers.Dense(NUM_CLASSES)\n\n  def call(self, input, training=False):\n    q = input['query']\n    c = input['passage']\n\n    # reverse worse\n    if FLAGS.cq_reverse:\n      q, c = c, q\n\n    #print(input['type'])\n    # print('q', q)\n    # print('c', c)\n\n    q_len = melt.length(q)\n    c_len = melt.length(c)\n    q_mask = tf.cast(q, tf.bool)\n    c_mask = tf.cast(c, tf.bool)\n    q_emb = self.embedding(q)\n    c_emb = self.embedding(c)\n    \n    x = c_emb\n    batch_size = melt.get_shape(x, 0)\n\n    if FLAGS.share_dropout:\n      num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n      mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n      mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n      \n      # NOTICE query and passage share same drop out, so same word still has same embedding vector after dropout in query and passage\n      c = self.encode(c_emb, c_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      q = self.encode(q_emb, q_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n    else:\n      c = self.encode(c_emb, c_len, training=training)\n      q = self.encode(q_emb, q_len, training=training)      \n\n    # helps a lot using qc att, now bidaf att worse..\n    for i in range(FLAGS.hop):\n      if not FLAGS.use_bidaf_att:\n        x = self.att_dot_attentions[i](c, q, mask=q_mask, training=training)\n      else:\n        x = self.att_dot_attentions[i](c, q, c_mask, q_mask, training=training)\n      if FLAGS.use_att_encode:\n        x = self.att_encodes[i](x, c_len, training=training)\n      x = self.match_dot_attentions[i](x, x, mask=c_mask, training=training)\n      #x = self.match_dot_attentions[i](x, mask=c_mask, training=training)\n      x = self.match_encodes[i](x, c_len, training=training)\n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n\n    # might helps ensemble\n    if FLAGS.use_answer_emb:\n      x1 = x\n\n      neg = input['candidate_neg']\n      pos = input['candidate_pos']\n      na = input['candidate_na']\n      neg_len = melt.length(neg)\n      pos_len = melt.length(pos)\n      na_len = melt.length(na)\n      neg_emb = self.embedding(neg)\n      pos_emb = self.embedding(pos)\n      na_emb = self.embedding(na)\n\n      if FLAGS.share_dropout:\n        neg = self.encode(neg_emb, neg_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        pos = self.encode(pos_emb, pos_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n        na = self.encode(na_emb, na_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      else:\n        neg = self.encode(neg_emb, neg_len, training=training)\n        pos = self.encode(pos_emb, pos_len, training=training)\n        na = self.encode(na_emb, na_len, training=training)        \n\n      neg = self.pooling(neg, neg_len)\n      pos = self.pooling(pos, pos_len)\n      na = self.pooling(na, na_len)\n\n      answer = tf.stack([neg, pos, na], 1)\n\n      # [batch_size, emb_dim]\n      x = self.context_dense(x)\n      # [batch_size, 3, emb_dim]\n      answer = self.answer_dense(answer)\n      x = tf.matmul(answer, tf.transpose(tf.expand_dims(x, 1), [0, 2, 1]))\n      x = tf.reshape(x, [batch_size, NUM_CLASSES])\n\n      x = tf.concat([x1, x], -1)\n\n      #return x\n\n    # not help\n    if FLAGS.combine_query:\n      q = self.pooling(q, q_len)\n      x = tf.concat([x, q], -1)\n\n    if not FLAGS.use_label_emb:\n      # split logits by type is useful, especially for type1, and improve a lot with type1 only finetune\n      if not FLAGS.split_type:\n        x = self.logits(x)\n      else:\n        x1 = self.logits(x)\n        x2 = self.logits2(x)\n        mask = tf.expand_dims(tf.to_float(tf.equal(input['type'], 0)), 1)\n        x = x1 * mask + x2 * (1 - mask)\n    else:\n      # use label emb seems not help ?\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    return x"
  },
  {
    "path": "projects/ai2018/reader/algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ptr-net.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 11:50:08.306272\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom algos.baseline import Model, Model2\nfrom algos.qcatt import QCAttention\n\nfrom algos.rnet import RNet \nfrom algos.rnet import RNet as Rnet\n\nfrom algos.m_reader import *\nfrom algos.m_reader import MnemonicReader as MReader"
  },
  {
    "path": "projects/ai2018/reader/algos/qcatt.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   qcatt.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 15:19:25.674053\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES\n\nimport melt\nlogging = melt.logging\n  \nclass QCAttention(melt.Model):\n  def __init__(self):\n    super(QCAttention, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                              FLAGS.emb_dim, \n                                              FLAGS.word_embedding_file, \n                                              trainable=FLAGS.finetune_word_embedding,\n                                              vocab2_size=FLAGS.unk_vocab_size)\n\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    self.encode = wenzheng.Encoder(FLAGS.encoder_type)\n\n    self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n\n    self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n    self.pooling = melt.layers.MaxPooling()\n\n    self.logits = keras.layers.Dense(NUM_CLASSES, activation=None)\n    self.logits2 = keras.layers.Dense(NUM_CLASSES, activation=None)\n\n  def call(self, input, training=False):\n    q = input['query']\n    c = input['passage']\n    q_len = melt.length(q)\n    c_len = melt.length(c)\n    q_mask = tf.cast(q, tf.bool)\n    q_emb = self.embedding(q)\n    c_emb = self.embedding(c)\n    \n    x = c_emb\n    batch_size = melt.get_shape(x, 0)\n\n    num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n    mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    \n    c = self.encode(c_emb, c_len, mask_fws=mask_fws, mask_bws=mask_bws)\n    q = self.encode(q_emb, q_len, mask_fws=mask_fws, mask_bws=mask_bws)\n\n    qc_att = self.att_dot_attention(c, q, mask=q_mask, training=training)\n\n    num_units = [melt.get_shape(qc_att, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n    mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(1)]\n    mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(1)]\n    x = self.att_encode(qc_att, c_len, mask_fws=mask_fws, mask_bws=mask_bws)\n\n    x = self.pooling(x, c_len)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n\n    if not FLAGS.split_type:\n      x = self.logits(x)\n    else:\n      x1 = self.logits(x)\n      x2 = self.logits2(x)\n      x = tf.cond(tf.cast(input['type'] == 0, tf.bool), lambda: (x1 + x2) / 2., lambda: x2)\n    \n    return x"
  },
  {
    "path": "projects/ai2018/reader/algos/rnet.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   rnet.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 15:15:58.298504\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES\n\nimport melt\nlogging = melt.logging\n\n# TODO make all to one model is fine, not to hold so many JUST USE Rnet!\nclass RNet(melt.Model):\n  def __init__(self):\n    super(RNet, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        FLAGS.emb_dim, \n                                        FLAGS.word_embedding_file, \n                                        trainable=FLAGS.finetune_word_embedding,\n                                        vocab2_size=FLAGS.unk_vocab_size,\n                                        vocab2_trainable=FLAGS.finetune_unk_vocab)\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = FLAGS.keep_prob\n\n    logging.info('num_layers:', self.num_layers)\n    logging.info('num_unints:', self.num_units)\n    logging.info('keep_prob:', self.keep_prob)\n\n    self.encode = melt.layers.CudnnRnn(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_qc_att or FLAGS.use_bidaf_att:\n      assert not (FLAGS.use_qc_att and FLAGS.use_bidaf_att), 'use rnet or use bidaf? just choose one!'\n      Attention = melt.layers.DotAttention if FLAGS.use_qc_att else melt.layers.BiDAFAttention\n      # seems share att and match attention is fine a bit improve ? but just follow squad to use diffent dot attention \n      self.att_dot_attention = Attention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n      # TODO seems not work like layers.Dense... name in graph mode in eager mode will name as att_encode, match_encode \n      # in graph mode just cudnn_rnn, cudnn_rnn_1 so all ignore name=.. not like layers.Dense.. TODO\n      self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if not FLAGS.use_label_att:\n        # TODO not use activation ?\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      else:\n        self.label_att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n        #self.label_att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n    # TODO might try to all set use_bias=True \n    if FLAGS.use_answer_emb:\n      self.context_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      self.answer_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      # self.context_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n      # self.answer_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n\n    logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n    logging.info('topk:', FLAGS.top_k)\n    self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k, \n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n\n    self.logits = keras.layers.Dense(NUM_CLASSES, activation=None)\n    if FLAGS.split_type:\n      self.logits2 = keras.layers.Dense(NUM_CLASSES, activation=None)\n\n  def call(self, input, training=False):\n    q = input['query']\n    c = input['passage']\n\n    # reverse worse\n    if FLAGS.cq_reverse:\n      q, c = c, q\n\n    #print(input['type'])\n    # print('q', q)\n    # print('c', c)\n\n    q_len = melt.length(q)\n    c_len = melt.length(c)\n    q_mask = tf.cast(q, tf.bool)\n    c_mask = tf.cast(c, tf.bool)\n    q_emb = self.embedding(q)\n    c_emb = self.embedding(c)\n    \n    x = c_emb\n    batch_size = melt.get_shape(x, 0)\n\n    num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n    mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    \n    # NOTICE query and passage share same drop out, so same word still has same embedding vector after dropout in query and passage\n    c = self.encode(c_emb, c_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n    q = self.encode(q_emb, q_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n\n    # helps a lot using qc att, now bidaf att worse..\n    if FLAGS.use_qc_att or FLAGS.use_bidaf_att:\n      if FLAGS.use_qc_att:\n        # rnet\n        x = self.att_dot_attention(c, q, mask=q_mask, training=training)\n      else:\n        # bidaf\n        x = self.att_dot_attention(c, q, c_mask, q_mask, training=training)\n      x = self.att_encode(x, c_len, training=training)\n\n\n    # not help!\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding(None)\n      label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n      x = self.label_att_dot_attention(x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n\n      x = self.label_att_encode(x, c_len, training=training)\n\n    # TODO try add use ac att\n    \n    # helps a bit\n    if FLAGS.use_self_match:\n      x = self.match_dot_attention(x, x, mask=c_mask, training=training)\n      x = self.match_encode(x, c_len, training=training)\n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    if FLAGS.use_type:\n      x = tf.concat([x, tf.expand_dims(tf.to_float(input['type']), 1)], 1)\n\n    # might helps ensemble\n    if FLAGS.use_answer_emb:\n      x1 = x\n\n      neg = input['candidate_neg']\n      pos = input['candidate_pos']\n      na = input['candidate_na']\n      neg_len = melt.length(neg)\n      pos_len = melt.length(pos)\n      na_len = melt.length(na)\n      neg_emb = self.embedding(neg)\n      pos_emb = self.embedding(pos)\n      na_emb = self.embedding(na)\n\n      neg = self.encode(neg_emb, neg_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      pos = self.encode(pos_emb, pos_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n      na = self.encode(na_emb, na_len, mask_fws=mask_fws, mask_bws=mask_bws, training=training)\n\n      neg = self.pooling(neg, neg_len)\n      pos = self.pooling(pos, pos_len)\n      na = self.pooling(na, na_len)\n\n      answer = tf.stack([neg, pos, na], 1)\n\n      # [batch_size, emb_dim]\n      x = self.context_dense(x)\n      # [batch_size, 3, emb_dim]\n      answer = self.answer_dense(answer)\n      x = tf.matmul(answer, tf.transpose(tf.expand_dims(x, 1), [0, 2, 1]))\n      x = tf.reshape(x, [batch_size, NUM_CLASSES])\n\n      x = tf.concat([x1, x], -1)\n\n      #return x\n\n    # not help\n    if FLAGS.combine_query:\n      q = self.pooling(q, q_len)\n      x = tf.concat([x, q], -1)\n\n    if not FLAGS.use_label_emb:\n      # split logits by type is useful, especially for type1, and improve a lot with type1 only finetune\n      if not FLAGS.split_type:\n        x = self.logits(x)\n      else:\n        x1 = self.logits(x)\n        x2 = self.logits2(x)\n        mask = tf.expand_dims(tf.to_float(tf.equal(input['type'], 0)), 1)\n        x = x1 * mask + x2 * (1 - mask)\n    else:\n      # use label emb seems not help ?\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    return x\n\n\n  \n"
  },
  {
    "path": "projects/ai2018/reader/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom collections import namedtuple\n\nimport gezi\nimport melt\nlogging = melt.logging\nfrom wenzheng.utils import vocabulary \nimport algos.config\n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n\n    # !must use tf.equal not ==, verify this using eager mode! tensor != 1... tf.equal(tensor, 1)\n    self.filter_fn = None if not FLAGS.type1_only else lambda x, y: tf.equal(x['type'], 1)\n    if FLAGS.type0_only:\n      self.filter_fn = lambda x, y: tf.equal(x['type'], 0)\n    logging.info('filter_fn', self.filter_fn)\n\n    if FLAGS.type1_count:\n      self.count_fn = lambda x, y: tf.cond(tf.equal(x['type'], 1), lambda: FLAGS.type1_count, lambda: 1)\n    logging.info('count_fn', self.count_fn)\n\n  def parser(self, example):\n    features_dict = {\n      'id':  tf.FixedLenFeature([], tf.string),\n      'url':  tf.FixedLenFeature([], tf.string),\n      'answer': tf.FixedLenFeature([], tf.int64),\n      'answer_str':  tf.FixedLenFeature([], tf.string),\n      'query': tf.VarLenFeature(tf.int64),\n      'query_char': tf.VarLenFeature(tf.int64),\n      'query_pos': tf.VarLenFeature(tf.int64),\n      'query_str':  tf.FixedLenFeature([], tf.string),\n      'passage': tf.VarLenFeature(tf.int64),\n      'passage_char': tf.VarLenFeature(tf.int64),\n      'passage_pos': tf.VarLenFeature(tf.int64),\n      'passage_str':  tf.FixedLenFeature([], tf.string),\n      'candidate_neg':  tf.VarLenFeature(tf.int64),\n      'candidate_neg_char': tf.VarLenFeature(tf.int64),\n      'candidate_neg_pos': tf.VarLenFeature(tf.int64),\n      'candidate_pos':  tf.VarLenFeature(tf.int64),\n      'candidate_pos_char': tf.VarLenFeature(tf.int64),\n      'candidate_pos_pos': tf.VarLenFeature(tf.int64),\n      'candidate_na': tf.VarLenFeature(tf.int64),\n      'candidate_na_char': tf.VarLenFeature(tf.int64),\n      'candidate_na_pos': tf.VarLenFeature(tf.int64),\n      'query_char': tf.VarLenFeature(tf.int64),\n      'query_pos': tf.VarLenFeature(tf.int64),\n      'alternatives':  tf.FixedLenFeature([], tf.string),\n      'candidates':  tf.FixedLenFeature([], tf.string),\n      'type':  tf.FixedLenFeature([], tf.int64),\n      }\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    query = features['query']\n    passage = features['passage']\n    candidate_neg = features['candidate_neg']\n    candidate_pos = features['candidate_pos']\n    candidate_na = features['candidate_na']\n    query = melt.sparse_tensor_to_dense(query)\n    passage = melt.sparse_tensor_to_dense(passage)\n    candidate_neg = melt.sparse_tensor_to_dense(candidate_neg)\n    candidate_pos = melt.sparse_tensor_to_dense(candidate_pos)\n    candidate_na = melt.sparse_tensor_to_dense(candidate_na)\n\n    def s2d(name):\n      x = features[name]\n      x = melt.sparse_tensor_to_dense(x)\n      features[name] = x\n\n    l = ['query_char', 'query_pos', \\\n         'passage_char', 'passage_pos', \\\n         'candidate_neg_char', 'candidate_neg_pos', \\\n         'candidate_pos_char', 'candidate_pos_pos', \\\n         'candidate_na_char', 'candidate_na_pos',\n        ]\n    for name in l:\n      s2d(name)\n\n    # def add_start_end(text):\n    #   return  tf.concat([tf.constant([vocabulary.start_id()], dtype=tf.int64), text, tf.constant([vocabulary.end_id()], dtype=tf.int64)], 0)\n\n    # if FLAGS.add_start_end:\n    #   query = add_start_end(query)\n    features['query'] = query\n\n    # if FLAGS.add_start_end:\n    #   passage = add_start_end(passage)\n    features['passage'] = passage\n\n    # if not FLAGS.add_start_end:\n    #   features['content'] = tf.concat([passage, tf.constant([vocabulary.end_id()], dtype=tf.int64), query], 0)\n    #   features['rcontent'] = tf.concat([query, tf.constant([vocabulary.end_id()], dtype=tf.int64), passage], 0)\n    # else:\n    features['content'] = tf.concat([passage, query[1:]], 0)\n    features['rcontent'] = tf.concat([query, passage[1:]], 0)    \n\n    # if FLAGS.add_start_end:\n    #   candidate_neg = add_start_end(candidate_neg)\n    features['candidate_neg'] = candidate_neg\n\n    # if FLAGS.add_start_end:\n    #   candidate_pos = add_start_end(candidate_pos)\n    features['candidate_pos'] = candidate_pos  \n\n    features['candidate_na'] = candidate_na\n\n    answer = features['answer']\n\n    x = features\n    y = answer\n    return x, y\n"
  },
  {
    "path": "projects/ai2018/reader/ensemble/ensemble-infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nimport gezi\n\nidir = sys.argv[1]\n\n\ndef parse(input):\n  return np.array([float(x.strip()) for x in input[1:-1].split(' ') if x.strip()])\n\ncadidates = {}\nresults = {}\nresults2 = {}\nfor file_ in glob.glob('%s/*.infer.txt.debug' % idir):\n  df = pd.read_csv(file_)\n  #df = df.sort_index(0)\n  ids = df['id'].values\n  candidates_ = df['candidates'].values\n  scores = df['score']\n  scores = [parse(score) for score in scores]\n\n  if not results:\n    candidates = dict(zip(ids, candidates_))\n\n  print(file_)\n\n  scores =  gezi.softmax(scores, -1)\n  for id, score in zip(ids, scores):\n    if id not in results:\n      results[id] = score \n    else:\n      results[id] += score\n\n\nofile = os.path.join(idir, 'ensemble.infer.txt')\nprint('ofile:', ofile)\nwith open(ofile, 'w') as out:\n  for id, score in results.items():\n    index = np.argmax(score, -1)\n    #print(id, score, index)\n    predict = candidates[id].split('|')[index]\n    print(id, predict, sep='\\t', file=out)\n\n\n\n\n"
  },
  {
    "path": "projects/ai2018/reader/ensemble/ensemble-valid.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nimport gezi\n\nidir = sys.argv[1]\n\n\ndef parse(input):\n  return np.array([float(x.strip()) for x in input[1:-1].split(' ') if x.strip()])\n\n\ncadidates = {}\nm = {}\nresults = {}\nresults2 = {}\n\nignore_type1s = set()\nfor i, file_ in enumerate(glob.glob('%s/*.valid.csv' % idir)):\n  df = pd.read_csv(file_)\n  #df = df.sort_index(0)\n  ids = df['id'].values\n  labels = df['label'].values\n  candidates_ = df['candidates'].values\n  predicts = df['predict'].values\n  scores = df['score']\n  scores = [parse(score) for score in scores]\n\n  if not m:\n    m = dict(zip(ids, labels))\n    candidates = dict(zip(ids, candidates_))\n\n  df0 = df.loc[df['type'] == 0]\n  df1 = df.loc[df['type'] == 1]\n  labels0 = df0['label'].values \n  predicts0 = df0['predict'].values \n  labels1 = df1['label'].values \n  predicts1 = df1['predict'].values \n\n  print(file_, np.mean(np.equal(labels, predicts)), np.mean(np.equal(labels0, predicts0)), np.mean(np.equal(labels1, predicts1)))\n\n  type1_score = np.mean(np.equal(labels1, predicts1))\n  \n  if type1_score < 0.5:\n    ignore_type1s.add(i) \n    print('ignore typ1 for', file_)\n    # only use df0 \n    ids = df0['id'].values \n    scores = df0['score']\n    scores = [parse(score) for score in scores]\n    \n  for id, score in zip(ids, scores):\n    if id not in results:\n      results[id] = score \n    else:\n      results[id] += score\n\n  scores2 = gezi.softmax(scores, -1)\n  for id, score in zip(ids, scores2):\n    if id not in results2:\n      results2[id] = score \n    else:\n      results2[id] += score\n\nmatch = 0\nfor id, score in results.items():\n  index = np.argmax(score, -1)\n  #print(id, score, index)\n  predict = candidates[id].split('|')[index]\n  if predict == m[id]:\n    match += 1 \n\n\nprint('acc_by_logit', match / len(df))\n\nmatch = 0\nfor id, score in results2.items():\n  index = np.argmax(score, -1)\n  predict = candidates[id].split('|')[index]\n  #if predict.strip() == m[id]:\n  if predict == m[id]:\n    match += 1 \n\nprint('acc_by_prob', match / len(df))\n\ncadidates = {}\nresults = {}\nresults2 = {}\nfor i, file_ in enumerate(glob.glob('%s/*.infer.txt.debug' % idir)):\n  df = pd.read_csv(file_)\n  #df = df.sort_index(0)\n  ids = df['id'].values\n  candidates_ = df['candidates'].values\n  scores = df['score']\n  scores = [parse(score) for score in scores]\n  df0 = df.loc[df['type'] == 0]\n  df1 = df.loc[df['type'] == 1]\n  ids0 = df0['id'].values\n  ids1 = df1['id'].values\n  scores0 = df0['score']\n  scores0 = [parse(score) for score in scores0]\n  scores1 = df1['score']\n  scores1 = [parse(score) for score in scores1] \n\n  if i in ignore_type1s:\n    print('infer ignore:', file_)  \n    ids = ids0\n    scores = scores0 \n\n  if not results:\n    candidates = dict(zip(ids, candidates_))\n\n  print(file_)\n\n  scores =  gezi.softmax(scores, -1) \n  print(len(ids), len(scores))\n  for id, score in zip(ids, scores):\n    if id not in results:\n      results[id] = score \n    else:\n      results[id] += score\n\n\nofile = os.path.join(idir, 'ensemble.infer.txt')\nprint('ofile:', ofile)\nwith open(ofile, 'w') as out:\n  for id, score in results.items():\n    index = np.argmax(score, -1)\n    #print(id, score, index)\n    predict = candidates[id].split('|')[index]\n    print(id, predict, sep='\\t', file=out)\n\n\n"
  },
  {
    "path": "projects/ai2018/reader/ensemble/ensemble.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', False, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_bool('use_type', True, '')\nflags.DEFINE_string('idir', '.', '')\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nimport gezi\nfrom tqdm import tqdm\nimport copy\nfrom scipy.stats import rankdata\n\nDEBUG = 0\nidir = '.'\n\ndef parse(input):\n  return np.array([float(x.strip()) for x in input[1:-1].split(' ') if x.strip()])\n\ndef blend_weights(weights, norm_factor=0.1):\n  weights_min = np.min(weights)\n  weights_max = np.max(weights)\n  gap = weights_max - weights_min\n  for i in range(len(weights)):\n    weights[i] = ((weights[i] - weights_min) / gap) + norm_factor\n  # ranked = rankdata(weights)\n  # sum_rank = np.sum(ranked)\n  # for j in range(len(weights)):\n  #   weights[j] = ranked[j] / sum_rank\n\ndef main(_):\n  DEBUG = FLAGS.debug\n  idir = FLAGS.idir\n\n  print('METHOD:', FLAGS.method)\n\n  cadidates = {}\n  m = {}\n  results = {}\n  results1 = {}\n  results2 = {}\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.txt.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n\n  print('num_ensembles', len(valid_files))\n  print('num_infers', len(infer_files))\n    \n  assert len(valid_files) == len(infer_files), f'{len(valid_files)} {len(infer_files)}'\n\n  num_ensembles = len(valid_files)\n\n  wether_ids = None\n  gdf = None\n  \n  weights = []\n  weights_if = []\n  weights_wether = []\n\n  scores_list = []\n\n  def get_weight(id, weight, weight_if, weight_wether):\n    if FLAGS.method == 'avg' or FLAGS.method == 'mean':\n      return 1.\n\n    if not FLAGS.use_type:\n      weight_ = weight \n    else:\n      if id in wether_ids:\n        weight_ = weight_wether\n      else:\n        weight_ = weight_if\n        # well we use avg mean for wether_if...\n        #weight_ = 1.  \n    return weight_\n\n  for i, file_ in enumerate(valid_files):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    ids = df['id'].values\n    labels = df['label'].values\n    if i == 0:\n      gdf = df\n    candidates_ = df['candidates'].values\n    predicts = df['predict'].values\n    scores = df['score']\n    scores = [parse(score) for score in scores]\n    scores = np.array(scores)\n    scores_list.append(scores)\n    if not m:\n      m = dict(zip(ids, labels))\n      candidates = dict(zip(ids, candidates_))\n\n    df0 = df.loc[df['type'] == 0]\n    df1 = df.loc[df['type'] == 1]\n    labels0 = df0['label'].values \n    predicts0 = df0['predict'].values \n    labels1 = df1['label'].values \n    predicts1 = df1['predict'].values \n\n    if not wether_ids:\n      wether_ids = set(df1['id'].values)\n\n    acc = np.mean(np.equal(labels, predicts))\n    acc_if = np.mean(np.equal(labels0, predicts0))\n    acc_wether = np.mean(np.equal(labels1, predicts1))\n    weights.append(acc)\n    weights_if.append(acc_if)\n    weights_wether.append(acc_wether)\n    print(i, file_, 'acc:', acc, 'acc_if:', acc_if, 'acc_wether:', acc_wether, 'num_if:', len(df0), 'num_wether:', len(df1))\n\n\n  blend_weights(weights, 1.)\n  blend_weights(weights_if, 100.) # weights_if similar as disable weights\n  blend_weights(weights_wether, 0.001)  # 75106\n  #blend_weights(weights_wether, 0.01) #751\n\n\n  print('weights', weights)\n  print('weights_if', weights_if)\n  print('weights_wether', weights_wether)\n\n  for i in tqdm(range(len(valid_files)), ascii=True):    \n    scores = scores_list[i]\n    weight = weights[i]\n    weight_if = weights_if[i]\n    weight_wether = weights_wether[i]\n    for id, score in zip(ids, scores):\n      weight_ = get_weight(id, weight, weight_if, weight_wether)\n      score *= weight_\n\n      if id not in wether_ids:\n        if id not in results:\n          results[id] = copy.copy(score) \n        else:\n          results[id] += score \n\n      if id not in results1:\n        results1[id] = copy.copy(score)\n      else:\n        results1[id] += score \n\n      score = gezi.softmax(score)\n\n      if id not in results2:\n        results2[id] = copy.copy(score)\n      else:\n        results2[id] += score\n\n      if id in wether_ids:\n        if id not in results:\n          results[id] = copy.copy(score)\n        else:\n          results[id] += score\n\n\n  match = 0\n  match_if = 0\n  match_wether = 0\n\n  for id, score in results1.items():\n    index = np.argmax(score, -1)\n    #print(id, score, index)\n    predict = candidates[id].split('|')[index]\n    match_now = 1 if predict == m[id] else 0\n    match += match_now \n    if id not in wether_ids:\n      match_if += match_now\n    else:\n      match_wether += match_now\n\n  print('--------------by logit')\n  print('acc_if_by_logit', match_if / (len(results1) - len(wether_ids)))\n  print('add_wether_by_logit', match_wether / len(wether_ids))\n  print('acc_by_logit', match / len(results1))\n\n\n  match = 0\n  match_if = 0\n  match_wether = 0\n  for id, score in results2.items():\n    index = np.argmax(score, -1)\n    predict = candidates[id].split('|')[index]\n    match_now = 1 if predict == m[id] else 0\n    match += match_now\n    if id not in wether_ids:\n      match_if += match_now\n    else:\n      match_wether += match_now\n\n  print('---------------by prob')\n  print('acc_if_by_prob', match_if / (len(results2) - len(wether_ids)))\n  print('add_wether_by_prob', match_wether / len(wether_ids))\n  print('acc_by_prob', match / len(results2))\n\n  match = 0\n  match_if = 0\n  match_wether = 0\n  for id, score in results.items():\n    index = np.argmax(score, -1)\n    predict = candidates[id].split('|')[index]\n    match_now = 1 if predict == m[id] else 0\n    match += match_now\n    if id not in wether_ids:\n      match_if += match_now\n    else:\n      match_wether += match_now\n  \n  print('--------------if by logit, wether by prob')\n  print('acc_if_final', match_if / (len(results) - len(wether_ids)))\n  print('add_wether_final', match_wether / len(wether_ids))\n  print('acc_final', match / len(results))\n\n\n  cadidates = {}\n  results = {}\n\n  for i, file_ in enumerate(infer_files):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    ids = df['id'].values\n    candidates_ = df['candidates'].values\n    scores = df['score']\n    scores = [parse(score) for score in scores]\n    scores = np.array(scores)\n    df1 = df.loc[df['type'] == 1]\n    ids1 = df1['id'].values\n\n    if not wether_ids:\n      wether_ids = set(ids1)\n\n    if not results:\n      candidates = dict(zip(ids, candidates_))\n\n    print(i, file_)\n    \n    weight = weights[i]\n    weight_if = weights_if[i]\n    weight_wether = weights_wether[i]\n    for id, score in zip(ids, scores):\n      weight_ = get_weight(id, weight, weight_if, weight_wether)\n      score = score * weight_\n      \n      if id not in wether_ids:\n        if id not in results:\n          results[id] = copy.copy(score)\n        else:\n          results[id] += score\n      else:\n        score = gezi.softmax(score)\n        if id not in results:\n          results[id] = copy.copy(score) \n        else:\n          results[id] += score       \n\n  ofile = os.path.join(idir, 'ensemble.infer.txt')\n  print('out:', ofile)\n\n  with open(ofile, 'w') as out:\n    for id, score in results.items():\n      index = np.argmax(score, -1)\n      #print(id, score, index)\n      predict = candidates[id].split('|')[index]\n      print(id, predict, sep='\\t', file=out)\n\n  ofile = os.path.join(idir, 'ensemble.infer.debug.txt')\n  print('out debug:', ofile)\n  if not DEBUG:\n    with open(ofile, 'w') as out:\n      for id, score in results.items():\n        index = np.argmax(score, -1)\n        #print(id, score, index)\n        predict = candidates[id].split('|')[index]\n        print(id, predict, score, sep='\\t', file=out)\n  else:\n    predicts = np.array([candidates[id].split('|')[np.argmax(score, -1)] for id, score in results.items()])\n    gdf['predict'] = predicts\n    print('check acc:', np.mean(np.equal(gdf['label'].values, gdf['predict'].values)))\n    gdf.to_csv(ofile, index=False)\n\nif __name__ == '__main__':\n  tf.app.run()  "
  },
  {
    "path": "projects/ai2018/reader/ensemble/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:12:03.819848\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\nfrom sklearn.metrics import f1_score\n\n\ndf = pd.read_csv(sys.argv[1])\n\nacc = 0\nacc_if = 0\nacc_wether = 0\nnum_if = 0\nnum_wehter = 0\nfor row in df.iterrows():\n  score = int(row[1]['label'] == row[1]['predict'])\n  acc += score\n\n  if row[1]['type'] == 0:\n    num_if += 1\n    acc_if += score \n  else:\n    num_wehter += 1\n    acc_wether += score \n\nprint('num_if', num_if, 'num_wether', num_wehter)\nprint('acc_if:', acc_if / num_if)\nprint('acc_wether:', acc_wether / num_wehter)\nprint('acc:', acc / len(df))\n  \n"
  },
  {
    "path": "projects/ai2018/reader/evaluate.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time, io\nsys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')\nsys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('info_path', None, '')\n\n#from sklearn.utils.extmath import softmax\n\nfrom melt.utils.weight_decay import WeightDecay, WeightsDecay\n\nimport numpy as np\nimport gezi\nimport melt \nlogging = melt.logging\n\nfrom wenzheng.utils import ids2text\n\nfrom sklearn.metrics import log_loss\n\nimport pickle\n\nvalid_infos = {}\ntest_infos = {}\n\ndecay = None\nwnames = []\n\ndef init():\n  global valid_infos, test_infos\n  global wnames\n  with open(FLAGS.info_path, 'rb') as f:\n    valid_infos = pickle.load(f)\n  with open(FLAGS.info_path.replace('.pkl', '.test.pkl'), 'rb') as f:\n    test_infos = pickle.load(f)\n\n  ids2text.init()\n\n  #min_learning_rate = 1e-5\n  min_learning_rate = FLAGS.min_learning_rate\n  logging.info('Min learning rate:', min_learning_rate)\n  if FLAGS.decay_target:\n    global decay\n    decay_target = FLAGS.decay_target\n    cmp = 'less' if decay_target == 'loss' else 'greater'\n    if not decay:\n      logging.info('Weight decay target:', decay_target)\n      if FLAGS.num_learning_rate_weights <= 1:\n        decay = WeightDecay(patience=FLAGS.decay_patience, \n                      decay=FLAGS.decay_factor, \n                      cmp=cmp,\n                      #decay_start_epoch=FLAGS.decay_start_epoch,\n                      decay_start_epoch=1,\n                      min_learning_rate=min_learning_rate)\n      else:\n        wnames = ['if', 'whether']\n        decay = WeightsDecay(patience=FLAGS.decay_patience, \n                      decay=FLAGS.decay_factor, \n                      cmp=cmp,\n                      min_learning_rate=min_learning_rate,\n                      names=wnames)  \n\n## worse then just simply argmax\n# def to_predict(logits):\n#   predicts = np.zeros([len(logits)])\n#   probs = gezi.softmax(logits, 1) \n#   for i, prob in enumerate(probs):\n#     if prob[2] > 0.4:\n#       predicts[i] = 2\n#     else:\n#       predicts[i] = np.argmax(prob[:-1])\n#   return predicts\n\ndef calc_acc(labels, predicts, ids, model_path):\n  names = ['acc', 'acc_if', 'acc_whether', 'acc_na'] \n  predicts = np.argmax(predicts, 1)\n  #predicts = to_predict(predicts)\n  acc = np.mean(np.equal(labels, predicts))\n  # na index is set to 2\n  acc_na = np.mean(np.equal(np.equal(labels, 2), np.equal(predicts, 2)))\n\n  predicts1, predicts2, labels1, labels2 = [], [], [], []\n  for i, id in enumerate(ids):\n    type = valid_infos[id]['type']\n    if type == 0:\n      predicts1.append(predicts[i])\n      labels1.append(labels[i])\n    else:\n      predicts2.append(predicts[i])\n      labels2.append(labels[i])\n    \n  acc_if = np.mean(np.equal(labels1, predicts1))\n  acc_whether = np.mean(np.equal(labels2, predicts2))\n\n  vals = [acc, acc_if, acc_whether, acc_na]\n  if model_path is None:\n    if FLAGS.decay_target:\n      target = acc if FLAGS.num_learning_rate_weights <= 1 else [acc_if, acc_whether]\n      weights = decay.add(target)\n      if FLAGS.num_learning_rate_weights > 1:\n        vals += list(weights)\n        names += [f'weights/{name}' for name in wnames]\n\n  return vals, names\n\ndef calc_loss(labels, predicts, ids, model_path=None):\n  \"\"\"\n  softmax loss, mean loss and per attr loss\n  \"\"\"\n  names = ['loss', 'loss_if', 'loss_wether'] \n\n  predicts1, predicts2, labels1, labels2 = [], [], [], []\n  for i, id in enumerate(ids):\n    type = valid_infos[id]['type']\n    if type == 0:\n      predicts1.append(predicts[i])\n      labels1.append(labels[i])\n    else:\n      predicts2.append(predicts[i])\n      labels2.append(labels[i])\n\n  loss = log_loss(labels, predicts)\n  loss_if = log_loss(labels1, predicts1)\n  loss_wether = log_loss(labels2, predicts2)\n  vals = [loss, loss_if, loss_wether]\n\n  if model_path is None:\n    if FLAGS.decay_target and FLAGS.decay_target == 'loss':\n      if  FLAGS.num_learning_rate_weights <= 1:\n        target = loss\n      elif FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n        target = losses\n      else:\n        raise f'Unsupported weights number{FLAGS.num_learning_rate_weights}'\n\n      weights = decay.add(target)\n\n  return vals, names\n\ndef evaluate(labels, predicts, ids=None, model_path=None):\n  vals, names = calc_acc(labels, predicts, ids, model_path)\n  probs = gezi.softmax(predicts)\n  vals_loss, names_loss = calc_loss(labels, probs, ids, model_path)\n  \n  vals += vals_loss\n  names += names_loss\n\n  return vals, names\n  \nvalid_write = None\ninfer_write = None \n\nvalid_names = ['id', 'label', 'predict', 'score', 'candidates', 'type', 'query', 'passage', 'query_seg', 'passage_seg']\n\ndef write(id, label, predict, out, out2=None, is_infer=False):\n  infos = valid_infos if not is_infer else test_infos\n  info = infos[id]\n  score = gezi.softmax(predict)\n  predict = np.argmax(predict)\n  candidates = info['candidates'].split('|')\n  if label is not None:\n    label = candidates[label]\n  predict = candidates[predict]\n  #.. on P40 not ok.. WHY ? FIXME\n  # print(id, label, predict, score, gezi.csv(info['candidates']), info['type'], gezi.csv(info['query_str']), gezi.csv(info['passage_str']),\n  #       gezi.csv(ids2text.ids2text(info['query'], sep='|')), gezi.csv(ids2text.ids2text(info['passage'], sep='|')), sep=',', file=out)\n  # File \"/home/slurm/job/tmp/job-58821/wenzheng/projects/ai2018/reader/evaluate.py\", line 178, in write \n  # print(id, label, predict, score, gezi.csv(info['candidates']), info['type'], gezi.csv(info['query_str']), gezi.csv(info['passage_str']), sep=',', file=out) \n  # UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256) \n  print(id, label, predict, score, gezi.csv(info['candidates']), info['type'], gezi.csv(info['query_str']), gezi.csv(info['passage_str']), sep=',', file=out)\n  #print(id, label, predict, score, sep=',', file=out)\n  if is_infer:\n    #for contest\n    print(id, predict, sep='\\t', file=out2)\n\ndef valid_write(id, label, predict, out):\n  return write(id, label, predict, out)\n\ndef infer_write(id, predict, out, out_debug):\n  return write(id, None, predict, out_debug, out, is_infer=True)\n"
  },
  {
    "path": "projects/ai2018/reader/infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n  \ntf.enable_eager_execution()\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\n#from algos.model import *\nfrom algos.loss import criterion\nimport algos.model as base\nfrom dataset import Dataset\nimport evaluate as ev\n\nfrom prepare.text2ids import text2ids\nfrom wenzheng.utils import ids2text\nimport numpy as np\n\nfrom algos.config import CLASSES\n\n\ndef main(_):\n  melt.apps.init()\n  \n  #ev.init()\n\n  model = getattr(base, FLAGS.model)()\n  model.debug = True\n\n  melt.eager.restore(model)\n\n  ids2text.init()\n  vocab = ids2text.vocab\n\n  # query = '阿里和腾讯谁更流氓'\n  # passage = '腾讯比阿里流氓'\n\n  # query = 'c罗和梅西谁踢球更好'\n  # passage = '梅西比c罗踢的好'\n  query = '青光眼遗传吗'\n  passage = '青光眼有遗传因素的，所以如果是您的父亲是青光眼的话，那我们在这里就强烈建议您，自己早期到医院里面去做一个筛查，测一下，看看眼，尤其是检查一下视野，然后视网膜的那个情况，都做一个早期的检查。'\n  \n  qids = text2ids(query)\n  qwords = [vocab.key(qid) for qid in qids]\n  print(qids)\n  print(ids2text.ids2text(qids))\n  pids = text2ids(passage)\n  pwords = [vocab.key(pid) for pid in pids]\n  print(pids)\n  print(ids2text.ids2text(pids))\n\n  x = {\n        'query': [qids], \n        'passage':  [pids],\n        'type': [0],\n      }\n\n  logits = model(x)[0]\n  probs = gezi.softmax(logits)\n  print(probs)\n  print(list(zip(CLASSES, [x for x in probs])))\n\n  predict = np.argmax(logits, -1) \n  print('predict', predict, CLASSES[predict])\n\n  # print words importance scores\n  word_scores_list = model.pooling.word_scores\n\n  for word_scores in word_scores_list:\n    print(list(zip(pwords, word_scores[0].numpy())))\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/reader/prepare/README.md",
    "content": "./gen-seg.py is for dureader corpus seg (~/data/dureader/raw/corpus/corpus.json)\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/reader/valid.json', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/reader/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('limit', 5000, '')\nflags.DEFINE_integer('max_examples', None, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_bool('use_char', None, '')\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_bool('add_start_end_', True, '')\n\n\nimport traceback\nimport multiprocessing\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\n\nfrom gezi import Vocabulary\nimport gezi\nimport melt\n\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0) \ntotal_words = Value('i', 0)\n\nvocab = None\nchar_vocab = None\npos_vocab = None\n\ndef get_mode(path):\n  if 'train' in path:\n    return 'train'\n  elif 'valid' in path:\n    return 'valid' \n  elif 'test' in path:\n    return 'test'\n  elif '.pm' in path:\n    return 'pm'\n  return 'train'\n\n\ndef is_negative(candidate):\n  negs = ['不', '无', '没']\n  for neg in negs:\n    if neg in candidate:\n      return True \n  return False\n\n# neg, pos, uncertain\ndef sort_alternatives(alternatives, query):\n  candidates = [None] * 3\n  type = 0\n\n  l = []\n  alternatives = alternatives.split('|')\n  # TODO check strip.. for answer\n  for candidate_ in alternatives:\n    # if candidate != candidate.strip():\n    #   print(query, alternatives)\n    candidate = candidate_.strip()\n    if candidate == '无法确定':\n      candidates[2] = candidate_\n    else:\n      l.append(candidate_) \n\n  if candidates[2] == None:\n    l = []\n    for candidate_ in alternatives:\n      candidate = candidate_.strip()\n      if ('无法' in candidate or '确定' in candidate or '确认' in candidate) or candidate == 'wfqd':\n        candidates[2] = candidate_\n      else:\n        l.append(candidate_) \n\n  if candidates[2] == None:\n    candidates[2] = l[-1]\n\n  if len(l) == 0:\n    candidates[0] = candidates[2]\n    candidates[1] = candidates[2]\n    \n    return candidates, type\n\n  # TODO \"alternatives\": \"不能|无法确定\" if only 2 possbiles now make another as 无法确定 but might just set to '' and\n  # when inference only consider prob of 不能 and 无法确定 mask '' to 0 prob\n  if len(l) == 1:\n    if l[0].strip().startswith('不') or l[0].strip().startswith('无') \\\n      or l[0].strip().startswith('假') \\\n      or l[0].strip().startswith('坏'):\n      candidates[0] = l[0]\n      candidates[1] = candidates[-1]\n    else:\n      candidates[0] = candidates[-1]\n      candidates[1] = l[0]\n\n    return candidates, type\n\n  if l[0].strip() == '是' and l[1].strip() == '否':\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n  \n  if l[0].strip() == '否' and l[1].strip() == '是':\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n\n  if l[0].strip().startswith('真') and l[1].strip().startswith('假') or l[0].strip().startswith('好') and l[1].strip().startswith('坏'):\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n\n  if l[0].strip().startswith('假') and l[1].strip().startswith('真') or l[0].strip().startswith('坏') and l[1].strip().startswith('好'):\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n\n  if l[0] in l[1]:\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n  \n  if l[1] in l[0]:\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type    \n\n\n  if is_negative(l[0]):\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n  elif is_negative(l[1]):\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n  \n  if l[0] in query and l[1] not in query:\n    candidates[1] = l[0]\n    candidates[0] = l[1]\n    return candidates, type\n  \n  if l[0] not in query and l[1] in query:\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n      \n  # #assert l[0] in query and l[1] in query, f'{l[0]},{l[1]},{query}' \n  # if not (l[0] in query and l[1] in query):\n  #   return [], type \n\n  type = 1\n  # TODO not ok for like  跑步好，慢走好  跑步和慢走哪个好？\n  pos1 = query.lower().find(l[0].strip().lower())\n  if pos1 < 0:\n    pos1 = query.lower().find(l[0][:-1].strip().lower())\n  pos2 = query.lower().find(l[1].strip().lower())\n  if pos2 < 0:\n    pos2 = query.lower().find(l[1][:-1].strip().lower())\n  if pos1 < 0:\n    pos1 = 10000\n  if pos2 < 0:\n    pos2 = 10000\n  if pos1 <= pos2:\n    # candidates[0] = l[0]\n    # candidates[1] = l[1]\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n  else:\n    # candidates[0] = l[1]\n    # candidates[1] = l[0]\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n\n  return candidates, type\n\ndef get_char_ids(words):\n  if FLAGS.use_char:\n    words = words[:FLAGS.limit]\n    chars = [list(word) for word in words]\n    char_ids = np.zeros([len(words), FLAGS.char_limit], dtype=np.int32)\n    \n    vocab_ = char_vocab if char_vocab else vocab\n\n    for i, token in enumerate(chars):\n      for j, ch in enumerate(token):\n        if j == FLAGS.char_limit:\n          break\n        char_ids[i, j] = vocab_.id(ch)\n\n    char_ids = list(char_ids.reshape(-1))\n    if np.sum(char_ids) == 0:\n      print('------------------------bad id', id)\n      print(content_ids)\n      print(words)\n      exit(0)\n  else:\n    char_ids = [0]\n\n  return char_ids\n\ndef get_pos_ids(pos):\n  if pos_vocab:\n    assert pos\n    pos = pos[:FLAGS.word_limit]\n    pos_ids = [pos_vocab.id(x) for x in pos]\n  else:\n    pos_ids = [0]\n  return pos_ids\n\ndef build_features(file_):\n  mode = get_mode(FLAGS.input)\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/{1}.tfrecord'.format(mode, os.path.basename(file_).split('_')[-1])\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('infile', file_, 'out_file', out_file)\n\n  max_len = 0\n  num = 0\n  num_whether = 0\n  answer_len = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for line in open(file_):\n      try:\n        m = json.loads(line.rstrip('\\n'))\n        url = m['url']\n        alternatives = m['alternatives']\n        query_id = int(m['query_id'])\n        passage = m['passage']\n        query = m['query']\n\n        # if query_id != 254146:\n        #   continue\n\n        if not 'answer' in m:\n          answer = 'unknown'\n        else:\n          answer = m['answer']\n\n        # candidates is neg,pos,uncertain\n        # type 0 means true or false,  type 1 means wehter\n        candidates, type = sort_alternatives(alternatives, query)\n\n        assert candidates is not None\n\n        answer_id = 0\n        for i, candiate in enumerate(candidates):\n          if candiate == answer:\n            answer_id = i\n\n        assert candidates is not None\n        candidates_str = '|'.join(candidates)\n\n        pos = None\n        words = m['seg_query'].split('\\x09')\n        if '|' in words[0]:\n          try:\n            l = [x.split('|') for x in words]\n            words, pos = list(zip(*l))\n          except Exception:\n            print(m['seg_query'].split('\\x09'))\n        if FLAGS.add_start_end_:\n          words = gezi.add_start_end(words)\n        if pos:\n          if FLAGS.add_start_end_:\n            pos = gezi.add_start_end(pos)\n        query_ids = [vocab.id(x) for x in words]\n        query_pos_ids = get_pos_ids(pos)\n        query_char_ids = get_char_ids(words)\n\n        pos = None\n        words = m['seg_passage'].split('\\x09')\n        if '|' in words[0]:\n          try:\n            l = [x.split('|') for x in words]\n            words, pos = list(zip(*l))\n          except Exception:\n            print(m['seg_passage'].split('\\x09'))\n        if FLAGS.add_start_end_:\n          words = gezi.add_start_end(words)\n        if pos:\n          if FLAGS.add_start_end_:\n            pos = gezi.add_start_end(pos)\n        passage_ids = [vocab.id(x) for x in words]\n        passage_pos_ids = get_pos_ids(pos)\n        passage_char_ids = get_char_ids(words)\n\n        alternatives_list = alternatives.split('|')\n        alternatives_segs = m['seg_alternatives'].split('|')\n      \n        for i, candidate in enumerate(candidates):\n          index = alternatives_list.index(candiate)\n          segs = alternatives_segs[index]\n          words = segs.split('\\x09')\n          pos = None\n          if '|' in words[0]:\n            l = [x.split('|') for x in words]\n            words, pos = list(zip(*l))\n          if FLAGS.add_start_end_:\n            words = gezi.add_start_end(words)\n          if pos:\n            if FLAGS.add_start_end_:\n              pos = gezi.add_start_end(pos)\n\n          if i == 0:\n            candidate_neg_ids = [vocab.id(x) for x in words]\n            candidate_neg_pos_ids  = get_pos_ids(pos)\n            candidate_neg_char_ids = get_char_ids(words)\n          elif i == 1:\n            candidate_pos_ids = [vocab.id(x) for x in words]\n            candidate_pos_pos_ids = get_pos_ids(pos)\n            candidate_pos_char_ids = get_char_ids(words)\n          else:\n            # 无法确定\n            candidate_na_ids = [vocab.id(x) for x in words]\n            candidate_na_pos_ids = get_pos_ids(pos)\n            candidate_na_char_ids = get_char_ids(words)\n\n        if len(candidate_pos_ids) > answer_len:\n          answer_len = len(candidate_pos_ids)\n          print(answer_len)\n        if len(candidate_neg_ids) > answer_len:\n          answer_len = len(candidate_neg_ids)\n          print(answer_len)\n        \n        assert len(query_ids), line\n        assert len(passage_ids), line\n\n        limit = FLAGS.limit\n\n        if len(passage_ids) > limit:\n          print('long line', len(passage_ids), query_id)\n\n        if len(passage_ids) > max_len:\n          max_len = len(passage_ids)\n          print('max_len', max_len)\n\n        query_ids = query_ids[:limit]\n        passage_ids = passage_ids[:limit]\n\n        feature = {\n                    'id': melt.bytes_feature(str(query_id)),\n                    'url': melt.bytes_feature(url),\n                    'alternatives': melt.bytes_feature(alternatives),\n                    'candidates': melt.bytes_feature(candidates_str),\n                    'passage': melt.int64_feature(passage_ids),\n                    'passage_char': melt.int64_feature(passage_char_ids),\n                    'passage_pos': melt.int64_feature(passage_pos_ids),\n                    'passage_str': melt.bytes_feature(passage),\n                    'query': melt.int64_feature(query_ids),\n                    'query_char': melt.int64_feature(query_char_ids),\n                    'query_pos': melt.int64_feature(query_pos_ids),\n                    'query_str': melt.bytes_feature(query),\n                    'candidate_neg': melt.int64_feature(candidate_neg_ids),\n                    'candidate_neg_char': melt.int64_feature(candidate_neg_char_ids),\n                    'candidate_neg_pos': melt.int64_feature(candidate_neg_pos_ids),\n                    'candidate_pos': melt.int64_feature(candidate_pos_ids),\n                    'candidate_pos_char': melt.int64_feature(candidate_pos_char_ids),\n                    'candidate_pos_pos': melt.int64_feature(candidate_pos_pos_ids),\n                    'candidate_na': melt.int64_feature(candidate_na_ids),\n                    'candidate_na_char': melt.int64_feature(candidate_na_char_ids),\n                    'candidate_na_pos': melt.int64_feature(candidate_na_pos_ids),\n                    'answer': melt.int64_feature(answer_id),\n                    'answer_str': melt.bytes_feature(answer),\n                    'type': melt.int64_feature(type)         \n                  }\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        #if not candidates:\n        if num % 1000 == 0:\n          print(num, query_id, query, type)\n          print(alternatives, candidates)\n          print(answer, answer_id)\n\n        writer.write(record)\n        num += 1\n        if type:\n          num_whether += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(passage_ids)\n        if FLAGS.max_examples and num >= FLAGS.max_examples:\n          break\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        print('-----------', query)\n        print(alternatives)\n\n      #break\n  print('num_wehter:', num_whether)\n\ndef main(_):  \n  assert FLAGS.use_char is not None\n\n  global vocab, char_vocab, pos_vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_)\n  print('vocab size:', vocab.size())\n  char_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt')\n  if os.path.exists(char_vocab_file):\n    char_vocab = Vocabulary(char_vocab_file)\n    print('char vocab size:', char_vocab.size())\n  pos_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'pos_vocab.txt')\n  if os.path.exists(pos_vocab_file):\n    pos_vocab = Vocabulary(pos_vocab_file)\n    print('pos vocab size:', pos_vocab.size())\n  \n  if os.path.isfile(FLAGS.input):\n    build_features(FLAGS.input)\n  else:\n    files = glob.glob(FLAGS.input + '/*') \n    pool = multiprocessing.Pool(multiprocessing.cpu_count())\n    pool.map(build_features, files)\n    pool.close()\n    pool.join()\n\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n  mode = get_mode(FLAGS.input)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/gen-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dureader corpus /home/gezi/data/dureader/raw/trainset/*.json\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport json \nimport traceback\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text):\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  print(' '.join(words))\n\nnum = 0\nnum_errs = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n      print(num, 'num_errs:', num_errs, file=sys.stderr)\n  line = line.rstrip()\n  # try:\n  m = json.loads(line)\n  question = m['question']\n  seg(question)\n  answers = m['answers']\n  for answer in answers:\n    seg(answer)\n  docs = m['documents']\n  for doc in docs:\n    title = doc['title']\n    seg(title)\n    for paragrah in doc['paragraphs']:\n      seg(paragrah)\n  num += 1\n  if num == FLAGS.max_lines:\n    break\n  # except Exception:\n  #   num_errs += 1\n  #   print(traceback.format_exc())\n\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/sentiment/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/sentiment/vectors.txt', '')\nflags.DEFINE_integer('min_count', 20, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nflags.DEFINE_integer('max_words', 200000, '')\nflags.DEFINE_bool('add_additional', True, 'add additional words from embedding file, this is by default for word')\n\nflags.DEFINE_string('sort_by', 'count', '')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  print('emb', FLAGS.emb)\n  input_vocab = FLAGS.input_vocab\n  print('input_vocab', input_vocab)\n  dir_ = os.path.dirname(FLAGS.input_vocab)\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      try:\n        vector = list(map(float, array[-vec_size:]))\n      except Exception:\n        print(i, line)\n        continue\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      else:\n        embedding_dict[word.lower()] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  if FLAGS.sort_by == 'count':\n    print('sort by count')\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n  else:\n    print('sort by knowldege')\n    words_knowledge = []\n    emb_mat_knowledge = []\n    words_no_knowledge = []\n    emb_mat_no_knowledge = []\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat_knowledge.append(np.array(embedding_dict[word]))\n          words_knowledge.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat_no_knowledge.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words_no_knowledge.append(word)  \n        # elif FLAGS.type == 'scratch':\n        #   if count >= FLAGS.min_count:\n        #     if word in embedding_dict:\n        #       emb_mat.append(np.array(embedding_dict[word]))\n        #       words.append(word)  \n        #     else:\n        #       #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n        #       emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n        #       words.append(word)  \n        # elif FLAGS.type == 'only':\n        #   if word in embedding_dict:\n        #     emb_mat.append(np.array(embedding_dict[word]))\n        #     words.append(word)  \n\n    #if FLAGS.sort_by == 'knowledge':\n    words += words_no_knowledge\n    emb_mat += emb_mat_no_knowledge\n    words += words_knowledge\n    emb_mat += emb_mat_knowledge\n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  if FLAGS.add_additional:\n    for word in embedding_dict:\n      if word not in words_set:\n        words_set.add(word)\n        words.append(word)\n        emb_mat.append(np.array(embedding_dict[word]))\n        if len(words) > FLAGS.max_words:\n          break\n\n    print('num words after adding additional', len(words))\n\n  out_vocab = os.path.join(dir_, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  print('out_vocab', out_vocab)\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(dir_, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  print('out_mat', out_mat)\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/pre-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport six\nif FLAGS.seg_method == 'char':\n  assert not six.PY2\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\nimport json\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\ncounter = WordCounter(most_common=0, min_count=1)\ncounter2 = WordCounter(most_common=0, min_count=1)\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ntype = None\n\nif gezi.env_has('SENTENCE_PIECE'):\n  assert FLAGS.sp_path \n  gezi.segment.init_sp(FLAGS.sp_path)\n\ndef seg_(text):\n  l = gezi.cut(text, type)\n\n  if type != 'word':\n    for x, y in l:\n      counter.add(x)\n      counter2.add(y)\n    words = ['%s|%s' % (x, y) for x,y in l]\n  else:\n    if FLAGS.seg_method == 'char':\n      l2 = []\n      for i, w in enumerate(l):\n        for ch in w:\n          counter.add(ch)\n          counter2.add(str(i))\n          l2.append((ch, i))\n      words =  ['%s|%d' % (x, y) for x,y in l2]\n    else:\n      words = l\n      for w in words:\n        counter.add(w)\n\n  return words\n\ndef seg(m, out):\n  # query\n  counter.add(START_WORD)\n  counter.add(END_WORD)\n  # passage\n  counter.add(START_WORD)\n  counter.add(END_WORD)\n\n  words = seg_(m['query'])\n  m['seg_query'] = '\\x09'.join(words)\n  words = seg_(m['passage'])\n  m['seg_passage'] = '\\x09'.join(words)\n\n  l = []\n  for x in m['alternatives'].split('|'):\n    words = seg_(x)\n    l.append('\\x09'.join(words))\n  m['seg_alternatives'] = '|'.join(l)\n\n  if six.PY2:\n    print(json.dumps(m, ensure_ascii=False).encode('utf8'), file=out)\n  else:\n    print(json.dumps(m, ensure_ascii=False), file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.json', '.seg.%s.json' % FLAGS.name)\nvocab = ifile.replace('.json', '.seg.%s.vocab' % FLAGS.name)\ntype = 'word'\n\nvocab2 = None\nif 'pos' in FLAGS.name or FLAGS.seg_method == 'char':\n  vocab2 = ifile.replace('.json', '.pos.%s.vocab' % FLAGS.name)\n  if 'pos' in FLAGS.name:\n    type = 'pos'\nelif 'ner' in FLAGS.name:\n  vocab2 = ifile.replace('.json', '.ner.%s.vocab' % FLAGS.name)\n  type = 'ner'\n\nfm = 'w'\nids_set = set()\n# if os.path.exists(ofile):\n#   fm = 'a'\n#   for line in open(ofile):\n#     m = json.loads(line.rstrip('\\n'))\n#     ids_set.add(m['query_id'])\n\nprint('%s already done %d' % (ofile, len(ids_set)))\n\nnum_errs = 0\nwith open(ofile, fm) as out:\n  lines = open(ifile).readlines()\n  for i in tqdm(range(len(lines)), ascii=True):\n    m = json.loads(lines[i].rstrip('\\n'))\n    id = m['query_id']\n    if id in ids_set:\n      continue\n    try:\n      seg(m, out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\ncounter.save(vocab)\nif vocab2:\n  counter2.save(vocab2)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(lines))\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/run-char-ft.sh",
    "content": "dir=./mount/temp/ai2018/reader/tfrecords/char.ft \nemb=./mount/data/my-embedding.v1/fastText-dureader-char/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/run-char-glove.sh",
    "content": "dir=./mount/temp/ai2018/reader/tfrecords/char.glove\nemb=./mount/data/my-embedding.v1/GloVe-dureader-char/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/run-noemb.sh",
    "content": "dir=$1 \nvocab=$dir/vocab.txt \n\npython ./gen-records.py --input $dir/test.json  --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input $dir/train.corpus --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/run-word-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/reader/tfrecords/word.jieba.ft\nemb=./mount/data/my-embedding.v1/fastText-dureader-basic/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --max_words=400000\n\nsh ./run-noemb.sh $dir\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/run-word-jieba-glove.sh",
    "content": "dir=./mount/temp/ai2018/reader/tfrecords/word.jieba.glove\nemb=./mount/data/my-embedding.v1/GloVe-dureader-basic/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --max_words=400000\n\nsh ./run-noemb.sh $dir\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/to-simplify-dureader.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dureader corpus /home/gezi/data/dureader/raw/trainset/*.json\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys,os\nimport numpy as np\nimport gezi\n\nimport json \nimport traceback\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nnum = 0\nnum_errs = 0\nfor line in sys.stdin:\n  line = line.rstrip()\n  # try:\n  m = json.loads(line)\n  m['question'] = gezi.to_simplify(m['question'])\n  for i in range(len(m['answers'])):\n    m['answers'][i] = gezi.to_simplify(m['answers'][i])\n  for i in range(len(m['documents'])):\n    m['documents'][i]['title'] = gezi.to_simplify(m['documents'][i]['title'])\n    for j in range(len(m['documents'][i]['paragraphs'])):\n      m['documents'][i]['paragraphs'][j] = gezi.to_simplify(m['documents'][i]['paragraphs'][j])\n  print(json.dumps(m, ensure_ascii=False).encode('utf8'))\n\n"
  },
  {
    "path": "projects/ai2018/reader/prepare/to-simplify.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tqdm import tqdm\nimport pandas as pd\nimport gezi\nimport traceback \nimport json\nimport six  \n#you may need to ln ~/soft/bseg/ data,conf,lib to current path and run in pyenv(python2)\nassert six.PY2, 'must using py2 env to do simplify'\n  \nfor line in open(sys.argv[1]):\n  m = json.loads(line.rstrip('\\n')) \n  m['passage'] = gezi.to_simplify(m['passage'])\n  m['query'] = gezi.to_simplify(m['query'])\n  m['alternatives'] = gezi.to_simplify(m['alternatives'])\n  print(json.dumps(m, ensure_ascii=False).encode('utf8'))\n"
  },
  {
    "path": "projects/ai2018/reader/prepare-unkvocab.sh",
    "content": "cd ./prepare/ \nsh run-unkvocab.sh \ncd ..\npython ./read-records.py --type=dump\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.sh",
    "content": "cd ./prepare/ \nsh run.sh \ncd ..\npython ./read-records.py --type=dump\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\nchars2 = [x.upper() for x in chars]\nchars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-content.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-content.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 10:37:16.658519\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\ninfile = './mount/data/ai2018/reader/train.json'\n\nimport json \n\nfor line in open(infile):\n  m = json.loads(line.rstrip())\n  print(m['query'])\n  print(m['passage'])\n\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/reader/valid.json', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/reader/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('limit', 5000, '')\nflags.DEFINE_integer('max_examples', None, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_bool('use_char', False, '')\n\nimport traceback\nimport multiprocessing\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\n\nfrom gezi import Vocabulary\nimport gezi\nimport melt\nfrom text2ids import text2ids as text2ids_ \nfrom wenzheng.utils import text2ids\n\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0) \ntotal_words = Value('i', 0)\n\ndef get_mode(path):\n  if 'train' in path:\n    return 'train'\n  elif 'valid' in path:\n    return 'valid' \n  elif 'test' in path:\n    return 'test'\n  elif '.pm' in path:\n    return 'pm'\n  return 'train'\n\n\ndef is_negative(candidate):\n  negs = ['不', '无', '没']\n  for neg in negs:\n    if neg in candidate:\n      return True \n  return False\n\n# neg, pos, uncertain\ndef sort_alternatives(alternatives, query):\n  candidates = [None] * 3\n  type = 0\n\n  l = []\n  alternatives = alternatives.split('|')\n  # TODO check strip.. for answer\n  for candidate_ in alternatives:\n    # if candidate != candidate.strip():\n    #   print(query, alternatives)\n    candidate = candidate_.strip()\n    if candidate == '无法确定':\n      candidates[2] = candidate_\n    else:\n      l.append(candidate_) \n\n  if candidates[2] == None:\n    l = []\n    for candidate_ in alternatives:\n      candidate = candidate_.strip()\n      if ('无法' in candidate or '确定' in candidate or '确认' in candidate) or candidate == 'wfqd':\n        candidates[2] = candidate_\n      else:\n        l.append(candidate_) \n\n  if candidates[2] == None:\n    candidates[2] = l[-1]\n\n  if len(l) == 0:\n    candidates[0] = candidates[2]\n    candidates[1] = candidates[2]\n    \n    return candidates, type\n\n  # TODO \"alternatives\": \"不能|无法确定\" if only 2 possbiles now make another as 无法确定 but might just set to '' and\n  # when inference only consider prob of 不能 and 无法确定 mask '' to 0 prob\n  if len(l) == 1:\n    if l[0].strip().startswith('不') or l[0].strip().startswith('无') \\\n      or l[0].strip().startswith('假') \\\n      or l[0].strip().startswith('坏'):\n      candidates[0] = l[0]\n      candidates[1] = candidates[-1]\n    else:\n      candidates[0] = candidates[-1]\n      candidates[1] = l[0]\n\n    return candidates, type\n\n  if l[0].strip() == '是' and l[1].strip() == '否':\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n  \n  if l[0].strip() == '否' and l[1].strip() == '是':\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n\n  if l[0].strip().startswith('真') and l[1].strip().startswith('假') or l[0].strip().startswith('好') and l[1].strip().startswith('坏'):\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n\n  if l[0].strip().startswith('假') and l[1].strip().startswith('真') or l[0].strip().startswith('坏') and l[1].strip().startswith('好'):\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n\n  if l[0] in l[1]:\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n  \n  if l[1] in l[0]:\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type    \n\n\n  if is_negative(l[0]):\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n  elif is_negative(l[1]):\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n    return candidates, type\n  \n  if l[0] in query and l[1] not in query:\n    candidates[1] = l[0]\n    candidates[0] = l[1]\n    return candidates, type\n  \n  if l[0] not in query and l[1] in query:\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n    return candidates, type\n      \n  # #assert l[0] in query and l[1] in query, f'{l[0]},{l[1]},{query}' \n  # if not (l[0] in query and l[1] in query):\n  #   return [], type \n\n  type = 1\n  # TODO not ok for like  跑步好，慢走好  跑步和慢走哪个好？\n  pos1 = query.lower().find(l[0].strip().lower())\n  if pos1 < 0:\n    pos1 = query.lower().find(l[0][:-1].strip().lower())\n  pos2 = query.lower().find(l[1].strip().lower())\n  if pos2 < 0:\n    pos2 = query.lower().find(l[1][:-1].strip().lower())\n  if pos1 < 0:\n    pos1 = 10000\n  if pos2 < 0:\n    pos2 = 10000\n  if pos1 <= pos2:\n    # candidates[0] = l[0]\n    # candidates[1] = l[1]\n    candidates[0] = l[1]\n    candidates[1] = l[0]\n  else:\n    # candidates[0] = l[1]\n    # candidates[1] = l[0]\n    candidates[0] = l[0]\n    candidates[1] = l[1]\n\n  return candidates, type\n\ndef build_features(file_):\n  mode = get_mode(FLAGS.input)\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/{1}_{2}.tfrecord'.format(mode, os.path.basename(os.path.dirname(file_)), os.path.basename(file_))\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('infile', file_, 'out_file', out_file)\n\n  num = 0\n  num_whether = 0\n  answer_len = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for line in open(file_):\n      try:\n        m = json.loads(line.rstrip('\\n'))\n        url = m['url']\n        alternatives = m['alternatives']\n        query_id = int(m['query_id'])\n        passage = m['passage']\n        query = m['query']\n\n        # if query_id != 254146:\n        #   continue\n\n        if not 'answer' in m:\n          answer = 'unknown'\n        else:\n          answer = m['answer']\n\n        # candidates is neg,pos,uncertain\n        # type 0 means true or false,  type 1 means wehter\n        candidates, type = sort_alternatives(alternatives, query)\n\n        assert candidates is not None\n\n        answer_id = 0\n        for i, candiate in enumerate(candidates):\n          if candiate == answer:\n            answer_id = i\n\n        assert candidates is not None\n        candidates_str = '|'.join(candidates)\n\n        query_ids = text2ids_(query)\n        passage_ids = text2ids_(passage)\n\n        candidate_neg_ids = text2ids_(candidates[0])\n        candidate_pos_ids = text2ids_(candidates[1])\n        candidate_na_ids = text2ids_('无法确定')\n\n        if len(candidate_pos_ids) > answer_len:\n          answer_len = len(candidate_pos_ids)\n          print(answer_len)\n        if len(candidate_neg_ids) > answer_len:\n          answer_len = len(candidate_neg_ids)\n          print(answer_len)\n        \n        assert len(query_ids), line\n        assert len(passage_ids), line\n\n        limit = FLAGS.limit\n\n        if len(passage_ids) > limit:\n          print('long line', len(passage_ids), query_id)\n\n        query_ids = query_ids[:limit]\n        passage_ids = passage_ids[:limit]\n\n        feature = {\n                    'id': melt.bytes_feature(str(query_id)),\n                    'url': melt.bytes_feature(url),\n                    'alternatives': melt.bytes_feature(alternatives),\n                    'candidates': melt.bytes_feature(candidates_str),\n                    'passage': melt.int64_feature(passage_ids),\n                    'passage_str': melt.bytes_feature(passage),\n                    'query': melt.int64_feature(query_ids),\n                    'query_str': melt.bytes_feature(query),\n                    'candidate_neg': melt.int64_feature(candidate_neg_ids),\n                    'candidate_pos': melt.int64_feature(candidate_pos_ids),\n                    'candidate_na': melt.int64_feature(candidate_na_ids),\n                    'answer': melt.int64_feature(answer_id),\n                    'answer_str': melt.bytes_feature(answer),\n                    'type': melt.int64_feature(type)         \n                  }\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        #if not candidates:\n        if num % 1000 == 0:\n          print(num, query_id, query, type)\n          print(alternatives, candidates)\n          print(answer, answer_id)\n\n        writer.write(record)\n        num += 1\n        if type:\n          num_whether += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(passage_ids)\n        if FLAGS.max_examples and num >= FLAGS.max_examples:\n          break\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        print('-----------', query)\n        print(alternatives)\n\n      #break\n  print('num_wehter:', num_whether)\n\ndef main(_):  \n  text2ids.init(FLAGS.vocab_)\n  print('to_lower:', FLAGS.to_lower, 'feed_single_en:', FLAGS.feed_single_en, 'seg_method', FLAGS.seg_method)\n  print(text2ids.ids2text(text2ids_('傻逼脑残B')))\n  print(text2ids_('傻逼脑残B'))\n  print(text2ids.ids2text(text2ids_('喜欢玩孙尚香的加我好友：2948291976')))\n\n  #exit(0)\n  \n  if os.path.isfile(FLAGS.input):\n    build_features(FLAGS.input)\n  else:\n    files = glob.glob(FLAGS.input + '/*') \n    pool = multiprocessing.Pool(multiprocessing.cpu_count())\n    pool.map(build_features, files)\n    pool.close()\n    pool.join()\n\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n  mode = get_mode(FLAGS.input)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dureader corpus /home/gezi/data/dureader/raw/trainset/*.json\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport json\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text):\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  print(' '.join(words))\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  line = line.rstrip()\n  m = json.loads(line)\n  question = m['question']\n  seg(question)\n  answers = m['answers']\n  for answer in answers:\n    seg(answer)\n  docs = m['documents']\n  for doc in docs:\n    title = doc['title']\n    seg(title)\n    for paragrah in doc['paragraphs']:\n      seg(paragrah)\n  num += 1\n  if num == FLAGS.max_lines:\n    break\n\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-test-unkvocab.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/reader/test.json --unk_vocab_size=100\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-test.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/reader/test.json\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-train-unkvocab.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/reader/train/ --unk_vocab_size=100\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-train.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/reader/train/\n#python ./gen-records.py --input ./mount/data/ai2018/reader/train.json \n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-valid-unkvocab.sh",
    "content": "python ./gen-records.py --unk_vocab_size=100\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-valid.sh",
    "content": "python ./gen-records.py\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-vocab.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO could do segment parallel @TODO\nnow single thread... slow\n\"\"\"\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 0, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\", 0, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"add_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_boolean(\"save_count_info\", True, \"save count info to bin\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/ai2018/reader/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\nflags.DEFINE_string('seg_method', 'basic_single', '')\n\nassert FLAGS.most_common > 0 or FLAGS.min_count > 0\nassert FLAGS.seg_method\n\nfrom gezi import WordCounter \n\ncounter = WordCounter(\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\nimport sys,os\n#reload(sys)\n#sys.setdefaultencoding('utf8')\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\nprint('min_count:', FLAGS.min_count, 'most_common:', FLAGS.most_common)\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  text = line.rstrip()\n  #text = text.lower()\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  if num % 10000 == 0:\n    print(text, '|'.join(words), len(words), file=sys.stderr)\n  counter.add(START_WORD)\n  for word in words:\n    counter.add(word)\n    if word.isdigit():\n      counter.add('<NUM>')\n  counter.add(END_WORD)\n  num += 1\n\n  if num == FLAGS.max_lines:\n    break\n\ncounter.add(START_WORD)\n\nprint(FLAGS.out_dir, file=sys.stderr)\nvocab_name = FLAGS.vocab_name or 'vocab'\ncounter.save(FLAGS.out_dir + '/%s.txt' % vocab_name)\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/gen-vocab.sh",
    "content": "python gen-content.py | python gen-vocab.py --min_count=1\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/reader/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('dir', './mount/temp/ai2018/reader/tfrecord/', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/reader/vectors.txt', '')\nflags.DEFINE_integer('min_count', 10, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  input_vocab = FLAGS.input_vocab\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if word in embedding_dict:\n            emb_mat.append(np.array(embedding_dict[word]))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/run-char.sh",
    "content": "sh ./gen-valid.sh --seg_method=char\nsh ./gen-test.sh --seg_method=char\nsh ./gen-train.sh --seg_method=char\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/run-unkvocab.sh",
    "content": "python ./merge-emb.py \nsh ./gen-valid-unkvocab.sh \nsh ./gen-test-unkvocab.sh \nsh ./gen-train-unkvocab.sh\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/run.sh",
    "content": "python ./merge-emb.py \nsh ./gen-valid.sh \nsh ./gen-test.sh \nsh ./gen-train.sh\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('to_lower', True, '')\nflags.DEFINE_integer('unk_vocab_size', None, 'none means not to use, and if use can set like 10000')\n\n\nimport sys \nimport os\n\n#from projects.ai2018.reader.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \ndef text2ids(text):\n  wenzheng.utils.text2ids.init()\n  #text = filter.filter(text)\n  return to_ids(text, seg_method=FLAGS.seg_method, \n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                pad=False,\n                unk_vocab_size=FLAGS.unk_vocab_size)\n"
  },
  {
    "path": "projects/ai2018/reader/prepare.v1/to-simplify.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tqdm import tqdm\nimport pandas as pd\nimport gezi\nimport traceback \n\nimport six \nassert six.PY2, 'must using py2 env to do simplify'\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1], lineterminator='\\n')\n\ncontents = df[key].values \n\nnum_modified = 0\nnum_errs = 0\nfor i in tqdm(range(len(contents)), ascii=True):\n  try:\n    scontent = gezi.to_simplify(contents[i])\n  except Exception:\n    num_errs += 1\n    print(traceback.format_exc())\n    continue\n  if scontent != contents[i]:\n    # print('------------------', i)\n    # print(contents[i])\n    # print(scontent)\n    contents[i] = scontent\n    num_modified += 1\n\ndf[key] = contents\n\nprint('modify ratio', num_modified / len(df))\nprint('num_errs', num_errs)\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/reader/read-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   inference.py\n#        \\author   chenghuige  \n#          \\date   2018-02-05 20:05:25.123740\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/temp/ai2018/sentiment/tfrecord/valid/*record,', '')\nflags.DEFINE_integer('batch_size_', 512, '')\nflags.DEFINE_string('type', 'debug', '')\nflags.DEFINE_string('base', './mount/temp/ai2018/sentiment/tfrecord/', '')\n#flags.DEFINE_integer('fold', None, '')\n\nimport tensorflow as tf\ntf.enable_eager_execution()\n\nimport sys, os\nfrom sklearn import metrics\nimport pandas as pd \nimport numpy as np\nimport gezi\n\n\nimport pickle\n\nfrom wenzheng.utils import ids2text\n\nimport melt\nlogging = melt.logging\nfrom dataset import Dataset\n\nfrom tqdm import tqdm\n\n# TODO by default save all ? so do not need to change the code ? \n# _asdict() https://stackoverflow.com/questions/26180528/python-named-tuple-to-dictionary\n# err... valid and test data share same id...\ndef deal(dataset, infos):\n  for x, _ in tqdm(dataset, ascii=True):\n    for key in x:\n      x[key] = x[key].numpy()\n      if type(x[key][0]) == bytes:\n        x[key] = gezi.decode(x[key])\n    ids = x['id']\n    for j in range(len(ids)):\n      infos[ids[j]] = {}\n      for key in x:\n        infos[ids[j]][key] = x[key][j]\n\ndef main(_):\n\n  base = FLAGS.base\n  logging.set_logging_path('./mount/tmp/')\n  vocab_path = f'{base}/vocab.txt'\n  ids2text.init(vocab_path)\n  FLAGS.vocab = f'{base}/vocab.txt'\n\n  # FLAGS.length_index = 2\n  # FLAGS.buckets = '100,400'\n  # FLAGS.batch_sizes = '64,64,32'\n\n  input_ = FLAGS.input \n  if FLAGS.type == 'test':\n    input_ = input_.replace('valid', 'test')\n\n  inputs = gezi.list_files(input_)\n  inputs.sort()\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n\n  if FLAGS.type == 'debug':\n    print('type', FLAGS.type, 'inputs', inputs, file=sys.stderr)\n\n    dataset = Dataset('valid')\n    dataset = dataset.make_batch(FLAGS.batch_size_, inputs)\n\n    print('dataset', dataset)\n\n    timer = gezi.Timer('read record')\n    for i, (x, y) in enumerate(dataset):\n      # if i % 10 == 1:\n      #   print(x['id'])\n      #   print(x['content'][0])\n      #   print(ids2text.ids2text(x['content'][0], sep='|'))\n      #   print(x['content'])\n      #   print(type(x['id'].numpy()[0]) == bytes)\n      #   break\n      x['id'] = gezi.decode(x['id'].numpy())\n      x['content_str'] = gezi.decode(x['content_str'].numpy())\n      for j, id in enumerate(x['id']):\n        if id == '573':\n          print(id, x['content_str'][j])\n  elif FLAGS.type == 'dump':\n    valid_infos = {}\n    test_infos = {}\n    inputs = gezi.list_files(f'{base}/train/*record')\n    dataset = Dataset('valid')\n    dataset = dataset.make_batch(1, inputs)\n    deal(dataset, valid_infos)\n    print('after valid', len(valid_infos))\n    inputs = gezi.list_files(f'{base}/test/*record')\n    dataset = Dataset('test')\n    dataset = dataset.make_batch(1, inputs)\n    deal(dataset, test_infos)\n    print('after test', len(test_infos))\n\n    for key in valid_infos:\n      print(valid_infos[key])\n      print(ids2text.ids2text(valid_infos[key]['content']))\n      break\n\n    ofile = f'{base}/info.pkl'\n    with open(ofile, 'wb') as out:\n      pickle.dump(valid_infos, out)  \n\n    ofile = ofile.replace('.pkl', '.test.pkl')  \n    with open(ofile, 'wb') as out:\n      pickle.dump(test_infos, out)\n  elif FLAGS.type == 'show_info':\n    valid_infos = pickle.load(open(f'{base}/info.pkl', 'rb'))\n    lens = [len(valid_infos[key]['content']) for key in valid_infos]\n    unks = [list(valid_infos[key]['content']).count(1) for key in valid_infos]\n    print('num unks per doc:', sum(unks) / len(unks))\n    print('num doc with unk ratio:', len([x for x in unks if x != 0]) / len(unks)) \n    print('un unk tokens ratio:', sum(unks) / sum(lens))\n    print('len max:', np.max(lens))\n    print('len min:', np.min(lens))\n    print('len mean:', np.mean(lens))\n  else:\n    raise ValueError(FLAGS.type)\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/reader/tools/check.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   check.py\n#        \\author   chenghuige  \n#          \\date   2018-09-10 01:35:31.982045\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\nimport json\n\ninfos = {}\n\nfor line in open(sys.argv[1]):\n  m = json.loads(line.rstrip('\\n'))\n  query_id = str(m['query_id'])\n  alternatives = m['alternatives']\n  infos[query_id] = [x.strip() for x in alternatives.split('|')]\n  if len(infos[query_id]) != 3:\n    print(line)\n\nfor line in open(sys.argv[2]):\n  query_id, predict = line.rstrip('\\n').split('\\t')\n  if predict not in infos[query_id]:\n    print(query_id, predict)\n  \n"
  },
  {
    "path": "projects/ai2018/reader/tools/check.sh",
    "content": "python ./check.py ~/data/ai2018/reader/test.json $1\n"
  },
  {
    "path": "projects/ai2018/reader/tools/cp-best-epochs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport gezi\n\nmodel_dir = '../' if not len(sys.argv) > 1 else sys.argv[1]\n\nthre = 0.73 if not len(sys.argv) > 2 else float(sys.argv[2])\n\nkey = 'acc' if not len(sys.argv) > 3 else sys.argv[3]\n\nprint('model_dir', model_dir, 'thre', thre, 'key', key)\n\nif key != 'loss':\n  cmp = lambda x, y: x > y \nelse:\n  cmp = lambda x, y: x < y\n\n# model.ckpt-3.00-9846.valid.metrics\n# ckpt-4.valid.metrics \nfor dir_ in glob.glob(f'{model_dir}/*/*'):\n  if not os.path.isdir(dir_):\n    continue\n  print(dir_)\n  best_score = 0 if key != 'loss' else 1e10\n  best_epoch = None\n  best_iepoch = None\n\n  in_epoch_dir = True\n  files = glob.glob(f'{dir_}/epoch/*.valid.metrics')\n  if not files:\n    in_epoch_dir = False\n    files = glob.glob(f'{dir_}/ckpt/*.valid.metrics')\n\n  for file_ in files: \n    epoch = gezi.strip_suffix(file_, 'valid.metrics').split('-')[1]\n    iepoch = int(float(epoch))\n    for line in open(file_):\n      name, score = line.strip().split()\n      score = float(score)\n      if name != key:\n        continue \n      if cmp(score, best_score):\n        best_score = score\n        best_epoch = epoch\n        best_iepoch = iepoch\n  print('best_epoch:', best_epoch, 'best_score:', best_score) \n  if best_epoch and best_score > thre:\n    if in_epoch_dir:\n      command = f'ensemble-cp.py {dir_}/epoch/model.ckpt-{best_epoch}'\n    else:\n      command = f'ensemble-cp.py {dir_}/ckpt/ckpt-{best_epoch}'\n    print(command)\n    os.system(command)\n"
  },
  {
    "path": "projects/ai2018/reader/tools/ensemble-infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nimport gezi\n\nidir = sys.argv[1]\n\n\ndef parse(input):\n  return np.array([float(x.strip()) for x in input[1:-1].split(' ') if x.strip()])\n\ncadidates = {}\nresults = {}\nresults2 = {}\nfor file_ in glob.glob('%s/*.infer.txt.debug' % idir):\n  df = pd.read_csv(file_)\n  #df = df.sort_index(0)\n  ids = df['id'].values\n  candidates_ = df['candidates'].values\n  scores = df['score']\n  scores = [parse(score) for score in scores]\n\n  if not results:\n    candidates = dict(zip(ids, candidates_))\n\n  print(file_)\n\n  scores =  gezi.softmax(scores, -1)\n  for id, score in zip(ids, scores):\n    if id not in results:\n      results[id] = score \n    else:\n      results[id] += score\n\n  # scores2 = gezi.softmax(scores, -1)\n  # for id, score in zip(ids, scores2):\n  #   if id not in results2:\n  #     results2[id] = score \n  #   else:\n  #     results2[id] += score\n\nofile = os.path.join(idir, 'ensemble.infer.txt')\nprint('ofile:', ofile)\nwith open(ofile, 'w') as out:\n  for id, score in results.items():\n    index = np.argmax(score, -1)\n    #print(id, score, index)\n    predict = candidates[id].split('|')[index]\n    print(id, predict, sep='\\t', file=out)\n\n\n\n"
  },
  {
    "path": "projects/ai2018/reader/tools/ensemble-valid.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nimport gezi\n\nidir = sys.argv[1]\n\n\ndef parse(input):\n  return np.array([float(x.strip()) for x in input[1:-1].split(' ') if x.strip()])\n\n\ncadidates = {}\nm = {}\nresults = {}\nresults2 = {}\nfor file_ in glob.glob('%s/*.valid.csv' % idir):\n  df = pd.read_csv(file_)\n  #df = df.sort_index(0)\n  ids = df['id'].values\n  labels = df['label'].values\n  candidates_ = df['candidates'].values\n  predicts = df['predict'].values\n  scores = df['score']\n  scores = [parse(score) for score in scores]\n\n  if not m:\n    m = dict(zip(ids, labels))\n    candidates = dict(zip(ids, candidates_))\n\n  print(file_, np.mean(np.equal(labels, predicts)))\n\n  for id, score in zip(ids, scores):\n    if id not in results:\n      results[id] = score \n    else:\n      results[id] += score\n\n  scores2 = gezi.softmax(scores, -1)\n  for id, score in zip(ids, scores2):\n    if id not in results2:\n      results2[id] = score \n    else:\n      results2[id] += score\n\nmatch = 0\nfor id, score in results.items():\n  index = np.argmax(score, -1)\n  #print(id, score, index)\n  predict = candidates[id].split('|')[index]\n  if predict == m[id]:\n    match += 1 \n\n\nprint('acc_by_logit', match / len(df))\n\nmatch = 0\nfor id, score in results2.items():\n  index = np.argmax(score, -1)\n  predict = candidates[id].split('|')[index]\n  #if predict.strip() == m[id]:\n  if predict == m[id]:\n    match += 1 \n\nprint('acc_by_prob', match / len(df))\n"
  },
  {
    "path": "projects/ai2018/reader/tools/ensemble.sh",
    "content": "python ./ensemble-valid.py $1 \npython ./ensemble-infer.py $1\n"
  },
  {
    "path": "projects/ai2018/reader/tools/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:12:03.819848\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\nfrom sklearn.metrics import f1_score\n\n\ndf = pd.read_csv(sys.argv[1])\n\nacc = 0\nfor row in df.iterrows():\n  acc += int(row[1]['label'] == row[1]['predict'])\n\nprint('acc:', acc / len(df))\n  \n"
  },
  {
    "path": "projects/ai2018/reader/tools/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\n#chars2 = [x.upper() for x in chars]\n#chars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/reader/tools/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/reader/tools/show-best-epochs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport gezi\n\nmodel_dir = '..'\nif len(sys.argv) > 1:\n  model_dir = sys.argv[1] \n\nkey = 'acc'\n\nif len(sys.argv) > 2:\n  key = sys.argv[2]\n\nprint('key', key)\n\nif key != 'loss':\n  cmp = lambda x, y: x > y \nelse:\n  cmp = lambda x, y: x < y\n\n# model.ckpt-3.00-9846.valid.metrics\n# ckpt-4.valid.metrics \nfor dir_ in glob.glob(f'{model_dir}/*/*'):\n  if not os.path.isdir(dir_):\n    continue\n  print(dir_)\n  best_score = 0 if key != 'loss' else 1e10\n  best_epoch = None\n\n  files = glob.glob(f'{dir_}/epoch/*.valid.metrics')\n  if not files:\n    files = glob.glob(f'{dir_}/ckpt/*.valid.metrics')\n\n  for file_ in files: \n    epoch = int(float(gezi.strip_suffix(file_, 'valid.metrics').split('-')[1]))\n    for line in open(file_):\n      name, score = line.strip().split()\n      score = float(score)\n      if name != key:\n        continue \n      if cmp(score, best_score):\n        best_score = score\n        best_epoch = epoch\n  print('best_epoch:', best_epoch, 'best_score:', best_score) \n\n"
  },
  {
    "path": "projects/ai2018/reader/tools/vocab-add-all-char.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in open(sys.argv[1]):\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nfor line in open(sys.argv[2]):\n  word, count = line.rstrip('\\n').split('\\t')\n  if word not in words:\n    print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/reader/tools/vocab-add-char.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in open(sys.argv[1]):\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nmin_count = int(sys.argv[3])\n\nfor line in open(sys.argv[2]):\n  word, count = line.rstrip('\\n').split('\\t')\n  if int(count) < min_count:\n    break\n  if word not in words:\n    print(word, count, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/reader/torch-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, io\nsys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')\nsys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\nimport torch_algos.model as base\nfrom torch_algos.loss import criterion\nfrom dataset import Dataset\nimport evaluate as ev\nimport lele\n\ndef get_num_finetune_words():\n  if not FLAGS.dynamic_finetune:\n    return FLAGS.num_finetune_words\n  else:\n    #return min(int(melt.epoch() * 1000), FLAGS.num_finetune_words)\n    return int(melt.epoch() * 1000)\n\ndef freeze_embedding(self, grad_input, grad_output):\n  num_finetune_words = get_num_finetune_words()\n  grad_output[0][num_finetune_words:, :] = 0\n\ndef freeze_char_embedding(self, grad_input, grad_output):\n  grad_output[0][FLAGS.num_finetune_chars:, :] = 0\n\ndef main(_):\n  FLAGS.num_folds = 10\n  FLAGS.torch = True\n  melt.apps.init()\n\n  ev.init()\n\n  embedding = None\n  if FLAGS.word_embedding_file and os.path.exists(FLAGS.word_embedding_file):\n    embedding = np.load(FLAGS.word_embedding_file)\n    FLAGS.emb_dim = embedding.shape[1]\n\n  model = getattr(base, FLAGS.model)(embedding)\n  if FLAGS.num_finetune_words:\n    model.encode.embedding.register_backward_hook(freeze_embedding)\n  if FLAGS.num_finetune_chars and FLAGS.use_char and FLAGS.use_char_emb:\n    model.encode.char_embedding.register_backward_hook(freeze_char_embedding)\n\n  logging.info('model\\n', model)\n\n  param_groups = None\n  if FLAGS.lm_path:\n    #both BiLanguageModel or RNet or MReader.. use self.ecode so ok update encode.embedding.weight... encode.char_embedding.weight..\n    _, updated_params = lele.load(model, FLAGS.lm_path)\n    if FLAGS.lm_lr_factor != 1:\n      ignored_params = list(map(id, updated_params))\n      base_params = filter(lambda p: id(p) not in ignored_params,\n                           model.parameters())\n      param_groups = [\n              {'params': base_params},\n              {'params': updated_params, 'lr': FLAGS.learning_rate * FLAGS.lm_lr_factor}\n            ]\n\n  train = melt.apps.get_train()\n\n  optimizer = None\n  if FLAGS.optimizer == 'noam':\n    # Hard to find optim parmas so not to use currently \n    # optimizer = lele.training.optimizers.NoamOpt(FLAGS.emb_dim, 2, 4000,\n    #         torch.optim.Adam(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9))\n    optimizer = lele.training.optimizers.NoamOpt(128, 2, 4000,\n        torch.optim.Adamax(model.parameters(), lr=0))\n  \n  train(Dataset,\n        model,  \n        criterion,\n        eval_fn=ev.evaluate, \n        valid_write_fn=ev.valid_write,\n        infer_write_fn=ev.infer_write,\n        valid_names=ev.valid_names,\n        valid_suffix='.valid.csv',\n        infer_debug_names=ev.valid_names,\n        infer_suffix='.infer.txt',\n        write_streaming=True,\n        optimizer=optimizer,\n        param_groups=param_groups\n        )   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/reader/torch_algos/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/reader/torch_algos/baseline/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/reader/torch_algos/baseline/baseline.py",
    "content": "# -*- coding: utf-8 -*-\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nfrom algos.config import NUM_CLASSES\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nimport melt\nlogging = melt.logging\n\nimport numpy as np\nimport lele\n\nclass Bow(nn.Module):\n  def __init__(self):\n    super(Bow, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    emb_dim = FLAGS.emb_dim \n\n    self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                emb_dim, \n                                                FLAGS.word_embedding_file, \n                                                FLAGS.finetune_word_embedding)\n\n\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.dropout = nn.Dropout(p=(1 - FLAGS.keep_prob))\n    self.encode = nn.GRU(input_size=emb_dim, hidden_size=self.num_units, batch_first=True, bidirectional=True)\n\n    #self.logits = nn.Linear(2 * self.num_units, NUM_CLASSES)\n    self.logits = nn.Linear(emb_dim, NUM_CLASSES)\n\n  def forward(self, input, training=False):\n    x = input['rcontent'] if FLAGS.rcontent else input['content']\n    #print(x.shape)\n\n    x = self.embedding(x)\n    \n    x = torch.max(x, 1)[0]\n    \n    x = self.logits(x)    \n\n    return x\n\nclass Gru(nn.Module):\n  def __init__(self):\n    super(Gru, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    emb_dim = FLAGS.emb_dim \n\n    self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                emb_dim, \n                                                FLAGS.word_embedding_file, \n                                                FLAGS.finetune_word_embedding)\n\n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.dropout = nn.Dropout(p=(1 - FLAGS.keep_prob))\n    \n    #self.encode = nn.GRU(input_size=emb_dim, hidden_size=self.num_units, batch_first=True, bidirectional=True)\n    self.encode = lele.layers.StackedBRNN(\n            input_size=emb_dim,\n            hidden_size=self.num_units,\n            num_layers=self.num_layers,\n            dropout_rate=1 - FLAGS.keep_prob,\n            dropout_output=False,\n            concat_layers=False,\n            rnn_type=nn.GRU,\n            padding=FLAGS.rnn_padding,\n        )    \n    ## Support mask\n    #self.pooling = lele.layers.MaxPooling() \n\n    self.pooling = lele.layers.Pooling(\n                        FLAGS.encoder_output_method, \n                        input_size= 2 * self.num_units,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation))\n\n    # input dim not as convinient as tf..\n    pre_logits_dim = self.pooling.output_size\n    \n    if FLAGS.use_type:\n      pre_logits_dim += 1\n\n    num_types = 2\n    if FLAGS.use_type_emb:\n      type_emb_dim = 10\n      self.type_embedding = nn.Embedding(num_types, type_emb_dim)\n      pre_logits_dim += type_emb_dim\n\n    if FLAGS.use_type_rnn:\n      self.type_embedding = nn.Embedding(num_types, emb_dim)\n\n    self.logits = nn.Linear(pre_logits_dim, NUM_CLASSES)\n    #self.logits = nn.Linear(emb_dim, NUM_CLASSES)\n\n  def forward(self, input, training=False):\n    x = input['rcontent'] if FLAGS.rcontent else input['content']\n    #print(x.shape)\n    x_mask = x.eq(0)\n    if not FLAGS.mask_pooling:\n      x_mask = torch.zeros_like(x, dtype=torch.uint8)\n\n    x = self.embedding(x)\n\n    if FLAGS.use_type_rnn:\n      t = self.type_embedding(input['type']).unsqueeze(1)\n      x = torch.cat([t, x], 1)\n    \n      # TODO by default touch.zeros is cpu..\n      x_mask = torch.cat([torch.zeros(x.size(0), 1, dtype=torch.uint8).cuda(), x_mask], 1)\n    \n    # # prefere to use class over function\n    # #x = F.dropout(x,self.drop_out, training=self.training)\n    # x = self.dropout(x)\n    # #print('training', self.training)\n\n    # x, _ = self.encode(x)\n\n    x = self.encode(x, x_mask)\n\n    \n    #x = F.max_pool2d(x, kernel_size=x.size()[2:])\n    #x = torch.max(x, 1)[0]\n\n    x = self.pooling(x, x_mask)\n\n    if FLAGS.use_type:\n      x = torch.cat([x, input['type'].float().unsqueeze(1)], 1)\n\n    if FLAGS.use_type_emb:\n      x = torch.cat([x, self.type_embedding(input['type'])], 1)\n    \n    x = self.logits(x)    \n\n    return x\n\n# ai challenger baeline \n# https://github.com/AIChallenger/AI_Challenger_2018/tree/master/Baselines/opinion_questions_machine_reading_comprehension2018_baseline\nclass MwAN(nn.Module):\n    def __init__(self):\n        super(MwAN, self).__init__()\n        \n        vocabulary.init()\n        vocab_size = vocabulary.get_vocab_size()        \n        embedding_size = FLAGS.emb_dim\n        encoder_size = FLAGS.rnn_hidden_size\n        self.dropout = nn.Dropout(p=(1 - FLAGS.keep_prob))\n\n        self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                emb_dim, \n                                                FLAGS.word_embedding_file, \n                                                FLAGS.finetune_word_embedding)\n\n        self.q_encoder = nn.GRU(input_size=embedding_size, hidden_size=encoder_size, batch_first=True,\n                                bidirectional=True)\n        self.p_encoder = nn.GRU(input_size=embedding_size, hidden_size=encoder_size, batch_first=True,\n                                bidirectional=True)\n        self.a_encoder = nn.GRU(input_size=embedding_size, hidden_size=int(embedding_size / 2), batch_first=True,\n                                bidirectional=True)\n        self.a_attention = nn.Linear(embedding_size, 1, bias=False)\n        # Concat Attention\n        self.Wc1 = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.Wc2 = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.vc = nn.Linear(encoder_size, 1, bias=False)\n        # Bilinear Attention\n        self.Wb = nn.Linear(2 * encoder_size, 2 * encoder_size, bias=False)\n        # Dot Attention :\n        self.Wd = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.vd = nn.Linear(encoder_size, 1, bias=False)\n        # Minus Attention :\n        self.Wm = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.vm = nn.Linear(encoder_size, 1, bias=False)\n\n        self.Ws = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.vs = nn.Linear(encoder_size, 1, bias=False)\n\n        self.gru_agg = nn.GRU(12 * encoder_size, encoder_size, batch_first=True, bidirectional=True)\n        \"\"\"\n        prediction layer\n        \"\"\"\n        self.Wq = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.vq = nn.Linear(encoder_size, 1, bias=False)\n        self.Wp1 = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.Wp2 = nn.Linear(2 * encoder_size, encoder_size, bias=False)\n        self.vp = nn.Linear(encoder_size, 1, bias=False)\n        self.prediction = nn.Linear(2 * encoder_size, embedding_size, bias=False)\n        self.logits = nn.Linear(3, 3)\n        self.logits2 = nn.Linear(3, 3)\n        self.initiation()\n\n    def initiation(self):\n        initrange = 0.1\n        nn.init.uniform_(self.embedding.weight, -initrange, initrange)\n        for module in self.modules():\n            if isinstance(module, nn.Linear):\n                nn.init.xavier_uniform_(module.weight, 0.1)\n\n    def forward(self, x, training=False):\n        query = x['query']\n        passage = x['passage']\n        candidate_neg = x['candidate_neg']\n        candidate_pos = x['candidate_pos']\n        candidate_na = x['candidate_na']\n\n        #print(passage.shape)\n        \n        q_embedding = self.embedding(query)\n        p_embedding = self.embedding(passage)\n        \n        neg_embeddings = self.embedding(candidate_neg)\n        pos_embeddings = self.embedding(candidate_pos)\n        na_embeddings = self.embedding(candidate_na)\n\n        neg_embedding, _ = self.a_encoder(neg_embeddings)\n        pos_embedding, _ = self.a_encoder(pos_embeddings)\n        na_embedding, _ = self.a_encoder(na_embeddings)\n\n        neg_score = F.softmax(self.a_attention(neg_embedding), 1)\n        neg_output = neg_score.transpose(2, 1).bmm(neg_embedding).squeeze()\n\n        pos_score = F.softmax(self.a_attention(pos_embedding), 1)\n        pos_output = pos_score.transpose(2, 1).bmm(pos_embedding).squeeze()\n\n        na_score = F.softmax(self.a_attention(na_embedding), 1)\n        na_output = na_score.transpose(2, 1).bmm(na_embedding).squeeze()\n\n        a_embedding = torch.stack([neg_output, pos_output, na_output], dim=1)\n\n        hq, _ = self.q_encoder(p_embedding)\n        hq=self.dropout(hq)\n        hp, _ = self.p_encoder(q_embedding)\n        p=self.dropout(hp)\n        _s1 = self.Wc1(hq).unsqueeze(1)\n        _s2 = self.Wc2(hp).unsqueeze(2)\n        # squeeze might cause batch size None TODO\n        sjt = self.vc(torch.tanh(_s1 + _s2)).squeeze()\n        ait = F.softmax(sjt, 2)\n        qtc = ait.bmm(hq)\n        _s1 = self.Wb(hq).transpose(2, 1)\n        sjt = hp.bmm(_s1)\n        ait = F.softmax(sjt, 2)\n        qtb = ait.bmm(hq)\n        _s1 = hq.unsqueeze(1)\n        _s2 = hp.unsqueeze(2)\n        sjt = self.vd(torch.tanh(self.Wd(_s1 * _s2))).squeeze()\n        ait = F.softmax(sjt, 2)\n        qtd = ait.bmm(hq)\n        sjt = self.vm(torch.tanh(self.Wm(_s1 - _s2))).squeeze()\n        ait = F.softmax(sjt, 2)\n        qtm = ait.bmm(hq)\n        _s1 = hp.unsqueeze(1)\n        _s2 = hp.unsqueeze(2)\n        sjt = self.vs(torch.tanh(self.Ws(_s1 * _s2))).squeeze()\n        ait = F.softmax(sjt, 2)\n        qts = ait.bmm(hp)\n        aggregation = torch.cat([hp, qts, qtc, qtd, qtb, qtm], 2)\n        aggregation_representation, _ = self.gru_agg(aggregation)\n        sj = self.vq(torch.tanh(self.Wq(hq))).transpose(2, 1)\n        rq = F.softmax(sj, 2).bmm(hq)\n        sj = F.softmax(self.vp(self.Wp1(aggregation_representation) + self.Wp2(rq)).transpose(2, 1), 2)\n        rp = sj.bmm(aggregation_representation)\n        encoder_output = self.dropout(F.leaky_relu(self.prediction(rp)))\n        logits = a_embedding.bmm(encoder_output.transpose(2, 1)).squeeze()\n        #logits = self.logits(logits)\n        return logits\n\ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  loss_fn = torch.nn.CrossEntropyLoss()\n\n  # Do not need one hot\n  #y = torch.zeros(y.size(0), NUM_CLASSES, dtype=torch.int64).scatter_(1, y.view(y.size(0), 1), 1)\n  loss = loss_fn(y_, y)\n  \n  return loss\n\n\n"
  },
  {
    "path": "projects/ai2018/reader/torch_algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 10:54:49.368829\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport torch\n\ndef criterion(model, x, y):\n  y_ = model(x)\n  loss_fn = torch.nn.CrossEntropyLoss()\n  # Do not need one hot\n  #y = torch.zeros(y.size(0), NUM_CLASSES, dtype=torch.int64).scatter_(1, y.view(y.size(0), 1), 1)\n  loss = loss_fn(y_, y)\n  \n  return loss\n"
  },
  {
    "path": "projects/ai2018/reader/torch_algos/m_reader.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   m_reader.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 11:15:19.088911\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\n\n\"\"\"Implementation of the Mnemonic Reader.\"\"\"\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport lele\nlayers = lele.layers\nfrom torch.autograd import Variable\n\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES\n\nimport numpy as np\n\nimport melt\nlogging = melt.logging\n\ndef get_mask(x):\n    if FLAGS.rnn_no_padding:\n        x_mask = torch.zeros_like(x, dtype=torch.uint8)\n    else:\n        x_mask = x.eq(0)\n    return x_mask\n\n#v3 change to use lele.layers.CudnnRnn and recurrent + share dropout\nclass MnemonicReaderV3(nn.Module):\n    RNN_TYPES = {'lstm': nn.LSTM, 'gru': nn.GRU, 'rnn': nn.RNN}\n    CELL_TYPES = {'lstm': nn.LSTMCell, 'gru': nn.GRUCell, 'rnn': nn.RNNCell}\n    def __init__(self, args=None):\n        super(MnemonicReaderV3, self).__init__()\n        if args is None:\n          args = FLAGS\n        # Store config\n        self.args = args\n    \n        vocabulary.init()\n        vocab_size = vocabulary.get_vocab_size() \n        \n        self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                    args.emb_dim, \n                                                    args.word_embedding_file, \n                                                    args.finetune_word_embedding)\n\n        doc_input_size = args.emb_dim \n        self.dropout_rate = 1 - args.keep_prob\n\n        self.num_layers = 1\n\n        # Encoder\n        self.encoding_rnn = layers.CudnnRnn(\n            input_size=doc_input_size,\n            hidden_size=args.rnn_hidden_size,\n            num_layers=1,\n            dropout_rate=1 - args.keep_prob,\n            dropout_output=False,\n            concat_layers=False,\n            rnn_type=self.RNN_TYPES['gru'],\n            padding=args.rnn_padding,\n        )\n\n        doc_hidden_size = 2 * args.rnn_hidden_size\n        \n        # Interactive aligning, self aligning and aggregating\n        self.interactive_aligners = nn.ModuleList()\n        self.interactive_SFUs = nn.ModuleList()\n        self.self_aligners = nn.ModuleList()\n        self.self_SFUs = nn.ModuleList()\n        self.aggregate_rnns = nn.ModuleList()\n        \n        for i in range(args.hop):\n            # interactive aligner\n            self.interactive_aligners.append(layers.SeqAttnMatch(doc_hidden_size, identity=True))\n            self.interactive_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n            # self aligner\n            self.self_aligners.append(layers.SelfAttnMatch(doc_hidden_size, identity=True, diag=False))\n            self.self_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n            # aggregating\n            self.aggregate_rnns.append(\n                layers.StackedBRNN(\n                    input_size=doc_hidden_size,\n                    hidden_size=args.rnn_hidden_size,\n                    num_layers=1,\n                    dropout_rate=1 - args.keep_prob,\n                    dropout_output=False,\n                    concat_layers=False,\n                    rnn_type=self.RNN_TYPES['gru'],\n                    padding=False,\n                )\n            )\n        \n        self.pooling = lele.layers.Pooling(\n                        FLAGS.encoder_output_method, \n                        input_size= 2 * args.rnn_hidden_size,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation))\n\n        pre_logits_dim = self.pooling.output_size\n        if FLAGS.use_type_emb:\n            num_types = 2\n            type_emb_dim = 10\n            self.type_embedding = nn.Embedding(num_types, type_emb_dim)\n            pre_logits_dim += type_emb_dim\n            \n        self.logits = nn.Linear(pre_logits_dim, NUM_CLASSES)\n        self.logits2 = nn.Linear(pre_logits_dim, NUM_CLASSES)\n\n\n    def forward(self, inputs):\n        x1 = inputs['passage']\n        x2 = inputs['query']\n\n        # Embed both document and question\n        x1_emb = self.embedding(x1)\n        x2_emb = self.embedding(x2)\n\n        # TODO understand pytorch mask, not set to no pad\n        x1_mask = get_mask(x1)\n        x2_mask = get_mask(x2)\n\n        num_units = self.encoding_rnn.num_units\n        batch_size = x1.size(0)\n        mask_fws = [F.dropout(torch.ones(1, batch_size, num_units[layer]).cuda(),p=self.dropout_rate, training=self.training) for layer in range(self.num_layers)]\n        mask_bws = [F.dropout(torch.ones(1, batch_size, num_units[layer]).cuda(),p=self.dropout_rate, training=self.training) for layer in range(self.num_layers)]\n\n        # Encode document with RNN\n        c = self.encoding_rnn(x1_emb, x1_mask, mask_fws, mask_bws)\n        \n        # Encode question with RNN\n        q = self.encoding_rnn(x2_emb, x2_mask, mask_fws, mask_bws)\n\n        # Align and aggregate\n        c_check = c\n        for i in range(self.args.hop):\n            q_tilde = self.interactive_aligners[i].forward(c_check, q, x2_mask)\n            c_bar = self.interactive_SFUs[i].forward(c_check, torch.cat([q_tilde, c_check * q_tilde, c_check - q_tilde], 2))\n            c_tilde = self.self_aligners[i].forward(c_bar, x1_mask)\n            c_hat = self.self_SFUs[i].forward(c_bar, torch.cat([c_tilde, c_bar * c_tilde, c_bar - c_tilde], 2))\n            c_check = self.aggregate_rnns[i].forward(c_hat, x1_mask)\n        \n        if self.args.pooling_no_padding:\n            #logging.info('----------pooling no padding!')\n            x1_mask = torch.zeros_like(x1, dtype=torch.uint8)\n\n        c = self.pooling(c_check, x1_mask)\n\n        if FLAGS.use_type_emb:\n            c = torch.cat([c, self.type_embedding(inputs['type'])], 1)\n    \n        x = self.logits(c)\n\n        if self.args.split_type:\n            x2 = self.logits2(c)\n            mask = torch.eq(inputs['type'], 0).float().unsqueeze(1)\n            x = x * mask + x2 * (1 - mask)\n\n        return x\n\n# MnemonicReader is actually V2, v2 support more pooling, v2 with split got 7368\n# TODO err why wrong.. slow at beggining FIXME can just fall back to V1\nclass MnemonicReader(nn.Module):\n    RNN_TYPES = {'lstm': nn.LSTM, 'gru': nn.GRU, 'rnn': nn.RNN}\n    CELL_TYPES = {'lstm': nn.LSTMCell, 'gru': nn.GRUCell, 'rnn': nn.RNNCell}\n    def __init__(self, args=None):\n        super(MnemonicReader, self).__init__()\n        if args is None:\n          args = FLAGS\n        # Store config\n        self.args = args\n    \n        vocabulary.init()\n        vocab_size = vocabulary.get_vocab_size() \n        \n        self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                    args.emb_dim, \n                                                    args.word_embedding_file, \n                                                    args.finetune_word_embedding)\n\n        doc_input_size = args.emb_dim \n\n        # Encoder\n        self.encoding_rnn = layers.StackedBRNN(\n            input_size=doc_input_size,\n            hidden_size=args.rnn_hidden_size,\n            num_layers=1,\n            dropout_rate=1 - args.keep_prob,\n            dropout_output=False,\n            concat_layers=False,\n            rnn_type=self.RNN_TYPES['gru'],\n            padding=args.rnn_padding,\n        )\n\n        doc_hidden_size = 2 * args.rnn_hidden_size\n        \n        # Interactive aligning, self aligning and aggregating\n        self.interactive_aligners = nn.ModuleList()\n        self.interactive_SFUs = nn.ModuleList()\n        self.self_aligners = nn.ModuleList()\n        self.self_SFUs = nn.ModuleList()\n        self.aggregate_rnns = nn.ModuleList()\n        \n        for i in range(args.hop):\n            # interactive aligner\n            self.interactive_aligners.append(layers.SeqAttnMatch(doc_hidden_size, identity=True))\n            self.interactive_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n            # self aligner\n            self.self_aligners.append(layers.SelfAttnMatch(doc_hidden_size, identity=True, diag=False))\n            self.self_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n            # aggregating\n            self.aggregate_rnns.append(\n                layers.StackedBRNN(\n                    input_size=doc_hidden_size,\n                    hidden_size=args.rnn_hidden_size,\n                    num_layers=1,\n                    dropout_rate=1 - args.keep_prob,\n                    dropout_output=False,\n                    concat_layers=False,\n                    rnn_type=self.RNN_TYPES['gru'],\n                    padding=False,\n                )\n            )\n        \n        self.pooling = lele.layers.Pooling(\n                        FLAGS.encoder_output_method, \n                        input_size= 2 * args.rnn_hidden_size,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation))\n\n        dim = self.pooling.output_size\n        if FLAGS.use_type_emb:\n            num_types = 2\n            type_emb_dim = 10\n            self.type_embedding = nn.Embedding(num_types, type_emb_dim)\n            dim += type_emb_dim\n\n        if FLAGS.use_answer_emb:\n            self.context_dense = nn.Linear(self.pooling.output_size, FLAGS.emb_dim)\n            self.answer_dense = nn.Linear(self.pooling.output_size, FLAGS.emb_dim)\n            dim += 3\n\n        self.logits = nn.Linear(dim, NUM_CLASSES)\n        self.logits2 = nn.Linear(dim, NUM_CLASSES)\n\n\n    def forward(self, inputs):\n        x1 = inputs['passage']\n        x2 = inputs['query']\n        batch_size = x1.size(0)\n\n        # Embed both document and question\n        x1_emb = self.embedding(x1)\n        x2_emb = self.embedding(x2)\n\n        # TODO understand pytorch mask, not set to no pad\n        x1_mask = get_mask(x1)\n        x2_mask = get_mask(x2)\n\n        #----- well here currently not reccurent dropout and not share dropout\n        # Encode document with RNN\n        c = self.encoding_rnn(x1_emb, x1_mask)\n        \n        # Encode question with RNN\n        q = self.encoding_rnn(x2_emb, x2_mask)\n\n        # Align and aggregate\n        c_check = c\n        for i in range(self.args.hop):\n            q_tilde = self.interactive_aligners[i].forward(c_check, q, x2_mask)\n            c_bar = self.interactive_SFUs[i].forward(c_check, torch.cat([q_tilde, c_check * q_tilde, c_check - q_tilde], 2))\n            c_tilde = self.self_aligners[i].forward(c_bar, x1_mask)\n            c_hat = self.self_SFUs[i].forward(c_bar, torch.cat([c_tilde, c_bar * c_tilde, c_bar - c_tilde], 2))\n            c_check = self.aggregate_rnns[i].forward(c_hat, x1_mask)\n        \n        if self.args.pooling_no_padding:\n            #logging.info('----------pooling no padding!')\n            x1_mask = torch.zeros_like(x1, dtype=torch.uint8)\n\n        c = self.pooling(c_check, x1_mask)\n\n        if FLAGS.use_type_emb:\n            c = torch.cat([c, self.type_embedding(inputs['type'])], 1)\n\n        if FLAGS.use_answer_emb:\n            x1 = x = c\n\n            neg = inputs['candidate_neg']\n            pos = inputs['candidate_pos']\n            na = inputs['candidate_na']\n\n            neg_mask = get_mask(neg)\n            pos_mask = get_mask(pos)\n            na_mask = get_mask(na)\n\n            neg_emb = self.embedding(neg)\n            pos_emb = self.embedding(pos)\n            na_emb = self.embedding(na)\n\n            neg = self.encoding_rnn(neg_emb, neg_mask)\n            pos = self.encoding_rnn(pos_emb, pos_mask)\n            na = self.encoding_rnn(na_emb, na_mask)\n\n            neg = self.pooling(neg, neg_mask)\n            pos = self.pooling(pos, pos_mask)\n            na = self.pooling(na, na_mask)\n\n            answer = torch.stack([neg, pos, na], 1)\n\n            # [batch_size, emb_dim]\n            x = self.context_dense(x)\n            # [batch_size, 3, emb_dim]\n            answer = self.answer_dense(answer)\n            x = answer.bmm(x.unsqueeze(1).transpose(2, 1))\n            x = x.view(batch_size, NUM_CLASSES)\n\n            x = torch.cat([x1, x], -1)\n            c = x\n    \n        x = self.logits(c)\n\n        if self.args.split_type:\n            x2 = self.logits2(c)\n            mask = torch.eq(inputs['type'], 0).float().unsqueeze(1)\n            x = x * mask + x2 * (1 - mask)\n\n        return x\n\n\n# this is V1 which already got good results 736, V2 will have more pooling method with mask support, also add support for recurrent dropout..\nclass MnemonicReaderV1(nn.Module):\n    RNN_TYPES = {'lstm': nn.LSTM, 'gru': nn.GRU, 'rnn': nn.RNN}\n    CELL_TYPES = {'lstm': nn.LSTMCell, 'gru': nn.GRUCell, 'rnn': nn.RNNCell}\n    def __init__(self, args=None):\n        super(MnemonicReaderV1, self).__init__()\n        if args is None:\n          args = FLAGS\n        # Store config\n        self.args = args\n    \n        vocabulary.init()\n        vocab_size = vocabulary.get_vocab_size() \n        \n        self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                    args.emb_dim, \n                                                    args.word_embedding_file, \n                                                    args.finetune_word_embedding)\n\n        doc_input_size = args.emb_dim \n\n        # Encoder\n        self.encoding_rnn = layers.StackedBRNN(\n            input_size=doc_input_size,\n            hidden_size=args.rnn_hidden_size,\n            num_layers=1,\n            dropout_rate=1 - args.keep_prob,\n            dropout_output=False,\n            concat_layers=False,\n            rnn_type=self.RNN_TYPES['gru'],\n            padding=False,\n        )\n\n        doc_hidden_size = 2 * args.rnn_hidden_size\n        \n        # Interactive aligning, self aligning and aggregating\n        self.interactive_aligners = nn.ModuleList()\n        self.interactive_SFUs = nn.ModuleList()\n        self.self_aligners = nn.ModuleList()\n        self.self_SFUs = nn.ModuleList()\n        self.aggregate_rnns = nn.ModuleList()\n        \n        for i in range(args.hop):\n            # interactive aligner\n            self.interactive_aligners.append(layers.SeqAttnMatch(doc_hidden_size, identity=True))\n            self.interactive_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n            # self aligner\n            self.self_aligners.append(layers.SelfAttnMatch(doc_hidden_size, identity=True, diag=False))\n            self.self_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n            # aggregating\n            self.aggregate_rnns.append(\n                layers.StackedBRNN(\n                    input_size=doc_hidden_size,\n                    hidden_size=args.rnn_hidden_size,\n                    num_layers=1,\n                    dropout_rate=1 - args.keep_prob,\n                    dropout_output=False,\n                    concat_layers=False,\n                    rnn_type=self.RNN_TYPES['gru'],\n                    padding=False,\n                )\n            )\n\n        self.logits = nn.Linear(2 * args.rnn_hidden_size, NUM_CLASSES)\n        self.logits2 = nn.Linear(2 * args.rnn_hidden_size, NUM_CLASSES)\n\n\n    def forward(self, inputs):\n        x1 = inputs['passage']\n        x2 = inputs['query']\n\n        # Embed both document and question\n        x1_emb = self.embedding(x1)\n        x2_emb = self.embedding(x2)\n\n        # x1_mask = x1 == 0\n        # x2_mask = x2 == 0\n        \n        # TODO understand pytorch mask, not set to no pad\n        x1_mask = torch.zeros_like(x1, dtype=torch.uint8)\n        x2_mask = torch.zeros_like(x2, dtype=torch.uint8)\n\n        # Encode document with RNN\n        c = self.encoding_rnn(x1_emb, x1_mask)\n        \n        # Encode question with RNN\n        q = self.encoding_rnn(x2_emb, x2_mask)\n\n        # Align and aggregate\n        c_check = c\n        for i in range(self.args.hop):\n            q_tilde = self.interactive_aligners[i].forward(c_check, q, x2_mask)\n            c_bar = self.interactive_SFUs[i].forward(c_check, torch.cat([q_tilde, c_check * q_tilde, c_check - q_tilde], 2))\n            c_tilde = self.self_aligners[i].forward(c_bar, x1_mask)\n            c_hat = self.self_SFUs[i].forward(c_bar, torch.cat([c_tilde, c_bar * c_tilde, c_bar - c_tilde], 2))\n            c_check = self.aggregate_rnns[i].forward(c_hat, x1_mask)\n\n        # TODO support other pooling layer like attention topk in torch or without mask ?\n        c = torch.max(c_check, 1)[0]\n        \n        x = self.logits(c)\n\n        if self.args.split_type:\n            x2 = self.logits2(c)\n            mask = torch.eq(inputs['type'], 0).float().unsqueeze(1)\n            x = x * mask + x2 * (1 - mask)\n\n        return x\n"
  },
  {
    "path": "projects/ai2018/reader/torch_algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 10:09:41.585876\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n  \n# from torch_algos.rnet import Rnet\n# from torch_algos.m_reader import *\n# from torch_algos.m_reader import MnemonicReader \n# MReader = MnemonicReader \n# # baseline\n# from torch_algos.baseline.baseline import *\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport lele\nlayers = lele.layers\nfrom torch.autograd import Variable\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\nimport wenzheng.utils.input_flags\n\nfrom algos.config import NUM_CLASSES\n\nimport numpy as np\n\nimport melt\nlogging = melt.logging\n\nclass ModelBase(nn.Module):\n  def __init__(self, embedding=None, lm_model=False):\n    super(ModelBase, self).__init__()\n    \n    self.num_units = FLAGS.rnn_hidden_size\n    self.dropout_rate = 1 - FLAGS.keep_prob\n\n    config = {\n      'word': {\n        'vocab': FLAGS.vocab,\n        'num_layers': FLAGS.num_layers,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'emb_dim': FLAGS.emb_dim,\n        'embedding_file': FLAGS.word_embedding_file,\n        'trainable': FLAGS.finetune_word_embedding,\n        'num_finetune': FLAGS.num_finetune_words,\n      },\n      'char': {\n        'limit': FLAGS.char_limit,\n        'use_char_emb': FLAGS.use_char_emb,\n        'emb_dim': FLAGS.char_emb_dim,\n        'trainable': FLAGS.finetune_char_embedding,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'output_method': FLAGS.char_output_method,\n        'combiner': FLAGS.char_combiner,\n        'padding': FLAGS.char_padding,\n        'num_finetune': FLAGS.num_finetune_chars,\n      },\n      'pos': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'ner': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'encoder': FLAGS.encoder_type,\n      'dropout_rate': 1 - FLAGS.keep_prob,\n      'recurrent_dropout': FLAGS.recurrent_dropout,\n      'cell': FLAGS.cell,\n      'rnn_padding': FLAGS.rnn_padding,\n      'rnn_no_padding': FLAGS.rnn_no_padding,\n      'concat_layers': FLAGS.concat_layers,\n    }\n\n    self.encode = wenzheng.pyt.TextEncoder(config, \n                                         embedding,\n                                         use_char=FLAGS.use_char,\n                                         use_char_emb=FLAGS.use_char_emb,\n                                         use_pos=FLAGS.use_pos,\n                                         use_ner=FLAGS.use_ner,\n                                         lm_model=lm_model)\n\n    self.lm_model = self.encode.lm_model\n    self.config = config\n\ndef get_mask(x):\n  if FLAGS.rnn_no_padding:\n    x_mask = torch.zeros_like(x, dtype=torch.uint8)\n  else:\n    x_mask = x.eq(0)\n  return x_mask\n\nclass MReader(ModelBase):\n  def __init__(self, embedding=None):\n    super(MReader, self).__init__(embedding)\n\n    Rnn = lele.layers.StackedBRNN \n    doc_hidden_size = self.encode.output_size        \n    \n    # Interactive aligning, self aligning and aggregating\n    self.interactive_aligners = nn.ModuleList()\n    self.interactive_SFUs = nn.ModuleList()\n    self.self_aligners = nn.ModuleList()\n    self.self_SFUs = nn.ModuleList()\n    self.aggregate_rnns = nn.ModuleList()\n    \n    for i in range(FLAGS.hop):\n      # interactive aligner\n      self.interactive_aligners.append(layers.SeqAttnMatch(doc_hidden_size, identity=True))\n      self.interactive_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n      # self aligner\n      self.self_aligners.append(layers.SelfAttnMatch(doc_hidden_size, identity=True, diag=False))\n      self.self_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n      # aggregating\n      self.aggregate_rnns.append(\n          Rnn(\n              input_size=doc_hidden_size,\n              hidden_size=self.num_units,\n              num_layers=1,\n              dropout_rate=self.dropout_rate,\n              dropout_output=False,\n              concat_layers=False,\n              rnn_type=FLAGS.cell,\n              padding=FLAGS.rnn_padding,\n          )\n      )\n\n    self.pooling = lele.layers.Pooling(\n                    FLAGS.encoder_output_method, \n                    input_size=doc_hidden_size,\n                    top_k=FLAGS.top_k, \n                    att_activation=getattr(F, FLAGS.att_activation))\n\n    dim = self.pooling.output_size\n    if FLAGS.use_type_emb:\n      num_types = 2\n      type_emb_dim = 10\n      self.type_embedding = nn.Embedding(num_types, type_emb_dim)\n      dim += type_emb_dim\n\n    if FLAGS.use_answer_emb:\n      self.context_dense = nn.Linear(self.pooling.output_size, FLAGS.emb_dim)\n      self.answer_dense = nn.Linear(self.pooling.output_size, FLAGS.emb_dim)\n      dim += 3\n\n      self.logits = nn.Linear(dim, NUM_CLASSES)\n      self.logits2 = nn.Linear(dim, NUM_CLASSES)\n\n\n  def forward(self, inputs):\n    x1 = inputs['passage']\n    x2 = inputs['query']\n    batch_size = x1.size(0)\n\n    # TODO understand pytorch mask, not set to no pad\n    x1_mask = get_mask(x1)\n    x2_mask = get_mask(x2)\n\n    #----- well here currently not reccurent dropout and not share dropout\n    # Encode document with RNN\n    input = {\n              'content': inputs['passage'], \n              'char': inputs['passage_char'],\n              'pos': inputs['passage_pos']\n            }\n    c = self.encode(input, x1_mask)\n    \n    input = {\n              'content': inputs['query'], \n              'char': inputs['query_char'],\n              'pos': inputs['query_pos']\n            }\n    # Encode question with RNN\n    q = self.encode(input, x2_mask)\n\n    # Align and aggregate\n    c_check = c\n    for i in range(FLAGS.hop):\n        q_tilde = self.interactive_aligners[i].forward(c_check, q, x2_mask)\n        c_bar = self.interactive_SFUs[i].forward(c_check, torch.cat([q_tilde, c_check * q_tilde, c_check - q_tilde], 2))\n        c_tilde = self.self_aligners[i].forward(c_bar, x1_mask)\n        c_hat = self.self_SFUs[i].forward(c_bar, torch.cat([c_tilde, c_bar * c_tilde, c_bar - c_tilde], 2))\n        c_check = self.aggregate_rnns[i].forward(c_hat, x1_mask)\n    \n    c = self.pooling(c_check, x1_mask)\n\n    if FLAGS.use_type_emb:\n      c = torch.cat([c, self.type_embedding(inputs['type'])], 1)\n\n    if FLAGS.use_answer_emb:\n      x1 = x = c\n\n      neg = inputs['candidate_neg']\n      pos = inputs['candidate_pos']\n      na = inputs['candidate_na']\n\n      neg_mask = get_mask(neg)\n      pos_mask = get_mask(pos)\n      na_mask = get_mask(na)\n\n      input = {\n              'content': inputs['candidate_neg'], \n              'char': inputs['candidate_neg_char'],\n              'pos': inputs['candidate_neg_pos']\n              }        \n      neg = self.encode(input, neg_mask)\n      input = {\n              'content': inputs['candidate_pos'], \n              'char': inputs['candidate_pos_char'],\n              'pos': inputs['candidate_pos_pos']\n              }    \n      pos = self.encode(input, pos_mask)\n      input = {\n              'content': inputs['candidate_na'], \n              'char': inputs['candidate_na_char'],\n              'pos': inputs['candidate_na_pos']\n              }    \n      na = self.encode(input, na_mask)\n\n      neg = self.pooling(neg, neg_mask)\n      pos = self.pooling(pos, pos_mask)\n      na = self.pooling(na, na_mask)\n\n      answer = torch.stack([neg, pos, na], 1)\n\n      # [batch_size, emb_dim]\n      x = self.context_dense(x)\n      # [batch_size, 3, emb_dim]\n      answer = self.answer_dense(answer)\n      x = answer.bmm(x.unsqueeze(1).transpose(2, 1))\n      x = x.view(batch_size, NUM_CLASSES)\n\n      x = torch.cat([x1, x], -1)\n      c = x\n\n    x = self.logits(c)\n\n    if FLAGS.split_type:\n      x2 = self.logits2(c)\n      mask = torch.eq(inputs['type'], 0).float().unsqueeze(1)\n      x = x * mask + x2 * (1 - mask)\n\n    return x\n\n\n"
  },
  {
    "path": "projects/ai2018/reader/torch_algos/rnet.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   rnet.py\n#        \\author   chenghuige  \n#          \\date   2018-09-28 10:24:33.014425\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom torch.autograd import Variable\n\nimport lele\nlayers = lele.layers\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES\n\nimport numpy as np\n\nclass Rnet(nn.Module):\n  RNN_TYPES = {'lstm': nn.LSTM, 'gru': nn.GRU, 'rnn': nn.RNN}\n  CELL_TYPES = {'lstm': nn.LSTMCell, 'gru': nn.GRUCell, 'rnn': nn.RNNCell}\n  def __init__(self, args=None):\n    super(Rnet, self).__init__()\n    # Store config\n    if args is None:\n      args = FLAGS\n    self.args = args\n\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n\n    # Word embeddings (+1 for padding)\n    self.embedding = nn.Embedding(vocab_size,\n                                  args.emb_dim,\n                                  padding_idx=0)\n\n    if FLAGS.word_embedding_file:\n        self.embedding.weight.data.copy_(torch.from_numpy(np.load(FLAGS.word_embedding_file)))\n        if not FLAGS.finetune_word_embedding:\n            self.embedding.weight.requires_grad = False\n\n    doc_input_size = args.emb_dim \n\n    # Encoder\n    self.encode_rnn = layers.StackedBRNN(\n        input_size=doc_input_size,\n        hidden_size=args.rnn_hidden_size,\n        num_layers=args.num_layers,\n        dropout_rate=1 - args.keep_prob,\n        dropout_output=False,\n        concat_layers=True,\n        rnn_type=self.RNN_TYPES['gru'],\n        padding=False,\n    )\n\n    # Output sizes of rnn encoder\n    doc_hidden_size = 2 * args.rnn_hidden_size\n    question_hidden_size = 2 * args.rnn_hidden_size\n    \n    #if args.concat_rnn_layers:\n    doc_hidden_size *= args.num_layers\n    question_hidden_size *= args.num_layers\n\n    # Gated-attention-based RNN of the whole question\n    self.question_attn = layers.SeqAttnMatch(question_hidden_size, identity=False)\n    self.question_attn_gate = layers.Gate(doc_hidden_size + question_hidden_size)\n    self.question_attn_rnn = layers.StackedBRNN(\n        input_size=doc_hidden_size + question_hidden_size,\n        hidden_size=args.rnn_hidden_size,\n        num_layers=1,\n        dropout_rate=1 - args.keep_prob,\n        dropout_output=False,\n        concat_layers=False,\n        rnn_type=self.RNN_TYPES['gru'],\n        padding=False,\n    )\n\n    question_attn_hidden_size = 2 * args.rnn_hidden_size\n\n    # Self-matching-attention-baed RNN of the whole doc\n    self.doc_self_attn = layers.SelfAttnMatch(question_attn_hidden_size, identity=False)\n    self.doc_self_attn_gate = layers.Gate(question_attn_hidden_size + question_attn_hidden_size)\n    self.doc_self_attn_rnn = layers.StackedBRNN(\n        input_size=question_attn_hidden_size + question_attn_hidden_size,\n        hidden_size=args.rnn_hidden_size,\n        num_layers=1,\n        dropout_rate=1 - args.keep_prob,\n        dropout_output=False,\n        concat_layers=False,\n        rnn_type=self.RNN_TYPES['gru'],\n        padding=False,\n    )\n\n    doc_self_attn_hidden_size = 2 * args.rnn_hidden_size\n\n    self.doc_self_attn_rnn2 = layers.StackedBRNN(\n        input_size=doc_self_attn_hidden_size,\n        hidden_size=args.rnn_hidden_size,\n        num_layers=1,\n        dropout_rate=1 - args.keep_prob,\n        dropout_output=False,\n        concat_layers=False,\n        rnn_type=self.RNN_TYPES['gru'],\n        padding=False,\n    )\n\n    self.logits = nn.Linear(2 * args.rnn_hidden_size, NUM_CLASSES, bias=True)\n\n\n  def forward(self, inputs):\n    \"\"\"Inputs:\n    x1 = document word indices             [batch * len_d]\n    x1_c = document char indices           [batch * len_d]\n    x1_f = document word features indices  [batch * len_d * nfeat]\n    x1_mask = document padding mask        [batch * len_d]\n    x2 = question word indices             [batch * len_q]\n    x2_c = document char indices           [batch * len_d]\n    x1_f = document word features indices  [batch * len_d * nfeat]\n    x2_mask = question padding mask        [batch * len_q]\n    \"\"\"\n    x1 = inputs['passage']\n    x2 = inputs['query']\n\n    # x1_mask = x1 == 0\n    # x2_mask = x2 == 0\n\n    # TODO understand pytorch mask, not set to no pad\n    x1_mask = torch.zeros_like(x1, dtype=torch.uint8)\n    x2_mask = torch.zeros_like(x2, dtype=torch.uint8)\n\n    # Embed both document and question\n    x1_emb = self.embedding(x1)\n    x2_emb = self.embedding(x2)\n\n    # # Dropout on embeddings\n    # if self.args.dropout_emb > 0:\n    #   x1_emb = F.dropout(x1_emb, p=self.args.dropout_emb, training=self.training)\n    #   x2_emb = F.dropout(x2_emb, p=self.args.dropout_emb, training=self.training)\n\n    # Encode document with RNN\n    c = self.encode_rnn(x1_emb, x1_mask)\n\n    # Encode question with RNN\n    q = self.encode_rnn(x2_emb, x2_mask)\n\n    # Match questions to docs\n    question_attn_hiddens = self.question_attn(c, q, x2_mask)\n    rnn_input = self.question_attn_gate(torch.cat([c, question_attn_hiddens], 2))\n    c = self.question_attn_rnn(rnn_input, x1_mask)\n\n    # Match documents to themselves\n    doc_self_attn_hiddens = self.doc_self_attn(c, x1_mask)\n    rnn_input = self.doc_self_attn_gate(torch.cat([c, doc_self_attn_hiddens], 2))\n    c = self.doc_self_attn_rnn(rnn_input, x1_mask)\n    c = self.doc_self_attn_rnn2(c, x1_mask)\n\n    c = torch.max(c, 1)[0]\n    x = self.logits(c)\n\n    return x \n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.answeremb-split.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.anseremb.split.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.att.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.att.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.last.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.last.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.maxatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.maxatt.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.maxmean.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.maxmean.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max,mean \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.mean.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.mean.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=mean \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.topk.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.topk.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.topkatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.topkatt.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train/v1/torch.word.mreader.nopad.answeremb-split.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL\nelse\n  CELL=gru\n  echo 'use default CELL gru'\nfi \n\n\ndir=$base/temp/ai2018/reader/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v1/$fold/$SRC/torch.word.mreader.nopad.anseremb.split.topkattlast.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --use_type=0 \\\n        --rcontent=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key rcontent \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, io\n# for p40...\nsys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')\nsys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\n#from algos.model import *\nfrom algos.loss import criterion\nimport algos.model as base\nfrom dataset import Dataset\nimport evaluate as ev\n\ndef main(_):\n  FLAGS.num_folds = 10\n  melt.apps.init()\n\n  Model = getattr(base, FLAGS.model)\n  logging.info('Using tensorflow Model:', Model)\n\n  model = Model()\n  logging.info(model)\n  \n  train = melt.apps.get_train()\n\n  ev.init()\n  \n  train(Dataset,\n        model,  \n        criterion,\n        eval_fn=ev.calc_acc, \n        valid_write_fn=ev.valid_write,\n        infer_write_fn=ev.infer_write,\n        valid_names=ev.valid_names,\n        valid_suffix='.valid.csv',\n        infer_debug_names=ev.valid_names,\n        infer_suffix='.infer.txt',\n        write_streaming=True)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/torch-decay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/torch.decay\nnum_epochs=100\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 200,350,800,1600,3200 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4,2,1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.5 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/torch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/torch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=Model \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/model2.1layer.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/model2.1layer.keep07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/qcatt.1layer.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/qcatt.1layer.keep07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=QCAttention \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/qcatt.sfu.1layer.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/qcatt.sfu.1layer.keep07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=QCAttention \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.1layer.keep05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.1layer.keep05/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.5 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.1layer.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.1layer.keep07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.1layer.keep10.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.1layer.keep10/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.emb.finetne/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.emb/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.keep07/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.5 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rcontent.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rcontent.split/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.5 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.1layer.keep07.emb.finetune.att.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.1layer.keep07.emb.finetune.att.2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=gate \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.1layer.keep07.emb.finetune.att.finetune.type1only.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.1layer.keep07.emb.finetune.att.finetune.type1only/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_only=1 \\\n        --model=Rnet \\\n        --att_combiner=gate \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.1layer.keep07.emb.finetune.att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.1layer.keep07.emb.finetune.att/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=gate \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.1layer.keep07.emb.finetune.att.type1only.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.1layer.keep07.emb.finetune.att.type1only/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_only=1 \\\n        --model=Rnet \\\n        --att_combiner=gate \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.1layer.keep07.emb.finetune.att.type1w2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.1layer.keep07.emb.finetune.att.type1w2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_weight=2. \\\n        --model=Rnet \\\n        --att_combiner=gate \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.1layer.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.1layer.keep07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.att.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.att.2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.att/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.att.type1w2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.att.type1w2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_weight=2. \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.att.unkvocab.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.att.unkvocab.finetune/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --unk_vocab_size=100 \\\n        --finetune_unk_vocab=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.att.unkvocab.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.att.unkvocab/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --unk_vocab_size=100 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.f07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.f07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.f09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.f09/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.later.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.later/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.maxatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.maxatt/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.nodecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.nodecay/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.se.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.se/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --add_start_end=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.topk.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.topk/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.unkvocab.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.unkvocab.finetune/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --unk_vocab_size=100 \\\n        --finetune_unk_vocab=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.finetune.unkvocab.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.finetune.unkvocab/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --unk_vocab_size=100 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.nodecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb.nodecay/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.emb/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.1layer.keep07.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.1layer.keep07.split/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --split_type=1 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v1/rnet.sfu.2layer.keep07.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.sfu.2layer.keep07.emb.finetune/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=1 \\\n        --decay_start_epoch=2 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_raterning_rate=0 \\\n        --learning_rate_decay_factor=0.7 \\\n        --num_epochs_per_decay=1 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay3/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay4/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type0_only=0 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay5/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay6.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay6/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.8 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.decay7.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.decay7/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.keep08.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.keep08/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.8 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.keep09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.keep09/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.9 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.labelemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.labelemb/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        -decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.max/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.split.finetune.type1only.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.split.finetune.type1only/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_only=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.split/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v2/rnet.type0only.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/rnet.type0only/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type0_only=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/bidaf.split.lr0002.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/bidaf.split.lr0002/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_qc_att=0 \\\n        --use_bidaf_att=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/bidaf.split.lrsmall.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/bidaf.split.lrsmall/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_qc_att=0 \\\n        --use_bidaf_att=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0005 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/bidaf.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/bidaf.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_qc_att=0 \\\n        --use_bidaf_att=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/bow/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\n# att and combiner remove dropout\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.ae.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.ae/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_att_encode=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.epoch3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.epoch3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.lr0002.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.lr0002/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.max.nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.max.nomask/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.max/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.noshare.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.noshare.max/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type=0 \\\n        --share_dropout=0 \\\n        --encoder_output_method=max \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.v1.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.v1/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MnemonicReaderV1 \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.v2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MnemonicReaderV2 \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/mreader.v2.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/mreader.v2.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=MnemonicReaderV2 \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rcontent.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rcontent.3/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rcontent.4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rcontent.4/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rcontent.5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rcontent.5/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rcontent.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rcontent/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.2.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.2.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0025 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.2.dec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.2.dec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0005 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.2layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n        --buffer_size=250000 \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.answer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.answer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.answer.split.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.answer.split.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_answer_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.answer.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.answer.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_answer_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.answer.split2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.answer.split2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_answer_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.answer2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.answer2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.answer3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.answer3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.att2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.att2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 64 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.gate.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.gate/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=gate \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.hidden200/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.keep075.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.keep075/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.75 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.labelatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.labelatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.labelatt10.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.labelatt10/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --label_emb_height=10 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.lr00005.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.lr00005/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0005 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.max/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.nobucket.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.nobucket/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.p2.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.p2.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 64 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=2 \\\n        --decay_factor=0.5 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.p2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.p2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=2 \\\n        --decay_factor=0.6 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.relu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.relu/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.batch64\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.cq.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.cq.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --combine_query=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.cq.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.cq/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --combine_query=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.p2.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.p2.batch64\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=2 \\\n        --decay_factor=0.5 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.p2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.p2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=2 \\\n        --decay_factor=0.6 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.reverse.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.reverse/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --cq_reverse=1 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.test.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.test/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.type1c10.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.type1c10.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_count=10 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.type1c2.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.type1c2.batch64/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_count=2 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.type1c2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.type1c2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_count=2 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.type1c5.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.type1c5.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_count=5 \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.type1w2.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.type1w2.batch64/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_weight=2. \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 64 \\\n        --buckets 400 \\\n        --batch_sizes 64,32 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.split.type1w2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.split.type1w2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --type1_weight=2. \\\n        --split_type=1 \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/rnet.tanh.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/rnet.tanh/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --att_activation=tanh \\\n        --model=Rnet \\\n        --att_combiner=sfu \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-keep07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.keep07\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=Model \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.lr00005.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb.lr00005\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0005 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.lr0001.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb.lr0001\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.lr0001.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb.lr0001.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --split_type=1 \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.lr0003.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb.lr0003\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.003 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.lr0004.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb.lr0004\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.004 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.emb.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.emb.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --split_type=1 \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.lr0001.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.lr0001\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReader \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mreader.v1.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mreader.v1.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=MnemonicReaderV1 \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mwan.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mwan.emb.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=MwAN \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mwan.emb.batch64.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mwan.emb.batch64\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=MwAN \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 64,32 \\\n        --batch_size 64 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mwan.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mwan.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=MwAN \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mwan.lr0001.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mwan.lr0001\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=MwAN \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-mwan.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.mwan\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=MwAN \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-rnet.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.rnet.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=Rnet \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-rnet.lr0001.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.rnet.lr0001.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=Rnet \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-rnet.lr0001.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.rnet.lr0001\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=Rnet \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch-rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch.rnet\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=Rnet \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v3/torch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v3/torch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\n        #--model=MwAN \\\n        #--buckets 400 \\\n        #--length_key passage \\\n        #--batch_sizes 32,16 \\\n        #--buckets 200,350,800,1600,3200 \\\n        #--length_key rcontent \\\n        #--batch_sizes 32,16,8,4,2,1 \\\n        #--batch_size 32 \\\npython $exe \\\n        --model=Model \\\n        --use_type=1 \\\n        --rcontent=1 \\\n        --vocab=$dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --length_key rcontent \\\n        --buckets 400 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --interval_steps 100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/bow-emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/bow.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/bow-nomask-emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/bow.nomask.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/bow-nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/bow.nomask/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.att/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-latt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.latt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-nomask.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.nomask.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.nomask/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-simpledrop-bw.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\n# not using recurrent_dropout,bw using different dropout then fw\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.simpledrop.bw/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --bw_dropout=1 \\\n        --recurrent_dropout=0 \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-simpledrop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\n# not using recurrent_dropout\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.simpledrop/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --recurrent_dropout=0 \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-top2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.top2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-top2mean.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.top2mean/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk_mean \\\n        --top_k=2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-top2wmean.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.top2wmean/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk_weighted_mean \\\n        --top_k=2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-topkatt2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.topkatt2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk_att \\\n        --top_k=2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb-topkatt3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb.topkatt3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk_att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru-emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/gru/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader-v4-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.v4.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReaderV4 \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader-v4-split-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.v4.split.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --split_type=1 \\\n        --model=MnemonicReaderV4  \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader-v4-split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.v4.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=0 \\\n        --split_type=1 \\\n        --model=MnemonicReaderV4  \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader-v4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.v4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReaderV4  \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.max.nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.max.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.max/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.max.split.nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.max.split.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --split_type=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.max.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.max.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400 \\\n        --batch_sizes 32,16 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.split.nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.split.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --split_type=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/mreader.split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/mreader.split/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=MReader \\\n        --att_combiner=sfu \\\n        --hop=2 \\\n        --rcontent=1 \\\n        --use_type=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 400,1000,2000 \\\n        --batch_sizes 32,16,8,4 \\\n        --length_key passage \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch=2 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-bow-emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.bow.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Bow \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.bow\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Bow \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att-nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att.nomask\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att-pad-typeemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att.pad.typeemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att-pad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att.pad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_padding=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att-type.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att.type\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att-typeemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att.typeemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att-typernn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att.typernn\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_rnn=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.att\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-keep08.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.keep08\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.8 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-latt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.latt\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-mask.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.mask.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-mask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.mask\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-nodrop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.nodrop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=1. \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-nomask.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.nomask.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.nomask\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-topk2-nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.topk2.nomask\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-topk2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.topk2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-topk3-nomask.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.topk3.nomask\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=0 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb-topk3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb.topk3\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mask_pooling=1 \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru-emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.gru\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Gru \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-1hop-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.1hop.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hop=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-1hop-split-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.1hop.split.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hop=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-nopad-split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.nopad.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-pad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.pad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=1 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-typeemb-nopad-split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.typeemb.nopad.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-typeemb-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.typeemb.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-typeemb-pad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.typeemb.pad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=1 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att-typeemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att.typeemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.att\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-nopad-split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.nopad.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-nopad-typeemb-split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.nopad.typeemb.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-nopad-typeemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.nopad.typeemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-pad-typeemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.pad.typeemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=1 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-pad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.pad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=1 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb-typeemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb.typeemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.emb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-hop3-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.hop3.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hop=3 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-poolnopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.poolnopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=0 \\\n        --rnn_padding=1 \\\n        --rnn_no_padding=0 \\\n        --pooling_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-split-hop3-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.split.hop3.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hop=3 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-split-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.split.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-split-poolnopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.split.poolnopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=1 \\\n        --rnn_no_padding=0 \\\n        --pooling_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-typeemb-hop3-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.typeemb.hop3.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hop=3 \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-typeemb-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.typeemb.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_type_emb=1 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3-decay09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3.decay09\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3-poolnopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3.poolnopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --pooling_no_padding=1 \\\n        --rnn_no_padding=0 \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3-split-decay09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3.split.decay09\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3-split-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3.split.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --split_type=1 \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3-split.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3.split\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v4/torch-mreader-v3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v4/torch.mreader.v3\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=MnemonicReaderV3 \\\n        --rcontent=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v5/torch-mreader-split-answeremb-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v5/torch.mreader.answeremb.split.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_answer_emb=1 \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v5/torch-mreader-split-nopad-ftwiki.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord.5k.wiki.fasttext/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v5/torch.mreader.split.nopad.ftwiki\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReader \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/reader/train.v1/v5/torch-mreader-split-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/reader/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/reader/model/v5/torch.mreader.split.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --split_type=1 \\\n        --use_type_emb=0 \\\n        --rnn_padding=0 \\\n        --rnn_no_padding=1 \\\n        --model=MnemonicReaderV1 \\\n        --rcontent=1 \\\n        --use_type=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --length_key rcontent \\\n        --buckets 400,1000,2000 \\\n        --length_key rcontent \\\n        --batch_sizes 32,16,8,4 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=acc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/README.md",
    "content": "# ai challenger 2018 细粒度用户评论情感分类第一名（后厂村静静团队）解决方案\n1. 整体部分参考答辩ppt https://mp.weixin.qq.com/s/W0PhbE8149nD3Venmy33tw  \n2. 这次比赛客观成绩好的主要原因我觉得是因为我从比赛一开始就采用了1kw的外部点评数据，这使得我可以采用大词表策略14.4w，19.8w（频次》20） \n   但是比赛大部分时间成绩不如do somethig团队，后期取得明显领先优势应该主要是简化版的elmo基于大规模数据的预训练再配合self match attention（self match attention参考rnet是其他选手大部分没有使用的，其实在kaggle toxic我也尝试了但是效果不明显这次比赛它和elmo配合效果非常好）带来单模型效果显著提升。 \n  fast elmo部分可以参考 torch-lm-train.py tf版本对应 lm-train.py 但是基本相同的实现和完全相同的训练数据 tf版本可能训练过程中经常出现NAN，待修复 pytorch版本训练稳定。注意目前的设计只能单层elmo如果多层需要再修改代码因为目前是stack rnn第二层就等于loss作弊了(不过单层elmo预训练在这个数据效果足够好)  \n  我的机器资源相对充分这使得我可以并行跑比如多种分词这种简单但是带来较大模型差异性的模型增强集成效果，这样我可以使用较少单模型集成取得更好效果。   \n3. 其他答辩团队的方案更加新颖细致一些，受益匪浅。do something和nevermore团队都采用了attention pooling层独占不共享的策略，而我采用的pooling层完全共享(topk concat attention)  \n   pooling层的独占策略使得模型更加具有可解释性。 另外do somthing团队使用了sru也值得尝试。  \n   new start团队采用了seq2seq的模型 并且使用了平衡准召的loss nevermore团队对稀有类别过采样处理 do somthing团队做了标注纠正 并且引入了基于词汇和类别共现的特征表示。  \n4. 关于pooling层独占的实验效果  \n   赛后在当前最佳单模型基础上实验了pooling层独占效果,f1直接指标提高比较明显，有一个exclusive_fc取得了最优loss，考虑模型随机性提升不是特别明显，当然更多调参可能还能提升一下效果，更主要的好处还是带来更好的模型可解释性。    \n   sh ./train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.sh              adjusted_f1 0.7193  f1 0.7144 loss 0.3215  \n   sh ./train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt.sh      adjusted_f1 0.7207  f1 0.7145 loss 0.3236  \n\n# 一些注意事项\n1. python 3.6 tf 1.10.1  pytorch 1.0  即使只使用基于pytorch的模型也依赖tensorflow因为采用了tf dataset读取tfrecord(对应pytorch的时候使用的是tf的eager模式读取数据)  \n2. 训练脚本只需要参考 wenzheng/projects/ai2018/sentiment/train/v14 可以参考train目录下的readme 我这里提供了一个不利用estimator的bert训练脚本 但是当前bert容易过拟合效果不如rnn  \n   单模型bert最优 0.71(train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.sh)   \n   rnn 0.72(train/v14/torch.self_attention.unkaug.elmo.finetune_6k.sh) 比赛中的最佳单模型 建议只参考基于pytorch rnn的这个最佳单模型,  \n   或者赛后实验的pooling层独占(train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt.sh)  \n3. 需要设置python path export PYTHONPATH=$root/utils:$root 这样可以找到wenzheng/utils/gezi等等lib \n4. 训练的时候 CUDA_VISIBLE_DEVICES=0 sh ./train/v14/a.sh 或者 CUDA_VISIBLE_DEVICES=0,1 sh ./train/v14/a.sh(使用两个gpu tower loss) 类似这样 注意pytorch支持多gpu（包括使用buckets length），tensorflow支持多gpu（但是如果采用buckets length，graph模式 不支持多gpu）  \n   tensorflow理论上支持eager模式 tf的代码我都是基本按照tf.keras接口写的支持eager但是目前tf eager还不完善。  \n5. 当前最好的单模型torch版本（torch比tensorflow占用显存更大）如果使用1080ti 11g显存 需要2个gpu跑，p40可以单卡跑。 当然你也可以调小batch size 或者调整 buckets以及batch sizes   \n6. 模型集成只需要参考 ensemble/ensemble-cv.py 我这里利用了valid数据做交叉验证，没有使用全部数据多fold的方式（那样模型训练代价比较高）   \n\n# 生成好的tfrecords\n为了方便训练这里提供了预先处理好的tfrecords可以在百度云盘下载  \n链接: https://pan.baidu.com/s/1Ehixs1gbS4nv4a1ivI6TwA 提取码: rzd1   \n包括最佳单模型对应tfrecords word.jieba.ft 对应elmo模型 model/lm/.../latest.pyt  \n\n# generate tfrecord  \ngo to prepare, sh run.sh gen valid/test/train   \n# dump infos.pkl  \npython ./read-records.py --type dump   \n\nor just sh prepare.sh to do above, be sure you use correct tfrecord folder (using ln -s)  and vectors.txt if use word pretrain emb  \n\nif you want just to verify records, python ./read-records.py --type=any.. other then dump  \n# training \npython ./train.py  # train using graph  \npython ./torch-train.py # train using eager tf + pytorch  \nEAGER=1 python ./train.py # train using eager mode  (using tfrecord)\nMODE=valid,test sh ./train/*.sh  just valid and test using eager mode(using tfrecord)  \nSHOW=1 sh ./train/*.sh just show model arch in eager mode   \n\npython ./infer.py or INFER=1 sh ./train/*.sh will do infer(without tfrecord) using eager mode    \nINFER=1 c0 sh ./train/gru.sh ~/temp/ai2018/sentiment/model/gru/ \nINFER=1 c0 sh ./train/gru.sh ~/temp/ai2018/sentiment/model/gru/ckpt/ckpt-10 \n"
  },
  {
    "path": "projects/ai2018/sentiment/__init__.py",
    "content": "import projects.ai2018.sentiment.prepare\n"
  },
  {
    "path": "projects/ai2018/sentiment/algos/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/sentiment/algos/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-02-16 19:12:02.066189\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nASPECTS = ['location', 'service', 'price', 'environment', 'dish', 'others']\n\nNUM_ATTRIBUTES = len(ATTRIBUTES)\nATTRIBUTES_MAP = dict(zip(ATTRIBUTES, range(NUM_ATTRIBUTES)))\n\n# -2,-1,0,1 -> 0,1,2,3\nNUM_CLASSES = 4\n\nflags.DEFINE_bool('share_pooling', True, 'wether to share pooling params for each attribute')\nflags.DEFINE_bool('share_fc', True, 'wether to share fc layer notice if share pooling actually must not share fc also no matter what you set share_fc')\n\nflags.DEFINE_integer('bert_num_heads', 12, '')\nflags.DEFINE_integer('bert_num_layers', 12, '')\nflags.DEFINE_float('bert_dropout', 0.1, '')\nflags.DEFINE_float('bert_lr_ratio', 0.1, '')\nflags.DEFINE_bool('use_soft_label', False, '')\nflags.DEFINE_bool('use_len', False, 'wether add length as a feature')\n\nflags.DEFINE_string('pretrain_encoder', 'bilm', 'bilm or bert')\nflags.DEFINE_bool('transformer_add_rnn', False, '')\n\nflags.DEFINE_bool('unk_aug', False, '')\nflags.DEFINE_integer('unk_id', 1, 'bert unk id is 100')\nflags.DEFINE_integer('unk_aug_start_epoch', 2, '')\nflags.DEFINE_integer('unk_aug_start_step', 7000, '')\nflags.DEFINE_float('unk_aug_max_ratio', 0.02, '')\n\nflags.DEFINE_bool('use_class_weights', False, '')\nflags.DEFINE_bool('att_dropout', True, 'for tf rnet by default att with dropout')\n\nflags.DEFINE_integer('char_min_count', None, '')\nflags.DEFINE_integer('tag_min_count', None, '')\n\n#flags.DEFINE_float('label_smoothing', 0, '')\n\nflags.DEFINE_bool('cut_front', False, '')\nflags.DEFINE_integer('content_limit', 0, '')\nflags.DEFINE_float('other_corpus_factor', 1., '')\n\nflags.DEFINE_string('model', None, '')\n\nflags.DEFINE_string('loss', 'cross', '')\n\nflags.DEFINE_float('other_loss_factor', 1., '')\nflags.DEFINE_float('na_loss_ratio', 0., '')\nflags.DEFINE_bool('na_loss_ratio_add', True, '')\nflags.DEFINE_float('earth_mover_loss_ratio', 0, '')\n\nflags.DEFINE_string('aspect', 'all', 'location, service, price, enviroment, dis, others')\nflags.DEFINE_integer('attr_index', None, '')\n#flags.DEFINE_string('weights', None, '') \nflags.DEFINE_float('init_weight', 1., '')\n\nflags.DEFINE_float('mlp_ratio', 0., '')\n\nflags.DEFINE_bool('binary_class_index', None, '')\n\nflags.DEFINE_bool('use_hier_encode', False, '')\n\nflags.DEFINE_bool('use_type', False, '')\nflags.DEFINE_bool('use_type_emb', False, '')\nflags.DEFINE_integer('type_emb_dim', 100, '')\nflags.DEFINE_bool('rcontent', False, '')\n\nflags.DEFINE_bool('split_type', False, '')\n\nflags.DEFINE_string('att_type', 'p2q', '')\nflags.DEFINE_string('att_combiner', 'gate', '')\n\nflags.DEFINE_string('att_activation', 'relu', '')\n\nflags.DEFINE_bool('loss_combine_by_scalar', False, '')\n\nflags.DEFINE_string('encoder_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_mlp', False, '')\nflags.DEFINE_bool('use_word', True, '')\nflags.DEFINE_bool('use_simple_char', False, '')\nflags.DEFINE_string('simple_char_combiner', 'concat', '')\n## in prepare.config\n#flags.DEFINE_bool('use_char', False, '')\n\nflags.DEFINE_bool('use_token_info', False, '')\nflags.DEFINE_bool('use_info_fc', False, '')\nflags.DEFINE_string('token_info_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_comment_info', False, '')\nflags.DEFINE_bool('use_comment_info_fc', False, '')\nflags.DEFINE_string('comment_info_combiner', 'concat', '')\nflags.DEFINE_bool('comment_info_lang_only', False, '')\n\nflags.DEFINE_bool('cudnn_gru_encode', False, 'depreciated, for safe you could just use gru_baseline.py with auc 0.954 single model')\n\nflags.DEFINE_bool('use_pos', False, '')\nflags.DEFINE_bool('use_tag', False, '')\nflags.DEFINE_bool('use_ner', False, '')\nflags.DEFINE_integer('tag_emb_dim', 100, '')\n\nflags.DEFINE_bool('use_emb_fc', False, '')\nflags.DEFINE_bool('use_emb_att', False, '')\nflags.DEFINE_bool('use_emb_max', False, '')\n\nflags.DEFINE_float('sfu_keepprob', 0.5, '')\nflags.DEFINE_float('emb_keepprob', 0.5, '')\n\nflags.DEFINE_bool('emb_dropout', False, '')\n\nflags.DEFINE_bool('use_label_emb', False, '')\nflags.DEFINE_bool('use_label_att', False, '')\nflags.DEFINE_bool('simple_label_att', False, '')\nflags.DEFINE_bool('use_label_rnn', False, '')\n\nflags.DEFINE_string('label_attention_combiner', 'gate', 'gate or dsfu')\nflags.DEFINE_string('self_attention_combiner', 'gate', 'gate or dsfu')\n\nflags.DEFINE_integer('label_emb_dim', 100, '')\nflags.DEFINE_integer('label_emb_height', None, '')\nflags.DEFINE_bool('concat_label_emb', False, '')\nflags.DEFINE_bool('label2text_attention', False, '')\nflags.DEFINE_bool('perlabel_encoding', False, '')\n\nflags.DEFINE_bool('use_self_match', False, '')\n\nflags.DEFINE_bool('self_match_before_label_att', True, '')\n\nflags.DEFINE_string('loss_type', 'normal', '')\nflags.DEFINE_bool('hier_finetune', False, '')\n\nflags.DEFINE_bool('char_only', False, '')\nflags.DEFINE_integer('char_num_layers', 1, '')\nflags.DEFINE_integer('char_hidden_size', 100, '')\nflags.DEFINE_string('char_output_method', 'last', '')\n\nflags.DEFINE_integer('simple_char_num_layers', 3, '')\n\nflags.DEFINE_string('addtional_word_info', None, 'pos,tag,ner')\n\nflags.DEFINE_string('decay_target', None, 'loss or auc')\nflags.DEFINE_integer('decay_patience', 4, '')\nflags.DEFINE_float('decay_factor', 0.5, '')\nflags.DEFINE_float('decay_start_epoch_', 1., '')\n\nflags.DEFINE_bool('dynamic_weights', False, '')\n\nflags.DEFINE_bool('use_gate', False, '')\n\nflags.DEFINE_bool('use_position_encoding', False, '')\n"
  },
  {
    "path": "projects/ai2018/sentiment/algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 20:34:23.281520\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\nfrom algos.weights import *\nfrom algos.config import NUM_CLASSES\n\n#from evaluate import load_class_weights\n\ndef calc_loss(y, y_, weights, training=False):\n  #y += 2\n  #print(y_, y, weights)\n  #-----------deprciated seems per class learning rate decay do not improve\n  if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n    assert FLAGS.loss == 'cross'\n    loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights, reduction=tf.losses.Reduction.NONE)\n    loss = melt.adjust_lrs(loss)\n    loss = tf.reduce_mean(loss)\n    #print('--------------weights', weights)\n\n    # if weights == 1:\n    #   weights = tf.ones([FLAGS.num_learning_rate_weights], dtype=tf.float32)\n    #weights = tf.expand_dims(weights *  tf.get_collection('learning_rate_weights')[-1], 0)\n    #  FIXME weights actually is per example adjust not for classes.. should be of shape [batch_size]\n    #loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights)\n  else: \n    if FLAGS.loss == 'cross':\n      if not FLAGS.label_smoothing:\n        loss = tf.losses.sparse_softmax_cross_entropy(y, y_, weights=weights) \n      else:\n        onehot_labels = tf.one_hot(y, NUM_CLASSES)\n        print('--------------using label smoothing', FLAGS.label_smoothing)\n        loss = tf.losses.softmax_cross_entropy(onehot_labels, y_, weights=weights, label_smoothing=FLAGS.label_smoothing)\n    elif FLAGS.loss == 'focal':\n      loss = melt.losses.focal_loss(y, y_)\n\n  #----------depreciated below has bug..\n  if FLAGS.na_loss_ratio > 0.:\n    y_ = tf.concat([y_[:,:,0:1], tf.reduce_sum(y_[:,:,1:], -1, keepdims=True)], -1)\n    y_onehot = tf.one_hot(tf.to_int64(y > 0), 2)\n    if no_weights():\n      bloss = tf.losses.sigmoid_cross_entropy(y_onehot, y_)\n    else:\n      bloss = tf.losses.sigmoid_cross_entropy(y_onehot, y_, reduction=tf.losses.Reduction.NONE)\n      bloss = tf.reduce_sum(bloss * tf.expand_dims(weights, -1), -1)\n      bloss = tf.reduce_mean(bloss)\n    if FLAGS.na_loss_ratio_add:\n      loss = loss + FLAGS.na_loss_ratio * bloss\n    else:\n      loss = (1 - FLAGS.na_loss_ratio) * loss + FLAGS.na_loss_ratio * bloss\n\n  if FLAGS.earth_mover_loss_ratio > 0.:\n    y_onehot = tf.one_hot(y, 4)\n    earth_mover_loss = melt.losses.earth_mover_loss(y_onehot[:,:,1:], y_[:,:,1:])\n    loss = loss + FLAGS.earth_mover_loss_ratio * earth_mover_loss\n\n  return loss\n\n# now consider simple rule level 0 loss + level 1 loss\n# not imporve, worse...\ndef calc_hier_loss(y, y_, weights):\n  binary_label = tf.to_int64(tf.equal(y, 0))\n  # sigmoid reduction by default is not None will return scalar and if set None will return result shape as label\n  level0_loss  = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,0], weights=weights, reduction=tf.losses.Reduction.NONE)\n  mask = tf.to_float(1 - binary_label)\n  # softmax loss reduction by defualt is not None and will return scalar, set None will return shape as label\n  level1_loss = tf.losses.sparse_softmax_cross_entropy(tf.maximum(y - 1, 0), y_[:,:,1:], weights=weights, reduction=tf.losses.Reduction.NONE)\n\n  loss = level0_loss + level1_loss * mask\n  loss = tf.reduce_mean(loss)\n\n  return loss\n\ndef calc_hier_neu_loss(y, y_, weights):\n  binary_label = tf.to_int64(tf.equal(y, 0))\n  # sigmoid reduction by default is not None will return scalar and if set None will return result shape as label\n  level0_loss  = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,0], weights=weights, reduction=tf.losses.Reduction.NONE)\n  mask = tf.to_float(1 - binary_label)\n  # softmax loss reduction by defualt is not None and will return scalar, set None will return shape as label\n  level1_loss = tf.losses.sparse_softmax_cross_entropy(tf.maximum(y - 1, 0), y_[:,:,1:], weights=weights, reduction=tf.losses.Reduction.NONE)\n\n  loss = level0_loss + level1_loss * mask\n\n  # add neu binary\n  cid = 2\n  binary_label = tf.to_int64(tf.equal(y, cid))\n  binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=tf.losses.Reduction.NONE)\n  loss = loss + binary_loss\n\n  loss = tf.reduce_mean(loss)\n\n  return loss\n\n#now try to add neu binary loss, if imrove can try add all binary loss for na, neg,neu,pos\ndef calc_add_binary_loss(y, y_, cids, weights):\n  reduction = tf.losses.Reduction.SUM_BY_NONZERO_WEIGHTS if FLAGS.loss_combine_by_scalar else tf.losses.Reduction.NONE\n  loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights, reduction=reduction) \n  for cid in cids:\n    binary_label = tf.to_int64(tf.equal(y, cid))\n    binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=reduction)\n    loss = loss + binary_loss * FLAGS.other_loss_factor\n  loss = tf.reduce_mean(loss)\n  return loss\n\ndef calc_binary_loss(y, y_, cid, weights):\n  binary_label = tf.to_int64(tf.equal(y, cid))\n  binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights)\n  return binary_loss\n\ndef calc_regression_loss(y, y_, weights):\n  y = y * 2 + 2\n  return tf.losses.mean_squared_error(y, y_, weights=weights)\n\ndef calc_add_binaries_loss(y, y_, cid, weights):  \n  loss = tf.losses.sparse_softmax_cross_entropy(logits=y_, labels=y, weights=weights, reduction=tf.losses.Reduction.NONE) \n  for cid in range(NUM_CLASSES):\n    binary_label = tf.to_int64(tf.equal(y, cid))\n    binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=tf.losses.Reduction.NONE)\n    loss = loss + binary_loss * (1 / NUM_CLASSES)\n  loss = tf.reduce_mean(loss)\n  return loss\n\ndef calc_binaries_only_loss(y, y_, cid, weights):  \n  loss = None\n  for cid in range(NUM_CLASSES):\n    binary_label = tf.to_int64(tf.equal(y, cid))\n    binary_loss = tf.losses.sigmoid_cross_entropy(binary_label, y_[:,:,cid], weights=weights, reduction=tf.losses.Reduction.NONE)\n    if loss is None:\n      loss = binary_loss\n    else:\n      loss = loss + binary_loss\n    \n  loss = tf.reduce_mean(loss)\n  return loss\n  \ndef criterion(y, y_):\n  weights = get_weights(FLAGS.aspect, FLAGS.attr_index)\n\n  # only need this if we have label -1 means to mask \n  mask = y >= 0\n  weights = weights * tf.to_float(mask)\n  y = y * tf.to_int64(mask)\n\n  # if FLAGS.use_class_weights:\n  #   weights = load_class_weights()\n  #   print('--------------', weights)\n    \n  if FLAGS.loss_type == 'normal':\n    return calc_loss(y, y_, weights, training)\n  elif FLAGS.loss_type == 'binary':\n    return tf.losses.sigmoid_cross_entropy(tf.to_int64(y[:,FLAGS.binary_class_index:FLAGS.binary_class_index + 1] > 0), y_, \n                                           reduction=tf.losses.Reduction.NONE, weights=weights)\n  elif FLAGS.loss_type == 'hier':\n    # not improve deprecated\n    return calc_hier_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'add_neu_binary':\n    # neu cid is 2\n    return calc_add_binary_loss(y, y_, [2], weights)\n  elif FLAGS.loss_type.startswith('add_binary_'):\n    cids = [int(x) for x in FLAGS.loss_type.split('_')[-1].split(',')]\n    return calc_add_binary_loss(y, y_, cids, weights)\n  elif FLAGS.loss_type.startswith('binary_'):\n    cid = int(FLAGS.loss_type.split('_')[-1])\n    return calc_binary_loss(y, y_, cid, weights)\n  elif FLAGS.loss_type == 'regression':\n    return calc_regression_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'add_binaries':\n    return calc_add_binaries_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'binaries_only':\n    return calc_binaries_only_loss(y, y_, weights)\n  elif FLAGS.loss_type == 'hier_neu':\n    return calc_hier_neu_loss(y, y_, weights)\n  else:\n    raise ValueError(f'Unsupported loss type{FLAGS.loss_type}')\n"
  },
  {
    "path": "projects/ai2018/sentiment/algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ptr-net.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 11:50:08.306272\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_CLASSES, NUM_ATTRIBUTES\nfrom algos.weights import *\nimport prepare.config\n\nimport melt\nlogging = melt.logging\nimport gezi \n\nimport numpy as np\n\nUNK_ID = 1\n\n# code above is dpreciated juse use Models derived from ModelBase\nclass ModelBase(melt.Model):\n  def __init__(self, embedding=None, lm_model=False, use_text_encoder=True):\n    super(ModelBase, self).__init__()\n    \n    self.num_units = FLAGS.rnn_hidden_size if FLAGS.encoder_type != 'convnet' else FLAGS.num_filters\n    self.dropout_rate = 1 - FLAGS.keep_prob\n    self.keep_prob = 1 - self.dropout_rate\n    self.num_layers = FLAGS.num_layers\n\n    config = {\n      'word': {\n        'vocab': FLAGS.vocab,\n        'num_layers': FLAGS.num_layers,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'emb_dim': FLAGS.emb_dim,\n        'embedding_file': FLAGS.word_embedding_file,\n        'trainable': FLAGS.finetune_word_embedding,\n        'num_finetune': FLAGS.num_finetune_words,\n      },\n      'char': {\n        'limit': FLAGS.char_limit,\n        'use_char_emb': FLAGS.use_char_emb,\n        'emb_dim': FLAGS.char_emb_dim,\n        'trainable': FLAGS.finetune_char_embedding,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'output_method': FLAGS.char_output_method,\n        'combiner': FLAGS.char_combiner,\n        'padding': FLAGS.char_padding,\n        'num_finetune': FLAGS.num_finetune_chars,\n      },\n      'pos': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'ner': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'encoder': FLAGS.encoder_type,\n      'dropout_rate': 1 - FLAGS.keep_prob,\n      'recurrent_dropout': FLAGS.recurrent_dropout,\n      'cell': FLAGS.cell,\n      'rnn_padding': FLAGS.rnn_padding,\n      'rnn_no_padding': FLAGS.rnn_no_padding,\n      'rnn_train_init_state': FLAGS.rnn_train_init_state,\n      'concat_layers': FLAGS.concat_layers,\n    }\n\n    self.lm_model = None\n    if use_text_encoder:\n      if FLAGS.pretrain_encoder == 'bilm':\n        self.encode = wenzheng.TextEncoder(config, \n                                           embedding,\n                                           use_char=FLAGS.use_char,\n                                           use_char_emb=FLAGS.use_char_emb,\n                                           use_pos=FLAGS.use_pos,\n                                           use_ner=FLAGS.use_ner,\n                                           lm_model=lm_model)\n      else:\n        self.encode = wenzheng.BertEncoder(embedding)\n\n      self.lm_model = self.encode.lm_model\n\n    if not self.lm_model:\n      # hier not improve\n      self.hier_encode = melt.layers.HierEncode() if FLAGS.use_hier_encode else None\n\n      # top-k best, max,att can benfit ensemble(better then max, worse then topk-3), topk,att now best with 2layers\n      logging.info('encoder_output_method:', FLAGS.encoder_output_method)\n      logging.info('topk:', FLAGS.top_k)\n      self.pooling = melt.layers.Pooling(\n                          FLAGS.encoder_output_method, \n                          top_k=FLAGS.top_k,\n                          att_activation=getattr(tf.nn, FLAGS.att_activation))\n      #self.pooling = keras.layers.GlobalMaxPool1D()\n\n      # mlp not help much!\n      if FLAGS.mlp_ratio != 0:\n        self.dropout = keras.layers.Dropout(0.3)\n        if FLAGS.mlp_ratio < 0:\n          # here activation hurt perf!\n          #self.dense = keras.layers.Dense(NUM_ATTRIBUTES * NUM_CLASSES * 2, activation=tf.nn.relu)\n          self.dense = keras.layers.Dense(NUM_ATTRIBUTES * NUM_CLASSES * 2)\n        elif FLAGS.mlp_ratio <= 1:\n          self.dense = melt.layers.DynamicDense(FLAGS.mlp_ratio)\n        else:\n          self.dense = kears.layers.Dense(int(FLAGS.mlp_ratio))\n      else:\n        self.dense = None\n\n      if FLAGS.use_len:\n        self.len_embedding = wenzheng.Embedding(3000, 32)\n\n      self.num_classes = NUM_CLASSES if FLAGS.binary_class_index is None else 1\n      if FLAGS.loss_type == 'regression':\n        self.num_classes = 1\n      self.logits = keras.layers.Dense(NUM_ATTRIBUTES * self.num_classes, activation=None)\n\n  def unk_aug(self, x, x_mask=None, training=False):\n    \"\"\"\n    randomly make 10% words as unk\n    TODO this works, but should this be rmoved and put it to Dataset so can share for both pyt and tf\n    \"\"\"\n    # if not self.training or not FLAGS.unk_aug or melt.epoch() < FLAGS.unk_aug_start_epoch:\n    #   return x \n    if not training or not FLAGS.unk_aug:\n      return x\n      \n    def aug(x, x_mask):\n      # print('---------------do unk aug')\n      # print('ori_x....', x)\n      if x_mask is None:\n        x_mask = x > 0\n      x_mask = tf.to_int64(x_mask)\n      ratio = tf.random_uniform([1,], 0, FLAGS.unk_aug_max_ratio)\n      mask = tf.random_uniform([melt.get_shape(x, 0), melt.get_shape(x, 1)])  > ratio\n      mask = tf.to_int64(mask)\n      rmask = FLAGS.unk_id * (1 - mask)\n      x = (x * mask + rmask) * x_mask\n      #print('aug_x....', x)\n      return x\n\n    # print('----------------', FLAGS.unk_aug_start_step)\n    # print(tf.constant(FLAGS.unk_aug_start_step))\n    # print(tf.train.get_global_step())\n    # print(tf.train.get_global_step() < tf.constant(FLAGS.unk_aug_start_step))\n    # well, below eager ok, but graph mode, get_global_step() is None\n    #return tf.cond(tf.train.get_global_step() < tf.constant(FLAGS.unk_aug_start_step), lambda: x, lambda: aug(x, x_mask))\n    return tf.cond(tf.train.get_or_create_global_step() < tf.constant(FLAGS.unk_aug_start_step, dtype=tf.int64), lambda: x, lambda: aug(x, x_mask))\n\n\nclass BiLanguageModel(ModelBase):\n  def __init__(self, embedding=None, lm_model=True):\n    super(BiLanguageModel, self).__init__(embedding, lm_model=True)\n\n  def call(self, input, training=False):\n    return self.encode(input, training=False)\n\nclass RNet(ModelBase):\n  def __init__(self, embedding=None, lm_model=False):\n    super(RNet, self).__init__(embedding, lm_model=lm_model)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob if FLAGS.att_dropout else 1., combiner=FLAGS.att_combiner)\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob, cell=FLAGS.cell)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob, cell=FLAGS.cell)\n\n    \n    #self.multiplier = 2 if self.encode.bidirectional else 1\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob if FLAGS.att_dropout else 1., combiner=FLAGS.att_combiner)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob, cell=FLAGS.cell)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n     \n  def call(self, input, training=False):\n    x = input['content'] \n    x = self.unk_aug(x, training=training)\n\n    c_mask = tf.cast(x, tf.bool)\n    batch_size = melt.get_shape(x, 0)\n    c_len, max_c_len = melt.length2(x)\n    ori_c_len = c_len\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      #c_len = tf.ones([batch_size], dtype=x.dtype) * tf.cast(melt.get_shape(x, -1), x.dtype)\n      c_len = max_c_len\n\n    x = self.encode(input, c_len, max_c_len, training=training)\n\n    if self.lm_model:\n      return x\n    \n    # not help\n    if self.hier_encode is not None:\n      x = self.hier_encode(x, c_len)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding(None)\n      label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n      if FLAGS.use_label_rnn:\n        label_seq = self.label_encode(label_seq, tf.ones([batch_size], tf.int32) * tf.cast(melt.get_shape(label_emb, 1), tf.int32))\n      x = self.att_dot_attention(x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n\n      if not FLAGS.simple_label_att:\n        x = self.att_encode(x, c_len, training=training)\n\n    # put self match at last, selfmatch help a bit\n    if FLAGS.use_self_match:\n       x = self.match_dot_attention(x, x, mask=c_mask, training=training) \n       x = self.match_encode(x, c_len, training=training) \n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    if FLAGS.use_len:\n      len_emb = self.len_embedding(ori_c_len)\n      x = tf.concat([x, len_emb], -1)\n\n    # not help much\n    if self.dense is not None:\n      x = self.dense(x)\n      x = self.dropout(x, training=training)\n\n    if not FLAGS.use_label_emb:\n      x = self.logits(x)\n    else:\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    # # No help match\n    # if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES * NUM_CLASSES:\n    #   x = melt.adjust_lrs(x)\n\n    if FLAGS.loss_type == 'regression':\n      x = tf.nn.sigmoid(x) * 10\n    else:\n      x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, self.num_classes])\n      \n    return x\n\n# same as Model but for match attention using SeqAttn\nclass RNetV2(RNet):\n  def __init__(self, embedding=None, lm_model=False):\n    super(RNetV2, self).__init__(embedding, lm_model=lm_model)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner=FLAGS.att_combiner)\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    \n    #self.multiplier = 2 if self.encode.bidirectional else 1\n\n    # hier a bit worse\n    self.hier_encode = melt.layers.HierEncode() if FLAGS.use_hier_encode else None\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False, keep_prob=self.keep_prob)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n  \n  def call(self, input, training=False):\n    x = input['content'] \n    x = self.unk_aug(x, training=training)\n\n    c_mask = tf.cast(x, tf.bool)\n    batch_size = melt.get_shape(x, 0)\n    c_len, max_c_len = melt.length2(x)\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      #c_len = tf.ones([batch_size], dtype=x.dtype) * tf.cast(melt.get_shape(x, -1), x.dtype)\n      c_len = max_c_len\n\n    x = self.encode(input, c_len, max_c_len, training=training)\n\n    if self.lm_model:\n      return x\n    \n    # not help\n    if self.hier_encode is not None:\n      x = self.hier_encode(x, c_len)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding(None)\n      label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n      if FLAGS.use_label_rnn:\n        label_seq = self.label_encode(label_seq, tf.ones([batch_size], tf.int32) * tf.cast(melt.get_shape(label_emb, 1), tf.int32))\n      x = self.att_dot_attention(x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n\n      if not FLAGS.simple_label_att:\n        x = self.att_encode(x, c_len, training=training)\n\n    # put self match at last, selfmatch help a bit\n    if FLAGS.use_self_match:\n       x = self.match_dot_attention(x, mask=c_mask, training=training) \n       x = self.match_encode(x, c_len, training=training) \n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n\n    # not help much\n    if self.dense is not None:\n      x = self.dense(x)\n      x = self.dropout(x, training=training)\n\n    if not FLAGS.use_label_emb:\n      x = self.logits(x)\n    else:\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    # # No help match\n    # if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES * NUM_CLASSES:\n    #   x = melt.adjust_lrs(x)\n\n    if FLAGS.loss_type == 'regression':\n      x = tf.nn.sigmoid(x) * 10\n    else:\n      x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, self.num_classes])\n      \n    return x\n\n# same as RNetV2 but is gate + sfu\nclass RNetV3(RNet):\n  def __init__(self, embedding=None):\n    super(RNetV3, self).__init__(embedding)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=self.keep_prob, combiner='gate')\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.SelfAttnMatch(combiner='sfu', identity=True, diag=False, keep_prob=self.keep_prob)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n\n#same as RNetV3 but all use sfu and since dot attention with sfu not good, change \n# V4 is bad , seems for label attention can only use gate\nclass RNetV4(RNet):\n  def __init__(self, embedding=None):\n    super(RNetV4, self).__init__(embedding)\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim)\n      if FLAGS.use_label_att:\n        self.att_dot_attention = melt.layers.melt.layers.SeqAttnMatch(combiner='sfu', identity=True, keep_prob=self.keep_prob)\n        #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n        self.att_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      if FLAGS.use_label_rnn:\n        self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = melt.layers.SelfAttnMatch(combiner='sfu', identity=True, diag=False, keep_prob=self.keep_prob)\n      self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n \n\n #same as ModelV2 but this is pytorch Mreader like attention(light attention)\nclass MReader(ModelBase):\n  def __init__(self, embedding=None):\n    super(MReader, self).__init__()\n\n    #same input dim then outpu dim , if concat will * num_layers\n    assert not FLAGS.concat_layers\n\n    if FLAGS.use_label_emb or FLAGS.use_label_att:\n      #assert not (FLAGS.use_label_emb and FLAGS.use_label_att)\n      self.label_emb_height = NUM_CLASSES * NUM_ATTRIBUTES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      if FLAGS.use_label_emb and FLAGS.use_label_att:\n        assert self.label_emb_height == NUM_CLASSES * NUM_ATTRIBUTES\n      self.label_embedding = melt.layers.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      if FLAGS.use_label_emb:\n        #self.label_dense = keras.layers.Dense(FLAGS.emb_dim, activation=tf.nn.relu)\n        self.label_dense = keras.layers.Dense(FLAGS.emb_dim, use_bias=False)\n      if FLAGS.use_label_att:\n        self.att_dot_attentions = []\n        self.att_encodes = []\n        for _ in range(FLAGS.hop):\n          self.att_dot_attentions.append(melt.layers.melt.layers.SeqAttnMatch(combiner=FLAGS.att_combiner, identity=True))\n          #self.att_dot_attention = melt.layers.DotAttention(hidden=self.num_units, keep_prob=0.5, combiner=FLAGS.att_combiner)\n          self.att_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      self.label_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    if FLAGS.use_self_match:\n      self.match_dot_attentions = []\n      self.match_encodes = []\n      for _ in range(FLAGS.hop):\n        self.match_dot_attentions.append(melt.layers.SelfAttnMatch(combiner=FLAGS.att_combiner, identity=True, diag=False))\n        self.match_encodes.append(melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob))\n      #self.match_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=0.5)\n    \n  def call(self, input, training=False):\n    x = input['content'] \n    x = self.unk_aug(x, training=training)\n\n    c_mask = tf.cast(x, tf.bool)\n    batch_size = melt.get_shape(x, 0)\n    c_len, max_c_len = melt.length2(x)\n\n    if FLAGS.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      #c_len = tf.ones([batch_size], dtype=x.dtype) * tf.cast(melt.get_shape(x, -1), x.dtype)\n      c_len = max_c_len\n\n    x = self.encode(input, c_len, max_c_len, training=training)\n    \n    # not help\n    if self.hier_encode is not None:\n      x = self.hier_encode(x, c_len)\n\n    # yes just using label emb..\n    label_emb = self.label_embedding(None)\n    label_seq = tf.tile(tf.expand_dims(label_emb, 0), [batch_size, 1, 1])\n    label_seq = self.label_encode(label_seq, tf.ones([batch_size], dtype=tf.int64) * self.label_emb_height, training=training)\n\n    for i in range(FLAGS.hop):\n      x = self.att_dot_attentions[i](x, label_seq, mask=tf.ones([batch_size, self.label_emb_height], tf.bool), training=training)\n      x = self.att_encodes[i](x, c_len, training=training)\n      x = self.match_dot_attentions[i](x, mask=c_mask, training=training) \n      x = self.match_encodes[i](x, c_len, training=training) \n\n    x = self.pooling(x, c_len, calc_word_scores=self.debug)\n    #x = self.pooling(x)\n\n    # not help much\n    if self.dense is not None:\n      x = self.dense(x)\n      x = self.dropout(x, training=training)\n\n    if not FLAGS.use_label_emb:\n      x = self.logits(x)\n    else:\n      x = self.label_dense(x)\n      # TODO..\n      x = melt.dot(x, self.label_embedding(None))\n\n    x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, self.num_classes])\n    \n    return x\n\n#--------------BERT!\n# using bert transformer\n\nfrom third.bert import modeling\n\nclass Transformer(ModelBase):\n  def __init__(self, embedding=None):\n    super(Transformer, self).__init__(embedding, lm_model=False, use_text_encoder=False)\n\n    self.init_checkpoint = None\n    \n    if FLAGS.bert_dir:\n      bert_dir = FLAGS.bert_dir\n      bert_config_file = f'{bert_dir}/bert_config.json' \n      bert_config = modeling.BertConfig.from_json_file(bert_config_file)\n      self.init_checkpoint= f'{bert_dir}/bert_model.ckpt' \n    elif FLAGS.bert_config_file:\n      bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n    else:\n      bert_config = {\n        \"attention_probs_dropout_prob\": 0.1, \n        \"directionality\": \"bidi\", \n        \"hidden_act\": \"gelu\", \n        \"hidden_dropout_prob\": 0.1, \n        \"hidden_size\": 768, \n        \"initializer_range\": 0.02, \n        \"intermediate_size\": 3072, \n        \"max_position_embeddings\": 512, \n        \"num_attention_heads\": 12, \n        \"num_hidden_layers\": 12, \n        \"pooler_fc_size\": 768, \n        \"pooler_num_attention_heads\": 12, \n        \"pooler_num_fc_layers\": 3, \n        \"pooler_size_per_head\": 128, \n        \"pooler_type\": \"first_token_transform\", \n        \"type_vocab_size\": 2, \n        \"vocab_size\": gezi.Vocabulary(FLAGS.vocab).size()\n      }\n      bert_config = modeling.BertConfig.from_dict(bert_config)\n\n    bert_config.attention_probs_dropout_prob = FLAGS.bert_dropout\n    bert_config.hidden_dropout_prob = FLAGS.bert_dropout\n    bert_config.num_hidden_layers = FLAGS.bert_num_layers \n    bert_config.num_attention_heads = FLAGS.bert_num_heads\n    logging.info('bert_config\\n', bert_config.to_json_string())\n    self.bert_config = bert_config\n\n    if FLAGS.transformer_add_rnn:\n       self.rnn_encode = melt.layers.CudnnRnn(num_layers=1, num_units=self.num_units, keep_prob=self.keep_prob)\n\n  def restore(self):\n    tvars = tf.trainable_variables()\n    (assignment_map,\n    initialized_variable_names) = modeling.get_assigment_map_from_checkpoint(\n        tvars, self.init_checkpoint)\n\n    tf.train.init_from_checkpoint(self.init_checkpoint, assignment_map)\n\n    logging.info(\"**** Trainable Variables ****\")\n    for var in tvars:\n      init_string = \"\"\n      if var.name in initialized_variable_names:\n        init_string = \", *INIT_FROM_CKPT*\"\n      logging.info(\"  name = %s, shape = %s%s\", var.name, var.shape,\n                      init_string)  \n\n  def call(self, input, training=False):\n    self.step += 1\n    x = input['content']\n    x = self.unk_aug(x, training=training)\n    batch_size = melt.get_shape(x, 0) \n    c_mask = tf.cast(x, tf.bool)\n    # TODO move to __init__\n    model = modeling.BertModel(\n      config=self.bert_config,\n      is_training=training,\n      input_ids=x,\n      input_mask=c_mask,\n      use_one_hot_embeddings=FLAGS.use_tpu)\n\n    if self.step == 0 and self.init_checkpoint:\n      self.restore()\n    c_len = melt.length(x)\n\n    if FLAGS.encoder_output_method == 'last':\n      x = model.get_pooled_output()\n    else:\n      x = model.get_sequence_output()\n\n    if training:\n      x = tf.nn.dropout(x, keep_prob=0.9)\n\n    logging.info('---------------bert_lr_ratio', FLAGS.bert_lr_ratio)\n    x = x * FLAGS.bert_lr_ratio + tf.stop_gradient(x) * (1 - FLAGS.bert_lr_ratio)\n    \n    if FLAGS.transformer_add_rnn:\n      assert FLAGS.encoder_output_method != 'last'\n      x = self.rnn_encode(x, c_len)\n    \n    if FLAGS.encoder_output_method != 'last':\n      x = self.pooling(x, c_len)\n      x2 = model.get_pooled_output()\n      x = tf.concat([x, x2], -1)\n    x = self.logits(x)\n    x = tf.reshape(x, [batch_size, NUM_ATTRIBUTES, NUM_CLASSES])\n    return x\n\n\n# class Model(ModelBase):\n#   def call(self, input, training=False):\n#     x = input['content'] \n#     c_len = melt.length(x)\n#     x = self.encode(input, c_len, training=training)\n#     x = self.pooling(x, c_len)\n#     x = self.logits(x)\n#     x = tf.reshape(x, [-1, NUM_ATTRIBUTES, NUM_CLASSES])\n#     return x\n"
  },
  {
    "path": "projects/ai2018/sentiment/algos/weights.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   weights.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 19:45:07.901500\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\nimport numpy as np\n\nfrom algos.config import NUM_CLASSES, NUM_ATTRIBUTES, ATTRIBUTES, ATTRIBUTES_MAP\n\nimport melt\nlogging = melt.logging\n\ndef no_weights():\n  return FLAGS.aspect == 'all' and FLAGS.attr_index is None\n\ndef get_pos(aspect):\n  start = None \n  end = None\n  index = None\n  if '-' in aspect:\n    aspect, index = aspect.split('-')\n    index = int(index)\n  if aspect == 'location':\n    start = 0\n    end = 3\n  elif aspect == 'service':\n    start = 3\n    end = 7\n  elif aspect == 'price':\n    start = 7\n    end = 10\n  elif aspect == 'environment':\n    start = 10\n    end = 14\n  elif aspect == 'dish':\n    start = 14\n    end = 18\n  elif aspect == 'others':\n    start = 18\n    end = 20 \n\n  if index is not None:\n    start += index \n    end = start + 1\n\n  return start, end\n\ndef parse_weights():\n  if ':' in FLAGS.weights:\n    weights = np.ones([NUM_ATTRIBUTES]) * FLAGS.init_weight\n    for item in FLAGS.weights.split(','):\n      aspect, val = item.split(':')\n      val = float(val)\n      start, end = get_pos(aspect)\n      if start is None:\n        assert aspect in ATTRIBUTES_MAP\n        weights[ATTRIBUTES_MAP[aspect]] = val\n      else:\n        for i in range(start, end):\n          weights[i] = val\n  else:\n    weights = list(map(float, FLAGS.weights.split(',')))\n    assert len(weights) == NUM_ATTRIBUTES\n\n  return weights\n\ndef get_weights(aspect, attr_index=None):\n  if FLAGS.weights:\n    weights = parse_weights()\n  else:\n    weights = np.zeros([NUM_ATTRIBUTES])\n\n    if no_weights():\n      return 1.\n    \n    if attr_index is not None:\n      weights[attr_index] = 1. \n\n    start, end = get_pos(aspect)\n    if start is None:\n      assert aspect in ATTRIBUTES_MAP\n      weights[ATTRIBUTES_MAP[aspect]] = 1.\n    else:\n      for i in range(start, end):\n        weights[i] = 1.\n\n  logging.info('weights:', weights)\n  logging.info('weights:', list(zip(ATTRIBUTES, weights)))\n  return tf.expand_dims(tf.constant(weights, dtype=tf.float32), 0)\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/analysis.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 236,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import pandas as pd\\n\",\n    \"import numpy as np\\n\",\n    \"%matplotlib inline\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib as mpl\\n\",\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import seaborn as sns\\n\",\n    \"\\n\",\n    \"dpi = 300\\n\",\n    \"mpl.rcParams['figure.dpi']= dpi\\n\",\n    \"\\n\",\n    \"sns.set(font=['sans-serif'])\\n\",\n    \"sns.set_style(\\\"whitegrid\\\",{\\\"font.sans-serif\\\":['Microsoft JhengHei']})\\n\",\n    \"#sns.set_style(\\\"whitegrid\\\",{\\\"font.sans-serif\\\":['Microsoft YaHei']})\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 206,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<style>\\n\",\n       \".output_wrapper, .output {\\n\",\n       \"    height:auto !important;\\n\",\n       \"    max-height:10000px;  /* your desired max-height here */\\n\",\n       \"}\\n\",\n       \".output_scroll {\\n\",\n       \"    box-shadow:none !important;\\n\",\n       \"    webkit-box-shadow:none !important;\\n\",\n       \"}\\n\",\n       \"</style>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%%html\\n\",\n    \"<style>\\n\",\n    \".output_wrapper, .output {\\n\",\n    \"    height:auto !important;\\n\",\n    \"    max-height:10000px;  /* your desired max-height here */\\n\",\n    \"}\\n\",\n    \".output_scroll {\\n\",\n    \"    box-shadow:none !important;\\n\",\n    \"    webkit-box-shadow:none !important;\\n\",\n    \"}\\n\",\n    \"</style>\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 207,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tags = ['位置', '服务', '价格', '环境', '菜品',  '其他']\\n\",\n    \"attrs = ['交通是否便利', '距离商圈远近', '是否容易寻找',\\n\",\n    \"         '排队等候时间', '服务人员态度', '是否容易停车', '点菜/上菜速度',\\n\",\n    \"         '价格水平', '性价比', '折扣力度',\\n\",\n    \"         '装修情况', '嘈杂情况', '就餐空间', '卫生情况', \\n\",\n    \"         '分量', '口感', '外观', '推荐程度',\\n\",\n    \"         '本次消费感受', '再次消费的意愿']\\n\",\n    \"classes = ['未提及', '负面', '中性', '正面']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 208,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"df = pd.read_csv('./train.csv')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 209,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"cols = df.columns[2:22]\\n\",\n    \"for col, attr in zip(cols, attrs):\\n\",\n    \"  vals = df[col].values\\n\",\n    \"  vals = [classes[x + 2] for x in vals]\\n\",\n    \"  df[attr] = vals\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 237,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<seaborn.axisgrid.FacetGrid at 0x7f61c097bb70>\"\n      ]\n     },\n     \"execution_count\": 237,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAABfEAAAWsCAYAAACJtMnFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XuUVnW9P/DPXBjkMtwEREAEAUMUjJ+IiiZlamUdTVFSE2+oSaSsMmWZnixdZis9J7GjyCnLPAaSECy1OrbIS1pe46KIqKAockccGEGYgZnfHy32mf3MMPPMMMoGXq+/ns9+vnt/vntz+eO99/PdBdXV1dUBAAAAAABkTuHungAAAAAAAFA3IT4AAAAAAGSUEB8AAAAAADJKiA8AAAAAABklxAcAAAAAgIwS4gMAAAAAQEYJ8QEAAAAAIKOE+AAAAAAAkFFCfAAAAAAAyCghPgAAAAAAZJQQHwAAAAAAMkqIDwAAAAAAGSXEBwAAAACAjBLiAwAAAABARgnxAQAAAAAgo4T4AAAAAACQUUJ8AAAAAADIKCE+AAAAAABklBAfAAAAAAAySogPAAAAAAAZJcQHAAAAAICMEuIDAAAAAEBGCfEBAAAAACCjhPgAAAAAAJBRQnwAAAAAAMgoIT4AAAAAAGSUEB8AAAAAADJKiA8AAAAAABklxAcAAAAAgIwS4gMAAAAAQEYJ8QEAAAAAIKOE+AAAAAAAkFHFu3sCwJ6luro6Kisra21v0aJFFBQU7IYZAQAAAMDeS4gPNEplZWW8+uqrtbYPGjQoSkpKdsOMAAAAAGDvZTkdAAAAAADIKCE+AAAAAABklBAfAAAAAAAySogPAAAAAAAZJcQHAAAAAICMEuIDAAAAAEBGCfEBAAAAACCjhPgAAAAAAJBRQnwAAAAAAMgoIT4AAAAAAGSUEB8AAAAAADJKiA8AAAAAABklxAcAAAAAgIwS4gMAAAAAQEYJ8QEAAAAAIKOE+AAAAAAAkFFCfAAAAAAAyCghPgAAAAAAZJQQHwAAAAAAMkqIDwAAAAAAGSXEBwAAAACAjBLiAwAAAABARgnxAQAAAAAgo4T4AAAAAACQUUJ8AAAAAADIKCE+AAAAAABklBAfAAAAAAAySogPAAAAAAAZJcQHAAAAAICMEuIDAAAAAEBGCfEBAAAAACCjhPgAAAAAAJBRQnwAAAAAAMgoIT4AAAAAAGSUEB8AAAAAADJKiA8AAAAAABklxAcAAAAAgIwS4gMAAAAAQEYJ8QEAAAAAIKOE+AAAAAAAkFFCfAAAAAAAyCghPgAAAAAAZFTx7p4A2ffOO+/EggULYs2aNVFRURHt2rWLvn37xpAhQ6Jly5bN1qeysjLmz58fixcvjrKysigqKoouXbrE4YcfHv3792+2PhER69ati3nz5sX7778fmzdvjtatW0evXr1iyJAh0bFjx2bttWjRonj99ddj3bp1sX379ujYsWP0798/Bg8eHMXF/gkCAAAAADsnQcyoz3zmM5/IcR944IE45phjGhxXXV0dM2fOjPvuuy8WL15c55jWrVvHWWedFePGjYtOnTo1eU7r1q2LyZMnx8yZM6O8vLzOMb17947LL788Ro4cGQUFBU3u9eKLL8akSZPi+eefj6qqqlrfFxUVxYgRI2L8+PExYMCAJvepqKiIKVOmxAMPPBDLly+vc0yHDh3i3HPPjSuuuCLatGnT5F4AAAAAwN6roLq6unp3T4LaPokQv0WLFvHUU09F586d6x23fv36uPrqq+Oll17K67idOnWKu+66K44++uhGz+npp5+O6667LsrKyvIaf8IJJ8TEiROjbdu2jeqzbdu2uO222+LBBx/Ma3yLFi3iuuuuiwsvvLBRfSIi3nvvvRg3bly8+eabeY3v2bNnTJ48Ofr169foXrtDRUVFvPrqq7W2Dxo0KEpKSnbDjAAAAABg72VN/H3ISSedlFeAf95559UK8EtKSqJPnz7Rv3//WkHt+vXrY8yYMTFv3rxGzefxxx+PsWPH1grw27dvHwMHDoxu3brVeur+2WefjTFjxsTWrVvz7lNVVRXf+973agX4hYWF0b179xg4cGCUlpamvqusrIxbb7017r///kad09KlS+Pcc8+tFeC3atUqDj300Ojdu3e0aNEi9d37778fF1xwQbz77ruN6gUAAAAA7P08iZ9R//jHP3b5GA899FA8/vjjSX3ffffFCSecsNPxVVVVMXr06Hj55ZeTbd27d49x48bFGWeckYTPlZWVMWvWrJg4cWKsXbs2GXvAAQfEY489Fu3atWtwbosWLYpRo0alwvjPf/7z8Z3vfCcGDRqUbFu9enVMnjw5pkyZEjX/qp5//vlx0003NdgnIuLnP/953Hvv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ADJKiA8AAAAAABklxAcAAAAAgIwS4gMAAAAAQEYJ8QEAAAAAIKOE+AAAAAAAkFFCfAAAAAAAyCghPgAAAAAAZJQQHwAAAAAAMkqIDwAAAAAAGVW8uyfArlu1alW89tprsXz58ti0aVMUFRVF27Zto3v37nHYYYfFAQcc0ORjv/POO7FgwYJYs2ZNVFRURLt27aJv374xZMiQaNmyZbOdQ2VlZcyfPz8WL14cZWVlUVRUFF26dInDDz88+vfv32x9IiLWrVsX8+bNi/fffz82b94crVu3jl69esWQIUOiY8eOzdpr0aJF8frrr8e6deti+/bt0bFjx+jfv38MHjw4iov98wMAAAAA6idF3ENVVFTEzJkz46GHHoqFCxfWO/bQQw+NH/3oR3HUUUfldezq6uqYOXNm3HfffbF48eI6x7Ru3TrOOuusGDduXHTq1KnR899h3bp1MXny5Jg5c2aUl5fXOaZ3795x+eWXx8iRI6OgoKDJvV588cWYNGlSPP/881FVVVXr+6KiohgxYkSMHz8+BgwY0OQ+FRUVMWXKlHjggQdi+fLldY7p0KFDnHvuuXHFFVdEmzZtmtwLAAAAANi7FVRXV1fv7knQOHPmzInrr78+li5dmvc+//7v/x4XXHBBg+PWr18fV199dbz00kt5HbdTp05x1113xdFHH533XHZ4+umn47rrrouysrK8xp9wwgkxceLEaNu2baP6bNu2LW677bZ48MEH8xrfokWLuO666+LCCy9sVJ+IiPfeey/GjRsXb775Zl7je/bsGZMnT45+/fo1utfuUlFREa+++mqt7YMGDYqSkpJPfT7f+vH0KN+09VPvCzRNaZuWMfmms3f3NAAAAGCPYU38PcysWbPiwgsvrBXgFxYWRq9evWLw4MExYMCAJj0dv379+jjvvPNqBfglJSXRp0+f6N+/f62Qdv369TFmzJiYN29eo3o9/vjjMXbs2FoBfvv27WPgwIHRrVu3Wk/dP/vsszFmzJjYujX/wLaqqiq+973v1QrwCwsLo3v37jFw4MAoLS1NfVdZWRm33npr3H///Y06p6VLl8a5555bK8Bv1apVHHroodG7d+9o0aJF6rv3338/Lrjggnj33Xcb1QsAAAAA2DdYTmcP8r//+79x/fXXp5aC6devX1x22WVx8skn1wqjV61aFU899VT84Q9/aPDYVVVVcdVVV6VuDnTv3j3GjRsXZ5xxRhI+V1ZWxqxZs2LixImxdu3aiIjYunVrXH311fHYY49Fu3btGuy1aNGiuPbaa2P79u3Jts9//vPxne98JwYNGpRsW716dUyePDmmTJkSO34wMm/evPjpT38aN910U4N9IiImTpwYjz/+eFK3atUqxowZE6NHj44OHTok25977rm44447YsGCBcm2n/3sZ/HZz342PvvZzzbYZ/PmzfGtb30rPvjgg2Rb//7946qrropTTz01uSHx8ccfx9SpU+Puu++Ojz76KCIiPvzww7j66qtj+vTptUJ+AAAAAGBhWcDuAAAgAElEQVTfZjmdPcSSJUti5MiR8fHHHyfbLr/88hg/fnxewe+OF7juzP333x+33XZbUh966KFx3333RdeuXesc/95778WFF14YK1euTLaNHj06brzxxnrnUVVVFSNHjkyt43/ppZfGhAkTdrrPtGnT4qabbkqC/IKCgpgxY0Ycfvjh9fZasGBBnHPOOclNj9LS0rj33ntj6NChdY7fsmVLjB07Nv7xj38k2wYMGBCzZs1qcC3+W2+9NR544IGkHjZsWEyaNGmnS/+88sorMWbMmNi4cWOy7frrr4+LL7643j5ZYDkdYFdYTgcAAAAax3I6e4jrr78+FeBPmDAhvv/97+f95HZ9AX55eXlMmjQpqVu1ahWTJk3aaYAfEdGrV6+44447UtumTZuWehK9Lo888kgqwD/xxBPrDfAjIr7xjW/EyJEjk7q6ujo13525/fbbU79auPnmm3ca4EdE7LfffnHnnXdGx44dk22LFi2KJ554ot4+y5Yti6lTpyZ1ly5d4p577ql37f7BgwfXuuHxy1/+MioqKurtBQAAAADsW4T4e4DZs2fH/Pnzk/rMM8+MSy+9tNmOP2PGjNTa9FdeeWX07Nmzwf2GDh0aX/va15K6oqKiwaV7fvOb3ySfS0pK4oc//GFec7zmmmuiTZs2Sf3EE0/E6tWrdzp+4cKF8fzzzyf18ccfH6eddlqDfdq3bx/f/e53U9seeuihevf57W9/G5WVlUk9YcKEWksb1eWMM86IIUOGJPW6deti9uzZDe4HAAAAAOw7hPgZV1VVFRMnTkzq9u3bxw9+8INm7TFjxozkc0lJSZx33nl573vuueem6prrz+d67bXXYtGiRUl90kknxUEHHZRXn06d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Ktq1a5fUDz74YF7h+oYNG+KOO+5I6h49esTpp59e7z651++mm26KqqqqBns98sgjqeV3vvnNb0ZpaWmD+wEAAAAA+w4hfsaNHDkyFYz/4Q9/iP/6r/+qd58tW7bEt7/97XjvvfeSbaeddlqtF77uMHTo0Bg6dGhSL1u2LL7//e/X+5T8O++8E9dee22y9E5xcXFceeWVDZ7PZZddlvo1wK9//et45JFH6t1nypQpMX369KQeMmRIDB8+vN592rZtGxdccEFSV1ZWxvjx42PFihU73WfTpk0xfvz4+OCDD5JtV155ZWq5obp89atfjZ49eyb13Llz45Zbbqk3yN8xpuZ8L7roonr7AAAAAAD7nqIf/ehHP9rdk2DnCgsL4+CDD06th//iiy/G/Pnzo1evXtGtW7dke0VFRcyePTvGjx8fCxYsSLb37NkzJk+eHC1bttxpn8MPPzxmzJiRBM9vv/12PPvss3HggQfGwQcfnIzbunVrTJs2La677rpYu3Ztsn3cuHHx5S9/ucHz6dixY2zevDnmzJkTEf9a6mb27Nmxfv366NevX+rp+WXLlsXtt98e99xzT7Jtv/32i//+7/+OTp06Ndhr8ODB8ac//Sl5gr+srCz+9Kc/RWlpafTv3z+5mVBdXR1PPfVUXHvttTFv3rxk/2OPPTZuuOGGKCgoqLdPYWFh9O7dOx599NFk26uvvhrz58+Pgw8+OPVnVF5eHvfff3/ceOONsWnTpmT7zTffHP/v//2/Bs8pC7Zv3x5r1qyptf2AAw6otVzTp+GxpxdGReX2T70v0DQtS4rj3z5f901lAAAAoLaC6sa8xZTd5p577omJEyfW2t6pU6c48MADo6KiIpYvXx6bN29Ofd+tW7e47777ol+/fg32mD59etxwww21trdt2zZ69uwZW7ZsieXLl0dlZWXq+6985Svx85//vMGwe4fKysq4/PLLUy/djYgoKCiIrl27RufOnWPNmjWxbt261Et2i4uLY+LEiXHyySfn1SciYtGiRXH++eenAvOIiJKSkujRo0e0bNkyli1bVuv7Pn36xNSpU6Njx45597rrrrvi7rvvrrW9Q4cO0b179ygvL4+VK1fGtm3bUt9feumlMWHChLz77G4VFRXx6quv1to+aNCgKCkp+dTn860fT4/yTfm9WwHY/UrbtIzJN529u6cBAAAAewxP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nz4xZcqUOP3005NtgEpLS+Pxxx+PW2+9NdauXRsREbt27Ypp06bFU089FR07dqzVugAAAACAg18mW5/9QvhEVdwTf+zYsfHjH//4gPSZM2dOTJkyJal79uwZv/rVr+KII46ocnxxcXGcf/758eabb+bM9Y477thnr0suuSSee+65pD711FPjJz/5SbX73b/wwgsxbdq0KCkpSY794he/iC996Us19lm9enWMGTMmtm/fHhERLVu2jJtuuilOOeWUKseXl5fHD37wg3jiiSeSY927d485c+ZE69ata+x13333xY033pjURx55ZNxzzz3Ro0ePKsd/+OGHMWnSpFi1alVybOLEifHDH/6wxj6NraSkJP7+979XOj506NBKvzL4JEy+7tHYsm3XJ94XqJ8O7VrFXdec2djTAAAAgCbDdjpERMTu3bvjpz/9aVJnMpmYOXNmtQF+RETXrl3j5z//eU5w+/zzz+eE+lWZO3duToB/5JFHxn//93/X+MDaf/u3f4uLL74459jtt99eY5+IiJkzZyYBfkTEpZdeWm2AHxHRokWLuOGGG3LWvXbt2njkkUdq7LNly5acLy/atGkTd9xxR7UBfkRE//7942c/+1nOsYcffrjGZwMAAAAAAM2LEJ+I2BO+V9wGZvz48TF8+PB9nte/f/84//zzc4499NBDNZ5zzz335NTXXXddFBbue2enCy+8MPr27ZvUixcvjoULF1Y7ft26dfHkk08m9cCBAyvNtSotW7aMK6+8MufYvtb0+9//PjZu3JjU3/72t6Nfv3777DVq1Kj46le/mtQlJSXxhz/8YZ/nAQAAAADNgxCfiNgTQld03nnn1frcs88+OzKZTFL/6U9/ivLy8irHrl+/Pl588cWkHjp0aBxzzDG16lNUVBTjxo3LOfbss89WO/5//ud/kn30IyL+4z/+o1ZfFkTsefZAxb3933nnnVi2bFm14yt+fkVFRXHuuefWqk9ExDnnnJNT5z9UGAAAAABovoT4xNatW3Me5jp06NAYOHBgrc/v27dvjBw5MqnXrVsXixcvrnLsc889F7t3707qsWPH1mmup59+ek790ksvVTu2YhheVFSUc8d7bZx22mk59V/+8pcqx73//vuxdOnSpD755JOjU6dOte4zatSo6NOnT1IvWrQoiouL6zRXAAAAAODgJMQnXn/99ZwHxp500kl1vsbxxx+fU8+bN6/Kca+88kpOXddehx56aM6WOm+//XZs3ry50rht27blbLUzfPjwOgXrEZ/cmjKZTBx33HFJnc1mY/78+XW6BgAAAABwcBLiUykwHjZsWJ2v8ZnPfCanXrJkyT57de/evVb7xucbOnRo8jqbzcZbb71VaczChQtz7vivz5qOPvroaNHin/9EarOm+vaquKaaegEAAAAAzYsQn3jzzTdz6vxAvjaOPvronPrdd9+tNGbjxo2xevXqas+pb6933nmn0piGWFO7du3isMMOS+oVK1bEzp07a+zVoUOHOPzww+vcKz/Er+rzAwAAAACaHyE+OYFxhw4donPnznW+xiGHHBKtWrVK6hUrVlQakx+2V3xwbF1U3D8+ImLlypUHrFfv3r2T19lsNlatWpXzfjabjffeey+p+/btm/OQ3/r0iah6TQAAAABA8yPEb0N1d8kAACAASURBVObyg+n8MLkuevTokbxev359znY2EZWD6fr26tmzZ069Zs2aSmPye/Xq1euA9FqzZk2UlpYmdX3XdMghh0TLli2r7QMAAAAANE+FjT0B6mbt2rXJg1QzmUx06NAhOnXqFN27d4/WrVvX+XobNmzIeahtfmhdFz179ozly5dHRER5eXls2bIl567+/GC6oYL1jRs3VhpTsVfr1q2jS5cuDdJr06ZN1fapanxttWjRIrp165Z8oVLVmgAAAACA5keI38S8/PLL8fLLL1c6XlhYGIMGDYrjjjsuzjnnnOjfv3+trrd58+acukOHDvWeW5s2bXLq/BA/v1f79u0bpM/WrVsrjakYtte3T1W9tmzZklMfqM9v+/btUV5envNg3bQrKyur11ZCdVXxFwvAwaHiL5oAAAAgDdKUQQnxDxJlZWWxaNGiWLRoUfzqV7+KU045Jf7rv/4runbtWuN5+aF0xX3t6yr/3Ip3+Ddkr331icgN9pvCmvLPzWazUVpaul/X+6QtWbLkgPcoLCyMYcOGHfA+wCdr8eLFUVZW1tjTAAAAgMTIkSMbewqJpnObL7VWXl4e//f//t/42te+Fm+88UaNY/PvfiwqKqp33/zAOT+Qye/VUCF+VcFPxV5NYU1VnevOVAAAAADAnfhNwPPPP1/pWDabjW3btsXGjRvjrbfeirlz58aTTz4Z69atS8asXbs2LrroonjggQfiiCOOqPLa+Q+f3Z/Au7CwsMY6PwCv709S9tUnv9f+/PRlX73yP7+G7JWmn+wAAAAAAI3DnfhNVCaTifbt20e/fv3ii1/8YlxxxRXx5z//OS699NKc8Hfjxo3x/e9/P7LZbJXXyQ+Kq9qaprZ27tyZU7dr167GXvW90zy/T9u2bSuNqdhrf+5o37VrV429GmpNEbnrKigoaFJb6QAAAAAAB4Y78Q8iLVu2jEsuuSQGDRoUU6dOTe5GX7x4cTz99NPx1a9+tdI5+aH0/oT4+efmPxQ2P9TPD8hrK/+8/D4Re9a1dz77s6Z9hfj5dX3XFJE7z6rWlHaDBw/26wGgXoYMGdLYUwAAAIDUEuIfhE4++eS48MIL484770yOPfbYY1WG+Plh8f6E0Pl3yOdfu6F67StY33ts48aN+9Un4pNbU36vphjiFxYWCvGBevHfDgAAAKie7XQOUt/61rdy9rd/7bXXqgyY8++OLy4urnfP9evXJ687depUaX/9/LC9vr0q9omI6NatW6UxFXtt2rQpysvL69Urf475vRpqTRG56+revXu9rwMAAAAAHDyE+Aep9u3bx7HHHpvUu3btio8++qjSuC5duuTc9b1q1ap691y9enXyesCAAZXe79OnT05d317551XVq3fv3snr0tLSWLt27X73ymQylXo11Jq2bNkS27ZtS+qq1gQAAAAAND9C/INY//79c+r8O9gj9gTTFcetWrWq2ofg1mTbtm2xefPmpK4qhM4/Vt/Au+KXBbXttXLlynr1qjjHXr16RevWrXPe79atW3To0KFB+0QI8QEAAACAPYT4B7GOHTvm1Dt27KhyXMXAuKSkJN5///0691qyZElOffjhh9fYJyJi6dKlde4TsedBvfvqddhhh+13r9LS0li2bFmNfSIiPvWpTyWvP/roo2o/55rUZk0AAAAAQPMjxD+IbdiwIafu0qVLleOGDBmSU8+bN6/OvebPn59TV9zKZ6+2bdvmBPmLFi2KkpKSOvdasGBB8nrAgAHRs2fPSmMGDx6cU9dnTUuWLMl5jkBVa4rI/fzKysrijTfeqHOvimuqqRcAAAAA0LwI8Q9i77zzTk5d3cNSTzzxxJz61VdfrXOv//3f/01ed+7cOYYPH77PXqWlpXUO19euXRvvvvtuUp900klVjhs2bFh06tQpqV977bU6bxP0t7/9Laf+whe+UOW4hvj8Kp4zePDgKr+YAAAAAACaHyH+Qaq4uDjn7u4+ffrkPOy1oiFDhkS3bt2Sevbs2bF169Za91qzZk288sorST169Oho0aLqv1r5gfdjjz1W6z4REY8//nhOGF9diF9QUBCf+9znknrFihU5XzTUxhNPPJG87tmzZwwaNKjKcZ/73OeisLCw2jnuy8KFC3O+cKluTQAAAABA8yPEP0jdddddUVZWltT54XlFmUwmvvzlLyf19u3b6xSuP/zww7F79+6kPuuss6ode/zxx+ds6/Pss89W+cDdqpSWlsajjz6a1P3794/jjz++2vFjxozJqe+///5a9YnY88uCivvhjx8/vtqx7du3z/l8V6xYES+88EKtez3wwAPJ64KCgjjjjDNqfS4AAAAAcHAT4qdceXl5nc/585//HL/97W+TukWLFvH1r3+9xnPOP//8nLvJZ86cGWvWrNlnrw8//DBmzZqV1Mccc0wcd9xx1Y5v1apVTJo0Kal37twZP/rRj/bZJyJi1qxZOQ/dveiii6KgoKDa8V/60pdy9uCfPXt2/OUvf9lnn9LS0rj++uuTul27djlzrsqFF16YU8+YMaNWD7idO3duPP7440n9la98Jfr377/P8wAAAACA5kGIn3Ljxo2r0x7rjz32WHz3u9/NuTN+3LhxceSRR9Z4Xr9+/eLUU09N6s2bN8e0adNi06ZN1Z6zbt26mDp1auzcuTM5NmXKlH3OccKECdG+ffukfuaZZ+Luu++u8Zw5c+bE7bffntR9+/aN008/vcZzWrRoEd/61rdyjk2fPj3efPPNas8pKyuLK6+8Mt5+++3k2MSJE3P216/KqFGjYtSoUUm9fPny+P73v5/zYNx87733Xvznf/5nsvVOYWFhfPvb366xDwAAAADQvAjxU27JkiUxceLEGD9+fDzyyCPx0UcfVRqzbdu2eO6552LSpEnxgx/8IOcO8KFDh8ZVV11Vq16XX355Tlg9f/78OOuss+KZZ57J+VKgrKwsnnzyyTj77LNzAvFx48bF6NGj99mnU6dOcfnll+ccu+mmm+J73/teTngesedBtj/96U9j2rRpUVJSEhF7wvkZM2ZEUVHRPnuNGzcuRowYkdTr1q2LCRMmxL333ltp3/+5c+fGN77xjXjyySeTY0cccURccskl++wTEXH11VdHy5Ytk3rOnDkxYcKEeOmll3LG7dq1K+6///4499xzY+XKlcnxiy++OAYOHFirXgAAAABA85DJ1uUJnHzijjrqqErHDjnkkDjkkEOiVatWsWnTpli5cmXO/vd7HX300fHLX/4yunbtWut+L7/8ckyePLnS9dq0aRP9+vWLbDYbH330Uc7d9xERI0eOjF/96lfRqlWrWve64oorcraS2atbt27Rs2fP2LBhQ6xevbrSlkJXX331PrcHqmj16tUxfvz4StsDtWzZMnr37h3t27ePFStWVPrVQbdu3eLBBx+s0/Y2jz76aJVfmrRv3z769esXO3fujBUrVkRpaWnO+2PGjIlbbrklMplMrXs1lpKSkvj73/9e6fjQoUNr9cVKQ5t83aOxZVv1v3gA0qVDu1Zx1zVnNvY0AAAAoMkQ4qdcVSH+vhQWFsZ5550Xl112Wc6d4bX14osvxuWXXx5btmyp1fgxY8bEjTfeGG3atKlTn927d8f1118fDz74YK3Gt2nTJq655poYO3ZsnfpE7Nm7f/LkyfHuu+/WavxRRx0Vt912Wxx66KF17vXoo4/Gddddl/xyoCaZTCa+/vWvx/Tp02vc3z9NhPjA/hDiAwAAQN0UXHvttdc29iSo3vDhw6O4uDhWr16ds6VNVXr37h1nnXVW3HzzzXHKKafUOxQeMGBAnH766bF58+Z49913q+07bNiwuOaaa+KSSy6p15cFLVq0iC984QsxbNiw+OCDD+Ljjz+uclzr1q3ja1/7Wtxyyy01PjS3Jp06dYrx48dHy5Yt4+233672obN9+/aN73znO/GjH/0ounTpUq9eQ4YMiVNOOSXWrl0bH3zwQZUPJ27RokWccMIJ8eMf/zjOOeecaNGi6exstXv37iofetyzZ89G+SLiqRcXR0lpzf82gPRoVVQYp31hSGNPAwAAAJoMd+I3ETt27IilS5fGBx98EMXFxbFz585o0aJFdOzYMbp27RpDhgyJfv36NXjfbdu2xeuvvx7vvfdebNu2LVq3bh29e/eOYcOGRZ8+fRq01/Lly2PBggWxevXqKCsri44dO8Zhhx0WI0aMqPNd/jXZvXt3LFiwIJYuXRobN26MgoKC6N69ewwePDgGDRrUYH0iIjZs2BCvv/56LF++PHbs2BFt27aNfv36xYgRI+KQQw5p0F6fFHfiA/vDnfgAAABQN0J8oE6E+MD+EOIDAABA3TSdPTwAAAAAAKCZEeIDAAAAAEBKCfEBAAAAACClhPgAAAAAAJBSQnwAAAAAAEgpIT4AAAAAAKSUEB8AAAAAAFJKiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEoJ8QEAAAAAIKWE+AAAAAAAkFJCfAAAAAAASCkhPgAAAAAApJQQHwAAAAAAUkqIDwAAAAAAKSXEBwAAAACAlBLiAwAAAABASgnxAQAAAAAgpYT4AAAAAACQUkJ8AAAAAABIKSE+AAAAAACklBAfAAAAAABSSogPAAAAAAApJcQHAAAAAICUEuIDAAAAAEBKCfEBAAAAACClhPgAAAAAAJBSQnwAAAAAAEgpIT4AAAAAAKSUEB8AAAAAAFJKiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEoJ8QEAAAAAIKWE+AAAAAAAkFJCfAAAAAAASCkhPgAAAAAApJQQHwAAAAAAUkqIDwAAAAAAKSXEBwAAAACAlBLiAwAAAABASgnxAQAAAAAgpYT4AAAAAACQUkJ8AAAAAABIKSE+AAAAAACklBAfAAAAAABSSogPAAAAAAApJcQHAAAAAICUEuIDAAAAAEBKCfEBAAAAACClhPgAAAAAAJBSQnwAAAAAAEgpIT4AAAAAAKSUEB8AAAAAAFJKiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEoJ8QEAAAAAIKWE+AAAAAAAkFJCfAAAAAAASCkhPgAAAAAApJQQHwAAAAAAUkqIDwAAAAAAKSXEBwAAAACAlBLiAwAAAABASgnxAQAAAAAgpYT4AAAAAACQUkJ8AAAAAABIKSE+AAAAAACklBAfAAAAAABSSogPAAAAAAApJcQHAAAAAICUEuIDAAAAAEBKCfEBAAAAACClhPgAAAAAAJBSQnwAAAAAAEgpIT4AAAAAAKSUEB8AAAAAAFJKiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEoJ8QEAAAAAIKWE+AAAAAAAkFJCfAAAAAAASCkhPgAAAAAApJQQHwAAAAAAUkqIDwAAAAAAKSXEBwAAAACAlBLiAwAAAABASgnxAQAAAAAgpYT4AAAAAACQUkJ8AAAAAABIKSE+AAAAAACklBAfAAAAAABSSogPAAAAAAApJcQHAAAAAICUEuIDAAAAAEBKCfEBAAAAACClhPgAAAAAAJBSQnwAAAAAAEgpIT4AAAAAAKSUEB8AAAAAAFJKiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEoJ8QEAAAAAIKWE+AAAAAAAkFJCfAAAAAAASCkhPgAAAAAApJQQHwAAAAAAUkqIDwAAAAAAKSXEBwAAAACAlBLiAwAAAABASgnxAQAAAAAgpYT4AAAAAACQUkJ8AAAAAABIKSE+AAAAAACklBAfAAAAAABSSogPAAAAAAApJcQHAAAAAICUEuIDAAAAAEBKCfEBAAAAACClhPgAAAAAAJBSQnwAAAAAAEgpIT4AAAAAAKSUEB8AAAAAAFJKiA8AAAAAAClV2NgTIN1WrlwZCxcujFWrVsXOnTujffv2MWDAgBgxYkS0b9++wfqUl5fHokWL4q233ooNGzZERETXrl1j0KBB8elPfzoymUyD9dq8eXPMnz8/Pvjgg9i2bVu0bt06+vTpE8OHD4+ePXs2WJ+IiPfeey8WLVoUa9asiZKSkujYsWMcccQRMWLEiGjVqlWD9gIAAAAADj5C/IPIf/3Xf8XDDz+cc+zGG2+McePG1flac+bMibvvvjveeOONKt8vKiqKMWPGxNSpU+PQQw+t13wjIrZu3Rr33ntvPPTQQ7F+/foqx/Tq1SvOO++8mDhxYrRs2bLevd5888247bbb4oUXXojS0tJK72cymfjsZz8bU6dOjWOPPbbefbLZbDz22GNxzz33xLJly6oc07Zt2xg3blxMmTIlunbtWu9eAAAAAMDBzXY6B4m//e1v8cgjj+z3dbZv3x7Tpk2LKVOmVBvgR0SUlJTEE088EV/72tfi2WefrVevhQsXxmmnnRa33XZbtQF+RMTq1avjJz/5SZx99tnx8ccf16vXnXfeGWeccUbMnj27ygA/Yk/4/uqrr8akSZPiZz/7WWSz2Tr3KS4ujokTJ8b06dOrDfAj9nzOv/vd7+LUU0+N1157rc59AAAAAIDmQYh/ENixY0dcffXV9QqdK9q5c2d885vfjD/+8Y85xwsLC6N///5x1FFHRdu2bXPe2759e1x22WUxe/bsOvWaN29eTJo0KVauXJlzvF27djFo0KDo169fFBQU5Lz3j3/8IyZOnBjFxcV16jVjxoy45ZZboqysLDmWyWSiR48e8elPfzo6d+6cMz6bzcYvf/nLmDFjRp36FBcXx7nnnlsplC8qKorDDjss/uVf/iWKiooqnXPBBRfEggUL6tQLAAAAAGgebKdzELjlllviww8/jIiI7t27x9q1a+t1nauuuirmz5+f1J07d46LL744zjrrrCS8z2azMXv27Lj55pvj/fffj4g9+9lfccUVMXjw4FptrbNmzZq45JJLYseOHcmxESNGxKWXXhonnHBCcmzjxo1x3333xaxZs5K75z/44IP4wQ9+EHfffXet1vTII4/Er3/966QuKCiICRMmxAUXXBC9evVKji9atChuvvnm+Otf/5oc+81vfhPHHHNMjBkzZp99ysvLY+rUqclnEhHRp0+fmDJlSpx++unJNkClpaXx+OOPx6233pr877Rr166YNm1aPPXUU9GxY8darQsAAAAAaB7cid/ELViwIH77298m9aRJk+p1nTlz5sRTTz2V1D179owHHnggvvGNb+TcfZ/JZOKUU06JBx98MAYNGpQc3759e63vXL/22muTh9dGRJx66qnx29/+NifAj9jzJcJ3v/vd+PnPf55zB/uLL74Yf/rTn/bZZ/Xq1XHjjTcmdcuWLeOWW26Jq666KifAj4g4+uijY9asWXH66afnHL/hhhti586d++z1m9/8JubOnZvURx55ZDz88MNx5pln5uzj37Jlyxg/fnw88MAD0bt37+T4xx9/HDNnztxnHwAAAACgeRHiN2ElJSVx5ZVXRnl5eUREjB49OoYNG1bn6+zevTt++tOfJnUmk4mZM2fGEUccUe05Xbt2rRSuP//88/Hmm2/W2Gvu3Lnx3HPPJfWRRx4Z//3f/13jA2v/7d/+LS6++OKcY7fffnuNfSIiZs6cGdu3b0/qSy+9NE455ZRqx7do0SJuuOGGnHWvXbt2n88a2LJlS9xxxx1J3aZNm7jjjjuiR48e1Z7Tv3//+NnPfpZz7OGHH67x2QAAAAAAQPMjxG/CbrvttnjnnXciYs82MZdddlm9rvP888/nbAMzfvz4GD58+D7P69+/f5x//vk5xx566KEaz7nnnnty6uuuuy4KC/e9q9OFF14Yffv2TerFixfHwoULqx2/bt26ePLJJ5N64MCBleZalZYtW8aVV16Zc2xfa/r9738fGzduTOpvf/vb0a9fv332GjVqVHz1q19N6pKSkvjDH/6wz/MAAAAAgOZDiN9ELV68OGbNmpXU559/fhx99NH1utbvf//7nPq8886r9blnn312ZDKZpP7Tn/6U/DIg3/r16+PFF19M6qFDh8YxxxxTqz5FRUUxbty4nGPPPvtsteP/53/+J9lHPyLiP/7jP2r1ZUHEnl80VNzb/5133olly5ZVO77i51dUVBTnnnturfpERJxzzjk5df5DhQEAAACA5k2I3wSVlZXFlVdeGWVlZRERMWDAgJg2bVq9rrV169ach7kOHTo0Bg4cWOvz+/btGyNHjkzqdevWxeLFi6sc+9xzz8Xu3buTeuzYsXWaa/5+9S+99FK1YyuG4UVFRTl3vNfGaaedllP/5S9/qXLc+++/H0uXLk3qk08+OTp16lTrPqNGjYo+ffok9aJFi6K4uLhOcwUAAAAADl5NMsR/7bXXkj8rVqxo0GsvWrQouXZNd183prvvvjuWLFkSEXv2r7/hhhuiVatW9brW66+/HiUlJUl90kkn1fkaxx9/fE49b968Kse98sorOXVdex166KE5W+q8/fbbsXnz5krjtm3blrPVzvDhw+sUrEd8cmvKZDJx3HHHJXU2m4358+fX6RoAAAAAwMGrSYb4EydOjEmTJsWkSZPi0UcfbdBrP//888m1v/nNb1a7NUxjWbZsWc5DXSdMmBCjRo2q9/XyA+P6PBj3M5/5TE699wuGmnp17969VvvG5xs6dGjyOpvNxltvvVVpzMKFC3Pu+K/Pmo4++uho0eKf/zxqs6b69qq4ppp6AQAAAADNT5MM8SP2BLgHwle+8pXIZrORzWZj7dq18dprrx2QPvVRXl4eV155ZbLXe9++fePyyy/fr2u++eabOXV+IF8b+Xvxv/vuu5XGbNy4MVavXl3tOfXttffBvhU1xJratWsXhx12WFKvWLEidu7cWWOvDh06xOGHH17nXvkhflWfHwAAAADQPDXZEL/iw1Qb0t7tWvZe/6OPPjogferjvvvuizfeeCOpr7/++mjbtu1+XbNiYNyhQ4fo3Llzna9xyCGH5GznU9UWR/lhe8UHx9ZFxf3jIyJWrlx5wHr17t07eZ3NZmPVqlU572ez2XjvvfeSum/fvvX6e1mxT0TVawIAAAAAmqcmG+IfKNu2bcup169f30gzyfXBBx/ErbfemtRnnHFG/Ou//ut+XTM/mM4Pk+uiR48eyev169fnbGcTUTmYrm+vnj175tRr1qypNCa/V69evQ5IrzVr1iS/ioio/5oOOeSQaNmyZbV9AAAAAIDmS4if529/+1tE/HO7ntatWzfmdCJiz1x++MMfJtu59OjRI6ZPn77f192wYUPOQ23zQ+u6qHhueXl5bNmyJef9/GC6oYL1jRs3VhpTsVfr1q2jS5cuDdJr06ZN1fapanxttWjRIrp165bUVa0JAAAAAGieCht7AmmyfPnyuPnmmyOTySQhfv72LY3hgQceiFdffTWpr7322ujQocN+X3fz5s059f5cs02bNjn1li1bcrbmye/Vvn37BumzdevWSmMqhu317VNVr/wvJg7U57d9+/YoLy/PebBuU1BWVnbAtrmqqOKvFoCDQ8VfNQEAAEAapCmDSmWI/8QTT9T6wbVvvfVWPP744/XuVVpaGsXFxfH3v/89XnrppZw70wsKCuKzn/1sva/dEFauXBk33XRTUp966qnxxS9+sUGunR9KV9zXvq7yz634OTZkr331icgN9pvCmvLPzWazUVpaul/XawxLliw54D0KCwtj2LBhB7wP8MlavHhxlJWVNfY0AAAAIDFy5MjGnkIilSH+ww8/HPPnz69xzN6Q/4UXXogXXnihQfpms9nkTuJMJhNjx46NTp06Nci16+vqq69O9unv0qVL/PCHP2ywa+ff+VhUVFTva+UHzvlhTH6vhgrxqwp9KvZqCmuq6tymGOIDAAAAAA0vlft1fPnLX05C+mw2W+lPRVW9X58/EZEE+NlsNo488si44oorPtmF5/nDH/4QL7/8clJfffXV0bVr1wa7fv7DZ/cn8C4sLKyxzg/A6/tzlH31ye+1Pz972Vev/M+vIXul6ec6AAAAAEDjSW2I36JFi1pvqdMQ9ob5RUVFce6558YDDzywX/up7681a9bEj3/846Q++eST49RTT23QHvlBcVVb09TW3ofu7tWuXbsae9V3/+P8Pm3btq00pmKv/dlnedeuXTX2aqg1ReSuq6CgwF34AAAAAEBEpHQ7nR49esRFF10UH3/8cZXvP/bYY8ld80ceeWQMGTJkv/q1bds2OnfuHIMHD45jjz02OnbsuF/XawjXXXdd8oDWjh07xnXXXdfgPfJD6f0J8fPPzX8obH6onx+Q11b+efl9Ivasa+989mdN+wrx8+v6rikid55VrakpGDx4sF8QAPWyv/8/DgAAAAezVIb4ERHf/e53q33vscceS16ffPLJcemll34SU/rEPPPMMzFnzpykvuKKK6JHjx4N3ic/LN6fEDr/Dvn8azdUr30F63uPbdy4cb/6RHxya8rv1VRD/MLCQiE+UC/+2wEAAADVS+V2Os1ZcXFxXH/99Un9r//6r3HmmWcekF75d8cXFxfX+1rr169PXnfq1KnS/vr5YXt9e1XsExHRrVu3SmMq9tq0aVOUl5fXq1f+HPN7NdSaInLX1b1793pfBwAAAAA4uKT2Tvzm6qabbsoJg//617/GUUcdVe/rTZ8+PaZPn57Uffv2jeeffz4iIrp06RJt2rSJHTt2RETEqlWr6t1n9erVyesBAwZUer9Pnz45dX175Z9XVa/evXvHsmXLImLPPvVr166Nnj177levTCZTqVdDrWnLli2xbdu2pK5qTQAAAABA89Rk78Tf+yDag82HH374ifXKZDLRv3//pF61alW9PtNt27bF5s2bk7qqEDr/WH0D74pfFtS218qVK+vVq+Ice/XqFa1bt855v1u3btGhQ4cG7RMhxAcAAAAA/qlJ3ol/4403Jq8HDRrUiDNp+gYMGBBvvfVWROx5uOr7778fhx12WJ2usWTJkpz68MMPr7JPRUuXLq3bRP+/xYsX77NX/vyXLl0aI0aMUIOTiQAAIABJREFUqFOf0tLS5G7+6vpERHzqU5+KRYsWRUTERx99FDt27Kjznva1WRMAAAAA0Dw1yRB/7NixjT2FA+aKK67Iuau9rl5++eW45557kvqCCy6I0aNHJ3WrVq1yxg8ZMiT++Mc/JvW8efPqHOLPnz8/pz722GMrjWnbtm0MGDAg3n///YiIWLRoUZSUlFTaO39fFixYkLweMGBAldvkDB48OKeeN29enH322XXqs2TJkpwH1Va1pog9n9/eEL+srCzeeOONOP744+vUq+KaauoFAAAAADQ/TTLEP5gdffTR+3V+/nYzAwcOjM997nPVjj/xxBPjlltuSepXX301zjjjjDr1/N///d/kdefOnWP48OHV9tob4peWlsa8efPqFHivXbs23n333aQ+6aSTqhw3bNiw6NSpU2zatCkiIl577bXIZrORyWRq3etvf/tbTv2FL3yhynEnnnhiPPLII0n96quv1jnEf/XVV5PXgwcPrtf+/QAAAADAwanJ7olPwxgyZEh069YtqWfPnh1bt26t9flr1qyJV155JalHjx4dLVpU/dfqxBNPzKkfe+yxOs318ccfz9mzv7oQv6CgIOeLixUrVuR80VAbTzzxRPK6Z8+e1W7b9LnPfS4KC//5XVj+HPdl4cKF8c477yR1dWsCAAAAAJonIX4zl8lk4stf/nJSb9++vU7h+sMPPxy7d+9O6rPOOqvasccff3x06dIlqZ999tlYv359rfqUlpbGo48+mtT9+/ev8Y73MWPG5NT3339/rfpE7PllQcX98MePH1/t2Pbt2+d8ObFixYp44YUXat3rgQceSF4XFBTU+VcQAAAAAMDB7aDZTmfr1q3x+uuvxz/+8Y9Yvnx5bN26NbZu3ZoTMNdVJpOJX//61w04y3Q6//zz46GHHoqysrKIiJg5c2accsop0aNHjxrP+/DDD2PWrFlJfcwxx8Rxxx1X7fhWrVrFpEmT4tZbb42IiJ07d8aPfvSjnO18qjNr1qxkK56IiIsuuigKCgqqHf+lL30pZw/+2bNnx1/+8pf4/Oc/X2Of0tLSuP7665O6Xbt2MWnSpBrPufDCC3OC+xkzZsQJJ5ywzwfczp07Nx5//PGk/spXvhL9+/ev8RwAAAAAoHlp8iH+smXL4s4774w5c+bkPIh0f9V1D/WmrF+/fnHqqacmW8hs3rw5pk2bFnfddVd06tSpynPWrVsXU6dOjZ07dybHpkyZss9eEyZMiHvuuSfZsueZZ56JwYMHx0UXXVTtOXPmzInbb789qfv27Runn356jX1atGgR3/rWt+Kqq65Kjk2fPj3uueeearfGKSsriyuvvDLefvvt5NjEiROr/Qz2GjVqVIwaNSrmzp0bERHLly+P73//+3HzzTdXepDwXu+9917853/+Z7L1TmFhYXz729+usQ8AAAAA0Pw06e107rrrrhg7dmw8/fTTsXPnzshms8kf6ubyyy/PCavnz58fZ511VjzzzDM5v2YoKyuLJ598Ms4+++x48803k+Pjxo2L0aNH77NPp06d4vLLL885dtNNN8X3vve9nPA8Ys+DbH/605/GtGnToqSkJCL2hPMzZsyIoqKiffYaN25cjBgxIqnXrVsXEyZMiHvvvbfSvv9z586Nb3zjG/Hkk08mx4444oi45JJL9tknIuLqq6+Oli1bJvWcOXNiwoQJ8dJLL+WM27VrV9x///1x7rnnxsqVK5PjF198cQwcOLBWvQAAAACA5iOTbaKJ98yZM+OOO+5IAvuKd8031JIymUwsWbKkQa71SfnDH/4Q06dPT+obb7wxxo0bV6tzX3755Zg8eXKyrc5ebdq0iX79+kU2m42PPvoo5+77iIiRI0fGr371q2rvOq/KFVdckbOVzF7dunWLnj17xoYNG2L16tVRXl6e8/7VV18dX//612vdZ/Xq1TF+/PhYs2ZNzvGWLVtG7969o3379rFixYrYtGlTpXk8+OCDddre5tFHH82583+v9u3bR79+/WLnzp2xYsWKKC0tzXl/zJgxccsttzSZX36UlJTE3//+90rHhw4dWqsvVxra5OsejS3bGu5XOMCB1aFdq7jrmjMbexoAAADQZDTJ7XTmzp0bt99+e2QymST43Bvcd+7cOYYPHx5HHHFEdO7cOdq2bVvj3un80+jRo+P222+Pyy+/PLZs2ZIc37FjR6W75PcaM2ZM3HjjjXUK8CP27Bvfpk2bePDBB3OOr1u3LtatW1dpfJs2beKaa66JsWPH1qlPr1694v7774/JkyfHu+++mxwvLS2NDz/8sMpzjjrqqLjtttvi0EMPrVOvM8/cE0pdd911yS8HIvY8r6Hirxb2ymQy8fWvfz2mT5/eZAJ8AAAAAOCT1SRD/JtuuimnzmazMWTIkLj00ktj9OjRQvv9cNJJJ8XTTz8dt956azz11FPVPmdg2LBhMXny5PjiF79Yrz4FBQVx7bXXxsknnxw///nPY+HChVWOa926dXzlK1+JSy65pM6h+l79+/ePxx9/PGbNmhW/+93vori4uMpxffv2jUmTJsWECRNytsapizPPPDNGjBgR/+f//J94/vnnK/2qIWLPlkDHH398TJkyJUaNGlWvPgAAAABA89DkttNZt25dnHjiiRHxz4fPnn766TFjxoxo0aJJb/GfOtu2bYvXX3893nvvvdi2bVu0bt06evfuHcOGDYs+ffo0aK/ly5fHggULYvXq1VFWVhYdO3aMww47LEaMGBFt2rRpsD67d++OBQsWxNKlS2Pjxo1RUFAQ3bt3j8GDB1f7wNv62rBhQ7z++uuxfPny2LFjR7Rt2zb69esXI0aMiEMOOaRBe32SbKcD7A/b6QAAAEDdNLk78V9//fUkvI+IGDhwYNxwww0C/AOgXbt28fnPfz4+//nPH/Behx56aL3vtK+LgoKCGDlyZIwcOfKA9+rSpUv8+7//+wHvAwAAAAAcvJpc8r13v/S9Qf6kSZNsnwMAAAAAwEGpyYX4FR+4GhFx/PHHN9JMAAAAAADgwGpyIX67du1y6u7duzfSTAAAAAAA4MBqciH+pz71qZx6+/btjTQTAAAAAAA4sJpciD98+PAoLPzn83jff//9xpsMAAAAAAAcQE0uxO/YsWOcdNJJST1nzpxGnA0AAAAAABw4TS7Ej4iYMmVKFBQURETEQw89FB9//HEjzwgAAAAAABpekwzxhwwZEhdffHFks9nYsWNHfO9734udO3c29rQAAAAAAKBBNckQPyLiO9/5Tpx77rmRzWZj3rx5cf7558eqVasae1oAAAAAANBgmmyIHxFxzTXXxNVXXx2tW7eOBQsWxGmnnRY33XRTLF++vLGnBgAAAAAA+62wsSdQH5dffnlOffjhh8c//vGP2Lp1a8yaNStmzZoVPXv2jAEDBkSnTp2isLD+y7zpppv2d7oAAAAAAFAvTTLEf/rppyOTyeQc21tns9mIiFi9evV+PfA2m81GJpMR4gMAAAAA0GiaZIhfk/xwHwAAAAAAmqomG+LvveMeAAAAAAAOVk0yxP/Od77T2FMAAAAAAIADTogPAAAAAAAp1aKxJwAAAAAAAFRNiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEoJ8QEAAAAAIKWE+AAAAAAAkFJCfAAAAAAASKnCxp5AfZxzzjmfWK+HHnroE+sFAAAAAAAVNckQf8GCBZHJZA5oj2w2e8B7AAAAAABATZpkiN+QstlsTi24BwAAAAAgLZpsiJ8fvtdXxdA+m8022HUBAAAAAGB/NckQ/8Ybb6z3ubt3747NmzfHihUrYu7cufHWW29FxJ4wv0ePHjF58uRo27ZtQ00VAAAAAADqrUmG+GPHjm2way1evDhmzpwZf/7zn2Pt2rUxa9asmDlzZgwdOrTBegAAAAAAQH20aOwJNLYhQ4bEnXfeGVdeeWVERKxatSomTZoU8+fPb+SZAQAAAADQ3DX7EH+vSZMmxWWXXRYRETt27Ihp06bFhg0bGnlWAAAAAAA0Z0L8Cr71rW/F4MGDIyJi3bp1ceeddzbyjAAAAAAAaM6E+BVkMpk455xzIiIim83G73//+ygtLW3kWQEAAAAA0FwJ8fMcd9xxyett27bFggULGnE2AAAAAAA0Z0L8PD169IiIPXflR0QsW7asMacDAAAAAEAzJsTPk799zubNmxtpJgAAAAAANHdC/DwrVqzIqVu1atVIMwEAAAAAoLkT4ud58cUXI2LPg20jIjp37tyY0wEAAAAAoBkT4lewadOm+PWvf53shx8RMXDgwEacEQAAAAAAzZkQ///bsmVLTJ48OTZu3Jgc69SpUxx99NGNOCsAAAAAAJqzwsaeQGPbsmVLPP300/GLX/wi1q9fH5lMJrLZbGQymTjjjDMae3oAAAAAADRjTTLE/8UvflHvc7PZbGzfvj02btwYS5cujaVLl0ZZWVmyB/7erXQ6d+4ckydPbpD5AgAAAABAfTTZEL/ivvX1tTe4j/hneJ/NZqNNmzZx1113RceOHfe7BwAAAAAA1FeT3hM/m83W689emUwm+bP3vUGDBsWDDz4Yn/nMZxpxZQAAAAAA0ETvxI/IvYt+f88tLCyM4447LsaNGxennHJKFBY22Y8FAAAAAICDSJNMq7/zne/s1/lFRUXRrl276NChQxx++OFx5JFHRlFRUQPNDgAAAAAAGkazDPEBAAAAAKApaNJ74gMAAAAAwMFMiA8AAAAAACklxAcAAAAAgJQS4gMAAAAAQEo1mxA/m8029hQAAAAAAKBOCht7Ag1t1apV8corr8S8efNi8eLFUVxcHJs2bYpdu3ZFu3btonPnztGzZ88YOXJkHHfccfHZz342ioqKGnvaAAAAAABQyUET4s+fPz/uvffeeP7556O8vDwiKt99v/X/sXfn4VGVd//HP5ONJCQkhEDCKpsYNiEsSn1wwdoKUh4qCoqAlkUEEWirFND6KFWgj6goVLQIWvERRUEtUrUQsSBiVWQJGBbZBAIhJCFkI8wkmd8f+XGaMzNJZsJIziTv13Vxdb5n7nO+9z2tXPUzZ+5TUKCCggKlp6dr+/btevXVV9WkSRONHTtWI0eOVGRkZG1MHQAAAAAAAAAAjwJ+Ox273a6nnnpK99xzj1JSUlRaWmqE9zabzeMfqTzgdzqdysrK0rPPPquBAwdq27ZttbkUAAAAAAAAAABMAjrEP3funO666y6tXLnSCOUvBvUX68r+SDKNzczM1G9+8xutWLGillcFAAAAAAAAAEC5gN1Ox263a8qUKdq7d68kme6wj4uL00033aTu3burQ4cOio6OVsOGDVVUVKT8/HwdOXJEqamp+te//qWsrCzj3JKSEs2fP1+NGjXSr3/961pbGwAAAAAAAAAAUgCH+M8995y2bdtmCu8TExM1Y8YM/fKXv1RoaGil5/bt21cjRoxQSUmJ/vnPf2rBggXKyMgw7sp//PHH1a5dO/Xo0eNyLQcAAAAAAAAAADcBuZ1Oenq6Vq5caYTuknTTTTdp3bp1Gjx4cJUBfkUhISEaPHiw1q1bpxtvvNHYjsfhcGju3Lk/5RIAAAAAAAAAAKhWQIb4y5Ytk8PhkFS+jU7fvn21ePFiRUVF1eh6UVFRWrx4sfr06WN8KbB7926lpKT4bc4AAAAAAAAAAPgqIEP8TZs2GXfhh4SEaO7cuV7ffV+ZsLAwPf300woJCTG26Fm9erU/pgsAAAAAAAAAQI0EXIh/+PBhnTx5UlL5XfiDBw9W69at/XLttm3b6rbbbpPT6ZTT6dTXX39t3PEPAAAAAAAAAMDlFpAhviRj25sbb7zRr9e/6aabjNfFxcXatWuXX68PAAAAAAAAAIC3Ai7Ez8nJMdVdu3b16/UvXu/iljqZmZl+vT4AAAAAAAAAAN4KuBA/NzfXVMfFxfn1+k2aNDHV2dnZfr0+AAAAAAAAAADeCrgQPzw8/LL2O3/+/GXtBwAAAAAAAADARQEX4rveee/vO+Vdt+uJjY316/UBAAAAAAAAAPBWwIX4rtvd7Nu3z6/Xv3i9iw/O9fd2PQAAAAAAAAAAeCvgQvzu3bsrJCTEePDsxo0b/Xr9zz//3FS3b9/er9cHAAAAAAAAAMBbARfiR0VF6eqrr5bT6ZTT6dQnn3yi48eP++XaJ06c0D/+8Q/jC4LmzZsT4gMAAAAAAAAAak3AhfiSdMstt0iSbDabHA6HnnzySZWVlV3SNcvKyjRnzhzZ7XY5nU7ZbDYNGDDAH9MFAAAAAAAAAKBGAjLEv+eeexQfHy+pfO/6rVu3avbs2SotLa3R9ZxOp/7nf/5HX3zxhXEXfkhIiMaNG+e3OQMAAAAAAAAA4KuADPHDw8M1efJk4455p9OptWvXauTIkTp06JBP1zp+/LhGjRqlNWvWGNey2WwaMWKEWrZs+ROtAAAAAAAAAACA6oXU9gRqatSoUdq2bZs++eQTI3xPTU3VkCFDdP3112vo0KHq3bu3EhIS3M7Nzc3V9u3btXbtWqWkpKi0tNQI7202m5KSkjRjxoxaWBUAAAAAAAAAAP8RsCG+JP35z3/WqVOntHPnTmMbnLKyMm3evFmbN2+WJMXExCgmJkbR0dEqLi5Wbm6ucnJy5HQ6Jcn4z4tfBCQmJuqVV15ReHh47SwKAAAAAAAAAID/LyC307moQYMGWrFihUaMGGEK46XycN7pdCo3N1c//vij9uzZo4MHDyorK0tlZWXG+xfvvnc6nerVq5fee+89j3fvAwAAAAAAAABwuQV0iC9JYWFh+tOf/qS//OUvSkpKcgvnq/ojlYf9MTEx+v3vf68VK1aoadOmtbwiAAAAAAAAAADKBfR2OhXdcsstuuWWW7RlyxZ9+umn+vbbb/Xjjz9WOj4iIkK9e/fWgAEDNGzYMEVERFzG2QIAAAAAAAAAUL06E+Jf1L9/f/Xv31+SlJWVpVOnTik3N1d5eXkKDQ1VbGysGjdurHbt2ikkpM4tHwAAAAAAAABQh9TpFDs+Pl7x8fG1PQ0AAAAAAAAAAGok4PfEBwAAAAAAAACgriLEBwAAAAAAAADAogJyO52vvvpKzzzzjFE3b95cS5YsuaRrZmdna8aMGSopKZEkde7cWbNnz76kawIAAAAAAAAAcCkCMsR/6623tHfvXkmSzWbTxIkTL/maTZo0UVJSkl577TVJ0rfffqshQ4aoW7dul3xtAAAAAAAAAABqIuC207Hb7fryyy9ls9kkSa1atdKgQYP8cu1JkyYpIiLCuPY777zjl+sCAAAAAAAAAFATARfip6Wl6fz585LK78IfOnSo367dqFEjDR48WE6nU06nUxs2bFBZWZnfrg8AAAAAAAAAgC8CLsQ/evSoJMnpdEqS+vbt69fr9+/f33idl5enQ4cO+fX6AAAAAAAAAAB4K+BC/LNnz5rqtm3b+vX6Xbt2lSRjS539+/f79foAAAAAAAAAAHgr4EJ8u91uqmNjY/16/SZNmpjqnJwcv14fAAAAAAAAAABvBVyIHxMTY6oLCgr8en3XPfAv7r8PAAAAAAAAAMDlFnAhflxcnKk+ffq0X6+fnZ1tqqOiovx6fQAAAAAAAAAAvBVwIX5iYqKk/+xZ/9VXX/n1+mlpaZL+8+Bc1y8NAAAAAAAAAAC4XAIuxO/WrZsaNWokqTxo//jjj/16/U2bNpnqNm3a+PX6AAAAAAAAAAB4K+BC/KCgIPXr18+4Uz4tLU2ffPKJX6598uRJffzxx8Zd/rGxseratatfrg0AAAAAAAAAgK8CLsSXpNtvv11S+ZY6TqdTc+fOVXp6+iVd0+l06umnn5bdbpfT6ZTNZtP111/vj+kCAAAAAAAAAFAjARniDxgwQD179pRUHuRnZWVp/PjxlxTkz58/Xxs3bjTuwrfZbBo3bpxf5gsAAAAAAAAAQE0EZIgvSX/4wx8UHBwsqTxwP3r0qH79619r3bp1Pl3nzJkzuv/++/Xmm28ad/bbbDYNGjRISUlJP8XUAQAAAAAAAADwSsCG+L169dIf//hHY298m82m/Px8zZgxQ4MGDdKKFSt04MABj+cWFBToiy++0KOPPqqf//zn2rJli+k6rVu31uOPP37Z1gIAAAAAAAAAgCchtT2BS3H33XcrIyNDr7zyimw2m3En/ZEjRzR//nxJUkREhOLi4hQTEyO73a5z584pOztbZWVlkmQK751Op2JjY/XXv/5VsbGxtbYuAAAAAAAAAACkAA/xJem3v/2tOnXqpD/+8Y8qKioy9rS/GM4XFRWpqKhIJ06c8Hh+xfFJSUlavHixWrdufXkmDwAAAAAAAABAFQJ2O52KbrvtNv3973/Xf//3fys4ONh0d31Vf6Ty8D4iIkL333+/Vq1aRYAPAAAAAAAAALCMgL8T/6LWrVvrmWee0fTp0/X+++/r3//+t1JTU+VwODyODwkJUc+ePXXDDTforrvuUkxMzGWeMQAAAAAAAAAAVaszIf5FLVu21NSpUzV16lQVFxfr2LFjys3N1dmzZ1VaWqqYmBjFxcWpbdu2ioiIqO3pAgAAAAAAAABQqToX4lcUHh6uTp061fY0AAAAAAAAAACokTqxJz4AAAAAAAAAAHURIT4AAAAAAAAAABZFiA8AAAAAAAAAgEUR4gMAAAAAAAAAYFGE+AAAAAAAAAAAWBQhPgAAAAAAAAAAFkWIDwAAAAAAAACARRHiAwAAAAAAAABgUYT4AAAAAAAAAABYFCE+AAAAAAAAAAAWRYgPAAAAAAAAAIBFEeIDAAAAAAAAAGBRhPgAAAAAAAAAAFgUIT4AAAAAAAAAABZFiA8AAAAAAAAAgEUR4gMAAAAAAAAAYFGE+AAAAAAAAAAAWBQhPgAAAAAAAAAAFkWIDwAAAAAAAACARRHiAwAAAAAAAABgUYT4AAAAAAAAAABYFCE+AAAAAAAAAAAWRYgPAAAAAAAAAIBFEeIDAAAAAAAAAGBRIbU9AfgmNzdX+/bt0/Hjx5Wfny+73a6YmBi1aNFCvXr1UnR0tF/7nTx5UqmpqTp16pSKi4sVFRWltm3bKjk5WVFRUX7rU1ZWpj179mj//v06e/asJCkuLk5JSUnq2rWrbDab33rl5eVpx44d+vHHH1VYWKjw8HC1aNFCPXv2VEJCgt/6SNKRI0e0Z88eZWZmym63q1GjRurQoYOSk5PVoEEDv/YCAAAAAAAAUPcQ4geA/Px8vffee/rHP/6hPXv2VDouKChI/fv31/33369rrrnmknqmpKRo6dKl2rVrl8f3w8LCNGjQIE2dOlWtW7eucZ+CggK99tpreuedd5Sdne1xTGJiou677z6NGTNGoaGhNe61b98+vfTSS/r888/lcDjc3rfZbOrbt6+mTp16SZ+f0+nUBx98oOXLl+vgwYMex0RGRmrYsGGaMmWK4uLiatwLAAAAAAAAQN1mczqdztqeBCq3fv16PfbYY8rLy/PpvJEjR2r27Nk+3+1dVFSkWbNm6Z///KdX4yMjIzV//nwNHDjQpz6SlJqaqunTp+vkyZNeje/atatefvnlGt0t/8orr2jx4sUqKSmpdqzNZtOECRP08MMP+/wLgJycHE2bNk3ffvutV+Pj4uK0aNEi9e3b16c+tclut2v37t1ux7t3766wsLDLPp8H5qxWfuGFy94XQM1EN2ygvz5xZ21PAwAAAACAgMGe+BaXmprqFuBHRkaqXbt2uvrqq9WhQwePQf3bb7+t6dOnexVaX1RcXKxx48a5BfghISFq06aNrrrqKkVGRpreKyoq0u9+9zutX7/eh1VJ27dv17333usW4Dds2FBJSUlq1aqVgoODTe99//33GjNmjHJycnzqNW/ePC1cuND0WdhsNjVr1kxdu3ZVbGysabzT6dSrr76qefPm+dQnJydHI0eOdAvww8LC1K5dO1155ZVuIXdOTo7Gjx+vnTt3+tQLAAAAAAAAQP3AdjoBIjw8XMOHD9dtt92mHj16mAJuh8Ohbdu2aenSpdq6datx/PPPP9fixYv1u9/9zqsejz32mHbs2GHUsbGxmjx5skaMGGGE906nU+vXr9fzzz+vo0ePSirfz37mzJnq3LmzV1vrZGZm6sEHH9T58+eNY8nJyZo+fbp+9rOfGcdyc3P1t7/9TcuWLTO2v/nxxx81a9YsLV261Ks1vfvuu3rjjTeMOjg4WKNGjdL48eOVmJhoHN+zZ4+ef/55ffnll8axFStWqFevXho0aFC1fcrKyjR16lTjM5GkFi1aaMqUKRo6dKixDZDD4dCHH36oF198UWfOnJEkXbhwQdOmTdO6devUqFEjr9YFAAAAAAAAoH4IfvLJJ5+s7Umgclu3blWzZs20fPlyDRw4UM2bN1dQkPkHFMHBwWrdurWGDh2q4uJibd++3XgvNTVVd9xxR7UPoU1JSdELL7xg1AkJCXrzzTd18803m/aht9ls6tixowYPHqwvv/xSWVlZksrD6RMnTuhXv/pVtWuaMWOG0tLSjHrw4MFasmSJrrjiCtO48PBw9evXT507d9b69etVWloqqTzIT0pKUocOHarsk5GRoUmTJhlfAISGhur555/X2LFj3T6PZs2aaciQITpx4oT2799vHP/uu+90zz33KCSk6u+73njjDb377rtG3alTJ7355pvq27ev6QuX4OBgde3aVbfccotSUlJUUFAgSSosLFRxcbFuuOGGKvtYQWlpqTIzM92OJyQkuP164nJYtylNdkfpZe8LoGYahIVoyE1dansaAAAAAAAEDLbTsbgxY8boxRdfVHx8fLVjbTabHnnkEXXv3t04ZrfbtWHDhirPKy0t1YIFC0zXWbRoUZUheVxcnBYvXmzaHmbjxo3at29flb22bdumzz77zKg7deqkZ555psoH1g4YMECTJ082HVuyZEmVfSRp0aJFKioqMurp06fr1ltvrXR8UFCQ5s6da1r3mTNnTOG8J/n5+XoPlGTTAAAgAElEQVT55ZeNOiIiQi+//LKaNWtW6Tlt2rTRs88+azq2atWqSh/uCwAAAAAAAKB+IsS3OF8f4mqz2TR69GjTseoesrpx40bTNjDDhw9Xz549q+3Vpk0bjR071nTsnXfeqfKc5cuXm+o5c+ZUe5e7JE2YMEEtW7Y06rS0NKWmplY6PisrS2vXrjXqjh07us3Vk9DQUD366KOmY9Wtac2aNcrNzTXqSZMmqVWrVtX26tOnj+mXC3a7Xe+//3615wEAAAAAAACoPwjx66DevXub6ot7r1dmzZo1pvq+++7zutddd90lm81m1Bs2bFBZWZnHsdnZ2dq0aZNRd+/eXb169fKqT1hYmIYNG2Y69umnn1Y6/qOPPjK20ZHk1ZY4F/Xv39+0t/+hQ4d08ODBSsdX/PzCwsI0cuRIr/pI0t13322qXR8qDAAAAAAAAKB+I8Svg5o2bWqqL+4l70lBQYHpYa7du3dXx44dve7VsmVL05cGWVlZpv3uK/rss89Mc7n99tu97iNJQ4cONdVffPFFpWMrhuFhYWFe7dVf0ZAhQ0z15s2bPY47evSoDhw4YNQ333yzYmJivO7Tp08ftWjRwqj37NmjnJwcn+YKAAAAAAAAoO4ixK+DXO+ErypU/u6772S32436xhtv9Llfv379THXFB+tWtHXrVlPta6/WrVubttT54YcflJeX5zausLDQtNVOz549fQrWpcu3JpvNpmuvvdaonU6nduzY4dM1AAAAAAAAANRdhPh10OnTp011p06dKh3rGhj36NHD535XX321qd67d2+1vZo2berVvvGuKj601+l0av/+/W5jUlNTTXf812RN3bp1U1DQf/7x8GZNNe1VcU1V9QIAAAAAAABQ/xDi10FfffWVqf6v//qvSsfu27fPVLsG8t7o1q2bqT58+LDbmNzcXGVkZFR6Tk17HTp0yG2MP9bUsGFDtWvXzqjT09NVXFxcZa/o6Gi1b9/e516uIb6nzw8AAAAAAABA/USIX8c4HA6tWLHCqNu1a+e2NUxFFQPj6OhoxcbG+tyzSZMmatCggVGnp6e7jXEN2ys+ONYXFfePl6STJ0/+ZL2aN29uvHY6nTp16pTpfafTqSNHjhh1y5YtTQ/5rUkfyfOaAAAAAAAAANRPhPh1iNPp1JNPPmkEyzabTY8//nilwbJrMO0aJvuiWbNmxuvs7Gy3h+m6BtM17ZWQkGCqMzMz3ca49kpMTPxJemVmZsrhcBh1TdfUpEkThYaGVtoHAAAAAAAAQP1FiF9HpKWl6d5779Xq1auNY7Nnz65yK52zZ8+aHmrrGlr7ouK5ZWVlys/PN73vGkz7K1jPzc11G1OxV3h4uBo3buyXXufOnau0j6fx3goKClJ8fLxRe1oTAAAAAAAAgPoppLYnAO9kZGQYW9+UlZWpqKhIZ8+e1Q8//KCvv/5aBw4cMMbGxsbqT3/6k2699dYqr5mXl2eqo6Ojazy/iIgIU52fn2/amse1V1RUlF/6FBQUuI2pGLbXtI+nXq5fTPxUn19RUZHKyspMD9YNBCUlJTXaTshXFX+1AKBuqPirJgAAAAAArMBKGRQhfoBISUnRU089VeWY5s2ba9iwYRo7dqxXgbJrKF1xX3tfuZ5b8Q5/f/aqro9kDvYDYU2u5zqdTjkcjku6Xm3Yu3fvT94jJCREPXr0+Mn7ALi80tLSVFJSUtvTAAAAAADA0Lt379qegiGwbvVFpUJCQtStWzcFBQV5fLCsJ653PoaFhdW4v2vg7BrGuPbyV4jvKfSp2CsQ1uTpXO5KBQAAAAAAACAR4tcZJSUl2rBhgxYvXqyhQ4dq5MiR+v7776s8x/Xhs5cSeIeEhFRZuwbgNf05SnV9XHtdys9equvl+vn5s5eVfq4DAAAAAAAAoPawnU6AGD16tEaPHi2pfLuVwsJCFRYW6tixYzpw4IA2bdqkrVu3Gndwb9++XXfddZfmzp2roUOHeryma1DsaWsabxUXF5vqhg0bVtmrpneau/aJjIx0GxMaGmqs5VLuaL9w4UKVvfy1Jsm8ruDg4IDbSgcAAAAAAADAT4MQPwDZbDZFRUUpKipKCQkJ6tu3r0aNGqXTp0/r2Wef1dq1ayWVh8qzZs1S48aNdcMNN7hdxzWUvpQQ3/Vc14fCuob6rgG5t1zPc+0jla/r4nwuZU3VhfiudU3XJJnn6WlNgaBz5878ggBAjXTp0qW2pwAAAAAAgGUR4tchCQkJWrBggTp27Kjnn39eklRWVqaZM2cqJSXFLUh3DYsvJYR2vUPe9dr+6lVdsH7xWG5u7iX1kS7fmlx7BWqIHxISQogPoEb4uwMAAAAAgMqxJ34d9MADD+jGG2806pycHL377rtu41xD/ZycnBr3zM7ONl7HxMS47a/vGrbXtFfFPpIUHx/vNqZir3PnzqmsrKxGvVzn6NrLX2uSzOtq2rRpja8DAAAAAAAAoG4hxK+jJk+ebKpTUlLcxjRu3Nh01/epU6dq3C8jI8N43bZtW7f3W7RoYapr2sv1PE+9mjdvbrx2OBw6c+bMJfey2Wxuvfy1pvz8fBUWFhq1pzUBAAAAAAAAqJ8I8euoHj16KCYmxqjT0tLcxthsNrVp08aoT506JafT6XOvwsJC5eXlGbWnENr1WE0D74pfFnjb6+TJkzXqVXGOiYmJCg8PN70fHx+v6Ohov/aRCPEBAAAAAAAA/Achfh0VFBSkxMREoy4qKvK4Z3vFwNhut+vo0aM+99q7d6+pbt++fZV9JOnAgQM+95Hcv4zw1Ktdu3aX3MvhcOjgwYNV9pGkK664wnh94sQJnT9/3ude3qwJAAAAAAAAQP1EiF+HVbxzPDg42OODA7t06WKqt2/f7nOfHTt2mOprrrnGbUxkZKQpyN+zZ4/sdrvPvXbu3Gm8btu2rRISEtzGdO7c2VTXZE179+41fenhaU2S+fMrKSnRrl27fO5VcU1V9QIAAAAAAABQ/xDi12FZWVnG67i4OAUFuf/Xff3115vqb775xuc+X3/9tfE6NjZWPXv29DiuYi+Hw+FzuH7mzBkdPnzYqCs+vLci162Evv32W5+3Cfr3v/9tqm+66SaP4/zx+VU8p3Pnzh6/mAAAAAAAAABQPxHi11EnTpxQenq6UV911VUex3Xp0kXx8fFGvX79ehUUFHjdJzMzU1u3bjXq/v37e/yyQHIPvD/44AOv+0jShx9+aArjKwvxg4ODdd111xl1enq66YsGb/z97383XickJCgpKcnjuOuuu04hISGVzrE6qampOnTokFFXtiYAAAAAAAAA9RMhfh319ttvm+qbb77Z4zibzaaBAwcadVFRkU/h+qpVq1RaWmrUI0aMqHRsv3791LhxY6P+9NNPlZ2d7VUfh8Oh1atXG3WbNm3Ur1+/SscPGjTIVL/11lte9ZHKf1lQcT/84cOHVzo2KirK9OVEenq6Pv/8c697rVy50ngdHBysO+64w+tzAQAAAAAAANR9hPgW9sknn/i8DYwkfffdd3rjjTeMOjo62i3Urmjs2LGmu8kXLVqkzMzMavscO3ZMy5YtM+pevXrp2muvrXR8gwYNdO+99xp1cXGxnn766Wr7SNKyZctMD92dOHGigoODKx3/i1/8wrQH//r167V58+Zq+zgcDj311FNG3bBhQ9OcPZkwYYKpnjdvnlcPuN22bZs+/PBDo77tttvUpk2bas8DAAAAAAAAUH8Q4lvYggULNGHCBNN2K9VJSUnRxIkT5XA4jGMPPfSQ4uLiKj2nVatWGjx4sFHn5eVp2rRpOnfuXKXnZGVlaerUqSouLjaOTZkypdr5jRo1SlFRUUb98ccfa+nSpVWek5KSoiVLlhh1y5YtNXTo0CrPCQoK0v333286Nnv2bO3bt6/Sc0pKSvToo4/qhx9+MI6NGTPGtL++J3369FGfPn2M+vjx43rkkUdMD8Z1deTIEc2YMcP4kiYkJESTJk2qsg8AAAAAAACA+ocQ3+K2bNmiwYMH68EHH9THH3+snJwctzFFRUXatGmTJk6cqClTppj2tB84cKDGjBlTbZ+HH37YFFbv2LFDI0aM0Mcff2zaLqekpERr167VXXfdZQrEhw0bpv79+1fbJyYmRg8//LDp2HPPPaff//73pvBcKn+Q7YIFCzRt2jTZ7XZJ5eH8vHnzFBYWVm2vYcOGKTk52aizsrI0atQovfbaa277/m/btk2/+c1vtHbtWuNYhw4d9OCDD1bbR5Ief/xxhYaGGnVKSopGjRqlL774wjTuwoULeuuttzRy5EidPHnSOD558mR17NjRq14AAAAAAAAA6g+bsyb7teCyuPnmm00Pp5XK97CPj49XXFycwsLClJeXp/T0dJWUlLidP3DgQD377LOmcLkqW7Zs0QMPPOB2rYiICLVq1UpOp1MnTpww3X0vSb1799brr7+uBg0aeL22mTNnmraSuSg+Pl4JCQk6e/asMjIyVFZWZnr/8ccf1+jRo73uk5GRoeHDh7ttDxQaGqrmzZsrKipK6enpbr86iI+P19tvv+3T9jarV6/WY4895nY8KipKrVq1UnFxsdLT002/kpDK9+9fuHChbDab171qk91u1+7du92Od+/e3asvV/ztgTmrlV9Y+a8eAFhLdMMG+usTd9b2NAAAAAAACBgh1Q9BbWnXrp1biO90OnXmzBmdOXOm0vOioqI0a9asKh/I6kn//v21ZMkSPfzww8rPzzeOnz9/3u0u+YsGDRqk+fPn+xTgS+X7xkdERLg9gDcrK0tZWVlu4yMiIvTEE0/o9ttv96lPYmKi3nrrLT3wwAM6fPiwcdzhcOjYsWMez7nqqqv00ksvqXXr1j71uvPO8lBqzpw5xi8HJKmgoMDjNj42m02jR4/W7NmzAybABwAAAAAAAHB5cSe+xW3YsEHvv/++vvzyyyr3WLfZbOrYsaPuuOMODR8+3LTvvK9Onz6tF198UevWrau0Z48ePfTAAw/o5z//eY37SNLmzZu1ePFipaamenw/PDxct912mx588EGfQ/WKLly4oGXLlun//u//PG5JJJXvtX/vvfdq1KhRXv96wZNDhw7phRde0MaNGz3+QiIoKEj9+vXTlClTTHvpBwruxAdwKbgTHwAAAAAA3xDiB4gLFy7o4MGDOnTokHJzc1VUVKTg4GDFxsaqadOm6tGjhxo3buzXnoWFhfruu+905MgRFRYWKjw8XM2bN1ePHj3UokULv/Y6fvy4du7cqYyMDJWUlKhRo0Zq166dkpOTFRER4bc+paWl2rlzpw4cOKDc3FwFBweradOm6ty5s5KSkvzWR5LOnj2r7777TsePH9f58+cVGRmpVq1aKTk5WU2aNPFrr8uJEB/ApSDEBwAAAADAN4T4AHxCiA/gUhDiAwAAAADgm6DangAAAAAAAAAAAPCMEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwqJDangAAAEB98/2yx1VyPr+2pwHAByER0eo64anangYAAADqIUJ8AACAy6zkfL5KzhfU9jQAAAAAAAGA7XQAAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsihAfAAAAAAAAAACLIsQHAAAAAAAAAMCiCPEBAAAAAAAAALAoQnwAAAAAAAAAACyKEB8AAAAAAAAAAIsixAcAAAAAAAAAwKII8QEAAAAAAAAAsChCfAAAAAAAAAAALIoQHwAAAAAAAAAAiyLEBwAAAAAAAADAogjxAQAAAAAAAACwKEJ8AAAAAAAAAAAsKqS2JwDflZWVKS0tTceOHVNOTo4KCgoUHR2tJk2aKDk5WQkJCX7rdfLkSaWmpurUqVMqLi5WVFSU2rZtq+TkZEVFRfmtT1lZmfbs2aP9+/fr7NmzkqS4uDglJSWpa9eustlsfuuVl5enHTt26Mcff1RhYaHCw8PVokUL9ezZ06+fnSQdOXJEe/bsUWZmpux2uxo1aqQOHTooOTlZDRo08GsvAAAAAAAAAHUPIX4A+eqrr7Ry5Up99dVXys/Pr3Rcp06dNG7cOA0ZMkQhITX7rzglJUVLly7Vrl27PL4fFhamQYMGaerUqWrdunWNekhSQUGBXnvtNb3zzjvKzs72OCYxMVH33XefxowZo9DQ0Br32rdvn1566SV9/vnncjgcbu/bbDb17dtXU6dO1TXXXFPjPk6nUx988IGWL1+ugwcPehwTGRmpYcOGacqUKYqLi6txLwAAAAAAAAB1m83pdDprexKo2q5duzRnzhx9//33Pp3Xs2dPLVq0yKe7y4uKijRr1iz985//9Gp8ZGSk5s+fr4EDB/o0N0lKTU3V9OnTdfLkSa/Gd+3aVS+//HKN7pZ/5ZVXtHjxYpWUlFQ71mazacKECXr44Yd9/gVATk6Opk2bpm+//dar8XFxcVq0aJH69u3rU5/aZLfbtXv3brfj3bt3V1hY2GWfzwNzViu/8MJl7wugZqIbNtBfn7iztqdR63Yt/q1KzhfU9jQA+CAkIko9pr5Q29MAAABAPcSe+Ba3aNEijRw50mOAn5CQoG7duqlr164eg+2dO3dq+PDhOn36tFe9iouLNW7cOLcAPyQkRG3atNFVV12lyMhI03tFRUX63e9+p/Xr1/uwKmn79u2699573QL8hg0bKikpSa1atVJwcLDpve+//15jxoxRTk6OT73mzZunhQsXmgJ8m82mZs2aqWvXroqNjTWNdzqdevXVVzVv3jyf+uTk5GjkyJFuAX5YWJjatWunK6+80i3kzsnJ0fjx47Vz506fegEAAAAAAACoH9hOx+Jef/11lZaWGnW3bt109913a8CAAYqPjzeNPX36tN577z299tprKiwsNI499NBDWrVqlYKCqv7O5rHHHtOOHTuMOjY2VpMnT9aIESOM8N7pdGr9+vV6/vnndfToUUnl+9nPnDlTnTt39mprnczMTD344IM6f/68cSw5OVnTp0/Xz372M+NYbm6u/va3v2nZsmXG9jc//vijZs2apaVLl1bbR5LeffddvfHGG0YdHBysUaNGafz48UpMTDSO79mzR88//7y+/PJL49iKFSvUq1cvDRo0qNo+ZWVlmjp1qvGZSFKLFi00ZcoUDR061NgGyOFw6MMPP9SLL76oM2fOSJIuXLigadOmad26dWrUqJFX6wIAAAAAAABQP3AnfoBo0aKFXnrpJa1Zs0bDhw93C/Cl8jvzH3roIb333ntq2rSpcTw1NVX/+Mc/qrx+SkqK1q1bZ7rWypUr9Zvf/MZ0973NZtOtt96qt99+W0lJScbxoqIir+9cf/LJJ42H10rS4MGD9eabb5oCfKn8S4Tf/va3Wrx4sekO9k2bNmnDhg3V9snIyND8+fONOjQ0VAsXLtRjjz1mCvCl8i9Hli1bpqFDh5qOz507V8XFxdX2WrFihbZt22bUnTp10qpVq3TnnXea9vEPDQ3V8OHDtXLlSjVv3tw4fvr0aS1atKjaPgAAAAAAAADqF0L8APDLX/5SH330kW655Ravxnfo0EHPPfec6dibb75Z6fjS0lItWLDAqG02mxYtWqQOHTpUek5cXJxbuL5x40bt27evyrlt27ZNn332mVF36tRJzzzzTJUPrB0wYIAmT55sOrZkyZIq+0jlWxEVFRUZ9fTp03XrrbdWOj4oKEhz5841rfvMmTN69913q+yTn5+vl19+2agjIiL08ssvq1mzZpWe06ZNGz377LOmY6tWrar04b4AAAAAAAAA6idCfIsbP368Fi1apKioKJ/Ou/baa00PS929e7fy8vI8jt24caNpG5jhw4erZ8+e1fZo06aNxo4dazr2zjvvVHnO8uXLTfWcOXMUElL9rk4TJkxQy5YtjTotLU2pqamVjs/KytLatWuNumPHjm5z9SQ0NFSPPvqo6Vh1a1qzZo1yc3ONetKkSWrVqlW1vfr06aNf/epXRm232/X+++9Xex4AAAAAAACA+oMQ3+Ieeugh2Wy2Gp17ww03GK/Lysp04MABj+PWrFljqu+77z6ve9x1112m+W3YsEFlZWUex2ZnZ2vTpk1G3b17d/Xq1curPmFhYRo2bJjp2Kefflrp+I8++sjYR1+S7rnnHq++LJCk/v37m/b2P3TokA4ePFjp+IqfX1hYmEaOHOlVH0m6++67TbXrQ4UBAAAAAAAA1G+E+HVY27ZtTXXFfegvKigoMD3MtXv37urYsaPXPVq2bKnevXsbdVZWltLS0jyO/eyzz0wP6b399tu97iPJbb/6L774otKxFcPwsLAw0x3v3hgyZIip3rx5s8dxR48eNX05cvPNNysmJsbrPn369FGLFi2Mes+ePcrJyfFprgAAAAAAAADqLkL8Osx1C54LFy64jfnuu+9kt9uN+sYbb/S5T79+/Uz19u3bPY7bunWrqfa1V+vWrU1b6vzwww8etwgqLCw0bbXTs2dPn4J16fKtyWaz6dprrzVqp9OpHTt2+HQNAAAAAAAAAHUXIX4dVvGhrpLUqFEjtzGugXGPHj187nP11Veb6r1793ocV7FX06ZNvdo33lX37t2N106nU/v373cbk5qaarrjvyZr6tatm4KC/vOPhzdrqmmvimuqqhcAAAAAAACA+ocQvw47duyYqW7Xrp3bmH379plq10DeG926dTPVhw8fdhuTm5urjIyMSs+paa9Dhw65jfHHmho2bGj6vNLT01VcXFxlr+joaLVv397nXq4hvqfPDwAAAAAAAED9RIhfh+3cudN43bhxY9PDWi+qGBhHR0crNjbW5z5NmjRRgwYNjDo9Pd1tjGvY7mku3qi4f7wknTx58ifr1bx5c+O10+nUqVOnTO87nU4dOXLEqFu2bFmjhxBX7CN5XhMAAAAAAACA+okQv44qLCzUli1bjPrnP/+52xjXYNo1TPZFs2bNjNfZ2dmm7Wwk92C6pr0SEhJMdWZmptsY116JiYk/Sa/MzEw5HA6jrumamjRpotDQ0Er7AAAAAAAAAKi/CPHrqDVr1qiwsNCob7/9drcxZ8+eNT3U1jW09kXFc8vKypSfn2963zWY9lewnpub6zamYq/w8HA1btzYL73OnTtXaR9P470VFBSk+Ph4o/a0JgAAAAAAAAD1U0htTwD+l5OTo7/85S9GnZycrD59+riNy8vLM9XR0dE17hkREWGq8/PzTVvzuPaKioryS5+CggK3MRXD9pr28dTL9YuJn+rzKyoqUllZmenBuoGgpKSkRtsJ+arirxYA1A0Vf9VUV/F3F1A31Ye/vwAAAALmV9wAACAASURBVOorK/17HCF+HeN0OjV79mwjyLbZbJo5c6bHsa6hdMV97X3lem7FO/z92au6PpI52A+ENbme63Q65XA4Lul6tWHv3r0/eY+QkBD16NHjJ+8D4PJKS0tTSUlJbU/jJ8PfXUDdVdf//gIAAKjPevfuXdtTMATWrb6o1quvvqp//etfRj1ixAglJyd7HOt651BYWFiN+7oGzq7/MuPay18hvqd/aarYKxDW5Olc7uoCAAAAAAAAIBHi1ykpKSlauHChUXfo0EGzZs2qdLzrw2cvJfAOCQmpsnYNwGv6c5Tq+rj2upSfvVTXy/Xz82cvK/1cBwAAAAAAAEDtIcSvI3bv3q1HHnlEZWVlksr3WF+4cKEiIyMrPcc1KPa0NY23iouLTXXDhg2r7FXTO81d+3haX8Vel3JH+4ULF6rs5a81SeZ1BQcHB9xWOgAAAAAAAAB+GuyJXwccPnxYEydO1Pnz5yWV74O/YMECXXXVVVWe5xpKX0qI73qu60NhXUN914DcW67nufaRytd1cT6XsqbqQnzXuqZrkszz9LSmQNC5c2d+QQCgRrp06VLbUwCAGuHvLwAAAFwOhPgBLiMjQ+PHj1dOTo5x7Pe//71+8YtfVHuua1h8KSG06x3yrtf2V6/qgvWLx3Jzcy+pj3T51uTaK1BD/JCQEEJ8ADXC3x0AAhV/fwEAAOByYDudAJaTk6Nx48bp5MmTxrHRo0dr4sSJXp3vend8xS8CfJWdnW28jomJcdtf3zVsr2mvin0kKT4+3m1MxV7nzp0zthjylescXXv5a02SeV1Nmzat8XUAAAAAAAAA1C2E+AEqLy9P48aN06FDh4xjv/rVr/THP/7R62s0btzYdNf3qVOnajyfjIwM43Xbtm3d3m/RooWprmkv1/M89WrevLnx2uFw6MyZM5fcy2azufXy15ry8/NVWFho1J7WBAAAAAAAAKB+IsQPQIWFhbr//vu1d+9e49iAAQP0v//7v7LZbF5fx2azqU2bNkZ96tQpOZ3OGs0nLy/PqD2F0K7Hahp4V/yywNteFX+p4IuKc0xMTFR4eLjp/fj4eEVHR/u1j0SIDwAAAAAAAOA/CPEDTHFxsSZNmqSdO3cax/r3769FixYpJMT3RxxUDIztdruOHj3q8zUqfpkgSe3bt6+yjyQdOHDA5z6SlJaWVm2vdu3aXXIvh8OhgwcPVtlHkq644grj9YkTJ4yHC/vCmzUBAAAAAAAAqJ8I8QOI3W7XQw89pG+++cY4ds011+ill15y24PeW126dDHV27dv9/kaO3bsMNXXXHON25jIyEhTkL9nzx7Z7Xafe1X88qJt27ZKSEhwG9O5c2dTXZM17d271/SgWk9rksyfX0lJiXbt2uVzr4prqqoXAAAAAAAAgPqHED9AlJaW6uGHH9YXX3xhHEtOTtYrr7zits2LL66//npTXfELAm99/fXXxuvY2Fj17Nmz2l4Oh8PncP3MmTM6fPiwUd94440ex/Xo0UMxMTFG/e233/q8TdC///1vU33TTTd5HOePz6/iOZ07d/b4xQQAAAAAAACA+okQPwCUlZVp5syZWr9+vXGse/fuWrZsmRo2bHhJ1+7SpYvi4+ONev369SooKPD6/MzMTG3dutWo+/fvr6Agz/+zcg28P/jgA5/m+uGHH5rC+MpC/ODgYF133XVGnZ6ebvqiwRt///vfjdcJCQlKSkryOO66664zbWPkOsfqpKammh5OXNmaAAAAAAAAANRPhPgB4IknntBHH31k1J07d9by5csVFRV1yde22WwaOHCgURcVFfkUrq9atUqlpaVGPWLEiErH9uvXT40bNzbqTz/9VNnZ2V71cTgcWr16tVG3adNG/fr1q3T8oEGDTPVbb73lVR+p/JcFFffDHz58eKVjo6KiTF9OpKen6/PPP/e618qVK43XwcHBuuOOO7w+FwAAAAAAAEDdR4hvcfPnz9e7775r1FdeeaVee+0103Yxl2rs2LGmu8kXLVqkzMzMas87duyYli1bZtS9evXStddeW+n4Bg0a6N577zXq4uJiPf30017NcdmyZaaH7k6cOFHBwcGVjv/FL35h2oN//fr12rx5c7V9HA6HnnrqKaNu2LChac6eTJgwwVTPmzfPqwfcbtu2TR9++KFR33bbbWrTpk215wEAAAAAAACoPwjxLeyFF17Q3/72N6Nu27atXn/9dcXFxfm1T6tWrTR48GCjzsvL07Rp03Tu3LlKz8nKytLUqVNVXFxsHJsyZUq1vUaNGmX6BcHHH3+spUuXVnlOSkqKlixZYtQtW7bU0KFDqzwnKChI999/v+nY7NmztW/fvkrPKSkp0aOPPqoffvjBODZmzJhqvzDp06eP+vTpY9THjx/XI488YnowrqsjR45oxowZxtY7ISEhmjRpUpV9AAAAAAAAANQ/wU8++eSTtT0JuHv99df1wgsvGHWDBg30yCOPyG636/jx4zX607p160r7XX311Xr//feN4DkjI0MbNmxQkyZN1L59e2Of+5KSEq1bt06PPPKI6SGzw4YN07hx46pdV3h4uKKjo7Vp0ybj2FdffaUjR46offv2atKkiXH8zJkzWrJkiebPn6+SkhJJ5eH84sWLdcUVV1TbKykpSVu3blVGRoak8q2C1q1bp9DQUF155ZUKCwszxm7btk2zZs0ybYXToUMHPffcc6ZfKVSma9euWrNmjcrKyiRJ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8pOYOnVq2vG8vLzo1atXFBYWxqxZs2L58uWp95YvXx5nnHFGtGvXLvbff/8G15oyZUr85Cc/iRUrVqQdLy4ujr59+0ZZWVnMnTs3Vq1alXrv7bffjtGjR8fdd9/dqLvXL7/88vjb3/6WdiwnJye6desW3bp1i9mzZ8eSJUtS79XU1MSNN94YK1eujPPPP7/BdRYtWhTHHHPMOv/7FBQURO/evSMvLy8++eSTqKysTJvz05/+NG699dbYeeedG1wLAAAAAGgbhPgJd9VVV8UjjzwSn3/+ebPXOv/889MC/E6dOsVJJ50URx11VBQVFUXEmoD7iSeeiKuvvjoVVq9evTp++ctfxoABAxq0tc78+fPj5JNPTgvwhw4dGmPGjIk999wzdWzJkiVxyy23xE033ZTa/uaTTz6Jc845J/785z836JruvffetAA/Nzc3jj322PjpT38aPXr0SB2fPn16XH311fHCCy+kjt16660xbNiwOOiggzZYZ/Xq1XHqqaemBfi9evWKU045JQ477LDUNkBVVVXx4IMPxjXXXBMLFiyIiIiVK1fGaaedFg8//HB07NixQdcFAAAAALQN7Vq6Adbv73//e70BfqdOnbK2fcnkyZPj4YcfTo27d+8ed955Z/zoRz9KBfgRa+5gP+CAA+Kuu+6KHXbYIXV8+fLlcfnllzeo1sUXX5x6eG1ExMEHHxy33XZbWoAfseb6Tj/99Lj22mvTrvPZZ5+NJ598coN15s2bF1dccUVqnJ+fH3/4wx/i/PPPTwvwIyIGDRoUN910Uxx22GFpxy+77LKoqKjYYK1bb701bSuj7bbbLu65554YNWpU2j7++fn5ceSRR8add94ZPXv2TB3//PPPY/z48RusAwAAAAC0LUL8VqZXr14xevTouOWWW+KFF16Ibt26NXnNVatWxe9+97vUOCcnJ8aPHx/bbLNNvXM6d+68Trj+9NNPp+3RX5fXXnstnnrqqdR4u+22i9/+9rfrfWDtvvvuGyeddFLaseuuu269dSIixo8fn7b1z5gxY+KAAw6o9/x27drFZZddlnbdCxYsiHvvvXe9dZYtWxbXX399alxYWBjXX399bLHFFvXO6devX/z+979PO3bPPffU+3BfAAAAAKBtEuInXE5OTmy//fZx8sknx4QJE+KZZ56JCy64IPbcc8/Iy8vObkhPP/102jYwRx55ZIP2Z+/Xr1/8+Mc/Tjt29913r3fOzTffnDa+5JJLGnQdP/vZz6J3796p8YwZM2LatGn1nv/FF1/EP/7xj9R42223XafXuuTn58d5552XdmxD13T//fen7an/85//PPr06bPBWrvuumsccsghqXFlZWVMmDBhg/MAAAAAgLZDiJ9wEydOjH/84x8xZsyYGDhwYLPUuP/++9PGP/zhDxs89+ijj46cnJzU+Mknn4zVq1fXee7ChQvj2WefTY0HDx4cw4YNa1CdgoKCGDlyZNqxxx57rN7zJ06cmNpHPyLi+9//foO/9Nh7773T9vb/4IMP4v3336/3/LX//QoKCuKYY45pUJ2IiO9973tp48cff7zBcwEAAACATZ8QP+Fq792ebWVlZWkPcx08eHBsu+22DZ7fu3fv2GWXXVLjL774ImbMmFHnuU899VSsWrUqNT788MMb1Wvt/eqfe+65es9dOwwvKChIu+O9IQ499NC08b/+9a86z/v444/j3XffTY2/9a1vxWabbdbgOrvuumv06tUrNZ4+fXosWrSoUb0CAAAAAJsuIX4b9/rrr0dlZWVqvM8++zR6jT322CNtPGXKlDrP+/e//502bmytvn37pm2p895778XSpUvXOa+8vDxtq52dd965UcF6xMa7ppycnNh9991T45qampg6dWqj1gAAAAAANl1C/DaudmA8ZMiQRq+x0047pY3feeedDdbq1q1bg/aNr23w4MGp1zU1NfGf//xnnXOmTZuWdsd/Jtc0aNCgaNfu//7foyHXlGmtta9pfbUAAAAAgLZHiN/GzZw5M21cO5BviEGDBqWNP/zww3XOWbJkScybN6/eOZnW+uCDD9Y5JxvXVFxcHFtvvXVqPHv27KioqFhvrdLS0ujfv3+ja9UO8ev69wMAAAAA2iYhfhu3dmBcWloanTp1avQaXbp0ifbt26fGs2fPXuec2mH72g+ObYy194+PiJgzZ06z1erZs2fqdU1NTcydOzft/Zqamvjoo49S4969e6c95DeTOhF1XxMAAAAA0DYJ8duw2sF07TC5MbbYYovU64ULF6ZtZxOxbjCdaa3u3bunjefPn7/OObVrZfpw4A3Vmj9/flRVVaXGmV5Tly5dIj8/v946AAAAAEDbJcRvwxYvXpz2UNvaoXVjrD139erVsWzZsrT3awfT2QrWlyxZss45a9fq0KFDbL755lmp9eWXX9Zbp67zG6pdu3bRtWvX1LiuawIAAAAA2qa8lm6AlrN06dK0cWlpacZrFRYWpo2XLVuWtjVP7VolJSVZqVNWVrbOOWuH7ZnWqatW7S8mmuvfb/ny5bF69eq0B+u2BtXV1RltJ9RYa/9qAdg0rP2rpk2Vzy7YNLWFzy8AgLYqSX/HCfHbsNqh9Nr72jdW7blr3+GfzVobqhORHuy3hmuqPbempiaqqqqatF5LeOedd5q9Rl5eXgwZMqTZ6wAb14wZM6K6urql22g2Prtg07Wpf34BALRlu+yyS0u3kNK6bvUlq2rfOVRQUJDxWrUD59p/zNSula0Qv64/mtau1Rquqa657uoCAAAAACKE+G1a7YfPNiXwzsvLW++4dgCe6c9RNlSndq2m/OxlQ7Vq//tls1aSfq4DAAAAALQcIX4bVjsormtrmoaqqKhIGxcXF6+3VqZ3mteuU1RUtM45a9dqyh3tK1euXG+tbF1TRPp15ebmtrqtdAAAAACA5mFP/DasdijdlBC/9tzaD4WtHerXDsgbqva82nUi1lzXV/005Zo2FOLXHmd6TRHpfdZ1Ta3BgAED/IIAyMiOO+7Y0i0AZMTnFwAAG4MQvw2rHRY3JYSufYd87bWzVWtDwfpXx5YsWdKkOhEb75pq12qtIX5eXp4QH8iIzw6gtfL5BQDAxmA7nTas9t3xixYtynithQsXpl5vttlm6+yvXztsz7TW2nUiIrp27brOOWvX+vLLL2P16tUZ1ardY+1a2bqmiPTr6tatW8brAAAAAACbFiF+G7b55pun3fU9d+7cjNeaN29e6vVWW221zvu9evVKG2daq/a8umr17Nkz9bqqqioWLFjQ5Fo5OTnr1MrWNS1btizKy8tT47quCQAAAABom4T4bVhOTk7069cvNZ47d27U1NQ0ep3y8vJYunRpalxXCF37WKaB99pfFjS01pw5czKqtXaPPXr0iA4dOqS937Vr1ygtLc1qnQghPgAAAADwf4T4bdzagXFlZWV8/PHHjV7jnXfeSRv3799/vXUiIt59991G14mImDFjxgZrbb311k2uVVVVFe+///5660REbLnllqnXn332WaxYsaLRtRpyTQAAAABA2yTEb+N23HHHtPGUKVMavcbUqVPTxsOHD1/nnKKiorQgf/r06VFZWdnoWm+88Ubq9VZbbRXdu3df55wBAwakjTO5pnfeeSftQbV1XVNE+r9fdXV1vPnmm42utfY1ra8WAAAAAND2CPHbuG984xtp41deeaXRa7z88sup1506dYqdd955g7WqqqoaHa4vWLAgPvzww9R4n332qfO8IUOGxGabbZYav/rqq43eJuill15KG3/zm9+s87xs/PutPWfAgAF1fjEBAAAAALRNQvw2bscdd4yuXbumxk888USUlZU1eP78+fPj3//+d2q89957R7t2df+fVe3A+4EHHmhUrw8++GBaGF9fiJ+bmxt77bVXajx79uy0Lxoa4qGHHkq97t69e+ywww51nrfXXntFXl5evT1uyLRp0+KDDz5Ijeu7JgAAAACgbRLit3E5OTlx4IEHpsbLly9vVLh+zz33xKpVq1Ljo446qt5z99hjj9h8881T48ceeywWLlzYoDpVVVVx3333pcb9+vWLPfbYo97zDzrooLTxHXfc0aA6EWt+WbD2fvhHHnlkveeWlJSkfTkxe/bseOaZZxpc684770y9zs3NjSOOOKLBcwEAAACATV/ehk9hU/fjH/847r777qiuro6IiPHjx8cBBxwQW2yxxXrnffrpp3HTTTelxsOGDYvdd9+93vPbt28fxx13XFxzzTUREVFRURG/+c1v4g9/+MMGe7zpppvSHrp7wgknRG5ubr3n/9d//VdstdVWqTlPPPFE/Otf/4oRI0ast05VVVX8+te/To2Li4vjuOOOW++cn/3sZ2nB/eWXXx577rlnFBYWrnfea6+9Fg8++GBq/J3vfCf69eu33jkAANBSzp1weZRVNPxXu0DLK+lQEleMPK+l2wCgiYT4RJ8+feLggw9ObSGzdOnSOO200+JPf/pT2t7ya/viiy/i1FNPjYqKitSxU045ZYO1jj322Lj55ptTW/ZMmjQpBgwYECeccEK9cyZPnhzXXXddaty7d+847LDD1lunXbt2cfzxx8f555+fOnbuuefGzTffXO/WONXV1XHetgYuswAAIABJREFUeefFe++9lzo2evToev8NvrLrrrvGrrvuGq+99lpERMyaNSv+3//7f3H11VdH+/bt65zz0UcfxS9+8YvU1jt5eXnx85//fL11AACgJZVVlMWyleUt3QYAQJsjxE+46dOnx9KlS+t9f+XKlanXq1atStufvraOHTvGoEGD6nzvrLPOin/+85/x5ZdfRkTE1KlT46ijjooxY8bEAQcckLrrvbq6OiZNmhTXXHNNfPbZZ6n5I0eOjL333nuD17PZZpvFWWedFZdccknq2NixY2PmzJlx0kknxde+9rXU8QULFsQtt9wSf/3rX1Nb9rRr1y4uv/zyKCgo2GCtkSNHxn333RdTp06NiDVfPBx77LFxyimnxFFHHRUlJSWpc1977bUYN25cvPrqq6lj22yzTZx88skbrBMRceGFF8aoUaOiqqoqItZ88XDsscfGmDFj0rbbWblyZdx3331x7bXXxuLFi1PHTzrppNh2220bVAsAAAAAaDtyahrzFE42utGjR8crr7ySlbWGDx8et912W73vP//883HiiSemttX5SmFhYfTp0ydqamris88+S7v7PiJil112ib/+9a/13nVel1/+8pdpW8l8pWvXrtG9e/dYvHhxzJs3L1avXp32/oUXXhg/+MEPGlxn3rx5ceSRR8b8+fPTjufn50fPnj2jpKQkZs+enfryYu0+7rrrrkZtb3Pfffel3fn/lZKSkujTp09UVFTE7NmzU0H/Vw466KD4wx/+EDk5OQ2u1ZIqKyvjrbfeWuf44MGDG/TlSradeMl9sax85YZPBBKhtLh9/OmiUS3dRot789rTo3qFLSmgNckrLIkhp45r6TZa1Kl3nudOfGhlStsXx7Xfv7yl2wCgiTzYlpS99947rrvuuigtLU07vmLFinjvvffi/fffXyfAP+igg+Lmm29uVIAfsWbf+GOOOWad41988UW8/fbbMWfOnLQAv7CwMK688spGBfgRET169Ig77rgj+vfvn3a8qqoqPv3005gxY8Y6Af72228fd999d6P3px81alRcdtll6wTZZWVlMXPmzPj444/TAvycnJwYPXp0jB07ttUE+AAAAADAxiXEJ80+++wTjzzySBxxxBHrDeaHDBkS1113XYwbN26DD3CtS25ublx88cVx4403xk477VTveR06dIiRI0fGxIkT4/DDD290nYiIfv36xYMPPhinnXZadO7cud7zevfuHeeee27cf//90bdv34xqjRo1Kh588MHYf//9Iy+v7t2q2rVrF3vttVfcfvvtccEFF6z3Ab0AAAAAQNtmOx3qVV5eHq+//np89NFHUV5eHh06dIiePXvGkCFDolevXlmtNWvWrHjjjTdi3rx5UV1dHR07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hw4dWroVoJktWbIkzjjjjJg3b17ccsst8d3vfnejh/huogBIjn333VeAjxAfoC1p3759XH311VlZa+bMmfHnP/85IiLOOuus6N27d8ZrrS+UmjRpUsbrrm3lypVx1FFHRVVVVey3335x5plnNnlN/yEFbCwTJ06MSy+9NHbYYYe4/fbbo7CwsKVbAppBTU1NnH322TFnzpyIiLj88ssbfZcowKauKX/PffbZZ3HCCSdkXHvMmDGxfPnyDZ53++23x6xZs2L77bePkSNHNrrOlClTUr9W33///Rs9n02PEB+gDcnLy4uDDz44K2uVlpamQvxvfOMbzfYApG222SYr6zz22GOpO/5/8IMfZG1dgI1h2rRpUV1dHQsWLBDgwybs+uuvj2effTYiIkaNGhXDhw+PpUuXZrRWfn5+xp8XbqIAkqy0tLTF/p476qijGnTe/fffHxERO+20U/zoRz9qdJ2vtg0qKSmJESNGNHo+mx4hPgBtwj333BMREf3794899tijhbsBaJxp06ZFRMTAgQNbuBOgufz973+P8ePHp8b33Xdf3HfffRmvd/jhh8eVV16Z0Vw3UQA0zeLFiyMiokuXLo2eu3LlynjuueciIuLb3/62Ly+JCCE+AG3AzJkz48UXX4yINX9A5uTktHBHAA23fPny+OCDDyIiYtCgQS3cDdAcJk6cGL/61a+ipqampVvJKjdRwMYxePDgqKysbPI6f/zjH+OPf/xjxvPPPffcjO4639TU1NQ0KcR/7rnnUlv2fOc738lqb7ReQnwANnnXXXdd1NTURKdOneLwww9v6XYAGuWll16KVatWRUTEbrvt1sLdANk2efLkOOecc2L16tUxdOjQuPrqqyM/Pz+jtcaNG5e6e3+fffbJZpuN5iYKoLlMnz49rrrqqozmLlmyJMvdrGvx4sVRXV0dERFdu3Zt9PzHHnssIiI6deoUX//617PaG62XEB+ATdrUqVNTDwQaPXp0FBUVtXBHQFPMmjUrnnjiiYznf7WtQ8Sau5y+uksqE0OHDo1hw4ZlPL+hJk+eHBERRUVFMXTo0GavB2w8jz76aJx99tlRXV0dAwcOjBtvvDFKS0szWuvFF1+MCRMmRETEyJEj46CDDspmq43mJgrYeC655JLUF/6ZuPLKK6OsrCz23Xff+Pa3v53xOjvvvPN63z/nnHPigQceqPf9Bx54YJ3399xzz7jlllvSjr333nvx3nvvZdxnc5s/f37qdWND/MrKynjmmWciIuKAAw7I+EtdNj1CfABajccee6zRgdu9996bel1QUBB33XVXk3ro1atXi9/ZBm3Z+++/H7/97W+zstakSZOa9PDG//mf/2lyiP/WW2/FlltuWe/7q1evTv0hN2zYsKisrFzn5/Jr/9FeXl7eoLrFxcUZdAtk0w033BDjxo2Lmpqa2H777ePmm2/OOMD/4osv4he/+EWsXr06ttxyy7jggguy3G3juIkCNq6RI0c2af64ceOirKwsBg4cGEceeWSWumo+vXv3jiFDhmQ0t7y8PPUA8eby+eefp15369atUXOfffbZKCsri4iIQw89NKt90boJ8QFoNa6//vqYOXNmxvPHjh3b5B723ntvIT7QKAceeGAUFBTE6NGj1/nD+Je//GWsXr06vvvd79Y5d8qUKbFo0aKIiHj++efX+6XBkiVLGvylwttvvx15ef4UgJZQWVkZv/rVr1J3mw4dOjT+9Kc/xWabbZbRetXV1XHGGWfEggULoqCgIMaOHZvVL+rcRAFky5lnnhnHH3/8Oscvv/zyeP7552O//faLM888M+29ur4EHD58eMYP7v7ggw+aPcSfM2dO6nVjQ/yvbjDp1atX7Lrrrlnti9bNf7kDANAqPfXUU9GnT59GzSkvL08F3VdccUVGd6415uFxZWVl8dFHH0VExIoVK9Z5v7q6Os4+++woKyuL73//++u8/49//KPR/QHJtWDBgjjjjDPi1VdfjYg1+9Zfc801UVhYmPGaV111VbzyyisRseahkoMHD85Kr19xEwWQLVtssUVsscUW6xz/6ovH0tLS2GabbTZ2W1n36aefRsSaLyBKSkoaPG/58uWpX2AeeuihniVCGiE+ALFixYo44IADIiLi7LPPjkMOOaSFO1q/o48+Oi699NI63/vWt74Vs2fPjlGjRsVll13WoPUuvfTSuOOOO2LgwIGpvWRrO/nkk+Opp57KuGegbfrwww9Tr/v167fO+1tuuWV88skncckll0T79u3jiCOOSL23bNmymDhxYkSs2Uqnvp+3T5gwIV599dUoKiqKCy+8sEF95ebmNuYygCx44okn4sILL0w9VPF73/teXHjhhU36Vcz9998ft956a0REHHLIIXV+GQjAxjV79uyIiDq/sFifyZMnp276OOyww7LeF62bEB+AWL16dWrfvrruFAUgMxsK8ceNGxeXXnppTJ06NS688MLYbLPNYr/99ouINQ93W758eUREHH/88fGtb32rzhqvv/56vPrqq1FQUNDkPXGB7CsrK4vf/OY3qe1z8vPz46KLLopvfvOb8frrr2e87ueffx4XXXRRRER07NgxDj300Hj55ZfrPLekpCQGDhyYca0IN1EANNRXv8Ls3r17VFdXN3jeww8/HBERO+64Y2y55ZbrnWtbxLbH/+IAANBMvvojrn379nU+wLa4uDhuuummGD16dMyYMSPOPPPMePTRR6N3796pPaR79OhhGwlopZYsWRJHHHFEfPbZZxER0bdv3/j9738fO++8c0yYMCHOPffcrNRZunRpnHjiifW+P2TIkLR96gFaswceeCD1xWjSVFdXp/777+WXX87oC9QZM2asd17Hjh3j5Zdfjnbt2mXcJ62P/7UBAKCZfHUn/rbbblvvFjYlJSVxww03RM+ePeOwww6L3r17x9NPP52ae9xxx9n+BlqpTp06xemnnx75+flxxBFHxEMPPRQ777xzS7cF0CosWrSopVtotE8++SSqqqqatcauu+4qwG+D3IkPAADNZOrUqRERscMOO6z3vO7du8ff/va36NWrV9TU1MQ111wTEWse8Hb00Uc3e59A8zn00ENj9913r3dv5MLCwnjooYeapfZtt90Wt912W7OsDdBcampq4rbbbou//OUv8c9//jN1fOzYsVnd/rV79+5ZW+srb7/9dur1mDFj4q677or58+dHjx494vjjj8943fLy8rj66qsjImL33Xdvcp+0PkJ8AJqsvLw8li5dmtHcwsLCyM/Pz3JHEbNmzYpHHnmkQed+8sknWa8P8P7778eCBQsiImLo0KEbPP+r7XYmTZoUM2fOjIiIn/70p1FSUtJ8TQIbxfoebpiTk1PndlvZsNlmmzXLukDLW7JkSSxcuDAra61atSoiIhYvXhwffPBBk9crLCyMXr16ZTR31qxZcdFFF8ULL7wQERHz5s2LHj16RERkvObGNH369IhY80vLk046KfLy8mLs2LHx+eefx/Dhw2O77bbLaN3HHnss9XrEiBFZ6ZXWRYgPQJMde+yxGc+95ppr4sADD8xiN2u8/PLL9T7cDWBjeOmll1Kvhw0b1qA5q1atSt2F361bt/jh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27blo48+MkmJwQoVKjBmzBhGjBjBf//7XzZs2MDRo0eJiYnh8OHDHD58mGXLlvHBBx+kaCwtohCR9GratCm7du0iPDycmJgYcuTIgZ2dHY6OjtSpU8doV6dOHZo1a4aXlxezZ89OdDxLS0s6d+5M586duXfvHn/88Qc3btzA29ubBw8eEBAQQFBQEGFhYURERBAVFZVoXAmpUaMG8+bNY9GiRSxevBhra+sE21lZWdGyZUtOnjwJxP7btnnz5rRu3dokOyWKFi2Ki4sLffv2ZcGCBRw4cIDIyEjq1q2b7rHl9WAW8+JePRERERERERExmVu3btGqVat4iaNChQpRtmxZypcvT8WKFalWrRpVqlQxySGQyfHy8uKnn35i+/btfPTRR0kmxwAcHBy4evUqnTt3ZurUqRke34sGDRrEb7/9xvvvv8+KFSsydW4RyRqeP39Ojhw5XnUYREdHJ1oi6EXr1q3jzTffpGbNmi+V5jGlK1eucOHCBbp06ZJhc0jWoiS+iIiIiIiISAY6cOAAZmZm2NnZYWdn90oOn/ynwMBALCwstDNHRETkNaAkvoiIiIiIiIiIiIhIFpX8PhAREREREREREREREXkllMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmilMQXEREREREREREREcmisr3qAEREREREJHWePHlCVFQUFhYW5MuX71WH81ry8/PD39+fatWqZcj4AQEBXL16FYCqVavq+5QFhIWFERkZibm5OTly5HjV4WQoX19frl69Sp06dfSzJyIi8i9gFhMTE/OqgxARERERkZRr3Lgxvr6+FC1aFHd391cdTpqEh4fz0UcfUaVKFZo1a0b79u0zbe6IiAi6d+/OhQsX6NSpE8OHD8fGxsakcxw8eBBHR0cAVq9eTd26dU06flpt2LCB27dvU7JkSbp27Zpk2zVr1nDv3r0UtX0d9O3bl6NHj1KiRAkOHz780v0DBw5w584d+vTp8wqiS5vAwED++usvrl27Znxcv36dp0+fAtCjRw8mTJjwiqMUERGR9NJKfBERERERyXSnTp3i4cOHPHz4kPLly2fq3Js3b8bDwwOA9evXs2/fPr7++mtatmyZZL/79+9TvHjxDIsrOjoaLy8v3njjjQybY8+ePZw4cYJ333032cT8jh07uHDhQoravg4iIiIAElyFv3v3bkaNGkVkZCRXrlxhxowZWFpaZnaIhpiYGJ4+fcqTJ0/4+++/efDgAb6+vvj6+nL37l3jOjg4OMlxfvnlF7p3706pUqUyKXIRERHJCErii4iIiIhIpjty5Ihx3bRp00ydu0uXLuTNm5fvvvuOBw8e8Pfff+Pk5MSePXv45ptvKFiwYLz2YWFhzJkzh9WrV+Pq6krz5s0zJK6NGzcydepUPv/8c4YOHUru3LkzZJ7/VZGRkQAJJueLFSuGjY0Njx49YseOHQQHBzNv3jysrKxSNcf27du5cOEClpaWWFpaYm5ubnxERkYSHh5ORETESx+hoaEEBgby5MkT479RUVGpmjtPnjyULl2acuXK8cYbb1CpUiUqVapEsWLFUjWOiIiIZD1K4ouIiIiISKaKiYnh4MGDQGzytFatWpkeQ4sWLWjUqBGurq6sXbuWmJgYDhw4wPnz55k1axb29vZGW3d3d/7zn/8AMHr0aIoWLWrymIOCgpg3bx5RUVGsW7eOjh07JrsiPzg4mAcPHqRqntDQUACeP3+Ol5dXkm3DwsJS3DaOlZUVJUuWTFVMmc3CwuKl195++23c3Nzo2bMnt2/f5s6dOzx58oTChQunauzixYszatQoU4UaT65cuShcuDDFihXD1taWEiVKYGdnh52dHWXKlKFQoUIZMq+IiIi8ekrii4iIiIhIpvLw8OD+/fsANG/eHDMzs1cSR86cOZk4cSLNmzdn/PjxeHt74+/vT+/evXF0dMTR0REzMzOaNm3KsGHDmDdvHmFhYQwePJgtW7ZQtGhRk8Uyf/58AgICAOjatWuKSuqcOHHCqLufWpcuXaJFixYmb1u2bFn27t2bppgyWlzyPm5F/j8VL16cVatW8d133zFlypQ0nZPwzjvvULVqVS5fvhzvdXNzc6ytrY2P7Nmzkz17dnLlykXu3LmN/+bNmxcbGxvy589P/vz5sbGxoXDhwhQuXJicOXOmKAZfX198fHx45513EnxgISIiIq8fJfFFRERERCRT7d6927hu1arVK4wkVp06ddi6dSuTJk1i586dREdHs2DBAq5fv853331Hjhw5GDRoED4+PmzZsoVHjx4xfPhwVq9eTbZs6f8n1blz51i3bh0AhQoVYsiQIeke83X05MkTtm7dmmHjP3r0CIDHjx+zatWqRNvVrFmTX3/9Nd5rn3zySYof2vzyyy9ERESQLVs2LCwsyJYtW6ofVD169CjNK+t/+OEHNm/eTP78+fnll18oW7ZsmsYRERGRrENJfBERERERSVZAQAB+fn6p7leiRAny5ctnfB4eHs7OnTsBKF++PG+99ZbJYkyPXLlyMXv2bOrVq8c333xDREQEhw4d4saNG1SvXh2AKVOmcP36dTw9PTl79iyurq6MHj06XfOGhYUxfvx4oqOjjTny5s2bor5NmjTh2rVrqZqvR48enDp1infeeYe1a9cm2bZTp07GwbZr1qxJsm3jxo3x9fVNVSz/9OTJE2bMmJGuMVLi0aNHqZ6nWrVqKU7ix622Dw8PZ/fu3Xh7ezN06NAU9d2xYwerVq3C29ubgwcPpno3gJ+fH9u3bwegVKlSSuCLiIj8SyiJLyIiIiIiydq6dSsuLi6p7ufi4oKDg4Px+cGDB/n7778B+PTTT00Wn6l07NiRcuXKMXjwYAYNGmQk8CE2Obtw4ULatm1LYGAg//nPf2jcuDF16tRJ83zTp0/nr7/+AqBly5YZfshvXE38V1XCKCkJHTj7OnNycuLAgQMAVKxYMUUHIt+/fx9PT08AlixZwpgxY1I15w8//EBERARAmkstiYiISNajJL6IiIiISAbbtm0bFy5cMNl4gYGBADx9+pSpU6eabNyRI0emuO52Wq1fv964njVrFrNmzTLZ2FWrVmXLli3pHqd27drs3LmTggULvnSvePHiODs74+joSHR0NGPHjmXHjh3kyJEj1fPs3r3b+HrY2toyefLkNMXr5+fHH3/8kaK2cQ8MgoKC2LVrV5Jt437OHj9+nGzbkJCQFM2fFHNzc+N6yZIlNGrUKN1jvmjJkiW4uroCcP78+TR9z1LDyckJd3d3wsLC+Oabb7C3t4+3KyUhvXr1YvPmzdy+fZtffvmFfv36UaBAgRTN5+XlhZubGwDVq1enYcOG6X4PIiIikjUoiS8iIiIiksFOnDiRIbW+Q0JCjFrqpjB48OBEk/hVq1alR48eqR6zfPnyxvXly5c5depUmuPLTAkl8OM0adKEzp07s2HDBnx8fFi8eDHDhw9P1fhXr15l4sSJQOwK9Dlz5iSb4E3Mxo0bWbhwYarnd3JySlFbLy+vFLdNj4zeHZA7d27jOjg4OMOT+OXKlWPgwIHMnTuXgIAAZs+enexDN0tLSwYPHszIkSN5/vw5a9asYdiwYSma79tvvyUqKgqI/V0WERGRfw8l8UVEREREJFn16tWjXr166Rpj5cqVxrWtrS1WVlbpDYvIyEh8fHwATHLIbEqNGTOGY8eO4evry8qVK2nfvj2lSpVKUd8HDx7Qv39/goODARg3bhw1atRIcyy///57mvtmJXEJ6IzyYhL/2bNniR4cGxMTY7IHCn369GHr1q14e3vj5ubGF198Ee/BVkJatmzJvHnz8PHxYdOmTTg6Oib7s+3m5saJEycAaNasmVbhi4iI/MsoiS8iIiIiksFmzpzJzJkz09w/NDSU999/n6dPn1KkSBHMzMzw8/OjcOHCmJmZ8fDhQ3LlysWxY8cyvBxOWt28eZPdu3cDYGdnx969e01SA33Lli2MGzcOIF2J8NTKlSsX33zzDf369aNNmzYpLnkCsUni+vXrs23bNrp27Uq3bt3SHMfTp0+5ePEiAJ988glz585NtO2RI0fo378/EHuA7meffZbk2Kk52NYUIiMjM3T8F5P4QUFBibabP38+jx8/ZsyYMeTKlStdc1pZWTF69GgcHR2JiopiwYIFSX6PILas0GeffYaLiwv+/v64u7vTuHHjRNvfvn3bOKg3f/78aS7LJCIiIlmXkvgiIiIiIlncvn37ePr0KQCdO3c26r6bm5vTrl07Fi9eTHBwMHv27KF9+/avMtREzZ07l+joaCC21IepDjHduHGjcZ3Z771BgwZs27aNSpUqpapf8eLFmTFjBoMGDaJEiRLpiuHEiRPGCvZ33nknybbXrl0zritXrpyueTNC3IGs8H+7KrZt28bo0aPTNW7c+86bN6/xWmJJ/MePH7Nq1Sqjxr8pzpxo0qQJVatW5fLly+zfv5/79+9TvHjxJPu0bt2a77//nujoaM6cOZNkEn/atGk8e/YMgEmTJiVZCkpEREReT0rii4iIiIhkcZs3bwZi62W/mMQH6NChA0uWLCEmJoZNmzZlyST+6dOnOXDgABBbJ7xNmzYmGffatWt4eHgAUKdOnRQlpnfv3s2RI0cYM2ZMqlbPJya1CfwXlSxZMt3zHzt2zLiuXr06YWFhibaNK7diaWlJhQoVkmwLsTsGAKKjo5NtmxAzM7NUlUx6cY6M2FHy4vf7yZMnCbb58ccfCQkJwdzcPE1nQCSmR48e/PLLLzg4OJAnT55k2xcpUoQRI0ZQs2ZNateunWTbH3/8kW3btnHz5k1atGhhqpBFREQkC1ESX0REREQkC/Py8uL06dMANG3alMKFC8e7X7JkSd577z1+//13PDw8uH79OhUrVnwVoSYoIiKCKVOmGJ+PHz8eCwuLeG0ePXpkrHhu2bIlzZo1S9HYLx7q26tXr2Tb37t3j8mTJxMUFMR///tfRo4cSceOHVM0F4CHhwfh4eEpanv9+nXj+sqVKymeo0SJEqlK7r9YD79Dhw4p6hMREUGdOnVSPMcff/xB9erVU9w+zptvvpmqA51fTKzHJfE/+ugjowxTeuXPn9+4DggIeOn+zZs3Wb9+PQAODg5UqFDBJPMCtG3blrZt26aqT9++fVPUzsrKKlU/xyIiIvL6URJfRERERCQLW7RokbEiunfv3gm26dWrl5HMXbJkCbNnz860+JKzcOFCvLy8APj4449p0KDBS22ePHnCvn37AFKcXL53756xI6FMmTJJlhuJ8/DhQ2xsbAgKCiIwMJCJEyeyZ88enJ2dky1vAjBs2DD8/PxSFN+L4uqVp0S/fv0YOXJkitrevn2bu3fvpjqezJIvX75UtX+xxE1cLfrcuXPHq2WfHvnz58fCwoKoqCgeP3780n1nZ2ciIyPJkSMHQ4cOTdXYCxYsYOHChSaJM6O0a9cuXWdziIiIyKujJL6IiIiISBbl7e1trEJu1KgRb731VoLtGjRoYNTc3rNnD8OGDaNUqVKZGWqCTp8+zdKlSwHIkycP48ePT7Ddi7XQra2tUzT24sWLjX59+/bF3Nw82T41a9Zk586dLF68mGXLlhEREcHvv/9Oq1atmDx5ssnK/GSWYsWK8dtvvyXZJioqCmdnZ44cOQLAu+++m+KHCoMHD+bKlSvUqFEDV1fXFMf18ccfExUV9dKukeS8uBLfxsYmVX1TwszMjAIFCuDv74+/v3+8e60aXacAAB+kSURBVHv27OH48eMADBgwIN1nFYiIiIiYkpL4IiIiIiJZ1Pz5841DSx0dHZNsO3DgQAYPHkxUVBRLlizB2dk5M0JM1L179xg+fLhxmO2kSZMSXe3+YomauPebFB8fH2MVfqlSpWjXrl2K47K2tmbYsGE0a9aMsWPHcuXKFZ49e8aoUaM4deoUX3/9NdmzZ09yjFq1avHdd9+leM7k+Pn50b1791T3y549O3Z2donev3HjBhMmTODChQsAlC1bljlz5lCoUKEUjR9Xz97a2jrJeV7k5+dnfA/LlCmToj5x7t+/D8SW0nmxbvzff//N4cOHUzUWwHvvvUexYsXivVa0aFH8/f15+PCh8dqTJ0+M35cyZcrQp0+fVM/1ogEDBpjkvAVTcXV1TdOZBiIiIpJ1KIkvIiIiIpIFnTlzhp07dwLwwQcfJFuTvEmTJlSqVIlr166xdetWevToka5DV9Nr0qRJPHr0CIitB57UKvfAwEDjOjQ0NNmxp06daqzCHz58ONmypf6fNZUrV2bTpk0sXLiQpUuXEh0djZubG1euXGHRokUULVo00b7Zs2endOnSqZ4zMf88IyC9bt68yYoVK9i2bZuRUK9RowY//PBDihP4yQkPDycwMJDo6GjjIyIigv/85z9Gm7fffjtVY8Yl8f+5gv/u3buMGzcu1TEuXrz4pSR+8eLF8fT0NOYCcHFxwd/fHzMzM6ZMmZKqw3gT4uDgQPny5dM1hiktXLhQSXwREZHXnJL4IiIiIiJZTGRkpHHQa7Zs2RgzZkyyfczMzBg3bhw9e/YkKiqKadOmsWbNmowONVFTpkyhV69eFCpUiG+//TbJti8eMvrs2bMk2+7evRt3d3cgdqV1ixYt0hyjpaUlw4cPp27duowaNYpHjx5x+fJlhg4dyoYNG9I87qvw4MEDfvvtN3bs2IGHh4fxupWVFX369MHR0RFLS0uTzefn50eTJk0SvW9nZ5eqw3MBo75/Ug9Q0ituN8jdu3eJiYnB3d0dNzc3ALp06YK9vX2GzS0iIiKSVkrii4iIiIhkMStXruT69esAdO3alQoVKqSon729PY0bN+bQoUOcPn2aPXv28Mknn2RkqImys7Pj559/Jlu2bMmubI5bsQ/g6+ubaLugoCCmT58OxCbgJ02aZJJY33vvPbZs2cKgQYO4du0aEyZMMMm4GSUmJoZbt27h6enJ+fPnOXPmDDdu3IjXxsrKilatWjFo0CBKlixp8hhKlixJ9erVuXjx4kv3SpQowdy5c1P90ODmzZsAlCtXLtE2q1evpm7duone9/LySvLBjq2tLQDPnz/n6tWrxve6VKlSjB49OlXxioiIiGQWJfFFRERERLKQS5cuMX/+fAAKFCjA0KFDU9V/7NixHD16lIiICJydnalbt+4rq8+d0oNNvb29jes7d+4k2CYmJoYxY8YYB5L27duXsmXLpj/I/69o0aKsW7cODw+PZEsXXbhwgR49elC8eHGKFStGsWLFKFGiBKVKlcLOzs6kK94T4+TkxNWrV196vVKlSrRq1Yp27dql+mDZf5o/fz5hYWGJnhHg7OzMrVu3iI6OJiYmBjMzM4oUKUKNGjVS/TV4+PChsSMjpQ+t0uLFMkiDBw/G398fCwsLZsyYQc6cOTNsXhEREZH0UBJfRERERCSLCA4OZsSIEUa994kTJ8Y74DMlSpcuzaBBg5g3bx7+/v5MnjyZBQsWZES4JvPiKvKrV68SERHxUhJ4+fLlHDp0CIDq1asne9BvWmTPnj1F5VRCQkI4depUgvcsLCwoUaIEpUuXpmLFilSpUoXKlStTrly5NNXuT4iZmRlDhgzB0dGRIkWKULNmTezt7WnQoAGFCxc26uAHBwena548efIYP38JjWVra4utrS3m5ubkyJEjXXNduXLFuM7IJP6LD37iyvcMGTIk1aV/UsPb25uQkJAMG/9F+fLlo0SJEpkyl4iIiGQeJfFFRERERLKAmJgYJk6caKxKb9WqFS1btkzTWAMGDODQoUNcunSJ/fv3s2XLFj799FNThmsyUVFR8ZL4ISEhXL58mZo1axqvPXv2jOXLlwOxiWVXV9dMWe2emHz58lG0aFHu37/P06dP492LiorCx8cHHx8fjh07ZrxuZWVF1apVqVWrFm+//Tb29vbkzp07zTE0adIEd3f3l+rHd+/endOnT6d53LSwtbU1HrCkVdxDEQsLC9566y1ThJWguJ0ScQ/K3n//fb788ssMmw9iH8Zl1vekdevWfP/995kyl4iIiGQeJfFFRERERLKA+fPns3v3bgCKFSvG5MmT0zyWhYUF3333He3atSMsLIypU6dSpUoVqlSpYqpwTeb8+fMvHWa7b9++eEn83Llz4+bmxrBhwxgwYECG1HhPjbfeeosVK1YAsQ8YHjx4wN27d7l9+7bx4eXlxcOHD40+4eHheHh44OHhwcqVK/ntt9/SlcSHjD0ANrPFJfGrVKmS5NclNDQ0yR0GoaGhSc7j6elpXOfKlYtZs2ZhZmaWymhFREREMpeS+CIiIiIir9i2bdv48ccfgdgV23PmzCFv3rzpGrN8+fKMGzeOKVOm8Pz5cwYNGoSbmxsFCxZM9Vi7d+/Gw8MjzbGULl2azz//PMF77u7uxrWtrS2+vr5s374dJyeneKvtS5YsyaZNm7CwsEhzHCmxZ88e7ty5Q9++fROdy9zc3LjOnTs3FSpUSLAETEBAANeuXePq1atcunQJDw8P7t27R61atbCzs8uw9wBQsWLFDF9hvmbNmnT9XMTx8/Pjzz//BODdd99Nsm3//v3TPI+XlxcDBgwwVuGHhoaabEdHtWrV6Ny5MxC7U+NFTk5OBAYGMn/+fON9NmvWjHbt2qV73gcPHuDs7Gy8pxcffsVp0aIFISEh1KpVK93ziYiIyKuhJL6IiIiIyCt05MgRJkyYYHw+depU3n77bZOM/dlnn3Hp0iU2b97MvXv3GDJkCKtWrcLKyipV4/z++++4ubmlOY533303wSR+ZGQkW7duBaBMmTKMHj2aQYMG8ejRI7Zu3UqnTp3itc/oBH5kZCRz5szB29ubw4cPs27dunhzRkdHpyqOAgUKYG9vH6/Ovp+f30v10ZNbPZ4WBQsWTHM5ppQ6ePCgSZL4u3fvNr62TZo0Sfd4Cblx4wa9evUiMDDQeC0qKoo//viDDz/8MN3jf/jhh4mOE5c8L1u2LO3atSMkJIRDhw7Rs2fPdP2uBwQE4OLiYiTwO3funODv2dSpU9M8h4iIiGQNSuKLiIiIiLwiR48eZfDgwUYSrk+fPiZZnfuiKVOmcP36dS5dusTZs2cZOnQoCxYseKU15eMcOHAAPz8/ADp06MCHH35IiRIluHfvHosWLcLBwQFra+tMi2fLli3GmQS2trYvJevjku25cuVK8xxxJXDCwsI4dOgQO3fu5MiRI2kez1TWr19PcHAwRYsWpVWrVpk6d9yDnOLFiyeY1C5TpgyLFy9O9bjVq1cH4MKFCwwYMIC///4bgJ49e7JmzRqioqI4ceKESZL4KVGmTBm++eYbRo0aRUREBEOHDmXz5s1pKov09OlT+vTpw61btwBo3LhxukpwiYiISNamJL6IiIiIyCvw+++/4+joSHh4OACffvopo0aNMvk8VlZWLFy4kM8++4x79+5x+PBhRo0axezZs1O8otzZ2RlnZ2eTxhUZGcn8+fMByJkzJx06dMDc3Jz+/fszZcoUI5H/1VdfmXTexISHhxsljSwsLHB0dIx3PyYmxkjip7WWfUREBCdPnmTXrl3s378/ydrumc3FxYXg4GDs7e0zNYl/9OhRrl27BsQeyppQffo8efKkOdG+f/9+Ro0aZXzvBg4cyFdffcXFixc5d+4cBw8eZPz48Wl/A6nUpk0brly5wsqVK/H396dfv36sXr0aGxubFI8RGBhI//79jdI877zzDnPnzs3wnSoiIiLy6pgn30RERERERExp586dDBgwgLCwMABatWqFs7Nzhh2wWaxYMVasWEGBAgWA2Lrvo0ePNnYAvAobNmwwVhH36NGD/PnzA9CxY0fKlCkDwPLly7lx40amxPPzzz9z//59IDbRWq5cuXj3AwICjK9XoUKFUjxueHg4hw4dYuzYsdSvX5++ffuydetWI4FvbW1N3bp1TfQu0iY8PNyIJ72H7aZGTEyM8eDE0tIy0XMTEnL37l0GDBjAvn37ErwfHR3N3LlzGTp0KKGhoZiZmTF27FjjoVDcQwFfX18uXryY6Dxz5szhjz/+SHFcKTF69GjjQcm1a9fo06fPS4c7J+bhw4d8/vnnXLhwAYitgb948eJM3bEiIiIimU9JfBERERGRTLR8+XJGjhxpJIQ/+eQTXFxc4h2WmhHKlSvHihUrjCTtzp07+fLLL1+qz54ZfH19cXV1BSBv3rz06tXLuJctWzbGjRsHxK5cHzFihLFbIaMEBATwww8/ALHJ5H+uwofYA0TjFCtWLMnxgoKC2LVrFyNGjKBevXoMHDiQrVu38uTJEwBy5MhBs2bNcHV15cSJE0yfPt2E7yb17t27Z1yXKFEi0+bdunUr586dA8DBwSHRsjLbtm1jxYoVHD9+HIhN0H/55Zf897//ZezYsdy8efOlPtOnT2fRokXExMSQI0cO5syZE+/nrE2bNsbvXFw5n4QcOnSIbt26sWjRojS/z38yMzNj5syZNGjQAABPT0969erF48ePk+zn5eVF165djQdbtWrVYvny5Zn64EVEREReDSXxRUREREQyQUREBFOmTGHWrFnExMQA0K1bN1xdXTOtDMabb77JihUryJcvHwDHjh2je/fuySYPTSkmJobx48cbK49Hjhz5UimRRo0a0bZtWyB2pXJGJ7ldXV0JCgoCYr8nJUuWfKnN9evXjWtbW9uX7t+6dYsVK1bQvXt37O3tcXJyYufOncYK9zx58tCqVSvmzZvHiRMnmD9/Pi1btkxXfX1TiTsHAHhpB0JGMjc3J1u2bOTOnZthw4YBsQ9A5syZE6/U0E8//YSLiwt79+41+s2aNYvs2bMTEhKCo6PjSyvZBwwYQJkyZShfvjzr16/nk08+iXe/WLFivP/++wD8+uuvxgOWF8XExHD37l0AY9eMqVhaWvLjjz8aB/levHiRjh07GqWF/mnv3r106NABHx8fAOrVq8eKFSvIkyePSeMSERGRrEk18UVEREREMpifnx/Dhg3Dw8MDiF2J6+TkRP/+/YHY+vCpSVQHBgYCsYdbTp06NUV97Ozs6N27NzVr1mTt2rX07t0bf39/PD09ad++PfPmzaNGjRqpfGepN3fuXE6ePAlAnTp16NSpU4LtJkyYwKlTp7h//z6//PILb775ZqJt08PT05PNmzcDULBgQQYPHpxgu8uXLxvX5cuX5++//+bkyZMcP36c33//HV9f35f6FC5cmMaNG9OkSRPq1auHlZWVyeM3hbjV8AC1a9fOtHnbtm1LgQIFePjwIUWKFAFiV74vXryYzZs3s3PnzkRrxVepUoUJEybw9ddfc/v2bb7//numTJli3C9cuDDr1q0jd+7cZM+enejoaPz9/eOt9u/duzfu7u6EhISwcuVKhg8fHm+OGzduGDtVKleubOJ3H3texbx58xg7diw7duzA19eXLl26MH78eDp27AhAcHAwc+bMYc2aNUa/1q1bM3369Cz78yQiIiKmpyS+iIiIiEgGOnnyJE5OTsZqd2tra6ZNm0abNm2MNlFRUaxbty7VY4eEhKS4X40aNejduzcAFStW5JdffqFPnz54e3tz//59unXrxtixY1NVlzy19u3bx+LFi4HYMjozZ85M9ByAvHnzsnDhQrp160ZoaChTp07F1taW+vXrmyyemJgYpk2bRnR0NABOTk6Jrmw+deqUcT1w4ECu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nWTHitsdEbfq/kXnzp2je/fuCa5kT0zDhg1ZsmRJguWbIiMjyZbNdJvS586dy6JFixK9ny9fPurUqUP9+vVp1KgRtra2Jpsb/u/Biru7O8eOHTPOFkhI5cqV+fXXX9NV1kpEREQyn5L4IiIiIiKvmayYxA8ODqZDhw74+voydOhQevfubZJVzimxZ88epkyZQmBgYLIJ93v37hEUFETlypWTHDM8PJxp06YRHBzM7Nmz0x3jqlWrmDFjhvF5tmzZyJUrF8WKFaNq1ao0b948xbXgg4ODadSoEUFBQQneNzMzo2zZstSuXZu6devSoEGDNK26T42QkBD27t3Lxo0b8fDwMF4fMWIE/fv3T/f4Fy5cwM3NjT///BM/Pz+ePXtGeHg40dHRZMuWDWtra/Lly0fJkiVp2LAhn3/+eYIPBDJCcHAwzZo1w9/fH3Nzc0qXLk316tWpUaMGtWrVonLlypn2uxATE4OnpycnT57k0qVLeHp6xnt49OOPP/LRRx9lSiwiIiJiOkrii4iIiIi8ZrJiEh/Ay8sLgPLly2f63P7+/qxfv54hQ4aYdNyoqCgsLCxMOqYpfP/992zevJmiRYtSvHhxSpcuTZkyZahQoQKVK1dOtL56Zvjzzz9ZsWIFf/31Fxs3bjTpqvesytPTk6ioKCpWrJjqMwEyWkBAAJcuXeL27dt88cUXrzocERERSQMl8UVERERERMTksuoDEBEREZHXjZL4IiIiIiIiIiIiIiJZVOYU5hMRERERERERERERkVRTEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJItSEl9EREREREREREREJIv6f+3YsQAAAADAIH/raewojCQ+AAAAAABMSXwAAAAAAJiS+AAAAAAAMCXxAQAAAABgSuIDAAAAAMCUxAcAAAAAgCmJDwAAAAAAUxIfAAAAAACmJD4AAAAAAExJfAAAAAAAmJL4AAAAAAAwJfEBAAAAAGBK4gMAAAAAwJTEBwAAAACAKYkPAAAAAABTEh8AAAAAAKYkPgAAAAAATEl8AAAAAACYkvgAAAAAADAl8QEAAAAAYEriAwAAAADAlMQHAAAAAIApiQ8AAAAAAFMSHwAAAAAApiQ+AAAAAABMSXwAAAAAAJgKGyxEzYA8pHkAAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<Figure size 1500x1500 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAABfEAAAWsCAYAAACJtMnFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XmcV3W9P/D3LAwIjCyyCYioQIiCorhmWabX1NKUm2kJpqiphNxui7n8suWqLd5KS8nStM2lq0FqpV5SK8sUA8ERUcGdRcBxYARhBmZ+f/jw3Dnf2QeUD/B8/vV9n/l8zvt8jssfr+/5fk5RfX19fQAAAAAAAMkp3tIXAAAAAAAANE2IDwAAAAAAiRLiAwAAAABAooT4AAAAAACQKCE+AAAAAAAkSogPAAAAAACJEuIDAAAAAECihPgAAAAAAJAoIT4AAAAAACRKiA8AAAAAAIkS4gMAAAAAQKKE+AAAAAAAkCghPgAAAAAAJEqIDwAAAAAAiRLiAwAAAABAooT4AAAAAACQKCE+AAAAAAAkSogPAAAAAACJEuIDAAAAAECihPgAAAAAAJAoIT4AAAAAACRKiA8AAAAAAIkS4gMAAAAAQKKE+AAAAAAAkCghPgAAAAAAJEqIDwAAAAAAiRLiAwAAAABAooT4AAAAAACQKCE+AAAAAAAkSogPAAAAAACJEuIDAAAAAECihPgAAAAAAJCo0i19AcDWpb6+Pmpraxsd79SpUxQVFW2BKwIAAACAbZcQH2iX2traePLJJxsdHz16dJSVlW2BKwIAAACAbZftdAAAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFGlW/oCADbFl666O6rXrN/SlwG0UXm3znHVlz6+pS8DAAAAthpCfGCrVr1mvRAfAAAAgG2W7XQAAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFGlW/oC2HTLli2Lp556KhYvXhxr1qyJkpKS6N69ewwcODD23HPP6N+/f4fP/cILL0RFRUUsX748ampqYscdd4w99tgjxo4dG507d95sa6itrY25c+fGwoULo6qqKkpKSqJv376x1157xfDhwzdbn4iIlStXxhNPPBGvvvpqrF27Nrp27RpDhgyJsWPHRq9evTZrrwULFsTTTz8dK1eujI0bN0avXr1i+PDhMWbMmCgt9Z8fAAAAANAyKeJWqqamJqZPnx633XZbzJ8/v8WxI0aMiK9//eux//77t+nc9fX1MX369Ljxxhtj4cKFTY7p2rVrnHTSSTF58uTo3bt3u6//HStXrozrr78+pk+fHtXV1U2OGTp0aJx99tkxfvz4KCoq6nCvxx57LKZNmxb//Oc/o66urtHfS0pK4vDDD4+pU6fGyJEjO9ynpqYmbrnllvjlL38ZixcvbnJMz54945RTTolzzjknunXr1uFeAAAAAMC2rai+vr5+S18E7TN79uy46KKL4sUXX2zznP/3//5fnHbaaa2Oq6ysjAsuuCBmzZrVpvP27t07rrnmmjjggAPafC3v+Mtf/hJf+cpXoqqqqk3jDzvssLj66quje/fu7eqzYcOGuPLKK+PXv/51m8Z36tQpvvKVr8TEiRPb1Sci4uWXX47JkyfHs88+26bxgwcPjuuvvz6GDRvW7l5bSk1NTTz55JONjo8ePTrKysre8+v53DfuiOo169/zvkDHlHfrHNdf9u9b+jIAAABgq2FP/K3MjBkzYuLEiY0C/OLi4hgyZEiMGTMmRo4c2aGn4ysrK+PUU09tFOCXlZXFbrvtFsOHD28U0lZWVsakSZPiiSeeaFev++67L84777xGAX6PHj1i1KhRMWDAgEZP3T/88MMxadKkWL++7YFtXV1d/Od//mejAL+4uDgGDhwYo0aNivLy8tzfamtr4/LLL4+bb765XWt68cUX45RTTmkU4O+www4xYsSIGDp0aHTq1Cn3t1dffTVOO+20eOmll9rVCwAAAADYPthOZyty7733xkUXXZTbCmbYsGFx1llnxZFHHtkojF62bFk89NBD8bvf/a7Vc9fV1cWU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x4477pjVv/71r9sUrq9atSquuuqqrB40aFAcf/zxLc4pvH+XXXZZ1NXVtdrrrrvuym2/85nPfCbKy8tbnQcAAAAAbD+E+IkbP358Lhj/3e9+Fz/+8Y9bnLNu3bo4//zz4+WXX86OHXvssY1e+PqOcePGxbhx47L6lVdeiS996UstPiX/wgsvxJe//OVs653S0tI499xzW13PWWedlfs1wM9//vO46667Wpxzyy23xB133JHVY8eOjUMPPbTFOd27d4/TTjstq2tra2Pq1KmxZMmSZuesWbMmpk6dGq+//np27Nxzz81tN9SU4447LgYPHpzVc+bMiW9961stBvnvjGl4vaeffnqLfQAAAACA7U/J17/+9a9v6YugecXFxbHrrrvm9sN/7LHHYu7cuTFkyJAYMGBAdrympiZmzpwZU6dOjYqKiuz44MGD4/rrr4/OnTs322evvfaKO++8Mwuen3/++Xj44Ydj5513jl133TUbt379+rj99tvjK1/5SqxYsSI7Pnny5PjoRz/a6np69eoVa9eujdmzZ0fE21vdzJw5MyorK2PYsGG5p+dfeeWV+N73vhfXXXdddqxLly7x05/+NHr37t1qrzFjxsQf//jH7An+qqqq+OMf/xjl5eUxfPjw7MuE+vr6eOihh+LLX/5yPPHEE9n8gw8+OC655JIoKipqsU9xcXEMHTo07r777uzYk08+GXPnzo1dd90198+ouro6br755rj00ktjzZo12fFvfvObsd9++7W6phRs3Lgxli9f3uh4//79G23X9F645y/zo6Z243veF+iYzmWl8fEPNf2lMgAAANBYUX173mLKFnPdddfF1Vdf3eh47969Y+edd46amppYvHhxrF27Nvf3AQMGxI033hjDhg1rtccdd9wRl1xySaPj3bt3j8GDB8e6deti8eLFUVtbm/v7McccEz/4wQ9aDbvfUVtbG2effXbupbsREUVFRdGvX7/o06dPLF++PFauXJl7yW5paWlcffXVceSRR7apT0TEggUL4tOf/nQuMI+IKCsri0GDBkXnzp3jlVdeafT33XbbLW699dbo1atXm3tdc801ce211zY63rNnzxg4cGBUV1fH0qVLY8OGDbm/n3nmmXHhhRe2uc+WVlNTE08++WSj46NHj46ysrL3/Ho+9407onpN296tAGx55d06x/WX/fuWvgwAAADYangSfytxwAEHRHl5eTz66KO5bVreeuutWLFiRVRWVjYK10ePHh0///nPc0/St2TUqFGx8847x8MPPxwbN/7fk801NTWxcuXKqKqqyvUuKiqKCRMmxLe+9a0oLm77zkwlJSVx9NFHx8KFC+P555/P/W3NmjWxYsWKRl9G9OzZM6655pr48Ic/3OY+ERF9+vSJQw89NB566KFcUL9x48aoqqqKlStXNrpvBx54YNxwww1tetq/oYMOOihKSkpi1qxZuS8f1q1bFytWrIjVq1fn7l9paWl84QtfiKlTp7arz5bmSXxgU3gSHwAAANrHk/hbmYULF8Y111wTDzzwQKPw+R3ve9/74rOf/WyceOKJbX46vqFFixbFD3/4w3jggQcaPTUe8fb2MQcffHBMnjw5t5d+R9x9990xbdq0WLRoUZN/Ly8vjxNPPDHOO++8dofqDa1atSqmTZsWv/3tbxs9df+O4cOHx6RJk+ITn/hEh+7bO+bOnRs//OEP45FHHomm/vPq1KlTfPjDH47JkyfHyJEjO9xnS/EkPrApPIkPAAAA7SPE30pVV1fH7Nmz46WXXoo1a9ZEt27dom/fvjF69OjcS1Y3xRtvvBH/+te/4pVXXom33norunbtGoMHD46xY8fGTjvttFl6vOO5556LioqKWLFiRdTV1UWPHj1i+PDhMWbMmM0aDNfU1MTs2bNj0aJFsXr16igtLY0BAwbE3nvvHbvttttm6xMR8dprr8WcOXNi8eLFsX79+ujevXvsuuuuMXbs2Nze/1sbIT6wKYT4AAAA0D5CfKBdhPjAphDiAwAAQPu0fSNzAAAAAADgPSXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfABqdQdPAAAgAElEQVQAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEiUEB8AAAAAABIlxAcAAAAAgEQJ8QEAAAAAIFFCfAAAAAAASJQQHwAAAAAAEiXEBwAAAACARAnxAQAAAAAgUUJ8AAAAAABIlBAfAAAAAAASJcQHAAAAAIBECfEBAAAAACBRQnwAAAAAAEhU6Za+ANK3ZMmSmDdvXixdujTWrVsX3bt3j6FDh8bYsWOje/fum61PXV1dVFRUxDPPPBNvvPFGRET07t07Ro4cGXvttVcUFRVttl6rV6+OOXPmxEsvvRRr1qyJLl26xMCBA2PfffeN/v37b7Y+EREvvPBCVFRUxPLly6OmpiZ23HHH2GOPPWLs2LHRuXPnzdoLAAAAANi2CPG3AkcccUQsXry4w/MPOeSQuPnmm9s9b+bMmfHTn/405s6d2+Tfy8rK4phjjokpU6bELrvs0uHre/PNN+PnP/953HbbbfH66683OWbAgAFx+umnx4QJE6JTp04d7rVgwYK49tpr48EHH4za2tpGfy8qKooDDjggpkyZEgceeGCH+9TX18f06dPjxhtvjIULFzY5pmvXrnHSSSfF5MmTo3fv3h3uBQAAAABsu2ynQyNr166NCy64ICZPntxsgB8RUVNTE7///e/j+OOPj3vvvbdDvebNmxcf//jH49prr202wI+IWLZsWXznO9+JT33qU/Haa691qNdPfvKTGD9+fNx///1NBvgRb4fvjz32WEycODGuuuqqqK+vb3efysrKmDBhQlx00UXNBvgRb9/nX//613HcccfFrFmz2t0HAAAAANj2CfHJWbduXZx55plx33335Y6XlpbGkCFD4n3ve1907do197e1a9fGF77whbj//vvb1Wv27NkxceLEWLJkSe54t27dYuTIkTF48OAoKSnJ/e2pp56KCRMmRGVlZbt6XXHFFfGDH/wgNmzYkB0rKiqKfv36xV577RU9e/bMja+vr4+f/exnccUVV7SrT2VlZZx66qmNQvmysrLYbbfdYvjw4VFWVtZozqRJk+KJJ55oVy8AAAAAYNtnO52tzGGHHRaTJk1q15zCgLoll1xyScyZMyc397zzzouTTz45C+/r6+vj/vvvj+9///vx4osvRsTb+9lfeOGFseeee7Zpa53ly5fH+eefH2+99VZ2bOzYsTF16tQ45JBDsmNVVVVx8803xw033JA9Pf/SSy/FV7/61fjpT3/apjX99re/jV/84hdZXVJSEp/5zGdi0qRJMWDAgOx4RUVFfP/734+///3v2bFf/vKXsd9++8UxxxzTap+6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anLc5rh/DefsueeeTX4xAQAAAABsf4T426jKysrc090DBw7Mvey1oVGjRkWfPn2y+v77748333yzzb2WL18e//jHP7L6sMMOi+Lipv/VKgy8p0+f3uY+EREzZszIhfHNhfglJSVx6KGHZvXixYtzXzS0xe9///vsc//+/WPkyJFNjjv00EOjtLS02Wtszbx583JfuDS3JgAAAABg+yPE30Zdf/31sWHDhqwuDM8bKioqio9+9KNZvXbt2naF67fffnts3Lgxq08++eRmxx588MG5bX3uvffeJl+425Ta2tq44447snrIkCFx8MEHNzv+mGOOydW/+c1v2tQn4u1fFjTcD/+Tn/xks2O7d++eu7+LFy+OBx98sM29brnlluxzSUlJjB8/vs1zAQAAAIBtmxA/cXV1de2e89BDD8WvfvWrrC4uLo7TTjutxTlnnHFG7mnya665JpYvX95qr5dffjluuOGGrN5vv/3ioIMOanZ8586dY+LEiVm9bt26+K//+q9W+0RE3HDDDbmX7p5zzjlRUlLS7Pijjjoqtwf//fffH3/9619b7VNbWxvf+ta3srpbt265a27KWWedlauvuOKKNr3g9vHHH48ZM2Zk9bHHHhtDhgxpdR4AAAAAsH0Q4ifupJNOatce69OnT4//+I//yD0Zf9JJJ8WIESNanDd48OA47rjjsnr16tVxwQUXxKpVq5qds3LlypgyZUqsW7cuOzZ58uRWr/Ezn/lM/H/27jRMqurcH/ZT0DRTAy0gswSUKKAIOCfByyE5McgxRhwJAacYBxSjxr8BJdGjgImix9kgmmjieDQOUaOEaByTKAIiIo6IyCBjy2x3Q70feKlQ3QzdTUnvgvu+rr6stWvv9axdxnz41apnFxUVZcbPPvtsjB07dovXTJgwIW6//fbMuH379nHsscdu8Zo6derEWWedlXVs2LBhMWPGjM1eU15eHsOHD48PP/wwc2zQoEFZ/fU35YADDogDDjggM549e3b84he/yHowbkUzZ86MSy+9NNN6p6CgIM4555wt1gEAAAAAdi5C/IR77733YtCgQXHiiSfGI488Ep9//nmlc1auXBl///vfY/DgwfHLX/4yawd4jx494vLLL69SrUsuuSQrrJ48eXKcdNJJ8eyzz2Z9KVBeXh5PPfVUnHzyyVmBeP/+/aNPnz5brdOsWbO45JJLso6NGTMmLr744qzwPGL9g2yvu+66GDp0aJSWlkbE+nB+1KhRUVhYuNVa/fv3j969e2fGixYtioEDB8Y999xTqe//xIkT47TTTounnnoqc2yPPfaI8847b6t1IiJGjBgR9erVy4wnTJgQAwcOjFdeeSXrvK+++iruv//+GDBgQMydOzdz/Nxzz40uXbpUqRYAAAAAsHNIpavzBE62u7322qvSsRYtWkSLFi2ifv368eWXX8bcuXOz+t9vsM8++8Rdd90VzZs3r3K9V199Nc4+++xK8zVs2DA6dOgQ6XQ6Pv/886zd9xER+++/f/z+97+P+vXrV7nWZZddltVKZoOWLVtG69atY+nSpTF//vxKLYVGjBix1fZAG5s/f36ceOKJldoD1atXL9q2bRtFRUUxZ86cSr86aNmyZTz44IPVam/z6KOPbvJLk6KioujQoUOsWbMm5syZE2VlZVnv9+3bN2688cZIpVJVrlVbSktL45133ql0vEePHlX6YiXXzr7q0Vi+cvO/eACSpUnj+vG7X59Q28sAAACAvCHET7hNhfhbU1BQEKeeempcdNFFWTvDq+qll16KSy65JJYvX16l8/v27RujR4+Ohg0bVqvO2rVr4+qrr44HH3ywSuc3bNgwfv3rX8dxxx1XrToR63v3n3322fHJJ59U6fy99torbrvttthtt92qXevRRx+Nq666KvPLgS1JpVLxk5/8JIYNG7bF/v5JIsQHtoUQHwAAAKqn7pVXXnllbS+CzevVq1csWbIk5s+fn9XSZlPatm0bJ510Utxwww1x1FFH1TgU7tSpUxx77LGxbNmy+OSTTzZbt2fPnvHrX/86zjvvvBp9WVCnTp04/PDDo2fPnjFr1qz44osvNnlegwYN4oc//GHceOONW3xo7pY0a9YsTjzxxKhXr158+OGHm33obPv27eP888+Pa665JnbZZZca1erevXscddRRsXDhwpg1a9YmH05cp06d+Na3vhXXXnttnHLKKVGnTv50tlq7du0mH3rcunXrWvki4umXpkdp2Zb/2wCSo35hQRxzePfaXgYAAADkDTvx88Tq1avjgw8+iFmzZsWSJUtizZo1UadOnWjatGk0b948unfvHh06dMh53ZUrV8Zbb70VM2fOjJUrV0aDBg2ibdu20bNnz2jXrl1Oa82ePTumTJkS8+fPj/Ly8mjatGl0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gB+x/nP+05/+FP369Ys333yz2nUAAAAAgJ2DEH8HsHr16hgxYkSNQueNrVmzJs4444x4/vnns44XFBREx44dY6+99opGjRplvbdq1aq46KKLYvz48dWqNWnSpBg8eHDMnTs363jjxo2ja9eu0aFDh6hbt27We++++24MGjQolixZUq1ao0aNihtvvDHKy8szx1KpVLRq1Sr23nvvKC4uzjo/nU7HXXfdFaNGjapWnSVLlsSAAQMqhfKFhYXRuXPn+OY3vxmFhYWVrjnzzDNjypQp1aoFAAAAAOwctNPZAdx4443x2WefRUTErrvuGgsXLqzRPJdffnlMnjw5My4uLo5zzz03TjrppEx4n06nY/z48XHDDTfEp59+GhHr+9lfdtll0a1btyq11lmwYEGcd955sXr16syx3r17x4UXXhjf+ta3MsdKSkriD3/4Q4wbNy6ze37WrEQhmJcAACAASURBVFnxy1/+MsaOHVule3rkkUfi3nvvzYzr1q0bAwcOjDPPPDPatGmTOT5t2rS44YYb4rXXXsscu++++2K//faLvn37brXOunXr4oILLsh8JhER7dq1iyFDhsSxxx6baQNUVlYWTzzxRNx0002Zf09fffVVDB06NJ5++ulo2rRple4LAAAAANg52Imf56ZMmRJ//OMfM+PBgwfXaJ4JEybE008/nRm3bt06HnjggTjttNOydt+nUqk46qij4sEHH4yuXbtmjq9atarKO9evvPLKzMNrIyL69esXf/zjH7MC/Ij1XyL8/Oc/j1tuuSVrB/tLL70Uf/vb37ZaZ/78+TF69OjMuF69enHjjTfG5ZdfnhXgR0Tss88+MW7cuDj22GOzjo8cOTLWrFmz1Vr33XdfTJw4MTPec8894+GHH44TTjghq49/vXr14sQTT4wHHngg2rZtmzn+xRdfxM0337zVOgAAAADAzkWIn8dKS0tj+PDhsW7duoiI6NOnT/Ts2bPa86xduzauu+66zDiVSsXNN98ce+yxx2avad68eaVw/YUXXogZM2ZssdbEiRPj73//e2a85557xm9/+9stPrD2iCOOiHPPPTfr2O23377FOhERN998c6xatSozvvDCC+Ooo47a7Pl16tSJkSNHZt33woULt/qsgeXLl8cdd9yRGTds2DDuuOOOaNWq1Wav6dixY1x//fVZxx5++OEtPhsAAAAAANj5CPHz2G233RYff/xxRKxvE3PRRRfVaJ4XXnghqw3MiSeeGL169drqdR07dozTTz8969hDDz20xWvuvvvurPFVV10VBQVb7+r005/+NNq3b58ZT58+PaZOnbrZ8xctWhRPPfVUZtylS5dKa92UevXqxfDhw7OObe2eHnvssSgpKcmMzznnnOjQocNWax1wwAHx3//935lxaWlp/PnPf97qdQAAAADAzkOIn6emT58e48aNy4xPP/302GeffWo012OPPZY1PvXUU6t87cknnxypVCoz/tvf/pb5ZUBFixcvjpdeeikz7tGjR+y3335VqlNYWBj9+/fPOvbcc89t9vy//OUvmT76ERE//vGPq/RlQcT6XzRs3Nv/448/jo8++miz52/8+RUWFsaAAQOqVCci4pRTTskaV3yoMAAAAACwcxPi56Hy8vIYPnx4lJeXR0REp06dYujQoTWaa8WKFVkPc+3Ro0d06dKlyte3b98+9t9//8x40aJFMX369E2e+/e//z3Wrl2bGR933HHVWmvFfvWvvPLKZs/dOAwvLCzM2vFeFcccc0zW+OWXX97keZ9++ml88MEHmfGRRx4ZzZo1q3KdAw44INq1a5cZT5s2LZYsWVKttQIAAAAAOy4hfh4aO3ZsvPfeexGxvn/9yJEjo379+jWa66233orS0tLM+LDDDqv2HIccckjWeNKkSZs87/XXX88aV7fWbrvtltVS58MPP4xly5ZVOm/lypVZrXZ69epVrWA9YvvdUyqVioMPPjgzTqfTMXny5GrNAQAAAADsuIT4eeajjz7KeqjrwIED44ADDqjxfBUD45o8GHfffffNGm/4gmFLtXbdddcq9Y2vqEePHpnX6XQ63n///UrnTJ06NWvHf03uaZ999ok6df7zn0dV7qmmtTa+py3VAgAAAAB2PkL8PLJu3boYPnx4ptd7+/bt45JLLtmmOWfMmJE1rhjIV0XFXvyffPJJpXNKSkpi/vz5m72mprU2PNh3Y7m4p8aNG0fnzp0z4zlz5sSaNWu2WKtJkyax++67V7tWxRB/U58fAAAAALBzEuLnkT/84Q/x9ttvZ8ZXX311NGrUaJvm3DgwbtKkSRQXF1d7jhYtWmS185kzZ06lcyqG7Rs/OLY6Nu4fHxExd+7cr61W27ZtM6/T6XTMmzcv6/10Oh0zZ87MjNu3b5/1kN+a1InY9D0BAAAAADsnIX6emDVrVtx0002Z8fHHHx/f+c53tmnOisF0xTC5Olq1apV5vXjx4qx2NhGVg+ma1mrdunXWeMGCBZXOqVirTZs2X0utBQsWZH4VEVHze2rRokXUq1dvs3UAAAAAgJ2XED8PpNPpuOKKKzLtXFq1ahXDhg3b5nmXLl2a9VDbiqF1dWx87bp162L58uVZ71cMpnMVrJeUlFQ6Z+NaDRo0iF122SUntb788svN1tnU+VVVp06daNmyZWa8qXsCAAAAAHZOBbW9ALbugQceiDfeeCMzvvLKK6NJkybbPO+yZcuyxtsyZ8OGDbPGy5cvz2rNU7FWUVFRTuqsWLGi0jkbh+01rbOpWhW/mPi6Pr9Vq1bFunXrsh6smw/Ky8tr1E6oujb+1QKwY9j4V00AAACQBEnKoIT4CTd37twYM2ZMZtyvX7/47ne/m5O5K4bSG/e1r66K1268wz+XtbZWJyI72M+He6p4bTqdjrKysm2arza89957X3uNgoKC6Nmz59deB9i+pk+fHuXl5bW9DAAAAMjYf//9a3sJGfm11XcnNGLEiFi5cmVEROyyyy5xxRVX5GzuijsfCwsLazxXxcC5YhhTsVauQvxNhT4b18qHe9rUtXalAgAAAAARQvxE+/Of/xyvvvpqZjxixIho3rx5zuav+PDZbQm8CwoKtjiuGIDX9OcoW6tTsda2/Oxla7Uqfn65rJWkn+sAAAAAALVHiJ9QCxYsiGuvvTYzPvLII6Nfv345rVExKN5Ua5qq2vDQ3Q0aN268xVo13WlesU6jRo0qnbNxrW3Z0f7VV19tsVau7iki+77q1q2bd610AAAAAICvh574CXXVVVdlHtDatGnTuOqqq3Jeo2IovS0hfsVrKz4UtmKoXzEgr6qK11WsE7H+vjasZ1vuaWshfsVxTe8pInudm7qnfNCtWze/IABqpHv37rW9BAAAAEgsIX4CPfvsszFhwoTM+LLLLotWrVrlvE7FsHhbQuiKO+Qrzp2rWlsL1jccKykp2aY6EdvvnirWytcQv6CgQIgP1Ij/7wAAAIDN004nYZYsWRJXX311Zvyd73wnTjjhhK+lVsXd8UuWLKnxXIsXL868btasWaX++hXD9prW2rhORETLli0rnbNxrS+//DLWrVtXo1oV11ixVq7uKSL7vnbdddcazwMAAAAA7FjsxE+YMWPGZIXBr732Wuy11141nm/YsGExbNiwzLh9+/bxwgsvRETELrvsEg0bNozVq1dHRMS8efNqXGf+/PmZ1506dar0frt27bLGNa1V8bpN1Wrbtm189NFHEbG+T/3ChQujdevW21QrlUpVqpWre1q+fHmsXLkyM97UPQEAAAAAOyc78RPms88+2261UqlUdOzYMTOeN29epNPpas+zcuXKWLZsWWa8qRC64rGaBt4bf1lQ1Vpz586tUa2N19imTZto0KBB1vstW7aMJk2a5LROhBAfAAAAAPgPIf5ObuPAuLS0ND799NNqz/Hee+9ljXffffct1omI+OCDD6pdJyJi+vTpW63VuXPnba5VVlaW2c2/uToREd/4xjcyrz///PPMrxqqoyr3BAAAAADsnLTTSZjLLrssa1d7db366qtx9913Z8Znnnlm9OnTJzOuX79+1vndu3eP559/PjOeNGlSpRB8ayZPnpw1Puiggyqd06hRo+jUqVPmS4Jp06ZFaWlppd75WzNlypTM606dOm2yTU63bt2yxpMmTYqTTz65WnXee++9rAfVbuqeItZ/ftOmTYuIiPLy8nj77bfjkEMOqVatje9pS7UAAAAAgJ2PED9h9tlnn226vmK7mS5dusS3v/3tzZ5/6KGHxo033pgZv/HGG3H88cdXq+a///3vzOvi4uLo1avXZmttCPHLyspi0qRJ1Qq8Fy5cGJ988klmfNhhh23yvJ49e0azZs3iyy+/jIiIN998M9LpdKRSqSrX+te//pU1Pvzwwzd53qGHHhqPPPJIZvzGG29UO8R/4403Mq+7detWo/79AAAAAMCOSTudnVz37t2jZcuWmfH48eNjxYoVVb5+wYIF8frrr2fGffr0iTp1Nv0/q0MPPTRr/Pjjj1drrU888URWz/7Nhfh169bN+uJizpw5WV80VMWTTz6Zed26devo2rXrJs/79re/HQUF//kurOIat2bq1Knx8ccfZ8abuycAAAAAYOckxN/JpVKp+MEPfpAZr1q1qlrh+sMPPxxr167NjE866aTNnnvIIYfELrvskhk/99xzsXjx4irVKSsri0cffTQz7tix4xZ3vPft2zdrfP/991epTsT6XxZs3A//xBNP3Oy5RUVFWV9OzJkzJ1588cUq13rggQcyr+vWrVvtX0EAAAAAADs2IT5x+umnZ+0mv/nm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SZPYfffdY88994zCwsIcrQ4AAAAAAHJjpwzxAQAAAAAgH+R1T3wAAAAAANiRCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEionSbET6fTtb0EAAAAAAColoLaXkCuzZs3L15//fWYNGlSTJ8+PZYsWRJffvllfPXVV9G4ceMoLi6O1q1bx/777x8HH3xwHHjggVFYWFjbywYAAAAAgEp2mBB/8uTJcc8998QLL7wQ69ati4jKu+9XrFgRK1asiDlz5sSkSZPirrvuihYtWsTpp58eAwYMiEaNGtXG0gEAAAAAYJPyvp1OaWlpXH311fHjH/84JkyYEGvXrs2E96lUapN/EesD/nQ6HYsWLYrrr78+fvCDH8TEiRNr81YAAAAAACBLXof4X375ZZx88snxwAMPZEL5DUH9hvHm/iIi69wFCxbEaaedFvfdd18t3xUAAAAAAKyXt+10SktLY8iQIfHee+9FRGTtsG/evHkcfvjh0aNHj9hjjz2iSZMm0bhx41i1alUsX748Zs6cGVOnTo1//OMfsWjRosy15eXlMXr06GjatGn86Ec/qrV7AwAAAACAiDwO8ceMGRMTJ07MCu/btGkTl156aXz/+9+PevXqbfbaAw88ME466aQoLy+P559/Pq677rqYP39+Zlf+iBEjonPnztGzZ8/tdTsAAAAAAFBJXrbTmTNnTjzwwAOZ0D0i4vDDD4+nn346+vXrt8UAf2MFBQXRr1+/ePrpp+Owww7LtOMpKyuLkSNHfp23AAAAAAAAW5WXIf64ceOirKwsIta30TnwwAPjlltuiaKiohrNV1RUFLfccksccMABmS8F3nnnnZgwYULO1gwAAAAAANWVlyH+Sy+9lNmFX1BQECNHjqzy7vvNKSwsjGuuuSYKCgoyLXoeffTRXCwXAAAAAABqJO9C/E8++STmzp0bEet34ffr1y922223nMzdqVOnOProoyOdTkc6nY5///vfmR3/AAAAAACwveVliB8RmbY3hx12WE7nP/zwwzOv16xZE2+//XZO5wcAAAAAgKrKuxB/yZIlWeO99947p/NvmG9DS50FCxbkdH4AAAAAAKiqvAvxS0pKssbNmzfP6fwtWrTIGi9evDin8wMAAAAAQFXlXYjfoEGD7Vpv9erV27UeAAAAAABskHchfsWd97neKV+xXU9xcXFO5wcAAAAAgKrK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1pTZa1cN8XNycoT4QIP4dwcAwNfHdy+AXY898ZugCy+8MI444ohUvW7dunjiiScqzcsM9detW9fgnmvXrk29bteuXaX99TPD9ob2qtgnIqJz586V5lTs9fnnn0dZWVmDemWeY2avxlpTRPq6unTp0uD3AQAAAACaFiF+E3XxxRen1TNmzKg0p0OHDml3fa9cubLB/QoKClKv+/TpU+nv3bt3T6sb2ivzuKp6devWLfW6pKQkVq9evcO9srKyKvVqrDVt2rQpCgsLU3VVawIAAAAAdk9C/CZqyJAh0a5du1Q9f/78SnOysrKid+/eqXrlypVRXl5e716FhYWxcePGVF1VCJ051tDAu+LFgrr2WrFiRYN6VTzHrl27RsuWLdP+3rlz52jbtm2j9okQ4gMAAAAA/0eI30Q1a9Ysunbtmqq3bNlS5Z7tFQPj4uLi+OSTT+rda8GCBWl1v379auwTEbFo0aJ694mofDGiql59+/bd4V4lJSXx0Ucf1dgnImKvvfZKvf7000/jiy++qHevuqwJAAAAANg9CfGbsIp3jmdnZ1f58JrMp9K/88479e4ze/bstPqQQw6pNKd169ZpQf68efOiuLi43r3mzJmTet2nT5/Iz8+vNGfgwIFpdUPWtGDBgrSLHlWtKSL98ystLY1333233r0qrqmmXgAAAADA7keI34StWbMm9bpjx47RrFnl/7i/+c1vptVvvfVWvfv8/e9/T71u3759DB06tMp5FXuVlJTUO1xfvXp1LF68OFVXfHhvRZlbCf3jH/+o9zZBf/vb39Lqb33rW1XOa4zPr+IxAwcOrPLCBAAAAACwexLiN1GffvppLF++PFXvt99+Vc7bf//9o3Pnzql6+vTpsXnz5jr3WbVqVbzxxhupetSoUVVeLIioHHg/9dRTde4TETFt2rS0ML66ED87OzsOO+ywVL18+fK0Cw118ec//zn1Oj8/PwYMGFDlvMMOOyxycnKqPcfazJ07Nz7++ONUXd2aAAAAAIDdkxC/iXrsscfS6qOOOqrKeVlZWXHsscem6i1bttQrXJ8yZUps27YtVZ9yyinVzh05cmR06NAhVT///POxdu3aOvUpKSmJJ598MlX37t07Ro4cWe380aNHp9WPPPJInfpEbP9lQcX98MeNG1ft3Ly8vLSLE8uXL49XXnmlzr0effTR1Ovs7Ow46aST6nwsAAAAAND0CfET7H/+53/qvQ1MRMSsWbPid7/7Xapu27ZtpVC7orPPPjvtbvJJkybFqlWrau2zdOnSuP/++1P1QQcdFIceemi181u0aBFnnnlmqi4qKopf/OIXtfaJiLj//vvTHrp7wQUXRHZ2drXzv/Od76TtwT99+vR49dVXa+1TUlISP//5z1N1mzZt0s65Kuedd15afdNNN9XpAbdvv/12TJs2LVUfd9xx0bt371qPAwAAAAB2H0L8BLvlllvivPPOS9tupTYzZsyICy64IEpKSlJjl156aXTs2LHaY3r27BnHH398qt64cWNMnDgxPv/882qPWbNmTUyYMCGKiopSY5dcckmt53f66adHXl5eqn7uuefi3nvvrfGYGTNmxOTJk1N1jx49YsyYMTUe06xZszj//PPTxq6++upYuHBhtceUlpbGNddcEx9++GFqbPz48Wn761dlxIgRMWLEiFS9bNmyuOKKK9IejJtpyZIl8ZOf/CR1kSYnJycuuuiiGvsAAAAAALsfIX7Cvf7663H88cfHj370o3juuedi3bp1leZs2bIlZs6cGRdccEFccsklaXvaH3vssTF+/Pha+1x++eVpYfXs2bPjlFNOieeeey5tu5zS0tJ4+umn49RTT00LxMeOHRujRo2qtU+7du3i8ssvTxu77bbb4sc//nFaeB6x/UG2t9xyS0ycODGKi4sjYns4f9NNN0Vubm6tvcaOHRvDhg1L1WvWrInTTz89HnzwwUr7/r/99tvxwx/+MJ5++unUWP/+/eNHP/pRrX0iIq677rpo3rx5qp4xY0acfvrp8dprr6XN27p1azzyyCNx2mmnxYoVK1LjF198cey999516gUAAAAA7D6yyhuyXwtfi6OOOirt4bQR2/ew79y5c3Ts2DFyc3Nj48aNsXz58igtLa10/LHHHhu33nprWrhck9dffz0uvPDCSu/VqlWr6NmzZ5SXl8enn36advd9RMTw4cPjoYceihYtWtR5bVdeeWXaVjJf6ty5c+Tn58f69eujoKAgysrK0v5+3XXXxRlnnFHnPgUFBTFu3LhK2wM1b948unXrFnl5ebF8+fJKvzro3LlzPPbYY/Xa3ubJJ5+Ma6+9ttJ4Xl5e9OzZM4qKimL58uVpv5KI2L5//x133BFZWVl17rUzFRcXx3vvvVdpfPDgwXW6uNLYLrzh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pvp90Vm3bl2cdtpplQL83Nzc6Nu3b+yzzz6VQu5169bFueeeG3PmzKlXLwAAAABg92A7nYR76KGHYtu2ban6gAMOiO9///tx5JFHRufOndPmfvbZZ/HHP/4xHnzwwSgsLEyNXXrppTFlypRo1qzmazbXXnttzJ49O1W3b98+Lr744jjllFNS4X15eXlMnz49br/99vjkk08iYvt+9ldeeWUMHDiwTlvrrFq1Kn70ox/FF198kRobNmxYXHbZZfEv//IvqbENGzbEb3/727j//vtT29/885//jKuuuiruvffeWvtERDzxxBPxu9/9LlVnZ2fH6aefHueee2507do1NT5v3ry4/fbb469//Wtq7Pe//30cdNBBMXr06Fr7lJWVxYQJE1KfSURE9+7d45JLLokxY8aktgEqKSmJadOmxa9+9atYvXp1RERs3bo1Jk6cGM8++2zssccedVoXAAAAALB7cCf+LqJ79+5x9913x9SpU2PcuHGVAvyI7XfmX3rppfHHP/4xunTpkhqfO3du/OUvf6nx/WfMmBHPPvts2ns9+uij8cMf/jDt7vusrKw45phj4rHHHosBAwakxrds2VLnO9evv/761MNrIyKOP/74ePjhh9MC/IjtFxH+9V//Ne666660O9hnzpwZL774Yq19CgoK4uabb07VzZs3jzvuuCOuvfbatAA/YvvFkfvvvz/GjBmTNn7jjTdGUVFRrb1+//vfx9tvv52q991335gyZUqcfPLJafv4N2/ePMaNGxePPvpodOvWLTX+2WefxaRJk2rtAwAAAADsXoT4u4Dvfve78cwzz8TRRx9dp/n9+/eP2267LW3s4Ycfrnb+tm3b4pZbbknVWVlZMWnSpOjfv3+1x3Ts2LFSuP7yyy/HwoULazy3t99+O1566aVUve+++8Yvf/nLGh9Ye+SRR8bFF1+cNjZ58uQa+0Rs34poy5Ytqfqyyy6LY445ptr5zZo1ixtvvDFt3atXr44nnniixj6bNm2Ke+65J1W3atUq7rnnnthzzz2rPaZ3795x6623po1NmTKl2of7AgAAAAC7JyF+wp177rkxadKkyMvLq9dxhx56aNrDUt97773YuHFjlXNffvnltG1gxo0bF0OHDq21R+/evePss89OG3v88cdrPOaBBx5Iq2+44YbIyal9V6fzzjsvevTokarnz58fc+fOrXb+mjVr4umnn07Ve++9d6VzrUrz5s3jmmuuSRurbU1Tp06NDRs2pOqLLrooevbsWWuvESNGxPe+971UXVxcHH/6059qPQ4AAAAA2H0I8RPu0ksvjaysrAYde/jhh6del5WVxaJFi6qcN3Xq1LT6rLPOqnOPU089Ne38XnzxxSgrK6ty7tq1a2PmzJmpevDgwXHQQQfVqU9ubm6MHTs2bez555+vdv4zzzyT2kc/IuIHP/hBnS4WRESMGjUqbW//jz/+OD766KNq51f8/HJzc+O0006rU5+IiO9///tpdeZDhQEAAACA3ZsQvwnr06dPWl1xH/ovbd68Oe1hroMHD4699967zj169OgRw4cPT9Vr1qyJ+fPnVzn3pZdeSntI74knnljnPhFRab/61157rdq5FcPw3NzctDve6+KEE05Iq1999dUq533yySdpF0eOOuqoaNeuXZ37jBgxIrp3756q582bF+vWravXuQIAAAAATZcQvwnL3IJn69atlebMmjUriouLU/URRxxR7z4jR45Mq995550q573xxhtpdX179erVK21LnQ8//LDKLYIKCwvTttoZOnRovYL1iK9vTVlZWXHooYem6vLy8pg9e3a93gMAAAAAaLqE+E1YxYe6RkTsscceleZkBsZDhgypd58DDzwwrV6wYEGV8yr26tKlS532jc80ePDg1Ovy8vL44IMPKs2ZO3du2h3/DVnTAQccEM2a/d//POqypob2qrimmnoBAAAAALsfIX4TtnTp0rS6b9++leYsXLgwrc4M5OvigAMOSKsXL15cac6GDRuioKCg2mMa2uvjjz+uNKcx1tSmTZu0z2v58uVRVFRUY6+2bdtGv3796t0rM8Sv6vMDAAAAAHZPQvwmbM6cOanXHTp0SHtY65cqBsZt27aN9u3b17tPp06dokWLFql6+fLlleZkhu1VnUtdVNw/PiJixYoVX1mvbt26pV6Xl5fHypUr0/5eXl4eS5YsSdU9evRo0EOIK/aJqHpNAAAAAMDuSYjfRBUWFsbrr7+eqr/97W9XmpMZTGeGyfWx5557pl6vXbs2bTubiMrBdEN75efnp9WrVq2qNCezV9euXb+SXqtWrYqSkpJU3dA1derUKZo3b15tHwAAAABg9yXEb6KmTp0ahYWFqfrEE0+sNGf9+vVpD7XNDK3ro+KxZWVlsWnTprS/ZwbTjRWsb9iwodKcir1atmwZHTp0aJRen3/+ebV9qppfV82aNYvOnTun6qrWBAAAAADsnnJ29gnQ+NatWxe//vWvU/WwYcNixIgRleZt3LgxrW7btm2De7Zq1Sqt3rRpU9rWPJm98vLyGqXP5s2bK82pGLY3tE9VvTIvTHxVn9+WLVuirKws7cG6u4LS0tIGbSdUXxV/tQA0DRV/1QRAcvjeBU2T714AdZOk70JC/CamvLw8rr766lSQnZWVFVdeeWWVczND6Yr72tdX5rEV7/BvzF619YlID/Z3hTVlHlteXh4lJSU79H47w4IFC77yHjk5OTFkyJCvvA/w9Zo/f36Ulpbu7NMAoALfu6Dp8t0LoG6GDx++s08hZde61Zda3XffffG///u/qfqUU06JYcOGVTk38+p7bm5ug/tmBs6ZXwgyezVWiF/VF4+KvXaFNVV1rDsjAAAAAIAIIX6TMmPGjLjjjjtSdf/+/eOqq66qdn7mw2d3JPDOycmpsc4MwBv6c5Ta+mT22pGfvdTWK/Pza8xeSfq5DgAAAACw8wjxm4j33nsvrrjiiigrK4uI7Xus33HHHdG6detqj8kMiqvamqauioqK0uo2bdrU2Kuhd5pn9qlqfRV77cgd7Vu3bq2xV2OtKSJ9XdnZ2bvcVjoAAAAAwFfDnvhNwOLFi+OCCy6IL774IiK274N/yy23xH777VfjcZmh9I6E+JnHZj4UNjPUzwzI6yrzuMw+EdvX9eX57MiaagvxM+uGriki/TyrWtOuYODAgX5BADTI/vvvv7NPAQBgt+G7F8CuR4i/iysoKIhzzz031q1blxr78Y9/HN/5zndqPTYzLN6REDrzDvnM926sXrUF61+ObdiwYYf6RHx9a8rstauG+Dk5OUJ8oEH8uwMA4OvjuxfArsd2OruwdevWxTnnnBMrVqxIjZ1xxhlxwQUX1On4zLvjK14IqK+1a9emXrdr167S/vqZYXtDe1XsExHRuXPnSnMq9vr8889TWwzVV+Y5ZvZqrDVFpK+rS5cuDX4fAAAAAKBpEeLvojZu3BjnnHNOfPzxx6mx733ve/HTn/60zu/RoUOHtLu+V65c2eDzKSgoSL3u06dPpb937949rW5or8zjqurVrVu31OuSkpJYvXr1DvfKysqq1Kux1rRp06YoLCxM1VWtCQAAAADYPQnxd0GFhYVx/vnnx4IFC1JjRx55ZPzXf/1XZGVl1fl9srKyonfv3ql65cqVUV5e3qDz2bhxY6quKoTOHGto4F3xYkFde1X8pUJ9VDzHrl27RsuWLdP+3rlz52jbtm2j9okQ4gMAAAAA/0eIv4spKiqKiy66KObMmZMaGzVqVEyaNClycur/iIOKgXFxcXF88skn9X6PihcTIiL69etXY5+IiEWLFtW7T0TE/Pnza+3Vt2/fHe5VUlISH330UY19IiL22muv1OtPP/009XDh+qjLmgAAAACA3ZMQfxdSXFwcl156abz11lupsUMOOSTuvvvuSnvQ11XmU+nfeeeder/H7Nmz0+pDDjmk0pzWrVunBfnz5s2L4uLieveqePGiT58+kZ+fX2nOwIED0+qGrGnBggVpD6qtak0R6Z9faWlpvPvuu/XuVXFNNfUCAAAAAHY/QvxdxLZt2+Lyyy+P1157LTU2bNiw+M1vflNpm5f6+OY3v5lWV7xAUFd///vfU6/bt28fQ4cOrbVXSUlJvcP11atXx+LFi1P1EUccUeW8IUOGRLt27VL1P/7xj3pvE/S3v/0trf7Wt75V5bzG+PwqHjNw4MAqL0wAAAAAALsnIf4uoKysLK688sqYPn16amzw4MFx//33R5s2bXbovffff//o3Llzqp4+fXps3ry5zsevWrUq3njjjVQ9atSoaNas6v9aZQbeTz31VL3Oddq0aWlhfHUhfnZ2dhx22GGpevny5WkXGuriz3/+c+p1fn5+DBgwoMp5hx12WNo2RpnnWJu5c+emPZy4ujUBAAAAALsnIf4u4Gc/+1k888wzqXrgwIHxwAMPRF5e3g6/d1ZWVhx77LGpesuWLfUK16dMmRLbtm1L1aecckq1c0eOHBkdOnRI1c8//3ysXbu2Tn1KSkriySefTNW9e/eOkSNHVjt/9OjRafUjjzxSpz4R239ZUHE//HHjxlU7Ny8vL+3ixPLly+OVV16pc69HH3009To7OztOOumkOh8LAAAAADR9QvyEu/nmm+OJJ55I1fvss088+OCDadvF7Kizzz477W7ySZMmxapVq2o9bunSpXH//fen6oMOOigOPfTQaue3aNEizjzzzFRdVFQUv/jFL+p0jvfff3/aQ3cvuOCCyM7Ornb+d77znbQ9+KdPnx6vvvpqrX1KSkri5z//eapu06ZN2jlX5bzzzkurb7rppjo94Pbtt9+OadOmperjjjsuevfuXetxAAAAAMDuQ4ifYHfeeWf89re/TdV9+vSJhx56KDp27NiofXr27BnHH398qt64cWNMnDgxPv/882qPWbNmTUyYMCGKiopSY5dcckmtvU4//fS0XxA899xzce+999Z4zIwZM2Ly5MmpukePHjFmzJgaj2nWrFmcf/75aWNXX311LFy4sNpjSktL45prrokPP/wwNTZ+/PhaL5iMGDEiRowYkaqXLVsWV1xxRdqDcTMtWbIkfvKTn6S23snJyYmLLrqoxj4AAAAAwO4n+/rrr79+Z58ElT300ENx5513puoWLVrEFVdcEcXFxbFs2bIG/dOrV69q+x144IHxpz/9KRU8FxQUxIsvvhidOnWKfv36pfa5Ly0tjWeffTauuOKKtIfMjh07Ns4555xa19WyZcto27ZtzJw5MzX25ptvxpIlS6Jfv37RqVOn1Pjq1atj8uTJcfPNN0dpaWlEbA/n77rrrthrr71q7TVgwIB44403oqCgICK2bxX07LPPRvPmzWOfffaJ3Nzc1Ny33347rrrqqrStcPr37x+33XZb2q8UqjNo0KCYOnVqlJWVRUTE4sWL4/XXX49u3bqlnevWrVtjypQp8e///u+xevXq1Pgll1yStq1Rkm3btq3KX2rk5+fX+OuIr8qzM+dHccm22icCidAiNydO+Nb+O/s0AGiA/3nvpSjeVrKzTwOohxY5uXHc4G/v7NMAYAdlldfnKZx8bcaPHx9vvfVWo77nBx98UOPfX3/99bjwwgtTgfmXWrVqFT179ozy8vL49NNP0+6+j4gYPnx4PPTQQ9GiRYs6n8uVV16ZtpXMlzp37hz5+fmxfv36KCgoSIXiX7ruuuvijDPOqHOfgoKCGDduXKXQuXnz5tGtW7fIy8uL5cuXV/rVQefOneOxxx6r1/Y2Tz75ZFx77bWVxvPy8qJnz55RVFQUy5cvj5KS9P/jM3r06LjjjjsiKyurzr12puLi4njvvfcqjQ8ePDjtwsjX5cIbnoxNhdX/6gFIlrZtWsR//+zknX0aADTAhEeviU1bC3f2aQD10LZFm7jrBzft7NMAYAfZToeUUaNGxeTJk6Nt27Zp41988UV8+OGH8dFHH1UK8EePHh0PPPBAvQL8iO37xp922mmVxtesWRPvv/9+rFixIi3Ab9WqVfznf/5nvQL8iIiuXbvGI488Ev369UsbLykpiaVLl8b8+fMrBfj77bdfPP744/Xen/7kk0+OG2+8sVKQvXnz5li4cGF88sknaQF+VlZWjB8/Pm677bZdJsAHAAAAAL5eQnzSHHHEEfGXv/wlTjrppBqD+SFDhsTkyZPjzjvvjFatWtW7T3Z2dlx//fVx3333xYEHHljtvJYtW8bYsWPjmWeeiRNPPLHefSIievfuHdOmTYuJEyfW+DyBHj16xNVXXx1Tp06tceuhmpx88skxbdq0+O53v1vtNjzNmjWLww47LP7whz/ET3/6052yBQ0AAAAAsGuwnQ7VKiwsjFmzZsWSJUuisLAwWrZsGd26dYshQ4ZE9+7dG7XXsmXLYs6cOVFQUBClpaWxxx57RN++fWPYsGENukhQnW3btsWcOXNi0aJFsWHDhsjOzo4uXbrEwIEDY8CAAY3WJyJi/fr1MWvWrFi2bFl88cUX0bp16+jZs2cMGzYsbe//XY3tdIAdYTsdgF2X7XRg12M7HYCmofYndrLbatOmTRx++OFx+OGHf+W9evXq1eC73+sjOzs7hg8fHsOHD//Ke3Xo0CGOPvror7wPAAAAANB02U4HAAAAAAASSogPAAAAAAAJJcQHAAAAAICEEuIDAAAAAEBCCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEgoIT4AAAAAACSUEB8AAAAAABJKiA8AAAAAAAklxAcAAAAAgIQS4gMAAAAAQEIJ8QEAAAAAIKGE+AAAAAAAkFBCfAAAAAAASCghPgAAAAAAJJQQHwAAAAAAEkqIDwAAAAAACSXEBwAAAACAhBLiAwAAAABAQgnxAQAAAAAgoYT4AAAAAACQUEJ8AAAAAABIKCE+AAAAAAAklBAfAAAAAAASSogPAAAAAAAJJcQHAAAAAICEEuIDAAAAAEBCCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEgoIT4AAAAAACSUEB8AAAAAABJKiA8AAAAAAAklxAcAAAAAgIQS4gMAAAAAQEIJ8QEAAAAAIKGE+AAAAAAAkFBCfAAAAAAASCghPgAAAAAAJJQQHwAAAAAAEkqIDwAAAAAACSXEBwAAAACAhBLiAwAAAABAQgnxAQAAAAAgoYT4AAAAAACQUEJ8AAAAAABIKCE+AAAAAAAklBAfAAAAAAASSogPAAAAAAAJJcQHAAAAAICEEuIDAAAAAEBCCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEgoIT4AAAAAACSUEB8AAAAAABJKiA8AAAAAAAklxAcAAAAAgIQS4gMAAAAAQEIJ8QEAAAAAIKGE+AAAAAAAkFBCfAAAAAAASCghPgAAAAAAJJQQHwAAAAAAEkqIDwAAAAAACSXEBwAAAACAhBLiAwAAAABAQgnxAQAAAAAgoYT4AAAAAACQUEJ8AAAAAABIKCE+AAAAAAAklBAfAAAAAAASSogPAAAAAAAJJcQHAAAAAICEEuIDAAAAAEBCCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEgoIT4AAAAAACSUEB8AAAAAABJKiA8AAAAAAAklxAcAAAAAgIQS4gMAAAAAQEIJ8QEAAAAAIKGE+AAAAAAAkFBCfAAAAAAASCghPgAAAAAAJJQQHwAAAAAAEkqIDwAAAAAACSXEBwAAAACAhBLiAwAAAABAQgnxAQAAAAAgoYT4AAAAAACQUEJ8AAAAAABIKCE+AAAAAAAklBAfAAAAAAASSogPAAAAAAAJJcQHAAAAAICEEuIDAAAAAEBCCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEgoIT4AAAAAACSUEB8AAAAAABJKiA8AAAAAAAklxAcAAAAAgIQS4gMAAAAAQEIJ8QEAAAAAIKGE+AAAAAAAkFBCfAAAAAAASCghPgAAAAAAJJQQHwAAAAAAEkqIDwAAAAAACSXEBwAAAACAhBLiAwAAAABAQgnxAQAAAAAgoYT4AAAAAACQUEJ8AAAAAABIKCE+AAAAAAAklBAfAAAAAAASSogPAAAAAAAJJcQHAAAAAICEEuIDAAAAAEBCCfEBAAAAACChhPgAAAAAAJBQQnwAAAAAAEgoIT4AAAAAACSUEB8AAAAAABJKiA8AAAAAAAklxAcAAAAAgIQS4gMAAAAAQEIJ8QEAAAAAIKGE+AAAAAAAkFBCfAAAAAAASCghPgAAAAAAJJQQHwAAAAAAEkqIDwAAAAAACSXEBwAAAACAhBLiAwAAAABAQuXs7BOg8axduzY6derUqO+5YsWKmDt3bqxcuTKKiooiLy8v+vTpE8OGDYu8vLxG61NWVhbz5s2LDz74INavXx8RER07dowBAwbEoEGDIisrq9F6bdy4MWbPnh3//Oc/o7CwMFq2bBndu3ePoUOHRn5+fqP1iYhYsmRJzJs3L1atWhXFxcWxxx57RP/+/WPYsGHRokWLRu0FAAAAADQ9Qvxd3LJly2L69Onx4osvxuLFi+Ott95qlPedMWNG3HvvvfHuu+9W+ffc3NwYPXp0TJgwIXr16tXgPps3b44HH3wwHn/88Vi7dm2Vc7p27RpnnXVWjB8/Ppo3b97gXgsXLoy77747XnnllSgpKan096ysrDj44INjwoQJccghhzS4T3l5eTz11FP/n707j9Ox3v84/p7dbAxDg7GrLGMnpYUWJ4Qca8mhyFKE6BwRKsqSDhU9EOooEbKVfUlHCNk6smXJMoZhGMssxmz37w8P1889673N3NeY1/PxOI/H/b3u7/K51Lm7ve/r+l768ssvdeLEiSz7BAQEqEOHDhowYIBKlCjh8FoAAAAAAAAA7m0eFovF4u4iYJ8///xTGzdu1MaNG3X06FHjeHBwsPbs2ePU3ImJiRo+fLjWr19vU/+AgABNmDBBLVu2tHutAwcOaPDgwTp//rxN/SMiIjRjxgyHrpafOXOmpk2bptTU1Fz7enh4qHfv3nrrrbfsvgMgNjZWgwYN0u7du23qX6JECU2dOlUPPfSQXeu4U3Jysv74449Mx2vXri1fX998r6ffmCWKS7iV7+sCcExwoJ++eK+Tu8sAADhg4IJ3FHcrwd1lALBDsF+gpr003t1lAACcxJX4BYDFYtGBAwe0YcMGbdq0SadPn86TdZKSktSrVy/t37/f6ri3t7fKli0rf39/RUZGKjEx0XgvMTFRQ4YMkaenp5599lmb19q3b5969eqlmzdvWh0PDAxU+fLlFR8frwsXLigtLc1479ChQ+revbsWLlxo12s8K8UAACAASURBVNXr48eP19dff211zMPDQ6VKlVKpUqUUFRWla9euGe9ZLBbNnj1bt27d0siRI21eJzY2Vl27ds30z8fX11fh4eHy9vbWmTNnlJycbDXm1Vdf1TfffKN69erZvBYAAAAAAACAwoEQ3+Q++ugjrV69WhcvXszztUaOHGkV4IeEhOj1119Xly5dFBAQIOl2wL1hwwZNmTLFCKvT09P19ttvq0aNGjZtrXPp0iX179/fKsCvX7++Bg8erCZNmhjHrl27prlz52rOnDnG9jdnzpzR8OHDNWvWLJvOafHixVYBvpeXl7p166ZXX31VpUuXNo4fPHhQU6ZM0fbt241j33zzjRo0aKBWrVrluk56eroGDhxoFeCXLVtWAwYMULt27YxtgFJSUrRixQp99tlniomJkSTdunVLgwYN0qpVq1S0aFGbzgsAAAAAAABA4eDp7gKQs++//z7bAD8kJMRl25ds2rRJq1atMtphYWFasGCBXnnlFSPAl25fwd6iRQt99913ql69unE8MTFR48fbdove+++/bzy8VpJat26tefPmWQX40u3ze/PNNzVt2jSr89yyZYs2btyY6zrR0dGaMGGC0fbx8dEnn3yikSNHWgX4klSrVi3NmTNH7dq1szo+btw4JSUl5brWN998Y7WV0YMPPqhFixapU6dOVvv4+/j4qHPnzlqwYIHKlCljHL948aKmTp2a6zoAAAAAAAAAChdC/AKmbNmy6t69u+bOnavt27erVKlSTs+Zlpamjz/+2Gh7eHho6tSpqlq1arZjSpQokSlc37x5s9Ue/VnZs2ePfvrpJ6P94IMPatKkSTk+sPapp57S66+/bnVs+vTpOa4jSVOnTrXa+mfw4MFq0aJFtv09PT01btw4q/OOiYnR4sWLc1wnLi5OM2bMMNr+/v6aMWOG7rvvvmzHVKhQQf/+97+tji1atCjbh/sCAAAAAAAAKJwI8U3Ow8ND1apVU//+/bVs2TL9/PPPGjVqlJo0aSJvb9fshrR582arbWA6d+5s0/7sFSpUUM+ePa2OLVy4MMcxX375pVV7zJgxNp1H7969FR4ebrQPHz6sAwcOZNv/8uXL+vHHH432/fffn6nWrPj4+Oidd96xOpbbOS1dutRqT/3XXntN5cqVy3WtRo0aqU2bNkY7OTlZy5Yty3UcAAAAAAAAgMKDEN/kVq5cqR9//FGDBw9WREREnqyxdOlSq/bLL79s89gXXnhBHh4eRnvjxo1KT0/Psu+VK1e0ZcsWo127dm01aNDApnV8fX3VoUMHq2Pr1q3Ltv/KlSuNffQl6aWXXrL5R4/HH3/cam//kydP6sSJE9n2v/vPz9fXV127drVpHUl68cUXrdrr16+3eSwAAAAAAACAex8hvsll3Lvd1eLj460e5lq7dm3df//9No8PDw9Xw4YNjfbly5d1+PDhLPv+9NNPSktLM9rt27e3q9aM+9Vv3bo12753h+G+vr5WV7zbom3btlbtX375Jct+p0+f1rFjx4z2008/rWLFitm8TqNGjVS2bFmjffDgQcXGxtpVKwAAAAAAAIB7FyF+Ibd3714lJycb7WbNmtk9xyOPPGLV3rdvX5b9fv31V6u2vWuVL1/eakud48eP68aNG5n6JSQkWG21U69ePbuCdSn/zsnDw0MPP/yw0bZYLNq/f79dcwAAAAAAAAC4dxHiF3IZA+O6devaPUedOnWs2keOHMl1rVKlStm0b3xGtWvXNl5bLBb9+eefmfocOHDA6op/R86pVq1a8vT8//972HJOjq519znltBYAAAAAAACAwocQv5A7evSoVTtjIG+LWrVqWbX/+uuvTH2uXbum6OjobMc4utbJkycz9XHFOQUGBqpy5cpGOyoqSklJSTmuFRwcrCpVqti9VsYQP6s/PwAAAAAAAACFEyF+IXd3YBwcHKyQkBC75wgNDZWfn5/RjoqKytQnY9h+94Nj7XH3/vGSdP78+Txbq0yZMsZri8WiCxcuWL1vsVh06tQpox0eHm71kF9H1pGyPicAAAAAAAAAhRMhfiGWMZjOGCbb47777jNeX7lyxWo7GylzMO3oWmFhYVbtS5cuZeqTcS1HHw6c21qXLl1SSkqK0Xb0nEJDQ+Xj45PtOgAAAAAAAAAKL0L8Quzq1atWD7XNGFrb4+6x6enpiouLs3o/YzDtqmD92rVrmfrcvVaRIkVUvHhxl6x1/fr1bNfJqr+tPD09VbJkSaOd1TkBAAAAAAAAKJy83V0A3OfGjRtW7eDgYIfn8vf3t2rHxcVZbc2Tca2goCCXrBMfH5+pz91hu6PrZLVWxh8m8urPLzExUenp6VYP1i0IUlNTHdpOyF5337UA4N5w911NAADz4HsXcG/iuxcA2MZM34UI8QuxjKH03fva2yvj2Luv8HflWrmtI1kH+wXhnDKOtVgsSklJcWo+dzhy5Eier+Ht7a26devm+ToA8tfhw4eVmprq7jIAAHfhexdw7+K7FwDYpmHDhu4uwVCwLvWFS2X89d3X19fhuTIGzhm/EGRcy1UhflZfPO5eqyCcU1ZjuTICAAAAAAAAgESIX6hlfPisM4G3t7d3ju2MAbijt6Pktk7GtZy57SW3tTL++blyLTPdrgMAAAAAAADAfQjxC7GMQXFWW9PYKikpyaodGBiY41qOXmmecZ2AgIBMfe5ey5kr2m/dupXjWq46J8n6vLy8vArcVjoAAAAAAAAA8gZ74hdiGUNpZ0L8jGMzPhQ2Y6ifMSC3VcZxGdeRbp/XnXqcOafcQvyMbUfPSbKuM6tzKghq1KjBHQQAHFKzZk13lwAAAFBo8N0LAAoeQvxCLGNY7EwInfEK+Yxzu2qt3IL1O8euXbvm1DpS/p1TxrUKaojv7e1NiA/AIXx2AAAA5B++ewFAwcN2OoVYxqvjY2NjHZ7rypUrxutixYpl2l8/Y9ju6Fp3ryNJJUuWzNTn7rWuX7+u9PR0h9bKWGPGtVx1TpL1eZUqVcrheQAAAAAAAADcWwjxC7HixYtbXfV94cIFh+eKjo42XleqVCnT+2XLlrVqO7pWxnFZrVWmTBnjdUpKimJiYpxey8PDI9NarjqnuLg4JSQkGO2szgkAAAAAAABA4USIX4h5eHioQoUKRvvChQuyWCx2z5OQkKAbN24Y7axC6IzHHA287/6xwNa1zp8/79Bad9dYunRpFSlSxOr9kiVLKjg42KXrSIT4AAAAAAAAAP4fIX4hd3dgnJycrNOnT9s9x5EjR6zaVapUyXEdSTp27Jjd60jS4cOHc12rcuXKTq+VkpKiEydO5LiOJFWsWNF4fe7cOd28edPutWw5JwAAAAAAAACFEyF+IZfxqfT79u2ze479+/dbtRs3bpypT0BAgFWQf/DgQSUnJ9u91u+//268rlSpksLCwjL1qVGjhlXbkXM6cuSI1YNqszonyfrPLzU1Vf/73//sXuvuc8ppLQAAAAAAAACFDyF+IffEE09YtX/77Te759i1a5fxOiQkRPXq1ct1rZSUFLvD9ZiYGP31119Gu1mzZln2q1u3rooVK2a0d+/ebfc2QTt37rRqP/nkk1n2c8Wf391jatSokeUPEwAAAAAAAAAKJ0L8Qq5mzZoqWbKk0d6wYYPi4+NtHn/p0iX9+uuvRvvxxx+Xp2fW/1plDLyXL19uV60rVqywCuOzC/G9vLz06KOPGu2oqCirHxps8cMPPxivw8LCVL169Sz7Pfroo/L29s62xtwcOHBAJ0+eNNrZnRMAAAAAAACAwokQv5Dz8PBQy5YtjXZiYqJd4fqiRYuUlpZmtLt06ZJt30ceeUTFixc32uvWrdOVK1dsWiclJUVLliwx2hUqVNAjjzySbf9WrVpZtefPn2/TOtLtOwvu3g+/c+fO2fYNCgqy+nEiKipKP//8s81rLViwwHjt5eWljh072jwWAAAAAAAAwL2PEB/q2bOn1dXkU6dO1aVLl3Idd/bsWc2ZM8doN2jQQA8//HC2/f38/NSjRw+jnZSUpA8//NCmGufMmWP10N2+ffvKy8sr2/5/+9vfrPbg37Bhg3755Zdc10lJSdEHH3xgtAMDA61qzkrv3r2t2uPHj7fpAbd79uzRihUrjPZzzz2nChUq5DoOAAAAAAAAQOFBiA+VK1dOrVu3Nto3btzQoEGDdP369WzHXL58WQMHDlRSUpJxbMCAAbmu1a1bNwUFBRntNWvWaNasWTmO2bRpk6ZPn260w8PD1a5duxzHeHp6qk+fPlbHRowYoaNHj2Y7JjU1Ve+8846OHz9uHOvevbvV/vpZadSokRo1amS0IyMj9c9//tPqwbgZnTp1Sv/617+MrXe8vb312muv5bgOAAAAAAAAgMLH6/3333/f3UUgewcPHtSJEycUGRmZ5f/Wrl2rxMRESbeD4Dp16mTb9/r167rvvvuyXKdOnTpatmyZETxHR0dr48aNCg0NVZUqVYx97lNTU7Vq1Sr985//tHrIbIcOHdSrV69cz6dIkSIKDg7Wli1bjGM7duzQqVOnVKVKFYWGhhrHY2JiNH36dE2YMEGpqamSbofz06ZNU8WKFXNdq3r16vr1118VHR0t6fZWQatWrZKPj48eeOAB+fr6Gn337Nmj4cOHW22FU7VqVU2ePNnqLoXsREREaOnSpUpPT5ck/fXXX9q2bZvKlCljVeutW7e0aNEiDRs2TDExMcbxAQMGWG1rZGZpaWlZ3qkRFhaW490ReWXVlsNKTknLvSMAU/Dz9VbbJ2u6uwwAgAPW/vGTktNS3F0GADv4efvqudrPuLsMAICTPCz2PIUT+a579+767bffXDJX48aNNW/evGzf37Ztm/r162cE5nf4+/urXLlyslgsOnfunNXV95LUsGFD/ec//5Gfn5/Ntbz99ttWW8ncUbJkSYWFhenq1auKjo42QvE7Ro8erX/84x82rxMdHa3OnTtnCp19fHxUpkwZBQUFKSoqKtNdByVLltR3331n1/Y2S5Ys0ciRIzMdDwoKUrly5ZSUlKSoqCilpFj/xadVq1b65JNP5OHhYfNa7pScnKw//vgj0/HatWtb/TCSX/qNWaK4hOzvegBgLsGBfvrivU7uLgMA4ICBC95R3K0Ed5cBwA7BfoGa9tJ4d5cBAHAS2+nA8Pjjj2v69OkKDg62On7z5k0dP35cJ06cyBTgt2rVSl9++aVdAb50e9/4rl27Zjp++fJlHTp0SOfPn7cK8P39/TVx4kS7AnxJKl26tObPn68qVapYHU9JSdHZs2d1+PDhTAF+tWrVtHDhQrv3p+/UqZPGjRuXKciOj4/X0aNHdfr0aasA38PDQ927d9fkyZMLTIAPAAAAAAAAIH8R4sNKs2bNtHr1anXs2DHHYL5u3bqaPn26Pv30U/n7+9u9jpeXl95//33Nnj1bderUybZfkSJF1KFDB61cuVLt27e3ex1JqlChglasWKFBgwapRIkS2fYLDw/XiBEjtHTpUpUvX96htTp16qQVK1bo2WefzXYbHk9PTz366KP69ttvNWrUKLdsQQMAAAAAAACgYGA7HWQrISFBe/fu1alTp5SQkKAiRYqoTJkyqlu3rsqWLevStSIjI/X7778rOjpaqampKlq0qCpXrqz69es79CNBdtLS0vT777/r2LFjunbtmry8vFSqVCnVqFFD1atXd9k6knT16lXt3btXkZGRunnzpgICAlSuXDnVr1/fau//gobtdAA4g+10AKDgYjsdoOBhOx0AuDfk/sROFFqBgYFq2rSpmjZtmudrlS9f3uGr3+3h5eWlhg0bqmHDhnm+VvHixdW8efM8XwcAAAAAAADAvYvtdAAAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATIoQHwAAAAAAAAAAkyLEBwAAAAAAAADApAjxAQAAAAAAAAAwKUJ8AAAAAAAAAABMihAfAAAAAAAAAACTIsQHAAAAAAAAAMCkCPEBAAAAAAAAADApQnwAAAAAAAAAAEyKEB8AAAAAAAAAAJMixAcAAAAAAAAAwKQI8QEAAAAAAAAAMClCfAAAAAAAAAAATMrb3QUAAAAUNofmjFbqzTh3lwHADt7+wYro/YG7ywAAAEAhRIgPAACQz1Jvxin1Zry7ywAAAAAAFABspwMAAAAAAAAAgEkR4gMAAAAAAAAAYFKE+AAAAAAAAAAAmBQhPgAAAAAAAAAAJkWIDwAAAAAAAACASRHiAwAAAAAAAABgUoT4AAAAAAAAAACYFCE+AAAAAAAAAAAmRYgPAAAAAAAAAIBJEeIDAAAAAAAAAGBShPgAAAAAAAAAAJgUIT4AAAAAAAAAACZFiA8AAAAAAAAAgEkR4gMAAAAAAAAAYFKE+AAAAAAAAAAAmBQhPgAAAAAAAAAAJkWIDwAAAAAAAACASRHiAwAAAAAAAABgUoT4AAAAAAAAAACYFCE+AAAAAAAAAAAm5e3uAgAAAAAAAIC8smX4O0qJi3d3GQBs5BMcpGYTx7u7DFMhxAcAAAAAAMA9KyUuXslxce4uAwAcxnY6AAAAAAAAAACYFCE+AAAAAAAAAAAmRYgPAAAAAAAAAIBJEeIDAAAAAAAAAGBShPgAAAAAAAAAAJgUIT4AAAAAAAAAACZFiA8AAAAAAAAAgEkR4gMAAAAAAAAAYFKE+AAAAAAAAAAAmBQhPgAAAAAAAAAAJkWIDwAAAAAAAACASRHiAwAAAAAAAABgUoT4AAAAAAAAAACYFCE+AAAAAAAAAAAmRYgPAAAAAAAAAIBJEeIDAAAAAAAAAGBShPgAAAAAAAAAAJgUIT4AAAAAAAAAACZFiA8AAAAAAAAAgEkR4gMAAAAAAAAAYFKE+AAAAAAAAAAAmBQhPgAAAAAAAAAAJkWIDwAAAAAAAACASRHiAwAAAAAAAABgUoT4AAAAAAAAAACYFCE+AAAAAAAAAAAmRYgPAAAAAAAAAIBJEeIDAAAAAAAAAGBShPgAAAAAAAAAAJiUt7sLAO5lN2/e1O+//66//vpLN27ckK+vr0qXLq06deqofPny7i4PAAAAAAAAgMkR4gN5IDIyUtOnT9eaNWuUlJSUZZ+IiAj1799fzZs3z+fqAAAAAAAAABQUbKcDuNjSpUvVtm1bLVu2LNsAX5IOHTqkAQMGaNiwYUpOTs7HCgEAAAAAAAAUFFyJD7jQ3LlzNWHChEzHQ0NDVbp0aV26dEkxMTFW7/3www9KTEzU1KlT5enJ72oAAAAAAAAA/h+JIeAiW7du1cSJE62O/f3vf9fatWv166+/atmyZdq2bZvWrVun1q1bW/XbuHGjvvrqq/wsFwAAAAAAAEABQIgPuEBiYqJGjhwpi8UiSfLw8NDIkSP10UcfqUqVKlZ9K1eurClTpui1116zOj516lRdvHgx32oGAAAAAAAAYH6E+IAL/Oc//7EK4F988UX16NEjxzFDhgzRo48+arRv3brF1fgAAAAAAAAArBDiA05KTk7W/PnzjXaJEiX01ltv2TR21KhRVvvgL1++nIfcAgAAAAAAADAQ4gNO+u9//6srV64Y7fbt2ys4ONimsVWrVtVDDz1ktK9fv64dO3a4vEYAAAAAAAAABRMhPuCk9evXW7U7dOhg1/jnn3/eqv3LL784XRMAAAAAAACAewMhPuCknTt3Gq/Dw8N1//332zX+kUcesWrv27fPJXUBAAAAAAAAKPgI8QEnnD17VpcvXzbadevWtXuOcuXKKTQ01GgfP35cqampLqkPAAAAAAAAQMFGiA844ejRo1btOnXqODRPRESE8TolJUVnz551qi4AAAAAAAAA9wZCfMAJJ0+etGqXL1/eoXnKlClj1T5//rzDNQEAAAAAAAC4dxDiA07IGLaXLl3aoXnCwsKs2pcuXXK4JgAAAAAAAAD3DkJ8wAkZw3ZXhfjXr193uCYAAAAAAAAA9w5vdxcAFGQZw/bg4GCH5gkICLBqx8XFOVxTXrNYLFkev3nzZr48kNfb2/pj677i/goo4pXn6wJwjSB/XyUnJ1sdKwwP88742eVVtJQsvv5uqgaAI7yKBBW6z6+Mn10lA0MV4F3ETdUAcESAX2Ch++ySMn9++ZYqKY8Mf+8GYF4+gQGm+Oy6+7PEx8dHHh4e+V6DUYvbVgbuAfHx8VZtX19fh+bJOC7jB5WZZPeheeLEiXyu5La/P+bY3Q8A3OePP/5wdwnuV6uluysAYKc08fnVptyT7i4BgAMK+2eXJAW2be3uEgDYyWyfXbVr13Y493MFttMBnJCSkmK89vX1dfgXOT8/P6t2YbgyAgAAAAAAAEDuCPEBJ9wdtvv4+Dg8T8Zb/TK2AQAAAAAAABROhPiAE+4O7u++Kt9et27dsmpn3CMfAAAAAAAAQOFEiA844e6wPTk5OduHvuaGEB8AAAAAAABAVtizA3BCxrA9OTk50/72tkhKSrJq+/v7O1VXXvL391f16tUzHff29nbrU7oBAAAAAACAvODMNtquQIgPOCFjiB8bG6syZcrYPU9sbKxVu2TJkk7VlZc8PT0VGBjo7jIAAAAAAACAQoHtdAAnZAzsz58/79A8Fy5csGpXqlTJ0ZIAAAAAAAAA3EMI8QEnVK5c2aqdMYy3VXR0tPHay8tLFSpUcKouAAAAAAAAAPcGQnzACRmvmD927JhD8xw+fNh4Xb58ebfvswUAAAAAAADAHAjxASfUqFHDqr1v3z6757hy5YoiIyONduPGjZ2uCwAAAAAAAMC9gRAfcEJYWJgefPBBo/3HH3/o5s2bds2xa9cuq3azZs1cUhsAAAAAAACAgo8QH3BS06ZNjddJSUlas2aNXeOXL19uvPbx8VGTJk1cVhsAAAAAAACAgo0QH3BSq1atrNoLFiyQxWKxaezZs2e1fft2o92mTRsFBga6tD4AAAAAAAAABRchPuCkWrVqWV09f/DgQS1cuNCmse+//77S0tIkSZ6enurbt2+e1AgAAAAAAACgYCLEB1ygX79+Vu1JkyZpx44dOY6ZPHmy1VX4zz33nKpUqZIn9QEAAAAAAAAomDwstu77ASBHb775ptauXWu0fXx81KdPH3Xv3l0lSpQwjh89elTTpk3Tpk2bjGOhoaFauXKlQkND87VmAAAAAAAAAOZGiA+4SHx8vLp27apjx45ZHffy8lLp0qUVEhKiCxcuKDY21ur9gIAAzZ07V3Xr1s3PcgEAAAAAAAAUAIT4gAvFxsaqf//+2r9/v039w8PDNXXqVNWqVSuPKwMAAAAAAABQEBHiAy6Wlpam7777Tl9++aXOnz+fZZ/Q0FB17dpVvXr1UmBgYD5XCAAAAAAAAKCgIMQH8ojFYtGhQ4d05MgRYwudEiVKqFq1aqpVq5Y8PXmuNAAAAAAAAICcEeIDAAAAAAAAAGBSXAoMAAAAAAAAAIBJEeIDAAAAAAAAAGBShPgAAAAAAAAAAJgUIT4AAAAAAAAAACZFiA8AAAAAAAAAgEkR4gMAAAAAAAAAYFKE+AAAAAAAAAAAmBQhPgAAAAAAAAAAJkWIDwAAAAAAAACASRHiAwAAAAAAAABgUoT4AAAAAAAAAACYFCE+AAAAAAAAAAAmRYgPAAAAAAAAAIBJEeIDAAAAAAAAAGBShPgAAAAAAAAAAJgUIT4AAAAAAAAAACZFiA8AAAAAAAAAgEl5u7sAAEDeWbNmjZKSklSjRg3VqFEj39ePj49XcnKy/Pz8FBgYmO/rAwAAAADcJy0tTXv27JEkValSRaVKlcr3GuLj43Xq1ClJUrVq1eTr6+vUfMnJyUpJSZGHh4cCAgJcUSKQK67EB4B72Lhx4zRixAht2rTJLeu/8847atKkiT744AO3DUEnTQAAIABJREFUrA8AFovF3SUAAAAUWklJSerRo4d69OihrVu3uqWGQ4cOqVOnTurUqZMuXLjg9HxjxoxRgwYN9NRTT7mgOsA2XIkPAHC7rl27at++fS6b76efflK5cuXsGvPYY4/p8uXLLqvBFkWLFtX27dudvhIEQNZ+//13DR48WC+88IJeeuklhYSEuLskAIVMQkKCGjRo4O4yMqlUqZLWr1+f5XvVqlXL52ps98ADD2jVqlXuLgMAgHxHiA8AgJs89dRTBPhAHrl27ZqGDBmi6OhozZ07V88//3y+h/gEYQDMKiUlxd0lAICpJSYmytPTU0WKFHF3KYAkQnwAgIk0b95cQ4cOdWjsuXPn1LdvX4fXHjx4sBITE3Pt9+233yoyMlLVqlVThw4d7F5n3759xpVvzz77rN3jAeTOYrFo2LBhOn/+vCRp/Pjxdt+dAwCu4OfnpylTprhkrqNHj2rWrFmSpLfeekvh4eEOz5VTKLVmzRqH573brVu31KVLF6WkpDj1He9uXPwAIL+sXLlSY8eOVfXq1fXtt9/K39/f3SWhkCPEBwCYRnBwsKpWreqWtbt06WJTv6VLl0qS6tSpo1deecXude5sGxQUFKSmTZvaPR5A7mbMmKEtW7ZIkjp16qTGjRvrxo0bDs3l4+Pj8F/aCMIAeHt7q3Xr1i6ZKzg42Ajxn3jiCdWoUcMl82bkqu9i69atM674/8c//uG273gA4IgDBw4oNTVVMTExBPgwBUJ8AADscPXqVUlSaGio3WNv3bplPMzpmWeeIUQD8sD333+vqVOnGu0lS5ZoyZIlDs/Xvn17TZw40aGxBGEACrNFixZJkqpUqaJHHnnEzdUAgH0OHDggSYqIiHBzJcBthPgAYGK1a9dWcnKy0/N8/vnn+vzzzx0eP2LECIeuOr/XWCwWp0L8rVu3Glv2PPfccy6tDcDt257fffddWSwWd5fiUgRhAAqao0ePaseOHZJu//jo4eHh5ooAwHaJiYk6efKkJKlWrVpurga4jRAfAGAaBw8e1EcffeTQ2GvXrrm4msyuXr2q1NRUSVLJkiXtHr9u3TpJUkhIiB577DGX1gYUdps2bdLw4cOVnp6u+vXra8qUKfLx8XFork8//dS4er9Zs2auLNNuBGEACqLp06fLYrEoJCRE7du3d3c5AGCXnTt3Ki0tTZL00EMPubka4DZCfAAwsTFjxhhfHhwxceJExcfH66mnntIzzzzj8Dz16tXL8f3hw4dr+fLl2b6/fPnyTO83adJEc+fOtTp2/PhxHT9+3OE689qlS5eM1/aG+MnJyfr5558lSS1atHA4XASQ2dq1azVs2DClpqYqIiJCs2fPVnBwsENz7dixQ8uWLZMkdejQQa1atXJlqXYjCANQ0Ozfv1/r16+XJHXv3l0BAQFurgiAMyIjI7VhwwaHx9/ZElC6fWfynTubHVG/fn01aNDA4fG22rRpkyQpICBA9evXz/P1AFsQ4gOAiXXo0MGp8Z9++qni4+MVERGhzp07u6iqvBMeHq66des6NDYhIcF4kGVeuXjxovG6VKlSdo3dsmWL4uPjJUlt27Z1aV1AYTZz5kx9+umnslgsqlatmr788kuHA/zLly/rX//6l9LT01WxYkWNGjXKxdXahyAMgLutW7fO7sBt8eLFxmtfX1999913TtVQtmxZt98VBRRmJ06c0KRJk1wy15o1a7RmzRqHx7/xxhtOh/h//PGHKlasmO376enpxsVXDRo0UHJycqYtbu++0C4hIcGmdQMDAx2oFvh/hPgAAKcNHTpUffr0yXR8/Pjx2rZtm5o3b66hQ4davZdVGNW4cWOHHyB58uTJPA/xz58/b7y2N8S/82W1bNmyatSokUvrAgqj5ORkvfvuu8ZdPvXr19cXX3yhYsWKOTRfamqqhgwZopiYGPn6+mry5Mku/csWQRiAgmjGjBk6evSow+MnT57sdA2PP/44n10A7NKyZUv5+vqqe/fumS5me/vtt5Wenq7nn38+y7H79u1TbGysJGnbtm05/mhw7do1m39UOHTokLy9iWHhOP7tAQA47b777tN9992X6fidACw4OFhVq1bN77Jc7uzZs5Ju/wARFBRk87jExETjao62bduypzXgpJiYGA0ZMkS7d++WdHvf+s8++0z+/v4Oz/nRRx/pt99+k3T7Yd61a9d2Sa13EIQBAICC7qefflK5cuXsGpOQkGAE3RMmTHDobvPatWtnuho+O/Hx8Tp16pQk6ebNm5neT01N1bBhwxQfH6+XXnop0/s//vij3fUB+YEQHwAAG0VFRUlSlj9Y5GTTpk3GF8h27dq5vC6gMNmwYYNGjx5tPMz6xRdf1OjRo526smnp0qX65ptvJElt2rTJ8i90AOBKN2/eVIsWLSRJw4YNU5s2bdxcUc5eeOEFjR07Nsv3nn76aUVFRalTp04aN26cTfONHTtW8+fPV0REhPEckoz69++vn376yeGaARROf/31l/G6QoUKmd6vWLGizpw5ozFjxsjPz08dO3Y03ouLi9PKlSsl3d5KJ7staZctW6bdu3crICBAo0ePtqkuLy8ve04D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sNN122rbtm2KiYmRJP3973/P9H5QUJAGDhyoMWPGaNeuXVq9erVat26d67wzZ86UJIWEhGQ5LwAAAAAgfxw7dkydOnWya8yNGzf03HPP5dgnICBA+/fvd6Y0QBIhPgDcEz755BOdOHFCvr6+mjBhgry8vLLsd//99+uNN97QlClTtHTpUjVt2lQtW7Z0au0iRYpo3759Sk9PV0BAgHr27KnevXsrICBAy5cvd2puM1i0aJEkKTw8XI899liWfV588UV9//33Onz4sCZMmKAnnngi050Qdzt58qTWrl0rSXrppZdUpEgR1xcOAAAAAC70zDPPODV+xIgRGjFihIuqAQoXQnwAKODWrl2rr776SpL01ltv6f7778+xf+/evbV9+3bt2rVLI0aMUNWqVfXAAw84vL6np6f+8Y9/6NKlS+rTp49CQ0PtnmPPnj2aPHmySpcurSlTptj8EKK8dvLkSWMrnU6dOmW7p7+np6fef/99vfjii4qJidG4ceOMOweyMnHiRKWlpSkkJES9evXKk9oBAAAAALapXbu2/vzzT5v6jhw5UkuWLFFISIixRSqQ1wjxAaAAO3LkiN555x1JUosWLfTKK6/kOsbLy0tTpkzR3//+d8XExKh///5avHixihcv7nAdzgbRUVFR2rdvn4oVK2aaAF+SPv/8c1ksFgUGBuqll17KsW/dunX18ssv6z//+Y9WrFihJ598Uq1atcrUb/369frll18kSX379nXJvv0AHGOmzxsAKOiWLFmiJUuWuLsMAC5WtWpVvfXWWw6PT05O1rRp0yTd/jtrrVq1HJ6rQYMGDo8FCjpCfAAooE6dOqVXX31ViYmJqlq1ql3725csWVJTp07VK6+8orNnz6pv376aO3euSx90a49Lly5JkkqUKJFr39jYWEVHR+far1ixYvL393e4poMHDxpb3nTr1k0hISG5jnnzzTe1detWnThxQqNGjVKNGjVUqVIl4/0rV67o/ffflyQ9+OCD6tGjh8P1AXDcrVu3JEl+fn5uriRrBGEAAMAsKlSooL59+zo8PiEhwQjxn3zySXXo0MFVpQGFCiE+ABRAkZGR6tmzp65cuaL77rtPc+bMUVBQkF1zNGjQQJMmTdKQIUN04MAB9e/fX7NmzXJLqPXXX39JksqVK5dr3zfffNOmOSdNmmTXw3PvZrFY9MEHH8hisRj7/NuiSJEimjJlijp37qz4+Hj169dPixcvVrFixZSamqrBgwcrNjZWXl5eGjt2rHx8fByqD4Djrly5orS0NEly6g4kAIC1Fi1aaPDgwTb1nTFjhlauXJnHFQEAcO8gxAeAAubo0aPq3bu3YmJiFBwcrNmzZ6ts2bIOzdWyZUvFxMToww8/1M6dO9WnTx/NmDEj36/IP3jwoCTlup9/flm4cKF+//13SdKAAQNsukPgjmrVqumDDz7QsGHDdPr0afXr109z5szRuHHjtHv3bknSwIEDVb9+/TypHUDOjhw5YryuXLmyGyvJHkEYgIIoODhYVatWtalv0aJF87gaAADuLYT4AFCA/Prrrxo0aJDi4uIUEhKiOXPmqHr16k7N2b17d6WlpWnChAnatWuXevbsqS+++CLfrlCNjY3V8ePHJcmmLWtmzZqlRo0a5drP0TsKIiMjNWnSJElSlSpV9PLLL9s9R7t27XTixAnNmjVL+/fvV4sWLXT58mVJ0lNPPaV+/fo5VBsA5/33v/+VdPvOn9KlS7u3mGwQhAEAAAC4m6e7CwAA5M5isWjWrFnq3bu34uLiFBoaqq+//lq1a9d2yfyvvPKKRowYIUn63//+p86dO+vEiRMumTs3P//8sywWiyRpwYIFSkpKyrF/kSJFFBgYmOv/vL3t/506NTVVb7/9thITEyVJ7777rsNb3gwdOlStW7eWJCPAj4iI0CeffCJPT/7zC7hDXFycfvjhB0lS8+bN3VwNAAAAANiGFAEATO7KlSvq37+/Jk+erLS0NFWtWlULFy50+gr8jF555RVNmjRJPj4+ioyMVJcuXbRp0yaXrpGV1atXG68vXrxoPPTIHT777DPt3btX0u2H2TZp0sThuZYtW6atW7daHTt9+rQ2b97sVI0ArBUvXlwRERGqWbNmrn0/++wz3bhxQx4eHurSpYvNawQFBSksLMyurbUAAAAAwFUI8QHAxNatW6c2bdoYwe8TTzyhRYsWqUKFCnmyXrt27TR79mwFBwcrISFBAwYM0Icffqjk5OQ8We/kyZP69ddfJcnYOuKrr77Sjh078mS9nGzYsEGzZ882ahk2bJhD80RGRqpXr1565513dOPGDXl6eqpFixby8fFRQkKChg4dqtGjRys+Pt6V5QOF1lNPPaVly5Zp/vz5OfZbs2aN5s2bJ0lq27at8Zlz69Ytde3aVaNGjdLGjRuz/P9mz5499csvv2jmzJmuPwEAAAAAyAUhPgCY0Llz5/TGG29o8ODBio2NlZeXlwYOHKgvvvhCwcHBebp2kyZNtGTJEj344IOSpHnz5qlTp046dOiQy9eaNWuWLBaLfHx89NVXX+mJJ55Qenq6Bg4cqD/++MPl62Xn6NGjevvtt2WxWOTn56d///vfKlKkiF1zREdHa8yYMWrVqpW2b98uSQoPD9dXX32lqVOnasGCBQoPD5ckLV68WM8991y+3OkAQPrhhx+MH+ZKlSql4cOHG+/NmTNH+/bt0/fff6833nhDjzzyiF5++WXNmzdPFy9edFfJAAAAAGDgwbYAYDKzZ8/WtGnTdOvWLUm3g+CPP/5YDRs2zLcaKlWqpEWLFmn06NFatWqV/vzzT3Xp0kU9e/bUoEGD5Ovr6/Qahw8f1o8//ihJ6tixo0qXLq1x48apU6dOunTpknr06KF3331X7du3d3qtnERHR6tv377GPvgffPCBTdty3HHmzBl98803Wrx4sXHHgq+vr3r06KEBAwYoICBAklSnTh2tWLFC48aN04oVK3Tx4kUNGDBAzZo107/+9S898MADrj85oJC7du2aPv74Yy1ZskSSFBAQoM8//1yhoaFGn4oVK6ply5basWOHrl+/rpSUFO3cuVM7d+7UuHHj1KBBA7Vs2VItWrRQWFiYu04FANxq0aJFWrRoUY59lixZYnze2urQoUOqVq2aM6UBAFAoEOIDgMlUrlxZKSkp8vT0VLdu3fTmm28qKCgo3+sICAjQ5MmT9fjjj+vDDz9UfHy8oqKi7Hpg7LVr17I8npKSolGjRik9PV3BwcEaNGiQJCksLExz585Vt27ddPXqVQ0fPlxff/21Hn/8cZecU0bXr19Xnz59jKtte/XqpXbt2uU6LikpSevWrdPSpUv122+/Gce9vLzUtm1bvfHGGypfvnymcUWLFtVHH32ktm3b6t1331VUVJS2bNmibdu2qUOHDho4cCAhIeAC586d0+LFizV//nxje5wSJUro888/V7169az6tmnTRm3atFF6eroOHDigrVu3asOGDTp27JgsFov27t2rvXv3auLEiXrsscfUsWNHPf300w7/mEkQBhQukZGRSk9Pz3T85s2bxuvY2FidOXMm17liYmKM1xcuXDAuFHBGeHi4Xd/tAOBek5SUpLi4OLvH3HH3Z3NOvL29Vbx4cbvWAe7Gf60BwGSaN2+u8ePHq2rVqqpTp467y1H79u3VuHFjffvttxoyZIg8PbPeiW3p0qVWof2ZM2e0a9cuScr0I8TUqVON7XmGDBlidVXs/7V35+Ex3vv/x19Zib2l1ihKFS2ipbaqVGkd0krV1qK1FCWxl9iXWIoWVRyOxlFbW4rWThG1bz0StSSxlSoSS6SpWGay/P7IN/dPmm1mMolRz8d1ua47M59t0sQ5Xvfnfn8qVqyoFStWaNCgQTpx4oTCwsIUFhZmvD9mzBg999xzKl68uAoWLCgPDw+5uLhkuH4XFxd9+OGHcnJySvV6XFycevToodOnT0tKrqv9ySefZDhOdHS0du/erd27d2vXrl2p6mZ7eHioVatW6tatm8qVK5fhGCleeeUVbdq0SUFBQQoKCtLdu3f1/fffa+3atXr33XfVo0cPo/QOgKwlJiYqPDxc+/fvV3BwsI4ePaqkpCTj/Xr16mnKlCkqVapUhmM4OzvLy8tLXl5e6tu3ry5cuKAtW7bop59+0smTJ5WQkGD8HVCkSBG1atVKHTt2tOh3HsDjq0WLFlmeLTRjxgzNmDHDqnF79+6dnWUZduzYIU9PzyzbvfTSS2rRooVd5rTUypUrFRERkatzAnj8rF+/XqNGjbKpb0xMjMUbzp5//nmtWbPGpnkAiRAfABxSTpeQsVaZMmUUEBCQaZv//e9/Wr16dZrXnZyc1Lx5c+PrLVu2aMGCBZKkV199VR07dkzTp1y5cvruu++0Zs0aLVu2zAjaJenChQu6cOGCxWuvXbu2unTpkub1s2fPKjw8XJJUp04dzZo1K92bASaTST169NDhw4fT7KSrVKmS2rZtK19fXxUpUsTiNUlS3rx55e/vr7Zt22r69Olav369TCaTvv32W61atUq9evVS3759rRoT+KdLSEjQ9evX9fvvv+vixYs6e/asTp06pVOnTqV7IK2np6f69etn0RM2f1e+fHl9/PHH+vjjj3X27FmtXr1a69at040bNxQTE6PFixdryZIl8vb21ocffqj69etbNC5BGIBHUaVKldSpU6dcnXP//v383QUAwP8hxAcA2EWzZs20ceNGmUwmJSUlycPDQ56envLz81Pt2rWNdrVr19abb76pc+fOafr06RmO5+bmpvbt26t9+/a6cuWKfvnlF505c0YXL15UZGSkoqOjFRsbq/v378tsNishISHDdaWnZs2amjVrlubNm6f58+crT5486bZzd3dXy5YtdfDgQUlS8eLF1bx5c7311lt2eVKiRIkSmjZtmj766CPNnj1b27ZtU3x8vOrWrZvtsYF/kokTJ2r58uXplqV4kIeHh+rXry9fX1+9/vrrdikTUalSJQUEBGjw4MH6+eeftWLFCu3Zs0dJSUnauXOndu7cqa+++kqvvvqqRWMRhAGPj8WLF2f599bDVLx48Ye9BAB4qBo1aqSvvvoqx+cpWLBgjs+BfzanpAefNQYAIJfcvXtXHh4eD3sZSkxMzLBE0IOWL1+uatWqycvLK01pHnsKCwvTsWPH1KFDhxybA3gUnT9/Xj4+Pqlu2BUrVkwVKlRQxYoVVblyZb3wwguqWrWqXQ7fzsq5c+e0ePFirVu3Tq+//nqmNyUlqVWrVgoPD1f79u0VGBiY4+t7UJ8+fbRjxw698sorWrhwYa7ODQAAACD7CPEBAADwSNi2bZucnJzk6ekpT0/Ph3Lo99/FxMTIxcWF3VUAAAAAcgwhPgAAAAAAAAAADirr+gEAAAAAAAAAAOChIMQHAAAAAAAAAMBBEeIDAAAAAAAAAOCgCPEBAAAAAAAAAHBQhPgAAAAAAAAAADgoQnwAAAAAAAAAABwUIT4AAAAAAAAAAA6KEB8AAAAAAAAAAAdFiA8AAAAAAAAAgIMixAcAAAAAAAAAwEER4gMAAAAAAAAA4KAI8QEAAAAAAAAAcFCE+AAAAAAAAAAAOChCfAAAAAAAAAAAHBQhPgAAAAAAAAAADooQHwAAAAAAAAAAB0WIDwAAAAAAAACAgyLEBwAAAAAAAADAQRHiAwAAAAAAAADgoAjxAQAAAAAAAABwUIT4AAAAAAAAAAA4KEJ8AAAAAAAAAAAcFCE+AAAAAIcSFRWlEydO5Nj40dHR2r9/v/bv368///wzx+b5p4uPj9ecOXMUHBys6OjobI31xx9/2GlVOSskJEQmk+lhLwMAADxmXMaNGzfuYS8CAAAAgOMwmUzy9vbWwYMHZTKZVK1atVyb22w2q2fPnpo9e7auX7+uWrVqKW/evHadY9++ferZs6fWrl2rRo0aydPT067j22rFihXauHGjfv9uCp6HAAAgAElEQVT9d1WvXj3TtkuXLtWWLVssaptT9uzZo9GjR2vjxo2qWLGizT8nsbGx8vb21rfffisXFxd5eXnZeaXZd/DgQfXr10/z5s3TjRs31KRJk4e9JAAA8BhxfdgLAAAAAB6WLl266MCBAw97GRYpU6aMgoODc2WuQ4cO6dq1a7p27ZoqVqyYK3OmWL16tUJCQiRJ3333nbZu3arRo0erZcuWmfa7evWqSpUqlWPrSkxM1Llz5/Tss8/m2BybN2/WgQMH9PLLL+v999/PtO369et17Ngxi9rmlM2bN0uS8uXLpzfffNPmcXbt2qX4+Hhdv35dTzzxhL2WZ1eVKlXSX3/9JUn6/vvvVbNmTbVt2/ahrefXX39VRETEQ5s/M8WKFdNrr732sJcBAMA/CiE+AAAAgFR27dplXDdr1ixX5+7QoYMKFSqkqVOnKjIyUrdu3dKgQYO0efNmjR8/XkWLFk3V/v79+5o5c6aWLFmiGTNmqHnz5jmyrpUrVyowMFCdOnVSv379VKBAgRyZ51ERFxenrVu3SpJ8fHyy9f3YsWOHJMnd3d1hd7gXK1ZM8+fPV+vWrXXv3j1NnjxZderUUfny5R/KejZt2qRFixY9lLmz8uKLLxLiAwBgZ4T4AAAAeGw1btxYZcqUsdt40dHRxm75WrVq2XUXe27tUE5KStL27dslSSVLllStWrVyZd4HtWjRQt7e3poxY4aWLVumpKQkbdu2TaGhofrss89Uv359o+3u3buNMHPo0KEqUaKE3dccGxurWbNmKSEhQcuXL1fbtm2z3JEfFxenyMhIq+a5d++eJOnu3bs6d+5cpm3v379vcdsU7u7uKlu2rFVrysimTZt0584dScrWkwAmk0l79uyRJDVs2DBHb47873//U2hoaLbGqFq1qkJCQnTnzh0NGDBAb731VrbGy5s3rzp27JitMQAAwD8fIT4AAAAeW127drXreKGhoUaI7+Pjo06dOtl1/NwQEhKiq1evSpKaN28uJyenh7KOfPnyadSoUWrevLlGjBihixcv6vr16+rWrZv8/Pzk5+cnJycnNWvWTP3799esWbN0//59+fv7a82aNSpRooTd1vLll18aB7e+//77FpXUOXDggPz8/Gya7/jx42rRooXd21aoUEFbtmyxaU1/991330mS6tSpo6pVq9o8zuHDh3X79m1JyrJkUnbt3r1b8+fPt9t4YWFhCgsLy9YYRYoUsSnET0pKkpR8E+DYsWPZWkP37t21d+9eubq6avPmzXr66aezNR4AALA/54e9AAAAAACOY9OmTca1j4/PQ1xJstq1a+uHH34w1pKYmKjZs2erf//+unv3riSpT58+at26tSTpxo0bGjhwoOLj4+0y/9GjR7V8+XJJySVV+vbta5dxH2VHjhzRiRMnJEkffvhhtsb68ccfJUkFCxbM9dJNj7KUEN9sNmdrnAMHDmjv3r2SpNatWxPgAwDgoNiJDwAAADzioqOjFRUVZXW/0qVLq3DhwsbXJpNJGzZskCRVrFhR1atXt9sasyN//vyaPn266tWrp/Hjx8tsNis4OFhnzpxRjRo1JEnjxo3T6dOndeLECf3vf//TjBkzNHTo0GzNe//+fY0YMUKJiYnGHIUKFbKob9OmTa0+ePSDDz7QoUOHVKdOHS1btizTtu3atTMOtl26dGmmbZs0aaLLly9btZbMfPXVV5KkcuXK6fXXX7d5nJs3bxpPBrRs2VJ58+a1y/oyMnDgQA0cODDD900mk1q0aKFLly6pWLFi2r59uzw8PKyeZ9OmTcY8Q4YM0UcffWTzmjOS8jOZkJCQ5r0rV64YN7iyMnHiREmSs7OzWrRoYXFppr8rXry4ChYsaFNfAACQNUJ8AAAA4BH3ww8/aNq0aVb3mzZtmlq1amV8vX37dt26dUuSjJ3tjqRt27Z65pln5O/vrz59+hgBviTlyZNHc+bMka+vr2JiYrRo0SI1adJEtWvXtnm+yZMn67fffpOUHDLn9E7xlJr4D6uEkSWOHj1qHHz84YcfytnZ9oe7V65caewkf/fdd+2yvuxwd3fXoEGDNHDgQN24cUNLly5Vz549rRrDZDLp888/l5QcbOdUSa2UEF9KDvJdXFyMrwMCAnT48GGrx+vSpYvN6/n0008d8u8MAAD+KQjxAQAAAEj6/3XOJemzzz7TZ599Zrexn3/+ea1Zsybb47z00kvasGGDihYtmua9UqVKadKkSfLz81NiYqKGDRum9evX27ybOuX7UaZMGY0dO9am9UZFRemXX36xqG3KDYPY2Fht3Lgx07YxMTGSknezZ9U25QBaa128eFFvvPFGhu8HBgYqMDAww/cze0ogISFBK1asML62tSzPSy+9pKCgIJv6pudf//qX5s+fr4iICC1evFhdunSRu7u7xf2DgoKMpx769++fY08XPLgD/8EAHwAA/DMR4gMAAACPuOeff14ffPCB1f0qVqxoXJ88eVKHDh2y57JyTHoBfoqmTZuqffv2WrFihS5duqT58+dnWkIlPeHh4Ro1apQkyc3NTTNnzkxVdsgaK1eu1Jw5c6yef9CgQRa1PXfunMVtHUlwcLBxgLJk+40Ge3NyclLXrl01bNgw3bhxQxs3btQ777xjUd+zZ8/q3//+tyTJy8srR58uSDnzwc3NLcM2JUqU0JgxY3JsDSEhIXa9gQIAADJGiA8AAAA8ICwsTL6+vtkeZ8KECZowYYJNfXv06KFPPvnE4vb16tVTvXr1bJorxX//+1/jukyZMlbtPs5IfHy8Ll26JElydc29f3oEBARo7969unz5sv773//q3XfftfjAzsjISPXs2VNxcXGSpOHDh6tmzZo2r2Xfvn0293Ukr776qqpVq2ZR27Vr16YK6P8uKSlJ8+bNkyQVKlRI77//vtXrmT9/vqTkMkpZadasmX7//Xer55CkYcOGadiwYVb3Cw0NVZUqVazqs2PHDnl6elrUNqUMUWa/V/ny5VPTpk2tWoM17HV4NAAAyBohPgAAAPCYO3v2rDZt2iRJ8vT01JYtWzLd4WupNWvWaPjw4ZKUrSDcWvnz59f48ePVo0cPvf3223ryySct7puUlKSGDRtq7dq1ev/999WxY0eb1/HXX3/p119/lZRcpuWLL77IsO2uXbuM+uvjxo3Te++9l+nY1hxsaw9NmjTJck0pDh8+nGmIv3HjRp08eVKS1LNnT/Xo0cOqtZjNZqtC/H8ik8kkKfOd+AAA4J+DEB8AAADIwFNPPaUCBQpY3N5kMhn1sIsVK6aCBQtaNV9KTfTc9sUXXxgHZfr7+9stGFy5cqVxndsHlzZq1Ehr167Vc889Z1W/UqVK6dNPP1WfPn1UunTpbK3hwIEDRu3yOnXqZNo2IiLCuLZ2B/ejxGQyaebMmZKSv9e2lIG6f/++cW1JiN+9e3fFxsZaPU9us6ZkU8ohyJn9HfPbb79Z/fMPAAAcEyE+AAAAkIFBgwapdevWFrcPDQ1V+/btJUm9e/dWp06drJqvWrVqqQ6szA2HDx/Wtm3bJEnPPPOM3n77bbuMGxERoZCQEElS7dq1LQqmN23apF27dikgIMCq3fMZyU6AWbZs2WzPv3fvXuO6Ro0aqcLnvztw4ICk5J3VlSpVyrStlPzEgCQlJiZm2TY9Tk5OdimZZK1vv/1Wf/zxh6Tkg19t2UlvbYjfoUMHq+dwdCkHGxcpUuQhrwQAAOQGQnwAAADgMWU2mzVu3Djj6xEjRsjFxSVVmxs3bigwMFCS1LJlS7355psWjb18+XLjumvXrlm2v3LlisaOHavY2Fj9/PPP+uSTT9S2bVuL5pKSD9lMKTGSldOnTxvXYWFhFs9RunRpq8L9B+vht2nTxqI+ZrNZtWvXtniOX375RTVq1LC4fYpq1arphx9+sLpfdsTGxhq18J977jm1atXKpnEeDPE9PDzssrZHTUq5osxC/GLFiql37945toawsDCtWrUqx8YHAAD/HyE+AAAA8JiaM2eOzp07J0l644031KhRozRt/vzzT23dulWSLA6Xr1y5ojVr1kiSypcvryZNmmTZ59q1aypSpIhiY2MVExOjUaNGafPmzZo0aZJKlSqVZf/+/fsrKirKovU96NNPP7W4rTUHDl+4cMHYce6IrCndYi8TJkzQrVu3JElDhgyRs7OzTeOklJKRks8/sIXJZDIOh81tbm5u2XoKIj4+XtevX5eUHNRnpGDBglY/DWSNLVu2EOIDAJBLCPEBAACAx9Dhw4e1YMECSclh34gRI9Jt92DQaWnpk/nz5xv9PvroI4vCWi8vL23YsEHz58/XV199JbPZrH379snHx0djx461W5mf3FKyZEnt2LEj0zYJCQmaNGmSdu3aJUl6+eWXLb6p4O/vr7CwMNWsWVMzZsyweF1vvPGGEhIS9NRTT1ncxx62bdumdevWSZJ8fHzSvWFkKXvsxJ87d65xOG5u69ixo8aMGWNz/6tXrxplt55++ml7LQsAADgwQnwAAADgMXPlyhUNHDjQOMx2zJgxGe52f7BEjSX1+i9dumTswn/66af1zjvvWLyuPHnyqH///nrzzTc1bNgwhYWF6fbt2xoyZIgOHTqk0aNHK2/evJmOUatWLU2dOtXiObMSFRWlzp07W90vb9688vT0zPD9M2fOaOTIkTp27JgkqUKFCpo5c2amO6sflLKTO0+ePJnO86CoqCjjv2H58uUt6mMP0dHRGjt2rCSpaNGiGjlyZLbGi4uLM67z5cuXrbEeRcePHzeuy5Url2G7u3fvaufOnTm2jpMnT+bY2AAAIDVCfAAAAOAxM2bMGN24cUOS5Ovrm+ku95QDNKXUZUwyEhgYaOzCHzhwoFxdrf8nR5UqVfT9999rzpw5WrBggRITE7Vq1SqFhYVp3rx5KlGiRIZ98+bNm2mwaa2/nxGQXWfPntXChQu1du1aI1CvWbOm5s6da3GAnxWTyaSYmBglJiYaf8xmsxYtWmS0efHFF+0ylyXGjRunmzdvSpJGjRqV7UOLHwzx7VETf/z48SpYsGC2x8mM2WxWQECAXcYKDQ01rp999tkM20VGRurjjz+2y5wAAODhIsQHAAAAMjB8+HANHz7cpr4TJkzQhAkT7Lwi+xg3bpy6du2qYsWKZbnG6Oho4/r27duZtt20aZN2794tSWrQoIFatGhh8xrd3Nw0cOBA1a1bV0OGDNGNGzd08uRJ9evXTytWrLB53IchMjJSO3bs0Pr16xUSEmK87u7uru7du8vPz09ubm52my8qKkpNmzbN8H1PT0+rDs/NjgdL9zRr1izVz8S2bdsUHBysyZMny8nJyeIxHwzxCxQokO01vv766zleXuj+/ft2C/F//fVXScllsCpXrmyXMQEAgGMjxAcAAAAeM56envrmm2/k6uqa5QGbKTv2Jeny5csZtouNjdXkyZMlJQfw2an5/aAGDRpozZo16tOnjyIiIrJdiiWnJSUl6fz58zpx4oRCQ0N15MgRnTlzJlUbd3d3+fj4qE+fPipbtqzd11C2bFnVqFHDCHsfVLp0aX3xxRd2vWmQGRcXF40ePVqvvvqqqlWrZrz+n//8x6jlX6ZMGfn7+1s85p07d4zrQoUK2W+xj4DY2FijnE6tWrXSPW9i9uzZVh/ae+rUKfXs2VOSNGLECKtvwOX0kwwAADzuCPEBAACADNSqVcvieuOSdOvWLe3du1eSVL16davrjm/YsEFJSUlW9bGVpTuPL168aFz//vvv6bZJSkpSQECArl+/Lin5MNsKFSpkf5H/p0SJElq+fLlCQkJUo0aNTNseO3ZMH3zwgUqVKqWSJUuqZMmSKl26tJ5++ml5enrmSng9aNAghYeHp3n9ueeek4+Pj955551s7/z+8ssvdf/+/QzPCJg0aZLOnz+vxMREJSUlycnJScWLF1fNmjVt+h4EBwcrMjLSorZXr15N81rjxo1Tfe3r66slS5boxo0bmjt3rqpXr56mTUYeDPHtER6fPXs21c2qnGBtqJ6RnTt3Kj4+XpLk7e2dbpsiRYpYPW7hwoWN64IFC+b6wccAACBzhPgAAABABtq1a6fWrVtb3D40NNQI8X19fdWpUyer5tu0aZNFh8fmpgd3kYeHh8tsNqcJgYOCghQcHCxJqlGjhvz8/Oy+jrx586p+/fpZtrtz544OHTqU7nsuLi4qXbq0ypUrp8qVK6tq1aqqUqWKnnnmGZtq96fHyclJffv2lZ+fn4oXLy4vLy/Vr19fjRo10lNPPWX8932wJIwtChYsaATY6Y1VpkwZlSlTRs7OznapG797926jVJI9lChRQp9//rm6d++uhIQEDR8+XBs2bLCoXv5ff/1lXNsjxO/SpUu2x8gtKYdGOzs764033rC4X3x8vJYtWyY3Nzd17NjRprmXLFmihIQEtWrVKtvnGgAAAOsQ4gMAAABIV0JCQqoQ/86dOzp58qS8vLyM127fvq2goCBJyYHqjBkzcq1US3oKFy6sEiVK6OrVq6nCXin581y6dEmXLl0ybrZIyeVtnn/+edWqVUsvvvii6tevn61a602bNtXu3bvTHMDbuXNnHT582OZxbVGmTBnjBoujqV+/vvz9/TVr1izdvHlTY8eO1ezZs7PsZ+8Q/1Fx7tw54wZVw4YNLd4tv3v3bn3++eeKiIiQlPzkjC03GCdPnqykpCRNnz5dTZo0UceOHVW3bl3rPgQAALAJIT4AAACAdIWGhqY5zHbr1q2pQvwCBQpo1apV6t+/v3r16pUjNd6tUb16dS1cuFBS8g2GyMhI/fHHH7pw4YLx59y5c7p27ZrRx2QyKSQkRCEhIfrvf/+rHTt2ZPvA1L8H+I+6cePG6b333rOo7XvvvaejR49a1LZXr176+eefdezYMf30009av3693nrrrUz7xMbGSkrejW6PED8oKMimEjTWMJvNFn//MjJnzhyj3FaHDh2ynG/btm0KCgrSyZMnjdcLFSokFxcXq+e+ffu2qlSporCwMJnNZm3dulVbt27Vc889p+7du8vHx8emcQEAgGUI8QEAAIBH2KZNmxQSEmJz/3LlymW4K/fB8illypTR5cuXtW7dOg0aNCjVbvuyZcvq+++/z/EQb/Pmzfr999/10UcfZTjXgwd9FihQQJUqVVKlSpXStIuOjlZERITCw8N1/PhxhYSE6MqVK1afg2CLypUr6+OPP87ROZYuXZqtn4vc4uLioilTpuidd97RvXv3NHXqVL322muZ3kRJ2YlfqFChdA92tVaVKlVyvAb8/fv3s9X/6NGj2rx5sySpYsWKatKkSZo2SUlJOnnypNauXav169fr1q1bxnsuLi5q1aqVBg8erGLFilk9f7t27dSuXTudOnVK33zzjdatW6f79+8rIiJCQ4cO1dy5c+Xv76+33npLTk5Otn9QAACQLkJ8AAAA4BG2b98+rVq1yub+L7/8crohfnx8vH744QdJUvny5TV06FD16dNHN27c0A8//KB27dqlap/TAX58fLxmzpypixcvaufOnVq+fHmqORMTE61ax5NPPqn69eunqrMfFRWV6tBUSbp3754dVp9a0aJF1bJlS7uP+6Dt27c/EiG+JD3zzDPq16+fpk2bpuvXr2vevHkaMmRIhu1TduI/8cQTubXEh27jxo3GLnw/P79UNy/OnTunRYsWadeuXameMJEkV1dX+fj4qE+fPipXrly211GtWjVNnDhRgwYN0jfffKPFixcrNjZWFy9e1JAhQ/TNN99o6dKlD7WkFgAA/0SE+AAAAADS2LZtm6KioiRJbdq00WuvvabSpUvrypUrmjdvnlq1aqU8efLk2nrWrFmjixcvSkp+KuDvYX1K2J4/f36b50gpgXP//n0FBwdrw4YN2rVrl83j2ct3332nuLg4lShRQj4+Pg97OTnigw8+0KpVq3T+/HktXrxYHTp0yLA0U8pOfHuVwAkPD1dkZKRdxsqI2WzOVv+AgABFRkbqzz//VIsWLVK998QTT2jbtm2KiYkxXitdurTatGmjNm3a5EhppyeffFL+/v7q3LmzgoKCtGjRIpnNZr322msE+AAA5ABCfAAAADy2VqxYoSNHjqR6LWWXryStXLlS+/fvt3i8B8tX/PjjjwoNDbVqPSm7yX/++ed0Q8Xx48enCaknTZqkSZMmWTVPVuLj4/Xll19KkvLly6c2bdrI2dlZPXv21Lhx44wgf8CAAXadNyMmk0n//ve/JSXvtPfz80v1flJSkhHi21rL3mw26+DBg9q4caN++uknxcXFZW/RdjRt2jTFxcWpfv36/9gQ383NTaNGjVK3bt1kNps1b948TZ48Od22N2/elGS/EP+jjz6yyzg5yd3d3TgA+O/lap588kl98sknmjt3rpo2bapmzZqpTp06dik1lJXChQtr8ODB8vX11apVq9SzZ88cnxMAgMcRIT4AAAAeWyEhIVq/fn2m79takuT48eM6fvy4TX3PnDmjM2fOpHl9xIgR2dppbqkVK1bo/PnzkpJ3SKeULWnbtq2+/vprXbhwQUFBQWrZsqWeffbZHF/PN998o6tXr0qS3n77bT3zzDOp3o+OjjZ2OltT79tkMmnv3r366aefFBwcrD///DPV+3ny5JGXl5cOHTqUzU9gO5PJZNxQyO5hu46uYcOGatSokfbs2aN169bJz89PZcqUSdMuOjpaUnJZoseJq6trhrvq27Ztq7Zt21o8lslkkpubm3FDoGjRomrfvr0kqUKFClavrWLFigoICLC6HwAAsAwhPgAAAADD5cuXNWPGDEnJB4d27drVeM/V1VXDhw9Xr169ZDabNXjwYK1atUru7u45tp7o6GjNnTtXUvJu7b/vwpeU6qmFkiVLZjpebGys9uzZo+DgYO3cuTPNjnsPDw+9+uqrevPNN+Xt7a1bt27p9ddft8Mnsc2VK1eM69KlSz+0deQWf39/7dmzR4mJiTpx4kSaEP/27dsymUySrLth83dt2rRRgwYNsrVWW9mzvI3ZbLa6fE10dLR69+6tfPnyaerUqSpevLjKli2rwMBAi/onJSVpw4YNev3115UvXz5blg0AAKxEiA8AAIDH1pQpUzRlypRUr4WFhcnX11eS9Omnn6p169a5tp5q1aopISFBPXr00CeffJJr86ZISkrSiBEjdPv2bUnSJ598kqZkibe3t3x9ffXjjz8qIiJCkydP1rhx43JsTTNmzDBKHHXs2DHdOumnT582rtPbuX3+/Hnt3LlTP//8s44ePar4+PhU7xcsWFCNGzdWs2bN1LhxY3l4eBjvPVgi6WFIOQdAUponEP6JvLy81KFDB/n6+qpWrVpp3k8ppSNJTz31lM3zlC1bNsOa+1k5e/as1q5dq759+9p0Ays8PFxJSUlpyuLYolu3bvLw8FCXLl2MmxIJCQmqW7euJOndd9/V8OHDjfbx8fHq1q2bwsLCJEm+vr6aPXu2XnrpJYvmO336tEaPHq3Q0FDVq1dPCxYsyNWzMQAAeFwR4gMAAACQJH3xxRc6ePCgJKl27dpq165duu1GjhypQ4cO6erVq/r2229VrVq1DNtmx4kTJ7R69WpJyeU+/P3902138uRJ47pixYq6deuWDh48qP3792vfvn26fPlymj5PPfWUmjRpoqZNm6pevXo5+jRBdhw9etS4tjRofdSNHz8+w/fsEeKHh4frypUratKkSbrvL1myRH/++afKli1r3NBLERISovfff1+JiYm6du2apk6davG8t27d0pQpU7R27Vr17NlTgwYNsmn9KX755RcdPnxYUvITJikhflJSknH47927d1P1cXV11eeff66+ffvq/Pnzunnzpj788ENNmTLFovMW3Nzc9Mcff0iSDh48qAEDBmjOnDlpDpoGAAD2lfMn3QAAAABweFu3btX8+fMlJZfRmTJlSoY7hQsVKqQ5c+Yob968kqTAwEDt27fPrutJSkrSxIkTjcN+Bw0apIIFC6bb9sGa9b1791aDBg00YMAArVy5MlWAX7lyZfXq1UsrVqzQnj17FBgYqFdffdVhA3xJCg4OlpRcSqdSpUoPeTUP3/Xr143rrEonZeTTTz9V79691bVrV+Pn60FLly7VnDlz9OOPP6Z5r1atWnrnnXckJR9enfI7Ywk3NzedPHlSSUlJ+s9//pPpeRyWmDdvnnHdrVs3i/tVqlRJq1atkre3t6TkkjxDhgzRDz/8kGXfChUqaNGiRcYTOsHBwRkeQAwAAOyHEB8AAAB4zB0+fFhDhw6VJDk5OWnatGlZlhp54YUXjPDObDbLz89PR44csduali9fbhwqXL16db377rvptouMjDTK6dStW1fXrl0zgtk8efKoUaNGGjVqlLZv367169dr0KBB8vLyskspk5y2e/du47P5+vo+EmvOaVFRUca1LSH+tm3bjKdNKlSoIGdn6/9JPHr0aFWsWFGSNGfOHOMQ6KwUKFBA8+bNMwLwMWPGWNz37/bu3au9e/dKksqVK6emTZta1T9//vz697//bRxmm5iYqJEjRxo3jf7u5MmTxuHRlStXVlBQkFEPf9myZVqyZIlNnwMAAFiGcjoAAADAY+zYsWP6+OOPde/ePUlSv3799Nprr1nUt2XLloqMjNS0adN09+5d9erVS3PnzlX9+vWztaZLly5p+vTpkpJ3LwcGBmYYYK9bt864bt++vYoWLart27erUaNGqlu3rvG0wKMmKipKY8aMkZQc/nbu3Pmhrmf79u3pliVKz4OH8drb1atXJUnu7u4qXry4VX1jYmKMUj0FChTIsDxTVjw8PDRt2jS1a9dOZrNZkyZN0sKFC9O0O3XqlKpUqZLqRkHZsmU1Y8YMde/eXXfu3NGA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ZPY71rt3b61evVqFCxdWqVKlMmx37do1o5RQgQIFNHv2bOXJkyfD9nXr1tXWrVt19uxZ/etf/1LVqlVVuHBheXh4yNXV1bhRISXfIEhMTFRiYqLMZrPMZrPu3bunmJgYhYSEGDczOnfurHz58qU7X7169bR06VKbf0cAAEDmCPEBAACAXJAS2me221ZKDnLfeOMNu849a9YsLVy40Pi6Vq1amjlzZqahYXaUL19eK1eu1NixY7V27VpJ0ooVKxQaGqoff/wx3XrZ3bp105EjR5QnTx59+umnmY6/YMECY0f20KFDVbx4cZvXWrp0ae3YscM4MDUj77//vkXB98WLF/X9998rKipKkZGRunz5sq5evZrhUxYuLi566aWX1KpVK/3rX//KVl3/IkWKyMfHRz4+PjKbzdq7d682btyoHTt26M6dO7p9+7ZWrFihFStWqEGDBurTp4/q1Klj83z29OSTT2r16tVZtqtSpYrGjBlj8bjOzs4aMGCA3n77bYuf1ujRo4f27dsns9msxYsXa/HixRbP9yAnJyeNHTs2VdmjvytevLg+//xz1a9fP9NDiEuUKKE1a9boq6++0nPPPZflZ+nfv78OHjyoP//8U1euXDGe8rBVrVq15Ofnl2kbAnwAAHKOU9KDRR4BAACAx1x4eLjatm0rSZowYYJ8fX3tNvavv/6qdu3aKb3/C16gQAF5eXlpyJAhqlKlit3mlKS4uDi1adNGly9fVr9+/dStW7dcO3hy8+bNGjdunGJiYjR+/HijfEh6rly5otjY2Cw/v8lk0sSJExUXF6fp06dne41ff/11qhsHrq6uyp8/v0qWLKnnn39ezZs3t2gHt5T8vfb29lZsbGy67zs5OalChQp66aWXVLduXTVq1MiiXffZcefOHW3ZskUrV65USEiI8frgwYPVs2fPDPtdvHjRuKE0btw4iw+D3bx5s6KiolSyZEk1b97c4nW2atVKkZGRMpvNRi13d3d3FS5cWE8//bTq1aunTp06Zbgb3J4OHz6sRYsW6eLFi7p165bi4uJkMpnS/d39u3z58unZZ59Vnz595O3tneNrzci5c+e0YMECnTp1SjExMbp3755MJpPi4+OVkJCQ5rO4uLjI1dVV7u7u8vDwUMGCBVW8eHE1aNBAH374YaY7/wEAQM4ixAcAAAByUVJSkkwmkxFSpgRnD5a3yAnnzp2TJFWsWDFH50nP9evX9d1336lv3752HTchISHHv2+2+Pzzz7V69WqVKFFCpUqVUrly5VS+fHlVqlRJVapUUYECBR7a2k6dOqWFCxfqt99+08qVK9PU3EfmEhISlJCQYNxoiI+PV2JiopycnOTq6mqU3AEAALAnQnwAAAAAeMw46g0QAAAApEWIDwAAAAAAAACAg8qdQpgAAAAAAAAAAMBqhPgAAAAAAAAAADgoQnwAAAAAAAAAABwUIT4AAAAAAAAAAA6KEB8AAAAAAAAAAAdFiA8AAAAAAAAAgIMixAcAAAAAAAAAwEER4gMAAAAAAAAA4KAI8QEAAAAAAAAAcFCE+AAAAAAAAAAAOChCfAAAAAAAAAAAHBQhPgAAAAAAAAAADooQHwAAAAAAAAAAB0WIDwAAAAAAAACAgyLEBwAAAAAAAADAQRHiAwAAAAAAAADgoAjxAQAAAAAAAABwUIT4AAAAAAAAAAA4KEJ8AAAAAAAAAAAcFCE+AAAAAAAAAAAOihAfAAAAAAAAAAAHRYgPAAAAAAAAAICDIsQHAAAAAAAAAMBBEeIDAAAAAAAAAOCgCPEBAAAAAAAAAHBQhPgAAAAAAAAAADgoQnwAAAAAAAAAABwUIT4AAAAAAAAAAA6KEB8AAAAAAAAAAAdFiA8AAAAAAAAAgIMixAcAAAAAAAAAwEER4gMAAAAAAAAA4KAI8QEAAAAAAAAAcFCE+AAAAAAAAAAAOChCfAAAAAAAAAAAHBQhPgAAAAAAAAAADooQHwAAAAAAAAAAB0WIDwAAAAAAAACAg/p/QleBXL6NwOMAAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<Figure size 1500x1500 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"sns.catplot(attrs[-2], data=df, kind='count')\\n\",\n    \"sns.catplot(attrs[-1], data=df, kind='count')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 88,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"77c75c6c82134ff7be3fb6abb32f1b8a\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_77c75c6c82134ff7be3fb6abb32f1b8a = echarts.init(document.getElementById('77c75c6c82134ff7be3fb6abb32f1b8a'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_77c75c6c82134ff7be3fb6abb32f1b8a = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u6211\\\\u7684\\\\u7b2c\\\\u4e00\\\\u4e2a\\\\u56fe\\\\u8868\\\",\\n\",\n       \"            \\\"subtext\\\": \\\"\\\\u8fd9\\\\u91cc\\\\u662f\\\\u526f\\\\u6807\\\\u9898\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 2897644,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u670d\\\\u88c5\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                5,\\n\",\n       \"                20,\\n\",\n       \"                36,\\n\",\n       \"                10,\\n\",\n       \"                75,\\n\",\n       \"                90\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2897644\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u670d\\\\u88c5\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 39\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u886c\\\\u886b\\\",\\n\",\n       \"                \\\"\\\\u7f8a\\\\u6bdb\\\\u886b\\\",\\n\",\n       \"                \\\"\\\\u96ea\\\\u7eba\\\\u886b\\\",\\n\",\n       \"                \\\"\\\\u88e4\\\\u5b50\\\",\\n\",\n       \"                \\\"\\\\u9ad8\\\\u8ddf\\\\u978b\\\",\\n\",\n       \"                \\\"\\\\u889c\\\\u5b50\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_77c75c6c82134ff7be3fb6abb32f1b8a.setOption(option_77c75c6c82134ff7be3fb6abb32f1b8a);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f619f2f8400>\"\n      ]\n     },\n     \"execution_count\": 88,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from pyecharts import Bar, configure\\n\",\n    \"\\n\",\n    \"configure(output_image='pdf')\\n\",\n    \"\\n\",\n    \"bar = Bar(\\\"我的第一个图表\\\", \\\"这里是副标题\\\")\\n\",\n    \"bar.add(\\\"服装\\\", [\\\"衬衫\\\", \\\"羊毛衫\\\", \\\"雪纺衫\\\", \\\"裤子\\\", \\\"高跟鞋\\\", \\\"袜子\\\"], [5, 20, 36, 10, 75, 90], legend_text_size=39)\\n\",\n    \"#bar.show_config()\\n\",\n    \"bar # 将在 jupyter 中显示为 pdf 文件，并不保存为本地 pdf 文件。\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 99,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"64e5529cf5c646b2bedf132ca03bd7fd\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_64e5529cf5c646b2bedf132ca03bd7fd = echarts.init(document.getElementById('64e5529cf5c646b2bedf132ca03bd7fd'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_64e5529cf5c646b2bedf132ca03bd7fd = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u6c14\\\\u6e29\\\\u53d8\\\\u5316\\\\u6298\\\\u7ebf\\\\u56fe\\\",\\n\",\n       \"            \\\"subtext\\\": \\\"2018-4-16\\\",\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 5344911,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"line\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u670d\\\\u88c5\\\",\\n\",\n       \"            \\\"symbol\\\": \\\"emptyCircle\\\",\\n\",\n       \"            \\\"symbolSize\\\": 4,\\n\",\n       \"            \\\"smooth\\\": false,\\n\",\n       \"            \\\"step\\\": false,\\n\",\n       \"            \\\"showSymbol\\\": true,\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    \\\"\\\\u886c\\\\u886b\\\",\\n\",\n       \"                    5\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    \\\"\\\\u7f8a\\\\u6bdb\\\\u886b\\\",\\n\",\n       \"                    20\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    \\\"\\\\u96ea\\\\u7eba\\\\u886b\\\",\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    \\\"\\\\u88e4\\\\u5b50\\\",\\n\",\n       \"                    10\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    \\\"\\\\u9ad8\\\\u8ddf\\\\u978b\\\",\\n\",\n       \"                    75\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    \\\"\\\\u889c\\\\u5b50\\\",\\n\",\n       \"                    90\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"areaStyle\\\": {\\n\",\n       \"                \\\"opacity\\\": 0\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": [\\n\",\n       \"                    {\\n\",\n       \"                        \\\"type\\\": \\\"max\\\",\\n\",\n       \"                        \\\"name\\\": \\\"Maximum\\\",\\n\",\n       \"                        \\\"symbol\\\": \\\"pin\\\",\\n\",\n       \"                        \\\"symbolSize\\\": 50,\\n\",\n       \"                        \\\"label\\\": {\\n\",\n       \"                            \\\"normal\\\": {\\n\",\n       \"                                \\\"textStyle\\\": {\\n\",\n       \"                                    \\\"color\\\": \\\"#fff\\\"\\n\",\n       \"                                }\\n\",\n       \"                            }\\n\",\n       \"                        }\\n\",\n       \"                    }\\n\",\n       \"                ]\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 5344911\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u670d\\\\u88c5\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"left\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u886c\\\\u886b\\\",\\n\",\n       \"                \\\"\\\\u7f8a\\\\u6bdb\\\\u886b\\\",\\n\",\n       \"                \\\"\\\\u96ea\\\\u7eba\\\\u886b\\\",\\n\",\n       \"                \\\"\\\\u88e4\\\\u5b50\\\",\\n\",\n       \"                \\\"\\\\u9ad8\\\\u8ddf\\\\u978b\\\",\\n\",\n       \"                \\\"\\\\u889c\\\\u5b50\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_64e5529cf5c646b2bedf132ca03bd7fd.setOption(option_64e5529cf5c646b2bedf132ca03bd7fd);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.line.Line at 0x7f619f2960f0>\"\n      ]\n     },\n     \"execution_count\": 99,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import pyecharts\\n\",\n    \"line = pyecharts.Line(\\\"气温变化折线图\\\", '2018-4-16', title_pos='center')\\n\",\n    \"line.add(\\\"服装\\\", [\\\"衬衫\\\", \\\"羊毛衫\\\", \\\"雪纺衫\\\", \\\"裤子\\\", \\\"高跟鞋\\\", \\\"袜子\\\"], [5, 20, 36, 10, 75, 90], mark_point=['max'], legend_pos='left')\\n\",\n    \"#line.add(\\\"最低气温\\\", cities, lows, mark_line=['average'], is_smooth=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def cat_count(attr):\\n\",\n    \"  counts = df.groupby([attr]).size()\\n\",\n    \"  return [counts[x] for x in classes]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"e6ce145eab0f41fda6af9b269a596d99\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_e6ce145eab0f41fda6af9b269a596d99 = echarts.init(document.getElementById('e6ce145eab0f41fda6af9b269a596d99'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_e6ce145eab0f41fda6af9b269a596d99 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u4f4d\\\\u7f6e\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 6812027,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u4ea4\\\\u901a\\\\u662f\\\\u5426\\\\u4fbf\\\\u5229\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                81382.0,\\n\",\n       \"                1318.0,\\n\",\n       \"                1046.0,\\n\",\n       \"                21254.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 6812027\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u8ddd\\\\u79bb\\\\u5546\\\\u5708\\\\u8fdc\\\\u8fd1\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                83680.0,\\n\",\n       \"                586.0,\\n\",\n       \"                533.0,\\n\",\n       \"                20201.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 6812027\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u662f\\\\u5426\\\\u5bb9\\\\u6613\\\\u5bfb\\\\u627e\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                80605.0,\\n\",\n       \"                3976.0,\\n\",\n       \"                2472.0,\\n\",\n       \"                17947.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 6812027\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u4ea4\\\\u901a\\\\u662f\\\\u5426\\\\u4fbf\\\\u5229\\\",\\n\",\n       \"                \\\"\\\\u8ddd\\\\u79bb\\\\u5546\\\\u5708\\\\u8fdc\\\\u8fd1\\\",\\n\",\n       \"                \\\"\\\\u662f\\\\u5426\\\\u5bb9\\\\u6613\\\\u5bfb\\\\u627e\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 20\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672a\\\\u63d0\\\\u53ca\\\",\\n\",\n       \"                \\\"\\\\u8d1f\\\\u9762\\\",\\n\",\n       \"                \\\"\\\\u4e2d\\\\u6027\\\",\\n\",\n       \"                \\\"\\\\u6b63\\\\u9762\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_e6ce145eab0f41fda6af9b269a596d99.setOption(option_e6ce145eab0f41fda6af9b269a596d99);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce256ef0>\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from pyecharts import Bar, configure\\n\",\n    \"\\n\",\n    \"configure(output_image='pdf')\\n\",\n    \"\\n\",\n    \"bar = Bar('位置', title_text_size=36)\\n\",\n    \"\\n\",\n    \"for i in range(0, 3):\\n\",\n    \"  bar.add(attrs[i], classes, cat_count(attrs[i]), xaxis_label_textsize=30, legend_text_size=20)\\n\",\n    \"#bar.show_config()\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"f704a114a7e947c2a89df8c9507fb4ae\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_f704a114a7e947c2a89df8c9507fb4ae = echarts.init(document.getElementById('f704a114a7e947c2a89df8c9507fb4ae'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_f704a114a7e947c2a89df8c9507fb4ae = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u670d\\\\u52a1\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 362844,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u6392\\\\u961f\\\\u7b49\\\\u5019\\\\u65f6\\\\u95f4\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                92763.0,\\n\",\n       \"                3034.0,\\n\",\n       \"                4382.0,\\n\",\n       \"                4821.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 362844\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u670d\\\\u52a1\\\\u4eba\\\\u5458\\\\u6001\\\\u5ea6\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                42410.0,\\n\",\n       \"                8684.0,\\n\",\n       \"                12534.0,\\n\",\n       \"                41372.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 362844\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u662f\\\\u5426\\\\u5bb9\\\\u6613\\\\u505c\\\\u8f66\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                98276.0,\\n\",\n       \"                1323.0,\\n\",\n       \"                1456.0,\\n\",\n       \"                3945.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 362844\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u70b9\\\\u83dc/\\\\u4e0a\\\\u83dc\\\\u901f\\\\u5ea6\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                88700.0,\\n\",\n       \"                5487.0,\\n\",\n       \"                2379.0,\\n\",\n       \"                8434.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 362844\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u6392\\\\u961f\\\\u7b49\\\\u5019\\\\u65f6\\\\u95f4\\\",\\n\",\n       \"                \\\"\\\\u670d\\\\u52a1\\\\u4eba\\\\u5458\\\\u6001\\\\u5ea6\\\",\\n\",\n       \"                \\\"\\\\u662f\\\\u5426\\\\u5bb9\\\\u6613\\\\u505c\\\\u8f66\\\",\\n\",\n       \"                \\\"\\\\u70b9\\\\u83dc/\\\\u4e0a\\\\u83dc\\\\u901f\\\\u5ea6\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 20\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672a\\\\u63d0\\\\u53ca\\\",\\n\",\n       \"                \\\"\\\\u8d1f\\\\u9762\\\",\\n\",\n       \"                \\\"\\\\u4e2d\\\\u6027\\\",\\n\",\n       \"                \\\"\\\\u6b63\\\\u9762\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_f704a114a7e947c2a89df8c9507fb4ae.setOption(option_f704a114a7e947c2a89df8c9507fb4ae);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce256dd8>\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('服务', title_text_size=36)\\n\",\n    \"\\n\",\n    \"for i in range(3, 7):\\n\",\n    \"  bar.add(attrs[i], classes, cat_count(attrs[i]), xaxis_label_textsize=30, legend_text_size=20)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"4cd41141a16648daab15eb6f05004300\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_4cd41141a16648daab15eb6f05004300 = echarts.init(document.getElementById('4cd41141a16648daab15eb6f05004300'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_4cd41141a16648daab15eb6f05004300 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u4ef7\\\\u683c\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 4581479,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u4ef7\\\\u683c\\\\u6c34\\\\u5e73\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                52820.0,\\n\",\n       \"                12375.0,\\n\",\n       \"                24249.0,\\n\",\n       \"                15556.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 4581479\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u6027\\\\u4ef7\\\\u6bd4\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                80242.0,\\n\",\n       \"                3011.0,\\n\",\n       \"                3072.0,\\n\",\n       \"                18675.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 4581479\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u6298\\\\u6263\\\\u529b\\\\u5ea6\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                64243.0,\\n\",\n       \"                1716.0,\\n\",\n       \"                18255.0,\\n\",\n       \"                20786.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 4581479\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u4ef7\\\\u683c\\\\u6c34\\\\u5e73\\\",\\n\",\n       \"                \\\"\\\\u6027\\\\u4ef7\\\\u6bd4\\\",\\n\",\n       \"                \\\"\\\\u6298\\\\u6263\\\\u529b\\\\u5ea6\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672a\\\\u63d0\\\\u53ca\\\",\\n\",\n       \"                \\\"\\\\u8d1f\\\\u9762\\\",\\n\",\n       \"                \\\"\\\\u4e2d\\\\u6027\\\",\\n\",\n       \"                \\\"\\\\u6b63\\\\u9762\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_4cd41141a16648daab15eb6f05004300.setOption(option_4cd41141a16648daab15eb6f05004300);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce208be0>\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('价格', title_text_size=36)\\n\",\n    \"\\n\",\n    \"for i in range(7, 10):\\n\",\n    \"  bar.add(attrs[i], classes, cat_count(attrs[i]), xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"5ad13bc635fc486f87beb9ad482b81c3\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_5ad13bc635fc486f87beb9ad482b81c3 = echarts.init(document.getElementById('5ad13bc635fc486f87beb9ad482b81c3'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_5ad13bc635fc486f87beb9ad482b81c3 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u73af\\\\u5883\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 2713808,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u88c5\\\\u4fee\\\\u60c5\\\\u51b5\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                53916.0,\\n\",\n       \"                2139.0,\\n\",\n       \"                9492.0,\\n\",\n       \"                39453.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2713808\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u5608\\\\u6742\\\\u60c5\\\\u51b5\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                73445.0,\\n\",\n       \"                3077.0,\\n\",\n       \"                4843.0,\\n\",\n       \"                23635.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2713808\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u5c31\\\\u9910\\\\u7a7a\\\\u95f4\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                65398.0,\\n\",\n       \"                5706.0,\\n\",\n       \"                9262.0,\\n\",\n       \"                24634.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2713808\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u536b\\\\u751f\\\\u60c5\\\\u51b5\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                66598.0,\\n\",\n       \"                4513.0,\\n\",\n       \"                4703.0,\\n\",\n       \"                29186.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2713808\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u88c5\\\\u4fee\\\\u60c5\\\\u51b5\\\",\\n\",\n       \"                \\\"\\\\u5608\\\\u6742\\\\u60c5\\\\u51b5\\\",\\n\",\n       \"                \\\"\\\\u5c31\\\\u9910\\\\u7a7a\\\\u95f4\\\",\\n\",\n       \"                \\\"\\\\u536b\\\\u751f\\\\u60c5\\\\u51b5\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672a\\\\u63d0\\\\u53ca\\\",\\n\",\n       \"                \\\"\\\\u8d1f\\\\u9762\\\",\\n\",\n       \"                \\\"\\\\u4e2d\\\\u6027\\\",\\n\",\n       \"                \\\"\\\\u6b63\\\\u9762\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_5ad13bc635fc486f87beb9ad482b81c3.setOption(option_5ad13bc635fc486f87beb9ad482b81c3);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce208f98>\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('环境', title_text_size=36)\\n\",\n    \"\\n\",\n    \"for i in range(10, 14):\\n\",\n    \"  bar.add(attrs[i], classes, cat_count(attrs[i]), xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"2fb42070ff8542219b0747f4ac18ae69\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_2fb42070ff8542219b0747f4ac18ae69 = echarts.init(document.getElementById('2fb42070ff8542219b0747f4ac18ae69'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_2fb42070ff8542219b0747f4ac18ae69 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u83dc\\\\u54c1\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 662183,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u5206\\\\u91cf\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                56917.0,\\n\",\n       \"                10018.0,\\n\",\n       \"                9506.0,\\n\",\n       \"                28559.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 662183\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u53e3\\\\u611f\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                5070.0,\\n\",\n       \"                4363.0,\\n\",\n       \"                40200.0,\\n\",\n       \"                55367.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 662183\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u5916\\\\u89c2\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                75975.0,\\n\",\n       \"                3178.0,\\n\",\n       \"                4675.0,\\n\",\n       \"                21172.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 662183\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u63a8\\\\u8350\\\\u7a0b\\\\u5ea6\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                84767.0,\\n\",\n       \"                2275.0,\\n\",\n       \"                1988.0,\\n\",\n       \"                15970.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 662183\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u5206\\\\u91cf\\\",\\n\",\n       \"                \\\"\\\\u53e3\\\\u611f\\\",\\n\",\n       \"                \\\"\\\\u5916\\\\u89c2\\\",\\n\",\n       \"                \\\"\\\\u63a8\\\\u8350\\\\u7a0b\\\\u5ea6\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672a\\\\u63d0\\\\u53ca\\\",\\n\",\n       \"                \\\"\\\\u8d1f\\\\u9762\\\",\\n\",\n       \"                \\\"\\\\u4e2d\\\\u6027\\\",\\n\",\n       \"                \\\"\\\\u6b63\\\\u9762\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_2fb42070ff8542219b0747f4ac18ae69.setOption(option_2fb42070ff8542219b0747f4ac18ae69);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce21e2b0>\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('菜品', title_text_size=36)\\n\",\n    \"\\n\",\n    \"for i in range(14, 18):\\n\",\n    \"  bar.add(attrs[i], classes, cat_count(attrs[i]), xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"1348290527ff4cf4a3325b80b1f14223\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_1348290527ff4cf4a3325b80b1f14223 = echarts.init(document.getElementById('1348290527ff4cf4a3325b80b1f14223'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_1348290527ff4cf4a3325b80b1f14223 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u5176\\\\u4ed6\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 7467899,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u672c\\\\u6b21\\\\u6d88\\\\u8d39\\\\u611f\\\\u53d7\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                2110.0,\\n\",\n       \"                9384.0,\\n\",\n       \"                23436.0,\\n\",\n       \"                70070.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 7467899\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u518d\\\\u6b21\\\\u6d88\\\\u8d39\\\\u7684\\\\u610f\\\\u613f\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                65600.0,\\n\",\n       \"                4159.0,\\n\",\n       \"                2913.0,\\n\",\n       \"                32328.0\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 7467899\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672c\\\\u6b21\\\\u6d88\\\\u8d39\\\\u611f\\\\u53d7\\\",\\n\",\n       \"                \\\"\\\\u518d\\\\u6b21\\\\u6d88\\\\u8d39\\\\u7684\\\\u610f\\\\u613f\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u672a\\\\u63d0\\\\u53ca\\\",\\n\",\n       \"                \\\"\\\\u8d1f\\\\u9762\\\",\\n\",\n       \"                \\\"\\\\u4e2d\\\\u6027\\\",\\n\",\n       \"                \\\"\\\\u6b63\\\\u9762\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_1348290527ff4cf4a3325b80b1f14223.setOption(option_1348290527ff4cf4a3325b80b1f14223);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce21ea58>\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('其他', title_text_size=36)\\n\",\n    \"\\n\",\n    \"for i in range(18, 20):\\n\",\n    \"  bar.add(attrs[i], classes, cat_count(attrs[i]), xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"df69f54aca4a43f3a499038943f22656\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_df69f54aca4a43f3a499038943f22656 = echarts.init(document.getElementById('df69f54aca4a43f3a499038943f22656'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_df69f54aca4a43f3a499038943f22656 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u7011\\\\u5e03\\\\u56fe\\\\u793a\\\\u4f8b\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 4601154,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"def\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                0,\\n\",\n       \"                100,\\n\",\n       \"                200,\\n\",\n       \"                300,\\n\",\n       \"                400,\\n\",\n       \"                220,\\n\",\n       \"                250\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 4601154\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u6708\\\\u4efd\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                1000,\\n\",\n       \"                800,\\n\",\n       \"                600,\\n\",\n       \"                500,\\n\",\n       \"                450,\\n\",\n       \"                400,\\n\",\n       \"                300\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 4601154\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"def\\\",\\n\",\n       \"                \\\"\\\\u6708\\\\u4efd\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"1\\\\u6708\\\",\\n\",\n       \"                \\\"2\\\\u6708\\\",\\n\",\n       \"                \\\"3\\\\u6708\\\",\\n\",\n       \"                \\\"4\\\\u6708\\\",\\n\",\n       \"                \\\"5\\\\u6708\\\",\\n\",\n       \"                \\\"6\\\\u6708\\\",\\n\",\n       \"                \\\"7\\\\u6708\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"green\\\",\\n\",\n       \"        \\\"red\\\",\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_df69f54aca4a43f3a499038943f22656.setOption(option_df69f54aca4a43f3a499038943f22656);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61ce21f828>\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from pyecharts import Bar\\n\",\n    \"\\n\",\n    \"attr = [\\\"{}月\\\".format(i) for i in range(1, 8)]\\n\",\n    \"v1 = [0, 100, 200, 300, 400, 220, 250]\\n\",\n    \"v2 = [1000, 800, 600, 500, 450, 400, 300]\\n\",\n    \"bar = Bar(\\\"瀑布图示例\\\")\\n\",\n    \"# 利用第一个 add() 图例的颜色为透明，即 'rgba(0,0,0,0)'，并且设置 is_stack 标志为 True\\n\",\n    \"bar.add(\\\"def\\\", attr, v1, label_color=['red'])\\n\",\n    \"bar.add(\\\"月份\\\", attr, v2, label_color=['green'])\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#python ~/steniment/evaluate.py; python correlation.py \\n\",\n    \"dir = '/home/gezi/data3/v11/submit.1115.2.2.2/7model'\\n\",\n    \"models = np.load(f'{dir}/models.npy')\\n\",\n    \"cm = np.load(f'{dir}/cm.npy')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"models = [x for x in models if x != 'ensemble']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"ncm = np.zeros([len(models), len(models)])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"for i in range(len(models)):\\n\",\n    \"  for j in range(len(models)):\\n\",\n    \"    if i > 0:\\n\",\n    \"      i_ = i + 1\\n\",\n    \"    else:\\n\",\n    \"      i_ = i\\n\",\n    \"    if j > 0:\\n\",\n    \"      j_ = j + 1\\n\",\n    \"    else:\\n\",\n    \"      j_ = j\\n\",\n    \"    ncm[i, j] = cm[i_, j_]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(7, 7)\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ncm.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"7\"\n      ]\n     },\n     \"execution_count\": 21,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"len(models)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['char.nbert_tf.char.transformer.nbert.finetune',\\n\",\n       \" 'word.jieba.ft_tf.word.rnetv2.gru.lm.unkaug',\\n\",\n       \" 'word.sp10w.ft_torch.word.mreader.nopad.lm.lstm.bertopt.nolatt.unkaug.hidden400',\\n\",\n       \" 'word.sp1w.ft_tf.word.rnet.gru.nolatt.hidden600',\\n\",\n       \" 'word.sp20w.ft_tf.word.rnet.gru.unkaug',\\n\",\n       \" 'word.sp20w.ft_tf.word.rnet.lstm.unkaug',\\n\",\n       \" 'word.jieba.ft_torch.word.mreader.nopad.lm.lstm.bertopt.nolatt.unkaug.hidden400']\"\n      ]\n     },\n     \"execution_count\": 22,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"models\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"models = [x.replace('word.', '').replace('.nopad','').replace('.bertopt', '').replace('.tf', '').replace('.torch', '').replace('_', '.').replace('char.', '').replace('.word', '').replace('.unkaug', '').replace('lm', 'elmo').replace('.hidden400', '').replace('.hidden600', '').replace('.tf', '').replace('.torch', '').replace('.nolatt','').replace('.ft', '') for x in models]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"models[0] = 'char.bert'\\n\",\n    \"models[1] = models[1].replace('gru.elmo', 'elmo.gru')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['char.bert',\\n\",\n       \" 'jieba.rnetv2.elmo.gru',\\n\",\n       \" 'sp10w.mreader.elmo.lstm',\\n\",\n       \" 'sp1w.rnet.gru',\\n\",\n       \" 'sp20w.rnet.gru',\\n\",\n       \" 'sp20w.rnet.lstm',\\n\",\n       \" 'jieba.mreader.elmo.lstm']\"\n      ]\n     },\n     \"execution_count\": 25,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"models\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"cm = ncm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(7, 7)\"\n      ]\n     },\n     \"execution_count\": 27,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"cm.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([[1.        , 0.96970468, 0.9715044 , 0.97025394, 0.97006507,\\n\",\n       \"        0.9707432 , 0.97275464],\\n\",\n       \"       [0.96970468, 1.        , 0.98257916, 0.98191659, 0.98151083,\\n\",\n       \"        0.9816018 , 0.98558189],\\n\",\n       \"       [0.9715044 , 0.98257916, 1.        , 0.98279696, 0.98544462,\\n\",\n       \"        0.98707933, 0.98836242],\\n\",\n       \"       [0.97025394, 0.98191659, 0.98279696, 1.        , 0.98378369,\\n\",\n       \"        0.9841393 , 0.98403441],\\n\",\n       \"       [0.97006507, 0.98151083, 0.98544462, 0.98378369, 1.        ,\\n\",\n       \"        0.99048502, 0.9839939 ],\\n\",\n       \"       [0.9707432 , 0.9816018 , 0.98707933, 0.9841393 , 0.99048502,\\n\",\n       \"        1.        , 0.98538368],\\n\",\n       \"       [0.97275464, 0.98558189, 0.98836242, 0.98403441, 0.9839939 ,\\n\",\n       \"        0.98538368, 1.        ]])\"\n      ]\n     },\n     \"execution_count\": 28,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"cm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#(cm * 1000).astype(np.int32)\\n\",\n    \"amin, amax = cm.min(), cm.max() # 求最大最小值\\n\",\n    \"cm2 = (cm-amin)/(amax-amin) # (矩阵元素-最小值)/(最大值-最小值)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([[1.00000000e+00, 0.00000000e+00, 5.94056752e-02, 1.81300695e-02,\\n\",\n       \"        1.18957014e-02, 3.42798691e-02, 1.00674282e-01],\\n\",\n       \"       [3.66466898e-15, 1.00000000e+00, 4.24965834e-01, 4.03095540e-01,\\n\",\n       \"        3.89701873e-01, 3.92704812e-01, 5.24081105e-01],\\n\",\n       \"       [5.94056752e-02, 4.24965834e-01, 1.00000000e+00, 4.32155132e-01,\\n\",\n       \"        5.19550047e-01, 5.73509323e-01, 6.15862119e-01],\\n\",\n       \"       [1.81300695e-02, 4.03095540e-01, 4.32155132e-01, 1.00000000e+00,\\n\",\n       \"        4.64725527e-01, 4.76463456e-01, 4.73001252e-01],\\n\",\n       \"       [1.18957014e-02, 3.89701873e-01, 5.19550047e-01, 4.64725527e-01,\\n\",\n       \"        1.00000000e+00, 6.85925600e-01, 4.71664289e-01],\\n\",\n       \"       [3.42798691e-02, 3.92704812e-01, 5.73509323e-01, 4.76463456e-01,\\n\",\n       \"        6.85925600e-01, 1.00000000e+00, 5.17538453e-01],\\n\",\n       \"       [1.00674282e-01, 5.24081105e-01, 6.15862119e-01, 4.73001252e-01,\\n\",\n       \"        4.71664289e-01, 5.17538453e-01, 1.00000000e+00]])\"\n      ]\n     },\n     \"execution_count\": 30,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"cm2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"d1c5aa1a63694319b19249740ab34d54\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_d1c5aa1a63694319b19249740ab34d54 = echarts.init(document.getElementById('d1c5aa1a63694319b19249740ab34d54'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_d1c5aa1a63694319b19249740ab34d54 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 1246691,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"heatmap\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u6a21\\\\u578b\\\\u76f8\\\\u5173\\\\u6027\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    0,\\n\",\n       \"                    100.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    1,\\n\",\n       \"                    0.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    2,\\n\",\n       \"                    5.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    3,\\n\",\n       \"                    1.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    4,\\n\",\n       \"                    1.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    5,\\n\",\n       \"                    3.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    6,\\n\",\n       \"                    10.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    0,\\n\",\n       \"                    0.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    1,\\n\",\n       \"                    100.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    2,\\n\",\n       \"                    42.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    3,\\n\",\n       \"                    40.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    4,\\n\",\n       \"                    38.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    5,\\n\",\n       \"                    39.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    6,\\n\",\n       \"                    52.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    0,\\n\",\n       \"                    5.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    1,\\n\",\n       \"                    42.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    2,\\n\",\n       \"                    100.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    3,\\n\",\n       \"                    43.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    4,\\n\",\n       \"                    51.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    5,\\n\",\n       \"                    57.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    6,\\n\",\n       \"                    61.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    0,\\n\",\n       \"                    1.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    1,\\n\",\n       \"                    40.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    2,\\n\",\n       \"                    43.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    3,\\n\",\n       \"                    100.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    4,\\n\",\n       \"                    46.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    5,\\n\",\n       \"                    47.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    6,\\n\",\n       \"                    47.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    0,\\n\",\n       \"                    1.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    1,\\n\",\n       \"                    38.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    2,\\n\",\n       \"                    51.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    3,\\n\",\n       \"                    46.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    4,\\n\",\n       \"                    100.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    5,\\n\",\n       \"                    68.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    6,\\n\",\n       \"                    47.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    0,\\n\",\n       \"                    3.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    1,\\n\",\n       \"                    39.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    2,\\n\",\n       \"                    57.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    3,\\n\",\n       \"                    47.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    4,\\n\",\n       \"                    68.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    5,\\n\",\n       \"                    99.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    6,\\n\",\n       \"                    51.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    0,\\n\",\n       \"                    10.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    1,\\n\",\n       \"                    52.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    2,\\n\",\n       \"                    61.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    3,\\n\",\n       \"                    47.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    4,\\n\",\n       \"                    47.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    5,\\n\",\n       \"                    51.0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    6,\\n\",\n       \"                    99.0\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 1246691\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u6a21\\\\u578b\\\\u76f8\\\\u5173\\\\u6027\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 30\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 10,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"char.bert\\\",\\n\",\n       \"                \\\"jieba.rnetv2.elmo.gru\\\",\\n\",\n       \"                \\\"sp10w.mreader.elmo.lstm\\\",\\n\",\n       \"                \\\"sp1w.rnet.gru\\\",\\n\",\n       \"                \\\"sp20w.rnet.gru\\\",\\n\",\n       \"                \\\"sp20w.rnet.lstm\\\",\\n\",\n       \"                \\\"jieba.mreader.elmo.lstm\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"splitArea\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"char.bert\\\",\\n\",\n       \"                \\\"jieba.rnetv2.elmo.gru\\\",\\n\",\n       \"                \\\"sp10w.mreader.elmo.lstm\\\",\\n\",\n       \"                \\\"sp1w.rnet.gru\\\",\\n\",\n       \"                \\\"sp20w.rnet.gru\\\",\\n\",\n       \"                \\\"sp20w.rnet.lstm\\\",\\n\",\n       \"                \\\"jieba.mreader.elmo.lstm\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"splitArea\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ],\\n\",\n       \"    \\\"visualMap\\\": {\\n\",\n       \"        \\\"type\\\": \\\"continuous\\\",\\n\",\n       \"        \\\"min\\\": 0,\\n\",\n       \"        \\\"max\\\": 100,\\n\",\n       \"        \\\"text\\\": [\\n\",\n       \"            \\\"high\\\",\\n\",\n       \"            \\\"low\\\"\\n\",\n       \"        ],\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"color\\\": \\\"#000\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"inRange\\\": {\\n\",\n       \"            \\\"color\\\": [\\n\",\n       \"                \\\"#50a3ba\\\",\\n\",\n       \"                \\\"#eac763\\\",\\n\",\n       \"                \\\"#d94e5d\\\"\\n\",\n       \"            ]\\n\",\n       \"        },\\n\",\n       \"        \\\"calculable\\\": true,\\n\",\n       \"        \\\"splitNumber\\\": 5,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"left\\\",\\n\",\n       \"        \\\"top\\\": \\\"bottom\\\",\\n\",\n       \"        \\\"showLabel\\\": true\\n\",\n       \"    }\\n\",\n       \"};\\n\",\n       \"myChart_d1c5aa1a63694319b19249740ab34d54.setOption(option_d1c5aa1a63694319b19249740ab34d54);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.heatmap.HeatMap at 0x7f61ce23f400>\"\n      ]\n     },\n     \"execution_count\": 31,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import random\\n\",\n    \"from pyecharts import HeatMap\\n\",\n    \"\\n\",\n    \"x_axis = models\\n\",\n    \"y_axis = models\\n\",\n    \"cm3 = (cm2 * 100).astype(np.int32)\\n\",\n    \"data = [(i, j, cm3[i, j]) for i in range(len(models)) for j in range(len(models))]\\n\",\n    \"heatmap = HeatMap()\\n\",\n    \"heatmap.add(\\\"模型相关性\\\", x_axis, y_axis, data, is_visualmap=True,\\n\",\n    \"            visual_text_color=\\\"#000\\\", \\n\",\n    \"            #visual_orient='horizontal', \\n\",\n    \"            visual_orient='vertical', \\n\",\n    \"            legend_text_size=30, \\n\",\n    \"            xaxis_rotate=10, \\n\",\n    \"            yaxis_rotate=0)\\n\",\n    \"#heatmap.show_config()\\n\",\n    \"heatmap\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import numpy as np; np.random.seed(0)\\n\",\n    \"import seaborn as sns; sns.set()\\n\",\n    \"uniform_data = np.random.rand(10, 12)\\n\",\n    \"ax = sns.heatmap(uniform_data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 289,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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+vXTwYMHzT6rXbu2WrdurQYNGsjPz0/u7u5KTk7W3r179fvvvyslJSXv3uzsbI0bN05VqlQp1SMMg4OD1bRpU4WHh6tmzZry8fFRxYoVlZGRoXPnzunw4cPasGGDkpOTDePWrFmjqVOnatSoUQXOHRAQoIYNG0q68vUdO3bM8PlNN90kPz+/QvtzxNG8+R0+fFgDBw60+D0NCwtTp06dFBISkvdM79692+LOZb/++qsyMzP12Wef2dVHTk6Onn32WR09ejSv1qRJE9111126+eab5evrq9TUVO3Zs0crV6402w1y8eLF6tSpkzp16mTX+gAAAADgTITJAAAAAAAAUO7cddddqlatWt4uPqmpqVq9erXuu+++Asfs3LlTx48fz7v28vLS/fffX+xecnNz9corr5gFySpUqKCRI0fq8ccft3gM4vjx4zVt2jTNnDnTcMzgvn379P7772vcuHFFrn38+HFNmTLFrN6+fXv9+9//VvXq1c0+GzlypFatWqU33nhD586dU0JCghYsWGDNl2omMTFRo0aNMguS9ejRQ8OHD9dNN91kcdywYcMUGxurN99807CjVkxMjMaNG6ePP/7Yrn5K0v79+81qzZo1c0InV2RlZWnUqFFmIZqAgACNGzdODz30kMVx58+f16RJk8yClb/99ptmz56tgQMH2tzLqlWr8oKBNWvW1Guvvaa7777b4r1jx461aue+GTNm5N3XuXNnjR07VjVq1LB4b/7n76rXXnvNLEhWv359jR07VnfeeWeBa2dkZGj27NmaNm1a3k6Gly9f1ujRo/Xzzz+rWrVqRfZvr5CQEPXs2VP33HOP6tevX+T9OTk5WrJkid577z3D0bJffvmlunTposaNG1scFxUVpaioKEnSyZMnde+99xo+HzFiRIHPUEnJzMzUiy++aPGZHj9+vB544AGL41JTU/XOO+/op59+MtTXrFmjb775Rv369bO5l6thNEkKDw/XG2+8odatW5vd17dvX40ePVqjR4/W5s2bDZ999NFHhMkAAAAAlEsccwkAAAAAAIByx83NTQ8//LChtmjRokLHfP/994brqKioInfescbSpUu1fv16Q83Ly0vTp0/XE088YTFIJl0Jm7300kt64403zD6bM2eO9u7dW+Tab7zxhlmQpmvXrvriiy8sBsmuioqK0ty5cxUUFCRJunjxYpFr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5fHZPHz4sBITEw21xx9/3OIudIXJysoy+3WvPLD0vBXnmbY0tjw/0wAAAABQ2giTAQAAAAAA4Lpw9913KygoyOJnHh4eevDBBx2+ZuPGjQ3XCQkJOnfunF1z7du3zyzU06RJE4v3WtphLTo62q51L126pEOHDtk0plmzZma1bdu22bV+eeHl5aVu3bqZ1efPn2/2fStJFStWVFhYmKF24MCBvCNebbV3716zmiN38CttYWFhqlSpkqG2c+fOUv0e2SohIcGs1rJlS5vniY6ONuzGWF74+vqqdu3ahtqBAwfs/p5ZeqYL+rUUAAAAAGCOMBkAAAAAAACuC4UFxiIjIy3u5lVczZs3N6utWLHCrrmWL19uVmvRooXFe4OCglSrVi1Dbe3atXaFLzZu3Gh2JFxR2rRpI3d3d0Nt3bp15TLIYosBAwaY7QoWExOjWbNmlWof+Z+79PR0bdiwwa65LD13lp7r8sLNzU1t2rQx1NLS0rRlyxYndVS0lJQUs5o9xzLmPyrTWm5ubma10g7f5X/m0tLStGnTJrvmut6eaQAAAAAobYTJAAAAAAAAcN3If9RlUfXiateunVltwYIFNgcx0tLStHTpUkPNw8NDrVu3LnBM+/btDddnz57VunXrbFpXkv773//aPMbX11etWrUy1BISEvTTTz/ZPFd50qBBAz3wwANm9Y8++kiHDx926FpbtmzR/v37LX521113mdW+++47m9eIi4szC6FVrlzZbMe98qZjx45mtS+++MIJnVinYsWKZjVLAbPCpKam2n3kqo+Pj1nN1oBpcTnqmT558qRZCC0oKEgNGza0uzcAAAAAuNEQJgMAAAAAAMB1o169etq8ebM2btxo+JE/eOUozZo1MzsS8NChQ5o/f75N80yZMkWpqamGWpcuXQo8tlOS+vTpY1abPHmysrKyrF538+bNWrNmjfWNXuOZZ54xq7377ruKi4uza77y4pVXXlHlypUNtaysLA0ePFgHDx4s9vy5ubmaMWOGnnrqKaWlpVm8JyoqSsHBwYbab7/9pt9//92mtd5++21dunTJUOvdu7c8PDxsa7qMeeCBB8x27tu6davmzp3rpI4Kl/97KcnmXbnefPNNmUwmu9b39fWVq6vxrwpK+z3u3LmzqlSpYqitXr1aGzdutGmet956yyzM27dvX7OdFAEAAAAABSNMBgAAAAAAgOtKUFCQgoODDT/yH03oSIMGDTKrvfvuu9q2bZtV47///nt9++23hpqLi4ueeOKJQsc1aNDAbOeymJgYjR071qqd0WJiYjRmzBirerSkVatWatu2raF2/vx5DRkyRMeOHbNrzszMTH333XelfmykLYKCgjR58mSzowHPnj2r/v37a+XKlXbPHR0drb59++q9994r9MhQDw8PDRgwwKz+8ssv6+jRo1atNXXqVLOd7Ly8vPTYY4/Z1HNZ5O7uruHDh5vVJ02apIULF9o97/bt2/Xiiy8WpzWLmjZtarY72ddff62zZ89aNX7q1KlrQjPsAAAgAElEQVR2H3EpXXmewsPDDbUNGzYoNzfX7jlt5enpafHZGzNmjI4fP27VHB9++KFZ+KxChQrq27evQ3oEAAAAgBsFYTIAAAAAAACgGO6//3516NDBULt48aKefvppzZs3r8BgV2Zmpj744ANNmDDBLLQxcOBAsx3PLHn99dfl6elpqC1dulTPPPOMzpw5U+C41atXq3///kpMTJR0JXBhj4kTJ6pq1aqGWkxMjHr27KkvvviiwJ21rpWbm6udO3fqnXfeUWRkpF5//fUyv7tZhw4d9Prrr5uFFNPS0jR8+HD16dNHGzZsKDQQdlV2drbWrVunoUOHqmfPntq1a5dVPQwaNEiNGjUy1FJSUjRgwIBCg0X//POPXn31VX322Wdmn40ePVrVqlWzav2y7uGHH9ZDDz1kqF26dEnjx4/X888/r0OHDlk1T0JCgr7++mv17NlT/fr1s3n3N2t4enoqMjLSUEtNTdXAgQMLPT71zJkzGjFihOF76evra1cPzZs3N1wfPXpUEyZMUHx8vF3z2WPIkCGqX7++oZaUlKT+/ftr2bJlBY47f/68xo4da/Eo0zFjxpjteAYAAAAAKBx7OwMAAAAAAADFNHHiRD300EN54SxJSk9P17///W/95z//UVRUlOrUqaNKlSopJSVFBw8e1KpVq5SSkmI2V5MmTaze/ahOnToaNWqUJk2aZKivW7dOUVFRat++vVq2bKng4GBdvHhRcXFxWrNmjSGgUq1aNXXp0kWzZ8+2+euuVq2aPvvsMz3++ONKT083fO0ffvihpk+frhYtWqh58+aqWrWq/Pz8dPHiRaWlpens2bPav3+/oqOjzY74LA969+4tT09PTZgwwSw0tmvXLg0ZMkTe3t5q3bq1GjVqpMqVKyswMFBubm4ymUw6deqUDh48qB07dlgVusvP09NTH3zwgXr27Gn4uU9OTtbIkSM1bdo0derUSSEhIfLx8VFSUpJ2796ttWvX6sKFC2bz3X333RZ3OyvP3n77bcXGxpoF9FasWKGVK1eqYcOGuv322xUaGip/f3+5urrqn3/+UUpKio4cOaJ9+/bp5MmTpbJD17PPPqsVK1YYjh09fvy4HnroIbVv315t2rRRtWrVlJ2drcTERP3555/asmWL4Vjb3r1768iRI9q5c6fN6z/yyCNmu7YtXLhQCxcuVFBQkCpXrmx2VOQtt9yit956y+a1CuLl5aUPPvhAvXr1UkZGRl49KSlJI0aMyHumb7755rxn+q+//tLatWsN78BVHTt2VL9+/RzWHwAAAADcKAiTAQAAAAAAAMUUFBSkb7/9VkOGDNHJkycNn8XHx1sd1Lrtttv0+eefm+02VphBgwYpJSXFbFeezMxMrVq1SqtWrSpwrLe3tz799FOz4w5tERERoQULFmj48OGKiYkxfJaenq6NGzeaHT13vejevbvq1q2rl156SSdOnDD7PD09Xb/99pt+++03m+Z1c3NTz549zXYey69OnTqaM2eOhg4dqqSkJMNnx48f15dffmnVevfee6/ef//9Ej0O1hk8PT319ddf64033tDixYsNn+Xm5urAgQM6cOCAk7ozqlu3rsaNG2cWzrp8+bLWrVtX5Dvatm1bjR8/XgMHDrRr/ebNm+vBBx/Uzz//bPZZUlKS2fMlSZUrV7ZrrcLUr19fs2fP1tChQ83CtseOHbP6CN2uXbvq3XffdXh/AAAAAHAj4JhLAAAAAAAAwAFCQkL03XffqWvXrjaHcjw8PDRgwADNmjVL/v7+Nq89atQojR07VhUrVrR6TPXq1TV79mxFRETYvF5+9evX16JFi9S/f395eXkVa66IiAizY0PLsoiICP388896+eWXFRwcXKy5PD091a1bNy1ZskRvvfWW/Pz8rFp/wYIFuvPOO21ez9vbW8OHD9fUqVOL/X0rqypUqKBJkyZp8uTJqlWrVrHmqlKlivr27eugzsz169dPEyZMkIeHh03jevXqpenTp9sUQrXk7bffVv/+/Z0eKrzlllu0YMECtWnTxuax3t7eGjFihKZMmVLsnw8AAAAAuFGxMxkAAAAAAADg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H1bHZkluDJbWecDZ477Q3jh2V4w7Kytb4x+eqqNHEw3xKlX89NrU8cz6cpkrnesq599ot86nkhc8/x3Xg3CEs//WWz1E4IpjM9vyb0HJzlEFi0tdnVNpaRl6642Pdfugp/XVlz9ZPpSAq4uzP89Y5QTnCgCAK1EeDwAo93Jzc/XWW29pzpw5JerDVl9++aWeeeYZuz70v/7666pevbpNSxWmp6crJcWx5avy8vI0Z84cHT16VG+//bZDfUjSZ599pueee87h9s5w9uxZjR49utjCrr+Ljo7W8OHDtWjRIgUFBdnUJjc3V1OnTtX8+fPtHmNqaqqeeuopJSYm6r777rO7vSS9+uqrWrhwoUNtAQCXh5LdyDa35cYDXK0kx6xV2zyVzjFb0qKRgu2LyrXi8nDipBG6sUfbYvd55929dPJkiua8v8IQX7r4B428r78qV65UbB8o/0p0bFrlVCmdB0qeU8bXzh52bm6unnnmXf35505D3MPDXdPeeFS1a9d07g5RLjg/n0owmJLt2s72Bc9RJesPuKhE130WsVL7rFKK131FeW7iSD03caQhlpqaptOnU7V71yFt+j1aK1dsUErKheUG9+2L03MTZurLZT9q2puPKCCgqmM/AK5Izv4cVkofw4CrAPMvAVYoJgMAlHtvv/22ZSFZRESE+vfvr/bt26tmzZry9fXV2bNndfToUUVHR+unn37Spk2bLJ90LUxMTIxmzZqV/wVDz5491b9/f0VERKhatWo6d+6cdu3apcWLF+uHH34wtJ0yZYq6du2q6tWr27y/xo0bq1OnTmrZsqUaNWqkmjVrys/PT3l5eUpJSdGBAwf0yy+/aPny5UpKSspvt3r1akVGRmr48OE27+uiAwcOaNWqVfmv27Ztq4EDB6pt27YKCAhQRkaG4uLitG7dOvn4+Njdv61efvnl/EIyX19fDRkyRL1791ZoaKg8PDx09OhR/fDDD1q0aJFOnz6d3+7IkSMaO3asli5datOSl6+//rqpkMzf318DBgxQp06d1KRJE1WpUkUZGRk6fPiwfv75Z3388cc6e/aspEszizVu3FjdunWz62f87rvvtGnTpvzXvXr10k033aSIiAhVrVpVZ86c0eHDh7Vy5UpJUu/evdWwYUNJ0rp163To0KH8th07dlR4eHih+/L29rZrbAAAx3h6mj9Gl2TJlL8vZ3RRhRLMGgUU5Ollvl7KsDjubGW1tJGXl/O/XvL0NI87s4TLKhVsX9S4rfZ/0TXtm+uWf3ayeb8PjPmnVq/8TUfjTuTHUlPTtWb17xo8pLvN/aB8sDo2SrLkV6bFOaS0cqqkS5UVbO/scb/04mx9vXqjIebm5qZJLz6oLl2KL+ZE+ef066oyPEeVPJ+MP7crxo0rn9PPURbXjK44Nr0s/haU9LrPlecoPz9f+fn5KiSklnr2aq9HH7tTb735sRZ/8k3+Nn9s2ql7h7+o+QsnqUaNKk7bNy4fzv48k5FpnmnT6rMeAADOwicSAEC59t1335kKySpVqqRXXnlFN910k2l7Pz8/BQcH65prrtGIESOUnJysBQsWqHLlyjbt72KBWNWqVfXOO++oQ4cOpv4DAwPVrVs3ffjhh5o6dWr+e2fOnNGyZcs0atSoIvfh4+Oj++67T4MHD1a9evUK3c7f31916tRRly5dNG7cOE2ZMkVLly7Nf//dd9/VoEGDVKmSfbMZbNu2TZLk4eGhF198Ubfffrvh/SpVqigwMFDt2rWzq197XfxdN27cWO+//75CQ0MN71erVk3h4eEaOnSoxo8fr6ioqPz3YmJiNHfuXN1///1F7uO7777TvHnzDLH+/ftr0qRJpmPCz89PAQEBateune655x498sgj+YVgeXl5euaZZ7R27VpVqWL7F0AX2/v7+2vGjBmm48nf318hISHq1OnCzchbb701/70DBw4Yism6deumESNG2LxvAIBr+PhUNMVKcoPG6oap1T4AR3l7m4+nktzEyLS4ieGKY9bbKtdKUAQnmcde1Lh9fAt/b+hdPe3ar5eXp24b3E3vvLXUEP/zj90Uk12GrI5Nq5vttrI6rn18nP+giNXxXpJxW7V35t+C16bM06effmOKT5gwUrfdZl8Oovzy9jEvoef8fHL+OepyyydcPayWei1RTllcM7rmus+547Zq74pz60W+lbz17+dHqU5ILb05bVF+/ODBY/r3s+/pvVnPuGzfKL+s89HxpZczM6w+h5VsiWUAAIrCnH0AgHIrJydHr776qmEa8kqVKmnRokWWhWRWatSooccee0w9e9r+ZbOXl5fmzp1rKvwpaOTIkerSpYshtnz58mL7r127tv71r38VWUhW0MUCur59++bHzp49q2XLltncR0GTJk0yFZKVtpo1a+rDDz80FZL9XUBAgGbNmpU/Y9dF77//vs6dO1dou+zsbL344ouG2G233aa33nqr2OLC6tWra/bs2WrevHl+7NSpU1q8eHGR7ax4eHhozpw5xR5PAIDLQ9Wq/qZYWlqGw/1Zta1a1bYieMAWVauaHzxIS3N81hfrY9bP4f4K4+fnY3qaPyszW+fP2758/d/l5Jw33bypUsS4K1XysZzBwt3dTR06htm9/47Xm2eY3bJ5r939oOxZngfOpTvcn3VOmfdRUn5+vqZjOjMzW+fPn3eoP6uccta433pzkT76aIUp/vgTd2vY8P5O2QfKB+t8cvZ11dWdT7i6lM5nFdfkVMEZljIzs5x63eeK69WC7h15i7p0aWOIrf95i379ZbvL943yp4qTP4elW7S12gcAAM5CMRkAoNxavny5jh49aohNnDhRLVu2dOl+77///iKXE/y7e+65x/B67969Sk93/EZCccaPH294XXCpTVu1b99egwcPdsaQSuTJJ59UYGBgsdv5+/vr+eefN8TOnTtnWK6zoBUrVighISH/dWhoqF544QWbx+bj46NJkyYZYosWLTIUN9ri7rvvVmRkpF1tAADlV40aVU2x+Pgkiy1tc/y4uW1AgHkfgKOsltVJSDjpcH/x8ea2NWq4pgCyeoF+c3PzdCLxlEN9JSacMl3HFTfugADz7y4kpJb8/OxfCr5ps1B5eBi/hktOOmP3tSXKnuV5ICHZ4f7ij5vbWh17zlC9esGcylWigzmVkJBsziknnL9mTF+sOXO+MMUfHj9Eo0cPLHH/KF+cn0+ld11VvboxT8tjPuHqY3ndZ3HtZqv4eHM+1nDROaqGKafylJjo2NgTE05aXPeVzlKTD4wZZIotXfJtqewb5UuNGubCy8SE0w73lxBvPscU/LwEwDFubu5X/D/AERw5AIBy64svjF8gN23aVAMGDHDpPr28vHT33XfbvP11110nT89LT6OeP39ee/e6boaBRo0ayc/v0pN0O3bscOgG1PDhw505LIcEBgbqH//4h83bd+zYUREREYbYypUrC93+008/NbweNWqUKlSwb+rvyMhIw+xkiYmJ2rdvn83t3dzcNGzYMLv2CQAo30JCzEXQx44lOtzf8eMnDK89PNwVHFzT4f6AgmqHBJhix485r/DFw8NdQcE1HO6vKHXqmHPhmINjtyrYqRNSdK7VCTW/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yWcxubqq+/ixGnD3DJlc+NUZ+JV3RLgGPPY3+XfvVq9xJldXdb72avW6/fesKQCAQ3iGhyvmkUflHVP/16iwsdeo04w/tKjXKJObm9qNGKlujz4uT76UCQfw6BChLn+ZKa+Y7vUb6OqqdmOuUcT021vcmgoafoW6/PUJeUSwpmBfrCcAQEtDZzIArd4HH3yg77//XlOnTtXYsWMVHFz3dlfl5eWaNWuWMjIyDPHLL7/c5uvm5uZqxowZevfdd9W1a1er5+Tl5emhhx7Szp07DfHp06fblKczXXDBBUpJ+a27Tm7ub9+oGTZsmEwmU61jY2Ji1L59++rCp7PH/joedXviiSc0derU6u0mjx8/ruuuu07PPvusLrvsMpvmKC8v16ZNm/Txxx9r//79+uabb2o9t1evXnJ1dVVFxS9dhAoLCzVv3jw98MADjf6z2CIgIEAPPfSQnn766epYWlqapkyZoieeeMLqnzk9PV3PPfdcdSe8wMBAnbayjUVTufbaa7Vx48bq461bt+rNN9/UH//4x1rHbN++XXfffbehoxlahvDwEC38aLZWrlyvhQuWatu25FqLB729PTVq1AW67ffj1bVrZBNnaunKq87XkKGxWrBgqf69eLWysiy34fxV56hw3TD5Ct1082h5etKuHs2TV7tgnT/zIWVsTNThbxN06sAhqZb16OrpofDzBipm7JXyjejQxJkCLYNHcLD6PfKwcjZv0bFVCcpLOVj7mvLwUMjgQYocfZW8w1lTAADHcg8OVteH/qLcxM06kbBahYdqf41y8fBQwMDBCrnyKnl2sP0LpPYQNuZq+cR0U37yPhUeOqiSjGOqKq+7s7LJ1VWekZ0UMHCQgi68WOYG7qoA2MotKFidH/yLziRu1qnvVqmojjXlN2Cwgq8YJY8mXlMho66WV9duKty/T0WHUlRq45rS/68pvwGDFHjBxXL18a17DNBArCcAQEtCMRmANiE1NVWzZ8/W888/r0GDBmno0KHq06ePunTposDAQHl6eqq4uFhHjx7Vli1btGjRIh08eNAwx8iRIw3duM7l8ssv15o1a5SWlqbx48frhhtu0FVXXaWoqCi5u7srIyND33//vRYuXKjs7GzD2C5duujee++16TpJSUkW20uey/r162vtJOXv76/bb7/d5rmGDRumhQsXWn3Ols5i559/vpYsWWIRN5lMFJPZaMCAAZo1a5ZmzpxZHcvJydEdd9yhPn36aOzYsRo4cKAiIiLk5+en0tJS5efnKyMjQ3v37tXOnTv1ww8/VBdXde7c+ZzX8/Hx0SWXXKI1a9ZUx+bNm6fly5drwIABCg4OtuikdMsttygszH4trG+66SatWbNGa9eurY6lp6frjjvuUMeOHTVw4EC1a9dOBQUFOnDggLZt21ZdvBMQEKB7771Xs2fPtls+9TVmzBjNmTPHsO7ffvtt7dixQzfddJNiY2Pl4+Oj3Nxc7d69W8uXL9eKFStUVVUlV1dXXX755dWFcWgZTCaTRo++UKNHX6gTJ05rx44DOnokU/kFhTK7uiowyE8xMZGKje0md3e3Rl1rdcK7dsr6F4GBfrr//ht1331TtD85TfuSDysr65RKSkrl5emhDuEh6t07Wl26RNQ92Tns2fsfO2UMnJvJZFLE0EGKGDpIJXl5Op2SqsLsbJUXFcvk4ip3Px/5RoQrsGuUXMyN+1V5+GvP2ilr2/W47mr1uO7qJr8u2i6TyaTQ8wYr9LzBKs3L05lDh1WcnaOKoiKZXF3l5usrr/AO8ovu0ug1NeSl5+yTdD1EjbtGUeOuafLrAvbU68L7nZ0C4BQmk0mBg85T4KDzVJ6Xp8LUQyrNzlFlcZHk6iqzj688wsPlFdX416hez77QoHFmX18FDBqsgEG/dGqvqqhQaXa2Sk+eUNnpU6osKlJlaank4iJXTy+5envLLThYXp2j5OLWuN8dgfoymUzyH3Se/Aedp/IzeSo+fEilOdmqLC6WydVFrj6+cu8QLq+oaJkauaa6PfNig8a5+vrKf+Bg+Q88a03lZKv85AmVnTqlyuJCVZaWyuTiIhdPL7l6+8gcHCzPTqwpNC3WE9D8uNTeGwNo0ygmA9CmVFRUaOPGjYbOQLaIjo42dEOqy8MPP6ysrCzt2rVLJSUlWrBggRYsWFDnuLCwML333nvy8LCts0tycrLef/99m/NKTExUYmKi1ec6duxYr2KyoUOHGrpUna0xxWS9evVq9l3ZmpPrr79elZWVeuaZZ1RaWlod3717t3bv3m336919991at25ddTc06ZdizdTUVKvnjx071q7FZCaTSXPnztWdd96pn376yfBcenq60tPTrY7z9vbW3LlzLbrguTXxL7c+Pj56+umndddddxni69at07p16845dubMmSorK6OYrAVr1y5Ql19e95auzY3JZFKPnlHq0TPK2akAduPh76/2A+KcnQbQarj7+6td/37OTgMAAAtmf3/5x/V3dhp1Mrm6yqNDB3l0oIsnmjezn798W8qaat9BHu1ZU2i+WE8AgOas5WyuDAAN1Nhikcsuu0yffvqp2rVrZ/MYT09P/fOf/9SAAQNsHtO9e3ctWLBAUVEt48N6Pz8/9e3b1yLeqVMnderUqc7xtRWc2VKIBqPJkyfr448/Vu/evRs8h5ubm4YOHVrnef369dPrr7+ugICABl+rsTw9PfXee+/p3nvvlbu7e53n9+rVS59++qmGDBmigoICw3N+fn6OSrNWw4cP1+zZs+XiYtttmLu7u2bPnq2bb77ZwZkBAAAAAAAAAAAAaOvoTAag1fvzn/+sUaNG6fvvv9fGjRuVlJSkwsLCc47x8PDQpZdeqilTpujCCy9s0HWDgoL08ccf6+OPP9b8+fN17Ngxq+dFRERoypQpmjFjRpN3SWqs888/Xzt27DDELrjgApvGtm/fXjExMUpJSTHE2eKyYfr166clS5YoISFBn332mTZt2lTnz7m/v7+GDBmiiy66SKNGjVJQUJBN17riiis0dOhQLV++XOvXr9f+/ft14sQJFRYWGjqWOZK7u7vuu+8+XX/99Vq6dKnWrFmj9PR0nThxQq6ururQoYPi4uI0atQoDR8+vLpwq2ZnMmcUk0nSpEmT1KdPH7322mtav369KisrLc4xm80aPny4HnjgAZu32AUAAAAAAAAAAACAxjBVVVVVOTsJAGhK5eXl1dvyHT9+XPn5+aqoqJC3t7cCAgLUrVs3de/e3eatJiWpZ8+ehuPVq1crMjKy+riqqkp79+7Vnj17lJOTI+mXLS27du2quLg4mUxsyA37Ki8vV1JSktLT03X69Gnl5eXJ3d1dvr6+6tChg7p27arIyMg297P32GOP6Ysvvqg+/t3vfqfHH3/ciRlJJ0+e1ObNm5WVlaW8vDx5e3urU6dOGjRokAIDA52amyNUVu1ydgpAq/HwxkxnpwC0KnllNG8H7OXjm951dgpAqzL2g7ucnQLQapRVtq33wgAALcuXIy92dgptzthv1zk7BYdbduVFzk4BLRCdyQC0OWazWTExMU3a6cdkMql3796N2oYQqA+z2az4+HjFx8c7O5VmJTEx0XBsbavWphYcHKwrr7zS2WkAAAAAAAAAAAAAgPjaLQAAaBMSExMttlWNi4tzUjYAAAAAAAAAAAAA0PxQTAYAAFq9yspKvfLKK4ZYTEyMunfv7qSMAAAAAAAAAAAAAKD5oZgMAAC0KFu2bNHJkydtPr+iokJPPfWUtmzZYojfcMMN9k4NAAAAAAAAAAAAAFo0s7MTAAAAqI9Vq1bps88+08SJEzVu3LhzblW5ceNGvfHGGxaFZFFRUZo0aZKjUwUAAAAAAAAAAEAz5WKqcnYKQLNEMRkAAGhxCgsLtXDhQi1cuFDBwcHq27evwsPD5evrq8LCQuXk5Gjbtm3KycmxGOvm5qaXXnpJ3t7eTsgcAAAAAAAAAAAAAJoviskAAECLdvLkSa1du9amc/38/PTmm28qPj7ewVkBAAAAAAAAAAAAQMvj4uwEAAAA6qNr167y9fWt1xgXFxeNGTNGixcv1gUXXOCgzAAAAAAAAAAAAACgZaMzGQAAaFEmTZqkcePG6eeff9aWLVu0Z88eHT16VDk5OSosLFRVVZX8/f0VEBCgmJgYDRkyRJdddpmioqKcnToAAAAAAAAAAACaCReTszMAmieKyQDADvbt2+fsFIA2xd3dXZdccokuueQSZ6cCAAAAAAAAAAAAAK0G21wCAAAAAAAAAAAAAAAAACgmAwAAAAAAAAAAAAAAAABQTAYAAAAAAAAAAAAAAAAAkGR2dgIAAAAAAAAAAAAAAABAU6L7EmAdawMAAAAAAAAAAAAAAAAAQDEZAAAAAAAAAAAAAAAAAIBiMgAAAAAAAAAAAAAAAACAJLOzEwAAAAAAAAAAAAAAAACakovJ2RkAzROdyQAAAAAAAAAAAAAAAAAAFJMBAAAAAAAAAAAAAAAAACgmAwAAAAAAAAAAAAAAAACIYjIAAAAAAAAAAAAAAAAAgCSzsxMAAAAAAAAAAAAAAAAAmpLJVOXsFIBmic5kAAAAAAAAAAAAAAAAAACKyQAAAAAAAAAAAAAAAAAAFJMBAAAAAAAAAAAAAAAAACSZnZ0AAAAAAAAAAAAAAAAA0JRcTM7OAGie6EwGAAAAAAAAAAAAAAAAAKCYDAAAAAAAAAAAAAAAAABAMRkAAAAAAAAAAAAAAAAAQJLZ2QkAAAAAAAAAAAAAAAAATYnuS4B1rA0AAAAAAAAAAAAAAAAAAMVkAAAAAAAAAAAAAAAAAACKyQAAAAAAAAAAAAAAAAAAopgMAAAAAAAAAAAAAAAAACDJ7OwEAAAAAAAAAAAAAAAAgKbkYqpydgpAs0RnMgAAAAAAAAAAAAAAAAAAxWQAAAAAAAAAAAAAAAAAAIrJAAAAAAAAAAAAAAAAAACSzM5OAAAAAAAAAAAAAAAAAGhKLiZnZwA0T3QmAwAAAAAAAAAAAAAAAABQTAYAAAAAAAAAAAAAAAAAoJgMAAAAAAAAAAAAAAAAACCKyQAAAAAAAAAAAAAAAAAAkszOTgAAAAAAAAAAAAAAAABoSnRfAqxjbQAAAAAAAAAAAAAAAAAAKCYDAAAAAAAAAAAAAAAAAFBMBgAAAAAAAAAAAAAAAACQZHZ2AgAAAAAAAAAAAAAAAEBTcjE5OwOgeaIzGQAAAAAAAAAAAAAAAACAYjIAAAAAAAAAAAAAAAAAAMVkAAAAAAAAAAAAAAAAAABJZmcnAAAAAAAAAAAAAAAAADQlF1OVs1MAmiU6kwEAAAAAAAAAAAAAAAAAKCYDAAAAAAAAAAAAAAAAAFBMBgAAAAAAAAAAAAAAAAAQxWQAAAAAAAAAAAAAAAAAAElmZycAAAAAAAAAAAAAAAAANCUXk7MzAJonOpMBAAAAAAAAAAAAAAAAACgmAwAAAAAAAAAAAAAAAABQTAYAAAAAAAAAAAAAAAAAkGR2dgIAAAAAAAAAAAAAAABAU6L7EmAdxWQAAABoQiZnJwC0Gh6uVc5OAWhV9h7nLRLAXsZ+cJezUwBalWXT5jk7BaDVaH/z75ydAtCqDBjh7+wUAACAA1BoCQAAAAAAAAAAAAAAAACgmAwAAAAAAAAAAAAAAAAAQDEZAAAAAAAAAAAAAAAAAECS2dkJAAAAAAAAAAAAAAAAAE3JxVTl7BSAZonOZAAAAAAAAAAAAAAAAAAAiskAAAAAAAAAAAAAAAAAABSTAQAAAAAAAAAAAAAAAAAkmZ2dAAAAAAAAAAAAAAAAANCUXEzOzgBonuhMBgAAAAAAAAAAAAAAAACgmAwAAAAAAAAAAAAAAAAAQDEZAAAAAAAAAAAAAAAAAEAUkwEAAAAAAAAAAAAAAAAAJJmdnQAAAAAAAAAAAAAAAADQlFxMzs4AaJ4oJgMAAAAAAAAAAAAAAADQLGVlZWnHjh06evSoCgsL5enpqfDwcMXGxqpTp07OTq/VoZgMAAAAAAAAAAAAAAAAQLOSkJCg999/X1u3blVVVZXVc3r16qXp06dr3LhxMpmaZ7u5xYsXa+bMmRbxCRMm6IUXXnBCRufm4uwEAAAAAAAAAAAAAAAAAECSCgoKdP/99+uuu+5SYmJirYVkkrR371498sgjuuWWW5STk9OEWdomJydHL730krPTqBeKyQAAAAAAAAAAAAAAANCmuLSBR0tUUFCg6dOn65tvvqnXuI0bN+qmm25Sdna2gzJrmNmzZys3N9fZadQL21wCAAAAAAAAAAAAAAAAcLpHH31U27dvN8QiIiI0bdo0nX/++erQoYOys7OVmJio+fPnKyUlpfq81NRU3Xffffroo49kNju/JGrNmjVasWKFs9Oot5ZaiAgAAAAAAAAAAAAAAACglUhISNDKlSsNsSFDhuirr77Srbfeqh49esjf318xMTGaNGmSlixZolGjRhnO37p1qz777LOmTNuqgoICPfXUU9XH3bt3V1hYmBMzsh3FZAAAAAAAAAAAAAAAAACcpqqqSnPmzDHEIiIiNG/ePPn5+Vkd4+7urtdee019+/Y1xN955x0VFRU5LFdbvPbaa8rIyJAkmUwmzZo1S25ubk7NyVYUkwEAAAAAAAAAAAAAAKBNcTFVtfpHS7J69Wrt3bvXEJs5c6Z8fX3POc7V1VWzZ882xLKzs7Vo0SK752irbdu26ZNPPqk+vv766zV48GCn5VNfFJMBAAAAAAAAAAAAAAAAcJoVK1YYjjt27KgRI0bYNLZPnz4aNGiQIVZzu8ymUlZWpscff1yVlZWSpODgYD388MNOyaWhKCYDAAAAAAAAAAAAAAAA4BRlZWX6/vvvDbFx48bJZDLZPMeECRMMx9u2bdOJEyfskl99vPfee0pOTq4+fuSRRxQYGNjkeTQGxWQAAAAAAAAAAAAAAAAAnGLbtm06c+aMITZkyJB6zTF06FDDcWVlpdauXdvo3Orj4MGDeueddww5jR8/vklzsAeKyQAAAAAAAAAAAAAAAAA4xb59+wzHrq6u6t+/f73m6Ny5s0JCQs45ryNVVVXpiSeeUGlpqSTJ3d1dTz31VJNd357Mzk4AAAAAAAAAAAAAAAAAaEoutu+gCAc7ePCg4Tg8PFze3t71nqdr167KycmpPj506FCjc7PV559/rk2bNlUf33777YqOjm6y69sTnckAAAAAAAAAAAAAAAAAOEVKSorhOCIiokHzhIeHG45rFqk5SlZWll555ZXq4y5duuiOO+5okms7AsVkAAAAAAAAAAAAAAAAAJwiKyvLcNyhQ4cGzVOzmCwzM7PBOdXHM888ozNnzlQfz5o1S+7u7k1ybUdgm0sAAAAAAAAAAAAAAACglcnPz1dBQYFDr+Hj4yNfX99GzVFYWGg4buh8NccVFxersrJSLi6O67W1atUqffvtt9XH1157rc4//3yHXa8pUEwGAAAAAAAAAAAAAACANqUtbOU3f/58zZ0716HXuPfee3Xfffc1ao6axWSenp4NmsfauMLCwkYXu9UmPz9fTz31VPVxQECA/vrXvzrkWk2pLawNAAAAAAAAAAAAAAAAAM1QUVGR4bihW0RaKyZzZGe2l19+2bBF58MPP6x27do57HpNhWIyAAAAAAAAAAAAAAAAALDR5s2b9fnnn1cfDxw4UJMmTXJiRvZDMRkAAAAAAAAAAAAAAAAAp/Dy8jIcl5aWNmie4uJii5iPj0+D5jqX0tJSPf7446qqqpIkubm56emnn5bJZLL7tZyBYjIAAAAAAAAAAAAAAAAATuHt7W04tlYUZgtr42rObQ/vvPOODh48WH08ffp0de/e3e7XcRazsxMAAAAAAAAAAAAAAAAAmpJL62gidU7Tp0/X5MmTHXoNe3T+qlnwlZ+f36B5ao7z9PSUi4t9+2wdOHBA7733XvVxZGSk7rnnHrtew9koJgMAAAAAAAAAAAAAAABaGV9fX/n6+jo7jTqFhYUZOn0dP368QfPUHBcWFtaovKx57LHHVFZWVn38xBNPyNPT0+7XcSaKyQAAAAAAAAAAAAAAAAA4RdeuXfXzzz9XHx87dqxB89QcFxMT06i8rNm6dWv1fwcFBWnTpk3atGmTTWNzc3MNx7t27dIrr7xiiI0aNUqxsbGNT7QRKCYDAAAAAAAAAAAAAAAA4BQ1i76OHz+uwsJCi+0v63Lo0CHDcXR0dKNzO5dTp07p/fffb/D45ORkJScnG2Jdu3Z1ejGZfTcGBQAAAAAAAAAAAAAAAJo5k6mq1T9aip49exqOy8vLtWPHjnrNkZaWpuzs7HPOC9tQTAYAAAAAAAAAAAAAAADAKeLj4+Xn52eIbdy4sV5z1DzfxcVFF198caNza4vY5hIAAAAAAAAAAAAAAACAU7i5uenSSy/V0qVLq2Nffvml7rvvPplMJpvmWLJkieE4Pj5e7dq1s2uekrRv374Gjx0+fLjS09OrjydMmKAXXnjBHmnZFZ3JAAAAAAAAAAAAAAAAADjN6NGjDcdHjx5VQkKCTWP37t2rTZs2GWKjRo2yW25tDcVkAAAAAAAAAAAAAAAAAJxmxIgR6tmzpyH27LPPqqCg4JzjKioqNHPmTEMsNDRUkydPtum6PXv2NDymTp1av8RbIYrJAAAAAAAAAAAAAAAA0Ka4mFr/oyUxmUx64IEHDLH09HTdddddys/PtzqmtLRUDz/8sJKSkgzxO++8U15eXg7LtbWjmAwAAAAAAAAAAAAAAACAUw0fPlxXXXWVIbZhwwZde+21WrhwoQ4cOKC8vDwdPHhQixcv1oQJE7R8+XLD+QMGDNCUKVOaMu1Wx+zsBAAAAAAAAAAAAAAAAADgueeeU0ZGhnbs2FEdS09P1+zZs+sc27lzZ7355psymymHagw6kwEAAAAAAAAAAAAAAABwOl9fX82fP19XXHFFvcYNHjxYn376qcLCwhyUWdtBKR4AAAAAAAAAAAAAAADaFLovNV++vr6aO3euVq9erffff19bt26t9dyePXtq+vTpGj9+vEwmUxNm2XpRTAYAAAAAAAAAAAAAAACgWRkxYoRGjBihzMxMbd++Xenp6SosLJSnp6fCw8MVFxenTp06Neoa+/bts1O2dUtISGiyazUGxWQAAAAAAAAAAAAAAAAAmqX27dvryiuvdHYabQZd+wAAAAAAAAAAAAAAAAAAdCYDAAAAAAAAAAAAAABA2+JiqnJ2CkCzRGcyAAAAAAAAAAAAAAAAAADFZAAAAAAAAAAAAAAAAAAAiskAAAAAAAAAAAAAAAAAAKKYDAAAAAAAAAAAAAAAAAAgyezsBAAAAAAAAAAAAAAAAICm5GJydgZA80QxGQAAANAETp7M1c6dB3Qk7bjyCwplNpsVGOinmJhIxcZ2k5tb8701T05O1f7kNGVlnVRxSam8vDwU3iFEvXpHKyoq3NnpAfVWkndGpw6mqiAzW2VFxXJxdZW7n4/8OoYrKDpKLmZXZ6cItCiB7mb1CvRTRx9P+bi5qryySrml5Tp8plB7T+eroqrK2SkCLUr5mTMqTD2s0uwsVRYXy+TqKlcfH3mER8g7Kkom1+Z73wgAaN2CfdzVLzJAUcE+8vUwq7yyUqcKy3Qg64x2HM1VeSX3fYCtys+cUVHqIZXlZKuiuOj/7/l85dEhQl7c8wEAnIxXIQAAAMCBvlm5XgsXLlVi4l5V1fJhuo+Pl0aNvlC33TZe0dEdmzhD63Jz87Xgw6/173+vVmbmiVrPi4oK15QpV+nGm0bLw8PdLtcuLS3T/v1p2pWUoqSkA0ralaID+9NUVlZuOO+55+7ThOuG2+WaaBvSNyTqwDdrdCL5oFTLejR7eqrjsIHqcfUV8gtv38QZ1l9eeoYSZj6vyhrrQ5IG3T5VUZee74Ss0FZcFt5Ok2IiFBfsLxeT9a/yFpSVK+FYjj7Zf1RHCoqbOMNfrBt3kd3menLzXq1Oz7HbfMDZchO3KCdhlQoPptT6OuXi6amAgYMVeuVV8mjfoYkz/MXOu/5gt7k6zfiDAs8bYrf5gKYQFOCjgf26amC/rhrUr6sGxEWrc2SoxXlenW90QnaAY4yO7aDpF0RrcFSQXGpp4XKmuEzLdmbo3R8O6lBOQZPmNyw6WJ/d7rjffaa895N+PnTSYfOjbclL3KwT361W0cED57zn8x84WO1GjnLaPd/ue35vt7k6Tr9dAYO55wOAloRiMgAAAMABMjNP6M8Pv65Nm3bVeW5BQZH+vXiVvvryO9151yTdddckmWr5UL4prFq1QU88/rZOncqr89zU1Ay9+OIH+uij5Xr5lQc1YECvel+voKBIK1b8qKSkA9qVlKJ9+w5bFI4BjVF08rQ2vT1fOXv213lueXGxUr9bryPrNqrn+FHqNX60U9fjuVRVVmrLOwusFpIBjhTi6a4nB/XUgJCAOs/1cTPrmqgOuioyTB8mH9GHyUeaIEOgZSk7fUpH/vUPFexPrvPcyuJinVq/Tqc3/qzQ0WMVNnpss32dAlqLPj0iNXrEAA2I66qB/aIV3bn5f+EAsJf2/gyqxGsAACAASURBVB6ac8MADevars5z/TzdNOW8zpowoKPmrjmgtxIONEGGTYN+a7CHstOnlP7B+yq08Z7v9Pp1yt34s0JGjVXIqKu55wMANCmKyQAAAAA7O3QoXbfe8riys0/Va1xZWbneevNTHUw5qhdf+qNcXZt+q72FC5bq+ef/VWsXtdqkp2fp1lse1+tvPKwRI4bWa2xa2nE9/tjf6zUGsNWZjEytnf2Gik/n1mtcZXm59ixeqjPpx3Xe3dNkcnFxUIYNt+/rb3XqYKqz00Ab08nHU29dFKcQT496jXN3ddEfekepi5+XntmSrEoH5Qe0NCWZx3Xw9VdUnlu/16mq8nJlff2lSjIy1Gn6bc3ydQpoLabfOFz33jba2WkATS46xEef/WGY2vt71much9lVD13RU91CffXgom1q6TtfFpVWaPexur9sB5xLSeZxpc55uUH3fNlLv1TJ8Qx1vPX33PMBDlBLw02gzaOYDAAAALCjU6fydNttT1ktJOvbN0bDRwxRZGSYiotLlXr4mJYuXausLONWCcuWrVVwuwA9+uhtTZW2JGnlyh/13HP/tIi7uZl15ZXnKzaum0JDg5SdfUo7d+zX//73s6GDWFlZuR584BUt/OhZ9e/foylTB6wqOZOvdc+/ZbWQLDC6s8IH9ZNPaDtVlJYp/3iWjqzfpOJTxnOP/rRZHgF+6j91UlOlbZPcI8e09z/LnZ0G2hh/N7NevyDWaiHZ3tNntDbjpDIKi+Xh6qJOPl66IjJUoV7Gc6+IDNOpkjK9mXSoqdK2cKK4VCdLShs09kwpnQBhP+X5+Tr05utWP1T06hwlv/7xcm8XoqqyUpVkZur0po0qzz1tOC9380aZ/fwUMXlKU6VtwezvL7O/f4PGuvp42zkbAIA9BHq7aeGMIVYLyXYcPa3/7cnUkZNF8nRzUXSIj8b176gOAcZzx8V31ImCUj29dLfD8y0ordDuY/Ur0rGmczsf+XoYPzpdnpShMyXcA6LhyvPzlfbWa1bv+Tw7R8mvX7zc2oWoqqxMpZmZyt28weKeL2/zRpn9/NXheufd87n6+cvsX3d3aqtjvbnnA4CWhmIyAAAAwI6efGKeMo5lG2I+Pl566eUHNHz4EIvzH3jwd3rv3X9r7tzPDPGFC5bqoovidcklgxya768yM0/osZmW3cHi43vqjTl/Vvv2lltaHD+eowf++LK2b/+tPX9ZWbke+tOrWrrsTXnWs2uNNRERoYqN7aYTJ3O1ZbPj34BG67L1n5+o6ISxWNPs6anBd09TxKB+Fuf3nTxO+75cqT3/WWaIp6xco/ZxfdQhvq9D87VVZUWFtrzzoSrLf/tAIyimi06lHHZeUmgT/hLfTR28jR8SFpSV6+nEZP14/KTF+e/uSdUtPSJ1W68oQ3xyTEdtzDqtn7Pq18HTXr48fFz/2pfmlGsDZ0v/eKHKThrXjounpzpNu03+/eMtzu8wfoKyVixX1rKvDfETa1bLr09f+cXGOTTf2gRffKnaX32tU64NOFNJSZl2JR9R4o6Dmnj1MAUF+Do7JcBunp8Qp8ggY/HHmeIyPbhom1btybI4/+Vv9umey7vpwZHGL5bNuDBaPyRn67vkbIsx9rQzPVdj3lrXqDk8zC7a+OhIi/jnm9imHY2T8ekClZ2yvOfreOvv5dfP8p4vbNwE5axcruzlXxniJ9eskk/vvvLr65x7vqCLL1XY2HFOuTYAoOlRTAYADnL8+HElJycrIyNDuf//jZOAgAC1a9dOcXFxat++vcOuXVBQoG3btunw4cPKy8uT2WxWSEiIevbsqd69e8tkomcrADjCjz9u0//+97Mh5uZm1gcfPK3YuG5Wx7i5mXXPvTfIz99bzz/3L8Nzzz77T11wQbzMZsdvd/nKywtUUFBkiA0Y0Ev/mj+r1qKwDh1C9MGHT2vG9FnaunVvdTw9PUv/eP+/uve++n1bMiwsWLGxMeob201xcd0UG9tNQUG/dLmY+9ZnFJOhXjJ37tGxTdsMMRezWRfP/KOCukZZHeNidlXviWPl5uOlHQsXG57bvmCRwuKekIsTtp+tad+X3+j04d8+0Oh04RD5tA+hmAwONTg0UJdFhBhipRWVun99kvadzrc6pqKqSvP3HVF+WYX+GNfV8Nwf47pqU8IWVbTwbY+AhjqzZ7fytiUaYiazWdEPPCTvqC5Wx5hczWp/9bVy9fZWxhefG547tugz9ejdR6Zm8DoFtEZlZeXasz9diTsOVj927ElVWVmFJOmKS/pTTIZW46JuIRodG26IlZRX6KZ/bNDOdOvdv8orqzRn9X7lFZXpyWuMX8J58pq+Wvv696po5vtdjo4NV4CXmyF2MCdfGw9bfmkCsFX+nl06Y+WeL+r+h+V1jnu+0LHXysXbW5mLjV8+zfziU/n24p4PAOB4FJMBgJ3k5OQoISFBP/30kzZs2KATJ06c8/xOnTrp+uuv1+TJkxUcHGyXHPbt26d58+Zp1apVKisrs3pOWFiYbrjhBs2YMUPetBYGALuaN+8Li9g999xQayHZ2W655Rp9/90WrV+/vTqWlpqhpUt/0Pjxl9s1z5pSUzO0fLnxG7xeXh56/oX76+wu5unpoeeev08Txj+o4uLftgxbuHCppk2/Vr6+db/WdOkSoR/W/kuhoUEN+wMAVuz97wqLWK/rxtRaSHa2bqOG6/jWJGUl/VYkWZCZrSPrNynq4mF2zbO+Tqce1d4lv/3ZPAL81W/q9Ur59jvnJYU2YVqPThax+fvSai0kO9sXB4/p/PZBGhL227/znXy9dEVkmFYesexsAbQFWcuXWsTCxlxdayHZ2UKGj9SZpJ3K3/NboX1pdpZOb9qgoGEX2DNNAJJenfeVHn/hUxWXWH+vDWht7htu+R7GnNX7ay0kO9v89Yd1ea8wXdI9tDr2yzaYEfrP1nS75mlvNwy2vN9dRFcyNFLOCst7vpDR19RaSHa2dpePVH7SDhXsNd7z5W7eoMCh3PMBABzLxdkJAEBLt3PnTt1yyy26+OKL9fjjj2v58uV1FpJJ0pEjR/T6669r5MiRWrx4cZ3nn0tVVZXefvttXXfddVqxYkWthWSSlJWVpbfeektjx47Vjh07GnVdtC3Z2dl66623qh/vvfees1MCmpX9+9MsOmcFBflr+gzb27//6U9TLWKffbqy0bnVZdHn36iystIQmzhxpKKiwmsZYdSlS4QmTjRuBZGXV6BlS9faNN7Ly4NCMthV3tFjOrHvgCHm7uerHmMttyypTd8p4y1ih1bZ9jPtKJXlFdryzgJVVVRUx+JvnSwPP7pgwLGi/bwVHxJgiJ0qKdOnB2z/QPDd3YctYuO7dGhsakCLVHwsXYUH9htirr6+CrniKpvn6DDuOovYiR++b3RuACwdzzpNIRnajO5hvhoa3c4QO5FfovfXHrR5jpdW7rWI/W5Y3V/qcabOwd4aGm38wndZRaX+ndi8C+DQvBUfS1dhipV7vpG23/OFWbnnO7X2u8amBuAsrm3gATQExWQA0EhJSUnasGGDxYfwtiooKNDMmTP15JNPNjiHp59+WnPmzFF5ebnNY44dO6apU6dq06ZNDb4u2pacnBzNnTu3+kExGWBUs7OXJE24brjc3d2snG1d39gY9e0bY4ht356so0czG53fuVjL/YYptr+xJUmTb7jSIrZsmXMLb9B2Hflpi0Us6pJhcjHb3pw7KLqzAqM7G2InDxxSQVZOo/NrqL1Llis37Wj1ccR58eo4dKDT8kHbMaJjiEVseVqmyqts36poX26B9p4+Y4jFBvsr3PvcHTCB1uj0Zsvfw4POv7Ber1NeUVHy6mz8YL7o0EGV5mQ3Oj8AQNt1Tf8Ii9gXW46qrB57kycdy9OOo6cNsYGdgxQZ5NXo/BzlhsGd5OJiMsTW7M1Sdn6JkzJCa5C3xfKeL3DYhTLV556vcxd5cs8HAHACiskAwAGioqJ044036vXXX9dXX32lH3/8UZs3b9aKFSv03HPPKT4+3mLMZ599pjfffLPe1/r444/1ySefGGLe3t6aMWOGvvjiC/38889avXq15s2bpwsvvNBwXnFxse69915lZGTU+7oAAKN1a7daxK666vx6z2NtzForc9vL/v1pOn7c2FEzJiZS3bpZbu9wLj16RCk6uqMhtnXrXhXkFzU6R6C+Mnfssog1pOiq45ABVubebeVMxzt1KE37vvqm+tjd10fx06c4JRe0PUPDLLtHfnes/oWV3x2z7OBsbW6gtcvfnWQRCxg4qN7z+FsZc2aX5WsgAAC2urRHqEVsRVL93ztekXTcInaZlbmbAxeTNHFgpEX8s81scYnGsXbP5z+gAfd8VsZYmxsAAHuimAwA7MRsNuvaa6/VwoUL9e2332rWrFkaM2aMevbsqZCQEPn5+alr166aOHGiPv/8cz399NNyczN2q3n3/9i78/ioqvv/4+9Zsu8rSQgkEPYdwiouqCgIWrcqtmoF6lYVt1rXtrZWay1f932p4lbXVi1o3RClCMqq7DuEEAIJ2fdkJvn9wY+QO3eSzEyWSfD1fDzyeHjP3HPuGcnknrn3cz+f55/Xjh07mjmC2eHDhzV//nxDW48ePfTuu+/qjjvu0IgRIxQTE6PU1FSddtppevnll3XHHXfIYjn2lFVxcbEefPDBtr15APiJq6ys1ubNxpIPISFBGjIko5kezcscO8TU5lo+sz2tWWMee8yYwT6NlTnW2M/hcOqHH7b5NBbgK0d1jYr3GC/624ICFZ3uXYCkJMUP7GdqO7x1p5s9O1a9w6E1z7+mBuexTLgjLvu5gqMiO30u+OkJtlk1INpYSrXK4dT2knKvx/qxoMTUNjKO32P8tNTX1Khq3z5DmyUwUCG9ejfTo3lh/fqb2ip2en5NAQCApkICbBqWYixtXlnr0MYDpV6PtXJvoaltXHqsmz39b8rARCVFBRvaDpZU6+tteX6aEY4H9TU1qs7OMrRZAgMV3Mv7kq+hGeY1n2v5TAAA2hvBZADQRlarVWeffbY++eQTzZ8/X+PHj/eo36xZs/TnP//Z0OZwOPT00097fOznnntOVVXHMr7YbDY988wz6t/f/OXiqLlz5+ryyy83tH3++efaxNPLAOCzrVv3mModDx2aIbvd5vVYw4b1U0CAMd39pk272jS/lrgbe9SogT6NNXrUII/GBzpSSdZ+yaX0Xkyf3rLavP88xmSkyeLSr3jvvmb27jhb/v2xSrMPNG73GDVUvU+a0OnzwE9T/6gw2SzGkj9bi8vlRaWjRluKylXncr4c6BKoBhzvqvZnm85ToWnppvONJ0Lc9Kval9XM3gAAtGxISqRsLqUeN+wvkbPe+4Xf+v3FqnUY133DekY1s7d/zRprfvDo/bX75cPbBhpV799nWvOF9PZ1zddHculXzZoPaDdWS8Nx/wP4wvOizAAAt37+859r1qxZPvW98MIL9eGHH2rlypWNbUuXLlVtba0CAwNb7Hv48GG9/fbbhrZLL71Uw4YNa/W4t9xyiz799FPl5R15uqqhoUHPPPOMV4FsAIBjdu/OMbX1Tkv2aazAwAD16BGn/fsPNbZlZx+Uw+H0KTitNXvace69eieZx99jHh/oSGW55nIqYT18K6ditdsVEhutyvxjpfkqDh1WvdPpU3CaL4p2Z2n7oi8at+0hwRo995edcmxAknqHh5racip8K2HsaGhQflWtUsKOZX5ICQ2RzSKfgtN81T8qTPOG9dGwmAglhgQpMjBAjvp6ldY5VFxTp23F5fqxoFSr8otUXOvovInhJ6HmoLlUWGCC7+cpe3SM6gqOlZ2tPZyvBqfTpxuVvqrK3qcD772jyt27VFdUJGdFuSx2u2yhYbJHhCukd5rC+g1Q+OAhskdEdNq8AADeyUgwB/nvLaj0aaw6Z4MOllard+yxtWRabKhsVotPwWkdJT48UKcNSjS01dc36J1Vnf8QEY4vNYfM1yYCExLd7Nk6i92ugC6w5qvOztbB999W1Z7dqisqNKz5bOERCumdptB+AxQ2iDUfABwPCCYDgDaytXGxft555xmCySoqKrRt2zYNHz68xX6LFy9WXV1d47bFYtGvfvUrj44ZGhqqCy+8UM8++2xj29KlS1VRUaGwsDAv3wEAICfHXPogJcW3m4KSlJwcbwgmczrrlZubr169zMFabdWec09JNvfLbvI+gM5QkW8upxIaH+fzeKHxsYZgsob6elUVFCksMd7nMT3lrKvT6ueM5S2H/eJ8hcbFdPixgaOSQ4NMbQcra3we71BVjSGYzG61qEdIkA60YUxvnZRs/psQZLMqLMCu5NBgDY6J0Hl9klXjdOq/+/L0z505OlBZ3Wnzw/GttqDA1BYQ6/t5KjA21nBjUfX1qiss9DlAzRdl6380tTU4HKqvrlZdYYGqsrJU+L+lsgQEKGbiJMWfMU1BPt5MBQB0nNSYEFNbTrFvwWSSdKC4yhBMZrdZlRIVrOwi3x5M6AgXjklVgM1YxOm7PQVdao7onuraec0X4G7NV1SowPjOW/OVb/jB1NZ0zVe9b6+Kln0jS0CAoiecoLip03wOoAMA+B/BZAC6hIKCAm3dulX79+9XWVmZamtrFRISorCwMKWkpKh3797q1auXLC7lVXy1detWbdmyRYcPH1l8JyYmqk+fPho+fHi7HcNTgwaZS4Ll5+e32m/x4sWG7czMTPXqZU7J3ZwLLrjAEExWW1urZcuWadq0aR6P8VNQW1ur9evXa8+ePSoqKpLT6VRMTIzOPPNMxcbGejVWVVWV1q5dqz179qisrExhYWGKj49XZmamevTo0a7zrqqq0g8//KC8vDwVFhbK4XAoNjZWSUlJGj16tEJDzRkmurNNmzZp165dys/Pl9PpVGxsrAYOHKhhw4Z1yme6tLRUP/74o/bt26eysjJZrVYlJCTo/PPP7/Bjo2s4fLjI1Jac5HugSVKyue/hw8UdEkxWUFBi2LZYLOrRw7u/b0f1SIqTxWJRQ5M0/gWHi9s0P8BbNcWlpraQNgRfhcSa+1aXlHZKMNmW9xepLOdYBpuEIQPU57QTO/y4QFOxQeaMyXnVbQsmcxUTFNipwWSeCrLZdF6fZE3vlahHN+zWx/sIkEbbOUrN56mAGN/WXs31rSsr7dRgMk811NWp8H9LVfTdd0qZdYliJ5/k7ykBAJpICDc/RJBb4ntA/YESc0BWQkRQlwrUujjTfD397VXZfpgJjjeO0hJTW0CM79cmAqLNaz5HaWmnBpN5qqGuTkXLvlHx9yuUdPEvFHMCaz4A6I4IJgPgN06nU//617/03nvvaf369a3uHx0drdGjR+uMM87Q9OnTm82gNXDgQMP24sWLlZqaKqfTqbffflsvv/yy9u/f77Zvz549NWvWLM2dO1cBAQHevykfBAcHm9qqqlr+Ql1bW6sVK1YY2saPH+/VcXv37q2kpCQdPHgs3fLXX3/tNpjs/vvv1+uvv964PWfOHN15552tHuO1117TAw88YGg77bTTDEFszfnmm2909dVXN25nZGTok08+abWfNxYsWKAHH3ywcfv000/XM888I0nKzc3Vs88+q4ULF6qy0vwEXp8+fTRhwoTG7QceeECvvfZa4/avfvUr3XPPPZKkvLw8PfXUU/roo49UXe3+Aszw4cN166236oQTTmjTe/ryyy/15ptvavXq1aqtrXW7T2BgoCZOnKjf/OY3GjNmTIvjbdmyReedd57b18rKykyfN1d33XWXZs+e7dHcveVwOPTaa6/pzTffbPYznZiYqCuuuEJXXHGFAgICVFpaqnHjxhn2WbVqlSIjI5s9znXXXWcI3mz6ntatW6fnnntO//vf/+R0Ok19mwaT+XJsV67/HhEREVq9erXH/dFxSorLTW2hYea/754KDTX3LS4u83m85lSUV6muzli+Kzg40Oesm3a7TYGBAaqpOfb3pyPmDbSktqLC1GYPNt8U8ZS7vrVl5mO0t8Kde7Tjk2PnH1tQoMZcdVmnP/gARAaaLx1VOczrHk+56xvl5hgdzVFfr+LaOpXXOWWzWBQRYFd0kPvvgMF2m+4a3V/9o8L02IbdnTxTHG+cbs5TtiDfz1NWN32dFea1aYez2mSPCJctJEQN9fVyVlQ2O4+GulrlvPGaqvdnK2UWpZsBoKuIDjWvhSpqfC/5XVljXvdFh5ofVPCXcekxykg0lvYsrqzVZ5vM5QkBbzkrzWs+a5Dv1wq72prPGhwiNTTIWVHR4pov981XVb0/W8kXs+YDgO6GYDIAfpGTk6PrrrtOW7du9bhPcXGxlixZoiVLlighIUEnn3yyx32Liop0ww03tBp0kZOTo0ceeUSLFi3SE088oT59+nh8DF8dOHDA1NZaxqu9e/eaAoVaCwpyZ8yYMYYAre3bt7vdb+LEiYZgsuXLl3s0vmvAmyStXLlSTqez1UAF175tDbLyxqeffqq77rrLbRCZt77++mvddtttKitrOZhiw4YNmjNnjn7zm9/o5ptv9vo4u3bt0j333KN169a1um9tba2WLl2qpUuX6pxzztEDDzygoDbcvPCH7OxsXX/99dq2bVuL++Xl5Wn+/Pn65JNP9OyzzyokxJyu3xcNDQ16+OGH9dJLLxkyMOGnq8pNlpUgN5lcPBXspm91tfsA0baorDIHuLZl3tKRYLSmwWTVbcheA/jCUWP+rNja8JCALdDc19lMwHZ7cdb+//KW9cfKWw696Gedkg0NcBXiZt1e06T0qrfc9Q32MYjZ2+Ouzi/W93lF+rGgRFllVXK4rOOiAwM0Ki5SP0tP0vhEc9aAn/dNUX5Vjd7cmdPh88Xxq77WvDayuDnXeMpd3/oOPk9JksVuV/igwYoYOlyh/forKClJVrvxUrOjtFQVO3eocNlSlW/ZbBqj4OslCoiOUcK0szp8vgCA1oUGmtdk1Q7f133Vbh4iCAno+HWfp2aNNWcl+/CHA6ppw3sGjqqvcbPma8O1CUug+XpdZ635wgYNUfiQYUfWfD2SZXFd85WVqnLHdhV9u1QVW81rvqJvvlJAdIziz2TNh67JynObgFsEkwHodIWFhbr00kuVm5vb+s7toKamRjfddJM2btzocZ/t27frV7/6ld544w2lpaV14OyOZCZy1bt37xb77N5tfho+IyPD62O79tmzZ4/b/SZMmCCbzdaYeWn79u0qLCxsMejN6XS6fW/l5eXasGGDRo0a1eLcXIPJJk6c2OL+7eXTTz/VLbfcovr6tl80+PLLL3XjjTe6zVjVnGeffVYxMTG64oorPO7z3Xffad68eSp1Uy6lNQsXLlROTo5eeOEFRUREeN3fH/bv368rrrhCOTme38TbtGmTZs+erRdffLFd5vDAAw8YAiwBh8P8pG6bgsmCzX3r6up8Hq85DjcXdtsaTOba3zXzGdDRGtycd90FhHnKXd96N5/59rTp3f+oPPdYOb3Y/n2UMW1Khx4TaI7NzVXV2jasld31tXfwldunN+7RJ9mHVFLb8me3uLZOX+cW6OvcAo2Oi9IfMwcoIcT40MU1Q9K1+nCJtrnJSgp4wt15ymr3/TxlDTCv3RrakD3QE0kX/Fwxk06QPbzl75D2yEhFjclU1JhMlW/fpuyXX5KjxFgC/eBHHyhs0GCFpqV34IwBAJ6wW62mtpo6388p1XXmdV+AzXwMfwgPsmvG8GRT+zur9vlhNjgeuVvztSWYzOqmb4OzY69NJJ5/kaInerDmi4hU5JixihwzVhXbtypngXnNl/effyts4GCFsOYDgG6DYDIAnW7+/PmmQLLhw4fr/PPP14gRI5SSkqKQkBDV1NSovLxcWVlZ2rZtm5YvX66VK1c2W7qvpeMdDSQLDAzUrFmzNH36dPXu3VuBgYHKzc3V119/rTfffFP5+fmN/fLy8nTNNdfoo48+6rCsTU6nU//5z38MbRkZGerZs2eL/Xbt2mXYttls6tGjh9fHT0pKMmxXVFTo0KFDprEiIiI0dOjQxnKkDQ0NWrFihWbOnNns2Bs3bmw2G9fy5ctbDCYrLCw0ZJyy2WyGkpId5eDBg7r77rsbA8mGDRumCy+8UOPHj1d8fLzq6up04MABffnll60GXu3evVvvv/9+YyDZSSedpJ/97GcaOXKkYmNjVVVVpe3bt+u9997Tp59+auj76KOP6owzzlBKSkqrc96wYYOuuuoqw+fCYrFo8uTJmjFjhkaMGKG4uDgFBAQoLy9Pa9as0VtvvaXNm489IbR27Vr94Q9/0GOPPWYaPy4uTldddZUkqaCgQP/+978bXwsMDGw16G348OGtvgdvOBwOzZs3zxRI1qNHD1122WU6+eST1aNHD9XX1ysnJ0eLFy/WP//5T5WWlmr37t26//772zyHxYsXa+XKlY3bZ5xxhmbMmKHhw4crOjpaJSUlysrK0qJFi9p8LHRvbSpF56ZvZyXBa2sFPdf3TfI+dH9uPhQd+HtdsG2Xdn76VeO2NcCuzKsvl8XNjR3AX9ryt91dVteOfgj4rV3eZxJbV1Ciq5b+qOdPHqkeTQLKrBaLfjMkXTcv9/xhJaBV7V7CuGMXYAlnTPO6T/iAgep3593a9fcHVVdUdOyFhgYd/ODf6nvzre04QwBAe2nLGcXtuq+LZH/52cgUhbqUWv9xf7G2HGy5ugTQNu17rbCDl3yKn+r9mi9swCD1uf0e7Zn/VzmKjWu+vI/+pbQbf9uOMwQAdCSCyQB0qvLycn388ceGtmuvvVa33HKLad/Q0FDFxMSoV69eOvHEE/XrX/9apaWlev/99xUTYy450pwlS5ZIklJTU/XCCy+YsnFFR0dr8ODB+uUvf6lbb71Vy5Yta3xtz549euqpp/Tb33bMAve9994zBdbNmDGj1X55eXmG7YSEhFbLRrrjLljJXTCZJE2aNKkxmEw6EhDWUjCZaynMiIiIxuCyFStW6Lrrrmu2jYdnPwAAIABJREFU73fffWe42DB06NBOyZq1adMmSUcCIe68805dccUVpqCIhIQEjRw5stWxjv4ehYaG6pFHHtGpp55qeD0iIkKJiYk68cQT9d577+n3v/9942tVVVV655133H4umiorK9PNN99sCCRLTU3V/Pnz3ZY9jYiIUEZGhi666CK99NJLeuSRRxoD5/773//q1FNP1bnnnmvok5iYqNtuu02StGXLFkMwWVBQUONrneWll14yBMJJ0tSpU/XQQw8pPDzc0B4XF6cRI0bosssu07x587Ru3brGvwdtcTSQLCIiQk899ZQpa15ERIRSU1M1efLkNh8L3Yfdbl5Wt6W8Y42bkpYBAe2/dLfb3ZSwaGM5Tdf33RHzBlpicbMmctb6ntnPXV+rm89Oe3DU1GrNC68bInUGnz9DESlJLfQCOpaz3nyHIqgNGSWC3HxG69wcoys4XF2ru7/frBdOGSVbk+8FYxOi1S8yTDtLK/w4O3RX7s5T9XW+r78a3GSvtdi65vorIDpGaddcr50PPWA411Vs26Kq7H0K6dVylnYAQMdyuMkgG9yGspTu+tZ1kRKSF7spcfnuqmw/zATHK3drvoY2rPnclbS0dNC1ibYKiI5Rr2uu156/m9d81dn7FMyaDwC6BR5tBtCpNm7cqJomteLT09N18803e9w/MjJSc+fO9TrbUWRkpF555ZUWS0FGRUXpqaee0tChQw3tr7zyigoLC706nicOHjyo//u//zPN4bLLLmu1b2VlpWHbNYjGU+76VVS4vyEyadIkw7ZrGUpXTV9PSUnRWWed1bi9bt06VVVVedTX3bE72m233abZs2e3LauQjmRUe/75502BZK4uuugiU2DewoULWx3/ueee0/79+xu3U1JS9M9//tNtIFlTFotFV111lW666SbTeO6eGOwqqqqq9NJLLxnaMjMz9eijj7b4GUhISNCLL76o9PT0dpuLzWbTiy++2GnlV9H1BYeYywvV1Ph+gajaTd+QkPbPkuluzLbM213/jpg30BK7m7KUzjaUiXW6udhr66CstZve+VDlB489NBCd3kv9zz6jQ44FeKraTXmWtgWTmfu6O0ZXsa2kQl/uzze1T+zh+QNOQFPWQDdlKdsQ9Fzv5hxnbWPZ8o4Ukpam6HHjTe1lm8j2BwD+VlXrJpjM7vu6z10wWWUbyma2l4E9IjSqV7ShrbLWoY9+POCnGeF45HbN14ZrE+76WgO77jW3kN7pihprXvOVb2bNh67Hajn+fwBfEEwGoFMVFBQYtocOHdrmgB1P3Hjjjerdu/WnHUJCQnTffffJ2qSMUF1dnSEbU3twOBz67W9/ayoDecsttyg6OrqZXse4BpP5WobTXT/XsY8aM2aMYf+cnBzt27fP7b7V1dVat25d4/akSZMMAWF1dXVavXp1s/PyZzDZ0KFDNXfu3HYZ65e//KXGjzd/YXLHtVxkTk6O6fPSVHl5ud5++21D2/333+9VudOrr77aEGC5e/duQ2a+rubjjz82fGZsNpvuu+8+Bbr5Yu4qIiLCkP2trS677DKNHj263cZD9xcdbc6eWFlR7fN4lZXmvu6O0Vbh4aGmzGE1NXWNJXq95XA4VVNjvLjVEfMGWhLoJsDY0YZMgU43fQMjwnwerzmHt+zQrs+/ady22Kwac/XlsvqQfRZoTyW1DlNbSBuegHfX190xupIv3ASTjU1o/Xsb4I4tzHyectb4fp6qrzGvG90doyuJGjfB1Fa+dasfZgIAaKqo0vwgTViQ79kuQwPN675iN8fobLPGmbOSfbIhV+U1XXtNiu7F3XrM3brNU/Vu1otdfc0XOda85qvYtsUPMwEA+IJgMgCdKiDAmCkiP998Ub69RUZGatasWR7vP2zYMFPwkmtpzrb661//agqmOvHEE3XJJZd41N81q5evwWTBwcGmtuaCyYKCgkwZr1xLWR61du1aQ+nFE044QRMnTjQEDjbXd//+/crOPpZS3N1xO9Kll15qCCZsi9mzZ3u878iRI03Ztba2cDF90aJFKi8vN/T3tqyi1WrVxRdfbGhr7t+lK/jiiy8M2yeeeKL69evncf+TTjqpxeyEnrJYLLr88svbPA6OL3Fx5hvKBw81HxDamoO5h01t8fEdc9M6NjbKsF1fX6+8vCKfxjp0qMCU4TCug+YNNCcoyhzAWFXo2++0JFUWmPsGR0X6PF5z1r38lqH8w4Bzpik6LbXdjwN4q8hNxsqEYN+fgE8MNj8I4O4YXckPBSWmth5k3oSP7BHm81Rdse/nqboic9+AiPY/T7Wn8P4DTG11Rb6vnQEA7eNwuTlYJSnKfP3YUylRIaa2/DLfA6jbQ6DNqvNG9TS1v7OaEpdoX/ZI83qsbWs+c/Ucd8foSsL6DzS1uXsfAICuyfdHCgDAB66BHKtWrdJXX32l0047rcOOOXXqVI8yFzU1c+ZMffvtt43b27dvV1VVlUJCzF+AvfX666/rzTffNLQlJSVp/vz5nZKlrS0mTZpkyBq2YsUKtwFwTQOSLBaLJk2apNjYWA0aNEhbthx58uS7775zewzXrGSuGdE62umnn94u4/Tt21epqd7dAO7bt6/Wr1/fuF3k5qbAUd9//71h+8wzz/Rugv/f2LFjDdtr1671aZzO8OOPPxq2p02b5vUY06ZN0zPPPNOmeQwYMEC9epmfYMRPW2qqOSvggQO+B0zn5hr72mxWJScn+DxeS1JTE3XIJfDtwIE8JSfHez1WrpsguNSeiT7PDfBFWGKcqa3ysO8XK6tcgsksVqtC4tq/vF11sTFY5cCqH3Rw7QbP+5eUmto2/2uRdn66xNCWnDlcQ35+jm+TxE/SgUo3NxVDfV+f93Dp66hv0KEq/95UbE21s17ldQ6FN8nmGe2mpC7gicB48xqrroWs1K2pK3Q5x1mtCoiN9Xm8zmANCpI1OET11ccelHOUlbfQAwDQGbKLqkxtPaN9vx6eEm0MRHM463WgxPfMTO3hzCE9FBtmvFewK69cq/b6HuQDuBMQ52bNV9iGNZ9rEJbVqoCY7rjmK2uhBwCgKyGYDECnysjIUEZGhnbt2iVJamho0PXXX6+ZM2fqoosu0tixY2Vr51I+I0aM8LrPyJEjDdsOh0ObNm0yBd546+OPP9Zf//pXQ1tERISef/55xXpxsdc1qK3Gx5IY1dXmL++hoaHN7u+ase27775TQ0ODKQiuaUBY//79FRcX19j/aDDZli1bVFRUpJiYmGb7ujtmR0pNTfWozKgnBg0a5HWfSJcniVzLoDblmtlu8ODBXh9PkhISjMEpzZUu9bfc3FxTcN2wYcO8Hmfo0KFtnkt7jIHjT58+Kaa2fVm5Po1VW1ungweNF5d69UqSvQ0lxVqS3qen1qwxppjfl3VQmZlDvB4re99BU1vfvmRWQucKTzYHd1Yc8i24s97hMGUmC+sR3ymlJ8tyfPsb0lRVQZEpGC6KbGfwUna5+aZiaphvNxXtFosSXTJ6HaiskrOhmQ5dSLXTaQgmC7SR7B++CeqRZGqrzc/zaax6h8N0YzEwPkGWblAi2RoUaLix2FDXtTMUAsBPwe58c2BvelyYT2MF2CxKdslMllVYKWe9fxd+F7spcUlWMnSEoMT2W/M1sOYDOpSta+f5APyGYDIAne6OO+7Qtddeq/r6eklHymktXLhQCxcuVGRkpDIzMzVmzBiNGTNGI0aM8DqrmCtvyuAd1adPH9lsNjmdzsa2vDzfFvpHLV26VHfccUfj+5aOlJl87rnnvA48cg348jWYzF2/loLJhg4dqsjISJWWHsl8UVxcrM2bNxuCa0pKSrR58+bG7RNOOKHxvydNmqSXX35Z0pFAwhUrVmjGjBmNrzc0NJgylnVmMFmPHuabz76KiopqfScXrhnYmvt3ra2tNf0+zp071+vjuXP037arKXDzpH56errX4/jSx1V7/p7g+DF4cF9ZrVbD3/hNm3bJ4XB6HQS2aeMu1dU5DG1DhvRtl3m6M3Rohv71/peGth9+2KbzL/A+a+i6debyvB05d8Cd6LReksViKBlZtHuf6p1Or4PAinZnqaHJelCSotN7t8s8ge5ie0m5nA0NsjV5gGRgdLhsFnkdBDYoOlwBLiXltxdXtMc0O1yUSyaykto6P80E3V1Ir96m81TVviPnG29vCFZl7TWdp0J6d4/zlLPcGLBgCw/300wAAEdtOlAqZ32DbNZj677hPaNks1q8DgIb3jNagXbjum/TAXPp8M7UMzpEkzOM2aJqHfX697r9fpoRjmfB7tZ8WT6u+fbtlVzWfMG90tpjmh3OYVrzmUu+AwC6Jh6jBNDpTjnlFP31r391W7qwtLRUS5Ys0cMPP6xLL71UY8eO1Zw5c/TOO+/4HOTimu3JEzabTWFhxqeu2hJks3r1at14442qqzt2wyEgIECPP/64T9nOXAO+yst9Kwfhrp/r+27KZrNp/PjxhjbXTGIrV640BFM0DSYbN26cAgKO3YRxDRzbvn27IWgoMjKyU7NARUS03xeZpu+zvbVU/rKtHA6Hz79PHcn18xcQEOBT+dP2+Dduz98THD9CQ4M1eHAfQ1tlZbW2bNnt9Vhr1m4xtY0d13F/CzMzzZkN3c3BE2td+tntNo0aPdCnsQBf2YODFJ1ufNrcWVOj4r3eP21esG2XqS1+kPcPKgDdWbWzXjtKjOvDULtN/aO8D/wYEWf+bvZDgX9vKnqiZ1iwKQiuuIZgMvjGGhR0JKCsifqaGlVle58lunLXTlNbWL8BPs+ts9Tk5ZmC4OzcWAQAv6uqc5oCvsKC7Bqa4v319XHpMaa2lXsK3ezZeS4em2oIlJOkr7bm6XA5mZLQ/qxBQUcCyppoqK1R9X5f1nw7TG2h/fr7PLfOUpt3yBQEZ+cBAgDoNshMBsAvzj//fGVmZurpp5/Wf//732YzMNXU1Gj58uVavny5HnroIc2ePVvXXnutV9nKXEtCetOvaQBLZWWlT+Ns3LhR11xzjaqqjqXytVqteuihhzRlyhSfxkxMTDRs5+fny+l0el0iNDfXXD7JdWxXkyZN0pdfHstgs2LFCl155ZWG7aMCAgI0bty4xu2QkBCNGjVKq1atkiQtX77cMLZrYNr48ePbvexpSzrzWG3RUvnL9tA0GLCrqK01XtTxNVivPYL8usvvCTrfiSeN1qZNxsCTzz5boeHDvbu48/lny01tJ500uk1za8mAAWnq0SNOhw4dC+bdtTNbu3ZlKyPDXP6hOTt3ZmvXLuPTvKNGDVR4ePMZL4GO0mPEEBXvMV6gPbBynWIz0r0aJ2flOrdjd4RzXny4Tf03/2uRtv77E0Nb5tWXK+2UzsvyiuPX94eKNCjaGOhxakq8thZ79xDClJR4U9v3eR33oER7mdTDfDN0Z2n3yKiGril8yFBV7csytJWsW6PQ9D7N9HCvZO0aU1tEJz6Q5auyjRtMbcGplGEGgK7gm+35GpEabWibMSxZ6/d79wDAWcOSTW1fb89v09zawmKRLhxjPte8vdr7wB7AU+FDhqnaZc1Xum6NQtK8W/OVrjOv+cKHDGvT3DpD2Sbzmi+op+fXGgEA/kUwGQC/6d27tx566CH9/ve/19KlS/X9999r9erV2r17txoazGmzKyoq9PTTT+ubb77RggULPM4O1DSIyxuu/Voq/9icHTt26Ne//rUp09Of//xnzZw506d5SVLfvsaSYU6nU4cOHVJKSopX47gGk4WFhSkpKanFPq5lJ9esWaPa2trGAL+mAWIjRoww/X+bNGlSYzBZdna29u/fr9T/f9HYNZisM0tcdifuMnKdf/75io8335xrr/H9LdzliaWqqirV19fLavUuyWpFBTf90HFmzDhRzz/3vqHtg38v1o03/kKBgZ4FMm7evFsbNhgzTIwYOUCpqR1bXnXGjBP1yisfGdreeedz3X33rz0e4913PjO1zTz7pDbPDfBF6qSx2vbRp4a2rKUrNOSic2S1e/Y1uHhvtop2Gy/6xmSkKyyxfc63QHfyZc5hXTHQ+FT9jN6JenFLlhxuvru50z8qTENijN/hNhWWKrfS/YNFXYXdYtHFfXua2r871PWD4NB1RY8dr/xPjQHARcuXq8c553l8nqrK3qeqrL2GtpD0PgqMT2ivaXaIeodDh7/6wtQeMXS4H2YDAHC1cP0BzTvN+FDczzNT9fAX21TnYY3zocmRGtXLGJC2bl+R9hf5dp2+PZzUL16pMcbr1AeKq7TUjwFuOP5FZo7X4U8/NrQVr/hWiWefJ4sXa75q05qvb5df8zU4HCpc8qWpPXxo1w+CAwAcQTAZAL+LiIjQzJkzG4OriouLtXbtWq1YsUJfffWV9u83ZjnZuHGj7r77bj355JMeje9LeUqn02kKOvG2XGZWVpbmzJmj4uJiQ/udd96piy++2Os5NZWRkWFq27Vrl9fBZLt3G8uv9enT+hMxGRkZSkxMVF5enqQjQT3r1q3ThAkTdOjQIe3Zs6dx36YlLo+aNGmSnnjiicbtFStW6KKLLpLD4WgMMmu6L8xiYsyZEc4999zj+v+X6+evoaFBhYWFXgfQNS2j2h25ZmhD1zJgQJoyMwdrzZpjpR4LC0v16qsLddVVF3g0xqOPvGFq+8Ul09ptjs256OIz9OqrCw2ZCf/1/pe6/PKZ6tWr5SBjSdq3L1fvv2+8QBQREaqZMwkmg39E9UpR3MAMQ5nKmtJy7fjvVxp4zpkejbHxnY9MbX2nntxucwS6kz1llfqxoEQj46Ia22KCAjUrI0Vv7szxaIxrB6eb2j7Ye7C9pthhrh6cppSwYENbpcOhld0goxq6ruCePRWa0c9QptJZXqaCxV8oYdpZHo1x8MN/m9riTp7SXlPsMIc++kB1Lt/LrEFBihjS9TOqAcBPwfZD5Vq5p1Dj+8Q2tsWHB+nXk/vouaW7W+h5zO3TB5ra3vg+y82enWfWuN6mtvfX7le9Z/FxgE+CU3oqJKO/qpqUqXSWl6ngqy8Uf6Zna768j/5laos56ZR2m2NHyfvPB6orOGxoswYFKXwwwWToelwqIAP4/7xL5wEAnSA6OlqnnXaa7rnnHn355Zd64YUXGjNXHfX5559r27ZtHo23c+fO1ndysWfPHjldarm3Vv6xqdzcXM2ZM0f5+cYnm+bNm6c5c+Z4PR9X6enpplKf69aZyzC1Zu3atYbtAQMGeNTPNWjpaDYyTzKLjRgxQmFhYaa+69evNwTwJSYmug2aw5EsXU3/H0pqDO47XqWmpprKS27dutXrcbZs2dL6Th3EXXleb4PDXINT0fVce+1FprannnzbVP7SnTff+ETLlhn/lvfq1UMzz/YseOX0067W4EHnG35Wfr/Ro759+vTU9OnGAODKymrdddeTqqlp+fe0pqZWd935hKqqjJllLrt8piIiwprpBXS8QeeZL8xu+dciFe1pvYzJrs+/Vt76zYa2sMR49TphXDM9jD696ff696XXGX7yN2/3bOJAF/XqtmxT29xBaRoQ1frf+gv6JGuCS6nInIoqfbHfs0wQ750xVsvOPdHwM7pJYFtzTkuJ19AYzzJau3PFgF76ZX9zOaR/7shRucPppgfgucQZ5mzlhxb9x1T+0p3DX3+l8s2bDG2B8QmKHj/eo2NvvedObfjNVYaf8u2tX2MpXrNKlbtbX9e609DQoLxPFunwl5+bXos/Y5psPmSDBwB0jKeW7DC13TJ1gIamtP6w9a8mpemUAcbr6FkFFfrohwMeHXvZ7adq74MzDT8TmwS2+SImNEBTBxvnVF/foHdXm9e3QHtLmG5e8+V//JFHa77Cr79SxRbjmi8gPkFR4yZ4dOwdf7hDm6+/0vBTsb31a+ola1apco/va778/y5SwWJzBYO4qdNZ8wFAN0IwGYAuzWKx6JRTTtGrr76q4GDj0+DLli3zaIz169d7fVzXPjabTUOHevaU7OHDhzV79mzl5Bif0J87d65uuOEGr+fiTmBgoClQa+XKlV6NkZ2dbSpzOWXKFI/6uh77u+++k2QMJgsLC9PIkSNNfe12u8Y3ucD93XffqaGhgRKXXsrMzDRsr1mzpsOPabH47/GM0NBQ9evXz9B29PfOG95+TtpTcHCw7C7py0tKSrwaw9MgWvjPiSeN1umnG2/i1dbWafYVf9SSr1a57VNX59Azz7yr++9/0fTa3fdcqYCAzkkmfNvvrlBoqPFcu2b1Zs2dc6/yDhW67XPoUIFmX/FHrV1rvBCVkpKgq666sMPmCniix4ghSs4cYWirr3Pofw88pty17teH9Q6ntnzwiX589V3TayN+dZGsdpubXsBPw8r8Yi3NNWYTCrJZ9cTk4Zrcw/0NPpvFoisG9NKtI8wPiTy2YbecHpbI9NWw2Ag9f/JIPTl5uGb27qGoQM/OqUNjIvTYCcN01eA002v7y6v09i7PsrEBLYkYMkyRI0cZ2hocDu1+9GGVrv/RbZ8Gp0OHPlmk3HfeMr2WfPElstg6dt1YuWuXds3/m3Y/Ml+F3/5PjvIyz/rt3qU9jz+qQwvNWT8DExKUMNWzrKEAgM6xdMdhfb7JmEE2KMCmt66aqNMHuX/g2m61aN5p/XTfz8xZh/60cLMcfkwBdsHoVAW5fJdbvrvAr2U38dMRPmSYIkaY13xZj/+fyjb84LZPg9Oh/P8u1MH3/ml6LemiX3T4mq9qzy7t/b8Htfexv6touRdrvj27tO/JR5S/6EPTawHxCYo7nTUfAHQnlLkE0C2kpqZq3Lhx+t///tfYduCAZ08zLV68WLW1tW6zAjXn44+NdewHDhyokJCQVvsVFxdrzpw52rt3r6F91qxZuuOOOzw+vidOP/10ffPNN43bq1evVnZ2tnr16uVR/w8++MCwHRgYqBNPPNGjvq6BXhs2bFBZWZkhIGzcuHGmwJmm/ZcsWSJJKiws1LZt2wgm89LkyZO1dOnSxu2vvvpK99xzj4KCgjrsmAEBAYbturq6DjuWO+PGjTMEUy1atEg333xzs79nrkpKSrR48eKOmp5HYmJiDBkLd+/e7VUGvqZ/A9F13feX67Rp0y4dPHjshnt5eaWuu+6vGjasn047fbxSUxNVXV2rrKxcLVq4VIcOmUuwXnrpDE2ZMrbT5p2cHK/7/nKdbvvtI4b2tWu3aurUazR9+gkaNryf4uNjlJ9fpA3rd+jzz1eors5h2D8gwK7/e/hWhYR49/fo7bc/1Ttvm59aPOrwYXNmvieffEuvvbaw2T6zLpmmSy6Z7tU8cHwZc+Wl+mrPPlUVHvv9cVRVa8XDzym6b2+ljBmp0MQ4OWvrVHEwT/u+XaXqIvPvWt8zT1Hy6OGdOXWgS/r7Dzs0MDpcPZr8jQ8PsOuhiUO0pahMyw4W6kBltYKsVvUKD9EZqQlKdHM+eH/3Aa041HllIkfHR2l0fJQc9f20u7RCO0srlFVWqdI6hyrqnLJapMjAAKWFh2hUfJQyIt1nWyusrtWtKzap2lnv9nXAWz0v/ZWq9mWprujY56G+ukpZzz6lkLQ0RY4YpYD4eDXU1qkm/5CKV34vh5tsxXFTTlXk8BGm9o5SsWO7KnZsV84/31BwSk8Fp6YqOClZtrAwWUNCpPp6OSsqVX0wVxU7tqvmgPsATHtEhNLn3SxrB36PBdrLBwtuV7JLls2m3L323X8fbHHM82f/XbmdeD4EvHHnBxs0rGeUUqKPXROPDA7QP64Ypx/3F+uLzYeUXVSpYLtNfeLDdO6oFCVHma+fL1i+V0u2+beiwsVjzdfL31nVesZqoL0k//IKVe3LkqPYuObLfu4pBfdOV8SIUQqMi1d9Xa1q8/NUsup7w75HxZxymiKGdd6ar3LHdlXu2K7ct15XcEpPBfXspaCja77gEKmhXs6KCtUczFXlzubXfLaICKXdcAtrPgDoZggmA9BtuJb181RJSYnee+89XXrppR7tv3nz5sbSi0fNnGlOReyqoqJCV111lbZvN5Yw+tnPfqY///nPnk/YQ6effrr+8pe/NAb0NDQ06I033tBdd93Vat+qqiq9//77hraTTz7Z4//HSUlJSk9Pbwyaczqdeuutt3To0KHGfVoKBjvhBGMptcWLF+uHH4xP4RBM1rKZM2fq0UcfVXV1tSQpPz9fr7/+uq688soOO2Z4eLhhu7q6WpWVlQrtpNTUF154od54443G7dzcXL3++usel459/PHHVVNT0/qOHWjgwIGGYLJvv/1WZ5xxhkd9N23a5NfMavBcbGyUXvrHvZo9+14dzjde+Nm4cac2bmy9/PL0sybrrrvndtQUmzVz5knKzy/SQ397xdBeV+fQwoVLtXDh0mZ6HnE0kGz06EFeH/twfrG2bt3rVZ/c3MPKzT3c4pj4aQuKjNDkO+fpf399XDXFpYbXinfvU/Hu1m8g9JwwRiMvN5ewBX6KimsdunX5Rj0+ebjig40P6wyOidBgD0pKLs7J1xMbdnfUFFtkt1o0IDpcA6LDW9/ZxZ6ySv1x1VYdqKzugJnhp+pIMNUt2vPYw3KUGrMWV2VlqSqr9fJHUZljlXzRJR01xZbV16t6f7aq93tfJiwoKVm9r7xGQQnuM9wAXc3g/qlK65XgVZ+RQ9NbfD0ggKy36LoKK2p1+csr9daVE5QYacxiPjI1WiNTo1sdY9H6A7pv0aZW9+tIo3tFa2CScY1aVFmrzzYdaqYH0P7sERFKm3eLsh43r/mq9+1V9b69rY4ROWaskn7e/dZ8gUnJSv31tQpkzYcuzGrxX/ZMoCujzCWATpWTk6P6eu+f4nY4HPrxR2OZh+TkZI/7P/7448rObn2hW11drT/+8Y+GOQYEBOiCCy5osV9NTY2uvfZaU3nMM888U3/72986pDxgfHy8Zs2aZWh74403tHnz5lb7PvbYY4bAL4vFouuuu86r47sGe7300kuGbdeAsab69++vhIRjF+BeffVVQ5bAuDtDAAAgAElEQVSr9PR0JSUleTyXL7/8UgMHDjT8LFiwwOP+3VFCQoLp3/+xxx4zBUJ6o6ysTLW1tc2+HhcXZ8p85snvmzsPPPCA6d9sy5YtLfYZMmSIxowZY2h77LHHPAqwWrRokd56y1wKprONHj3asL1o0SIVFJgzUrmqqqrSnXfe2VHTQgfIyOild9/9uzIzB3vVLyDAruuvn6WHH75VNpt/bizMnv0zPf747YqObj0goKmUlAS9suDPOvNMgoHRtUT2TNap992uuIGeZ4KUJIvNpkEXzND4G+bKYuWrM3BUVnmVrv7mB/1Y4F257rr6er28dZ/+tHqbulNerxqnU2/vzNGvv16nPWWV/p4OjkPBycnKuONuhWb086qfxWZT4sxz1GvuVd3qPGUJCFDc6VPV7+4/KLhnT39PBwDQgl355Tr3mW+1ck+hV/1qHfV67Mvtmvf2OvmxuqUk91nJPlyXo1oyzaKTBSWlqM/t9ygko793HW02xc84Rz3nXN3t1nyxp52hvnf+UcEprPkAoDvqPmcdAMeFBQsWaPr06Xr99ddVWOjZl1CHw6E//elPys3NNbSfeuqpHh+3pKREc+fO1e7dzT8BX1paqnnz5mnDhg2G9jlz5ig2NrbF+d10002mgJaTTz5ZDz/8cIcGA1x77bWG8psOh0PXXXeddu5sPuvNggUL9OqrrxrazjzzTA0dOtSrY7sGi5WUHLuZlJCQoAEDBrTYf+LEiW77SmQl89RvfvMb9Wxy8b2urk5XX321Xn75Za9KUG7btk3333+/Tj755BY/l3a7XYMGGbMNPfvss43Z0TrDvffeayhrWV1drauvvloLFixwGwhXUVGhRx55RHfccYfq6+sVHd36U5Md6eyzzzZsl5WV6Xe/+12LGdPy8/M1e/ZsU9ZDdH3JyfF6/Y0H9Mijt2n06EEtBhaHhgbrggtO04cfPaob5l0iq58vDp05bZL+++nT+s11FykxsflzoCT1TkvW7353hT7+5EllZg7ppBkC3gmNi9XJf7hV4+f9WrH9+0otfB7twUFKO2WSpv7tHg258OxudbEW6Cx51bW6ftkG/XHVVq0vKFV9Q/N3CSsdDn2cdUhXLFmnl7ftU2feT1ywLVt/WLVF/95zQNuKy1Xj4U3Duvp6bS4q0zOb9ui8z1bpqU17VOvvO6E4rgXGxqrvb29XryuvVmjfjBbPU9agIMVMmqx+v79XPc7+WaeepxJnnK3eV16j2JOnKLhXb1nsnhW9sNhsCklLV9L5F2rQg/OV8vNZsgYEdPBsAQDtIbekWhe/sELX/3OtVu8tVH0La6LyGofeXZ2ts55YqscW71ALS8ROERJg09kjzA+kv73K++xKQHsIiIlV+i23q+fcaxTiwZoveuJkZdz9JyXOPLdT13zx089W6q+vVczJp3q15pPNpuC0dCWed6EGPDBfSRey5gOA7owylwA6XVZWlu6//349+OCDyszM1IQJEzRkyBClp6crOjpawcHBqq6u1v79+7VmzRq9++67piCwqVOnKiPDs+wSp556qpYsWaJ9+/bpvPPO06xZszRt2jSlpaUpMDBQubm5+uabb/T6668bys9JRzJk3XDDDS2O/+STT2rJkiWGNrvdrrS0ND3xxBMezdHV0KFDddZZZ7W6X0JCgm677Tb95S9/aWzLzc3VxRdfrEsuuUQzZsxQamqqKisrtW3bNr3xxhtatmyZYYzo6GifMh5NmDBBVqvVbaa5CRMmtNp/0qRJWrhwodvXWspqhmNiYmL0zDPP6Be/+IUqK49kSairq9NDDz2kV155Reeff77Gjh2rPn36NAZRlZWV6fDhw9q+fbs2b96spUuXepS176jp06cbsgQuW7ZMp5xyiiZMmKCkpCQFBhrLHZ166qnKzMxsh3d7xKBBg3TTTTfp4YcfbmyrqqrSgw8+qKeeekoTJ05UUlKSnE6ncnJy9P333zcGu1ksFt199926/fbb220+3kpPT2/8m3TUt99+q3PPPVdXXnmlJkyYoJiYGFVUVGjv3r1asmSJ3nnnncZ/32nTpumzzz7z1/ThA4vForPOmqyzzpqsgoJirV+/Q/uzD6m8okp2m1XRMZHKyEjVsGH9FBjYtosri796oZ1mfUR0dIRuvPGXmjfvF9qxfZ+2bd+rvLxC1dTUKSQ4SEnJ8Ro8uI/S01Pa5Xg3zLtEN8zzU7p+/CRYLBalTsxU6sRMVZeUqWjXXlXkHZajqloWm1WBEeGKTElSTEaarJ5eKG3G9Mfvb6dZe27IhWdryIVnt74j0I6+OnBYXx04rOjAAA2JCVdKWLDC7HY5GxpUXFOnrPJKbSkql6ONdxIv+mK1T/1K6xxacqBASw4cyQRrs0gpYSFKCglSYkiQwuw2Bdutqm+QyuscKqtz6FBljbaXlBM8hk5nsVgUnTlO0Znj5CgtVWXWHtXmH1Z9dZVks8keFq6g5GSFpKW3+Tw16IG/+dTPHh6uqMyxisocK0lqcDpVm5+v2sIC1RUXqb6qSvW1tZLVKltwiGyhoQqIjVVI7zRuJKLbGzT5Rn9PAfCrjzfk6uMNuYoLC9TIXtHqHRuq8CC7nPUNKqyo1c78cq3fX6w6Z9vWUCf+fUnrO3moqs6p4X/+vN3GA9qDxWJRVOY4RWWOk6OsVFV796j2cL7qq49cm7CFhSsoKVkhaX08D+JqRv+/PORTP3t4uCLHjFXkmCZrvsP5qissUF1RkeqrK1VfWyuL1SprcIhsoWEKiI1VcC/WfABwPCGYDIDfOJ1OrVy50qMSdU316dNH9913n8f733bbbcrLy9OmTZtUU1Oj1157Ta+99lqr/RITE/XCCy+Yyvq5alou8iiHw6HXX3/d4zm6Ov/88z0KJpOkyy67TDt37jSU8KuoqNA//vEP/eMf/2ixb3BwsJ588kmlpHgfCBAVFaXBgwdr06ZNptc8CQZrbh+r1epRMBqOGDRokF555RXNmzdPeXl5je15eXl6/vnn9fzzz7fr8S666CK98cYbysnJaWwrLi5uNsApPj6+XYPJJOnqq69WeXm56b2VlZXpiy++aLbf7bffrilTppjaAzr5C+69996r1atXq6ysrLFtz549uueee1rsN2PGDF155ZUEk3VjcXHROvXUcf6ehtcsFosGDEzTgIFp/p4K0G6CoyKUPGa4v6cBHDeKa+u0/FCRv6fRKmeDlF1epezyKn9PBWiRPTJSkcNH+nsarbLYbApKSlJQUpK/pwIA6CQFFbX6amte6zsCaJU9IlIR3WXN1yNJQT1Y8wHATwn1OgB0qrYGbUyZMkVvvfWW4uLiPO4THBysf/zjHxo9erTHffr376/XXntNaWnd48b5vffeq3nz5nlVUjM5OVmvvfaaxo8f7/NxmytH6UkwWXJystLT003tgwcPVlRUlM9z+ikaNWqUPvjgA02dOrXFMnqtGT16tMLCwlrcJyIiQi+88IL69evn83Haw6233qpHHnlE8fHxre4bGxurxx57THPnzlVFRYXhNbvdbigV2xmSk5P1yiuveFVyc9asWZo/f77fSx8CAAAAAAAAAAAcL6yW4/8H8AWZyQB0qt/97neaPn26vvnmG61cuVIbN25sLN/WnKCgIJ1yyim65JJLNHnyZJ+OGxMTozfffFNvvvmmXnnlFR04cMDtfikpKbrkkks0d+7cTs9W1BYWi0U33HCDpk6dqmeffVaLFy9WXV2d230TEhJ0ySWXaM6cOa0GDrVm0qRJeumllwxt6enpSk5O9rj/3r17TW3wXnx8vJ5++mlt3bpVCxYs0LJly0xlW10FBARo9OjROuGEEzR9+nT16dPHo2P169dPH374ob755hstXrxY27ZtU25urioqKlRTU9Meb8cjM2fO1CmnnKLPP/9cn3/+uXbt2qX8/Hw5HA7FxcVp0KBBmjJlis4991yFhoZKkkpLSw1jhIeHd9p8mxo+fLgWLlyop556Sh999FFjKU5XI0aM0Lx583TyySd38gwBAAAAAAAAAAAA/BRZGhoa2lbAHADawOFwKCsrS1lZWTp48KDKy8vldDoVGhqqqKgo9evXT/3792+11GRTAwcONGwvXrxYqampjdsNDQ3aunWrtmzZosOHD0s6UtKyb9++Gj58eJsyO3UV5eXlWrdunbKyslRWViabzdYYXDNkyJDj4j2idbt27dLOnTtVVFSkkpISWSwWhYWFKT4+Xn379lVaWpoCAwP9Pc1O9Z///Ee/+93vGrcHDBighQsX+nFGUk1NjVavXq3s7GwVFxfLZrMpOTlZI0eOVK9evfw6t45Q37DZ31MAjhv3rMn19xSA48r/cjz/zgGgZUkR9f6eAnBc+Xj2s/6eAnDc6HHpZf6eAnBcGX16pL+nABxXPph6kr+n8JPz5ObP/T2FDjdvyJn+ngK6ITKTAfAru92ujIwMZWRkdNoxLRaLBg8erMGDB3faMTtbeHi4TjrpJJ10EovOn7LO/mx1B2vXrjVsDx061E8zOSYoKMjnrIsAAAAAAAAAAAAA0J4IJgMAAD8JVVVV+vjjjw1tw4cP99NsAAAAAAAAAAAA4E82f08A6KKs/p4AAABAZ3j22WdVWlrauG232zV16lQ/zggAAAAAAAAAAAAAuhaCyQAAQLeSlZWlnTt3etXnww8/1IsvvmhomzJlinr06NGeUwMAAAAAAAAAAACAbo1gMgAA0K3s3r1b55xzjm688UZ9/fXXcjgcze6blZWlu+66S3fccYfq6+sb2wMCAjRv3rzOmC4AAAAAAAAAAAAAdBt2f08AAADAW/X19frss8/02WefKSQkRIMHD1Z6eroiIyPlcDhUXFysjRs3au/evW7733rrrRo0aFDnThoAAAAAAAAAAAAAujiCyQAAQLdWVVWltWvXau3ata3ua7FY9Nvf/lZz587thJkBAAAAAAAAAACgq7Ja/D0DoGsimAwAAHQrCQkJSkpK0sGDB73qN2rUKN18882aNGlSB80MAAAAAAAAAAAAALo3gskAAEC3MmzYMH399dfasGGDVq5cqfXr1ys7O1uHDh1SRUWF6urqFBYWpujoaKWkpGjcuHE64YQTNGbMGH9PHQAAAAAAAAAAAAC6NILJABx3tm3b5u8pAOhgFotFI0aM0IgRI/w9FQAAAAAAAAAAAAA4bhBMBgAAAAAAAAAAAAAAgJ8Uq6XB31MAuiSrvycAAAAAAAAAAAAAAAAAAPA/gskAAAAAAAAAAAAAAAAAAASTAQAAAAAAAAAAAAAAAAAku78nAAAAAAAAAAAAAAAAAHQmm8XfMwC6JjKTAQAAAAAAAAAAAAAAAAAIJgMAAAAAAAAAAAAAAAAAEEwGAAAAAAAAAAAAAAAAABDBZAAAAAAAAAAAAAAAAAAASXZ/TwAAAAAAAAAAAAAAAADoTFaLv2cAdE1kJgMAAAAAAAAAAAAAAAAAEEwGAAAAAAAAAAAAAAAAACCYDAAAAAAAAAAAAAAAAAAgye7vCQAAAAAAAAAAAAAAAACdyWrx9wyAronMZAAAAAAAAAAAAAAAAAAAgskAAAAAAAAAAAAAAAAAAASTAQAAAAAAAAAAAAAAAABEMBkAAAAAAAAAAAAAAAAAQJLd3xMAAAAAAAAAAAAAAAAAOpPV4u8ZAF0TmckAAAAAAAAAAAAAAAAAAASTAQAAAAAAAAAAAAAAAAAIJgMAAAAAAAAAAAAAAAAASLL7ewIAAAAAAAAAAAAAAABAZ7JZGvw9BaBLIjMZAAAAAAAAAAAAAAAAAIBgMgAAAAAAAAAAAAAAAAAAwWQAAAAAAAAAAAAAAAAAAEl2f08AAAAAAAAAAAAAAAAA6ExkXwLc47MBAAAAAAAAAAAAAAAAACCYDAAAAAAAAAAAAAAAAABAMBkAAAAAAAAAAAAAAAAAQASTAQAAAAAAAAAAAAAAAAAk2f09AQAAAAAAAAAAAAAAAKAzWS3+ngHQNZGZDAAAAAAAAAAAAAAAAABAMBkAAAAAAAAAAAAAAAAAgGAyAAAAAAAAAAAAAAAAAIAku78nAAAAAAAAAAAAAAAAAHQmq8XfMwC6JjKTAQAAAAAAAAAAAAAAAAAIJgMAAAAAAAAAAAAAAAAAEEwGAAAAAAAAAAAAAAAAABDBZAAAAAAAAAAAAAAAAAAASXZ/TwAAAAAAAAAAAAAAAADoTDZLg7+nAHRJZCYDAAAAAAAAAAAAAAAAABBMBgAAAAAAAAAAAAAAAAAgmAwAAAAAAAAAAAAAAAAAIMnu7wkAAAAAAAAAAAAAAAAAnclq8fcMgK6JzGQAAAAAAAAAAAAAAAAAAILJAAAAAAAAAAAAAAAAAAAEkwEAAAAAAAAAAAAAAAAARDAZAAAAAAAAAAAAAAAAAECS3d8TAAAAAAAAAAAAAAAAADqT1eLvGQBdE5nJAAAAAAAAAAAAAAAAAABkJgMAAEDncTbU+nsKwHGjvsHfMwCOLyUlfKiA9hIXxqPdQHv6f+zdd3gU5doG8HtL2qb3npCEnhAg1KjYKCqoCAh4VJRmr6hHFPWzw0GOFaXpUSwcEcQCUpQqLdTQIQmQkN6TTU+25fuDQ5LZmSS7m2w2kPt3XV6X+2bKm5DN7Mzc8zz+Dzxo6ykQXTPyV/1g6ykQXVOK4p+y9RSIiIjICliZjIiIiIiIiIiIiIiIiIiIiIiIiFiZjIiIiIiIiIiIiIiIiIiIiIi6FjkLaxNJYmUyIiIiIiIiIiIiIiIiIiIiIiIiYpiMiIiIiIiIiIiIiIiIiIiIiIiIGCYjIiIiIiIiIiIiIiIiIiIiIiIiAEpbT4CIiIiIiIiIiIiIiIiIiIiIqCMpZLaeAVHnxMpkRERERERERERERERERERERERExDAZERERERERERERERERERERERERMUxGREREREREREREREREREREREREYJiMiIiIiIiIiIiIiIiIiIiIiIiIAChtPQEiIiIiIiIiIiIiIiIiIiIioo4kl9XbegpEnRIrkxERERERERERERERERERERERERHDZERERERERERERERERERERERERMQwGREREREREREREREREREREREREQFQ2noCREREREREREREREREREREREQdidWXiKTxvUFEREREREREREREREREREREREQMkxERERERERERERERERERERERERHDZERERERERERERERERERERERERASGyYiIiIiIiIiIiIiIiIiIiIiIiAiA0tYTICIiIiIiIiIiIiIiIiIiIiLqSHKZrWdA1DmxMhkRERERERERERERERERERERERExTEZEREREREREREREREREREREREQMkxEREREREREREREREREREREREREApa0nQERERERERERERERERERERETUkRQyW8+AqHNiZTIiIiIiIiIiIiIiIiIiIiIiIiJimIyIiIiIiIiIiIiIiIiIiIiIiIgYJiMiIiIiIiIiIiIiIiIiIiIiIiIwTEZEREREREREREREREREREREREQAlLaeABERERERERERERERERERERFRR5LL6m09BaJOiZXJiIiIiIiIiIiIiIiIiIiIiIiIiGEyIiIiIiIiIiIiIiIiIiIiIiIiYpiMiIiIiIiIiIiIiIiIiIiIiIiIAChtPQEiIiIiIiIiIiIiIiIiIiIioo4kl9l6BkSdEyuTEREREREREREREREREREREREREcNkRERERERERERERERERERERERExDAZERERERERERERERERERERERERAVDaegJERERERERERERERERERERERB1JLrP1DIg6J1YmIyIiIiIiIiIiIiIiIiIiIiIiIobJiIiIiIiIiIiIiIiIiIiIiIiIiGEyIiIiIiIiIiIiIiIiIiIiIiIiAsNkREREREREREREREREREREREREBEBp6wkQEREREREREREREREREREREXUkVl8iksb3BhERERERERERERERERERERERETFMRkRERERERERERERERERERERERAyTEREREREREREREREREREREREREQClrSdARERERERERERERERERERERNSRZDJbz4Coc2JlMiIiIiIiIiIiIiIiIiIiIiIiImKYjIiIiIiIiIiIiIiIiIiIiIiIiBgmIyIiIiIiIiIiIiIiIiIiIiIiIjBMRkRERERERERERERERERERERERACUtp4AEREREREREREREREREREREVFHktl6AkSdFCuTEREREREREREREREREREREREREcNkRERERERERERERERERERERERExDAZERERERERERERERERERERERERAVDaegJERERERERERERERERERERERB1JJrP1DIg6J1YmIyIiIiIiIiIiIiIiIiIiIiIiIobJiIiIiIiIiIiIiIiIiIiIiIiIiG0uiYiIiIg6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Li4GGg0REREREREREREREREREREREVH1YTJZOW7fvo2srKzibYVCgaZNmxpwRERERERERERERERERERERERERNWDyWRlyMnJweLFiwVtgYGBUCgUBhoRERERERERERERERERERERERFR9ZEbegC1yfr165GamoqEhAScP38eqampgsdfe+01A42MiIiIiIiIiIiIiIiIiIiIiKqOzNADIKqVmExWwq5duxAbGyv52PPPP4/evXvX8IiIiIiIiIiIiIiIiIiIiIiIiIhqBpe51ELHjh2xevVqyGTMSiUiIiIiIiIiIiIiIiIiIiIioqcTK5NJsLS0hIODA1q3bo0+ffqga9euhh4SERERERERERERERERERERERFRtWIyWQknTpww9BCIiIiIiIiIiIiIiIiIiIiIiIgMgslkRERERERERERERERERERERPRMkclkhh4CUa1kZOgBEBERERERERERERERERERERERkeExmYyIiIiIiIiIiIiIiIiIiIiIiIiYTEZERERERERERERERERERERERESA3NADICIiIiIiIiIiIiIiIiIiIiKqWTJDD4CoVmJlMiIiIiIiIiIiIiIiIiIiIiIiImIyGRERERERERERERERERERERERETGZjIiIiIiIiIiIiIiIiIiIiIiIiMBkMiIiIiIiIiIiIiIiIiIiIiIiIgIgN/QAiIiIiIiIiIiIiIiIiIiIiIhqkoz1l4gkMTKIiIiIiIiIiIiIiIiIiIiIiIiIyWRERERERERERERERERERERERETEZDIiIiIiIiIiIiIiIiIiIiIiIiICIDf0AIiIiIiIiIiIiIiIiIiIiIiIapbM0AMgqpVYmYyIiIiIiIiIiIiIiIiIiIiIiIiYTEZERERERERERERERERERERERERMJiMiIiIiIiIiIiIiIiIiIiIiIiIwmYyIiIiIiIiIiIiIiIiIiIiIiIgAyA09ACIiIiIiIiIiIiIiIiIiIiKimiSDzNBDIKqVWJmMiIiIiIiIiIiIiIiIiIiIiIiImExGRERERERERERERERERERERERETCYjIiIiIiIiIiIiIiIiIiIiIiIiAHJDD4CIiIiIiIiIiIiIiIiIiIiIqCbJZDJDD4GoVmJlMiIiIiIiIiIiIiIiIiIiIiIiImIyGRERERERERERERERERERERERETGZjIiIiIiIiIiIiIiIiIiIiIiIiADIDT0AIiIiIiIiIiIiIiIiIiIiIqKaxfpLRFIYGURERERERERERERERERERERERMRkMiIiIiIiIiIiIiIiIiIiIiIiImIyGREREREREREREREREREREREREYHJZERERERERERERERERERERERERARAbugBEBERERERERERERERERERERHVJBlkhh4CUa3EymRERERERERERERERERERERERETEZDIiIiIiIiIiIiIiIiIiIiIiIiLiMpdERERERERERERERERERERERFRLJSQk4MaNG3j48CFycnJgZmYGV1dXtGzZEo0aNTL08ETu3buH0NBQJCYmQqVSwdLSEo0bN4a/vz9sbW0NPbwKMZmMiIiIiIiIiIiIiIiIiIiIiJ4xMkMPgCpw4sQJfPvttwgODkZRUZHkPl5eXhg3bhz69+8Pmcxwf9OCggLs3LkT27ZtQ0xMjOQ+xsbG6NixIyZOnIiAgIAaHqH2ZEVl/baJiIiIiKpYRsExQw+B6KnRe7+5oYdA9FR59KjQ0EMgemr4tjAy9BCIniqMKKKqk5TDL4yJqtLVoG8MPQSip0puzE5DD+GZoykKM/QQqp2RzNvQQ9BLdnY2Zs+ejSNHjmjdJzAwEMuWLYODg0M1jkxaVFQUpk6divDwcK37jBw5Eh988AEUCkU1jkw/nIcSEREREREREREREREREREREZHBZWdnY9y4cTolkgHAlStXMHz4cCQmJlbTyKTdu3cPQ4cO1SmRDAC2b9+OadOmQa1WV9PI9MdkMiIiIiIiIiIiIiIiIiIiIiIiMrg5c+YgJCRE0Fa/fn3MmTMHv/32G/744w8cPHgQ//vf/+Dh4SHYLzo6GlOnTq2xBK2srCxMmjQJqampgnY/Pz8sW7YMR48exeXLl7F3714EBQXB1tZWsN/vv/+OpUuX1shYdcFkMiIiIiIi+n/27ju+iir///j7lvSE3gIGQhFCSQFZelGKoEhRdPGr666461pWXb/2sruyurrrqmv9qmBBV2zYAFF6VTokIaGEkEACJCaENNJv/f2R34y5IUCChCC+no8HD5mTmXPP4JzM3HM+cz4AAAAAAAAAAABNavXq1Vq6dKlP2aBBg7Ro0SL97ne/U8+ePdWsWTN1795d1113nRYsWKCJEyf67J+QkKBPPvnknLT3tdde06FDh3zK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xWLh4sWLZGdn8/zzz6trfVsSExNJS0sDmudnampq2L59+w21GxQUxF133eXz2kcffQS0nh9pizHO+n//7/+Rm5vLkiVLiIuL69IYTgghhBBCCHH7kLzEQgghxG3E2IUaERFBamoqx48fByAjI4ORI0d2msnH4/FgsVjUBKURwNKZq1ev8sYbb6BpGrquo2kav/zlL31KOrZF0zTcbjcxMTE88cQTrF27FpfLhaZpfPXVVxw/fpzU1NRW5/Xo0YNx48ZRVFSkXvvrX//KokWLulyWwWw2c+bMGUpKStA0DafTiaZparduWxO9Xq+X7t278/LLL3PkyBFOnjzJgQMH8Hq9JCUlERkZSWxsLAkJCYSFhanzJHjsu6srJRtvNuOZqq6uZv369Xz00UfExsby3HPPERoa2uZOeeMeNYLJ3G43FotFLRTczHtM13WsViuZmZls27ZNZeIrKCjg66+/9glU7UxSUhLp6enk5eWhaRpXr15ly5YtpKend+l8r9dLQEAAW7du9cms+G2WpxFCCCGEEEK0rba2ltLSUvr376/GJN8m4+9+Y+z02muvtbkBLCgoiGHDhtG7d28uX76M2+0mNzdXBZY5nU5WrFhBUlIS995777fW3549ezJ06FByc3PRdR2Xy0VeXh7V1dWtMpZ35O6772bFihU0NTVhNps5duwY58+fVxnOOhrDGuNNY+Ocke39Hz3uFUIIIYQQQny3STCZEEIIcZvxer1omsacOXNITU1l6tSpdO/evUvnGhPBO3bs4I033iAsLIyXCQejwwAAIABJREFUX3650/Py8vKoqqoCmgPQfvjDHzJ06NA2JzlblvZrOaHpcDiIjIykvLxclcRbtWoVbVXsttvtjBkzhpUrV+JyubBYLJw7d47169czY8aMTgPgjH5dvnyZy5cvA83BZX5+fvTo0aPd81p+lvT0dNLT07nvvvs6/X7Ed9f19+c/IrisuLiY3/3ud2zbtk29VlBQwJAhQ1i0aFG7iws2mw23262CNhsbG9Xu8m+j32lpaSQkJKhgstLSUr766ismTZrU5UCuyMhIRo0aRV5enipNY+yO7yy4Fa79foxAMlkIEUIIIYQQ4h9v48aNrFu3jpycHBITE/n000+/9UAyuLZh7oMPPuCvf/0rlZWVPu+NHTuW+++/nxEjRuDv74/L5SIgIACAkydPsmLF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18u2bS8IFggE1NzcrNdee02vvfaawuGwGhsb2x1v27ZGjRql22+/XcOHDydIBgAAAAAfMlalAABAh9yHwcOGDVNmZqbXvs+yLG3btk1XX321evbseTGHiI+Ruro67du3T0eOHFF1dbX2798vy7I0ceJEDR8+XOPHj5d09lYtneV+LxcuXKhnn31WlmVJkqqqqlRaWqrLLrsspkVLZ8/Xp08fffGLX9Tvf/97nT59Wj6fT83NzXr88ceVnp7utVHpaKEkEAjo+PHjeumllyTJC6PddNNN7/s+3bFRiQwAAADo3tw5Rr9+/RQIBLyNJPv27dOOHTs0bty4dnMod5PN/Pnz9cADD3jzhhdffFG33HKL4uLi2l0jISFBoVBIjuN41ZjXr18vKTZAFhcXp6FDh2rMmDHKzs5Wdna20tPTFQ6HY87nHteZOYtpmpo4caIGDBig6upqGYahhIQEXXXVVZKkZ599VpLaBcni4uI0evRoXXHFFVq4cKEXrGOeBAAAAAAfLvOee+6552IPAgAAfDxZliWfz6eGhgZt3LhRtm3LcRxFIhF95jOfUXx8/MUeIj4GSktL9cwzz2jVqlX6wx/+oHXr1mn79u0qLy/XunXr9MILL+jVV19VamqqhgwZ8oGu5e4+HzRokNasWaPa2loFAgFZlqVQKKTs7GwlJSV1utWly7Zt9erVS8FgUDt37lR9fb1CoZCi0ajeeust2batCRMmdHjOyspKfe9731NxcbHXfmXYsGG644471KNHjw90vwAAAAC6N3eOkZSUpLKyMlVUVMhxHNm2rZ49e2rChAnq0aNHzBzHDXENHTpU//d//+fN3U+cOKFp06a1m3e5lbwaGhq0bt06b97i8vv9GjJkiCZPnqw5c+ZowYIFmjt3ri699FINGDDA27DjjuG9IbK24bKziYuL04EDB7Rz5075/X41NTVpxIgRuv/++5WTk6NoNKq+ffuqsbFREyZM0MyZMzV79mzNnz9fl19+uRITE2XbNkEyAAAAAPgIUJkMAACclRvcyc/P99pmGIahiooK1dXVqV+/fl0O7eCTqW1FMffv3LIsPfPMM3rqqad08ODBmM8Hg0FFo1EZhqGmpiZt2bJFX/rSl3T77bdr/vz5Gjx48PtuTeLuwp87d67+53/+xzvH7t27VV5ervT09C5/J93P33jjjWpqatJ//dd/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\\n\",\n      \"text/plain\": [\n       \"<Figure size 2400x1500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import pandas as pd\\n\",\n    \"import numpy as np\\n\",\n    \"%matplotlib inline\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib as mpl\\n\",\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import seaborn as sns\\n\",\n    \"\\n\",\n    \"dpi = 300\\n\",\n    \"mpl.rcParams['figure.dpi']= dpi\\n\",\n    \"\\n\",\n    \"sns.set(font=['sans-serif'])\\n\",\n    \"sns.set_style(\\\"whitegrid\\\",{\\\"font.sans-serif\\\":['Microsoft JhengHei']})\\n\",\n    \"\\n\",\n    \"import numpy as np; np.random.seed(0)\\n\",\n    \"import seaborn as sns; sns.set()\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"f, ax = plt.subplots(figsize=(8,5))\\n\",\n    \"#ax = sns.heatmap(cm2, ax=ax,vmin=0, vmax=1,annot=True,fmt ='0.1g', xticklabels=models, yticklabels=models)\\n\",\n    \"#ax = sns.heatmap(cm2,cmap = 'RdBu',ax=ax,vmin=0, vmax=1,annot=True,fmt ='0.1g', xticklabels=models, yticklabels=models)\\n\",\n    \"ax = sns.heatmap(cm2,cmap=\\\"YlGnBu\\\",ax=ax,vmin=0, vmax=1,annot=True,fmt ='0.1g', xticklabels=models, yticklabels=models)\\n\",\n    \"#设置坐标字体方向\\n\",\n    \"label_y = ax.get_yticklabels()\\n\",\n    \"plt.setp(label_y, rotation=0, horizontalalignment='right')\\n\",\n    \"label_x = ax.get_xticklabels()\\n\",\n    \"plt.setp(label_x, rotation=20, horizontalalignment='right')\\n\",\n    \"plt.title('Model Correlation')#标题\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 82,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"seg_methods = ['char', 'jieba', 'sp1w', 'sp10w', 'sp20w']\\n\",\n    \"vocab_sizes = [6797, 144298, 12611, 100850, 198057]\\n\",\n    \"min_lens = [19, 12, 8, 7, 7]\\n\",\n    \"max_lens = [2003, 1365, 1702, 1287, 1212]\\n\",\n    \"mean_lens = [344.661, 225.6477, 217.9499, 166.4245, 156.068]\\n\",\n    \"unks_perdoc = [0.042, 1.353, 0.0304, 0.0308, 0.016019]\\n\",\n    \"unks_perdoc_testb = [0.074, 1.7338, 0.280565, 0.280895, 0.052255]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"7f11ad1f86954d50bf3a6bae39adf5dc\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_7f11ad1f86954d50bf3a6bae39adf5dc = echarts.init(document.getElementById('7f11ad1f86954d50bf3a6bae39adf5dc'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_7f11ad1f86954d50bf3a6bae39adf5dc = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u6587\\\\u672c\\\\u957f\\\\u5ea6\\\\u7edf\\\\u8ba1\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 3165977,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"min\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                19,\\n\",\n       \"                12,\\n\",\n       \"                8,\\n\",\n       \"                7,\\n\",\n       \"                7\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 3165977\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"max\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                2003,\\n\",\n       \"                1365,\\n\",\n       \"                1702,\\n\",\n       \"                1287,\\n\",\n       \"                1212\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 3165977\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"mean\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                344.661,\\n\",\n       \"                225.6477,\\n\",\n       \"                217.9499,\\n\",\n       \"                166.4245,\\n\",\n       \"                156.068\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 3165977\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"min\\\",\\n\",\n       \"                \\\"max\\\",\\n\",\n       \"                \\\"mean\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"char\\\",\\n\",\n       \"                \\\"jieba\\\",\\n\",\n       \"                \\\"sp1w\\\",\\n\",\n       \"                \\\"sp10w\\\",\\n\",\n       \"                \\\"sp20w\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_7f11ad1f86954d50bf3a6bae39adf5dc.setOption(option_7f11ad1f86954d50bf3a6bae39adf5dc);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f619f2db7b8>\"\n      ]\n     },\n     \"execution_count\": 78,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('文本长度统计', title_text_size=36)\\n\",\n    \"\\n\",\n    \"#for i, method in enumerate(seg_methods):\\n\",\n    \"bar.add('min', seg_methods, min_lens, xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar.add('max', seg_methods, max_lens, xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar.add('mean', seg_methods, mean_lens, xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 83,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"5441c3d771a34aecbd374fc153b355e7\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_5441c3d771a34aecbd374fc153b355e7 = echarts.init(document.getElementById('5441c3d771a34aecbd374fc153b355e7'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_5441c3d771a34aecbd374fc153b355e7 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u8bcd\\\\u6c47\\\\u91cf\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 521352,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"vocab_size\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                6797,\\n\",\n       \"                144298,\\n\",\n       \"                12611,\\n\",\n       \"                100850,\\n\",\n       \"                198057\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 521352\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"vocab_size\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"char\\\",\\n\",\n       \"                \\\"jieba\\\",\\n\",\n       \"                \\\"sp1w\\\",\\n\",\n       \"                \\\"sp10w\\\",\\n\",\n       \"                \\\"sp20w\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_5441c3d771a34aecbd374fc153b355e7.setOption(option_5441c3d771a34aecbd374fc153b355e7);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61c805e588>\"\n      ]\n     },\n     \"execution_count\": 83,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('词汇量', title_text_size=36)\\n\",\n    \"\\n\",\n    \"#for i, method in enumerate(seg_methods):\\n\",\n    \"bar.add('vocab_size', seg_methods, vocab_sizes, xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 85,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"db38f6ceda5c484788f849a9fcaf6bbb\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_db38f6ceda5c484788f849a9fcaf6bbb = echarts.init(document.getElementById('db38f6ceda5c484788f849a9fcaf6bbb'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_db38f6ceda5c484788f849a9fcaf6bbb = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"\\\\u672a\\\\u767b\\\\u5f55\\\\u8bcd\\\",\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 36\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 3040478,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"unks_perdoc\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                0.042,\\n\",\n       \"                1.353,\\n\",\n       \"                0.0304,\\n\",\n       \"                0.0308,\\n\",\n       \"                0.016019\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 3040478\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"bar\\\",\\n\",\n       \"            \\\"name\\\": \\\"unks_perdoc_testb\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                0.074,\\n\",\n       \"                1.7338,\\n\",\n       \"                0.280565,\\n\",\n       \"                0.280895,\\n\",\n       \"                0.052255\\n\",\n       \"            ],\\n\",\n       \"            \\\"barCategoryGap\\\": \\\"20%\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 3040478\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"unks_perdoc\\\",\\n\",\n       \"                \\\"unks_perdoc_testb\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 25\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 30\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"char\\\",\\n\",\n       \"                \\\"jieba\\\",\\n\",\n       \"                \\\"sp1w\\\",\\n\",\n       \"                \\\"sp10w\\\",\\n\",\n       \"                \\\"sp20w\\\"\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_db38f6ceda5c484788f849a9fcaf6bbb.setOption(option_db38f6ceda5c484788f849a9fcaf6bbb);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.bar.Bar at 0x7f61c8406ef0>\"\n      ]\n     },\n     \"execution_count\": 85,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"bar = Bar('未登录词', title_text_size=36)\\n\",\n    \"\\n\",\n    \"#for i, method in enumerate(seg_methods):\\n\",\n    \"bar.add('unks_perdoc', seg_methods, unks_perdoc, xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar.add('unks_perdoc_testb', seg_methods, unks_perdoc_testb, xaxis_label_textsize=30, legend_text_size=25)\\n\",\n    \"bar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 70,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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OWZBslq1aum7774rMp/IRx99pA8//NCsLDAwUGPGjNGjjz5q84WryWTSt99+q7fffrvgMwoJCdGlS5cK6ngi54vJZNLDDz9s9hJXuhI0euONN9SzZ0+b7U6fPq1XXnmlYCeV5dwlacqUKbrvvvsKHT8tLU333HOPEhMTzcpr1Kih119/Xd26dbPZ7uzZs5o0aZJ+++03q5/997//Ve/evQsdV5JOnDihAQMGWO0EqVy5skaPHq3777+/0GOucnJytGHDBi1YsECHDx92OW+VI5YuXarx48ebla1Zs0a1atUqsq2tXCQNGzbUhAkT1KVLF7v5Py5duqSvvvpK//nPfwoCbZIUHh6u77//vshjGy1zvlz7N7NevXp67bXXdNNNN9lsm5qaqrFjx2rjxo1m5TExMfrpp58KHVe6sq6HDx9uFfytUqWKJk2apNtuu81mu6ysLH3wwQf66quvJNle147kZSnO/bLFMh/UtZ9llSpVNHHiRLuB/KysLL3xxhtavny5WXnFihW1YcMGhYSEuDQnAADgPhw7BgAAAK97++23rQIvL7zwgmbOnFlo4EW68oJq2rRpGj16tFn57t27tXLlSqfncvXFV6NGjfTNN98U+nK/VatW+vrrr63yraSmpjp8ZNPixYv14Ycf6rbbbnMo8CJdCWq9++67Vi8K161bV2gCenf4448/rHauTJo0Sf379y8y8CJJQUFB6tq1q959913NmjWryPqzZ8+2CrwMHTpU8+fPL/TeSFdeQo4bN07/+te/zMrj4+M1f/78QtsmJCRo5syZZmUBAQF677339OSTT9r9prvBYNDgwYM1a9asgtwLli95PeG7776zGXj5+uuv7QZepCtr67PPPtPtt98uyfW5v/fee1aBl1q1amn+/Pl2Ay+SVL16dc2cOVN333231c8mTpzo0HzGjh1rFXhp1KiRFi9erMGDBxeZXyQoKEi9evXSp59+WvCy3tf8+OOPVoGX3r17a9myZeratWuhiddDQkI0YsQIzZw502wdp6enW615R1z9m9myZUstWLDAbuBFuhKYnjFjhlXupaNHj2rr1q1FjvXTTz/ZDLzMnTvXbuBFkkJDQ/Xyyy8XHHHmjWfSEVc/y9q1a2vBggWF7qAMDQ3V1KlTdfPNN5uVZ2RkaNWqVSU6TwAA4BiCLwAAAPCqxMREq3wDQ4YM0RNPPOFUP2PGjFHXrl3Nyhx5uW9LYGCgPvzwQ0VGRhZZNzIyUh9++KHVy/gffvjB7GgfexwNuNjy9NNPq2XLlgXXJpOp2LkbinLq1Cmz65CQEN11110u9VWuXLlCf37x4kXNnj3brKxHjx569dVXC325bKl///66//77zcq+/PJLq+OtrrVgwQKzXQGSNHz48IKgRFE6dOig5557zuE5uputoMG0adNUt27dItv6+/tr2rRpLn+bPzU1Vd99951Vnx999FGRuyqkKwGsKVOmWL2gt9WvpY0bN2rXrl1mZZGRkfr8889dOpLP1c+gJJlMJn388cdmZU2bNtUHH3ygoKAgh/u5+eab9fTTT5uVLV26VCkpKU7PqWLFivrPf/6jiIiIIusGBQXphRdesCq33A1ji62dcm+99Zbq16/v0DydeYa9JTAwUB988IFq1qxZZF2DwWC1E0dy7LMEAAAlj+ALAAAAvGrOnDlmL7nDwsL0/PPPu9TXqFGjzK737dtnM09IUYYNG+bwyzzpypn8w4YNMyvLycmx+ma6uxkMBt1zzz1mZdu3by/RMS1zYVSoUKHInQSuWrJkidLS0gqu/fz89Morr7jU19NPP20WsElKStLOnTtt1s3Pz7cKYkVERFi9qC7K0KFDnVpH7rJ7926rPCC33XZboTsSLIWEhLicr2bx4sUF3+C/6oEHHlCzZs0c7iMgIEATJ060Ki/qmDpbAdeJEyeqatWqDo/t63777TcdOnTIrOzll18uMu+ILcOHDy/IKyVd2Xmxfv16p/t56KGHVKNGDYfr33zzzVbHMtrKXXOtI0eOaNu2bVb9FLaTypbx48c7tEvPW/r166cWLVo4XL9hw4a64YYbzMqK+iwBAIBn+O7/4gAAAMB1wfJ4lL59+xaZi8Oedu3aFSRdv+ra8/QdZblLwhEDBw60KnPlJaazLHcy7N2712rHhjtZfrM9OTlZJ06cKJGxLNdG586dVbt2bZf6io6OttpJYW9tHDlyRElJSWZld955Z5E7dSz5+fkVmRulJNhad66s6V69eqlKlSpOt/v999+tyoYMGeJ0P506dbI60i8uLs4qyfhVmZmZ2rJli1lZzZo1HU7kXlpYPhf16tVTp06dXOorJCREN954o1mZK38zbf39K4y/v79VwODYsWOFtrE8flCSBgwY4NS40pW8Q126dHG6nae48qxeuwNSko4fP+6m2QAAgOIoma+oAQAAAA44ffq01c6Udu3audyfn5+fatSoYZbvYd++fbr33nsd7iMmJkYxMTFOj12/fn01atTI7Bvpe/bsUX5+vlPfss7KytLWrVt18OBBHT58WOfPn1dmZqYuXryo/Px8q/qW+VdycnKUkpLi0PFOrrDMs2IymfTPf/5T//3vf1061smenJwcq+OjirM2pCtHSB08eLDget++fTbr2doR0717d5fG7NGjh959912X2rrK8nMrX768VV4IR/j7+6tnz55asGCBw23y8vK0e/dus7KYmBirIIqj7rjjDqtdHtu3b7d5dNTWrVuVl5dnVnbXXXfJ39/fpbF9lWVwpG3btsXqz/JoNXvPhT116tRRtWrVnB63Tp06ZtcXLlwotL7lc2kwGHTLLbc4Pa4k3XrrrT55NFdISIhatWrldDvLzzIvL09ZWVlmu5oAAIDnEXwBAACA19g6ImvGjBn68ssvXe7z5MmTZtfXHlvlCMtvYzujefPmZi+Ks7KydOzYMTVo0KDItrGxsZo9e7bWrl1b7GTQGRkZJRZ8adasmZo3b272gnbv3r3q06eP+vbtq759+6pz584KCQkp1jixsbFWR1ctWbJEv/zyi8t9JiQkmF3bWxtxcXFWZc2bN3dpzJiYGAUHB1v9LiXJ8sihpk2buhyAcPZ5OHbsmFVA0JkjlCxZfqNfuvL72Qq+7Nixw6qsuAE7X5OYmGgVsN6wYYPV8YPOsNxJ5OzfTEfyCNlime8qMzOz0PqWz2XdunVd3iXpzBF4nlSjRg2Xjo+zlTssMzOT4AsAAF5G8AUAAABec/bsWasyy+BJcZ0/f96p+sXJ0WFrx0xqamqhwRej0agpU6Zo/vz5Nne2uKKob5AX16RJkzRs2DCzhPWXL1/W8uXLtXz5cgUGBqply5Zq06aNWrVqpY4dO6py5cpOjWFrbSQkJFgFUIrD3tqwLA8MDHQ5Z0hAQICio6M9dgyQyWSyennu7jVdGFsv7h0JPtpjq6294ICtRPGWR82VdomJiVZlycnJdo9ic4WzfzPDw8NdGscyV1Rubm6h9S3nZbljxxnFaVuS3PVZSirR4ycBAIBjCL4AAADAa5x9yecKZ3cc2PoGcXHaXnsEmiWj0ahnn31Wa9ascXlMW4p6iVlcbdq00SeffKLnnnvO5otwo9Go7du3m+1satCggfr06aO77rrLoRf63lwblvesOGtCksvfzndFZmamVRDP3Wu6MOnp6cXu41q2XkbbGsNeuWUOqNLO2V0prnD2b6YrOzVcYflcFue5Ku4zXVI89VkCAADPIPgCAAAAryksMOEtziZVL6ptVlaW3fqzZs2yGXipVq2aevXqpbZt26pOnTqqXr26QkNDFRwcrKCgILO6f/31lx566CGX5+yqLl26aOXKlfr888+1cOHCIl8KHzlyRB9//LFmzJih22+/XWPHjlXt2rXt1vfm2rh2R49U/BeilvesJNlab+5e086OX758ebeOb++ZsnVsVXHG9kW++DfTU9z5XHrymQQAANcvgi8AAADwmuDgYKuyWbNmqVu3bl6YzRUXL150a1t7Z+6npKTo008/NSsLCAjQ2LFj9eCDD9o8RsaW4uaHKY6IiAg999xzeuaZZ/THH39o06ZN2rp1q/bv32/3yBuTyaRVq1bp999/1wcffGA3YbatnDGvvfaaBg8e7NbfwRbLb8UXFkBzRFG5LNzJ1npz95p2dnzLHDDFHd/eM2VrJ0R2dnaZynth67l44okn9MILL3hhNp4VFhZmtiOuOM+lJ59JAABw/SL4AgAAAK+JjIy0KrN3pJCnFCdfiq229o49Wrt2rdWL5RdeeEGPPPKIU2N6+/OSrgSNbrnlloJASk5Ojnbv3q3t27drw4YN2r59u9VRaJmZmXrmmWe0dOlSmzlJIiIirMo89bta3rOsrCzl5OS4/G15TxyhdlVYWJj8/PzMjh5z95oujK1jwoozvq2dHvbyYthaMxkZGWUq+OKLfzM9JTw83OxZKs5z5clnEgAAXL/8vD0BAAAAXL9sJWE/c+aMF2byf4qTGP3YsWNWZZUqVbJZ9/fffze7Dg8P14MPPuj0mKdOnXK6TUkLCgpShw4dNGLECM2dO1cbN27UCy+8YBXUyM7O1vTp02324c21Ub16dbNrk8mkw4cPu9RXWlqazp07545pOcRgMFi9oLe1Lh119OhRp+rbWu9HjhxxeXxbn7utAIRke80cPHjQ5bF9UVRUlFWZt/9meorlc+nqMymVvXUBAAB8E8EXAAAAeE3r1q2tyrZs2eKFmfyfvXv3uq1taGiozV0dknT27Fmz61atWrmUw2Dnzp1Ot/G0yMhIPfHEE1qwYIHVLoTffvvNKpeDJLVo0UJ+fub/74qn1karVq2sylz9nHft2lXc6TjthhtuMLs+cOCA8vLyXOrL2eehXr16VnlWYmNjXRpbkvbs2WNV1qJFC5t127RpY1W2fft2l8f2RXXr1rXa4bN9+3aX729pYvlcZmRkuBzYKw1/NwEAQOlH8AUAAABe06RJE6tvcm/durXI5O0l6ciRIy7tFDh27JgOHTpkVtayZUurAMJVlr+jvaOUCpOamqq//vrL6XbeEhMTowEDBpiVXbx4USdPnrSqGxERYRVEOHr0aLG+7e6o1q1by2AwmJWtWLHCpb5++OEHd0zJKZZBzezsbKudVo7Iy8vT2rVrnWrj7+9v9ZL86NGjVs+Go1atWmVV1rZtW5t127dvb5UracWKFWUqMOHn56fOnTublWVnZ2vjxo1empHn2AquufJ85efn68cff3RpDv7+/jb7AwAAsIXgCwAAALzGYDCoZ8+eZmUXL17UV1995aUZXbFw4UK3tOnWrZvd+uXKlTO7diUHwTfffKPLly873c6bYmJirMrs5QTp1auXVdmnn37q9jlZCg8PV9euXc3Ktm3bph07djjVz8mTJ7V69Wp3Ts0httbdokWLnO7n119/VVJSktPtbr75Zquyb7/91ul+tm7dqri4OLOyJk2a2DxeTLqS78YyMHH69Gn99NNPTo/ty7z1XHjbzTffbBWkXrRokdM5hVasWGG189BRtvIHZWdnu9QXAAAo+wi+AAAAwKtGjBhh9W31WbNmeeW4pqvmzZunEydOOFz/xIkTmjdvnllZUFCQ7r33XrttqlSpYna9fft2p17iHTp0SJ988onD9X2FrZf59vLiPPjgg1Z5Yr7//nv9/PPPJTK3aw0ePNiqbNKkSbp48aJD7XNzc/Xqq6/aPFKtpLVq1cpq19Dq1av1559/OtzH5cuX9e9//9ul8fv376/g4GCzsm+//VYHDhxwuI/c3Fy9+eabVuXDhg0rtN0TTzxhVTZ58mSP5t0paXfeeafq1q1rVrZ161bNmTPHOxPykJCQEP397383K0tOTtbUqVMd7iMpKcnldS3Z3qHoi3m3AACAbyD4AgAAAK+qU6eO7rvvPrMyo9GoUaNGuZyvIS8vT//73//0/vvvu9Q+JydHo0ePVnp6epF109PTNXr0aKuX7P369bMbVJCkDh06mF1nZ2fro48+cmh+8fHxeuqpp7zyYn/OnDkuHWElSZmZmVq2bJlZWcWKFVWjRg2b9StUqKDHHnvMrMxkMunFF1/UL7/84tIcJGndunWaNGlSoXVuvfVWqwDGwYMHNXLkyCK/aX/58mWNHTtWf/zxh8tzLK6HHnrIqmzs2LEOvSjOy8vTiy++aPM4OEdUqlTJ6iV5bm6unnnmGYeCICaTSa+88opVsCYqKkp33313oW07d+5s9WylpaXpsccec2m3Q3x8vNNtSlpAQIDGjBljVT5t2jSXdhhdtX37dj3//PPFmVqJGz58uFVOocWLF2vatGlFHv+VmJioRx55RMnJyS6P36h5Ttk4AAAgAElEQVRRI6uydevWudwfAAAo2wi+AAAAwOvGjRunxo0bm5UlJyfroYce0rRp0xw++ujAgQN6//33ddttt+m5555z6pv2V139xn5cXJyGDBmi3bt32627e/duDR061OpopEqVKmns2LGFjnP77bdb5YOZPXu2PvjgA+Xm5tptt2LFCg0aNKjgJXpYWFih47jb5s2b9eijj6pfv36aOXOmwwmvDx06pEceeUSnT582K+/bt68CAwPttnv88cfVpUsXs7Ls7GyNHj1aEydOdPhb58ePH9fMmTPVr18/jRgxQtu2bSu0vr+/v9566y2ruf3555/q27evvv76a6WkpJj9LD09XcuWLVO/fv0KckpUrFjR5lFrJe2ee+5Rp06dzMrOnTunoUOH6rfffrPb7syZMxoxYoRWrlwp6cpuA1c899xzqlatmlnZiRMnNHjwYG3atMluu8TERD311FNWQTpJeuONN6x21Njy9ttvWyWlj4uLU//+/bVgwYJCny/pSvD1119/1ciRI/Xwww8XOZ433HXXXVZB69zcXE2aNEljxoxx+G/f2bNn9eWXX2rgwIEaPHiw0zl+PC06Otrm39bPPvtMAwYM0OrVq612p8XHx2vmzJnq27dvQc4oe3mDihIREWH1PC9dulRz5sxx+vgzAABQ9gUUXQUAAAAoWaGhoZoxY4YeeOABs28lG41GffbZZ/ryyy/Vtm1btW/fXtWrV1d4eLiMRqMuXLigpKQkHThwQLGxsS7lp7D0+OOP64svvlB2drYOHz6sgQMHqn379urWrZuqV68u6coLyw0bNmjr1q0ymUxm7Q0Gg1577bVCd71IUv369XX33Xdr+fLlZuUzZszQsmXL1KdPHzVp0kTly5dXenq6jh07prVr15rtRihXrpxeeOEFvfbaa8X+vZ116NAhvf/++3r//fdVs2ZNNW/eXE2bNlVUVJQqVqwof39/ZWZm6uTJk9q6dau2b99u9VlFRETY/Ab/tQICAvTBBx9o0KBBOnr0aEG5yWTSwoULtWTJErVo0UIdOnRQrVq1FBERofz8fGVkZCg1NVVxcXGKjY21Cvo4omnTppo4caImTZpkNvekpCS98cYbevPNNxUVFaWIiAilp6crNTXVKrn766+/rvnz55vN3TLoVhIMBoPeeust3XfffcrIyCgoT0xM1JNPPqlmzZqpZ8+eqlWrloKCgpSUlKTNmzdr48aNZjuqnnnmGb399ttOjx8REaG3335bjz32mFmwIz4+XsOHD9cNN9ygW2+9VTVr1lRwcLCSkpK0ZcsWbdiwwWYeo6FDh6p3794OjV2zZk1NmzZNo0aNktFoLChPTk7Wq6++qg8++EBdunRRixYtFBkZqeDgYF24cEEJCQnat2+ftm3bVvAivWbNmk7/7p7y+uuvFzxf11q9erVWr16tpk2bqmPHjqpXr54iIiLk5+enjIwMnT9/XocOHVJsbKxOnDhh9Vz6usGDB2vHjh36/vvvzcr37t2rMWPGKDAwUFFRUQoNDVVKSopVPq2KFStqypQpuuOOO8zKHX0u+/fvr2nTphVc5+XlacqUKZo6daqqV6+uChUqWPU1aNAgm0cZAgCAso3gCwAAABxiMBhKtP9atWpp8eLFevbZZ63yvRiNRm3evFmbN28u0Tlcncc777yjMWPGKC8vTyaTSVu3brV6wWmLwWDQ66+/rj59+jg01iuvvKLdu3ebvZiX/u/b6IUJDAzU9OnTXd6Z4E6nT5/W6dOnncrFUrFiRX300UdWuW9sCQ8P17fffqsXX3zRatdGXl6edu3aVWI5gh544AEZDAZNmjTJ6lgjk8mk5ORkm8cYGQwGTZgwQXfeeafmzp1r9jNP7VaqXbu2Zs+erUcffdTqW/n79+/X/v37C23/+OOPq0+fPi4FX6QrR4B9/PHH+sc//mGVz2jv3r3au3evQ/0MGzZMEyZMcGrsbt26afbs2XrmmWesXr6npqZqxYoVWrFihVN9+pqgoCB9/vnnev3117VkyRKrnx84cMCl3X++zmAw6N///rf8/f1t7pAyGo12j5irWLGiZsyYodq1a1v9zNHncujQoVq+fLkOHTpkVm4ymZSQkKCEhASrNsU56gwAAJReHDsGAAAAK7ZyiVies18SoqOjNW/ePI0aNUoVKlQoVl8NGjRQ3759XWrbq1cv/fe//7VK9l6YiIgIvfPOO3rggQccblOhQgXNmTNHbdq0cWp+VatW1RdffKHu3bs71c4dKleuXOw+2rdvr/nz56tjx44OtwkPD9fMmTM1YcKEYs+hZs2aVkc2FWbgwIFauHChVQ4Ye2rXrq3PPvusIO/KtTtPJBV7bTujVatW+vLLL23mqrDH399fzz77bJFH5zmie/fumjdvnlq0aOF024iICL322mt65ZVXXNotdOONN2rRokXq0aOH022vioqKcrmtJwQHB+utt97StGnTbAYUnBEVFVVqdmf4+flp6tSpevfddx0K4Er/tx46dOhg9UxKjj+X5cqV0+zZs9W1a1en5gwAAK4/7HwBAACAlUuXLlmVhYaGemTsoKAgPfvss3r00Uc1f/58rV27Vnv27CkyT0NgYKBatmypLl26qEePHmrZsmWx5nHrrbfqf//7n2bOnKnvvvtOmZmZNutVqlRJd955p55++ukijxqzpVq1apo3b54WLlyoL774otAcJjVr1tSAAQP00EMPeTzXy1VvvPGGnnzySf3222/666+/tHPnTiUmJhbZLiQkRN27d9e9996rW2+91aWxDQaDHn74YQ0aNEhLlizRypUrtXPnTpvHVF3Lz89PzZo100033aTu3burY8eOTu/katmypRYvXqzNmzdr1apV2rFjh5KSknT+/HkFBwcrOjpaN9xwg3r16qXevXvL39+/oK3lt97Dw8OdGru4brjhBi1btkxffvmlFi1apOPHj9usFxgYqB49emjUqFFq3ry5W8dfvHixfvrpJy1atEhbt261GeC9qmHDhurTp4+GDx9e7EBVnTp19Mknn2jXrl2aO3eufv/9d6WmphbaJioqSl26dFG/fv3UrVu3Yo3vKXfffbf+9re/6ccff9T333+vbdu2KSsrq8h2DRs21E033aRbbrlFXbt2VUBA6XpF0K9fP/Xq1Uu//vqrfv75Z8XFxSkpKUlZWVkKCwtTrVq11K5dO915551meV5sHVHpzHNZrVo1ff7559q7d69Wrlypffv26dixY7pw4YKys7OL/PcKAABcHwym0nbAKwAAAErc+vXr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3u/9Xlx00UUt/bMBDl6plBK+FKamgLKjmBy+DKl8AQAAAGAWymT40t/fHzfccEPcc889E773iSeeiD/+4z+Ob3/72/E3f/M3ceSRR87ACas9++yzcfXVV8dTTz1V933lcjk2btwYGzdujCuuuCKuv/76KBaLk9pz586d8clPfjJ++tOf1n1fpVKJhx56KB566KG48MIL43Of+1x0d3c3vd/u3bvjz//8z+P73/9+Q+8vl8tx//33x/333x9nnXVWfO5zn4sTTjih6X2BbBhJmfnSXpya8GXv3JeRmnVtxwAAAACYjTI386W/vz9Wr17dUPByoAcffDAuv/zy2LFjxzSdLNmWLVvisssumzB4Ge/222+Pa6+9NkZHR5vec/v27fHBD35wwuBlvHvuuSdWr14d/f39TV23a9eu+O///b83HLyM9/DDD8cHP/jBeOaZZyZ1PdBaY5VKjKa2HTv4mS8RER0pIc6QtmMAAAAAzEKZq3y58cYbY/PmzVVrS5YsiVWrVsV5550XRx99dOzYsSMefvjhWLt2bWzZsmX/+5577rm4+uqr4/bbb4+2tun/1vr6+uKqq66KXbt2Va0vX748Vq1aFcuWLYtDDjkktm7dGvfee2/cfvvtsXv37v3vW79+fXzxi1+M6667ruE9R0dH45prrqlpbfamN70pVq9eHWeeeWYsXLgwtm7dGg888EDcdtttsXXr1v3v27x5c9x4441xyy23NLzn//pf/yuefPLJqrWOjo543/veFxdccEEsXbo0enp6YmBgILZs2RI/+clP4lvf+lb09fXtf/+rr74aH/vYx+IHP/hBdHZ2Nrw30HqllKqXiIj2KZj5EhHR0Z4c4owIXwAAAACYhTIVvmzYsCHuvvvuqrVzzz03vvzlL8f8+fP3ry1YsCBOOumkWLlyZfzRH/1R1TWbNm2Kb37zm3HFFVdM+3m/9KUv1YQgq1atiuuvv75qxsmhhx4ap556arz//e+PK6+8Mp5++un9X/v6178eF198cZxyyikN7blu3brYtGlT1dp73vOe+PznPx/t7e371xYsWBAnn3xyvO9974tPfOITVVUyd999d/z4xz+Od73rXRPu96Mf/Sjuv//+qrUlS5bEmjVr4k1velPVend3dyxcuDD+03/6T/GhD30oPvaxj1VVBL344ouxdu3a+PjHP97Q9wpkQ73wpThl4Uvyx5GZLwAAAADMRplpO1apVGqqMZYsWRJf+cpXqoKXA7W3t8cXv/jFWLZsWdX6V7/61RgcHJy2s0ZEbNu2Le64446qtQsuuCBuuOGG1OHyRx99dKxZs6Zq5krS951mcHAwvva1r1WtnXbaafHXf/3XVcHLgRYsWBBf/epXY/HixVXrt9xyS1QqlQn3/O53v1v1Op/Px9///d/XBC/jLVmyJP7hH/4h5s2bV7X+ve99b8I9gWypV33SXpyatmOdKfcx8wUAAACA2Sgz4cv69evjiSeeqFq76aaboqenp+51hUIhbr755qq1HTt2xLe+9a0pP+OBbr311hgeHt7/urOzMz772c9OeN3ixYvjmmuuqVrbsGFDzfee5M4776yZaXPzzTdHoVD/l589PT3xmc98pmrtF7/4Raxfv37CPR944IGq1+94xzvizW9+84TXRez9XleuXFm19stf/jJ27tzZ0PVANpRS5r1ETGXbseT7DGs7BgAAAMAslJnw5Yc//GHV62OOOSbOP//8hq5985vfHG9961ur1sa3L5tKlUql5v4XXXRRLFq0qKHrL7300pqKkPHff5Lxe55zzjlx6qmnNrTnihUr4phjjql7v/F6e3tjYGCgau3ss89uaL8Dzzje9u3bm7oH0FqlUnr40jZV4Usxue3YcKncUJUeAAAAAGRJJsKXUqkUP/nJT6rWVq5cmdq+K8l73/veqtePPPJI/PrXv56S843385//vCZAuOSSSxq+vqenJy644IKqtQ0bNtS9ZufOnbF58+ZJ75nP5+Piiy+uWtu4cWOMjo6mXjM+eInYO7+mGUnvL5VKTd0DaK2ROjNfpq7yJbmCr1Kpvz8AAAAAZFEmwpdHHnkkent7q9bOPffcpu7xtre9rer12NhY3HfffQd9tiQbN26sel0sFuOss85q6h7jv7+nnnoqXn755dT3//M//3OMjVX/AnL89zyR8e9/7bXXYtOmTanvP+ywwyKfr35EXnvttab2THr/kUce2dQ9gNYqjdaZ+dI2NTNfOorpH0fmvgAAAAAw22QifHnyySerXhcKhVi+fHlT9zj++ONrfqk//r5T5amnnqp6vWzZsujo6GjqHklhzfj7Hmj897Jw4cI47rjjmtrz9NNPr5kPU2/P9vb2WLp0adXaQw891NSe499/1FFH1bQ/A7ItrfKkkM9F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WBEXXnhh3HPPPfvX/vVf/zUuvvjiWL16dZx33nmxaNGi2LlzZzz88MOxdu3aeOaZZ6ruceaZZ8Zll102I+f9H//jf8S9994bL7zwwv61r3/96/Hwww/HqlWr4rTTTosFCxbE1q1b4957743bb789du3aVXWP1atXxymnnNLwnh/84Afj+9//fjzyyCP7177//e/Hk08+Gb//+78fZ555ZhxxxBGxbdu2uP/+++O2226rCV4uvPDCeNe73tXQftddd1387Gc/q2qTtmnTprjooovi0ksvjXe9611x0kknRU9PT/T398ezzz4b9913X9x5553x2muvVd2rvb09brzxxoa/VyAbSikzX4rTMfOlIy18UfkCAAAAwOyRqfAlIuIv//IvY+vWrfHoo4/uX3vppZdq2mYlOf744+Pv/u7v6g6Rn0o9PT3xla98Ja644orYvXv3/vVHHnmkpoonyYoVK+JTn/pUU3u2tbXF3/3d38UVV1wRzz///P71p59+Om644YYJrz/99NPjL//yLxveb+nSpfG3f/u38Yd/+IdRKpX2rw8MDMQ//uM/xj/+4z82dJ9CoRB/9Vd/FWeccUbDewOtNzZWidFycjXfjLYdGxa+AAAAADB7ZKbt2D49PT2xdu3a+J3f+Z2mrjv77LNj3bp1sWjRomk6WbKlS5fGunXrYunSpU1dd/nll086KDrqqKPijjvuiLe+9a1NXffud7871q5dGz09PU1d91u/9Vuxbt26eOMb39jUdfscc8wx8Y1vfCP+y3/5L5O6HmidtHkvERHF4sy1HRsulWNsLDkEAgAAAICsyVzlS8TeAOZLX/pSrF+/PtasWRObNm1Kfe/JJ58cq1evjksuuWTCGSbT5cQTT4zvfve7cccdd8Q3vvGNqjZkB8rn8/H2t789rrrqqjj77LMPas+FCxfG//k//yf+6Z/+KdauXRtPPvlk6nvPOuus+MhHPhIrVqyY9H5vectb4nvf+1788Ic/jDvvvDM2b94co6PpMxjy+XwsW7YsPvCBD8Tv/u7vRmdn56T3BlpnJKXlWERE+3S0HUsJXyL2BjBt01BtAwAAAABTLZPhyz7nn39+nH/++bFt27bYvHlzvPTSSzEwMBCdnZ2xePHieMtb3hLHHXfcQe1RL7RoRrFYjA9/+MPx4Q9/OJ5++un4t3/7t9i+fXuUSqXo7u6O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vj0effTRePHFF2NgYCA6Oztj8eLFcdppp8Vxxx3X6uPV2LJlSzz++OOxY8eOGBkZie7u7jj++OPjjDPOiEMPPXRa9nzhhRfisccei61bt8bQ0FDMmzcvjj322Dj99NNj0aJF07LnPv39/fHYY4/Fc889F7t3745yuRxdXV1x1FFHxRve8IZYunRpFIvFaT0DMDXKKeFLLrLZdiwi4vAFHfHrPbVVLsIXAAAAAFol0+HLhg0bYs2aNbFp06aopMwhOOWUU2L16tWxcuXKyLXwF4OlUinWrVsX3/jGN+L5559PfE+hUIi3v/3t8bGPfSzOPvvsg96zUqnEXXfdFWvXro0nnngi8T25XC7OOuusuPLKK2PFihUHveeBe69fvz7WrVsX//qv/xqlUvpg646Ojli+fHm8853vjMsuuyzmz58/ZecAptZYyn9rs1j1ss9h85MrX1418wUAAACAFslk+NLf3x833HBD3HPPPRO+94knnog//uM/jm9/+9vxN3/zN3HkkUfOwAmrPfvss3H11VfHU089Vfd95XI5Nm7cGBs3bowrrrgirr/++klXhOzcuTM++clPxk9/+tO676tUKvHQQw/FQw89FBdeeGF87nOfi+7u7kntuc+WLVvihhtuiM2bNzf0/uHh4XjwwQfjwQcfjHPOOSfOOOOMg9ofmD5pbceyHL4cPr8zcX2XmS8AAAAAtEjmZr709/fH6tWrGwpeDvTggw/G5ZdfHjt27JimkyXbsmVLXHbZZRMGL+Pdfvvtce2118bo6GjTe27fvj0++MEPThi8jHfPPffE6tWro7+/v+k997n33nvjfe97X8PBCzC7pIUvaUPtsyC18kXbMQAAAABaJHOVLzfeeGPNL/aXLFkSq1ativPOOy+OPvro2LFjRzz88MOxdu3a2LJly/73Pffcc3H11VfH7bffHm1t0/+t9fX1xVVXXRW7du2qWl++fHmsWrUqli1bFoccckhs3bo17r333rj99ttj9+7d+9+3fv36+OIXvxjXXXddw3uOjo7GNddcU9Pa7E1velOsXr06zjzzzFi4cGFs3bo1Hnjggbjtttti69at+9+3efPmuPHGG+OWW25p+vv90Y9+FNdee22Uy+Wq9be//e1xwQUXxJlnnhlHHHFEzJs3L3p7e+OFF16If/u3f4v77rtvwtZkQDakth3L6LyXiL0z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O5bPRSxoa44Fbc0REdHYWIiWlsbEP52L26K9tSnxPgeOnEy9LukPAAAAAPWjasKXjRs3jplr8oUvfCFOnBg7yPi1isVifPazny1bW7JkSXzwgx+c0HPXrl1b9uc3f/M3J3TdRz/60Whubj59fPLkyfj85z9/xusOHDgQX/3qV8vWNmzYEBdddNEZr/3Qhz4UixcvLlu79dZbx8xxGa23tzduv/32srULL7wwNm7ceMZnAvWrKHyZFqs75yWu7zrYU+GdAAAAAFAtqiZ8yeVycdNNN5Wt7d27N2688cbo7U0eXDw4OBi/93u/F88++2zZ+g033BBz5syZsb1GRHR2dsY111xTtvbII4/El770pSilzFA4cOBAfOxjHyv7eXK5XHzyk5+c0DPnzJkTN9xwQ9nali1b4tOf/nQMDibPFujp6Ykbb7wx9u3bV7Z+0003TbilG1CfxgtfClXz6TC7nt3xSvz05SPx/O6jqX/aWpOrVrbtPjbuda/+AQAAAKD+VNXXaxs2bIgrr7yybO3HP/5xXHXVVfHtb387Xnjhheju7o4XX3wx/uEf/iE2bdoUDz/8cNnrL7vssrj66qsrst+Pf/zjsXLlyrK1b33rW3H11VfHD37wg9i9e3ccP348tm7dGnfeeWe8//3vj23btpW9/vrrr48LL7xwws/88Ic/HOvXry9b+/73vx8f+MAH4oEHHoiXXnopuru7Y/v27fHXf/3XcdVVV8Xjjz9e9vorr7wy3vnOd07ypwXqTbE4knouL5ydsM6OuYnrh46dHPd3DAAAAED9Sp62Pou++MUvxv79+2PLli2n1/bu3TumbVaSVatWxde+9rXUIfLTra2tLe6+++649tpr49ixY6fXn3766TFVPEk2bNgQn/rUpyb1zIaGhvja174W1157bezatev0+vbt2+Pmm28+4/WXXnppfPGLX5zUM4H6pO3YxO052JP6+xoZSQ5YRkZKseWFV2Jhe8uYc4V8LlaktCsDAAAAoPZVVeVLxKlA45577ol3v/vdk7ruzW9+c9x///2xdOnSGdpZsjVr1sT9998fa9asmdR111xzzZSDos7OzrjvvvviTW9606Suu+KKK+Kee+6Jtra2ST8TqD/DReHLRBVHSjGS8mfe3KZI+3UdPt6feM14wRcAAAAAta/qwpeIUwHMnXfeGXfddVdcdtll47527dq1cccdd8R3vvOdMcPoK+W8886L7373u3HLLbeMaUP2Wvl8Pi6//PK4995747bbbovGxuQ5AROxZMmSuPfee+OOO+6ItWvXjvvaN77xjXH33XfH17/+dcELcFoxpWIj4lRlBhNTyOdifltz4rmjPQMV3g0AAAAA1aDq2o691saNG2Pjxo1x8ODBeOaZZ2Lv3r3R19cXLS0tsWzZsrjkkkvGDTsm4vnnn5+WvTY2NsZ1110X1113XWzfvj3+93//N7q6umJoaChaW1tj1apVsX79+ujo6JiW50VE5HK52LRpU2zatCl2794dP/nJT2L//v0xMDAQc+bMieXLl8e6deuis7Nz2p45EXfccUfccccdFX0mMHnF8SpfzHyZlI55zYlBi/AFAAAAIJuqOnx5VWdnZ1xxxRWzvY0JW7NmzaTbkJ2tlStXnnUQBWSLmS/Tp2OeyhcAAAAAfqYq244BMPOEL9MnLXzpHyzGyYHhCu8GAAAAgNkmfAHIqGIxeeZLLrQdm6yF7cnhS0TEkW7VLwAAAABZI3wByKi0yhdVL5PX0tQQc5oLieeO9gpfAAAAALJG+AKQUcWi8GU6dcxrSVw/2t1f4Z0AAAAAMNuELwAZVRxJbjtWEL5MSdrcl6M9Kl8AAAAAskb4ApBRqW3HzHuZkrTw5fiJwdSgCwAAAID6JHwByCgzX6bXwpTwpVSKON47WOHdAAAAADCbhC8AGTVcTK7GEL5MTXtrU+rvTusxAAAAgGwRvgBkVLGYXPli5svU5PO5WNDWlHjuSLfwBQAAACBLhC8AGWXmy/RLm/ui8gUAAAAgW4QvABmVPvOlwhupI+OFL6VS8u8bAAAAgPrjKzaAjCqOmPky3RbOa0lcHxgqxsmBYoV3AwAAAMBsEb4AZFTazBdtx6ZuQUrlS0TE0Z7+Cu4EAAAAgNkkfAHIqGIxufKloPJlylqaCjG3uSHx3BFzXwAAAAAyQ/gCkFHpM1+EL2ejoz1l7ku38AUAAAAgK4QvABklfJkZHSmtx472Cl8AAAAAskL4ApBRaeFLwcyXs5IWvnSfGIyh4eRWbwAAAADUF+ELQEalzXxR+XJ2Fs5rSVwvlSJeOX6ywrsBAAAAYDYIXwAyStuxmdHe2hjNjYXEcwePCF8AAAAAskD4ApBRxWJK2zHhy1nJ5XKxtGNO4rmDR/oqvBsAAAAAZoPwBSCjiiMpbcfMfDlrnQuTw5dDx/tTf+8AAAAA1A/hC0BGaTs2czo75iauj4yU4pXj/RXeDQAAAACVJnwByKi0tmPCl7PXMa85GgvJH7Fd5r4AAAAA1D3hC0BGDae1HRO+nLV8PhdL0ua+HDX3BQAAAKDeCV8AMiqt8qVg5su06EwJX7qOnoyRlJZvAAAAANQH4QtARpn5MrM6FyaHL8PFUhzpNvcFAAAAoJ4JXwAySvgysxbNb4lCyu/yoLkvAAAAAHVN+AKQUcVi8syXlDnxTFIhn4/FC1oSzx0w9wUAAACgrvmKDSCjUitfzHyZNp0dcxPXu470Ralk7gsAAABAvRK+AGRUsajt2ExLm/syMDQSh45qPQYAAABQr4QvABlVHElrOyZ8mS5LFsyJtEKinQd6KrsZAAAAACpG+AKQUaltx4Qv06ahkI/F85PnvghfAAAAAOqX8AUgg0ZGSpE2csTMl+m1NGXuy86DPea+AAAAANQp4QtABqVVvUSofJluaXNfevuG4mjPQIV3AwAAAEAlCF8AMqhYTJ73EiF8mW5LFySHLxFajwEAAADUK+ELQAaNV/lSEL5Mq6bGQixsb048J3wBAAAAqE/CF4AMGrftmJkv064zbe6L8AUAAACgLglfADJI27HKWtqR3HrsWM9AHD5+ssK7AQAAAGCmCV8AMkjbscrqXJg+9+WnO49WcCcAAAAAVILwBSCDtB2rrJamhpjf2pR4bqvwBQAAAKDuCF8AMmhY27GKS6t+Eb4AAAAA1B/hC0AGaTtWeUs75iau73vlRBzvHajwbgAAAACYScIXgAwqFtPDF13HZkZnR/rcl+d3qX4BAAAAqCfCF4AMKo4ktx3L53KRk77MiNY5jdE2pzHx3E+1HgMAAACoK8IXgAxKazuW96kwo9KqX8x9AQAAAKgvvmYDyKC0tmN5815m1NKFyXNfdh3oib7+oQrvBgAAAICZInwByKC0tmMF4cuMSqt8KUXE9j3HK7sZAAAAAGaM8AUgg1IrX8x7mVHz5jbGnOZC4rltu49VeDcAAAAAzBThC0AGpc98Eb7MpFwuF50dya3HhC8AAAAA9UP4ApBBaeGLtmMzr3Nhcuuxlw/0xMBgscK7AQAAAGAmCF8AMqhYTJ75ovJl5qVVvhRHSrFjn7kvAAAAAPVA+AKQQcNpbcfMfJlx89uaornR3BcAAACAeiZ8AcigYlHbsdmSy+VSW48JXwAAAADqg/AFIIOKI9qOzabOhcmtx3bs646h4eS/GwAAAABqh/AFIIOKaW3HhC8VkRa+DA2PxMsHuiu8GwAAAACmm/AFIIPS2o6Z+VIZC+c1R1Nj8kew1mMAAAAAtU/4ApBB2o7Nrnw+F6s65yWee174AgAAAFDzhC8AGZRW+VIQvlTMqnOSw5fte46nhmMAAAAA1AbhC0AGmfky+1anhC8Dg8V4+UBPhXcDAAAAwHQSvgBkUGr4YuZLxSxf3BoNheSP4a07j1Z4NwAAAABMJ+ELQAYVi8ltrbQdq5xCIR+rOtsSzwlfAAAAAGqb8AUgg9LbjlV4Ixn3unPbE9e37z0ewykBGQAAAADVz9dsABlULKaFLz4WKun1y5LDl8GhkXhxX3eFdwMAAADAdPEtG0AGFUdS2o7pOlZRyxbPjZamQuK5rbu0HgMAAACoVcIXgAxKbzsmfamkQj4fa1d1JJ4z9wUAAACgdglfADIove2Y8KXSfv71CxPXX9jbHUPDxQrvBgAAAIDpIHwByKDUypec8KXSLk4JX4aLI/HCXnNfAAAAAGqR8AUgg4aLKTNfVL5U3OvOaY+5LQ2J57QeAwAAAKhNwheADDLzpXrk87m4aHXK3JddwhcAAACAWiR8Acgg4Ut1+fnXJbcee3FfdwwMmvsCAAAAUGuELwAZVExpO2bmy+y4+PWLEteLI6XYvvdYhXcDAAAAwNkSvgBkUFrli5kvs2PF0rZom9OYeG7rTuELAAAAQK0RvgBkULGo7Vg1yedzsXbVgsRz5r4AAAAA1B7hC0DGjIyUYqQkfKk2F67qSFx/eX9PnBwYrvBuAAAAADgbwheAjElrORYRUTDzZdZcuDo5fBkplWL7Hq3HAAAAAGqJ8AUgY4aLI6nnVL7MnnMXzY321qbEcz/dqfUYAAAAQC0RvgBkjPClOuVyubgwbe7LTpUvAAAAALVE+AKQMcPF9LZjeW3HZlVa67FdB3viRP9QhXcDAAAAwFQJXwAyZng4vfKloPJlVl20Kjl8KUXEtl2qXwAAAABqhfAFIGO0HateSzvmRMe85sRzP91l7gsAAABArRC+AGTM+OFLBTfCGKfmviRXv2zdKXwBAAAAqBW+ZgPImHFnvqh8mXUXrl6QuL7n0Ino7hus8G4AAAAAmArhC0DGjFf5UsgJX2Zb2tyXCHNfAAAAAGqF8AUgY8x8qW6LF8yJxfNbEs+Z+wIAAABQG4QvABmTFr7kcqdmjjD7Llxt7gsAAABALRO+AGRM2syXgqqXqpHWemz/4b441jtQ4d0AAAAAMFnCF4CMSat8yat6qRpplS8REVu1HgMAAACoesIXgIxJDV9UvlSNjnnN0dkxJ/Hc1p3HKrwbAAAAACZL+AKQMWltx4Qv1SV17ovKFwAAAICqJ3wByJjh4eTKFzNfqstFKeFL19GTcaS7v8K7AQAAAGAyhC8AGWPmS21Yuyp97stPd6p+AQAAAKhmwheAjDHzpTbMb22Kcxe3Jp7TegwAAACguglfADLGzJfaceGqBYnrW3ceq/BOAAAAAJgM4QtAxmg7VjvS5r4c7u6PQ8dOVng3AAAAAEyU8AUgY4ZSwpeCypeKyuVO/RnP2lUdkfYSc18AAAAAqlfDbG8AgMoqmvky6/L5XCyaPyciIhobC6mva2lpjFWd82LnwZ4x57bvOR5X/MLqCT+zv39o8hsFAAAAYEpUvgBkjJkvteXnX78wcf25l45EqZT8dwkAAADA7FL5ApAxaTNfCrKXWfHTl49ERERxJPnvZX5bU+L6sd6BeOyZvXHOotZx7792ZfLcGAAAAABmjsoXgIxJC19UvlSn1cvmRT5lOMzzu45VeDcAAAAATITKF4CM0XasOu052BPFkeS/m86Fc2L/4b4x68/uOByvO2femPVCPhcrOseuAwAAAFAZKl8AMmZoOKXtmPBlVhVHSjGS8mf5kuTWYq8c74/evqExr08LcQAAAACoDOELQMYU09qOpbS2YvatWNKWem7vK70V3AkAAAAAEyF8AcgYbcdqT3trU8xvbUo8t6frRIV3AwAAAMCZCF8AMmY4rfJF+FLVVixNbj22//CJ1GomAAAAAGaH8AUgY1LDF23Hqlpa67HhYin2H+mr8G4AAAAAGI/wBSBjhlLCl4LKl6q2ZMGcaGpM/tjWegwAAACgughfADLGzJfalM/nYvni5NZjew71RqmU/PcKAAAAQOUJXwAyJm0+iPCl+q1Ymtx6rK9/OI72DFR4NwAAAACkEb4AZEzazJeCmS9Vb/ni1kj7a9rT1VvZzQAAAACQSvgCkDHajtWupsZCdHbMTTy3+5C5LwAAAADVQvgCkDFplS/Cl9qwYmny3JfDx/vj5MBwhXcDAAAAQBLhC0DGDA2ntB0TvtSEFUuS575EROw5pPUYAAAAQDUQvgBkTFHlS01rb22K+a1Nief2dGk9BgAAAFANhC8AGZM68yVtkjtVZ/mS5NZj+w+fSA3XAAAAAKgc4QtAhpRKpXFmvlR4M0zZyqXJrceGi6U4cKSvwrsBAAAAYDRftQFkyMhIKZLrXrQdqyVLFsyJpsbkj/DdWo8BAAAAzDrhC0CGDI3TkqogfKkZ+Xwuli9Obj2251BvlEppERsAAAAAlSB8AciQtHkvEWa+1JoVKa3H+vqH40jPQIV3AwAAAMBrCV8AMmS8YezajtWW5YtbIy0v29PVW9nNAAAAAFBG+AKQIcPajtWNpsZCdHbMTTy3+6DwBQAAAGA2CV8AMkTbsfqyYmny3JdXjvdHb99ghXcDAAAAwKuELwAZMjSs7Vg9WbEkee5LRMS23ccruBMAAAAAXkv4ApAh2o7Vl/bWpmhvbUo8t333sQrvBgAAAIBXCV8AMmS88EXlS21asSS59diOvcdjeJxKJwAAAABmjvAFIEPMfKk/K5cmtx4bGh6Jl/Z3V3g3AAAAAEQIXwAypThO5YvspTYtWTAnmhqTP8637dJ6DAAAAGA2CF8AMiSt7Vg+n4uc9KUm5fO5WL44ufXYtt3HolRKr3YCAAAAYGYIXwAyZCil7VjBvJeatiKl9Vj3icHYdbCnwrsBAAAAQPgCkCGplS+qXmra8sWtqW3j/uf5Q5XdDAAAAADCF4AsGa/tGLWrqbEQnR1zE889+XxXhXcDAAAAgPAFIEOGtR2rWyuWJM99eXFfd+zp6q3wbgAAAACyTfgCkCHF1LZjFd4I0y5t7ktExKNP7q7gTgAAAAAQvgBkyNCwtmP1qr21KZYsaEk89x/P7IvBoWKFdwQAAACQXQ2zvYGJ6Orqii1btsSePXuir68vWlpaYtmyZfGGN7whVq5cOdvbG2PHjh3x3HPPxaFDh2JwcDBaW1tj1apVsX79+liwYMGMPHP37t3x7LPPxv79+6O/vz/mzp0bK1asiEsvvTSWLl06rc86cOBAbNu2Lfbv3x/Hjx+PiIj58+fHokWL4pJLLonOzs5pfR4wfdJmvmg7Vh8uWLkgDh07MGa9r384ntjaFW+/ZNks7AoAAAAge6o6fNm8eXN84xvfiKee+v/s3Xl8nHW9//33NVsmmcm+NEv3UtrSvZQispcqoJxWFBWRc9N68CF6BPHnUbZzjg9vOYh6wANyBI5K/d0UWTx6BFHKkRYpe0s3SmloaZu2abMvTWaSyaz3HylpJ5kr62Q6ufJ6+phHnO+1fScZ0vZ6z/fz2a5YLHGfgtmzZ2vNmjVatWqVDOP03TwMhUJ68skn9fjjj+vw4cMJ97Hb7Tr//PP1ta99TUuXLh3xNWOxmJ599lmtXbtWlZWVCfcxDENLlizRjTfeqOXLlw/rOo2Njdq4caPefPNNvf3222pqaup3/0mTJumaa67RF77wBRUUFAzrmgBGh1nPF1a+WMOU0mxt2VOvYIIVTq/sOEb4AgAAAAAAkCJpGb74/X7dcccdevHFFwfct7KyUrfddpt+//vf62c/+5mKiopSMMN4VVVVuvnmm7V3795+94tEItq0aZM2bdqk66+/XrfffrucTuewrtnY2Khbb71VW7Zs6Xe/WCymrVu3auvWrbr88sv1ox/9SB5P4qbMve3atUs//elPtWXLFkWjiT8tn8iRI0f0s5/9TP/1X/+lO++8U9dcc82gjwUwusxWvthOY3iN5HHYbZpekaPKQ619tn149LiqG3yaWGzeGwYAAAAAAADJkXY9X/x+v9asWTOo4OVUmzdv1nXXXaeGhoZRmlli+/fv17XXXjtg8NLbunXr9K1vfUvhcHjI16yvr9eXvvSlAYOX3l588UWtWbNGfr9/UPu/9957evvtt4cUvJzK7/frrrvu0ve///1hHQ8g+UzDF1a+WMaZE83LW76y/VgKZwIAAAAAADB+pd3KlzvvvFM7d+6MGysvL9fq1at13nnnqbS0VA0NDdq2bZvWrl2r/fv39+x36NAh3XzzzVq3bp0cjtF/aT6fTzfddJNaWlrixhcuXKjVq1dr7ty5ys3NVU1NjV566SWtW7dOra0nP428YcMG3X///fre97436GuGw2HdcsstfUqbnXHGGVqzZo0WL16s4uJi1dTU6M0339RvfvMb1dTU9Oy3o9etSwAAIABJREFUc+dO3XnnnXrggQeG9ZqnTJmij3/841q2bJlmzJihwsJCZWRkqKGhQdu3b9czzzyjHTt2xB3z1FNPqbCwULfccsuwrgkgeSKUHbO8vOwMleRnqr6ls8+2N3bX6ppLZyjDaT8NMwMAAAAAABg/0ip82bhxo9avXx83tmzZMv3iF79QdnZ2z1hOTo5mzJihVatW6bvf/W7cMdu3b9dTTz2l66+/ftTn+9BDD/UJQVavXq3bb789rv9MXl6e5syZo89//vO68cYbtW/fvp5tjz32mFauXKnZs2cP6ppPPvmktm/fHjd25ZVX6ic/+YlcLlfPWE5OjmbNmqXPfvaz+sY3vhG3Smb9+vV6+eWXdemllw7qmg6HQ5/61Kf0+c9/XsuWLUu4T3Z2tqZPn67Pfe5zevrpp/XDH/5QoVCoZ/ujjz6qK6+8UjNnzhzUNQGMjpDJyhc74YulzJqclzB86ewKa8ueel2wgN4vAAAAAAAAoyltyo7FYrE+qzHKy8v18MMPxwUvp3K5XLr//vs1d+7cuPFHHnlEnZ19bzolU11dnX7729/Gja1YsUJ33HFHXPByqtLSUv3yl7+M67mS6HWb6ezs1KOPPho3Nm/ePN13331xwcupcnJy9Mgjj6isLP5G2wMPPKBYLPEn4D9is9l01VVX6S9/+Yt++tOfmgYvvX3xi1/UD37wg7ixcDis//zP/xzU8QBGDz1fxocppdlyuxKvbnllx9EUzwYAAAAAAGD8SZvwZcOGDaqsrIwbu+uuu+T19t8Y2G636+67744ba2ho0DPPPJP0OZ7qV7/6lbq6unqeu93uQfU2KSsr61N+a+PGjX1eeyJPP/10n542d999t+z2/svHeL1e/fM//3Pc2J49e7Rhw4Z+j7vmmmt03333acqUKQPOrbfPfe5zfcKaTZs2KRgMDvlcAJKHni/jg8Nu08KZRQm37T/WpiP1vhTPCAAAAAAAYHxJm/DlhRdeiHteUVGhyy67bFDHnnXWWTr77LPjxnqXL0umWCzW5/xXXHGFSkpKBnX8Nddco6ysrLix3q8/kd7XPOecczRnzpxBXXP58uWqqKjo93y9DRTqDOQzn/lM3HO/368PPvhgROcEMDJher6MG2fPNv8zidUvAAAAAAAAoystwpdQKKRXXnklbmzVqlWm5bsSufrqq+Oe79ixQ01NTUmZX2+7du1SfX193FjvoKE/Xq9XK1asiBvbuHFjv8c0NjZq586dw76mzWbTypUr48Y2bdqkcDg86HMMVaI+Nr1X7gBILbOVL/R8sZ7ivExNnpC4bOebu2vVFYykeEYAAAAAAADjR1qELzt27FB7e3vc2GD7i3zk3HPPjXsejUb16quvjnhuiWzatCnuudPp1JIlS4Z0jt6vb+/evTp27Jjp/q+99pqi0fibpr1f80B673/8+HFt3759SOcYCrfb3WdstHvxAOhfOEzPl/Hk7NnFCcc7uyLavKcuxbMBAAAAAAAYP9IifOldisput2vhwoVDOsfkyZNVVBRf3360Slzt3bs37vncuXOVkZExpHMkCmt6n/dUvV9LcXGxJk2aNKRrLliwoE8psf6uOVKJwqSCgoJRux6AgdHzZXw5a2qBvJnOhNv+tsM88AcAAAAAAMDIpEX4cuDAgbjnZWVlfXqiDMb06dPjnh88eHBE8zLTe769rzsYU6dO7ROE9D5vsq/p8XhUWlo66GuO1JYtW/qMTZ48edSuB2BgZj1fKDtmTQ6HTRctKk+47WBNmw7XtSfcBgAAAAAAgJFJi/Bl//79cc/LyxPfKBpIWVlZ3PPRCBYikYiqqqrixoYzX7vdrpKS+GbI/c13LH2PpO7v03PPPRc3NmPGDFVUVIzK9QAMDitfxp/lZ5uvknyF1S8AAAAAAACjwnG6JyCpT/P63qszBqt3sFBXl/x69i0tLQqFQnFjI5lvTU1Nz/P+5juWvkeS9Lvf/S7utUnSpz71qVG5VioZhiFaY5yU6HvRPcY3KV2ZhS92w5CRhJ+bob7nSc6ZU3R+k/d0Mq8hpfb7VF7k0Zwp+dpzqKXPfm/urtUXlp8htyst/jqAUcDvaVgN72lYDe9pWBHva1gN72lYjRXf00aa3rBNi7stHR0dcc+9Xu+wztP7uEAgoGg0KpsteQt8es810XUHq/dxic4tda8i6erqSuk1R6K2tlb//u//HjeWm5ur66+/PunXSrWCAs/pnkLaKywc3nsTqZG46JiUmemU1zu03lWJOGyGHI7u37lOZ3dpRa8nQ9GY2ZXT6/wJr+mwJ/0ao/06bIahjIzuP+Kzs9369AXTtefQ1j77BYIR7T58XJd/bEpSrouxgd/TsBre07Aa3tOwIt7XsBre07Aa3tOjIy3KjvUOANxu97DOk+i4ZIcLic6XrPmazfV0XHO4wuGwvvOd76i9Pb6PwLe//W3l5eUl9VoAhi4UNln5QtkxS/v4gjLleFwJt61/qyq1kwEAAAAAABgH0iJ86ezsjHvuciW+QTSQRIGE3+8f1rnMJAorMjKG92nx3scNJXwZ7WsO1z333KN33nknbuyCCy7Qtddem9TrABgeer6MT06HXZedMznhtg+PtOrD6tYUzwgAAAAAAMDa0iJ8gTU8/vjjeuKJJ+LGSktL9dOf/jRt6+4B402YlS/jVn+lxV5861AKZwIAAAAAAGB9adHzJTMzM66JfTAYHNZ5AoFAnzGPJ7k9OrKysvqM9e7HMli9j0t07tN1zaH685//rHvuuSduLDs7W48++qgKCgqSco100NzsVzQ6er0lxhrD6FsTsqnJp1Fsv4ERCpqEL8FgRD7f8H6vnMrhsPUEPKFQRJLk83cl7b+b0T6/YUi52fGrKMPhSFKvIY3+67DZDHXldK90bG/v/rMxw5BmT8lX5aGWPvv/besRrTxvijIz0uKvBUgifk/DanhPw2p4T8OKeF/DanhPw2qs+J622Yy07NWdFndZsrKy1NbW1vM8UYgyGImOS1a40N/5kjXfoYQvo33Nodi0aZNuu+02RaMnb+q63W498sgjmj179ojPn05isZhiY/k3UdL1XS0Ri4nvURozLzsmxTTyn1vsxP8GGkvX8ytm8p5O5jWUiu9T359nLBbTJYvKE4YvgWBEb71fq0sWVSTl+kgn/J6G1fCehtXwnoYV8b6G1fCehtVY7z2drlNPi7JjvQMAn883rPP0Ps7tdstmS+5LTBRWJGu+ZkGI3W7v06tltK85WO+8845uueWWuJVLTqdTDzzwgJYuXTqicwNIPrOyY/R8GR+WnFms7Cxnwm0bt1Yrmq5/WwEAAAAAABhj0iJ8KSkpiXteW1s7rPP0Pq73eZMhPz9fTmf8jatUzDcdv0fvvfeevva1r6mzs7NnzGaz6cc//rEuueSSYZ8XwOgJRxLfXLfRl2lccNhtumB+WcJt1Q1+bd/bmOIZAQAAAAAAWFNahC/Tp0+Pe37s2LFhnaf3cTNmzBj2nMzY7XZNmRLftHg4841EIqqvr48b62++6fY92rdvn/7hH/6hz0qaH/zgB/r0pz89rHMCGF3RaMx0ZYOdlS/jxkWLyk23PfvaQVa/AAAAAAAAJEFahC+9A4Da2lp1dHQM+TwHDx6Mez5t2rQRzctM7/keOHBgyOc4dOiQwuFw3FjvgCXZ1+zo6Oiz8qW/a5o5dOiQ1qxZo9bW1rjx22+/XV/4wheGfD4AqRGJJi45JlF2bDyZkJ+ls2cVJ9xW3eDT9r0NKZ4RAAAAAACA9aRF+DJr1qy45+FwWO++++6QznH48GE1NMTfMOp93mQ588wz457v3r1bXV1dQzrH1q1bBzzvqXq/loaGBh05cmRI19y5c6cikcigr5lITU2N1qxZ0+d7ffPNN2vNmjVDOheA1Aqa9HuRKDs23qw83/zDCax+AQAAAAAAGLm0CF8WLVqk7OzsuLHNmzcP6Ry997fZbLrwwgtHPLdELrroorjnoVBI27dvH9I5tmzZEvf8zDPPVHm5eSmYCy64QDZb/I9rpN+j3NxcLV68eNDHNzY2avXq1Tp69Gjc+Fe+8hV985vfHNJcAKSePxA23eZypsUfB0iRSSXefla/+LXtA1a/AAAAAAAAjERa3G1zOp26+OKL48aeffZZxYbwyds//vGPcc8XLVqkwsLCpMyvt/nz5/dpVN/7+v3x+Xz661//Gje2fPnyfo8pKirSwoULh33NWCymZ599Nm7soosuksPhGNTxra2tWrNmjaqqquLGv/jFL+q2224b9DwAnD7+zpDptgynPYUzQTpY1d/ql9dZ/QIAAAAAADASaRG+SNKVV14Z97y6ulobN24c1LGVlZV9VpJcccUVSZtbb4Zh9Dn/+vXr+5TiMvOHP/yhT0+bwcy39z6bN29WZWXloK65cePGPitWBvs98vv9+upXv6q9e/fGja9cuVI/+MEPBnUOAKefWfhiGJLTkTZ/HCBFJpZ4tdRk9ctRVr8AAAAAAACMSNrcbbvsssv69DX5t3/7N/n9/n6Pi0Qiuuuuu+LGiouLB934fdasWXGPv//7vx/UcTfeeKMyMjJ6nnd2duqHP/zhgMfV1tbqgQceiBtbvny55syZM+CxX/ziF1VUVBQ39i//8i99+rj05vP5dPfdd8eNzZ49W5dddtmA1+zq6tJNN93UpwfPJz/5Sd17770y6BMBjBk+k/Alw2nnv+VxauUFrH4BAAAAAAAYDWkTvhiGoVtvvTVu7OjRo/r6178un8+X8JhgMKh/+qd/0nvvvRc3ftNNNykzM3PU5ipJEyZM0HXXXRc39uKLL+rHP/6xabm02tpaffWrX417PYZh6Fvf+tagrpmZmambbropbuzdd9/V9773PQWDwYTHtLe36+tf/7qOHTsWN37rrbcOeLM1HA7rW9/6Vp9eMRdddJHuu+8+2e2UKQLGErOeLy5KjlmSYXQ/+jOx2Kuls0sSbjva4NdWVr8AAAAAAAAMy+AafqTI8uXLdfnll+vFF1/sGXv77be1cuVKrVmzRuedd55KSkrU2Niobdu2ae3atfrwww/jzrF48WJde+21KZnvN7/5Tb300ks6cuRIz9hjjz2mbdu2afXq1Zo3b55ycnJUU1Ojl156SevWrVNLS0vcOdasWaPZs2cP+ppf+tKX9Pzzz2vHjh09Y88//7w++OADfeUrX9HixYtVWFiouro6vfHGG/rNb37TJ3i5/PLLdemllw54rZ///Od6+eWX48YcDoemTJmiBx98cNBzPtXcuXP7lJgDkBrmK1/SJodHkthshgpzuz+E4BwgXPv8pWdoa2W9En1s4E+vV+n8BeWy2Qa3MioQMO8rBAAAAAAAMJ6kVfgiSffcc49qamriylwdPXq0T9msRCZPnqwHH3xw0E3kR8rr9erhhx/W9ddfr9bW1p7xHTt29FnFk8jy5cv1ne98Z0jXdDgcevDBB3X99dfr8OHDPeP79u3THXfcMeDxCxYs0D333DOoa9XV1fUZC4fDevzxxwc/4V6uvvpqwhfgNDHr+ZLBypdxbdKEbJ07t1Rv7a7ts626wafN79fpY/NKT8PMAAAAAAAAxq60+7iz1+vV2rVr9YlPfGJIxy1dulRPPvmkSkoSl08ZLTNnztSTTz6pmTNnDum46667bthB0YQJE/Tb3/5WZ5999pCO++QnP6m1a9fK6/UO+ZoAxj6/yaoEyo5Z256qZu2patYHR1pMH4tnFZke/+RLe1V5uP/jAQAAAAAAEC/twhepO4B56KGH9Itf/EKLFy/ud99Zs2bp3nvv1bp16/o0o0+V6dOn63/+53905513atKkSab72Ww2XXjhhXriiSf0/e9/X06nc9jXLC4u1hNPPKF7771Xs2bN6nffJUuW6OGHH9bPf/5zghdgHPN1Ju75wsoXlORnae60goTbGlo7tftgc4pnBAAAAAAAMLalXdmxU1122WW67LLLVFdXp507d+ro0aPq6OiQ2+1WWVmZ5s+f32/YMRgffPBBUubqdDp1ww036IYbbtC+ffv0/vvvq76+XqFQSB6PR5MnT9aiRYuUn5+flOtJkmEYuvrqq3X11VfryJEj2rVrl2pqatTV1aXMzExVVFRo4cKFmjBhwrDOf++99+ree+9N2nwBnF5mK18yXIQv40F1Xbsi0USdXbrNnJhrGrJs2HJEHrdDNuNk7xe7zdDECdlJnycAAAAAAIAVpHX48pEJEybok5/85OmexqDNnDlzyGXIRmrSpEkjDqIAWJvPtOdLWi6CRJJFojFF+wlfcjwuTS3NVlVte59trb6gDh5r07SynNGcIgAAAAAAgGVwxw0Axgm/SfhCzxd8ZMEZhabb3v2wSdGYeXgDAAAAAACAkwhfAGAciEZj6gjQ8wX9y/NmaGpZ4lJix/1BHarpuyoGAAAAAAAAfRG+AMA40NEVltmaBcIXnGrhjH5Wv+xn9QsAAAAAAMBgEL4AwDhgVnJMInxBvFxvhqb1s/qlitUvAAAAAAAAAyJ8AYBxwBfoJ3xxEb4g3oIZhTJMtm3b26BgOJLS+QAAAAAAAIw1hC8AMA74OxP3ezEMyWE3u82O8Sq3n94vHYGwtn3QkOIZAQAAAAAAjC2ELwAwDpiVHctw2mUYhC/oa8GMItPVL3uPHFdNoz+l8wEAAAAAABhLCF8AYBwwKztGyTGYyfW6NGtynun213fVKhii/BgAAAAAAEAihC8AMA70t/IFMLP4zGJ5M50Jt/k6Q9q4tTrFMwIAAAAAABgbCF8AYBww6/lC+IL+OB02nTdvgun2t3fX6XBdewpnBAAAAAAAMDYQvgDAOGBadozwBQMoK/Ro5sRc0+3PvXqQ8mMAAAAAAAC9EL4AwDhgWnaMni8YhLNnFSsrw5FwW9PxgH7/t/0pnhEAAAAAAEB6I3wBgHHAZ9rzhT8GMDCX066PzTUvP/b8Gwe1/+jxFM4IAAAAAAAgvXHXDQDGAb9Z2TFWvmCQJpZ4Nb08J+G2WEx69I/vKRSOpnhWAAAAAAAA6YnwBQDGAX9nOOE4PV8wFOfMLpHbJLCrbvDpz29WpXQ+AAAAAAAA6YrwBQAsLhKNqqOL8AUjl+Gy69yzzMuP/fnNQzpc157CGQEAAAAAAKQnwhcAsLiOQOLgRZJclB3DEE0pzdaU0uyE2yLRmB77yx6FI5QfAwAAAAAA4xvhCwBYnK8zcb8XSXKz8gXDsGxOiemqqcN1Pr24+XCKZwQAAAAAAJBeCF8AwOL8/a18IXzBMGRmOHTuWSWm25997aCONvpTOCMAAAAAAID0QvgCABZntvLFbjPksBspng2sYlp5js6cnJdwWzgS02N/3qNIlPJjAAAAAABgfCJ8AQCL85uEL5luhwyD8AXDYxiGrvr4VGWY9A06WNOmFzcfSfGsAAAAAAAA0gPhCwBYnGn44nKkeCawmmyPS5efO9l0+x9fPUD5MQAAAAAAMC4RvgCAxflMer5kuQlfMHKLZhZpwYzChNvCkZh+/fz7lB8DAAAAAADjDuELAFicP2Cy8iWD8AUjZxiGvrpyrun7qaq2XevfPpziWQEAAAAAAJxehC8AYHGmZccIX5AkhbmZ+vvLZ5lu/+OrB1Xd4EvhjAAAAAAAAE4vwhcAsDjz8CVxo3RgOC5eXKH50xOXH4tEY/r1n/coHKH8GAAAAAAAGB8IXwDA4nydiXu+sPIFyWQYhm64Ypbp++pQbbteeOtQimcFAAAAAABwehC+AIDF0fMFqVKQ49aXLptpuv2516t0pJ7yYwAAAAAAwPoIXwDA4nz0fEEKnT+/VAtm9Fd+7H3KjwEAAAAAAMsjfAEACwtHogoEIwm3ZbkJX5B83eXHZivLJNw7XOfTX96k/BgAAAAAALA2whcAsDB/IHG/F4mVLxg9+dkZuu4T5uXH/vRGlQ7XtadwRgAAAAAAAKlF+AIAFuY3KTkmEb5g5Ayj+5HIeXNLteiMooTbusuP7aH8GAAAAAAAsCzCFwCwMLN+LxLhC0bGZjNUmJupwtxMOZ12OZ12ud3OnkdmpktfXTVPHpPydkfqfVq/+UjcMQM9AAAAAAAAxgrCFwCwMH8gcfjisNvkdPBHAEZXfnaGbvjUHNPtz756QAePtaVwRgAAAAAAAKnBx54BwML8nYl7vmRm2FM8E1jZnqpmSVIk2reMWFGeW7Mm5+mDw619tkWiMd3/9HZ9deVcZbjM35OzJuUnb7IAAAAAAAApwMeeAcDCzMqOUXIMqWIYhq46f6pp4Nd0PKDnXz+oWCyW4pkBAAAAAACMHu6+AYCFmZUdyzLpwwGMRHVduyLRxCHKOXMmaNOOYwm3vXegWdlZLs2anNczZrcZmjghe1TmCQAAAAAAMNpY+QIAFuZn5QtSKBKNKWrymDLBqyml5mHK2+/XqbG1s2d/sxAHAAAAAABgLCB8AQAL8wXMer4QviC1DMPQeXMnyJvpTLg9Go3plR3HFAxHUjwzAAAAAACA5CN8AQALY+UL0onLadfFi8plM4yE29s7QnrrvTr6vwAAAAAAgDGP8AUALIzwBemmMNetpXOKTbdX1bZr75HWFM4IAAAAAAAg+QhfAMDCfAHCF6SfWZPy+u3/smVPg5qOB1I4IwAAAAAAgOQifAEAC/N3Ju75kkX4gtPIMAydN2+CsrNM+r/EYvrb9qMKBBO/fwEAAAAAANId4QsAWFQoHFVXKHHz8swMe4pnA8RzOU70f7GZ93/506sH6f8CAAAAAADGJMIXALAov0nJMYmyY0gPBTluLZtdYrr9/aoWbdlTn8IZAQAAAAAAJAfhCwBYlL+zn/DFTfiC9DBzUq6m9tP/5X/fPqwDx46ncEYAAAAAAAAjR/gCABbl6y98YeUL0kR3/5dS5Zj0f4lEY/qPp3do6wf1ilKCDAAAAAAAjBGELwBgUf5A4mblGU67HHZ+/SN9OB02Xby4XHaT/i+NxwO678nt+tdfb9Zr79YoHImmeIYAAAAAAABDw0efAcCizFa+eDMTrzAATqf8bLfOmVOit3bXme5zrNGvx/6yR3/YtF+fOGeSLl5YoawBSugFQxEdqfepqrZddc0dstsNFedlqiQ/UyV5mSrMdctuI4wEAAAAAADJRfgCABblD5iELyblnYDTbebEXNU1d+hgTXu/+7X6gvrdy/v1/BtVumRRhVYsnaT87IzuoKXBp6qadh2qbVdVbZuONXb0W67MZhgqynWr+EQY81EoM6U0WwU57mS/RAAAAAAAME4QvgCARbHyBWONYRj62NxSNbd36bgvOOD+nV0RvfD2Yf3vliMqLchSTVP/QUsi0VhM9a2dqm/t1O5e25bOLtFXPjVbbhd/XQIAAAAAAENDnQ0AsCh/Z+KeLx7CF6Qxp8OmK5ZN1qQS76CPiURjOtroH3LwMpB3Kuv1n3/YRY8ZAAAAAAAwZIQvAGBRZmXHsglfkOYyXHZ9YtkkfffLS7T4zGIZxumby+6qFv36z3uSHuwAAAAAAABro44GAFiU36TsGCtfMFZMLs3WV/7uLCkmPf/6QW3cWq1QOPWrUN5+v07ZmU59acVMGaczCQIAAAAAAGMG4QsAWJTPpOxYdpYrxTMBRqalvUvnLyjX/BmF2rynTlver1NnV2RI53A5bSot8EiSmtsD8nUkDifNvLS1Wjkel676+NQhHQcAAAAAAMYnwhcAsCizsmOsfMFY5cl06tIlE3X+/DJt39ugN9+r1XFfsM9+TodNZYUelRVlqbzIo/Iijwpz3XGrVoKhiFrau9TS1qXm9oCiUamuuUMfVrcqEEwc7Pxh0wHleFy6aGH5qL1GAAAAAABgDYQvAGBRZmXH6PmCsaq6rl2RaHfvldKCLK26YJoO17WrtqlDdruhghy3CnPdyvG4ZDslaPF3hhL+92C3GZo9NV+SNGtS99c9B5v0k99uV1cocQDzf9dXypvp1JIzi5P98gAAAAAAgIXYTvcEAADJFwxFFDTpjcHKF4xVkWhM0VMekjR5QraWnTVBZ88q0bSyHOVkuaSY4vYze3wU5JxqWlmO/vGz82S3Je7tEotJjzy7Wx8cbhnV1woAAAAAAMY2whcAsCB/IHG/F0nKziJ8AT5iGN2PU82bVqh/uGqO6THhSFQP/n6XDte1j/LsAAAAAADAWEX4AgAW5DMpOSZJXla+AJIkm81QYW6mCnMz5XTa5XTa5XY75XY7dcmSSfp/rphtemxnV1j/8budOt4R6jlmMA8AAAAAADA+EL4AgAWZ9XuRJA83gIFBueJjU7Tqwumm21t9Qd27bquO+7pSOCsAAAAAADAWOE73BAAAyWe28iXTZZfDQe4O9LanqlmSFInG90paOLNQh+vatX1vQ8Lj6po79P+u3awbPjVHGS676flnTcpP3mQBAAAAAEDa4w4cAFiQP5A4fPFQcgwYEsMwdNX5UzV7inl4UtPUoRfeOpTCWQEAAAAAgHTHyhcAsCB/IJxw3JvlSvFMgLGluq5dkWisz/jS2cVqaQ+orrkz4XE79zWqKMetSRO8PWN2m6GJE7JHba4AAAAAACB9sfIFACzIrOyYl5UvQL8i0ZiiCR42w9CliyuUn51heuwb79WoMxDuOSZRiAMAAAAAAMYHwhcAsCA/4QuQdC6nXZedPVEed+KFw51dEW3eU5fiWQEAAAAAgHRE+AIAFsTKF2B0ZLkdunBhmen2gzXtOlzXnsIZAQAAAACAdET4AgAWZNrzhfAFGLGS/CydNTXfdPtbu+sUCCb+bxAAAAAAAIwPhC8AYEGmZceyCF+AZFg0s0g5HlfCbYFgRG+/X5/iGQEAAAAAgHRC+AIAFuQLUHYMGE0Ou03nzy+VYbL9UG27Dta0pXROAAAAAAAgfRC+AIDFxGIx85UvhC9A0hTnZWrutALT7W+9V2fafwkAAAAAAFgb4QsAWEwwFFU4Eku4jfAFSK6FMwuV501cfqwrFNGfX6/MZsVaAAAgAElEQVRSLJb4v0cAAAAAAGBdhC8AYDF+k5JjkuTNSnyTGMDw2G02nT+/TIZJ/bHKQy1670BTaicFAAAAAABOO8IXALCY/socsfIFSL7CXLfmTy803f6XNw6ppb0rhTMCAAAAAACnG+ELAFiMWb8XSfK4HSmcCTB+zJ9RqPzsjITbAsGIfvWn3ZQfAwAAAABgHCF8AQCL8QXCCcczMxyy2/m1D4wGu83Q+fNLTcuPbd/boFd3HkvtpAAAAAAAwGnDXTgAsBizlS+segFGV0GOWwtnmJcf+/9eqFTT8UAKZwQAAAAAAE4XwhcAsBizni/0ewFG37zphSrISVx+rKMrrAf+e6c6AualAQEAAAAAgDUQvgCAxfhNbux6CF+AUWezGTp/fplsJvXHqhv8eugPuxQKR1M8MwAAAAAAkEqELwBgMax8AU6v/OwMLZxpXn6s8nCrfvX8+4rGYimcFQAAAAAASCXCFwCwGH9nOOE4PV+A1Jk7tUAl+Zmm27dU1uupDfsUI4ABAAAAAMCSCF8AwGLMyo6x8gVIHZvN0PIlFab9XyTppXeqtX7z4RTOCgAAAAAApArhCwBYjFnZMY+b8AVIJXeGQ9dfMbvffku/e3m/3nyvNoWzAgAAAAAAqUD4AgAW4w+YlB3LpOwYkGr52Rn68ifPlNtlN93nsb/s0e6DzSmcFQAAAAAAGG2ELwBgIbFYTH6TlS+UHQNOj7Iij779xUWy24yE2yPRmB76n106VNue4pkBAAAAAIDRQvgCABYSCEYUiSZu4E3ZMeD0mT+jSF9bNc90e1cwop/9bqcaWjtTOCsAAAAAADBaCF8AwELMVr1IrHwBTrcLFpbr85fMMN3e5g/q/qd3qL0jmMJZAQAAAACA0UD4AgAWYtbvRVK/Tb8BpMYV507WirMnmm6va+nU/c/sVF1zRwpnBQAAAAAAko3wBQAsxGey8sWQlJXhSO1kAMgwuh8nnxu6dsVMLZ1dYnrModp2/cuv39YfXz2gUDiSglkCAAAAAIBkI3wBAAvxBxKHL1luh2wmzb4BjA6bzVBhbqYKczPldNrldNrldjuVlenSNz+3QHOm5JseG47E9NzrVfrXX2/WB0da5XY7B/0AAAAAAACnH+ELAFiIWc8XSo4B6cXltOv/XLtYk0q8/e5X19KpHz+xTf/xzA41twVSNDsAAAAAADBS1KABAAsxKzvm4dPwwGm1p6pZkhSJRuPGr1l+hn79p/fV5g/2e/zm9+u0Y1+DLllcoXPnliZcyTZrkvlKGgAAAAAAkFqsfAEAC/EHwgnHPZlk7UA6yvG49JWr5mjShP5XwEhSMBTV/24+ov969j0dqWtPwewAAAAAAMBwcTcOACzEbOWLl7JjQFqormtXJBrrM758SYU+rD6udyob1BWK9HuOuuZOPfb8HhXluTWp2KvFs4pVUTxweAMAAAAAAFKH8AUALMS05wtlx4C0EInGFE0QvkjSjIpcVRR7tW1vgz6sPj7guRpbA2psDWj7vka5XXYtmFGkBWcUatbEPBXmupM9dQAAAAAAMASELwBgIb4AK1+Ascztsuvj80o1syJXb71fp5b2rkEdFwhGtHlPnTbvqZMklRVmad60Qi08o0gXFngS9ogBAAAAAACjh54vAGAh/k6Tni9usnZgLCnOz9Snz5uipbOL5bAPPTipaerQX985on9/aru+df/f9P7BplGYJQAAAAAAMEP4AgAWQs8XwDpsNkNnTS3QZy6cpiml2cM+T1VNm2576DX9x1Pb1DrIlTQAAAAAAGBkCF8AwCKisZj8JmXHPIQvwJiV5Xbq4kXlWrF0ovKzM4Z9ng1bjuimH2/Qxm3Vpn1nAAAAAABAclCHBgAsItAVVszkfiorX4Cxr7zIo7LCLLX5QzrW6NexJr/qmjsUjgw+SPF3hvT4ix/o1Z3H9PeXz9K0spxRnDEAAAAAAOMX4QsAWIQvkLjfi0TPF8AqDMNQrtelXK9Lc6bmKxaLybAZ+rD6uI7U+XSk3jeo81TVtuvu//uOLl5Urs9ePIOAFgAAAACAJONuHABYhN+k34tE2THAqpxOuxbPKtE5Z5WqtMCj5raAtlXWa/OeOm3f29DvsTFJf9txTFv3NuhLK87URYsqZLMZA14zYFLeEAAAAAAAnET4AgAWYRa+GIaUmcGve2A8KMhx6+LFFbp4cYXe/bBRv/nLHtU2d/R7THtHSP/13G69uPmwrr5oupbOnjCoEAYAAAAAAJjjbhwAWITP5NPoHrdTNoMbqYDV7alqliRFolFJUkaGXTeunKvN79fp5W3VCoWj/R5/qLZd//HMThXnZeqiReU6a1pBXAgza1L+6E0eAAAAAACLsZ3uCQAAksPfmbjnCyXHgPHLYbfp0qWT9O1rF2vO1IJBHdPQ2qnf/22/fvGHXdq5r1HRaGyUZwkAAAAAgPWw8gUALMKs7JjXza96YDyprmtX5ERgYsiQ15MhSVpxzmTNqMjV37ZVy9dPj6iPNB0P6I+bDuiV7Ud1wcJyzSjLlcPB53YAAAAAABgM/gUNABZhdjOVlS/A+BKJxhQ99RE7+ZhSlqNVF0zTghmFgy5H2NLepT+9dlD/5+ev6q+bD6vV1zXKrwAAAAAAgLGPj0MDgEX4++n5AgAfcdhtWjSzSNPLc7Rtb4MO1/kGdVzj8YDW/mWPJKm0IEuzJ+dp1uR8zZqcpzxvxmhOGQAAAACAMYfwBQAswmfa84Vf9QD6yvG4dMniCrW0B/Tu/mYdqm0f9LG1zR2qbe7Q33YckySVFWZp1uT87kBmUp5yCWMAAAAAAOMcd+QAwCLMVr54KTsGoB/52W5dvKhcrb4u7drfpKqadsWGeI6apg7VNHXob9uPSpJK8jJVXuRReZFHZYVZPV/dLv7qCQAAAAAYH/gXMABYhN+s5wtlxwAMQp43QxcuLNfCM4LadaBJB461KTbUFOaE+tZO1bd2aseHjXHjRbluVRR7NbHYq4pij86YmKeKYo+MXv1nAiZhMgAAAAAAYwXhCwBYhM8kfGHlC4ChyPG4dP78Mi2cUaTdVc36sPq4ItFhpjC9NB4PqPF4QDtPCWXOmJirlRdM15Izi2WzGf0cDQAAAADA2EH4AgAWEI3F1BGg5wuA5PFmOXX+gjJ9+YrZemVbtXbsa1TT8UDSr/Nh9XHd/9R2FeW5dc0lZ+jj88qSfg0AAAAAAFKNO3IAYAEdgbBpjwZWvgAYifzsDH3m4hm6ePFEtfmDOnCsVVU17aqqaVNzW1fSrtPYGtAjf3xPv9v4oT5xziRdtLCMHjEAAAAAgDGLf9ECgAX4++mPQM8XAMmS43Ep35uhnBkuLZhRKH9nSLXNHd2Ppg61d4y8V0tTW0BPbdinP71+UJedPVErlk4iRAYAAAAAjDmELwBgAWb9XiRWvgBIrkg0puiJHjCZGQ5NK8vRtLIcSd1BcGNrQMf9QR33danVF1SbPzisnjH+QFjPvV6l9ZsP68L55Vp8ZpHOqMiVy2lP6usBAAAAAGA0EL4AgAX4OxP3e7EZhtwublQCSA2P2ylPaXzgG43F5O8M6bgvqFZfl477gmrxdQ26ZFkwFNWGbdXasK1aDrtNZ1TkaM6UfM2ZUqCpZdly2G2j8VIAAAAAABgRwhcAsAC/ycoXT6ZDhmGkeDYAcJLNMJSd5VJ2lksTS7w9401tAe0+0KxDte2mPat6C0eiqjzcqsrDrfqfVw/K7bJr9pR8zZ1WqLnTCjR5QrZstoF/5wX6KdUIAAAAAEAyEL4AgAX4TG4kUnIMQLoqzHHrokXl6ugKq6apQ2/vrlU4MrTyZIFgRDv2NWrHvkZJ3b/z5k0v1IIZhZo/o1CFuZmjMXUAAAAAAAZE+AIAFmC68sVN+AIgveV4XLp4yUR96uNTtf7NQ9r8fp26QpFhncvXGdJbu2v11u5aSVJRnlszKnI1oyJXU0qzNX96UTKnDgAAAACAKcIXALAAs54vrHwBMFbkeFz6xLLJunBRud7eXau3dteZBsuD1dgaUGNrQG/vrpPNZmj25HzNn1Go2ZPyNHmCl7KMAAAAAIBRQ/gCABbgNyk75nHzax7A2OJ2OTS1NFtlhVk6eKxN1fU+1TR3KBiKjui80WhM71c16/2qZklSntelhWcUaeEZRTprSr5cTnsypt8jFoupvqVTB2radLCmTW3+oEryM3Xp4onKz85I6rUAAAAAAOmHu3IAYAE+s7JjrHwBMAZFojHZDKOnZFg0FlNLW5dqmztU29ShupaOIfeH6a3VF9QrO47plR3H5HLYNGdKvhbOLNLCGUXDCkda2rt08ETQcrCmTVU17ero6rsq8aV3qnXtZTN14YIyVt4AAAAAgIURvgCABZiufCF8AWABNsNQYa5bhbluzZ1WoGg0psbjnapt6lBNc4caWgKKxoYfxgTDUe3c36Sd+5skfaAppdladEaRSvIzFQpHTz4i3V/DPc8javOHVFXbplZfcFDXCgQj+s0LldpSWa/VV8xWYa572PMGAAAAAKQvwhcAsACzlS9eyo4BsCCbzVBJfpZK8rO0QFI4ElV9S6eONfp1rNE/6CDEzKHadh2qbU/OZE3sPtisf/n126yCAQAAAACL4q4cAFiAv7NvaRuJlS8AxgeH3abyIo/KizySpI5AWDVN3UFMTVOHAsHIaZ5hYqyCAQAAAADrInwBgDGupsmfsK+ARPgCYHzKcjt6+sXY7YZKCjyqrGrW/qNt2nOoWZER9otJtt0Hm/Wvv35bX758li5dMnFQq2ACJuUmAQAAAADpgfAFAMa4379ywHRbYQ6fogYwvhmGoYklXk0s8ersti4FgmHtPdKqvYdbtO/IcXWahNdJu76k8mKP6ps7FYpETffrDEb0qz+9r7ffr9NX/26uivIyR3VeAAAAAIDRRfgCAGPYvupWbdvbkHDbhPxMTcjn5h0AnMrtcmjutALNnVagaDSm6gaf9h5u1d7DrWpo7Rzx+fOzM1RR7FFZkUcVRd1fXU67Gls79eymA6pu8Pd7/K79Tfqn/3xN82cU6qypBZpSli27zdazfdak/BHPEQAAAAAw+ghfAGCMisVieublD023r7pgGg2cASCB6rp2RaInS4/NnJirmRNz1d4R1JE6n6obfGr1BaWYZLcbstu6HzabLe65/cTzXI9L58ydoCkTchQKd69uiUTjV7kU5WVqzVVn6a3dtdq4tbrf0mfBUFRbKxu0tbJBmRl2zZqcrzlT8zW9Ind0viEAAAAAgKQjfAGAMWrrBw3af7Qt4bYpE7K17KwJKZ4RAIwNkWhM0Wjf8MPjdmr2lHzNnjK01SUOh01zpxVKklrauiT1DXg+UlHk0d+dP1Wvv1ujhtbAgOfu7Ipox75G7djXKJfTpqWzJ2jZnAmaNSlXGU77kOYJAAAAAEgdwhcAGIPCkaj++5X9ptu/cOkM2Vj1AgCnjVnAI0k5WS5dfu5k7alq0Y59jQlDmkSCoaje2FWjN3bVyOWwaebEXJUUZGlCXqZK8rNUnJ+pkjy3nA5CGQAAAAA43cZE+FJfX693331X1dXV6ujokNvtVllZmebNm6dJkyad7un1sX//fu3evVsNDQ0KBoPyeDyaPHmyFi1apLy8vFG55pEjR/Tee++ppqZGgUBAWVlZmjhxohYsWKCSkpJRueZY+7kAVvLKjmOqb0ncm2DBjELNmVqQ4hkBAIbCZhiaO61AE4u9euO9wa2COVUwHNXuqhbtrmqJGzck5edkqCQvUyX5mSrOy1SeN0Met1OeTMeJr0553A457LbEJwcAAAAAjFhahy8bN27UL3/5S23fvl2xWOJPBM6ePVtr1qzRqlWrTmtvg1AopCeffFKPP/64Dh8+nHAfu92u888/X1/72te0dOnSEV8zFovp2Wef1dq1a1VZWZlwH8MwtGTJEt14441avnz5iK8pja2fC2BFnV1hPff6wYTbDEO65pIZKZ4RAGC4cr3dq2Aqq1q0c39TT8+Y4YpJam7rUnNblyoPt/a7b4bLLq/7ZCCT63EpLztDed4M5WdnKM/rUr43Q7neDDkdBDUAAAAAMBRpGb74/X7dcccdevHFFwfct7KyUrfddpt+//vf62c/+5mKiopSMMN4VVVVuvnmm7V3795+94tEItq0aZM2bdqk66+/XrfffrucTuewrtnY2Khbb71VW7Zs6Xe/WCymrVu3auvWrbr88sv1ox/9SB6PZ1jXHGs/F8CqXnj7kNo7Qgm3nT+/TBOLvSmeEQBgJGyGobOmFWjmpDwdbfTrcG27qht8CkcGV45suLqCEXUFI2o60aemP95Mp/K83YGMYRiKRqOKRGM95dV6vsZiikRiisZiMtT9QSDD6H6NhnHyuWEYshmSzWaoMMeticXeEw+PCnPdfHgHAAAAwJiXduGL3+/XmjVrtHPnziEdt3nzZl133XV64oknVFxcPEqz62v//v368pe/rJaWloF3PsW6detUU1OjBx98UA7H0H4M9fX1+vKXv2y6wsbMiy++qNraWq1du3bIAcxY+7kAVtXS3qX/3Xwk4TaXw6arL5ye4hkBAJLF6bBpamm2ppZmKxKJ6lhThw6dCGKCoZGtiBkpX2dIvs6QqhuSf+79R9u0eU99z3O3y66KYk9cIFNR7JU3c3gfWgIAAACA0yHtwpc777yzzw3+8vJyrV69Wuedd55KS0vV0NCgbdu2ae3atdq//2TD6UOHDunmm2/WunXrhhxoDIfP59NNN93UJ3hZuHChVq9erblz5yo3N1c1NTV66aWXtG7dOrW2niz/sGHDBt1///363ve+N+hrhsNh3XLLLX2ClzPOOENr1qzR4sWLVVxcrJqaGr355pv6zW9+o5qamp79du7cqTvvvFMPPPDAkF7rWPq5AFb2x1cPKGhSkuaTyyYpPzsjxTMCAIwGu92mSSVeTSrxyrAZ8mQ6tWNvo3bua5A/ED7d0xtVgWBE+4+2af/RtrjxzAyH8r0ulRR4VJDrVmGuW4W5mXIa6i6Rlp2hnCyXbDZWzQAAAAA4/dLqTvjGjRu1fv36uLFly5bpF7/4hbKzs3vGcnJyNGPGDK1atUrf/e53447Zvn27nnrqKV1//fWjPt+HHnqoTwiyevVq3X777XGlEvLy8jRnzhx9/vOf14033qh9+/b1bHvssce0cuVKzZ49e1DXfPLJJ7V9+/a4sSuvvFI/+clP5HK5esZycnI0a9Ysffazn9U3vvGNuPJk69ev18svv6xLL710UNccaz8XwKqqG3x6bVdNwm3eTKeuPHdKimcEAEgFu83QnKkFmjO1QJ9YNlmH69pVXd+u5rYutbQF1NwW0HF/UCat+Cyjsyuszq6wjjV1mO5jM4zuICbHrYITYUxetutED5uMnq+ZGWn1zyAAAAAAFpQ2/+qIxWJ9VmOUl5fr4YcfltebuH+By+XS/fffryNHjmj37t0944888og+97nPKTMzc9TmW1dXp9/+9rdxYytWrNAdd9xhekxpaal++ctf6tOf/rT8fr+kk6/74YcfHvCanZ2devTRR+PG5s2bp/vuu092uz3hMTk5OXrkkUd01VVXxa2AeeCBB3TJJZcMWE97rP1cACv777/tN72xtuqCadxIAoBxwG4zNK0sRzbFVFF0soxsJBqTryOk9o6g2juCausIqd0flK8zrGAookAoomjU4umMpGgspub2LjW3d2l/P/u5XXYVnAhoCnIyVJDtVn5OxiljbmU4E//9GgAAAAAGI23u1G3YsEGVlZVxY3fddZfpDf6P2O123X333br66qt7xhoaGvTMM8/ohhtuGJW5StKvfvUrdXWdbE7qdrv1/e9/f8DjysrKdMstt+hHP/pRz9jGjRtVWVk54OqXp59+Wg0N8YW27777btPg5SNer1f//M//rH/8x3/sGduzZ482bNigFStW9HvsWPu5AGOd2524nv3uA016d39Twm2lBVm6/GNT5LDbBjy/88SNJLtt4H0BAOnrowb3HzEkZWc5lZ3llJS4t184ElVXKKJgKKKu4Cn/PxRRMByV2+XQcX+Xmo93qa0jqJBJmUsrCAQjOtbo17FGv+k+3kynCrIzlO1xKTvTKW+mU96sE18znd1jWS55M53KcjukmBSJRhWJxnp+PpFTH5GoorGYIpFE26Nxzz+6fk6WSzkel7KznIP6cx4AAABA+kib8OWFF16Ie15RUaHLLrtsUMeeddZZOvvss7V169aesfXr14/aTf5YLNanDNcVV1yhkpKSQR1/zTXX6IEHHlBHx8mSCS+88MKA4Uvva55zzjmaM2fOoK65fPlyVVRU6OjRo3HnGyh8GUs/F8CqotGYfvvXvabbr10xkxsyAIABOew2Oew2eRIE/Q6HTYtndf9dtqWtS7FYTB8eaVF7Z0gdgXD3oyusrmBEhiEZhiGb0V3myzAM2Wwnx4wTY1L335slyWYzVFbk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pLy8PK/rV6xYUSNHjlT37t196t9ms2natGl6//33lZOT41GdunXrasqUKbryyit96lOSPv/8c7366qvKyMjwaP2qVatq4sSJuuWWW3zuE8HHZrOpd+/e+vHHHx1+5mvyhZiGP+3bt08vvviitm/f7nXdTz/9VG3btvVoXeIapSklJUWvvPKKvvzyS6/rXnXVVXrjjTfUqFEjr+plZ2frjTfe0Ny5cz2uc8UVV+jdd9/1uq8CgTqO4L1Zs2YV3sA7fPhwseubeUOvPMUm53j/8WdMHz58WK+99pq+++47tw+EuBIWFqZhw4bp73//u0JCfJ+hIRDx9c0332jEiBFOb7g7ExUVpZdeesnn79LlXSDP1cV59tlnXV7XlCT5QlyXDHO+AChWWlqa+vXr51XiRZI2btyoRx55xCHzDyQlJWnDhg0+JV6k/JgcNWqUxowZ41P9l19+WVOmTPH4i54kHTt2TI8++qg2bdrkU58fffSRXnrpJY8vWKT8G0MJCQlatmyZT30iOM2bN89p4qUkiGn4y6pVq9StWzefEi/eIq5RWs6ePavHHnvMp8SLJG3ZskUPP/yw9u7d63GdnJwcPfXUU17d3Jak3bt36+GHH9a+ffu83UxJgTmO4Jvx48dr6dKlHt3MM1N5ik3O8f7lz5j+7bff9PXXX/uUeJHyE5BvvvmmnnjiCa9isqhAxNfSpUs1ePBgj29QS9LFixc1atQozZw506c+y7tAnauLs3btWp+va9whrkuOYccAFGvkyJEON1nq1q2rvn37qn379qpdu7ZOnTqlLVu2aNasWYYL8IMHD2ro0KFKTExUaCinHLjWsGFD3XDDDWrXrp2aNGmi6tWrKyIiQqdOndLWrVv12Wefadu2bYY68+fPV/Xq1TVs2DCP+5k7d64++eQTQ1mFChXUq1cvdenSRfXr11daWpp2796txMRE/b//9/8K18vIyNCQIUO0aNEir15L//rrrzV58mRDWVhYmLp27aoHH3xQjRo1UnZ2tvbv36/58+frq6++KhzWLy8vTyNGjCgcbx5lW3Jyst58801T2ySm4S8rV67UU0895TAUzY033qhOnTopPj5e1atXV4UKFXThwgUdPnxYP//8s9atW1fs0GT2iGuUpn/84x8OT4BGRESoW7du6tSpk+Li4hQdHa309HTt27dP3377rT777DOlpqYWrn/mzBk9/vjjWrp0qSIjI4vt880339Tq1asNZTExMerTp486deqkOnXqKCUlRUlJSZo9e7Z27Nhh6CshIUELFy5UdHS0x58zEMcRyp7yEpuc48uf2NhY3XjjjbruuuvUvHlzVatWTRUqVNDZs2e1fft2LVy4UN99952hztdff61Ro0ZpwoQJXvUViPjauXOnXnjhBcMDjSEhIercubN69eqlxo0by2q16sCBA1qwYIGWLFliuBabNGmSGjdurNtuu82rz4rgk56errFjx5reLnFtDoYdA+DWmjVrNHjwYENZu3btNHXqVKdjtmdlZem5557T8uXLDeWjR49Wnz59SnVbUXbMmzdPY8eOVWhoqO6++2716NFD7dq1K7bep59+qldeecXwxzU0NFSLFi1SXFxcsfVPnz6tTp066eLFi4VlsbGxmjlzpsv6H3/8sSZOnGiY4+jOO+/UO++8U2x/kpSZmak77rhDycnJhWWVKlXS1KlTXX7mpUuXasSIEYbP2apVK33xxRce9Yng9eSTT2rVqlWSpMjISLVq1UqbN28u/Lm3w44R0/CXffv2qVu3boan3ho3bqyXX35Z1157bbH1z507py+++EK33nqrGjdu7HZd4hqlaeXKlRoyZIihrG7dupoxY4aaNm3qst6xY8f0+OOPa/fu3Ybyp59+2uFa2d6vv/6qrl27GuIzLi5OM2fOVGxsrMP6NptNb7zxhv79738byvv3768RI0a47atAII4jlEyzZs0MyxUqVFCrVq3UqlUrtW7dWs8884zh52YMZVNeYpNzfGD4M6bXrl2rgQMHymKx6LbbblPPnj110003FTv596pVq/T8888rLS3NUD5z5kx16NDBo74DFV/dunXTzp07C5fDwsI0ceJE3X333U7X37Bhg5588klduHChsCw2NlYrV65URESEx/2Wd4E4Vxfn9ddfLzwvWywWtW/fXt9//71hHW+HHSOuzcOwYwBcstlsmjJliqGsbt26mjZtmsvJcsPDw/XWW285ZLY/+OADwwU2yreQkBDde++9WrZsmSZNmuRR4kWSevbsqXHjxhnKcnJy9P7773tU3z4OrVarpk6d6jZx079/fz366KOGsq+++spwQeDOJ598YrhgkfJfVXb3me+55x4NHz7cUJaUlKSVK1d61CeC04oVKwoTL5I0ePBg1a9fv0RtEtPwB5vN5jDcQLNmzfTJJ594lHiR8ifg7N+/f7GJF4m4RulauHChYTkkJETvv/++28SLlH8NPH36dIfJvpcsWVJsn2+//bbhpnHFihU1Y8YMpze3pfwbJyNHjtTtt99uKHcWp64E4jhCyVx55ZXq3bt34ZA2P/74o+bMmaMRI0a4vOlUUuUlNjnHB4Y/Y9piseimm27SggULNG3aNN16663FJl4kqVOnTnrvvfcc5nmxvw/iTiDiy1n8P/fcc25/r9ddd53Gjx9vKEtOTta8efM86hP5AnGudmfHjh2aM2dO4XKPHj101VVXlbhd4to8JF8AuLR69Wr9+uuvhrJRo0YV+0q51WrVq6++aig7deqUPvvsM9O3EWVT9+7d9eabb6phw4Ze1/3rX//q8Ad/7dq1ysrKclvv9OnTmj9/vqGsd+/eatWqVbF9PvPMM6pVq1bhss1m09SpU4utl52drenTpxvKbr/9dnXq1KnYuo899phatGhhKPM0yYTgc+HCBb3yyiuFy02bNtWAAQNK1CYxDX+ZN2+etmzZUrhccHMuJibG9L6Ia5S29evXG5Zvuukmh33oSp06dfTAAw8Yyvbv36/Tp0+7rPPLL7/o66+/NpQNGzbMo+GSxo4daxjSLCMjw6OxzANxHKHkPv/8c/3zn//Ugw8+qKZNm5Zo0m9PlJfY5BwfOP6M6RtuuEEfffSRx+dz+7r25/affvrJo4RioOLLfr2WLVs6JCid6dSpk0PydPr06T7PlVMe+ftc7U5OTo5eeumlwiG6qlev7pD88AVxbS6SLwBc+t///mdYrlevnsMJzZUWLVro6quvNpTZD0WG8suTp5Dc6dq1q2E5LS2t2NdoV69ebfjja7FY9Nhjj3nUX4UKFfTXv/7VULZ27VqH19PtbdiwQWfOnDGUedpnSEiIHnnkEUPZL7/8ooMHD3pUH8Fl0qRJOnXqlKT82Bs3bpzCwsJK1CYxDX/Iy8vTjBkzDGVDhw51+VR0SRHXKE0XLlxQenq6oeyaa67xqg1nb3udPHnS5fr219MVKlRQ9+7dPeqrVq1a6ty5s6FsxYoVxdYLxHGEsqe8xCbn+PLB7O+XNptNW7duLbZeIOLrt99+c3hItnfv3h4nAexvZv/+++/atGmTR3URXGbOnGm4DzJixAhVqVKlxO0S1+Yi+QLAqezsbH377beGsgceeEAWi8XjNh588EHD8rZt2/T777+bsn0o35o3b+5QVnBj2xX7iUSvvvpqr4Z86tatm2E5KyvLYYLG4vqsW7eurrvuOo/7vOeeexzGKbVvE8Fv06ZNhjf/unXr5vXNPmeIafjDunXrdOzYscLlChUqqGfPnqXWH3GN0mSfeJGkqlWretWGs/XdPVlpHwt33HGHVxOT28f0iRMnlJSU5LZOII4jlD3lJTY5x8MTvny/lAITX/Y/j4iIUJcuXTzu8/rrr3d4w42YLnsOHDhgeFOkffv2Dm9w+Yq4NhfJFwBObdu2zTBhlSSP5+UoYH9yzsvL07p160q8bUDRYQ4KuJtTKCsry2GYEW/juUGDBqpdu7ah7JtvvnFbZ+3atYbla6+91qsEZsHkfd70ieCSlZWl0aNHF46nHhMTo+eee86Udolp+MN///tfw3LHjh0d5rwwC3GN0hYTE+PwBOW5c+e8asPZ+jVq1HC67rFjx7R3715DmbcxHR8f7/CmpLv4CtRxhLKlPMUm53h4wtvvlwUCEV/2fbZu3dqrazOLxeLwFicxXfaMHj1amZmZkvLnXh4zZoxpbRPX5iL5AsAp+yGcrFar2rRp41UbDRo0cPgyWtzQUIAnij6FXaBatWou1z9w4IDDnDC+TEJnX2f37t0u101LS9ORI0f82ieCz9SpU/Xbb78VLo8YMcKUeTKIafiDzWbT999/byhr3759qfVHXKO0hYeHO0zq/eOPP3rVhv36sbGxqlevntN1nV33ehtfkZGRDmOnu4uvQBxHKHvKS2xyjoenvP1+KQUuvuyPXzP6PHr0qNO3QxGcPv/8c23cuLFw+fHHH9fll19uStvEtflIvgBwav/+/YblOnXq+PSka+PGjQ3LRW9CAr5yNnZngwYNXK5vH8+S1KRJE6/7ta/jLp5Lq8+zZ88qJSXF63bgf7t379ZHH31UuNyuXTuH4Rh9RUzDH/bv36/U1FRDWbNmzQzL58+f16pVqzRjxgy9/fbb+vjjj7Vo0SKfHrYgruEP9957r2F57dq1HsfryZMntWDBAkOZuzky7OMrNDRUjRo18mxDiwiGmOYa/s+lvMQm53h4ytvvl1Jg4uvMmTMOPzOjT5vN5vTzIPicPn1akyZNKlxu1KiRBg0aZFr7xLX5SL4AcGrfvn2G5bp16/rUjv2Yi8Fw4kPZlpubqyVLlhjKmjRp4vKpU8kxnq1Wq0+TRdsPc5CWlqbk5GSP+pQcjwdf+nTVNoJLXl6eRo8eXTgPQFhYmMaOHWta+8Q0/OGnn35yKGvatKkkKTk5Wc8995xuuOEGPfnkk5o8ebKmTZumCRMmaMSIEbr//vvVoUMHvf322w7DmLpCXMMfHnnkEcM+zs3N1ZNPPlnsRLAnT55UQkKC4QnKyy67TAMGDHBZxz4GYmNjPZ44tij7+Dpw4IByc3M96tMfxxHKnvISm5zj4amFCxcalqOjoxUfH++2TiDiy9n9FF/6dFaHezVlwyuvvGIYAnXs2LEKDw83rX3i2nwkXwA4dfLkScOysxOnJ+xPfnxpQ0l9/vnnOn78uKHs7rvvdlvHPp5r1qwpq9Xqdd/OkpCuYtq+T4vF4tMXTG/6RPCYO3eutm3bVrg8cOBAn57ecYWYhj/Yf0EKDw9XVFSUli9frvvuu09LlixxO9H4qVOnNG3aNHXq1MmjOd+Ia/hDdHS0pkyZYnij+/Dhw+rataveeOMNbd68WefOnVNOTo4uXLig7du36+2339Z9992nnTt3FtapWbOmpk+frooVK7rsy6zrafv4ysrKcvn0aCCOI5Q95SU2OcfDE+vWrdPWrVsNZZ07d3aY08heIOLLvk/J9xvj9nN4ENPBb82aNVq+fHnh8gMPPGD6kMDEtflCA70BAIKT/biI0dHRPrVjXy8jI0N5eXk+PVkFnDhxQpMnTzaUValSRX369HFbr7TiWcp/2s6TPiMjI4u9gPe0z2AYtxSuHT9+XG+99VbhcsOGDZWQkGBqH8Q0/MF+YvGKFStq9erVeuaZZ5SXl+dxOykpKUpISNBrr72mrl27ulyPuIa/tGnTRvPmzdPw4cO1Z88eSfn7a/bs2Zo9e7bbuhaLRZ07d9Y///lPh7kN7ZkV084SPOnp6apevXqp9enNcYSyp7zEJud4FCc1NdVhovKwsDCPhnEKRHw5i3VfjqWwsDBFREQoIyOj2D4RHFJTUzVu3LjC5apVq+qFF14wvR/i2nwkXwA45eyE6wtn9dLT032+2Eb5lZOTo2effdZh+JpnnnlGVatWdVvXPp4jIiJ82gZn9Vz9MQ9EnwgOY8eONeyjMWPG+Lz/XSGm4Q/nz583LGdmZurZZ58tTLxERETokUce0Z133qnLL79cUVFROnnypH744QfNnj1be/fuLaybk5Oj0aNHKy4uTi1btnTaH3ENf2revLkWL16spUuXasGCBVq/fn2xddq3b69Ro0YpLi7Ooz5K83ra05vNxDScKS+xyfGA4owZM0ZHjx41lPXt29ejycuDIaZL0m9kZGTQ3aSGa2+99ZZOnDhRuDx8+HBVq1bN9H6Ia/Px6DkApy5evGhY9nUMSW8uyAF3Xn/9dW3evNlQ1qFDB/Xq1avYuvbxXJI/5PZc/TEPKHMY/gAAFUdJREFURJ8IvGXLlumbb74pXL733nt14403mt4PMQ1/sE92p6enF8ZBvXr1tHjxYr3wwguKj49X1apVFRERofr166tHjx5avHixw/k5KytLzz//vGw2m9P+iGv424EDB/TDDz/ol19+8Wj99evXq2/fvpoxY4YyMzOLXb80r6eJaZREeYlNjge4M3PmTH355ZeGsmbNmmnYsGEe1Q+GmC5Jv/b1iOngtXXrVs2bN69w+eqrr1b37t1LpS/i2ny8+QIACHpz5szR3LlzDWW1a9fWpEmTHMb0BAIlJSVFr732WuFylSpVNHLkyABuEVAyrpIkUVFR+vjjj9WoUSOXdUNDQzVu3Dj9/vvvWrlyZWH53r17tXr1anXq1MnszQU8lpOToylTpuijjz4yDKEXFhamVq1aqUmTJqpUqZLS0tJ04MABbd++vTDZcvr0aU2ePFlLlizR+++/rwYNGgTqYwAAfLRq1SqH4awL5gQzc/JyoKSysrI0evTowuuVsLAwjRs3jvsgZQjJFwBORUVFGSbRzcrK8qmdoq/7FXA3MSlgb+nSpXr99dcNZZUqVdKHH37o8Wu2UVFRhmVPnlZ1xlk8F52wN9B9IrAmTJig06dPFy4/++yzTsc8NwMxDX9wtV8GDRrkNvFS1JgxY/TNN98Yrik+/fRTp8kX4hr+kJubq2effdYwYa3FYlGfPn2UkJDgdB6X8+fPa/bs2frwww+Vk5MjSdq9e7f+9re/af78+S4norWPLzOvp4lplER5iU2OBzizadMm/eMf/3BIvr/zzjseDTdWIBhiuqDf0FDvb+/aby8xHZymT59eOD+dJPXv39/j4U99QVybj2HHADhlf4JyduL0BBeqKIm1a9dqxIgRhgvjyMhIffDBB2revLnH7djHnK8XEM7quYrnQPSJwFm/fr0WLFhQuBwfH6+HHnqo1PojpuEPzvaL1WpVz549PW6jZs2a6ty5s6Fsy5Ytys3NLbY/4hql4aOPPnJIvEycOFEvvfSS08SLJFWuXFnDhg3TjBkzDJPOHjt2TKNGjXLZV2leT7t6mImYhifKS2xyPMDezz//rMGDBxv2aUhIiCZOnOj1UMHBENMl6df++CWmg8++ffv04YcfFi5fdtlleuKJJ0q1T+LafCRfADhlf4JKTU31qR37epGRkQoJ4dSD4m3evFnDhg0zPC0dFhamKVOm6JprrvGqrdKKZ8nzL5gZGRmFT8uWtM9guIDAHzIyMjRmzJjC5YLhlkrzVXBiGv7gbL/ExcV5/UbX9ddfb1hOTU3V3r17i+2PuIbZzpw5o6lTpxrKevfurfvvv9+j+jfccIOeeuopQ9m6desc5qQrYFZMO5sv0dMbGP44jlD2lJfY5ByPovbv368BAwY4zGk3duxY3X333V63F4j4chbrvhxL2dnZQfmGAP5gs9k0evRow5uJY8aMcTqXipmIa/NxBxSAU7Vq1TIsnzhxwqd27OvZtws4k5SUpMcff9ww8VpISIgmTJigW2+91ev27OPu1KlTTp+6Ls7x48eLbdtVuc1m8+k48qZPBMbUqVN18ODBwuW+ffuqWbNmpdonMQ1/qF27tkOZL8McOKvz+++/O5QR1yhtS5YsMTwRabFYNGjQIK/aePTRR1WpUiVD2cKFC52ua9b1tH18hYeHq2rVqh716Y/jCGVPeYlNzvEocOTIEfXr109nzpwxlA8fPtyrN3qLCkR8OSt3Vr84J06ccJjbj5gOLp999pl+/PHHwuUuXbro5ptvLvV+iWvzMecLAKcaN26sH374oXD52LFjPrVjX69JkyYl2i78+e3Zs0cDBgxweNJh3Lhxuueee3xqs3Hjxobl3NxcJScnq27dul61Y38BULFiRac3J531WVD/sssuK1GfEsdRsNm6dathOTMz02ECT1d27txpWD537pxD3ZYtW6pLly6GMmIa/uBsv1SpUsXrdipXruxQlpKS4lBGXKO0bdy40bDcvHlzl/O1uBIZGalrr71Wa9asKSyz/ztQwD6+kpOTlZeX5/Vb4Pbx1ahRI1mtVo/69MdxhLKnvMQm53hI+fHdt29fhxvICQkJGjhwoM/tBiK+XPXpLWI6+NlfW0RGRnr8HbNo0qaAfd369es7TTwS1+Yj+QLAKfsT1IkTJ5Senu71K3u//fabYdmbCexQ/hw8eFD9+vVzuCn3wgsvlGj+DGd/cPft2+f1l739+/cblt3Fs7MLiH379unaa68tUZ8xMTGKiYnxqg3415w5c3yum5qaqhkzZhjKHnzwQYfkCzENf3AWZ/ZPk/nK2bB8xDVK29GjRw3L3t5IcFUvOTnZ6Xr2MZ2Tk6MDBw44jTt3vInpQBxHKHvKS2xyjseZM2fUv39/HT582FD+6KOP6plnnilR24GIr2rVqqlq1aqG78v79u3zqj9nfVosFs7zQc7VW7aesv+O2a5dO4+TL8R1yTDsGACn7IfMycnJ0Y4dO7xq49ChQzp16pTbdoECx48fV79+/RxiZujQoerXr1+J2m7UqJHCw8MNZa6eUnVny5YthuUrrrjC5brR0dEON2d86dP+qRV3faL8IKbhDw0bNnR46OLcuXNet+OsjrMvX8Q1Spv9JKwRERE+tRMVFWVYLjoee1HOrnu9ja+MjAyHtyTdxVcgjiOUPeUlNjnHl2/nz5/XgAEDHOaZ69atm0aNGlXi9gMVX/bHrxl91qtXj3m9IIm4Lg0kXwA41bZtW4fxrO2HaiiO/fohISG66aabSrxt+PM5ffq0+vbt6/BEav/+/TVkyJAStx8eHq727dsbyryN58OHDzu8xlrc/DP2Y7Ju2rTJqz4vXryopKQkr/pE+UBMwx+sVqvD3+3du3d73Y6zOs7GXyauUdrsh8BzNvydJ+znDHA1x0XdunXVtGlTQ5m3Mb1161ZlZ2cbytzFV6COI5Qt5Sk2OceXT+np6Ro0aJB+/vlnQ3mXLl306quvOn0D1xeBiC/7Pn/66SfDXKnFsdls2rx5s1d9onwhrs1F8gWAU2FhYbrlllsMZYsXL/ZquJFFixYZltu2bavq1aubsn3480hJSVG/fv104MABQ3nPnj01YsQI0/q5/fbbDcubN292eP3cHfvXfMPDw9WhQwev+jx69Kg2bNjgcZ/Lli1TZmam2zYReHPmzNGuXbt8+u/BBx80tFWvXj2HdcaPH++0X2Ia/tCpUyfD8t69ex3eUCzO+vXrDcvVq1d3ObQNcY3SVKNGDcNyUlKS8vLyvG5n+/bthuWaNWu6XNc+Fr766iulpaV53Jf99XTt2rXVqlUrt3UCcRyh7Ckvsck5vvzJysrSE0884fDk/G233aZJkya5nJfIF4GIL/ufZ2Rk6H//+5/HfW7YsMFhbl5iOviMHz/e5++Yzh5gtV/H3VDZxLW5SL4AcMl+joEjR44YJhd159dff3XIjt91112mbRv+HNLS0jRw4ECHp6Lvv/9+jRs3ztS+br/9doWFhRUu22w2JSYmelT34sWL+u9//2sou/nmm4t9hfW6665TtWrVDGWezgeSl5enuXPnGsr+8pe/qGHDhh7Vx58fMQ1/uO222wxDj+Xl5Wn+/Pke109OTtbq1asNZfZPPhdFXKM0xcfHG5ZTUlL09ddfe9VGUlKSw3WLu3HQ7a9/09PT9cUXX3jU16lTp7R8+XJD2Z133llsvUAcRyh7yktsco4vX3JycvTUU085PPhx/fXXa8qUKYb4M0Mg4uvyyy9X8+bNDWWJiYkePyhrf8xVq1bN6/k88OdGXJuL5AsAl26//XaHcRdfe+21Yp+Iys3NdRhDtWbNmiWaMB1/PpmZmUpISHCYS6hz584aP368aa+CF6hRo4bDhHKJiYkOr6I78/bbbxsm07VYLHriiSeKrRcWFqaBAwcaylauXOnRjZ7ExESHcbSffPLJYuuh/CCm4Q+VKlVymHfro48+8mgSTJvNpjFjxjgMS/Poo4+6rENcozTZv9UtSRMnTtSFCxc8qp+VlaWXX37Zo3YLtGjRQrfddpuh7J133jHEqivjxo0zzFMTERGhAQMGFFsvEMcRyp7yEpuc48uPvLw8jRgxwuGB0fj4eE2bNs3neb7cCVR82cf+zp07HW54O7N69WqtXLnSUPb444+bnpRC2UZcm4vkCwCXLBaLnn76aUPZ0aNHNXjwYKWmpjqtk5WVpeHDhzuM75iQkOAwOSnKr4InkuzHeb755pv15ptvmvoqeFH2cZiTk6MnnnjCYRLGombPnq1///vfhrLOnTurZcuWHvXZu3dvxcbGGsqef/55h/FIi1q2bJkmTZpkKGvVqpXuuOMOj/pE+UFMwx/69+9vePotIyND/fv31549e1zWycrK0siRIx2+pN10001q27at2/6Ia5SWZs2aOYwpfuDAAQ0cOLDYG84pKSl64oknHIYca9OmjW644Qa3dZ9++mnDQyUXLlzQ3//+d5d92mw2jR8/3uFGgrM4dSUQxxHKnvISm5zjy4dx48bpyy+/NJS1bNlSM2bMMLzFa7ZAxNedd97pEP8TJkxweCOtqI0bN+qFF14wlMXGxurhhx/2qE+UL8S1eSw2byZwAFAuDRs2TCtWrDCU1atXT/369VP79u1Vq1YtnT59Wlu2bNGsWbMcLpzj4+OVmJio0NBQf242gti//vUvffDBB4ay0NBQPfzww4qMjPSpzZYtWzoMledMYmKiXnnlFUNZxYoV1atXL91999267LLLlJ6erl27dikxMVHfffedYd2qVatq4cKFqlu3rsfbtmbNGg0ePNhQFhYWpm7duqlr165q1KiRsrOztX//fn366adavny54fXa8PBwzZ8/n5sff0IvvPCCYfzyevXqeTy8YwFiGv6wcuVKh/Gjw8LC1KNHD911111q3LixIiMjdfLkSf3www/6z3/+4zCXV82aNbVw4UK382MUIK5RWvbs2aOHHnpI6enphvIKFSqoe/fuuu2229SkSRNFR0crLS1NBw4c0Lp16/Tpp5/q3Llzhjrh4eGaM2dOsQlFKf/mwccff2woq1atmh599FF17NhRderU0blz55SUlKTZs2c7JHkaNGighQsXKjo62uPPGojjCL5LSkpye4NpxowZhuWrrrpKV199tdN1K1eurEGDBnnUb3mJTc7x/ufPmP7ss880evRoh/IePXqoatWqHm6xUf369R3e1HIlEPGVlJSkXr16Gd4wDgkJ0V133aWePXuqcePGslqtOnDggBYuXKhFixYZ1rVYLJo2bZrDG3BwL1Dnam+8++67eu+99wxlu3bt8rod4tocJF8AFCs1NVX9+vVzGB7KEw0aNNDcuXNVq1atUtgylFX2N5zN8OCDD7qcmNze2LFjNW/ePK/7iIyM1IwZM9SuXTuv606fPl1vvvmm1/VCQkI0efJk3XPPPV7XRfAzI/kiEdPwj5kzZ2rixIk+1Y2JidH06dN15ZVXelyHuEZp+fbbb/Xkk086DInnDavVqsmTJ+vuu+/2aP2cnBwNGTLE6zlmpPzjJzExUU2bNvW6biCOI/hmwYIFevHFF01py5vrifIUm5zj/cufMe3sZnNJtWvXzuN5LqTAxNeXX36p5557Tnl5eV7XHT58uMPQUiheoM7V3jAr+SIR12Zg2DEAxYqOjtasWbO8fsX6mmuu0bx580i8IOiMGTNGQ4cO9Wp4szp16ug///mPzzchBg0apFdffdWrN3uqVKmiqVOn8kUPxSKm4Q8DBgzQxIkTvZ54u2XLlvr888+9SrxIxDVKzy233KJ58+bp8ssv96l+vXr1NGfOHI8TL1L+G77vvvuu18NgxMXFaf78+T7d3JYCcxyhbClPsck5HqUpEPF177336v3331eVKlU8rhMZGalXX3016G5QIzgR1yVH8gWAR6Kjo/Xee+9p6tSpio+Pd7tus2bNNH78eCUmJqpGjRp+2kLAcxaLRUOGDNGCBQt01113uZ2IrWbNmho6dKiWLl2qNm3alKjfHj16aOnSperevbvbOZCqVKmivn37avny5UH1uiyCFzENf3nggQe0YsUK/e1vf3P7hSgkJERt2rTRW2+9pS+++EL169f3ui/iGqWpdevWWrJkiSZOnKirr7662OFxQ0JC1Lp1a7366qtatmyZyyFE3AkLC9PYsWM1d+5cdejQQSEhrr+O169fXyNHjtTChQvVqFEjr/sqEKjjCGVLeYpNzvEoTYGIr44dO2r58uXq27evKleu7HK9qKgode/eXUuXLlWPHj1K1CfKF+K6ZBh2DIBPkpOTtX37dh09elTp6emKjIxUnTp11Lp1a59usACBlJqaqq1bt+rgwYO6cOGCrFarqlevrubNm6tFixaGiUjNkpmZqW3btmnfvn06f/68LBaLYmJiFBcXp9atWzNHEkqEmIY/5ObmKikpSXv27NGZM2dks9kUExOjmjVrKj4+3ucx1l0hrlGaLl68qJ07d+rQoUM6f/680tPTVaFCBVWqVEl169ZV69atvZrTwhNnz57Vtm3bdOjQIaWlpSksLEy1atVSy5YtfX6boDiBOI5Q9pSX2OQcj9IUiPjKycnRjh07tHfvXp09e1Y2m02VK1dWkyZN1LZtW0VERJjeJ8oX4tp7JF8AAAAAAAAAAABMxLBjAAAAAAAAAAAAJiL5AgAAAAAAAAAAYCKSLwAAAAAAAAAAACYi+QIAAAAAAAAAAGAiki8AAAAAAAAAAAAmIvkCAAAAAAAAAABgIpIvAAAAAAAAAAAAJiL5AgAAAAAAAAAAYCKSLwAAAAAAAAAAACYi+QIAAAAAAAAAAGAiki8AAAAAAAAAAAAmIvkCAAAAAAAAAABgIpIvAAAAAAAAAAAAJiL5AgAAAAAAAAAAYCKSLwAAAAAAAAAAACYi+QIAAAAAAAAAAGAiki8AAAAAAAAAAAAmIvkCAAAAAAAAAABgIpIvAAAAAAAAAAAAJiL5AgAAAAAAAAAAYCKSLwAAAAAAAAAAACYi+QIAAAAAAAAAAGAiki8AAAAAAAAAAAAmIvkCAAAAAAAAAABgIpIvAAAAAAAAAAAAJiL5AgAAAAAAAAAAYCKSLwAAAAAAAAAAACYi+QIAAAAAAAAAAGAiki8AAAAAAAAAAAAmIvkCAAAAAAAAAABgIpIvAAAAAAAAAAAAJiL5AgAAAAAAAAAAYCKSLwAAAAAAAAAAACYi+QIAAAAAAAAAAGAiki8AAAAAAAAAAAAmIvkCAAAAAAAAAABgIpIvAAAAAAAAAAAAJiL5AgAAAAAAAAAAYKL/D1c5bKBShEokAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<Figure size 1800x1200 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import pickle\\n\",\n    \"base = '/home/gezi/temp/ai2018/sentiment/tfrecords/word.jieba.ft'\\n\",\n    \"valid_infos = pickle.load(open(f'{base}/info.pkl', 'rb'))\\n\",\n    \"lens = [len(valid_infos[key]['content']) for key in valid_infos]\\n\",\n    \"sns.distplot(lens)\\n\",\n    \"plt.title('Jieba seg doc length')#标题\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 71,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAABl8AAARZCAYAAABE7xa4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4VHX6///XpBFIII0WQpcOUqRIEZCilA+iCKsgokSlWGBdXRBRRJEVu6CuoFjQSJMmwlcBpaMovYUSeg0hISEhhdT5/eGPLGdKMjOZFMLzcV17XXvuOe8yw5yT3XPP+32bzGazWQAAAAAAAAAAAHALj+KeAAAAAAAAAAAAQGlC8gUAAAAAAAAAAMCNSL4AAAAAAAAAAAC4EckXAAAAAAAAAAAANyL5AgAAAAAAAAAA4EYkXwAAAAAAAAAAANyI5AsAAAAAAAAAAIAbkXwBAAAAAAAAAABwI5IvAAAAAAAAAAAAbkTyBQAAAAAAAAAAwI1IvgAAAAAAAAAAALgRyRcAAAAAAAAAAAA3IvkCAAAAAAAAAADgRiRfAAAAAAAAAAAA3IjkCwAAAAAAAAAAgBuRfAEAAAAAAAAAAHAjki8AAAAAAAAAAABuRPIFAAAAAAAAAADAjUi+AAAAAAAAAAAAuBHJFwAAAAAAAAAAADci+QIAAAAAAAAAAOBGJF8AAAAAAAAAAADciOQLAAAAAAAAAACAG5F8AQAAAAAAAAAAcCOSLwAAAAAAAAAAAG5E8gUAAAAAAAAAAMCNSL4AAAAAAAAAAAC4EckXAAAAAAAAAAAANyL5AgAAAAAAAAAA4EYkXwAAAHBTmDBhgho2bJj7n+7duxf3lIBS7dy5c4ZrrmHDhlq6dGlxT6vUWLp0qdXne+7cueKeForIsGHDDP/2w4YNK+4pAQAAN/Mq7gkAAACgdDCbzTp58qTOnDmj6OhopaSkKCMjQ35+fgoICFBAQIDq16+v6tWrF/dUAQAAAAAoVCRfAAAA4LLU1FStXr1aa9as0fbt23X16tV82wQFBalFixa699571atXL/n7+xfBTAEAAAAAKDokXwAAAOC0lJQUzZ49W/PmzVNiYqJTbRMSErRhwwZt2LBBU6ZMUa9evTRmzBjVqFGjkGYLAEDBLF26VC+//LIhtnbtWlZzAgAAu6j5AgAAAKf8/vvv6t27t2bOnOl04sXStWvXtHz5cvXp00dTp05Venq6m2YJAAAAAEDxYeULAAAAHPbFF1/oww8/lNlstvl6QECAOnTooNtuu03BwcEKDg6W2WxWUlKSzp07pwMHDmjPnj26du2aoV1mZqYiIiI0fPhwfkUMAAAAALjpkXwBAACAQz766CPNmjXL5mudO3fW6NGj1apVK3l6eubZT1pamtavX6+IiAjt2rWrMKYKAAAAAECxIvkCAACAfC1atMhm4qVSpUp6//331b59e4f7Klu2rPr27au+fftq69ateuuttxQVFeXO6QIAAAAAUKyo+QIAAIA8HT9+XG+++aZVvE6dOlqwYIFTiRdLHTp00JIlS/TEE08UZIoAAAAAAJQorHwBAABAnl577TWlp6cbYoGBgfr2229VpUqVAvfv4+Ojl156SU2bNpW3t3eB+wMAAAAAoLiRfAEAAIBdGzdu1I4dO6zikydPdkvi5Ub9+vVzSz9Xr17Vnj17dPr0aV29elXlypVTcHCwmjRpottuu80tY1yXkpKiEydO6NSpU7py5YpSUlLk4+OjChUqKCQkRM2aNVOlSpXcOqY9GRkZOnDggE6ePKmEhARlZGTIz89PLVu2VIsWLQp17OzsbJ06dUpRUVGKj49XSkqKsrOzVbZsWfn5+Sk0NFTVq1dXzZo15eHhvsX3Fy5c0JEjRxQfH6/4+Hh5enoqKChIlStXVsuWLeXn5+e2sa67fPmy9u7dq0uXLikhIUFly5ZVaGiomjZtqurVq7t9PHeLiorSsWPHdOnSJV27dk3ly5dXnTp11KJFi0L5vCylpaXlfn7x8fHKyMhQUFCQQkJC1KRJE1WtWrVQxz916pSOHz+uhIQEJSQkyGw2y8/PT5UrV1bdunVVu3btfOtWlXRxcXGKjIxUQkKCLl++rJycHAUHB6tixYpq0aKFAgMDC30O0dHR2r9/vy5cuKC0tDQFBASoYsWKuuOOO1SxYkW3j3fixAlFRUUpNjZWycnJKl++vGrUqFFk77cwxcfHa8+ePTp79qxSU1NVvnx5BQcHq0WLFgoLCyvu6QEAgDyQfAEAAIBdc+bMsYq1b99effv2LfrJ5OPQoUOaOXOm1q1bp8zMTJvnhIWF6YknntDDDz/s0iqbrKws/fnnn9qwYYO2bdumqKgomc3mPNvUrFlT/fr107BhwxQcHOz0mEuXLtXLL79siK1duzb3Qf/Ro0f15Zdfas2aNUpNTbVqP2DAgEJLvhw4cEDz58/X6tWrdfXq1XzP9/f3V/PmzdW1a1f17t3bpQftMTExmjNnjjZs2KATJ07YPc/b21stWrTQ0KFD1adPH5lMJqfHutHatWs1Z84c7dixQzk5OTbPady4sYYPH677778/d7xhw4Zp27Ztuee0a9dOERERBZqLszIzM/Xdd99p8eLFdj8zb29vde/eXc8884waNWrk9jn88ssvWrRokbZv366MjAy759WvX1+9evVSeHi4/P393TL24cOH9d133+mPP/5QdHR0nudWqFBB7du3V58+fdSzZ0/5+Pi4ZQ6FLTExUREREVq7dq0OHTpk977k4eGhJk2a6B//+IcGDhzo9H2we/fuOn/+fO7xgAED9Pbbb+ce//rrr/ryyy+1Z88em+1NJpNuv/12Pffcc+ratatTY1vKysrS999/r0WLFunYsWM2z/H09FSnTp00evRotW7dOjfesGFDw3nPPfecxowZY9V+woQJWrZsmd059OjRI9952us7P3/99Zc+//xzbd261e49p169eho1apTuu+++At/jAACA+5F8AQAAgE3R0dHaunWrVXzo0KHFMBv7zGazZsyYoS+++ELZ2dl5nnv+/Hm9+eabWrJkib788kuFhIQ4PM7PP/+sKVOmKCEhwan5nTlzRp999pm++eYbjRs3zq2f32effab//ve/ysrKclufjsjIyNDUqVO1aNEiuw8FbUlOTtYff/yhP/74Qz///LN++OEHh9teu3ZNM2bM0Ny5c622wbMlMzNTO3bs0I4dOzRr1iy9//77atCggcPjXZeQkKBXXnlFa9euzffcQ4cO6aWXXtKSJUs0Y8YMl5Jt7nbw4EG99NJLioqKyvO8zMxMrV69WmvXrtXYsWM1atQot43/2muvaf/+/Q6df/ToUR09elRz587V888/r8GDB7s89tmzZ/X2229r7dq1+SZJr0tKStKaNWu0Zs0aNWjQQCtWrHB5/KKQnZ2tr776SrNnz1ZSUlK+5+fk5OjAgQM6cOCAZs+erWnTpqldu3YFnsfVq1c1btw4rV+/Ps/zzGaz9u3bp5EjR2rAgAGaOnWqvLycfyxx6NAhjR8/Pt/vdXZ2tjZt2qTNmzfr0Ucf1csvv1ziVzZlZGRoypQpWrRoUb7nHjt2TOPGjdPy5cv1ySefqFy5ckUwQwAA4Cj3rfkHAABAqbJu3TqrB5aVKlVS9+7di2lG1nJycjRu3DjNnDkz38TLjQ4ePKihQ4cqJSXF4TbXtypyVVpamqZMmaLJkye73MeN3njjDc2YMaNYEi8jR47UwoULnUq8FERsbKyGDRumr7/+2qHEi6UjR45o8ODB2rhxo1Pt4uPj9fjjjzuUeLnRtm3b9OijjyoxMdGpdu62b98+PfbYY/k+oL5RVlaWPvzwQ73//vsFHn/Tpk0aOnSow4mXGyUkJGjy5MmaOnWqS9+zP//8U4MGDdJvv/3mcOLFkjP3h+KQnJysp59+Wh988IFDiRdL586d0xNPPKHFixcXaB4JCQl65JFH8k28WFq2bJkmTJjg9HiufK/NZrMiIiI0fvx4l78PRSE9PV1PPfWUQ4mXG23ZskUjR4506u8gAAAofKx8AQAAgE1//fWXVaxNmzYu/Uq5sHz00UeGX6aHhoaqa9euatCggYKCgpSamqrjx49rzZo1OnfunKHtyZMn9cEHH+i1115zaeywsDA1btxY9erVU5UqVeTn5ydfX1+lpqbq0qVLOnTokLZs2WK1HdeCBQvUoEGDAq2AWbRokebNm5d7XK5cOXXq1El33HGHQkJCZDabdfHiRf31119urbEiSV988YXNFVGhoaHq1KmT6tWrp5CQEJUpU0ZpaWlKSUnR6dOndfToUe3Zs8fm1mh5iYuL08MPP2zY6ui6Bg0aqG3btqpXr54qVKgg6e+aLHv27NHGjRsND89TUlI0ZswYLViwQE2aNMl33KysLI0YMUJHjhyxeq1SpUrq2bOn6tevr6CgICUmJurkyZNau3Zt7vfs+PHjeumll5x6r+509uxZPfnkkza3g2vYsKF69OihsLAw+fr66tKlS9q2bZu2bNmSu2Xf7NmzC7Ry588//9TTTz9tMznYuHFjdevWLXf82NjY3PEttySLiIhQTk6OU9fphg0b9Oyzz9ocOygoSB07dlSzZs0UHBwsHx8fXb16VRcuXNCBAwe0e/fuEp90kf5O5j722GOKjIy0eq1mzZq688471bBhQwUEBMjLy0sJCQnav3+/Nm7cqPj4+NxzMzMz9eqrr6pixYq6++67nZ5HVlaWnn32WUMipEmTJrrrrrtUo0YNlS9fXomJidq7d69+/fVXq+/jihUr1LNnT/Xu3duh8a4njGx9r+vXr6/u3burRo0a8vPzy619s379+txE6MqVKx26/q8LDQ3N3YYvMTHRatu62267Ld+t25ypcTNx4kTD3946deqoS5cuqlu3rgICApScnKyDBw9qzZo1iouLM7Tdvn275syZoyeffNLh8QAAQOEymUvyzz4AAABQbHr27KmzZ88aYi+99JKeeOKJYpmP5d773t7eysrKyi2YPWHCBA0cONDmljIZGRn6+OOPNXv2bEPc09NT69evV5UqVfId/5NPPtGaNWs0aNAgde3aVbVr1863TUZGhhYuXKjp06crOTk5N+7j46PffvvNoXFt1Xzx9PTM/YXz4MGD9fzzzysoKMhm+/T0dJUpUybfcRyRnp6u9u3bGxIoZcuW1aRJkzRgwIB8Ez0ZGRnavn27li5dqpiYGH3//fd5np+Tk6Pw8HD9+eefhnirVq308ssv51nLJikpSZ999pnmzJlj+KV79erVtXz58nzriXz66af65JNPDDFvb2+NGTNGTzzxhM0HrmazWQsWLNC7776b+xn5+vrq2rVruecURc0Xs9msxx9/3CqBWqlSJU2ZMsXu6rXz58/r1Vdf1R9//CHJeu6SNG3aND344IN5jp+QkKD7779fMTExhni1atX0xhtvqEuXLjbbXbx4UZMnT9aGDRusXvvvf/+rnj175jmuJJ0+fVqDBg2yWglSsWJFPffcc/rHP/6RZwI5IyNDmzdv1sKFC3Xs2DGtW7cu3zFdlV89p7zYqkVSr149TZw4UR07drRb/+PatWv67rvv9PHHHxtqYwUEBOinn37Ktw6TZc2XMmXK5K5Gq127tl5//XV16NDBZtv4+HiNGzdOW7ZsMcTr1q2rX375Jc9xpb+/1+Hh4VbJ30qVKmny5Mm65557bLZLSUnR9OnT9d1330my/b12pC5LQf69bLGsB3XjZ1mpUiVNmjRJvXr1stk2JSVFU6ZM0Y8//miIV6hQQZs3b5avr69LcwIAAO7FtmMAAACwkpGRYbVSRJKaNWtWDLOxLTMzU2azWYGBgZo3b54eeughu3v5+/j46N///rceeughQzw7O1tLlixxaLzhw4drxYoVevzxxx1KvFwfd9iwYZo7d67hYX9GRobmzp3rUB+2XE+8TJgwQW+88YbdxIsktyVeJGnr1q1WK1cmT56sgQMHOrTCxsfHR506ddIHH3xglQiz5auvvrJKvAwdOlTz58/PM/Ei/f0QcsKECfrPf/5jiJ87d07z58/Ps210dLRmzZpliHl5eenDDz/UqFGj7P7S3WQyaciQIZo9e3Zu7QXLh7xFYfny5TYTL3Pnzs1z28CwsDB9+eWXuvfeeyW5PvcPP/zQKvFSvXp1zZ8/327iRZKqVq2qWbNmqX///lavTZo0yaH5jBs3zirxUr9+fS1evFhDhgzJd+Wej4+PevTooS+++CL3YX1J8/PPP1slXnr27Klly5apU6dOeRZe9/X11ciRIzVr1izD9zgxMdHqO++I68mC22+/XQsXLrSbeJGk4OBgzZw506r20okTJ7Rjx458x/rll19sJl4iIiLsJl4kyc/PT6+88kruFmfFcU064vpnWaNGDS1cuNBu4kX6+z29/fbbuuuuuwzxpKQkrV69ulDnCQAAHEfyBQAAAFZiYmJs7ovvzPYpReWtt97K3RYmPy+++KJVMsLyV9j2lC9f3um5XdeoUSO98MILhlhB6yz06tVL4eHhBerDWZYroXx9fXXfffe51FfZsmXzfD0tLU1fffWVIXb33Xfrtddey/PhsqWBAwfqH//4hyH27bffWm1vdaOFCxcaVgVIUnh4eG5SIj9t2rSx+vcuSraSBu+9955q1aqVb1tPT0+99957Lv+aPz4+XsuXL7fq89NPP813VYX0dwJr2rRpVg/obfVracuWLdq7d68hFhQUpK+//lqhoaEOvoP/cfUzKExms1mfffaZIdaoUSNNnz5dPj4+Dvdz11136dlnnzXEli5dqsuXLzs9pwoVKujjjz9WYGBgvudeT4RbcuQ+bGul3FtvvaU6deo4NE9nruHi4u3trenTpyssLCzfc00mk9VKHMnxv2kAAKDwkXwBAACAFXvFm6/X1Sgp2rVrpx49ejh8fmBgoLp27WqIHTp0qEgKx/fv39+QNLh8+bJOnjzpUl8eHh4aP368u6bmMMtaGOXLly+0GkBLlixRQkJC7rGHh4deffVVl/p69tlnDZ99bGys9uzZY/PcnJwcq8RYYGCg1YPq/AwdOtThh8LutG/fPqs6IPfcc0+eKxIs+fr6ulyvZvHixbm/4L/u4YcfVuPGjR3uw8vLS5MmTbKK57dNna3VVJMmTVLlypUdHruk27Bhg44ePWqIvfLKK/nWHbElPDxcfn5+ucfp6enatGmT0/089thjqlatmsPn33XXXVb1hGzVrrnR8ePHtXPnTqt+8lpJZcvLL7/s9jpY7tSvXz+nVpjWq1dPTZs2NcTy+ywBAEDRKbn/qwMAAADFxt62LAVZ/VEYLFc0OOL22283HKemplptkVQYypcvr5CQEEPM8lf6jmrfvn2x/Crf8pftcXFxOn36dKGMZbl1Tvv27VWjRg2X+goNDbVaSXFjrYUbHT9+XLGxsYZY3759812pY8nDwyPf2iiFwdbDc1eukx49eqhSpUpOt/v999+tYo888ojT/bRr107169c3xKKioqyKjF+XnJys7du3G2JhYWEOF3K/WVheF7Vr11a7du1c6svX11d33nmnIWbvusiL5XaO+fH09LRKGOSXiLbcflCSBg0a5NS40t91hzp27Oh0u6Lijr9pp06dctNsAABAQRXOz9QAAABwU7O15Zgkp7Z7KgquPHSsWbOmVezq1atOb0tkNpt14MABRUZGKioqShcvXlRKSoqSk5OVlZVls01iYqLh+MKFC06NeZ3lA9OiYllnxWw261//+pf++9//urStkz0ZGRlWiak77rijQH1Wr15dR44cyT0+ePCgzfNsrYixXC3lqLvvvlsffPCBS21dZfm5lStXzqouhCM8PT3VvXt3LVy40OE22dnZ2rdvnyFWt25dqySKo3r37m21ymPXrl02t47asWNHbi2k6+677z67daBuVpbJkVatWhWoP8skrr3rwp6aNWuqSpUqTo9reR++evVqnudbXpcmk0mdO3d2elxJ6tatW4ncmsvX11fNmzd3up3lZ5mdna2UlBTDqiYAAFA8SL4AAADAiq+vr814UlJSian7UqZMGYdqSFiytXonvwd/lud+9dVX+umnn3T+/Hmnx3d13Bs1adKkQOO6qnHjxmrSpInhAW1kZKR69eqlPn36qE+fPmrfvr3d74+jDhw4YLV11ZIlS/Tbb7+53Gd0dLTh+MYtzW4UFRVlFXP1865bt67KlClj9V4Kk+WWQ40aNXI5AWG5OiE/J0+eVGpqqiHmzBZKlix/0S/9/f5sJV92795tFStowq6kiYmJsbrnbN68Wffff7/LfVquJLJ3XdjjSB0hWyzvw8nJyXmeb3ld1qpVS/7+/i6N7cwWeEWpWrVqLm0fZ+tvWnJyMskXAABKAJIvAAAAsBIQEGAz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559/3qooeWRkpCIjIx3qZ9iwYZo4caJTY3fp0kVfffWVxo4da/XwPT4+XitXrtTKlSud6rOk8fHx0ddff6033njD5n3l8OHDTtXZuVmYTCa988478vT0tLlCKjMz0+4WcxUqVNDMmTNVo0YNq9ccvS6HDh2qH3/80WrFptlsVnR0tM06aAXZ6gwAANzc2HYMAAAATuncubNWrVql0aNHWxVEd1a5cuX08MMPa/Xq1XrxxRfl4+Pjplm63wsvvKCnn35aJpPJ4Taenp4aPXq03nnnHafalVQVK1YscB+tW7fW/Pnz1bZtW4fbBAQEaNasWZo4cWKB5xAWFma1ZVNeHnroIf3www9WNWDsqVGjhr788svcuis3rjyR/q5lU1SaN2+ub7/91matCns8PT31z3/+0+b2Ts7q2rWrvv/+ezVr1szptoGBgXr99df16quvurRa6M4779SiRYt09913O932upCQEJfbFoUyZcrorbfe0nvvvWczoeCMkJCQm2Z1hoeHh95++2198MEHDiVwpf99H9q0aWN1TUqOX5dly5bVV199pU6dOjk1ZwAAcGti5QsAAACc5ufnp3/9618aNWqUVq1apdWrV2vHjh0OFaEPCQlRixYt1Lt3b9177703TR0Uk8mk559/Xl26dNHMmTO1ZcsWuzVuypYtqx49emjEiBFq1KhREc+08EyZMkWjRo3Shg0b9Ndff2nPnj2KiYnJt52vr6+6du2qAQMGqFu3bi6NbTKZ9Pjjj2vw4MFasmSJVq1apT179tjcpupGHh4eaty4sTp06KCuXbuqbdu2TifCbr/9di1evFjbtm3T6tWrtXv3bsXGxurKlSsqU6aMQkND1bRpU/Xo0UM9e/aUp6dnblvLX70HBAQ4NXZBNW3aVMuWLdO3336rRYsW6dSpUzbP8/b21t13361nnnlGTZo0cev4ixcv1i+//KJFixZpx44dhq3NLNWrV0+9evVSeHh4gRNVNWvW1Oeff669e/cqIiJCv//+u+Lj4/NsExISoo4dO6pfv37q0qVLgcYvKv3799f//d//6eeff9ZPP/2knTt3KiUlJd929erVU4cOHdS5c2d16tRJXl431+OBfv36qUePHlq/fr1+/fVXRUVFKTY2VikpKfL391f16tV1xx13qG/fvoY6L7GxsVZ9OXNdVqlSRV9//bUiIyO1atUqHTx4UCdPntTVq1eVmpqab10hAABw6zCZb7ZNXgEAAFAi5eTk6OTJkzp9+rSio6OVmpqqjIwM+fn5KSAgQIGBgWrQoEGJrqPgjKSkJO3cuVMXLlxQUlKSPD09FRQUpDp16qh58+YlehWPO126dElnzpzRuXPnlJiYqLS0NHl4eMjPz09BQUGqV6+e6tatWygPdjMyMrR//37FxMToypUruf8O18euU6eO6tSp41Ch9sJw6tQp9erVyxD7z3/+o0GDBhXLfCTpyJEjOn78uC5duqRr166pfPnyqlWrllq2bFkkW6KlpqZq7969unTpkuLj45WZmamgoCAFBwerSZMmCg0NLbSxzWazDh8+rDNnzig+Pl6JiYm535fQ0FDddtttqlGjxk2/Si0rK0sHDx7UhQsXdOXKFSUmJspkMuXei2vVqqW6devKz8+vuKdaLH744QdNmjTJEPvtt98KvHoIAADAEskXAAAAACgEc+bM0bRp0wyxFStWqEGDBsU0IwDPPPOM1q5dm3scFBSkP//8sxhnBAAASitqvgAAAACAm2VkZOi7774zxK6vBAJQPI4fP67169cbYm3atCmm2QAAgNKO5AsAAAAAuNm0adN0/vx5Q2zQoEEuFY8HUHAZGRkaN26cVa2uhx56qJhmBAAASjv+lz8AAAAA2LBu3TqtWbNG2dnZDrfJyMjQ5MmTNW/ePEPcy8tLgwcPdvcUgVvO999/r3379jnVJiYmRo8//rgiIyMN8dq1a6tz587unB4AAEAu91e9BAAAAIBS4NixY/rggw9UtWpV3XPPPerSpYuaNGmiihUrGs7LyclRVFSUNm3apLlz5+rixYtWfT333HOqXr16UU0dKLXWr1+vN998U40bN1bPnj3VsWNHNWjQQP7+/obz0tPTtX//fq1atUpLlixRamqq4XUPDw9NnTpVJpOpKKcPAABuISRfAAAAACAPFy9eVEREhCIiIiRJFSpUUEBAgHx9fZWcnKyEhARdu3bNbvtOnTpp1KhRRTVd4JZw6NAhHTp0SJ988olMJpOCg4NVvnx5eXp6KikpSQkJCcrKyrLbfsyYMWrbtm0RzhgAANxqSL4AAAAAgBOSkpKUlJTk0LkDBw7U66+/Tq0XoBCZzWZdvnxZly9fzvdcb29vvfLKKxoyZEgRzAwAANzKSL4AAAAAgA2NGzdWvXr1dOzYMafbNm/eXKNHj1aPHj0KYWbAratjx446cuSIYmNjnWrn4eGhe+65R88884waNWpUSLMDAAD4H5PZbDYX9yQAAAAAoKQ6deqUtm/frr179+r06dM6f/68kpKScrcaCwgIUEBAgGrWrKnWrVvrzjvvVPPmzYt51kDplZOTowMHDmjnzp06cOCAzp49q+joaCUnJys9PV0+Pj6512WDBg3Utm1bdezYUTVq1CjuqQMAgFsIyRcAAAAAAAAAAAA3YuNhAAAAAAAAAAAANyL5AgAAAAAAAAAA4EYkXwAAAAAAAAAAANyI5AsAAAAAAAAAAIAbkXwBAAAAAAAAAABwI5IvAAAAAAAAAAAAbkTyBQAAAAAAAAAAwI1IvgAAAAAAAAAAALgRyRcAAAAAAAAAAAA3IvkCAAAAAAAAAADgRiRfAAAAAAAAAAAA3IjkCwAAAAAAAAAAgBuRfAEAAAAAAAAAAHAjki8AAAAAAAAAAABuRPIFAAAAAAAAAADAjbyKewKOuHTpkvbt26dz584pNTVVvr6+Cg0NVbNmzVSjRo3inp6V48ePKzIyUrGxscrIyJCfn59q1qypli1bKjAwsFDGPHv2rA4cOKDo6Ghdu3ZN5cqVU/Xq1dW8eXNVrly5UMYEAAAAAAAAAADWSnTyZd26dZo9e7Z2794ts9ls85xGjRopPDxc999/v0wmUxHP8H8yMzM1f/58RURE6MyZMzbP8fT0VKdOnTRq1Ci1adOmwGOazWYtX75c33zzjQ4fPmzzHJPJpDvuuENPPfWUunfv7lT/f/31lx577LECz9PSd999pzvvvNPt/RaFhIQU5eTY/i7eikwmk4KD/Qyx+PgUu9crAJRU3M8AlCbc0wCUFtzPAJQm3NMKj4eHSUFBfvmfWMRKZPIlJSVFL7/8slavXp3vuYcPH9ZLL72kJUuW6KOPPlLFihWLYIZGp06d0pgxYxQVFZXnednZ2dq0aZM2bdqkRx99VBMmTJC3t7dLY8bFxen555/X9u3b8zzPbDZr586d2rlzp3r16qVp06bJz694v4ienp7FOn5B5OSYSb7cwFa+MyfHzB8NADcd7mcAShPuaQBKC+5nAEoT7mm3nhJX8yUlJUXh4eEOJV5utG3bNj3yyCOKjY0tpJnZdvz4cQ0ePDjfxIul77//Xv/85z+VlZXl9JiXLl3SkCFD8k28WFq9erXCw8OVkpLi9JjuUr58eTVr1qzYxgcAAAAAAAAAoLCVuJUvEydO1N69ew2xatWqafjw4erQoYOqVq2q2NhY7dq1S998842OHz+ee97p06c1ZswYff/99/LyKvy3lpycrNGjRyshIcEQb9GihYYPH66mTZsqICBA0dHR+u233/T999/rypUrueetXbtWH374ocaPH+/wmFlZWRo7dqzV1mb16tVTeHi4WrVqpUqVKik6Olpbt27VnDlzFB0dnXve3r17NXHiRM2YMSPfsapVq6YRI0Y4PDdL586d0y+//GKI9e3bV76+vi73CQAAAAAAAABASWcyl6B1TevWrdPTTz9tiLVr106fffaZypcvb3V+RkaGxo0bp1WrVhnikyZN0qOPPlqoc5Wkt99+W998840hNnz4cE2YMMFm/ZmLFy/qqaee0tGjR3NjJpNJP/74oxo1auTQmBEREZo6daoh1qdPH7377rvy8fGxOj8pKUnPPPOM1SqZWbNmqVu3bg6N6Spbn8+CBQvUqlWrQh23MF2+nMy2YzcwmUyqWNHfEIuLS2a5JICbDvczAKUJ9zQApQX3MwClCfe0wuPhYVJIiH/+JxaxErPtmNlstlqNUa1aNc2cOdNm4kWSfHx89OGHH6pp06aG+KxZs5SWllZoc5WkmJgYzZs3zxDr2bOnXn75ZZuJF0mqWrWqZs+ebai5Yut925OWlqbPP//cEGvWrJk++OADm4kXSapQoYJmzZql0NBQQ3zGjBmFemFnZWVpxYoVhlidOnVu6sQLAAAAAAAAAACOKDHJl7Vr1+rw4cOG2CuvvCJ//7wzVp6enlYrQWJjY/XDDz+4fY43+vLLL5Wenp577Ovrq8mTJ+fbLjQ0VGPHjjXE1q1bZ/XebVm4cKFVTZupU6fmW8De399fr776qiF26NAhrV27Nt8xXbVp0ybFxcUZYg8++GChjQcAAAAAAAAAQElRYpIvlrVBwsLC1KNHD4faNmnSRK1btzbELLcicyez2WzVf+/evVW5cmWH2g8aNEjlypUzxCzfvy2WY7Zt21aNGzd2aMzu3bsrLCwsz/7cadmyZYZjDw8P3X///YU2HgAAAAAAAAAAJUWJSL5kZmZq48aNhtj9999vd/suWwYMGGA43rNnjy5fvuyW+Vnav3+/Ll26ZIg98MADDrf39/dXz549DbF169bl2SYuLk579+51eUwPDw/179/fENu0aZOysrIc7sNRCQkJWr9+vSHWqVMnValSxe1jAQAAAAAAAABQ0pSI5MuePXt09epVQ6xdu3ZO9XHnnXcajnNycrR58+YCz82WTZs2GY69vb11xx13ONWH5fuLiorShQsX7J6/ZcsW5eTkGGKW7zk/lucnJiZq9+7dTvXhiJUrVyozM9MQY8sxAAAAAAAAAMCtokQkX44cOWI49vT0VIsWLZzqo2bNmqpYsWKe/bpLVFSU4bhp06YqU6aMU33YStZY9nsjy/dSqVIl1ahRw6kxmzdvblUfJq8xXWW55VhAQIDVSh8AAAAAAAAAAEqrEpF8OXHihOE4NDTUqiaKI+rWrWs4PnnyZIHmZY/lfC3HdUTt2rWtEiGW/bp7TD8/P1WtWtXhMV1x5MgRRUZGGmJ9+/aVj4+PW8cBAAAAAAAAAKCkKhHJl+PHjxuOq1Wr5lI/oaGhhmN3JxYkKTs7W6dOnTLEXJmvp6enKleubIjlNd+b5TOyXPUiseUYAAAAAAAAAODWUiKSL5bF6y1XZzjKMrEQExPj8pzsSUhIsKpnUhTzvRk+o6ysLK1YscIQq1+/vpo3b+62MQAAAAAAAAAAKOm8insCkpSammo49vf3d6kfy3bXrl1TTk6OPDzcl2OynKutcR1l2c5W39Lfq23S09OLdExXbNq0SXFxcYbYgAED3NZ/SWAymWQyFfcsSg5bn8XfMT4kADcX7mcAShPuaQBKC+5nAEoT7mmFx1RCH9iWyOSLr6+vS/3YapeamupyosIWW8kKd83XXiKkOMZ0heWWY15eXurfv7/b+i8JgoP9insKJV5IiPuuNwAoTtzPAJQm3NMAlBbczwCUJtzTSrcSse1YWlqa4djV4uy2EhIpKSku9WWPrWRFmTJlXOrLsp0zyZfCHtNZCQkJWr9+vSHWuXNnVapUyS39AwAAAAAAAABwsygRyRfc/FauXGlVC6e0bTkGAAAAAAAAAIAjSkTypWzZsobjjIwMl/q5du2aVczPz73bRJUrV84qZlmPxVGW7Wz1XVxjOstyy7HAwEB169bNLX0DAAAAAAAAAHAzKRE1X8qVK6ekpKTcY1tJFEfYaueu5EJe/blrvs4kXwp7TGccOXJEkZGRhth9993n8vZxJVl8fIpycszFPY0Sw2Sy3pvy8uVkmfmIANxkuJ8BKE24pwEoLbifAShNuKcVHg8PU4ms1V1iki83Sk5Odqkfy3a+vr7y8HDv4h5byQp3zddeIsTT01NlypQxrFop7DGdYbnqRSq9W46ZzWaZuSPewGQVMZvFZwTgJsT9DEBpwj0NQGnB/QxAacI9rbCU1I+wRGw7VrlyZcPxxYsXXerHsp1lv+4QFBQkb2/vPMd1lDPzLamfUVZWllasWGGINWzYUE2bNi1QvwAAAAAAAAAA3KxKRPKlbt26huMLFy641I9lu9tuu83lOdnj6empWrVq5TmuI7Kzs3Xp0iVDLK/5ltTPaNOmTYqLizPEHnzwwQL1CQAAAAAAAADAzaxEJF8sEwAXL15Uamqq0/2cPHnScFynTp0Czcsey/meOHHC6T5Onz6trKwsQ8wyweLuMVNTU61WvuQ1piMstxzz9vZW//79C9QnAAAAAAAAAAA3sxKRfGnYsKHhOCsrS/v27XOqjzNnzig2NjbPft2lQYMGhuPIyEhDPRZH7Ny5M99+b2T5XmJjY3X27Fmnxty7d6+ys7MdHjM/CQkJWr9+vSHWpUsXBQcHu9wnAAAAAAAAAAA3uxKRfGnZsqXKly9viG3bts2pPizP9/DwUOfOnQs8N1u6dOliOM7MzNTu3bud6mP79u2G4wYNGqhatWp2z7/rrrvk4WH85yroZxQQEKBWrVo51ceNVq5cqczMTEOMLccAAAAAAAAAALe6EpF88fb2VteuXQ2x5cuXy2w2O9zHjz/+aDhu2bKlQkJC3DI/S7fffrtVoXrL8fOSnJysX3/91RDr3r17nm0qVqyoFi1auDym2WzW8uXLDbEuXbrIy8vL4T4sWW45FhwcbPXvCAAAAAAAAADAraZEJF8kqU+fPobjc+fOad26dQ61PXz4sNVKkt69e7ttbpZMJpNV/6tWrbLa9syepUuXWtW0cWS+luds27ZNhw8fdmjMdevW6fz5806Pac+RI0cUGRlpiPXv31/e3t4u9wkAAAAAAAAAQGlQYpIvPXr0sKpr8p///EcpKSl5tsvOztYrr7xiiFWqVEkPPfSQQ+M2bNjQ8J9hw4Y51O6pp55SmTJlco/T0tL05ptv5tvu4sWLmjFjhiHWvXt3NW7cON+2Dz/8sCpWrGiITZo0yaqOi6Xk5GRNnTrVEGvUqJF69OiR75j2WK56kaQBAwa43B8AAAAAAAAAAKVFiUm+mEwmPf/884bY+fPn9fTTTys5Odlmm4yMDP373//WgQMHDPHRo0erbNmyhTZXSapSpYoeeeQRQ2z16tV655137G6XdvHiRY0YMcLwfkwmk/75z386NGbZsmU1evRoQ2zfvn0aP368MjIybLa5evWqnn76aV24cMEQf/7552UymRwa11JWVpZWrFhhiDVt2lSNGjVyqT8AAAAAAAAAAEqTEpN8kf5eAdKrVy9D7K+//lL//v0VERGhY8eOKSkpSSdOnNDixYs1YMAA/fzzz4bzW7VqpcGDBxfJfJ977jnVqFHDEPv66681ePBg/fLLLzp79qwSExN1+PBhffrpp3rggQcUFRVlOD88PNyppMWQIUPUsmVLQ2zlypV68MEHtXTpUp08eVJJSUk6evSovv32W/Xv31/btm0znN+rVy9169bNyXf7P5s2bVJcXJwhxqoXAAAAAAAAAAD+ZjI7U9W+CCQnJys8PFz79u1zum3NmjU1d+5cVa5c2eE2lludtWvXThEREQ63P3r0qB599FFduXLF4TbXde/eXZ988onTRe9jYmL06KOP6syZM06P2bx5c33zzTfy9/d3uu11Y8aM0Zo1a3KPvb29tXnzZgUFBbnc583i8uVk5eSUqEumWJlMJlWsaPwuxcUl2139BQAlFfczAKUJ9zQApQX3MwClCfe0wuPhYVJIiOvPuwtLiVr5Ikn+/v765ptvdM899zjVrk2bNpo/f75TiRd3qF+/vubPn6/69es71e6RRx7Rxx9/7HTiRfp7y7N58+apdevWTrW79957C5x4SUhI0Pr16w2x7t273xKJFwAAAAAAAAAAHOH8k/8i4O/vr08//VRr167V7NmztXv3brvnNmzYUOHh4XrggQdcrmFSUHXr1tWyZcs0b948RURE6OzZszbP8/DwUKdOnTR69Gi1adOmQGNWqlRJc+fO1Y8//qhvvvlGR44csXvuHXfcoREjRqh79+4FGlOS/t//+3/KzMw0xNhyDAAAAAAAAACA/ylx247ZEhMTo7179+r8+fNKTU2Vr6+vQkNDdfvtt1vVXCkJjh49qoMHD+rSpUvKzMyUn5+fatasqZYtWxbaCpGzZ89q//79io6OVnp6usqWLauwsDC1aNFCVapUKZQxb0VsO2bEckkApQX3MwClCfc0AKUF9zMApQn3tMJTUrcduymSL0BJ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rudymWhoKO/f/JSmuth3oKPfemd3oexrRER0dAhrAAAAAEiPVIcv69evj9WrV8fGjRujt7f0b1ifcMIJsXLlyrjooosikymv1c1I6O7ujrVr18Y999wTr776asnX5HK5+MhHPhJ/+Id/GKeddtqQ9+zt7Y2HHnoo1qxZE1u2bCn5mkwmE6eeempcddVVsXz58iHveeTe69ati7Vr18YTTzwR3d3JH3zW19fHkiVL4qyzzopLL700Jk+ePGz3AYyNQm9vJDyWo6bMmS8REc2NpQOWlvauam4LAAAAAFIhleFLa2tr3HDDDfHII48M+totW7bEn/3Zn8UDDzwQf/u3fxszZ84chTss9vLLL8fVV18dzz///ICvy+fz8fjjj8fjjz8eV1xxRVx//fVVV4Ts27cvrr322vjVr3414Ot6e3vjySefjCeffDLOP//8+Na3vhVNTU1V7fmObdu2xQ033BCbNm0q6/WdnZ2xYcOG2LBhQ3zoQx+KpUuXDml/YOwltRyLiMgeEb48t/2tAa+TdJUd+1oHPTciYtH86YO+BgAAAABGW+pmvrS2tsbKlSvLCl6OtGHDhrj88stj7969I3RnpW3bti0uvfTSQYOXvu6999645pproqen8qHSe/bsicsuu2zQ4KWvRx55JFauXBmtra0V7/mOxx57LD796U+XHbwAE1OhkBy+VDLzpbG+9O8AtHdU/mwEAAAAgLRIXeXLjTfe2O+D/aOPPjpWrFgRZ5xxRsydOzf27t0bTz31VKxZsya2bdt2+HWvvPJKXH311XHvvfdGTc3If2stLS2xatWqeOut4t/OXrJkSaxYsSIWL14cU6dOjZ07d8Zjjz0W9957b+zfv//w69atWxe33nprXHfddWXv2dPTE1/+8pf7tTb7wAc+ECtXroxly5bFrFmzYufOnfHLX/4y7r777ti5c+fh123atCluvPHGuO222yr+fh999NG45pprIp/PF61/5CMfiXPPPTeWLVsWM2bMiEmTJsWhQ4di+/bt8Zvf/CZ+/vOfD9qaDBhfkua9RETkSrQde233ociXCGy6uvP91iIi3jrUGa/sPJh4/ffM0b4QAAAAgPRKVfiyfv36ePjhh4vWTj/99Pjud79bNCdkypQpcdxxx8VFF10Uf/qnf1p0zsaNG+MHP/hBXHHFFSN+v7fffnu/EGTFihVx/fXX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6dKy9gXSK58v/ZyrqbLtmJkvAAAAAEwkqQlfIt6uADn//POL1p544om48MIL45577okXXnghDh48GC+++GL80z/9U3zqU5+K//N//k/R65ctWxaXXnrpqNzvl770pZg/f37R2l133RWXXnpp/OQnP4nt27fHgQMHYsuWLXH77bfHxRdf3G/4/MqVK+OEE04oe8/LLrusX3jx4x//OD796U/Hgw8+GC+99FIcPHgwtm7dGt///vfjwgsvjA0bNhS9/vzzz4+zzz677D2bm5vjG9/4RtHarl274lOf+lT8+Z//eTzxxBOxd+/eOHToUGzbti3uu++++OQnPxkPPvhg0TmzZs2Kb33rW2XvC6RXvlC6Hdjwtx0TvgAAAAAw/mR6K5lqPwpaWlpi5cqVsXnz5orPPfbYY+O+++6L2bNnl31O31Znp59+etxzzz1ln79169a44oorYv/+/WWf847ly5fH3/3d3w069L6v3bt3xxVXXBGvvvpqxXuecsopsWbNmmhubq743P/5P/9n3HLLLRWfFxExffr0+Id/+Ic45ZRTqjo/Ld54oyUKCe2W3o0ymUzMnFn8d2nfvpbE6i8mju8/vCV+9vTr/dZPP3F2rLropGhoqI2IiOe2vxUREa/sPDjgv53fvPxm/PuW/nOzpjbXxUUffX/RWjabiffOmxIREYvmT4+IiI6O7n7nQiU8z4CJxDMNmCg8z4CJxDNt5GSzmZgxo/LPu0daqipfIt6uslizZk18/OMfr+i80047LdauXVtR8DIcFi5cGGvXro2FCxdWdN7ll18e3/nOdyoOXiLebnl2//33xwc/+MGKzjvvvPOqDl4iIj7/+c/HLbfcEk1NTRWdt3jx4vhf/+t/jfvgBfhPSW3HstVWviS0HetS+QIAAADAOJS68CXi7QDm9ttvj+9+97uxbNmyAV+7aNGi+Pa3vx333ntvv2H0o2XBggXxz//8z3HjjTf2a0N2pGw2G2eeeWbcd999cdNNN0VtbW3Ve86aNSvuu++++Pa3v92veqevU089Ne644474u7/7u6qDl3dcdNFF8cgjj8R//a//NaZOnZr4umw2G0uWLIlbb701HnjggQF/LsD4M+xtxwaY+eI3QAAAAAAYb1LXdqyU3bt3x6ZNm2LHjh3R1tYWDQ0NMW/evDj55JNT+aH+1q1b4ze/+U3s2bMnuru7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9LVbtmyJP/uzP4sHHngg/vZv/zZmzpw5CndY7OWXX46rr746nn/++QFfl8/n4/HHH4/HH388rrjiirj++uujtra2qj337dsX1157bfzqV78a8HW9vb3x5JNPxpNPPhnnn39+fOtb34qmpqaq9gTI5wsl18eu8kX4AgAAAED6pG7mS2tra6xcubKs4OVIGzZsiMsvvzz27t07QndW2rZt2+LSSy8dNHjp6957741rrrkmenp6Kt5zz549cdlllw0avPT1yCOPxMqVK6O1tbXiPQEixq7tWGPCzJeDbV2JlZEAAAAAMFZSV/ly4403xqZNm4rWjj766FixYkWcccYZMXfu3Ni7d2889dRTsWbNmti2bdvh173yyitx9dVXx7333hs1NSP/rbW0tMSqVavirbfeKlpfsmRJrFixIhYvXhxTp06NnTt3xmOPPRb33ntv7N+///Dr1q1bF7feemtcd911Ze/Z09MTX/7yl/u1NvvABz4QK1eujGXLlsWsWbNi586d8ctf/jLuvvvu2Llz5+HXbdq0KW688ca47bbbqvyuIy699NKYPHlyRefMnTu36v2A9OhJbDs20pUvpcOXnnxvtHf2pO83CQAAAAB4V0tV+LJ+/fp4+OGHi9ZOP/30+O53v1v0Yf+UKVPiuOOOi4suuij+9E//tOicjRs3xg9+8IO44oorRvx+b7/99n4hyIoVK+L6668vmj8zbdq0OPHEE+Ozn/1sXHXVVbF169bDX7vrrrviwgsvjBNOOKGsPdeuXRsbN24sWvvEJz4Rt9xyS9TV1R1emzJlSixatCg+/elPxx/90R8VVck8/PDD8dOf/jTOPvvsir7fd3zhC1+I97znPVWdC4xvyW3HRjb+qE8IXyIiDrR2xfSmusSvAwAAAMBoS80vC/f29varxjj66KPjjjvuSKyyqKuri1tvvTUWL15ctH7nnXdGe3v7iN1rRMTu3bvj/vvvL1o799xz44YbbigKXo40d+7cWL16ddHMlVLfd5L29vb4+7//+6K1k046Kf7mb/6mKHg50pQpU+LOO++MefPmFa3fdtttWvUAFRurtmNJM18izH0BAAAAIH1SE76sW7cutmzZUrT21a9+NZqbmwc8L5fLxc0331y0tnfv3vjHf/zHYb/HI33ve9+Lzs7Ow8cNDQ1x0003DXrevHnz4stf/nLR2vr16/t9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RkTMmTMnLr/88qK1Rx55JP7qr/4qsV3arl274gtf+ELR95PJZOKaa64pa8/GxsZYtWpV0drmzZvjuuuui66u0h86Hjp0KL74xS/G66+/XrR+7bXXRiYz8Iel//Iv/xK///u/Hw888MCgIdg7enp64u67745Vq1ZFT09P0ddWrFgRs2bNKus6QDoltR2rGaW2Y3W1uUja6VC78AUAAACAdBi5gR9VWL58eZx//vnxyCOPHF574okn4sILL4yVK1fGGWecEbNnz459+/bFU089FWvWrIkXXnih6BrLli2LSy+9dFTu90tf+lI89thjsX379sNrd911Vzz11FOxYsWKOOmkk2LKlCmxc+fOeOyxx+Lee++Nt956q+gaK1eujBNOOKHsPS+77LL48Y9/XDTI/sc//nE899xzceWVV8ayZctixowZsXv37vjXf/3XuPvuu/sFL+eff36cffbZZe338ssvx4033hjf+MY34swzz4xTTz01TjzxxDjmmGOiubk56uvr4+DBg7F9+/bYsGFDPPjgg/3am0VEfPSjH43//t//e9nfJ5A+vb29A7QdG53wJZvJRH1dLjq6+lflHWrVdgwAAACAdEhV+BIR8Zd/+Zexc+fO2Lx58+G1HTt29GubVcqxxx4b3/nOd0Z0iPyRmpub44477ogrrrgi9u/ff3j96aef7lfFU8ry5cvjT/7kTyras6amJr7zne/EFVdcEa+++urh9a1bt8YNN9ww6PmnnHJK/OVf/mVFe0ZEdHR0xKOPPhqPPvpoxed++MMfjttuuy1qa2srPhdIj4SivoiIyI5S+BLx9tyXUuHLwTaVLwAAAACkQ2rajr2jubk51qxZEx//+McrOu+0006LtWvXxuzZs0fozkpbuHBhrF27NhYuXFjReZdffnnVQdGcOXPi/vvvjw9+8IMVnXfeeefFmjVrorm5ueI9q9HY2Bhf+cpXRnVPYOQkzXuJiMjlRu/tpKG+9HNT+AIAAABAWqSu8iXi7QDm9ttvj3Xr1sXq1atj48aNia9dtGhRrFy5Mi6++OJBZ5iMlAULFsQ///M/x/333x/33HNPURuyI2Wz2fjIRz4Sq1atitNOO21Ie86aNSvuu++++NGPfhRr1qyJ5557LvG1p556anzhC1+I5cuXV7TH7//+70ddXV088cQT8cwzz5RsJ9ZXNpuN448/Pj75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r+Oll16KdevWRVdXV8lzMplMnHzyyfGJT3wiLr744mhoaOj3vMDwy+WEL2876ZjpyeHLhj2Ry+fH3M8DAAAAgNKqMnxpbW2NG2+8MZ544ole37tmzZr4yle+Ej/5yU/i29/+djQ3N1dghYXefPPNuPbaa+O1114r+b7u7u5YuXJlrFy5Mq644oq44YYboq6ubkBz7ty5M66//vp49tlnS74vn8/Hc889F88991ycf/758Vd/9VfR2NjY53keeuihuOOOO/q1tnw+Hy+++GK8+OKL8T//5/+MW2+9NT70oQ/16xrA8CtV+TLWsoaTjpkWj/7TG0XjrYe6YuO2ljh69sRhWBUAAAAA1arquva3trbG0qVL+xS8vNMzzzwTl19+eezYsWOIVpZs7dq1cdlll/UavPR0//33xxe/+MVeq0iSbN++PT7zmc/0Grz09MQTT8TSpUujtbW133MO1ObNm+Pzn/98LF++vGJzAuWRtudLNhPDWmk4HE6YPyVqa5I/8yv2fQEAAACgh6qrfLnpppti9erVBWNz586Nq666Ks4+++yYPXt27NixI37961/HvffeG2vXrj3yvvXr18e1114b999/f9TWDv1Ha2lpiWXLlsWePYUP3k499dS46qqr4qSTTorJkyfHli1b4sknn4z7778/9u7de+R9Tz31VNx+++3x5S9/uc9zdnV1xXXXXVfU2uzd7353LF26NE477bSYMWNGbNmyJf7lX/4lfvjDH8aWLVuOvG/16tVx00039buaJSJi/vz58d73vjdOOeWUOOaYY+Koo46KpqamqK2tjdbW1njjjTfi2WefjYceeqhgznw+H7feemvMmzcvzjnnnH7PCwyPtHaP2ezYCl4iIsbV1cRxcyfHqxv3Fr22ZsOeuOB9C4ZhVQAAAABUq6oKX1asWBGPP/54wdhZZ50V3/3ud2PixH9r6TJp0qQ47rjj4uKLL44//dM/LThn1apV8Xd/93dxxRVXDPl677zzzqIQ5Kqrroobbrih4LfCp0yZEosWLYpPfepTcfXVV8frr79+5LUf/OAHcdFFF8WJJ57YpzmXL18eq1atKhi78MIL42/+5m9i3LhxR8YmTZoUCxcujI9//OPxx3/8xwVVMo8//nj84z/+Y3z4wx/udb5jjjkmvvzlL8dHP/rRWLAg/eFiU1NTzJo1K84+++z4T//p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3X///WFHm40aNUoVFRWaMmWKBg8erJqaGn366ad66aWXVFNTc+6+zZs3a8GCBVq8eHG3XvOwYcP05S9/WdOnT9fIkSOVm5ur1NRU1dfXq7KyUr/73e+0adOmoGdee+015ebm6v777+/WnADix+szDrY6yXyJm7LSgXr30/C6L02tZ+u+DOXoMQAAAAAAAMuzVPBl9erVWrFiRVDb9OnT9etf/1oDBgw415aVlaWRI0fqxhtv1L/8y78EPVNZWanXXntNc+fOjfl6n3nmmbAgyLx58/Twww8H1Z8ZOHCgxo4dq29/+9u66667tHv37nN9L774ombPnq3y8vKo5ly2bJkqKyuD2q6//nr927/9m1JSUs61ZWVlqaysTN/85jf1T//0T0FZMitWrNCHH36oq666Kqo5nU6nbrjhBn3729/W9OnTDe8ZMGCARowYoW9961t6/fXX9dOf/lQej+dc//PPP6/rr79eo0ePjmpOAH3DZ5L54qDeS9yMKjav+1J16CTBFwAAAAAAgH7AMr/KHAgEwrIxhgwZomeffTYo8HK+lJQUPfnkkxo3blxQ+3PPPafW1taYrVWSamtr9eqrrwa1XX311XrkkUeCAi/nKyws1AsvvBBUc8XodZtpbW3V888/H9Q2fvx4PfHEE0GBl/NlZWXpueeeU1FRUVD74sWLFejk+Bq73a6vfe1reu+99/TLX/7SNPAS6pZbbtFPfvKToDav16v/+I//iOp5AH2HzJe+505x6oKiLMO+nQcbDdsBAAAAAABgLZbZTVu1apV27twZ1Pboo48qMzPyb/g6HA4tXLgwqK2+vl6/+93ven2N5/vNb36j9vb2c9dutzuq2iZFRUVhx2+tXr067LUbef3118Nq2ixcuFAOhyPic5mZmfrRj34U1LZjxw6tWrUq4nM33XSTnnjiCQ0bNqzTtYX61re+FRasWbNmjTo6Oro8FoD48RpkW0gEX+KtrHSgYXtVNXVfAAAAAAAA+gPL7Kb96U9/CrouLi7WrFmzonr2wgsv1LRp04LaQo8v602BQCBs/Ouuu075+flRPX/TTTcpPT09qC309RsJnfPiiy/W2LFjo5pz5syZKi4ujjheqM6COp35xje+EXTd3NysqqqqHo0JILZ8JpkvDgfHjsVTeekgw/amVo+O1jfHeTUAAAAAAADoKksEXzwejz766KOg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OR3nFQEAAAAAAPSMZYIvNptNDz74YFDbkSNHdO+996qpqcnwmY6ODv3gBz/Qtm3bgtrvuecepaWlxWytklRQUKDbb789qG3lypX6xS9+YXpc2rFjx3T33XcHvR6bzaYHHnggqjnT0tJ0zz33BLVt2bJFP/zhD9XR0WH4zJkzZ3Tvvffq6NGjQe0PPvigbPx2O5C02j1+w3an3TIfC0giKU6HpozJM+1f8ddD8vujP4oUAAAAAACgr1mq4MfMmTN17bXXauXKlefa1q5dq9mzZ6uiokKXXnqp8vPz1dDQoI0bN2rJkiXas2dP0BhTpkzRrbfeGpf13nffffrggw9UXf2/R6K8+OKL2rhxo+bNm6fx48crKytLNTU1+uCDD7R06VI1NjYGjVFRUaHy8vKo57ztttv0zjvvaNOmTefa3nnnHVVVVenOO+/UlClTlJubq9raWn3yySd66aWXwgIv1157ra666qqo59y2bZtWrFgR9f2ffPKJ2tvbDfuysrL0j//4j1GPBSA2zDJfqPeCvjKyOFtVh07qxOnwz4/aEy1a9Vm1vjq9tA9WBgAAAAAA0HWWCr5I0uOPP66amhpt2bLlXNuRI0fCjs0yUlpaqqeffjpuReQzMzP17LPPau7cuTp58uS59k2bNoVl8RiZOXOmvv/973dpTqfTqaefflpz587VoUOHzrXv3r1bjzzySKfPT5w4UY8//niX5ty1a5deeOGFqO/fuHGjNm7caNhXXFxM8AWwALOaL04HmS/oG3abTReX52vlOuMaL6/8uUpjh+coLyvVsB8AAAAAAMBKLLfLlpmZqSVLluirX/1ql5676KKLtGzZMuXn58doZcZGjx6tZcuWafTo0V167vbbb+92oKigoECvvvqqpk2b1qXnrrnmGi1ZskSZmZldnhNAYqHmC6yoICddwwoHGPZ1eP1a/MYm08AhAAAAAACAlVgu+CKdDcA888wz+vWvf60pU6ZEvLesrEyLFi3S0qVLw4rRx8uIESP05ptvasGCBSopKTG9z26364orrtArr7yixx57TC6Xq9tzDh48WK+88ooWLVqksrKyiPdOnTpVzz77rH71q18ReAEgybzmi4PMF/SxaWMGy2E3DgIeqW/Wsg92xXlFAAAAAAAAXWe5Y8fON2vWLM2aNUu1tbXavHmzjhw5opaWFrndbhUVFWnChAkRgx3RqKqq6pW1ulwu3XHHHbrjjju0e/dubd++XXV1dfJ4PMrIyFBpaakmT56sQYMG9cp8kmSz2TRnzhzNmTNH1dXV2rp1q2pqatTe3q60tDQVFxdr0qRJKigo6NE83/zmN/XNb36zl1YNwApMM19MNr2BeMlMd2nqmMFav7POsH/N5hqVlw7Sl8YVxnllAAAAAAAA0bN08OULBQUFuuaaa/p6GVEbPXp0l48h66mSkpIeB6IAJA9qvsDKyocN1LETLaquazLs/+3KKl1QlKWCnPQ4rwwAAAAAACA67LIBQBIyr/nCxwL6ns1m05fHFyrDbfw7Iu0dPj371jZ5vNR/AQAAAAAA1sQuGwAkIbPMF4eDY8dgDakpDl05ZYhsJn8lD9U16Xer98Z3UQAAAAAAAFEi+AIASajD4zdsJ/MFVpI/KF0zpw017V+18bA2VNXHcUUAAAAAAADRYZcNAJJQe4fZsWNkvsBaLptYpJHF2ab9S97boYaTrXFc0VlNrR7tOXxKNceb4z43AAAAAACwPuPD1AEACc382DFi8rAWm82mOVeO0G/e/lwnmzrC+lvavXru7c/18HemxjRzy+8PaF/NaW3bd1xb953QgZrTCvytb+LIXN1z4zi5U/hnFQAAAAAAOItdAgBIQh0mwRenncwXWE9Gmkv/37cm6vHffnYu4HG+fUdP6w9r9unmq0b16ryNZ9q1dV+Dtu07oe0HTqi5zWt435a9x/Vf7+7QP31jvGxmRWoAAAAAAEBSIfgCAEnILPOFmi+wqnEX5GrOlSP1h4/2GvavWHtI5aWDNHFkbo/mqa49o1XrD2nDzjodqDkd9XMbqur1YeURzZxqXqMGAAAAAAAkD4IvAJCEOjx+w3YHNV9gYd+8cqS27z+unYdOGvb/5p3tWvDdaSrMSY96TLfbJenssWIvvfO53vyfPfIbpddE4bVVu3XhBbkaXpQV8b62Nk/3JgAAAAAAAP0Gv+IMAEmIzBf0R3a7TXd/fZwy01yG/U2tHi387Wfauu94l8ZtafPo35dt1O8/7H7gRZK8voAWv7FZre3Gx5MBAAAAAIDkwS4bACSZQCBgXvOFzBdY3KABqbrraxea9re0e/V/3tisP609qECg80jKsePNeuw3a7Vpd0OvrK/2RIueer1SOw+dUFV1Y9AXAAAAAABIHgRfACDJeLx+w6LlkuS087EA65s4MlfXX1Jq2h8ISG98uFf/+cftpllekrT9wAn9+IW/6khDc9RzOx12jR6arallg03v2bbvhCp39U4wBwAAAAAA9E/UfAGAJGOW9SJR8wXWYzP5KzlnxgjtOXJKuw+fMn127fZa1Rxv1vxvTlRutvtceyAQ0KoNh/Xaqj3yR5EdMzAzRcWDM1Scl6n8nDQ5HXYFAgGdON2mAzVnDJ9575MDstukvGy3hhYM6HQOAAAAAACQWPgVZwBIMu0ev2kfNV9gJXa7TbnZacrNTpPL5ZDL5ZDb7ZLb7VJmRqoemjtNk0blRRzjUG2Tfvrbz3Sgtklut0tOp0NL39+tVz/YHTHwkuKy65ILC/StK0do9uUXaFpZvgpz02W32eT3BxQISF8aV6AB6cb1Z3z+gP6n8ojaOsyDnQAAAAAAIHGxywYASSZS5gs1X9CfpLtd+pfbp+rrlw2PeN/plg797Lfr9e4nB/T4y5/pw42HI94/MDNVN80crfLSQcpIMw6uSFKK06EZk4bIbvJjc6qpQ2u313b2MgAAAAAAQALi2DEASDKRamA4yHyBRe04cEKS5POHZ25NLc+Xy+XQ23/ZJ6/POJvF5w/olT9XdTpPacEAffWSUrlTnGpqau/0/txst6aV5Wv9zjrD/j2HT2nz7gZNGh05QwcAAAAAACQWdtkAIMmQ+YJENGFkru782oXKykjp9hiXTSzS1y8fIXdK1343pXzYQJXkZ5r2v/vJATWcbO32ugAAAAAAQP9D8AUAkoxZzRebJLtZdXPAIg7XntHBmtOGXx0en67/UqkKBqV1aUyH3aZvzBihr10+QnazM8QisNls+vKEQmW4jYM2Hq9f//3hnoiBTwAAAAAAkFgIvgBAkjHbAHY67LIRfIHF+fwB+SN8pbocuvriEo0pGRjVeJlpLs3/9iRNLcvv0bpSXQ7NmDxEZj9CtSdatXRl58eeAQAAAACAxEDwBQCSjFnNFwdHjiFBOOw2fWlcgb40rkCREllyslL1L3OnauTQ7F6Zd/DANE0ZM9i0/4PPqrVue22vzAUAAAAAAKyN4AsAJJlImS9AIhlTMlBfnV4id4ojrK+0IFN/9+Xhysly9+qc44YPUnFehmn/kne3q6nV06tzAgAAAAAA62GnDQCSjFnmi5PMFySggkHp+tqXh2nU0GylpTqUlZGiL11YoCsnD5HL2fv/DLLZbLpsYqHSUo3rv5xq7tDvVu/p9XkBAAAAAIC1GO8MAAASVofHb9juIPMFCSrd7dKXxxfGbT53ilNXTCrS+/o+KR4AACAASURBVOuqFTDo/3hrjS4ZV6Bxw3PitiYAAAAAABBf7LQBQJIxzXyJVBwDQJcU5qTrwgvMgyv/d8VO059FAAAAAADQ/xF8AYAkY37sGB8JQG+aNCpXA9Jdhn31J9u0/C/747wiAAAAAAAQL+y0AUCS6TAJvjio+QL0KqfDri9PMD/ubOX6Q9pfczqOKwIAAAAAAPFC8AUAkgyZL0D8FOVmaMqYwYZ9gYD00p92yuszrsMEAAAAAAD6L3baACDJdHiMN3qdZL4AMXHN9BJlmhw/Vl3XpJXrDsV5RQAAAAAAINYIvgBAkjHLfHHY+UgAYsGd6tQNlw4z7V/+8QHVHG+O44oAAAAAAECssdMGAEnGrOYLmS9A7IwdnqOLx+Yb9nl9fv12RZX8gUCcVwUAAAAAAGKF4AsAJBlqvgB9Y94NFyrd7TTs21V9Ums2HY3zigAAAAAAQKyw0wYAScYs88VB5gsQU4MGpOo715SZ9r/xP3vUeKY9jisCAAAAAACxQvAFAJJMu8dv2E7mCxB7X5lSrPLSgYZ9re0+Lf1zlQIcPwYAAAAAQL/HThsAJBlqvgB9x2az6Y7ry+VyGv8TrHJ3gzZU1cd5VQAAAAAAoLcRfAGAJGNW88Vh5yMBiIeCQen6xhUXmPYvfX+Xmlo9cVwRAAAAAADobey0AUCSMc984SMBiJdrLi7RsIIBhn2nmzu0+I3Nam33xnlVAAAAAACgt7DTBgBJxOf3y+szrifBsWNA/DjsdlXcUC67zfjnbu/R0/o/b2xWe4dxsBQAAAAAAFgbwRcASCIdHr9pH5kvQGzYbGe/QpUWDNB1l5SaPrf78Ck9/fstptlqAAAAAADAuthpA4Ak0uE1D744yHwBep3dblNudppys9PkcjnkcjnkdrvOfd08a7SKB2eYPr/jYKN+/dY22R32oOcifQEAAAAAgL5H8AUAkkik36An8wWIvxSXQz/8zjTlZbtN79my97iefmOzvBGCpwAAAAAAwFqcfb0AAED8RA6+kPkCxNKOAyckna29FOq2a8bopXd36EyLx/DZjbvq9fOln+mmq0bJbjf+WS0rGdR7iwUAAAAAAD3CrzkDQBJpj1DzxWHnIwHoKzlZbv399eXKSDM/NmzHgUa9+dFe+f2BOK4MAAAAAAB0B5kvAJBEyHwB+t7h2jPymQRQrr5oqFasPaT2DuOf1W37Tqi13avLJxbJZrPJYbdpaMGAWC4XAAAAAAB0A7/mDABJpMNrvKHrsNtksxF8AeLB5w/Ib/KVnZGir140VCku83+i7T1yWp9sPSafz28axAEAAAAAAH2L4AsAJJEOk2PHHGS9AJaRk+XW1ReVyOU0/2fa7sOntHZ7HUeQAQAAAABgUQRfACCJtJscO+Z08HEAWEletltXTxsa8TjAXdUn9e6nB1V/sjWOKwMAAAAAANFgtw0AkkiH1zjzxWkn8wWwmsGD0jRr2lA5Ivx8Hj/Vpuff2qZPt9aQBQMAAAAAgIUQfAGAJNJhkvniIPMFsKSCnHRdNbVY9ggBGJ8voD+vq9bC365XXWNLHFcHAAAAAADMsNsGAEnELPgS6WgjAH1rSF6GrpoyRJ0lqO082KiHn/1EH206okCALBgAAAAAAPoSwRcASCKmx46R+QJYWvHgTF01dahSXJF/Vts6fPrtiiot/u8tajzTHqfVAQAAAACAUOy2AUASaefYMaDfKh6codmXXaAheRmd3rtl73H963+t1drttXFYGQAAAAAACMVuGwAkkQ6PSeZLZ+cZAbCEdLdTs6YV60vjCjo9LrC5zavn3/5ci5Zu0KfbjpkeOwgAAAAAAHqfs68XAACInw6vWc0XYvFAf2Gz2TSmZKCKctP1ybZjqj3R+v+zd+fhUVX3/8Df986afd9JAglLIGFXFOsKCCpacWkVwUpQK7auz0/FpYu2ti5orfarUmkLliBUvyLarwpVUKldRJYAQUIgIYTs+zaT2e/vjyRD7izJzGSSTDLv1/PkSe6Ze5bJkA937mfOOf2eX1LZhpLKNrzzuRIX5ibjspmpGJcYPkyjJSIiIiIiIgpOTL4QEQURdzNfFAN8gp6IAk9EqBpXXZCBmiY9dh+ohNUq9Xu+zmDB7gOV2H2gElmpkbh0ZirmTU2EVs3LQSIiIiIiIiJ/47ttIqIg4m7ZIc58IRqdBEHARTNSMDE9Gp/++wxO17R7VK+suh1l1e3YtvskLpiWhEtnpmJ8cgQEgYlYIiIiIiIiIn9g8oWIKIi4T77whivRaCSKAuKiQhAXFYJLZqbhgy9L8f6Xp2C19T8LppfBZMVXhdX4qrAaybGhuDA3GRfmJiM9KbzfRIzBYPbXUyAiIiIiIiIak5h8ISIKIkaL62XHOPOFaPRTKkT8YOEkzJgYh807i3GiotWr+rXNeuz4Zxl2/LMMKXFhuDA3CRfmJmNcYv+JGCIiIiIiIiJyxuQLEVEQcTfzhXu+EI1+x8ubAQBWmw23XjkZdc16HDzRgCOnGmEwuf7bd6emSYcP9pbhg71liI/WYtqEWOROiMUlM9KGYuhEREREREREYw6TL0REQcRkdjPzReTMF6KxJik2FFfPz8Si89NxvLwZB0804Exth9ftNLYasPdQNfYeqsbf/1mOa+Zn4vycBCgYN4iIiIiIiIjcYvKFiCiIGLnnC9GYV1nX4bTnS1SYGlfMSUNbpxElZ9twqqoNRi9nwwBAZUMn3vroGP7+r1DceGk25kyO55JkRERERERERC4w+UJEFERMFnfJF36CnWissNok2BySL70iQtWYOyUBsybF42x9J06ebUVtkx6uz3avpkmP1z84iqzUSNx8WTZyMmMGP3AiIiIiIiKiMYTJFyKiICFJkttlx7jnC1FwUYgCxidHYHxyBLqMFpyt60R5bQfqmr1LxJRVt+PFrYeQNyEWN12WjczkiCEbMxEREREREdFowuQLEVGQcLfkGMCZL0TBLESjxOSMaEzOiEaX0YKKuo6eREyXx20UnW5G0elmzJuaiBsuzUJSTOgQjpiIiIiIiIgo8DH5QkQUJPrbaFutVAzjSIgoUIVolJiSEYMpGTHoMlpwprYDZ+o8T8TsO16PAycacMnMVFw7PxOxkdohHjERERERERFRYGLyhYgoSJyoaHVZrlKKiAhTDfNoiCjQhWiUyMmMwbQJsYgM1+DLg5U4eqppwGXJrDYJXx6qwt7CapyXk4Arz0tHdlrUsIyZiIiIiIiIKFAw+UJEFCSKK1pclifFhkAUuOcLEbkXG6nBjZdn47Yrp+Dd3SdxsKRhwDo2ScK+4/XYd7we2amRuPL8dMydkgCFyGUOiYiIiIiIaOxj8oWIKAiYLTaUVre7fCw5lnszEJF7oiggLioEAJAcG4Yn7jgfR081YtvnJSg563pGnaPS6naUfngMcZFaLL4gAwvmjENYiPsZdwaD2S9jJyIiIiIiIhop/OghEVEQOF3TDrPF5vKx5LiwYR4NEY12OZkx+OXqeXhk+WykJ4Z7XK+p3YCtn5Xgvt99hU2fHEdNk24IR0lEREREREQ0cjjzhYgoCLhbckyjUiA2UoMBN3EgIgJwvLwZAGC1dSdzw0JVWLV0Ko6WNuHLg5Vo7TR51I7RbMU/9lXgH/sqkBAdggmpkchOi8Si8zIQouHlKREREREREY1+fHdLRBQETlS4XhooIzkcoiDAJjH7QkS+EUUBMyfFIzcrFoUljfjvsVo0tRk8rt/Q2oWG1i7s+64O7+4+hYnjopCTEYNp42MwISUSSgUnahMREREREdHow+QLEdEYZ7bYUFrV5vKx8SmRwzwaIhoLKus6YLU5J20TorW49qJMVDbo8N3pZtQ06b1q12qTcKKiFScqWvHh16ehVSuQkxGD3AmxOD8nEZFhan89BSIiIiIiIqIhxeQLEdEYd7qmHSY3+71kJkfA4uYxIiJ3rDYJNhfJl15p8WFIiw9DS4cRx8tbUFbT3u/57hhMVhSeakThqUZs/fwkpmfF4qLpKZg1MQ4qpWIwT4GIiIiIiIhoSDH5QkQ0xp1ws9+LWiUiJS4MZ+s6hnlERBQsYiI0uGh6MmZPjkfJ2e4ZLQaT1ae2bJKEw6VNOFzahBCNEvOmJmJ+bjImjYuCIAh+HjkRERERERHR4DD5QkQ0xp0463q/l8ykCIgib1gS0dAL0Sgxc2I88ibE4nRNB4orWtDcbvS5vS6jBV8VVuOrwmokRGsxPzcZF+UlIzEm1I+jJiIiIiIiIvIdky9ERGOYxWrDqUrX+71kcr8XIhpmCoWIieOiMHFcFPQGM2qa9Kht1qOh1YB2ncmnNhtaDfjoX+X46F/lyE6LwuT06O4+0qIRH611OSvGYDAP9qkQERERERER9YvJFyKiMay//V7Gp0QM82iIiM4J1aqQnRaFKZkxmDU5ATVNetQ06HD4VCO+O90Mo9n75clKq9pQWnUu4RwZpkZ2WhQmpnUnfLJSoxAWovLn0yAiIiIiIiJyickXIqIx7ESF6yXHtGoFUuLChnk0RESuCYKA1PgwhKiVyEqLwtKLMlFZ34nSqnYcO93k8xJl7ToTDpU04FBJg70sNT4MmUkRyEwKR0ZSBDKSwhGqZUKGiIiIiIiI/IvJFyKiMexERYvL8ikZMdzvhYgClkIhIjMlEpkpkbhibhoq6ztx+FQTjpU1wWDyfkZMX9WNOlQ36vCfY+fK4qO09kRMRlIEMpMiEB2udrlkGREREREREZEnmHwhIhqjLFYbTla53u9l6viYYR4NEZHnKus6YLVJsrLpWbGYlhmNygYdTlW1obK+E5LkpgEvNbYZ0NhmwME+M2QiQlWYkBKJaZkxmDY+FmkJYUzGEBERERERkceYfCEiGqPKaztgMrve72VqZixs8NNdSyIiP7PaJNhszjFKEASkJ4YjPTEcBpMF5TUdKK1uR1Obwe9j6NCbcaS0CUdKmwB07x8zbXwMcsfHYtr4WMREaPzeJxEREREREY0dTL4QEY1R7pYc06gUmJAaidJq17NiiIhGA61aiZzMGORkxqCt04SaZh0aW7tnsLTrTH7vr11nwn+P1eG/x+oAAGnxYcjLikNedhwyEiMQolFAq1FCqRABAAaDecA2JUmCwWSFrssMncGCToMZNpuElLhQxEeF+P05EBERERER0fBh8oWIaIwqrmh1WT4lI9p+c5CIaCyIClcjKlwNZHQfG81WNLUZ0NjahaZ2I1o6jOjsGjgZ4o2qRh2qGnXYta9CVq5WiQjRKKFVKxGiUSJUo0CIRgm1SgGD0YrOLjM6u8w9CRez0/JqvSaNi8aSCzIwb2oSlErnmO1JcoeIiIiIiIhGDpMvRERjkMVqw6lKd/u9xA7zaIiIhpdGpUBqfBhS48OgVIqYNTkBTe0GfFfWjKoGHWqadKht0qHLaPV73yazDSazCW0Y3Oybk5WtOFnZiuhwNRael46Fc9MRzaXOiIiIiIiIRg0mX4iIxqAztR0wml3fVGTyhYiCjSAIiI8KwfTseEzPjofVZoMkSWjXmVDTpEdtkx61TTrUNunRNgRLlg1Ga6cJ739Zig/2liF3QixuvnwiJo6LGulhERERERER0QCYfCEiGoOK3ez3olaJyEqNHObREBEFlsq6DvtyXyFqBSakRGBCSgQAwGCyorndgPqWLlQ36tDQ2gXJ9cpgw8pmk3C0tAlHS5uQlRqJK2anYd7UJKhcLElGREREREREI4/JFyKiMejEWdf7vUxKi+J+L0QU9Kw2CTY3e62olSKSY0ORHBuKGdlxMFmsqGvuQk2TDjWNgTEzpqy6HWXV7fjbnlOYMzkecyYnYtr4GMZ3IiIiIiKiAMLkCxHRGGOx2nDSzX4vUzJihnk0RESjm1qpQHpiONITwwEAeoMZNU36nq+h2TfGU51dZuw9XIO9h2sQolFi5sQ4zJ2ciLysWGhUihEbFxERERERETH5QkQ05pyp64DR5PpmYA6TL0REgxKqVSE7LQrZaVGQJAlGsxU2CchKi4LBZEVjqwEmsxWV9R0wma0wW2wwW22wWCWoFCLUKhEalQJqlQIalQIalWj/WaUS0dZpwomKFpRVt8Ni9Xy9sy6jBf89Vof/HquDWiVielYc5k5OwMyJ8QjR8JKfiIiIiIhouPGdGBHRGFNS4XrJMbVSxPiePQ2IiGjwBEGAVq2EUikiPak7vsZHGQEA4SFKt0ub9ScmQoMLc5Mxe3ICTlW24URFKzq7zF61YTLbcOBEAw6caIBSIWBKRgympEdjcno0JqREcp8YIiIiIiKiYcDkCxHRGFPsJvkycRz3eyEiGi00KgVyJ8Ri6vgY1DTqcLq2A2VV7V63Y7FKOHa6GcdONwMAlAoRWamRmJwehcnp0chOjeLMGCIiIiIioiHAd1pERGOI1WZDSaXr5Av3eyEiGn1EQUBmSiSWXT4RtU167D9ej68OVcLgZnnJgVisNpScbUXJ2VYAZyAKAsanRCAnMwZZqVFISwhDSlwY1CoFDAbvZtwQERERERHROaMi+VJfX48jR46gsrISer0eWq0WKSkpyMvLQ3p6+kgPz0lpaSmOHTuGhoYGmEwmhIWFISMjA7NmzUJ0dPSQ9Hn27FkUFRWhpqYGBoMBoaGhGDduHGbMmIHExMQh6XO0vS5EwaCirtPtfi9T0ocm/hAR0fBIjgvFXd/Pxe1X5eBAcR32fVeHgyUN6DJafG7TJkkoq25HWfW5WTUCgISYECTHhiI1LgwpcaFIiQ9DalwoQrUqPzwTIiIiIiKisS+gky979uzBhg0bcOjQIUiS6zWzc3JykJ+fj+uvvx6CIAzzCM8xm83YunUrNm/ejIqKCpfnKBQKfO9738M999yD8847b9B9SpKEDz/8EBs3bkRxcbHLcwRBwJw5c3DXXXdhwYIFg+4TGF2vC1GwKa5ocVmuVoqYkBI5zKMhIiJ/O17evXxYZLgai+al44q5aSirbsfx8hacqGiB3uB7IqaXBKC+pQv1LV04UtokeywqTI2IUDW0GgW0agW0amXP9+6fQ/r8rFaJUClFqBQiVEpF9899vtTKc+VERERERERjTUAmX3Q6HZ544gns2rVrwHOLi4uxdu1avP/++3jllVcQHx8/DCOUKy8vx/3334+SkpJ+z7Nardi7dy/27t2LlStX4vHHH4dK5dunBxsbG/HQQw/h22+/7fc8SZJw4MABHDhwAEuWLMFzzz2HsLAwn/ocba8LUTA64Wa/l+y0KN7cIiIagxQKEZPSozEpPRo223hU1HXgeHkLjpc3o0Pv/2XD2nQmtOlMfm0zPESF+Cht91d0CBJ6vveWqZQKv/ZHREREREQ0HAIu+aLT6ZCfn4/Dhw97VW/fvn247bbbsGXLFiQkJAzR6JyVlpZixYoVaGlx/WlzdwoKClBTU4PXXnsNSqV3L0N9fT1WrFjhdoaNO7t27UJtbS02btzodQJmtL0uRMHIarPhpNv9XrjkGBHRWFJZ1wGrzXkGsgBg2vgYTM2MRmObATVNetQ161Hf0gWzxTb8A/VAZ5cZnV1mlNd2uHw8KlyN+CgtwrQql7Nt+s7CCVEroLTPtjn3vbdMqRQhclY2ERERERENg4BLvjz55JNON/hTU1OxatUqzJ8/H8nJyWhoaMDBgwexceNGlJaW2s87c+YM7r//fhQUFHid0PBFZ2cn1qxZ45R4mTlzJlatWoXc3FxERUWhpqYGn3/+OQoKCtDaeu7G6O7du/G73/0Ojz32mMd9WiwWPPDAA06Jl4kTJyI/Px+zZ89GQkICampq8J///AebNm1CTU2N/bzDhw/jySefxKuvvurVcx1NrwtRsKqo60SX0fV+LzkZMcM8GiIiGkpWmwSbi+RLX3GRWsRFapE3IRY2SUJLhxH1zV2oa+lOxhjc7BEWaNo6TWjr9N9sG4UoQK0SEaJRIlSjRKhWhTDtuZ9DtUqEapU9ZapzP/c8plaKXFaXiIiIiIgGFFB3wvfs2YOdO3fKyubNm4c33ngDERER9rLIyEhkZ2fj+uuvx6OPPiqrc+jQIWzbtg0rV64c8vH+z//8j1MSZNWqVXj88cdlb8iio6MxdepU/OAHP8Bdd92FkydP2h/7y1/+gu9///vIycnxqM+tW7fi0KFDsrKrr74aL774ItRqtb0sMjISU6ZMwY033oif/OQnsuXJdu7ciS+++AJXXHGFR32OtteFKFi5W3JMxf1eiIiCnigI9mTM1PExkCQJ7ToT6lq6UNesR0uHER16s8vZNGON1Sahy2hFl9GKZhi9rq9UCD0JGxVCNAqEapUI16oQG6lFQrQWCdEhSIwOQUykBgqRS34SEREREQWrgEm+SJLkNBsjNTUVb775JsLDw13WUavV+N3vfoezZ8/i2LFj9vL169fjpptuQkhIyJCNt66uDu+8846sbNGiRXjiiSfc1klOTsaGDRuwdOlS6HQ6AOee95tvvjlgn11dXfjjH/8oK8vLy8PLL78MhcL1WtiRkZFYv349rr32WtkMmFdffRWXX375gJ/aG22vC1EwO1HhevnD7NRI7vdCREQygiAgKlyDqHANJqdHQ6kUMWNiPBrbDCitbENDaxfKq9vR0mlEW6cJFmtgLlk2EizW7sRV+wB73yhEAXFR55IxCdEhSIjWIjZSi+hwDaLC1BBFzqAhIiIiIhqrAib5snv3bhQXF8vKnnrqKbc3+HspFAo8++yzuOGGG+xlDQ0NePfdd3HHHXcMyVgB4E9/+hOMxnOflNNqtfjlL385YL2UlBQ88MADeO655+xle/bsQXFx8YCzX/72t7+hoaFBVvbss8+6Tbz0Cg8Px89+9jP89Kc/tZcdP34cu3fvxqJFi/qtO9peF6JgZbNJKHGz3wuXHCMiIk8oFCKSYkOhViowFcC4hDDYbBIkSYLeaEFbpwmdXWZYLDaYrTaYLT1fPT/3LbdYbbBaJVhtUlDMpnHFapNQ39KF+pYuHHPxuCgIiA5XIyZSi9gIjex7dLgaKqUCClGAxWKFQhSgEAWIogCFQoRCEKBQCBAEAbaeJeisUs/3ntes1WDpPrZKsEkS2tr0kAZ4KURBQHioCpGhKoRolFxejYiIiIhoEAIm+fLpp5/KjtPS0rBw4UKP6k6bNg1z587FgQMH7GU7d+4cspv8kiQ5LcN11VVXITEx0aP6N998M1599VXo9Xp72aeffjpg8sWxz/PPPx9Tp071qM8FCxYgLS0NVVVVsvYGSr6MpteFKJhV1He43e9lSkb0MI+GiIjGEkEQENazzJYvJEmCIArIzYqHxWpDY2sXLBYJRrMFBpMVrZ1GtHZ0f7X0/NyhN/v5WQQemyShucOI5g4jSgc+fdgpFSIiw1SIDFUjMkx97nuYGpFhKsSEaxAdoUFMuAZqVf8fBiMiIiIiCkYBkXwxm8346quvZGXXX3+9V5+0uuGGG2Q3+QsLC9HU1IS4uDi/jbPX0aNHUV9fLytbtmyZx/XDw8OxaNEifPTRR/ayPXv24OGHH3Zbp7Gx0WnDe2/6FEUR3//+92XLm+3duxcWiwVKpet/BqPtdSEKNjZJQlObAdWNOvz3uzqX5ygVIrJSud8LERGNHEEQoFSICNV2X3Nard3TL87UtEEUgNgIDWIjNLI6VqsNnV0WdHaZ0KE3o8tocZpp0/tl6XMcrLNshoLFakNzuxHN7QPvixOmVdoTMb3fYyI0iApXQ6NSQKUUu78UPd+VfcqUIkTOsCEiIiKiMSggki+FhYXo6OiQlc2bN8+rNi644ALZsc1mwz//+U+vEhSe2rt3r+xYpVJhzpw5XrUxb948WfKlpKQE1dXVSE1NdXn+119/DZtNvta243MeyAUXXCBLvrS1teHQoUM4//zzXZ4/2l4XorFK6kmyVDbqUN3zVdWoQ02TDiZz/2vwT0yLhErJT6MSEVHgsfYsl+WKIAiICFUhIlSFFA8/s6NUipgxKaF7dk2LARarDaerW+1Jmd4luKw2CRarDSaLDSaz9dx32c82mCxWGM02t2Okc3QGC3QGC6oadD7VV4jdS6iJAgAB9p8FCBD6HosClKIIpaI7odf91b0Um6rnu1IhQhQFSD1LsNkk6dzrb//ek6iTAIVCgEIUu5d26/lZqRB6jkX7cm8CuschCIAAAILQ8737WIAAQUTPEnHdY1Dal4rr04dsCbnu5yP2Ke/tVxQFqJUiIkLViAhVQang/n1EREREo01AJF9OnDghO1YoFJg5c6ZXbWRkZCA+Ph6NjY1u2/WXkpIS2XFubi40Go2bs11zlawpKSlxm3xxfC4JCQlIT0/3qs8ZM2ZAoVDAaj23NFFJSYnb5Mtoe12IxgpRIaKsuh0nK1tx8mz3V9sAm/q6k5sVB63DMjGqnqVBFCLfxBMR0djSffNaYZ9lExGqHnTyxGq1dSdhJAmZKZHQGy1obDXAYLSgpkkHo8kCvcFqn6VjMLleBpTc656xxCRXf8K0SkSGqRFhXwbu3JJwYSEqe3JI7ElWQYD9Z6EnkQWh+0M9koSer56fIcmOBQHyGUoKEWqV88wlhSjAarPB0rOv0Ll9nuQJT6A7ydU3Ydb7s0IhcOYTERERjVkBkXwpKyuTHaekpCA0NNTrdrKysmQ3+U+fPj3osbniON6srCyv2xg/frxTIqSsrAyXX375kPUZFhaG5ORk2b4vju3212egvy5EI8kmSWjtMKKuWY+6ns11jRYrQjVKhGqVCNOqEKpRIkyrRKhWZf+u1SjQ2mHEqao2lFa141RVGyrqOvy2bMrUzFi/tENERBSsFAoRoQoRSqWIrLQoAEBLz1JcZVWtTskds8WGDr0JnV1mdOh7v7qPdV1mcCIN+aJ3dlFNk37gk0cZhSg4JGV6ZzOJLpM2oiDYZzXZepM8kiSb7WSzSZDQd/aUfCZV3zKFKECtUkCtEqFRKbp/VopQqxTQqESold2PKfvMhBKFntlajh+zygAAIABJREFUPbOdREGA0PNdFLo/5CSI6DnuqSN2P9Zbv3fGl8LFY2KffiTp3HOyWOUzuXoTXVarBEGALKnVd5aYKDLBRUQ01CSpe3Z1l9GKLpMFBqMVJosVoVoVosLUCNMqvdrKgcaGgEi+lJbKt5h0N/tjICkpKbLj/hILvrJarSgvL5eV+TJehUKBxMRE1NTU2Mv6G68/f0eeJl9G0+tCgUvqWerBZLbCapOg7ln325tPuEmSBIPJCr3BAr3RAr3BDL3BAqtNglatgFathFajgFatQIhGCa1a4XJWh9liRYfejHa9Ce267hsh7XoTOnTdZRarDRpVT3tqBbQaBUJ6f+75HqJRwmCyoK6ly55oqWvRo76lC2ZL/0uAuSII3Z88HAqRYWpAlHDibIusv7iokKHpkIiIiKBSioiN1CI2Uuv0mCRJMJp7rmns1zXnvncZLfbHiYJFdxLBCqN5pEcSeAT4Z07YucSMfKaRIPv5XJ+A8zJ/vYmw3mRZb4IHACw227mZT1YbLPZlHm32MkGQLxGoUjgvIdg3UST0GWPvTP7eMRqMFgj234xgf8z+bIQ+bTg+LwhOZRDOJQF7l/5T9klgKfo8b0Ho/uAdemaQ2aQ+M8fQd3aZZE+2y85xmG0GwJ7M65scFF0dY4DHZclFQT77TRAgQn7sid7n0f0cJNhsPT/3JDp7fwd9n0fvMpGiIH9uotD9qvW2JUnoTpT2+X31JhudX4e+ydiex0QBkgRYJfnSko7LTNps3VP6+iY4e5OnvQlSoe9jYvfvSuxdElM8N36xp57g4mdP2JPDPb9Le8LY/jtF95gl2H/Hvc+l93d97vhc8ln+uvT+e+7zO3RYqlPZ8+/Z/kcgyb71vvj2H/u205s49uS5Gk3dy7oazd1LuRrNVpjN1p7kOOxLeNrjT+/fbp8Zm71/x6LjYw71+i4F6q5dc58lZ82Wc8vMmiw2mHt+7l2u1mqVumObUzw7t4StwWhBl8mKLqMFhp7v/X2QViEKiAxTIy5Ki+gILaLDNYiJ1EApAJGhDvvkyfbK6/4QUO+xp68BBYaASL44bl6fnJzsUzuON/nr6lxvQD0YLS0tMJvlV4WDGW/f5Et/4x2J39Foel2GiyiKEISx/3HF78qb8a+jNahu1Nk/jWX/RFbP+tW9xxpN94Vw939cVhgMFhitNpjNVlis3TcYXCUXuv8DEaC2b7iqgFop2PcnMZgs0But6DKa0WV03UZ/1EoRGpUIjaY7zHV2mWEwDt0yIBGh6iFr2xdqlYjrL8lCiFq+5JggwP4mSaXs/h6uVcHqx3/Wqj5vxIaij6Fufzj64HMIjD76tq9WiVAoRIRolPZPsUshtkHf8ODrMPbbH44++BwCow9/tR8OIC7KfR9TJ8RBkiQ0dxhgswGV9R2wWvrcnAFkN73sN9d69iXp/UR9WKi6+2aT2H2TQm8wQSkKmDq+exOd1s7u2Ts1jZ3o3VrSapNgNFlgMFlgMNl6vlv7fO/52dh9o4KIxjYJgNkqwWwd7Puo7pvkNosNZgsAcHlGGnvsCZo+yRpbT2KkN1EyFu4mCehJxigFexKnN0EpT24E13WCumfmpCea241o7plF7Yve5UGVCgEqhcKemFEohJ5yESFqJaakR2NuTgK06oC4/T/kAjUhFRC/fb1ePnU6PDzcp3Yc6xkMBthsNoh+3NfAcayu+vWUYz1XbQPds22MRvkf5VD36eqxQH5dhktMjPfLro1GF8eG4eI53u0pRKPPuJ7veRMTRm0ffA6B0cdYeg4544ekeVkffB3GbvvD0QefQ2D0MRzPIT2lO0MzOydpSNrP6Pk+Y3LikLRPRERERBTsAuLut+NNfq3WeYq+J1zV6y+54AtX7flrvO7GOhJ9unoskF8XIiIiIiIiIiIiIqJAERDJl66uLtmxWu3b8j2ubvLrdDqf2nLHVdJAo9H41JZjPW+SL0PdJzC6XhciIiIiIiIiIiIiokAREMkXIiIiIiIiIiIiIiKisSIgki8hISGyY5PJ5FM7BoPBqSwsLMynttwJDXXe88NxPxZPOdZz1fZI9QmMrteFiIiIiIiIiIiIiChQBETyxTEB4OpmvSdc1esvueALV+35a7zeJF+Guk9XjwXy60JEREREREREREREFCgCMvnS2dnpUzuO9bRaLUTRv0/RVdLAX+N1l5BQKBROe7UMdZ+uHgvk14WIiIiIiIiIiIiIKFAExB3wxMRE2XFtba1P7TjWc2zXH2JiYqBSqfrt11PejHckfkej6XUhIiIiIiIiIiIiIgoUAZF8ycrKkh1XV1f71I5jvezsbJ/H5I5CoUBmZma//XrCarWivr5eVtbfeEfidzSaXhciIiIiIiIiIiIiokAREMkXx5vxtbW10Ov1Xrdz+vRp2fGECRMGNS53HMdbVlbmdRtnzpyBxWKRlTkmO/zdp16vd5qF4k2fgf66EBEREREREREREREFgoBIvkyZMkV2bLFYcOTIEa/aqKioQENDQ7/t+svkyZNlx8eOHYPRaPSqjQMHDgzYbl+Oz6WhoQFnz571qs/Dhw/DarX63Gegvy5ERERERERERERERIEgIJIvs2bNQkREhKxs3759XrXheL4oirjkkksGPTZXLr30Utmx2WzGoUOHvGrj22+/lR1PnjwZqampbs+/+OKLnTapH+zvKCoqCrNnz3Z7/mh7XYiIiIiIiIiIiIiIAkFAJF9UKhUuu+wyWdmHH34ISZI8bmPHjh2y41mzZiEuLs4v43M0ffp0p03jHfvvT2dnJz777DNZ2YIFC/qtEx8fj5kzZ/rcpyRJ+PDDD2Vll156KZRKpds6o+11ISIiIiIiIiIiIiIKBAGRfAGAq6++WnZcWVmJPXv2eFS3uLjYaSbJVVdd5bexORIEwan9nTt3Oi2v5c727dud9k7xZLyO5+zbtw/FxcUe9blnzx5UVVV53edoel2IiIiIiIiIiIiIiAKBIHkzjWEISZKE66+/HidOnLCXpaWl4e9//zvCwsLc1rNarfjhD3+IoqIie1lCQgI+++wzhISEDNiv4/4j8+bNw+bNmwesV1dXhyuvvFK218uSJUvw2muv9VuvtrYWS5cuRWdnp71swYIFePPNNwfss6urC4sWLUJjY6O9bMaMGdi2bRsUCoXbep2dnbjuuutQXV1tL8vJycGOHTsgCEK/fY7U60JERERERERERERENFoFzMwXQRDw0EMPycqqqqpw7733yhIVfZlMJjzyyCOyG/wAsGbNmiG/wZ+UlITbbrtNVrZr1y688MILbpflqq2txd133y17PoIg4MEHH/Soz5CQEKxZs0ZWduTIETz22GMwmUwu63R0dODee++VJV4A4KGHHhow8dI7vtH0uhARERERERERERERjbSAmfnS64EHHsCuXbtkZWlpacjPz8f8+fORmJiIxsZGHDx4EBs3bsSpU6dk586ePRsFBQX97mXSl68zX4DuGSXLli3D2bNnZeWzZs3CqlWrkJeXh8jISNTU1ODzzz9HQUEBWlpaZOeuXr0aa9eu9ag/ALBYLFixYgUKCwtl5ZMmTcLq1asxe/ZsxMXFoa6uDv/+97+xadMmp8SLJzN0HA3360JERERERERERERENFoFXPKls7MT+fn5OHLkiNd1MzIysGXLFiQmJnpcZzDJFwA4efIkVq5cidbWVo/r9FqwYAH+8Ic/eJ2QqKurw8qVK1FRUeF1nzNmzMDGjRsRHh7uVb3hfl2IiIiIiIiIiIiIiEargFl2rFd4eDg2btyIK6+80qt65513HrZu3TrsN/gnTZqErVu3YtKkSV7Vu+222/Daa6/5NBMkKSkJ77zzDubOnetVvcWLF/uUeAFG3+tCRERERERERERERDRSAm7mS1+7d+/Ghg0bcOjQIbfnTJkyBfn5+Vi2bJlHe5i4qt+XtzNfepnNZrzzzjvYvHmz0zJkvURRxPe+9z2sWbMG5513ntd9OJIkCTt27MDGjRtx4sQJt+fNmTMHd999NxYsWDDoPoHheV2IiIiIiIiIiIiIiEargE6+9Kqrq8Phw4dRVVUFvV4PrVaLlJQUTJ8+Henp6SM9PCcnT57Ed999h/r6epjNZoSFhSEjIwOzZs1CTEzMkPR59uxZHD16FDU1NTAajQgJCUFaWhpmzpyJpKSkIelztL0uRERERERERERERETDYVQkX4iIiIiIiIiIiIiIiEaLgNvzhYiIiIiIiIiIiIiIaDRj8oWIiIiIiIiIiIiIiMiPmHwhIiIiIiIiIiIiIiLyIyZfiIiIiIiIiIiIiIiI/IjJFyIiIiIiIiIiIiIiIj9i8oWIiIiIiIiIiIiIiMiPmHwhIiIiIiIiIiIiIiLyIyZfiIiIiIiIiIiIiIiI/IjJFyIiIiIiIiIiIiIiIj9i8oWIiIiIiIiIiIiIiMiPmHwhIiIiIiIiIiIiIiLyIyZfiIiIiIiIiIiIiIiI/IjJFyIiIiIiIiIiIiIiIj9i8oWIiIiIiIiIiIiIiMiPmHwhIiIiIiIiIiIiIiLyIyZfiIiIiIiIiIiIiIiI/IjJFyIiIiIiIiIiIiIiIj9i8oWIiIiIiIiIiIiIiMiPmHwhIiIiIiIiIiIiIiLyIyZfiIiIiIiIiIiIiIiI/Eg50gMgotGpvr4eR44cQWVlJfR6PbRaLVJSUpCXl4f09PSRHh4Rkcd0Oh0KCwtRXl6O9vZ2KJVKxMfHY8qUKZg6dSoEQfB7nyaTCYWFhSgrK0NbWxsEQUBMTAwmTZqE6dOnQ6FQ+L1PIho9WltbUVhYiIqKCuh0OqjVaiQmJmLatGnIzs4ekj4ZC4loLBmJ+GKxWFBUVISTJ0+ipaUFkiQhKioKWVlZmDVrFtRqtd/7JApWtbW1KCkpQU1NDdra2gAAUVFRiIuLw/Tp05GUlDQk/QbL9RLjmf8w+UJEXtmzZw82bNiAQ4cOQZIkl+fk5OQgPz8f119//ZD8x0NEY8OUKVMG3UZubi62b9/uU90TJ07gzTffxOeffw6z2ezynMTERNxyyy1YvXo1QkNDBzNUAEBlZSXWr1+Pjz/+GHq93uU5UVFRuPHGG/HjH/8YsbGxg+6TiLzX0tKCoqIiHD16FEeOHEFRUREaGhpk59x33324//77/drv/v37sX79evz73/+G1Wp1eU5mZiZWrlyJ5cuXQ6VSDbpPxkKisW+4YtqCBQtQVVU1qDaio6PxzTff+Fx/JOJLc3Mz3nrrLWzfvt1+E9hRaGgoli5dijVr1mDcuHGD7pMo2DQ2NmLPnj34z3/+g2+++QZNTU39np+eno6bb74ZP/zhD/3ydx4s10uMZ/4nSO7unhIR9aHT6fDEE09g165dHteZN28eXnnlFcTHxw/hyIhotBqp5IskSXjzzTfx+uuvw2KxeFQnNTUVr776KmbMmOHLMAEA7733Hp599lkYDAaPzo+OjsaLL76Iyy67zOc+ichzGzdutN+YPHv27IDn+zP5Yjab8dxzz2HLli0e15k8eTL+8Ic/YPz48T71yVhINLaNREwb6eTLSMSXL7/8EmvXrkVra6tH54eEhOBnP/sZbr75Zp/7JAomR48exbp16/Dtt9/CZrN5XT8sLAxPPvmkz39zwXS9xHg2NLjnCxENSKfTIT8/36vECwDs27cPt912m9OnqoiIRtKvfvUrvPrqqx5fPANAdXU1br/9dnz77bc+9fmnP/0JP/vZzzy+eAa6lx1as2YNPvnkE5/6JCLvPP/88/j44489uknpTxaLBQ8++KBXiRcAKCkpwfLly1FaWupTv4yFRGPbSMW0kTIS8eXjjz/Gvffe6/GNSgDo6urCU089hT//+c8+9UkUbIqKivDNN9/4lHgBuu9nPfXUU/jlL3/pU/1guV5iPBs6XHaMiAb05JNP4vDhw7Ky1NRUrFq1CvPnz0dycjIaGhpw8OBBbNy4UXYT4MyZM7j//vtRUFAApZIhh4jcu/XWWxEREeFVneTkZK/O37JlC9555x1ZWWhoKG699VZcffXVSE9Ph06nQ0lJCQoKCvCvf/3Lfp7BYMB9992HHTt2ICUlxeM+v/jiC7z00kuyMpVKhWXLluGGG27A+PHjYTabUVZWhm3btuEf//iHfVlHm82GtWvXIjMzE7m5uV49VyIaHV5++WXs3r1bVhYTE4OVK1di0aJFSElJQWtrK4qKirBp0yYcOXLEfl5zczPWrFmDDz74AOHh4R73yVhIRMPh2muv9SpOAN2fpPbWSMSXY8eO4fHHH5fdEBZFEYsXL8att96KrKwsKBQKlJeXY/v27fjoo49kSxWtW7cOWVlZuOKKK7x+vkTBLjMzExdddBHmzZuH7OxsxMXFQaPRoKGhAYcOHcK7776LwsJCWZ1t27YhLi4ODzzwgMf9BMv1EuPZ0OKyY0TUrz179uDee++Vlc2bNw9vvPGGy5ukJpMJjz76KHbu3Ckr//nPf46VK1cO6ViJaHRxXHZs9+7dQ7pmbGNjIxYtWoSuri57WVJSEv785z9j0qRJLuv85S9/wYsvvijb42rJkiV47bXXPOrTaDTiyiuvRF1dnb0sIiICb7zxBubNm+eyzscff4y1a9fKLmjz8vLw/vvve9QnEfnGMSaFhoYiLy8PeXl5mD59Oh5++GHZ4/5Yoqe4uBjLli2TxZhJkybhz3/+s8uNYiVJwnPPPYe3335bVr569WqsXbvWoz4ZC4mCw0jENMdlx/7617/iggsuGFSbAxmp+HLjjTfi2LFj9mOVSoUXX3wR11xzjcvzv/nmG/z0pz9FR0eHvSwpKQmfffYZNBqNx/0SBZutW7fi6aefhlKpxDXXXIMf/OAHbv+2+/rb3/6GX//617K/c6VSiR07dri93ukrmK6XGM+GFpcdIyK3JEnCq6++KitLTU3Fm2++6fbT6Wq1Gr/73e+csuzr16+X/adFRDTcHOOQQqHAG2+80e/F9+rVq3H77bfLyv7xj3/ILk77884778gunoHuZUD6e8OwdOlSPPLII7KyoqIifPbZZx71SUS+mTFjBlasWGFfqufAgQPYvHkz1q5d6/bN52D9/ve/l71BDwsLw4YNG1wmXgBAEAQ8+eSTWLhwoazcVaxxh7GQKDiMREwbCSMRX1zFv0cffbTf3+sFF1yA559/XlZWV1eHrVu3etQnUbASRRHXXnstPvnkE6xbt86jxAsA3HLLLXjmmWdkZRaLBa+//rpH9YPleonxbOgx+UJEbu3evRvFxcWysqeeemrAZS0UCgWeffZZWVlDQwPeffddv4+RiMgTjY2N2LZtm6xsxYoVyMvLG7Duww8/jMTERPuxJEl44403BqxnNpvx1ltvycoWLlyIRYsWDVj3Rz/6EaZNmyYr8/SNAhH55r333sMvfvEL3HDDDZg4cSJEcWjfKh0/fhxffPGFrOyBBx7waGmKp59+Glqt1n5sMBg8Wm+bsZAoeAx3TBsJIxVfHM/Lzc11uuHqyqJFi5yS52+99ZbsE+tEJHfzzTfj5ZdfRmZmptd1b7rpJqfExd69e2EymfqtF0zXS4xnQ2/s/e9LRH7z6aefyo7T0tKcgqs706ZNw9y5c2VljkuRERENl927d8suBAVBwI9+9COP6oaGhuKmm26Sle3duxc6na7fet988w2am5tlZZ72KYoibrvtNlnZ8ePHcebMGY/qE1Hgc7zOCg0Nxc033+xR3cTERCxevFhWtmvXrgHrMRYS0VgyEvHl9OnTTh9QXLFihcfJLcebmk1NTT5vyk0UDBQKxaDqL1u2THas0+lw4sSJfusEy/US49nwYPKFiFwym8346quvZGXXX389BEHwuI0bbrhBdlxYWIimpia/jI+IyBuOm1nPnTsX6enpHte/8cYbZccmkwlff/21V32mpqZ6te750qVLndbMdWyTiEYvx7/nK6+8csDZxX05xqXa2loUFRV51SdjIRGNZiMRXxwf12g0uPrqqz3u88ILL3Sa4ciYRjR0cnJynMoaGhr6rRMs10uMZ8ODyRcicqmwsFC2eRYAj9fW7OX4H4XNZsM///nPQY+NiMgbJpMJ//nPf2Rl3sazjIwMJCcny8q+/PLLfuvs3btXdnz++ed7lcDu3RjXmz6JaHSorq7GqVOnZGXexqXZs2dDpVLJyvqLEYyFRDTWjER8cexz+vTpCA0N9bhPQRBw/vnne9UnEfmu7zKtvfrbjziYrpcYz4YHky9E5JLjNEyFQoGZM2d61UZGRgbi4+P7bZeIaKiVl5c7res7Z84cr9txrFNSUuL2XJ1Oh8rKymHtk4hGD1fXQ97GCK1W67S+d38xgrGQiMaSkYovjvHbH31WVVVBr9d73Q4RDay6utqpLDY21u35wXS9xHg2PJQjPQAiCkxlZWWy45SUFK8y4L2ysrLQ2NhoPz59+vSgx0ZEY5PJZMKBAwdw8uRJNDc3w2azITo6GjExMcjNzcX48eN9atcxngFAdna21+041ukvng1Vny0tLWhtbUV0dLTXbRFR4HCMEUql0qcYl52djcOHD9uPRyIuMRYSkTs2mw1FRUU4fvw4mpubYTQaERUVhejoaOTk5GDy5MlefbK7r5GIL83NzWhtbfV7n5IkoayszKPNvInIO672IMnIyHB7frBcLzGeDR8mX4jIpdLSUtlxamqqT+04rv/o6j8VIiIAuO6662CxWNw+npCQgKuuugqrV6/2KiY5xjOFQoGkpCSvx+c4dVyn06Gurs5lW459As7x0Jc+e9ueO3eu120RUeBwjBFJSUkeb27al2OMKC8vh9Vqdbk5LWMhEQ23u+66q99ru+joaCxYsAB33XWX1zf9RiK+uHov60ufrurwZiWR/1mtVnz00UeysuzsbKSlpbmtEyzXS4xnw4fLjhGRS/X19bJjV0HcE46BuK6uzucxEdHY1t+bc6B7Y8TNmzdj8eLFeOmllwY8v5djPEtISHB5Y3IgrhI+7mKaY5+CIPh00e5Nn0Q0evjrOssxRphMJqdPMbrrk7GQiIbaQNdqra2t2L59O5YuXYonnnii330YHI1EfHHsE/D9BqnjjB/GNCL/e++991BTUyMru+aaa/qtEyzXS4xnw4fJFyJyyXGNxvDwcJ/acaxnMBhgs9l8HhcRkdlsxoYNG3DHHXego6NjwPOHKp4B3Z9g8qRPrVbrtDG2r31yDV2i0c9fcSksLGzAtv3dJ2MhEfmbJEnYvn07fvCDH7jcn8GVkYgvrmKdL7FUpVJBo9F41CcR+aa2thYvvfSSrCwqKgorV67st16wXC8xng0fLjtGRC65Cv6+cFVPr9f7/B8YEY0toihixowZuOyyy5CXl4fs7GxER0dDrVajvb0dZ8+exb59+/D++++jvLxcVnf//v148MEH8dZbb0GpdH9J4xjPHC8OPeWqnqc3OYejTyIaPYbyOsvTN/aMhUQ0VKZMmYIrrrgCM2bMwKRJkxAbGwutVov29nbU1NRg//79+PDDD3Hs2DFZvZMnT+Kee+7B1q1bB3y/GAgxbTD9arVaGAyGAfskIu9ZLBb8v//3/5w+qPfwww8PuF9cIMQWxrOxhckXInLJccq3Wq32qR13NwWYfCGiO++8E8uXL0d6errLx+Pi4hAXF4dZs2bhrrvuwtatW/H888/DZDLZz/nXv/6F119/HQ8++KDbfhzj2WAuKh25u7AciT6JaPQYyuusQIpLjIVEweXGG2/E4sWLMXnyZJePx8bGIjY2Frm5ubjjjjvw6aef4uc//7nsBmlJSQl+9atf4cUXX+y3r0CIaYPpl58UJxo6v/3tb7F//35Z2cUXX4xbb711wLqBEFsYz8YWLjtGREREI+Kxxx5zm3hxJIoiVqxYgQ0bNjhNwd60aROampqGYohERERE5KH77rvPbeLFlauvvhpbt25FRESErPzvf/87Tpw44e/hEVEQ2Lx5M7Zs2SIrS05Oxrp165z2JiEaDky+EJFLISEhsuO+nzT3Rt+ph71crU9OROSJCy+8EA8//LCsTK/XY+vWrW7rOMYzo9HoU9+u4lloaGjA9ElEo8dQXmcFUlxiLCSigUyaNAnPPvusrMxms2HTpk391guEmDaYfh3rMaYRDd7HH3+M3/72t7KyiIgI/PGPf0RsbKxHbQRCbGE8G1uYfCEilxyDpasg7gm+WSYif7v99tuRmJgoK/v666/dnu8Yc/x1Uemq7ZHsk4hGj6G8znL3IRfGQiIKVFdddRVyc3NlZf1d2wGBEdMG069j/GZMIxqcvXv3Yu3atbDZbPYyrVaL9evXIycnx+N2AiG2MJ6NLUy+EJFLjsGys7PTp3Yc62m1WogiQw8R+U6tVuOKK66QlR05csTtzcuhimeA5zc5DQYDLBaLX/rkxSzR6OevuKTT6QZs2999MhYS0VBYsmSJ7Li+vh7l5eVuzx+J+OIq1vkSS81mMz8pTuRH+/fvxwMPPACz2WwvU6lUePXVV3Heeed51VawXC8xng0f3gElIpccP1VeW1vrUzuO9RzbJSLyxaxZs2THVqsVjY2NLs91jDsNDQ2wWq1e91lTUzNg2+7KJUnyKY560ycRjR7+us5yjBFqtRrR0dEe9clYSESBxPHaDgDq6urcnj8S8cVVuav6A6mtrYUkSR71SUT9Kyoqwj333CPbQF4URbzwwgu4/PLLvW4vWK6XGM+GD5MvRORSVlaW7Li6utqndhzrZWdn+zwmIqJecXFxTmXNzc0uz3WMZ1artd838+44XoyGhYUhOTnZoz5d1felT4BxlGgscIwRdXV1smUyPOUYI8aPHw+FQuFRn4yFRBRIvLm2A0YmvjCmEQWWkydP4s4773SasfHMM89g6dKlPrUZLNdLjGfDh8kXInLJMVjW1tZCr9d73c7p06dlxxMmTBjUuIiIADh9ugYABEFwea6ri7/S0lKv+ywrK5Md9xfPXF3M+qPPmJgYxMTEeN38oCvBAAAMkUlEQVQOEQUWx7hksVj6XV7HHW/iEmMhEQUyb67tgJGJL7GxsU6zC/3RpyAIfJ9M5KUzZ84gPz8fra2tsvLHH38cP/zhD31uN1iulxjPhg+TL0Tk0pQpU2THFosFR44c8aqNiooKNDQ09NsuEZEvXC0xFhsb6/Lc8ePHQ61Wy8oOHTrkdZ8HDx6UHU+ePNntueHh4Rg3btyg+zxw4IDHfRLR6OHqesjbGGEwGHDs2DFZWX8xgrGQiAKZN9d2wMjFF8f47Y8+09LS3O4FQUTOampqkJ+f73S/6f7770d+fv6g2g6m6yXGs+HB5AsRuTRr1ixERETIyvbt2+dVG47ni6KISy65ZNBjIyIqLCyUHSsUCpfLVQDdeyDMnz9fVuZtPDt79qzTlOqB1hC+9NJLZcfffvutV312dXWhqKjIqz6JaHRITU3FxIkTZWXexqVDhw7JNpYF+o8RjIVEFMgcr+0AICEhod86IxFfHPs8evSobK+JgUiShP3793vVJxGd09jYiFWrVqGqqkpWvnr1atx3332Dbj+YrpcYz4YHky9E5JJKpcJll10mK/vwww9dTgd3Z8eOHbLjWbNmub05SkTkKYPBgC+//FJWNn36dGi1Wrd1Fi5cKDvev38/zp4963GfH3zwgexYrVbj4osv7reOY59VVVX45ptvPO7zk08+gdFo7LdNIhq9HP+e//GPf0Cn03lc3/E6Kzk5GXl5eV71yVhIRIFAkiTs3LlTVpaQkDDg0jUjEV8cHzcYDPj000897vObb75x2heVMY3IM62trcjPz3daqvWWW27B2rVr/dZPsFwvMZ4NDyZfiMitq6++WnZcWVmJPXv2eFS3uLjYKVN/1VVX+W1sRBS83n77bacp5gPNqlu4cCFUKpX9WJIkFBQUeNRfV1cX/vd//1dWdumllw44nfqCCy5wWi5j8+bNHvVps9mwZcsWWdnUqVORmZnpUX0iCnyO10V6vR7vv/++R3UbGhqcblQuWbJkwHqMhUQUiD7++GMUFxfLyjxZMWEk4suECROQk5MjKysoKPD4Q4qOMTc2Nhbnn3++R3WJgplOp8Pdd9+NkpISWfn3v/99PPPMM37tK1iulxjPhgeTL0Tk1sKFC53WgPzNb34z4KcyrVYrnnrqKVlZQkLCoDY9I6Kxo6GhAVar1ae6X3/9NV577TVZWUhICG655ZZ+68XHxzudU1BQgO+++27APn//+9+jrq7OfiwIAn7yk58MWE+lUuHuu++WlX322Wf44osvBqxbUFDgtJfDT3/60wHrEdHoMW3aNFxxxRWystdee00Wb9x55plnYDAY7McajQZ33nnngPUYC4loKDQ3N8NkMvlUt7i4GL/4xS9kZYIg4I477hiw7kjFF8fYd+zYMacbn67s3r0bn332mazsnnvukd3kJSJnRqMRa9ascdqHePHixXj++echCIJf+wum6yXGs6HH5AsRuSUIAh566CFZWVVVFe699150dna6rGMymfDII484rTW5Zs0ahISEDNlYiWj0+Pjjj3HNNdfg/fff93iJHYvFgk2bNmHNmjWwWCyyx1atWjXgmuCAcxyyWCz4yU9+glOnTrmts2nTJrz99tuyssWLFyM3N9ejca9YsQJJSUmysscee8xpbdy+PvnkE6xbt05WlpeXhyuvvNKjPolo9HjooYdkNww6Ojpw1113uU3ASJKE559/3unNrqtY4w5jIRH528GDB7Fo0SK8/fbbaG1t9aiOJEn46KOPcNtttzldD1533XVOn8Z2ZyTiy5IlS5zi3wsvvOA0I7Gvffv24fHHH5eVJSUlYfny5R71SRSsLBYLHnzwQad9Vy699FK8/PLLUCgUQ9JvsFwvMZ4NPUHyZgMHIgpKDzzwAHbt2iUrS0tLQ35+PubPn4/ExEQ0Njbi4MGD2Lhxo9N/RrNnz0ZBQQGUSuVwDpuIAtSmTZvw3HPPAQC0Wi0uueQSzJkzB1OnTkVaWhrCw8Oh0WjQ3t6Os2fPYt++fdi+fbvTpooAcPHFF2P9+vUef8KmoKAAv/71r2VlYWFhuPXWW3HNNddg3Lhx0Ov1OHHiBAoKCvD111/Lzo2OjsYHH3yA1NRUj5/vnj17cO+998rKVCoVbrzxRixbtgzjx4+H2WxGWVkZ/va3v2Hnzp2yqd5qtRrbtm3z+KKdiHxTVFTU7xvNDRs2yI7nzJmDuXPnujw3MjISP/7xjz3q94UXXsBf/vIXWVlsbCxuv/12LFiwACkpKWhra0NRURE2bdqEw4cPy87NyMjABx98gPDwcI/6AxgLiYLBcMa0zz//3P4pa6VSiQsvvBDz5s3D1KlTkZGRgYiICGi1WnR2dqK6uhr79+/Hhx9+iJMnTzq1lZOTgy1btngV00YivhQVFeHWW2+F2Wy2l4miiKuuugq33HILsrKyoFAoUF5ejg8++AA7duyQnSsIAt58802nGZBEJPfKK69g/fr1sjKlUonly5f3u+dnf3Jzc52W2XclWK6XGM+GFpMvRDSgzs5O5OfnO03x9ERGRga2bNmCxMTEIRgZEY1GfZMvg3HhhRfi9ddf9+rNOQA8/fTT2Lp1q9f9abVabNiwAfPmzfO67ltvvYWXX37Z63qiKOKll17C0qVLva5LRN7Zvn07nnjiCb+0lZaW5vE+eRaLBffdd59Hy0o4iomJQUFBASZOnOh1XcZCorFtOGNa3+TLYOTk5OCtt97yeCZfXyMRX/7v//4Pjz76KGw2m9d1H3nkEaclhojI2eOPP+60gf1g3XDDDXj++ec9OjdYrpcYz4YOlx0jogGFh4dj48aNXi/zcN5552Hr1q1MvBCRX4WEhOCRRx7Bxo0bvU68AMAvf/lL3H///V5NUU9JScFf//pXny6eAeDHP/4xnn32Wa8+nRUVFYU33niDNxuJxjilUok//OEPXi/VMGnSJGzbts2nxAvAWEhEgUOlUmH16tV47733fEq8ACMTX6699lq8/vrriIqK8riOVqvFs88+yxuVRKNEsFwvMZ4NHcXTTz/99EgPgogCn1qtxjXXXINp06ahuroatbW1bs+dMmUKHn30UTz55JMICwsbxlES0WiQmpqKjIwMhISEoKurCx0dHQPWEUURU6ZMQX5+PtatW4eLLrrI540VBUHAvHnzsHDhQrS2tuLMmTNuP+GTkJCAO++8E+vWrUN6erpP/fXKzc3FddddB71ej9OnTzvtXdMrKioKy5cvx+9//3tMmzZtUH0SkeeOHz+O3bt3+6WtyMhIjzaL7qVQKHD55Zdj/vz5qK+vR2VlJdwtUJCeno777rsPv/nNbxAXF+fzGBkLica24YxpcXFxmDBhAsLDw2EwGNDe3j5gm4IgYMKECVi+fDnWrVuHJUuWDHrvhpGILxMmTMBNN90Eq9WKsrIyGI1Gl+eFhIRg2bJleOWVVzB//vxB9UkUTD7//HMUFxf7tc2pU6di0aJFHp0bTNdLjGdDg8uOEZFP6urqcPjwYVRVVUGv10Or1SIlJQXTp08f9H8yRBRc2tvbUVZWhpqaGjQ2NqKrqwsWiwXh4eGIjIxEcnIy8vLyfJrl4onOzk4cOnQIZ86cQUdHBxQKBeLi4pCTk4Np06b5nOTpj9FoRGFhIUpLS9He3g5BEBATE4NJkyZh+vTp3COLKMi1tLSgsLAQFRUV0Ol0UKlUSExMRG5urs8zXQbCWEhE/qLT6XD69GnU1NSgvr4eer0eZrMZoaGhiIqKQnx8PKZPn47o6OghG8NIxBeLxYIjR47g1KlTaGlpgSRJiIyMRHZ2NmbNmgWNRvP/27tjEwAAEAhi+2/tEofNJwvYiXCF+Uzg18q9ZJ91xBcAAAAAAICQny8AAAAAAAAh8QUAAAAAACAkvgAAAAAAAITEFwAAAAAAgJD4AgAAAAAAEBJfAAAAAAAAQuILAAAAAABASHwBAAAAAAAIiS8AAAAAAAAh8QUAAAAAACAkvgAAAAAAAITEFwAAAAAAgJD4AgAAAAAAEBJfAAAAAAAAQuILAAAAAABASHwBAAAAAAAIiS8AAAAAAAAh8QUAAAAAACAkvgAAAAAAAITEFwAAAAAAgJD4AgAAAAAAEBJfAAAAAAAAQuILAAAAAABASHwBAAAAAAAIiS8AAAAAAAAh8QUAAAAAACAkvgAAAAAAAITEFwAAAAAAgJD4AgAAAAAAEBJfAAAAAAAAQuILAAAAAABASHwBAAAAAAAIiS8AAAAAAAAh8QUAAAAAACAkvgAAAAAAAITEFwAAAAAAgJD4AgAAAAAAEBJfAAAAAAAAQgepBb//KYOVqQAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<Figure size 1800x1200 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import pickle\\n\",\n    \"base = '/home/gezi/temp/ai2018/sentiment/tfrecords/char.ft'\\n\",\n    \"valid_infos = pickle.load(open(f'{base}/info.pkl', 'rb'))\\n\",\n    \"lens = [len(valid_infos[key]['content']) for key in valid_infos]\\n\",\n    \"sns.distplot(lens)\\n\",\n    \"plt.title('Char seg doc length')#标题\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 72,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0.12724761904761905\"\n      ]\n     },\n     \"execution_count\": 72,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"len([x for x in lens if x > 512]) / len(lens)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"f354c4218f1d4a6db8faacfb16739ba6\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_f354c4218f1d4a6db8faacfb16739ba6 = echarts.init(document.getElementById('f354c4218f1d4a6db8faacfb16739ba6'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_f354c4218f1d4a6db8faacfb16739ba6 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 3258707,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"heatmap\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u70ed\\\\u529b\\\\u56fe\\\\u76f4\\\\u89d2\\\\u5750\\\\u6807\\\\u7cfb\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    0,\\n\",\n       \"                    3\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    1,\\n\",\n       \"                    25\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    2,\\n\",\n       \"                    7\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    3,\\n\",\n       \"                    46\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    4,\\n\",\n       \"                    2\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    5,\\n\",\n       \"                    2\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    0,\\n\",\n       \"                    6,\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    0,\\n\",\n       \"                    42\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    1,\\n\",\n       \"                    21\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    2,\\n\",\n       \"                    45\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    3,\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    4,\\n\",\n       \"                    44\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    5,\\n\",\n       \"                    39\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    6,\\n\",\n       \"                    31\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    0,\\n\",\n       \"                    30\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    1,\\n\",\n       \"                    44\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    2,\\n\",\n       \"                    34\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    3,\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    4,\\n\",\n       \"                    45\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    5,\\n\",\n       \"                    17\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    6,\\n\",\n       \"                    16\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    0,\\n\",\n       \"                    18\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    1,\\n\",\n       \"                    42\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    2,\\n\",\n       \"                    4\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    3,\\n\",\n       \"                    33\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    4,\\n\",\n       \"                    5\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    5,\\n\",\n       \"                    19\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    6,\\n\",\n       \"                    41\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    0,\\n\",\n       \"                    20\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    1,\\n\",\n       \"                    42\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    2,\\n\",\n       \"                    27\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    3,\\n\",\n       \"                    0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    4,\\n\",\n       \"                    5\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    5,\\n\",\n       \"                    26\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    6,\\n\",\n       \"                    29\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    0,\\n\",\n       \"                    22\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    1,\\n\",\n       \"                    19\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    2,\\n\",\n       \"                    43\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    3,\\n\",\n       \"                    43\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    4,\\n\",\n       \"                    20\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    5,\\n\",\n       \"                    22\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    6,\\n\",\n       \"                    3\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    0,\\n\",\n       \"                    50\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    1,\\n\",\n       \"                    32\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    2,\\n\",\n       \"                    3\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    3,\\n\",\n       \"                    2\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    4,\\n\",\n       \"                    26\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    5,\\n\",\n       \"                    15\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    6,\\n\",\n       \"                    49\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    0,\\n\",\n       \"                    38\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    1,\\n\",\n       \"                    14\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    2,\\n\",\n       \"                    50\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    3,\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    4,\\n\",\n       \"                    27\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    5,\\n\",\n       \"                    39\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    6,\\n\",\n       \"                    30\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    0,\\n\",\n       \"                    24\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    1,\\n\",\n       \"                    50\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    2,\\n\",\n       \"                    14\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    3,\\n\",\n       \"                    11\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    4,\\n\",\n       \"                    1\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    5,\\n\",\n       \"                    3\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    6,\\n\",\n       \"                    13\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    0,\\n\",\n       \"                    9\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    1,\\n\",\n       \"                    44\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    2,\\n\",\n       \"                    49\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    3,\\n\",\n       \"                    8\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    4,\\n\",\n       \"                    23\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    5,\\n\",\n       \"                    35\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    6,\\n\",\n       \"                    10\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    0,\\n\",\n       \"                    48\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    1,\\n\",\n       \"                    26\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    2,\\n\",\n       \"                    26\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    3,\\n\",\n       \"                    29\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    4,\\n\",\n       \"                    9\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    5,\\n\",\n       \"                    39\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    6,\\n\",\n       \"                    21\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    0,\\n\",\n       \"                    31\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    1,\\n\",\n       \"                    3\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    2,\\n\",\n       \"                    9\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    3,\\n\",\n       \"                    11\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    4,\\n\",\n       \"                    38\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    5,\\n\",\n       \"                    14\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    6,\\n\",\n       \"                    2\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    0,\\n\",\n       \"                    31\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    1,\\n\",\n       \"                    12\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    2,\\n\",\n       \"                    47\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    3,\\n\",\n       \"                    40\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    4,\\n\",\n       \"                    6\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    5,\\n\",\n       \"                    34\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    6,\\n\",\n       \"                    27\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    0,\\n\",\n       \"                    11\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    1,\\n\",\n       \"                    20\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    2,\\n\",\n       \"                    37\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    3,\\n\",\n       \"                    29\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    4,\\n\",\n       \"                    33\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    5,\\n\",\n       \"                    27\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    6,\\n\",\n       \"                    47\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    0,\\n\",\n       \"                    0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    1,\\n\",\n       \"                    21\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    2,\\n\",\n       \"                    31\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    3,\\n\",\n       \"                    12\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    4,\\n\",\n       \"                    48\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    5,\\n\",\n       \"                    29\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    14,\\n\",\n       \"                    6,\\n\",\n       \"                    4\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    0,\\n\",\n       \"                    0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    1,\\n\",\n       \"                    47\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    2,\\n\",\n       \"                    32\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    3,\\n\",\n       \"                    27\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    4,\\n\",\n       \"                    24\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    5,\\n\",\n       \"                    23\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    15,\\n\",\n       \"                    6,\\n\",\n       \"                    31\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    0,\\n\",\n       \"                    9\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    1,\\n\",\n       \"                    5\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    2,\\n\",\n       \"                    18\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    3,\\n\",\n       \"                    50\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    4,\\n\",\n       \"                    48\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    5,\\n\",\n       \"                    8\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    16,\\n\",\n       \"                    6,\\n\",\n       \"                    44\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    0,\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    1,\\n\",\n       \"                    32\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    2,\\n\",\n       \"                    27\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    3,\\n\",\n       \"                    50\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    4,\\n\",\n       \"                    17\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    5,\\n\",\n       \"                    23\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    17,\\n\",\n       \"                    6,\\n\",\n       \"                    10\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    0,\\n\",\n       \"                    34\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    1,\\n\",\n       \"                    50\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    2,\\n\",\n       \"                    36\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    3,\\n\",\n       \"                    21\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    4,\\n\",\n       \"                    33\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    5,\\n\",\n       \"                    44\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    18,\\n\",\n       \"                    6,\\n\",\n       \"                    1\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    0,\\n\",\n       \"                    46\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    1,\\n\",\n       \"                    46\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    2,\\n\",\n       \"                    12\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    3,\\n\",\n       \"                    14\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    4,\\n\",\n       \"                    28\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    5,\\n\",\n       \"                    25\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    19,\\n\",\n       \"                    6,\\n\",\n       \"                    23\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    0,\\n\",\n       \"                    49\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    1,\\n\",\n       \"                    21\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    2,\\n\",\n       \"                    21\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    3,\\n\",\n       \"                    25\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    4,\\n\",\n       \"                    18\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    5,\\n\",\n       \"                    4\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    20,\\n\",\n       \"                    6,\\n\",\n       \"                    42\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    0,\\n\",\n       \"                    49\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    1,\\n\",\n       \"                    4\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    2,\\n\",\n       \"                    10\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    3,\\n\",\n       \"                    17\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    4,\\n\",\n       \"                    5\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    5,\\n\",\n       \"                    20\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    21,\\n\",\n       \"                    6,\\n\",\n       \"                    23\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    0,\\n\",\n       \"                    38\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    1,\\n\",\n       \"                    26\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    2,\\n\",\n       \"                    28\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    3,\\n\",\n       \"                    0\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    4,\\n\",\n       \"                    13\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    5,\\n\",\n       \"                    18\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    22,\\n\",\n       \"                    6,\\n\",\n       \"                    3\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    0,\\n\",\n       \"                    45\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    1,\\n\",\n       \"                    4\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    2,\\n\",\n       \"                    31\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    3,\\n\",\n       \"                    10\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    4,\\n\",\n       \"                    7\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    5,\\n\",\n       \"                    49\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    23,\\n\",\n       \"                    6,\\n\",\n       \"                    1\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 3258707\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u70ed\\\\u529b\\\\u56fe\\\\u76f4\\\\u89d2\\\\u5750\\\\u6807\\\\u7cfb\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"12a\\\",\\n\",\n       \"                \\\"1a\\\",\\n\",\n       \"                \\\"2a\\\",\\n\",\n       \"                \\\"3a\\\",\\n\",\n       \"                \\\"4a\\\",\\n\",\n       \"                \\\"5a\\\",\\n\",\n       \"                \\\"6a\\\",\\n\",\n       \"                \\\"7a\\\",\\n\",\n       \"                \\\"8a\\\",\\n\",\n       \"                \\\"9a\\\",\\n\",\n       \"                \\\"10a\\\",\\n\",\n       \"                \\\"11a\\\",\\n\",\n       \"                \\\"12p\\\",\\n\",\n       \"                \\\"1p\\\",\\n\",\n       \"                \\\"2p\\\",\\n\",\n       \"                \\\"3p\\\",\\n\",\n       \"                \\\"4p\\\",\\n\",\n       \"                \\\"5p\\\",\\n\",\n       \"                \\\"6p\\\",\\n\",\n       \"                \\\"7p\\\",\\n\",\n       \"                \\\"8p\\\",\\n\",\n       \"                \\\"9p\\\",\\n\",\n       \"                \\\"10p\\\",\\n\",\n       \"                \\\"11p\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"splitArea\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"Saturday\\\",\\n\",\n       \"                \\\"Friday\\\",\\n\",\n       \"                \\\"Thursday\\\",\\n\",\n       \"                \\\"Wednesday\\\",\\n\",\n       \"                \\\"Tuesday\\\",\\n\",\n       \"                \\\"Monday\\\",\\n\",\n       \"                \\\"Sunday\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"splitArea\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ],\\n\",\n       \"    \\\"visualMap\\\": {\\n\",\n       \"        \\\"type\\\": \\\"continuous\\\",\\n\",\n       \"        \\\"min\\\": 0,\\n\",\n       \"        \\\"max\\\": 100,\\n\",\n       \"        \\\"text\\\": [\\n\",\n       \"            \\\"high\\\",\\n\",\n       \"            \\\"low\\\"\\n\",\n       \"        ],\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"color\\\": \\\"#000\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"inRange\\\": {\\n\",\n       \"            \\\"color\\\": [\\n\",\n       \"                \\\"#50a3ba\\\",\\n\",\n       \"                \\\"#eac763\\\",\\n\",\n       \"                \\\"#d94e5d\\\"\\n\",\n       \"            ]\\n\",\n       \"        },\\n\",\n       \"        \\\"calculable\\\": true,\\n\",\n       \"        \\\"splitNumber\\\": 5,\\n\",\n       \"        \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"        \\\"left\\\": \\\"left\\\",\\n\",\n       \"        \\\"top\\\": \\\"bottom\\\",\\n\",\n       \"        \\\"showLabel\\\": true\\n\",\n       \"    }\\n\",\n       \"};\\n\",\n       \"myChart_f354c4218f1d4a6db8faacfb16739ba6.setOption(option_f354c4218f1d4a6db8faacfb16739ba6);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.heatmap.HeatMap at 0x7f61cafa0208>\"\n      ]\n     },\n     \"execution_count\": 34,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import random\\n\",\n    \"from pyecharts import HeatMap\\n\",\n    \"\\n\",\n    \"x_axis = [\\n\",\n    \"    \\\"12a\\\", \\\"1a\\\", \\\"2a\\\", \\\"3a\\\", \\\"4a\\\", \\\"5a\\\", \\\"6a\\\", \\\"7a\\\", \\\"8a\\\", \\\"9a\\\", \\\"10a\\\", \\\"11a\\\",\\n\",\n    \"    \\\"12p\\\", \\\"1p\\\", \\\"2p\\\", \\\"3p\\\", \\\"4p\\\", \\\"5p\\\", \\\"6p\\\", \\\"7p\\\", \\\"8p\\\", \\\"9p\\\", \\\"10p\\\", \\\"11p\\\"]\\n\",\n    \"y_axis = [\\n\",\n    \"    \\\"Saturday\\\", \\\"Friday\\\", \\\"Thursday\\\", \\\"Wednesday\\\", \\\"Tuesday\\\", \\\"Monday\\\", \\\"Sunday\\\"]\\n\",\n    \"data = [[i, j, random.randint(0, 50)] for i in range(24) for j in range(7)]\\n\",\n    \"heatmap = HeatMap()\\n\",\n    \"heatmap.add(\\n\",\n    \"    \\\"热力图直角坐标系\\\",\\n\",\n    \"    x_axis,\\n\",\n    \"    y_axis,\\n\",\n    \"    data,\\n\",\n    \"    is_visualmap=True,\\n\",\n    \"    visual_text_color=\\\"#000\\\",\\n\",\n    \"    visual_orient=\\\"horizontal\\\",\\n\",\n    \")\\n\",\n    \"heatmap\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"d13e83efd39a41cea205c483c753cc04\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_d13e83efd39a41cea205c483c753cc04 = echarts.init(document.getElementById('d13e83efd39a41cea205c483c753cc04'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_d13e83efd39a41cea205c483c753cc04 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"left\\\": \\\"auto\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 3364271,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"radar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u9884\\\\u7b97\\\\u5206\\\\u914d\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    4300,\\n\",\n       \"                    10000,\\n\",\n       \"                    28000,\\n\",\n       \"                    35000,\\n\",\n       \"                    50000,\\n\",\n       \"                    19000\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"symbol\\\": \\\"circle\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"itemStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {}\\n\",\n       \"            },\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"areaStyle\\\": {\\n\",\n       \"                \\\"opacity\\\": 0\\n\",\n       \"            }\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"radar\\\",\\n\",\n       \"            \\\"name\\\": \\\"\\\\u5b9e\\\\u9645\\\\u5f00\\\\u9500\\\",\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    5000,\\n\",\n       \"                    14000,\\n\",\n       \"                    28000,\\n\",\n       \"                    31000,\\n\",\n       \"                    42000,\\n\",\n       \"                    21000\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"symbol\\\": \\\"circle\\\",\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"itemStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {}\\n\",\n       \"            },\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"areaStyle\\\": {\\n\",\n       \"                \\\"opacity\\\": 0\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"\\\\u9884\\\\u7b97\\\\u5206\\\\u914d\\\",\\n\",\n       \"                \\\"\\\\u5b9e\\\\u9645\\\\u5f00\\\\u9500\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"top\\\",\\n\",\n       \"            \\\"orient\\\": \\\"horizontal\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"radar\\\": {\\n\",\n       \"        \\\"indicator\\\": [\\n\",\n       \"            {\\n\",\n       \"                \\\"name\\\": \\\"\\\\u9500\\\\u552e\\\",\\n\",\n       \"                \\\"max\\\": 6500\\n\",\n       \"            },\\n\",\n       \"            {\\n\",\n       \"                \\\"name\\\": \\\"\\\\u7ba1\\\\u7406\\\",\\n\",\n       \"                \\\"max\\\": 16000\\n\",\n       \"            },\\n\",\n       \"            {\\n\",\n       \"                \\\"name\\\": \\\"\\\\u4fe1\\\\u606f\\\\u6280\\\\u672f\\\",\\n\",\n       \"                \\\"max\\\": 30000\\n\",\n       \"            },\\n\",\n       \"            {\\n\",\n       \"                \\\"name\\\": \\\"\\\\u5ba2\\\\u670d\\\",\\n\",\n       \"                \\\"max\\\": 38000\\n\",\n       \"            },\\n\",\n       \"            {\\n\",\n       \"                \\\"name\\\": \\\"\\\\u7814\\\\u53d1\\\",\\n\",\n       \"                \\\"max\\\": 52000\\n\",\n       \"            },\\n\",\n       \"            {\\n\",\n       \"                \\\"name\\\": \\\"\\\\u5e02\\\\u573a\\\",\\n\",\n       \"                \\\"max\\\": 25000\\n\",\n       \"            }\\n\",\n       \"        ],\\n\",\n       \"        \\\"name\\\": {\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"color\\\": \\\"#333\\\",\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        },\\n\",\n       \"        \\\"splitLine\\\": {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        },\\n\",\n       \"        \\\"splitArea\\\": {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"areaStyle\\\": {\\n\",\n       \"                \\\"opacity\\\": 1\\n\",\n       \"            }\\n\",\n       \"        },\\n\",\n       \"        \\\"axisLine\\\": {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#4e79a7\\\",\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_d13e83efd39a41cea205c483c753cc04.setOption(option_d13e83efd39a41cea205c483c753cc04);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.radar.Radar at 0x7f61ce23fe10>\"\n      ]\n     },\n     \"execution_count\": 35,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"from pyecharts import Radar\\n\",\n    \"\\n\",\n    \"schema = [\\n\",\n    \"    (\\\"销售\\\", 6500), (\\\"管理\\\", 16000), (\\\"信息技术\\\", 30000), (\\\"客服\\\", 38000), (\\\"研发\\\", 52000), (\\\"市场\\\", 25000)]\\n\",\n    \"v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]\\n\",\n    \"v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]\\n\",\n    \"radar = Radar()\\n\",\n    \"radar.config(schema)\\n\",\n    \"radar.add(\\\"预算分配\\\", v1, is_splitline=True, is_axisline_show=True)\\n\",\n    \"radar.add(\\\"实际开销\\\", v2, label_color=[\\\"#4e79a7\\\"], is_area_show=False)\\n\",\n    \"#radar.show_config()\\n\",\n    \"radar\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 100,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dir_ = '/home/gezi/temp/ai2018/sentiment/model/v12/0/word.jieba.ft/'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 109,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"'/home/gezi/temp/ai2018/sentiment/model/v12/0/word.jieba.ft/tf.word.baseline.gru.hidden100/epoch/model.ckpt-1.00-3282.valid.metrics'\"\n      ]\n     },\n     \"execution_count\": 109,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import glob\\n\",\n    \"l = glob.glob(f'{dir_}/*/epoch/*.valid.metrics') \\n\",\n    \"l2 = glob.glob(f'{dir_}/*/ckpt/*.valid.metrics') \\n\",\n    \"l = l + l2\\n\",\n    \"l[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 117,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_name_epoch(path):\\n\",\n    \"  l = path.split('/')\\n\",\n    \"  return l[-3], int(float(l[-1].rsplit('.', 2)[0].split('-')[1]))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 118,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"('tf.word.baseline.gru.hidden100', 1)\"\n      ]\n     },\n     \"execution_count\": 118,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"get_name_epoch(l[0])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 126,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_infos(l):\\n\",\n    \"  f1 = {}\\n\",\n    \"  loss = {}\\n\",\n    \"  for path in l:\\n\",\n    \"    name, epoch = get_name_epoch(path)\\n\",\n    \"    if name not in f1:\\n\",\n    \"      f1[name] = [0] * 100\\n\",\n    \"      loss[name] = [0] * 100\\n\",\n    \"        \\n\",\n    \"    for line in open(path):\\n\",\n    \"      l = line.rstrip().split('\\\\t')\\n\",\n    \"      if l[0] == 'adjusted_f1/mean':\\n\",\n    \"        f1[name][epoch] = float(l[1])\\n\",\n    \"      if l[0] == 'loss/mean':\\n\",\n    \"        loss[name][epoch] = float(l[1])\\n\",\n    \"    \\n\",\n    \"  for key in f1:\\n\",\n    \"    f1[key] = [x for x in f1[key] if x != 0]\\n\",\n    \"    loss[key] = [x for x in loss[key] if x != 0]\\n\",\n    \"  return f1, loss\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 127,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"f1, loss = get_infos(l)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 130,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"dict_keys(['tf.word.baseline.gru.hidden100', 'tf.word.baseline.gru.hidden200', 'tf.word.baseline.lstm.hidden100', 'tf.word.baseline.gru.hidden400', 'tf.word.baseline.lstm.hidden200', 'tf.word.baseline.lstm.hidden400', 'tf.word.baseline.lstm.hidden400.unkaug', 'tf.word.baseline.gru.hidden400.unkaug', 'tf.word.baseline.lstm.hidden400.attention_pooling', 'tf.word.baseline.lstm.hidden400.max_pooling', 'tf.word.baseline.lstm.hidden400.max_pooling.unkaug', 'torch.word.baseline.gru.hidden100', 'torch.word.baseline.lstm.hidden400', 'torch.word.baseline.gru.hidden200', 'torch.word.baseline.lstm.hidden100', 'torch.word.baseline.lstm.hidden400.unkaug', 'torch.word.baseline.lstm.hidden200', 'torch.word.baseline.gru.hidden400', 'torch.word.baseline.gru.hidden400.unkaug', 'torch.word.baseline.lstm.hidden400.attention_pooling', 'torch.word.baseline.lstm.hidden400.max_pooling'])\"\n      ]\n     },\n     \"execution_count\": 130,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"f1.keys()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 187,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<script>\\n\",\n       \"    require.config({\\n\",\n       \"        paths: {\\n\",\n       \"            'echarts': '/nbextensions/echarts/echarts.min'\\n\",\n       \"        }\\n\",\n       \"    });\\n\",\n       \"</script>\\n\",\n       \"    <div id=\\\"5c25b10e44364eb9830a3ef23eda2625\\\" style=\\\"width:800px;height:400px;\\\"></div>\\n\",\n       \"\\n\",\n       \"\\n\",\n       \"<script>\\n\",\n       \"    require(['echarts'], function(echarts) {\\n\",\n       \"        \\n\",\n       \"var myChart_5c25b10e44364eb9830a3ef23eda2625 = echarts.init(document.getElementById('5c25b10e44364eb9830a3ef23eda2625'), 'light', {renderer: 'canvas'});\\n\",\n       \"\\n\",\n       \"var option_5c25b10e44364eb9830a3ef23eda2625 = {\\n\",\n       \"    \\\"title\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"text\\\": \\\"Adjusted F1\\\",\\n\",\n       \"            \\\"subtext\\\": \\\"hidden_size\\\",\\n\",\n       \"            \\\"left\\\": \\\"center\\\",\\n\",\n       \"            \\\"top\\\": \\\"auto\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 18\\n\",\n       \"            },\\n\",\n       \"            \\\"subtextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"toolbox\\\": {\\n\",\n       \"        \\\"show\\\": true,\\n\",\n       \"        \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"        \\\"left\\\": \\\"95%\\\",\\n\",\n       \"        \\\"top\\\": \\\"center\\\",\\n\",\n       \"        \\\"feature\\\": {\\n\",\n       \"            \\\"saveAsImage\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"save as image\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"restore\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"restore\\\"\\n\",\n       \"            },\\n\",\n       \"            \\\"dataView\\\": {\\n\",\n       \"                \\\"show\\\": true,\\n\",\n       \"                \\\"title\\\": \\\"data view\\\"\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    },\\n\",\n       \"    \\\"series_id\\\": 2525426,\\n\",\n       \"    \\\"tooltip\\\": {\\n\",\n       \"        \\\"trigger\\\": \\\"item\\\",\\n\",\n       \"        \\\"triggerOn\\\": \\\"mousemove|click\\\",\\n\",\n       \"        \\\"axisPointer\\\": {\\n\",\n       \"            \\\"type\\\": \\\"line\\\"\\n\",\n       \"        },\\n\",\n       \"        \\\"textStyle\\\": {\\n\",\n       \"            \\\"fontSize\\\": 14\\n\",\n       \"        },\\n\",\n       \"        \\\"backgroundColor\\\": \\\"rgba(50,50,50,0.7)\\\",\\n\",\n       \"        \\\"borderColor\\\": \\\"#333\\\",\\n\",\n       \"        \\\"borderWidth\\\": 0\\n\",\n       \"    },\\n\",\n       \"    \\\"series\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"line\\\",\\n\",\n       \"            \\\"name\\\": \\\"tf.word.baseline.gru.hidden100\\\",\\n\",\n       \"            \\\"symbol\\\": \\\"emptyCircle\\\",\\n\",\n       \"            \\\"symbolSize\\\": 4,\\n\",\n       \"            \\\"smooth\\\": false,\\n\",\n       \"            \\\"step\\\": false,\\n\",\n       \"            \\\"showSymbol\\\": true,\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    0.6455995235798566\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    0.6714321139082017\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    0.6879521541217956\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    0.6935605981289351\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    0.6989329218762569\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    0.6998403110033806\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    0.6988539206846207\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    0.698947130542569\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    0.6989547029968434\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    0.6984311224982743\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    11,\\n\",\n       \"                    0.7002166934809184\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    12,\\n\",\n       \"                    0.6989464503518894\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    13,\\n\",\n       \"                    0.6993734155366085\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"areaStyle\\\": {\\n\",\n       \"                \\\"opacity\\\": 0\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2525426\\n\",\n       \"        },\\n\",\n       \"        {\\n\",\n       \"            \\\"type\\\": \\\"line\\\",\\n\",\n       \"            \\\"name\\\": \\\"tf.word.baseline.gru.hidden200\\\",\\n\",\n       \"            \\\"symbol\\\": \\\"emptyCircle\\\",\\n\",\n       \"            \\\"symbolSize\\\": 4,\\n\",\n       \"            \\\"smooth\\\": false,\\n\",\n       \"            \\\"step\\\": false,\\n\",\n       \"            \\\"showSymbol\\\": true,\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                [\\n\",\n       \"                    1,\\n\",\n       \"                    0.6589201693043293\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    2,\\n\",\n       \"                    0.6818378466666906\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    3,\\n\",\n       \"                    0.6920754378972626\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    4,\\n\",\n       \"                    0.7013522146122075\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    5,\\n\",\n       \"                    0.7053317144269752\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    6,\\n\",\n       \"                    0.7052664591054743\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    7,\\n\",\n       \"                    0.7054015081686772\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    8,\\n\",\n       \"                    0.7055367851206605\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    9,\\n\",\n       \"                    0.7055010891922717\\n\",\n       \"                ],\\n\",\n       \"                [\\n\",\n       \"                    10,\\n\",\n       \"                    0.7049788753622609\\n\",\n       \"                ]\\n\",\n       \"            ],\\n\",\n       \"            \\\"label\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"show\\\": false,\\n\",\n       \"                    \\\"position\\\": \\\"top\\\",\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                },\\n\",\n       \"                \\\"emphasis\\\": {\\n\",\n       \"                    \\\"show\\\": true,\\n\",\n       \"                    \\\"textStyle\\\": {\\n\",\n       \"                        \\\"fontSize\\\": 12\\n\",\n       \"                    }\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"lineStyle\\\": {\\n\",\n       \"                \\\"normal\\\": {\\n\",\n       \"                    \\\"width\\\": 1,\\n\",\n       \"                    \\\"opacity\\\": 1,\\n\",\n       \"                    \\\"curveness\\\": 0,\\n\",\n       \"                    \\\"type\\\": \\\"solid\\\"\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"areaStyle\\\": {\\n\",\n       \"                \\\"opacity\\\": 0\\n\",\n       \"            },\\n\",\n       \"            \\\"markPoint\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"markLine\\\": {\\n\",\n       \"                \\\"data\\\": []\\n\",\n       \"            },\\n\",\n       \"            \\\"seriesId\\\": 2525426\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"legend\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                \\\"tf.word.baseline.gru.hidden100\\\",\\n\",\n       \"                \\\"tf.word.baseline.gru.hidden200\\\"\\n\",\n       \"            ],\\n\",\n       \"            \\\"selectedMode\\\": \\\"multiple\\\",\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"left\\\": \\\"65%\\\",\\n\",\n       \"            \\\"top\\\": \\\"45%\\\",\\n\",\n       \"            \\\"orient\\\": \\\"vertical\\\",\\n\",\n       \"            \\\"textStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 12\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"animation\\\": true,\\n\",\n       \"    \\\"xAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"category\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"data\\\": [\\n\",\n       \"                1,\\n\",\n       \"                2,\\n\",\n       \"                3,\\n\",\n       \"                4,\\n\",\n       \"                5,\\n\",\n       \"                6,\\n\",\n       \"                7,\\n\",\n       \"                8,\\n\",\n       \"                9,\\n\",\n       \"                10\\n\",\n       \"            ]\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"yAxis\\\": [\\n\",\n       \"        {\\n\",\n       \"            \\\"show\\\": true,\\n\",\n       \"            \\\"nameLocation\\\": \\\"middle\\\",\\n\",\n       \"            \\\"nameGap\\\": 25,\\n\",\n       \"            \\\"nameTextStyle\\\": {\\n\",\n       \"                \\\"fontSize\\\": 14\\n\",\n       \"            },\\n\",\n       \"            \\\"axisTick\\\": {\\n\",\n       \"                \\\"alignWithLabel\\\": false\\n\",\n       \"            },\\n\",\n       \"            \\\"inverse\\\": false,\\n\",\n       \"            \\\"boundaryGap\\\": true,\\n\",\n       \"            \\\"type\\\": \\\"value\\\",\\n\",\n       \"            \\\"splitLine\\\": {\\n\",\n       \"                \\\"show\\\": true\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLine\\\": {\\n\",\n       \"                \\\"lineStyle\\\": {\\n\",\n       \"                    \\\"width\\\": 1\\n\",\n       \"                }\\n\",\n       \"            },\\n\",\n       \"            \\\"axisLabel\\\": {\\n\",\n       \"                \\\"interval\\\": \\\"auto\\\",\\n\",\n       \"                \\\"formatter\\\": \\\"{value} \\\",\\n\",\n       \"                \\\"rotate\\\": 0,\\n\",\n       \"                \\\"margin\\\": 8,\\n\",\n       \"                \\\"textStyle\\\": {\\n\",\n       \"                    \\\"fontSize\\\": 12\\n\",\n       \"                }\\n\",\n       \"            }\\n\",\n       \"        }\\n\",\n       \"    ],\\n\",\n       \"    \\\"color\\\": [\\n\",\n       \"        \\\"#c23531\\\",\\n\",\n       \"        \\\"#2f4554\\\",\\n\",\n       \"        \\\"#61a0a8\\\",\\n\",\n       \"        \\\"#d48265\\\",\\n\",\n       \"        \\\"#749f83\\\",\\n\",\n       \"        \\\"#ca8622\\\",\\n\",\n       \"        \\\"#bda29a\\\",\\n\",\n       \"        \\\"#6e7074\\\",\\n\",\n       \"        \\\"#546570\\\",\\n\",\n       \"        \\\"#c4ccd3\\\",\\n\",\n       \"        \\\"#f05b72\\\",\\n\",\n       \"        \\\"#ef5b9c\\\",\\n\",\n       \"        \\\"#f47920\\\",\\n\",\n       \"        \\\"#905a3d\\\",\\n\",\n       \"        \\\"#fab27b\\\",\\n\",\n       \"        \\\"#2a5caa\\\",\\n\",\n       \"        \\\"#444693\\\",\\n\",\n       \"        \\\"#726930\\\",\\n\",\n       \"        \\\"#b2d235\\\",\\n\",\n       \"        \\\"#6d8346\\\",\\n\",\n       \"        \\\"#ac6767\\\",\\n\",\n       \"        \\\"#1d953f\\\",\\n\",\n       \"        \\\"#6950a1\\\",\\n\",\n       \"        \\\"#918597\\\",\\n\",\n       \"        \\\"#f6f5ec\\\"\\n\",\n       \"    ]\\n\",\n       \"};\\n\",\n       \"myChart_5c25b10e44364eb9830a3ef23eda2625.setOption(option_5c25b10e44364eb9830a3ef23eda2625);\\n\",\n       \"\\n\",\n       \"    });\\n\",\n       \"</script>\\n\"\n      ],\n      \"text/plain\": [\n       \"<pyecharts.charts.line.Line at 0x7f61b5250208>\"\n      ]\n     },\n     \"execution_count\": 187,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import pyecharts\\n\",\n    \"line = pyecharts.Line(\\\"Adjusted F1\\\", 'hidden_size', title_pos='center')\\n\",\n    \"def add(key):\\n\",\n    \"  line.add(key, [x + 1  for x in range(len(f1[key]))], f1[key],legend_pos='65%', legend_top='45%', legend_orient='vertical')\\n\",\n    \"add('tf.word.baseline.gru.hidden100')\\n\",\n    \"add('tf.word.baseline.gru.hidden200')\\n\",\n    \"line\\n\",\n    \"#line.add(\\\"最低气温\\\", cities, lows, mark_line=['average'], is_smooth=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111)\\n\",\n    \"ax.set_xlabel('epoch')\\n\",\n    \"ax.set_title('Adjusted F1')\\n\",\n    \"#var.plot(kind='line')\\n\",\n    \"sns.pointplot(x=\\\"sepal_length\\\",y=\\\"species\\\",data=iris)\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 151,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"ename\": \"URLError\",\n     \"evalue\": \"<urlopen error unknown url type: https>\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mURLError\\u001b[0m                                  Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-151-a2e8bc0d9af0>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m()\\u001b[0m\\n\\u001b[1;32m      1\\u001b[0m \\u001b[0;32mimport\\u001b[0m \\u001b[0mseaborn\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0msns\\u001b[0m\\u001b[0;34m;\\u001b[0m \\u001b[0msns\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m      2\\u001b[0m \\u001b[0;32mimport\\u001b[0m \\u001b[0mmatplotlib\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpyplot\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0mplt\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m----> 3\\u001b[0;31m \\u001b[0mfmri\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0msns\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\\"fmri\\\"\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m      4\\u001b[0m \\u001b[0max\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0msns\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mlineplot\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m\\\"timepoint\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0my\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m\\\"signal\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mdata\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mfmri\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/seaborn/utils.py\\u001b[0m in \\u001b[0;36mload_dataset\\u001b[0;34m(name, cache, data_home, **kws)\\u001b[0m\\n\\u001b[1;32m    426\\u001b[0m                                   os.path.basename(full_path))\\n\\u001b[1;32m    427\\u001b[0m         \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0mos\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mexists\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mcache_path\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 428\\u001b[0;31m             \\u001b[0murlretrieve\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mfull_path\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcache_path\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    429\\u001b[0m         \\u001b[0mfull_path\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mcache_path\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    430\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/usr/lib/python3.6/urllib/request.py\\u001b[0m in \\u001b[0;36murlretrieve\\u001b[0;34m(url, filename, reporthook, data)\\u001b[0m\\n\\u001b[1;32m    246\\u001b[0m     \\u001b[0murl_type\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mpath\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0msplittype\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0murl\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    247\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 248\\u001b[0;31m     \\u001b[0;32mwith\\u001b[0m \\u001b[0mcontextlib\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mclosing\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0murlopen\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0murl\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mdata\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0mfp\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    249\\u001b[0m         \\u001b[0mheaders\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mfp\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0minfo\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    250\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/usr/lib/python3.6/urllib/request.py\\u001b[0m in \\u001b[0;36murlopen\\u001b[0;34m(url, data, timeout, cafile, capath, cadefault, context)\\u001b[0m\\n\\u001b[1;32m    221\\u001b[0m     \\u001b[0;32melse\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    222\\u001b[0m         \\u001b[0mopener\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0m_opener\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 223\\u001b[0;31m     \\u001b[0;32mreturn\\u001b[0m \\u001b[0mopener\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mopen\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0murl\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mdata\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mtimeout\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    224\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    225\\u001b[0m \\u001b[0;32mdef\\u001b[0m \\u001b[0minstall_opener\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mopener\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/usr/lib/python3.6/urllib/request.py\\u001b[0m in \\u001b[0;36mopen\\u001b[0;34m(self, fullurl, data, timeout)\\u001b[0m\\n\\u001b[1;32m    524\\u001b[0m             \\u001b[0mreq\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mmeth\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mreq\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    525\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 526\\u001b[0;31m         \\u001b[0mresponse\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_open\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mreq\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mdata\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    527\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    528\\u001b[0m         \\u001b[0;31m# post-process response\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/usr/lib/python3.6/urllib/request.py\\u001b[0m in \\u001b[0;36m_open\\u001b[0;34m(self, req, data)\\u001b[0m\\n\\u001b[1;32m    547\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    548\\u001b[0m         return self._call_chain(self.handle_open, 'unknown',\\n\\u001b[0;32m--> 549\\u001b[0;31m                                 'unknown_open', req)\\n\\u001b[0m\\u001b[1;32m    550\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    551\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0merror\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mproto\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m*\\u001b[0m\\u001b[0margs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/usr/lib/python3.6/urllib/request.py\\u001b[0m in \\u001b[0;36m_call_chain\\u001b[0;34m(self, chain, kind, meth_name, *args)\\u001b[0m\\n\\u001b[1;32m    502\\u001b[0m         \\u001b[0;32mfor\\u001b[0m \\u001b[0mhandler\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mhandlers\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    503\\u001b[0m             \\u001b[0mfunc\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mgetattr\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mhandler\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mmeth_name\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 504\\u001b[0;31m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mfunc\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0margs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    505\\u001b[0m             \\u001b[0;32mif\\u001b[0m \\u001b[0mresult\\u001b[0m \\u001b[0;32mis\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    506\\u001b[0m                 \\u001b[0;32mreturn\\u001b[0m \\u001b[0mresult\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m/usr/lib/python3.6/urllib/request.py\\u001b[0m in \\u001b[0;36munknown_open\\u001b[0;34m(self, req)\\u001b[0m\\n\\u001b[1;32m   1386\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0munknown_open\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mreq\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m   1387\\u001b[0m         \\u001b[0mtype\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mreq\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtype\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m-> 1388\\u001b[0;31m         \\u001b[0;32mraise\\u001b[0m \\u001b[0mURLError\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'unknown url type: %s'\\u001b[0m \\u001b[0;34m%\\u001b[0m \\u001b[0mtype\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m   1389\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m   1390\\u001b[0m \\u001b[0;32mdef\\u001b[0m \\u001b[0mparse_keqv_list\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0ml\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;31mURLError\\u001b[0m: <urlopen error unknown url type: https>\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import seaborn as sns; sns.set()\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"fmri = sns.load_dataset(\\\"fmri\\\")\\n\",\n    \"ax = sns.lineplot(x=\\\"timepoint\\\", y=\\\"signal\\\", data=fmri)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 152,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"'0.9.0'\"\n      ]\n     },\n     \"execution_count\": 152,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sns.__version__\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 264,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"words = ['<S>', '这家', '烧烤店', '在', '汉广', '街上', '，', '临近', '木兰', '街', 'SPACE', '位置', '来说', '还', '不错', '，', '环境', '一般', '，', 'SPACE', '羊排', '烤', '的', '还行', '，', '生', '蚝', '一般', 'SPACE', '总体', '来说', '偶尔', '吃', '下', '还', '可以', '吧', '</S>']\\n\",\n    \"alpha = [0.00056962966,0.23827146,0.19244207,0.11011295,0.17349437,0.11852508,0.046037722,0.05955463,0.017608836,0.012202048,0.0028137492,0.0002055885,0.00036370466,0.00025330443,0.00029033062,0.000363468,2.7266471e-05,0.00018710292,0.00032836615,0.001367057,0.00075813156,0.00045154025,0.00021950406,0.00029479177,0.0006688184,0.0013774327,0.0005269423,0.0004646081,0.00067773816,0.000642519,0.00056342455,0.00033431596,0.0002380904,0.0004108409,0.00061148417,0.0011762715,0.0015607427,0.014004141,0.00896384,2.1429629e-05,0.37175584,0.07558788,0.33509356,0.1697859,0.0038804545,0.02001661,0.007757798,0.006119119,0.00013767781,4.334247e-06,1.0210862e-05,5.279099e-06,4.277094e-06,6.740322e-06,5.797643e-07,4.09565e-06,7.305827e-06,3.0841245e-05,8.720799e-05,5.405498e-05,1.5832167e-05,2.1332751e-05,2.9347422e-05,0.00018563062,6.511817e-05,2.4849227e-05,1.7997092e-05,2.3965602e-05,2.3201446e-05,1.4656879e-05,1.4404182e-05,1.9649635e-05,2.3715076e-05,3.687569e-05,3.490308e-05,0.00011355923,0.0005842279,0.029999776,1.7293179e-06,0.058603156,0.48592827,0.40500358,0.00088649447,0.010413157,0.0033831166,0.0051128203,1.609663e-05,2.6391604e-07,5.735476e-07,2.8675615e-07,1.4218736e-07,4.560604e-07,1.630011e-08,2.394288e-07,5.014799e-07,1.9691922e-06,7.396251e-06,5.79215e-06,1.341706e-06,1.0409632e-06,1.8008423e-06,1.9817078e-05,6.9998982e-06,1.504122e-06,1.0326239e-06,1.2741053e-06,1.6307731e-06,1.2316684e-06,1.0689273e-06,1.4129797e-06,1.329779e-06,1.852888e-06,2.0678915e-06,4.650104e-06,1.37295265e-05,0.00025052283,0.002406888,7.102476e-08,0.49947086,0.47508273,0.0003134499,0.01335174,0.0022750262,0.006826716,5.732753e-06,9.009489e-08,2.4423855e-07,1.2207312e-07,4.3175923e-08,7.5488174e-08,2.0259927e-09,2.4459881e-08,4.5484725e-08,1.09136735e-07,2.173289e-07,1.7534026e-07,5.1412126e-08,3.722629e-08,6.946574e-08,3.491876e-07,1.4973494e-07,6.18174e-08,4.0161186e-08,4.521847e-08,7.1870744e-08,8.006812e-08,6.239435e-08,7.5538075e-08,5.8768606e-08,8.5548855e-08,9.72977e-08,1.2412634e-07,1.1170426e-08,5.734933e-07,1.0305622e-05,0.00025791547,3.6675576e-11,0.9922611,3.2401495e-06,0.00080826605,0.00046556682,0.006192976,6.4999284e-08,7.688091e-11,2.6033345e-10,1.5389628e-10,2.4369395e-11,5.7068135e-11,1.3758031e-12,4.209913e-12,1.1131891e-11,3.5245674e-11,1.3024166e-10,9.062795e-11,2.465463e-11,1.02834624e-11,3.036038e-11,3.9441242e-10,2.7160954e-10,3.6255554e-11,1.9610213e-11,2.3564236e-11,4.5669964e-11,5.880638e-11,5.565829e-11,5.970238e-11,2.4837814e-11,2.660082e-11,3.3746998e-11,4.3454084e-11,5.8468173e-09,2.2263244e-07,6.5809013e-06,0.00018795805,0.76023954,2.8099684e-11,1.4163233e-05,0.002846326,0.0016716388,0.23503284,6.9263376e-07,5.534576e-10,1.0025111e-09,6.0198035e-10,7.0297296e-11,2.0708672e-10,2.4979498e-12,4.421643e-12,8.175089e-12,2.1680647e-11,5.799486e-11,4.5608902e-11,1.5915207e-11,5.404486e-12,1.4014908e-11,1.6539643e-10,1.6201743e-10,1.6372405e-11,1.1798698e-11,1.2507246e-11,3.2388096e-11,4.5429528e-11,3.3704383e-11,5.133505e-11,2.0461466e-11,1.8092828e-11,2.3883263e-11,2.5419576e-11,0.000102959624,0.00023068195,0.00065305067,0.005622172,0.112546965,0.6421059,1.2739303e-06,0.11983475,0.016419545,0.09562227,0.0062783537,0.00031939067,8.294289e-05,5.577999e-05,4.0655217e-05,4.9371505e-05,1.2822981e-06,3.535012e-06,4.506455e-06,5.977631e-06,1.5159782e-06,1.0197052e-06,5.2390953e-07,4.1203393e-07,1.3586782e-06,1.8026171e-06,1.104013e-06,8.0996637e-07,1.2823543e-06,5.020124e-07,7.217179e-07,5.035161e-07,3.026199e-07,5.810576e-07,6.3050356e-07,6.862109e-07,1.4327063e-06,3.2030607e-06,6.1817116e-07,5.52283e-06,3.5603553e-05,0.0011115113,0.13030563,0.59892017,0.0005561896,5.9126988e-09,0.034148283,0.23482789,8.55557e-05,9.062598e-07,9.623369e-07,8.08868e-07,1.1246144e-07,7.957441e-08,2.3227656e-10,6.326746e-10,2.0848088e-09,1.1778244e-08,4.6939906e-08,4.1757737e-08,1.1344107e-08,4.418274e-09,5.664094e-09,3.4855375e-08,1.6811294e-08,3.51414e-09,2.955254e-09,3.5292602e-09,6.02612e-09,7.9421385e-09,3.524417e-09,7.3049273e-09,5.940472e-09,5.283536e-09,5.933033e-09,8.017111e-09,1.2274532e-07,1.4374442e-06,7.767993e-06,0.00012718725,0.050404813,0.23621525,5.1177896e-05,0.022932429,3.970699e-09,0.69017303,8.4768624e-05,3.340572e-07,6.4330084e-07,8.0959467e-07,9.161604e-08,2.8530582e-08,5.167704e-10,5.1855653e-10,7.4695783e-10,3.6470416e-09,4.1953356e-08,5.2269392e-08,1.4626351e-08,6.9932806e-09,4.1461248e-09,3.4761328e-08,2.870443e-08,3.991451e-09,1.9197202e-09,2.8457632e-09,4.2172927e-09,6.715207e-09,5.3000218e-09,8.824364e-09,6.7193846e-09,5.5734453e-09,3.927891e-09,3.5266383e-09,2.4284148e-09,3.2371084e-08,3.351724e-07,1.08964405e-05,0.019142782,0.9482213,8.509342e-06,0.004502425,0.01970487,1.13365935e-10,0.008341579,3.372035e-05,1.7191984e-05,1.6077163e-05,3.7923402e-07,2.8157926e-08,3.6709604e-11,1.2988788e-11,2.3699513e-11,1.1466573e-10,1.3834579e-09,2.6459326e-09,1.1640511e-09,2.5498822e-10,8.258984e-11,5.755155e-10,8.226413e-10,6.6425865e-11,5.574288e-11,6.56719e-11,1.5091743e-10,2.1214397e-10,2.0070644e-10,3.918063e-10,2.3624788e-10,8.9983625e-11,7.041281e-11,5.909673e-11,2.9342942e-13,3.816457e-13,5.529312e-13,4.794734e-12,1.0527923e-10,1.464242e-09,2.927596e-10,8.5955626e-10,1.2681751e-09,4.3709592e-06,5.940336e-14,0.99659014,0.002407311,0.0009862544,1.1733425e-05,1.3036882e-07,1.168117e-09,9.479672e-11,1.9125645e-12,2.6634387e-12,2.862755e-12,8.134662e-12,1.943177e-11,8.025441e-12,2.2627118e-13,7.937156e-14,6.675096e-13,7.8228147e-13,3.8122446e-13,1.6369386e-13,1.9864958e-13,1.6721464e-13,1.271253e-13,1.8980347e-13,3.591711e-13,1.1465269e-13,1.5297664e-13,1.9864581e-13,1.9090624e-21,1.0698295e-21,8.072447e-22,6.709731e-21,1.1088079e-20,1.0418318e-19,1.3261445e-18,8.1073936e-19,4.4500844e-19,1.5733488e-15,8.8740165e-08,5.289501e-21,0.9677862,0.03219641,1.727184e-05,6.2119726e-11,5.1860495e-12,5.6674034e-15,2.962147e-18,8.5992197e-19,1.0979162e-18,1.3651864e-17,1.5760873e-16,4.4750782e-17,1.847563e-20,3.1337685e-22,2.0297159e-20,8.31997e-20,2.5517163e-20,3.9165312e-20,5.588407e-20,5.3577994e-20,4.108374e-20,8.58008e-20,4.677313e-19,3.438494e-20,3.2868594e-20,1.5846989e-20,3.4578484e-21,2.5804602e-21,1.7961542e-21,1.862313e-20,3.8441726e-20,1.9321318e-19,3.525998e-19,8.814353e-19,8.773962e-19,8.2128214e-16,2.1946744e-10,0.99086326,5.4156302e-21,0.00913473,1.9548231e-06,8.48706e-13,1.2619545e-15,2.0053734e-16,7.469352e-19,4.8988004e-19,2.643059e-18,3.2562325e-17,4.0833606e-16,3.8085653e-16,3.6473867e-20,1.6562609e-21,4.2235277e-20,8.905602e-20,1.78092e-20,3.2876074e-19,1.2054503e-18,2.5703841e-18,2.845547e-18,5.31756e-18,4.0354013e-17,1.5239367e-18,1.6654237e-19,4.4599986e-20,5.623665e-20,3.1154006e-20,2.0970455e-20,2.173599e-19,5.3066593e-19,2.709261e-18,5.5373493e-18,1.7300597e-17,2.5785188e-17,1.7934777e-14,2.099651e-09,0.76977164,0.2133123,1.2646466e-19,0.016916016,1.2163226e-10,5.338143e-14,2.4294885e-14,2.9036445e-17,1.5209011e-17,7.3545164e-17,1.2261283e-15,1.8718496e-14,6.751753e-14,2.769217e-18,9.222329e-20,1.9285259e-18,6.6472404e-18,4.6339035e-19,3.3178357e-18,1.0214899e-17,3.8364167e-17,8.6286955e-17,2.953718e-16,6.1174765e-15,3.055371e-16,1.0302205e-17,2.067397e-18,3.7098298e-18,1.4527403e-18,5.9846605e-19,4.4247152e-18,4.83639e-18,1.8209155e-17,2.3228656e-16,1.3844297e-16,1.679415e-16,2.4348833e-14,1.4376964e-09,0.02376716,0.0026273136,0.9736041,7.278694e-18,1.4054018e-06,4.708772e-11,7.3186866e-11,2.4593549e-14,3.1615789e-15,3.724055e-16,2.9021134e-15,1.8842468e-14,9.335718e-13,6.446801e-16,4.266487e-18,1.6913079e-17,1.421755e-16,3.6124374e-17,3.3546108e-17,7.25151e-17,4.6875022e-17,8.5167396e-17,4.6428364e-16,9.183962e-15,1.2259205e-14,1.2111107e-15,3.1407095e-16,1.5957296e-13,7.8659505e-14,6.5952784e-14,2.6579986e-13,3.8913686e-13,1.8430472e-12,9.692066e-12,3.3656843e-12,1.796926e-12,6.2116035e-11,5.488433e-07,0.0029369763,3.919168e-05,0.00024052778,0.048287272,2.5008383e-13,0.9358694,0.012626075,4.0780908e-08,3.4504286e-10,3.739897e-12,4.583258e-12,2.911014e-11,2.8075978e-10,7.638843e-11,2.320384e-12,6.0284326e-11,4.154183e-10,1.0980454e-11,5.5087805e-12,8.340005e-12,1.0786532e-11,2.1146002e-12,3.0562423e-12,5.34347e-12,1.4284139e-11,1.9318625e-11,9.441815e-12,3.578352e-30,2.0224766e-30,7.0463e-31,2.1324321e-30,2.8043127e-30,6.645526e-30,7.5247136e-29,2.9367426e-30,9.7291955e-30,2.4207089e-29,1.4700144e-24,7.32941e-20,1.7419743e-23,3.1554995e-23,4.8361677e-22,2.797537e-16,7.4756174e-29,1.0,5.796056e-18,5.6403886e-24,3.3980422e-27,2.355938e-27,4.9441973e-27,1.9837105e-26,8.891081e-27,2.6423025e-27,1.281681e-23,9.893128e-21,8.441095e-26,1.0200132e-26,1.3410474e-27,4.4987927e-26,2.285597e-27,7.875976e-28,3.2659195e-28,1.0225606e-27,1.5474094e-27,2.133306e-27,2.4554737e-29,1.4287508e-29,1.0350197e-29,2.5744926e-29,8.581139e-30,1.1763259e-29,2.074401e-28,7.9991115e-30,9.7628045e-30,8.565114e-30,1.1929672e-25,8.009674e-23,2.7681735e-24,1.4361266e-23,7.5166787e-22,3.7742427e-18,1.0,7.4756174e-29,2.3043506e-11,4.8880862e-20,3.6923008e-26,1.9506244e-27,3.834758e-27,1.6376807e-25,1.5721321e-26,4.523519e-27,3.589875e-24,5.2720973e-18,9.844844e-25,1.9093683e-26,5.722694e-27,5.051575e-25,2.2240414e-26,4.25703e-27,1.6890652e-27,1.5315073e-26,6.83351e-27,8.5979614e-27,1.8700965e-18,1.1059938e-18,9.407562e-19,2.077563e-18,9.846713e-19,9.438224e-19,1.1475938e-17,1.1438781e-18,6.102778e-19,6.7819603e-19,1.04448605e-16,1.8167298e-15,4.474374e-16,7.4485663e-16,1.09614246e-14,5.2901704e-13,2.5152661e-07,0.99999976,3.244131e-18,4.1787976e-10,1.0121078e-15,1.776025e-17,1.3512367e-17,3.9422382e-17,1.6191577e-16,1.4992817e-17,8.0812065e-17,2.2400791e-14,4.284392e-15,2.5101155e-17,2.2739721e-17,5.758526e-17,2.0208621e-17,6.738716e-18,1.7463363e-18,6.0785243e-18,2.0012308e-17,4.262462e-17,3.065944e-09,1.8386007e-09,1.4547331e-09,1.96305e-09,1.2277191e-09,9.856913e-10,5.994509e-09,2.544866e-09,1.1733942e-09,1.2921746e-09,5.727995e-08,2.0768951e-07,1.1556091e-07,1.5363932e-07,5.5490875e-07,1.7626135e-06,9.639003e-05,0.83533746,0.16455956,1.2775272e-09,2.8660208e-06,1.1092947e-07,5.983272e-08,6.3564045e-08,5.873625e-08,1.18411e-08,1.7065597e-08,1.1536864e-07,2.5275992e-07,1.0919296e-08,8.848485e-09,9.064647e-09,5.9487895e-09,3.1149086e-09,2.0599953e-09,2.316336e-09,3.4457e-09,1.1947227e-08,7.016914e-08,2.1455338e-07,2.2549166e-07,1.6132492e-07,1.872262e-07,1.0881313e-07,6.2739495e-08,4.1855273e-07,5.570486e-07,6.433942e-07,2.5407785e-06,1.0943319e-05,2.5730675e-05,3.066049e-05,2.6974683e-06,7.884383e-07,2.3964888e-06,2.6040188e-05,1.6448324e-05,0.000118277705,5.272222e-08,0.74248624,0.20894547,0.04758494,4.8396392e-05,0.00016051838,0.0004271026,8.690043e-05,2.9389314e-06,3.8319786e-06,9.803443e-07,1.611886e-06,4.3683594e-06,2.2196218e-06,4.1439453e-06,9.143611e-07,1.1047864e-07,7.87479e-08,9.768357e-10,3.1084126e-09,4.1274526e-09,3.0422087e-09,3.0451057e-09,2.0001625e-09,9.863843e-10,8.7029886e-09,1.6221748e-08,2.8761622e-08,1.6875055e-07,3.1804957e-06,7.4094164e-06,1.1947676e-05,4.9133547e-07,2.2584258e-08,3.8835946e-08,3.2154645e-08,6.746321e-09,1.070025e-07,0.01735449,1.232302e-09,0.8129567,0.16959338,3.6816334e-06,1.5660728e-05,3.9425133e-05,1.1943745e-05,5.2202793e-08,1.10336074e-07,2.6587418e-08,5.5296585e-08,2.1884267e-07,1.567389e-07,4.610065e-07,8.042584e-08,4.8214055e-09,1.4938809e-09,8.223452e-12,1.57663e-11,1.6557202e-11,1.5447558e-11,1.4345827e-11,1.20868975e-11,8.776373e-12,4.0943842e-11,7.860914e-11,2.1912576e-10,6.9808017e-09,6.358712e-07,1.6090587e-06,3.1586842e-06,5.524442e-08,2.4840638e-09,1.4114085e-09,1.0946993e-09,8.8886926e-11,9.994764e-10,8.4575244e-05,0.014078431,2.1340473e-11,0.985819,6.357663e-07,2.55357e-07,2.424988e-06,9.162883e-06,5.1537064e-09,1.448699e-08,2.7810112e-09,6.507456e-09,2.3064729e-08,1.509708e-08,6.3589816e-08,5.6321627e-09,1.5285515e-10,2.965273e-11,1.1089587e-11,2.1331627e-11,1.2898888e-11,1.1231355e-11,6.008341e-12,4.121403e-12,6.9307303e-12,1.6012499e-11,3.774037e-11,4.819808e-11,2.89501e-09,1.8129164e-07,1.5069697e-06,1.1440344e-05,2.7484386e-06,2.405695e-08,5.686216e-09,4.6943374e-08,2.6039687e-10,1.0661875e-09,1.9340512e-05,0.002949062,0.9898864,2.142852e-11,6.952377e-05,1.4036071e-06,2.1021933e-05,0.007035235,6.855986e-08,1.10029525e-07,2.1374749e-08,5.6830963e-08,1.8738479e-07,9.0870024e-08,1.0741926e-06,4.557232e-07,2.1237667e-09,1.4232503e-10,3.4292432e-07,3.9997968e-07,3.0414694e-07,2.856561e-07,2.4177584e-07,1.4567044e-07,3.1149676e-07,2.797869e-07,3.0497065e-07,2.1277776e-07,1.112502e-06,1.0201583e-06,1.9670517e-06,6.3954285e-06,2.5868607e-05,8.921226e-05,3.4736888e-05,6.142221e-05,1.4577176e-05,1.3428226e-05,0.00026810315,0.00087258144,0.008701139,0.9475971,2.920671e-07,0.0012751985,0.0034734937,0.037124276,0.00037189617,3.1271386e-05,7.3643237e-06,4.4217322e-06,3.4571763e-06,2.3642333e-06,4.7481353e-06,7.02659e-06,1.6763438e-06,1.0072725e-06,9.142772e-07,3.275177e-06,4.33276e-06,1.8588695e-06,4.066061e-06,2.2254842e-06,5.350048e-07,2.228868e-06,3.3100062e-06,1.919439e-06,5.051888e-07,2.240021e-08,1.1563264e-07,2.7572221e-07,2.2162382e-07,3.5081166e-06,1.3363977e-05,2.2878588e-05,1.7473725e-06,3.5044654e-06,0.0011511474,0.004805014,0.0045242193,0.024765853,0.0016508023,3.7809406e-07,0.66997474,0.29277375,0.00014908928,3.8891263e-05,1.2536133e-05,2.7379161e-05,2.4197398e-05,1.2376467e-05,1.0161107e-05,6.655389e-06,1.1970044e-06,7.06273e-07,5.76045e-10,1.8922295e-09,2.5205953e-09,1.3128032e-09,4.6116284e-09,3.5904306e-09,5.396527e-10,1.7705233e-09,4.5016137e-09,4.5187063e-09,6.9973356e-09,2.3894942e-09,4.8563793e-09,9.49604e-09,1.4469566e-09,1.501084e-07,0.0001067626,2.9903284e-05,1.5511866e-08,8.3183584e-09,5.044577e-06,1.9922429e-05,7.076066e-05,0.0006108953,7.405769e-06,0.00110343,6.227106e-10,0.99803954,4.3391688e-06,7.935594e-07,1.1087612e-07,3.9320582e-07,2.4765455e-07,8.6318465e-08,9.539724e-08,4.5446654e-08,5.448366e-09,1.762965e-09,1.1236118e-11,1.597425e-11,1.1982043e-11,1.1990112e-11,1.3618205e-11,8.02663e-12,8.758779e-12,8.18758e-12,1.38479705e-11,8.071921e-12,1.8141509e-10,2.1668482e-10,2.2653565e-10,7.240931e-10,2.69087e-10,2.2883489e-08,0.0018230929,0.9715353,9.512336e-08,1.2440559e-09,2.2706535e-08,1.3351979e-07,5.9149406e-06,0.004522814,1.7510462e-06,1.06673015e-05,0.022079222,1.3775972e-11,2.0260382e-05,4.0441677e-07,2.7205985e-08,3.8118753e-07,6.549246e-08,1.0575886e-08,1.4019648e-08,2.1879268e-08,1.0214448e-09,1.5301586e-10,7.9259564e-07,5.5946106e-07,3.9778607e-07,3.7668596e-07,3.5619487e-07,2.797144e-07,6.705708e-07,3.329591e-07,3.2207248e-07,3.2755864e-07,4.275156e-06,3.2136602e-06,2.1906733e-06,2.4409565e-06,3.306197e-06,2.9249399e-05,0.0007522014,0.0087729,0.0008797787,0.00013180148,3.7134538e-05,2.8220093e-05,0.00016087847,0.0021313757,0.00084824505,0.00026268107,0.0046419725,0.97973275,6.6616565e-07,0.0011143922,0.00017982941,0.00017400367,5.3010506e-05,1.7058306e-05,1.1895007e-05,1.018429e-05,5.54423e-06,4.24977e-06,1.8917832e-09,1.875651e-09,1.235688e-09,1.0677866e-09,1.0775931e-09,7.465152e-10,6.60918e-10,1.0010973e-09,1.2020158e-09,9.715728e-10,4.6216693e-09,1.2418389e-08,1.0181442e-07,4.400107e-08,7.729778e-09,3.6944364e-08,2.2884268e-07,4.2837192e-07,1.29769795e-08,1.4335169e-08,1.2190112e-07,1.5016847e-07,1.1385522e-06,8.611822e-06,1.7957377e-07,1.7251645e-07,2.1373298e-06,4.9236285e-05,2.8056545e-06,1.6771751e-09,0.039142426,0.85889846,0.07867783,0.007930084,0.013777261,0.001503545,4.651945e-06,3.0013294e-07,8.679484e-12,9.5005835e-12,8.275011e-12,8.8795854e-12,1.0927078e-11,1.01142645e-11,4.9713246e-12,8.943393e-12,9.320026e-12,1.16817285e-11,2.9344513e-11,9.270936e-11,1.9532174e-09,7.0878614e-10,8.742292e-11,2.926382e-10,1.5741544e-10,6.7174516e-10,6.150888e-11,6.0778375e-11,1.6316809e-10,1.893256e-10,1.1435339e-09,8.753045e-09,2.2125879e-10,2.9094738e-10,1.5624353e-09,1.7329759e-08,2.3687998e-09,0.00020479516,8.775064e-12,0.9247954,0.06889133,0.003255076,0.002659362,0.0001938625,1.7665738e-07,5.4495986e-09,4.877323e-17,5.683882e-17,5.918853e-17,9.3684564e-17,1.3324966e-16,1.3435524e-16,3.2846257e-17,1.1162683e-16,1.4054335e-16,1.5551271e-16,2.3392737e-16,8.417624e-16,3.9442713e-14,2.5210089e-14,5.351874e-16,3.5843732e-15,5.0011133e-14,5.6156176e-13,1.4751315e-15,5.896545e-16,2.5407317e-15,3.72905e-15,2.5341073e-14,2.2039953e-13,1.2581373e-15,6.017804e-15,5.2474836e-14,2.2995043e-12,2.1706688e-14,4.2558003e-08,8.758166e-06,8.310321e-17,0.991585,0.007393605,0.0009917651,2.0899675e-05,2.8517674e-10,1.5501639e-12,3.3372264e-17,5.3667498e-17,4.9352626e-17,7.014102e-17,1.2116878e-16,9.576833e-17,1.8966552e-17,4.7592498e-17,1.06573116e-16,1.413562e-16,1.7086689e-16,6.201437e-16,4.19521e-14,5.4476863e-14,9.342366e-16,6.7511655e-16,2.4411225e-15,2.3753828e-14,4.9736504e-16,3.7178804e-16,6.61549e-15,1.4179217e-14,8.6294145e-14,6.981988e-13,9.450941e-16,5.1098317e-15,3.1753896e-14,3.7958243e-13,6.3535658e-15,3.7455106e-09,6.268322e-07,0.9526846,7.9843026e-17,0.04363453,0.0036443465,3.587275e-05,3.700375e-10,1.686358e-12,1.0500338e-15,1.3349383e-15,1.1895491e-15,1.5483782e-15,2.3699372e-15,2.6597074e-15,6.640416e-16,1.7986734e-15,3.2354793e-15,5.0316468e-15,4.651738e-15,2.3615592e-14,1.4295018e-12,3.400337e-12,9.286483e-14,1.7791947e-14,1.5338378e-14,8.2905044e-14,3.0241276e-15,3.5497393e-15,6.12924e-14,1.851744e-13,1.0299361e-12,6.173761e-12,1.1784975e-14,4.7656062e-14,2.0180819e-13,1.1176758e-12,3.7279885e-14,6.8836874e-09,5.400477e-07,0.12952684,0.7956364,1.4558657e-15,0.07385145,0.0009847146,9.20672e-09,4.1488084e-11,7.257639e-15,7.481911e-15,5.1988544e-15,5.59421e-15,4.5786713e-15,4.923097e-15,3.3461494e-15,6.792636e-15,1.1441043e-14,1.40892665e-14,4.0878433e-14,5.978398e-13,5.0377983e-11,3.2704342e-10,8.530603e-12,1.4445774e-13,2.953672e-14,1.5275774e-13,3.639423e-15,1.0901825e-14,5.3140223e-13,2.529257e-12,2.0145899e-11,3.389168e-10,1.099117e-13,1.8169553e-13,1.0357444e-12,6.880467e-12,1.2072176e-13,5.5537658e-08,2.0489447e-06,0.080685236,0.30859277,0.34295788,6.7608772e-15,0.2677615,3.6808146e-07,5.747799e-10,5.038738e-14,4.1988677e-14,2.6144565e-14,2.939081e-14,1.7698027e-14,1.5711285e-14,1.3143731e-14,2.1804473e-14,3.425023e-14,1.9368128e-14,4.709555e-14,1.5862116e-13,6.866342e-12,5.89524e-11,4.1097438e-11,1.3937188e-12,3.3377104e-13,4.9989396e-12,4.5720026e-14,4.4242347e-14,4.2318587e-13,1.592524e-12,6.4398825e-12,5.189382e-10,5.870414e-13,4.295165e-13,1.7808295e-12,3.875407e-11,3.730402e-13,2.1874813e-08,5.390762e-07,0.0061366092,0.010963124,0.016504249,0.96638864,2.4400949e-14,6.782757e-06,6.976864e-09,7.899177e-09,4.6956123e-09,3.4474346e-09,3.9494434e-09,2.6527807e-09,2.4503903e-09,3.2423106e-09,2.8929046e-09,2.8519085e-09,1.7906558e-09,7.4243274e-09,1.7914733e-08,8.865819e-08,2.3485731e-07,4.7970326e-07,2.2270711e-07,5.96761e-08,2.635359e-07,1.778451e-08,7.775896e-09,6.0412684e-09,1.1279754e-08,2.0649958e-08,2.8573126e-07,1.6547164e-08,9.1272385e-09,2.5224532e-08,2.1376458e-07,2.399397e-08,7.996488e-06,5.803962e-05,0.009893259,0.01336141,0.01823168,0.1569582,0.80138767,2.8829898e-09,9.9814024e-05,5.175804e-05,1.115633e-05,5.661113e-06,3.6793253e-06,2.4944115e-06,1.9044995e-06,5.293385e-06,2.8546085e-06,1.8698552e-06,1.0974745e-06,7.040157e-06,6.3073435e-06,1.7338029e-05,3.4416622e-05,9.084225e-05,7.948477e-05,6.0078517e-05,0.00024213747,2.7661577e-05,1.9688425e-05,3.1445559e-06,2.5521867e-06,2.925329e-06,1.398309e-05,7.260699e-06,3.9326633e-06,5.9603453e-06,2.3384506e-05,1.3430654e-05,0.00037674676,0.0013074594,0.03927117,0.04446587,0.059995078,0.1789833,0.6019599,0.07288909,2.1053e-06]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 265,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"alpha = np.reshape(alpha, [38, 38])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 266,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.00056962966\\n\",\n      \"2.1429629e-05\\n\",\n      \"1.7293179e-06\\n\",\n      \"7.102476e-08\\n\",\n      \"3.6675576e-11\\n\",\n      \"2.8099684e-11\\n\",\n      \"1.2739303e-06\\n\",\n      \"5.9126988e-09\\n\",\n      \"3.970699e-09\\n\",\n      \"1.13365935e-10\\n\",\n      \"5.940336e-14\\n\",\n      \"5.289501e-21\\n\",\n      \"5.4156302e-21\\n\",\n      \"1.2646466e-19\\n\",\n      \"7.278694e-18\\n\",\n      \"2.5008383e-13\\n\",\n      \"7.4756174e-29\\n\",\n      \"7.4756174e-29\\n\",\n      \"3.244131e-18\\n\",\n      \"1.2775272e-09\\n\",\n      \"5.272222e-08\\n\",\n      \"1.232302e-09\\n\",\n      \"2.1340473e-11\\n\",\n      \"2.142852e-11\\n\",\n      \"2.920671e-07\\n\",\n      \"3.7809406e-07\\n\",\n      \"6.227106e-10\\n\",\n      \"1.3775972e-11\\n\",\n      \"6.6616565e-07\\n\",\n      \"1.6771751e-09\\n\",\n      \"8.775064e-12\\n\",\n      \"8.310321e-17\\n\",\n      \"7.9843026e-17\\n\",\n      \"1.4558657e-15\\n\",\n      \"6.7608772e-15\\n\",\n      \"2.4400949e-14\\n\",\n      \"2.8829898e-09\\n\",\n      \"2.1053e-06\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for i in range(38):\\n\",\n    \"  print(alpha[i][i])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 302,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"for i in range(38):\\n\",\n    \"  alpha[i][i] = 0.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 267,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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St7CGUk6duyY5s+fr/79++uDDz6wpikAAAAAgM/Et62vp+7spohaQR5rCgqLNf2DzVr17QELOwMAAPAdn8ygqV+/vnr06OEylpGRof3797vMcomKiiq1h4xz4FKWpc9sNvcZlN1u14033qhevXpp1qxZiouLk/S/gMY0TQUGBup3v/udBg0apAEDBpTrGq128uRJvfTSSy5jUVFRuvvuu33U0cXl5uZqxowZ2rJli2bPnq2gIM+/qFcVvwaGvu6i8rm7xl/HasDFw2e47+Ar3HvwBe47+Ar3HipTq6Z19OzYHnpl+Tad9LDnjGlK73y6U4ePZ2rUgDay2bj3UHn4bx58gfsOvlKT772yrNDlKz4JaPr27VtqubB169ZpwoQJLmPx8fF67bXX3B5j0KBBl7U8mt3+67TqOnXqaMaMGSXjsbGxCgwM1A033KAnnniiSuyXUlRUpMcff1znz593GX/sscdUp04dS3oICgpSXFyc+vbtq3bt2qlFixaKiIhQYGCgMjMzdfjwYf3www9asWKFTp8+7fLedevWqXbt2i7/O1RVdevW9nULPhMTE+7rFlADcd/BV7j34Avcd/AV7j1UpNjYcL38WF9Ne3+zdh0847Huy4RjOpdbpCdGxyk0xOers6MG4b958AXuO/gK957vGWZZpqFYwBHQOM+gGTBggMeApjzatm3r8twwDH300Udq37692/rdu3erXbt2l31eq/ztb3/TkiVLXMZ+//vfa8GCBZWeDqalpWnZsmW64447FBsbe9H6goICvfnmm3rjjTdKQjKHadOmafjw4ZXVKgAAAADATxQWFWvusm36essxr3WtrqijKff9RtGRoRZ1BgAAYB2/CWh++uknzZ0712UsPj6+1KyaS/HCCy8oJCREoaGhJY/BgwdXiw3qFy1apKlTp7qMNWzYUCtXrvTr6/v000/11FNPuYw1atRIX3zxhYKDg33UFQAAAADAKqZpasm6PVr2ZYrXuvrRYZryx15q3jDSos4AAACs4TcBDcrvs88+0xNPPOEyEyUiIkKLFy8uNWvIH7mb+TNr1izddtttPuoIAAAAAGC19ZuP6LUV21Vs9/znidqhgXpmXE91aV3Pws4AAAAqFwFNFfXtt9/qwQcfVGFhYclYaGio3n33XcXHx/uws7I7c+aMrr32WuXn55eMDR48WLNnz/ZhV5cn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WXPPz18VP7p/buzYWZlQMwCaCgNNA1RRURGXXHJJzJs3r9bxk08+OW666aZIZblZ3b464YQTYsCAAR/8OeGEEz7R484///woLS2tdexf/uVfdruvzEdt27YtJk2aVOvYwIED48QTT9y74gAAAAD1pFVhQVx2zpD47IgeWXOLlm2MKXfNinWbyxNqBkBTYKBpYKqqquKKK67Y7d4sxx57bNx6662Rn5/5JnW50KpVq7jkkktqHZs3b15873vfi127du3xMVu3bo1LL7003n///VrHr7zyynoZnwAAAAD2VX5eXow7+ZA47/iDs+beX7c9Jk+dGW+v3JJQMwAaOzf7aGB+8pOfxNNPP13rWEFBQfTp0yd+/OMf79NzHnbYYXHqqafWRb09GjNmTDz22GMxZ86cD4499thj8frrr8fFF18cI0aMiJKSkli9enW88MIL8dvf/na3cebzn/98HH/88fXWEQAAAGBfpVKpOOXI3lFaXBS/fmxhVFbt+Z4zm7fvipvvnhX/dMZhMaJ/54RbAtDYGGgamNWrV+92rKqqKqZNm7bPz3nWWWfV60BTUFAQP/7xj+PCCy+M5cuXf3D8jTfeiOuuu+5jHz906NCYMmVKvfUDAAAAqAujBnaJju0K4/YH58W28j3fc2ZXZU389KH5MeZz/eNzo3ol3BCAxsQlzqgTXbt2jbvvvjvKysr26nEnn3xy3HnnndG2bdt6agYAAABQd/r1KI4bxpdF106tM2bSEXH3X96Ie/7yRtTUpJMrB0CjYqChznTu3DmmT58eN910UwwYMCBrduTIkXHHHXfET37yE+MMAAAA0Kh06dg6Jo4ri0N6FmfNPTXj3fjZw/OjorI6oWYANCapdDptxqdevPvuuzF//vxYuXJlVFRURKtWraJHjx4xbNiw6Nq1a67r1Yv167c1i9+MSaVSUVpae1hbt25beDmhPjnvyBXnHrngvCNXnHvkgvOOXKmLc6+yqibu/OOieGnh7pes/7CDureLy0cPi+I2LfepK02H1zxypTmfe3l5qSgpaZgfEnAPGupNr169olcv11oFAAAAmqYWBXnxjS8eGqUdWsVjL7yTMff2yq0xeeqMuOLcYdGjtE1yBQFo0FziDAAAAAD2USqVirOP7RsXnTow8vNSGXPrNu+MKdNmxqJlGxNsB0BDZqABAAAAgP10zLAD4srzhkWrwvyMmfKKqvjhfXPi+fkrE2wGQENloAEAAACAOnDYgZ3iugvLolP7woyZ6pp0/Pfji+KRZ5c2i3s/AJCZgQYAAAAA6kjPzm3jhvGjok/Xdllzv3/+nfivxxZFVXVNQs0AaGgMNAAAAABQhzq0LYxrxo6IYf1KsuZefG1V/PC+ObF9Z2VCzQBoSAw0AAAAAFDHiloWxGXnDI0TR/bMmlu8fFNMmTYz1m0qT6gZAA2FgQYAAAAA6kFeXiouOKl/fPnE/pHKklu5fkdMmjojlr6/JbFuAOSegQYAAAAA6kkqlYqTD+8V3zprSLQsyPxW3JYdlfGDu2fFrCVrE2wHQC4ZaAAAAACgnpUN6BzfvWBEtGvdImNmV1VN/Ox38+PPr76bYDMAcsVAAwAAAAAJ6HdAcUwcPyq6l7TOmElHxL1/fSOmP7UkamrSyZUDIHEGGgAAAABISJcOreL6cWUxsHeHrLm/znwvfvq7+VGxqzqhZgAkzUADAAAAAAlqU9QirjpveHz6sK5Zc3PeXBc33T0rNm2rSKgZAEky0AAAAABAwloU5MXXTz80zvjMgVlzy1ZtjclTZ8SKtduSKQZAYgw0AAAAAJADqVQqzjymb3zttEGRn5fKmFu/pSKm3DUzFr6zIcF2ANQ3Aw0AAAAA5NBnhnSPfz5vWLQqLMiYKa+ojh/dPzeem7cywWYA1CcDDQAAAADk2KADO8X148qipH1Rxkx1TTp+88dF8btnlkY6nU6wHQD1wUADAAAAAA1Aj9I2ccP4sjiwW7usucdeeCd+/djCqKyqSagZAPXBQAMAAAAADURx28K45oKRMfzg0qy5l15bHbfeNye2lVcm1AyAumagAQAAAIAGpLBlfkw4e0h8blTPrLkl726KKdNmxppN5Qk1A6AuGWgAAAAAoIHJy0vFBZ87JMac2D9SWXKrNuyIyVNnxFsrNifWDYC6YaABAAAAgAbqpMN7xYSzh0TLgsxv423dURk/uGd2zFi8JsFmAOwvAw0AAAAANGAjDukc14wdGe3btMyYqayqiTseWRB/emV5pNPpBNsBsK8MNAAAAADQwB3UvX3cMK4supe0zphJR8R9f3sz7npqSVTX1CRXDoB9YqABAAAAgEagtEOrmDiuLAb16Zg19/SsFfGTh+bHzl1VCTUDYF8YaAAAAACgkWhd1CKuOm9YfGZwt6y5eW+tj5umz4qNWysSagbA3jLQAAAAAEAjUpCfFxefNijOPOagrLnlq7fF5Gkz4r012xJqBsDeMNAAAAAAQCOTSqXijM8cFF8/fVDk56Uy5jZsqYgpd82MBW+vT7AdAJ+EgQYAAAAAGqmjBneP75w/PFoXFmTM7NxVHbfdPy+emft+gs0A+DgGGgAAAABoxAb26RjXjyuL0uKijJmadDp++8TieOh/3oqadDrBdgBkYqABAAAAgEbugNI2MXH8qDioe/usucdfXBa//sPCqKyqSagZAJkYaAAAAACgCShu0zK+d8GIGHlI56y5lxeujlvvnR3byisTagbAnhhoAAAAAKCJKGyRH986c3CcfHivrLkl722OyVNnxOqNOxJqBsBHGWgAAAAAoAnJy0vFl0/sH2NPOiRSqcy51RvLY/LUmfHmis3JlQPgAwYaAAAAAGiCTizrGZedMzRatsj8FuC28sr4wd2z49XFaxJsBkCEgQYAAAAAmqzhB5fGtWNHRnGblhkzVdU1cccjC+KJl5ZFOp1OsB1A82agAQAAAIAm7MBu7eOG8aOiR2mbrLkH/v5WTPvzkqiuqUmoGUDzZqABAAAAgCaupLgorruwLA49sGPW3N9nr4gfPzg/yiuqEmoG0HwZaAAAAACgGWhdVBBXnjssjh7aPWtu/tL1cdP0WbFxa0VCzQCaJwMNAAAAADQTBfl5cdGpA+OsY/tmzb27ZltMmjojlq/emlAzgObHQAMAAAAAzUgqlYovHnVgfPOLh0ZBfipjbuPWirhx+qyYv3R9gu0Amg8DDQAAAAA0Q586rFt85/zh0aaoIGOmYld13P7AvPj7nBUJNgNoHgw0AAAAANBMDejdMa4fVxadOxRlzNSk0zH1ydfjgb+/GTXpdILtAJo2Aw0AAAAANGPdS9rExPGjot8B7bPmnnhpefzy0deisqo6oWYATZuBBgAAAACaufatW8Z3x4yIsgGds+ZeXbwmbrlnTmzdsSuhZgBNl4EGAAAAAIiWLfLj0jMHxylH9M6ae3PF5pg8bWas3rAjoWYATZOBBgAAAACIiIi8VCrOO+HgGHfyIZFKZc6t2Vgek6fNjDfe25RcOYAmxkADAAAAANRy/MieccXooVHYIj9jZlt5Zdxyz5x4ZdHqBJsBNB0GGgAAAABgN0P7lca1Y0dGcduWGTNV1TXxi0dfi8dffCfS6XRy5QCaAAMNAAAAALBHfbq1i38ZPyp6dm6TNffQ/yyN//Pk61FVXZNQM4DGz0ADAAAAAGTUqX1RXHdhWRx2UKesuWfmvh8/fnBelFdUJdQMoHEz0AAAAAAAWbUqLIgrRg+NY4d1z5pb8PaGuPGumbFhy86EmgE0XgYaAAAAAOBjFeTnxVdOGRjnHNc3a+69tdtj0tQZsXz11oSaATROBhoAAAAA4BNJpVJx2qcPjEu+dFgU5Kcy5jZt2xU3Tp8V895al2A7gMbFQAMAAAAA7JUjBnWNq788ItoUFWTMVOyqjtsfnBdPz3ovwWYAjYeBBgAAAADYa4f06hA3jB8VXTq0yphJpyOm/XlJ3P+3N6MmnU6wHUDDZ6ABAAAAAPZJ106t4/rxZXFwj+KsuSdfWR6/eGRB7KqsTqgZQMNnoAEAAAAA9ln71i3ju2OGx+EDu2TNzXh9bdxyz+zYsmNXQs0AGjYDDQAAAACwX1oU5Mc/femwOPVTvbPm3np/S0yeOiNWrt+eUDOAhstAAwAAAADst7xUKs797MEx/pQBkZdKZcyt3bQzpkybGa8v35hgO4CGx0ADAAAAANSZzw7vEVecOzQKW+ZnzGzfWRW33jcnXnptVYLNABoWAw0AAAAAUKeG9C2J68aOjI7tCjNmqqrT8as/LIw/vPBOpNPpBNsBNAwGGgAAAACgzvXu2i4mjiuLXl3aZs09/MzSuPOJxVFVXZNQM4CGwUADAAAAANSLTu2L4tqxI2Nw305Zc8/NWxm3PTA3duysSqgZQO4ZaAAAAACAetOqsCCuGD00Pjv8gKy5he9sjBunz4z1m3cm1Awgtww0AAAAAEC9ys/Li3GfHxDnHt8va27F2u0xaeqMWLZqa0LNAHLHQAMAAAAA1LtUKhWnHtknLj1zcBTkZ35bcvP2XXHT9Fkx5811CbYDSJ6BBgAAAABIzOEDu8T3xoyItq1aZMxUVFbHTx6aF3+d+V6CzQCSZaABAAAAABJ1cM/imDi+LLp2bJUxk05HTH9qSdz71zeiJp1OsB1AMgw0AAAAAEDiunZsHRPHj4r+PYuz5v786rtxx8MLoqKyOqFmAMkw0AAAAAAAOdG2VYu4+svD44hBXbLmZi5ZGz+4e3Zs3r4roWYA9c9AAwAAAADkTIuC/PjmGYfFaZ/ukzX39sotMXnqjFi5fntCzQDql4EGAAAAAMipvFQqzjmuX3z11IGRl0plzK3bvDMmT50Zry/fmGA7gPphoAEAAAAAGoRjhx0QV543NIpa5mfM7Kioiv+8d068uGBVgs0A6p6BBgAAAABoMAYfVBLXX1gWHdsVZsxU16Tj148tjN8//3ak0+kE2wHUHQMNAAAAANCg9OzSNm4YPyp6d22bNffIs2/Hb/64KKqqaxJqBlB3DDQAAAAAQIPTsV1hXDt2ZAztV5I19/z8VfGj++fGjp2VCTUDqBsGGgAAAACgQSpqWRCXnTMkjh/RI2tu0bKNMeWuWbFuc3lCzQD2n4EGAAAAAGiw8vPy4sKTD4nzjj84Ully76/bHpOmzoy3V25JrBvA/jDQAAAAAAANWiqVilOO7B2Xnjk4WhRkfktzy/ZdcfPds2L2G2sTbAewbww0AAAAAECjMGpgl/jemBHRrnWLjJldlTXx04fmx1Mz3k2wGcDeM9AAAAAAAI1Gvx7FMXH8qOjWqXXGTDoi7vnLG3H3X5ZETU06uXIAe8FAAwAAAAA0Kl06tIrrx5XFIb06ZM39ZcZ78bOH50fFruqEmgF8cgYaAAAAAKDRaduqRXzn/OHxqUO7Zs3NfmNd3Hz3rNi8rSKhZgCfjIEGAAAAAGiUWhTkxTe+eGh88agDs+beWbU1Jk2dGSvWbU+mGMAnYKABAAAAABqtVCoVZx3bNy76wsDIz0tlzK3fsjOmTJsZi97ZkGA7gMwMNAAAAABAo3fM0APiyvOGRavC/IyZ8oqq+OH9c+P5+SsTbAawZwYaAAAAAKBJOOzATnHdhWVR0r4wY6a6Jh3//fiieOTZpZFOpxNsB1CbgQYAAAAAaDJ6dm4bE8ePij5d22XN/f75d+K/HlsUVdU1CTUDqM1AAwAAAAA0KR3aFsY1Y0fE8INLs+ZefG1V/PC+ObF9Z2VCzQD+PwMNAAAAANDkFLUsiAlnD4kTR/bMmlu8fFNMmTYz1m4qT6gZwP8y0AAAAAAATVJeXiouOKl/fPnE/pHKklu5fkdMnjojlr6/JbFuAAYaAAAAAKDJSqVScfLhveJbZw2JlgWZ3w7dsqMyfnD3rJj5+toE2wHNmYEGAAAAAGjyygZ0ju9dMDLat26RMbOrqiZ+/vD8+POr70Y6nU6wHdAcGWgAAAAAgGah7wHtY+L4UdG9pHXGTDoi7v3rG3H3U29ETY2RBqg/BhoAAAAAoNno3KFVXD+uLAb27pA199dZ78VPfzc/KnZVJ9QMaG4MNAAAAABAs9KmqEX88/nD49OHdcuam/Pmurjp7lmxaVtFQs2A5sRAAwAAAAA0OwX5efH10wfFGZ85MGtu2aqtMXnqjFixdlsyxYBmw0ADAAAAADRLqVQqzjymb3zttEGRn5fKmFu/pSKm3DUzXntnQ4LtgKbOQAMAAAAANGufGdI9/vm8YdGqsCBjpryiOm67f248O+/9BJsBTZmBBgAAAABo9gYd2CmuH1cWJe2LMmaqa9Jx5x8Xx++eWRrpdDrBdkBTZKABAAAAAIiIHqVt4obxZXFgt3ZZc4+98E78+rGFUVlVk1AzoCky0AAAAAAA/D/FbQvjmgtGxoj+pVlzL722Om69b05sK69MqBnQ1BhoAAAAAAA+pLBlfnz7rCFx0qheWXNL3t0UU6bNjDWbyhNqBjQlme96RYOxcePGWLBgQcyfPz/mzZsXCxYsiLVr19bKTJgwIS677LKc9Hv55Zdj/Pjx+/08F198cVxzzTV10AgAAAAA9k9eXirGfK5/lHYoinv/8kZkuuPMqg07YvLUGXH5OUOjX4/iRDsCjZuBpoG68847Pxhk3n333VzXAQAAAIBm6aRRvaK0uCh++fvXYlflnu85s3VHZfzgntnxjdMPjVEDuyTcEGisXOKsgbrpppvi8ccfN84AAAAAQI6N6N85rrlgZLRv0zJjprKqJu54ZEE8+fLySKczfd4G4P/zCRrqXNu2bWPMmDF7/bjDDz+8HtoAAAAAwP47qHv7uGF8Wdz2wLx4f932PWbSEXH/02/G2k3lccFJ/SM/z+/HA5kZaBqJ1q1bx+DBg2Pw4MExZMiQuOqqq3JdKaPi4uK4+uqrc10DAAAAAOpUaXGruP7CkfGzhxfEomUbM+aenr0i1m/ZGZd86bAoauktWGDPvDo0UEOHDo0hQ4Z88Kdv376R96HFvSEPNAAAAADQVLUuahFXnTcs/s+Ti+P5+asy5ua9tT5umj4rrhg9LDq2K0ywIdBYGGgaqAceeCDXFQAAAACAPSjIz4uLvzAoOndoFY88+3bG3PLV22LS1Blx1bnDomeXtgk2BBoDF0EEAAAAANhLqVQqzvjMQfGN0w+N/LxUxtzGrRUx5a6ZseDt9Qm2AxoDAw0AAAAAwD769OBucfWXh0frwswXK9q5qzpuu39e/M+cFQk2Axo6Aw0AAAAAwH4Y0LtjXD+uLEqLizJmatLp+O0Ti2PqHxdGTU06wXZAQ2WgAQAAAADYTweUtokbxo+Kvge0z5p74K9vxK3TZ8auyuqEmgENVebP3cF+2LJlS8yePTuWL18emzZtihYtWkRxcXF07tw5RowYESUlJbmuCAAAAAB1qn2blvHdMSPi139YGLOWrM2Ye2bOili3uTwmXnRkgu2AhsZAQ51buXJlHHnkkVFTU5Mx069fvxg9enScf/750aZNmwTb1a9UKhWpzPeEazL29DP+77Fm8MOTM847csW5Ry4478gV5x654LwjV5x71JeilgXx7bOGxP1Pvxl/emV5xtzCtzfEd3/8TFwxemh06dg6wYY0R835NS/VgN+wTaXTaRc8bIQGDBhQ6+sJEybEZZddlpMuL7/8cowfP36fHltcXBz/+q//GqeffnodtwIAAACA3Hr8uaXxq0fmR7ZbzrRv0zJuuOjIGHRQp+SKAQ2Ce9CQU5s3b47vfOc7MWnSpFxXAQAAAIA6ddrRfWPixUdGYcv8jJkt23fFxF88H8/NXZFgM6AhcIkz6kxRUVF86lOfimOOOSYGDhwYffr0iXbt2kUqlYpNmzbFkiVL4oUXXoiHHnooNm/eXOux06ZNiw4dOsSECRNy1B4AAAAA6t4Rh3aLm759dPzHf78UG7ZU7DFTWVUTN0+dEatP2xFnH39wg74kE1B3XOKskWpIlzj7x/ByzjnnRLt27T42v3379rj55pvjvvvu2+3vfvvb38anP/3p+qgJAAAAADmzZuOO+Pf/eimWrdqaNXfKpw+MS84aEvn5Ln4ETZ2BppFqSAPNvrrjjjvitttuq3VsyJAh8eCDD+ao0f7bsGF71GS7qGgTkUpFlJS0rXVs/fpt4dWE+uS8I1ece+SC845cce6RC847csW5Ry6UV1TFr/6wMOa8sTZrbkjfkrj0zMHRqtAFkKgbzfk1Ly8vFZ06tcl1jT3yL5ycufTSS2Pu3Lnx9NNPf3Bs/vz58eqrr8bhhx+ew2b7Lp1OR/PYPHf/mG06Hc3kZyd3nHfkinOPXHDekSvOPXLBeUeuOPdIXqvCgvi3b3wqfv7g3HjqleUZc/OXro8b75oZV4weGp3aFyXYkKar+b7mNeQf0efkyKmrrrpqt2PPPvtsDpoAAAAAQP0ryM+Ly84bHuNOHZQ19+6abTF52sxYvjr7JdGAxstAQ04NGDAgDjzwwFrHXnnlldyUAQAAAIAEpFKpOO9zh8TVY8uiIH/3Tzb8w8atFXHj9Fkxf+n6BNsBSTHQkHMjRoyo9fWaNWty1AQAAAAAknPcyJ7x3TEjok1R5jtRVOyqjtsfmBd/n7MiwWZAEgw05FynTp1qfb1hw4YcNQEAAACAZB3Sq2NcP64sOnfIfK+ZmnQ6pj75ejzw9JtR05BvqAHsFQMNOffRG1GlUpk/1gkAAAAATU33kjYxcfyo6HdA+6y5J15eHr949LWorKpOqBlQnww05Nz69bWvodmxY8ccNQEAAACA3GjfumV8d8yIGDWgc9bcjMVr4pZ75sTWHbsSagbUFwMNOTdnzpxaX3fp0iVHTQAAAAAgd1q2yI9LzhwcpxzZO2vuzRWbY/K0mbF6w46EmgH1wUBDTi1cuDCWLVtW69jhhx+eozYAAAAAkFt5qVScd/zBMe7zAyLbnQDWbCyPSVNnxJJ3NyVXDqhTBhpy6tZbb93t2DHHHJODJgAAAADQcBw/okdcMXpoFLbIz5jZvrMq/vPe2fHywtUJNgPqioGGDwwYMKDWn3Hjxn3sY1av3vcX/9tvvz2ee+65WscOO+wwn6ABAAAAgIgY2q80rh07Mjq0bZkxU1Wdjl/+/rV4/MV3Ip1OJ1cO2G8GGvbLv//7v8dXvvKVeO6556K6uvoTPWbLli1x7bXXxs9//vPd/u7qq6+OVLbPbgIAAABAM9KnW7u4Yfyo6Nm5bdbcQ/+zNP7Pk4ujqromoWbA/irIdQH2bMGCBfHkk09+4vwLL7wQFRUVe/y79u3bxze/+c26qlZLOp2Ol156KV566aUoKSmJ448/PoYOHRoDBw6M0tLSaNeuXaRSqdi0aVMsWbIkXnjhhXj44Ydj+/btuz3XZZddFkcddVS99AQAAACAxqpT+6K47sKRcccjC2LB2xsy5p6ZuzLWb6mIb505OFoVeusXGjr/ShuoJUuWxK9//etPnJ81a1bMmjVrj3/Xo0ePehtoPmz9+vXx4IMPxoMPPrjXj7344otjwoQJ9dAKAAAAABq/VoUFcfnooXHXn5fEM3Pfz5h77e0NceNdM+PKc4dFp/ZFCTZFGFpUAAAgAElEQVQE9pZLnJFTXbt2jV/96ldxzTXX5LoKAAAAADRoBfl58ZVTBsToz/bLmntv7faYNHVGLFu1NaFmwL7wCRr2yxVXXBHDhg2LV155JRYsWBCbNm362McUFRXFsGHD4txzz41TTjklWrRokUBTAAAAAGj8UqlUfOFTfaK0uCj+67FFGe85s2nbrrhp+qy49MzDYmi/0oRbAp9EKp1Op3NdgqZj9erVsWzZsli5cmVs2rQpysvLI5VKRdu2baO4uDh69+4dgwYNarKjzPr126Kmpun/k0qlUlFaWvvGdOvWbQsvJ9Qn5x254twjF5x35Ipzj1xw3pErzj1yoa7Puzfe2xQ/eWh+bCuvzPI9Iy486ZA4fmTPffoeNA3N+TUvLy8VJSVtPz6YAz5BQ53q2rVrdO3aNdc1AAAAAKDJ69+zQ0wcVxY/emBurNlYvsdMOh0x7c9LYu2mnTH6+H6Rl0ol3BLIxD1oAAAAAAAaqa6dWsfEcWVxcI/irLknX1kedzyyIHZVVifUDPg4BhoAAAAAgEasXeuW8d0xw+OIQV2y5ma+vjZuuWd2bNmxK6FmQDYGGgAAAACARq5FQX5884zD4guf6pM199b7W2Ly1Bmxcv32hJoBmRhoAAAAAACagLxUKkZ/tl985ZQBWe81s3bTzpgybWa8vnxjgu2AjzLQAAAAAAA0IccN7xFXnjs0ClvmZ8xs31kVt943J156bVWCzYAPM9AAAAAAADQxg/uWxHVjR0bHdoUZM1XV6fjVHxbGH55/O9LpdILtgAgDDQAAAABAk9S7a7u4Yfyo6N2lbdbcw8++HXc+sTiqqmsSagZEGGgAAAAAAJqsju0K45qxI2NI35KsuefmrYzbHpgbO3ZWJdQMMNAAAAAAADRhrQoL4vLRQ+KzI3pkzS18Z2PceNfMWL95Z0LNoHkz0AAAAAAANHH5eXkx7uRD4tzj+2XNrVi3PSZNnRHvrNqSUDNovgw0AAAAAADNQCqVilOP7BOXnjk4CvIzvzW8efuuuGn6rJjzxroE20HzY6ABAAAAAGhGDh/YJb43ZkS0bdUiY2ZXZU385Hfz4q8z30uwGTQvBhoAAAAAgGbm4J7FccP4sujaqXXGTDodMf2pJXHvX9+Impp0gu2geTDQAAAAAAA0Q106to6J48qif8/irLk/v/pu/PyRBVFRWZ1QM2geDDQAAAAAAM1U21Yt4uovD48jD+2aNTdrydr4wd2zY/P2XQk1g6bPQAMAAAAA0Iy1KMiPb3zx0Dj9qD5Zc2+v3BKTp86I99dtT6gZNG0GGgAAAACAZi4vlYqzj+0XXz11YOSlUhlz6zbvjCnTZsbiZRsTbAdNk4EGAAAAAICIiDh22AFx1XnDolVhfsbMjoqquPW+OfHiglUJNoOmx0ADAAAAAMAHDjuoU1w3tiw6tS/MmKmuScevH1sYv3/u7Uin0wm2g6bDQAMAAAAAQC09u7SNieNGRe+ubbPmHnnu7fjN44uiqromoWbQdBhoAAAAAADYTcd2hXHt2JExtF9J1tzzC1bFj+6fGzt2VibUDJoGAw0AAAAAAHtU1LIgLjtnSBw/skfW3KJlG2PKXbNi3abyhJpB42egAQAAAAAgo/y8vLjwpEPi/BMOjlSW3PvrtsekaTPj7ZVbEusGjZmBBgAAAACArFKpVHz+iN7xrbMGR4uCzG8rb9m+K26+e1bMXrI2wXbQOBloAAAAAAD4RMoGdInvjRkR7Vq3yJjZVVkTP/3d/HhqxrsJNoPGx0ADAAAAAMAn1q9HcUwcPyq6dWqdMZOOiHv+8kbc/ZclUVOTTq4cNCIGGgAAAAAA9kqXDq3i+nFlMaBXh6y5v8x4L3728Pyo2FWdUDNoPAw0AAAAAADstbatWsQ/nz88PnVY16y52W+si5vvnhWbt1Uk1AwaBwMNAAAAAAD7pEVBXnzj9EPji0cdmDX3zqqtMWnqzFixbnsyxaARMNAAAAAAALDPUqlUnHVs37j4C4MiPy+VMbd+y86YMm1mLHpnQ4LtoOEy0AAAAAAAsN+OHto9rjpvWLQqzM+YKa+oih/ePzeen78ywWbQMBloAAAAAACoE4ce2Cmuv7AsStoXZsxU16Tjvx9fFI88uzTS6XSC7aBhMdAAAAAAAFBnenRuGxPHj4o+3dplzf3++Xfivx5bFFXVNQk1g4bFQAMAAAAAQJ3q0LYwrr1gZAw/uDRr7sXXVsUP75sT23dWJtQMGg4DDQAAAAAAda6wZX5MOHtInFjWM2tu8fJNMWXazFi7qTyhZtAwGGgAAAAAAKgXeXmpGHvSITHmxP6RypJbuX5HTJ46I5a+vyWxbpBrBhoAAAAAAOrVSYf3im+fPSRaFmR+S3rLjsr4wd2zYubraxNsBrljoAEAAAAAoN6NPKRzXDN2ZLRv3SJjZldVTfz84fnx51eWRzqdTrAdJM9AAwAAAABAIg7q3j4mjh8V3UtaZ8ykI+Lev70Zdz/1RtTUGGlougw0AAAAAAAkpnOHVnH9uLIY2LtD1txfZ70XP3loXuzcVZVQM0iWgQYAAAAAgES1KWoR/3z+8DhqcLesublvrY+bp8+OTdsqEmoGyTHQAAAAAACQuIL8vPjaaYPiS0cflDW3bPXWmDR1Rry3dltCzSAZBhoAAAAAAHIilUrFl44+KL522qDIz0tlzG3YUhE33jUzXntnQ4LtoH4ZaAAAAAAAyKnPDOke/3z+8GhVWJAxU15RHbfdPzeenft+gs2g/hhoAAAAAADIuUF9OsbEcWVRWlyUMVNdk447n1gcv3tmaaTT6QTbQd0z0AAAAAAA0CAcUNomJo4fFQd1b5c199gL78Sv/7AwKqtqEmoGdc9AAwAAAABAg1HcpmV874KRMaJ/adbcSwtXx633zo5t5ZUJNYO6ZaABAAAAAKBBKWyRH98+a0icNKpX1tyS9zbHlGkzY83GHQk1g7pjoAEAAAAAoMHJy0vFmM/1jws+1z9Sqcy5VRt2xKSpM+PNFZuTKwd1wEADAAAAAECD9blRvWLC2UOiZYvMb2dvK6+MW+6ZHTMWr0mwGewfAw0AAAAAAA3aiP6d49qxI6O4TcuMmcqqmrjjkQXx5MvLI51OJ9gO9o2BBgAAAACABu/Abu1j4viy6FHaJmMmHRH3P/1m3PXnJVFdU5NcOdgHBhoAAAAAABqF0uJWcd2FI2NQn45Zc0/PXhE/eWh+7NxVlVAz2HsGGgAAAAAAGo3WRS3iqvOGxWeGdMuam/fW+rjprlmxcWtFQs1g7xhoAAAAAABoVAry8/4ve3caHkWV/n3811kghEASAoGwyxIIO4K4o2RUEBEFRGRTgqA4ssi4Afp3AwGdYZRFQUFBUXDFDVRGhBlkUPYtKATZlxCCJGASCCTp54WPDNXdSbo76aru5Pu5Ll706VNVd+DmpOrcVac0tHuCel1/WZH9Dp3I0qR3N+rwiSyTIgPcR4EGAAAAAAAAABBwbDabbr/2Mg2/vYVCgm2F9sv4PVdT3tuk5P2/mRgdUDwKNAAAAAAAAACAgHV1y1p6tF87VQ4LKbTPufP5evWj7frP1qMmRgYUjQINAAAAAAAAACCgNasfrQmDO6h6ZFihfQrsdr3z7W59+p+9KrDbTYwOcI0CDQAAAAAAAAAg4MXFVNbT93ZUo9pVi+y37MeDevPLnbqQl29SZIBrFGgAAAAAAAAAAGVC1coV9Hj/9uoQX6PIfut/OaG/f7BVWWcvmBQZ4IwCDQAAAAAAAACgzKgYGqyHerVS1071iuz365HTevHdjUrLyDEpMsCIAg0AAAAAAAAAoEwJstnUL7GpBt0SL5ut8H5pGWf14rub9OuR0+YFB/x/FGgAAAAAAAAAAGVS4uV1NapPG1UMDS60T9bZC3p58Rat/yXNxMgACjQAAAAAAAAAgDKsXZPqGjfwckVGVCi0T15+geZ8sVPf/HRQdrvdxOhQnlGgAQAAAAAAAACUaQ1qVdH/3dtRdWpULrLfx//eq3eX71Z+QYFJkaE8o0ADAAAAAAAAACjzqlUN0/iBHdSyYXSR/f6z9Zimf7JdZ3PzTIoM5RUFGgAAAAAAAABAuRAeFqIxfduqc9u4Ivsl7zulqe9v1qkz50yKDOURBRoAAAAAAAAAQLkREhyk+7o1V58bGhXZ7/CJLE16d6MOpf1uUmQobyjQAAAAAAAAAADKFZvNptuubqgHerZQSLCt0H6ZWec15f3N2r73NxOjQ3lBgQYAAAAAAAAAUC5d1aKWHrunvSqHhRTaJ/d8vmZ8sl3/3nLUxMhQHlCgAQAAAAAAAACUW/H1ovTUvR0VG1Wp0D4FdrveXb5bH6/6VQV2u4nRoSyjQAMAAAAAAAAAKNdqVQvXhHs7qHGdqkX2+2bdIc35YqfOX8g3KTKUZRRoAAAAAAAAAADlXtXwCnr8nvbq2Dy2yH4bd53Q3z/YojM5502KDGUVBRoAAAAAAAAAACRVCA3WiDta6tYr6xfZb+/RM5r87iYdP5VjUmQoiyjQAAAAAAAAAADw/wXZbOrbpYnu7dpMQTZbof1OZJ7Vi+9uVMrhTBOjQ1lCgQYAAAAAAAAAAAc3tq+j0Xe1UcUKwYX2yT6Xp398sEXrfk4zMTKUFRRoAAAAAAAAAABwoU3jGI0feLmiIioU2icv3643vtypZT8ekN1uNy84BDwKNAAAAAAAAAAAFKJ+zSp6+t6Oqlsjosh+n/5nnxZ8s0t5+QUmRYZAR4EGAAAAAAAAAIAiVKsapvGDLlery6oV2e+H7ama/vE2nc3NMykyBDIKNAAAAAAAAAAAFKNSxRCNvquNbmhXu8h+Ow9kaMp7m3TqzDmTIkOgokADAAAAAAAAAIAbQoKDdG/XZup7Y+Mi+x1Jz9bEdzfq4PHfTYoMgYgCDQAAAAAAAAAAbrLZbLr1qgYacUdLhQQXPsV+Ouu8pr6/Wdt+PWlidAgkFGgAAAAAAAAAAPBQp4Saerx/O0VUCi20T+6FfM34dLtWbj5iYmQIFBRoAAAAAAAAAADwQtO6UXrq3g6Kja5UaB+7XXrvXyn6aOWvKrDbTYwO/o4CDQAAAAAAAAAAXqoZHa6nBndQk7qRRfb7dv0hzf48Wecv5JsUGfwdBRoAAAAAAAAAAEqgSngFPX5PO3VKiC2y36bd6fr74i06k33epMjgzyjQAAAAAAAAAABQQqEhwXqgZ0t1v6pBkf32HjujSe9uVOpv2SZFBn9FgQYAAAAAAAAAgFIQZLPprhsb675uzRRksxXa7+Tpc5q8cJN2H8owMTr4Gwo0AAAAAAAAAACUohva1dEjfdsorEJwoX2yz+Vp2odb9ePO4yZGBn9CgQYAAAAAAAAAgFLWqlGMxg/qoOgqFQvtk5dv19yvftZX/90vu91uYnTwBxRoAAAAAAAAAADwgXqxEXr63o6qHxtRZL/Pftiv+V/vUl5+gUmRwR9QoAEAAAAAAAAAwEeiq1TUkwMvV5vGMUX2W7MjVa9+vE055/JMigxWo0ADAAAAAAAAAIAPVaoYolF9WuvG9nWK7PfzgQxNeW+TTp4+a1JksBIFGgAAAAAAAAAAfCw4KEiDb4nX3V2aFNnv6MlsvfjuJh04fsakyGAVCjQAAAAAAAAAAJjAZrOp25X19dc7Wyk0pPDp+dPZ5zX1/c3auuekidHBbBRoAAAAAAAAAAAwUcfmsXq8f3tFVAottM/5CwWauWS7vt90xMTIYCYKNAAAAAAAAAAAmKxJnUg9fW8H1awWXmgfu116/7sULV6xRwUFdhOjgxko0AAAAAAAAAAAYIHY6HA9NbiD4utGFtnvu42H9dpnO5R7Id+kyGAGCjQAAAAAAAAAAFgkolKoHr2nva5qUbPIflv2nNTLi7bodPZ5kyKDr4VYHQDKtr1792rnzp1KT0/X+fPnVblyZdWvX1/t2rVTVFSU1eEBAAAAAAAAgOVCQ4I0/PYWqh5VSUvXHii03/7UM3rx3Y16pG9b1a5e2bwA4RMUaAJARkaGkpOTtWPHDm3fvl3JyclKT0839Bk5cqRGjRplUYRGFy5c0OLFi7Vw4UIdOnTIZZ/g4GBde+21evDBB9WxY0eTIwQAAAAAAAAA/2Kz2dS7cyPViAzTu8t3K7+Qd86cPH1Okxdu0sO9WyuhQbTJUaI0UaDxU/Pnz79YkDl8+LDV4bjtwIEDGjVqlFJSUorsl5+fr9WrV2v16tUaNGiQxo0bp9DQUJOiBAAAAAAAAAD/dH3b2qoWGabXP9uhs7mu3zmTk5unf364VUndm+uaVnEmR4jSQoHGT02dOtXqEDy2d+9eDRw4UBkZGR5t99577yk1NVUzZsxQSAgpCQAAAAAAAKB8a9mwmsYP6qBXP96mU2dyXfbJL7Br3tJfdDLznG6/tqFsNpvJUaKkgqwOAGVDVlaWRowY4VScadu2rV555RX961//0rp16/T5559r5MiRTu+f+f777/XPf/7TzJABAAAAAAAAwG/VrRGhpwZ3VIOaVYrs9/ma/Xp72S/Kyy8wKTKUFgo0ASI8PFydOnXS0KFD9corr1gdjpNZs2Y5vW9myJAh+vDDD9W9e3c1aNBAUVFRSkhI0KhRo/TFF1+oadOmhv5vv/22du3aZWbYAAAAAAAAAOC3oqtU1JMD26tN45gi+/03+bj++eFW5Zy7YFJkKA2sJ+Wn2rRpo9atW1/806hRIwUF/a+eNnbsWAujM0pLS9OiRYsMbTfddJPGjx9f6Da1atXS3Llzddtttyk7O1uSZLfbNX36dM2ePdun8QIAAAAAAABAoAirEKJRfVpr8Yo9Wrn5aKH9dh3K1IsLN2ls37aqHlXJxAjhLZ6g8VMff/yxnnnmGfXq1UtNmjQxFGf8zbx585Sb+791EMPCwvTss88Wu11cXJxGjx5taFu5ciVP0QAAAAAAAADAJYKDgjTw5njdk9hERb1pJvW3HE1auEn7U8+YFhu857+z/ggIdrtd3377raGtW7duio2NdWv7u+66S+Hh4Ya2b775ptTiAwAAAAAAAICywGaz6ZZO9fXXXq0UGlL41P6Z7PN66f3N2pKSbmJ08AYFGpTIjh07dOLECUPbnXfe6fb2ERERuummmwxtK1euLJXYAAAAAAAAAKCs6dAsVk8MaK8q4aGF9jmfV6BZS3bouw2HTYwMnqJAgxJZvXq14XNoaKguv/xyj/bRqVMnw+eUlBQdO3asxLEBAAAAAAAAQFnUuHaknrq3o+JiwgvtY5e0+Ps9WvRdigoK7OYFB7dRoEGJpKSkGD63bNlSFStW9Ggfrgo6jvsFAAAAAAAAAPxPbFQlTRjcQc3qRRXZb8WmI5q5ZLvO5eaZFBncRYEGJbJv3z7D50aNGnm8j4YNGyo4OLjI/QIAAAAAAAAAjCqHhepv/drp6pY1i+y3dc9JjZ/9X2WcOWdSZHAHBRp4LT8/XwcOHDC01a5d2+P9BAcHKzY21tBGgQYAAAAAAAAAihcaEqRhPVqo57UNi+z36+FMPTZjtQ4eP2NOYCgWBRp4LSMjQxcuXDC01apVy6t9xcXFGT6npaV5HRcAAAAAAAAAlCc2m013Xt9I99+WoOAgW6H9TmSc1ZMzf9C2PekmRofChFgdAAJXTk6OU1tERIRX+3LcztW+A4HNZpOt8PGvzHD1M/7RVg5+eFiGvINVyD1YgbyDVcg9WIG8g1XIPViBvIOvXdemtqpVDdOsJTt0tpB3zmSfy9Ozb/6o8YM6qHGdSJMjNJ/NjydsKdDAa66KKGFhYV7ty3G7QC3QVKtW2eoQLBMT411xDigJ8g5WIfdgBfIOViH3YAXyDlYh92AF8g6lrXP1CDWoG6Xn5/2k9IyzLvvkF9i18F+7NevxRJOjw6VY4gxec1VEqVixolf7ctwuUAs0AAAAAAAAAGC1BrWqatrozmpSL6rQPodPZMlut5sYFRxRoAEAAAAAAAAAoIyJrhqmKQ9dqytbun5veM3ocFGfsRYFGngtPDzcqS03N9erfTlu52rfAAAAAAAAAAD3hVUM0fghndTz+kaG9uAgm+69LUFBQf77fpbygHfQwGuuiijnzp3zal+O2wVqgebUqWwVFJT9srPN5rw+6m+/ZVFxh0+Rd7AKuQcrkHewCrkHK5B3sAq5ByuQd7BK7+svU+f2dfT9hsOqEBqsGzvUVXSlEJ08mWV1aD4XFGTz23eHU6CB11wVUbKyvPsP7bhdoBZo7HZ7OVm30bmybrernPzssA55B6uQe7ACeQerkHuwAnkHq5B7sAJ5B6vY1KxBNTVrUO1iy8mT5eMdNP78I7LEGbwWHR2t0NBQQ9vx48e92pfjdrGxsV7HBQAAAAAAAACAv6NAA68FBwerQYMGhrZjx455vJ/8/HydOHHC0Na4ceMSxQYAAAAAAAAAgD+jQIMScSyk7Nu3z+N9HDx4UHl5eYa2Ro0aFdIbAAAAAAAAAIDAR4EGJRIfH2/4vHPnTuXm5nq0j02bNhW7XwAAAAAAAAAAyhIKNCiRzp07Gz5fuHBBW7Zs8WgfGzZsMHyOj49X7dq1SxwbAAAAAAAAAAD+igINSqR169aKjY01tH3++edub5+VlaXvvvvO0JaYmFgqsQEAAAAAAAAA4K8o0KBEbDabunXrZmj79ttvlZ6e7tb2S5YsUU5OjqHNcX8AAAAAAAAAAJQ1FGhwUbNmzQx/Bg8e7NZ2w4YNU8WKFS9+Pnv2rCZOnFjsdsePH9f06dMNbYmJiUpISPAscAAAAAAAAAAAAgwFGpRYzZo1NWDAAEPb8uXL9dJLL8lut7vc5vjx4xo+fLiysrIuttlsNo0ZM8ansQIAAAAAAAAA4A9CrA4AriUnJ+vbb791u//atWuVm5vr8ruqVavqgQceKK3QXBo5cqRWrFihw4cPX2x7++23tXnzZg0ZMkStWrVS1apVlZqaqhUrVui9995TRkaGYR9JSUlq3ry5T+MEAAAAAAAAAMAfUKDxUykpKZo7d67b/Tdv3qzNmze7/K5OnTo+L9BERERo9uzZGjRokDIzMy+2b926VY888kix2ycmJurRRx/1ZYgAAAAAAAAAAPgNljhDqWnatKkWL16spk2berTdgAEDNGPGDIWEUC8EAAAAAAAAAJQPzIijVDVq1EifffaZFi1apIULFxqWPLtUUFCQrr32Wo0YMUIdO3Y0OUoAAAAAAAAAAKxlsxf2FnegFOzZs0c///yzTpw4oQsXLqhy5cqqX7++2rVrp+joaKvDK3W//ZalgoKy/1/KZrOpevUIQ9vJk1liOIEvkXewCrkHK5B3sAq5ByuQd7AKuQcrkHewSnnOvaAgm2JiIorvaAGeoIFPNW3a1OMlzwAAAAAAAAAAKOt4Bw0AAAAAAAAAAIDJKNAAAAAAAAAAAACYjAINAAAAAAAAAACAySjQAAAAAAAAAAAAmIwCDQAAAAAAAAAAgMko0AAAAAAAAAAAAJiMAg0AAAAAAAAAAIDJKNAAAAAAAAAAAACYjAINAAAAAAAAAACAySjQAAAAAAAAAAAAmIwCDQAAAAAAAAAAgMko0AAAAAAAAAAAAJiMAg0AAAAAAAAAAIDJKNAAAAAAAAAAAACYjAINAAAAAAAAAACAySjQAAAAAAAAAAAAmIwCDQAAAAAAAAAAgMko0AAAAAAAAAAAAJiMAg0AAAAAAAAAAIDJQqwOAChLgoJsVodgCpvN+ecMCrLJbrcgGJQb5B2sQu7BCuQdrELuwQrkHaxC7sEK5B2sUp5zz5/nbG12e3n4JwAAAAAAAAAAAPAfLHEGAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACajQAMAAAAAAAAAAGAyCjQAAAAAAAAAAAAmo0ADAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACajQAMAAAAAAAAAAGAyCjQAAAAAAAAAAAAmo0ADAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACajQAMAAAAAAAAAAGAyCjQAAAAAAAAAAAAmo0ADAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACajQAMAAAAAAAAAAGAyCjQAAAAAAAAAAAAmo0ADAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACajQAMAAAAAAAAAAGAyCjQAAAAAAAAAAAAmo0ADAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACajQAMAAAAAAAAAAGAyCjQAAAAAAAAAAAAmo0ADAAAAAAAAAABgMgo0AAAAAAAAAAAAJqNAAwAAAAAAAAAAYDIKNAAAAAAAAAAAACYLsToAAGXL3r17tXPnTqWnp+v8+fOqXLmy6tevr3bt2ikqKsonxzx8+LCSk5OVmpqqc+fOKTw8XHXr1lWbNm0UGxvrk2PCevn5+Tp48KD27NmjkydP6vfff1eFChUUGRmpuLg4tWnTRhEREVaHCZS6EydOaPv27Tpy5IhycnIUFhamuLg4tWrVSvXq1bM6PABuOH78uFJSUpSamqrTp09LkiIjIxUTE6PWrVurZs2aFkfozIrzLca70hcouWe323XkyBGlpKToxIkTOnPmjIKDgxUZGanY2Fi1adNG0dHRVocJNwVK3lktMzNTW7du1aFDh5Sdna0KFSooNjZWLVq0UOPGja0OLyCRezDb+fPndfDgQR07dkzHjx9XVlaWcnNzFR4eroiICNWtW1etWrXyu7kK5vKsRYEG8EMZGRlKTk7Wjh07tH37diUnJys9Pd3QZ+TIkRo1apRFERpduHBBixcv1sKFC3Xo0CGXfYKDg3XttdfqwQcfVHJSXjYAACAASURBVMeOHUt8TLvdri+++ELz58/Xrl27XPax2Wy6/PLLNWzYMCUmJpb4mGVdIOTdr7/+qlWrVumnn37Spk2bdPbs2UL7BgUFqVWrVhowYIBuu+02VahQwatjNmvWzNtwL2rZsqWWLFlS4v2UVf6ee+vWrdO9995b4v0MHTpUTz75pNfbr1y5UnPnztWWLVtkt9td9mnevLmSkpJ0xx13yGazeX0sAKXr5MmTWrlypX788UetW7dOv/32W5H969Wrp7vuukt33323qlWrZlKUzqw632K8Kz2BlHtHjhzRqlWr9OOPP2r9+vX6/fffi+wfHx+vu+++W7169fJ6oisxMVFHjx71ats/RUVFad26dSXaR1kTKHl35MgR/eUvfynxfrp27aoZM2Z4vf3GjRs1Z84crV27Vvn5+S77NGjQQIMGDVL//v0VGhrq9bHKukDIvSVLlmj8+PGlvt/vv/9edevWLbIP17al7/jx41q9erU2b96s5ORk7d+/X3l5eUVuY7PZ1KpVK/Xp00d33HGHwsPDTYrWiLk8/2GzF3bGC8BU8+fPvzg5efjw4WL7Wz1R/qcDBw5o1KhRSklJcXubQYMGady4cV6fWJ48eVKPPPKINmzY4PY2Xbt21ZQpU1S5cmWvjllWBUreffnll5o7d65HeXap+vXr6+WXX1b79u093paTWN8IlNyTrC/QZGdna/z48Vq+fLnb23Tq1EmvvPKKqlev7vHxygt/LgzOnDlTs2bNKvX97t69u8jv/WWiqizZsWOH/v73v2vDhg0qKCjwePvKlStrwoQJuuuuu3wQXdGsON9ivCs9gZR7P/zwg2bOnKlt27Z5tX316tU1adIkdenSxeNtKdCUrkDKO8n633sXLlzQlClT9P7777u9TXx8vGbOnKmGDRt6fLyyLJByz1cFmn//+9+Ki4srsg/XtqXv9ddf1/Tp073evnbt2nruued0ww03lGJUxWMuz7/wDhrAT0ydOlXLli1za6LSX+zdu1f33HOPx5Pm7733nsaMGVPsXQWunDhxQv379/doQJek5cuXKykpSdnZ2R4fsywLlLxbtWqV18UZSTp06JAGDhyoL7/8shSjQkkESu5ZLTs7W0lJSR5NVkrS+vXrNWDAAKeCQ3k3f/58/e1vf9NNN92kq666SsOGDdP06dO1atWqMv93FRTEab8VkpOTtW7dOq8mi6Q/xoCnnnpKzz77bClHVjQrzrcY70pXIOXeunXrvC7OSH9M+IwYMUJvvvlmKUYFbwRS3lktLy9PY8aM8ag4I0kpKSnq37+/9u7d66PIAlN5z72GDRsWW5yBfzp27JgefPBBLV682LRjMpfnf1jiDIBXsrKyNGLECGVkZBja27ZtqyFDhqhly5aKjIxUamqqVqxYoffee0+ZmZkX+33//ff65z//qSeeeMLtY+bl5Wn06NFOj142adJESUlJat++vWrUqKHU1FT9+OOPWrBggVJTUy/227ZtmyZMmFCiuxvgP9q2baurrrpKV1xxherUqaOYmBjl5+df/Pd///33dezYsYv98/PzNX78eFWrVk3XXXed18e95557VKVKFY+2qVWrltfHg/+JiIhQ//79Pd7uiiuu8HibCRMmOE1a1a5dW0OGDNHVV1+tWrVqKT09XZs3b9b8+fMNF+sHDx7UqFGj9N577ykkhFM+6Y/CYHl19dVXWx0C/r8GDRrommuuUadOndS4cWPFxMSoYsWKSk9P15YtW/TRRx9p69athm0++OADxcTEaPTo0T6Pz6rzLcY73/P33LtUfHz8xVgbNGigatWqKTg4WGlpadqwYYMWLVqkX3/91bDNtGnTVK1atRLdAd+jRw+PJzkrVark9fHKg0DKO0kaPny4x9vEx8d7vM20adP0/fffG9qio6M1aNAg3XTTTYqLi1NmZqaSk5O1YMECbd++/WK/U6dOacSIEfrss8/87j0W/sRfcy8+Pt6rPPvTL7/8ojVr1hjaevfu7dW+uLYtXfXq1dMVV1yhNm3a6LLLLlPdunUVERGhkJAQZWdna9++fdqwYYOWLFliOHey2+167rnnVKdOHXXu3NmnMTKX5584ewX8VHh4uFq1aqVWrVqpdevWGjt2rNUhGcyaNctpcB0yZIjGjRtnWAc8KipKCQkJ6tu3r4YNG6Y9e/Zc/O7tt99Wz5491bx5c7eOuXjxYm3ZssXQduutt+rll182vF+katWqatasmXr37q2//vWvhgr9t99+q1WrVnm1BEJ54O95FxUVpT59+qhv37667LLLXPapVq2aWrZsqXvvvVeTJk3Shx9+ePG7vLw8Pfvss/r6669VsWJFr2IYPnx4sWv7wnP+nnuXioyM1GOPPebz46xcuVLffvutoa1Tp056/fXXDRdSVatWVePGjXXHHXfo8ccfN2yzZcsWffDBBxo0aJDP40Xp6dChQ4ku3Dds2OA04eDthbtZE1VlXUhIiLp3766+ffuqU6dOLvtUqVJFjRo1Up8+ffThhx9q4sSJunDhwsXv33jjDd16661q2rSpT2O14nyL8c53Ain3KlWqpDvvvFN9+/ZVy5YtXfaJjIxUfHy8+vfvr9dff10zZ840fD916lR16dJFMTExXsVw991368orr/RqW/xPIOWdIzPO8Xbt2qX58+cb2po2baq33nrL8NL6yMhINWjQQN27d9eUKVP0zjvvXPzu0KFDeu2110r0fsOyKBBy789rHm85Lr8bFBSkO++806t9cW1bcpdddpmeeOIJ3Xzzzapfv36h/SIiIlSzZk1dffXVeuCBB/Tyyy87PUH33HPPafny5T59zxRzef6JAg3gJ9q0aaPWrVtf/NOoUSPDciT+NFmZlpamRYsWGdpuuummItdRrVWrlubOnavbbrvt4qOJdrtd06dP1+zZs4s95tmzZ/XGG28Y2lq1aqVp06YpODjY5TZVq1bVnDlz1KNHD0P1ffr06brxxht5oawCJ+/Cw8M1YsQIDRs2zO07fCpUqKAXXnhBubm5+vzzzy+2HzlyRJ9++qkGDBjgq3DhhkDJPav8OT5eqnbt2po9e3ahd0pWqFBB//znP3X48GHt3LnzYvucOXPUp08f7vB1wV8Lg9dcc42uueYar7d3LMZUqVJFN998s1f7MmOiqiwLCgpSjx49NHr0aDVo0MDt7fr166eQkBBNmDDhYlteXp5ee+01vfrqq74IVZI151uMd74RSLkXGhqqAQMG6K9//atq1Kjh1jZBQUEaOXKkCgoK9Nprr11s//333/X222/r8ccf90msKFog5Z2VXn31VV36OujKlStr7ty5huLMpWw2myZMmKAjR44YnrpZtGiRhgwZUuh25Ul5yb2MjAytWrXK0HbNNdeQAxa69dZbPd4mLCxMzzzzjDIzM7Vs2bKL7UePHtXatWt99j4a5vL8F4tRA37i448/1jPPPKNevXqpSZMmfr1W/Lx585Sbm3vxc1hYmFtrtcbFxTk9Krxy5Urt2rWr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BMBtrgbBihUrerUvx+08GdR9fUwEvtzcXD388MPKyMgwtI8aNUrNmzf3aF/333+/+vfvr3r16rn8PiYmRjExMWrXrp2GDRumxYsXa+rUqTp//vzFPv/973/12muvacyYMZ7/MLBcdHS0xo8frz59+qhKlSou+9SsWVM1a9bU9ddfr5EjR+qll17Shx9+aOgzc+ZMdejQQVdffXWRxzt79qzhs7dPQRR28c4EUtmSl5enr776ytAWHx+v1q1be71Psyaq4NrkyZO1ceNGQ9t1112ne+65x2fHtOp8i/HOv1iRe94oKCjQ448/7jRx2K9fP91www0e7at379665ZZbFB8f7/L7atWqqVq1amrZsqXuu+8+ffPNN/q///s/w4RuSkqKXnjhBb388sse/yywNu/CwsI0evRo9evXT9WrV3fZJzY2VrGxserUqZNGjBihOXPmaPbs2Yan9JYsWaIOHTrorrvuKvJ4vhzzuLb1XCCMea6eku7Ro4fXucO1rf84e/asXnnlFa1du1Z//etfdeWVV/rsWMzl+T8KNACAMuXPi/YdO3YY2jt37qwHHnjA4/098cQTbvcNCgrSwIED1bhxYw0bNsxwV+eCBQs0aNAg1oYOQPHx8YVO3LhSuXJlvfDCC4qLi9Orr75q+G7atGn65JNPSjtElGOrV6/WyZMnDW29evXyal9mT1TB2cKFC/X+++8b2mrVqqW///3vstlsFkWF8iCQcu/ll1/WypUrDW0JCQl66qmnPN6XO0+2XurWW29VkyZN1L9/f0OR5quvvrq4pA3cZ3XeVa9eXQ8//LDb/StUqKDRo0erQYMGTtcIs2bNUs+ePUtleVH4ntW55y5XT0l7e54ncW1rlu7duyshIeHi57y8PJ05c0b79+/Xzz//fPHdaXa7XT/99JPWrVun++67T+PGjfOr/IN5eAcNALeFh4c7tTmuKekux+1c7duqYyKwTZw4UcuXLze0NW/eXK+88oppJztXXXWVxo4da2jLycnR4sWLTTk+/MNDDz2kLl26GNp27NihDRs2FLmd48uGL71jzROOL02WXK9ZjsDmeOEeEhKinj17erWvPyeqCivOOPpzomrq1KlO382aNcvr3C2vli1bpsmTJxvaqlSpojfeeEPVqlXz6bGtOt9ivPMPVuaep+bOnev03pm4uDjNmTPH6ztzPdW0aVOn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GdoSExOL3KZ69epq27at18e02+364osvDG2dO3d2eacC/F9hL3icMmWKbr75ZgsjMzp37pz+/e9/G9pat26tsLAwawKCJX7++WcdPHjQ0Ob4InVHoaGhTku3fPHFFy6XFSiM4xjZrl07LqDKEMcL99DQUPXs2dOiaP7H04mq8iYzM1NJSUlOy9n069dPTz75pDVBXcKK8y3GO3P4e+5d6siRI0pKSnJ6+vRvatdeUQAAGHlJREFUf/ubBg8ebFFUzux2u7799ltDW40aNVhq6hKBlHfeSE9P18aNGw1t7rwXyfF9E//6178MT4oVx3HMq1Wrll8s7exPAjn3XD0lnZCQoObNm1sU0R+4tvWdn376yamtbt26pX4c5vL8G1dMADxis9nUrVs3Q9u3337rsurvypIlS5zWFnfcnyuOfdavX69du3a5dcyVK1c63TnjzjHhf3799VcNGzbM6QWPzz33nF9MTl7qnXfecfp/wR295c+0adOc2tzJg1tvvdXw+ciRI1q5cqVbx9y1a5fT3U2MeWVHRkaGVq1aZWi74YYbLF9iwtuJqvIiOztbw4cPV0pKiqG9Z8+eev755y2KypkV51uMd74VKLknSSdOnFBSUpLTWvMjRozQgw8+aFFUri1btszp/wbnef8TSHnnrZkzZxqe5pfcywHHMSonJ0effvqpW8dMT093Kgx27drVrW3Li0DPPVdPSVv9jkGJa1tfKSgo0KJFiwxtUVFRateuXakfi7k8/0aBBijHmjVrZvjj7l1pw4YNU8WKFS9+Pnv2rCZOnFjsdsePH9f06dMNbYmJiUpISCh22379+ql69eqGtv/7v/9zWovSUVZWliZNmmRoa968udOdSzCPt3l3+PBhJSUlKSMjw9A+fvx49evXr9TjTE9PLza/CrNmzRrNmDHD0FapUiWfxAn3eZN7aWlpXh9v+vTpWrNmjaGtZcuWxT5BI/1xd6Xjmr0vvvhisXdY5ufn66mnnjK01ahRw69fggrPLF261GlpE3+4cPd2oqo8yM3N1YgRI5zerXLLLbdo6tSpPllnPDEx0TDeFXeH45+sON9ivPOdQMq9jIwMDR06VIcOHTK033vvvRo7dmypx3nq1CmnMctdu3bt0jPPPGNos9lsuu+++0ojtIAXKHlXknO8Tz75RB9++KGhrWbNmk4FZ1datGihLl26GNpm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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1800x1200 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import matplotlib.pyplot as plt \\n\",\n    \"myfont = FontProperties(fname=r'/usr/share/fonts/opentype/noto/NotoSansCJK-Black.ttc')\\n\",\n    \"plt.plot((1,2,3),(4,3,1)) \\n\",\n    \"plt.title(\\\"聲量圖\\\",fontproperties=myfont) \\n\",\n    \"plt.ylabel(\\\"文章數量\\\",fontproperties=myfont) \\n\",\n    \"plt.xlabel(\\\"時間\\\",fontproperties=myfont)  \\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 268,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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77/f6Qn0xYsXa9y4cZe926A0J06c0IABA5wa3CVp9erVGj58uHJzc50+ZmXmL3m3bt06lws1knT48GENGjRIX375pRujQkX4S+6ZLTc3V8OHD3dq4lKSfvzxRw0cONCu+FDVLViwQE888YS6du2q6667TiNGjNCsWbO0bt26Sv93FRDAJYAZUlNTtXHjRpcmjqTfxoDJkyfrueeec3NkjplxvsV4517+lHsbN250uVAj/Tb5M2rUKP3tb39zY1RwhT/lndmKioo0btw4pwo1kpSWlqYBAwZo//79HorMP1X13GvUqNFlCzXwTceOHdMjjzyipUuXeu2YzOX5HpZBA1BhOTk5GjVqlLKysgztbdq00bBhw9SiRQtFRUUpPT1da9as0eLFi5WdnX2x3zfffKNXX31VTz/9dLmPWVRUpLFjx9o9nnnllVdq+PDhateunWrVqqX09HR9//33WrhwodLT0y/22759uyZNmlShux7gO9q0aaPrrrtO11xzjerVq6e4uDgVFxdf/Pf/8MMPdezYsYv9i4uLNXHiRMXGxuqmm25y+bj333+/qlev7tQ2derUcfl48D2RkZEaMGCA09tdc801Tm8zadIkuwmsunXratiwYbr++utVp04dZWZmKiUlRQsWLDBcuB86dEhjxozR4sWLFRTE6Z/0W5Gwqrr++uvNDgH/X2Jiom644QZ17NhRTZo0UVxcnEJDQ5WZmamtW7fqk08+0bZt2wzbfPTRR4qLi9PYsWM9Hp9Z51uMd57n67l3qaSkpIuxJiYmKjY2VoGBgTp+/Lg2bdqkJUuWaN++fYZtZs6cqdjY2ArdGX/XXXc5PeFZrVo1l49XFfhT3knSyJEjnd4mKSnJ6W1mzpypb775xtAWExOjwYMHq2vXrkpISFB2drZSU1O1cOFC7dix42K/06dPa9SoUfrss8987r0XvsRXcy8pKcmlPPvdzz//rO+++87Q1rt3b5f2xbWtezVo0EDXXHONWrdurSuuuEL169dXZGSkgoKClJubqwMHDmjTpk1avny54dzJarXq+eefV7169dSpUyePxshcnm/i7BXwA+Hh4WrZsqVatmypVq1aafz48WaHZDBnzhy7gXbYsGGaMGGCYd3w6OhoJScnq1+/fhoxYoT27t178bv33ntPPXv2VPPmzct1zKVLl2rr1q2GtjvuuEMzZswwvI+kRo0aatasmXr37q0//vGPhsr9qlWrtG7dOpeWSagKfD3voqOj1adPH/Xr109XXHFFqX1iY2PVokULDR06VFOnTtXHH3988buioiI999xz+sc//qHQ0FCXYhg5cuRl1wKG83w99y4VFRWlJ5980uPHWbt2rVatWmVo69ixo9566y3DRVWNGjXUpEkT3XPPPXrqqacM22zdulUfffSRBg8e7PF44T7t27ev0EX8pk2b7CYfXL2I99akVWUXFBSkHj16qF+/furYsWOpfapXr67GjRurT58++vjjj/XSSy+psLDw4vfvvPOO7rjjDjVt2tSjsZpxvsV45zn+lHvVqlXTvffeq379+qlFixal9omKilJSUpIGDBigt956S7NnzzZ8P336dHXu3FlxcXEuxXDffffp2muvdWlb/I8/5Z0tb5zj7d69WwsWLDC0NW3aVO+++67hhfdRUVFKTExUjx49NG3aNL3//vsXvzt8+LDefPPNCr0PsTLyh9z7/ZrHVbZL9AYEBOjee+91aV9c21bcFVdcoaefflq33XabGjZsWGa/yMhI1a5dW9dff70efvhhzZgxw+7Juueff16rV6/26HupmMvzTRRrAB/UunVrtWrV6uKfxo0bG5Ys8aWJy+PHj2vJkiWGtq5duzpcd7VOnTqaN2+e7rzzzouPL1qtVs2aNUtvv/32ZY95/vx5vfPOO4a2li1baubMmQoMDCx1mxo1amju3Lm66667DFX5WbNm6dZbb+VltPKfvAsPD9eoUaM0YsSIct/5ExISohdffFEFBQX6/PPPL7YfPXpUy5Yt08CBAz0VLsrBX3LPLL+Pj5eqW7eu3n777TLvoAwJCdGrr76qI0eOaNeuXRfb586dqz59+nDnbyl8tUh4ww036IYbbnB5e9vCTPXq1XXbbbe5tC9vTFpVZgEBAbrrrrs0duxYJSYmlnu7/v37KygoSJMmTbrYVlRUpDfffFOvv/66J0KVZM75FuOdZ/hT7gUHB2vgwIH64x//qFq1apVrm4CAAI0ePVolJSV68803L7afO3dO7733np566imPxArH/CnvzPT666/r0ldJR0REaN68eYZCzaUsFosmTZqko0ePGp7GWbJkiYYNG1bmdlVJVcm9rKwsrVu3ztB2ww03kAMmuuOOO5zeJiwsTFOmTFF2drZWrlx5sf3XX3/Vhg0b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iNC0adMuexxPjnm5ubku7asq84XcKw/b87zfl2N0Fde2vqFatWp69NFHNXjwYKeXzXYWc3m+j/9NAFxS2oAYGhrq0r5st3NmgPf0MeH/CgoK9NhjjykrK8vQPmbMGDVv3typfT300EMaMGCAGjRoUOr3cXFxiouLU9u2bTVixAgtXbpU06dP14ULFy72+e9//6s333xT48aNc/6HgeliYmI0ceJE9enTR9WrVy+1T+3atVW7dm3dfPPNGj16tF555RV9/PHHhj6zZ89W+/btdf311zs83vnz5w2fXX06oqwLeSaTKpeioiJ99dVXhrakpCS1atXK5X16a9IKpXv55Ze1efNmQ9tNN92k+++/32PHNOt8i/HOt5iRe64oKSnRU089ZTeJ2L9/f91yyy1O7at37966/fbblZSUVOr3sbGxio2NVYsWLfTAAw/o66+/1v/93/8ZJnfT0tL04osvasaMGU7/LDA378LCwjR27Fj1799fNWvWLLVPfHy84uPj1bFjR40aNUpz587V22+/bXh6b/ny5Wrfvr369u3r8HieHPO4tnWeP4x5pT09fdddd7mcO1zb+o7z58/rtdde04YNG/THP/5R1157rceOxVye76NYAwCotH6/gN+5c6ehvVOnTnr44Yed3t/TTz9d7r4BAQEaNGiQmjRpohEjRhju9ly4cKEGDx7MWtJ+KCkpqcxJnNJEREToxRdfVEJCgl5//XXDdzNnztTf//53d4eIKmz9+vU6efKkoa1Xr14u7cvbk1awt2jRIn344YeGtjp16ugvf/mLLBaLSVGhKvCn3JsxY4bWrl1raEtOTtbkyZOd3ld5nni91B133KErr7xSAwYMMBRsvvrqq4vL3qD8zM67mjVr6rHHHit3/5CQEI0dO1aJiYl21whz5sxRz5493bIEKTzP7Nwrr9Kennb1PE/i2tZbevTooeTk5Iufi4qKdPbsWf3yyy/66aefLr5rzWq16ocfftDGjRv1wAMPaMKECT6Vf/Ae3lkDwCXh4eF2bbZrUJaX7Xal7dusY8K/vfTSS1q9erWhrXnz5nrttde8duJz3XXXafz48Ya2vLw8LV261CvHh2949NFH1blzZ0Pbzp07tWnTJofb2b6o+NI72Zxh+8JlqfQ1zuHfbC/ig4KC1LNnT5f29fukVVmFGlu/T1pNnz7d7rs5c+a4nLtV1cqVK/Xyyy8b2qpXr6533nlHsbGxHj22WedbjHe+wczcc9a8efPs3lOTkJCguXPnunzHrrOaNm1q9y66kpIS3tvlJH/KO1v33HOPBg0aZGhLT0/XP/7xD4fbeXLM49q2/Pwl98p6erply5ZejYNrW+f16dNHTz755MU/EyZM0Msvv6ylS5fq+++/1wsvvGDINavVqoULF+qll17ySDzM5fk+ijUAXFLagFjaiWJ52G7nzADv6WPCf82aNUtLliwxtDVs2FDz58/3+lIoQ4YMUXx8vKHtu+++82oMMJ/thY0kffvttw63sR2b3DXmlbZv+LesrCytW7fO0HbzzTeXu9jiLq5OWuF/1q9fr2eeecbwhFJYWJjmzp3r9PKdrjDrfIvxznxm554zPv30U7sXgcfExOjdd99VnTp1vBpL9+7d1aJFC0Mb53nl5095V5bHHnvMrkBo5jkeBery8afcK+3paW+/k/B3XNu6T3h4uO6//36tXLnS8PSNJH344Yd2T46665i2mMvzLRRrALiktAExJyfHpX3ZblfWYBsYGGh3EuzpY8I/LViwQG+99ZahLT4+Xu+9955q1arl9XhCQkLsnqrYsWOHyyco8E/NmjVTo0aNDG0//vijw21sxyZ3jXlhYWEKCOA0sDJZsWKF3cu1zbqId2XSCr/ZvHmzxo4da/i3DA4O1qxZs9ShQwevxGDW+Rbjnbl8IffK6+uvv9aUKVMMbREREZo3b56aNGliSkzdunUzfD5x4oTde3Rgz5/yzpG4uDhdc801hjZvnePl5uZedt+w52+5586npyuKa1v3i42N1fz581WjRg1D+5w5c9x+LObyfB9nrQBcEhMTo+DgYENbRkaGS/uy3c72Lg1H33njmPAvn3zyid0yPDExMVqwYEGZL0/0hrZt2xo+FxcX290dhcqvXbt2hs+2L2S3xZiH8rK9iI+Ojtatt95qSiyuTFpBSk1N1SOPPGJ46XRAQIBeeeUVr/9bmjH2MN6Zx5dy73L+85//6Kmnnir1TvhWrVqZFpfteZ4kHT9+3IRI/Ic/5V152ObAyZMnDXlqy11jXnp6uuFzSEiIoqOjXdpXVeFvuVfa09OdOnUy9R0xXNu6X82aNfXAAw8Y2nbt2qVffvnFrcdhLs/3UawB4JLAwEAlJiYa2o4dO+b0foqLi+0mKx3dEde4ceMKH7O07cy6Cw/utWLFCj333HOGtsjISM2fP19XXnmlSVH9prST6dOnT5sQCcxku/b15XKAMQ/lsWfPHu3atcvQdvfdd5v6YmNnJ62qur179+qhhx6yu1vwhRde0J133un1eMwYexjvzOFruefIxo0bS70T/o033lDHjh1NjIzzPGf5U96Vl+05XklJibKzs8vsbzvmHT9+3KXfk7bFmkaNGikwMNDp/VQV/ph7vvT0drxmDwAAHKpJREFU9O8Y8zzjD3/4g13b9u3b3XoM5vJ8H8UaAC6zHRQPHDjg9D4OHTqkoqIiQ5vtIO7uY+bl5dlV4x0dE/5hzZo1dmsOV6tWTe+8847XX7xYGqvVatdmsVhMiARmss2Dy+WA7ZiXkZGhvLw8p49re0fWFVdc4fQ+4Ltsn6qRzL+Id3bSqio7dOiQhg8fbvf3M2HCBN13332mxGTG+Rbjnff5Yu6VZfv27Xr00UcNy+wEBgZqxowZuuWWW0yM7Dec55WfP+WdJ9mOeUVFRS4tnWc7PjPmlc1fc8/2PC8mJsb0J4AY8zyjtJVAPPHEEnN5vo1iDQCXJSUlGT7v2rVLBQUFTu1jy5Ytl93vpZo1a2b4nJmZqSNHjjh1zO3bt6u4uLjcx4Tv++677zR+/HjDyUJwcLDmzJnjM2sOl3aSZTuZicrv1KlThs8xMTEO+9uOeUVFRdqxY4dTxzx8+LAyMzMd7hf+q6ioSF999ZWhrXnz5rrqqqtMigjOSE9P1/Dhw+3+j44ZM0bDhw83KSpzzrcY77zLV3OvNLt379bIkSMN7+awWCx66aWX1KNHDxMj+x/O88rHn/LOWbY5EBAQ4HA5stLGpq1btzp1zPz8fLsna7muLZ2/5l5ZT0/bLmPlbYx5nhEUFGTX5okiGHN5vo1iDQCXderUyfC5sLDQ6RPMTZs2GT4nJSWpbt26Zfa/6aab7F4S6+w6+Lb9o6Ki7N4jAf+xefNmjR49WhcuXLjYFhQUpNdee0033XSTiZEZbdu2zfA5MDDQ1HWGYQ7bPLjcGrtt27ZV9erVDW0VHfMCAgJ08803O7UP+K7169fbXTD36tXLpGj+x9lJq6ro5MmTGjZsmH799VdD+4MPPqjRo0ebFNVvzDjfYrzzHl/OPVsHDhzQgw8+qDNnzhjaJ0+erD59+pgUlT3b3++SVKtWLRMi8V3+lHeusM2BuLg4u3H0UnXr1rVbptnZMW/r1q12y2OZ/cSFL/Ln3Cvt6WlfGPu4tvUM22KiVPqScxXFXJ5vo1gDwGWtWrWym2j8/PPPy719Tk6O/vWvfxnaunTp4nCbmjVrqk2bNi4f02q16osvvjC0derUqdQ7GOD7yno55LRp03TbbbeZGJlRfn6+/v3vfxvaWrVqpbCwMHMCgil++uknHTp0yNBm+xJ2W8HBwXbLu3zxxRelLj1QFtsxsm3btlxMVSK2F/HBwcHq2bOnSdH8j7OTVlVNdna2hg8fbrfkTf/+/fXMM8+YE9QlzDjfYrzzDl/PvUsdPXpUw4cPt3sq9YknntCQIUNMisqe1WrVqlWrDG21atViOapL+FPeuSIzM1ObN282tJXnPUq276f45z//aXiC7HJsx7w6der4xPLPvsSfc6+0p6eTk5PVvHlzkyL6Dde2nvPDDz/YtdWvX9/tx2Euz7dxxQTAZRaLRd27dze0rVq1qtS7AUqzfPlyu7XIbfdXGts+P/74o3bv3l2uY65du9bujpryHBO+Z9++fRoxYoTdyyGff/55n5iovNT7779v9/+CO32rnpkzZ9q1lScP7rjjDsPno0ePau3ateU65u7du+3uemLMqzyysrK0bt06Q9stt9xi+jIUrk5aVRW5ubkaOXKk0tLSDO09e/bUCy+8YFJU9sw432K88yx/yT1JOnHihIYPH263Nv2oUaP0yCOPmBRV6VauXGn3f4PzvP/xp7xz1ezZsw1P+UvlywHbMSovL0/Lli0r1zEzMzPtioTdunUr17ZVhb/nXmlPT5v9TkKJa1tPKSkp0ZIlSwxt0dHRatu2rduPxVyeb6NYA0DSb+tHXvqnvHerjRgxQqGhoRc/nz9/Xi+99NJlt8vIyNCsWbMMbV26dFFycvJlt+3fv79q1qxpaPu///s/u7UrbeXk5Gjq1KmGtubNm9vd0QTvcTXvjhw5ouHDhysrK8vQPnHiRPXv39/tcWZmZl42v8ry3Xff6Y033jC0VatWzSNxovxcyb3jx4+7fLxZs2bpu+++M7S1aNHisk/WSL/ddWm7xu+f//zny955WVxcrMmTJxvaatWq5dMvUIVzVqxYYbf8iS9cxLs6aVUVFBQUaNSoUXbvYrn99ts1ffp0j6xL3qVLF8N4d7k7H39nxvkW453n+FPuZWVl6cEHH9Thw4cN7UOHDtX48ePdHufp06ftxqzy2r17t6ZMmWJos1gseuCBB9wRmt/zl7yryDne3//+d3388ceGttq1a9sVn0tz1VVXqXPnzoa2N954o1zxvPDCC8rPz7/4OTQ0VA899FA5o678/CX3HCnt6em77rqrQvuUuLb1lOPHjzv1NLCt119/XT/99JOhrVu3bpd9coS5vMqHYg2ACqldu7YGDhxoaFu9erVeeeWVMn9RZWRkaOTIkYYnIiwWi8aNG1euY1arVk2jRo0ytO3YsUNPP/10mRda586d06OPPqpjx44Z2h9//HGPnKjBc44fP65hw4bpxIkThvZx48Zp2LBhHjnmypUr1aNHDy1btqzcSxMUFRVp4cKFGjVqlIqKigzfDRs2jHXM/dCLL76oBx54QN999125L3DOnj2rCRMm6K233rL77sknnyzX+GOxWPT4448b2n799Vc9+uijdk+W/e7ChQt68sknlZqaamgfNWqUqlWrVq7Y4X6uXkyVxfYiPi4uzm4ZKVeYNWlV2RUVFWncuHF262136tRJM2fOVGBgoEmRlc6M8y3GO8/wp9zLycnRyJEjtXfvXkN7v379NGnSJI8cMyUlRV27dtX777+v7Ozscm1jtVr15ZdfauDAgXbnhnfffbfpyxT5An/Ku/nz56t3795avXp1uQt3+fn5+utf/6pnn33W7rsxY8aUe0ko2/Hx3LlzGjFiRJm/i61Wq6ZPn263BNGgQYNUu3btch2zsvOn3CtLaU9Pd+7c2S1PT3Nt6xmffPKJevbsqZUrVxoKqZeTlZWlCRMm6J133jG0V69eXWPHjnV3mBcxl+e7Kt/CbkAlkJqaavdIsyMbNmxQQUFBqd/VqFFDDz/8sLtCK9Xo0aO1Zs0aHTly5GLbe++9p5SUFA0bNkwtW7ZUjRo1lJ6erjVr1mjx4sV2T0QMHz7cqYuaAQMGaMWKFYY18VesWKE9e/bowQcfVLt27RQXF6fjx49rw4YNWrhwod3g3q1bN7s7maoyf8m7cePG6ejRo4a2WrVqKS8vT3/9619d2mf37t0vu77zwYMHNWnSJL344ou6+eabdfXVVys5OVn16tVTZGSkQkNDdfbsWR05ckQ//vijli9fbveYrvTbi/Uee+wxl+KsrPwl96xWq3744Qf98MMPiouLU+fOndW6dWs1b95cNWvWVPXq1WWxWJSdna20tDRt2LBBn332WakXQWPGjNENN9xQ7mN36dJF3bp10+rVqy+2bdy4UT179tTw4cN1/fXXKz4+XidPnlRKSooWLFigffv2GfbRrl073X///a7/BcCn7NmzR7t27TK09ezZ0y3rNs+fP19btmzRI488os6dOyskJOSy2+Tn52vOnDmaP3++3XfOTFpVZrNnz7abeAkKClJiYqLdXarl1aJFC48Wwsw432K8cz9/yr3nnntOO3fuNLRFRESoRo0apS4nWh433HDDZX/nHj9+XC+//LJmzJih6667Th07dlRycrIaNmyo6tWrKywsTDk5OTp27Jg2b96sL774wq6gJP12p+9zzz3nUpyVjT/lnSTt2rVLY8eOVWRkpG699Va1bdtWycnJql27tqpXr66goCCdOXNGBw4c0MaNG7Vs2TKdPn3abj+9e/dWv379yn3c5s2ba/jw4XrvvfcutqWlpenee+/VkCFD1KVLFyUkJOjMmTNKTU3VwoULtX37dsM+GjZsyPXFJfwt90pT2tPTvXr1ctv+ubb1jLS0ND3xxBMKDw/XrbfeqjZt2ig5OVkJCQmKjIxUWFiYcnNzderUKe3evVv//e9/tWbNGrslxQICAvTiiy/aPYXibszl+SaKNYAPSktL07x588rdPyUlRSkpKaV+V69ePY8XayIjI/X2229r8ODBhrvRtm3bZnd35P9r7+5jq7rrP4B/em3pBS4rOJCxCm5kLbAN0K0bGgnJdDoya1DcNJtg4oiiYpiK0Y0Zs4WJmctMOsaYmj0kHSMxU0kkE8VhMhuzzc1NClNctAFGamEDBNqu9On3h7G/Fcp2b3tvz215vf7aOef78Bm5XM457/s9ZyAf+chHYs2aNTnNWVpaGvfff38sW7as3yMSXn311bj99tvfsf+8efNi/fr1Oc052o2Uz93pK2oi/ruUO5faTzdz5sysX8b55ptvxo4dO874NVs2PvjBD0ZdXV2UlZXl3Hc0Gymfvbd644034sknn4wnn3wy57633HJLfP3rX8+53/r166O5ubnf4xwOHjx4xpLwgcyYMSPuv//+UfkCxsEaKSHh2Zy+qiYivxfxSd20Gs0G+pV0V1dX1NfXD3rMT3/60wW9eZTU+Zbvu/waSZ+9gc7zWltb4+GHHx70mOXl5Vn/QKKrqysaGhrOeHRpNmbPnh0//elPI5PJ5Nx3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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1800x1200 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import matplotlib.pyplot as plt \\n\",\n    \"myfont = FontProperties(fname=r'/home/gezi/py3env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/微软雅黑.ttf')\\n\",\n    \"plt.plot((1,2,3),(4,3,1)) \\n\",\n    \"plt.title(\\\"聲量圖\\\",fontproperties=myfont) \\n\",\n    \"plt.ylabel(\\\"文章數量\\\",fontproperties=myfont) \\n\",\n    \"plt.xlabel(\\\"時間\\\",fontproperties=myfont)  \\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 269,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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AAAA4JQQoAAAAABYFmZmZiTNr/xIt127dikrK0uPPPKIfvKTn+jQoUO69957VVtbK0n6t3/7N911112amZmRYRjatWuXrrnmmpMef8uWLRofH0973+l2++236w//8A8z3QYAAACwJBCgAAAAAFgWfh1A5OXlLcr4N910k5qamnTbbbeptbVVV111lb74xS/q5Zdf1gsvvCBJys7O1je+8Q1dccUVi9LDcvX4449r586dp33/I488okceeeSU7vnUpz6lu++++7RrAgAAAB+GAAUAAADAsjA6OipJ2rdvnxoaGj7wuieffPKE75/Ijh07tH79en3hC1/Q4OCg7r333uR769at09///d+f1EHzqTjzBAAAAFh+CFAAAAAALAvDw8OLOn4wGNQzzzyjn//85xocHHzP+729vXrooYf0iU98QhdeeKFcLtei9rOc7NixQ5dffvkZrbkYW7kBAAAA70SAAgAAAGDJGxkZ0fT0tKT5rba2b99+2mOVlJQoGo3qyJEjevvtt/Xaa6/plVdeUXd397uua2xs1LXXXqtwOKzHHntMPT092r17t3bv3q2cnBxdcMEF2rp1q7Zu3aqmpqb3HDq/mjgcDjkc/HoJAACAlYWfcAEAAAAsee3t7ck/X3jhhaqrq7M03m233aZ///d/f8/XKysr9dGPflRXXnmlNm3alPz6ddddpz179mj37t16+umnNTU1pWeffVbPPvuspPnVEOvXr9f3v/99+f3+E9aenZ3V5s2bLfWfLn/913+tz3/+82kd83S3TztZ9913H2fQAAAA4IwgQAEAAACw5L322muS5g9xX7duneXxvvrVr2rfvn2anJzUOeeco61bt2rbtm1au3bt+15vt9u1fft2bd++XTMzM3r55Zf1/PPP68UXX9TRo0cVjUbV0NDwoeEJAAAAgOWDAAUAAADAkvfrlR7nn39+WrbKys3N1e7du09rrOzs7GSYIkljY2Pav3+/NmzYcMpjnc4KkGAwqI997GOSpJ07d+pP/uRPTun+/v5+S1ugnawvfOEL+spXvpKWsY4ePaqPf/zjaRkLAAAAOFkEKAAAAACWtGAwqAMHDkiSLrvsMknSH/zBH2j//v2ZbEt33XWXrr76ahUUFOjSSy/NaC8AAAAA0o8ABQAAAMCS9sMf/lDS/KqRT3ziExnuBqfrq1/9qp588smTutbt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fffdlZ7bMAy9/PLLatKkyUVl69Kly0W9DgAAAAAA+L/QEJfGDuykF97bpC05eZXOHM0v1sy0DE2+rZtiovgBSwAAagq/KFBKSkqUnZ0twzDOumWXaZr67rvvznqNYRgVX3u9Xn333XeVvt4wDJWVlV1UrsLCQt17772aMWOGmjVrdlHnAAAAAAAA/s0dGqJxQxL13LtZ2rEvv9KZQ7lFmpmWqcdvS1Z05PndQhwAAAQ2vyhQfurGG2+UJJ0+fVpr166VYRi68sorFRUVdcZxKzfccINcrh/uTLZixYoz1jZu3KjFixefd5a///3vyszMVGpqqlauXKnIyMgLfTsAAAAAACAAhLtD9MjQRM2an6ndBwsqndl/rFDPzs/UYynJqhXhd99SAQAAVczv/m//wgsvSJJ2796tfv36SZL+53/+R23atDnreGVmzJhRUXR06NDhjLVVq1Zp/vz5Fb/PyclRq1atKj1Pfn6+3n77bRmGocTERMoTAAAAAACCXGR4qCYM76pn5mVo75HCSmdyDp/S8+9laeLwJIWHhdicEAAA2CngHyJ/IY4dOybTNCtu9fXggw/qd7/7nQoKzv7JkjfffFOnT5+WYRgaP368A2kBAAAAAIDdakW4NXFEkpokRFnO7Nx/Ui+8v0llnnIbkwEAALvVqALlz3/+sxYsWFBRovh8Pi1atEgDBw5UVlZWxdypU6c0d+5cGYahm266SW3btnUwNQAAAAAAsFPtWmF6LCVJDeKs70axbU+e/rogWx6vz8ZkAADATjWqQJGkjh07Vnxdv359maapgwcP6q677tLnn38uSZo7d64KCwtlGIYeeughh5ICAAAAAACnxEaHa1JqshJiIyxnNu/O1asfblG5jxIFAIBgVOMKlJ+aPXu27rrrLklSSUmJHn74Ya1evVpz5syRYRi69tpr1bJlS2dDAgAAAAAAR8THRGhSarLiaodbznyz45heX7JNPp9pYzIAAGAHxx4iX1hYqGPHjkmSDhw4UHE8JydHpmmecezAgQMKCQmxnM3Nza04tmfPHoWHW//D5qfCw8MrHlD/hz/8QR6PR2PHjlV5ebkMw9A999zzi94jAAAAAAAIbPXqRGpSarKmzf1GBafLKp35cusRuUNcurtfB7kMw+aEAACgujhWoKxcuVK///3vzzhmmqZuuumms47df//9Z73eanbQ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nTo1unfvvsf39V//9V/xi1/8osFlmUwmevXqFb169Yrly5fHpk2bdq1ls9n46U9/GlVVVXH99dfv4yMkn/bd448/Htdff32D/5//1/++5bW0tDQ2bdoUy5Yti/r6+l3ra9eujU996lPx05/+NI466qg0Y7OP8mnv5YLnvPzxTuVdSzNq1KhcR2A3brnllrj99tsbnC/9rz59+kSvXr0im83GunXrYvXq1Q3WKyoq4pxzzolp06Y1+QuKzvNav3zbe871CkO+7btc8JyXG6157/Xq1SuOPfbYXMdgN+bMmfO28qR9+/bRp0+f6NSpU2zbti2WLVsWVVVVDWamTJkSq1atiltvvbVZ3nnnPC8/KVBgP3z3u9+NRx555G3/iOfSmjVr4rLLLmvwZDthwoS48sorG/zSsmnTprj77rvjzjvv3PUWvbfeeiu+8pWvxB133LFH93Xfffc1eLItLi6Oj3/843HhhRdG3759d10+d+7cuOmmm+KZZ57Zddkvf/nLOPTQQ+PEE0/c58daqPJt302bNq3BP6p9+/aNiRMnxgknnBDDhg1rMFtZWRkzZ86MH/3oR7F06dKIiKipqYkrr7wyHnrooQb7Zk+cdtppcfrpp+/VdfLxxLqlyLe911jPnj3jhhtu2Kvr7M1fznjOy63WWt75xTp//fznP2/wy+nYsWNj4sSJceyxx0bPnj0bzK5evTqmTZsWd911V2zbtm3XZZdffnnce++9UVRU1CSZnOcVhnzbe871CkO+7bvGnOe1Xvmy97785S/v9bsRGquoqIibb7551/GZZ565Vy+yX3jhhXHMMcfs1X0OHjx4r+ZpqG3btnHOOefESSedFOPHj4/i4uJdazU1NfHCCy/EHXfcEc8+++yuy5988sn44Q9/GFdddVWTZnGel798hBfsh8MOOyzxczm7du0a27dvj+rq6ohI7+NsLrvssvjjH/+46/jkk0+O7373u4mfh/jkk0/GF77whV05I975Lab/a9WqVXHiiSfG9u3bIyKitLQ0brzxxjjhhBN2O19fXx9f+cpX4sEHH9x1Wa9eveLxxx+Ptm3b7vHjI//23SWXXBJPPfVUtGvXLi6//PK44IILoqys7B2vs3Xr1rjssssavEX63HPPjW9+85vven///LEO7/SxNzS9fNt7EQ0/2mHAgAHxxBNPNMv9eM7Lrb0p75pz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KlasqDlz5ui//uu/3FqPs4cfL1q0SD/88IORrlixovr06eOuZsGDnOkTJ06c0MSJEy2ulTQOMebBHjxY+5433njDYlVR48aN9cknn1hsfVBWmOf5F2/qexJzPX/hbf2OeZ7/8La+Z+3y5csWZ9w1btzYLS+mODvmzZgxQ3/99ZeRrl27tu68806X2+NPvvvuO4e3rpKk33//XfPnzzfSlSpVKhSQcAbzPO9HAAXwcn///bc+++wzLV68WOnp6cXm7d+/v8UbGqtXr9bs2bOLvWfdunUWP7LUqVNHPXv2LPaegIAAPfnkkxbXxo0bZ/HmrbXs7GyNHz9ehw4dMq4NHDjQayZFsGRvv9u4caOef/555eTkSLq2Zc3s2bPVqlUrt7fp1KlTGjRoULH9rKC8vDzNnj1br732msX1J554QlWqVHF7++Aejox5L7zwgr7++mu7Hz52796tQYMG6dy5c8a166+/vsQfuhnzUBIerH3Pu+++q3nz5hnpBg0aaO7cuYqOjnZrPczzYM3b+h5zPf/gbf1OYp7nL7yx71lbvny5xT3ueut++/btGjVqlBITE+3Kn5WVpSlTpujjjz+2uP4///M/CgkJcUub/MX06dP1xBNP6MiRI3bfs27dOg0bNkxZWVnGtZEjRxbbV5nn+Q5TnjMhNwCSpD///FMpKSlFfv/iiy8ah0uFhYUVWlpeUEREhFq0aGFxbd++fXr00UeNgbZhw4ZavHhxsctYFyxYoFdffdXi2n333aenn35ajRs3Nq6dO3dO8+bN09y5c40HooCAAM2dO7fY5X75cnNz9eijj2rnzp3GtfDwcD3zzDPq16+fRRu3b9+ud999V9u2bTOuNWrUSN9++y1/6J3gLf3u999/15AhQ3TlyhXj2vDhw+3qP0Vp3rx5kX+ET5w4oa5du8pkMqlDhw7q3bu3br31VlWrVs0iX3JysjZv3qy5c+da/IAoSZ07d1ZcXFyxb2SgaN7S9/INHDhQW7duVe3atdW3b1916dJFTZo0sdjzPDs7W3v27NGXX36pFStWKDs72/guKipKCxYssGvvdsY879alSxdjL+JKlSpp+/btDpfx999/a926dQoNDVX37t0VFhZm973Wf3vHjx+vxx57zOE2WNu6das+//xzvfjii8VuP5IvKytL06dPt3gzTpLefPPNEh+m8B9z587V1KlT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n3f43sOHD2v//v3Ky8srhZa5T0ZGhp566ilNnz5dZ86c8XRzvEp2dranmwAAAIAyZMrz9tk7AAAAAJSRsWPHSpLuuusudenSpdD3sbGxmjVrlsxms/bu3etQ2Y899ph+++03RUdHa9WqVYqOjnZLm90pMzNTTz31lH755RdJUt26dbVy5UpVqFDBwy0rLDMzU5s3b9bq1au1f/9+LV++XIGBgW6t48qVK9qzZ4+2bNmiTZs26ezZs1q5cqXCw8PdWg8AAAC8k3tnlwAAAADw/3vkkUe0Y8eOMq2zV69emjp1qtP3f/vtt5KkevXq2QygOOvQoUP67bffJEnNmzf3yuDJ1atX9eyzzxrBk4iICMXFxXlN8OTq1avav3+/fvvtN/3222/asWOHMjIyjO+///57de/e3amys7Oz9ffff+v48eM6evSo9u/fr/379+vAgQPKysqyyDtjxgxNnDjRpX8LAAAAygcCKAAAAABQyuLj443PQ4cO9WBLbMvOztbzzz+vjRs3SroWPJk7d66aNm1a5m25evWqTpw4ocTERCUkJOjAgQPau3evDh8+XCiYIUmVK1dWt27dVL9+fUnSli1blJCQIJPJJJPJpOzsbF29elVXr15VRkaGUlNTdfnyZV28eFHnz583tmQrbnsuk8mkxo0b67bbbnNrYA0AAADejQAKAAAAgFIVHh6uRx55pFTrmDNnjteeLZKQkKAVK1ZIklq2bKlbb73Vwy2ylJaWphdffFHr1683rplMJo0ePdot5UdHR2vBggV25f311181ZMgQ5ebmFpknICBAzZs3V/v27XXHHXfo5ptvltlsNr4/ceKEXnnlFZfaXKNGDd1444268cYb1bJlS918882KjIx0qUwAAACUPwRQAAAAAJSqyMhIt/0YX5RPPvlEOTk5pVqHs6ZOnWqsbnjqqac83BpLJ06c0NNPP62DBw9aXL906ZIuXbrkljpSU1Ptztu6dWsFBgbq6tWrkqSgoCA1aNBATZs21Z9//qmEhARdd911Wrx4cZFldOvWTRMnTiy0WsVsNqtChQoKDw9XZGSkoqKiFB0drerVq6tmzZqqVauW6tevr/r163PGCQAAACQRQAEAAAAAt+jWrZuOHz9ebJ4RI0Y4XG5MTEyprODZunWrRo0apYsXL7q97IJq1qxpd97Q0FBNnz5dFSpUUN26dVW3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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1800x1200 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei'] \\n\",\n    \"plt.rcParams['axes.unicode_minus'] = False\\n\",\n    \"plt.plot((1,2,3),(4,3,-1))\\n\",\n    \"plt.title(\\\"聲量圖\\\")\\n\",\n    \"plt.ylabel(\\\"文章數量\\\")\\n\",\n    \"plt.xlabel(\\\"品牌名稱\\\") \\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 270,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"'/home/gezi/py3env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/微软正黑体.ttf'\"\n      ]\n     },\n     \"execution_count\": 270,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"#find  matplotlib default font\\n\",\n    \"from matplotlib.font_manager import findfont, FontProperties  \\n\",\n    \"findfont(FontProperties(family=FontProperties().get_family())) \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 271,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"bak\\t\\t\\t\\tSourceHanSansSC-ExtraLight.otf\\r\\n\",\n      \"cmb10.ttf\\t\\t\\tSourceHanSansSC-Heavy.otf\\r\\n\",\n      \"cmex10.ttf\\t\\t\\tSourceHanSansSC-Light.otf\\r\\n\",\n      \"cmmi10.ttf\\t\\t\\tSourceHanSansSC-Medium.otf\\r\\n\",\n      \"cmr10.ttf\\t\\t\\tSourceHanSansSC-Normal.otf\\r\\n\",\n      \"cmss10.ttf\\t\\t\\tSourceHanSansSC-Regular.otf\\r\\n\",\n      \"cmsy10.ttf\\t\\t\\tSTIXGeneralBolIta.ttf\\r\\n\",\n      \"cmtt10.ttf\\t\\t\\tSTIXGeneralBol.ttf\\r\\n\",\n      \"DejaVuSans-BoldOblique.ttf\\tSTIXGeneralItalic.ttf\\r\\n\",\n      \"DejaVuSans-Bold.ttf\\t\\tSTIXGeneral.ttf\\r\\n\",\n      \"DejaVuSansDisplay.ttf\\t\\tSTIXNonUniBolIta.ttf\\r\\n\",\n      \"DejaVuSansMono-BoldOblique.ttf\\tSTIXNonUniBol.ttf\\r\\n\",\n      \"DejaVuSansMono-Bold.ttf\\t\\tSTIXNonUniIta.ttf\\r\\n\",\n      \"DejaVuSansMono-Oblique.ttf\\tSTIXNonUni.ttf\\r\\n\",\n      \"DejaVuSansMono.ttf\\t\\tSTIXSizFiveSymReg.ttf\\r\\n\",\n      \"DejaVuSans-Oblique.ttf\\t\\tSTIXSizFourSymBol.ttf\\r\\n\",\n      \"DejaVuSans.ttf\\t\\t\\tSTIXSizFourSymReg.ttf\\r\\n\",\n      \"DejaVuSerif-BoldItalic.ttf\\tSTIXSizOneSymBol.ttf\\r\\n\",\n      \"DejaVuSerif-Bold.ttf\\t\\tSTIXSizOneSymReg.ttf\\r\\n\",\n      \"DejaVuSerifDisplay.ttf\\t\\tSTIXSizThreeSymBol.ttf\\r\\n\",\n      \"DejaVuSerif-Italic.ttf\\t\\tSTIXSizThreeSymReg.ttf\\r\\n\",\n      \"DejaVuSerif.ttf\\t\\t\\tSTIXSizTwoSymBol.ttf\\r\\n\",\n      \"LICENSE_STIX\\t\\t\\tSTIXSizTwoSymReg.ttf\\r\\n\",\n      \"simsun.ttc\\t\\t\\t微软雅黑.ttf\\r\\n\",\n      \"SourceHanSansSC-Bold.otf\\t微软正黑体.ttf\\r\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!ls /home/gezi/py3env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 272,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"38\\n\",\n      \"38\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(len(words))\\n\",\n    \"print(len(alpha))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 298,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"7.0463e-31 1.0\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"#(cm * 1000).astype(np.int32)\\n\",\n    \"amin, amax = alpha.min(), alpha.max() # 求最大最小值\\n\",\n    \"print(amin, amax)\\n\",\n    \"alpha2 = (alpha-amin)/(amax-amin) # (矩阵元素-最小值)/(最大值-最小值)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 296,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([[5.6962966e-04, 2.3827146e-01, 1.9244207e-01, ..., 1.1762715e-03,\\n\",\n       \"        1.5607427e-03, 1.4004141e-02],\\n\",\n       \"       [8.9638400e-03, 2.1429629e-05, 3.7175584e-01, ..., 3.6875690e-05,\\n\",\n       \"        3.4903080e-05, 1.1355923e-04],\\n\",\n       \"       [5.8422790e-04, 2.9999776e-02, 1.7293179e-06, ..., 1.8528880e-06,\\n\",\n       \"        2.0678915e-06, 4.6501040e-06],\\n\",\n       \"       ...,\\n\",\n       \"       [5.0387380e-14, 4.1988677e-14, 2.6144565e-14, ..., 2.4400949e-14,\\n\",\n       \"        6.7827570e-06, 6.9768640e-09],\\n\",\n       \"       [7.8991770e-09, 4.6956123e-09, 3.4474346e-09, ..., 8.0138767e-01,\\n\",\n       \"        2.8829898e-09, 9.9814024e-05],\\n\",\n       \"       [5.1758040e-05, 1.1156330e-05, 5.6611130e-06, ..., 6.0195990e-01,\\n\",\n       \"        7.2889090e-02, 2.1053000e-06]])\"\n      ]\n     },\n     \"execution_count\": 296,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"alpha2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 309,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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KKG6deuqS5cukn67H+bNm6f58+crPT3deM8TJ05o7Nix+vTTT+3O6wjjxo1TamrqLX+tTJkyGjJkiMLDw3Ns3s/KytLmzZs1bdo0HT582K4M8+bN05AhQ1SuXDm7rgMAAAAAIL/ystlsNleHAAAAAJB/bdq0Sc8+++wdJ0TkpGbNmho7dqweeughByazxqlTp9SzZ8/bfjD6V8WKFdOECRNy3Rxjs9n0+eefa/LkyUbNBD4+Plq0aJFq166dq/1uatu2rWJjY3Osi4qKUvny5fO011999NFHmjZtWo51EydOVK9evRy6t6eIi4tT27Ztc3zfBQUF6fvvv1fBggXt3mP69OmaMmVKjnW+vr7avHmzSpYsafcejtCqVSvFx8ffscbHx0dHjhxxUqLfnD59Wh07dsyxrnnz5pozZ471gf5/r7zyil3H1Xbr1k2vvvpqrqc0nj59WqNGjTKeitW5c2d98MEHudrrpoULFxo1wTZr1kxHjx7V1atX//ZrjRo10sSJE1WlShW79z948KBGjx6tc+fOGV9TtmxZRUVFydfXsT/H6W734ZgxY7R8+fIc6yZNmqTw8HCH7Hnu3Dl1795dKSkpxtfcc889euONN9S6des87x8fH68333xT69evt+s6R/4d9/jjj2vv3r051rVt21YbNmz429d9fHw0dOhQDR8+XAUKFLBrb5vNplmzZun999+3qynyqaee0pgxY+zaCwAAAACA/MpzfnQeAAAAgEd6+OGHNW7cuDytER0draFDh2rQoEE6cOCAg5I5ns1mu+NEjL+qUaOGli5dmqepSF5eXho8eLA++uij204d+aOsrCx9+OGHud4PnmHJkiVGDZcdO3bMVeOXJIWFhcnLyyvHuhs3bmjZsmW52gPOtXnzZuPGL29vb40fP17vvfdeno7nrVSpkr799ls1adLEqH7NmjW5Pj7RXrt27bpl49eAAQP0zTff5KrxS5Lq1aunefPmqWrVqsbX/Prrr7edQIbcy87O1iuvvGJX41e7du20fPlyhzR+Sb9Ny/r444/12muvycfHx/i6iRMn6sKFCw7JYOpWjV+FCxfWrFmz9O9//9vuxi/pt3/HDB06VFOmTLHr9ds7QQ8AAAAAgPyM5i8AAAAAlhswYIDGjx9v1ChyJ9u3b1efPn303HPPOe3Df3t888032rNnj1FtaGio5s6d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N24Y1daoUcOutatWrWp81NL//vc/ZWRk2LU+IEk7duwwnl7XuXNn+fj4WJzIPg8++KBKlSplVHvy5Ent27fPYXub/l6kpqY6bE8T3t5m35KxOlenTp2M6n799VctXLjQ0ixwPne5D53NtCE1LS1NH3zwgcVpbm3mzJlGE9eqV6+upk2bOiERAAAAAABwVzR/AQAAAHCoiIgITZw40bjZyhm+/vpr49rcTEwKDw83qouPj9f06dPtXh+wZxqWOx35eJOPj49duRw5/cvf39+oLi4uzmF7mjDN9euvv1qao3379goKCjKqnTZtmsumIMEa7nIfOtujjz5q/Nrnz5+v3bt3W5zoz44dO6ZFixYZ1T7++OMWpwEAAAAAAO6O5i8AAAAADmWz2TRnzhw98cQTOnbsmKvjaNWqVdqzZ49RbbFixVS3bl279wgPD5efn59R7cyZM7V//36793CUK1euuGxv5M61a9cUGRlpVFuxYkU1aNDA4kS5Y8/Rj6tWrXLYMYyBgYFGdTExMQ7Zz5RprmvXrik+Pt6yHAUKFFDXrl2NahMTE/X6669blsVEcnKyS/fPb9zlPnS2YsWKqUePHka1NptN//73v5WYmGhxqt9kZGRo7NixRlO/Spcurd69ezshFQAAAAAAcGc0fwEAAACwxP79+9WrVy9NmDDBZZNifv75Z7saFXr06GF8BNYflS5d2nj6140bNzR8+HCdO3fO7n3yavny5frnP//p9H2RNytXrlRaWppRbbdu3SxOk3v33nuv6tSpY1R77do1rVmzxiH7lihRwqjOkUdNmggKClJAQIBR7d69ey3NMmTIEOPjMdetW6cpU6ZYmudWEhIS9NRTT2nr1q1O3zs/c6f70NlGjBihggULGtXGx8frmWeesfxoa5vNptdee03Hjx83qh85cqTxawAAAAAAAPkXzV8AAAAALJOVlaWvvvpKbdu21VtvveXUY9X279+vQYMGGU+J8fb2Vp8+fXK939NPP23cPJGQkKABAwbol19+yfV+9jh79qyee+45jRkzRlevXnXKnnAce45AdOfmL8m+6V+OOvqxfPnyRnWRkZFGk3YcKSQkxKhu7dq1luaoVKmS8fQvSZo+fbrTGsCys7M1f/58devWTVu2bHHKnncbd7kPna1MmTIaNGiQcf2BAwc0dOhQyxras7OzNWHCBC1dutSo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Qnlex9ECAwM1btw4V8f4mwYNGmju3LkKCQlxdZTf+fr6qmTJkq6OkS+5633obF5eXho/frz++9//yt/f39VxJEmDBw/WrFmzFBgY6OooAAAAAADATdH8BQAAAMCh6tat67Yfzrdu3VorV65Ur169nLKft7e3xo4dqylTpqhIkSJO2fN2/Pz89Oyzz2rWrFkuzQEz9hz52K1bNwuTWMee6V+5PUL1jypUqKC33npLXl5eeV7L0bp06aInnnjC1TH+JjQ0VBEREXrooYdcHUW1a9fWwoULdf/997s6Sr7lrvehK/Tr10/z589XjRo1XJahbNmy+vTTT/XSSy9Z2qwOAAAAAAA8H81fAAAAAByqSZMmWrt2rUaPHu02U6YaNWqkL7/8UjNnzlS5cuWcvn+XLl20atUqdenSxel7e3t7Kzw8XKtXr9bo0aPdZpIJbu/w4cM6duyYUW1gYKDatm1rcSJrhIWFyc/Pz6j2p59+UkxMTJ737NKli9588023bKR49dVXndaYao9ixYrps88+07vvvqsSJUo4ff8KFSronXfeUUREhGrXru30/e827nofukLt2rW1ZMkSvfzyy049btHf31+DBw/WqlWrPPb5DgAAAAAAnIvmLwAAAAAOFxQUpGeffVYbNmzQzJkz1adPH6c3DQQGBqpXr15auHCh5s2b5/JpMaVKldKUKVO0cOFCdejQwfLpQ8WLF9fQoUMVGRmpSZMmqUKFCpbuB8exZ8pV+/btVbBgQQvTWKd48eJq1aqVcX1ERIRD9u3bt69mzZqle+65xyHrOYq3t7cmTpyo//znPwoICHB1nL/p3r27IiMj9eKLL6p06dKW7uXl5aUWLVroo48+0tq1a9WjRw95e/MtLGdw9/vQ2Xx9ffXPf/5TmzZt0gsvvKBSpUpZtlfhwoX11FNPacOGDXrppZc45hEAAAAAABjzdXUAAAAAAPmXj4+PWrdurdatW8tms+n48ePavXu39u7dq0OHDun06dOy2WwO2cvLy0vVq1dXkyZN1KZNGzVv3twtp1zVr19f06ZN07lz57Ry5UqtXLlS0dHReV7Xy8tL9957r+6//361b99eTZs2dcvpRshZpUqVNGLECKPaDh06WJzGWs8++6xq1aplVOvIBtLmzZtr1apV+vrrrzV37lzFxcXZvUalSpU0cOBAh2W66R//+Ic6duyomTNnasmSJUpNTbV7jaZNm+qpp55yeLbAwEANGTJEAwYM0NatW7Vy5Upt3LgxVxn/qmjRorrvvvvUunVrtWvXzvIGM9yZO9+HrlC4cGENGzZMgwcP1g8//KDVq1drw4YNSkpKyvO6Dz74oLp06aLWrVurQIECDkoMAAAAAADuJl42R33SAgAAAAB2SklJUXR0tE6ePKnTp0/rzJkzio+P18WLF5WcnKz09HRdv35dvr6+8vPzk7+/v4oWLarixYurRIkSuueee1SlShVVqVJFdevWVeHChV39knLl0qVL2rt3rw4ePKjTp0/r3LlzunDhgtLS0pSWlqasrKzfX39gYKBKlCihkiVL/v76q1evrnr16qlIkSJOy9y2bVvFxsbmWBcVFaXy5cs7dO+dO3dq165dOda1b9/euLEId6/s7Gzt27dP27dv16FDh3TmzBklJCQoLS1N2dnZKliwoAoVKqQyZcqocuXKqlWrllq2bKnQ0FDLJ/ilp6fr+++/148//qijR4/q3LlzunTpkjIyMuTt7a2CBQsqKChIISEhqly5sho2bKiWLVs6darZjRs3dOzYMe3bt08nTpzQuXPnFBsb+/szPD09XT4+PvLz81OBAgVUrFgxlShRQqVLl1alSpVUtWpVhYaGqnr16pb/fiJ3nHkfjhkzRsuXL8+xbtKkSQoPD8/Ny3EYm82mkydPau/evYqOjv793r98+bLS0tKUnp4uSSpYsKACAgIUHByskJAQVahQQdWrV1fDhg1Vo0YNptoBAAAAAIA8o/kLAAAAAAAAAAAAAAAAADwQP1oGAAAAAAAAAAAAAAAAAB6I5i8AAAAAAAAAAAAAAAAA8EA0fwEAAAAAAAAAAAAAAACAB6L5CwAAAAAAAAAAAAAAAAA8EM1fAAAAAAAAAAAAAAAAAOCBfF0dAAAAAAAAAAAAAAAAAABcISYmRocPH1ZCQoKuX7+uwMBAVaxYUQ0bNlRwcLCr4+WI5i8AAAAAAAAAAAAAAAAAuXb58mUdOnRIBw8e1IEDB3To0CElJCT8qWbEiBEaOXKkixL+WWZmpr799lt99dVXOnPmzC1rfHx81LJlSz399NNq0qSJkxOao/kLAAAAAAAAAAAAAAAAgF0+//zz35u9zp496+o4xk6dOqWRI0fq+PHjd6zLysrSli1btGXLFj355JN6+eWX5efn56SU5mj+AgAAAAAAAAAAAAAAAGCXt99+29UR7BYTE6P+/fvr8uXLdl339ddfKy4uTh9++KF8fd2r3crb1QEAAAAAAAAAAAAAAAAAwErXrl3TM88887fGrwYNGmjKlClat26ddu7cqaVLl2rEiBEKDg7+U11UVJTef/99Z0Y24l6taAAAAAAAAAAAAAAAAAA8TqFChVS3bl3VrVtX9erV07/+9S9XR/qTadOm6cyZM3/62qBBg/Tyyy/Ly8vr968FBwerVq1a6tOnj4YOHaoTJ078/muzZ89W9+7dFRoa6rTcOaH5CwAAAAAAAAAAAAAAAIBd6tevr3r16v3+v6pVq8rb+/8OIXSn5q/4+Hh98803f/pa+/bt9corr9z2mrJly+p///ufunbtqpSUFEmSzWbTBx98oE8//dTSvPag+QsAAAAAAAAAAAAAAACAXRYuXOjqCMY+++wzZRSLuFkAACAASURBVGRk/P7fBQsW1Ouvv57jdeXKldOoUaM0ceLE37+2YcMGHTt2zG2mf3nnXAIAAAAAAAAAAAAAAAAAnsdms2nNmjV/+lrnzp1VunRpo+t79+6tQoUK/elrq1evdli+vKL5CwAAAAAAAAAAAAAAAEC+dPDgQV24cOFPX+vRo4fx9UFBQWrfvv2fvrZhwwaHZHMEmr8AAAAA4P9j797je67//4/f3zvbZpvz+ZDT8hU5hJKEFE0kUmiO+eQsGflERPp8fFpUbI41FOVQTukjH0XOC7HEOiCGps00p31mp/fevz/8vD7ebea9k9d7c7teLu/L5/V8vp6Hx3sXqy4f98vzCQAAAAAAAAAAiqWdO3fatd3d3dW0adNcrdGiRQu79rFjx3Tu3Ll811YQCH8BAAAAAAAAAAAAAAAAKJaOHTtm127QoIE8PT1ztUZ2YbG/rmsWwl8AAAAAAAAAAAAAAAAAiqWTJ0/atWvVqpXrNWrWrClXV9cc1zUL4S8AAAAAAAAAAAAAAAAAxY7ValVMTIxdX+XKlXO9jqurq8qXL2/XR/gLAAAAAAAAAAAAAAAAAArJxYsXlZ6ebtdXsWLFPK1VqVIlu3Z8fHye6ypIbmYXAAAAAAAAAAAAAAAAANztkpKS9N///rdQ9/Dx8ZGvr2+h7uFMkpOTs/Tl9fv/dV52a5uB8BcAAAAAAAAAAAAAAABgsiVLlig8PLxQ9xg5cqRGjRpVqHs4k+wCWl5eXnla66/znCX8xbWPAAAAAAAAAAAAAAAAAIqd7AJanp6eeVrrr/OcJfzFyV/ALR0zu4B8+/7CcbNLyDc/d5vZJeRb+RKuZpeQL5dSM8wuId/8PSxml5BvPu55u3famWTa0m8/yMl5uPiZXUIBKPq/Dy4W/hMWAAAAAAAAgLkybUX/709cLP9ndgkoQCWq9za7BBSA0PGtzC4BRRAnfwEAAAAAAAAAAAAAAAAodry9vbP0paam5mmtv87Lbm0zEP4CAAAAAAAAAAAAAAAAUOxkF9BKSUnJ01p/necs4S/uzAEAAAAAAAAAAAAAAABMNnDgQD333HOFuoePj0+hru9ssgtoJSUl5Wmtv84j/AUAAAAAAAAAAAAAAABAkuTr6ytfX1+zyyhWSpUqJXd3d6Wnpxt9cXFxeVrrr/PKly+fr9oKCtc+AgAAAAAAAAAAAAAAACh2XF1dVaNGDbu+c+fO5Xodq9Wq8+fP2/XVrl07X7UVFMJfAAAAAAAAAAAAAAAAAIqlv4a0Tp48mes1Tp8+rYyMDLu+WrVq5auugkL4CwAAAAAAAAAAAAAAAECxVK9ePbt2dHS0UlNTc7XGwYMHb7uuWQh/AQAAAAAAAAAAAAAAACiW2rRpY9dOT09XVFRUrtY4cOCAXbtevXqqXLlyvmsrCG5mFwAAAAAAAAAAAAAAAIC8s1g4+we4lYYNG6p8+fI6f/680bd+/Xo9+OCDDs1PSkrS119/bdfXvn37Aq0xP/jtBwAAAAAAAAAAAAAAAFAsWSwWderUya5v8+bNSkhIcGj+2rVrlZycbNf31/XMRPgLAAAAAAAAAAAAAAAAgNMLDAy0+/Tt29eheYMHD5anp6fRvnbtmqZPn37beXFxcZo9e7ZdX/v27VW/fv3cFV6ICH8BAAAAAAAAAAAAAAAAKLYqVKigPn362PX95z//0dtvvy2bzZbtnLi4OP3tb39TUlKS0WexWPTyyy8Xaq255WZ2AQAAAAAAAAAAAAAAAACKlqNHj2rz5s0Oj9+7d69SU1Ozfefn56eXXnqpoErL1siRI/XNN9/o7NmzRt/ixYt16NAhDRgwQPfdd5/8/Pz0xx9/6JtvvtHy5ct18eJFuzUGDhyoe++9t1DrzC3CX8VEWlqafvnlF508eVKXL1/Wf//7X7m5ucnT01NlypRRxYoVde+998rX19fsUgEAAAAAAAAAAAAAAFDEHTt2TB988IHD4w8dOqRDhw5l+65KlSqFHv7y9fXV/PnzFRwcrEuXLhn9P/zwg8aMGXPb+e3bt1dISEhhlpgnhL+KMJvNpm+++UZr1qzR7t27lZ6enuN4FxcXNWzYUK+99pqaNGlyh6oEAAAAAAAAAAAAAAAAzFe3bl2tWLFCo0eP1vHjxx2e16dPH02cOFFubs4XtXK+iuCQn376SW+88YZ+/PFHh+dkZmbq8OHDio6OJvwFAAAAAAAAAAAAAACAu06tWrW0bt06ffrpp1q2bJndNZA3c3Fx0cMPP6yhQ4fqgQceuMNVOo7wVxH0zTffKCQkRCkpKVne+fv7q2zZsnJzc1NSUpISExN17do1E6oEAAAAAAAAAAAAAABAcdW9e3d17979ju7566+/Fsg67u7u6t+/v/r376/jx4/rp59+0vnz55Weni4fHx9Vr15djRs3VqlSpQpkv8JE+KuIOXr0qF5++WVlZGQYfaVKldLAgQMVFBSkatWq2Y3PzMzUqVOntH//fn3xxRe3vDsVAAAAAAAAAAAAAAAUTRa5mF0CUGTVrVtXdevWNbuMPCP8VcRMnDjRLvjVsGFDLVq0SKVLl852vIuLi2rXrq3atWurd+/e2rdvn9LT0+9UuQAAAAAAAAAAAAAAAAAKCeGvIuTw4cN2x9e5u7srLCzslsGv7LRs2bIwSgMAAAAAAAAAAAAAAABwh3HunxO5+USv7Ozbt8+u3bx5c1WqVKlQauF0MAAAAAAAAAAAAAAAAMC5Ef5yAjabTV9++aWeffbZHMfFxcXZtXNz4lduHTp0SP3791d0dHSh7QEAAAAAAAAAAAAAAAAg7wh/mezAgQPq2bOnQkJC9Pvvv+c41maz2bXPnj1bmKXpu+++U48ePTRu3DjFxsYW6l4AAAAAAAAAAAAAAAAAcofwl0l+++03DRs2TMHBwTpy5IhDc6pWrWrX/vHHHwv9ZC6bzaaNGzeqU6dOCg0N1ZUrVwp1PwAAAAAAAAAAAAAAAACOIfx1h/3555+aOnWqunbtqm3bthn9rq6ueuqpp3Kc27p1a7u2zWbT6NGjderUqQKvs2bNmmrWrJnRTktLU0REhB5//HEtXbpUaWlpBb4nAAAAAAAAAAAAAAAAAMcR/rpDrl27pnnz5unxxx/XihUrlJGRYbx77LHHtHHjRk2dOjXHNQIDA/XQQw/Z9f3+++/q0aOHli1bJqvVWmD1VqhQQZ9++qnmz5+vevXqGf2XLl3SjBkzFBQUpE2bNmW5ihIAAAAAAAAAAAAAAADAnWGxkd4pVJmZmVq3bp1mz56t+Ph4u3fNmjXTuHHj1LRpU4fXO3XqlHr27KmrV69meVevXj2NGzdOjz76aL7rvtmN7xAWFqY//vjD7l2jRo306quvqnnz5gW6p3M4ZnYB+fb9heNml5Bvfu5F/x9R5Uu4ml1CvlxKzbj9ICfn72Exu4R883GvaHYJ+ZZpSze7hHzzcPEzu4QCUPR/H1wsbmaXAAAAAAAAAOAul2kr+n9/4mL5P7NLQAHyrdnf7BJQAJJiPjK7BBRBhL8K0a5duxQaGqpjx+xDRHXr1tUrr7yixx57LE/rHjp0SMOGDdOlS5eyfX///fdr1KhReuSRR/K0/q2kpaVp2bJlWrRoUZa9H3vsMYWEhKh27doFuqe5CH85A8Jf5iP85RwIfzkHwl/OgfAXAAAAAAAAALMR/oKzIfxVPBD+Ql4Q/ioEv/zyi0JDQ7Vnzx67/kqVKmnkyJF65pln5OqavzBIbGysQkJCFBUVdcsxzZo10yuvvFLgp3JdvXpVixYt0scff6yUlBSj383NTc8++6xGjRqlsmXLFuie5iD85QwIf5mP8JdzIPzlHAh/OQfCXwAAAAAAAADMRvgLzobwV/FA+At5QfirAMXFxWn27Nlav369MjMzjX5/f3+99NJL6tu3rzw9PQtsP5vNphUrVmj27Nm3PAVMkp566im99tprBR7Iio+PV3h4uNasWSOr1Wr0e3t7a/DgwRo0aJBKlChRoHveWYS/nAHhL/MR/nIOhL+cA+Ev50D4CwAAAAAAAIDZCH/B2RD+Kh4IfyEvCH8VgKSkJH3wwQdaunSp3UlYXl5eCg4O1pAhQ+TnV3h/WXz16lVFREToo48+UnJycrZjypQpo1mzZumhhx4q8P1Pnjyp9957T1u2bLHrL1++vEaPHq3u3bvn+6QzcxD+cgaEv8xH+Ms5EP5yDoS/nAPhLwAAAAAAAABmI/wFZ0P4q3gg/IW8IPyVT4mJiercubMSExONPldXV3Xr1k2jR49WxYp37i/rExMTtWTJEi1fvjzbEJirq6tmzpypoKCgQtn/8OHDmjlzpvbv32/X36ZNG33wwQeFsmfhIvzlDAh/mY/wl3Mg/OUcCH85B8JfAAAAAAAAAMxG+AvOhvBX8UD4C3nhYnYBRV1KSopd8EuS3Nzc5OvrK4vlzv7launSpRUSEqJvvvlGwcHBcnOz/4tRq9Wq8ePH64cffiiU/d3c3FSqVKks/X/9+QAAAAAAAAAAAAAAAADIP07+KgA//PCDwsPDtWvXLrt+d3d3de/eXX/7299UrVq1O17X8ePHNXbsWB07Zn+CVe3atfXll1/KxaVgsn/79+/XwoULtXv3brt+b29vBQcHa+DAgSpdunSB7HVncfKXM+DkL/Nx8pdz4OQv58DJX86Bk78AAAAAAAAAmI2Tv+BsOPmreODkL+QF4a8C9OOPPyo8PFw7duyw63d1dVXnzp01ZMgQ1alT547WdO3aNQ0cOFBRUVF2/QsWLFC7du3yvK7NZtP27du1cOHCLGv7+Piob9++GjBgQLYngRUdhL+cAeEv8xH+cg6Ev5wD4S/nQPgLAAAAAAAAgNkIf8HZEP4qHgh/IS8IfxWCI0eOKDw8XNu3b7frt1gsevzxxzVkyBDdd999d6ye+Ph4dejQQWlpaUbfCy+8oClTpuR6LavVqk2bNmnRokVZThTz9fU1Ql8BAQH5rtt8hL+cAeEv8xH+cg6Ev5wD4S/nQPgLAAAAAAAAgNkIf8HZlLxnoNkloABcPbXE7BJQBPE3Z4WgYcOGWrhwoY4eParw8HB9++23kq6flrVlyxZt2bJFjzzyiIYOHaoHHnig0OupUKGC2rdvr82bNxt9sbGxuVojLS1Na9eu1YcffqizZ8/avStZsqQR+vL39y+QmgEAAAAAAAAAAAAAAADkjPBXIbrvvvu0YMECRUdHa+7cudq2bZtuHLS2a9cu7dq1S82bN9eQIUP0yCOPFGot1apVs2tbLI6d+pGUlKSVK1dq6dKlSkhIsHvn5+enfv36qX///vLzKw4noQAAAAAAAAAAAAAAAABFB+GvO6BBgwaaN2+efv75Z4WHh2vr1q1GCOzAgQM6cOCAGjRooOHDh6tDhw6FUsOlS5fs2uXLl89xfFJSkiIiIvTJJ5/o8uXLdu/8/f2N0FfJkiULvFYAAAAAAAAAAAAAAAAAt+didgF3k/r162vu3Llav369nnjiCbvTt6Kjo/X3v/89x/nbt29XUlJSrvdNS0vTrl277PqaNm2a45zo6GjNmzfPLvjl7++v0aNHa9u2bRo5ciTBLwAAAAAAAAAAAAAAAMBEhL9McO+99yosLEwbNmxQx44dHb6CcfPmzeratau++OILpaWlOTTHZrPpH//4h+Li4ow+b29vPfbYYw7XGxAQoDFjxmjbtm0aMWKEfH19HZ4LAAAAAAAAAAAAAAAAoHBw7aOJAgMDNWfOHB07dkxz585VZGTkbefExsZq/PjxCg0NVZcuXfTggw/qgQcekI+Pj924pKQk7d27V4sXL1ZUVJTdu5CQEIdO7QoICNCgQYP0wgsvEPgCAAAAAAAAAAAAAAAAnAzhLydQr149zZ49W6dPn3Z4TkJCghYvXqzFixfLYrEoICBAZcuWlcVi0ZUrVxQfHy+bzZZlXu/evfXCCy/cdv3AwEBt27YtS6gMAAAAAAAAAAAAAAAAgHMg/OVEatSokeN7Dw+PbPttNpsuXryoixcv3nKun5+fXn75ZQUHBztUS0BAgEPjAAAAAAAAAAAAAAAAAJiD8FcRMnnyZLVs2VJff/21vv/+eyUkJNx2Tr169dSlSxc9++yzKl269B2oEgAAAAAAAAAAAAAA3EkWi8XsEgCYhPBXEeLu7q7OnTurc+fOkq5f/Xjy5EmdPXtWV65cUUpKiry9veXr66uqVavq3nvv5QQvAAAAAAAAAAAAAAAAoJgi/FWElStXTuXKlVPLli3NLgUAAAAAAAAAAAAAAADAHeZidgEAAAAAAAAAAAAAAAAAgNwj/AUAAAAAAAAAAAAAAAAARRDhLwAAAAAAAAAAAAAAAAAoggh/AQAAAAAAAAAAAAAAAEARRPgLAAAAAAAAAAAAAAAAAIogN7MLAAAAAAAAAAAAAAAAQH5w9g9wt+K3HwAAAAAAAAAAAAAAAACKIMJfAAAAAAAAAAAAAAAAAFAEEf4CAAAAAAAAAAAAAAAAgCKI8BcAAAAAAAAAAAAAAAAAFEGEvwAAAAAAAAAAAAAAAACgCHIzuwDAWdlkNbuEfHugbF2zS8i3aVFnzC4h38Y19DC7hHzZ/HuK2SXk25PVUs0uId9KefqZXUK+WW1pZpeQbxYL/+kEAAAAAAAAAJBc+P+LAQBOgpO/AAAAAAAAAAAAAAAAAKAIIvwFAAAAAAAAAAAAAAAAAEUQZ1ECAAAAAAAAAAAAAAAUYRYLZ/8Adyt++wEAAAAAAAAAAAAAAACgCCL8BQAAAAAAAAAAAAAAAABFEOEvAAAAAAAAAAAAAAAAACiCCH8BAAAAAAAAAAAAAAAAQBFE+AsAAAAAAAAAAAAAAAAAiiDCXwAAAAAAAAAAAAAAAABQBBH+AgAAAAAAAAAAAAAAAIAiiPCXE/rll1908OBBs8sw7Nq1S//+97/NLgMAAAAAAAAAAAAAAADATdzMLqA4sNls2rp1qzp06JCvdU6ePKlZs2Zp69atqlChgjZt2iQfH58CqjL3Ll26pBkzZmj9+vXy9PTUPffco//7v/8zrR4AAAAAAAAAAAAAAJCVxcLZP8Ddit/+fDp79qz69u2rESNGKCIiIl9rZWZmavv27bLZbIqLi9PcuXMLqMq8iYyM1Pr16yVJqampGjlypK5evWpqTQAAAAAAAAAAAAAAAACuI/yVT5MnT9aBAwckSe+++66+//77PK9Vp04d9e7d22h//PHHiomJyW+Jefbkk0/q+eefN9qxsbGaOnWqafUAAAAAAAAAAAAAAAAA+B/CX/n05ptvytvbW5KUkZGhsWPHKjExMc/rjRw5UiVLlpQkpaenKzQ0tEDqzKtJkyapdu3aRvvLL7/Uzp07TawIAAAAAAAAAAAAAAAAgET4K9+qV6+uCRMmGO34+HhNnDgxz+sFBAToxRdfNNq//fabrly5kq8a88PT01Nvv/223NzcVKZMGb399ttq06aNafUAAAAAAAAAAAAAAAAAuM5is9lsZhdRHAwaNEh79uwx2pMnT1ZwcHCe1kpOTlb//v31/PPP65lnnpGrq2ue1tm3b5/69euXp7mF6ddffzW7BIfY9LPZJeSbRXn7s+NMpkWdMbuEfBvX0MPsEvJl2fEUs0vItyerpZpdQr7V8A00u4R8s9rSzC4h31ws7maXAEkWWcwuAQAAAAAAAACKgXpmF4ACFFBnqNkloABcOrHA7BJQBLmZXUBx8eabb6pLly5KTk6WJIWGhurBBx9UnTp1tHnz5jxd3zhv3jzNmzcv1/NWrVqlcuXK5XoeAAAAAAAAAAAAAAAAgKKD8FcBqVq1qsaMGaN//vOfkqTU1FSNGzdOq1evVnJysmJjY+9YLVar9Y7tBQAAAAAAAAAAAAAAAMAchL8KUN++fbVx40YdOXJE0vUQ1sWLF02u6n9+/PFHU/Y9cOCAXnzxRVP2BgAAAAAAAAAAAAAAAIorwl8FyMXFRdOnT1ePHj3UtWtXvfHGGypRooS6d++u7t27F9g+SUlJSk9PV6lSpXI1z9PTs8BqyA13d3dT9gUAAAAAAAAAAAAA4G5gkYvZJQAwCb/9Bax+/fr67LPP9K9//UslSpQolD0+//xzdejQQfPnz9e1a9cKZQ8AAAAAAAAAAAAAAAAAzo3wVyFo0KBBoa1ts9m0YsUKJSUl6f3331dwcHCh7QUAAAAAAAAAAAAAAADAeXHtowmOHTumMmXKqEyZMrmeGxkZqZiYGKMdFBR0y7EtWrRQdHS00c7IyCjUYNqt/PLLL3Z1AAAAAAAAAAAAAAAAAMg/Tv66w86cOaOBAweqZ8+e+vXXX3M9f/78+cazn5+fnn/++VuOtVgscnNzMz5mcZY6AAAAAAAAAAAAAAAAgOKEJE4epaam3vKdxWKRh4dHlv7MzEyNGDFCFy5ckCT16tVL7777rtq1a+fQnvv27dP+/fuNdp8+feTr6+twzRaLRd7e3g6NTUlJUWZmptH28vKSiwtZQQAAAAAAAAAAAAAAAMBZEP7Kg4SEBLVu3fqW76tUqaJt27Zl6XdxcdE//vEPDRs2TBcuXFBycrKGDx+uCRMmaMCAAbfdd86cOcZzqVKlNHjw4FzV7erqqqioqBzHZGZmKjw83O6EsaCgIL3zzjuc2gUAAAAAAAAAAAAAAAA4EY5yusMaNWqk1atXq3bt2pKuh61mzJihKVOmKCMj45bzvvjiC33//fdGe/jw4SpZsmSB1paQkKABAwZo7ty5xqlf3bt318yZM/MU/Dp//rwOHz5coDUCAAAAAAAAAAAAAAAAuI7wlwmqVKmiFStWqHnz5kbfqlWrNGTIECUlJWUZf/XqVb399ttG+5577lHv3r0LrB6bzaYNGzaoW7du2rdvn927GjVqyNXVNdfrffbZZwoKCtKIESOUmJhYYLUCAAAAAAAAAAAAAAAAuI7wVx6UK1dOv/76q93n448/ztUa/v7+Wrx4sYKCgoy+3bt3q3fv3vrjjz/sxr799tu6cOGCJMliseitt96Su7t7/r+IpMjISHXv3l2vvvqqscfNa7/33nuaMWOGw+v98ssv6tu3r15//XVdvXpVCQkJev311wukVgAAAAAAAAAAAAAAkJXF4sKnGHyAvOBPjok8PDz07rvvql+/fkbfsWPH1LNnT0VHR0uSvvrqK3322WfG+169eumBBx7I175Wq1XffvutXnzxRQ0YMEA//fST8a5Tp0769ttvNWjQIKNv6dKlmj17do5rXr58WdOnT1f37t114MABo9/Hx0fNmjUzrpEEAAAAAAAAAAAAAAAAUDDczC7gbmexWDRp0iRVqFBBM2fOlM1mU0JCgoKDg/Xqq69q1qxZxtgaNWpo3Lhxed7r3Llz+vzzz7VmzRrFxcXZvatcubImTZqkDh06SJK6deumlStXKjk5WZI0b9481a1b1+6kMklKS0vT8uXLtWDBAl2+fNnuXdeuXTV+/HiVL18+zzUDAAAAAAAAAAAAAAAAyB7hLycxePBglS1bVpMmTVJGRoaSk5M1depU472np6dmz54tX19fh9dMS0vToUOHtHv3bu3Zs0c///yzbDab3ZgyZcpoyJAh6t27tzw8PCRdv7px4MCBRvDrhkmTJqlRo0aqWrWqrFarNm7cqDlz5ig2NtZuXNOmTTVhwgQ1btw4lz8FAAAAAAAAAAAAAAAAAI4i/OVEunXrptKlS+vll1/OEryaMGGC6tev7/Ba8fHxCgoKUlJSUrbvK1eurD59+qhPnz7y8fEx+nfs2KGxY8ca8wICAuTj46PY2FglJydr+vTp6tKli8LDw3Xq1Cm7NWvWrKmQkBA98cQTDtcJAAAAAAAAAAAAAAAAIG8IfzmZOnXqqHz58oqJibHrX7dunTp06KAKFSo4tE6FChX0/PPPKyIiwq6/RYsWCg4OVocOHeTq6mr0Z2ZmauHChQoLC5PVapV0/VSwJUuW6I8//tCQIUMkSdu3b9f27duz3XP06NEEvwAAAAAAAAAAAAAAAIA7xMXsAvA/R48e1XPPPZcl+CVJR44cUc+ePXX06FGH1xs1apQqV66swMBAhYSEaOvWrVq2bJk6duxoF/w6ffq0+vfvr/fff98IftWqVUsrVqxQYGCg2rZtqxYtWmRZv1y5cmrbtq3RnjdvnjIzMx3/wgAAAAAAAAAAAAAAAADyjPCXk9i0aZOCg4OVkJBg9D399NNq3Lix0Y6Pj9cLL7ygTZs2ObRmiRIltHHjRn3xxRd66aWXVLVqVbv3165dU1hYmJ566int37/f6G/Xrp1Wr16tGjVqSJJ27dqlH374wW7uqFGjtHXrVs2aNUt+fn6SpBMnTmjFihW5++IAAAAAAAAAAAAAAAAA8oTwl8mSkpL06quv6pVXXtG1a9eM/qFDhyo0NFQfffSROnToYPSnpKRo7NixmjNnjmw2223X9/X1zdKXkpKiZcuWqUOHDgoPD1daWpokycvLS5MnT9aCBQtUsmRJSdKePXs0YsQIY8wNNWvWlKenp3x9fdW/f3+j/91331VcXFzufggAAAAAAAAAAAAAAAAAco3wl4kiIyPVtWtXbdiwwehzc3PTtGnT9Morr0i6HsgKCwtTcHCwMcZms2nu3LkaM2aMUlJSHN4vLi5O7733ntq2bau33npLFy5cMN61bt1aGzdutNtnw4YNGjJkiFJTU7OsdejQIeP5xRdfVMWKFSVdD7ONGTNG6enpDtcFAAAAAAAAAAAAAADyzmJx4VMMPkBe8CfHBKdPn9bw4cM1YMAAxcbGGv1VqlTR8uXL1atXL7vxLi4umjx5ssaPHy+LxWL0b968WX369FF8fPwt97p8+bLWr1+vQYMGqV27dlqwYIEuXrxovK9Vq5bmzp2riIgIVa9eXdL1cFl4eLheffVVI8RVqVIlDRkyxJj3888/G88lSpTQa6+9ZrSjoqL0xhtv5PbHAgAAAAAAAAAAAAAAACAX3Mwu5dtXHwAAIABJREFU4G4SHx+vxYsX65NPPslyMlZQUJDefPNN47rF7AwePFiVK1e2C2VFR0fr2Wef1bx589SwYUNjrNVq1bBhw7Rnzx5lZGRkWatWrVoaPHiwunXrJldXV6M/MTFR48eP1+7du+3GLl68WImJiVq4cKEk6cSJE3brderUSU899ZS+/PJLSdKaNWvk7e2t119/3dEfDwAAAAAAAAAAAAAAAIBc4OSvO+D48eN67bXX9Nhjj2np0qV2wa/KlSvr/fff13vvvZdj8OuGoKAgffjhh3Zjz58/r+DgYH311VdGn6urqxo0aGAX/LJYLGrdurXmzp2rTZs2qUePHnbBr6+//lpdu3a1C361bdtWq1evVqVKlYyrHSXpypUrunbtml1tU6dOVc2aNY32smXLFBISorS0tNt+LwAAAAAAAAAAAAAAAAC5Q/irgPz666/Z9qekpGj48OFau3atXejL09NTw4cP11dffaUnn3wyV3s9+OCD+uSTT1ShQgWjz2q1ytvb227coEGDVLJkSdWqVUujRo3S119/rYiICHXo0MHu+si4uDiNGjVKI0eOVEJCgqTr4bERI0Zo/vz5RtDM39/fbv2br4+UpJIlS2r+/Pny8/Mz+r788kv16tVLv/32W66+IwAAAAAAAAAAAAAAAICcEf4qAMuXL9c///lPox0fH6/IyEhJkpeXl8LCwuTp6SlJKlGihPr27av//Oc/evnll+Xl5ZWnPQMDA7Vq1SrVqVNHrq6umjlzph599FG7MSVLltTmzZv11VdfaeTIkapWrZrd+6tXr2rWrFnq2LGjtmzZYvRXqVJFy5Yt0+jRo+Xi8r8/Ilar1W5+ZmZmlrpq1aqlRYsWycfHx+iLjo7WM888o7CwMCUnJ+fp+wIAAAAAAAAAAAAAAACwZ7HZbDaziyjK5s+fr/fffz9Lv5+fnz755BPVq1dPkrR69Wr98ccf6tu3r0qXLl1g+1++fFmHDh1Su3btHJ6TmJioZcuW6dNPP9WlS5eMfldXV/Xr10+jR4/OcoqYJMXExKhjx45GOzIy8pbf5dChQxo2bJjd+pJUrlw59evXT88995wCAgIcrtkMNv1sdgn5ZpHr7Qc5uWlRZ8wuId/GNfQwu4R8WXY8xewS8u3Jaqlml5BvNXwDzS4h36y2on8NsIvF3ewSIMkiy+0HAQAAAAAAAABuo57ZBaAAlak32uwSUAD+PDbH7BJQBLmZXUBRFhoaqoiICKPdoEED+fj4aP/+/bpy5Yp69uypMWPGqH///nruuecKpQZ/f3+Hg1+HDx/WZ599po0bNyolxT7M0bJlS02cOFH33nvvLefv27fPePb29s4xxNa0aVOtWrVKQ4cO1alTp4z+hIQEzZo1SyVLllTv3r0dqhsAAAAAAAAAAAAAAABAVoS/8sBms2natGlasWKF0RcYGKglS5YoNTVVvXr1UmxsrFJSUvSvf/1LH3/8sTp27Kj27durWrVqKleunNzcCv5Hb7ValZqaqtTUVAUEBMhisSgmJkZbtmzRxo0bdezYsSxz7r33Xo0dOzbLlZF/lZSUpA8//NBo33///betp2bNmlqzZo3+8Y9/aM2aNUZ/t27dCH4BAAAAAAAAAAAAAAAA+UT4Kw927txpF/yqWrWqIiIi5O/vL0latmyZhg8frl9++UWSdO7cOS1ZskRLliyRJLm4uKhkyZJyd3e3+3h4eGTpc3d3N0JdaWlpdv9745OWlqa0tDRlZGQY9WzevFnPP/+8oqOjs/0OTZo00UsvvaR27drJYrFo3bp18vLyUrly5eTv7y8vLy95eHjIarUqOjpaYWFhOnPmf9fvderUyaGflY+Pj/75z3+qU6dOmjFjhjw9PTVt2rTc/9ABAAAAAAAAAAAAAEC2LBYXs0sAYBLCX3nQunVrVa9eXWfOnFFAQIA++OADlStXznhfpUoVrV692gh8Xbp0yW5+ZmamLl++XGj1BQUFyd3dXc2aNbMLf3l6eqpTp07q06ePGjdubDdn7dq12r9/v0PrV65cWU8//XSuamrTpo1atWqlK1euyMvLK1dzAQAAAAAAAAAAAAAAAGRF9DMPXF1d9dJLL8nd3V1hYWGqVatWljGenp4aOnSodu7cqTlz5qhXr15q0qSJKlSoIG9v70K59vGGrl27SpKGDBkib29vNW7cWFOmTNGOHTsUGhqaJfglXb+20hH+/v6aNWuWSpQokeu63NzcVLp06VzPAwAAAAAAAAAAAAAAAJAVJ3/lUbdu3RQQEKAWLVrkOM7T01MdO3ZUx44ds32fkZFhfKxWq107MzNTmZmZuarLxcVF1apVkySVLVtW27dvN66jzEmDBg3k6emptLQ02Ww2u3clSpRQnTp19PDDD+uFF15Q+fLlc1UTAAAAAAAAAAAAAAAAgIJH+CuP3N3d9fjjj+d7HTc3t0I9BcyR4JckPfPMM3rmmWckSWlpaUpPT1dmZqY8PT3l4eFRaPUBAAAAAAAAAAAAAAAAyBvCX8jCw8ODwBcAAAAAAAAAAAAAAADg5FzMLgAAAAAAAAAAAAAAAAAAkHuEvwAAAAAAAAAAAAAAAACgCOLaRwAAAAAAAAAAAAAAgCLMIovZJQAwCSd/AQAAAAAAAAAAAAAAAEARRPgLAAAAAAAAAAAAAAAAAIogwl8AAAAAAAAAAAAAAAAAUAS5mV0A4KwscjW7hHzLyLxmdgn59kaT6maXkG8p1j/NLiFfNpwt+jnhY1eK/r/u3m1pdgX552Ip+v9ctchidgn5ZpPN7BIAAAAAAAAAAAAAFJCi/zf6AAAAAAAAAAAAAAAAAHAXIvwFAAAAAAAAAAAAAAAAAEUQ4S8AAAAAAAAAAAAAAAAAKIIIfwEAAAAAAAAAAAAAAABAEeRmdgEAAAAAAAAAAAAAAADIO4uFs3+AuxW//QAAAAAAAAAAAAAAAABQBBH+AgAAAAAAAAAAAAAAAIAiiPAXAAAAAAAAAAAAAAAAABRBhL8AAAAAAAAAAAAAAAAAoAgi/AUAAAAAAAAAAAAAAAAARRDhLzgsNTXV7BIAAAAAAAAAAAAAAAAA/H9uZhfgiH//+9+SJIvFoqCgIIfmxMfHKzIyUgcPHlT79u3Vrl27QqvParVq7dq1kiRvb2917tw512ts3LhRBw4ckCR17txZLVu2LNAa8yM6Olpz587VuXPntGbNGrm6uppdEgAAAAAAAAAAAAAAAHDXc/rwl81m09ixY422o+GvtWvX6v333zfWKMzwV1paml5//XVJUpUqVfIU/jpw4IBWrVolSapXr57ThL+ioqLUq1cvo/3JJ5+oX79+JlYEAAAAAAAAAAAAAAAAQCpi1z5aLBaHxzZv3tx4/v777wujHIPNZjOec1NjQUhMTCzU9Zs0aaKHH37YaM+ZM0cXLlwo1D0BAAAAAAAAAAAAAIDjLBYXPsXgA+RFsf2T06hRI3l5eUmSTp06pfj4+ELb6+bw1528EvHAgQNq06aNXn31Vf3222+Fts+kSZPk7u4uSbp69apCQ0MLbS8AAAAAAAAAAAAAAAAAjikS1z7ekJtTtTw8PNSyZUvt2LFDkrRt2zb17t37luMzMzP1xx9/6PTp04qJidGZM2cUExOj06dP64knntArr7ziUI0uLncmT5eWlqYpU6YoPT1dGzZs0Pnz57V06dJb1peWlpbnvapWrapevXpp2bJlkqQNGzaoR48eaty4cZ7X9PDwuOOnpAEAAAAAAAAAAAAAAADFidOHv26W27BQ27ZtjfDX1q1b9fzzzysuLk6nT582PjcCXmfPnr1lQOrUqVM57pOZmWk8u7nl/CN98803tXfv3iz9f/75p/E8f/58LV++PMuY1q1b6/XXX5ckLVy4UCdPnpQk+fn5acaMGbfc8+DBg3rhhRdyrCu3+vXrl6/569evV/369QuoGgAAAAAAAAAAAAAAAODu4/Thr9ye/JWZmWkEvBITE43+PXv2qHHjxkpNTc11DRcvXnS4xttd+xgXF3fbMNmFCxd04cKFLP316tWTJB09elQLFy40+qdNm6ZKlSrluCYAAAAAAAAAAAAAAACA4qVYhL9SU1M1evRonT59Wr///rvS09OzjMnMzMwx+OXr66saNWpk+dSsWVOlS5fOscabT/66Xfgrv1JSUjR+/HjjOz799NMKCgoq1D0BAAAAAAAAAAAAAAAAOB+nCn/9/vvv2rFjh/bt26eZM2fKw8PD7v3N4a/MzExNmzZNjz76qFq3bq1Dhw7pypUrt92jfv36qlmzZpaAV5kyZezGxcXFqWLFilnmp6ena+/evYqJiVH//v2NWm64+drHtLQ0hYSEqFevXnr44YclSfPmzcu2rilTpmjVqlWSpMmTJys4ODjbcVOnTjWue6xSpYqmTJly2+/8V1u2bFGNGjVyPQ8AAAAAAAAAAAAAAACA83Cq8Nf69esVFhYmSQoODlaLFi3sTv5ycXExno8ePaqVK1dq5cqVeuKJJ1StWjVFR0erZMmSql69uqpXr64aNWqoevXqCg0N1aVLlyRJw4YNU8eOHXOsY+nSpZo5c6bGjRunAQMG2L0bMWKEduzYIW9vb/Xu3VseHh524S93d3fjeefOndqyZYu2bNmirl276p133snzz0aSNm7cqBUrVkiSPD09FRYWJl9f33yt6ahPP/1Uc+fOlSRVrFhRa9asuSP7AgAAAAAAAAAAAAAAAMieU4W/HnnkESP8tXfv3hzDX3v27DGeW7VqpYceekh+fn7ZXtEYGxtrBJfmzJmjxx9/3G6tG86cOaMpU6YoMjJSkjRjxgz5+fmpe/fuxphGjRppx44dSk5O1sGDB/XQQw/d8uSvf//738Zz06ZNHf9BZOP48eN2p3xNnTpVDRo0yNeauXHt2jVduHBB0vXgGQAAAAAAAAAAAAAAAABzZU1Amei+++6Tj4+PJOm7776TZH+loqurq/G8e/du47lt27aqWbNmtsEvSerbt6+8vb0lSSdOnNDKlSvt3icnJys8PFxdunQxgl/S9cDWgw8+aDe2VatWxvPOnTslSRkZGUbfjZO/rl27pu3bt0uSPDw8FBQUlNNXz9GFCxc0ZMgQJScnS5J69+5tF0gDAAAAAAAAAAAAAAB3L4vFhU8x+AB54VR/clxdXdWkSRNJ0pEjR5SUlCSr1Wr3XpIuXryoH374QZLUoEEDVapUKcd1S5Uqpf79+xvtd955R2fPnlVaWpo++eQTdezYUWFhYUpJSZF0/WSrsWPHavny5apcubJ2795tnEDWqFEj46rFG+Gv7K59/Pbbb42wVvv27eXv75+nn0lKSoqGDx+u2NhYSVKTJk00ceLEPK0FAAAAAAAAAAAAAAAAoPhwqmsfJalx48bavXu3MjIydOjQIbvrEm9c1bhp0ybjtK327ds7tO7QoUP1xRdfKDY2VsnJyRo6dKguX76shIQEu3EPP/ywJk+erHvuuUfS9aDZiy++qJo1a6p79+4aPHiwWrZsqa1bt+rEiRM6d+6c0tPTjfkeHh6SpC+++MLoq1y5sgIDAx3+GUyfPl3Tp0/P9l1UVJQaNmx4y7lt27bVwoULHd4LAAAAAAAAAAAAAAAAQNHkdOGvBg0aGM9RUVG6//77jfaNk79uDlZ17NjRoXU9PDzUpUsXLViwQNL16x9vVqdOHYWEhGQJk/3444+SpJiYGK1cuVJDhgwxwl/S9dO/bg6oeXh4KCEhQbt27ZIklStXTo888ogWL17sUJ1Fwblz54wT2vLi888/V+3atQuwIgAAAAAAAAAAAAAAAODu4/Thr759+xptd3d3nT592rjysXbt2qpbt+4t17JarTp06JC+/vprbdq0KcspX9L1QNm0adPUo0cP42Sxm33//ffGc8uWLSVJLVq0MPp27typRo0aGW0PDw9t2LDBOJmsR48e8vX1NU4Sc0RqaqrOnTtntL28vG57teUNFStWdHifvLLZbMaVlnlx81WeAAAAAAAAAAAAAAAAAPLG6cJfFSpUkJ+fn65cuaLDhw8rNTXVeOfh4aErV67o/vvv1+HDh9W5c+cs82NjY/Xdd99p79692r17ty5dupTjflarVR999JHuu+8+1a9fP8v73bt3G88PP/ywJCkwMNCoMTIyUgMHDjTGlChRQuvWrZMkWSwWPfvss6pWrZo2b97s0PePiYnRyJEjjXapUqW0aNEiu4AZAAAAAAAAAAAAAAAAADhd+EuSOnfurFKlSql169bGCVrS9ZO/GjZsqNWrV+vEiRPy9/fX2bNn9e233+rw4cOKiopSbGzsLdctV66cnn76aQUFBemdd95RZGSkJOn48ePq2bOnunfvrv79+xtXEkZGRuqnn34y9m7btq0kycXFRc2aNdO3336r5ORkfffdd8Ye58+f18mTJyVJDz30kKpVq+bw9/7mm280YcIEJSUlSZIqV66siIgI1apVy+E17oQqVapo27ZtZpcBAAAAAAAAAAAAAAAA3NWcMvw1depU4/lGkEqSPD09jec6depIun5S1syZM+1OCLtZqVKl9Pjjj6tTp0568MEH5erqKklatGiRpk+frtWrV0uS0tPTtWrVKq1evVqNGzeWv7+/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/eK4444rd65evXpx++23R7169bLKV1paGrNnz07G++23XzRq1CirewIAAAAAAAAAAOlR/qoiU6dOLTeuTPlr2rRp8fbbb5c7V1RUFPfff3+UlZVllW/27NmxZs2aZNy5c+es7gcAAAAAAAAAAKRL+auKvPXWW8lxhw4dom3btru1/qWXXooLL7wwNmzYsM21yZMnx/Dhw2PLli2VzjdlypRy46OOOqrS9wIAAAAAAAAAANKn/FUFSktLY9q0acl4d3f9+t///d8YOnRoFBUVRUREJpOJc889Nxo2bJjMefrpp2PIkCGxfv36SmV89tlny4179epVqfsAAAAAAAAAAADVg/JXFZg5c2a5VypWtPy1bt26uPzyy+M3v/lNlJaWRkRE3bp1Y8yYMXHttdfG3XffHQ0aNEjmv/7661FYWBhz5szZrXzvvvtuLFy4MBl37tw52rRps1v3AAAAAAAAAAAAqhflryrw6quvJscNGjSI7t2773LNnDlzorCwMF5++eXkXH5+ftx2221RWFgYERE9evTYpgC2aNGiOOuss2LChAlRVlZWoXz33XdfufGPf/zjCq0DAAAAAAAAAACqL+WvKrB1+euHP/xh1K9ff4dzN23aFLfddlsMGDAgFi9enJxv3rx53HfffXHyySeXm9+zZ8944IEHomXLlsm5oqKiGD16dJx55pkxa9asnWabPXt2vPHGG8m4QYMG0bdv3wp/bwAAAAAAAABA9ZbJ1PFVA76gMvzNydInn3xS7pWKO3vl45QpU+LUU0+Ne+65J4qLi5Pzhx56aDzxxBPRo0eP7a474ogj4vHHH4/OnTuXOz9r1qwYMGBAXHvttfH5559vs660tDRuvPHGcucGDBgQzZo1q8i3BgAAAAAAAAAAVGPKX1l66aWXyo23V/6aN29eDBkyJAYPHhxLliwpd+3000+PyZMnR9u2bXf6nNatW8ekSZOif//+5c6XlpbGY489Fscff3zceOON5XYTmzBhQsycOTMZ169fPy644IIKf28AAAAAAAAAAED1lZd2gFz33HPPJcft2rWLDh06JOOFCxfGHXfcES+88EKUlpaWW9esWbO44YYb4pRTTqnwsxo0aBC33nprnHjiiXH99dfH6tWrk2ubNm2KiRMnxsMPPxynnXZanHHGGfH73/++3PqLLroo9t577939FgEAAAAAAAAA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ZwrMwNClFwWkBLsSJLGXYImCMRJ7ARXxK7aABUuUWFDz2sUY0eSNRo2I7SX2BKwhFhCsgChKLzr0OszM7w9/nngYylTODFzXWrOYvc/e+7kHccUVb/cTs2bNioKCguTaRCIR55xzTjRo0KBSng0AAAAAAAAAANsz5a9qYO7cuTFu3Ljk+LTTTqu0s3/2s5/FhRdeGHfddVdERLz++utxxx13xJAhQza7b8WKFTFz5szIz8+PxYsXJ39dsGBBLFy4MObPnx/z58+PFStWlDpLcXFxfPDBB3HYYYdV6GcCAAAAAAAAAACUvyrk7bffjoceeigiIlq2bBnDhw8v1zkPPvhgFBYWRkRE06ZN44gjjqi0jBER5513Xrz77rsxfvz4iIgYOXJk7L777tGrV69N7nn11Vdj6NChFX52nTp1ol27dtG+ffvYaaedolWrVhU+EwAAAAAAAAAAUP6qkIULFyYLVe3bty/XGfPnz4/Ro0cnx7/+9a+jqKgo1q5dW+5ciUQiatWqlRxnZGTEH/7wh+jdu3fk5+dHRMTQoUOjU6dO5c7942ftsMMO0apVq2jbtm20adMm2rVrF23bto0dd9wxmjVrFolEokLPAAAAAAAAAAA2I8O/l4ftlfJXmj3wwANRUFCQMn7ggQcqdGbr1q1j7NixKXNNmzaNG264IS644IKI+P61jhdeeGGMGjUq6tSps9nz6tevHz179oxmzZolv1q0aBGtWrWKli1bphTNAAAAAAAAAADYfi1cuDA++uijmD17dqxatSpycnKiZcuWseuuu0bbtm3THS/FihUr4pNPPonZs2fH8uXLY82aNZGXlxcNGjSIzp07R6dOnSIzMzPdMTdL+SuN5syZk3LrV1U7/PDDo2/fvvHUU09FRMQXX3wR1113XfzhD3/Y7L6uXbvGvffeuzUiAgAAAAAAAABQA40dOzZGjhwZH374YRQXF290TdeuXaNfv37Rp0+ftL1JrrCwMF588cV48sknY8KECVFUVLTJtbm5udGrV6845ZRTYs8999yKKUsvI90Btme33HJLyq1fW8OVV14ZrVu3joiIli1bxoknnrhVnw8AAAAAAAAAwLZj5cqVcdFFF8X5558fEydO3GTxKyJiypQpccUVV8QZZ5wR33777VZM+b0vvvgi+vbtG0OGDIn3339/s8WviIjVq1fH888/HyeeeGJcffXVsWLFiq2UtPTc/JUm//73v+PVV19NjocMGRLnnntuypqCgoLIzs6u1Ofm5eXFLbfcEo8++mjccMMN0bBhw0o9HwAAAAAAAACA7cPKlSujX79+MXny5DLte++99+KUU06Jxx57LJo2bVpF6VJ9/PHH0a9fv1i+fHm59o8ePTqmT58eDz/8cOTl5VVyuvJz81carF+/Pm666abkuG3btnHmmWemrPnggw/isMMOizfffLPSn9+jR4+49957Fb8AAAAAAAAAACi3q666qkTxq1WrVnHVVVfFmDFj4v33348XX3wxbrzxxujYsWPKum+++SYuvPDCWL9+fZXnXLp0aQwYMKBE8atp06Zx0UUXxahRo+Lf//53TJgwIcaOHRsjRoyIX/7yl5GRkVqtmjRpUvzud7+r8rxlofyVBn/+859j+vTpyfHll18etWrVSo7ff//9OPfcc2PBggUxcODA+Otf/5qOmAAAAAAAAAAAsFFjx46Nl19+OWWuR48e8X//939x5plnRufOnaN+/frRsWPH6Nu3bzz33HNx5JFHpqz/8MMP4+9//3uVZ7333nsjPz8/ZW6//faLF198MS644ILYY489okmTJpGXlxetW7eOww8/PO64447461//WuKWrxdeeCE++OCDKs9cWspfW9m0adPinnvuSY579OgRvXr1SlnTuHHjaNy4cUREFBYWxs033xzXXnvtVmk6AgAAAAAAAADA5hQXF8fdd9+dMteqVav44x//GPXq1dvonlq1asUdd9wRu+yyS8r8Aw88EKtXr66yrIWFhTFmzJiUuZYtW8a9994b9evX3+zeHj16xC233FJifsPz0kn5aysqKCiIK664IgoKCiIiIjs7O66++uoS6zp27BijRo2Kbt26JedGjRoVgwYNijVr1my1vAAAAAAAAAAAsKF//etfMWXKlJS5q6++usQtWRvKzMyMG2+8MWVu0aJFMWrUqErP+IPPPvsslixZkjJ32mmnRd26dUu1/xe/+EWJV1a+9957lZavorLSHWB78uCDD8Znn32WHJ933nnRtWvXja5t0qRJPPLIIzFgwICYOHFiRESMGzcuzj777HjggQc22ZL8wb///e+46667Nvl53759o2/fvqXK/d5770WXLl1Ktba0Hnnkkdh3330r9UwAAAAAAAAA2C4l0h2A7c1LL72UMm7dunUcdthhpdrbrVu32GeffWLChAnJuZdffjnOPPPMSs34gwULFpSY++lPf1qmM7p37x5ffvllcrxw4cIK56osbv7ainr16hXNmzePiIguXbrEwIEDN7u+Xr168dBDD8Xee++dnPvggw/ioosu2uKzFi9eHJMnT97k1/z58yv2wwAAAAAAAAAAsN0pKCiIN954I2WuT58+kUiUvoX4q1/9KmU8adKk+O677yol34Y29krJBg0alOmMRo0apYx/eOtfdaD8tRV16tQpHnvssWjdunUMHz48srOzt7inbt26MXLkyNh9990j4vtC2GWXXVbVUWPdunVV/gwAAAAAAAAAAGqWSZMmxfLly1PmevToUaYzNnxbXFFRUbz11lsVzrYxjRs3LjG3bNmyMp2x4Wsjd9hhhwplqkxe+7iVtW3bNsaMGVPq94ZGROTl5cXIkSNjwIABceWVV0a3bt22uOfAAw+MMWPGpMzddddd8a9//atUz1y7dm3y+/333z/uueeeza5fsmRJHHroocnxCy+8EC1bttzk+pycnFLlAAAAAAAAAACg+pg6dWrKODMzM/bYY48yndGuXbvYYYcd4ttvv93kuZVll112iUQiEcXFxcm5CRMmJC9iKo2JEyemjH/8Fr90U/5Kg7IUv37QsGHDePLJJ0t9RV69evWiXr16KXP169cv9fNWrVqV8uwtZf5xWSzi+3JXeX5OAAAAAAAAAACqr6+++ipl3LJly6hTp06Zz+nQoUNK+WvGjBkVzrYxDRs2jP322y/efvvt5Nyjjz4aJ598cqkuLxo3blxMmzYtZe6EE06o9JzlpfyVJvfee2/cd999lX7uv/71r2jTpk2Fz1m4cGHy+7y8vAqfBwAAAAAAAABAzffll1+mjFu1alWuczZ8o9yGpbLKdMkll8T48eOjsLAwIiLmzJkTF110Udxxxx2b7cVMmjQprrjiipS5I444Inr27FllWcsqI90BqJ5+XP5q3rx5GpMAAAAAAAAAAFBd/LhTEhHRokWLcp2zYflrwYIF5c60JbvttltcffXVKXNvvPFGHHvssfHwww/HlClTYuXKlbF+/frIz8+Pt99+O4YOHRqnnnpqLF26NLlnn332ieHDh1dZzvJw81c1kJWVFbVq1SoxX1hYmHydYiKRiNzc3I3u//ErGivLj1ua5W1oAgAAAAAAAABQOitWrIiVK1dW6TPq1q1b4TfAbdhTKe95G+5bs2ZNFBUVRUZG1dxldeqpp0ajRo1i2LBhsWTJkoiImDt3btx2221b3JubmxtnnnlmXHDBBRvt+KST8lc1cOyxx8Ytt9xSYv7dd9+NM844IyK+L2CNHTt2o/u7dOlSqXnWrl0bM2fOTI7btWtXqecDAAAAAAAAAJDqL3/5S9x3331V+oxBgwbFhRdeWKEzNix/5eTklOucje1btWpVhctpm3P00UfHAQccEH//+9/j2WefLfEKyw0lEok4+eST48ILL4zGjRtXWa6KUP6ihMmTJyffcZqRkRFdu3ZNcyIAAAAAAAAAYJMSiXQnYDuyevXqlHF5b8LaWPlr5cqVVVr+ivi+F/P+++/HrFmztri2uLg4Hn/88ZgwYUKcf/75cdRRR1VptvJQ/qKE8ePHJ7/v0KFD1KlTJ41pAAAAAAAAAACgYvLz82Po0KHx+uuvp8zXrVs39t5772jdunXk5ubG0qVL4/PPP4+pU6dGUVFRRERMnTo1LrnkknjppZfitttuK/dtZ1VB+YsSfvx6yX333TeNSQAAAAAAAAAAqE5yc3OjoKAgOV63bl25zlmzZk2Jubp165Y71+Z89913cfrpp6e85rFOnToxePDg6Nu3b9SuXbvEnpkzZ8add94ZL774YnLulVdeiZUrV8aDDz4YmZmZVZK1rDLSHYDqZerUqTFlypTkeP/9909jGgAAAAAAAAAAqpMN3yC3sRJXaWxsX1W9ne7yyy9PKX41aNAgRo0aFaeddtpGi18REe3atYs777wzLrroopT5t99+Ox5++OEqyVkebv4ixeOPP578vl69erHffvulMQ0AAAAAAAAAwPahX79+8Zvf/KZKn1EZN2ttWNBasWJFuc7ZcF9OTk5kZFT+PVZvvPFGvP322ylzN9xwQ3Tq1KlU+y+44IKYNGlSvPnmm8m5Bx98ME499dQqu6msLJS/SFq0aFE888wzyfHRRx+9yXYjAAAAAAAAAACVJy8vL/Ly8tIdY4uaNWsWX331VXI8f/78cp2z4b5mzZpVKNemPPnkkynjDh06xBFHHFGmM84///yU8tfy5cvjn//8Z/Tp06dSMlaE1z6SdMcdd6S8h/WUU05JYxoAAAAAAAAAAKqbDh06pIznzp1brnM23NexY8dyZ9qU4uLi+OCDD1LmDjjggDKfs+eee0b9+vVT5j788MMKZassyl9ERMQHH3wQzz77bHJ88MEHR9euXdOYCAAAAAAAAACA6mbDktb8+fNj1apVZT5nxowZKeP27dtXKNfGLF++PJYuXZoy16ZNmzKfk5GREa1atUqZW7BgQYWyVRavfdxOrFu3Lr755puNfpafnx+DBw+O4uLiiIjIysqKwYMHb814AAAAAAAAAEB5ZSTSnYDtSJcuXVLG69evj48++ih69uxZ6jNmzpwZixYt2uy5lWH16tUl5nJycsp1Vm5ubsr4x2/XSyc3f20Hli1bFv3794+JEycm5/79738nW5dz586NtWvXJj8744wzonPnzls9JwAAAAAAAAAA1duee+4Z9erVS5l77733ynTGhuszMjLK9TrGLWnQoEGJucWLF5frrPz8/JRxw4YNy3VOZVP+2sYtWLAgTj311Hj//fdT5idOnBjnnHNOLF26NHbdddd4+umno3PnztGtW7e49NJL05QWAAAAAAAAAIDqLDs7Ow466KCUueeffz75xrnSeO6551LGe+65ZzRp0qRS8v1YTk5O5OXlpcxNnjy5zOfk5+fHzJkzU+aaNWtWoWyVRflrG/bNN9/EySefHNOmTUvOnXLKKbHDDjtERMSECRPiiCOOiCeeeCJatGgRTzzxRIwYMSJq1apV5mfVqVMnBg8enPzaWHMSAAAAAAAAAICa76ijjkoZz549O8aOHVuqvVOmTClxidGRRx5Zadk2tNdee6WM33nnnfj222/LdMZzzz1XotzWvXv3CmerDFnpDkDEs88+G88+++xm18yZM6dM7zadMmVKnH322Sl/WAcMGBCDBw+O3r17xznnnBMrVqyIxYsXx/XXXx/33ntvHHLIIXHggQfG0qVLo0WLFtGoUaNSPy8nJycGDBiw0c/Wr18fa9asibVr18aaNWtizZo1kZOTE61bty71+QAAAAAAAAAAVA+HHXZYdOnSJaZOnZqcu+mmm6Jnz55Rt27dTe4rLCyMq6++OmWuadOm8Zvf/KZUz92wO9OjR4949NFHN7vnoIMOirfeeis5XrNmTdx8881xxx13lOqZs2bNij/96U8pczk5ObHvvvuWan9VU/6qgNzc3GjevHlEfP8HsTr59NNPU4pfJ5xwQgwePDgivm80Pvroo3HxxRcnr6T77rvvYvTo0TF69OjknkQiEVlZWZGVlRWZmZlb/L64uDjWrl2bUvJau3ZtrF+/vkS+3/3ud3HqqadW8e8CAAAAAAAAAACVLZFIxCWXXBLnn39+cm7OnDlx/vnnx/3331/iVYsREevWrYsrrrgiPvnkk5T5gQMHRm5ubpVlPf744+P++++P/Pz85NwLL7wQdevWjWuvvXazb8ibOnVqDBo0KJYsWZIyf9ppp230Z0wH5a8KOOqoo0pcY1cederUKdMtWxuaM2dOibk+ffrE/fffH7Nnz44DDjgghg0blvJ5t27d4vnnn48///nP8eijj5b4QxoRUVxcHAUFBVFQUFDubBuTm5sbvXv3rtQzAQAAAAAAAADYeg499NA44ogj4pVXXknOvfvuu9G7d+/o169f/OxnP4tmzZrFt99+GxMnToy//OUvMX369JQz9tprrzjppJOqNGfdunXjsssui6FDh6bMjxo1Kt566604+eST42c/+1m0bt06cnJyYunSpfHZZ5/Fa6+9Fi+88EKJ3kzr1q03+Xa8dFD+qgaOOOKIuOWWW8q9f2Ovg8zKyoqBAwfGI488EnfddVdkZZX8S12nTp0YNGhQDBgwIN566634z3/+E1OmTIm5c+fG8uXLY82aNVFUVBTr168v8d7SijjqqKOiXr16lXYeAAAAAAAAAABb38033xzz5s2Ljz76KDk3Z86cuPHGG7e4t127dnHPPfdstNNS2Y4//vj45ptv4oEHHkiZnzdvXqlf/xgR0ahRoxg5cmQ0aNCgsiOWm/LXNuy4446LAw88cIvXzNWqVSsOO+ywOOywwza5pri4ONavX58sg/3wa2FhYRQWFibXZWRkREZGRiQSiUgkEhsdb+66PAAAAAAAAAAAaoa8vLz4y1/+EldeeWW89tprpd7XvXv3uPvuu2OHHXaownSpLr300ujQoUPccMMNsXz58jLv33fffeO2226LFi1aVEG68ksUV+aVTiQVFBTEp59+mhx369ZN6anGmZbuAFAtfLdmSrojVFjPvzZMd4QK++K86vUPENurgqJV6Y5QYZPzS74uuqbpvkOndEcAAAAAANgGdE53ACrRzr96JN0RqATTnz0j3REq5F//+leMHDkyPvzww02u6dKlS/Tr1y+OO+64SCQSZX7Ghm/H69GjRzz66KNlOiM/Pz9Gjx4dzzzzTMyYMWOza2vXrh0///nP45RTTokDDjigXJmr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1157bZnO6NatW1x88cXJ8b333huPPfZYpeYEAAAAAAAAAABqJq99rAKLFi2Kfv36xcKFCyMiIisrK+68885Sve5xQ+eee25MnDgxxo0bFxERN9xwQ2RmZsZJJ51UpnOaN28e119/fZmfXxlatWqVlucCAAAAAAAAAMC2TPmrki1evDj69+8fM2fOTM4NHjw49t5773Kdl0gk4tZbb40TTjghZs6cGcXFxXH99dfHunXr4owzzij1OQ0aNIiTTz65XBkAAAAAAAAAAIDqx2sfK9GiRYvi9NNPj2nTpiXnjjnmmOjfv3+Fzm3QoEE8+OCDyZvDiouL46abbopbb701iouLK3Q2AAAAAAAAAFDDJXxtE19QDspflWTevHlx2mmnxRdffJGc22uvveLmm2+ulPPbt28fI0aMiFq1aiXn/vznP8fFF18cK1asqJRnAAAAAAAAAAAANYfyVyX4/PPP48QTT4yvv/46Ode2bdsYMWJE1K5du9Ke071797j77rsjOzs7OffKK6/ECSeckHLbGAAAAAAAAAAAsO1T/qqg119/PU455ZRYsGBBcq558+bxv//7v9GkSZNKf96hhx4ad911V0oBbMaMGfGb3/wmnnzyyUp/HgAAAAAAAAAAUD0pf5VTcXFx/PGPf4zzzz8/Vq1alZxv3Lhx/OUvf4k2bdpU2bMPP/zwuO+++yI3Nzc5t3r16vjd734XZ511VsyZM6fKng0AAAAAAAAAAFQPyl/lsHTp0jjvvPPirrvuiqKiouR8s2bN4m9/+1t07NixyjMcfPDB8de//jUaNWqUMj9+/PgYOXJklT8fAAAAAAAAAABIL+Wvcli/fn189dVXKXOtW7eOxx9/fKsUv36wxx57xN///vfYeeedk3OHH354XHvttVstAwAAAAAAAAAAkB5Z6Q5QEzVp0iQeeuihOPnkkyM/Pz923333+OMf/xg77LDDVs+y0047xahRo+Kqq66KefPmxe233x6ZmZlRXFwchYWFWz1PaWVmZkYikUh3DAAAAAAAAAAAqLGUv8ppp512ij/96U/x2GOPxbBhwyInJydtWerWrRt33313rFy5Mplj9OjRcc0116Qt05aMHDkyDjzwwHTHAAAAAAAAAIAarzjD5SuwvVL+qoDdd989dt9993THSKpbt266IwAAAAAAAAAAAFtJRroDAAAAAAAAAAAA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ALBp1ab8ddddd6UUvxo1ahQjR46M3XbbbZN7WrRoEUceeWQceeSRMWvWrPjPf/5T6ufttttuccghh2zy82XLlsXtt98ef//735NzK1asiGHDhsXjjz9e6uf84MevfKxTp07sscceMX78+IiIePfdd2PWrFnRtm3bMp/7gzlz5sRpp50WCxcuTJnv27dvXHTRRdGsWbNN7q1du3bstttusdtuu8XAgQPj3Xffjezs7FI9t379+pv9fQQAAAAAAAAAAKpGxpaXVL1169aVeCXi7373u80WvzbUtm3b6Nu3b6Vlql+/fgwbNiz69++fMj9hwoR49913y3TWggUL4u23306Od99999hrr72S4+Li4nj66afLnXX16tUxYMCAlOJXdnZ23HrrrXHjjTdutvi1Mfvuu2/svffe5c4DAAAAAAAAAABUvWpR/vrss89i2bJlyXHt2rWjV69eaUz0XxdffHE0bdo0Ze71118v0xnPPPNMFBYWJse9evWKww47LGXNs88+G0VFReXKeOutt8b06dOT44yMjBgxYkQcd9xx5ToPAAAAAAAAAACo/qpF+Wv+/Pkp4/r160dWVvV4I2VOTk4ceuihKXOfffZZqfdveKtXdnZ2HH300bHrrrtGp06dkvPz58+Pt956q8z5pkyZEk8++WTK3Pnnnx8HHXRQmc8CAAAAAAAAAABqjmpR/iouLk4ZL168OFauXJmmNCV16NAhZZyfn1/qve+++27MmjUrOT7ooIOiUaNGERHRp0+flLXlefXj/fffn3JjWOfOnWPQoEFlPgcAAAAAAAAAAKhZqkX5q02bNinj9evXx1NPPZWmNCXl5uamjDcsq23O6NGjU8Y/Lnz17t07MjL++5dg7NixZSqWLVq0KP75z3+mzJ177rkpZwIAAAAAAAAA27iMhK9t4QvKoVq0hLp16xZNmjRJmbv99ttj7NixaUqUavHixSnjpk2blmrfsmXL4tVXX02OGzZsGAcffHBy3Lx58/j5z3+eHBcUFMTzzz9f6lz//Oc/o7CwMCXX0UcfXer9AAAAAAAAAABAzVUtyl+ZmZlx2mmnpcytW7cu/t//+38xbNiwWL58eZqSfe/DDz9MGXfu3LlU+8aMGRNr165Njo866qioVatWyprjjjsuZbzhTWGbM378+JRxjx49Iisrq9T7AQAAAAAAAACAmqtalL8iIs4555zo1q1bylxxcXE8/vjj8Ytf/CL+9re/xbp167Z6rlmzZsU777yTMveLX/yiVHuffvrplPGGRa8fzsrLy0uOp0+fHpMmTSrV+Z988knK+Kc//Wmp9gEAAAAAAAAAADVftbkmqlatWvHQQw9F//79Y8qUKSmfLV68OG644YZ46KGHYuDAgfHrX/86srOzqzzT2rVr44orroiCgoLk3O677x777LPPFvd+/vnn8emnnybHO+20U+y5554l1uXk5MQRRxyRUhQbPXr0Rtf+WEFBQcybNy9lrmPHjlvMVdmWLVsW48aNK/X6gw8+OBIJ76kFAAAAAAAAAICKqjblr4iIJk2axJNPPhk33nhjPPXUUyU+nzdvXlx33XXx4IMPxgUXXBC/+tWvIiOjai4v++yzz+Kaa65JKXBlZ2fHddddV6ry0oavb+zdu/cm1/7qV79KKX+9+OKLcdVVV0WdOnU2uSc/Pz+KiopS5ho2bLjFXJVt+vTpMXDgwFKv//TTT72aEgAAAAAAAAAAKkG1a+Hk5OTEjTfeGMccc0z8/ve/jy+//LLEmjlz5sRVV10VTzzxRAwbNix22WWXMj/n448/jszMzOS4oKAgli9fHl9++WW8//778dFHH6Wsz8zMjP/5n/+JXXfddYtnr127NsaMGZMcJxKJ6NOnzybXd+/ePdq0aROzZ8+OiIiVK1fGSy+9FL/+9a83uWflypUl5ho0aLDFbAAAAAAAAAAAwLah2pW/ftCzZ88YM2ZMPPvsszFixIiYO3duiTUff/xxnHjiiTFkyJA466yzynT+Aw88UOq1jRs3jptvvjkOOeSQUq1/7bXXYunSpcnxPvvsE23atNnk+h/KYSNGjEjOjR49erPlrx8X136wfv36UuUDAAAAAAAAAABqvmpb/or4vuB0wgknRO/eveOZZ56JBx54IObNm5eypqCgIIYPHx6zZ8+Oa665plKfX7t27ejTp09ccskl0aRJk1Lv2/CVj8cdd9wW9xx33HEp5a+JEyfGV199FR06dNjo+o294nHJkiXRunXrUuesDHvvvXc88cQTW/WZAAAAAAAAAABANS9//aBWrVpx0kknxfHHHx+PP/54/PGPf4wlS5akrHn00UejZcuWcfbZZ5frGZmZmVG/fv1o1KhRdOvWLbp37x5HHHFENG7cuEznzJo1K/7zn/8kx7Vr144jjzxyi/vatWsX++yzT0yYMCE5N3r06Lj88ss3ur5+/fqRmZkZhYWFybnvvvuuTFn/P/buPd7KMe8f+Het9k7tzpGkQYUOjB6HPAbR8JhJpTKMSI+GIcMYNcTjmEENk8E4PaPEOJazSWQq5FCGmXEmlMNEJSmidmkf2uv3h5/12B333mvtVqv9fr9e6+W+rvu6vvd3tXf99XHdAAAAAAAAAMAWIJnrBoBcyYvw13fq168fJ554YvTv3z9+97vfxdSpUyvd/9Of/hSHH354lU6/+t///d847LDDst7jI488EqlUKj0uKSmJbt261ajWo48+GmeffXYUFKz9Y0okEtG6detKr8N844034uCDD67RswAAAAAAAAAAgPySl9nPFi1axA033BCDBw+uNF9WVhb33HNPjrqKqKioiL/+9a9Zq7dkyZJ49tln13t/n332qTT+5z//mbVnAwAAAAAAAAAAm7e8DH9954ILLojOnTtXmpsxY0aOuomYOXNmLFy4MKs1H3roofXe22+//SqNX3311ViwYEFWnw8AAAAAAAAAAGye8uq1j2tKJpMxYMCAuPzyy9NzuQw/rRnUOuaYY+K//uu/qlXjk08+iSuuuCI9fv7552PRokXRunXrtdYefPDBUVhYGGVlZRERUV5eHnfccUdcdNFFNegeAAAAAAAAAADIJ3kd/oqI2GGHHSqNE4lETvr48ssvY/r06ZXmhgwZEjvttFO16qRSqbjzzjvTIbbVq1fHxIkT41e/+tVaa1u3bh19+/aNRx55JD13//33x9FHH73WiWgAAAAAAAAAAMCWJa9f+xgR8dVXX1Uat2rVKid9TJo0KX0CV0TED3/4w2oHvyK+Da/17du30tzDDz+83vVDhgyJZPL/fowlJSUxbNiwKC4urvazAQAAAAAAAACA/LFZhL/efPPN+OSTT2q09+mnn6403meffbLRUrWt+crHNQNc1XHkkUdWGn/88cfxz3/+c51rO3ToEKeeemqlublz58bgwYNj8eLFNe4BAAAAAAAAAADYvG0W4a8PPvgg+vfvH2PGjFnrJK8Nefzxx2PKlCmV5jIJXdXUG2+8Ee+//356nEwmo1evXjWu1759+9hrr70qza0ZLvu+YcOGxf77719pbtasWTFgwIB46qmnqvXsb775JsaNGxfTpk2r1j4AAAAAAAAAIEcSCZ8t4QM1UJDrBr6zcuXK+NOf/hQ333xzHH744XHQQQfFfvvtt9ZrHMvKyuKNN96I++67Lx5//PFK93r27LlWCGpTWDOY1a1bt2jdunVGNfv37x+vvfZaejx16tQYMWJENGnSZK21yWQyrr322vjFL34Rc+bMSc9/+umnccYZZ8Ree+0V/fv3jx49esT222+/1v6FCxfGrFmz4umnn46nnnoqli1bFqNGjapSn8uWLYtnnnmmWt9tu+22iy5dulRrDwAAAAAAAAAAUNlmE/76zqpVq2LixIkxceLEiIho0qRJbL311tGgQYNYsWJFfPbZZ1FWVrbWvr322itGjhy5qduNlStXxuTJkyvNHXHEERnX7d27d1xxxRVRWloaEd/+uTz++OMxcODAda5v2bJl3HPPPXHOOefE888/X+nea6+9lg6SFRUVxTbbbBNFRUVRXFwcX331VRQXF9e4zw8++CBOO+20au3p27dvXH311TV+JgAAAAAAAAAAsJm89nGrrbZa773ly5fH3Llz47333ot58+atFfyqV69eDBo0KP7yl79Es2bNarvVtUyZMiVWrFiRHhcWFkbPnj0zrtusWbM49NBDK81t6NWP3+255ZZbYuTIkdGyZct1rlm5cmV88skn8d5778X8+fPXG/xq0KBBzRoHAAAAAAAAAAA2ic3i5K8+ffpEq1atYvLkyfHSSy/F3LlzN7pn2223jV69esWAAQNil112qf0m12PNQNaBBx4YzZs3z0rtn/3sZzFlypT0+O2334733nsvOnfuvN49iUQiBgwYEP369YtJkybFY489Fq+88kqsXr16g89KJBKx6667xgEHHBA/+9nPNvgMAAAAAAAAAAAg9xKpVCqV6ybWVFxcHB999FHMnTs3li5dGitWrIitttoqGjduHNtuu2107tw52rRpk+s288bKlSvjnXfeiXnz5sWXX34Zq1atisLCwmjYsGE0b948dthhh2jfvn1OTk7bvM3JdQMAwBaq4Y6/y3ULGfvmk8ty3QIAAAAAkJGOuW6ALOrwm7/mugWy4KObfpbrFshDm8XJX2tq3LhxdO3aNbp27ZrrVrYIRUVF0a1bt+jWrVuuWwEAAAAAAAAAALIkmesGAAAAAAAAAAAAqD7hLwAAAAAAAACf0tS5AAAgAElEQVQAgDy0Wb72EQAAAAAAAACAKkomct0BkCNO/gIAAAAAAAAAAMhDwl8AAAAAAAAAAAB5SPgLAAAAAAAAAAAgDwl/AQAAAAAAAAAA5CHhLwAAAAAAAAAAgDwk/AUAAAAAAAAAAJCHhL8AAAAAAAAAAADykPAXAAAAAAAAAABAHirIdQMAAFDXfPPJZbluIWPNd7k21y1kbPGc03LdQsYKk0W5bgEAAAAA2AykEolctwDkiJO/AAAAAAAAAAAA8pDwFwAAAAAAAAAAQB4S/gIAAAAAAAAAAMhDwl8AAAAAAAAAAAB5SPgLAAAAAAAAAAAgDwl/AQAAAAAAAAAA5CHhLwAAAAAAAAAAgDwk/AUAAAAAAAAAAJCHCnLdAAAAAAAAAAAAGXD0D9RZ/voDAAAAAAAAAADkIeEvAAAAAAAAAACAPCT8VUuee+65+PDDD2u0t7i4OO66665IpVJZ7goAAAAAAAAAANhSFOS6gS1RSUlJ/Pa3v42VK1dGq1atYvDgwXHqqadWae/LL78c5513XsyfPz+WLFkSZ599di13CwAAAAAAAAAA5CPhr1owc+bMWLlyZURELF68OFq2bFmlfd9880389re/jcWLF0dExNixY6NLly7Rq1evjPp5/fXX49hjj82oRja8+OKLVf6zAAAAAAAAAAAANsxrH2vBU089lb4uLCyMn/70p1Xa17Bhw7jqqqsimfy/H8uFF14YH3zwQdZ7BAAAAAAAAAAA8puTv7Js9erV8cwzz6THBx98cDRt2rTK+w844IA488wz4/rrr4+IiJUrV8aZZ54ZDz30UDRq1Cjj/nr37h2/+c1v1nu/f//+UVZWFvvss0+MHDlyvetOPfXUmD9/frRr1y7+/Oc/r3fdyJEj48UXX8yoZwAAAAAAAAAAYG3CX1n28ssvx9KlS9PjI444oto1TjvttHj++efjtddei4iIjz76KC655JK45pprMu6vSZMmsfPOO6/3fiKRiIhvTyHb0LrCwsL0fze0rqioqIadAgAAAAAAAAAAGyL8lWV//etf09eNGzeOQw45pNo1kslk/P73v0+fwtW6devo169fNtsEAAAAAAAAALYUyUSuOwByRPgri5YtWxZ/+9vf0uMjjjgiGjZsGOXl5bF69epq1frBD34Qp5xySnz88cdx4YUXRtOmTaOkpKRKewsLCyOZTK73fnl5eZXqZGNdKpWqUg0AAAAAAAAAAKB6hL+yaOLEibFq1ar0+LjjjouIiBtvvDHGjBlT47pPPPFEtdZfddVV0b9//3Xeu//+++P+++/faI2ZM2fG7rvvvtF177//fpXWAQAAAAAAAAAA2bX+46Gotu+HqvbYY4/o0qVLDrsBAAAAAAAAAAC2ZE7+ypKXX345Pvjgg/T42GOPzWE363fEEUfE0KFDq7x++fLlMWfOnIiIaNGiRXTo0KFaz7v00kvj73//e7X2AAAAAAAAAAAAG5dIpVKpXDexJfjVr34Vzz77bHo8bdq02GmnnXLX0PeUlZXFV199FRERDRs2jMaNG1d57z/+8Y8YPHhwRET07Nkzbrjhhmo9e9myZVFSUhIREdtss00kEolq7c+tObluAABgs9V8l2tz3ULGFs85LdctZKwwWZTrFgAAAADIWx1z3QBZ1H74pFy3QBb8+5p+uW6BPOTkryx46623KgW/NherV6+OVCoViUQiWrRokZ4vLy+vco2Kior0dSqVqtbeiIiioqIoKipK9xMRkUwmI5n0xlEAAAAAAAAAAMiE8FcW3HTTTdXeM2vWrNh1112jfv36NX7u6NGjY+edd44ePXpEq1at1rr/3//93/Hqq6/WuP6apk2bFrvvvnvGdfr27RtXX311FjoCAAAAAAAAAIC6S/grQ9U59auioiJuuummmDx5csydOzeuv/76OPzww2v03C+++CJuv/329MlePXv2jOuvv75GtQAAAAAAAAAAgPwj/JWhG264ocprk8lkPP/88zF37tyIiHj00UdrHP564YUXIpVKRcS3r2Pccccd11pz3XXXxapVq2pU/ztvvPFGnHvuuRERcdBBB8WIESMyqhcR0ahRo4xrAAAAAAAAAAD/XyKR6w6AHBH+ysD06dPj+eefr9aefv36xVtvvRURETNmzIilS5dGixYtqv3smTNnVhr36tVrrTWtW7eudt01ffbZZ+nroqKi2GmnnTKuCQAAAAAAAAAAZE74q4ZWrVoVo0aNSo9btGgRZWVlUVxcvMF9ffr0idGjR0d5eXmUlZXFE088EYMGDarWs1OpVKXwV7t27WK33Xar0t5ly5ZFSUlJlZ/19ddfp69LS0tj8eLFVW80IhKJRGyzzTbV2gMAAAAAAAAAAGyc8FcN3XzzzbFgwYL0+Kyzzoobbrhho+GvrbfeOg444ID0iWGTJ0+udvjr7bffji+++CI9rs6r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FltvvXUNOwcAAAAAAAAAADZE+GsL17Vr1xg9enQk/v8Rj0uWLIlf/OIXMW/evPXuqVevXlx33XXRpk2biIgoLy+PYcOGxfvvv7/BZ91+++3x4YcfpsdDhgyJH/3oR1n4FgAAAAAAAAAAwJqEv+qAPn36xPDhw9Pjzz//PH75y1/GkiVL1runZcuWceONN0b9+vUjImLFihXx61//Or7++ut1rp8/f378+c9/To/32muvGDp0aJa+AQAAAAAAAAAAsCbhrzpiyJAhMWDAgPT4k08+iVNOOSWKi4vXu2ePPfaI8847r9KeESNGrHPtpZdeGt98801ERDRv3jyuueaaKCgoyFL3AAAAAAAAAADAmhKpVCqV6yby2b333huXXnpprtuIiIhRo0bFMcccs977ZWVlceKJJ8bLL7+cnvvP//zPuPXWW2OrrbZa774zzjgjnnrqqejYsWNcffXV0alTp0r3J06cmA6JJRKJ+POf/xyHHnpoht9mczAn1w0AAFuoRjuNzHULGVvx8br/p4B8korVuW4hY4mol+sWAAAAAMhbHXPdAFnU7uK/5boFsmDuqF65boE85OSvOqSwsDBuvPHG2G677dJzHTt23OgJXVdccUWcccYZ8fDDD68V/Fq0aFFcccUV6fGQIUO2kOAXAAAAAAAAAABs3ryXL0ONGjWKtm3b1nj/kiVLoqSkJCK+fV1io0aNMuplY1q2bBk33nhjDB48OIYPHx4nnHBC+t6CBQsqjdc0ceLEteZWrFgRX3/9dXo8adKkmDx58jr3T5kyJerXr7/RHgEAAAAAAAAAgI0T/spQv379ol+/fjXef/LJJ8fMmTMjIuK8886Lo446KlutrVfXrl3jySefjFatWlWaLy8vjwULFmRU+7PPPlvvPW8YBQAAAAAAAIBa4L1vUGf5618LXn311bjggguitLS0Vmofd9xxMW/evIzqrBn8AgAAAAAAAAAA8ouTv7LsrrvuiquuuirKyspi6dKlccMNN2TtVYeff/55DBs2LD7//PM48sgj4/LLL48+ffpkpfaattlmm3jhhRcyqlFSUhJdu3bNUkcAAAAAAAAAAMD3Ofkry7744osoKyuLiIhnnnkmhg4dmpUTwFatWhWnn356fP755xERUVxcHC+//HLGdQEAAAAAAAAAgPwk/JVlZ511Vhx55JHp8TPPPBPnnntupFKpGtdcvXp1nHXWWfH222+n5/r06RMjRozIqFcAAAAAAAAAACB/ee1jLRg1alQsXLgw/vGPf0RExJQpU+LKK6+MCy+8sEb1Lrnkkpg+fXp63L179xg9enQkk+vP7g0cODBeffXV9d6fPXt2jXoBAAAAAAAAAAA2D07+qgWFhYVx0003Rbt27dJzd955Z9xxxx3VrnXFFVfEQw89lB7vvffeceONN0ZhYWEWOgUAAAAAAAAAAPKV8Fctadq0adx8883RtGnT9Nz3X9tYFU888UTceeed6XG3bt3i1ltvjaKioo3uLSgoiHr16lX6AAAAAAAAAAAAWw7hr1rUoUOHuOqqq6KwsDDOP//8uPrqq6u1v1evXnHaaadFRMS+++4b48aNi0aNGlVp79133x3vvPNO+jNt2rRq9w8AAAAAAAAAAGy+CnLdwJbukEMOiWnTpsX2229f7b2JRCLOOuus2HvvvWPfffet0olfAAAAAAAAAEAdk0jkugMgR4S/amjIkCHx4YcfZlxnyZIl6evRo0fHTTfdlHHNwYMHx4knnphxHQAAAAAAAAAAYPMl/FVDn3/+eSxYsCCrNb/66qv46quvMq6zfPnyLHQDAAAAAAAAAABszoS/WKclS5ZEp06dct0GAAAAAAAAAACwHsJfNfToo49mtH/atGlxzjnnRElJSaX5ww8/PK699tqoV69eRvUBAAAAAAAAAIAtm/BXDkyYMCFGjhwZFRUVa92bMmVKbLXVVvGHP/whkslkDrr7VjKZjDZt2kRERGlpaSxevDgiIgoLC2PbbbettPazzz6L1atXR0REq1aton79+hERkUql4tNPP92EXQMAAAAAAAAAQN0h/LWJXXfddXHzzTdHRETr1q2jefPmMXv27IiI2HHHHeOTTz6JRx99NEpKSuKPf/xjOki1KSSTyWjSpElERGy99dYxderUiIh49dVXY+DAgRERscsuu8TEiRMr7Tv00ENjwYIFERFx0003xZ577hkR34bGDjjggPS6RCJR698BAAAAAAAAAADqCuGvTaSkpCQuvfTSeOSRRyIiomnTpnHrrbfG6NGj0+GvU089NZ588sl47rnnYsqUKfHll1/GjTfeGM2bN98kPe6www7x8ssvrzW/fPny9HXjxo2rXK9+/frrrAcAAAAAAAAAAGQud+8VrEPmzp0bAwYMSAe/mjRpErfddlt07Nix0rp69erFtddeG127do2IiH/+859x1FFHxTvvvLPJe/6+moa/AAAAAAAAAIBNIJnw2RI+UAPCX7Xsb3/7Wxx99NHx3nvvRURE8+bN4/bbb08HvNbUuHHjuPXWW2O33XaLiIgFCxbEwIED4+67745UKlVrfZaVlcWMGTPWee+TTz5JX7dq1arWegAAAAAAAAAAAKpO+KuWfPPNNzFy5Mj47W9/G8XFxRERsf3228eECRNijz322ODeZs2axR133BH77LNPRESsWrUqRo0aFb/85S9j/vz5We+1uLg4hgwZEvfff/867//73/9OX7dr1y7rzwcAAAAAAAAAAKpP+KsW/P3vf4++ffvGPffck57bfffd47777oudd965SjWaNWsWf/nLX+InP/lJpbp9+vSJMWPGRGlpaVZ6/fzzz2PQoEHx4osvxoIFC9a55s0330xfZxL+mjhxYqVaAAAAAAAAAABAzQl/ZdFXX30VF1xwQZx00kkxb9689PwRRxwREyZMiNatW1erXoMGDeLGG2+MoUOHRjL57Y9q1apV8ac//Sl69+4dkyZNioqKihr3+95778WAAQPSr6T8+OOP11rz0Ucfxdy5cyMiIplMxl577VXj502ZMiWOOeaY6NevXzz55JM1rgMAAAAAAAAAAAh/ZUUqlYpJkyZF796945FHHknPFxYWxsUXXxzXXHNNNGjQoEa1E4lEnHHGGXHrrbdGq1at0vPz5s2Lc889N/r37x+PPfZYlJeXV6vuc889F8cff3wsXLgwIr4Nmo0aNWqtdQ888ED6ukuXLtGyZcsafY+IiJUrV0ZExOzZs50ABgAAAAAAAAAAGRL+ytCLL74YRx99dJx77rnxxRdfpOfbtWsX9957b5xwwglZec6BBx4Yjz32WPTs2bPS/Jw5c+Kcc86Jn/70p3H77bfH0qVL17m/uLi40vj000+PFStWREREq1at4u67747evXtXWjNv3ry499570+Mjjjgio++wfPny9PX222+fUS0AAAAAAAAAAKjrhL9qaPbs2TFkyJA48cQTY9asWZXuDRw4MCZOnBh77LFHVp/ZokWLuOGGG2LMmDHRtm3bSvcWLFgQf/jDH+Lggw+O//mf/4mysrJK999///1K49WrV0dExO677x4PPfRQdO3atdL9VatWxdChQ2PVqlUREdG4ceMY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AKC8SyTSnQBIF599LEFZWVkxYMCAPMWva665pkjFr+/VqFEjRowYEffff3/svvvuKffeeOON6NGjR0yYMCFlfvDgwdGiRYuUv+HDhyfvjxkzJs/9wYMHFzkjAAAAAAAAAACwc3nzVwmZP39+XHnllfHJJ58k5zIyMmLo0KHRu3fvEnnGMcccE08++WRce+218eKLLybnS/stYHXq1ImuXbsWae/bb78dixcvLtE8AAAAAAAAAACA8leJmDhxYgwfPjyysrKSc9WrV4/bb789OnXqVKLP+tnPfhZ//etfY9y4cTFy5MjIzs5O3vv+LWCDBw+O3XbbLfbcc8+UvevWrYvVq1dHREStWrWiTp06Kfd32223fJ/ZsGHD+MMf/lCkvAMGDFD+AgAAAAAAAACAUqD8VQxr1qyJ4cOHx7///e+U+aZNm8bf/va3aNasWak9+9e//nW0b98+rrrqqvj444+T8+vWrYsHH3wwHn/88bjmmmtS9jz00EPJTz+eccYZ8T//8z+llg8AAAAAAAAAAChdGekOUFY988wzceKJJ+Ypfh166KExfvz4Ui1+fW/vvfeOxx57LM4999zkXKVKleLWW2+NSpUqlfrzAQAAAAAAAACA9FH+KoIHH3wwrrrqqli5cmVyLiMjIy666KJ44IEHom7dujstS6VKleK6666Lv/71r1G7du0YNGhQtGjRYqc9HwAAAAAAAAAASA+ffSyCXr16xeTJk2P27NkREdG4ceMYNWpUtG/fPm2Zjj/++GjTpk3Uq1evxM+eO3euQhkAAAAAAAAAAPzEePNXEVStWjX+/Oc/R+3ataNHjx4xefLktBa/vle/fv1IJBJF2jtz5syYM2dOCScCAAAAAAAAAABKizd/FVGTJk3iqaeeigYNGqQ7SrG9//77cckll0S/fv3igAMOyHO/du3a0blz5yKdPW3atFi6dGlxIwIAAAAAAAAA21HE98QAuwDlr2LYFYpfU6ZMid/+9reRlZUV77//flx44YV51jRq1ChuuummIp0/YMAA5S8AAAAAAAAAACgFPvtYjr3wwgtxySWXRFZWVkRENGzYMM2JAAAAAAAAAACAgvLmr3IkNzc3ef3666/Hgw8+GDk5ORER0adPnxg8eHC6ogEAAAAAAAAAAIWk/FWOrFu3Lnn92WefJa/79+8fl19+eToiAQAAAAAAAAAARaT8VY7MnTs3z9zgwYOjT58+O9w3f/786NatW5Ge+fXXXxdpHwAAAAAAAAAAsGPKX+XEl19+Ga+88kpynEgk4oYbboizzjrrR/du2rQpFixYUJrxAAAAAAAAAACAQlL+Kifmz58fW7dujYiIjIyMGDFiRPzyl79McyoAAAAAAAAAAKColL/KiSOPPDJuvfXWGDhwYAwcOLBQxa+WLVvG5MmTi/TcAQMGxH/+858i7QUAAAAAAAAAALZP+asc6d69ezRo0CAOPvjgdEcBAAAAAAAAAEpIIpFIdwQgTRK5ubm56Q4BP02fpjsAALCLysndmO4IxZaZqJLuCMVWa5+b0x2h2NbO/126IwAAAABQZjVPdwBK0L73vp7uCJSAeZcdne4IlEEZ6Q4AAAAAAAAAAABA4fnsIwAAAAAAAAAAUCK+/vrrmDlzZixZsiSysrKiSpUq0ahRo2jVqlXsscce6Y63XV9//XV8/PHHsXjx4li/fn1kZGRE9erVo3HjxrH33nvHXnvt9ZP8xKryFwAAAAAAAAAAUCwvv/xy/P3vf48ZM2ZEbm5uvmtatmwZffr0iVNPPfUnUaTauHFjjB8/Ph5//PH4+OOPd7i2Tp06ceihh0bnzp3jl7/85U5K+OMSudv7pw3l3qfpDgAA7KJycjemO0KxZSaqpDtCsdXa5+Z0Ryi2tfN/l+4IAAAAAJRZzdMdgBK0772vpzsCJWDeZUenO0KRbNiwIYYMGRL/+c9/Crynffv2cccdd0S9evVKMdmOvfTSS3HjjTfGsmXLCrWvUqVKMWvWrFJKVXgZ6Q4AAAAAAAAAAACUPRs2bIg+ffoUqvgVETFt2rQ4++yzY/ny5aWUbMduv/32+O1vf1vo4tdPkc8+AgAAAAAAAAAAhTZ06ND48MMPU+YaN24cF1xwQXTo0CEaNmwYy5cvj+nTp8c///nPmDdvXnLd559/Hv3794+HHnooKlTYeRWmkSNHxgMPPJAyV6VKlejSpUt07tw5mjVrFvXq1YuMjIxYu3ZtfPbZZzFr1qx49dVXY86cOTstZ0H57CNsl88+AgDw0/ZtzjfpjlBslTNrpztCsTU8YHS6IxTbF7PPT3eEYstI+P9vAwAAgMLx2cddic8+7hrK2mcfX3755bjssstS5tq3bx/33HNP1KxZM8/6TZs2xTXXXBPPPfdcyvx1110X5557bqlm/d7EiRNjyJAhKXNHH3103HDDDdG0adMf3b9o0aIYP358DBw4sLQiFpryF2yX8hcAAD9tyl8/DcpfPw3KXwAAAFBYyl+7kv3+pvy1K/isb9kpf+Xm5kbPnj1j7ty5ybnGjRvHU089FTVq1NjuvpycnPjVr34Vs2fPTs7Vr18/XnjhhahatWqpZl6xYkWceOKJ8c03//ffrZ9yyikxatSoyMjIKNVnl6aymxwAAAAAAAAAANjpXnrppZTiV0TEsGHDdlj8iojIzMyMESNGpMwtX748HnvssRLPuK0RI0akFL9atWoVN910U5kufkUofwEAAAAAAAAAAIXw7LPPpoybNGkSxx13XIH2HnDAAXHIIYekzG37KciStnDhwpTMiUQibrjhhsjMzCzV5+4Myl8AAAAAAAAAAECBbN68OV577bWUuVNPPTUSiUSBzzjttNNSxh988EGsXLmyRPLlZ/z48Snjdu3aRevWrUvteTuT8hcAAAAAAAAAAFAgH3zwQaxbty5lrn379oU647DDDksZb926Nd54441iZ8vPli1bYtKkSSlzPXr0KJVnpYPyFwAAAAAAAAAAUCCffPJJyjgzMzPatGlTqDP23HPPqFev3g7PLSlz587N81axI444olSelQ4V0h0AAAAAAAAAAAAoG+bPn58ybtSoUVSrVq3Q5+yzzz6xYsWK5HjBggXFzpafmTNnpoyrVasWTZs2TZn74osv4r333oulS5fG5s2bo06dOlGvXr045JBDokGDBqWSq6QofwEAAAAAAAAAAAUyb968lHHjxo2LdE6jRo1SxtuWykrKrFmzUsb77rtvJBKJiPjuE5a33XZbTJs2bbv7mzVrFn369ImePXtGZmZmqWQsDp99BAAAAAAAAAAACuTrr79OGTds2LBI52xb/lq2bFmRM+3ItqWy2rVrR25ubtxxxx1x9tln77D4FRHx3//+N4YOHRo9e/aMxYsXl0rG4vDmLwAAAAAAAACAMuz/v8SIMm79+vWxYcOGUn1G9erVo0aNGsU6IysrK2Vc1PO23bdx48bYunVrZGSU7Lus1qxZkzKuXr163HzzzTFmzJhCnfPpp59Gr169YsyYMbH//vuXZMRiUf4CAAAAAAAAAIA0++c//xl/+ctfSvUZl19+efTv379YZ2xb/qpSpUqRzslvX1ZWVrHLadtat25dyvjd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mxZLlixJzvXr1y+GDh2aHP/85z+Pfv36Fen8K664Il544YVYvHhxRHz3NrEOHTrEXnvtVbzgAAAAAAAAAECZkUikOwGQLspfJWD9+vXx3nvvxUsvvZQyP3HixJRxZmZm3H777ckyWCKRiOHDh0flypWL9NwqVarEH/7wh+jTp09ERGRlZcWQIUPi4YcfjkQB/zf7qlWr4p133om33norzjrrrKhatWry3jfffBOzZs0qUrbvbdiwoVj7AQAAAAAAAACA/Cl/FUFWVla8++678e6778a0adPio48+ipycnHzXVq5cOY444og4/vjjIzc3N6699trkvV/96lfRvn37YmU54ogj4rTTTotJkyZFRMT7778f//rXv+L888/f4b7x48fH3/72t5g7d27k5uZGRETXrl2jSZMmyTWvv/56vP7668XKBwAAAAAAAAAAlA7lryKYMWNGXHLJJdu9X6tWrTjmmGOiS5cu0bFjx6hWrVosXrw4Tj/99OSaJk2axO9+97sSyTN48OB4/fXXY+XKlRERMWnSpDjvvPMikUjEli1bYtasWfHOO+/E9OnTk3vefPPNPOdkZ2eXSB4AAAAAAAAAAKD0KX8VwT777JNnrn79+tG5c+c44YQT4rDDDouKFSsm723atCmuuOKKWLt2bUREVKxYMe64446oWbNmieSpU6dODBs2LK6++uro3r17jBgxIp599tmYMGFCzJgxI7Kysra7NzMzM9q2bRudOnWKgw8+ONatWxeZmZkREXH00UfHFVdcERERU6ZMiVGjRkVERPv27WPo0KHJM5588skYM2ZMRERccMEF0bNnz+S9G2+8MWbOnFkivxMAAAAAAAAAAPg/yl9F0LBhw6hWrVrUqVMnunTpEieccEIcfPDBkZGRke/6NWvWRJUqVZLjgQMHRps2bUo000knnRTVq1ePTp06RUTE3Llz46233sp3bZ06deKoo46KY489Njp27Bi1a9dO3qtfv37MmTMnz56nn346eX3IIYfE/vvvnxxPnTo1eb377run3Hv00UeT1y+++GKMHTs2evfuHZ07d97uPy8AAAAAAAAAAODHKX8VQSKRiAkTJsS+++5boPW77757PPTQQ3HHHXfEvHnzok+fPqWS6/viV0RE8+bNU+41atQojj/++OjSpUsceuihybd7FcSWLVviqaeeSo4PPvjgIuVbv359vPPOO/HOO+/EySefHLfeemuRzgEAAAAAAAAAAJS/iqygxa/vZWRkxMCBA2PLli2llChV8+bNY++9944uXbpEly5donXr1kU+6x//+Ed89dVXEfHdm8GOPPLIIp2zZs2a5HVJffISAAAAAAAAAADKK+WvnaxChZ3zj7x58+bx3HPPFfucSZMmxd13350c9+nTp1BvDfuhZcuWJa/32GOPYmcDAAAAAAAAAIDyTPmLfK1YsSJuvvnmmDx5cnKuVatWccEFF+RZm0gkUvZtz5w5c5LXhX1zGgAAAAAAAACQv4zEj68Bdk3KX6T46KOP4rHHHosnnngivv322+R88+bN4/7778/3rV81atRIXj/11FNxzjnnRNOmTVPWPP/88zF16tSI+O7tZ23atCmlXwAAAAAAAAAAAOWD8lc5t2HDhpg+fXpMmTIlXnjhhVi0aFGeNSeeeGLceOONUatWrXzPaNWqVfJ6+fLlccIJJ0SjRo2iYsWKERGxfv36WL58eXLN4YcfHnXq1CnhXwIAAAAAAAAAAOWL8lc5tmrVqjjhhBNi3bp1+d5v2bJlXHnllXHsscfu8JwWLVpE586d4+WXX46IiJycnFiyZEm+a2vUqBFDhw4tXnAAAAAAAAAAACAy0h2A9Klbt25cfvnlKXMZGRnRqVOnuO++++KJJ5740eLX9+68887o27dv7LXXXsk3fn0vMzMzmjRpEieffHKMHz8+9t133xL7DQAAAAAAAAAAUF4lcnNzc9MdgvTZunVrnHXWWZFIJKJr167RrVu3aNSoUbpj/UR8mu4AAAAAO0XVPW9Id4Riy150Y7ojAAAAQBnTPN0BKEEH/+8b6Y5ACZh+dsd0R6AM8tnHci4jIyMeeeSRyMjwEjgAAAAAAAAAAChLNH5Q/AIAAAAAAAAAgDJI6wcAAAAAAAAAAKAM8tlHAAAAAAAAAIAyLJFIdwIgXbz5CwAAAAAAAAAAoAxS/gIAAAAAAAAAACiDlL8AAAAAAAAAAADKoArpDgAAAABlWdU9b0h3hGLLXnRjuiMAAAAAAFAE3vwFAAAAAAAAAABQBil/AQAAAAAAAAAAlEHKXwAAAAAAAAAAAGWQ8hcAAAAAAAAAAEAZVCHdAQAAAAAAAAAAKLpEIt0JgHTx5i8AAAAAAAAAAIAySPkLAAAAAAAAAACgDFL+AgAAAAAAAAAAKIOUvwAAAAAAAAAAAMog5S8AAAAAAAAAAIAyqEK6A5Aet912W6xfvz7atm0bnTp1itq1a6c7EgAAAAAAAAAAUAjKX+VQbm5ujB8/PlavXh2PPPJIvPrqq8pfAAAAAAAAAABQxih/lUNz586N1atXR0REu3btomHDhgXat2bNmrj77rsL9aw999wzLrjggsJGBAAAAAAAAAAAfoTyVzn06quvJq979OhR4H3r16+Phx9+uFDPOvjgg5W/AAAAAAAAAKAUJTIS6Y4ApElGugOw87322msREVGxYsXo2rVrgffl5uaWViQAAAAAAAAAAKCQvPmrHOjdu3dMmzYtz/zmzZvjsMMOy3fPuHHjom3btilzOTk5yev69evH8OHD8907ffr0uP/++4uRGAAAAAAAAAAA+DHKXxTYpk2bktc1a9aMY489Nt9133777c6KBAAAAAAAAAAA5ZbyVzmz1157RUZG/l/7XL58eaxfv367e7Ozs5PXlSpVKvFsAAAAAAAAAABAwSl/lTMPP/xw1K9fP997gwcPjkmTJm137zfffJO8rlOnTolnAwAAAAAAAAAACi7/V0BRLmzdurVQ65ctW5a8rlevXknHAQAAAAAAAAAACkH5qxxauHBhXH/99dGzZ8/Iyckp8L5PP/00eb333nuXRjQAAAAAAAAAAKCAlL/KoXfffTfGjRsXn3zySTz77LMF2rNx48Z45plnkuNWrVptd23FihWT16tXry56UAAAAAAAAAAAYLuUv8qhk08+OerUqRMREf/4xz8KtOf222+PFStWRERE9erVo0OHDttdW79+/eT1ggULYvTo0bF27dqI+O5Tk5s2bYrNmzcXNT4AAAAAAAAA8AOJhL9d4Q+KQvmrHKpSpUqcfvrpERHx8ccfx5tvvrnD9ffff388+OCDyfGFF14YlStX3u76/fffP+rWrZsc33zzzdGuXbto0aJF7L///nHggQfGI488UsxfAQAAAAAAAAAA5ZvyVzl19tlnR+L/10bHjh2b75oNGzbEkCFD4rbbbkvOtWjRIn7zm9/s8OyKFSvGoEGDdrimZcuWhUwMAAAAAAAAAAD8kPJXObXHHnskP904ZcqU5GcZf+iiiy6KiRMnJscNGjSIe+65J6pUqfKj5//yl7+Me+65Jw499NB817do0aIY6QEAAAAAAAAAgArpDkD6nHnmmbH33nvHxRdfHLVq1cpzf+jQodG7d+/YuHFj/PznP4/Ro0dH06ZNC3z+cccdF8cdd1xERGzatClyc3MjIiKRSESlSpVK5kcAAAAAAAAAAEA5pfxVBNOnT4/HH3883TF26MYbb4wKFXb8r7dr167RtWvX7d5v3bp13HTTTfHSSy/F73//+6hRo0aR8yh7AQAAAAAAAABAyVL+KoKFCxfGhAkT0h1jhwYMGBCzZs2KiIjVq1cn599444183/IVEfHFF1/kmevevXt07969dEICAAAAAAAAAABFpvy1i1q8eHH069cvz/yQIUMKdc7f/va3uO+++4qdp3HjxvH0008X+xwAAAAAAAAAAOA7yl/s0ObNmyMrK6vY52RnZ5dAGgAAAAAAAABgW4lEuhMA6aL8VQSnn356nH766emOsUNfffVVDBw4MCIixo0bF0uWLImIiL59+0b16tXz3fPcc8/F7Nmzd1pGAAAAAAAAAACg6JS/dlENGzaMSy65JCIi3njjjWT569xzz4369evnu2f+/Pl5yl/9+/eP/v37x4cffhi9evWKiIijjjoqRo8e/aMZ7rzzzrj33nsjImK//fYr8m8BAAAAAAAAAADyykh3ANJn06ZNBV574IEHxs9+9rOIiJg6dWqsW7fuR88eN25ccvx9cQwAAAAAAAAAACgZyl/l0Lvvvht9+vSJQYMGFXhPRkZGHHXUURERsXnz5njxxRd3uH7y5MmxatWqiIioX79+dOrUqch5AQAAAAAAAACAvJS/yoGcnJzkdSKRiMmTJ8fbb78dL774YvJzkAXRvXv35PXYsWO3uy47Ozvuvvvu5Picc86JChV8YRQAAAAAAAAAAEqS8lc5kJWVlbxOJBJx5plnRsR3pbAdlbi21alTp2jcuHFERMyePTumTp2a77p//OMf8fXXX0dERN26deO8884ranQAAAAAAAAAAGA7lL/KgQ0bNiSvE4lEtGrVKlq1ahUREY8//nhkZ2cX6JzMzMzo1atXcnzLLbfE1q1bU9bMmTMn7rvvvuT4kksuierVqxcnPgAAAAAAAAAAkA/lr3Lgh+WvKlWqRETEr3/964iIWLduXTz99NMFPuucc86JOnXqRETErFmzYvz48cl72dnZMXDgwNi8eXNERDRv3jzOOeecYucHAAAAAAAAAADyUv7axeXk5MTatWsjIqJChQpRrVq1iIjo3r17VK5cOSIiHnvssQKfV6tWrejXr19yPGrUqJg3b17k5OTE1VdfHfPnz08+a+TIkVGpUqWS+ikAAAAAAAAAQD4SCX+7wh8UhfLXLm7RokXJN3H97Gc/S87XrFkzOnfuHJmZmbHvvvvGli1bCnzmWWedFc2aNYuI794q1q9fv7j22mvj5ZdfTq659NJLk5+WBAAAAAAAAAAASl6FdAegdH322WfJ68aNG6fc69u3b1x55ZXx85//vFBnVqxYMe64444444wzYuPGjbFgwYJYsGBB8v7xxx8f/fv3L1ZuAAAAAAAAAABgx7z5axf33//+N3m95557ptxr2bJloYtf32vWrFkMGjQoz/wBBxwQt9xySyS8jxAAAAAAAAAAAEqV8tcu7u23305et2zZssTOnTZtWowePTrP/LJly1KeCQAAAAAAAAAAlA7lr13YypUr4/3330+OW7duXewzv/nmmxgxYkScf/758eWXX+b7zH79+sXAgQNjyZIlxX4eAAAAAAAAAACQP+WvXdiLL74YW7dujYiIatWqRdu2bXe4ftOmTcnrbT/bmJ2dHQ8++GCccMIJMXbs2OS5ERFnnHFGDBo0KCpUqJCc+/e//x3dunWL66+/PubNm1cSPwcAAAAAAAAAAPiBCj++hLJo69at8dBDDyXHHTt2jEqVKkVExObNm2Pjxo1Rs2bN5P0lS5bEO++8kxxXr149IiKWL18ejz32WIwdOzZWr16d8oyaNWvG73//++jRo0dERBx66KExcODAWLp0afI548aNi3HjxkWbNm3i1FNPjaOOOir22muv0vnRAAAAAAAAAABQjih/7aKefPLJ+PTTT5PjU089NXn9zTffxJFHHhmVK1eOGjVqRGZmZqxcuTJycnIi4ru3hG3ZsiX69u0bb7zxRmzZsiXP+T169IjBgwdH/fr1k3MHHXRQPP3003HffffFmDFj4ttvv03e+/DDD+PDDz+MiIhGjRrFXXfdFW3atCnx3w0AAAAAAAAAAOWF8tcu6qmnnkpe77HHHtGpU6fkuF69erHbbrvFypUrUwpa3+vdu3c0bNgw3nvvvTzFr/bt28eAAQOiXbt2+T63atWqceWVV0avXr1i9OjRMXHixMjKykpZ06hRo2jdunUxfh0AAAAAAAAA8L2MRLoTAOmSke4AlI477rgjOnToEBERl156aWRm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vfeYOHFiPPbYYxERcfnll9ep/HXVVVfF2rVrIyLinnvuqVH+Gjt2bKxYsSIiIu6++27lLwAAAAAAAAAA2A2Uv3aBV199NS6++OJYtWpVbNiwIb74xS/We6/169fH9773vVi8eHEMGDAgrrjiijjggAMaMS0AAAAAAAAAkMvSqaQTAElR/toFbr755li5cmVERFx99dXRqlWrGDlyZL32uuqqq2Lx4sURETFnzpwoLy+P3//+940VFQAAAAAAAAAAyFHppAM0R7fcckt07949IiKqq6vjyiuvjClTptR5nz/96U8xderUzLhbt24xbty4RssJAAAAAAAAAADkLuWvXaB9+/Zx1113xf777x8REVVVVfGTn/wkZs6cWes95s+fHzfeeGNm3KlTp/jd734XHTp0aPS8AAAAAAAAAABA7lH+2kW6dOkSd955Z+yxxx4REVFRURHf//7344033tjp2lWrVsV3v/vdKC8vj4iI1q1bx/jx46Nr1667NDMAAAAAAAAAAJA7lL92oUMOOST+93//NzM+++yzo0ePHjtcU1ZWFt/97ndj+fLlERGRTqdj3Lhx0bt3712aFQAAAAAAAAAAyC15SQfIVZWVlVFRUbHT5/r37x+jRo2K4uLiuOiii6KiomKH666++up46aWXMuPLLrssTjjhhCgtLd3puwoLCyNi88lhq1atyrr30UcfZa5XrlwZb731VmbcuXPnKC4ujg8//HCb+1ZXV+/03VvuvXTp0u3ez8vLi3322afW+wEAAAAAAAAAANuWqq5Ls4eMX//613HLLbckHSPL3Llzo3PnznHrrbfGbbfdVut1l19+eXzyk5+MUaNG7fTZe+65J/r27Zs1d9JJJ8WKFStq9a4uXbrE008/XetsyXpr548AAAAAzcoho15JOkKDPXJzcdIRGuTQtl2SjtBgha3aJR0BAABqYcdfrSK3nP3kM0lHoBFMOvXEpCOQg5z8BQAAAAAAAACQw1Ip5/5AS6X81Qx94hOfiBNOOCFr7s0338x81vGggw6K/fffP3PvgAMO2K35AAAAAAAAAACAhlP+qqeLL744Lr744gbtMXDgwFiyZElERFx66aVx4YUXNka0GDFiRIwYMSJr7vvf/3489thjERExcuTIuOCCC2qse/PNN7e5X9++fWPt2rW1evfdd98d/fr1q2NiAAAAAAAAAACg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3nn1SA0AAAAAAAAAAGwtnXQAdq/d+dnH3/zmN7FgwYKIiOjYsWPceOONu/R9AAAAAAAAAADQkjj5qxl75513YurUqXH++edHhw4dImL7n3287bbbok2bNnHOOedEmzZt4rTTTos333yzxp6vvPJKfOELX4iIiMMOOywmT568zXe//PLLMX78+Mz4uuuui7322qtR/lwAAAAAAAAAAIDyV7M2ZMiQiIg4+OCDY9iwYRGx+XOMHysoKIiIiIqKirjvvvtizZo1cdttt8WMGTMyZbH6WLVqVXzve9+LioqKiIi44IIL4tRTT633fgAAAAAAAAAAQE0++9gCPP3005nrLctfeXmbu39/+9vfYs2aNRGxuSjWkOJXZWVlXHLJJbFixYqIiPjsZz8bl156ab33AwAAAAAAAAAAts3JX81Yt27dYvHixTF37tyorq6OVCqVOY0rIiI/Pz8iIh5//PHM3Jlnntmgd44dOzaef/75iIjYb7/94uabb876vNpImcIAACAASURBVCQAAAAAAAAA0LjSqeqkIwAJcfJXM9avX7+IiFi9enUsWLAgIrJP/srPz4+ysrKYOXNmRGz+DOTQoUPr/b6777477r///sxev/rVr6Jjx4713g8AAAAAAAAAANg+J381Y8cff3xMmDAhIjZ/+rF3795ZJ38VFBTE7NmzY926dRERcfLJJ8dZZ50Vy5Ytq9X+r732WvTs2XOb98rKyuKcc87Z4frnnntOOQwAAAAAAAAAAOrJyV/N2LHHHhvp9OZf8TPPPBMREeXl5Zn7BQUFMXny5Mz47LPP3r0BAQAAAAAAAACAenPyVzPWrl276NGjRyxcuDDmz58fa9asyZz81apVq1i9enWmFLbvvvvGiSeeGF27do2CgoJav2Pp0qVZhbKuXbtGXl7t/rWq7XMAAAAAAAAAAEBN2jfN3LHHHhsLFy6MqqqqePbZZ6OsrCwiIoqKimLKlClRWVkZEZtP/Uqn0/HHP/6xVvuWl5fHjTfeGH/6058yc9/5znfiu9/9buP/IQAAAAAAAAAAgBp89rGZO+644zLXTz31VObkr9atW8ecOXMiIiKdTtfpk48rVqyIr3zlK5niVzqdjiuvvFLxCwAAAAAAAAAAdiMnfzVzffr0ie7du8fw4cNj+PDhcc4550TE5pO/7rjjjrj33nvj7bffjv32269W+z355JNx5ZVXxsqVKyMiok2bNnHTTTfFySefvMv+DAAAAAAAAAAAQE3KX81cx44dY+rUqZnxx5993GOPPaK4uDguuuiiWu3zr3/9K6677rp45JFHMnPdunWLX//613HIIYc0bmgAAAAAAAAAAGCnlL9amE2bNkXE5vJXbT3++ONx/fXXx4cffpg1v3jx4hgyZEidMzz66KPRo0ePOq8DAAAAAAAAAGpKp5JOACRF+asF2bRpU+bkrz333HOnz7/xxhtxww03xIsvvrirowEAAAAAAAAAAHWk/NWCrFq1KnPdtm3b7T63YsWKuP3222PixIlRVVWVmW/dunXm5LDi4uLo0qVLvXIUFBTUax0AAAAAAAAAAPAfyl8tyJblr/bt29e4v2LFirjjjjviL3/5S+aEsIiIwsLCGDVqVEREjB8/PiIiLrjggvjOd76zixMDAAAAAAAAAADbo/zVgixZsiRzvWbNmqx7d9xxR9x6661Zpa+IiIEDB8YPf/jD6Nq1awwaNCgzP2zYsF0bFgAAAAAAAAAA2KF00gHYfd5///3M9dSpU2Pq1KmZcf/+/SM/Pz8z7tu3b/z5z3+O2267Lbp27Rp///vfY/HixRERceSRR8aBBx6423IDAAAAAAAAAAA1KX+1IG+++WbW+Iorroh33303IiJ69uwZY8eOjaOOOir+8Ic/xD333BNHH3105tlJkyZlrocPH757AgMAAAAAAAAAANvls48tyPz58yMioqCgIMrKymLjxo0xZsyYmDhxYhQVFcXQoUNj6NCh21z70ksvZa5///vfx3333Vfn9//oRz+KAQMG1Cs7AAAAAAAAAACQTfmrhVi+fHksX748IiJOPPHEaN26dUydOjXeeuutuPbaa+OGG27Y4frq6urM9bJly+qVIZVK1WsdAAAAAAAAAABQk/JXC/HMM89krvv27RuDBw+O2bNnx4YNG2LSpEnxmc98Zpd/znHPPffcpfsDAAAAAAAAQEuUTjoAkBjlrxZizpw5meu+fftGly5d4uKLL46f//znERFx9dVXx5FHHhkHHnjgNtfPmDGjXu8dPHhwvPfeexER0bZt23rtAQAAAAAAAAAA1KT82QKsXbs2nnrqqYiI2HvvvaNnz54REfHVr341Dj744IiI2LBhQ3z/+9+PsrKyRn33qlWrMtft2rVr1L0BAAAAAAAAAKAlU/5q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AKCQOPkrD84888xYsmRJ5jStRx99NB544IE466yzEk6W7Y9//GN885vfjHQ6HRERFRUVMWvWrOjSpcsen582bVpMmjQprxnKy8vzuh8AAAAAAAAAALRVyl95Mm3atHj66adj06ZNERHxve99L9773vfGoEGD4vjjj4/KyspG7TdhwoRYvHhxRET06NEjfvOb30RJSe5/uv74xz/GhAkTYvv27RERUVJSErfcckscfvjhe13ToUOH6NChQ87vBAAAAAAAAACan7u+oO3y93+edOrUKb7zne9kxlu3bo1vfOMbUVtb2+i91q1bF7/73e8y43HjxjWp+PWHP/whq/iVSqVi6tSpcdJJJ+W8JwAAAAAAAAAAkCzlrzwaOXJknHbaaZlx586do7q6utH7zJ8/P+rr6yMiol27dnH22WfnnGn+/PnxpS99Kav4NW3atKwrKXPJCAAAAAAAAAAAJMu1j3l29dVXx/Lly+Oiiy6Kc889N1KpVKPWv/7663HPPfdkxqNHj45OnTo1OsfOnTvjuuuui7vuuisz9/aJX+ecc07WsxMnTow333wzrr766jjyyCMb/S4AAAAAAAAAAKDlKX/lWefOnWPRokVRWlqa0/o5c+bEli1bMuPRo0fntM/DDz+cVfwqLi6OqVOn7naK2BNPPBG//e1vIyLi05/+dNx8880xatSonN4JAAAAAAAAAAC0HNc+NoNci19r167NOvUrIqK8vDynvU4//fTo2bNnZo877rhjt+JXXV1dXHfddZlx165d48QTT8zpfQAAAAAAAAAAQMtS/noXmTp1amzbti0ve5WVlcVXvvKV6NatW9x9991x8skn7/bMvHnzYuXKlZnxlClToqKiIi/vBwAAAAAAAAAAmpdrH3O0ffv2vX6XSqWirKysUfs99NBDsWTJkt3m6+vr46qrropPfvKTccIJJzRqz7Fjx8ZJJ50U3bt33+27qqqq+OEPf5gZjxgxIkaMGNGo/QEAAAAAAAAAgOQof+Vg06ZN+7wesXfv3rF48eIG71dVVRXXXHPNHr+78cYb44knnoiFCxfGpZdeGhMmTIhUKtWgfYuLi/dY/Eqn03HVVVdFTU1NRER07tw5pk6dmvl+yJAhDc6eqxNOOCHmzZvX7O8BAAAAAAAAAIDWSvkrYbW1tXHZZZfFW2+9FRERRUVFUV9fn/n+iSeeiIh/nQB26623xjPPPBM33nhjHHzwwTm/c968ebF06dLM+LrrrouuXbvmvB8AAAAAAAAAkJyiVDrpCEBCipIO0NZNmTIl/vrXv2bGl1xySdb33/jGN+Kggw7KjJcsWRKf/vSn4/nnn8/pfc8991zMmDEjMx43blx89KMfzWkvAAAAAAAAAAAgOU7+ykHXrl2jsrIya+6pp56K888/v1H7zJgxIxYuXJgZjx49Os4777y47bbbMnMnnXRSjBo1Kr785S/H3//+94iIWLduXZx33nkxZcqUOOussxr8vjfeeCO+9rWvxY4dOzJz48eP3+25t08ba6zrr78+HnrooYiI6N+/f9x77717fbasrCyndwAAAAAAAAAAAP+i/JWQefPmxZw5czLjIUOGxDXXXBM1NTW7PduvX7+477774qqrropFixZFRMT27dvj29/+djz33HMxZcqUKC0t3ef76urq4vLLL4+qqqqs+VQqtduznTt3zuVXyip0FRUV5bwPAAAAAAAAAACwf659TMDs2bPj+uuvz4x79+4ds2fPjnbt2u11TYcOHeLWW2+Nyy67LIqK/v2n7b777ovzzz8/Nm/evM93Tps2LecTvQAAAAAAAAAAgHcf5a8WlE6n4+abb46bb745M9e1jQFJzgAAIABJREFUa9e48847o2fPnvtdn0ql4stf/nLccccd0aFDh8z8M888E5/61Kfi+eef3+O6W265Je6///6m/wIAAAAAAAAAAMC7hvJXC9m6dWtcdtllMXv27Mxcp06d4kc/+lH079+/UXt95CMfiXvuuSe6d++emduwYUOMGzcuHnnkkaxnb7/99rjjjjsyY1cxAgAAAAAAAABA66D81QLWrl0b5557bixatCgz16tXr7j77rtjyJAhOe15xBFHxAMPPBBHHnlkZm7btm3xta99Le69995Ip9MxY8aMuO222zLfDxw4MKZNm5b7LwIAAAAAAAAAALxrKH81s1/+8pcxZsyY+Nvf/paZO+KII+Lee++Nww47rEl7d+/ePe6+++748Ic/nJnr1q1bfOQjH4nvf//7MWfOnMx8165dY+7cuXHQQQc16Z0AAAAAAAAAAMC7g/JXM7rhhhvi61//erz11luZuZNPPjnuvvvurCsbm6JDhw4xa9as+MxnPhPl5eUxa9as6NGjRwwaNCjzzEEHHRRz586NPn365OWd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c8DIUFFAxQlkhsM55/eHyyePTGfChwOv11rP8rv3dw+fhwNrueTt3ltvnS222CItWtT+7fKLX/yi3vssXrw4rVu3bpKaAQAAAAAAAABgfSb8RZKkb9++6datW95666088cQTee+997L77rs36R4LFizIXnvtlX333TeDBg3KPvvsk7KysibdAwAAAAAAAAAA1heSNyRJCoVCDjjggCRJVVVVxo8f3+R7vPnmm1m4cGHGjRuXU045JdXV1U2+BwAAAAAAAAAArC+Evyg68MADi8933XVXk6//xhtvFJ+33HLL5a6RBAAAAAAAAAAA6k76Zj03Z86cPProo5k5c2amT5+esrKyVFdXZ/LkyXn99dfTo0ePJtvr0+GvbbbZpsnWBQAAAAAAAID1WXmhptQlACUi/LWOmj9/fiZPnpz33nsv7777bvGf7777bmbNmlUcN3HixEycOHGFazzwwAM58cQTm6ymT4e/tt122yZbFwAAAAAAAAAA1kfCX+uoKVOm5JhjjmnUGvUJfy1btmy1Y15//fXi83bbbdfgugAAAAAAAAAAAOGvdVaXLl1WO6aioiLdunVL9+7ds+WWW2aLLbbIFltskR//+MeZO3duXnzxxcyaNStdu3Zd4fzWrVsXn6dOnZqtttpqpXvNnDkzzz//fLHdu3fvun8ZAAAAAAAAAABgOcJf66iNN964+LzRRhulZ8+e6dGjR3r27JmePXtmyy23TLdu3VJeXr7c3C9/+csZP358ampqMmHChBx11FEr3GPzzTfPO++8kyS54IIL0qZNm2y//fapqKhIklRXV2fOnDl55plncumll6aqqipJ0r1792yxxRZN/ZUBAAAAAAAAAGC9Ivy1jmrbtm1uuumm9OjRIx06dKjX3H333Tfjx49PRUVFZs+evcpxzzzzTJLkzTffzPHHH1+n9U866aR61QMAAAAAAAAAACxP+GsdttNOOzVo3t57750zzzwzX/3qV9OxY8eVjvvWt76VcePG5eWXX67z2scee2wOP/zwBtUFAAAAAAAAAAD8i/AXy+nQocNKr3r8tA022CDXXnttxowZkwceeCAzZszIkiVLao1p1apVunbtmp133jlHHnlk+vXrt6bKBgAAAAAAAACA9YrwF43Stm3b/OAHP8gPfvCDUpcCAAAAAAAAAADrFeEvAAAAAAAAAIBmrKxQ6gqAUikrdQEAAAAAAAAAAADUn/AXAAAAAAAAAABAMyT8BQAAAAAAAAAA0AwJfwEAAAAAAAAAADRDwl8AAAAAAAAAAADNkPAXAAAAAAAAAABAM9Si1AUAAAAApbVhz4tKXUKjffTqyFKXADSRmtSUuoRGK6RQ6hJIUlWztNQlNNqiN88udQkAAACs5Zz8BQAAAAAAAAAA0Aw5+QsAAAAAAAAAoBkrcwAxrLec/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzVCLUhcAAAAAAAAAAEDDlRVKXQFQKk7+AgAAAAAAAAAAaIac/LWeGjVqVObPn5+dd945AwYMyIYbbljqkgAAAAAAAAAAgHoQ/loP1dTU5Oabb87s2bNzww035OGHHxb+AgAAAAAAAACAZkb4az00ZcqUzJ49O0my++67Z9NNN63TvDlz5uQ3v/lNvfbaYostctxxx9W3RAAAAAAAAAAAYDWEv9ZDDz/8cPF50KBBdZ43f/78XHfddfXaa9dddxX+AgAAAAAAAACANaCs1AXw+XvkkUeSJBUVFTnggAPqPK+mpmZNlQQAAAAAAAAAANSTk7/WA0cffXSefvrp5forKyuzxx57rHDO2LFjs/POO9fqq6qqKj536dIl55xzzgrnPvvssxkzZkwjKgYAAAAAAAAAAFZH+Is6W7p0afG5ffv2+cpXvrLCcUuWLPm8SgIAAAAAAAAAgPWW8Nd6Zsstt0xZ2Ypv+3zvvfcyf/78lc5dtGhR8blly5ZNXhsAAAAAAAAAUH/lhVJXAJSK8Nd65rrrrkuXLl1W+O4nP/lJbr/99pXO/eijj4rPHTt2bPLaAAAAAAAAAACAulvxEVCsF6qrq+s1ftasWcXnjTfeuKnLAQAAAAAAAAAA6kH4az00bdq0nHnmmRkyZEiqqqrqPO+VV14pPvfo0WNNlAYAAAAAAAAAANSR8Nd66C9/+UvGjh2bf/zjH7nnnnvqNGfx4sX505/+VGz36dNnpWMrKiqKz7Nnz254oQAAAAAAAAAAwEoJf62HDjnkkHTs2DFJcsUVV9Rpzi9/+cu8//77SZK2bdumf//+Kx3bpUuX4vPrr7+eK6+8MnPnzk3y8VWTS5cuTWVlZUPLBwAAAAAAAAAAIvy1XmrdunW+9rWvJUn+/ve/57HHHlvl+DFjxuTqq68utr/zne+kVatWKx3/hS98IZ07dy62//d//ze77757evXqlS984QvZcccdc8MNNzTyWwAAAAAAAAAAwPpN+Gs99a1vfSuFQiFJcs0116xwzIIFC/LTn/40o0aNKvb16tUrJ5xwwirXrqioyMiRI1c5pnfv3vWsGAAAAAAAAAAA+DThr/VU9+7di1c3PvHEE8VrGT/tP//zP3PbbbcV2127ds1vf/vbtG7derXrH3bYYfntb3+bfv36rXB8r169GlE9AAAAAAAAAADQotQFUDrf+MY30qNHj3z3u99Nhw4dlnt/+umn5+ijj87ixYuz1VZb5corr8zmm29e5/X322+/7LfffkmSpUuXpqamJklSKBTSsmXLpvkSAAAAAAAAALCeKyvUlLoEoESEvxrg2Wefza233lrqMlbp7LPPTosWq/7xHnDAATnggANW+r5v3775xS9+kQcffDA/+9nP0q5duwbXI+wFAAAAAAAAAABNS/irAaZNm5Zbbrml1GWs0ve///28+OKLSZLZs2cX+ydNmrTCU76S5K233lqu76CDDspBBx20ZooEAAAAAAAAAAAaTPhrHTV9+vQMHz58uf6f/vSn9Vpn9OjR+f3vf9/oerp165bx48c3eh0AAAAAAAAAAOBjwl+sUmVlZRYuXNjodRYtWtQE1QAAAAAAAAAAAJ8Q/mqAr33ta/na175W6jJW6Z133smIESOSJGPHjs14s+jEAAAgAElEQVSMGTOSJMOGDUvbtm1XOOfee+/N5MmTP7caAQAAAAAAAACAhhP+WkdtuummOfHEE5MkkyZNKoa/vv3tb6dLly4rnPPaa68tF/465ZRTcsopp+T555/PEUcckSTZa6+9cuWVV662hl/96lf53e9+lyTZZpttGvxdAAAAAAAAAACA5ZWVugBKZ+nSpXUeu+OOO6ZTp05Jkqeeeirz5s1b7dpjx44ttj8JjgEAAAAAAAAAAE1D+Gs99Je//CXHH398Ro4cWec5ZWVl2WuvvZIklZWVmTBhwirH33nnnfnwww+TJF26dMmAAQMaXC8AAAAAAAAAALA84a/1QFVVVfG5UCjkzjvvzOOPP54JEyYUr4Osi4MOOqj4fM0116x03KJFi/Kb3/ym2D7qqKPSooUb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JK1atcqGG26Yrl27Ztttt80mm2xS4krXblVVVfnnP/+ZadOmZdasWVm0aFGSpHXr1mnfvn023XTT9OjRI926dStxpQAAAAAAAAAAQF2steGvF154ITfddFPuvffeYuBrVbp3755hw4bl61//+grfH3300Xn66adXuUZFRUXat2+fjh07pnfv3tlpp51y8MEHN1mw7NVXX83BBx9cq+9b3/pWzjrrrCZZ/7OqqqrywAMPZNy4cfnzn/+chQsXrnbORhttlC9/+cs58cQT07Nnz+XeT5w4McOGDWtwTW3atMlzzz3X4PkAAAAAAAAAAMDH1rprHz/44IOMGDEihx9+eG6++eY6Bb+SZPr06Xn00UcbtXdlZWU+/PDDvPbaa/nTn/6U888/P1/5ylcyYsSIvP/++41aO0luueWW5frGjRuXJUuWNHrtzxo/fnz233//nHrqqXnggQfqFPxKPv71v+OOO/Lss882eU0AAAAAAAAAAEDTWatO/nr99dfzn//5n5k5c+Zy71q3bp1NN900rVu3zsKFCzNnzpzMnTt3jde0bNmyjBs3Lo899lguu+yy9OvXr0HrVFZW5s4771yuf+7cubn//vtzyCGHNLbUJMns2bPzk5/8JA8//PAK3xcKhWy44YbZaKONUlZWlnnz5uW9995LVVVVk+wPAAAAAAAAAAB8Ptaa8Nf8+fOXC35VVFTk8MMPz9e+9rXssMMOKSurfVDZO++8k7/97W8ZP358Jk6cWK/9hg0blp133rnYrq6uzvz58zNr1qy89NJLeeSRR7J48eLi+zlz5uSkk07K9ddfn169etX7+02cODEffPBBsV0oFFJTU5Pk4xPBmiL89cYbb+Q73/lOZsyYUat/gw02yKGHHpoBAwakf//+2WCDDWq9X7JkSV555ZX8+c9/zr333pu///3vdd5zm222yciRI+s8vry8vM5jAQAAAAAAAACAlVtrwl+/+tWvagW/OnXqlMsvvzw77rjjSudsuummOfDAA3PggQdm+vTpefLJJ+u834477pivfOUrK30/d+7cjBo1KjfeeGOxb/78+Tn77LNz/fXX13mfT3z6ysc2bdpkp512yhNPPJEkeeqppzJ9+vR079693ut+YubMmfn2t7+dd999t1b/4Ycfnu9///vZZJNNVjq3VatW2XHHHbPjjjtm2LBheeqpp1JRUVGnfTt06LDKX0cAAAAAAAAAAGDNKFv9kDVv6dKly12JeOaZZ64y+PVZ3bt3z+GHH95kNXXo0CFnn312vvOd79Tq/+tf/5qnnnqqXmvNmjUrjz32WLHdt2/f7LLLLsV2TU1Nbr311gbXumjRopx44om1gl8VFRW54IILcu65564y+LUie+yxR3bdddcG1wMAAAAAAAAAAKx5a0X46+WXX87cuXOL7VatWmX//fcvYUX/cuqpp6ZLly61+h5++OF6rXHbbbelqqqq2N5///2z33771Rpz++23p7q6ukE1XnDBBZk6dWqxXVZWlssuuyxDhgxp0HoAAAAAAAAAQPNRVvBZFz7QEGtF+Oudd96p1e7QoUNatFg7bqRs3bp19t1331p9L7/8cp3nf/ZUr4qKihx88MHp06dPtt1222L/O++8k0mTJtW7vilTpmTs2LG1+k4++eTss88+9V4LAAAAAAAAAABoPtaK8FdNTU2t9uzZs7NgwYISVbO8rbfeulb7ww8/rPPcp556KtOnTy+299lnn3Tq1ClJMnjw4FpjG3L1429/+9taJ4Ztt912+d73vlfvdQAAAAAAAAAAgOZlrQh/bb755rXay5Yty80331yiapa3wQYb1Gp/Nqy2Krfcckut9qcDX4ceemjKyv71I3jooYfqFSx77733MmHChFp93/3ud2utCQAAAAAAAAAArJvWipTQ9ttvn4022qhW36hRo/LQQw+VqKLaZs+eXavdpUuXOs2bO3du7r///mK7Y8eOGTBgQLHdtWvX/Pu//3uxXVlZmTvvvLPOdU2YMCFVVVW16jr44IPrPB8AAAAAAAAAAGi+1orwV3l5eb797W/X6lu6dGn+67/+K2effXbmzZtXoso+9txzz9Vqb7fddnWad/fdd2fJkiXF9kEHHZSWLVvWGjNkyJBa7c+eFLYqTzzxRK32F7/4xbRo0aLO8wEAAAAAAAAAgOZrrQh/JckJJ5yQ7bffvlZfTU1Nrr/++vzHf/xHrr322ixduvRzr2v69On585//XKvvP/7jP+o099Zbb63V/mzQ65O12rVrV2xPnTo1f/vb3+q0/ksvvVSrvfvuu9dpHgAAAAAAAAAA0PytNcdEtWzZMldccUW+853vZMqUKbXezZ49O+ecc06uuOKKDBs2LIcddlgqKirWeE1LlizJj3/841RWVhb7+vbtm9122221c//+979n8uTJxfZWW22VnXfeeblxrVu3zgEHHFArKHbLLbescOynVVZW5u23367V17Nnz9XW1dTmzp2biRMn1nn8gAEDUigU1mBFAAAAAAAAAACwflhrwl9JstFGG2Xs2LE599xzc/PNNy/3/u23385ZZ52VMWPGZPjw4Rk6dGjKytbM4WUvv/xyzjjjjFoBroqKipx11ll1Ci999vrGQw89dKVjhw4dWiv89ac//Smnn3562rRps9I5H374Yaqrq2v1dezYcbV1NbWpU6dm2LBhdR4/efJkV1MCAAAAAAAAAEATWOtSOK1bt865556bQYMG5ec//3leffXV5cbMnDkzp59+em644YacffbZ2WGHHeq9z4svvpjy8vJiu7KyMvPmzcurr76av/zlL3nhhRdqjS8vL89FF12UPn36rHbtJUuW5O677y62C4VCBg8evNLx/fr1y+abb54ZM2YkSRYsWJB77rknhx122ErnLFiwYLm+DTfccLW1AQAAAAAAAADrljVzbA7QHKx14a9PfOlLX8rdd9+d22+/PZdddlneeuut5ca8+OKLOfLIIzNy5Mgcd9xx9Vp/9OjRdR7buXPnnHfeefnKV75Sp/EPPPBAPvroo2J7t912y+abb77S8Z+Ewy677LJi3y233LLK8Neng2ufWLZsWZ3qAwAAAAAAAAAAmr+1NvyVfBxw+vrXv55DDz00t912W0aPHp2333671pjKysqcf/75mTFjRs4444wm3b9Vq1YZPHhwTjvttGy00UZ1nvfZKx+HDBmy2jlDhgypFf569tln89prr2Xrrbde4fgVXfE4Z86c/Nu//Vud62wKu+66a2644YbPdU8AAAAAAAAAAKCZnPzXsmXLfOMb38j999+fn/70pysMPl1zzTW58sorG7xHeXl5OnXqlK233jqDBg3Kz372szz88MM555xz6hX8mj59ep588sliu1WrVjnwwANXO2+LLbbIbrvtVqvvsyGyT+vQocNyp3998MEHda4TAAAAAAAAAABo3tbqk78+q2XLljnuuOMyePDgnHXWWbnvvvtqvb/44otz4IEH1un0q8suuywDBw5s8hpvu+221NTUFNtLlixJv379GrTWnXfemR/+8Idp0WL5H1OhUEjXrl1rXYf5/PPPZ++9927QXgAAAAAAAAAAQPPSLE7++qxOnTrlN7/5TY455pha/ZWVlbn22mtLVFVSXV2d22+/vcnWe//99/Pwww+v9P1nTwp7+umnm2xvAAAAAAAAAABg7dYsw1+f+OlPf5revXvX6ps0aVKJqkkee+yxvP3220265qquftxjjz1qtZ999tnMnDmzSfcHAAAAAAAAAADWTs3q2sfPKisryxFHHJGf//znxb5Shp8+G9Q6/PDDs99++9VrjTfffDPnnXdesf3oo49m1qxZ6dq163Jj995771RUVKSysjJJsmzZsvzxj3/M//t//68B1QMAAAAAAAAAAM1Jsw5/JUn37t1rtQuFQknq+PDDD/PQQw/V6vvud7+bLbfcsl7r1NTU5Oqrry6G2KqqqnLHHXfkpJNOWm5s165dc8ghh+S2224r9o0dOzaHHXbYcieiAQAAAAAAAAAA65Zmfe1jksyZM6dWu0uXLiWp46677iqewJUkffr0qXfwK/k4vHbIIYfU6rv11ltXOv673/1uysr+9WNcsmRJTj311MyfP7/eewMAAAAAAAAAzU+h4LMufKAh1orw1wsvvJA333yzQXMffPDBWu3ddtutKUqqt89e+fjZAFd9DBkypFb7jTfeyNNPP73CsVtvvXVOPPHEWn3Tpk3LMccck/fee6/BNQAAAAAAAAAAAGu3tSL8NXXq1AwePDijR49e7iSvVRk3blzuvffeWn2NCV011PPPP59//vOfxXZZWVkOOuigBq/Xo0eP7LLLLrX6Phsu+7RTTz01/fv3r9U3efLkHHHEEZkwYUK99l60aFEuv/zy3H///fWaBwAAAAAAAAAAfL5alLqATyxcuDAXX3xxfve73+XAAw/Ml7/85eyxxx7LXeNYWVmZ559/PjfeeGPGjRtX690BBxywXAjq8/DZYFa/fv3StWvXRq05ePDgPPfcc8X2fffdl//5n/9J+/btlxtbVlaWX/7ylzn22GPzyiuvFPvfeuutDB8+PLvssksGDx6cffbZJ926dVtu/ttvv53JkyfnwQcfzIQJEzJ37tyce+65dapz7ty5mThxYr2+26abbpovfOEL9ZoDAAAAAAAAAADUttaEvz6xePHi3HHHHbnjjjuSJO3bt89GG22U1q1bZ8GCBXnnnXdSWVm53Lxddtkl55xzzuddbhYuXJjx48fX6hs0aFCj1z344INz3nnnZenSpUk+/nUZN25cvvnNb65wfOfOnXPttddm5MiRefTRR2u9e+6554pBsjZt2mTjjTdOmzZtMn/+/MyZMyfz589vcJ1Tp07NsGHD6jXnkEMOyUUXXdTgPQEAAAAAAAAAgLXk2sdWrVqt9N28efMybdq0TJkyJdOnT18u+FVeXp6jjjoqV111VTbccMM1Xepy7r333ixYsKDYrqioyAEHHNDodTfccMPsu+++tfpWdfXjJ3PGjBmTc845J507d17hmIULF+bNN9/MlClTMmPGjJUGv1q3bt2wwgEAAAAAAAAAgM/FWnHy11e/+tV06dIl48ePz5NPPplp06atds4mm2ySgw46KEcccUS22WabNV/kSnw2kLXnnnumY8eOTbL20KFDc++99xbbL730UqZMmZLevXuvdE6hUMgRRxyRQw89NHfddVfuvvvu/PWvf01VVdUq9yoUCtl2223z7//+7xk6dOgq9wAAAAAAAAAAAEqvUFNTU1PqIj5r/vz5ee211zJt2rTMnj07CxYsSKtWrdKuXbtssskm6d27dzbbbLNSl9lsLFy4MC+//HKmT5+eDz/8MIsXL05FRUU22GCDdOzYMd27d0+PHj1KcnLa2u2VUhcAAADwuajJqv+HoeagkPJSlwDAWqYma91/+q63Dbe+oNQlNNrc135S6hIAgJXartQF0ISefm98qUugCXyxy1dLXQLN0Fpx8tdntWvXLn379k3fvn1LXco6oU2bNunXr1/69etX6lIAAAAAAAAAAIAmslaGvwAAAAAAAAAAqJtCqQsASqas1AUAAAAAAAAAAABQf8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMtSh1AQAAAAAAAAAANFyhUOoKgFJx8hcAAAAAAAAAAEAz5OQvAAAAWM8VUl7qEgCgyRXS/I8+mPvaT0pdAuuIpdXzSl1Co/XZ6y+lLqHRnnv0C6UuodHatNik1CU0Wk1NTalLaLSygr/iBQD+xclfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzVCLUhcAAAAAAAAAAEDDOfkH1l/+/AMAAAAAAAAAADRDwl8AAAAAAAAAAADNkPAXAAAAAAAAAABAMyT8BQAAAAAAAAAA0Ay1KHUB64PFixendevWJZu/InPmzEl5eXnat2/foLkffPBBkqRTp07p3Llzk9YGAAAAAAAAAACsnpO/1rD7778/AwcOzHXXXdeg+U899VT22WefXH755Vm8eHGT1XXDDTekf//+OeGEE3LPPffUa+5NN92Ugw8+OAcffHCuuuqqJqsJAAAAAAAAAACoO+GvNejmm2/OKaeckvfeey/nnntuJkyYUK/5lZWV+fnPf545c+bkoosuyv777585c+Y0SW2PPPJIKisrM2nSpDz77LNNsiYAAAAAAAAAAPD5Ef5agwYPHpwddtghSVJdXZ0RI0bkhRdeqPP8P/7xj5k6dWqxPXTo0HTs2LHRdX344Yd5/vnni+399tuv0WsCAAAAAAAAAACfL+GvNahly5b59a9/nQ4dOiRJFi9enNNOO61Op3fNnDkzv/3tb4vtfv365fvf/36T1PXoo4+muro6SbLhhhumX79+TbIuAAAAAAAAAPD5KxRqfNaBDzSE8Nca1r1795x//vnF9syZM/OjH/0oNTWr/kN7xhlnZOHChUmSTp065Ze//GXKy8ubpKZHHnmk+LzPPvukRYsWTbIuAAAAAAAAAADw+RH++hwMHDgwRx55ZLHduXPnLF68eKXjb7755jz++ONJkkKhkAsuuCBdu3ZtkloWL16cSZMmFdv77rtvk6wLAAAAAAAAAAB8vhz59Dk5/fTT8/bbb+fYY4/NXnvttdJxs2bNygUXXFBsH3/88dlnn32arI777rsv8+bNS5K0adMme++9d5OtDQAAAAAAAAAAfH6Ev5rIW2+9la9+9aurHffMM8+s8v2yZcuydOnSYvuGG27IjTfeuNLxu+22W6644oo613nrrbcWnwcOHJi2bdvWeS4AAAAAAAAAALD2EP5qItXV1Vm4cGGTr7to0aJVvl+yZEmd15o+fXqefvrpYnvIkCENrgsAAAAAAAAAACgt4a/1yG233ZaampokSdeuXdO/f/8kSa9evRq85uWXX57LL7+8XnO+973v5ZRTTmnwngAAAAAAAAAAgPDXGvPggw9m8803XyNrX3LJJbn00kvrNWfZsmW5/fbbi+1DDjkkZWVlTV0aAAAAAAAAAADwORH+Wk/cddddefvtt4vtT079SpI2bdqsdn5lZWUqKyuTJIVCoXiC2KdtsMEGKRQKq12roqKiLiUDAAAAAAAAAACrIPy1Hqiurs7vf//7Wn2fPvXrueeeW+0aP/rRj3LnnXcmSfbcc8889thjSZIePXrk9ddfT5Kcd955Ofjgg5uqbAAAAAAAAACgDlZ/TAuwrnLv33rgnnvuybRp0xo8f/HixZkwYUKSpEOHDtltt92K7/r37188yeuee+5pVJ0AAAAAAAAAAEDdCX+t42pqajJ69OhGrfHQQw9lwYIFSZK99947LVr868C4tm3bZtddd02SPPLII5k/f36j9gIAAAAAAAAAAOpG+Gsdd9999+WVV15p1Bo33XRT8Xm//fZb7v2AAQOSJEuWLMmf/vSnRu0FAAAAAAAAAADUjfDXOmzRokW54IILGrXGa6+9lieeeCJJ0r59+xWGvw466KAUCh/fIHzDDTc0aj8AAAAAAAAAAKBuhL/WYaNHj85bb72VJGnRokU222yzeq9x/fXXF58POuigtGrVarkxm222WXbbbbckycsvv5y//e1vDawYAAAAAAAAAACoK+GvddQbb7yRq666qtg++uij071793qt8cEHH+SWW24ptocOHbrSsYccckjxecyYMfXaBwAAAAAAAAAAqL8WpS5gXTVo0KDiVYhNrbKycrVjzjnnnCxdujRJ0qVLl3zve9/LySefXK99rrrqqixatChJsuOOO2bXXXdd6dhBgwblggsuyMKFC/PQQw9lypQp6d27d732AwAAAAAAAAAA6k74aw35JDRVKjNmzCg+//jHP067du3qNf/999+vdeXjcccdt8rx7dq1y9ChQ3PdddelpqYmv/rVrzJ69Oh67QkAAAAAAAAAANSdax/XUUcccUSSZN999611JWNdXXzxxVm4cGGSpFu3bjnwwANXO+eoo44qnnY2ceLETJo0qd77Av3z+GoAACAASURBVAAAAAAAAAD1Uyj4rAsfaAgnf60hDz74YDbffPPVjquqqkp5eXm91r7kkkty6aWXrnLMkCFD8oc//CHnnHNOvdZOkr///e+57bbbiu3hw4enRYvV/1bp2bNn9t9//9x3331JknPPPTd33313WrZsWe8aAAAAAAAAAACAVXPyVxNp2bJldtppp+KnLoGnSZMmZf/9988999xTr7023XTT4j49e/Zc4ZjOnTvn+uuvz8Ybb1yvtauqqnLGGWekuro6SbL11ltn6NChdZ5/6qmnpqzs499W06ZNy6hRo+q1PwAAAAAAAAAAUDdO/moim2yySW666aY6j7/++utz9tlnJ0l+9KMfpXPnztljjz3qNPfwww/P4Ycfvtpx3bt3r3M9n7jyyivz0ksvFdsjRoyo18lkPXv2zODBg3P77bcnSa6++ursvffe2XPPPetdCwAAAAAAAAAAsHJO/moCL730Uh5//PEsW7ZsuXdPPfVU8bNw4cJi/6GHHpoePXokSZYuXZrhw4dnypQpdd7z6quvzl133dX44j/lpZdeyiWXXFJs77fffhk4cGC91xk5cmQ6dOiQJKmpqckPf/jDvPHGG01WJwAAAAAAAAAAIPzVJC677LIcf/zx2XPPPfPHP/6x1rtjjjmm+JkxY0axv127drnsssvSrl27JMm8efPyX//1X5k9e/Yq91q0aFF++MMf5rzzzsvpp5+ep556qkm+w9y5c3Pqqadm6dKlSZI2bdrkzDPPbNBaG2+8cUaMGFFsz5kzJyeeeOJqvxsAAAAAAAAAAFB3wl+N9OGHH2bSpElJPg45dezYsc5ze/bsmQsvvDCFQiFJMnPmzPz3f/93qqurVzqnvLw806ZNS5JUVlbmlFNOyauvvtrwL5CkqqoqI0aMqBVOO/PMM7Pppps2eM0jjzwye+21V7E9bdq0HHvssfnggw8aVSsAAAAAAAAAAPAx4a9GGj9+fCorK5N8fFrW/vvvX6/5++67b4455phie9KkSbnssstWOr5ly5a55JJLiiGzjz76KCeeeGKjQlU/+9nP8uijjxbbgwcPztChQxu8XpIUCoVceOGFtQJk//jHP3LUUUdl+vTpjVobAAAAAAAAAAAQ/mq0O+64o/g8cODAtGnTpt5rjBw5Mr169Sq2J0+enKqqqmJ75syZ+d73vpdJkyaluro6//Zv/5ZRo0alrOzjH9+MGTMybNiwLFmypN57X3zxxbnpppuK7V69euWss85Kklx55ZXp1avXcp9Ro0YVx19++eUrHHPxxRenc+fOueSSS2r9mrz++us57LDD8vDDD9e7VgAAAAAAAAAA4F+Evxrh1VdfzUsvvVRsDxkypEHrtGzZMr/85S/TsWPHnHXWWRk9enTKy8uL72fMmJEHHnggJ5xwQgYOHJiamprstddeOeWUU4pjXnjhhZx55pn12veiiy7K6NGji+2uXbtmzJgxadu2bYO+x4r07ds3l156aSoqKop9H330USZPntxkewAAAAAAAADA+qzgs058oCGEvxrhmmuuKT537do1/fv3b/Ba22yzTSZOnJhvfetby7178803i89t27ZNofDxH/mTTz45AwYMKL6744478oc//KFO+y1dujSPP/54sd2hQ4eMGTOm1jWNFRUVadOmzXKfTwe5VjamZcuWxTF77rlnLr300mywwQZJkgMPPDDDhw+vU50AAAAAAAAAAMCKtSh1Ac3V7Nmza135+M1vfrN4DWNDrezKyKlTpxafd9hhh+JzoVDI+eefnyFDhmTWrFlJkgsvvDDbbrtt9tprr1Xu1bJly4wZMyZHHHFEFixYkD/84Q/p3bt3rTHHHHNMjjnmmOXmjhkzpnj143HHHZeRI0eu9rsNGDAg1157bUaNGpXzzz9/teMBAAAAAAAAAIBVc/JXA914441ZtGhRkqRVq1Y58sgjVzjuk1O6ko+vO2yIv/3tb8XnnXfeuda7zp0758ILLywGz6qqqnLRRRelpqZmtetuvPHGGT16dK655ppsv/32DaqtPvr06ZM//OEPKw25AQAAAAAAAAAAdSf81QBLly7NddddV2wPHjw4nTt3XuHYDh06FJ+ff/75eu/12muv1Zr3pS99abkxe+yxR04++eTi81VXXVUrdLYq2223Xbbbbrt61wUAAAAAAAAAAJSWax8b4Lnnnsvs2bOL7WOPPXalY7fddts888wzSZLLL78822+/ffr371+ncNarr76aH/zgB8VTvHr16pWtttpqhWOHDx+ejTbaKEceeWRatPBjBQAAAAAAAACAdZ2UUAPssccemTBhQq655pq89dZb2WabbVY69pBDDimGv+bMmZPjjz8+bdq0SadOnVa5x8KFC2sFzJLk+9///krHl5eX56ijjqrHtwAAAAAAAAAAAJoz4a8G2myzzfKjH/1oteMOP/zwPPTQQ3nkkUeKfQsXLszChQvrtd/JJ5+cgQMH1rtOAAAAAAAAAABg3ST8tYaVl5fnd7/7XW688cbcfffdmTp1aubPn1+8ynFlKioq0rVr1+ywww755je/mf79+39OFQMAAAAAAAAAAM2B8Nfn4JMrGUt9LWNFRUVatmyZJCkrKytpLQAAAAAAAABA0ygrlLoCoFQKNas7ggrWW6+UugAAAAAAAGi0pdXzSl1Co/XZ6y+lLqHRnnv0C6UuodHatNik1CU02rrwV6NlBed70FS2K3UBNKGXZo8rdQk0gT6dBpW6BJohxz8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzVCLUhcAAAAAAADAmtWyrH2pS2i0+XNnlrqERvpCCuvAX80VUl7qEhqlJstSVmj+PwcAgE/4NxsAAAAAAIB1mODX2kHwa+0g+AWsqwqlLgAoGdc+AgAAAAAAAAAANEPCXwAAAAAAAAAAAM2Q8BcAAAAAAAAAAEAzJPwFAAAAAAAAAADQDAl/AQAAAAAAAAAANEMtSl0AAAAAAAAAAACwbnj33XfzwgsvZMaMGVm4cGFat26dzTbbLH369En37t1LXV6SpKqqKm+88Ub++c9/5v3338+8efPSsmXLbLjhhtlss83St2/ftGvXrtRl1onwFwAAAAAAAAAA0CgPPfRQLr/88jz33HOpqalZ4ZjevXvn+OOPz+DBg1MoFD7X+qZOnZqJEyfmySefzF//+tcsWrRopWPLysrSp8//Z+/O470e8//xP8+WlpP2jLKWUUQUhZEljS37FhlDMSWTStqtoSkZQvXNUmTPEmJIiG5Mw6AhRkOWLJW0mMJp75zz+8Nv3h/vOtU573NO707d77fbud3e1/V+XdfrcWZOf3ncrmu/OP/88+Okk06KSpUqbcGkJZNRuLH/tWG791m6AwAAAAAAABHRYL+H0x2h1L6YeUK6I5Ra1ex66Y4AlKm90x2AMvSfZS+kOwJlYN+aJ6c7QkqWL18egwYNipdffrnYa1q3bh2333571K1btxyT/eL555+PsWPHxmefpdYD2W233eKWW26JFi1alHGyspGZ7gAAAAAAAAAAAEDFs3z58ujcuXOJil8REe+++26cf/75sXjx4nJK9n+mTZuWcvErIuLbb7+NP/zhD/H888+XYaqy49rHNHv88cfjyy+/jIiIU045JZo3b57mRP9nzZo1KR1bt27dusjO9qcFAAAAAAAAALAtu+qqq+LDDz9MmmvQoEF06tQpDjvssPjNb34Tixcvjvfffz/Gjx+f6MhERHzzzTfRo0ePeOSRR7Z4z+SAAw6IQw89NFq1ahUNGzaMOnXqRH5+fixYsCDefvvtePTRR+O7775LPJ+fnx+DBg2K2rVrR5s2bbZo1s3R0EmzV199NaZPnx4REfvss0+5lb8effTROOigg6Jp06bFen7u3LnRq1evOProo6Nnz54lelfPnj2jRo0a0a9fv6hdu3YqcQEAAAAAAAAA2Iq9/vrrMWXKlKS51q1bx5gxY6J69eqJuR133DEaN24cp512WvTr1y9pzQcffBCPP/54XHDBBeWet2bNmnHWWWfFOeecE3vuuWeRz9SuXTuaNWsWF154YQwZMiSeeOKJxHfr1q2L66+/PiZPnhw77LBDuectLtc+buPy8/PjhhtuiBtvvDE6deoUn3/++WbXzJ49O84444yYNWtW/L//9//iySefLPb7pk+fHq+99lo888wzceKJJ8aLL75YmvgAAAAAAAAAAGxlCgsL484770yaa9CgQdx1111Jxa9fq1SpUowYMSKaNWuWNH/33XfHypUryy1r1apVo1u3bjF16tTo37//Rotfv1apUqW48cYb4/TTT0+anzdvXjz99NPlFTUlyl/buFmzZsVTTz0VERFLly6NTp06xZw5cza5Zq+99op99903Mb7hhhvi73//+2bftXbt2hg6dGhi/NNPP0WdOnVSTA4AAAAAAAAAwNbotddei08//TRp7uqrr47c3NxNrsvKyoohQ4YkzS1evLhEBxOV1I033hi9e/feaCltU6666qrYcccdk+Zee+21sopWJpS/tnHNmzeP4cOHR0ZGRkRELFmyJC666KKYO3fuRtdkZWXFHXfcETvvvHNE/HJsXa9evTZ7atj6d7N26dIlDj300DL4LQAAAAAAAAAA2Fq89NJLSeOGDRtGu3btirV23333jYMOOihpbv3rI8tSVlZWymtr1KgRxxxzTNLc+++/X9pIZUr5aztw0kknRZ8+fRLjRYsWxcUXXxxLlizZ6JratWvHqFGjolKlShERsXz58vjzn/8cP/74Y5HPz5s3L8aMGZMYt2jRInr27FlGvwEAAAAAAAAAAFuDtWvXxhtvvJE0d9pppyUOJiqOM844I2k8c+bM+OGHH8okX1lr2rRp0njFihWRl5eXpjQbUv7aTnTp0iU6dOiQGH/77bfxpz/9aZN/jPvvv38MGDAgac21115b5LODBw9O3L9as2bNuO222yI7O7uM0gMAAAAAAAAAsDWYOXNm/Pzzz0lzrVu3LtEehxxySNK4oKAg/v73v5c6W3nYYYcdNpj7X0dma6CdU0oTJkyIwYMHl8legwYNikGDBqW8fsiQIXHOOeds9Pvrrrsu5syZEzNmzIiIiE8++SQuu+yyGDduXJF/qBERF1xwQbz99tsxderU2HvvvaN79+4bPDNp0qTEP8CMjIwYNmxYNGzYMOXfAwAAAAAAAAAovuKftwSlN3v27KRxVlZWHHDAASXaY7fddou6desm3Vq3/r5biwULFiSNMzIyolatWmlKsyEnf21HcnJyYtSoUfGb3/wmMbf33ntv9oSuoUOHRvfu3ePpp5+OJk2aJH23cOHCGDp0aGLcpUuXDe46BQAAAAAAAABg2zBnzpyk8c477xxVq1Yt8T6NGjVKGn/11VelylVe3nvvvaRxgwYNtqrb8LaeJBVUtWrVSnXK1ZIlS2L16tUR8ct1idWqVStVls2pXbt2jBo1Ki688MLo06dP/PGPf0x8N3/+/KTx+iZNmrTB3PLly+PHH39MjJ9//vl48cUXi1w/ZcqUqFSp0mYzAgAAAAAAAACwdfryyy+Txg0aNEhpn5133jlpvH6pbGvw1VdfxQcffJA0d+SRR6YpTdGUv0rp1FNPjVNPPTXl9ZdccklMnz49IiIGDBgQZ555ZllF26jmzZvHq6++GvXq1UuaX7duXcyfP79Ue3///fcb/a6wsLBUewMAAAAAAAAAkF6LFi1KGv/6BrqSWL/8tXDhwpQzlZdRo0ZtMNe+ffs0JNk45a9y8P7778dTTz0VN9xwQ5mfdPX+++/HLbfcEn/9619j1113TXmf9YtfAAAAAAAAAACkT15eXixfvrxc31GtWrXIzc0t1R4rVqxIGqe63/rrVq1aFQUFBZGZmZlytrI0bdq0DW6/a9WqVbRu3TpNiYqm/FXGHnroobjlllti7dq1sXTp0hg5cmSZFcAWLVoUvXr1ikWLFsXpp58eN954Y5x00kllsvf66tatG//4xz9Ktcfq1aujefPmZZQIAAAAAAAAAGDbNX78+Bg9enS5vuPyyy+PHj16lGqP9ctflStXTmmfotatWLGi1OW0srBw4cIYNGhQ0lxOTk5cc801aUq0cVtHVW4b8sMPP8TatWsj4pcGYM+ePWPNmjWl3nfVqlVx2WWXJY7Oy8vLixkzZpR6XwAAAAAAAAAAKK6VK1cmjVM9FKmo8ld5n3xWHKtXr47u3bvH0qVLk+Z79OgRTZs2TVOqjVP+KmO9e/eO008/PTGeNm1a9OvXLwoLC1PeMz8/P3r37h0ff/xxYu6kk06Ka6+9tlRZAQAAAAAAAACAXxQUFES/fv3i3//+d9L8kUceGV27dk1Tqk1z7WM5GDJkSCxYsCDeeeediIiYMmVKDBs2LK666qqU9rvuuuvi9ddfT4zbtGkTw4cP3+Qdpx07doz3339/o9/Pnj07pSwAAAAAAAAAAGy/qlSpkrgVLyJSvhFv1apVG8xVq1Yt5Vxl4aabboqXX345aa5p06Zx++23R0ZGRppSbZqTv8pBTk5OjB49OvbYY4/E3IMPPhgPPPBAifcaOnRoTJw4MTFu2bJljBo1KnJycsogKQAAAAAAAABQ0WX42SZ+KoqqVasmjYsqcRVHUevW33tLuvPOO+Oxxx5Lmtttt91i3LhxkZubm6ZUm+fkr3Ky4447xl133RXnnntu/PTTTxERSdc2FsfkyZPjwQcfTIwPPvjguPfee4v1h56dnR1ZWVlJc/n5+SV6PwAAAAAAAAAAW0bnzp2jQ4cO5fqOsjhZa/3eSl5eXkr7rL+ucuXKm7wFrzyNHz8+xowZkzRXv379uP/++6NevXppyVRcyl/lqFGjRnHLLbdEjx49ok+fPtG5c+cSrT/xxBNj9uzZcffdd0erVq2KXfyKiHj44YeTxvPmzYt27dqV6P0AAAAAAAAAAGwZubm5W/UJU/9Tv379mDNnTmL8/fffp7TP+uvq169fqlypevLJJ+Pmm29OmqtVq1aMHz8+dt1117RkKgnlr3LWtm3beOWVV6JBgwYlXpuRkRG9e/eOli1bRqtWrdJ6tB0AAAAAAAAAADRq1Cj++c9/JsbfffddSvusv65x48alypWKF154Ia6//vqkudzc3Bg3blzstddeWzxPKpS/UtSlS5f48ssvS73PkiVLEp+HDx8eo0ePLvWeF154YXTq1KnU+wAAAAAAAAAAwK+tX9L6/vvvY8WKFSU+1Oirr75KGu+5556lzlYSU6dOjQEDBkRBQUFirkqVKnHPPffEfvvtt0WzlIbyV4oWLVoU8+fPL9M9ly1bFsuWLSv1Pj///HMZpAEAAAAAAAAAgGRNmjRJGq9bty4++uijOPTQQ4u9x7fffhuLFy/e5L7lafr06dG7d+9Yt25dYi4nJydGjx4dBx988BbLURaUvyjSkiVLtug/KgAAAAAAAAAAtn4HHnhgVK9ePelwonfffbdE5a933303aZyZmRlHHHFEmWXclBkzZsTll18ea9asScxlZ2fH7bffHm3atNkiGcqS8leKnnvuuVKtf+WVV6Jv376xevXqpPkTTjghRowYEVlZWaXaHwAAAAAAAAAAylpOTk4cddRR8cILLyTmnnvuuejRo0dkZGQUa49JkyYljQ888MCoU6dOmeYsyscffxyXXnpprFy5MjGXmZkZw4YNi2OPPbbc318eMtMdYHv02GOPRa9evTYofkVETJkyJQYNGpR0n2g6ZGZmRsOGDaNhw4ZRr169xHxOTk5i/n8/vy6q1atXLzHfoEGDdEQHAAAAAAAAAKAcnXjiiUnjefPmxeuvv16stZ9++mm89957SXMnnHBCmWXbmC+++CL+9Kc/RV5eXtL84MGD49RTTy3395cXJ39tYXfccUfcddddERGx0047Rc2aNWP27NkREbHbbrvFt99+G88991ysXr06/vrXv0alSpW2WLbMzMyoXr16RETUqVMnXn755YiIeP/996Njx44REbHXXntt0L485phjYv78+RERMXr06DjwwAMjImLNmjXxu9/9LvFccdudAAAAAAAAAEDxZfrP8Wxh7dq1iyZNmiQ6LxERf/nLX+LQQw+NatWqbXRdfn5+XH311Ulz9erViw4dOhTrvU2aNEkat27dOh5++OHNrps7d2507tw5li5dmjQ/aNCgOPfcc4v17q2Vk7+2kNWrV8egQYMSxa8dd9wxxo0bl3SqVteuXeOoo46KiF9OALvkkkti2bJlWyzjrrvuGjNmzIgZM2Ykil8RkXRHa25ubrH3q1SpUmK/GTNmbNEiGwAAAAAAAAAA5SMjIyOuuOKKpLn58+fHZZddtsHJWv+zZs2a6Nu3b3z88cdJ8926dYsqVaqUW9aFCxdGp06dYtGiRUnzvXr1ik6dOpXbe7cUJ39tAV9//XX06tUrPv3004iIqF69etx3332x9957Jz2XlZUVI0aMiM6dO8dHH30U7777bpx55pkxevTo2HfffdMRPSJSL38BAAAAAAAAALBtOuaYY+L4449POmDonXfeiVNPPTU6d+4chx12WNSvXz+WLFkS77//fowfPz6++OKLpD1atGgR5513Xrnm7NWrV8ybNy9prl69erFixYq49dZbU9rzhBNOiP32268s4pWa8lc5e+mll+Kaa65JtBpr1qwZ48aNi/3337/I53Nzc2PcuHHRqVOn+M9//hPz58+Pjh07Rt++feOCCy4ot6sT165dG//85z/jiCOO2OC7b7/9NvH51yeVAQAAAAAAAACw/Ro6dGgsWLAgPvroo8Tc/PnzY8iQIZtdu9tuu8XIkSMjO7t860vrn/gVEbF48eIYO3Zsyns2atRoqyl/ufaxnKxcuTJuuummuOKKKxLFrwYNGsRjjz220eLX/9SoUSMeeOCBOOiggyIiYtWqVTFkyJC4+OKLN2giloW8vLzo0qVLPPHEE0V+/9VXXyU+77HHHmX+fgAAAAAAAAAAKp7c3NwYP358HHvssSVad/DBB8eECROifv365ZRs+6H8VQ7eeuutOOWUU+KRRx5JzDVr1iwef/zxaNy4cbH2qFGjRtx///1J/zjeeuutOOmkk+Luu++ONWvWlEnWRYsWxR/+8Id4++23Y/78+UU+8+t2ZmnKX5MmTUraCwAAAAAAAACAii03NzdGjx4dY8aMiRYtWmzy2SZNmsTNN98cjzzySNStW3cLJdy2ufaxDC1btiyGDx8ezzzzTNL8ySefHH/5y1+icuXKJdqvcuXKMWrUqBgzZkyMHj06CgoKYtWqVXH77bfHxIkTo2fPnnHyySdHZmZqHb5PP/00unXrFgsWLIiIiG+++WaDZ+bMmRNff/11RERkZmZu9h/ppkyZMiWmTZsWTZo0iR49epS49QkAAAAAAAAAwNapXbt20a5du1i4cGF8+OGHMX/+/FixYkVUrlw5dt5559h///1j1113LdU7Zs+eXeI1r7/+eqneubVT/ioDhYWF8be//S1uvvnm+OGHHxLzOTk5MWDAgPjjH/+Y8t4ZGRnRvXv3OPDAA2PAgAGxePHiiIiYO3du9OvXL8aOHRtdu3aNE088sUR3oL7xxhvRu3fvWL58eUT8UjQr6r7VJ598MvF5n332idq1a6f8u6xYsSIifvmH+NFHHyl/AQAAAAAAAABsY3baaac47rjj0h1ju+Hax1J6++2346yzzop+/folFb/22GOPmDBhQqmKX792+OGHx9/+9rc4/vjjk+Y/++yz6Nu3bxx33HExfvz4WLp0aZHr8/LyksaXXXZZovhVr169ePjhh6N9+/ZJz8ydOzcmTJiQGJ988sml+h1+/vnnxOcGDRqUai8AAAAAAAAAANjeKX+laPbs2dGlS5fo1KlTzJo1K+m7jh07xqRJk2L//fcv03fWqlUrRo4cGXfffXc0bNgw6bv58+fHzTffHEceeWT0798/1q5dm/T9559/njTOz8+PiIhmzZrFxIkTo3nz5knfr1q1Knr27BmrVq2KiF/uZ+3QoUOp8v+6HKf8BQAAAAAAAABlI8PPNvEDqXDtYwpmzpwZHTt2jIKCgqT53XbbLW688cY47LDDyvX9bdu2jUMPPTTuv//+uO+++xIneEVErFmzJho1ahQ5OTlJayZNmrTBPscff3wMHz48qlSpkjSfl5cXvXr1iv/85z+Jue7du0dubu5msxUWFhY5v27duliyZElivH55DQAAAAAAAAAAKBknf6XgwAMPjI4dOybGOTk50bVr1/jb3/5W7sWv/6lSpUp07949Xn311bjwwgujcuXKERHRpk2buPTSS5Oe/eSTT2L69OlJc926dYs777xzg+LX559/Huedd17S80cddVR06tRpo1l+XTRbsGBBkc988sknidPGIpz8BQAAAAAAAAAApaX8laJBgwZF8+bN44gjjojnn38++vTpkyhgbUl16tSJq6++OqZNmxZ//vOfY9iwYZGRkXwY4D777BPdunWLiIiMjIy48cYbo3fv3knPLV++PG655ZY444wzkq6IbNWqVdxxxx2RmbnxP5Wddtop8fnee++Nr7/+Oun7hQsXxl//+tfEuGHDhlG1atWUfl8AAAAAAAAAAOAXrn1MUU5OTjz00EMbnJyVLrVr145evXpt9PvevXvHd999F02aNIlzzz03Mf/999/Hww8/HE8++WT89NNPSWtOPvnkGDp0aOywww6bfPdRRx0V77zzTkT8csLX8ccfv8nnjznmmM39OgAAAAAAAAAAwGYof5XC1lL8Kq5hw4ZFdnby/+WPPPJIjBs3LmkuNzc3Bg4cGOecc06x9j3//PPjxRdfjFmzZm322YYNG8bll19e/NAAAAAAAAAAAECRlL+2I+sXvyIievbsGdOnT49PPvkkMjIyXSlwawAAIABJREFU4tRTT40+ffokXeW4OVWqVIlHH300Hn300XjzzTdj8eLFsW7dusT3mZmZsdNOO0XLli2jc+fOUaNGjTL5fQAAAAAAAAAAYHuWUVhYWJjuEKTXF198EXfddVd07do1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hw6N8847L4YNGxbHHXdckc9NnTo1OnToEB06dIgpU6ZEQUFBiX6PiF+umBw1alS0a9cu3nvvvRKvBwAAAAAAAAAASs61jyn4+OOPk65sHDBgQMyZM2ez6+rXrx99+vSJiIjGjRuXOsdZZ50VhxxySERE1KhRo8hnbrjhhk3ucdddd0VExIcffhgDBw6Mgw46KOrVq1eiHL17945XXnklIiL69+8fzz33XOy4444l2gMAAAAAAAAAACgZ5a8ULFiwIHFCVtu2beN3v/tdscpfderUia5du5ZZjvbt25dq/RtvvBGzZs1KjM8///wSF78iIs4999xE+eu7776L66+/Pm6//fZSZQMAAAAAAAAAADbNtY8pOProo6Nu3bpRrVq1uP7669MdJ2V333134nO1atWSrpssiTZt2kSHDh0S48mTJyedjAYAAAAAAAAAAJQ9J3+lICcnJ0477bRo0KBB7Lzzzpt9fvjw4XH//fen9K7BgwfH4MGDS/R8x44dN/vctGnT4v3330+ML7rooqhVq1YqESPil6svp0+fHt99911ERAwZMiRat24dDRs2THlPAAAAAAAAAABg45z8laJLLrkkzj///HTHSMnatWtj+PDhiXGNGjXi4osvLtWeubm5MWTIkMQ4Ly8vBg4cGIWFhaXaFwAAAAAAAAAAKJqTv1JUp06dlNa1bNkydt99900+M2vWrPjss88iIuLAAw+MPffcs9jPF8ejjz4aX331VWLco0ePqF69erHXb8zhhx8eHTp0iCeffDIiIt5999148MEHo1OnTqXeGwAAAAAAAAAASKb8tYWdc845ceaZZ27ymVtvvTVR5jr99NM3e43jr5/fnKVLl8aYMWMS47322qtY10QW1/rXP44YMSKOOOKIaNy4cZm9AwAAAAAAAAAAcO1jhVFQUBATJ06Mbt26xZVXXpnyPrfeemv8+OOPifGgQYMiO7vsOoDrX/+4evXquOqqq6KgoKDM3gEAAAAAAAAA/J8MP9vED6RC+auCyMzMjEceeSSmTZsWL7/8cixevLjEe7z55psxceLExLht27bRpk2bsowZEb9c/3jOOeckxjNnzowHHnigzN8DAAAAAAAAAADbM+WvCuSss86KiIh169bFM888U6K1eXl5cd111yXGVapUiauvvrpM8/1anz59ombNmonxnXfeGV9//XW5vQ8AAAAAAAAAALY3yl8VxNq1a+OII45IXNH41FNPRWFhYbHXDxs2LBYsWJAYX3HFFbHrrruWec7/qVWrVvTt2zcxXrVqVVx99dUlygwAAAAAAAAAAGxcdroDbI8KCwvjvvvuixUrVsSqVati9erVsXLlyli1alWsXLkyPvvss8Szt9xySwwbNixWr16dtMfcuXNjxowZ0apVq82+75VXXkm67rF58+Zx4YUXlt0vtBFnn312TJw4MWbOnBkRETNmzIgnnngizjvvvHJ/NwAAAAAAAAAAbOuUv9IgIyMjpkyZEv/+9783++yKFSs2+t0LL7yw2fLX119/HYMGDUqMc3JyYsiQIZGZWf6HvmVkZMT1118fZ599duTn50dExG233Rbt2rWLevXqlfv7AQAAAAAAAABgW+baxzT53e9+V+R8VlZW1KlTJxo1ahQtWrSItm3bxhlnnBGdOnWKXr16xfXXXx/VqlWLiIiXX3451q1bt9F3rFy5Mnr06BF5eXmJuR49ekSTJk3K9pfZhH333TfOP//8xPinn36Km266aYu9HwAAAAAAAAAAtlVO/kqTM888M3bZZZeoXbt21KxZM2rXrh21atWKmjVrRkZGxibX/utf/4oXXnghli5dGv/4xz82+tywYcOSrpA89NBDo0uXLmX2OxRXr1694qWXXoolS5ZERMRbb70VCxcujJ122mmLZwEAAAAAAAAAgG2F8lea7LHHHrHHHnuktPbkk0+O/Pz8OPnkk+Owww6L9957r8jnLrnkkpg1a1Z8/PHHUatWrbjllltSuu7x1yeHpaJ69erRv3//6N+/fxx55JFx0003KX4BAAAAAAAAAEApKX9VQG3bto22bdsmxgsWLEh8zsnJSXzefffd4/HHH4+RI0dGixYtUipc5efnx4wZMxLjKlWqpJT5tNNOixo1asTRRx+d0noAAAAAAAAAoGibuWAM2IYpf1UQ33zzTVSpUiVq1aqVKHitXLkypkyZEi+//HLiufULXjk5OdGnT59N7v3OO+/EJ598EjVr1owaNWpEbm5u7LDDDvHDDz/EE088EXPmzEk827Bhw5R/B8UvAAAAAAAAAAAoO8pfFcQdd9wRkydPjoiIrKysyMnJiVWrViU9k5ubGy1btizx3gsXLoxhw4YV69lfnzgGAAAAAAAAAACkT2a6A1A8BxxwQOJzfn7+BsWvrKysuPbaa6NatWol3rtp06bFeu64446LI488ssT7AwAAAAAAAAAAZc/JXxXEgQceGM2aNYuCgoIoLCyMjIyMyMzMjGrVqsVee+0VZ599djRr1iylvRs1ahS5ubmxYsWKKCgoSPouKysrGjduHGeccUZcdNFFZfGrAAAAAAAAAAAAZSCjsLCwMN0h2Hrk5+cnfgoLC6NKlSqRkZGR7lhp8lm6AwAAAAAAANuIarvflO4IpZb3zTXpjlBqGbG9/ncvKMre6Q5AGZq7/G/pjkAZ2LXaKemOQAXk5C+SZGVlRVZWVrpjAAAAAAAAAAAAm5GZ7gAAAAAAAAAAAACUnPIXAAAAAAAAAABABeTaRwAAAAAAAACACiwj3QGAtHHyFwAAAAAAAAAAQAWk/AUAAAAAAAAAAFABKX8BAAAAAAAAAABUQNnpDgAAAAAAAACbUrfJmHRHKLXl31yb7giltqbgp3RHKLVKmTumOwIAQJly8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQASl/AQAAAAAAAAAAVEDZ6Q4AAAAAAAAAAEDqMjPSnQBIFyd/AQAAAAAAAAAAVEDKXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQASl/AQAAAAAAAAAAVEDKXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFlJ3uAFQcTz/9dCxevDhOOeWUaNiwYbrjAAAAAAAAAADAds3JXxTLunXrYtSoUXH77bdHu3btYvDgwemOBAAAAAAAAABERIafbeIHUqH8RbG88sorsWDBgoiIKCwsjEMOOSTNiQAAAAAAAAAAYPum/EWxPPTQQ4nPe+65Zxx//PFpTAMAAAAAAAAAAGSnOwDlZ+jQofHf//632M9fdtll0bhx4w3m//Wvf8UHH3yQGF966aWRmak3CAAAAAAAAAAA6aT8tQ2bOnVqzJ8/v9jPn3POOUWWv+68887E59/85jdx3HHHxerVq1POlZ2dHVlZWSmvBwAAAAAAAAAAlL/YjLfffjveeeedxPj777+Pli1blmrP/v37xyWXXFLaaAAAAAAAAAAAsF1T/tpOXHzxxdG0adMN5gcPHhwrVqzY6Lpfn/oFAAAAAAAAAABsPZS/thOtW7eOtm3bbjA/dOjQjZa/Jk+eHB988EF5RwMAAAAAAAAAAFKg/EWR8vLyYtiwYYlxs2bNYuLEiZGZmZnGVAAAAAAAAAAAwP8of1GkkSNHxqJFiyIiIjMzMwYPHqz4BQAAAAAAAABboYyMwnRHANJEm4cNzJo1Kx555JHE+JxzzonmzZunMREAAAAAAAAAALA+5S+SrFy5Mvr27Rv5+fkREVGrVq248sor05wKAAAAAAAAAABYn/IXSYYOHRpz5sxJjK+77rqoWbNmGhMBAAAAAAAAAABFyU53ALYeb731Vjz55JOJcfv27aNdu3axevXqlPfMyMiISpUqlUU8AAAAAAAAAADgV5S/SDjssMPit7/9bdx6662Rn58ff/rTn6J58+al2rNhw4bx+uuvl1FCAAAAAAAAAADgf5S/SMjIyIiTTz45jjnmmJg7d25Uq1Yt3ZEAAAAAAAAAAICNyEx3ALY+VatWjSZNmqQ7BgAAAAAAAAAAsAlO/mKjdtlll5g9e3axn//73/8el19+eaxatSoifimR3XjjjeUVDwAAAAAAAAAAtmvKX5SJV199NXr37h1r166NiIg6derEvffeG/vtt1+akwEAAAAAAADAti0j3QGAtHHtI6X2/PPPxxVXXJEofjVs2DAmTJig+AUAAAAAAAAAAOVI+YtSeeqpp2LAgAGxbt26iIjYe++9Y8KECbH77runORkAAAAAAAAAAGzbXPtIyp5++um49tpro7CwMCIi9ttvv7jvvvuiZs2aaU4GAAAAAAAAAADbPid/kZJnn302rrnmmkTxq2XLlvHggw8qfgEAAAAAAAAAwBai/EWJPffcc3HVVVdFQUFBRES0atUq7rvvvsjNzU1zMgAAAAAAAAAA2H4of1EiU6dOjUGDBiWKX61bt46xY8dG1apV05wMAAAAAAAAAAC2L8pfFNs777wTV155ZeTn50fEL1c93n333VGlSpXNrs3Pz09cEQkAAAAAAAAAAJRedroDsGV069atVOtnzZoVl112WaxevToiIpo1axZjx46NatWqFWv9p59+Gpdeemm0a9cujj322Dj88MMjIyOjVJkAAAAAAAAAAGB7pvzFZn3//fdx6aWXxvLlyyMiYs8994xx48ZFbm5usff44YcfYvHixfH444/HU089FR999FFkZ/vzAwAAAAAAAIDScvYKbL9c+8gmrVixIrp16xaLFy+OiIi6devGuHHjonbt2iXaZ9GiRYnP9evXV/wCAAAAAAAAAIBS0sDZTtx9993Rtm3bDeYPOeSQWLZs2UbX9e/fPz755JOIiKhSpUrcc889scsuu5T4/QsXLkx8TmU9AAAAAAAAAACQzMlfbNSzzz4br776amI8dOjQ2G+//VLaa968eYnPu+66a6mzAQAAAAAAAADA9s7JX9u56tWrR35+fkREZGVlJebXrFkTw4cPT4wvuOCCaN++fcrv+eqrrxKf99xzz5T3AQAAAAAAAAAAfqH8tQ3r27dvLF++PCIimjZtWuQzU6dOLXL+lVdeiaVLl0ZERNWqVeOKK65IOUdBQUF8/vnniXGjRo1S3gsAAAAAAAAAAPiF8tc2rDQndc2aNSvxeZdddonq1aunvNe0adMiLy8vMd5nn31S3gsAAAAAAAAAAPhFZroDsHXKyMhIfP7888/j3nvvjR9//LFEe6xevTpefPHFuOqqqxJzjRs3joYNG5ZZTgAAAAAAAAAA2F45+YsitW3bNu67776IiCgsLIzbbrstRowYEdWrV49KlSptdv26devixx9/jMLCwqT5rl27lkteAAAAAAAAAADY3ih/UaRWrVpF9+7dY8yYMYkCV2FhYfz0008p73nRRRfF6aefXlYRAQAAAAAAAICIyNj8I8A2SvmLjerZs2e0adMmJk6cGP/6179iyZIlkZeXV+z1OTk5Ubdu3TjggAPivPPOi8MOO6wc0wIAAAAAAAAAwPZF+YtNatmyZbRs2TLdMQAAAAAAAAAAgPVkpjsAAAAAAAAAAAAAJaf8BQAAAAAAAAAAUAEpfwEAAAAAAAAAAFRAyl8AAAAAAAAAAAAVkPIXAAAAAAAAAABABaT8BQAAAAAAAAAAUAFlpzsAAAAAAAAAAACpc/IPbL+UvwAAAAAAANiqzf7wmHRHKLW9Tv9nuiOU2heTDk13hFJbsW5huiOUWtXsndIdAQDYiih/AgAAAAAAAAAAVEDKXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQASl/AQAAAAAAAAAAVEDKXwAAAAAAAAAAABVQdroDAAAAAAAAAACQuoyMdCcA0sXJXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQASl/AQAAAAAAAAAAVEDKXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQAWWnOwDl47nnnkt3hI1q0qRJNG3aNN0xAAAAAAAAAACgQlP+2kb1798/3RE2qlu3bspfAAAAAAAAAFBmMtIdAEgT1z4CAAAAAAAAAABUQMpfAAAAAAAAAAAAFZBrH7dRs2fPLtX6gw8+OH7++eeIiGjdunU8/PDDZRELAAAAAAAAAAAoI07+AgAAAAAAAAAAqICUvwAAAAAAAAAAACog5S8AAAAAAAAAAIAKSPkLAAAAAAAAAACgAlL+AgAAAAAAAAAAqICy0x2AiuOBBx6I5s2bR8uWLdMdBQAAAAAAAAD4/2VERrojAGmi/EWxvPnmm3HzzTdHRMQZZ5wRffv2jTp16qQ5FQAAAAAAAAAAbL9c+8hm/fe//42BAwdGYWFhFBYWxjPPPBPHH398PPzww5Gfn5/ueAAAAAAAAAAAsF1S/mKzMjMz4+CDD06a+/nnn2PIkCFx9tlnx0cffZSmZAAAAAAAAAAAsP1S/mKzatasGSNHjox77rknGjZsmPTdf/7znzj33HNj8ODB8fPPP6cpIQAAAAAAAAAAbH+Uvyi2o48+Ol588cW45JJLIjs7OzFfUFAQEyZMiBNOOCEmT56cxoQAAAAAAAAAALD9UP6iRKpUqRL9+/ePJ598Mpo2bZr03ZIlS6J3797RrVu3WLhwYZoSAgAAAAAAAADA9kH5i5Q0a9YsJk6cGD179oycnJyk76ZNmxbt27ePCRMmRGFhYZoSAgAAAAAAAADAtk35i5Tl5ORE9+7d49lnn41mzZolfZeXlxeDBw+OTp06xfz589OUEAAAAAAAAAAAtl3KX5Tab3/723jiiSeiW7dukZWVlfTdP//5zzjllFPiiSeeSFM6AAAAAAAAANi2ZWRk+tkGfiAV/nIoEzk5OdG7d+949NFHY/fdd0/6bvny5XHPPfdEXl5emtIBAAAAAAAAAMC2R/mLMtWiRYt49tln45RTTknMZWdnx2233Ra5ublpTAYAAAAAAAAAANsW5S/KXLVq1eLWW2+Nv/zlL1GlSpXo0aNHtGjRIt2xAAAAAAAAAABgm5Kd7gBsu84+++xo3bp17LLLLumOAgAAAAAAAAAA2xzlL8rVbrvtlu4IAAAAAAAAAACwTXLtIwAAAAAAAAAAQAWk/AUAAAAAAAAAAFABKX8BAAAAAAAAAABUQNnpDgAAAMD/x969R1ld1/vjf+2ZYaQBZEAJEBEMQQgvXUzld5D0RKBA3AIVvCxNUFCTTM0wRTIq1JJIRBAzM7l4BUEJOwidqNDsdlDyEqQiXhAUletcmP3743zdxy23uexhz555PFh7td/v/fm8P88t41quNc/ebwAAAACAmkhkOwCQJXb+AgAAAAAAAAAAyEHKXwAAAAAAAAAAADlI+QsAAAAAAAAAACAHKX8BAAAAAAAAAADkIOUvAAAAAAAAAACAHKT8BQAAAAAAAAAAkIOUvwAAAAAAAAAAAHKQ8hcAAAAAAAAAAEAOKsh2AOqmv/zlL9mOAAAAAAAAAABUQiIS2Y4AZImdvwAAAAAAAAAAAHKQ8hcAAAAAAAAAAEAOUv4CAAAAAAAAAADIQcpfAAAAAAAAAAAAOUj5CwAAAAAAAAAAIAcpfwEAAAAAAAAAAOQg5S8AAAAAAAAAAIAclEgmk8lsh4C66eVsBwAAAAAAACJiW/lb2Y5QY4te25HtCDW2sST395X45mc7ZjtCjS17c022I9TYfx52VLYjEBERXbIdgAz6oPTJbEcgA5oX9s12BHJQ7v8XGgAAAAAAAAAAQAOk/AUAAAAAAAAAAJCDlL8AAAAAAAAAAABykPIXAAAAAAAAAABADlL+AgAAAAAAAAAAyEHKXwAAAAAAAAAAADlI+QsAAAAAAAAAACAHKX8BAAAAAAAAAADkoIJsBwAAAAAAAAAAoPoSCXv/QEPl334AAAAAAAAAAIAcpPwFAAAAAAAAAACQg5S/AAAAAAAAAAAAcpDyVwORTCbjD3/4Q7ZjAAAAAAAAAAAAGaL81QC8+eabceGFF8ZFF10UDz30ULbjAAAAAAAAAAAAGVCQ7QDUvvHjx8fTTz8dERE/+MEP4thjj42uXbumXVNRURFlZWUHLFNhYWEkEokD9jwAAAAAAAAAAKhvlL8agIkTJ8bQoUNj+/btUVJSEuPGjYtHHnkkmjZtmrrm2WefjfPPP/+AZZo9e3accMIJB+x5AAAAAAAAAABQ3zj2sQE48sgj43vf+15q/Oqrr6aNAQAAAAAAAACA3KP81UAMGzYsTj/99NR4yZIl8dBDD2UxEQAAAAAAAACQGQmvevGCqnPsYwPy/e9/P/7617/Gxo0bIyLihz/8YXzhC1+ITp06xUknnRQvvfRSldYbO3ZsLFu2LCIi2rRpE0899VQUFPiRAgAAAAAAAACAA8HOXw1IcXFx3HjjjamyrRQyAAAgAElEQVTxjh074qqrrorS0tIqr/XGG2/E7373u9T4nHPOUfwCAAAAAAAAAIADSPmrgfnqV78aZ5xxRmrcsmXL2Lp1a5XXmTt3blRUVEREROPGjePMM8/MWEYAAAAAAAAAAGD/bNXUAE2YMCFWrVoVo0aNihEjRkQiUbVzYzdv3hxz5sxJjQcNGhTFxcWZjgkAAAAAAAAAAOyD8lcD1LJly3jyySejUaNG1br/rrvuim3btqXGgwYNylQ0AAAAAAAAAACgkhz72EBVt/i1fv36tF2/IiKKiooyEQkAAAAAAAAAAKgC5S+qZOLEibFz585sxwAAAAAAAAAAgAZP+aseKykp2eurtLS0yustXLgwVqxYsdt8RUVFjB8/PlauXJmJ2AAAAAAAAAAAQCUUZDsAtWPjxo3Rs2fPvX7erl27WLZsWaXXe/311+Omm27a42e33nprrFy5MhYsWBDf/OY3Y+zYsZFIJKqcGQAAAAAAAACoukT4HT00VHb+Yr9KS0tj3LhxsWXLloiIyMtL/7H5aMevioqKmDp1aowePTo2b958wHMCAAAAAAAAAEBDovzFft1www2xevXq1Piyyy5L+/yqq66K5s2bp8YrVqyIr3/96/H8888fsIwAAAAAAAAAANDQKH/VU61atYqXXnop7XXfffdVeZ2f/vSnsWDBgtR40KBBMXLkyLRrTjnllHj44Yejc+fOqbk33ngjRo4cGQ899FD1vwQAAAAAAAAAALBXyl/s1b333ht33XVXanz00UfHTTfdtMdrjzjiiHjggQeib9++qbmSkpK4/vrrY8KECVFWVlbreQEAAAAAAAAAoCFR/mKPZs6cGT/+8Y9T43bt2sXMmTOjcePGe72nSZMmMXXq1Bg3blzk5f3fj9YDDzwQ559/fmzatKlWMwMAAAAAAAAAQEOi/EWaZDIZt912W9x2222puVatWsUvf/nLaNu27X7vTyQScemll8add94ZTZo0Sc3/7W9/i6FDh8bzzz9fK7kBAAAAAAAAAKChUf4iZceOHTFu3LiYOXNmaq64uDh+8YtfRIcOHaq01qmnnhpz5syJ1q1bp+Y2bNgQ55xzTixevDhjmQEAAAAAAAAAoKFS/iIiItavXx8jRoyIJ598MjV32GGHxezZs+Poo4+u1ppdu3aNhx56KLp165aa27lzZ1x55ZUxb968GmcGAAAAAAAAAICGTPmLeOKJJ2Lw4MHxwgsvpOa6du0a8+bNi6OOOqpGa7du3Tpmz54dvXr1Ss19+tOfjlNPPbVG6wIAAAAAAAAA/yvhT734A9Wh/NXA3XzzzfHtb387tmzZkpr78pe/HLNnz047srEmmjRpEjNmzIizzz47ioqKYsaMGdGmTZuMrA0AAAAAAAAAAA2V8lcDN2zYsDjkkEMiIqJRo0ZxzTXXxMyZM6Np06YZfU5+fn58//vfjwULFkT37t0zujYAAAAAAAAAADREyl8NXKdOnWLWrFlx9NFHx5w5c2LUqFGRSNTeVoIdOnSotbUBAAAAAAAAAKAhKch2ALKve/fusXDhwmzHAAAAAAAAAAAAqsDOXwAAAAAAAAAAADlI+QsAAAAAAAAAACAHKX81IKtWrcp2BAAAAAAAAAAAIEOUvxqImTNnxk9+8pPU+M0334zFixdnMREAAAAAAAAAAFATBdkOQO1KJpMxefLkuPfee3ebv/baa+Pggw+Onj17VmnNRCIRRUVFqXFeng4hAAAAAAAAAGSP39tDQ6X8VY/t2rUrbrjhhnjkkUdScyeeeGI0bdo0li1bFqWlpTFq1Kg466yz4uqrr45mzZpVat0WLVrE3//+99qKDQAAAAAAAAAAVILyVz1VVlYWV199dSxZsiQ197nPfS5mzpwZpaWlcc4558SaNWsimUzGvHnzYv78+XHKKadE796948gjj4w2bdpEy5Yto6CgoFo7e1VUVER5eXmUlZVFWVlZlJeX7zbu0qVLJr8yAAAAAAAAAAA0KMpf9dTTTz+dVvzq1KlTzJw5M4qKiqKoqCh+9atfxeWXX57awaukpCSWLl0aS5cu3eN6iUQiEolE5OXl7fV9MplMFbwqKir2ma9bt26xYMGCzH1hAAAAAAAAAABoYBz6Wk/17NkztbNWq1atYtasWVFcXJz6/NBDD437778/rr/++mjduvV+10smk2m7eZWWlsbOnTtjx44dsX379ti6dWts27YtSkpK9lv8iojo379/9b8cAAAAAAAAAABg56/6KpFIxJgxY+J73/tezJgxI9q1a7fbNQUFBXHeeefFiBEj4umnn46VK1fGSy+9FBs2bIitW7dGaWlp6pjGj45qTCaTNc6Wl5cXX/va12q8DgAAAAAAAAAANGTKX/XYGWecEYceemgcc8wx+7yuoKAgevbsGT179tzvmhUVFbFr167d/jeZTKZeH0kmk5FIJCLifwtfHx0TmZ+fH0VFRTX7cgAAAAAAAAAA0MApf9VjeXl5cdJJJ2V8zbw8p4UCAAAAAAAAAEC2afEAAAAAAAAAAADkIDt/AQAAAAAAAADksEQike0IQJbY+QsAAAAAAAAAACAHKX8BAAAAAAAAAADkIOUvAAAAAAAAAACAHKT8BQAAAAAAAAAAkIOUvwAAAAAAAAAAAHJQQbYDAAAAAAAAwL4UFbTJdoQaO6tTRbYj1Fgymfvfofio27IdocbeX/PtbEcAAOoQO38BAAAAAAAAAADkIDt/AQAAAAAAAADktES2AwBZYucvAAAAAAAAAACAHKT8BQAAAAAAAAAAkIOUvwAAAAAAAAAAAHKQ8hcAAAAAAAAAAEAOUv4CAAAAAAAAAADIQcpfAAAAAAAAAAAAOUj5CwAAAAAAAAAAIAcpfwEAAAAAAAAAAOQg5S9285e//CUuv/zy2LZtW7ajAAAAAAAAAAD7kfCnXvyB6ijIdgBq39q1a+P555+PiIgmTZpE796993hdSUlJXHnllfHUU09FRET79u3j2muvrdKztm/fHr169UqNp0yZEqeccko1kwMAAAAAAAAAAHuj/NUA/O53v4tbbrklIiLatWu31/LXQQcdFMlkMjW+7777YsiQIdGlS5dKPyuZTMaWLVtS4/Ly8mqmBgAAAAAAAAAA9kX5qxpKSkpi48aN2Y6xV/n5+dG2bdtq3Tt+/PhYsWJFlJWVRXl5eUyaNCnuu+++DCcEAAAAAAAAAABqSvmrGv7xj3/E+eefn+0Ye3XooYfGH//4x2rde8QRR8R5550X99xzT0REPPPMM7F48eLo169fJiMCAAAAAAAAAAA1lJftANQ9Y8aMieLi4tT41ltvjZ07d2YxEQAAAAAAAAAA8EnKX+ymefPmMXbs2NT4zTffjF/84hdZTAQAAAAAAAAAAHySYx+r4aSTToqXXnrpgD/3mWeeSTtuctGiRdGlS5daedbIkSPj3nvvjbfeeisiIu6+++4YNmxYtG7dulaeBwAAAAAAAAAAVI2dv9ijwsLCuPzyy1Pj7du3x9SpU6u8TiKRyGQsAAAAAAAAAADg/1H+Yq+GDBkSRx55ZGo8f/78ePHFF/d5z65du9LG+fn5tZINAAAAAAAAAPhInle9eEHV+clhr/Lz89N2/6qoqIjly5fv855Plr8KCpwsCgAAAAAAAAAAtUH5i33q169fdO7cObp27Rr33XdfjB07dp/Xl5WVpY0LCwtrMx4AAAAAAAAAADRYtmVin/Ly8mLmzJnRtm3byMvbf1dw69ataeMmTZrUVjQAAAAAAAAAAGjQlL8y5IILLoiVK1fWeJ0FCxZEt27dMpAoc9q1a1fpaz9Z/mratGmm4wAAAAAAAAAAAOHYRzLs/fffTxu3aNEiS0kAAAAAAAAAAKB+s/NXLSgqKoqioqJKX79p06ZaTHNgbdiwIfW+qKjIsY8AAAAAAAAAAFBLlL9qwdixY+Piiy+u1LXl5eXRvXv3Wk504Hy8/NWqVassJgEAAAAAAAAAgPrNsY9k1CuvvJJ63759+ywmAQAAAAAAAACA+s3OX2TUmjVrUu+POOKILCYBAAAAAAAAgIYhEYlsRwCyxM5fZExpaWmsXbs2Ne7SpUsW0wAAAAAAAAAAQP2m/EXGrFq1KsrKylLjz372s1lMAwAAAAAAAAAA9ZvyFxnzzDPPpN43btw4unXrlsU0AAAAAAAAAABQvyl/kTFPPfVU6v3xxx8fhYWFWUwDAAAAAAAAAAD1m/IX+7Rz585KXbdu3bpYvXp1atyrV6/aigQAAAAAAAAAAITyF3uxcePGGDduXCxYsKBS18+dOzdt3Lt379qIBQAAAAAAAAAA/D/KX6RJJpPx4IMPRr9+/WLJkiXx4Ycf7veeDz74IB5++OHU+POf/3x07NixFlMCAAAAAAAAAAAF2Q5QH/30pz+Nn/70p9mOUWVr1qyJCRMmxF//+tfU3ObNm/d738yZM9NKYl27dq2VfAAAAAAAAAAAwP9R/iJKSkrizjvvjLvvvjvKysrSPvvk+JPWrFkT9913X9rc3Llzo3v37jF8+PCMZwUAAAAAAAAA0iUSiWxHALJE+asWFBUVRVFRUbXuLSg4sH8lf/zjH2PixImxbt26tPmioqK48sor49xzz93rvaWlpTF+/Pg9FsQmTJgQTZo0iX79+mU8MwAAAAAAAAAAoPxVK8aOHRsXX3xxtmPs08aNG2Py5Mnx+OOP7/bZaaedFjfeeGO0bdt2n2tMmjQpVq1alRp37do1Xn311di5c2dUVFTEd77znWjSpEl8+ctfznh+AAAAAAAAAABo6PKyHYDaV1JSknpfUVERv/71r+P000/frfh1yCGHxJQpU2LGjBn7LX5NmzYtHnjggdS4WbNmMX369LjllltS20mWlZXFFVdcEX/+858z+G0AAAAAAAAAAIAI5a8G4bXXXku9f+utt2LSpEmxdevWtGuGDh0aixcvrtQxjbfffnvcfvvtqXEikYjJkydHu3btom/fvnHNNdekPtu5c2eMGTMmnnvuuQx8EwAAAAAAAAAA4COOfcyQ2267LUpLSyMiomnTpllO83+2bNkSy5cv3+vnRxxxRNx0003Ro0eP/a5VWloaN954Yzz66KNp81dddVX07t07Nb7oooti3bp1MW/evIiI2LZtW1x88cUxd+7c6NixY/W+CAAAAAAAAAAAkMbOXxnSsmXLaNOmTbRp06bWyl8flcuqYtKkSfHBBx/sNp+fnx/f+MY3YtGiRZUqfq1bty7OPvvs3YpfF198cYwePXq36ydMmBC9evVKjd9777246KKLYuPGjVX+DgAAAAAAAAAAwO6Uv3LIunXr0sb5+fn7vP7111+PJ554Yrf5Ll26xAMPPBDXXnttNG7ceJ9rJJPJmD17dgwePDhWr16d9tmll14aV1111R7vy8/PjylTpkSXLl1Sc+vXr4/Ro0fvduQkAAAAAAAAAABQdcpfOWLHjh0xe/bstLlmzZrt85727dvHt771rdQ4kUjEmDFj4tFHH41jjz12v89cvXp1jBw5Mm666abYtm1bar5Ro0bxox/9KMaNG7fP+5s2bRrTp0+P4uLi1NwLL7wQl112WbV2MQMAAAAAAAAAAP5PIplMJrMdoqFbv359TJo0KZo3bx7NmjWLJk2aRFFRURx00EGRn58fb7/9dixZsiTWr1+fuqdFixbx9NNP73ftZDIZF154YTz33HNx8803R+/evfd7z5tvvhk///nPY8GCBfHJH4/DDz88pkyZEscdd1ylv9/KlStj1KhRUV5enpobOnRo/PjHP670GtnxcrYDAAAAAAAAEZGM+vDrrIpsB6ixZDL3v0PLzrdnO0KNvb/m29mOQL3RZf+XkDN27tp/f4C6r3H+ydmOQA4qyHYAIlq3bh1/+tOfoqSkpNL3DBgwoFLXJRKJuPnmm2Pr1q3RqVOnfV779ttvxx133BHz58+PsrKy3dYZNmxYXHvttfvdceyTevToEePHj48f/OAHERFRXFwcZ599dpXWAAAAAAAA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AAAAAACZofxVA8lkMh5//PEYNmxYjdYpLy+PBx98MDXu3r17HH/88btdt2HDhrRxy5Yta/TcfZk1a1bccMMN8c4779TaMwAAAAAAAAAAgOpT/qqmZ599NoYPHx5XXXVVrF+/vkZr/dd//Vds3LgxNR4xYsQer0smk2nj119/vUbP3Zddu3bFgw8+GH379o3bb789tm3bVmvPAgAAAAAAAAAAqk75q4rWrl0bY8eOjXPPPTeee+65jKw5Z86c1PuDDz44BgwYsMfrDj/88LTxwoULY/v27RnJsDfbt2+PadOmRZ8+fWLevHmxa9euWn0eAAAAAAAAAABQOcpflfTuu+/GxIkTY+DAgbFs2bLUfH5+/l7LWpWxdu3a+POf/5waDxkyJD71qU/t8dqePXumjTds2BBXXHFFbN26tdrP35uTTjop2rVrlxpv2rQpbrzxxvja176W9v0BAAAAAAAAgGxLeNWLF1Sd8td+7NixI6ZPnx5f/epXY+7cuVFeXp767Ctf+UosWrQoJk6cWO31P77rVyKR2OuRjxERgwcPjuLi4rS5FStWxODBg+OPf/xjtTPsyYknnhhLliyJ8ePHR4sWLVLzH9/5bNWqVRl9JgAAAAAAAAAAUHnKX3tRUVERjzzySPTt2zemTp0a27ZtS332xS9+MebOnRvTp0+PTp06VfsZ27dvjwULFqTGPXr0iCOPPHKv1zdr1ixuvPHGSCTS256vv/56fOMb34gxY8bEv/71r2rn+aTCwsK44IILYunSpTF27NgoKipKffbss8/GmWeeGd/+9rfj9ddfz9gzAQAAAAAAAACAylH+2oMVK1bEoEGD4rrrrosNGzak5jt37hzTp0+POXPmxBe+8IUaP2fhwoVpRzaOHDlyv/f069cvbrjhhsjPz9/ts+XLl8fAgQPjyiuvjLVr19Y430eaNm0a3/rWt+K3v/1tjBgxIho1ahQREclkMp544ok444wzYvLkyfH+++9n7JkAAAAAAAAAAMC+JZLJZDLbIeqKF198MW655ZbdjlBs27ZtXH755TFkyJA9lq6qa9CgQfHiiy9GRESbNm1i2bJllV7/6aefjmuvvTbefvvtPX6el5cXAwYMiCuuuCLat2+fscwREa+99lpMmTIllixZEh//8WnevHlccsklcd5550VhYWFGn5kdL2c7AAAAAAAAEBGlFVuyHSEDcv9XchXJsmxHqLE3t2/KdoQa6zO7ebYj1NiqUYn9X1THFRW0znaEDOiS7QBkUEXyn9mOQAbkJT6b7QjkIDt/RcTbb78d48ePjyFDhqQVv5o3bx7XXHNNPPnkkzFs2LCMFr/++hRimtUAACAASURBVNe/popfERFnnnlmldY/+eST44knnojzzz8/tRPXx1VUVMTChQujf//+MW3atCgtLc1I7oiIDh06xM9+9rN46KGHokePHqn5Dz74IG655ZY4/fTTY9GiRaFXCAAAAAAAAAAAtadB7/y1devWmDVrVtx7772xc+fO1Hzjxo3j3HPPjUsuuSQOPvjgWnn2VVddFY8//nhERDRq1CiWL18erVq1qtZa69ati6lTp8bixYujoqJij9ccc8wx8bOf/Szju4BFRPzhD3+I2267LVavXp0237179/jOd74TJ598csafeWDY+QsAAAAAAOoCO3/VDXb+qhvs/FU32PmLusbOX/WDnb+ojgZb/nrvvfeif//+8d5776Xm8vPzY/DgwXHFFVdEmzZtavXZvXr1irKy//0P5DPOOCN+9rOf1XjdNWvWxB133BG/+c1v9rjr1qGHHhq/+tWv4qijjqrxsz4pmUzGE088EVOnTo1169alfXb11VfH6NGjM/7M2qf8BQAAAAAAdYHyV92g/FU3KH/VDcpf1DXKX/WD8hfV0WCPfdy5c2da8SsioqCgIJo2bRqJRO3+x8ZDDz2UKn5FRIwcOTIj6x511FExZcqUeOyxx6JXr167fb5p06YYNWpUfPDBBxl53ic1btw4mjVrttv8J/85AwAAAAAAAAAANddgd/6KiPjHP/4R06ZNixUrVqTNN2rUKIYOHRqjR4/O+DGJFRUV0bt373jjjTciIqJz586p4x8zbenSpXHdddftVvY666yz4qabbsrIM8rLy+Pxxx+PWbNmxZo1a9I+a9euXVx88cUxdOjQKCwszMjzDiw7fwEAAAAAQF1g56+6wc5fdYOdv+oGO39R1yTjhWxHIAMS0S3bEchBDbr89ZFVq1bFtGnT4r//+7/T5vPz86N///5xySWXZOyoxGXLlsXYsWNT4wkTJsQ555yTkbX35NVXX42zzz47Nm/enJpr1KhRrFixIlq0aFHtdUtKSuLhhx+OX/ziF6ki20fatWsXY8aMiSFDhkSjRo2q/YzsU/4CAAAAAIC6QPmrblD+qhuUv+oG5S/qGuWv+kH5i+posMc+ftxxxx0Xd911Vzz88MNx6qmnpuZ37doVCxcujAEDBsQ3v/nNeP7552v8rDlz5qTeFxUVxaBBg2q85r507Ngxvv/976fNlZWVxTPPPFOt9bZu3Rp33XVXnHbaaXHTTTelFb8OP/zwmDRpUjz55JNx5pln5njxCwAAAAAAAAAA6raCbAeoS4499tiYOXNmPP/88zFt2rRYvnx5REQkk8n47W9/G7/97W/jlFNOiTFjxsQJJ5xQ5fVff/31+MMf/pAaDxw4MJo2bZqx/HvTp0+fOOSQQ+Ldd99NzX1yt679effdd+O+++6L2bNnx5Yt6f/vmvbt28eYMWNi8ODBUVDgRwoAAAAAAAAAAA4ETZ09OOaYY2LGjBmxevXquOOOO2LZsmXx0emYK1asiBUrVsSXvvSluOSSS+KUU06p9Lpz5syJj5+yOXLkyIxn35NEIhGHH354WvkrL69ym7698cYbcc8998TDDz8cO3fuTPusQ4cOMWbMmBg4cKDSFwAAAAAAAAAAHGAaO/vQvXv3mD59erzwwgsxbdq0eOqpp1LlrWeffTaeffbZ6N69e1x66aXRu3fvfa5VUlISjz76aGr8xS9+MY4++uhazf9x77//ftq4VatW+7x+3bp1MX369Fi0aFGUl5enfdaxY8dU6Ss/Pz/jWQEAAAAAAAAAgP2r3PZPDVy3bt3ijjvuiAULFkSfPn0ikUikPlu9enV897vf3e8aixcvTitgVWfXr8WLF6ftHFZZ//rXv+K1115Lm/vCF76wz3see+yxmD9/flrxq2PHjnHzzTfH4sWLY8iQIYpfAAAAAAAAAACQRcpfVdC1a9e4/fbb47HHHou+ffumlcD2Z86cOan3hx56aPTp06fKz//JT34S5513XjzzzDOVvmfLli1x3XXXpc2dcMIJcdhhh1V6jc985jNx6623xuLFi2Pw4MFKXwAAAAAAAAAAUAc49rEajj766Pj5z38eL7/8ctxxxx2xcuXKfV6/evXqWLVqVWo8bNiwKCwsrNazn3322Tj//POjS5cu0b9//zj55JPjmGOOiYKC9L/Kd955J5YuXRqzZs2KN998MzVfUFAQ119/faWe1alTpxg7dmz0798/8vL0BAEAAAAAAAAA2Ld33nknVq1aFevXr4/t27dH48aNo23btnHMMcdE+/btsx1vN2vXro3Vq1fHxo0bo7S0NJo0aRJHHHFEfO5zn4vi4uJsx9sv5a8a6NKlS0ydOnW3IxU/afbs2an3+fn5cdZZZ9X42S+//HK8/PLLEfG/ha6WLVtGixYtory8PN599920IyY/UlBQED/60Y+iW7du+11/+PDhcdlllyl9AQAAAAAAAECd53f7ZN+yZcti1qxZ8fe//z2SyeQer+natWtceOGFMWjQoCqduJdpZWVlMXfu3Pj1r38d69at2+M1+fn58R//8R9xySWXxAknnHCAE1ZeIrm3f9pkxIcffhi9evWKHTt2RETEf/7nf8add95ZrbVOP/30eOWVV6p1b8eOHWPixInRo0ePat3fML2c7QAAAAAAAEBElFZsyXaEDMj9X8lVJMuyHaHG3ty+KdsRaqzP7ObZjlBjq0Zl75f9mVJU0DrbETKgS7YDkEHJeCnbEciARByd7QjVsm3bthg/fnw8+eSTlb7nxBNPjClTpsShhx5ai8n27NVXX41vfvObqU2XKuPcc8+N7373u9GoUaNaTFY9dv6qZY8++miq+BURMXLkyGqvNW/evFi4cGEsX748/vGPf8T27dv3eX1+fn6ceOKJMXDgwBgwYEC1j5oEAAAAAAAAAIBP2rZtW1x44YXxP//zP1W6789//nOMHDkyZs+eHa1ataqldLtbu3ZtnHPOObF58+Yq3Xf//ffHW2+9FT//+c+joKBu1a3s/FWLkslknH766fHqq69GRESHDh3iySefzMi2dRUVFfHGG2/Ev//973jrrbfiww8/jIqKimjSpEk0a9YsPvOZz0SXLl2icePGNX5Ww2XnLwAAAAAAqAvs/FU32PmrbrDzV91g5y/qGjt/1Q+5uPPXuHHjYsmSJWlzhx12WFxwwQXRo0ePaNOmTWzcuDH+9re/xS9/+ctYu3Zt2rWf//zn4/777z8ghaqtW7fGkCFDdjvm8fjjj48LLrggunfvHs2bN4+33norli5dGvfff3+8//77addedNFF8Z3vfKfWs1ZF3aqi1TN/+tOfUsWviIizzz47Y+eV5uXlRfv27aN9+/YZWQ8AAAAAAAAAACpr2bJluxW/TjzxxJg+fXo0a9YsNXfwwQdHp06dYtCgQXHNNdek3fP3v/895s2bF+eee26t5502bdpuxa8LLrggvvvd76b1eYqLi6Nbt24xfPjwGDVqVPzrX/9KfXbPPffEwIEDo2vXrrWet7Lysh2gPpszZ07qfePGjWPo0KFZTAMAAAAAAAAAADWXTCZj6tSpaXOHHXZY3HnnnWnFr48rLCyM2267Lbp37542P2PGjNixY0etZY2I2LBhQ1qPJyKid+/eMX78+L1u5NSmTZuYNWtWNGnSJDW3p++dbcpfteTtt9+O5cuXp8b9+vWL4uLiLCYCAAAAAAAAAICae+qpp+LFF19Mm/ve974XTZs23ed9+fn5MWnSpLS5jRs3xoMPPpjxjB939913R0lJSWrcuHHjuPHGG/d7X9u2beOKK65Im1u2bNlu3z2blL9qybx582LXrl2p8YgRI7KYBgAAAAAAAAAAMuM3v/lN2rhdu3bxla98pVL3fvazn/3/2bvvsCiutg3g99CbqDEiKGJvMYnm1WgsiT2xd42BFEVRUWxRsRujib1hRexKNNbYorHExBaNUWPFLkgHBSx02J3vD76d7FK3DCyL9++6vNwdZs6cbXNmzjznOWjUqJHGsuzTR8pJFMUc5Xfs2BFOTk5abd+3b1/Y2dlpLMv++o3JwtgVKKmcnJzg4+MDALC3t8f7779v5BoRERERERERERERERERERFRSSQg92nriApDRkYGzpw5o7GsR48eeU6fmJtevXrh6tWr0vPr168jLi4O5cqVk62eKrdu3UJsbKzGsp49e2q9vYODA9q3b49Dhw5Jy06fPo1x48bJVkdDMPirkLi7uxu7CkREREREREREREREREREREREsrp+/Tpev36tsaxJkyY6ldG0aVON50qlEufOndMpKEtbZ8+e1XhuaWmJ//3vfzqV0aRJE43grwcPHiAyMhIVK1aUpY6G4LSPRERERERERERERERERERERESklfv372s8Nzc3R4MGDXQqw83NDW+//Xa+5crlwYMHGs/r168Pa2trncrILVgse7nGwuAvIiIiIiIiIiIiIiIiIiIiIiLSypMnTzSeu7i4wM7OTudyqlevrvE8ODjYoHrlJXt9s+9XG1WrVoW5uXm+5RoLg7+IiIiIiIiIiIiIiIiIiIiIiEgrjx8/1niu79SHLi4uGs8LI5hKoVAgJCREY5k+9TU3N4eTk5PGMgZ/ERERERERERERERERERERERGRSYmNjdV47uzsrFc52YO/YmJi9K5TXhISEpCRkaGxrDjXVx8Wxq4AEREREREREREREREREREREdGbLjExEUlJSYW6D3t7ezg4OBhURnJyssZzfcvLvl1qaiqUSiXMzOTLZZW9rrntV1vZt8utbGNg8BcRERERERERERERERERERERkZFt3rwZq1atKtR9+Pj4YNSoUQaVkT3oycbGRq9yctsuOTnZ4OC07OVps19tZN+uuAR/cdpHIiIiIiIiIiIiIiIiIiIiIiLSSkpKisZzKysrvcrJLQhL7sxnuQVoWVtb61VW9u2KS/AXM38R5am2sStAREREREREREREREQArJjOgGRSvZSxa2C4R8ONXQMiKp54f7tkOG7sCpAJ4qkyERERERERERERERERERERERFpxdbWVuN5enq6XuWkpqbmWGZvb69XWXmxs7PLsSwtLU2vsrJvl1vZxsDgLyIiIiIiIiIiIiIiIiIiIiIi0kr2oKfcgri0kdt2cgdU5VaeXPUtLsFfnPaRiIiIiIiIiIiIiIiIiIiIiMjIBg0ahP79+xfqPuTIrJU96CkxMVGvcrJvZ2NjAzMzefNY5RagJVd9GfxFREREREREREREREREREREREQAAAcHBzg4OBi7GgVycnLCkydPpOfR0dF6lZN9OycnJ4PqlZuyZcvC0tISGRkZee5XW0VRX31w2kciIiIiIiIiIiIiIiIiIiIiItJK9erVNZ5HRkbqVU727WrUqKF3nfJibm6OKlWq5LtfbSgUCsTGxmosK4z66oPBX0REREREREREREREREREREREpJXsQU/R0dFITk7WuZzg4GCN59WqVTOoXnnJXl/1rGXaevr0KTIzMzWWZQ+CMxYGfxERERERERERERERERERERERkVbq1Kmj8TwzMxM3b97UqYzQ0FA8e/Ys33LlUrt2bY3nd+7cQVpamk5lXL16tcByjYXBX0REREREREREREREREREREREpJWGDRuiVKlSGssuX76sUxnZ1zczM8PHH39scN1y88knn2g8z8jIwL///qtTGf/884/G89q1a6NixYoG100ODP4iIiIiIiIiIiIiIiIiIiIiIiKtWFpaolWrVhrLDh48CFEUtS7jwIEDGs8bNmyIcuXKyVK/7N577z04OTnlu//8JCYm4uTJkxrL2rZtK0vd5MDgLyIiIiIiIiIiIiIiIiIiIiIi0lqnTp00noeHh+P06dNabXvv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n376qUOO7cpSW/wV/zkzJcVfktS9e3cdOXJEhmHoP//5j959911HhJ0uOaFT2RVldI67d0m+9Byf4q+cISQkRO+9954mTJigChUqPHB7R74uJk+erKVLl1p/E8WLF9f8+fNVrVq1NB8TyCw5LU9npe9waREWFqYNGzZo3bp1VtvkvbOB+fj4aNq0aek+V074DhcVFaU1a9Zo4cKFCg4OtisCa9GihcaNG8fydcjWKP4CAADOQPEXkALvvfee1qxZk2j5OEfO+pVWjmyMl6RPPvlEixcvtq41d+7cmjFjhlq2bJnuWJctW6aZM2fqn3/+sR5L+BZUqFAh1atXT40aNdIrr7ySpnMcOHBA8+bNU1BQkPWYYRiqUqWKpk6dqsceeyztF5DNxMbG6vz58/cdWXj79m21bdtW165dk2EYateunaZOnerwWI4fP65t27ZpyJAhDjnepUuX9NJLLyksLMxaAnL58uWqV69ektsHBQVp8ODBioiIkBT3uqtfv74WLVqkvHnzOiSmnKRPnz7at29fpsyeZpqmSpQooZ07dzrsmAMHDrSuZcyYMSkuvr2fhMW0RYsW1fz581WzZs10Hxepd/ToUfn7+2vTpk26c+dOpjWqbd++XR999JEuX75s93mibNmymjx5crLvX1lRWjoOJKl///7Wcne1a9fWsmXLcvR7sLOKv27cuCEfHx9rlszChQvru+++U/HixR1yfFflzJm/JGnatGlasGCBDMNQyZIltX379nTHnF45rVPZFWVEjnNkYQ7FX0iKo9s0Ro8erdWrV1uftzw9PfXll1/K29vbEeECGSYn5+ms8h0urc6dO6fly5dr3bp1unv3rqS4/8N+/fppxIgRmRJTdv0OZ7PZtHTpUs2dO1e3b9+WFPe7zJ8/v4YNG8aSjci24ou/HPX5BwAAQJISz8MPIJGhQ4dq8+bNioyMtB4bNGhQJkaUWMKRZOkxcuRIa4rtcuXKqX///mrWrFn6A5RUvnx53blzx7pfoEABNWzYUA0bNlSDBg1UpUqVdF+Dt7e3vL29FRgYqI8//ljnz5+XaZoqX768ypQpk95LyFbc3NweOKV8gQIF5Ovrq4EDBypPnjz6+OOPnRLL448/rscff9xhxytXrpzmzJmj3r17q06dOnr33XetjtikPP3001qyZIkGDBigW7duqUOHDurdu3eOLjpwBFepH3fGyNU33nhDhw4d0vnz57Vw4cIcv7xdZqpVq5Zq1aql0aNHa/PmzQoICMiUOFq0aKGnn35ac+bM0eLFixUdHa1HH31UPXr0UJUqVTIlprSqVKmSChUqlOr9RowYoaCgIPXo0UPvvvtukkuC5STFixfX4MGDHX7cwoULa8yYMXr77bdVo0YNzZo1i8KvFChVqpTVOfcg8Uuzp+ZzhLe3txYsWCDTNBUWFqbz58/r0UcfTVOsQLyMyHHu7u4OG8AB3I+j2jQ+/PBD3blzR99//70qV66sN954w6GzmQNwvqzyHS6tKlWqpAkTJmjo0KH69ttv9fXXXys8PDzNA10dFVN2/A7n7u6ufv36qVOnTpo2bZrWrl2r2NhYeXh4KCQkRKGhofLy8srQmABHctTnHwAAAImZv4AUmzFjhubPny/DMNSkSRN9+eWXmR2S5fr169btYsWKOeSYu3fvVuPGjR26VKLNZtOgQYNUq1YtNWrUyBrd66zlGCMjIzVlyhTlzZs3Syytk5Xdvn1bd+7cyXZTpv/++++qWLFiirc/d+6cTNPMUTPAOUNQUJCuXr2aaef39PRUmzZtMu38KXXz5k3ZbDYaIpHI+fPn9eeff+rpp5/O7FAy3JEjR1S7du3MDiNHWLZsmV588cVMXVYU/7p7964OHTqkihUrqkSJEpkdjiTp0KFDunDhgnX/hRdeyLxgkCNERUXZfYbLCjPgIWtwdJuGzWbT/v371bhx43QfC8gs5GnXER0drUOHDqlBgwaZHUqaZKXvcCdOnFBISIiaNWuW4wcTIXuLiorS4cOHrfvZ9f0BAABkLRR/ASl0584dtWzZUmFhYfLz87OWq0D6fPnll/L19VXDhg3VuHFjNW3aVAUKFEjVMf755x/NmDFDFSpUUPny5VW5cuVsV8QEAAAAAAAAAACArCcmJkZdu3bV5cuXJUkdOnTQ+++/n+rjbN26VaNHj5YUt5TtqlWrVLZsWYfGCgDImSj+AlIhNDRUkZGRKlmyZGaH4jJat26tS5cuWffd3d3VvHlzDRkyxG7Jwg4dOkiSSpQooQULFtgdIyAgQGPGjLGbIrlQoULy9vZWx44d9dxzzzn5KgAAjnDgwAHt2LFDp06d0t9//y3TNFW8eHH93//9n1q2bKl69epldogAAKQJOQ4A4IrIbwCAnGTDhg0aMWKEpLi+rPXr16dqZRJJ6tKli06cOCHDMNSmTRvNmDHDGaECAHIgir/7I0mqAAAYyElEQVQAOM3MmTN1/vx5hYWFaenSpYmeDwoKUr9+/ZLcN2/evPriiy+sZRqqVq0qwzBUqlQpbdu2zW7bzp076+TJk3aPJSwEa9eunaZOnZreywEAOMmZM2c0ceJE/fLLL9Zj8R9RE76f165dW+PHj1e1atUyPEYAANKCHAcAcEXkNwBATtW1a1cdP35chmGoZcuWmjVrVor33bNnj1577TVJkpubm9avX6/HHnvMWaECAHIYir8AOI2Pj49+//13GYahvXv3qmjRopKktWvX6sknn1SJEiUUHh6uo0eP6uDBg9qzZ49OnjwpwzBkmqaKFi2q7du3y9PTM9nir7t378rPz0+hoaH6+++/dfnyZV26dEl//vmnXaPTlClT1LFjx0z5PQAAkvfLL7/o9ddf1+3bt5PsLJD+7USQpNy5c2v69OnM6ggAyPLIcQAAV0R+AwDkZAcOHNArr7wiKS7/+fr6qnbt2ina95VXXtGBAwdkGIZat26tzz77zJmhAgByGIq/ADjNG2+8oR07dsgwDH377beqU6eOli5dqilTpqhevXpavnx5osahffv2aeDAgYqKipJhGPr000/Vvn37+878lZSQkBCNGTNGe/fulWEYat68uebMmeOsSwUApMHff/+tdu3aKTw8XNK/HQZJfTxN+Jy7u7u++OILNW3aNOOCBQAgFchxAABXRH4DAMC+76t+/fpavnz5A/f55Zdf1LNnT0lxs36tW7dOlStXdnaoAIAcxD2zAwDguipUqGDdvnDhgkqWLKmpU6fKNE398ssvWrhwofr372+3z1NPPaVGjRpp586dkqT/9//+X5rOXbJkSU2cONEaVXj58uU0HQcA4DyTJ09WeHi4XadAsWLF1KJFC1WsWFH58uVTWFiYDh06pKCgIEVHR8swDNlsNo0ePVrfffedvLy8MvkqAABIjBwHAHBF5DcAAKQRI0YoMDBQMTExOnjwoHbu3KlmzZrdd5958+ZJkrVcJIVfAABHo/gLgNOUK1fOun3p0iV16tRJw4cP15QpU2Sapr744gu1bt3abjtJ1uhBSSpQoECaz1+2bFnrdnR0dJqPAwBwvGvXrmnLli3WUr+GYahPnz4aOnSo8ubNm2j74OBgjRo1Sr/++qskKTQ0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\\n\",\n      \"text/plain\": [\n       \"<Figure size 3000x3000 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import pandas as pd\\n\",\n    \"import numpy as np\\n\",\n    \"%matplotlib inline\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib as mpl\\n\",\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import seaborn as sns\\n\",\n    \"\\n\",\n    \"dpi = 300\\n\",\n    \"mpl.rcParams['figure.dpi']= dpi\\n\",\n    \"\\n\",\n    \"# sns.set(font=['sans-serif'])\\n\",\n    \"# sns.set_style(\\\"whitegrid\\\",{\\\"font.sans-serif\\\":['Microsoft JhengHei']})\\n\",\n    \"\\n\",\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import matplotlib.pyplot as plt \\n\",\n    \"myfont = FontProperties(fname=r'/home/gezi/py3env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/微软雅黑.ttf')\\n\",\n    \"\\n\",\n    \"import numpy as np; np.random.seed(0)\\n\",\n    \"import seaborn as sns; sns.set()\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"f, ax = plt.subplots(figsize=(10,10))\\n\",\n    \"#ax = sns.heatmap(cm2, ax=ax,vmin=0, vmax=1,annot=True,fmt ='0.1g', xticklabels=models, yticklabels=models)\\n\",\n    \"#ax = sns.heatmap(alpha,cmap = 'RdBu',ax=ax,vmin=0, vmax=1,fmt ='0.1g', xticklabels=words, yticklabels=words)\\n\",\n    \"ax = sns.heatmap(alpha,cmap=\\\"YlGnBu\\\",ax=ax,vmin=0, vmax=1,fmt ='0.1g', xticklabels=words, yticklabels=words)\\n\",\n    \"#设置坐标字体方向\\n\",\n    \"label_y = ax.get_yticklabels()\\n\",\n    \"plt.setp(label_y, rotation=0, horizontalalignment='right',fontproperties=myfont)\\n\",\n    \"label_x = ax.get_xticklabels()\\n\",\n    \"plt.setp(label_x, rotation=90, horizontalalignment='right',fontproperties=myfont)\\n\",\n    \"plt.title('Self Attention',fontproperties=myfont, fontsize=25)#标题\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 308,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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KKG6deuqS5cukn67H+bNm6f58+crPT3deM8TJ05o7Nix+vTTT+3O6wjjxo1TamrqLX+tTJkyGjJkiMLDw3Ns3s/KytLmzZs1bdo0HT582K4M8+bN05AhQ1SuXDm7rgMAAAAAIL/ystlsNleHAAAAAJB/bdq0Sc8+++wdJ0TkpGbNmho7dqweeughByazxqlTp9SzZ8/bfjD6V8WKFdOECRNy3Rxjs9n0+eefa/LkyUbNBD4+Plq0aJFq166dq/1uatu2rWJjY3Osi4qKUvny5fO011999NFHmjZtWo51EydOVK9evRy6t6eIi4tT27Ztc3zfBQUF6fvvv1fBggXt3mP69OmaMmVKjnW+vr7avHmzSpYsafcejtCqVSvFx8ffscbHx0dHjhxxUqLfnD59Wh07dsyxrnnz5pozZ471gf5/r7zyil3H1Xbr1k2vvvpqrqc0nj59WqNGjTKeitW5c2d98MEHudrrpoULFxo1wTZr1kxHjx7V1atX//ZrjRo10sSJE1WlShW79z948KBGjx6tc+fOGV9TtmxZRUVFydfXsT/H6W734ZgxY7R8+fIc6yZNmqTw8HCH7Hnu3Dl1795dKSkpxtfcc889euONN9S6des87x8fH68333xT69evt+s6R/4d9/jjj2vv3r051rVt21YbNmz429d9fHw0dOhQDR8+XAUKFLBrb5vNplmzZun999+3qynyqaee0pgxY+zaCwAAAACA/MpzfnQeAAAAgEd6+OGHNW7cuDytER0draFDh2rQoEE6cOCAg5I5ns1mu+NEjL+qUaOGli5dmqepSF5eXho8eLA++uij204d+aOsrCx9+OGHud4PnmHJkiVGDZcdO3bMVeOXJIWFhcnLyyvHuhs3bmjZsmW52gPOtXnzZuPGL29vb40fP17vvfdeno7nrVSpkr799ls1adLEqH7NmjW5Pj7RXrt27bpl49eAAQP0zTff5KrxS5Lq1aunefPmqWrVqsbX/Prrr7edQIbcy87O1iuvvGJX41e7du20fPlyhzR+Sb9Ny/r444/12muvycfHx/i6iRMn6sKFCw7JYOpWjV+FCxfWrFmz9O9//9vuxi/pt3/HDB06VFOmTLHr9ds7QQ8AAAAAgPyM5i8AAAAAlhswYIDGjx9v1ChyJ9u3b1efPn303HPPOe3Df3t888032rNnj1FtaGio5s6d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N24Y1daoUcOutatWrWp81NL//vc/ZWRk2LU+IEk7duwwnl7XuXNn+fj4WJzIPg8++KBKlSplVHvy5Ent27fPYXub/l6kpqY6bE8T3t5m35KxOlenTp2M6n799VctXLjQ0ixwPne5D53NtCE1LS1NH3zwgcVpbm3mzJlGE9eqV6+upk2bOiERAAAAAABwVzR/AQAAAHCoiIgITZw40bjZyhm+/vpr49rcTEwKDw83qouPj9f06dPtXh+wZxqWOx35eJOPj49duRw5/cvf39+oLi4uzmF7mjDN9euvv1qao3379goKCjKqnTZtmsumIMEa7nIfOtujjz5q/Nrnz5+v3bt3W5zoz44dO6ZFixYZ1T7++OMWpwEAAAAAAO6O5i8AAAAADmWz2TRnzhw98cQTOnbsmKvjaNWqVdqzZ49RbbFixVS3bl279wgPD5efn59R7cyZM7V//36793CUK1euuGxv5M61a9cUGRlpVFuxYkU1aNDA4kS5Y8/Rj6tWrXLYMYyBgYFGdTExMQ7Zz5RprmvXrik+Pt6yHAUKFFDXrl2NahMTE/X6669blsVEcnKyS/fPb9zlPnS2YsWKqUePHka1NptN//73v5WYmGhxqt9kZGRo7NixRlO/Spcurd69ezshFQAAAAAAcGc0fwEAAACwxP79+9WrVy9NmDDBZZNifv75Z7saFXr06GF8BNYflS5d2nj6140bNzR8+HCdO3fO7n3yavny5frnP//p9H2RNytXrlRaWppRbbdu3SxOk3v33nuv6tSpY1R77do1rVmzxiH7lihRwqjOkUdNmggKClJAQIBR7d69ey3NMmTIEOPjMdetW6cpU6ZYmudWEhIS9NRTT2nr1q1O3zs/c6f70NlGjBihggULGtXGx8frmWeesfxoa5vNptdee03Hjx83qh85cqTxawAAAAAAAPkXzV8AAAAALJOVlaWvvvpKbdu21VtvveXUY9X279+vQYMGGU+J8fb2Vp8+fXK939NPP23cPJGQkKABAwbol19+yfV+9jh79qyee+45jRkzRlevXnXKnnAce45AdOfmL8m+6V+OOvqxfPnyRnWRkZFGk3YcKSQkxKhu7dq1luaoVKmS8fQvSZo+fbrTGsCys7M1f/58devWTVu2bHHKnncbd7kPna1MmTIaNGiQcf2BAwc0dOhQyxras7OzNWHCBC1dutSo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Qnlex9ECAwM1btw4V8f4mwYNGmju3LkKCQlxdZTf+fr6qmTJkq6OkS+5633obF5eXho/frz++9//yt/f39VxJEmDBw/WrFmzFBgY6OooAAAAAADATdH8BQAAAMCh6tat67Yfzrdu3VorV65Ur169nLKft7e3xo4dqylTpqhIkSJO2fN2/Pz89Oyzz2rWrFkuzQEz9hz52K1bNwuTWMee6V+5PUL1jypUqKC33npLXl5eeV7L0bp06aInnnjC1TH+JjQ0VBEREXrooYdcHUW1a9fWwoULdf/997s6Sr7lrvehK/Tr10/z589XjRo1XJahbNmy+vTTT/XSSy9Z2qwOAAAAAAA8H81fAAAAAByqSZMmWrt2rUaPHu02U6YaNWqkL7/8UjNnzlS5cuWcvn+XLl20atUqdenSxel7e3t7Kzw8XKtXr9bo0aPdZpIJbu/w4cM6duyYUW1gYKDatm1rcSJrhIWFyc/Pz6j2p59+UkxMTJ737NKli9588023bKR49dVXndaYao9ixYrps88+07vvvqsSJUo4ff8KFSronXfeUUREhGrXru30/e827nofukLt2rW1ZMkSvfzyy049btHf31+DBw/WqlWrPPb5DgAAAAAAnIvmLwAAAAAOFxQUpGeffVYbNmzQzJkz1adPH6c3DQQGBqpXr15auHCh5s2b5/JpMaVKldKUKVO0cOFCdejQwfLpQ8WLF9fQoUMVGRmpSZMmqUKFCpbuB8exZ8pV+/btVbBgQQvTWKd48eJq1aqVcX1ERIRD9u3bt69mzZqle+65xyHrOYq3t7cmTpyo//znPwoICHB1nL/p3r27IiMj9eKLL6p06dKW7uXl5aUWLVroo48+0tq1a9WjRw95e/MtLGdw9/vQ2Xx9ffXPf/5TmzZt0gsvvKBSpUpZtlfhwoX11FNPacOGDXrppZc45hEAAAAAABjzdXUAAAAAAPmXj4+PWrdurdatW8tms+n48ePavXu39u7dq0OHDun06dOy2WwO2cvLy0vVq1dXkyZN1KZNGzVv3twtp1zVr19f06ZN07lz57Ry5UqtXLlS0dHReV7Xy8tL9957r+6//361b99eTZs2dcvpRshZpUqVNGLECKPaDh06WJzGWs8++6xq1aplVOvIBtLmzZtr1apV+vrrrzV37lzFxcXZvUalSpU0cOBAh2W66R//+Ic6duyo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0ybjtK327ds7tO7QoUP1xRdfKDY2VsnJyRo6dKguX76shIQEu3EPP/ywJk+erHvuuUfS9aDZiy++qJo1a6p79+4aPHiwWrZsqa1bt+rEiRM6d+6c0tPTjfkeHh6SpC+++MLoq1y5sgIDAx3+GUyfPl3Tp0/P9l1UVJQaNmx4y7lt27bVwoULHd4LAAAAAAAAAAAAAAAAQNHkdOGvBg0aGM9RUVG6//77jfaNk79uDlZ17NjRoXU9PDzUpUsXLViwQNL16x9vVqdOHYWEhGQJk/3444+SpJiYGK1cuVJDhgwxwl/S9dO/bg6oeXh4KCEhQbt27ZIklStXTo888ogWL17sUJ1Fwblz54wT2vLi888/V+3atQuwIgAAAAAAAAAAAAAAAODu4/Thr759+xptd3d3nT592rjysXbt2qpbt+4t17JarTp06JC+/vprbdq0KcspX9L1QNm0adPUo0cP42Sxm33//ffGc8uWLSVJLVq0MPp27typRo0aGW0PDw9t2LDBOJmsR48e8vX1NU4Sc0RqaqrOnTtntL28vG57teUNFStWdHifvLLZbMaVlnlx81WeAAAAAAAAAAAAAAAAAPLG6cJfFSpUkJ+fn65cuaLDhw8rNTXVeOfh4aErV67o/vvv1+HDh9W5c+cs82NjY/Xdd99p79692r17ty5dupTjflarVR999JHuu+8+1a9fP8v73bt3G88PP/ywJCkwMNCoMTIyUgMHDjTGlChRQuvWrZMkWSwWPfvss6pWrZo2b97s0PePiYnRyJEjjXapUqW0aNEiu4AZAAAAAAAAAAAAAAAAADhd+EuSOnfurFKlSql169bGCVrS9ZO/GjZsqNWrV+vEiRPy9/fX2bNn9e233+rw4cOKiopSbGzsLdctV66cnn76aQUFBemdd95RZGSkJOn48ePq2bOnunfvrv79+xtXEkZGRuqnn34y9m7btq0kycXFRc2aNdO3336r5ORkfffdd8Ye58+f18mTJyVJDz30kKpVq+bw9/7mm280YcIEJSUlSZIqV66siIgI1apVy+E17oQqVapo27ZtZpcBAAAAAAAAAAAAAAAA3NWcMvw1depU4/lGkEqSPD09jec6depIun5S1syZM+1OCLtZqVKl9Pjjj6tTp0568MEH5erqKklatGiRpk+frtWrV0uS0tPTtWrVKq1evVqNGzeWv7+/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/eK4444rd65evXpx++23R7169bLKV1paGrNnz07G++23XzRq1CirewIAAAAAAAAAAOlR/qoiU6dOLTeuTPlr2rRp8fbbb5c7V1RUFPfff3+UlZVllW/27NmxZs2aZNy5c+es7gcAAAAAAAAAAKRL+auKvPXWW8lxhw4dom3btru1/qWXXooLL7wwNmzYsM21yZMnx/Dhw2PLli2VzjdlypRy46OOOqrS9wIAAAAAAAAAANKn/FUFSktLY9q0acl4d3f9+t///d8YOnRoFBUVRUREJpOJc889Nxo2bJjMefrpp2PIkCGxfv36SmV89tlny4179epVqfsAAAAAAAAAAADVg/JXFZg5c2a5VypWtPy1bt26uPzyy+M3v/lNlJaWRkRE3bp1Y8yYMXHttdfG3XffHQ0aNEjmv/7661FYWBhz5szZrXzvvvtuLFy4MBl37tw52rRps1v3AAAAAAAAAAAAqhflryrw6quvJscNGjSI7t2773LNnDlzorCwMF5++eXkXH5+ftx2221RWFgYERE9evTYpgC2aNGiOOuss2LChAlRVlZWoXz33XdfufGPf/zjCq0DAAAAAAAAAACqL+WvKrB1+euHP/xh1K9ff4dzN23aFLfddlsMGDAgFi9enJxv3rx53HfffXHyySeXm9+zZ8944IEHomXLlsm5oqKiGD16dJx55pkxa9asnWabPXt2vPHGG8m4QYMG0bdv3wp/bwAAAAAAAABA9ZbJ1PFVA76gMvzNydInn3xS7pWKO3vl45QpU+LUU0+Ne+65J4qLi5Pzhx56aDzxxBPRo0eP7a474ogj4vHHH4/OnTuXOz9r1qwYMGBAXHvttfH5559vs660tDRuvPHGcucGDBgQzZo1q8i3BgAAAAAAAAAAVGPKX1l66aWXyo23V/6aN29eDBkyJAYPHhxLliwpd+3000+PyZMnR9u2bXf6nNatW8ekSZOif//+5c6XlpbGY489Fscff3zceOON5XYTmzBhQsycOTMZ169fPy644IIKf28AAAAAAAAAAED1lZd2gFz33HPPJcft2rWLDh06JOOFCxfGHXfcES+88EKUlpaWW9esWbO44YYb4pRTTqnwsxo0aBC33nprnHjiiXH99dfH6tWrk2ubNm2KiRMnxsMPPxynnXZanHHGGfH73/++3PqLLroo9t577939FgEAAAAAAAAA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ZwrMwNClFwWkBLsSJLGXYImCMRJ7ARXxK7aABUuUWFDz2sUY0eSNRo2I7SX2BKwhFhCsgChKLzr0OszM7w9/nngYylTODFzXWrOYvc/e+7kHccUVb/cTs2bNioKCguTaRCIR55xzTjRo0KBSng0AAAAAAAAAANsz5a9qYO7cuTFu3Ljk+LTTTqu0s3/2s5/FhRdeGHfddVdERLz++utxxx13xJAhQza7b8WKFTFz5szIz8+PxYsXJ39dsGBBLFy4MObPnx/z58+PFStWlDpLcXFxfPDBB3HYYYdV6GcCAAAAAAAAAACUvyrk7bffjoceeigiIlq2bBnDhw8v1zkPPvhgFBYWRkRE06ZN44gjjqi0jBER5513Xrz77rsxfvz4iIgYOXJk7L777tGrV69N7nn11Vdj6NChFX52nTp1ol27dtG+ffvYaaedolWrVhU+EwAAAAAAAAAAUP6qkIULFyYLVe3bty/XGfPnz4/Ro0cnx7/+9a+jqKgo1q5dW+5ciUQiatWqlRxnZGTEH/7wh+jdu3fk5+dHRMTQoUOjU6dO5c7942ftsMMO0apVq2jbtm20adMm2rVrF23bto0dd9wxmjVrFolEokLPAAAAAAAAAAA2I8O/l4ftlfJXmj3wwANRUFCQMn7ggQcqdGbr1q1j7NixKXNNmzaNG264IS644IKI+P61jhdeeGGMGjUq6tSps9nz6tevHz179oxmzZolv1q0aBGtWrWKli1bphTNAAAAAAAAAADYfi1cuDA++uijmD17dqxatSpycnKiZcuWseuuu0bbtm3THS/FihUr4pNPPonZs2fH8uXLY82aNZGXlxcNGjSIzp07R6dOnSIzMzPdMTdL+SuN5syZk3LrV1U7/PDDo2/fvvHUU09FRMQXX3wR1113XfzhD3/Y7L6uXbvGvffeuzUiAgAAAAAAAABQA40dOzZGjhwZH374YRQXF290TdeuXaNfv37Rp0+ftL1JrrCwMF588cV48sknY8KECVFUVLTJtbm5udGrV6845ZRTYs8999yKKUsvI90Btme33HJLyq1fW8OVV14ZrVu3joiIli1bxoknnrhVnw8AAAAAAAAAwLZj5cqVcdFFF8X5558fEydO3GTxKyJiypQpccUVV8QZZ5wR33777VZM+b0vvvgi+vbtG0OGDIn3339/s8WviIjVq1fH888/HyeeeGJcffXVsWLFiq2UtPTc/JUm//73v+PVV19NjocMGRLnnntuypqCgoLIzs6u1Ofm5eXFLbfcEo8++mjccMMN0bBhw0o9HwAAAAAAAACA7cPKlSujX79+MXny5DLte++99+KUU06Jxx57LJo2bVpF6VJ9/PHH0a9fv1i+fHm59o8ePTqmT58eDz/8cOTl5VVyuvJz81carF+/Pm666abkuG3btnHmmWemrPnggw/isMMOizfffLPSn9+jR4+49957Fb8AAAAAAAAAACi3q666qkTxq1WrVnHVVVfFmDFj4v33348XX3wxbrzxxujYsWPKum+++SYuvPDCWL9+fZXnXLp0aQwYMKBE8atp06Zx0UUXxahRo+Lf//53TJgwIcaOHRsjRoyIX/7yl5GRkVqtmjRpUvzud7+r8rxlofyVBn/+859j+vTpyfHll18etWrVSo7ff//9OPfcc2PBggUxcODA+Otf/5qOmAAAAAAAAAAAsFFjx46Nl19+OWWuR48e8X//939x5plnRufOnaN+/frRsWPH6Nu3bzz33HNx5JFHpqz/8MMP4+9//3uVZ7333nsjPz8/ZW6//faLF198MS644ILYY489okmTJpGXlxetW7eOww8/PO64447461//WuKWrxdeeCE++OCDKs9cWspfW9m0adPinnvuSY579OgRvXr1SlnTuHHjaNy4cUREFBYWxs033xzXXnvtVmk6AgAAAAAAAADA5hQXF8fdd9+dMteqVav44x//GPXq1dvonlq1asUdd9wRu+yyS8r8Aw88EKtXr66yrIWFhTFmzJiUuZYtW8a9994b9evX3+zeHj16xC233FJifsPz0kn5aysqKCiIK664IgoKCiIiIjs7O66++uoS6zp27BijRo2Kbt26JedGjRoVgwYNijVr1my1vAAAAAAAAAAAsKF//etfMWXKlJS5q6++usQtWRvKzMyMG2+8MWVu0aJFMWrUqErP+IPPPvsslixZkjJ32mmnRd26dUu1/xe/+EWJV1a+9957lZavorLSHWB78uCDD8Znn32WHJ933nnRtWvXja5t0qRJPPLIIzFgwICYOHFiRESMGzcuzj777HjggQc22ZL8wb///e+46667Nvl53759o2/fvqXK/d5770WXLl1Ktba0Hnnkkdh3330r9UwAAAAAAAAA2C4l0h2A7c1LL72UMm7dunUcdthhpdrbrVu32GeffWLChAnJuZdffjnOPPPMSs34gwULFpSY++lPf1qmM7p37x5ffvllcrxw4cIK56osbv7ainr16hXNmzePiIguXbrEwIEDN7u+Xr168dBDD8Xee++dnPvggw/ioosu2uKzFi9eHJMnT97k1/z58yv2wwAAAAAAAAAAsN0pKCiIN954I2WuT58+kUiUvoX4q1/9KmU8adKk+O677yol34Y29krJBg0alOmMRo0apYx/eOtfdaD8tRV16tQpHnvssWjdunUMHz48srOzt7inbt26MXLkyNh9990j4vtC2GWXXVbVUWPdunVV/gwAAAAAAAAAAGqWSZMmxfLly1PmevToUaYzNnxbXFFRUbz11lsVzrYxjRs3LjG3bNmyMp2x4Wsjd9hhhwplqkxe+7iVtW3bNsaMGVPq94ZGROTl5cXIkSNjwIABceWVV0a3bt22uOfAAw+MMWPGpMzddddd8a9//atUz1y7dm3y+/333z/uueeeza5fsmRJHHroocnxCy+8EC1bttzk+pycnFLlAAAAAAAAAACg+pg6dWrKODMzM/bYY48yndGuXbvYYYcd4ttvv93kuZVll112iUQiEcXFxcm5CRMmJC9iKo2JEyemjH/8Fr90U/5Kg7IUv37QsGHDePLJJ0t9RV69evWiXr16KXP169cv9fNWrVqV8uwtZf5xWSzi+3JXeX5OAAAAAAAAAACqr6+++ipl3LJly6hTp06Zz+nQoUNK+WvGjBkVzrYxDRs2jP322y/efvvt5Nyjjz4aJ598cqkuLxo3blxMmzYtZe6EE06o9JzlpfyVJvfee2/cd999lX7uv/71r2jTpk2Fz1m4cGHy+7y8vAqfBwAAAAAAAABAzffll1+mjFu1alWuczZ8o9yGpbLKdMkll8T48eOjsLAwIiLmzJkTF110Udxxxx2b7cVMmjQprrjiipS5I444Inr27FllWcsqI90BqJ5+XP5q3rx5GpMAAAAAAAAAAFBd/LhTEhHRokWLcp2zYflrwYIF5c60JbvttltcffXVKXNvvPFGHHvssfHwww/HlClTYuXKlbF+/frIz8+Pt99+O4YOHRqnnnpqLF26NLlnn332ieHDh1dZzvJw81c1kJWVFbVq1SoxX1hYmHydYiKRiNzc3I3u//ErGivLj1ua5W1oAgAAAAAAAABQOitWrIiVK1dW6TPq1q1b4TfAbdhTKe95G+5bs2ZNFBUVRUZG1dxldeqpp0ajRo1i2LBhsWTJkoiImDt3btx2221b3JubmxtnnnlmXHDBBRvt+KST8lc1cOyxx8Ytt9xSYv7dd9+NM844IyK+L2CNHTt2o/u7dOlSqXnWrl0bM2fOTI7btWtXqecDAAAAAAAAAJDqL3/5S9x3331V+oxBgwbFhRdeWKEzNix/5eTklOucje1btWpVhctpm3P00UfHAQccEH//+9/j2WefLfEKyw0lEok4+eST48ILL4zGjRtXWa6KUP6ihMmTJyffcZqRkRFdu3ZNcyIAAAAAAAAAYJMSiXQnYDuyevXqlHF5b8LaWPlr5cqVVVr+ivi+F/P+++/HrFmztri2uLg4Hn/88ZgwYUKcf/75cdRRR1VptvJQ/qKE8ePHJ7/v0KFD1KlTJ41pAAAAAAAAAACgYvLz82Po0KHx+uuvp8zXrVs39t5772jdunXk5ubG0qVL4/PPP4+pU6dGUVFRRERMnTo1LrnkknjppZfitttuK/dtZ1VB+YsSfvx6yX333TeNSQAAAAAAAAAAqE5yc3OjoKAgOV63bl25zlmzZk2Jubp165Y71+Z89913cfrpp6e85rFOnToxePDg6Nu3b9SuXbvEnpkzZ8add94ZL774YnLulVdeiZUrV8aDDz4YmZmZVZK1rDLSHYDqZerUqTFlypTkeP/9909jGgAAAAAAAAAAqpMN3yC3sRJXaWxsX1W9ne7yyy9PKX41aNAgRo0aFaeddtpGi18REe3atYs777wzLrroopT5t99+Ox5++OEqyVkebv4ixeOPP578vl69erHffvulMQ0AAAAAAAAAwPahX79+8Zvf/KZKn1EZN2ttWNBasWJFuc7ZcF9OTk5kZFT+PVZvvPFGvP322ylzN9xwQ3Tq1KlU+y+44IKYNGlSvPnmm8m5Bx98ME499dQqu6msLJS/SFq0aFE888wzyfHRRx+9yXYjAAAAAAAAAACVJy8vL/Ly8tIdY4uaNWsWX331VXI8f/78cp2z4b5mzZpVKNemPPnkkynjDh06xBFHHFGmM84///yU8tfy5cvjn//8Z/Tp06dSMlaE1z6SdMcdd6S8h/WUU05JYxoAAAAAAAAAAKqbDh06pIznzp1brnM23NexY8dyZ9qU4uLi+OCDD1LmDjjggDKfs+eee0b9+vVT5j788MMKZassyl9ERMQHH3wQzz77bHJ88MEHR9euXdOYCAAAAAAAAACA6mbDktb8+fNj1apVZT5nxowZKeP27dtXKNfGLF++PJYuXZoy16ZNmzKfk5GREa1atUqZW7BgQYWyVRavfdxOrFu3Lr755puNfpafnx+DBw+O4uLiiIjIysqKwYMHb814AAAAAAAAAEB5ZSTSnYDtSJcuXVLG69evj48++ih69uxZ6jNmzpwZixYt2uy5lWH16tUl5nJycsp1Vm5ubsr4x2/XSyc3f20Hli1bFv3794+JEycm5/79738nW5dz586NtWvXJj8744wzonPnzls9JwAAAAAAAAAA1duee+4Z9erVS5l77733ynTGhuszMjLK9TrGLWnQoEGJucWLF5frrPz8/JRxw4YNy3VOZVP+2sYtWLAgTj311Hj//fdT5idOnBjnnHNOLF26NHbdddd4+umno3PnztGtW7e49NJL05QWAAAAAAAAAIDqLDs7Ow466KCUueeffz75xrnSeO6551LGe+65ZzRp0qRS8v1YTk5O5OXlpcxNnjy5zOfk5+fHzJkzU+aaNWtWoWyVRflrG/bNN9/EySefHNOmTUvOnXLKKbHDDjtERMSECRPiiCOOiCeeeCJatGgRTzzxRIwYMSJq1apV5mfVqVMnBg8enPzaWHMSAAAAAAAAAICa76ijjkoZz549O8aOHVuqvVOmTClxidGRRx5Zadk2tNdee6WM33nnnfj222/LdMZzzz1XotzWvXv3CmerDFnpDkDEs88+G88+++xm18yZM6dM7zadMmVKnH322Sl/WAcMGBCDBw+O3r17xznnnBMrVqyIxYsXx/XXXx/33ntvHHLIIXHggQfG0qVLo0WLFtGoUaNSPy8nJycGDBiw0c/Wr18fa9asibVr18aaNWtizZo1kZOTE61bty71+QAAAAAAAAAAVA+HHXZYdOnSJaZOnZqcu+mmm6Jnz55Rt27dTe4rLCyMq6++OmWuadOm8Zvf/KZUz92wO9OjR4949NFHN7vnoIMOirfeeis5XrNmTdx8881xxx13lOqZs2bNij/96U8pczk5ObHvvvuWan9VU/6qgNzc3GjevHlEfP8HsTr59NNPU4pfJ5xwQgwePDgivm80Pvroo3HxxRcnr6T77rvvYvTo0TF69OjknkQiEVlZWZGVlRWZmZlb/L64uDjWrl2bUvJau3ZtrF+/vkS+3/3ud3HqqadW8e8CAAAAAAAAAACVLZFIxCWXXBLnn39+cm7OnDlx/vnnx/3331/iVYsREevWrYsrrrgiPvnkk5T5gQMHRm5ubpVlPf744+P++++P/Pz85NwLL7wQdevWjWuvvXazb8ibOnVqDBo0KJYsWZIyf9ppp230Z0wH5a8KOOqoo0pcY1cederUKdMtWxuaM2dOibk+ffrE/fffH7Nnz44DDjgghg0blvJ5t27d4vnnn48///nP8eijj5b4QxoRUVxcHAUFBVFQUFDubBuTm5sbvXv3rtQzAQAAAAAAAADYeg499NA44ogj4pVXXknOvfvuu9G7d+/o169f/OxnP4tmzZrFt99+GxMnToy//OUvMX369JQz9tprrzjppJOqNGfdunXjsssui6FDh6bMjxo1Kt566604+eST42c/+1m0bt06cnJyYunSpfHZZ5/Fa6+9Fi+88EKJ3kzr1q03+Xa8dFD+qgaOOOKIuOWWW8q9f2Ovg8zKyoqBAwfGI488EnfddVdkZZX8S12nTp0YNGhQDBgwIN566634z3/+E1OmTIm5c+fG8uXLY82aNVFUVBTr168v8d7SijjqqKOiXr16lXYeAAAAAAAAAABb38033xzz5s2Ljz76KDk3Z86cuPHGG7e4t127dnHPPfdstNNS2Y4//vj45ptv4oEHHkiZnzdvXqlf/xgR0ahRoxg5cmQ0aNCgsiOWm/LXNuy4446LAw88cIvXzNWqVSsOO+ywOOywwza5pri4ONavX58sg/3wa2FhYRQWFibXZWRkREZGRiQSiUgkEhsdb+66PAAAAAAAAAAAaoa8vLz4y1/+EldeeWW89tprpd7XvXv3uPvuu2OHHXaownSpLr300ujQoUPccMMNsXz58jLv33fffeO2226LFi1aVEG68ksUV+aVTiQVFBTEp59+mhx369ZN6anGmZbuAFAtfLdmSrojVFjPvzZMd4QK++K86vUPENurgqJV6Y5QYZPzS74uuqbpvkOndEcAAAAAANgGdE53ACrRzr96JN0RqATTnz0j3REq5F//+leMHDkyPvzww02u6dKlS/Tr1y+OO+64SCQSZX7Ghm/H69GjRzz66KNlOiM/Pz9Gjx4dzzzzTMyYMWOza2vXrh0///nP45RTTokDDjigXJmr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1157bZnO6NatW1x88cXJ8b333huPPfZYpeYEAAAAAAAAAABqJq99rAKLFi2Kfv36xcKFCyMiIisrK+68885Sve5xQ+eee25MnDgxxo0bFxERN9xwQ2RmZsZJJ51UpnOaN28e119/fZmfXxlatWqVlucCAAAAAAAAAMC2TPmrki1evDj69+8fM2fOTM4NHjw49t5773Kdl0gk4tZbb40TTjghZs6cGcXFxXH99dfHunXr4owzzij1OQ0aNIiTTz65XBkAAAAAAAAAAIDqx2sfK9GiRYvi9NNPj2nTpiXnjjnmmOjfv3+Fzm3QoEE8+OCDyZvDiouL46abbopbb701iouLK3Q2AAAAAAAAAFDDJXxtE19QDspflWTevHlx2mmnxRdffJGc22uvveLmm2+ulPPbt28fI0aMiFq1aiXn/vznP8fFF18cK1asqJRnAAAAAAAAAAAANYfyVyX4/PPP48QTT4yvv/46Ode2bdsYMWJE1K5du9Ke071797j77rsjOzs7OffKK6/ECSeckHLbGAAAAAAAAAAAsO1T/qqg119/PU455ZRYsGBBcq558+bxv//7v9GkSZNKf96hhx4ad911V0oBbMaMGfGb3/wmnnzyyUp/HgAAAAAAAAAAUD0pf5VTcXFx/PGPf4zzzz8/Vq1alZxv3Lhx/OUvf4k2bdpU2bMPP/zwuO+++yI3Nzc5t3r16vjd734XZ511VsyZM6fKng0AAAAAAAAAAFQPyl/lsHTp0jjvvPPirrvuiqKiouR8s2bN4m9/+1t07NixyjMcfPDB8de//jUaNWqUMj9+/PgYOXJklT8fAAAAAAAAAABIL+Wvcli/fn189dVXKXOtW7eOxx9/fKsUv36wxx57xN///vfYeeedk3OHH354XHvttVstAwAAAAAAAAAAkB5Z6Q5QEzVp0iQeeuihOPnkkyM/Pz923333+OMf/xg77LDDVs+y0047xahRo+Kqq66KefPmxe233x6ZmZlRXFwchYWFWz1PaWVmZkYikUh3DAAAAAAAAAAAqLGUv8ppp512ij/96U/x2GOPxbBhwyInJydtWerWrRt33313rFy5Mplj9OjRcc0116Qt05aMHDkyDjzwwHTHAAAAAAAAAIAarzjD5SuwvVL+qoDdd989dt9993THSKpbt266IwAAAAAAAAAAAFtJRroDAAAAAAAAAAAA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ALBp1ab8ddddd6UUvxo1ahQjR46M3XbbbZN7WrRoEUceeWQceeSRMWvWrPjPf/5T6ufttttuccghh2zy82XLlsXtt98ef//735NzK1asiGHDhsXjjz9e6uf84MevfKxTp07sscceMX78+IiIePfdd2PWrFnRtm3bMp/7gzlz5sRpp50WCxcuTJnv27dvXHTRRdGsWbNN7q1du3bstttusdtuu8XAgQPj3Xffjezs7FI9t379+pv9fQQAAAAAAAAAAKpGxpaXVL1169aVeCXi7373u80WvzbUtm3b6Nu3b6Vlql+/fgwbNiz69++fMj9hwoR49913y3TWggUL4u23306Od99999hrr72S4+Li4nj66afLnXX16tUxYMCAlOJXdnZ23HrrrXHjjTdutvi1Mfvuu2/svffe5c4DAAAAAAAAAABUvWpR/vrss89i2bJlyXHt2rWjV69eaUz0XxdffHE0bdo0Ze71118v0xnPPPNMFBYWJse9evWKww47LGXNs88+G0VFReXKeOutt8b06dOT44yMjBgxYkQcd9xx5ToPAAAAAAAAAACo/qpF+Wv+/Pkp4/r160dWVvV4I2VOTk4ceuihKXOfffZZqfdveKtXdnZ2HH300bHrrrtGp06dkvPz58+Pt956q8z5pkyZEk8++WTK3Pnnnx8HHXRQmc8CAAAAAAAAAABqjmpR/iouLk4ZL168OFauXJmmNCV16NAhZZyfn1/qve+++27MmjUrOT7ooIOiUaNGERHRp0+flLXlefXj/fffn3JjWOfOnWPQoEFlPgcAAAAAAAAAAKhZqkX5q02bNinj9evXx1NPPZWmNCXl5uamjDcsq23O6NGjU8Y/Lnz17t07MjL++5dg7NixZSqWLVq0KP75z3+mzJ177rkpZwIAAAAAAAAA27iMhK9t4QvKoVq0hLp16xZNmjRJmbv99ttj7NixaUqUavHixSnjpk2blmrfsmXL4tVXX02OGzZsGAcffHBy3Lx58/j5z3+eHBcUFMTzzz9f6lz//Oc/o7CwMCXX0UcfXer9AAAAAAAAAABAzVUtyl+ZmZlx2mmnpcytW7cu/t//+38xbNiwWL58eZqSfe/DDz9MGXfu3LlU+8aMGRNr165Njo866qioVatWyprjjjsuZbzhTWGbM378+JRxjx49Iisrq9T7AQAAAAAAAACAmqtalL8iIs4555zo1q1bylxxcXE8/vjj8Ytf/CL+9re/xbp167Z6rlmzZsU777yTMveLX/yiVHuffvrplPGGRa8fzsrLy0uOp0+fHpMmTSrV+Z988knK+Kc//Wmp9gEAAAAAAAAAADVftbkmqlatWvHQQw9F//79Y8qUKSmfLV68OG644YZ46KGHYuDAgfHrX/86srOzqzzT2rVr44orroiCgoLk3O677x777LPPFvd+/vnn8emnnybHO+20U+y5554l1uXk5MQRRxyRUhQbPXr0Rtf+WEFBQcybNy9lrmPHjlvMVdmWLVsW48aNK/X6gw8+OBIJ76kFAAAAAAAAAICKqjblr4iIJk2axJNPPhk33nhjPPXUUyU+nzdvXlx33XXx4IMPxgUXXBC/+tWvIiOjai4v++yzz+Kaa65JKXBlZ2fHddddV6ry0oavb+zdu/cm1/7qV79KKX+9+OKLcdVVV0WdOnU2uSc/Pz+KiopS5ho2bLjFXJVt+vTpMXDgwFKv//TTT72aEgAAAAAAAAAAKkG1a+Hk5OTEjTfeGMccc0z8/ve/jy+//LLEmjlz5sRVV10VTzzxRAwbNix22WWXMj/n448/jszMzOS4oKAgli9fHl9++WW8//778dFHH6Wsz8zMjP/5n/+JXXfddYtnr127NsaMGZMcJxKJ6NOnzybXd+/ePdq0aROzZ8+OiIiVK1fGSy+9FL/+9a83uWflypUl5ho0aLDFbAAAAAAAAAAAwLah2pW/ftCzZ88YM2ZMPPvsszFixIiYO3duiTUff/xxnHjiiTFkyJA466yzynT+Aw88UOq1jRs3jptvvjkOOeSQUq1/7bXXYunSpcnxPvvsE23atNnk+h/KYSNGjEjOjR49erPlrx8X136wfv36UuUDAAAAAAAAAABqvmpb/or4vuB0wgknRO/eveOZZ56JBx54IObNm5eypqCgIIYPHx6zZ8+Oa665plKfX7t27ejTp09ccskl0aRJk1Lv2/CVj8cdd9wW9xx33HEp5a+JEyfGV199FR06dNjo+o294nHJkiXRunXrUuesDHvvvXc88cQTW/WZAAAAAAAAAABANS9//aBWrVpx0kknxfHHHx+PP/54/PGPf4wlS5akrHn00UejZcuWcfbZZ5frGZmZmVG/fv1o1KhRdOvWLbp37x5HHHFENG7cuEznzJo1K/7zn/8kx7Vr144jjzxyi/vatWsX++yzT0yYMCE5N3r06Lj88ss3ur5+/fqRmZkZhYWFybnvvvuuTFn/P/buPd7KMe8f+Het9k7tzpGkQYUOjB6HPAbR8JhJpTKMSI+GIcMYNcTjmEENk8E4PaPEOJazSWQq5FCGmXEmlMNEJSmidmkf2uv3h5/12B333mvtVqv9fr9e6+W+rvu6vvd3tXf99XHdAAAAAAAAAMAWIJnrBoBcyYvw13fq168fJ554YvTv3z9+97vfxdSpUyvd/9Of/hSHH354lU6/+t///d847LDDst7jI488EqlUKj0uKSmJbt261ajWo48+GmeffXYUFKz9Y0okEtG6detKr8N844034uCDD67RswAAAAAAAAAAgPySl9nPFi1axA033BCDBw+uNF9WVhb33HNPjrqKqKioiL/+9a9Zq7dkyZJ49tln13t/n332qTT+5z//mbVnAwAAAAAAAAAAm7e8DH9954ILLojOnTtXmpsxY0aOuomYOXNmLFy4MKs1H3roofXe22+//SqNX3311ViwYEFWnw8AAAAAAAAAAGye8uq1j2tKJpMxYMCAuPzyy9NzuQw/rRnUOuaYY+K//uu/qlXjk08+iSuuuCI9fv7552PRokXRunXrtdYefPDBUVhYGGVlZRERUV5eHnfccUdcdNFFNegeAAAAAAAAAADIJ3kd/oqI2GGHHSqNE4lETvr48ssvY/r06ZXmhgwZEjvttFO16qRSqbjzzjvTIbbVq1fHxIkT41e/+tVaa1u3bh19+/aNRx55JD13//33x9FHH73WiWgAAAAAAAAAAMCWJa9f+xgR8dVXX1Uat2rVKid9TJo0KX0CV0TED3/4w2oHvyK+Da/17du30tzDDz+83vVDhgyJZPL/fowlJSUxbNiwKC4urvazAQAAAAAAAACA/LFZhL/efPPN+OSTT2q09+mnn6403meffbLRUrWt+crHNQNc1XHkkUdWGn/88cfxz3/+c51rO3ToEKeeemqlublz58bgwYNj8eLFNe4BAAAAAAAAAADYvG0W4a8PPvgg+vfvH2PGjFnrJK8Nefzxx2PKlCmV5jIJXdXUG2+8Ee+//356nEwmo1evXjWu1759+9hrr70qza0ZLvu+YcOGxf77719pbtasWTFgwIB46qmnqvXsb775JsaNGxfTpk2r1j4AAAAAAAAAIEcSCZ8t4QM1UJDrBr6zcuXK+NOf/hQ333xzHH744XHQQQfFfvvtt9ZrHMvKyuKNN96I++67Lx5//PFK93r27LlWCGpTWDOY1a1bt2jdunVGNfv37x+vvfZaejx16tQYMWJENGnSZK21yWQyrr322vjFL34Rc+bMSc9/+umnccYZZ8Ree+0V/fv3jx49esT222+/1v6FCxfGrFmz4umnn46nnnoqli1bFqNGjapSn8uWLYtnnnmmWt9tu+22iy5dulRrDwAAAAAAAAAAUNlmE/76zqpVq2LixIkxceLEiIho0qRJbL311tGgQYNYsWJFfPbZZ1FWVrbWvr322itGjhy5qduNlStXxuTJkyvNHXHEERnX7d27d1xxxRVRWloaEd/+uTz++OMxcODAda5v2bJl3HPPPXHOOefE888/X+nea6+9lg6SFRUVxTbbbBNFRUVRXFwcX331VRQXF9e4zw8++CBOO+20au3p27dvXH311TV+JgAAAAAAAAAAsJm89nGrrbZa773ly5fH3Llz47333ot58+atFfyqV69eDBo0KP7yl79Es2bNarvVtUyZMiVWrFiRHhcWFkbPnj0zrtusWbM49NBDK81t6NWP3+255ZZbYuTIkdGyZct1rlm5cmV88skn8d5778X8+fPXG/xq0KBBzRoHAAAAAAAAAAA2ic3i5K8+ffpEq1atYvLkyfHSSy/F3LlzN7pn2223jV69esWAAQNil112qf0m12PNQNaBBx4YzZs3z0rtn/3sZzFlypT0+O2334733nsvOnfuvN49iUQiBgwYEP369YtJkybFY489Fq+88kqsXr16g89KJBKx6667xgEHHBA/+9nPNvgMAAAAAAAAAAAg9xKpVCqV6ybWVFxcHB999FHMnTs3li5dGitWrIitttoqGjduHNtuu2107tw52rRpk+s288bKlSvjnXfeiXnz5sWXX34Zq1atisLCwmjYsGE0b948dthhh2jfvn1OTk7bvM3JdQMAwBaq4Y6/y3ULGfvmk8ty3QIAAAAAkJGOuW6ALOrwm7/mugWy4KObfpbrFshDm8XJX2tq3LhxdO3aNbp27ZrrVrYIRUVF0a1bt+jWrVuuWwEAAAAAAAAAALIkmesGAAAAAAAAAAAAqD7hLwAAAAAAAACf0tS5AAAgAElEQVQAgDy0Wb72EQAAAAAAAACAKkomct0BkCNO/gIAAAAAAAAAAMhDwl8AAAAAAAAAAAB5SPgLAAAAAAAAAAAgDwl/AQAAAAAAAAAA5CHhLwAAAAAAAAAAgDwk/AUAAAAAAAAAAJCHhL8AAAAAAAAAAADykPAXAAAAAAAAAABAHirIdQMAAFDXfPPJZbluIWPNd7k21y1kbPGc03LdQsYKk0W5bgEAAAAA2AykEolctwDkiJO/AAAAAAAAAAAA8pDwFwAAAAAAAAAAQB4S/gIAAAAAAAAAAMhDwl8AAAAAAAAAAAB5SPgLAAAAAAAAAAAgDwl/AQAAAAAAAAAA5CHhLwAAAAAAAAAAgDwk/AUAAAAAAAAAAJCHCnLdAAAAAAAAAAAAGXD0D9RZ/voDAAAAAAAAAADkIeEvAAAAAAAAAACAPCT8VUuee+65+PDDD2u0t7i4OO66665IpVJZ7goAAAAAAAAAANhSFOS6gS1RSUlJ/Pa3v42VK1dGq1atYvDgwXHqqadWae/LL78c5513XsyfPz+WLFkSZ599di13CwAAAAAAAAAA5CPhr1owc+bMWLlyZURELF68OFq2bFmlfd9880389re/jcWLF0dExNixY6NLly7Rq1evjPp5/fXX49hjj82oRja8+OKLVf6zAAAAAAAAAAAANsxrH2vBU089lb4uLCyMn/70p1Xa17Bhw7jqqqsimfy/H8uFF14YH3zwQdZ7BAAAAAAAAAAA8puTv7Js9erV8cwzz6THBx98cDRt2rTK+w844IA488wz4/rrr4+IiJUrV8aZZ54ZDz30UDRq1Cjj/nr37h2/+c1v1nu/f//+UVZWFvvss0+MHDlyvetOPfXUmD9/frRr1y7+/Oc/r3fdyJEj48UXX8yoZwAAAAAAAAAAYG3CX1n28ssvx9KlS9PjI444oto1TjvttHj++efjtddei4iIjz76KC655JK45pprMu6vSZMmsfPOO6/3fiKRiIhvTyHb0LrCwsL0fze0rqioqIadAgAAAAAAAAAAGyL8lWV//etf09eNGzeOQw45pNo1kslk/P73v0+fwtW6devo169fNtsEAAAAAAAAALYUyUSuOwByRPgri5YtWxZ/+9vf0uMjjjgiGjZsGOXl5bF69epq1frBD34Qp5xySnz88cdx4YUXRtOmTaOkpKRKewsLCyOZTK73fnl5eZXqZGNdKpWqUg0AAAAAAAAAAKB6hL+yaOLEibFq1ar0+LjjjouIiBtvvDHGjBlT47pPPPFEtdZfddVV0b9//3Xeu//+++P+++/faI2ZM2fG7rvvvtF177//fpXWAQAAAAAAAAAA2bX+46Gotu+HqvbYY4/o0qVLDrsBAAAAAAAAAAC2ZE7+ypKXX345Pvjgg/T42GOPzWE363fEEUfE0KFDq7x++fLlMWfOnIiIaNGiRXTo0KFaz7v00kvj73//e7X2AAAAAAAAAAAAG5dIpVKpXDexJfjVr34Vzz77bHo8bdq02GmnnXLX0PeUlZXFV199FRERDRs2jMaNG1d57z/+8Y8YPHhwRET07Nkzbrjhhmo9e9myZVFSUhIREdtss00kEolq7c+tObluAABgs9V8l2tz3ULGFs85LdctZKwwWZTrFgAAAADIWx1z3QBZ1H74pFy3QBb8+5p+uW6BPOTkryx46623KgW/NherV6+OVCoViUQiWrRokZ4vLy+vco2Kior0dSqVqtbeiIiioqIoKipK9xMRkUwmI5n0xlEAAAAAAAAAAMiE8FcW3HTTTdXeM2vWrNh1112jfv36NX7u6NGjY+edd44ePXpEq1at1rr/3//93/Hqq6/WuP6apk2bFrvvvnvGdfr27RtXX311FjoCAAAAAAAAAIC6S/grQ9U59auioiJuuummmDx5csydOzeuv/76OPzww2v03C+++CJuv/329MlePXv2jOuvv75GtQAAAAAAAAAAgPwj/JWhG264ocprk8lkPP/88zF37tyIiHj00UdrHP564YUXIpVKRcS3r2Pccccd11pz3XXXxapVq2pU/ztvvPFGnHvuuRERcdBBB8WIESMyqhcR0ahRo4xrAAAAAAAAAAD/XyKR6w6AHBH+ysD06dPj+eefr9aefv36xVtvvRURETNmzIilS5dGixYtqv3smTNnVhr36tVrrTWtW7eudt01ffbZZ+nroqKi2GmnnTKuCQAAAAAAAAAAZE74q4ZWrVoVo0aNSo9btGgRZWVlUVxcvMF9ffr0idGjR0d5eXmUlZXFE088EYMGDarWs1OpVKXwV7t27WK33Xar0t5ly5ZFSUlJlZ/19ddfp69LS0tj8eLFVW80IhKJRGyzzTbV2gMAAAAAAAAAAGyc8FcN3XzzzbFgwYL0+Kyzzoobbrhho+GvrbfeOg444ID0iWGTJ0+udvjr7bffji+++CI9rs6r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FltvvXUNOwcAAAAAAAAAADZE+GsL17Vr1xg9enQk/v8Rj0uWLIlf/OIXMW/evPXuqVevXlx33XXRpk2biIgoLy+PYcOGxfvvv7/BZ91+++3x4YcfpsdDhgyJH/3oR1n4FgAAAAAAAAAAwJqEv+qAPn36xPDhw9Pjzz//PH75y1/GkiVL1runZcuWceONN0b9+vUjImLFihXx61//Or7++ut1rp8/f378+c9/To/32muvGDp0aJa+AQAAAAAAAAAAsCbhrzpiyJAhMWDAgPT4k08+iVNOOSWKi4vXu2ePPfaI8847r9KeESNGrHPtpZdeGt98801ERDRv3jyuueaaKCgoyFL3AAAAAAAAAADAmhKpVCqV6yby2b333huXXnpprtuIiIhRo0bFMcccs977ZWVlceKJJ8bLL7+cnvvP//zPuPXWW2OrrbZa774zzjgjnnrqqejYsWNcffXV0alTp0r3J06cmA6JJRKJ+POf/xyHHnpoht9mczAn1w0AAFuoRjuNzHULGVvx8br/p4B8korVuW4hY4mol+sWAAAAAMhbHXPdAFnU7uK/5boFsmDuqF65boE85OSvOqSwsDBuvPHG2G677dJzHTt23OgJXVdccUWcccYZ8fDDD68V/Fq0aFFcccUV6fGQIUO2kOAXAAAAAAAAAABs3ryXL0ONGjWKtm3b1nj/kiVLoqSkJCK+fV1io0aNMuplY1q2bBk33nhjDB48OIYPHx4nnHBC+t6CBQsqjdc0ceLEteZWrFgRX3/9dXo8adKkmDx58jr3T5kyJerXr7/RHgEAAAAAAAAAgI0T/spQv379ol+/fjXef/LJJ8fMmTMjIuK8886Lo446KlutrVfXrl3jySefjFatWlWaLy8vjwULFmRU+7PPPlvvPW8YBQAAAAAAAIBa4L1vUGf5618LXn311bjggguitLS0Vmofd9xxMW/evIzqrBn8AgAAAAAAAAAA8ouTv7LsrrvuiquuuirKyspi6dKlccMNN2TtVYeff/55DBs2LD7//PM48sgj4/LLL48+ffpkpfaattlmm3jhhRcyqlFSUhJdu3bNUkcAAAAAAAAAAMD3Ofkry7744osoKyuLiIhnnnkmhg4dmpUTwFatWhWnn356fP755xERUVxcHC+//HLGdQEAAAAAAAAAgPwk/JVlZ511Vhx55JHp8TPPPBPnnntupFKpGtdcvXp1nHXWWfH222+n5/r06RMjRozIqFcAAAAAAAAAACB/ee1jLRg1alQsXLgw/vGPf0RExJQpU+LKK6+MCy+8sEb1Lrnkkpg+fXp63L179xg9enQkk+vP7g0cODBeffXV9d6fPXt2jXoBAAAAAAAAAAA2D07+qgWFhYVx0003Rbt27dJzd955Z9xxxx3VrnXFFVfEQw89lB7vvffeceONN0ZhYWEWOgUAAAAAAAAAAPKV8Fctadq0adx8883RtGnT9Nz3X9tYFU888UTceeed6XG3bt3i1ltvjaKioo3uLSgoiHr16lX6AAAAAAAAAAAAWw7hr1rUoUOHuOqqq6KwsDDOP//8uPrqq6u1v1evXnHaaadFRMS+++4b48aNi0aNGlVp79133x3vvPNO+jNt2rRq9w8AAAAAAAAAAGy+CnLdwJbukEMOiWnTpsX2229f7b2JRCLOOuus2HvvvWPfffet0olfAAAAAAAAAEAdk0jkugMgR4S/amjIkCHx4YcfZlxnyZIl6evRo0fHTTfdlHHNwYMHx4knnphxHQAAAAAAAAAAYPMl/FVDn3/+eSxYsCCrNb/66qv46quvMq6zfPnyLHQDAAAAAAAAAABszoS/WKclS5ZEp06dct0GAAAAAAAAAACwHsJfNfToo49mtH/atGlxzjnnRElJSaX5ww8/PK699tqoV69eRvUBAAAAAAAAAIAtm/BXDkyYMCFGjhwZFRUVa92bMmVKbLXVVvGHP/whkslkDrr7VjKZjDZt2kRERGlpaSxevDgiIgoLC2PbbbettPazzz6L1atXR0REq1aton79+hERkUql4tNPP92EXQMAAAAAAAAAQN0h/LWJXXfddXHzzTdHRETr1q2jefPmMXv27IiI2HHHHeOTTz6JRx99NEpKSuKPf/xjOki1KSSTyWjSpElERGy99dYxderUiIh49dVXY+DAgRERscsuu8TEiRMr7Tv00ENjwYIFERFx0003xZ577hkR34bGDjjggPS6RCJR698BAAAAAAAAAADqCuGvTaSkpCQuvfTSeOSRRyIiomnTpnHrrbfG6NGj0+GvU089NZ588sl47rnnYsqUKfHll1/GjTfeGM2bN98kPe6www7x8ssvrzW/fPny9HXjxo2rXK9+/frrrAcAAAAAAAAAAGQud+8VrEPmzp0bAwYMSAe/mjRpErfddlt07Nix0rp69erFtddeG127do2IiH/+859x1FFHxTvvvLPJe/6+moa/AAAAAAAAAIBNIJnw2RI+UAPCX7Xsb3/7Wxx99NHx3nvvRURE8+bN4/bbb08HvNbUuHHjuPXWW2O33XaLiIgFCxbEwIED4+67745UKlVrfZaVlcWMGTPWee+TTz5JX7dq1arWegAAAAAAAAAAAKpO+KuWfPPNNzFy5Mj47W9/G8XFxRERsf3228eECRNijz322ODeZs2axR133BH77LNPRESsWrUqRo0aFb/85S9j/vz5We+1uLg4hgwZEvfff/867//73/9OX7dr1y7rzwcAAAAAAAAAAKpP+KsW/P3vf4++ffvGPffck57bfffd47777oudd965SjWaNWsWf/nLX+InP/lJpbp9+vSJMWPGRGlpaVZ6/fzzz2PQoEHx4osvxoIFC9a55s0330xfZxL+mjhxYqVaAAAAAAAAAABAzQl/ZdFXX30VF1xwQZx00kkxb9689PwRRxwREyZMiNatW1erXoMGDeLGG2+MoUOHRjL57Y9q1apV8ac//Sl69+4dkyZNioqKihr3+95778WAAQPSr6T8+OOP11rz0Ucfxdy5cyMiIplMxl577VXj502ZMiWOOeaY6NevXzz55JM1rgMAAAAAAAAAAAh/ZUUqlYpJkyZF796945FHHknPFxYWxsUXXxzXXHNNNGjQoEa1E4lEnHHGGXHrrbdGq1at0vPz5s2Lc889N/r37x+PPfZYlJeXV6vuc889F8cff3wsXLgwIr4Nmo0aNWqtdQ888ED6ukuXLtGyZcsafY+IiJUrV0ZExOzZs50ABgAAAAAAAAAAGRL+ytCLL74YRx99dJx77rnxxRdfpOfbtWsX9957b5xwwglZec6BBx4Yjz32WPTs2bPS/Jw5c+Kcc86Jn/70p3H77bfH0qVL17m/uLi40vj000+PFStWREREq1at4u67747evXtXWjNv3ry499570+Mjjjgio++wfPny9PX222+fUS0AAAAAAAAAAKjrhL9qaPbs2TFkyJA48cQTY9asWZXuDRw4MCZOnBh77LFHVp/ZokWLuOGGG2LMmDHRtm3bSvcWLFgQf/jDH+Lggw+O//mf/4mysrJK999///1K49WrV0dExO677x4PPfRQdO3atdL9VatWxdChQ2PVqlUREdG4ceMY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AKC8SyTSnQBIF599LEFZWVkxYMCAPMWva665pkjFr+/VqFEjRowYEffff3/svvvuKffeeOON6NGjR0yYMCFlfvDgwdGiRYuUv+HDhyfvjxkzJs/9wYMHFzkjAAAAAAAAAACwc3nzVwmZP39+XHnllfHJJ58k5zIyMmLo0KHRu3fvEnnGMcccE08++WRce+218eKLLybnS/stYHXq1ImuXbsWae/bb78dixcvLtE8AAAAAAAAAACA8leJmDhxYgwfPjyysrKSc9WrV4/bb789OnXqVKLP+tnPfhZ//etfY9y4cTFy5MjIzs5O3vv+LWCDBw+O3XbbLfbcc8+UvevWrYvVq1dHREStWrWiTp06Kfd32223fJ/ZsGHD+MMf/lCkvAMGDFD+AgAAAAAAAACAUqD8VQxr1qyJ4cOHx7///e+U+aZNm8bf/va3aNasWak9+9e//nW0b98+rrrqqvj444+T8+vWrYsHH3wwHn/88bjmmmtS9jz00EPJTz+eccYZ8T//8z+llg8AAAAAAAAAAChdGekOUFY988wzceKJJ+Ypfh166KExfvz4Ui1+fW/vvfeOxx57LM4999zkXKVKleLWW2+NSpUqlfrzAQAAAAAAAACA9FH+KoIHH3wwrrrqqli5cmVyLiMjIy666KJ44IEHom7dujstS6VKleK6666Lv/71r1G7du0YNGhQtGjRYqc9HwAAAAAAAAAASA+ffSyCXr16xeTJk2P27NkREdG4ceMYNWpUtG/fPm2Zjj/++GjTpk3Uq1evxM+eO3euQhkAAAAAAAAAAPzEePNXEVStWjX+/Oc/R+3ataNHjx4xefLktBa/vle/fv1IJBJF2jtz5syYM2dOCScCAAAAAAAAAABKizd/FVGTJk3iqaeeigYNGqQ7SrG9//77cckll0S/fv3igAMOyHO/du3a0blz5yKdPW3atFi6dGlxIwIAAAAAAAAA21HE98QAuwDlr2LYFYpfU6ZMid/+9reRlZUV77//flx44YV51jRq1ChuuummIp0/YMAA5S8AAAAAAAAAACgFPvtYjr3wwgtxySWXRFZWVkRENGzYMM2JAAAAAAAAAACAgvLmr3IkNzc3ef3666/Hgw8+GDk5ORER0adPnxg8eHC6ogEAAAAAAAAAAIWk/FWOrFu3Lnn92WefJa/79+8fl19+eToiAQAAAAAAAAAARaT8VY7MnTs3z9zgwYOjT58+O9w3f/786NatW5Ge+fXXXxdpHwAAAAAAAAAAsGPKX+XEl19+Ga+88kpynEgk4oYbboizzjrrR/du2rQpFixYUJrxAAAAAAAAAACAQlL+Kifmz58fW7dujYiIjIyMGDFiRPzyl79McyoAAAAAAAAAAKColL/KiSOPPDJuvfXWGDhwYAwcOLBQxa+WLVvG5MmTi/TcAQMGxH/+858i7QUAAAAAAAAAALZP+asc6d69ezRo0CAOPvjgdEcBAAAAAAAAAEpIIpFIdwQgTRK5ubm56Q4BP02fpjsAALCLysndmO4IxZaZqJLuCMVWa5+b0x2h2NbO/126IwAAAABQZjVPdwBK0L73vp7uCJSAeZcdne4IlEEZ6Q4AAAAAAAAAAABA4fnsIwAAAAAAAAAAUCK+/vrrmDlzZixZsiSysrKiSpUq0ahRo2jVqlXsscce6Y63XV9//XV8/PHHsXjx4li/fn1kZGRE9erVo3HjxrH33nvHXnvt9ZP8xKryFwAAAAAAAAAAUCwvv/xy/P3vf48ZM2ZEbm5uvmtatmwZffr0iVNPPfUnUaTauHFjjB8/Ph5//PH4+OOPd7i2Tp06ceihh0bnzp3jl7/85U5K+OMSudv7pw3l3qfpDgAA7KJycjemO0KxZSaqpDtCsdXa5+Z0Ryi2tfN/l+4IAAAAAJRZzdMdgBK0772vpzsCJWDeZUenO0KRbNiwIYYMGRL/+c9/Crynffv2cccdd0S9evVKMdmOvfTSS3HjjTfGsmXLCrWvUqVKMWvWrFJKVXgZ6Q4AAAAAAAAAAACUPRs2bIg+ffoUqvgVETFt2rQ4++yzY/ny5aWUbMduv/32+O1vf1vo4tdPkc8+AgAAAAAAAAAAhTZ06ND48MMPU+YaN24cF1xwQXTo0CEaNmwYy5cvj+nTp8c///nPmDdvXnLd559/Hv3794+HHnooKlTYeRWmkSNHxgMPPJAyV6VKlejSpUt07tw5mjVrFvXq1YuMjIxYu3ZtfPbZZzFr1qx49dVXY86cOTstZ0H57CNsl88+AgDw0/ZtzjfpjlBslTNrpztCsTU8YHS6IxTbF7PPT3eEYstI+P9vAwAAgMLx2cddic8+7hrK2mcfX3755bjssstS5tq3bx/33HNP1KxZM8/6TZs2xTXXXBPPPfdcyvx1110X5557bqlm/d7EiRNjyJAhKXNHH3103HDDDdG0adMf3b9o0aIYP358DBw4sLQiFpryF2yX8hcAAD9tyl8/DcpfPw3KXwAAAFBYyl+7kv3+pvy1K/isb9kpf+Xm5kbPnj1j7ty5ybnGjRvHU089FTVq1NjuvpycnPjVr34Vs2fPTs7Vr18/XnjhhahatWqpZl6xYkWceOKJ8c03//ffrZ9yyikxatSoyMjIKNVnl6aymxwAAAAAAAAAANjpXnrppZTiV0TEsGHDdlj8iojIzMyMESNGpMwtX748HnvssRLPuK0RI0akFL9atWoVN910U5kufkUofwEAAAAAAAAAAIXw7LPPpoybNGkSxx13XIH2HnDAAXHIIYekzG37KciStnDhwpTMiUQibrjhhsjMzCzV5+4Myl8AAAAAAAAAAECBbN68OV577bWUuVNPPTUSiUSBzzjttNNSxh988EGsXLmyRPLlZ/z48Snjdu3aRevWrUvteTuT8hcAAAAAAAAAAFAgH3zwQaxbty5lrn379oU647DDDksZb926Nd54441iZ8vPli1bYtKkSSlzPXr0KJVnpYPyFwAAAAAAAAAAUCCffPJJyjgzMzPatGlTqDP23HPPqFev3g7PLSlz587N81axI444olSelQ4V0h0AAAAAAAAAAAAoG+bPn58ybtSoUVSrVq3Q5+yzzz6xYsWK5HjBggXFzpafmTNnpoyrVasWTZs2TZn74osv4r333oulS5fG5s2bo06dOlGvXr045JBDokGDBqWSq6QofwEAAAAAAAAAAAUyb968lHHjxo2LdE6jRo1SxtuWykrKrFmzUsb77rtvJBKJiPjuE5a33XZbTJs2bbv7mzVrFn369ImePXtGZmZmqWQsDp99BAAAAAAAAAAACuTrr79OGTds2LBI52xb/lq2bFmRM+3ItqWy2rVrR25ubtxxxx1x9tln77D4FRHx3//+N4YOHRo9e/aMxYsXl0rG4vDmLwAAAAAAAACAMuz/v8SIMm79+vWxYcOGUn1G9erVo0aNGsU6IysrK2Vc1PO23bdx48bYunVrZGSU7Lus1qxZkzKuXr163HzzzTFmzJhCnfPpp59Gr169YsyYMbH//vuXZMRiUf4CAAAAAAAAAIA0++c//xl/+ctfSvUZl19+efTv379YZ2xb/qpSpUqRzslvX1ZWVrHLadtat25dyvjd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mxZLlixJzvXr1y+GDh2aHP/85z+Pfv36Fen8K664Il544YVYvHhxRHz3NrEOHTrEXnvtVbzgAAAAAAAAAECZkUikOwGQLspfJWD9+vXx3nvvxUsvvZQyP3HixJRxZmZm3H777ckyWCKRiOHDh0flypWL9NwqVarEH/7wh+jTp09ERGRlZcWQIUPi4YcfjkQB/zf7qlWr4p133om33norzjrrrKhatWry3jfffBOzZs0qUrbvbdiwoVj7AQAAAAAAAACA/Cl/FUFWVla8++678e6778a0adPio48+ipycnHzXVq5cOY444og4/vjjIzc3N6699trkvV/96lfRvn37YmU54ogj4rTTTotJkyZFRMT7778f//rXv+L888/f4b7x48fH3/72t5g7d27k5uZGRETXrl2jSZMmyTWvv/56vP7668XKBwAAAAAAAAAAlA7lryKYMWNGXHLJJdu9X6tWrTjmmGOiS5cu0bFjx6hWrVosXrw4Tj/99OSaJk2axO9+97sSyTN48OB4/fXXY+XKlRERMWnSpDjvvPMikUjEli1bYtasWfHOO+/E9OnTk3vefPPNPOdkZ2eXSB4AAAAAAAAAAKD0KX8VwT777JNnrn79+tG5c+c44YQT4rDDDouKFSsm723atCmuuOKKWLt2bUREVKxYMe64446oWbNmieSpU6dODBs2LK6++uro3r17jBgxIp599tmYMGFCzJgxI7Kysra7NzMzM9q2bRudOnWKgw8+ONatWxeZmZkREXH00UfHFVdcERERU6ZMiVGjRkVERPv27WPo0KHJM5588skYM2ZMRERccMEF0bNnz+S9G2+8MWbOnFkivxMAAAAAAAAAAPg/yl9F0LBhw6hWrVrUqVMnunTpEieccEIcfPDBkZGRke/6NWvWRJUqVZLjgQMHRps2bUo000knnRTVq1ePTp06RUTE3Llz46233sp3bZ06deKoo46KY489Njp27Bi1a9dO3qtfv37MmTMnz56nn346eX3IIYfE/vvvnxxPnTo1eb377run3Hv00UeT1y+++GKMHTs2evfuHZ07d97uPy8AAAAAAAAAAODHKX8VQSKRiAkTJsS+++5boPW77757PPTQQ3HHHXfEvHnzok+fPqWS6/viV0RE8+bNU+41atQojj/++OjSpUsceuihybd7FcSWLVviqaeeSo4PPvjgIuVbv359vPPOO/HOO+/EySefHLfeemuRzgEAAAAAAAAAAJS/iqygxa/vZWRkxMCBA2PLli2llChV8+bNY++9944uXbpEly5donXr1kU+6x//+Ed89dVXEfHdm8GOPPLIIp2zZs2a5HVJffISAAAAAAAAAADKK+WvnaxChZ3zj7x58+bx3HPPFfucSZMmxd13350c9+nTp1BvDfuhZcuWJa/32GOPYmcDAAAAAAAAAIDyTPmLfK1YsSJuvvnmmDx5cnKuVatWccEFF+RZm0gkUvZtz5w5c5LXhX1zGgAAAAAAAACQv4zEj68Bdk3KX6T46KOP4rHHHosnnngivv322+R88+bN4/7778/3rV81atRIXj/11FNxzjnnRNOmTVPWPP/88zF16tSI+O7tZ23atCmlXwAAAAAAAAAAAOWD8lc5t2HDhpg+fXpMmTIlXnjhhVi0aFGeNSeeeGLceOONUatWrXzPaNWqVfJ6+fLlccIJJ0SjRo2iYsWKERGxfv36WL58eXLN4YcfHnXq1CnhXwIAAAAAAAAAAOWL8lc5tmrVqjjhhBNi3bp1+d5v2bJlXHnllXHsscfu8JwWLVpE586d4+WXX46IiJycnFiyZEm+a2vUqBFDhw4tXnAAAAAAAAAAACAy0h2A9Klbt25cfvnlKXMZGRnRqVOnuO++++KJJ5740eLX9+68887o27dv7LXXXsk3fn0vMzMzmjRpEieffHKMHz8+9t133xL7DQAAAAAAAAAAUF4lcnNzc9MdgvTZunVrnHXWWZFIJKJr167RrVu3aNSoUbpj/UR8mu4AAAAAO0XVPW9Id4Riy150Y7ojAAAAQBnTPN0BKEEH/+8b6Y5ACZh+dsd0R6AM8tnHci4jIyMeeeSRyMjwEjgAAAAAAAAAAChLNH5Q/AIAAAAAAAAAgDJI6wcAAAAAAAAAAKAM8tlHAAAAAAAAAIAyLJFIdwIgXbz5CwAAAAAAAAAAoAxS/gIAAAAAAAAAACiDlL8AAAAAAAAAAADKoArpDgAAAABlWdU9b0h3hGLLXnRjuiMAAAAAAFAE3vwFAAAAAAAAAABQBil/AQAAAAAAAAAAlEHKXwAAAAAAAAAAAGWQ8hcAAAAAAAAAAEAZVCHdAQAAAAAAAAAAKLpEIt0JgHTx5i8AAAAAAAAAAIAySPkLAAAAAAAAAACgDFL+AgAAAAAAAAAAKIOUvwAAAAAAAAAAAMog5S8AAAAAAAAAAIAyqEK6A5Aet912W6xfvz7atm0bnTp1itq1a6c7EgAAAAAAAAAAUAjKX+VQbm5ujB8/PlavXh2PPPJIvPrqq8pfAAAAAAAAAABQxih/lUNz586N1atXR0REu3btomHDhgXat2bNmrj77rsL9aw999wzLrjggsJGBAAAAAAAAAAAfoTyVzn06quvJq979OhR4H3r16+Phx9+uFDPOvjgg5W/AAAAAAAAAKAUJTIS6Y4ApElGugOw87322msREVGxYsXo2rVrgffl5uaWViQAAAAAAAAAAKCQvPmrHOjdu3dMmzYtz/zmzZvjsMMOy3fPuHHjom3btilzOTk5yev69evH8OHD8907ffr0uP/++4uRGAAAAAAAAAAA+DHKXxTYpk2bktc1a9aMY489Nt9133777c6KBAAAAAAAAAAA5ZbyVzmz1157RUZG/l/7XL58eaxfv367e7Ozs5PXlSpVKvFsAAAAAAAAAABAwSl/lTMPP/xw1K9fP997gwcPjkmTJm137zfffJO8rlOnTolnAwAAAAAAAAAACi7/V0BRLmzdurVQ65ctW5a8rlevXknHAQAAAAAAAAAACkH5qxxauHBhXH/99dGzZ8/Iyckp8L5PP/00eb333nuXRjQAAAAAAAAAAKCAlL/KoXfffTfGjRsXn3zySTz77LMF2rNx48Z45plnkuNWrVptd23FihWT16tXry56UAAAAAAAAAAAYLuUv8qhk08+OerUqRMREf/4xz8KtOf222+PFStWRERE9erVo0OHDttdW79+/eT1ggULYvTo0bF27dqI+O5Tk5s2bYrNmzcXNT4AAAAAAAAA8AOJhL9d4Q+KQvmrHKpSpUqcfvrpERHx8ccfx5tvvrnD9ffff388+OCDyfGFF14YlStX3u76/fffP+rWrZsc33zzzdGuXbto0aJF7L///nHggQfGI488UsxfAQAAAAAAAAAA5ZvyVzl19tlnR+L/10bHjh2b75oNGzbEkCFD4rbbbkvOtWjRIn7zm9/s8OyKFSvGoEGDdrimZcuWhUwMAAAAAAAAAAD8kPJXObXHHnskP904ZcqU5GcZf+iiiy6KiRMnJscNGjSIe+65J6pUqfKj5//yl7+Me+65Jw499NB817do0aIY6QEAAAAAAAAAgArpDkD6nHnmmbH33nvHxRdfHLVq1cpzf+jQodG7d+/YuHFj/PznP4/Ro0dH06ZNC3z+cccdF8cdd1xERGzatClyc3MjIiKRSESlSpVK5kcAAAAAAAAAAEA5pfxVBNOnT4/HH3883TF26MYbb4wKFXb8r7dr167RtWvX7d5v3bp13HTTTfHSSy/F73//+6hRo0aR8yh7AQAAAAAAAABAyVL+KoKFCxfGhAkT0h1jhwYMGBCzZs2KiIjVq1cn599444183/IVEfHFF1/kmevevXt07969dEICAAAAAAAAAABFpvy1i1q8eHH069cvz/yQIUMKdc7f/va3uO+++4qdp3HjxvH0008X+xwAAAAAAAAAAOA7yl/s0ObNmyMrK6vY52RnZ5dAGgAAAAAAAABgW4lEuhMA6aL8VQSnn356nH766emOsUNfffVVDBw4MCIixo0bF0uWLImIiL59+0b16tXz3fPcc8/F7Nmzd1pGAAAAAAAAAACg6JS/dlENGzaMSy65JCIi3njjjWT569xzz4369evnu2f+/Pl5yl/9+/eP/v37x4cffhi9evWKiIijjjoqRo8e/aMZ7rzzzrj33nsjImK//fYr8m8BAAAAAAAAAADyykh3ANJn06ZNBV574IEHxs9+9rOIiJg6dWqsW7fuR88eN25ccvx9cQwAAAAAAAAAACgZyl/l0Lvvvht9+vSJQYMGFXhPRkZGHHXUURERsXnz5njxxRd3uH7y5MmxatWqiIioX79+dOrUqch5AQAAAAAAAACAvJS/yoGcnJzkdSKRiMmTJ8fbb78dL774YvJzkAXRvXv35PXYsWO3uy47Ozvuvvvu5Picc86JChV8YRQAAAAAAAAAAEqS8lc5kJWVlbxOJBJx5plnRsR3pbAdlbi21alTp2jcuHFERMyePTumTp2a77p//OMf8fXXX0dERN26deO8884ranQAAAAAAAAAAGA7lL/KgQ0bNiSvE4lEtGrVKlq1ahUREY8//nhkZ2cX6JzMzMzo1atXcnzLLbfE1q1bU9bMmTMn7rvvvuT4kksuierVqxcnPgAAAAAAAAAAkA/lr3Lgh+WvKlWqRETEr3/964iIWLduXTz99NMFPuucc86JOnXqRETErFmzYvz48cl72dnZMXDgwNi8eXNERDRv3jzOOeecYucHAAAAAAAAAADyUv7axeXk5MTatWsjIqJChQpRrVq1iIjo3r17VK5cOSIiHnvssQKfV6tWrejXr19yPGrUqJg3b17k5OTE1VdfHfPnz08+a+TIkVGpUqWS+ikAAAAAAAAAQD4SCX+7wh8UhfLXLm7RokXJN3H97Gc/S87XrFkzOnfuHJmZmbHvvvvGli1bCnzmWWedFc2aNYuI794q1q9fv7j22mvj5ZdfTq659NJLk5+WBAAAAAAAAAAASl6FdAegdH322WfJ68aNG6fc69u3b1x55ZXx85//vFBnVqxYMe64444444wzYuPGjbFgwYJYsGBB8v7xxx8f/fv3L1ZuAAAAAAAAAABgx7z5axf33//+N3m95557ptxr2bJloYtf32vWrFkMGjQoz/wBBxwQt9xySyS8jxAAAAAAAAAAAEqV8tcu7u23305et2zZssTOnTZtWowePTrP/LJly1KeCQAAAAAAAAAAlA7lr13YypUr4/3330+OW7duXewzv/nmmxgxYkScf/758eWXX+b7zH79+sXAgQNjyZIlxX4eAAAAAAAAAACQP+WvXdiLL74YW7dujYiIatWqRdu2bXe4ftOmTcnrbT/bmJ2dHQ8++GCccMIJMXbs2OS5ERFnnHFGDBo0KCpUqJCc+/e//x3dunWL66+/PubNm1cSPwcAAAAAAAAAAPiBCj++hLJo69at8dBDDyXHHTt2jEqVKkVExObNm2Pjxo1Rs2bN5P0lS5bEO++8kxxXr149IiKWL18ejz32WIwdOzZWr16d8oyaNWvG73//++jRo0dERBx66KExcODAWLp0afI548aNi3HjxkWbNm3i1FNPjaOOOir22muv0vnRAAAAAAAAAABQjih/7aKefPLJ+PTTT5PjU089NXn9zTffxJFHHhmVK1eOGjVqRGZmZqxcuTJycnIi4ru3hG3ZsiX69u0bb7zxRmzZsiXP+T169IjBgwdH/fr1k3MHHXRQPP3003HffffFmDFj4ttvv03e+/DDD+PDDz+MiIhGjRrFXXfdFW3atCnx3w0AAAAAAAAAAOWF8tcu6qmnnkpe77HHHtGpU6fkuF69erHbbrvFypUrUwpa3+vdu3c0bNgw3nvvvTzFr/bt28eAAQOiXbt2+T63atWqceWVV0avXr1i9OjRMXHixMjKykpZ06hRo2jdunUxfh0AAAAAAAAA8L2MRLoTAOmSke4AlI477rgjOnToEBERl156aWRm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vfeYOHFiPPbYYxERcfnll9ep/HXVVVfF2rVrIyLinnvuqVH+Gjt2bKxYsSIiIu6++27lLwAAAAAAAAAA2A2Uv3aBV199NS6++OJYtWpVbNiwIb74xS/We6/169fH9773vVi8eHEMGDAgrrjiijjggAMaMS0AAAAAAAAAkMvSqaQTAElR/toFbr755li5cmVERFx99dXRqlWrGDlyZL32uuqqq2Lx4sURETFnzpwoLy+P3//+940VFQAAAAAAAAAAyFHppAM0R7fcckt07949IiKqq6vjyiuvjClTptR5nz/96U8xderUzLhbt24xbty4RssJAAAAAAAAAADkLuWvXaB9+/Zx1113xf777x8REVVVVfGTn/wkZs6cWes95s+fHzfeeGNm3KlTp/jd734XHTp0aPS8AAAAAAAAAABA7lH+2kW6dOkSd955Z+yxxx4REVFRURHf//7344033tjp2lWrVsV3v/vdKC8vj4iI1q1bx/jx46Nr1667NDMAAAAAAAAAAJA7lL92oUMOOST+93//NzM+++yzo0ePHjtcU1ZWFt/97ndj+fLlERGRTqdj3Lhx0bt3712aFQAAAAAAAAAAyC15SQfIVZWVlVFRUbHT5/r37x+jRo2K4uLiuOiii6KiomKH666++up46aWXMuPLLrssTjjhhCgtLd3puwoLCyNi88lhq1atyrr30UcfZa5XrlwZb731VmbcuXPnKC4ujg8//HCb+1ZXV+/03VvuvXTp0u3ez8vLi3322afW+wEAAAAAAAAAANuWqq5Ls4eMX//613HLLbckHSPL3Llzo3PnznHrrbfGbbfdVut1l19+eXzyk5+MUaNG7fTZe+65J/r27Zs1d9JJJ8WKFStq9a4uXbrE008/XetsyXpr548AAAAAzcoho15JOkKDPXJzcdIRGuTQtl2SjtBgha3aJR0BAABqYcdfrSK3nP3kM0lHoBFMOvXEpCOQg5z8BQAAAAAAAACQw1Ip5/5AS6X81Qx94hOfiBNOOCFr7s0338x81vGggw6K/fffP3PvgAMO2K35AAAAAAAAAACAhlP+qqeLL744Lr744gbtMXDgwFiyZElERFx66aVx4YUXNka0GDFiRIwYMSJr7vvf/3489thjERExcuTIuOCCC2qse/PNN7e5X9++fWPt2rW1evfdd98d/fr1q2NiAAAAAAAAAACg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3nn1SA0AAAAAAAAAAGwtnXQAdq/d+dnH3/zmN7FgwYKIiOjYsWPceOONu/R9AAAAAAAAAADQkjj5qxl75513YurUqXH++edHhw4dImL7n3287bbbok2bNnHOOedEmzZt4rTTTos333yzxp6vvPJKfOELX4iIiMMOOywmT568zXe//PLLMX78+Mz4uuuui7322qtR/lwAAAAAAAAAAIDyV7M2ZMiQiIg4+OCDY9iwYRGx+XOMHysoKIiIiIqKirjvvvtizZo1cdttt8WMGTMyZbH6WLVqVXzve9+LioqKiIi44IIL4tRTT633fgAAAAAAAAAAQE0++9gCPP3005nrLctfeXmbu39/+9vfYs2aNRGxuSjWkOJXZWVlXHLJJbFixYqIiPjsZz8bl156ab33AwAAAAAAAAAAts3JX81Yt27dYvHixTF37tyorq6OVCqVOY0rIiI/Pz8iIh5//PHM3Jlnntmgd44dOzaef/75iIjYb7/94uabb876vNpImcIAACAASURBVCQAAAAAAAAA0LjSqeqkIwAJcfJXM9avX7+IiFi9enUsWLAgIrJP/srPz4+ysrKYOXNmRGz+DOTQoUPr/b6777477r///sxev/rVr6Jjx4713g8AAAAAAAAAANg+J381Y8cff3xMmDAhIjZ/+rF3795ZJ38VFBTE7NmzY926dRERcfLJJ8dZZ50Vy5Ytq9X+r732WvTs2XOb98rKyuKcc87Z4frnnntOOQwAAAAAAAAAAOrJyV/N2LHHHhvp9OZf8TPPPBMREeXl5Zn7BQUFMXny5Mz47LPP3r0BAQAAAAAAAACAenPyVzPWrl276NGjRyxcuDDmz58fa9asyZz81apVq1i9enWmFLbvvvvGiSeeGF27do2CgoJav2Pp0qVZhbKuXbtGXl7t/rWq7XMAAAAAAAAAAEBN2jfN3LHHHhsLFy6MqqqqePbZZ6OsrCwiIoqKimLKlClRWVkZEZtP/Uqn0/HHP/6xVvuWl5fHjTfeGH/6058yc9/5znfiu9/9buP/IQAAAAAAAAAAgBp89rGZO+644zLXTz31VObkr9atW8ecOXMiIiKdTtfpk48rVqyIr3zlK5niVzqdjiuvvFLxCwAAAAAAAAAAdiMnfzVzffr0ie7du8fw4cNj+PDhcc4550TE5pO/7rjjjrj33nvj7bffjv32269W+z355JNx5ZVXxsqVKyMiok2bNnHTTTfFySefvMv+DAAAAAAAAAAAQE3KX81cx44dY+rUqZnxx5993GOPPaK4uDguuuiiWu3zr3/9K6677rp45JFHMnPdunWLX//613HIIYc0bmgAAAAAAAAAAGCnlL9amE2bNkXE5vJXbT3++ONx/fXXx4cffpg1v3jx4hgyZEidMzz66KPRo0ePOq8DAAAAAAAAAGpKp5JOACRF+asF2bRpU+bkrz333HOnz7/xxhtxww03xIsvvrirowEAAAAAAAAAAHWk/NWCrFq1KnPdtm3b7T63YsWKuP3222PixIlRVVWVmW/dunXm5LDi4uLo0qVLvXIUFBTUax0AAAAAAAAAAPAfyl8tyJblr/bt29e4v2LFirjjjjviL3/5S+aEsIiIwsLCGDVqVEREjB8/PiIiLrjggvjOd76zixMDAAAAAAAAAADbo/zVgixZsiRzvWbNmqx7d9xxR9x6661Zpa+IiIEDB8YPf/jD6Nq1awwaNCgzP2zYsF0bFgAAAAAAAAAA2KF00gHYfd5///3M9dSpU2Pq1KmZcf/+/SM/Pz8z7tu3b/z5z3+O2267Lbp27Rp///vfY/HixRERceSRR8aBBx6423IDAAAAAAAAAAA1KX+1IG+++WbW+Iorroh33303IiJ69uwZY8eOjaOOOir+8Ic/xD333BNHH3105tlJkyZlrocPH757AgMAAAAAAAAAANvls48tyPz58yMioqCgIMrKymLjxo0xZsyYmDhxYhQVFcXQoUNj6NCh21z70ksvZa5///vfx3333Vfn9//oRz+KAQMG1Cs7AAAAAAAAAACQTfmrhVi+fHksX748IiJOPPHEaN26dUydOjXeeuutuPbaa+OGG27Y4frq6urM9bJly+qVIZVK1WsdAAAAAAAAAABQk/JXC/HMM89krvv27RuDBw+O2bNnx4YNG2LSpEnxmc98Zpd/znHPPffcpfsDAAAAAAAAQEuUTjoAkBjlrxZizpw5meu+fftGly5d4uKLL46f//znERFx9dVXx5FHHhkHHnjgNtfPmDGjXu8dPHhwvPfeexER0bZt23rtAQAAAAAAAAAA1KT82QKsXbs2nnrqqYiI2HvvvaNnz54REfHVr341Dj744IiI2LBhQ3z/+9+PsrKyRn33qlWrMtft2rVr1L0BAAAAAAAAAKAlU/5q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AKCQOPkrD84888xYsmRJ5jStRx99NB544IE466yzEk6W7Y9//GN885vfjHQ6HRERFRUVMWvWrOjSpcsen582bVpMmjQprxnKy8vzuh8AAAAAAAAAALRVyl95Mm3atHj66adj06ZNERHxve99L9773vfGoEGD4vjjj4/KyspG7TdhwoRYvHhxRET06NEjfvOb30RJSe5/uv74xz/GhAkTYvv27RERUVJSErfcckscfvjhe13ToUOH6NChQ87vBAAAAAAAAACan7u+oO3y93+edOrUKb7zne9kxlu3bo1vfOMbUVtb2+i91q1bF7/73e8y43HjxjWp+PWHP/whq/iVSqVi6tSpcdJJJ+W8JwAAAAAAAAAAkCzlrzwaOXJknHbaaZlx586do7q6utH7zJ8/P+rr6yMiol27dnH22WfnnGn+/PnxpS99Kav4NW3atKwrKXPJCAAAAAAAAAAAJMu1j3l29dVXx/Lly+Oiiy6Kc889N1KpVKPWv/7663HPPfdkxqNHj45OnTo1OsfOnTvjuuuui7vuuisz9/aJX+ecc07WsxMnTow333wzrr766jjyyCMb/S4AAAAAAAAAAKDlKX/lWefOnWPRokVRWlqa0/o5c+bEli1bMuPRo0fntM/DDz+cVfwqLi6OqVOn7naK2BNPPBG//e1vIyLi05/+dNx8880xatSonN4JAAAAAAAAAAC0HNc+NoNci19r167NOvUrIqK8vDynvU4//fTo2bNnZo877rhjt+JXXV1dXHfddZlx165d48QTT8zpfQAAAAAAAAAAQMtS/noXmTp1amzbti0ve5WVlcVXvvKV6NatW9x9991x8skn7/bMvHnzYuXKlZnxlClToqKiIi/vBwAAAAAAAAAAmpdrH3O0ffv2vX6XSqWirKysUfs99NBDsWTJkt3m6+vr46qrropPfvKTccIJJzRqz7Fjx8ZJJ50U3bt33+27qqqq+OEPf5gZjxgxIkaMGNGo/QEAAAAAAAAAgOQof+Vg06ZN+7wesXfv3rF48eIG71dVVRXXXHPNHr+78cYb44knnoiFCxfGpZdeGhMmTIhUKtWgfYuLi/dY/Eqn03HVVVdFTU1NRER07tw5pk6dmvl+yJAhDc6eqxNOOCHmzZvX7O8BAAAAAAAAAIDWSvkrYbW1tXHZZZfFW2+9FRERRUVFUV9fn/n+iSeeiIh/nQB26623xjPPPBM33nhjHHzwwTm/c968ebF06dLM+LrrrouuXbvmvB8AAAAAAAAAkJyiVDrpCEBCipIO0NZNmTIl/vrXv2bGl1xySdb33/jGN+Kggw7KjJcsWRKf/vSn4/nnn8/pfc8991zMmDEjMx43blx89KMfzWkvAAAAAAAAAAAgOU7+ykHXrl2jsrIya+6pp56K888/v1H7zJgxIxYuXJgZjx49Os4777y47bbbMnMnnXRSjBo1Kr785S/H3//+94iIWLduXZx33nkxZcqUOOussxr8vjfeeCO+9rWvxY4dOzJz48eP3+25t08ba6zrr78+HnrooYiI6N+/f9x77717fbasrCyndwAAAAAAAAAAAP+i/JWQefPmxZw5czLjIUOGxDXXXBM1NTW7PduvX7+477774qqrropFixZFRMT27dvj29/+djz33HMxZcqUKC0t3ef76urq4vLLL4+qqqqs+VQqtduznTt3zuVXyip0FRUV5bwPAAAAAAAAAACwf659TMDs2bPj+uuvz4x79+4ds2fPjnbt2u11TYcOHeLWW2+Nyy67LIqK/v2n7b777ovzzz8/Nm/evM93Tps2LecTvQAAAAAAAAAAgHcf5a8WlE6n4+abb46bb745M9e1jQFJzgAAIABJREFUa9e48847o2fPnvtdn0ql4stf/nLccccd0aFDh8z8M888E5/61Kfi+eef3+O6W265Je6///6m/wIAAAAAAAAAAMC7hvJXC9m6dWtcdtllMXv27Mxcp06d4kc/+lH079+/UXt95CMfiXvuuSe6d++emduwYUOMGzcuHnnkkaxnb7/99rjjjjsyY1cxAgAAAAAAAABA66D81QLWrl0b5557bixatCgz16tXr7j77rtjyJAhOe15xBFHxAMPPBBHHnlkZm7btm3xta99Le69995Ip9MxY8aMuO222zLfDxw4MKZNm5b7LwIAAAAAAAAAALxrKH81s1/+8pcxZsyY+Nvf/paZO+KII+Lee++Nww47rEl7d+/ePe6+++748Ic/nJnr1q1bfOQjH4nvf//7MWfOnMx8165dY+7cuXHQQQc16Z0AAAAAAAAAAMC7g/JXM7rhhhvi61//erz11luZuZNPPjnuvvvurCsbm6JDhw4xa9as+MxnPhPl5eUxa9as6NGjRwwaNCjzzEEHHRRz586NPn365OWd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c8DIUFFAxQlkhsM55/eHyyePTGfChwOv11rP8rv3dw+fhwNrueTt3ltvnS222CItWtT+7fKLX/yi3vssXrw4rVu3bpKaAQAAAAAAAABgfSb8RZKkb9++6datW95666088cQTee+997L77rs36R4LFizIXnvtlX333TeDBg3KPvvsk7KysibdAwAAAAAAAAAA1heSNyRJCoVCDjjggCRJVVVVxo8f3+R7vPnmm1m4cGHGjRuXU045JdXV1U2+BwAAAAAAAAAArC+Evyg68MADi8933XVXk6//xhtvFJ+33HLL5a6RBAAAAAAAAAAA6k76Zj03Z86cPProo5k5c2amT5+esrKyVFdXZ/LkyXn99dfTo0ePJtvr0+GvbbbZpsnWBQAAAAAAAID1WXmhptQlACUi/LWOmj9/fiZPnpz33nsv7777bvGf7777bmbNmlUcN3HixEycOHGFazzwwAM58cQTm6ymT4e/tt122yZbFwAAAAAAAAAA1kfCX+uoKVOm5JhjjmnUGvUJfy1btmy1Y15//fXi83bbbdfgugAAAAAAAAAAAOGvdVaXLl1WO6aioiLdunVL9+7ds+WWW2aLLbbIFltskR//+MeZO3duXnzxxcyaNStdu3Zd4fzWrVsXn6dOnZqtttpqpXvNnDkzzz//fLHdu3fvun8ZAAAAAAAAAABgOcJf66iNN964+LzRRhulZ8+e6dGjR3r27JmePXtmyy23TLdu3VJeXr7c3C9/+csZP358ampqMmHChBx11FEr3GPzzTfPO++8kyS54IIL0qZNm2y//fapqKhIklRXV2fOnDl55plncumll6aqqipJ0r1792yxxRZN/ZUBAAAAAAAAAGC9Ivy1jmrbtm1uuumm9OjRIx06dKjX3H333Tfjx49PRUVFZs+evcpxzzzzTJLkzTffzPHHH1+n9U866aR61QMAAAAAAAAAACxP+GsdttNOOzVo3t57750zzzwzX/3qV9OxY8eVjvvWt76VcePG5eWXX67z2scee2wOP/zwBtUFAAAAAAAAAAD8i/AXy+nQocNKr3r8tA022CDXXnttxowZkwceeCAzZszIkiVLao1p1apVunbtmp133jlHHnlk+vXrt6bKBgAAAAAAAACA9YrwF43Stm3b/OAHP8gPfvCDUpcCAAAAAAAAAADrFeEvAAAAAAAAAIBmrKxQ6gqAUikrdQEAAAAAAAAAAADUn/AXAAAAAAAAAABAMyT8BQAAAAAAAAAA0AwJfwEAAAAAAAAAADRDwl8AAAAAAAAAAADNkPAXAAAAAAAAAABAM9Si1AUAAAAApbVhz4tKXUKjffTqyFKXADSRmtSUuoRGK6RQ6hJIUlWztNQlNNqiN88udQkAAACs5Zz8BQAAAAAAAAAA0Aw5+QsAAAAAAAAAoBkrcwAxrLec/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzVCLUhcAAAAAAAAAAEDDlRVKXQFQKk7+AgAAAAAAAAAAaIac/LWeGjVqVObPn5+dd945AwYMyIYbbljqkgAAAAAAAAAAgHoQ/loP1dTU5Oabb87s2bNzww035OGHHxb+AgAAAAAAAACAZkb4az00ZcqUzJ49O0my++67Z9NNN63TvDlz5uQ3v/lNvfbaYostctxxx9W3RAAAAAAAAAAAYDWEv9ZDDz/8cPF50KBBdZ43f/78XHfddfXaa9dddxX+AgAAAAAAAACANaCs1AXw+XvkkUeSJBUVFTnggAPqPK+mpmZNlQQAAAAAAAAAANSTk7/WA0cffXSefvrp5forKyuzxx57rHDO2LFjs/POO9fqq6qqKj536dIl55xzzgrnPvvssxkzZkwjKgYAAAAAAAAAAFZH+Is6W7p0afG5ffv2+cpXvrLCcUuWLPm8SgIAAAAAAAAAgPWW8Nd6Zsstt0xZ2Ypv+3zvvfcyf/78lc5dtGhR8blly5ZNXhsAAAAAAAAAUH/lhVJXAJSK8Nd65rrrrkuXLl1W+O4nP/lJbr/99pXO/eijj4rPHTt2bPLaAAAAAAAAAACAulvxEVCsF6qrq+s1ftasWcXnjTfeuKnLAQAAAAAAAAAA6kH4az00bdq0nHnmmRkyZEiqqqrqPO+VV14pPvfo0WNNlAYAAAAAAAAAANSR8Nd66C9/+UvGjh2bf/zjH7nnnnvqNGfx4sX505/+VGz36dNnpWMrKiqKz7Nnz254oQAAAAAAAAAAwEoJf62HDjnkkHTs2DFJcsUVV9Rpzi9/+cu8//77SZK2bdumf//+Kx3bpUuX4vPrr7+eK6+8MnPnzk3y8VWTS5cuTWVlZUPLBwAAAAAAAAAAIvy1XmrdunW+9rWvJUn+/ve/57HHHlvl+DFjxuTqq68utr/zne+kVatWKx3/hS98IZ07dy62//d//ze77757evXqlS984QvZcccdc8MNNzTyWwAAAAAAAAAAwPpN+Gs99a1vfSuFQiFJcs0116xwzIIFC/LTn/40o0aNKvb16tUrJ5xwwirXrqioyMiRI1c5pnfv3vWsGAAAAAAAAAAA+DThr/VU9+7di1c3PvHEE8VrGT/tP//zP3PbbbcV2127ds1vf/vbtG7derXrH3bYYfntb3+bfv36rXB8r169GlE9AAAAAAAAAADQotQFUDrf+MY30qNHj3z3u99Nhw4dlnt/+umn5+ijj87ixYuz1VZb5corr8zmm29e5/X322+/7LfffkmSpUuXpqamJklSKBTSsmXLpvkSAAAAAAAAALCeKyvUlLoEoESEvxrg2Wefza233lrqMlbp7LPPTosWq/7xHnDAATnggANW+r5v3775xS9+kQcffDA/+9nP0q5duwbXI+wFAAAAAAAAAABNS/irAaZNm5Zbbrml1GWs0ve///28+OKLSZLZs2cX+ydNmrTCU76S5K233lqu76CDDspBBx20ZooEAAAAAAAAAAAaTPhrHTV9+vQMHz58uf6f/vSn9Vpn9OjR+f3vf9/oerp165bx48c3eh0AAAAAAAAAAOBjwl+sUmVlZRYuXNjodRYtWtQE1QAAAAAAAAAAAJ8Q/mqAr33ta/na175W6jJW6Z133smIESOSJGPHjs14s+jEAAAgAElEQVSMGTOSJMOGDUvbtm1XOOfee+/N5MmTP7caAQAAAAAAAACAhhP+WkdtuummOfHEE5MkkyZNKoa/vv3tb6dLly4rnPPaa68tF/465ZRTcsopp+T555/PEUcckSTZa6+9cuWVV662hl/96lf53e9+lyTZZpttGvxdAAAAAAAAAACA5ZWVugBKZ+nSpXUeu+OOO6ZTp05Jkqeeeirz5s1b7dpjx44ttj8JjgEAAAAAAAAAAE1D+Gs99Je//CXHH398Ro4cWec5ZWVl2WuvvZIklZWVmTBhwirH33nnnfnwww+TJF26dMmAAQMaXC8AAAAAAAAAALA84a/1QFVVVfG5UCjkzjvvzOOPP54JEyYUr4Osi4MOOqj4fM0116x03KJFi/Kb3/ym2D7qqKPSooUb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JK1atcqGG26Yrl27Ztttt80mm2xS4krXblVVVfnnP/+ZadOmZdasWVm0aFGSpHXr1mnfvn023XTT9OjRI926dStxpQAAAAAAAAAAQF2steGvF154ITfddFPuvffeYuBrVbp3755hw4bl61//+grfH3300Xn66adXuUZFRUXat2+fjh07pnfv3tlpp51y8MEHN1mw7NVXX83BBx9cq+9b3/pWzjrrrCZZ/7OqqqrywAMPZNy4cfnzn/+chQsXrnbORhttlC9/+cs58cQT07Nnz+XeT5w4McOGDWtwTW3atMlzzz3X4PkAAAAAAAAAAMDH1rprHz/44IOMGDEihx9+eG6++eY6Bb+SZPr06Xn00UcbtXdlZWU+/PDDvPbaa/nTn/6U888/P1/5ylcyYsSIvP/++41aO0luueWW5frGjRuXJUuWNHrtzxo/fnz233//nHrqqXnggQfqFPxKPv71v+OOO/Lss882eU0AAAAAAAAAAEDTWatO/nr99dfzn//5n5k5c+Zy71q3bp1NN900rVu3zsKFCzNnzpzMnTt3jde0bNmyjBs3Lo899lguu+yy9OvXr0HrVFZW5s4771yuf+7cubn//vtzyCGHNLbUJMns2bPzk5/8JA8//PAK3xcKhWy44YbZaKONUlZWlnnz5uW9995LVVVVk+wPAAAAAAAAAAB8Ptaa8Nf8+fOXC35VVFTk8MMPz9e+9rXssMMOKSurfVDZO++8k7/97W8ZP358Jk6cWK/9hg0blp133rnYrq6uzvz58zNr1qy89NJLeeSRR7J48eLi+zlz5uSkk07K9ddfn169etX7+02cODEffPBBsV0oFFJTU5Pk4xPBmiL89cYbb+Q73/lOZsyYUat/gw02yKGHHpoBAwakf//+2WCDDWq9X7JkSV555ZX8+c9/zr333pu///3vdd5zm222yciRI+s8vry8vM5jAQAAAAAAAACAlVtrwl+/+tWvagW/OnXqlMsvvzw77rjjSudsuummOfDAA3PggQdm+vTpefLJJ+u834477pivfOUrK30/d+7cjBo1KjfeeGOxb/78+Tn77LNz/fXX13mfT3z6ysc2bdpkp512yhNPPJEkeeqppzJ9+vR079693ut+YubMmfn2t7+dd999t1b/4Ycfnu9///vZZJNNVjq3VatW2XHHHbPjjjtm2LBheeqpp1JRUVGnfTt06LDKX0cAAAAAAAAAAGDNKFv9kDVv6dKly12JeOaZZ64y+PVZ3bt3z+GHH95kNXXo0CFnn312vvOd79Tq/+tf/5qnnnqqXmvNmjUrjz32WLHdt2/f7LLLLsV2TU1Nbr311gbXumjRopx44om1gl8VFRW54IILcu65564y+LUie+yxR3bdddcG1wMAAAAAAAAAAKx5a0X46+WXX87cuXOL7VatWmX//fcvYUX/cuqpp6ZLly61+h5++OF6rXHbbbelqqqq2N5///2z33771Rpz++23p7q6ukE1XnDBBZk6dWqxXVZWlssuuyxDhgxp0HoAAAAAAAAAQPNRVvBZFz7QEGtF+Oudd96p1e7QoUNatFg7bqRs3bp19t1331p9L7/8cp3nf/ZUr4qKihx88MHp06dPtt1222L/O++8k0mTJtW7vilTpmTs2LG1+k4++eTss88+9V4LAAAAAAAAAABoPtaK8FdNTU2t9uzZs7NgwYISVbO8rbfeulb7ww8/rPPcp556KtOnTy+299lnn3Tq1ClJMnjw4FpjG3L1429/+9taJ4Ztt912+d73vlfvdQAAAAAAAAAAgOZlrQh/bb755rXay5Yty80331yiapa3wQYb1Gp/Nqy2Krfcckut9qcDX4ceemjKyv71I3jooYfqFSx77733MmHChFp93/3ud2utCQAAAAAAAAAArJvWipTQ9ttvn4022qhW36hRo/LQQw+VqKLaZs+eXavdpUuXOs2bO3du7r///mK7Y8eOGTBgQLHdtWvX/Pu//3uxXVlZmTvvvLPOdU2YMCFVVVW16jr44IPrPB8AAAAAAAAAAGi+1orwV3l5eb797W/X6lu6dGn+67/+K2effXbmzZtXoso+9txzz9Vqb7fddnWad/fdd2fJkiXF9kEHHZSWLVvWGjNkyJBa7c+eFLYqTzzxRK32F7/4xbRo0aLO8wEAAAAAAAAAgOZrrQh/JckJJ5yQ7bffvlZfTU1Nrr/++vzHf/xHrr322ixduvRzr2v69On585//XKvvP/7jP+o099Zbb63V/mzQ65O12rVrV2xPnTo1f/vb3+q0/ksvvVSrvfvuu9dpHgAAAAAAAAAA0PytNcdEtWzZMldccUW+853vZMqUKbXezZ49O+ecc06uuOKKDBs2LIcddlgqKirWeE1LlizJj3/841RWVhb7+vbtm9122221c//+979n8uTJxfZWW22VnXfeeblxrVu3zgEHHFArKHbLLbescOynVVZW5u23367V17Nnz9XW1dTmzp2biRMn1nn8gAEDUigU1mBFAAAAAAAAAACwflhrwl9JstFGG2Xs2LE599xzc/PNNy/3/u23385ZZ52VMWPGZPjw4Rk6dGjKytbM4WUvv/xyzjjjjFoBroqKipx11ll1Ci999vrGQw89dKVjhw4dWiv89ac//Smnn3562rRps9I5H374Yaqrq2v1dezYcbV1NbWpU6dm2LBhdR4/efJkV1MCAAAAAAAAAEATWOtSOK1bt865556bQYMG5ec//3leffXV5cbMnDkzp59+em644YacffbZ2WGHHeq9z4svvpjy8vJiu7KyMvPmzcurr76av/zlL3nhhRdqjS8vL89FF12UPn36rHbtJUuW5O677y62C4VCBg8evNLx/fr1y+abb54ZM2YkSRYsWJB77rknhx122ErnLFiwYLm+DTfccLW1AQAAAAAAAADrljVzbA7QHKx14a9PfOlLX8rdd9+d22+/PZdddlneeuut5ca8+OKLOfLIIzNy5Mgcd9xx9Vp/9OjRdR7buXPnnHfeefnKV75Sp/EPPPBAPvroo2J7t912y+abb77S8Z+Ewy677LJi3y233LLK8Neng2ufWLZsWZ3qAwAAAAAAAAAAmr+1NvyVfBxw+vrXv55DDz00t912W0aPHp2333671pjKysqcf/75mTFjRs4444wm3b9Vq1YZPHhwTjvttGy00UZ1nvfZKx+HDBmy2jlDhgypFf569tln89prr2Xrrbde4fgVXfE4Z86c/Nu//Vud62wKu+66a2644YbPdU8AAAAAAAAAAKCZnPzXsmXLfOMb38j999+fn/70pysMPl1zzTW58sorG7xHeXl5OnXqlK233jqDBg3Kz372szz88MM555xz6hX8mj59ep588sliu1WrVjnwwANXO2+LLbbIbrvtVqvvsyGyT+vQocNyp3998MEHda4TAAAAAAAAAABo3tbqk78+q2XLljnuuOMyePDgnHXWWbnvvvtqvb/44otz4IEH1un0q8suuywDBw5s8hpvu+221NTUFNtLlixJv379GrTWnXfemR/+8Idp0WL5H1OhUEjXrl1rXYf5/PPPZ++9927QXgAAAAAAAAAAQPPSLE7++qxOnTrlN7/5TY455pha/ZWVlbn22mtLVFVSXV2d22+/vcnWe//99/Pwww+v9P1nTwp7+umnm2xvAAAAAAAAAABg7dYsw1+f+OlPf5revXvX6ps0aVKJqkkee+yxvP3220265qquftxjjz1qtZ999tnMnDmzSfcHAAAAAAAAAADWTs3q2sfPKisryxFHHJGf//znxb5Shp8+G9Q6/PDDs99++9VrjTfffDPnnXdesf3oo49m1qxZ6dq163Jj995771RUVKSysjJJsmzZsvzxj3/M//t//68B1QMAAAAAAAAAAM1Jsw5/JUn37t1rtQuFQknq+PDDD/PQQw/V6vvud7+bLbfcsl7r1NTU5Oqrry6G2KqqqnLHHXfkpJNOWm5s165dc8ghh+S2224r9o0dOzaHHXbYcieiAQAAAAAAAAAA65Zmfe1jksyZM6dWu0uXLiWp46677iqewJUkffr0qXfwK/k4vHbIIYfU6rv11ltXOv673/1uysr+9WNcsmRJTj311MyfP7/eewMAAAAAAAAAzU+h4LMufKAh1orw1wsvvJA333yzQXMffPDBWu3ddtutKUqqt89e+fjZAFd9DBkypFb7jTfeyNNPP73CsVtvvXVOPPHEWn3Tpk3LMccck/fee6/BNQAAAAAAAAAAAGu3tSL8NXXq1AwePDijR49e7iSvVRk3blzuvffeWn2NCV011PPPP59//vOfxXZZWVkOOuigBq/Xo0eP7LLLLrX6Phsu+7RTTz01/fv3r9U3efLkHHHEEZkwYUK99l60aFEuv/zy3H///fWaBwAAAAAAAAAAfL5alLqATyxcuDAXX3xxfve73+XAAw/Ml7/85eyxxx7LXeNYWVmZ559/PjfeeGPGjRtX690BBxywXAjq8/DZYFa/fv3StWvXRq05ePDgPPfcc8X2fffdl//5n/9J+/btlxtbVlaWX/7ylzn22GPzyiuvFPvfeuutDB8+PLvssksGDx6cffbZJ926dVtu/ttvv53JkyfnwQcfzIQJEzJ37tyce+65dapz7ty5mThxYr2+26abbpovfOEL9ZoDAAAAAAAAAADUttaEvz6xePHi3HHHHbnjjjuSJO3bt89GG22U1q1bZ8GCBXnnnXdSWVm53Lxddtkl55xzzuddbhYuXJjx48fX6hs0aFCj1z344INz3nnnZenSpUk+/nUZN25cvvnNb65wfOfOnXPttddm5MiRefTRR2u9e+6554pBsjZt2mTjjTdOmzZtMn/+/MyZMyfz589vcJ1Tp07NsGHD6jXnkEMOyUUXXdTgPQEAAAAAAAAAgLXk2sdWrVqt9N28efMybdq0TJkyJdOnT18u+FVeXp6jjjoqV111VTbccMM1Xepy7r333ixYsKDYrqioyAEHHNDodTfccMPsu+++tfpWdfXjJ3PGjBmTc845J507d17hmIULF+bNN9/MlClTMmPGjJUGv1q3bt2wwgEAAAAAAAAAgM/FWnHy11e/+tV06dIl48ePz5NPPplp06atds4mm2ySgw46KEcccUS22WabNV/kSnw2kLXnnnumY8eOTbL20KFDc++99xbbL730UqZMmZLevXuvdE6hUMgRRxyRQw89NHfddVfuvvvu/PWvf01VVdUq9yoUCtl2223z7//+7xk6dOgq9wAAAAAAAAAAAEqvUFNTU1PqIj5r/vz5ee211zJt2rTMnj07CxYsSKtWrdKuXbtssskm6d27dzbbbLNSl9lsLFy4MC+//HKmT5+eDz/8MIsXL05FRUU22GCDdOzYMd27d0+PHj1KcnLa2u2VUhcAAADwuajJqv+HoeagkPJSlwDAWqYma91/+q63Dbe+oNQlNNrc135S6hIAgJXartQF0ISefm98qUugCXyxy1dLXQLN0Fpx8tdntWvXLn379k3fvn1LXco6oU2bNunXr1/69etX6lIAAAAAAAAAAIAmslaGvwAAAAAAAAAAqJtCqQsASqas1AUAAAAAAAAAAABQf8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMtSh1AQAAAAAAAAAANFyhUOoKgFJx8hcAAAAAAAAAAEAz5OQvAAAAWM8VUl7qEgCgyRXS/I8+mPvaT0pdAuuIpdXzSl1Co/XZ6y+lLqHRnnv0C6UuodHatNik1CU0Wk1NTalLaLSygr/iBQD+xclfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzVCLUhcAAAAAAAAAAEDDOfkH1l/+/AMAAAAAAAAAADRDwl8AAAAAAAAAAADNkPAXAAAAAAAAAABAMyT8BQAAAAAAAAAA0Ay1KHUB64PFixendevWJZu/InPmzEl5eXnat2/foLkffPBBkqRTp07p3Llzk9YGAAAAAAAAAACsnpO/1rD7778/AwcOzHXXXdeg+U899VT22WefXH755Vm8eHGT1XXDDTekf//+OeGEE3LPPffUa+5NN92Ugw8+OAcffHCuuuqqJqsJAAAAAAAAAACoO+GvNejmm2/OKaeckvfeey/nnntuJkyYUK/5lZWV+fnPf545c+bkoosuyv777585c+Y0SW2PPPJIKisrM2nSpDz77LNNsiYAAAAAAAAAAPD5Ef5agwYPHpwddtghSVJdXZ0RI0bkhRdeqPP8P/7xj5k6dWqxPXTo0HTs2LHRdX344Yd5/vnni+399tuv0WsCAAAAAAAAAACfL+GvNahly5b59a9/nQ4dOiRJFi9enNNOO61Op3fNnDkzv/3tb4vtfv365fvf/36T1PXoo4+muro6SbLhhhumX79+TbIuAAAAAAAAAPD5KxRqfNaBDzSE8Nca1r1795x//vnF9syZM/OjH/0oNTWr/kN7xhlnZOHChUmSTp065Ze//GXKy8ubpKZHHnmk+LzPPvukRYsWTbIuAAAAAAAAAADw+RH++hwMHDgwRx55ZLHduXPnLF68eKXjb7755jz++ONJkkKhkAsuuCBdu3ZtkloWL16cSZMmFdv77rtvk6wLAAAAAAAAAAB8vhz59Dk5/fTT8/bbb+fYY4/NXnvttdJxs2bNygUXXFBsH3/88dlnn32arI777rsv8+bNS5K0adMme++9d5OtDQAAAAAAAAAAfH6Ev5rIW2+9la9+9aurHffMM8+s8v2yZcuydOnSYvuGG27IjTfeuNLxu+22W6644oo613nrrbcWnwcOHJi2bdvWeS4AAAAAAAAAALD2EP5qItXV1Vm4cGGTr7to0aJVvl+yZEmd15o+fXqefvrpYnvIkCENrgsAAAAAAAAAACgt4a/1yG233ZaampokSdeuXdO/f/8kSa9evRq85uWXX57LL7+8XnO+973v5ZRTTmnwngAAAAAAAAAAgPDXGvPggw9m8803XyNrX3LJJbn00kvrNWfZsmW5/fbbi+1DDjkkZWVlTV0aAAAAAAAAAADwORH+Wk/cddddefvtt4vtT079SpI2bdqsdn5lZWUqKyuTJIVCoXiC2KdtsMEGKRQKq12roqKiLiUDAAAAAAAAAACrIPy1Hqiurs7vf//7Wn2fPvXrueeeW+0aP/rRj3LnnXcmSfbcc8889thjSZIePXrk9ddfT5Kcd955Ofjgg5uqbAAAAAAAAACgDlZ/TAuwrnLv33rgnnvuybRp0xo8f/HixZkwYUKSpEOHDtltt92K7/r37188yeuee+5pVJ0AAAAAAAAAAEDdCX+t42pqajJ69OhGrfHQQw9lwYIFSZK99947LVr868C4tm3bZtddd02SPPLII5k/f36j9gIAAAAAAAAAAOpG+Gsdd9999+WVV15p1Bo33XRT8Xm//fZb7v2AAQOSJEuWLMmf/vSnRu0FAAAAAAAAAADUjfDXOmzRokW54IILGrXGa6+9lieeeCJJ0r59+xWGvw466KAUCh/fIHzDDTc0aj8AAAAAAAAAAKBuhL/WYaNHj85bb72VJGnRokU222yzeq9x/fXXF58POuigtGrVarkxm222WXbbbbckycsvv5y//e1vDawYAAAAAAAAAACoK+GvddQbb7yRq666qtg++uij071793qt8cEHH+SWW24ptocOHbrSsYccckjxecyYMfXaBwAAAAAAAAAAqL8WpS5gXTVo0KDiVYhNrbKycrVjzjnnnCxdujRJ0qVLl3zve9/LySefXK99rrrqqixatChJsuOOO2bXXXdd6dhBgwblggsuyMKFC/PQQw9lypQp6d27d732AwAAAAAAAAAA6k74aw35JDRVKjNmzCg+//jHP067du3qNf/999+vdeXjcccdt8rx7dq1y9ChQ3PdddelpqYmv/rVrzJ69Oh67QkAAAAAAAAAANSdax/XUUcccUSSZN999611JWNdXXzxxVm4cGGSpFu3bjnwwANXO+eoo44qnnY2ceLETJo0qd77Av3z+GoAACAASURBVAAAAAAAAAD1Uyj4rAsfaAgnf60hDz74YDbffPPVjquqqkp5eXm91r7kkkty6aWXrnLMkCFD8oc//CHnnHNOvdZOkr///e+57bbbiu3hw4enRYvV/1bp2bNn9t9//9x3331JknPPPTd33313WrZsWe8aAAAAAAAAAACAVXPyVxNp2bJldtppp+KnLoGnSZMmZf/9988999xTr7023XTT4j49e/Zc4ZjOnTvn+uuvz8Ybb1yvtauqqnLGGWekuro6SbL11ltn6NChdZ5/6qmnpqzs499W06ZNy6hRo+q1PwAAAAAAAAAAUDdO/moim2yySW666aY6j7/++utz9tlnJ0l+9KMfpXPnztljjz3qNPfwww/P4Ycfvtpx3bt3r3M9n7jyyivz0ksvFdsjRoyo18lkPXv2zODBg3P77bcnSa6++ursvffe2XPPPetdCwAAAAAAAAAAsHJO/moCL730Uh5//PEsW7ZsuXdPPfVU8bNw4cJi/6GHHpoePXokSZYuXZrhw4dnypQpdd7z6quvzl133dX44j/lpZdeyiWXXFJs77fffhk4cGC91xk5cmQ6dOiQJKmpqckPf/jDvPHGG01WJwAAAAAAAAAAIPzVJC677LIcf/zx2XPPPfPHP/6x1rtjjjmm+JkxY0axv127drnsssvSrl27JMm8efPyX//1X5k9e/Yq91q0aFF++MMf5rzzzsvpp5+ep556qkm+w9y5c3Pqqadm6dKlSZI2bdrkzDPPbNBaG2+8cUaMGFFsz5kzJyeeeOJqvxsAAAAAAAAAAFB3wl+N9OGHH2bSpElJPg45dezYsc5ze/bsmQsvvDCFQiFJMnPmzPz3f/93qqurVzqnvLw806ZNS5JUVlbmlFNOyauvvtrwL5CkqqoqI0aMqBVOO/PMM7Pppps2eM0jjzwye+21V7E9bdq0HHvssfnggw8aVSsAAAAAAAAAAPAx4a9GGj9+fCorK5N8fFrW/vvvX6/5++67b4455phie9KkSbnssstWOr5ly5a55JJLiiGzjz76KCeeeGKjQlU/+9nP8uijjxbbgwcPztChQxu8XpIUCoVceOGFtQJk//jHP3LUUUdl+vTpjVobAAAAAAAAAAAQ/mq0O+64o/g8cODAtGnTpt5rjBw5Mr169Sq2J0+enKqqqmJ75syZ+d73vpdJkyaluro6//Zv/5ZRo0alrOzjH9+MGTMybNiwLFmypN57X3zxxbnpppuK7V69euWss85Kklx55ZXp1avXcp9Ro0YVx19++eUrHHPxxRenc+fOueSSS2r9mrz++us57LDD8vDDD9e7VgAAAAAAAAAA4F+Evxrh1VdfzUsvvVRsDxkypEHrtGzZMr/85S/TsWPHnHXWWRk9enTKy8uL72fMmJEHHnggJ5xwQgYOHJiamprstddeOeWUU4pjXnjhhZx55pn12veiiy7K6NGji+2uXbtmzJgxadu2bYO+x4r07ds3l156aSoqKop9H330USZPntxkewAAAAAAAADA+qzgs058oCGEvxrhmmuuKT537do1/fv3b/Ba22yzTSZOnJhvfetby7178803i89t27ZNofDxH/mTTz45AwYMKL6744478oc//KFO+y1dujSPP/54sd2hQ4eMGTOm1jWNFRUVadOmzXKfTwe5VjamZcuWxTF77rlnLr300mywwQZJkgMPPDDDhw+vU50AAAAAAAAAAMCKtSh1Ac3V7Nmza135+M1vfrN4DWNDrezKyKlTpxafd9hhh+JzoVDI+eefnyFDhmTWrFlJkgsvvDDbbrtt9tprr1Xu1bJly4wZMyZHHHFEFixYkD/84Q/p3bt3rTHHHHNMjjnmmOXmjhkzpnj143HHHZeRI0eu9rsNGDAg1157bUaNGpXzzz9/teMBAAAAAAAAAIBVc/JXA914441ZtGhRkqRVq1Y58sgjVzjuk1O6ko+vO2yIv/3tb8XnnXfeuda7zp0758ILLywGz6qqqnLRRRelpqZmtetuvPHGGT16dK655ppsv/32DaqtPvr06ZM//OEPKw25AQAAAAAAAAAAdSf81QBLly7NddddV2wPHjw4nTt3XuHYDh06FJ+ff/75eu/12muv1Zr3pS99abkxe+yxR04++eTi81VXXVUrdLYq2223Xbbbbrt61wUAAAAAAAAAAJSWax8b4Lnnnsvs2bOL7WOPPXalY7fddts888wzSZLLL78822+/ffr371+ncNarr76aH/zgB8VTvHr16pWtttpqhWOHDx+ejTbaKEceeWRatPBjBQAAAAAAAACAdZ2UUAPssccemTBhQq655pq89dZb2WabbVY69pBDDimGv+bMmZPjjz8+bdq0SadOnVa5x8KFC2sFzJLk+9///krHl5eX56ijjqrHtwAAAAAAAAAAAJoz4a8G2myzzfKjH/1oteMOP/zwPPTQQ3nkkUeKfQsXLszChQvrtd/JJ5+cgQMH1rtOAAAAAAAAAABg3ST8tYaVl5fnd7/7XW688cbcfffdmTp1aubPn1+8ynFlKioq0rVr1+ywww755je/mf79+39OFQMAAAAAAAAAAM2B8Nfn4JMrGUt9LWNFRUVatmyZJCkrKytpLQAAAAAAAABA0ygrlLoCoFQKNas7ggrWW6+UugAAAAAAAGi0pdXzSl1Co/XZ6y+lLqHRnnv0C6UuodHatNik1CU02rrwV6NlBed70FS2K3UBNKGXZo8rdQk0gT6dBpW6BJohxz8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzZDwFwAAAAAAAAAAQDMk/AUAAAAAAAAAANAMCX8BAAAAAAAAAAA0Q8JfAAAAAAAAAAAAzVCLUhcAAAAAAADAmtWyrH2pS2i0+XNnlrqERvpCCuvAX80VUl7qEhqlJstSVmj+PwcAgE/4NxsAAAAAAIB1mODX2kHwa+0g+AWsqwqlLgAoGdc+AgAAAAAAAAAANEPCXwAAAAAAAAAAAM2Q8BcAAAAAAAAAAEAzJPwFAAAAAAAAAADQDAl/AQAAAAAAAAAANEMtSl0AAAAAAAAAAACwbnj33XfzwgsvZMaMGVm4cGFat26dzTbbLH369En37t1LXV6SpKqqKm+88Ub++c9/5v3338+8efPSsmXLbLjhhtlss83St2/ftGvXrtRl1onwFwAAAAAAAAAA0CgPPfRQLr/88jz33HOpqalZ4ZjevXvn+OOPz+DBg1MoFD7X+qZOnZqJEyfmySefzF//+tcsWrRopWPLysrSp8//Z+/O470e8//xP8+WlpP2jLKWUUQUhZEljS37FhlDMSWTStqtoSkZQvXNUmTPEmJIiG5Mw6AhRkOWLJW0mMJp75zz+8Nv3h/vOtU573NO707d77fbud3e1/V+XdfrcWZOf3ncrmu/OP/88+Okk06KSpUqbcGkJZNRuLH/tWG791m6AwAAAAAAABHRYL+H0x2h1L6YeUK6I5Ra1ex66Y4AlKm90x2AMvSfZS+kOwJlYN+aJ6c7QkqWL18egwYNipdffrnYa1q3bh2333571K1btxyT/eL555+PsWPHxmefpdYD2W233eKWW26JFi1alHGyspGZ7gAAAAAAAAAAAEDFs3z58ujcuXOJil8REe+++26cf/75sXjx4nJK9n+mTZuWcvErIuLbb7+NP/zhD/H888+XYaqy49rHNHv88cfjyy+/jIiIU045JZo3b57mRP9nzZo1KR1bt27dusjO9qcFAAAAAAAAALAtu+qqq+LDDz9MmmvQoEF06tQpDjvssPjNb34Tixcvjvfffz/Gjx+f6MhERHzzzTfRo0ePeOSRR7Z4z+SAAw6IQw89NFq1ahUNGzaMOnXqRH5+fixYsCDefvvtePTRR+O7775LPJ+fnx+DBg2K2rVrR5s2bbZo1s3R0EmzV199NaZPnx4REfvss0+5lb8effTROOigg6Jp06bFen7u3LnRq1evOProo6Nnz54lelfPnj2jRo0a0a9fv6hdu3YqcQEAAAAAAAAA2Iq9/vrrMWXKlKS51q1bx5gxY6J69eqJuR133DEaN24cp512WvTr1y9pzQcffBCPP/54XHDBBeWet2bNmnHWWWfFOeecE3vuuWeRz9SuXTuaNWsWF154YQwZMiSeeOKJxHfr1q2L66+/PiZPnhw77LBDuectLtc+buPy8/PjhhtuiBtvvDE6deoUn3/++WbXzJ49O84444yYNWtW/L//9//iySefLPb7pk+fHq+99lo888wzceKJJ8aLL75YmvgAAAAAAAAAAGxlCgsL484770yaa9CgQdx1111Jxa9fq1SpUowYMSKaNWuWNH/33XfHypUryy1r1apVo1u3bjF16tTo37//Rotfv1apUqW48cYb4/TTT0+anzdvXjz99NPlFTUlyl/buFmzZsVTTz0VERFLly6NTp06xZw5cza5Zq+99op99903Mb7hhhvi73//+2bftXbt2hg6dGhi/NNPP0WdOnVSTA4AAAAAAAAAwNbotddei08//TRp7uqrr47c3NxNrsvKyoohQ4YkzS1evLhEBxOV1I033hi9e/feaCltU6666qrYcccdk+Zee+21sopWJpS/tnHNmzeP4cOHR0ZGRkRELFmyJC666KKYO3fuRtdkZWXFHXfcETvvvHNE/HJsXa9evTZ7atj6d7N26dIlDj300DL4LQAAAAAAAAAA2Fq89NJLSeOGDRtGu3btirV23333jYMOOihpbv3rI8tSVlZWymtr1KgRxxxzTNLc+++/X9pIZUr5aztw0kknRZ8+fRLjRYsWxcUXXxxLlizZ6JratWvHqFGjolKlShERsXz58vjzn/8cP/74Y5HPz5s3L8aMGZMYt2jRInr27FlGvwEAAAAAAAAAAFuDtWvXxhtvvJE0d9pppyUOJiqOM844I2k8c+bM+OGHH8okX1lr2rRp0njFihWRl5eXpjQbUv7aTnTp0iU6dOiQGH/77bfxpz/9aZN/jPvvv38MGDAgac21115b5LODBw9O3L9as2bNuO222yI7O7uM0gMAAAAAAAAAsDWYOXNm/Pzzz0lzrVu3LtEehxxySNK4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URaUvyjSkiVLtug/KgAAAAAAAAAAtn4HHnhgVK9ePelwonfffbdE5a933303aZyZmRlHHHFEmWXclBkzZsTll18ea9asScxlZ2fH7bffHm3atNkiGcqS8leKnnvuuVKtf+WVV6Jv376xevXqpPkTTjghRowYEVlZWaXaHwAAAAAAAAAAylpOTk4cddRR8cILLyTmnnvuuejRo0dkZGQUa49JkyYljQ888MCoU6dOmeYsyscffxyXXnpprFy5MjGXmZkZw4YNi2OPPbbc318eMtMdYHv02GOPRa9evTYofkVETJkyJQYNGpR0n2g6ZGZmRsOGDaNhw4ZRr169xHxOTk5i/n8/vy6q1atXLzHfoEGDdEQHAAAAAAAAAKAcnXjiiUnjefPmxeuvv16stZ9++mm89957SXMnnHBCmWXbmC+++CL+9Kc/RV5eXtL84MGD49RTTy3395cXJ39tYXfccUfcddddERGx0047Rc2aNWP27NkREbHbbrvFt99+G88991ysXr06/vrXv0alSpW2WLbMzMyoXr16RETUqVMnXn755YiIeP/996Njx44REbHXXntt0L485phjYv78+RERMXr06DjwwAMjImLNmjXxu9/9LvFccdudAAAAAAAAAEDxZfrP8Wxh7dq1iyZNmiQ6LxERf/nLX+LQQw+NatWqbXRdfn5+XH311Ulz9erViw4dOhTrvU2aNEkat27dOh5++OHNrps7d2507tw5li5dmjQ/aNCgOPfcc4v17q2Vk7+2kNWrV8egQYMSxa8dd9wxxo0bl3SqVteuXeOoo46KiF9OALvkkkti2bJlWyzjrrvuGjNmzIgZM2Ykil8RkXRHa25ubrH3q1SpUmK/GTNmbNEiGwAAAAAAAAAA5SMjIyOuuOKKpLn58+fHZZddtsHJWv+zZs2a6Nu3b3z88cdJ8926dYsqVaqUW9aFCxdGp06dYtGiRUnzvXr1ik6dOpXbe7cUJ39tAV9//XX06tUrPv3004iIqF69etx3332x9957Jz2XlZUVI0aMiM6dO8dHH30U7777bpx55pkxevTo2HfffdMRPSJSL38BAAAAAAAAALBtOuaYY+L4449POmDonXfeiVNPPTU6d+4chx12WNSvXz+WLFkS77//fowfPz6++OKLpD1atGgR5513Xrnm7NWrV8ybNy9prl69erFixYq49dZbU9rzhBNOiP32268s4pWa8lc5e+mll+Kaa65JtBpr1qwZ48aNi/3337/I53Nzc2PcuHHRqVOn+M9//hPz58+Pjh07Rt++feOCCy4ot6sT165dG//85z/jiCOO2OC7b7/9NvH51yeVAQAAAAAAAACw/Ro6dGgsWLAgPvroo8Tc/PnzY8iQIZtdu9tuu8XIkSMjO7t860vrn/gVEbF48eIYO3Zsyns2atRoqyl/ufaxnKxcuTJuuummuOKKKxLFrwYNGsRjjz220eLX/9SoUSMeeOCBOOiggyIiYtWqVTFkyJC4+OKLN2giloW8vLzo0qVLPPHEE0V+/9VXXyU+77HHHmX+fgAAAAAAAAAAKp7c3NwYP358HHvssSVad/DBB8eECROifv365ZRs+6H8VQ7eeuutOOWUU+KRRx5JzDVr1iwef/zxaNy4cbH2qFGjRtx///1J/zjeeuutOOmkk+Luu++ONWvWlEnWRYsWxR/+8Id4++23Y/78+UU+8+t2ZmnKX5MmTUraCwAAAAAAAACAii03NzdGjx4dY8aMiRYtWmzy2SZNmsTNN98cjzzySNStW3cLJdy2ufaxDC1btiyGDx8ezzzzTNL8ySefHH/5y1+icuXKJdqvcuXKMWrUqBgzZkyMHj06CgoKYtWqVXH77bfHxIkTo2fPnnHyySdHZmZqHb5PP/00unXrFgsWLIiIiG+++WaDZ+bMmRNff/11RERkZmZu9h/ppkyZMiWmTZsWTZo0iR49epS49QkAAAAAAAAAwNapXbt20a5du1i4cGF8+OGHMX/+/FixYkVUrlw5dt5559h///1j1113LdU7Zs+eXeI1r7/+eqneubVT/ioDhYWF8be//S1uvvnm+OGHHxLzOTk5MWDAgPjjH/+Y8t4ZGRnRvXv3OPDAA2PAgAGxePHiiIiYO3du9OvXL8aOHRtdu3aNE088sUR3oL7xxhvRu3fvWL58eUT8UjQr6r7VJ598MvF5n332idq1a6f8u6xYsSIifvmH+NFHHyl/AQAAAAAAAABsY3baaac47rjj0h1ju+Hax1J6++2346yzzop+/folFb/22GOPmDBhQqmKX792+OGHx9/+9rc4/vjjk+Y/++yz6Nu3bxx33HExfvz4WLp0aZHr8/LyksaXXXZZovhVr169ePjhh6N9+/ZJz8ydOzcmTJiQGJ988sml+h1+/vnnxOcGDRqUai8AAAAAAAAAANjeKX+laPbs2dGlS5fo1KlTzJo1K+m7jh07xqRJk2L//fcv03fWqlUrRo4cGXfffXc0bNgw6bv58+fHzTffHEceeWT0798/1q5dm/T9559/njTOz8+PiIhmzZrFxIkTo3nz5knfr1q1Knr27BmrVq2KiF/uZ+3QoUOp8v+6HKf8BQAAAAAAAABlI8PPNvEDqXDtYwpmzpwZHTt2jIKCgqT53XbbLW688cY47LDDyvX9bdu2jUMPPTTuv//+uO+++xIneEVErFmzJho1ahQ5OTlJayZNmrTBPscff3wMHz48qlSpkjSfl5cXvXr1iv/85z+Jue7du0dubu5msxUWFhY5v27duliyZElivH55DQAAAAAAAAAAKBknf6XgwAMPjI4dOybGOTk50bVr1/jb3/5W7sWv/6lSpUp07949Xn311bjwwgujcuXKERHRpk2buPTSS5Oe/eSTT2L69OlJc926dYs777xzg+LX559/Huedd17S80cddVR06tRpo1l+XTRbsGBBkc988sknidPGIpz8BQAAAAAAAAAApaX8laJBgwZF8+bN44gjjojnn38++vTpkyhgbUl16tSJq6++OqZNmxZ//vOfY9iwYZGRkXwY4D777BPdunWLiIiMjIy48cYbo3fv3knPLV++PG655ZY444wzkq6IbNWqVdxxxx2RmbnxP5Wddtop8fnee++Nr7/+Oun7hQsXxl//+tfEuGHDhlG1atWUfl8AAAAAAAAAAOAXrn1MUU5OTjz00EMbnJyVLrVr145evXpt9PvevXvHd999F02aNIlzzz03Mf/999/Hww8/HE8++WT89NNPSWtOPvnkGDp0aOywww6bfPdRRx0V77zzTkT8csLX8ccfv8nnjznmmM39OgAAAAAAAAAAwGYof5XC1lL8Kq5hw4ZFdnby/+WPPPJIjBs3LmkuNzc3Bg4cGOecc06x9j3//PPjxRdfjFmzZm322YYNG8bll19e/NAAAAAAAAAAAECRlL+2I+sXvyIievbsGdOnT49PPvkkMjIyXSlwawAAIABJREFU4tRTT40+ffokXeW4OVWqVIlHH300Hn300XjzzTdj8eLFsW7dusT3mZmZsdNOO0XLli2jc+fOUaNGjTL5fQAAAAAAAAAAYHuWUVhYWJjuEKTXF198EXfddVd07do1mjRpku44W5HP0h0AAAAAAACIiAb7PZzuCKX2xcwT0h2h1Kpm10t3BKBM7Z3uAJShz398Id0RKAO/rXFyuiNQATn5i9hrr73itttuS3cMAAAAAAAAAACgBJS/AAAAAAAAAAAqsIwMl77B9ioz3QEAAAAAAAAAAAAoOeUvAAAAAAAAAACACkj5CwAAAAAAAAAAoAJS/gIAAAAAAAAAAKiAlL8AAAAAAAAAAAAqoOx0BwAAAAAAAIBN+e7jP6Y7QqlV2/2mdEcotbxvrkl3hFLLiIx0RwAAKFNO/gIAAAAAAAAAAKiAnPwFAAAAAAAAAFCBOdcQtl9O/gIAAAAAAAAAAKiAlL8AAAAAAAAAAAAqIOUvAAAAAAAAAACACkj5CwAAAAAAAAAAoAJS/gIAAAAAAAAAAKiAlL8AAAAAAAAAAAAqIOUvAAAAAAAAAACACkj5CwAAAAAAAAAAoALKTncAAAAAAAAAAABSl5GR7gRAujj5qxx899130bVr17jvvvvi448/TneczcrLy4t+/frFlClTYuXKlemOAwAAAAAAAAAAFIOTv8rBtGnT4o033og33ngjdtttt3j11VfTHWmTnnzyyXj++efj+eefjypVqsSkSZNijz32SHcsAAAAAAAAAABgE5S/ysHrr7+e+Pz73/8+8fm7776LkSNHlss7+/fvH7Vr1y7xujVr1sSDDz6YGLdo0ULxCwAAAAAAAAAAKgDlrzK2fPnyePfddxPj4447LvH5xx9/jGeffbZc3nv55ZenVP565JFH4vvvv0+Me/XqVZaxAAAAAAAAAACAcpKZ7gDbmrfeeivWrFkTERH169ePAw88MM2JNu6nn36Ke+65JzE++uijt+q8AAAAAAAAAADA/3HyVxl77bXXEp+PPfbYyMjIKPK59u3bx+23317kd7feemuMHTs2IiIGDx4cHTt2LPK5Sy65JKZPn55y1hEjRsSyZcsS47POOivmzZuX8n7FVbly5ahbt265vwcAAAAAAAAAALZlyl9laMWKFfHyyy8nxu3bt09jmk376KOP4oknnkia69GjxxZ592GHHRYPPPDAFnkXAAAAAAAAAABsq1z7WIamTJkSK1asiIiIPfbYIw4++OA0Jyra6tWrY+DAgVFQUJDuKAAAAAAAAAAAQIqc/FWGnnnmmcTnM844I41JNu22226LL7/8Mt0xAAAAAAAAAIAy4OQf2H4pf5WRb7/9NmbMmBEREVlZWZstf02ePDkmT5682X0HDx4cgwcPLouIERExderUePDBBxPjI488MsaOHVtm+xflzTffjC5duiTGhx9+eLm+DwAAAAAAAAAAtgfKn2Xk6aefjsLCwoj4pdy00047pTnRhr755psYOHBgYlyzZs0YOnRoub4zPz8/hg8fnhg3aNAgLrzwwnJ9JwAAAAAAAAAAbA+c/FUGli9fHo8//nhi3Lx5882uady4cRxzzDFFfvfee+/FzJkzIyKiTZs2sc8++xT53EsvvRTz5s0rVsYff/wxLr300vj5558TczfddFPUq1dvs2tHjx4dEyZMiIiIFi1axOjRo4v1zoiIxx9/PL744ovEuFevXrHDDjsUez0AAAAAAAAAAFA05a8y8MQTT8SyZctKtKZJkybRt2/fIr+79dZbE+Wv3//+99GxY8cin/vkk0+KVf5as2ZNXH755fHVV18l5i666KI47rjjipV1+fLlsWTJkoj4pURWXEuWLImRI0cmxk2bNo1TTz212OsBAAAAAAAAAICNc+1jKa1ZsybGjx+f7hgblZ+fH1deeWW8++67ibmDDjoo+vfvX+7vvu666xKluIyMjLjmmmsiM9OfHAAAAAAAAAAAlAVNnFJ69tlnY9GiRemOUaSCgoIYOHBgvPrqq4m5Bg0axJ133hnZ2eV76NukSZPitddeS4w7dOgQrVq1Ktd3AgAAAAAAAADA9sS1j6Wwdu3aGDt2bEprP/zwwxg4cGCR382aNSvxedKkSfHhhx8W+dxnn3220f3XrVsXAwYMiBdeeCExl5ubG/fcc0/Uq1cvpcwlsWjRoqhZs2YsW7Ys6tWrF/369Sv3dwIAAAAAAAAAwPZE+asUHnrooZg7d25Ka+fPnx/PPvvsZp+bOXNmzJw5s8T7jx8/Pqn4lZOTEyNHjoy99967xHulomvXrnHhhRfGY489FnvuuWdUr159i7wXAAAAAAAAAAC2F659TNGSJUtizJgxifF+++2XxjQb6ty5c5x11lkREZGVlRUjRoyIww8/fIPnCgsLN3qyWEktXLgwaVy5cuW4+OKLo23btmWyPwAAAAAAAACwoYwMP9vCD6RC+StFI0aMiLy8vIiIaNq0aZx22mklWt++ffuYPXt2kT9dunRJPDd48OCNPtemTZuN7p+dnR1Dhw6N8847L4YNGxbHHXdckc9NnTo1OnToEB06dIgpU6ZEQUFBiX6PiF+umBw1alS0a9cu3nvvvRKvBwAAAAAAAAAASs61jyn4+OOPk65sHDBgQMyZM2ez6+rXrx99+vSJiIjGjRuXOsdZZ50VhxxySERE1KhRo8hnbrjhhk3ucdddd0VExIcffhgDBw6Mgw46KOrVq1eiHL17945XXnklIiL69+8fzz33XOy4444l2gMAAAAAAAAAACgZ5a8ULFiwIHFCVtu2beN3v/tdscpfderUia5du5ZZjvbt25dq/RtvvBGzZs1KjM8///wSF78iIs4999xE+eu7776L66+/Pm6//fZSZQMAAAAAAAAAADbNtY8pOProo6Nu3bpRrVq1uP7669MdJ2V333134nO1atWSrpssiTZt2kSHDh0S48mTJyedjAYAAAAAAAAAAJQ9J3+lICcnJ0477bRo0KBB7Lzzzpt9fvjw4XH//fen9K7BgwfH4MGDS/R8x44dN/vctGnT4v3330+ML7rooqhVq1YqESPil6svp0+fHt99911ERAwZMiRat24dDRs2THlPAAAAAAAAAABg45z8laJLLrkkzj///HTHSMnatWtj+PDhiXGNGjXi4osvLtWeubm5MWTIkMQ4Ly8vBg4cGIWFhaXaFwAAAAAAAAAAKJqTv1JUp06dlNa1bNkydt99900+M2vWrPjss88iIuLAAw+MPffcs9jPF8ejjz4aX331VWLco0ePqF69erHXb8zhhx8eHTp0iCeffDIiIt5999148MEHo1OnTqXeGwAAAAAAAAAASKb8tYWdc845ceaZZ27ymVtvvTVR5jr99NM3e43jr5/fnKVLl8aYMWMS47322qtY10QW1/rXP44YMSKOOOKIaNy4cZm9AwAAAAAAAAAAcO1jhVFQUBATJ06Mbt26xZVXXpnyPrfeemv8+OOPifGgQYMiO7vsOoDrX/+4evXquOqqq6KgoKDM3gEAAAAAAAAA/J8MP9vED6RC+auCyMzMjEceeSSmTZsWL7/8cixevLjEe7z55psxceLExLht27bRpk2bsowZEb9c/3jOOeckxjNnzowHHnigzN8DAAAAAAAAAADbM+WvCuSss86KiIh169bFM888U6K1eXl5cd111yXGVapUiauvvrpM8/1anz59ombNmonxnXfeGV9//XW5vQ8AAAAAAAAAALY3yl8VxNq1a+OII45IXNH41FNPRWFhYbHXDxs2LBYsWJAYX3HFFbHrrruWec7/qVWrVvTt2zcxXrVqVVx99dUlygwAAAAAAAAAAGxcdroDbI8KCwvjvvvuixUrVsSqVati9erVsXLlyli1alWsXLkyPvvss8Szt9xySwwbNixWr16dtMfcuXNjxowZ0apVq82+75VXXkm67rF58+Zx4YUXlt0vtBFnn312TJw4MWbOnBkRETNmzIgnnngizjvvvHJ/NwAAAAAAAAAAbOuUv9IgIyMjpkyZEv/+9783++yKFSs2+t0LL7yw2fLX119/HYMGDUqMc3JyYsiQIZGZWf6HvmVkZMT1118fZ599duTn50dExG233Rbt2rWLevXqlfv7AQAAAAAAAABgW+baxzT53e9+V+R8VlZW1KlTJxo1ahQtWrSItm3bxhlnnBGdOnWKXr16xfXXXx/VqlWLiIiXX3451q1bt9F3rFy5Mnr06BF5eXmJuR49ekSTJk3K9pfZhH333TfOP//8xPinn36Km266aYu9HwAAAAAAAAAAtlVO/kqTM888M3bZZZeoXbt21KxZM2rXrh21atWKmjVrRkZGxibX/utf/4oXXnghli5dGv/4xz82+tywYcOSrpA89NBDo0uXLmX2OxRXr1694qWXXoolS5ZERMRbb70VCxcujJ122mmLZwEAAAAAAAAAgG2F8lea7LHHHrHHHnuktPbkk0+O/Pz8OPnkk+Owww6L9957r8jnLrnkkpg1a1Z8/PHHUatWrbjllltSuu7x1yeHpaJ69erRv3//6N+/fxx55JFx0003KX4BAAAAAAAAAEApKX9VQG3bto22bdsmxgsWLEh8zsnJSXzefffd4/HHH4+RI0dGixYtUipc5efnx4wZMxLjKlWqpJT5tNNOixo1asTRRx+d0noAAAAAAAAAoGibuWAM2IYpf1UQ33zzTVSpUiVq1aqVKHitXLkypkyZEi+//HLiufULXjk5OdGnT59N7v3OO+/EJ598EjVr1owaNWpEbm5u7LDDDvHDDz/EE088EXPmzEk827Bhw5R/B8UvAAAAAAAAAAAoO8pfFcQdd9wRkydPjoiIrKysyMnJiVWrViU9k5ubGy1btizx3gsXLoxhw4YV69lfnzgGAAAAAAAAAACkT2a6A1A8BxxwQOJzfn7+BsWvrKysuPbaa6NatWol3rtp06bFeu64446LI488ssT7AwAAAAAAAAAAZc/JXxXEgQceGM2aNYuCgoIoLCyMjIyMyMzMjGrVqsVee+0VZ599djRr1iylvRs1ahS5ubmxYsWKKCgoSPouKysrGjduHGeccUZcdNFFZfGrAAAAAAAAAAAAZSCjsLCwMN0h2Hrk5+cnfgoLC6NKlSqRkZGR7lhp8lm6AwAAAAAAANuIarvflO4IpZb3zTXpjlBqGbG9/ncvKMre6Q5AGZq7/G/pjkAZ2LXaKemOQAXk5C+SZGVlRVZWVrpjAAAAAAAAAAAAm5GZ7gAAAAAAAAAAAACUnPIXAAAAAAAAAABABeTaRwAAAAAAAACACiwj3QGAtHHyFwAAAAAAAAAAQAWk/AUAAAAAAAAAAFABKX8BAAAAAAAAAABUQNnpDgAAAAAAAACbUrfJmHRHKLXl31yb7giltqbgp3RHKLVKmTumOwIAQJly8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQASl/AQAAAAAAAAAAVEDZ6Q4AAAAAAAAAAEDqMjPSnQBIFyd/AQAAAAAAAAAAVEDKXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFpPwFAAAAAAAAAABQASl/AQAAAAAAAAAAVEDKXwAAAAAAAAAAABWQ8hcAAAAAAAAAAEAFlJ3uAFQcTz/9dCxevDhOOeWUaNiwYbrjAAAAAAAAAADAds3JXxTLunXrYtSoUXH77bdHu3btYvDgwemOBAAAAAAAAABERIafbeIHUqH8RbG88sorsWDBgoiIKCwsjEMOOSTNiQAAAAAAAAAAYPum/EWxPPTQQ4nPe+65Zxx//PFpTAMAAAAAAAAAAGSnOwDlZ+jQofHf//632M9fdtll0bhx4w3m//Wvf8UHH3yQGF966aWRmak3CAAAAAAAAAAA6aT8tQ2bOnVqzJ8/v9jPn3POOUWWv+68887E59/85jdx3HHHxerVq1POlZ2dHVlZWSmvBwAAAAAAAAAAlL/YjLfffjveeeedxPj777+Pli1blmrP/v37xyWXXFLaaAAAAAAAAAAAsF1T/tpOXHzxxdG0adMN5gcPHhwrVqzY6Lpfn/oFAAAAAAAAAABsPZS/thOtW7eOtm3bbjA/dOjQjZa/Jk+eHB988EF5RwMAAAAAAAAAAFKg/EWR8vLyYtiwYYlxs2bNYuLEiZGZmZnGVAAAAAAAAAAAwP8of1GkkSNHxqJFiyIiIjMzMwYPHqz4BQAAAAAAAABboYyMwnRHANJEm4cNzJo1Kx555JHE+JxzzonmzZunMREAAAAAAAAAALA+5S+SrFy5Mvr27Rv5+fkREVGrVq248sor05wKAAAAAAAAAABYn/IXSYYOHRpz5sxJjK+77rqoWbNmGhMBAAAAAAAAAABFyU53ALYeb731Vjz55JOJcfv27aNdu3axevXqlPfMyMiISpUqlUU8AAAAAAAAAADgV5S/SDjssMPit7/9bdx6662Rn58ff/rTn6J58+al2rNhw4bx+uuvl1FCAAAAAAAAAADgf5S/SMjIyIiTTz45jjnmmJg7d25Uq1Yt3ZEAAAAAAAAAAICNyEx3ALY+VatWjSZNmqQ7BgAAAAAAAAAAsAlO/mKjdtlll5g9e3axn//73/8el19+eaxatSoifimR3XjjjeUVDwAAAAAAAAAAtmvKX5SJV199NXr37h1r166NiIg6derEvffeG/vtt1+akwEAAAAAAADAti0j3QGAtHHtI6X2/PPPxxVXXJEofjVs2DAmTJig+AUAAAAAAAAAAOVI+YtSeeqpp2LAgAGxbt26iIjYe++9Y8KECbH77runORkAAAAAAAAAAGzbXPtIyp5++um49tpro7CwMCIi9ttvv7jvvvuiZs2aaU4GAAAAAAAAAADbPid/kZJnn302rrnmmkTxq2XLlvHggw8qfgEAAAAAAAAAwBai/EWJPffcc3HVVVdFQUFBRES0atUq7rvvvsjNzU1zMgAAAAAAAAAA2H4of1EiU6dOjUGDBiWKX61bt46xY8dG1apV05wMAAAAAAAAAAC2L8pfFNs777wTV155ZeTn50fEL1c93n333VGlSpXNrs3Pz09cEQkAAAAAAAAAAJRedroDsGV069atVOtnzZoVl112WaxevToiIpo1axZjx46NatWqFWv9p59+Gpdeemm0a9cujj322Dj88MMjIyOjVJkAAAAAAAAAAGB7pvzFZn3//fdx6aWXxvLlyyMiYs8994xx48ZFbm5usff44YcfYvHixfH444/HU089FR999FFkZ/vzAwAAAAAAAIDScvYKbL9c+8gmrVixIrp16xaLFy+OiIi6devGuHHjonbt2iXaZ9GiRYnP9evXV/wCAAAAAAAAAIBS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v/71r+P000/frfh1yCGHxJQpU2LGjBn7LX5NmzYtHnjggdS4WbNmMX369LjllltS20mWlZXFFVdcEX/+858z+G0AAAAAAAAAAIAI5a8G4bXXXku9f+utt2LSpEmxdevWtGuGDh0aixcvrtQxjbfffnvcfvvtqXEikYjJkydHu3btom/fvnHNNdekPtu5c2eMGTMmnnvuuQx8EwAAAAAAAAAA4COOfcyQ2267LUpLSyMiomnTpllO83+2bNkSy5cv3+vnRxxxRNx0003Ro0eP/a5VWloaN954Yzz66KNp81dddVX07t07Nb7oooti3bp1MW/evIiI2LZtW1x88cUxd+7c6NixY/W+CAAAAAAAAAAAkMbOXxnSsmXLaNOmTbRp06bWyl8flcuqYtKkSfHBBx/sNp+fnx/f+MY3YtGiRZUqfq1bty7OPvvs3YpfF198cYwePXq36ydMmBC9evVKjd9777246KKLYuPGjVX+DgAAAAAAAAAAwO6Uv3LIunXr0sb5+fn7vP7111+PJ554Yrf5Ll26xAMPPBDXXnttNG7ceJ9rJJPJmD17dgwePDhWr16d9tmll14aV1111R7vy8/PjylTpkSXLl1Sc+vXr4/Ro0fvduQkAAAAAAAAAABQdcpfOWLHjh0xe/bstLlmzZrt85727dvHt771rdQ4kUjEmDFj4tFHH41jjz12v89cvXp1jBw5Mm666abYtm1bar5Ro0bxox/9KMaNG7fP+5s2bRrTp0+P4uLi1NwLL7wQl112WbV2MQMAAAAAAAAAAP5PIplMJrMdoqFbv359TJo0KZo3bx7NmjWLJk2aRFFRURx00EGRn58fb7/9dixZsiTWr1+fuqdFixbx9NNP73ftZDIZF154YTz33HNx8803R+/evfd7z5tvvhk///nPY8GCBfHJH4/DDz88pkyZEscdd1ylv9/KlStj1KhRUV5enpobOnRo/PjHP670GtnxcrYDAAAAAAAAEZGM+vDrrIpsB6ixZDL3v0PLzrdnO0KNvb/m29mOQL3RZf+XkDN27tp/f4C6r3H+ydmOQA4qyHYAIlq3bh1/+tOfoqSkpNL3DBgwoFLXJRKJuPnmm2Pr1q3RqVOnfV779ttvxx133BHz58+PsrKy3dYZNmxYXHvttfvdceyTevToEePHj48f/OAHERFRXFwcZ599dpXWAAAAAAAA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AAAAAACZofxVA8lkMh5//PEYNmxYjdYpLy+PBx98MDXu3r17HH/88btdt2HDhrRxy5Yta/TcfZk1a1bccMMN8c4779TaMwAAAAAAAAAAgOpT/qqmZ599NoYPHx5XXXVVrF+/vkZr/dd//Vds3LgxNR4xYsQer0smk2nj119/vUbP3Zddu3bFgw8+GH379o3bb789tm3bVmvPAgAAAAAAAAAAqk75q4rWrl0bY8eOjXPPPTeee+65jKw5Z86c1PuDDz44BgwYsMfrDj/88LTxwoULY/v27RnJsDfbt2+PadOmRZ8+fWLevHmxa9euWn0eAAAAAAAAAABQOcpflfTuu+/GxIkTY+DAgbFs2bLUfH5+/l7LWpWxdu3a+POf/5waDxkyJD71qU/t8dqePXumjTds2BBXXHFFbN26tdrP35uTTjop2rVrlxpv2rQpbrzxxvja176W9v0BAAAAAAAAgGxLeNWLF1Sd8td+7NixI6ZPnx5f/epXY+7cuVFeXp767Ctf+UosWrQoJk6cWO31P77rVyKR2OuRjxERgwcPjuLi4rS5FStWxODBg+OPf/xjtTPsyYknnhhLliyJ8ePHR4sWLVLzH9/5bNWqVRl9JgAAAAAAAAAAUHnKX3tRUVERjzzySPTt2zemTp0a27ZtS332xS9+MebOnRvTp0+PTp06VfsZ27dvjwULFqTGPXr0iCOPPHKv1zdr1ixuvPHGSCTS256vv/56fOMb34gxY8bEv/71r2rn+aTCwsK44IILYunSpTF27NgoKipKffbss8/GmWeeGd/+9rfj9ddfz9gzAQAAAAAAAACAylH+2oMVK1bEoEGD4rrrrosNGzak5jt37hzTp0+POXPmxBe+8IUaP2fhwoVpRzaOHDlyv/f069cvbrjhhsjPz9/ts+XLl8fAgQPjyiuvjLVr19Y430eaNm0a3/rWt+K3v/1tjBgxIho1ahQREclkMp544ok444wzYvLkyfH+++9n7JkAAAAAAAAAAMC+JZLJZDLbIeqKF198MW655ZbdjlBs27ZtXH755TFkyJA9lq6qa9CgQfHiiy9GRESbNm1i2bJllV7/6aefjmuvvTbefvvtPX6el5cXAwYMiCuuuCLat2+fscwREa+99lpMmTIllixZEh//8WnevHlccsklcd5550VhYWFGn5kdL2c7AAAAAAAAEBGlFVuyHSEDcv9XchXJsmxHqLE3t2/KdoQa6zO7ebYj1NiqUYn9X1THFRW0znaEDOiS7QBkUEXyn9mOQAbkJT6b7QjkIDt/RcTbb78d48ePjyFDhqQVv5o3bx7XXHNNPPnkkzFs2LCMFr/++hRimtUAACAASURBVNe/popfERFnnnlmldY/+eST44knnojzzz8/tRPXx1VUVMTChQujf//+MW3atCgtLc1I7oiIDh06xM9+9rN46KGHokePHqn5Dz74IG655ZY4/fTTY9GiRaFXCAAAAAAAAAAAtadB7/y1devWmDVrVtx7772xc+fO1Hzjxo3j3HPPjUsuuSQOPvjgWnn2VVddFY8//nhERDRq1CiWL18erVq1qtZa69ati6lTp8bixYujoqJij9ccc8wx8bOf/Szju4BFRPzhD3+I2267LVavXp0237179/jOd74TJ598csafeWDY+QsAAAAAAOoCO3/VDXb+qhvs/FU32PmLusbOX/WDnb+ojgZb/nrvvfeif//+8d5776Xm8vPzY/DgwXHFFVdEmzZtavXZvXr1irKy//0P5DPOOCN+9rOf1XjdNWvWxB133BG/+c1v9rjr1qGHHhq/+tWv4qijjqrxsz4pmUzGE088EVOnTo1169alfXb11VfH6NGjM/7M2qf8BQAAAAAAdYHyV92g/FU3KH/VDcpf1DXKX/WD8hfV0WCPfdy5c2da8SsioqCgIJo2bRqJRO3+x8ZDDz2UKn5FRIwcOTIj6x511FExZcqUeOyxx6JXr167fb5p06YYNWpUfPDBBxl53ic1btw4mjVrttv8J/85AwAAAAAAAAAANddgd/6KiPjHP/4R06ZNixUrVqTNN2rUKIYOHRqjR4/O+DGJFRUV0bt373jjjTciIqJz586p4x8zbenSpXHdddftVvY666yz4qabbsrIM8rLy+Pxxx+PWbNmxZo1a9I+a9euXVx88cUxdOjQKCwszMjzDiw7fwEAAAAAQF1g56+6wc5fdYOdv+oGO39R1yTjhWxHIAMS0S3bEchBDbr89ZFVq1bFtGnT4r//+7/T5vPz86N///5xySWXZOyoxGXLlsXYsWNT4wkTJsQ555yTkbX35NVXX42zzz47Nm/enJpr1KhRrFixIlq0aFHtdUtKSuLhhx+OX/ziF6ki20fatWsXY8aMiSFDhkSjRo2q/YzsU/4CAAAAAIC6QPmrblD+qhuUv+oG5S/qGuWv+kH5i+posMc+ftxxxx0Xd911Vzz88MNx6qmnpuZ37doVCxcujAEDBsQ3v/nNeP7552v8rDlz5qTeFxUVxaBBg2q85r507Ngxvv/976fNlZWVxTPPPFOt9bZu3Rp33XVXnHbaaXHTTTelFb8OP/zwmDRpUjz55JNx5pln5njxCwAAAAAAAAAA6raCbAeoS4499tiYOXNmPP/88zFt2rRYvnx5REQkk8n47W9/G7/97W/jlFNOiTFjxsQJJ5xQ5fVff/31+MMf/pAaDxw4MJo2bZqx/HvTp0+fOOSQQ+Ldd99NzX1yt679effdd+O+++6L2bNnx5Yt6f/vmvbt28eYMWNi8ODBUVDgRwoAAAAAAAAAAA4ETZ09OOaYY2LGjBmxevXquOOOO2LZsmXx0emYK1asiBUrVsSXvvSluOSSS+KUU06p9Lpz5syJj5+yOXLkyIxn35NEIhGHH354WvkrL69ym7698cYbcc8998TDDz8cO3fuTPusQ4cOMWbMmBg4cKDSFwAAAAAAAAAAHGAaO/vQvXv3mD59erzwwgsxbdq0eOqpp1LlrWeffTaeffbZ6N69e1x66aXRu3fvfa5VUlISjz76aGr8xS9+MY4++uhazf9x77//ftq4VatW+7x+3bp1MX369Fi0aFGUl5enfdaxY8dU6Ss/Pz/jWQEAAAAAAAAAgP2r3PZPDVy3bt3ijjvuiAULFkSfPn0ikUikPlu9enV897vf3e8aixcvTitgVWfXr8WLF6ftHFZZ//rXv+K1115Lm/vCF76wz3see+yxmD9/flrxq2PHjnHzzTfH4sWLY8iQIYpfAAAAAAAAAACQRcpfVdC1a9e4/fbb47HHHou+ffumlcD2Z86cOan3hx56aPTp06fKz//JT34S5513XjzzzDOVvmfLli1x3XXXpc2dcMIJcdhhh1V6jc985jNx6623xuLFi2Pw4MFKXwAAAAAAAAAAUAc49rEajj766Pj5z38eL7/8ctxxxx2xcuXKfV6/evXqWLVqVWo8bNiwKCwsrNazn3322Tj//POjS5cu0b9//zj55JPjmGOOiYKC9L/Kd955J5YuXRqzZs2KN998MzVfUFAQ119/faWe1alTpxg7dmz0798/8vL0BAEAAAAAAAAA2Ld33nknVq1aFevXr4/t27dH48aNo23btnHMMcdE+/btsx1vN2vXro3Vq1fHxo0bo7S0NJo0aRJHHHFEfO5zn4vi4uJsx9sv5a8a6NKlS0ydOnW3IxU/afbs2an3+fn5cdZZZ9X42S+//HK8/PLLEfG/ha6WLVtGixYtory8PN599920IyY/UlBQED/60Y+iW7du+11/+PDhcdlllyl9AQAAAAAAAECd53f7ZN+yZcti1qxZ8fe//z2SyeQer+natWtceOGFMWjQoCqduJdpZWVlMXfu3Pj1r38d69at2+M1+fn58R//8R9xySWXxAknnHCAE1ZeIrm3f9pkxIcffhi9evWKHTt2RETEf/7nf8add95ZrbVOP/30eOWVV6p1b8eOHWPixInRo0ePat3fML2c7QAAAAAAAEBElFZsyXaEDMj9X8lVJMuyHaHG3ty+KdsRaqzP7ObZjlBjq0Zl75f9mVJU0DrbETKgS7YDkEHJeCnbEciARByd7QjVsm3bthg/fnw8+eSTlb7nxBNPjClTpsShhx5ai8n27NVXX41vfvObqU2XKuPcc8+N7373u9GoUaNaTFY9dv6qZY8++miq+BURMXLkyGqvNW/evFi4cGEsX748/vGPf8T27dv3eX1+fn6ceOKJMXDgwBgwYEC1j5oEAAAAAAAAAIBP2rZtW1x44YXxP//zP1W6789//nOMHDkyZs+eHa1ataqldLtbu3ZtnHPOObF58+Yq3Xf//ffHW2+9FT//+c+joKBu1a3s/FWLkslknH766fHqq69GRESHDh3iySefzMi2dRUVFfHGG2/Ev//973jrrbfiww8/jIqKimjSpEk0a9YsPvOZz0SXLl2icePGNX5Ww2XnLwAAAAAAqAvs/FU32PmrbrDzV91g5y/qGjt/1Q+5uPPXuHHjYsmSJWlzhx12WFxwwQXRo0ePaNOmTWzcuDH+9re/xS9/+ctYu3Zt2rWf//zn4/777z8ghaqtW7fGkCFDdjvm8fjjj48LLrggunfvHs2bN4+33norli5dGvfff3+8//77addedNFF8Z3vfKfWs1ZF3aqi1TN/+tOfUsWviIizzz47Y+eV5uXlRfv27aN9+/YZWQ8AAAAAAAAAACpr2bJluxW/TjzxxJg+fXo0a9YsNXfwwQdHp06dYtCgQXHNNdek3fP3v/895s2bF+eee26t5502bdpuxa8LLrggvvvd76b1eYqLi6Nbt24xfPjwGDVqVPzrX/9KfXbPPffEwIEDo2vXrrWet7Lysh2gPpszZ07qfePGjWPo0KFZTAMAAAAAAAAAADWXTCZj6tSpaXOHHXZY3HnnnWnFr48rLCyM2267Lbp37542P2PGjNixY0etZY2I2LBhQ1qPJyKid+/eMX78+L1u5NSmTZuYNWtWNGnSJDW3p++dbcpfteTtt9+O5cuXp8b9+vWL4uLiLCYCAAAAAAAAAICae+qpp+LFF19Mm/ve974XTZs23ed9+fn5MWnSpLS5jRs3xoMPPpjxjB939913R0lJSWrcuHHjuPHGG/d7X9u2beOKK65Im1u2bNlu3z2blL9qybx582LXrl2p8YgRI7KYBgAAAAAAAAAAMuM3v/lN2rhdu3bxla98pVL3fvazn/3/2bvvsCiutg3g99CbqDEiKGJvMYnm1WgsiT2xd42BFEVRUWxRsRujib1hRexKNNbYorHExBaNUWPFLkgHBSx02J3vD76d7FK3DCyL9++6vNwdZs6cbXNmzjznOWjUqJHGsuzTR8pJFMUc5Xfs2BFOTk5abd+3b1/Y2dlpLMv++o3JwtgVKKmcnJzg4+MDALC3t8f7779v5BoRERERERERERERERERERFRSSQg92nriApDRkYGzpw5o7GsR48eeU6fmJtevXrh6tWr0vPr168jLi4O5cqVk62eKrdu3UJsbKzGsp49e2q9vYODA9q3b49Dhw5Jy06fPo1x48bJVkdDMPirkLi7uxu7CkREREREREREREREREREREREsrp+/Tpev36tsaxJkyY6ldG0aVON50qlEufOndMpKEtbZ8+e1XhuaWmJ//3vfzqV0aRJE43grwcPHiAyMhIVK1aUpY6G4LSPRERERERERERERERERERERESklfv372s8Nzc3R4MGDXQqw83NDW+//Xa+5crlwYMHGs/r168Pa2trncrILVgse7nGwuAvIiIiIiIiIiIiIiIiIiIiIiLSypMnTzSeu7i4wM7OTudyqlevrvE8ODjYoHrlJXt9s+9XG1WrVoW5uXm+5RoLg7+IiIiIiIiIiIiIiIiIiIiIiEgrjx8/1niu79SHLi4uGs8LI5hKoVAgJCREY5k+9TU3N4eTk5PGMgZ/ERERERERERERERERERERERGRSYmNjdV47uzsrFc52YO/YmJi9K5TXhISEpCRkaGxrDjXVx8Wxq4AEREREREREREREREREREREdGbLjExEUlJSYW6D3t7ezg4OBhURnJyssZzfcvLvl1qaiqUSiXMzOTLZZW9rrntV1vZt8utbGNg8BcRERERERERERERERERERERkZFt3rwZq1atKtR9+Pj4YNSoUQaVkT3oycbGRq9yctsuOTnZ4OC07OVps19tZN+uuAR/cdpHIiIiIiIiIiIiIiIiIiIiIiLSSkpKisZzKysrvcrJLQhL7sxnuQVoWVtb61VW9u2KS/AXM38R5am2sStAREREREREREREREQArJjOgGRSvZSxa2C4R8ONXQMiKp54f7tkOG7sCpAJ4qkyERERERERERERERERERERERFpxdbWVuN5enq6XuWkpqbmWGZvb69XWXmxs7PLsSwtLU2vsrJvl1vZxsDgLyIiIiIiIiIiIiIiIiIiIiIi0kr2oKfcgri0kdt2cgdU5VaeXPUtLsFfnPaRiIiIiIiIiIiIiIiIiIiIiMjIBg0ahP79+xfqPuTIrJU96CkxMVGvcrJvZ2NjAzMzefNY5RagJVd9GfxFREREREREREREREREREREREQAAAcHBzg4OBi7GgVycnLCkydPpOfR0dF6lZN9OycnJ4PqlZuyZcvC0tISGRkZee5XW0VRX31w2kciIiIiIiIiIiIiIiIiIiIiItJK9erVNZ5HRkbqVU727WrUqKF3nfJibm6OKlWq5LtfbSgUCsTGxmosK4z66oPBX0REREREREREREREREREREREpJXsQU/R0dFITk7WuZzg4GCN59WqVTOoXnnJXl/1rGXaevr0KTIzMzWWZQ+CMxYGfxERERERERERERERERERERERkVbq1Kmj8TwzMxM3b97UqYzQ0FA8e/Ys33LlUrt2bY3nd+7cQVpamk5lXL16tcByjYXBX0REREREREREREREREREREREpJWGDRuiVKlSGssuX76sUxnZ1zczM8PHH39scN1y88knn2g8z8jIwL///qtTGf/884/G89q1a6NixYoG100ODP4iIiIiIiIiIiIiIiIiIiIiIiKtWFpaolWrVhrLDh48CFEUtS7jwIEDGs8bNmyIcuXKyVK/7N577z04OTnlu//8JCYm4uTJkxrL2rZtK0vd5MDgLyIiIiIiIiIiIiIiIiIiIiIi0lqnTp00noeHh+P06dNabXvv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n376qUOO7cpSW/wV/zkzJcVfktS9e3cdOXJEhmHoP//5j959911HhJ0uOaFT2RVldI67d0m+9Byf4q+cISQkRO+9954mTJigChUqPHB7R74uJk+erKVLl1p/E8WLF9f8+fNVrVq1NB8TyCw5LU9npe9waREWFqYNGzZo3bp1VtvkvbOB+fj4aNq0aek+V074DhcVFaU1a9Zo4cKFCg4OtisCa9GihcaNG8fydcjWKP4CAADOQPEXkALvvfee1qxZk2j5OEfO+pVWjmyMl6RPPvlEixcvtq41d+7cmjFjhlq2bJnuWJctW6aZM2fqn3/+sR5L+BZUqFAh1atXT40aNdIrr7ySpnMcOHBA8+bNU1BQkPWYYRiqUqWKpk6dqsceeyztF5DNxMbG6vz58/cdWXj79m21bdtW165dk2EYateunaZOnerwWI4fP65t27ZpyJAhDjnepUuX9NJLLyksLMxaAnL58uWqV69ektsHBQVp8ODBioiIkBT3uqtfv74WLVqkvHnzOiSmnKRPnz7at29fpsyeZpqmSpQooZ07dzrsmAMHDrSuZcyYMSkuvr2fhMW0RYsW1fz581WzZs10Hxepd/ToUfn7+2vTpk26c+dOpjWqbd++XR999JEuX75s93mibNmymjx5crLvX1lRWjoOJKl///7Wcne1a9fWsmXLcvR7sLOKv27cuCEfHx9rlszChQvru+++U/HixR1yfFflzJm/JGnatGlasGCBDMNQyZIltX379nTHnF45rVPZFWVEjnNkYQ7FX0iKo9s0Ro8erdWrV1uftzw9PfXll1/K29vbEeECGSYn5+ms8h0urc6dO6fly5dr3bp1unv3rqS4/8N+/fppxIgRmRJTdv0OZ7PZtHTpUs2dO1e3b9+WFPe7zJ8/v4YNG8aSjci24ou/HPX5BwAAQJISz8MPIJGhQ4dq8+bNioyMtB4bNGhQJkaUWMKRZOkxcuRIa4rtcuXKqX///mrWrFn6A5RUvnx53blzx7pfoEABNWzYUA0bNlSDBg1UpUqVdF+Dt7e3vL29FRgYqI8//ljnz5+XaZoqX768ypQpk95LyFbc3NweOKV8gQIF5Ovrq4EDBypPnjz6+OOPnRLL448/rscff9xhxytXrpzmzJmj3r17q06dOnr33XetjtikPP3001qyZIkGDBigW7duqUOHDurdu3eOLjpwBFepH3fGyNU33nhDhw4d0vnz57Vw4cIcv7xdZqpVq5Zq1aql0aNHa/PmzQoICMiUOFq0aKGnn35ac+bM0eLFixUdHa1HH31UPXr0UJUqVTIlprSqVKmSChUqlOr9RowYoaCgIPXo0UPvvvtukkuC5STFixfX4MGDHX7cwoULa8yYMXr77bdVo0YNzZo1i8KvFChVqpTVOfcg8Uuzp+ZzhLe3txYsWCDTNBUWFqbz58/r0UcfTVOsQLyMyHHu7u4OG8AB3I+j2jQ+/PBD3blzR99//70qV66sN954w6GzmQNwvqzyHS6tKlWqpAkTJmjo0KH69ttv9fXXXys8PDzNA10dFVN2/A7n7u6ufv36qVOnTpo2bZrWrl2r2NhYeXh4KCQkRKGhofLy8srQmABHctTnHwAAAImZv4AUmzFjhubPny/DMNSkSRN9+eWXmR2S5fr169btYsWKOeSYu3fvVuPGjR26VKLNZtOgQYNUq1YtNWrUyBrd66zlGCMjIzVlyhTlzZs3Syytk5Xdvn1bd+7cyXZTpv/++++qWLFiirc/d+6cTNPMUTPAOUNQUJCuXr2aaef39PRUmzZtMu38KXXz5k3ZbDYaIpHI+fPn9eeff+rpp5/O7FAy3JEjR1S7du3MDiNHWLZsmV588cVMXVYU/7p7964OHTqkihUrqkSJEpkdjiTp0KFDunDhgnX/hRdeyLxgkCNERUXZfYbLCjPgIWtwdJuGzWbT/v371bhx43QfC8gs5GnXER0drUOHDqlBgwaZHUqaZKXvcCdOnFBISIiaNWuW4wcTIXuLiorS4cOHrfvZ9f0BAABkLRR/ASl0584dtWzZUmFhYfLz87OWq0D6fPnll/L19VXDhg3VuHFjNW3aVAUKFEjVMf755x/NmDFDFSpUUPny5VW5cuVsV8QEAAAAAAAAAACArCcmJkZdu3bV5cuXJUkdOnTQ+++/n+rjbN26VaNHj5YUt5TtqlWrVLZsWYfGCgDImSj+AlIhNDRUkZGRKlmyZGaH4jJat26tS5cuWffd3d3VvHlzDRkyxG7Jwg4dOkiSSpQooQULFtgdIyAgQGPGjLGbIrlQoULy9vZWx44d9dxzzzn5KgAAjnDgwAHt2LFDp06d0t9//y3TNFW8eHH93//9n1q2bKl69epldogAAKQJOQ4A4IrIbwCAnGTDhg0aMWKEpLi+rPXr16dqZRJJ6tKli06cOCHDMNSmTRvNmDHDGaECAHIgir/7I0mqAAAYyElEQVQAOM3MmTN1/vx5hYWFaenSpYmeDwoKUr9+/ZLcN2/evPriiy+sZRqqVq0qwzBUqlQpbdu2zW7bzp076+TJk3aPJSwEa9eunaZOnZreywEAOMmZM2c0ceJE/fLLL9Zj8R9RE76f165dW+PHj1e1atUyPEYAANKCHAcAcEXkNwBATtW1a1cdP35chmGoZcuWmjVrVor33bNnj1577TVJkpubm9avX6/HHnvMWaECAHIYir8AOI2Pj49+//13GYahvXv3qmjRopKktWvX6sknn1SJEiUUHh6uo0eP6uDBg9qzZ49OnjwpwzBkmqaKFi2q7du3y9PTM9nir7t378rPz0+hoaH6+++/dfnyZV26dEl//vmnXaPTlClT1LFjx0z5PQAAkvfLL7/o9ddf1+3bt5PsLJD+7USQpNy5c2v69OnM6ggAyPLIcQAAV0R+AwDkZAcOHNArr7wiKS7/+fr6qnbt2ina95VXXtGBAwdkGIZat26tzz77zJmhAgByGIq/ADjNG2+8oR07dsgwDH377beqU6eOli5dqilTpqhevXpavnx5osahffv2aeDAgYqKipJhGPr000/Vvn37+878lZSQkBCNGTNGe/fulWEYat68uebMmeOsSwUApMHff/+tdu3aKTw8XNK/HQZJfTxN+Jy7u7u++OILNW3aNOOCBQAgFchxAABXRH4DAMC+76t+/fpavnz5A/f55Zdf1LNnT0lxs36tW7dOlStXdnaoAIAcxD2zAwDguipUqGDdvnDhgkqWLKmpU6fKNE398ssvWrhwofr372+3z1NPPaVGjRpp586dkqT/9//+X5rOXbJkSU2cONEaVXj58uU0HQcA4DyTJ09WeHi4XadAsWLF1KJFC1WsWFH58uVTWFiYDh06pKCgIEVHR8swDNlsNo0ePVrfffedvLy8MvkqAABIjBwHAHBF5DcAAKQRI0YoMDBQMTExOnjwoHbu3KlmzZrdd5958+ZJkrVcJIVfAABHo/gLgNOUK1fOun3p0iV16tRJw4cP15QpU2Sapr744gu1bt3abjtJ1uhBSSpQoECaz1+2bFnrdnR0dJqPAwBwvGvXrmnLli3WUr+GYahPnz4aOnSo8ubNm2j74OBgjRo1Sr/++qskKTQ0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\\n\",\n      \"text/plain\": [\n       \"<Figure size 3000x3000 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import pandas as pd\\n\",\n    \"import numpy as np\\n\",\n    \"%matplotlib inline\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import matplotlib as mpl\\n\",\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import seaborn as sns\\n\",\n    \"\\n\",\n    \"dpi = 300\\n\",\n    \"mpl.rcParams['figure.dpi']= dpi\\n\",\n    \"\\n\",\n    \"# sns.set(font=['sans-serif'])\\n\",\n    \"# sns.set_style(\\\"whitegrid\\\",{\\\"font.sans-serif\\\":['Microsoft JhengHei']})\\n\",\n    \"\\n\",\n    \"from matplotlib.font_manager import FontProperties\\n\",\n    \"import matplotlib.pyplot as plt \\n\",\n    \"myfont = FontProperties(fname=r'/home/gezi/py3env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/微软雅黑.ttf')\\n\",\n    \"\\n\",\n    \"import numpy as np; np.random.seed(0)\\n\",\n    \"import seaborn as sns; sns.set()\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"f, ax = plt.subplots(figsize=(10,10))\\n\",\n    \"#ax = sns.heatmap(cm2, ax=ax,vmin=0, vmax=1,annot=True,fmt ='0.1g', xticklabels=models, yticklabels=models)\\n\",\n    \"#ax = sns.heatmap(alpha,cmap = 'RdBu',ax=ax,vmin=0, vmax=1,fmt ='0.1g', xticklabels=words, yticklabels=words)\\n\",\n    \"ax = sns.heatmap(alpha2,cmap=\\\"YlGnBu\\\",ax=ax,vmin=0, vmax=1,fmt ='0.1g', xticklabels=words, yticklabels=words)\\n\",\n    \"#设置坐标字体方向\\n\",\n    \"label_y = ax.get_yticklabels()\\n\",\n    \"plt.setp(label_y, rotation=0, horizontalalignment='right',fontproperties=myfont)\\n\",\n    \"label_x = ax.get_xticklabels()\\n\",\n    \"plt.setp(label_x, rotation=90, horizontalalignment='right',fontproperties=myfont)\\n\",\n    \"plt.title('Self Attention',fontproperties=myfont, fontsize=25)#标题\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/analyze.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   analyze.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 14:44:39.978269\n#   \\Description  \n\n# -----------detailed f1 infos\n# location_traffic_convenience 0.6712383080788638\n# location_distance_from_business_district 0.5629060402359796\n# location_easy_to_find 0.7248325856789342\n# service_wait_time 0.6770740954491001\n# service_waiters_attitude 0.8069045649815189\n# service_parking_convenience 0.7526363109778337\n# service_serving_speed 0.775706676245927\n# price_level 0.7892694978665769\n# price_cost_effective 0.7123042372602688\n# price_discount 0.6898761224553072\n# environment_decoration 0.7345291206372897\n# environment_noise 0.7664456569694614\n# environment_space 0.7672318580085105\n# environment_cleaness 0.7596899305910838\n# dish_portion 0.7350563643550543\n# dish_taste 0.7407494293948916\n# dish_look 0.6002670892812643\n# dish_recommendation 0.7520857946099313\n# others_overall_experience 0.5958015346685603\n# others_willing_to_consume_again 0.7198627097688324\n# adjusted f1_prob:[0.7167233963757594]\n\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer('id', None, '')\nflags.DEFINE_string('ifile', '/home/gezi/temp/ai2018/sentiment/model/v2/0/submit6/ensemble.valid.debug.csv', '')\nflags.DEFINE_string('attr', 'location_distance_from_business_district', 'location_distance_from_business_district, others_overall_experience')\nflags.DEFINE_float('total', 100, '')\nflags.DEFINE_string('label', None, '')\nflags.DEFINE_string('key', 'score', '')\n\nimport sys \nimport os\n\nimport pandas as pd \nimport numpy as np \n\nimport gezi\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nnum_attrs = len(ATTRIBUTES)\n\nclasses = ['NA', 'NEG', 'NEU', 'POS']\nnum_classes = 4\n\ndef parse(l):\n  if ',' in l:\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    return np.array([float(x.strip()) for x in l[1:-1].split()])\n\n\nifile = FLAGS.ifile\nattr = FLAGS.attr\ntotal = FLAGS.total\n\ndf = pd.read_csv(ifile)\ndf = df.sort_values('id')\n\nidx = ATTRIBUTES.index(attr)\nidx = idx * num_classes\n\nnum_oks = 0\nnum_errs = 0\nfor _, row in df.iterrows():\n  label = row[attr + '_y'] + 2\n  label = classes[label]\n  predict = row[attr] + 2\n  predict = classes[predict]\n  score = row[FLAGS.key]\n  score = parse(score)\n  score = score[idx:idx + 4]\n  prob = gezi.softmax(score)\n  id = row['id']\n  if FLAGS.id:\n    if id != FLAGS.id:\n      continue\n    else:\n      print(id, score)\n      print(id, prob)\n      print(attr, 'label  :', label)\n      print(attr, 'predict:', predict)\n      labels = row[2:2+num_attrs]\n      labels += 2\n      predicts = row[2+num_attrs:2+2*num_attrs]\n      predicts += 2\n      print(list(zip(ATTRIBUTES, [classes[x] for x in labels])))\n      print(list(zip(ATTRIBUTES, [classes[x] for x in predicts])))\n      print(row['content'])\n      print(row['seg'])  \n      exit(0)      \n\n  if FLAGS.label:\n    if label == FLAGS.label.upper():\n      print(id, score)\n      print(id, prob)\n      print(attr, 'label  :', label)\n      print(attr, 'predict:', predict)\n      labels = row[2:2+num_attrs]\n      labels += 2\n      predicts = row[2+num_attrs:2+2*num_attrs]\n      predicts += 2\n      print(list(zip(ATTRIBUTES, [classes[x] for x in labels])))\n      print(list(zip(ATTRIBUTES, [classes[x] for x in predicts])))\n      print(row['content'])\n      print(row['seg'])      \n      num_errs += 1\n  else:\n    if label != predict or FLAGS.id:\n      print(id, score)\n      print(id, prob)\n      print(attr, 'label  :', label)\n      print(attr, 'predict:', predict)\n      print(row['content'])\n      print(row['seg'])\n      num_errs += 1\n    else:\n      num_oks += 1\n\n  if num_errs == total:\n    print('num_oks', num_oks, 'num_errs', num_errs)\n    break\n    \n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/beam-search.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   beam-search.py\n#        \\author   chenghuige  \n#          \\date   2018-10-24 15:27:26.697918\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport gezi\n  \nimport pandas as pd  \nimport numpy as np\n\nimport beam_f\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\nN = NUM_CLASSES\nidx = 2\n\ninfile = sys.argv[1] if len(sys.argv) > 1 else './mount/temp/ai2018/sentiment/submit6/word.glove_rnet.3layer_model.ckpt-13.00-42666.valid.csv'\ndf = pd.read_csv(infile)\n#scores = df['score'].values\n\n#scores = df['score']\nscores = df['prob']\nscores = [gezi.str2scores(score) for score in scores] \nscores = np.array(scores)\nscores = np.reshape(scores, [-1, NUM_ATTRIBUTES, NUM_CLASSES])\nprobs = gezi.softmax(scores)\n\nlabels = df.iloc[:,idx:idx+num_attrs].values\npredicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n\nindex = 0\nscores = scores[:, index, :]\nlabels = labels[:, index]\nprobs = probs[:, index, :]\nprobs = np.reshape(probs, [NUM_CLASSES, -1])\n\nx = scores\ny = labels + 2\n\nprint(probs)\nprint(probs.shape)\n\nprint(y)\nprint(y.shape)\n\n# import six \n# assert six.PY2\n# from expt import BisectionClassifier\n\n# from sklearn.linear_model import LogisticRegressionCV\n\n# cpe_model = LogisticRegressionCV(solver='liblinear')\n# cpe_model.fit(x, y)\n\n# classifier = BisectionClassifier('fmeasure')\n# x = np.transpose(x)\n# classifier.fit(x, y, eps = 0.1, eta = 0.1, num_outer_iter=10, cpe_model=cpe_model)\n\n# f1_loss = classifier.evaluate_loss(x, y)\n\n# print(f1_loss)\n\nbi_concave_iters = 1000\nconf_opt_iters = 100\n\n# weights = np.load('./mount/temp/ai2018/sentiment/class_weights.npy')\n# weights = weights[index]\n# weights = weights * weights * weights\n\nweights = [1.] * len(CLASSES)\nweights = np.array(weights)\ny = labels + 2\n\neps = 0.001\nreg = 0.001\nthresh = 0.1\n\nprint(y.shape)\nprint(probs.shape)\n\nresult = beam_f.seed_beam_f(N, \n                            weights, \n                            y,\n                            bi_concave_iters, \n                            conf_opt_iters,\n                            probs,\n                            eps, \n                            reg, \n                            thresh, \n                            last_k=1,\n                            out_put=None, \n                            restarts=5)\n\nprint(result)"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/beam_f.py",
    "content": "import numpy as np\nfrom beam_f_utils import *\n\n#-----------------  concave optimization -------------------#\ndef beam_f(N, weights, y,\n           bi_concave_iters, conf_opt_iters,\n           prob_estimates,\n           eps, reg, thresh, last_k,\n           out_put=True, seed=0):\n    '''\n    Args\n    -----------------\n    N: number of classes\n    weights: weights for classes\n    y: class labels for data\n    bi_concave_iters, conf_opt_iters: inner, outter loop max iterations\n    prob_estimates: class probability model (previously trained)\n    eps, reg: perturbation constant, regularization\n    thresh: convergence threshhold\n    last_k: number of objective function values\n    out_put: display/suppress output of optimization process\n    seed: type of initial confusion matrix\n    \n    Return\n    -----------------\n    classifiers: array of classifiers found\n    classifier_weights: weights for classifiers found\n    perf: macro f-score performance on data set\n    '''\n    \n    # Get initial Gain Matrix\n    #--------------   weighted initialization\n    if seed == 0:\n        G_diag = [weights[n] for n in range(N)]\n        G_0 = np.diag(G_diag)\n    \n    #--------------   balanced initialization\n    elif seed == 1:\n        G_0 = np.eye(N)\n    \n    #--------------   random initialization\n    else:\n        G_0 = 20 * np.random.random((N, N))\n    \n    # Get the initial confusion matrix corresponding to the classifer\n    # for the initial gain matrix\n    Conf_t = compute_conf(G_0, prob_estimates, y)\n    \n    # Find performance of initial confusion matrix\n    perf = eval_conf(Conf_t)\n    \n    #if out_put == True:\n    print('initial:', perf, '\\n')\n    \n    # Record all classifiers found across all iterations, along with their weights\n    classifiers = np.zeros((bi_concave_iters * conf_opt_iters + 1, N, N))\n    classifier_weights = np.zeros(bi_concave_iters * conf_opt_iters + 1)\n    \n    classifiers[0, : , :] = G_0\n    classifier_weights[0] = 1\n    \n    classifier_index = 1\n    \n    # Last k objective from outer loop\n    outer_obj = []\n    \n    # Out loop: optimize u for fixed conf mat\n    for s in range(bi_concave_iters):\n        u_s = compute_u(np.copy(Conf_t), eps)\n        \n        # Last k objective from inner loop\n        inner_obj = []\n        \n        # Inner loop: optimize conf mat for fixed u\n        for t in range(conf_opt_iters):\n\t        # Compute biconcave objective for the confusion matrix at inner step t\n            obj = compute_biconcave_obj(Conf_t, u_s, reg)\n            \n            #if out_put == True:\n            #    print(s, ',', t, ':', perf, ', ', obj)\n            #print(t, perf)\n            \n            # Update last k objectives and terminate inner loop\n            # if insufficient improvement in obj function is observed\n            if t == conf_opt_iters - 1:\n                if len(outer_obj) >= last_k:\n                    outer_obj.pop(0)\n                    outer_obj.append(obj)\n                else:\n                    outer_obj.append(obj)\n            else:\n                if len(inner_obj) >= last_k:\n                    inner_obj.pop(0)\n                    inner_obj.append(obj)\n                    \n                    diff = np.absolute(np.array(inner_obj) \\\n                           - np.array(inner_obj[1:] + [0]))\n                    \n                    if (diff <= thresh).all():\n                        if len(outer_obj) >= 3:\n                            outer_obj.pop(0)\n                            outer_obj.append(obj)\n                        else:\n                            outer_obj.append(obj)\n                        break\n                else:\n                    inner_obj.append(obj)\n            \n            # Compute the gain matrix at inner step t\n            G_t = compute_conf_grad(Conf_t, u_s, eps, reg)\n            \n            # Find new confusion matrix for gain matrix at inner step t\n            Conf_new = compute_conf(G_t, prob_estimates ,y)\n            \n            # Update the confusion matrix using line search\n            max_perf = -1\n            step_size = 0\n            \n            for i in range(100):\n                l = i * 0.01\n                Conf_line = l * Conf_new + (1 - l) * Conf_t\n                perf_line = compute_biconcave_obj(Conf_line, u_s, reg)\n                \n                if perf_line > max_perf:\n                    max_perf = perf_line\n                    Conf_t[:, :] = Conf_line\n                    step_size = l\n            \n            # Record the gain matrix and the corresponding weight\n            classifiers[classifier_index, :, :] = G_t\n            classifier_weights[:classifier_index] = classifier_weights[:classifier_index] * (1 - step_size)\n            classifier_weights[classifier_index] = step_size\n            classifier_index = classifier_index + 1\n            \n            # Find performance of confusion matrix accepted at inner step t\n            perf = eval_conf(Conf_t)\n        \n        # Terminate inner loop if insufficient improvement in\n        # obj function is observed\n        diff = np.absolute(np.array(outer_obj) \\\n               - np.array(outer_obj[1:] + [0]))\n        \n        print(perf, diff)\n        if (diff <= thresh).all():\n            break\n    \n    # Truncate the classifer and classifier weights arrays\n    classifiers = classifiers[:classifier_index, :, :]\n    classifier_weights = classifier_weights[:classifier_index]\n    \n    #if out_put == True:\n    print('final: ', str(perf), '\\n')\n    \n    return classifiers, classifier_weights, perf\n\n\ndef seed_beam_f(N, weights, y,\n                bi_concave_iters, conf_opt_iters,\n                prob_estimates,\n                eps, reg, thresh, last_k,\n                out_put=None, restarts=5):\n    \n    '''\n    Args\n    -----------------\n    N: number of classes\n    weights: weights for classes\n    y: class labels for data\n    bi_concave_iters, conf_opt_iters: inner, outter loop max iterations\n    prob_estimates: class probability model (previously trained)\n    eps, reg: perturbation constant, regularization\n    thresh: convergence threshhold\n    last_k: number of objective function values\n    out_put: display/suppress output of optimization process\n    restarts: number of restarts to use for beam_f\n    \n    Return\n    -----------------\n    best_classifiers: best classifiers found using restarts\n    best_weights: weights for best classifiers found using restarts\n    '''\n    \n    best_classifiers = np.zeros((bi_concave_iters * conf_opt_iters + 1, N, N))\n    best_weights = np.zeros(bi_concave_iters * conf_opt_iters + 1)\n    best_perf = -1\n    \n    # Call beam_f for multiple restarts with different types\n    # of initial gain matrices\n    for i in range(restarts):\n        classifiers, classifier_weights, perf = beam_f(N, weights, y,\n                                                       bi_concave_iters, conf_opt_iters,\n                                                       prob_estimates,\n                                                       eps, reg, thresh, last_k,\n                                                       out_put=out_put, \n                                                       #seed=i)\n                                                       #seed=1)\n                                                       #seed=0)\n                                                       seed=2)\n\n        print(perf)\n        # if perf > best_perf:\n        #     best_classifiers[:, :, :] = classifiers\n        #     best_weights[:] = classifier_weights\n        #     best_perf = perf\n    \n    return best_classifiers, best_weights"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/beam_f_utils.py",
    "content": "import numpy as np\n\n#------------  compute objective function ---------------#\ndef compute_biconcave_obj(C, u, reg):\n    '''\n    Computes the biconcave objective function\n\t \n    Args\n    -----------------\n    C: confusion matrix\n    u: value of u\n    reg: regularization parameter\n    \n    Return\n    -----------------\n    obj: biconcave objective evaluate at u and confusion matrix\n    '''\n\n    # Number of classes\n    N = C.shape[0]\n\n    P_Conf = np.array([np.sum(C[n, :]) + np.sum(C[:, n]) for n in range(N)])\n\n    obj = 2 * (u.dot(np.sqrt(np.diag(C)))) - (u**2).dot(P_Conf) - reg * np.linalg.norm(P_Conf)\n    \n    return obj\n\n#------------  compute performance for conf matrix  --------------#\ndef compute_u(C, eps):\n    '''\n    Optimizes u for a fixed confusion matrix C\n    \n    Args\n    -----------------\n    Conf: confusion matrix\n    eps: perturbation parameter\n    \n    Return\n    -----------------\n    u: optimal u for confusion matrix C\n    '''\n    \n    # Adding a small perturbation helps avoid loc optima\n    C += eps\n    # Number of classes\n    N = C.shape[0]\n    \n    u = np.zeros(N)\n    \n    # Update u using closed form expression\n    for n in range(N):\n        u[n] = np.sqrt(C[n, n]) / (np.sum(C[n, :]) + np.sum(C[:, n]))\n    \n    return u\n\n#------------  evaluate performance of classifier  --------------#\ndef eval_classifier(prob_estimates, G, X, y):\n    '''\n    Evaluate performance of classifier in terms of f-score\n    \n    Args\n    -----------------\n    prob_estimates: probability estimates for X\n    G: gain matrix\n    X: attributes\n    y: labels\n    \n    Return\n    -----------------\n    perf: performance of classifier\n    Conf: confusion matrix of classifier\n    '''\n    \n    Conf = compute_conf(G, prob_estimates, y)\n    perf = eval_conf(Conf)\n    \n    return perf, Conf\n\n#------------  compute performance for conf matrix  --------------#\ndef eval_conf(C): # updated to use f-score\n    '''\n    Evaluate performance of confusion matrix in terms of f-score\n    \n    Args\n    -----------------\n    C: confusion matrix\n    \n    Return\n    -----------------\n    macro f-score of confusion matrix\n    '''\n    # Number of classes\n    N = C.shape[0]\n    perf = 0\n    cl = 0\n    \n    for n in range(N):\n        if (np.sum(C[n, :]) + np.sum(C[:, n])) > 0:\n            perf = perf + (C[n, n] * 2.) / (np.sum(C[n, :]) + np.sum(C[:, n]))\n            cl += 1\n        #else:\n            #print 'invalid confusion matrix at class', n\n            #sys.exit('invalid confusion matrix')\n    if cl == 0:\n        return 0\n    else:\n        return perf / (1. * cl)\n \n\n#------------  gradient of performance measure  -------------#\ndef compute_conf_grad(C, u, eps, reg): # updated to use f-score\n    '''\n    Finds gradient of f-score at confusion matrix C\n    \n    Args\n    -----------------\n    C: confusion matrix\n    u: value of u\n    eps: perturbation parameter\n    reg: regularization parameter\n    \n    Return\n    -----------------\n    gradient of confusion matrix\n    '''\n    # Number of classes\n    N = C.shape[0]\n    C += eps\n    \n    grad = np.zeros(C.shape)\n    \n    for n in range(N):\n        P = np.zeros(C.shape)\n        P[n, :] = 1\n        P[:, n] = 1\n        P[n, n] = 2\n        grad = grad - u[n] * u[n] * P\n        grad[n, n] = grad[n, n] + u[n] / np.sqrt(2. * C[n, n])\n    \n    return grad - reg * 2 * C\n\n#-----------------  predict labels -------------------#\ndef predict_labels(G, eta):\n    '''\n    Outputs prediction of classifier with gain matrix G\n    \n    Args\n    -----------------\n    G: gain matrix\n    eta: probability estimates\n    \n    Return\n    -----------------\n    labels: labels\n    '''\n    \n    M = eta.shape[1]\n    \n    # optimal class labels\n    labels = np.zeros(M)\n    \n    for m in range(M): # for each data point\n        eta_m = eta[:, m] # get eta for the m^{th} point\n        t = G.dot(eta_m) # get a row vector with (g_{y})'*\\eta_{x}\n        indx = np.argmax(t) # weighted argmax\n        labels[m] = indx # label for m-th data point\n    \n    return labels\n\n#-----------------  compute confusion matrix -------------------#\ndef compute_conf(G, eta, true_labels):\n    '''\n    Given a gain matrix G computes its confusion matrix C\n    \n    Args\n    -----------------\n    G: gain matrix\n    eta: probability estimates\n    true_labels: true labels\n    \n    Return\n    -----------------\n    C: confusion matrix\n    '''\n    \n    # Number of classes\n    N = G.shape[0]\n    # Number of instances\n    M = len(true_labels)\n    \n    # Initialize nxn Confision matrix\n    C = np.zeros(G.shape)\n    \n    # Get prediction for the given classifier (gain matrix G)\n    pred_labels = predict_labels(G, eta)\n    pred_labels = pred_labels.reshape((pred_labels.shape[0], 1))\n    \n    # Update the entries of confusion matrix\n    for i in range(N):\n        for j in range(N):\n            comp_labels = pred_labels[true_labels == i]\n            C[i, j] = len(comp_labels[comp_labels == j])\n    \n    C = C / (M * 1.)\n    return C\n\ndef compute_rand_conf(classifiers, classifier_weights, eta, true_labels):\n    '''\n    Given array of classifiers and corresponding weights computes a radomnized classifier\n    \n    Args\n    -----------------\n    classifiers: array of classifiers\n    classifier_weights: array of classifier weights\n    eta: probability estimates\n    true_labels: true labels\n    \n    Return\n    -----------------\n    C: confusion matrix\n    '''\n    # Number of classifiers, classes\n    M = classifiers.shape[0]\n    N = classifiers.shape[1]\n    \n    # Expected conf matrix\n    C = np.zeros((N, N))\n    for m in range(M):\n        conf = compute_conf(classifiers[m, :, :].reshape(N, N), eta, true_labels)\n        C =  C + classifier_weights[m] * conf\n    \n    return C\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/class-info.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   class-info.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 16:59:15.393239\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\n\ndf = pd.read_csv(sys.argv[1])\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nis_valid = False \nif len(df.columns) > 2 * len(ATTRIBUTES):\n  is_valid = True\n\nidx = 2 if not is_valid else 2 + len(ATTRIBUTES)\ncounts = np.zeros([len(ATTRIBUTES), 4], dtype=np.int64)\nfor (_, row) in df.iterrows():\n  labels = list(row[idx: idx + len(ATTRIBUTES)])\n  for i, label in enumerate(labels):\n    counts[i][label + 2] += 1\n\nfor attr, count in zip(ATTRIBUTES, counts):\n  print('%-40s' % attr, ['%.5f' % (x / len(df)) for x in count])\n\nfor attr, count in zip(ATTRIBUTES, counts):\n  print('%-40s' % attr, count)\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/class-info.train.csv",
    "content": "location_traffic_convenience             ['0.77507', '0.01255', '0.00996', '0.20242']\nlocation_distance_from_business_district ['0.79695', '0.00558', '0.00508', '0.19239']\nlocation_easy_to_find                    ['0.76767', '0.03787', '0.02354', '0.17092']\nservice_wait_time                        ['0.88346', '0.02890', '0.04173', '0.04591']\nservice_waiters_attitude                 ['0.40390', '0.08270', '0.11937', '0.39402']\nservice_parking_convenience              ['0.93596', '0.01260', '0.01387', '0.03757']\nservice_serving_speed                    ['0.84476', '0.05226', '0.02266', '0.08032']\nprice_level                              ['0.50305', '0.11786', '0.23094', '0.14815']\nprice_cost_effective                     ['0.76421', '0.02868', '0.02926', '0.17786']\nprice_discount                           ['0.61184', '0.01634', '0.17386', '0.19796']\nenvironment_decoration                   ['0.51349', '0.02037', '0.09040', '0.37574']\nenvironment_noise                        ['0.69948', '0.02930', '0.04612', '0.22510']\nenvironment_space                        ['0.62284', '0.05434', '0.08821', '0.23461']\nenvironment_cleaness                     ['0.63427', '0.04298', '0.04479', '0.27796']\ndish_portion                             ['0.54207', '0.09541', '0.09053', '0.27199']\ndish_taste                               ['0.04829', '0.04155', '0.38286', '0.52730']\ndish_look                                ['0.72357', '0.03027', '0.04452', '0.20164']\ndish_recommendation                      ['0.80730', '0.02167', '0.01893', '0.15210']\nothers_overall_experience                ['0.02010', '0.08937', '0.22320', '0.66733']\nothers_willing_to_consume_again          ['0.62476', '0.03961', '0.02774', '0.30789']\nlocation_traffic_convenience             [81382  1318  1046 21254]\nlocation_distance_from_business_district [83680   586   533 20201]\nlocation_easy_to_find                    [80605  3976  2472 17947]\nservice_wait_time                        [92763  3034  4382  4821]\nservice_waiters_attitude                 [42410  8684 12534 41372]\nservice_parking_convenience              [98276  1323  1456  3945]\nservice_serving_speed                    [88700  5487  2379  8434]\nprice_level                              [52820 12375 24249 15556]\nprice_cost_effective                     [80242  3011  3072 18675]\nprice_discount                           [64243  1716 18255 20786]\nenvironment_decoration                   [53916  2139  9492 39453]\nenvironment_noise                        [73445  3077  4843 23635]\nenvironment_space                        [65398  5706  9262 24634]\nenvironment_cleaness                     [66598  4513  4703 29186]\ndish_portion                             [56917 10018  9506 28559]\ndish_taste                               [ 5070  4363 40200 55367]\ndish_look                                [75975  3178  4675 21172]\ndish_recommendation                      [84767  2275  1988 15970]\nothers_overall_experience                [ 2110  9384 23436 70070]\nothers_willing_to_consume_again          [65600  4159  2913 32328]\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/class-info.valid.csv",
    "content": "location_traffic_convenience             ['0.78380', '0.01213', '0.00907', '0.19500']\nlocation_distance_from_business_district ['0.80213', '0.00600', '0.00533', '0.18653']\nlocation_easy_to_find                    ['0.76773', '0.03680', '0.02193', '0.17353']\nservice_wait_time                        ['0.88247', '0.03100', '0.03993', '0.04660']\nservice_waiters_attitude                 ['0.39947', '0.08060', '0.12200', '0.39793']\nservice_parking_convenience              ['0.93640', '0.01253', '0.01360', '0.03747']\nservice_serving_speed                    ['0.84513', '0.05367', '0.02453', '0.07667']\nprice_level                              ['0.49980', '0.11733', '0.23433', '0.14853']\nprice_cost_effective                     ['0.76187', '0.02967', '0.02653', '0.18193']\nprice_discount                           ['0.61747', '0.01773', '0.17540', '0.18940']\nenvironment_decoration                   ['0.52007', '0.01833', '0.08747', '0.37413']\nenvironment_noise                        ['0.70140', '0.03207', '0.04433', '0.22220']\nenvironment_space                        ['0.63273', '0.05160', '0.08733', '0.22833']\nenvironment_cleaness                     ['0.63973', '0.04167', '0.04180', '0.27680']\ndish_portion                             ['0.54080', '0.09613', '0.09367', '0.26940']\ndish_taste                               ['0.05040', '0.03867', '0.38800', '0.52293']\ndish_look                                ['0.71720', '0.03033', '0.04407', '0.20840']\ndish_recommendation                      ['0.80553', '0.02233', '0.01913', '0.15300']\nothers_overall_experience                ['0.01900', '0.08553', '0.22380', '0.67167']\nothers_willing_to_consume_again          ['0.62360', '0.03847', '0.02633', '0.31160']\nlocation_traffic_convenience             [11757   182   136  2925]\nlocation_distance_from_business_district [12032    90    80  2798]\nlocation_easy_to_find                    [11516   552   329  2603]\nservice_wait_time                        [13237   465   599   699]\nservice_waiters_attitude                 [5992 1209 1830 5969]\nservice_parking_convenience              [14046   188   204   562]\nservice_serving_speed                    [12677   805   368  1150]\nprice_level                              [7497 1760 3515 2228]\nprice_cost_effective                     [11428   445   398  2729]\nprice_discount                           [9262  266 2631 2841]\nenvironment_decoration                   [7801  275 1312 5612]\nenvironment_noise                        [10521   481   665  3333]\nenvironment_space                        [9491  774 1310 3425]\nenvironment_cleaness                     [9596  625  627 4152]\ndish_portion                             [8112 1442 1405 4041]\ndish_taste                               [ 756  580 5820 7844]\ndish_look                                [10758   455   661  3126]\ndish_recommendation                      [12083   335   287  2295]\nothers_overall_experience                [  285  1283  3357 10075]\nothers_willing_to_consume_again          [9354  577  395 4674]\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/correlations-filter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   correlations.py\n#        \\author   chenghuige  \n#          \\date   2018-10-25 11:16:14.268580\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_float('thre', 0.992, '')\n\n\nimport sys \nimport os\n\nimport numpy as np\nimport pandas as pd \nfrom scipy.stats import ks_2samp\n\nimport glob\n\nimport melt\nimport gezi\n\nfrom tqdm import tqdm\n\nimport matplotlib.pyplot as plt \nimport itertools\n\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nos.makedirs('./bak', exist_ok=True)\n\n#input is dir\ndir = sys.argv[1] if len(sys.argv) > 1 else './'\nobject = None\nmodels = []\ndfs = []\n\ndf = pd.read_csv('./models.csv')\ndf = df[df['model'] != 'ensemble']\n\nmodels_ = df['model'].values\nfiles_ = df['file'].values \nmetrics = df['adjusted_f1/mean'].values\n\nmodels = []\nfiles = []\nfor file, model in tqdm(zip(files_, models_), ascii=True):\n  if not os.path.exists(file):\n    continue\n  df = pd.read_csv(file)\n  df = df.sort_values('id')\n  scores = [gezi.str2scores(x) for x in df['score'].values]\n  scores = np.reshape(scores, [-1, len(ATTRIBUTES), 4])\n  scores = gezi.softmax(scores)\n  ndf = pd.DataFrame()\n  ndf['score'] = np.reshape(scores, [-1])\n  dfs.append(ndf)\n  files.append(file)\n  models.append(model)\n\ndef calc_correlation(x, y, method):\n  if method.startswith('ks'):\n    ks_stat, p_value = ks_2samp(x, y)\n    if method == 'ks_s':\n      score = ks_stat\n    else:\n      score = p_value  \n  else:\n    score = x.corr(y, method=method)\n  return score\n\nlen_ = len(dfs)\nc = np.zeros([len_, len_])\nmethods = ['pearson', 'kendall', 'spearman', 'ks_s', 'ks_p']\nmethods = methods[:1]\nfor method in methods:\n  print('---------------------------------------', method)\n  for i in tqdm(range(len_), ascii=True):\n    for j in range(len_):\n      c[i, j] = calc_correlation(dfs[i]['score'], dfs[j]['score'], method=method)    \n\nfor i in range(1, len_):\n  for j in range(i + 1, len_):\n    if c[i, j] > FLAGS.thre:\n      print(i, j, models[i],'%.4f' % metrics[i], models[j], '%.4f' % metrics[j], c[i, j])\n      if os.path.exists(files[j]) and not ('ensemble' in models[i] or 'ensemble' in models[j]):\n        if glob.glob('%s_model.ckpt-*' % models[j]):\n          command = 'mv %s_model.ckpt-* bak' % models[j]\n          print(command)\n        else:\n          command = 'mv %s_ckpt-* bak' % models[j]\n          print(command)\n        os.system(command)\n      continue\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/correlations.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   correlations.py\n#        \\author   chenghuige  \n#          \\date   2018-10-25 11:16:14.268580\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport numpy as np\nimport pandas as pd \nfrom scipy.stats import ks_2samp\n\nimport glob\n\nimport melt\nimport gezi\n\nfrom tqdm import tqdm\n\nimport matplotlib.pyplot as plt \nimport itertools\n\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\n#http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\ndef plot_confusion_matrix(cm, classes,\n                          normalize=False,\n                          title='Confusion matrix',\n                          cmap=plt.cm.Blues):\n    \"\"\"\n    This function prints and plots the confusion matrix.\n    Normalization can be applied by setting `normalize=True`.\n    \"\"\"\n    if normalize:\n        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n        print(\"Normalized confusion matrix\")\n    else:\n        print('Confusion matrix, without normalization')\n\n    print(cm)\n\n    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n    plt.title(title)\n    plt.colorbar()\n    tick_marks = np.arange(len(classes))\n    plt.xticks(tick_marks, classes, rotation=45)\n    plt.yticks(tick_marks, classes)\n\n    fmt = '.2f' if normalize else 'd'\n    thresh = cm.max() / 2.\n    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n        plt.text(j, i, format(cm[i, j], fmt),\n                 horizontalalignment=\"center\",\n                 color=\"white\" if cm[i, j] > thresh else \"black\")\n\n    plt.ylabel('True label')\n    plt.xlabel('Predicted label')\n    plt.tight_layout()\n\n\nif len(sys.argv) > 2:\n  file1 = sys.argv[1]\n  file2 = sys.argv[2]\n\n  df1 = pd.read_csv(file1)\n  df1 = df1.sort_values('id')\n  df2 = pd.read_csv(file2)\n  df2 = df2.sort_values('id')\n\n  scores1 = [gezi.str2scores(x) for x in df1['score'].values]\n  scores2 = [gezi.str2scores(x) for x in df2['score'].values]\n\n  scores1 = np.reshape(scores1, [-1, len(ATTRIBUTES), 4])\n  scores1 = gezi.softmax(scores1)\n  scores2 = np.reshape(scores2, [-1, len(ATTRIBUTES), 4])\n  scores2 = gezi.softmax(scores2)\n\n  ndf1 = pd.DataFrame()\n  ndf2 = pd.DataFrame()\n\n  for i, attr in enumerate(ATTRIBUTES):\n    score1 = np.reshape(scores1[:, i, :], [-1])\n    score2 = np.reshape(scores2[:, i, :], [-1])\n    ndf1[attr] = score1 \n    ndf2[attr] = score2\n\n    print('Attr:----------------------------------------------------%s' % attr)\n    print(' Pearson\\'s correlation score: %0.6f' %\n          ndf1[attr].corr(\n              ndf2[attr], method='pearson'))\n    # print(' Kendall\\'s correlation score: %0.6f' %\n    #       ndf1[attr].corr(\n    #           ndf2[attr], method='kendall'))\n    # print(' Spearman\\'s correlation score: %0.6f' %\n    #       ndf1[attr].corr(\n    #           ndf2[attr], method='spearman'))\n    # ks_stat, p_value = ks_2samp(ndf1[attr].values,\n    #                             ndf2[attr].values)\n    # print(' Kolmogorov-Smirnov test:    KS-stat = %.6f    p-value = %.3e'\n    #       % (ks_stat, p_value))\n  print('----------------------------------------------------------all')\n  scores1 = np.reshape(scores1, [-1])\n  scores2 = np.reshape(scores2, [-1])\n  ndf1, ndf2 = pd.DataFrame(), pd.DataFrame()\n  ndf1['mean'] = scores1 \n  ndf2['mean'] = scores2\n  print(ndf1['mean'].corr(ndf2['mean'], method='pearson'))\nelse:\n  #input is dir\n  dir = sys.argv[1] if len(sys.argv) > 1 else './'\n  if not os.path.isdir(dir):\n    dir = './'\n    infile = sys.argv[1]\n    object_name = os.path.basename(infile).replace('.valid.csv', '').split('_ckpt-')[0].split('_model.ckpt-')[0]\n  else:\n    object_name = None\n\n  object = None\n  models = []\n  dfs = []\n  for file in glob.glob('%s/*.valid.csv' % dir):\n    df = pd.read_csv(file)\n    df = df.sort_values('id')\n    scores = [gezi.str2scores(x) for x in df['score'].values]\n    scores = np.reshape(scores, [-1, len(ATTRIBUTES), 4])\n    scores = gezi.softmax(scores)\n    ndf = pd.DataFrame()\n    ndf['score'] = np.reshape(scores, [-1])\n    dfs.append(ndf)\n    model_name = os.path.basename(file).replace('.valid.csv', '').split('_ckpt-')[0].split('_model.ckpt-')[0]\n    if model_name == object_name:\n      object = model_name\n    models.append(model_name)\n\n  def calc_correlation(x, y, method):\n    if method.startswith('ks'):\n      ks_stat, p_value = ks_2samp(x, y)\n      if method == 'ks_s':\n        score = ks_stat\n      else:\n        score = p_value  \n    else:\n      score = x.corr(y, method=method)\n    return score\n\n  len_ = len(dfs)\n  cm = np.zeros([len_, len_])\n  methods = ['pearson', 'kendall', 'spearman', 'ks_s', 'ks_p']\n  methods = methods[:1]\n  for method in methods:\n    print('---------------------------------------', method)\n    for i in tqdm(range(len_), ascii=True):\n      if object and models[i] != object:\n        continue\n      print('--------------------', models[i])\n      for j in range(len_):\n        cm[i, j] = calc_correlation(dfs[i]['score'], dfs[j]['score'], method=method)\n      indexes = np.argsort(-cm[i])  \n      for index in indexes:\n        print(models[index], cm[i, index])\n\n#   plt.figure()\n#   plot_confusion_matrix(cm, classes=models)\n#   plt.show()\n    \n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/diff.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   analyze.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 14:44:39.978269\n#   \\Description  \n\n# -----------detailed f1 infos\n# location_traffic_convenience 0.6712383080788638\n# location_distance_from_business_district 0.5629060402359796\n# location_easy_to_find 0.7248325856789342\n# service_wait_time 0.6770740954491001\n# service_waiters_attitude 0.8069045649815189\n# service_parking_convenience 0.7526363109778337\n# service_serving_speed 0.775706676245927\n# price_level 0.7892694978665769\n# price_cost_effective 0.7123042372602688\n# price_discount 0.6898761224553072\n# environment_decoration 0.7345291206372897\n# environment_noise 0.7664456569694614\n# environment_space 0.7672318580085105\n# environment_cleaness 0.7596899305910838\n# dish_portion 0.7350563643550543\n# dish_taste 0.7407494293948916\n# dish_look 0.6002670892812643\n# dish_recommendation 0.7520857946099313\n# others_overall_experience 0.5958015346685603\n# others_willing_to_consume_again 0.7198627097688324\n# adjusted f1_prob:[0.7167233963757594]\n\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\n\nimport pandas as pd \nimport numpy as np \n\nimport gezi\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nnum_attrs = len(ATTRIBUTES)\n\nclasses = ['NA', 'NEG', 'NEU', 'POS']\nnum_classes = 4\n\n\nifile = sys.argv[1]\nifile2 = sys.argv[2]\n\ndf = pd.read_csv(ifile)\ndf = df.sort_values('id')\n\nprint(ifile, len(df))\n\ndf2 = pd.read_csv(ifile2)\ndf2 = df2.sort_values('id')\n\nprint(ifile2, len(df2))\n#df = df.iloc[[0]]\n#print(df)\n#df2 = df2.iloc[[0]]\n#print(df2)\n\nis_valid = False \nif len(df.columns) > 2 * num_attrs:\n  is_valid = True\n\nidx = 2 if not is_valid else 2 + num_attrs\nnum_diff_docs = 0\nnum_diff_attrs = 0\nfor i in range(0, len(df)):\n  first = True\n  for j in range(num_attrs):\n    cur = idx + j\n    if df.iloc[i][cur] != df2.iloc[i][cur]:\n      num_diff_attrs += 1\n      if first:\n        first = False\n        print(df.iloc[i]['content'])\n        num_diff_docs += 1\n      attr = ATTRIBUTES[j]\n      if not is_valid:\n        print(attr, df.iloc[i][cur], df2.iloc[i][cur])\n      else:\n        print(attr, df.iloc[i][cur], df2.iloc[i][cur], df.iloc[i][cur - num_attrs])\n\nprint('num_diff_docs', num_diff_docs, file=sys.stderr)\nprint('num_diff_attrs', num_diff_attrs, file=sys.stderr)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/analysis/gen-class-weights.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   class-info.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 16:59:15.393239\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\n\nifile = '/home/gezi/data/ai2018/sentiment/train.csv'\ndf = pd.read_csv(ifile)\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\n\ncounts = np.zeros([len(ATTRIBUTES), 4], dtype=np.int64)\nweights = np.zeros([len(ATTRIBUTES), 4], dtype=np.float32)\n\nfor (_, row) in df.iterrows():\n  labels = list(row[2:])\n  for i, label in enumerate(labels):\n    counts[i][label + 2] += 1\n    \nprint('counts:', counts)\nfor i in range(len(counts)):\n  for j in range(4):\n    #weights[i][j] =  1. / counts[i][j] \n    weights[i][j] =  len(df) / counts[i][j] \nprint('weights', weights)\n#for attr, count in zip(ATTRIBUTES, counts):\n#  print(attr, [x / len(df) for x in count])\n\ndir = '/home/gezi/temp/ai2018/sentiment/'\nnp.save(f'{dir}/class_weights.npy', weights)\nnp.save(f'{dir}/class_counts.npy', counts)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom collections import namedtuple\n\nimport gezi\nimport melt\nlogging = melt.logging\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_ATTRIBUTES, NUM_CLASSES\nimport prepare.config\n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n\n    def get_aug_factor():\n      global_step = tf.train.get_or_create_global_step()\n      num_examples = tf.constant(self.num_examples_per_epoch('train'), dtype=tf.int64)\n      return tf.cond(tf.equal(tf.to_int64(global_step / num_examples) % 2, 0), lambda: 0., lambda: 1.)\n\n    def undersampling_filter(x, y):\n      prob = tf.cond(tf.equal(x['source'], 'train'), lambda: 1., lambda: FLAGS.other_corpus_factor)\n      #prob = tf.cond(tf.equal(tf.strings.split(tf.expand_dims(x['source'], 0),'.').values[-1], 'train'), lambda: 1., lambda: FLAGS.other_corpus_factor)\n      #is_aug = tf.to_float(tf.equal(x['source'], 'augument.train'))\n      #is_aug = tf.to_float(tf.equal(tf.strings.split(tf.expand_dims(x['source'], 0),'.').values[0], 'aug'))\n      #aug_factor = get_aug_factor()\n      #prob *=  is_aug * aug_factor + (1 - is_aug) * (1 - aug_factor)      \n      acceptance = tf.less_equal(tf.random_uniform([], dtype=tf.float32), prob)\n      return acceptance\n    \n    self.filter_fn = undersampling_filter if FLAGS.other_corpus_factor < 1 else None\n    #self.filter_fn = undersampling_filter\n    \n  def parse(self, example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    features_dict = {\n      'id':  tf.FixedLenFeature([], tf.string),\n      'content_str': tf.FixedLenFeature([], tf.string),\n      'content': tf.VarLenFeature(tf.int64),\n      'char': tf.VarLenFeature(tf.int64),\n      'pos': tf.VarLenFeature(tf.int64),\n      'ner': tf.VarLenFeature(tf.int64),\n      'wlen': tf.VarLenFeature(tf.int64),\n      #'label': tf.FixedLenFeature([NUM_ATTRIBUTES], tf.int64),\n      'source':  tf.FixedLenFeature([], tf.string),\n      }\n\n    if FLAGS.use_soft_label:\n      features_dict['label'] =  tf.FixedLenFeature([NUM_ATTRIBUTES * NUM_CLASSES], tf.float32)\n    else:\n      features_dict['label'] =  tf.FixedLenFeature([NUM_ATTRIBUTES], tf.int64)\n\n    #if FLAGS.use_char:\n    #features_dict['chars'] = tf.VarLenFeature(tf.int64)\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    content = features['content']\n    content = melt.sparse_tensor_to_dense(content)\n    # Actually not use below, for bert now use nbert tfrecords which is [first_n and last_m] so do not need content_limt 512 here\n    if FLAGS.content_limit:\n      # TODO now only condider bert.. whey content[0] or content[:0] content[-1] not work ? FIXME..\n      start_id = vocabulary.start_id() if not FLAGS.model == 'Transformer' else 101\n      end_id = vocabulary.end_id() if not FLAGS.model == 'Transformer' else 102\n      # TODO now has problem ... one additional end or start...\n      if not FLAGS.cut_front:\n        content = tf.concat([content[:FLAGS.content_limit - 1], tf.constant([end_id], dtype=tf.int64)], 0)\n      else:\n        content = tf.concat([tf.constant([start_id], dtype=tf.int64), content[-FLAGS.content_limit + 1:]], 0)\n    # if FLAGS.add_start_end:\n    #   content = tf.concat([tf.constant([vocabulary.start_id()], dtype=tf.int64), content, tf.constant([vocabulary.end_id()], dtype=tf.int64)], 0)\n    # NOTICE! not work in dataset... so put to later step like in call but should do the same thing again for pytorch..\n    ## TODO can use below to do unk aug so not to have different code for tf and pytorch later\n    # if FLAGS.vocab_min_count:\n    # #   content = melt.greater_then_set(content, FLAGS.vocab_min_count, UNK_ID)\n\n    features['content'] = content\n    label = features['label']\n\n    #if FLAGS.use_char:\n    chars = features['char']\n    chars = melt.sparse_tensor_to_dense(chars)\n    # if FLAGS.char_min_count:\n    #   chars = melt.greater_then_set(chars, FLAGS.char_min_count, UNK_ID)\n    features['char'] = chars\n\n    pos = features['pos']\n    pos = melt.sparse_tensor_to_dense(pos)\n    # if FLAGS.tag_min_count:\n    #   pos = melt.greater_then_set(pos, FLAGS.tag_min_count, UNK_ID)\n    features['pos'] = pos\n\n    ner = features['ner']\n    ner = melt.sparse_tensor_to_dense(ner)\n    # if FLAGS.tag_min_count:\n    #   ner = melt.greater_then_set(ner, FLAGS.tag_min_count, UNK_ID)\n    features['ner'] = ner\n\n    wlen = features['wlen']\n    wlen = melt.sparse_tensor_to_dense(wlen)\n    features['wlen'] = wlen\n\n    x = features\n    if not FLAGS.use_soft_label:\n      y = label + 2\n      if FLAGS.binary_class_index is not None:\n        y = tf.to_int64(tf.equal(y, FLAGS.binary_class_index))\n    else:\n      y = label\n\n    return x, y\n\n  def num_examples_per_epoch(self, mode):\n    if FLAGS.fold is not None:\n      if mode == 'train':\n        # err notice actually this is total, with fold *1/8 for valid *7/8 for train\n        return 120000  \n      elif mode == 'valid':\n        return 15000\n      else:\n        # for test testA is 15000 testB will be 200000\n        return super(Dataset, self).num_examples_per_epoch(mode)\n    else:\n       return super(Dataset, self).num_examples_per_epoch(mode)\n    \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/README.md",
    "content": "just use ./ensemble-cv.py \npython ./ensemble-cv.py \npython ./ensemble-cv.py --debug=0\n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/calibrate-cv.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  now work well, worse then mean...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score \n#from sklearn.preprocessing import minmax_scale\nimport gezi\n\nimport matplotlib.pyplot as plt\n\nimport lightgbm as lgb\n\nfrom tqdm import tqdm\n\nfrom sklearn.metrics import f1_score \n\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.calibration import CalibratedClassifierCV\nfrom sklearn.metrics import log_loss\n\nfrom sklearn.model_selection import KFold\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nnum_attrs = len(ATTRIBUTES)\nnum_classes = 4\n\nidx = 2\n\nresults = None\n\ndf2 = pd.DataFrame()\nidf2 = pd.DataFrame()\n\nvalid_file = './ensemble.valid.csv'\ninfer_file = './ensemble.infer.debug.csv'\n\n# idf = pd.read_csv(infer_file)\n# idf = idf.sort_values('id')\n#iscores = idf['logit']\n#iscores = [gezi.str2scores(score) for score in iscores]\n# iscores2 = []\n# for score in iscores: \n#   score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n#   score = np.reshape(score, [-1])\n#   iscores2.append(score)\n# iscores = iscores2\n#iscores = np.array(iscores)\n\nprint(valid_file)\ndf = pd.read_csv(valid_file, sep=',')\ndf = df.sort_values('id')\nlabels = df.iloc[:,idx:idx+num_attrs].values\npredicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\nscores = df['score']\n#scores = df['logit']\n#scores = df['prob']\nscores = [gezi.str2scores(score) for score in scores]\n# scores2 = []\n# for score in scores: \n#   score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n#   score = np.reshape(score, [-1])\n#   scores2.append(score)\n# scores = scores2\nscores = np.array(scores)\nids = df.iloc[:,0].values \n\ncnames = []\nfor attr in ATTRIBUTES:\n  for i in range(4):\n    cnames.append(f'{attr}_{i}')\n\nprint('---------', cnames)  \ndf2['id'] = ids\n#idf2['id'] = ids\nfor i, label in enumerate(df.columns.values[idx:idx+num_attrs]):\n  df2[label] = labels[:,i]\n\nfor i, name in enumerate(cnames):\n  df2[name] = scores[:,i]\n  #idf2[name] = iscores[:, i]\n\nfor i, attr in tqdm(enumerate(ATTRIBUTES), ascii=True):\n  index = 1 + num_attrs + i * 4\n  index2 = 1 + i * 4\n  X_ = df2.iloc[:, index: index + 4]\n  #iX_ = idf2.iloc[:, index2: index2 + 4]\n\n  f1_list = []\n  K = 5\n  y = df2[attr + '_y'] + 2\n\n  #ix_ = iX_.values\n  X = X_.values\n  y = y.values\n  kf = KFold(n_splits=K)\n  kf.get_n_splits(X)\n  preds = []\n  ipreds = []\n  ys = []\n  for fold, (train_index, test_index) in enumerate(kf.split(X)):\n    print(f'{i}:{attr} FOLD:{fold}')\n    X_train, X_valid, X_test = X[train_index[:-3000]], X[train_index[-3000:]], X[test_index]\n    y_train, y_valid, y_test = y[train_index[:-3000]], y[train_index[-3000:]], y[test_index]\n    ys.append(y_test)\n\n    # Train uncalibrated random forest classifier on whole train and validation\n    # data and evaluate on test data\n    clf = RandomForestClassifier(n_estimators=25)\n    clf.fit(np.concatenate([X_train, X_valid], 0), np.concatenate([y_train, y_valid], 0))\n    clf_probs = clf.predict_proba(X_test)\n    score = log_loss(y_test, clf_probs)\n\n    print('1', score)\n\n    # Train random forest classifier, calibrate on validation data and evaluate\n    # on test data\n    clf = RandomForestClassifier(n_estimators=25)\n    clf.fit(X_train, y_train)\n    clf_probs = clf.predict_proba(X_test)\n    sig_clf = CalibratedClassifierCV(clf, method=\"sigmoid\", cv=\"prefit\")\n    sig_clf.fit(X_valid, y_valid)\n    sig_clf_probs = sig_clf.predict_proba(X_test)\n    sig_score = log_loss(y_test, sig_clf_probs)\n\n    print('2', sig_score)\n\n    preds.append(clf.predict(X_test))\n\n  preds = np.concatenate(preds)\n  y = np.concatenate(ys)\n\n  df[attr] = np.array(preds) - 2\n  #ipreds = clf_final.predict(iX_)\n  #idf[attr] = np.array(ipreds) - 2\n\ndf.to_csv('ensemble.valid.calibrate.csv', index=False)\n#idf.to_csv('ensemble.infer.calibrate.csv', index=False)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble-cv-parallel.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:0num_classes:21.026718\n#   \\Description   ensemble by OOF score blend per attribute\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', True, '')\nflags.DEFINE_bool('grid_search', True, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_string('idir', '.', '')\nflags.DEFINE_float('norm_factor', 0.0001, 'attr weights used norm factor')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\nflags.DEFINE_string('weight_by', 'adjusted_f1', '')\nflags.DEFINE_integer('num_grids', 10, '')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\nflags.DEFINE_integer('seed', None, '')\nflags.DEFINE_integer('num_folds', 5, '')\nflags.DEFINE_bool('show_detail', False, '')\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\nimport gezi\nfrom tqdm import tqdm\nimport math\nfrom scipy.stats import rankdata\n\nfrom sklearn.model_selection import KFold\n\nDEBUG = 0\nidir = '.'\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\n\nnum_ensembles = 0\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef calc_f1(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n    #f1_scores[i].append(f1)\n  f1 = np.mean(f1_list)\n  return f1 \n\ndef calc_f1s(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n  return np.array(f1_list)\n\ndef calc_losses(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.array(losses)\n\ndef calc_loss(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.mean(losses)\n\ndef calc_aucs(labels, predicts):\n  aucs_list = []\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n  return np.array(aucs_list)\n\ndef calc_f1_alls(labels, predicts):\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    scores = f1_score(labels[:,i], predicts[:,i], average=None)\n    class_f1 += scores\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n  return f1, f1_list, class_f1\n\nclass_weights_path = './class_weights.npy'\nif not os.path.exists(class_weights_path):\n  class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n# class_weights is per class(na, neg, neu, pos) weight\nclass_weights = np.load(class_weights_path)\n#print('class_weights', class_weights)\n\nif FLAGS.adjust:\n  for i in range(len(class_weights)):\n    for j in range(4):\n      #class_weights[i][j] = math.log(class_weights[i][j])\n      #class_weights[i] = gezi.softmax(class_weights[i])\n      #class_weights[i][j] +=  math.sqrt(class_weights[i][j])\n      #class_weights[i][j] += 0.\n      #class_weights[i][j] = math.sqrt(class_weights[i][j])\n      x = class_weights[i][j]\n      # If using prob adjust just set x for logits seems x^3 better\n      #class_weights[i][j] = x \n      # well this make single model adjusted f1 improve by adding 100...\n      #class_weights[i][j] = x * x * x + 100\n      class_weights[i][j] = x * x * x \n\n    #if FLAGS.more_adjust:\n    #  #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    #  class_weights[1][-2] = class_weights[1][-2] * 1.2\n    #  class_weights[-2][0] = class_weights[-2][0] * 1.2\n\n  if FLAGS.more_adjust:\n    #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    # pow(1.2, 22) 55.2061438912436 \n    class_weights[1][-2] = class_weights[1][-2] * pow(1.2, 22)\n    ## 22.63\n    #x = pow(1.2, 18)  \n    ## * 22644.802257413307\n    #class_weights[-2][0] = class_weights[-2][0] * x * x * x * 1.2\n    class_weights[-2][0] = class_weights[-2][0] * 60000\n      # for i in range(len(class_weights)):\n      #   for j in range(4):\n      #     class_weights[i][j] /= np.sum(class_weights[i])\n\n    #class_weights = gezi.softmax(class_weights)\n  else:\n    class_weights = np.ones_like(class_weights)\nprint('class_weights\\n', class_weights)\nori_class_weights = class_weights\n\ndef to_predict(logits, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_attrs, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust and FLAGS.adjust or FLAGS.grid_search:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights\n  else:\n    probs = logits\n\n  probs = np.reshape(probs, [-1, num_classes])\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  result = np.reshape(result, [-1, num_attrs])\n  return result\n\ndef blend_weights(weights, norm_facotr):\n  for i in range(num_attrs):\n    #weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    #min_ws = np.min(ws)\n    #max_ws = np.max(ws)\n    #gap = max_ws - min_ws\n    #if gap > 0:\n    #  for j in range(len(weights)):\n    #    weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n    ranked = rankdata(ws)\n    sum_rank = np.sum(ranked)\n    for j in range(len(weights)):\n      weights[j][i] = ranked[j] / sum_rank\n\ndef get_counts(probs):\n  predicts = np.argmax(probs, 1)\n  counts = np.zeros(4)\n  for predict in predicts:\n    counts[predict] += 1\n  return counts\n\ndef adjust_probs(probs, labels):\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  probs[:, 1][-2] *= 10\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n  probs[:, -2][0] *= 100000\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n\n# TODO FIXME pymp not work class factors seems not locked...\nimport pymp\n#class_factors = pymp.shared.array((num_attrs, num_classes), dtype='float') + 1.\n# class factors is per class dynamic adjust for class weights\nfrom multiprocessing import Manager \n\ndef grid_search_class_factors(probs, labels, weights, num_grids=10):\n  manager = Manager() \n  class_factors_dict = manager.dict()\n  with pymp.Parallel(12) as p:\n    for i in tqdm(p.range(num_attrs), ascii=True):\n    #for i in p.range(num_attrs):\n      #p.print(i, ATTRIBUTES[i])\n      #p.print('init counts:', get_counts(probs[:, i]))\n      index = np.argsort(-np.array(weights[i]))\n      def is_ok(factor):\n        return np.sum(np.argsort(-factor) == index) == 4\n      best = 0\n      for a in tqdm(range(1,1 + num_grids), ascii=True):\n      #for a in(range(1,1 + num_grids)):\n        for b in range(1,1 + num_grids):\n          for c in range(1,1 + num_grids):\n            for d in range(1,1 + num_grids):\n              factor = np.array([a, b, c, d], dtype=np.float)\n              factor2 = factor * weights[i]\n              if not is_ok(factor2):\n                continue\n              preds = probs[:, i] * factor2 \n              f1 = f1_score(labels[:, i] + 2, np.argmax(preds, 1), average='macro')\n              if f1 > best:\n                #p.print('\\n', ATTRIBUTES[i], factor, factor2, f1)\n                best = f1\n                #class_factors[i] = factor\n                class_factors_dict[i] = factor\n                #p.print('counts:', get_counts(probs[:, i] * factor))\n                #p.print('class_factors', i, class_factors_dict[i])\n\n  class_factors = np.ones([num_attrs, num_classes])\n  for i in range(num_attrs):\n    class_factors[i] = class_factors_dict[i]\n  return class_factors\n\ndef main(_):\n  print('METHOD:', FLAGS.method)\n  print('Norm factor:', FLAGS.norm_factor) \n\n  if FLAGS.num_grids <= 1:\n    FLAGS.grid_search = False\n\n  # if FLAGS.grid_search:\n  #   FLAGS.debug = False\n\n  DEBUG = FLAGS.debug \n  idir = FLAGS.idir\n\n  # first id, sencod content ..\n  idx = 2\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  valid_files = [x for x in valid_files if not 'ensemble' in x]\n  \n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.csv.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n    infer_files = [x for x in infer_files if not 'ensemble' in x]\n\n  print('num_ensembles', len(valid_files), 'num_infers', len(infer_files))    \n  assert len(valid_files) == len(infer_files), infer_files\n\n  global num_ensembles\n  num_ensembles = len(valid_files)\n\n  # need global ? even only read?\n  global class_weights\n  #print('-----------', class_weights)\n\n  kf = KFold(n_splits=FLAGS.num_folds, shuffle=True, random_state=FLAGS.seed)\n\n  print('loading all valid csv')\n  dfs = []\n  for file_ in tqdm(valid_files, ascii=True):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    dfs.append(df)\n  \n  logits_f1_list = []\n  logits_adjusted_f1_list = []\n  probs_f1_list = []\n  probs_adjusted_f1_list = []\n  grids_logits_adjusted_f1_list = []\n\n  logits_predict_list = []\n  logits_adjusted_predict_list = []\n  probs_predict_list = []\n  probs_adjusted_predict_list = []\n  grids_logits_adjusted_predict_list = []\n\n  labels_list = []\n  results_list = []\n\n  def split_train_valid(x):\n    if FLAGS.num_folds == 1:\n      return x, x \n    else:\n      total = 15000\n      assert total % FLAGS.num_folds == 0\n      num_valid = int(total / FLAGS.num_folds) \n      num_train = total - num_valid\n      return x[:num_train], x[num_train:]\n\n  for fold, (train_index, valid_index) in enumerate(kf.split(dfs[0])):\n    print('FOLD_%s---------------------------' % fold)\n    print(train_index, valid_index)\n    class_factors = np.ones([num_attrs, num_classes])\n    class_weights = ori_class_weights\n    # logits sum results\n    results = None\n    # prob sum results\n    results2 = None\n\n    weights = [] \n    scores_list = []\n\n    for fid, df in enumerate(dfs):\n      file_ = valid_files[fid]\n      train = df.iloc[train_index]\n      valid =  df.iloc[valid_index]\n      #if fid == 0:      \n      train_labels = train.iloc[:, idx:idx+num_attrs].values\n      valid_labels = valid.iloc[:, idx:idx+num_attrs].values\n      labels = np.concatenate([train_labels, valid_labels], 0)\n      train_predicts = train.iloc[:, idx+num_attrs:idx+2*num_attrs].values\n      valid_predicts = valid.iloc[:, idx+num_attrs:idx+2*num_attrs].values\n      predicts = np.concatenate([train_predicts, valid_predicts], 0)\n      train_scores = train['score']\n      valid_scores = valid['score']\n      scores = np.concatenate([train_scores, valid_scores], 0)\n      scores = [parse(score) for score in scores] \n      scores = np.array(scores)\n      scores_list.append(scores)     \n\n      train_labels, valid_labels = split_train_valid(labels)\n      train_predicts, valid_predicts = split_train_valid(predicts)\n      train_scores, valid_scores = split_train_valid(scores)\n  \n      f1s = calc_f1s(train_labels, train_predicts)\n      f1s_adjusted = calc_f1s(train_labels, to_predict(train_scores, is_single=True))\n\n      train_probs = gezi.softmax(train_scores.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]))\n      aucs = calc_aucs(train_labels + 2, train_probs)\n      losses = calc_losses(train_labels + 2, train_probs)\n\n      f1 = np.mean(f1s)\n      f1_adjusted = np.mean(f1s_adjusted)\n      \n      print('%-3d' % fid, '%-100s' % file_, '%.5f' % f1, '%.5f' % f1_adjusted, '%.5f' % np.mean(aucs), '%.5f' % np.mean(losses)) \n      \n      if FLAGS.weight_by == 'loss':\n        weight = np.reshape(1 / losses, [num_attrs, 1])\n      elif FLAGS.weight_by == 'auc':\n        weight = np.reshape(aucs, [num_attrs, 1])\n      else:\n        weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n\n      weights.append(weight) \n\n    weights = np.array(weights)\n    scores_list = np.array(scores_list)\n\n    blend_weights(weights, FLAGS.norm_factor)\n\n    # if DEBUG:\n    #   print(weights)\n    print('-----------calc weight and score')\n    for fid in tqdm(range(len(valid_files)), ascii=True):\n      scores = scores_list[fid]\n      if results is None:\n        results = np.zeros([len(scores), num_attrs * num_classes])\n        results2 = np.zeros([len(scores), num_attrs * num_classes])\n      weight = weights[fid]\n      if FLAGS.method == 'avg' or FLAGS.method == 'mean': \n        weight = 1.\n      for i, score in enumerate(scores):\n        score = np.reshape(score, [num_attrs, num_classes]) * weight\n        score = np.reshape(score, [-1])\n      \n        results[i] += score\n\n        # notice softmax([1,2]) = [0.26894142, 0.73105858] softmax([2,4]) = [0.11920292, 0.88079708]\n        score = np.reshape(score, [num_attrs, num_classes])\n        \n        # this not work because *weight already..\n        #score *= FLAGS.logits_factor\n        \n        score = gezi.softmax(score, -1)\n        \n        #score *= class_weights\n\n        score = np.reshape(score, [-1])\n        \n        results2[i] += score \n\n    sum_weights = np.sum(weights, 0)\n\n    train_results, valid_results = split_train_valid(results)\n    train_results2, valid_results2 = split_train_valid(results2)\n\n    print('-----------using prob ensemble')\n    adjusted_predict_prob = to_predict(valid_results2, sum_weights, adjust=False)\n    adjusted_f1_prob = calc_f1(valid_labels, adjusted_predict_prob)\n    valid_results2 = np.reshape(valid_results2, [-1, num_attrs, num_classes]) \n    predicts2 = np.argmax(valid_results2, -1) - 2\n    f1_prob = calc_f1(valid_labels, predicts2)\n\n    probs_f1_list.append(f1_prob)\n    probs_adjusted_f1_list.append(adjusted_f1_prob)\n    \n    probs_predict_list.append(predicts2)\n    probs_adjusted_predict_list.append(adjusted_predict_prob)\n    \n    print('%-40s' % 'f1_prob:', '%.5f' % f1_prob)\n    print('%-40s' % 'adjusted f1_prob:', '%.5f' % adjusted_f1_prob)\n\n    # print('-----------detailed f1 infos (ensemble by prob)')\n    # _, adjusted_f1_probs, class_f1s = calc_f1_alls(valid_labels, to_predict(results2[num_train:], sum_weights, adjust=False))\n\n    # for i, attr in enumerate(ATTRIBUTES):\n    #   print(attr, adjusted_f1_probs[i])\n    # for i, cls in enumerate(CLASSES):\n    #   print(cls, class_f1s[i])\n\n    print('-----------using logits ensemble')\n    adjusted_predict = to_predict(valid_results, sum_weights)\n    adjusted_f1 = calc_f1(valid_labels, adjusted_predict)\n    valid_results = np.reshape(valid_results, [-1, num_attrs, num_classes]) \n    predicts = np.argmax(valid_results, -1) - 2\n    f1 = calc_f1(valid_labels, predicts)\n\n    logits_f1_list.append(f1)\n    logits_adjusted_f1_list.append(adjusted_f1)\n\n    logits_predict_list.append(predicts)\n    logits_adjusted_predict_list.append(adjusted_predict)\n\n    results_list.append(valid_results)\n    labels_list.append(valid_labels)\n    \n    print('%-40s' % 'f1:', '%.5f' % f1)\n    print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n    if FLAGS.show_detail:\n      print('-----------detailed f1 infos (ensemble by logits)')\n      _, adjusted_f1s, class_f1s = calc_f1_alls(valid_labels, to_predict(valid_results, sum_weights))\n      for i, attr in enumerate(ATTRIBUTES):\n        print('%-40s' % attr, '%.5f' % adjusted_f1s[i])\n      for i, cls in enumerate(CLASSES):\n        print('%-40s' % cls, '%.5f' % class_f1s[i])\n\n    print('%-40s' % 'f1:', '%.5f' % f1)\n    print('%-40s' % 'f1 prob:', '%.5f' % f1_prob)\n    print('%-40s' % 'adjusted f1 prob:', '%.5f' % adjusted_f1_prob)\n    print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n    if FLAGS.grid_search:\n      print('------------grid search num_grids', FLAGS.num_grids)\n      class_factors = grid_search_class_factors(gezi.softmax(np.reshape(train_results, [-1, num_attrs, num_classes]) * (FLAGS.logits_factor / sum_weights)), train_labels, class_weights, num_grids=FLAGS.num_grids)\n        \n      if FLAGS.show_detail:\n        print('class_factors1 with num_grids', FLAGS.num_grids)\n        print(class_factors)\n\n      # adjust class weights to get better result from grid search \n      class_weights = class_weights * class_factors\n\n      adjusted_f1_before_grids = adjusted_f1\n      print('after dynamic adjust class factors')\n      adjusted_predict = to_predict(valid_results, sum_weights)\n      adjusted_f1 = calc_f1(valid_labels, adjusted_predict)\n      valid_results = np.reshape(valid_results, [-1, num_attrs, num_classes]) \n\n      grids_logits_adjusted_f1_list.append(adjusted_f1)  \n      grids_logits_adjusted_predict_list.append(adjusted_predict)\n\n      print('-----------using logits ensemble')\n      print('%-40s' % 'adjusted f1 before grids:', '%.5f' % adjusted_f1_before_grids)\n      print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n      if FLAGS.show_detail:\n        print('-----------detailed f1 infos (ensemble by logits)')\n        _, adjusted_f1s, class_f1s = calc_f1_alls(valid_labels, to_predict(valid_results, sum_weights))\n        for i, attr in enumerate(ATTRIBUTES):\n          print('%-40s' % attr, '%.5f' % adjusted_f1s[i])\n        for i, cls in enumerate(CLASSES):\n          print('%-40s' % cls, '%.5f' % class_f1s[i])\n      print('%-40s' % 'adjusted f1 before grids:', '%.5f' % adjusted_f1_before_grids)\n      print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n  print('-------------------------------------OVERALL mean')\n  print('ensemble by probs')\n  print('%-40s' % 'f1', '%.5f' % np.mean(probs_f1_list))\n  print('%-40s' % 'adjustedf f1', '%.5f' % np.mean(probs_adjusted_f1_list))\n  \n  print('ensemble by logits')\n  print('%-40s' % 'f1:', '%.5f' % np.mean(logits_f1_list))\n  print('%-40s' % 'adjusted f1:', '%.5f' % np.mean(logits_adjusted_f1_list))\n\n  if FLAGS.grid_search:\n    print('ensemble by logits after grid search')\n    print('%-40s' % 'adjusted f1', '%.5f' % np.mean(grids_logits_adjusted_f1_list))\n\n  print('-------------------------------------OVERALL recalc')\n  labels = np.concatenate(labels_list, 0)\n  print('ensemble by probs')\n  print('%-40s' % 'f1', '%.5f' % calc_f1(labels, np.concatenate(probs_predict_list, 0)))\n  print('%-40s' % 'adjustedf f1', '%.5f' % calc_f1(labels, np.concatenate(probs_adjusted_predict_list, 0)))\n\n  print('ensemble by logits')\n  print('%-40s' % 'f1:', '%.5f' % calc_f1(labels, np.concatenate(logits_predict_list, 0)))\n  print('%-40s' % 'adjusted f1:', '%.5f' % calc_f1(labels, np.concatenate(logits_adjusted_predict_list, 0)))\n\n  if FLAGS.grid_search:\n    print('ensemble by logits after grid search')\n    print('%-40s' % 'adjusted f1 after grid search', '%.5f' % calc_f1(labels, np.concatenate(grids_logits_adjusted_predict_list, 0)))\n\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, np.concatenate(logits_adjusted_predict_list, 0))\n  for i, attr in enumerate(ATTRIBUTES):\n    print('%-40s' % attr, '%.5f' % adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print('%-40s' % cls, '%.5f' % class_f1s[i])\n  print('%-40s' % 'f1', '%.5f' % calc_f1(labels, np.concatenate(logits_predict_list, 0)))\n  print('%-40s' % 'adjusted f1', '%.5f' % calc_f1(labels, np.concatenate(logits_adjusted_predict_list, 0)))\n  if FLAGS.grid_search:\n    print('%-40s' % 'adjusted f1 after grid search', '%.5f' % calc_f1(labels, np.concatenate(grids_logits_adjusted_predict_list, 0)))\n\n  results = np.concatenate(results_list, 0)\n  results = results.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]) \n  #factor =  FLAGS.logits_factor / sum_weights\n  #print('%-40s' % '* factor loss', '%.5f' % calc_loss(labels, gezi.softmax(results * factor)))\n  print('%-40s' % 'loss', '%.5f' % calc_loss(labels, gezi.softmax(results)))\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble-cv-v1.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:0num_classes:21.026718\n#   \\Description   ensemble by OOF score blend per attribute\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', True, '')\nflags.DEFINE_bool('grid_search', True, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_string('idir', '.', '')\nflags.DEFINE_float('norm_factor', 0.0001, 'attr weights used norm factor')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\nflags.DEFINE_float('thre', 0.6, '')\nflags.DEFINE_string('weight_by', 'adjusted_f1', '')\nflags.DEFINE_integer('num_grids', 10, '')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\nflags.DEFINE_integer('seed', None, '')\nflags.DEFINE_integer('num_valid', 3000, '')\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\nimport gezi\nfrom tqdm import tqdm\nimport math\nfrom scipy.stats import rankdata\n\nDEBUG = 0\nidir = '.'\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\n\nnum_ensembles = 0\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef calc_f1(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n    #f1_scores[i].append(f1)\n  f1 = np.mean(f1_list)\n  return f1 \n\ndef calc_f1s(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n  return np.array(f1_list)\n\ndef calc_losses(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.array(losses)\n\ndef calc_aucs(labels, predicts):\n  aucs_list = []\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n  return np.array(aucs_list)\n\ndef calc_f1_alls(labels, predicts):\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    scores = f1_score(labels[:,i], predicts[:,i], average=None)\n    class_f1 += scores\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n  return f1, f1_list, class_f1\n\nclass_weights_path = './class_weights.npy'\nif not os.path.exists(class_weights_path):\n  class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n# class_weights is per class(na, neg, neu, pos) weight\nclass_weights = np.load(class_weights_path)\n#print('class_weights', class_weights)\n\nif FLAGS.adjust:\n  for i in range(len(class_weights)):\n    for j in range(4):\n      #class_weights[i][j] = math.log(class_weights[i][j])\n      #class_weights[i] = gezi.softmax(class_weights[i])\n      #class_weights[i][j] +=  math.sqrt(class_weights[i][j])\n      #class_weights[i][j] += 0.\n      #class_weights[i][j] = math.sqrt(class_weights[i][j])\n      x = class_weights[i][j]\n      # If using prob adjust just set x for logits seems x^3 better\n      #class_weights[i][j] = x \n      # well this make single model adjusted f1 improve by adding 100...\n      #class_weights[i][j] = x * x * x + 100\n      class_weights[i][j] = x * x * x \n\n    #if FLAGS.more_adjust:\n    #  #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    #  class_weights[1][-2] = class_weights[1][-2] * 1.2\n    #  class_weights[-2][0] = class_weights[-2][0] * 1.2\n\n  if FLAGS.more_adjust:\n    #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    # pow(1.2, 22) 55.2061438912436 \n    class_weights[1][-2] = class_weights[1][-2] * pow(1.2, 22)\n    ## 22.63\n    #x = pow(1.2, 18)  \n    ## * 22644.802257413307\n    #class_weights[-2][0] = class_weights[-2][0] * x * x * x * 1.2\n    class_weights[-2][0] = class_weights[-2][0] * 60000\n      # for i in range(len(class_weights)):\n      #   for j in range(4):\n      #     class_weights[i][j] /= np.sum(class_weights[i])\n\n    #class_weights = gezi.softmax(class_weights)\n  else:\n    class_weights = np.ones_like(class_weights)\nprint('class_weights', class_weights)\n\ndef to_predict(logits, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_attrs, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust and FLAGS.adjust or FLAGS.grid_search:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights\n  else:\n    probs = logits\n\n  probs = np.reshape(probs, [-1, num_classes])\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  result = np.reshape(result, [-1, num_attrs])\n  return result\n\ndef blend_weights(weights, norm_facotr):\n  for i in range(num_attrs):\n    #weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    #min_ws = np.min(ws)\n    #max_ws = np.max(ws)\n    #gap = max_ws - min_ws\n    #if gap > 0:\n    #  for j in range(len(weights)):\n    #    weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n    ranked = rankdata(ws)\n    sum_rank = np.sum(ranked)\n    for j in range(len(weights)):\n      weights[j][i] = ranked[j] / sum_rank\n\ndef get_counts(probs):\n  predicts = np.argmax(probs, 1)\n  counts = np.zeros(4)\n  for predict in predicts:\n    counts[predict] += 1\n  return counts\n\ndef adjust_probs(probs, labels):\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  probs[:, 1][-2] *= 10\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n  probs[:, -2][0] *= 100000\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n\n# TODO FIXME pymp not work class factors seems not locked...\nimport pymp\n#class_factors = pymp.shared.array((num_attrs, num_classes), dtype='float') + 1.\n# class factors is per class dynamic adjust for class weights\n\nfrom multiprocessing import Manager \nmanager = Manager() \nclass_factors_dict = manager.dict()\ndef grid_search_class_factors(probs, labels, weights, num_grids=10):\n  global class_factors\n  with pymp.Parallel(12) as p:\n    for i in tqdm(p.range(num_attrs), ascii=True):\n    #for i in p.range(num_attrs):\n      #p.print(i, ATTRIBUTES[i])\n      #p.print('init counts:', get_counts(probs[:, i]))\n      index = np.argsort(-np.array(weights[i]))\n      def is_ok(factor):\n        return np.sum(np.argsort(-factor) == index) == 4\n      best = 0\n      for a in tqdm(range(1,1 + num_grids), ascii=True):\n      #for a in(range(1,1 + num_grids)):\n        for b in range(1,1 + num_grids):\n          for c in range(1,1 + num_grids):\n            for d in range(1,1 + num_grids):\n              factor = np.array([a, b, c, d], dtype=np.float)\n              factor2 = factor * weights[i]\n              if not is_ok(factor2):\n                continue\n              preds = probs[:, i] * factor2 \n              f1 = f1_score(labels[:, i] + 2, np.argmax(preds, 1), average='macro')\n              if f1 > best:\n                #p.print('\\n', ATTRIBUTES[i], factor, factor2, f1)\n                best = f1\n                #class_factors[i] = factor\n                class_factors_dict[i] = factor\n                #p.print('counts:', get_counts(probs[:, i] * factor))\n                #p.print('class_factors', i, class_factors_dict[i])\n\n  class_factors = np.ones([num_attrs, num_classes])\n  for i in range(num_attrs):\n    class_factors[i] = class_factors_dict[i]\n  return class_factors\n\nnum_train = 15000 - FLAGS.num_valid\n\ndef main(_):\n  print('METHOD:', FLAGS.method)\n  print('Norm factor:', FLAGS.norm_factor) \n\n  # if FLAGS.grid_search:\n  #   FLAGS.debug = False\n\n  DEBUG = FLAGS.debug \n  idir = FLAGS.idir\n\n  # first id, sencod content ..\n  idx = 2\n\n  # logits sum results\n  results = None\n  # prob sum results\n  results2 = None\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  valid_files = [x for x in valid_files if not 'ensemble' in x]\n  \n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.csv.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n    infer_files = [x for x in infer_files if not 'ensemble' in x]\n\n  print('num_ensembles', len(valid_files))\n  print('num_infers', len(infer_files))\n    \n  assert len(valid_files) == len(infer_files), infer_files\n\n  global num_ensembles\n  num_ensembles = len(valid_files)\n\n  # need global ? even only read?\n  global class_weights\n  #print('-----------', class_weights)\n\n  def sort_table(df, randomize, key='id'):\n    df_list = []\n    for i in randomize:\n      df_list.append(df[df[key] == i])\n    return pd.concat(df_list)\n\n  randomize = None\n  # weights is for per model weight\n  weights = [] \n  scores_list = []\n  valid_files_ = []\n  for fid, file_ in enumerate(valid_files):\n    df = pd.read_csv(file_)\n    # if fid != len(valid_files) - 1:\n    #   df = df.drop(['content'])\n    #df= df.sort_values('id')\n    if randomize is None:\n      np.random.seed(FLAGS.seed)\n      randomize = np.arange(len(df))\n      np.random.shuffle(randomize) \n    df['id2'] = randomize\n    #df = sort_table(df, randomize)\n    df = df.sort_values('id2')\n\n    labels = df.iloc[:,idx:idx+num_attrs].values\n    predicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n    scores = df['score']\n    scores = [parse(score) for score in scores] \n    scores = np.array(scores)\n    scores_list.append(scores)\n    #f1 = calc_f1(labels, predicts) \n    #f1 = calc_f1(labels, to_predict(scores)) \n    #f1s = calc_f1s(labels, predicts) \n    ## to_predict better \n    # f1_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.npy'\n    # f1_adjusted_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.adjust.npy'\n    # if not os.path.exists(f1_file):\n\n    valid_labels = labels[num_train:]\n    labels =  labels[:num_train]\n    predicts = predicts[:num_train]\n    scores = scores[:num_train]\n\n    f1s = calc_f1s(labels, predicts)\n    f1s_adjusted = calc_f1s(labels, to_predict(scores, is_single=True))\n\n    probs = gezi.softmax(scores.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]))\n    aucs = calc_aucs(labels + 2, probs)\n    losses = calc_losses(labels + 2, probs)\n      # np.save(f1_file, f1s)\n      # np.save(f1_adjusted_file, f1s_adjusted)\n    # else:\n    #   f1s = np.load(f1_file)\n    #   f1s_adjusted = np.load(f1_adjusted_file)\n    f1 = np.mean(f1s)\n    f1_adjusted = np.mean(f1s_adjusted)\n    \n    print(fid, file_, f1, f1_adjusted, np.mean(aucs), np.mean(losses)) \n    if f1_adjusted < FLAGS.thre:\n     print('ignore', file_)\n     continue\n    else:\n     valid_files_.append(file_)\n    \n    # NOTICE weighted can get 7186 while avg only 716\n    # and using original f1s score higher\n    #weight = np.reshape(f1s, [num_attrs, 1])\n    \n    #weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n    \n    #weight = np.reshape(aucs, [num_attrs, 1])\n    if FLAGS.weight_by == 'loss':\n      weight = np.reshape(1 / losses, [num_attrs, 1])\n    elif FLAGS.weight_by == 'auc':\n      weight = np.reshape(aucs, [num_attrs, 1])\n    else:\n      weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n\n    weights.append(weight) \n\n  weights = np.array(weights)\n  scores_list = np.array(scores_list)\n\n  blend_weights(weights, FLAGS.norm_factor)\n\n  # if DEBUG:\n  #   print(weights)\n\n  valid_files = valid_files_\n  print('final num valid files', len(valid_files))\n\n  for fid in tqdm(range(len(valid_files)), ascii=True):\n    scores = scores_list[fid]\n    if results is None:\n      results = np.zeros([len(scores), num_attrs * num_classes])\n      results2 = np.zeros([len(scores), num_attrs * num_classes])\n    weight = weights[fid]\n    if FLAGS.method == 'avg' or FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(score, [num_attrs, num_classes]) * weight\n      score = np.reshape(score, [-1])\n    \n      results[i] += score\n\n      # notice softmax([1,2]) = [0.26894142, 0.73105858] softmax([2,4]) = [0.11920292, 0.88079708]\n      score = np.reshape(score, [num_attrs, num_classes])\n      \n      # this not work because *weight already..\n      #score *= FLAGS.logits_factor\n      \n      score = gezi.softmax(score, -1)\n      \n      #score *= class_weights\n\n      score = np.reshape(score, [-1])\n      \n      results2[i] += score \n\n  sum_weights = np.sum(weights, 0)\n\n  adjusted_f1 = calc_f1(valid_labels, to_predict(results[num_train:], sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(valid_labels, predicts[num_train:])\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  adjusted_f1_prob = calc_f1(valid_labels, to_predict(results2[num_train:], sum_weights, adjust=False))\n  results2 = np.reshape(results2, [-1, num_attrs, num_classes]) \n  predicts2 = np.argmax(results2, -1) - 2\n  f1_prob = calc_f1(valid_labels, predicts2[num_train:])\n\n  print('-----------using prob ensemble')\n  print('f1_prob:', f1_prob)\n  print('adjusted f1_prob:', adjusted_f1_prob)\n\n  print('-----------detailed f1 infos (ensemble by prob)')\n  _, adjusted_f1_probs, class_f1s = calc_f1_alls(valid_labels, to_predict(results2[num_train:], sum_weights, adjust=False))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1_probs[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(valid_labels, to_predict(results[num_train:], sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n\n  class_factors = np.ones([num_attrs, num_classes])\n  if FLAGS.grid_search:\n    class_factors = grid_search_class_factors(gezi.softmax(np.reshape(results[:num_train], [-1, num_attrs, num_classes]) * (FLAGS.logits_factor / sum_weights)), labels, class_weights, num_grids=FLAGS.num_grids)\n      \n  print('class_factors1')\n  print(class_factors)\n\n  # adjust class weights to get better result from grid search \n  class_weights = class_weights * class_factors\n\n  print('after dynamic adjust class factors')\n  adjusted_f1 = calc_f1(valid_labels, to_predict(results[num_train:], sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(valid_labels, predicts[num_train:])\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(valid_labels, to_predict(results[num_train:], sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble-cv.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:0num_classes:21.026718\n#   \\Description   ensemble by OOF score blend per attribute\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', True, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_string('idir', '.', '')\nflags.DEFINE_float('norm_factor', 0.0001, 'attr weights used norm factor')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\nflags.DEFINE_string('weight_by', 'adjusted_f1', '')\nflags.DEFINE_integer('num_grids', 0, '')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\nflags.DEFINE_integer('seed', 10240, '')\nflags.DEFINE_integer('num_folds', 1, '')\nflags.DEFINE_bool('show_detail', False, '')\nflags.DEFINE_bool('infer', False, '')\nflags.DEFINE_string('blend', 'rank', 'blend by rank or by weight')\nflags.DEFINE_bool('minmax_scale', False, '')\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\nimport gezi\nfrom tqdm import tqdm\nimport math\nfrom scipy.stats import rankdata\n\nfrom sklearn.model_selection import KFold\nfrom sklearn.metrics import confusion_matrix\n\nDEBUG = 0\nidir = '.'\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\n\nnum_ensembles = 0\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef calc_f1(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n    #f1_scores[i].append(f1)\n  f1 = np.mean(f1_list)\n  return f1 \n\ndef calc_f1s(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n  return np.array(f1_list)\n\ndef calc_losses(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.array(losses)\n\ndef calc_loss(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.mean(losses)\n\ndef calc_aucs(labels, predicts):\n  aucs_list = []\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n  return np.array(aucs_list)\n\ndef calc_f1_alls(labels, predicts):\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    scores = f1_score(labels[:,i], predicts[:,i], average=None)\n    class_f1 += scores\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n  return f1, f1_list, class_f1\n\nclass_weights_path = './class_weights.npy'\nif not os.path.exists(class_weights_path):\n  class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n# class_weights is per class(na, neg, neu, pos) weight\nclass_weights = np.load(class_weights_path)\n#print('class_weights', class_weights)\n\nif FLAGS.adjust:\n  for i in range(len(class_weights)):\n    for j in range(4):\n      #class_weights[i][j] = math.log(class_weights[i][j])\n      #class_weights[i] = gezi.softmax(class_weights[i])\n      #class_weights[i][j] +=  math.sqrt(class_weights[i][j])\n      #class_weights[i][j] += 0.\n      #class_weights[i][j] = math.sqrt(class_weights[i][j])\n      x = class_weights[i][j]\n      # If using prob adjust just set x for logits seems x^3 better\n      #class_weights[i][j] = x \n      # well this make single model adjusted f1 improve by adding 100...\n      #class_weights[i][j] = x * x * x + 100\n      class_weights[i][j] = x * x * x \n\n    #if FLAGS.more_adjust:\n    #  #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    #  class_weights[1][-2] = class_weights[1][-2] * 1.2\n    #  class_weights[-2][0] = class_weights[-2][0] * 1.2\n\n  if FLAGS.more_adjust:\n    #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    #class_weights[0][-2] = class_weights[1][-2] * 10.\n    # pow(1.2, 22) 55.2061438912436 \n    class_weights[1][-2] = class_weights[1][-2] * pow(1.2, 22)\n    #class_weights[1][1] = class_weights[1][-2] * 10\n    ## 22.63\n    #x = pow(1.2, 18)  \n    ## * 22644.802257413307\n    #class_weights[-2][0] = class_weights[-2][0] * x * x * x * 1.2\n    class_weights[-2][0] = class_weights[-2][0] * 60000\n    #class_weights[-2][1] = class_weights[-2][1] * 2\n      # for i in range(len(class_weights)):\n      #   for j in range(4):\n      #     class_weights[i][j] /= np.sum(class_weights[i])\n\n    #class_weights = gezi.softmax(class_weights)\n  else:\n    class_weights = np.ones_like(class_weights)\nprint('class_weights\\n', class_weights)\nori_class_weights = class_weights\n\ndef to_predict(logits, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_attrs, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust and FLAGS.adjust or FLAGS.num_grids:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights\n  else:\n    probs = logits\n\n  probs = np.reshape(probs, [-1, num_classes])\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  result = np.reshape(result, [-1, num_attrs])\n  return result\n\ndef blend_byrank(weights, norm_facotr):\n  for i in range(num_attrs):\n    #weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    #min_ws = np.min(ws)\n    #max_ws = np.max(ws)\n    #gap = max_ws - min_ws\n    #if gap > 0:\n    #  for j in range(len(weights)):\n    #    weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n    ranked = rankdata(ws)\n    sum_rank = np.sum(ranked)\n    for j in range(len(weights)):\n      weights[j][i] = ranked[j] / sum_rank\n\n  #print(np.sum(weights, 0))\n  return weights\n\ndef blend_byweight(weights, norm_facotr):\n  for i in range(num_attrs):\n    if FLAGS.minmax_scale:\n      weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    min_ws = np.min(ws)\n    max_ws = np.max(ws)\n    gap = max_ws - min_ws\n    if gap > 0:\n     for j in range(len(weights)):\n       weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n\n  sum_weights = np.sum(weights, 0)\n  # return new weights...\n  weights = weights / sum_weights\n\n  #print(np.sum(weights, 0))\n  return weights\n\ndef blend(weights, norm_factor):\n  if FLAGS.blend == 'rank':\n    print('blend by rank')\n    return blend_byrank(weights, norm_factor)\n  else:\n    print('blend by weight')\n    return blend_byweight(weights, norm_factor)\n\ndef get_counts(probs):\n  predicts = np.argmax(probs, 1)\n  counts = np.zeros(4)\n  for predict in predicts:\n    counts[predict] += 1\n  return counts\n\ndef adjust_probs(probs, labels):\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  probs[:, 1][-2] *= 10\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n  probs[:, -2][0] *= 100000\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n\n# TODO FIXME pymp not work class factors seems not locked...\nimport pymp\n#class_factors = pymp.shared.array((num_attrs, num_classes), dtype='float') + 1.\n# class factors is per class dynamic adjust for class weights\nfrom multiprocessing import Manager \n\ndef grid_search_class_factors(probs, labels, weights, num_grids=10):\n  manager = Manager() \n  class_factors_dict = manager.dict()\n  with pymp.Parallel(12) as p:\n    for i in tqdm(p.range(num_attrs), ascii=True):\n    #for i in p.range(num_attrs):\n      #p.print(i, ATTRIBUTES[i])\n      #p.print('init counts:', get_counts(probs[:, i]))\n      index = np.argsort(-np.array(weights[i]))\n      def is_ok(factor):\n        return np.sum(np.argsort(-factor) == index) == 4\n      best = 0\n      for a in tqdm(range(1,1 + num_grids), ascii=True):\n      #for a in(range(1,1 + num_grids)):\n        for b in range(1,1 + num_grids):\n          for c in range(1,1 + num_grids):\n            for d in range(1,1 + num_grids):\n              factor = np.array([a, b, c, d], dtype=np.float)\n              factor2 = factor * weights[i]\n              if not is_ok(factor2):\n                continue\n              preds = probs[:, i] * factor2 \n              f1 = f1_score(labels[:, i] + 2, np.argmax(preds, 1), average='macro')\n              if f1 > best:\n                #p.print('\\n', ATTRIBUTES[i], factor, factor2, f1)\n                best = f1\n                #class_factors[i] = factor\n                class_factors_dict[i] = factor\n                #p.print('counts:', get_counts(probs[:, i] * factor))\n                #p.print('class_factors', i, class_factors_dict[i])\n\n  class_factors = np.ones([num_attrs, num_classes])\n  for i in range(num_attrs):\n    class_factors[i] = class_factors_dict[i]\n  return class_factors\n\ndef get_distribution(predicts):\n  counts = np.zeros([len(ATTRIBUTES), 4], dtype=np.int64)\n  for predict in predicts:\n    for i, p in enumerate(predict):\n      counts[i][p + 2] += 1\n  return counts\n\ndef print_confusion_matrix(labels, predicts):\n  for i, attr in enumerate(ATTRIBUTES):\n    print(i, '%-40s' % attr)\n    print(confusion_matrix(labels[:, i] + 2, predicts[:, i] + 2))\n\ndef main(_):\n  print('METHOD:', FLAGS.method)\n  print('Norm factor:', FLAGS.norm_factor) \n\n  DEBUG = FLAGS.debug \n  idir = FLAGS.idir\n\n  if not DEBUG:\n    FLAGS.infer = True\n    FLAGS.num_folds = 1\n    #FLAGS.num_grids = 10 \n\n  # first id, sencod content ..\n  idx = 2\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  valid_files = [x for x in valid_files if not 'ensemble' in x]\n  \n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.csv.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n    infer_files = [x for x in infer_files if not 'ensemble' in x]\n\n  print('num_ensembles', len(valid_files), 'num_infers', len(infer_files))    \n  assert len(valid_files) == len(infer_files), infer_files\n\n  global num_ensembles\n  num_ensembles = len(valid_files)\n\n  # need global ? even only read?\n  global class_weights\n  #print('-----------', class_weights)\n\n  print('loading all valid csv')\n  dfs = []\n  for file_ in tqdm(valid_files, ascii=True):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    dfs.append(df)\n\n  if FLAGS.num_folds > 1:\n    kf = KFold(n_splits=FLAGS.num_folds, shuffle=True, random_state=FLAGS.seed)\n    dataset = kf.split(dfs[0])\n  else:\n    ids = dfs[0]['id'].values\n    dataset = [(ids, ids)]\n  \n  logits_f1_list = []\n  logits_adjusted_f1_list = []\n  probs_f1_list = []\n  probs_adjusted_f1_list = []\n  grids_logits_adjusted_f1_list = []\n\n  logits_predict_list = []\n  logits_adjusted_predict_list = []\n  probs_predict_list = []\n  probs_adjusted_predict_list = []\n  grids_logits_adjusted_predict_list = []\n\n  labels_list = []\n  results_list = []\n\n  def split_train_valid(x):\n    if FLAGS.num_folds == 1:\n      return x, x \n    else:\n      total = 15000\n      assert total % FLAGS.num_folds == 0\n      num_valid = int(total / FLAGS.num_folds) \n      num_train = total - num_valid\n      return x[:num_train], x[num_train:]\n\n  for fold, (train_index, valid_index) in enumerate(dataset):\n    print('FOLD_%s---------------------------' % fold)\n    print('train:', train_index,  'valid:', valid_index)\n    class_factors = np.ones([num_attrs, num_classes])\n    class_weights = ori_class_weights\n    # logits sum results\n    results = None\n    # prob sum results\n    results2 = None\n\n    weights = [] \n    scores_list = []\n\n    for fid, df in enumerate(dfs):\n      file_ = valid_files[fid]\n      train = df.iloc[train_index]\n      valid =  df.iloc[valid_index]\n      #if fid == 0:      \n      train_labels = train.iloc[:, idx:idx+num_attrs].values\n      valid_labels = valid.iloc[:, idx:idx+num_attrs].values\n      labels = np.concatenate([train_labels, valid_labels], 0)\n      train_predicts = train.iloc[:, idx+num_attrs:idx+2*num_attrs].values\n      valid_predicts = valid.iloc[:, idx+num_attrs:idx+2*num_attrs].values\n      predicts = np.concatenate([train_predicts, valid_predicts], 0)\n      train_scores = train['score']\n      valid_scores = valid['score']\n      scores = np.concatenate([train_scores, valid_scores], 0)\n      scores = [parse(score) for score in scores] \n      scores = np.array(scores)\n      scores_list.append(scores)     \n\n      train_labels, valid_labels = split_train_valid(labels)\n      train_predicts, valid_predicts = split_train_valid(predicts)\n      train_scores, valid_scores = split_train_valid(scores)\n  \n      f1s = calc_f1s(train_labels, train_predicts)\n      f1s_adjusted = calc_f1s(train_labels, to_predict(train_scores, is_single=True))\n\n      train_probs = gezi.softmax(train_scores.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]))\n      aucs = calc_aucs(train_labels + 2, train_probs)\n      losses = calc_losses(train_labels + 2, train_probs)\n\n      f1 = np.mean(f1s)\n      f1_adjusted = np.mean(f1s_adjusted)\n      \n      print('%-3d' % fid, '%-100s' % file_, '%.5f' % f1, '%.5f' % f1_adjusted, '%.5f' % np.mean(aucs), '%.5f' % np.mean(losses)) \n      \n      if FLAGS.weight_by == 'loss':\n        weight = np.reshape(1 / losses, [num_attrs, 1])\n      elif FLAGS.weight_by == 'auc':\n        weight = np.reshape(aucs, [num_attrs, 1])\n      else:\n        weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n\n      weights.append(weight) \n\n    weights = np.array(weights)\n    scores_list = np.array(scores_list)\n\n    weights = blend(weights, FLAGS.norm_factor)\n    sum_weights = np.sum(weights, 0)\n\n    # print('weights\\n', weights)\n    # print('sum_weights\\n', sum_weights)\n\n    # if DEBUG:\n    #   print(weights)\n    print('-----------calc weight and score')\n    for fid in tqdm(range(len(valid_files)), ascii=True):\n      scores = scores_list[fid]\n      if results is None:\n        results = np.zeros([len(scores), num_attrs * num_classes])\n        results2 = np.zeros([len(scores), num_attrs * num_classes])\n      weight = weights[fid]\n      #print(fid, valid_files[fid], '\\n', ['%.5f' % x for x in np.reshape(weight, [-1])])\n      if FLAGS.method == 'avg' or FLAGS.method == 'mean': \n        weight = 1.\n      for i, score in enumerate(scores):\n        score = np.reshape(score, [num_attrs, num_classes]) * weight\n        score = np.reshape(score, [-1])\n      \n        results[i] += score\n\n        # notice softmax([1,2]) = [0.26894142, 0.73105858] softmax([2,4]) = [0.11920292, 0.88079708]\n        score = np.reshape(score, [num_attrs, num_classes])\n        \n        # this not work because *weight already..\n        #score *= FLAGS.logits_factor\n        \n        score = gezi.softmax(score, -1)\n        \n        #score *= class_weights\n\n        score = np.reshape(score, [-1])\n        \n        results2[i] += score \n\n    train_results, valid_results = split_train_valid(results)\n    train_results2, valid_results2 = split_train_valid(results2)\n\n    print('-----------using prob ensemble')\n    adjusted_predict_prob = to_predict(valid_results2, sum_weights, adjust=False)\n    adjusted_f1_prob = calc_f1(valid_labels, adjusted_predict_prob)\n    valid_results2 = np.reshape(valid_results2, [-1, num_attrs, num_classes]) \n    predicts2 = np.argmax(valid_results2, -1) - 2\n    f1_prob = calc_f1(valid_labels, predicts2)\n\n    probs_f1_list.append(f1_prob)\n    probs_adjusted_f1_list.append(adjusted_f1_prob)\n    \n    probs_predict_list.append(predicts2)\n    probs_adjusted_predict_list.append(adjusted_predict_prob)\n    \n    print('%-40s' % 'f1_prob:', '%.5f' % f1_prob)\n    print('%-40s' % 'adjusted f1_prob:', '%.5f' % adjusted_f1_prob)\n\n    # print('-----------detailed f1 infos (ensemble by prob)')\n    # _, adjusted_f1_probs, class_f1s = calc_f1_alls(valid_labels, to_predict(results2[num_train:], sum_weights, adjust=False))\n\n    # for i, attr in enumerate(ATTRIBUTES):\n    #   print(attr, adjusted_f1_probs[i])\n    # for i, cls in enumerate(CLASSES):\n    #   print(cls, class_f1s[i])\n\n    print('-----------using logits ensemble')\n    adjusted_predict = to_predict(valid_results, sum_weights)\n    adjusted_f1 = calc_f1(valid_labels, adjusted_predict)\n    valid_results = np.reshape(valid_results, [-1, num_attrs, num_classes]) \n    predicts = np.argmax(valid_results, -1) - 2\n    f1 = calc_f1(valid_labels, predicts)\n\n    logits_f1_list.append(f1)\n    logits_adjusted_f1_list.append(adjusted_f1)\n\n    logits_predict_list.append(predicts)\n    logits_adjusted_predict_list.append(adjusted_predict)\n\n    results_list.append(valid_results)\n    labels_list.append(valid_labels)\n    \n    print('%-40s' % 'f1:', '%.5f' % f1)\n    print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n    if FLAGS.show_detail:\n      print('-----------detailed f1 infos (ensemble by logits)')\n      _, adjusted_f1s, class_f1s = calc_f1_alls(valid_labels, to_predict(valid_results, sum_weights))\n      for i, attr in enumerate(ATTRIBUTES):\n        print('%-40s' % attr, '%.5f' % adjusted_f1s[i])\n      for i, cls in enumerate(CLASSES):\n        print('%-40s' % cls, '%.5f' % class_f1s[i])\n\n    print('%-40s' % 'f1:', '%.5f' % f1)\n    print('%-40s' % 'f1 prob:', '%.5f' % f1_prob)\n    print('%-40s' % 'adjusted f1 prob:', '%.5f' % adjusted_f1_prob)\n    print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n    if FLAGS.num_grids:\n      print('------------grid search num_grids', FLAGS.num_grids)\n      class_factors = grid_search_class_factors(gezi.softmax(np.reshape(train_results, [-1, num_attrs, num_classes]) * (FLAGS.logits_factor / sum_weights)), train_labels, class_weights, num_grids=FLAGS.num_grids)\n        \n      if FLAGS.show_detail:\n        print('class_factors1 with num_grids', FLAGS.num_grids)\n        print(class_factors)\n\n      # adjust class weights to get better result from grid search \n      class_weights = class_weights * class_factors\n\n      adjusted_f1_before_grids = adjusted_f1\n      print('after dynamic adjust class factors')\n      adjusted_predict = to_predict(valid_results, sum_weights)\n      adjusted_f1 = calc_f1(valid_labels, adjusted_predict)\n      valid_results = np.reshape(valid_results, [-1, num_attrs, num_classes]) \n\n      grids_logits_adjusted_f1_list.append(adjusted_f1)  \n      grids_logits_adjusted_predict_list.append(adjusted_predict)\n\n      print('-----------using logits ensemble')\n      print('%-40s' % 'adjusted f1 before grids:', '%.5f' % adjusted_f1_before_grids)\n      print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n      if FLAGS.show_detail:\n        print('-----------detailed f1 infos (ensemble by logits)')\n        _, adjusted_f1s, class_f1s = calc_f1_alls(valid_labels, to_predict(valid_results, sum_weights))\n        for i, attr in enumerate(ATTRIBUTES):\n          print('%-40s' % attr, '%.5f' % adjusted_f1s[i])\n        for i, cls in enumerate(CLASSES):\n          print('%-40s' % cls, '%.5f' % class_f1s[i])\n      print('%-40s' % 'adjusted f1 before grids:', '%.5f' % adjusted_f1_before_grids)\n      print('%-40s' % 'adjusted f1:', '%.5f' % adjusted_f1)\n\n  # print('-------------------------------------OVERALL mean')\n  # print('ensemble by probs')\n  # print('%-40s' % 'f1', '%.5f' % np.mean(probs_f1_list))\n  # print('%-40s' % 'adjustedf f1', '%.5f' % np.mean(probs_adjusted_f1_list))\n  \n  # print('ensemble by logits')\n  # print('%-40s' % 'f1:', '%.5f' % np.mean(logits_f1_list))\n  # print('%-40s' % 'adjusted f1:', '%.5f' % np.mean(logits_adjusted_f1_list))\n\n  # if FLAGS.num_grids:\n  #   print('ensemble by logits after grid search')\n  #   print('%-40s' % 'adjusted f1', '%.5f' % np.mean(grids_logits_adjusted_f1_list))\n\n  print('-------------------------------------OVERALL recalc')\n  labels = np.concatenate(labels_list, 0)\n  print('ensemble by probs')\n  print('%-40s' % 'f1', '%.5f' % calc_f1(labels, np.concatenate(probs_predict_list, 0)))\n  print('%-40s' % 'adjustedf f1', '%.5f' % calc_f1(labels, np.concatenate(probs_adjusted_predict_list, 0)))\n\n  print('ensemble by logits')\n  predicts = np.concatenate(logits_predict_list, 0)\n  print('%-40s' % 'f1:', '%.5f' % calc_f1(labels, predicts))\n  adjusted_predicts = np.concatenate(logits_adjusted_predict_list, 0)\n  print('%-40s' % 'adjusted f1:', '%.5f' % calc_f1(labels, adjusted_predicts))\n\n  if FLAGS.num_grids:\n    print('ensemble by logits after grid search')\n    grids_predicts = np.concatenate(grids_logits_adjusted_predict_list, 0)\n    print('%-40s' % 'adjusted f1 after grid search', '%.5f' % calc_f1(labels, grids_predicts))\n\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, adjusted_predicts)\n  for i, attr in enumerate(ATTRIBUTES):\n    print('%-40s' % attr, '%.5f' % adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print('%-40s' % cls, '%.5f' % class_f1s[i])\n  print('%-40s' % 'f1', '%.5f' % calc_f1(labels, predicts))\n  print('%-40s' % 'adjusted f1', '%.5f' % calc_f1(labels, adjusted_predicts))\n  if FLAGS.num_grids:\n    print('%-40s' % 'adjusted f1 after grid search', '%.5f' % calc_f1(labels, grids_predicts))\n\n  results = np.concatenate(results_list, 0)\n  results = results.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]) \n  #factor =  FLAGS.logits_factor / sum_weights\n  #print('%-40s' % '* factor loss', '%.5f' % calc_loss(labels, gezi.softmax(results * factor)))\n  ## directly do softmax on results since sum weights is 1\n  loss = calc_loss(labels, gezi.softmax(results))\n  print('%-40s' % 'loss', '%.5f' % loss)\n\n  print('f1:class predictions distribution')\n  counts = get_distribution(predicts)\n  for attr, count in zip(ATTRIBUTES, counts):\n    print('%-40s' % attr, ['%.5f' % (x / len(predicts)) for x in count])\n  #print_confusion_matrix(labels, predicts)\n\n  print('adjusted f1:class predictions distribution')\n  counts = get_distribution(adjusted_predicts)\n  for attr, count in zip(ATTRIBUTES, counts):\n    print('%-40s' % attr, ['%.5f' % (x / len(predicts)) for x in count])\n  #print_confusion_matrix(labels, adjusted_predicts)\n\n  if FLAGS.num_grids:\n    print('adjusted f1:class predictions distribution after grids search')\n    counts = get_distribution(grids_predicts)\n    for attr, count in zip(ATTRIBUTES, counts):\n      print('%-40s' % attr, ['%.5f' % (x / len(grids_predicts)) for x in count])\n    #print_confusion_matrix(labels, grids_predicts)\n\n  DEBUG = FLAGS.debug\n  if FLAGS.infer:\n    print('------------infer')\n    ofile = os.path.join(idir, 'ensemble.infer.csv')\n    file_ = gezi.strip_suffix(file_, '.debug')\n    df = pd.read_csv(file_)\n\n    idx = 2\n    results = None\n    results2 = None\n    for fid, file_ in enumerate(infer_files):\n      df = pd.read_csv(file_)\n      df = df.sort_values('id')\n      print(fid, file_, len(df))\n      if not FLAGS.debug:\n        assert len(df) == 200000\n      if results is None:\n        results = np.zeros([len(df), num_attrs * num_classes])\n        results2 = np.zeros([len(df), num_attrs * num_classes])\n      scores = df['score']\n      scores = [parse(score) for score in scores]\n      scores = np.array(scores) \n      weight = weights[fid] \n      if FLAGS.method == 'avg' and FLAGS.method == 'mean': \n        weight = 1.\n      for i, score in enumerate(scores):\n        score = np.reshape(np.reshape(score, [num_attrs, num_classes]) * weight, [-1])\n        results[i] += score\n        score = gezi.softmax(np.reshape(score, [num_attrs, num_classes]), -1)\n        score = np.reshape(score, [-1])\n        results2[i] += score \n\n    #predicts = to_predict(results2, sum_weights)\n    predicts = to_predict(results, sum_weights)\n\n    counts = get_distribution(predicts)\n    for attr, count in zip(ATTRIBUTES, counts):\n      print('%-40s' % attr, ['%.5f' % (x / len(predicts)) for x in count])\n\n    if not DEBUG:\n      columns = df.columns[idx:idx + num_attrs].values\n    else:\n      columns = df.columns[idx + num_attrs:idx + 2 * num_attrs].values\n\n    if not DEBUG:\n      ofile = os.path.join(idir, 'ensemble.infer.csv')\n    else:\n      ofile = os.path.join(idir, 'ensemble.valid.csv')\n\n    if not DEBUG:\n      file_ = gezi.strip_suffix(file_, '.debug')\n      print('temp csv using for write', file_)\n      df = pd.read_csv(file_)\n    else:\n      print('debug test using file', valid_files[-1])\n      df = pd.read_csv(valid_files[-1])\n\n    # for safe must sort id\n    df = df.sort_values('id')\n\n    # TODO better ? not using loop ?\n    for i, column in enumerate(columns):\n      df[column] = predicts[:, i]\n\n    if DEBUG:\n      print('check blend result', calc_f1(df.iloc[:, idx:idx + num_attrs].values, predicts))\n    print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n    print(f'adjusted f1:[{adjusted_f1}]')\n    print(f'loss:[{loss}]')\n\n    print('out:', ofile)\n    if not DEBUG:\n      df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\n    print('---------------results', results.shape)\n    df['score'] = [x for x in results] \n\n    if not DEBUG:\n      ofile = os.path.join(idir, 'ensemble.infer.debug.csv')\n    else:\n      ofile = os.path.join(idir, 'ensemble.valid.csv')\n    print('out debug:', ofile)\n    df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble-hillclimb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:0num_classes:21.026718\n#   \\Description   ensemble by OOF score blend per attribute\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', True, '')\nflags.DEFINE_bool('grid_search', False, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_string('idir', '.', '')\nflags.DEFINE_float('norm_factor', 0.0001, 'attr weights used norm factor')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\nflags.DEFINE_float('thre', 0.69, '')\nflags.DEFINE_string('weight_by', 'adjusted_f1', '')\nflags.DEFINE_integer('num_grids', 10, '')\nflags.DEFINE_integer('num_climbs', 25, '')\nflags.DEFINE_integer('num_train', 10000, 'num train of climbs')\nflags.DEFINE_bool('detail', False, '')\nflags.DEFINE_bool('more_adjust', True, '')\n\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\nimport gezi\nfrom tqdm import tqdm\nimport math\nfrom scipy.stats import rankdata\n\nDEBUG = 0\nidir = '.'\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nLABELS = ATTRIBUTES\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\n\nnum_ensembles = 0\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef calc_f1(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n    #f1_scores[i].append(f1)\n  f1 = np.mean(f1_list)\n  return f1 \n\ndef calc_f1s(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n  return np.array(f1_list)\n\ndef calc_losses(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.array(losses)\n\ndef calc_aucs(labels, predicts):\n  aucs_list = []\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n  return np.array(aucs_list)\n\ndef calc_f1_alls(labels, predicts):\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    scores = f1_score(labels[:,i], predicts[:,i], average=None)\n    class_f1 += scores\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n  return f1, f1_list, class_f1\n\nclass_weights_path = './class_weights.npy'\nif not os.path.exists(class_weights_path):\n  class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n# class_weights is per class(na, neg, neu, pos) weight\nclass_weights = np.load(class_weights_path)\n#print('class_weights', class_weights)\n\nfor i in range(len(class_weights)):\n  for j in range(4):\n    #class_weights[i][j] = math.log(class_weights[i][j])\n    #class_weights[i] = gezi.softmax(class_weights[i])\n    #class_weights[i][j] +=  math.sqrt(class_weights[i][j])\n    #class_weights[i][j] += 0.\n    #class_weights[i][j] = math.sqrt(class_weights[i][j])\n    x = class_weights[i][j]\n    # If using prob adjust just set x for logits seems x^3 better\n    #class_weights[i][j] = x \n    # well this make single model adjusted f1 improve by adding 100...\n    #class_weights[i][j] = x * x * x + 100\n    class_weights[i][j] = x * x * x \n\n  if FLAGS.more_adjust:\n    #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    class_weights[1][-2] = class_weights[1][-2] * 1.2\n    class_weights[-2][0] = class_weights[-2][0] * 1.2\n\n  # for i in range(len(class_weights)):\n  #   for j in range(4):\n  #     class_weights[i][j] /= np.sum(class_weights[i])\n\n#class_weights = gezi.softmax(class_weights)\nprint('class_weights', class_weights)\n\ndef to_predict(logits, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_attrs, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights\n  else:\n    probs = logits\n\n  probs = np.reshape(probs, [-1, num_classes])\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  result = np.reshape(result, [-1, num_attrs])\n  return result\n\ndef to_one_predict(logits, label, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights[label]\n  else:\n    probs = logits\n\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  return result\n\ndef blend_weights(weights, norm_facotr):\n  for i in range(num_attrs):\n    #weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    #min_ws = np.min(ws)\n    #max_ws = np.max(ws)\n    #gap = max_ws - min_ws\n    #if gap > 0:\n    #  for j in range(len(weights)):\n    #    weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n    ranked = rankdata(ws)\n    sum_rank = np.sum(ranked)\n    for j in range(len(weights)):\n      weights[j][i] = ranked[j] / sum_rank\n\n# class factors is per class dynamic adjust for class weights\ndef grid_search_class_factors(probs, labels, weights, num_grids=10):\n  class_factors = np.ones([num_attrs, num_classes])  \n  # TODO multi process\n  for i in tqdm(range(num_attrs), ascii=True):\n    print(i, ATTRIBUTES[i])\n    index = np.argsort(-np.array(weights[i]))\n    def is_ok(factor):\n      return np.sum(np.argsort(-factor) == index) == 4\n\n    best = 0\n    for a in tqdm(range(1,1 + num_grids), ascii=True):\n      for b in range(1,1 + num_grids):\n        for c in range(1,1 + num_grids):\n          for d in range(1,1 + num_grids):\n            factor = np.array([a, b, c, d], dtype=np.float)\n            factor2 = factor * weights[i]\n            if not is_ok(factor2):\n              continue\n            preds = probs[:,i] * factor2 \n            f1 = f1_score(labels[:,i] + 2, np.argmax(preds, 1), average='macro')\n            if f1 > best:\n              print('\\n', ATTRIBUTES[i], factor, factor2, f1)\n              best = f1\n              class_factors[i] = factor\n  return class_factors\n\n\n# weights is for per model weight\nweights = [] \nlabels_list = []\nscores_list = []\nvalid_files_ = []\n\n\"\"\"\nInitializes an empty ensemble\n\"\"\"\ndef init_hillclimb():\n  best_ensemble = {}\n  for label in LABELS:\n      best_ensemble[label] = []\n  best_score = {}\n  best_loss = {}\n  valid_score = {}\n  valid_loss = {}\n  for label in LABELS:\n    best_score[label] = 0\n    best_loss[label] = 1000\n    valid_score[label] = None\n    valid_loss[label] = None\n  \n  return best_ensemble, best_score, best_loss, valid_score, valid_loss\n\n\"\"\"\nScores average AUC for an ensemble per label\n\"\"\"\ndef score_ensemble(ensemble, label):\n  blend_preds = np.zeros([len(scores_list[0]), NUM_CLASSES])\n  \n  for model in ensemble:\n    scores = scores_list[model]\n    scores = np.reshape(scores, [-1, NUM_ATTRIBUTES, NUM_CLASSES])\n    scores = scores[:, label]\n    blend_preds += scores\n      \n  predict = to_one_predict(blend_preds, label, len(ensemble))\n  index = FLAGS.num_train\n  score = f1_score(labels_list[model][:, label][:index], predict[:index], average='macro')\n  probs = gezi.softmax(blend_preds / len(ensemble))\n  loss = log_loss(labels_list[model][:, label][:index], probs[:index])\n  \n  valid_score = f1_score(labels_list[model][:, label][index:], predict[index:], average='macro')\n  valid_loss = log_loss(labels_list[model][:, label][index:], probs[index:])\n  return score, loss, valid_score, valid_loss\n\n\"\"\"\nFinds the optimal model to add next to an ensemble\n\"\"\"\ndef find_best_improvement(ensemble, label):\n  best_score = 0 \n  best_loss = 1000\n  best_ensemble = []\n\n  best_valid_score = None\n  best_valid_loss = None\n  \n  for i in range(0,len(labels_list)):\n    ensemble = ensemble + [i]\n\n    score, loss, valid_score, valid_loss = score_ensemble(ensemble, label)\n    \n    if score > best_score and loss <= best_loss:\n    #if score < best_score:\n      best_score  = score\n      best_loss = loss\n      best_ensemble = ensemble\n\n      best_valid_score = valid_score \n      best_valid_loss = valid_loss\n        \n    ensemble = ensemble[:-1]\n  \n  return best_ensemble, best_score, best_loss, best_valid_score, best_valid_loss\n        \n\"\"\"\nPerforms a step for each label\n\"\"\"\ndef climb(best_ensemble, best_score, best_loss, valid_score, valid_loss):\n    for label in LABELS:        \n        best_ensemble[label], best_score[label], best_loss[label], valid_score[label], valid_loss[label] = find_best_improvement(best_ensemble[label], ATTRIBUTES.index(label))\n        \n    return best_ensemble, best_score, best_loss, valid_score, valid_loss\n\n\"\"\"\nGets optimal blending weights after hillclimb\n\"\"\"\ndef get_optimal_weights(best_ensemble):\n    weights = {}\n    for label in LABELS:\n        weights[label] = {}\n        for num in set(best_ensemble[label]):\n            weights[label][num] = best_ensemble[label].count(num)/len(best_ensemble[label])\n    return weights\n\n\ndef main(_):\n  print('METHOD:', FLAGS.method)\n  print('Norm factor:', FLAGS.norm_factor) \n\n  # if FLAGS.grid_search:\n  #   FLAGS.debug = False\n\n  DEBUG = FLAGS.debug \n  idir = FLAGS.idir\n\n  # first id, sencod content ..\n  idx = 2\n\n  # logits sum results\n  results = None\n  # prob sum results\n  results2 = None\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  valid_files = [x for x in valid_files if not 'ensemble' in x]\n  \n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.csv.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n    infer_files = [x for x in infer_files if not 'ensemble' in x]\n\n  print('num_ensembles', len(valid_files))\n  print('num_infers', len(infer_files))\n    \n  assert len(valid_files) == len(infer_files), infer_files\n\n  global num_ensembles\n  num_ensembles = len(valid_files)\n\n  # need global ? even only read?\n  global class_weights\n  #print('-----------', class_weights)\n\n  global weights \n  global labels_list \n  global scores_list \n  global valid_files_\n\n  for fid, file_ in enumerate(valid_files):\n    df = pd.read_csv(file_)\n    df= df.sort_values('id') \n    labels = df.iloc[:,idx:idx+num_attrs].values\n    labels_list.append(labels)\n    predicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n    scores = df['score']\n    scores = [parse(score) for score in scores] \n    scores = np.array(scores)\n    scores_list.append(scores)\n    #f1 = calc_f1(labels, predicts) \n    #f1 = calc_f1(labels, to_predict(scores)) \n    #f1s = calc_f1s(labels, predicts) \n    ## to_predict better \n    # f1_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.npy'\n    # f1_adjusted_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.adjust.npy'\n    # if not os.path.exists(f1_file):\n    f1s = calc_f1s(labels, predicts)\n    f1s_adjusted = calc_f1s(labels, to_predict(scores, is_single=True))\n\n    probs = gezi.softmax(scores.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]))\n    aucs = calc_aucs(labels + 2, probs)\n    losses = calc_losses(labels + 2, probs)\n      # np.save(f1_file, f1s)\n      # np.save(f1_adjusted_file, f1s_adjusted)\n    # else:\n    #   f1s = np.load(f1_file)\n    #   f1s_adjusted = np.load(f1_adjusted_file)\n    f1 = np.mean(f1s)\n    f1_adjusted = np.mean(f1s_adjusted)\n    \n    print(fid, file_, f1, f1_adjusted, np.mean(aucs), np.mean(losses)) \n    if f1_adjusted < FLAGS.thre:\n     print('ignore', file_)\n     continue\n    else:\n     valid_files_.append(file_)\n    \n    # NOTICE weighted can get 7186 while avg only 716\n    # and using original f1s score higher\n    #weight = np.reshape(f1s, [num_attrs, 1])\n    \n    #weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n    \n    #weight = np.reshape(aucs, [num_attrs, 1])\n    if FLAGS.weight_by == 'loss':\n      weight = np.reshape(1 / losses, [num_attrs, 1])\n    elif FLAGS.weight_by == 'auc':\n      weight = np.reshape(aucs, [num_attrs, 1])\n    else:\n      weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n\n    weights.append(weight) \n\n  weights = np.array(weights)\n  scores_list = np.array(scores_list)\n\n  blend_weights(weights, FLAGS.norm_factor)\n\n  print('weights by weight blending')\n  print(weights)\n\n  best_ensemble, best_score, best_loss, valid_score, valid_loss = init_hillclimb()\n  \n  # Run hillclimb\n  for i in range(FLAGS.num_climbs):\n    print(\"-------------\")\n    print(\"Step\", i)    \n    best_ensemble, best_score, best_loss, valid_score, valid_loss = climb(best_ensemble, best_score, best_loss, valid_score, valid_loss)\n    print(\"Best ensemble:\")\n    print(best_ensemble)\n    print(\"Best score:\")\n    print(best_score)\n    print(\"F1:\", np.mean([best_score[label] for label in LABELS]))\n    print(\"Best loss:\")\n    print(best_loss)\n    print(\"Loss:\", np.mean([best_loss[label] for label in LABELS]))\n\n    print(\"Valid score:\")\n    print(best_score)\n    print(\"Valid F1:\", np.mean([valid_score[label] for label in LABELS]))\n    print(\"Valid loss:\")\n    print(best_loss)\n    print(\"Valid Loss:\", np.mean([valid_loss[label] for label in LABELS]))\n  \n  # Get optimal weights\n  opt_w = get_optimal_weights(best_ensemble)\n  print(\"Optimal weights:\")\n  print(opt_w)\n\n  weights = np.zeros_like(weights)\n\n  for i, attr in enumerate(ATTRIBUTES):\n    m = opt_w[attr]\n    for idx, w in m.items():\n      weights[idx][i] = w\n\n  print('weights by hillclimb')\n  print(weights)\n\n  valid_files = valid_files_\n  print('final num valid files', len(valid_files))\n\n  for fid in tqdm(range(len(valid_files)), ascii=True):\n    scores = scores_list[fid]\n    if results is None:\n      results = np.zeros([len(scores), num_attrs * num_classes])\n      results2 = np.zeros([len(scores), num_attrs * num_classes])\n    weight = weights[fid]\n    if FLAGS.method == 'avg' or FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(score, [num_attrs, num_classes]) * weight\n      score = np.reshape(score, [-1])\n    \n      results[i] += score\n\n      # notice softmax([1,2]) = [0.26894142, 0.73105858] softmax([2,4]) = [0.11920292, 0.88079708]\n      score = np.reshape(score, [num_attrs, num_classes])\n      \n      # this not work because *weight already..\n      #score *= FLAGS.logits_factor\n      \n      score = gezi.softmax(score, -1)\n      \n      #score *= class_weights\n\n      score = np.reshape(score, [-1])\n      \n      results2[i] += score \n\n  sum_weights = np.sum(weights, 0)\n\n  adjusted_f1 = calc_f1(labels, to_predict(results, sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(labels, predicts)\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  adjusted_f1_prob = calc_f1(labels, to_predict(results2, sum_weights, adjust=False))\n  results2 = np.reshape(results2, [-1, num_attrs, num_classes]) \n  predicts2 = np.argmax(results2, -1) - 2\n  f1_prob = calc_f1(labels, predicts2)\n\n  print('-----------using prob ensemble')\n  print('f1_prob:', f1_prob)\n  print('adjusted f1_prob:', adjusted_f1_prob)\n\n  print('-----------detailed f1 infos (ensemble by prob)')\n  _, adjusted_f1_probs, class_f1s = calc_f1_alls(labels, to_predict(results2, sum_weights, adjust=False))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1_probs[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, to_predict(results, sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n\n  class_factors = np.ones([num_attrs, num_classes])\n  if FLAGS.grid_search:\n    class_factors = grid_search_class_factors(gezi.softmax(np.reshape(results, [-1, num_attrs, num_classes]) * (FLAGS.logits_factor / sum_weights)), labels, class_weights, num_grids=FLAGS.num_grids)\n      \n  print('class_factors')\n  print(class_factors)\n\n  # adjust class weights to get better result from grid search \n  class_weights = class_weights * class_factors\n\n  print('after dynamic adjust class factors')\n  adjusted_f1 = calc_f1(labels, to_predict(results, sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(labels, predicts)\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, to_predict(results, sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n  #-------------infer\n  print('------------infer')\n  ofile = os.path.join(idir, 'ensemble.infer.csv')\n  file_ = gezi.strip_suffix(file_, '.debug')\n  df = pd.read_csv(file_)\n\n  idx = 2\n  results = None\n  results2 = None\n  for fid, file_ in enumerate(infer_files):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    print(fid, file_)\n    if results is None:\n      results = np.zeros([len(df), num_attrs * num_classes])\n      results2 = np.zeros([len(df), num_attrs * num_classes])\n    scores = df['score']\n    scores = [parse(score) for score in scores]\n    scores = np.array(scores) \n    weight = weights[fid] \n    if FLAGS.method == 'avg' and FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(np.reshape(score, [num_attrs, num_classes]) * weight, [-1])\n      results[i] += score\n      score = gezi.softmax(np.reshape(score, [num_attrs, num_classes]), -1)\n      score = np.reshape(score, [-1])\n      results2[i] += score \n\n  #predicts = to_predict(results2, sum_weights)\n  predicts = to_predict(results, sum_weights)\n\n  if not DEBUG:\n    columns = df.columns[idx:idx + num_attrs].values\n  else:\n    columns = df.columns[idx + num_attrs:idx + 2 * num_attrs].values\n\n  if not DEBUG:\n    ofile = os.path.join(idir, 'ensemble.infer.csv')\n  else:\n    ofile = os.path.join(idir, 'ensemble.valid.csv')\n\n  if not DEBUG:\n    file_ = gezi.strip_suffix(file_, '.debug')\n    print('temp csv using for write', file_)\n    df = pd.read_csv(file_)\n  else:\n    print('debug test using file', valid_files[-1])\n    df = pd.read_csv(valid_files[-1])\n\n  # for safe must sort id\n  df = df.sort_values('id')\n\n  # TODO better ? not using loop ?\n  for i, column in enumerate(columns):\n    df[column] = predicts[:, i]\n\n  if DEBUG:\n    print('check blend result', calc_f1(df.iloc[:, idx:idx + num_attrs].values, predicts))\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n  print('out:', ofile)\n  if not DEBUG:\n    df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\n  print('---------------results', results.shape)\n  df['score'] = [x for x in results] \n  factor =  FLAGS.logits_factor / sum_weights\n  #print('--------sum_weights', sum_weights)\n  #print('--------factor', factor)\n  logits = np.reshape(results, [-1, num_attrs, num_classes])\n  # DO NOT USE *=... will change results...\n  logits = logits * factor\n  probs = gezi.softmax(logits, -1) \n  probs *= class_weights\n  logits = np.reshape(logits, [-1, num_attrs * num_classes])\n  print('---------------logits', logits.shape)\n  print('----results', results)\n  print('----logits', logits)\n  df['logit'] = [x for x in logits] \n  probs = np.reshape(probs, [-1, num_attrs * num_classes])\n  print('---------------probs', probs.shape)\n  df['prob'] = [x for x in probs]\n\n  if not DEBUG:\n    ofile = os.path.join(idir, 'ensemble.infer.debug.csv')\n  else:\n    ofile = os.path.join(idir, 'ensemble.valid.csv')\n  print('out debug:', ofile)\n  df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\nif __name__ == '__main__':\n  tf.app.run()  "
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble-infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score\nimport gezi\n\nidir = sys.argv[1]\n\nnum_attrs = 20\n\ndef parse(l):\n  return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n\ndef to_predict(logits):\n  logits = np.reshape(logits, [-1, num_attrs, 4])\n  probs = gezi.softmax(logits, -1)\n  probs = np.reshape(probs, [-1, 4])\n  result = np.zeros([len(probs)], dtype=np.int32)\n  for i, prob in enumerate(probs):\n    if prob[0] >= 0.6:\n      result[i] = -2\n    else:\n      result[i] = np.argmax(prob[1:]) - 1\n  \n  result = np.reshape(result, [-1, num_attrs])\n\n  return result\n\nidx = 2\nresults = None\nfor file_ in glob.glob('%s/*.infer.csv.debug' % idir):\n  df = pd.read_csv(file_)\n  predicts = df.iloc[:,idx:idx+num_attrs].values\n  print(file_)\n  if results is None:\n    results = np.zeros([len(df), num_attrs * 4])\n  scores = df['score']\n  for i, score in enumerate(scores):\n    score = parse(score)\n    # score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n    # score = np.reshape(score, [-1])\n    results[i] += score \n\n#results = np.reshape(results, [-1, num_attrs, 4]) \n#predicts = np.argmax(results, -1) - 2\npredicts = to_predict(results)\n\ncolumns = df.columns[idx:idx+num_attrs].values\n\nofile = os.path.join(idir, 'ensemble.infer.csv')\nfile_ = gezi.strip_suffix(file_, '.debug')\ndf = pd.read_csv(file_)\n\n# TODO better ? not using loop ?\nfor i, column in enumerate(columns):\n  df[column] = predicts[:, i]\n\nprint('out:', ofile)\ndf.to_csv(ofile, index=False, encoding=\"utf_8_sig\")"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble-v1.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:0num_classes:21.026718\n#   \\Description   ensemble by OOF score blend per attribute\n# ==============================================================================\n\"\"\"\nensemble.py  is depreciated, using ensemble-parallel.py instead\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', True, '')\nflags.DEFINE_bool('grid_search', False, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_string('idir', '.', '')\nflags.DEFINE_float('norm_factor', 0.0001, 'attr weights used norm factor')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\nflags.DEFINE_float('thre', 0.6, '')\nflags.DEFINE_string('weight_by', 'adjusted_f1', '')\nflags.DEFINE_integer('num_grids', 10, '')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\nimport gezi\nfrom tqdm import tqdm\nimport math\nfrom scipy.stats import rankdata\n\nDEBUG = 0\nidir = '.'\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\n\nnum_ensembles = 0\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef calc_f1(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n    #f1_scores[i].append(f1)\n  f1 = np.mean(f1_list)\n  return f1 \n\ndef calc_f1s(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n  return np.array(f1_list)\n\ndef calc_losses(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.array(losses)\n\ndef calc_aucs(labels, predicts):\n  aucs_list = []\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n  return np.array(aucs_list)\n\ndef calc_f1_alls(labels, predicts):\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    scores = f1_score(labels[:,i], predicts[:,i], average=None)\n    class_f1 += scores\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n  return f1, f1_list, class_f1\n\nclass_weights_path = './class_weights.npy'\nif not os.path.exists(class_weights_path):\n  class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n# class_weights is per class(na, neg, neu, pos) weight\nclass_weights = np.load(class_weights_path)\n#print('class_weights', class_weights)\n\nfor i in range(len(class_weights)):\n  for j in range(4):\n    x = class_weights[i][j]\n    class_weights[i][j] = x * x * x \n  \n  # well just compact for now, but should change this is a bug.. \n  if FLAGS.more_adjust:\n    #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    # well, this should be further ajusted \n    class_weights[1][-2] = class_weights[1][-2] * 1.2 \n    class_weights[-2][0] = class_weights[-2][0] * 1.2\n\n#if FLAGS.more_adjust:\n#  #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n#  # well, this should be further ajusted \n#  class_weights[1][-2] = class_weights[1][-2] * pow(1.2, 20) \n#  class_weights[-2][0] = class_weights[-2][0] * pow(1.2, 20)\n\n  # for i in range(len(class_weights)):\n  #   for j in range(4):\n  #     class_weights[i][j] /= np.sum(class_weights[i])\n\n#class_weights = gezi.softmax(class_weights)\nprint('class_weights', class_weights)\n\ndef to_predict(logits, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_attrs, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust and FLAGS.adjust:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights\n  else:\n    probs = logits\n\n  probs = np.reshape(probs, [-1, num_classes])\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  result = np.reshape(result, [-1, num_attrs])\n  return result\n\ndef blend_weights(weights, norm_facotr):\n  for i in range(num_attrs):\n    #weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    #min_ws = np.min(ws)\n    #max_ws = np.max(ws)\n    #gap = max_ws - min_ws\n    #if gap > 0:\n    #  for j in range(len(weights)):\n    #    weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n    ranked = rankdata(ws)\n    sum_rank = np.sum(ranked)\n    for j in range(len(weights)):\n      weights[j][i] = ranked[j] / sum_rank\n\ndef get_counts(probs):\n  predicts = np.argmax(probs, 1)\n  counts = np.zeros(4)\n  for predict in predicts:\n    counts[predict] += 1\n  return counts\n\ndef adjust_probs(probs, labels):\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  probs[:, 1][-2] *= 10\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n  probs[:, -2][0] *= 100000\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n\n\n# class factors is per class dynamic adjust for class weights\ndef grid_search_class_factors(probs, labels, weights, num_grids=10):\n  #adjust_probs(probs, labels)\n  class_factors = np.ones([num_attrs, num_classes])  \n  # TODO multi process\n  for i in tqdm(range(num_attrs), ascii=True):\n    print(i, ATTRIBUTES[i])\n    print('init counts:', get_counts(probs[:, i]))\n    index = np.argsort(-np.array(weights[i]))\n    def is_ok(factor):\n      return np.sum(np.argsort(-factor) == index) == 4\n\n    best = 0\n    for a in tqdm(range(1,1 + num_grids), ascii=True):\n      for b in range(1,1 + num_grids):\n        for c in range(1,1 + num_grids):\n          for d in range(1,1 + num_grids):\n            factor = np.array([a, b, c, d], dtype=np.float)\n            factor2 = factor * weights[i]\n            if not is_ok(factor2):\n              continue\n            preds = probs[:, i] * factor2 \n            f1 = f1_score(labels[:, i] + 2, np.argmax(preds, 1), average='macro')\n            if f1 > best:\n              print('\\n', ATTRIBUTES[i], factor, factor2, f1)\n              best = f1\n              class_factors[i] = factor\n              print('counts:', get_counts(probs[:, i] * factor))\n  return class_factors\n\ndef main(_):\n  print('METHOD:', FLAGS.method)\n  print('Norm factor:', FLAGS.norm_factor) \n\n  # if FLAGS.grid_search:\n  #   FLAGS.debug = False\n\n  DEBUG = FLAGS.debug \n  idir = FLAGS.idir\n\n  # first id, sencod content ..\n  idx = 2\n\n  # logits sum results\n  results = None\n  # prob sum results\n  results2 = None\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  valid_files = [x for x in valid_files if not 'ensemble' in x]\n  \n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.csv.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n    infer_files = [x for x in infer_files if not 'ensemble' in x]\n\n  print('num_ensembles', len(valid_files))\n  print('num_infers', len(infer_files))\n    \n  assert len(valid_files) == len(infer_files), infer_files\n\n  global num_ensembles\n  num_ensembles = len(valid_files)\n\n  # need global ? even only read?\n  global class_weights\n  #print('-----------', class_weights)\n\n  # weights is for per model weight\n  weights = [] \n  scores_list = []\n  valid_files_ = []\n  for fid, file_ in enumerate(valid_files):\n    df = pd.read_csv(file_)\n    df= df.sort_values('id') \n    labels = df.iloc[:,idx:idx+num_attrs].values\n    predicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n    scores = df['score']\n    scores = [parse(score) for score in scores] \n    scores = np.array(scores)\n    scores_list.append(scores)\n    #f1 = calc_f1(labels, predicts) \n    #f1 = calc_f1(labels, to_predict(scores)) \n    #f1s = calc_f1s(labels, predicts) \n    ## to_predict better \n    # f1_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.npy'\n    # f1_adjusted_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.adjust.npy'\n    # if not os.path.exists(f1_file):\n    f1s = calc_f1s(labels, predicts)\n    f1s_adjusted = calc_f1s(labels, to_predict(scores, is_single=True))\n\n    probs = gezi.softmax(scores.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]))\n    aucs = calc_aucs(labels + 2, probs)\n    losses = calc_losses(labels + 2, probs)\n      # np.save(f1_file, f1s)\n      # np.save(f1_adjusted_file, f1s_adjusted)\n    # else:\n    #   f1s = np.load(f1_file)\n    #   f1s_adjusted = np.load(f1_adjusted_file)\n    f1 = np.mean(f1s)\n    f1_adjusted = np.mean(f1s_adjusted)\n    \n    print(fid, file_, f1, f1_adjusted, np.mean(aucs), np.mean(losses)) \n    if f1_adjusted < FLAGS.thre:\n     print('ignore', file_)\n     continue\n    else:\n     valid_files_.append(file_)\n    \n    # NOTICE weighted can get 7186 while avg only 716\n    # and using original f1s score higher\n    #weight = np.reshape(f1s, [num_attrs, 1])\n    \n    #weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n    \n    #weight = np.reshape(aucs, [num_attrs, 1])\n    if FLAGS.weight_by == 'loss':\n      weight = np.reshape(1 / losses, [num_attrs, 1])\n    elif FLAGS.weight_by == 'auc':\n      weight = np.reshape(aucs, [num_attrs, 1])\n    else:\n      weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n\n    weights.append(weight) \n\n  weights = np.array(weights)\n  scores_list = np.array(scores_list)\n\n  blend_weights(weights, FLAGS.norm_factor)\n\n  # if DEBUG:\n  #   print(weights)\n\n  valid_files = valid_files_\n  print('final num valid files', len(valid_files))\n\n  for fid in tqdm(range(len(valid_files)), ascii=True):\n    scores = scores_list[fid]\n    if results is None:\n      results = np.zeros([len(scores), num_attrs * num_classes])\n      results2 = np.zeros([len(scores), num_attrs * num_classes])\n    weight = weights[fid]\n    if FLAGS.method == 'avg' or FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(score, [num_attrs, num_classes]) * weight\n      score = np.reshape(score, [-1])\n    \n      results[i] += score\n\n      # notice softmax([1,2]) = [0.26894142, 0.73105858] softmax([2,4]) = [0.11920292, 0.88079708]\n      score = np.reshape(score, [num_attrs, num_classes])\n      \n      # this not work because *weight already..\n      #score *= FLAGS.logits_factor\n      \n      score = gezi.softmax(score, -1)\n      \n      #score *= class_weights\n\n      score = np.reshape(score, [-1])\n      \n      results2[i] += score \n\n  sum_weights = np.sum(weights, 0)\n\n  adjusted_f1 = calc_f1(labels, to_predict(results, sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(labels, predicts)\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  adjusted_f1_prob = calc_f1(labels, to_predict(results2, sum_weights, adjust=False))\n  results2 = np.reshape(results2, [-1, num_attrs, num_classes]) \n  predicts2 = np.argmax(results2, -1) - 2\n  f1_prob = calc_f1(labels, predicts2)\n\n  print('-----------using prob ensemble')\n  print('f1_prob:', f1_prob)\n  print('adjusted f1_prob:', adjusted_f1_prob)\n\n  print('-----------detailed f1 infos (ensemble by prob)')\n  _, adjusted_f1_probs, class_f1s = calc_f1_alls(labels, to_predict(results2, sum_weights, adjust=False))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1_probs[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, to_predict(results, sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n\n  class_factors = np.ones([num_attrs, num_classes])\n  if FLAGS.grid_search:\n    class_factors = grid_search_class_factors(gezi.softmax(np.reshape(results, [-1, num_attrs, num_classes]) * (FLAGS.logits_factor / sum_weights)), labels, class_weights, num_grids=FLAGS.num_grids)\n      \n  print('class_factors')\n  print(class_factors)\n\n  # adjust class weights to get better result from grid search \n  class_weights = class_weights * class_factors\n\n  print('after dynamic adjust class factors')\n  adjusted_f1 = calc_f1(labels, to_predict(results, sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(labels, predicts)\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, to_predict(results, sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n  #-------------infer\n  print('------------infer')\n  ofile = os.path.join(idir, 'ensemble.infer.csv')\n  file_ = gezi.strip_suffix(file_, '.debug')\n  df = pd.read_csv(file_)\n\n  idx = 2\n  results = None\n  results2 = None\n  for fid, file_ in enumerate(infer_files):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    print(fid, file_)\n    if results is None:\n      results = np.zeros([len(df), num_attrs * num_classes])\n      results2 = np.zeros([len(df), num_attrs * num_classes])\n    scores = df['score']\n    scores = [parse(score) for score in scores]\n    scores = np.array(scores) \n    weight = weights[fid] \n    if FLAGS.method == 'avg' and FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(np.reshape(score, [num_attrs, num_classes]) * weight, [-1])\n      results[i] += score\n      score = gezi.softmax(np.reshape(score, [num_attrs, num_classes]), -1)\n      score = np.reshape(score, [-1])\n      results2[i] += score \n\n  #predicts = to_predict(results2, sum_weights)\n  predicts = to_predict(results, sum_weights)\n\n  if not DEBUG:\n    columns = df.columns[idx:idx + num_attrs].values\n  else:\n    columns = df.columns[idx + num_attrs:idx + 2 * num_attrs].values\n\n  if not DEBUG:\n    ofile = os.path.join(idir, 'ensemble.infer.csv')\n  else:\n    ofile = os.path.join(idir, 'ensemble.valid.csv')\n\n  if not DEBUG:\n    file_ = gezi.strip_suffix(file_, '.debug')\n    print('temp csv using for write', file_)\n    df = pd.read_csv(file_)\n  else:\n    print('debug test using file', valid_files[-1])\n    df = pd.read_csv(valid_files[-1])\n\n  # for safe must sort id\n  df = df.sort_values('id')\n\n  # TODO better ? not using loop ?\n  for i, column in enumerate(columns):\n    df[column] = predicts[:, i]\n\n  if DEBUG:\n    print('check blend result', calc_f1(df.iloc[:, idx:idx + num_attrs].values, predicts))\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n  print('out:', ofile)\n  if not DEBUG:\n    df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\n  print('---------------results', results.shape)\n  df['score'] = [x for x in results] \n  factor =  FLAGS.logits_factor / sum_weights\n  #print('--------sum_weights', sum_weights)\n  #print('--------factor', factor)\n  logits = np.reshape(results, [-1, num_attrs, num_classes])\n  # DO NOT USE *=... will change results...\n  logits = logits * factor\n  probs = gezi.softmax(logits, -1) \n  probs *= class_weights\n  logits = np.reshape(logits, [-1, num_attrs * num_classes])\n  print('---------------logits', logits.shape)\n  print('----results', results)\n  print('----logits', logits)\n  df['logit'] = [x for x in logits] \n  probs = np.reshape(probs, [-1, num_attrs * num_classes])\n  print('---------------probs', probs.shape)\n  df['prob'] = [x for x in probs]\n\n  if not DEBUG:\n    ofile = os.path.join(idir, 'ensemble.infer.debug.csv')\n  else:\n    ofile = os.path.join(idir, 'ensemble.valid.csv')\n  print('out debug:', ofile)\n  df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/ensemble.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:0num_classes:21.026718\n#   \\Description   ensemble by OOF score blend per attribute\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('debug', False, '')\nflags.DEFINE_string('method', 'blend', '')\nflags.DEFINE_string('idir', '.', '')\nflags.DEFINE_float('norm_factor', 0.0001, 'attr weights used norm factor')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\nflags.DEFINE_float('thre', 0.6, '')\nflags.DEFINE_string('weight_by', 'adjusted_f1', '')\nflags.DEFINE_integer('num_grids', 10, '10')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\nimport gezi\nfrom tqdm import tqdm\nimport math\nfrom scipy.stats import rankdata\n\nDEBUG = 0\nidir = '.'\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nCLASSES = ['na', 'neg', 'neu', 'pos']\n\nnum_attrs = len(ATTRIBUTES)\nNUM_ATTRIBUTES = num_attrs\nnum_classes = 4\nNUM_CLASSES = num_classes\n\nnum_ensembles = 0\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef calc_f1(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n    #f1_scores[i].append(f1)\n  f1 = np.mean(f1_list)\n  return f1 \n\ndef calc_f1s(labels, predicts):\n  f1_list = []\n  for i in range(num_attrs):\n    f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n    f1_list.append(f1)\n  return np.array(f1_list)\n\ndef calc_loss(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.mean(losses)\n\ndef calc_losses(labels, predicts):\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  return np.array(losses)\n\ndef calc_aucs(labels, predicts):\n  aucs_list = []\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n  return np.array(aucs_list)\n\ndef calc_f1_alls(labels, predicts):\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    scores = f1_score(labels[:,i], predicts[:,i], average=None)\n    class_f1 += scores\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n  return f1, f1_list, class_f1\n\nclass_weights_path = './class_weights.npy'\nif not os.path.exists(class_weights_path):\n  class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n# class_weights is per class(na, neg, neu, pos) weight\nclass_weights = np.load(class_weights_path)\n#print('class_weights', class_weights)\n\nif FLAGS.adjust:\n  for i in range(len(class_weights)):\n    for j in range(4):\n      #class_weights[i][j] = math.log(class_weights[i][j])\n      #class_weights[i] = gezi.softmax(class_weights[i])\n      #class_weights[i][j] +=  math.sqrt(class_weights[i][j])\n      #class_weights[i][j] += 0.\n      #class_weights[i][j] = math.sqrt(class_weights[i][j])\n      x = class_weights[i][j]\n      # If using prob adjust just set x for logits seems x^3 better\n      #class_weights[i][j] = x \n      # well this make single model adjusted f1 improve by adding 100...\n      #class_weights[i][j] = x * x * x + 100\n      class_weights[i][j] = x * x * x \n\n    #if FLAGS.more_adjust:\n    #  #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    #  class_weights[1][-2] = class_weights[1][-2] * 1.2\n    #  class_weights[-2][0] = class_weights[-2][0] * 1.2\n\n  if FLAGS.more_adjust:\n    #this has been tested to be effective as for both fold 0 and 1 and different model combinations\n    # pow(1.2, 22) 55.2061438912436 \n    class_weights[1][-2] = class_weights[1][-2] * pow(1.2, 22)\n    ## 22.63\n    #x = pow(1.2, 18)  \n    ## * 22644.802257413307\n    #class_weights[-2][0] = class_weights[-2][0] * x * x * x * 1.2\n    class_weights[-2][0] = class_weights[-2][0] * 60000\n      # for i in range(len(class_weights)):\n      #   for j in range(4):\n      #     class_weights[i][j] /= np.sum(class_weights[i])\n\n    #class_weights = gezi.softmax(class_weights)\nelse:\n  class_weights = np.ones_like(class_weights)\nprint('class_weights', class_weights)\n\ndef to_predict(logits, weights=None, is_single=False, adjust=True):\n  logits = np.reshape(logits, [-1, num_attrs, num_classes])\n  ## DO NOT divde !!\n  if is_single:\n    factor = FLAGS.logits_factor\n  else:\n    if weights is None:\n      factor = 1.\n    else:\n      factor =  FLAGS.logits_factor / weights\n  #print('factor:', factor)\n\n  if adjust and FLAGS.adjust or FLAGS.num_grids:\n    logits = logits * factor\n    probs = gezi.softmax(logits, -1) \n    probs *= class_weights\n  else:\n    probs = logits\n\n  probs = np.reshape(probs, [-1, num_classes])\n  result = np.zeros([len(probs)], dtype=int)\n  for i, prob in enumerate(probs):\n    # # TODO try to calibrate to 0.5 ?\n    # if prob[0] >= 0.6:\n    #   result[i] = -2\n    # else:\n    #   result[i] = np.argmax(prob[1:]) - 1\n\n    # this can also improve but not as good as per attr class weights adjust, can get 7183\n    # TODO class_weights right now still not the best!\n    #prob[0] *= 0.4\n    result[i] = np.argmax(prob) - 2\n  \n  result = np.reshape(result, [-1, num_attrs])\n  return result\n\ndef blend_weights(weights, norm_facotr):\n  for i in range(num_attrs):\n    #weights[:, i] = minmax_scale(weights[:, i])\n    ws = weights[:, i]\n    #min_ws = np.min(ws)\n    #max_ws = np.max(ws)\n    #gap = max_ws - min_ws\n    #if gap > 0:\n    #  for j in range(len(weights)):\n    #    weights[j][i] = ((weights[j][i] - min_ws) / gap) + norm_facotr\n    ranked = rankdata(ws)\n    sum_rank = np.sum(ranked)\n    for j in range(len(weights)):\n      weights[j][i] = ranked[j] / sum_rank\n\ndef get_counts(probs):\n  predicts = np.argmax(probs, 1)\n  counts = np.zeros(4)\n  for predict in predicts:\n    counts[predict] += 1\n  return counts\n\ndef adjust_probs(probs, labels):\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  probs[:, 1][-2] *= 10\n  f1 = f1_score(labels[:, 1] + 2, np.argmax(probs[:, 1], 1), average='macro')\n  print('location_distance_from_business_district', f1)\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n  probs[:, -2][0] *= 100000\n  f1 = f1_score(labels[:, -2] + 2, np.argmax(probs[:, -2], 1), average='macro')\n  print('thers_overall_experience', f1)\n\n# TODO FIXME pymp not work class factors seems not locked...\nimport pymp\n#class_factors = pymp.shared.array((num_attrs, num_classes), dtype='float') + 1.\n# class factors is per class dynamic adjust for class weights\nfrom multiprocessing import Manager \ndef grid_search_class_factors(probs, labels, weights, num_grids=10):\n  manager = Manager() \n  class_factors_dict = manager.dict()\n  with pymp.Parallel(12) as p:\n    for i in tqdm(p.range(num_attrs), ascii=True):\n    #for i in p.range(num_attrs):\n      #p.print(i, ATTRIBUTES[i])\n      #p.print('init counts:', get_counts(probs[:, i]))\n      index = np.argsort(-np.array(weights[i]))\n      def is_ok(factor):\n        return np.sum(np.argsort(-factor) == index) == 4\n      best = 0\n      for a in tqdm(range(1,1 + num_grids), ascii=True):\n        #for a in(range(1,1 + num_grids)):\n        for b in range(1,1 + num_grids):\n          for c in range(1,1 + num_grids):\n            for d in range(1,1 + num_grids):\n              factor = np.array([a, b, c, d], dtype=np.float)\n              factor2 = factor * weights[i]\n              if not is_ok(factor2):\n                continue\n              preds = probs[:, i] * factor2 \n              f1 = f1_score(labels[:, i] + 2, np.argmax(preds, 1), average='macro')\n              if f1 > best:\n                #p.print('\\n', ATTRIBUTES[i], factor, factor2, f1)\n                best = f1\n                #class_factors[i] = factor\n                class_factors_dict[i] = factor\n                #p.print('counts:', get_counts(probs[:, i] * factor))\n                #p.print('class_factors', i, class_factors_dict[i])\n\n  class_factors = np.ones([num_attrs, num_classes])\n  for i in range(num_attrs):\n    class_factors[i] = class_factors_dict[i]\n  return class_factors\n\ndef main(_):\n  print('METHOD:', FLAGS.method)\n  print('Norm factor:', FLAGS.norm_factor) \n\n  # if FLAGS.num_grids:\n  #   FLAGS.debug = False\n\n  DEBUG = FLAGS.debug \n  idir = FLAGS.idir\n\n  # first id, sencod content ..\n  idx = 2\n\n  # logits sum results\n  results = None\n  # prob sum results\n  results2 = None\n\n  valid_files = glob.glob(f'{idir}/*.valid.csv')\n  valid_files = [x for x in valid_files if not 'ensemble' in x]\n  \n  if not DEBUG:\n    print('VALID then INFER')\n    infer_files = glob.glob(f'{idir}/*.infer.csv.debug')\n  else:\n    print('Debug mode INFER ill write result using valid ids, just for test')\n    infer_files = glob.glob(f'{idir}/*.valid.csv') \n    infer_files = [x for x in infer_files if not 'ensemble' in x]\n\n  print('num_ensembles', len(valid_files))\n  print('num_infers', len(infer_files))\n    \n  if not FLAGS.debug:\n    assert len(valid_files) == len(infer_files), infer_files\n\n  global num_ensembles\n  num_ensembles = len(valid_files)\n\n  # need global ? even only read?\n  global class_weights\n  #print('-----------', class_weights)\n\n  # weights is for per model weight\n  weights = [] \n  scores_list = []\n  valid_files_ = []\n  for fid, file_ in enumerate(valid_files):\n    df = pd.read_csv(file_)\n    df= df.sort_values('id') \n    labels = df.iloc[:,idx:idx+num_attrs].values\n    predicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n    scores = df['score']\n    scores = [parse(score) for score in scores] \n    scores = np.array(scores)\n    scores_list.append(scores)\n    #f1 = calc_f1(labels, predicts) \n    #f1 = calc_f1(labels, to_predict(scores)) \n    #f1s = calc_f1s(labels, predicts) \n    ## to_predict better \n    # f1_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.npy'\n    # f1_adjusted_file = gezi.strip_suffix(file_, '.valid.csv') + '.f1s.adjust.npy'\n    # if not os.path.exists(f1_file):\n    f1s = calc_f1s(labels, predicts)\n    f1s_adjusted = calc_f1s(labels, to_predict(scores, is_single=True))\n\n    probs = gezi.softmax(scores.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES]))\n    aucs = calc_aucs(labels + 2, probs)\n    losses = calc_losses(labels + 2, probs)\n      # np.save(f1_file, f1s)\n      # np.save(f1_adjusted_file, f1s_adjusted)\n    # else:\n    #   f1s = np.load(f1_file)\n    #   f1s_adjusted = np.load(f1_adjusted_file)\n    f1 = np.mean(f1s)\n    f1_adjusted = np.mean(f1s_adjusted)\n    \n    print(fid, file_, f1, f1_adjusted, np.mean(aucs), np.mean(losses)) \n    if f1_adjusted < FLAGS.thre:\n     print('ignore', file_)\n     continue\n    else:\n     valid_files_.append(file_)\n    \n    # NOTICE weighted can get 7186 while avg only 716\n    # and using original f1s score higher\n    #weight = np.reshape(f1s, [num_attrs, 1])\n    \n    #weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n    \n    #weight = np.reshape(aucs, [num_attrs, 1])\n    if FLAGS.weight_by == 'loss':\n      weight = np.reshape(1 / losses, [num_attrs, 1])\n    elif FLAGS.weight_by == 'auc':\n      weight = np.reshape(aucs, [num_attrs, 1])\n    else:\n      weight = np.reshape(f1s_adjusted, [num_attrs, 1])\n\n    weights.append(weight) \n\n  weights = np.array(weights)\n  scores_list = np.array(scores_list)\n\n  blend_weights(weights, FLAGS.norm_factor)\n\n  # if DEBUG:\n  #   print(weights)\n\n  valid_files = valid_files_\n  print('final num valid files', len(valid_files))\n\n  for fid in tqdm(range(len(valid_files)), ascii=True):\n    scores = scores_list[fid]\n    if results is None:\n      results = np.zeros([len(scores), num_attrs * num_classes])\n      results2 = np.zeros([len(scores), num_attrs * num_classes])\n    weight = weights[fid]\n    if FLAGS.method == 'avg' or FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(score, [num_attrs, num_classes]) * weight\n      score = np.reshape(score, [-1])\n    \n      results[i] += score\n\n      # notice softmax([1,2]) = [0.26894142, 0.73105858] softmax([2,4]) = [0.11920292, 0.88079708]\n      score = np.reshape(score, [num_attrs, num_classes])\n      \n      # this not work because *weight already..\n      #score *= FLAGS.logits_factor\n      \n      score = gezi.softmax(score, -1)\n      \n      #score *= class_weights\n\n      score = np.reshape(score, [-1])\n      \n      results2[i] += score \n\n  sum_weights = np.sum(weights, 0)\n\n  adjusted_f1 = calc_f1(labels, to_predict(results, sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  predicts = np.argmax(results, -1) - 2\n  f1 = calc_f1(labels, predicts)\n\n  print('-----------using logits ensemble')\n  print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  adjusted_f1_prob = calc_f1(labels, to_predict(results2, sum_weights, adjust=False))\n  results2 = np.reshape(results2, [-1, num_attrs, num_classes]) \n  predicts2 = np.argmax(results2, -1) - 2\n  f1_prob = calc_f1(labels, predicts2)\n\n  print('-----------using prob ensemble')\n  print('f1_prob:', f1_prob)\n  print('adjusted f1_prob:', adjusted_f1_prob)\n\n  print('-----------detailed f1 infos (ensemble by prob)')\n  _, adjusted_f1_probs, class_f1s = calc_f1_alls(labels, to_predict(results2, sum_weights, adjust=False))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1_probs[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, to_predict(results, sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n\n  loss = calc_loss(labels, gezi.softmax(results.reshape([-1, NUM_ATTRIBUTES, NUM_CLASSES])))\n  print(f'loss:[{loss}]')\n\n\n  class_factors = np.ones([num_attrs, num_classes])\n  if FLAGS.num_grids:\n    class_factors = grid_search_class_factors(gezi.softmax(np.reshape(results, [-1, num_attrs, num_classes]) * (FLAGS.logits_factor / sum_weights)), labels, class_weights, num_grids=FLAGS.num_grids)\n      \n  print('class_factors')\n  print(class_factors)\n\n  # adjust class weights to get better result from grid search \n  class_weights = class_weights * class_factors\n\n  print('after dynamic adjust class factors')\n  adjusted_f1 = calc_f1(labels, to_predict(results, sum_weights))\n  results = np.reshape(results, [-1, num_attrs, num_classes]) \n  #predicts = np.argmax(results, -1) - 2\n  #f1 = calc_f1(labels, predicts)\n\n  print('-----------using logits ensemble')\n  #print('f1:', f1)\n  print('adjusted f1:', adjusted_f1)\n\n  print('-----------detailed f1 infos (ensemble by logits)')\n  _, adjusted_f1s, class_f1s = calc_f1_alls(labels, to_predict(results, sum_weights))\n\n  for i, attr in enumerate(ATTRIBUTES):\n    print(attr, adjusted_f1s[i])\n  for i, cls in enumerate(CLASSES):\n    print(cls, class_f1s[i])\n\n  # print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  # print(f'adjusted f1:[{adjusted_f1}]')\n\n  #-------------infer\n  print('------------infer')\n  ofile = os.path.join(idir, 'ensemble.infer.csv')\n  file_ = gezi.strip_suffix(file_, '.debug')\n  df = pd.read_csv(file_)\n\n  idx = 2\n  results = None\n  results2 = None\n  for fid, file_ in enumerate(infer_files):\n    df = pd.read_csv(file_)\n    df = df.sort_values('id')\n    print(fid, file_, len(df))\n    if not FLAGS.debug:\n      assert len(df) == 200000\n    if results is None:\n      results = np.zeros([len(df), num_attrs * num_classes])\n      results2 = np.zeros([len(df), num_attrs * num_classes])\n    scores = df['score']\n    scores = [parse(score) for score in scores]\n    scores = np.array(scores) \n    weight = weights[fid] \n    if FLAGS.method == 'avg' and FLAGS.method == 'mean': \n      weight = 1.\n    for i, score in enumerate(scores):\n      score = np.reshape(np.reshape(score, [num_attrs, num_classes]) * weight, [-1])\n      results[i] += score\n      score = gezi.softmax(np.reshape(score, [num_attrs, num_classes]), -1)\n      score = np.reshape(score, [-1])\n      results2[i] += score \n\n  #predicts = to_predict(results2, sum_weights)\n  predicts = to_predict(results, sum_weights)\n\n  if not DEBUG:\n    columns = df.columns[idx:idx + num_attrs].values\n  else:\n    columns = df.columns[idx + num_attrs:idx + 2 * num_attrs].values\n\n  if not DEBUG:\n    ofile = os.path.join(idir, 'ensemble.infer.csv')\n  else:\n    ofile = os.path.join(idir, 'ensemble.valid.csv')\n\n  if not DEBUG:\n    file_ = gezi.strip_suffix(file_, '.debug')\n    print('temp csv using for write', file_)\n    df = pd.read_csv(file_)\n  else:\n    print('debug test using file', valid_files[-1])\n    df = pd.read_csv(valid_files[-1])\n\n  # for safe must sort id\n  df = df.sort_values('id')\n\n  # TODO better ? not using loop ?\n  for i, column in enumerate(columns):\n    df[column] = predicts[:, i]\n\n  if DEBUG:\n    print('check blend result', calc_f1(df.iloc[:, idx:idx + num_attrs].values, predicts))\n  print(f'adjusted f1_prob:[{adjusted_f1_prob}]')\n  print(f'adjusted f1:[{adjusted_f1}]')\n  print(f'loss:[{loss}]')\n\n  print('out:', ofile)\n  if not DEBUG:\n    df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\n  print('---------------results', results.shape)\n  df['score'] = [x for x in results] \n  factor =  FLAGS.logits_factor / sum_weights\n  #print('--------sum_weights', sum_weights)\n  #print('--------factor', factor)\n  logits = np.reshape(results, [-1, num_attrs, num_classes])\n  # DO NOT USE *=... will change results...\n  logits = logits * factor\n  probs = gezi.softmax(logits, -1) \n  probs *= class_weights\n  logits = np.reshape(logits, [-1, num_attrs * num_classes])\n  print('---------------logits', logits.shape)\n  print('----results', results)\n  print('----logits', logits)\n  #df['logit'] = [x for x in logits] \n  probs = np.reshape(probs, [-1, num_attrs * num_classes])\n  print('---------------probs', probs.shape)\n  #df['prob'] = [x for x in probs]\n\n  if not DEBUG:\n    ofile = os.path.join(idir, 'ensemble.infer.debug.csv')\n  else:\n    ofile = os.path.join(idir, 'ensemble.valid.csv')\n  print('out debug:', ofile)\n  df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:12:03.819848\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\nfrom sklearn.metrics import f1_score\n\n\ndf = pd.read_csv(sys.argv[1])\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nidx = 2\nlength = 20 \n\nlabels = df.iloc[:,idx:idx+length].values\npredicts = df.iloc[:,idx+length:idx+2*length].values\n\nf1_list = []\nfor i in range(length):\n  f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n  f1_list.append(f1)\nf1 = np.mean(f1_list)\n\nfor i, attr in enumerate(ATTRIBUTES):\n  print(attr, f1_list[i])\nprint('f1:', f1)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/gen-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score \n#from sklearn.preprocessing import minmax_scale\nimport gezi\n\nidir = sys.argv[1]\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nnum_attrs = len(ATTRIBUTES)\n\ndef parse(l):\n  return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n\nidx = 2\n\nresults = None\n\ndf_result = pd.DataFrame()\nfor fid, file_ in enumerate(glob.glob('%s/*.valid.csv' % idir)):\n  print(file_)\n  df = pd.read_csv(file_, sep=',')\n  df.sort_index(0, inplace=True)\n  labels = df.iloc[:,idx:idx+num_attrs].values\n  predicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n  scores = df['score']\n  scores = [parse(score) for score in scores]\n  scores = np.array(scores)\n  ids = df.iloc[:,0].values \n\n  cname = '.'.join(os.path.basename(file_).split('.')[:-2])\n  cnames = [cname + '_' + str(x) for x in range(num_attrs)]\n  \n  if fid == 0:\n    df_result['id'] = ids\n    for i, label in enumerate(df.columns.values[idx:idx+num_attrs]):\n      df_result[label] = labels[:,i]\n    #df.loc[df.columns.values[idx:idx+num_attrs]] = labels\n\n\n  #df_result[cnames] = scores\n  for i, name in enumerate(cnames):\n    #print(i, name)\n    df_result[name] = scores[:,i]\n\ndf_result.to_csv(f'{idir}/result.csv', index=False)\n\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/hillclimb-ensembling.py",
    "content": "import pandas as pd\nimport numpy as np\nimport os\nfrom sklearn.metrics import roc_auc_score\nfrom sklearn.preprocessing import minmax_scale\n\n\"\"\"\nInitializes an empty ensemble\n\"\"\"\ndef init_hillclimb():\n    best_ensemble = {}\n    for label in LABELS:\n        best_ensemble[label] = []\n    best_score = {}\n    for label in LABELS:\n        best_score[label] = 0\n    \n    return best_ensemble, best_score\n\n\"\"\"\nScores average AUC for an ensemble per label\n\"\"\"\ndef score_ensemble(ensemble, label):\n    blend_preds = np.zeros(len(train))\n    \n    for model in ensemble:\n        blend_preds += minmax_scale(files[model][label])\n        \n    blend_preds = blend_preds/len(subnums)\n    score = roc_auc_score(train[label], blend_preds)\n    \n    return score\n\n\"\"\"\nFinds the optimal model to add next to an ensemble\n\"\"\"\ndef find_best_improvement(ensemble, label):\n    best_score = 0\n    best_ensemble = []\n    \n    for i in range(0,len(files)):\n        ensemble = ensemble + [i]\n\n        score = score_ensemble(ensemble, label)\n        \n        if score > best_score:\n            best_score  = score\n            best_ensemble = ensemble\n            \n        ensemble = ensemble[:-1]\n    \n    return best_ensemble, best_score\n        \n\"\"\"\nPerforms a step for each label\n\"\"\"\ndef climb(best_ensemble, best_score):\n    for label in LABELS:        \n        best_ensemble[label], best_score[label] = find_best_improvement(best_ensemble[label], label)\n        \n    return best_ensemble, best_score\n\n\"\"\"\nGets optimal blending weights after hillclimb\n\"\"\"\ndef get_optimal_weights(best_ensemble):\n    weights = {}\n    for label in LABELS:\n        weights[label] = {}\n        for num in set(best_ensemble[label]):\n            weights[label][num] = best_ensemble[label].count(num)/len(best_ensemble[label])\n    return weights\n\n\"\"\"\nConstructs a pandas dataframe using the optimal blending weights\n\"\"\"\ndef get_optimal_blend(optimal_weights):\n    sub = pd.read_csv(os.path.join(DATA_PATH, \"sample_submission.csv\"))\n    blend = sub.copy()\n    for label in LABELS:\n        print(label)\n        for key in optimal_weights[label]:\n            blend[label] += optimal_weights[label][key] * minmax_scale(get_sub_file(key)[label])\n            print(optimal_weights[label][key], filenames[key])\n            blend[label] = minmax_scale(blend[label])\n        \n    return blend\n\ndef get_sub_file(num):\n    filename = filenames[num]\n    filename = filename.replace(\"oof\", \"sub\")\n    return pd.read_csv(os.path.join(SUB_PATH, filename))\n\n\nif __name__ == \"__main__\":\n    DATA_PATH = \"../input/jigsaw-toxic-comment-classification-challenge/\"\n    SUB_PATH = \"../input/oofmodels/trained-models/\"\n    \n    train = pd.read_csv(os.path.join(DATA_PATH, \"train.csv\")).fillna(' ')\n    test = pd.read_csv(os.path.join(DATA_PATH, \"test.csv\")).fillna(' ')\n    \n    LABELS = train.columns[2:]\n    \n    # Get submissions and out-of-fold predictions\n    subnums = [29,51,52]\n    filenames = [\"oof\" + str(num) + \".csv\" for num in subnums]\n    files = [pd.read_csv(os.path.join(SUB_PATH, filename)) for filename in filenames]\n    \n    best_ensemble, best_score = init_hillclimb()\n    \n    # Run hillclimb\n    for i in range(25):\n        print(\"-------------\")\n        print(\"Step\", i)    \n        best_ensemble, best_score = climb(best_ensemble, best_score)\n        print(\"Best ensemble:\")\n        print(best_ensemble)\n        print(\"Best score:\")\n        print(best_score)\n        print(\"AUC:\", np.mean([best_score[label] for label in LABELS]))\n    \n    # Get optimal weights\n    opt_w = get_optimal_weights(best_ensemble)\n    print(\"Optimal weights:\")\n    print(opt_w)\n    \n    # Construct the blend\n    blend = get_optimal_blend(opt_w)\n    \n    # Submit\n    blend.to_csv(\"hillclimb.csv\", index=False)"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/lgb-adjust.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  now work well, worse then mean...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score \n#from sklearn.preprocessing import minmax_scale\nimport gezi\n\nimport matplotlib.pyplot as plt\n\nimport lightgbm as lgb\n\nfrom sklearn.metrics import f1_score \nfrom tqdm import tqdm\n\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.model_selection import KFold\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nnum_attrs = len(ATTRIBUTES)\nnum_classes = 4\n\nattr = 'others_willing_to_consume_again'\nattr = 'others_overall_experience'\nattr = 'location_distance_from_business_district'\n\ndef parse(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\nidx = 2\n\nresults = None\n\ndf2 = pd.DataFrame()\n\n\nfile_ = './ensemble.valid.debug.csv' \nprint(file_)\ndf = pd.read_csv(file_, sep=',')\ndf.sort_index(0, inplace=True)\nlabels = df.iloc[:,idx:idx+num_attrs].values\npredicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\nscores = df['score']\n#scores = df['logit']\n#scores = df['prob']\nscores = [parse(score) for score in scores]\nscores = np.array(scores)\nids = df.iloc[:,0].values \n\ndf2['id'] = ids\nfor i, label in enumerate(df.columns.values[idx:idx+num_attrs]):\n  df2[label] = labels[:,i]\n\nscores = np.reshape(scores, [-1, num_attrs, num_classes])\nfor i, name in enumerate(ATTRIBUTES):\n  #if name.startswith('others_willing_to_consume_again_'):\n  if name.startswith(attr):\n    for j in range(num_classes):\n      df2[f'{name}_{j}'] = scores[:, i, j]\n\n#print(df2)\n\ni = ATTRIBUTES.index(attr)\n\nidx = 1\n\nx = df2.iloc[:,idx+num_attrs:].values\n\nsteps = range(10)\n\nprobs = gezi.softmax(x * 10)\n\nweights = np.load('./mount/temp/ai2018/sentiment/class_weights.npy')\n\nweights = weights[i]\nweights = (weights * weights * weights)\n\nindex = np.argsort(-weights)\n\nprint(weights)\nprint(index)\n\nkf = KFold(n_splits=2, shuffle=True)\nkf.get_n_splits(x)\n\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.model_selection import KFold\nfor fold, (train_index, valid_index) in enumerate(kf.split(x)):\n  print('--------------------FOLD', fold, \"TRAIN:\", train_index, \"valid:\", valid_index)\n  labels_train = labels[train_index]\n  probs_train = probs[train_index] \n\n  labels_valid = labels[valid_index]\n  probs_valid = probs[valid_index]\n\n  def is_ok(factor):\n    return np.sum(np.argsort(-factor) == index) == 4\n\n  best = 0\n  for a in tqdm(range(1,11), ascii=True):\n    for b in range(1,11):\n      for c in range(1,11):\n        for d in range(1,11):\n          factor = np.array([a, b, c, d], dtype=np.float)\n          factor2 = factor * weights\n          if not is_ok(factor2):\n            continue\n          preds = probs_train * factor2 \n          f1 = f1_score(labels_train[:,i] + 2, np.argmax(preds, 1), average='macro')\n          if f1 > best:\n            print(factor, factor2, f1)\n            best = f1\n            best_factor = factor\n            preds = probs_valid * factor2 \n            print('valid', f1_score(labels_valid[:,i] + 2, np.argmax(preds, 1), average='macro'))\n\n  print(fold, attr)\n  print('best_factor', best_factor)\n  print('best', best)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/lgb-cv.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  now work well, worse then mean...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score \n#from sklearn.preprocessing import minmax_scale\nimport gezi\n\nimport matplotlib.pyplot as plt\n\nimport lightgbm as lgb\n\nfrom tqdm import tqdm\n\nfrom sklearn.metrics import f1_score \n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nnum_attrs = len(ATTRIBUTES)\nnum_classes = 4\n\nidx = 2\n\nresults = None\n\ndf2 = pd.DataFrame()\nidf2 = pd.DataFrame()\n\nvalid_file = './ensemble.valid.csv'\ninfer_file = './ensemble.infer.debug.csv'\n\nidf = pd.read_csv(infer_file)\nidf = idf.sort_values('id')\niscores = idf['logit']\niscores = [gezi.str2scores(score) for score in iscores]\n# iscores2 = []\n# for score in iscores: \n#   score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n#   score = np.reshape(score, [-1])\n#   iscores2.append(score)\n# iscores = iscores2\niscores = np.array(iscores)\n\nprint(valid_file)\ndf = pd.read_csv(valid_file, sep=',')\ndf = df.sort_values('id')\nlabels = df.iloc[:,idx:idx+num_attrs].values\npredicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n#scores = df['score']\nscores = df['logit']\n#scores = df['prob']\nscores = [gezi.str2scores(score) for score in scores]\n# scores2 = []\n# for score in scores: \n#   score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n#   score = np.reshape(score, [-1])\n#   scores2.append(score)\n# scores = scores2\nscores = np.array(scores)\nids = df.iloc[:,0].values \n\ncnames = []\nfor attr in ATTRIBUTES:\n  for i in range(4):\n    cnames.append(f'{attr}_{i}')\n\nprint('---------', cnames)  \ndf2['id'] = ids\nidf2['id'] = ids\nfor i, label in enumerate(df.columns.values[idx:idx+num_attrs]):\n  df2[label] = labels[:,i]\n\nfor i, name in enumerate(cnames):\n  df2[name] = scores[:,i]\n  idf2[name] = iscores[:, i]\n\nprint(\"Light Gradient Boosting Classifier: \")\n\nparams =  {\n        'boosting_type': 'gbdt',\n        'objective': 'multiclass',\n        'num_class': num_classes,\n        'feature_fraction': 0.8,\n        'bagging_fraction': 0.8,\n        'verbose': -1,\n        'metric': ['multi_logloss'],\n        \"learning_rate\": 0.2,\n        \"max_depth\": 5,\n        \"num_leaves\": 10,\n        \"reg_lambda\": 0.1,\n        \"num_trees\": 500,\n        \"min_data_in_leaf\": 100,\n          }\n\nclf = lgb.LGBMClassifier(max_depth=-1, learning_rate=0.05, objective='multiclass',\n                         random_state=314, silent=True, metric='None', \n                         n_jobs=4, n_estimators=5000, class_weight='balanced')\n\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.model_selection import KFold\n\nfrom sklearn.metrics import f1_score\ndef evaluate_macroF1_lgb(truth, predictions):  \n    # this follows the discussion in https://github.com/Microsoft/LightGBM/issues/1483\n    pred_labels = predictions.reshape(len(np.unique(truth)),-1).argmax(axis=0)\n    f1 = f1_score(truth, pred_labels, average='macro')\n    return ('macroF1', f1, True) \n\nimport lightgbm as lgb\n\ndef learning_rate_power_0997(current_iter):\n    base_learning_rate = 0.1\n    min_learning_rate = 0.02\n    lr = base_learning_rate  * np.power(.995, current_iter)\n    return max(lr, min_learning_rate)\n\n# attr = 'others_willing_to_consume_again'\n# attr = 'others_overall_experience'\n# i = ATTRIBUTES.index(attr)\n\nfor i, attr in tqdm(enumerate(ATTRIBUTES), ascii=True):\n  index = 1 + num_attrs + i * 4\n  index2 = 1 + i * 4\n  X_ = df2.iloc[:, index: index + 4]\n  iX_ = idf2.iloc[:, index2: index2 + 4]\n\n  f1_list = []\n  K = 8\n  y = df2[attr + '_y'] + 2\n\n  ix_ = iX_.values\n  X = X_.values\n  y = y.values\n  kf = KFold(n_splits=K)\n  kf.get_n_splits(X)\n  preds = []\n  ipreds = []\n  ys = []\n  for fold, (train_index, valid_index) in enumerate(kf.split(X)):\n    print(f'{i}:{attr} FOLD:{fold}')\n    X_train, X_valid = X[train_index], X[valid_index]\n    y_train, y_valid = y[train_index], y[valid_index]\n    ys.append(y_valid)\n\n    #print(X_train.shape, y_train.shape)\n    \n    fit_params={\"early_stopping_rounds\":300, \n                \"eval_metric\" : evaluate_macroF1_lgb, \n                \"eval_set\" : [(X_valid,y_valid)],\n                'eval_names': ['valid'],\n                #'callbacks': [lgb.reset_parameter(learning_rate=learning_rate_010_decay_power_099)],\n                'verbose': False,\n                'categorical_feature': 'auto'}\n\n    fit_params['callbacks'] = [lgb.reset_parameter(learning_rate=learning_rate_power_0997)]\n    \n    opt_parameters = {\n                      #'colsample_bytree': 0.9221304051471293, \n                      'min_child_samples': 150, \n                      'num_leaves': 2, \n                      #'subsample': 0.9510118790770111, \n                      'class_weight': 'balanced', \n                      'lambda_l1': 1.79,\n                      'lambda_l2': 1.71,\n                      'num_trees': 2000\n                      }\n    #clf_final = lgb.LGBMClassifier(**clf.get_params())\n    #clf_final.set_params(**opt_parameters)\n    clf_final = lgb.LGBMClassifier(bagging_fraction=0.9957236684465528, boosting_type='gbdt',\n        class_weight='balanced', colsample_bytree=0.7953949538181928,\n        feature_fraction=0.7333800304661316, lambda_l1=1.79753950286893,\n        lambda_l2=1.710590311253639, learning_rate=0.2, max_depth=6,\n        metric='None', min_child_samples=48,\n        min_child_weight=48.94067592560281,\n        min_split_gain=0.016737988780906453, n_estimators=5000, n_jobs=4,\n        num_leaves=34, objective='multiclass', random_state=None,\n        reg_alpha=0.0, reg_lambda=0.0, silent=True,\n        subsample=0.9033449610388691, subsample_for_bin=200000,\n        subsample_freq=1)\n    clf_final.set_params(**opt_parameters)\n\n    def learning_rate_power_0997(current_iter):\n        base_learning_rate = 0.1\n        min_learning_rate = 0.02\n        lr = base_learning_rate  * np.power(.997, current_iter)\n        return max(lr, min_learning_rate)\n\n    #Train the final model with learning rate decay\n    fit_params['verbose'] = 200\n    _ = clf_final.fit(X_train, y_train, **fit_params)\n\n    preds.append(clf_final.predict(X_valid))\n\n  preds = np.concatenate(preds)\n  y = np.concatenate(ys)\n\n  df[attr] = np.array(preds) - 2\n  ipreds = clf_final.predict(iX_)\n  idf[attr] = np.array(ipreds) - 2\n\ndf.to_csv('ensemble.valid.lgb.csv', index=False)\nidf.to_csv('ensemble.infer.lgb.csv', index=False)\n# attr = 'others_overall_experience'\n# #f1 = f1_score(labels[:,i] + 2, preds, average='macro')\n# f1 = f1_score(y, preds, average='macro')\n# f1_list.append(f1)\n# print(attr, f1)\n\n# f1 = np.mean(f1_list)\n\n# for i, attr in enumerate(ATTRIBUTES):\n#   print(attr, f1_list[i])\n# print('f1:', f1)\n\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/ensemble/lr-cv.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ensemble.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:04:21.026718\n#   \\Description  now work well, worse then mean...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport pandas as pd\nimport numpy as np \nfrom sklearn.metrics import f1_score \n#from sklearn.preprocessing import minmax_scale\nimport gezi\n\nimport matplotlib.pyplot as plt\n\nimport lightgbm as lgb\n\nfrom tqdm import tqdm\n\nfrom sklearn.metrics import f1_score \n\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.calibration import CalibratedClassifierCV\nfrom sklearn.metrics import log_loss\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nnum_attrs = len(ATTRIBUTES)\nnum_classes = 4\n\nidx = 2\n\nresults = None\n\ndf2 = pd.DataFrame()\nidf2 = pd.DataFrame()\n\nvalid_file = './ensemble.valid.csv'\ninfer_file = './ensemble.infer.debug.csv'\n\n# idf = pd.read_csv(infer_file)\n# idf = idf.sort_values('id')\n#iscores = idf['logit']\n#iscores = [gezi.str2scores(score) for score in iscores]\n# iscores2 = []\n# for score in iscores: \n#   score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n#   score = np.reshape(score, [-1])\n#   iscores2.append(score)\n# iscores = iscores2\niscores = np.array(iscores)\n\nprint(valid_file)\ndf = pd.read_csv(valid_file, sep=',')\ndf = df.sort_values('id')\nlabels = df.iloc[:,idx:idx+num_attrs].values\npredicts = df.iloc[:,idx+num_attrs:idx+2*num_attrs].values\n#scores = df['score']\nscores = df['logit']\n#scores = df['prob']\nscores = [gezi.str2scores(score) for score in scores]\n# scores2 = []\n# for score in scores: \n#   score = gezi.softmax(np.reshape(score, [num_attrs, 4]), -1)\n#   score = np.reshape(score, [-1])\n#   scores2.append(score)\n# scores = scores2\nscores = np.array(scores)\nids = df.iloc[:,0].values \n\ncnames = []\nfor attr in ATTRIBUTES:\n  for i in range(4):\n    cnames.append(f'{attr}_{i}')\n\nprint('---------', cnames)  \ndf2['id'] = ids\n#idf2['id'] = ids\nfor i, label in enumerate(df.columns.values[idx:idx+num_attrs]):\n  df2[label] = labels[:,i]\n\nfor i, name in enumerate(cnames):\n  df2[name] = scores[:,i]\n  #idf2[name] = iscores[:, i]\n\nfor i, attr in tqdm(enumerate(ATTRIBUTES), ascii=True):\n  index = 1 + num_attrs + i * 4\n  index2 = 1 + i * 4\n  X_ = df2.iloc[:, index: index + 4]\n  #iX_ = idf2.iloc[:, index2: index2 + 4]\n\n  f1_list = []\n  K = 5\n  y = df2[attr + '_y'] + 2\n\n  #ix_ = iX_.values\n  X = X_.values\n  y = y.values\n  kf = KFold(n_splits=K)\n  kf.get_n_splits(X)\n  preds = []\n  ipreds = []\n  ys = []\n  for fold, (train_index, test_index) in enumerate(kf.split(X)):\n    print(f'{i}:{attr} FOLD:{fold}')\n    X_train, X_valid, X_test = X[train_index[:-3000]], X[train_index[-3000:]], X[test_index]\n    y_train, y_valid y_test = y[train_index[:-3000]], y[train_index[-3000:]], y[test_index]\n    ys.append(y_test)\n\n    # Train uncalibrated random forest classifier on whole train and validation\n    # data and evaluate on test data\n    clf = RandomForestClassifier(n_estimators=25)\n    clf.fit(np.concatenate([X_train, X_valid], 0), np.concatenate([y_train, y_valid], 0))\n    clf_probs = clf.predict_proba(X_test)\n    score = log_loss(y_test, clf_probs)\n\n    # Train random forest classifier, calibrate on validation data and evaluate\n    # on test data\n    clf = RandomForestClassifier(n_estimators=25)\n    clf.fit(X_train, y_train)\n    clf_probs = clf.predict_proba(X_test)\n    sig_clf = CalibratedClassifierCV(clf, method=\"sigmoid\", cv=\"prefit\")\n    sig_clf.fit(X_valid, y_valid)\n    sig_clf_probs = sig_clf.predict_proba(X_test)\n    sig_score = log_loss(y_test, sig_clf_probs)\n\n    preds.append(clf_final.predict(X_test))\n\n  preds = np.concatenate(preds)\n  y = np.concatenate(ys)\n\n  df[attr] = np.array(preds) - 2\n  #ipreds = clf_final.predict(iX_)\n  #idf[attr] = np.array(ipreds) - 2\n\ndf.to_csv('ensemble.valid.calibrate.csv', index=False)\n#idf.to_csv('ensemble.infer.calibrate.csv', index=False)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/evaluate.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('info_path', None, '')\nflags.DEFINE_bool('auc_need_softmax', True, '')\n\nflags.DEFINE_string('class_weights_path', './mount/temp/ai2018/sentiment/class_weights.npy', '')\nflags.DEFINE_float('logits_factor', 10, '10 7239 9 7245 but test set 72589 and 72532 so.. a bit dangerous')\n\nflags.DEFINE_bool('show_detail', False, '')\n\nflags.DEFINE_string('i', '.', '')\n\nflags.DEFINE_string('metric_name', 'adjusted_f1/mean', '')\nflags.DEFINE_float('min_thre', 0., '0.705')\nflags.DEFINE_integer('len_thre', 256, '')\nflags.DEFINE_float('max_thre', 1000., '')\nflags.DEFINE_bool('adjust', True, '')\nflags.DEFINE_bool('more_adjust', True, '')\n\n#from sklearn.utils.extmath import softmax\nfrom sklearn.metrics import f1_score, log_loss, roc_auc_score\n\nfrom melt.utils.weight_decay import WeightDecay, WeightsDecay\n\nimport numpy as np\nimport glob\nimport gezi\nimport melt \nlogging = melt.logging\n\nfrom wenzheng.utils import ids2text\n#from projects.ai2018.sentiment.algos.config import ATTRIBUTES, NUM_ATTRIBUTES, NUM_CLASSES, CLASSES\nfrom algos.config import ATTRIBUTES, NUM_ATTRIBUTES, NUM_CLASSES, CLASSES\n\n\nimport pickle\nimport pandas as pd\nimport traceback\n\n#since we have same ids... must use valid and test 2 infos\nvalid_infos = {}\ntest_infos = {}\n\ndecay = None\nwnames = []\nclasses = ['0na', '1neg', '2neu', '3pos']\nnum_classes = len(classes)\n\nclass_weights = None\n\ndef load_class_weights():\n  global class_weights\n  if class_weights is None:\n    if FLAGS.adjust:\n      if not os.path.exists(FLAGS.class_weights_path):\n        FLAGS.class_weights_path = '/home/gezi/temp/ai2018/sentiment/class_weights.npy'\n        if not os.path.exists(FLAGS.class_weights_path):\n          FLAGS.class_weights_path = './class_weights.npy'\n      class_weights = np.load(FLAGS.class_weights_path)\n      for i in range(len(class_weights)):\n        for j in range(num_classes):\n          x = class_weights[i][j]\n          class_weights[i][j] = x * x * x \n      \n      if FLAGS.more_adjust:\n        class_weights[1][-2] = class_weights[1][-2] * pow(1.2, 22)\n        class_weights[-2][0] = class_weights[-2][0] * 60000\n    else:\n      class_weights = np.ones([NUM_ATTRIBUTES, NUM_CLASSES])\n  return class_weights\n\ndef init():\n  global valid_infos, test_infos\n  global wnames\n  load_class_weights()\n  \n  with open(FLAGS.info_path, 'rb') as f:\n    valid_infos = pickle.load(f)\n  if FLAGS.test_input:\n    with open(FLAGS.info_path.replace('.pkl', '.test.pkl'), 'rb') as f:\n      test_infos = pickle.load(f)\n\n  ids2text.init()\n\n  #min_learning_rate = 1e-5\n  min_learning_rate = FLAGS.min_learning_rate\n  if FLAGS.decay_target:\n    global decay\n    decay_target = FLAGS.decay_target\n    cmp = 'less' if decay_target == 'loss' else 'greater'\n    if FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES * NUM_CLASSES:\n      for attr in ATTRIBUTES:\n        for j, cs in enumerate(CLASSES):\n          wnames.append(f'{attr}_{j}{cs}')\n    elif FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n      wnames = ATTRIBUTES\n    if not decay:\n      logging.info('Weight decay target:', decay_target)\n      if FLAGS.num_learning_rate_weights <= 1:\n        decay = WeightDecay(patience=FLAGS.decay_patience, \n                      decay=FLAGS.decay_factor, \n                      cmp=cmp,\n                      decay_start_epoch=FLAGS.decay_start_epoch_,\n                      min_learning_rate=min_learning_rate)\n      else:\n        decay = WeightsDecay(patience=FLAGS.decay_patience, \n                      decay=FLAGS.decay_factor, \n                      cmp=cmp,\n                      min_learning_rate=min_learning_rate,\n                      decay_start_epoch=FLAGS.decay_start_epoch_,\n                      names=wnames)  \n\n\n# def to_predict(logits):\n#   probs = gezi.softmax(logits, 1)\n#   result = np.zeros([len(probs)], dtype=np.int32)\n#   for i, prob in enumerate(probs):\n#     # it can imporve but depends 0.6 or 0.7  or 0.8 ?\n#     if prob[0] >= 0.6:\n#       result[i] = -2\n#     else:\n#       result[i] = np.argmax(prob[1:]) - 1\n\n#   return result\n\ndef regression_to_class(predict):\n  if predict > 7:\n    return 3\n  elif predict > 5:\n    return 2\n  elif predict > 3:\n    return 1\n  else:\n    return 0\n\ndef to_class(predicts, thre=0.5):\n  if FLAGS.loss_type == 'hier':\n    ## TODO even hier.. still not good below...\n    # result = np.zeros([len(predicts)], dtype=np.int32)\n    # for i, predict in enumerate(predicts):\n    #   na_prob = gezi.sigmoid(predict[0])\n    #   if na_prob > thre:\n    #     result[i] = 0\n    #   else:\n    #     result[i] = np.argmax(predict[1:]) + 1\n    # return result\n    return np.argmax(predicts, -1)\n  elif FLAGS.loss_type == 'regression':\n    return np.array([regression_to_class(x) for x in predicts])\n  else:\n    return np.argmax(predicts, -1)\n  \ndef calc_f1(labels, predicts, model_path=None, name = 'f1'):\n  names = ['mean'] + ATTRIBUTES + classes\n  num_classes = NUM_CLASSES if FLAGS.binary_class_index is None else 2\n  if FLAGS.binary_class_index is not None:\n    names = ['mean'] + ATTRIBUTES + ['not', classes[FLAGS.binary_class_index]] \n\n  names = [f'{name}/' + x for x in names]\n  # TODO show all 20 * 4 ? not only show 20 f1\n  f1_list = []\n  class_f1 = np.zeros([num_classes])\n  all_f1 = []\n  for i in range(NUM_ATTRIBUTES):\n    #f1 = f1_score(labels[:,i], np.argmax(predicts[:,i], 1) - 2, average='macro')\n    # print(labels[:,i])\n    # print(predicts[:,i])\n    # print(len(labels[:,i]))\n    # print(len(predicts[:,i]))\n\n    scores = f1_score(labels[:,i], to_class(predicts[:,i]), average=None)\n    \n    # if FLAGS.binary_class_index is not None:\n    #   scores = [scores[1]]\n    ## this will be a bit better imporve 0.001, I will just use when ensemble\n    #scores = f1_score(labels[:,i], to_predict(predicts[:,i]), average=None)\n    class_f1 += scores\n    all_f1 += list(scores)\n    f1 = np.mean(scores)\n    f1_list.append(f1)\n  f1 = np.mean(f1_list)\n  class_f1 /= NUM_ATTRIBUTES\n\n  vals = [f1] + f1_list + list(class_f1)\n\n  if model_path is None:\n    if FLAGS.decay_target and FLAGS.decay_target == name:\n      if  FLAGS.num_learning_rate_weights <= 1:\n        target = f1\n      elif FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES * NUM_CLASSES:\n        target = all_f1\n      elif FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n        target = f1_list\n      else:\n        raise f'Unsupported weights number{FLAGS.num_learning_rate_weights}'\n \n      weights = decay.add(target)\n      if FLAGS.num_learning_rate_weights > 1:\n        vals += list(weights)\n        names += [f'weights/{name}' for name in wnames]\n\n  return vals, names\n\ndef calc_loss(labels, predicts, model_path=None):\n  \"\"\"\n  softmax loss, mean loss and per attr loss\n  \"\"\"\n  names = ['mean'] + ATTRIBUTES\n  names = ['loss/' + x for x in names]\n  losses = []\n  for i in range(NUM_ATTRIBUTES):\n    loss = log_loss(labels[:,i], predicts[:,i])\n    losses.append(loss)\n  loss = np.mean(losses)\n  vals = [loss] + losses\n\n  if model_path is None:\n    if FLAGS.decay_target and FLAGS.decay_target == 'loss':\n      if  FLAGS.num_learning_rate_weights <= 1:\n        target = loss\n      elif FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n        target = losses\n      else:\n        raise f'Unsupported weights number{FLAGS.num_learning_rate_weights}'\n\n      weights = decay.add(target)\n      if FLAGS.num_learning_rate_weights > 1:\n        vals += list(weights)\n        names += [f'weights/{name}' for name in wnames]\n\n  return vals, names\n\n# TODO understand macro micro..\ndef calc_auc(labels, predicts, model_path=None):\n  \"\"\"\n  per attr auc\n  \"\"\"\n  names = ['mean'] + ATTRIBUTES + classes\n  names = ['auc/' + x for x in names]\n  aucs_list = []\n  class_aucs = np.zeros([num_classes])\n  for i in range(NUM_ATTRIBUTES):\n    aucs = []\n    #print(np.sum(predicts[:,i], -1))\n    for j in range(NUM_CLASSES):\n      auc = roc_auc_score((labels[:, i] == j).astype(int), predicts[:, i, j])\n      aucs.append(auc)\n    auc = np.mean(aucs) \n    aucs_list.append(auc)\n    class_aucs += np.array(aucs)\n  class_aucs /= NUM_ATTRIBUTES\n  auc = np.mean(aucs_list)\n  vals = [auc] + aucs_list + list(class_aucs)\n\n  if model_path is None:\n    if FLAGS.decay_target and FLAGS.decay_target == 'auc':\n      if  FLAGS.num_learning_rate_weights <= 1:\n        target = auc\n      elif FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n        target = aucs_list\n      else:\n        raise f'Unsupported weights number{FLAGS.num_learning_rate_weights}'\n\n      weights = decay.add(target)\n      if FLAGS.num_learning_rate_weights > 1:\n        vals += list(weights)\n        names += [f'weights/{name}' for name in wnames]\n\n  return vals, names\n\ndef evaluate(labels, predicts, ids=None, model_path=None):\n  # TODO here use softmax will cause problem... not correct.. for f1\n  probs = gezi.softmax(predicts)\n\n  #adjusted_probs = gezi.softmax(predicts * FLAGS.logits_factor) * class_weights * [1, 4., 5., 1.]\n  adjusted_probs = gezi.softmax(predicts * FLAGS.logits_factor) * class_weights \n\n  mean_vals = []\n  mean_names = []\n\n  #vals, names = calc_f1(labels, predicts, model_path)\n  vals, names = calc_f1(labels, probs, model_path)\n\n  mean_vals.append(vals[0])\n  mean_names.append(names[0])\n\n  vals = vals[1:]\n  names = names[1:]\n\n  vals_adjusted, names_adjusted = calc_f1(labels, adjusted_probs, model_path, name='adjusted_f1')\n  mean_vals.append(vals_adjusted[0])\n  mean_names.append(names_adjusted[0])\n  \n  vals += vals_adjusted[1:]\n  names += names_adjusted[1:]\n  \n  vals_loss, names_loss = calc_loss(labels, probs, model_path)\n\n  mean_vals.append(vals_loss[0])\n  mean_names.append(names_loss[0])\n\n  vals += vals_loss[1:]\n  names += names_loss[1:]\n  \n  probs = predicts if not FLAGS.auc_need_softmax else probs\n  vals_auc, names_auc = calc_auc(labels, probs, model_path)\n\n  mean_vals.append(vals_auc[0])\n  mean_names.append(names_auc[0])\n\n  vals += vals_auc[1:]\n  names += names_auc[1:] \n\n  vals = mean_vals + vals \n  names = mean_names + names \n\n  return vals, names\n  \nvalid_write = None\ninfer_write = None \n\ndef write(ids, labels, predicts, ofile, ofile2=None, is_infer=False):\n  infos = valid_infos if not is_infer else test_infos\n  df = pd.DataFrame()\n  df['id'] = ids\n  contents = [infos[id]['content_str'] for id in ids]\n  df['content'] = contents\n  if labels is not None:\n    for i in range(len(ATTRIBUTES)):\n      df[ATTRIBUTES[i] + '_y'] = labels[:,i] - 2\n  for i in range(len(ATTRIBUTES)):\n    # nitice if na only then if -1 means predict na as finally should be -2\n    if FLAGS.loss_type == 'regression':\n      df[ATTRIBUTES[i]] = predicts[:,i]\n    else:\n      df[ATTRIBUTES[i]] = np.argmax(predicts[:,i], 1) - 2\n\n  if is_infer:\n    df2 = df.sort_values('id') \n    df2.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n  \n  num_classes = NUM_CLASSES if FLAGS.binary_class_index is None else 1\n  if FLAGS.loss_type == 'regression':\n    num_classes = 1\n  df['score'] = [list(x) for x in np.reshape(predicts, [-1, NUM_ATTRIBUTES * num_classes])]\n  # for inference using length buckts need to sort, so for safe just all sort\n  try:\n    ids = [int(x) for x in ids]\n    df['id'] = ids\n  except Exception:\n    pass\n  df= df.sort_values('id') \n  if not is_infer:\n    # TODO FIXME new run, seg fild seems luanma.. only on p40 new run..\n    #df['seg'] = [ids2text.ids2text(infos[str(id)]['content'], sep='|') for id in ids]\n    df.to_csv(ofile, index=False, encoding=\"utf_8_sig\")\n  if is_infer:\n    ## write debug\n    #df2 = df\n    #df2['seg'] = [ids2text.ids2text(infos[str(id)]['content'], sep='|') for id in ids]\n    #df2.to_csv(ofile2, index=False, encoding=\"utf_8_sig\")\n    df.to_csv(ofile2, index=False, encoding=\"utf_8_sig\")\n\ndef valid_write(ids, labels, predicts, ofile):\n  return write(ids, labels, predicts, ofile)\n\ndef infer_write(ids, predicts, ofile, ofile2):\n  return write(ids, None, predicts, ofile, ofile2, is_infer=True)\n\n\ndef evaluate_file(file):\n  print('-------------------------', file)\n  df = pd.read_csv(file)\n  \n  scores = df['score']\n  scores = [gezi.str2scores(score) for score in scores] \n  scores = np.array(scores)\n  \n  predicts = np.reshape(scores, [-1, NUM_ATTRIBUTES, NUM_CLASSES])  \n  \n  # for auc might need to do this \n  #predicts /= 26\n  \n  idx = 2\n  length = NUM_ATTRIBUTES \n\n  labels = df.iloc[:,idx:idx+length].values\n  labels += 2\n\n  #print(labels.shape, predicts.shape)\n  assert labels.shape[0] == 15000, labels.shape[0]\n  vals, names = evaluate(labels, predicts)\n\n  if FLAGS.show_detail:\n    for name, val in zip(names, vals):\n      print(name, val)\n\n  print('---------------------------------')\n  for name, val in zip(names, vals):\n    if 'mean' in name:\n      print(name, val)\n\n  lens = [len(x) for x in df['content'].values]\n  predicts1 = []\n  predicts2 = []\n\n  labels1 = []\n  labels2 = []\n  for len_, label, predict in zip(lens, labels, predicts):\n    if len_ >= FLAGS.len_thre:\n      predicts2.append(predict)\n      labels2.append(label)\n    else:\n      predicts1.append(predict)\n      labels1.append(label)\n  predicts1 = np.array(predicts1)\n  labels1 = np.array(labels1)\n  print('num docs len < ', FLAGS.len_thre, len(predicts1))\n  vals1, names1 = evaluate(labels1, predicts1)\n  for name, val in zip(names1, vals1):\n    if 'mean' in name:\n      print(name, val) \n  predicts2 = np.array(predicts2)\n  labels2 = np.array(labels2) \n  print('num docs len >= ', FLAGS.len_thre, len(predicts2))\n  vals2, names2 = evaluate(labels2, predicts2)\n  for name, val in zip(names2, vals2):\n    if 'mean' in name:\n      print(name, val) \n\n  return vals, names\n\nif __name__ == '__main__':\n  load_class_weights()\n  input = FLAGS.i\n  os.makedirs('./bak', exist_ok=True)\n  if os.path.isdir(input):\n    df = pd.DataFrame()\n    fnames = []\n    mnames = []\n    m = {}\n    for file in glob.glob('%s/*valid.csv' % input):\n      try:\n        fname = os.path.basename(file)\n        fnames.append(fname)\n        fname = gezi.strip_suffix(fname, '.valid.csv')\n\n        if 'ensemble' in file:\n          mname = file\n          suffix = ''\n        else: \n          if '_ckpt-' in fname:\n            mname, suffix = fname.split('_ckpt-')\n          else:\n            mname, suffix = fname.split('_model.ckpt-')\n            \n        mnames.append(mname)\n        \n        vals, names = evaluate_file(file)\n        for val, name in zip(vals, names):\n          if name not in m:\n            m[name] = [val]\n          else:\n            m[name].append(val)\n          if name == FLAGS.metric_name and (val < FLAGS.min_thre or val > FLAGS.max_thre):\n            print('-----remove file', file, '%s:%f' % (FLAGS.metric_name, val))\n            command = 'mv %s.* ./bak' % fname\n            print(command)\n            os.system(command)\n      except Exception:\n        print(file)\n        traceback.print_exc()\n\n    df['model'] = mnames\n    df['file'] = fnames\n    for key, val in m.items():\n      df[key] = val\n    df = df.sort_values('adjusted_f1/mean', ascending=False)\n    df.to_csv('models.csv', index=False)\n  else:\n    evaluate_file(FLAGS.i)\n \n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/README.md",
    "content": "-----tf \nrnet.nolatt \nrnet \n\nlm\nft \nglove \n\njieba \nsp10w \nsp1w\nmix \nchar \n\nhidden 400\npadding \nconcat layers \nreccrent dropout \ngate attention \n\ntransformer (bert)\ntransformer (bert) + gru\n\n-----torch   \nmreader.nolatt \nmreader\n\nbertopt + unkaug \nadamax + loss decay \n\nhidden 768\nno padding \nnot concat layers\nsimple dropout \nsfu attention \n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.cutfront.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.cutfront/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --cutfront=1 \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.finetune.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --warmup_steps=2000 \\\n        --num_decay_epochs=3 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.finetune.3.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.3/\nnum_epochs=4\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-8 \\\n        --num_decay_epochs=4 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.finetune4.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.4/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.rnn.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.rnn.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --transformer_add_rnn=1 \\\n        --rnn_hidden_size=768 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.topkatt.cutfront.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.topkatt.cutfront/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --cut_front=1 \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.topkatt.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.topkatt.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.bert.topkatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.topkatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.char.transformer.nbert.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# from 72k epoch 16.45 change min lr from 5e-7 1e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.mix.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.mix.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.mix.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.mix.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.mreader.lm.2layer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm.2layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.mreader.lm.2layer.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm.2layer.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.mreader.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.mreader.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.hidden600.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --restore_exclude=adam,global_step,learning_rate \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.nolatt.hidden600.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.nolatt.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnet.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnetv2.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnetv2.$CELL.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNetV2 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/tf.word.rnetv2.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnetv2.$CELL.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNetV2 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.char.mreader.lm.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.lm.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.char.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.char.mreader.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.char.mreader.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.mix.mreader.lm.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mix.mreader.lm.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.mix.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mix.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.mix.mreader.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mix.mreader.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.bertopt.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.baike.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.baike/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.addbaike/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.short.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft.short'\n  echo 'use default SRC word.jieba.ft.short'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 1 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden768.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden768/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden768/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=768 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.bertopt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden768.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug.hidden768/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden768/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=768 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer/v11/torch.word.mreader.nopad.lm.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n  \ntf.enable_eager_execution()\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\n#from algos.model import *\nfrom algos.loss import criterion\nimport algos.model as base\nfrom dataset import Dataset\nimport evaluate as ev\n\nfrom prepare.text2ids import text2ids\nfrom wenzheng.utils import ids2text\nimport numpy as np\n\nfrom algos.config import ATTRIBUTES\n\n\ndef main(_):\n  melt.apps.init()\n  \n  #ev.init()\n\n  model = getattr(base, FLAGS.model)()\n  model.debug = True\n\n  melt.eager.restore(model)\n\n  ids2text.init()\n  vocab = ids2text.vocab\n\n  content = '这是一个很好的餐馆，菜很不好吃，我还想再去'\n  content = '这是一个很差的餐馆，菜很不好吃，我不想再去'\n  content = '这是一个很好的餐馆，菜很好吃，我还想再去'\n  content = '这是一个很好的餐馆，只是菜很难吃，我还想再去'\n  content = '这是一个很好的餐馆，只是菜很不好吃，我还想再去'\n\n  cids = text2ids(content)\n  words = [vocab.key(cid) for cid in cids]\n  print(cids)\n  print(ids2text.ids2text(cids))\n  x = {'content': [cids]}\n  logits = model(x)[0]\n  probs = gezi.softmax(logits, 1)\n  print(probs)\n  print(list(zip(ATTRIBUTES, [list(x) for x in probs])))\n\n  predicts = np.argmax(logits, -1) - 2\n  print('predicts ', predicts)\n  print(list(zip(ATTRIBUTES, predicts)))\n  adjusted_predicts = ev.to_predict(logits)\n  print('apredicts', adjusted_predicts)\n  print(list(zip(ATTRIBUTES, adjusted_predicts)))\n\n  # print words importance scores\n  word_scores_list = model.pooling.word_scores\n\n  for word_scores in word_scores_list:\n    print(list(zip(words, word_scores[0].numpy())))\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/lm-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\n# import projects\n# algos = projects.ai2018.sentiment.algos\n#from algos.model import *\nfrom algos.loss import criterion\nimport algos.model as base\nfrom lm_dataset import Dataset\n\ndef main(_):\n  FLAGS.num_folds = 8\n  melt.apps.init()\n\n  embedding = None\n  if FLAGS.word_embedding_file and os.path.exists(FLAGS.word_embedding_file):\n    embedding = np.load(FLAGS.word_embedding_file)\n    FLAGS.emb_dim = embedding.shape[1]\n\n  model = getattr(base, FLAGS.model)(embedding, lm_model=True)\n\n  logging.info(model)\n\n  train = melt.apps.get_train()\n\n  train(Dataset,\n        model,  \n        melt.losses.bilm_loss)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/lm_dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom collections import namedtuple\n\nimport gezi\nimport melt\nlogging = melt.logging\nfrom wenzheng.utils import vocabulary\n\nfrom algos.config import NUM_ATTRIBUTES\nimport prepare.config\n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n\n    def get_aug_factor():\n      global_step = tf.train.get_or_create_global_step()\n      num_examples = tf.constant(self.num_examples_per_epoch('train'), dtype=tf.int64)\n      return tf.cond(tf.equal(tf.to_int64(global_step / num_examples) % 2, 0), lambda: 0., lambda: 1.)\n\n    def undersampling_filter(x, y):\n      prob = tf.cond(tf.equal(x['source'], 'dianping'), lambda: 1., lambda: FLAGS.other_corpus_factor)\n      #prob = tf.cond(tf.equal(tf.strings.split(tf.expand_dims(x['source'], 0),'.').values[-1], 'train'), lambda: 1., lambda: FLAGS.other_corpus_factor)\n      #is_aug = tf.to_float(tf.equal(x['source'], 'augument.train'))\n      #is_aug = tf.to_float(tf.equal(tf.strings.split(tf.expand_dims(x['source'], 0),'.').values[0], 'aug'))\n      #aug_factor = get_aug_factor()\n      #prob *=  is_aug * aug_factor + (1 - is_aug) * (1 - aug_factor)      \n      acceptance = tf.less_equal(tf.random_uniform([], dtype=tf.float32), prob)\n      return acceptance\n    \n    self.filter_fn = undersampling_filter if FLAGS.other_corpus_factor < 1 else None\n    #self.filter_fn = undersampling_filter\n    \n  def parser(self, example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    features_dict = {\n      'content_str': tf.FixedLenFeature([], tf.string),\n      'content': tf.VarLenFeature(tf.int64),\n      'char': tf.VarLenFeature(tf.int64),\n      'source':  tf.FixedLenFeature([], tf.string),\n      }\n\n    #if FLAGS.use_char:\n    #features_dict['chars'] = tf.VarLenFeature(tf.int64)\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    content = features['content']\n    content = melt.sparse_tensor_to_dense(content)\n    # if FLAGS.add_start_end:\n    #   content = tf.concat([tf.constant([vocabulary.start_id()], dtype=tf.int64), content, tf.constant([vocabulary.end_id()], dtype=tf.int64)], 0)\n    # NOTICE! not work in dataset... so put to later step like in call but should do the same thing again for pytorch..\n    # if FLAGS.vocab_min_count:\n    #   content = melt.greater_then_set(content, FLAGS.vocab_min_count, UNK_ID)\n\n    features['content'] = content\n\n    #if FLAGS.use_char:\n    chars = features['char']\n    chars = melt.sparse_tensor_to_dense(chars)\n    # if FLAGS.char_min_count:\n    #   chars = melt.greater_then_set(chars, FLAGS.char_min_count, UNK_ID)\n    features['char'] = chars\n\n    features['id'] = tf.constant(0, dtype=tf.int64)\n\n    x = features\n    y = x['content']\n    \n    return x, y\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/README.md",
    "content": "first sh ./gen-vocab.sh to get vocab.txt\n\nthen using like vocab-mincount.. to get vocab.5k.txt \nthen merge with all chars from vocab.txt using vocab-add-char.py to get vocab.5k.chars.txt this is used for word embedding train  \n\nthen for canyin and dianping\n\njust use ./gen-mix-seg-canyin.py  ./gen-char-seg-canyin.py ...\nnot use ./gen-seg-canyin.py for this project for we do not want to consider more words not used here  \n\ndo also for dianping and train/valid/test data  \n\nwe will use all these data as word embedding pretrain   \n\nsh ./gen-vocab-v2.sh will use simple just basic seg   \nNOTICE this is depreceated for v2\njust use same vocab as v1, v2 only diff when gen tfrecord will not feed single and will has char embedding   \n\nsince v2 word + char concat prove to be better then seg basic + single so try to further try seperate word and char embedding as V3  \nthe script ./run-noemb-v3.sh is the same as ./run-noemb-v2.sh be sure you have char_vocab.txt under tfrecord dir    \n\n\n3 seg method\n1.char  char only \n2.word.feed  basic + digit + feed_sginle  only consider first 6k top freq word \n3.word.basic  basic  \n\n\nnow change to below process\n\n1. seg for train+valid+test   \n2. get vocab from train+valid+test   \n3. generate tfrecord using seg result and vocab   \n\nuse 4 seg method with below name  \n1. char  \n2. mix(jieba)\n3. word (jieba pos, should be word.jieba)  \n4. besg(word by phrase bseg should be word.besg)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/__init__.py",
    "content": "import projects.ai2018.sentiment.prepare.filter\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/config",
    "content": "data_dir=./mount/data/ai2018/sentiment/\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 14:44:21.024368\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('use_char', False, '')\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_integer('word_limit', 3000, '')\nflags.DEFINE_integer('content_limit_', None, 'used for bert 512')\n#flags.DEFINE_bool('use_pos', False, '')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/embeddings/fasttext/run.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the BSD-style license found in the\n# LICENSE file in the root directory of this source tree. An additional grant\n# of patent rights can be found in the PATENTS file in the same directory.\n#\n\nRESULTDIR=./\nDATADIR=./\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nmake\n\n./fasttext skipgram -input \"${DATADIR}\"/text -output \"${RESULTDIR}\"/text -lr 0.025 -dim 300 \\\n  -ws 5 -epoch 10 -minCount 20 -neg 5 -loss ns -bucket 2000000 \\\n  -minn 2 -maxn 3 -thread 4 -t 1e-4 -lrUpdateRate 100\n\ncut -f 1,2 \"${DATADIR}\"/rw/rw.txt | awk '{print tolower($0)}' | tr '\\t' '\\n' > \"${DATADIR}\"/queries.txt\n\ncat \"${DATADIR}\"/queries.txt | ./fasttext print-word-vectors \"${RESULTDIR}\"/text.bin > \"${RESULTDIR}\"/vectors.txt\n\npython eval.py -m \"${RESULTDIR}\"/vectors.txt -d \"${DATADIR}\"/rw/rw.txt\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/embeddings/glove/run.sh",
    "content": "#!/bin/bash\nset -e\n\n# Makes programs, downloads sample data, trains a GloVe model, and then evaluates it.\n# One optional argument can specify the language used for eval script: matlab, octave or [default] python\n\nmake\n\n# 8 iter nan\nCORPUS=text\nVOCAB_FILE=vocab.txt\nCOOCCURRENCE_FILE=cooccurrence.bin\nCOOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin\nBUILDDIR=build\nSAVE_FILE=vectors\nVERBOSE=2\nMEMORY=4.0\nVOCAB_MIN_COUNT=20\nVECTOR_SIZE=300\nMAX_ITER=15\nWINDOW_SIZE=15\nBINARY=2\nNUM_THREADS=8\nX_MAX=10\n\necho \"$ $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\"\n$BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\necho \"$ $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\"\n$BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\necho \"$ $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\"\n$BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\necho \"$ $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\"\n$BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\n\necho \"$ python eval/python/evaluate.py\"\npython eval/python/evaluate.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/filter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   filter.py\n#        \\author   chenghuige  \n#          \\date   2018-09-14 21:55:52.069104\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_bool('simplify', False, '')\n\nimport sys \nimport os\n\nimport gezi\n\ndef filter_duplicate_space(text):\n  return ''.join([x for i, x in enumerate(text) if not (i < len(text) - 1 and not(x.strip()) and not(text[i + 1].strip()))])\n\n# # def translate_emotion(word):\n# #   dic = {\n# #     '🍲' : '火锅'，\n# #     '🌶️' : '辣'\n# #   } \n# #   if word in dic:\n# #     return dic[word]\n# #   return word\n\n# def translate_emotions(text):\n#   return text.replace('🍲', '火锅').replace('🌶️', '辣')\n\ndef filter(x):\n  x = x.strip('\"')\n  x = filter_duplicate_space(x)\n  x = gezi.remove_duplicate(x)\n  x = gezi.filter_quota(x).replace('\\r', '\\x01').replace('\\n', '\\x02').replace('<R>', '\\x01').replace('<N>', '\\x02').replace('\\t', ' ').replace(' ', '\\x03')\n\n  # # So here actually always fals as is done in preprocess using py2  \n  # if FLAGS.simplify:\n  #   # to lower, to simplify, to half\n  #   x = gezi.to_simplify(x)\n  #x = translate_emotions(x)\n  \n  # TODO if needed try to find case usefull or not　I think especally for sentiment not reading, lower is ok not loose important info like NIKE\n  x = x.lower()\n  return x\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/find-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-01 20:35:40.158875\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd \nfrom projects.ai2018.sentiment.prepare import filter\n\ndf = pd.read_csv('/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv')\n\nchars = set()\nfor comment in df['content']:\n  comment = filter.filter(comment)\n  for w in comment:\n    if w not in chars:\n      print(w)\n      chars.add(w)\n\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\nchars2 = [x.upper() for x in chars]\nchars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-canyin.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./raw_comment_v2.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['c{}'.format(i) for i in range(len(df))]\ncontents = df['content'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\nlabels = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['score']\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -2\n  labels.append(label)\n  \ndf2['others_overall_experience'] = labels\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./canyin.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-canyin.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-content.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-content.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 10:37:16.658519\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfiles = [\n         './mount/data/ai2018/sentiment/train.csv', \n         './mount/data/ai2018/sentiment/valid.csv', \n         './mount/data/ai2018/sentiment/test.csv'\n        ]\n            \n\nimport pandas as pd\nimport filter\n\nfor infile in files:\n  df = pd.read_csv(infile)\n\n  for row in df.iterrows():\n    content = filter.filter(row[1][1])\n    print(content)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-dianping.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./ratings.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['d{}'.format(i) for i in range(len(df))]\ncontents = df['comment'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\ndef score2class(score):\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -1\n  return label  \n\nlabels = []\nlabels_env = []\nlabels_flavor = []\nlabels_service = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['rating']\n  score_env = row['rating_env']\n  score_flavor = row['rating_flavor']\n  score_service = row['rating_service']\n\n  labels.append(score2class(score))\n  labels_env.append(score2class(score_env))\n  labels_flavor.append(score2class(score_flavor))\n  labels_service.append(score2class(score_service))\n\n  \ndf2['others_overall_experience'] = labels\ndf2['environment_decoration'] = labels_env\ndf2['dish_taste'] = labels_flavor\ndf2['service_waiters_attitude'] = labels_service\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./dianping.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-dianping.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-lm-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/my-embedding/Glove-sentiment-jieba/valid', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft/vocab.txt', 'vocabulary txt file')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_string('source', 'dianping', 'dianping or baike or zhidao or zhihu')\nflags.DEFINE_integer('max_sentence_len', 20, '')\nflags.DEFINE_string('tfrecord_dir', 'tfrecord', '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\nvocab = None\nchar_vocab = None\n\ndef build_features(file_):\n  if not os.path.isfile(file_):\n    return \n\n  file_name = os.path.basename(file_)\n  assert os.path.isdir(FLAGS.input)\n  mode = 'train' if 'train' in FLAGS.input else 'valid'\n  dir_ = os.path.dirname(os.path.dirname(FLAGS.input))\n  out_file = os.path.join(dir_ , '{}/{}/{}.record'.format(FLAGS.tfrecord_dir, mode, file_name))\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  \n  print('infile', file_, 'out_file', out_file)\n\n  # if os.path.exists(out_file):\n  #   return\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for line in tqdm(open(file_), total=1e6, ascii=True):\n      try:\n        line = line.rstrip('\\n')\n        #line = filter.filter(line)\n        words = line.split(' ')\n        words = gezi.add_start_end(words)\n        words_list = gezi.break_sentence(words, FLAGS.max_sentence_len)\n\n        for words in words_list:\n          content = ' '.join(words)\n          content_ids = [vocab.id(x) for x in words]\n\n          if len(content_ids) > max_len:\n            max_len = len(content_ids)\n            print('max_len', max_len)\n\n          if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n            print('{} {} {}'.format(id, len(content_ids), content_ori))\n\n          content_ids = content_ids[:FLAGS.word_limit]\n          words = words[:FLAGS.word_limit]\n\n          # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode\n          if FLAGS.use_char:\n            chars = [list(word) for word in words]\n            char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n            \n            vocab_ = char_vocab if char_vocab else vocab\n\n            for i, token in enumerate(chars):\n              for j, ch in enumerate(token):\n                if j == FLAGS.char_limit:\n                  break\n                char_ids[i, j] = vocab_.id(ch)\n\n            char_ids = list(char_ids.reshape(-1))\n          else:\n            char_ids = [0]\n\n          feature = {\n                      'content':  melt.int64_feature(content_ids),\n                      'content_str': melt.bytes_feature(content), \n                      'char': melt.int64_feature(char_ids),\n                      'source': melt.bytes_feature(FLAGS.source), \n                    }\n\n          # TODO currenlty not get exact info wether show 1 image or 3 ...\n          record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n          writer.write(record)\n          num += 1\n          global counter\n          with counter.get_lock():\n            counter.value += 1\n          global total_words\n          with total_words.get_lock():\n            total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\ndef main(_):  \n  FLAGS.word_limit = 2000\n  global vocab, char_vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_)\n  print('vocab file', FLAGS.vocab_, 'vocab size', vocab.size())\n  if FLAGS.use_char:\n    char_vocab = gezi.Vocabulary(FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt'))\n\n  files = glob.glob(FLAGS.input + '/*') \n  pool = multiprocessing.Pool(multiprocessing.cpu_count())\n  pool.map(build_features, files)\n  pool.close()\n  pool.join()\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  mode = 'train' if 'train' in FLAGS.input else 'valid'\n  dir_ = os.path.dirname(os.path.dirname(FLAGS.input))\n  os.system('mkdir -p %s/%s/%s' % (dir_, FLAGS.tfrecord_dir, mode))\n  out_file = os.path.join(dir_, '{}/{}/num_records.txt'.format(FLAGS.tfrecord_dir, mode))\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-mix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-mix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-10-23 06:48:14.182012\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nvocab_file = sys.argv[1] \nchar_vocab_file = sys.argv[2]\nnum_words = int(sys.argv[3]) \n\nwords = set()\nfor i, line in enumerate(open(vocab_file)):\n  if i == num_words:\n    break\n  word, count = line.rstrip('\\n').split('\\t')\n\n  words.add(word)\n  print(word, count, sep='\\t')\n\nfor line in open(char_vocab_file):\n  ch, count = line.rstrip('\\n').split('\\t')\n  if ch not in words:\n    print(ch, count, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/sentiment/valid.csv', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_integer('num_records_', None, '10 or 5?')\nflags.DEFINE_integer('start_index', 0, 'set it to 1 if you have valid file which you want to put in train as fold 0')\nflags.DEFINE_bool('use_fold', True, '')\nflags.DEFINE_bool('augument', False, '')\nflags.DEFINE_string('mode', None, '')\nflags.DEFINE_string('mode_', None, '')\nflags.DEFINE_bool('ignore_start_end', False, 'If you have not remove start and end quota before,you can filter here')\nflags.DEFINE_bool('add_start_end_', True, '')\nflags.DEFINE_bool('has_position', False, '')\nflags.DEFINE_bool('fixed_vocab', False, '')\nflags.DEFINE_string('start_mark', '<S>', '')\nflags.DEFINE_string('end_mark', '</S>', '')\nflags.DEFINE_string('unk_word', '<UNK>', '')\nflags.DEFINE_bool('word_only', False, '')\nflags.DEFINE_bool('use_soft_label_', False, '')\nflags.DEFINE_bool('is_soft_label', False, '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\ndf = None\n\nvocab = None\nchar_vocab = None\npos_vocab = None\nner_vocab = None\n\nseg_result = None\npos_result = None\nner_result = None\n\ndef get_mode(path):\n  mode = 'train'\n  if 'train' in path:\n    mode ='train'\n  elif 'valid' in path:\n    mode = 'train'\n  elif 'test' in path:\n    mode = 'test'\n  elif '.pm' in path:\n    mode = 'pm'\n  elif 'trans' in path:\n    mode = 'trans' \n  elif 'deform' in path:\n    mode = 'deform'\n  elif 'canyin' in path:\n    mode = 'canyin'\n  elif 'dianping' in path:\n    mode = 'dianping'\n  elif 'ensemble.infer.debug.csv' in path:\n    mode = 'test'\n  if FLAGS.augument:\n    mode = 'aug.' + mode\n  if FLAGS.mode:\n    mode = FLAGS.mode\n  return mode\n\ndef build_features(index):\n  mode = get_mode(FLAGS.input)\n\n  start_index = FLAGS.start_index\n\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/{1}.record'.format(mode, index + start_index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(df)\n  num_records = FLAGS.num_records_ \n  ## TODO FIXME whty here still None ? FLAGS.num_records has bee modified before in main as 7 ...\n  #print('---------', num_records, FLAGS.num_records_)\n  if not num_records:\n    if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n      num_records = 1\n    else:\n      num_records = 7\n  #print('------------------', num_records, FLAGS.num_records_)\n  start, end = gezi.get_fold(total, num_records, index)\n\n  print('total', total, 'infile', FLAGS.input, 'out_file', out_file)\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for i in tqdm(range(start, end), ascii=True):\n      try:\n        row = df.iloc[i]\n        id = str(row[0])\n\n        if seg_result:\n          if id not in seg_result:\n            print('id %s ot found in seg_result' % id)\n            continue\n          words = seg_result[id]\n\n          if FLAGS.content_limit_:\n            # NOW only for bert!\n            if len(words) + 2 > FLAGS.content_limit_:\n              words = words[:FLAGS.content_limit_ - 3 - 50] + ['[MASK]'] + words[-50:]\n              #print(words)\n          if FLAGS.add_start_end_:\n            words = gezi.add_start_end(words, FLAGS.start_mark, FLAGS.end_mark)\n        if pos_result:\n          pos = pos_result[id]\n          if FLAGS.add_start_end_:\n            pos = gezi.add_start_end(pos)\n        if ner_result:\n          ner = ner_result[id]\n          if FLAGS.add_start_end_:\n            ner = gezi.add_start_end(ner)\n\n        if start_index > 0:\n          id == 't' + id\n  \n        content = row[1] \n        content_ori = content\n        content = filter.filter(content)\n\n        if not FLAGS.use_soft_label_:\n          if 'test' in mode:\n            label = [-2] * 20\n          else:\n            label = list(row[2:])\n          \n          #label = [x + 2 for x in label]\n          #num_labels = len(label)\n        else:\n          label = [0.] * 80\n          if not FLAGS.is_soft_label:\n            for idx, val in enumerate(row[2:]):\n              label[idx * 4 + val] = 1.\n          else:\n            logits = np.array(gezi.str2scores(row['score']))\n            logits = np.reshape(logits, [20, 4])\n            probs = gezi.softmax(logits)\n            label = list(np.reshape(probs, [-1]))\n\n        if not seg_result:\n          content_ids, words = text2ids_(content, preprocess=False, return_words=True)\n          assert len(content_ids) == len(words)\n        else:\n          content_ids = [vocab.id(x) for x in words]\n          #print(words, content_ids)\n          #exit(0)\n\n        if len(content_ids) > max_len:\n          max_len = len(content_ids)\n          print('max_len', max_len)\n\n        if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n          print('{} {} {}'.format(id, len(content_ids), content_ori))\n        #if len(content_ids) > FLAGS.word_limit:\n        #  print(id, content)\n        #  if mode not in ['test', 'valid']:\n        #    continue \n\n        #if len(content_ids) < 5 and mode not in ['test', 'valid']:\n        #  continue\n\n        content_ids = content_ids[:FLAGS.word_limit]\n        words = words[:FLAGS.word_limit]\n\n        # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode\n        if FLAGS.use_char:\n          chars = [list(word) for word in words]\n          char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n          \n          vocab_ = char_vocab if char_vocab else vocab\n\n          for i, token in enumerate(chars):\n            for j, ch in enumerate(token):\n              if j == FLAGS.char_limit:\n                break\n              char_ids[i, j] = vocab_.id(ch)\n\n          char_ids = list(char_ids.reshape(-1))\n          if np.sum(char_ids) == 0:\n            print('------------------------bad id', id)\n            print(content_ids)\n            print(words)\n            exit(0)\n        else:\n          char_ids = [0]\n\n        if pos_vocab:\n          assert pos\n          pos = pos[:FLAGS.word_limit]\n          pos_ids = [pos_vocab.id(x) for x in pos]\n        else:\n          pos_ids = [0]\n\n        if ner_vocab:\n          assert ner \n          if pos_vocab:\n            assert len(pos) == len(ner)         \n          ner = ner[:FLAGS.word_limit]\n\n          ner_ids = [ner_vocab.id(x) for x in ner]\n        else:\n          ner_ids = [0]\n\n        wlen = [len(word) for word in words]\n\n        feature = {\n                    'id': melt.bytes_feature(id),\n                    'content':  melt.int64_feature(content_ids),\n                    'content_str': melt.bytes_feature(content_ori), \n                    'char': melt.int64_feature(char_ids),\n                    'pos': melt.int64_feature(pos_ids), # might also be postion info for mix seg\n                    'ner': melt.int64_feature(ner_ids),\n                    'wlen': melt.int64_feature(wlen),\n                    'source': melt.bytes_feature(mode), \n                  }\n        feature['label'] = melt.int64_feature(label) if not FLAGS.use_soft_label_ else melt.float_feature(label)\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        writer.write(record)\n        num += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\n\ndef main(_):  \n  mode = get_mode(FLAGS.input)\n\n  assert FLAGS.use_fold\n  #text2ids.init(FLAGS.vocab_)\n  global vocab, char_vocab, pos_vocab, ner_vocab, seg_result, pos_result, ner_result\n  #vocab = text2ids.vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_, fixed=FLAGS.fixed_vocab, unk_word=FLAGS.unk_word)\n  print('vocab size:', vocab.size())\n  char_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt')\n  if os.path.exists(char_vocab_file):\n    char_vocab = Vocabulary(char_vocab_file)\n    print('char vocab size:', char_vocab.size())\n  pos_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'pos_vocab.txt')\n  if os.path.exists(pos_vocab_file):\n    pos_vocab = Vocabulary(pos_vocab_file)\n    print('pos vocab size:', pos_vocab.size())\n  ner_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'ner_vocab.txt')\n  if os.path.exists(ner_vocab_file):\n    ner_vocab = Vocabulary(ner_vocab_file)\n    print('ner vocab size:', ner_vocab.size())\n  \n  mode_ = 'train'\n  if 'valid' in FLAGS.input:\n    mode_ = 'valid'\n  elif 'test' in FLAGS.input:\n    mode_ = 'test'\n  else:\n    assert 'train' in FLAGS.input\n\n  if FLAGS.augument:\n    mode_ = 'aug.' + mode_\n\n  if FLAGS.mode_:\n    mode_ = FLAGS.mode_\n\n  seg_file = FLAGS.vocab_.replace('vocab.txt', '%s.seg.txt' % mode_)\n  seg_result = {}\n  if os.path.exists(seg_file):\n    print('seg or seg_pos exits:', seg_file)\n    pos_result = {}\n    for line in open(seg_file):\n      id, segs = line.rstrip('\\n').split('\\t', 1)\n      segs = segs.split('\\x09')\n      if FLAGS.ignore_start_end:\n        segs = segs[1:-1]\n      if '|' in segs[0] and not FLAGS.word_only:\n        l = [x.rsplit('|', 1) for x in segs]\n        segs, pos = list(zip(*l))\n        pos_result[id] = pos\n      seg_result[id] = segs\n\n  seg_done = True if seg_result else False\n  ner_file = FLAGS.vocab_.replace('vocab.txt', '%s.ner.txt' % mode_)\n  ner_result = {}\n  if os.path.exists(ner_file):\n    print('seg_ner exists:', ner_file)\n    for line in open(ner_file):\n      id, segs = line.rstrip('\\n').split('\\t', 1)\n      segs = segs.split('\\x09')\n      if FLAGS.ignore_start_end:\n        segs = segs[1:-1]\n      if '|' in segs[0]:\n        l = [x.rsplit('|', 1) for x in segs]\n        segs, ner = list(zip(*l))\n      if not seg_done:      \n        seg_result[id] = segs\n      ner_result[id] = ner\n\n  print('len(seg_result)', len(seg_result))\n  print('len(ner_result)', len(ner_result))\n\n  # print('to_lower:', FLAGS.to_lower, 'feed_single:', FLAGS.feed_single, 'feed_single_en:', FLAGS.feed_single_en, 'seg_method', FLAGS.seg_method)\n  # print(text2ids.ids2text(text2ids_('傻逼脑残B')))\n  # print(text2ids.ids2text(text2ids_('喜欢玩孙尚香的加我好友：2948291976')))\n\n  global df\n  df = pd.read_csv(FLAGS.input, lineterminator='\\n')\n  \n  pool = multiprocessing.Pool()\n\n  if not FLAGS.num_records_:\n    if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n      FLAGS.num_records_ = 1\n    else:\n      FLAGS.num_records_ = 7\n\n  print('num records file to gen', FLAGS.num_records_)\n\n  #FLAGS.num_records_ = 1\n\n  pool.map(build_features, range(FLAGS.num_records_))\n  pool.close()\n  pool.join()\n\n  # for i in range(FLAGS.num_records_):\n  #   build_features(i)\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-test.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-train.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-trans.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-trans.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 22:43:06.305917\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\ndf = pd.read_csv('./train.csv')\n\ncomments = {}\nfor line in open('./train.en.txt'):\n  try:\n    id, comment = line.rstrip().split('\\t')\n    comments[id] = comment\n  except Exception:\n    pass\n\nprint(len(comments))\n\nnum_modify = 0\nnum_bads = 0\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  id = row['id']\n  id = str(id)\n  if id in comments: \n    if len(comments[id].replace(' ', '')) < len(row['content'].replace(' ', '')) * 1.5 and len(comments[id].replace(' ', '')) > len(row['content'].replace(' ', '')) * 0.7:\n      df.loc[i,'content'] = comments[id]\n      num_modify += 1\n    else:\n      print('bad translate:', comments[id])\n      print('ori', row['content'])\n      num_bads += 1\n  \nprint(num_modify, num_bads)\ndf.to_csv('./trans.en.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-trans.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-valid.sh",
    "content": "python ./gen-records.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-vocab-v2.sh",
    "content": "python gen-content.py | python gen-vocab.py --seg_method='basic' --vocab_name='vocab.v2' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-vocab.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO could do segment parallel @TODO\nnow single thread... slow\n\"\"\"\n\nimport sys,os\n#os.environ['JIEBA_POS'] = '1'\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 0, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\", 0, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"add_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_boolean(\"save_count_info\", True, \"save count info to bin\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/ai2018/sentiment/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\nflags.DEFINE_string('seg_method', 'basic_single_all', '')\n\nassert FLAGS.most_common > 0 or FLAGS.min_count > 0\nassert FLAGS.seg_method\n\nimport traceback\n\nfrom gezi import WordCounter \n\ncounter = WordCounter(\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n#reload(sys)\n#sys.setdefaultencoding('utf8')\nimport numpy as np\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\nprint(segmentor, file=sys.stderr)\n\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\n\nlogging = gezi.logging\n\nlogging.init('/tmp')\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\nprint('min_count:', FLAGS.min_count, 'most_common:', FLAGS.most_common)\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  text = line.rstrip()\n  text = filter.filter(text)\n  try:\n    words = segmentor.Segment(text, FLAGS.seg_method)\n  except Exception:\n    print(num, '-----------fail', text)\n    print(traceback.format_exc())\n    continue\n  if num % 10000 == 0:\n    logging.info(text, '|'.join(words), len(words))\n  counter.add(START_WORD)\n  for word in words:\n    counter.add(word)\n    if word.isdigit():\n      counter.add('<NUM>')\n  counter.add(END_WORD)\n  num += 1\n\n  if num == FLAGS.max_lines:\n    break\n\ncounter.add(START_WORD)\n\nprint(FLAGS.out_dir, file=sys.stderr)\nvocab_name = FLAGS.vocab_name or 'vocab'\ncounter.save(FLAGS.out_dir + '/%s.txt' % vocab_name)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/gen-vocab.sh",
    "content": "python gen-content.py | python gen-vocab.py --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/sentiment/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/sentiment/vectors.txt', '')\nflags.DEFINE_integer('min_count', 20, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nflags.DEFINE_integer('max_words', 200000, '')\nflags.DEFINE_bool('add_additional', True, 'add additional words from embedding file, this is by default for word')\n\nflags.DEFINE_string('sort_by', 'count', '')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  print('emb', FLAGS.emb)\n  input_vocab = FLAGS.input_vocab\n  print('input_vocab', input_vocab)\n  dir_ = os.path.dirname(FLAGS.input_vocab)\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      try:\n        vector = list(map(float, array[-vec_size:]))\n      except Exception:\n        print(i, line)\n        continue\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      else:\n        embedding_dict[word.lower()] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  if FLAGS.sort_by == 'count':\n    print('sort by count')\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n  else:\n    print('sort by knowldege')\n    words_knowledge = []\n    emb_mat_knowledge = []\n    words_no_knowledge = []\n    emb_mat_no_knowledge = []\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat_knowledge.append(np.array(embedding_dict[word]))\n          words_knowledge.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat_no_knowledge.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words_no_knowledge.append(word)  \n        # elif FLAGS.type == 'scratch':\n        #   if count >= FLAGS.min_count:\n        #     if word in embedding_dict:\n        #       emb_mat.append(np.array(embedding_dict[word]))\n        #       words.append(word)  \n        #     else:\n        #       #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n        #       emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n        #       words.append(word)  \n        # elif FLAGS.type == 'only':\n        #   if word in embedding_dict:\n        #     emb_mat.append(np.array(embedding_dict[word]))\n        #     words.append(word)  \n\n    #if FLAGS.sort_by == 'knowledge':\n    words += words_no_knowledge\n    emb_mat += emb_mat_no_knowledge\n    words += words_knowledge\n    emb_mat += emb_mat_knowledge\n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  if FLAGS.add_additional:\n    for word in embedding_dict:\n      if word not in words_set:\n        words_set.add(word)\n        words.append(word)\n        emb_mat.append(np.array(embedding_dict[word]))\n        if len(words) > FLAGS.max_words:\n          break\n\n    print('num words after adding additional', len(words))\n\n  out_vocab = os.path.join(dir_, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  print('out_vocab', out_vocab)\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(dir_, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  print('out_mat', out_mat)\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/merge-vocabs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-vocabs.py\n#        \\author   chenghuige  \n#          \\date   2018-10-23 02:07:23.291646\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nm = {}\n\nfiles = sys.argv[1:]\nnum_files = len(files)\n\nprint('num_files', num_files, file=sys.stderr)\n\nfor file_ in files:\n  for line in open(file_):\n    word, count = line.rstrip('\\n').split('\\t', 1)\n    count = int(count)\n    if word not in m:\n      m[word] = count \n    else:\n      m[word] += count\n\nsorted_by_value = sorted(m.items(), key=lambda kv: -kv[1])\n\nfor key, val in sorted_by_value:\n  print(key, val, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/pre-mix-seg-v1.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   mix seg must have input vocab\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('name', None, '')\n\nimport sys,os\nimport numpy as np\n\nimport gezi\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\n# TODO bseg py2 not support if using melt ..\nfrom wenzheng.utils import text2ids\nfrom text2ids import text2ids as text2ids_ \n\ndef seg(id, text, out):\n  text = filter.filter(text)\n  _, words = text2ids_(text, return_words=True)\n  print(id, '\\x09'.join(words), sep='\\t', file=out)\n\ndef main(_):  \n  FLAGS.seg_method = 'basic_digit'\n  FLAGS.feed_single = True\n  FLAGS.feed_single_en = True\n  print('seg_method:', FLAGS.seg_method, file=sys.stderr)\n  print('feed_single:', FLAGS.feed_single, file=sys.stderr)\n  print('feed_single_en:', FLAGS.feed_single_en, file=sys.stderr)\n\n  text2ids.init(FLAGS.vocab)\n\n  counter = WordCounter(most_common=0, min_count=1)\n  vocab2 = ifile.replace('.csv', '.pos.mix.vocab')\n\n  assert FLAGS.vocab\n\n  ifile = sys.argv[1]\n  if not gezi.env_has('BSEG'):\n    ofile = ifile.replace('.csv', '.seg.mix.txt')\n  else:\n    ofile = ifile.replace('.csv', '.seg.bseg.mix.txt')\n\n  ids_set = set()\n  fm = 'w'\n  if os.path.exists(ofile):\n    fm = 'a'\n    for line in open(ofile):\n      ids_set.add(line.split('\\t')[0])\n\n  print('%s already done %d' % (ofile, len(ids_set)))\n\n  num_errs = 0\n  with open(ofile, fm) as out:\n    df = pd.read_csv(ifile, lineterminator='\\n')\n    contents = df['content'].values \n    ids = df['id'].values\n    for i in tqdm(range(len(df)), ascii=True):\n      if str(ids[i]) in ids_set:\n        continue\n      #if i != 2333:\n      #  continue\n      #print(gezi.cut(filter.filter(contents[i]), type_))\n      try:\n        seg(ids[i], contents[i], out, counter)\n      except Exception:\n        #print(traceback.format_exc())\n        num_errs += 1\n        continue\n      #exit(0)\n\n  counter.save(vocab2)\n  print('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/pre-mix-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   mix seg must have input vocab\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_string('vocab', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\n\nimport sys,os\n#os.environ['BSEG'] = '1'\n\nimport numpy as np\n\nimport gezi\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback \n\n#assert gezi.env_has('BSEG')\n\nimport six \nif gezi.env_has('BSEG'):\n  assert six.PY2\n\nvocab = None\n\ndef seg(id, text, out, counter):\n  text = filter.filter(text)\n  words = []\n  for i, word in enumerate(gezi.cut(text)):\n    counter.add(str(i))\n    if vocab.has(word) and not word.isdigit():\n      words.append('%s|%d' % (word, i))\n    else:\n      if six.PY2:\n        for ch in word.decode('utf8'):\n          words.append('%s|%d' % (ch.encode('utf8'), i))\n      else:\n        for ch in word:\n          words.append('%s|%d' % (ch, i))\n\n  if not FLAGS.for_pretrain:\n    print(id, '\\x09'.join(words), sep='\\t', file=out)\n  else:\n    print(' '.join([x.split('|')[0] for x in words]), file=out)\n\ndef main(_):  \n  # FLAGS.seg_method = 'basic_digit'\n  # FLAGS.feed_single = True\n  # FLAGS.feed_single_en = True\n  # print('seg_method:', FLAGS.seg_method, file=sys.stderr)\n  # print('feed_single:', FLAGS.feed_single, file=sys.stderr)\n  # print('feed_single_en:', FLAGS.feed_single_en, file=sys.stderr)\n\n  #assert FLAGS.vocab \n\n  global vocab \n  vocab = gezi.Vocabulary(FLAGS.vocab)\n\n  ifile = sys.argv[1]\n  if not gezi.env_has('BSEG'):\n    ofile = ifile.replace('.csv', '.seg.jieba.mix.txt')\n  else:\n    ofile = ifile.replace('.csv', '.seg.bseg.mix.txt')\n\n\n  counter = WordCounter(most_common=0, min_count=1)\n  vocab2 = ifile.replace('.csv', '.pos.mix.vocab')\n\n\n  num_errs = 0\n  with open(ofile, 'w') as out:\n    df = pd.read_csv(ifile, lineterminator='\\n')\n    contents = df['content'].values \n    ids = df['id'].values\n    for i in tqdm(range(len(df)), ascii=True):\n      #if str(ids[i]) in ids_set:\n      #  continue\n      #if i != 2333:\n      #  continue\n      #print(gezi.cut(filter.filter(contents[i]), type_))\n      try:\n        seg(ids[i], contents[i], out, counter)\n      except Exception:\n        if num_errs == 0:\n          print(traceback.format_exc())\n        num_errs += 1\n        continue\n      #exit(0)\n\n  counter.save(vocab2)\n  print('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/pre-seg-bert.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\nimport pandas as pd\n\nfrom tqdm import tqdm\nimport traceback\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom third.bert import tokenization\n\ntokenizer = tokenization.BasicTokenizer()\n\ndef seg(id, text, out):\n  text = filter.filter(text)\n  words = tokenizer.tokenize(text)\n  print(id, '\\x09'.join(words), sep='\\t', file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.csv', '.seg.%s.txt' % FLAGS.name)\n\nnum_errs = 0\nwith open(ofile, 'w') as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    try:\n      seg(ids[i], contents[i], out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/pre-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport six\nif FLAGS.seg_method == 'char':\n  assert not six.PY2\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\ncounter = WordCounter(most_common=0, min_count=1)\ncounter2 = WordCounter(most_common=0, min_count=1)\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\nif gezi.env_has('SENTENCE_PIECE'):\n  assert FLAGS.sp_path \n  gezi.segment.init_sp(FLAGS.sp_path)\n\ndef seg(id, text, out, type):\n  text = filter.filter(text)\n  counter.add(START_WORD)\n  counter.add(END_WORD)\n  l = gezi.cut(text, type)\n\n  if type != 'word':\n    for x, y in l:\n      counter.add(x)\n      counter2.add(y)\n    words = ['%s|%s' % (x, y) for x,y in l]\n  else:\n    if FLAGS.seg_method == 'char':\n      l2 = []\n      for i, w in enumerate(l):\n        for ch in w:\n          counter.add(ch)\n          counter2.add(str(i))\n          l2.append((ch, i))\n      words =  ['%s|%d' % (x, y) for x,y in l2]\n    else:\n      words = l\n      for w in words:\n        counter.add(w)\n\n  if not FLAGS.for_pretrain:\n    print(id, '\\x09'.join(words), sep='\\t', file=out)\n  else:\n    print(' '.join([x.split('|')[0] for x in words]), file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.csv', '.seg.%s.txt' % FLAGS.name)\nvocab = ifile.replace('.csv', '.seg.%s.vocab' % FLAGS.name)\ntype_ = 'word'\n\nvocab2 = None\nif 'pos' in FLAGS.name or FLAGS.seg_method == 'char':\n  vocab2 = ifile.replace('.csv', '.pos.%s.vocab' % FLAGS.name)\n  if 'pos' in FLAGS.name:\n    type_ = 'pos'\nelif 'ner' in FLAGS.name:\n  vocab2 = ifile.replace('.csv', '.ner.%s.vocab' % FLAGS.name)\n  type_ = 'ner'\n\nnum_errs = 0\nwith open(ofile, 'w') as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    #if str(ids[i]) in ids_set:\n    #  continue\n    #if i != 2333:\n    #  continue\n    #print(gezi.cut(filter.filter(contents[i]), type_))\n    try:\n      seg(ids[i], contents[i], out, type=type_)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\ncounter.save(vocab)\nif vocab2:\n  counter2.save(vocab2)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-char-bert.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.bert/\nsh ./run-noemb-char-bert.sh $dir/vocab.txt\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-char-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.ft\nemb=./mount/data/my-embedding/fastText-sentiment-char/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-char-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-char/vectors.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-char-nbert.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.nbert/\nsh ./run-noemb-char-nbert.sh $dir/vocab.txt\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-char.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-char-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/char.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/valid/ --use_char=0 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.len256\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/train/ --use_char=0 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.len256\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-char.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/char.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/valid/ --use_char=0 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/train/ --use_char=0 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-jieba-mix-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/mix.jieba.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba-mix/corpus/valid/ --use_char=1 --max_sentence_len=256 --tfrecord_dir tfrecord.len256 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba-mix/corpus/train/ --use_char=1 --max_sentence_len=256 --tfrecord_dir tfrecord.len256 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-mix.sh",
    "content": ""
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-baike-len20.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/baidu/corpus.jieba/train/ --use_char=1 --source=baike --max_sentence_len=20 --tfrecord_dir tfrecord.len20\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-baike.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/baidu/corpus.jieba/train/ --use_char=1 --source=baike --max_sentence_len=40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-bseg-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-bseg-ner-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-bseg-ner2-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-jieba-tx-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.tx/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus.tx/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus.tx/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-len40.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp10w-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp10w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/valid/ --use_char=1 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/train/ --use_char=1 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp1w-baike.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/baidu/corpus.sp1w/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --source=baike\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp1w-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.256\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.256\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp1w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp20w-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word-sp20w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=20 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=20 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-lm-word.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/valid/ --use_char=1\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/train/ --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-bseg-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.ft\nemb=./mount/data/my-embedding/fastText-sentiment-bseg-mix/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-bseg-glove-10epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove.10epoch\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix-10epoch/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-bseg-glove-40epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove.40epoch\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix-40epoch/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-bseg-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-bseg-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-mix/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.jieba.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba-mix/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-mix-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-nchar-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/nchar.ft\nemb=./mount/data/my-embedding/fastText-sentiment-nchar/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-aug.sh",
    "content": "vocab=$1\nname=$2\npython ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.valid --mode aug.$name.train\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.test --mode aug.$name.test\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.train --mode aug.$name.train\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-char-bert.sh",
    "content": "vocab=$1\npython ./gen-records.py --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]' --word_only=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]' --word_only=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]' --word_only=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-char-nbert.sh",
    "content": "vocab=$1\npython ./gen-records.py --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]' --content_limit_=512 --word_only=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]' --content_limit_=512 --word_only=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]' --content_limit_=512  --word_only=1 \n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-char.sh",
    "content": "vocab=$1\npython ./gen-records.py  --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-mix-charaug.sh",
    "content": "vocab=$1\npython ./gen-records.py  --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.valid --mode aug.char.train\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.test --mode aug.char.test\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.train --mode aug.char.train\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-mix.sh",
    "content": "vocab=$1\npython ./gen-records.py  --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb-pl.sh",
    "content": "vocab=$1\npython ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --use_soft_label_=1 --word_only=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --use_soft_label_=1 --word_only=1\npython ./gen-records.py --input /home/gezi/temp/ai2018/sentiment/p40/model.csv/v11/submit.testa/ensemble.infer.debug.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --num_records_=10 --use_soft_label_=1 --is_soft_label=1 --word_only=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-noemb.sh",
    "content": "vocab=$1\npython ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ft\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-ft-knowldege.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft.knowledge/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --sort_by=knowledge\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-ft2.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft2/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-ft3.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft3/\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-glove-10epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb= ./mount/data/my-embedding/GloVe-sentiment-bseg/ /vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-glove-40epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-ner-jiebapre-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.jiebapre.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-basic-pos/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-subner-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.subner.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-bseg-subner-jiebapre-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.subner.jiebapre.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-basic-pos/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-jieba-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-jieba/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-jieba-pos-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.pos.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-jieba-pos-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.pos.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-jieba/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-jieba-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp10w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-10w/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp10w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp10w-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp1w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-1w/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp1w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp1w-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp20w-ft-pl.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.ft.pl\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-20w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-pl.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir  --use_soft_label=1\npython read-records.py --base=$dir --type show_info --use_soft_label=1\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp20w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-20w/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-sp20w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-stanford-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft\nemb=./mount/data/my-embedding/fastText-sentiment-stanford/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-stanford-ft2.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft2\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-stanford-ft3.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft3\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-stanford-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-stanford/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-stanford-tx-ftchar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.tx.ftchar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-stanford-tx-glovechar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.tx.glovechar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-tx-ftchar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.tx.ftchar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/run-word-tx-glovechar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.tx.glovechar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('feed_single', False, '')\nflags.DEFINE_bool('to_lower', True, '')\n\nimport sys \nimport os\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \n# TODO check 2018.10.01 add multi grid\ndef text2ids(text, preprocess=True, return_words=False):\n  wenzheng.utils.text2ids.init()\n  if preprocess:\n    text = filter.filter(text)\n  return to_ids(text, \n                seg_method=FLAGS.seg_method, \n                feed_single=FLAGS.feed_single,\n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                multi_grid=False,\n                pad=False,\n                return_words=return_words)\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/tmp",
    "content": "2018-10-19 10:42:16 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 10:42:54 0:00:40 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 10:43:12 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 10:44:32 0:01:21 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 10:45:45 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 10:50:15 0:04:33 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍|山|而|建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有|嚼|头|。|\u0002|鸵心|拼|鸵肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌|哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 384\n2018-10-19 15:03:14 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 15:06:18 0:03:06 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍|山|而|建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有|嚼|头|。|\u0002|鸵心|拼|鸵肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌|哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 384\n2018-10-19 15:09:20 0:06:08 \"伊势丹楼下，路过很多次都没有进来～终于有机会来尝一尝了大阪煎饼了！店面比较小，放着日本名族歌曲，日本小店的感觉～老板是个亲切的日本大叔～\u0002【章鱼小丸子】很q弹！真的是我吃过最q弹的小丸子！里面很明显有一块有嚼劲的章鱼肉～\u0002【海鲜大阪煎饼】味道很好，蛋皮里面包的虾，扇贝肉，鸡蛋，还有些菜～加了奶酪，多加十元，但是感觉意义不大。\u0002【海鲜大阪烧】这个是送错餐送给我们吃的～里面只有虾，感觉没得煎饼好吃，价格比煎饼便宜。\u0002【乌冬面】很清淡，但是汤很有味道～面有嚼劲～\" \"|伊|势|丹|楼|下|，|路|过|很|多|次|都|没|有|进|来|～|终|于|有|机|会|来|尝|一|尝|了|大|阪|煎|饼|了|！|店|面|比|较|小|，|放|着|日|本|名|族|歌|曲|，|日|本|小|店|的|感|觉|～|老|板|是|个|亲|切|的|日|本|大|叔|～|\u0002|【|章|鱼|小|丸|子|】|很|q|弹|！|真|的|是|我|吃|过|最|q|弹|的|小|丸|子|！|里|面|很|明|显|有|一|块|有|嚼|劲|的|章|鱼|肉|～|\u0002|【|海|鲜|大|阪|煎|饼|】|味|道|很|好|，|蛋|皮|里|面|包|的|虾|，|扇|贝|肉|，|鸡|蛋|，|还|有|些|菜|～|加|了|奶|酪|，|多|加|十|元|，|但|是|感|觉|意|义|不|大|。|\u0002|【|海|鲜|大|阪|烧|】|这|个|是|送|错|餐|送|给|我|们|吃|的|～|里|面|只|有|虾|，|感|觉|没|得|煎|饼|好|吃|，|价|格|比|煎|饼|便|宜|。|\u0002|【|乌|冬|面|】|很|清|淡|，|但|是|汤|很|有|味|道|～|面|有|嚼|劲|～|\"|\"|伊势丹|楼下|，|路过|很|多次|都|没有|进来|～|终于|有|机会|来|尝一尝|了|大阪|煎饼|了|！|店面|比较|小|，|放|着|日本|名族|歌曲|，|日本|小店|的|感觉|～|老板|是|个|亲切|的|日本|大叔|～|\u0002|【|章鱼|小丸子|】|很|q|弹|！|真的|是|我|吃|过|最|q|弹|的|小丸子|！|里面|很|明显|有|一块|有|嚼|劲|的|章|鱼肉|～|\u0002|【|海鲜|大阪|煎饼|】|味道|很|好|，|蛋|皮里|面包|的|虾|，|扇贝|肉|，|鸡蛋|，|还|有些|菜|～|加|了|奶酪|，|多|加|十元|，|但是|感觉|意义|不|大|。|\u0002|【|海鲜|大阪|烧|】|这个|是|送错|餐|送给|我们|吃|的|～|里面|只有|虾|，|感觉|没|得|煎饼|好吃|，|价格比|煎饼|便宜|。|\u0002|【|乌冬|面|】|很|清淡|，|但是|汤|很|有|味道|～|面有|嚼|劲|～|\" 395\n2018-10-19 15:12:22 0:09:09 \"一直很喜欢这家的pasta，以前都是在美罗城楼下吃的，感觉都很好还一直和别人推荐，周日下雨和老公本来想去太兴的没想到关门就到镰仓了，这里地方还算比较大，一进去浓浓的奶香味很舒服，坐下来开始点单，新品出来还比较多，不过还是点了pasta。\u0002畅食的面包必须点单后才给你上ok没问题，我点了脆虾番茄奶油意面52元，虾大概有6-8个还算可以，不过意面不多，最重要的是这里的意面能叫意面吗？烂的比烂糊面还烂，加上烧的浓稠的的酱汁要死了就是一坨面粉，完全没有口味可言，老公点的扇贝配鲑鱼意面也是如此，面条都糊了，受不了，吃完胃就不舒服了。\u0002熏鲑鱼色拉还可以酱料调配的比较爽口。\u0002畅食的面包真的没有以前好吃了，以前的羊角面包都是现烤热腾腾的，现在很多都是一起上，虽然味道还不错但是口感没有刚出炉的那么酥脆了。\u0002看来以后老公是不会再来了。\" \"|一|直|很|喜|欢|这|家|的|p|a|s|t|a|，|以|前|都|是|在|美|罗|城|楼|下|吃|的|，|感|觉|都|很|好|还|一|直|和|别|人|推|荐|，|周|日|下|雨|和|老|公|本|来|想|去|太|兴|的|没|想|到|关|门|就|到|镰|仓|了|，|这|里|地|方|还|算|比|较|大|，|一|进|去|浓|浓|的|奶|香|味|很|舒|服|，|坐|下|来|开|始|点|单|，|新|品|出|来|还|比|较|多|，|不|过|还|是|点|了|p|a|s|t|a|。|\u0002|畅|食|的|面|包|必|须|点|单|后|才|给|你|上|o|k|没|问|题|，|我|点|了|脆|虾|番|茄|奶|油|意|面|5|2|元|，|虾|大|概|有|6|-|8|个|还|算|可|以|，|不|过|意|面|不|多|，|最|重|要|的|是|这|里|的|意|面|能|叫|意|面|吗|？|烂|的|比|烂|糊|面|还|烂|，|加|上|烧|的|浓|稠|的|的|酱|汁|要|死|了|就|是|一|坨|面|粉|，|完|全|没|有|口|味|可|言|，|老|公|点|的|扇|贝|配|鲑|鱼|意|面|也|是|如|此|，|面|条|都|糊|了|，|受|不|了|，|吃|完|胃|就|不|舒|服|了|。|\u0002|熏|鲑|鱼|色|拉|还|可|以|酱|料|调|配|的|比|较|爽|口|。|\u0002|畅|食|的|面|包|真|的|没|有|以|前|好|吃|了|，|以|前|的|羊|角|面|包|都|是|现|烤|热|腾|腾|的|，|现|在|很|多|都|是|一|起|上|，|虽|然|味|道|还|不|错|但|是|口|感|没|有|刚|出|炉|的|那|么|酥|脆|了|。|\u0002|看|来|以|后|老|公|是|不|会|再|来|了|。|\"|\"|一直|很|喜欢|这家|的|pasta|，|以前|都|是|在|美罗城|楼下|吃|的|，|感觉|都|很|好|还|一直|和|别人|推荐|，|周日|下雨|和|老公|本来|想|去|太兴|的|没想到|关门|就|到|镰|仓|了|，|这里|地方|还|算|比较|大|，|一|进去|浓浓的|奶|香味|很|舒服|，|坐下|来|开始|点|单|，|新品|出来|还|比较|多|，|不过|还是|点|了|pasta|。|\u0002|畅食|的|面包|必须|点|单后|才|给|你|上|ok|没|问题|，|我|点|了|脆|虾|番茄|奶油|意面|52|元|，|虾|大概|有|6|-|8|个|还算|可以|，|不过意|面不多|，|最|重要|的|是|这里|的|意面|能|叫|意面|吗|？|烂|的|比|烂糊|面|还|烂|，|加上|烧|的|浓稠|的|的|酱汁|要死|了|就是|一|坨|面粉|，|完全|没有|口味|可言|，|老公|点|的|扇贝|配|鲑鱼|意面|也|是|如此|，|面条|都|糊|了|，|受不了|，|吃|完|胃|就|不|舒服|了|。|\u0002|熏|鲑鱼|色拉|还|可以|酱料|调配|的|比较|爽口|。|\u0002|畅食|的|面包|真的|没有|以前|好吃|了|，|以前|的|羊角|面包|都|是现|烤|热腾腾|的|，|现在|很多|都|是|一起|上|，|虽然|味道|还|不错|但是|口感|没有|刚|出炉|的|那么|酥脆|了|。|\u0002|看来|以后|老公|是|不会|再|来|了|。|\" 608\n2018-10-19 15:15:26 0:12:13 \"以前对烧烤都没感觉，这次抽中大众的霸王餐就去吃了。吃下来意犹未尽的感觉，很好吃！妈妈也赞不绝口。我们没点羊排\u0003单点的烤串\u0003还有凉皮\u0003做的很好有劲\u0003微甜\u0003羊杂汤\u0003里面料很足\u0003最后都没吃完\u0003还有羊肉面\u0003汤里放了胡椒粉\u0003面条很有嚼劲\u0003我喜欢的\u0003凉拌海带也不错\u0003店里烤串价格不贵\u0003而且分量很实在！\u0003羊肉串3块\u0003羊脆骨4块\u0003考鸡翅个头满大的两个也就8块\u0003明虾也非常好吃\u00032块一串\u0003店家服务态度也很好的\u0003我们三个大人一个小孩吃了202\u0003我去结帐\u0003老板说2块钱就算了\u0003够爽气\u0003真是霸王餐了\u0003吃饱喝足\u0003还打包\u0003一分钱都没花！以后要吃烤串一定还去\u0003就是如果能出团购代金券\u0003就更好拉\" \"|以|前|对|烧|烤|都|没|感|觉|，|这|次|抽|中|大|众|的|霸|王|餐|就|去|吃|了|。|吃|下|来|意|犹|未|尽|的|感|觉|，|很|好|吃|！|妈|妈|也|赞|不|绝|口|。|我|们|没|点|羊|排|\u0003|单|点|的|烤|串|\u0003|还|有|凉|皮|\u0003|做|的|很|好|有|劲|\u0003|微|甜|\u0003|羊|杂|汤|\u0003|里|面|料|很|足|\u0003|最|后|都|没|吃|完|\u0003|还|有|羊|肉|面|\u0003|汤|里|放|了|胡|椒|粉|\u0003|面|条|很|有|嚼|劲|\u0003|我|喜|欢|的|\u0003|凉|拌|海|带|也|不|错|\u0003|店|里|烤|串|价|格|不|贵|\u0003|而|且|分|量|很|实|在|！|\u0003|羊|肉|串|3|块|\u0003|羊|脆|骨|4|块|\u0003|考|鸡|翅|个|头|满|大|的|两|个|也|就|8|块|\u0003|明|虾|也|非|常|好|吃|\u0003|2|块|一|串|\u0003|店|家|服|务|态|度|也|很|好|的|\u0003|我|们|三|个|大|人|一|个|小|孩|吃|了|2|0|2|\u0003|我|去|结|帐|\u0003|老|板|说|2|块|钱|就|算|了|\u0003|够|爽|气|\u0003|真|是|霸|王|餐|了|\u0003|吃|饱|喝|足|\u0003|还|打|包|\u0003|一|分|钱|都|没|花|！|以|后|要|吃|烤|串|一|定|还|去|\u0003|就|是|如|果|能|出|团|购|代|金|券|\u0003|就|更|好|拉|\"|\"|以前|对|烧烤|都|没|感觉|，|这次|抽|中|大众|的|霸王餐|就|去|吃|了|。|吃|下来|意犹未尽|的|感觉|，|很|好吃|！|妈妈|也|赞不绝口|。|我们|没点|羊排|\u0003|单点|的|烤串|\u0003|还有|凉皮|\u0003|做|的|很好|有劲|\u0003|微甜|\u0003|羊杂|汤|\u0003|里面|料|很足|\u0003|最后|都|没|吃|完|\u0003|还有|羊肉|面|\u0003|汤里|放|了|胡椒粉|\u0003|面条|很|有|嚼|劲|\u0003|我|喜欢|的|\u0003|凉拌|海带|也|不错|\u0003|店里|烤串|价格|不|贵|\u0003|而且|分量|很|实在|！|\u0003|羊肉串|3|块|\u0003|羊|脆骨|4|块|\u0003|考|鸡翅|个头|满|大|的|两个|也|就|8|块|\u0003|明虾|也|非常|好吃|\u0003|2|块|一串|\u0003|店家|服务态度|也|很好|的|\u0003|我们|三个|大人|一个|小孩|吃|了|202|\u0003|我|去|结帐|\u0003|老板|说|2|块钱|就算|了|\u0003|够|爽气|\u0003|真是|霸王餐|了|\u0003|吃饱喝足|\u0003|还|打包|\u0003|一分钱|都|没|花|！|以后|要|吃|烤串|一定|还|去|\u0003|就是|如果|能出|团购|代金券|\u0003|就|更好|拉|\" 473\n2018-10-19 15:18:28 0:15:15 \"餐前，装冷菜的碟子是仿青瓷的碟子，高脚，可惜是塑料的，近看缺了质感，没有瓷器那种通透，远看挺不错。盛菜的器皿有些也挺有特色的，包厢布置也花了功夫，走古风挂字画。墙纸是青花瓷的，对面墙壁也贴了很多瓷器，有几个还是玲珑瓷，透光看比较好看。比较喜欢他们家的日式茶壶，铁壶，很沉但漂亮，据说冲泡能补铁？菜品味道一般，花样是挺多的，杨枝甘露换个器皿就能换来很大的拍照量，是不是桌桌都有？喜欢那个有小把的酱料器皿，拿着很可爱\" \"|餐|前|，|装|冷|菜|的|碟|子|是|仿|青|瓷|的|碟|子|，|高|脚|，|可|惜|是|塑|料|的|，|近|看|缺|了|质|感|，|没|有|瓷|器|那|种|通|透|，|远|看|挺|不|错|。|盛|菜|的|器|皿|有|些|也|挺|有|特|色|的|，|包|厢|布|置|也|花|了|功|夫|，|走|古|风|挂|字|画|。|墙|纸|是|青|花|瓷|的|，|对|面|墙|壁|也|贴|了|很|多|瓷|器|，|有|几|个|还|是|玲|珑|瓷|，|透|光|看|比|较|好|看|。|比|较|喜|欢|他|们|家|的|日|式|茶|壶|，|铁|壶|，|很|沉|但|漂|亮|，|据|说|冲|泡|能|补|铁|？|菜|品|味|道|一|般|，|花|样|是|挺|多|的|，|杨|枝|甘|露|换|个|器|皿|就|能|换|来|很|大|的|拍|照|量|，|是|不|是|桌|桌|都|有|？|喜|欢|那|个|有|小|把|的|酱|料|器|皿|，|拿|着|很|可|爱|\"|\"|餐|前|，|装|冷菜|的|碟子|是|仿|青瓷|的|碟子|，|高脚|，|可惜|是|塑料|的|，|近|看|缺|了|质感|，|没有|瓷器|那种|通透|，|远|看|挺不错|。|盛菜|的|器皿|有些|也|挺|有|特色|的|，|包厢|布置|也|花|了|功夫|，|走|古风|挂|字画|。|墙纸|是|青花瓷|的|，|对面|墙壁|也|贴|了|很多|瓷器|，|有|几个|还是|玲珑|瓷|，|透光|看|比较|好看|。|比较|喜欢|他们|家|的|日式|茶壶|，|铁壶|，|很沉|但|漂亮|，|据说|冲泡|能|补铁|？|菜品|味道|一般|，|花样|是|挺|多|的|，|杨枝|甘露|换|个|器皿|就|能|换来|很大|的|拍照|量|，|是不是|桌桌|都|有|？|喜欢|那个|有|小|把|的|酱料|器皿|，|拿|着|很|可爱|\" 351\n2018-10-19 15:21:30 0:18:17 \"本人上周参加了婚宴！灯光效果非常不错，做的挺用心。服务员态度比较谦和，也挺任劳任怨的，一个个东跑西癫都累出汗了，看着俺都心疼啊。用于闹肚子，喝点白酒也没吃菜，不过听老婆说个个菜做的超棒，非得中秋节拉着我去尝尝果木烤鸭和杏鲍菇。以后想吃海鲜就去奥帆号了，海鲜厨房嘛高端的装修，可口的大众亲民的价格。还有好多帅哥美女免费服务哟～唯一美中不足的地方就是院子里的停车场有点小，放30多个车就快没地方了，得提前点过去抢个车位再说～哈哈\" \"|本|人|上|周|参|加|了|婚|宴|！|灯|光|效|果|非|常|不|错|，|做|的|挺|用|心|。|服|务|员|态|度|比|较|谦|和|，|也|挺|任|劳|任|怨|的|，|一|个|个|东|跑|西|癫|都|累|出|汗|了|，|看|着|俺|都|心|疼|啊|。|用|于|闹|肚|子|，|喝|点|白|酒|也|没|吃|菜|，|不|过|听|老|婆|说|个|个|菜|做|的|超|棒|，|非|得|中|秋|节|拉|着|我|去|尝|尝|果|木|烤|鸭|和|杏|鲍|菇|。|以|后|想|吃|海|鲜|就|去|奥|帆|号|了|，|海|鲜|厨|房|嘛|高|端|的|装|修|，|可|口|的|大|众|亲|民|的|价|格|。|还|有|好|多|帅|哥|美|女|免|费|服|务|哟|～|唯|一|美|中|不|足|的|地|方|就|是|院|子|里|的|停|车|场|有|点|小|，|放|3|0|多|个|车|就|快|没|地|方|了|，|得|提|前|点|过|去|抢|个|车|位|再|说|～|哈|哈|\"|\"|本人|上周|参加|了|婚宴|！|灯光效果|非常|不错|，|做|的|挺|用心|。|服务员|态度|比较|谦和|，|也|挺|任劳任怨|的|，|一个个|东跑|西癫|都|累|出汗|了|，|看着|俺|都|心疼|啊|。|用于|闹肚子|，|喝|点|白酒|也|没|吃|菜|，|不过|听|老婆|说|个个|菜|做|的|超棒|，|非得|中秋节|拉|着|我|去|尝尝|果木|烤鸭|和|杏鲍菇|。|以后|想|吃海鲜|就|去|奥帆|号|了|，|海鲜|厨房|嘛|高端|的|装修|，|可口|的|大众|亲民|的|价格|。|还有|好多|帅哥美女|免费|服务|哟|～|唯一|美中不足|的|地方|就是|院子|里|的|停车场|有点|小|，|放|30|多个|车|就快|没|地方|了|，|得|提前|点|过去|抢|个|车位|再说|～|哈哈|\" 349\n2018-10-19 15:24:32 0:21:19 \"趁赛格美食节买的团购券\u0003来西安一年\u0003对长安大排档长草很久了\u0003也差不多拖了一年才来吃\u0003七七八八减减以后用了59块钱买了100的抵用券\u0003实在是划算。\u0002今天晚上雨下的挺大的\u0003和男票出门\u0003回来的时候就在小寨下了\u0003直奔赛格六楼长安大排挡。\u0002去的时候不到七点\u0003已经有不少人排队了。我一问\u0003原来两个人不需要等位\u0003实在是太好了。\u0002点了葫芦鸡\u0003枣馍\u0003锅贴和羊肉串。加起来105\u0003两个人吃的饱饱的。\u0002葫芦鸡很好吃\u0003有点像炸鸡\u000358一整只鸡\u0003两个人吃的好饱\u0003男票动手撕开的\u0003他很喜欢吃。\u0002羊肉串十串25\u0003肉很大块\u0003也不肥。锅贴中规中矩。枣馍感觉没有大家评价的那么好\u0003不过当主食也不错。\u0002总之很满意的一家店\u0003性价比高\u0003菜的味道也不错。\" \"|趁|赛|格|美|食|节|买|的|团|购|券|\u0003|来|西|安|一|年|\u0003|对|长|安|大|排|档|长|草|很|久|了|\u0003|也|差|不|多|拖|了|一|年|才|来|吃|\u0003|七|七|八|八|减|减|以|后|用|了|5|9|块|钱|买|了|1|0|0|的|抵|用|券|\u0003|实|在|是|划|算|。|\u0002|今|天|晚|上|雨|下|的|挺|大|的|\u0003|和|男|票|出|门|\u0003|回|来|的|时|候|就|在|小|寨|下|了|\u0003|直|奔|赛|格|六|楼|长|安|大|排|挡|。|\u0002|去|的|时|候|不|到|七|点|\u0003|已|经|有|不|少|人|排|队|了|。|我|一|问|\u0003|原|来|两|个|人|不|需|要|等|位|\u0003|实|在|是|太|好|了|。|\u0002|点|了|葫|芦|鸡|\u0003|枣|馍|\u0003|锅|贴|和|羊|肉|串|。|加|起|来|1|0|5|\u0003|两|个|人|吃|的|饱|饱|的|。|\u0002|葫|芦|鸡|很|好|吃|\u0003|有|点|像|炸|鸡|\u0003|5|8|一|整|只|鸡|\u0003|两|个|人|吃|的|好|饱|\u0003|男|票|动|手|撕|开|的|\u0003|他|很|喜|欢|吃|。|\u0002|羊|肉|串|十|串|2|5|\u0003|肉|很|大|块|\u0003|也|不|肥|。|锅|贴|中|规|中|矩|。|枣|馍|感|觉|没|有|大|家|评|价|的|那|么|好|\u0003|不|过|当|主|食|也|不|错|。|\u0002|总|之|很|满|意|的|一|家|店|\u0003|性|价|比|高|\u0003|菜|的|味|道|也|不|错|。|\"|\"|趁|赛格|美食节|买|的|团购|券|\u0003|来|西安|一年|\u0003|对|长安|大排档|长|草|很|久|了|\u0003|也|差不多|拖|了|一年|才|来|吃|\u0003|七七八八|减减|以后|用|了|59|块钱|买|了|100|的|抵用|券|\u0003|实在|是|划算|。|\u0002|今天|晚上|雨|下|的|挺大|的|\u0003|和|男票|出门|\u0003|回来|的|时候|就|在|小寨|下|了|\u0003|直奔|赛格|六楼|长安|大排挡|。|\u0002|去|的|时候|不到|七点|\u0003|已经|有|不少|人|排队|了|。|我一|问|\u0003|原来|两个|人|不|需要|等位|\u0003|实在|是|太好了|。|\u0002|点|了|葫芦|鸡|\u0003|枣馍|\u0003|锅贴|和|羊肉串|。|加|起来|105|\u0003|两个|人|吃|的|饱饱|的|。|\u0002|葫芦|鸡|很|好吃|\u0003|有点像|炸鸡|\u0003|58|一整只|鸡|\u0003|两个|人|吃|的|好|饱|\u0003|男票|动手|撕开|的|\u0003|他|很|喜欢|吃|。|\u0002|羊肉串|十串|25|\u0003|肉|很大|块|\u0003|也|不|肥|。|锅贴|中规中矩|。|枣馍|感觉|没有|大家|评价|的|那么|好|\u0003|不过|当|主食|也|不错|。|\u0002|总之|很|满意|的|一家|店|\u0003|性价比|高|\u0003|菜|的|味道|也|不错|。|\" 514\n2018-10-19 15:27:34 0:24:21 \"店内印象：日本风的装修，店里光线偏暗，空间狭小\u0003很拘谨，桌上没有随时可以接水的水龙头，桌子上也没有嵌入式可以煮面的小电磁炉，（该评价是跟博多一幸舍对比），店员服务态度很热情，上汤上面也算快，价格比博多一幸舍便宜一些，周一至周五可以打折，周末没有任何优惠。\u0002面的口感可以根据自己的感觉选择软\u0003普通\u0003硬\u0003很硬，咸度、是否加葱都可根据喜好选择，个人觉的普通即可，尝试了一次硬的，也可以接受，但是估计不会尝试特硬的、、、\u0002汤是十分浓稠，有胶口的感觉，浓稠度和博多一幸舍差不多，也就是东北皮冻的五分到七分的浓度，很多人可能会觉得腻，\u0003本人挺喜欢，另加一份面6元，加汤不要钱，带娃来吃还是划算滴。\u0002跟博多一幸舍的面面配料基本一致，紫菜、鸡蛋、芽菜、香葱、木耳、笋、叉烧、每种都有单独价格，没有搭配在一起的全套豪华配菜价格。\u0002面里搭配的肉肉没有博多一幸舍的大片，但是味道还不错，嫩香，就是家里的蒜泥肘子肉（盐水炖肘花）。糖心蛋就是煮鸡蛋，蛋清已熟，蛋黄儿半熟，温泉蛋就是窝鸡蛋，蛋清变白裹住没熟的蛋黄儿。\u0002还点了一口饺子、炸鸡块，炸鸡排，炸香肠，可惜没来得及拍照就破相了，不能上图了，一口饺子不如博多一幸舍好吃，炸鸡块有四块，比博多一幸舍的稍微小一点，但是更好吃更入味也更嫩一些。那个香肠没什么特点，宝宝喜欢而已。鸡排不过不失的，没什么特点。\u0003配菜中，\u0003木耳就是脆，芽菜带着蔬菜汁所以是水脆，\u0003笋是嫩。\u0003雪碧直接给了易拉罐和一根管子，不像博多一幸舍，漂亮的大啤酒杯，质量不错的黑色吸管。\u0002豚丸店加汤只有清汤加（清汤也已经十分浓稠），博多加汤时会问您需要加浓汤还是清汤。\u0002\" \"|店|内|印|象|：|日|本|风|的|装|修|，|店|里|光|线|偏|暗|，|空|间|狭|小|\u0003|很|拘|谨|，|桌|上|没|有|随|时|可|以|接|水|的|水|龙|头|，|桌|子|上|也|没|有|嵌|入|式|可|以|煮|面|的|小|电|磁|炉|，|（|该|评|价|是|跟|博|多|一|幸|舍|对|比|）|，|店|员|服|务|态|度|很|热|情|，|上|汤|上|面|也|算|快|，|价|格|比|博|多|一|幸|舍|便|宜|一|些|，|周|一|至|周|五|可|以|打|折|，|周|末|没|有|任|何|优|惠|。|\u0002|面|的|口|感|可|以|根|据|自|己|的|感|觉|选|择|软|\u0003|普|通|\u0003|硬|\u0003|很|硬|，|咸|度|、|是|否|加|葱|都|可|根|据|喜|好|选|择|，|个|人|觉|的|普|通|即|可|，|尝|试|了|一|次|硬|的|，|也|可|以|接|受|，|但|是|估|计|不|会|尝|试|特|硬|的|、|、|、|\u0002|汤|是|十|分|浓|稠|，|有|胶|口|的|感|觉|，|浓|稠|度|和|博|多|一|幸|舍|差|不|多|，|也|就|是|东|北|皮|冻|的|五|分|到|七|分|的|浓|度|，|很|多|人|可|能|会|觉|得|腻|，|\u0003|本|人|挺|喜|欢|，|另|加|一|份|面|6|元|，|加|汤|不|要|钱|，|带|娃|来|吃|还|是|划|算|滴|。|\u0002|跟|博|多|一|幸|舍|的|面|面|配|料|基|本|一|致|，|紫|菜|、|鸡|蛋|、|芽|菜|、|香|葱|、|木|耳|、|笋|、|叉|烧|、|每|种|都|有|单|独|价|格|，|没|有|搭|配|在|一|起|的|全|套|豪|华|配|菜|价|格|。|\u0002|面|里|搭|配|的|肉|肉|没|有|博|多|一|幸|舍|的|大|片|，|但|是|味|道|还|不|错|，|嫩|香|，|就|是|家|里|的|蒜|泥|肘|子|肉|（|盐|水|炖|肘|花|）|。|糖|心|蛋|就|是|煮|鸡|蛋|，|蛋|清|已|熟|，|蛋|黄|儿|半|熟|，|温|泉|蛋|就|是|窝|鸡|蛋|，|蛋|清|变|白|裹|住|没|熟|的|蛋|黄|儿|。|\u0002|还|点|了|一|口|饺|子|、|炸|鸡|块|，|炸|鸡|排|，|炸|香|肠|，|可|惜|没|来|得|及|拍|照|就|破|相|了|，|不|能|上|图|了|，|一|口|饺|子|不|如|博|多|一|幸|舍|好|吃|，|炸|鸡|块|有|四|块|，|比|博|多|一|幸|舍|的|稍|微|小|一|点|，|但|是|更|好|吃|更|入|味|也|更|嫩|一|些|。|那|个|香|肠|没|什|么|特|点|，|宝|宝|喜|欢|而|已|。|鸡|排|不|过|不|失|的|，|没|什|么|特|点|。|\u0003|配|菜|中|，|\u0003|木|耳|就|是|脆|，|芽|菜|带|着|蔬|菜|汁|所|以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪|碧|直|接|给|了|易|拉|罐|和|一|根|管|子|，|不|像|博|多|一|幸|舍|，|漂|亮|的|大|啤|酒|杯|，|质|量|不|错|的|黑|色|吸|管|。|\u0002|豚|丸|店|加|汤|只|有|清|汤|加|（|清|汤|也|已|经|十|分|浓|稠|）|，|博|多|加|汤|时|会|问|您|需|要|加|浓|汤|还|是|清|汤|。|\u0002|\"|\"|店|内|印象|：|日本|风|的|装修|，|店里|光线|偏暗|，|空间|狭小|\u0003|很|拘谨|，|桌上|没有|随时|可以|接水|的|水龙头|，|桌子|上|也|没有|嵌入式|可以|煮|面|的|小|电磁炉|，|（|该|评价|是|跟|博多|一幸|舍|对比|）|，|店员|服务态度|很|热情|，|上|汤|上面|也|算|快|，|价格比|博多|一幸|舍|便宜|一些|，|周一|至|周五|可以|打折|，|周末|没有|任何|优惠|。|\u0002|面|的|口感|可以|根据|自己|的|感觉|选择|软|\u0003|普通|\u0003|硬|\u0003|很|硬|，|咸度|、|是否|加葱|都|可|根据|喜好|选择|，|个人|觉|的|普通|即可|，|尝试|了|一次|硬|的|，|也|可以|接受|，|但是|估计|不会|尝试|特硬|的|、|、|、|\u0002|汤|是|十分|浓稠|，|有|胶口|的|感觉|，|浓|稠度|和|博多|一幸|舍|差不多|，|也|就是|东北|皮冻|的|五分|到|七分|的|浓度|，|很多|人|可能|会|觉得|腻|，|\u0003|本人|挺|喜欢|，|另加|一份|面|6|元|，|加汤|不要|钱|，|带|娃|来|吃|还是|划算|滴|。|\u0002|跟|博多|一幸舍|的|面面|配料|基本一致|，|紫菜|、|鸡蛋|、|芽菜|、|香葱|、|木耳|、|笋|、|叉烧|、|每种|都|有|单独|价格|，|没有|搭配|在|一起|的|全套|豪华|配菜|价格|。|\u0002|面里|搭配|的|肉肉|没有|博多|一幸舍|的|大片|，|但是|味道|还|不错|，|嫩香|，|就是|家里|的|蒜泥|肘子|肉|（|盐水|炖|肘|花|）|。|糖心|蛋|就是|煮|鸡蛋|，|蛋清|已|熟|，|蛋黄|儿|半熟|，|温泉|蛋|就是|窝|鸡蛋|，|蛋清|变白|裹住|没熟|的|蛋黄|儿|。|\u0002|还点|了|一口|饺子|、|炸鸡块|，|炸鸡|排|，|炸|香肠|，|可惜|没|来得及|拍照|就|破相|了|，|不能|上图|了|，|一口|饺子|不如|博多|一幸|舍|好吃|，|炸鸡块|有|四块|，|比|博多|一幸舍|的|稍微|小|一点|，|但是|更|好吃|更|入味|也|更|嫩|一些|。|那个|香肠|没什么|特点|，|宝宝|喜欢|而已|。|鸡|排|不过|不失|的|，|没什么|特点|。|\u0003|配菜|中|，|\u0003|木耳|就是|脆|，|芽菜|带|着|蔬菜汁|所以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪碧|直接|给|了|易拉罐|和|一根|管子|，|不|像|博多|一幸|舍|，|漂亮|的|大|啤酒杯|，|质量|不错|的|黑色|吸管|。|\u0002|豚丸|店|加|汤|只有|清|汤加|（|清汤|也|已经|十分|浓稠|）|，|博多|加汤|时会|问|您|需要|加|浓汤|还是|清汤|。|\u0002|\" 1126\n2018-10-19 15:32:53 0:00:01 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 15:33:36 0:00:01 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 15:33:57 0:00:22 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 15:34:17 0:00:42 \"伊势丹楼下，路过很多次都没有进来～终于有机会来尝一尝了大阪煎饼了！店面比较小，放着日本名族歌曲，日本小店的感觉～老板是个亲切的日本大叔～\u0002【章鱼小丸子】很q弹！真的是我吃过最q弹的小丸子！里面很明显有一块有嚼劲的章鱼肉～\u0002【海鲜大阪煎饼】味道很好，蛋皮里面包的虾，扇贝肉，鸡蛋，还有些菜～加了奶酪，多加十元，但是感觉意义不大。\u0002【海鲜大阪烧】这个是送错餐送给我们吃的～里面只有虾，感觉没得煎饼好吃，价格比煎饼便宜。\u0002【乌冬面】很清淡，但是汤很有味道～面有嚼劲～\" \"|伊|势|丹|楼|下|，|路|过|很|多|次|都|没|有|进|来|～|终|于|有|机|会|来|尝|一|尝|了|大|阪|煎|饼|了|！|店|面|比|较|小|，|放|着|日|本|名|族|歌|曲|，|日|本|小|店|的|感|觉|～|老|板|是|个|亲|切|的|日|本|大|叔|～|\u0002|【|章|鱼|小|丸|子|】|很|q|弹|！|真|的|是|我|吃|过|最|q|弹|的|小|丸|子|！|里|面|很|明|显|有|一|块|有|嚼|劲|的|章|鱼|肉|～|\u0002|【|海|鲜|大|阪|煎|饼|】|味|道|很|好|，|蛋|皮|里|面|包|的|虾|，|扇|贝|肉|，|鸡|蛋|，|还|有|些|菜|～|加|了|奶|酪|，|多|加|十|元|，|但|是|感|觉|意|义|不|大|。|\u0002|【|海|鲜|大|阪|烧|】|这|个|是|送|错|餐|送|给|我|们|吃|的|～|里|面|只|有|虾|，|感|觉|没|得|煎|饼|好|吃|，|价|格|比|煎|饼|便|宜|。|\u0002|【|乌|冬|面|】|很|清|淡|，|但|是|汤|很|有|味|道|～|面|有|嚼|劲|～|\"|\"|伊势|丹|楼下|，|路过|很|多次|都|没有|进来|～|终于|有|机会|来|尝一尝|了|大阪|煎饼|了|！|店面|比较|小|，|放着|日本|名族|歌曲|，|日本|小店|的|感觉|～|老板|是|个|亲切|的|日本|大叔|～|\u0002|【|章鱼|小丸子|】|很|q|弹|！|真的|是|我|吃|过|最|q|弹|的|小丸子|！|里面|很|明显|有|一块|有|嚼|劲|的|章|鱼肉|～|\u0002|【|海鲜|大阪|煎饼|】|味道|很|好|，|蛋|皮里|面包|的|虾|，|扇贝|肉|，|鸡蛋|，|还|有些|菜|～|加|了|奶酪|，|多加|十元|，|但是|感觉|意义|不|大|。|\u0002|【|海鲜|大阪|烧|】|这个|是|送错|餐|送给|我们|吃|的|～|里面|只有|虾|，|感觉|没|得|煎饼|好吃|，|价格比|煎饼|便宜|。|\u0002|【|乌冬面|】|很|清淡|，|但是|汤|很|有|味道|～|面有|嚼|劲|～|\" 393\n2018-10-19 15:34:38 0:01:03 \"一直很喜欢这家的pasta，以前都是在美罗城楼下吃的，感觉都很好还一直和别人推荐，周日下雨和老公本来想去太兴的没想到关门就到镰仓了，这里地方还算比较大，一进去浓浓的奶香味很舒服，坐下来开始点单，新品出来还比较多，不过还是点了pasta。\u0002畅食的面包必须点单后才给你上ok没问题，我点了脆虾番茄奶油意面52元，虾大概有6-8个还算可以，不过意面不多，最重要的是这里的意面能叫意面吗？烂的比烂糊面还烂，加上烧的浓稠的的酱汁要死了就是一坨面粉，完全没有口味可言，老公点的扇贝配鲑鱼意面也是如此，面条都糊了，受不了，吃完胃就不舒服了。\u0002熏鲑鱼色拉还可以酱料调配的比较爽口。\u0002畅食的面包真的没有以前好吃了，以前的羊角面包都是现烤热腾腾的，现在很多都是一起上，虽然味道还不错但是口感没有刚出炉的那么酥脆了。\u0002看来以后老公是不会再来了。\" \"|一|直|很|喜|欢|这|家|的|p|a|s|t|a|，|以|前|都|是|在|美|罗|城|楼|下|吃|的|，|感|觉|都|很|好|还|一|直|和|别|人|推|荐|，|周|日|下|雨|和|老|公|本|来|想|去|太|兴|的|没|想|到|关|门|就|到|镰|仓|了|，|这|里|地|方|还|算|比|较|大|，|一|进|去|浓|浓|的|奶|香|味|很|舒|服|，|坐|下|来|开|始|点|单|，|新|品|出|来|还|比|较|多|，|不|过|还|是|点|了|p|a|s|t|a|。|\u0002|畅|食|的|面|包|必|须|点|单|后|才|给|你|上|o|k|没|问|题|，|我|点|了|脆|虾|番|茄|奶|油|意|面|5|2|元|，|虾|大|概|有|6|-|8|个|还|算|可|以|，|不|过|意|面|不|多|，|最|重|要|的|是|这|里|的|意|面|能|叫|意|面|吗|？|烂|的|比|烂|糊|面|还|烂|，|加|上|烧|的|浓|稠|的|的|酱|汁|要|死|了|就|是|一|坨|面|粉|，|完|全|没|有|口|味|可|言|，|老|公|点|的|扇|贝|配|鲑|鱼|意|面|也|是|如|此|，|面|条|都|糊|了|，|受|不|了|，|吃|完|胃|就|不|舒|服|了|。|\u0002|熏|鲑|鱼|色|拉|还|可|以|酱|料|调|配|的|比|较|爽|口|。|\u0002|畅|食|的|面|包|真|的|没|有|以|前|好|吃|了|，|以|前|的|羊|角|面|包|都|是|现|烤|热|腾|腾|的|，|现|在|很|多|都|是|一|起|上|，|虽|然|味|道|还|不|错|但|是|口|感|没|有|刚|出|炉|的|那|么|酥|脆|了|。|\u0002|看|来|以|后|老|公|是|不|会|再|来|了|。|\"|\"|一直|很|喜欢|这家|的|pasta|，|以前|都|是|在|美罗城|楼下|吃|的|，|感觉|都|很|好|还|一直|和|别人|推荐|，|周日|下雨|和|老公|本来|想|去|太兴|的|没想到|关门|就|到|镰|仓|了|，|这里|地方|还|算|比较|大|，|一|进去|浓浓的|奶|香味|很|舒服|，|坐下|来|开始|点单|，|新品|出来|还|比较|多|，|不过|还是|点|了|pasta|。|\u0002|畅食|的|面包|必须|点|单后|才|给|你|上|ok|没|问题|，|我点|了|脆|虾|番茄|奶油|意面|52|元|，|虾|大概|有|6|-|8|个|还|算|可以|，|不过意|面不多|，|最|重要|的|是|这里|的|意面|能|叫|意面|吗|？|烂|的|比|烂糊|面|还|烂|，|加上|烧|的|浓稠|的|的|酱汁|要死|了|就是|一坨|面粉|，|完全|没有|口味|可言|，|老公|点|的|扇贝|配|鲑鱼|意面|也|是|如此|，|面条|都|糊|了|，|受不了|，|吃|完胃|就|不|舒服|了|。|\u0002|熏|鲑鱼|色拉|还|可以|酱料|调配|的|比较|爽口|。|\u0002|畅食|的|面包|真的|没有|以前|好吃|了|，|以前|的|羊角|面包|都|是|现烤|热腾腾|的|，|现在|很多|都|是|一起|上|，|虽然|味道|还|不错|但是|口感|没有|刚|出炉|的|那么|酥脆|了|。|\u0002|看来|以后|老公|是|不会|再来|了|。|\" 604\n2018-10-19 15:34:58 0:01:23 \"以前对烧烤都没感觉，这次抽中大众的霸王餐就去吃了。吃下来意犹未尽的感觉，很好吃！妈妈也赞不绝口。我们没点羊排\u0003单点的烤串\u0003还有凉皮\u0003做的很好有劲\u0003微甜\u0003羊杂汤\u0003里面料很足\u0003最后都没吃完\u0003还有羊肉面\u0003汤里放了胡椒粉\u0003面条很有嚼劲\u0003我喜欢的\u0003凉拌海带也不错\u0003店里烤串价格不贵\u0003而且分量很实在！\u0003羊肉串3块\u0003羊脆骨4块\u0003考鸡翅个头满大的两个也就8块\u0003明虾也非常好吃\u00032块一串\u0003店家服务态度也很好的\u0003我们三个大人一个小孩吃了202\u0003我去结帐\u0003老板说2块钱就算了\u0003够爽气\u0003真是霸王餐了\u0003吃饱喝足\u0003还打包\u0003一分钱都没花！以后要吃烤串一定还去\u0003就是如果能出团购代金券\u0003就更好拉\" \"|以|前|对|烧|烤|都|没|感|觉|，|这|次|抽|中|大|众|的|霸|王|餐|就|去|吃|了|。|吃|下|来|意|犹|未|尽|的|感|觉|，|很|好|吃|！|妈|妈|也|赞|不|绝|口|。|我|们|没|点|羊|排|\u0003|单|点|的|烤|串|\u0003|还|有|凉|皮|\u0003|做|的|很|好|有|劲|\u0003|微|甜|\u0003|羊|杂|汤|\u0003|里|面|料|很|足|\u0003|最|后|都|没|吃|完|\u0003|还|有|羊|肉|面|\u0003|汤|里|放|了|胡|椒|粉|\u0003|面|条|很|有|嚼|劲|\u0003|我|喜|欢|的|\u0003|凉|拌|海|带|也|不|错|\u0003|店|里|烤|串|价|格|不|贵|\u0003|而|且|分|量|很|实|在|！|\u0003|羊|肉|串|3|块|\u0003|羊|脆|骨|4|块|\u0003|考|鸡|翅|个|头|满|大|的|两|个|也|就|8|块|\u0003|明|虾|也|非|常|好|吃|\u0003|2|块|一|串|\u0003|店|家|服|务|态|度|也|很|好|的|\u0003|我|们|三|个|大|人|一|个|小|孩|吃|了|2|0|2|\u0003|我|去|结|帐|\u0003|老|板|说|2|块|钱|就|算|了|\u0003|够|爽|气|\u0003|真|是|霸|王|餐|了|\u0003|吃|饱|喝|足|\u0003|还|打|包|\u0003|一|分|钱|都|没|花|！|以|后|要|吃|烤|串|一|定|还|去|\u0003|就|是|如|果|能|出|团|购|代|金|券|\u0003|就|更|好|拉|\"|\"|以前|对|烧烤|都|没|感觉|，|这次|抽|中|大众|的|霸王餐|就|去|吃|了|。|吃|下来|意犹未尽|的|感觉|，|很|好吃|！|妈妈|也|赞不绝口|。|我们|没点|羊排|\u0003|单点|的|烤串|\u0003|还有|凉皮|\u0003|做|的|很|好|有劲|\u0003|微甜|\u0003|羊杂|汤|\u0003|里面|料|很|足|\u0003|最后|都|没|吃|完|\u0003|还有|羊肉|面|\u0003|汤里|放|了|胡椒粉|\u0003|面条|很|有|嚼|劲|\u0003|我|喜欢|的|\u0003|凉拌|海带|也|不错|\u0003|店里|烤串|价格|不|贵|\u0003|而且|分量|很|实在|！|\u0003|羊肉串|3|块|\u0003|羊|脆骨|4|块|\u0003|考|鸡翅|个头|满大|的|两个|也|就|8|块|\u0003|明虾|也|非常|好吃|\u0003|2|块|一串|\u0003|店家|服务态度|也|很|好|的|\u0003|我们|三个|大人|一个|小孩|吃|了|202|\u0003|我|去|结帐|\u0003|老板|说|2|块钱|就算|了|\u0003|够|爽气|\u0003|真是|霸王餐|了|\u0003|吃饱喝足|\u0003|还|打包|\u0003|一分钱|都|没花|！|以后|要|吃|烤串|一定|还|去|\u0003|就是|如果|能出|团购|代金券|\u0003|就|更好|拉|\" 474\n2018-10-19 15:35:19 0:01:44 \"餐前，装冷菜的碟子是仿青瓷的碟子，高脚，可惜是塑料的，近看缺了质感，没有瓷器那种通透，远看挺不错。盛菜的器皿有些也挺有特色的，包厢布置也花了功夫，走古风挂字画。墙纸是青花瓷的，对面墙壁也贴了很多瓷器，有几个还是玲珑瓷，透光看比较好看。比较喜欢他们家的日式茶壶，铁壶，很沉但漂亮，据说冲泡能补铁？菜品味道一般，花样是挺多的，杨枝甘露换个器皿就能换来很大的拍照量，是不是桌桌都有？喜欢那个有小把的酱料器皿，拿着很可爱\" \"|餐|前|，|装|冷|菜|的|碟|子|是|仿|青|瓷|的|碟|子|，|高|脚|，|可|惜|是|塑|料|的|，|近|看|缺|了|质|感|，|没|有|瓷|器|那|种|通|透|，|远|看|挺|不|错|。|盛|菜|的|器|皿|有|些|也|挺|有|特|色|的|，|包|厢|布|置|也|花|了|功|夫|，|走|古|风|挂|字|画|。|墙|纸|是|青|花|瓷|的|，|对|面|墙|壁|也|贴|了|很|多|瓷|器|，|有|几|个|还|是|玲|珑|瓷|，|透|光|看|比|较|好|看|。|比|较|喜|欢|他|们|家|的|日|式|茶|壶|，|铁|壶|，|很|沉|但|漂|亮|，|据|说|冲|泡|能|补|铁|？|菜|品|味|道|一|般|，|花|样|是|挺|多|的|，|杨|枝|甘|露|换|个|器|皿|就|能|换|来|很|大|的|拍|照|量|，|是|不|是|桌|桌|都|有|？|喜|欢|那|个|有|小|把|的|酱|料|器|皿|，|拿|着|很|可|爱|\"|\"|餐前|，|装|冷菜|的|碟子|是|仿|青瓷|的|碟子|，|高脚|，|可惜|是|塑料|的|，|近|看|缺|了|质感|，|没有|瓷器|那种|通透|，|远看|挺不错|。|盛菜|的|器皿|有些|也|挺|有|特色|的|，|包厢|布置|也|花|了|功夫|，|走|古风|挂|字画|。|墙纸|是|青花瓷|的|，|对面|墙壁|也|贴|了|很多|瓷器|，|有|几个|还是|玲珑|瓷|，|透光|看|比较|好看|。|比较|喜欢|他们|家|的|日式|茶壶|，|铁壶|，|很沉|但|漂亮|，|据说|冲泡|能|补铁|？|菜品|味道|一般|，|花样|是|挺|多|的|，|杨枝|甘露|换个|器皿|就|能|换来|很大|的|拍照|量|，|是不是|桌桌|都|有|？|喜欢|那个|有|小|把|的|酱料|器皿|，|拿|着|很|可爱|\" 348\n2018-10-19 15:35:39 0:02:04 \"本人上周参加了婚宴！灯光效果非常不错，做的挺用心。服务员态度比较谦和，也挺任劳任怨的，一个个东跑西癫都累出汗了，看着俺都心疼啊。用于闹肚子，喝点白酒也没吃菜，不过听老婆说个个菜做的超棒，非得中秋节拉着我去尝尝果木烤鸭和杏鲍菇。以后想吃海鲜就去奥帆号了，海鲜厨房嘛高端的装修，可口的大众亲民的价格。还有好多帅哥美女免费服务哟～唯一美中不足的地方就是院子里的停车场有点小，放30多个车就快没地方了，得提前点过去抢个车位再说～哈哈\" \"|本|人|上|周|参|加|了|婚|宴|！|灯|光|效|果|非|常|不|错|，|做|的|挺|用|心|。|服|务|员|态|度|比|较|谦|和|，|也|挺|任|劳|任|怨|的|，|一|个|个|东|跑|西|癫|都|累|出|汗|了|，|看|着|俺|都|心|疼|啊|。|用|于|闹|肚|子|，|喝|点|白|酒|也|没|吃|菜|，|不|过|听|老|婆|说|个|个|菜|做|的|超|棒|，|非|得|中|秋|节|拉|着|我|去|尝|尝|果|木|烤|鸭|和|杏|鲍|菇|。|以|后|想|吃|海|鲜|就|去|奥|帆|号|了|，|海|鲜|厨|房|嘛|高|端|的|装|修|，|可|口|的|大|众|亲|民|的|价|格|。|还|有|好|多|帅|哥|美|女|免|费|服|务|哟|～|唯|一|美|中|不|足|的|地|方|就|是|院|子|里|的|停|车|场|有|点|小|，|放|3|0|多|个|车|就|快|没|地|方|了|，|得|提|前|点|过|去|抢|个|车|位|再|说|～|哈|哈|\"|\"|本人|上周|参加|了|婚宴|！|灯光效果|非常|不错|，|做|的|挺|用心|。|服务员|态度|比较|谦和|，|也|挺|任劳任怨|的|，|一个个|东跑|西癫|都|累|出汗|了|，|看着|俺|都|心疼|啊|。|用于|闹肚子|，|喝点|白酒|也|没|吃|菜|，|不过|听|老婆|说|个个|菜|做|的|超棒|，|非得|中秋节|拉|着|我|去|尝尝|果木|烤鸭|和|杏鲍菇|。|以后|想|吃海鲜|就|去|奥帆|号|了|，|海鲜|厨房|嘛|高端|的|装修|，|可口|的|大众|亲民|的|价格|。|还有|好多|帅哥美女|免费|服务|哟|～|唯一|美中不足|的|地方|就是|院子|里|的|停车场|有点|小|，|放|30|多个|车|就|快|没|地方|了|，|得|提前|点|过去|抢个|车位|再说|～|哈哈|\" 348\n2018-10-19 15:36:00 0:02:24 \"趁赛格美食节买的团购券\u0003来西安一年\u0003对长安大排档长草很久了\u0003也差不多拖了一年才来吃\u0003七七八八减减以后用了59块钱买了100的抵用券\u0003实在是划算。\u0002今天晚上雨下的挺大的\u0003和男票出门\u0003回来的时候就在小寨下了\u0003直奔赛格六楼长安大排挡。\u0002去的时候不到七点\u0003已经有不少人排队了。我一问\u0003原来两个人不需要等位\u0003实在是太好了。\u0002点了葫芦鸡\u0003枣馍\u0003锅贴和羊肉串。加起来105\u0003两个人吃的饱饱的。\u0002葫芦鸡很好吃\u0003有点像炸鸡\u000358一整只鸡\u0003两个人吃的好饱\u0003男票动手撕开的\u0003他很喜欢吃。\u0002羊肉串十串25\u0003肉很大块\u0003也不肥。锅贴中规中矩。枣馍感觉没有大家评价的那么好\u0003不过当主食也不错。\u0002总之很满意的一家店\u0003性价比高\u0003菜的味道也不错。\" \"|趁|赛|格|美|食|节|买|的|团|购|券|\u0003|来|西|安|一|年|\u0003|对|长|安|大|排|档|长|草|很|久|了|\u0003|也|差|不|多|拖|了|一|年|才|来|吃|\u0003|七|七|八|八|减|减|以|后|用|了|5|9|块|钱|买|了|1|0|0|的|抵|用|券|\u0003|实|在|是|划|算|。|\u0002|今|天|晚|上|雨|下|的|挺|大|的|\u0003|和|男|票|出|门|\u0003|回|来|的|时|候|就|在|小|寨|下|了|\u0003|直|奔|赛|格|六|楼|长|安|大|排|挡|。|\u0002|去|的|时|候|不|到|七|点|\u0003|已|经|有|不|少|人|排|队|了|。|我|一|问|\u0003|原|来|两|个|人|不|需|要|等|位|\u0003|实|在|是|太|好|了|。|\u0002|点|了|葫|芦|鸡|\u0003|枣|馍|\u0003|锅|贴|和|羊|肉|串|。|加|起|来|1|0|5|\u0003|两|个|人|吃|的|饱|饱|的|。|\u0002|葫|芦|鸡|很|好|吃|\u0003|有|点|像|炸|鸡|\u0003|5|8|一|整|只|鸡|\u0003|两|个|人|吃|的|好|饱|\u0003|男|票|动|手|撕|开|的|\u0003|他|很|喜|欢|吃|。|\u0002|羊|肉|串|十|串|2|5|\u0003|肉|很|大|块|\u0003|也|不|肥|。|锅|贴|中|规|中|矩|。|枣|馍|感|觉|没|有|大|家|评|价|的|那|么|好|\u0003|不|过|当|主|食|也|不|错|。|\u0002|总|之|很|满|意|的|一|家|店|\u0003|性|价|比|高|\u0003|菜|的|味|道|也|不|错|。|\"|\"|趁|赛格|美食节|买|的|团购|券|\u0003|来|西安|一年|\u0003|对|长安|大排档|长草|很|久|了|\u0003|也|差不多|拖|了|一年|才|来|吃|\u0003|七七八八|减减|以后|用|了|59|块钱|买|了|100|的|抵用券|\u0003|实在|是|划算|。|\u0002|今天|晚上|雨下|的|挺|大|的|\u0003|和|男票|出门|\u0003|回来|的|时候|就|在|小寨|下|了|\u0003|直奔|赛格|六楼|长安|大排挡|。|\u0002|去|的|时候|不到|七点|\u0003|已经|有|不少|人|排队|了|。|我|一问|\u0003|原来|两个|人|不|需要|等位|\u0003|实在|是|太好了|。|\u0002|点|了|葫芦|鸡|\u0003|枣馍|\u0003|锅贴|和|羊肉串|。|加|起来|105|\u0003|两个|人|吃|的|饱饱|的|。|\u0002|葫芦|鸡|很|好吃|\u0003|有点像|炸鸡|\u0003|58|一整只|鸡|\u0003|两个|人|吃|的|好|饱|\u0003|男票|动手|撕开|的|\u0003|他|很|喜欢|吃|。|\u0002|羊肉串|十串|25|\u0003|肉|很大|块|\u0003|也|不肥|。|锅贴|中规中矩|。|枣馍|感觉|没有|大家|评价|的|那么|好|\u0003|不过|当|主食|也|不错|。|\u0002|总之|很|满意|的|一家|店|\u0003|性价比|高|\u0003|菜|的|味道|也|不错|。|\" 511\n2018-10-19 15:36:20 0:02:45 \"店内印象：日本风的装修，店里光线偏暗，空间狭小\u0003很拘谨，桌上没有随时可以接水的水龙头，桌子上也没有嵌入式可以煮面的小电磁炉，（该评价是跟博多一幸舍对比），店员服务态度很热情，上汤上面也算快，价格比博多一幸舍便宜一些，周一至周五可以打折，周末没有任何优惠。\u0002面的口感可以根据自己的感觉选择软\u0003普通\u0003硬\u0003很硬，咸度、是否加葱都可根据喜好选择，个人觉的普通即可，尝试了一次硬的，也可以接受，但是估计不会尝试特硬的、、、\u0002汤是十分浓稠，有胶口的感觉，浓稠度和博多一幸舍差不多，也就是东北皮冻的五分到七分的浓度，很多人可能会觉得腻，\u0003本人挺喜欢，另加一份面6元，加汤不要钱，带娃来吃还是划算滴。\u0002跟博多一幸舍的面面配料基本一致，紫菜、鸡蛋、芽菜、香葱、木耳、笋、叉烧、每种都有单独价格，没有搭配在一起的全套豪华配菜价格。\u0002面里搭配的肉肉没有博多一幸舍的大片，但是味道还不错，嫩香，就是家里的蒜泥肘子肉（盐水炖肘花）。糖心蛋就是煮鸡蛋，蛋清已熟，蛋黄儿半熟，温泉蛋就是窝鸡蛋，蛋清变白裹住没熟的蛋黄儿。\u0002还点了一口饺子、炸鸡块，炸鸡排，炸香肠，可惜没来得及拍照就破相了，不能上图了，一口饺子不如博多一幸舍好吃，炸鸡块有四块，比博多一幸舍的稍微小一点，但是更好吃更入味也更嫩一些。那个香肠没什么特点，宝宝喜欢而已。鸡排不过不失的，没什么特点。\u0003配菜中，\u0003木耳就是脆，芽菜带着蔬菜汁所以是水脆，\u0003笋是嫩。\u0003雪碧直接给了易拉罐和一根管子，不像博多一幸舍，漂亮的大啤酒杯，质量不错的黑色吸管。\u0002豚丸店加汤只有清汤加（清汤也已经十分浓稠），博多加汤时会问您需要加浓汤还是清汤。\u0002\" \"|店|内|印|象|：|日|本|风|的|装|修|，|店|里|光|线|偏|暗|，|空|间|狭|小|\u0003|很|拘|谨|，|桌|上|没|有|随|时|可|以|接|水|的|水|龙|头|，|桌|子|上|也|没|有|嵌|入|式|可|以|煮|面|的|小|电|磁|炉|，|（|该|评|价|是|跟|博|多|一|幸|舍|对|比|）|，|店|员|服|务|态|度|很|热|情|，|上|汤|上|面|也|算|快|，|价|格|比|博|多|一|幸|舍|便|宜|一|些|，|周|一|至|周|五|可|以|打|折|，|周|末|没|有|任|何|优|惠|。|\u0002|面|的|口|感|可|以|根|据|自|己|的|感|觉|选|择|软|\u0003|普|通|\u0003|硬|\u0003|很|硬|，|咸|度|、|是|否|加|葱|都|可|根|据|喜|好|选|择|，|个|人|觉|的|普|通|即|可|，|尝|试|了|一|次|硬|的|，|也|可|以|接|受|，|但|是|估|计|不|会|尝|试|特|硬|的|、|、|、|\u0002|汤|是|十|分|浓|稠|，|有|胶|口|的|感|觉|，|浓|稠|度|和|博|多|一|幸|舍|差|不|多|，|也|就|是|东|北|皮|冻|的|五|分|到|七|分|的|浓|度|，|很|多|人|可|能|会|觉|得|腻|，|\u0003|本|人|挺|喜|欢|，|另|加|一|份|面|6|元|，|加|汤|不|要|钱|，|带|娃|来|吃|还|是|划|算|滴|。|\u0002|跟|博|多|一|幸|舍|的|面|面|配|料|基|本|一|致|，|紫|菜|、|鸡|蛋|、|芽|菜|、|香|葱|、|木|耳|、|笋|、|叉|烧|、|每|种|都|有|单|独|价|格|，|没|有|搭|配|在|一|起|的|全|套|豪|华|配|菜|价|格|。|\u0002|面|里|搭|配|的|肉|肉|没|有|博|多|一|幸|舍|的|大|片|，|但|是|味|道|还|不|错|，|嫩|香|，|就|是|家|里|的|蒜|泥|肘|子|肉|（|盐|水|炖|肘|花|）|。|糖|心|蛋|就|是|煮|鸡|蛋|，|蛋|清|已|熟|，|蛋|黄|儿|半|熟|，|温|泉|蛋|就|是|窝|鸡|蛋|，|蛋|清|变|白|裹|住|没|熟|的|蛋|黄|儿|。|\u0002|还|点|了|一|口|饺|子|、|炸|鸡|块|，|炸|鸡|排|，|炸|香|肠|，|可|惜|没|来|得|及|拍|照|就|破|相|了|，|不|能|上|图|了|，|一|口|饺|子|不|如|博|多|一|幸|舍|好|吃|，|炸|鸡|块|有|四|块|，|比|博|多|一|幸|舍|的|稍|微|小|一|点|，|但|是|更|好|吃|更|入|味|也|更|嫩|一|些|。|那|个|香|肠|没|什|么|特|点|，|宝|宝|喜|欢|而|已|。|鸡|排|不|过|不|失|的|，|没|什|么|特|点|。|\u0003|配|菜|中|，|\u0003|木|耳|就|是|脆|，|芽|菜|带|着|蔬|菜|汁|所|以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪|碧|直|接|给|了|易|拉|罐|和|一|根|管|子|，|不|像|博|多|一|幸|舍|，|漂|亮|的|大|啤|酒|杯|，|质|量|不|错|的|黑|色|吸|管|。|\u0002|豚|丸|店|加|汤|只|有|清|汤|加|（|清|汤|也|已|经|十|分|浓|稠|）|，|博|多|加|汤|时|会|问|您|需|要|加|浓|汤|还|是|清|汤|。|\u0002|\"|\"|店内|印象|：|日本|风|的|装修|，|店里|光线|偏暗|，|空间|狭小|\u0003|很|拘谨|，|桌上|没有|随时|可以|接水|的|水龙头|，|桌子|上|也|没有|嵌入式|可以|煮面|的|小|电磁炉|，|（|该|评价|是|跟|博多|一幸|舍|对比|）|，|店员|服务态度|很|热情|，|上|汤|上面|也|算|快|，|价格比|博多|一幸|舍|便宜|一些|，|周一|至|周五|可以|打折|，|周末|没有|任何|优惠|。|\u0002|面|的|口感|可以|根据|自己|的|感觉|选择|软|\u0003|普通|\u0003|硬|\u0003|很|硬|，|咸度|、|是否|加葱|都|可|根据|喜好|选择|，|个人|觉|的|普通|即可|，|尝试|了|一次|硬|的|，|也|可以|接受|，|但是|估计|不会|尝试|特硬|的|、|、|、|\u0002|汤是|十分|浓稠|，|有|胶口|的|感觉|，|浓|稠度|和|博多|一幸|舍|差不多|，|也|就是|东北|皮冻|的|五分|到|七分|的|浓度|，|很多|人|可能|会|觉得|腻|，|\u0003|本人|挺|喜欢|，|另加|一份|面|6|元|，|加汤|不要|钱|，|带娃来|吃|还是|划算|滴|。|\u0002|跟|博多|一幸|舍|的|面面|配料|基本一致|，|紫菜|、|鸡蛋|、|芽菜|、|香葱|、|木耳|、|笋|、|叉烧|、|每种|都|有|单独|价格|，|没有|搭配|在|一起|的|全套|豪华|配菜|价格|。|\u0002|面里|搭配|的|肉|肉|没有|博多|一幸|舍|的|大片|，|但是|味道|还|不错|，|嫩|香|，|就是|家里|的|蒜泥|肘子|肉|（|盐水|炖|肘|花|）|。|糖心|蛋|就是|煮|鸡蛋|，|蛋清|已熟|，|蛋黄|儿|半熟|，|温泉|蛋|就是|窝|鸡蛋|，|蛋清|变白|裹住|没熟|的|蛋黄|儿|。|\u0002|还点|了|一口|饺子|、|炸鸡块|，|炸鸡|排|，|炸|香肠|，|可惜|没|来得及|拍照|就|破|相|了|，|不能|上图|了|，|一口|饺子|不如|博多|一幸|舍|好吃|，|炸鸡块|有|四块|，|比|博多|一幸|舍|的|稍微|小|一点|，|但是|更|好吃|更|入味|也|更|嫩|一些|。|那个|香肠|没什么|特点|，|宝宝|喜欢|而已|。|鸡排|不过|不失|的|，|没什么|特点|。|\u0003|配菜|中|，|\u0003|木耳|就是|脆|，|芽|菜|带|着|蔬菜汁|所以|是|水脆|，|\u0003|笋|是|嫩|。|\u0003|雪碧|直接|给|了|易拉罐|和|一根|管子|，|不像|博多|一幸|舍|，|漂亮|的|大|啤酒杯|，|质量|不错|的|黑色|吸管|。|\u0002|豚|丸|店加|汤|只有|清|汤加|（|清汤|也|已经|十分|浓稠|）|，|博多|加汤|时会|问|您|需要|加|浓汤|还是|清汤|。|\u0002|\" 1124\n2018-10-19 15:36:40 0:03:05 \"一、地理位置：谢家湾万象城5楼，溜冰场上面。\u0002二、服务：店铺不大，干净整洁。服务态度不咸不淡的，9积分兑换的，也可以理解\u0002三、食品：有一句话真的很对—不作死就不会死。本来不喜欢喝茶，但作为吃货，没尝过黑龙茶，觉得还是有点介意。刚好有9积分，就鼓起勇气尝试一下。要的常温的红茶，想到热量问题，少糖，也没有加配料。然后就悲剧了，茶很大一杯，但是苦呀，什么伯爵红茶，我都感觉不出来了，又不是单独泡的，也没有什么茶香味。实在是没办法，苦的喝了几口就喝不下去了。\u0002可能多加糖和布丁之类的配料会好很多吧，不过份量的确很大一杯\" \"|一|、|地|理|位|置|：|谢|家|湾|万|象|城|5|楼|，|溜|冰|场|上|面|。|\u0002|二|、|服|务|：|店|铺|不|大|，|干|净|整|洁|。|服|务|态|度|不|咸|不|淡|的|，|9|积|分|兑|换|的|，|也|可|以|理|解|\u0002|三|、|食|品|：|有|一|句|话|真|的|很|对|—|不|作|死|就|不|会|死|。|本|来|不|喜|欢|喝|茶|，|但|作|为|吃|货|，|没|尝|过|黑|龙|茶|，|觉|得|还|是|有|点|介|意|。|刚|好|有|9|积|分|，|就|鼓|起|勇|气|尝|试|一|下|。|要|的|常|温|的|红|茶|，|想|到|热|量|问|题|，|少|糖|，|也|没|有|加|配|料|。|然|后|就|悲|剧|了|，|茶|很|大|一|杯|，|但|是|苦|呀|，|什|么|伯|爵|红|茶|，|我|都|感|觉|不|出|来|了|，|又|不|是|单|独|泡|的|，|也|没|有|什|么|茶|香|味|。|实|在|是|没|办|法|，|苦|的|喝|了|几|口|就|喝|不|下|去|了|。|\u0002|可|能|多|加|糖|和|布|丁|之|类|的|配|料|会|好|很|多|吧|，|不|过|份|量|的|确|很|大|一|杯|\"|\"|一|、|地理位置|：|谢家|湾|万象|城|5|楼|，|溜冰场|上面|。|\u0002|二|、|服务|：|店铺|不|大|，|干净|整洁|。|服务态度|不咸不淡|的|，|9|积分|兑换|的|，|也|可以|理解|\u0002|三|、|食品|：|有|一句|话|真的|很|对|—|不作|死|就|不会|死|。|本来|不|喜欢|喝茶|，|但|作为|吃货|，|没尝过|黑龙|茶|，|觉得|还是|有点|介意|。|刚好|有|9|积分|，|就|鼓起勇气|尝试|一下|。|要|的|常温|的|红茶|，|想到|热量|问题|，|少糖|，|也|没有|加|配料|。|然后|就|悲剧|了|，|茶|很大|一杯|，|但是|苦|呀|，|什么|伯爵|红茶|，|我|都|感觉|不|出来|了|，|又|不是|单独|泡|的|，|也|没有|什么|茶|香味|。|实在|是|没|办法|，|苦|的|喝|了|几口|就|喝|不|下去|了|。|\u0002|可能|多|加糖|和|布丁|之类|的|配料|会|好|很多|吧|，|不过|份量|的确|很大|一杯|\" 432\n2018-10-19 15:37:01 0:03:26 \"非常喜欢去新开的有特色的店品尝，有幸被大众点评网同城聚会抽到黄金替补免费品鉴的机会，我感到十分幸运！红不让台湾特色餐厅位于李沧万达金街1号入口扶梯旁，交通便利，停车方便。店面小资，适合举行小型派对。走近店门，服务员立刻开门迎接并且热情的打招呼。进入店面，环顾四周，鹅黄的灯光下透露出温馨慵懒的气氛，店家匠心独居，屋内的摆设典雅质朴。我们大家围坐在一起开始品尝台湾特色美食，前菜是鸡排沙拉，鸡排外焦里嫩，沙拉酸爽开胃陪的饮品是本店招牌—寒天奶栋，口感丝化。在我们的玩闹嘻戏中，硬菜短上来了——招牌全垒打拼盘，样子可爱，味道独特，被大家迅雷不及掩耳盗铃之势一扫而光。紧接着——等一个人小火锅，西班牙海鲜焗饭，黑椒牛柳焗饭海鲜焗烤嫩鸡排上桌了，食材琳琅满目，令人目不暇接。人多力量大，盘子渐渐见底了，新菜品——普罗旺斯田园披萨，台湾卤肉饭，秘制鸡腿饭，招牌巨蛋烧，阳光手打面，超级霸大热狗震撼来袭。\u0002这里特别提一下普罗旺斯田园披萨，顶上配料五颜六色，芝士浓郁，饼胚酥脆，搭配沙拉和洋葱圈口味绝佳。还有在卤肉饭，鸡腿饭，手打面扮演重要角色的酱料，里面居然搭配了小鱼干，补钙又美味。\u0002环境搭配合理，既有闺密情侣说悄悄话的私密空间，又有三五好友畅饮阔聊的长桌吧台，气氛轻松惬意，互不打扰。\u0002红不让台湾特色餐厅绝对是小资的你餐饮休闲，畅聊发呆的绝佳选择，千万不要错过！\" \"|非|常|喜|欢|去|新|开|的|有|特|色|的|店|品|尝|，|有|幸|被|大|众|点|评|网|同|城|聚|会|抽|到|黄|金|替|补|免|费|品|鉴|的|机|会|，|我|感|到|十|分|幸|运|！|红|不|让|台|湾|特|色|餐|厅|位|于|李|沧|万|达|金|街|1|号|入|口|扶|梯|旁|，|交|通|便|利|，|停|车|方|便|。|店|面|小|资|，|适|合|举|行|小|型|派|对|。|走|近|店|门|，|服|务|员|立|刻|开|门|迎|接|并|且|热|情|的|打|招|呼|。|进|入|店|面|，|环|顾|四|周|，|鹅|黄|的|灯|光|下|透|露|出|温|馨|慵|懒|的|气|氛|，|店|家|匠|心|独|居|，|屋|内|的|摆|设|典|雅|质|朴|。|我|们|大|家|围|坐|在|一|起|开|始|品|尝|台|湾|特|色|美|食|，|前|菜|是|鸡|排|沙|拉|，|鸡|排|外|焦|里|嫩|，|沙|拉|酸|爽|开|胃|陪|的|饮|品|是|本|店|招|牌|—|寒|天|奶|栋|，|口|感|丝|化|。|在|我|们|的|玩|闹|嘻|戏|中|，|硬|菜|短|上|来|了|—|—|招|牌|全|垒|打|拼|盘|，|样|子|可|爱|，|味|道|独|特|，|被|大|家|迅|雷|不|及|掩|耳|盗|铃|之|势|一|扫|而|光|。|紧|接|着|—|—|等|一|个|人|小|火|锅|，|西|班|牙|海|鲜|焗|饭|，|黑|椒|牛|柳|焗|饭|海|鲜|焗|烤|嫩|鸡|排|上|桌|了|，|食|材|琳|琅|满|目|，|令|人|目|不|暇|接|。|人|多|力|量|大|，|盘|子|渐|渐|见|底|了|，|新|菜|品|—|—|普|罗|旺|斯|田|园|披|萨|，|台|湾|卤|肉|饭|，|秘|制|鸡|腿|饭|，|招|牌|巨|蛋|烧|，|阳|光|手|打|面|，|超|级|霸|大|热|狗|震|撼|来|袭|。|\u0002|这|里|特|别|提|一|下|普|罗|旺|斯|田|园|披|萨|，|顶|上|配|料|五|颜|六|色|，|芝|士|浓|郁|，|饼|胚|酥|脆|，|搭|配|沙|拉|和|洋|葱|圈|口|味|绝|佳|。|还|有|在|卤|肉|饭|，|鸡|腿|饭|，|手|打|面|扮|演|重|要|角|色|的|酱|料|，|里|面|居|然|搭|配|了|小|鱼|干|，|补|钙|又|美|味|。|\u0002|环|境|搭|配|合|理|，|既|有|闺|密|情|侣|说|悄|悄|话|的|私|密|空|间|，|又|有|三|五|好|友|畅|饮|阔|聊|的|长|桌|吧|台|，|气|氛|轻|松|惬|意|，|互|不|打|扰|。|\u0002|红|不|让|台|湾|特|色|餐|厅|绝|对|是|小|资|的|你|餐|饮|休|闲|，|畅|聊|发|呆|的|绝|佳|选|择|，|千|万|不|要|错|过|！|\"|\"|非常|喜欢|去|新开|的|有|特色|的|店|品尝|，|有幸|被|大众|点评|网同城|聚会|抽到|黄金|替补|免费|品鉴|的|机会|，|我|感到|十分|幸运|！|红|不让|台湾|特色|餐厅|位于|李沧|万达|金街|1|号|入口|扶梯|旁|，|交通|便利|，|停车|方便|。|店面|小资|，|适合|举行|小型|派对|。|走近|店门|，|服务员|立刻|开门|迎接|并且|热情|的|打招呼|。|进入|店面|，|环顾四周|，|鹅黄|的|灯光|下|透露|出|温馨|慵懒|的|气氛|，|店家|匠心|独居|，|屋内|的|摆设|典雅|质朴|。|我们|大家|围坐在|一起|开始|品尝|台湾|特色美食|，|前菜|是|鸡排|沙拉|，|鸡排|外焦里嫩|，|沙拉|酸爽|开胃|陪|的|饮品|是|本店|招牌|—|寒天|奶栋|，|口感|丝化|。|在|我们|的|玩闹|嘻戏|中|，|硬菜|短|上来|了|—|—|招牌|全垒打|拼盘|，|样子|可爱|，|味道|独特|，|被|大家|迅雷不及|掩耳盗铃|之势|一扫而光|。|紧接着|—|—|等|一个|人|小火锅|，|西班牙|海鲜|焗|饭|，|黑椒|牛柳|焗|饭|海鲜|焗|烤|嫩|鸡排|上桌|了|，|食材|琳琅满目|，|令人|目不暇接|。|人多|力量|大|，|盘子|渐渐|见底|了|，|新|菜品|—|—|普罗旺斯|田园|披萨|，|台湾|卤肉饭|，|秘制|鸡腿饭|，|招牌|巨蛋|烧|，|阳光|手|打面|，|超级|霸大|热狗|震撼|来袭|。|\u0002|这里|特别|提|一下|普罗旺斯|田园|披萨|，|顶上|配料|五颜六色|，|芝士|浓郁|，|饼|胚|酥脆|，|搭配|沙拉|和|洋葱|圈|口味|绝佳|。|还有|在|卤肉饭|，|鸡腿饭|，|手|打面|扮演|重要|角色|的|酱料|，|里面|居然|搭配|了|小鱼|干|，|补钙|又|美味|。|\u0002|环境|搭配|合理|，|既有|闺密|情侣|说|悄悄话|的|私密|空间|，|又|有|三五|好友|畅饮|阔聊|的|长桌|吧台|，|气氛|轻松|惬意|，|互不|打扰|。|\u0002|红|不让|台湾|特色|餐厅|绝对|是|小资|的|你|餐饮|休闲|，|畅聊|发呆|的|绝佳|选择|，|千万|不要|错过|！|\" 917\n2018-10-19 15:37:21 0:03:46 \"位于昆明新亚洲体育场的上岛咖啡，至今已有500多家连锁店遍布中国大江南北，成为目前国内最受欢迎的咖啡连锁餐厅之一。上岛咖啡执著于\"香醇、甘美\"的极致品质的制作理念；在店面设计方面，上岛融合了经典与时尚的理念，独具一格的店面设计，让上岛咖啡在春城声名远扬。走进这里，阳光的明媚与古朴的原木色绝妙的结合让你为之赞叹，坐在落地玻璃窗边的小几旁，沐浴一身的温暖阳光让人感到懒洋洋的舒服。在一入门的书架上捡一本喜欢的书，叫上一杯香浓的咖啡，看窗外的车水马龙，行行色色的行人，生活就在这样的细细品味中渗出丝丝甜美。除了各式各样的咖啡供您选择以外，还有各种佐咖啡的小点也十分精美。这里的食物是以台湾风味为主的，制作精致的盛具加上色香味俱全的可口美食让你在感观上得到最大的满足。上岛咖啡新亚洲店总的来说还不错，位置比较隐蔽一点点，环境还不错，环境很好，而且很安静，就是位置对于我们来说不是特别好找，东西很多，还有红酒，喝着红酒别有一番滋味，整个店面在二楼占地不大，晚上五点多去人不多，牛排沙拉土司都还行,罗宋汤很好喝，沙拉也不错，牛排要的八分熟，感觉有点老了，下次去要七分熟应该刚刚好，服务态度也不错，很安静，很舒服，是个放松心情的好地方。团的也划算，总之很满意，还会去的。\" \"|位|于|昆|明|新|亚|洲|体|育|场|的|上|岛|咖|啡|，|至|今|已|有|5|0|0|多|家|连|锁|店|遍|布|中|国|大|江|南|北|，|成|为|目|前|国|内|最|受|欢|迎|的|咖|啡|连|锁|餐|厅|之|一|。|上|岛|咖|啡|执|著|于|\"|香|醇|、|甘|美|\"|的|极|致|品|质|的|制|作|理|念|；|在|店|面|设|计|方|面|，|上|岛|融|合|了|经|典|与|时|尚|的|理|念|，|独|具|一|格|的|店|面|设|计|，|让|上|岛|咖|啡|在|春|城|声|名|远|扬|。|走|进|这|里|，|阳|光|的|明|媚|与|古|朴|的|原|木|色|绝|妙|的|结|合|让|你|为|之|赞|叹|，|坐|在|落|地|玻|璃|窗|边|的|小|几|旁|，|沐|浴|一|身|的|温|暖|阳|光|让|人|感|到|懒|洋|洋|的|舒|服|。|在|一|入|门|的|书|架|上|捡|一|本|喜|欢|的|书|，|叫|上|一|杯|香|浓|的|咖|啡|，|看|窗|外|的|车|水|马|龙|，|行|行|色|色|的|行|人|，|生|活|就|在|这|样|的|细|细|品|味|中|渗|出|丝|丝|甜|美|。|除|了|各|式|各|样|的|咖|啡|供|您|选|择|以|外|，|还|有|各|种|佐|咖|啡|的|小|点|也|十|分|精|美|。|这|里|的|食|物|是|以|台|湾|风|味|为|主|的|，|制|作|精|致|的|盛|具|加|上|色|香|味|俱|全|的|可|口|美|食|让|你|在|感|观|上|得|到|最|大|的|满|足|。|上|岛|咖|啡|新|亚|洲|店|总|的|来|说|还|不|错|，|位|置|比|较|隐|蔽|一|点|点|，|环|境|还|不|错|，|环|境|很|好|，|而|且|很|安|静|，|就|是|位|置|对|于|我|们|来|说|不|是|特|别|好|找|，|东|西|很|多|，|还|有|红|酒|，|喝|着|红|酒|别|有|一|番|滋|味|，|整|个|店|面|在|二|楼|占|地|不|大|，|晚|上|五|点|多|去|人|不|多|，|牛|排|沙|拉|土|司|都|还|行|,|罗|宋|汤|很|好|喝|，|沙|拉|也|不|错|，|牛|排|要|的|八|分|熟|，|感|觉|有|点|老|了|，|下|次|去|要|七|分|熟|应|该|刚|刚|好|，|服|务|态|度|也|不|错|，|很|安|静|，|很|舒|服|，|是|个|放|松|心|情|的|好|地|方|。|团|的|也|划|算|，|总|之|很|满|意|，|还|会|去|的|。|\"|\"|位于|昆明|新|亚洲|体育场|的|上|岛|咖啡|，|至今已有|500|多家|连锁店|遍布|中国|大江南北|，|成为|目前|国内|最|受欢迎|的|咖啡|连锁|餐厅|之一|。|上|岛|咖啡|执著|于|\"|香醇|、|甘美|\"|的|极致|品质|的|制作|理念|；|在|店面|设计|方面|，|上|岛|融合|了|经典|与|时尚|的|理念|，|独具一格|的|店面|设计|，|让|上|岛|咖啡|在|春城|声名|远扬|。|走进|这里|，|阳光|的|明媚|与|古朴|的|原木色|绝妙|的|结合|让|你|为|之|赞叹|，|坐在|落地|玻璃窗|边|的|小|几旁|，|沐浴|一身|的|温暖|阳光|让|人|感到|懒洋洋|的|舒服|。|在|一|入门|的|书架上|捡|一本|喜欢|的|书|，|叫|上|一杯|香浓|的|咖啡|，|看|窗外|的|车水马龙|，|行行色色|的|行人|，|生活|就|在|这样|的|细细品味|中|渗出|丝丝|甜美|。|除了|各式各样|的|咖啡|供|您|选择|以外|，|还有|各种|佐|咖啡|的|小点|也|十分|精美|。|这里|的|食物|是|以|台湾|风味|为主|的|，|制作|精致|的|盛具|加上|色香味|俱全|的|可口|美食|让你在|感观|上|得到|最大|的|满足|。|上|岛|咖啡|新|亚洲|店|总的来说|还|不错|，|位置|比较|隐蔽|一点点|，|环境|还|不错|，|环境|很|好|，|而且|很|安静|，|就是|位置|对于|我们|来说|不是|特别|好找|，|东西|很多|，|还有|红酒|，|喝|着|红酒|别有|一番滋味|，|整个|店面|在|二楼|占地|不|大|，|晚上|五点|多去|人|不|多|，|牛排|沙拉|土司|都|还行|,|罗宋汤|很|好喝|，|沙拉|也|不错|，|牛排|要|的|八分熟|，|感觉|有点|老|了|，|下次|去|要|七分|熟|应该|刚刚|好|，|服务态度|也|不错|，|很|安静|，|很|舒服|，|是|个|放松|心情|的|好|地方|。|团|的|也|划算|，|总之|很|满意|，|还会|去|的|。|\" 859\n2018-10-19 15:37:42 0:04:07 \"我想说他们家的优惠活动好持久啊，我预售的时候买的券，前两天心血来潮去吃的活动还在继续\u0002首先说下服务，因为和男票开车去的，有点不认路，老板很耐心的在电话里帮我们指路，到了门店之后也帮我们推荐了他们家做的比较地道的伤心凉粉，说是厨师是四川那边来的。\u0002环境呢比较简单干净，去的时候下午一点多了，还有四五桌人在用餐\u0002口味对于我而言点了麻辣的口感正正好，男票比较能吃辣，相对而言觉得他们家的麻辣口感麻有了，辣还欠缺一点，老板娘说考虑到客人口味不同所以没敢放太多辣椒，能吃辣的朋友可以考虑下单之前和老板先说好。鱼呢我们选的是黑鱼，2.9斤的鱼加上一盆我以为没有什么东西实际上东西很多的锅底，我们吃的饱饱的，最后以为吃的差不多了，打包一看简直像没动过一样，分量还是满足的，鱼比较新鲜。伤心凉粉很辣，不过口味也蛮好吃的。\u0002总的来说，性价比还是可以的，两个人吃了大概160左右，用了团购券的话一百块不到，会考虑下次再来\" \"|我|想|说|他|们|家|的|优|惠|活|动|好|持|久|啊|，|我|预|售|的|时|候|买|的|券|，|前|两|天|心|血|来|潮|去|吃|的|活|动|还|在|继|续|\u0002|首|先|说|下|服|务|，|因|为|和|男|票|开|车|去|的|，|有|点|不|认|路|，|老|板|很|耐|心|的|在|电|话|里|帮|我|们|指|路|，|到|了|门|店|之|后|也|帮|我|们|推|荐|了|他|们|家|做|的|比|较|地|道|的|伤|心|凉|粉|，|说|是|厨|师|是|四|川|那|边|来|的|。|\u0002|环|境|呢|比|较|简|单|干|净|，|去|的|时|候|下|午|一|点|多|了|，|还|有|四|五|桌|人|在|用|餐|\u0002|口|味|对|于|我|而|言|点|了|麻|辣|的|口|感|正|正|好|，|男|票|比|较|能|吃|辣|，|相|对|而|言|觉|得|他|们|家|的|麻|辣|口|感|麻|有|了|，|辣|还|欠|缺|一|点|，|老|板|娘|说|考|虑|到|客|人|口|味|不|同|所|以|没|敢|放|太|多|辣|椒|，|能|吃|辣|的|朋|友|可|以|考|虑|下|单|之|前|和|老|板|先|说|好|。|鱼|呢|我|们|选|的|是|黑|鱼|，|2|.|9|斤|的|鱼|加|上|一|盆|我|以|为|没|有|什|么|东|西|实|际|上|东|西|很|多|的|锅|底|，|我|们|吃|的|饱|饱|的|，|最|后|以|为|吃|的|差|不|多|了|，|打|包|一|看|简|直|像|没|动|过|一|样|，|分|量|还|是|满|足|的|，|鱼|比|较|新|鲜|。|伤|心|凉|粉|很|辣|，|不|过|口|味|也|蛮|好|吃|的|。|\u0002|总|的|来|说|，|性|价|比|还|是|可|以|的|，|两|个|人|吃|了|大|概|1|6|0|左|右|，|用|了|团|购|券|的|话|一|百|块|不|到|，|会|考|虑|下|次|再|来|\"|\"|我|想|说|他们|家|的|优惠活动|好|持久|啊|，|我|预售|的|时候|买|的|券|，|前两天|心血来潮|去|吃|的|活动|还|在|继续|\u0002|首先|说|下|服务|，|因为|和|男票|开车|去|的|，|有点|不|认路|，|老板|很|耐心|的|在|电话|里|帮|我们|指路|，|到|了|门店|之后|也|帮|我们|推荐|了|他们|家|做|的|比较|地道|的|伤心|凉粉|，|说|是|厨师|是|四川|那边|来|的|。|\u0002|环境|呢|比较简单|干净|，|去|的|时候|下午|一点多|了|，|还有|四五桌|人|在|用餐|\u0002|口味|对于|我|而言|点|了|麻辣|的|口感|正|正好|，|男票|比较|能|吃|辣|，|相对而言|觉得|他们|家|的|麻辣|口感|麻有|了|，|辣|还|欠缺|一点|，|老板娘|说|考虑|到|客人|口味|不同|所以|没敢|放太多|辣椒|，|能|吃|辣|的|朋友|可以|考虑|下单|之前|和|老板|先|说好|。|鱼|呢|我们|选|的|是|黑鱼|，|2.9|斤|的|鱼|加上|一盆|我|以为|没有|什么|东西|实际上|东西|很多|的|锅底|，|我们|吃|的|饱饱|的|，|最后|以为|吃|的|差不多|了|，|打包|一看|简直|像|没动|过|一样|，|分量|还是|满足|的|，|鱼|比较|新鲜|。|伤心|凉粉|很辣|，|不过|口味|也|蛮|好吃|的|。|\u0002|总的来说|，|性价比|还是|可以|的|，|两个|人|吃|了|大概|160|左右|，|用|了|团购|券|的话|一百块|不到|，|会|考虑|下次|再|来|\" 661\n2018-10-19 15:38:02 0:04:27 \"店的位置很好找，来了不止一次了。环境很好，人气很旺，服务很好，菜品很赞。白水都是放在高脚杯里，热水。上菜速度不错。鸭舌很入味，量还可以。脆脆的很喜欢。口水鸡超级给力，辣椒香而不燥，芝麻香，鸡肉很嫩，底下还有笋，比较爽口。麻酱油麦菜特别解辣，麻酱量大，微甜。水煮鱼鱼片鲜嫩，辣椒不会太辣，麻椒很给力。豆芽量大爽口。豆花好大一锅，小料配了酥黄豆，葱，酱汁，跟豆花一起，一吃好几碗。特别满足的一顿饭。继续支持！\" \"|店|的|位|置|很|好|找|，|来|了|不|止|一|次|了|。|环|境|很|好|，|人|气|很|旺|，|服|务|很|好|，|菜|品|很|赞|。|白|水|都|是|放|在|高|脚|杯|里|，|热|水|。|上|菜|速|度|不|错|。|鸭|舌|很|入|味|，|量|还|可|以|。|脆|脆|的|很|喜|欢|。|口|水|鸡|超|级|给|力|，|辣|椒|香|而|不|燥|，|芝|麻|香|，|鸡|肉|很|嫩|，|底|下|还|有|笋|，|比|较|爽|口|。|麻|酱|油|麦|菜|特|别|解|辣|，|麻|酱|量|大|，|微|甜|。|水|煮|鱼|鱼|片|鲜|嫩|，|辣|椒|不|会|太|辣|，|麻|椒|很|给|力|。|豆|芽|量|大|爽|口|。|豆|花|好|大|一|锅|，|小|料|配|了|酥|黄|豆|，|葱|，|酱|汁|，|跟|豆|花|一|起|，|一|吃|好|几|碗|。|特|别|满|足|的|一|顿|饭|。|继|续|支|持|！|\"|\"|店|的|位置|很|好找|，|来|了|不止一次|了|。|环境|很|好|，|人气|很旺|，|服务|很|好|，|菜品|很赞|。|白水|都|是|放在|高脚杯|里|，|热水|。|上菜|速度|不错|。|鸭舌|很|入味|，|量|还|可以|。|脆脆|的|很|喜欢|。|口水鸡|超级|给力|，|辣椒|香而|不燥|，|芝麻|香|，|鸡肉|很嫩|，|底下|还有|笋|，|比较|爽口|。|麻酱|油麦|菜|特别|解辣|，|麻酱|量|大|，|微甜|。|水煮鱼|鱼片|鲜嫩|，|辣椒|不会|太辣|，|麻椒|很|给|力|。|豆芽|量|大|爽口|。|豆花|好大|一锅|，|小料|配|了|酥|黄豆|，|葱|，|酱汁|，|跟|豆花|一起|，|一吃|好几碗|。|特别|满足|的|一顿饭|。|继续|支持|！|\" 337\n2018-10-19 17:11:03 0:00:13 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:11:59 0:00:12 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:21:39 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:23:51 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:29:21 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:41:29 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:48:42 0:00:15 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:05:48 0:00:09 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:40:43 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:45:17 0:00:09 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:48:18 0:03:10 \"吃过最完美的一顿餐厅周午餐，前菜，主菜，甜品，饮料，居然前菜和主菜还都有配酒，真是大爱啊[色][色][色]。先上的面包配黄油，后悔不应该都吃了，害的主菜吃不下啊！服务员还会问需不需要再加，还好没有贪心，嘿嘿。前菜的芝士和冷肉拼盘，量很足，然后能说好喜欢那个白色的拌酱嘛～前菜配干白或者粉红葡萄酒，很搭。主菜被通知已经没有三文鱼和鸭腿了，只能换了牛肉千层面和半只烤春鸡配土豆，配的干红。土豆好甜，春鸡和千层面量太大，吃撑了我们两个女生！最后还有甜品，推荐酸奶，感觉有用cheese，很特别。提拉米苏有点偏甜，所以最后配的黑咖啡，真是直接解腻的。预定的时候以为只有一杯酒，想不到配的是两杯酒，真是太划算了！地方不大，但是装修的很舒服，也不会有太簇拥的感觉。酒定的价格也不贵，下次可以和朋友再来小聚。\" \"|吃|过|最|完|美|的|一|顿|餐|厅|周|午|餐|，|前|菜|，|主|菜|，|甜|品|，|饮|料|，|居|然|前|菜|和|主|菜|还|都|有|配|酒|，|真|是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面|包|配|黄|油|，|后|悔|不|应|该|都|吃|了|，|害|的|主|菜|吃|不|下|啊|！|服|务|员|还|会|问|需|不|需|要|再|加|，|还|好|没|有|贪|心|，|嘿|嘿|。|前|菜|的|芝|士|和|冷|肉|拼|盘|，|量|很|足|，|然|后|能|说|好|喜|欢|那|个|白|色|的|拌|酱|嘛|～|前|菜|配|干|白|或|者|粉|红|葡|萄|酒|，|很|搭|。|主|菜|被|通|知|已|经|没|有|三|文|鱼|和|鸭|腿|了|，|只|能|换|了|牛|肉|千|层|面|和|半|只|烤|春|鸡|配|土|豆|，|配|的|干|红|。|土|豆|好|甜|，|春|鸡|和|千|层|面|量|太|大|，|吃|撑|了|我|们|两|个|女|生|！|最|后|还|有|甜|品|，|推|荐|酸|奶|，|感|觉|有|用|c|h|e|e|s|e|，|很|特|别|。|提|拉|米|苏|有|点|偏|甜|，|所|以|最|后|配|的|黑|咖|啡|，|真|是|直|接|解|腻|的|。|预|定|的|时|候|以|为|只|有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真|是|太|划|算|了|！|地|方|不|大|，|但|是|装|修|的|很|舒|服|，|也|不|会|有|太|簇|拥|的|感|觉|。|酒|定|的|价|格|也|不|贵|，|下|次|可|以|和|朋|友|再|来|小|聚|。|\"|\"|吃|过|最|完美|的|一|顿|餐厅|周|午餐|，|前菜|，|主菜|，|甜品|，|饮料|，|居然|前菜|和|主菜|还|都|有|配酒|，|真是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面包|配|黄油|，|后悔|不|应该|都|吃|了|，|害|的|主菜|吃|不|下|啊|！|服务员|还|会|问|需|不|需要|再加|，|还好|没有|贪心|，|嘿嘿|。|前菜|的|芝士|和|冷|肉|拼盘|，|量|很|足|，|然后|能|说好|喜欢|那个|白色|的|拌酱|嘛|～|前菜|配|干白|或者|粉红|葡萄酒|，|很|搭|。|主菜|被|通知|已经|没有|三文鱼|和|鸭|腿|了|，|只|能|换了|牛肉|千|层面|和|半|只|烤|春|鸡|配|土豆|，|配|的|干红|。|土豆|好|甜|，|春鸡|和|千|层|面量|太|大|，|吃|撑|了|我们|两|个|女生|！|最后|还|有|甜品|，|推荐|酸奶|，|感觉|有用|cheese|，|很|特别|。|提拉|米|苏|有点|偏|甜|，|所以|最后|配|的|黑|咖啡|，|真是|直接|解腻|的|。|预定|的|时候|以为|只有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真是|太|划算|了|！|地方|不|大|，|但是|装修|的|很|舒服|，|也|不|会|有|太|簇拥|的|感觉|。|酒|定|的|价格|也|不|贵|，|下次|可以|和|朋友|再来|小聚|。|\" 604\n2018-10-19 18:51:11 0:06:03 \"渔乐圈主题餐厅听名字觉得是一家吃鱼的餐厅，实际上是一家港式茶餐厅，当然这家港式茶餐厅真的很奇葩，香港人吃东西讲究清单，这家点的菜品我吃完之后只有一个印象，就是咸，这家店的位置在写字楼里面的，一般人很难找到，不知道老板怎么想的，会选在这里，边上就是一家保险公司。我是周六中午去吃的，人很少，几乎没几桌客人，我看了看菜单，服务员是推荐点酸菜鱼，这里的酸菜鱼是按斤卖的，觉得价格小贵没点，点了个乳鸽，这里的乳鸽的味道有点怪，不想平常吃到的都是脆脆的。点了皮蛋瘦肉粥，味道还行，不好不坏，还点了叉烧肠粉，都是肥肉，味道马马虎虎。还点了鱼香茄子煲，味道是不错，就是太油了，另外点了个豉汁蒸排骨，这个真的不好吃，排骨不光拍了嫩肉粉，还咬不动。吃完之后我跟店里类似主管的反映菜太咸，她完全不当回事，这样怎么会进步呢！\" \"|渔|乐|圈|主|题|餐|厅|听|名|字|觉|得|是|一|家|吃|鱼|的|餐|厅|，|实|际|上|是|一|家|港|式|茶|餐|厅|，|当|然|这|家|港|式|茶|餐|厅|真|的|很|奇|葩|，|香|港|人|吃|东|西|讲|究|清|单|，|这|家|点|的|菜|品|我|吃|完|之|后|只|有|一|个|印|象|，|就|是|咸|，|这|家|店|的|位|置|在|写|字|楼|里|面|的|，|一|般|人|很|难|找|到|，|不|知|道|老|板|怎|么|想|的|，|会|选|在|这|里|，|边|上|就|是|一|家|保|险|公|司|。|我|是|周|六|中|午|去|吃|的|，|人|很|少|，|几|乎|没|几|桌|客|人|，|我|看|了|看|菜|单|，|服|务|员|是|推|荐|点|酸|菜|鱼|，|这|里|的|酸|菜|鱼|是|按|斤|卖|的|，|觉|得|价|格|小|贵|没|点|，|点|了|个|乳|鸽|，|这|里|的|乳|鸽|的|味|道|有|点|怪|，|不|想|平|常|吃|到|的|都|是|脆|脆|的|。|点|了|皮|蛋|瘦|肉|粥|，|味|道|还|行|，|不|好|不|坏|，|还|点|了|叉|烧|肠|粉|，|都|是|肥|肉|，|味|道|马|马|虎|虎|。|还|点|了|鱼|香|茄|子|煲|，|味|道|是|不|错|，|就|是|太|油|了|，|另|外|点|了|个|豉|汁|蒸|排|骨|，|这|个|真|的|不|好|吃|，|排|骨|不|光|拍|了|嫩|肉|粉|，|还|咬|不|动|。|吃|完|之|后|我|跟|店|里|类|似|主|管|的|反|映|菜|太|咸|，|她|完|全|不|当|回|事|，|这|样|怎|么|会|进|步|呢|！|\"|\"|渔乐圈|主题|餐厅|听|名字|觉得|是|一|家|吃鱼|的|餐厅|，|实际上|是|一|家|港式|茶|餐厅|，|当然|这|家|港式|茶|餐厅|真的|很|奇葩|，|香港人|吃|东西|讲究|清单|，|这|家|点|的|菜品|我|吃完|之后|只|有|一|个|印象|，|就是|咸|，|这|家|店|的|位置|在|写字楼|里面|的|，|一般|人|很|难|找到|，|不|知道|老板|怎么|想|的|，|会|选|在|这里|，|边上|就|是|一|家|保险|公司|。|我|是|周六|中午|去|吃|的|，|人|很少|，|几乎|没|几|桌|客人|，|我|看|了|看|菜单|，|服务员|是|推荐|点|酸菜鱼|，|这里|的|酸菜|鱼|是|按|斤|卖的|，|觉得|价格|小|贵|没|点|，|点|了|个|乳鸽|，|这里|的|乳鸽|的|味道|有点|怪|，|不|想|平常|吃到|的|都|是|脆脆|的|。|点|了|皮蛋|瘦肉粥|，|味道|还行|，|不好不坏|，|还|点|了|叉烧|肠粉|，|都|是|肥肉|，|味道|马马虎虎|。|还|点|了|鱼香|茄子煲|，|味道|是|不错|，|就是|太|油了|，|另外|点|了|个|豉汁蒸|排骨|，|这个|真的|不好吃|，|排骨|不|光|拍|了|嫩肉粉|，|还|咬|不|动|。|吃完|之后|我|跟|店里|类似|主管|的|反映|菜|太|咸|，|她|完全|不当|回事|，|这样|怎么|会|进步|呢|！|\" 597\n2018-10-19 18:53:59 0:08:51 \"去了不少次，\u0003地址也比较好找，在中原路与工人路交叉口向南200米，\u0003店里的装饰和设计比较古朴，很有解放前的味道。这次团购的是2～3人餐，\u0003三菜一汤，\u0003还有三份米，分量也不错\u0003菜差不多够三个吃，就是米的分量不大，不过可以加钱要米饭，团购价四十九元还是比较实惠的，菜品属于偏川味，\u0003都是辣的\u0003属于比较开胃的菜。前台态度也不错，服务员\u0003上菜更是一路小跑，\u0003上菜速度很快，给服务员小哥点个赞。希望店家推出更多的更实惠的团购套餐。\" \"|去|了|不|少|次|，|\u0003|地|址|也|比|较|好|找|，|在|中|原|路|与|工|人|路|交|叉|口|向|南|2|0|0|米|，|\u0003|店|里|的|装|饰|和|设|计|比|较|古|朴|，|很|有|解|放|前|的|味|道|。|这|次|团|购|的|是|2|～|3|人|餐|，|\u0003|三|菜|一|汤|，|\u0003|还|有|三|份|米|，|分|量|也|不|错|\u0003|菜|差|不|多|够|三|个|吃|，|就|是|米|的|分|量|不|大|，|不|过|可|以|加|钱|要|米|饭|，|团|购|价|四|十|九|元|还|是|比|较|实|惠|的|，|菜|品|属|于|偏|川|味|，|\u0003|都|是|辣|的|\u0003|属|于|比|较|开|胃|的|菜|。|前|台|态|度|也|不|错|，|服|务|员|\u0003|上|菜|更|是|一|路|小|跑|，|\u0003|上|菜|速|度|很|快|，|给|服|务|员|小|哥|点|个|赞|。|希|望|店|家|推|出|更|多|的|更|实|惠|的|团|购|套|餐|。|\"|\"|去|了|不少|次|，|地址|也|比较|好找|，|在|中原|路|与|工人|路|交叉口|向南|200|米|，|店|里|的|装饰|和|设计|比较|古朴|，|很|有|解放|前|的|味道|。|这|次|团购|的|是|2|～|3|人|餐|，|三|菜|一|汤|，|还有|三|份|米|，|分量|也|不错|菜|差不多|够|三|个|吃|，|就是|米|的|分量|不|大|，|不过|可以|加|钱|要|米饭|，|团|购价|四十九|元|还是|比较|实惠|的|，|菜品|属于|偏川味|，|都|是|辣|的|属于|比较|开胃|的|菜|。|前台|态度|也|不错|，|服务员|上菜|更|是|一|路|小跑|，|上菜|速度|很|快|，|给|服务员|小哥|点|个|赞|。|希望|店家|推出|更|多|的|更|实惠|的|团购|套餐|。|\" 356\n2018-10-19 18:56:44 0:11:36 \"还是头一次被点评抽中宵夜套餐的，第一次提前打电话去预约，老板说8点半以后才开始提供宵夜，后面因为有事耽搁了也就没去成。第二次是晚上在家突然就想吃生蚝了，于是就直接过去了，在沈塘桥那里还仔细张望了几下，因为虽说是义海蚝情，但是店面看上去真的很干净完全不像吃烧烤宵夜的样子。然后老板很热情地出来问，我就囧囧地进去了。\u0002才知道这家店白天是茶餐厅，8点以后变身位义海蚝情。看起来生意很不错，里面几乎坐满了人。上菜很快，先上的是一盘酸酸甜甜的小果盘，因为不怎么喜欢吃酸的，所以吃了一两个就作罢，后来听老板说这些酸果是专门从广东那边运过来的，吃完烤串以后再吃这个就十分解腻。接着上了生蚝，分别是蒜蓉和原味的，处理得很干净，而且也不油腻，没有腥味。嫩烤生牛实在太美味了！据老板说这个生牛肉都是每天凌晨去市场买的，如果当天做不完，第二天也不会再用来做这道菜了，因为牛肉经过冷冻以后口感就没有那么鲜嫩了。\u0003后面还有烤韭黄，烤风爪还有烤鸡翅，味道都很棒！\u0002吃完以后，老板还特地过来询问我们的意见，征求我们的建议，非常诚恳，绝对好评！\" \"|还|是|头|一|次|被|点|评|抽|中|宵|夜|套|餐|的|，|第|一|次|提|前|打|电|话|去|预|约|，|老|板|说|8|点|半|以|后|才|开|始|提|供|宵|夜|，|后|面|因|为|有|事|耽|搁|了|也|就|没|去|成|。|第|二|次|是|晚|上|在|家|突|然|就|想|吃|生|蚝|了|，|于|是|就|直|接|过|去|了|，|在|沈|塘|桥|那|里|还|仔|细|张|望|了|几|下|，|因|为|虽|说|是|义|海|蚝|情|，|但|是|店|面|看|上|去|真|的|很|干|净|完|全|不|像|吃|烧|烤|宵|夜|的|样|子|。|然|后|老|板|很|热|情|地|出|来|问|，|我|就|囧|囧|地|进|去|了|。|\u0002|才|知|道|这|家|店|白|天|是|茶|餐|厅|，|8|点|以|后|变|身|位|义|海|蚝|情|。|看|起|来|生|意|很|不|错|，|里|面|几|乎|坐|满|了|人|。|上|菜|很|快|，|先|上|的|是|一|盘|酸|酸|甜|甜|的|小|果|盘|，|因|为|不|怎|么|喜|欢|吃|酸|的|，|所|以|吃|了|一|两|个|就|作|罢|，|后|来|听|老|板|说|这|些|酸|果|是|专|门|从|广|东|那|边|运|过|来|的|，|吃|完|烤|串|以|后|再|吃|这|个|就|十|分|解|腻|。|接|着|上|了|生|蚝|，|分|别|是|蒜|蓉|和|原|味|的|，|处|理|得|很|干|净|，|而|且|也|不|油|腻|，|没|有|腥|味|。|嫩|烤|生|牛|实|在|太|美|味|了|！|据|老|板|说|这|个|生|牛|肉|都|是|每|天|凌|晨|去|市|场|买|的|，|如|果|当|天|做|不|完|，|第|二|天|也|不|会|再|用|来|做|这|道|菜|了|，|因|为|牛|肉|经|过|冷|冻|以|后|口|感|就|没|有|那|么|鲜|嫩|了|。|\u0003|后|面|还|有|烤|韭|黄|，|烤|风|爪|还|有|烤|鸡|翅|，|味|道|都|很|棒|！|\u0002|吃|完|以|后|，|老|板|还|特|地|过|来|询|问|我|们|的|意|见|，|征|求|我|们|的|建|议|，|非|常|诚|恳|，|绝|对|好|评|！|\"|\"|还是|头一|次|被|点评|抽|中|宵夜|套餐|的|，|第一|次|提前|打电话|去|预约|，|老板|说|8|点|半|以后|才|开始|提供|宵夜|，|后面|因为|有|事|耽搁|了|也|就|没|去|成|。|第二|次|是|晚上|在家|突然|就|想|吃|生蚝|了|，|于是|就|直接|过去|了|，|在|沈|塘桥|那里|还|仔细|张望|了|几下|，|因为|虽说|是|义海蚝情|，|但是|店面|看上去|真的|很|干净|完全|不|像|吃|烧烤|宵夜|的|样子|。|然后|老板|很|热情|地|出来|问|，|我|就|囧囧|地|进去|了|。|才|知道|这|家|店|白天|是|茶|餐厅|，|8点|以后|变身|位|义海|蚝情|。|看起来|生意|很|不错|，|里面|几乎|坐满|了|人|。|上菜|很|快|，|先|上|的|是|一|盘|酸酸|甜甜|的|小|果盘|，|因为|不怎么|喜欢|吃|酸|的|，|所以|吃|了|一|两|个|就|作罢|，|后来|听|老板|说|这些|酸|果是|专门|从|广东|那边|运|过来|的|，|吃完|烤|串|以后|再|吃|这个|就|十分|解腻|。|接着|上|了|生蚝|，|分别|是|蒜蓉|和|原味|的|，|处理|得很|干净|，|而且|也|不|油腻|，|没有|腥味|。|嫩烤|生|牛|实在|太|美味|了|！|据|老板|说|这个|生|牛肉|都|是|每天|凌晨|去|市场|买的|，|如果|当天|做|不|完|，|第二|天|也|不|会|再|用|来|做|这|道|菜|了|，|因为|牛肉|经过|冷冻|以后|口感|就|没有|那么|鲜嫩|了|。|后面|还|有|烤|韭黄|，|烤|风|爪|还有|烤|鸡翅|，|味道|都|很|棒|！|吃完|以后|，|老板|还|特地|过来|询问|我们|的|意见|，|征求|我们|的|建议|，|非常|诚恳|，|绝对|好评|！|\" 769\n2018-10-19 18:59:26 0:14:18 \"性价比还是很高的一家店，菜品不算少，只是作为放题的话量稍微多了一点，不能每个品种都吃到，最后还是服务员mm说帮我们写量少点，还是不错的～越到后面客人越多可能就没之前服务那么周到，但总的来说基本没漏单情况～说说味道吧，这家店里所有的虾类都可以试试哦，甜虾很新鲜，什么虾色拉、盐烤大虾还有天妇罗炸虾都很美味哦～刺身类虽然品种不算很多但是188的价格来说算可以了，也很新鲜，飞鱼籽超级好吃的，铁板烧的话味道也不赖，反正这个价位来说算不错了～\" \"|性|价|比|还|是|很|高|的|一|家|店|，|菜|品|不|算|少|，|只|是|作|为|放|题|的|话|量|稍|微|多|了|一|点|，|不|能|每|个|品|种|都|吃|到|，|最|后|还|是|服|务|员|m|m|说|帮|我|们|写|量|少|点|，|还|是|不|错|的|～|越|到|后|面|客|人|越|多|可|能|就|没|之|前|服|务|那|么|周|到|，|但|总|的|来|说|基|本|没|漏|单|情|况|～|说|说|味|道|吧|，|这|家|店|里|所|有|的|虾|类|都|可|以|试|试|哦|，|甜|虾|很|新|鲜|，|什|么|虾|色|拉|、|盐|烤|大|虾|还|有|天|妇|罗|炸|虾|都|很|美|味|哦|～|刺|身|类|虽|然|品|种|不|算|很|多|但|是|1|8|8|的|价|格|来|说|算|可|以|了|，|也|很|新|鲜|，|飞|鱼|籽|超|级|好|吃|的|，|铁|板|烧|的|话|味|道|也|不|赖|，|反|正|这|个|价|位|来|说|算|不|错|了|～|\"|\"|性价比|还是|很|高|的|一|家|店|，|菜品|不|算|少|，|只是|作为|放题|的|话|量|稍微|多|了|一点|，|不|能|每个|品种|都|吃到|，|最后|还是|服务员|mm|说|帮|我们|写量|少|点|，|还是|不错|的|～|越|到|后面|客人|越|多|可能|就|没|之前|服务|那么|周到|，|但|总的来说|基本|没|漏|单|情况|～|说说|味道|吧|，|这|家|店里|所有|的|虾类|都|可以|试试|哦|，|甜虾|很|新鲜|，|什么|虾|色拉|、|盐|烤|大虾|还|有|天|妇罗|炸|虾|都|很|美味|哦|～|刺身|类|虽然|品种|不算|很多|但是|188|的|价格|来说|算|可以|了|，|也|很|新鲜|，|飞鱼籽|超级|好吃|的|，|铁板烧|的话|味道|也|不赖|，|反正|这个|价位|来说|算|不|错|了|～|\" 366\n2018-10-19 19:01:50 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 19:02:28 0:17:20 \"下马坊地铁口出来稍微走一点点就能看到了，一家很小的店面。环境一般般，室内比较昏暗。服务态度还可以，没带钱出门，点单的时候只能想到用团购了。点了辣子鸡面和豌杂面，辣子鸡面上面是几根青菜和4块鸡肉，然后的然后就木有了，鸡块是凉的，需要先放在面汤里面泡会儿。豌杂面的豌豆有一点点酸酸的感觉，和以前吃得不一样。总体来说口味一般般，对于吃面喜欢先喝汤的我来说，总觉得欠缺点什么。没全部吃完，但是可以填饱肚子了。图一是辣子鸡面，会加香菜，不喜欢香菜的要提前说一下。图二是把鸡块吃完之后的素面条；图三为豌杂面。\" \"|下|马|坊|地|铁|口|出|来|稍|微|走|一|点|点|就|能|看|到|了|，|一|家|很|小|的|店|面|。|环|境|一|般|般|，|室|内|比|较|昏|暗|。|服|务|态|度|还|可|以|，|没|带|钱|出|门|，|点|单|的|时|候|只|能|想|到|用|团|购|了|。|点|了|辣|子|鸡|面|和|豌|杂|面|，|辣|子|鸡|面|上|面|是|几|根|青|菜|和|4|块|鸡|肉|，|然|后|的|然|后|就|木|有|了|，|鸡|块|是|凉|的|，|需|要|先|放|在|面|汤|里|面|泡|会|儿|。|豌|杂|面|的|豌|豆|有|一|点|点|酸|酸|的|感|觉|，|和|以|前|吃|得|不|一|样|。|总|体|来|说|口|味|一|般|般|，|对|于|吃|面|喜|欢|先|喝|汤|的|我|来|说|，|总|觉|得|欠|缺|点|什|么|。|没|全|部|吃|完|，|但|是|可|以|填|饱|肚|子|了|。|图|一|是|辣|子|鸡|面|，|会|加|香|菜|，|不|喜|欢|香|菜|的|要|提|前|说|一|下|。|图|二|是|把|鸡|块|吃|完|之|后|的|素|面|条|；|图|三|为|豌|杂|面|。|\"|\"|下马坊|地铁口|出来|稍微|走|一点点|就|能|看到|了|，|一|家|很|小|的|店面|。|环境|一|般般|，|室内|比较|昏暗|。|服务|态度|还|可以|，|没带|钱|出门|，|点|单|的|时候|只能|想到|用|团|购|了|。|点|了|辣子|鸡面|和|豌杂面|，|辣|子鸡|面|上面|是|几|根|青菜|和|4|块|鸡肉|，|然后|的|然后|就|木|有|了|，|鸡块|是|凉|的|，|需要|先|放在|面汤|里面|泡|会儿|。|豌杂面|的|豌豆|有|一点点|酸酸的|感觉|，|和|以前|吃|得|不|一样|。|总体|来说|口味|一般|般|，|对于|吃|面|喜欢|先|喝|汤|的|我|来说|，|总|觉得|欠缺|点|什么|。|没|全部|吃完|，|但是|可以|填饱|肚子|了|。|图|一|是|辣子|鸡面|，|会|加|香菜|，|不|喜欢|香菜|的|要|提前|说|一下|。|图二|是|把|鸡块|吃完|之后|的|素面条|；|图三|为|豌|杂面|。|\" 420\n2018-10-19 19:05:37 0:20:29 \"今天要探的店是位于利时奥特莱斯4楼的阿拉渔歌，位置很好找，交通也便利。我是提前一天预约的，所以到店就有位置了。\u0002店面不大，里面的餐位还真不少。进门的那个大烤炉特别吸引人，忍不住凑近多看了几眼。原来今晚的烤鱼都是出自这个“大家伙”。中的霸王餐是78元的一条海鲈鱼，服务员推荐了几个口味，最后选择的人气较旺的：酱香味的。同时还点了2份配菜：豆芽和土豆粉。\u0002等了大概10分钟，今晚的主角终于登场了！幸好点了配菜，不然只有烤鱼上的几块土豆，怎么吃。鱼烤的火候倒是不错，外焦里嫩，鱼肉有弹性、肉质滑嫩，但鱼是活杀，不是现杀。5元一份的豆芽少的可怜，只有几根，土豆粉倒是不错，q弹爽滑，有嚼劲。\u0002总体评价：客流量不大，基本到了都有餐位的。鱼烤的比较好，调味也到位，但味道放太多了，吃后口干。提个建议：店内的手机信号很差，真心不喜欢。\" \"|今|天|要|探|的|店|是|位|于|利|时|奥|特|莱|斯|4|楼|的|阿|拉|渔|歌|，|位|置|很|好|找|，|交|通|也|便|利|。|我|是|提|前|一|天|预|约|的|，|所|以|到|店|就|有|位|置|了|。|\u0002|店|面|不|大|，|里|面|的|餐|位|还|真|不|少|。|进|门|的|那|个|大|烤|炉|特|别|吸|引|人|，|忍|不|住|凑|近|多|看|了|几|眼|。|原|来|今|晚|的|烤|鱼|都|是|出|自|这|个|“|大|家|伙|”|。|中|的|霸|王|餐|是|7|8|元|的|一|条|海|鲈|鱼|，|服|务|员|推|荐|了|几|个|口|味|，|最|后|选|择|的|人|气|较|旺|的|：|酱|香|味|的|。|同|时|还|点|了|2|份|配|菜|：|豆|芽|和|土|豆|粉|。|\u0002|等|了|大|概|1|0|分|钟|，|今|晚|的|主|角|终|于|登|场|了|！|幸|好|点|了|配|菜|，|不|然|只|有|烤|鱼|上|的|几|块|土|豆|，|怎|么|吃|。|鱼|烤|的|火|候|倒|是|不|错|，|外|焦|里|嫩|，|鱼|肉|有|弹|性|、|肉|质|滑|嫩|，|但|鱼|是|活|杀|，|不|是|现|杀|。|5|元|一|份|的|豆|芽|少|的|可|怜|，|只|有|几|根|，|土|豆|粉|倒|是|不|错|，|q|弹|爽|滑|，|有|嚼|劲|。|\u0002|总|体|评|价|：|客|流|量|不|大|，|基|本|到|了|都|有|餐|位|的|。|鱼|烤|的|比|较|好|，|调|味|也|到|位|，|但|味|道|放|太|多|了|，|吃|后|口|干|。|提|个|建|议|：|店|内|的|手|机|信|号|很|差|，|真|心|不|喜|欢|。|\"|\"|今天|要|探|的|店|是|位于|利时|奥特莱斯|4|楼|的|阿拉|渔歌|，|位置|很|好找|，|交通|也|便利|。|我|是|提前|一|天|预约|的|，|所以|到|店|就|有|位置|了|。|店面|不大|，|里面|的|餐位|还|真|不少|。|进门|的|那个|大|烤炉|特别|吸引|人|，|忍不住|凑近|多|看|了|几|眼|。|原来|今晚|的|烤鱼|都|是|出自|这个|“|大家伙|”|。|中|的|霸王|餐|是|78|元|的|一|条|海|鲈鱼|，|服务员|推荐|了|几|个|口味|，|最后|选择|的|人气|较|旺|的|：|酱|香味|的|。|同时|还|点|了|2|份|配菜|：|豆芽|和|土豆粉|。|等|了|大概|10|分钟|，|今晚|的|主角|终于|登场|了|！|幸好|点|了|配菜|，|不然|只|有|烤鱼|上|的|几|块|土豆|，|怎么|吃|。|鱼|烤的|火候|倒是|不错|，|外焦|里嫩|，|鱼肉|有|弹性|、|肉质|滑嫩|，|但|鱼|是|活杀|，|不是|现杀|。|5|元|一|份|的|豆芽|少|的|可怜|，|只有|几|根|，|土豆粉|倒是|不错|，|q弹|爽滑|，|有|嚼劲|。|总体|评价|：|客流量|不|大|，|基本|到|了|都|有|餐位|的|。|鱼|烤的|比较|好|，|调味|也|到位|，|但|味道|放|太|多|了|，|吃|后|口干|。|提|个|建议|：|店|内|的|手机|信号|很|差|，|真心|不|喜欢|。|\" 616\n2018-10-19 19:05:43 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 19:08:54 0:23:46 \"他家有很多分店\u0003感觉一下子冒出来的是的\u0003以前没怎么见到过\u0003现在随便去哪都能看到\u0003这家也是我新发现的\u0003不知是新开还是老店\u0003他家面分很多种\u0003什么毛细\u0003二细\u0003很多种\u0003以前都吃的普通的\u0003今天尝了毛细的\u0003特别细了了\u0003还有很粗的那种跟面片是的\u0003没见人吃过\u0003图片倒是见过\u0003凉菜就是普通面馆都有的\u0003不算特色了\u0003一小盘\u0003说是可以拚两种\u0003量不大\u0003但是也够吃了\u0003面拉出来很快\u0003吃的时候看见一个大老爷们要了两碗\u0003小姑娘的话一碗都吃不了\u0003辣椒油\u0003也还不错\u0003不算辣\u0003他家单纯说面的话微微偏贵\u0002忘了拍照片了\u0003对了点的双人套餐\u0003没吃完\" \"|他|家|有|很|多|分|店|\u0003|感|觉|一|下|子|冒|出|来|的|是|的|\u0003|以|前|没|怎|么|见|到|过|\u0003|现|在|随|便|去|哪|都|能|看|到|\u0003|这|家|也|是|我|新|发|现|的|\u0003|不|知|是|新|开|还|是|老|店|\u0003|他|家|面|分|很|多|种|\u0003|什|么|毛|细|\u0003|二|细|\u0003|很|多|种|\u0003|以|前|都|吃|的|普|通|的|\u0003|今|天|尝|了|毛|细|的|\u0003|特|别|细|了|了|\u0003|还|有|很|粗|的|那|种|跟|面|片|是|的|\u0003|没|见|人|吃|过|\u0003|图|片|倒|是|见|过|\u0003|凉|菜|就|是|普|通|面|馆|都|有|的|\u0003|不|算|特|色|了|\u0003|一|小|盘|\u0003|说|是|可|以|拚|两|种|\u0003|量|不|大|\u0003|但|是|也|够|吃|了|\u0003|面|拉|出|来|很|快|\u0003|吃|的|时|候|看|见|一|个|大|老|爷|们|要|了|两|碗|\u0003|小|姑|娘|的|话|一|碗|都|吃|不|了|\u0003|辣|椒|油|\u0003|也|还|不|错|\u0003|不|算|辣|\u0003|他|家|单|纯|说|面|的|话|微|微|偏|贵|\u0002|忘|了|拍|照|片|了|\u0003|对|了|点|的|双|人|套|餐|\u0003|没|吃|完|\"|\"|他|家有|很多|分店|感觉|一|下子|冒出|来|的|是的|以前|没|怎么|见到|过|现在|随便|去|哪|都|能|看到|这|家|也|是|我|新|发现|的|不知|是|新开|还是|老店|他|家|面分|很多|种|什么|毛细|二|细|很多|种|以前|都|吃|的|普通|的|今天|尝|了|毛细|的|特别|细了|了|还有|很|粗|的|那|种|跟|面片|是|的|没|见人|吃|过|图片|倒是|见|过|凉菜|就|是|普通|面馆|都|有的|不算|特色|了|一|小|盘|说|是|可以|拚|两|种|量|不|大|但是|也|够|吃|了|面|拉|出来|很|快|吃|的|时候|看见|一|个|大|老爷们|要|了|两|碗|小|姑娘|的话|一|碗|都|吃|不|了|辣椒油|也|还|不错|不|算|辣|他|家|单纯|说|面的|话|微微|偏|贵|忘|了|拍|照片|了|对了|点|的|双人|套餐|没|吃完|\" 415\n2018-10-19 19:09:09 0:03:37 \"吃过最完美的一顿餐厅周午餐，前菜，主菜，甜品，饮料，居然前菜和主菜还都有配酒，真是大爱啊[色][色][色]。先上的面包配黄油，后悔不应该都吃了，害的主菜吃不下啊！服务员还会问需不需要再加，还好没有贪心，嘿嘿。前菜的芝士和冷肉拼盘，量很足，然后能说好喜欢那个白色的拌酱嘛～前菜配干白或者粉红葡萄酒，很搭。主菜被通知已经没有三文鱼和鸭腿了，只能换了牛肉千层面和半只烤春鸡配土豆，配的干红。土豆好甜，春鸡和千层面量太大，吃撑了我们两个女生！最后还有甜品，推荐酸奶，感觉有用cheese，很特别。提拉米苏有点偏甜，所以最后配的黑咖啡，真是直接解腻的。预定的时候以为只有一杯酒，想不到配的是两杯酒，真是太划算了！地方不大，但是装修的很舒服，也不会有太簇拥的感觉。酒定的价格也不贵，下次可以和朋友再来小聚。\" \"|吃|过|最|完|美|的|一|顿|餐|厅|周|午|餐|，|前|菜|，|主|菜|，|甜|品|，|饮|料|，|居|然|前|菜|和|主|菜|还|都|有|配|酒|，|真|是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面|包|配|黄|油|，|后|悔|不|应|该|都|吃|了|，|害|的|主|菜|吃|不|下|啊|！|服|务|员|还|会|问|需|不|需|要|再|加|，|还|好|没|有|贪|心|，|嘿|嘿|。|前|菜|的|芝|士|和|冷|肉|拼|盘|，|量|很|足|，|然|后|能|说|好|喜|欢|那|个|白|色|的|拌|酱|嘛|～|前|菜|配|干|白|或|者|粉|红|葡|萄|酒|，|很|搭|。|主|菜|被|通|知|已|经|没|有|三|文|鱼|和|鸭|腿|了|，|只|能|换|了|牛|肉|千|层|面|和|半|只|烤|春|鸡|配|土|豆|，|配|的|干|红|。|土|豆|好|甜|，|春|鸡|和|千|层|面|量|太|大|，|吃|撑|了|我|们|两|个|女|生|！|最|后|还|有|甜|品|，|推|荐|酸|奶|，|感|觉|有|用|c|h|e|e|s|e|，|很|特|别|。|提|拉|米|苏|有|点|偏|甜|，|所|以|最|后|配|的|黑|咖|啡|，|真|是|直|接|解|腻|的|。|预|定|的|时|候|以|为|只|有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真|是|太|划|算|了|！|地|方|不|大|，|但|是|装|修|的|很|舒|服|，|也|不|会|有|太|簇|拥|的|感|觉|。|酒|定|的|价|格|也|不|贵|，|下|次|可|以|和|朋|友|再|来|小|聚|。|\"|\"|吃|过|最|完美|的|一|顿|餐厅|周|午餐|，|前菜|，|主菜|，|甜品|，|饮料|，|居然|前菜|和|主菜|还|都|有|配酒|，|真是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面包|配|黄油|，|后悔|不|应该|都|吃|了|，|害|的|主菜|吃|不|下|啊|！|服务员|还|会|问|需|不|需要|再加|，|还好|没有|贪心|，|嘿嘿|。|前菜|的|芝士|和|冷|肉|拼盘|，|量|很|足|，|然后|能|说好|喜欢|那个|白色|的|拌酱|嘛|～|前菜|配|干白|或者|粉红|葡萄酒|，|很|搭|。|主菜|被|通知|已经|没有|三文鱼|和|鸭|腿|了|，|只|能|换了|牛肉|千|层面|和|半|只|烤|春|鸡|配|土豆|，|配|的|干红|。|土豆|好|甜|，|春鸡|和|千|层|面量|太|大|，|吃|撑|了|我们|两|个|女生|！|最后|还|有|甜品|，|推荐|酸奶|，|感觉|有用|cheese|，|很|特别|。|提拉|米|苏|有点|偏|甜|，|所以|最后|配|的|黑|咖啡|，|真是|直接|解腻|的|。|预定|的|时候|以为|只有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真是|太|划算|了|！|地方|不|大|，|但是|装修|的|很|舒服|，|也|不|会|有|太|簇拥|的|感觉|。|酒|定|的|价格|也|不|贵|，|下次|可以|和|朋友|再来|小聚|。|\" 604\n2018-10-19 19:12:08 0:27:00 \"和很久没见的高中同学聚会，都很喜欢猫咪，上次约在江南西的某家猫咪主题餐厅，感觉都很好，能和可爱的猫咪亲密接触棒棒哒，于是这次也准备约到猫咪主题的餐厅一边吃饭一边逗猫，在大众点评上看到这家meow1306猫小窝评价看上去都不错，于是愉快地定下了午餐之约（下午还要去买买买~），预定了12点用餐，惭愧地迟到了半小时（友人迷路了半小时呵呵，其实就是体育中心a出口出去直走到路口左转30米左右就到了╮(╯▽╰)╭）幸好到达之时仍然有空位，安全入座。\u0002先说说#环境#，空间蛮大的，全店铺木地板，进门需要换鞋+进行手部消毒，位置刚好正对着太古汇，边上是一排超大落地玻璃窗，能看到体育西路的车水马龙，采光视线都不错，墙壁上的装饰也很用心，我们位置后面是一墙的猫咪春游壁画，樱花之下猫咪们愉快用餐的姿态萌萌哒~座椅用的是矮沙发+配套的木质桌子，沙发满软的，刚好是猫咪很容易能跳上去的高度，桌子的高度也刚刚好，很方便进餐，有一股家的味道，很闲适，最赞的是每张桌子的间隔都很宽敞，坐着一点都不压抑，聊天也不会很受隔壁的影响，不错\u0002说完环境，就轮到最核心的#猫咪#了，与这里宽敞的环境相比，猫咪的数量就完全不成正比，只有小猫六七只，有两只美短（估计还是兄弟来着），还有一直纯白的波斯猫、一只脸黑的暹罗猫，两只扁脸咖啡猫（其中一只脖子套了一个蝴蝶结，另外一只又胖又懒，全程在装地毯），还有一只纯黑的小奶猫（没认出品种，但是身娇体柔易推倒有木有），一只配一桌都嫌不够，不过猫猫都很干净、很乖巧，能抱（不过下一秒就逃），身上也没有什么味道，调教得还算不错。\u0002说完猫咪，再说说食物出品，只能说重点果然在猫，食物就一般般啦，#味道#还可以，但是分量真心少，我们点了一个爆浆鸡腿肉饭（28）、一个番茄肉酱意粉（36）、一壶花果茶（玫瑰花+苹果花36），一共100，团购后88，人均44。先说我的鸡腿饭，味道还ok，是切开的小块鸡腿肉+腌萝卜+洋葱煮的肉酱拌饭，鸡腿肉虽不多但肉都满嫩的，下饭；朋友的番茄肉酱意粉那个分量感觉三口就能吃完，偷尝了一根味道不错，就是性价比很低；花果茶就更坑爹了，壶里面的茶叶花蕾就那么两三颗可怜的漂浮着，茶水谈而无味，根本不值得这个价，差评。\u0002最后稍稍提一下#服务#除了最开始的给我们喷一下手+拿菜单（居然是用牛皮纸手写的）给我们点下菜几乎全程自助，没有热情交谈的店主给我们介绍店里的猫咪，也没有店员给我们拿逗猫棒、猫玩具，态度冷淡，在最后快离开的时候，还有一个女的一边在给气球打气（据说2点有包场活动估计是布置场地的工作人员），一边用炒鸡可怕的眼神盯着我们，吓得我们赶紧去结账。\u0002总体来说环境很不错，但奔着去看猫咪的可能有点失望了，食物的性价比也很低，不过环境蛮安静的，比较适合去下午茶小聚，顺便逗逗猫咪，据说还有鸡尾酒，晚上去的可以尝尝\" \"|和|很|久|没|见|的|高|中|同|学|聚|会|，|都|很|喜|欢|猫|咪|，|上|次|约|在|江|南|西|的|某|家|猫|咪|主|题|餐|厅|，|感|觉|都|很|好|，|能|和|可|爱|的|猫|咪|亲|密|接|触|棒|棒|哒|，|于|是|这|次|也|准|备|约|到|猫|咪|主|题|的|餐|厅|一|边|吃|饭|一|边|逗|猫|，|在|大|众|点|评|上|看|到|这|家|m|e|o|w|1|3|0|6|猫|小|窝|评|价|看|上|去|都|不|错|，|于|是|愉|快|地|定|下|了|午|餐|之|约|（|下|午|还|要|去|买|买|买|~|）|，|预|定|了|1|2|点|用|餐|，|惭|愧|地|迟|到|了|半|小|时|（|友|人|迷|路|了|半|小|时|呵|呵|，|其|实|就|是|体|育|中|心|a|出|口|出|去|直|走|到|路|口|左|转|3|0|米|左|右|就|到|了|╮|(|╯|▽|╰|)|╭|）|幸|好|到|达|之|时|仍|然|有|空|位|，|安|全|入|座|。|\u0002|先|说|说|#|环|境|#|，|空|间|蛮|大|的|，|全|店|铺|木|地|板|，|进|门|需|要|换|鞋|+|进|行|手|部|消|毒|，|位|置|刚|好|正|对|着|太|古|汇|，|边|上|是|一|排|超|大|落|地|玻|璃|窗|，|能|看|到|体|育|西|路|的|车|水|马|龙|，|采|光|视|线|都|不|错|，|墙|壁|上|的|装|饰|也|很|用|心|，|我|们|位|置|后|面|是|一|墙|的|猫|咪|春|游|壁|画|，|樱|花|之|下|猫|咪|们|愉|快|用|餐|的|姿|态|萌|萌|哒|~|座|椅|用|的|是|矮|沙|发|+|配|套|的|木|质|桌|子|，|沙|发|满|软|的|，|刚|好|是|猫|咪|很|容|易|能|跳|上|去|的|高|度|，|桌|子|的|高|度|也|刚|刚|好|，|很|方|便|进|餐|，|有|一|股|家|的|味|道|，|很|闲|适|，|最|赞|的|是|每|张|桌|子|的|间|隔|都|很|宽|敞|，|坐|着|一|点|都|不|压|抑|，|聊|天|也|不|会|很|受|隔|壁|的|影|响|，|不|错|\u0002|说|完|环|境|，|就|轮|到|最|核|心|的|#|猫|咪|#|了|，|与|这|里|宽|敞|的|环|境|相|比|，|猫|咪|的|数|量|就|完|全|不|成|正|比|，|只|有|小|猫|六|七|只|，|有|两|只|美|短|（|估|计|还|是|兄|弟|来|着|）|，|还|有|一|直|纯|白|的|波|斯|猫|、|一|只|脸|黑|的|暹|罗|猫|，|两|只|扁|脸|咖|啡|猫|（|其|中|一|只|脖|子|套|了|一|个|蝴|蝶|结|，|另|外|一|只|又|胖|又|懒|，|全|程|在|装|地|毯|）|，|还|有|一|只|纯|黑|的|小|奶|猫|（|没|认|出|品|种|，|但|是|身|娇|体|柔|易|推|倒|有|木|有|）|，|一|只|配|一|桌|都|嫌|不|够|，|不|过|猫|猫|都|很|干|净|、|很|乖|巧|，|能|抱|（|不|过|下|一|秒|就|逃|）|，|身|上|也|没|有|什|么|味|道|，|调|教|得|还|算|不|错|。|\u0002|说|完|猫|咪|，|再|说|说|食|物|出|品|，|只|能|说|重|点|果|然|在|猫|，|食|物|就|一|般|般|啦|，|#|味|道|#|还|可|以|，|但|是|分|量|真|心|少|，|我|们|点|了|一|个|爆|浆|鸡|腿|肉|饭|（|2|8|）|、|一|个|番|茄|肉|酱|意|粉|（|3|6|）|、|一|壶|花|果|茶|（|玫|瑰|花|+|苹|果|花|3|6|）|，|一|共|1|0|0|，|团|购|后|8|8|，|人|均|4|4|。|先|说|我|的|鸡|腿|饭|，|味|道|还|o|k|，|是|切|开|的|小|块|鸡|腿|肉|+|腌|萝|卜|+|洋|葱|煮|的|肉|酱|拌|饭|，|鸡|腿|肉|虽|不|多|但|肉|都|满|嫩|的|，|下|饭|；|朋|友|的|番|茄|肉|酱|意|粉|那|个|分|量|感|觉|三|口|就|能|吃|完|，|偷|尝|了|一|根|味|道|不|错|，|就|是|性|价|比|很|低|；|花|果|茶|就|更|坑|爹|了|，|壶|里|面|的|茶|叶|花|蕾|就|那|么|两|三|颗|可|怜|的|漂|浮|着|，|茶|水|谈|而|无|味|，|根|本|不|值|得|这|个|价|，|差|评|。|\u0002|最|后|稍|稍|提|一|下|#|服|务|#|除|了|最|开|始|的|给|我|们|喷|一|下|手|+|拿|菜|单|（|居|然|是|用|牛|皮|纸|手|写|的|）|给|我|们|点|下|菜|几|乎|全|程|自|助|，|没|有|热|情|交|谈|的|店|主|给|我|们|介|绍|店|里|的|猫|咪|，|也|没|有|店|员|给|我|们|拿|逗|猫|棒|、|猫|玩|具|，|态|度|冷|淡|，|在|最|后|快|离|开|的|时|候|，|还|有|一|个|女|的|一|边|在|给|气|球|打|气|（|据|说|2|点|有|包|场|活|动|估|计|是|布|置|场|地|的|工|作|人|员|）|，|一|边|用|炒|鸡|可|怕|的|眼|神|盯|着|我|们|，|吓|得|我|们|赶|紧|去|结|账|。|\u0002|总|体|来|说|环|境|很|不|错|，|但|奔|着|去|看|猫|咪|的|可|能|有|点|失|望|了|，|食|物|的|性|价|比|也|很|低|，|不|过|环|境|蛮|安|静|的|，|比|较|适|合|去|下|午|茶|小|聚|，|顺|便|逗|逗|猫|咪|，|据|说|还|有|鸡|尾|酒|，|晚|上|去|的|可|以|尝|尝|\"|\"|和|很久|没|见|的|高中|同学|聚会|，|都|很|喜欢|猫咪|，|上次|约在|江南|西|的|某|家|猫咪|主题|餐厅|，|感觉|都|很|好|，|能|和|可爱|的|猫咪|亲密|接触|棒棒哒|，|于是|这|次|也|准备|约|到|猫咪|主题|的|餐厅|一边|吃饭|一边|逗|猫|，|在|大众|点评|上|看到|这|家|meow|1306|猫|小窝|评价|看上去|都|不错|，|于是|愉快|地|定下|了|午餐|之|约|（|下午|还|要|去|买|买|买|~|）|，|预定|了|12点|用餐|，|惭愧|地|迟到|了|半|小时|（|友人|迷路|了|半|小时|呵呵|，|其实|就是|体育|中心|a|出口|出去|直|走到|路口|左转|30|米|左右|就|到|了|╮|(|╯▽╰|)|╭|）|幸好|到达|之时|仍然|有|空位|，|安全|入座|。|先|说说|#|环境|#|，|空间|蛮大|的|，|全|店铺|木|地板|，|进门|需要|换|鞋|+|进行|手部|消毒|，|位置|刚好|正对着|太古汇|，|边上|是|一|排|超大|落地|玻璃窗|，|能|看到|体育|西路|的|车水马龙|，|采光|视线|都|不错|，|墙壁|上|的|装饰|也|很|用心|，|我们|位置|后面|是|一|墙|的|猫咪|春游|壁画|，|樱花|之下|猫咪们|愉快|用餐|的|姿态|萌萌哒|~|座椅|用|的|是|矮沙发|+|配套|的|木质|桌子|，|沙发|满|软|的|，|刚好|是|猫咪|很|容易|能|跳上|去|的|高度|，|桌子|的|高度|也|刚刚|好|，|很|方便|进餐|，|有|一|股|家|的|味道|，|很|闲适|，|最|赞|的|是|每|张|桌子|的|间隔|都|很|宽敞|，|坐|着|一点|都|不|压抑|，|聊天|也|不|会|很|受|隔壁|的|影响|，|不错|说完|环境|，|就|轮到|最|核心|的|#|猫咪|#|了|，|与|这里|宽敞|的|环境|相比|，|猫咪|的|数量|就|完全|不|成|正比|，|只有|小猫|六七|只|，|有|两|只|美|短|（|估计|还是|兄弟|来着|）|，|还有|一直|纯白|的|波斯猫|、|一|只|脸|黑|的|暹罗猫|，|两|只|扁|脸|咖啡|猫|（|其中|一|只|脖子|套|了|一|个|蝴蝶|结|，|另外|一|只|又|胖|又|懒|，|全程|在|装|地毯|）|，|还有|一|只|纯|黑|的|小奶|猫|（|没|认出|品种|，|但是|身娇体|柔易|推倒|有|木|有|）|，|一|只|配|一|桌|都|嫌|不够|，|不过|猫|猫|都|很|干净|、|很|乖巧|，|能|抱|（|不过|下|一|秒|就|逃|）|，|身上|也|没有|什么|味道|，|调教|得|还算|不错|。|说完|猫咪|，|再|说说|食物|出品|，|只能|说|重点|果然|在|猫|，|食物|就|一般|般|啦|，|#|味道|#|还|可以|，|但是|分量|真心|少|，|我们|点|了|一|个|爆浆|鸡腿|肉饭|（|28|）|、|一|个|番茄|肉酱|意粉|（|36|）|、|一|壶|花|果茶|（|玫瑰花|+|苹果花|36|）|，|一共|100|，|团购|后|88|，|人均|44|。|先|说|我|的|鸡腿|饭|，|味道|还|ok|，|是|切开|的|小|块|鸡腿|肉|+|腌萝卜|+|洋葱|煮|的|肉酱|拌饭|，|鸡腿|肉|虽|不|多|但|肉|都|满|嫩的|，|下饭|；|朋友|的|番茄|肉酱|意粉|那个|分量|感觉|三|口|就|能|吃完|，|偷|尝|了|一|根|味道|不错|，|就是|性价比|很低|；|花果|茶|就|更|坑|爹|了|，|壶|里面|的|茶叶|花蕾|就|那么|两|三|颗|可怜|的|漂浮|着|，|茶水|谈|而|无味|，|根本|不|值得|这个|价|，|差评|。|最后|稍稍|提|一下|#|服务|#|除了|最开始|的|给|我们|喷一|下手|+|拿|菜单|（|居然|是|用|牛皮纸|手写|的|）|给|我们|点|下|菜|几乎|全程|自助|，|没有|热情|交谈|的|店主|给|我们|介绍|店里|的|猫咪|，|也|没有|店员|给|我们|拿|逗|猫|棒|、|猫|玩具|，|态度|冷淡|，|在|最后|快|离开|的|时候|，|还有|一|个|女的|一边|在|给|气球|打气|（|据说|2|点|有|包场|活动|估计|是|布置|场地|的|工作|人员|）|，|一边|用|炒|鸡|可怕|的|眼神|盯|着|我们|，|吓|得|我们|赶紧|去|结账|。|总体|来说|环境|很|不错|，|但|奔着|去|看|猫咪|的|可能|有点|失望|了|，|食物|的|性价比|也|很|低|，|不过|环境|蛮|安静|的|，|比较|适合|去|下午|茶|小聚|，|顺便|逗逗|猫咪|，|据说|还有|鸡尾酒|，|晚上|去|的|可以|尝尝|\" 1962\n2018-10-19 19:12:25 0:06:53 \"渔乐圈主题餐厅听名字觉得是一家吃鱼的餐厅，实际上是一家港式茶餐厅，当然这家港式茶餐厅真的很奇葩，香港人吃东西讲究清单，这家点的菜品我吃完之后只有一个印象，就是咸，这家店的位置在写字楼里面的，一般人很难找到，不知道老板怎么想的，会选在这里，边上就是一家保险公司。我是周六中午去吃的，人很少，几乎没几桌客人，我看了看菜单，服务员是推荐点酸菜鱼，这里的酸菜鱼是按斤卖的，觉得价格小贵没点，点了个乳鸽，这里的乳鸽的味道有点怪，不想平常吃到的都是脆脆的。点了皮蛋瘦肉粥，味道还行，不好不坏，还点了叉烧肠粉，都是肥肉，味道马马虎虎。还点了鱼香茄子煲，味道是不错，就是太油了，另外点了个豉汁蒸排骨，这个真的不好吃，排骨不光拍了嫩肉粉，还咬不动。吃完之后我跟店里类似主管的反映菜太咸，她完全不当回事，这样怎么会进步呢！\" \"|渔|乐|圈|主|题|餐|厅|听|名|字|觉|得|是|一|家|吃|鱼|的|餐|厅|，|实|际|上|是|一|家|港|式|茶|餐|厅|，|当|然|这|家|港|式|茶|餐|厅|真|的|很|奇|葩|，|香|港|人|吃|东|西|讲|究|清|单|，|这|家|点|的|菜|品|我|吃|完|之|后|只|有|一|个|印|象|，|就|是|咸|，|这|家|店|的|位|置|在|写|字|楼|里|面|的|，|一|般|人|很|难|找|到|，|不|知|道|老|板|怎|么|想|的|，|会|选|在|这|里|，|边|上|就|是|一|家|保|险|公|司|。|我|是|周|六|中|午|去|吃|的|，|人|很|少|，|几|乎|没|几|桌|客|人|，|我|看|了|看|菜|单|，|服|务|员|是|推|荐|点|酸|菜|鱼|，|这|里|的|酸|菜|鱼|是|按|斤|卖|的|，|觉|得|价|格|小|贵|没|点|，|点|了|个|乳|鸽|，|这|里|的|乳|鸽|的|味|道|有|点|怪|，|不|想|平|常|吃|到|的|都|是|脆|脆|的|。|点|了|皮|蛋|瘦|肉|粥|，|味|道|还|行|，|不|好|不|坏|，|还|点|了|叉|烧|肠|粉|，|都|是|肥|肉|，|味|道|马|马|虎|虎|。|还|点|了|鱼|香|茄|子|煲|，|味|道|是|不|错|，|就|是|太|油|了|，|另|外|点|了|个|豉|汁|蒸|排|骨|，|这|个|真|的|不|好|吃|，|排|骨|不|光|拍|了|嫩|肉|粉|，|还|咬|不|动|。|吃|完|之|后|我|跟|店|里|类|似|主|管|的|反|映|菜|太|咸|，|她|完|全|不|当|回|事|，|这|样|怎|么|会|进|步|呢|！|\"|\"|渔乐圈|主题|餐厅|听|名字|觉得|是|一|家|吃鱼|的|餐厅|，|实际上|是|一|家|港式|茶|餐厅|，|当然|这|家|港式|茶|餐厅|真的|很|奇葩|，|香港人|吃|东西|讲究|清单|，|这|家|点|的|菜品|我|吃完|之后|只|有|一|个|印象|，|就是|咸|，|这|家|店|的|位置|在|写字楼|里面|的|，|一般|人|很|难|找到|，|不|知道|老板|怎么|想|的|，|会|选|在|这里|，|边上|就|是|一|家|保险|公司|。|我|是|周六|中午|去|吃|的|，|人|很少|，|几乎|没|几|桌|客人|，|我|看|了|看|菜单|，|服务员|是|推荐|点|酸菜鱼|，|这里|的|酸菜|鱼|是|按|斤|卖的|，|觉得|价格|小|贵|没|点|，|点|了|个|乳鸽|，|这里|的|乳鸽|的|味道|有点|怪|，|不|想|平常|吃到|的|都|是|脆脆|的|。|点|了|皮蛋|瘦肉粥|，|味道|还行|，|不好不坏|，|还|点|了|叉烧|肠粉|，|都|是|肥肉|，|味道|马马虎虎|。|还|点|了|鱼香|茄子煲|，|味道|是|不错|，|就是|太|油了|，|另外|点|了|个|豉汁蒸|排骨|，|这个|真的|不好吃|，|排骨|不|光|拍|了|嫩肉粉|，|还|咬|不|动|。|吃完|之后|我|跟|店里|类似|主管|的|反映|菜|太|咸|，|她|完全|不当|回事|，|这样|怎么|会|进步|呢|！|\" 597\n2018-10-19 19:15:18 0:30:10 \"位置确实比较隐蔽，从美甲店上二楼就是，门口有个不大的招牌，幸好看了大家的点评得以顺利找到。首先说环境，装修让人很舒服，有吧台，也有包间。今天来给爸爸过生日，订了包间，能坐的舒服些，但之前不清楚包间有最低消费，老板很好，为我们破例了一次，特别感谢！菜品很精致，量是日料店一贯的比较秀气，但胜在质量，味道都很好，一看就是用料上乘。寿喜锅菜单上没有，却在墙上挂的推荐菜单中看到了，必点，要的牛肉锅。我是一直喜欢寿喜锅的，让我来尝一尝，鉴定一下。好吃，真的是很好吃，肥牛蘸着生鸡蛋，滑滑嫩嫩，真的完胜我吃过的除将太无二外的其他家，在我的排名中和将太无二并列。大家推荐的明太子鸡翅饺子和明太子黄油土豆都点了，味道都很赞，主要是比较新颖，超满意的一餐！服务也加分不少哦！\" \"|位|置|确|实|比|较|隐|蔽|，|从|美|甲|店|上|二|楼|就|是|，|门|口|有|个|不|大|的|招|牌|，|幸|好|看|了|大|家|的|点|评|得|以|顺|利|找|到|。|首|先|说|环|境|，|装|修|让|人|很|舒|服|，|有|吧|台|，|也|有|包|间|。|今|天|来|给|爸|爸|过|生|日|，|订|了|包|间|，|能|坐|的|舒|服|些|，|但|之|前|不|清|楚|包|间|有|最|低|消|费|，|老|板|很|好|，|为|我|们|破|例|了|一|次|，|特|别|感|谢|！|菜|品|很|精|致|，|量|是|日|料|店|一|贯|的|比|较|秀|气|，|但|胜|在|质|量|，|味|道|都|很|好|，|一|看|就|是|用|料|上|乘|。|寿|喜|锅|菜|单|上|没|有|，|却|在|墙|上|挂|的|推|荐|菜|单|中|看|到|了|，|必|点|，|要|的|牛|肉|锅|。|我|是|一|直|喜|欢|寿|喜|锅|的|，|让|我|来|尝|一|尝|，|鉴|定|一|下|。|好|吃|，|真|的|是|很|好|吃|，|肥|牛|蘸|着|生|鸡|蛋|，|滑|滑|嫩|嫩|，|真|的|完|胜|我|吃|过|的|除|将|太|无|二|外|的|其|他|家|，|在|我|的|排|名|中|和|将|太|无|二|并|列|。|大|家|推|荐|的|明|太|子|鸡|翅|饺|子|和|明|太|子|黄|油|土|豆|都|点|了|，|味|道|都|很|赞|，|主|要|是|比|较|新|颖|，|超|满|意|的|一|餐|！|服|务|也|加|分|不|少|哦|！|\"|\"|位置|确实|比较|隐蔽|，|从|美|甲|店|上|二|楼|就是|，|门口|有|个|不|大|的|招牌|，|幸好|看|了|大家|的|点评|得以|顺利|找到|。|首先|说|环境|，|装修|让|人|很|舒服|，|有|吧台|，|也|有|包间|。|今天|来给|爸爸|过|生日|，|订|了|包间|，|能|坐|的|舒服|些|，|但|之前|不|清楚|包间|有|最低|消费|，|老板|很|好|，|为|我们|破例|了|一|次|，|特别|感谢|！|菜品|很|精致|，|量|是|日|料|店|一贯|的|比较|秀气|，|但|胜|在|质量|，|味道|都|很|好|，|一|看|就是|用料|上乘|。|寿喜|锅|菜单|上|没有|，|却|在|墙|上|挂|的|推荐|菜单|中|看到|了|，|必点|，|要|的|牛肉锅|。|我|是|一直|喜欢|寿喜锅|的|，|让|我|来尝|一|尝|，|鉴定|一下|。|好吃|，|真的|是|很|好吃|，|肥牛蘸|着|生|鸡蛋|，|滑滑嫩嫩|，|真的|完胜|我|吃|过|的|除|将|太|无|二|外|的|其他|家|，|在|我|的|排名|中|和|将|太|无|二|并列|。|大家|推荐|的|明|太子|鸡翅|饺子|和|明|太子|黄油|土豆|都|点|了|，|味道|都|很|赞|，|主要|是|比较|新颖|，|超|满意|的|一|餐|！|服务|也|加分|不少|哦|！|\" 571\n2018-10-19 19:15:39 0:10:07 \"去了不少次，\u0003地址也比较好找，在中原路与工人路交叉口向南200米，\u0003店里的装饰和设计比较古朴，很有解放前的味道。这次团购的是2～3人餐，\u0003三菜一汤，\u0003还有三份米，分量也不错\u0003菜差不多够三个吃，就是米的分量不大，不过可以加钱要米饭，团购价四十九元还是比较实惠的，菜品属于偏川味，\u0003都是辣的\u0003属于比较开胃的菜。前台态度也不错，服务员\u0003上菜更是一路小跑，\u0003上菜速度很快，给服务员小哥点个赞。希望店家推出更多的更实惠的团购套餐。\" \"|去|了|不|少|次|，|\u0003|地|址|也|比|较|好|找|，|在|中|原|路|与|工|人|路|交|叉|口|向|南|2|0|0|米|，|\u0003|店|里|的|装|饰|和|设|计|比|较|古|朴|，|很|有|解|放|前|的|味|道|。|这|次|团|购|的|是|2|～|3|人|餐|，|\u0003|三|菜|一|汤|，|\u0003|还|有|三|份|米|，|分|量|也|不|错|\u0003|菜|差|不|多|够|三|个|吃|，|就|是|米|的|分|量|不|大|，|不|过|可|以|加|钱|要|米|饭|，|团|购|价|四|十|九|元|还|是|比|较|实|惠|的|，|菜|品|属|于|偏|川|味|，|\u0003|都|是|辣|的|\u0003|属|于|比|较|开|胃|的|菜|。|前|台|态|度|也|不|错|，|服|务|员|\u0003|上|菜|更|是|一|路|小|跑|，|\u0003|上|菜|速|度|很|快|，|给|服|务|员|小|哥|点|个|赞|。|希|望|店|家|推|出|更|多|的|更|实|惠|的|团|购|套|餐|。|\"|\"|去|了|不少|次|，|地址|也|比较|好找|，|在|中原|路|与|工人|路|交叉口|向南|200|米|，|店|里|的|装饰|和|设计|比较|古朴|，|很|有|解放|前|的|味道|。|这|次|团购|的|是|2|～|3|人|餐|，|三|菜|一|汤|，|还有|三|份|米|，|分量|也|不错|菜|差不多|够|三|个|吃|，|就是|米|的|分量|不|大|，|不过|可以|加|钱|要|米饭|，|团|购价|四十九|元|还是|比较|实惠|的|，|菜品|属于|偏川味|，|都|是|辣|的|属于|比较|开胃|的|菜|。|前台|态度|也|不错|，|服务员|上菜|更|是|一|路|小跑|，|上菜|速度|很|快|，|给|服务员|小哥|点|个|赞|。|希望|店家|推出|更|多|的|更|实惠|的|团购|套餐|。|\" 356\n2018-10-19 19:26:30 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/to-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-28 08:37:28.846557\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport six \n  \nassert six.PY3 \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\nifile = sys.argv[1]\nofile = sys.argv[2]\n\nids_set = set()\nfm = 'w'\nif os.path.exists(ofile):\n  fm = 'a'\n  for line in open(ofile):\n    ids_set.add(line.split('\\t')[0])\n\nprint('%s already done %d' % (ofile, len(ids_set)))\n\nnum_errs = 0\nwith open(ofile, fm) as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    if str(ids[i]) in ids_set:\n      continue\n    #if i != 2333:\n    #  continue\n    #print(gezi.cut(filter.filter(contents[i]), type_))\n    try:\n      l = []\n      for ch in filter.filter(contents[i]):\n        l.append(ch)\n      print(' '.join(l), file=out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/to-norm.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport gezi\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1])\n\ncontents = df[key].values \n\nfor i in range(len(contents)):\n  scontent = gezi.normalize(contents[i])\n  if scontent != contents[i]:\n    print('------------------', i)\n    print(contents[i])\n    print(scontent)\n    contents[i] = scontent\n\ndf[key] = contents\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare/to-simplify.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tqdm import tqdm\nimport pandas as pd\nimport gezi\nimport traceback \n\nimport six \nassert six.PY2, 'must using py2 env to do simplify'\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1], lineterminator='\\n')\n\ncontents = df[key].values \n\nnum_modified = 0\nnum_errs = 0\nfor i in tqdm(range(len(contents)), ascii=True):\n  try:\n    scontent = gezi.to_simplify(contents[i])\n  except Exception:\n    num_errs += 1\n    print(traceback.format_exc())\n    continue\n  if scontent != contents[i]:\n    # print('------------------', i)\n    # print(contents[i])\n    # print(scontent)\n    contents[i] = scontent\n    num_modified += 1\n\ndf[key] = contents\n\nprint('modify ratio', num_modified / len(df))\nprint('num_errs', num_errs)\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/README.md",
    "content": "first sh ./gen-vocab.sh to get vocab.txt\n\nthen using like vocab-mincount.. to get vocab.5k.txt \nthen merge with all chars from vocab.txt using vocab-add-char.py to get vocab.5k.chars.txt this is used for word embedding train  \n\nthen for canyin and dianping\n\njust use ./gen-mix-seg-canyin.py  ./gen-char-seg-canyin.py ...\nnot use ./gen-seg-canyin.py for this project for we do not want to consider more words not used here  \n\ndo also for dianping and train/valid/test data  \n\nwe will use all these data as word embedding pretrain   \n\nsh ./gen-vocab-v2.sh will use simple just basic seg   \nNOTICE this is depreceated for v2\njust use same vocab as v1, v2 only diff when gen tfrecord will not feed single and will has char embedding   \n\nsince v2 word + char concat prove to be better then seg basic + single so try to further try seperate word and char embedding as V3  \nthe script ./run-noemb-v3.sh is the same as ./run-noemb-v2.sh be sure you have char_vocab.txt under tfrecord dir    \n\n\n3 seg method\n1.char  char only \n2.word.feed  basic + digit + feed_sginle  only consider first 6k top freq word \n3.word.basic  basic  \n\n\nnow change to below process\n\n1. seg for train+valid+test   \n2. get vocab from train+valid+test   \n3. generate tfrecord using seg result and vocab   \n\nuse 4 seg method with below name  \n1. char  \n2. mix(jieba)\n3. word (jieba pos, should be word.jieba)  \n4. besg(word by phrase bseg should be word.besg)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/__init__.py",
    "content": "import projects.ai2018.sentiment.prepare.filter\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/config",
    "content": "data_dir=./mount/data/ai2018/sentiment/\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 14:44:21.024368\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('use_char', False, '')\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_integer('word_limit', 3000, '')\n#flags.DEFINE_bool('use_pos', False, '')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/embeddings/fasttext/run.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the BSD-style license found in the\n# LICENSE file in the root directory of this source tree. An additional grant\n# of patent rights can be found in the PATENTS file in the same directory.\n#\n\nRESULTDIR=./\nDATADIR=./\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nmake\n\n./fasttext skipgram -input \"${DATADIR}\"/text -output \"${RESULTDIR}\"/text -lr 0.025 -dim 300 \\\n  -ws 5 -epoch 10 -minCount 20 -neg 5 -loss ns -bucket 2000000 \\\n  -minn 2 -maxn 3 -thread 4 -t 1e-4 -lrUpdateRate 100\n\ncut -f 1,2 \"${DATADIR}\"/rw/rw.txt | awk '{print tolower($0)}' | tr '\\t' '\\n' > \"${DATADIR}\"/queries.txt\n\ncat \"${DATADIR}\"/queries.txt | ./fasttext print-word-vectors \"${RESULTDIR}\"/text.bin > \"${RESULTDIR}\"/vectors.txt\n\npython eval.py -m \"${RESULTDIR}\"/vectors.txt -d \"${DATADIR}\"/rw/rw.txt\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/embeddings/glove/run.sh",
    "content": "#!/bin/bash\nset -e\n\n# Makes programs, downloads sample data, trains a GloVe model, and then evaluates it.\n# One optional argument can specify the language used for eval script: matlab, octave or [default] python\n\nmake\n\n# 8 iter nan\nCORPUS=text\nVOCAB_FILE=vocab.txt\nCOOCCURRENCE_FILE=cooccurrence.bin\nCOOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin\nBUILDDIR=build\nSAVE_FILE=vectors\nVERBOSE=2\nMEMORY=4.0\nVOCAB_MIN_COUNT=20\nVECTOR_SIZE=300\nMAX_ITER=15\nWINDOW_SIZE=15\nBINARY=2\nNUM_THREADS=8\nX_MAX=10\n\necho \"$ $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\"\n$BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\necho \"$ $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\"\n$BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\necho \"$ $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\"\n$BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\necho \"$ $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\"\n$BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\n\necho \"$ python eval/python/evaluate.py\"\npython eval/python/evaluate.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/filter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   filter.py\n#        \\author   chenghuige  \n#          \\date   2018-09-14 21:55:52.069104\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_bool('simplify', False, '')\n\nimport sys \nimport os\n\nimport gezi\n\ndef filter_duplicate_space(text):\n  return ''.join([x for i, x in enumerate(text) if not (i < len(text) - 1 and not(x.strip()) and not(text[i + 1].strip()))])\n\n# # def translate_emotion(word):\n# #   dic = {\n# #     '🍲' : '火锅'，\n# #     '🌶️' : '辣'\n# #   } \n# #   if word in dic:\n# #     return dic[word]\n# #   return word\n\n# def translate_emotions(text):\n#   return text.replace('🍲', '火锅').replace('🌶️', '辣')\n\ndef filter(x):\n  x = x.strip('\"')\n  x = filter_duplicate_space(x)\n  x = gezi.remove_duplicate(x)\n  x = gezi.filter_quota(x).replace('\\r', '\\x01').replace('\\n', '\\x02').replace('<R>', '\\x01').replace('<N>', '\\x02').replace('\\t', ' ').replace(' ', '\\x03')\n\n  # # So here actually always fals as is done in preprocess using py2  \n  # if FLAGS.simplify:\n  #   # to lower, to simplify, to half\n  #   x = gezi.to_simplify(x)\n  #x = translate_emotions(x)\n  \n  # TODO if needed try to find case usefull or not　I think especally for sentiment not reading, lower is ok not loose important info like NIKE\n  x = x.lower()\n  return x\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/find-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-01 20:35:40.158875\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd \nfrom projects.ai2018.sentiment.prepare import filter\n\ndf = pd.read_csv('/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv')\n\nchars = set()\nfor comment in df['content']:\n  comment = filter.filter(comment)\n  for w in comment:\n    if w not in chars:\n      print(w)\n      chars.add(w)\n\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\nchars2 = [x.upper() for x in chars]\nchars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-canyin.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./raw_comment_v2.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['c{}'.format(i) for i in range(len(df))]\ncontents = df['content'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\nlabels = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['score']\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -2\n  labels.append(label)\n  \ndf2['others_overall_experience'] = labels\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./canyin.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-canyin.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-content.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-content.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 10:37:16.658519\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfiles = [\n         './mount/data/ai2018/sentiment/train.csv', \n         './mount/data/ai2018/sentiment/valid.csv', \n         './mount/data/ai2018/sentiment/test.csv'\n        ]\n            \n\nimport pandas as pd\nimport filter\n\nfor infile in files:\n  df = pd.read_csv(infile)\n\n  for row in df.iterrows():\n    content = filter.filter(row[1][1])\n    print(content)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-dianping.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./ratings.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['d{}'.format(i) for i in range(len(df))]\ncontents = df['comment'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\ndef score2class(score):\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -1\n  return label  \n\nlabels = []\nlabels_env = []\nlabels_flavor = []\nlabels_service = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['rating']\n  score_env = row['rating_env']\n  score_flavor = row['rating_flavor']\n  score_service = row['rating_service']\n\n  labels.append(score2class(score))\n  labels_env.append(score2class(score_env))\n  labels_flavor.append(score2class(score_flavor))\n  labels_service.append(score2class(score_service))\n\n  \ndf2['others_overall_experience'] = labels\ndf2['environment_decoration'] = labels_env\ndf2['dish_taste'] = labels_flavor\ndf2['service_waiters_attitude'] = labels_service\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./dianping.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-dianping.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-lm-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/my-embedding/Glove-sentiment-jieba/valid', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft/vocab.txt', 'vocabulary txt file')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_string('source', 'dianping', 'dianping or baike or zhidao or zhihu')\nflags.DEFINE_integer('max_sentence_len', 20, '')\nflags.DEFINE_string('tfrecord_dir', 'tfrecord', '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\nvocab = None\nchar_vocab = None\n\ndef build_features(file_):\n  if not os.path.isfile(file_):\n    return \n\n  file_name = os.path.basename(file_)\n  assert os.path.isdir(FLAGS.input)\n  mode = 'train' if 'train' in FLAGS.input else 'valid'\n  dir_ = os.path.dirname(os.path.dirname(FLAGS.input))\n  out_file = os.path.join(dir_ , '{}/{}/{}.record'.format(FLAGS.tfrecord_dir, mode, file_name))\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  \n  print('infile', file_, 'out_file', out_file)\n\n  # if os.path.exists(out_file):\n  #   return\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for line in tqdm(open(file_), total=1e6, ascii=True):\n      try:\n        line = line.rstrip('\\n')\n        line = filter.filter(line)\n        words = line.split(' ')\n        words = gezi.add_start_end(words)\n        words_list = gezi.break_sentence(words, FLAGS.max_sentence_len)\n        for words in words_list:\n          content = ' '.join(words)\n          content_ids = [vocab.id(x) for x in words]\n\n          if len(content_ids) > max_len:\n            max_len = len(content_ids)\n            print('max_len', max_len)\n\n          if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n            print('{} {} {}'.format(id, len(content_ids), content_ori))\n\n          content_ids = content_ids[:FLAGS.word_limit]\n          words = words[:FLAGS.word_limit]\n\n          # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode\n          if FLAGS.use_char:\n            chars = [list(word) for word in words]\n            char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n            \n            vocab_ = char_vocab if char_vocab else vocab\n\n            for i, token in enumerate(chars):\n              for j, ch in enumerate(token):\n                if j == FLAGS.char_limit:\n                  break\n                char_ids[i, j] = vocab_.id(ch)\n\n            char_ids = list(char_ids.reshape(-1))\n          else:\n            char_ids = [0]\n\n          feature = {\n                      'content':  melt.int64_feature(content_ids),\n                      'content_str': melt.bytes_feature(content), \n                      'char': melt.int64_feature(char_ids),\n                      'source': melt.bytes_feature(FLAGS.source), \n                    }\n\n          # TODO currenlty not get exact info wether show 1 image or 3 ...\n          record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n          writer.write(record)\n          num += 1\n          global counter\n          with counter.get_lock():\n            counter.value += 1\n          global total_words\n          with total_words.get_lock():\n            total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\ndef main(_):  \n  FLAGS.word_limit = 2000\n  global vocab, char_vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_)\n  print('vocab file', FLAGS.vocab_, 'vocab size', vocab.size())\n  if FLAGS.use_char:\n    char_vocab = gezi.Vocabulary(FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt'))\n\n  files = glob.glob(FLAGS.input + '/*') \n  pool = multiprocessing.Pool(multiprocessing.cpu_count())\n  pool.map(build_features, files)\n  pool.close()\n  pool.join()\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  mode = 'train' if 'train' in FLAGS.input else 'valid'\n  dir_ = os.path.dirname(os.path.dirname(FLAGS.input))\n  os.system('mkdir -p %s/%s/%s' % (dir_, FLAGS.tfrecord_dir, mode))\n  out_file = os.path.join(dir_, '{}/{}/num_records.txt'.format(FLAGS.tfrecord_dir, mode))\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-mix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-mix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-10-23 06:48:14.182012\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nvocab_file = sys.argv[1] \nchar_vocab_file = sys.argv[2]\nnum_words = int(sys.argv[3]) \n\nwords = set()\nfor i, line in enumerate(open(vocab_file)):\n  if i == num_words:\n    break\n  word, count = line.rstrip('\\n').split('\\t')\n\n  words.add(word)\n  print(word, count, sep='\\t')\n\nfor line in open(char_vocab_file):\n  ch, count = line.rstrip('\\n').split('\\t')\n  if ch not in words:\n    print(ch, count, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/sentiment/valid.csv', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_integer('num_records_', 7, '10 or 5?')\nflags.DEFINE_integer('start_index', 0, 'set it to 1 if you have valid file which you want to put in train as fold 0')\nflags.DEFINE_bool('use_fold', True, '')\nflags.DEFINE_bool('augument', False, '')\nflags.DEFINE_string('mode', None, '')\nflags.DEFINE_string('mode_', None, '')\nflags.DEFINE_bool('ignore_start_end', False, 'If you have not remove start and end quota before,you can filter here')\nflags.DEFINE_bool('add_start_end_', True, '')\nflags.DEFINE_bool('has_position', False, '')\nflags.DEFINE_bool('fixed_vocab', False, '')\nflags.DEFINE_string('start_mark', '<S>', '')\nflags.DEFINE_string('end_mark', '</S>', '')\nflags.DEFINE_string('unk_word', '<UNK>', '')\nflags.DEFINE_bool('word_only', False, '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\ndf = None\n\nvocab = None\nchar_vocab = None\npos_vocab = None\nner_vocab = None\n\nseg_result = None\npos_result = None\nner_result = None\n\ndef get_mode(path):\n  mode = 'train'\n  if 'train' in path:\n    mode ='train'\n  elif 'valid' in path:\n    mode = 'train'\n  elif 'test' in path:\n    mode = 'test'\n  elif '.pm' in path:\n    mode = 'pm'\n  elif 'trans' in path:\n    mode = 'trans' \n  elif 'deform' in path:\n    mode = 'deform'\n  elif 'canyin' in path:\n    mode = 'canyin'\n  elif 'dianping' in path:\n    mode = 'dianping'\n  if FLAGS.augument:\n    mode = 'aug.' + mode\n  if FLAGS.mode:\n    mode = FLAGS.mode\n  return mode\n\ndef build_features(index):\n  mode = get_mode(FLAGS.input)\n\n  start_index = FLAGS.start_index\n\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/{1}.record'.format(mode, index + start_index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(df)\n  num_records = FLAGS.num_records_ \n  if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n    num_records = 1\n  start, end = gezi.get_fold(total, num_records, index)\n\n  print('total', total, 'infile', FLAGS.input, 'out_file', out_file)\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for i in tqdm(range(start, end), ascii=True):\n      try:\n        #row = df.iloc[i]\n        row = df[i]\n        id = str(row[0])\n\n        if seg_result:\n          if id not in seg_result:\n            print('id %s ot found in seg_result' % id)\n            continue\n          words = seg_result[id]\n          if FLAGS.add_start_end_:\n            words = gezi.add_start_end(words, FLAGS.start_mark, FLAGS.end_mark)\n        if pos_result:\n          pos = pos_result[id]\n          if FLAGS.add_start_end_:\n            pos = gezi.add_start_end(pos)\n        if ner_result:\n          ner = ner_result[id]\n          if FLAGS.add_start_end_:\n            ner = gezi.add_start_end(ner)\n\n        if start_index > 0:\n          id == 't' + id\n  \n        content = row[1] \n        content_ori = content\n        content = filter.filter(content)\n\n        #label = list(row[2:])\n        label = [-2] * 20\n        \n        #label = [x + 2 for x in label]\n        #num_labels = len(label)\n\n        if not seg_result:\n          content_ids, words = text2ids_(content, preprocess=False, return_words=True)\n          assert len(content_ids) == len(words)\n        else:\n          content_ids = [vocab.id(x) for x in words]\n          #print(words, content_ids)\n          #exit(0)\n\n        if len(content_ids) > max_len:\n          max_len = len(content_ids)\n          print('max_len', max_len)\n\n        if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n          print('{} {} {}'.format(id, len(content_ids), content_ori))\n        #if len(content_ids) > FLAGS.word_limit:\n        #  print(id, content)\n        #  if mode not in ['test', 'valid']:\n        #    continue \n\n        #if len(content_ids) < 5 and mode not in ['test', 'valid']:\n        #  continue\n\n        content_ids = content_ids[:FLAGS.word_limit]\n        words = words[:FLAGS.word_limit]\n\n        # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode\n        if FLAGS.use_char:\n          chars = [list(word) for word in words]\n          char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n          \n          vocab_ = char_vocab if char_vocab else vocab\n\n          for i, token in enumerate(chars):\n            for j, ch in enumerate(token):\n              if j == FLAGS.char_limit:\n                break\n              char_ids[i, j] = vocab_.id(ch)\n\n          char_ids = list(char_ids.reshape(-1))\n          if np.sum(char_ids) == 0:\n            print('------------------------bad id', id)\n            print(content_ids)\n            print(words)\n            exit(0)\n        else:\n          char_ids = [0]\n\n        if pos_vocab:\n          assert pos\n          pos = pos[:FLAGS.word_limit]\n          pos_ids = [pos_vocab.id(x) for x in pos]\n        else:\n          pos_ids = [0]\n\n        if ner_vocab:\n          assert ner \n          if pos_vocab:\n            assert len(pos) == len(ner)         \n          ner = ner[:FLAGS.word_limit]\n\n          ner_ids = [ner_vocab.id(x) for x in ner]\n        else:\n          ner_ids = [0]\n\n        wlen = [len(word) for word in words]\n\n        feature = {\n                    'id': melt.bytes_feature(id),\n                    'label': melt.int64_feature(label),\n                    'content':  melt.int64_feature(content_ids),\n                    'content_str': melt.bytes_feature(content_ori), \n                    'char': melt.int64_feature(char_ids),\n                    'pos': melt.int64_feature(pos_ids), # might also be postion info for mix seg\n                    'ner': melt.int64_feature(ner_ids),\n                    'wlen': melt.int64_feature(wlen),\n                    'source': melt.bytes_feature(mode), \n                  }\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        writer.write(record)\n        num += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\n\ndef main(_):  \n  mode = get_mode(FLAGS.input)\n\n  assert FLAGS.use_fold\n  #text2ids.init(FLAGS.vocab_)\n  global vocab, char_vocab, pos_vocab, ner_vocab, seg_result, pos_result, ner_result\n  #vocab = text2ids.vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_, fixed=FLAGS.fixed_vocab, unk_word=FLAGS.unk_word)\n  print('vocab size:', vocab.size())\n  char_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt')\n  if os.path.exists(char_vocab_file):\n    char_vocab = Vocabulary(char_vocab_file)\n    print('char vocab size:', char_vocab.size())\n  pos_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'pos_vocab.txt')\n  if os.path.exists(pos_vocab_file):\n    pos_vocab = Vocabulary(pos_vocab_file)\n    print('pos vocab size:', pos_vocab.size())\n  ner_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'ner_vocab.txt')\n  if os.path.exists(ner_vocab_file):\n    ner_vocab = Vocabulary(ner_vocab_file)\n    print('ner vocab size:', ner_vocab.size())\n  \n  mode_ = 'train'\n  if 'valid' in FLAGS.input:\n    mode_ = 'valid'\n  elif 'test' in FLAGS.input:\n    mode_ = 'test'\n  else:\n    assert 'train' in FLAGS.input\n\n  if FLAGS.augument:\n    mode_ = 'aug.' + mode_\n\n  if FLAGS.mode_:\n    mode_ = FLAGS.mode_\n\n  seg_file = FLAGS.vocab_.replace('vocab.txt', '%s.seg.txt' % mode_)\n  seg_result = {}\n  if os.path.exists(seg_file):\n    print('seg or seg_pos exits:', seg_file)\n    pos_result = {}\n    for line in open(seg_file):\n      id, segs = line.rstrip('\\n').split('\\t', 1)\n      segs = segs.split('\\x09')\n      if FLAGS.ignore_start_end:\n        segs = segs[1:-1]\n      if '|' in segs[0] and not FLAGS.word_only:\n        l = [x.rsplit('|', 1) for x in segs]\n        segs, pos = list(zip(*l))\n        pos_result[id] = pos\n      seg_result[id] = segs\n\n  seg_done = True if seg_result else False\n  ner_file = FLAGS.vocab_.replace('vocab.txt', '%s.ner.txt' % mode_)\n  ner_result = {}\n  if os.path.exists(ner_file):\n    print('seg_ner exists:', ner_file)\n    for line in open(ner_file):\n      id, segs = line.rstrip('\\n').split('\\t', 1)\n      segs = segs.split('\\x09')\n      if FLAGS.ignore_start_end:\n        segs = segs[1:-1]\n      if '|' in segs[0]:\n        l = [x.split('|') for x in segs]\n        segs, ner = list(zip(*l))\n      if not seg_done:      \n        seg_result[id] = segs\n      ner_result[id] = ner\n\n  print('len(seg_result)', len(seg_result))\n  print('len(ner_result)', len(ner_result))\n\n  # print('to_lower:', FLAGS.to_lower, 'feed_single:', FLAGS.feed_single, 'feed_single_en:', FLAGS.feed_single_en, 'seg_method', FLAGS.seg_method)\n  # print(text2ids.ids2text(text2ids_('傻逼脑残B')))\n  # print(text2ids.ids2text(text2ids_('喜欢玩孙尚香的加我好友：2948291976')))\n\n  global df\n  #df = pd.read_csv(FLAGS.input, lineterminator='\\n')\n  df = []\n  for line in open(FLAGS.input):\n    df.append(line.rstrip('\\n').split('\\t', 1))\n  \n  pool = multiprocessing.Pool()\n\n  if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n    FLAGS.num_records_ = 1\n\n  print('num records file to gen', FLAGS.num_records_)\n\n  #FLAGS.num_records_ = 1\n\n  pool.map(build_features, range(FLAGS.num_records_))\n  pool.close()\n  pool.join()\n\n  # for i in range(FLAGS.num_records_):\n  #   build_features(i)\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-test.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-train.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-trans.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-trans.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 22:43:06.305917\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\ndf = pd.read_csv('./train.csv')\n\ncomments = {}\nfor line in open('./train.en.txt'):\n  try:\n    id, comment = line.rstrip().split('\\t')\n    comments[id] = comment\n  except Exception:\n    pass\n\nprint(len(comments))\n\nnum_modify = 0\nnum_bads = 0\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  id = row['id']\n  id = str(id)\n  if id in comments: \n    if len(comments[id].replace(' ', '')) < len(row['content'].replace(' ', '')) * 1.5 and len(comments[id].replace(' ', '')) > len(row['content'].replace(' ', '')) * 0.7:\n      df.loc[i,'content'] = comments[id]\n      num_modify += 1\n    else:\n      print('bad translate:', comments[id])\n      print('ori', row['content'])\n      num_bads += 1\n  \nprint(num_modify, num_bads)\ndf.to_csv('./trans.en.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-trans.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-valid.sh",
    "content": "python ./gen-records.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-vocab-v2.sh",
    "content": "python gen-content.py | python gen-vocab.py --seg_method='basic' --vocab_name='vocab.v2' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-vocab.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO could do segment parallel @TODO\nnow single thread... slow\n\"\"\"\n\nimport sys,os\n#os.environ['JIEBA_POS'] = '1'\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 0, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\", 0, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"add_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_boolean(\"save_count_info\", True, \"save count info to bin\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/ai2018/sentiment/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\nflags.DEFINE_string('seg_method', 'basic_single_all', '')\n\nassert FLAGS.most_common > 0 or FLAGS.min_count > 0\nassert FLAGS.seg_method\n\nimport traceback\n\nfrom gezi import WordCounter \n\ncounter = WordCounter(\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n#reload(sys)\n#sys.setdefaultencoding('utf8')\nimport numpy as np\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\nprint(segmentor, file=sys.stderr)\n\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\n\nlogging = gezi.logging\n\nlogging.init('/tmp')\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\nprint('min_count:', FLAGS.min_count, 'most_common:', FLAGS.most_common)\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  text = line.rstrip()\n  text = filter.filter(text)\n  try:\n    words = segmentor.Segment(text, FLAGS.seg_method)\n  except Exception:\n    print(num, '-----------fail', text)\n    print(traceback.format_exc())\n    continue\n  if num % 10000 == 0:\n    logging.info(text, '|'.join(words), len(words))\n  counter.add(START_WORD)\n  for word in words:\n    counter.add(word)\n    if word.isdigit():\n      counter.add('<NUM>')\n  counter.add(END_WORD)\n  num += 1\n\n  if num == FLAGS.max_lines:\n    break\n\ncounter.add(START_WORD)\n\nprint(FLAGS.out_dir, file=sys.stderr)\nvocab_name = FLAGS.vocab_name or 'vocab'\ncounter.save(FLAGS.out_dir + '/%s.txt' % vocab_name)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/gen-vocab.sh",
    "content": "python gen-content.py | python gen-vocab.py --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/sentiment/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/sentiment/vectors.txt', '')\nflags.DEFINE_integer('min_count', 20, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nflags.DEFINE_integer('max_words', 200000, '')\nflags.DEFINE_bool('add_additional', True, 'add additional words from embedding file, this is by default for word')\n\nflags.DEFINE_string('sort_by', 'count', '')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  print('emb', FLAGS.emb)\n  input_vocab = FLAGS.input_vocab\n  print('input_vocab', input_vocab)\n  dir_ = os.path.dirname(FLAGS.input_vocab)\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      try:\n        vector = list(map(float, array[-vec_size:]))\n      except Exception:\n        print(i, line)\n        continue\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      else:\n        embedding_dict[word.lower()] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  if FLAGS.sort_by == 'count':\n    print('sort by count')\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n  else:\n    print('sort by knowldege')\n    words_knowledge = []\n    emb_mat_knowledge = []\n    words_no_knowledge = []\n    emb_mat_no_knowledge = []\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat_knowledge.append(np.array(embedding_dict[word]))\n          words_knowledge.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat_no_knowledge.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words_no_knowledge.append(word)  \n        # elif FLAGS.type == 'scratch':\n        #   if count >= FLAGS.min_count:\n        #     if word in embedding_dict:\n        #       emb_mat.append(np.array(embedding_dict[word]))\n        #       words.append(word)  \n        #     else:\n        #       #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n        #       emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n        #       words.append(word)  \n        # elif FLAGS.type == 'only':\n        #   if word in embedding_dict:\n        #     emb_mat.append(np.array(embedding_dict[word]))\n        #     words.append(word)  \n\n    #if FLAGS.sort_by == 'knowledge':\n    words += words_no_knowledge\n    emb_mat += emb_mat_no_knowledge\n    words += words_knowledge\n    emb_mat += emb_mat_knowledge\n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  if FLAGS.add_additional:\n    for word in embedding_dict:\n      if word not in words_set:\n        words_set.add(word)\n        words.append(word)\n        emb_mat.append(np.array(embedding_dict[word]))\n        if len(words) > FLAGS.max_words:\n          break\n\n    print('num words after adding additional', len(words))\n\n  out_vocab = os.path.join(dir_, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  print('out_vocab', out_vocab)\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(dir_, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  print('out_mat', out_mat)\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/merge-vocabs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-vocabs.py\n#        \\author   chenghuige  \n#          \\date   2018-10-23 02:07:23.291646\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nm = {}\n\nfiles = sys.argv[1:]\nnum_files = len(files)\n\nprint('num_files', num_files, file=sys.stderr)\n\nfor file_ in files:\n  for line in open(file_):\n    word, count = line.rstrip('\\n').split('\\t', 1)\n    count = int(count)\n    if word not in m:\n      m[word] = count \n    else:\n      m[word] += count\n\nsorted_by_value = sorted(m.items(), key=lambda kv: -kv[1])\n\nfor key, val in sorted_by_value:\n  print(key, val, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/pre-mix-seg-v1.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   mix seg must have input vocab\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('name', None, '')\n\nimport sys,os\nimport numpy as np\n\nimport gezi\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\n# TODO bseg py2 not support if using melt ..\nfrom wenzheng.utils import text2ids\nfrom text2ids import text2ids as text2ids_ \n\ndef seg(id, text, out):\n  text = filter.filter(text)\n  _, words = text2ids_(text, return_words=True)\n  print(id, '\\x09'.join(words), sep='\\t', file=out)\n\ndef main(_):  \n  FLAGS.seg_method = 'basic_digit'\n  FLAGS.feed_single = True\n  FLAGS.feed_single_en = True\n  print('seg_method:', FLAGS.seg_method, file=sys.stderr)\n  print('feed_single:', FLAGS.feed_single, file=sys.stderr)\n  print('feed_single_en:', FLAGS.feed_single_en, file=sys.stderr)\n\n  text2ids.init(FLAGS.vocab)\n\n  counter = WordCounter(most_common=0, min_count=1)\n  vocab2 = ifile.replace('.csv', '.pos.mix.vocab')\n\n  assert FLAGS.vocab\n\n  ifile = sys.argv[1]\n  if not gezi.env_has('BSEG'):\n    ofile = ifile.replace('.csv', '.seg.mix.txt')\n  else:\n    ofile = ifile.replace('.csv', '.seg.bseg.mix.txt')\n\n  ids_set = set()\n  fm = 'w'\n  if os.path.exists(ofile):\n    fm = 'a'\n    for line in open(ofile):\n      ids_set.add(line.split('\\t')[0])\n\n  print('%s already done %d' % (ofile, len(ids_set)))\n\n  num_errs = 0\n  with open(ofile, fm) as out:\n    df = pd.read_csv(ifile, lineterminator='\\n')\n    contents = df['content'].values \n    ids = df['id'].values\n    for i in tqdm(range(len(df)), ascii=True):\n      if str(ids[i]) in ids_set:\n        continue\n      #if i != 2333:\n      #  continue\n      #print(gezi.cut(filter.filter(contents[i]), type_))\n      try:\n        seg(ids[i], contents[i], out, counter)\n      except Exception:\n        #print(traceback.format_exc())\n        num_errs += 1\n        continue\n      #exit(0)\n\n  counter.save(vocab2)\n  print('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/pre-mix-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   mix seg must have input vocab\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_string('vocab', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\n\nimport sys,os\n#os.environ['BSEG'] = '1'\n\nimport numpy as np\n\nimport gezi\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback \n\n#assert gezi.env_has('BSEG')\n\nimport six \nif gezi.env_has('BSEG'):\n  assert six.PY2\n\nvocab = None\n\ndef seg(id, text, out, counter):\n  text = filter.filter(text)\n  words = []\n  for i, word in enumerate(gezi.cut(text)):\n    counter.add(str(i))\n    if vocab.has(word) and not word.isdigit():\n      words.append('%s|%d' % (word, i))\n    else:\n      if six.PY2:\n        for ch in word.decode('utf8'):\n          words.append('%s|%d' % (ch.encode('utf8'), i))\n      else:\n        for ch in word:\n          words.append('%s|%d' % (ch, i))\n\n  if not FLAGS.for_pretrain:\n    print(id, '\\x09'.join(words), sep='\\t', file=out)\n  else:\n    print(' '.join([x.split('|')[0] for x in words]), file=out)\n\ndef main(_):  \n  # FLAGS.seg_method = 'basic_digit'\n  # FLAGS.feed_single = True\n  # FLAGS.feed_single_en = True\n  # print('seg_method:', FLAGS.seg_method, file=sys.stderr)\n  # print('feed_single:', FLAGS.feed_single, file=sys.stderr)\n  # print('feed_single_en:', FLAGS.feed_single_en, file=sys.stderr)\n\n  #assert FLAGS.vocab \n\n  global vocab \n  vocab = gezi.Vocabulary(FLAGS.vocab)\n\n  ifile = sys.argv[1]\n  if not gezi.env_has('BSEG'):\n    ofile = ifile.replace('.csv', '.seg.jieba.mix.txt')\n  else:\n    ofile = ifile.replace('.csv', '.seg.bseg.mix.txt')\n\n\n  counter = WordCounter(most_common=0, min_count=1)\n  vocab2 = ifile.replace('.csv', '.pos.mix.vocab')\n\n\n  ids_set = set()\n  fm = 'w'\n  if os.path.exists(ofile):\n    fm = 'a'\n    for line in open(ofile):\n      ids_set.add(line.split('\\t')[0])\n\n  print('%s already done %d' % (ofile, len(ids_set)))\n\n  num_errs = 0\n  with open(ofile, fm) as out:\n    df = pd.read_csv(ifile, lineterminator='\\n')\n    contents = df['content'].values \n    ids = df['id'].values\n    for i in tqdm(range(len(df)), ascii=True):\n      #if str(ids[i]) in ids_set:\n      #  continue\n      #if i != 2333:\n      #  continue\n      #print(gezi.cut(filter.filter(contents[i]), type_))\n      try:\n        seg(ids[i], contents[i], out, counter)\n      except Exception:\n        if num_errs == 0:\n          print(traceback.format_exc())\n        num_errs += 1\n        continue\n      #exit(0)\n\n  counter.save(vocab2)\n  print('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/pre-seg-bert.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\nimport pandas as pd\n\nfrom tqdm import tqdm\nimport traceback\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom third.bert import tokenization\n\ntokenizer = tokenization.BasicTokenizer()\n\ndef seg(id, text, out):\n  text = filter.filter(text)\n  words = tokenizer.tokenize(text)\n  print(id, '\\x09'.join(words), sep='\\t', file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.csv', '.seg.%s.txt' % FLAGS.name)\n\nnum_errs = 0\nwith open(ofile, 'w') as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    try:\n      seg(ids[i], contents[i], out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/pre-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport six\nif FLAGS.seg_method == 'char':\n  assert not six.PY2\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\ncounter = WordCounter(most_common=0, min_count=1)\ncounter2 = WordCounter(most_common=0, min_count=1)\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\nif gezi.env_has('SENTENCE_PIECE'):\n  assert FLAGS.sp_path \n  gezi.segment.init_sp(FLAGS.sp_path)\n\ndef seg(id, text, out, type):\n  text = filter.filter(text)\n  counter.add(START_WORD)\n  counter.add(END_WORD)\n  l = gezi.cut(text, type)\n\n  if type != 'word':\n    for x, y in l:\n      counter.add(x)\n      counter2.add(y)\n    words = ['%s|%s' % (x, y) for x,y in l]\n  else:\n    if FLAGS.seg_method == 'char':\n      l2 = []\n      for i, w in enumerate(l):\n        for ch in w:\n          counter.add(ch)\n          counter2.add(str(i))\n          l2.append((ch, i))\n      words =  ['%s|%d' % (x, y) for x,y in l2]\n    else:\n      words = l\n      for w in words:\n        counter.add(w)\n\n  if not FLAGS.for_pretrain:\n    print(id, '\\x09'.join(words), sep='\\t', file=out)\n  else:\n    print(' '.join([x.split('|')[0] for x in words]), file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.csv', '.seg.%s.txt' % FLAGS.name)\nvocab = ifile.replace('.csv', '.seg.%s.vocab' % FLAGS.name)\ntype_ = 'word'\n\nvocab2 = None\nif 'pos' in FLAGS.name or FLAGS.seg_method == 'char':\n  vocab2 = ifile.replace('.csv', '.pos.%s.vocab' % FLAGS.name)\n  if 'pos' in FLAGS.name:\n    type_ = 'pos'\nelif 'ner' in FLAGS.name:\n  vocab2 = ifile.replace('.csv', '.ner.%s.vocab' % FLAGS.name)\n  type_ = 'ner'\n\nids_set = set()\nfm = 'w'\nif os.path.exists(ofile):\n  fm = 'a'\n  for line in open(ofile):\n    ids_set.add(line.split('\\t')[0])\n\nprint('%s already done %d' % (ofile, len(ids_set)))\n\nnum_errs = 0\nwith open(ofile, fm) as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    #if str(ids[i]) in ids_set:\n    #  continue\n    #if i != 2333:\n    #  continue\n    #print(gezi.cut(filter.filter(contents[i]), type_))\n    try:\n      seg(ids[i], contents[i], out, type=type_)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\ncounter.save(vocab)\nif vocab2:\n  counter2.save(vocab2)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-char-bert.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.bert/\nsh ./run-noemb-char-bert.sh $dir/vocab.txt\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-char-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.ft\nemb=./mount/data/my-embedding/fastText-sentiment-char/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-char-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-char/vectors.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-char.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-char-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/char.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/valid/ --use_char=0 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.len256\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/train/ --use_char=0 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.len256\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-char.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/char.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/valid/ --use_char=0 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/train/ --use_char=0 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-jieba-mix-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/mix.jieba.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba-mix/corpus/valid/ --use_char=1 --max_sentence_len=256 --tfrecord_dir tfrecord.len256 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba-mix/corpus/train/ --use_char=1 --max_sentence_len=256 --tfrecord_dir tfrecord.len256 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-mix.sh",
    "content": ""
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-baike-len20.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/baidu/corpus.jieba/train/ --use_char=1 --source=baike --max_sentence_len=20 --tfrecord_dir tfrecord.len20\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-baike.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/baidu/corpus.jieba/train/ --use_char=1 --source=baike --max_sentence_len=40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-bseg-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-bseg-ner-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-bseg-ner2-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-jieba-tx-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.tx/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus.tx/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus.tx/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-len40.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-sp10w-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-sp10w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/valid/ --use_char=1 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/train/ --use_char=1 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-sp1w-baike.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/baidu/corpus.sp1w/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --source=baike\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-sp1w-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.256\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.256\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word-sp1w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-lm-word.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/valid/ --use_char=1\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/train/ --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-bseg-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.ft\nemb=./mount/data/my-embedding/fastText-sentiment-bseg-mix/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-bseg-glove-10epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove.10epoch\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix-10epoch/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-bseg-glove-40epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove.40epoch\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix-40epoch/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-bseg-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-bseg-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-mix/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.jieba.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba-mix/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-mix-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb-aug.sh",
    "content": "vocab=$1\nname=$2\n#python ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.valid --mode aug.$name.train\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.test --mode aug.$name.test\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.train --mode aug.$name.train\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb-char-bert.sh",
    "content": "vocab=$1\n#python ./gen-records.py --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]'\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]'\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]'\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb-char.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb-mix-charaug.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.valid --mode aug.char.train\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.test --mode aug.char.test\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.train --mode aug.char.train\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb-mix.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb-wordonly.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/sent/test.seg.txt --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --word_only=1\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-noemb.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ft\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-ft-knowldege.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft.knowledge/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --sort_by=knowledge\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-ft2.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft2/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-ft3.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft3/\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-glove-10epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb= ./mount/data/my-embedding/GloVe-sentiment-bseg/ /vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-glove-40epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-ner-jiebapre-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.jiebapre.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-basic-pos/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-subner-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.subner.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-bseg-subner-jiebapre-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.subner.jiebapre.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-basic-pos/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-jieba-ft-short.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft.short\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nvocab=$dir/vocab.txt\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.short.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --word_only=1\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-jieba-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-jieba/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-jieba-pos-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.pos.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-jieba-pos-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.pos.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-jieba/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-jieba-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp10w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-10w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp10w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp10w-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp1w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-1w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp1w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp1w-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp20w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-20w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-sp20w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-stanford-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft\nemb=./mount/data/my-embedding/fastText-sentiment-stanford/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-stanford-ft2.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft2\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-stanford-ft3.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft3\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-stanford-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-stanford/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-stanford-tx-ftchar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.tx.ftchar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-stanford-tx-glovechar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.tx.glovechar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-tx-ftchar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.tx.ftchar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run-word-tx-glovechar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.tx.glovechar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/run.sh",
    "content": "sh ./run-char-ft.sh  \nsh ./run-char-glove.sh  \nsh ./run-word-jieba-ft.sh \nsh ./run-word-jieba-glove.sh\nsh ./run-word-bseg-ft.sh \nsh ./run-word-bseg-glove.sh\nsh ./run-word-bseg-ner-ft.sh\nsh ./run-word-bseg-ner-glove.sh \nsh ./run-word-sp10w-ft.sh\nsh ./run-word-sp10w-glove.sh \nsh ./run-word-sp1w-ft.sh\nsh ./run-word-sp1w-glove.sh \nsh ./run-mix-jieba-ft.sh \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('feed_single', False, '')\nflags.DEFINE_bool('to_lower', True, '')\n\nimport sys \nimport os\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \n# TODO check 2018.10.01 add multi grid\ndef text2ids(text, preprocess=True, return_words=False):\n  wenzheng.utils.text2ids.init()\n  if preprocess:\n    text = filter.filter(text)\n  return to_ids(text, \n                seg_method=FLAGS.seg_method, \n                feed_single=FLAGS.feed_single,\n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                multi_grid=False,\n                pad=False,\n                return_words=return_words)\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/tmp",
    "content": "2018-10-19 10:42:16 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 10:42:54 0:00:40 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 10:43:12 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 10:44:32 0:01:21 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 10:45:45 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 10:50:15 0:04:33 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍|山|而|建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有|嚼|头|。|\u0002|鸵心|拼|鸵肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌|哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 384\n2018-10-19 15:03:14 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 15:06:18 0:03:06 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍|山|而|建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有|嚼|头|。|\u0002|鸵心|拼|鸵肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌|哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 384\n2018-10-19 15:09:20 0:06:08 \"伊势丹楼下，路过很多次都没有进来～终于有机会来尝一尝了大阪煎饼了！店面比较小，放着日本名族歌曲，日本小店的感觉～老板是个亲切的日本大叔～\u0002【章鱼小丸子】很q弹！真的是我吃过最q弹的小丸子！里面很明显有一块有嚼劲的章鱼肉～\u0002【海鲜大阪煎饼】味道很好，蛋皮里面包的虾，扇贝肉，鸡蛋，还有些菜～加了奶酪，多加十元，但是感觉意义不大。\u0002【海鲜大阪烧】这个是送错餐送给我们吃的～里面只有虾，感觉没得煎饼好吃，价格比煎饼便宜。\u0002【乌冬面】很清淡，但是汤很有味道～面有嚼劲～\" \"|伊|势|丹|楼|下|，|路|过|很|多|次|都|没|有|进|来|～|终|于|有|机|会|来|尝|一|尝|了|大|阪|煎|饼|了|！|店|面|比|较|小|，|放|着|日|本|名|族|歌|曲|，|日|本|小|店|的|感|觉|～|老|板|是|个|亲|切|的|日|本|大|叔|～|\u0002|【|章|鱼|小|丸|子|】|很|q|弹|！|真|的|是|我|吃|过|最|q|弹|的|小|丸|子|！|里|面|很|明|显|有|一|块|有|嚼|劲|的|章|鱼|肉|～|\u0002|【|海|鲜|大|阪|煎|饼|】|味|道|很|好|，|蛋|皮|里|面|包|的|虾|，|扇|贝|肉|，|鸡|蛋|，|还|有|些|菜|～|加|了|奶|酪|，|多|加|十|元|，|但|是|感|觉|意|义|不|大|。|\u0002|【|海|鲜|大|阪|烧|】|这|个|是|送|错|餐|送|给|我|们|吃|的|～|里|面|只|有|虾|，|感|觉|没|得|煎|饼|好|吃|，|价|格|比|煎|饼|便|宜|。|\u0002|【|乌|冬|面|】|很|清|淡|，|但|是|汤|很|有|味|道|～|面|有|嚼|劲|～|\"|\"|伊势丹|楼下|，|路过|很|多次|都|没有|进来|～|终于|有|机会|来|尝一尝|了|大阪|煎饼|了|！|店面|比较|小|，|放|着|日本|名族|歌曲|，|日本|小店|的|感觉|～|老板|是|个|亲切|的|日本|大叔|～|\u0002|【|章鱼|小丸子|】|很|q|弹|！|真的|是|我|吃|过|最|q|弹|的|小丸子|！|里面|很|明显|有|一块|有|嚼|劲|的|章|鱼肉|～|\u0002|【|海鲜|大阪|煎饼|】|味道|很|好|，|蛋|皮里|面包|的|虾|，|扇贝|肉|，|鸡蛋|，|还|有些|菜|～|加|了|奶酪|，|多|加|十元|，|但是|感觉|意义|不|大|。|\u0002|【|海鲜|大阪|烧|】|这个|是|送错|餐|送给|我们|吃|的|～|里面|只有|虾|，|感觉|没|得|煎饼|好吃|，|价格比|煎饼|便宜|。|\u0002|【|乌冬|面|】|很|清淡|，|但是|汤|很|有|味道|～|面有|嚼|劲|～|\" 395\n2018-10-19 15:12:22 0:09:09 \"一直很喜欢这家的pasta，以前都是在美罗城楼下吃的，感觉都很好还一直和别人推荐，周日下雨和老公本来想去太兴的没想到关门就到镰仓了，这里地方还算比较大，一进去浓浓的奶香味很舒服，坐下来开始点单，新品出来还比较多，不过还是点了pasta。\u0002畅食的面包必须点单后才给你上ok没问题，我点了脆虾番茄奶油意面52元，虾大概有6-8个还算可以，不过意面不多，最重要的是这里的意面能叫意面吗？烂的比烂糊面还烂，加上烧的浓稠的的酱汁要死了就是一坨面粉，完全没有口味可言，老公点的扇贝配鲑鱼意面也是如此，面条都糊了，受不了，吃完胃就不舒服了。\u0002熏鲑鱼色拉还可以酱料调配的比较爽口。\u0002畅食的面包真的没有以前好吃了，以前的羊角面包都是现烤热腾腾的，现在很多都是一起上，虽然味道还不错但是口感没有刚出炉的那么酥脆了。\u0002看来以后老公是不会再来了。\" \"|一|直|很|喜|欢|这|家|的|p|a|s|t|a|，|以|前|都|是|在|美|罗|城|楼|下|吃|的|，|感|觉|都|很|好|还|一|直|和|别|人|推|荐|，|周|日|下|雨|和|老|公|本|来|想|去|太|兴|的|没|想|到|关|门|就|到|镰|仓|了|，|这|里|地|方|还|算|比|较|大|，|一|进|去|浓|浓|的|奶|香|味|很|舒|服|，|坐|下|来|开|始|点|单|，|新|品|出|来|还|比|较|多|，|不|过|还|是|点|了|p|a|s|t|a|。|\u0002|畅|食|的|面|包|必|须|点|单|后|才|给|你|上|o|k|没|问|题|，|我|点|了|脆|虾|番|茄|奶|油|意|面|5|2|元|，|虾|大|概|有|6|-|8|个|还|算|可|以|，|不|过|意|面|不|多|，|最|重|要|的|是|这|里|的|意|面|能|叫|意|面|吗|？|烂|的|比|烂|糊|面|还|烂|，|加|上|烧|的|浓|稠|的|的|酱|汁|要|死|了|就|是|一|坨|面|粉|，|完|全|没|有|口|味|可|言|，|老|公|点|的|扇|贝|配|鲑|鱼|意|面|也|是|如|此|，|面|条|都|糊|了|，|受|不|了|，|吃|完|胃|就|不|舒|服|了|。|\u0002|熏|鲑|鱼|色|拉|还|可|以|酱|料|调|配|的|比|较|爽|口|。|\u0002|畅|食|的|面|包|真|的|没|有|以|前|好|吃|了|，|以|前|的|羊|角|面|包|都|是|现|烤|热|腾|腾|的|，|现|在|很|多|都|是|一|起|上|，|虽|然|味|道|还|不|错|但|是|口|感|没|有|刚|出|炉|的|那|么|酥|脆|了|。|\u0002|看|来|以|后|老|公|是|不|会|再|来|了|。|\"|\"|一直|很|喜欢|这家|的|pasta|，|以前|都|是|在|美罗城|楼下|吃|的|，|感觉|都|很|好|还|一直|和|别人|推荐|，|周日|下雨|和|老公|本来|想|去|太兴|的|没想到|关门|就|到|镰|仓|了|，|这里|地方|还|算|比较|大|，|一|进去|浓浓的|奶|香味|很|舒服|，|坐下|来|开始|点|单|，|新品|出来|还|比较|多|，|不过|还是|点|了|pasta|。|\u0002|畅食|的|面包|必须|点|单后|才|给|你|上|ok|没|问题|，|我|点|了|脆|虾|番茄|奶油|意面|52|元|，|虾|大概|有|6|-|8|个|还算|可以|，|不过意|面不多|，|最|重要|的|是|这里|的|意面|能|叫|意面|吗|？|烂|的|比|烂糊|面|还|烂|，|加上|烧|的|浓稠|的|的|酱汁|要死|了|就是|一|坨|面粉|，|完全|没有|口味|可言|，|老公|点|的|扇贝|配|鲑鱼|意面|也|是|如此|，|面条|都|糊|了|，|受不了|，|吃|完|胃|就|不|舒服|了|。|\u0002|熏|鲑鱼|色拉|还|可以|酱料|调配|的|比较|爽口|。|\u0002|畅食|的|面包|真的|没有|以前|好吃|了|，|以前|的|羊角|面包|都|是现|烤|热腾腾|的|，|现在|很多|都|是|一起|上|，|虽然|味道|还|不错|但是|口感|没有|刚|出炉|的|那么|酥脆|了|。|\u0002|看来|以后|老公|是|不会|再|来|了|。|\" 608\n2018-10-19 15:15:26 0:12:13 \"以前对烧烤都没感觉，这次抽中大众的霸王餐就去吃了。吃下来意犹未尽的感觉，很好吃！妈妈也赞不绝口。我们没点羊排\u0003单点的烤串\u0003还有凉皮\u0003做的很好有劲\u0003微甜\u0003羊杂汤\u0003里面料很足\u0003最后都没吃完\u0003还有羊肉面\u0003汤里放了胡椒粉\u0003面条很有嚼劲\u0003我喜欢的\u0003凉拌海带也不错\u0003店里烤串价格不贵\u0003而且分量很实在！\u0003羊肉串3块\u0003羊脆骨4块\u0003考鸡翅个头满大的两个也就8块\u0003明虾也非常好吃\u00032块一串\u0003店家服务态度也很好的\u0003我们三个大人一个小孩吃了202\u0003我去结帐\u0003老板说2块钱就算了\u0003够爽气\u0003真是霸王餐了\u0003吃饱喝足\u0003还打包\u0003一分钱都没花！以后要吃烤串一定还去\u0003就是如果能出团购代金券\u0003就更好拉\" \"|以|前|对|烧|烤|都|没|感|觉|，|这|次|抽|中|大|众|的|霸|王|餐|就|去|吃|了|。|吃|下|来|意|犹|未|尽|的|感|觉|，|很|好|吃|！|妈|妈|也|赞|不|绝|口|。|我|们|没|点|羊|排|\u0003|单|点|的|烤|串|\u0003|还|有|凉|皮|\u0003|做|的|很|好|有|劲|\u0003|微|甜|\u0003|羊|杂|汤|\u0003|里|面|料|很|足|\u0003|最|后|都|没|吃|完|\u0003|还|有|羊|肉|面|\u0003|汤|里|放|了|胡|椒|粉|\u0003|面|条|很|有|嚼|劲|\u0003|我|喜|欢|的|\u0003|凉|拌|海|带|也|不|错|\u0003|店|里|烤|串|价|格|不|贵|\u0003|而|且|分|量|很|实|在|！|\u0003|羊|肉|串|3|块|\u0003|羊|脆|骨|4|块|\u0003|考|鸡|翅|个|头|满|大|的|两|个|也|就|8|块|\u0003|明|虾|也|非|常|好|吃|\u0003|2|块|一|串|\u0003|店|家|服|务|态|度|也|很|好|的|\u0003|我|们|三|个|大|人|一|个|小|孩|吃|了|2|0|2|\u0003|我|去|结|帐|\u0003|老|板|说|2|块|钱|就|算|了|\u0003|够|爽|气|\u0003|真|是|霸|王|餐|了|\u0003|吃|饱|喝|足|\u0003|还|打|包|\u0003|一|分|钱|都|没|花|！|以|后|要|吃|烤|串|一|定|还|去|\u0003|就|是|如|果|能|出|团|购|代|金|券|\u0003|就|更|好|拉|\"|\"|以前|对|烧烤|都|没|感觉|，|这次|抽|中|大众|的|霸王餐|就|去|吃|了|。|吃|下来|意犹未尽|的|感觉|，|很|好吃|！|妈妈|也|赞不绝口|。|我们|没点|羊排|\u0003|单点|的|烤串|\u0003|还有|凉皮|\u0003|做|的|很好|有劲|\u0003|微甜|\u0003|羊杂|汤|\u0003|里面|料|很足|\u0003|最后|都|没|吃|完|\u0003|还有|羊肉|面|\u0003|汤里|放|了|胡椒粉|\u0003|面条|很|有|嚼|劲|\u0003|我|喜欢|的|\u0003|凉拌|海带|也|不错|\u0003|店里|烤串|价格|不|贵|\u0003|而且|分量|很|实在|！|\u0003|羊肉串|3|块|\u0003|羊|脆骨|4|块|\u0003|考|鸡翅|个头|满|大|的|两个|也|就|8|块|\u0003|明虾|也|非常|好吃|\u0003|2|块|一串|\u0003|店家|服务态度|也|很好|的|\u0003|我们|三个|大人|一个|小孩|吃|了|202|\u0003|我|去|结帐|\u0003|老板|说|2|块钱|就算|了|\u0003|够|爽气|\u0003|真是|霸王餐|了|\u0003|吃饱喝足|\u0003|还|打包|\u0003|一分钱|都|没|花|！|以后|要|吃|烤串|一定|还|去|\u0003|就是|如果|能出|团购|代金券|\u0003|就|更好|拉|\" 473\n2018-10-19 15:18:28 0:15:15 \"餐前，装冷菜的碟子是仿青瓷的碟子，高脚，可惜是塑料的，近看缺了质感，没有瓷器那种通透，远看挺不错。盛菜的器皿有些也挺有特色的，包厢布置也花了功夫，走古风挂字画。墙纸是青花瓷的，对面墙壁也贴了很多瓷器，有几个还是玲珑瓷，透光看比较好看。比较喜欢他们家的日式茶壶，铁壶，很沉但漂亮，据说冲泡能补铁？菜品味道一般，花样是挺多的，杨枝甘露换个器皿就能换来很大的拍照量，是不是桌桌都有？喜欢那个有小把的酱料器皿，拿着很可爱\" \"|餐|前|，|装|冷|菜|的|碟|子|是|仿|青|瓷|的|碟|子|，|高|脚|，|可|惜|是|塑|料|的|，|近|看|缺|了|质|感|，|没|有|瓷|器|那|种|通|透|，|远|看|挺|不|错|。|盛|菜|的|器|皿|有|些|也|挺|有|特|色|的|，|包|厢|布|置|也|花|了|功|夫|，|走|古|风|挂|字|画|。|墙|纸|是|青|花|瓷|的|，|对|面|墙|壁|也|贴|了|很|多|瓷|器|，|有|几|个|还|是|玲|珑|瓷|，|透|光|看|比|较|好|看|。|比|较|喜|欢|他|们|家|的|日|式|茶|壶|，|铁|壶|，|很|沉|但|漂|亮|，|据|说|冲|泡|能|补|铁|？|菜|品|味|道|一|般|，|花|样|是|挺|多|的|，|杨|枝|甘|露|换|个|器|皿|就|能|换|来|很|大|的|拍|照|量|，|是|不|是|桌|桌|都|有|？|喜|欢|那|个|有|小|把|的|酱|料|器|皿|，|拿|着|很|可|爱|\"|\"|餐|前|，|装|冷菜|的|碟子|是|仿|青瓷|的|碟子|，|高脚|，|可惜|是|塑料|的|，|近|看|缺|了|质感|，|没有|瓷器|那种|通透|，|远|看|挺不错|。|盛菜|的|器皿|有些|也|挺|有|特色|的|，|包厢|布置|也|花|了|功夫|，|走|古风|挂|字画|。|墙纸|是|青花瓷|的|，|对面|墙壁|也|贴|了|很多|瓷器|，|有|几个|还是|玲珑|瓷|，|透光|看|比较|好看|。|比较|喜欢|他们|家|的|日式|茶壶|，|铁壶|，|很沉|但|漂亮|，|据说|冲泡|能|补铁|？|菜品|味道|一般|，|花样|是|挺|多|的|，|杨枝|甘露|换|个|器皿|就|能|换来|很大|的|拍照|量|，|是不是|桌桌|都|有|？|喜欢|那个|有|小|把|的|酱料|器皿|，|拿|着|很|可爱|\" 351\n2018-10-19 15:21:30 0:18:17 \"本人上周参加了婚宴！灯光效果非常不错，做的挺用心。服务员态度比较谦和，也挺任劳任怨的，一个个东跑西癫都累出汗了，看着俺都心疼啊。用于闹肚子，喝点白酒也没吃菜，不过听老婆说个个菜做的超棒，非得中秋节拉着我去尝尝果木烤鸭和杏鲍菇。以后想吃海鲜就去奥帆号了，海鲜厨房嘛高端的装修，可口的大众亲民的价格。还有好多帅哥美女免费服务哟～唯一美中不足的地方就是院子里的停车场有点小，放30多个车就快没地方了，得提前点过去抢个车位再说～哈哈\" \"|本|人|上|周|参|加|了|婚|宴|！|灯|光|效|果|非|常|不|错|，|做|的|挺|用|心|。|服|务|员|态|度|比|较|谦|和|，|也|挺|任|劳|任|怨|的|，|一|个|个|东|跑|西|癫|都|累|出|汗|了|，|看|着|俺|都|心|疼|啊|。|用|于|闹|肚|子|，|喝|点|白|酒|也|没|吃|菜|，|不|过|听|老|婆|说|个|个|菜|做|的|超|棒|，|非|得|中|秋|节|拉|着|我|去|尝|尝|果|木|烤|鸭|和|杏|鲍|菇|。|以|后|想|吃|海|鲜|就|去|奥|帆|号|了|，|海|鲜|厨|房|嘛|高|端|的|装|修|，|可|口|的|大|众|亲|民|的|价|格|。|还|有|好|多|帅|哥|美|女|免|费|服|务|哟|～|唯|一|美|中|不|足|的|地|方|就|是|院|子|里|的|停|车|场|有|点|小|，|放|3|0|多|个|车|就|快|没|地|方|了|，|得|提|前|点|过|去|抢|个|车|位|再|说|～|哈|哈|\"|\"|本人|上周|参加|了|婚宴|！|灯光效果|非常|不错|，|做|的|挺|用心|。|服务员|态度|比较|谦和|，|也|挺|任劳任怨|的|，|一个个|东跑|西癫|都|累|出汗|了|，|看着|俺|都|心疼|啊|。|用于|闹肚子|，|喝|点|白酒|也|没|吃|菜|，|不过|听|老婆|说|个个|菜|做|的|超棒|，|非得|中秋节|拉|着|我|去|尝尝|果木|烤鸭|和|杏鲍菇|。|以后|想|吃海鲜|就|去|奥帆|号|了|，|海鲜|厨房|嘛|高端|的|装修|，|可口|的|大众|亲民|的|价格|。|还有|好多|帅哥美女|免费|服务|哟|～|唯一|美中不足|的|地方|就是|院子|里|的|停车场|有点|小|，|放|30|多个|车|就快|没|地方|了|，|得|提前|点|过去|抢|个|车位|再说|～|哈哈|\" 349\n2018-10-19 15:24:32 0:21:19 \"趁赛格美食节买的团购券\u0003来西安一年\u0003对长安大排档长草很久了\u0003也差不多拖了一年才来吃\u0003七七八八减减以后用了59块钱买了100的抵用券\u0003实在是划算。\u0002今天晚上雨下的挺大的\u0003和男票出门\u0003回来的时候就在小寨下了\u0003直奔赛格六楼长安大排挡。\u0002去的时候不到七点\u0003已经有不少人排队了。我一问\u0003原来两个人不需要等位\u0003实在是太好了。\u0002点了葫芦鸡\u0003枣馍\u0003锅贴和羊肉串。加起来105\u0003两个人吃的饱饱的。\u0002葫芦鸡很好吃\u0003有点像炸鸡\u000358一整只鸡\u0003两个人吃的好饱\u0003男票动手撕开的\u0003他很喜欢吃。\u0002羊肉串十串25\u0003肉很大块\u0003也不肥。锅贴中规中矩。枣馍感觉没有大家评价的那么好\u0003不过当主食也不错。\u0002总之很满意的一家店\u0003性价比高\u0003菜的味道也不错。\" \"|趁|赛|格|美|食|节|买|的|团|购|券|\u0003|来|西|安|一|年|\u0003|对|长|安|大|排|档|长|草|很|久|了|\u0003|也|差|不|多|拖|了|一|年|才|来|吃|\u0003|七|七|八|八|减|减|以|后|用|了|5|9|块|钱|买|了|1|0|0|的|抵|用|券|\u0003|实|在|是|划|算|。|\u0002|今|天|晚|上|雨|下|的|挺|大|的|\u0003|和|男|票|出|门|\u0003|回|来|的|时|候|就|在|小|寨|下|了|\u0003|直|奔|赛|格|六|楼|长|安|大|排|挡|。|\u0002|去|的|时|候|不|到|七|点|\u0003|已|经|有|不|少|人|排|队|了|。|我|一|问|\u0003|原|来|两|个|人|不|需|要|等|位|\u0003|实|在|是|太|好|了|。|\u0002|点|了|葫|芦|鸡|\u0003|枣|馍|\u0003|锅|贴|和|羊|肉|串|。|加|起|来|1|0|5|\u0003|两|个|人|吃|的|饱|饱|的|。|\u0002|葫|芦|鸡|很|好|吃|\u0003|有|点|像|炸|鸡|\u0003|5|8|一|整|只|鸡|\u0003|两|个|人|吃|的|好|饱|\u0003|男|票|动|手|撕|开|的|\u0003|他|很|喜|欢|吃|。|\u0002|羊|肉|串|十|串|2|5|\u0003|肉|很|大|块|\u0003|也|不|肥|。|锅|贴|中|规|中|矩|。|枣|馍|感|觉|没|有|大|家|评|价|的|那|么|好|\u0003|不|过|当|主|食|也|不|错|。|\u0002|总|之|很|满|意|的|一|家|店|\u0003|性|价|比|高|\u0003|菜|的|味|道|也|不|错|。|\"|\"|趁|赛格|美食节|买|的|团购|券|\u0003|来|西安|一年|\u0003|对|长安|大排档|长|草|很|久|了|\u0003|也|差不多|拖|了|一年|才|来|吃|\u0003|七七八八|减减|以后|用|了|59|块钱|买|了|100|的|抵用|券|\u0003|实在|是|划算|。|\u0002|今天|晚上|雨|下|的|挺大|的|\u0003|和|男票|出门|\u0003|回来|的|时候|就|在|小寨|下|了|\u0003|直奔|赛格|六楼|长安|大排挡|。|\u0002|去|的|时候|不到|七点|\u0003|已经|有|不少|人|排队|了|。|我一|问|\u0003|原来|两个|人|不|需要|等位|\u0003|实在|是|太好了|。|\u0002|点|了|葫芦|鸡|\u0003|枣馍|\u0003|锅贴|和|羊肉串|。|加|起来|105|\u0003|两个|人|吃|的|饱饱|的|。|\u0002|葫芦|鸡|很|好吃|\u0003|有点像|炸鸡|\u0003|58|一整只|鸡|\u0003|两个|人|吃|的|好|饱|\u0003|男票|动手|撕开|的|\u0003|他|很|喜欢|吃|。|\u0002|羊肉串|十串|25|\u0003|肉|很大|块|\u0003|也|不|肥|。|锅贴|中规中矩|。|枣馍|感觉|没有|大家|评价|的|那么|好|\u0003|不过|当|主食|也|不错|。|\u0002|总之|很|满意|的|一家|店|\u0003|性价比|高|\u0003|菜|的|味道|也|不错|。|\" 514\n2018-10-19 15:27:34 0:24:21 \"店内印象：日本风的装修，店里光线偏暗，空间狭小\u0003很拘谨，桌上没有随时可以接水的水龙头，桌子上也没有嵌入式可以煮面的小电磁炉，（该评价是跟博多一幸舍对比），店员服务态度很热情，上汤上面也算快，价格比博多一幸舍便宜一些，周一至周五可以打折，周末没有任何优惠。\u0002面的口感可以根据自己的感觉选择软\u0003普通\u0003硬\u0003很硬，咸度、是否加葱都可根据喜好选择，个人觉的普通即可，尝试了一次硬的，也可以接受，但是估计不会尝试特硬的、、、\u0002汤是十分浓稠，有胶口的感觉，浓稠度和博多一幸舍差不多，也就是东北皮冻的五分到七分的浓度，很多人可能会觉得腻，\u0003本人挺喜欢，另加一份面6元，加汤不要钱，带娃来吃还是划算滴。\u0002跟博多一幸舍的面面配料基本一致，紫菜、鸡蛋、芽菜、香葱、木耳、笋、叉烧、每种都有单独价格，没有搭配在一起的全套豪华配菜价格。\u0002面里搭配的肉肉没有博多一幸舍的大片，但是味道还不错，嫩香，就是家里的蒜泥肘子肉（盐水炖肘花）。糖心蛋就是煮鸡蛋，蛋清已熟，蛋黄儿半熟，温泉蛋就是窝鸡蛋，蛋清变白裹住没熟的蛋黄儿。\u0002还点了一口饺子、炸鸡块，炸鸡排，炸香肠，可惜没来得及拍照就破相了，不能上图了，一口饺子不如博多一幸舍好吃，炸鸡块有四块，比博多一幸舍的稍微小一点，但是更好吃更入味也更嫩一些。那个香肠没什么特点，宝宝喜欢而已。鸡排不过不失的，没什么特点。\u0003配菜中，\u0003木耳就是脆，芽菜带着蔬菜汁所以是水脆，\u0003笋是嫩。\u0003雪碧直接给了易拉罐和一根管子，不像博多一幸舍，漂亮的大啤酒杯，质量不错的黑色吸管。\u0002豚丸店加汤只有清汤加（清汤也已经十分浓稠），博多加汤时会问您需要加浓汤还是清汤。\u0002\" \"|店|内|印|象|：|日|本|风|的|装|修|，|店|里|光|线|偏|暗|，|空|间|狭|小|\u0003|很|拘|谨|，|桌|上|没|有|随|时|可|以|接|水|的|水|龙|头|，|桌|子|上|也|没|有|嵌|入|式|可|以|煮|面|的|小|电|磁|炉|，|（|该|评|价|是|跟|博|多|一|幸|舍|对|比|）|，|店|员|服|务|态|度|很|热|情|，|上|汤|上|面|也|算|快|，|价|格|比|博|多|一|幸|舍|便|宜|一|些|，|周|一|至|周|五|可|以|打|折|，|周|末|没|有|任|何|优|惠|。|\u0002|面|的|口|感|可|以|根|据|自|己|的|感|觉|选|择|软|\u0003|普|通|\u0003|硬|\u0003|很|硬|，|咸|度|、|是|否|加|葱|都|可|根|据|喜|好|选|择|，|个|人|觉|的|普|通|即|可|，|尝|试|了|一|次|硬|的|，|也|可|以|接|受|，|但|是|估|计|不|会|尝|试|特|硬|的|、|、|、|\u0002|汤|是|十|分|浓|稠|，|有|胶|口|的|感|觉|，|浓|稠|度|和|博|多|一|幸|舍|差|不|多|，|也|就|是|东|北|皮|冻|的|五|分|到|七|分|的|浓|度|，|很|多|人|可|能|会|觉|得|腻|，|\u0003|本|人|挺|喜|欢|，|另|加|一|份|面|6|元|，|加|汤|不|要|钱|，|带|娃|来|吃|还|是|划|算|滴|。|\u0002|跟|博|多|一|幸|舍|的|面|面|配|料|基|本|一|致|，|紫|菜|、|鸡|蛋|、|芽|菜|、|香|葱|、|木|耳|、|笋|、|叉|烧|、|每|种|都|有|单|独|价|格|，|没|有|搭|配|在|一|起|的|全|套|豪|华|配|菜|价|格|。|\u0002|面|里|搭|配|的|肉|肉|没|有|博|多|一|幸|舍|的|大|片|，|但|是|味|道|还|不|错|，|嫩|香|，|就|是|家|里|的|蒜|泥|肘|子|肉|（|盐|水|炖|肘|花|）|。|糖|心|蛋|就|是|煮|鸡|蛋|，|蛋|清|已|熟|，|蛋|黄|儿|半|熟|，|温|泉|蛋|就|是|窝|鸡|蛋|，|蛋|清|变|白|裹|住|没|熟|的|蛋|黄|儿|。|\u0002|还|点|了|一|口|饺|子|、|炸|鸡|块|，|炸|鸡|排|，|炸|香|肠|，|可|惜|没|来|得|及|拍|照|就|破|相|了|，|不|能|上|图|了|，|一|口|饺|子|不|如|博|多|一|幸|舍|好|吃|，|炸|鸡|块|有|四|块|，|比|博|多|一|幸|舍|的|稍|微|小|一|点|，|但|是|更|好|吃|更|入|味|也|更|嫩|一|些|。|那|个|香|肠|没|什|么|特|点|，|宝|宝|喜|欢|而|已|。|鸡|排|不|过|不|失|的|，|没|什|么|特|点|。|\u0003|配|菜|中|，|\u0003|木|耳|就|是|脆|，|芽|菜|带|着|蔬|菜|汁|所|以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪|碧|直|接|给|了|易|拉|罐|和|一|根|管|子|，|不|像|博|多|一|幸|舍|，|漂|亮|的|大|啤|酒|杯|，|质|量|不|错|的|黑|色|吸|管|。|\u0002|豚|丸|店|加|汤|只|有|清|汤|加|（|清|汤|也|已|经|十|分|浓|稠|）|，|博|多|加|汤|时|会|问|您|需|要|加|浓|汤|还|是|清|汤|。|\u0002|\"|\"|店|内|印象|：|日本|风|的|装修|，|店里|光线|偏暗|，|空间|狭小|\u0003|很|拘谨|，|桌上|没有|随时|可以|接水|的|水龙头|，|桌子|上|也|没有|嵌入式|可以|煮|面|的|小|电磁炉|，|（|该|评价|是|跟|博多|一幸|舍|对比|）|，|店员|服务态度|很|热情|，|上|汤|上面|也|算|快|，|价格比|博多|一幸|舍|便宜|一些|，|周一|至|周五|可以|打折|，|周末|没有|任何|优惠|。|\u0002|面|的|口感|可以|根据|自己|的|感觉|选择|软|\u0003|普通|\u0003|硬|\u0003|很|硬|，|咸度|、|是否|加葱|都|可|根据|喜好|选择|，|个人|觉|的|普通|即可|，|尝试|了|一次|硬|的|，|也|可以|接受|，|但是|估计|不会|尝试|特硬|的|、|、|、|\u0002|汤|是|十分|浓稠|，|有|胶口|的|感觉|，|浓|稠度|和|博多|一幸|舍|差不多|，|也|就是|东北|皮冻|的|五分|到|七分|的|浓度|，|很多|人|可能|会|觉得|腻|，|\u0003|本人|挺|喜欢|，|另加|一份|面|6|元|，|加汤|不要|钱|，|带|娃|来|吃|还是|划算|滴|。|\u0002|跟|博多|一幸舍|的|面面|配料|基本一致|，|紫菜|、|鸡蛋|、|芽菜|、|香葱|、|木耳|、|笋|、|叉烧|、|每种|都|有|单独|价格|，|没有|搭配|在|一起|的|全套|豪华|配菜|价格|。|\u0002|面里|搭配|的|肉肉|没有|博多|一幸舍|的|大片|，|但是|味道|还|不错|，|嫩香|，|就是|家里|的|蒜泥|肘子|肉|（|盐水|炖|肘|花|）|。|糖心|蛋|就是|煮|鸡蛋|，|蛋清|已|熟|，|蛋黄|儿|半熟|，|温泉|蛋|就是|窝|鸡蛋|，|蛋清|变白|裹住|没熟|的|蛋黄|儿|。|\u0002|还点|了|一口|饺子|、|炸鸡块|，|炸鸡|排|，|炸|香肠|，|可惜|没|来得及|拍照|就|破相|了|，|不能|上图|了|，|一口|饺子|不如|博多|一幸|舍|好吃|，|炸鸡块|有|四块|，|比|博多|一幸舍|的|稍微|小|一点|，|但是|更|好吃|更|入味|也|更|嫩|一些|。|那个|香肠|没什么|特点|，|宝宝|喜欢|而已|。|鸡|排|不过|不失|的|，|没什么|特点|。|\u0003|配菜|中|，|\u0003|木耳|就是|脆|，|芽菜|带|着|蔬菜汁|所以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪碧|直接|给|了|易拉罐|和|一根|管子|，|不|像|博多|一幸|舍|，|漂亮|的|大|啤酒杯|，|质量|不错|的|黑色|吸管|。|\u0002|豚丸|店|加|汤|只有|清|汤加|（|清汤|也|已经|十分|浓稠|）|，|博多|加汤|时会|问|您|需要|加|浓汤|还是|清汤|。|\u0002|\" 1126\n2018-10-19 15:32:53 0:00:01 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 15:33:36 0:00:01 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 15:33:57 0:00:22 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 15:34:17 0:00:42 \"伊势丹楼下，路过很多次都没有进来～终于有机会来尝一尝了大阪煎饼了！店面比较小，放着日本名族歌曲，日本小店的感觉～老板是个亲切的日本大叔～\u0002【章鱼小丸子】很q弹！真的是我吃过最q弹的小丸子！里面很明显有一块有嚼劲的章鱼肉～\u0002【海鲜大阪煎饼】味道很好，蛋皮里面包的虾，扇贝肉，鸡蛋，还有些菜～加了奶酪，多加十元，但是感觉意义不大。\u0002【海鲜大阪烧】这个是送错餐送给我们吃的～里面只有虾，感觉没得煎饼好吃，价格比煎饼便宜。\u0002【乌冬面】很清淡，但是汤很有味道～面有嚼劲～\" \"|伊|势|丹|楼|下|，|路|过|很|多|次|都|没|有|进|来|～|终|于|有|机|会|来|尝|一|尝|了|大|阪|煎|饼|了|！|店|面|比|较|小|，|放|着|日|本|名|族|歌|曲|，|日|本|小|店|的|感|觉|～|老|板|是|个|亲|切|的|日|本|大|叔|～|\u0002|【|章|鱼|小|丸|子|】|很|q|弹|！|真|的|是|我|吃|过|最|q|弹|的|小|丸|子|！|里|面|很|明|显|有|一|块|有|嚼|劲|的|章|鱼|肉|～|\u0002|【|海|鲜|大|阪|煎|饼|】|味|道|很|好|，|蛋|皮|里|面|包|的|虾|，|扇|贝|肉|，|鸡|蛋|，|还|有|些|菜|～|加|了|奶|酪|，|多|加|十|元|，|但|是|感|觉|意|义|不|大|。|\u0002|【|海|鲜|大|阪|烧|】|这|个|是|送|错|餐|送|给|我|们|吃|的|～|里|面|只|有|虾|，|感|觉|没|得|煎|饼|好|吃|，|价|格|比|煎|饼|便|宜|。|\u0002|【|乌|冬|面|】|很|清|淡|，|但|是|汤|很|有|味|道|～|面|有|嚼|劲|～|\"|\"|伊势|丹|楼下|，|路过|很|多次|都|没有|进来|～|终于|有|机会|来|尝一尝|了|大阪|煎饼|了|！|店面|比较|小|，|放着|日本|名族|歌曲|，|日本|小店|的|感觉|～|老板|是|个|亲切|的|日本|大叔|～|\u0002|【|章鱼|小丸子|】|很|q|弹|！|真的|是|我|吃|过|最|q|弹|的|小丸子|！|里面|很|明显|有|一块|有|嚼|劲|的|章|鱼肉|～|\u0002|【|海鲜|大阪|煎饼|】|味道|很|好|，|蛋|皮里|面包|的|虾|，|扇贝|肉|，|鸡蛋|，|还|有些|菜|～|加|了|奶酪|，|多加|十元|，|但是|感觉|意义|不|大|。|\u0002|【|海鲜|大阪|烧|】|这个|是|送错|餐|送给|我们|吃|的|～|里面|只有|虾|，|感觉|没|得|煎饼|好吃|，|价格比|煎饼|便宜|。|\u0002|【|乌冬面|】|很|清淡|，|但是|汤|很|有|味道|～|面有|嚼|劲|～|\" 393\n2018-10-19 15:34:38 0:01:03 \"一直很喜欢这家的pasta，以前都是在美罗城楼下吃的，感觉都很好还一直和别人推荐，周日下雨和老公本来想去太兴的没想到关门就到镰仓了，这里地方还算比较大，一进去浓浓的奶香味很舒服，坐下来开始点单，新品出来还比较多，不过还是点了pasta。\u0002畅食的面包必须点单后才给你上ok没问题，我点了脆虾番茄奶油意面52元，虾大概有6-8个还算可以，不过意面不多，最重要的是这里的意面能叫意面吗？烂的比烂糊面还烂，加上烧的浓稠的的酱汁要死了就是一坨面粉，完全没有口味可言，老公点的扇贝配鲑鱼意面也是如此，面条都糊了，受不了，吃完胃就不舒服了。\u0002熏鲑鱼色拉还可以酱料调配的比较爽口。\u0002畅食的面包真的没有以前好吃了，以前的羊角面包都是现烤热腾腾的，现在很多都是一起上，虽然味道还不错但是口感没有刚出炉的那么酥脆了。\u0002看来以后老公是不会再来了。\" \"|一|直|很|喜|欢|这|家|的|p|a|s|t|a|，|以|前|都|是|在|美|罗|城|楼|下|吃|的|，|感|觉|都|很|好|还|一|直|和|别|人|推|荐|，|周|日|下|雨|和|老|公|本|来|想|去|太|兴|的|没|想|到|关|门|就|到|镰|仓|了|，|这|里|地|方|还|算|比|较|大|，|一|进|去|浓|浓|的|奶|香|味|很|舒|服|，|坐|下|来|开|始|点|单|，|新|品|出|来|还|比|较|多|，|不|过|还|是|点|了|p|a|s|t|a|。|\u0002|畅|食|的|面|包|必|须|点|单|后|才|给|你|上|o|k|没|问|题|，|我|点|了|脆|虾|番|茄|奶|油|意|面|5|2|元|，|虾|大|概|有|6|-|8|个|还|算|可|以|，|不|过|意|面|不|多|，|最|重|要|的|是|这|里|的|意|面|能|叫|意|面|吗|？|烂|的|比|烂|糊|面|还|烂|，|加|上|烧|的|浓|稠|的|的|酱|汁|要|死|了|就|是|一|坨|面|粉|，|完|全|没|有|口|味|可|言|，|老|公|点|的|扇|贝|配|鲑|鱼|意|面|也|是|如|此|，|面|条|都|糊|了|，|受|不|了|，|吃|完|胃|就|不|舒|服|了|。|\u0002|熏|鲑|鱼|色|拉|还|可|以|酱|料|调|配|的|比|较|爽|口|。|\u0002|畅|食|的|面|包|真|的|没|有|以|前|好|吃|了|，|以|前|的|羊|角|面|包|都|是|现|烤|热|腾|腾|的|，|现|在|很|多|都|是|一|起|上|，|虽|然|味|道|还|不|错|但|是|口|感|没|有|刚|出|炉|的|那|么|酥|脆|了|。|\u0002|看|来|以|后|老|公|是|不|会|再|来|了|。|\"|\"|一直|很|喜欢|这家|的|pasta|，|以前|都|是|在|美罗城|楼下|吃|的|，|感觉|都|很|好|还|一直|和|别人|推荐|，|周日|下雨|和|老公|本来|想|去|太兴|的|没想到|关门|就|到|镰|仓|了|，|这里|地方|还|算|比较|大|，|一|进去|浓浓的|奶|香味|很|舒服|，|坐下|来|开始|点单|，|新品|出来|还|比较|多|，|不过|还是|点|了|pasta|。|\u0002|畅食|的|面包|必须|点|单后|才|给|你|上|ok|没|问题|，|我点|了|脆|虾|番茄|奶油|意面|52|元|，|虾|大概|有|6|-|8|个|还|算|可以|，|不过意|面不多|，|最|重要|的|是|这里|的|意面|能|叫|意面|吗|？|烂|的|比|烂糊|面|还|烂|，|加上|烧|的|浓稠|的|的|酱汁|要死|了|就是|一坨|面粉|，|完全|没有|口味|可言|，|老公|点|的|扇贝|配|鲑鱼|意面|也|是|如此|，|面条|都|糊|了|，|受不了|，|吃|完胃|就|不|舒服|了|。|\u0002|熏|鲑鱼|色拉|还|可以|酱料|调配|的|比较|爽口|。|\u0002|畅食|的|面包|真的|没有|以前|好吃|了|，|以前|的|羊角|面包|都|是|现烤|热腾腾|的|，|现在|很多|都|是|一起|上|，|虽然|味道|还|不错|但是|口感|没有|刚|出炉|的|那么|酥脆|了|。|\u0002|看来|以后|老公|是|不会|再来|了|。|\" 604\n2018-10-19 15:34:58 0:01:23 \"以前对烧烤都没感觉，这次抽中大众的霸王餐就去吃了。吃下来意犹未尽的感觉，很好吃！妈妈也赞不绝口。我们没点羊排\u0003单点的烤串\u0003还有凉皮\u0003做的很好有劲\u0003微甜\u0003羊杂汤\u0003里面料很足\u0003最后都没吃完\u0003还有羊肉面\u0003汤里放了胡椒粉\u0003面条很有嚼劲\u0003我喜欢的\u0003凉拌海带也不错\u0003店里烤串价格不贵\u0003而且分量很实在！\u0003羊肉串3块\u0003羊脆骨4块\u0003考鸡翅个头满大的两个也就8块\u0003明虾也非常好吃\u00032块一串\u0003店家服务态度也很好的\u0003我们三个大人一个小孩吃了202\u0003我去结帐\u0003老板说2块钱就算了\u0003够爽气\u0003真是霸王餐了\u0003吃饱喝足\u0003还打包\u0003一分钱都没花！以后要吃烤串一定还去\u0003就是如果能出团购代金券\u0003就更好拉\" \"|以|前|对|烧|烤|都|没|感|觉|，|这|次|抽|中|大|众|的|霸|王|餐|就|去|吃|了|。|吃|下|来|意|犹|未|尽|的|感|觉|，|很|好|吃|！|妈|妈|也|赞|不|绝|口|。|我|们|没|点|羊|排|\u0003|单|点|的|烤|串|\u0003|还|有|凉|皮|\u0003|做|的|很|好|有|劲|\u0003|微|甜|\u0003|羊|杂|汤|\u0003|里|面|料|很|足|\u0003|最|后|都|没|吃|完|\u0003|还|有|羊|肉|面|\u0003|汤|里|放|了|胡|椒|粉|\u0003|面|条|很|有|嚼|劲|\u0003|我|喜|欢|的|\u0003|凉|拌|海|带|也|不|错|\u0003|店|里|烤|串|价|格|不|贵|\u0003|而|且|分|量|很|实|在|！|\u0003|羊|肉|串|3|块|\u0003|羊|脆|骨|4|块|\u0003|考|鸡|翅|个|头|满|大|的|两|个|也|就|8|块|\u0003|明|虾|也|非|常|好|吃|\u0003|2|块|一|串|\u0003|店|家|服|务|态|度|也|很|好|的|\u0003|我|们|三|个|大|人|一|个|小|孩|吃|了|2|0|2|\u0003|我|去|结|帐|\u0003|老|板|说|2|块|钱|就|算|了|\u0003|够|爽|气|\u0003|真|是|霸|王|餐|了|\u0003|吃|饱|喝|足|\u0003|还|打|包|\u0003|一|分|钱|都|没|花|！|以|后|要|吃|烤|串|一|定|还|去|\u0003|就|是|如|果|能|出|团|购|代|金|券|\u0003|就|更|好|拉|\"|\"|以前|对|烧烤|都|没|感觉|，|这次|抽|中|大众|的|霸王餐|就|去|吃|了|。|吃|下来|意犹未尽|的|感觉|，|很|好吃|！|妈妈|也|赞不绝口|。|我们|没点|羊排|\u0003|单点|的|烤串|\u0003|还有|凉皮|\u0003|做|的|很|好|有劲|\u0003|微甜|\u0003|羊杂|汤|\u0003|里面|料|很|足|\u0003|最后|都|没|吃|完|\u0003|还有|羊肉|面|\u0003|汤里|放|了|胡椒粉|\u0003|面条|很|有|嚼|劲|\u0003|我|喜欢|的|\u0003|凉拌|海带|也|不错|\u0003|店里|烤串|价格|不|贵|\u0003|而且|分量|很|实在|！|\u0003|羊肉串|3|块|\u0003|羊|脆骨|4|块|\u0003|考|鸡翅|个头|满大|的|两个|也|就|8|块|\u0003|明虾|也|非常|好吃|\u0003|2|块|一串|\u0003|店家|服务态度|也|很|好|的|\u0003|我们|三个|大人|一个|小孩|吃|了|202|\u0003|我|去|结帐|\u0003|老板|说|2|块钱|就算|了|\u0003|够|爽气|\u0003|真是|霸王餐|了|\u0003|吃饱喝足|\u0003|还|打包|\u0003|一分钱|都|没花|！|以后|要|吃|烤串|一定|还|去|\u0003|就是|如果|能出|团购|代金券|\u0003|就|更好|拉|\" 474\n2018-10-19 15:35:19 0:01:44 \"餐前，装冷菜的碟子是仿青瓷的碟子，高脚，可惜是塑料的，近看缺了质感，没有瓷器那种通透，远看挺不错。盛菜的器皿有些也挺有特色的，包厢布置也花了功夫，走古风挂字画。墙纸是青花瓷的，对面墙壁也贴了很多瓷器，有几个还是玲珑瓷，透光看比较好看。比较喜欢他们家的日式茶壶，铁壶，很沉但漂亮，据说冲泡能补铁？菜品味道一般，花样是挺多的，杨枝甘露换个器皿就能换来很大的拍照量，是不是桌桌都有？喜欢那个有小把的酱料器皿，拿着很可爱\" \"|餐|前|，|装|冷|菜|的|碟|子|是|仿|青|瓷|的|碟|子|，|高|脚|，|可|惜|是|塑|料|的|，|近|看|缺|了|质|感|，|没|有|瓷|器|那|种|通|透|，|远|看|挺|不|错|。|盛|菜|的|器|皿|有|些|也|挺|有|特|色|的|，|包|厢|布|置|也|花|了|功|夫|，|走|古|风|挂|字|画|。|墙|纸|是|青|花|瓷|的|，|对|面|墙|壁|也|贴|了|很|多|瓷|器|，|有|几|个|还|是|玲|珑|瓷|，|透|光|看|比|较|好|看|。|比|较|喜|欢|他|们|家|的|日|式|茶|壶|，|铁|壶|，|很|沉|但|漂|亮|，|据|说|冲|泡|能|补|铁|？|菜|品|味|道|一|般|，|花|样|是|挺|多|的|，|杨|枝|甘|露|换|个|器|皿|就|能|换|来|很|大|的|拍|照|量|，|是|不|是|桌|桌|都|有|？|喜|欢|那|个|有|小|把|的|酱|料|器|皿|，|拿|着|很|可|爱|\"|\"|餐前|，|装|冷菜|的|碟子|是|仿|青瓷|的|碟子|，|高脚|，|可惜|是|塑料|的|，|近|看|缺|了|质感|，|没有|瓷器|那种|通透|，|远看|挺不错|。|盛菜|的|器皿|有些|也|挺|有|特色|的|，|包厢|布置|也|花|了|功夫|，|走|古风|挂|字画|。|墙纸|是|青花瓷|的|，|对面|墙壁|也|贴|了|很多|瓷器|，|有|几个|还是|玲珑|瓷|，|透光|看|比较|好看|。|比较|喜欢|他们|家|的|日式|茶壶|，|铁壶|，|很沉|但|漂亮|，|据说|冲泡|能|补铁|？|菜品|味道|一般|，|花样|是|挺|多|的|，|杨枝|甘露|换个|器皿|就|能|换来|很大|的|拍照|量|，|是不是|桌桌|都|有|？|喜欢|那个|有|小|把|的|酱料|器皿|，|拿|着|很|可爱|\" 348\n2018-10-19 15:35:39 0:02:04 \"本人上周参加了婚宴！灯光效果非常不错，做的挺用心。服务员态度比较谦和，也挺任劳任怨的，一个个东跑西癫都累出汗了，看着俺都心疼啊。用于闹肚子，喝点白酒也没吃菜，不过听老婆说个个菜做的超棒，非得中秋节拉着我去尝尝果木烤鸭和杏鲍菇。以后想吃海鲜就去奥帆号了，海鲜厨房嘛高端的装修，可口的大众亲民的价格。还有好多帅哥美女免费服务哟～唯一美中不足的地方就是院子里的停车场有点小，放30多个车就快没地方了，得提前点过去抢个车位再说～哈哈\" \"|本|人|上|周|参|加|了|婚|宴|！|灯|光|效|果|非|常|不|错|，|做|的|挺|用|心|。|服|务|员|态|度|比|较|谦|和|，|也|挺|任|劳|任|怨|的|，|一|个|个|东|跑|西|癫|都|累|出|汗|了|，|看|着|俺|都|心|疼|啊|。|用|于|闹|肚|子|，|喝|点|白|酒|也|没|吃|菜|，|不|过|听|老|婆|说|个|个|菜|做|的|超|棒|，|非|得|中|秋|节|拉|着|我|去|尝|尝|果|木|烤|鸭|和|杏|鲍|菇|。|以|后|想|吃|海|鲜|就|去|奥|帆|号|了|，|海|鲜|厨|房|嘛|高|端|的|装|修|，|可|口|的|大|众|亲|民|的|价|格|。|还|有|好|多|帅|哥|美|女|免|费|服|务|哟|～|唯|一|美|中|不|足|的|地|方|就|是|院|子|里|的|停|车|场|有|点|小|，|放|3|0|多|个|车|就|快|没|地|方|了|，|得|提|前|点|过|去|抢|个|车|位|再|说|～|哈|哈|\"|\"|本人|上周|参加|了|婚宴|！|灯光效果|非常|不错|，|做|的|挺|用心|。|服务员|态度|比较|谦和|，|也|挺|任劳任怨|的|，|一个个|东跑|西癫|都|累|出汗|了|，|看着|俺|都|心疼|啊|。|用于|闹肚子|，|喝点|白酒|也|没|吃|菜|，|不过|听|老婆|说|个个|菜|做|的|超棒|，|非得|中秋节|拉|着|我|去|尝尝|果木|烤鸭|和|杏鲍菇|。|以后|想|吃海鲜|就|去|奥帆|号|了|，|海鲜|厨房|嘛|高端|的|装修|，|可口|的|大众|亲民|的|价格|。|还有|好多|帅哥美女|免费|服务|哟|～|唯一|美中不足|的|地方|就是|院子|里|的|停车场|有点|小|，|放|30|多个|车|就|快|没|地方|了|，|得|提前|点|过去|抢个|车位|再说|～|哈哈|\" 348\n2018-10-19 15:36:00 0:02:24 \"趁赛格美食节买的团购券\u0003来西安一年\u0003对长安大排档长草很久了\u0003也差不多拖了一年才来吃\u0003七七八八减减以后用了59块钱买了100的抵用券\u0003实在是划算。\u0002今天晚上雨下的挺大的\u0003和男票出门\u0003回来的时候就在小寨下了\u0003直奔赛格六楼长安大排挡。\u0002去的时候不到七点\u0003已经有不少人排队了。我一问\u0003原来两个人不需要等位\u0003实在是太好了。\u0002点了葫芦鸡\u0003枣馍\u0003锅贴和羊肉串。加起来105\u0003两个人吃的饱饱的。\u0002葫芦鸡很好吃\u0003有点像炸鸡\u000358一整只鸡\u0003两个人吃的好饱\u0003男票动手撕开的\u0003他很喜欢吃。\u0002羊肉串十串25\u0003肉很大块\u0003也不肥。锅贴中规中矩。枣馍感觉没有大家评价的那么好\u0003不过当主食也不错。\u0002总之很满意的一家店\u0003性价比高\u0003菜的味道也不错。\" \"|趁|赛|格|美|食|节|买|的|团|购|券|\u0003|来|西|安|一|年|\u0003|对|长|安|大|排|档|长|草|很|久|了|\u0003|也|差|不|多|拖|了|一|年|才|来|吃|\u0003|七|七|八|八|减|减|以|后|用|了|5|9|块|钱|买|了|1|0|0|的|抵|用|券|\u0003|实|在|是|划|算|。|\u0002|今|天|晚|上|雨|下|的|挺|大|的|\u0003|和|男|票|出|门|\u0003|回|来|的|时|候|就|在|小|寨|下|了|\u0003|直|奔|赛|格|六|楼|长|安|大|排|挡|。|\u0002|去|的|时|候|不|到|七|点|\u0003|已|经|有|不|少|人|排|队|了|。|我|一|问|\u0003|原|来|两|个|人|不|需|要|等|位|\u0003|实|在|是|太|好|了|。|\u0002|点|了|葫|芦|鸡|\u0003|枣|馍|\u0003|锅|贴|和|羊|肉|串|。|加|起|来|1|0|5|\u0003|两|个|人|吃|的|饱|饱|的|。|\u0002|葫|芦|鸡|很|好|吃|\u0003|有|点|像|炸|鸡|\u0003|5|8|一|整|只|鸡|\u0003|两|个|人|吃|的|好|饱|\u0003|男|票|动|手|撕|开|的|\u0003|他|很|喜|欢|吃|。|\u0002|羊|肉|串|十|串|2|5|\u0003|肉|很|大|块|\u0003|也|不|肥|。|锅|贴|中|规|中|矩|。|枣|馍|感|觉|没|有|大|家|评|价|的|那|么|好|\u0003|不|过|当|主|食|也|不|错|。|\u0002|总|之|很|满|意|的|一|家|店|\u0003|性|价|比|高|\u0003|菜|的|味|道|也|不|错|。|\"|\"|趁|赛格|美食节|买|的|团购|券|\u0003|来|西安|一年|\u0003|对|长安|大排档|长草|很|久|了|\u0003|也|差不多|拖|了|一年|才|来|吃|\u0003|七七八八|减减|以后|用|了|59|块钱|买|了|100|的|抵用券|\u0003|实在|是|划算|。|\u0002|今天|晚上|雨下|的|挺|大|的|\u0003|和|男票|出门|\u0003|回来|的|时候|就|在|小寨|下|了|\u0003|直奔|赛格|六楼|长安|大排挡|。|\u0002|去|的|时候|不到|七点|\u0003|已经|有|不少|人|排队|了|。|我|一问|\u0003|原来|两个|人|不|需要|等位|\u0003|实在|是|太好了|。|\u0002|点|了|葫芦|鸡|\u0003|枣馍|\u0003|锅贴|和|羊肉串|。|加|起来|105|\u0003|两个|人|吃|的|饱饱|的|。|\u0002|葫芦|鸡|很|好吃|\u0003|有点像|炸鸡|\u0003|58|一整只|鸡|\u0003|两个|人|吃|的|好|饱|\u0003|男票|动手|撕开|的|\u0003|他|很|喜欢|吃|。|\u0002|羊肉串|十串|25|\u0003|肉|很大|块|\u0003|也|不肥|。|锅贴|中规中矩|。|枣馍|感觉|没有|大家|评价|的|那么|好|\u0003|不过|当|主食|也|不错|。|\u0002|总之|很|满意|的|一家|店|\u0003|性价比|高|\u0003|菜|的|味道|也|不错|。|\" 511\n2018-10-19 15:36:20 0:02:45 \"店内印象：日本风的装修，店里光线偏暗，空间狭小\u0003很拘谨，桌上没有随时可以接水的水龙头，桌子上也没有嵌入式可以煮面的小电磁炉，（该评价是跟博多一幸舍对比），店员服务态度很热情，上汤上面也算快，价格比博多一幸舍便宜一些，周一至周五可以打折，周末没有任何优惠。\u0002面的口感可以根据自己的感觉选择软\u0003普通\u0003硬\u0003很硬，咸度、是否加葱都可根据喜好选择，个人觉的普通即可，尝试了一次硬的，也可以接受，但是估计不会尝试特硬的、、、\u0002汤是十分浓稠，有胶口的感觉，浓稠度和博多一幸舍差不多，也就是东北皮冻的五分到七分的浓度，很多人可能会觉得腻，\u0003本人挺喜欢，另加一份面6元，加汤不要钱，带娃来吃还是划算滴。\u0002跟博多一幸舍的面面配料基本一致，紫菜、鸡蛋、芽菜、香葱、木耳、笋、叉烧、每种都有单独价格，没有搭配在一起的全套豪华配菜价格。\u0002面里搭配的肉肉没有博多一幸舍的大片，但是味道还不错，嫩香，就是家里的蒜泥肘子肉（盐水炖肘花）。糖心蛋就是煮鸡蛋，蛋清已熟，蛋黄儿半熟，温泉蛋就是窝鸡蛋，蛋清变白裹住没熟的蛋黄儿。\u0002还点了一口饺子、炸鸡块，炸鸡排，炸香肠，可惜没来得及拍照就破相了，不能上图了，一口饺子不如博多一幸舍好吃，炸鸡块有四块，比博多一幸舍的稍微小一点，但是更好吃更入味也更嫩一些。那个香肠没什么特点，宝宝喜欢而已。鸡排不过不失的，没什么特点。\u0003配菜中，\u0003木耳就是脆，芽菜带着蔬菜汁所以是水脆，\u0003笋是嫩。\u0003雪碧直接给了易拉罐和一根管子，不像博多一幸舍，漂亮的大啤酒杯，质量不错的黑色吸管。\u0002豚丸店加汤只有清汤加（清汤也已经十分浓稠），博多加汤时会问您需要加浓汤还是清汤。\u0002\" \"|店|内|印|象|：|日|本|风|的|装|修|，|店|里|光|线|偏|暗|，|空|间|狭|小|\u0003|很|拘|谨|，|桌|上|没|有|随|时|可|以|接|水|的|水|龙|头|，|桌|子|上|也|没|有|嵌|入|式|可|以|煮|面|的|小|电|磁|炉|，|（|该|评|价|是|跟|博|多|一|幸|舍|对|比|）|，|店|员|服|务|态|度|很|热|情|，|上|汤|上|面|也|算|快|，|价|格|比|博|多|一|幸|舍|便|宜|一|些|，|周|一|至|周|五|可|以|打|折|，|周|末|没|有|任|何|优|惠|。|\u0002|面|的|口|感|可|以|根|据|自|己|的|感|觉|选|择|软|\u0003|普|通|\u0003|硬|\u0003|很|硬|，|咸|度|、|是|否|加|葱|都|可|根|据|喜|好|选|择|，|个|人|觉|的|普|通|即|可|，|尝|试|了|一|次|硬|的|，|也|可|以|接|受|，|但|是|估|计|不|会|尝|试|特|硬|的|、|、|、|\u0002|汤|是|十|分|浓|稠|，|有|胶|口|的|感|觉|，|浓|稠|度|和|博|多|一|幸|舍|差|不|多|，|也|就|是|东|北|皮|冻|的|五|分|到|七|分|的|浓|度|，|很|多|人|可|能|会|觉|得|腻|，|\u0003|本|人|挺|喜|欢|，|另|加|一|份|面|6|元|，|加|汤|不|要|钱|，|带|娃|来|吃|还|是|划|算|滴|。|\u0002|跟|博|多|一|幸|舍|的|面|面|配|料|基|本|一|致|，|紫|菜|、|鸡|蛋|、|芽|菜|、|香|葱|、|木|耳|、|笋|、|叉|烧|、|每|种|都|有|单|独|价|格|，|没|有|搭|配|在|一|起|的|全|套|豪|华|配|菜|价|格|。|\u0002|面|里|搭|配|的|肉|肉|没|有|博|多|一|幸|舍|的|大|片|，|但|是|味|道|还|不|错|，|嫩|香|，|就|是|家|里|的|蒜|泥|肘|子|肉|（|盐|水|炖|肘|花|）|。|糖|心|蛋|就|是|煮|鸡|蛋|，|蛋|清|已|熟|，|蛋|黄|儿|半|熟|，|温|泉|蛋|就|是|窝|鸡|蛋|，|蛋|清|变|白|裹|住|没|熟|的|蛋|黄|儿|。|\u0002|还|点|了|一|口|饺|子|、|炸|鸡|块|，|炸|鸡|排|，|炸|香|肠|，|可|惜|没|来|得|及|拍|照|就|破|相|了|，|不|能|上|图|了|，|一|口|饺|子|不|如|博|多|一|幸|舍|好|吃|，|炸|鸡|块|有|四|块|，|比|博|多|一|幸|舍|的|稍|微|小|一|点|，|但|是|更|好|吃|更|入|味|也|更|嫩|一|些|。|那|个|香|肠|没|什|么|特|点|，|宝|宝|喜|欢|而|已|。|鸡|排|不|过|不|失|的|，|没|什|么|特|点|。|\u0003|配|菜|中|，|\u0003|木|耳|就|是|脆|，|芽|菜|带|着|蔬|菜|汁|所|以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪|碧|直|接|给|了|易|拉|罐|和|一|根|管|子|，|不|像|博|多|一|幸|舍|，|漂|亮|的|大|啤|酒|杯|，|质|量|不|错|的|黑|色|吸|管|。|\u0002|豚|丸|店|加|汤|只|有|清|汤|加|（|清|汤|也|已|经|十|分|浓|稠|）|，|博|多|加|汤|时|会|问|您|需|要|加|浓|汤|还|是|清|汤|。|\u0002|\"|\"|店内|印象|：|日本|风|的|装修|，|店里|光线|偏暗|，|空间|狭小|\u0003|很|拘谨|，|桌上|没有|随时|可以|接水|的|水龙头|，|桌子|上|也|没有|嵌入式|可以|煮面|的|小|电磁炉|，|（|该|评价|是|跟|博多|一幸|舍|对比|）|，|店员|服务态度|很|热情|，|上|汤|上面|也|算|快|，|价格比|博多|一幸|舍|便宜|一些|，|周一|至|周五|可以|打折|，|周末|没有|任何|优惠|。|\u0002|面|的|口感|可以|根据|自己|的|感觉|选择|软|\u0003|普通|\u0003|硬|\u0003|很|硬|，|咸度|、|是否|加葱|都|可|根据|喜好|选择|，|个人|觉|的|普通|即可|，|尝试|了|一次|硬|的|，|也|可以|接受|，|但是|估计|不会|尝试|特硬|的|、|、|、|\u0002|汤是|十分|浓稠|，|有|胶口|的|感觉|，|浓|稠度|和|博多|一幸|舍|差不多|，|也|就是|东北|皮冻|的|五分|到|七分|的|浓度|，|很多|人|可能|会|觉得|腻|，|\u0003|本人|挺|喜欢|，|另加|一份|面|6|元|，|加汤|不要|钱|，|带娃来|吃|还是|划算|滴|。|\u0002|跟|博多|一幸|舍|的|面面|配料|基本一致|，|紫菜|、|鸡蛋|、|芽菜|、|香葱|、|木耳|、|笋|、|叉烧|、|每种|都|有|单独|价格|，|没有|搭配|在|一起|的|全套|豪华|配菜|价格|。|\u0002|面里|搭配|的|肉|肉|没有|博多|一幸|舍|的|大片|，|但是|味道|还|不错|，|嫩|香|，|就是|家里|的|蒜泥|肘子|肉|（|盐水|炖|肘|花|）|。|糖心|蛋|就是|煮|鸡蛋|，|蛋清|已熟|，|蛋黄|儿|半熟|，|温泉|蛋|就是|窝|鸡蛋|，|蛋清|变白|裹住|没熟|的|蛋黄|儿|。|\u0002|还点|了|一口|饺子|、|炸鸡块|，|炸鸡|排|，|炸|香肠|，|可惜|没|来得及|拍照|就|破|相|了|，|不能|上图|了|，|一口|饺子|不如|博多|一幸|舍|好吃|，|炸鸡块|有|四块|，|比|博多|一幸|舍|的|稍微|小|一点|，|但是|更|好吃|更|入味|也|更|嫩|一些|。|那个|香肠|没什么|特点|，|宝宝|喜欢|而已|。|鸡排|不过|不失|的|，|没什么|特点|。|\u0003|配菜|中|，|\u0003|木耳|就是|脆|，|芽|菜|带|着|蔬菜汁|所以|是|水脆|，|\u0003|笋|是|嫩|。|\u0003|雪碧|直接|给|了|易拉罐|和|一根|管子|，|不像|博多|一幸|舍|，|漂亮|的|大|啤酒杯|，|质量|不错|的|黑色|吸管|。|\u0002|豚|丸|店加|汤|只有|清|汤加|（|清汤|也|已经|十分|浓稠|）|，|博多|加汤|时会|问|您|需要|加|浓汤|还是|清汤|。|\u0002|\" 1124\n2018-10-19 15:36:40 0:03:05 \"一、地理位置：谢家湾万象城5楼，溜冰场上面。\u0002二、服务：店铺不大，干净整洁。服务态度不咸不淡的，9积分兑换的，也可以理解\u0002三、食品：有一句话真的很对—不作死就不会死。本来不喜欢喝茶，但作为吃货，没尝过黑龙茶，觉得还是有点介意。刚好有9积分，就鼓起勇气尝试一下。要的常温的红茶，想到热量问题，少糖，也没有加配料。然后就悲剧了，茶很大一杯，但是苦呀，什么伯爵红茶，我都感觉不出来了，又不是单独泡的，也没有什么茶香味。实在是没办法，苦的喝了几口就喝不下去了。\u0002可能多加糖和布丁之类的配料会好很多吧，不过份量的确很大一杯\" \"|一|、|地|理|位|置|：|谢|家|湾|万|象|城|5|楼|，|溜|冰|场|上|面|。|\u0002|二|、|服|务|：|店|铺|不|大|，|干|净|整|洁|。|服|务|态|度|不|咸|不|淡|的|，|9|积|分|兑|换|的|，|也|可|以|理|解|\u0002|三|、|食|品|：|有|一|句|话|真|的|很|对|—|不|作|死|就|不|会|死|。|本|来|不|喜|欢|喝|茶|，|但|作|为|吃|货|，|没|尝|过|黑|龙|茶|，|觉|得|还|是|有|点|介|意|。|刚|好|有|9|积|分|，|就|鼓|起|勇|气|尝|试|一|下|。|要|的|常|温|的|红|茶|，|想|到|热|量|问|题|，|少|糖|，|也|没|有|加|配|料|。|然|后|就|悲|剧|了|，|茶|很|大|一|杯|，|但|是|苦|呀|，|什|么|伯|爵|红|茶|，|我|都|感|觉|不|出|来|了|，|又|不|是|单|独|泡|的|，|也|没|有|什|么|茶|香|味|。|实|在|是|没|办|法|，|苦|的|喝|了|几|口|就|喝|不|下|去|了|。|\u0002|可|能|多|加|糖|和|布|丁|之|类|的|配|料|会|好|很|多|吧|，|不|过|份|量|的|确|很|大|一|杯|\"|\"|一|、|地理位置|：|谢家|湾|万象|城|5|楼|，|溜冰场|上面|。|\u0002|二|、|服务|：|店铺|不|大|，|干净|整洁|。|服务态度|不咸不淡|的|，|9|积分|兑换|的|，|也|可以|理解|\u0002|三|、|食品|：|有|一句|话|真的|很|对|—|不作|死|就|不会|死|。|本来|不|喜欢|喝茶|，|但|作为|吃货|，|没尝过|黑龙|茶|，|觉得|还是|有点|介意|。|刚好|有|9|积分|，|就|鼓起勇气|尝试|一下|。|要|的|常温|的|红茶|，|想到|热量|问题|，|少糖|，|也|没有|加|配料|。|然后|就|悲剧|了|，|茶|很大|一杯|，|但是|苦|呀|，|什么|伯爵|红茶|，|我|都|感觉|不|出来|了|，|又|不是|单独|泡|的|，|也|没有|什么|茶|香味|。|实在|是|没|办法|，|苦|的|喝|了|几口|就|喝|不|下去|了|。|\u0002|可能|多|加糖|和|布丁|之类|的|配料|会|好|很多|吧|，|不过|份量|的确|很大|一杯|\" 432\n2018-10-19 15:37:01 0:03:26 \"非常喜欢去新开的有特色的店品尝，有幸被大众点评网同城聚会抽到黄金替补免费品鉴的机会，我感到十分幸运！红不让台湾特色餐厅位于李沧万达金街1号入口扶梯旁，交通便利，停车方便。店面小资，适合举行小型派对。走近店门，服务员立刻开门迎接并且热情的打招呼。进入店面，环顾四周，鹅黄的灯光下透露出温馨慵懒的气氛，店家匠心独居，屋内的摆设典雅质朴。我们大家围坐在一起开始品尝台湾特色美食，前菜是鸡排沙拉，鸡排外焦里嫩，沙拉酸爽开胃陪的饮品是本店招牌—寒天奶栋，口感丝化。在我们的玩闹嘻戏中，硬菜短上来了——招牌全垒打拼盘，样子可爱，味道独特，被大家迅雷不及掩耳盗铃之势一扫而光。紧接着——等一个人小火锅，西班牙海鲜焗饭，黑椒牛柳焗饭海鲜焗烤嫩鸡排上桌了，食材琳琅满目，令人目不暇接。人多力量大，盘子渐渐见底了，新菜品——普罗旺斯田园披萨，台湾卤肉饭，秘制鸡腿饭，招牌巨蛋烧，阳光手打面，超级霸大热狗震撼来袭。\u0002这里特别提一下普罗旺斯田园披萨，顶上配料五颜六色，芝士浓郁，饼胚酥脆，搭配沙拉和洋葱圈口味绝佳。还有在卤肉饭，鸡腿饭，手打面扮演重要角色的酱料，里面居然搭配了小鱼干，补钙又美味。\u0002环境搭配合理，既有闺密情侣说悄悄话的私密空间，又有三五好友畅饮阔聊的长桌吧台，气氛轻松惬意，互不打扰。\u0002红不让台湾特色餐厅绝对是小资的你餐饮休闲，畅聊发呆的绝佳选择，千万不要错过！\" \"|非|常|喜|欢|去|新|开|的|有|特|色|的|店|品|尝|，|有|幸|被|大|众|点|评|网|同|城|聚|会|抽|到|黄|金|替|补|免|费|品|鉴|的|机|会|，|我|感|到|十|分|幸|运|！|红|不|让|台|湾|特|色|餐|厅|位|于|李|沧|万|达|金|街|1|号|入|口|扶|梯|旁|，|交|通|便|利|，|停|车|方|便|。|店|面|小|资|，|适|合|举|行|小|型|派|对|。|走|近|店|门|，|服|务|员|立|刻|开|门|迎|接|并|且|热|情|的|打|招|呼|。|进|入|店|面|，|环|顾|四|周|，|鹅|黄|的|灯|光|下|透|露|出|温|馨|慵|懒|的|气|氛|，|店|家|匠|心|独|居|，|屋|内|的|摆|设|典|雅|质|朴|。|我|们|大|家|围|坐|在|一|起|开|始|品|尝|台|湾|特|色|美|食|，|前|菜|是|鸡|排|沙|拉|，|鸡|排|外|焦|里|嫩|，|沙|拉|酸|爽|开|胃|陪|的|饮|品|是|本|店|招|牌|—|寒|天|奶|栋|，|口|感|丝|化|。|在|我|们|的|玩|闹|嘻|戏|中|，|硬|菜|短|上|来|了|—|—|招|牌|全|垒|打|拼|盘|，|样|子|可|爱|，|味|道|独|特|，|被|大|家|迅|雷|不|及|掩|耳|盗|铃|之|势|一|扫|而|光|。|紧|接|着|—|—|等|一|个|人|小|火|锅|，|西|班|牙|海|鲜|焗|饭|，|黑|椒|牛|柳|焗|饭|海|鲜|焗|烤|嫩|鸡|排|上|桌|了|，|食|材|琳|琅|满|目|，|令|人|目|不|暇|接|。|人|多|力|量|大|，|盘|子|渐|渐|见|底|了|，|新|菜|品|—|—|普|罗|旺|斯|田|园|披|萨|，|台|湾|卤|肉|饭|，|秘|制|鸡|腿|饭|，|招|牌|巨|蛋|烧|，|阳|光|手|打|面|，|超|级|霸|大|热|狗|震|撼|来|袭|。|\u0002|这|里|特|别|提|一|下|普|罗|旺|斯|田|园|披|萨|，|顶|上|配|料|五|颜|六|色|，|芝|士|浓|郁|，|饼|胚|酥|脆|，|搭|配|沙|拉|和|洋|葱|圈|口|味|绝|佳|。|还|有|在|卤|肉|饭|，|鸡|腿|饭|，|手|打|面|扮|演|重|要|角|色|的|酱|料|，|里|面|居|然|搭|配|了|小|鱼|干|，|补|钙|又|美|味|。|\u0002|环|境|搭|配|合|理|，|既|有|闺|密|情|侣|说|悄|悄|话|的|私|密|空|间|，|又|有|三|五|好|友|畅|饮|阔|聊|的|长|桌|吧|台|，|气|氛|轻|松|惬|意|，|互|不|打|扰|。|\u0002|红|不|让|台|湾|特|色|餐|厅|绝|对|是|小|资|的|你|餐|饮|休|闲|，|畅|聊|发|呆|的|绝|佳|选|择|，|千|万|不|要|错|过|！|\"|\"|非常|喜欢|去|新开|的|有|特色|的|店|品尝|，|有幸|被|大众|点评|网同城|聚会|抽到|黄金|替补|免费|品鉴|的|机会|，|我|感到|十分|幸运|！|红|不让|台湾|特色|餐厅|位于|李沧|万达|金街|1|号|入口|扶梯|旁|，|交通|便利|，|停车|方便|。|店面|小资|，|适合|举行|小型|派对|。|走近|店门|，|服务员|立刻|开门|迎接|并且|热情|的|打招呼|。|进入|店面|，|环顾四周|，|鹅黄|的|灯光|下|透露|出|温馨|慵懒|的|气氛|，|店家|匠心|独居|，|屋内|的|摆设|典雅|质朴|。|我们|大家|围坐在|一起|开始|品尝|台湾|特色美食|，|前菜|是|鸡排|沙拉|，|鸡排|外焦里嫩|，|沙拉|酸爽|开胃|陪|的|饮品|是|本店|招牌|—|寒天|奶栋|，|口感|丝化|。|在|我们|的|玩闹|嘻戏|中|，|硬菜|短|上来|了|—|—|招牌|全垒打|拼盘|，|样子|可爱|，|味道|独特|，|被|大家|迅雷不及|掩耳盗铃|之势|一扫而光|。|紧接着|—|—|等|一个|人|小火锅|，|西班牙|海鲜|焗|饭|，|黑椒|牛柳|焗|饭|海鲜|焗|烤|嫩|鸡排|上桌|了|，|食材|琳琅满目|，|令人|目不暇接|。|人多|力量|大|，|盘子|渐渐|见底|了|，|新|菜品|—|—|普罗旺斯|田园|披萨|，|台湾|卤肉饭|，|秘制|鸡腿饭|，|招牌|巨蛋|烧|，|阳光|手|打面|，|超级|霸大|热狗|震撼|来袭|。|\u0002|这里|特别|提|一下|普罗旺斯|田园|披萨|，|顶上|配料|五颜六色|，|芝士|浓郁|，|饼|胚|酥脆|，|搭配|沙拉|和|洋葱|圈|口味|绝佳|。|还有|在|卤肉饭|，|鸡腿饭|，|手|打面|扮演|重要|角色|的|酱料|，|里面|居然|搭配|了|小鱼|干|，|补钙|又|美味|。|\u0002|环境|搭配|合理|，|既有|闺密|情侣|说|悄悄话|的|私密|空间|，|又|有|三五|好友|畅饮|阔聊|的|长桌|吧台|，|气氛|轻松|惬意|，|互不|打扰|。|\u0002|红|不让|台湾|特色|餐厅|绝对|是|小资|的|你|餐饮|休闲|，|畅聊|发呆|的|绝佳|选择|，|千万|不要|错过|！|\" 917\n2018-10-19 15:37:21 0:03:46 \"位于昆明新亚洲体育场的上岛咖啡，至今已有500多家连锁店遍布中国大江南北，成为目前国内最受欢迎的咖啡连锁餐厅之一。上岛咖啡执著于\"香醇、甘美\"的极致品质的制作理念；在店面设计方面，上岛融合了经典与时尚的理念，独具一格的店面设计，让上岛咖啡在春城声名远扬。走进这里，阳光的明媚与古朴的原木色绝妙的结合让你为之赞叹，坐在落地玻璃窗边的小几旁，沐浴一身的温暖阳光让人感到懒洋洋的舒服。在一入门的书架上捡一本喜欢的书，叫上一杯香浓的咖啡，看窗外的车水马龙，行行色色的行人，生活就在这样的细细品味中渗出丝丝甜美。除了各式各样的咖啡供您选择以外，还有各种佐咖啡的小点也十分精美。这里的食物是以台湾风味为主的，制作精致的盛具加上色香味俱全的可口美食让你在感观上得到最大的满足。上岛咖啡新亚洲店总的来说还不错，位置比较隐蔽一点点，环境还不错，环境很好，而且很安静，就是位置对于我们来说不是特别好找，东西很多，还有红酒，喝着红酒别有一番滋味，整个店面在二楼占地不大，晚上五点多去人不多，牛排沙拉土司都还行,罗宋汤很好喝，沙拉也不错，牛排要的八分熟，感觉有点老了，下次去要七分熟应该刚刚好，服务态度也不错，很安静，很舒服，是个放松心情的好地方。团的也划算，总之很满意，还会去的。\" \"|位|于|昆|明|新|亚|洲|体|育|场|的|上|岛|咖|啡|，|至|今|已|有|5|0|0|多|家|连|锁|店|遍|布|中|国|大|江|南|北|，|成|为|目|前|国|内|最|受|欢|迎|的|咖|啡|连|锁|餐|厅|之|一|。|上|岛|咖|啡|执|著|于|\"|香|醇|、|甘|美|\"|的|极|致|品|质|的|制|作|理|念|；|在|店|面|设|计|方|面|，|上|岛|融|合|了|经|典|与|时|尚|的|理|念|，|独|具|一|格|的|店|面|设|计|，|让|上|岛|咖|啡|在|春|城|声|名|远|扬|。|走|进|这|里|，|阳|光|的|明|媚|与|古|朴|的|原|木|色|绝|妙|的|结|合|让|你|为|之|赞|叹|，|坐|在|落|地|玻|璃|窗|边|的|小|几|旁|，|沐|浴|一|身|的|温|暖|阳|光|让|人|感|到|懒|洋|洋|的|舒|服|。|在|一|入|门|的|书|架|上|捡|一|本|喜|欢|的|书|，|叫|上|一|杯|香|浓|的|咖|啡|，|看|窗|外|的|车|水|马|龙|，|行|行|色|色|的|行|人|，|生|活|就|在|这|样|的|细|细|品|味|中|渗|出|丝|丝|甜|美|。|除|了|各|式|各|样|的|咖|啡|供|您|选|择|以|外|，|还|有|各|种|佐|咖|啡|的|小|点|也|十|分|精|美|。|这|里|的|食|物|是|以|台|湾|风|味|为|主|的|，|制|作|精|致|的|盛|具|加|上|色|香|味|俱|全|的|可|口|美|食|让|你|在|感|观|上|得|到|最|大|的|满|足|。|上|岛|咖|啡|新|亚|洲|店|总|的|来|说|还|不|错|，|位|置|比|较|隐|蔽|一|点|点|，|环|境|还|不|错|，|环|境|很|好|，|而|且|很|安|静|，|就|是|位|置|对|于|我|们|来|说|不|是|特|别|好|找|，|东|西|很|多|，|还|有|红|酒|，|喝|着|红|酒|别|有|一|番|滋|味|，|整|个|店|面|在|二|楼|占|地|不|大|，|晚|上|五|点|多|去|人|不|多|，|牛|排|沙|拉|土|司|都|还|行|,|罗|宋|汤|很|好|喝|，|沙|拉|也|不|错|，|牛|排|要|的|八|分|熟|，|感|觉|有|点|老|了|，|下|次|去|要|七|分|熟|应|该|刚|刚|好|，|服|务|态|度|也|不|错|，|很|安|静|，|很|舒|服|，|是|个|放|松|心|情|的|好|地|方|。|团|的|也|划|算|，|总|之|很|满|意|，|还|会|去|的|。|\"|\"|位于|昆明|新|亚洲|体育场|的|上|岛|咖啡|，|至今已有|500|多家|连锁店|遍布|中国|大江南北|，|成为|目前|国内|最|受欢迎|的|咖啡|连锁|餐厅|之一|。|上|岛|咖啡|执著|于|\"|香醇|、|甘美|\"|的|极致|品质|的|制作|理念|；|在|店面|设计|方面|，|上|岛|融合|了|经典|与|时尚|的|理念|，|独具一格|的|店面|设计|，|让|上|岛|咖啡|在|春城|声名|远扬|。|走进|这里|，|阳光|的|明媚|与|古朴|的|原木色|绝妙|的|结合|让|你|为|之|赞叹|，|坐在|落地|玻璃窗|边|的|小|几旁|，|沐浴|一身|的|温暖|阳光|让|人|感到|懒洋洋|的|舒服|。|在|一|入门|的|书架上|捡|一本|喜欢|的|书|，|叫|上|一杯|香浓|的|咖啡|，|看|窗外|的|车水马龙|，|行行色色|的|行人|，|生活|就|在|这样|的|细细品味|中|渗出|丝丝|甜美|。|除了|各式各样|的|咖啡|供|您|选择|以外|，|还有|各种|佐|咖啡|的|小点|也|十分|精美|。|这里|的|食物|是|以|台湾|风味|为主|的|，|制作|精致|的|盛具|加上|色香味|俱全|的|可口|美食|让你在|感观|上|得到|最大|的|满足|。|上|岛|咖啡|新|亚洲|店|总的来说|还|不错|，|位置|比较|隐蔽|一点点|，|环境|还|不错|，|环境|很|好|，|而且|很|安静|，|就是|位置|对于|我们|来说|不是|特别|好找|，|东西|很多|，|还有|红酒|，|喝|着|红酒|别有|一番滋味|，|整个|店面|在|二楼|占地|不|大|，|晚上|五点|多去|人|不|多|，|牛排|沙拉|土司|都|还行|,|罗宋汤|很|好喝|，|沙拉|也|不错|，|牛排|要|的|八分熟|，|感觉|有点|老|了|，|下次|去|要|七分|熟|应该|刚刚|好|，|服务态度|也|不错|，|很|安静|，|很|舒服|，|是|个|放松|心情|的|好|地方|。|团|的|也|划算|，|总之|很|满意|，|还会|去|的|。|\" 859\n2018-10-19 15:37:42 0:04:07 \"我想说他们家的优惠活动好持久啊，我预售的时候买的券，前两天心血来潮去吃的活动还在继续\u0002首先说下服务，因为和男票开车去的，有点不认路，老板很耐心的在电话里帮我们指路，到了门店之后也帮我们推荐了他们家做的比较地道的伤心凉粉，说是厨师是四川那边来的。\u0002环境呢比较简单干净，去的时候下午一点多了，还有四五桌人在用餐\u0002口味对于我而言点了麻辣的口感正正好，男票比较能吃辣，相对而言觉得他们家的麻辣口感麻有了，辣还欠缺一点，老板娘说考虑到客人口味不同所以没敢放太多辣椒，能吃辣的朋友可以考虑下单之前和老板先说好。鱼呢我们选的是黑鱼，2.9斤的鱼加上一盆我以为没有什么东西实际上东西很多的锅底，我们吃的饱饱的，最后以为吃的差不多了，打包一看简直像没动过一样，分量还是满足的，鱼比较新鲜。伤心凉粉很辣，不过口味也蛮好吃的。\u0002总的来说，性价比还是可以的，两个人吃了大概160左右，用了团购券的话一百块不到，会考虑下次再来\" \"|我|想|说|他|们|家|的|优|惠|活|动|好|持|久|啊|，|我|预|售|的|时|候|买|的|券|，|前|两|天|心|血|来|潮|去|吃|的|活|动|还|在|继|续|\u0002|首|先|说|下|服|务|，|因|为|和|男|票|开|车|去|的|，|有|点|不|认|路|，|老|板|很|耐|心|的|在|电|话|里|帮|我|们|指|路|，|到|了|门|店|之|后|也|帮|我|们|推|荐|了|他|们|家|做|的|比|较|地|道|的|伤|心|凉|粉|，|说|是|厨|师|是|四|川|那|边|来|的|。|\u0002|环|境|呢|比|较|简|单|干|净|，|去|的|时|候|下|午|一|点|多|了|，|还|有|四|五|桌|人|在|用|餐|\u0002|口|味|对|于|我|而|言|点|了|麻|辣|的|口|感|正|正|好|，|男|票|比|较|能|吃|辣|，|相|对|而|言|觉|得|他|们|家|的|麻|辣|口|感|麻|有|了|，|辣|还|欠|缺|一|点|，|老|板|娘|说|考|虑|到|客|人|口|味|不|同|所|以|没|敢|放|太|多|辣|椒|，|能|吃|辣|的|朋|友|可|以|考|虑|下|单|之|前|和|老|板|先|说|好|。|鱼|呢|我|们|选|的|是|黑|鱼|，|2|.|9|斤|的|鱼|加|上|一|盆|我|以|为|没|有|什|么|东|西|实|际|上|东|西|很|多|的|锅|底|，|我|们|吃|的|饱|饱|的|，|最|后|以|为|吃|的|差|不|多|了|，|打|包|一|看|简|直|像|没|动|过|一|样|，|分|量|还|是|满|足|的|，|鱼|比|较|新|鲜|。|伤|心|凉|粉|很|辣|，|不|过|口|味|也|蛮|好|吃|的|。|\u0002|总|的|来|说|，|性|价|比|还|是|可|以|的|，|两|个|人|吃|了|大|概|1|6|0|左|右|，|用|了|团|购|券|的|话|一|百|块|不|到|，|会|考|虑|下|次|再|来|\"|\"|我|想|说|他们|家|的|优惠活动|好|持久|啊|，|我|预售|的|时候|买|的|券|，|前两天|心血来潮|去|吃|的|活动|还|在|继续|\u0002|首先|说|下|服务|，|因为|和|男票|开车|去|的|，|有点|不|认路|，|老板|很|耐心|的|在|电话|里|帮|我们|指路|，|到|了|门店|之后|也|帮|我们|推荐|了|他们|家|做|的|比较|地道|的|伤心|凉粉|，|说|是|厨师|是|四川|那边|来|的|。|\u0002|环境|呢|比较简单|干净|，|去|的|时候|下午|一点多|了|，|还有|四五桌|人|在|用餐|\u0002|口味|对于|我|而言|点|了|麻辣|的|口感|正|正好|，|男票|比较|能|吃|辣|，|相对而言|觉得|他们|家|的|麻辣|口感|麻有|了|，|辣|还|欠缺|一点|，|老板娘|说|考虑|到|客人|口味|不同|所以|没敢|放太多|辣椒|，|能|吃|辣|的|朋友|可以|考虑|下单|之前|和|老板|先|说好|。|鱼|呢|我们|选|的|是|黑鱼|，|2.9|斤|的|鱼|加上|一盆|我|以为|没有|什么|东西|实际上|东西|很多|的|锅底|，|我们|吃|的|饱饱|的|，|最后|以为|吃|的|差不多|了|，|打包|一看|简直|像|没动|过|一样|，|分量|还是|满足|的|，|鱼|比较|新鲜|。|伤心|凉粉|很辣|，|不过|口味|也|蛮|好吃|的|。|\u0002|总的来说|，|性价比|还是|可以|的|，|两个|人|吃|了|大概|160|左右|，|用|了|团购|券|的话|一百块|不到|，|会|考虑|下次|再|来|\" 661\n2018-10-19 15:38:02 0:04:27 \"店的位置很好找，来了不止一次了。环境很好，人气很旺，服务很好，菜品很赞。白水都是放在高脚杯里，热水。上菜速度不错。鸭舌很入味，量还可以。脆脆的很喜欢。口水鸡超级给力，辣椒香而不燥，芝麻香，鸡肉很嫩，底下还有笋，比较爽口。麻酱油麦菜特别解辣，麻酱量大，微甜。水煮鱼鱼片鲜嫩，辣椒不会太辣，麻椒很给力。豆芽量大爽口。豆花好大一锅，小料配了酥黄豆，葱，酱汁，跟豆花一起，一吃好几碗。特别满足的一顿饭。继续支持！\" \"|店|的|位|置|很|好|找|，|来|了|不|止|一|次|了|。|环|境|很|好|，|人|气|很|旺|，|服|务|很|好|，|菜|品|很|赞|。|白|水|都|是|放|在|高|脚|杯|里|，|热|水|。|上|菜|速|度|不|错|。|鸭|舌|很|入|味|，|量|还|可|以|。|脆|脆|的|很|喜|欢|。|口|水|鸡|超|级|给|力|，|辣|椒|香|而|不|燥|，|芝|麻|香|，|鸡|肉|很|嫩|，|底|下|还|有|笋|，|比|较|爽|口|。|麻|酱|油|麦|菜|特|别|解|辣|，|麻|酱|量|大|，|微|甜|。|水|煮|鱼|鱼|片|鲜|嫩|，|辣|椒|不|会|太|辣|，|麻|椒|很|给|力|。|豆|芽|量|大|爽|口|。|豆|花|好|大|一|锅|，|小|料|配|了|酥|黄|豆|，|葱|，|酱|汁|，|跟|豆|花|一|起|，|一|吃|好|几|碗|。|特|别|满|足|的|一|顿|饭|。|继|续|支|持|！|\"|\"|店|的|位置|很|好找|，|来|了|不止一次|了|。|环境|很|好|，|人气|很旺|，|服务|很|好|，|菜品|很赞|。|白水|都|是|放在|高脚杯|里|，|热水|。|上菜|速度|不错|。|鸭舌|很|入味|，|量|还|可以|。|脆脆|的|很|喜欢|。|口水鸡|超级|给力|，|辣椒|香而|不燥|，|芝麻|香|，|鸡肉|很嫩|，|底下|还有|笋|，|比较|爽口|。|麻酱|油麦|菜|特别|解辣|，|麻酱|量|大|，|微甜|。|水煮鱼|鱼片|鲜嫩|，|辣椒|不会|太辣|，|麻椒|很|给|力|。|豆芽|量|大|爽口|。|豆花|好大|一锅|，|小料|配|了|酥|黄豆|，|葱|，|酱汁|，|跟|豆花|一起|，|一吃|好几碗|。|特别|满足|的|一顿饭|。|继续|支持|！|\" 337\n2018-10-19 17:11:03 0:00:13 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:11:59 0:00:12 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:21:39 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:23:51 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:29:21 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:41:29 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:48:42 0:00:15 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:05:48 0:00:09 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:40:43 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:45:17 0:00:09 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:48:18 0:03:10 \"吃过最完美的一顿餐厅周午餐，前菜，主菜，甜品，饮料，居然前菜和主菜还都有配酒，真是大爱啊[色][色][色]。先上的面包配黄油，后悔不应该都吃了，害的主菜吃不下啊！服务员还会问需不需要再加，还好没有贪心，嘿嘿。前菜的芝士和冷肉拼盘，量很足，然后能说好喜欢那个白色的拌酱嘛～前菜配干白或者粉红葡萄酒，很搭。主菜被通知已经没有三文鱼和鸭腿了，只能换了牛肉千层面和半只烤春鸡配土豆，配的干红。土豆好甜，春鸡和千层面量太大，吃撑了我们两个女生！最后还有甜品，推荐酸奶，感觉有用cheese，很特别。提拉米苏有点偏甜，所以最后配的黑咖啡，真是直接解腻的。预定的时候以为只有一杯酒，想不到配的是两杯酒，真是太划算了！地方不大，但是装修的很舒服，也不会有太簇拥的感觉。酒定的价格也不贵，下次可以和朋友再来小聚。\" \"|吃|过|最|完|美|的|一|顿|餐|厅|周|午|餐|，|前|菜|，|主|菜|，|甜|品|，|饮|料|，|居|然|前|菜|和|主|菜|还|都|有|配|酒|，|真|是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面|包|配|黄|油|，|后|悔|不|应|该|都|吃|了|，|害|的|主|菜|吃|不|下|啊|！|服|务|员|还|会|问|需|不|需|要|再|加|，|还|好|没|有|贪|心|，|嘿|嘿|。|前|菜|的|芝|士|和|冷|肉|拼|盘|，|量|很|足|，|然|后|能|说|好|喜|欢|那|个|白|色|的|拌|酱|嘛|～|前|菜|配|干|白|或|者|粉|红|葡|萄|酒|，|很|搭|。|主|菜|被|通|知|已|经|没|有|三|文|鱼|和|鸭|腿|了|，|只|能|换|了|牛|肉|千|层|面|和|半|只|烤|春|鸡|配|土|豆|，|配|的|干|红|。|土|豆|好|甜|，|春|鸡|和|千|层|面|量|太|大|，|吃|撑|了|我|们|两|个|女|生|！|最|后|还|有|甜|品|，|推|荐|酸|奶|，|感|觉|有|用|c|h|e|e|s|e|，|很|特|别|。|提|拉|米|苏|有|点|偏|甜|，|所|以|最|后|配|的|黑|咖|啡|，|真|是|直|接|解|腻|的|。|预|定|的|时|候|以|为|只|有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真|是|太|划|算|了|！|地|方|不|大|，|但|是|装|修|的|很|舒|服|，|也|不|会|有|太|簇|拥|的|感|觉|。|酒|定|的|价|格|也|不|贵|，|下|次|可|以|和|朋|友|再|来|小|聚|。|\"|\"|吃|过|最|完美|的|一|顿|餐厅|周|午餐|，|前菜|，|主菜|，|甜品|，|饮料|，|居然|前菜|和|主菜|还|都|有|配酒|，|真是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面包|配|黄油|，|后悔|不|应该|都|吃|了|，|害|的|主菜|吃|不|下|啊|！|服务员|还|会|问|需|不|需要|再加|，|还好|没有|贪心|，|嘿嘿|。|前菜|的|芝士|和|冷|肉|拼盘|，|量|很|足|，|然后|能|说好|喜欢|那个|白色|的|拌酱|嘛|～|前菜|配|干白|或者|粉红|葡萄酒|，|很|搭|。|主菜|被|通知|已经|没有|三文鱼|和|鸭|腿|了|，|只|能|换了|牛肉|千|层面|和|半|只|烤|春|鸡|配|土豆|，|配|的|干红|。|土豆|好|甜|，|春鸡|和|千|层|面量|太|大|，|吃|撑|了|我们|两|个|女生|！|最后|还|有|甜品|，|推荐|酸奶|，|感觉|有用|cheese|，|很|特别|。|提拉|米|苏|有点|偏|甜|，|所以|最后|配|的|黑|咖啡|，|真是|直接|解腻|的|。|预定|的|时候|以为|只有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真是|太|划算|了|！|地方|不|大|，|但是|装修|的|很|舒服|，|也|不|会|有|太|簇拥|的|感觉|。|酒|定|的|价格|也|不|贵|，|下次|可以|和|朋友|再来|小聚|。|\" 604\n2018-10-19 18:51:11 0:06:03 \"渔乐圈主题餐厅听名字觉得是一家吃鱼的餐厅，实际上是一家港式茶餐厅，当然这家港式茶餐厅真的很奇葩，香港人吃东西讲究清单，这家点的菜品我吃完之后只有一个印象，就是咸，这家店的位置在写字楼里面的，一般人很难找到，不知道老板怎么想的，会选在这里，边上就是一家保险公司。我是周六中午去吃的，人很少，几乎没几桌客人，我看了看菜单，服务员是推荐点酸菜鱼，这里的酸菜鱼是按斤卖的，觉得价格小贵没点，点了个乳鸽，这里的乳鸽的味道有点怪，不想平常吃到的都是脆脆的。点了皮蛋瘦肉粥，味道还行，不好不坏，还点了叉烧肠粉，都是肥肉，味道马马虎虎。还点了鱼香茄子煲，味道是不错，就是太油了，另外点了个豉汁蒸排骨，这个真的不好吃，排骨不光拍了嫩肉粉，还咬不动。吃完之后我跟店里类似主管的反映菜太咸，她完全不当回事，这样怎么会进步呢！\" \"|渔|乐|圈|主|题|餐|厅|听|名|字|觉|得|是|一|家|吃|鱼|的|餐|厅|，|实|际|上|是|一|家|港|式|茶|餐|厅|，|当|然|这|家|港|式|茶|餐|厅|真|的|很|奇|葩|，|香|港|人|吃|东|西|讲|究|清|单|，|这|家|点|的|菜|品|我|吃|完|之|后|只|有|一|个|印|象|，|就|是|咸|，|这|家|店|的|位|置|在|写|字|楼|里|面|的|，|一|般|人|很|难|找|到|，|不|知|道|老|板|怎|么|想|的|，|会|选|在|这|里|，|边|上|就|是|一|家|保|险|公|司|。|我|是|周|六|中|午|去|吃|的|，|人|很|少|，|几|乎|没|几|桌|客|人|，|我|看|了|看|菜|单|，|服|务|员|是|推|荐|点|酸|菜|鱼|，|这|里|的|酸|菜|鱼|是|按|斤|卖|的|，|觉|得|价|格|小|贵|没|点|，|点|了|个|乳|鸽|，|这|里|的|乳|鸽|的|味|道|有|点|怪|，|不|想|平|常|吃|到|的|都|是|脆|脆|的|。|点|了|皮|蛋|瘦|肉|粥|，|味|道|还|行|，|不|好|不|坏|，|还|点|了|叉|烧|肠|粉|，|都|是|肥|肉|，|味|道|马|马|虎|虎|。|还|点|了|鱼|香|茄|子|煲|，|味|道|是|不|错|，|就|是|太|油|了|，|另|外|点|了|个|豉|汁|蒸|排|骨|，|这|个|真|的|不|好|吃|，|排|骨|不|光|拍|了|嫩|肉|粉|，|还|咬|不|动|。|吃|完|之|后|我|跟|店|里|类|似|主|管|的|反|映|菜|太|咸|，|她|完|全|不|当|回|事|，|这|样|怎|么|会|进|步|呢|！|\"|\"|渔乐圈|主题|餐厅|听|名字|觉得|是|一|家|吃鱼|的|餐厅|，|实际上|是|一|家|港式|茶|餐厅|，|当然|这|家|港式|茶|餐厅|真的|很|奇葩|，|香港人|吃|东西|讲究|清单|，|这|家|点|的|菜品|我|吃完|之后|只|有|一|个|印象|，|就是|咸|，|这|家|店|的|位置|在|写字楼|里面|的|，|一般|人|很|难|找到|，|不|知道|老板|怎么|想|的|，|会|选|在|这里|，|边上|就|是|一|家|保险|公司|。|我|是|周六|中午|去|吃|的|，|人|很少|，|几乎|没|几|桌|客人|，|我|看|了|看|菜单|，|服务员|是|推荐|点|酸菜鱼|，|这里|的|酸菜|鱼|是|按|斤|卖的|，|觉得|价格|小|贵|没|点|，|点|了|个|乳鸽|，|这里|的|乳鸽|的|味道|有点|怪|，|不|想|平常|吃到|的|都|是|脆脆|的|。|点|了|皮蛋|瘦肉粥|，|味道|还行|，|不好不坏|，|还|点|了|叉烧|肠粉|，|都|是|肥肉|，|味道|马马虎虎|。|还|点|了|鱼香|茄子煲|，|味道|是|不错|，|就是|太|油了|，|另外|点|了|个|豉汁蒸|排骨|，|这个|真的|不好吃|，|排骨|不|光|拍|了|嫩肉粉|，|还|咬|不|动|。|吃完|之后|我|跟|店里|类似|主管|的|反映|菜|太|咸|，|她|完全|不当|回事|，|这样|怎么|会|进步|呢|！|\" 597\n2018-10-19 18:53:59 0:08:51 \"去了不少次，\u0003地址也比较好找，在中原路与工人路交叉口向南200米，\u0003店里的装饰和设计比较古朴，很有解放前的味道。这次团购的是2～3人餐，\u0003三菜一汤，\u0003还有三份米，分量也不错\u0003菜差不多够三个吃，就是米的分量不大，不过可以加钱要米饭，团购价四十九元还是比较实惠的，菜品属于偏川味，\u0003都是辣的\u0003属于比较开胃的菜。前台态度也不错，服务员\u0003上菜更是一路小跑，\u0003上菜速度很快，给服务员小哥点个赞。希望店家推出更多的更实惠的团购套餐。\" \"|去|了|不|少|次|，|\u0003|地|址|也|比|较|好|找|，|在|中|原|路|与|工|人|路|交|叉|口|向|南|2|0|0|米|，|\u0003|店|里|的|装|饰|和|设|计|比|较|古|朴|，|很|有|解|放|前|的|味|道|。|这|次|团|购|的|是|2|～|3|人|餐|，|\u0003|三|菜|一|汤|，|\u0003|还|有|三|份|米|，|分|量|也|不|错|\u0003|菜|差|不|多|够|三|个|吃|，|就|是|米|的|分|量|不|大|，|不|过|可|以|加|钱|要|米|饭|，|团|购|价|四|十|九|元|还|是|比|较|实|惠|的|，|菜|品|属|于|偏|川|味|，|\u0003|都|是|辣|的|\u0003|属|于|比|较|开|胃|的|菜|。|前|台|态|度|也|不|错|，|服|务|员|\u0003|上|菜|更|是|一|路|小|跑|，|\u0003|上|菜|速|度|很|快|，|给|服|务|员|小|哥|点|个|赞|。|希|望|店|家|推|出|更|多|的|更|实|惠|的|团|购|套|餐|。|\"|\"|去|了|不少|次|，|地址|也|比较|好找|，|在|中原|路|与|工人|路|交叉口|向南|200|米|，|店|里|的|装饰|和|设计|比较|古朴|，|很|有|解放|前|的|味道|。|这|次|团购|的|是|2|～|3|人|餐|，|三|菜|一|汤|，|还有|三|份|米|，|分量|也|不错|菜|差不多|够|三|个|吃|，|就是|米|的|分量|不|大|，|不过|可以|加|钱|要|米饭|，|团|购价|四十九|元|还是|比较|实惠|的|，|菜品|属于|偏川味|，|都|是|辣|的|属于|比较|开胃|的|菜|。|前台|态度|也|不错|，|服务员|上菜|更|是|一|路|小跑|，|上菜|速度|很|快|，|给|服务员|小哥|点|个|赞|。|希望|店家|推出|更|多|的|更|实惠|的|团购|套餐|。|\" 356\n2018-10-19 18:56:44 0:11:36 \"还是头一次被点评抽中宵夜套餐的，第一次提前打电话去预约，老板说8点半以后才开始提供宵夜，后面因为有事耽搁了也就没去成。第二次是晚上在家突然就想吃生蚝了，于是就直接过去了，在沈塘桥那里还仔细张望了几下，因为虽说是义海蚝情，但是店面看上去真的很干净完全不像吃烧烤宵夜的样子。然后老板很热情地出来问，我就囧囧地进去了。\u0002才知道这家店白天是茶餐厅，8点以后变身位义海蚝情。看起来生意很不错，里面几乎坐满了人。上菜很快，先上的是一盘酸酸甜甜的小果盘，因为不怎么喜欢吃酸的，所以吃了一两个就作罢，后来听老板说这些酸果是专门从广东那边运过来的，吃完烤串以后再吃这个就十分解腻。接着上了生蚝，分别是蒜蓉和原味的，处理得很干净，而且也不油腻，没有腥味。嫩烤生牛实在太美味了！据老板说这个生牛肉都是每天凌晨去市场买的，如果当天做不完，第二天也不会再用来做这道菜了，因为牛肉经过冷冻以后口感就没有那么鲜嫩了。\u0003后面还有烤韭黄，烤风爪还有烤鸡翅，味道都很棒！\u0002吃完以后，老板还特地过来询问我们的意见，征求我们的建议，非常诚恳，绝对好评！\" \"|还|是|头|一|次|被|点|评|抽|中|宵|夜|套|餐|的|，|第|一|次|提|前|打|电|话|去|预|约|，|老|板|说|8|点|半|以|后|才|开|始|提|供|宵|夜|，|后|面|因|为|有|事|耽|搁|了|也|就|没|去|成|。|第|二|次|是|晚|上|在|家|突|然|就|想|吃|生|蚝|了|，|于|是|就|直|接|过|去|了|，|在|沈|塘|桥|那|里|还|仔|细|张|望|了|几|下|，|因|为|虽|说|是|义|海|蚝|情|，|但|是|店|面|看|上|去|真|的|很|干|净|完|全|不|像|吃|烧|烤|宵|夜|的|样|子|。|然|后|老|板|很|热|情|地|出|来|问|，|我|就|囧|囧|地|进|去|了|。|\u0002|才|知|道|这|家|店|白|天|是|茶|餐|厅|，|8|点|以|后|变|身|位|义|海|蚝|情|。|看|起|来|生|意|很|不|错|，|里|面|几|乎|坐|满|了|人|。|上|菜|很|快|，|先|上|的|是|一|盘|酸|酸|甜|甜|的|小|果|盘|，|因|为|不|怎|么|喜|欢|吃|酸|的|，|所|以|吃|了|一|两|个|就|作|罢|，|后|来|听|老|板|说|这|些|酸|果|是|专|门|从|广|东|那|边|运|过|来|的|，|吃|完|烤|串|以|后|再|吃|这|个|就|十|分|解|腻|。|接|着|上|了|生|蚝|，|分|别|是|蒜|蓉|和|原|味|的|，|处|理|得|很|干|净|，|而|且|也|不|油|腻|，|没|有|腥|味|。|嫩|烤|生|牛|实|在|太|美|味|了|！|据|老|板|说|这|个|生|牛|肉|都|是|每|天|凌|晨|去|市|场|买|的|，|如|果|当|天|做|不|完|，|第|二|天|也|不|会|再|用|来|做|这|道|菜|了|，|因|为|牛|肉|经|过|冷|冻|以|后|口|感|就|没|有|那|么|鲜|嫩|了|。|\u0003|后|面|还|有|烤|韭|黄|，|烤|风|爪|还|有|烤|鸡|翅|，|味|道|都|很|棒|！|\u0002|吃|完|以|后|，|老|板|还|特|地|过|来|询|问|我|们|的|意|见|，|征|求|我|们|的|建|议|，|非|常|诚|恳|，|绝|对|好|评|！|\"|\"|还是|头一|次|被|点评|抽|中|宵夜|套餐|的|，|第一|次|提前|打电话|去|预约|，|老板|说|8|点|半|以后|才|开始|提供|宵夜|，|后面|因为|有|事|耽搁|了|也|就|没|去|成|。|第二|次|是|晚上|在家|突然|就|想|吃|生蚝|了|，|于是|就|直接|过去|了|，|在|沈|塘桥|那里|还|仔细|张望|了|几下|，|因为|虽说|是|义海蚝情|，|但是|店面|看上去|真的|很|干净|完全|不|像|吃|烧烤|宵夜|的|样子|。|然后|老板|很|热情|地|出来|问|，|我|就|囧囧|地|进去|了|。|才|知道|这|家|店|白天|是|茶|餐厅|，|8点|以后|变身|位|义海|蚝情|。|看起来|生意|很|不错|，|里面|几乎|坐满|了|人|。|上菜|很|快|，|先|上|的|是|一|盘|酸酸|甜甜|的|小|果盘|，|因为|不怎么|喜欢|吃|酸|的|，|所以|吃|了|一|两|个|就|作罢|，|后来|听|老板|说|这些|酸|果是|专门|从|广东|那边|运|过来|的|，|吃完|烤|串|以后|再|吃|这个|就|十分|解腻|。|接着|上|了|生蚝|，|分别|是|蒜蓉|和|原味|的|，|处理|得很|干净|，|而且|也|不|油腻|，|没有|腥味|。|嫩烤|生|牛|实在|太|美味|了|！|据|老板|说|这个|生|牛肉|都|是|每天|凌晨|去|市场|买的|，|如果|当天|做|不|完|，|第二|天|也|不|会|再|用|来|做|这|道|菜|了|，|因为|牛肉|经过|冷冻|以后|口感|就|没有|那么|鲜嫩|了|。|后面|还|有|烤|韭黄|，|烤|风|爪|还有|烤|鸡翅|，|味道|都|很|棒|！|吃完|以后|，|老板|还|特地|过来|询问|我们|的|意见|，|征求|我们|的|建议|，|非常|诚恳|，|绝对|好评|！|\" 769\n2018-10-19 18:59:26 0:14:18 \"性价比还是很高的一家店，菜品不算少，只是作为放题的话量稍微多了一点，不能每个品种都吃到，最后还是服务员mm说帮我们写量少点，还是不错的～越到后面客人越多可能就没之前服务那么周到，但总的来说基本没漏单情况～说说味道吧，这家店里所有的虾类都可以试试哦，甜虾很新鲜，什么虾色拉、盐烤大虾还有天妇罗炸虾都很美味哦～刺身类虽然品种不算很多但是188的价格来说算可以了，也很新鲜，飞鱼籽超级好吃的，铁板烧的话味道也不赖，反正这个价位来说算不错了～\" \"|性|价|比|还|是|很|高|的|一|家|店|，|菜|品|不|算|少|，|只|是|作|为|放|题|的|话|量|稍|微|多|了|一|点|，|不|能|每|个|品|种|都|吃|到|，|最|后|还|是|服|务|员|m|m|说|帮|我|们|写|量|少|点|，|还|是|不|错|的|～|越|到|后|面|客|人|越|多|可|能|就|没|之|前|服|务|那|么|周|到|，|但|总|的|来|说|基|本|没|漏|单|情|况|～|说|说|味|道|吧|，|这|家|店|里|所|有|的|虾|类|都|可|以|试|试|哦|，|甜|虾|很|新|鲜|，|什|么|虾|色|拉|、|盐|烤|大|虾|还|有|天|妇|罗|炸|虾|都|很|美|味|哦|～|刺|身|类|虽|然|品|种|不|算|很|多|但|是|1|8|8|的|价|格|来|说|算|可|以|了|，|也|很|新|鲜|，|飞|鱼|籽|超|级|好|吃|的|，|铁|板|烧|的|话|味|道|也|不|赖|，|反|正|这|个|价|位|来|说|算|不|错|了|～|\"|\"|性价比|还是|很|高|的|一|家|店|，|菜品|不|算|少|，|只是|作为|放题|的|话|量|稍微|多|了|一点|，|不|能|每个|品种|都|吃到|，|最后|还是|服务员|mm|说|帮|我们|写量|少|点|，|还是|不错|的|～|越|到|后面|客人|越|多|可能|就|没|之前|服务|那么|周到|，|但|总的来说|基本|没|漏|单|情况|～|说说|味道|吧|，|这|家|店里|所有|的|虾类|都|可以|试试|哦|，|甜虾|很|新鲜|，|什么|虾|色拉|、|盐|烤|大虾|还|有|天|妇罗|炸|虾|都|很|美味|哦|～|刺身|类|虽然|品种|不算|很多|但是|188|的|价格|来说|算|可以|了|，|也|很|新鲜|，|飞鱼籽|超级|好吃|的|，|铁板烧|的话|味道|也|不赖|，|反正|这个|价位|来说|算|不|错|了|～|\" 366\n2018-10-19 19:01:50 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 19:02:28 0:17:20 \"下马坊地铁口出来稍微走一点点就能看到了，一家很小的店面。环境一般般，室内比较昏暗。服务态度还可以，没带钱出门，点单的时候只能想到用团购了。点了辣子鸡面和豌杂面，辣子鸡面上面是几根青菜和4块鸡肉，然后的然后就木有了，鸡块是凉的，需要先放在面汤里面泡会儿。豌杂面的豌豆有一点点酸酸的感觉，和以前吃得不一样。总体来说口味一般般，对于吃面喜欢先喝汤的我来说，总觉得欠缺点什么。没全部吃完，但是可以填饱肚子了。图一是辣子鸡面，会加香菜，不喜欢香菜的要提前说一下。图二是把鸡块吃完之后的素面条；图三为豌杂面。\" \"|下|马|坊|地|铁|口|出|来|稍|微|走|一|点|点|就|能|看|到|了|，|一|家|很|小|的|店|面|。|环|境|一|般|般|，|室|内|比|较|昏|暗|。|服|务|态|度|还|可|以|，|没|带|钱|出|门|，|点|单|的|时|候|只|能|想|到|用|团|购|了|。|点|了|辣|子|鸡|面|和|豌|杂|面|，|辣|子|鸡|面|上|面|是|几|根|青|菜|和|4|块|鸡|肉|，|然|后|的|然|后|就|木|有|了|，|鸡|块|是|凉|的|，|需|要|先|放|在|面|汤|里|面|泡|会|儿|。|豌|杂|面|的|豌|豆|有|一|点|点|酸|酸|的|感|觉|，|和|以|前|吃|得|不|一|样|。|总|体|来|说|口|味|一|般|般|，|对|于|吃|面|喜|欢|先|喝|汤|的|我|来|说|，|总|觉|得|欠|缺|点|什|么|。|没|全|部|吃|完|，|但|是|可|以|填|饱|肚|子|了|。|图|一|是|辣|子|鸡|面|，|会|加|香|菜|，|不|喜|欢|香|菜|的|要|提|前|说|一|下|。|图|二|是|把|鸡|块|吃|完|之|后|的|素|面|条|；|图|三|为|豌|杂|面|。|\"|\"|下马坊|地铁口|出来|稍微|走|一点点|就|能|看到|了|，|一|家|很|小|的|店面|。|环境|一|般般|，|室内|比较|昏暗|。|服务|态度|还|可以|，|没带|钱|出门|，|点|单|的|时候|只能|想到|用|团|购|了|。|点|了|辣子|鸡面|和|豌杂面|，|辣|子鸡|面|上面|是|几|根|青菜|和|4|块|鸡肉|，|然后|的|然后|就|木|有|了|，|鸡块|是|凉|的|，|需要|先|放在|面汤|里面|泡|会儿|。|豌杂面|的|豌豆|有|一点点|酸酸的|感觉|，|和|以前|吃|得|不|一样|。|总体|来说|口味|一般|般|，|对于|吃|面|喜欢|先|喝|汤|的|我|来说|，|总|觉得|欠缺|点|什么|。|没|全部|吃完|，|但是|可以|填饱|肚子|了|。|图|一|是|辣子|鸡面|，|会|加|香菜|，|不|喜欢|香菜|的|要|提前|说|一下|。|图二|是|把|鸡块|吃完|之后|的|素面条|；|图三|为|豌|杂面|。|\" 420\n2018-10-19 19:05:37 0:20:29 \"今天要探的店是位于利时奥特莱斯4楼的阿拉渔歌，位置很好找，交通也便利。我是提前一天预约的，所以到店就有位置了。\u0002店面不大，里面的餐位还真不少。进门的那个大烤炉特别吸引人，忍不住凑近多看了几眼。原来今晚的烤鱼都是出自这个“大家伙”。中的霸王餐是78元的一条海鲈鱼，服务员推荐了几个口味，最后选择的人气较旺的：酱香味的。同时还点了2份配菜：豆芽和土豆粉。\u0002等了大概10分钟，今晚的主角终于登场了！幸好点了配菜，不然只有烤鱼上的几块土豆，怎么吃。鱼烤的火候倒是不错，外焦里嫩，鱼肉有弹性、肉质滑嫩，但鱼是活杀，不是现杀。5元一份的豆芽少的可怜，只有几根，土豆粉倒是不错，q弹爽滑，有嚼劲。\u0002总体评价：客流量不大，基本到了都有餐位的。鱼烤的比较好，调味也到位，但味道放太多了，吃后口干。提个建议：店内的手机信号很差，真心不喜欢。\" \"|今|天|要|探|的|店|是|位|于|利|时|奥|特|莱|斯|4|楼|的|阿|拉|渔|歌|，|位|置|很|好|找|，|交|通|也|便|利|。|我|是|提|前|一|天|预|约|的|，|所|以|到|店|就|有|位|置|了|。|\u0002|店|面|不|大|，|里|面|的|餐|位|还|真|不|少|。|进|门|的|那|个|大|烤|炉|特|别|吸|引|人|，|忍|不|住|凑|近|多|看|了|几|眼|。|原|来|今|晚|的|烤|鱼|都|是|出|自|这|个|“|大|家|伙|”|。|中|的|霸|王|餐|是|7|8|元|的|一|条|海|鲈|鱼|，|服|务|员|推|荐|了|几|个|口|味|，|最|后|选|择|的|人|气|较|旺|的|：|酱|香|味|的|。|同|时|还|点|了|2|份|配|菜|：|豆|芽|和|土|豆|粉|。|\u0002|等|了|大|概|1|0|分|钟|，|今|晚|的|主|角|终|于|登|场|了|！|幸|好|点|了|配|菜|，|不|然|只|有|烤|鱼|上|的|几|块|土|豆|，|怎|么|吃|。|鱼|烤|的|火|候|倒|是|不|错|，|外|焦|里|嫩|，|鱼|肉|有|弹|性|、|肉|质|滑|嫩|，|但|鱼|是|活|杀|，|不|是|现|杀|。|5|元|一|份|的|豆|芽|少|的|可|怜|，|只|有|几|根|，|土|豆|粉|倒|是|不|错|，|q|弹|爽|滑|，|有|嚼|劲|。|\u0002|总|体|评|价|：|客|流|量|不|大|，|基|本|到|了|都|有|餐|位|的|。|鱼|烤|的|比|较|好|，|调|味|也|到|位|，|但|味|道|放|太|多|了|，|吃|后|口|干|。|提|个|建|议|：|店|内|的|手|机|信|号|很|差|，|真|心|不|喜|欢|。|\"|\"|今天|要|探|的|店|是|位于|利时|奥特莱斯|4|楼|的|阿拉|渔歌|，|位置|很|好找|，|交通|也|便利|。|我|是|提前|一|天|预约|的|，|所以|到|店|就|有|位置|了|。|店面|不大|，|里面|的|餐位|还|真|不少|。|进门|的|那个|大|烤炉|特别|吸引|人|，|忍不住|凑近|多|看|了|几|眼|。|原来|今晚|的|烤鱼|都|是|出自|这个|“|大家伙|”|。|中|的|霸王|餐|是|78|元|的|一|条|海|鲈鱼|，|服务员|推荐|了|几|个|口味|，|最后|选择|的|人气|较|旺|的|：|酱|香味|的|。|同时|还|点|了|2|份|配菜|：|豆芽|和|土豆粉|。|等|了|大概|10|分钟|，|今晚|的|主角|终于|登场|了|！|幸好|点|了|配菜|，|不然|只|有|烤鱼|上|的|几|块|土豆|，|怎么|吃|。|鱼|烤的|火候|倒是|不错|，|外焦|里嫩|，|鱼肉|有|弹性|、|肉质|滑嫩|，|但|鱼|是|活杀|，|不是|现杀|。|5|元|一|份|的|豆芽|少|的|可怜|，|只有|几|根|，|土豆粉|倒是|不错|，|q弹|爽滑|，|有|嚼劲|。|总体|评价|：|客流量|不|大|，|基本|到|了|都|有|餐位|的|。|鱼|烤的|比较|好|，|调味|也|到位|，|但|味道|放|太|多|了|，|吃|后|口干|。|提|个|建议|：|店|内|的|手机|信号|很|差|，|真心|不|喜欢|。|\" 616\n2018-10-19 19:05:43 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 19:08:54 0:23:46 \"他家有很多分店\u0003感觉一下子冒出来的是的\u0003以前没怎么见到过\u0003现在随便去哪都能看到\u0003这家也是我新发现的\u0003不知是新开还是老店\u0003他家面分很多种\u0003什么毛细\u0003二细\u0003很多种\u0003以前都吃的普通的\u0003今天尝了毛细的\u0003特别细了了\u0003还有很粗的那种跟面片是的\u0003没见人吃过\u0003图片倒是见过\u0003凉菜就是普通面馆都有的\u0003不算特色了\u0003一小盘\u0003说是可以拚两种\u0003量不大\u0003但是也够吃了\u0003面拉出来很快\u0003吃的时候看见一个大老爷们要了两碗\u0003小姑娘的话一碗都吃不了\u0003辣椒油\u0003也还不错\u0003不算辣\u0003他家单纯说面的话微微偏贵\u0002忘了拍照片了\u0003对了点的双人套餐\u0003没吃完\" \"|他|家|有|很|多|分|店|\u0003|感|觉|一|下|子|冒|出|来|的|是|的|\u0003|以|前|没|怎|么|见|到|过|\u0003|现|在|随|便|去|哪|都|能|看|到|\u0003|这|家|也|是|我|新|发|现|的|\u0003|不|知|是|新|开|还|是|老|店|\u0003|他|家|面|分|很|多|种|\u0003|什|么|毛|细|\u0003|二|细|\u0003|很|多|种|\u0003|以|前|都|吃|的|普|通|的|\u0003|今|天|尝|了|毛|细|的|\u0003|特|别|细|了|了|\u0003|还|有|很|粗|的|那|种|跟|面|片|是|的|\u0003|没|见|人|吃|过|\u0003|图|片|倒|是|见|过|\u0003|凉|菜|就|是|普|通|面|馆|都|有|的|\u0003|不|算|特|色|了|\u0003|一|小|盘|\u0003|说|是|可|以|拚|两|种|\u0003|量|不|大|\u0003|但|是|也|够|吃|了|\u0003|面|拉|出|来|很|快|\u0003|吃|的|时|候|看|见|一|个|大|老|爷|们|要|了|两|碗|\u0003|小|姑|娘|的|话|一|碗|都|吃|不|了|\u0003|辣|椒|油|\u0003|也|还|不|错|\u0003|不|算|辣|\u0003|他|家|单|纯|说|面|的|话|微|微|偏|贵|\u0002|忘|了|拍|照|片|了|\u0003|对|了|点|的|双|人|套|餐|\u0003|没|吃|完|\"|\"|他|家有|很多|分店|感觉|一|下子|冒出|来|的|是的|以前|没|怎么|见到|过|现在|随便|去|哪|都|能|看到|这|家|也|是|我|新|发现|的|不知|是|新开|还是|老店|他|家|面分|很多|种|什么|毛细|二|细|很多|种|以前|都|吃|的|普通|的|今天|尝|了|毛细|的|特别|细了|了|还有|很|粗|的|那|种|跟|面片|是|的|没|见人|吃|过|图片|倒是|见|过|凉菜|就|是|普通|面馆|都|有的|不算|特色|了|一|小|盘|说|是|可以|拚|两|种|量|不|大|但是|也|够|吃|了|面|拉|出来|很|快|吃|的|时候|看见|一|个|大|老爷们|要|了|两|碗|小|姑娘|的话|一|碗|都|吃|不|了|辣椒油|也|还|不错|不|算|辣|他|家|单纯|说|面的|话|微微|偏|贵|忘|了|拍|照片|了|对了|点|的|双人|套餐|没|吃完|\" 415\n2018-10-19 19:09:09 0:03:37 \"吃过最完美的一顿餐厅周午餐，前菜，主菜，甜品，饮料，居然前菜和主菜还都有配酒，真是大爱啊[色][色][色]。先上的面包配黄油，后悔不应该都吃了，害的主菜吃不下啊！服务员还会问需不需要再加，还好没有贪心，嘿嘿。前菜的芝士和冷肉拼盘，量很足，然后能说好喜欢那个白色的拌酱嘛～前菜配干白或者粉红葡萄酒，很搭。主菜被通知已经没有三文鱼和鸭腿了，只能换了牛肉千层面和半只烤春鸡配土豆，配的干红。土豆好甜，春鸡和千层面量太大，吃撑了我们两个女生！最后还有甜品，推荐酸奶，感觉有用cheese，很特别。提拉米苏有点偏甜，所以最后配的黑咖啡，真是直接解腻的。预定的时候以为只有一杯酒，想不到配的是两杯酒，真是太划算了！地方不大，但是装修的很舒服，也不会有太簇拥的感觉。酒定的价格也不贵，下次可以和朋友再来小聚。\" \"|吃|过|最|完|美|的|一|顿|餐|厅|周|午|餐|，|前|菜|，|主|菜|，|甜|品|，|饮|料|，|居|然|前|菜|和|主|菜|还|都|有|配|酒|，|真|是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面|包|配|黄|油|，|后|悔|不|应|该|都|吃|了|，|害|的|主|菜|吃|不|下|啊|！|服|务|员|还|会|问|需|不|需|要|再|加|，|还|好|没|有|贪|心|，|嘿|嘿|。|前|菜|的|芝|士|和|冷|肉|拼|盘|，|量|很|足|，|然|后|能|说|好|喜|欢|那|个|白|色|的|拌|酱|嘛|～|前|菜|配|干|白|或|者|粉|红|葡|萄|酒|，|很|搭|。|主|菜|被|通|知|已|经|没|有|三|文|鱼|和|鸭|腿|了|，|只|能|换|了|牛|肉|千|层|面|和|半|只|烤|春|鸡|配|土|豆|，|配|的|干|红|。|土|豆|好|甜|，|春|鸡|和|千|层|面|量|太|大|，|吃|撑|了|我|们|两|个|女|生|！|最|后|还|有|甜|品|，|推|荐|酸|奶|，|感|觉|有|用|c|h|e|e|s|e|，|很|特|别|。|提|拉|米|苏|有|点|偏|甜|，|所|以|最|后|配|的|黑|咖|啡|，|真|是|直|接|解|腻|的|。|预|定|的|时|候|以|为|只|有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真|是|太|划|算|了|！|地|方|不|大|，|但|是|装|修|的|很|舒|服|，|也|不|会|有|太|簇|拥|的|感|觉|。|酒|定|的|价|格|也|不|贵|，|下|次|可|以|和|朋|友|再|来|小|聚|。|\"|\"|吃|过|最|完美|的|一|顿|餐厅|周|午餐|，|前菜|，|主菜|，|甜品|，|饮料|，|居然|前菜|和|主菜|还|都|有|配酒|，|真是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面包|配|黄油|，|后悔|不|应该|都|吃|了|，|害|的|主菜|吃|不|下|啊|！|服务员|还|会|问|需|不|需要|再加|，|还好|没有|贪心|，|嘿嘿|。|前菜|的|芝士|和|冷|肉|拼盘|，|量|很|足|，|然后|能|说好|喜欢|那个|白色|的|拌酱|嘛|～|前菜|配|干白|或者|粉红|葡萄酒|，|很|搭|。|主菜|被|通知|已经|没有|三文鱼|和|鸭|腿|了|，|只|能|换了|牛肉|千|层面|和|半|只|烤|春|鸡|配|土豆|，|配|的|干红|。|土豆|好|甜|，|春鸡|和|千|层|面量|太|大|，|吃|撑|了|我们|两|个|女生|！|最后|还|有|甜品|，|推荐|酸奶|，|感觉|有用|cheese|，|很|特别|。|提拉|米|苏|有点|偏|甜|，|所以|最后|配|的|黑|咖啡|，|真是|直接|解腻|的|。|预定|的|时候|以为|只有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真是|太|划算|了|！|地方|不|大|，|但是|装修|的|很|舒服|，|也|不|会|有|太|簇拥|的|感觉|。|酒|定|的|价格|也|不|贵|，|下次|可以|和|朋友|再来|小聚|。|\" 604\n2018-10-19 19:12:08 0:27:00 \"和很久没见的高中同学聚会，都很喜欢猫咪，上次约在江南西的某家猫咪主题餐厅，感觉都很好，能和可爱的猫咪亲密接触棒棒哒，于是这次也准备约到猫咪主题的餐厅一边吃饭一边逗猫，在大众点评上看到这家meow1306猫小窝评价看上去都不错，于是愉快地定下了午餐之约（下午还要去买买买~），预定了12点用餐，惭愧地迟到了半小时（友人迷路了半小时呵呵，其实就是体育中心a出口出去直走到路口左转30米左右就到了╮(╯▽╰)╭）幸好到达之时仍然有空位，安全入座。\u0002先说说#环境#，空间蛮大的，全店铺木地板，进门需要换鞋+进行手部消毒，位置刚好正对着太古汇，边上是一排超大落地玻璃窗，能看到体育西路的车水马龙，采光视线都不错，墙壁上的装饰也很用心，我们位置后面是一墙的猫咪春游壁画，樱花之下猫咪们愉快用餐的姿态萌萌哒~座椅用的是矮沙发+配套的木质桌子，沙发满软的，刚好是猫咪很容易能跳上去的高度，桌子的高度也刚刚好，很方便进餐，有一股家的味道，很闲适，最赞的是每张桌子的间隔都很宽敞，坐着一点都不压抑，聊天也不会很受隔壁的影响，不错\u0002说完环境，就轮到最核心的#猫咪#了，与这里宽敞的环境相比，猫咪的数量就完全不成正比，只有小猫六七只，有两只美短（估计还是兄弟来着），还有一直纯白的波斯猫、一只脸黑的暹罗猫，两只扁脸咖啡猫（其中一只脖子套了一个蝴蝶结，另外一只又胖又懒，全程在装地毯），还有一只纯黑的小奶猫（没认出品种，但是身娇体柔易推倒有木有），一只配一桌都嫌不够，不过猫猫都很干净、很乖巧，能抱（不过下一秒就逃），身上也没有什么味道，调教得还算不错。\u0002说完猫咪，再说说食物出品，只能说重点果然在猫，食物就一般般啦，#味道#还可以，但是分量真心少，我们点了一个爆浆鸡腿肉饭（28）、一个番茄肉酱意粉（36）、一壶花果茶（玫瑰花+苹果花36），一共100，团购后88，人均44。先说我的鸡腿饭，味道还ok，是切开的小块鸡腿肉+腌萝卜+洋葱煮的肉酱拌饭，鸡腿肉虽不多但肉都满嫩的，下饭；朋友的番茄肉酱意粉那个分量感觉三口就能吃完，偷尝了一根味道不错，就是性价比很低；花果茶就更坑爹了，壶里面的茶叶花蕾就那么两三颗可怜的漂浮着，茶水谈而无味，根本不值得这个价，差评。\u0002最后稍稍提一下#服务#除了最开始的给我们喷一下手+拿菜单（居然是用牛皮纸手写的）给我们点下菜几乎全程自助，没有热情交谈的店主给我们介绍店里的猫咪，也没有店员给我们拿逗猫棒、猫玩具，态度冷淡，在最后快离开的时候，还有一个女的一边在给气球打气（据说2点有包场活动估计是布置场地的工作人员），一边用炒鸡可怕的眼神盯着我们，吓得我们赶紧去结账。\u0002总体来说环境很不错，但奔着去看猫咪的可能有点失望了，食物的性价比也很低，不过环境蛮安静的，比较适合去下午茶小聚，顺便逗逗猫咪，据说还有鸡尾酒，晚上去的可以尝尝\" \"|和|很|久|没|见|的|高|中|同|学|聚|会|，|都|很|喜|欢|猫|咪|，|上|次|约|在|江|南|西|的|某|家|猫|咪|主|题|餐|厅|，|感|觉|都|很|好|，|能|和|可|爱|的|猫|咪|亲|密|接|触|棒|棒|哒|，|于|是|这|次|也|准|备|约|到|猫|咪|主|题|的|餐|厅|一|边|吃|饭|一|边|逗|猫|，|在|大|众|点|评|上|看|到|这|家|m|e|o|w|1|3|0|6|猫|小|窝|评|价|看|上|去|都|不|错|，|于|是|愉|快|地|定|下|了|午|餐|之|约|（|下|午|还|要|去|买|买|买|~|）|，|预|定|了|1|2|点|用|餐|，|惭|愧|地|迟|到|了|半|小|时|（|友|人|迷|路|了|半|小|时|呵|呵|，|其|实|就|是|体|育|中|心|a|出|口|出|去|直|走|到|路|口|左|转|3|0|米|左|右|就|到|了|╮|(|╯|▽|╰|)|╭|）|幸|好|到|达|之|时|仍|然|有|空|位|，|安|全|入|座|。|\u0002|先|说|说|#|环|境|#|，|空|间|蛮|大|的|，|全|店|铺|木|地|板|，|进|门|需|要|换|鞋|+|进|行|手|部|消|毒|，|位|置|刚|好|正|对|着|太|古|汇|，|边|上|是|一|排|超|大|落|地|玻|璃|窗|，|能|看|到|体|育|西|路|的|车|水|马|龙|，|采|光|视|线|都|不|错|，|墙|壁|上|的|装|饰|也|很|用|心|，|我|们|位|置|后|面|是|一|墙|的|猫|咪|春|游|壁|画|，|樱|花|之|下|猫|咪|们|愉|快|用|餐|的|姿|态|萌|萌|哒|~|座|椅|用|的|是|矮|沙|发|+|配|套|的|木|质|桌|子|，|沙|发|满|软|的|，|刚|好|是|猫|咪|很|容|易|能|跳|上|去|的|高|度|，|桌|子|的|高|度|也|刚|刚|好|，|很|方|便|进|餐|，|有|一|股|家|的|味|道|，|很|闲|适|，|最|赞|的|是|每|张|桌|子|的|间|隔|都|很|宽|敞|，|坐|着|一|点|都|不|压|抑|，|聊|天|也|不|会|很|受|隔|壁|的|影|响|，|不|错|\u0002|说|完|环|境|，|就|轮|到|最|核|心|的|#|猫|咪|#|了|，|与|这|里|宽|敞|的|环|境|相|比|，|猫|咪|的|数|量|就|完|全|不|成|正|比|，|只|有|小|猫|六|七|只|，|有|两|只|美|短|（|估|计|还|是|兄|弟|来|着|）|，|还|有|一|直|纯|白|的|波|斯|猫|、|一|只|脸|黑|的|暹|罗|猫|，|两|只|扁|脸|咖|啡|猫|（|其|中|一|只|脖|子|套|了|一|个|蝴|蝶|结|，|另|外|一|只|又|胖|又|懒|，|全|程|在|装|地|毯|）|，|还|有|一|只|纯|黑|的|小|奶|猫|（|没|认|出|品|种|，|但|是|身|娇|体|柔|易|推|倒|有|木|有|）|，|一|只|配|一|桌|都|嫌|不|够|，|不|过|猫|猫|都|很|干|净|、|很|乖|巧|，|能|抱|（|不|过|下|一|秒|就|逃|）|，|身|上|也|没|有|什|么|味|道|，|调|教|得|还|算|不|错|。|\u0002|说|完|猫|咪|，|再|说|说|食|物|出|品|，|只|能|说|重|点|果|然|在|猫|，|食|物|就|一|般|般|啦|，|#|味|道|#|还|可|以|，|但|是|分|量|真|心|少|，|我|们|点|了|一|个|爆|浆|鸡|腿|肉|饭|（|2|8|）|、|一|个|番|茄|肉|酱|意|粉|（|3|6|）|、|一|壶|花|果|茶|（|玫|瑰|花|+|苹|果|花|3|6|）|，|一|共|1|0|0|，|团|购|后|8|8|，|人|均|4|4|。|先|说|我|的|鸡|腿|饭|，|味|道|还|o|k|，|是|切|开|的|小|块|鸡|腿|肉|+|腌|萝|卜|+|洋|葱|煮|的|肉|酱|拌|饭|，|鸡|腿|肉|虽|不|多|但|肉|都|满|嫩|的|，|下|饭|；|朋|友|的|番|茄|肉|酱|意|粉|那|个|分|量|感|觉|三|口|就|能|吃|完|，|偷|尝|了|一|根|味|道|不|错|，|就|是|性|价|比|很|低|；|花|果|茶|就|更|坑|爹|了|，|壶|里|面|的|茶|叶|花|蕾|就|那|么|两|三|颗|可|怜|的|漂|浮|着|，|茶|水|谈|而|无|味|，|根|本|不|值|得|这|个|价|，|差|评|。|\u0002|最|后|稍|稍|提|一|下|#|服|务|#|除|了|最|开|始|的|给|我|们|喷|一|下|手|+|拿|菜|单|（|居|然|是|用|牛|皮|纸|手|写|的|）|给|我|们|点|下|菜|几|乎|全|程|自|助|，|没|有|热|情|交|谈|的|店|主|给|我|们|介|绍|店|里|的|猫|咪|，|也|没|有|店|员|给|我|们|拿|逗|猫|棒|、|猫|玩|具|，|态|度|冷|淡|，|在|最|后|快|离|开|的|时|候|，|还|有|一|个|女|的|一|边|在|给|气|球|打|气|（|据|说|2|点|有|包|场|活|动|估|计|是|布|置|场|地|的|工|作|人|员|）|，|一|边|用|炒|鸡|可|怕|的|眼|神|盯|着|我|们|，|吓|得|我|们|赶|紧|去|结|账|。|\u0002|总|体|来|说|环|境|很|不|错|，|但|奔|着|去|看|猫|咪|的|可|能|有|点|失|望|了|，|食|物|的|性|价|比|也|很|低|，|不|过|环|境|蛮|安|静|的|，|比|较|适|合|去|下|午|茶|小|聚|，|顺|便|逗|逗|猫|咪|，|据|说|还|有|鸡|尾|酒|，|晚|上|去|的|可|以|尝|尝|\"|\"|和|很久|没|见|的|高中|同学|聚会|，|都|很|喜欢|猫咪|，|上次|约在|江南|西|的|某|家|猫咪|主题|餐厅|，|感觉|都|很|好|，|能|和|可爱|的|猫咪|亲密|接触|棒棒哒|，|于是|这|次|也|准备|约|到|猫咪|主题|的|餐厅|一边|吃饭|一边|逗|猫|，|在|大众|点评|上|看到|这|家|meow|1306|猫|小窝|评价|看上去|都|不错|，|于是|愉快|地|定下|了|午餐|之|约|（|下午|还|要|去|买|买|买|~|）|，|预定|了|12点|用餐|，|惭愧|地|迟到|了|半|小时|（|友人|迷路|了|半|小时|呵呵|，|其实|就是|体育|中心|a|出口|出去|直|走到|路口|左转|30|米|左右|就|到|了|╮|(|╯▽╰|)|╭|）|幸好|到达|之时|仍然|有|空位|，|安全|入座|。|先|说说|#|环境|#|，|空间|蛮大|的|，|全|店铺|木|地板|，|进门|需要|换|鞋|+|进行|手部|消毒|，|位置|刚好|正对着|太古汇|，|边上|是|一|排|超大|落地|玻璃窗|，|能|看到|体育|西路|的|车水马龙|，|采光|视线|都|不错|，|墙壁|上|的|装饰|也|很|用心|，|我们|位置|后面|是|一|墙|的|猫咪|春游|壁画|，|樱花|之下|猫咪们|愉快|用餐|的|姿态|萌萌哒|~|座椅|用|的|是|矮沙发|+|配套|的|木质|桌子|，|沙发|满|软|的|，|刚好|是|猫咪|很|容易|能|跳上|去|的|高度|，|桌子|的|高度|也|刚刚|好|，|很|方便|进餐|，|有|一|股|家|的|味道|，|很|闲适|，|最|赞|的|是|每|张|桌子|的|间隔|都|很|宽敞|，|坐|着|一点|都|不|压抑|，|聊天|也|不|会|很|受|隔壁|的|影响|，|不错|说完|环境|，|就|轮到|最|核心|的|#|猫咪|#|了|，|与|这里|宽敞|的|环境|相比|，|猫咪|的|数量|就|完全|不|成|正比|，|只有|小猫|六七|只|，|有|两|只|美|短|（|估计|还是|兄弟|来着|）|，|还有|一直|纯白|的|波斯猫|、|一|只|脸|黑|的|暹罗猫|，|两|只|扁|脸|咖啡|猫|（|其中|一|只|脖子|套|了|一|个|蝴蝶|结|，|另外|一|只|又|胖|又|懒|，|全程|在|装|地毯|）|，|还有|一|只|纯|黑|的|小奶|猫|（|没|认出|品种|，|但是|身娇体|柔易|推倒|有|木|有|）|，|一|只|配|一|桌|都|嫌|不够|，|不过|猫|猫|都|很|干净|、|很|乖巧|，|能|抱|（|不过|下|一|秒|就|逃|）|，|身上|也|没有|什么|味道|，|调教|得|还算|不错|。|说完|猫咪|，|再|说说|食物|出品|，|只能|说|重点|果然|在|猫|，|食物|就|一般|般|啦|，|#|味道|#|还|可以|，|但是|分量|真心|少|，|我们|点|了|一|个|爆浆|鸡腿|肉饭|（|28|）|、|一|个|番茄|肉酱|意粉|（|36|）|、|一|壶|花|果茶|（|玫瑰花|+|苹果花|36|）|，|一共|100|，|团购|后|88|，|人均|44|。|先|说|我|的|鸡腿|饭|，|味道|还|ok|，|是|切开|的|小|块|鸡腿|肉|+|腌萝卜|+|洋葱|煮|的|肉酱|拌饭|，|鸡腿|肉|虽|不|多|但|肉|都|满|嫩的|，|下饭|；|朋友|的|番茄|肉酱|意粉|那个|分量|感觉|三|口|就|能|吃完|，|偷|尝|了|一|根|味道|不错|，|就是|性价比|很低|；|花果|茶|就|更|坑|爹|了|，|壶|里面|的|茶叶|花蕾|就|那么|两|三|颗|可怜|的|漂浮|着|，|茶水|谈|而|无味|，|根本|不|值得|这个|价|，|差评|。|最后|稍稍|提|一下|#|服务|#|除了|最开始|的|给|我们|喷一|下手|+|拿|菜单|（|居然|是|用|牛皮纸|手写|的|）|给|我们|点|下|菜|几乎|全程|自助|，|没有|热情|交谈|的|店主|给|我们|介绍|店里|的|猫咪|，|也|没有|店员|给|我们|拿|逗|猫|棒|、|猫|玩具|，|态度|冷淡|，|在|最后|快|离开|的|时候|，|还有|一|个|女的|一边|在|给|气球|打气|（|据说|2|点|有|包场|活动|估计|是|布置|场地|的|工作|人员|）|，|一边|用|炒|鸡|可怕|的|眼神|盯|着|我们|，|吓|得|我们|赶紧|去|结账|。|总体|来说|环境|很|不错|，|但|奔着|去|看|猫咪|的|可能|有点|失望|了|，|食物|的|性价比|也|很|低|，|不过|环境|蛮|安静|的|，|比较|适合|去|下午|茶|小聚|，|顺便|逗逗|猫咪|，|据说|还有|鸡尾酒|，|晚上|去|的|可以|尝尝|\" 1962\n2018-10-19 19:12:25 0:06:53 \"渔乐圈主题餐厅听名字觉得是一家吃鱼的餐厅，实际上是一家港式茶餐厅，当然这家港式茶餐厅真的很奇葩，香港人吃东西讲究清单，这家点的菜品我吃完之后只有一个印象，就是咸，这家店的位置在写字楼里面的，一般人很难找到，不知道老板怎么想的，会选在这里，边上就是一家保险公司。我是周六中午去吃的，人很少，几乎没几桌客人，我看了看菜单，服务员是推荐点酸菜鱼，这里的酸菜鱼是按斤卖的，觉得价格小贵没点，点了个乳鸽，这里的乳鸽的味道有点怪，不想平常吃到的都是脆脆的。点了皮蛋瘦肉粥，味道还行，不好不坏，还点了叉烧肠粉，都是肥肉，味道马马虎虎。还点了鱼香茄子煲，味道是不错，就是太油了，另外点了个豉汁蒸排骨，这个真的不好吃，排骨不光拍了嫩肉粉，还咬不动。吃完之后我跟店里类似主管的反映菜太咸，她完全不当回事，这样怎么会进步呢！\" \"|渔|乐|圈|主|题|餐|厅|听|名|字|觉|得|是|一|家|吃|鱼|的|餐|厅|，|实|际|上|是|一|家|港|式|茶|餐|厅|，|当|然|这|家|港|式|茶|餐|厅|真|的|很|奇|葩|，|香|港|人|吃|东|西|讲|究|清|单|，|这|家|点|的|菜|品|我|吃|完|之|后|只|有|一|个|印|象|，|就|是|咸|，|这|家|店|的|位|置|在|写|字|楼|里|面|的|，|一|般|人|很|难|找|到|，|不|知|道|老|板|怎|么|想|的|，|会|选|在|这|里|，|边|上|就|是|一|家|保|险|公|司|。|我|是|周|六|中|午|去|吃|的|，|人|很|少|，|几|乎|没|几|桌|客|人|，|我|看|了|看|菜|单|，|服|务|员|是|推|荐|点|酸|菜|鱼|，|这|里|的|酸|菜|鱼|是|按|斤|卖|的|，|觉|得|价|格|小|贵|没|点|，|点|了|个|乳|鸽|，|这|里|的|乳|鸽|的|味|道|有|点|怪|，|不|想|平|常|吃|到|的|都|是|脆|脆|的|。|点|了|皮|蛋|瘦|肉|粥|，|味|道|还|行|，|不|好|不|坏|，|还|点|了|叉|烧|肠|粉|，|都|是|肥|肉|，|味|道|马|马|虎|虎|。|还|点|了|鱼|香|茄|子|煲|，|味|道|是|不|错|，|就|是|太|油|了|，|另|外|点|了|个|豉|汁|蒸|排|骨|，|这|个|真|的|不|好|吃|，|排|骨|不|光|拍|了|嫩|肉|粉|，|还|咬|不|动|。|吃|完|之|后|我|跟|店|里|类|似|主|管|的|反|映|菜|太|咸|，|她|完|全|不|当|回|事|，|这|样|怎|么|会|进|步|呢|！|\"|\"|渔乐圈|主题|餐厅|听|名字|觉得|是|一|家|吃鱼|的|餐厅|，|实际上|是|一|家|港式|茶|餐厅|，|当然|这|家|港式|茶|餐厅|真的|很|奇葩|，|香港人|吃|东西|讲究|清单|，|这|家|点|的|菜品|我|吃完|之后|只|有|一|个|印象|，|就是|咸|，|这|家|店|的|位置|在|写字楼|里面|的|，|一般|人|很|难|找到|，|不|知道|老板|怎么|想|的|，|会|选|在|这里|，|边上|就|是|一|家|保险|公司|。|我|是|周六|中午|去|吃|的|，|人|很少|，|几乎|没|几|桌|客人|，|我|看|了|看|菜单|，|服务员|是|推荐|点|酸菜鱼|，|这里|的|酸菜|鱼|是|按|斤|卖的|，|觉得|价格|小|贵|没|点|，|点|了|个|乳鸽|，|这里|的|乳鸽|的|味道|有点|怪|，|不|想|平常|吃到|的|都|是|脆脆|的|。|点|了|皮蛋|瘦肉粥|，|味道|还行|，|不好不坏|，|还|点|了|叉烧|肠粉|，|都|是|肥肉|，|味道|马马虎虎|。|还|点|了|鱼香|茄子煲|，|味道|是|不错|，|就是|太|油了|，|另外|点|了|个|豉汁蒸|排骨|，|这个|真的|不好吃|，|排骨|不|光|拍|了|嫩肉粉|，|还|咬|不|动|。|吃完|之后|我|跟|店里|类似|主管|的|反映|菜|太|咸|，|她|完全|不当|回事|，|这样|怎么|会|进步|呢|！|\" 597\n2018-10-19 19:15:18 0:30:10 \"位置确实比较隐蔽，从美甲店上二楼就是，门口有个不大的招牌，幸好看了大家的点评得以顺利找到。首先说环境，装修让人很舒服，有吧台，也有包间。今天来给爸爸过生日，订了包间，能坐的舒服些，但之前不清楚包间有最低消费，老板很好，为我们破例了一次，特别感谢！菜品很精致，量是日料店一贯的比较秀气，但胜在质量，味道都很好，一看就是用料上乘。寿喜锅菜单上没有，却在墙上挂的推荐菜单中看到了，必点，要的牛肉锅。我是一直喜欢寿喜锅的，让我来尝一尝，鉴定一下。好吃，真的是很好吃，肥牛蘸着生鸡蛋，滑滑嫩嫩，真的完胜我吃过的除将太无二外的其他家，在我的排名中和将太无二并列。大家推荐的明太子鸡翅饺子和明太子黄油土豆都点了，味道都很赞，主要是比较新颖，超满意的一餐！服务也加分不少哦！\" \"|位|置|确|实|比|较|隐|蔽|，|从|美|甲|店|上|二|楼|就|是|，|门|口|有|个|不|大|的|招|牌|，|幸|好|看|了|大|家|的|点|评|得|以|顺|利|找|到|。|首|先|说|环|境|，|装|修|让|人|很|舒|服|，|有|吧|台|，|也|有|包|间|。|今|天|来|给|爸|爸|过|生|日|，|订|了|包|间|，|能|坐|的|舒|服|些|，|但|之|前|不|清|楚|包|间|有|最|低|消|费|，|老|板|很|好|，|为|我|们|破|例|了|一|次|，|特|别|感|谢|！|菜|品|很|精|致|，|量|是|日|料|店|一|贯|的|比|较|秀|气|，|但|胜|在|质|量|，|味|道|都|很|好|，|一|看|就|是|用|料|上|乘|。|寿|喜|锅|菜|单|上|没|有|，|却|在|墙|上|挂|的|推|荐|菜|单|中|看|到|了|，|必|点|，|要|的|牛|肉|锅|。|我|是|一|直|喜|欢|寿|喜|锅|的|，|让|我|来|尝|一|尝|，|鉴|定|一|下|。|好|吃|，|真|的|是|很|好|吃|，|肥|牛|蘸|着|生|鸡|蛋|，|滑|滑|嫩|嫩|，|真|的|完|胜|我|吃|过|的|除|将|太|无|二|外|的|其|他|家|，|在|我|的|排|名|中|和|将|太|无|二|并|列|。|大|家|推|荐|的|明|太|子|鸡|翅|饺|子|和|明|太|子|黄|油|土|豆|都|点|了|，|味|道|都|很|赞|，|主|要|是|比|较|新|颖|，|超|满|意|的|一|餐|！|服|务|也|加|分|不|少|哦|！|\"|\"|位置|确实|比较|隐蔽|，|从|美|甲|店|上|二|楼|就是|，|门口|有|个|不|大|的|招牌|，|幸好|看|了|大家|的|点评|得以|顺利|找到|。|首先|说|环境|，|装修|让|人|很|舒服|，|有|吧台|，|也|有|包间|。|今天|来给|爸爸|过|生日|，|订|了|包间|，|能|坐|的|舒服|些|，|但|之前|不|清楚|包间|有|最低|消费|，|老板|很|好|，|为|我们|破例|了|一|次|，|特别|感谢|！|菜品|很|精致|，|量|是|日|料|店|一贯|的|比较|秀气|，|但|胜|在|质量|，|味道|都|很|好|，|一|看|就是|用料|上乘|。|寿喜|锅|菜单|上|没有|，|却|在|墙|上|挂|的|推荐|菜单|中|看到|了|，|必点|，|要|的|牛肉锅|。|我|是|一直|喜欢|寿喜锅|的|，|让|我|来尝|一|尝|，|鉴定|一下|。|好吃|，|真的|是|很|好吃|，|肥牛蘸|着|生|鸡蛋|，|滑滑嫩嫩|，|真的|完胜|我|吃|过|的|除|将|太|无|二|外|的|其他|家|，|在|我|的|排名|中|和|将|太|无|二|并列|。|大家|推荐|的|明|太子|鸡翅|饺子|和|明|太子|黄油|土豆|都|点|了|，|味道|都|很|赞|，|主要|是|比较|新颖|，|超|满意|的|一|餐|！|服务|也|加分|不少|哦|！|\" 571\n2018-10-19 19:15:39 0:10:07 \"去了不少次，\u0003地址也比较好找，在中原路与工人路交叉口向南200米，\u0003店里的装饰和设计比较古朴，很有解放前的味道。这次团购的是2～3人餐，\u0003三菜一汤，\u0003还有三份米，分量也不错\u0003菜差不多够三个吃，就是米的分量不大，不过可以加钱要米饭，团购价四十九元还是比较实惠的，菜品属于偏川味，\u0003都是辣的\u0003属于比较开胃的菜。前台态度也不错，服务员\u0003上菜更是一路小跑，\u0003上菜速度很快，给服务员小哥点个赞。希望店家推出更多的更实惠的团购套餐。\" \"|去|了|不|少|次|，|\u0003|地|址|也|比|较|好|找|，|在|中|原|路|与|工|人|路|交|叉|口|向|南|2|0|0|米|，|\u0003|店|里|的|装|饰|和|设|计|比|较|古|朴|，|很|有|解|放|前|的|味|道|。|这|次|团|购|的|是|2|～|3|人|餐|，|\u0003|三|菜|一|汤|，|\u0003|还|有|三|份|米|，|分|量|也|不|错|\u0003|菜|差|不|多|够|三|个|吃|，|就|是|米|的|分|量|不|大|，|不|过|可|以|加|钱|要|米|饭|，|团|购|价|四|十|九|元|还|是|比|较|实|惠|的|，|菜|品|属|于|偏|川|味|，|\u0003|都|是|辣|的|\u0003|属|于|比|较|开|胃|的|菜|。|前|台|态|度|也|不|错|，|服|务|员|\u0003|上|菜|更|是|一|路|小|跑|，|\u0003|上|菜|速|度|很|快|，|给|服|务|员|小|哥|点|个|赞|。|希|望|店|家|推|出|更|多|的|更|实|惠|的|团|购|套|餐|。|\"|\"|去|了|不少|次|，|地址|也|比较|好找|，|在|中原|路|与|工人|路|交叉口|向南|200|米|，|店|里|的|装饰|和|设计|比较|古朴|，|很|有|解放|前|的|味道|。|这|次|团购|的|是|2|～|3|人|餐|，|三|菜|一|汤|，|还有|三|份|米|，|分量|也|不错|菜|差不多|够|三|个|吃|，|就是|米|的|分量|不|大|，|不过|可以|加|钱|要|米饭|，|团|购价|四十九|元|还是|比较|实惠|的|，|菜品|属于|偏川味|，|都|是|辣|的|属于|比较|开胃|的|菜|。|前台|态度|也|不错|，|服务员|上菜|更|是|一|路|小跑|，|上菜|速度|很|快|，|给|服务员|小哥|点|个|赞|。|希望|店家|推出|更|多|的|更|实惠|的|团购|套餐|。|\" 356\n2018-10-19 19:26:30 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/to-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-28 08:37:28.846557\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport six \n  \nassert six.PY3 \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\nifile = sys.argv[1]\nofile = sys.argv[2]\n\nids_set = set()\nfm = 'w'\nif os.path.exists(ofile):\n  fm = 'a'\n  for line in open(ofile):\n    ids_set.add(line.split('\\t')[0])\n\nprint('%s already done %d' % (ofile, len(ids_set)))\n\nnum_errs = 0\nwith open(ofile, fm) as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    if str(ids[i]) in ids_set:\n      continue\n    #if i != 2333:\n    #  continue\n    #print(gezi.cut(filter.filter(contents[i]), type_))\n    try:\n      l = []\n      for ch in filter.filter(contents[i]):\n        l.append(ch)\n      print(' '.join(l), file=out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/to-norm.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport gezi\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1])\n\ncontents = df[key].values \n\nfor i in range(len(contents)):\n  scontent = gezi.normalize(contents[i])\n  if scontent != contents[i]:\n    print('------------------', i)\n    print(contents[i])\n    print(scontent)\n    contents[i] = scontent\n\ndf[key] = contents\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.test/to-simplify.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tqdm import tqdm\nimport pandas as pd\nimport gezi\nimport traceback \n\nimport six \nassert six.PY2, 'must using py2 env to do simplify'\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1], lineterminator='\\n')\n\ncontents = df[key].values \n\nnum_modified = 0\nnum_errs = 0\nfor i in tqdm(range(len(contents)), ascii=True):\n  try:\n    scontent = gezi.to_simplify(contents[i])\n  except Exception:\n    num_errs += 1\n    print(traceback.format_exc())\n    continue\n  if scontent != contents[i]:\n    # print('------------------', i)\n    # print(contents[i])\n    # print(scontent)\n    contents[i] = scontent\n    num_modified += 1\n\ndf[key] = contents\n\nprint('modify ratio', num_modified / len(df))\nprint('num_errs', num_errs)\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/README.md",
    "content": "first sh ./gen-vocab.sh to get vocab.txt\n\nthen using like vocab-mincount.. to get vocab.5k.txt \nthen merge with all chars from vocab.txt using vocab-add-char.py to get vocab.5k.chars.txt this is used for word embedding train  \n\nthen for canyin and dianping\n\njust use ./gen-mix-seg-canyin.py  ./gen-char-seg-canyin.py ...\nnot use ./gen-seg-canyin.py for this project for we do not want to consider more words not used here  \n\ndo also for dianping and train/valid/test data  \n\nwe will use all these data as word embedding pretrain   \n\nsh ./gen-vocab-v2.sh will use simple just basic seg   \nNOTICE this is depreceated for v2\njust use same vocab as v1, v2 only diff when gen tfrecord will not feed single and will has char embedding   \n\nsince v2 word + char concat prove to be better then seg basic + single so try to further try seperate word and char embedding as V3  \nthe script ./run-noemb-v3.sh is the same as ./run-noemb-v2.sh be sure you have char_vocab.txt under tfrecord dir    \n\n\n3 seg method\n1.char  char only \n2.word.feed  basic + digit + feed_sginle  only consider first 6k top freq word \n3.word.basic  basic  \n\n\nnow change to below process\n\n1. seg for train+valid+test   \n2. get vocab from train+valid+test   \n3. generate tfrecord using seg result and vocab   \n\nuse 4 seg method with below name  \n1. char  \n2. mix(jieba)\n3. word (jieba pos, should be word.jieba)  \n4. besg(word by phrase bseg should be word.besg)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/__init__.py",
    "content": "import projects.ai2018.sentiment.prepare.filter\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/config",
    "content": "data_dir=./mount/data/ai2018/sentiment/\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 14:44:21.024368\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('use_char', False, '')\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_integer('word_limit', 3000, '')\n#flags.DEFINE_bool('use_pos', False, '')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/embeddings/fasttext/run.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the BSD-style license found in the\n# LICENSE file in the root directory of this source tree. An additional grant\n# of patent rights can be found in the PATENTS file in the same directory.\n#\n\nRESULTDIR=./\nDATADIR=./\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nmake\n\n./fasttext skipgram -input \"${DATADIR}\"/text -output \"${RESULTDIR}\"/text -lr 0.025 -dim 300 \\\n  -ws 5 -epoch 10 -minCount 20 -neg 5 -loss ns -bucket 2000000 \\\n  -minn 2 -maxn 3 -thread 4 -t 1e-4 -lrUpdateRate 100\n\ncut -f 1,2 \"${DATADIR}\"/rw/rw.txt | awk '{print tolower($0)}' | tr '\\t' '\\n' > \"${DATADIR}\"/queries.txt\n\ncat \"${DATADIR}\"/queries.txt | ./fasttext print-word-vectors \"${RESULTDIR}\"/text.bin > \"${RESULTDIR}\"/vectors.txt\n\npython eval.py -m \"${RESULTDIR}\"/vectors.txt -d \"${DATADIR}\"/rw/rw.txt\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/embeddings/glove/run.sh",
    "content": "#!/bin/bash\nset -e\n\n# Makes programs, downloads sample data, trains a GloVe model, and then evaluates it.\n# One optional argument can specify the language used for eval script: matlab, octave or [default] python\n\nmake\n\n# 8 iter nan\nCORPUS=text\nVOCAB_FILE=vocab.txt\nCOOCCURRENCE_FILE=cooccurrence.bin\nCOOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin\nBUILDDIR=build\nSAVE_FILE=vectors\nVERBOSE=2\nMEMORY=4.0\nVOCAB_MIN_COUNT=20\nVECTOR_SIZE=300\nMAX_ITER=15\nWINDOW_SIZE=15\nBINARY=2\nNUM_THREADS=8\nX_MAX=10\n\necho \"$ $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\"\n$BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\necho \"$ $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\"\n$BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\necho \"$ $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\"\n$BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\necho \"$ $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\"\n$BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\n\necho \"$ python eval/python/evaluate.py\"\npython eval/python/evaluate.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/filter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   filter.py\n#        \\author   chenghuige  \n#          \\date   2018-09-14 21:55:52.069104\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_bool('simplify', False, '')\n\nimport sys \nimport os\n\nimport gezi\n\ndef filter_duplicate_space(text):\n  return ''.join([x for i, x in enumerate(text) if not (i < len(text) - 1 and not(x.strip()) and not(text[i + 1].strip()))])\n\n# # def translate_emotion(word):\n# #   dic = {\n# #     '🍲' : '火锅'，\n# #     '🌶️' : '辣'\n# #   } \n# #   if word in dic:\n# #     return dic[word]\n# #   return word\n\n# def translate_emotions(text):\n#   return text.replace('🍲', '火锅').replace('🌶️', '辣')\n\ndef filter(x):\n  x = x.strip('\"')\n  x = filter_duplicate_space(x)\n  x = gezi.remove_duplicate(x)\n  x = gezi.filter_quota(x).replace('\\r', '\\x01').replace('\\n', '\\x02').replace('<R>', '\\x01').replace('<N>', '\\x02').replace('\\t', ' ').replace(' ', '\\x03')\n\n  # # So here actually always fals as is done in preprocess using py2  \n  # if FLAGS.simplify:\n  #   # to lower, to simplify, to half\n  #   x = gezi.to_simplify(x)\n  #x = translate_emotions(x)\n  \n  # TODO if needed try to find case usefull or not　I think especally for sentiment not reading, lower is ok not loose important info like NIKE\n  x = x.lower()\n  return x\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/find-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-01 20:35:40.158875\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd \nfrom projects.ai2018.sentiment.prepare import filter\n\ndf = pd.read_csv('/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv')\n\nchars = set()\nfor comment in df['content']:\n  comment = filter.filter(comment)\n  for w in comment:\n    if w not in chars:\n      print(w)\n      chars.add(w)\n\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\nchars2 = [x.upper() for x in chars]\nchars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-canyin.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./raw_comment_v2.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['c{}'.format(i) for i in range(len(df))]\ncontents = df['content'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\nlabels = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['score']\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -2\n  labels.append(label)\n  \ndf2['others_overall_experience'] = labels\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./canyin.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-canyin.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-content.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-content.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 10:37:16.658519\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfiles = [\n         './mount/data/ai2018/sentiment/train.csv', \n         './mount/data/ai2018/sentiment/valid.csv', \n         './mount/data/ai2018/sentiment/test.csv'\n        ]\n            \n\nimport pandas as pd\nimport filter\n\nfor infile in files:\n  df = pd.read_csv(infile)\n\n  for row in df.iterrows():\n    content = filter.filter(row[1][1])\n    print(content)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-dianping.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./ratings.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['d{}'.format(i) for i in range(len(df))]\ncontents = df['comment'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\ndef score2class(score):\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -1\n  return label  \n\nlabels = []\nlabels_env = []\nlabels_flavor = []\nlabels_service = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['rating']\n  score_env = row['rating_env']\n  score_flavor = row['rating_flavor']\n  score_service = row['rating_service']\n\n  labels.append(score2class(score))\n  labels_env.append(score2class(score_env))\n  labels_flavor.append(score2class(score_flavor))\n  labels_service.append(score2class(score_service))\n\n  \ndf2['others_overall_experience'] = labels\ndf2['environment_decoration'] = labels_env\ndf2['dish_taste'] = labels_flavor\ndf2['service_waiters_attitude'] = labels_service\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./dianping.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-dianping.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-lm-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/my-embedding/Glove-sentiment-jieba/valid', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft/vocab.txt', 'vocabulary txt file')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_string('source', 'dianping', 'dianping or baike or zhidao or zhihu')\nflags.DEFINE_integer('max_sentence_len', 20, '')\nflags.DEFINE_string('tfrecord_dir', 'tfrecord', '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\nvocab = None\nchar_vocab = None\n\ndef build_features(file_):\n  if not os.path.isfile(file_):\n    return \n\n  file_name = os.path.basename(file_)\n  assert os.path.isdir(FLAGS.input)\n  mode = 'train' if 'train' in FLAGS.input else 'valid'\n  dir_ = os.path.dirname(os.path.dirname(FLAGS.input))\n  out_file = os.path.join(dir_ , '{}/{}/{}.record'.format(FLAGS.tfrecord_dir, mode, file_name))\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  \n  print('infile', file_, 'out_file', out_file)\n\n  # if os.path.exists(out_file):\n  #   return\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for line in tqdm(open(file_), total=1e6, ascii=True):\n      try:\n        line = line.rstrip('\\n')\n        line = filter.filter(line)\n        words = line.split(' ')\n        words = gezi.add_start_end(words)\n        words_list = gezi.break_sentence(words, FLAGS.max_sentence_len)\n        for words in words_list:\n          content = ' '.join(words)\n          content_ids = [vocab.id(x) for x in words]\n\n          if len(content_ids) > max_len:\n            max_len = len(content_ids)\n            print('max_len', max_len)\n\n          if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n            print('{} {} {}'.format(id, len(content_ids), content_ori))\n\n          content_ids = content_ids[:FLAGS.word_limit]\n          words = words[:FLAGS.word_limit]\n\n          # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode\n          if FLAGS.use_char:\n            chars = [list(word) for word in words]\n            char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n            \n            vocab_ = char_vocab if char_vocab else vocab\n\n            for i, token in enumerate(chars):\n              for j, ch in enumerate(token):\n                if j == FLAGS.char_limit:\n                  break\n                char_ids[i, j] = vocab_.id(ch)\n\n            char_ids = list(char_ids.reshape(-1))\n          else:\n            char_ids = [0]\n\n          feature = {\n                      'content':  melt.int64_feature(content_ids),\n                      'content_str': melt.bytes_feature(content), \n                      'char': melt.int64_feature(char_ids),\n                      'source': melt.bytes_feature(FLAGS.source), \n                    }\n\n          # TODO currenlty not get exact info wether show 1 image or 3 ...\n          record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n          writer.write(record)\n          num += 1\n          global counter\n          with counter.get_lock():\n            counter.value += 1\n          global total_words\n          with total_words.get_lock():\n            total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\ndef main(_):  \n  FLAGS.word_limit = 2000\n  global vocab, char_vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_)\n  print('vocab file', FLAGS.vocab_, 'vocab size', vocab.size())\n  if FLAGS.use_char:\n    char_vocab = gezi.Vocabulary(FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt'))\n\n  files = glob.glob(FLAGS.input + '/*') \n  pool = multiprocessing.Pool(multiprocessing.cpu_count())\n  pool.map(build_features, files)\n  pool.close()\n  pool.join()\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  mode = 'train' if 'train' in FLAGS.input else 'valid'\n  dir_ = os.path.dirname(os.path.dirname(FLAGS.input))\n  os.system('mkdir -p %s/%s/%s' % (dir_, FLAGS.tfrecord_dir, mode))\n  out_file = os.path.join(dir_, '{}/{}/num_records.txt'.format(FLAGS.tfrecord_dir, mode))\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-mix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-mix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-10-23 06:48:14.182012\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nvocab_file = sys.argv[1] \nchar_vocab_file = sys.argv[2]\nnum_words = int(sys.argv[3]) \n\nwords = set()\nfor i, line in enumerate(open(vocab_file)):\n  if i == num_words:\n    break\n  word, count = line.rstrip('\\n').split('\\t')\n\n  words.add(word)\n  print(word, count, sep='\\t')\n\nfor line in open(char_vocab_file):\n  ch, count = line.rstrip('\\n').split('\\t')\n  if ch not in words:\n    print(ch, count, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/sentiment/valid.csv', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_integer('num_records_', 7, '10 or 5?')\nflags.DEFINE_integer('start_index', 0, 'set it to 1 if you have valid file which you want to put in train as fold 0')\nflags.DEFINE_bool('use_fold', True, '')\nflags.DEFINE_bool('augument', False, '')\nflags.DEFINE_string('mode', None, '')\nflags.DEFINE_string('mode_', None, '')\nflags.DEFINE_bool('ignore_start_end', False, 'If you have not remove start and end quota before,you can filter here')\nflags.DEFINE_bool('add_start_end_', True, '')\nflags.DEFINE_bool('has_position', False, '')\nflags.DEFINE_bool('fixed_vocab', False, '')\nflags.DEFINE_string('start_mark', '<S>', '')\nflags.DEFINE_string('end_mark', '</S>', '')\nflags.DEFINE_string('unk_word', '<UNK>', '')\nflags.DEFINE_bool('word_only', False, '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom tqdm import tqdm\n\nfrom gezi import Vocabulary\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\ndf = None\n\nvocab = None\nchar_vocab = None\npos_vocab = None\nner_vocab = None\n\nseg_result = None\npos_result = None\nner_result = None\n\ndef get_mode(path):\n  mode = 'train'\n  if 'train' in path:\n    mode ='train'\n  elif 'valid' in path:\n    mode = 'train'\n  elif 'test' in path:\n    mode = 'test'\n  elif '.pm' in path:\n    mode = 'pm'\n  elif 'trans' in path:\n    mode = 'trans' \n  elif 'deform' in path:\n    mode = 'deform'\n  elif 'canyin' in path:\n    mode = 'canyin'\n  elif 'dianping' in path:\n    mode = 'dianping'\n  if FLAGS.augument:\n    mode = 'aug.' + mode\n  if FLAGS.mode:\n    mode = FLAGS.mode\n  return mode\n\ndef build_features(index):\n  mode = get_mode(FLAGS.input)\n\n  start_index = FLAGS.start_index\n\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/{1}.record'.format(mode, index + start_index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(df)\n  num_records = FLAGS.num_records_ \n  if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n    num_records = 1\n  start, end = gezi.get_fold(total, num_records, index)\n\n  print('total', total, 'infile', FLAGS.input, 'out_file', out_file)\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for i in tqdm(range(start, end), ascii=True):\n      try:\n        row = df.iloc[i]\n        id = str(row[0])\n\n        if seg_result:\n          if id not in seg_result:\n            print('id %s ot found in seg_result' % id)\n            continue\n          words = seg_result[id]\n          if FLAGS.add_start_end_:\n            words = gezi.add_start_end(words, FLAGS.start_mark, FLAGS.end_mark)\n        if pos_result:\n          pos = pos_result[id]\n          if FLAGS.add_start_end_:\n            pos = gezi.add_start_end(pos)\n        if ner_result:\n          ner = ner_result[id]\n          if FLAGS.add_start_end_:\n            ner = gezi.add_start_end(ner)\n\n        if start_index > 0:\n          id == 't' + id\n  \n        content = row[1] \n        content_ori = content\n        content = filter.filter(content)\n\n        #label = list(row[2:])\n        label = [-2] * 20\n        \n        #label = [x + 2 for x in label]\n        #num_labels = len(label)\n\n        if not seg_result:\n          content_ids, words = text2ids_(content, preprocess=False, return_words=True)\n          assert len(content_ids) == len(words)\n        else:\n          content_ids = [vocab.id(x) for x in words]\n          #print(words, content_ids)\n          #exit(0)\n\n        if len(content_ids) > max_len:\n          max_len = len(content_ids)\n          print('max_len', max_len)\n\n        if len(content_ids) > FLAGS.word_limit and len(content_ids) < 5:\n          print('{} {} {}'.format(id, len(content_ids), content_ori))\n        #if len(content_ids) > FLAGS.word_limit:\n        #  print(id, content)\n        #  if mode not in ['test', 'valid']:\n        #    continue \n\n        #if len(content_ids) < 5 and mode not in ['test', 'valid']:\n        #  continue\n\n        content_ids = content_ids[:FLAGS.word_limit]\n        words = words[:FLAGS.word_limit]\n\n        # NOTICE different from tf, pytorch do not allow all 0 seq for rnn.. if using padding mode\n        if FLAGS.use_char:\n          chars = [list(word) for word in words]\n          char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n          \n          vocab_ = char_vocab if char_vocab else vocab\n\n          for i, token in enumerate(chars):\n            for j, ch in enumerate(token):\n              if j == FLAGS.char_limit:\n                break\n              char_ids[i, j] = vocab_.id(ch)\n\n          char_ids = list(char_ids.reshape(-1))\n          if np.sum(char_ids) == 0:\n            print('------------------------bad id', id)\n            print(content_ids)\n            print(words)\n            exit(0)\n        else:\n          char_ids = [0]\n\n        if pos_vocab:\n          assert pos\n          pos = pos[:FLAGS.word_limit]\n          pos_ids = [pos_vocab.id(x) for x in pos]\n        else:\n          pos_ids = [0]\n\n        if ner_vocab:\n          assert ner \n          if pos_vocab:\n            assert len(pos) == len(ner)         \n          ner = ner[:FLAGS.word_limit]\n\n          ner_ids = [ner_vocab.id(x) for x in ner]\n        else:\n          ner_ids = [0]\n\n        wlen = [len(word) for word in words]\n\n        feature = {\n                    'id': melt.bytes_feature(id),\n                    'label': melt.int64_feature(label),\n                    'content':  melt.int64_feature(content_ids),\n                    'content_str': melt.bytes_feature(content_ori), \n                    'char': melt.int64_feature(char_ids),\n                    'pos': melt.int64_feature(pos_ids), # might also be postion info for mix seg\n                    'ner': melt.int64_feature(ner_ids),\n                    'wlen': melt.int64_feature(wlen),\n                    'source': melt.bytes_feature(mode), \n                  }\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        writer.write(record)\n        num += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\n\ndef main(_):  \n  mode = get_mode(FLAGS.input)\n\n  assert FLAGS.use_fold\n  #text2ids.init(FLAGS.vocab_)\n  global vocab, char_vocab, pos_vocab, ner_vocab, seg_result, pos_result, ner_result\n  #vocab = text2ids.vocab\n  vocab = gezi.Vocabulary(FLAGS.vocab_, fixed=FLAGS.fixed_vocab, unk_word=FLAGS.unk_word)\n  print('vocab size:', vocab.size())\n  char_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt')\n  if os.path.exists(char_vocab_file):\n    char_vocab = Vocabulary(char_vocab_file)\n    print('char vocab size:', char_vocab.size())\n  pos_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'pos_vocab.txt')\n  if os.path.exists(pos_vocab_file):\n    pos_vocab = Vocabulary(pos_vocab_file)\n    print('pos vocab size:', pos_vocab.size())\n  ner_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'ner_vocab.txt')\n  if os.path.exists(ner_vocab_file):\n    ner_vocab = Vocabulary(ner_vocab_file)\n    print('ner vocab size:', ner_vocab.size())\n  \n  mode_ = 'train'\n  if 'valid' in FLAGS.input:\n    mode_ = 'valid'\n  elif 'test' in FLAGS.input:\n    mode_ = 'test'\n  else:\n    assert 'train' in FLAGS.input\n\n  if FLAGS.augument:\n    mode_ = 'aug.' + mode_\n\n  if FLAGS.mode_:\n    mode_ = FLAGS.mode_\n\n  seg_file = FLAGS.vocab_.replace('vocab.txt', '%s.seg.txt' % mode_)\n  seg_result = {}\n  if os.path.exists(seg_file):\n    print('seg or seg_pos exits:', seg_file)\n    pos_result = {}\n    for line in open(seg_file):\n      id, segs = line.rstrip('\\n').split('\\t', 1)\n      segs = segs.split('\\x09')\n      if FLAGS.ignore_start_end:\n        segs = segs[1:-1]\n      if '|' in segs[0] and not FLAGS.word_only:\n        l = [x.rsplit('|', 1) for x in segs]\n        segs, pos = list(zip(*l))\n        pos_result[id] = pos\n      seg_result[id] = segs\n\n  seg_done = True if seg_result else False\n  ner_file = FLAGS.vocab_.replace('vocab.txt', '%s.ner.txt' % mode_)\n  ner_result = {}\n  if os.path.exists(ner_file):\n    print('seg_ner exists:', ner_file)\n    for line in open(ner_file):\n      id, segs = line.rstrip('\\n').split('\\t', 1)\n      segs = segs.split('\\x09')\n      if FLAGS.ignore_start_end:\n        segs = segs[1:-1]\n      if '|' in segs[0]:\n        l = [x.split('|') for x in segs]\n        segs, ner = list(zip(*l))\n      if not seg_done:      \n        seg_result[id] = segs\n      ner_result[id] = ner\n\n  print('len(seg_result)', len(seg_result))\n  print('len(ner_result)', len(ner_result))\n\n  # print('to_lower:', FLAGS.to_lower, 'feed_single:', FLAGS.feed_single, 'feed_single_en:', FLAGS.feed_single_en, 'seg_method', FLAGS.seg_method)\n  # print(text2ids.ids2text(text2ids_('傻逼脑残B')))\n  # print(text2ids.ids2text(text2ids_('喜欢玩孙尚香的加我好友：2948291976')))\n\n  global df\n  df = pd.read_csv(FLAGS.input, lineterminator='\\n')\n  \n  pool = multiprocessing.Pool()\n\n  if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n    FLAGS.num_records_ = 1\n\n  print('num records file to gen', FLAGS.num_records_)\n\n  #FLAGS.num_records_ = 1\n\n  pool.map(build_features, range(FLAGS.num_records_))\n  pool.close()\n  pool.join()\n\n  # for i in range(FLAGS.num_records_):\n  #   build_features(i)\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-test.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-train.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-trans.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-trans.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 22:43:06.305917\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\ndf = pd.read_csv('./train.csv')\n\ncomments = {}\nfor line in open('./train.en.txt'):\n  try:\n    id, comment = line.rstrip().split('\\t')\n    comments[id] = comment\n  except Exception:\n    pass\n\nprint(len(comments))\n\nnum_modify = 0\nnum_bads = 0\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  id = row['id']\n  id = str(id)\n  if id in comments: \n    if len(comments[id].replace(' ', '')) < len(row['content'].replace(' ', '')) * 1.5 and len(comments[id].replace(' ', '')) > len(row['content'].replace(' ', '')) * 0.7:\n      df.loc[i,'content'] = comments[id]\n      num_modify += 1\n    else:\n      print('bad translate:', comments[id])\n      print('ori', row['content'])\n      num_bads += 1\n  \nprint(num_modify, num_bads)\ndf.to_csv('./trans.en.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-trans.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-valid.sh",
    "content": "python ./gen-records.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-vocab-v2.sh",
    "content": "python gen-content.py | python gen-vocab.py --seg_method='basic' --vocab_name='vocab.v2' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-vocab.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO could do segment parallel @TODO\nnow single thread... slow\n\"\"\"\n\nimport sys,os\n#os.environ['JIEBA_POS'] = '1'\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 0, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\", 0, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"add_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_boolean(\"save_count_info\", True, \"save count info to bin\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/ai2018/sentiment/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\nflags.DEFINE_string('seg_method', 'basic_single_all', '')\n\nassert FLAGS.most_common > 0 or FLAGS.min_count > 0\nassert FLAGS.seg_method\n\nimport traceback\n\nfrom gezi import WordCounter \n\ncounter = WordCounter(\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n#reload(sys)\n#sys.setdefaultencoding('utf8')\nimport numpy as np\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\nprint(segmentor, file=sys.stderr)\n\nimport gezi\n#assert gezi.env_has('JIEBA_POS')\n\nlogging = gezi.logging\n\nlogging.init('/tmp')\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\nprint('min_count:', FLAGS.min_count, 'most_common:', FLAGS.most_common)\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  text = line.rstrip()\n  text = filter.filter(text)\n  try:\n    words = segmentor.Segment(text, FLAGS.seg_method)\n  except Exception:\n    print(num, '-----------fail', text)\n    print(traceback.format_exc())\n    continue\n  if num % 10000 == 0:\n    logging.info(text, '|'.join(words), len(words))\n  counter.add(START_WORD)\n  for word in words:\n    counter.add(word)\n    if word.isdigit():\n      counter.add('<NUM>')\n  counter.add(END_WORD)\n  num += 1\n\n  if num == FLAGS.max_lines:\n    break\n\ncounter.add(START_WORD)\n\nprint(FLAGS.out_dir, file=sys.stderr)\nvocab_name = FLAGS.vocab_name or 'vocab'\ncounter.save(FLAGS.out_dir + '/%s.txt' % vocab_name)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/gen-vocab.sh",
    "content": "python gen-content.py | python gen-vocab.py --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/sentiment/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/sentiment/vectors.txt', '')\nflags.DEFINE_integer('min_count', 20, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nflags.DEFINE_integer('max_words', 200000, '')\nflags.DEFINE_bool('add_additional', True, 'add additional words from embedding file, this is by default for word')\n\nflags.DEFINE_string('sort_by', 'count', '')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  print('emb', FLAGS.emb)\n  input_vocab = FLAGS.input_vocab\n  print('input_vocab', input_vocab)\n  dir_ = os.path.dirname(FLAGS.input_vocab)\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      try:\n        vector = list(map(float, array[-vec_size:]))\n      except Exception:\n        print(i, line)\n        continue\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      else:\n        embedding_dict[word.lower()] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  if FLAGS.sort_by == 'count':\n    print('sort by count')\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n  else:\n    print('sort by knowldege')\n    words_knowledge = []\n    emb_mat_knowledge = []\n    words_no_knowledge = []\n    emb_mat_no_knowledge = []\n    with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n      for word, count in zip(ori_words, counts):\n        #if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat_knowledge.append(np.array(embedding_dict[word]))\n          words_knowledge.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            emb_mat_no_knowledge.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words_no_knowledge.append(word)  \n        # elif FLAGS.type == 'scratch':\n        #   if count >= FLAGS.min_count:\n        #     if word in embedding_dict:\n        #       emb_mat.append(np.array(embedding_dict[word]))\n        #       words.append(word)  \n        #     else:\n        #       #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n        #       emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n        #       words.append(word)  \n        # elif FLAGS.type == 'only':\n        #   if word in embedding_dict:\n        #     emb_mat.append(np.array(embedding_dict[word]))\n        #     words.append(word)  \n\n    #if FLAGS.sort_by == 'knowledge':\n    words += words_no_knowledge\n    emb_mat += emb_mat_no_knowledge\n    words += words_knowledge\n    emb_mat += emb_mat_knowledge\n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  if FLAGS.add_additional:\n    for word in embedding_dict:\n      if word not in words_set:\n        words_set.add(word)\n        words.append(word)\n        emb_mat.append(np.array(embedding_dict[word]))\n        if len(words) > FLAGS.max_words:\n          break\n\n    print('num words after adding additional', len(words))\n\n  out_vocab = os.path.join(dir_, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  print('out_vocab', out_vocab)\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(dir_, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  print('out_mat', out_mat)\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/merge-vocabs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-vocabs.py\n#        \\author   chenghuige  \n#          \\date   2018-10-23 02:07:23.291646\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nm = {}\n\nfiles = sys.argv[1:]\nnum_files = len(files)\n\nprint('num_files', num_files, file=sys.stderr)\n\nfor file_ in files:\n  for line in open(file_):\n    word, count = line.rstrip('\\n').split('\\t', 1)\n    count = int(count)\n    if word not in m:\n      m[word] = count \n    else:\n      m[word] += count\n\nsorted_by_value = sorted(m.items(), key=lambda kv: -kv[1])\n\nfor key, val in sorted_by_value:\n  print(key, val, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/pre-mix-seg-v1.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   mix seg must have input vocab\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('name', None, '')\n\nimport sys,os\nimport numpy as np\n\nimport gezi\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\n# TODO bseg py2 not support if using melt ..\nfrom wenzheng.utils import text2ids\nfrom text2ids import text2ids as text2ids_ \n\ndef seg(id, text, out):\n  text = filter.filter(text)\n  _, words = text2ids_(text, return_words=True)\n  print(id, '\\x09'.join(words), sep='\\t', file=out)\n\ndef main(_):  \n  FLAGS.seg_method = 'basic_digit'\n  FLAGS.feed_single = True\n  FLAGS.feed_single_en = True\n  print('seg_method:', FLAGS.seg_method, file=sys.stderr)\n  print('feed_single:', FLAGS.feed_single, file=sys.stderr)\n  print('feed_single_en:', FLAGS.feed_single_en, file=sys.stderr)\n\n  text2ids.init(FLAGS.vocab)\n\n  counter = WordCounter(most_common=0, min_count=1)\n  vocab2 = ifile.replace('.csv', '.pos.mix.vocab')\n\n  assert FLAGS.vocab\n\n  ifile = sys.argv[1]\n  if not gezi.env_has('BSEG'):\n    ofile = ifile.replace('.csv', '.seg.mix.txt')\n  else:\n    ofile = ifile.replace('.csv', '.seg.bseg.mix.txt')\n\n  ids_set = set()\n  fm = 'w'\n  if os.path.exists(ofile):\n    fm = 'a'\n    for line in open(ofile):\n      ids_set.add(line.split('\\t')[0])\n\n  print('%s already done %d' % (ofile, len(ids_set)))\n\n  num_errs = 0\n  with open(ofile, fm) as out:\n    df = pd.read_csv(ifile, lineterminator='\\n')\n    contents = df['content'].values \n    ids = df['id'].values\n    for i in tqdm(range(len(df)), ascii=True):\n      if str(ids[i]) in ids_set:\n        continue\n      #if i != 2333:\n      #  continue\n      #print(gezi.cut(filter.filter(contents[i]), type_))\n      try:\n        seg(ids[i], contents[i], out, counter)\n      except Exception:\n        #print(traceback.format_exc())\n        num_errs += 1\n        continue\n      #exit(0)\n\n  counter.save(vocab2)\n  print('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/pre-mix-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   mix seg must have input vocab\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_string('vocab', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\n\nimport sys,os\n#os.environ['BSEG'] = '1'\n\nimport numpy as np\n\nimport gezi\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback \n\n#assert gezi.env_has('BSEG')\n\nimport six \nif gezi.env_has('BSEG'):\n  assert six.PY2\n\nvocab = None\n\ndef seg(id, text, out, counter):\n  text = filter.filter(text)\n  words = []\n  for i, word in enumerate(gezi.cut(text)):\n    counter.add(str(i))\n    if vocab.has(word) and not word.isdigit():\n      words.append('%s|%d' % (word, i))\n    else:\n      if six.PY2:\n        for ch in word.decode('utf8'):\n          words.append('%s|%d' % (ch.encode('utf8'), i))\n      else:\n        for ch in word:\n          words.append('%s|%d' % (ch, i))\n\n  if not FLAGS.for_pretrain:\n    print(id, '\\x09'.join(words), sep='\\t', file=out)\n  else:\n    print(' '.join([x.split('|')[0] for x in words]), file=out)\n\ndef main(_):  \n  # FLAGS.seg_method = 'basic_digit'\n  # FLAGS.feed_single = True\n  # FLAGS.feed_single_en = True\n  # print('seg_method:', FLAGS.seg_method, file=sys.stderr)\n  # print('feed_single:', FLAGS.feed_single, file=sys.stderr)\n  # print('feed_single_en:', FLAGS.feed_single_en, file=sys.stderr)\n\n  #assert FLAGS.vocab \n\n  global vocab \n  vocab = gezi.Vocabulary(FLAGS.vocab)\n\n  ifile = sys.argv[1]\n  if not gezi.env_has('BSEG'):\n    ofile = ifile.replace('.csv', '.seg.jieba.mix.txt')\n  else:\n    ofile = ifile.replace('.csv', '.seg.bseg.mix.txt')\n\n\n  counter = WordCounter(most_common=0, min_count=1)\n  vocab2 = ifile.replace('.csv', '.pos.mix.vocab')\n\n\n  ids_set = set()\n  fm = 'w'\n  if os.path.exists(ofile):\n    fm = 'a'\n    for line in open(ofile):\n      ids_set.add(line.split('\\t')[0])\n\n  print('%s already done %d' % (ofile, len(ids_set)))\n\n  num_errs = 0\n  with open(ofile, fm) as out:\n    df = pd.read_csv(ifile, lineterminator='\\n')\n    contents = df['content'].values \n    ids = df['id'].values\n    for i in tqdm(range(len(df)), ascii=True):\n      #if str(ids[i]) in ids_set:\n      #  continue\n      #if i != 2333:\n      #  continue\n      #print(gezi.cut(filter.filter(contents[i]), type_))\n      try:\n        seg(ids[i], contents[i], out, counter)\n      except Exception:\n        if num_errs == 0:\n          print(traceback.format_exc())\n        num_errs += 1\n        continue\n      #exit(0)\n\n  counter.save(vocab2)\n  print('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/pre-seg-bert.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\nimport pandas as pd\n\nfrom tqdm import tqdm\nimport traceback\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom third.bert import tokenization\n\ntokenizer = tokenization.BasicTokenizer()\n\ndef seg(id, text, out):\n  text = filter.filter(text)\n  words = tokenizer.tokenize(text)\n  print(id, '\\x09'.join(words), sep='\\t', file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.csv', '.seg.%s.txt' % FLAGS.name)\n\nnum_errs = 0\nwith open(ofile, 'w') as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    try:\n      seg(ids[i], contents[i], out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/pre-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_string('name', None, '')\nflags.DEFINE_bool('for_pretrain', False, '')\nflags.DEFINE_string('sp_path', None, '')\n\nassert FLAGS.seg_method\n\nimport six\nif FLAGS.seg_method == 'char':\n  assert not six.PY2\n\nimport sys,os\nimport numpy as np\n\nimport gezi\n\n#assert gezi.env_has('JIEBA_POS')\nfrom gezi import WordCounter \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\ncounter = WordCounter(most_common=0, min_count=1)\ncounter2 = WordCounter(most_common=0, min_count=1)\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\nif gezi.env_has('SENTENCE_PIECE'):\n  assert FLAGS.sp_path \n  gezi.segment.init_sp(FLAGS.sp_path)\n\ndef seg(id, text, out, type):\n  text = filter.filter(text)\n  counter.add(START_WORD)\n  counter.add(END_WORD)\n  l = gezi.cut(text, type)\n\n  if type != 'word':\n    for x, y in l:\n      counter.add(x)\n      counter2.add(y)\n    words = ['%s|%s' % (x, y) for x,y in l]\n  else:\n    if FLAGS.seg_method == 'char':\n      l2 = []\n      for i, w in enumerate(l):\n        for ch in w:\n          counter.add(ch)\n          counter2.add(str(i))\n          l2.append((ch, i))\n      words =  ['%s|%d' % (x, y) for x,y in l2]\n    else:\n      words = l\n      for w in words:\n        counter.add(w)\n\n  if not FLAGS.for_pretrain:\n    print(id, '\\x09'.join(words), sep='\\t', file=out)\n  else:\n    print(' '.join([x.split('|')[0] for x in words]), file=out)\n\nassert FLAGS.name\nifile = sys.argv[1]\nofile = ifile.replace('.csv', '.seg.%s.txt' % FLAGS.name)\nvocab = ifile.replace('.csv', '.seg.%s.vocab' % FLAGS.name)\ntype_ = 'word'\n\nvocab2 = None\nif 'pos' in FLAGS.name or FLAGS.seg_method == 'char':\n  vocab2 = ifile.replace('.csv', '.pos.%s.vocab' % FLAGS.name)\n  if 'pos' in FLAGS.name:\n    type_ = 'pos'\nelif 'ner' in FLAGS.name:\n  vocab2 = ifile.replace('.csv', '.ner.%s.vocab' % FLAGS.name)\n  type_ = 'ner'\n\nids_set = set()\nfm = 'w'\nif os.path.exists(ofile):\n  fm = 'a'\n  for line in open(ofile):\n    ids_set.add(line.split('\\t')[0])\n\nprint('%s already done %d' % (ofile, len(ids_set)))\n\nnum_errs = 0\nwith open(ofile, fm) as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    #if str(ids[i]) in ids_set:\n    #  continue\n    #if i != 2333:\n    #  continue\n    #print(gezi.cut(filter.filter(contents[i]), type_))\n    try:\n      seg(ids[i], contents[i], out, type=type_)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\ncounter.save(vocab)\nif vocab2:\n  counter2.save(vocab2)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-char-bert.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.bert/\nsh ./run-noemb-char-bert.sh $dir/vocab.txt\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-char-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.ft\nemb=./mount/data/my-embedding/fastText-sentiment-char/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-char-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-char/vectors.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-char.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/char\nsh ./run-noemb-char.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-char-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/char.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/valid/ --use_char=0 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.len256\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/train/ --use_char=0 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.len256\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-char.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/char.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/valid/ --use_char=0 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-char/corpus/train/ --use_char=0 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-jieba-mix-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/mix.jieba.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba-mix/corpus/valid/ --use_char=1 --max_sentence_len=256 --tfrecord_dir tfrecord.len256 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba-mix/corpus/train/ --use_char=1 --max_sentence_len=256 --tfrecord_dir tfrecord.len256 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-mix.sh",
    "content": ""
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-baike-len20.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/baidu/corpus.jieba/train/ --use_char=1 --source=baike --max_sentence_len=20 --tfrecord_dir tfrecord.len20\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-baike.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/baidu/corpus.jieba/train/ --use_char=1 --source=baike --max_sentence_len=40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-bseg-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-bseg-ner-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-bseg-ner2-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-bseg-ner/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-jieba-tx-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.tx/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus.tx/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus.tx/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-len40.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/valid/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/train/ --use_char=1 --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-sp10w-len40.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=40 --tfrecord_dir tfrecord.len40\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-sp10w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/valid/ --use_char=1 --vocab_ $vocab\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/corpus/train/ --use_char=1 --vocab_ $vocab\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-sp1w-baike.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/baidu/corpus.sp1w/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --source=baike\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-sp1w-len256.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.256\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=256 --tfrecord_dir tfrecord.256\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word-sp1w.sh",
    "content": "vocab=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft/vocab.txt\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/valid/ --use_char=1 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/corpus/train/ --use_char=1 --vocab_ $vocab --max_sentence_len=128 --tfrecord_dir tfrecord\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-lm-word.sh",
    "content": "python ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/valid/ --use_char=1\npython ./gen-lm-records.py --input ./mount/data/my-embedding/GloVe-sentiment-jieba/corpus/train/ --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-bseg-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.ft\nemb=./mount/data/my-embedding/fastText-sentiment-bseg-mix/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-bseg-glove-10epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove.10epoch\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix-10epoch/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-bseg-glove-40epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove.40epoch\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix-40epoch/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-bseg-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg-mix/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-bseg-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.bseg.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-mix/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.jieba.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba-mix/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-mix-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/mix.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-mix.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb-aug.sh",
    "content": "vocab=$1\nname=$2\n#python ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.valid --mode aug.$name.train\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.test --mode aug.$name.test\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --mode_ aug.$name.train --mode aug.$name.train\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb-char-bert.sh",
    "content": "vocab=$1\n#python ./gen-records.py --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]'\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]'\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --use_char=0 --vocab_=$vocab --fixed_vocab=1 --start_mark='[CLS]' --end_mark='[SEP]' --unk_word='[UNK]'\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb-char.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=char --feed_single=0 --use_char=0 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb-mix-charaug.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.valid --mode aug.char.train\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.test --mode aug.char.test\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic_digit --feed_single=1 --use_char=0 --vocab_=$vocab --mode_ aug.char.train --mode aug.char.train\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb-mix.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic_digit --feed_single=1 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb-wordonly.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --word_only=1\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-noemb.sh",
    "content": "vocab=$1\n#python ./gen-records.py  --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --start_index=1 --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ft\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-ft-knowldege.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft.knowledge/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --sort_by=knowledge\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft/\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-ft2.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft2/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-ft3.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.ft3/\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\n#emb=./mount/data/my-embedding/fastText-sentiment-bseg-ner/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-glove-10epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb= ./mount/data/my-embedding/GloVe-sentiment-bseg/ /vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-glove-40epoch.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.glove/\nemb=./mount/data/my-embedding/GloVe-sentiment-bseg/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-ner-jiebapre-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.ner.jiebapre.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-basic-pos/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-subner-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.subner.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-bseg-subner-jiebapre-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.bseg.subner.jiebapre.ft/\nemb=./mount/data/my-embedding/fastText-sentiment-basic-pos/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-jieba-ft-short.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft.short\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nvocab=$dir/vocab.txt\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.short.csv --seg_method=basic --feed_single=0 --use_char=1 --vocab_=$vocab --word_only=1\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-jieba-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-jieba-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-jieba/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-jieba-pos-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.pos.ft\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-jieba-pos-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.pos.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-jieba/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-jieba-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.jieba.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp10w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-10w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp10w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-10w/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp10w-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp10w.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp1w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-1w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp1w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-1w/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp1w-tx.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp1w.tx\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim --add_additional=0\n\nsh ./run-noemb.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp20w-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.ft\nemb=./mount/data/my-embedding/fastText-sentiment-sentencepiece-20w/text.vec\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-sp20w-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.sp20w.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-sentencepiece-20w/vectors.fix.txt\nemb_dim=300\n\n#python ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb-wordonly.sh $dir/vocab.txt\n#sh ./run-noemb-aug.sh $dir/vocab.txt seg\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir \npython read-records.py --base=$dir --type show_info\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-stanford-ft.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft\nemb=./mount/data/my-embedding/fastText-sentiment-stanford/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-stanford-ft2.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft2\nemb=./mount/data/my-embedding/fastText-sentiment-jieba/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-stanford-ft3.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.ft3\nemb=./mount/data/my-embedding/fastText-sentiment-bseg/text.vec\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-stanford-glove.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.glove\nemb=./mount/data/my-embedding/GloVe-sentiment-stanford/vectors.fix.txt\nemb_dim=300\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-stanford-tx-ftchar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.tx.ftchar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-stanford-tx-glovechar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.stanford.tx.glovechar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-tx-ftchar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.tx.ftchar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run-word-tx-glovechar.sh",
    "content": "dir=./mount/temp/ai2018/sentiment/tfrecords/word.tx.glovechar\nemb=./mount/data/word-emb/Tencent_AILab_ChineseEmbedding.txt\nemb_dim=200\n\npython ./merge-emb.py --input_vocab=$dir/vocab.ori.txt --emb=$emb --emb_dim=$emb_dim\n\nsh ./run-noemb.sh $dir/vocab.txt\n\npushd .\ncd ..\npython ./read-records.py --type=dump --base=$dir\npopd\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/run.sh",
    "content": "sh ./run-char-ft.sh  \nsh ./run-char-glove.sh  \nsh ./run-word-jieba-ft.sh \nsh ./run-word-jieba-glove.sh\nsh ./run-word-bseg-ft.sh \nsh ./run-word-bseg-glove.sh\nsh ./run-word-bseg-ner-ft.sh\nsh ./run-word-bseg-ner-glove.sh \nsh ./run-word-sp10w-ft.sh\nsh ./run-word-sp10w-glove.sh \nsh ./run-word-sp1w-ft.sh\nsh ./run-word-sp1w-glove.sh \nsh ./run-mix-jieba-ft.sh \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('feed_single', False, '')\nflags.DEFINE_bool('to_lower', True, '')\n\nimport sys \nimport os\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \n# TODO check 2018.10.01 add multi grid\ndef text2ids(text, preprocess=True, return_words=False):\n  wenzheng.utils.text2ids.init()\n  if preprocess:\n    text = filter.filter(text)\n  return to_ids(text, \n                seg_method=FLAGS.seg_method, \n                feed_single=FLAGS.feed_single,\n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                multi_grid=False,\n                pad=False,\n                return_words=return_words)\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/tmp",
    "content": "2018-10-19 10:42:16 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 10:42:54 0:00:40 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 10:43:12 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 10:44:32 0:01:21 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 10:45:45 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 10:50:15 0:04:33 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍|山|而|建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有|嚼|头|。|\u0002|鸵心|拼|鸵肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌|哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 384\n2018-10-19 15:03:14 0:00:02 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 15:06:18 0:03:06 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍|山|而|建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有|嚼|头|。|\u0002|鸵心|拼|鸵肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌|哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 384\n2018-10-19 15:09:20 0:06:08 \"伊势丹楼下，路过很多次都没有进来～终于有机会来尝一尝了大阪煎饼了！店面比较小，放着日本名族歌曲，日本小店的感觉～老板是个亲切的日本大叔～\u0002【章鱼小丸子】很q弹！真的是我吃过最q弹的小丸子！里面很明显有一块有嚼劲的章鱼肉～\u0002【海鲜大阪煎饼】味道很好，蛋皮里面包的虾，扇贝肉，鸡蛋，还有些菜～加了奶酪，多加十元，但是感觉意义不大。\u0002【海鲜大阪烧】这个是送错餐送给我们吃的～里面只有虾，感觉没得煎饼好吃，价格比煎饼便宜。\u0002【乌冬面】很清淡，但是汤很有味道～面有嚼劲～\" \"|伊|势|丹|楼|下|，|路|过|很|多|次|都|没|有|进|来|～|终|于|有|机|会|来|尝|一|尝|了|大|阪|煎|饼|了|！|店|面|比|较|小|，|放|着|日|本|名|族|歌|曲|，|日|本|小|店|的|感|觉|～|老|板|是|个|亲|切|的|日|本|大|叔|～|\u0002|【|章|鱼|小|丸|子|】|很|q|弹|！|真|的|是|我|吃|过|最|q|弹|的|小|丸|子|！|里|面|很|明|显|有|一|块|有|嚼|劲|的|章|鱼|肉|～|\u0002|【|海|鲜|大|阪|煎|饼|】|味|道|很|好|，|蛋|皮|里|面|包|的|虾|，|扇|贝|肉|，|鸡|蛋|，|还|有|些|菜|～|加|了|奶|酪|，|多|加|十|元|，|但|是|感|觉|意|义|不|大|。|\u0002|【|海|鲜|大|阪|烧|】|这|个|是|送|错|餐|送|给|我|们|吃|的|～|里|面|只|有|虾|，|感|觉|没|得|煎|饼|好|吃|，|价|格|比|煎|饼|便|宜|。|\u0002|【|乌|冬|面|】|很|清|淡|，|但|是|汤|很|有|味|道|～|面|有|嚼|劲|～|\"|\"|伊势丹|楼下|，|路过|很|多次|都|没有|进来|～|终于|有|机会|来|尝一尝|了|大阪|煎饼|了|！|店面|比较|小|，|放|着|日本|名族|歌曲|，|日本|小店|的|感觉|～|老板|是|个|亲切|的|日本|大叔|～|\u0002|【|章鱼|小丸子|】|很|q|弹|！|真的|是|我|吃|过|最|q|弹|的|小丸子|！|里面|很|明显|有|一块|有|嚼|劲|的|章|鱼肉|～|\u0002|【|海鲜|大阪|煎饼|】|味道|很|好|，|蛋|皮里|面包|的|虾|，|扇贝|肉|，|鸡蛋|，|还|有些|菜|～|加|了|奶酪|，|多|加|十元|，|但是|感觉|意义|不|大|。|\u0002|【|海鲜|大阪|烧|】|这个|是|送错|餐|送给|我们|吃|的|～|里面|只有|虾|，|感觉|没|得|煎饼|好吃|，|价格比|煎饼|便宜|。|\u0002|【|乌冬|面|】|很|清淡|，|但是|汤|很|有|味道|～|面有|嚼|劲|～|\" 395\n2018-10-19 15:12:22 0:09:09 \"一直很喜欢这家的pasta，以前都是在美罗城楼下吃的，感觉都很好还一直和别人推荐，周日下雨和老公本来想去太兴的没想到关门就到镰仓了，这里地方还算比较大，一进去浓浓的奶香味很舒服，坐下来开始点单，新品出来还比较多，不过还是点了pasta。\u0002畅食的面包必须点单后才给你上ok没问题，我点了脆虾番茄奶油意面52元，虾大概有6-8个还算可以，不过意面不多，最重要的是这里的意面能叫意面吗？烂的比烂糊面还烂，加上烧的浓稠的的酱汁要死了就是一坨面粉，完全没有口味可言，老公点的扇贝配鲑鱼意面也是如此，面条都糊了，受不了，吃完胃就不舒服了。\u0002熏鲑鱼色拉还可以酱料调配的比较爽口。\u0002畅食的面包真的没有以前好吃了，以前的羊角面包都是现烤热腾腾的，现在很多都是一起上，虽然味道还不错但是口感没有刚出炉的那么酥脆了。\u0002看来以后老公是不会再来了。\" \"|一|直|很|喜|欢|这|家|的|p|a|s|t|a|，|以|前|都|是|在|美|罗|城|楼|下|吃|的|，|感|觉|都|很|好|还|一|直|和|别|人|推|荐|，|周|日|下|雨|和|老|公|本|来|想|去|太|兴|的|没|想|到|关|门|就|到|镰|仓|了|，|这|里|地|方|还|算|比|较|大|，|一|进|去|浓|浓|的|奶|香|味|很|舒|服|，|坐|下|来|开|始|点|单|，|新|品|出|来|还|比|较|多|，|不|过|还|是|点|了|p|a|s|t|a|。|\u0002|畅|食|的|面|包|必|须|点|单|后|才|给|你|上|o|k|没|问|题|，|我|点|了|脆|虾|番|茄|奶|油|意|面|5|2|元|，|虾|大|概|有|6|-|8|个|还|算|可|以|，|不|过|意|面|不|多|，|最|重|要|的|是|这|里|的|意|面|能|叫|意|面|吗|？|烂|的|比|烂|糊|面|还|烂|，|加|上|烧|的|浓|稠|的|的|酱|汁|要|死|了|就|是|一|坨|面|粉|，|完|全|没|有|口|味|可|言|，|老|公|点|的|扇|贝|配|鲑|鱼|意|面|也|是|如|此|，|面|条|都|糊|了|，|受|不|了|，|吃|完|胃|就|不|舒|服|了|。|\u0002|熏|鲑|鱼|色|拉|还|可|以|酱|料|调|配|的|比|较|爽|口|。|\u0002|畅|食|的|面|包|真|的|没|有|以|前|好|吃|了|，|以|前|的|羊|角|面|包|都|是|现|烤|热|腾|腾|的|，|现|在|很|多|都|是|一|起|上|，|虽|然|味|道|还|不|错|但|是|口|感|没|有|刚|出|炉|的|那|么|酥|脆|了|。|\u0002|看|来|以|后|老|公|是|不|会|再|来|了|。|\"|\"|一直|很|喜欢|这家|的|pasta|，|以前|都|是|在|美罗城|楼下|吃|的|，|感觉|都|很|好|还|一直|和|别人|推荐|，|周日|下雨|和|老公|本来|想|去|太兴|的|没想到|关门|就|到|镰|仓|了|，|这里|地方|还|算|比较|大|，|一|进去|浓浓的|奶|香味|很|舒服|，|坐下|来|开始|点|单|，|新品|出来|还|比较|多|，|不过|还是|点|了|pasta|。|\u0002|畅食|的|面包|必须|点|单后|才|给|你|上|ok|没|问题|，|我|点|了|脆|虾|番茄|奶油|意面|52|元|，|虾|大概|有|6|-|8|个|还算|可以|，|不过意|面不多|，|最|重要|的|是|这里|的|意面|能|叫|意面|吗|？|烂|的|比|烂糊|面|还|烂|，|加上|烧|的|浓稠|的|的|酱汁|要死|了|就是|一|坨|面粉|，|完全|没有|口味|可言|，|老公|点|的|扇贝|配|鲑鱼|意面|也|是|如此|，|面条|都|糊|了|，|受不了|，|吃|完|胃|就|不|舒服|了|。|\u0002|熏|鲑鱼|色拉|还|可以|酱料|调配|的|比较|爽口|。|\u0002|畅食|的|面包|真的|没有|以前|好吃|了|，|以前|的|羊角|面包|都|是现|烤|热腾腾|的|，|现在|很多|都|是|一起|上|，|虽然|味道|还|不错|但是|口感|没有|刚|出炉|的|那么|酥脆|了|。|\u0002|看来|以后|老公|是|不会|再|来|了|。|\" 608\n2018-10-19 15:15:26 0:12:13 \"以前对烧烤都没感觉，这次抽中大众的霸王餐就去吃了。吃下来意犹未尽的感觉，很好吃！妈妈也赞不绝口。我们没点羊排\u0003单点的烤串\u0003还有凉皮\u0003做的很好有劲\u0003微甜\u0003羊杂汤\u0003里面料很足\u0003最后都没吃完\u0003还有羊肉面\u0003汤里放了胡椒粉\u0003面条很有嚼劲\u0003我喜欢的\u0003凉拌海带也不错\u0003店里烤串价格不贵\u0003而且分量很实在！\u0003羊肉串3块\u0003羊脆骨4块\u0003考鸡翅个头满大的两个也就8块\u0003明虾也非常好吃\u00032块一串\u0003店家服务态度也很好的\u0003我们三个大人一个小孩吃了202\u0003我去结帐\u0003老板说2块钱就算了\u0003够爽气\u0003真是霸王餐了\u0003吃饱喝足\u0003还打包\u0003一分钱都没花！以后要吃烤串一定还去\u0003就是如果能出团购代金券\u0003就更好拉\" \"|以|前|对|烧|烤|都|没|感|觉|，|这|次|抽|中|大|众|的|霸|王|餐|就|去|吃|了|。|吃|下|来|意|犹|未|尽|的|感|觉|，|很|好|吃|！|妈|妈|也|赞|不|绝|口|。|我|们|没|点|羊|排|\u0003|单|点|的|烤|串|\u0003|还|有|凉|皮|\u0003|做|的|很|好|有|劲|\u0003|微|甜|\u0003|羊|杂|汤|\u0003|里|面|料|很|足|\u0003|最|后|都|没|吃|完|\u0003|还|有|羊|肉|面|\u0003|汤|里|放|了|胡|椒|粉|\u0003|面|条|很|有|嚼|劲|\u0003|我|喜|欢|的|\u0003|凉|拌|海|带|也|不|错|\u0003|店|里|烤|串|价|格|不|贵|\u0003|而|且|分|量|很|实|在|！|\u0003|羊|肉|串|3|块|\u0003|羊|脆|骨|4|块|\u0003|考|鸡|翅|个|头|满|大|的|两|个|也|就|8|块|\u0003|明|虾|也|非|常|好|吃|\u0003|2|块|一|串|\u0003|店|家|服|务|态|度|也|很|好|的|\u0003|我|们|三|个|大|人|一|个|小|孩|吃|了|2|0|2|\u0003|我|去|结|帐|\u0003|老|板|说|2|块|钱|就|算|了|\u0003|够|爽|气|\u0003|真|是|霸|王|餐|了|\u0003|吃|饱|喝|足|\u0003|还|打|包|\u0003|一|分|钱|都|没|花|！|以|后|要|吃|烤|串|一|定|还|去|\u0003|就|是|如|果|能|出|团|购|代|金|券|\u0003|就|更|好|拉|\"|\"|以前|对|烧烤|都|没|感觉|，|这次|抽|中|大众|的|霸王餐|就|去|吃|了|。|吃|下来|意犹未尽|的|感觉|，|很|好吃|！|妈妈|也|赞不绝口|。|我们|没点|羊排|\u0003|单点|的|烤串|\u0003|还有|凉皮|\u0003|做|的|很好|有劲|\u0003|微甜|\u0003|羊杂|汤|\u0003|里面|料|很足|\u0003|最后|都|没|吃|完|\u0003|还有|羊肉|面|\u0003|汤里|放|了|胡椒粉|\u0003|面条|很|有|嚼|劲|\u0003|我|喜欢|的|\u0003|凉拌|海带|也|不错|\u0003|店里|烤串|价格|不|贵|\u0003|而且|分量|很|实在|！|\u0003|羊肉串|3|块|\u0003|羊|脆骨|4|块|\u0003|考|鸡翅|个头|满|大|的|两个|也|就|8|块|\u0003|明虾|也|非常|好吃|\u0003|2|块|一串|\u0003|店家|服务态度|也|很好|的|\u0003|我们|三个|大人|一个|小孩|吃|了|202|\u0003|我|去|结帐|\u0003|老板|说|2|块钱|就算|了|\u0003|够|爽气|\u0003|真是|霸王餐|了|\u0003|吃饱喝足|\u0003|还|打包|\u0003|一分钱|都|没|花|！|以后|要|吃|烤串|一定|还|去|\u0003|就是|如果|能出|团购|代金券|\u0003|就|更好|拉|\" 473\n2018-10-19 15:18:28 0:15:15 \"餐前，装冷菜的碟子是仿青瓷的碟子，高脚，可惜是塑料的，近看缺了质感，没有瓷器那种通透，远看挺不错。盛菜的器皿有些也挺有特色的，包厢布置也花了功夫，走古风挂字画。墙纸是青花瓷的，对面墙壁也贴了很多瓷器，有几个还是玲珑瓷，透光看比较好看。比较喜欢他们家的日式茶壶，铁壶，很沉但漂亮，据说冲泡能补铁？菜品味道一般，花样是挺多的，杨枝甘露换个器皿就能换来很大的拍照量，是不是桌桌都有？喜欢那个有小把的酱料器皿，拿着很可爱\" \"|餐|前|，|装|冷|菜|的|碟|子|是|仿|青|瓷|的|碟|子|，|高|脚|，|可|惜|是|塑|料|的|，|近|看|缺|了|质|感|，|没|有|瓷|器|那|种|通|透|，|远|看|挺|不|错|。|盛|菜|的|器|皿|有|些|也|挺|有|特|色|的|，|包|厢|布|置|也|花|了|功|夫|，|走|古|风|挂|字|画|。|墙|纸|是|青|花|瓷|的|，|对|面|墙|壁|也|贴|了|很|多|瓷|器|，|有|几|个|还|是|玲|珑|瓷|，|透|光|看|比|较|好|看|。|比|较|喜|欢|他|们|家|的|日|式|茶|壶|，|铁|壶|，|很|沉|但|漂|亮|，|据|说|冲|泡|能|补|铁|？|菜|品|味|道|一|般|，|花|样|是|挺|多|的|，|杨|枝|甘|露|换|个|器|皿|就|能|换|来|很|大|的|拍|照|量|，|是|不|是|桌|桌|都|有|？|喜|欢|那|个|有|小|把|的|酱|料|器|皿|，|拿|着|很|可|爱|\"|\"|餐|前|，|装|冷菜|的|碟子|是|仿|青瓷|的|碟子|，|高脚|，|可惜|是|塑料|的|，|近|看|缺|了|质感|，|没有|瓷器|那种|通透|，|远|看|挺不错|。|盛菜|的|器皿|有些|也|挺|有|特色|的|，|包厢|布置|也|花|了|功夫|，|走|古风|挂|字画|。|墙纸|是|青花瓷|的|，|对面|墙壁|也|贴|了|很多|瓷器|，|有|几个|还是|玲珑|瓷|，|透光|看|比较|好看|。|比较|喜欢|他们|家|的|日式|茶壶|，|铁壶|，|很沉|但|漂亮|，|据说|冲泡|能|补铁|？|菜品|味道|一般|，|花样|是|挺|多|的|，|杨枝|甘露|换|个|器皿|就|能|换来|很大|的|拍照|量|，|是不是|桌桌|都|有|？|喜欢|那个|有|小|把|的|酱料|器皿|，|拿|着|很|可爱|\" 351\n2018-10-19 15:21:30 0:18:17 \"本人上周参加了婚宴！灯光效果非常不错，做的挺用心。服务员态度比较谦和，也挺任劳任怨的，一个个东跑西癫都累出汗了，看着俺都心疼啊。用于闹肚子，喝点白酒也没吃菜，不过听老婆说个个菜做的超棒，非得中秋节拉着我去尝尝果木烤鸭和杏鲍菇。以后想吃海鲜就去奥帆号了，海鲜厨房嘛高端的装修，可口的大众亲民的价格。还有好多帅哥美女免费服务哟～唯一美中不足的地方就是院子里的停车场有点小，放30多个车就快没地方了，得提前点过去抢个车位再说～哈哈\" \"|本|人|上|周|参|加|了|婚|宴|！|灯|光|效|果|非|常|不|错|，|做|的|挺|用|心|。|服|务|员|态|度|比|较|谦|和|，|也|挺|任|劳|任|怨|的|，|一|个|个|东|跑|西|癫|都|累|出|汗|了|，|看|着|俺|都|心|疼|啊|。|用|于|闹|肚|子|，|喝|点|白|酒|也|没|吃|菜|，|不|过|听|老|婆|说|个|个|菜|做|的|超|棒|，|非|得|中|秋|节|拉|着|我|去|尝|尝|果|木|烤|鸭|和|杏|鲍|菇|。|以|后|想|吃|海|鲜|就|去|奥|帆|号|了|，|海|鲜|厨|房|嘛|高|端|的|装|修|，|可|口|的|大|众|亲|民|的|价|格|。|还|有|好|多|帅|哥|美|女|免|费|服|务|哟|～|唯|一|美|中|不|足|的|地|方|就|是|院|子|里|的|停|车|场|有|点|小|，|放|3|0|多|个|车|就|快|没|地|方|了|，|得|提|前|点|过|去|抢|个|车|位|再|说|～|哈|哈|\"|\"|本人|上周|参加|了|婚宴|！|灯光效果|非常|不错|，|做|的|挺|用心|。|服务员|态度|比较|谦和|，|也|挺|任劳任怨|的|，|一个个|东跑|西癫|都|累|出汗|了|，|看着|俺|都|心疼|啊|。|用于|闹肚子|，|喝|点|白酒|也|没|吃|菜|，|不过|听|老婆|说|个个|菜|做|的|超棒|，|非得|中秋节|拉|着|我|去|尝尝|果木|烤鸭|和|杏鲍菇|。|以后|想|吃海鲜|就|去|奥帆|号|了|，|海鲜|厨房|嘛|高端|的|装修|，|可口|的|大众|亲民|的|价格|。|还有|好多|帅哥美女|免费|服务|哟|～|唯一|美中不足|的|地方|就是|院子|里|的|停车场|有点|小|，|放|30|多个|车|就快|没|地方|了|，|得|提前|点|过去|抢|个|车位|再说|～|哈哈|\" 349\n2018-10-19 15:24:32 0:21:19 \"趁赛格美食节买的团购券\u0003来西安一年\u0003对长安大排档长草很久了\u0003也差不多拖了一年才来吃\u0003七七八八减减以后用了59块钱买了100的抵用券\u0003实在是划算。\u0002今天晚上雨下的挺大的\u0003和男票出门\u0003回来的时候就在小寨下了\u0003直奔赛格六楼长安大排挡。\u0002去的时候不到七点\u0003已经有不少人排队了。我一问\u0003原来两个人不需要等位\u0003实在是太好了。\u0002点了葫芦鸡\u0003枣馍\u0003锅贴和羊肉串。加起来105\u0003两个人吃的饱饱的。\u0002葫芦鸡很好吃\u0003有点像炸鸡\u000358一整只鸡\u0003两个人吃的好饱\u0003男票动手撕开的\u0003他很喜欢吃。\u0002羊肉串十串25\u0003肉很大块\u0003也不肥。锅贴中规中矩。枣馍感觉没有大家评价的那么好\u0003不过当主食也不错。\u0002总之很满意的一家店\u0003性价比高\u0003菜的味道也不错。\" \"|趁|赛|格|美|食|节|买|的|团|购|券|\u0003|来|西|安|一|年|\u0003|对|长|安|大|排|档|长|草|很|久|了|\u0003|也|差|不|多|拖|了|一|年|才|来|吃|\u0003|七|七|八|八|减|减|以|后|用|了|5|9|块|钱|买|了|1|0|0|的|抵|用|券|\u0003|实|在|是|划|算|。|\u0002|今|天|晚|上|雨|下|的|挺|大|的|\u0003|和|男|票|出|门|\u0003|回|来|的|时|候|就|在|小|寨|下|了|\u0003|直|奔|赛|格|六|楼|长|安|大|排|挡|。|\u0002|去|的|时|候|不|到|七|点|\u0003|已|经|有|不|少|人|排|队|了|。|我|一|问|\u0003|原|来|两|个|人|不|需|要|等|位|\u0003|实|在|是|太|好|了|。|\u0002|点|了|葫|芦|鸡|\u0003|枣|馍|\u0003|锅|贴|和|羊|肉|串|。|加|起|来|1|0|5|\u0003|两|个|人|吃|的|饱|饱|的|。|\u0002|葫|芦|鸡|很|好|吃|\u0003|有|点|像|炸|鸡|\u0003|5|8|一|整|只|鸡|\u0003|两|个|人|吃|的|好|饱|\u0003|男|票|动|手|撕|开|的|\u0003|他|很|喜|欢|吃|。|\u0002|羊|肉|串|十|串|2|5|\u0003|肉|很|大|块|\u0003|也|不|肥|。|锅|贴|中|规|中|矩|。|枣|馍|感|觉|没|有|大|家|评|价|的|那|么|好|\u0003|不|过|当|主|食|也|不|错|。|\u0002|总|之|很|满|意|的|一|家|店|\u0003|性|价|比|高|\u0003|菜|的|味|道|也|不|错|。|\"|\"|趁|赛格|美食节|买|的|团购|券|\u0003|来|西安|一年|\u0003|对|长安|大排档|长|草|很|久|了|\u0003|也|差不多|拖|了|一年|才|来|吃|\u0003|七七八八|减减|以后|用|了|59|块钱|买|了|100|的|抵用|券|\u0003|实在|是|划算|。|\u0002|今天|晚上|雨|下|的|挺大|的|\u0003|和|男票|出门|\u0003|回来|的|时候|就|在|小寨|下|了|\u0003|直奔|赛格|六楼|长安|大排挡|。|\u0002|去|的|时候|不到|七点|\u0003|已经|有|不少|人|排队|了|。|我一|问|\u0003|原来|两个|人|不|需要|等位|\u0003|实在|是|太好了|。|\u0002|点|了|葫芦|鸡|\u0003|枣馍|\u0003|锅贴|和|羊肉串|。|加|起来|105|\u0003|两个|人|吃|的|饱饱|的|。|\u0002|葫芦|鸡|很|好吃|\u0003|有点像|炸鸡|\u0003|58|一整只|鸡|\u0003|两个|人|吃|的|好|饱|\u0003|男票|动手|撕开|的|\u0003|他|很|喜欢|吃|。|\u0002|羊肉串|十串|25|\u0003|肉|很大|块|\u0003|也|不|肥|。|锅贴|中规中矩|。|枣馍|感觉|没有|大家|评价|的|那么|好|\u0003|不过|当|主食|也|不错|。|\u0002|总之|很|满意|的|一家|店|\u0003|性价比|高|\u0003|菜|的|味道|也|不错|。|\" 514\n2018-10-19 15:27:34 0:24:21 \"店内印象：日本风的装修，店里光线偏暗，空间狭小\u0003很拘谨，桌上没有随时可以接水的水龙头，桌子上也没有嵌入式可以煮面的小电磁炉，（该评价是跟博多一幸舍对比），店员服务态度很热情，上汤上面也算快，价格比博多一幸舍便宜一些，周一至周五可以打折，周末没有任何优惠。\u0002面的口感可以根据自己的感觉选择软\u0003普通\u0003硬\u0003很硬，咸度、是否加葱都可根据喜好选择，个人觉的普通即可，尝试了一次硬的，也可以接受，但是估计不会尝试特硬的、、、\u0002汤是十分浓稠，有胶口的感觉，浓稠度和博多一幸舍差不多，也就是东北皮冻的五分到七分的浓度，很多人可能会觉得腻，\u0003本人挺喜欢，另加一份面6元，加汤不要钱，带娃来吃还是划算滴。\u0002跟博多一幸舍的面面配料基本一致，紫菜、鸡蛋、芽菜、香葱、木耳、笋、叉烧、每种都有单独价格，没有搭配在一起的全套豪华配菜价格。\u0002面里搭配的肉肉没有博多一幸舍的大片，但是味道还不错，嫩香，就是家里的蒜泥肘子肉（盐水炖肘花）。糖心蛋就是煮鸡蛋，蛋清已熟，蛋黄儿半熟，温泉蛋就是窝鸡蛋，蛋清变白裹住没熟的蛋黄儿。\u0002还点了一口饺子、炸鸡块，炸鸡排，炸香肠，可惜没来得及拍照就破相了，不能上图了，一口饺子不如博多一幸舍好吃，炸鸡块有四块，比博多一幸舍的稍微小一点，但是更好吃更入味也更嫩一些。那个香肠没什么特点，宝宝喜欢而已。鸡排不过不失的，没什么特点。\u0003配菜中，\u0003木耳就是脆，芽菜带着蔬菜汁所以是水脆，\u0003笋是嫩。\u0003雪碧直接给了易拉罐和一根管子，不像博多一幸舍，漂亮的大啤酒杯，质量不错的黑色吸管。\u0002豚丸店加汤只有清汤加（清汤也已经十分浓稠），博多加汤时会问您需要加浓汤还是清汤。\u0002\" \"|店|内|印|象|：|日|本|风|的|装|修|，|店|里|光|线|偏|暗|，|空|间|狭|小|\u0003|很|拘|谨|，|桌|上|没|有|随|时|可|以|接|水|的|水|龙|头|，|桌|子|上|也|没|有|嵌|入|式|可|以|煮|面|的|小|电|磁|炉|，|（|该|评|价|是|跟|博|多|一|幸|舍|对|比|）|，|店|员|服|务|态|度|很|热|情|，|上|汤|上|面|也|算|快|，|价|格|比|博|多|一|幸|舍|便|宜|一|些|，|周|一|至|周|五|可|以|打|折|，|周|末|没|有|任|何|优|惠|。|\u0002|面|的|口|感|可|以|根|据|自|己|的|感|觉|选|择|软|\u0003|普|通|\u0003|硬|\u0003|很|硬|，|咸|度|、|是|否|加|葱|都|可|根|据|喜|好|选|择|，|个|人|觉|的|普|通|即|可|，|尝|试|了|一|次|硬|的|，|也|可|以|接|受|，|但|是|估|计|不|会|尝|试|特|硬|的|、|、|、|\u0002|汤|是|十|分|浓|稠|，|有|胶|口|的|感|觉|，|浓|稠|度|和|博|多|一|幸|舍|差|不|多|，|也|就|是|东|北|皮|冻|的|五|分|到|七|分|的|浓|度|，|很|多|人|可|能|会|觉|得|腻|，|\u0003|本|人|挺|喜|欢|，|另|加|一|份|面|6|元|，|加|汤|不|要|钱|，|带|娃|来|吃|还|是|划|算|滴|。|\u0002|跟|博|多|一|幸|舍|的|面|面|配|料|基|本|一|致|，|紫|菜|、|鸡|蛋|、|芽|菜|、|香|葱|、|木|耳|、|笋|、|叉|烧|、|每|种|都|有|单|独|价|格|，|没|有|搭|配|在|一|起|的|全|套|豪|华|配|菜|价|格|。|\u0002|面|里|搭|配|的|肉|肉|没|有|博|多|一|幸|舍|的|大|片|，|但|是|味|道|还|不|错|，|嫩|香|，|就|是|家|里|的|蒜|泥|肘|子|肉|（|盐|水|炖|肘|花|）|。|糖|心|蛋|就|是|煮|鸡|蛋|，|蛋|清|已|熟|，|蛋|黄|儿|半|熟|，|温|泉|蛋|就|是|窝|鸡|蛋|，|蛋|清|变|白|裹|住|没|熟|的|蛋|黄|儿|。|\u0002|还|点|了|一|口|饺|子|、|炸|鸡|块|，|炸|鸡|排|，|炸|香|肠|，|可|惜|没|来|得|及|拍|照|就|破|相|了|，|不|能|上|图|了|，|一|口|饺|子|不|如|博|多|一|幸|舍|好|吃|，|炸|鸡|块|有|四|块|，|比|博|多|一|幸|舍|的|稍|微|小|一|点|，|但|是|更|好|吃|更|入|味|也|更|嫩|一|些|。|那|个|香|肠|没|什|么|特|点|，|宝|宝|喜|欢|而|已|。|鸡|排|不|过|不|失|的|，|没|什|么|特|点|。|\u0003|配|菜|中|，|\u0003|木|耳|就|是|脆|，|芽|菜|带|着|蔬|菜|汁|所|以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪|碧|直|接|给|了|易|拉|罐|和|一|根|管|子|，|不|像|博|多|一|幸|舍|，|漂|亮|的|大|啤|酒|杯|，|质|量|不|错|的|黑|色|吸|管|。|\u0002|豚|丸|店|加|汤|只|有|清|汤|加|（|清|汤|也|已|经|十|分|浓|稠|）|，|博|多|加|汤|时|会|问|您|需|要|加|浓|汤|还|是|清|汤|。|\u0002|\"|\"|店|内|印象|：|日本|风|的|装修|，|店里|光线|偏暗|，|空间|狭小|\u0003|很|拘谨|，|桌上|没有|随时|可以|接水|的|水龙头|，|桌子|上|也|没有|嵌入式|可以|煮|面|的|小|电磁炉|，|（|该|评价|是|跟|博多|一幸|舍|对比|）|，|店员|服务态度|很|热情|，|上|汤|上面|也|算|快|，|价格比|博多|一幸|舍|便宜|一些|，|周一|至|周五|可以|打折|，|周末|没有|任何|优惠|。|\u0002|面|的|口感|可以|根据|自己|的|感觉|选择|软|\u0003|普通|\u0003|硬|\u0003|很|硬|，|咸度|、|是否|加葱|都|可|根据|喜好|选择|，|个人|觉|的|普通|即可|，|尝试|了|一次|硬|的|，|也|可以|接受|，|但是|估计|不会|尝试|特硬|的|、|、|、|\u0002|汤|是|十分|浓稠|，|有|胶口|的|感觉|，|浓|稠度|和|博多|一幸|舍|差不多|，|也|就是|东北|皮冻|的|五分|到|七分|的|浓度|，|很多|人|可能|会|觉得|腻|，|\u0003|本人|挺|喜欢|，|另加|一份|面|6|元|，|加汤|不要|钱|，|带|娃|来|吃|还是|划算|滴|。|\u0002|跟|博多|一幸舍|的|面面|配料|基本一致|，|紫菜|、|鸡蛋|、|芽菜|、|香葱|、|木耳|、|笋|、|叉烧|、|每种|都|有|单独|价格|，|没有|搭配|在|一起|的|全套|豪华|配菜|价格|。|\u0002|面里|搭配|的|肉肉|没有|博多|一幸舍|的|大片|，|但是|味道|还|不错|，|嫩香|，|就是|家里|的|蒜泥|肘子|肉|（|盐水|炖|肘|花|）|。|糖心|蛋|就是|煮|鸡蛋|，|蛋清|已|熟|，|蛋黄|儿|半熟|，|温泉|蛋|就是|窝|鸡蛋|，|蛋清|变白|裹住|没熟|的|蛋黄|儿|。|\u0002|还点|了|一口|饺子|、|炸鸡块|，|炸鸡|排|，|炸|香肠|，|可惜|没|来得及|拍照|就|破相|了|，|不能|上图|了|，|一口|饺子|不如|博多|一幸|舍|好吃|，|炸鸡块|有|四块|，|比|博多|一幸舍|的|稍微|小|一点|，|但是|更|好吃|更|入味|也|更|嫩|一些|。|那个|香肠|没什么|特点|，|宝宝|喜欢|而已|。|鸡|排|不过|不失|的|，|没什么|特点|。|\u0003|配菜|中|，|\u0003|木耳|就是|脆|，|芽菜|带|着|蔬菜汁|所以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪碧|直接|给|了|易拉罐|和|一根|管子|，|不|像|博多|一幸|舍|，|漂亮|的|大|啤酒杯|，|质量|不错|的|黑色|吸管|。|\u0002|豚丸|店|加|汤|只有|清|汤加|（|清汤|也|已经|十分|浓稠|）|，|博多|加汤|时会|问|您|需要|加|浓汤|还是|清汤|。|\u0002|\" 1126\n2018-10-19 15:32:53 0:00:01 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送|人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那|取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 370\n2018-10-19 15:33:36 0:00:01 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼|吼|，|萌死|人|的|棒棒糖|，|中|了|大众|点评|的|霸王餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不会|很甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是太|高端|大气|上档次|了|，|还|可以|买|蝴蝶结|扎口|，|送人|可以|买|礼盒|。|我|是|先|打|的|卖家|电话|，|加|了|微信|，|给|卖家|传|的|照片|。|等|了|几天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官|屯|那取|的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得吃|啊|。|\" 368\n2018-10-19 15:33:57 0:00:22 \"椒江过去的，超级方便，直接导航临海汽车站。斜对面，很大的广告牌。\u0002环境超级棒，门前是一片农田，傍山而建，台阶顺势而上，庭院青青。都是包厢。\u0002服务员素质不错，很热情，上菜也快。\u0002菜品价格不贵，分量很足。\u0002记忆尤深是，客家酿豆腐，豆腐入味，汤汁很美味。\u0002鸵鸟蛋超级大，一开始不敢吃，吃了后，觉得口感不错，比鸡蛋有嚼头。\u0002鸵心拼鸵肝，一般人接受不了，哈哈哈哈，因为本来内脏都不是一般人接受的了的。\u0002入口处养了两只鸵鸟，萌哒哒。\u0002环境真的不是一般的棒，推荐亲子游。\" \"|椒|江|过|去|的|，|超|级|方|便|，|直|接|导|航|临|海|汽|车|站|。|斜|对|面|，|很|大|的|广|告|牌|。|\u0002|环|境|超|级|棒|，|门|前|是|一|片|农|田|，|傍|山|而|建|，|台|阶|顺|势|而|上|，|庭|院|青|青|。|都|是|包|厢|。|\u0002|服|务|员|素|质|不|错|，|很|热|情|，|上|菜|也|快|。|\u0002|菜|品|价|格|不|贵|，|分|量|很|足|。|\u0002|记|忆|尤|深|是|，|客|家|酿|豆|腐|，|豆|腐|入|味|，|汤|汁|很|美|味|。|\u0002|鸵|鸟|蛋|超|级|大|，|一|开|始|不|敢|吃|，|吃|了|后|，|觉|得|口|感|不|错|，|比|鸡|蛋|有|嚼|头|。|\u0002|鸵|心|拼|鸵|肝|，|一|般|人|接|受|不|了|，|哈|哈|哈|哈|，|因|为|本|来|内|脏|都|不|是|一|般|人|接|受|的|了|的|。|\u0002|入|口|处|养|了|两|只|鸵|鸟|，|萌|哒|哒|。|\u0002|环|境|真|的|不|是|一|般|的|棒|，|推|荐|亲|子|游|。|\"|\"|椒江|过去|的|，|超级|方便|，|直接|导航|临海|汽车站|。|斜对面|，|很大|的|广告牌|。|\u0002|环境|超级|棒|，|门前|是|一片|农田|，|傍山|而建|，|台阶|顺势|而|上|，|庭院|青青|。|都|是|包厢|。|\u0002|服务员|素质|不错|，|很|热情|，|上菜|也|快|。|\u0002|菜品|价格|不|贵|，|分量|很足|。|\u0002|记忆|尤深|是|，|客家|酿|豆腐|，|豆腐|入味|，|汤汁|很|美味|。|\u0002|鸵鸟蛋|超级|大|，|一|开始|不敢|吃|，|吃|了|后|，|觉得|口感|不错|，|比|鸡蛋|有嚼头|。|\u0002|鸵心|拼|鸵|肝|，|一般|人|接受|不了|，|哈哈哈哈|，|因为|本来|内脏|都|不是|一般|人|接受|的|了|的|。|\u0002|入口处|养|了|两只|鸵鸟|，|萌哒|哒|。|\u0002|环境|真的|不是|一般|的|棒|，|推荐|亲子|游|。|\" 381\n2018-10-19 15:34:17 0:00:42 \"伊势丹楼下，路过很多次都没有进来～终于有机会来尝一尝了大阪煎饼了！店面比较小，放着日本名族歌曲，日本小店的感觉～老板是个亲切的日本大叔～\u0002【章鱼小丸子】很q弹！真的是我吃过最q弹的小丸子！里面很明显有一块有嚼劲的章鱼肉～\u0002【海鲜大阪煎饼】味道很好，蛋皮里面包的虾，扇贝肉，鸡蛋，还有些菜～加了奶酪，多加十元，但是感觉意义不大。\u0002【海鲜大阪烧】这个是送错餐送给我们吃的～里面只有虾，感觉没得煎饼好吃，价格比煎饼便宜。\u0002【乌冬面】很清淡，但是汤很有味道～面有嚼劲～\" \"|伊|势|丹|楼|下|，|路|过|很|多|次|都|没|有|进|来|～|终|于|有|机|会|来|尝|一|尝|了|大|阪|煎|饼|了|！|店|面|比|较|小|，|放|着|日|本|名|族|歌|曲|，|日|本|小|店|的|感|觉|～|老|板|是|个|亲|切|的|日|本|大|叔|～|\u0002|【|章|鱼|小|丸|子|】|很|q|弹|！|真|的|是|我|吃|过|最|q|弹|的|小|丸|子|！|里|面|很|明|显|有|一|块|有|嚼|劲|的|章|鱼|肉|～|\u0002|【|海|鲜|大|阪|煎|饼|】|味|道|很|好|，|蛋|皮|里|面|包|的|虾|，|扇|贝|肉|，|鸡|蛋|，|还|有|些|菜|～|加|了|奶|酪|，|多|加|十|元|，|但|是|感|觉|意|义|不|大|。|\u0002|【|海|鲜|大|阪|烧|】|这|个|是|送|错|餐|送|给|我|们|吃|的|～|里|面|只|有|虾|，|感|觉|没|得|煎|饼|好|吃|，|价|格|比|煎|饼|便|宜|。|\u0002|【|乌|冬|面|】|很|清|淡|，|但|是|汤|很|有|味|道|～|面|有|嚼|劲|～|\"|\"|伊势|丹|楼下|，|路过|很|多次|都|没有|进来|～|终于|有|机会|来|尝一尝|了|大阪|煎饼|了|！|店面|比较|小|，|放着|日本|名族|歌曲|，|日本|小店|的|感觉|～|老板|是|个|亲切|的|日本|大叔|～|\u0002|【|章鱼|小丸子|】|很|q|弹|！|真的|是|我|吃|过|最|q|弹|的|小丸子|！|里面|很|明显|有|一块|有|嚼|劲|的|章|鱼肉|～|\u0002|【|海鲜|大阪|煎饼|】|味道|很|好|，|蛋|皮里|面包|的|虾|，|扇贝|肉|，|鸡蛋|，|还|有些|菜|～|加|了|奶酪|，|多加|十元|，|但是|感觉|意义|不|大|。|\u0002|【|海鲜|大阪|烧|】|这个|是|送错|餐|送给|我们|吃|的|～|里面|只有|虾|，|感觉|没|得|煎饼|好吃|，|价格比|煎饼|便宜|。|\u0002|【|乌冬面|】|很|清淡|，|但是|汤|很|有|味道|～|面有|嚼|劲|～|\" 393\n2018-10-19 15:34:38 0:01:03 \"一直很喜欢这家的pasta，以前都是在美罗城楼下吃的，感觉都很好还一直和别人推荐，周日下雨和老公本来想去太兴的没想到关门就到镰仓了，这里地方还算比较大，一进去浓浓的奶香味很舒服，坐下来开始点单，新品出来还比较多，不过还是点了pasta。\u0002畅食的面包必须点单后才给你上ok没问题，我点了脆虾番茄奶油意面52元，虾大概有6-8个还算可以，不过意面不多，最重要的是这里的意面能叫意面吗？烂的比烂糊面还烂，加上烧的浓稠的的酱汁要死了就是一坨面粉，完全没有口味可言，老公点的扇贝配鲑鱼意面也是如此，面条都糊了，受不了，吃完胃就不舒服了。\u0002熏鲑鱼色拉还可以酱料调配的比较爽口。\u0002畅食的面包真的没有以前好吃了，以前的羊角面包都是现烤热腾腾的，现在很多都是一起上，虽然味道还不错但是口感没有刚出炉的那么酥脆了。\u0002看来以后老公是不会再来了。\" \"|一|直|很|喜|欢|这|家|的|p|a|s|t|a|，|以|前|都|是|在|美|罗|城|楼|下|吃|的|，|感|觉|都|很|好|还|一|直|和|别|人|推|荐|，|周|日|下|雨|和|老|公|本|来|想|去|太|兴|的|没|想|到|关|门|就|到|镰|仓|了|，|这|里|地|方|还|算|比|较|大|，|一|进|去|浓|浓|的|奶|香|味|很|舒|服|，|坐|下|来|开|始|点|单|，|新|品|出|来|还|比|较|多|，|不|过|还|是|点|了|p|a|s|t|a|。|\u0002|畅|食|的|面|包|必|须|点|单|后|才|给|你|上|o|k|没|问|题|，|我|点|了|脆|虾|番|茄|奶|油|意|面|5|2|元|，|虾|大|概|有|6|-|8|个|还|算|可|以|，|不|过|意|面|不|多|，|最|重|要|的|是|这|里|的|意|面|能|叫|意|面|吗|？|烂|的|比|烂|糊|面|还|烂|，|加|上|烧|的|浓|稠|的|的|酱|汁|要|死|了|就|是|一|坨|面|粉|，|完|全|没|有|口|味|可|言|，|老|公|点|的|扇|贝|配|鲑|鱼|意|面|也|是|如|此|，|面|条|都|糊|了|，|受|不|了|，|吃|完|胃|就|不|舒|服|了|。|\u0002|熏|鲑|鱼|色|拉|还|可|以|酱|料|调|配|的|比|较|爽|口|。|\u0002|畅|食|的|面|包|真|的|没|有|以|前|好|吃|了|，|以|前|的|羊|角|面|包|都|是|现|烤|热|腾|腾|的|，|现|在|很|多|都|是|一|起|上|，|虽|然|味|道|还|不|错|但|是|口|感|没|有|刚|出|炉|的|那|么|酥|脆|了|。|\u0002|看|来|以|后|老|公|是|不|会|再|来|了|。|\"|\"|一直|很|喜欢|这家|的|pasta|，|以前|都|是|在|美罗城|楼下|吃|的|，|感觉|都|很|好|还|一直|和|别人|推荐|，|周日|下雨|和|老公|本来|想|去|太兴|的|没想到|关门|就|到|镰|仓|了|，|这里|地方|还|算|比较|大|，|一|进去|浓浓的|奶|香味|很|舒服|，|坐下|来|开始|点单|，|新品|出来|还|比较|多|，|不过|还是|点|了|pasta|。|\u0002|畅食|的|面包|必须|点|单后|才|给|你|上|ok|没|问题|，|我点|了|脆|虾|番茄|奶油|意面|52|元|，|虾|大概|有|6|-|8|个|还|算|可以|，|不过意|面不多|，|最|重要|的|是|这里|的|意面|能|叫|意面|吗|？|烂|的|比|烂糊|面|还|烂|，|加上|烧|的|浓稠|的|的|酱汁|要死|了|就是|一坨|面粉|，|完全|没有|口味|可言|，|老公|点|的|扇贝|配|鲑鱼|意面|也|是|如此|，|面条|都|糊|了|，|受不了|，|吃|完胃|就|不|舒服|了|。|\u0002|熏|鲑鱼|色拉|还|可以|酱料|调配|的|比较|爽口|。|\u0002|畅食|的|面包|真的|没有|以前|好吃|了|，|以前|的|羊角|面包|都|是|现烤|热腾腾|的|，|现在|很多|都|是|一起|上|，|虽然|味道|还|不错|但是|口感|没有|刚|出炉|的|那么|酥脆|了|。|\u0002|看来|以后|老公|是|不会|再来|了|。|\" 604\n2018-10-19 15:34:58 0:01:23 \"以前对烧烤都没感觉，这次抽中大众的霸王餐就去吃了。吃下来意犹未尽的感觉，很好吃！妈妈也赞不绝口。我们没点羊排\u0003单点的烤串\u0003还有凉皮\u0003做的很好有劲\u0003微甜\u0003羊杂汤\u0003里面料很足\u0003最后都没吃完\u0003还有羊肉面\u0003汤里放了胡椒粉\u0003面条很有嚼劲\u0003我喜欢的\u0003凉拌海带也不错\u0003店里烤串价格不贵\u0003而且分量很实在！\u0003羊肉串3块\u0003羊脆骨4块\u0003考鸡翅个头满大的两个也就8块\u0003明虾也非常好吃\u00032块一串\u0003店家服务态度也很好的\u0003我们三个大人一个小孩吃了202\u0003我去结帐\u0003老板说2块钱就算了\u0003够爽气\u0003真是霸王餐了\u0003吃饱喝足\u0003还打包\u0003一分钱都没花！以后要吃烤串一定还去\u0003就是如果能出团购代金券\u0003就更好拉\" \"|以|前|对|烧|烤|都|没|感|觉|，|这|次|抽|中|大|众|的|霸|王|餐|就|去|吃|了|。|吃|下|来|意|犹|未|尽|的|感|觉|，|很|好|吃|！|妈|妈|也|赞|不|绝|口|。|我|们|没|点|羊|排|\u0003|单|点|的|烤|串|\u0003|还|有|凉|皮|\u0003|做|的|很|好|有|劲|\u0003|微|甜|\u0003|羊|杂|汤|\u0003|里|面|料|很|足|\u0003|最|后|都|没|吃|完|\u0003|还|有|羊|肉|面|\u0003|汤|里|放|了|胡|椒|粉|\u0003|面|条|很|有|嚼|劲|\u0003|我|喜|欢|的|\u0003|凉|拌|海|带|也|不|错|\u0003|店|里|烤|串|价|格|不|贵|\u0003|而|且|分|量|很|实|在|！|\u0003|羊|肉|串|3|块|\u0003|羊|脆|骨|4|块|\u0003|考|鸡|翅|个|头|满|大|的|两|个|也|就|8|块|\u0003|明|虾|也|非|常|好|吃|\u0003|2|块|一|串|\u0003|店|家|服|务|态|度|也|很|好|的|\u0003|我|们|三|个|大|人|一|个|小|孩|吃|了|2|0|2|\u0003|我|去|结|帐|\u0003|老|板|说|2|块|钱|就|算|了|\u0003|够|爽|气|\u0003|真|是|霸|王|餐|了|\u0003|吃|饱|喝|足|\u0003|还|打|包|\u0003|一|分|钱|都|没|花|！|以|后|要|吃|烤|串|一|定|还|去|\u0003|就|是|如|果|能|出|团|购|代|金|券|\u0003|就|更|好|拉|\"|\"|以前|对|烧烤|都|没|感觉|，|这次|抽|中|大众|的|霸王餐|就|去|吃|了|。|吃|下来|意犹未尽|的|感觉|，|很|好吃|！|妈妈|也|赞不绝口|。|我们|没点|羊排|\u0003|单点|的|烤串|\u0003|还有|凉皮|\u0003|做|的|很|好|有劲|\u0003|微甜|\u0003|羊杂|汤|\u0003|里面|料|很|足|\u0003|最后|都|没|吃|完|\u0003|还有|羊肉|面|\u0003|汤里|放|了|胡椒粉|\u0003|面条|很|有|嚼|劲|\u0003|我|喜欢|的|\u0003|凉拌|海带|也|不错|\u0003|店里|烤串|价格|不|贵|\u0003|而且|分量|很|实在|！|\u0003|羊肉串|3|块|\u0003|羊|脆骨|4|块|\u0003|考|鸡翅|个头|满大|的|两个|也|就|8|块|\u0003|明虾|也|非常|好吃|\u0003|2|块|一串|\u0003|店家|服务态度|也|很|好|的|\u0003|我们|三个|大人|一个|小孩|吃|了|202|\u0003|我|去|结帐|\u0003|老板|说|2|块钱|就算|了|\u0003|够|爽气|\u0003|真是|霸王餐|了|\u0003|吃饱喝足|\u0003|还|打包|\u0003|一分钱|都|没花|！|以后|要|吃|烤串|一定|还|去|\u0003|就是|如果|能出|团购|代金券|\u0003|就|更好|拉|\" 474\n2018-10-19 15:35:19 0:01:44 \"餐前，装冷菜的碟子是仿青瓷的碟子，高脚，可惜是塑料的，近看缺了质感，没有瓷器那种通透，远看挺不错。盛菜的器皿有些也挺有特色的，包厢布置也花了功夫，走古风挂字画。墙纸是青花瓷的，对面墙壁也贴了很多瓷器，有几个还是玲珑瓷，透光看比较好看。比较喜欢他们家的日式茶壶，铁壶，很沉但漂亮，据说冲泡能补铁？菜品味道一般，花样是挺多的，杨枝甘露换个器皿就能换来很大的拍照量，是不是桌桌都有？喜欢那个有小把的酱料器皿，拿着很可爱\" \"|餐|前|，|装|冷|菜|的|碟|子|是|仿|青|瓷|的|碟|子|，|高|脚|，|可|惜|是|塑|料|的|，|近|看|缺|了|质|感|，|没|有|瓷|器|那|种|通|透|，|远|看|挺|不|错|。|盛|菜|的|器|皿|有|些|也|挺|有|特|色|的|，|包|厢|布|置|也|花|了|功|夫|，|走|古|风|挂|字|画|。|墙|纸|是|青|花|瓷|的|，|对|面|墙|壁|也|贴|了|很|多|瓷|器|，|有|几|个|还|是|玲|珑|瓷|，|透|光|看|比|较|好|看|。|比|较|喜|欢|他|们|家|的|日|式|茶|壶|，|铁|壶|，|很|沉|但|漂|亮|，|据|说|冲|泡|能|补|铁|？|菜|品|味|道|一|般|，|花|样|是|挺|多|的|，|杨|枝|甘|露|换|个|器|皿|就|能|换|来|很|大|的|拍|照|量|，|是|不|是|桌|桌|都|有|？|喜|欢|那|个|有|小|把|的|酱|料|器|皿|，|拿|着|很|可|爱|\"|\"|餐前|，|装|冷菜|的|碟子|是|仿|青瓷|的|碟子|，|高脚|，|可惜|是|塑料|的|，|近|看|缺|了|质感|，|没有|瓷器|那种|通透|，|远看|挺不错|。|盛菜|的|器皿|有些|也|挺|有|特色|的|，|包厢|布置|也|花|了|功夫|，|走|古风|挂|字画|。|墙纸|是|青花瓷|的|，|对面|墙壁|也|贴|了|很多|瓷器|，|有|几个|还是|玲珑|瓷|，|透光|看|比较|好看|。|比较|喜欢|他们|家|的|日式|茶壶|，|铁壶|，|很沉|但|漂亮|，|据说|冲泡|能|补铁|？|菜品|味道|一般|，|花样|是|挺|多|的|，|杨枝|甘露|换个|器皿|就|能|换来|很大|的|拍照|量|，|是不是|桌桌|都|有|？|喜欢|那个|有|小|把|的|酱料|器皿|，|拿|着|很|可爱|\" 348\n2018-10-19 15:35:39 0:02:04 \"本人上周参加了婚宴！灯光效果非常不错，做的挺用心。服务员态度比较谦和，也挺任劳任怨的，一个个东跑西癫都累出汗了，看着俺都心疼啊。用于闹肚子，喝点白酒也没吃菜，不过听老婆说个个菜做的超棒，非得中秋节拉着我去尝尝果木烤鸭和杏鲍菇。以后想吃海鲜就去奥帆号了，海鲜厨房嘛高端的装修，可口的大众亲民的价格。还有好多帅哥美女免费服务哟～唯一美中不足的地方就是院子里的停车场有点小，放30多个车就快没地方了，得提前点过去抢个车位再说～哈哈\" \"|本|人|上|周|参|加|了|婚|宴|！|灯|光|效|果|非|常|不|错|，|做|的|挺|用|心|。|服|务|员|态|度|比|较|谦|和|，|也|挺|任|劳|任|怨|的|，|一|个|个|东|跑|西|癫|都|累|出|汗|了|，|看|着|俺|都|心|疼|啊|。|用|于|闹|肚|子|，|喝|点|白|酒|也|没|吃|菜|，|不|过|听|老|婆|说|个|个|菜|做|的|超|棒|，|非|得|中|秋|节|拉|着|我|去|尝|尝|果|木|烤|鸭|和|杏|鲍|菇|。|以|后|想|吃|海|鲜|就|去|奥|帆|号|了|，|海|鲜|厨|房|嘛|高|端|的|装|修|，|可|口|的|大|众|亲|民|的|价|格|。|还|有|好|多|帅|哥|美|女|免|费|服|务|哟|～|唯|一|美|中|不|足|的|地|方|就|是|院|子|里|的|停|车|场|有|点|小|，|放|3|0|多|个|车|就|快|没|地|方|了|，|得|提|前|点|过|去|抢|个|车|位|再|说|～|哈|哈|\"|\"|本人|上周|参加|了|婚宴|！|灯光效果|非常|不错|，|做|的|挺|用心|。|服务员|态度|比较|谦和|，|也|挺|任劳任怨|的|，|一个个|东跑|西癫|都|累|出汗|了|，|看着|俺|都|心疼|啊|。|用于|闹肚子|，|喝点|白酒|也|没|吃|菜|，|不过|听|老婆|说|个个|菜|做|的|超棒|，|非得|中秋节|拉|着|我|去|尝尝|果木|烤鸭|和|杏鲍菇|。|以后|想|吃海鲜|就|去|奥帆|号|了|，|海鲜|厨房|嘛|高端|的|装修|，|可口|的|大众|亲民|的|价格|。|还有|好多|帅哥美女|免费|服务|哟|～|唯一|美中不足|的|地方|就是|院子|里|的|停车场|有点|小|，|放|30|多个|车|就|快|没|地方|了|，|得|提前|点|过去|抢个|车位|再说|～|哈哈|\" 348\n2018-10-19 15:36:00 0:02:24 \"趁赛格美食节买的团购券\u0003来西安一年\u0003对长安大排档长草很久了\u0003也差不多拖了一年才来吃\u0003七七八八减减以后用了59块钱买了100的抵用券\u0003实在是划算。\u0002今天晚上雨下的挺大的\u0003和男票出门\u0003回来的时候就在小寨下了\u0003直奔赛格六楼长安大排挡。\u0002去的时候不到七点\u0003已经有不少人排队了。我一问\u0003原来两个人不需要等位\u0003实在是太好了。\u0002点了葫芦鸡\u0003枣馍\u0003锅贴和羊肉串。加起来105\u0003两个人吃的饱饱的。\u0002葫芦鸡很好吃\u0003有点像炸鸡\u000358一整只鸡\u0003两个人吃的好饱\u0003男票动手撕开的\u0003他很喜欢吃。\u0002羊肉串十串25\u0003肉很大块\u0003也不肥。锅贴中规中矩。枣馍感觉没有大家评价的那么好\u0003不过当主食也不错。\u0002总之很满意的一家店\u0003性价比高\u0003菜的味道也不错。\" \"|趁|赛|格|美|食|节|买|的|团|购|券|\u0003|来|西|安|一|年|\u0003|对|长|安|大|排|档|长|草|很|久|了|\u0003|也|差|不|多|拖|了|一|年|才|来|吃|\u0003|七|七|八|八|减|减|以|后|用|了|5|9|块|钱|买|了|1|0|0|的|抵|用|券|\u0003|实|在|是|划|算|。|\u0002|今|天|晚|上|雨|下|的|挺|大|的|\u0003|和|男|票|出|门|\u0003|回|来|的|时|候|就|在|小|寨|下|了|\u0003|直|奔|赛|格|六|楼|长|安|大|排|挡|。|\u0002|去|的|时|候|不|到|七|点|\u0003|已|经|有|不|少|人|排|队|了|。|我|一|问|\u0003|原|来|两|个|人|不|需|要|等|位|\u0003|实|在|是|太|好|了|。|\u0002|点|了|葫|芦|鸡|\u0003|枣|馍|\u0003|锅|贴|和|羊|肉|串|。|加|起|来|1|0|5|\u0003|两|个|人|吃|的|饱|饱|的|。|\u0002|葫|芦|鸡|很|好|吃|\u0003|有|点|像|炸|鸡|\u0003|5|8|一|整|只|鸡|\u0003|两|个|人|吃|的|好|饱|\u0003|男|票|动|手|撕|开|的|\u0003|他|很|喜|欢|吃|。|\u0002|羊|肉|串|十|串|2|5|\u0003|肉|很|大|块|\u0003|也|不|肥|。|锅|贴|中|规|中|矩|。|枣|馍|感|觉|没|有|大|家|评|价|的|那|么|好|\u0003|不|过|当|主|食|也|不|错|。|\u0002|总|之|很|满|意|的|一|家|店|\u0003|性|价|比|高|\u0003|菜|的|味|道|也|不|错|。|\"|\"|趁|赛格|美食节|买|的|团购|券|\u0003|来|西安|一年|\u0003|对|长安|大排档|长草|很|久|了|\u0003|也|差不多|拖|了|一年|才|来|吃|\u0003|七七八八|减减|以后|用|了|59|块钱|买|了|100|的|抵用券|\u0003|实在|是|划算|。|\u0002|今天|晚上|雨下|的|挺|大|的|\u0003|和|男票|出门|\u0003|回来|的|时候|就|在|小寨|下|了|\u0003|直奔|赛格|六楼|长安|大排挡|。|\u0002|去|的|时候|不到|七点|\u0003|已经|有|不少|人|排队|了|。|我|一问|\u0003|原来|两个|人|不|需要|等位|\u0003|实在|是|太好了|。|\u0002|点|了|葫芦|鸡|\u0003|枣馍|\u0003|锅贴|和|羊肉串|。|加|起来|105|\u0003|两个|人|吃|的|饱饱|的|。|\u0002|葫芦|鸡|很|好吃|\u0003|有点像|炸鸡|\u0003|58|一整只|鸡|\u0003|两个|人|吃|的|好|饱|\u0003|男票|动手|撕开|的|\u0003|他|很|喜欢|吃|。|\u0002|羊肉串|十串|25|\u0003|肉|很大|块|\u0003|也|不肥|。|锅贴|中规中矩|。|枣馍|感觉|没有|大家|评价|的|那么|好|\u0003|不过|当|主食|也|不错|。|\u0002|总之|很|满意|的|一家|店|\u0003|性价比|高|\u0003|菜|的|味道|也|不错|。|\" 511\n2018-10-19 15:36:20 0:02:45 \"店内印象：日本风的装修，店里光线偏暗，空间狭小\u0003很拘谨，桌上没有随时可以接水的水龙头，桌子上也没有嵌入式可以煮面的小电磁炉，（该评价是跟博多一幸舍对比），店员服务态度很热情，上汤上面也算快，价格比博多一幸舍便宜一些，周一至周五可以打折，周末没有任何优惠。\u0002面的口感可以根据自己的感觉选择软\u0003普通\u0003硬\u0003很硬，咸度、是否加葱都可根据喜好选择，个人觉的普通即可，尝试了一次硬的，也可以接受，但是估计不会尝试特硬的、、、\u0002汤是十分浓稠，有胶口的感觉，浓稠度和博多一幸舍差不多，也就是东北皮冻的五分到七分的浓度，很多人可能会觉得腻，\u0003本人挺喜欢，另加一份面6元，加汤不要钱，带娃来吃还是划算滴。\u0002跟博多一幸舍的面面配料基本一致，紫菜、鸡蛋、芽菜、香葱、木耳、笋、叉烧、每种都有单独价格，没有搭配在一起的全套豪华配菜价格。\u0002面里搭配的肉肉没有博多一幸舍的大片，但是味道还不错，嫩香，就是家里的蒜泥肘子肉（盐水炖肘花）。糖心蛋就是煮鸡蛋，蛋清已熟，蛋黄儿半熟，温泉蛋就是窝鸡蛋，蛋清变白裹住没熟的蛋黄儿。\u0002还点了一口饺子、炸鸡块，炸鸡排，炸香肠，可惜没来得及拍照就破相了，不能上图了，一口饺子不如博多一幸舍好吃，炸鸡块有四块，比博多一幸舍的稍微小一点，但是更好吃更入味也更嫩一些。那个香肠没什么特点，宝宝喜欢而已。鸡排不过不失的，没什么特点。\u0003配菜中，\u0003木耳就是脆，芽菜带着蔬菜汁所以是水脆，\u0003笋是嫩。\u0003雪碧直接给了易拉罐和一根管子，不像博多一幸舍，漂亮的大啤酒杯，质量不错的黑色吸管。\u0002豚丸店加汤只有清汤加（清汤也已经十分浓稠），博多加汤时会问您需要加浓汤还是清汤。\u0002\" \"|店|内|印|象|：|日|本|风|的|装|修|，|店|里|光|线|偏|暗|，|空|间|狭|小|\u0003|很|拘|谨|，|桌|上|没|有|随|时|可|以|接|水|的|水|龙|头|，|桌|子|上|也|没|有|嵌|入|式|可|以|煮|面|的|小|电|磁|炉|，|（|该|评|价|是|跟|博|多|一|幸|舍|对|比|）|，|店|员|服|务|态|度|很|热|情|，|上|汤|上|面|也|算|快|，|价|格|比|博|多|一|幸|舍|便|宜|一|些|，|周|一|至|周|五|可|以|打|折|，|周|末|没|有|任|何|优|惠|。|\u0002|面|的|口|感|可|以|根|据|自|己|的|感|觉|选|择|软|\u0003|普|通|\u0003|硬|\u0003|很|硬|，|咸|度|、|是|否|加|葱|都|可|根|据|喜|好|选|择|，|个|人|觉|的|普|通|即|可|，|尝|试|了|一|次|硬|的|，|也|可|以|接|受|，|但|是|估|计|不|会|尝|试|特|硬|的|、|、|、|\u0002|汤|是|十|分|浓|稠|，|有|胶|口|的|感|觉|，|浓|稠|度|和|博|多|一|幸|舍|差|不|多|，|也|就|是|东|北|皮|冻|的|五|分|到|七|分|的|浓|度|，|很|多|人|可|能|会|觉|得|腻|，|\u0003|本|人|挺|喜|欢|，|另|加|一|份|面|6|元|，|加|汤|不|要|钱|，|带|娃|来|吃|还|是|划|算|滴|。|\u0002|跟|博|多|一|幸|舍|的|面|面|配|料|基|本|一|致|，|紫|菜|、|鸡|蛋|、|芽|菜|、|香|葱|、|木|耳|、|笋|、|叉|烧|、|每|种|都|有|单|独|价|格|，|没|有|搭|配|在|一|起|的|全|套|豪|华|配|菜|价|格|。|\u0002|面|里|搭|配|的|肉|肉|没|有|博|多|一|幸|舍|的|大|片|，|但|是|味|道|还|不|错|，|嫩|香|，|就|是|家|里|的|蒜|泥|肘|子|肉|（|盐|水|炖|肘|花|）|。|糖|心|蛋|就|是|煮|鸡|蛋|，|蛋|清|已|熟|，|蛋|黄|儿|半|熟|，|温|泉|蛋|就|是|窝|鸡|蛋|，|蛋|清|变|白|裹|住|没|熟|的|蛋|黄|儿|。|\u0002|还|点|了|一|口|饺|子|、|炸|鸡|块|，|炸|鸡|排|，|炸|香|肠|，|可|惜|没|来|得|及|拍|照|就|破|相|了|，|不|能|上|图|了|，|一|口|饺|子|不|如|博|多|一|幸|舍|好|吃|，|炸|鸡|块|有|四|块|，|比|博|多|一|幸|舍|的|稍|微|小|一|点|，|但|是|更|好|吃|更|入|味|也|更|嫩|一|些|。|那|个|香|肠|没|什|么|特|点|，|宝|宝|喜|欢|而|已|。|鸡|排|不|过|不|失|的|，|没|什|么|特|点|。|\u0003|配|菜|中|，|\u0003|木|耳|就|是|脆|，|芽|菜|带|着|蔬|菜|汁|所|以|是|水|脆|，|\u0003|笋|是|嫩|。|\u0003|雪|碧|直|接|给|了|易|拉|罐|和|一|根|管|子|，|不|像|博|多|一|幸|舍|，|漂|亮|的|大|啤|酒|杯|，|质|量|不|错|的|黑|色|吸|管|。|\u0002|豚|丸|店|加|汤|只|有|清|汤|加|（|清|汤|也|已|经|十|分|浓|稠|）|，|博|多|加|汤|时|会|问|您|需|要|加|浓|汤|还|是|清|汤|。|\u0002|\"|\"|店内|印象|：|日本|风|的|装修|，|店里|光线|偏暗|，|空间|狭小|\u0003|很|拘谨|，|桌上|没有|随时|可以|接水|的|水龙头|，|桌子|上|也|没有|嵌入式|可以|煮面|的|小|电磁炉|，|（|该|评价|是|跟|博多|一幸|舍|对比|）|，|店员|服务态度|很|热情|，|上|汤|上面|也|算|快|，|价格比|博多|一幸|舍|便宜|一些|，|周一|至|周五|可以|打折|，|周末|没有|任何|优惠|。|\u0002|面|的|口感|可以|根据|自己|的|感觉|选择|软|\u0003|普通|\u0003|硬|\u0003|很|硬|，|咸度|、|是否|加葱|都|可|根据|喜好|选择|，|个人|觉|的|普通|即可|，|尝试|了|一次|硬|的|，|也|可以|接受|，|但是|估计|不会|尝试|特硬|的|、|、|、|\u0002|汤是|十分|浓稠|，|有|胶口|的|感觉|，|浓|稠度|和|博多|一幸|舍|差不多|，|也|就是|东北|皮冻|的|五分|到|七分|的|浓度|，|很多|人|可能|会|觉得|腻|，|\u0003|本人|挺|喜欢|，|另加|一份|面|6|元|，|加汤|不要|钱|，|带娃来|吃|还是|划算|滴|。|\u0002|跟|博多|一幸|舍|的|面面|配料|基本一致|，|紫菜|、|鸡蛋|、|芽菜|、|香葱|、|木耳|、|笋|、|叉烧|、|每种|都|有|单独|价格|，|没有|搭配|在|一起|的|全套|豪华|配菜|价格|。|\u0002|面里|搭配|的|肉|肉|没有|博多|一幸|舍|的|大片|，|但是|味道|还|不错|，|嫩|香|，|就是|家里|的|蒜泥|肘子|肉|（|盐水|炖|肘|花|）|。|糖心|蛋|就是|煮|鸡蛋|，|蛋清|已熟|，|蛋黄|儿|半熟|，|温泉|蛋|就是|窝|鸡蛋|，|蛋清|变白|裹住|没熟|的|蛋黄|儿|。|\u0002|还点|了|一口|饺子|、|炸鸡块|，|炸鸡|排|，|炸|香肠|，|可惜|没|来得及|拍照|就|破|相|了|，|不能|上图|了|，|一口|饺子|不如|博多|一幸|舍|好吃|，|炸鸡块|有|四块|，|比|博多|一幸|舍|的|稍微|小|一点|，|但是|更|好吃|更|入味|也|更|嫩|一些|。|那个|香肠|没什么|特点|，|宝宝|喜欢|而已|。|鸡排|不过|不失|的|，|没什么|特点|。|\u0003|配菜|中|，|\u0003|木耳|就是|脆|，|芽|菜|带|着|蔬菜汁|所以|是|水脆|，|\u0003|笋|是|嫩|。|\u0003|雪碧|直接|给|了|易拉罐|和|一根|管子|，|不像|博多|一幸|舍|，|漂亮|的|大|啤酒杯|，|质量|不错|的|黑色|吸管|。|\u0002|豚|丸|店加|汤|只有|清|汤加|（|清汤|也|已经|十分|浓稠|）|，|博多|加汤|时会|问|您|需要|加|浓汤|还是|清汤|。|\u0002|\" 1124\n2018-10-19 15:36:40 0:03:05 \"一、地理位置：谢家湾万象城5楼，溜冰场上面。\u0002二、服务：店铺不大，干净整洁。服务态度不咸不淡的，9积分兑换的，也可以理解\u0002三、食品：有一句话真的很对—不作死就不会死。本来不喜欢喝茶，但作为吃货，没尝过黑龙茶，觉得还是有点介意。刚好有9积分，就鼓起勇气尝试一下。要的常温的红茶，想到热量问题，少糖，也没有加配料。然后就悲剧了，茶很大一杯，但是苦呀，什么伯爵红茶，我都感觉不出来了，又不是单独泡的，也没有什么茶香味。实在是没办法，苦的喝了几口就喝不下去了。\u0002可能多加糖和布丁之类的配料会好很多吧，不过份量的确很大一杯\" \"|一|、|地|理|位|置|：|谢|家|湾|万|象|城|5|楼|，|溜|冰|场|上|面|。|\u0002|二|、|服|务|：|店|铺|不|大|，|干|净|整|洁|。|服|务|态|度|不|咸|不|淡|的|，|9|积|分|兑|换|的|，|也|可|以|理|解|\u0002|三|、|食|品|：|有|一|句|话|真|的|很|对|—|不|作|死|就|不|会|死|。|本|来|不|喜|欢|喝|茶|，|但|作|为|吃|货|，|没|尝|过|黑|龙|茶|，|觉|得|还|是|有|点|介|意|。|刚|好|有|9|积|分|，|就|鼓|起|勇|气|尝|试|一|下|。|要|的|常|温|的|红|茶|，|想|到|热|量|问|题|，|少|糖|，|也|没|有|加|配|料|。|然|后|就|悲|剧|了|，|茶|很|大|一|杯|，|但|是|苦|呀|，|什|么|伯|爵|红|茶|，|我|都|感|觉|不|出|来|了|，|又|不|是|单|独|泡|的|，|也|没|有|什|么|茶|香|味|。|实|在|是|没|办|法|，|苦|的|喝|了|几|口|就|喝|不|下|去|了|。|\u0002|可|能|多|加|糖|和|布|丁|之|类|的|配|料|会|好|很|多|吧|，|不|过|份|量|的|确|很|大|一|杯|\"|\"|一|、|地理位置|：|谢家|湾|万象|城|5|楼|，|溜冰场|上面|。|\u0002|二|、|服务|：|店铺|不|大|，|干净|整洁|。|服务态度|不咸不淡|的|，|9|积分|兑换|的|，|也|可以|理解|\u0002|三|、|食品|：|有|一句|话|真的|很|对|—|不作|死|就|不会|死|。|本来|不|喜欢|喝茶|，|但|作为|吃货|，|没尝过|黑龙|茶|，|觉得|还是|有点|介意|。|刚好|有|9|积分|，|就|鼓起勇气|尝试|一下|。|要|的|常温|的|红茶|，|想到|热量|问题|，|少糖|，|也|没有|加|配料|。|然后|就|悲剧|了|，|茶|很大|一杯|，|但是|苦|呀|，|什么|伯爵|红茶|，|我|都|感觉|不|出来|了|，|又|不是|单独|泡|的|，|也|没有|什么|茶|香味|。|实在|是|没|办法|，|苦|的|喝|了|几口|就|喝|不|下去|了|。|\u0002|可能|多|加糖|和|布丁|之类|的|配料|会|好|很多|吧|，|不过|份量|的确|很大|一杯|\" 432\n2018-10-19 15:37:01 0:03:26 \"非常喜欢去新开的有特色的店品尝，有幸被大众点评网同城聚会抽到黄金替补免费品鉴的机会，我感到十分幸运！红不让台湾特色餐厅位于李沧万达金街1号入口扶梯旁，交通便利，停车方便。店面小资，适合举行小型派对。走近店门，服务员立刻开门迎接并且热情的打招呼。进入店面，环顾四周，鹅黄的灯光下透露出温馨慵懒的气氛，店家匠心独居，屋内的摆设典雅质朴。我们大家围坐在一起开始品尝台湾特色美食，前菜是鸡排沙拉，鸡排外焦里嫩，沙拉酸爽开胃陪的饮品是本店招牌—寒天奶栋，口感丝化。在我们的玩闹嘻戏中，硬菜短上来了——招牌全垒打拼盘，样子可爱，味道独特，被大家迅雷不及掩耳盗铃之势一扫而光。紧接着——等一个人小火锅，西班牙海鲜焗饭，黑椒牛柳焗饭海鲜焗烤嫩鸡排上桌了，食材琳琅满目，令人目不暇接。人多力量大，盘子渐渐见底了，新菜品——普罗旺斯田园披萨，台湾卤肉饭，秘制鸡腿饭，招牌巨蛋烧，阳光手打面，超级霸大热狗震撼来袭。\u0002这里特别提一下普罗旺斯田园披萨，顶上配料五颜六色，芝士浓郁，饼胚酥脆，搭配沙拉和洋葱圈口味绝佳。还有在卤肉饭，鸡腿饭，手打面扮演重要角色的酱料，里面居然搭配了小鱼干，补钙又美味。\u0002环境搭配合理，既有闺密情侣说悄悄话的私密空间，又有三五好友畅饮阔聊的长桌吧台，气氛轻松惬意，互不打扰。\u0002红不让台湾特色餐厅绝对是小资的你餐饮休闲，畅聊发呆的绝佳选择，千万不要错过！\" \"|非|常|喜|欢|去|新|开|的|有|特|色|的|店|品|尝|，|有|幸|被|大|众|点|评|网|同|城|聚|会|抽|到|黄|金|替|补|免|费|品|鉴|的|机|会|，|我|感|到|十|分|幸|运|！|红|不|让|台|湾|特|色|餐|厅|位|于|李|沧|万|达|金|街|1|号|入|口|扶|梯|旁|，|交|通|便|利|，|停|车|方|便|。|店|面|小|资|，|适|合|举|行|小|型|派|对|。|走|近|店|门|，|服|务|员|立|刻|开|门|迎|接|并|且|热|情|的|打|招|呼|。|进|入|店|面|，|环|顾|四|周|，|鹅|黄|的|灯|光|下|透|露|出|温|馨|慵|懒|的|气|氛|，|店|家|匠|心|独|居|，|屋|内|的|摆|设|典|雅|质|朴|。|我|们|大|家|围|坐|在|一|起|开|始|品|尝|台|湾|特|色|美|食|，|前|菜|是|鸡|排|沙|拉|，|鸡|排|外|焦|里|嫩|，|沙|拉|酸|爽|开|胃|陪|的|饮|品|是|本|店|招|牌|—|寒|天|奶|栋|，|口|感|丝|化|。|在|我|们|的|玩|闹|嘻|戏|中|，|硬|菜|短|上|来|了|—|—|招|牌|全|垒|打|拼|盘|，|样|子|可|爱|，|味|道|独|特|，|被|大|家|迅|雷|不|及|掩|耳|盗|铃|之|势|一|扫|而|光|。|紧|接|着|—|—|等|一|个|人|小|火|锅|，|西|班|牙|海|鲜|焗|饭|，|黑|椒|牛|柳|焗|饭|海|鲜|焗|烤|嫩|鸡|排|上|桌|了|，|食|材|琳|琅|满|目|，|令|人|目|不|暇|接|。|人|多|力|量|大|，|盘|子|渐|渐|见|底|了|，|新|菜|品|—|—|普|罗|旺|斯|田|园|披|萨|，|台|湾|卤|肉|饭|，|秘|制|鸡|腿|饭|，|招|牌|巨|蛋|烧|，|阳|光|手|打|面|，|超|级|霸|大|热|狗|震|撼|来|袭|。|\u0002|这|里|特|别|提|一|下|普|罗|旺|斯|田|园|披|萨|，|顶|上|配|料|五|颜|六|色|，|芝|士|浓|郁|，|饼|胚|酥|脆|，|搭|配|沙|拉|和|洋|葱|圈|口|味|绝|佳|。|还|有|在|卤|肉|饭|，|鸡|腿|饭|，|手|打|面|扮|演|重|要|角|色|的|酱|料|，|里|面|居|然|搭|配|了|小|鱼|干|，|补|钙|又|美|味|。|\u0002|环|境|搭|配|合|理|，|既|有|闺|密|情|侣|说|悄|悄|话|的|私|密|空|间|，|又|有|三|五|好|友|畅|饮|阔|聊|的|长|桌|吧|台|，|气|氛|轻|松|惬|意|，|互|不|打|扰|。|\u0002|红|不|让|台|湾|特|色|餐|厅|绝|对|是|小|资|的|你|餐|饮|休|闲|，|畅|聊|发|呆|的|绝|佳|选|择|，|千|万|不|要|错|过|！|\"|\"|非常|喜欢|去|新开|的|有|特色|的|店|品尝|，|有幸|被|大众|点评|网同城|聚会|抽到|黄金|替补|免费|品鉴|的|机会|，|我|感到|十分|幸运|！|红|不让|台湾|特色|餐厅|位于|李沧|万达|金街|1|号|入口|扶梯|旁|，|交通|便利|，|停车|方便|。|店面|小资|，|适合|举行|小型|派对|。|走近|店门|，|服务员|立刻|开门|迎接|并且|热情|的|打招呼|。|进入|店面|，|环顾四周|，|鹅黄|的|灯光|下|透露|出|温馨|慵懒|的|气氛|，|店家|匠心|独居|，|屋内|的|摆设|典雅|质朴|。|我们|大家|围坐在|一起|开始|品尝|台湾|特色美食|，|前菜|是|鸡排|沙拉|，|鸡排|外焦里嫩|，|沙拉|酸爽|开胃|陪|的|饮品|是|本店|招牌|—|寒天|奶栋|，|口感|丝化|。|在|我们|的|玩闹|嘻戏|中|，|硬菜|短|上来|了|—|—|招牌|全垒打|拼盘|，|样子|可爱|，|味道|独特|，|被|大家|迅雷不及|掩耳盗铃|之势|一扫而光|。|紧接着|—|—|等|一个|人|小火锅|，|西班牙|海鲜|焗|饭|，|黑椒|牛柳|焗|饭|海鲜|焗|烤|嫩|鸡排|上桌|了|，|食材|琳琅满目|，|令人|目不暇接|。|人多|力量|大|，|盘子|渐渐|见底|了|，|新|菜品|—|—|普罗旺斯|田园|披萨|，|台湾|卤肉饭|，|秘制|鸡腿饭|，|招牌|巨蛋|烧|，|阳光|手|打面|，|超级|霸大|热狗|震撼|来袭|。|\u0002|这里|特别|提|一下|普罗旺斯|田园|披萨|，|顶上|配料|五颜六色|，|芝士|浓郁|，|饼|胚|酥脆|，|搭配|沙拉|和|洋葱|圈|口味|绝佳|。|还有|在|卤肉饭|，|鸡腿饭|，|手|打面|扮演|重要|角色|的|酱料|，|里面|居然|搭配|了|小鱼|干|，|补钙|又|美味|。|\u0002|环境|搭配|合理|，|既有|闺密|情侣|说|悄悄话|的|私密|空间|，|又|有|三五|好友|畅饮|阔聊|的|长桌|吧台|，|气氛|轻松|惬意|，|互不|打扰|。|\u0002|红|不让|台湾|特色|餐厅|绝对|是|小资|的|你|餐饮|休闲|，|畅聊|发呆|的|绝佳|选择|，|千万|不要|错过|！|\" 917\n2018-10-19 15:37:21 0:03:46 \"位于昆明新亚洲体育场的上岛咖啡，至今已有500多家连锁店遍布中国大江南北，成为目前国内最受欢迎的咖啡连锁餐厅之一。上岛咖啡执著于\"香醇、甘美\"的极致品质的制作理念；在店面设计方面，上岛融合了经典与时尚的理念，独具一格的店面设计，让上岛咖啡在春城声名远扬。走进这里，阳光的明媚与古朴的原木色绝妙的结合让你为之赞叹，坐在落地玻璃窗边的小几旁，沐浴一身的温暖阳光让人感到懒洋洋的舒服。在一入门的书架上捡一本喜欢的书，叫上一杯香浓的咖啡，看窗外的车水马龙，行行色色的行人，生活就在这样的细细品味中渗出丝丝甜美。除了各式各样的咖啡供您选择以外，还有各种佐咖啡的小点也十分精美。这里的食物是以台湾风味为主的，制作精致的盛具加上色香味俱全的可口美食让你在感观上得到最大的满足。上岛咖啡新亚洲店总的来说还不错，位置比较隐蔽一点点，环境还不错，环境很好，而且很安静，就是位置对于我们来说不是特别好找，东西很多，还有红酒，喝着红酒别有一番滋味，整个店面在二楼占地不大，晚上五点多去人不多，牛排沙拉土司都还行,罗宋汤很好喝，沙拉也不错，牛排要的八分熟，感觉有点老了，下次去要七分熟应该刚刚好，服务态度也不错，很安静，很舒服，是个放松心情的好地方。团的也划算，总之很满意，还会去的。\" \"|位|于|昆|明|新|亚|洲|体|育|场|的|上|岛|咖|啡|，|至|今|已|有|5|0|0|多|家|连|锁|店|遍|布|中|国|大|江|南|北|，|成|为|目|前|国|内|最|受|欢|迎|的|咖|啡|连|锁|餐|厅|之|一|。|上|岛|咖|啡|执|著|于|\"|香|醇|、|甘|美|\"|的|极|致|品|质|的|制|作|理|念|；|在|店|面|设|计|方|面|，|上|岛|融|合|了|经|典|与|时|尚|的|理|念|，|独|具|一|格|的|店|面|设|计|，|让|上|岛|咖|啡|在|春|城|声|名|远|扬|。|走|进|这|里|，|阳|光|的|明|媚|与|古|朴|的|原|木|色|绝|妙|的|结|合|让|你|为|之|赞|叹|，|坐|在|落|地|玻|璃|窗|边|的|小|几|旁|，|沐|浴|一|身|的|温|暖|阳|光|让|人|感|到|懒|洋|洋|的|舒|服|。|在|一|入|门|的|书|架|上|捡|一|本|喜|欢|的|书|，|叫|上|一|杯|香|浓|的|咖|啡|，|看|窗|外|的|车|水|马|龙|，|行|行|色|色|的|行|人|，|生|活|就|在|这|样|的|细|细|品|味|中|渗|出|丝|丝|甜|美|。|除|了|各|式|各|样|的|咖|啡|供|您|选|择|以|外|，|还|有|各|种|佐|咖|啡|的|小|点|也|十|分|精|美|。|这|里|的|食|物|是|以|台|湾|风|味|为|主|的|，|制|作|精|致|的|盛|具|加|上|色|香|味|俱|全|的|可|口|美|食|让|你|在|感|观|上|得|到|最|大|的|满|足|。|上|岛|咖|啡|新|亚|洲|店|总|的|来|说|还|不|错|，|位|置|比|较|隐|蔽|一|点|点|，|环|境|还|不|错|，|环|境|很|好|，|而|且|很|安|静|，|就|是|位|置|对|于|我|们|来|说|不|是|特|别|好|找|，|东|西|很|多|，|还|有|红|酒|，|喝|着|红|酒|别|有|一|番|滋|味|，|整|个|店|面|在|二|楼|占|地|不|大|，|晚|上|五|点|多|去|人|不|多|，|牛|排|沙|拉|土|司|都|还|行|,|罗|宋|汤|很|好|喝|，|沙|拉|也|不|错|，|牛|排|要|的|八|分|熟|，|感|觉|有|点|老|了|，|下|次|去|要|七|分|熟|应|该|刚|刚|好|，|服|务|态|度|也|不|错|，|很|安|静|，|很|舒|服|，|是|个|放|松|心|情|的|好|地|方|。|团|的|也|划|算|，|总|之|很|满|意|，|还|会|去|的|。|\"|\"|位于|昆明|新|亚洲|体育场|的|上|岛|咖啡|，|至今已有|500|多家|连锁店|遍布|中国|大江南北|，|成为|目前|国内|最|受欢迎|的|咖啡|连锁|餐厅|之一|。|上|岛|咖啡|执著|于|\"|香醇|、|甘美|\"|的|极致|品质|的|制作|理念|；|在|店面|设计|方面|，|上|岛|融合|了|经典|与|时尚|的|理念|，|独具一格|的|店面|设计|，|让|上|岛|咖啡|在|春城|声名|远扬|。|走进|这里|，|阳光|的|明媚|与|古朴|的|原木色|绝妙|的|结合|让|你|为|之|赞叹|，|坐在|落地|玻璃窗|边|的|小|几旁|，|沐浴|一身|的|温暖|阳光|让|人|感到|懒洋洋|的|舒服|。|在|一|入门|的|书架上|捡|一本|喜欢|的|书|，|叫|上|一杯|香浓|的|咖啡|，|看|窗外|的|车水马龙|，|行行色色|的|行人|，|生活|就|在|这样|的|细细品味|中|渗出|丝丝|甜美|。|除了|各式各样|的|咖啡|供|您|选择|以外|，|还有|各种|佐|咖啡|的|小点|也|十分|精美|。|这里|的|食物|是|以|台湾|风味|为主|的|，|制作|精致|的|盛具|加上|色香味|俱全|的|可口|美食|让你在|感观|上|得到|最大|的|满足|。|上|岛|咖啡|新|亚洲|店|总的来说|还|不错|，|位置|比较|隐蔽|一点点|，|环境|还|不错|，|环境|很|好|，|而且|很|安静|，|就是|位置|对于|我们|来说|不是|特别|好找|，|东西|很多|，|还有|红酒|，|喝|着|红酒|别有|一番滋味|，|整个|店面|在|二楼|占地|不|大|，|晚上|五点|多去|人|不|多|，|牛排|沙拉|土司|都|还行|,|罗宋汤|很|好喝|，|沙拉|也|不错|，|牛排|要|的|八分熟|，|感觉|有点|老|了|，|下次|去|要|七分|熟|应该|刚刚|好|，|服务态度|也|不错|，|很|安静|，|很|舒服|，|是|个|放松|心情|的|好|地方|。|团|的|也|划算|，|总之|很|满意|，|还会|去|的|。|\" 859\n2018-10-19 15:37:42 0:04:07 \"我想说他们家的优惠活动好持久啊，我预售的时候买的券，前两天心血来潮去吃的活动还在继续\u0002首先说下服务，因为和男票开车去的，有点不认路，老板很耐心的在电话里帮我们指路，到了门店之后也帮我们推荐了他们家做的比较地道的伤心凉粉，说是厨师是四川那边来的。\u0002环境呢比较简单干净，去的时候下午一点多了，还有四五桌人在用餐\u0002口味对于我而言点了麻辣的口感正正好，男票比较能吃辣，相对而言觉得他们家的麻辣口感麻有了，辣还欠缺一点，老板娘说考虑到客人口味不同所以没敢放太多辣椒，能吃辣的朋友可以考虑下单之前和老板先说好。鱼呢我们选的是黑鱼，2.9斤的鱼加上一盆我以为没有什么东西实际上东西很多的锅底，我们吃的饱饱的，最后以为吃的差不多了，打包一看简直像没动过一样，分量还是满足的，鱼比较新鲜。伤心凉粉很辣，不过口味也蛮好吃的。\u0002总的来说，性价比还是可以的，两个人吃了大概160左右，用了团购券的话一百块不到，会考虑下次再来\" \"|我|想|说|他|们|家|的|优|惠|活|动|好|持|久|啊|，|我|预|售|的|时|候|买|的|券|，|前|两|天|心|血|来|潮|去|吃|的|活|动|还|在|继|续|\u0002|首|先|说|下|服|务|，|因|为|和|男|票|开|车|去|的|，|有|点|不|认|路|，|老|板|很|耐|心|的|在|电|话|里|帮|我|们|指|路|，|到|了|门|店|之|后|也|帮|我|们|推|荐|了|他|们|家|做|的|比|较|地|道|的|伤|心|凉|粉|，|说|是|厨|师|是|四|川|那|边|来|的|。|\u0002|环|境|呢|比|较|简|单|干|净|，|去|的|时|候|下|午|一|点|多|了|，|还|有|四|五|桌|人|在|用|餐|\u0002|口|味|对|于|我|而|言|点|了|麻|辣|的|口|感|正|正|好|，|男|票|比|较|能|吃|辣|，|相|对|而|言|觉|得|他|们|家|的|麻|辣|口|感|麻|有|了|，|辣|还|欠|缺|一|点|，|老|板|娘|说|考|虑|到|客|人|口|味|不|同|所|以|没|敢|放|太|多|辣|椒|，|能|吃|辣|的|朋|友|可|以|考|虑|下|单|之|前|和|老|板|先|说|好|。|鱼|呢|我|们|选|的|是|黑|鱼|，|2|.|9|斤|的|鱼|加|上|一|盆|我|以|为|没|有|什|么|东|西|实|际|上|东|西|很|多|的|锅|底|，|我|们|吃|的|饱|饱|的|，|最|后|以|为|吃|的|差|不|多|了|，|打|包|一|看|简|直|像|没|动|过|一|样|，|分|量|还|是|满|足|的|，|鱼|比|较|新|鲜|。|伤|心|凉|粉|很|辣|，|不|过|口|味|也|蛮|好|吃|的|。|\u0002|总|的|来|说|，|性|价|比|还|是|可|以|的|，|两|个|人|吃|了|大|概|1|6|0|左|右|，|用|了|团|购|券|的|话|一|百|块|不|到|，|会|考|虑|下|次|再|来|\"|\"|我|想|说|他们|家|的|优惠活动|好|持久|啊|，|我|预售|的|时候|买|的|券|，|前两天|心血来潮|去|吃|的|活动|还|在|继续|\u0002|首先|说|下|服务|，|因为|和|男票|开车|去|的|，|有点|不|认路|，|老板|很|耐心|的|在|电话|里|帮|我们|指路|，|到|了|门店|之后|也|帮|我们|推荐|了|他们|家|做|的|比较|地道|的|伤心|凉粉|，|说|是|厨师|是|四川|那边|来|的|。|\u0002|环境|呢|比较简单|干净|，|去|的|时候|下午|一点多|了|，|还有|四五桌|人|在|用餐|\u0002|口味|对于|我|而言|点|了|麻辣|的|口感|正|正好|，|男票|比较|能|吃|辣|，|相对而言|觉得|他们|家|的|麻辣|口感|麻有|了|，|辣|还|欠缺|一点|，|老板娘|说|考虑|到|客人|口味|不同|所以|没敢|放太多|辣椒|，|能|吃|辣|的|朋友|可以|考虑|下单|之前|和|老板|先|说好|。|鱼|呢|我们|选|的|是|黑鱼|，|2.9|斤|的|鱼|加上|一盆|我|以为|没有|什么|东西|实际上|东西|很多|的|锅底|，|我们|吃|的|饱饱|的|，|最后|以为|吃|的|差不多|了|，|打包|一看|简直|像|没动|过|一样|，|分量|还是|满足|的|，|鱼|比较|新鲜|。|伤心|凉粉|很辣|，|不过|口味|也|蛮|好吃|的|。|\u0002|总的来说|，|性价比|还是|可以|的|，|两个|人|吃|了|大概|160|左右|，|用|了|团购|券|的话|一百块|不到|，|会|考虑|下次|再|来|\" 661\n2018-10-19 15:38:02 0:04:27 \"店的位置很好找，来了不止一次了。环境很好，人气很旺，服务很好，菜品很赞。白水都是放在高脚杯里，热水。上菜速度不错。鸭舌很入味，量还可以。脆脆的很喜欢。口水鸡超级给力，辣椒香而不燥，芝麻香，鸡肉很嫩，底下还有笋，比较爽口。麻酱油麦菜特别解辣，麻酱量大，微甜。水煮鱼鱼片鲜嫩，辣椒不会太辣，麻椒很给力。豆芽量大爽口。豆花好大一锅，小料配了酥黄豆，葱，酱汁，跟豆花一起，一吃好几碗。特别满足的一顿饭。继续支持！\" \"|店|的|位|置|很|好|找|，|来|了|不|止|一|次|了|。|环|境|很|好|，|人|气|很|旺|，|服|务|很|好|，|菜|品|很|赞|。|白|水|都|是|放|在|高|脚|杯|里|，|热|水|。|上|菜|速|度|不|错|。|鸭|舌|很|入|味|，|量|还|可|以|。|脆|脆|的|很|喜|欢|。|口|水|鸡|超|级|给|力|，|辣|椒|香|而|不|燥|，|芝|麻|香|，|鸡|肉|很|嫩|，|底|下|还|有|笋|，|比|较|爽|口|。|麻|酱|油|麦|菜|特|别|解|辣|，|麻|酱|量|大|，|微|甜|。|水|煮|鱼|鱼|片|鲜|嫩|，|辣|椒|不|会|太|辣|，|麻|椒|很|给|力|。|豆|芽|量|大|爽|口|。|豆|花|好|大|一|锅|，|小|料|配|了|酥|黄|豆|，|葱|，|酱|汁|，|跟|豆|花|一|起|，|一|吃|好|几|碗|。|特|别|满|足|的|一|顿|饭|。|继|续|支|持|！|\"|\"|店|的|位置|很|好找|，|来|了|不止一次|了|。|环境|很|好|，|人气|很旺|，|服务|很|好|，|菜品|很赞|。|白水|都|是|放在|高脚杯|里|，|热水|。|上菜|速度|不错|。|鸭舌|很|入味|，|量|还|可以|。|脆脆|的|很|喜欢|。|口水鸡|超级|给力|，|辣椒|香而|不燥|，|芝麻|香|，|鸡肉|很嫩|，|底下|还有|笋|，|比较|爽口|。|麻酱|油麦|菜|特别|解辣|，|麻酱|量|大|，|微甜|。|水煮鱼|鱼片|鲜嫩|，|辣椒|不会|太辣|，|麻椒|很|给|力|。|豆芽|量|大|爽口|。|豆花|好大|一锅|，|小料|配|了|酥|黄豆|，|葱|，|酱汁|，|跟|豆花|一起|，|一吃|好几碗|。|特别|满足|的|一顿饭|。|继续|支持|！|\" 337\n2018-10-19 17:11:03 0:00:13 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:11:59 0:00:12 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:21:39 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:23:51 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:29:21 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:41:29 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 17:48:42 0:00:15 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:05:48 0:00:09 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:40:43 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:45:17 0:00:09 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 18:48:18 0:03:10 \"吃过最完美的一顿餐厅周午餐，前菜，主菜，甜品，饮料，居然前菜和主菜还都有配酒，真是大爱啊[色][色][色]。先上的面包配黄油，后悔不应该都吃了，害的主菜吃不下啊！服务员还会问需不需要再加，还好没有贪心，嘿嘿。前菜的芝士和冷肉拼盘，量很足，然后能说好喜欢那个白色的拌酱嘛～前菜配干白或者粉红葡萄酒，很搭。主菜被通知已经没有三文鱼和鸭腿了，只能换了牛肉千层面和半只烤春鸡配土豆，配的干红。土豆好甜，春鸡和千层面量太大，吃撑了我们两个女生！最后还有甜品，推荐酸奶，感觉有用cheese，很特别。提拉米苏有点偏甜，所以最后配的黑咖啡，真是直接解腻的。预定的时候以为只有一杯酒，想不到配的是两杯酒，真是太划算了！地方不大，但是装修的很舒服，也不会有太簇拥的感觉。酒定的价格也不贵，下次可以和朋友再来小聚。\" \"|吃|过|最|完|美|的|一|顿|餐|厅|周|午|餐|，|前|菜|，|主|菜|，|甜|品|，|饮|料|，|居|然|前|菜|和|主|菜|还|都|有|配|酒|，|真|是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面|包|配|黄|油|，|后|悔|不|应|该|都|吃|了|，|害|的|主|菜|吃|不|下|啊|！|服|务|员|还|会|问|需|不|需|要|再|加|，|还|好|没|有|贪|心|，|嘿|嘿|。|前|菜|的|芝|士|和|冷|肉|拼|盘|，|量|很|足|，|然|后|能|说|好|喜|欢|那|个|白|色|的|拌|酱|嘛|～|前|菜|配|干|白|或|者|粉|红|葡|萄|酒|，|很|搭|。|主|菜|被|通|知|已|经|没|有|三|文|鱼|和|鸭|腿|了|，|只|能|换|了|牛|肉|千|层|面|和|半|只|烤|春|鸡|配|土|豆|，|配|的|干|红|。|土|豆|好|甜|，|春|鸡|和|千|层|面|量|太|大|，|吃|撑|了|我|们|两|个|女|生|！|最|后|还|有|甜|品|，|推|荐|酸|奶|，|感|觉|有|用|c|h|e|e|s|e|，|很|特|别|。|提|拉|米|苏|有|点|偏|甜|，|所|以|最|后|配|的|黑|咖|啡|，|真|是|直|接|解|腻|的|。|预|定|的|时|候|以|为|只|有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真|是|太|划|算|了|！|地|方|不|大|，|但|是|装|修|的|很|舒|服|，|也|不|会|有|太|簇|拥|的|感|觉|。|酒|定|的|价|格|也|不|贵|，|下|次|可|以|和|朋|友|再|来|小|聚|。|\"|\"|吃|过|最|完美|的|一|顿|餐厅|周|午餐|，|前菜|，|主菜|，|甜品|，|饮料|，|居然|前菜|和|主菜|还|都|有|配酒|，|真是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面包|配|黄油|，|后悔|不|应该|都|吃|了|，|害|的|主菜|吃|不|下|啊|！|服务员|还|会|问|需|不|需要|再加|，|还好|没有|贪心|，|嘿嘿|。|前菜|的|芝士|和|冷|肉|拼盘|，|量|很|足|，|然后|能|说好|喜欢|那个|白色|的|拌酱|嘛|～|前菜|配|干白|或者|粉红|葡萄酒|，|很|搭|。|主菜|被|通知|已经|没有|三文鱼|和|鸭|腿|了|，|只|能|换了|牛肉|千|层面|和|半|只|烤|春|鸡|配|土豆|，|配|的|干红|。|土豆|好|甜|，|春鸡|和|千|层|面量|太|大|，|吃|撑|了|我们|两|个|女生|！|最后|还|有|甜品|，|推荐|酸奶|，|感觉|有用|cheese|，|很|特别|。|提拉|米|苏|有点|偏|甜|，|所以|最后|配|的|黑|咖啡|，|真是|直接|解腻|的|。|预定|的|时候|以为|只有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真是|太|划算|了|！|地方|不|大|，|但是|装修|的|很|舒服|，|也|不|会|有|太|簇拥|的|感觉|。|酒|定|的|价格|也|不|贵|，|下次|可以|和|朋友|再来|小聚|。|\" 604\n2018-10-19 18:51:11 0:06:03 \"渔乐圈主题餐厅听名字觉得是一家吃鱼的餐厅，实际上是一家港式茶餐厅，当然这家港式茶餐厅真的很奇葩，香港人吃东西讲究清单，这家点的菜品我吃完之后只有一个印象，就是咸，这家店的位置在写字楼里面的，一般人很难找到，不知道老板怎么想的，会选在这里，边上就是一家保险公司。我是周六中午去吃的，人很少，几乎没几桌客人，我看了看菜单，服务员是推荐点酸菜鱼，这里的酸菜鱼是按斤卖的，觉得价格小贵没点，点了个乳鸽，这里的乳鸽的味道有点怪，不想平常吃到的都是脆脆的。点了皮蛋瘦肉粥，味道还行，不好不坏，还点了叉烧肠粉，都是肥肉，味道马马虎虎。还点了鱼香茄子煲，味道是不错，就是太油了，另外点了个豉汁蒸排骨，这个真的不好吃，排骨不光拍了嫩肉粉，还咬不动。吃完之后我跟店里类似主管的反映菜太咸，她完全不当回事，这样怎么会进步呢！\" \"|渔|乐|圈|主|题|餐|厅|听|名|字|觉|得|是|一|家|吃|鱼|的|餐|厅|，|实|际|上|是|一|家|港|式|茶|餐|厅|，|当|然|这|家|港|式|茶|餐|厅|真|的|很|奇|葩|，|香|港|人|吃|东|西|讲|究|清|单|，|这|家|点|的|菜|品|我|吃|完|之|后|只|有|一|个|印|象|，|就|是|咸|，|这|家|店|的|位|置|在|写|字|楼|里|面|的|，|一|般|人|很|难|找|到|，|不|知|道|老|板|怎|么|想|的|，|会|选|在|这|里|，|边|上|就|是|一|家|保|险|公|司|。|我|是|周|六|中|午|去|吃|的|，|人|很|少|，|几|乎|没|几|桌|客|人|，|我|看|了|看|菜|单|，|服|务|员|是|推|荐|点|酸|菜|鱼|，|这|里|的|酸|菜|鱼|是|按|斤|卖|的|，|觉|得|价|格|小|贵|没|点|，|点|了|个|乳|鸽|，|这|里|的|乳|鸽|的|味|道|有|点|怪|，|不|想|平|常|吃|到|的|都|是|脆|脆|的|。|点|了|皮|蛋|瘦|肉|粥|，|味|道|还|行|，|不|好|不|坏|，|还|点|了|叉|烧|肠|粉|，|都|是|肥|肉|，|味|道|马|马|虎|虎|。|还|点|了|鱼|香|茄|子|煲|，|味|道|是|不|错|，|就|是|太|油|了|，|另|外|点|了|个|豉|汁|蒸|排|骨|，|这|个|真|的|不|好|吃|，|排|骨|不|光|拍|了|嫩|肉|粉|，|还|咬|不|动|。|吃|完|之|后|我|跟|店|里|类|似|主|管|的|反|映|菜|太|咸|，|她|完|全|不|当|回|事|，|这|样|怎|么|会|进|步|呢|！|\"|\"|渔乐圈|主题|餐厅|听|名字|觉得|是|一|家|吃鱼|的|餐厅|，|实际上|是|一|家|港式|茶|餐厅|，|当然|这|家|港式|茶|餐厅|真的|很|奇葩|，|香港人|吃|东西|讲究|清单|，|这|家|点|的|菜品|我|吃完|之后|只|有|一|个|印象|，|就是|咸|，|这|家|店|的|位置|在|写字楼|里面|的|，|一般|人|很|难|找到|，|不|知道|老板|怎么|想|的|，|会|选|在|这里|，|边上|就|是|一|家|保险|公司|。|我|是|周六|中午|去|吃|的|，|人|很少|，|几乎|没|几|桌|客人|，|我|看|了|看|菜单|，|服务员|是|推荐|点|酸菜鱼|，|这里|的|酸菜|鱼|是|按|斤|卖的|，|觉得|价格|小|贵|没|点|，|点|了|个|乳鸽|，|这里|的|乳鸽|的|味道|有点|怪|，|不|想|平常|吃到|的|都|是|脆脆|的|。|点|了|皮蛋|瘦肉粥|，|味道|还行|，|不好不坏|，|还|点|了|叉烧|肠粉|，|都|是|肥肉|，|味道|马马虎虎|。|还|点|了|鱼香|茄子煲|，|味道|是|不错|，|就是|太|油了|，|另外|点|了|个|豉汁蒸|排骨|，|这个|真的|不好吃|，|排骨|不|光|拍|了|嫩肉粉|，|还|咬|不|动|。|吃完|之后|我|跟|店里|类似|主管|的|反映|菜|太|咸|，|她|完全|不当|回事|，|这样|怎么|会|进步|呢|！|\" 597\n2018-10-19 18:53:59 0:08:51 \"去了不少次，\u0003地址也比较好找，在中原路与工人路交叉口向南200米，\u0003店里的装饰和设计比较古朴，很有解放前的味道。这次团购的是2～3人餐，\u0003三菜一汤，\u0003还有三份米，分量也不错\u0003菜差不多够三个吃，就是米的分量不大，不过可以加钱要米饭，团购价四十九元还是比较实惠的，菜品属于偏川味，\u0003都是辣的\u0003属于比较开胃的菜。前台态度也不错，服务员\u0003上菜更是一路小跑，\u0003上菜速度很快，给服务员小哥点个赞。希望店家推出更多的更实惠的团购套餐。\" \"|去|了|不|少|次|，|\u0003|地|址|也|比|较|好|找|，|在|中|原|路|与|工|人|路|交|叉|口|向|南|2|0|0|米|，|\u0003|店|里|的|装|饰|和|设|计|比|较|古|朴|，|很|有|解|放|前|的|味|道|。|这|次|团|购|的|是|2|～|3|人|餐|，|\u0003|三|菜|一|汤|，|\u0003|还|有|三|份|米|，|分|量|也|不|错|\u0003|菜|差|不|多|够|三|个|吃|，|就|是|米|的|分|量|不|大|，|不|过|可|以|加|钱|要|米|饭|，|团|购|价|四|十|九|元|还|是|比|较|实|惠|的|，|菜|品|属|于|偏|川|味|，|\u0003|都|是|辣|的|\u0003|属|于|比|较|开|胃|的|菜|。|前|台|态|度|也|不|错|，|服|务|员|\u0003|上|菜|更|是|一|路|小|跑|，|\u0003|上|菜|速|度|很|快|，|给|服|务|员|小|哥|点|个|赞|。|希|望|店|家|推|出|更|多|的|更|实|惠|的|团|购|套|餐|。|\"|\"|去|了|不少|次|，|地址|也|比较|好找|，|在|中原|路|与|工人|路|交叉口|向南|200|米|，|店|里|的|装饰|和|设计|比较|古朴|，|很|有|解放|前|的|味道|。|这|次|团购|的|是|2|～|3|人|餐|，|三|菜|一|汤|，|还有|三|份|米|，|分量|也|不错|菜|差不多|够|三|个|吃|，|就是|米|的|分量|不|大|，|不过|可以|加|钱|要|米饭|，|团|购价|四十九|元|还是|比较|实惠|的|，|菜品|属于|偏川味|，|都|是|辣|的|属于|比较|开胃|的|菜|。|前台|态度|也|不错|，|服务员|上菜|更|是|一|路|小跑|，|上菜|速度|很|快|，|给|服务员|小哥|点|个|赞|。|希望|店家|推出|更|多|的|更|实惠|的|团购|套餐|。|\" 356\n2018-10-19 18:56:44 0:11:36 \"还是头一次被点评抽中宵夜套餐的，第一次提前打电话去预约，老板说8点半以后才开始提供宵夜，后面因为有事耽搁了也就没去成。第二次是晚上在家突然就想吃生蚝了，于是就直接过去了，在沈塘桥那里还仔细张望了几下，因为虽说是义海蚝情，但是店面看上去真的很干净完全不像吃烧烤宵夜的样子。然后老板很热情地出来问，我就囧囧地进去了。\u0002才知道这家店白天是茶餐厅，8点以后变身位义海蚝情。看起来生意很不错，里面几乎坐满了人。上菜很快，先上的是一盘酸酸甜甜的小果盘，因为不怎么喜欢吃酸的，所以吃了一两个就作罢，后来听老板说这些酸果是专门从广东那边运过来的，吃完烤串以后再吃这个就十分解腻。接着上了生蚝，分别是蒜蓉和原味的，处理得很干净，而且也不油腻，没有腥味。嫩烤生牛实在太美味了！据老板说这个生牛肉都是每天凌晨去市场买的，如果当天做不完，第二天也不会再用来做这道菜了，因为牛肉经过冷冻以后口感就没有那么鲜嫩了。\u0003后面还有烤韭黄，烤风爪还有烤鸡翅，味道都很棒！\u0002吃完以后，老板还特地过来询问我们的意见，征求我们的建议，非常诚恳，绝对好评！\" \"|还|是|头|一|次|被|点|评|抽|中|宵|夜|套|餐|的|，|第|一|次|提|前|打|电|话|去|预|约|，|老|板|说|8|点|半|以|后|才|开|始|提|供|宵|夜|，|后|面|因|为|有|事|耽|搁|了|也|就|没|去|成|。|第|二|次|是|晚|上|在|家|突|然|就|想|吃|生|蚝|了|，|于|是|就|直|接|过|去|了|，|在|沈|塘|桥|那|里|还|仔|细|张|望|了|几|下|，|因|为|虽|说|是|义|海|蚝|情|，|但|是|店|面|看|上|去|真|的|很|干|净|完|全|不|像|吃|烧|烤|宵|夜|的|样|子|。|然|后|老|板|很|热|情|地|出|来|问|，|我|就|囧|囧|地|进|去|了|。|\u0002|才|知|道|这|家|店|白|天|是|茶|餐|厅|，|8|点|以|后|变|身|位|义|海|蚝|情|。|看|起|来|生|意|很|不|错|，|里|面|几|乎|坐|满|了|人|。|上|菜|很|快|，|先|上|的|是|一|盘|酸|酸|甜|甜|的|小|果|盘|，|因|为|不|怎|么|喜|欢|吃|酸|的|，|所|以|吃|了|一|两|个|就|作|罢|，|后|来|听|老|板|说|这|些|酸|果|是|专|门|从|广|东|那|边|运|过|来|的|，|吃|完|烤|串|以|后|再|吃|这|个|就|十|分|解|腻|。|接|着|上|了|生|蚝|，|分|别|是|蒜|蓉|和|原|味|的|，|处|理|得|很|干|净|，|而|且|也|不|油|腻|，|没|有|腥|味|。|嫩|烤|生|牛|实|在|太|美|味|了|！|据|老|板|说|这|个|生|牛|肉|都|是|每|天|凌|晨|去|市|场|买|的|，|如|果|当|天|做|不|完|，|第|二|天|也|不|会|再|用|来|做|这|道|菜|了|，|因|为|牛|肉|经|过|冷|冻|以|后|口|感|就|没|有|那|么|鲜|嫩|了|。|\u0003|后|面|还|有|烤|韭|黄|，|烤|风|爪|还|有|烤|鸡|翅|，|味|道|都|很|棒|！|\u0002|吃|完|以|后|，|老|板|还|特|地|过|来|询|问|我|们|的|意|见|，|征|求|我|们|的|建|议|，|非|常|诚|恳|，|绝|对|好|评|！|\"|\"|还是|头一|次|被|点评|抽|中|宵夜|套餐|的|，|第一|次|提前|打电话|去|预约|，|老板|说|8|点|半|以后|才|开始|提供|宵夜|，|后面|因为|有|事|耽搁|了|也|就|没|去|成|。|第二|次|是|晚上|在家|突然|就|想|吃|生蚝|了|，|于是|就|直接|过去|了|，|在|沈|塘桥|那里|还|仔细|张望|了|几下|，|因为|虽说|是|义海蚝情|，|但是|店面|看上去|真的|很|干净|完全|不|像|吃|烧烤|宵夜|的|样子|。|然后|老板|很|热情|地|出来|问|，|我|就|囧囧|地|进去|了|。|才|知道|这|家|店|白天|是|茶|餐厅|，|8点|以后|变身|位|义海|蚝情|。|看起来|生意|很|不错|，|里面|几乎|坐满|了|人|。|上菜|很|快|，|先|上|的|是|一|盘|酸酸|甜甜|的|小|果盘|，|因为|不怎么|喜欢|吃|酸|的|，|所以|吃|了|一|两|个|就|作罢|，|后来|听|老板|说|这些|酸|果是|专门|从|广东|那边|运|过来|的|，|吃完|烤|串|以后|再|吃|这个|就|十分|解腻|。|接着|上|了|生蚝|，|分别|是|蒜蓉|和|原味|的|，|处理|得很|干净|，|而且|也|不|油腻|，|没有|腥味|。|嫩烤|生|牛|实在|太|美味|了|！|据|老板|说|这个|生|牛肉|都|是|每天|凌晨|去|市场|买的|，|如果|当天|做|不|完|，|第二|天|也|不|会|再|用|来|做|这|道|菜|了|，|因为|牛肉|经过|冷冻|以后|口感|就|没有|那么|鲜嫩|了|。|后面|还|有|烤|韭黄|，|烤|风|爪|还有|烤|鸡翅|，|味道|都|很|棒|！|吃完|以后|，|老板|还|特地|过来|询问|我们|的|意见|，|征求|我们|的|建议|，|非常|诚恳|，|绝对|好评|！|\" 769\n2018-10-19 18:59:26 0:14:18 \"性价比还是很高的一家店，菜品不算少，只是作为放题的话量稍微多了一点，不能每个品种都吃到，最后还是服务员mm说帮我们写量少点，还是不错的～越到后面客人越多可能就没之前服务那么周到，但总的来说基本没漏单情况～说说味道吧，这家店里所有的虾类都可以试试哦，甜虾很新鲜，什么虾色拉、盐烤大虾还有天妇罗炸虾都很美味哦～刺身类虽然品种不算很多但是188的价格来说算可以了，也很新鲜，飞鱼籽超级好吃的，铁板烧的话味道也不赖，反正这个价位来说算不错了～\" \"|性|价|比|还|是|很|高|的|一|家|店|，|菜|品|不|算|少|，|只|是|作|为|放|题|的|话|量|稍|微|多|了|一|点|，|不|能|每|个|品|种|都|吃|到|，|最|后|还|是|服|务|员|m|m|说|帮|我|们|写|量|少|点|，|还|是|不|错|的|～|越|到|后|面|客|人|越|多|可|能|就|没|之|前|服|务|那|么|周|到|，|但|总|的|来|说|基|本|没|漏|单|情|况|～|说|说|味|道|吧|，|这|家|店|里|所|有|的|虾|类|都|可|以|试|试|哦|，|甜|虾|很|新|鲜|，|什|么|虾|色|拉|、|盐|烤|大|虾|还|有|天|妇|罗|炸|虾|都|很|美|味|哦|～|刺|身|类|虽|然|品|种|不|算|很|多|但|是|1|8|8|的|价|格|来|说|算|可|以|了|，|也|很|新|鲜|，|飞|鱼|籽|超|级|好|吃|的|，|铁|板|烧|的|话|味|道|也|不|赖|，|反|正|这|个|价|位|来|说|算|不|错|了|～|\"|\"|性价比|还是|很|高|的|一|家|店|，|菜品|不|算|少|，|只是|作为|放题|的|话|量|稍微|多|了|一点|，|不|能|每个|品种|都|吃到|，|最后|还是|服务员|mm|说|帮|我们|写量|少|点|，|还是|不错|的|～|越|到|后面|客人|越|多|可能|就|没|之前|服务|那么|周到|，|但|总的来说|基本|没|漏|单|情况|～|说说|味道|吧|，|这|家|店里|所有|的|虾类|都|可以|试试|哦|，|甜虾|很|新鲜|，|什么|虾|色拉|、|盐|烤|大虾|还|有|天|妇罗|炸|虾|都|很|美味|哦|～|刺身|类|虽然|品种|不算|很多|但是|188|的|价格|来说|算|可以|了|，|也|很|新鲜|，|飞鱼籽|超级|好吃|的|，|铁板烧|的话|味道|也|不赖|，|反正|这个|价位|来说|算|不|错|了|～|\" 366\n2018-10-19 19:01:50 0:00:11 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 19:02:28 0:17:20 \"下马坊地铁口出来稍微走一点点就能看到了，一家很小的店面。环境一般般，室内比较昏暗。服务态度还可以，没带钱出门，点单的时候只能想到用团购了。点了辣子鸡面和豌杂面，辣子鸡面上面是几根青菜和4块鸡肉，然后的然后就木有了，鸡块是凉的，需要先放在面汤里面泡会儿。豌杂面的豌豆有一点点酸酸的感觉，和以前吃得不一样。总体来说口味一般般，对于吃面喜欢先喝汤的我来说，总觉得欠缺点什么。没全部吃完，但是可以填饱肚子了。图一是辣子鸡面，会加香菜，不喜欢香菜的要提前说一下。图二是把鸡块吃完之后的素面条；图三为豌杂面。\" \"|下|马|坊|地|铁|口|出|来|稍|微|走|一|点|点|就|能|看|到|了|，|一|家|很|小|的|店|面|。|环|境|一|般|般|，|室|内|比|较|昏|暗|。|服|务|态|度|还|可|以|，|没|带|钱|出|门|，|点|单|的|时|候|只|能|想|到|用|团|购|了|。|点|了|辣|子|鸡|面|和|豌|杂|面|，|辣|子|鸡|面|上|面|是|几|根|青|菜|和|4|块|鸡|肉|，|然|后|的|然|后|就|木|有|了|，|鸡|块|是|凉|的|，|需|要|先|放|在|面|汤|里|面|泡|会|儿|。|豌|杂|面|的|豌|豆|有|一|点|点|酸|酸|的|感|觉|，|和|以|前|吃|得|不|一|样|。|总|体|来|说|口|味|一|般|般|，|对|于|吃|面|喜|欢|先|喝|汤|的|我|来|说|，|总|觉|得|欠|缺|点|什|么|。|没|全|部|吃|完|，|但|是|可|以|填|饱|肚|子|了|。|图|一|是|辣|子|鸡|面|，|会|加|香|菜|，|不|喜|欢|香|菜|的|要|提|前|说|一|下|。|图|二|是|把|鸡|块|吃|完|之|后|的|素|面|条|；|图|三|为|豌|杂|面|。|\"|\"|下马坊|地铁口|出来|稍微|走|一点点|就|能|看到|了|，|一|家|很|小|的|店面|。|环境|一|般般|，|室内|比较|昏暗|。|服务|态度|还|可以|，|没带|钱|出门|，|点|单|的|时候|只能|想到|用|团|购|了|。|点|了|辣子|鸡面|和|豌杂面|，|辣|子鸡|面|上面|是|几|根|青菜|和|4|块|鸡肉|，|然后|的|然后|就|木|有|了|，|鸡块|是|凉|的|，|需要|先|放在|面汤|里面|泡|会儿|。|豌杂面|的|豌豆|有|一点点|酸酸的|感觉|，|和|以前|吃|得|不|一样|。|总体|来说|口味|一般|般|，|对于|吃|面|喜欢|先|喝|汤|的|我|来说|，|总|觉得|欠缺|点|什么|。|没|全部|吃完|，|但是|可以|填饱|肚子|了|。|图|一|是|辣子|鸡面|，|会|加|香菜|，|不|喜欢|香菜|的|要|提前|说|一下|。|图二|是|把|鸡块|吃完|之后|的|素面条|；|图三|为|豌|杂面|。|\" 420\n2018-10-19 19:05:37 0:20:29 \"今天要探的店是位于利时奥特莱斯4楼的阿拉渔歌，位置很好找，交通也便利。我是提前一天预约的，所以到店就有位置了。\u0002店面不大，里面的餐位还真不少。进门的那个大烤炉特别吸引人，忍不住凑近多看了几眼。原来今晚的烤鱼都是出自这个“大家伙”。中的霸王餐是78元的一条海鲈鱼，服务员推荐了几个口味，最后选择的人气较旺的：酱香味的。同时还点了2份配菜：豆芽和土豆粉。\u0002等了大概10分钟，今晚的主角终于登场了！幸好点了配菜，不然只有烤鱼上的几块土豆，怎么吃。鱼烤的火候倒是不错，外焦里嫩，鱼肉有弹性、肉质滑嫩，但鱼是活杀，不是现杀。5元一份的豆芽少的可怜，只有几根，土豆粉倒是不错，q弹爽滑，有嚼劲。\u0002总体评价：客流量不大，基本到了都有餐位的。鱼烤的比较好，调味也到位，但味道放太多了，吃后口干。提个建议：店内的手机信号很差，真心不喜欢。\" \"|今|天|要|探|的|店|是|位|于|利|时|奥|特|莱|斯|4|楼|的|阿|拉|渔|歌|，|位|置|很|好|找|，|交|通|也|便|利|。|我|是|提|前|一|天|预|约|的|，|所|以|到|店|就|有|位|置|了|。|\u0002|店|面|不|大|，|里|面|的|餐|位|还|真|不|少|。|进|门|的|那|个|大|烤|炉|特|别|吸|引|人|，|忍|不|住|凑|近|多|看|了|几|眼|。|原|来|今|晚|的|烤|鱼|都|是|出|自|这|个|“|大|家|伙|”|。|中|的|霸|王|餐|是|7|8|元|的|一|条|海|鲈|鱼|，|服|务|员|推|荐|了|几|个|口|味|，|最|后|选|择|的|人|气|较|旺|的|：|酱|香|味|的|。|同|时|还|点|了|2|份|配|菜|：|豆|芽|和|土|豆|粉|。|\u0002|等|了|大|概|1|0|分|钟|，|今|晚|的|主|角|终|于|登|场|了|！|幸|好|点|了|配|菜|，|不|然|只|有|烤|鱼|上|的|几|块|土|豆|，|怎|么|吃|。|鱼|烤|的|火|候|倒|是|不|错|，|外|焦|里|嫩|，|鱼|肉|有|弹|性|、|肉|质|滑|嫩|，|但|鱼|是|活|杀|，|不|是|现|杀|。|5|元|一|份|的|豆|芽|少|的|可|怜|，|只|有|几|根|，|土|豆|粉|倒|是|不|错|，|q|弹|爽|滑|，|有|嚼|劲|。|\u0002|总|体|评|价|：|客|流|量|不|大|，|基|本|到|了|都|有|餐|位|的|。|鱼|烤|的|比|较|好|，|调|味|也|到|位|，|但|味|道|放|太|多|了|，|吃|后|口|干|。|提|个|建|议|：|店|内|的|手|机|信|号|很|差|，|真|心|不|喜|欢|。|\"|\"|今天|要|探|的|店|是|位于|利时|奥特莱斯|4|楼|的|阿拉|渔歌|，|位置|很|好找|，|交通|也|便利|。|我|是|提前|一|天|预约|的|，|所以|到|店|就|有|位置|了|。|店面|不大|，|里面|的|餐位|还|真|不少|。|进门|的|那个|大|烤炉|特别|吸引|人|，|忍不住|凑近|多|看|了|几|眼|。|原来|今晚|的|烤鱼|都|是|出自|这个|“|大家伙|”|。|中|的|霸王|餐|是|78|元|的|一|条|海|鲈鱼|，|服务员|推荐|了|几|个|口味|，|最后|选择|的|人气|较|旺|的|：|酱|香味|的|。|同时|还|点|了|2|份|配菜|：|豆芽|和|土豆粉|。|等|了|大概|10|分钟|，|今晚|的|主角|终于|登场|了|！|幸好|点|了|配菜|，|不然|只|有|烤鱼|上|的|几|块|土豆|，|怎么|吃|。|鱼|烤的|火候|倒是|不错|，|外焦|里嫩|，|鱼肉|有|弹性|、|肉质|滑嫩|，|但|鱼|是|活杀|，|不是|现杀|。|5|元|一|份|的|豆芽|少|的|可怜|，|只有|几|根|，|土豆粉|倒是|不错|，|q弹|爽滑|，|有|嚼劲|。|总体|评价|：|客流量|不|大|，|基本|到|了|都|有|餐位|的|。|鱼|烤的|比较|好|，|调味|也|到位|，|但|味道|放|太|多|了|，|吃|后|口干|。|提|个|建议|：|店|内|的|手机|信号|很|差|，|真心|不|喜欢|。|\" 616\n2018-10-19 19:05:43 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n2018-10-19 19:08:54 0:23:46 \"他家有很多分店\u0003感觉一下子冒出来的是的\u0003以前没怎么见到过\u0003现在随便去哪都能看到\u0003这家也是我新发现的\u0003不知是新开还是老店\u0003他家面分很多种\u0003什么毛细\u0003二细\u0003很多种\u0003以前都吃的普通的\u0003今天尝了毛细的\u0003特别细了了\u0003还有很粗的那种跟面片是的\u0003没见人吃过\u0003图片倒是见过\u0003凉菜就是普通面馆都有的\u0003不算特色了\u0003一小盘\u0003说是可以拚两种\u0003量不大\u0003但是也够吃了\u0003面拉出来很快\u0003吃的时候看见一个大老爷们要了两碗\u0003小姑娘的话一碗都吃不了\u0003辣椒油\u0003也还不错\u0003不算辣\u0003他家单纯说面的话微微偏贵\u0002忘了拍照片了\u0003对了点的双人套餐\u0003没吃完\" \"|他|家|有|很|多|分|店|\u0003|感|觉|一|下|子|冒|出|来|的|是|的|\u0003|以|前|没|怎|么|见|到|过|\u0003|现|在|随|便|去|哪|都|能|看|到|\u0003|这|家|也|是|我|新|发|现|的|\u0003|不|知|是|新|开|还|是|老|店|\u0003|他|家|面|分|很|多|种|\u0003|什|么|毛|细|\u0003|二|细|\u0003|很|多|种|\u0003|以|前|都|吃|的|普|通|的|\u0003|今|天|尝|了|毛|细|的|\u0003|特|别|细|了|了|\u0003|还|有|很|粗|的|那|种|跟|面|片|是|的|\u0003|没|见|人|吃|过|\u0003|图|片|倒|是|见|过|\u0003|凉|菜|就|是|普|通|面|馆|都|有|的|\u0003|不|算|特|色|了|\u0003|一|小|盘|\u0003|说|是|可|以|拚|两|种|\u0003|量|不|大|\u0003|但|是|也|够|吃|了|\u0003|面|拉|出|来|很|快|\u0003|吃|的|时|候|看|见|一|个|大|老|爷|们|要|了|两|碗|\u0003|小|姑|娘|的|话|一|碗|都|吃|不|了|\u0003|辣|椒|油|\u0003|也|还|不|错|\u0003|不|算|辣|\u0003|他|家|单|纯|说|面|的|话|微|微|偏|贵|\u0002|忘|了|拍|照|片|了|\u0003|对|了|点|的|双|人|套|餐|\u0003|没|吃|完|\"|\"|他|家有|很多|分店|感觉|一|下子|冒出|来|的|是的|以前|没|怎么|见到|过|现在|随便|去|哪|都|能|看到|这|家|也|是|我|新|发现|的|不知|是|新开|还是|老店|他|家|面分|很多|种|什么|毛细|二|细|很多|种|以前|都|吃|的|普通|的|今天|尝|了|毛细|的|特别|细了|了|还有|很|粗|的|那|种|跟|面片|是|的|没|见人|吃|过|图片|倒是|见|过|凉菜|就|是|普通|面馆|都|有的|不算|特色|了|一|小|盘|说|是|可以|拚|两|种|量|不|大|但是|也|够|吃|了|面|拉|出来|很|快|吃|的|时候|看见|一|个|大|老爷们|要|了|两|碗|小|姑娘|的话|一|碗|都|吃|不|了|辣椒油|也|还|不错|不|算|辣|他|家|单纯|说|面的|话|微微|偏|贵|忘|了|拍|照片|了|对了|点|的|双人|套餐|没|吃完|\" 415\n2018-10-19 19:09:09 0:03:37 \"吃过最完美的一顿餐厅周午餐，前菜，主菜，甜品，饮料，居然前菜和主菜还都有配酒，真是大爱啊[色][色][色]。先上的面包配黄油，后悔不应该都吃了，害的主菜吃不下啊！服务员还会问需不需要再加，还好没有贪心，嘿嘿。前菜的芝士和冷肉拼盘，量很足，然后能说好喜欢那个白色的拌酱嘛～前菜配干白或者粉红葡萄酒，很搭。主菜被通知已经没有三文鱼和鸭腿了，只能换了牛肉千层面和半只烤春鸡配土豆，配的干红。土豆好甜，春鸡和千层面量太大，吃撑了我们两个女生！最后还有甜品，推荐酸奶，感觉有用cheese，很特别。提拉米苏有点偏甜，所以最后配的黑咖啡，真是直接解腻的。预定的时候以为只有一杯酒，想不到配的是两杯酒，真是太划算了！地方不大，但是装修的很舒服，也不会有太簇拥的感觉。酒定的价格也不贵，下次可以和朋友再来小聚。\" \"|吃|过|最|完|美|的|一|顿|餐|厅|周|午|餐|，|前|菜|，|主|菜|，|甜|品|，|饮|料|，|居|然|前|菜|和|主|菜|还|都|有|配|酒|，|真|是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面|包|配|黄|油|，|后|悔|不|应|该|都|吃|了|，|害|的|主|菜|吃|不|下|啊|！|服|务|员|还|会|问|需|不|需|要|再|加|，|还|好|没|有|贪|心|，|嘿|嘿|。|前|菜|的|芝|士|和|冷|肉|拼|盘|，|量|很|足|，|然|后|能|说|好|喜|欢|那|个|白|色|的|拌|酱|嘛|～|前|菜|配|干|白|或|者|粉|红|葡|萄|酒|，|很|搭|。|主|菜|被|通|知|已|经|没|有|三|文|鱼|和|鸭|腿|了|，|只|能|换|了|牛|肉|千|层|面|和|半|只|烤|春|鸡|配|土|豆|，|配|的|干|红|。|土|豆|好|甜|，|春|鸡|和|千|层|面|量|太|大|，|吃|撑|了|我|们|两|个|女|生|！|最|后|还|有|甜|品|，|推|荐|酸|奶|，|感|觉|有|用|c|h|e|e|s|e|，|很|特|别|。|提|拉|米|苏|有|点|偏|甜|，|所|以|最|后|配|的|黑|咖|啡|，|真|是|直|接|解|腻|的|。|预|定|的|时|候|以|为|只|有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真|是|太|划|算|了|！|地|方|不|大|，|但|是|装|修|的|很|舒|服|，|也|不|会|有|太|簇|拥|的|感|觉|。|酒|定|的|价|格|也|不|贵|，|下|次|可|以|和|朋|友|再|来|小|聚|。|\"|\"|吃|过|最|完美|的|一|顿|餐厅|周|午餐|，|前菜|，|主菜|，|甜品|，|饮料|，|居然|前菜|和|主菜|还|都|有|配酒|，|真是|大|爱|啊|[|色|]|[|色|]|[|色|]|。|先|上|的|面包|配|黄油|，|后悔|不|应该|都|吃|了|，|害|的|主菜|吃|不|下|啊|！|服务员|还|会|问|需|不|需要|再加|，|还好|没有|贪心|，|嘿嘿|。|前菜|的|芝士|和|冷|肉|拼盘|，|量|很|足|，|然后|能|说好|喜欢|那个|白色|的|拌酱|嘛|～|前菜|配|干白|或者|粉红|葡萄酒|，|很|搭|。|主菜|被|通知|已经|没有|三文鱼|和|鸭|腿|了|，|只|能|换了|牛肉|千|层面|和|半|只|烤|春|鸡|配|土豆|，|配|的|干红|。|土豆|好|甜|，|春鸡|和|千|层|面量|太|大|，|吃|撑|了|我们|两|个|女生|！|最后|还|有|甜品|，|推荐|酸奶|，|感觉|有用|cheese|，|很|特别|。|提拉|米|苏|有点|偏|甜|，|所以|最后|配|的|黑|咖啡|，|真是|直接|解腻|的|。|预定|的|时候|以为|只有|一|杯|酒|，|想|不|到|配|的|是|两|杯|酒|，|真是|太|划算|了|！|地方|不|大|，|但是|装修|的|很|舒服|，|也|不|会|有|太|簇拥|的|感觉|。|酒|定|的|价格|也|不|贵|，|下次|可以|和|朋友|再来|小聚|。|\" 604\n2018-10-19 19:12:08 0:27:00 \"和很久没见的高中同学聚会，都很喜欢猫咪，上次约在江南西的某家猫咪主题餐厅，感觉都很好，能和可爱的猫咪亲密接触棒棒哒，于是这次也准备约到猫咪主题的餐厅一边吃饭一边逗猫，在大众点评上看到这家meow1306猫小窝评价看上去都不错，于是愉快地定下了午餐之约（下午还要去买买买~），预定了12点用餐，惭愧地迟到了半小时（友人迷路了半小时呵呵，其实就是体育中心a出口出去直走到路口左转30米左右就到了╮(╯▽╰)╭）幸好到达之时仍然有空位，安全入座。\u0002先说说#环境#，空间蛮大的，全店铺木地板，进门需要换鞋+进行手部消毒，位置刚好正对着太古汇，边上是一排超大落地玻璃窗，能看到体育西路的车水马龙，采光视线都不错，墙壁上的装饰也很用心，我们位置后面是一墙的猫咪春游壁画，樱花之下猫咪们愉快用餐的姿态萌萌哒~座椅用的是矮沙发+配套的木质桌子，沙发满软的，刚好是猫咪很容易能跳上去的高度，桌子的高度也刚刚好，很方便进餐，有一股家的味道，很闲适，最赞的是每张桌子的间隔都很宽敞，坐着一点都不压抑，聊天也不会很受隔壁的影响，不错\u0002说完环境，就轮到最核心的#猫咪#了，与这里宽敞的环境相比，猫咪的数量就完全不成正比，只有小猫六七只，有两只美短（估计还是兄弟来着），还有一直纯白的波斯猫、一只脸黑的暹罗猫，两只扁脸咖啡猫（其中一只脖子套了一个蝴蝶结，另外一只又胖又懒，全程在装地毯），还有一只纯黑的小奶猫（没认出品种，但是身娇体柔易推倒有木有），一只配一桌都嫌不够，不过猫猫都很干净、很乖巧，能抱（不过下一秒就逃），身上也没有什么味道，调教得还算不错。\u0002说完猫咪，再说说食物出品，只能说重点果然在猫，食物就一般般啦，#味道#还可以，但是分量真心少，我们点了一个爆浆鸡腿肉饭（28）、一个番茄肉酱意粉（36）、一壶花果茶（玫瑰花+苹果花36），一共100，团购后88，人均44。先说我的鸡腿饭，味道还ok，是切开的小块鸡腿肉+腌萝卜+洋葱煮的肉酱拌饭，鸡腿肉虽不多但肉都满嫩的，下饭；朋友的番茄肉酱意粉那个分量感觉三口就能吃完，偷尝了一根味道不错，就是性价比很低；花果茶就更坑爹了，壶里面的茶叶花蕾就那么两三颗可怜的漂浮着，茶水谈而无味，根本不值得这个价，差评。\u0002最后稍稍提一下#服务#除了最开始的给我们喷一下手+拿菜单（居然是用牛皮纸手写的）给我们点下菜几乎全程自助，没有热情交谈的店主给我们介绍店里的猫咪，也没有店员给我们拿逗猫棒、猫玩具，态度冷淡，在最后快离开的时候，还有一个女的一边在给气球打气（据说2点有包场活动估计是布置场地的工作人员），一边用炒鸡可怕的眼神盯着我们，吓得我们赶紧去结账。\u0002总体来说环境很不错，但奔着去看猫咪的可能有点失望了，食物的性价比也很低，不过环境蛮安静的，比较适合去下午茶小聚，顺便逗逗猫咪，据说还有鸡尾酒，晚上去的可以尝尝\" \"|和|很|久|没|见|的|高|中|同|学|聚|会|，|都|很|喜|欢|猫|咪|，|上|次|约|在|江|南|西|的|某|家|猫|咪|主|题|餐|厅|，|感|觉|都|很|好|，|能|和|可|爱|的|猫|咪|亲|密|接|触|棒|棒|哒|，|于|是|这|次|也|准|备|约|到|猫|咪|主|题|的|餐|厅|一|边|吃|饭|一|边|逗|猫|，|在|大|众|点|评|上|看|到|这|家|m|e|o|w|1|3|0|6|猫|小|窝|评|价|看|上|去|都|不|错|，|于|是|愉|快|地|定|下|了|午|餐|之|约|（|下|午|还|要|去|买|买|买|~|）|，|预|定|了|1|2|点|用|餐|，|惭|愧|地|迟|到|了|半|小|时|（|友|人|迷|路|了|半|小|时|呵|呵|，|其|实|就|是|体|育|中|心|a|出|口|出|去|直|走|到|路|口|左|转|3|0|米|左|右|就|到|了|╮|(|╯|▽|╰|)|╭|）|幸|好|到|达|之|时|仍|然|有|空|位|，|安|全|入|座|。|\u0002|先|说|说|#|环|境|#|，|空|间|蛮|大|的|，|全|店|铺|木|地|板|，|进|门|需|要|换|鞋|+|进|行|手|部|消|毒|，|位|置|刚|好|正|对|着|太|古|汇|，|边|上|是|一|排|超|大|落|地|玻|璃|窗|，|能|看|到|体|育|西|路|的|车|水|马|龙|，|采|光|视|线|都|不|错|，|墙|壁|上|的|装|饰|也|很|用|心|，|我|们|位|置|后|面|是|一|墙|的|猫|咪|春|游|壁|画|，|樱|花|之|下|猫|咪|们|愉|快|用|餐|的|姿|态|萌|萌|哒|~|座|椅|用|的|是|矮|沙|发|+|配|套|的|木|质|桌|子|，|沙|发|满|软|的|，|刚|好|是|猫|咪|很|容|易|能|跳|上|去|的|高|度|，|桌|子|的|高|度|也|刚|刚|好|，|很|方|便|进|餐|，|有|一|股|家|的|味|道|，|很|闲|适|，|最|赞|的|是|每|张|桌|子|的|间|隔|都|很|宽|敞|，|坐|着|一|点|都|不|压|抑|，|聊|天|也|不|会|很|受|隔|壁|的|影|响|，|不|错|\u0002|说|完|环|境|，|就|轮|到|最|核|心|的|#|猫|咪|#|了|，|与|这|里|宽|敞|的|环|境|相|比|，|猫|咪|的|数|量|就|完|全|不|成|正|比|，|只|有|小|猫|六|七|只|，|有|两|只|美|短|（|估|计|还|是|兄|弟|来|着|）|，|还|有|一|直|纯|白|的|波|斯|猫|、|一|只|脸|黑|的|暹|罗|猫|，|两|只|扁|脸|咖|啡|猫|（|其|中|一|只|脖|子|套|了|一|个|蝴|蝶|结|，|另|外|一|只|又|胖|又|懒|，|全|程|在|装|地|毯|）|，|还|有|一|只|纯|黑|的|小|奶|猫|（|没|认|出|品|种|，|但|是|身|娇|体|柔|易|推|倒|有|木|有|）|，|一|只|配|一|桌|都|嫌|不|够|，|不|过|猫|猫|都|很|干|净|、|很|乖|巧|，|能|抱|（|不|过|下|一|秒|就|逃|）|，|身|上|也|没|有|什|么|味|道|，|调|教|得|还|算|不|错|。|\u0002|说|完|猫|咪|，|再|说|说|食|物|出|品|，|只|能|说|重|点|果|然|在|猫|，|食|物|就|一|般|般|啦|，|#|味|道|#|还|可|以|，|但|是|分|量|真|心|少|，|我|们|点|了|一|个|爆|浆|鸡|腿|肉|饭|（|2|8|）|、|一|个|番|茄|肉|酱|意|粉|（|3|6|）|、|一|壶|花|果|茶|（|玫|瑰|花|+|苹|果|花|3|6|）|，|一|共|1|0|0|，|团|购|后|8|8|，|人|均|4|4|。|先|说|我|的|鸡|腿|饭|，|味|道|还|o|k|，|是|切|开|的|小|块|鸡|腿|肉|+|腌|萝|卜|+|洋|葱|煮|的|肉|酱|拌|饭|，|鸡|腿|肉|虽|不|多|但|肉|都|满|嫩|的|，|下|饭|；|朋|友|的|番|茄|肉|酱|意|粉|那|个|分|量|感|觉|三|口|就|能|吃|完|，|偷|尝|了|一|根|味|道|不|错|，|就|是|性|价|比|很|低|；|花|果|茶|就|更|坑|爹|了|，|壶|里|面|的|茶|叶|花|蕾|就|那|么|两|三|颗|可|怜|的|漂|浮|着|，|茶|水|谈|而|无|味|，|根|本|不|值|得|这|个|价|，|差|评|。|\u0002|最|后|稍|稍|提|一|下|#|服|务|#|除|了|最|开|始|的|给|我|们|喷|一|下|手|+|拿|菜|单|（|居|然|是|用|牛|皮|纸|手|写|的|）|给|我|们|点|下|菜|几|乎|全|程|自|助|，|没|有|热|情|交|谈|的|店|主|给|我|们|介|绍|店|里|的|猫|咪|，|也|没|有|店|员|给|我|们|拿|逗|猫|棒|、|猫|玩|具|，|态|度|冷|淡|，|在|最|后|快|离|开|的|时|候|，|还|有|一|个|女|的|一|边|在|给|气|球|打|气|（|据|说|2|点|有|包|场|活|动|估|计|是|布|置|场|地|的|工|作|人|员|）|，|一|边|用|炒|鸡|可|怕|的|眼|神|盯|着|我|们|，|吓|得|我|们|赶|紧|去|结|账|。|\u0002|总|体|来|说|环|境|很|不|错|，|但|奔|着|去|看|猫|咪|的|可|能|有|点|失|望|了|，|食|物|的|性|价|比|也|很|低|，|不|过|环|境|蛮|安|静|的|，|比|较|适|合|去|下|午|茶|小|聚|，|顺|便|逗|逗|猫|咪|，|据|说|还|有|鸡|尾|酒|，|晚|上|去|的|可|以|尝|尝|\"|\"|和|很久|没|见|的|高中|同学|聚会|，|都|很|喜欢|猫咪|，|上次|约在|江南|西|的|某|家|猫咪|主题|餐厅|，|感觉|都|很|好|，|能|和|可爱|的|猫咪|亲密|接触|棒棒哒|，|于是|这|次|也|准备|约|到|猫咪|主题|的|餐厅|一边|吃饭|一边|逗|猫|，|在|大众|点评|上|看到|这|家|meow|1306|猫|小窝|评价|看上去|都|不错|，|于是|愉快|地|定下|了|午餐|之|约|（|下午|还|要|去|买|买|买|~|）|，|预定|了|12点|用餐|，|惭愧|地|迟到|了|半|小时|（|友人|迷路|了|半|小时|呵呵|，|其实|就是|体育|中心|a|出口|出去|直|走到|路口|左转|30|米|左右|就|到|了|╮|(|╯▽╰|)|╭|）|幸好|到达|之时|仍然|有|空位|，|安全|入座|。|先|说说|#|环境|#|，|空间|蛮大|的|，|全|店铺|木|地板|，|进门|需要|换|鞋|+|进行|手部|消毒|，|位置|刚好|正对着|太古汇|，|边上|是|一|排|超大|落地|玻璃窗|，|能|看到|体育|西路|的|车水马龙|，|采光|视线|都|不错|，|墙壁|上|的|装饰|也|很|用心|，|我们|位置|后面|是|一|墙|的|猫咪|春游|壁画|，|樱花|之下|猫咪们|愉快|用餐|的|姿态|萌萌哒|~|座椅|用|的|是|矮沙发|+|配套|的|木质|桌子|，|沙发|满|软|的|，|刚好|是|猫咪|很|容易|能|跳上|去|的|高度|，|桌子|的|高度|也|刚刚|好|，|很|方便|进餐|，|有|一|股|家|的|味道|，|很|闲适|，|最|赞|的|是|每|张|桌子|的|间隔|都|很|宽敞|，|坐|着|一点|都|不|压抑|，|聊天|也|不|会|很|受|隔壁|的|影响|，|不错|说完|环境|，|就|轮到|最|核心|的|#|猫咪|#|了|，|与|这里|宽敞|的|环境|相比|，|猫咪|的|数量|就|完全|不|成|正比|，|只有|小猫|六七|只|，|有|两|只|美|短|（|估计|还是|兄弟|来着|）|，|还有|一直|纯白|的|波斯猫|、|一|只|脸|黑|的|暹罗猫|，|两|只|扁|脸|咖啡|猫|（|其中|一|只|脖子|套|了|一|个|蝴蝶|结|，|另外|一|只|又|胖|又|懒|，|全程|在|装|地毯|）|，|还有|一|只|纯|黑|的|小奶|猫|（|没|认出|品种|，|但是|身娇体|柔易|推倒|有|木|有|）|，|一|只|配|一|桌|都|嫌|不够|，|不过|猫|猫|都|很|干净|、|很|乖巧|，|能|抱|（|不过|下|一|秒|就|逃|）|，|身上|也|没有|什么|味道|，|调教|得|还算|不错|。|说完|猫咪|，|再|说说|食物|出品|，|只能|说|重点|果然|在|猫|，|食物|就|一般|般|啦|，|#|味道|#|还|可以|，|但是|分量|真心|少|，|我们|点|了|一|个|爆浆|鸡腿|肉饭|（|28|）|、|一|个|番茄|肉酱|意粉|（|36|）|、|一|壶|花|果茶|（|玫瑰花|+|苹果花|36|）|，|一共|100|，|团购|后|88|，|人均|44|。|先|说|我|的|鸡腿|饭|，|味道|还|ok|，|是|切开|的|小|块|鸡腿|肉|+|腌萝卜|+|洋葱|煮|的|肉酱|拌饭|，|鸡腿|肉|虽|不|多|但|肉|都|满|嫩的|，|下饭|；|朋友|的|番茄|肉酱|意粉|那个|分量|感觉|三|口|就|能|吃完|，|偷|尝|了|一|根|味道|不错|，|就是|性价比|很低|；|花果|茶|就|更|坑|爹|了|，|壶|里面|的|茶叶|花蕾|就|那么|两|三|颗|可怜|的|漂浮|着|，|茶水|谈|而|无味|，|根本|不|值得|这个|价|，|差评|。|最后|稍稍|提|一下|#|服务|#|除了|最开始|的|给|我们|喷一|下手|+|拿|菜单|（|居然|是|用|牛皮纸|手写|的|）|给|我们|点|下|菜|几乎|全程|自助|，|没有|热情|交谈|的|店主|给|我们|介绍|店里|的|猫咪|，|也|没有|店员|给|我们|拿|逗|猫|棒|、|猫|玩具|，|态度|冷淡|，|在|最后|快|离开|的|时候|，|还有|一|个|女的|一边|在|给|气球|打气|（|据说|2|点|有|包场|活动|估计|是|布置|场地|的|工作|人员|）|，|一边|用|炒|鸡|可怕|的|眼神|盯|着|我们|，|吓|得|我们|赶紧|去|结账|。|总体|来说|环境|很|不错|，|但|奔着|去|看|猫咪|的|可能|有点|失望|了|，|食物|的|性价比|也|很|低|，|不过|环境|蛮|安静|的|，|比较|适合|去|下午|茶|小聚|，|顺便|逗逗|猫咪|，|据说|还有|鸡尾酒|，|晚上|去|的|可以|尝尝|\" 1962\n2018-10-19 19:12:25 0:06:53 \"渔乐圈主题餐厅听名字觉得是一家吃鱼的餐厅，实际上是一家港式茶餐厅，当然这家港式茶餐厅真的很奇葩，香港人吃东西讲究清单，这家点的菜品我吃完之后只有一个印象，就是咸，这家店的位置在写字楼里面的，一般人很难找到，不知道老板怎么想的，会选在这里，边上就是一家保险公司。我是周六中午去吃的，人很少，几乎没几桌客人，我看了看菜单，服务员是推荐点酸菜鱼，这里的酸菜鱼是按斤卖的，觉得价格小贵没点，点了个乳鸽，这里的乳鸽的味道有点怪，不想平常吃到的都是脆脆的。点了皮蛋瘦肉粥，味道还行，不好不坏，还点了叉烧肠粉，都是肥肉，味道马马虎虎。还点了鱼香茄子煲，味道是不错，就是太油了，另外点了个豉汁蒸排骨，这个真的不好吃，排骨不光拍了嫩肉粉，还咬不动。吃完之后我跟店里类似主管的反映菜太咸，她完全不当回事，这样怎么会进步呢！\" \"|渔|乐|圈|主|题|餐|厅|听|名|字|觉|得|是|一|家|吃|鱼|的|餐|厅|，|实|际|上|是|一|家|港|式|茶|餐|厅|，|当|然|这|家|港|式|茶|餐|厅|真|的|很|奇|葩|，|香|港|人|吃|东|西|讲|究|清|单|，|这|家|点|的|菜|品|我|吃|完|之|后|只|有|一|个|印|象|，|就|是|咸|，|这|家|店|的|位|置|在|写|字|楼|里|面|的|，|一|般|人|很|难|找|到|，|不|知|道|老|板|怎|么|想|的|，|会|选|在|这|里|，|边|上|就|是|一|家|保|险|公|司|。|我|是|周|六|中|午|去|吃|的|，|人|很|少|，|几|乎|没|几|桌|客|人|，|我|看|了|看|菜|单|，|服|务|员|是|推|荐|点|酸|菜|鱼|，|这|里|的|酸|菜|鱼|是|按|斤|卖|的|，|觉|得|价|格|小|贵|没|点|，|点|了|个|乳|鸽|，|这|里|的|乳|鸽|的|味|道|有|点|怪|，|不|想|平|常|吃|到|的|都|是|脆|脆|的|。|点|了|皮|蛋|瘦|肉|粥|，|味|道|还|行|，|不|好|不|坏|，|还|点|了|叉|烧|肠|粉|，|都|是|肥|肉|，|味|道|马|马|虎|虎|。|还|点|了|鱼|香|茄|子|煲|，|味|道|是|不|错|，|就|是|太|油|了|，|另|外|点|了|个|豉|汁|蒸|排|骨|，|这|个|真|的|不|好|吃|，|排|骨|不|光|拍|了|嫩|肉|粉|，|还|咬|不|动|。|吃|完|之|后|我|跟|店|里|类|似|主|管|的|反|映|菜|太|咸|，|她|完|全|不|当|回|事|，|这|样|怎|么|会|进|步|呢|！|\"|\"|渔乐圈|主题|餐厅|听|名字|觉得|是|一|家|吃鱼|的|餐厅|，|实际上|是|一|家|港式|茶|餐厅|，|当然|这|家|港式|茶|餐厅|真的|很|奇葩|，|香港人|吃|东西|讲究|清单|，|这|家|点|的|菜品|我|吃完|之后|只|有|一|个|印象|，|就是|咸|，|这|家|店|的|位置|在|写字楼|里面|的|，|一般|人|很|难|找到|，|不|知道|老板|怎么|想|的|，|会|选|在|这里|，|边上|就|是|一|家|保险|公司|。|我|是|周六|中午|去|吃|的|，|人|很少|，|几乎|没|几|桌|客人|，|我|看|了|看|菜单|，|服务员|是|推荐|点|酸菜鱼|，|这里|的|酸菜|鱼|是|按|斤|卖的|，|觉得|价格|小|贵|没|点|，|点|了|个|乳鸽|，|这里|的|乳鸽|的|味道|有点|怪|，|不|想|平常|吃到|的|都|是|脆脆|的|。|点|了|皮蛋|瘦肉粥|，|味道|还行|，|不好不坏|，|还|点|了|叉烧|肠粉|，|都|是|肥肉|，|味道|马马虎虎|。|还|点|了|鱼香|茄子煲|，|味道|是|不错|，|就是|太|油了|，|另外|点|了|个|豉汁蒸|排骨|，|这个|真的|不好吃|，|排骨|不|光|拍|了|嫩肉粉|，|还|咬|不|动|。|吃完|之后|我|跟|店里|类似|主管|的|反映|菜|太|咸|，|她|完全|不当|回事|，|这样|怎么|会|进步|呢|！|\" 597\n2018-10-19 19:15:18 0:30:10 \"位置确实比较隐蔽，从美甲店上二楼就是，门口有个不大的招牌，幸好看了大家的点评得以顺利找到。首先说环境，装修让人很舒服，有吧台，也有包间。今天来给爸爸过生日，订了包间，能坐的舒服些，但之前不清楚包间有最低消费，老板很好，为我们破例了一次，特别感谢！菜品很精致，量是日料店一贯的比较秀气，但胜在质量，味道都很好，一看就是用料上乘。寿喜锅菜单上没有，却在墙上挂的推荐菜单中看到了，必点，要的牛肉锅。我是一直喜欢寿喜锅的，让我来尝一尝，鉴定一下。好吃，真的是很好吃，肥牛蘸着生鸡蛋，滑滑嫩嫩，真的完胜我吃过的除将太无二外的其他家，在我的排名中和将太无二并列。大家推荐的明太子鸡翅饺子和明太子黄油土豆都点了，味道都很赞，主要是比较新颖，超满意的一餐！服务也加分不少哦！\" \"|位|置|确|实|比|较|隐|蔽|，|从|美|甲|店|上|二|楼|就|是|，|门|口|有|个|不|大|的|招|牌|，|幸|好|看|了|大|家|的|点|评|得|以|顺|利|找|到|。|首|先|说|环|境|，|装|修|让|人|很|舒|服|，|有|吧|台|，|也|有|包|间|。|今|天|来|给|爸|爸|过|生|日|，|订|了|包|间|，|能|坐|的|舒|服|些|，|但|之|前|不|清|楚|包|间|有|最|低|消|费|，|老|板|很|好|，|为|我|们|破|例|了|一|次|，|特|别|感|谢|！|菜|品|很|精|致|，|量|是|日|料|店|一|贯|的|比|较|秀|气|，|但|胜|在|质|量|，|味|道|都|很|好|，|一|看|就|是|用|料|上|乘|。|寿|喜|锅|菜|单|上|没|有|，|却|在|墙|上|挂|的|推|荐|菜|单|中|看|到|了|，|必|点|，|要|的|牛|肉|锅|。|我|是|一|直|喜|欢|寿|喜|锅|的|，|让|我|来|尝|一|尝|，|鉴|定|一|下|。|好|吃|，|真|的|是|很|好|吃|，|肥|牛|蘸|着|生|鸡|蛋|，|滑|滑|嫩|嫩|，|真|的|完|胜|我|吃|过|的|除|将|太|无|二|外|的|其|他|家|，|在|我|的|排|名|中|和|将|太|无|二|并|列|。|大|家|推|荐|的|明|太|子|鸡|翅|饺|子|和|明|太|子|黄|油|土|豆|都|点|了|，|味|道|都|很|赞|，|主|要|是|比|较|新|颖|，|超|满|意|的|一|餐|！|服|务|也|加|分|不|少|哦|！|\"|\"|位置|确实|比较|隐蔽|，|从|美|甲|店|上|二|楼|就是|，|门口|有|个|不|大|的|招牌|，|幸好|看|了|大家|的|点评|得以|顺利|找到|。|首先|说|环境|，|装修|让|人|很|舒服|，|有|吧台|，|也|有|包间|。|今天|来给|爸爸|过|生日|，|订|了|包间|，|能|坐|的|舒服|些|，|但|之前|不|清楚|包间|有|最低|消费|，|老板|很|好|，|为|我们|破例|了|一|次|，|特别|感谢|！|菜品|很|精致|，|量|是|日|料|店|一贯|的|比较|秀气|，|但|胜|在|质量|，|味道|都|很|好|，|一|看|就是|用料|上乘|。|寿喜|锅|菜单|上|没有|，|却|在|墙|上|挂|的|推荐|菜单|中|看到|了|，|必点|，|要|的|牛肉锅|。|我|是|一直|喜欢|寿喜锅|的|，|让|我|来尝|一|尝|，|鉴定|一下|。|好吃|，|真的|是|很|好吃|，|肥牛蘸|着|生|鸡蛋|，|滑滑嫩嫩|，|真的|完胜|我|吃|过|的|除|将|太|无|二|外|的|其他|家|，|在|我|的|排名|中|和|将|太|无|二|并列|。|大家|推荐|的|明|太子|鸡翅|饺子|和|明|太子|黄油|土豆|都|点|了|，|味道|都|很|赞|，|主要|是|比较|新颖|，|超|满意|的|一|餐|！|服务|也|加分|不少|哦|！|\" 571\n2018-10-19 19:15:39 0:10:07 \"去了不少次，\u0003地址也比较好找，在中原路与工人路交叉口向南200米，\u0003店里的装饰和设计比较古朴，很有解放前的味道。这次团购的是2～3人餐，\u0003三菜一汤，\u0003还有三份米，分量也不错\u0003菜差不多够三个吃，就是米的分量不大，不过可以加钱要米饭，团购价四十九元还是比较实惠的，菜品属于偏川味，\u0003都是辣的\u0003属于比较开胃的菜。前台态度也不错，服务员\u0003上菜更是一路小跑，\u0003上菜速度很快，给服务员小哥点个赞。希望店家推出更多的更实惠的团购套餐。\" \"|去|了|不|少|次|，|\u0003|地|址|也|比|较|好|找|，|在|中|原|路|与|工|人|路|交|叉|口|向|南|2|0|0|米|，|\u0003|店|里|的|装|饰|和|设|计|比|较|古|朴|，|很|有|解|放|前|的|味|道|。|这|次|团|购|的|是|2|～|3|人|餐|，|\u0003|三|菜|一|汤|，|\u0003|还|有|三|份|米|，|分|量|也|不|错|\u0003|菜|差|不|多|够|三|个|吃|，|就|是|米|的|分|量|不|大|，|不|过|可|以|加|钱|要|米|饭|，|团|购|价|四|十|九|元|还|是|比|较|实|惠|的|，|菜|品|属|于|偏|川|味|，|\u0003|都|是|辣|的|\u0003|属|于|比|较|开|胃|的|菜|。|前|台|态|度|也|不|错|，|服|务|员|\u0003|上|菜|更|是|一|路|小|跑|，|\u0003|上|菜|速|度|很|快|，|给|服|务|员|小|哥|点|个|赞|。|希|望|店|家|推|出|更|多|的|更|实|惠|的|团|购|套|餐|。|\"|\"|去|了|不少|次|，|地址|也|比较|好找|，|在|中原|路|与|工人|路|交叉口|向南|200|米|，|店|里|的|装饰|和|设计|比较|古朴|，|很|有|解放|前|的|味道|。|这|次|团购|的|是|2|～|3|人|餐|，|三|菜|一|汤|，|还有|三|份|米|，|分量|也|不错|菜|差不多|够|三|个|吃|，|就是|米|的|分量|不|大|，|不过|可以|加|钱|要|米饭|，|团|购价|四十九|元|还是|比较|实惠|的|，|菜品|属于|偏川味|，|都|是|辣|的|属于|比较|开胃|的|菜|。|前台|态度|也|不错|，|服务员|上菜|更|是|一|路|小跑|，|上菜|速度|很|快|，|给|服务员|小哥|点|个|赞|。|希望|店家|推出|更|多|的|更|实惠|的|团购|套餐|。|\" 356\n2018-10-19 19:26:30 0:00:10 \"吼吼吼，萌死人的棒棒糖，中了大众点评的霸王餐，太可爱了。一直就好奇这个棒棒糖是怎么个东西，大众点评给了我这个土老冒一个见识的机会。看介绍棒棒糖是用德国糖做的，不会很甜，中间的照片是糯米的，能食用，真是太高端大气上档次了，还可以买蝴蝶结扎口，送人可以买礼盒。我是先打的卖家电话，加了微信，给卖家传的照片。等了几天，卖家就告诉我可以取货了，去大官屯那取的。虽然连卖家的面都没见到，但是还是谢谢卖家送我这么可爱的东西，太喜欢了，这哪舍得吃啊。\" \"|吼|吼|吼|，|萌|死|人|的|棒|棒|糖|，|中|了|大|众|点|评|的|霸|王|餐|，|太|可|爱|了|。|一|直|就|好|奇|这|个|棒|棒|糖|是|怎|么|个|东|西|，|大|众|点|评|给|了|我|这|个|土|老|冒|一|个|见|识|的|机|会|。|看|介|绍|棒|棒|糖|是|用|德|国|糖|做|的|，|不|会|很|甜|，|中|间|的|照|片|是|糯|米|的|，|能|食|用|，|真|是|太|高|端|大|气|上|档|次|了|，|还|可|以|买|蝴|蝶|结|扎|口|，|送|人|可|以|买|礼|盒|。|我|是|先|打|的|卖|家|电|话|，|加|了|微|信|，|给|卖|家|传|的|照|片|。|等|了|几|天|，|卖|家|就|告|诉|我|可|以|取|货|了|，|去|大|官|屯|那|取|的|。|虽|然|连|卖|家|的|面|都|没|见|到|，|但|是|还|是|谢|谢|卖|家|送|我|这|么|可|爱|的|东|西|，|太|喜|欢|了|，|这|哪|舍|得|吃|啊|。|\"|\"|吼吼吼|，|萌死人|的|棒棒糖|，|中了|大众|点评|的|霸王|餐|，|太|可爱|了|。|一直|就|好奇|这个|棒棒糖|是|怎么|个|东西|，|大众|点评|给|了|我|这个|土老冒|一|个|见识|的|机会|。|看|介绍|棒棒糖|是|用|德国|糖|做|的|，|不|会|很|甜|，|中间|的|照片|是|糯米|的|，|能|食用|，|真是|太|高端|大气|上档次|了|，|还|可以|买|蝴蝶|结扎|口|，|送人|可以|买|礼盒|。|我|是|先|打的|卖家|电话|，|加了|微信|，|给|卖|家传|的|照片|。|等|了|几|天|，|卖家|就|告诉|我|可以|取货|了|，|去|大官屯|那|取的|。|虽然|连|卖家|的|面|都|没|见到|，|但是|还是|谢谢|卖家|送|我|这么|可爱|的|东西|，|太|喜欢|了|，|这|哪|舍得|吃|啊|。|\" 370\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/to-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-28 08:37:28.846557\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport six \n  \nassert six.PY3 \n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom tqdm import tqdm\nimport traceback\n\nifile = sys.argv[1]\nofile = sys.argv[2]\n\nids_set = set()\nfm = 'w'\nif os.path.exists(ofile):\n  fm = 'a'\n  for line in open(ofile):\n    ids_set.add(line.split('\\t')[0])\n\nprint('%s already done %d' % (ofile, len(ids_set)))\n\nnum_errs = 0\nwith open(ofile, fm) as out:\n  df = pd.read_csv(ifile, lineterminator='\\n')\n  contents = df['content'].values \n  ids = df['id'].values\n  for i in tqdm(range(len(df)), ascii=True):\n    if str(ids[i]) in ids_set:\n      continue\n    #if i != 2333:\n    #  continue\n    #print(gezi.cut(filter.filter(contents[i]), type_))\n    try:\n      l = []\n      for ch in filter.filter(contents[i]):\n        l.append(ch)\n      print(' '.join(l), file=out)\n    except Exception:\n      if num_errs == 0:\n        print(traceback.format_exc())\n      num_errs += 1\n      continue\n    #exit(0)\n\nprint('num_errs:', num_errs, 'ratio:', num_errs / len(df))\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/to-norm.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport gezi\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1])\n\ncontents = df[key].values \n\nfor i in range(len(contents)):\n  scontent = gezi.normalize(contents[i])\n  if scontent != contents[i]:\n    print('------------------', i)\n    print(contents[i])\n    print(scontent)\n    contents[i] = scontent\n\ndf[key] = contents\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.testb/to-simplify.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-simplify.py\n#        \\author   chenghuige  \n#          \\date   2018-10-19 12:58:07.505225\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tqdm import tqdm\nimport pandas as pd\nimport gezi\nimport traceback \n\nimport six \nassert six.PY2, 'must using py2 env to do simplify'\n  \nkey = 'content'\n\nif len(sys.argv) > 3:\n  key = sys.argv[3]\n\ndf = pd.read_csv(sys.argv[1], lineterminator='\\n')\n\ncontents = df[key].values \n\nnum_modified = 0\nnum_errs = 0\nfor i in tqdm(range(len(contents)), ascii=True):\n  try:\n    scontent = gezi.to_simplify(contents[i])\n  except Exception:\n    num_errs += 1\n    print(traceback.format_exc())\n    continue\n  if scontent != contents[i]:\n    # print('------------------', i)\n    # print(contents[i])\n    # print(scontent)\n    contents[i] = scontent\n    num_modified += 1\n\ndf[key] = contents\n\nprint('modify ratio', num_modified / len(df))\nprint('num_errs', num_errs)\n\ndf.to_csv(sys.argv[2], index=False, encoding='utf_8_sig')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/filter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   filter.py\n#        \\author   chenghuige  \n#          \\date   2018-09-14 21:55:52.069104\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\nflags.DEFINE_bool('to_simplify', False, '')\n\nimport sys \nimport os\n\nimport gezi\n\n\ndef filter(x):\n  x = gezi.filter_quota(x).replace('\\r', '\\x01').replace('\\n', '\\x02').replace('<R>', '\\x01').replace('<N>', '\\x02').replace('\\t', ' ')\n  # simplify seems not help but might help diversity\n  if FLAGS.to_simplify:\n    x = gezi.to_simplify(x)\n  # TODO if needed try to find case usefull or not　I think especally for sentiment not reading, lower is ok not loose important info like NIKE\n  x = x.lower()\n  return x\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/find-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-01 20:35:40.158875\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd \nfrom projects.ai2018.sentiment.prepare import filter\n\ndf = pd.read_csv('/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv')\n\nchars = set()\nfor comment in df['content']:\n  comment = filter.filter(comment)\n  for w in comment:\n    if w not in chars:\n      print(w)\n      chars.add(w)\n\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\nchars2 = [x.upper() for x in chars]\nchars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-canyin.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./raw_comment_v2.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['c{}'.format(i) for i in range(len(df))]\ncontents = df['content'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\nlabels = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['score']\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -2\n  labels.append(label)\n  \ndf2['others_overall_experience'] = labels\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./canyin.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-canyin.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-char-seg-canyin.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['content']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-char-seg-dianping.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-char-seg-train.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-char-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-content.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-content.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 10:37:16.658519\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\ninfile = './mount/data/ai2018/sentiment/train.csv'\n\nimport pandas as pd\nimport filter\n\ndf = pd.read_csv(infile)\n\nfor row in df.iterrows():\n  content = filter.filter(row[1][1])\n  print(content)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-dianping.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./ratings.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['d{}'.format(i) for i in range(len(df))]\ncontents = df['comment'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\ndef score2class(score):\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -1\n  return label  \n\nlabels = []\nlabels_env = []\nlabels_flavor = []\nlabels_service = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['rating']\n  score_env = row['rating_env']\n  score_flavor = row['rating_flavor']\n  score_service = row['rating_service']\n\n  labels.append(score2class(score))\n  labels_env.append(score2class(score_env))\n  labels_flavor.append(score2class(score_flavor))\n  labels_service.append(score2class(score_service))\n\n  \ndf2['others_overall_experience'] = labels\ndf2['environment_decoration'] = labels_env\ndf2['dish_taste'] = labels_flavor\ndf2['service_waiters_attitude'] = labels_service\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./dianping.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-dianping.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-mix-seg-canyin.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\n#assert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom wenzheng.utils import text2ids\n\nvocab = '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt'\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\n#import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\ndef seg(text, out):\n  #text = filter.filter(text)\n  words = text2ids.ids2words(text2ids_(text)) \n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/seg.mix.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['content']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    #try:\n    seg(comment, out)\n    #except Exception:\n    #  continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-mix-seg-dianping.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\n#assert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom wenzheng.utils import text2ids\n\nvocab = '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt'\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\n#import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\ndef seg(text, out):\n  #text = filter.filter(text)\n  words = text2ids.ids2words(text2ids_(text)) \n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.mix.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/sentiment/valid.csv', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('limit', 3000, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_integer('num_records_', 7, '10 or 5?')\n#flags.DEFINE_integer('start_index', 0, 'set it to 1 if you have valid file which you want to put in train as fold 0')\nflags.DEFINE_bool('use_fold', False, '')\n\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nfrom gezi import Vocabulary\nimport gezi\nimport melt\n\nfrom text2ids import text2ids as text2ids_\n\nfrom wenzheng.utils import text2ids\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\ndf = None\n\n\ndef get_mode(path):\n  if 'train' in path:\n    return 'train'\n  elif 'valid' in path:\n    if not FLAGS.use_fold:\n      return 'valid' \n    else:\n      return 'train'\n  elif 'test' in path:\n    return 'test'\n  elif '.pm' in path:\n    return 'pm'\n  elif 'trans' in path:\n    return 'trans' \n  elif 'deform' in path:\n    return 'deform'\n  elif 'canyin' in path:\n    return 'canyin'\n  elif 'dianping' in path:\n    return 'dianping'\n  return 'train'\n\ndef build_features(index):\n  mode = get_mode(FLAGS.input)\n\n  start_index = 0 if not FLAGS.use_fold else 1\n  out_file = os.path.dirname(FLAGS.vocab) + '/{0}/{1}.record'.format(mode, index + start_index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(df)\n  num_records = FLAGS.num_records_ \n  if mode in ['valid', 'test', 'dev', 'pm']:\n    num_records = 1\n  start, end = gezi.get_fold(total, num_records, index)\n\n  print('infile', FLAGS.input, 'out_file', out_file)\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for i in range(start, end):\n      try:\n        row = df.iloc[i]\n        id = row[0]\n        content = row[1] \n\n        #print(content, type(content))\n        if len(content) > max_len:\n          max_len = len(content)\n          print('max_len', max_len)\n\n        if len(content) > 3000:\n          print(id, content)\n          if mode not in ['test', 'valid']:\n            continue \n\n        label = list(row[2:])\n        \n        #label = [x + 2 for x in label]\n        #num_labels = len(label)\n\n        content_ids = text2ids_(content)\n\n        if len(content_ids) < 5 and mode not in ['test', 'valid']:\n          continue\n\n        limit = FLAGS.limit\n        if len(content_ids) > max_num_ids:\n          max_num_ids = len(content_ids)\n          print('max_num_ids', max_num_ids) \n        content_ids = content_ids[:limit]\n        \n        feature = {\n                    'id': melt.bytes_feature(str(id)),\n                    'label': melt.int64_feature(label),\n                    'content':  melt.int64_feature(content_ids),\n                    'content_str': melt.bytes_feature(content),    \n                    'sorce': melt.bytes_feature(mode), \n                  }\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        if num % 1000 == 0:\n          print(num)\n\n        writer.write(record)\n        num += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(content_ids)\n      except Exception:\n        #print(traceback.format_exc(), file=sys.stderr)\n        pass\n\n\ndef main(_):  \n  text2ids.init(FLAGS.vocab_)\n  print('to_lower:', FLAGS.to_lower, 'feed_single_en:', FLAGS.feed_single_en, 'seg_method', FLAGS.seg_method)\n  print(text2ids.ids2text(text2ids_('傻逼脑残B')))\n  print(text2ids.ids2text(text2ids_('喜欢玩孙尚香的加我好友：2948291976')))\n\n  global df\n  df = pd.read_csv(FLAGS.input, lineterminator='\\n')\n\n  mode = get_mode(FLAGS.input)\n\n  \n  pool = multiprocessing.Pool()\n\n  if mode in ['valid', 'test', 'dev', 'pm']:\n    FLAGS.num_records_ = 1\n\n  print('num records file to gen', FLAGS.num_records_)\n\n  #FLAGS.num_records_ = 1\n\n  pool.map(build_features, range(FLAGS.num_records_))\n  pool.close()\n  pool.join()\n\n  #build_features(FLAGS.input)\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-seg-canyin.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/seg.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['content']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-seg-dianping.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom wenzheng.utils import text2ids\n\nvocab = '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt'\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-seg-train.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-test.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-train.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-trans.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-trans.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 22:43:06.305917\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\ndf = pd.read_csv('./train.csv')\n\ncomments = {}\nfor line in open('./train.en.txt'):\n  try:\n    id, comment = line.rstrip().split('\\t')\n    comments[id] = comment\n  except Exception:\n    pass\n\nprint(len(comments))\n\nnum_modify = 0\nnum_bads = 0\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  id = row['id']\n  id = str(id)\n  if id in comments: \n    if len(comments[id].replace(' ', '')) < len(row['content'].replace(' ', '')) * 1.5 and len(comments[id].replace(' ', '')) > len(row['content'].replace(' ', '')) * 0.7:\n      df.loc[i,'content'] = comments[id]\n      num_modify += 1\n    else:\n      print('bad translate:', comments[id])\n      print('ori', row['content'])\n      num_bads += 1\n  \nprint(num_modify, num_bads)\ndf.to_csv('./trans.en.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-trans.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-valid.sh",
    "content": "python ./gen-records.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-vocab.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO could do segment parallel @TODO\nnow single thread... slow\n\"\"\"\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 0, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\", 0, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"add_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_boolean(\"save_count_info\", True, \"save count info to bin\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/ai2018/sentiment/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\nflags.DEFINE_string('seg_method', 'basic_single', '')\n\nassert FLAGS.most_common > 0 or FLAGS.min_count > 0\nassert FLAGS.seg_method\n\nfrom gezi import WordCounter \n\ncounter = WordCounter(\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\nimport sys,os\n#reload(sys)\n#sys.setdefaultencoding('utf8')\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\nprint('min_count:', FLAGS.min_count, 'most_common:', FLAGS.most_common)\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  text = line.rstrip()\n  #text = text.lower()\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  if num % 10000 == 0:\n    print(text, '|'.join(words), len(words), file=sys.stderr)\n  counter.add(START_WORD)\n  for word in words:\n    counter.add(word)\n    if word.isdigit():\n      counter.add('<NUM>')\n  counter.add(END_WORD)\n  num += 1\n\n  if num == FLAGS.max_lines:\n    break\n\ncounter.add(START_WORD)\n\nprint(FLAGS.out_dir, file=sys.stderr)\nvocab_name = FLAGS.vocab_name or 'vocab'\ncounter.save(FLAGS.out_dir + '/%s.txt' % vocab_name)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/gen-vocab.sh",
    "content": "python gen-content.py | python gen-vocab.py --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/sentiment/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('dir', './mount/temp/ai2018/sentiment/tfrecord/', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/sentiment/vectors.txt', '')\nflags.DEFINE_integer('min_count', 10, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  print('emb', FLAGS.emb)\n  input_vocab = FLAGS.input_vocab\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if word in embedding_dict:\n            emb_mat.append(np.array(embedding_dict[word]))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/run-char.sh",
    "content": "python ./merge-emb.py \nsh ./gen-valid.sh --seg_method=char\nsh ./gen-test.sh --seg_method=char\nsh ./gen-train.sh --seg_method=char\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/run-noemb.sh",
    "content": "#python ./merge-emb.py\nsh ./gen-valid.sh \nsh ./gen-test.sh \nsh ./gen-train.sh\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/run.sh",
    "content": "python ./merge-emb.py\nsh ./gen-valid.sh \nsh ./gen-test.sh \nsh ./gen-train.sh\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v1/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('to_lower', True, '')\n\nimport sys \nimport os\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \n# TODO check 2018.10.01 add multi grid\ndef text2ids(text):\n  wenzheng.utils.text2ids.init()\n  text = filter.filter(text)\n  return to_ids(text, seg_method=FLAGS.seg_method, \n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                multi_grid=True,\n                pad=False)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/README.md",
    "content": "first sh ./gen-vocab.sh to get vocab.txt\n\nthen using like vocab-mincount.. to get vocab.5k.txt \nthen merge with all chars from vocab.txt using vocab-add-char.py to get vocab.5k.chars.txt this is used for word embedding train  \n\nthen for canyin and dianping\n\njust use ./gen-mix-seg-canyin.py  ./gen-char-seg-canyin.py ...\nnot use ./gen-seg-canyin.py for this project for we do not want to consider more words not used here  \n\ndo also for dianping and train/valid/test data  \n\nwe will use all these data as word embedding pretrain   \n\nsh ./gen-vocab-v2.sh will use simple just basic seg   \nNOTICE this is depreceated for v2\njust use same vocab as v1, v2 only diff when gen tfrecord will not feed single and will has char embedding   \n\nsince v2 word + char concat prove to be better then seg basic + single so try to further try seperate word and char embedding as V3  \nthe script ./run-noemb-v3.sh is the same as ./run-noemb-v2.sh be sure you have char_vocab.txt under tfrecord dir   \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/__init__.py",
    "content": "import projects.ai2018.sentiment.prepare.filter\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 14:44:21.024368\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('use_char', False, '')\nflags.DEFINE_integer('char_limit', 6, '')\nflags.DEFINE_integer('word_limit', 3000, '')\nflags.DEFINE_bool('use_tag', False, '')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/embeddings/fasttext/run.sh",
    "content": "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present, Facebook, Inc.\n# All rights reserved.\n#\n# This source code is licensed under the BSD-style license found in the\n# LICENSE file in the root directory of this source tree. An additional grant\n# of patent rights can be found in the PATENTS file in the same directory.\n#\n\nRESULTDIR=./\nDATADIR=./\n\nmkdir -p \"${RESULTDIR}\"\nmkdir -p \"${DATADIR}\"\n\nmake\n\n./fasttext skipgram -input \"${DATADIR}\"/text -output \"${RESULTDIR}\"/text -lr 0.025 -dim 300 \\\n  -ws 5 -epoch 10 -minCount 20 -neg 5 -loss ns -bucket 2000000 \\\n  -minn 2 -maxn 3 -thread 4 -t 1e-4 -lrUpdateRate 100\n\ncut -f 1,2 \"${DATADIR}\"/rw/rw.txt | awk '{print tolower($0)}' | tr '\\t' '\\n' > \"${DATADIR}\"/queries.txt\n\ncat \"${DATADIR}\"/queries.txt | ./fasttext print-word-vectors \"${RESULTDIR}\"/text.bin > \"${RESULTDIR}\"/vectors.txt\n\npython eval.py -m \"${RESULTDIR}\"/vectors.txt -d \"${DATADIR}\"/rw/rw.txt\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/embeddings/glove/run.sh",
    "content": "#!/bin/bash\nset -e\n\n# Makes programs, downloads sample data, trains a GloVe model, and then evaluates it.\n# One optional argument can specify the language used for eval script: matlab, octave or [default] python\n\nmake\n\n# 8 iter nan\nCORPUS=text\nVOCAB_FILE=vocab.txt\nCOOCCURRENCE_FILE=cooccurrence.bin\nCOOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin\nBUILDDIR=build\nSAVE_FILE=vectors\nVERBOSE=2\nMEMORY=4.0\nVOCAB_MIN_COUNT=20\nVECTOR_SIZE=300\nMAX_ITER=15\nWINDOW_SIZE=15\nBINARY=2\nNUM_THREADS=8\nX_MAX=10\n\necho \"$ $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\"\n$BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE\necho \"$ $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\"\n$BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE\necho \"$ $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\"\n$BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE\necho \"$ $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\"\n$BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE\n\necho \"$ python eval/python/evaluate.py\"\npython eval/python/evaluate.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/filter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   filter.py\n#        \\author   chenghuige  \n#          \\date   2018-09-14 21:55:52.069104\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\nflags.DEFINE_bool('simplify', False, '')\n\nimport sys \nimport os\n\nimport gezi\n\n\ndef filter_duplicate(text):\n  return ''.join([x for i, x in enumerate(text) if not (i < len(text) - 1 and not(x.strip()) and not(text[i + 1].strip()))])\n\ndef filter(x):\n  x = filter_duplicate(x)\n  x = gezi.filter_quota(x).replace('\\r', '\\x01').replace('\\n', '\\x02').replace('<R>', '\\x01').replace('<N>', '\\x02').replace('\\t', ' ').replace(' ', '\\x03')\n  # simplify seems not help but might help diversity\n  if FLAGS.simplify:\n    try:\n      x = gezi.to_simplify(x)\n    except Exception:\n      pass\n  # TODO if needed try to find case usefull or not　I think especally for sentiment not reading, lower is ok not loose important info like NIKE\n  x = x.lower()\n  return x\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/find-chars.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-chars.py\n#        \\author   chenghuige  \n#          \\date   2018-10-01 20:35:40.158875\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd \nfrom projects.ai2018.sentiment.prepare import filter\n\ndf = pd.read_csv('/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv')\n\nchars = set()\nfor comment in df['content']:\n  comment = filter.filter(comment)\n  for w in comment:\n    if w not in chars:\n      print(w)\n      chars.add(w)\n\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/fix-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-13 14:49:43.197787\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = set()\nfor line in sys.stdin:\n  word, count = line.rstrip('\\n').split('\\t')\n  words.add(word)\n  print(word, count, sep='\\t')\n\nchars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\nchars2 = [x.upper() for x in chars]\nchars += chars2 \n\nchars = [x for x in chars if x not in words]\n\nfor word in chars:\n  print(word, 1, sep='\\t')\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-canyin.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./raw_comment_v2.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['c{}'.format(i) for i in range(len(df))]\ncontents = df['content'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\nlabels = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['score']\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -2\n  labels.append(label)\n  \ndf2['others_overall_experience'] = labels\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./canyin.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-canyin.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-char-seg-canyin.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['content']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-char-seg-dianping.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-char-seg-train.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifiles = ['/home/gezi/data/ai2018/sentiment/train.csv',\n          '/home/gezi/data/ai2018/sentiment/valid.csv',\n          '/home/gezi/data/ai2018/sentiment/test.csv']\n\nofile = '/home/gezi/data/ai2018/sentiment/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for ifile in ifiles:\n    df = pd.read_csv(ifile)\n    for comment in df['content']:\n      if num % 10000 == 0:\n        print(num, file=sys.stderr)\n      try:\n        seg(comment, out)\n      except Exception:\n        continue\n      num += 1\n      if num == FLAGS.max_lines:\n        break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-char-seg.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'char', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.char.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-char-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-char-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 20:25:15.703398\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  word, freq = line.rstrip('\\n').split('\\t')\n  if (word.startswith('<') and word.endswith('>')) or len(word) == 1:\n    print(line, end='')\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-content.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-content.py\n#        \\author   chenghuige  \n#          \\date   2018-09-11 10:37:16.658519\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfiles = [\n         './mount/data/ai2018/sentiment/train.csv', \n         './mount/data/ai2018/sentiment/valid.csv', \n         './mount/data/ai2018/sentiment/test.csv'\n        ]\n            \n\nimport pandas as pd\nimport filter\n\nfor infile in files:\n  df = pd.read_csv(infile)\n\n  for row in df.iterrows():\n    content = filter.filter(row[1][1])\n    print(content)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-dianping.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   convert.py\n#        \\author   chenghuige  \n#          \\date   2018-10-04 09:32:00.555830\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\nimport numpy as np\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\nNUM_CLASSES = 4\n\ndf = pd.read_csv('./ratings.csv')\nprint(len(df))\n\ndf2 = pd.DataFrame()\n\nids = ['d{}'.format(i) for i in range(len(df))]\ncontents = df['comment'].values\n\ndf2['id'] = ids \ndf2['content'] = contents\nfor attr in ATTRIBUTES:\n  df2[attr] = [-3] * len(df)\n\nprint(len(df2))\n\ndef score2class(score):\n  label = -2\n  if score > 3:\n    label = 1\n  elif score == 3:\n    label = 0\n  else:\n    label = -1\n  return label  \n\nlabels = []\nlabels_env = []\nlabels_flavor = []\nlabels_service = []\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  score = row['rating']\n  score_env = row['rating_env']\n  score_flavor = row['rating_flavor']\n  score_service = row['rating_service']\n\n  labels.append(score2class(score))\n  labels_env.append(score2class(score_env))\n  labels_flavor.append(score2class(score_flavor))\n  labels_service.append(score2class(score_service))\n\n  \ndf2['others_overall_experience'] = labels\ndf2['environment_decoration'] = labels_env\ndf2['dish_taste'] = labels_flavor\ndf2['service_waiters_attitude'] = labels_service\n\ndf2 = df2[['id', 'content'] + ATTRIBUTES]\ndf2.to_csv('./dianping.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-dianping.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-mix-seg-canyin.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer('max_lines', 0, '')\nflags.DEFINE_string('vocab_', '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt', '')\n\n#assert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom wenzheng.utils import text2ids\n\nvocab = FLAGS.vocab_\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\n#import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nFLAGS.seg_method = 'basic_digit'\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\ndef seg(text, out):\n  #text = filter.filter(text)\n  words = text2ids.ids2words(text2ids_(text)) \n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/' + os.path.basename(FLAGS.vocab_).replace('.txt', '.mix.txt')\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['content']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    #try:\n    seg(comment, out)\n    #except Exception:\n    #  continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-mix-seg-dianping.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_string('vocab_', '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt', '')\n\n\n#assert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom wenzheng.utils import text2ids\n\nvocab = FLAGS.vocab_\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\n#import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nFLAGS.seg_method = 'basic_digit'\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\ndef seg(text, out):\n  #text = filter.filter(text)\n  words = text2ids.ids2words(text2ids_(text)) \n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/' + os.path.basename(FLAGS.vocab_).replace('.txt', '.mix.txt')\n\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-mix-seg-train.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_string('vocab_', '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt', '')\n\n\n#assert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom wenzheng.utils import text2ids\n\nvocab = FLAGS.vocab_\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\n#import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nFLAGS.seg_method = 'basic_digit'\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\ndef seg(text, out):\n  #text = filter.filter(text)\n  words = text2ids.ids2words(text2ids_(text)) \n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\n\nofile = '/home/gezi/data/ai2018/sentiment/' + os.path.basename(FLAGS.vocab_).replace('.txt', '.mix.txt')\n\nifiles = ['/home/gezi/data/ai2018/sentiment/train.csv',\n          '/home/gezi/data/ai2018/sentiment/valid.csv',\n          '/home/gezi/data/ai2018/sentiment/test.csv']\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for ifile in ifiles:\n    df = pd.read_csv(ifile)\n    for comment in df['content']:\n      if num % 10000 == 0:\n        print(num, file=sys.stderr)\n      try:\n        seg(comment, out)\n      except Exception:\n        continue\n      num += 1\n      if num == FLAGS.max_lines:\n        break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-08-29 15:20:35.282947\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/ai2018/sentiment/valid.csv', '') \nflags.DEFINE_string('vocab_', './mount/temp/ai2018/sentiment/tfrecord/vocab.txt', 'vocabulary txt file')\n#flags.DEFINE_string('seg_method', 'basic', '') \nflags.DEFINE_bool('binary', False, '')\nflags.DEFINE_integer('threads', None, '')\nflags.DEFINE_integer('num_records_', 7, '10 or 5?')\nflags.DEFINE_integer('start_index', 0, 'set it to 1 if you have valid file which you want to put in train as fold 0')\nflags.DEFINE_bool('use_fold', True, '')\nflags.DEFINE_bool('augument', False, '')\n\nimport six\nimport traceback\nfrom sklearn.utils import shuffle\nimport numpy as np\nimport glob\nimport json\nimport pandas as pd\n\nimport jieba.posseg\n\nfrom gezi import Vocabulary\nimport gezi\nfrom gezi import melt\n\nfrom text2ids import text2ids as text2ids_\n\nimport wenzheng\nfrom wenzheng.utils import text2ids\n\nimport config\nfrom projects.ai2018.sentiment.prepare import filter\n\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\ntotal_words = Value('i', 0)\n\ndf = None\n\nvocab = None\nchar_vocab = None\ntag_vocab = None\n\ndef get_mode(path):\n  mode = 'train'\n  if 'train' in path:\n    mode ='train'\n  elif 'valid' in path:\n    mode = 'train'\n  elif 'test' in path:\n    mode = 'test'\n  elif '.pm' in path:\n    mode = 'pm'\n  elif 'trans' in path:\n    mode = 'trans' \n  elif 'deform' in path:\n    mode = 'deform'\n  elif 'canyin' in path:\n    mode = 'canyin'\n  elif 'dianping' in path:\n    mode = 'dianping'\n  if FLAGS.augument:\n    mode = 'aug.' + mode\n  return mode\n\ndef build_features(index):\n  mode = get_mode(FLAGS.input)\n\n  start_index = FLAGS.start_index\n\n  out_file = os.path.dirname(FLAGS.vocab) + '/{0}/{1}.record'.format(mode, index + start_index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(df)\n  num_records = FLAGS.num_records_ \n  if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n    num_records = 1\n  start, end = gezi.get_fold(total, num_records, index)\n\n  print('total', total, 'infile', FLAGS.input, 'out_file', out_file)\n\n  max_len = 0\n  max_num_ids = 0\n  num = 0\n  with melt.tfrecords.Writer(out_file) as writer:\n    for i in range(start, end):\n      try:\n        row = df.iloc[i]\n        id = str(row[0])\n\n        if start_index > 0:\n          id == 't' + id\n\n        content = row[1] \n\n        content = filter.filter(content)\n\n        label = list(row[2:])\n        \n        #label = [x + 2 for x in label]\n        #num_labels = len(label)\n\n        content_ids, words = text2ids_(content, return_words=True)\n        assert len(content_ids) == len(words)\n\n        if len(content_ids) > max_len:\n          max_len = len(content_ids)\n          print('max_len', max_len)\n\n        if len(content_ids) > FLAGS.word_limit:\n          print(id, content)\n          if mode not in ['test', 'valid']:\n            continue \n\n        if len(content_ids) < 5 and mode not in ['test', 'valid']:\n          continue\n\n        content_ids = content_ids[:FLAGS.word_limit]\n        words = words[:FLAGS.word_limit]\n\n        if FLAGS.use_char:\n          chars = [list(word) for word in words]\n          char_ids = np.zeros([len(content_ids), FLAGS.char_limit], dtype=np.int32)\n          \n          vocab_ = char_vocab if char_vocab else vocab\n\n          for i, token in enumerate(chars):\n            for j, ch in enumerate(token):\n              if j == FLAGS.char_limit:\n                break\n              char_ids[i, j] = vocab_.id(ch)\n\n          char_ids = list(char_ids.reshape(-1))\n        else:\n          char_ids = [0]\n\n        if tag_vocab:\n          l = list(jieba.posseg.cut(content))\n          tags = [tag for word, tag in l]\n          \n          #assert len(tags) == len(content_ids)\n          tags = tags[:FLAGS.word_limit]\n          # print(len(words), len(tags), len(content))\n          # print(content)\n          # print(list(zip(range(len(words)), words)))\n          # print(list(zip(range(len(l)),[word for word, tag in l])))\n          for i in range(len(tags)):\n            if words[i] == '\\x01' or words[i] == '\\x02' or words[i] == '\\x03':\n              tags[i] = 'sep'\n          tag_ids = [tag_vocab.id(x) for x in tags]\n          #print(content, list(zip(words, tag_ids, tags)))\n          #exit(0)\n        else:\n          tag_ids = [0]\n\n        feature = {\n                    'id': melt.bytes_feature(id),\n                    'label': melt.int64_feature(label),\n                    'content':  melt.int64_feature(content_ids),\n                    'content_str': melt.bytes_feature(content), \n                    'chars': melt.int64_feature(char_ids),\n                    'source': melt.bytes_feature(mode), \n                  }\n\n        # TODO currenlty not get exact info wether show 1 image or 3 ...\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        if num % 1000 == 0:\n          print(num)\n\n        writer.write(record)\n        num += 1\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n        global total_words\n        with total_words.get_lock():\n          total_words.value += len(content_ids)\n      except Exception:\n        print(traceback.format_exc(), file=sys.stderr)\n        pass\n\n\ndef main(_):  \n  assert FLAGS.use_fold\n  text2ids.init(FLAGS.vocab_)\n  global vocab, char_vocab, tag_vocab\n  vocab = text2ids.vocab\n  char_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'char_vocab.txt')\n  if os.path.exists(char_vocab_file):\n    char_vocab = Vocabulary(char_vocab_file)\n  tag_vocab_file = FLAGS.vocab_.replace('vocab.txt', 'tag_vocab.txt')\n  if os.path.exists(tag_vocab_file):\n    tag_vocab = Vocabulary(tag_vocab_file)\n\n  print('to_lower:', FLAGS.to_lower, 'feed_single_en:', FLAGS.feed_single_en, 'seg_method', FLAGS.seg_method)\n  print(text2ids.ids2text(text2ids_('傻逼脑残B')))\n  print(text2ids.ids2text(text2ids_('喜欢玩孙尚香的加我好友：2948291976')))\n\n  global df\n  df = pd.read_csv(FLAGS.input, lineterminator='\\n')\n\n  mode = get_mode(FLAGS.input)\n\n  \n  pool = multiprocessing.Pool()\n\n  if mode.split('.')[-1] in ['valid', 'test', 'dev', 'pm'] or 'valid' in FLAGS.input:\n    FLAGS.num_records_ = 1\n\n  print('num records file to gen', FLAGS.num_records_)\n\n  #FLAGS.num_records_ = 1\n\n  pool.map(build_features, range(FLAGS.num_records_))\n  pool.close()\n  pool.join()\n\n  # for i in range(FLAGS.num_records_):\n  #   build_features(i)\n\n  # for safe some machine might not use cpu count as default ...\n  print('num_records:', counter.value)\n\n  os.system('mkdir -p %s/%s' % (os.path.dirname(FLAGS.vocab_), mode))\n  out_file = os.path.dirname(FLAGS.vocab_) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\n  print('mean words:', total_words.value / counter.value)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-seg-canyin.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd \n\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/raw_comment_v2.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/sentiment_classify_data/seg.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['content']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-seg-dianping.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nfrom wenzheng.utils import text2ids\n\nvocab = '/home/gezi/temp/ai2018/sentiment/vocab.5k.chars.txt'\ntext2ids.init(vocab)\n\nfrom text2ids import text2ids as text2ids_ \n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-seg-train.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description   seg using dianping corpus /home/gezi/data/ai2018/sentiment/dianping/ratings.csv \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('seg_method', 'basic', '')\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\n\nassert FLAGS.seg_method\n\nimport sys,os\nimport numpy as np\nimport melt\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\n\nimport gezi\n\nimport pandas as pd\nfrom projects.ai2018.sentiment.prepare import filter\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\n\ndef seg(text, out):\n  text = filter.filter(text)\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  words = [x.strip() for x in words if x.strip()]\n  if words:\n    print(' '.join(words), file=out)\n\nifile = '/home/gezi/data/ai2018/sentiment/dianping/ratings.csv'\ndf = pd.read_csv(ifile)\n\nofile = '/home/gezi/data/ai2018/sentiment/dianping/seg.txt'\n\nwith open(ofile, 'w') as out:\n  num = 0\n  for comment in df['comment']:\n    if num % 10000 == 0:\n      print(num, file=sys.stderr)\n    try:\n      seg(comment, out)\n    except Exception:\n      continue\n    num += 1\n    if num == FLAGS.max_lines:\n      break\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-test.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-train.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-trans.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-trans.py\n#        \\author   chenghuige  \n#          \\date   2018-10-03 22:43:06.305917\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport pandas as pd\nfrom tqdm import tqdm\n\ndf = pd.read_csv('./train.csv')\n\ncomments = {}\nfor line in open('./train.en.txt'):\n  try:\n    id, comment = line.rstrip().split('\\t')\n    comments[id] = comment\n  except Exception:\n    pass\n\nprint(len(comments))\n\nnum_modify = 0\nnum_bads = 0\nfor i in tqdm(range(len(df)), ascii=True):\n  row = df.iloc[i]\n  id = row['id']\n  id = str(id)\n  if id in comments: \n    if len(comments[id].replace(' ', '')) < len(row['content'].replace(' ', '')) * 1.5 and len(comments[id].replace(' ', '')) > len(row['content'].replace(' ', '')) * 0.7:\n      df.loc[i,'content'] = comments[id]\n      num_modify += 1\n    else:\n      print('bad translate:', comments[id])\n      print('ori', row['content'])\n      num_bads += 1\n  \nprint(num_modify, num_bads)\ndf.to_csv('./trans.en.csv', index=False, encoding=\"utf_8_sig\")\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-trans.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv \n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-valid.sh",
    "content": "python ./gen-records.py\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab-bseg-basic-v2.sh",
    "content": "export BSEG=1 \nexport LD_LIBRARY_PATH=./lib:./:$LD_LIBRARY_PATH \npython gen-content.py | python gen-vocab.py --seg_method='basic' --vocab_name='vocab.bseg.basic.v2' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab-bseg-basic.sh",
    "content": "export BSEG=1 \nexport LD_LIBRARY_PATH=./lib:./:$LD_LIBRARY_PATH \npython gen-content.py | python gen-vocab.py --seg_method='basic_single_all' --vocab_name='vocab.bseg.basic' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab-bseg-phrase-v2.sh",
    "content": "export BSEG=1 \nexport LD_LIBRARY_PATH=./lib:./:$LD_LIBRARY_PATH \npython gen-content.py | python gen-vocab.py --seg_method='phrase' --vocab_name='vocab.bseg.phrase.v2' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab-bseg-phrase.sh",
    "content": "export BSEG=1 \nexport LD_LIBRARY_PATH=./lib:./:$LD_LIBRARY_PATH \npython gen-content.py | python gen-vocab.py --seg_method='phrase_single_all' --vocab_name='vocab.bseg.phrase' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab-v2.sh",
    "content": "python gen-content.py | python gen-vocab.py --seg_method='basic' --vocab_name='vocab.v2' --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   to_flickr_caption.py\n#        \\author   chenghuige  \n#          \\date   2016-07-11 16:29:27.084402\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO could do segment parallel @TODO\nnow single thread... slow\n\"\"\"\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 0, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\", 0, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"add_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_boolean(\"save_count_info\", True, \"save count info to bin\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/ai2018/sentiment/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\nflags.DEFINE_string('seg_method', 'basic_single_all', '')\n\nassert FLAGS.most_common > 0 or FLAGS.min_count > 0\nassert FLAGS.seg_method\n\nfrom gezi import WordCounter \n\ncounter = WordCounter(\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\nimport sys,os\n#reload(sys)\n#sys.setdefaultencoding('utf8')\nimport numpy as np\n\nfrom gezi import Segmentor\nsegmentor = Segmentor()\nprint(segmentor, file=sys.stderr)\n\nimport gezi\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\nprint('seg_method:', FLAGS.seg_method, file=sys.stderr)\nprint('min_count:', FLAGS.min_count, 'most_common:', FLAGS.most_common)\n\nnum = 0\nfor line in sys.stdin:\n  if num % 10000 == 0:\n    print(num, file=sys.stderr)\n  text = line.rstrip()\n  #text = text.lower()\n  words = segmentor.Segment(text, FLAGS.seg_method)\n  if num % 10000 == 0:\n    print(text, '|'.join(words), len(words), file=sys.stderr)\n  counter.add(START_WORD)\n  for word in words:\n    counter.add(word)\n    if word.isdigit():\n      counter.add('<NUM>')\n  counter.add(END_WORD)\n  num += 1\n\n  if num == FLAGS.max_lines:\n    break\n\ncounter.add(START_WORD)\n\nprint(FLAGS.out_dir, file=sys.stderr)\nvocab_name = FLAGS.vocab_name or 'vocab'\ncounter.save(FLAGS.out_dir + '/%s.txt' % vocab_name)\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/gen-vocab.sh",
    "content": "python gen-content.py | python gen-vocab.py --min_count=1\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('input_vocab', './mount/temp/ai2018/sentiment/tfrecord/vocab.ori.txt', '')\nflags.DEFINE_string('dir', './mount/temp/ai2018/sentiment/tfrecord/', '')\nflags.DEFINE_string('emb', './mount/temp/ai2018/sentiment/vectors.txt', '')\nflags.DEFINE_integer('min_count', 20, '')\nflags.DEFINE_integer('most_common', None, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                         scratch add all with min train count and try merge glove,\n                                         only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  print('emb', FLAGS.emb)\n  input_vocab = FLAGS.input_vocab\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if word in embedding_dict:\n            emb_mat.append(np.array(embedding_dict[word]))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run-char.sh",
    "content": "python ./merge-emb.py \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=1 --start_index=1 --seg_method=char\npython ./gen-records.py  --simplify=1 --seg_method=char\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=1 --seg_method=char\n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=0 --augument=1 --start_index=1 --seg_method=char\npython ./gen-records.py --simplify=0 --augument=1 --seg_method=char\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=0 --augument=1 --seg_method=char\n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --simplify=0 --start_index=1 --seg_method=char\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv --simplify=0 --start_index=0 --seg_method=char\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv --simplify=0 --start_index=0 --seg_method=char\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run-noemb-bseg-basic-v2.sh",
    "content": "export BSEG=1 \nexport LD_LIBRARY_PATH=./lib:./:$LD_LIBRARY_PATH \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=1 --start_index=1 --seg_method=basic_digit --feed_single=0\npython ./gen-records.py  --simplify=1 --seg_method=basic_digit --feed_single=0\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=1 --seg_method=basic_digit --feed_single=0\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=0 --augument=1 --start_index=1 --seg_method=basic_digit\n#python ./gen-records.py --simplify=0 --augument=1 --seg_method=basic_digit\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=0 --augument=1 --seg_method=basic_digit \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --simplify=1 --start_index=1 --seg_method=basic_digit  --feed_single=0\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run-noemb-bseg-basic.sh",
    "content": "export BSEG=1 \nexport LD_LIBRARY_PATH=./lib:./:$LD_LIBRARY_PATH \n\npython ./gen-records.py  --simplify=1 --seg_method=basic_digit --feed_single=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=1 --seg_method=basic_digit --feed_single=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=1 --start_index=1 --seg_method=basic_digit --feed_single=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=0 --augument=1 --start_index=1 --seg_method=basic_digit\n#python ./gen-records.py --simplify=0 --augument=1 --seg_method=basic_digit\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=0 --augument=1 --seg_method=basic_digit \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --simplify=1 --start_index=1 --seg_method=basic_digit  --feed_single=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run-noemb-v2.sh",
    "content": "python ./gen-records.py  --simplify=1 --seg_method=basic --feed_single=0 --use_char=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=1 --start_index=1 --seg_method=basic --feed_single=0 --use_char=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=1 --seg_method=basic --feed_single=0 --use_char=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=0 --augument=1 --start_index=1 --seg_method=basic_digit\n#python ./gen-records.py --simplify=0 --augument=1 --seg_method=basic_digit\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=0 --augument=1 --seg_method=basic_digit \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --simplify=1 --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run-noemb-v3.sh",
    "content": "python ./gen-records.py  --simplify=1 --seg_method=basic --feed_single=0 --use_char=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=1 --start_index=1 --seg_method=basic --feed_single=0 --use_char=1\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=1 --seg_method=basic --feed_single=0 --use_char=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=0 --augument=1 --start_index=1 --seg_method=basic_digit\n#python ./gen-records.py --simplify=0 --augument=1 --seg_method=basic_digit\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=0 --augument=1 --seg_method=basic_digit \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --simplify=1 --start_index=1 --seg_method=basic  --feed_single=0 --use_char=1\n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run-noemb.sh",
    "content": "python ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=1 --start_index=1 --seg_method=basic_digit\npython ./gen-records.py  --simplify=1 --seg_method=basic_digit\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=1 --seg_method=basic_digit\n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/train.csv --simplify=0 --augument=1 --start_index=1 --seg_method=basic_digit\npython ./gen-records.py --simplify=0 --augument=1 --seg_method=basic_digit\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/test.csv --simplify=0 --augument=1 --seg_method=basic_digit \n\npython ./gen-records.py --input ./mount/data/ai2018/sentiment/trans.en.csv --simplify=0 --start_index=1 --seg_method=basic_digit  \n\n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/sentiment_classify_data/comment_raw_v2/canyin.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n#python ./gen-records.py --input ./mount/data/ai2018/sentiment/dianping/dianping.csv --simplify=0 --start_index=0 --seg_method=basic_digit \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/run.sh",
    "content": "python ./merge-emb.py \n\nsh ./run-noemb.sh\n"
  },
  {
    "path": "projects/ai2018/sentiment/prepare.v2/text2ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2018-09-18 12:18:31.627281\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('feed_single_en', True, '')\nflags.DEFINE_bool('feed_single', True, '')\nflags.DEFINE_bool('to_lower', True, '')\n\nimport sys \nimport os\n\nfrom projects.ai2018.sentiment.prepare import filter\nfrom wenzheng.utils.text2ids import text2ids as to_ids\nimport wenzheng\n  \n# TODO check 2018.10.01 add multi grid\ndef text2ids(text, return_words=False):\n  wenzheng.utils.text2ids.init()\n  text = filter.filter(text)\n  return to_ids(text, \n                seg_method=FLAGS.seg_method, \n                feed_single=FLAGS.feed_single,\n                feed_single_en=FLAGS.feed_single_en,\n                to_lower=FLAGS.to_lower,\n                norm_digit=False,\n                multi_grid=True,\n                pad=False,\n                return_words=return_words)\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/read-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   inference.py\n#        \\author   chenghuige  \n#          \\date   2018-02-05 20:05:25.123740\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/temp/ai2018/sentiment/tfrecord/valid/*record,', '')\nflags.DEFINE_integer('batch_size_', 512, '')\nflags.DEFINE_string('type', 'debug', '')\nflags.DEFINE_string('base', './mount/temp/ai2018/sentiment/tfrecord/', '')\n#flags.DEFINE_integer('unk_id', 1, '')\n#flags.DEFINE_integer('fold', None, '') \nflags.DEFINE_bool('dump_valid', True, '')\nflags.DEFINE_bool('dump_test', True, '')\n\nimport tensorflow as tf\ntf.enable_eager_execution()\n\nimport sys, os\nfrom sklearn import metrics\nimport pandas as pd \nimport numpy as np\nimport gezi\n\n\nimport pickle\n\nfrom wenzheng.utils import ids2text\n\nimport melt\nlogging = melt.logging\nfrom dataset import Dataset\n\nfrom tqdm import tqdm\n\n# TODO by default save all ? so do not need to change the code ? \n# _asdict() https://stackoverflow.com/questions/26180528/python-named-tuple-to-dictionary\n# err... valid and test data share same id...\ndef deal(dataset, infos):\n  for x, _ in tqdm(dataset, ascii=True):\n    for key in x:\n      x[key] = x[key].numpy()\n      if type(x[key][0]) == bytes:\n        x[key] = gezi.decode(x[key])\n    ids = x['id']\n    for j in range(len(ids)):\n      infos[ids[j]] = {}\n      for key in x:\n        infos[ids[j]][key] = x[key][j]\n\ndef main(_):\n\n  base = FLAGS.base\n  logging.set_logging_path('./mount/tmp/')\n  vocab_path = f'{base}/vocab.txt'\n  ids2text.init(vocab_path)\n  FLAGS.vocab = f'{base}/vocab.txt'\n\n  # FLAGS.length_index = 2\n  # FLAGS.buckets = '100,400'\n  # FLAGS.batch_sizes = '64,64,32'\n\n  input_ = FLAGS.input \n  if FLAGS.type == 'test':\n    input_ = input_.replace('valid', 'test')\n\n  inputs = gezi.list_files(input_)\n  inputs.sort()\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n\n  if FLAGS.type == 'debug':\n    print('type', FLAGS.type, 'inputs', inputs, file=sys.stderr)\n\n    dataset = Dataset('valid')\n    dataset = dataset.make_batch(FLAGS.batch_size_, inputs)\n\n    print('dataset', dataset)\n\n    timer = gezi.Timer('read record')\n    for i, (x, y) in enumerate(dataset):\n      # if i % 10 == 1:\n      #   print(x['id'])\n      #   print(x['content'][0])\n      #   print(ids2text.ids2text(x['content'][0], sep='|'))\n      #   print(x['content'])\n      #   print(type(x['id'].numpy()[0]) == bytes)\n      #   break\n      x['id'] = gezi.decode(x['id'].numpy())\n      x['content_str'] = gezi.decode(x['content_str'].numpy())\n      for j, id in enumerate(x['id']):\n        if id == '573':\n          print(id, x['content_str'][j])\n  elif FLAGS.type == 'dump':\n    valid_infos = {}\n    test_infos = {}\n    # TODO notice train and valid also share ids.. so valid only save 0 is ok...\n    # 120000 doc but first 15000 train duplicate id with valid so only save valid result for those ids currently \n    if FLAGS.dump_valid:\n      inputs = gezi.list_files(f'{base}/train/*record')\n      dataset = Dataset('valid')\n      dataset = dataset.make_batch(1, inputs)\n      deal(dataset, valid_infos)\n      print('after valid', len(valid_infos))\n\n      for key in valid_infos:\n        print(valid_infos[key])\n        print(ids2text.ids2text(valid_infos[key]['content']))\n        break\n\n      ofile = f'{base}/info.pkl'\n      with open(ofile, 'wb') as out:\n        pickle.dump(valid_infos, out)  \n\n      del valid_infos\n\n    if FLAGS.dump_test:\n      inputs = gezi.list_files(f'{base}/test/*record')\n      dataset = Dataset('test')\n      dataset = dataset.make_batch(1, inputs)\n      deal(dataset, test_infos)\n      print('after test', len(test_infos))\n\n      ofile = ofile.replace('.pkl', '.test.pkl')  \n      with open(ofile, 'wb') as out:\n        pickle.dump(test_infos, out)\n      for key in test_infos:\n        print(test_infos[key])\n        print(ids2text.ids2text(test_infos[key]['content']))\n        break\n  elif FLAGS.type == 'show_info':\n    valid_infos = pickle.load(open(f'{base}/info.pkl', 'rb'))\n    lens = [len(valid_infos[key]['content']) for key in valid_infos]\n    unks = [list(valid_infos[key]['content']).count(FLAGS.unk_id) for key in valid_infos]\n    print('num unks per doc:', sum(unks) / len(valid_infos))\n    print('num doc with unk ratio:', len([x for x in unks if x != 0]) / len(unks)) \n    print('un unk tokens ratio:', sum(unks) / sum(lens))\n    print('len max:', np.max(lens))\n    print('len min:', np.min(lens))\n    print('len mean:', np.mean(lens)) \n    print('num docs:', len(valid_infos))\n\n    num_show = 0\n    for key in valid_infos:\n      if list(valid_infos[key]['content']).count(FLAGS.unk_id) > 0:\n        print(valid_infos[key])\n        print(ids2text.ids2text(valid_infos[key]['content']))\n        num_show += 1\n        if num_show > 5:\n          break\n\n    del valid_infos\n    print('--------------for test info:')\n    test_infos = pickle.load(open(f'{base}/info.test.pkl', 'rb'))\n    lens = [len(test_infos[key]['content']) for key in test_infos]\n    unks = [list(test_infos[key]['content']).count(FLAGS.unk_id) for key in test_infos]\n    print('num unks per doc:', sum(unks) / len(test_infos))\n    print('num doc with unk ratio:', len([x for x in unks if x != 0]) / len(test_infos)) \n    print('un unk tokens ratio:', sum(unks) / sum(lens))\n    print('len max:', np.max(lens))\n    print('len min:', np.min(lens))\n    print('len mean:', np.mean(lens))\n    print('num docs:', len(test_infos))\n\n    num_show = 0\n    for key in test_infos:\n      if list(test_infos[key]['content']).count(FLAGS.unk_id) > 0:\n        print(test_infos[key])\n        print(ids2text.ids2text(test_infos[key]['content']))\n        num_show += 1\n        if num_show > 5:\n          break\n  else:\n    raise ValueError(FLAGS.type)\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/cp.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   infer.py\n#        \\author   chenghuige  \n#          \\date   2018-11-12 23:25:26.255789\n#   \\Description  \n# ==============================================================================\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob \nimport gezi \n\nensembel_dir = '/home/gezi/temp/ai2018/sentiment/p40/model.csv/v11/submit/'\nmodel_dir = '/home/gezi/data3/v11/submit/'\n#ensembel_dir = model_dir\n\nvalid_files = glob.glob('%s/*.valid.csv' % ensembel_dir)\ninfer_files = glob.glob('%s/*.infer.csv' % ensembel_dir)\n\nvalid_files = [x for x in valid_files if not 'ensemble' in x]\ninfer_files = [x for x in infer_files if not 'ensemble' in x]\n\n#assert len(valid_files) == len(infer_files)\nfor i, file_ in enumerate(valid_files):\n  dest_file = file_.replace('.valid.csv', '.infer.csv')\n  dest_file = os.path.join(model_dir, os.path.basename(dest_file))\n  command = f'cp {dest_file} {ensembel_dir}'\n  print(i, '-----', command)\n  os.system(command)\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/example.sh",
    "content": "#SRC=word.mix.ft c0 sh ./train/v2/torch.mreader.1hop.sh\nSRC=word.mix.glove c0 sh ./train/v2/rnet.sh\n\n#SRC=word.tx.ftchar c1 sh ./train/v2/torch.mreader.1hop.wchar.pos.sh  \nSRC=word.stanford.glove c1 sh ./train/v2/torch.mreader.1hop.wchar.pos.sh  \n#SRC=word.glove c2 sh ./train/v2/torch.mreader.1hop.wchar.pos.sh  \nSRC=word.ft c2 sh ./train/v2/torch.mreader.1hop.wchar.pos.sh  \n#SRC=word.stanford.tx.ftchar c3 sh ./train/v2/torch.mreader.1hop.wchar.pos.ner.sh\nSRC=char.glove c3 sh ./train/v2/torch.mreader.1hop.sh\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/gen-infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   infer.py\n#        \\author   chenghuige  \n#          \\date   2018-11-12 23:25:26.255789\n#   \\Description  \n# ==============================================================================\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob \nimport gezi \n\nensembel_dir = '/home/gezi/temp/ai2018/sentiment/p40/model.csv/v11/submit.testa/'\n#model_dir = '/home/gezi/data3/v11/submit/'\n#model_dir = '/home/gezi/data3/v11/lstm-or-sp20w/submit/' \n#model_dir = '/home/gezi/data3/v11/lstm-or-sp20w/2/submit/' \n#model_dir = '/home/gezi/data3/v11/nbert/' \n#model_dir = '/home/gezi/data3/v11/lstm-or-sp20w/3/submit/' \n#model_dir = '/home/gezi/data3/v11/nbert2/' \n#model_dir = '/home/gezi/data3/v11/bert3/' \nmodel_dir = '/home/gezi/data3/v11/submit.1115.2.2.2/slim/'\nensembel_dir = model_dir\n\nvalid_files = glob.glob('%s/*.valid.csv' % ensembel_dir)\ninfer_files = glob.glob('%s/*.infer.csv' % ensembel_dir)\n\nvalid_files = [x for x in valid_files if not 'ensemble' in x]\ninfer_files = [x for x in infer_files if not 'ensemble' in x]\n\n#assert len(valid_files) == len(infer_files)\nfor i, file_ in enumerate(valid_files):\n  file_ = os.path.basename(file_)\n  file_ = gezi.strip_suffix(file_, '.valid.csv') \n  src, model = file_.split('_', 1)\n  cell = 'gru'\n  if 'lstm' in model:\n    cell = 'lstm'\n\n  model = model.replace('.gru', '').replace('.lstm', '')\n\n  pattern = '_model.ckpt-'\n  if pattern in model:\n    script = model.split(pattern)[0]\n  else:\n    pattern = '_ckpt-'\n    script = model.split(pattern)[0]\n\n  #command = f'MODE=test INFER=1 SRC={src} CELL={cell} sh ./infer/v11/{script}.sh {model_dir}{file_}'\n  command = f'MODE=test INFER=1 SRC={src} CELL={cell} sh ./train/v11/{script}.sh {model_dir}{file_}'\n  print(command)\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/infer-example.sh",
    "content": "# infer for tf models just use graph mode for safe\nMODE=test INFER=1 sh ./infer/v11/tf.word.rnetv2.lm.sh /home/gezi/temp/ai2018/sentiment/model/v11/0/word.jieba.ft/tf.word.rnetv2.gru.lm/epoch/model.ckpt-5.00-16410 \n# infer for pytorch models  \nMODE=test INFER=1 sh ./train/v10/torch.word.mreader.nopad.lm.unkaug.sh /home/gezi/temp/ai2018/sentiment/model/v10/0/word.jieba.ft/torch.word.mreader.nopad.lm.gru.unkaug/ckpt/ckpt-6 \n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   infer.py\n#        \\author   chenghuige  \n#          \\date   2018-11-12 23:25:26.255789\n#   \\Description  \n# ==============================================================================\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport glob \nimport gezi \n\nensembel_dir = '/home/gezi/temp/ai2018/sentiment/p40/model.csv/v11/submit.testa/'\nmodel_dir = '/home/gezi/data3/v11/submit/'\n#ensembel_dir = model_dir\n\nvalid_files = glob.glob('%s/*.valid.csv' % ensembel_dir)\ninfer_files = glob.glob('%s/*.infer.csv' % ensembel_dir)\n\nvalid_files = [x for x in valid_files if not 'ensemble' in x]\ninfer_files = [x for x in infer_files if not 'ensemble' in x]\n\n#gpu = sys.argv[1]\n\n#assert len(valid_files) == len(infer_files)\nprint('num valid fiels', len(valid_files))\n\nnum_infers = 0\nfor i, file_ in enumerate(valid_files):\n  dest_file = file_.replace('.valid.csv', '.infer.csv')\n  dest_file = os.path.join(model_dir, os.path.basename(dest_file))\n  print(dest_file)\n  #dest_file = file_\n  #if os.path.exists(dest_file) and gezi.get_unmodify_minutes(dest_file) < 60 * 24:\n  #if os.path.exists(dest_file) and gezi.get_unmodify_minutes(dest_file) < 0.0000001:\n  #  print(i, dest_file, 'newly generated', gezi.get_unmodify_minutes(dest_file) / 60, 'hours')\n  #if os.path.exists(dest_file) and len(pd.read_csv(dest_file)) == 2e5:\n  need_infer = True\n  if os.path.exists(dest_file):\n    df = pd.read_csv(dest_file) \n    if len(df) == 200000:\n      df = df.sort_values('id')\n      df.to_csv(dest_file, index=False, encoding=\"utf_8_sig\")\n      print(i, dest_file, 'already exists with 200000 lines, you need to delete first if want to update')\n      need_infer = False\n  if need_infer:\n    num_infers += 1 \n    file_ = os.path.basename(file_)\n    file_ = gezi.strip_suffix(file_, '.valid.csv') \n    src, model = file_.split('_', 1)\n    cell = 'gru'\n    if 'lstm' in model:\n      cell = 'lstm'\n\n    model = model.replace('.gru', '').replace('.lstm', '')\n\n    pattern = '_model.ckpt-'\n    if pattern in model:\n      script = model.split(pattern)[0]\n    else:\n      pattern = '_ckpt-'\n      script = model.split(pattern)[0]\n\n    command = f'MODE=test INFER=1 SRC={src} CELL={cell} sh ./infer/v11/{script}.sh {model_dir}{file_}'\n    #command = f'MODE=valid INFER=2 SRC={src} CELL={cell} c{gpu} sh ./infer/v11/{script}.sh {model_dir}{file_}'\n    print(i, '-------', command)\n    os.system(command) \n  \n  command = f'cp {dest_file} {ensembel_dir}'\n  print(i, '-----', command)\n  os.system(command)\n  command = f'cp {dest_file}.debug {ensembel_dir}' \n  print(i, '-----', command)\n  os.system(command)\n\nprint('num_infers', num_infers)\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/infer.sh_0",
    "content": "MODE=test INFER=1 SRC=word.sp20w.ft CELL=gru sh ./train/v11/tf.word.rnet.sh /home/gezi/data3/v11/lstm-or-sp20w/2/submit/word.sp20w.ft_tf.word.rnet.gru_model.ckpt-8.00-26256\nMODE=test INFER=1 SRC=word.sp20w.ft CELL=gru sh ./train/v11/tf.word.rnetv2.nolatt.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/2/submit/word.sp20w.ft_tf.word.rnetv2.nolatt.gru.unkaug_model.ckpt-10.00-32820\nMODE=test INFER=1 SRC=word.sp20w.ft CELL=gru sh ./train/v11/tf.word.rnet.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/2/submit/word.sp20w.ft_tf.word.rnet.gru.unkaug_model.ckpt-16.00-52512\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/infer.sh_1",
    "content": "MODE=test INFER=1 SRC=word.sp20w.ft CELL=gru sh ./train/v11/tf.word.rnet.nolatt.sh /home/gezi/data3/v11/lstm-or-sp20w/2/submit/word.sp20w.ft_tf.word.rnet.gru.nolatt_model.ckpt-12.00-39384\nMODE=test INFER=1 SRC=word.sp20w.ft CELL=gru sh ./train/v11/tf.word.rnetv2.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/2/submit/word.sp20w.ft_tf.word.rnetv2.gru.unkaug_model.ckpt-15.00-49230\nMODE=test INFER=1 SRC=word.sp20w.ft CELL=gru sh ./train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.es.sh /home/gezi/data3/v11/lstm-or-sp20w/2/submit/word.sp20w.ft_torch.word.mreader.nopad.lm.gru.bertopt.nolatt.unkaug.hidden400.es_ckpt-10\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/infer.sh_2",
    "content": "MODE=test INFER=1 SRC=mix.jieba.ft CELL=lstm sh ./train/v11/torch.mix.mreader.lm.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/mix.jieba.ft_torch.mix.mreader.lm.lstm_ckpt-11\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden300.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_torch.word.mreader.nopad.lm.lstm.nolatt.unkaug.hidden300_ckpt-9\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_torch.word.mreader.nopad.lm.lstm.bertopt.nolatt.unkaug.hidden300_ckpt-7\nMODE=test INFER=1 SRC=word.sp10w.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp10w.ft_torch.word.mreader.nopad.lm.lstm.nolatt.unkaug_ckpt-7\nMODE=test INFER=1 SRC=word.sp20w.glove CELL=lstm sh ./train/v11/tf.word.rnetv2.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp20w.glove_tf.word.rnetv2.lstm.unkaug_model.ckpt-8.00-26256\nMODE=test INFER=1 SRC=word.sp10w.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.bertopt.unkaug.hidden300.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp10w.ft_torch.word.mreader.nopad.lm.lstm.bertopt.unkaug.hidden300_ckpt-5\nMODE=test INFER=1 SRC=word.sp1w.ft CELL=lstm sh ./train/v11/tf.word.rnet.nolatt.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp1w.ft_tf.word.rnet.lstm.nolatt_model.ckpt-10.00-32820\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_torch.word.mreader.nopad.lm.lstm.unkaug_ckpt-13\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_torch.word.mreader.nopad.lm.lstm.bertopt.nolatt.unkaug.hidden400_ckpt-6\nMODE=test INFER=1 SRC=word.sp10w.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp10w.ft_torch.word.mreader.nopad.lm.lstm.bertopt.nolatt.unkaug.hidden300_ckpt-6\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/infer.sh_3",
    "content": "MODE=test INFER=1 SRC=word.sp10w.ft CELL=lstm sh ./train/v11/tf.word.rnet.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp10w.ft_tf.word.rnet.lstm_model.ckpt-5.00-16410\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden400.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_torch.word.mreader.nopad.lm.lstm.nolatt.unkaug.hidden400_ckpt-7\nMODE=test INFER=1 SRC=word.sp10w.ft CELL=lstm sh ./train/v11/tf.word.rnet.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp10w.ft_tf.word.rnet.lstm.unkaug_model.ckpt-5.00-16410\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/tf.word.rnet.nolatt.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_tf.word.rnet.lstm.nolatt_model.ckpt-5.00-16410\nMODE=test INFER=1 SRC=word.sp20w.ft CELL=lstm sh ./train/v11/tf.word.rnet.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp20w.ft_tf.word.rnet.lstm.unkaug_model.ckpt-7.00-22974\nMODE=test INFER=1 SRC=word.jieba.ft CELL=lstm sh ./train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.jieba.ft_torch.word.mreader.nopad.lm.lstm.bertopt.nolatt.unkaug_ckpt-12\nMODE=test INFER=1 SRC=word.sp1w.ft CELL=lstm sh ./train/v11/tf.word.rnet.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp1w.ft_tf.word.rnet.lstm_model.ckpt-6.00-19692\nMODE=test INFER=1 SRC=word.sp20w.glove CELL=lstm sh ./train/v11/tf.word.rnetv2.nolatt.unkaug.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp20w.glove_tf.word.rnetv2.nolatt.lstm.unkaug_model.ckpt-5.00-16410\nMODE=test INFER=1 SRC=word.sp20w.ft CELL=lstm sh ./train/v11/tf.word.rnet.sh /home/gezi/data3/v11/lstm-or-sp20w/submit/word.sp20w.ft_tf.word.rnet.lstm_model.ckpt-5.00-16410\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/prepare-char.sh",
    "content": "cd ./prepare/ \nsh run-char.sh \ncd ..\npython ./read-records.py --type=dump\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/prepare-noemb.sh",
    "content": "cd ./prepare/ \nsh run-noemb.sh \ncd ..\npython ./read-records.py --type=dump\n"
  },
  {
    "path": "projects/ai2018/sentiment/scripts/prepare.sh",
    "content": "cd ./prepare/ \nsh run.sh \ncd ..\npython ./read-records.py --type=dump\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/check-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   check.py\n#        \\author   chenghuige  \n#          \\date   2018-10-20 23:58:33.339526\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport gezi\nimport numpy as np\n\nm = {}\nfor line in open('./vectors.fix.txt'):\n  l = line.strip().split() \n  if len(l) < 100:\n    continue\n  key = l[0]\n  vec = np.array([float(x) for x in l[1:]])\n\n  m[key] = vec \n\ndef sim(x, y):\n  print(x, y, gezi.cosine(m[x], m[y]))\n\n\nsim('女人', '女孩')\nsim('女人', '今天')\nsim('征途', '征程')\nsim('征途', '电脑')\nsim('笔记本', '电脑')\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/cp-best-epochs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport gezi\n\nmodel_dir = '../' if not len(sys.argv) > 1 else sys.argv[1]\n\nthre = 0.714 if not len(sys.argv) > 2 else float(sys.argv[2])\n\nkey = 'adjusted_f1/mean' if not len(sys.argv) > 3 else sys.argv[3]\n#key = 'loss/mean' if not len(sys.argv) > 3 else sys.argv[3]\n\nprint('model_dir', model_dir, 'thre', thre, 'key', key)\n\nif 'loss' not in key:\n  cmp = lambda x, y: x > y \nelse:\n  cmp = lambda x, y: x < y\n\n# model.ckpt-3.00-9846.valid.metrics\n# ckpt-4.valid.metrics \nfor dir_ in glob.glob(f'{model_dir}/*/*'):\n  if not os.path.isdir(dir_):\n    continue\n  print(dir_)\n  best_score = 0 if 'loss' not in key else 1e10\n  best_epoch = None\n  best_iepoch = None\n\n  in_epoch_dir = True\n  files = glob.glob(f'{dir_}/epoch/*.valid.metrics')\n  if not files:\n    in_epoch_dir = False\n    files = glob.glob(f'{dir_}/ckpt/*.valid.metrics')\n\n  for file_ in files: \n    epoch = gezi.strip_suffix(file_, 'valid.metrics').split('-')[1]\n    iepoch = int(float(epoch))\n    for line in open(file_):\n      name, score = line.strip().split()\n      score = float(score)\n      if name != key:\n        continue \n      if cmp(score, best_score):\n        best_score = score\n        best_epoch = epoch\n        best_iepoch = iepoch\n  print('best_epoch:', best_epoch, 'best_score:', best_score) \n  if best_epoch and best_score > thre:\n    if in_epoch_dir:\n      command = f'ensemble-cp.py {dir_}/epoch/model.ckpt-{best_epoch}'\n    else:\n      command = f'ensemble-cp.py {dir_}/ckpt/ckpt-{best_epoch}'\n    print(command)\n    os.system(command)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/cp-best-epochs2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport gezi\n\nmodel_dir = '../' if not len(sys.argv) > 1 else sys.argv[1]\n\nthre = 0.71 if not len(sys.argv) > 2 else float(sys.argv[2])\n\nkey = 'adjusted_f1/mean' if not len(sys.argv) > 3 else sys.argv[3]\n#key = 'loss/mean' if not len(sys.argv) > 3 else sys.argv[3]\n\nprint('model_dir', model_dir, 'thre', thre, 'key', key)\n\nif 'loss' not in key:\n  print('greater is better')\n  cmp = lambda x, y: x > y \nelse:\n  print('less is better')\n  cmp = lambda x, y: x < y\n\n# model.ckpt-3.00-9846.valid.metrics\n# ckpt-4.valid.metrics \nfor dir_ in glob.glob(f'{model_dir}/*/*'):\n  if not os.path.isdir(dir_):\n    continue\n  print(dir_)\n  best_score = 0 if 'loss' not in key else 1e10\n  best_epoch = None\n  best_iepoch = None\n\n  in_epoch_dir = True\n  files = glob.glob(f'{dir_}/epoch/*.valid.metrics')\n  if not files:\n    in_epoch_dir = False\n    files = glob.glob(f'{dir_}/ckpt/*.valid.metrics')\n\n  for file_ in files: \n    epoch = gezi.strip_suffix(file_, 'valid.metrics').split('-')[1]\n    iepoch = int(float(epoch))\n    for line in open(file_):\n      name, score = line.strip().split()\n      score = float(score)\n      if name != key:\n        continue \n      if cmp(score, best_score):\n        best_score = score\n        best_epoch = epoch\n        best_iepoch = iepoch\n  print('best_epoch:', best_epoch, 'best_score:', best_score) \n  \n  if best_epoch and cmp(best_score, thre):\n    if in_epoch_dir:\n      command = f'ensemble-cp.py {dir_}/epoch/model.ckpt-{best_epoch}'\n    else:\n      command = f'ensemble-cp.py {dir_}/ckpt/ckpt-{best_epoch}'\n    print(command)\n    #os.system(command)\n    #print(dir_)\n    dir2_ = dir_.replace('temp', 'mount2/temp').replace('model.csv', 'model')\n    dir3_ = dir_.replace('model.csv', 'model.ckpt')\n    os.system(f'mkdir -p {dir3_}/epoch')\n    os.system(f'mkdir -p {dir3_}/ckpt')\n\n    if in_epoch_dir:\n      command = f'rsync {dir2_}/epoch/model.ckpt-{best_epoch}* {dir3_}/epoch'\n    else:\n      command = f'rsync {dir2_}/ckpt/ckpt-{best_epoch}* {dir3_}/ckpt'\n\n    print(command)\n    os.system(command)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-09-15 19:12:03.819848\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\nfrom sklearn.metrics import f1_score\n\n\ndf = pd.read_csv(sys.argv[1])\n\nATTRIBUTES = ['location_traffic_convenience', 'location_distance_from_business_district', 'location_easy_to_find',\n              'service_wait_time', 'service_waiters_attitude', 'service_parking_convenience', 'service_serving_speed', \n              'price_level', 'price_cost_effective', 'price_discount', \n              'environment_decoration', 'environment_noise', 'environment_space', 'environment_cleaness',\n              'dish_portion', 'dish_taste', 'dish_look', 'dish_recommendation',\n              'others_overall_experience', 'others_willing_to_consume_again']\n\nidx = 2\nlength = 20 \n\nlabels = df.iloc[:,idx:idx+length].values\npredicts = df.iloc[:,idx+length:idx+2*length].values\n\nf1_list = []\nfor i in range(length):\n  f1 = f1_score(labels[:,i], predicts[:, i], average='macro')\n  f1_list.append(f1)\nf1 = np.mean(f1_list)\n\nfor i, attr in enumerate(ATTRIBUTES):\n  print(attr, f1_list[i])\nprint('f1:', f1)\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/find-best-epoch.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\n\nmodel_dir = sys.argv[1]\n\nkey = 'adjusted_f1'\n\nif len(sys.argv) > 2:\n  key = sys.argv[2]\n\nprint('key', key)\n\ndef parse(x, key='adjusted_f1'):\n  idx = x.index('epoch:')\n  idx2 = x.index(' ', idx)\n  epoch = int(float(line[idx:idx2].split('/')[0].split(':')[1]))\n  \n  idx = x.index(f'{key}/mean:')\n  idx2 = x.index(\"'\", idx)\n  score = float(x[idx:idx2].split(':')[-1])\n\n  return epoch, score\n\nbest_score = 0 if key != 'loss' else 1e10\nbest_epoch = None\n\nif key != 'loss':\n  cmp = lambda x, y: x > y \nelse:\n  cmp = lambda x, y: x < y\n\ndef deal(line):\n  global best_score, best_epoch\n  epoch, score = parse(line, key)\n  if cmp(score, best_score):\n    best_score = score\n    best_epoch = epoch\n\nfor file_ in glob.glob(f'{model_dir}/log.txt*'):\n  for line in open(file_):\n    if 'epoch_valid' in line:\n      deal(line.strip())\n\nprint('best_epoch:', best_epoch, 'best_score:', best_score)\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/fix-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   fix.py\n#        \\author   chenghuige  \n#          \\date   2018-10-20 23:43:54.852568\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nwords = []\nfor line in open('./vocab.txt'):\n  try:\n    words.append(line.rstrip('\\n').split()[0])\n  except Exception:\n    print(line, file=sys.stderr)\n\nfor i, line in enumerate(open('./vectors.txt')): \n  _, vec = line.rstrip().split(' ', 1)\n  if i < len(words):\n    print(words[i], vec, sep=' ')\n  else:\n    print(line)\n\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/lcp-loop.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   lcp.py\n#        \\author   chenghuige  \n#          \\date   2018-05-23 13:06:34.938478\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob \nimport time\n\ninput = sys.argv[1]\n\nbase = os.path.basename(input)\nos.system('mkdir -p %s' % base)\n\nwhile True:\n  for item in glob.glob(input + '/*'):\n    if os.path.isdir(item):\n      print(item)\n      folder = os.path.basename(item)\n      command = 'mkdir -p %s/%s' %(base, folder) \n      print(command)\n      os.system(command)\n      for item2 in glob.glob('%s/*' % item):\n        if os.path.isdir(item2):\n          folder2 = os.path.basename(item2)\n          command = 'mkdir -p %s/%s/%s' % (base, folder, folder2)\n          print(command)\n          os.system(command)\n          command = 'mkdir -p %s/%s/%s/epoch' %(base, folder, folder2)\n          os.system(command)\n          command = 'mkdir -p %s/%s/%s/ckpt' %(base, folder, folder2)\n          os.system(command)\n          command = 'mkdir -p %s/%s/%s/ckpt2' %(base, folder, folder2)\n          os.system(command) \n          os.system('rsync --progress -avz %s/epoch/*valid* %s/%s/%s/epoch' % (item2, base, folder, folder2))\n          os.system('rsync --progress -avz %s/epoch/*infer* %s/%s/%s/epoch' % (item2, base, folder, folder2))\n          os.system('rsync --progress -avz %s/ckpt/*valid* %s/%s/%s/ckpt' % (item2, base, folder, folder2))\n          os.system('rsync --progress -avz %s/ckpt/*infer* %s/%s/%s/ckpt' % (item2, base, folder, folder2))\n  time.sleep(10)\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/lcp.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   lcp.py\n#        \\author   chenghuige  \n#          \\date   2018-05-23 13:06:34.938478\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob \n\ninput = sys.argv[1]\n\nbase = os.path.basename(input)\nos.system('mkdir -p %s' % base)\n\nfor item in glob.glob(input + '/*'):\n  if os.path.isdir(item):\n    print(item)\n    folder = os.path.basename(item)\n    command = 'mkdir -p %s/%s' %(base, folder) \n    print(command)\n    os.system(command)\n    for item2 in glob.glob('%s/*' % item):\n      if os.path.isdir(item2):\n        folder2 = os.path.basename(item2)\n        command = 'mkdir -p %s/%s/%s' % (base, folder, folder2)\n        print(command)\n        os.system(command)\n        command = 'mkdir -p %s/%s/%s/epoch' %(base, folder, folder2)\n        os.system(command)\n        command = 'mkdir -p %s/%s/%s/ckpt' %(base, folder, folder2)\n        os.system(command)\n        command = 'mkdir -p %s/%s/%s/ckpt2' %(base, folder, folder2)\n        os.system(command) \n        os.system('rsync --progress -avz %s/epoch/*valid* %s/%s/%s/epoch' % (item2, base, folder, folder2))\n        os.system('rsync --progress -avz %s/epoch/*infer* %s/%s/%s/epoch' % (item2, base, folder, folder2))\n        os.system('rsync --progress -avz %s/ckpt/*valid* %s/%s/%s/ckpt' % (item2, base, folder, folder2))\n        os.system('rsync --progress -avz %s/ckpt/*infer* %s/%s/%s/ckpt' % (item2, base, folder, folder2))\n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/rename-finetune.sh",
    "content": "python ./rename-variables-finetune.py --checkpoint_dir=./ \nrm *.pb\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/rename-variables-finetune.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   rename_variables.py\n#        \\author   chenghuige  \n#          \\date   2017-08-28 17:20:39.256411\n#   \\Description  \n# ==============================================================================\n\n  \n\n  \n#https://gist.github.com/batzner/7c24802dd9c5e15870b4b56e22135c96\n\nimport sys, getopt\n\nimport tensorflow as tf\n\nusage_str = 'python tensorflow_rename_variables.py --checkpoint_dir=path/to/dir/ ' \\\n            '--replace_from=substr --replace_to=substr --add_prefix=abc --dry_run'\n\n\ndef rename(checkpoint_dir, dry_run):\n    checkpoint = tf.train.get_checkpoint_state(checkpoint_dir)\n    with tf.Session() as sess:\n        for var_name, _ in tf.contrib.framework.list_variables(checkpoint_dir):\n            # Load the variable\n            var = tf.contrib.framework.load_variable(checkpoint_dir, var_name)\n\n            # Set the new name\n            new_name = var_name\n            if 'adam' in new_name or new_name.startswith('OptimizeLoss') or new_name.startswith('global_step') or new_name.startswith('learning_rate'):\n                new_name = 'ignore/' + new_name \n            if None not in [replace_from, replace_to]:\n                new_name = new_name.replace(replace_from, replace_to)\n            if add_prefix:\n                new_name = add_prefix + new_name \n\n            if dry_run:\n                print('%s would be renamed to %s.' % (var_name, new_name))\n            else:\n                print('Renaming %s to %s.' % (var_name, new_name))\n                # Rename the variable\n                var = tf.Variable(var, name=new_name)\n\n        if not dry_run:\n            # Save the variables\n            saver = tf.train.Saver()\n            sess.run(tf.global_variables_initializer())\n            saver.save(sess, checkpoint.model_checkpoint_path)\n\n\ndef main(argv):\n    checkpoint_dir = None\n    replace_from = None\n    replace_to = None\n    add_prefix = None\n    dry_run = False\n\n    try:\n        opts, args = getopt.getopt(argv, 'h', ['help=', 'checkpoint_dir=', 'replace_from=',\n                                               'replace_to=', 'add_prefix=', 'dry_run'])\n    except getopt.GetoptError:\n        print(usage_str)\n        sys.exit(2)\n    for opt, arg in opts:\n        if opt in ('-h', '--help'):\n            print(usage_str)\n            sys.exit()\n        elif opt == '--checkpoint_dir':\n            checkpoint_dir = arg\n        elif opt == '--replace_from':\n            replace_from = arg\n        elif opt == '--replace_to':\n            replace_to = arg\n        elif opt == '--add_prefix':\n            add_prefix = arg\n        elif opt == '--dry_run':\n            dry_run = True\n\n    if not checkpoint_dir:\n        print('Please specify a checkpoint_dir. Usage:')\n        print(usage_str)\n        sys.exit(2)\n\n    rename(checkpoint_dir, dry_run)\n\n\nif __name__ == '__main__':\n    main(sys.argv[1:])\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/seg2corpus.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   seg2corpus.py\n#        \\author   chenghuige  \n#          \\date   2018-10-20 08:10:01.731952\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nfor line in sys.stdin:\n  l = line.rstrip('\\n').split('\\t', 1)[1].split('\\x09')\n  if not l:\n    continue\n  if '|' in l[0]:\n    l = [x.split('|')[0] for x in l]\n  print(' '.join(l))\n\ndef main(_):\n  pass\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/show-best-epochs.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport gezi\n\nmodel_dir = '..'\nif len(sys.argv) > 1:\n  model_dir = sys.argv[1] \n\nkey = 'adjusted_f1/mean'\n\nif len(sys.argv) > 2:\n  key = sys.argv[2]\n\nprint('key', key)\n\nif not 'loss' in key:\n  cmp = lambda x, y: x > y \nelse:\n  cmp = lambda x, y: x < y\n\n# model.ckpt-3.00-9846.valid.metrics\n# ckpt-4.valid.metrics \nres = []\nfor dir_ in glob.glob(f'{model_dir}/*/*'):\n  if not os.path.isdir(dir_):\n    continue\n  best_score = 0 if not 'loss' in key else 1e10\n  best_epoch = None\n\n  files = glob.glob(f'{dir_}/epoch/*.valid.metrics')\n  if not files:\n    files = glob.glob(f'{dir_}/ckpt/*.valid.metrics')\n\n  find = False\n  for file_ in files: \n    epoch = int(float(gezi.strip_suffix(file_, 'valid.metrics').split('-')[1]))\n    for line in open(file_):\n      name, score = line.strip().split()\n      score = float(score)\n      if name != key:\n        continue \n      if cmp(score, best_score):\n        find = True\n        best_score = score\n        best_epoch = epoch\n  if find:\n    #print(dir_)\n    #print('best_epoch:', best_epoch, 'best_score:', best_score) \n    res.append((dir_.replace('../', ''), best_epoch, best_score))\n\n  res.sort(key=lambda x: x[-1], reverse=not 'loss' in key)\n\nfor dir_, best_epoch, best_score in res:\n  print('%.5f' % best_score, best_epoch, dir_)\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/show-metrics.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   find-best-epoch.py\n#        \\author   chenghuige  \n#          \\date   2018-10-07 10:32:35.416608\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport glob\nimport gezi\n\nmodel_dir = '.'\nif len(sys.argv) > 1:\n  model_dir = sys.argv[1] \n\nkey = 'adjusted_f1/mean'\n\nif len(sys.argv) > 2:\n  key = sys.argv[2]\n\nprint('key', key)\n\nif not 'loss' in key:\n  cmp = lambda x, y: x > y \nelse:\n  cmp = lambda x, y: x < y\n\n# model.ckpt-3.00-9846.valid.metrics\n# ckpt-4.valid.metrics \nres = []\nfor file_ in glob.glob(f'{model_dir}/*.valid.metrics'):\n  epoch = int(float(gezi.strip_suffix(file_, 'valid.metrics').split('-')[1]))\n  for line in open(file_):\n    name, score = line.strip().split()\n    score = float(score)\n    if name != key:\n        continue \n    res.append((gezi.strip_suffix(file_.replace('./', ''), '.valid.metrics'), epoch, score))\n\nres.sort(key=lambda x: x[-1], reverse=not 'loss' in key)\n\nfor file_, epoch, score in res:\n  print('%.5f' % score, epoch, file_)\n"
  },
  {
    "path": "projects/ai2018/sentiment/tools/slim.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   remove-content.py\n#        \\author   chenghuige  \n#          \\date   2018-11-13 20:52:59.621179\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd \n\ndf = pd.read_csv(sys.argv[1])\ndf = df.sort_values('id')\n\ncontents = ['abc'] * len(df)\ndf['content'] = contents \n\ndf.to_csv(sys.argv[1].replace('.csv', '.slim.csv'), index=False, encoding=\"utf_8_sig\")\n"
  },
  {
    "path": "projects/ai2018/sentiment/torch-infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n  \n#tf.enable_eager_execution()\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\nimport torch_algos.model as base\nfrom dataset import Dataset\nimport lele\n\nfrom prepare.filter import filter\nfrom wenzheng.utils import ids2text\nimport numpy as np\nimport jieba\n\nfrom algos.config import ATTRIBUTES\nimport evaluate as ev\n\nvocab = None\nchar_vocab = None\nmodel = None\n\ndef convert(content):\n  content = filter(content)\n  words = [word for word in jieba.cut(content)]\n  #words = gezi.add_start_end(words, '<S>', '</S>')\n\n  wids =  [vocab.id(word) for word in words]\n  chars = [list(word) for word in words]\n  char_ids = np.zeros([len(wids), FLAGS.char_limit], dtype=np.int32)\n  for i, token in enumerate(chars):\n    for j, ch in enumerate(token):\n      if j == FLAGS.char_limit:\n        break\n      char_ids[i, j] = char_vocab.id(ch)\n\n  char_ids = char_ids.reshape(-1)\n\n  input = {'content': np.array([wids], dtype=np.long), 'char': np.array([char_ids], dtype=np.long)}\n  return lele.to_torch(input), words\n\ndef predict(content):\n  x, words = convert(content)\n  logits = model(x)[0]\n  logits = logits.detach().cpu().numpy()\n  probs = gezi.softmax(logits, 1)\n  #print(probs)\n  print(list(zip(ATTRIBUTES, [list(x) for x in probs])))\n\n  predicts = np.argmax(logits, -1) - 2\n  print('predicts ', predicts)\n  print(list(zip(ATTRIBUTES, predicts)))\n  # adjusted_predicts = ev.to_predict(logits)\n  # print('apredicts', adjusted_predicts)\n  # print(list(zip(ATTRIBUTES, adjusted_predicts)))\n\n  alpha = model.pooling.poolings[0].alpha\n  alpha = alpha.detach().cpu().numpy()\n  for i, attr in enumerate(ATTRIBUTES):\n    scores = alpha[0, i]\n    print(attr, predicts[i])\n    for word, score in zip(words, scores):\n      print(word, score * len(words))\n\ndef encode(content, aspect=-2):\n  x, _ = convert(content)\n  _ = model(x)\n  feature = model.pooling.encode[0]\n  feature = feature.detach().cpu().numpy()\n  feature = feature[aspect]\n  return feature\n\ndef sim(content1, content2, aspect=-2):\n  f1 = encode(content1, aspect)\n  f2 = encode(content2, aspect)\n  score = gezi.cosine(f1, f2)\n  print(content1, content2, ATTRIBUTES[aspect], score)\n\ndef main(_):\n  FLAGS.torch = True\n  FLAGS.emb_dim = 300 \n  FLAGS.cell = 'lstm'\n  FLAGS.num_layers = 2\n  FLAGS.rnn_hidden_size = 400\n  FLAGS.concat_layers = False\n  FLAGS.use_char = True\n\n  FLAGS.share_fc = False \n  FLAGS.share_pooling = False \n  FLAGS.recurrent_dropout = False \n  FLAGS.rnn_no_padding = False \n  FLAGS.rnn_padding = True \n  FLAGS.att_combiner = 'sfu'\n  FLAGS.hop = 1\n  FLAGS.use_label_att = False \n  FLAGS.use_self_match = True \n  FLAGS.encoder_type = 'rnn'\n  FLAGS.encoder_output_method = 'att'\n\n  FLAGS.model_dir = '/home/gezi/temp/ai2018/sentiment/model/v14/0/word.jieba.ft/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt.pad/'\n\n  melt.apps.init()\n\n  FLAGS.model = 'MReader'\n  model_path = '%s/latest.pyt' % FLAGS.model_dir\n  global vocab, char_vocab, model\n  vocab_path = '%s/vocab.txt' % FLAGS.model_dir\n  char_vocab_path = vocab_path.replace('vocab.txt', 'char_vocab.txt')\n  FLAGS.vocab = vocab_path\n  vocab = gezi.Vocabulary(vocab_path)\n  char_vocab = gezi.Vocabulary(char_vocab_path)\n  \n  model = getattr(base, FLAGS.model)()\n  model = model.cuda()\n\n  print('model\\n', model)\n  lele.load(model, model_path)\n\n  contents = ['这是一个很好的餐馆，菜很不好吃，我还想再去', \n              '这是一个很差的餐馆，菜很不好吃，我不想再去', \n              '这是一个很好的餐馆，菜很好吃，我还想再去', \n              '这是一个很好的餐馆，只是菜很难吃，我还想再去',\n              '这是一个很好的餐馆，只是菜很不好吃，我还想再去',\n              '好吃的！黑胡椒牛肉粒真的是挺咸的',\n              '不论是环境的宽敞度还是菜的味道上',\n              '烤鸭皮酥脆入口即化，总体还可以',\n              '烤鸭皮酥脆入口即化',\n              '软炸鲜菇据说是他家的优秀美味担当',\n              '环境挺好的，服务很到位',\n              '肉松的味道都不错，量一般',\n              '也不算便宜，不过吃着好吃',\n              '高大上的餐厅，一级棒的环境',\n              '比较硬，比较喜欢芝士和咖喱口味的',\n              '有嚼劲，很入味宫廷豌豆黄造型可爱',\n              '蔬菜中规中矩，解腻不错',\n              '女友生日菜有点贵架势不错味道就这样',\n              '相比其他兰州拉面粗旷的装饰风格，这家设计很小清新，座位宽敞，客人不多',\n              '这家店的菜做的不错，但是服务特别差',\n              '印象中这家店适合拍照',\n              '适合和闺蜜一起去',\n              '''被朋友安利的地方。刺身都很大块，厚厚的一片塞进嘴巴里，爽爆了！甜虾超级大的个头，不过要自己剥皮，自己动手丰衣足食。北极贝，三文鱼，金枪鱼各个都片大肉厚，吃的超满足。鹅肝，牛舌，鳕鱼都很嫩，不过口味稍微有丢丢咸。点的所有的食物除了芥末章鱼芥末味道太重没吃完，别的全都吃的干干\n净净！中午因为大部分是吃定食的，所以给自助的我们安排了包间，打电话过去预订的时候还有特别提醒说有团购，服务不错，而且基本没有漏单。总之是很不错的日式放题，下次还会去。''',\n              '孕妇还有呼吸系统不太好的老人请慎重',\n              '但还是不建议孕妇与小孩来',\n              '感谢对孕妇的满满善意',\n              '对我这个孕妇来说环境很清爽很好',\n              '让孕妇情何以堪',\n              '还有1个孕妇等了从12点多等到2点',\n              '作为孕妇吃的小心翼翼',\n              '适合老人孩子孕妇冬天吃一下',\n              '当来到颐和园，皇家所独有的庄重大气便被融入内核',\n              '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了',\n              '也就少了点高端的氛围',\n              '店非常的简约小清新',\n              '环境清新',\n              '难得再回学校的时候发现这么小清新的小店',\n              '感觉多放些奶油更加完美',\n              '晚上还有表演']\n  \n  for content in contents:\n    print(content)\n    predict(content)\n\n  sim('牛肉赞', '牛肉好吃')\n  sim('牛肉赞', '牛肉不好吃')\n  sim('牛肉赞', '牛肉一般')\n  sim('牛肉赞', '羊肉一般')\n  sim('牛肉赞', '牛肉赞', aspect=ATTRIBUTES.index('dish_taste'))\n  sim('牛肉赞', '羊肉赞', aspect=ATTRIBUTES.index('dish_taste'))\n  sim('牛肉赞', '牛肉好吃', aspect=ATTRIBUTES.index('dish_taste'))\n  sim('牛肉赞', '羊肉好吃', aspect=ATTRIBUTES.index('dish_taste'))\n  sim('羊肉赞', '羊肉好吃')\n  sim('羊肉赞', '羊肉好吃', aspect=ATTRIBUTES.index('dish_taste'))\n\n  #sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了')\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', aspect=ATTRIBUTES.index('environment_decoration'))\n\n\n  #sim('店非常的简约小清新', '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了')\n  sim('店非常的简约小清新', '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', aspect=ATTRIBUTES.index('environment_decoration'))\n\n  #sim('店非常的简约小清新', '难得再回学校的时候发现这么小清新的小店')\n  sim('店非常的简约小清新', '难得再回学校的时候发现这么小清新的小店', aspect=ATTRIBUTES.index('environment_decoration'))\n\n  #sim('店非常的简约小清新', '环境高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n  #sim('店非常的简约小清新', '环境文艺清新', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('店非常的简约小清新', '环境小清新', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('店非常的简约小清新', '文艺清新', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('环境小清新', '文艺清新', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('环境小清新', '高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n\n  #sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '环境高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '文艺清新', aspect=ATTRIBUTES.index('environment_decoration'))\n\n  #sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '环境高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '文艺清新', aspect=ATTRIBUTES.index('environment_decoration'))\n\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '高大上', aspect=ATTRIBUTES.index('others_overall_experience'))\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '文艺清新', aspect=ATTRIBUTES.index('others_overall_experience'))\n\n  #sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '环境高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '高大上', aspect=ATTRIBUTES.index('others_overall_experience'))\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '文艺清新', aspect=ATTRIBUTES.index('others_overall_experience'))\n\n  sim('牛肉好吃', '高大上', aspect=ATTRIBUTES.index('environment_decoration'))\n\n  sim('适合闺蜜聚会', '适合朋友聚会')\n  sim('适合闺蜜聚会', '适合孕妇的餐厅')\n  sim('适合闺蜜聚会', '适合拍照的餐厅')\n  sim('适合闺蜜聚会', '和闺蜜一起来的')\n\n  sim('适合闺蜜聚会', '适合朋友聚会', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('适合闺蜜聚会', '适合孕妇的餐厅', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('适合闺蜜聚会', '适合拍照的餐厅', aspect=ATTRIBUTES.index('environment_decoration'))\n  sim('适合闺蜜聚会', '和闺蜜一起来的', aspect=ATTRIBUTES.index('environment_decoration'))\n  # # print words importance scores\n  # word_scores_list = model.pooling.word_scores\n\n  # for word_scores in word_scores_list:\n  #   print(list(zip(words, word_scores[0].numpy())))\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/torch-lm-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\nimport lele\n\nimport algos.config\n\nfrom wenzheng.utils import input_flags \n\nimport torch_algos.model as base\nfrom lm_dataset import Dataset\n\ndef main(_):\n  FLAGS.torch = True\n  melt.apps.init()\n  \n  embedding = None\n  if FLAGS.word_embedding_file and os.path.exists(FLAGS.word_embedding_file):\n    embedding = np.load(FLAGS.word_embedding_file)\n    FLAGS.emb_dim = embedding.shape[1]\n\n  model = getattr(base, FLAGS.model)(embedding)\n  assert model.lm_model\n\n  logging.info(model)\n\n  train = melt.apps.get_train()\n\n  bilm_criterion = lele.losses.BiLMCriterion()\n  train(Dataset,\n        model,  \n        bilm_criterion.forward)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/torch-sim.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n  \n#tf.enable_eager_execution()\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\nimport torch_algos.model as base\nfrom dataset import Dataset\nimport lele\n\nfrom prepare.filter import filter\nfrom wenzheng.utils import ids2text\nimport numpy as np\nimport jieba\n\nfrom algos.config import ATTRIBUTES\nimport evaluate as ev\n\nvocab = None\nchar_vocab = None\nmodel = None\n\ndef convert(content):\n  content = filter(content)\n  words = [word for word in jieba.cut(content)]\n  words = gezi.add_start_end(words, '<S>', '</S>')\n\n  wids =  [vocab.id(word) for word in words]\n  chars = [list(word) for word in words]\n  char_ids = np.zeros([len(wids), FLAGS.char_limit], dtype=np.int32)\n  for i, token in enumerate(chars):\n    for j, ch in enumerate(token):\n      if j == FLAGS.char_limit:\n        break\n      char_ids[i, j] = char_vocab.id(ch)\n\n  char_ids = char_ids.reshape(-1)\n\n  input = {'content': np.array([wids], dtype=np.long), 'char': np.array([char_ids], dtype=np.long)}\n  return lele.to_torch(input), words\n\ndef predict(content):\n  x, words = convert(content)\n  logits = model(x)[0]\n  logits = logits.detach().cpu().numpy()\n  probs = gezi.softmax(logits, 1)\n  #print(probs)\n  print(list(zip(ATTRIBUTES, [list(x) for x in probs])))\n\n  predicts = np.argmax(logits, -1) - 2\n  print('predicts ', predicts)\n  print(list(zip(ATTRIBUTES, predicts)))\n  # adjusted_predicts = ev.to_predict(logits)\n  # print('apredicts', adjusted_predicts)\n  # print(list(zip(ATTRIBUTES, adjusted_predicts)))\n\n  alpha = model.pooling.poolings[0].alpha\n  alpha = alpha.detach().cpu().numpy()\n  for i, attr in enumerate(ATTRIBUTES):\n    scores = alpha[0, i]\n    print(attr, predicts[i])\n    for word, score in zip(words, scores):\n      print(word, score * len(words))\n\ndef encode(content):\n  x, _ = convert(content)\n  _ = model(x)\n  feature = model.feature[0]\n  feature = feature.detach().cpu().numpy()\n  return feature\n\ndef sim(content1, content2):\n  f1 = encode(content1)\n  f2 = encode(content2)\n  score = gezi.cosine(f1, f2)\n  print(content1, content2, score)\n\ndef main(_):\n  FLAGS.torch = True\n  FLAGS.emb_dim = 300 \n  FLAGS.cell = 'lstm'\n  FLAGS.num_layers = 1\n  FLAGS.rnn_hidden_size = 400\n  FLAGS.concat_layers = False\n  FLAGS.use_char = True\n\n  FLAGS.share_fc = True\n  FLAGS.share_pooling = True\n  FLAGS.recurrent_dropout = False \n  FLAGS.rnn_no_padding = False \n  FLAGS.rnn_padding = True \n  FLAGS.att_combiner = 'sfu'\n  FLAGS.hop = 1\n  FLAGS.use_label_att = False \n  FLAGS.use_self_match = False \n  FLAGS.encoder_type = 'rnn'\n  FLAGS.encoder_output_method = 'max'\n\n  FLAGS.model_dir = '/home/gezi/temp/ai2018/sentiment/model/lm/word.jieba.ft.long/torch.word.lm.nopad.lstm.hidden400/'\n\n  melt.apps.init()\n\n  FLAGS.model = 'MReader'\n  model_path = '%s/latest.pyt' % FLAGS.model_dir\n  global vocab, char_vocab, model\n  vocab_path = '%s/vocab.txt' % FLAGS.model_dir\n  char_vocab_path = vocab_path.replace('vocab.txt', 'char_vocab.txt')\n  FLAGS.vocab = vocab_path\n  vocab = gezi.Vocabulary(vocab_path)\n  char_vocab = gezi.Vocabulary(char_vocab_path)\n  \n  model = getattr(base, FLAGS.model)()\n  model = model.cuda()\n\n  print('model\\n', model)\n  lele.load(model, model_path)\n\n  contents = ['这是一个很好的餐馆，菜很不好吃，我还想再去', \n              '这是一个很差的餐馆，菜很不好吃，我不想再去', \n              '这是一个很好的餐馆，菜很好吃，我还想再去', \n              '这是一个很好的餐馆，只是菜很难吃，我还想再去',\n              '这是一个很好的餐馆，只是菜很不好吃，我还想再去',\n              '好吃的！黑胡椒牛肉粒真的是挺咸的',\n              '不论是环境的宽敞度还是菜的味道上',\n              '烤鸭皮酥脆入口即化，总体还可以',\n              '烤鸭皮酥脆入口即化',\n              '软炸鲜菇据说是他家的优秀美味担当',\n              '环境挺好的，服务很到位',\n              '肉松的味道都不错，量一般',\n              '也不算便宜，不过吃着好吃',\n              '高大上的餐厅，一级棒的环境',\n              '比较硬，比较喜欢芝士和咖喱口味的',\n              '有嚼劲，很入味宫廷豌豆黄造型可爱',\n              '蔬菜中规中矩，解腻不错',\n              '女友生日菜有点贵架势不错味道就这样',\n              '相比其他兰州拉面粗旷的装饰风格，这家设计很小清新，座位宽敞，客人不多']\n  \n  sim('牛肉赞', '牛肉好吃')\n  sim('牛肉赞', '牛肉不好吃')\n  sim('牛肉赞', '牛肉一般')\n  sim('牛肉赞', '他们家的牛肉很好吃')\n  sim('牛肉赞', '羊肉一般')\n  sim('牛肉赞', '羊肉好吃')\n  sim('羊肉赞', '羊肉好吃')\n\n  sim('适合闺蜜聚会', '适合朋友聚会')\n  sim('适合闺蜜聚会', '适合孕妇的餐厅')\n  sim('适合闺蜜聚会', '适合拍照的餐厅')\n  sim('适合闺蜜聚会', '和闺蜜一起来的')\n\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了')\n  sim('店非常的简约小清新', '在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了')\n  sim('店非常的简约小清新', '环境小清新')\n  sim('店非常的简约小清新', '文艺清新')\n  sim('环境小清新', '文艺清新')\n  sim('环境小清新', '高大上')\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '高大上')\n  sim('当来到颐和园，皇家所独有的庄重大气便被融入内核', '文艺清新')\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '高大上')\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '文艺清新')\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '适合拍照')\n  sim('在我印象应该不仅是豪华酒店了，而是奢华酒店级别的了', '复古')\n  sim('古色古香的院子', '复古')\n\n  # # print words importance scores\n  # word_scores_list = model.pooling.word_scores\n\n  # for word_scores in word_scores_list:\n  #   print(list(zip(words, word_scores[0].numpy())))\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/torch-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\nimport lele\n\nfrom wenzheng.utils import input_flags \n\nfrom torch_algos.loss import Criterion\nimport torch_algos.model as base\nfrom dataset import Dataset\nimport evaluate as ev\n\ndef get_num_finetune_words():\n  if not FLAGS.dynamic_finetune:\n    return FLAGS.num_finetune_words\n  else:\n    return min(int(melt.epoch() * 1000), FLAGS.num_finetune_words)\n\ndef freeze_embedding(self, grad_input, grad_output):\n  num_finetune_words = get_num_finetune_words()\n  grad_output[0][num_finetune_words:, :] = 0\n\ndef freeze_char_embedding(self, grad_input, grad_output):\n  grad_output[0][FLAGS.num_finetune_chars:, :] = 0\n\ndef main(_):\n  FLAGS.num_folds = 8\n  FLAGS.torch = True\n  melt.apps.init()\n  \n  ev.init()\n\n  embedding = None\n  if FLAGS.word_embedding_file and os.path.exists(FLAGS.word_embedding_file):\n    embedding = np.load(FLAGS.word_embedding_file)\n    FLAGS.emb_dim = embedding.shape[1]\n\n  model = getattr(base, FLAGS.model)(embedding)\n  if FLAGS.num_finetune_words:\n    model.encode.embedding.register_backward_hook(freeze_embedding)\n  if FLAGS.num_finetune_chars and FLAGS.use_char and FLAGS.use_char_emb:\n    model.encode.char_embedding.register_backward_hook(freeze_char_embedding)\n\n  logging.info('model\\n', model)\n\n  param_groups = None\n  if FLAGS.lm_path:\n    #both BiLanguageModel or RNet or MReader.. use self.ecode so ok update encode.embedding.weight... encode.char_embedding.weight..\n    _, updated_params = lele.load(model, FLAGS.lm_path)\n    assert updated_params, lm_path\n    if FLAGS.lm_lr_factor != 1:\n      ignored_params = list(map(id, updated_params))\n      base_params = filter(lambda p: id(p) not in ignored_params,\n                           model.parameters())\n      param_groups = [\n              {'params': base_params},\n              {'params': updated_params, 'lr': FLAGS.learning_rate * FLAGS.lm_lr_factor}\n            ]\n\n  train = melt.apps.get_train()\n  #criterion = Criterion(ev.class_weights)\n  criterion = Criterion()\n  \n  train(Dataset,\n        model,  \n        criterion.forward,\n        eval_fn=ev.evaluate, \n        valid_write_fn=ev.valid_write,\n        infer_write_fn=ev.infer_write,\n        valid_suffix='.valid.csv',\n        infer_suffix='.infer.csv',\n        param_groups=param_groups)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/torch_algos/__init__.py",
    "content": ""
  },
  {
    "path": "projects/ai2018/sentiment/torch_algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-09-17 20:34:23.281520\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\nimport numpy as np\n\nfrom algos.weights import *\nfrom algos.config import NUM_CLASSES, NUM_ATTRIBUTES\n\nimport lele\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nclass Criterion(object):\n  def __init__(self, class_weights=None):\n    self.class_weights = class_weights\n    self.loss_fn = torch.nn.CrossEntropyLoss()\n    self.loss_fn2 = torch.nn.CrossEntropyLoss(reduction='none')\n    self.bloss_fn = nn.BCEWithLogitsLoss()\n    # if FLAGS.use_class_weights:\n    #   self.weighted_loss_fn = [None] * NUM_ATTRIBUTES\n    #   class_weights = np.reshape(class_weights, [NUM_ATTRIBUTES, NUM_CLASSES])\n    #   class_weights = np.log(np.log(class_weights + 1.) + 1.)\n    #   logging.info('class_weights', class_weights)\n    #   for i in range(NUM_ATTRIBUTES):\n    #     self.weighted_loss_fn[i] = torch.nn.CrossEntropyLoss(weight=torch.Tensor(class_weights[i]).cuda())\n\n  def calc_soft_label_loss(self, y_, y, num_classes):\n    y = y.view(-1, num_classes)\n    y_ = y_.view(-1, num_classes)\n    log_probs = F.log_softmax(y_, dim=-1)\n    loss = -torch.sum(log_probs * y, -1)\n    loss = loss.mean()\n    return loss\n\n  def forward(self, model, x, y, training=False):\n    y_ = model(x)\n\n    if FLAGS.use_soft_label:\n      return self.calc_soft_label_loss(y_, y, NUM_CLASSES)\n    \n    #print(y.shape, y_.shape)\n    # without view Expected target size (32, 4), got torch.Size([32, 20])\n    if training and FLAGS.num_learning_rate_weights == NUM_ATTRIBUTES:\n      loss = self.loss_fn2(y_.view(-1, NUM_CLASSES), y.view(-1)).view(-1, NUM_ATTRIBUTES)\n      # stop some gradients due to learning_rate weights\n      loss = lele.adjust_lrs(loss)\n      loss = loss.mean()\n    # elif FLAGS.use_class_weights:\n    #   losses = []\n    #   for i in range(NUM_ATTRIBUTES):\n    #     loss = self.weighted_loss_fn[i](y_[:,i,:], y[:,i])\n    #     losses.append(loss)\n    #   loss = torch.mean(torch.stack(losses))\n    else:\n      loss = self.loss_fn(y_.view(-1, NUM_CLASSES), y.view(-1))  \n    \n    # depreciated add neu binary not help final ensemble\n    if FLAGS.loss_type == 'add_neu_binary':\n      cid = 2\n      y_ = y_[:,:,cid]\n      y = (y == 2).float()\n      \n      bloss = self.bloss_fn(y_, y)\n      loss = loss + bloss * FLAGS.other_loss_factor\n\n    return loss\n \n"
  },
  {
    "path": "projects/ai2018/sentiment/torch_algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2018-09-30 10:25:11.024133\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nfrom algos.config import NUM_CLASSES, NUM_ATTRIBUTES\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary\n\nimport melt\nlogging = melt.logging\n\nimport numpy as np\nimport lele\nlayers = lele.layers\nimport gezi\nimport os\n\nclass ModelBase(nn.Module):\n  def __init__(self, embedding=None, lm_model=False):\n    super(ModelBase, self).__init__()\n    \n    self.num_units = FLAGS.rnn_hidden_size\n    self.dropout_rate = 1 - FLAGS.keep_prob\n\n    config = {\n      'word': {\n        'vocab': FLAGS.vocab,\n        'num_layers': FLAGS.num_layers,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'emb_dim': FLAGS.emb_dim,\n        'embedding_file': FLAGS.word_embedding_file,\n        'trainable': FLAGS.finetune_word_embedding,\n        'num_finetune': FLAGS.num_finetune_words,\n      },\n      'char': {\n        'limit': FLAGS.char_limit,\n        'use_char_emb': FLAGS.use_char_emb,\n        'emb_dim': FLAGS.char_emb_dim,\n        'trainable': FLAGS.finetune_char_embedding,\n        'hidden_size': FLAGS.rnn_hidden_size,\n        'output_method': FLAGS.char_output_method,\n        'combiner': FLAGS.char_combiner,\n        'padding': FLAGS.char_padding,\n        'num_finetune': FLAGS.num_finetune_chars,\n      },\n      'pos': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'ner': {\n        'emb_dim': FLAGS.tag_emb_dim \n      },\n      'encoder': FLAGS.encoder_type,\n      'dropout_rate': 1 - FLAGS.keep_prob,\n      'recurrent_dropout': FLAGS.recurrent_dropout,\n      'cell': FLAGS.cell,\n      'rnn_padding': FLAGS.rnn_padding,\n      'rnn_no_padding': FLAGS.rnn_no_padding,\n      'concat_layers': FLAGS.concat_layers,\n    }\n\n    self.encode = wenzheng.pyt.TextEncoder(config, \n                                         embedding,\n                                         use_char=FLAGS.use_char,\n                                         use_char_emb=FLAGS.use_char_emb,\n                                         use_pos=FLAGS.use_pos,\n                                         use_ner=FLAGS.use_ner,\n                                         lm_model=lm_model)\n\n    self.lm_model = self.encode.lm_model\n\n    if not self.lm_model:\n      doc_hidden_size = self.encode.output_size\n      if FLAGS.share_pooling:\n        self.pooling = lele.layers.Pooling(\n                        FLAGS.encoder_output_method, \n                        input_size=doc_hidden_size,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation)) \n      else:\n        self.pooling = lele.layers.Poolings(\n                        FLAGS.encoder_output_method, \n                        input_size=doc_hidden_size,\n                        num_poolings=NUM_ATTRIBUTES,\n                        top_k=FLAGS.top_k, \n                        att_activation=getattr(F, FLAGS.att_activation))         \n\n      # input dim not as convinient as tf..\n      pre_logits_dim = self.pooling.output_size\n\n      # not work well can ignore\n      if FLAGS.use_len:\n        len_embedding_dim = 32\n        self.len_embedding = nn.Embedding(3000, len_embedding_dim, padding_idx=0)\n        pre_logits_dim += len_embedding_dim\n      \n      self.num_classes = NUM_CLASSES if FLAGS.binary_class_index is None else 2\n      if FLAGS.share_pooling:\n        # if share pooling then must share fc\n        self.logits = nn.Linear(pre_logits_dim, NUM_ATTRIBUTES * self.num_classes)  \n      else:\n        if FLAGS.share_fc:\n          # share fc\n          self.logits = nn.Linear(pre_logits_dim, self.num_classes)\n        else:\n          # exclusive fc\n          self.logits = lele.layers.Linears(pre_logits_dim, self.num_classes, NUM_ATTRIBUTES)\n\n  def unk_aug(self, x, x_mask=None):\n    \"\"\"\n    randomly make 10% words as unk\n    TODO this works, but should this be rmoved and put it to Dataset so can share for both pyt and tf\n    \"\"\"\n    if not self.training or not FLAGS.unk_aug or melt.epoch() < FLAGS.unk_aug_start_epoch:\n      return x \n\n    if x_mask is None:\n      x_mask = x > 0\n    x_mask = x_mask.long()\n\n    ratio = np.random.uniform(0, FLAGS.unk_aug_max_ratio)\n    mask = torch.cuda.FloatTensor(x.size(0), x.size(1)).uniform_() > ratio\n    mask = mask.long()\n    rmask = FLAGS.unk_id * (1 - mask)\n\n    x = (x * mask + rmask) * x_mask\n    return x\n\nclass BiLanguageModel(ModelBase):\n  def __init__(self, embedding=None):\n    super(BiLanguageModel, self).__init__(embedding, lm_model=True)\n    \n# Model is like RNet! if you use label att and self match\n# if not just simple gru model\nclass RNet(ModelBase):\n  def __init__(self, embedding=None):\n    super(RNet, self).__init__(embedding)\n\n    Rnn = lele.layers.StackedBRNN     \n    doc_hidden_size = self.encode.output_size\n\n    if FLAGS.use_label_att:\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = nn.Embedding(self.label_emb_height, FLAGS.emb_dim)\n\n      self.att_dot_attentions = nn.ModuleList()\n      self.att_encodes = nn.ModuleList()\n      for i in range(FLAGS.label_hop):\n        self.att_dot_attentions.append(lele.layers.DotAttention(input_size=doc_hidden_size, \n                                                                input_size2=FLAGS.emb_dim,\n                                                                hidden=self.num_units, \n                                                                dropout_rate=self.dropout_rate, \n                                                                combiner=FLAGS.att_combiner))\n        self.att_encodes.append(Rnn(\n              input_size=self.att_dot_attentions[-1].output_size,\n              hidden_size=self.num_units,\n              num_layers=1,\n              dropout_rate=self.dropout_rate,\n              dropout_output=False,\n              concat_layers=False,\n              rnn_type=FLAGS.cell,\n              padding=FLAGS.rnn_padding,\n          ))\n\n    if FLAGS.use_self_match:\n      self.match_dot_attention = lele.layers.DotAttention(input_size=doc_hidden_size, \n                                                          input_size2=doc_hidden_size, \n                                                          hidden=self.num_units, \n                                                          dropout_rate=self.dropout_rate, \n                                                          combiner=FLAGS.att_combiner)\n      self.match_encode = Rnn(\n            input_size=self.match_dot_attention.output_size,\n            hidden_size=self.num_units,\n            num_layers=1,\n            dropout_rate=self.dropout_rate,\n            dropout_output=False,\n            concat_layers=False,\n            rnn_type=FLAGS.cell,\n            padding=FLAGS.rnn_padding,\n        )    \n\n  def forward(self, input, training=False):\n    x = input['content'] \n    #print(x.shape)\n    x_mask = x.eq(0)\n    batch_size = x.size(0)\n\n    x = self.unk_aug(x, x_mask)\n\n    if FLAGS.rnn_no_padding:\n      x_mask = torch.zeros_like(x, dtype=torch.uint8)\n\n    x = self.encode(input, x_mask, training=training)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding.weight\n      label_seq = lele.tile(label_emb.unsqueeze(0), 0, batch_size)\n      # TODO label rnn \n      for i in range(FLAGS.label_hop):\n        x = self.att_dot_attentions[i](x, label_seq, torch.zeros(batch_size, self.label_emb_height).byte().cuda())\n        x = self.att_encodes[i](x, x_mask)\n\n    if FLAGS.use_self_match:\n       x = self.match_dot_attention(x, x, x_mask) \n       x = self.match_encode(x, x_mask) \n\n    x = self.pooling(x, x_mask)\n\n    self.feature = x\n    \n    x = self.logits(x)  \n\n    x = x.view([-1, NUM_ATTRIBUTES, self.num_classes])\n\n    return x\n  \n# MReader with hop==1 can be viewed as rnet also\n# NOTICE mainly use this one\n# TODO word and char encoder can merge to one Encoder handle inputs with word and char\nclass MReader(ModelBase):\n  def __init__(self, embedding=None):\n    super(MReader, self).__init__(embedding)\n\n    Rnn = lele.layers.StackedBRNN \n    doc_hidden_size = self.encode.output_size\n\n    if FLAGS.use_label_att:\n      self.label_emb_height = NUM_CLASSES if not FLAGS.label_emb_height else FLAGS.label_emb_height\n      self.label_embedding = nn.Embedding(self.label_emb_height, FLAGS.emb_dim)\n      # here linear better or another rnn is better ?\n      if not FLAGS.use_label_rnn:\n        self.label_forward = nn.Linear(FLAGS.emb_dim, doc_hidden_size)\n      else:\n        self.label_forward = Rnn(\n              input_size=emb_dim,\n              hidden_size=self.num_units,\n              num_layers=1,\n              dropout_rate=self.dropout_rate,\n              dropout_output=False,\n              concat_layers=False,\n              rnn_type=FLAGS.cell,\n              padding=FLAGS.rnn_padding,\n          )    \n\n    # Interactive aligning, self aligning and aggregating\n    self.interactive_aligners = nn.ModuleList()\n    self.interactive_SFUs = nn.ModuleList()\n    self.self_aligners = nn.ModuleList()\n    self.self_SFUs = nn.ModuleList()\n    self.aggregate_rnns = nn.ModuleList()\n    \n    for i in range(FLAGS.hop):\n      # interactive aligner\n      if FLAGS.use_label_att:\n        self.interactive_aligners.append(layers.SeqAttnMatch(doc_hidden_size, identity=True))\n        self.interactive_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n      # self aligner\n      if FLAGS.use_self_match:\n        self.self_aligners.append(layers.SelfAttnMatch(doc_hidden_size, identity=True, diag=False))\n        self.self_SFUs.append(layers.SFU(doc_hidden_size, 3 * doc_hidden_size))\n        # aggregating\n        self.aggregate_rnns.append(\n            Rnn(\n                input_size=doc_hidden_size,\n                hidden_size=self.num_units,\n                num_layers=1,\n                dropout_rate=self.dropout_rate,\n                dropout_output=False,\n                concat_layers=False,\n                rnn_type=FLAGS.cell,\n                padding=FLAGS.rnn_padding,\n            )\n        )\n\n  def forward(self, input, training=False):\n    #print('------------', input['source'])\n    #print(input['id'])\n    x = input['content']\n    #print(x) \n    #print(x.shape)\n    x_mask = x.eq(0)\n    batch_size = x.size(0)\n    max_c_len = x.size(1)\n\n    x = self.unk_aug(x, x_mask)\n\n    if FLAGS.rnn_no_padding:\n      x_mask = torch.zeros_like(x, dtype=torch.uint8)\n\n    x = self.encode(input, x_mask, training=training)\n\n    if FLAGS.use_label_att:\n      label_emb = self.label_embedding.weight\n      label_seq = lele.tile(label_emb.unsqueeze(0), 0, batch_size)\n      x2_mask = torch.zeros(batch_size, self.label_emb_height).byte().cuda()\n      if not FLAGS.use_label_rnn:\n        label_seq = self.label_forward(label_seq)\n      else:\n        label_seq = self.label_forward(label_seq, x2_mask)\n      # Align and aggregate\n      c_check = x\n      q = label_seq\n    else:\n      c_check = x\n    \n    #print(c_check.shape, q.shape, x2_mask.shape)\n    for i in range(FLAGS.hop):\n      if FLAGS.use_label_att:\n        q_tilde = self.interactive_aligners[i].forward(c_check, q, x2_mask)\n        c_bar = self.interactive_SFUs[i].forward(c_check, torch.cat([q_tilde, c_check * q_tilde, c_check - q_tilde], 2))\n      else:\n        c_bar = c_check\n      if FLAGS.use_self_match:\n        c_tilde = self.self_aligners[i].forward(c_bar, x_mask)\n        c_hat = self.self_SFUs[i].forward(c_bar, torch.cat([c_tilde, c_bar * c_tilde, c_bar - c_tilde], 2))\n        c_check = self.aggregate_rnns[i].forward(c_hat, x_mask)\n    \n    x = c_check\n\n    x = self.pooling(x, x_mask)\n\n    self.feature = x\n\n    # not work well can ignore\n    if FLAGS.use_len:\n      x_len = torch.sum(input['content'] > 0, 1)\n      len_emb = self.len_embedding(x_len)\n      x = torch.cat([x, len_emb], -1)\n    \n    x = self.logits(x)  \n\n    x = x.view([-1, NUM_ATTRIBUTES, self.num_classes])\n\n    return x\n\nclass Fastai(ModelBase):\n  def __init__(self, embedding=None):\n    super(Fastai, self).__init__(embedding)\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n    emb_dim = FLAGS.emb_dim \n    self.num_classes = NUM_CLASSES\n    self.model = lele.fastai.text.classifier(vocab_size, \n                                             NUM_ATTRIBUTES * self.num_classes, \n                                             emb_sz=emb_dim,\n                                             nl=FLAGS.num_layers,\n                                             embedding_weight=FLAGS.word_embedding_file)\n\n  def forward(self, input, training=False):\n    x = input['content']\n\n    x = self.unk_aug(x)\n\n    # TODO ..\n    #x = x.permute(1, 0)\n    x = x.transpose(0, 1)\n    x = self.model(x)\n    \n    x = x[0]\n    x = x.view([-1, NUM_ATTRIBUTES, self.num_classes])\n\n    return x\n\n  \n# class Model(ModelBase):\n#   def forward(self, input, training=False):\n#     x = input['content'] \n#     x_mask = x.eq(0)\n#     batch_size = x.size(0)\n#     x = self.encode(input, x_mask, training=training)\n#     x = self.pooling(x, x_mask)\n#     x = self.logits(x)  \n#     x = x.view([-1, NUM_ATTRIBUTES, self.num_classes])\n#     return x\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/README.md",
    "content": "v3 is lstm version of v2 \nv4 is same as v2 but decay by f1 \n\nv5 back to using decay by f1 also all add num_finetune_words.. \n\nv9 refactor move encoder to wenzheng.pyt.BiLMEncoder \nv9 show bert opt better loss for both pyt and tf, and better loss also better f1 for tf, so tf will all using bert opt \n\nv9 with lm example \n\nfrom v11 will use aug mode by default  ?\n\nv12 after contest for ppt re run, but torch elmo wrong input(still improve.. but not as good as using correct one)\nv13 fix v12 bug of elmo \n\nv14 \nfor jieba best is ./v14/torch.self_attention.unkaug.elmo.finetune_6k.sh  \nfor sp20w best is ./v14/torch.self_attention.unkaug.elmo.no_finetune_word.sh  \n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.bucket.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.char.bucket/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key=content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.pos.ner.stanford.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.stanford/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.stanford/model/v1/$fold/$SRC/gru.char.pos.ner.stanford/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--vocab_min_count=200 \\\n        #--char_min_count=100 \\\n        #--tag_min_count=500 \\\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --tag_emb_dim=50 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.pos.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.char.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.pos.stanford.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.stanford/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.stanford/model/v1/$fold/$SRC/gru.char.pos.stanford.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--char_min_count=100 \\\n        #--tag_min_count=500 \\\npython $exe \\\n        --vocab_min_count=200 \\\n        --use_pos=1 \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.pos.stanford.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.stanford/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.stanford/model/v1/$fold/$SRC/gru.char.pos.stanford/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab_min_count=200 \\\n        --char_min_count=100 \\\n        --tag_min_count=500 \\\n        --use_pos=1 \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.char.stanford.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.stanford/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.stanford/model/v1/$fold/$SRC/gru.char.stanford/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab_min_count=200 \\\n        --char_min_count=100 \\\n        --tag_min_count=500 \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v1/gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --fold=$fold \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --rnn_no_padding=0 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/README.md",
    "content": "./torch.word.mreader.nopad.lm.ner.sh not work as complain embedding dim.. which now added 32 tag emb \n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.bow.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=bow \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.bow.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.bow.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        \npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_max_ratio=0.02 \\\n        --unk_aug_start_step=7000 \\\n        --num_finetune_words=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=bow \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.rnet.hidden300.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.rnet.$CELL.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.rnet.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.rnet.$CELL.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n    SRC='word.sp1w.ft'\n    echo 'use default SRC word.sp1w.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=1e-4 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.bert.cutfront.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer.bert.cutfront/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --cut_front=1 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=1e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.bert.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer.bert.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/100000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.bert.rnn.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer.bert.rnn.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --transformer_add_rnn=1 \\\n        --rnn_hidden_size=768 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/100000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.bert.rnn.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer.bert.rnn/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --transformer_add_rnn=1 \\\n        --rnn_hidden_size=400 \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.bert.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer.bert/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.char.transformer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n    SRC='word.sp1w.ft'\n    echo 'use default SRC word.sp1w.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.char.transformer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.mix.rnet.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.mix.rnet.$CELL.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.bow.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=bow \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.lm.rnet.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm.rnet.$CELL.rand/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.lm.rnet.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm.rnet.$CELL/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.mreader.hidden300.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.mreader.$CELL.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.mreader.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.mreader.$CELL.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.mreader.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.mreader.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --hop=1 \\\n        --att_combiner=sfu \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.3layer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden300.3layer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden300.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden300.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden400.decay6.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden400.decay6/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=6 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden400.lm.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden400.lm.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=1e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=0 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden400.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden400.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden400.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden400.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.hidden600.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.ner.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.bseg.ner.ft'\n  echo 'use default SRC word.bseg.ner.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --use_ner=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.nolatt.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.nolatt.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.nolatt.hidden600.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.nolatt.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnet.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnet.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/tf.word.rnetv2.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/tf.word.rnetv2.$CELL.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNetV2 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.char.mreader.nopad.bertopt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.char.mreader.nopad.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.char.mreader.nopad.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.char.mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.char.mreader.nopad.hidden600.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.char.mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.char.mreader.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.char.mreader.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.char.mreader.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.char.mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.lm.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.$CELL.hidden300/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=300 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=5000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.lm.hidden400.b24.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.$CELL.hidden400.b24/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 24 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=5000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.lm.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.$CELL.hidden400/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=5000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.lm.hidden600.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.$CELL.hidden600/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=600 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=5000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.lm.hidden768.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.$CELL.hidden768/\nnum_epochs=1\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=768 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --warmup_steps=5000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.lm.bertopt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.lm.$CELL.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.bertopt.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.bertopt.nolatt.unkaug.hidden600.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.bertopt.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL.bertopt.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.hidden600.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.bseg.ner.ft'\n  echo 'use default SRC word.bseg.ner.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.baike.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.baike/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.addbaike/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.baike.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.baike/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.addbaike/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.gru.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.gru.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden768.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden768/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.gru.hidden768/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=768 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.bertopt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.bseg.ner.ft'\n  echo 'use default SRC word.bseg.ner.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --tag_emb_dim=32 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.lm.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=$exe\n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.bseg.ner.ft'\n  echo 'use default SRC word.bseg.ner.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL/\n# should add ner ... forget.., change it in v11..\n#model_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --tag_emb_dim=32 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v10/torch.word.mreader.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.word.mreader.nopad.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/README.md",
    "content": "-----tf \nrnet.nolatt \nrnet \n\nlm\nft \nglove \n\njieba \nsp10w \nsp1w\nmix \nchar \n\nhidden 400\npadding \nconcat layers \nreccrent dropout \ngate attention \n\ntransformer (bert)\ntransformer (bert) + gru\n\n-----torch   \nmreader.nolatt \nmreader\n\nbertopt + unkaug \nadamax + loss decay \n\nhidden 768\nno padding \nnot concat layers\nsimple dropout \nsfu attention \n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.cutfront.finetune.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.cutfront.finetune.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --cut_front=1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=15 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.cutfront.finetune.3.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.cutfront.finetune.3/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --cut_front=1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=20 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.cutfront.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.cutfront.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --cut_front=1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=1e-5 \\\n        --min_learning_rate=5e-7 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=25 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.cutfront.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.cutfront/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --cutfront=1 \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.finetune.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --num_decay_epochs=15 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=6 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.finetune.3.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.3/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=20 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.finetune.4.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.4/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-4 \\\n        --min_learning_rate=5e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=6 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=4000 \\\n        --num_decay_epochs=20 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.finetune4.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.finetune.4/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.rnn.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.rnn.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --transformer_add_rnn=1 \\\n        --rnn_hidden_size=768 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n#5e-5 decay 8 epoch, then epoch 9 change to use 3e-5 decay 16 epoch\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.topkatt.cutfront.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.topkatt.cutfront/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --cut_front=1 \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.topkatt.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.topkatt.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=10 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.bert.topkatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.bert'\n  echo 'use default SRC char.bert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.bert.topkatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.nbert.finetune.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert.finetune.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# 3 5e-6 6 5e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=5e-7 \\\n        --num_decay_epochs=30 \\\n        --warmup_steps=6000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.nbert.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# from 72k epoch 16.45 change min lr from 5e-7 1e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.nbert.finetune.topkatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert.finetune.topkatt/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# from 72k epoch 16.45 change min lr from 5e-7 1e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 5000000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.nbert.finetune2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert.finetune2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# from 72k epoch 16.45 change min lr from 5e-7 1e-7\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=4e-6 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=30 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.nbert.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n#5e-5 decay 8 epoch, then epoch 9 change to use 3e-5 decay 16 epoch\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 5000000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.char.transformer.nbert.topkatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.char.transformer.nbert.topkatt/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n#5e-5 decay 8 epoch, then epoch 9 change to use 3e-5 decay 16 epoch\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 5000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.mix.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.mix.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.mix.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.mix.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.mreader.lm.2layer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm.2layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,0_3,0_4,0_5,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.mreader.lm.2layer.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm.2layer.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,0_3,0_4,0_5,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.mreader.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,0_3,0_4,0_5,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.mreader.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.mreader.$CELL.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,0_3,0_4,0_5,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.hidden600.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.lenemb.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.lenemb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --use_len=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.nolatt.hidden600.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.nolatt.hidden600/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=600 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.nolatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.unkaug.lenemb.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.unkaug.lenemb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --use_len=1 \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnet.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnet.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnetv2.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnetv2.$CELL.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,0_3,0_4,kernel_1,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNetV2 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnetv2.lm.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnetv2.$CELL.lm.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --unk_aug=1 \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,0_3,0_4,kernel_1,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNetV2 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnetv2.nolatt.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnetv2.nolatt.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/tf.word.rnetv2.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/tf.word.rnetv2.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNetV2 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.char.mreader.lm.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.lm.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.char.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.char.mreader.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.char.mreader.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.char.mreader.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.mix.mreader.lm.nolatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mix.mreader.lm.$CELL.nolatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.mix.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mix.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.mix.mreader.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mix.mreader.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=600,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.bertopt.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.baike.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.baike/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.addbaike/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.es.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden300.es/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.ls.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden300.ls/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.b24.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.sp20w.ft.pl'\n  echo 'use default SRC word.sp20w.ft.pl'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400.b24/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 16 \\\n        --buckets=500,1000 \\\n        --batch_sizes 16,8,4 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=7 \\\n        --warmup_steps=3000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.es.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400.es/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.ls.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400.ls/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.pl.b24.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.sp20w.ft.pl'\n  echo 'use default SRC word.sp20w.ft.pl'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400.pl.b24/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_soft_label=1 \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'1.record,'$dir/train/'2.record,',$dir/train/'3.record,'$dir/train/'4.record,'$dir/train/'5.record',$dir/train/'6.record,'$dir/test/'*,' \\\n        --valid_input=$dir/train/'0.record,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 16 \\\n        --buckets=500,1000 \\\n        --batch_sizes 16,8,4 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.pl.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.sp20w.ft.pl'\n  echo 'use default SRC word.sp20w.ft.pl'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400.pl/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_soft_label=1 \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/test/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.hidden768.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug.hidden768/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden768/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=768 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.unkaug.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.unkaug.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.unkaug.lenemb.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.unkaug.lenemb.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_len=1 \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.bertopt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.bertopt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden300.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug.hidden300/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden300/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug.hidden400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.hidden768.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug.hidden768/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden768/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=768 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.nolatt.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.nolatt.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v11/torch.word.mreader.nopad.lm.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='gru'\n  echo 'use default CELL gru'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.word.mreader.nopad.lm.$CELL.unkaug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.rnet.max_pooling.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.rnet.max_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.rnet.max_pooling.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.rnet.max_pooling.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.rnet/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.rnet.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.rnet.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.self_attention.max_pooling.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.self_attention.max_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.self_attention.max_pooling.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.self_attention.max_pooling.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.self_attention.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.self_attention/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.self_attention.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.self_attention.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden100.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden100/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden200.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden200/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.attention_pooling.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400.attention_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.elmo.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.max_pooling.elmo.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400.max_pooling.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --global_step=0 \\\n        --global_epoch=0 \\\n        --restore_exclude=adam,0_2,global_step,ignore,learning_rate \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.max_pooling.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400.max_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.max_pooling.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400.max_pooling.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.hidden400.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL.hidden400.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.baseline.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.baseline.$CELL/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.rnet.$CELL/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/tf.word.rnet.unkaug.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \n\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/tf.word.rnet.$CELL.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\npython $exe \\\n        --unk_aug=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=0 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.mreader.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.mreader.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.mreader.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.mreader/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.mreader.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.mreader.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.mreader.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.mreader.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.self_attention.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.self_attention.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.self_attention.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.self_attention/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.self_attention.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.self_attention.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.self_attention.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.self_attention.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden100.nochar.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden100.nochar/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden100.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden100/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden200.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden200/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden400.attention_pooling.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden400.attention_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden400.max_pooling.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden400.max_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden400.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden400/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden400.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.$CELL.nopad/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v12/torch.word.baseline.hidden400.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.self_attention.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.self_attention.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.self_attention.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.self_attention/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.self_attention.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.self_attention.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.self_attention.unkaug.elmo.valid_decay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.self_attention.unkaug.elmo.valid_decay/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.self_attention.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.self_attention.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.word.baseline.hidden400.unkaug.elmo.hack.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.word.baseline.hidden400.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v13/torch.word.baseline.hidden400.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v13/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/test.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/test/\nnum_epochs=8\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --share_fc=0 \\\n        --share_pooling=0 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 24 \\\n        --buckets=500,1000 \\\n        --batch_sizes 24,12,6 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/test2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/test2/\nnum_epochs=2\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size=32 \\\n        --batch_size_per_gpu=0 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps=1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps=1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/test3.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/test3/\nnum_epochs=8\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --share_fc=0 \\\n        --share_pooling=0 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'0.record,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.1gpu.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.1gpu.2/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.1gpu.3.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.1gpu.3/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=3 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.1gpu.3epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.1gpu.3epoch/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=1 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.1gpu.4.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.1gpu.4/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=4 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.1gpu.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.1gpu/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.2gpu.3epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.2gpu.3epoch/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.2gpu.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.2gpu/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=3 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.3epoch.lr2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr2/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.3epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.3epoch/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# from 72k epoch 16.45 change min lr from 5e-7 1e-7\npython $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=5 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=3 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch/\nnum_epochs=4\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=3e-5 \\\n        --warmup_proportion=0. \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.all_finetune.lr2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.all_finetune.lr2/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.all_finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.all_finetune/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.drop03.all_finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.drop03.all_finetune/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dropout=0.3 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.drop03.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.drop03/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dropout=0.3 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr10.all.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr10.all/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=1e-4 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr2/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr5.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr5/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w.ratio1.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w.ratio1/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=10000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=10000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w.topkatt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w.topkatt/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=10000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=topk \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.all.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.1w/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=10000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.lr8/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.no_finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.no_finetune/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=0 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.ratio1.lr.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.ratio1.lr.2/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=1 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-4 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.ratio1.lr.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.ratio1.lr/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=1 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=2e-4 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.ratio1.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch.ratio1/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\npython $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=6 \\\n        --batch_size_per_gpu=1 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.3epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.3epoch/\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.4epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.4epoch/\nnum_epochs=4\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.5epoch.3layer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.5epoch.3layer/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_num_layers=3 \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=32 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.5epoch.all_finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.5epoch.all_finetune/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.5epoch.lr5.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.5epoch.lr5/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.5epoch.lr8.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.5epoch.lr8/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.4gpu.5epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune.4gpu.5epoch/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/tf.char.transformer.nbert.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/tf.char.transformer.nbert.finetune/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# from 72k epoch 16.45 change min lr from 5e-7 1e-7\npython $exe \\\n        --bert_lr_ratio=0.1 \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --num_finetune_words=3000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=5 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=20 \\\n        --warmup_steps=4000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=0 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.all_finetune.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.all_finetune/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n        #--num_finetune_words=6000 \\\n        #--num_finetune_chars=3000 \\\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_100k.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_100k/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=100000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_10k.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_10k/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=10000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_20k.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_20k/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=20000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_50k.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_50k/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=50000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.batch32.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k.batch32/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size=32 \\\n        --buckets=1000 \\\n        --batch_sizes 32,16 \\\n        --length_key=content \\\n        --batch_size_per_gpu=0 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.batch8.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k.batch8/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size=8 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=200 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt.pad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt.pad/\nnum_epochs=8\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --share_fc=0 \\\n        --share_pooling=0 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.onlyatt/\nnum_epochs=8\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --share_fc=0 \\\n        --share_pooling=0 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.exclusive_fc/\nnum_epochs=8\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --share_fc=0 \\\n        --share_pooling=0 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k.exclusive_pooling/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --share_pooling=0 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.finetune_6k.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.finetune_6k/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.no_finetune.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.no_finetune/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n        #--num_finetune_words=6000 \\\n        #--num_finetune_chars=3000 \\\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --finetune_char_embedding=0 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.no_finetune_word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.no_finetune_word/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n        #--num_finetune_words=6000 \\\n        #--num_finetune_chars=3000 \\\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --finetune_char_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.no_finetune_word2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.no_finetune_word2/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n        #--num_finetune_words=6000 \\\n        #--num_finetune_chars=3000 \\\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=0 \\\n        --use_char=1 \\\n        --num_finetune_chars=3000 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --finetune_char_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.nochar.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.nochar/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.elmo.valid_decay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug.elmo.valid_decay/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.self_attention.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.self_attention.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.word.baseline.hidden100.nobuckets.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.word.baseline.$CELL.hidden100.nobuckets/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size=32 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.word.baseline.hidden100.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.word.baseline.$CELL.hidden100/\nnum_epochs=2\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size=32 \\\n        --batch_size_per_gpu=0 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps=1000 \\\n        --metric_eval_interval_steps=1000 \\\n        --save_interval_steps=1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.word.baseline.hidden400.unkaug.elmo.hack.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.word.baseline.hidden400.unkaug.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug.elmo/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.$CELL.hidden400/latest.pyt \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v14/torch.word.baseline.hidden400.unkaug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \n\nif [ $CELL ];\n  then echo 'CELL:' $CELL \nelse\n  CELL='lstm'\n  echo 'use default CELL lstm'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v14/$fold/$SRC/torch.word.baseline.$CELL.hidden400.unkaug/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --unk_aug=1 \\\n        --unk_aug_start_epoch=2 \\\n        --unk_aug_max_ratio=0.02 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=$CELL \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=400 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps=0 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=100 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v15/bert.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v15/$fold/$SRC/bert\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v15/bert2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.nbert'\n  echo 'use default SRC char.nbert'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v15/$fold/$SRC/bert2\nnum_epochs=3\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./$exe \n  model_dir=$1\n  fold=0\nfi\n\n# use 4 gpu to run if gtx1080ti FIXME now can only batc_size 2 * 4 .. why?\nCUDA_VISIBLE_DEVICES=0,1,2,3 python $exe \\\n        --bert_lr_ratio=1. \\\n        --bert_dir=$base/data/my-embedding/bert-char/ckpt/500000 \\\n        --model=Transformer \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size=24 \\\n        --batch_size_per_gpu=0 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=8e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.wchar.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.wchar.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.wchar.pos.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.wchar.pos.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.wchar.pos.ner.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.wchar.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.wchar.pos.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.wchar.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/rnet.wchar.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.wchar/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/torch.mreader.1hop.wchar.pos.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.wchar.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/torch.mreader.1hop.wchar.pos.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.wchar.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/torch.mreader.1hop.wchar.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.wchar/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v2/torch.mreader.2hop.wchar.pos.labelrnn.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.2hop.wchar.pos.labelrnn.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet.3layer/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.wchar.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet.wchar.3layer/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.wchar.pos.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet.wchar.pos.3layer/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.wchar.pos.ner.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet.wchar.pos.ner/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.wchar.pos.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet.wchar.pos/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/rnet.wchar.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_rnet.wchar/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_torch.mreader.1hop/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/torch.mreader.1hop.wchar.pos.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_torch.mreader.1hop.wchar.pos.ner/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/torch.mreader.1hop.wchar.pos.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_torch.mreader.1hop.wchar.pos/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/torch.mreader.1hop.wchar.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_torch.mreader.1hop.wchar/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v3/torch.mreader.2hop.wchar.pos.labelrnn.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/lstm_torch.mreader.2hop.wchar.pos.labelrnn.topkattlast/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.wchar.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.wchar.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.wchar.pos.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.wchar.pos.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.wchar.pos.ner.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.wchar.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.wchar.pos.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.wchar.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/rnet.wchar.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.wchar/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/torch.mreader.1hop.wchar.pos.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.wchar.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/torch.mreader.1hop.wchar.pos.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.wchar.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/torch.mreader.1hop.wchar.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.wchar/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v4/torch.mreader.2hop.wchar.pos.labelrnn.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.2hop.wchar.pos.labelrnn.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/README.md",
    "content": "now ./rnet.char.noconcat.sh ./rnet.char.residual.sh bad  \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.char.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.char.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.char.noconcat.residual.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.char.noconcat.residual/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --encoder_residual_connect=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.char.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.char.noconcat/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.char.residual.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.char.residual/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --encoder_residual_connect=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.mix.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.mix.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.mix.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.mix/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.word.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.word.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.word.pos.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.word.pos.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.word.pos.ner.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.word.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.word.pos.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.word.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/rnet.word.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.char.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.mix.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.mix/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.word.ner.fast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.word.ner.fast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.word.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.word.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.word.pos.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.word.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.word.pos.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.word.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.1hop.word.subner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.word.subner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --tag_emb_dim=32 \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v5/torch.mreader.2hop.word.pos.labelrnn.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.2hop.word.pos.labelrnn.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/README.md",
    "content": "now ./rnet.char.noconcat.sh ./rnet.char.residual.sh bad  \nnow get best result from word bseg ner \nnotice subner.sh with \n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.char.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.char.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.char.residual.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.char.residual/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --encoder_residual_connect=1 \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.adafactor.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix.adafactor/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adafactor \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.multistep.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix.multistep/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=multistep \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.natt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix.natt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,natt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.v1.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix.v1/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.mix.yellowfin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.mix.yellowfin/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=yellowfin \\\n        --learning_rate=0.1 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.word.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.word.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.word.adamax.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.word.adamax/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.word.pos.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.word.pos.3layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.word.pos.ner.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.word.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.word.pos.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.word.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnet.word.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/rnetv2.mix.natt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnetv2.mix.natt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=RNetV2 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key='content' \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,natt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.char.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=3000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.mix.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.mix/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.mix.v1.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.mix.v1/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.mix.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.mix.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.mix.v3.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.mix.v3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.latt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.latt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.ner.latt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.ner.latt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.pos.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.pos.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.pos.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.pos/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.subner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.subner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --tag_emb_dim=32 \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.1hop.word.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.word.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.mreader.2hop.word.pos.labelrnn.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.2hop.word.pos.labelrnn.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.gate.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.gate/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=0 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='gate' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.ner.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.ner/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.ner.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.ner.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.ner.v3.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.ner.v3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.ner.v4.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.ner.v4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.ner.v5.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.ner.v5/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=1 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=0 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=0 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='gate' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --torch_cudnn_rnn=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v6/torch.rnet.word.v4.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.rnet.word.v4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_ner=0 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --torch_cudnn_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v7/torch.mreader.1hop.word.latt.pad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.word.latt.pad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v7/torch.mreader.1hop.word.latt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.word.latt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v7/torch.mreader.1hop.word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v7/torch.mreader.1hop.word.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.word.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v7/torch.mreader.1hop.word.v3.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.word.v3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v7/torch.rnet.word.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.rnet.word.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --use_ner=0 \\\n        --use_pos=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.lm.mreader.word.nopad.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.lm.mreader.word.nopad.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_model=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.lm.mreader.word.nopad.rand2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.lm.mreader.word.nopad.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_model=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.0002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.lm.mreader.word.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.lm.mreader.word.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_model=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.lm.mreader.word.nopad2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.lm.mreader.word.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_model=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.00005 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.lm.mreader.word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/lm/$SRC/torch.lm.mreader.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_model=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.aug.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.aug/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --other_corpus_factor=0.3 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.seg.train/'*' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.chconv.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.chconv/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --char_encoder=conv \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.chpad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.chpad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --char_padding=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.curnn.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.curnn/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.latt.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.latt.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.latt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.latt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,latt \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.2layer.lm.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.2layer.lm.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.2layer.lm.rand2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.2layer.lm.rand2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.2layer.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.2layer.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.2layer.lm2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.2layer.lm2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=0.00001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.2layer.lm3.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.lm3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.lm.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.lm.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.lm2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad.lm2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.dynamic.transformer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.dynamic.transformer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=transformer \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.elmo.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.elmo/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=elmo \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.finetune.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.finetune2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.finetune2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=8000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.noam.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.noam/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --torch_lr=1 \\\n        --optimizer=noam \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.noam2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.noam2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --torch_lr=1 \\\n        --optimizer=noam \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v8/torch.mreader.word.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.word/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/README.md",
    "content": "./tf.word.rnet.attnodrop.sh worse then ./tf.word.rnet.sh so attention dropout needed \n./tf.word.rnet.bertopt.sh not work   \n\nfor tf here sfu works bad even for mreader, just using dot TODO FIXME\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.5epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.5epoch/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,384,512 \\\n        --batch_sizes 32,16,14,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.bert.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.bert/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.lm.10epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.lm.10epoch/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,384,512 \\\n        --batch_sizes 32,16,14,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.lm.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.lm.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,384,512 \\\n        --batch_sizes 32,16,14,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-4 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.lm.5epoch.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.lm.5epoch.finetune/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-6 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.lm.5epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.lm.5epoch/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --bert_dir=$base/data/word-emb/chinese_L-12_H-768_A-12 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.rand.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,512 \\\n        --batch_sizes 32,16,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --min_learning_rate=1e-7 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.char.transformer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.char.transformer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n        #bert handle word embedding ..\n        #--word_embedding_file=$dir/emb.npy \\\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=Transformer \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --content_limit=512 \\\n        --buckets=128,256,320,384,512 \\\n        --batch_sizes 32,16,14,12,6,2 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=5e-5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.lm.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm.2layer/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.lm.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm.rand/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.9 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.lm.rnet.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.mreader.sfu.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.mreader.sfu/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --att_combiner=sfu \\\n        --hop=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.mreader.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.mreader/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --hop=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=MReader \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.attnodrop.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.attnodrop/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --att_dropout=0 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.bertopt.10epoch.2.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.bertopt.10epoch.2/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.bertopt.10epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.bertopt.10epoch/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.bertopt.15epoch.d5.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.bertopt.15epoch.d5/\nnum_epochs=15\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --min_learning_rate=1e-5 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.bertopt.5epoch.finetune.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.bertopt.5epoch.finetune/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.0001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.bertopt.5epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.bertopt.5epoch/\nnum_epochs=10\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.bertopt.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n        #--decay_target=loss \\\n        #--decay_patience=1 \\\n        #--decay_factor=0.8 \\\n        #--decay_start_epoch_=2. \\\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.lm.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/tf.word.lm/ \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.rand.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.rnet.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.rnet/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.transformer.5epoch.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.transformer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/tf.word.transformer.sh",
    "content": "base=./mount\n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/tf.word.transformer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --model=RNet \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam_t2t \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.lstm.nopad.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm.lstm.nopad.rand/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.9 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.lstm.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm.lstm.nopad/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.lstm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm.lstm/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.nopad.addbaike.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm.nopad.addbaike/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/train.baike/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.nopad.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm.nopad.rand/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.9 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm.nopad/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='char.ft'\n  echo 'use default SRC char.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.char.lm/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.mreader.2layer.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.char.mreader.2layer.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.mreader.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.char.mreader.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.char.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.mreader.nopad.pos.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.char.mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_pos=1 \\\n        --tag_emb_dim=32 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.char.mreader.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.char.mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --use_char=0 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.2layer.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.2layer.nopad/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.2layer/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.lstm.nopad.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.lstm.nopad.rand/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.9 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.lstm.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.lstm.nopad/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.lstm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.lstm/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.nopad.addbaike.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.addbaike/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --other_corpus_factor=0.1 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/train.baike/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.nopad.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.rand/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.9 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba'\n  echo 'use default SRC word.jieba'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/lm/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm/\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-lm-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=BiLanguageModel \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=0.1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=0.1 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lstm.mreader.2layer.nopad.latt6.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.lstm.mreader.2layer.nopad.latt6.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.lstm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=6 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lstm.mreader.2layer.nopad.latt80.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.lstm.mreader.2layer.nopad.latt80.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.lstm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=80 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lstm.mreader.2layer.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.lstm.mreader.2layer.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.lstm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.lstm.mreader.2layer.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.lstm.mreader.2layer.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.lm.bertopt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.lm.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nolatt.lm.bertopt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nolatt.lm.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nolatt.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nolatt.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.cw.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.cw/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_load_optimizer=0 \\\n        --use_class_weights=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.labelrnn.2hop.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.labelrnn.2hop.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.labelrnn.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.labelrnn.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.latt6.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.latt6.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=6 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.latt80.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.latt80.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=80 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.3.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.4.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.5.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.5/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad.long/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.beropt.d5.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.bertopt.d5/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.beropt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --warmup_steps=2000 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad.rand/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.lm.v2.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.lm.v2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_lr_factor=0.1 \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.nolatt.lm.bertopt.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.nolatt.lm.bertopt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=bert \\\n        --learning_rate=0.002 \\\n        --min_learning_rate=5e-6 \\\n        --num_decay_epochs=5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.nolatt.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad.nolatt.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.2layer.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.2layer.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.3layer.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.3layer.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.3layer.nopad.nolatt.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.3layer.nopad.nolatt.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.nopad.cw.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.nopad.cw/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_class_weights=1 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.mreader.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.mreader/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnet.2layer.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnet.2layer.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnet.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnet.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnet.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnet.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnet.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnet/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnn.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnn.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_finetune=1 \\\n        --torch_load_optimizer=0 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnn.nopad.lm.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnn.nopad.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --lm_path=$base/temp/ai2018/sentiment/model/lm/$SRC.long/torch.word.lm.nopad/latest.pyt \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=MReader \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnn.nopad.rand.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnn.nopad.rand/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_finetune=1 \\\n        --torch_load_optimizer=0 \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnn.nopad.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnn.nopad/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --rnn_padding=0 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train/v9/torch.word.rnn.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.jieba.ft'\n  echo 'use default SRC word.jieba.ft'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.word.rnn/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --dynamic_finetune=1 \\\n        --num_finetune_words=6000 \\\n        --num_finetune_chars=3000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=RNet \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets=500,1000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adamax \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom wenzheng.utils import input_flags \n\n# import projects\n# algos = projects.ai2018.sentiment.algos\n#from algos.model import *\nfrom algos.loss import criterion\nimport algos.model as base\nfrom dataset import Dataset\nimport evaluate as ev\n\ndef main(_):\n  FLAGS.num_folds = 8\n  FLAGS.model = FLAGS.model or 'RNet'\n  melt.apps.init()\n\n  ev.init()\n\n  embedding = None\n  if FLAGS.word_embedding_file and os.path.exists(FLAGS.word_embedding_file):\n    embedding = np.load(FLAGS.word_embedding_file)\n    FLAGS.emb_dim = embedding.shape[1]\n\n  model = getattr(base, FLAGS.model)(embedding)\n\n  logging.info(model)\n\n  train = melt.apps.get_train()\n\n  init_fn = None\n  # TODO FIXME should like below but now has problem \n  #     File \"/home/gezi/mine/wenzheng/utils/melt/util.py\", line 38, in create_restore_fn\n  #     assert variables_to_restore, tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)\n  # AssertionError: [<tf.Variable 'learning_rate_weight:0' shape=() dtype=float32_ref>, <tf.Variable 'init_fw_0:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_bw_0:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_fw_0_1:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_fw_1:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_bw_0_1:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_bw_1:0' shape=(1, 200) dtype=float32>, <tf.Variable 'embedding_kernel:0' shape=(20, 300) dtype=float32>, <tf.Variable 'init_fw_0_2:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_bw_0_2:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_fw_0_3:0' shape=(1, 200) dtype=float32>, <tf.Variable 'init_bw_0_3:0' shape=(1, 200) dtype=float32>]\n\n  # if FLAGS.lm_path:\n  #   init_fn = melt.create_restore_fn(FLAGS.lm_path, FLAGS.model, 'TextEncoder')\n\n  train(Dataset,\n        model,  \n        criterion,\n        eval_fn=ev.evaluate,\n        init_fn=init_fn, \n        valid_write_fn=ev.valid_write,\n        infer_write_fn=ev.infer_write,\n        valid_suffix='.valid.csv',\n        infer_suffix='.infer.csv')   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/README.md",
    "content": "v4 try to use canyin embeddings \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.emb.fix.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.emb.fix/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.emb.warm.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.emb.warm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=/home/gezi/temp/ai2018/sentiment.v1/model/v4/gru.5k.canyin.mix.dianping/word-embedding.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.labelatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.labelatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.labelatt.simple.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.labelatt.simple/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --simple_label_att=1 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.mdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.mdecay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/bow.topk-3att.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/bow.topk-3att.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/convnet.topk-3att.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/convnet.topk-3att.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=convnet \\\n        --keep_prob=0.7 \\\n        --num_layers=4 \\\n        --num_filters=128 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/crnn.topk-3att.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/crnn.topk-3att.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=convnet,rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --num_filters=128 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.2layer.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.2layer.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.2layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.att/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=attention \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.att2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.att2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=attention2 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.emb.finetune.later.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.emb.finetune.later/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.emb.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.emb.fix.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.emb.fix/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.emb.warm.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.emb.warm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=/home/gezi/temp/ai2018/sentiment.v1/model/v4/gru.5k.canyin.mix.dianping/word-embedding.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.f05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.f05/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.f07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.f07/\nnum_epochs=21\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.f09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.f09/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=2 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.focal.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.focal/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss='focal' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.focal2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.focal2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss='focal' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.hidden200/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.label.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_emb=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.maxatt.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.maxatt.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max,attention \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.maxatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.maxatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max,attention \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.maxmean.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.maxmean/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max,mean \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mdecay.f09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mdecay.f09/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=80 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mdecay.p2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mdecay.p2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=80 \\\n        --decay_target=f1 \\\n        --decay_patience=2 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mdecay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=80 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mdecay2.f07.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mdecay2.f07/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.7 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mdecay2.f09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mdecay2.f09/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mdecay2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mdecay2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.mean.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.mean/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=mean \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.naonly.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.naonly/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_ratio=1. \\\n        --na_ratio_add=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.naratio01.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.naratio01/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_ratio=0.1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.naratio1.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.naratio1/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_ratio=1. \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.nodecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.nodecay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.p2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.p2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=2 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.2layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.10epoch.decay05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.10epoch.decay05/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --learning_rate_cosine_m_mul=0.5 \\\n        --num_epochs_per_decay=10. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.10epoch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.10epoch/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --num_epochs_per_decay=10. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.5epoch.decay01.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.5epoch.decay01/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --learning_rate_cosine_m_mul=0.1 \\\n        --num_epochs_per_decay=5. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.5epoch.decay04.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.5epoch.decay04/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --learning_rate_cosine_m_mul=0.4 \\\n        --num_epochs_per_decay=5. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.5epoch.decay08.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.5epoch.decay08/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --learning_rate_cosine_m_mul=0.8 \\\n        --num_epochs_per_decay=5. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.5epoch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.5epoch/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --num_epochs_per_decay=5. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.decay05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.decay05/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --learning_rate_cosine_m_mul=0.5 \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.decay08.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine.decay08/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --learning_rate_cosine_m_mul=0.8 \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.cosine.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.cosine/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --learning_rate_method='cosine' \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.earth.na.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.earth.na/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --earth_mover_loss_ratio=0.1 \\\n        --na_loss_ratio=0.1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.earth.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.earth/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --earth_mover_loss_ratio=0.1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.hier.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.hier/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_hier_encode=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.label.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.label/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_emb=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.labelatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.labelatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.mlp.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.mlp.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mlp_ratio=-1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.mlp.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.mlp/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mlp_ratio=-1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.mlp05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.mlp05/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mlp_ratio=0.5 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.mlp1.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.mlp1/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --mlp_ratio=1. \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.na.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3.na/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_loss_ratio=0.1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.hier.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.hier/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_hier_encode=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.label.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.label/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_emb=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.10w.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord.10w.emb.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model.10w.emb.dianping/gru.topk-3att.2layer.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.1w.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord.1w.emb.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model.1w.emb.dianping/gru.topk-3att.2layer.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.mdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.mdecay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.naonly.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.naonly.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --binary_class_index=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.naonly.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.naonly/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --binary_class_index=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio01.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio01.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --na_loss_ratio=0.1 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio01.finetune2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio01.finetune2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --na_loss_ratio=0.1 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio01.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio01/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_loss_ratio=0.1 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio05/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_loss_ratio=0.5 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio1.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.naratio1/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_loss_ratio=1. \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20.selfmatch/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.height20.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.height20/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.mdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.mdecay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb.sfu/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --att_combiner=sfu \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.finetune.d05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\n#finetune from epoch 7 train using gru.topk-3att.2layer.labelatt.sh\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.finetune.d05/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --restore_exclude=learning_rate_weights,learning_rate \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0003 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\n#finetune from epoch 7 train using gru.topk-3att.2layer.labelatt.sh\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --restore_exclude=learning_rate_weights,learning_rate \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.0003 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.labelatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer.labelatt/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att.2layer/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-3att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-3att/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=4 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-5/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=5 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk-6.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk-6/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --top_k=6 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.topk.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.topk/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.0.naratio01.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.0.naratio01/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_ratio=0.1 \\\n        --attr_index=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.0.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.0/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --attr_index=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.location.naratio01.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.location.naratio01/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --na_ratio=0.1 \\\n        --aspect='location' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.location.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.location/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='location' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.service.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.service/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='service' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.service.topk.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.service.topk/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='service' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.service0.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.service0/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='service-0' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/gru.weights.service0.topk.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/gru.weights.service0.topk/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='service-0' \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/qanet.topk-3att.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/qanet.topk-3att.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=qanet \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --num_filters=128 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v1/rcnn.topk-3att.labelatt.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/rcnn.topk-3att.labelatt.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn,convnet \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --num_filters=128 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.1w.2layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.1w.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.1w.2layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.1w.2layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.1w.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.1w.2layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.1w.2layer.topk3att.labelatt80.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.1w.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.1w.2layer.topk3att.labelatt80.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.1w.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.1w.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.1w.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.1w.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.1w.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.1w.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.1w.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.1w.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.1w.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.2layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.2layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.2layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.2layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.2layer.topk3att.labelatt80.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.2layer.topk3att.labelatt80.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.aspect.dish.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.aspect.dish\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='dish' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.aspect.environment.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.aspect.environment\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='environment' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.aspect.location.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.aspect.location\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='location' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.aspect.others.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.aspect.others\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='others' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.aspect.price.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.aspect.price\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='price' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.aspect.service.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.aspect.service\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='service' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.keep06.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.keep06\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.6 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.keep08.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.keep08\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.8 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.keep09.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.keep09\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.9 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.labelemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.labelemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_emb=1 \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.labelrnn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.sfu\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --att_combiner=sfu \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.tanh.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.tanh\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt10.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt10.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=10 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200.sfu\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --att_combiner=sfu \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden300.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden300\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt20\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt40.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt40.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=40 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.5k.wordpretrain_glove_dianping.3layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.5k.wordpretrain_glove_dianping.3layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.2layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.2layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.2layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.2layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.2layer.topk3att.labelatt80.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.2layer.topk3att.labelatt80.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.aspect.dish.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.aspect.dish\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='dish' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.aspect.environment.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.aspect.environment\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='environment' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.aspect.location.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.aspect.location\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='location' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.aspect.others.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.aspect.others\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='others' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.aspect.price.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.aspect.price\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='price' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.aspect.service.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.aspect.service\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect='service' \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden300.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.hidden300\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.wordpretrain_glove_dianping.2layer.topk3att.labelatt80.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=80 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.wordpretrain_glove_dianping.3layer.topk3att.labelatt20.selfmatch.hidden200.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.wordpretrain_glove_dianping.3layer.topk3att.labelatt20.selfmatch.hidden200\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v2/gru.char.wordpretrain_glove_dianping.3layer.topk3att.labelatt20.selfmatch.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/gru.char.wordpretrain_glove_dianping.3layer.topk3att.labelatt20.selfmatch\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru-5k-ftwiki.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.fasttext.wiki/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.ftwiki\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru-5k-labelrnn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.labelrnn\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru-5k-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru-baseline-att.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.baseline.att\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru-baseline-ftwiki.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.fasttext.wiki/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.baseline.ftwiki\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru-baseline.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.baseline\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru.5k.mreader.2hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.mreader.2hop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV3 \\\n        --hop=2 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru.5k.mreader.sfu.2hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.mreader.sfu.2hop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV3 \\\n        --hop=2 \\\n        --att_combiner=sfu \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru.5k.mreader.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.mreader.sfu\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV3 \\\n        --att_combiner=sfu \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru.5k.mreader.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.mreader\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV3 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru.5k.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k.sfu\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV2 \\\n        --att_combiner=sfu \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/gru.5k.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV2 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-att-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.att.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-att-pad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.att.pad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_padding=1 \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-att-v2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.att.v2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV2 \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-pad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.pad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_padding=1 \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-v2-ftwiki.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.fasttext.wiki/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.v2.ftwiki\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV2 \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline-v2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline.v2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV2 \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-baseline.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.baseline\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-labelatt-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.labelatt.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-labelatt-sfu-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.labelatt.sfu.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-rnet-curnn-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.rnet.curnn.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1000,2000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-rnet-curnn-sfu-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.rnet.curnn.sfu.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1000,2000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-rnet-curnn-sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.rnet.curnn.sfu\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1000,2000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-rnet-curnn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.rnet.curnn\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --rnn_no_padding=0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1000,2000 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-rnet-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.rnet.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-gru-rnet-sfu-nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.gru.rnet.sfu.nopad\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-mreader-1hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment.v1/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment.v1/model/v3/torch.mreader.1hop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\n        #--buckets 1200 \\\n        #--batch_sizes 32,16 \\\n        #--length_key content \\\npython $exe \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-mreader-2hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.mreader.2hop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-mreader-labelrnn-1hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.mreader.labelrnn.1hop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v3/torch-mreader-labelrnn-2hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/torch.mreader.labelrnn.2hop\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-char-addneubinary-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.char.addneubinary.finetune\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-char-addneubinary-trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.char.addneubinary.trans\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-char-addneubinary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.char.addneubinary\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.char\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addbinaries-trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addbinaries.trans\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_binaries \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addbinaries.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addbinaries\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_binaries \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addnabinary-finetune-epoch5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addnabinary.finetune.epoch5\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_binary_0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addnabinary-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addnabinary.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_binary_0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addnabinary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addnabinary\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_binary_0 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addnaneubinary-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addnaneubinary.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_binary_0,2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addneubinary-finetune-epoch5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addneubinary.finetune.epoch5\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addneubinary-finetune-factor2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addneubinary.finetune.factor2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --other_loss_factor=2. \\\n        --loss_type=add_binary_2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addneubinary-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addneubinary.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addneubinary-trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addneubinary.trans\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addneubinary.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addneubinary.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-addneubinary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.addneubinary\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-binariesonly.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.binariesonly\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=binaries_only \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-cotrain.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.cotrain\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --ther_corpus_factor=0.1  \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/dianping/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-deformcanyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.deformcanyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --other_corpus_factor=1. \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/canyin/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-deformdianping-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.dianping.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --restore_include='model/embedding/embedding_kernel' \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-deformdianping.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.dianping\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --defrom_ratio=1. \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/dianping/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-finetune-dianpingemb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.finetune.dianpingemb\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=/home/gezi/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.dianping/word-embedding.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-hier-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.hier.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=hier \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-hier-trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.hier.trans\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=hier \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-hier.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.hier\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=hier \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-hierneu-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.hierneu.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=hier_neu \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-neubinary-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.neubinary.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=binary_2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-neubinary-trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.neubinary.trans\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=binary_2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-neubinary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.neubinary\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=binary_2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersAgainOnly.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersAgainOnly\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect=others_willing_to_consume_again \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersOnly.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersOnly\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect=others \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersOverallOnly.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersOverallOnly\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --aspect=others_overall_experience \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersOverallW2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersOverallW2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --weights=others_overall_experience:2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersOverallW5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersOverallW5\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --weights=others_overall_experience:5 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersW10.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersW10\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --weights=others:10 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersW2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersW2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --weights=others:2 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-othersW5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.othersW5\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --weights=others:5 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-regression-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.regression.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=regression \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-regression.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.regression\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=regression \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-small.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.small\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --content_limit=500 \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-trans.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.trans.2\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.005 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-trans.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.trans.3\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix-trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix.trans\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin-mix.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin.mix\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-hier-canyin-finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.hier.canyin.finetune\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --hier_finetune=1 \\\n        --loss_type=hier \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-hier-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.hier.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --loss_type=hier \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-lattonly-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.lattonly.canyin.char\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-maxmean-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.maxmean.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=max,mean \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv2-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv2.canyin.char\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=RNetV2 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv2-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv2.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=RNetV2 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv2-sfu-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv2.sfu.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --att_combiner=sfu \\\n        --model=RNetV2 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv3-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv3.canyin.char\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=RNetV3 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv3-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv3.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=RNetV3 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv3-selfmatchonly-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv3.selfmatchonly.canyin.char\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=RNetV3 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-rnetv4-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.rnetv4.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=RNetV4 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-selfmatchonly-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.selfmatchonly.canyin.char\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-topk3attmean-canyin-char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.topk3attmean.canyin.char\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,mean \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-topk3attmean-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.topk3attmean.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,mean \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru-5k-topk3mean-canyin.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/gru.5k.topk3mean.canyin\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,mean \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/gru.5k.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/gru.5k\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=ModelV2 \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/rcnn-k5-canyin-mix.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/rcnn.5k.canyin.mix\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --model=Model \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn,convnet \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --num_filters=128 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/torch-mreader-trans.sh",
    "content": "base=./mount\n#dir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/torch.mreader.trans\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200,2000 \\\n        --batch_sizes 32,16,4 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v1/v4/torch-mreader.sh",
    "content": "base=./mount\n#dir=$base/temp/ai2018/sentiment/tfrecord.5k.glove.dianping/\ndir=$base/temp/ai2018/sentiment/tfrecord.5k.mix.glove.canyin/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/torch.mreader\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nmode=train\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  #exe=./infer.py \n  mode=valid \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"3\"  ]; \n  then echo \"TEST MODE\" \n  #exe=./infer.py \n  mode=test\n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"4\"  ]; \n  then echo \"VALID+TEST MODE\" \n  #exe=./infer.py \n  mode=valid,test\n  model_dir=$1\n  fold=0\nfi\n\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --use_label_att=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --valid_input=$dir/valid/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --top_k=3 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n        --mode=$mode \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/README.md",
    "content": "py run.py qiano  \n\nv3 use lstm cell\nv4 same as v3 but decay by adjusted_f1 not f1  \n\nv4 also for weights decay use decay factor 0.9   \n\nv5 same as v4 but decay by loss , decay factor 0.5 for weights decay\n\nv6 same as v5 but decay by auc  \n\n\nv7 word + char gru decay start 3\nv8 decay start 2 \nv9 decay start 1\nv10 decay start 2, lstm \nv11 decay start 1, lstm \nv12 same as v11 but sfu combine word and char\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.emb.binary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.emb.binary/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=binary \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.ori.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.ori.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.ori.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.ori/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.simplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.simplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.testori.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.testori/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/bow.testsimplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/bow.testsimplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.400.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 400 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.char.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.char.sfu/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=sfu \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.adjust.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.adjust/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.cw.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.cw/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_class_weights=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.decay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.decay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_start_epoch=1. \\\n        --learning_rate_decay_factor=0.9 \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.decay2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.decay2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_start_epoch=1. \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.last.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.last/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.lastmax.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.lastmax/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last,max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.lastmaxmean.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.lastmaxmean/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last,max,mean \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.loss.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.loss/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.norec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.norec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=0 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=gru \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.rec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.rec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=gru \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.rec.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb.rec.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=gru \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.smooth.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.emb.smooth/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_smoothing=0.1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.emb.trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.emb.trans/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,',$dir/trans/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.lm.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.lm.3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.lm.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.lm.emb/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.lr0002.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.lm.lr0002/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.pretrain.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.lm.pretrain/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.lm.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.ori.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.ori.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.ori.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.ori/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/gru/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.simplify.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.simplify.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.simplify.emb.addneubinary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.simplify.emb.addneubinary/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.simplify.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.simplify.emb.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_folds=8 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.simplify.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.simplify.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.simplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.simplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.testsimplify.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.testsimplify.emb.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_folds=8 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.testsimplify.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.testsimplify.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/gru.testsimplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/gru.testsimplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/lstm.emb.norec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/lstm.emb.norec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=0 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/lstm.emb.rec.2layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/lstm.emb.rec.2layer.noconcat/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/lstm.emb.rec.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/lstm.emb.rec.2layer.noconcat.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/lstm.emb.rec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/lstm.emb.rec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/lstm.emb.rec.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/lstm.emb.rec.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/lstm.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/lstm.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/rnet.char.ft.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.ft.10epoch/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/rnet.char.ft/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/rnet.char.glove.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.15epoch/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/rnet.char.glove/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.fastai.1layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.fastai.1layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.fastai.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.fastai.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.fastai.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.fastai.3/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.fastai.4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.fastai.4/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.fastai.5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.fastai.5/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.fastai.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.fastai/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.gru.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.gru.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=gru \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.gru/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=gru \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.1layer.labelatt.2hop.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.1layer.labelatt.2hop.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_hop=2 \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --learning_rate_start_factor=10. \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.1layer.labelatt.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.1layer.labelatt.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.2layer.noconcat.labelatt.gate.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.2layer.noconcat.labelatt.gate.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='gate' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.2layer.noconcat.labelatt.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.2layer.noconcat.labelatt.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.2layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.2layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.2layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.evpadd.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.evpadd/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=0 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.max.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.max.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.max/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.padd.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.padd/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.recdrop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm.recdrop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstm.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstm/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstmV2.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstmV2.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstmV2.bwdrop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstmV2.bwdrop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bw_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstmV2.norec.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstmV2.norec.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --recurrent_dropout=0 \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstmV2.norec.nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstmV2.norec.nopad/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --recurrent_dropout=0 \\\n        --rnn_no_padding=1 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstmV2.norec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstmV2.norec/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --recurrent_dropout=0 \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.lstmV2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.lstmV2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.rnet.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.rnet.2layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.006 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1/torch.rnetV2.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1/$fold/$SRC/torch.rnetV2.2layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --torch_cudnn_rnn=1 \\\n        --recurrent_dropout=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.emb.binary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.emb.binary/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=binary \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.ori.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.ori.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.ori.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.ori/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.simplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.simplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.testori.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.testori/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/bow.testsimplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/bow.testsimplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=bow \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.400.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.400/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 400 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.char.sfu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.char.sfu/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=sfu \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.adjust.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.adjust/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.char.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.char.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2.4 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.char.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.char.3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2.4 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.char.4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.char.4/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=3. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.char.5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.char.5/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_learning_rate_weights=20 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=3. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.char.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.char/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --char_combiner=concat \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.cw.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.cw/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_class_weights=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.decay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.decay/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_start_epoch=1. \\\n        --learning_rate_decay_factor=0.9 \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.decay2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.decay2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_start_epoch=1. \\\n        --learning_rate_decay_factor=0.8 \\\n        --num_epochs_per_decay=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.last.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.last/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.lastmax.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.lastmax/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last,max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.lastmaxmean.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.lastmaxmean/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=last,max,mean \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.loss.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.loss/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.norec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.norec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=0 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=gru \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.rec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.rec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=gru \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.rec.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb.rec.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=gru \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.smooth.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.emb.smooth/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_smoothing=0.1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.emb.trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.emb.trans/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,',$dir/trans/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.lm.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.lm.3/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.lm.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.lm.emb/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.lr0002.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.lm.lr0002/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.pretrain.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.lm.pretrain/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.lm.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru.lm/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.ori.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.ori.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/aug.test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.ori.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.ori/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/aug.train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/gru/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.simplify.emb.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.simplify.emb.2/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.simplify.emb.addneubinary.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.simplify.emb.addneubinary/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.simplify.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.simplify.emb.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_folds=8 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.simplify.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.simplify.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.simplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.simplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.testsimplify.emb.finetune.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.testsimplify.emb.finetune/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_folds=8 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.testsimplify.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.testsimplify.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/gru.testsimplify.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/gru.testsimplify/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/lstm.emb.norec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/lstm.emb.norec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=0 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/lstm.emb.rec.2layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/lstm.emb.rec.2layer.noconcat/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/lstm.emb.rec.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/lstm.emb.rec.2layer.noconcat.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/lstm.emb.rec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/lstm.emb.rec/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/lstm.emb.rec.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/lstm.emb.rec.topkattlast/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/lstm.emb.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/lstm.emb/\nnum_epochs=20\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=lstm \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/rnet.char.ft.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.ft.10epoch/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/rnet.char.ft/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/rnet.char.glove.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecord.char.glove.15epoch/\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/rnet.char.glove/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.fastai.1layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.fastai.1layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.fastai.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.fastai.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.fastai.3.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.fastai.3/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.fastai.4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.fastai.4/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.fastai.5.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.fastai.5/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.fastai.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.fastai/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Fastai \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.gru.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.gru.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=gru \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.gru.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.gru/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=gru \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.1layer.labelatt.2hop.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.1layer.labelatt.2hop.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_hop=2 \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --learning_rate_start_factor=10. \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.1layer.labelatt.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.1layer.labelatt.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.2layer.noconcat.labelatt.gate.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.2layer.noconcat.labelatt.gate.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='gate' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.2layer.noconcat.labelatt.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.2layer.noconcat.labelatt.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.2layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.2layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.2layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.2layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.evpadd.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.evpadd/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=0 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.max.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.max.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.max.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.max/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=max \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.padd.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.padd/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --rnn_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.recdrop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm.recdrop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --recurrent_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstm.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstm/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstmV2.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstmV2.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstmV2.bwdrop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstmV2.bwdrop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --bw_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstmV2.norec.2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstmV2.norec.2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --recurrent_dropout=0 \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstmV2.norec.nopad.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstmV2.norec.nopad/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --recurrent_dropout=0 \\\n        --rnn_no_padding=1 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstmV2.norec.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstmV2.norec/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --recurrent_dropout=0 \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.lstmV2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.lstmV2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=ModelV2 \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.rnet.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.rnet.2layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.006 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v1.1/torch.rnetV2.2layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v1.1/$fold/$SRC/torch.rnetV2.2layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --torch_cudnn_rnn=1 \\\n        --recurrent_dropout=1 \\\n        --model=Model \\\n        --cell=lstm \\\n        --use_self_match=0 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v10/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v10/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v10/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v11/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v11/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v11/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v12/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --char_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v12/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v12/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --char_combiner=sfu \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/README.md",
    "content": "v2 change to use lstm as cell \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.3layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.3layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.3layer.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/rnet.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.1hop.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.1hop.2layer.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.1hop.decay09.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.decay09/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.1hop.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.labelrnn.2hop.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.labelrnn.2hop.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreader.labelrnn.2hop.2layer.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.labelrnn.2hop.2layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2/torch.mreaderV2.1hop.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreaderV2.1hop.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/README.md",
    "content": ".fine means finetune, normal will be from epoch 5\n.fine2 means finetune from epoch 10  or best model \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/convnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/convnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=cnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/qanet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/qanet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=qanet \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.3layer.fine.lr10.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.fine.lr10/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.01 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.3layer.fine.lr2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.fine.lr2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.3layer.fine.lr4.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.fine.lr4/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.004 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.3layer.fine.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer.fine/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/aug.train/'*,' \\\n        --valid_input=$dir/train/$fold'.record,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.3layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.addneu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.addneu/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.fine.addneu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.fine.addneu/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.fine.trans.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nexport EVFIRST=1\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.fine.trans/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.fine.trans01.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nexport EVFIRST=1\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.fine.trans01/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --other_corpus_factor=0.1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.fine.trans05.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nexport EVFIRST=1\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.fine.trans05/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi \n\npython $exe \\\n        --other_corpus_factor=0.5 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,'$dir/trans/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.fine2.addneu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.fine2.addneu/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.hidden300.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.hidden300/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=300 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.labelrnn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.labelrnn/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.latt10.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.latt10/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=10 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.latt80.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.latt80/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=80 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.maxmeanatt.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet.maxmeanatt/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=max,mean,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/rnetv2.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/rnetv2/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --model=RNetV2 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/torch.mreader.1hop.labelrnn.addneu.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.labelrnn.addneu/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --loss_type=add_neu_binary \\\n        --use_label_rnn=1 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/torch.mreader.1hop.labelrnn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop.labelrnn/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/torch.mreader.1hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/torch.mreader.2hop.labelrnn.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.2hop.labelrnn/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v2.old/torch.mreader.2hop.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v2/$fold/$SRC/torch.mreader.2hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_rnn=0 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/README.md",
    "content": "v3 change to use lstm as cell \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.3layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.3layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.3layer.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.3layer.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.3layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.3layer.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.3layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.noconcat.lossesdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.noconcat.lossesdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.noconcat.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.noconcat.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/rnet.topkattlast.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/rnet.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.2layer.topkattlast.adjf1sdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.adjf1sdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.2layer.topkattlast.aucsdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.aucsdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.2layer.topkattlast.f1sdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.f1sdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.2layer.topkattlast.lossesdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.lossesdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.2layer.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.decay09.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.decay09/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.1hop.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.1hop.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.labelrnn.2hop.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.labelrnn.2hop.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreader.labelrnn.2hop.2layer.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreader.labelrnn.2hop.2layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=1 \\\n        --hop=2 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v3/torch.mreaderV2.1hop.2layer.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v3/$fold/$SRC/torch.mreaderV2.1hop.2layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --torch_cudnn_rnn=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=0 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/README.md",
    "content": "v4 change to use lstm as cell \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/rnet.3layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.3layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.3layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/rnet.noconcat.lossesdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.noconcat.lossesdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/rnet.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/torch.mreader.1hop.2layer.topkattlast.adjf1sdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.adjf1sdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/torch.mreader.1hop.2layer.topkattlast.aucsdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.aucsdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/torch.mreader.1hop.2layer.topkattlast.f1sdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.f1sdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/torch.mreader.1hop.2layer.topkattlast.lossesdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.lossesdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/torch.mreader.1hop.decay09.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop.decay09/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v4/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v4/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/README.md",
    "content": "v5 change to use lstm as cell \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/rnet.3layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.3layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.3layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/rnet.noconcat.lossesdecay.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.noconcat.lossesdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/rnet.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.2layer.topkattlast.adjf1sdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.adjf1sdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=adjusted_f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.2layer.topkattlast.aucsdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.aucsdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.2layer.topkattlast.f1sdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.f1sdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=f1 \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.2layer.topkattlast.lossesdecay.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast.lossesdecay/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_learning_rate_weights=20 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.2layer.topkattlast.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.2layer.topkattlast/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att,last \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.decay09.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop.decay09/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.5 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v5/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v5/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/README.md",
    "content": "v6 change to use lstm as cell \n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/rnet.3layer.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.3layer.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/rnet.3layer.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.3layer/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=3 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/rnet.noconcat.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet.noconcat/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/torch.mreader.1hop.decay09.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop.decay09/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.9 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v6/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v6/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 1200 \\\n        --batch_sizes 32,16 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=lstm \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=auc \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v7/rnet.finetune6k.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/rnet.finetune6k/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v7/rnet.fixword.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/rnet.fixword/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v7/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v7/torch.mreader.1hop.finetune6k.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.finetune6k/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --num_finetune_words=6000 \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v7/torch.mreader.1hop.fixword.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop.fixword/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=0 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v7/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v7/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v8/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v8/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v8/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=2. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v9/rnet.sh",
    "content": "base=./mount\ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/rnet/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=1 \\\n        --recurrent_dropout=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/ai2018/sentiment/train.v2/v9/torch.mreader.1hop.sh",
    "content": "base=./mount \n\nif [ $SRC ];\n  then echo 'SRC:' $SRC \nelse\n  SRC='word.glove'\n  echo 'use default SRC word.glove'\nfi \ndir=$base/temp/ai2018/sentiment/tfrecords/$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/ai2018/sentiment/model/v9/$fold/$SRC/torch.mreader.1hop/\nnum_epochs=30\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./torch-train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_char=1 \\\n        --concat_layers=0 \\\n        --recurrent_dropout=0 \\\n        --use_label_rnn=0 \\\n        --hop=1 \\\n        --att_combiner='sfu' \\\n        --rnn_no_padding=1 \\\n        --model=MReader \\\n        --use_self_match=1 \\\n        --label_emb_height=20 \\\n        --fold=$fold \\\n        --use_label_att=1 \\\n        --use_self_match=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'*,' \\\n        --test_input=$dir/test/'*,' \\\n        --info_path=$dir/info.pkl \\\n        --emb_dim 300 \\\n        --word_embedding_file=$dir/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --buckets 800,1200 \\\n        --batch_sizes 32,16,8 \\\n        --length_key content \\\n        --encoder_type=rnn \\\n        --cell=gru \\\n        --keep_prob=0.7 \\\n        --num_layers=1 \\\n        --rnn_hidden_size=200 \\\n        --encoder_output_method=topk,att \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.002 \\\n        --decay_target=loss \\\n        --decay_patience=1 \\\n        --decay_factor=0.8 \\\n        --decay_start_epoch_=1. \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/README.md",
    "content": "be sure to use eager mode train   \nEAGER=1 sh ./train/word.sh   \n"
  },
  {
    "path": "projects/common/lm/algos/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-10-11 22:14:50.914666\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n  \ndef loss_fn(model, inputs, targets, training=False):\n  #targets = tf.transpose(targets, [1,0])\n  labels = tf.reshape(targets, [-1])\n  outputs = model(inputs, training=training)\n  return tf.reduce_mean(\n      tf.nn.sparse_softmax_cross_entropy_with_logits(\n          labels=labels, logits=outputs))\n"
  },
  {
    "path": "projects/common/lm/algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2018-10-11 16:56:08.992105\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom tensorflow.contrib.cudnn_rnn.python.layers import cudnn_rnn\nfrom tensorflow.contrib.eager.python import tfe\n\nlayers = tf.keras.layers\n\nimport melt\nimport wenzheng\n\n\nclass PTBModel(tf.keras.Model):\n  \"\"\"LSTM for word language modeling.\n  Model described in:\n  (Zaremba, et. al.) Recurrent Neural Network Regularization\n  http://arxiv.org/abs/1409.2329\n  See also:\n  https://github.com/tensorflow/models/tree/master/tutorials/rnn/ptb\n  \"\"\"\n  def __init__(self,\n               vocab_size,\n               embedding_dim,\n               hidden_dim,\n               num_layers,\n               dropout_ratio,\n               concat_layers=False,\n               use_cudnn_rnn=True):\n    super(PTBModel, self).__init__()\n\n    self.keep_ratio = 1 - dropout_ratio\n    self.use_cudnn_rnn = use_cudnn_rnn\n    self.embedding = wenzheng.Embedding(vocab_size, embedding_dim, FLAGS.word_embedding_file)\n\n    self.rnn = melt.layers.CudnnRnn(num_layers, hidden_dim, keep_prob=1 - dropout_ratio, \n                                    concat_layers=concat_layers, return_state=True, cell='gru')\n\n    self.linear = layers.Dense(\n        vocab_size, kernel_initializer=tf.random_uniform_initializer(-0.1, 0.1))\n\n    if not concat_layers:\n      self._output_shape = [-1, 2 * hidden_dim]\n    else:\n      self._output_shape = [-1, 2 * hidden_dim * num_layers]\n\n  def call(self, input_seq, training=False):\n    \"\"\"Run the forward pass of PTBModel.\n    Args:\n      input_seq: [length, batch] shape int64 tensor.\n      training: Is this a training call.\n    Returns:\n      outputs tensors of inference.\n    \"\"\"\n    #input_seq = tf.transpose(input_seq, [1,0])\n    y = self.embedding(input_seq)\n    if training:\n      y = tf.nn.dropout(y, self.keep_ratio)\n    y = self.rnn(y, training=training)[0]\n    return self.linear(tf.reshape(y, self._output_shape))"
  },
  {
    "path": "projects/common/lm/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer('bptt', 70, '')\n\nimport gezi\nimport melt\nlogging = melt.logging\n\nimport numpy as np\n\nimport gezi\n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n    self.epoch_size = None\n    self.batch_size = None\n    self.data_npy = None\n    self.data = None\n\n  # https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb/reader.py\n  # https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/rnn_ptb/rnn_ptb.py\n  # TODO no shuffle each epoch here\n  def make_batch(self, batch_size, filenames, bptt=None, **kwargs):\n    bptt = bptt or FLAGS.bptt\n    self.batch_size = batch_size\n    if self.data is None:\n      data_npy = np.load(filenames[0])\n      self.data = data_npy\n      self.data_npy = data_npy\n      self.epoch_size = ((len(np.concatenate(self.data_npy)) // batch_size) - 1) // bptt\n    else:\n      data_npy = self.data_npy\n\n    with tf.device('/cpu:0'):\n      if not tf.executing_eagerly():\n        if self.data is None:\n          self.data_npy_ori = data_npy\n          self.data_npy = np.concatenate(data_npy)\n          data_npy = self.data_npy\n\n        data_npy = self.data_npy\n        if self.data is None:\n          #self.data = tf.get_variable('input_%s' % self.subset, dtype=tf.int32, shape=data_npy.shape, initializer=tf.constant_initializer(data_npy), trainable=False)\n          self.data = tf.get_variable('input_%s' % self.subset, dtype=tf.int32, shape=data_npy.shape,trainable=False)\n          data_placeholder = tf.placeholder(tf.int32, data_npy.shape)\n          data_init = self.data.assign(data_placeholder)\n          sess = melt.get_session()\n          sess.run(data_init, feed_dict={data_placeholder: data_npy})\n\n        data = self.data\n\n        data_len = tf.size(data)\n        batch_len = data_len // batch_size\n        data = tf.reshape(data[:batch_size * batch_len],\n                          [batch_size, batch_len])\n\n        epoch_size = (batch_len - 1) // bptt\n        assertion = tf.assert_positive(\n            epoch_size,\n            message=\"epoch_size == 0, decrease batch_size or bptt\")\n        with tf.control_dependencies([assertion]):\n          epoch_size = tf.identity(epoch_size, name=\"epoch_size\")\n\n        i = tf.train.range_input_producer(epoch_size, shuffle=False).dequeue()\n        x = tf.strided_slice(data, \n                            [0, i * bptt],\n                            [batch_size, (i + 1) * bptt])\n        x.set_shape([batch_size, bptt])\n        y = tf.strided_slice(data, \n                            [0, i * bptt + 1],\n                            [batch_size, (i + 1) * bptt + 1])\n        y.set_shape([batch_size, bptt])\n\n        class Iter(object):\n          def __init__(self, x, y):\n            self.x = x \n            self.y = y\n          \n          def __iter__(self):\n            return self\n\n          def get_next(self):\n            return self.x, self.y\n      \n        iter = Iter(x, y)\n        return iter\n      else:\n        # in eager mode if tf.get_variable will be very slow...\n        # epoch:0.02/1024 step:8600 elapsed:[1.312] batch_size:[32] batches/s:[76.23] insts/s:[2439] 1epoch:[1.40h] lr:[0.0010000] train_loss:[5.0710] valid_loss:[5.0503]\n        class Iter():\n          def __init__(self, data):\n            self.ori_data = data\n            self.reset()\n\n          def reset(self):\n            self.i = 0\n            np.random.shuffle(self.ori_data)\n            self.data = np.concatenate(self.ori_data)\n            data_len = len(self.data)\n            batch_len = data_len // batch_size\n            self.data = self.data[:batch_size * batch_len].reshape([batch_size, batch_len])\n\n          def __iter__(self):\n            return self\n\n          def __next__(self):\n            i = self.i\n            data = self.data\n          \n            if i < data.shape[1]:\n              slen = min(bptt, data.shape[1] - 1 - i)\n              x = data[:, i:i + slen]\n              y = data[:, i + 1:i + 1 + slen]\n              self.i += bptt\n              return x, y\n            else:\n              self.reset()\n              raise StopIteration()\n\n        return Iter(data_npy)\n\n\n\n  def num_examples_per_epoch(self, mode):\n    return self.epoch_size * self.batch_size\n"
  },
  {
    "path": "projects/common/lm/prepare/to-ids.glove.word.sh",
    "content": "python ./to-ids.py \\\n    --vocab='/home/gezi/mount/temp/ai2018/sentiment/tfrecords/word.glove/vocab.txt' \\\n    --idir='/home/gezi/other/tools/GloVe-sentiment-5k/' \\\n    --odir='/home/gezi/mount/temp/lm/corpus/sentiment.word'\n"
  },
  {
    "path": "projects/common/lm/prepare/to-ids.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   to-ids.py\n#        \\author   chenghuige  \n#          \\date   2018-10-11 11:58:46.615350\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport gezi\nimport numpy as np\n\nfrom pathlib import Path\n\nflags.DEFINE_string('vocab', '/home/gezi/mount/temp/ai2018/sentiment/tfrecords/char.glove/vocab.txt', '')\nflags.DEFINE_string('idir', '/home/gezi/other/tools/GloVe-sentiment-char/', '')\nflags.DEFINE_string('odir', '/home/gezi/mount/temp/lm/corpus/sentiment/', '')\n\n\ndef main(_):\n  vocab = gezi.Vocabulary(FLAGS.vocab)  \n  command = 'mkdir -p %s/valid' % FLAGS.odir\n  print('command', command)\n  os.system(command)\n\n  command = 'mkdir -p %s/train' % FLAGS.odir\n  print('command', command)\n  os.system(command)\n\n  # TODO Path will turn ./mount to mount...\n  odir = Path(FLAGS.odir)\n  print('odir', odir)\n  def deal(file_, type):\n    print(file_, type)\n    ids_list = []\n    for i, line in enumerate(open(file_)):\n      if i % 100000 == 0:\n        print(i)\n      line = line.rstrip()\n      line = line.strip('\"') \n      line = line.strip()\n      l = line.split(' ')\n      l.insert(0, '<S>')\n      ids = [vocab.id(x) for x in l]\n      #print(' '.join(map(str, ids)), file=out)\n      ids_list.append(np.array(ids))\n    ids_list = np.array(ids_list) \n    out_file = odir / type / 'ids.npy'\n    print('out_file', out_file)\n    np.save(out_file, ids_list)\n\n  idir = Path(FLAGS.idir)\n  deal(idir / 'text.valid', 'valid')\n  deal(idir / 'text.train', 'train')\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n  "
  },
  {
    "path": "projects/common/lm/prepare/to-ids.sh",
    "content": ""
  },
  {
    "path": "projects/common/lm/read-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2018-10-11 16:44:51.910748\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nimport melt\n\nimport dataset\n\nFLAGS.valid_input = './mount/temp/lm/corpus/sentiment/valid/ids.npy'\n\ndef main(_):\n  melt.apps.init()\n  if not tf.executing_eagerly():\n    ds = dataset.Dataset('valid')\n    iter = ds.make_batch(32, [FLAGS.valid_input], bptt=70)\n    x, y = iter.get_next()\n\n    def run(sess, step):\n      x_, y_ = sess.run([x, y])\n      #if step == 210:\n      print(step, x_, y_)\n      # print(len(x_), len(x_[0]))\n      # exit(0)\n    melt.flow.tf_flow(run)\n  else:\n    ds = dataset.Dataset('valid')\n    iter = ds.make_batch(32, [FLAGS.valid_input], bptt=70)\n    for i, (x, y) in enumerate(iter):\n      #if i == 210:\n      print(i, x, y)\n      #exit(0)\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/common/lm/train/char.concat.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.char\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.char.concat\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/char.emb.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.char\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.char.emb\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --word_embedding_file=./mount/temp/ai2018/sentiment/tfrecords/char.glove/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/char.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.char\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.char\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/char.small.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.char.small\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.char.small\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/v1/train.concat.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.$SRC.concat\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/v1/train.emb.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.$SRC.emb\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --word_embedding_file=./mount/temp/ai2018/sentiment/tfrecords/$SRC.glove/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/v1/train.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.$SRC\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/v2/train.concat.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/v2/sentiment.$SRC.concat\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/v2/train.emb.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/v2/sentiment.$SRC.emb\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --word_embedding_file=./mount/temp/ai2018/sentiment/tfrecords/$SRC.glove/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/v2/train.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.$SRC\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/v2/sentiment.$SRC\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=200 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/word.concat.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.word\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.word.concat\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --concat_layers=1 \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/word.emb.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.word\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.word.emb\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --word_embedding_file=./mount/temp/ai2018/sentiment/tfrecords/char.glove/emb.npy \\\n        --finetune_word_embedding=1 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train/word.sh",
    "content": "base=./mount\ndir=$base/temp/lm/corpus/sentiment.word\n\nfold=0\nif [ $# == 1 ];\n  then fold=$1\nfi \nif [ $FOLD ];\n  then fold=$FOLD\nfi \n\nmodel_dir=$base/temp/lm/model/sentiment.word\nnum_epochs=5\n\nmkdir -p $model_dir/epoch \ncp $dir/vocab* $model_dir\ncp $dir/vocab* $model_dir/epoch\n\nexe=./train.py \nif [ \"$INFER\" = \"1\"  ]; \n  then echo \"INFER MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\nif [ \"$INFER\" = \"2\"  ]; \n  then echo \"VALID MODE\" \n  exe=./infer.py \n  model_dir=$1\n  fold=0\nfi\n\npython $exe \\\n        --use_label_att=0 \\\n        --use_self_match=0 \\\n        --vocab $dir/vocab.txt \\\n        --model_dir=$model_dir \\\n        --train_input=$dir/train/'ids.npy,' \\\n        --valid_input=$dir/valid/'ids.npy,' \\\n        --emb_dim 300 \\\n        --batch_size 32 \\\n        --encoder_type=rnn \\\n        --keep_prob=0.7 \\\n        --num_layers=2 \\\n        --rnn_hidden_size=100 \\\n        --eval_interval_steps 1000 \\\n        --metric_eval_interval_steps 1000 \\\n        --save_interval_steps 1000 \\\n        --save_interval_epochs=1 \\\n        --valid_interval_epochs=1 \\\n        --inference_interval_epochs=1 \\\n        --freeze_graph=1 \\\n        --optimizer=adam \\\n        --learning_rate=0.001 \\\n        --num_epochs=$num_epochs \\\n\n"
  },
  {
    "path": "projects/common/lm/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\nflags.DEFINE_bool('concat_layers', False, '')\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\n\nfrom algos.loss import loss_fn\n#import algos.model as base\nfrom algos.model import PTBModel as Model\nfrom dataset import Dataset\n#import evaluate as ev\n\n# EAGER=1 python train.py \n# EAGER=1 python train.py --word_embedding_file ./mount/temp/ai2018/sentiment/tfrecords/char.glove/emb.npy \n\ndef main(_):\n  vocab = gezi.Vocabulary(FLAGS.vocab)\n\n  # FLAGS.valid_input = './mount/temp/lm/corpus/sentiment/valid/ids.npy'\n  # FLAGS.train_input = './mount/temp/lm/corpus/sentiment/train/ids.npy'\n\n  # FLAGS.model_dir = './mount/temp/lm/model/sentiment' if not FLAGS.word_embedding_file else './mount/temp/lm/model/sentiment.pretrain'\n\n  # FLAGS.batch_size_dim = 0\n\n  melt.apps.init()\n\n  #ev.init()\n\n  #model = getattr(base, FLAGS.model)()\n\n  model = Model(vocab_size=vocab.size(),\n                embedding_dim=FLAGS.emb_dim,\n                hidden_dim=FLAGS.rnn_hidden_size,\n                num_layers=FLAGS.num_layers,\n                concat_layers=FLAGS.concat_layers,\n                dropout_ratio=1 - FLAGS.keep_prob)\n\n  logging.info(model)\n\n  train = melt.apps.get_train()\n\n  train(Dataset,\n        model,  \n        loss_fn)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/tf/README.md",
    "content": "# for single gpu you need to set CUDA... for one specfic gpu otherwise will teat to use multiple gpu(but not horovod)\n# run train + eval using horovod (deeep+wide, use index emb, field emb, one mlp  \nhorovodrun -np 8 sh ./train/test6.sh  # use simple parse can get auc 0.7501\n#evaluate only\nMETRIC=1 sh ./train/test6.sh\n\n# pytorch read and train, ok \n# TODO however, loading model retrain using horovod now not work checkpoint = load_torch_model(model, latest_path) OOM \nhorovodrun -np 8 sh ./torch-only-train-hvd/best-v0.sh \n\n# tf eager read and torch train, not ok , unfortunately due to tf conflict with torch, torch.cuda.set_device then not work.. \nhorovodrun -np 8 sh ./torch-train/best-v0.sh \n\n#be careful you may need to clear gpu ... \n\n#----------some status not important for main purpose\nnc python read-test.py --batch_parse=0\nnc python read-test.py \ndifferent result \n\nbatch_parse=1 is much faster  \n\nspeed much affected by text_dataset.py so if you change some thing there make sure to check speed not down \n"
  },
  {
    "path": "projects/feed/rank/tf/__init__.py",
    "content": ""
  },
  {
    "path": "projects/feed/rank/tf/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 23:14:46.546584\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('model', None, '')\nflags.DEFINE_string('field_file_path', '../input/feat_fields.old', '')\nflags.DEFINE_string('feat_file_path', '../input/feature_index', '')\nflags.DEFINE_string('emb_activation', None, '')\nflags.DEFINE_string('dense_activation', 'relu', '')\nflags.DEFINE_integer('max_feat_len', 100, '')\nflags.DEFINE_integer('hidden_size', 50, 'TODO should be emb dim')\n\nflags.DEFINE_bool('wide_addval', True, '')\nflags.DEFINE_bool('deep_addval', False, '')\n#flags.DEFINE_bool('deep_field', False, '')\nflags.DEFINE_string('deep_wide_combine', 'concat', 'concat or add')\nflags.DEFINE_string('pooling', 'sum', '')\n\nflags.DEFINE_bool('field_emb', False, 'if True better but more param')\nflags.DEFINE_bool('index_addone', True, 'will not support index addone false')\n\nflags.DEFINE_bool('rank_loss', False, '')\n\nflags.DEFINE_integer('feature_dict_size', 3200000, '')\nflags.DEFINE_integer('field_dict_size', 100, '')\n\nflags.DEFINE_integer('valid_multiplier', 10, '')\n\nflags.DEFINE_string('mlp_dims', None, 'use 50 better then None but more param')\nflags.DEFINE_float('mlp_drop', 0.2, '')\n\nflags.DEFINE_bool('deep_final_act', False, 'deep do not need final act relu')\n\nflags.DEFINE_bool('field_concat', False, '')\n#flags.DEFINE_integer('num_fields', 100, '')\n\nflags.DEFINE_bool('batch_parse', True, '')\nflags.DEFINE_bool('write_valid', False, '')"
  },
  {
    "path": "projects/feed/rank/tf/data/train_0",
    "content": "0\t0\t8a0d1501828636798|9d0299\t19718i0l2wl6Lg\t1:1\t293:1\t336:1\t1903:0.5482\t1925:0.5023\t1309401:1\t1309498:1\t1309510:1\t1309522:1\t1309534:1\t1309552:1\t1309575:1\t1309576:1\t1309584:1\t1360553:1\t1366342:1\t1367217:1\t1388775:1\t1394438:1\t1403335:1\t1436568:1\t1436577:1\t1436622:1\t1436633:1\t1438005:1\t1514175:1\t1640956:1\t1736893:1\t1814174:1\t1923613:1\t2452726:1\t2453726:1\t2453777:1\t2453891:1\t2453969:1\t2619832:0.0023\t2691168:0.0023\t2725996:0.0023\t2836556:0.0023\t2908022:0.0023\t2909661:1\t2909665:1\t3049648:1\t3115657:1\t3115764:1\t3115967:1\t3116062:1\t3116129:1\n0\t0\t1d31e2b996f6113f9a322736e7435bfac666fe218f61\t20190704A0TED300\t281:1\t324:1\t1409:0.69133\t1429:0.25685\t1437:0.59525\t1309389:1\t1309498:1\t1309510:1\t1309522:1\t1309534:1\t1309552:1\t1309575:1\t1311290:1\t1342171:1\t1366343:1\t1368752:1\t1381153:1\t1395229:1\t1395732:1\t1425300:1\t1436567:1\t1436574:1\t1436610:1\t1436633:1\t1438005:1\t1514175:1\t1640957:1\t1736893:1\t1814186:1\t1923656:1\t2452725:1\t2453727:1\t2453777:1\t2453903:1\t2454012:1\t2617971:5.0E-5\t2690796:5.0E-5\t2725624:5.0E-5\t2834496:5.0E-5\t2836545:5.0E-5\t2907552:5.0E-5\t2910811:1\t3115656:1\t3115657:1\t3115764:1\t3115868:1\t3116010:1\t3116080:1\n1\t38\t085b1500258270224|f2002f\t19723b0x2Bluel\t1:1\t282:1\t325:1\t1470:0.99975\t1472:1.98455\t443563:1\t1309390:1\t1309498:1\t1309510:1\t1309522:1\t1309548:1\t1309562:1\t1309567:1\t1309576:1\t1309584:1\t1328406:1\t1366342:1\t1376566:1\t1397656:1\t1413552:1\t1419967:1\t1436567:1\t1436584:1\t1436611:1\t1436861:1\t1493080:1\t1624614:1\t1795616:1\t2452725:1\t2453760:1\t2453777:1\t2453874:1\t2454014:1\t2598657:0.9212\t2618293:0.48455\t2686628:0.9212\t2690865:0.48455\t2722926:0.9212\t2725663:0.48455\t2822039:0.9212\t2834559:0.48455\t2836337:0.9212\t2836546:0.48455\t2901719:0.9212\t2907604:0.48455\t2909661:1\t2909665:1\t3071683:1\t3115726:1\t3115832:1\t3115995:1\t3116068:1\t3116138:1\n0\t0\tc2ec869497032615179\t20190722A0T3K900\t5:1\t94:1\t347:1\t6748:1\t220970:1\t459659:1\t673189:1\t886719:1\t1100249:1\t1309455:1\t1309498:1\t1309510:1\t1309522:1\t1309535:1\t1309554:1\t1309570:1\t1309577:1\t1309585:1\t1335793:1\t1366343:1\t1384690:1\t1397803:1\t1428543:1\t1430761:1\t1431225:1\t1436567:1\t1436574:1\t1436591:1\t1436894:1\t2026514:1\t2075773:1\t2172139:1\t2240952:1\t2294223:1\t2380509:1\t2452725:1\t2453760:1\t2453777:1\t2453901:1\t2454017:1\t2461639:0.0969\t2490070:0.0969\t2568248:0.0048\t2607556:0.85325\t2629299:0.0048\t2644286:0.0969\t2675372:0.0048\t2688562:0.85325\t2700282:0.0969\t2717625:0.0048\t2724216:0.85325\t2742965:0.0969\t2799935:0.0048\t2827941:0.85325\t2836443:0.85325\t2849629:0.0969\t2887567:0.0048\t2904459:0.85325\t2909664:1\t2909665:1\t2923092:1\t3115661:1\t3115770:1\t3115932:1\t3116047:1\t3116113:1\n0\t0\tceb8860916036210009\t19722c0l0lF8nL\t1:1\t297:1\t340:1\t2069:1.4087\t2091:1.3916\t2093:0.051349998\t86164:1\t309462:1\t539075:1\t752605:1\t966135:1\t1179665:1\t1309405:1\t1309498:1\t1309510:1\t1309522:1\t1309535:1\t1309564:1\t1309569:1\t1309576:1\t1310829:1\t1362384:1\t1366342:1\t1396611:1\t1429818:1\t1433936:1\t1436567:1\t1436577:1\t1436626:1\t1436894:1\t1437256:1\t1508303:1\t1638018:1\t1735477:1\t1809344:1\t1919976:1\t2452725:1\t2453728:1\t2453777:1\t2453931:1\t2453984:1\t2612546:0.2018\t2620643:0.0173\t2689626:0.2018\t2691300:0.0173\t2724714:0.2018\t2726140:0.0173\t2831447:0.2018\t2835798:0.0173\t2836499:0.2018\t2836560:0.0173\t2905987:0.2018\t2908229:0.0173\t2909661:1\t2909665:1\t2915885:1\t3115741:1\t3115845:1\t3115942:1\t3116051:1\t3116113:1\n0\t0\t4f6c868906045957627\topen_doc_prod8151307\t1:1\t273:1\t316:1\t1089:0.80439997\t1090:2.0545\t1309381:1\t1309498:1\t1309510:1\t1309522:1\t1309534:1\t1309552:1\t1309569:1\t1309576:1\t1309584:1\t1331886:1\t1366344:1\t1369068:1\t1395057:1\t1397558:1\t1409071:1\t1418654:1\t1436567:1\t1436575:1\t1436602:1\t1436633:1\t1437607:1\t1511956:1\t1639483:1\t1736167:1\t1811891:1\t1921871:1\t2452725:1\t2453727:1\t2453777:1\t2453971:1\t2460512:0.0206\t2485221:0.0206\t2604741:0.008400001\t2616662:0.5545\t2642380:0.0206\t2687880:0.008400001\t2690475:0.5545\t2698944:0.0206\t2723811:0.008400001\t2725361:0.5545\t2826039:0.008400001\t2833881:0.5545\t2836412:0.008400001\t2836537:0.5545\t2847441:0.0206\t2903572:0.008400001\t2907155:0.5545\t2909661:1\t2909665:1\t2923430:1\t3115657:1\t3115764:1\t3115975:1\t3116064:1\t3116130:1\n0\t0\t269d866960026528594\ttt_6713246803380142595\t1:1\t283:1\t326:1\t1515:1.0001\t1534:0.31719998\t1539:0.3171\t78340:1\t298897:1\t531251:1\t744781:1\t958311:1\t1171841:1\t1309391:1\t1309502:1\t1309515:1\t1309522:1\t1309550:1\t1309555:1\t1309575:1\t1309576:1\t1310885:1\t1351697:1\t1366342:1\t1366356:1\t1378197:1\t1405260:1\t1405278:1\t1412158:1\t1436567:1\t1436577:1\t1436612:1\t1436860:1\t2062811:1\t2152216:1\t2225829:1\t2281229:1\t2363019:1\t2440215:1\t2452725:1\t2453749:1\t2453777:1\t2453871:1\t2453979:1\t2600445:0.2849\t2618407:1.0E-4\t2621646:0.577\t2651879:0.577\t2687007:0.2849\t2690893:1.0E-4\t2706375:0.577\t2723125:0.2849\t2725754:1.0E-4\t2823302:0.2849\t2834644:1.0E-4\t2836359:0.2849\t2836547:1.0E-4\t2907618:1.0E-4\t2909661:1\t2910234:1\t3115676:1\t3115780:1\t3115933:1\t3116054:1\t3116114:1\n0\t0\t328e99001215231367\t19716b0x2e3H77\t1:1\t265:1\t308:1\t733:0.54865\t749:0.6365\t27809:1\t243791:1\t480720:1\t694250:1\t907780:1\t1121310:1\t1309373:1\t1309505:1\t1309521:1\t1309527:1\t1309550:1\t1309558:1\t1309575:1\t1309576:1\t1310874:1\t1326032:1\t1366342:1\t1405410:1\t1405947:1\t1405948:1\t1436567:1\t1436584:1\t1436595:1\t1436884:1\t2036644:1\t2097753:1\t2252552:1\t2314333:1\t2452725:1\t2453749:1\t2453788:1\t2453884:1\t2454016:1\t2615453:0.04865\t2690219:0.04865\t2724948:0.04865\t2833132:0.04865\t2836529:0.04865\t2906842:0.04865\t2909661:1\t3115714:1\t3115818:1\t3115936:1\t3116058:1\t3116124:1\n0\t0\td756A00000852A4CBA\t19711k0x3X61Ac\t1:1\t261:1\t304:1\t65171:1\t284441:1\t518082:1\t731612:1\t945142:1\t1158672:1\t1309369:1\t1309498:1\t1309510:1\t1309522:1\t1309547:1\t1309556:1\t1309575:1\t1309576:1\t1310760:1\t1366343:1\t1405460:1\t1412594:1\t1414012:1\t1419937:1\t1436567:1\t1436584:1\t1436591:1\t1436857:1\t2056550:1\t2138356:1\t2216086:1\t2274080:1\t2350519:1\t2429372:1\t2452725:1\t2453771:1\t2453777:1\t2453879:1\t2454014:1\t2526337:0.442\t2624174:0.442\t2659534:0.442\t2709841:0.442\t2769297:0.442\t2867815:0.442\t2909661:1\t2910763:1\t3068618:1\t3115687:1\t3115792:1\t3115934:1\t3116054:1\t3116118:1\n0\t0\t943e861755037410716\t19722k0x1fNB26\t6:1\t139:1\t349:1\t632:1.54365\t654:0.84174997\t660:1.00245\t195725:1\t433752:1\t648636:1\t862166:1\t1075696:1\t1289226:1\t1309457:1\t1309498:1\t1309510:1\t1309522:1\t1309534:1\t1309560:1\t1309567:1\t1309577:1\t1309584:1\t1327680:1\t1366342:1\t1377074:1\t1379220:1\t1406681:1\t1410408:1\t1411277:1\t1436567:1\t1436584:1\t1436593:1\t1436893:1\t1488532:1\t1616110:1\t1716524:1\t1790881:1\t1899539:1\t2004320:1\t2452725:1\t2453733:1\t2453777:1\t2453913:1\t2453969:1\t2615082:0.043649998\t2690152:0.043649998\t2724901:0.043649998\t2832991:0.043649998\t2836527:0.043649998\t2906701:0.043649998\t2909664:1\t2909665:1\t2980181:1\t3115717:1\t3115823:1\t3115896:1\t3116019:1\t3116088:1\n"
  },
  {
    "path": "projects/feed/rank/tf/dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 23:00:24.215922\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom text_dataset import Dataset as TextDataset\nfrom tfrecord_dataset import Dataset as TFRecordDataset\n"
  },
  {
    "path": "projects/feed/rank/tf/eager-train/best-v0.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=1 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/eager.$model.best.v0 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/err/torch-only-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   torch-train.py\n#        \\author   chenghuige  \n#          \\date   2019-08-02 01:05:59.741965\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nfrom pyt.dataset import *\nfrom pyt.model import *\nimport pyt.model as base\nimport evaluate as ev\nimport loss\n\nimport melt\n\ndef main(_):\n  #FLAGS.torch_only = True\n  FLAGS.torch = True\n  melt.apps.init()\n  fit = melt.apps.get_fit()\n\n  FLAGS.eval_batch_size = 512 * FLAGS.valid_multiplier \n  FLAGS.eval_batch_size = 512 * 10\n  print('---------eval_batch_size', FLAGS.eval_batch_size)\n\n  #model_name = FLAGS.model\n  model_name = 'WideDeep'\n  model = getattr(base, model_name)() \n\n  loss_fn = nn.BCEWithLogitsLoss()\n\n  td = TD()\n  files = gezi.list_files('../input/train/*')\n  train_ds = get_dataset(files, td)\n  train_dl = DataLoader(ds, FLAGS.batch_size, shuffle=True)\n  files = gezi.list_files('../input/valid/*')\n  valid_ds = get_dataset(files, td)\n  valid_dl = DataLoader(valid_ds, FLAGS.eval_batch_size)\n  valid_dl2 = DataLoader(valid_ds, FLAGS.batch_size)\n\n  fit(model,  \n     loss_fn,\n     dataset=train_dl,\n     valid_dataset=valid_dl,\n     valid_dataset2=valid_dl2\n     eval_fn=ev.evaluate,\n     valid_write_fn=ev.valid_write,\n     #write_valid=FLAGS.write_valid)   \n     write_valid=False,\n     )\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/feed/rank/tf/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-28 08:43:41.067128\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom sklearn.metrics import roc_auc_score, log_loss\nimport gezi\n\ndataset = None \n\ndef evaluate(y, y_):\n  y_ = gezi.sigmoid(y_)\n  auc = roc_auc_score(y, y_)\n  loss = log_loss(y, y_)\n  return [auc, loss], ['auc', 'loss']\n\ndef valid_write(ids, labels, predicts, out):\n  for id, label, predict in zip(ids, labels, predicts):\n    print('{},{},{:.3f}'.format(id, label, gezi.sigmoid(predict)), file=out)  \n"
  },
  {
    "path": "projects/feed/rank/tf/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2019-07-27 22:33:36.314010\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nimport glob\nfrom tqdm import tqdm\nimport multiprocessing\nfrom multiprocessing import Value, Manager\ncounter = Value('i', 0)\n\nimport gezi\nimport melt\nfrom text_dataset import Dataset\n\nimport tensorflow as tf\n\ndataset = None\n\ndef get_out_file(infile):\n  infile_ = os.path.basename(infile)\n  ofile_ = infile_ + '.record'\n  ofile = os.path.join(FLAGS.out_dir, ofile_)\n  return ofile\n\ndef build_features(infile):\n  ofile = get_out_file(infile)\n  print('----------writing to', ofile)\n  with melt.tfrecords.Writer(ofile) as writer:\n    for line in tqdm(open(infile)):\n      fields = line.rstrip().split('\\t')\n      if len(fields) > 4:\n        label = int(fields[0])\n        id = '{}\\t{}'.format(fields[2], fields[3])\n        feat_id, feat_field, feat_value = dataset.get_feat(fields[4:])\n        assert len(feat_id) == len(feat_value), \"len(feat_id) == len(feat_value) -----------------\"\n        assert len(feat_id) == len(feat_field)\n\n        feature = {\n                    'label': melt.int64_feature(label),\n                    'id': melt.bytes_feature(id),\n                    'index': melt.int64_feature(feat_id),\n                    'field': melt.int64_feature(feat_field),\n                    'value': melt.float_feature(feat_value)\n                  }\n        record = tf.train.Example(features=tf.train.Features(feature=feature))\n\n        writer.write(record)\n        global counter\n        with counter.get_lock():\n          counter.value += 1\n\n\ndef main(_):\n  global dataset\n  dataset = Dataset()\n  \n  pool = multiprocessing.Pool()\n\n  files = glob.glob(FLAGS.input)\n  print('input', FLAGS.input)\n  \n\n  if not os.path.exists(FLAGS.out_dir):\n    print('make new dir: [%s]' % FLAGS.out_dir, file=sys.stderr)\n    os.makedirs(FLAGS.out_dir)\n\n  pool.map(build_features, files)\n  pool.close()\n  pool.join()\n\n  print('num_records:', counter.value)\n\n  out_file = '{}/num_records.txt'.format(FLAGS.out_dir)\n  gezi.write_to_txt(counter.value, out_file)\n\nif __name__ == '__main__':\n  flags.DEFINE_string('input', None, '')\n  flags.DEFINE_string('out_dir', None, '')\n  flags.DEFINE_string('mode', None, '')\n\n  absl_app.run(main) \n"
  },
  {
    "path": "projects/feed/rank/tf/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2019-07-28 15:15:35.162774\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nkeras = tf.keras\nfrom keras import backend as K\n\ndef binary_crossentropy_with_ranking(y_true, y_pred):\n    \"\"\" Trying to combine ranking loss with numeric precision\"\"\"\n    # first get the log loss like normal\n    logloss = K.mean(K.binary_crossentropy(y_pred, y_true), axis=-1)\n    \n    # next, build a rank loss\n    \n    # clip the probabilities to keep stability\n    y_pred_clipped = K.clip(y_pred, K.epsilon(), 1-K.epsilon())\n\n    # translate into the raw scores before the logit\n    y_pred_score = K.log(y_pred_clipped / (1 - y_pred_clipped))\n\n    # determine what the maximum score for a zero outcome is\n    y_pred_score_zerooutcome_max = K.max(y_pred_score * K.cast(y_true <1, tf.float32))\n\n    # determine how much each score is above or below it\n    rankloss = y_pred_score - y_pred_score_zerooutcome_max\n\n    # only keep losses for positive outcomes\n    rankloss = rankloss * y_true\n\n    # only keep losses where the score is below the max\n    rankloss = K.square(K.clip(rankloss, -100, 0))\n\n    # average the loss for just the positive outcomes\n    above = K.sum(rankloss, axis=-1)\n    below = K.sum(K.cast(y_true > 0, tf.float32)) + 1.\n    rankloss = above / below\n\n    # return (rankloss + 1) * logloss - an alternative to try\n    return rankloss + logloss"
  },
  {
    "path": "projects/feed/rank/tf/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 20:15:30.419843\n#   \\Description  TODO maybe input should be more flexible, signle feature, cross, cat, lianxu choumi\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport gezi\nimport melt\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nkeras = tf.keras\nfrom keras import backend as K\n\nimport numpy as np\n\n# output logits!\nclass Wide(keras.Model):\n  def __init__(self):\n    super(Wide, self).__init__()\n    self.emb = keras.layers.Embedding(FLAGS.feature_dict_size + 1, 1)\n    if FLAGS.wide_addval:\n      self.mult = keras.layers.Multiply()\n    self.bias = K.variable(value=np.array([0.]))\n\n  def call(self, input):\n    ids = input['index']\n    values = input['value']\n\n    x = self.emb(ids)\n    x = K.squeeze(x, -1)\n    # strage, eval for wide only addval will got worse result\n    if FLAGS.wide_addval:\n      x = self.mult([x, values])\n    x = K.sum(x,1)\n    x = x + self.bias\n    return x  \n\nclass Deep(keras.Model):\n  def __init__(self):\n    super(Deep, self).__init__()\n    # # do not need two many deep embdding, only need some or cat not cross TODO\n    # # STILL OOM FIXME...\n    # if FLAGS.hidden_size > 50:\n    #   print('---------------put emb on cpu')\n    #   with tf.device('/cpu:0'):\n    #     self.emb = keras.layers.Embedding(FLAGS.feature_dict_size + 1, FLAGS.hidden_size)\n    # else:\n    self.emb = keras.layers.Embedding(FLAGS.feature_dict_size + 1, FLAGS.hidden_size)\n    self.emb_dim = FLAGS.hidden_size\n    if FLAGS.field_emb:\n      self.field_emb = keras.layers.Embedding(FLAGS.field_dict_size + 1, FLAGS.hidden_size)\n      self.emb_dim += FLAGS.hidden_size\n\n    self.mult = keras.layers.Multiply()\n    \n    self.emb_activation = None\n    if FLAGS.emb_activation:\n      self.emb_activation = keras.layers.Activation(FLAGS.emb_activation)\n      self.bias = K.variable(value=np.array([0.]))\n    \n    if not FLAGS.mlp_dims:\n      self.mlp = None\n    else:\n      dims = [int(x) for x in FLAGS.mlp_dims.split(',')]\n      self.mlp = melt.layers.Mlp(dims, activation=FLAGS.dense_activation, drop_rate=FLAGS.mlp_drop)\n\n    act = FLAGS.dense_activation if FLAGS.deep_final_act else None\n    self.dense = keras.layers.Dense(1, activation=act)\n\n    if FLAGS.pooling != 'allsum':\n      self.pooling = melt.layers.Pooling(FLAGS.pooling)\n   \n  def call(self, input, training=False):\n    ids = input['index']\n    values = input['value']\n    fields = input['field']\n    \n    # if FLAGS.hidden_size > 50:\n    #   with tf.device('/cpu:0'):\n    #     x = self.emb(ids)\n    # else:\n    x = self.emb(ids)\n    if FLAGS.field_emb:\n      x = K.concatenate([x, self.field_emb(fields)], axis=-1)\n\n    if FLAGS.deep_addval:\n      values = K.expand_dims(values, -1)\n      x = self.mult([x, values])\n\n    if FLAGS.field_concat:\n      num_fields = FLAGS.field_dict_size\n      #x = tf.math.unsorted_segment_sum(x, fields, num_fields)      \n      x = melt.unsorted_segment_sum_emb(x, fields, num_fields)\n      # like [512, 100 * 50]\n      x = K.reshape(x, [-1, num_fields * self.emb_dim])\n    else:\n      if FLAGS.pooling == 'allsum':\n        x = K.sum(x, 1)\n      else:\n        assert FLAGS.index_addone, 'can not calc length for like 0,1,2,0,0,0'\n        c_len = melt.length(ids)\n        x = self.pooling(x, c_len)\n\n    if self.emb_activation:\n      x = self.emb_activation(x + self.bias)\n\n    if self.mlp:\n      x = self.mlp(x, training=training)\n    \n    x = self.dense(x)\n    x = K.squeeze(x, -1)\n    return x\n\nclass WideDeep(keras.Model):   \n  def __init__(self):\n    super(WideDeep, self).__init__()\n    self.wide = Wide()\n    self.deep = Deep() \n    self.dense = keras.layers.Dense(1)\n\n  # TODO verify we can remove training ? since we use K.Phrase() when sess.run\n  def call(self, input, training=False):\n    w = self.wide(input)\n    d = self.deep(input, training=training)\n    if FLAGS.deep_wide_combine == 'concat':\n      x = K.stack([w, d], 1)\n      x = self.dense(x)\n      x = K.squeeze(x, -1)\n    else:\n      x = w + d\n    return x\n"
  },
  {
    "path": "projects/feed/rank/tf/mpi.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   mpi.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 08:29:49.196748\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n# mpi_helloworld.py\n\nfrom mpi4py import MPI\n\n\ncomm = MPI.COMM_WORLD\nsize = comm.Get_size()\nrank = comm.Get_rank()\nnode_name = MPI.Get_processor_name() # get the name of the node\n\nprint('Hello world from process %d at %s.' % (rank, node_name))\n"
  },
  {
    "path": "projects/feed/rank/tf/prepare/gen-records.sh",
    "content": "sh ./prepare/gen-valid.sh \nsh ./prepare/gen-train.sh\n"
  },
  {
    "path": "projects/feed/rank/tf/prepare/gen-train.sh",
    "content": "python ./gen-records.py \\\n    --input=../input/train/train*  \\\n    --out_dir=../input/tfrecord/train  \n"
  },
  {
    "path": "projects/feed/rank/tf/prepare/gen-valid.sh",
    "content": "python ./gen-records.py \\\n    --input=../input/valid/valid*  \\\n    --out_dir=../input/tfrecord/valid/  \n"
  },
  {
    "path": "projects/feed/rank/tf/pyt/__init__.py",
    "content": ""
  },
  {
    "path": "projects/feed/rank/tf/pyt/dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-08-03 13:06:43.588260\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport subprocess\nimport linecache\n\nimport torch\nfrom torch.utils.data import Dataset, ConcatDataset\n## TODO relative path ...?\n#from ..text_dataset import Dataset as TD \n#from projects.feed.rank.tf.text_dataset import Dataset as TD\n#from torch.nn.utils.rnn import pack_sequence\n\nclass TextDataset(Dataset):\n  def __init__(self, filename, td):\n    self._filename = filename\n    self._total_data = int(subprocess.check_output(\"wc -l \" + filename, shell=True).split()[0]) \n    self.td = td \n\n  def __getitem__(self, idx):\n    line = linecache.getline(self._filename, idx + 1)\n    # lis, list, list, scalar, scalar\n    feat_id, feat_field, feat_value, [label], [id] = self.td.parse_line2(line)\n    ## this will use lele.DictPadCollate\n    #return {'index': feat_id, 'field': feat_field, 'value': feat_value, 'id': id}, label\n    ## this will use lele.DictPadCollate2 but this is slow..\n    return {'index': torch.tensor(feat_id), 'field': torch.tensor(feat_field), 'value': torch.tensor(feat_value), 'id': id}, torch.tensor(label)\n    \n    \n  def __len__(self):\n    return self._total_data\n\ndef get_dataset(files, td):\n  assert files\n  datasets = [TextDataset(x, td) for x in files]\n  return ConcatDataset(datasets)\n\n\nif __name__==\"__main__\":\n  pass\n"
  },
  {
    "path": "projects/feed/rank/tf/pyt/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2019-08-01 23:08:36.979020\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nimport lele\n\nimport numpy as np\n\n# output logits!\nclass Wide(nn.Module):\n  def __init__(self):\n    super(Wide, self).__init__()\n    self.emb = nn.Embedding(FLAGS.feature_dict_size + 1, 1)\n    #self.bias = torch.zeros(1, requires_grad=True).cuda()\n    # https://discuss.pytorch.org/t/tensors-are-on-different-gpus/1450/28 \n    # without below multiple gpu will fail\n    # RuntimeError: binary_op(): expected both inputs to be on same device, but input a is on cuda:0 and input b is on cuda:7 \n    self.bias = nn.Parameter(torch.zeros(1))\n\n  def forward(self, input):\n    # print('--------------', input['index'][0])\n    # print(len(input['index']), len(input['index'][0]))\n    # exit(0)\n    ids = input['index']\n    values = input['value']\n\n    x = self.emb(ids)\n    x = x.squeeze(-1)\n    # strange, eval for wide only addval will got worse result\n    if FLAGS.wide_addval:\n      x = x * values\n    x = x.sum(1)\n    x = x + self.bias\n    return x  \n\nclass Deep(nn.Module):\n  def __init__(self):\n    super(Deep, self).__init__()\n    self.emb = nn.Embedding(FLAGS.feature_dict_size + 1, FLAGS.hidden_size)\n    self.emb_dim = FLAGS.hidden_size\n    if FLAGS.field_emb:\n      self.field_emb = nn.Embedding(FLAGS.field_dict_size + 1, FLAGS.hidden_size)\n      self.emb_dim += FLAGS.hidden_size\n\n    olen = self.emb_dim    \n    if not FLAGS.mlp_dims:\n      self.mlp = None\n    else:\n      dims = [int(x) for x in FLAGS.mlp_dims.split(',')]\n      self.mlp = nn.Linear(self.emb_dim, dims[0])\n      # self.mlp = melt.layers.Mlp(dims, activation=FLAGS.dense_activation, drop_rate=FLAGS.mlp_drop)\n      olen = dims[-1]\n\n    act = FLAGS.dense_activation if FLAGS.deep_final_act else None\n\n    self.dense = nn.Linear(olen, 1)\n\n    if FLAGS.pooling != 'allsum':\n      self.pooling = self.pooling = lele.layers.Pooling(FLAGS.pooling)         \n   \n  def forward(self, input):\n    ids = input['index']\n    values = input['value']\n    fields = input['field']\n\n    ids_mask = ids.eq(0)\n    \n    # if FLAGS.hidden_size > 50:\n    #   with tf.device('/cpu:0'):\n    #     x = self.emb(ids)\n    # else:\n    x = self.emb(ids)\n    #print('x', x)\n    if FLAGS.field_emb:\n      x = torch.cat([x, self.field_emb(fields)], -1)\n\n    if FLAGS.deep_addval:\n      values = torch.unsqueeze(values, -1)\n      x = x* values\n\n    if FLAGS.field_concat:\n      num_fields = FLAGS.field_dict_size\n      #x = tf.math.unsorted_segment_sum(x, fields, num_fields)      \n      x = melt.unsorted_segment_sum_emb(x, fields, num_fields)\n      # like [512, 100 * 50]\n      x = K.reshape(x, [-1, num_fields * self.emb_dim])\n    else:\n      if FLAGS.pooling == 'allsum':\n        x = torch.sum(x, 1)\n      else:\n        assert FLAGS.index_addone, 'can not calc length for like 0,1,2,0,0,0'\n        x = self.pooling(x, ids_mask)\n\n    #print('x after pooling', x)\n    if self.mlp:\n      x = self.mlp(x)\n      #print('x after mlp', x)\n      x = F.dropout(F.relu(x), p=FLAGS.mlp_drop, training=self.training)\n      #print('x after dropout', x)\n    x = self.dense(x)\n    x = x.squeeze(-1)\n\n    #exit(0)\n    #-----FIXME why large value ?\n    return x\n\nclass WideDeep(nn.Module):   \n  def __init__(self):\n    super(WideDeep, self).__init__()\n    self.wide = Wide()\n    self.deep = Deep() \n    self.dense = nn.Linear(2, 1)\n\n  # TODO verify we can remove training ? since we use K.Phrase() when sess.run\n  def forward(self, input):\n    w = self.wide(input)\n    d = self.deep(input)\n    if FLAGS.deep_wide_combine == 'concat':\n      x = torch.stack([w, d], 1)\n      x = self.dense(x)\n      x = x.squeeze(-1)\n    else:\n      x = w + d\n    return x\n\n"
  },
  {
    "path": "projects/feed/rank/tf/read/README.md",
    "content": "test2 is normal sess.run not eager mode  \n"
  },
  {
    "path": "projects/feed/rank/tf/read/horovod.sh",
    "content": "horovodrun -np=2  python read-test2.py\n"
  },
  {
    "path": "projects/feed/rank/tf/read/read-record.sh",
    "content": "python ./read-record.py \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --batch_size=500 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/read/read-text.sh",
    "content": "python ./read-text.py \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --batch_size=500 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/read-record.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 18:02:22.038876\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tfrecord_dataset import Dataset\n\nimport tensorflow as tf \ntf.enable_eager_execution()\n\ndataset = Dataset('train')\n\nda = dataset.make_batch()\n\nfor i, batch in enumerate(da):\n    print('---------------------------', i)\n    print(batch[0]['id'], batch[0]['id'].shape, batch[1].shape, batch[0]['index'].shape)\n    #print(batch[0]['index'][0])\n    #print(batch[0]['field'][0])\n    if i == 1:\n        exit(0)\nexit(0)\n"
  },
  {
    "path": "projects/feed/rank/tf/read-simple.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read-simple.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 22:29:54.489845\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n#tf.enable_eager_execution()\n\n\n#创建一个Dataset对象\ndataset = tf.data.Dataset.from_tensor_slices([1,2,3,4,5,6,7,8,9, 10])\n\n'''合成批次'''\ndataset=dataset.batch(3)\n\n#创建一个迭代器\niterator = dataset.make_one_shot_iterator()\n\n#get_next()函数可以帮助我们从迭代器中获取元素\nelement = iterator.get_next()\n\n#遍历迭代器，获取所有元素\nwith tf.Session() as sess:\n   for i in range(9):\n       print(sess.run(element)) \n"
  },
  {
    "path": "projects/feed/rank/tf/read-test.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 18:02:22.038876\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom text_dataset import Dataset\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\ntf.enable_eager_execution()\n\nimport melt\n\ndef main(_):\n  FLAGS.train_input = '../input/train.small'\n  FLAGS.valid_input = '../input/train.small'\n  FLAGS.batch_size = 4\n  FLAGS.feat_file_path='../input/feature_index'\n  FLAGS.field_file_path='../input/feat_fields.old'\n  #melt.init()\n\n  dataset = Dataset('train')\n  #dataset = Dataset('valid')\n\n  da = dataset.make_batch(4)\n\n  # #as for melt eager not repeat mode will get same sequence each epoch if seed is the same\n  # for epoch in range(2):\n  #   for i, batch in enumerate(da):\n  #     print(i, batch[1], batch[0]['id'])\n      \n  for i, batch in enumerate(da):\n      print('---------------------------', i)\n      #print(batch[0]['id'])\n      print(batch[0]['id'], batch[0]['id'].shape, batch[1].shape, batch[0]['index'].shape)\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/tf/read-test2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 18:02:22.038876\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom text_dataset import Dataset\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport melt\n\n#非eager模式 melt是按照step控制轮次的 使用的是 repeat 模式\n#eager模式 melt 非repeate\n\n# notcie input data 10 lines\n\ndef main(_):\n  FLAGS.train_input = '../input/train.small'\n  FLAGS.valid_input = '../input/train.small'\n  FLAGS.batch_size = 4\n  FLAGS.feat_file_path='../input/feature_index'\n  FLAGS.field_file_path='../input/feat_fields.old'\n  melt.init()\n\n  dataset = Dataset('train')\n  #dataset = Dataset('valid')\n  \n  iter = dataset.make_batch()\n  op = iter.get_next()\n\n  print('---batch_size', dataset.batch_size, FLAGS.batch_size)  \n\n  sess = melt.get_session()\n\n  print('----sess', sess)\n\n  if not FLAGS.use_horovod:\n    for epoch in range(2):\n      for i in range(3):\n        batch = sess.run(op)\n        print(epoch, i, len(batch[0]['id']), batch[0]['id'])\n  else:\n    for epoch in range(2):\n      for i in range(3):\n        batch = sess.run(op)\n        print(epoch, i, len(batch[0]['id']), batch[0]['id'])\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/tf/read-test3.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 18:02:22.038876\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom text_dataset import Dataset\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport melt\n\n#非eager模式 melt是按照step控制轮次的 使用的是 repeat 模式\n#eager模式 melt 非repeate\n#eager模式因为非repeat 所以最后才会出现small batch 变成补0\n#如果是repeat模式不会的 repeat 模式 训练会比较安全。。 完全按照step来。。 TODO eager模式 当前框架按照非repeate 最后一组有风险 对应parse batch模式 CHECK\n#而且非repeate模式 如果每个epoch seed相同数据顺序是完全一致的 repeat没关系\n\n# notcie input data 10 lines\n\ndef main(_):\n  FLAGS.train_input = '../input/train.small'\n  FLAGS.valid_input = '../input/train.small'\n  FLAGS.batch_size = 4\n  FLAGS.feat_file_path='../input/feature_index'\n  FLAGS.field_file_path='../input/feat_fields.old'\n  melt.init()\n\n  #dataset = Dataset('train')\n  dataset = Dataset('valid')\n  \n  iter = dataset.make_batch()\n  op = iter.get_next()\n\n  print('---batch_size', dataset.batch_size, FLAGS.batch_size)  \n\n  sess = melt.get_session()\n\n  print('----sess', sess)\n  try:\n    sess.run(iter.initializer)\n  except Exception:\n    pass\n\n  if not FLAGS.use_horovod:\n    #for epoch in range(2):\n    #  for i in range(int(10 / FLAGS.batch_size + 0.5)):\n    #    batch = sess.run(op)\n    #    print(epoch, i, len(batch[0]['id']))\n    for i in range(4):\n      batch = sess.run(op)\n      print(i, batch[0]['id'])\n  else:\n    for epoch in range(1):\n      for i in range(3):\n        batch = sess.run(op)\n        print(epoch, i, len(batch[0]['id']))\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/tf/read-text.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 18:02:22.038876\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom text_dataset import Dataset\n\nimport tensorflow as tf \ntf.enable_eager_execution()\n\n\ndataset = Dataset('train')\n\nda = dataset.make_batch()\n\nfor i, batch in enumerate(da):\n    print(i, batch[0])\n    #print(batch[0]['index'][0])\n    #print(batch[0]['field'][0])\n    \n    if i == 2:\n        exit(0)\n"
  },
  {
    "path": "projects/feed/rank/tf/test/read-torch-dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read-torch-dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-08-03 14:08:33.314862\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom torch.utils.data import DataLoader\nimport gezi\nimport lele\n\nfrom pyt.dataset import *\nfrom text_dataset import Dataset as TD\n\n\n#import numpy as np\nimport horovod.torch as hvd\nhvd.init()\ntorch.cuda.set_device(hvd.local_rank())\n#seed = 1024\n#torch.cuda.manual_seed(seed)\n\ndevice = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n\nfiles = gezi.list_files('../input/train.small/*')\n\ntd = TD()\nds = get_dataset(files, td)\n#import tensorflow as tf \n\nsampler = ds\nsampler = torch.utils.data.distributed.DistributedSampler(\n            ds, num_replicas=hvd.size(), rank=hvd.rank())\n\n# sampler = torch.utils.data.RandomSampler(sampler)\n\n#sampler = torch.utils.data.RandomSampler(ds)\n# # seems here shuffle not work..\n# sampler = torch.utils.data.distributed.DistributedSampler(\n#             sampler, num_replicas=hvd.size(), rank=hvd.rank(),\n#             shuffle=True)\n\n#collate_fn = lele.DictPadCollate2()\ncollate_fn = lele.DictPadCollate()\n\ndl = DataLoader(ds, 2, \n                collate_fn=collate_fn,\n                sampler=sampler)\n\nprint(len(ds), len(dl), len(dl.dataset))\n\nfor epoch in range(2):\n  if dl.sampler and hasattr(dl.sampler, 'set_epoch'):\n    dl.sampler.set_epoch(epoch)\n  for i, (x, y) in enumerate(dl):\n    for j in range(len(y)):\n      print('epoch', epoch, 'i', i, 'j', j, x['id'][j])\n\n    # #print('--------------', d)\n    # print(x['index'].shape, x['index'].dtype)\n    # print(x['field'].shape, x['field'].dtype)\n    # print(x['value'].shape, x['value'].dtype)\n    # print(x['id'].shape, x['id'].dtype)\n    # print(y.shape)\n    # print(x)\n    # for key in x:\n    #   print(key, type(x[key][0]), type(x[key]), x[key][0].dtype)\n      \n    # if i == 2:\n    #   break\n\n\n# dl = DataLoader(ds, 2, \n#                 collate_fn=lele.DictPadCollate())\n# import itertools\n# d = itertools.cycle(dl)\n# for i in range(20):\n#   x, y = next(d)\n#   print(x['id'])\n\n# print('================ end')\n"
  },
  {
    "path": "projects/feed/rank/tf/test/test-torch-hvd.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   torch-hvd-test.py\n#        \\author   chenghuige  \n#          \\date   2019-08-06 11:39:03.209243\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom torch.utils.data import DataLoader\nimport gezi\nimport lele\n\nimport melt\nmelt.init()\n#import horovod.tensorflow as hvd\n#import horovod.tensorflow as hvd\n\n# from pyt.dataset import *\n# from text_dataset import Dataset as TD\n\nimport numpy as np\n\n#import horovod.tensorflow as hvd\nimport horovod.torch as hvd\nhvd.init()\n\nfor i in range(5):\n  print(i)  \n"
  },
  {
    "path": "projects/feed/rank/tf/text_dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 23:00:24.215922\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport melt \nlogging = melt.logging\nimport numpy as np\n\nfrom config import *\n\nclass Dataset(melt.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n    self.Type = tf.data.TextLineDataset\n    self.batch_parse = FLAGS.batch_parse\n    self.index_addone = int(FLAGS.index_addone)\n    assert self.index_addone\n    self.max_feat_len = FLAGS.max_feat_len\n\n    self.field_id = {}\n    self.feat_to_field = {}\n    self.load_feature_files()\n    self.batch_size = melt.batch_size() \n    #---np.float32 much slower.. 1.0 -> 1.5h per epoch..\n    self.float_fn = float if self.batch_parse else np.float32\n\n    # feature idx start from 4\n    self.start = 4\n\n  def load_feature_files(self):\n    self.field_id = {}\n    for line in open(FLAGS.feat_file_path, 'r'):\n      if line == '':\n        break\n      line = line.rstrip()\n      fields = line.split('\\t')\n      assert len(fields) == 2\n      #----------- +1\n      #fid = int(fields[1]) - 1 + FLAGS.index_addone\n      #fid = int(fields[1]) - 1 + self.index_addone\n      fid = int(fields[1]) \n\n      tokens = fields[0].split('\\a')\n      if tokens[0] not in self.field_id:\n        #----------- +1\n        #self.field_id[tokens[0]] = len(self.field_id) + self.index_addone\n        self.field_id[tokens[0]] = len(self.field_id)  + 1\n      self.feat_to_field[fid] = self.field_id[tokens[0]]\n    logging.info('----num fields', len(self.field_id))\n\n  def get_feat(self, fields):\n    num_features = len(fields) \n    feat_id = [None] * num_features\n    feat_field = [None] * num_features\n    feat_value = [None] * num_features\n\n    for i in range(num_features):\n      tokens = fields[i].split(':')\n      #assert len(tokens) == 2\n      ## well do as less as possible if -1 + 1 then 0.9 h -> 0.97 h..\n      #feat_id[i] = int(tokens[0]) - 1 + self.index_addone\n      feat_id[i] = int(tokens[0])\n      feat_field[i] = self.feat_to_field[feat_id[i]]\n      feat_value[i] = self.float_fn(tokens[1])\n\n    return feat_id, feat_field, feat_value\n  \n  #-----------by this way decode line by line , more powerfull, but slower if batch parse then you must have fixed batch size! 1epoch:[2.69h] batch parse 2.03h\n  def parse_line(self, line):\n    fields = line.decode().split('\\t')\n    #need np.float32 if float32 tf complain double .., but np.lofat32 is much slower then float\n    label = np.float32(fields[0])\n    id = '{}\\t{}'.format(fields[2], fields[3])\n    feat_id, feat_field, feat_value = self.get_feat(fields[self.start:])\n    # need [label] consider tfrecord generation\n    return feat_id, feat_field, feat_value, [label], [id]\n\n  def parse_line2(self, line):\n    fields = line.split('\\t')\n    #need np.float32 if float32 tf complain double .., but np.lofat32 is much slower then float\n    label = np.float32(fields[0])\n    id = '{}\\t{}'.format(fields[2], fields[3])\n    feat_id, feat_field, feat_value = self.get_feat(fields[self.start:])\n    # need [label] consider tfrecord generation\n    return feat_id, feat_field, feat_value, [label], [id]\n\n  def line_parse_(self, line):\n    feat_id, feat_field, feat_value, label, id = \\\n        tf.py_func(self.parse_line, [line],\n                    [tf.int64, tf.int64, tf.float32, tf.float32, tf.string])\n    feat_id.set_shape([None])\n    feat_field.set_shape([None])\n    feat_value.set_shape([None])\n    label.set_shape([1]) \n    id.set_shape([1])\n    # label id shape like (batch_size,)\n    return {'index': feat_id, 'field': feat_field, 'value': feat_value, 'id': tf.squeeze(id, -1)}, tf.squeeze(label, -1)\n\n  # https://stackoverflow.com/questions/52284951/tensorflow-py-func-typeerror-with-tf-data-dataset-output\n  def parse_batch(self, feat_list, batch_size):\n  # def parse_batch(self, feat_list):\n  #   batch_size = self.batch_size\n    feat_ids = np.zeros((batch_size, self.max_feat_len), dtype=np.int64)\n    feat_fields = np.zeros((batch_size, self.max_feat_len), dtype=np.int64)\n    feat_values = np.zeros((batch_size, self.max_feat_len), dtype=np.float32)\n    labels = np.zeros(batch_size, dtype=np.float32)\n    ids = [''] * batch_size # ''means not effective id, usefull for batch_parse + not repeat final batch with padding elments\n\n    cur_max_feat_len = 0\n    for i, feat_line in enumerate(feat_list):\n      # python 3 need decode\n      fields = feat_line.decode().split('\\t')\n      assert len(fields) > self.start, fields\n      #fields = feat_line.split('\\t')\n      labels[i] = float(fields[0])\n      ids[i] = '{}\\t{}'.format(fields[2], fields[3])\n\n      feat_id, feat_field, feat_value = self.get_feat(fields[self.start:])\n      #assert len(feat_id) == len(feat_value), \"len(feat_id) == len(feat_value) -----------------\"\n      trunc_len = min(len(feat_id), self.max_feat_len)\n      #---也许是因为批量写速度比逐个访问numpy数组位置快(原地逐个访问)\n      feat_ids[i, :trunc_len] = feat_id[:trunc_len]\n      feat_fields[i, :trunc_len] = feat_field[:trunc_len]\n      feat_values[i, :trunc_len] = feat_value[:trunc_len]\n      cur_max_feat_len = max(cur_max_feat_len, trunc_len)\n\n    ## even here [:i, :cur..] still final batch size is same not small \n    # feat_ids = feat_ids[:i, :cur_max_feat_len]\n    # feat_fields = feat_fields[:i, :cur_max_feat_len]\n    # feat_values = feat_values[:i, :cur_max_feat_len]\n    feat_ids = feat_ids[:, :cur_max_feat_len]\n    feat_fields = feat_fields[:, :cur_max_feat_len]\n    feat_values = feat_values[:, :cur_max_feat_len]\n\n    return feat_ids, feat_fields, feat_values, labels, ids\n\n  def batch_parse_(self, line, batch_size):\n  #def batch_parse_(self, line):\n    # batch_size = self.batch_size\n    #tf.py_func(self.parse_batch, [line, batch_size], \n    #tf.py_func(self.parse_batch, [line],\n    feat_ids, feat_fields, feat_values, labels, ids = \\\n        tf.py_func(self.parse_batch, [line, batch_size],\n                    [tf.int64, tf.int64, tf.float32, tf.float32, tf.string])\n\n    #---for pyfunc you need to set shape.. otherwise first dim unk strange for keras layer TODO FIXME\n    feat_ids.set_shape((batch_size, None))\n    feat_fields.set_shape((batch_size, None))\n    feat_values.set_shape((batch_size, None))\n\n    return {'index': feat_ids, 'field': feat_fields, 'value': feat_values, 'id': ids}, labels\n\n  def parse(self, line, batch_size):\n    if self.batch_parse:\n      return self.batch_parse_(line, batch_size)\n    else:\n      return self.line_parse_(line)\n\n  # def parse(self, line):\n  #   if self.batch_parse:\n  #     return self.batch_parse_(line)\n  #   else:\n  #     return self.line_parse_(line)\n\n  \n"
  },
  {
    "path": "projects/feed/rank/tf/tfrecord_dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 23:00:24.215922\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport melt \nimport numpy as np\n\nfrom config import *\n\nclass Dataset(melt.Dataset):\n  def __init__(self, subset='valid'):\n    super(Dataset, self).__init__(subset)\n    # only support line parse not batch parse since here parse_single_example\n    # so slower then text + pyfunc due to they use batch parse\n  \n  def parse(self, example):\n    features_dict = {\n      'id':  tf.FixedLenFeature([], tf.string),\n      'label': tf.FixedLenFeature([], tf.int64),\n      'index': tf.VarLenFeature(tf.int64),\n      'field': tf.VarLenFeature(tf.int64),\n      'value': tf.VarLenFeature(tf.float32),\n      }\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    print(features)\n\n    melt.sparse2dense(features)\n\n    y = features['label']\n    y = tf.cast(y, tf.float32)\n    del features['label']\n\n    x = features\n\n    return x, y\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-hvd-train/best-v0-small.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-hvd-train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/train_0 \\\n    --valid_input=../input/valid/valid_0 \\\n    --model_dir=../input/model/torch.hvd.$model.best.v0.small \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-hvd-train/best-v0.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-hvd-train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/torch.hvd.$model.best.v0 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-hvd-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   torch-train.py\n#        \\author   chenghuige  \n#          \\date   2019-08-02 01:05:59.741965\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\nfrom torch.utils.data import DataLoader\n\nimport torch.optim as optim\nimport torch.utils.data.distributed\nimport horovod.torch as hvd\n\nimport numpy as np\n\nfrom pyt.dataset import *\nimport text_dataset\nfrom pyt.model import *\nimport pyt.model as base\nimport evaluate as ev\nimport loss\n\nimport melt\nlogging = melt.logging\nimport gezi\nimport lele\nfrom tqdm import tqdm\n\nlogging.init('/home/gezi/temp')\n\nimport horovod.torch as hvd\nhvd.init()\n# Horovod: pin GPU to local rank.\ntorch.cuda.set_device(hvd.local_rank())\nseed = 1024\ntorch.cuda.manual_seed(seed)\n\ndef train(epoch, model, loss_fn, train_loader, optimizer):\n    model.train()\n    # Horovod: set epoch to sampler for shuffling.\n    train_loader.sampler.set_epoch(epoch)\n    for batch_idx, (data, target) in tqdm(enumerate(train_loader), total=len(train_loader), ascii=True):\n        for key in data:\n          if type(data[key][0]) != np.str_:\n            data[key] = data[key].cuda()\n        target = target.cuda()\n        optimizer.zero_grad()\n        output = model(data)\n        loss = loss_fn(output, target)\n        loss.backward()\n        optimizer.step()\n        if batch_idx % 100 == 0:\n            # Horovod: use train_sampler to determine the number of examples in\n            # this worker's partition.\n            logging.info('Train Epoch: {} [{}/{} ({:.0f}%)]\\tLoss: {:.6f}'.format(\n                epoch, batch_idx * len(data), len(train_loader.sampler),\n                100. * batch_idx / len(train_loader), loss.item()))\n\n\ndef metric_average(val, name):\n    tensor = torch.tensor(val)\n    avg_tensor = hvd.allreduce(tensor, name=name)\n    return avg_tensor.item()\n\n\ndef test(model, loss_fn, test_loader):\n    model.eval()\n    test_loss = 0.\n    test_accuracy = 0.\n    for data, target in test_loader:\n        data, target = data.cuda(), target.cuda()\n        output = model(data)\n        # sum up batch loss\n        test_loss += loss_fn(output, target)\n\n    # Horovod: use test_sampler to determine the number of examples in\n    # this worker's partition.\n    test_loss /= len(test_sampler)\n\n    # Horovod: average metric values across workers.\n    test_loss = metric_average(test_loss, 'avg_loss')\n\n    # Horovod: print output only on first rank.\n    if hvd.rank() == 0:\n        print('\\nTest set: Average loss: {:.4f}\\n'.format(test_loss))\n\n\ndef main(_):\n  FLAGS.torch_only = True\n  \n  melt.init()\n  #fit = melt.get_fit()\n\n  FLAGS.eval_batch_size = 512 * FLAGS.valid_multiplier\n  FLAGS.eval_batch_size = 512\n\n  model_name = FLAGS.model\n  model = getattr(base, model_name)() \n\n  model = model.cuda()\n\n  loss_fn = nn.BCEWithLogitsLoss()\n\n  td = text_dataset.Dataset()\n\n  train_files = gezi.list_files('../input/train/*')\n  train_ds = get_dataset(train_files, td)\n  \n  #kwargs = {'num_workers': 4, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  #num_workers = int(16 / hvd.size())  \n  num_workers = 1  # set to 1 2 min to start might just set to 0 for safe\n  num_workers = 0 # 设置0 速度比1慢很多   启动都需要1分多。。\n  # pin_memory 影响不大 单gpu提升速度一点点 多gpu 主要是 num_workers  影响资源占有。。有可能启动不起来\n  # 多gpu pin_memory = False 反而速度更快。。\n  #kwargs = {'num_workers': num_workers, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}  \n  kwargs = {'num_workers': 1, 'pin_memory': False, 'collate_fn': lele.DictPadCollate()}\n\n  train_sampler = train_ds\n  train_sampler = torch.utils.data.distributed.DistributedSampler(\n    train_ds, num_replicas=hvd.size(), rank=hvd.rank())\n  \n  train_dl = DataLoader(train_ds, FLAGS.batch_size, sampler=train_sampler, **kwargs)\n  \n  valid_files = gezi.list_files('../input/valid/*')\n  valid_ds = get_dataset(valid_files, td)\n\n  # support shuffle=False from version 1.2\n  valid_sampler = torch.utils.data.distributed.DistributedSampler(\n      valid_ds, num_replicas=hvd.size(), rank=hvd.rank(), shuffle=False)\n\n  # valid_sampler2 = torch.utils.data.distributed.DistributedSampler(\n  #     valid_ds, num_replicas=hvd.size(), rank=hvd.rank(), shuffle=False)\n  \n  valid_dl = DataLoader(valid_ds, FLAGS.eval_batch_size, sampler=valid_sampler, **kwargs)\n  \n  #valid_dl2 = DataLoader(valid_ds, FLAGS.batch_size, sampler=valid_sampler2, **kwargs)\n\n\n  optimizer = optim.Adamax(model.parameters(), lr=0.1)\n  #optimizer = optim.SGD(model.parameters(), lr=0.1)\n  hvd.broadcast_parameters(model.state_dict(), root_rank=0)\n  hvd.broadcast_optimizer_state(optimizer, root_rank=0)\n\n  optimizer = hvd.DistributedOptimizer(optimizer,\n                                       named_parameters=model.named_parameters())\n\n  for epoch in range(2):\n    train(epoch, model, loss_fn, train_dl, optimizer)\n    test(model, loss_fn, valid_dl)\n\n  #logging.info('num valid examples', len(valid_ds), len(valid_dl))\n\n  # fit(model,  \n  #     loss_fn,\n  #     dataset=train_dl,\n  #     valid_dataset=valid_dl,\n  #     valid_dataset2=valid_dl2,\n  #     eval_fn=ev.evaluate,\n  #     valid_write_fn=ev.valid_write,\n  #     #write_valid=FLAGS.write_valid)   \n  #     write_valid=False,\n  #    )\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train/baseline.sh",
    "content": "model=WideDeep\npython ./torch-train.py \\\n    --simple_parse=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/torch.$model.baseline \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train/best-v0-small.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-only-train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/train_0 \\\n    --valid_input=../input/valid/valid_0 \\\n    --model_dir=../input/model/torch.only.$model.best.v0.small \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train/best-v0.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-only-train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/torch.only.$model.best.v0 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train-hvd/best-v0-small.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-only-train-hvd.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/train_0 \\\n    --valid_input=../input/valid/valid_0 \\\n    --model_dir=../input/model/torch.only.hvd.$model.best.v0.small \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train-hvd/best-v0.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-only-train-hvd.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/train* \\\n    --valid_input=../input/valid/valid* \\\n    --model_dir=../input/model/torch.only.hvd.$model.best.v0 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train-hvd.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   torch-train.py\n#        \\author   chenghuige  \n#          \\date   2019-08-02 01:05:59.741965\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import, division, print_function\n\nimport multiprocessing\nimport os\nimport sys\n\nimport gezi\nimport melt\n\nimport tensorflow as tf\n\nimport evaluate as ev\n\nimport lele\nimport loss\n\nimport pyt.model as base\nimport torch\nimport text_dataset\nfrom pyt.dataset import get_dataset\nfrom pyt.model import *\nfrom torch import nn\nfrom torch.nn import functional as F\nfrom torch.utils.data import DataLoader\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nlogging = melt.logging\n\nimport horovod.torch as hvd\nhvd.init()\ntorch.cuda.set_device(hvd.local_rank())\n\ndef main(_):\n  FLAGS.torch_only = True\n  melt.init()\n  fit = melt.get_fit()\n\n  FLAGS.eval_batch_size = 512 * FLAGS.valid_multiplier\n\n  model_name = FLAGS.model\n  model = getattr(base, model_name)() \n\n  model = model.cuda()\n\n  loss_fn = nn.BCEWithLogitsLoss()\n\n  td = text_dataset.Dataset()\n\n  train_files = gezi.list_files('../input/train/*')\n  train_ds = get_dataset(train_files, td)\n  \n  #kwargs = {'num_workers': 4, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  #kwargs = {'num_workers': 0, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  #kwargs = {'num_workers': 4, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  \n  num_workers = 1\n  kwargs = {'num_workers': num_workers, 'pin_memory': False, 'collate_fn': lele.DictPadCollate()}\n\n  train_sampler = train_ds\n  train_sampler = torch.utils.data.distributed.DistributedSampler(\n    train_ds, num_replicas=hvd.size(), rank=hvd.rank())\n  \n  train_dl = DataLoader(train_ds, FLAGS.batch_size, sampler=train_sampler, **kwargs)\n  \n  valid_files = gezi.list_files('../input/valid/*')\n  valid_ds = get_dataset(valid_files, td)\n\n  kwargs['num_workers'] = 1\n  # support shuffle=False from version 1.2\n  valid_sampler = torch.utils.data.distributed.DistributedSampler(\n      valid_ds, num_replicas=hvd.size(), rank=hvd.rank(), shuffle=False)\n\n  kwargs['num_workers'] = 1\n  valid_sampler2 = torch.utils.data.distributed.DistributedSampler(\n      valid_ds, num_replicas=hvd.size(), rank=hvd.rank(), shuffle=False)\n  \n  valid_dl = DataLoader(valid_ds, FLAGS.eval_batch_size, sampler=valid_sampler, **kwargs)\n  valid_dl2 = DataLoader(valid_ds, FLAGS.batch_size, sampler=valid_sampler2, **kwargs)\n\n  fit(model,  \n      loss_fn,\n      dataset=train_dl,\n      valid_dataset=valid_dl,\n      valid_dataset2=valid_dl2,\n      eval_fn=ev.evaluate,\n      valid_write_fn=ev.valid_write,\n      #write_valid=FLAGS.write_valid)   \n      write_valid=False,\n     )\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/tf/torch-only-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   torch-train.py\n#        \\author   chenghuige  \n#          \\date   2019-08-02 01:05:59.741965\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import, division, print_function\n\nimport multiprocessing\nimport os\nimport sys\n\nimport tensorflow as tf\n\nimport evaluate as ev\nimport gezi\nimport lele\nimport loss\nimport melt\nimport pyt.model as base\nimport torch\nimport text_dataset\nfrom pyt.dataset import get_dataset\nfrom pyt.model import *\nfrom torch import nn\nfrom torch.nn import functional as F\nfrom torch.utils.data import DataLoader\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nlogging = melt.logging\n\nimport horovod.torch as hvd\nhvd.init()\n# Horovod: pin GPU to local rank.\ntorch.cuda.set_device(hvd.local_rank())\n\ndef main(_):\n  FLAGS.torch_only = True\n  #FLAGS.valid_input = None\n  melt.init()\n  fit = melt.get_fit()\n\n  FLAGS.eval_batch_size = 512 * FLAGS.valid_multiplier\n\n  model_name = FLAGS.model\n  model = getattr(base, model_name)() \n\n  loss_fn = nn.BCEWithLogitsLoss()\n\n  td = text_dataset.Dataset()\n  train_files = gezi.list_files(FLAGS.train_input)\n  train_ds = get_dataset(train_files, td)\n  \n  ## speed up a bit with pin_memory==True\n  ## num_workers 1 is very slow especially for validation, seems 4 workers is enough, large number dangerous sometimes 12 ok sometimes hang, too much resource seems\n\n  #kwargs = {'num_workers': 12, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  #kwargs = {'num_workers': 6, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  kwargs = {'num_workers': 8, 'pin_memory': True, 'collate_fn': lele.DictPadCollate()}\n  ## for 1 gpu, set > 8 might startup very slow\n  #num_workers = int(8 / hvd.size())\n  # num_workers = 0\n  # pin_memory = False\n  #kwargs = {'num_workers': num_workers, 'pin_memory': pin_memory, 'collate_fn': lele.DictPadCollate()}\n  \n  train_dl = DataLoader(train_ds, FLAGS.batch_size, shuffle=True, **kwargs)\n\n  #kwargs['num_workers'] = max(1, num_workers)\n  #logging.info('num train examples', len(train_ds), len(train_dl))\n\n  if FLAGS.valid_input:\n    valid_files = gezi.list_files(FLAGS.valid_input)\n    valid_ds = get_dataset(valid_files, td)\n    valid_dl = DataLoader(valid_ds, FLAGS.eval_batch_size, **kwargs)\n\n    #kwargs['num_workers'] = max(1, num_workers)\n    valid_dl2 = DataLoader(valid_ds, FLAGS.batch_size, **kwargs)\n    #logging.info('num valid examples', len(valid_ds), len(valid_dl))\n\n  fit(model,  \n      loss_fn,\n      dataset=train_dl,\n      valid_dataset=valid_dl,\n      valid_dataset2=valid_dl2,\n      eval_fn=ev.evaluate,\n      valid_write_fn=ev.valid_write,\n      #write_valid=FLAGS.write_valid)   \n      write_valid=False,\n     )\n\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/tf/torch-train/baseline.sh",
    "content": "model=WideDeep\npython ./torch-train.py \\\n    --simple_parse=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/torch.$model.baseline \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-train/best-v0-small.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train0/train_0 \\\n    --valid_input=../input/valid0/valid_0 \\\n    --model_dir=../input/model/torch.$model.best.v0.small \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-train/best-v0.sh",
    "content": "model=WideDeep\n#model=Deep\n#model=Wide\n    #--valid_input=../input/valid \\\npython ./torch-train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/torch.$model.best.v0 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/torch-train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   torch-train.py\n#        \\author   chenghuige  \n#          \\date   2019-08-02 01:05:59.741965\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\n\nfrom dataset import *\nfrom pyt.model import *\nimport pyt.model as base\nimport evaluate as ev\nimport loss\n\nimport melt\n\ndef main(_):\n  FLAGS.torch = True\n  melt.init()\n  fit = melt.get_fit()\n\n  FLAGS.eval_batch_size = 512 * FLAGS.valid_multiplier\n  print('---------eval_batch_size', FLAGS.eval_batch_size)\n\n  model_name = FLAGS.model\n  model = getattr(base, model_name)() \n\n  Dataset = TextDataset if not 'tfrecord' in FLAGS.train_input else TFRecordDataset\n\n  loss_fn = nn.BCEWithLogitsLoss()\n\n  fit(model,  \n      loss_fn,\n      Dataset,\n      eval_fn=ev.evaluate,\n      valid_write_fn=ev.valid_write,\n      #write_valid=FLAGS.write_valid)   \n      write_valid=False)\n\nif __name__ == '__main__':\n  tf.app.run()  \n  \n"
  },
  {
    "path": "projects/feed/rank/tf/train/README.md",
    "content": "v0 ./dw-concat2.sh is best 0.737 this is 0 start index, all sum   loss 0.3159\nv1 ./dw-mean2.sh is best 0.7389  1 start index, length mean  loss 0.30675\n\n0 start index al sum better then 1 start (all sum or length sum)\n"
  },
  {
    "path": "projects/feed/rank/tf/train/allsum.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=allsum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.allsum \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/attention.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=attention \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.att \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/baseline.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --simple_parse=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/baseline \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/baseline2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --simple_parse=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/baseline2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=10000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    -field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/baseline3.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --simple_parse=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/baseline3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.0005 \\\n    --feat_file_path=../input/feature_index \\\n    -field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/baseline4.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --simple_parse=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/baseline4 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=125 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-lp.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --batch_parse=0 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.lp \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-lrnoscal-prerand.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --batch_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/train.rand \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.lrnoscale.prerand \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-lrnoscale-largebuffer.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --batch_parse=0 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.lrnoscale.largebuffer \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-lrnoscale-nbp.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --batch_parse=0 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.lrnoscale.nbp \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-lrnoscale.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --batch_parse=0 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.lrnoscale \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-noshard.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.noshard \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-record-lrnoscale-largebuffer.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/tfrecord/train.rand \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.record.lrnoscale.largebuffer.prerand \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-record-lrnoscale.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.record.lrnoscale \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-record.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.record \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod-sp.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod.sp \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-horovod2.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.horovod2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=250 \\\n    --learning_rate=0.008 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-record.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.best.v0.record \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0-sp.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0.sp \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/best-v0.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.best.v0 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/deep-addval.sh",
    "content": "model=Deep\npython ./train.py \\\n    --deep_addval=1 \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.addval \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/deep.embact.sh",
    "content": "model=Deep\npython ./train.py \\\n    --emb_activation=relu \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.embact \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/deep.sh",
    "content": "model=Deep\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-add.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --emb_activation=relu \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.add \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-att-fieldemb.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --field_emb=1 \\\n    --pooling=att2 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.att.fieldemb \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-bigbatch.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.5 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.bigbatch \\\n    --batch_size=40000 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-concat.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --emb_activation=relu \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.concat \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-concat2.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --index_addone=0 \\\n    --pooling=allsum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.concat2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-concat3.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --wide_addval=0 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.concat3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-concat4.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --deep_addval=1 \\\n    --wide_addval=1 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.concat4 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-field.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --deep_field=1 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.field \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-fieldemb.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --field_emb=1 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.fieldemb \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-hidden100.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --hidden_size=100 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.hidden100 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-hidden64.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --hidden_size=64 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.hidden64 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-max-fieldemb.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --field_emb=1 \\\n    --pooling=max \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.max.fieldemb \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-max.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=max \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.max \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-max2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=max \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.max2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-fieldemb-mlp1layer.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.fieldemb.mlp1layer \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-fieldemb-mlp1layer2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=1 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.fieldemb.mlp1layer2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-fieldemb-mlp2layer.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --mlp_dims=50,1 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.fieldemb.mlp2layer \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-fieldemb-rankloss.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --rank_loss=1 \\\n    --field_emb=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.fieldemb.rankloss \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-fieldemb.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --field_emb=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.fieldemb \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-fieldemb2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --field_emb=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.fieldemb2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2-rankloss.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --rank_loss=1 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2.rankloss \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-mean3.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --pooling=mean \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.mean3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-new-allsum.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --index_addone=1 \\\n    --pooling=allsum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.new.allsum \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-new.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.new \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-old-allsum.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --index_addone=0 \\\n    --pooling=allsum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.old.allsum \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-old.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --index_addone=0 \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.old \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-record.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.dw.record \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fconcat-fieldemb-mlp.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --mlp_dims=1024 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fconcat.fieldemb.mlp \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fconcat-fieldemb-mlp2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --mlp_dims=50 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fconcat.fieldemb.mlp2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fconcat-fieldemb-mlp3.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --field_dict_size=81 \\\n    --mlp_dims=1024 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fconcat.fieldemb.mlp3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fconcat-mlp.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --mlp_dims=1024 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fconcat.mlp \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fconcat-mlp2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --mlp_dims=50 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fconcat.mlp2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fconcat.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fconcat \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fieldemb-rankloss.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --rank_loss=1 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fieldemb.rankloss \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fieldemb.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fieldemb \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-fieldemb2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fieldemb2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-horovod-noshard.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --horovod_shard=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.horovod.noshard \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=125 \\\n    --learning_rate=0.008 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-horovod.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.horovod \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=125 \\\n    --learning_rate=0.008 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum-record.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.record \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum2-fieldemb-mlp1layer.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum.fieldemb.mlp1layer \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-sum2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.sum2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-text.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.text \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/dw-topk.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --pooling=topk \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.topk \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/fconcat-record.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --field_dict_size=81 \\\n    --mlp_dims=1024 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train.rand \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.dw.fconcat.record \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/fconcat.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --field_dict_size=81 \\\n    --mlp_dims=1024 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/* \\\n    --valid_input=../input/valid/* \\\n    --model_dir=../input/model/fconcat \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/fconcat2.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --mlp_drop=0.5 \\\n    --mlp_dims=1024 \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --field_dict_size=81 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/* \\\n    --valid_input=../input/valid/* \\\n    --model_dir=../input/model/fconcat2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/fconcat3.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --mlp_drop=0. \\\n    --mlp_dims=50 \\\n    --simple_parse=1 \\\n    --valid_multiplier=10 \\\n    --field_emb=1 \\\n    --field_dict_size=81 \\\n    --field_concat=1 \\\n    --deep_final_act=0 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/* \\\n    --valid_input=../input/valid/* \\\n    --model_dir=../input/model/fconcat3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-batch128-test.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.02 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.b128.test\\\n    --batch_size=128 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-batch256.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.b256 \\\n    --batch_size=256 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-batch64-2.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.b64.2\\\n    --batch_size=64 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-batch64-test.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.01 \\\n    --save_interval_epochs=0.01 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.b64.test\\\n    --batch_size=64 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-batch64.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --save_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.b64\\\n    --batch_size=64 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-scale.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --eval_batch_size=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.scale \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.008 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-small.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --eval_batch_size=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid.small \\\n    --model_dir=../input/model/$model.horovod \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-test-record.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.05 \\\n    --save_interval_epochs=0.05 \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.horovod.test.tfrecord \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod-test.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.05 \\\n    --save_interval_epochs=0.05 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod.test \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/horovod2.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --batch_parse=1 \\\n    --valid_multiplier=10 \\\n    --eval_batch_size=1 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --save_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.horovod2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/rankloss.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --rank_loss=1 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.rankloss \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/record.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/$model.dw.sum.fieldemb.mlp1layer \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/small.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_steps=100 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train0/*, \\\n    --valid_input=../input/valid0/*, \\\n    --model_dir=../input/model/small \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/sum.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.sum \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test1.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.rand/* \\\n    --valid_input=../input/tfrecord/valid/* \\\n    --model_dir=../input/model/test1 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test10.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train.rand/* \\\n    --valid_input=../input/valid/* \\\n    --model_dir=../input/model/test10 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test11.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train.rand/* \\\n    --valid_input=../input/valid/* \\\n    --model_dir=../input/model/test11 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test12.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.rand/* \\\n    --valid_input=../input/tfrecord/valid/* \\\n    --model_dir=../input/model/test12 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test2.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.old \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/test2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test3.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.old \\\n    --valid_input=../input/tfrecord/valid \\\n    --model_dir=../input/model/test3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test4.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train.old/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/test4 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test5.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.rand/* \\\n    --valid_input=../input/tfrecord/valid/* \\\n    --model_dir=../input/model/test5 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test6-2.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_steps=100 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/test6.2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test6-3.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --interval_steps=10 \\\n    --valid_interval_steps=10 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/test6.3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test6.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_parse=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train/*, \\\n    --valid_input=../input/valid/*, \\\n    --model_dir=../input/model/test6 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test7.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_read=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.old/* \\\n    --valid_input=../input/tfrecord/valid/* \\\n    --model_dir=../input/model/test3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test8.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --simple_read=1 \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.rand/* \\\n    --valid_input=../input/tfrecord/valid/* \\\n    --model_dir=../input/model/test3 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/test9.sh",
    "content": "model=WideDeep\n    #--valid_input=../input/valid \\\npython ./train.py \\\n    --buffer_size=512000 \\\n    --valid_multiplier=10 \\\n    --deep_final_act=0 \\\n    --mlp_dims=50 \\\n    --mlp_drop=0.2 \\\n    --field_emb=1 \\\n    --pooling=sum \\\n    --dense_activation=relu \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/tfrecord/train.rand/* \\\n    --valid_input=../input/tfrecord/valid/* \\\n    --model_dir=../input/model/test9 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=1000 \\\n    --learning_rate=0.001 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep.sh",
    "content": "model=WideDeep\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep2-bert-2epoch.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.bert.2epoch \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=5000 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep2-bert.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.bert \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=5000 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep2-bert2-2epoch.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=2 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.bert2.2epoch \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=5000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep2-bert2.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.bert2 \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=bert \\\n    --min_learning_rate=1e-6 \\\n    --warmup_steps=5000 \\\n    --learning_rate=0.002 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep2-lazy.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.lazy \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --optimizer=\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-deep2.sh",
    "content": "model=WideDeep2\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-ftrl.sh",
    "content": "model=Wide\npython ./train.py \\\n    --optimizer=ftrl \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.ftrl \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide-noval.sh",
    "content": "model=Wide\npython ./train.py \\\n    --wide_addval=0 \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model.noval \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train/wide.sh",
    "content": "model=Wide\npython ./train.py \\\n    --model=$model \\\n    --num_epochs=3 \\\n    --eager=0 \\\n    --valid_interval_epochs=0.1 \\\n    --train_input=../input/train \\\n    --valid_input=../input/valid \\\n    --model_dir=../input/model/$model \\\n    --batch_size=512 \\\n    --max_feat_len=100 \\\n    --feat_file_path=../input/feature_index \\\n    --field_file_path=../input/feat_fields.old\n"
  },
  {
    "path": "projects/feed/rank/tf/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2019-07-26 18:02:22.038876\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom dataset import *\nfrom model import *\nimport model as base\nimport evaluate as ev\nimport loss\n\ndef main(_):\n  melt.init()\n  fit = melt.get_fit()\n\n  FLAGS.eval_batch_size = 512 * FLAGS.valid_multiplier\n  print('---------eval_batch_size', FLAGS.eval_batch_size)\n\n  model_name = FLAGS.model\n  model = getattr(base, model_name)() \n\n  Dataset = TextDataset if not 'tfrecord' in FLAGS.train_input else TFRecordDataset\n\n  loss_fn = tf.losses.sigmoid_cross_entropy if not FLAGS.rank_loss else loss.binary_crossentropy_with_ranking\n\n  fit(model,  \n      loss_fn,\n      Dataset,\n      eval_fn=ev.evaluate,\n      valid_write_fn=ev.valid_write,\n      write_valid=FLAGS.write_valid)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/feed/rank/v1/README.md",
    "content": "split index to sparse and dense  \n"
  },
  {
    "path": "projects/kaggle/blindness/jupter/tf-image.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import tensorflow as tf\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tf.enable_eager_execution()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import cv2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"img_file = '../input/train_images/000c1434d8d7.png'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7fe978405630>\"\n      ]\n     },\n     \"execution_count\": 37,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(cv2.imread(img_file))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7fe9783e3c18>\"\n      ]\n     },\n     \"execution_count\": 38,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"img = cv2.imread(img_file)\\n\",\n    \"img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\\n\",\n    \"plt.imshow(img)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 52,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7fe978316358>\"\n      ]\n     },\n     \"execution_count\": 52,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(img[::-1, :, :])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import scipy.misc \\n\",\n    \"import io\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/gezi/py3env/lib/python3.6/site-packages/ipykernel_launcher.py:2: DeprecationWarning: `toimage` is deprecated!\\n\",\n      \"`toimage` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\\n\",\n      \"Use Pillow's ``Image.fromarray`` directly instead.\\n\",\n      \"  \\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"s = io.BytesIO()\\n\",\n    \"scipy.misc.toimage(img).save(s, format=\\\"png\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"s = io.BytesIO()\\n\",\n    \"import PIL.Image as Image\\n\",\n    \"Image.fromarray(img).save(s, format=\\\"png\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"img2 = Image.open(s)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 49,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(3216, 2136)\"\n      ]\n     },\n     \"execution_count\": 49,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"img2.size\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 54,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"0\"\n      ]\n     },\n     \"execution_count\": 54,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import io\\n\",\n    \"plt.figure()\\n\",\n    \"plt.plot([1, 2])\\n\",\n    \"plt.title(\\\"test\\\\nss\\\")\\n\",\n    \"buf = io.BytesIO()\\n\",\n    \"plt.savefig(buf, format='png')\\n\",\n    \"buf.seek(0)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 57,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class A():\\n\",\n    \"    i = 3\\n\",\n    \"    def haha(self):\\n\",\n    \"        x = self.i + 1\\n\",\n    \"        print(x)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 65,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"4\\n\",\n      \"4\\n\",\n      \"4\\n\",\n      \"5\\n\",\n      \"4\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"a = A()\\n\",\n    \"a.haha()\\n\",\n    \"a.haha()\\n\",\n    \"b = A()\\n\",\n    \"b.haha()\\n\",\n    \"b.i += 1\\n\",\n    \"b.haha()\\n\",\n    \"a.haha()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 3600x3600 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"fig, ax = plt.subplots(nrows=1,ncols=1, figsize=(50,50))\\n\",\n    \"ax.set_title('abcdef', fontsize=40)\\n\",\n    \"ax.imshow(img)\\n\",\n    \"plt.savefig('../input/test.png', format='png', bbox_inches='tight')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"ename\": \"TypeError\",\n     \"evalue\": \"bad argument type for built-in operation\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m                                 Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-33-cd053c983cab>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m()\\u001b[0m\\n\\u001b[1;32m      2\\u001b[0m \\u001b[0ms\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mBytesIO\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m      3\\u001b[0m \\u001b[0mplt\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0msavefig\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0ms\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mformat\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m'png'\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbbox_inches\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m'tight'\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m----> 4\\u001b[0;31m \\u001b[0mplt\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mimshow\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mcv2\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mimread\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0ms\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m: bad argument type for built-in operation\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<Figure size 432x288 with 0 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from io import BytesIO  \\n\",\n    \"s = BytesIO()\\n\",\n    \"plt.savefig(s, format='png', bbox_inches='tight')\\n\",\n    \"plt.imshow(cv2.imread(s))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(2136, 3216, 3)\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"cv2.imread(img_file).shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"image_contents = tf.read_file('../input/train_images/000c1434d8d7.png')\\n\",\n    \"image = tf.image.decode_png(image_contents)     \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"TensorShape([Dimension(2136), Dimension(3216), Dimension(3)])\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"image.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f4b9076cf98>\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(image)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \" img1 = tf.image.resize_image_with_crop_or_pad(image, 256, 256)         \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<tf.Tensor: id=25, shape=(256, 256, 3), dtype=uint8, numpy=\\n\",\n       \"array([[[145,  66,  23],\\n\",\n       \"        [142,  63,  20],\\n\",\n       \"        [141,  62,  19],\\n\",\n       \"        ...,\\n\",\n       \"        [128,  63,  21],\\n\",\n       \"        [130,  65,  23],\\n\",\n       \"        [131,  66,  24]],\\n\",\n       \"\\n\",\n       \"       [[146,  67,  24],\\n\",\n       \"        [142,  63,  20],\\n\",\n       \"        [142,  63,  20],\\n\",\n       \"        ...,\\n\",\n       \"        [128,  63,  21],\\n\",\n       \"        [130,  65,  23],\\n\",\n       \"        [131,  66,  24]],\\n\",\n       \"\\n\",\n       \"       [[147,  68,  27],\\n\",\n       \"        [144,  65,  24],\\n\",\n       \"        [142,  63,  22],\\n\",\n       \"        ...,\\n\",\n       \"        [128,  63,  21],\\n\",\n       \"        [130,  65,  23],\\n\",\n       \"        [131,  66,  24]],\\n\",\n       \"\\n\",\n       \"       ...,\\n\",\n       \"\\n\",\n       \"       [[130,  63,  21],\\n\",\n       \"        [131,  64,  22],\\n\",\n       \"        [133,  66,  23],\\n\",\n       \"        ...,\\n\",\n       \"        [117,  61,  24],\\n\",\n       \"        [117,  63,  25],\\n\",\n       \"        [117,  63,  25]],\\n\",\n       \"\\n\",\n       \"       [[129,  64,  22],\\n\",\n       \"        [130,  66,  22],\\n\",\n       \"        [131,  67,  23],\\n\",\n       \"        ...,\\n\",\n       \"        [116,  62,  26],\\n\",\n       \"        [116,  62,  26],\\n\",\n       \"        [116,  62,  26]],\\n\",\n       \"\\n\",\n       \"       [[131,  67,  23],\\n\",\n       \"        [131,  67,  23],\\n\",\n       \"        [132,  68,  24],\\n\",\n       \"        ...,\\n\",\n       \"        [115,  61,  25],\\n\",\n       \"        [115,  61,  25],\\n\",\n       \"        [115,  61,  25]]], dtype=uint8)>\"\n      ]\n     },\n     \"execution_count\": 28,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"img1\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f4b90657828>\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(img1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"W0721 17:07:39.316631 139965843011328 image.py:663] Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f4b904617f0>\"\n      ]\n     },\n     \"execution_count\": 27,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(tf.image.resize_images(image, [256, 256], method=0))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f4b90433eb8>\"\n      ]\n     },\n     \"execution_count\": 30,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"img2 = tf.image.resize_images(image, [256, 256], method=0)\\n\",\n    \"resized = np.asarray(img2, dtype='uint8')\\n\",\n    \"plt.imshow(resized)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f4b9037fbe0>\"\n      ]\n     },\n     \"execution_count\": 33,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"img3 = tf.image.random_crop(image, [256, 256, 3])\\n\",\n    \"plt.imshow(img3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f4b9026aef0>\"\n      ]\n     },\n     \"execution_count\": 37,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"img = tf.image.resize_images(image, [256, 256], method=0)\\n\",\n    \"img = tf.random_crop(img, [224, 224, 3])\\n\",\n    \"img = tf.image.random_flip_left_right(img)\\n\",\n    \"img = np.asarray(img, dtype='uint8')\\n\",\n    \"plt.imshow(img)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/READEME.md",
    "content": "first start with kaggle kernel http://192.168.31.36:8888/notebooks/wenzheng/projects/kaggle/blindness/other/APTOS%202019_%20Keras%20Baseline.ipynb"
  },
  {
    "path": "projects/kaggle/blindness/keras/aug.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   aug.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:53:11.255995\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom imgaug import augmenters as iaa\nimport imgaug as ia\n\nsometimes = lambda aug: iaa.Sometimes(0.5, aug)\nseq = iaa.Sequential(\n    [\n        # apply the following augmenters to most images\n        iaa.Fliplr(0.5), # horizontally flip 50% of all images\n        iaa.Flipud(0.2), # vertically flip 20% of all images\n        sometimes(iaa.Affine(\n            scale={\"x\": (0.9, 1.1), \"y\": (0.9, 1.1)}, # scale images to 80-120% of their size, individually per axis\n            translate_percent={\"x\": (-0.1, 0.1), \"y\": (-0.1, 0.1)}, # translate by -20 to +20 percent (per axis)\n            rotate=(-10, 10), # rotate by -45 to +45 degrees\n            shear=(-5, 5), # shear by -16 to +16 degrees\n            order=[0, 1], # use nearest neighbour or bilinear interpolation (fast)\n            cval=(0, 255), # if mode is constant, use a cval between 0 and 255\n            mode=ia.ALL # use any of scikit-image's warping modes (see 2nd image from the top for examples)\n        )),\n        # execute 0 to 5 of the following (less important) augmenters per image\n        # don't execute all of them, as that would often be way too strong\n        iaa.SomeOf((0, 5),\n            [\n                sometimes(iaa.Superpixels(p_replace=(0, 1.0), n_segments=(20, 200))), # convert images into their superpixel representation\n                iaa.OneOf([\n                    iaa.GaussianBlur((0, 1.0)), # blur images with a sigma between 0 and 3.0\n                    iaa.AverageBlur(k=(3, 5)), # blur image using local means with kernel sizes between 2 and 7\n                    iaa.MedianBlur(k=(3, 5)), # blur image using local medians with kernel sizes between 2 and 7\n                ]),\n                iaa.Sharpen(alpha=(0, 1.0), lightness=(0.9, 1.1)), # sharpen images\n                iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)), # emboss images\n                # search either for all edges or for directed edges,\n                # blend the result with the original image using a blobby mask\n                iaa.SimplexNoiseAlpha(iaa.OneOf([\n                    iaa.EdgeDetect(alpha=(0.5, 1.0)),\n                    iaa.DirectedEdgeDetect(alpha=(0.5, 1.0), direction=(0.0, 1.0)),\n                ])),\n                iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.01*255), per_channel=0.5), # add gaussian noise to images\n                iaa.OneOf([\n                    iaa.Dropout((0.01, 0.05), per_channel=0.5), # randomly remove up to 10% of the pixels\n                    iaa.CoarseDropout((0.01, 0.03), size_percent=(0.01, 0.02), per_channel=0.2),\n                ]),\n                iaa.Invert(0.01, per_channel=True), # invert color channels\n                iaa.Add((-2, 2), per_channel=0.5), # change brightness of images (by -10 to 10 of original value)\n                iaa.AddToHueAndSaturation((-1, 1)), # change hue and saturation\n                # either change the brightness of the whole image (sometimes\n                # per channel) or change the brightness of subareas\n                iaa.OneOf([\n                    iaa.Multiply((0.9, 1.1), per_channel=0.5),\n                    iaa.FrequencyNoiseAlpha(\n                        exponent=(-1, 0),\n                        first=iaa.Multiply((0.9, 1.1), per_channel=True),\n                        second=iaa.ContrastNormalization((0.9, 1.1))\n                    )\n                ]),\n                sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)), # move pixels locally around (with random strengths)\n                sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05))), # sometimes move parts of the image around\n                sometimes(iaa.PerspectiveTransform(scale=(0.01, 0.1)))\n            ],\n            random_order=True\n        )\n    ],\n    random_order=True)  \n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/check.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   check.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 09:51:36.973744\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 22:03:51.198317\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nWORKERS = 12\nCHANNEL = 3\n\nSIZE = 300\nNUM_CLASSES = 5\n\nepochs = 50; \n#batch_size = 32\n\nrandom_state = 2019\n\nnum_folds = 5\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:09.914646\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.utils import Sequence\nimport numpy as np\nfrom aug import seq \nfrom sklearn.utils import shuffle\nimport cv2\n\nfrom config import *\n\nfrom multiprocessing import Manager\n#image_dict = {}\n# with out this if fit using multiprocess image_dict never add item\nimage_dict = Manager().dict()\n\nclass Dataset(Sequence):\n \n  def __init__(self, image_filenames, labels,\n                batch_size, is_train=True,\n                mix=False, augment=False):\n    self.image_filenames, self.labels = image_filenames, labels\n    self.batch_size = batch_size\n    self.is_train = is_train\n    self.is_augment = augment\n    if(self.is_train):\n        self.on_epoch_end()\n    self.is_mix = mix\n    \n  def __len__(self):\n    return int(np.ceil(len(self.image_filenames) / float(self.batch_size)))\n\n  def __getitem__(self, idx):\n    batch_x = self.image_filenames[idx * self.batch_size:(idx + 1) * self.batch_size]\n    batch_y = self.labels[idx * self.batch_size:(idx + 1) * self.batch_size]\n\n    if(self.is_train):\n      return self.train_generate(batch_x, batch_y)\n    return self.valid_generate(batch_x, batch_y)\n\n  def on_epoch_end(self):\n    if(self.is_train):\n        self.image_filenames, self.labels = shuffle(self.image_filenames, self.labels)\n    else:\n        pass\n  \n  def mix_up(self, x, y):\n    lam = np.random.beta(0.2, 0.4)\n    ori_index = np.arange(int(len(x)))\n    index_array = np.arange(int(len(x)))\n    np.random.shuffle(index_array)        \n    \n    mixed_x = lam * x[ori_index] + (1 - lam) * x[index_array]\n    mixed_y = lam * y[ori_index] + (1 - lam) * y[index_array]\n    \n    return mixed_x, mixed_y\n\n  def train_generate(self, batch_x, batch_y):\n    batch_images = []\n    for (sample, label) in zip(batch_x, batch_y):\n        if sample in image_dict:\n          img = image_dict[sample]\n        else:\n          img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n          img = cv2.resize(img, (SIZE, SIZE))\n          image_dict[sample] = img\n        if(self.is_augment):\n            img = seq.augment_image(img)\n        batch_images.append(img)\n    batch_images = np.array(batch_images, np.float32) / 255\n    batch_y = np.array(batch_y, np.float32)\n    if(self.is_mix):\n        batch_images, batch_y = self.mix_up(batch_images, batch_y)\n    return batch_images, batch_y\n\n  def get_images(self, indexes):\n    image_names = [self.image_filenames.values[i] for i in indexes]\n    imgs = []\n    for sample in image_names:\n      if sample in image_dict:\n        img = image_dict[sample]\n      else:\n        img = cv2.imread('../input/aptos2019-blindness-detection/train_images/' + sample +'.png')\n        img = cv2.resize(img, (SIZE, SIZE))\n        image_dict[sample] = img\n      imgs.append(img)\n    imgs = np.array(imgs, np.float32) / 255\n    return imgs \n\n  def valid_generate(self, batch_x, batch_y):\n    batch_images = []\n    for (sample, label) in zip(batch_x, batch_y):\n        if sample in image_dict:\n          img = image_dict[sample]\n        else:\n          img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n          img = cv2.resize(img, (SIZE, SIZE))\n          image_dict[sample] = img\n        batch_images.append(img)\n    batch_images = np.array(batch_images, np.float32) / 255\n    batch_y = np.array(batch_y, np.float32)\n    return batch_images, batch_y  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:01.775723\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nfrom keras.callbacks import Callback\n\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score, confusion_matrix\n\nfrom config import *\n\nimport cv2\nfrom gezi import SummaryWriter\nimport gezi\n\nimport seaborn as sns\nfrom io import BytesIO  \nimport matplotlib.pyplot as plt\n\nfrom dataset import image_dict\n\ndef gen_confusion(y_true, y_pred, info=''):\n  cm = confusion_matrix(y_true=y_true, y_pred=y_pred)\n  cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n\n  fig, ax = plt.subplots()\n  sns.heatmap(cm, annot=True)\n  ax.set(ylabel='True label', xlabel='Predicted label,{}'.format(info))\n  s = BytesIO()\n  plt.savefig(s, format='png', bbox_inches='tight')\n  return s\n\ndef to_str(scores):\n  return ','.join(['{:.2f}'.format(x) for x in scores])\n\nclass Evaluator(Callback):\n  def __init__(self, \n                dir,\n                validation_data=(), \n                interval=1, \n                loss_type='classification'):\n    super(Callback, self).__init__()\n\n    self.dir = dir\n    self.interval = interval\n    self.valid_generator, self.y_val = validation_data\n    self.history = []\n    self.epoch = 0\n\n    self.loss_type = loss_type\n  \n    self.logger = SummaryWriter(self.dir)\n    \n  def on_epoch_end(self, epoch, logs={}):\n    if epoch % self.interval == 0:\n      y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                            workers=1, \n                                            use_multiprocessing=False,\n                                            verbose=1)\n\n      \n      #print(y_pred)\n      #print('----------', self.y_val.shape, y_pred.shape)\n      \n      y_scores = y_pred\n      \n      if 'classification' in self.loss_type:\n        if not 'ordinal' in self.loss_type:\n          def flatten(y):\n            return np.argmax(y, axis=1).reshape(-1)\n        else:\n          if not '2' in self.loss_type:\n            def flatten(y):\n              return np.sum(y > 0.5, axis=1).reshape(-1) - 1\n          else:\n            def flatten(y):\n              return np.sum(y > 0.5, axis=1).reshape(-1) \n\n        y_true = flatten(self.y_val)\n        y_pred = flatten(y_pred)\n      else: #regression\n        y_true = self.y_val.reshape(-1)\n        y_pred = y_pred.reshape(-1)\n\n        if not 'sigmoid2' in self.loss_type:\n          def trans(x):\n            return int(x + 0.5)\n            # if x >= NUM_CLASSES:\n            #   return NUM_CLASSES - 1\n            # if x <= 0:\n            #   return 0\n            # return int(x)\n        else:\n          \n          def trans(x):\n            return int(x * 4.0 + 0.5)\n\n          def trans2(x):\n            return int(x * 4.0)\n          \n          y_true = np.array([trans2(x) for x in y_true])\n\n        y_pred = np.array([trans(x) for x in y_pred])\n        \n      if 'classification' in self.loss_type:\n        y_score = []\n        for scores, pred in zip(y_scores, y_pred):\n          if not 'ordinal2' in self.loss_type:\n            y_score.append(scores[pred])\n          else:\n            y_score.append(scores[max(pred - 1, 0)])\n        y_score = np.array(y_score)\n      else:\n        y_score = y_scores.reshape(-1)\n\n\n      score = cohen_kappa_score(y_true,\n                                y_pred,\n                                labels=[0,1,2,3,4],\n                                weights='quadratic')\n      print(\"\\n epoch: %d - kappa: %.6f \\n\" % (epoch + 1, score))\n\n      self.logger.scalar('kappa', score, epoch + 1)\n\n      print('image_dict size', len(image_dict))\n\n      batch_idx = 0\n      batch_images, _ = self.valid_generator[batch_idx]\n      idx = batch_idx * self.valid_generator.batch_size\n      texts = []\n      timer = gezi.Timer('image/rand')\n      indexes = [x + idx for x in range(20)]\n      for i in range(len(indexes)):\n        texts.append('id:{}\\nlabel:{}\\npred:{}\\nscore:{:.3f}\\nscores:{}'.format(\n                      self.valid_generator.image_filenames.values[indexes[i]], \n                      y_true[indexes[i]], \n                      y_pred[indexes[i]],\n                      y_score[indexes[i]],\n                      to_str(y_scores[indexes[i]]))) \n      images = [cv2.cvtColor(img, cv2.COLOR_BGR2RGB) for img in self.valid_generator.get_images(indexes)]       \n      \n      self.logger.image('rand', images, epoch + 1, texts)\n      timer.print()\n\n      # timer = gezi.Timer('image/confidence')\n      # #print(y_score.shape, y_true.shape, y_pred.shape)\n      # indexes = (- y_score * (y_true != y_pred)).argsort()[:20]\n      # texts = []\n      # #print('---------------', indexes)\n      # for i in range(len(indexes)):\n      #   texts.append('id:{}\\nlabel:{}\\npred:{}\\nscore:{:.3f}\\nscores:{}'.format(\n      #                 self.valid_generator.image_filenames.values[indexes[i]], \n      #                 y_true[indexes[i]], \n      #                 y_pred[indexes[i]],\n      #                 y_score[indexes[i]],\n      #                 to_str(y_scores[indexes[i]]))) \n      # images = [cv2.cvtColor(img, cv2.COLOR_BGR2RGB) for img in self.valid_generator.get_images(indexes)]  \n\n      # self.logger.image('confidence', images, epoch + 1, texts)  \n      # timer.print()\n\n      timer = gezi.Timer('image/dist')\n      indexes = (-abs(y_true - y_pred)).argsort()[:20]\n      texts = []\n      for i in range(len(indexes)):\n        texts.append('id:{}\\nlabel:{}\\npred:{}\\nscore:{:.3f}\\nscores:{}'.format(\n                      self.valid_generator.image_filenames.values[indexes[i]], \n                      y_true[indexes[i]], \n                      y_pred[indexes[i]],\n                      y_score[indexes[i]],\n                      to_str(y_scores[indexes[i]]))) \n      images = [cv2.cvtColor(img, cv2.COLOR_BGR2RGB) for img in self.valid_generator.get_images(indexes)]   \n\n      self.logger.image('dist', images, epoch + 1, texts)   \n      timer.print()\n\n      confusion = gen_confusion(y_true, y_pred, info='kappa:{:.4f}'.format(score))\n      self.logger.image('confusion', confusion, epoch + 1, bytes_input=True)\n\n      self.history.append(score)\n      if score >= max(self.history):\n        timer = gezi.Timer('saving checkpoint with current best kappa:{:.4f}'.format(score))\n        self.model.save('{}/densenet_bestqwk.h5'.format(self.dir))\n        timer.print()\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/evaluate2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:01.775723\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.callbacks import Callback\n\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\n\nfrom config import *\n\nclass QWKEvaluation(Callback):\n  def __init__(self, validation_data=(), interval=1):\n    super(Callback, self).__init__()\n\n    self.interval = interval\n    self.valid_generator, self.y_val = validation_data\n    self.history = []\n\n  def on_epoch_end(self, epoch, logs={}):\n    if epoch % self.interval == 0:\n      y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                            workers=1, use_multiprocessing=False,\n                                            verbose=1)\n      def flatten(y):\n        return np.argmax(y, axis=1).reshape(-1)\n      \n      score = cohen_kappa_score(flatten(self.y_val),\n                                flatten(y_pred),\n                                labels=[0,1,2,3,4],\n                                weights='quadratic')\n      print(\"\\n epoch: %d - QWK_score: %.6f \\n\" % (epoch+1, score))\n      self.history.append(score)\n      if score >= max(self.history):\n        print('saving checkpoint: ', score)\n        self.model.save('../working/densenet_bestqwk.h5')\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/fake-infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   infer.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 09:24:50.235252\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd\nimport numpy as np\n\ndef hack_lb(test_preds):\n  id_codes = np.load('../input/aptos2019/aptos2019-test/small_id_codes.npy', allow_pickle = True)\n  small_ids_df = pd.DataFrame(id_codes, columns=[\"id_code\"])\n\n  test_df = pd.read_csv(\"../input/aptos2019-blindness-detection/test.csv\")\n  sample_df = small_ids_df\n  sample_df[\"diagnosis\"] = test_preds\n  sub = pd.merge(test_df, sample_df, on='id_code', how='left').fillna(0)\n  sub[\"diagnosis\"] = sub[\"diagnosis\"].astype(int)\n  return sub\n      \n\nsubmit = pd.read_csv('../input/aptos2019-result/submission.csv') \npredicted = submit['diagnosis']\n\nsubmit = hack_lb(predicted)\nsubmit.to_csv('submission.csv', index=False)\nsubmit.head()\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/folds.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   folds.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 17:13:22.547651\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom sklearn.model_selection import StratifiedKFold\n\ndef get_train_valid(x, y, fold=0, num_folds=5, random_state=2019):\n  skf = StratifiedKFold(n_splits=num_folds, random_state=random_state)\n  \n  train_index, valid_index = list(skf.split(x, y))[fold]\n  return x[train_index], x[valid_index], y[train_index], y[valid_index]\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/gen-folds.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-folds.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 17:19:00.621274\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport pandas as pd   \n\nfrom sklearn.model_selection import StratifiedKFold\nfrom sklearn.utils import shuffle\n\nfrom config import *\n\ndf = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\n\nx = df['id_code']\ny = df['diagnosis']\nx, y = shuffle(x, y, random_state=random_state)\n\nskf = StratifiedKFold(n_splits=num_folds, random_state=random_state)\n\nfor i, (_, valid_index) in enumerate(skf.split(x, y)):\n  x_valid, y_valid = x[valid_index], y[valid_index]\n  df = pd.DataFrame()\n  df['id_code'] = x_valid \n  df['diagnosis'] = y_valid \n  result_file = '../input/train_{}.csv'.format(i)\n  df.to_csv(result_file, index=False)\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/infer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   infer.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 09:24:50.235252\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nimport pandas as pd\nfrom tqdm import tqdm\nimport cv2\nfrom keras.models import load_model\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score, confusion_matrix\n\n# TODO can load all info like SIZE from saved model meta data ?\nSIZE = 300\nNUM_CLASSES= 5\n\nclass Predictor():\n  def __init__(self, model, batch_size, predict_fn=None):\n    self.predicted = []\n    self.inputs = []\n    self.model = model\n    self.batch_size = batch_size\n    self.predict_fn = predict_fn\n\n  def _predict(self):\n    self.inputs = np.array(self.inputs)\n    if self.predict_fn:\n      self.predicted += self.predict_fn(self.model, self.inputs)\n    else:\n      self.predicted += list(self.model.predict(self.inputs))\n    self.inputs = []\n\n  def add(self, x):\n    self.inputs.append(x)\n    if len(self.inputs) == self.batch_size:\n      self._predict()\n    \n  def predict(self):\n    if self.inputs:\n      self._predict()\n    return np.array(self.predicted)\n\ndef hack_lb(test_preds):\n  id_codes = np.load('../input/aptos2019/aptos2019-test/small_id_codes.npy', allow_pickle = True)\n  small_ids_df = pd.DataFrame(id_codes, columns=[\"id_code\"])\n\n  test_df = pd.read_csv(\"../input/aptos2019-blindness-detection/test.csv\")\n  sample_df = small_ids_df\n  sample_df[\"diagnosis\"] = test_preds\n  sub = pd.merge(test_df, sample_df, on='id_code', how='left').fillna(0)\n  sub[\"diagnosis\"] = sub[\"diagnosis\"].astype(int)\n  return sub\n      \ndef main(_): \n  if not FLAGS.valid:\n    if not FLAGS.lb_only:\n      submit = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n    else:\n      submit = pd.read_csv('../input/aptos2019/aptos2019-test/test.csv')\n  else:\n    submit = pd.read_csv('../input/aptos2019-blindness-detection/train_%d.csv' % FLAGS.fold)\n  \n  model_path = '../input/aptos2019/densenet_bestqwk.h5' if not FLAGS.model_path else FLAGS.model_path\n  print('loading model from ', model_path)\n  try:\n    model = load_model(model_path)\n  except Exception:\n    # https://github.com/keras-team/keras/issues/5916\n    import loss\n    model = load_model(model_path, custom_objects={'kappa_loss': loss.kappa_loss})\n \n  predict_fn = None\n  if FLAGS.tta:\n    def predict_fn_(model, X):\n      # now only cosinder classification TODO\n      score =((model.predict(X).ravel()*model.predict(X[:, ::-1, :, :]).ravel()*model.predict(X[:, ::-1, ::-1, :]).ravel()*model.predict(X[:, :, ::-1, :]).ravel())**0.25).reshape([-1, NUM_CLASSES]).tolist()\n      return score\n    predict_fn = predict_fn_ \n\n  print('predict_fn', predict_fn)\n  predictor = Predictor(model, FLAGS.batch_size, predict_fn)\n\n  for name in tqdm(submit['id_code'].values, ascii=True):\n    if not FLAGS.valid:\n      path = os.path.join('../input/aptos2019-blindness-detection/test_images/', name + '.png')\n    else:\n      path = os.path.join('../input/aptos2019-blindness-detection/train_images/', name + '.png')\n\n    image = cv2.imread(path)\n    image = cv2.resize(image, (SIZE, SIZE))\n\n    image = image / 255\n    \n    predictor.add(image)\n\n  predicted = predictor.predict()\n  \n  ## classification\n  predicted = np.array([np.argmax(x) for x in predicted])\n\n  ## ordinal classification\n  #predicted = np.array([np.sum(x > 0.5, axis=-1)  for x in predicted])\n  \n  ## regression\n  #predicted = np.array([int(x + 0.5)  for x in predicted])\n\n  if not FLAGS.valid:\n    if not FLAGS.lb_only:\n      submit['diagnosis'] = predicted\n    else:\n      submit = hack_lb(predicted)\n  else:\n    submit['predict'] = predicted\n    score = cohen_kappa_score(submit['diagnosis'].values,\n                              submit['predict'].values,\n                              labels=[0,1,2,3,4],\n                              weights='quadratic')\n    print('kappa score for valid file', score)\n\n  result_file = 'submission.csv'\n  if FLAGS.model_path:\n    dir = os.path.dirname(FLAGS.model_path)\n    result_file = '{}/{}'.format(dir, result_file)\n\n  submit.to_csv(result_file, index=False)\n  submit.head()\n\n\nif __name__ == '__main__':\n  flags.DEFINE_integer('batch_size', 128, '')\n  flags.DEFINE_string('model_path', None, '')\n  flags.DEFINE_bool('tta', False, '')\n  flags.DEFINE_bool('optimize_kappa', False, '')\n  flags.DEFINE_bool('valid', False, 'infer valid or infer test')\n  flags.DEFINE_integer('fold', 0, '')\n  flags.DEFINE_bool('lb_only', False, 'only consider lb score')\n\n  absl_app.run(main) \n"
  },
  {
    "path": "projects/kaggle/blindness/keras/infer.sh",
    "content": "python ./infer.py --model_path $1\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/jupter.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Using TensorFlow backend.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from __future__ import absolute_import\\n\",\n    \"from __future__ import division\\n\",\n    \"from __future__ import print_function\\n\",\n    \"\\n\",\n    \"import sys \\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"from absl import app as absl_app\\n\",\n    \"from absl import flags\\n\",\n    \"FLAGS = flags.FLAGS\\n\",\n    \"\\n\",\n    \"from keras.callbacks import ModelCheckpoint\\n\",\n    \"from keras import metrics\\n\",\n    \"from keras.optimizers import Adam \\n\",\n    \"\\n\",\n    \"# create callbacks list\\n\",\n    \"from keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\\n\",\n    \"                             EarlyStopping, ReduceLROnPlateau,CSVLogger,\\n\",\n    \"                             TensorBoard)\\n\",\n    \"\\n\",\n    \"from keras.utils import to_categorical\\n\",\n    \"import keras\\n\",\n    \"\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"from sklearn.model_selection import train_test_split\\n\",\n    \"from sklearn.utils import shuffle\\n\",\n    \"\\n\",\n    \"from config import * \\n\",\n    \"from dataset import Dataset\\n\",\n    \"from evaluate import QWKEvaluation\\n\",\n    \"from model import create_model\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"batch_size_ 24\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"df_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\\n\",\n    \"df_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\\n\",\n    \"\\n\",\n    \"x = df_train['id_code']\\n\",\n    \"y = df_train['diagnosis']\\n\",\n    \"\\n\",\n    \"batch_size = 32\\n\",\n    \"\\n\",\n    \"x, y = shuffle(x, y, random_state=8)\\n\",\n    \"y = to_categorical(y, num_classes=NUM_CLASSES)\\n\",\n    \"train_x, valid_x, train_y, valid_y = train_test_split(x, y, test_size=0.1,\\n\",\n    \"                                                  stratify=y, random_state=8)\\n\",\n    \"#----------  init\\n\",\n    \"train_data = Dataset(train_x, train_y, 128, is_train=True)\\n\",\n    \"batch_size_ = 24\\n\",\n    \"print('batch_size_', batch_size_)\\n\",\n    \"train_mixup = Dataset(train_x, train_y, batch_size_, is_train=True, mix=False, augment=True)\\n\",\n    \"valid_data = Dataset(valid_x, valid_y, batch_size, is_train=False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"WARNING: Logging before flag parsing goes to stderr.\\n\",\n      \"W0722 20:54:07.297391 140406537910016 deprecation.py:323] From /home/gezi/py3env/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\\n\",\n      \"Instructions for updating:\\n\",\n      \"Colocations handled automatically by placer.\\n\",\n      \"W0722 20:54:25.478129 140406537910016 deprecation.py:506] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\\n\",\n      \"Instructions for updating:\\n\",\n      \"Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# train step1, warm up model\\n\",\n    \"model = create_model(\\n\",\n    \"input_shape=(SIZE,SIZE,3), \\n\",\n    \"n_out=NUM_CLASSES)\\n\",\n    \"\\n\",\n    \"for layer in model.layers:\\n\",\n    \"    layer.trainable = False\\n\",\n    \"\\n\",\n    \"for i in range(-3,0):\\n\",\n    \"    model.layers[i].trainable = True\\n\",\n    \"\\n\",\n    \"model.compile(\\n\",\n    \"loss='categorical_crossentropy',\\n\",\n    \"optimizer=Adam(1e-3))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"12/12 [==============================] - 22s 2s/step\\n\"\n     ]\n    },\n    {\n     \"ename\": \"TypeError\",\n     \"evalue\": \"bad argument type for built-in operation\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m                                 Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-4-4b7d73cf45e1>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m()\\u001b[0m\\n\\u001b[1;32m      3\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m      4\\u001b[0m \\u001b[0mqwk\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmodel\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mmodel\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m----> 5\\u001b[0;31m \\u001b[0mqwk\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_epoch_end\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;36m0\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;32m~/mine/wenzheng/projects/kaggle/blindness/keras/evaluate.py\\u001b[0m in \\u001b[0;36mon_epoch_end\\u001b[0;34m(self, epoch, logs)\\u001b[0m\\n\\u001b[1;32m     63\\u001b[0m         \\u001b[0mtexts\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mappend\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'id:{} label:{} :predict:{}'\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mformat\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mvalid_generator\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mimage_filenames\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mvalues\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0midx\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0mi\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mflatten\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0my_val\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0midx\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0mi\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mflatten\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0my_pred\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0midx\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0mi\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     64\\u001b[0m       \\u001b[0mimages\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m[\\u001b[0m\\u001b[0mcv2\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mcvtColor\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mimg\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcv2\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mCOLOR_BGR2RGB\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mfor\\u001b[0m \\u001b[0mimg\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mbatch_images\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;36m20\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 65\\u001b[0;31m       \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mlogger\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mimage_summary\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'image'\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mimages\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mepoch\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mtexts\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     66\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     67\\u001b[0m       \\u001b[0mprint\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\\"\\\\n epoch: %d - kappa: %.6f \\\\n\\\"\\u001b[0m \\u001b[0;34m%\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0mepoch\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mscore\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/mine/wenzheng/utils/gezi/summary.py\\u001b[0m in \\u001b[0;36mimage_summary\\u001b[0;34m(self, tag, images, step, text)\\u001b[0m\\n\\u001b[1;32m     46\\u001b[0m         \\u001b[0;32mfor\\u001b[0m \\u001b[0mi\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mimg\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0menumerate\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mimages\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     47\\u001b[0m             \\u001b[0;32mif\\u001b[0m \\u001b[0mtext\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 48\\u001b[0;31m               \\u001b[0mimg\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mcv2\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mputText\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mimg\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mtext\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0;36m0\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m30\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcv2\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mFONT_HERSHEY_COMPLEX\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0;36m0\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m0\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m2\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     49\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     50\\u001b[0m             \\u001b[0;31m# Write the image to a string\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;31mTypeError\\u001b[0m: bad argument type for built-in operation\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"qwk = QWKEvaluation(validation_data=(valid_data, valid_y),\\n\",\n    \"                  batch_size=batch_size, interval=1)  \\n\",\n    \"\\n\",\n    \"qwk.model = model\\n\",\n    \"qwk.on_epoch_end(0)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import cv2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"img = cv2.imread('../input/aptos2019-blindness-detection/train_images/000c1434d8d7.png')\\n\",\n    \"img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7fadf980a9e8>\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(img)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"img = cv2.imread('../input/aptos2019-blindness-detection/train_images/000c1434d8d7.png')\\n\",\n    \"img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\\n\",\n    \"plt.imshow(img)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"fig, ax = plt.subplots(nrows=1,ncols=1, figsize=(50,50))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"Text(0.5,1,'abcdef')\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ax.set_title('abcdef', fontsize=40)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7fadf9682588>\"\n      ]\n     },\n     \"execution_count\": 16,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"ax.imshow(img)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"valid_data.image_filenames[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"type(x)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"type(valid_data.image_filenames)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"train_x[3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"valid_x[3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"train_test_split?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"len(valid_x)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"len(train_x)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"x[:3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"valid_x[:3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"valid_x.values[3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"x.values[3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"x[3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"valid_x[3]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:43.549005\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf \n\n# def earth_mover_loss(y_true, y_pred):\n#   cdf_ytrue = tf.cumsum(y_true, axis=-1)\n#   cdf_ypred = tf.cumsum(y_pred, axis=-1)\n#   samplewise_emd = tf.sqrt(tf.reduce_mean(tf.square(tf.abs(cdf_ytrue - cdf_ypred)), axis=-1))\n#   return samplewise_emd\n\nimport keras.backend as K\n\nfrom keras.losses import binary_crossentropy, categorical_crossentropy\n\ndef earth_mover_loss(y_true, y_pred):\n  cdf_ytrue = K.cumsum(y_true, axis=-1)\n  cdf_ypred = K.cumsum(y_pred, axis=-1)\n  samplewise_emd = K.sqrt(K.mean(K.square(K.abs(cdf_ytrue - cdf_ypred)), axis=-1))\n  return samplewise_emd\n\n# reference link: https://www.kaggle.com/christofhenkel/weighted-kappa-loss-for-keras-tensorflow\n#.. can no simple load\ndef kappa_loss(y_true, y_pred, y_pow=2, eps=1e-12, N=5, bsize=32, name='kappa'):\n    \"\"\"A continuous differentiable approximation of discrete kappa loss.\n        Args:\n            y_pred: 2D tensor or array, [batch_size, num_classes]\n            y_true: 2D tensor or array,[batch_size, num_classes]\n            y_pow: int,  e.g. y_pow=2\n            N: typically num_classes of the model\n            bsize: batch_size of the training or validation ops\n            eps: a float, prevents divide by zero\n            name: Optional scope/name for op_scope.\n        Returns:\n            A tensor with the kappa loss.\"\"\"\n\n    with tf.name_scope(name):\n        y_true = tf.to_float(y_true)\n        repeat_op = tf.to_float(tf.tile(tf.reshape(tf.range(0, N), [N, 1]), [1, N]))\n        repeat_op_sq = tf.square((repeat_op - tf.transpose(repeat_op)))\n        weights = repeat_op_sq / tf.to_float((N - 1) ** 2)\n    \n        pred_ = y_pred ** y_pow\n        try:\n            pred_norm = pred_ / (eps + tf.reshape(tf.reduce_sum(pred_, 1), [-1, 1]))\n        except Exception:\n            pred_norm = pred_ / (eps + tf.reshape(tf.reduce_sum(pred_, 1), [bsize, 1]))\n    \n        hist_rater_a = tf.reduce_sum(pred_norm, 0)\n        hist_rater_b = tf.reduce_sum(y_true, 0)\n    \n        conf_mat = tf.matmul(tf.transpose(pred_norm), y_true)\n    \n        nom = tf.reduce_sum(weights * conf_mat)\n        denom = tf.reduce_sum(weights * tf.matmul(\n            tf.reshape(hist_rater_a, [N, 1]), tf.reshape(hist_rater_b, [1, N])) /\n                              tf.to_float(bsize))\n    \n        return nom*0.5 / (denom + eps) + categorical_crossentropy(y_true, y_pred)*0.5\n\ndef get_loss(loss_type=None):\n  if 'regression' in loss_type:\n    if 'sigmoid2' in loss_type:\n      return 'binary_crossentropy'\n    if not 'mae' in loss_type:\n      return 'mse'\n    else:\n      return 'mae'\n  elif 'ordinal' in loss_type:\n    return 'binary_crossentropy'\n  elif 'earth' in loss_type:\n    return earth_mover_loss\n  else:\n    # classification\n    if 'kappa' in loss_type:\n      return kappa_loss\n    return 'categorical_crossentropy'\n\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/lr.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   lr.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 20:02:43.001845\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n# https://www.dlology.com/blog/bag-of-tricks-for-image-classification-with-convolutional-neural-networks-in-keras/\n\nimport numpy as np\nfrom tensorflow import keras\nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Dense\nfrom tensorflow.keras import backend as K\n\n\nclass WarmUpLearningRateScheduler(keras.callbacks.Callback):\n    \"\"\"Warmup learning rate scheduler\n    \"\"\"\n\n    def __init__(self, warmup_batches, init_lr, verbose=0):\n        \"\"\"Constructor for warmup learning rate scheduler\n\n        Arguments:\n            warmup_batches {int} -- Number of batch for warmup.\n            init_lr {float} -- Learning rate after warmup.\n\n        Keyword Arguments:\n            verbose {int} -- 0: quiet, 1: update messages. (default: {0})\n        \"\"\"\n\n        super(WarmUpLearningRateScheduler, self).__init__()\n        self.warmup_batches = warmup_batches\n        self.init_lr = init_lr\n        self.verbose = verbose\n        self.batch_count = 0\n        self.learning_rates = []\n\n    def on_batch_end(self, batch, logs=None):\n        self.batch_count = self.batch_count + 1\n        lr = K.get_value(self.model.optimizer.lr)\n        self.learning_rates.append(lr)\n\n    def on_batch_begin(self, batch, logs=None):\n        if self.batch_count <= self.warmup_batches:\n            lr = self.batch_count*self.init_lr/self.warmup_batches\n            K.set_value(self.model.optimizer.lr, lr)\n            if self.verbose > 0:\n                print('\\nBatch %05d: WarmUpLearningRateScheduler setting learning '\n                      'rate to %s.' % (self.batch_count + 1, lr))\n\ndef cosine_decay_with_warmup(global_step,\n                             learning_rate_base,\n                             total_steps,\n                             warmup_learning_rate=0.0,\n                             warmup_steps=0,\n                             hold_base_rate_steps=0):\n    \"\"\"Cosine decay schedule with warm up period.\n\n    Cosine annealing learning rate as described in:\n      Loshchilov and Hutter, SGDR: Stochastic Gradient Descent with Warm Restarts.\n      ICLR 2017. https://arxiv.org/abs/1608.03983\n    In this schedule, the learning rate grows linearly from warmup_learning_rate\n    to learning_rate_base for warmup_steps, then transitions to a cosine decay\n    schedule.\n\n    Arguments:\n        global_step {int} -- global step.\n        learning_rate_base {float} -- base learning rate.\n        total_steps {int} -- total number of training steps.\n\n    Keyword Arguments:\n        warmup_learning_rate {float} -- initial learning rate for warm up. (default: {0.0})\n        warmup_steps {int} -- number of warmup steps. (default: {0})\n        hold_base_rate_steps {int} -- Optional number of steps to hold base learning rate\n                                    before decaying. (default: {0})\n    Returns:\n      a float representing learning rate.\n\n    Raises:\n      ValueError: if warmup_learning_rate is larger than learning_rate_base,\n        or if warmup_steps is larger than total_steps.\n    \"\"\"\n\n    if total_steps < warmup_steps:\n        raise ValueError('total_steps must be larger or equal to '\n                         'warmup_steps.')\n    learning_rate = 0.5 * learning_rate_base * (1 + np.cos(\n        np.pi *\n        (global_step - warmup_steps - hold_base_rate_steps\n         ) / float(total_steps - warmup_steps - hold_base_rate_steps)))\n    if hold_base_rate_steps > 0:\n        learning_rate = np.where(global_step > warmup_steps + hold_base_rate_steps,\n                                 learning_rate, learning_rate_base)\n    if warmup_steps > 0:\n        if learning_rate_base < warmup_learning_rate:\n            raise ValueError('learning_rate_base must be larger or equal to '\n                             'warmup_learning_rate.')\n        slope = (learning_rate_base - warmup_learning_rate) / warmup_steps\n        warmup_rate = slope * global_step + warmup_learning_rate\n        learning_rate = np.where(global_step < warmup_steps, warmup_rate,\n                                 learning_rate)\n    return np.where(global_step > total_steps, 0.0, learning_rate)\n\n\nclass WarmUpCosineDecayScheduler(keras.callbacks.Callback):\n    \"\"\"Cosine decay with warmup learning rate scheduler\n    \"\"\"\n\n    def __init__(self,\n                 learning_rate_base,\n                 total_steps,\n                 global_step_init=0,\n                 warmup_learning_rate=0.0,\n                 warmup_steps=0,\n                 hold_base_rate_steps=0,\n                 verbose=0):\n        \"\"\"Constructor for cosine decay with warmup learning rate scheduler.\n\n    Arguments:\n        learning_rate_base {float} -- base learning rate.\n        total_steps {int} -- total number of training steps.\n\n    Keyword Arguments:\n        global_step_init {int} -- initial global step, e.g. from previous checkpoint.\n        warmup_learning_rate {float} -- initial learning rate for warm up. (default: {0.0})\n        warmup_steps {int} -- number of warmup steps. (default: {0})\n        hold_base_rate_steps {int} -- Optional number of steps to hold base learning rate\n                                    before decaying. (default: {0})\n        verbose {int} -- 0: quiet, 1: update messages. (default: {0})\n        \"\"\"\n\n        super(WarmUpCosineDecayScheduler, self).__init__()\n        self.learning_rate_base = learning_rate_base\n        self.total_steps = total_steps\n        self.global_step = global_step_init\n        self.warmup_learning_rate = warmup_learning_rate\n        self.warmup_steps = warmup_steps\n        self.hold_base_rate_steps = hold_base_rate_steps\n        self.verbose = verbose\n        self.learning_rates = []\n\n    def on_batch_end(self, batch, logs=None):\n        self.global_step = self.global_step + 1\n        lr = K.get_value(self.model.optimizer.lr)\n        self.learning_rates.append(lr)\n\n    def on_batch_begin(self, batch, logs=None):\n        lr = cosine_decay_with_warmup(global_step=self.global_step,\n                                      learning_rate_base=self.learning_rate_base,\n                                      total_steps=self.total_steps,\n                                      warmup_learning_rate=self.warmup_learning_rate,\n                                      warmup_steps=self.warmup_steps,\n                                      hold_base_rate_steps=self.hold_base_rate_steps)\n        K.set_value(self.model.optimizer.lr, lr)\n        if self.verbose > 0:\n            print('\\nBatch %05d: setting learning '\n                  'rate to %s.' % (self.global_step + 1, lr))\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:05.709750\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.applications.densenet import DenseNet121,DenseNet169\nfrom keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate,\n                          Multiply, Lambda)\nfrom keras.models import Model\n#from keras import backend as K\nimport keras\nimport tensorflow as tf\n\nfrom config import *\n\ndef create_model(input_shape, n_out, loss_type=''):\n  input_tensor = Input(shape=input_shape)\n  base_model = DenseNet121(include_top=False,\n                  weights=None,\n                  input_tensor=input_tensor)\n  base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n  x = GlobalAveragePooling2D()(base_model.output)\n  x = Dropout(0.5)(x)\n  x = Dense(1024, activation='relu')(x)\n  x = Dropout(0.5)(x)\n\n  if 'linear_regression' in loss_type:\n    final_output = Dense(1, activation='linear', name='final_output')(x)\n  elif 'sigmoid_regression' in loss_type:\n    x = Dense(1, activation='sigmoid')(x)\n    #final_output = Multiply(name='final_output')([x, tf.constant(10.)])\n    #https://github.com/keras-team/keras/issues/10204\n    #final_output = Lambda(lambda x: x * 10.0, name='final_output')(x)\n    final_output = Lambda(lambda x: x * 4.0, name='final_output')(x)\n  elif 'sigmoid2_regression' in loss_type:\n    final_output = Dense(1, activation='sigmoid', name='final_output')(x)\n  elif loss_type == 'ordinal_classification':\n    final_output = Dense(n_out, activation='sigmoid', name='final_output')(x)\n  elif loss_type == 'ordinal2_classification':\n    final_output = Dense(n_out - 1, activation='sigmoid', name='final_output')(x)\n  else:\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n  \n  model = Model(input_tensor, final_output) \n  return model\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:40.029962\n#   \\Description   still multiple gpu not correct result...\n#                  seems keras bug, train 90% valid 10% multiple gpu ok\n#                  train 80% valid 20% multiple gpu wrong..\n# to reproduce\n# c01 python train2.py ok\n# c01 python train2.py --valid_portion=0.1 wrong\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nfrom keras.callbacks import ModelCheckpoint\nfrom keras import metrics\nfrom keras.optimizers import Adam \n\n# create callbacks list\nfrom keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger,\n                             TensorBoard)\n\nfrom keras.utils import to_categorical\nimport keras\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.utils import shuffle\n\nfrom config import * \nfrom dataset import *\nfrom evaluate import Evaluator\nfrom model import create_model\nfrom loss import get_loss\n\nimport folds\nfrom util import *\n\ndef to_regression(y):\n  bs = len(y)\n  y = np.argmax(y, -1).reshape([bs, 1])\n  return y \n\ndef to_regression2(y):\n  bs = len(y)\n  y = np.argmax(y, -1).reshape([bs, 1])\n  y = y / (NUM_CLASSES - 1)\n  return y \n\ndef to_ordinal(y):\n  # [0,0,1,0,0] ->[1,1,1,0,0] for multi label loss\n  y_ = np.empty(y.shape, dtype=y.dtype)\n  y_[:, NUM_CLASSES - 1] = y[:, NUM_CLASSES - 1]\n\n  for i in range(NUM_CLASSES - 2, -1, -1):\n      y_[:, i] = np.logical_or(y[:, i], y_[:, i+1])\n  y = y_  \n  return y\n\ndef to_ordinal2(y):\n  y = to_ordinal(y)\n  y = y[:, 1:]\n  return y\n\ndef trans_y(y, loss_type):\n  if 'regression' in loss_type:\n    if 'sigmoid2' in loss_type:\n      return to_regression2(y)\n    else:\n      return to_regression(y)\n  elif 'ordinal' in loss_type:\n    if '2' in loss_type:\n      return to_ordinal2(y)\n    else:\n      return to_ordinal(y)\n  return y\n\ndef main(_):\n  num_gpus = get_num_gpus()\n  assert num_gpus\n  print('num_gpus', get_num_gpus())\n\n  batch_size = FLAGS.batch_size\n\n  # ordinal2 better then ordinal since do not need 5 bits just need 4 bits \n  # so classification, sigmoid_regression and ordinal2_classification similar result, classification maybe slightly better\n  # for regression, tend to predict less 4..\n  loss_types = ['classification', 'linear_regression', \\\n                'sigmoid_regression', 'sigmoid_regression_mae', 'sigmoid2_regression', \\\n                'ordinal_classification', 'ordinal2_classification', \n                'earth_classification', 'kappa_classification']\n  \n  loss_type = FLAGS.loss_type\n  print('loss_type', loss_type)\n  assert loss_type in loss_types\n\n  #----------- read input\n  df_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\n  df_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n  \n  x = df_train['id_code']\n  y = df_train['diagnosis']\n  x, y = shuffle(x, y, random_state=random_state)\n  \n  # https://stackoverflow.com/questions/48508036/sklearn-stratifiedkfold-valueerror-supported-target-types-are-binary-mul\n  # Supported target types are: ('binary', 'multiclass'). Got 'multilabel-indicator' instead. \n  # can not put after to_categorical\n  train_x, valid_x, train_y, valid_y = folds.get_train_valid(x, y, FLAGS.fold, FLAGS.num_folds, random_state=2019)\n\n  # # check if exactly same as gen-folds, so fold 0 valid.csv should be same as ../input/train_0.csv\n  # df = pd.DataFrame()\n  # df['id_code'] = valid_x\n  # df['diagnosis'] = valid_y \n  # df.to_csv('valid.csv', index=False)\n\n  train_y = to_categorical(train_y, num_classes=NUM_CLASSES)\n  train_y = trans_y(train_y, loss_type)\n\n  valid_y = to_categorical(valid_y, num_classes=NUM_CLASSES)\n  valid_y = trans_y(valid_y, loss_type)\n  \n\n  #----------  init\n  train_data = Dataset(train_x, train_y, 128, is_train=True)\n  \n  #batch_size_ = int(batch_size * (3 / 4)) if num_gpus == 1 else batch_size\n  batch_size_ = int(batch_size * (3 / 4)) * FLAGS.multiplier  # 24 48\n  \n  print('batch_size_', batch_size_)\n  train_mixup = Dataset(train_x, train_y, batch_size_, is_train=True, mix=False, augment=True)\n  valid_data = Dataset(valid_x, valid_y, batch_size, is_train=False)\n\n  # train step1, warm up model\n  model = create_model(\n    input_shape=(SIZE,SIZE,3), \n    n_out=NUM_CLASSES,\n    loss_type=loss_type)\n  \n  for layer in model.layers:\n    layer.trainable = False\n\n  for i in range(-3,0):\n    model.layers[i].trainable = True\n\n  if num_gpus > 1:\n    smodel = model\n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  loss_fn = get_loss(loss_type)\n\n  print('loss_fn', loss_fn)\n\n  model.compile(\n    loss=loss_fn,\n    optimizer=Adam(1e-3))\n\n  #model.summary()\n\n  dir = '../working/{}/{}'.format(FLAGS.fold, loss_type)\n  if FLAGS.multiplier > 1:\n    dir += '_{}'.format(FLAGS.multiplier)\n  if num_gpus > 1:\n    dir += '_{}gpu'.format(num_gpus)\n\n  print('dir:', dir)\n\n  tb = TensorBoard(log_dir=dir, histogram_freq=0,\n                   write_graph=True, write_images=False)\n\n  eval = Evaluator(dir,\n                   validation_data=(valid_data, valid_y),\n                   interval=1, \n                   loss_type=loss_type)  \n\n  ## for faster check evaluate probelm but may cuase problem for mutltigpu wrong eval TODO FIXME\n  # eval.model = model\n  # eval.on_epoch_end(-1)\n  # print('image_dict size', len(image_dict))\n\n  model.fit_generator(\n    train_data,\n    validation_data=valid_data,\n    epochs=2,\n    workers=WORKERS, \n    use_multiprocessing=True,\n    verbose=1,\n    callbacks=[eval, tb])\n\n  # seems if use_multiprocessing=True will not update image_dict\n  print('image_dict size', len(image_dict))\n  \n\n  # train step2, train all layers\n  checkpoint = ModelCheckpoint('{}/densenet_.h5'.format(dir), monitor='val_loss', verbose=1, \n                               save_best_only=True, mode='min', save_weights_only = True)\n  reduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \n                                     verbose=1, mode='auto', epsilon=0.0001)\n  early = EarlyStopping(monitor=\"val_loss\", \n                        mode=\"min\", \n                        patience=9)\n\n  csv_logger = CSVLogger(filename='{}/training_log.csv'.format(dir),\n                        separator=',',\n                        append=True)\n\n  # from lr import WarmUpCosineDecayScheduler\n  # warmup_epoch = 2\n  # warmup_steps = warmup_epoch * len(train_mixup)\n  # warm_up_lr = WarmUpCosineDecayScheduler(learning_rate_base=2e-4,\n  #                                         total_steps=len(train_mixup) * (epochs - 2),\n  #                                         warmup_learning_rate=0.0,\n  #                                         warmup_steps=warmup_steps,\n  #                                         hold_base_rate_steps=0)\n\n  if num_gpus > 1:\n    model = smodel\n\n  for layer in model.layers:\n    layer.trainable = True\n  \n  callbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, eval, tb]\n  #callbacks_list = [checkpoint, csv_logger, warm_up_lr, early, eval, tb]\n\n\n  if num_gpus > 1:\n    smodel = model \n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  lr = 1e-4\n  lr *= FLAGS.multiplier\n  # Notice if using warm_up_lr then lr here not on effect\n  model.compile(loss=loss_fn,\n                optimizer=Adam(lr=lr))\n\n  epoch_now = 2\n  model.fit_generator(\n    train_mixup,\n    validation_data=valid_data,\n    epochs=epochs,\n    verbose=1,\n    ## FIXME probelm with callback save model OSError: Unable to create file (unable to lock file, errno = 11, error message = 'Resource temporarily unavailable')\n    ## will be slower (50->57) not using multiprocessing seems problem only occur for validation when saving checkpoint\n    # workers=WORKERS, \n    # use_multiprocessing=True,\n    workers=1, \n    use_multiprocessing=False,\n    callbacks=callbacks_list,\n    initial_epoch=epoch_now)\n\nif __name__ == '__main__':\n  flags.DEFINE_integer('batch_size', 32, '')\n  flags.DEFINE_integer('num_folds', 5, '')\n  flags.DEFINE_integer('fold', 0, '')\n  flags.DEFINE_integer('multiplier', 1, '')\n\n  flags.DEFINE_string('loss_type', 'classification', \n                      'classification, linear_regression, sigmoid_regression, ordinal_classification')\n\n  absl_app.run(main) \n"
  },
  {
    "path": "projects/kaggle/blindness/keras/train2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:40.029962\n#   \\Description   still multiple gpu not correct result...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nfrom keras.callbacks import ModelCheckpoint\nfrom keras import metrics\nfrom keras.optimizers import Adam \n\n# create callbacks list\nfrom keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger,\n                             TensorBoard)\nimport keras\nfrom keras.utils import to_categorical\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.utils import shuffle\n\nfrom config import * \nfrom dataset import Dataset\nfrom evaluate2 import QWKEvaluation\nfrom model import create_model\n\ndef get_num_gpus():\n  if 'CUDA_VISIBLE_DEVICES' in os.environ:\n    print(\"os.environ['CUDA_VISIBLE_DEVICES']\", os.environ['CUDA_VISIBLE_DEVICES'])\n    if os.environ['CUDA_VISIBLE_DEVICES'] == '-1':\n      return 0\n    num_gpus = len(os.environ['CUDA_VISIBLE_DEVICES'].split(','))\n    print('CUDA_VISIBLE_DEVICES is %s'%(os.environ['CUDA_VISIBLE_DEVICES']))\n    return num_gpus\n  else:\n    return None\n\ndef main(_):\n  num_gpus = get_num_gpus()\n  assert num_gpus\n  print('num_gpus', get_num_gpus())\n\n  batch_size = FLAGS.batch_size\n\n  #----------- read input\n  df_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\n  df_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n  \n  x = df_train['id_code']\n  y = df_train['diagnosis']\n\n  x, y = shuffle(x, y, random_state=8)\n  y = to_categorical(y, num_classes=NUM_CLASSES)\n  train_x, valid_x, train_y, valid_y = train_test_split(x, y, test_size=FLAGS.valid_portion,\n                                                      stratify=y, random_state=8)\n  #----------  init\n  train_data = Dataset(train_x, train_y, 128, is_train=True)\n  #batch_size_ = int(batch_size * (3 / 4)) if num_gpus == 1 else batch_size\n  batch_size_ = int(batch_size * (3 / 4))\n\n  print('batch_size_', batch_size_)\n  train_mixup = Dataset(train_x, train_y, batch_size_, is_train=True, mix=False, augment=True)\n  valid_data = Dataset(valid_x, valid_y, batch_size, is_train=False)\n\n  # train step1, warm up model\n  model = create_model(\n    input_shape=(SIZE,SIZE,3), \n    n_out=NUM_CLASSES)\n  \n  for layer in model.layers:\n    layer.trainable = False\n\n  for i in range(-3,0):\n    model.layers[i].trainable = True\n\n  if num_gpus > 1:\n    smodel = model\n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(\n    loss='categorical_crossentropy',\n    optimizer=Adam(1e-3))\n\n  tb = TensorBoard(log_dir='./logs', histogram_freq=0,\n                          write_graph=True, write_images=False)\n\n  qwk = QWKEvaluation(validation_data=(valid_data, valid_y),\n                      interval=1)  \n\n  \n  model.fit_generator(\n    train_data,\n    validation_data=valid_data,\n    epochs=2,\n    workers=WORKERS, \n    use_multiprocessing=True,\n    verbose=1,\n    callbacks=[qwk])\n\n  # train step2, train all layers\n  checkpoint = ModelCheckpoint('../working/densenet_.h5', monitor='val_loss', verbose=1, \n                              save_best_only=True, mode='min', save_weights_only = True)\n  reduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \n                                    verbose=1, mode='auto', epsilon=0.0001)\n  early = EarlyStopping(monitor=\"val_loss\", \n                        mode=\"min\", \n                        patience=9)\n\n  csv_logger = CSVLogger(filename='../working/training_log.csv',\n                        separator=',',\n                        append=True)\n\n  if num_gpus > 1:\n    model = smodel\n\n  for layer in model.layers:\n    layer.trainable = True\n  callbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, qwk]\n\n  if num_gpus > 1:\n    smodel = model \n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(loss='categorical_crossentropy',\n                # loss=kappa_loss,\n                optimizer=Adam(lr=1e-4))\n\n  model.fit_generator(\n    train_mixup,\n    validation_data=valid_data,\n    epochs=epochs,\n    verbose=1,\n    workers=1, \n    use_multiprocessing=False,\n    callbacks=callbacks_list,\n    initial_epoch=2)\n\nif __name__ == '__main__':\n  flags.DEFINE_integer('batch_size', 32, '')\n  flags.DEFINE_float('valid_portion', 0.1, '')\n                      \n  absl_app.run(main) \n"
  },
  {
    "path": "projects/kaggle/blindness/keras/util.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   util.py\n#        \\author   chenghuige  \n#          \\date   2019-07-23 17:40:39.405865\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\ndef get_num_gpus():\n  if 'CUDA_VISIBLE_DEVICES' in os.environ:\n    print(\"os.environ['CUDA_VISIBLE_DEVICES']\", os.environ['CUDA_VISIBLE_DEVICES'])\n    if os.environ['CUDA_VISIBLE_DEVICES'] == '-1':\n      return 0\n    num_gpus = len(os.environ['CUDA_VISIBLE_DEVICES'].split(','))\n    print('CUDA_VISIBLE_DEVICES is %s'%(os.environ['CUDA_VISIBLE_DEVICES']))\n    return num_gpus\n  else:\n    return None"
  },
  {
    "path": "projects/kaggle/blindness/keras2/READEME.md",
    "content": "first start with kaggle kernel http://192.168.31.36:8888/notebooks/wenzheng/projects/kaggle/blindness/other/APTOS%202019_%20Keras%20Baseline.ipynb"
  },
  {
    "path": "projects/kaggle/blindness/keras2/aug.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   aug.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:53:11.255995\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom imgaug import augmenters as iaa\nimport imgaug as ia\n\nsometimes = lambda aug: iaa.Sometimes(0.5, aug)\nseq = iaa.Sequential(\n    [\n        # apply the following augmenters to most images\n        iaa.Fliplr(0.5), # horizontally flip 50% of all images\n        iaa.Flipud(0.2), # vertically flip 20% of all images\n        sometimes(iaa.Affine(\n            scale={\"x\": (0.9, 1.1), \"y\": (0.9, 1.1)}, # scale images to 80-120% of their size, individually per axis\n            translate_percent={\"x\": (-0.1, 0.1), \"y\": (-0.1, 0.1)}, # translate by -20 to +20 percent (per axis)\n            rotate=(-10, 10), # rotate by -45 to +45 degrees\n            shear=(-5, 5), # shear by -16 to +16 degrees\n            order=[0, 1], # use nearest neighbour or bilinear interpolation (fast)\n            cval=(0, 255), # if mode is constant, use a cval between 0 and 255\n            mode=ia.ALL # use any of scikit-image's warping modes (see 2nd image from the top for examples)\n        )),\n        # execute 0 to 5 of the following (less important) augmenters per image\n        # don't execute all of them, as that would often be way too strong\n        iaa.SomeOf((0, 5),\n            [\n                sometimes(iaa.Superpixels(p_replace=(0, 1.0), n_segments=(20, 200))), # convert images into their superpixel representation\n                iaa.OneOf([\n                    iaa.GaussianBlur((0, 1.0)), # blur images with a sigma between 0 and 3.0\n                    iaa.AverageBlur(k=(3, 5)), # blur image using local means with kernel sizes between 2 and 7\n                    iaa.MedianBlur(k=(3, 5)), # blur image using local medians with kernel sizes between 2 and 7\n                ]),\n                iaa.Sharpen(alpha=(0, 1.0), lightness=(0.9, 1.1)), # sharpen images\n                iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)), # emboss images\n                # search either for all edges or for directed edges,\n                # blend the result with the original image using a blobby mask\n                iaa.SimplexNoiseAlpha(iaa.OneOf([\n                    iaa.EdgeDetect(alpha=(0.5, 1.0)),\n                    iaa.DirectedEdgeDetect(alpha=(0.5, 1.0), direction=(0.0, 1.0)),\n                ])),\n                iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.01*255), per_channel=0.5), # add gaussian noise to images\n                iaa.OneOf([\n                    iaa.Dropout((0.01, 0.05), per_channel=0.5), # randomly remove up to 10% of the pixels\n                    iaa.CoarseDropout((0.01, 0.03), size_percent=(0.01, 0.02), per_channel=0.2),\n                ]),\n                iaa.Invert(0.01, per_channel=True), # invert color channels\n                iaa.Add((-2, 2), per_channel=0.5), # change brightness of images (by -10 to 10 of original value)\n                iaa.AddToHueAndSaturation((-1, 1)), # change hue and saturation\n                # either change the brightness of the whole image (sometimes\n                # per channel) or change the brightness of subareas\n                iaa.OneOf([\n                    iaa.Multiply((0.9, 1.1), per_channel=0.5),\n                    iaa.FrequencyNoiseAlpha(\n                        exponent=(-1, 0),\n                        first=iaa.Multiply((0.9, 1.1), per_channel=True),\n                        second=iaa.ContrastNormalization((0.9, 1.1))\n                    )\n                ]),\n                sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)), # move pixels locally around (with random strengths)\n                sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05))), # sometimes move parts of the image around\n                sometimes(iaa.PerspectiveTransform(scale=(0.01, 0.1)))\n            ],\n            random_order=True\n        )\n    ],\n    random_order=True)  \n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 22:03:51.198317\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nWORKERS = 2\nCHANNEL = 3\n\nSIZE = 300\nNUM_CLASSES = 5\n\nepochs = 30; \n#batch_size = 32\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2/dataset.py",
    "content": "\n\n\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n  <link rel=\"dns-prefetch\" href=\"https://github.githubassets.com\">\n  <link rel=\"dns-prefetch\" href=\"https://avatars0.githubusercontent.com\">\n  <link rel=\"dns-prefetch\" href=\"https://avatars1.githubusercontent.com\">\n  <link rel=\"dns-prefetch\" href=\"https://avatars2.githubusercontent.com\">\n  <link rel=\"dns-prefetch\" href=\"https://avatars3.githubusercontent.com\">\n  <link rel=\"dns-prefetch\" href=\"https://github-cloud.s3.amazonaws.com\">\n  <link rel=\"dns-prefetch\" href=\"https://user-images.githubusercontent.com/\">\n\n\n\n  <link crossorigin=\"anonymous\" media=\"all\" integrity=\"sha512-67V2J9Se2CifJlftk9/cExHGvxd7N9b9EdGnQEpszu99Ogeecilu9jIDxoCkx3zNLfB9ArraXW0J03qyVmN0Uw==\" rel=\"stylesheet\" href=\"https://github.githubassets.com/assets/frameworks-e7318add1f7e055d040edb0f75aaa0ba.css\" />\n  \n    <link crossorigin=\"anonymous\" media=\"all\" integrity=\"sha512-bgBR1xQkj/CIp26ItOrlen3F/3JrJK1d6Qnc/eRWK1UiU8RuePzp635N4Yqkw166lxXr/iDpSxkBibhPepwWVQ==\" rel=\"stylesheet\" href=\"https://github.githubassets.com/assets/github-393058aa01427825741da79f3d6cc330.css\" />\n    \n    \n    \n    \n\n  <meta name=\"viewport\" content=\"width=device-width\">\n  \n  <title>wenzheng/dataset.py at master · chenghuige/wenzheng</title>\n    <meta name=\"description\" content=\"ai challenger 2018细粒度情感分类第一名解决方案,统一使用tensorflow和pytorch的一个框架 - chenghuige/wenzheng\">\n    <link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"/opensearch.xml\" title=\"GitHub\">\n  <link rel=\"fluid-icon\" href=\"https://github.com/fluidicon.png\" title=\"GitHub\">\n  <meta property=\"fb:app_id\" content=\"1401488693436528\">\n\n    <meta name=\"twitter:image:src\" content=\"https://avatars0.githubusercontent.com/u/6323467?s=400&amp;v=4\" /><meta name=\"twitter:site\" content=\"@github\" /><meta name=\"twitter:card\" content=\"summary\" /><meta name=\"twitter:title\" content=\"chenghuige/wenzheng\" /><meta name=\"twitter:description\" content=\"ai challenger 2018细粒度情感分类第一名解决方案,统一使用tensorflow和pytorch的一个框架 - chenghuige/wenzheng\" />\n    <meta property=\"og:image\" content=\"https://avatars0.githubusercontent.com/u/6323467?s=400&amp;v=4\" /><meta property=\"og:site_name\" content=\"GitHub\" /><meta property=\"og:type\" content=\"object\" /><meta property=\"og:title\" content=\"chenghuige/wenzheng\" /><meta property=\"og:url\" content=\"https://github.com/chenghuige/wenzheng\" /><meta property=\"og:description\" content=\"ai challenger 2018细粒度情感分类第一名解决方案,统一使用tensorflow和pytorch的一个框架 - chenghuige/wenzheng\" />\n\n  <link rel=\"assets\" href=\"https://github.githubassets.com/\">\n  <link rel=\"web-socket\" href=\"wss://live.github.com/_sockets/VjI6NDI3ODM4Mjc4OjAyNjQzODI4NzYzZDhjMTY1NDU5MmI5NmI1OTY0NWRhODhlZmZhNThmZmRiMjE1ZjNmNDQ5YTVmYWFkODg2MDY=--63c4a1f9ca9c3704c9ded1487826c13d1080d085\">\n  <meta name=\"pjax-timeout\" content=\"1000\">\n  <link rel=\"sudo-modal\" href=\"/sessions/sudo_modal\">\n  <meta name=\"request-id\" content=\"957C:7B4B:3124BD:449571:5D36F262\" data-pjax-transient>\n\n\n  \n\n  <meta name=\"selected-link\" value=\"repo_source\" data-pjax-transient>\n\n      <meta name=\"google-site-verification\" content=\"KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU\">\n    <meta name=\"google-site-verification\" content=\"ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA\">\n    <meta name=\"google-site-verification\" content=\"GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc\">\n\n  <meta name=\"octolytics-host\" content=\"collector.githubapp.com\" /><meta name=\"octolytics-app-id\" content=\"github\" /><meta name=\"octolytics-event-url\" content=\"https://collector.githubapp.com/github-external/browser_event\" /><meta name=\"octolytics-dimension-request_id\" content=\"957C:7B4B:3124BD:449571:5D36F262\" /><meta name=\"octolytics-dimension-region_edge\" content=\"ap-southeast-1\" /><meta name=\"octolytics-dimension-region_render\" content=\"iad\" /><meta name=\"octolytics-actor-id\" content=\"6323467\" /><meta name=\"octolytics-actor-login\" content=\"chenghuige\" /><meta name=\"octolytics-actor-hash\" content=\"29ec1999375ec01ab4a3bc03230bba5ae3fb612fc59ac0976847b3e328cc3931\" />\n<meta name=\"analytics-location\" content=\"/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show\" data-pjax-transient=\"true\" />\n\n\n\n    <meta name=\"google-analytics\" content=\"UA-3769691-2\">\n\n  <meta class=\"js-ga-set\" name=\"userId\" content=\"19c08c15902bc93c5e30d645b0bc9dfa\">\n\n<meta class=\"js-ga-set\" name=\"dimension1\" content=\"Logged In\">\n\n\n\n  \n\n      <meta name=\"hostname\" content=\"github.com\">\n    <meta name=\"user-login\" content=\"chenghuige\">\n\n      <meta name=\"expected-hostname\" content=\"github.com\">\n    <meta name=\"js-proxy-site-detection-payload\" content=\"OWUzNzEzNTNhNjUyZWMyNzRkZWIyOTg1M2ZlNTk0YTY3YzMxMzM1ZDYxZDcxMGFkMzIwZTMzNmU0NWNiODQyNHx7InJlbW90ZV9hZGRyZXNzIjoiMjE4Ljk4LjMzLjE2NSIsInJlcXVlc3RfaWQiOiI5NTdDOjdCNEI6MzEyNEJEOjQ0OTU3MTo1RDM2RjI2MiIsInRpbWVzdGFtcCI6MTU2Mzg4MjA4NiwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==\">\n\n    <meta name=\"enabled-features\" content=\"MARKETPLACE_FEATURED_BLOG_POSTS,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,MARKETPLACE_PULL_PANDA_HOMEPAGE,MARKETPLACE_PENDING_INSTALLATIONS,NOTIFY_ON_BLOCK,RELATED_ISSUES\">\n\n  <meta name=\"html-safe-nonce\" content=\"88f31d70389fdef9c6026873aa5ada6dc445b7e9\">\n\n  <meta http-equiv=\"x-pjax-version\" content=\"ae4327458a1a880044142753774b7874\">\n  \n\n      <link href=\"https://github.com/chenghuige/wenzheng/commits/master.atom\" rel=\"alternate\" title=\"Recent Commits to wenzheng:master\" type=\"application/atom+xml\">\n\n  <meta name=\"go-import\" content=\"github.com/chenghuige/wenzheng git https://github.com/chenghuige/wenzheng.git\">\n\n  <meta name=\"octolytics-dimension-user_id\" content=\"6323467\" /><meta name=\"octolytics-dimension-user_login\" content=\"chenghuige\" /><meta name=\"octolytics-dimension-repository_id\" content=\"147308488\" /><meta name=\"octolytics-dimension-repository_nwo\" content=\"chenghuige/wenzheng\" /><meta name=\"octolytics-dimension-repository_public\" content=\"true\" /><meta name=\"octolytics-dimension-repository_is_fork\" content=\"false\" /><meta name=\"octolytics-dimension-repository_network_root_id\" content=\"147308488\" /><meta name=\"octolytics-dimension-repository_network_root_nwo\" content=\"chenghuige/wenzheng\" /><meta name=\"octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown\" content=\"false\" />\n\n\n    <link rel=\"canonical\" href=\"https://github.com/chenghuige/wenzheng/blob/master/projects/kaggle/blindness/keras2/dataset.py\" data-pjax-transient>\n\n\n  <meta name=\"browser-stats-url\" content=\"https://api.github.com/_private/browser/stats\">\n\n  <meta name=\"browser-errors-url\" content=\"https://api.github.com/_private/browser/errors\">\n\n  <link rel=\"mask-icon\" href=\"https://github.githubassets.com/pinned-octocat.svg\" color=\"#000000\">\n  <link rel=\"icon\" type=\"image/x-icon\" class=\"js-site-favicon\" href=\"https://github.githubassets.com/favicon.ico\">\n\n<meta name=\"theme-color\" content=\"#1e2327\">\n\n\n  <meta name=\"u2f-enabled\" content=\"true\">\n\n\n\n  <link rel=\"manifest\" href=\"/manifest.json\" crossOrigin=\"use-credentials\">\n\n  </head>\n\n  <body class=\"logged-in env-production page-responsive page-blob\">\n    \n\n  <div class=\"position-relative js-header-wrapper \">\n    <a href=\"#start-of-content\" tabindex=\"1\" class=\"p-3 bg-blue text-white show-on-focus js-skip-to-content\">Skip to content</a>\n    <div id=\"js-pjax-loader-bar\" class=\"pjax-loader-bar\"><div class=\"progress\"></div></div>\n\n    \n    \n    \n\n\n          <header class=\"Header js-details-container Details flex-wrap flex-lg-nowrap p-responsive\" role=\"banner\">\n\n    <div class=\"Header-item d-none d-lg-flex\">\n      <a class=\"Header-link\" href=\"https://github.com/\" data-hotkey=\"g d\" aria-label=\"Homepage\" data-ga-click=\"Header, go to dashboard, icon:logo\">\n  <svg class=\"octicon octicon-mark-github v-align-middle\" height=\"32\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"32\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z\"/></svg>\n</a>\n\n    </div>\n\n    <div class=\"Header-item d-lg-none\">\n      <button class=\"Header-link btn-link js-details-target\" type=\"button\" aria-label=\"Toggle navigation\" aria-expanded=\"false\">\n        <svg height=\"24\" class=\"octicon octicon-three-bars\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"18\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z\"/></svg>\n      </button>\n    </div>\n\n    <div class=\"Header-item Header-item--full flex-column flex-lg-row width-full flex-order-2 flex-lg-order-none mr-0 mr-lg-3 mt-3 mt-lg-0 Details-content--hidden\">\n        <div class=\"header-search flex-self-stretch flex-lg-self-auto mr-0 mr-lg-3 mb-3 mb-lg-0 scoped-search site-scoped-search js-site-search position-relative js-jump-to\"\n  role=\"combobox\"\n  aria-owns=\"jump-to-results\"\n  aria-label=\"Search or jump to\"\n  aria-haspopup=\"listbox\"\n  aria-expanded=\"false\"\n>\n  <div class=\"position-relative\">\n    <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"js-site-search-form\" role=\"search\" aria-label=\"Site\" data-scope-type=\"Repository\" data-scope-id=\"147308488\" data-scoped-search-url=\"/chenghuige/wenzheng/search\" data-unscoped-search-url=\"/search\" action=\"/chenghuige/wenzheng/search\" accept-charset=\"UTF-8\" method=\"get\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" />\n      <label class=\"form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container\">\n        <input type=\"text\"\n          class=\"form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable\"\n          data-hotkey=\"s,/\"\n          name=\"q\"\n          value=\"\"\n          placeholder=\"Search or jump to…\"\n          data-unscoped-placeholder=\"Search or jump to…\"\n          data-scoped-placeholder=\"Search or jump to…\"\n          autocapitalize=\"off\"\n          aria-autocomplete=\"list\"\n          aria-controls=\"jump-to-results\"\n          aria-label=\"Search or jump to…\"\n          data-jump-to-suggestions-path=\"/_graphql/GetSuggestedNavigationDestinations#csrf-token=pd9zFtrdopoihrL1s25i1e2Vp8aFA7parmA+g7y5dSD/3fMTVQC14u9BwnpeJRsf0qZ7QbbK1upgaP8oL64dIA==\"\n          spellcheck=\"false\"\n          autocomplete=\"off\"\n          >\n          <input type=\"hidden\" class=\"js-site-search-type-field\" name=\"type\" >\n            <img src=\"https://github.githubassets.com/images/search-key-slash.svg\" alt=\"\" class=\"mr-2 header-search-key-slash\">\n\n            <div class=\"Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container\">\n              \n<ul class=\"d-none js-jump-to-suggestions-template-container\">\n  \n\n<li class=\"d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion\" role=\"option\">\n  <a tabindex=\"-1\" class=\"no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2\" href=\"\">\n    <div class=\"jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none\">\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none\" title=\"Repository\" aria-label=\"Repository\" viewBox=\"0 0 12 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/></svg>\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none\" title=\"Project\" aria-label=\"Project\" viewBox=\"0 0 15 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"/></svg>\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none\" title=\"Search\" aria-label=\"Search\" viewBox=\"0 0 16 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z\"/></svg>\n    </div>\n\n    <img class=\"avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none\" alt=\"\" aria-label=\"Team\" src=\"\" width=\"28\" height=\"28\">\n\n    <div class=\"jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target\">\n    </div>\n\n    <div class=\"border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search\">\n      <span class=\"js-jump-to-badge-search-text-default d-none\" aria-label=\"in this repository\">\n        In this repository\n      </span>\n      <span class=\"js-jump-to-badge-search-text-global d-none\" aria-label=\"in all of GitHub\">\n        All GitHub\n      </span>\n      <span aria-hidden=\"true\" class=\"d-inline-block ml-1 v-align-middle\">↵</span>\n    </div>\n\n    <div aria-hidden=\"true\" class=\"border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump\">\n      Jump to\n      <span class=\"d-inline-block ml-1 v-align-middle\">↵</span>\n    </div>\n  </a>\n</li>\n\n</ul>\n\n<ul class=\"d-none js-jump-to-no-results-template-container\">\n  <li class=\"d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2\">\n    <span class=\"text-gray\">No suggested jump to results</span>\n  </li>\n</ul>\n\n<ul id=\"jump-to-results\" role=\"listbox\" class=\"p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container\">\n  \n\n<li class=\"d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none\" role=\"option\">\n  <a tabindex=\"-1\" class=\"no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2\" href=\"\">\n    <div class=\"jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none\">\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none\" title=\"Repository\" aria-label=\"Repository\" viewBox=\"0 0 12 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/></svg>\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none\" title=\"Project\" aria-label=\"Project\" viewBox=\"0 0 15 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"/></svg>\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none\" title=\"Search\" aria-label=\"Search\" viewBox=\"0 0 16 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z\"/></svg>\n    </div>\n\n    <img class=\"avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none\" alt=\"\" aria-label=\"Team\" src=\"\" width=\"28\" height=\"28\">\n\n    <div class=\"jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target\">\n    </div>\n\n    <div class=\"border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search\">\n      <span class=\"js-jump-to-badge-search-text-default d-none\" aria-label=\"in this repository\">\n        In this repository\n      </span>\n      <span class=\"js-jump-to-badge-search-text-global d-none\" aria-label=\"in all of GitHub\">\n        All GitHub\n      </span>\n      <span aria-hidden=\"true\" class=\"d-inline-block ml-1 v-align-middle\">↵</span>\n    </div>\n\n    <div aria-hidden=\"true\" class=\"border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump\">\n      Jump to\n      <span class=\"d-inline-block ml-1 v-align-middle\">↵</span>\n    </div>\n  </a>\n</li>\n\n  \n\n<li class=\"d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none\" role=\"option\">\n  <a tabindex=\"-1\" class=\"no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2\" href=\"\">\n    <div class=\"jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none\">\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none\" title=\"Repository\" aria-label=\"Repository\" viewBox=\"0 0 12 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/></svg>\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none\" title=\"Project\" aria-label=\"Project\" viewBox=\"0 0 15 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"/></svg>\n      <svg height=\"16\" width=\"16\" class=\"octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none\" title=\"Search\" aria-label=\"Search\" viewBox=\"0 0 16 16\" version=\"1.1\" role=\"img\"><path fill-rule=\"evenodd\" d=\"M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z\"/></svg>\n    </div>\n\n    <img class=\"avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none\" alt=\"\" aria-label=\"Team\" src=\"\" width=\"28\" height=\"28\">\n\n    <div class=\"jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target\">\n    </div>\n\n    <div class=\"border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search\">\n      <span class=\"js-jump-to-badge-search-text-default d-none\" aria-label=\"in this repository\">\n        In this repository\n      </span>\n      <span class=\"js-jump-to-badge-search-text-global d-none\" aria-label=\"in all of GitHub\">\n        All GitHub\n      </span>\n      <span aria-hidden=\"true\" class=\"d-inline-block ml-1 v-align-middle\">↵</span>\n    </div>\n\n    <div aria-hidden=\"true\" class=\"border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump\">\n      Jump to\n      <span class=\"d-inline-block ml-1 v-align-middle\">↵</span>\n    </div>\n  </a>\n</li>\n\n\n    <li class=\"d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion\">\n      <img src=\"https://github.githubassets.com/images/spinners/octocat-spinner-128.gif\" alt=\"Octocat Spinner Icon\" class=\"m-2\" width=\"28\">\n    </li>\n</ul>\n\n            </div>\n      </label>\n</form>  </div>\n</div>\n\n\n      <nav class=\"d-flex flex-column flex-lg-row flex-self-stretch flex-lg-self-auto\" aria-label=\"Global\">\n    <a class=\"Header-link d-block d-lg-none py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15\" data-ga-click=\"Header, click, Nav menu - item:dashboard:user\" aria-label=\"Dashboard\" href=\"/dashboard\">\n      Dashboard\n</a>\n  <a class=\"js-selected-navigation-item Header-link  mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15\" data-hotkey=\"g p\" data-ga-click=\"Header, click, Nav menu - item:pulls context:user\" aria-label=\"Pull requests you created\" data-selected-links=\"/pulls /pulls/assigned /pulls/mentioned /pulls\" href=\"/pulls\">\n    Pull requests\n</a>\n  <a class=\"js-selected-navigation-item Header-link  mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15\" data-hotkey=\"g i\" data-ga-click=\"Header, click, Nav menu - item:issues context:user\" aria-label=\"Issues you created\" data-selected-links=\"/issues /issues/assigned /issues/mentioned /issues\" href=\"/issues\">\n    Issues\n</a>\n    <div class=\"mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15\">\n      <a class=\"js-selected-navigation-item Header-link\" data-ga-click=\"Header, click, Nav menu - item:marketplace context:user\" data-octo-click=\"marketplace_click\" data-octo-dimensions=\"location:nav_bar\" data-selected-links=\" /marketplace\" href=\"/marketplace\">\n        Marketplace\n</a>      \n    </div>\n\n  <a class=\"js-selected-navigation-item Header-link  mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15\" data-ga-click=\"Header, click, Nav menu - item:explore\" data-selected-links=\"/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore\" href=\"/explore\">\n    Explore\n</a>\n\n    <a class=\"Header-link d-block d-lg-none mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15\" aria-label=\"View profile and more\" aria-expanded=\"false\" aria-haspopup=\"false\" href=\"https://github.com/chenghuige\">\n      <img class=\"avatar\" src=\"https://avatars3.githubusercontent.com/u/6323467?s=40&amp;v=4\" width=\"20\" height=\"20\" alt=\"@chenghuige\" />\n      chenghuige\n</a>\n    <!-- '\"` --><!-- </textarea></xmp> --></option></form><form action=\"/logout\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"GfJdF8naSZX21j9jKHkV/tl2j6QrF4UwjsuFbdLk1U5W2y0rPiW/wNrvnoHk/zLYxuik+sBh8twbaH9EBHLwFg==\" />\n      <button type=\"submit\" class=\"Header-link mr-0 mr-lg-3 py-2 py-lg-0 border-top border-lg-top-0 border-white-fade-15 d-lg-none btn-link d-block width-full text-left\" data-ga-click=\"Header, sign out, icon:logout\" style=\"padding-left: 2px;\">\n        <svg class=\"octicon octicon-sign-out v-align-middle\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 9V7H8V5h4V3l4 3-4 3zm-2 3H6V3L2 1h8v3h1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v11.38c0 .39.22.73.55.91L6 16.01V13h4c.55 0 1-.45 1-1V8h-1v4z\"/></svg>\n        Sign out\n      </button>\n</form></nav>\n\n    </div>\n\n    <div class=\"Header-item Header-item--full flex-justify-center d-lg-none position-relative\">\n      <div class=\"css-truncate css-truncate-target width-fit position-absolute left-0 right-0 text-center\">\n              <svg class=\"octicon octicon-repo\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/></svg>\n    <a class=\"Header-link\" href=\"/chenghuige\">chenghuige</a>\n    /\n    <a class=\"Header-link\" href=\"/chenghuige/wenzheng\">wenzheng</a>\n\n</div>\n    </div>\n\n    <div class=\"Header-item position-relative d-none d-lg-flex\">\n      \n\n    </div>\n\n    <div class=\"Header-item mr-0 mr-lg-3 flex-order-1 flex-lg-order-none\">\n      \n\n    <a aria-label=\"You have unread notifications\" class=\"Header-link notification-indicator position-relative tooltipped tooltipped-s js-socket-channel js-notification-indicator\" data-hotkey=\"g n\" data-ga-click=\"Header, go to notifications, icon:unread\" data-channel=\"notification-changed:6323467\" href=\"/notifications\">\n        <span class=\"mail-status unread\"></span>\n        <svg class=\"octicon octicon-bell\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z\"/></svg>\n</a>\n    </div>\n\n\n    <div class=\"Header-item position-relative d-none d-lg-flex\">\n      <details class=\"details-overlay details-reset\">\n  <summary class=\"Header-link\"\n      aria-label=\"Create new…\"\n      data-ga-click=\"Header, create new, icon:add\">\n    <svg class=\"octicon octicon-plus\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 9H7v5H5V9H0V7h5V2h2v5h5v2z\"/></svg> <span class=\"dropdown-caret\"></span>\n  </summary>\n  <details-menu class=\"dropdown-menu dropdown-menu-sw\">\n    \n<a role=\"menuitem\" class=\"dropdown-item\" href=\"/new\" data-ga-click=\"Header, create new repository\">\n  New repository\n</a>\n\n  <a role=\"menuitem\" class=\"dropdown-item\" href=\"/new/import\" data-ga-click=\"Header, import a repository\">\n    Import repository\n  </a>\n\n<a role=\"menuitem\" class=\"dropdown-item\" href=\"https://gist.github.com/\" data-ga-click=\"Header, create new gist\">\n  New gist\n</a>\n\n  <a role=\"menuitem\" class=\"dropdown-item\" href=\"/organizations/new\" data-ga-click=\"Header, create new organization\">\n    New organization\n  </a>\n\n\n  <div role=\"none\" class=\"dropdown-divider\"></div>\n  <div class=\"dropdown-header\">\n    <span title=\"chenghuige/wenzheng\">This repository</span>\n  </div>\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"/chenghuige/wenzheng/issues/new\" data-ga-click=\"Header, create new issue\" data-skip-pjax>\n      New issue\n    </a>\n\n\n  </details-menu>\n</details>\n\n    </div>\n\n    <div class=\"Header-item position-relative mr-0 d-none d-lg-flex\">\n      \n<details class=\"details-overlay details-reset\">\n  <summary class=\"Header-link\"\n    aria-label=\"View profile and more\"\n    data-ga-click=\"Header, show menu, icon:avatar\">\n    <img alt=\"@chenghuige\" class=\"avatar\" src=\"https://avatars3.githubusercontent.com/u/6323467?s=40&amp;v=4\" height=\"20\" width=\"20\">\n    <span class=\"dropdown-caret\"></span>\n  </summary>\n  <details-menu class=\"dropdown-menu dropdown-menu-sw mt-2\" style=\"width: 180px\">\n    <div class=\"header-nav-current-user css-truncate\"><a role=\"menuitem\" class=\"no-underline user-profile-link px-3 pt-2 pb-2 mb-n2 mt-n1 d-block\" href=\"/chenghuige\" data-ga-click=\"Header, go to profile, text:Signed in as\">Signed in as <strong class=\"css-truncate-target\">chenghuige</strong></a></div>\n    <div role=\"none\" class=\"dropdown-divider\"></div>\n\n      <div class=\"pl-3 pr-3 f6 user-status-container js-user-status-context pb-1\" data-url=\"/users/status?compact=1&amp;link_mentions=0&amp;truncate=1\">\n        \n<div class=\"js-user-status-container\n    user-status-compact rounded-1 px-2 py-1 mt-2\n    border\n  \" data-team-hovercards-enabled>\n  <details class=\"js-user-status-details details-reset details-overlay details-overlay-dark\">\n    <summary class=\"btn-link btn-block link-gray no-underline js-toggle-user-status-edit toggle-user-status-edit \" aria-haspopup=\"dialog\" role=\"menuitem\" data-hydro-click=\"{&quot;event_type&quot;:&quot;user_profile.click&quot;,&quot;payload&quot;:{&quot;profile_user_id&quot;:6323467,&quot;target&quot;:&quot;EDIT_USER_STATUS&quot;,&quot;user_id&quot;:6323467,&quot;client_id&quot;:&quot;1825991806.1528366339&quot;,&quot;originating_request_id&quot;:&quot;957C:7B4B:3124BD:449571:5D36F262&quot;,&quot;originating_url&quot;:&quot;https://github.com/chenghuige/wenzheng/blob/master/projects/kaggle/blindness/keras2/dataset.py&quot;,&quot;referrer&quot;:&quot;https://github.com/chenghuige/wenzheng/tree/master/projects/kaggle/blindness/keras2&quot;}}\" data-hydro-click-hmac=\"99793476f0cfc6e7f5cc9923a6984667e868ce89544bfe7e052fe762423dd803\">\n      <div class=\"d-flex\">\n        <div class=\"f6 lh-condensed user-status-header\n          d-inline-block v-align-middle\n            user-status-emoji-only-header circle\n            pr-2\n\"\n            style=\"max-width: 29px\"\n          >\n          <div class=\"user-status-emoji-container flex-shrink-0 mr-1 mt-1 lh-condensed-ultra v-align-bottom\" style=\"\">\n            <svg class=\"octicon octicon-smiley\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z\"/></svg>\n          </div>\n        </div>\n        <div class=\"\n          d-inline-block v-align-middle\n          \n          \n           css-truncate css-truncate-target \n           user-status-message-wrapper f6\"\n           style=\"line-height: 20px;\" >\n          <div class=\"d-inline-block text-gray-dark v-align-text-top text-left\">\n              <span class=\"text-gray ml-2\">Set status</span>\n          </div>\n        </div>\n      </div>\n</summary>    <details-dialog class=\"details-dialog rounded-1 anim-fade-in fast Box Box--overlay\" role=\"dialog\" tabindex=\"-1\">\n      <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"position-relative flex-auto js-user-status-form\" action=\"/users/status?compact=1&amp;link_mentions=0&amp;truncate=1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"_method\" value=\"put\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"lCtTokSr9z8SmZUq2ENfDFMs5WqRWgnxhq4UFBfRMr6RDZ3XRUJCIPieHmMXNlLz5jknNHtneaIdEW2vTpr/fg==\" />\n        <div class=\"Box-header bg-gray border-bottom p-3\">\n          <button class=\"Box-btn-octicon js-toggle-user-status-edit btn-octicon float-right\" type=\"reset\" aria-label=\"Close dialog\" data-close-dialog>\n            <svg class=\"octicon octicon-x\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z\"/></svg>\n          </button>\n          <h3 class=\"Box-title f5 text-bold text-gray-dark\">Edit status</h3>\n        </div>\n        <input type=\"hidden\" name=\"emoji\" class=\"js-user-status-emoji-field\" value=\"\">\n        <input type=\"hidden\" name=\"organization_id\" class=\"js-user-status-org-id-field\" value=\"\">\n        <div class=\"px-3 py-2 text-gray-dark\">\n          <div class=\"js-characters-remaining-container position-relative mt-2\">\n            <div class=\"input-group d-table form-group my-0 js-user-status-form-group\">\n              <span class=\"input-group-button d-table-cell v-align-middle\" style=\"width: 1%\">\n                <button type=\"button\" aria-label=\"Choose an emoji\" class=\"btn-outline btn js-toggle-user-status-emoji-picker btn-open-emoji-picker p-0\">\n                  <span class=\"js-user-status-original-emoji\" hidden></span>\n                  <span class=\"js-user-status-custom-emoji\"></span>\n                  <span class=\"js-user-status-no-emoji-icon\" >\n                    <svg class=\"octicon octicon-smiley\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z\"/></svg>\n                  </span>\n                </button>\n              </span>\n              <text-expander keys=\": @\" data-mention-url=\"/autocomplete/user-suggestions\" data-emoji-url=\"/autocomplete/emoji\">\n                <input\n                  type=\"text\"\n                  autocomplete=\"off\"\n                  data-no-org-url=\"/autocomplete/user-suggestions\"\n                  data-org-url=\"/suggestions?mention_suggester=1\"\n                  data-maxlength=\"80\"\n                  class=\"d-table-cell width-full form-control js-user-status-message-field js-characters-remaining-field\"\n                  placeholder=\"What's happening?\"\n                  name=\"message\"\n                  value=\"\"\n                  aria-label=\"What is your current status?\">\n              </text-expander>\n              <div class=\"error\">Could not update your status, please try again.</div>\n            </div>\n            <div style=\"margin-left: 53px\" class=\"my-1 text-small label-characters-remaining js-characters-remaining\" data-suffix=\"remaining\" hidden>\n              80 remaining\n            </div>\n          </div>\n          <include-fragment class=\"js-user-status-emoji-picker\" data-url=\"/users/status/emoji\"></include-fragment>\n          <div class=\"overflow-auto ml-n3 mr-n3 px-3 border-bottom\" style=\"max-height: 33vh\">\n            <div class=\"user-status-suggestions js-user-status-suggestions collapsed overflow-hidden\">\n              <h4 class=\"f6 text-normal my-3\">Suggestions:</h4>\n              <div class=\"mx-3 mt-2 clearfix\">\n                  <div class=\"float-left col-6\">\n                      <button type=\"button\" value=\":palm_tree:\" class=\"d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1\">\n                        <div class=\"emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji\">\n                          <g-emoji alias=\"palm_tree\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f334.png\">🌴</g-emoji>\n                        </div>\n                        <div class=\"d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left\" style=\"border-left: 1px solid transparent\">\n                          On vacation\n                        </div>\n                      </button>\n                      <button type=\"button\" value=\":face_with_thermometer:\" class=\"d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1\">\n                        <div class=\"emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji\">\n                          <g-emoji alias=\"face_with_thermometer\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f912.png\">🤒</g-emoji>\n                        </div>\n                        <div class=\"d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left\" style=\"border-left: 1px solid transparent\">\n                          Out sick\n                        </div>\n                      </button>\n                  </div>\n                  <div class=\"float-left col-6\">\n                      <button type=\"button\" value=\":house:\" class=\"d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1\">\n                        <div class=\"emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji\">\n                          <g-emoji alias=\"house\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png\">🏠</g-emoji>\n                        </div>\n                        <div class=\"d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left\" style=\"border-left: 1px solid transparent\">\n                          Working from home\n                        </div>\n                      </button>\n                      <button type=\"button\" value=\":dart:\" class=\"d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1\">\n                        <div class=\"emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji\">\n                          <g-emoji alias=\"dart\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png\">🎯</g-emoji>\n                        </div>\n                        <div class=\"d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left\" style=\"border-left: 1px solid transparent\">\n                          Focusing\n                        </div>\n                      </button>\n                  </div>\n              </div>\n            </div>\n            <div class=\"user-status-limited-availability-container\">\n              <div class=\"form-checkbox my-0\">\n                <input type=\"checkbox\" name=\"limited_availability\" value=\"1\" class=\"js-user-status-limited-availability-checkbox\" data-default-message=\"I may be slow to respond.\" aria-describedby=\"limited-availability-help-text-truncate-true-compact-true\" id=\"limited-availability-truncate-true-compact-true\">\n                <label class=\"d-block f5 text-gray-dark mb-1\" for=\"limited-availability-truncate-true-compact-true\">\n                  Busy\n                </label>\n                <p class=\"note\" id=\"limited-availability-help-text-truncate-true-compact-true\">\n                  When others mention you, assign you, or request your review,\n                  GitHub will let them know that you have limited availability.\n                </p>\n              </div>\n            </div>\n          </div>\n            \n\n<div class=\"d-inline-block f5 mr-2 pt-3 pb-2\" >\n  <div class=\"d-inline-block mr-1\">\n    Clear status\n  </div>\n\n  <details class=\"js-user-status-expire-drop-down f6 dropdown details-reset details-overlay d-inline-block mr-2\">\n    <summary class=\"f5 btn-link link-gray-dark border px-2 py-1 rounded-1\" aria-haspopup=\"true\">\n      <div class=\"js-user-status-expiration-interval-selected d-inline-block v-align-baseline\">\n        Never\n      </div>\n      <div class=\"dropdown-caret\"></div>\n    </summary>\n\n    <ul class=\"dropdown-menu dropdown-menu-se pl-0 overflow-auto\" style=\"width: 220px; max-height: 15.5em\">\n      <li>\n        <button type=\"button\" class=\"btn-link dropdown-item js-user-status-expire-button ws-normal\" title=\"Never\">\n          <span class=\"d-inline-block text-bold mb-1\">Never</span>\n          <div class=\"f6 lh-condensed\">Keep this status until you clear your status or edit your status.</div>\n        </button>\n      </li>\n      <li class=\"dropdown-divider\" role=\"none\"></li>\n        <li>\n          <button type=\"button\" class=\"btn-link dropdown-item ws-normal js-user-status-expire-button\" title=\"in 30 minutes\" value=\"2019-07-23T20:11:27+08:00\">\n            in 30 minutes\n          </button>\n        </li>\n        <li>\n          <button type=\"button\" class=\"btn-link dropdown-item ws-normal js-user-status-expire-button\" title=\"in 1 hour\" value=\"2019-07-23T20:41:27+08:00\">\n            in 1 hour\n          </button>\n        </li>\n        <li>\n          <button type=\"button\" class=\"btn-link dropdown-item ws-normal js-user-status-expire-button\" title=\"in 4 hours\" value=\"2019-07-23T23:41:27+08:00\">\n            in 4 hours\n          </button>\n        </li>\n        <li>\n          <button type=\"button\" class=\"btn-link dropdown-item ws-normal js-user-status-expire-button\" title=\"today\" value=\"2019-07-23T23:59:59+08:00\">\n            today\n          </button>\n        </li>\n        <li>\n          <button type=\"button\" class=\"btn-link dropdown-item ws-normal js-user-status-expire-button\" title=\"this week\" value=\"2019-07-28T23:59:59+08:00\">\n            this week\n          </button>\n        </li>\n    </ul>\n  </details>\n  <input class=\"js-user-status-expiration-date-input\" type=\"hidden\" name=\"expires_at\" value=\"\">\n</div>\n\n          <include-fragment class=\"js-user-status-org-picker\" data-url=\"/users/status/organizations\"></include-fragment>\n        </div>\n        <div class=\"d-flex flex-items-center flex-justify-between p-3 border-top\">\n          <button type=\"submit\" disabled class=\"width-full btn btn-primary mr-2 js-user-status-submit\">\n            Set status\n          </button>\n          <button type=\"button\" disabled class=\"width-full js-clear-user-status-button btn ml-2 \">\n            Clear status\n          </button>\n        </div>\n</form>    </details-dialog>\n  </details>\n</div>\n\n      </div>\n      <div role=\"none\" class=\"dropdown-divider\"></div>\n\n\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"/chenghuige\" data-ga-click=\"Header, go to profile, text:your profile\">Your profile</a>\n\n\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"/chenghuige?tab=repositories\" data-ga-click=\"Header, go to repositories, text:your repositories\">Your repositories</a>\n\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"/chenghuige?tab=projects\" data-ga-click=\"Header, go to projects, text:your projects\">Your projects</a>\n\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"/chenghuige?tab=stars\" data-ga-click=\"Header, go to starred repos, text:your stars\">Your stars</a>\n      <a role=\"menuitem\" class=\"dropdown-item\" href=\"https://gist.github.com/mine\" data-ga-click=\"Header, your gists, text:your gists\">Your gists</a>\n\n\n    <div role=\"none\" class=\"dropdown-divider\"></div>\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"https://help.github.com\" data-ga-click=\"Header, go to help, text:help\">Help</a>\n    <a role=\"menuitem\" class=\"dropdown-item\" href=\"/settings/profile\" data-ga-click=\"Header, go to settings, icon:settings\">Settings</a>\n    <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"logout-form\" action=\"/logout\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"R+X4sXvTHmdniQIa7jOKp/Kl5CTF1PaayOZDJ1ZiaZkIzIiNjCzoMkuwo/gita2B7TvPei6igXZdRbkOgPRMwQ==\" />\n      \n      <button type=\"submit\" class=\"dropdown-item dropdown-signout\" data-ga-click=\"Header, sign out, icon:logout\" role=\"menuitem\">\n        Sign out\n      </button>\n</form>  </details-menu>\n</details>\n\n    </div>\n\n  </header>\n\n      \n\n  </div>\n\n  <div id=\"start-of-content\" class=\"show-on-focus\"></div>\n\n\n    <div id=\"js-flash-container\">\n\n</div>\n\n\n\n  <div class=\"application-main \" data-commit-hovercards-enabled>\n        <div itemscope itemtype=\"http://schema.org/SoftwareSourceCode\" class=\"\">\n    <main  >\n      \n\n\n  \n\n\n\n\n\n\n\n\n  <div class=\"pagehead repohead instapaper_ignore readability-menu experiment-repo-nav pt-0 pt-lg-4 \">\n    <div class=\"repohead-details-container clearfix container-lg p-responsive d-none d-lg-block\">\n\n      <ul class=\"pagehead-actions\">\n\n\n\n\n  <li>\n    \n    <!-- '\"` --><!-- </textarea></xmp> --></option></form><form data-remote=\"true\" class=\"clearfix js-social-form js-social-container\" action=\"/notifications/subscribe\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"Vg9uoXMpUXZJ7VwnevJjEDSUVp8zS6QdsBTZEIhh06mqy4nCLLYb9Yr793GDHpXOf/UtJ7ybUktuydoTERXRmA==\" />      <input type=\"hidden\" name=\"repository_id\" value=\"147308488\">\n\n      <details class=\"details-reset details-overlay select-menu float-left\">\n        <summary class=\"select-menu-button float-left btn btn-sm btn-with-count\" data-hydro-click=\"{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;WATCH_BUTTON&quot;,&quot;repository_id&quot;:147308488,&quot;client_id&quot;:&quot;1825991806.1528366339&quot;,&quot;originating_request_id&quot;:&quot;957C:7B4B:3124BD:449571:5D36F262&quot;,&quot;originating_url&quot;:&quot;https://github.com/chenghuige/wenzheng/blob/master/projects/kaggle/blindness/keras2/dataset.py&quot;,&quot;referrer&quot;:&quot;https://github.com/chenghuige/wenzheng/tree/master/projects/kaggle/blindness/keras2&quot;,&quot;user_id&quot;:6323467}}\" data-hydro-click-hmac=\"884fa65137d82d95b89d4a5a42047307ff8939f16318c1e3edc585ad27ae8fba\" data-ga-click=\"Repository, click Watch settings, action:blob#show\">          <span data-menu-button>\n              <svg class=\"octicon octicon-eye v-align-text-bottom\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/></svg>\n              Unwatch\n          </span>\n</summary>        <details-menu\n          class=\"select-menu-modal position-absolute mt-5\"\n          style=\"z-index: 99;\">\n          <div class=\"select-menu-header\">\n            <span class=\"select-menu-title\">Notifications</span>\n          </div>\n          <div class=\"select-menu-list\">\n            <button type=\"submit\" name=\"do\" value=\"included\" class=\"select-menu-item width-full\" aria-checked=\"false\" role=\"menuitemradio\">\n              <svg class=\"octicon octicon-check select-menu-item-icon\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z\"/></svg>\n              <div class=\"select-menu-item-text\">\n                <span class=\"select-menu-item-heading\">Not watching</span>\n                <span class=\"description\">Be notified only when participating or @mentioned.</span>\n                <span class=\"hidden-select-button-text\" data-menu-button-contents>\n                  <svg class=\"octicon octicon-eye v-align-text-bottom\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/></svg>\n                  Watch\n                </span>\n              </div>\n            </button>\n\n            <button type=\"submit\" name=\"do\" value=\"release_only\" class=\"select-menu-item width-full\" aria-checked=\"false\" role=\"menuitemradio\">\n              <svg class=\"octicon octicon-check select-menu-item-icon\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z\"/></svg>\n              <div class=\"select-menu-item-text\">\n                <span class=\"select-menu-item-heading\">Releases only</span>\n                <span class=\"description\">Be notified of new releases, and when participating or @mentioned.</span>\n                <span class=\"hidden-select-button-text\" data-menu-button-contents>\n                  <svg class=\"octicon octicon-eye v-align-text-bottom\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/></svg>\n                  Unwatch releases\n                </span>\n              </div>\n            </button>\n\n            <button type=\"submit\" name=\"do\" value=\"subscribed\" class=\"select-menu-item width-full\" aria-checked=\"true\" role=\"menuitemradio\">\n              <svg class=\"octicon octicon-check select-menu-item-icon\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z\"/></svg>\n              <div class=\"select-menu-item-text\">\n                <span class=\"select-menu-item-heading\">Watching</span>\n                <span class=\"description\">Be notified of all conversations.</span>\n                <span class=\"hidden-select-button-text\" data-menu-button-contents>\n                  <svg class=\"octicon octicon-eye v-align-text-bottom\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/></svg>\n                  Unwatch\n                </span>\n              </div>\n            </button>\n\n            <button type=\"submit\" name=\"do\" value=\"ignore\" class=\"select-menu-item width-full\" aria-checked=\"false\" role=\"menuitemradio\">\n              <svg class=\"octicon octicon-check select-menu-item-icon\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z\"/></svg>\n              <div class=\"select-menu-item-text\">\n                <span class=\"select-menu-item-heading\">Ignoring</span>\n                <span class=\"description\">Never be notified.</span>\n                <span class=\"hidden-select-button-text\" data-menu-button-contents>\n                  <svg class=\"octicon octicon-mute v-align-text-bottom\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z\"/></svg>\n                  Stop ignoring\n                </span>\n              </div>\n            </button>\n          </div>\n        </details-menu>\n      </details>\n        <a class=\"social-count js-social-count\"\n          href=\"/chenghuige/wenzheng/watchers\"\n          aria-label=\"16 users are watching this repository\">\n          16\n        </a>\n</form>\n  </li>\n\n  <li>\n      <div class=\"js-toggler-container js-social-container starring-container \">\n    <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"starred js-social-form\" action=\"/chenghuige/wenzheng/unstar\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"RxYunH8WDQ45ZF/MHei0Xxp6DTgKHTZkrQFgnKP4zsUOMb44zOMq1YRPHhNEfg2leyX4DpqU5MH+GHgYVQdqMA==\" />\n      <input type=\"hidden\" name=\"context\" value=\"repository\"></input>\n      <button type=\"submit\" class=\"btn btn-sm btn-with-count js-toggler-target\" aria-label=\"Unstar this repository\" title=\"Unstar chenghuige/wenzheng\" data-hydro-click=\"{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;UNSTAR_BUTTON&quot;,&quot;repository_id&quot;:147308488,&quot;client_id&quot;:&quot;1825991806.1528366339&quot;,&quot;originating_request_id&quot;:&quot;957C:7B4B:3124BD:449571:5D36F262&quot;,&quot;originating_url&quot;:&quot;https://github.com/chenghuige/wenzheng/blob/master/projects/kaggle/blindness/keras2/dataset.py&quot;,&quot;referrer&quot;:&quot;https://github.com/chenghuige/wenzheng/tree/master/projects/kaggle/blindness/keras2&quot;,&quot;user_id&quot;:6323467}}\" data-hydro-click-hmac=\"7aeeaeeab77edb65625ba293cffa92ac3e8b81056e945a38a56c6dd55041f927\" data-ga-click=\"Repository, click unstar button, action:blob#show; text:Unstar\">        <svg class=\"octicon octicon-star v-align-text-bottom\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z\"/></svg>\n        Unstar\n</button>        <a class=\"social-count js-social-count\" href=\"/chenghuige/wenzheng/stargazers\"\n           aria-label=\"428 users starred this repository\">\n           428\n        </a>\n</form>\n    <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"unstarred js-social-form\" action=\"/chenghuige/wenzheng/star\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"UpZWKd41uhv9MeMV3PMgRVVQSMRY3v3Gat0EF5SjYycM7nDTJRtjo+v2ZbpY3bRPmCrP7EJJmYbqmAmOdqWdKw==\" />\n      <input type=\"hidden\" name=\"context\" value=\"repository\"></input>\n      <button type=\"submit\" class=\"btn btn-sm btn-with-count js-toggler-target\" aria-label=\"Unstar this repository\" title=\"Star chenghuige/wenzheng\" data-hydro-click=\"{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;STAR_BUTTON&quot;,&quot;repository_id&quot;:147308488,&quot;client_id&quot;:&quot;1825991806.1528366339&quot;,&quot;originating_request_id&quot;:&quot;957C:7B4B:3124BD:449571:5D36F262&quot;,&quot;originating_url&quot;:&quot;https://github.com/chenghuige/wenzheng/blob/master/projects/kaggle/blindness/keras2/dataset.py&quot;,&quot;referrer&quot;:&quot;https://github.com/chenghuige/wenzheng/tree/master/projects/kaggle/blindness/keras2&quot;,&quot;user_id&quot;:6323467}}\" data-hydro-click-hmac=\"49b22a1cfead0880cae66e3fd1ab258803c2804104c6f0a343c18556ad26a4ec\" data-ga-click=\"Repository, click star button, action:blob#show; text:Star\">        <svg class=\"octicon octicon-star v-align-text-bottom\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z\"/></svg>\n        Star\n</button>        <a class=\"social-count js-social-count\" href=\"/chenghuige/wenzheng/stargazers\"\n           aria-label=\"428 users starred this repository\">\n          428\n        </a>\n</form>  </div>\n\n  </li>\n\n  <li>\n        <span class=\"btn btn-sm btn-with-count disabled tooltipped tooltipped-sw\" aria-label=\"Cannot fork because you own this repository and are not a member of any organizations.\">\n          <svg class=\"octicon octicon-repo-forked v-align-text-bottom\" viewBox=\"0 0 10 16\" version=\"1.1\" width=\"10\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/></svg>\n          Fork\n</span>\n    <a href=\"/chenghuige/wenzheng/network/members\" class=\"social-count\"\n       aria-label=\"155 users forked this repository\">\n      155\n    </a>\n  </li>\n</ul>\n\n      <h1 class=\"public \">\n    <svg class=\"octicon octicon-repo\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/></svg>\n  <span class=\"author\" itemprop=\"author\"><a class=\"url fn\" rel=\"author\" data-hovercard-type=\"user\" data-hovercard-url=\"/hovercards?user_id=6323467\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"/chenghuige\">chenghuige</a></span><!--\n--><span class=\"path-divider\">/</span><!--\n--><strong itemprop=\"name\"><a data-pjax=\"#js-repo-pjax-container\" href=\"/chenghuige/wenzheng\">wenzheng</a></strong>\n  \n\n</h1>\n\n    </div>\n    \n<nav class=\"hx_reponav reponav js-repo-nav js-sidenav-container-pjax container-lg p-responsive d-none d-lg-block\"\n     itemscope\n     itemtype=\"http://schema.org/BreadcrumbList\"\n    aria-label=\"Repository\"\n     data-pjax=\"#js-repo-pjax-container\">\n\n  <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n    <a class=\"js-selected-navigation-item selected reponav-item\" itemprop=\"url\" data-hotkey=\"g c\" aria-current=\"page\" data-selected-links=\"repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /chenghuige/wenzheng\" href=\"/chenghuige/wenzheng\">\n      <svg class=\"octicon octicon-code\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z\"/></svg>\n      <span itemprop=\"name\">Code</span>\n      <meta itemprop=\"position\" content=\"1\">\n</a>  </span>\n\n    <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n      <a itemprop=\"url\" data-hotkey=\"g i\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_issues repo_labels repo_milestones /chenghuige/wenzheng/issues\" href=\"/chenghuige/wenzheng/issues\">\n        <svg class=\"octicon octicon-issue-opened\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"/></svg>\n        <span itemprop=\"name\">Issues</span>\n        <span class=\"Counter\">2</span>\n        <meta itemprop=\"position\" content=\"2\">\n</a>    </span>\n\n  <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n    <a data-hotkey=\"g p\" itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_pulls checks /chenghuige/wenzheng/pulls\" href=\"/chenghuige/wenzheng/pulls\">\n      <svg class=\"octicon octicon-git-pull-request\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/></svg>\n      <span itemprop=\"name\">Pull requests</span>\n      <span class=\"Counter\">0</span>\n      <meta itemprop=\"position\" content=\"3\">\n</a>  </span>\n\n\n    <a data-hotkey=\"g b\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_projects new_repo_project repo_project /chenghuige/wenzheng/projects\" href=\"/chenghuige/wenzheng/projects\">\n      <svg class=\"octicon octicon-project\" viewBox=\"0 0 15 16\" version=\"1.1\" width=\"15\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"/></svg>\n      Projects\n      <span class=\"Counter\" >0</span>\n</a>\n\n    <a class=\"js-selected-navigation-item reponav-item\" data-hotkey=\"g w\" data-selected-links=\"repo_wiki /chenghuige/wenzheng/wiki\" href=\"/chenghuige/wenzheng/wiki\">\n      <svg class=\"octicon octicon-book\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z\"/></svg>\n      Wiki\n</a>\n    <a data-skip-pjax=\"true\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"security alerts policy /chenghuige/wenzheng/network/alerts\" href=\"/chenghuige/wenzheng/network/alerts\">\n      <svg class=\"octicon octicon-shield\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M0 2l7-2 7 2v6.02C14 12.69 8.69 16 7 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L7 1l6 1.75v5.268C13 12.104 8.449 15 7 15c-1.449 0-6-2.896-6-6.982V2.75zm1 .75L7 2v12c-1.207 0-5-2.482-5-5.985V3.5z\"/></svg>\n      Security\n</a>\n    <a class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_graphs repo_contributors dependency_graph pulse people /chenghuige/wenzheng/pulse\" href=\"/chenghuige/wenzheng/pulse\">\n      <svg class=\"octicon octicon-graph\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z\"/></svg>\n      Insights\n</a>\n    <a class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_settings repo_branch_settings hooks integration_installations repo_keys_settings issue_template_editor /chenghuige/wenzheng/settings\" href=\"/chenghuige/wenzheng/settings\">\n      <svg class=\"octicon octicon-gear\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"/></svg>\n      Settings\n</a>\n</nav>\n\n  <div class=\"reponav-wrapper reponav-small d-lg-none\">\n  <nav class=\"reponav js-reponav text-center no-wrap\"\n       itemscope\n       itemtype=\"http://schema.org/BreadcrumbList\">\n\n    <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n      <a class=\"js-selected-navigation-item selected reponav-item\" itemprop=\"url\" aria-current=\"page\" data-selected-links=\"repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /chenghuige/wenzheng\" href=\"/chenghuige/wenzheng\">\n        <span itemprop=\"name\">Code</span>\n        <meta itemprop=\"position\" content=\"1\">\n</a>    </span>\n\n      <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n        <a itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_issues repo_labels repo_milestones /chenghuige/wenzheng/issues\" href=\"/chenghuige/wenzheng/issues\">\n          <span itemprop=\"name\">Issues</span>\n          <span class=\"Counter\">2</span>\n          <meta itemprop=\"position\" content=\"2\">\n</a>      </span>\n\n    <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n      <a itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_pulls checks /chenghuige/wenzheng/pulls\" href=\"/chenghuige/wenzheng/pulls\">\n        <span itemprop=\"name\">Pull requests</span>\n        <span class=\"Counter\">0</span>\n        <meta itemprop=\"position\" content=\"3\">\n</a>    </span>\n\n      <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n        <a itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_projects new_repo_project repo_project /chenghuige/wenzheng/projects\" href=\"/chenghuige/wenzheng/projects\">\n          <span itemprop=\"name\">Projects</span>\n          <span class=\"Counter\">0</span>\n          <meta itemprop=\"position\" content=\"4\">\n</a>      </span>\n\n      <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n        <a itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"repo_wiki /chenghuige/wenzheng/wiki\" href=\"/chenghuige/wenzheng/wiki\">\n          <span itemprop=\"name\">Wiki</span>\n          <meta itemprop=\"position\" content=\"5\">\n</a>      </span>\n\n      <a itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"security alerts policy /chenghuige/wenzheng/network/alerts\" href=\"/chenghuige/wenzheng/network/alerts\">\n        <span itemprop=\"name\">Security</span>\n        <meta itemprop=\"position\" content=\"6\">\n</a>\n      <a class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"pulse /chenghuige/wenzheng/pulse\" href=\"/chenghuige/wenzheng/pulse\">\n        Pulse\n</a>\n      <span itemscope itemtype=\"http://schema.org/ListItem\" itemprop=\"itemListElement\">\n        <a itemprop=\"url\" class=\"js-selected-navigation-item reponav-item\" data-selected-links=\"community /chenghuige/wenzheng/community\" href=\"/chenghuige/wenzheng/community\">\n          Community\n</a>      </span>\n\n  </nav>\n</div>\n\n\n  </div>\n<div class=\"container-lg new-discussion-timeline experiment-repo-nav  p-responsive\">\n  <div class=\"repository-content \">\n\n    \n    \n\n\n  \n    <a class=\"d-none js-permalink-shortcut\" data-hotkey=\"y\" href=\"/chenghuige/wenzheng/blob/b8114fc3b335236d596f0ee68ee04bb50e3b1288/projects/kaggle/blindness/keras2/dataset.py\">Permalink</a>\n\n    <!-- blob contrib key: blob_contributors:v21:4335345e57d786ee3bf083dc007d92b5 -->\n      \n\n    <div class=\"d-flex flex-items-start flex-shrink-0 mb-2 flex-column flex-md-row\">\n      <span class=\"d-flex flex-justify-between width-full width-md-auto\">\n        \n<details class=\"details-reset details-overlay select-menu branch-select-menu  hx_rsm\" id=\"branch-select-menu\">\n  <summary class=\"btn btn-sm select-menu-button css-truncate\"\n           data-hotkey=\"w\"\n           \n           title=\"Switch branches or tags\">\n    <i>Branch:</i>\n    <span class=\"css-truncate-target\">master</span>\n  </summary>\n\n  <details-menu class=\"select-menu-modal hx_rsm-modal position-absolute\" style=\"z-index: 99;\" src=\"/chenghuige/wenzheng/ref-list/master/projects/kaggle/blindness/keras2/dataset.py?source_action=show&amp;source_controller=blob\" preload>\n    <include-fragment class=\"select-menu-loading-overlay anim-pulse\">\n      <svg height=\"32\" class=\"octicon octicon-octoface\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"32\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z\"/></svg>\n    </include-fragment>\n  </details-menu>\n</details>\n\n        <div class=\"BtnGroup flex-shrink-0 d-md-none\">\n          <a href=\"/chenghuige/wenzheng/find/master\"\n                class=\"js-pjax-capture-input btn btn-sm BtnGroup-item\"\n                data-pjax\n                data-hotkey=\"t\">\n            Find file\n          </a>\n          <clipboard-copy value=\"projects/kaggle/blindness/keras2/dataset.py\" class=\"btn btn-sm BtnGroup-item\">\n            Copy path\n          </clipboard-copy>\n        </div>\n      </span>\n      <h2 id=\"blob-path\" class=\"breadcrumb flex-auto min-width-0 text-normal flex-md-self-center ml-md-2 mr-md-3 my-2 my-md-0\">\n        <span class=\"js-repo-root text-bold\"><span class=\"js-path-segment\"><a data-pjax=\"true\" href=\"/chenghuige/wenzheng\"><span>wenzheng</span></a></span></span><span class=\"separator\">/</span><span class=\"js-path-segment\"><a data-pjax=\"true\" href=\"/chenghuige/wenzheng/tree/master/projects\"><span>projects</span></a></span><span class=\"separator\">/</span><span class=\"js-path-segment\"><a data-pjax=\"true\" href=\"/chenghuige/wenzheng/tree/master/projects/kaggle\"><span>kaggle</span></a></span><span class=\"separator\">/</span><span class=\"js-path-segment\"><a data-pjax=\"true\" href=\"/chenghuige/wenzheng/tree/master/projects/kaggle/blindness\"><span>blindness</span></a></span><span class=\"separator\">/</span><span class=\"js-path-segment\"><a data-pjax=\"true\" href=\"/chenghuige/wenzheng/tree/master/projects/kaggle/blindness/keras2\"><span>keras2</span></a></span><span class=\"separator\">/</span><strong class=\"final-path\">dataset.py</strong>\n      </h2>\n\n      <div class=\"BtnGroup flex-shrink-0 d-none d-md-inline-block\">\n        <a href=\"/chenghuige/wenzheng/find/master\"\n              class=\"js-pjax-capture-input btn btn-sm BtnGroup-item\"\n              data-pjax\n              data-hotkey=\"t\">\n          Find file\n        </a>\n        <clipboard-copy value=\"projects/kaggle/blindness/keras2/dataset.py\" class=\"btn btn-sm BtnGroup-item\">\n          Copy path\n        </clipboard-copy>\n      </div>\n    </div>\n\n\n\n    <include-fragment src=\"/chenghuige/wenzheng/contributors/master/projects/kaggle/blindness/keras2/dataset.py\" class=\"Box Box--condensed commit-loader\">\n      <div class=\"Box-body bg-blue-light f6\">\n        Fetching contributors&hellip;\n      </div>\n\n      <div class=\"Box-body d-flex flex-items-center\" >\n          <img alt=\"\" class=\"loader-loading mr-2\" src=\"https://github.githubassets.com/images/spinners/octocat-spinner-32-EAF2F5.gif\" width=\"16\" height=\"16\" />\n        <span class=\"text-red h6 loader-error\">Cannot retrieve contributors at this time</span>\n      </div>\n</include-fragment>\n\n\n\n\n    <div class=\"Box mt-3 position-relative\">\n      \n<div class=\"Box-header py-2 d-flex flex-column flex-shrink-0 flex-md-row flex-md-items-center\">\n\n  <div class=\"text-mono f6 flex-auto pr-3 flex-order-2 flex-md-order-1 mt-2 mt-md-0\">\n      <span class=\"file-mode\" title=\"File mode\">executable file</span>\n      <span class=\"file-info-divider\"></span>\n      153 lines (126 sloc)\n      <span class=\"file-info-divider\"></span>\n    5.15 KB\n  </div>\n\n  <div class=\"d-flex py-1 py-md-0 flex-auto flex-order-1 flex-md-order-2 flex-sm-grow-0 flex-justify-between\">\n\n    <div class=\"BtnGroup\">\n      <a id=\"raw-url\" class=\"btn btn-sm BtnGroup-item\" href=\"/chenghuige/wenzheng/raw/master/projects/kaggle/blindness/keras2/dataset.py\">Raw</a>\n        <a class=\"btn btn-sm js-update-url-with-hash BtnGroup-item\" data-hotkey=\"b\" href=\"/chenghuige/wenzheng/blame/master/projects/kaggle/blindness/keras2/dataset.py\">Blame</a>\n      <a rel=\"nofollow\" class=\"btn btn-sm BtnGroup-item\" href=\"/chenghuige/wenzheng/commits/master/projects/kaggle/blindness/keras2/dataset.py\">History</a>\n    </div>\n\n\n    <div>\n            <a class=\"btn-octicon tooltipped tooltipped-nw hide-sm\"\n               href=\"x-github-client://openRepo/https://github.com/chenghuige/wenzheng?branch=master&amp;filepath=projects%2Fkaggle%2Fblindness%2Fkeras2%2Fdataset.py\"\n               aria-label=\"Open this file in GitHub Desktop\"\n               data-ga-click=\"Repository, open with desktop, type:windows\">\n                <svg class=\"octicon octicon-device-desktop\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z\"/></svg>\n            </a>\n\n            <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"inline-form js-update-url-with-hash\" action=\"/chenghuige/wenzheng/edit/master/projects/kaggle/blindness/keras2/dataset.py\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"QRnBb+2l4xQ9BBq/+bLKp7SDOr7q1m/wQyN+bXLuWGzt1PL976dKltZ1KXPaL/4JdGqWrZF3dc9xN9foxSQx/Q==\" />\n              <button class=\"btn-octicon tooltipped tooltipped-nw\" type=\"submit\"\n                aria-label=\"Edit this file\" data-hotkey=\"e\" data-disable-with>\n                <svg class=\"octicon octicon-pencil\" viewBox=\"0 0 14 16\" version=\"1.1\" width=\"14\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z\"/></svg>\n              </button>\n</form>\n          <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"inline-form\" action=\"/chenghuige/wenzheng/delete/master/projects/kaggle/blindness/keras2/dataset.py\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"NrMurjSUjwXEGWdT+OnRiT110MygFjDrblzuFQCppC2pwmKF+8JSmSDI1wYOOFuFVBRjmnbX8Vvmx3oOdm0akQ==\" />\n            <button class=\"btn-octicon btn-octicon-danger tooltipped tooltipped-nw\" type=\"submit\"\n              aria-label=\"Delete this file\" data-disable-with>\n              <svg class=\"octicon octicon-trashcan\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z\"/></svg>\n            </button>\n</form>    </div>\n  </div>\n</div>\n\n\n\n\n      \n\n  <div itemprop=\"text\" class=\"Box-body p-0 blob-wrapper data type-python \">\n      \n<table class=\"highlight tab-size js-file-line-container\" data-tab-size=\"8\">\n      <tr>\n        <td id=\"L1\" class=\"blob-num js-line-number\" data-line-number=\"1\"></td>\n        <td id=\"LC1\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> Copyright 2017 The TensorFlow Authors. All Rights Reserved.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L2\" class=\"blob-num js-line-number\" data-line-number=\"2\"></td>\n        <td id=\"LC2\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L3\" class=\"blob-num js-line-number\" data-line-number=\"3\"></td>\n        <td id=\"LC3\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></td>\n      </tr>\n      <tr>\n        <td id=\"L4\" class=\"blob-num js-line-number\" data-line-number=\"4\"></td>\n        <td id=\"LC4\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> you may not use this file except in compliance with the License.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L5\" class=\"blob-num js-line-number\" data-line-number=\"5\"></td>\n        <td id=\"LC5\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> You may obtain a copy of the License at</span></td>\n      </tr>\n      <tr>\n        <td id=\"L6\" class=\"blob-num js-line-number\" data-line-number=\"6\"></td>\n        <td id=\"LC6\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L7\" class=\"blob-num js-line-number\" data-line-number=\"7\"></td>\n        <td id=\"LC7\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span>     http://www.apache.org/licenses/LICENSE-2.0</span></td>\n      </tr>\n      <tr>\n        <td id=\"L8\" class=\"blob-num js-line-number\" data-line-number=\"8\"></td>\n        <td id=\"LC8\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L9\" class=\"blob-num js-line-number\" data-line-number=\"9\"></td>\n        <td id=\"LC9\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> Unless required by applicable law or agreed to in writing, software</span></td>\n      </tr>\n      <tr>\n        <td id=\"L10\" class=\"blob-num js-line-number\" data-line-number=\"10\"></td>\n        <td id=\"LC10\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></td>\n      </tr>\n      <tr>\n        <td id=\"L11\" class=\"blob-num js-line-number\" data-line-number=\"11\"></td>\n        <td id=\"LC11\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L12\" class=\"blob-num js-line-number\" data-line-number=\"12\"></td>\n        <td id=\"LC12\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> See the License for the specific language governing permissions and</span></td>\n      </tr>\n      <tr>\n        <td id=\"L13\" class=\"blob-num js-line-number\" data-line-number=\"13\"></td>\n        <td id=\"LC13\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> limitations under the License.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L14\" class=\"blob-num js-line-number\" data-line-number=\"14\"></td>\n        <td id=\"LC14\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c\"><span class=\"pl-c\">#</span> ==============================================================================</span></td>\n      </tr>\n      <tr>\n        <td id=\"L15\" class=\"blob-num js-line-number\" data-line-number=\"15\"></td>\n        <td id=\"LC15\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot;&quot;</span>CIFAR-10 data set.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L16\" class=\"blob-num js-line-number\" data-line-number=\"16\"></td>\n        <td id=\"LC16\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\"></span></td>\n      </tr>\n      <tr>\n        <td id=\"L17\" class=\"blob-num js-line-number\" data-line-number=\"17\"></td>\n        <td id=\"LC17\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\">See http://www.cs.toronto.edu/~kriz/cifar.html.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L18\" class=\"blob-num js-line-number\" data-line-number=\"18\"></td>\n        <td id=\"LC18\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot;&quot;</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L19\" class=\"blob-num js-line-number\" data-line-number=\"19\"></td>\n        <td id=\"LC19\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import</span> os</td>\n      </tr>\n      <tr>\n        <td id=\"L20\" class=\"blob-num js-line-number\" data-line-number=\"20\"></td>\n        <td id=\"LC20\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L21\" class=\"blob-num js-line-number\" data-line-number=\"21\"></td>\n        <td id=\"LC21\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">import</span> tensorflow <span class=\"pl-k\">as</span> tf</td>\n      </tr>\n      <tr>\n        <td id=\"L22\" class=\"blob-num js-line-number\" data-line-number=\"22\"></td>\n        <td id=\"LC22\" class=\"blob-code blob-code-inner js-file-line\">flags <span class=\"pl-k\">=</span> tf.app.flags</td>\n      </tr>\n      <tr>\n        <td id=\"L23\" class=\"blob-num js-line-number\" data-line-number=\"23\"></td>\n        <td id=\"LC23\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c1\">FLAGS</span> <span class=\"pl-k\">=</span> flags.<span class=\"pl-c1\">FLAGS</span></td>\n      </tr>\n      <tr>\n        <td id=\"L24\" class=\"blob-num js-line-number\" data-line-number=\"24\"></td>\n        <td id=\"LC24\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L25\" class=\"blob-num js-line-number\" data-line-number=\"25\"></td>\n        <td id=\"LC25\" class=\"blob-code blob-code-inner js-file-line\">flags.DEFINE_bool(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>random_brightness<span class=\"pl-pds\">&#39;</span></span>, <span class=\"pl-c1\">False</span>, <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span><span class=\"pl-pds\">&#39;</span></span>)</td>\n      </tr>\n      <tr>\n        <td id=\"L26\" class=\"blob-num js-line-number\" data-line-number=\"26\"></td>\n        <td id=\"LC26\" class=\"blob-code blob-code-inner js-file-line\">flags.DEFINE_bool(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>random_contrast<span class=\"pl-pds\">&#39;</span></span>, <span class=\"pl-c1\">False</span>, <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span><span class=\"pl-pds\">&#39;</span></span>)</td>\n      </tr>\n      <tr>\n        <td id=\"L27\" class=\"blob-num js-line-number\" data-line-number=\"27\"></td>\n        <td id=\"LC27\" class=\"blob-code blob-code-inner js-file-line\">flags.DEFINE_bool(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>return_dict<span class=\"pl-pds\">&#39;</span></span>, <span class=\"pl-c1\">False</span>, <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span><span class=\"pl-pds\">&#39;</span></span>)</td>\n      </tr>\n      <tr>\n        <td id=\"L28\" class=\"blob-num js-line-number\" data-line-number=\"28\"></td>\n        <td id=\"LC28\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L29\" class=\"blob-num js-line-number\" data-line-number=\"29\"></td>\n        <td id=\"LC29\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c1\">HEIGHT</span> <span class=\"pl-k\">=</span> <span class=\"pl-c1\">224</span></td>\n      </tr>\n      <tr>\n        <td id=\"L30\" class=\"blob-num js-line-number\" data-line-number=\"30\"></td>\n        <td id=\"LC30\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c1\">WIDTH</span> <span class=\"pl-k\">=</span> <span class=\"pl-c1\">224</span></td>\n      </tr>\n      <tr>\n        <td id=\"L31\" class=\"blob-num js-line-number\" data-line-number=\"31\"></td>\n        <td id=\"LC31\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c1\">DEPTH</span> <span class=\"pl-k\">=</span> <span class=\"pl-c1\">3</span></td>\n      </tr>\n      <tr>\n        <td id=\"L32\" class=\"blob-num js-line-number\" data-line-number=\"32\"></td>\n        <td id=\"LC32\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L33\" class=\"blob-num js-line-number\" data-line-number=\"33\"></td>\n        <td id=\"LC33\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L34\" class=\"blob-num js-line-number\" data-line-number=\"34\"></td>\n        <td id=\"LC34\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">class</span> <span class=\"pl-en\">Dataset</span>(<span class=\"pl-c1\">object</span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L35\" class=\"blob-num js-line-number\" data-line-number=\"35\"></td>\n        <td id=\"LC35\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L36\" class=\"blob-num js-line-number\" data-line-number=\"36\"></td>\n        <td id=\"LC36\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-k\">def</span> <span class=\"pl-c1\">__init__</span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self</span></span>, <span class=\"pl-smi\">data_dir</span>, <span class=\"pl-smi\">subset</span><span class=\"pl-k\">=</span><span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span>, <span class=\"pl-smi\">use_distortion</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">True</span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L37\" class=\"blob-num js-line-number\" data-line-number=\"37\"></td>\n        <td id=\"LC37\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c1\">self</span>.data_dir <span class=\"pl-k\">=</span> data_dir</td>\n      </tr>\n      <tr>\n        <td id=\"L38\" class=\"blob-num js-line-number\" data-line-number=\"38\"></td>\n        <td id=\"LC38\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c1\">self</span>.subset <span class=\"pl-k\">=</span> subset</td>\n      </tr>\n      <tr>\n        <td id=\"L39\" class=\"blob-num js-line-number\" data-line-number=\"39\"></td>\n        <td id=\"LC39\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c1\">self</span>.use_distortion <span class=\"pl-k\">=</span> use_distortion</td>\n      </tr>\n      <tr>\n        <td id=\"L40\" class=\"blob-num js-line-number\" data-line-number=\"40\"></td>\n        <td id=\"LC40\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L41\" class=\"blob-num js-line-number\" data-line-number=\"41\"></td>\n        <td id=\"LC41\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-k\">def</span> <span class=\"pl-en\">get_filenames</span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self</span></span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L42\" class=\"blob-num js-line-number\" data-line-number=\"42\"></td>\n        <td id=\"LC42\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if</span> <span class=\"pl-c1\">self</span>.subset <span class=\"pl-k\">in</span> [<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>valid<span class=\"pl-pds\">&#39;</span></span>, <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>test<span class=\"pl-pds\">&#39;</span></span>]:</td>\n      </tr>\n      <tr>\n        <td id=\"L43\" class=\"blob-num js-line-number\" data-line-number=\"43\"></td>\n        <td id=\"LC43\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">return</span> [os.path.join(<span class=\"pl-c1\">self</span>.data_dir, <span class=\"pl-c1\">self</span>.subset <span class=\"pl-k\">+</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>.tfrecords<span class=\"pl-pds\">&#39;</span></span>)]</td>\n      </tr>\n      <tr>\n        <td id=\"L44\" class=\"blob-num js-line-number\" data-line-number=\"44\"></td>\n        <td id=\"LC44\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">else</span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L45\" class=\"blob-num js-line-number\" data-line-number=\"45\"></td>\n        <td id=\"LC45\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">raise</span> <span class=\"pl-c1\">ValueError</span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>Invalid data subset &quot;<span class=\"pl-c1\">%s</span>&quot;<span class=\"pl-pds\">&#39;</span></span> <span class=\"pl-k\">%</span> <span class=\"pl-c1\">self</span>.subset)</td>\n      </tr>\n      <tr>\n        <td id=\"L46\" class=\"blob-num js-line-number\" data-line-number=\"46\"></td>\n        <td id=\"LC46\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L47\" class=\"blob-num js-line-number\" data-line-number=\"47\"></td>\n        <td id=\"LC47\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-k\">def</span> <span class=\"pl-en\">parser</span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self</span></span>, <span class=\"pl-smi\">serialized_example</span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L48\" class=\"blob-num js-line-number\" data-line-number=\"48\"></td>\n        <td id=\"LC48\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot;&quot;</span>Parses a single tf.Example into image and label tensors.<span class=\"pl-pds\">&quot;&quot;&quot;</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L49\" class=\"blob-num js-line-number\" data-line-number=\"49\"></td>\n        <td id=\"LC49\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> Dimensions of the images in the CIFAR-10 dataset.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L50\" class=\"blob-num js-line-number\" data-line-number=\"50\"></td>\n        <td id=\"LC50\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> See http://www.cs.toronto.edu/~kriz/cifar.html for a description of the</span></td>\n      </tr>\n      <tr>\n        <td id=\"L51\" class=\"blob-num js-line-number\" data-line-number=\"51\"></td>\n        <td id=\"LC51\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> input format.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L52\" class=\"blob-num js-line-number\" data-line-number=\"52\"></td>\n        <td id=\"LC52\" class=\"blob-code blob-code-inner js-file-line\">    features <span class=\"pl-k\">=</span> tf.parse_single_example(</td>\n      </tr>\n      <tr>\n        <td id=\"L53\" class=\"blob-num js-line-number\" data-line-number=\"53\"></td>\n        <td id=\"LC53\" class=\"blob-code blob-code-inner js-file-line\">        serialized_example,</td>\n      </tr>\n      <tr>\n        <td id=\"L54\" class=\"blob-num js-line-number\" data-line-number=\"54\"></td>\n        <td id=\"LC54\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-v\">features</span><span class=\"pl-k\">=</span>{</td>\n      </tr>\n      <tr>\n        <td id=\"L55\" class=\"blob-num js-line-number\" data-line-number=\"55\"></td>\n        <td id=\"LC55\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>id<span class=\"pl-pds\">&#39;</span></span>: tf.FixedLenFeature([], tf.string),</td>\n      </tr>\n      <tr>\n        <td id=\"L56\" class=\"blob-num js-line-number\" data-line-number=\"56\"></td>\n        <td id=\"LC56\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>image<span class=\"pl-pds\">&#39;</span></span>: tf.FixedLenFeature([], tf.string),</td>\n      </tr>\n      <tr>\n        <td id=\"L57\" class=\"blob-num js-line-number\" data-line-number=\"57\"></td>\n        <td id=\"LC57\" class=\"blob-code blob-code-inner js-file-line\">            <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>label<span class=\"pl-pds\">&#39;</span></span>: tf.FixedLenFeature([], tf.int64),</td>\n      </tr>\n      <tr>\n        <td id=\"L58\" class=\"blob-num js-line-number\" data-line-number=\"58\"></td>\n        <td id=\"LC58\" class=\"blob-code blob-code-inner js-file-line\">        })</td>\n      </tr>\n      <tr>\n        <td id=\"L59\" class=\"blob-num js-line-number\" data-line-number=\"59\"></td>\n        <td id=\"LC59\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L60\" class=\"blob-num js-line-number\" data-line-number=\"60\"></td>\n        <td id=\"LC60\" class=\"blob-code blob-code-inner js-file-line\">    image <span class=\"pl-k\">=</span> features[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>image<span class=\"pl-pds\">&#39;</span></span>]</td>\n      </tr>\n      <tr>\n        <td id=\"L61\" class=\"blob-num js-line-number\" data-line-number=\"61\"></td>\n        <td id=\"LC61\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>image = tf.expand_dims(image, axis=-1)</span></td>\n      </tr>\n      <tr>\n        <td id=\"L62\" class=\"blob-num js-line-number\" data-line-number=\"62\"></td>\n        <td id=\"LC62\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c1\">print</span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>--------------1<span class=\"pl-pds\">&#39;</span></span>, image)</td>\n      </tr>\n      <tr>\n        <td id=\"L63\" class=\"blob-num js-line-number\" data-line-number=\"63\"></td>\n        <td id=\"LC63\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>image = tf.decode_raw(image, tf.uint8)</span></td>\n      </tr>\n      <tr>\n        <td id=\"L64\" class=\"blob-num js-line-number\" data-line-number=\"64\"></td>\n        <td id=\"LC64\" class=\"blob-code blob-code-inner js-file-line\">    image <span class=\"pl-k\">=</span> tf.image.decode_png(image)</td>\n      </tr>\n      <tr>\n        <td id=\"L65\" class=\"blob-num js-line-number\" data-line-number=\"65\"></td>\n        <td id=\"LC65\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>image.set_shape([HEIGHT * WIDTH * DEPTH])</span></td>\n      </tr>\n      <tr>\n        <td id=\"L66\" class=\"blob-num js-line-number\" data-line-number=\"66\"></td>\n        <td id=\"LC66\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c1\">print</span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>--------------2<span class=\"pl-pds\">&#39;</span></span>, image, image.shape)</td>\n      </tr>\n      <tr>\n        <td id=\"L67\" class=\"blob-num js-line-number\" data-line-number=\"67\"></td>\n        <td id=\"LC67\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L68\" class=\"blob-num js-line-number\" data-line-number=\"68\"></td>\n        <td id=\"LC68\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>image = tf.cast(</span></td>\n      </tr>\n      <tr>\n        <td id=\"L69\" class=\"blob-num js-line-number\" data-line-number=\"69\"></td>\n        <td id=\"LC69\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>    tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),</span></td>\n      </tr>\n      <tr>\n        <td id=\"L70\" class=\"blob-num js-line-number\" data-line-number=\"70\"></td>\n        <td id=\"LC70\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>    tf.float32)</span></td>\n      </tr>\n      <tr>\n        <td id=\"L71\" class=\"blob-num js-line-number\" data-line-number=\"71\"></td>\n        <td id=\"LC71\" class=\"blob-code blob-code-inner js-file-line\">    image <span class=\"pl-k\">=</span> tf.cast(image, tf.float32)</td>\n      </tr>\n      <tr>\n        <td id=\"L72\" class=\"blob-num js-line-number\" data-line-number=\"72\"></td>\n        <td id=\"LC72\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L73\" class=\"blob-num js-line-number\" data-line-number=\"73\"></td>\n        <td id=\"LC73\" class=\"blob-code blob-code-inner js-file-line\">    label <span class=\"pl-k\">=</span> tf.cast(features[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>label<span class=\"pl-pds\">&#39;</span></span>], tf.int32)</td>\n      </tr>\n      <tr>\n        <td id=\"L74\" class=\"blob-num js-line-number\" data-line-number=\"74\"></td>\n        <td id=\"LC74\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c1\">id</span> <span class=\"pl-k\">=</span> features[<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>id<span class=\"pl-pds\">&#39;</span></span>]</td>\n      </tr>\n      <tr>\n        <td id=\"L75\" class=\"blob-num js-line-number\" data-line-number=\"75\"></td>\n        <td id=\"LC75\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L76\" class=\"blob-num js-line-number\" data-line-number=\"76\"></td>\n        <td id=\"LC76\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> Custom preprocessing.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L77\" class=\"blob-num js-line-number\" data-line-number=\"77\"></td>\n        <td id=\"LC77\" class=\"blob-code blob-code-inner js-file-line\">    image <span class=\"pl-k\">=</span> <span class=\"pl-c1\">self</span>.preprocess(image)</td>\n      </tr>\n      <tr>\n        <td id=\"L78\" class=\"blob-num js-line-number\" data-line-number=\"78\"></td>\n        <td id=\"LC78\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L79\" class=\"blob-num js-line-number\" data-line-number=\"79\"></td>\n        <td id=\"LC79\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> if not FLAGS.return_dict:</span></td>\n      </tr>\n      <tr>\n        <td id=\"L80\" class=\"blob-num js-line-number\" data-line-number=\"80\"></td>\n        <td id=\"LC80\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>   return id, image, label</span></td>\n      </tr>\n      <tr>\n        <td id=\"L81\" class=\"blob-num js-line-number\" data-line-number=\"81\"></td>\n        <td id=\"LC81\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> else:</span></td>\n      </tr>\n      <tr>\n        <td id=\"L82\" class=\"blob-num js-line-number\" data-line-number=\"82\"></td>\n        <td id=\"LC82\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span>   return {&#39;id&#39;: id, &#39;image&#39;: image}, label</span></td>\n      </tr>\n      <tr>\n        <td id=\"L83\" class=\"blob-num js-line-number\" data-line-number=\"83\"></td>\n        <td id=\"LC83\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L84\" class=\"blob-num js-line-number\" data-line-number=\"84\"></td>\n        <td id=\"LC84\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return</span> image, label</td>\n      </tr>\n      <tr>\n        <td id=\"L85\" class=\"blob-num js-line-number\" data-line-number=\"85\"></td>\n        <td id=\"LC85\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L86\" class=\"blob-num js-line-number\" data-line-number=\"86\"></td>\n        <td id=\"LC86\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L87\" class=\"blob-num js-line-number\" data-line-number=\"87\"></td>\n        <td id=\"LC87\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-k\">def</span> <span class=\"pl-en\">make_batch</span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self</span></span>, <span class=\"pl-smi\">batch_size</span>, <span class=\"pl-smi\">filenames</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">None</span>, <span class=\"pl-smi\">repeat</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">None</span>, <span class=\"pl-smi\">initializable</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">None</span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L88\" class=\"blob-num js-line-number\" data-line-number=\"88\"></td>\n        <td id=\"LC88\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot;&quot;</span>Read the images and labels from &#39;filenames&#39;.<span class=\"pl-pds\">&quot;&quot;&quot;</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L89\" class=\"blob-num js-line-number\" data-line-number=\"89\"></td>\n        <td id=\"LC89\" class=\"blob-code blob-code-inner js-file-line\">    filenames <span class=\"pl-k\">=</span> filenames <span class=\"pl-k\">or</span> <span class=\"pl-c1\">self</span>.get_filenames()</td>\n      </tr>\n      <tr>\n        <td id=\"L90\" class=\"blob-num js-line-number\" data-line-number=\"90\"></td>\n        <td id=\"LC90\" class=\"blob-code blob-code-inner js-file-line\">    </td>\n      </tr>\n      <tr>\n        <td id=\"L91\" class=\"blob-num js-line-number\" data-line-number=\"91\"></td>\n        <td id=\"LC91\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if</span> initializable <span class=\"pl-k\">is</span> <span class=\"pl-c1\">None</span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L92\" class=\"blob-num js-line-number\" data-line-number=\"92\"></td>\n        <td id=\"LC92\" class=\"blob-code blob-code-inner js-file-line\">      initializable <span class=\"pl-k\">=</span> <span class=\"pl-c1\">self</span>.subset <span class=\"pl-k\">!=</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L93\" class=\"blob-num js-line-number\" data-line-number=\"93\"></td>\n        <td id=\"LC93\" class=\"blob-code blob-code-inner js-file-line\">    </td>\n      </tr>\n      <tr>\n        <td id=\"L94\" class=\"blob-num js-line-number\" data-line-number=\"94\"></td>\n        <td id=\"LC94\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> Repeat infinitely.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L95\" class=\"blob-num js-line-number\" data-line-number=\"95\"></td>\n        <td id=\"LC95\" class=\"blob-code blob-code-inner js-file-line\">    dataset <span class=\"pl-k\">=</span> tf.data.TFRecordDataset(filenames).repeat()</td>\n      </tr>\n      <tr>\n        <td id=\"L96\" class=\"blob-num js-line-number\" data-line-number=\"96\"></td>\n        <td id=\"LC96\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L97\" class=\"blob-num js-line-number\" data-line-number=\"97\"></td>\n        <td id=\"LC97\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> Parse records.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L98\" class=\"blob-num js-line-number\" data-line-number=\"98\"></td>\n        <td id=\"LC98\" class=\"blob-code blob-code-inner js-file-line\">    dataset <span class=\"pl-k\">=</span> dataset.map(</td>\n      </tr>\n      <tr>\n        <td id=\"L99\" class=\"blob-num js-line-number\" data-line-number=\"99\"></td>\n        <td id=\"LC99\" class=\"blob-code blob-code-inner js-file-line\">        <span class=\"pl-c1\">self</span>.parser, <span class=\"pl-v\">num_parallel_calls</span><span class=\"pl-k\">=</span>batch_size)</td>\n      </tr>\n      <tr>\n        <td id=\"L100\" class=\"blob-num js-line-number\" data-line-number=\"100\"></td>\n        <td id=\"LC100\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L101\" class=\"blob-num js-line-number\" data-line-number=\"101\"></td>\n        <td id=\"LC101\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> Potentially shuffle records.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L102\" class=\"blob-num js-line-number\" data-line-number=\"102\"></td>\n        <td id=\"LC102\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if</span> <span class=\"pl-c1\">self</span>.subset <span class=\"pl-k\">==</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L103\" class=\"blob-num js-line-number\" data-line-number=\"103\"></td>\n        <td id=\"LC103\" class=\"blob-code blob-code-inner js-file-line\">      min_queue_examples <span class=\"pl-k\">=</span> <span class=\"pl-c1\">int</span>(</td>\n      </tr>\n      <tr>\n        <td id=\"L104\" class=\"blob-num js-line-number\" data-line-number=\"104\"></td>\n        <td id=\"LC104\" class=\"blob-code blob-code-inner js-file-line\">          Dataset.num_examples_per_epoch(<span class=\"pl-c1\">self</span>.subset) <span class=\"pl-k\">*</span> <span class=\"pl-c1\">0.4</span>)</td>\n      </tr>\n      <tr>\n        <td id=\"L105\" class=\"blob-num js-line-number\" data-line-number=\"105\"></td>\n        <td id=\"LC105\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span> Ensure that the capacity is sufficiently large to provide good random</span></td>\n      </tr>\n      <tr>\n        <td id=\"L106\" class=\"blob-num js-line-number\" data-line-number=\"106\"></td>\n        <td id=\"LC106\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span> shuffling.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L107\" class=\"blob-num js-line-number\" data-line-number=\"107\"></td>\n        <td id=\"LC107\" class=\"blob-code blob-code-inner js-file-line\">      dataset <span class=\"pl-k\">=</span> dataset.shuffle(<span class=\"pl-v\">buffer_size</span><span class=\"pl-k\">=</span>min_queue_examples <span class=\"pl-k\">+</span> <span class=\"pl-c1\">3</span> <span class=\"pl-k\">*</span> batch_size)</td>\n      </tr>\n      <tr>\n        <td id=\"L108\" class=\"blob-num js-line-number\" data-line-number=\"108\"></td>\n        <td id=\"LC108\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L109\" class=\"blob-num js-line-number\" data-line-number=\"109\"></td>\n        <td id=\"LC109\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-c\"><span class=\"pl-c\">#</span> Batch it up.</span></td>\n      </tr>\n      <tr>\n        <td id=\"L110\" class=\"blob-num js-line-number\" data-line-number=\"110\"></td>\n        <td id=\"LC110\" class=\"blob-code blob-code-inner js-file-line\">    dataset <span class=\"pl-k\">=</span> dataset.batch(batch_size)</td>\n      </tr>\n      <tr>\n        <td id=\"L111\" class=\"blob-num js-line-number\" data-line-number=\"111\"></td>\n        <td id=\"LC111\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">assert</span> tf.executing_eagerly()</td>\n      </tr>\n      <tr>\n        <td id=\"L112\" class=\"blob-num js-line-number\" data-line-number=\"112\"></td>\n        <td id=\"LC112\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return</span> dataset</td>\n      </tr>\n      <tr>\n        <td id=\"L113\" class=\"blob-num js-line-number\" data-line-number=\"113\"></td>\n        <td id=\"LC113\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L114\" class=\"blob-num js-line-number\" data-line-number=\"114\"></td>\n        <td id=\"LC114\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-k\">def</span> <span class=\"pl-en\">preprocess</span>(<span class=\"pl-smi\"><span class=\"pl-smi\">self</span></span>, <span class=\"pl-smi\">image</span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L115\" class=\"blob-num js-line-number\" data-line-number=\"115\"></td>\n        <td id=\"LC115\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-s\"><span class=\"pl-pds\">&quot;&quot;&quot;</span>Preprocess a single image in [height, width, depth] layout.<span class=\"pl-pds\">&quot;&quot;&quot;</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L116\" class=\"blob-num js-line-number\" data-line-number=\"116\"></td>\n        <td id=\"LC116\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if</span> <span class=\"pl-c1\">self</span>.subset <span class=\"pl-k\">==</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span> <span class=\"pl-k\">and</span> <span class=\"pl-c1\">self</span>.use_distortion:</td>\n      </tr>\n      <tr>\n        <td id=\"L117\" class=\"blob-num js-line-number\" data-line-number=\"117\"></td>\n        <td id=\"LC117\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span> Pad 4 pixels on each dimension of feature map, done in mini-batch</span></td>\n      </tr>\n      <tr>\n        <td id=\"L118\" class=\"blob-num js-line-number\" data-line-number=\"118\"></td>\n        <td id=\"LC118\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span>... yes should do something like below.. but you will see with dataset.map.. not ok as summary without scope and finally graph has no these summaries</span></td>\n      </tr>\n      <tr>\n        <td id=\"L119\" class=\"blob-num js-line-number\" data-line-number=\"119\"></td>\n        <td id=\"LC119\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span> refer to https://stackoverflow.com/questions/47345394/image-summaries-with-tensorflows-dataset-api  <span class=\"pl-k\">TODO</span> <span class=\"pl-k\">FIXME</span></span></td>\n      </tr>\n      <tr>\n        <td id=\"L120\" class=\"blob-num js-line-number\" data-line-number=\"120\"></td>\n        <td id=\"LC120\" class=\"blob-code blob-code-inner js-file-line\">      tf.summary.image(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>image<span class=\"pl-pds\">&#39;</span></span>, image)</td>\n      </tr>\n      <tr>\n        <td id=\"L121\" class=\"blob-num js-line-number\" data-line-number=\"121\"></td>\n        <td id=\"LC121\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span>print(&#39;--------&#39;, image)</span></td>\n      </tr>\n      <tr>\n        <td id=\"L122\" class=\"blob-num js-line-number\" data-line-number=\"122\"></td>\n        <td id=\"LC122\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span>image = tf.image.resize_image_with_crop_or_pad(image, 256, 256)</span></td>\n      </tr>\n      <tr>\n        <td id=\"L123\" class=\"blob-num js-line-number\" data-line-number=\"123\"></td>\n        <td id=\"LC123\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span>image = tf.image.resize_images(image, [256, 256], method=0)</span></td>\n      </tr>\n      <tr>\n        <td id=\"L124\" class=\"blob-num js-line-number\" data-line-number=\"124\"></td>\n        <td id=\"LC124\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-c\"><span class=\"pl-c\">#</span>image = tf.random_crop(image, [HEIGHT, WIDTH, DEPTH])</span></td>\n      </tr>\n      <tr>\n        <td id=\"L125\" class=\"blob-num js-line-number\" data-line-number=\"125\"></td>\n        <td id=\"LC125\" class=\"blob-code blob-code-inner js-file-line\">      image <span class=\"pl-k\">=</span> tf.image.random_flip_left_right(image)</td>\n      </tr>\n      <tr>\n        <td id=\"L126\" class=\"blob-num js-line-number\" data-line-number=\"126\"></td>\n        <td id=\"LC126\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">if</span> <span class=\"pl-c1\">FLAGS</span>.random_brightness:</td>\n      </tr>\n      <tr>\n        <td id=\"L127\" class=\"blob-num js-line-number\" data-line-number=\"127\"></td>\n        <td id=\"LC127\" class=\"blob-code blob-code-inner js-file-line\">        image <span class=\"pl-k\">=</span> tf.image.random_brightness(image,</td>\n      </tr>\n      <tr>\n        <td id=\"L128\" class=\"blob-num js-line-number\" data-line-number=\"128\"></td>\n        <td id=\"LC128\" class=\"blob-code blob-code-inner js-file-line\">                                          <span class=\"pl-v\">max_delta</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">63</span>)</td>\n      </tr>\n      <tr>\n        <td id=\"L129\" class=\"blob-num js-line-number\" data-line-number=\"129\"></td>\n        <td id=\"LC129\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">if</span> <span class=\"pl-c1\">FLAGS</span>.random_contrast:</td>\n      </tr>\n      <tr>\n        <td id=\"L130\" class=\"blob-num js-line-number\" data-line-number=\"130\"></td>\n        <td id=\"LC130\" class=\"blob-code blob-code-inner js-file-line\">        distorted_image <span class=\"pl-k\">=</span> tf.image.random_contrast(image,</td>\n      </tr>\n      <tr>\n        <td id=\"L131\" class=\"blob-num js-line-number\" data-line-number=\"131\"></td>\n        <td id=\"LC131\" class=\"blob-code blob-code-inner js-file-line\">                                                  <span class=\"pl-v\">lower</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">0.2</span>, </td>\n      </tr>\n      <tr>\n        <td id=\"L132\" class=\"blob-num js-line-number\" data-line-number=\"132\"></td>\n        <td id=\"LC132\" class=\"blob-code blob-code-inner js-file-line\">                                                  <span class=\"pl-v\">upper</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">1.8</span>)</td>\n      </tr>\n      <tr>\n        <td id=\"L133\" class=\"blob-num js-line-number\" data-line-number=\"133\"></td>\n        <td id=\"LC133\" class=\"blob-code blob-code-inner js-file-line\">      tf.summary.image(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>image/distort<span class=\"pl-pds\">&#39;</span></span>, image)</td>\n      </tr>\n      <tr>\n        <td id=\"L134\" class=\"blob-num js-line-number\" data-line-number=\"134\"></td>\n        <td id=\"LC134\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">else</span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L135\" class=\"blob-num js-line-number\" data-line-number=\"135\"></td>\n        <td id=\"LC135\" class=\"blob-code blob-code-inner js-file-line\">      image <span class=\"pl-k\">=</span> tf.image.resize_images(image, [<span class=\"pl-c1\">HEIGHT</span>, <span class=\"pl-c1\">WIDTH</span>], <span class=\"pl-v\">method</span><span class=\"pl-k\">=</span><span class=\"pl-c1\">0</span>)      </td>\n      </tr>\n      <tr>\n        <td id=\"L136\" class=\"blob-num js-line-number\" data-line-number=\"136\"></td>\n        <td id=\"LC136\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L137\" class=\"blob-num js-line-number\" data-line-number=\"137\"></td>\n        <td id=\"LC137\" class=\"blob-code blob-code-inner js-file-line\">    image <span class=\"pl-k\">=</span> tf.cast(</td>\n      </tr>\n      <tr>\n        <td id=\"L138\" class=\"blob-num js-line-number\" data-line-number=\"138\"></td>\n        <td id=\"LC138\" class=\"blob-code blob-code-inner js-file-line\">        tf.reshape(image, [<span class=\"pl-c1\">HEIGHT</span>, <span class=\"pl-c1\">WIDTH</span>, <span class=\"pl-c1\">DEPTH</span>]),</td>\n      </tr>\n      <tr>\n        <td id=\"L139\" class=\"blob-num js-line-number\" data-line-number=\"139\"></td>\n        <td id=\"LC139\" class=\"blob-code blob-code-inner js-file-line\">        tf.float32)</td>\n      </tr>\n      <tr>\n        <td id=\"L140\" class=\"blob-num js-line-number\" data-line-number=\"140\"></td>\n        <td id=\"LC140\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L141\" class=\"blob-num js-line-number\" data-line-number=\"141\"></td>\n        <td id=\"LC141\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">return</span> image</td>\n      </tr>\n      <tr>\n        <td id=\"L142\" class=\"blob-num js-line-number\" data-line-number=\"142\"></td>\n        <td id=\"LC142\" class=\"blob-code blob-code-inner js-file-line\">\n</td>\n      </tr>\n      <tr>\n        <td id=\"L143\" class=\"blob-num js-line-number\" data-line-number=\"143\"></td>\n        <td id=\"LC143\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-en\">@</span><span class=\"pl-c1\">staticmethod</span></td>\n      </tr>\n      <tr>\n        <td id=\"L144\" class=\"blob-num js-line-number\" data-line-number=\"144\"></td>\n        <td id=\"LC144\" class=\"blob-code blob-code-inner js-file-line\">  <span class=\"pl-k\">def</span> <span class=\"pl-en\">num_examples_per_epoch</span>(<span class=\"pl-smi\">subset</span><span class=\"pl-k\">=</span><span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span>):</td>\n      </tr>\n      <tr>\n        <td id=\"L145\" class=\"blob-num js-line-number\" data-line-number=\"145\"></td>\n        <td id=\"LC145\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">if</span> subset <span class=\"pl-k\">==</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>train<span class=\"pl-pds\">&#39;</span></span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L146\" class=\"blob-num js-line-number\" data-line-number=\"146\"></td>\n        <td id=\"LC146\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">return</span> <span class=\"pl-c1\">3295</span></td>\n      </tr>\n      <tr>\n        <td id=\"L147\" class=\"blob-num js-line-number\" data-line-number=\"147\"></td>\n        <td id=\"LC147\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">elif</span> subset <span class=\"pl-k\">==</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>valid<span class=\"pl-pds\">&#39;</span></span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L148\" class=\"blob-num js-line-number\" data-line-number=\"148\"></td>\n        <td id=\"LC148\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">return</span> <span class=\"pl-c1\">367</span></td>\n      </tr>\n      <tr>\n        <td id=\"L149\" class=\"blob-num js-line-number\" data-line-number=\"149\"></td>\n        <td id=\"LC149\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">elif</span> subset <span class=\"pl-k\">==</span> <span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>test<span class=\"pl-pds\">&#39;</span></span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L150\" class=\"blob-num js-line-number\" data-line-number=\"150\"></td>\n        <td id=\"LC150\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">return</span> <span class=\"pl-c1\">1928</span></td>\n      </tr>\n      <tr>\n        <td id=\"L151\" class=\"blob-num js-line-number\" data-line-number=\"151\"></td>\n        <td id=\"LC151\" class=\"blob-code blob-code-inner js-file-line\">    <span class=\"pl-k\">else</span>:</td>\n      </tr>\n      <tr>\n        <td id=\"L152\" class=\"blob-num js-line-number\" data-line-number=\"152\"></td>\n        <td id=\"LC152\" class=\"blob-code blob-code-inner js-file-line\">      <span class=\"pl-k\">raise</span> <span class=\"pl-c1\">ValueError</span>(<span class=\"pl-s\"><span class=\"pl-pds\">&#39;</span>Invalid data subset &quot;<span class=\"pl-c1\">%s</span>&quot;<span class=\"pl-pds\">&#39;</span></span> <span class=\"pl-k\">%</span> subset)</td>\n      </tr>\n</table>\n\n  <details class=\"details-reset details-overlay BlobToolbar position-absolute js-file-line-actions dropdown d-none\" aria-hidden=\"true\">\n    <summary class=\"btn-octicon ml-0 px-2 p-0 bg-white border border-gray-dark rounded-1\" aria-label=\"Inline file action toolbar\">\n      <svg class=\"octicon octicon-kebab-horizontal\" viewBox=\"0 0 13 16\" version=\"1.1\" width=\"13\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/></svg>\n    </summary>\n    <details-menu>\n      <ul class=\"BlobToolbar-dropdown dropdown-menu dropdown-menu-se mt-2\" style=\"width:185px\">\n        <li><clipboard-copy role=\"menuitem\" class=\"dropdown-item\" id=\"js-copy-lines\" style=\"cursor:pointer;\" data-original-text=\"Copy lines\">Copy lines</clipboard-copy></li>\n        <li><clipboard-copy role=\"menuitem\" class=\"dropdown-item\" id=\"js-copy-permalink\" style=\"cursor:pointer;\" data-original-text=\"Copy permalink\">Copy permalink</clipboard-copy></li>\n        <li><a class=\"dropdown-item js-update-url-with-hash\" id=\"js-view-git-blame\" role=\"menuitem\" href=\"/chenghuige/wenzheng/blame/b8114fc3b335236d596f0ee68ee04bb50e3b1288/projects/kaggle/blindness/keras2/dataset.py\">View git blame</a></li>\n          <li><a class=\"dropdown-item\" id=\"js-new-issue\" role=\"menuitem\" href=\"/chenghuige/wenzheng/issues/new\">Reference in new issue</a></li>\n      </ul>\n    </details-menu>\n  </details>\n\n  </div>\n\n    </div>\n\n  \n\n  <details class=\"details-reset details-overlay details-overlay-dark\">\n    <summary data-hotkey=\"l\" aria-label=\"Jump to line\"></summary>\n    <details-dialog class=\"Box Box--overlay d-flex flex-column anim-fade-in fast linejump\" aria-label=\"Jump to line\">\n      <!-- '\"` --><!-- </textarea></xmp> --></option></form><form class=\"js-jump-to-line-form Box-body d-flex\" action=\"\" accept-charset=\"UTF-8\" method=\"get\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" />\n        <input class=\"form-control flex-auto mr-3 linejump-input js-jump-to-line-field\" type=\"text\" placeholder=\"Jump to line&hellip;\" aria-label=\"Jump to line\" autofocus>\n        <button type=\"submit\" class=\"btn\" data-close-dialog>Go</button>\n</form>    </details-dialog>\n  </details>\n\n    <div class=\"Popover anim-scale-in js-tagsearch-popover\"\n     hidden data-tagsearch-url=\"/chenghuige/wenzheng/find-symbols\"\n     data-tagsearch-ref=\"master\"\n     data-tagsearch-path=\"projects/kaggle/blindness/keras2/dataset.py\"\n     data-tagsearch-lang=\"Python\"\n     data-hydro-click=\"{&quot;event_type&quot;:&quot;code_navigation.click_on_symbol&quot;,&quot;payload&quot;:{&quot;action&quot;:&quot;click_on_symbol&quot;,&quot;repository_id&quot;:147308488,&quot;ref&quot;:&quot;master&quot;,&quot;client_id&quot;:&quot;1825991806.1528366339&quot;,&quot;originating_request_id&quot;:&quot;957C:7B4B:3124BD:449571:5D36F262&quot;,&quot;originating_url&quot;:&quot;https://github.com/chenghuige/wenzheng/blob/master/projects/kaggle/blindness/keras2/dataset.py&quot;,&quot;referrer&quot;:&quot;https://github.com/chenghuige/wenzheng/tree/master/projects/kaggle/blindness/keras2&quot;,&quot;user_id&quot;:6323467}}\"\n     data-hydro-click-hmac=\"8bf5e2b665a7b38feaca51edb15dcd260ef4dc58b7b2627ec3e4e6c6b0cdf965\">\n  <div class=\"Popover-message Popover-message--large Popover-message--top-left TagsearchPopover mt-1 mx-auto Box box-shadow-large\">\n    <div class=\"TagsearchPopover-content js-tagsearch-popover-content overflow-auto\">\n    </div>\n  </div>\n</div>\n\n\n\n  </div>\n  <div class=\"modal-backdrop js-touch-events\"></div>\n</div>\n\n    </main>\n  </div>\n  \n\n  </div>\n\n        \n<div class=\"footer container-lg width-full p-responsive\" role=\"contentinfo\">\n  <div class=\"position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light \">\n    <ul class=\"list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0\">\n      <li class=\"mr-3 mr-lg-0\">&copy; 2019 <span title=\"0.31387s from unicorn-6bc9f9f849-fd965\">GitHub</span>, Inc.</li>\n        <li class=\"mr-3 mr-lg-0\"><a data-ga-click=\"Footer, go to terms, text:terms\" href=\"https://github.com/site/terms\">Terms</a></li>\n        <li class=\"mr-3 mr-lg-0\"><a data-ga-click=\"Footer, go to privacy, text:privacy\" href=\"https://github.com/site/privacy\">Privacy</a></li>\n        <li class=\"mr-3 mr-lg-0\"><a data-ga-click=\"Footer, go to security, text:security\" href=\"https://github.com/security\">Security</a></li>\n        <li class=\"mr-3 mr-lg-0\"><a href=\"https://githubstatus.com/\" data-ga-click=\"Footer, go to status, text:status\">Status</a></li>\n        <li><a data-ga-click=\"Footer, go to help, text:help\" href=\"https://help.github.com\">Help</a></li>\n    </ul>\n\n    <a aria-label=\"Homepage\" title=\"GitHub\" class=\"footer-octicon d-none d-lg-block mx-lg-4\" href=\"https://github.com\">\n      <svg height=\"24\" class=\"octicon octicon-mark-github\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"24\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z\"/></svg>\n</a>\n   <ul class=\"list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0\">\n        <li class=\"mr-3 mr-lg-0\"><a data-ga-click=\"Footer, go to contact, text:contact\" href=\"https://github.com/contact\">Contact GitHub</a></li>\n        <li class=\"mr-3 mr-lg-0\"><a href=\"https://github.com/pricing\" data-ga-click=\"Footer, go to Pricing, text:Pricing\">Pricing</a></li>\n      <li class=\"mr-3 mr-lg-0\"><a href=\"https://developer.github.com\" data-ga-click=\"Footer, go to api, text:api\">API</a></li>\n      <li class=\"mr-3 mr-lg-0\"><a href=\"https://training.github.com\" data-ga-click=\"Footer, go to training, text:training\">Training</a></li>\n        <li class=\"mr-3 mr-lg-0\"><a href=\"https://github.blog\" data-ga-click=\"Footer, go to blog, text:blog\">Blog</a></li>\n        <li><a data-ga-click=\"Footer, go to about, text:about\" href=\"https://github.com/about\">About</a></li>\n\n    </ul>\n  </div>\n  <div class=\"d-flex flex-justify-center pb-6\">\n    <span class=\"f6 text-gray-light\"></span>\n  </div>\n</div>\n\n\n\n  <div id=\"ajax-error-message\" class=\"ajax-error-message flash flash-error\">\n    <svg class=\"octicon octicon-alert\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z\"/></svg>\n    <button type=\"button\" class=\"flash-close js-ajax-error-dismiss\" aria-label=\"Dismiss error\">\n      <svg class=\"octicon octicon-x\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z\"/></svg>\n    </button>\n    You can’t perform that action at this time.\n  </div>\n\n\n    \n    <script crossorigin=\"anonymous\" integrity=\"sha512-DYYzfLxLAmEhliHzsFzzTPG/oyYo0cHHtLPgoxPMhO+607XI0AS2KRK3oRupGySztV3+TzEVI0np0lROEHXyww==\" type=\"application/javascript\" src=\"https://github.githubassets.com/assets/frameworks-f5d42599.js\"></script>\n    \n    <script crossorigin=\"anonymous\" async=\"async\" integrity=\"sha512-JPu1pFctPoxCyC1+0GHbLKiMRASEFH3GOh28MI9lBRZKTCO9xquYofwb3iXr/O6+38u/LiapiTkniXT9nLgZYw==\" type=\"application/javascript\" src=\"https://github.githubassets.com/assets/github-bootstrap-7368bf81.js\"></script>\n    \n    \n    \n  <div class=\"js-stale-session-flash stale-session-flash flash flash-warn flash-banner\" hidden\n    >\n    <svg class=\"octicon octicon-alert\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z\"/></svg>\n    <span class=\"signed-in-tab-flash\">You signed in with another tab or window. <a href=\"\">Reload</a> to refresh your session.</span>\n    <span class=\"signed-out-tab-flash\">You signed out in another tab or window. <a href=\"\">Reload</a> to refresh your session.</span>\n  </div>\n  <template id=\"site-details-dialog\">\n  <details class=\"details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm\" open>\n    <summary role=\"button\" aria-label=\"Close dialog\"></summary>\n    <details-dialog class=\"Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal\">\n      <button class=\"Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0\" type=\"button\" aria-label=\"Close dialog\" data-close-dialog>\n        <svg class=\"octicon octicon-x\" viewBox=\"0 0 12 16\" version=\"1.1\" width=\"12\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z\"/></svg>\n      </button>\n      <div class=\"octocat-spinner my-6 js-details-dialog-spinner\"></div>\n    </details-dialog>\n  </details>\n</template>\n\n  <div class=\"Popover js-hovercard-content position-absolute\" style=\"display: none; outline: none;\" tabindex=\"0\">\n  <div class=\"Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large\" style=\"width:360px;\">\n  </div>\n</div>\n\n  <div aria-live=\"polite\" class=\"js-global-screen-reader-notice sr-only\"></div>\n\n  </body>\n</html>\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:01.775723\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.callbacks import Callback\n\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\n\nfrom config import *\n\nclass QWKEvaluation(Callback):\n  def __init__(self, validation_data=(), batch_size=64, interval=1):\n    super(Callback, self).__init__()\n\n    self.interval = interval\n    self.batch_size = batch_size\n    self.valid_generator, self.y_val = validation_data\n    self.history = []\n\n  def on_epoch_end(self, epoch, logs={}):\n    if epoch % self.interval == 0:\n      y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                            steps=np.ceil(float(len(self.y_val)) / float(self.batch_size)),\n                                            workers=1, use_multiprocessing=False,\n                                            verbose=1)\n      def flatten(y):\n        return np.argmax(y, axis=1).reshape(-1)\n      \n      score = cohen_kappa_score(flatten(self.y_val),\n                                flatten(y_pred),\n                                labels=[0,1,2,3,4],\n                                weights='quadratic')\n      print(\"\\n epoch: %d - QWK_score: %.6f \\n\" % (epoch+1, score))\n      self.history.append(score)\n      if score >= max(self.history):\n        print('saving checkpoint: ', score)\n        self.model.save('../working/densenet_bestqwk.h5')\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:43.549005\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras2/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:05.709750\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.applications.densenet import DenseNet121,DenseNet169\nfrom keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\nfrom keras.models import Model\n\nfrom config import *\n\ndef create_model(input_shape, n_out):\n  input_tensor = Input(shape=input_shape)\n  base_model = DenseNet121(include_top=False,\n                  weights=None,\n                  input_tensor=input_tensor)\n  base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n  x = GlobalAveragePooling2D()(base_model.output)\n  x = Dropout(0.5)(x)\n  x = Dense(1024, activation='relu')(x)\n  x = Dropout(0.5)(x)\n  final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n  model = Model(input_tensor, final_output) \n  return model\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:40.029962\n#   \\Description   still multiple gpu not correct result...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nfrom keras.callbacks import ModelCheckpoint\nfrom keras import metrics\nfrom keras.optimizers import Adam \n\n# create callbacks list\nfrom keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger,\n                             TensorBoard)\n\nfrom keras.utils import to_categorical\nimport keras\n\nimport tensorflow as tf\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.utils import shuffle\n\nfrom config import * \nfrom dataset import Dataset\nfrom evaluate import QWKEvaluation\nfrom model import create_model\n\ndef get_num_gpus():\n  if 'CUDA_VISIBLE_DEVICES' in os.environ:\n    print(\"os.environ['CUDA_VISIBLE_DEVICES']\", os.environ['CUDA_VISIBLE_DEVICES'])\n    if os.environ['CUDA_VISIBLE_DEVICES'] == '-1':\n      return 0\n    num_gpus = len(os.environ['CUDA_VISIBLE_DEVICES'].split(','))\n    print('CUDA_VISIBLE_DEVICES is %s'%(os.environ['CUDA_VISIBLE_DEVICES']))\n    return num_gpus\n  else:\n    return None\n\ndef get_dataset(subset, use_distortion=None):\n  data_dir = '../input/tfrecords/' \n  if use_distortion is None:\n    use_distortion = False\n    if subset == 'train':\n      use_distortion = True\n  return Dataset(data_dir, subset=subset, use_distortion=use_distortion) \n\ndef main(_):\n  # TODO FIXME RuntimeError: tf.placeholder() is not compatible with eager execution.\n  tf.enable_eager_execution()\n\n  num_gpus = get_num_gpus()\n  assert num_gpus\n  print('num_gpus', get_num_gpus())\n\n  batch_size = FLAGS.batch_size\n\n  #----------  init\n  train_data = get_dataset('train', use_distortion=False).make_batch(batch_size)\n  batch_size_ = int(batch_size * (3 / 4)) if num_gpus == 1 else batch_size\n  print('batch_size_', batch_size_)\n  train_mixup = get_dataset('train', use_distortion=True).make_batch(batch_size_)\n  valid_data = get_dataset('valid').make_batch(batch_size)\n\n  # train step1, warm up model\n  model = create_model(\n    input_shape=(SIZE,SIZE,3), \n    n_out=NUM_CLASSES)\n  \n  for layer in model.layers:\n    layer.trainable = False\n\n  for i in range(-3,0):\n    model.layers[i].trainable = True\n\n  if num_gpus > 1:\n    smodel = model\n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(\n    loss='categorical_crossentropy',\n    optimizer=Adam(1e-3))\n\n  tb = TensorBoard(log_dir='./logs', histogram_freq=0,\n                          write_graph=True, write_images=False)\n\n  qwk = QWKEvaluation(validation_data=(valid_data, valid_y),\n                      batch_size=batch_size, interval=1)  \n\n  model.fit_generator(\n    train_data,\n    epochs=2,\n    workers=WORKERS, \n    use_multiprocessing=True,\n    verbose=1,\n    callbacks=[qwk])\n\n  # train step2, train all layers\n  checkpoint = ModelCheckpoint('../working/densenet_.h5', monitor='val_loss', verbose=1, \n                              save_best_only=True, mode='min', save_weights_only = True)\n  reduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \n                                    verbose=1, mode='auto', epsilon=0.0001)\n  early = EarlyStopping(monitor=\"val_loss\", \n                        mode=\"min\", \n                        patience=9)\n\n  csv_logger = CSVLogger(filename='../working/training_log.csv',\n                        separator=',',\n                        append=True)\n\n  if num_gpus > 1:\n    model = smodel\n\n  for layer in model.layers:\n    layer.trainable = True\n  callbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, qwk]\n\n  if num_gpus > 1:\n    smodel = model \n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(loss='categorical_crossentropy',\n                # loss=kappa_loss,\n                optimizer=Adam(lr=1e-4))\n\n  model.fit_generator(\n    train_mixup,\n    validation_data=valid_data,\n    epochs=epochs,\n    verbose=1,\n    workers=1, \n    use_multiprocessing=False,\n    callbacks=callbacks_list)\n\nif __name__ == '__main__':\n  flags.DEFINE_integer('batch_size', 32, '')\n  flags.DEFINE_float('valid_portion', 0.1, '')\n\n  absl_app.run(main) \n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/READEME.md",
    "content": "first start with kaggle kernel http://192.168.31.36:8888/notebooks/wenzheng/projects/kaggle/blindness/other/APTOS%202019_%20Keras%20Baseline.ipynb"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/aug.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   aug.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:53:11.255995\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom imgaug import augmenters as iaa\nimport imgaug as ia\n\nsometimes = lambda aug: iaa.Sometimes(0.5, aug)\nseq = iaa.Sequential(\n    [\n        # apply the following augmenters to most images\n        iaa.Fliplr(0.5), # horizontally flip 50% of all images\n        iaa.Flipud(0.2), # vertically flip 20% of all images\n        sometimes(iaa.Affine(\n            scale={\"x\": (0.9, 1.1), \"y\": (0.9, 1.1)}, # scale images to 80-120% of their size, individually per axis\n            translate_percent={\"x\": (-0.1, 0.1), \"y\": (-0.1, 0.1)}, # translate by -20 to +20 percent (per axis)\n            rotate=(-10, 10), # rotate by -45 to +45 degrees\n            shear=(-5, 5), # shear by -16 to +16 degrees\n            order=[0, 1], # use nearest neighbour or bilinear interpolation (fast)\n            cval=(0, 255), # if mode is constant, use a cval between 0 and 255\n            mode=ia.ALL # use any of scikit-image's warping modes (see 2nd image from the top for examples)\n        )),\n        # execute 0 to 5 of the following (less important) augmenters per image\n        # don't execute all of them, as that would often be way too strong\n        iaa.SomeOf((0, 5),\n            [\n                sometimes(iaa.Superpixels(p_replace=(0, 1.0), n_segments=(20, 200))), # convert images into their superpixel representation\n                iaa.OneOf([\n                    iaa.GaussianBlur((0, 1.0)), # blur images with a sigma between 0 and 3.0\n                    iaa.AverageBlur(k=(3, 5)), # blur image using local means with kernel sizes between 2 and 7\n                    iaa.MedianBlur(k=(3, 5)), # blur image using local medians with kernel sizes between 2 and 7\n                ]),\n                iaa.Sharpen(alpha=(0, 1.0), lightness=(0.9, 1.1)), # sharpen images\n                iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)), # emboss images\n                # search either for all edges or for directed edges,\n                # blend the result with the original image using a blobby mask\n                iaa.SimplexNoiseAlpha(iaa.OneOf([\n                    iaa.EdgeDetect(alpha=(0.5, 1.0)),\n                    iaa.DirectedEdgeDetect(alpha=(0.5, 1.0), direction=(0.0, 1.0)),\n                ])),\n                iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.01*255), per_channel=0.5), # add gaussian noise to images\n                iaa.OneOf([\n                    iaa.Dropout((0.01, 0.05), per_channel=0.5), # randomly remove up to 10% of the pixels\n                    iaa.CoarseDropout((0.01, 0.03), size_percent=(0.01, 0.02), per_channel=0.2),\n                ]),\n                iaa.Invert(0.01, per_channel=True), # invert color channels\n                iaa.Add((-2, 2), per_channel=0.5), # change brightness of images (by -10 to 10 of original value)\n                iaa.AddToHueAndSaturation((-1, 1)), # change hue and saturation\n                # either change the brightness of the whole image (sometimes\n                # per channel) or change the brightness of subareas\n                iaa.OneOf([\n                    iaa.Multiply((0.9, 1.1), per_channel=0.5),\n                    iaa.FrequencyNoiseAlpha(\n                        exponent=(-1, 0),\n                        first=iaa.Multiply((0.9, 1.1), per_channel=True),\n                        second=iaa.ContrastNormalization((0.9, 1.1))\n                    )\n                ]),\n                sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)), # move pixels locally around (with random strengths)\n                sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05))), # sometimes move parts of the image around\n                sometimes(iaa.PerspectiveTransform(scale=(0.01, 0.1)))\n            ],\n            random_order=True\n        )\n    ],\n    random_order=True)  \n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 22:03:51.198317\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nWORKERS = 2\nCHANNEL = 3\n\nSIZE = 300\nNUM_CLASSES = 5\n\nepochs = 30; \n#batch_size = 32\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:09.914646\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tensorflow.keras.utils import Sequence\nimport numpy as np\nfrom aug import seq \nfrom sklearn.utils import shuffle\nimport cv2\n\nfrom config import *\n\nclass Dataset(Sequence):\n  \n  def __init__(self, image_filenames, labels,\n                batch_size, is_train=True,\n                mix=False, augment=False):\n    self.image_filenames, self.labels = image_filenames, labels\n    self.batch_size = batch_size\n    self.is_train = is_train\n    self.is_augment = augment\n    if(self.is_train):\n        self.on_epoch_end()\n    self.is_mix = mix\n\n  def __len__(self):\n    return int(np.ceil(len(self.image_filenames) / float(self.batch_size)))\n\n  def __getitem__(self, idx):\n    batch_x = self.image_filenames[idx * self.batch_size:(idx + 1) * self.batch_size]\n    batch_y = self.labels[idx * self.batch_size:(idx + 1) * self.batch_size]\n\n    if(self.is_train):\n        return self.train_generate(batch_x, batch_y)\n    return self.valid_generate(batch_x, batch_y)\n\n  def on_epoch_end(self):\n    if(self.is_train):\n        self.image_filenames, self.labels = shuffle(self.image_filenames, self.labels)\n    else:\n        pass\n  \n  def mix_up(self, x, y):\n    lam = np.random.beta(0.2, 0.4)\n    ori_index = np.arange(int(len(x)))\n    index_array = np.arange(int(len(x)))\n    np.random.shuffle(index_array)        \n    \n    mixed_x = lam * x[ori_index] + (1 - lam) * x[index_array]\n    mixed_y = lam * y[ori_index] + (1 - lam) * y[index_array]\n    \n    return mixed_x, mixed_y\n\n  def train_generate(self, batch_x, batch_y):\n    batch_images = []\n    for (sample, label) in zip(batch_x, batch_y):\n        img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n        img = cv2.resize(img, (SIZE, SIZE))\n        if(self.is_augment):\n            img = seq.augment_image(img)\n        batch_images.append(img)\n    batch_images = np.array(batch_images, np.float32) / 255\n    batch_y = np.array(batch_y, np.float32)\n    if(self.is_mix):\n        batch_images, batch_y = self.mix_up(batch_images, batch_y)\n    return batch_images, batch_y\n\n  def valid_generate(self, batch_x, batch_y):\n    batch_images = []\n    for (sample, label) in zip(batch_x, batch_y):\n        img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n        img = cv2.resize(img, (SIZE, SIZE))\n        batch_images.append(img)\n    batch_images = np.array(batch_images, np.float32) / 255\n    batch_y = np.array(batch_y, np.float32)\n    return batch_images, batch_y  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:01.775723\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom tensorflow.keras.callbacks import Callback\n\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\n\nfrom config import *\n\nclass QWKEvaluation(Callback):\n  def __init__(self, validation_data=(), batch_size=64, interval=1):\n    super(Callback, self).__init__()\n\n    self.interval = interval\n    self.batch_size = batch_size\n    self.valid_generator, self.y_val = validation_data\n    self.history = []\n\n  def on_epoch_end(self, epoch, logs={}):\n    if epoch % self.interval == 0:\n      y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                            steps=np.ceil(float(len(self.y_val)) / float(self.batch_size)),\n                                            workers=1, use_multiprocessing=False,\n                                            verbose=1)\n      def flatten(y):\n        return np.argmax(y, axis=1).reshape(-1)\n      \n      score = cohen_kappa_score(flatten(self.y_val),\n                                flatten(y_pred),\n                                labels=[0,1,2,3,4],\n                                weights='quadratic')\n      print(\"\\n epoch: %d - QWK_score: %.6f \\n\" % (epoch+1, score))\n      self.history.append(score)\n      if score >= max(self.history):\n        print('saving checkpoint: ', score)\n        self.model.save('../working/densenet_bestqwk.h5')\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:43.549005\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:05.709750\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n\nfrom tensorflow.keras.applications.densenet import DenseNet121,DenseNet169\nfrom tensorflow.keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\nfrom tensorflow.keras.models import Model\n\nfrom config import *\n\ndef create_model(input_shape, n_out):\n  input_tensor = Input(shape=input_shape)\n  base_model = DenseNet121(include_top=False,\n                  weights=None,\n                  input_tensor=input_tensor)\n  base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n  x = GlobalAveragePooling2D()(base_model.output)\n  x = Dropout(0.5)(x)\n  x = Dense(1024, activation='relu')(x)\n  x = Dropout(0.5)(x)\n  final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n  model = Model(input_tensor, final_output) \n  return model\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras2tf/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:40.029962\n#   \\Description   still multiple gpu not correct result...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nfrom tensorflow.keras.callbacks import ModelCheckpoint\nfrom tensorflow.keras import metrics\nfrom tensorflow.keras.optimizers import Adam \n\n# create callbacks list\nfrom tensorflow.keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger,\n                             TensorBoard)\n\nfrom tensorflow.keras.utils import to_categorical\nfrom tensorflow import keras\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.utils import shuffle\n\nfrom config import * \nfrom dataset import Dataset\nfrom evaluate import QWKEvaluation\nfrom model import create_model\n\ndef get_num_gpus():\n  if 'CUDA_VISIBLE_DEVICES' in os.environ:\n    print(\"os.environ['CUDA_VISIBLE_DEVICES']\", os.environ['CUDA_VISIBLE_DEVICES'])\n    if os.environ['CUDA_VISIBLE_DEVICES'] == '-1':\n      return 0\n    num_gpus = len(os.environ['CUDA_VISIBLE_DEVICES'].split(','))\n    print('CUDA_VISIBLE_DEVICES is %s'%(os.environ['CUDA_VISIBLE_DEVICES']))\n    return num_gpus\n  else:\n    return None\n\ndef main(_):\n  num_gpus = get_num_gpus()\n  assert num_gpus\n  print('num_gpus', get_num_gpus())\n\n  batch_size = FLAGS.batch_size\n\n  #----------- read input\n  df_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\n  df_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n  \n  x = df_train['id_code']\n  y = df_train['diagnosis']\n\n  x, y = shuffle(x, y, random_state=8)\n  y = to_categorical(y, num_classes=NUM_CLASSES)\n  train_x, valid_x, train_y, valid_y = train_test_split(x, y, test_size=FLAGS.valid_portion,\n                                                      stratify=y, random_state=8)\n  #----------  init\n  train_data = Dataset(train_x, train_y, 128, is_train=True)\n  batch_size_ = int(batch_size * (3 / 4)) if num_gpus == 1 else batch_size\n  print('batch_size_', batch_size_)\n  train_mixup = Dataset(train_x, train_y, batch_size_, is_train=True, mix=False, augment=True)\n  valid_data = Dataset(valid_x, valid_y, batch_size, is_train=False)\n\n  # train step1, warm up model\n  model = create_model(\n    input_shape=(SIZE,SIZE,3), \n    n_out=NUM_CLASSES)\n  \n  for layer in model.layers:\n    layer.trainable = False\n\n  for i in range(-3,0):\n    model.layers[i].trainable = True\n\n  if num_gpus > 1:\n    smodel = model\n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(\n    loss='categorical_crossentropy',\n    optimizer=Adam(1e-3))\n\n  tb = TensorBoard(log_dir='./logs', histogram_freq=0,\n                          write_graph=True, write_images=False)\n\n  qwk = QWKEvaluation(validation_data=(valid_data, valid_y),\n                      batch_size=batch_size, interval=1)  \n\n  model.fit_generator(\n    train_data,\n    epochs=2,\n    workers=WORKERS, \n    use_multiprocessing=True,\n    verbose=1,\n    callbacks=[qwk])\n\n  # train step2, train all layers\n  checkpoint = ModelCheckpoint('../working/densenet_.h5', monitor='val_loss', verbose=1, \n                              save_best_only=True, mode='min', save_weights_only = True)\n  reduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \n                                    verbose=1, mode='auto', epsilon=0.0001)\n  early = EarlyStopping(monitor=\"val_loss\", \n                        mode=\"min\", \n                        patience=9)\n\n  csv_logger = CSVLogger(filename='../working/training_log.csv',\n                        separator=',',\n                        append=True)\n\n  if num_gpus > 1:\n    model = smodel\n\n  for layer in model.layers:\n    layer.trainable = True\n  callbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, qwk]\n\n  if num_gpus > 1:\n    smodel = model \n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(loss='categorical_crossentropy',\n                # loss=kappa_loss,\n                optimizer=Adam(lr=1e-4))\n\n  model.fit_generator(\n    train_mixup,\n    validation_data=valid_data,\n    epochs=epochs,\n    verbose=1,\n    workers=1, \n    use_multiprocessing=False,\n    callbacks=callbacks_list)\n\nif __name__ == '__main__':\n  flags.DEFINE_integer('batch_size', 32, '')\n  flags.DEFINE_float('valid_portion', 0.1, '')\n\n  absl_app.run(main) \n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/READEME.md",
    "content": "first start with kaggle kernel http://192.168.31.36:8888/notebooks/wenzheng/projects/kaggle/blindness/other/APTOS%202019_%20Keras%20Baseline.ipynb"
  },
  {
    "path": "projects/kaggle/blindness/keras3/aug.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   aug.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:53:11.255995\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom imgaug import augmenters as iaa\nimport imgaug as ia\n\nsometimes = lambda aug: iaa.Sometimes(0.5, aug)\nseq = iaa.Sequential(\n    [\n        # apply the following augmenters to most images\n        iaa.Fliplr(0.5), # horizontally flip 50% of all images\n        iaa.Flipud(0.2), # vertically flip 20% of all images\n        sometimes(iaa.Affine(\n            scale={\"x\": (0.9, 1.1), \"y\": (0.9, 1.1)}, # scale images to 80-120% of their size, individually per axis\n            translate_percent={\"x\": (-0.1, 0.1), \"y\": (-0.1, 0.1)}, # translate by -20 to +20 percent (per axis)\n            rotate=(-10, 10), # rotate by -45 to +45 degrees\n            shear=(-5, 5), # shear by -16 to +16 degrees\n            order=[0, 1], # use nearest neighbour or bilinear interpolation (fast)\n            cval=(0, 255), # if mode is constant, use a cval between 0 and 255\n            mode=ia.ALL # use any of scikit-image's warping modes (see 2nd image from the top for examples)\n        )),\n        # execute 0 to 5 of the following (less important) augmenters per image\n        # don't execute all of them, as that would often be way too strong\n        iaa.SomeOf((0, 5),\n            [\n                sometimes(iaa.Superpixels(p_replace=(0, 1.0), n_segments=(20, 200))), # convert images into their superpixel representation\n                iaa.OneOf([\n                    iaa.GaussianBlur((0, 1.0)), # blur images with a sigma between 0 and 3.0\n                    iaa.AverageBlur(k=(3, 5)), # blur image using local means with kernel sizes between 2 and 7\n                    iaa.MedianBlur(k=(3, 5)), # blur image using local medians with kernel sizes between 2 and 7\n                ]),\n                iaa.Sharpen(alpha=(0, 1.0), lightness=(0.9, 1.1)), # sharpen images\n                iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)), # emboss images\n                # search either for all edges or for directed edges,\n                # blend the result with the original image using a blobby mask\n                iaa.SimplexNoiseAlpha(iaa.OneOf([\n                    iaa.EdgeDetect(alpha=(0.5, 1.0)),\n                    iaa.DirectedEdgeDetect(alpha=(0.5, 1.0), direction=(0.0, 1.0)),\n                ])),\n                iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.01*255), per_channel=0.5), # add gaussian noise to images\n                iaa.OneOf([\n                    iaa.Dropout((0.01, 0.05), per_channel=0.5), # randomly remove up to 10% of the pixels\n                    iaa.CoarseDropout((0.01, 0.03), size_percent=(0.01, 0.02), per_channel=0.2),\n                ]),\n                iaa.Invert(0.01, per_channel=True), # invert color channels\n                iaa.Add((-2, 2), per_channel=0.5), # change brightness of images (by -10 to 10 of original value)\n                iaa.AddToHueAndSaturation((-1, 1)), # change hue and saturation\n                # either change the brightness of the whole image (sometimes\n                # per channel) or change the brightness of subareas\n                iaa.OneOf([\n                    iaa.Multiply((0.9, 1.1), per_channel=0.5),\n                    iaa.FrequencyNoiseAlpha(\n                        exponent=(-1, 0),\n                        first=iaa.Multiply((0.9, 1.1), per_channel=True),\n                        second=iaa.ContrastNormalization((0.9, 1.1))\n                    )\n                ]),\n                sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)), # move pixels locally around (with random strengths)\n                sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05))), # sometimes move parts of the image around\n                sometimes(iaa.PerspectiveTransform(scale=(0.01, 0.1)))\n            ],\n            random_order=True\n        )\n    ],\n    random_order=True)  \n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/bak/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:01.775723\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.callbacks import Callback\n\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\n\nfrom config import *\n\nclass QWKEvaluation(Callback):\n  def __init__(self, validation_data=(), batch_size=64, interval=1):\n    super(Callback, self).__init__()\n\n    self.interval = interval\n    self.batch_size = batch_size\n    self.valid_generator, self.y_val = validation_data\n    self.history = []\n\n  def on_epoch_end(self, epoch, logs={}):\n    if epoch % self.interval == 0:\n      y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                            steps=np.ceil(float(len(self.y_val)) / float(self.batch_size)),\n                                            workers=1, use_multiprocessing=False,\n                                            verbose=1)\n      def flatten(y):\n        return np.argmax(y, axis=1).reshape(-1)\n      \n      score = cohen_kappa_score(flatten(self.y_val),\n                                flatten(y_pred),\n                                labels=[0,1,2,3,4],\n                                weights='quadratic')\n      print(\"\\n epoch: %d - QWK_score: %.6f \\n\" % (epoch+1, score))\n      self.history.append(score)\n      if score >= max(self.history):\n        print('saving checkpoint: ', score)\n        self.model.save('../working/densenet_bestqwk.h5')\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 22:03:51.198317\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nWORKERS = 2\nCHANNEL = 3\n\nSIZE = 300\nNUM_CLASSES = 5\n\nepochs = 30; \n#batch_size = 32\n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/dataset.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:09.914646\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.utils import Sequence\nimport numpy as np\nfrom aug import seq \nfrom sklearn.utils import shuffle\nimport cv2\n\nfrom config import *\n\nfrom multiprocessing import Manager\n#image_dict = {}\n# with out this if fit using multiprocess image_dict never add item\nimage_dict = Manager().dict()\n\nclass Dataset(Sequence):\n \n  def __init__(self, image_filenames, labels,\n                batch_size, is_train=True,\n                mix=False, augment=False,\n                ):\n    self.image_filenames, self.labels = image_filenames, labels\n    self.batch_size = batch_size\n    self.is_train = is_train\n    self.is_augment = augment\n    if(self.is_train):\n        self.on_epoch_end()\n    self.is_mix = mix\n    \n  def __len__(self):\n    return int(np.ceil(len(self.image_filenames) / float(self.batch_size)))\n\n  def __getitem__(self, idx):\n    batch_x = self.image_filenames[idx * self.batch_size:(idx + 1) * self.batch_size]\n    batch_y = self.labels[idx * self.batch_size:(idx + 1) * self.batch_size]\n\n    if(self.is_train):\n      return self.train_generate(batch_x, batch_y)\n    return self.valid_generate(batch_x, batch_y)\n\n  def on_epoch_end(self):\n    if(self.is_train):\n        self.image_filenames, self.labels = shuffle(self.image_filenames, self.labels)\n    else:\n        pass\n  \n  def mix_up(self, x, y):\n    lam = np.random.beta(0.2, 0.4)\n    ori_index = np.arange(int(len(x)))\n    index_array = np.arange(int(len(x)))\n    np.random.shuffle(index_array)        \n    \n    mixed_x = lam * x[ori_index] + (1 - lam) * x[index_array]\n    mixed_y = lam * y[ori_index] + (1 - lam) * y[index_array]\n    \n    return mixed_x, mixed_y\n\n  def train_generate(self, batch_x, batch_y):\n    batch_images = []\n    for (sample, label) in zip(batch_x, batch_y):\n        if sample in image_dict:\n          img = image_dict[sample]\n        else:\n          img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n          img = cv2.resize(img, (SIZE, SIZE))\n          image_dict[sample] = img\n        if(self.is_augment):\n            img = seq.augment_image(img)\n        batch_images.append(img)\n    batch_images = np.array(batch_images, np.float32) / 255\n    batch_y = np.array(batch_y, np.float32)\n    if(self.is_mix):\n        batch_images, batch_y = self.mix_up(batch_images, batch_y)\n    return batch_images, batch_y\n\n  def get_images(self, indexes):\n    image_names = [self.image_filenames.values[i] for i in indexes]\n    imgs = []\n    for sample in image_names:\n      if sample in image_dict:\n        img = image_dict[sample]\n      else:\n        img = cv2.imread('../input/aptos2019-blindness-detection/train_images/' + sample +'.png')\n        img = cv2.resize(img, (SIZE, SIZE))\n        image_dict[sample] = img\n      imgs.append(img)\n    imgs = np.array(imgs, np.float32) / 255\n    return imgs \n\n  def valid_generate(self, batch_x, batch_y):\n    batch_images = []\n    for (sample, label) in zip(batch_x, batch_y):\n        if sample in image_dict:\n          img = image_dict[sample]\n        else:\n          img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n          img = cv2.resize(img, (SIZE, SIZE))\n          image_dict[sample] = img\n        batch_images.append(img)\n    batch_images = np.array(batch_images, np.float32) / 255\n    batch_y = np.array(batch_y, np.float32)\n    return batch_images, batch_y  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:01.775723\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom keras.callbacks import Callback\n\nimport numpy as np\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\n\nfrom config import *\n\nclass QWKEvaluation(Callback):\n  def __init__(self, validation_data=(), batch_size=64, interval=1):\n    super(Callback, self).__init__()\n\n    self.interval = interval\n    self.batch_size = batch_size\n    self.valid_generator, self.y_val = validation_data\n    self.history = []\n\n  def on_epoch_end(self, epoch, logs={}):\n    if epoch % self.interval == 0:\n      y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                            #steps=np.ceil(float(len(self.y_val)) / float(self.batch_size)),\n                                            workers=1, use_multiprocessing=False,\n                                            verbose=1)\n      def flatten(y):\n        return np.argmax(y, axis=1).reshape(-1)\n      \n      score = cohen_kappa_score(flatten(self.y_val),\n                                flatten(y_pred),\n                                labels=[0,1,2,3,4],\n                                weights='quadratic')\n      print(\"\\n epoch: %d - QWK_score: %.6f \\n\" % (epoch+1, score))\n      self.history.append(score)\n      if score >= max(self.history):\n        print('saving checkpoint: ', score)\n        self.model.save('../working/densenet_bestqwk.h5')\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:43.549005\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n  \n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:05.709750\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n\nfrom keras.applications.densenet import DenseNet121,DenseNet169\nfrom keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\nfrom keras.models import Model\n\nfrom config import *\n\ndef create_model(input_shape, n_out):\n  input_tensor = Input(shape=input_shape)\n  base_model = DenseNet121(include_top=False,\n                  weights=None,\n                  input_tensor=input_tensor)\n  base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n  x = GlobalAveragePooling2D()(base_model.output)\n  x = Dropout(0.5)(x)\n  x = Dense(1024, activation='relu')(x)\n  x = Dropout(0.5)(x)\n  final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n  model = Model(input_tensor, final_output) \n  return model\n\n"
  },
  {
    "path": "projects/kaggle/blindness/keras3/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2019-07-21 21:52:40.029962\n#   \\Description   still multiple gpu not correct result...\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nfrom absl import app as absl_app\nfrom absl import flags\nFLAGS = flags.FLAGS\n\nfrom keras.callbacks import ModelCheckpoint\nfrom keras import metrics\nfrom keras.optimizers import Adam \n\n# create callbacks list\nfrom keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger,\n                             TensorBoard)\nimport keras\nfrom keras.utils import to_categorical\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.utils import shuffle\n\nfrom config import * \nfrom dataset import Dataset\nfrom evaluate import QWKEvaluation\nfrom model import create_model\n\ndef get_num_gpus():\n  if 'CUDA_VISIBLE_DEVICES' in os.environ:\n    print(\"os.environ['CUDA_VISIBLE_DEVICES']\", os.environ['CUDA_VISIBLE_DEVICES'])\n    if os.environ['CUDA_VISIBLE_DEVICES'] == '-1':\n      return 0\n    num_gpus = len(os.environ['CUDA_VISIBLE_DEVICES'].split(','))\n    print('CUDA_VISIBLE_DEVICES is %s'%(os.environ['CUDA_VISIBLE_DEVICES']))\n    return num_gpus\n  else:\n    return None\n\ndef main(_):\n  num_gpus = get_num_gpus()\n  assert num_gpus\n  print('num_gpus', get_num_gpus())\n\n  batch_size = FLAGS.batch_size\n\n  #----------- read input\n  df_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\n  df_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n  \n  x = df_train['id_code']\n  y = df_train['diagnosis']\n\n  x, y = shuffle(x, y, random_state=8)\n  y = to_categorical(y, num_classes=NUM_CLASSES)\n  train_x, valid_x, train_y, valid_y = train_test_split(x, y, test_size=FLAGS.valid_portion,\n                                                      stratify=y, random_state=8)\n  #----------  init\n  train_data = Dataset(train_x, train_y, 128, is_train=True)\n  #batch_size_ = int(batch_size * (3 / 4)) if num_gpus == 1 else batch_size\n  batch_size_ = int(batch_size * (3 / 4))\n\n  print('batch_size_', batch_size_)\n  train_mixup = Dataset(train_x, train_y, batch_size_, is_train=True, mix=False, augment=True)\n  valid_data = Dataset(valid_x, valid_y, batch_size, is_train=False)\n\n  # train step1, warm up model\n  model = create_model(\n    input_shape=(SIZE,SIZE,3), \n    n_out=NUM_CLASSES)\n  \n  for layer in model.layers:\n    layer.trainable = False\n\n  for i in range(-3,0):\n    model.layers[i].trainable = True\n\n  if num_gpus > 1:\n    smodel = model\n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(\n    loss='categorical_crossentropy',\n    optimizer=Adam(1e-3))\n\n  tb = TensorBoard(log_dir='./logs', histogram_freq=0,\n                          write_graph=True, write_images=False)\n\n  qwk = QWKEvaluation(validation_data=(valid_data, valid_y),\n                      batch_size=batch_size, interval=1)  \n\n  \n  model.fit_generator(\n    train_data,\n    validation_data=valid_data,\n    epochs=2,\n    workers=WORKERS, \n    use_multiprocessing=True,\n    verbose=1,\n    callbacks=[qwk])\n\n  # train step2, train all layers\n  checkpoint = ModelCheckpoint('../working/densenet_.h5', monitor='val_loss', verbose=1, \n                              save_best_only=True, mode='min', save_weights_only = True)\n  reduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \n                                    verbose=1, mode='auto', epsilon=0.0001)\n  early = EarlyStopping(monitor=\"val_loss\", \n                        mode=\"min\", \n                        patience=9)\n\n  csv_logger = CSVLogger(filename='../working/training_log.csv',\n                        separator=',',\n                        append=True)\n\n  if num_gpus > 1:\n    model = smodel\n\n  for layer in model.layers:\n    layer.trainable = True\n  callbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, qwk]\n\n  if num_gpus > 1:\n    smodel = model \n    model = keras.utils.multi_gpu_model(model, num_gpus, cpu_merge=False)\n\n  model.compile(loss='categorical_crossentropy',\n                # loss=kappa_loss,\n                optimizer=Adam(lr=1e-4))\n\n  model.fit_generator(\n    train_mixup,\n    validation_data=valid_data,\n    epochs=epochs,\n    verbose=1,\n    workers=1, \n    use_multiprocessing=False,\n    callbacks=callbacks_list,\n    initial_epoch=2)\n\nif __name__ == '__main__':\n  flags.DEFINE_integer('batch_size', 32, '')\n  flags.DEFINE_float('valid_portion', 0.1, '')\n\n  absl_app.run(main) \n"
  },
  {
    "path": "projects/kaggle/blindness/other/APTOS 2019_ Keras Baseline.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Credits and references : The complete code is taken from [this kernel](https://www.kaggle.com/mathormad/aptos-resnet50-baseline).Changed the model,added some augmentations and retrained it.Thanks to the [Author of the kernel](https://www.kaggle.com/mathormad).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"#### BEFORE YOU FORK, PLEASE SUPPORT AND UPVOTE THE CURRENT KERNEL AND ORIGINAL [RESNET50 STARTER KERNEL](https://www.kaggle.com/mathormad/aptos-resnet50-baseline)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Introduction:\\n\",\n    \"## What is diabetic retinopathy?\\n\",\n    \"#### Diabetic retinopathy is the most common form of diabetic eye disease. Diabetic retinopathy usually only affects people who have had diabetes (diagnosed or undiagnosed) for a significant number of years.\\n\",\n    \"#### Retinopathy can affect all diabetics and becomes particularly dangerous, increasing the risk of blindness, if it is left untreated.\\n\",\n    \"#### The risk of developing diabetic retinopathy is known to increase with age as well with less well controlled blood sugar and blood pressure level.\\n\",\n    \"#### According to the NHS, 1,280 new cases of blindness caused by diabetic retinopathy are reported each year in England alone, while a further 4,200 people in the country are thought to be at risk of retinopathy-related vision loss.\\n\",\n    \"#### All people with diabetes should have a dilated eye examination at least once every year to check for diabetic retinopathy.\\n\",\n    \"![](https://www.aoa.org/Images/public/Diabetic_Retinopathy.jpg)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"_cell_guid\": \"b1076dfc-b9ad-4769-8c92-a6c4dae69d19\",\n    \"_uuid\": \"8f2839f25d086af736a60e9eeb907d3b93b6e0e5\"\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"['train_images', 'test_images', 'sample_submission.csv', 'test.csv', 'train.csv', 'aptos2019-blindness-detection', 'mobilenet-v2-keras-weights', 'ResNet-50', 'resnet50', 'tfrecords', 'model', 'densenet-keras']\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# This Python 3 environment comes with many helpful analytics libraries installed\\n\",\n    \"# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\\n\",\n    \"# For example, here's several helpful packages to load in \\n\",\n    \"\\n\",\n    \"import numpy as np # linear algebra\\n\",\n    \"import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\\n\",\n    \"\\n\",\n    \"# Input data files are available in the \\\"../input/\\\" directory.\\n\",\n    \"# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\\n\",\n    \"\\n\",\n    \"import os\\n\",\n    \"print(os.listdir(\\\"../input\\\"))\\n\",\n    \"\\n\",\n    \"# Any results you write to the current directory are saved as output.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Using TensorFlow backend.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from keras.preprocessing.image import ImageDataGenerator\\n\",\n    \"from keras.models import Sequential, load_model\\n\",\n    \"from keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\\n\",\n    \"                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\\n\",\n    \"from keras.callbacks import ModelCheckpoint\\n\",\n    \"from keras import metrics\\n\",\n    \"from keras.optimizers import Adam \\n\",\n    \"from keras import backend as K\\n\",\n    \"import keras\\n\",\n    \"from keras.models import Model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {\n    \"_cell_guid\": \"79c7e3d0-c299-4dcb-8224-4455121ee9b0\",\n    \"_uuid\": \"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import skimage.io\\n\",\n    \"from skimage.transform import resize\\n\",\n    \"from imgaug import augmenters as iaa\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import PIL\\n\",\n    \"from PIL import Image, ImageOps\\n\",\n    \"import cv2\\n\",\n    \"from sklearn.utils import class_weight, shuffle\\n\",\n    \"from keras.losses import binary_crossentropy, categorical_crossentropy\\n\",\n    \"#from keras.applications.resnet50 import preprocess_input\\n\",\n    \"from keras.applications.densenet import DenseNet121,DenseNet169\\n\",\n    \"import keras.backend as K\\n\",\n    \"import tensorflow as tf\\n\",\n    \"from sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\\n\",\n    \"from keras.utils import Sequence\\n\",\n    \"from keras.utils import to_categorical\\n\",\n    \"from sklearn.model_selection import train_test_split\\n\",\n    \"import imgaug as ia\\n\",\n    \"\\n\",\n    \"WORKERS = 2\\n\",\n    \"CHANNEL = 3\\n\",\n    \"\\n\",\n    \"import warnings\\n\",\n    \"warnings.filterwarnings(\\\"ignore\\\")\\n\",\n    \"SIZE = 300\\n\",\n    \"NUM_CLASSES = 5\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"df_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\\n\",\n    \"df_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Visualising some sample pictures of different classes.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1440x864 with 12 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"def display_samples(df, columns=4, rows=3):\\n\",\n    \"    fig=plt.figure(figsize=(5*columns, 4*rows))\\n\",\n    \"\\n\",\n    \"    for i in range(columns*rows):\\n\",\n    \"        image_path = df.loc[i,'id_code']\\n\",\n    \"        image_id = df.loc[i,'diagnosis']\\n\",\n    \"        img = cv2.imread(f'../input/aptos2019-blindness-detection/train_images/{image_path}.png')\\n\",\n    \"        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\\n\",\n    \"        \\n\",\n    \"        fig.add_subplot(rows, columns, i+1)\\n\",\n    \"        plt.title(image_id)\\n\",\n    \"        plt.imshow(img)\\n\",\n    \"    \\n\",\n    \"    plt.tight_layout()\\n\",\n    \"\\n\",\n    \"display_samples(df_train)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.axes._subplots.AxesSubplot at 0x7f51e988bef0>\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAYEAAAD8CAYAAACRkhiPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAFaNJREFUeJzt3X+QXWd93/H3Jza4jJfYTky3iuRUZkYw4x+Jg3aMOynMqhAQhsHQMEQe19j8iKDgaTJlJpi0UyiMZzxtHDqYFCqwxnZRvHgwIMWxSx3HG5qZGrCIY9mAgwxikOpKBRE5Cx63It/+sUdwkVe798fuXeHn/Zq5o3Of85zzfM/xvfu558e9TlUhSWrTz612AZKk1WMISFLDDAFJapghIEkNMwQkqWGGgCQ1zBCQpIYZApLUMENAkhp26moXsJSzzz671q9fP9SyP/jBDzj99NOXt6BlYF2Dsa7BWNdgnol17d69+7tV9by+OlfVSf3YuHFjDeu+++4betmVZF2Dsa7BWNdgnol1AQ9Un39jPR0kSQ0zBCSpYYaAJDXMEJCkhhkCktQwQ0CSGmYISFLDDAFJapghIEkNO+l/NmIUew4c4epr/3Ts4+67/tVjH1OShuGRgCQ1bMkQSLI9yaEkD/e0fSrJg91jX5IHu/b1SZ7smfexnmU2JtmTZG+SDyfJymySJKlf/ZwOuhn4CHDrsYaq+q1j00luAI709H+sqi5aYD0fBX4b+CJwF7AZuHvwkiVJy2XJI4Gq+gJweKF53af5NwK3LbaOJGuAn6+q+7tfuLsVeN3g5UqSltOo1wReAhysqm/0tJ2b5K+S/EWSl3Rta4H9PX32d22SpFWU+Q/mS3RK1gN3VtUFx7V/FNhbVTd0z08DJqrqe0k2Ap8DzgdeAFxfVS/v+r0EeE9VveYE420FtgJMTk5unJmZGWrjDh0+wsEnh1p0JBeuPWPR+XNzc0xMTIypmv5Z12CsazDWNZhR6tq0adPuqprqp+/Qt4gmORX458DGY21V9RTwVDe9O8ljzAfAAWBdz+LrurYFVdU2YBvA1NRUTU9PD1XjjTt2csOe8d8Fu++K6UXnz87OMuw2rSTrGox1Dca6BjOuukY5HfRy4OtV9ePTPEmel+SUbvr5wAbgm1X1OPBEkku66whvAnaOMLYkaRn0c4vobcD/BF6YZH+St3aztvD0C8IvBR7qbhn9NPCOqjp2UfmdwCeAvcBjeGeQJK26Jc+VVNXlJ2i/eoG2O4A7TtD/AeCCheZJklaH3xiWpIYZApLUMENAkhpmCEhSwwwBSWqYISBJDTMEJKlhhoAkNcwQkKSGGQKS1DBDQJIaZghIUsMMAUlqmCEgSQ0zBCSpYYaAJDXMEJCkhhkCktQwQ0CSGmYISFLDlgyBJNuTHErycE/b+5McSPJg97i0Z957k+xN8miSV/a0b+7a9ia5dvk3RZI0qH6OBG4GNi/Q/qGquqh73AWQ5DxgC3B+t8x/TnJKklOAPwJeBZwHXN71lSStolOX6lBVX0iyvs/1XQbMVNVTwLeS7AUu7ubtrapvAiSZ6fp+deCKJUnLZpRrAtckeag7XXRW17YW+E5Pn/1d24naJUmrKFW1dKf5I4E7q+qC7vkk8F2ggA8Ca6rqLUk+AtxfVZ/s+t0E3N2tZnNVva1rvxJ4cVVdc4LxtgJbASYnJzfOzMwMtXGHDh/h4JNDLTqSC9eesej8ubk5JiYmxlRN/6xrMNY1GOsazCh1bdq0aXdVTfXTd8nTQQupqoPHppN8HLize3oAOKen67qujUXaF1r/NmAbwNTUVE1PTw9TJjfu2MkNe4baxJHsu2J60fmzs7MMu00ryboGY12Dsa7BjKuuoU4HJVnT8/T1wLE7h3YBW5KcluRcYAPwJeDLwIYk5yZ5NvMXj3cNX7YkaTks+TE5yW3ANHB2kv3A+4DpJBcxfzpoH/B2gKp6JMntzF/wPQq8q6p+1K3nGuDzwCnA9qp6ZNm3RpI0kH7uDrp8geabFul/HXDdAu13AXcNVJ0kaUX5jWFJapghIEkNMwQkqWGGgCQ1zBCQpIYZApLUMENAkhpmCEhSwwwBSWqYISBJDTMEJKlhhoAkNcwQkKSGGQKS1DBDQJIaZghIUsMMAUlqmCEgSQ0zBCSpYYaAJDVsyRBIsj3JoSQP97T9xyRfT/JQks8mObNrX5/kySQPdo+P9SyzMcmeJHuTfDhJVmaTJEn96udI4GZg83Ft9wAXVNWvAH8DvLdn3mNVdVH3eEdP+0eB3wY2dI/j1ylJGrMlQ6CqvgAcPq7tv1fV0e7p/cC6xdaRZA3w81V1f1UVcCvwuuFKliQtl8z/TV6iU7IeuLOqLlhg3p8An6qqT3b9HmH+6OAJ4N9W1f9IMgVcX1Uv75Z5CfCeqnrNCcbbCmwFmJyc3DgzMzP4lgGHDh/h4JNDLTqSC9eesej8ubk5JiYmxlRN/6xrMNY1GOsazCh1bdq0aXdVTfXT99ShRugk+TfAUWBH1/Q48MtV9b0kG4HPJTl/0PVW1TZgG8DU1FRNT08PVd+NO3Zyw56RNnEo+66YXnT+7Owsw27TSrKuwVjXYKxrMOOqa+i/kEmuBl4DvKw7xUNVPQU81U3vTvIY8ALgAD99ymhd1yZJWkVD3SKaZDPwe8Brq+qHPe3PS3JKN/185i8Af7OqHgeeSHJJd1fQm4CdI1cvSRrJkkcCSW4DpoGzk+wH3sf83UCnAfd0d3re390J9FLgA0n+H/D3wDuq6thF5Xcyf6fRc4C7u4ckaRUtGQJVdfkCzTedoO8dwB0nmPcA8LQLy5Kk1eM3hiWpYYaAJDXMEJCkhhkCktQwQ0CSGmYISFLDDAFJapghIEkNMwQkqWGGgCQ1zBCQpIYZApLUMENAkhpmCEhSwwwBSWqYISBJDTMEJKlhhoAkNcwQkKSG9RUCSbYnOZTk4Z62X0hyT5JvdP+e1bUnyYeT7E3yUJIX9SxzVdf/G0muWv7NkSQNot8jgZuBzce1XQvcW1UbgHu75wCvAjZ0j63AR2E+NID3AS8GLgbedyw4JEmro68QqKovAIePa74MuKWbvgV4XU/7rTXvfuDMJGuAVwL3VNXhqvo+cA9PDxZJ0hiNck1gsqoe76b/NzDZTa8FvtPTb3/XdqJ2SdIqOXU5VlJVlaSWY10ASbYyfyqJyclJZmdnh1rP5HPg3RceXa6y+rZUvXNzc0Nv00qyrsEcOnyEG3fsHPu4F649Y9H5J+v+sq7BjKuuUULgYJI1VfV4d7rnUNd+ADinp9+6ru0AMH1c++xCK66qbcA2gKmpqZqenl6o25Ju3LGTG/YsS84NZN8V04vOn52dZdhtWknWNRhfX4OxrsGMq65RTgftAo7d4XMVsLOn/U3dXUKXAEe600afB16R5KzugvArujZJ0irp62NMktuY/xR/dpL9zN/lcz1we5K3At8G3th1vwu4FNgL/BB4M0BVHU7yQeDLXb8PVNXxF5slSWPUVwhU1eUnmPWyBfoW8K4TrGc7sL3v6iRJK8pvDEtSwwwBSWqYISBJDTMEJKlhhoAkNcwQkKSGGQKS1DBDQJIaZghIUsMMAUlqmCEgSQ0zBCSpYYaAJDXMEJCkhhkCktQwQ0CSGmYISFLDDAFJapghIEkNMwQkqWFDh0CSFyZ5sOfxRJLfTfL+JAd62i/tWea9SfYmeTTJK5dnEyRJwzp12AWr6lHgIoAkpwAHgM8CbwY+VFV/0Ns/yXnAFuB84JeAP0vygqr60bA1SJJGs1yng14GPFZV316kz2XATFU9VVXfAvYCFy/T+JKkISxXCGwBbut5fk2Sh5JsT3JW17YW+E5Pn/1dmyRplaSqRltB8mzgfwHnV9XBJJPAd4ECPgisqaq3JPkIcH9VfbJb7ibg7qr69ALr3ApsBZicnNw4MzMzVG2HDh/h4JNDLTqSC9eesej8ubk5JiYmxlRN/6xrML6+BmNdgxmlrk2bNu2uqql++g59TaDHq4CvVNVBgGP/AiT5OHBn9/QAcE7Pcuu6tqepqm3ANoCpqamanp4eqrAbd+zkhj3LsYmD2XfF9KLzZ2dnGXabVpJ1DcbX12CsazDjqms5TgddTs+poCRreua9Hni4m94FbElyWpJzgQ3Al5ZhfEnSkEb6GJPkdOA3gLf3NP+HJBcxfzpo37F5VfVIktuBrwJHgXd5Z5Akra6RQqCqfgD84nFtVy7S/zrgulHGlCQtH78xLEkNMwQkqWGGgCQ1zBCQpIYZApLUMENAkhpmCEhSwwwBSWqYISBJDTMEJKlhhoAkNcwQkKSGGQKS1DBDQJIaZghIUsMMAUlqmCEgSQ0zBCSpYYaAJDXMEJCkho0cAkn2JdmT5MEkD3Rtv5DkniTf6P49q2tPkg8n2ZvkoSQvGnV8SdLwlutIYFNVXVRVU93za4F7q2oDcG/3HOBVwIbusRX46DKNL0kawkqdDroMuKWbvgV4XU/7rTXvfuDMJGtWqAZJ0hJSVaOtIPkW8H2ggP9SVduS/G1VndnND/D9qjozyZ3A9VX1l928e4H3VNUDx61zK/NHCkxOTm6cmZkZqrZDh49w8Mlht2x4F649Y9H5c3NzTExMjKma/lnXYHx9Dca6BjNKXZs2bdrdc2ZmUacONcJP+6dVdSDJPwTuSfL13plVVUkGSpqq2gZsA5iamqrp6emhCrtxx05u2LMcmziYfVdMLzp/dnaWYbdpJVnXYHx9Dca6BjOuukY+HVRVB7p/DwGfBS4GDh47zdP9e6jrfgA4p2fxdV2bJGkVjBQCSU5P8txj08ArgIeBXcBVXbergJ3d9C7gTd1dQpcAR6rq8VFqkCQNb9Rj2Ungs/On/TkV+OOq+m9JvgzcnuStwLeBN3b97wIuBfYCPwTePOL4kqQRjBQCVfVN4FcXaP8e8LIF2gt41yhjSpKWj98YlqSGGQKS1DBDQJIaZghIUsMMAUlqmCEgSQ0zBCSpYYaAJDXMEJCkho3/JxC1otZf+6dDL/vuC49y9ZDL77v+1UOPK2n1eCQgSQ0zBCSpYYaAJDXMEJCkhhkCktQwQ0CSGmYISFLDDAFJaphfFpOkRYzyBcxR3Lz59LGMM/SRQJJzktyX5KtJHknyO137+5McSPJg97i0Z5n3Jtmb5NEkr1yODZAkDW+UI4GjwLur6itJngvsTnJPN+9DVfUHvZ2TnAdsAc4Hfgn4syQvqKofjVCDJGkEQx8JVNXjVfWVbvrvgK8BaxdZ5DJgpqqeqqpvAXuBi4cdX5I0umW5MJxkPfBrwBe7pmuSPJRke5Kzura1wHd6FtvP4qEhSVphqarRVpBMAH8BXFdVn0kyCXwXKOCDwJqqekuSjwD3V9Unu+VuAu6uqk8vsM6twFaAycnJjTMzM0PVdujwEQ4+OdSiI7lw7RmLzp+bm2NiYmJFxt5z4MjQy04+h6H311LbPIqV3F+jaPH1NYqf1bpGeU+N4twzThl6f23atGl3VU3103eku4OSPAu4A9hRVZ8BqKqDPfM/DtzZPT0AnNOz+Lqu7WmqahuwDWBqaqqmp6eHqu/GHTu5Yc/4b4Dad8X0ovNnZ2cZdpuWMuxPQcP8T0kPu7+W2uZRrOT+GkWLr69R/KzWNcp7ahQ3bz59LPtrlLuDAtwEfK2q/rCnfU1Pt9cDD3fTu4AtSU5Lci6wAfjSsONLkkY3yseYXweuBPYkebBr+33g8iQXMX86aB/wdoCqeiTJ7cBXmb+z6F3eGSRJq2voEKiqvwSywKy7FlnmOuC6YceUJC0vfzZCkhpmCEhSw/ztIEl9G+V3dN594dGh77TZd/2rhx5Xi/NIQJIaZghIUsMMAUlqmCEgSQ0zBCSpYYaAJDXMEJCkhhkCktQwQ0CSGmYISFLDDAFJapghIEkNMwQkqWGGgCQ1zBCQpIYZApLUMENAkho29hBIsjnJo0n2Jrl23ONLkn5irCGQ5BTgj4BXAecBlyc5b5w1SJJ+YtxHAhcDe6vqm1X1f4EZ4LIx1yBJ6ow7BNYC3+l5vr9rkyStglTV+AZL3gBsrqq3dc+vBF5cVdcc128rsLV7+kLg0SGHPBv47pDLriTrGox1Dca6BvNMrOsfV9Xz+ul46pADDOsAcE7P83Vd20+pqm3AtlEHS/JAVU2Nup7lZl2Dsa7BWNdgWq9r3KeDvgxsSHJukmcDW4BdY65BktQZ65FAVR1Ncg3weeAUYHtVPTLOGiRJPzHu00FU1V3AXWMabuRTSivEugZjXYOxrsE0XddYLwxLkk4u/myEJDXsGRECS/0URZLTknyqm//FJOtPkrquTvJ/kjzYPd42hpq2JzmU5OETzE+SD3c1P5TkRStdU591TSc50rOv/t2Y6jonyX1JvprkkSS/s0Cfse+zPusa+z5L8g+SfCnJX3d1/fsF+oz9/dhnXWN/P/aMfUqSv0py5wLzVnZ/VdXP9IP5C8yPAc8Hng38NXDecX3eCXysm94CfOokqetq4CNj3l8vBV4EPHyC+ZcCdwMBLgG+eJLUNQ3cuQqvrzXAi7rp5wJ/s8B/x7Hvsz7rGvs+6/bBRDf9LOCLwCXH9VmN92M/dY39/dgz9r8G/nih/14rvb+eCUcC/fwUxWXALd30p4GXJclJUNfYVdUXgMOLdLkMuLXm3Q+cmWTNSVDXqqiqx6vqK9303wFf4+nfch/7PuuzrrHr9sFc9/RZ3eP4C49jfz/2WdeqSLIOeDXwiRN0WdH99UwIgX5+iuLHfarqKHAE+MWToC6A3+xOIXw6yTkLzB+3k/mnPf5Jdzh/d5Lzxz14dxj+a8x/iuy1qvtskbpgFfZZd2rjQeAQcE9VnXB/jfH92E9dsDrvx/8E/B7w9yeYv6L765kQAj/L/gRYX1W/AtzDT9JeT/cV5r8K/6vAjcDnxjl4kgngDuB3q+qJcY69mCXqWpV9VlU/qqqLmP9FgIuTXDCOcZfSR11jfz8meQ1wqKp2r/RYJ/JMCIF+forix32SnAqcAXxvteuqqu9V1VPd008AG1e4pn709dMe41ZVTxw7nK/575o8K8nZ4xg7ybOY/0O7o6o+s0CXVdlnS9W1mvusG/NvgfuAzcfNWo3345J1rdL78deB1ybZx/wp43+W5JPH9VnR/fVMCIF+fopiF3BVN/0G4M+ru8qymnUdd974tcyf111tu4A3dXe8XAIcqarHV7uoJP/o2HnQJBcz/9pd8T8c3Zg3AV+rqj88Qbex77N+6lqNfZbkeUnO7KafA/wG8PXjuo39/dhPXavxfqyq91bVuqpaz/zfiD+vqn9xXLcV3V9j/8bwcqsT/BRFkg8AD1TVLubfLP81yV7mLz5uOUnq+ldJXgsc7eq6eqXrSnIb83eNnJ1kP/A+5i+SUVUfY/7b3JcCe4EfAm9e6Zr6rOsNwL9MchR4EtgyhiCH+U9qVwJ7uvPJAL8P/HJPbauxz/qpazX22Rrglsz/D6R+Dri9qu5c7fdjn3WN/f14IuPcX35jWJIa9kw4HSRJGpIhIEkNMwQkqWGGgCQ1zBCQpIYZApLUMENAkhpmCEhSw/4/I+Oh/hHo318AAAAASUVORK5CYII=\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"x = df_train['id_code']\\n\",\n    \"y = df_train['diagnosis']\\n\",\n    \"\\n\",\n    \"x, y = shuffle(x, y, random_state=8)\\n\",\n    \"y.hist()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"(3112,)\\n\",\n      \"(3112, 5)\\n\",\n      \"(550,)\\n\",\n      \"(550, 5)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"y = to_categorical(y, num_classes=NUM_CLASSES)\\n\",\n    \"train_x, valid_x, train_y, valid_y = train_test_split(x, y, test_size=0.15,\\n\",\n    \"                                                      stratify=y, random_state=8)\\n\",\n    \"print(train_x.shape)\\n\",\n    \"print(train_y.shape)\\n\",\n    \"print(valid_x.shape)\\n\",\n    \"print(valid_y.shape)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sometimes = lambda aug: iaa.Sometimes(0.5, aug)\\n\",\n    \"seq = iaa.Sequential(\\n\",\n    \"        [\\n\",\n    \"            # apply the following augmenters to most images\\n\",\n    \"            iaa.Fliplr(0.5), # horizontally flip 50% of all images\\n\",\n    \"            iaa.Flipud(0.2), # vertically flip 20% of all images\\n\",\n    \"            sometimes(iaa.Affine(\\n\",\n    \"                scale={\\\"x\\\": (0.9, 1.1), \\\"y\\\": (0.9, 1.1)}, # scale images to 80-120% of their size, individually per axis\\n\",\n    \"                translate_percent={\\\"x\\\": (-0.1, 0.1), \\\"y\\\": (-0.1, 0.1)}, # translate by -20 to +20 percent (per axis)\\n\",\n    \"                rotate=(-10, 10), # rotate by -45 to +45 degrees\\n\",\n    \"                shear=(-5, 5), # shear by -16 to +16 degrees\\n\",\n    \"                order=[0, 1], # use nearest neighbour or bilinear interpolation (fast)\\n\",\n    \"                cval=(0, 255), # if mode is constant, use a cval between 0 and 255\\n\",\n    \"                mode=ia.ALL # use any of scikit-image's warping modes (see 2nd image from the top for examples)\\n\",\n    \"            )),\\n\",\n    \"            # execute 0 to 5 of the following (less important) augmenters per image\\n\",\n    \"            # don't execute all of them, as that would often be way too strong\\n\",\n    \"            iaa.SomeOf((0, 5),\\n\",\n    \"                [\\n\",\n    \"                    sometimes(iaa.Superpixels(p_replace=(0, 1.0), n_segments=(20, 200))), # convert images into their superpixel representation\\n\",\n    \"                    iaa.OneOf([\\n\",\n    \"                        iaa.GaussianBlur((0, 1.0)), # blur images with a sigma between 0 and 3.0\\n\",\n    \"                        iaa.AverageBlur(k=(3, 5)), # blur image using local means with kernel sizes between 2 and 7\\n\",\n    \"                        iaa.MedianBlur(k=(3, 5)), # blur image using local medians with kernel sizes between 2 and 7\\n\",\n    \"                    ]),\\n\",\n    \"                    iaa.Sharpen(alpha=(0, 1.0), lightness=(0.9, 1.1)), # sharpen images\\n\",\n    \"                    iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)), # emboss images\\n\",\n    \"                    # search either for all edges or for directed edges,\\n\",\n    \"                    # blend the result with the original image using a blobby mask\\n\",\n    \"                    iaa.SimplexNoiseAlpha(iaa.OneOf([\\n\",\n    \"                        iaa.EdgeDetect(alpha=(0.5, 1.0)),\\n\",\n    \"                        iaa.DirectedEdgeDetect(alpha=(0.5, 1.0), direction=(0.0, 1.0)),\\n\",\n    \"                    ])),\\n\",\n    \"                    iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.01*255), per_channel=0.5), # add gaussian noise to images\\n\",\n    \"                    iaa.OneOf([\\n\",\n    \"                        iaa.Dropout((0.01, 0.05), per_channel=0.5), # randomly remove up to 10% of the pixels\\n\",\n    \"                        iaa.CoarseDropout((0.01, 0.03), size_percent=(0.01, 0.02), per_channel=0.2),\\n\",\n    \"                    ]),\\n\",\n    \"                    iaa.Invert(0.01, per_channel=True), # invert color channels\\n\",\n    \"                    iaa.Add((-2, 2), per_channel=0.5), # change brightness of images (by -10 to 10 of original value)\\n\",\n    \"                    iaa.AddToHueAndSaturation((-1, 1)), # change hue and saturation\\n\",\n    \"                    # either change the brightness of the whole image (sometimes\\n\",\n    \"                    # per channel) or change the brightness of subareas\\n\",\n    \"                    iaa.OneOf([\\n\",\n    \"                        iaa.Multiply((0.9, 1.1), per_channel=0.5),\\n\",\n    \"                        iaa.FrequencyNoiseAlpha(\\n\",\n    \"                            exponent=(-1, 0),\\n\",\n    \"                            first=iaa.Multiply((0.9, 1.1), per_channel=True),\\n\",\n    \"                            second=iaa.ContrastNormalization((0.9, 1.1))\\n\",\n    \"                        )\\n\",\n    \"                    ]),\\n\",\n    \"                    sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)), # move pixels locally around (with random strengths)\\n\",\n    \"                    sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05))), # sometimes move parts of the image around\\n\",\n    \"                    sometimes(iaa.PerspectiveTransform(scale=(0.01, 0.1)))\\n\",\n    \"                ],\\n\",\n    \"                random_order=True\\n\",\n    \"            )\\n\",\n    \"        ],\\n\",\n    \"        random_order=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class My_Generator(Sequence):\\n\",\n    \"\\n\",\n    \"    def __init__(self, image_filenames, labels,\\n\",\n    \"                 batch_size, is_train=True,\\n\",\n    \"                 mix=False, augment=False):\\n\",\n    \"        self.image_filenames, self.labels = image_filenames, labels\\n\",\n    \"        self.batch_size = batch_size\\n\",\n    \"        self.is_train = is_train\\n\",\n    \"        self.is_augment = augment\\n\",\n    \"        if(self.is_train):\\n\",\n    \"            self.on_epoch_end()\\n\",\n    \"        self.is_mix = mix\\n\",\n    \"\\n\",\n    \"    def __len__(self):\\n\",\n    \"        return int(np.ceil(len(self.image_filenames) / float(self.batch_size)))\\n\",\n    \"\\n\",\n    \"    def __getitem__(self, idx):\\n\",\n    \"        batch_x = self.image_filenames[idx * self.batch_size:(idx + 1) * self.batch_size]\\n\",\n    \"        batch_y = self.labels[idx * self.batch_size:(idx + 1) * self.batch_size]\\n\",\n    \"\\n\",\n    \"        if(self.is_train):\\n\",\n    \"            return self.train_generate(batch_x, batch_y)\\n\",\n    \"        return self.valid_generate(batch_x, batch_y)\\n\",\n    \"\\n\",\n    \"    def on_epoch_end(self):\\n\",\n    \"        if(self.is_train):\\n\",\n    \"            self.image_filenames, self.labels = shuffle(self.image_filenames, self.labels)\\n\",\n    \"        else:\\n\",\n    \"            pass\\n\",\n    \"    \\n\",\n    \"    def mix_up(self, x, y):\\n\",\n    \"        lam = np.random.beta(0.2, 0.4)\\n\",\n    \"        ori_index = np.arange(int(len(x)))\\n\",\n    \"        index_array = np.arange(int(len(x)))\\n\",\n    \"        np.random.shuffle(index_array)        \\n\",\n    \"        \\n\",\n    \"        mixed_x = lam * x[ori_index] + (1 - lam) * x[index_array]\\n\",\n    \"        mixed_y = lam * y[ori_index] + (1 - lam) * y[index_array]\\n\",\n    \"        \\n\",\n    \"        return mixed_x, mixed_y\\n\",\n    \"\\n\",\n    \"    def train_generate(self, batch_x, batch_y):\\n\",\n    \"        batch_images = []\\n\",\n    \"        for (sample, label) in zip(batch_x, batch_y):\\n\",\n    \"            img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\\n\",\n    \"            img = cv2.resize(img, (SIZE, SIZE))\\n\",\n    \"            if(self.is_augment):\\n\",\n    \"                img = seq.augment_image(img)\\n\",\n    \"            batch_images.append(img)\\n\",\n    \"        batch_images = np.array(batch_images, np.float32) / 255\\n\",\n    \"        batch_y = np.array(batch_y, np.float32)\\n\",\n    \"        if(self.is_mix):\\n\",\n    \"            batch_images, batch_y = self.mix_up(batch_images, batch_y)\\n\",\n    \"        return batch_images, batch_y\\n\",\n    \"\\n\",\n    \"    def valid_generate(self, batch_x, batch_y):\\n\",\n    \"        batch_images = []\\n\",\n    \"        for (sample, label) in zip(batch_x, batch_y):\\n\",\n    \"            img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\\n\",\n    \"            img = cv2.resize(img, (SIZE, SIZE))\\n\",\n    \"            batch_images.append(img)\\n\",\n    \"        batch_images = np.array(batch_images, np.float32) / 255\\n\",\n    \"        batch_y = np.array(batch_y, np.float32)\\n\",\n    \"        return batch_images, batch_y\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def create_model(input_shape, n_out):\\n\",\n    \"    input_tensor = Input(shape=input_shape)\\n\",\n    \"    base_model = DenseNet121(include_top=False,\\n\",\n    \"                   weights=None,\\n\",\n    \"                   input_tensor=input_tensor)\\n\",\n    \"    base_model.load_weights(\\\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\\\")\\n\",\n    \"    x = GlobalAveragePooling2D()(base_model.output)\\n\",\n    \"    x = Dropout(0.5)(x)\\n\",\n    \"    x = Dense(1024, activation='relu')(x)\\n\",\n    \"    x = Dropout(0.5)(x)\\n\",\n    \"    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\\n\",\n    \"    model = Model(input_tensor, final_output) \\n\",\n    \"    return model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"WARNING: Logging before flag parsing goes to stderr.\\n\",\n      \"W0721 18:26:42.491315 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:74: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:42.509601 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:517: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:42.516185 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:4138: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:42.543597 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:174: The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:42.544507 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:181: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:44.896511 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:1834: The name tf.nn.fused_batch_norm is deprecated. Please use tf.compat.v1.nn.fused_batch_norm instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:44.952250 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3976: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead.\\n\",\n      \"\\n\",\n      \"W0721 18:26:45.902692 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3980: The name tf.nn.avg_pool is deprecated. Please use tf.nn.avg_pool2d instead.\\n\",\n      \"\\n\",\n      \"W0721 18:27:00.256437 139993109382912 deprecation.py:506] From /home/gezi/py3env/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\\n\",\n      \"Instructions for updating:\\n\",\n      \"Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# create callbacks list\\n\",\n    \"from keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\\n\",\n    \"                             EarlyStopping, ReduceLROnPlateau,CSVLogger)\\n\",\n    \"\\n\",\n    \"epochs = 30; batch_size = 32\\n\",\n    \"checkpoint = ModelCheckpoint('../working/densenet_.h5', monitor='val_loss', verbose=1, \\n\",\n    \"                             save_best_only=True, mode='min', save_weights_only = True)\\n\",\n    \"reduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \\n\",\n    \"                                   verbose=1, mode='auto', epsilon=0.0001)\\n\",\n    \"early = EarlyStopping(monitor=\\\"val_loss\\\", \\n\",\n    \"                      mode=\\\"min\\\", \\n\",\n    \"                      patience=9)\\n\",\n    \"\\n\",\n    \"csv_logger = CSVLogger(filename='../working/training_log.csv',\\n\",\n    \"                       separator=',',\\n\",\n    \"                       append=True)\\n\",\n    \"\\n\",\n    \"train_generator = My_Generator(train_x, train_y, 128, is_train=True)\\n\",\n    \"train_mixup = My_Generator(train_x, train_y, batch_size, is_train=True, mix=False, augment=True)\\n\",\n    \"valid_generator = My_Generator(valid_x, valid_y, batch_size, is_train=False)\\n\",\n    \"\\n\",\n    \"model = create_model(\\n\",\n    \"    input_shape=(SIZE,SIZE,3), \\n\",\n    \"    n_out=NUM_CLASSES)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"<keras.engine.training.Model object at 0x7f4dd74319b0>\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# reference link: https://www.kaggle.com/christofhenkel/weighted-kappa-loss-for-keras-tensorflow\\n\",\n    \"def kappa_loss(y_true, y_pred, y_pow=2, eps=1e-12, N=5, bsize=32, name='kappa'):\\n\",\n    \"    \\\"\\\"\\\"A continuous differentiable approximation of discrete kappa loss.\\n\",\n    \"        Args:\\n\",\n    \"            y_pred: 2D tensor or array, [batch_size, num_classes]\\n\",\n    \"            y_true: 2D tensor or array,[batch_size, num_classes]\\n\",\n    \"            y_pow: int,  e.g. y_pow=2\\n\",\n    \"            N: typically num_classes of the model\\n\",\n    \"            bsize: batch_size of the training or validation ops\\n\",\n    \"            eps: a float, prevents divide by zero\\n\",\n    \"            name: Optional scope/name for op_scope.\\n\",\n    \"        Returns:\\n\",\n    \"            A tensor with the kappa loss.\\\"\\\"\\\"\\n\",\n    \"\\n\",\n    \"    with tf.name_scope(name):\\n\",\n    \"        y_true = tf.to_float(y_true)\\n\",\n    \"        repeat_op = tf.to_float(tf.tile(tf.reshape(tf.range(0, N), [N, 1]), [1, N]))\\n\",\n    \"        repeat_op_sq = tf.square((repeat_op - tf.transpose(repeat_op)))\\n\",\n    \"        weights = repeat_op_sq / tf.to_float((N - 1) ** 2)\\n\",\n    \"    \\n\",\n    \"        pred_ = y_pred ** y_pow\\n\",\n    \"        try:\\n\",\n    \"            pred_norm = pred_ / (eps + tf.reshape(tf.reduce_sum(pred_, 1), [-1, 1]))\\n\",\n    \"        except Exception:\\n\",\n    \"            pred_norm = pred_ / (eps + tf.reshape(tf.reduce_sum(pred_, 1), [bsize, 1]))\\n\",\n    \"    \\n\",\n    \"        hist_rater_a = tf.reduce_sum(pred_norm, 0)\\n\",\n    \"        hist_rater_b = tf.reduce_sum(y_true, 0)\\n\",\n    \"    \\n\",\n    \"        conf_mat = tf.matmul(tf.transpose(pred_norm), y_true)\\n\",\n    \"    \\n\",\n    \"        nom = tf.reduce_sum(weights * conf_mat)\\n\",\n    \"        denom = tf.reduce_sum(weights * tf.matmul(\\n\",\n    \"            tf.reshape(hist_rater_a, [N, 1]), tf.reshape(hist_rater_b, [1, N])) /\\n\",\n    \"                              tf.to_float(bsize))\\n\",\n    \"    \\n\",\n    \"        return nom*0.5 / (denom + eps) + categorical_crossentropy(y_true, y_pred)*0.5\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from keras.callbacks import Callback\\n\",\n    \"class QWKEvaluation(Callback):\\n\",\n    \"    def __init__(self, validation_data=(), batch_size=64, interval=1):\\n\",\n    \"        super(Callback, self).__init__()\\n\",\n    \"\\n\",\n    \"        self.interval = interval\\n\",\n    \"        self.batch_size = batch_size\\n\",\n    \"        self.valid_generator, self.y_val = validation_data\\n\",\n    \"        self.history = []\\n\",\n    \"\\n\",\n    \"    def on_epoch_end(self, epoch, logs={}):\\n\",\n    \"        if epoch % self.interval == 0:\\n\",\n    \"            y_pred = self.model.predict_generator(generator=self.valid_generator,\\n\",\n    \"                                                  steps=np.ceil(float(len(self.y_val)) / float(self.batch_size)),\\n\",\n    \"                                                  workers=1, use_multiprocessing=False,\\n\",\n    \"                                                  verbose=1)\\n\",\n    \"            def flatten(y):\\n\",\n    \"                return np.argmax(y, axis=1).reshape(-1)\\n\",\n    \"            \\n\",\n    \"            score = cohen_kappa_score(flatten(self.y_val),\\n\",\n    \"                                      flatten(y_pred),\\n\",\n    \"                                      labels=[0,1,2,3,4],\\n\",\n    \"                                      weights='quadratic')\\n\",\n    \"            print(\\\"\\\\n epoch: %d - QWK_score: %.6f \\\\n\\\" % (epoch+1, score))\\n\",\n    \"            self.history.append(score)\\n\",\n    \"            if score >= max(self.history):\\n\",\n    \"                print('saving checkpoint: ', score)\\n\",\n    \"                self.model.save('../working/densenet_bestqwk.h5')\\n\",\n    \"\\n\",\n    \"qwk = QWKEvaluation(validation_data=(valid_generator, valid_y),\\n\",\n    \"                    batch_size=batch_size, interval=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"W0721 18:27:46.228304 139993109382912 deprecation_wrapper.py:119] From /home/gezi/py3env/lib/python3.6/site-packages/keras/optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\\n\",\n      \"\\n\",\n      \"W0721 18:27:46.374963 139993109382912 deprecation.py:323] From /home/gezi/py3env/lib/python3.6/site-packages/tensorflow/python/ops/math_grad.py:1250: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\\n\",\n      \"Instructions for updating:\\n\",\n      \"Use tf.where in 2.0, which has the same broadcast rule as np.where\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 1/2\\n\",\n      \"25/25 [==============================] - 89s 4s/step - loss: 1.5424\\n\",\n      \"18/18 [==============================] - 32s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 1 - QWK_score: 0.006788 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.006787894024453456\\n\",\n      \"Epoch 2/2\\n\",\n      \"25/25 [==============================] - 51s 2s/step - loss: 0.8708\\n\",\n      \"18/18 [==============================] - 32s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 2 - QWK_score: 0.134186 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.1341858202851799\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<keras.callbacks.History at 0x7f51e856c588>\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# warm up model\\n\",\n    \"for layer in model.layers:\\n\",\n    \"    layer.trainable = False\\n\",\n    \"\\n\",\n    \"for i in range(-3,0):\\n\",\n    \"    model.layers[i].trainable = True\\n\",\n    \"\\n\",\n    \"model.compile(\\n\",\n    \"    loss='categorical_crossentropy',\\n\",\n    \"    optimizer=Adam(1e-3))\\n\",\n    \"\\n\",\n    \"model.fit_generator(\\n\",\n    \"    train_generator,\\n\",\n    \"    steps_per_epoch=np.ceil(float(len(train_y)) / float(128)),\\n\",\n    \"    epochs=2,\\n\",\n    \"    workers=WORKERS, use_multiprocessing=True,\\n\",\n    \"    verbose=1,\\n\",\n    \"    callbacks=[qwk])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"scrolled\": true\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Epoch 1/30\\n\",\n      \"130/130 [==============================] - 250s 2s/step - loss: 0.8822 - val_loss: 0.5759\\n\",\n      \"\\n\",\n      \"Epoch 00001: val_loss improved from inf to 0.57595, saving model to ../working/densenet_.h5\\n\",\n      \"18/18 [==============================] - 31s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 1 - QWK_score: 0.872207 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.8722066723607128\\n\",\n      \"Epoch 2/30\\n\",\n      \"130/130 [==============================] - 227s 2s/step - loss: 0.7148 - val_loss: 0.5361\\n\",\n      \"\\n\",\n      \"Epoch 00002: val_loss improved from 0.57595 to 0.53611, saving model to ../working/densenet_.h5\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 2 - QWK_score: 0.865784 \\n\",\n      \"\\n\",\n      \"Epoch 3/30\\n\",\n      \"130/130 [==============================] - 233s 2s/step - loss: 0.6640 - val_loss: 0.5616\\n\",\n      \"\\n\",\n      \"Epoch 00003: val_loss did not improve from 0.53611\\n\",\n      \"18/18 [==============================] - 31s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 3 - QWK_score: 0.886918 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.8869182477817812\\n\",\n      \"Epoch 4/30\\n\",\n      \"130/130 [==============================] - 238s 2s/step - loss: 0.6400 - val_loss: 0.4575\\n\",\n      \"\\n\",\n      \"Epoch 00004: val_loss improved from 0.53611 to 0.45754, saving model to ../working/densenet_.h5\\n\",\n      \"18/18 [==============================] - 31s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 4 - QWK_score: 0.887315 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.8873145139801656\\n\",\n      \"Epoch 5/30\\n\",\n      \"130/130 [==============================] - 222s 2s/step - loss: 0.5950 - val_loss: 0.4591\\n\",\n      \"\\n\",\n      \"Epoch 00005: val_loss did not improve from 0.45754\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 5 - QWK_score: 0.904261 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.9042614532676219\\n\",\n      \"Epoch 6/30\\n\",\n      \"130/130 [==============================] - 225s 2s/step - loss: 0.5742 - val_loss: 0.4748\\n\",\n      \"\\n\",\n      \"Epoch 00006: val_loss did not improve from 0.45754\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 6 - QWK_score: 0.874059 \\n\",\n      \"\\n\",\n      \"Epoch 7/30\\n\",\n      \"130/130 [==============================] - 234s 2s/step - loss: 0.5522 - val_loss: 0.5848\\n\",\n      \"\\n\",\n      \"Epoch 00007: val_loss did not improve from 0.45754\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 7 - QWK_score: 0.873151 \\n\",\n      \"\\n\",\n      \"Epoch 8/30\\n\",\n      \"130/130 [==============================] - 240s 2s/step - loss: 0.5699 - val_loss: 0.4755\\n\",\n      \"\\n\",\n      \"Epoch 00008: val_loss did not improve from 0.45754\\n\",\n      \"\\n\",\n      \"Epoch 00008: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 8 - QWK_score: 0.877792 \\n\",\n      \"\\n\",\n      \"Epoch 9/30\\n\",\n      \"130/130 [==============================] - 223s 2s/step - loss: 0.5226 - val_loss: 0.4735\\n\",\n      \"\\n\",\n      \"Epoch 00009: val_loss did not improve from 0.45754\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 9 - QWK_score: 0.901197 \\n\",\n      \"\\n\",\n      \"Epoch 10/30\\n\",\n      \"130/130 [==============================] - 230s 2s/step - loss: 0.4991 - val_loss: 0.4175\\n\",\n      \"\\n\",\n      \"Epoch 00010: val_loss improved from 0.45754 to 0.41751, saving model to ../working/densenet_.h5\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 10 - QWK_score: 0.904162 \\n\",\n      \"\\n\",\n      \"Epoch 11/30\\n\",\n      \"130/130 [==============================] - 236s 2s/step - loss: 0.4908 - val_loss: 0.4513\\n\",\n      \"\\n\",\n      \"Epoch 00011: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 11 - QWK_score: 0.894103 \\n\",\n      \"\\n\",\n      \"Epoch 12/30\\n\",\n      \"130/130 [==============================] - 226s 2s/step - loss: 0.4669 - val_loss: 0.4435\\n\",\n      \"\\n\",\n      \"Epoch 00012: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 12 - QWK_score: 0.903984 \\n\",\n      \"\\n\",\n      \"Epoch 13/30\\n\",\n      \"130/130 [==============================] - 225s 2s/step - loss: 0.4810 - val_loss: 0.4670\\n\",\n      \"\\n\",\n      \"Epoch 00013: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 13 - QWK_score: 0.893420 \\n\",\n      \"\\n\",\n      \"Epoch 14/30\\n\",\n      \"130/130 [==============================] - 232s 2s/step - loss: 0.4624 - val_loss: 0.4259\\n\",\n      \"\\n\",\n      \"Epoch 00014: val_loss did not improve from 0.41751\\n\",\n      \"\\n\",\n      \"Epoch 00014: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 14 - QWK_score: 0.907608 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.9076076812437555\\n\",\n      \"Epoch 15/30\\n\",\n      \"130/130 [==============================] - 239s 2s/step - loss: 0.4477 - val_loss: 0.4468\\n\",\n      \"\\n\",\n      \"Epoch 00015: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 15 - QWK_score: 0.907599 \\n\",\n      \"\\n\",\n      \"Epoch 16/30\\n\",\n      \"130/130 [==============================] - 223s 2s/step - loss: 0.4313 - val_loss: 0.4665\\n\",\n      \"\\n\",\n      \"Epoch 00016: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 16 - QWK_score: 0.906826 \\n\",\n      \"\\n\",\n      \"Epoch 17/30\\n\",\n      \"130/130 [==============================] - 226s 2s/step - loss: 0.4352 - val_loss: 0.4482\\n\",\n      \"\\n\",\n      \"Epoch 00017: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 31s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 17 - QWK_score: 0.910783 \\n\",\n      \"\\n\",\n      \"saving checkpoint:  0.9107830812279493\\n\",\n      \"Epoch 18/30\\n\",\n      \"130/130 [==============================] - 232s 2s/step - loss: 0.4232 - val_loss: 0.4211\\n\",\n      \"\\n\",\n      \"Epoch 00018: val_loss did not improve from 0.41751\\n\",\n      \"\\n\",\n      \"Epoch 00018: ReduceLROnPlateau reducing learning rate to 1.249999968422344e-05.\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 18 - QWK_score: 0.908851 \\n\",\n      \"\\n\",\n      \"Epoch 19/30\\n\",\n      \"130/130 [==============================] - 225s 2s/step - loss: 0.3980 - val_loss: 0.4202\\n\",\n      \"\\n\",\n      \"Epoch 00019: val_loss did not improve from 0.41751\\n\",\n      \"18/18 [==============================] - 30s 2s/step\\n\",\n      \"\\n\",\n      \" epoch: 19 - QWK_score: 0.898774 \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<keras.callbacks.History at 0x7f4d74dc9710>\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"train_mixup = My_Generator(train_x, train_y, 24, is_train=True, mix=False, augment=True)\\n\",\n    \"# train all layers\\n\",\n    \"for layer in model.layers:\\n\",\n    \"    layer.trainable = True\\n\",\n    \"callbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, qwk]\\n\",\n    \"model.compile(loss='categorical_crossentropy',\\n\",\n    \"            # loss=kappa_loss,\\n\",\n    \"            optimizer=Adam(lr=1e-4))\\n\",\n    \"model.fit_generator(\\n\",\n    \"    train_mixup,\\n\",\n    \"    steps_per_epoch=np.ceil(float(len(train_x)) / float(batch_size)),\\n\",\n    \"    validation_data=valid_generator,\\n\",\n    \"    validation_steps=np.ceil(float(len(valid_x)) / float(batch_size)),\\n\",\n    \"    epochs=epochs,\\n\",\n    \"    verbose=1,\\n\",\n    \"    workers=1, use_multiprocessing=False,\\n\",\n    \"    callbacks=callbacks_list)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"submit = pd.read_csv('../input/aptos2019-blindness-detection/sample_submission.csv')\\n\",\n    \"model.load_weights('../working/densenet_bestqwk.h5')\\n\",\n    \"predicted = []\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# reference:https://www.kaggle.com/CVxTz/cnn-starter-nasnet-mobile-0-9709-lb \\n\",\n    \"for i, name in tqdm(enumerate(submit['id_code'])):\\n\",\n    \"    path = os.path.join('../input/aptos2019-blindness-detection/test_images/', name+'.png')\\n\",\n    \"    image = cv2.imread(path)\\n\",\n    \"    image = cv2.resize(image, (SIZE, SIZE))\\n\",\n    \"    X = np.array((image[np.newaxis])/255)\\n\",\n    \"    score_predict=((model.predict(X).ravel()*model.predict(X[:, ::-1, :, :]).ravel()*model.predict(X[:, ::-1, ::-1, :]).ravel()*model.predict(X[:, :, ::-1, :]).ravel())**0.25).tolist()\\n\",\n    \"    label_predict = np.argmax(score_predict)\\n\",\n    \"    predicted.append(str(label_predict))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"submit['diagnosis'] = predicted\\n\",\n    \"submit.to_csv('submission.csv', index=False)\\n\",\n    \"submit.head()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 1\n}\n"
  },
  {
    "path": "projects/kaggle/blindness/other/Intro APTOS Diabetic Retinopathy (EDA & Sta e77c27.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"**BEFORE YOU FORK, PLEASE SUPPORT AND UPVOTE**\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Versions:\\n\",\n    \"* v3: first scoring kernel (LB 0.676)\\n\",\n    \"* v5: Longer epochs, export model, and optimize kappa (LB 0.705)\\n\",\n    \"* v8: Converted to regression problem, as required by the QWK optimizer(LB 0.722)\\n\",\n    \"* v11: Added TTA and seed\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Diabetic Retinopathy \\n\",\n    \"\\n\",\n    \"Diabetic retinopathy (DR), also known as diabetic eye disease, is a medical condition in which damage occurs to the retina due to diabetes mellitus. It is a leading cause of blindness. Diabetic retinopathy affects up to 80 percent of those who have had diabetes for 20 years or more. Diabetic retinopathy often has no early warning signs. **Retinal (fundus) photography with manual interpretation is a widely accepted screening tool for diabetic retinopathy**, with performance that can exceed that of in-person dilated eye examinations. \\n\",\n    \"\\n\",\n    \"The below figure shows an example of a healthy patient and a patient with diabetic retinopathy as viewed by fundus photography ([source](https://www.biorxiv.org/content/biorxiv/early/2018/06/19/225508.full.pdf)):\\n\",\n    \"\\n\",\n    \"![image.png](data:image/jpeg;base64,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)\\n\",\n    \"\\n\",\n    \"An automated tool for grading severity of diabetic retinopathy would be very useful for accerelating detection and treatment. Recently, there have been a number of attempts to utilize deep learning to diagnose DR and automatically grade diabetic retinopathy. This includes a previous [competition](https://kaggle.com/c/diabetic-retinopathy-detection) and [work by Google](https://ai.googleblog.com/2016/11/deep-learning-for-detection-of-diabetic.html). Even one deep-learning based system is [FDA approved](https://www.fda.gov/NewsEvents/Newsroom/PressAnnouncements/ucm604357.htm). \\n\",\n    \"\\n\",\n    \"Clearly, this dataset and deep learning problem is quite important. \\n\",\n    \"\\n\",\n    \"# A look at the data:\\n\",\n    \"\\n\",\n    \"Data description from the competition:\\n\",\n    \"\\n\",\n    \">You are provided with a large set of high-resolution retina images taken under a variety of imaging conditions. A left and right field is provided for every subject. >Images are labeled with a subject id as well as either left or right (e.g. 1_left.jpeg is the left eye of patient id 1).\\n\",\n    \">\\n\",\n    \">A clinician has rated the presence of diabetic retinopathy in each image on a scale of 0 to 4, according to the following scale:\\n\",\n    \">\\n\",\n    \">0 - No DR\\n\",\n    \">\\n\",\n    \">1 - Mild\\n\",\n    \">\\n\",\n    \">2 - Moderate\\n\",\n    \">\\n\",\n    \">3 - Severe\\n\",\n    \">\\n\",\n    \">4 - Proliferative DR\\n\",\n    \">\\n\",\n    \">Your task is to create an automated analysis system capable of assigning a score based on this scale.\\n\",\n    \"\\n\",\n    \"...\\n\",\n    \"\\n\",\n    \"> Like any real-world data set, you will encounter noise in both the images and labels. Images may contain artifacts, be out of focus, underexposed, or overexposed. A major aim of this competition is to develop robust algorithms that can function in the presence of noise and variation.\\n\",\n    \"\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%reload_ext autoreload\\n\",\n    \"%autoreload 2\\n\",\n    \"%matplotlib inline\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"_cell_guid\": \"b1076dfc-b9ad-4769-8c92-a6c4dae69d19\",\n    \"_uuid\": \"8f2839f25d086af736a60e9eeb907d3b93b6e0e5\"\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from fastai import *\\n\",\n    \"from fastai.vision import *\\n\",\n    \"import pandas as pd\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Making pretrained weights work without needing to find the default filename\\n\",\n    \"if not os.path.exists('/tmp/.cache/torch/checkpoints/'):\\n\",\n    \"        os.makedirs('/tmp/.cache/torch/checkpoints/')\\n\",\n    \"!cp '../input/resnet50/resnet50.pth' '/tmp/.cache/torch/checkpoints/resnet50-19c8e357.pth'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {\n    \"_cell_guid\": \"79c7e3d0-c299-4dcb-8224-4455121ee9b0\",\n    \"_uuid\": \"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a\"\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['train_images',\\n\",\n       \" 'test_images',\\n\",\n       \" 'sample_submission.csv',\\n\",\n       \" 'test.csv',\\n\",\n       \" 'train.csv',\\n\",\n       \" 'aptos2019-blindness-detection',\\n\",\n       \" 'mobilenet-v2-keras-weights',\\n\",\n       \" 'ResNet-50',\\n\",\n       \" 'resnet50']\"\n      ]\n     },\n     \"execution_count\": 4,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"import os\\n\",\n    \"os.listdir('../input')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Make sure cudnn is enabled: True\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print('Make sure cudnn is enabled:', torch.backends.cudnn.enabled)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def seed_everything(seed):\\n\",\n    \"    random.seed(seed)\\n\",\n    \"    os.environ['PYTHONHASHSEED'] = str(seed)\\n\",\n    \"    np.random.seed(seed)\\n\",\n    \"    torch.manual_seed(seed)\\n\",\n    \"    torch.cuda.manual_seed(seed)\\n\",\n    \"    torch.backends.cudnn.deterministic = True\\n\",\n    \"\\n\",\n    \"SEED = 999\\n\",\n    \"seed_everything(SEED)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Reading data and Basic EDA\\n\",\n    \"\\n\",\n    \"Here I am going to open the dataset with pandas, check distribution of labels.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>diagnosis</th>\\n\",\n       \"      <th>path</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>../input/aptos2019-blindness-detection/train_i...</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   diagnosis                                               path\\n\",\n       \"0          2  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"1          1  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"2          0  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"3          4  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"4          0  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"5          3  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"6          2  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"7          0  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"8          0  ../input/aptos2019-blindness-detection/train_i...\\n\",\n       \"9          1  ../input/aptos2019-blindness-detection/train_i...\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"base_image_dir = os.path.join('..', 'input/aptos2019-blindness-detection/')\\n\",\n    \"train_dir = os.path.join(base_image_dir,'train_images/')\\n\",\n    \"df = pd.read_csv(os.path.join(base_image_dir, 'train.csv'))\\n\",\n    \"df['path'] = df['id_code'].map(lambda x: os.path.join(train_dir,'{}.png'.format(x)))\\n\",\n    \"df = df.drop(columns=['id_code'])\\n\",\n    \"df = df.sample(frac=1).reset_index(drop=True) #shuffle dataframe\\n\",\n    \"df.head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"There are 3662 images\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"len_df = len(df)\\n\",\n    \"print(f\\\"There are {len_df} images\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"This is actually very small. The [previous competition](https://kaggle.com/c/diabetic-retinopathy-detection) had ~35k images, which supports the idea that pretraining on that dataset may be quite beneficial.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The dataset is highly imbalanced, with many samples for level 0, and very little for the rest of the levels.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.axes._subplots.AxesSubplot at 0x7f2565359320>\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 720x360 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"df['diagnosis'].hist(figsize = (10, 5))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's look at an example image:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2896 1944\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from PIL import Image\\n\",\n    \"\\n\",\n    \"im = Image.open(df['path'][1])\\n\",\n    \"width, height = im.size\\n\",\n    \"print(width,height) \\n\",\n    \"im.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x7f256540d320>\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(np.asarray(im))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The images are actually quite big. We will resize to a much smaller size.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"bs = 64 #smaller batch size is better for training, but may take longer\\n\",\n    \"sz=224\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tfms = get_transforms(do_flip=True,flip_vert=True,max_rotate=360,max_warp=0,max_zoom=1.1,max_lighting=0.1,p_lighting=0.5)\\n\",\n    \"src = (ImageList.from_df(df=df,path='./',cols='path') #get dataset from dataset\\n\",\n    \"        .split_by_rand_pct(0.2) #Splitting the dataset\\n\",\n    \"        .label_from_df(cols='diagnosis',label_cls=FloatList) #obtain labels from the level column\\n\",\n    \"      )\\n\",\n    \"data= (src.transform(tfms,size=sz,resize_method=ResizeMethod.SQUISH,padding_mode='zeros') #Data augmentation\\n\",\n    \"        .databunch(bs=bs,num_workers=4) #DataBunch\\n\",\n    \"        .normalize(imagenet_stats) #Normalize     \\n\",\n    \"       )\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAABLMAAAR4CAYAAAD9rZQVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvXuwbNld3/f5/dbae3f3OefeO487M9JIM4OQEBYYPQgWikIUEM8UYBunbBygXDYPx8QJTkRS2JVHQSVlcIhdKQq7cFm2AAsRP7FjuwwpgrExOA4vAbIASwi9GGke93XO6e6991q/X/5Yu8/pe+bcO3dG947mnlmfqjvTfXp39+7dv17rt77r9xB3p1KpVCqVSqVSqVQqlUqlUrkb0E/3CVQqlUqlUqlUKpVKpVKpVCq3ShWzKpVKpVKpVCqVSqVSqVQqdw1VzKpUKpVKpVKpVCqVSqVSqdw1VDGrUqlUKpVKpVKpVCqVSqVy11DFrEqlUqlUKpVKpVKpVCqVyl1DFbMqlUqlUqlUKpVKpVKpVCp3DVXMqlQqlUqlUqlUKpVKpVKp3DVUMesWEZFORN4pIh8WkX0R+VUR+aqbHP/fiMgnROSaiPxNEeleyPOt3F2IyN8Wkccne/ltEfmWmxxbbavynBCRe0XkH4rI4TSG/ec3OE5E5PtE5Onp3/eJiLzQ51u5u6j2VbkTVL+rcqepY1flTlFtq3InqfZ1TBWzbp0IfBR4G3Ae+B+AvyMij508UES+Avgu4O3Ao8CrgO9+oU60clfyF4HH3P0c8LXA/yIin3/yoGpblefJDwID8CDwDcBfE5HPOeW4bwP+EPB64POArwH+9At1kpW7lmpflTtB9bsqd5o6dlXuFNW2KneSal8T4u6f7nO4axGRXwO+293//om//xjwu+7+F6b7bwfe7e4PfRpOs3KXISKvBf4F8B3u/ndOPFZtq/KcEJEd4DLwue7+29PffhT4uLt/14ljfx54l7v/9en+NwPf6u5f+AKfduUuodpX5YWk+l2V20Uduyp3impblTtJta/rqZFZzxMReRD4LOB9pzz8OcB7t+6/F3hQRO57Ic6tcnciIn9VRJbAbwKPA//slMOqbVWeK58FpM2EN/Feii2d5DT7Ou24SmVDta/KC0L1uyq3mTp2Ve4U1bYqd5JqX1tUMet5ICIN8G7gh939N085ZBe4unV/c3vvTp9b5e7F3b+dYiNfBPwDoD/lsGpblefKLnDtxN+ucrrNnGZfu2ctv75yW6n2VbnjVL+rcgeoY1flTlFtq3Inqfa1RRWzniMiosCPUvJU/+wNDjsAzm3d39zev4OnVjkDuHt2958DXgH8mVMOqbZVea6ctBmm+6fZzGn2deA1H71yY6p9Ve4o1e+q3CHq2FW5U1TbqtxJqn1tUcWs58CkYr6TUmztj7j7eIND30cptLbh9cAn3f3pO3yKlbNDBD7zlL9X26o8V34biCLymq2/vZ7TU3VOs6/TjqtUNlT7qtwxqt9VuYPUsatyp6i2VbmTVPvaoopZz42/Bvw+4GvcfXWT434E+GYReZ2IXKB04HnXC3B+lbsQEXlARL5eRHZFJExdmf448NOnHF5tq/KccPdDStrq94jIjoi8FfiDlEiHk/wI8N+KyMMi8nLgHVT7qtyEal+VO0z1uyp3hDp2Ve4U1bYqd5JqX9dTxaxbREQepbSyfAPwCRE5mP59g4g8Mt1+BMDd/znwl4CfAT4CfBj4nz9d51550eOUlMKPUbpTfD/w59z9H1fbqtwmvh2YA08A7wH+jLu/T0S+SEQOto77IeD/An4d+A3gn05/q1RuRrWvym2n+l2VF4A6dlXuFNW2KneSal8TcoZSJiuVSqVSqVQqlUqlUqlUKmecGplVqVQqlUqlUqlUKpVKpVK5a6hiVqVSqVQqlUqlUqlUKpVK5a6hilmVSqVSqVQqlUqlUqlUKpW7hipmVSqVSqVSqVQqlUqlUqlU7hrip/sEAIKoA7gA7gjC0X0ovd5OPoYjIuWx6Vi5rpa9Asb/+cUXWKuzGstBjpNGyDiqmSZHDgZDEZI7AVBVQnS6phzXCWQgG4iAZDg4VHbPOaLgWt47u4ML5kYTIo7RTHLhtT6zGyPJM6rK3I21KNkNdRimcx+tfKROQCzSj5lu5vyTj47804+s79A3cIz70VU/M4jIqV0OBEWYTOsZjz3zb8+Vb3zTBUSEjCMG5kJ2p8kKknAEFUAVcSNS7KsJRt9LsTWBrIriDCkgTbHsUQLBwSj/ygcRQEluZHPMFchEF0bPBBOCGBnnQ0/3/MYTS4b8wjaAOGv2dSPber4ox19lBNQFU+FCF/jOtz/ITs4MHolBGFfKOBxiO5l5ELIpeCRZT7AF+9eucP7iDm5CUiMl0JhpmgX9eqRpMoTA6lJitieIBUY3+pxJnlBp8acPife0JARVpc1OEiebIupoALJgksAV8ZbkS4JHVDp8PSIRruWRLjb8xAfg/Z+8gpvxqf/Crues2RZAUHHKtMJ2rxYR4WTzlmd8+K3nCJS5ysqdwDStCgQvYyEOtMpf+qNfwMXmKdQz5k6rgpnThY6YDT8cyBcEywFcCK4kBVjjYniGkFtUR5L0oA1tFNZ9T2odX3WgBpaBkWSRLgppSKgKWIM1mZmO2LjL4CPSOpaVkQExpZGO0IyIZdIgSMqIZ7QLmAq/9Il7+cGf/SBrs3Id7JnX67ly1uzrdo9dpxGkOECGl9l248udNsMePXbrbHxAn17rtN/F1tHPfM9bYTovd8cFFME5fk98mnq3XnpjKeIbv7a8hni5Fs94izNmW3Azv6uw/aBOpnErP1GZxjWZXsi9PB9AN2Pl9AZHPtR0uzEwFTKg3mCSeGCm3LNYcL6b8/CFyH1ty3mJDLuR3WZEo7I67LmmDU/v73Np2fHJ/Ws8/uQBl8f0/C7OC8xZs68XYuz6lNBAp8qrzjmPXBQevdByoYXPeNlACgtaSQQyQxJ2GlilGdeGhktL4SNX1nzoo4nfeuKQy1bWBuZwe1Ylt5+zZltwF9jXS4hbta8XRTfDjZgF009VtnyajSPBSbHqWRDlTz4240tfGVmLkM1JJiRzEoY46BjwYGjjYDq9p+AZ+tHoBECZRScHpx/AERqErnWu7AvSOiF6mUxDcdm6ACoK7oQAySCN0EZHg+DmLMRJCstRaIDDVI7NZqCCuqAGaVDCPANFtFCkOEMOowm/+NTAuz/Qf2pfwBYvpYFJn2dg4pZvOjm0z7xkF/davvS1O0eCEwa4kww6wDDCJLi6CgoEd4I4AWGdQFXKdy5gWdFYhFNc6SkClwlECbgWJz5j5Fxsz3DUHXend0E804pgBikbQQWX8r5OWeWqOP/37+xzaZWf17V5Ns6afd3uSa+jONsyCesy6/iWNz3Co3uXQGbAgMaAJCeEQPYOe2JA7h8I7IAkLEOWjKSW/vJVuosLXAeGMRIbByLaOKkXch7x1Yrmnt0inJmyXh8wiqM6Z3gy0T1gWBaQNSEpUWbQ9LgtGG2cVhYBEGIUDsaeSGaeI30SUjBUhGzGkBtWsx3+2a9f5aOXrmJ2+y7fWbMtKGJWcMgCm0u1vWDfLOzKsce3N4u9zdXVE1emMcHUcYdGACJ/7g+/jjfvrljpgPqAynx6gYE2NICgHvDLmXTPQMBp4hwbZiRZIppQlCwwbyLr/hDoyLIiqDEORmaGM6DWMGKoKU1UzDOWEqLOWgIzH5npjFVqwDO6gGQrLLfgRisDQSOrtSEouorI7uYzG4jiMvJf/b2rXFsbWQzLfrSwfT6cNfu6nWPXxt8R2bpEz0OcuhHbotV173GsNB0b/In3PNXHvcVzc7Y2ULde5zrRbJp7xae/l4MREcy9jH34sYhzyvmcNduCm4tZwvUC/fYyffP9Ho9x0/WdFMOty16O4/irPPLNpg1oEYgGJoAEGhde9+gF3njxXhbzNQ/EzJoDEg1zzSRpCNkIT8L4oNKxJOXAGMoaQvpI0hbRnrhaw2zBwDk+eRD4d49f5tc/calsmONl4+BFwlmzrxej2NCq8pZXKG95dcMrL0BsEqMmxIotSBAsC6IlYiGEIqiKG944sllNBKfLDRoTrbf06QIfP0j84P9zwMcPrGyEH9nWp3AZbpM2dtZsC16c9vVS5e4Ss1Tdr4u6OvE7m3a0buR/PDMqCxYa+LEv3mPpztqEa6MxU+jH8sqWyy5b1zo5l4kqhrLn5iaIQl4FOjFicLRxPAir7ESgDcqQ4MrSi0iRBcQQhK6DroOdxnEC2YRkRhOEGJ0hO3MHwcgiCMoyZ1IGiYIbuAutGtf2hW63RNl007bTmDMSAg4EU5aeUZyIswu8/iJ8/4eWvOc3nvt3+1IamBQ9djBv4XWOnK3t1z7luW0I/KHX76EKghDdcS+rUbNAkEzAMQwRISBELaJnMCbHzUmixXETEBdCKG5gFiVNzrGroBLwyckbpOxOWi4nNgLBjGQg5LID6mVyNYSgRfDCHFElbhYLYgQpEYq4IOr81uU1/++H159SNNdZs6/bOelFLd9/FiEAX/k5L+OLXrZA4iGSIeuIS0RM6ULEwwEZIfkuem2JdiPtbE7OxmiKSKaxHfqnV/hFCCoEOkKzoh/nmI1Yjmha0uw2SAj0w8h6XCGyQ5Ievyq0O0bCUHYI7CM0RNuhD4f4JMDiLQnD6VmvlEaFEBPJR8xayI7Grli9J8ThyfQAf+PffOC2bTaeNduCImbpJGYdLfy29QJ/5px48nGkLPw2lupAwxQxInBh0fC/fuNruacXXFc0CZw1sCB5xj0xiw0aV+QUaNgh2RLtHFyJLFiPB0hIqC1IDCy6hHtLSmuydSRbAcLoHcYhYYi4ODE2hCA4mZQyqpEhDeCw0wUOr0Tm5xt673EzZvMGSQNRE+vVgt4zrBKLRYc1A6NnxtzQkEne0FrPv/r4nHf+m0/CmBgCpOzH2scpAuGNOGv29VzHLhVB2BYWOLp9uvDwLGyH18AtPEdwhcbL/LQ373jkfMc9i5YLHey0ws6iRBiaCTnD1fXItaXz8YPM5dXAEwcDTBs8Zc70Zwgpz+4TT8/wafF5ynM2gopQBK3rnvYSj8yavOzrxauja/nM6KzTrm/YEuqdLWFrWic0IiScYA3zIHzhax/gDRfPs2iuMPcDnI6VQ0IIzUgWJ5ri7ihKvLxDujCA9ETNrLORzTDO4aSyEe4DxEQgEm1OljWeIcVzfHhf+Pl//yQfOzhEzTApG5FitxZ9drs5a/b1YhEbLrbKf/hZHV/8aph1xugDg0OTnSAwrmDWChYAc5KUVW5AUfESij8Y0jGJ35QN7SCIOFEghikDo1G6FPj4asY/+iXhZz90iOfnv+k8n93Lan3pU74GZ8224MVjX5W7TMxSEUfk2NneiFdbk79uuew33VSbHvh7X3IBdePAYeWCmWHmmCluwjBm2plM4pUSRBjdCKrYCGMy9uZFGMgDqAl5ViJhLINqSb84XCvndks64rqH1UrI2YnulGlbkGBsfhs7u05oBDGhwZlFGHpnSREexkngiC5EApevwu75xODQiRApqYhBy8DX92DBcC0OXEfm1Qt45OHMBwP8sXdn7m+EV14UfvFjI+OzREK8VAam6ZuZHCLfun0zTjvupJwl/JE3naNDMYF549ioGGV70LOgOCrlnzs0Kjh2lAqjudgMIgyTMNXGkuaVANES/SAiBHeyKIgg5owEzA1zx80xd5ILIka0IuD6ZqdoWsyKeYkGpKQ6qgoaHfUSuYUW5/GeXSNEIASeWjvv/Nl93G1yTG9tHDlr9nU7J71uEiKDRL7sdQ/w9oeFVXJoeqIqCcVoUDUCjoaMhjkpGaSB0HeMwwHtPRE3QbOyQtiRhoPVFbqugai0co61DogGUk5EE8YxoV0Ze1bDiNIhPqLrAdqO0YqA3toAQVkNmaaJYMYqQ6tloYklUmpwScQgJWXRMu5KQGg0YjKQUksbM09eeogffv9vsRw/9et31mwLnhmZ9QyhCq5LcTrtcdWS1eeU33agpD0TW97x1a/mrQ8ekLwhpwBpDa3gqSPbEtOWZkrIDjGVSBPmhMNMnguhXdOFBdeWK9puhgF93xMwVFYIc1BY9cqoGZGMjYmZLhAxIOFuaIDkRggRF7AUCIysn1jTPTAna6bTSMojCkQRTOZkMnIVZvdDP2ZWKZNxZtqQ8wgmJBdCO+MH/sXT/OuPL2nMiy8g26lKVczaoKplc+OEuGTTBsp2pJKIHKcQPr9zuP4+Jb0+CDywN+M/enSXt70msohCs6VeZDeyOxlldKdxpXFI4kfi0SYlUBFQUDcaLX6eAWaBETgYnPc9kfm5j6z50BMHZLcbik6n4sWWtkUa8UnImi7xJmrL/PS58qzZFtzEvjaC1YkAu+2DN9dy6+GjyCwoadJ2dOzxMQ4EERprue/eji99zTke3blCqzuMlhCFoAkh0pvg6kiOjBFad9wTQZyYGlwN6RI+Oksv6dON7pLtEFYdNktIiqCxvGYYGQdBNeK5p2XGoe3ws48vee+Hnyp2hZNPfNYXYgl21uzr0yk2KPB5DzV89Rsirzi/Kv71tMHr6Xjt6qJIFsaUy7wbyjyD2LQxDYKTE8R2CqiY6kxIU6LzowuqDkHxXPzvJpS/zcIuP/2BGf/wF6/wsQPDtkIBb02Uvz2cNduCKma9mLi7xCyd8h228gs3kVjbE95mkNiY2al1Q0T48S/Zw7KwBMyNPk8OmEO/droZrM2ZxY0jVN5mHKTUylI4wGgQoivqzryFp1dAKgNNiJkZSjZnZ1dZjcI6JYIInZeIliIORNaj0cyUPjuHB06/Fh66z1E3FjGyNKMH1slxdaKXWlrBhf0Dod0ru4AzVYJAb2XQSgbiAddMnyG50GHsKDy247z80Z4feG/L9/7BFYtzwrl36LQrfePvPLu9JAamTYrhdbuyXO9kyJFDdYrndQPn/Y9//gXIigVjFpRZtKP0h3EljLksADopkVlBywo1mpMNci4ROiiMIwwGXQsRJYmUhWkoNdZU9GhxkdUxExJTNJeDmZfIChMCBq4YxyJXI2UyxQRXmyZSJaoRxEmU31tACTGz2ynn5442yn6vXOnhb/7clclBL9dFbrqo8TNnX7dj0otMkTOh4c++9TN4rLuMEUniNCIwNozzAaTUzwqmxEncGC3RECAEzAeUFj2MqF2ivbCHpYwRyL5EfM7BlSV7988YDYiBJBBiZHXpGs1uIBJJuaTBuo1o7gjmpJimwoGJtomMKMETI4FgwkiJPjQNDLJG+0gIa5yW0ZaQG2I03GY0zUja70njHnH3GmKBtZzjh355xaWDK8/7Op5Fpyposa9t4cq3B6wTN7ePi1ubQyrTos+hQ/nsV8z47i95AJ3NyHkgM2NMPaZOHoSmGQgecW9wXaEsQEaUEaHBrmYW9ynrDLMm0q8i4+wQs4acE2oJwUr9Se3pVwukS6jlIshKJrYZywF3yN6h0pNtBJ0jPsBTjjcdnF8hEkg500pHFEGDY5bhspB3AkkzljOIIz4VA1BFGDGLlEqBcG25x5//6Y9wdT8xuh1dz2Oh8HqhZnN7+v+Zsq+o4UhaEY6jY/REpFX2UlP0ZDTWzTh5zNFtceRo7hUevWfOd771Xs51hk0bKo7RmDAg9O4MJuBlTgJDXfEp4mk0IYgAhoxOiEJ2SFN6nzOJYFIiXvEyz4UgRWSfxC73SfR1wT0gYuwAh9n5mY8ZP/VbV3hytUbQE/5TeU3kBhFr02bRZtYTKRurp1yvM2VbcGtilhwdC5vLcvJJGxFLpqJ/snUt3Uv0Ch4wgVffc45v+v0tyxZUemSdCbEloEhziPgOgTXJI6M4eXA0lhRqplQwZMBcaa905AsrYkjY2LFEUBsxUeLBLtYui8ggJVsDFdapbES6G9ECFle0eY9BB8LY8CuXd/mZ932I0UqdyU0tr6OwNLgjIsRZs68XWmwIAm9/ZMbXvXEkhyJslk1eIQ1lE1C8fHcj4Bm6GEoWzVQrF4UYlDEZjZaaowCBwLjMxPNlgWs+pcY2QpscopMCzFVL3Ut3CNAFRQViNFqNvP/yPfzQT17mg0stdW145jhzJzhrtgVVzHoxcXeJWSJ+XWH36faRWCVb6RSnxSFv8Zffcp7XnFOeWmeSloiq/eRIKlExscuYldoZOjkb2ZxAADeaUAautZc6WJIFE2jFGdxxV3wNBKERYd4ZGksdjtGF0TKdK7IW3BTREjW1cy+MqSjz617Jh4kHLwbMSjnQw2yYCCn5UQFLNbh2AO2iLEhmQcnJS5Fdd1yK0OYCB6n4VI1Ai3OxdR67z9h75ZoH7hd2d5y/8i9n/I//ZMCRqQBzqdnE1nU9a2ID3FjMKi7wlr2x7UjdNP7vBOXYVz045wsf7jALRHUkOPedc+5phMPeuHxNWI9KjCW1LwJBNh5c+U5SFppQmgj0qdRfMzGCBIKABRCdanCIgCvZlSRTKLtN9bK82KQ7uJXoqQYYMMwCOol0YfrkAS8RhChRi5KcpLyHIAQ1zu0Z5xrBg3BpJQzAr3zM+f8+cO0ZV0y27m9f/Oz5TNnX7Zj0OsBV+L4vfxQ1A/pS4wdQjeQ+IzPFaZh1kZTXuCtqgaRlgddGGIaRGGaYLmmuzvFhn+behqxzRjKNlV3o1cGK9p7zhDCSgtLGOcunVoRzGRFnXGeIAzkFNBnkSA4jOWdCiLRkRFvME0hgSHlywANDWtGFOSE7SUeGyZkLovTuBFXkQCBGhtlYIhjpGWRGSInv/4UDVs+zqO5ZdKpuKGadiMDaTrORaZEYp5QwF6Fxx0KRm//02x/lKx8uI0LbBAgrkjUMQ8voAxFFs9AFBQ+M8WCKLO6ICjmBHYy0835K01lgQ0PfrjAybduQlj0xtGVR55BWK2Q30IjjtPTJadsWvGe9VrxZQVaaKMybyLha0T++Cw8Zpgl8RmBJpx3aQs4D5oZcahkvLAm2YPDMjERshX7dkHUkZEdkxpgT5mswRfU87/zVa/zU+59iY2mb+j0329E+a/alqr6JqDotXXDz98397WNOF7O2/Imt1ygRwOU5jSr/25c9xMO7mcGLNGo4aZga8ATBLJUIeXMGF3LebLR4ETwEMJmEtrJBlNw515VohjHLUQH2IEJUZ/SycTO6EbUlWmKUUoFUxNFp5zSoIFnJQKuGu6CxnKMDH7ji/N337vOhS6vrIiFOuyYbX/a6wvHuL/kC8CfHqs3tjZ5z7Osf/yYFv871j9OdKMKA88ZXPsjXftYcX+5DaPCdA8xbJK/JeYFqpgsNYmtEDJOOHDLeC2NcIj5D05wgLSkcIMFpnojYxYGgiWDKIYGsGXmyobmHIp4Dri34iuwQPbLCSwnJgwVhZwmm0O6Q0zWCBjyf54NXWv7+e/89lv1I3CsNgYrvtj0E3Y4om7NmXy+E2CBAQPjy3xf4qtcGRAdkAI9TNJWWY1IuovmmnEcORa6PDh6g34jsOE0orVdScppQSoyMZswCDFOEe9ISqRxGGBSa4qTTxpJ6KCKoOdo1KBk1I7aRWQwQhf3+ZXzbD3+UA8tlO/4OX6mzZltQxawXE3edmLVZ9m6iYbYjPI66wXAyPuaZkSDvfvt5QhaWOFmFmI316IyjEmdWolekFDRutLzwKkPIwrz1KX3PyV4GgTiFqLdTrQ1VWI0K65LW1YTpLLREJgTAxem6SGwyqs7BoLQ43Y5MZbad/aehVTh3Hwyjk5LQtiU6q7eyq9jgXDsUUmOowExBXBmnllQlv7oUlO/dsKw4RhRYCDyy5zz8ip4HX5HZ24NmIXT/tR7Vizgtiv6lJGbB9WJLWSM+FxHrmCYoX//55xlT2d1FjK5VHrsXupg43FcevyqM7uw10Gej9eL6BwFxoc+GWOlw6CMQS3qR4qgKjZYiz6UHmCAETIRcXqWIV1Ii70bTsmFMSckQQMXwJAxSik3iTrvpzTRFiLVQHCph2qkv0UCNOA+dL/afxDnoA2sXssA7/+WVU3+Lp1HFrOtpVZgF4b978yPM5weQwaMipkh0PBiSxynNa0FoB0ZriDJgch4bBjysibT0o9PEGTnvgwbmwwI7uEy8sMMQDDPwCPOhIe8kzHdAjWwDNoy084DlHfKwJtsKtEEOB5iX8dCS0iFkFTQqyZ2ZZXoD99LWdb06YNa1uERyHksUDiOWi/OWrjjNYo53Y4mUyD0DiZRbokXWmnnnezNPXL36nK/lWXSqNmIWHC/+rksvPOWxGATNjkVlEWEcHcmOtJHv/xOfzyu4QhrykVA9mw9gkUEUS8aYnMadJgc0JnIoHVazNGCOSoOPSr+8RJzv4CRCasm7I1hLzkvC4Jg2uKxoXRkHR3ebks4qDdIM5FGJGpg1wuHUqDeGiGRleHyJPaC03YzRBswSM420nTCMzugj2QPtoeDz1RS1Aeo7hCZhNpAylDqWHTkNqGxSDxvWq55/+/SMH/i5x9GQ8VzS/G/GWbOvqGHLtp4ZifaMNMMp2unZOBKxtLxmK4Hv/eqH2O0Mz0owp9HSAGV0GN3waaMvZcOCEJm6pmamBZmUY0wxzeQsZTMyQGxKlKiZgytuWrqsSpkAS2SUEBSSFb9NxHEJuE6NT5jqaLkyAjOHGMoGp4ZMJqJiRBFmqsyAn/zdkR//jSssh+HUpgIn58RN+uNmE+26Y8+YbcHN50bhxFimx5FZqkfBbtc9rraJMi2iqarQMOfr33SRV+wsCS3I0DGuA76X6TjAVBltQLQhWqLBgPkUjTmSQ4dYIoceJBCy4joDID+VCQ8OiDfMZABrGQ6cFDrCrCdnQAIpDGhSmmiskwCCpDUez5Mtga4gnMPTEkJLTgPRDdOLvOtXPsnTl9dYSHjixB7q9QLyp8JZs687KzaUXL+dmPn2t57n5eeulrTWDK2BtRQxfbJTdyeblHpoOK6gQfFkRIQxQkpTeRkVghuG4OvyNw+KkxEvIu2QYBaFpD5lRhTBUwWaRshWmjbFSU0L6kRR2kbQEJEAbdzlXT/f83ffe8CUNX3H0g7Pmm1BFbNeTNxVYtbJbobbuzO+CUW+hdP88oc6vuF1MzQLvThqzrgSLAKacVGylRCZ0EbwAAAgAElEQVR01FCJWMqsM/goXFhADEYCsithGlySZ+ZBcYU+Q85lB9EHZ29eIr5MpNSyiaVmUZxEsi46ZKU/FGY7oJ2QcmYWlWuXAc80OzAPQtDiSB2ORgbIznIpSGPEoLTKtFtZJrhs4JQZPlPqVlgWBnMazbw8Ko89kHjl5/Ts7cBioXTvKN3s8NPTDV8qYtYmNul6MeuZgszJyKIb8V+87RzLdWQYylSoOF0Lr7nHycDjB06/VszKjo670Xh5v641loOAG5a0LEQFZqGkb5VdyUBoQae6V1kAU0ad2oQ7ZEptLnMlTQXeGzFSEjKJOAl42YVNfyV3pxOIWopTAnRMkV340V67B+GBnUzXBQ4HGEwwhCTCu35hnzFdH02zuYonr3EVs45pBB7YmfOdb96jiSuQGaskUy0fpelySUMg4H2mXUQkRxIjIZbOckIgYAzqjIMhWhpN6GhYM7LQCxw+cY3uvhnLPLLo5qTRWS33OX/fPbiUtLC8TEgzot150ngVJjvrLyXiuUA2x8fEvAU8smSk0wWSDskSyZ6hzzh7jHoJt5YuCjYGkAEGJ6xbuBDYd6Ebe4yWXlbEJmKj4EOPBxjWwk8+PuNXPv7kc7qeZ9GpUhHXrS6FcH1EwzbbUZGNCz/0bW9id7zET/3mwLv/7Sf4G9/0ucyGJaE11iTasEA80M0OsKwMgOS2CAJk2pwQV7w1IOPSlDp/pkV4uNzT7pauBe2wSz8/JOeIx0RYHxLiHu49kpxkRm4jZiOxNcwDObUgPTuNMKa2CKY54483cFHInSCh1L1SMaI1EJYYkTwmGlqyjaUbIg1C6fSUkiE2R5pxqpHZT+L9nP5QMF2js5Fsxl//deVfvX8fySNpK0rkNM6afakWv2sTMbRdq/QoYkso9bPgdKOb2HQbRMrtoC3v+E/u53UPlOY3OTG9R0YnIapFSqS657Lh4oonGBKlWLZPdqIQJZeGKgYmJQ3QzYgSGTaPuWBWNhZxIacSIVNiV0sktMim1X35LBmfji+bfIKScRZCmcg9lEgJEYKBRmeGEqD8XmIR4P7BB0d+6teevlHU1ZHAZ1NE9clUw7NmW3D63Lj5kNtj2snfm4qWqEu5/ok6CVyNwBgbvvQ1L+M/fgWMeZ8hGk0qu336tNDe17DsBzQqPjhCaeSUY0MXMk4mqrJOTowtfTaQiMkKiERXbDTCzEGHktqvgh/sMnbLEknlJejKvCPLNRbWMQplvXFZ4VzP6C2thjK2kfA8xxkJpb0d0UeeTvfzw7/wu/T9yCjX+5ubyLRy+/oLdTOR6+RjZ82+7qTYEET4utfN+AOPDTQCce0MyYmBkroeS/3lMtwpWcsmdJiyJjwVodWleNklerBEW4kHLBsjZWM4yhS8sYk2pYhUMgqWrNRQnZdor8acGEu6tMci8gdviBioES0SurHU1YoNQTPWPsb/9OOX+OVPXqPkRt7StX1OwtdZsy2oYtaLibtLzFI9qvV4FJpNmbjMNy2Nt/97EuGRReT737IoRdgHCA20TWZpwjiWmTCgDA6QCVP9oWHMuJWiszvdRohQeoy5CL0ZQYR5gGEqJL9eOWEuDGtYdKVbnQoQhFaFUQQ1Y7DyaRoVmqgMV422g/mFhmFMuGeW68jBfua++yCmwKwrHQ7X2el7uLYP584ZmJcQZXcOrSwOGiniRJ8cDeDZyB44zJlOhZk4n7njvPaNa+65AHsL4T3/boc/+beW23VArruSLxUxaxOZ5Uw+63WP3jw661igKbb67W+9wL27cHkpXDtwjOKsd62hYswotcrGLBhGFEXcmSkghuWSEqjmDClMxeHLOwUpu8ZBi5Nuvin47ogFRnXES5Hj3kuahMlUfwthhjFOO97Zj3ePEAgOOhWaDxynJ+GboqqGi5ByqdMVo6NBQIp461r2mEfgR/711VsS/aqYVQjAn3/bY5wLTyMyR0gllcZbRAaGtiUPI2EWmWdhHYyYWmIzFgdKGqAnaIcEkDQyalscfjVyGgm6IsgeeCKuzzOsnkZ2hTDfxfcT0gphZ0aMyuraAbQXaGJmTAZ9z5h6fD3CvTuEJAx+SCct65Uz2xXGVFIRG8+AcLgaiR2IR9wypaFmpLk8YufmjHEoqdcsgbbU7ZJIzlOsoSf2c2TmhrQdqyT85Z97mluTk8+mU3VaZNZ1jwP48W9XRNHQ8Ff+2GfyinYsaU2umDhKYAw9Ie8gg9PsDniOhCYDkVUaiDgxtEVU8kzjgRANNyXbivlsh5xhQAiDI8sBXczJuqLNgdwGxryiWQsSnRgjQ1qV2iGNk63FdQDdPTrxQCkuf/jRgRBauNgR5IDsc4KOqCqaDdOO3q4RgxB8h7A/YJ0xxfGQccZcZJjQGuaAJTQJ60Oh3dtjtH1inDOO67K4pGEZOv7CT3yYJ/fLc6a9HuB6x/6s2VcQPWrlty226JT6p0c7iacjHD8eFL7q1ffz9Z/b4VNKTc5lY3DIjrmQkjFvvYiTXvwqNWV/5QzBMTEWwSFHXNN07Yt9lG67ZU7LU+rMpg7q1P9k2tQpkeou5T0DU5fgMm2V6GTXMgdOBcCTe+ncyzQ3Tp+/9JkWVEtEfSOTvUp5bqZsAqmW+bx3ZVT45ccHfuyXniKl46iak2mI2V+aYtYmpU5u8P+NPR0J81tXpfGygfaWz3yIr3hNX2rmsUBYkl1RGkQy40c7usdWuM0wWZUoPBdUEqYN4k6jATUlYZj3CA2qwpDS5OM0hKGBZonZgB90zHcj0ENsSdbTp4iqkyViCWaxRO9kAuiIJcfjpnOqlqjGZEhoSL4k+oKREbTBl5n3f+wc//wjH2OVRrJOwfJoqUn6LOu0ZxMgzpp93W6xoaRCK1/36pfxRZ/5BNIk3Ch11ICGkqo/9I4OykocxbGpYLsDzThFbYnQNuCNFx8H0DiJ7TihDB8lIbsE8tFIQHyq7GjQNaX2n2kpGyMEWGZSJ6WTvSZwCKGhDQZDxqRkAMVWCE2Dm9F1ga4NBHuYb/7bH+Ej+/3kTd2+y3fWbAuqmPVi4lbtS5/9kBcAf+ZP63hRXVIh5EZ+1eSkfM8bdjnYL4OEz8ruyDorq+m1goCEjAcjqh63mR4a2lgGGMxJGUbPBDYh4QGRkrKFWxEWwrFzZRgZoWuVRgTLjnipk6XTvzWGuDG7EPCkLC+NtE3p0RhCZmdXuXIVehlJBtGKE9Wq0MTywZsmkKfQ+ximDnhT/QXPJdrGXEniqCg9Tu9wbS2kSx2WwUbnjY9OjhynhJ3eQgrBWWA7+moTNXR9h6GbJ8zJ1lFv/ow52YSnrpVIOZNSt8MoaZ+ShVUukUwAiwidOkFLRy23MmlFAdfjAqfuThaZJjwhhuKQCVpiylym0OQiKOVcWvoKuezmAJFSVDdQ1ixRM40KpZGKlG1ufDpe8E36IaUumwkgmx37yaEyJ5uTzfDkDLnM5o89tDddlVN2pm/jxHlWePPDF3ggXCJKABtLjQ0J9KxRMeYWaGMgWsIk0NGjLBnjiJmjuRQxRjKaAk0Q2pzRKeTdVRF2cVOauIPvjcz3dtGDgF27gi469vcPaWIEUTppaDTRNg2zBmJUZt6w2DvHDiPKAZ2GKXWon9LNlDY0EBLDmNhZdGgIuPXEoGho6faNfKGFBtQVlUzwjpGBTpRsPcgIXsa3BZE2Go0N7MiaP/p5r0b1pTEu3YjtYTpsCVo+OcVZwEVQVyQI/8efegP3x8QIZG/LQn2qAN/JHAtrpBPsMBKnRb97Q6dxivhNxGZ6n0ZIayEFaNvdsgkjA/fOOmbzgGQnxETXKh2RqE6rDdb2qEaG1NOEhrnsoLagaRuUXcRGxEeiJmIU0pOJGBeEiy2z0OMyo1UQiSViRwRhZNE07NkcHTIBKcKpTI0RvKWTQNAWzUprQj6YoczpzjcYV4kqSEqgQwn/IdPZNf7i1+wi0hyrIkfX/uyOXcc1rabID45nPrn5fk55joBr4Mtf8wB/9Wsf4Stfu+BaFlY5sx4zB2algDulUyUB+gFShpQDfTKWRRsgSpmzRi+CWkoBs1BSudzJMjU9MaexUo8m4IiDemmmQzbUDdWSRog72Y02FmFqTGXelGme0yCYC61saldOdVIpDQEQRzST3PHspCla2a1EWPd9YDRYDcbSSs0vNecLHur43v/05fyBzzjPxpierWD+SwXzjei48buu/8lt1/9j+28uNO2c//JLXsWXvWZAg6DBEO2RaIRoxAiqAzONRMmILMEgaEcMEdXiPzktlsHVaEIihjlQUpOjZFqNNCihM7p1S3PYMD/n9FHpZbeIBFGZRSFopPXEXEsUfVbHcyaqEOYlQjHGeNxOFsdyidDKeU4QRQ8Mfi/yua9e8x1ve5BHLz5E8DLW+1RAS0Ru6p6f5XHqTiMC54LyXW+b8x/8/idYych6XTaEZTMupbIZHHsI54zZntPtCvNdmM1hsRBm52G+gJ1F2Sz2AyH2Ac2C5SKVh0l4lwCxKdFcQZXspb6VJOhiaSy2iYgt87vBLuiho5JQhxgFCZlhyLg2xNbRpmRk2BBLdO2oMChN+D1+9FsXfNMXXCwb45/ma16p3G5eHJFZor4Jv97entkIDZyS/rXNn3jVLl/xmGJW2pv2U8HIYSr0blP9oU1vugi4KBHn8FDp5rmIVVLEoxJC7LRRSNMOYCdOwki5RGuW7nFKDFKEKhXSdLZBimMjCEmcLpYCyGbGLCqHV4ydCwpRWA2JJgqH1yLDYOx2zrl5EZz6UThYO3GRUSnRPZu0rzFPdWyAvFaYOdGMZMp6iiYD57wrb3x55tHX9ex0woXvKTuR+GYCnLYGpsKtL4XILD1Fw30W3/3010X4ljdfIEsRqMSF/RWkySFu1aYw4tLpBHeaqS1vEEcmz85MpnofzjAKTSwxX0xC1Gy6nchbO+hy5BimLGRKGmyWIkwlSl49wRkzkxhbOgKZTbvvnqeUkNIMQSSVnW2XSUTOSBB6K6JyUC/F57WkNArgrliTSa685xeuUOLSbnwla2QWvPn+Pb71jcYVN5AWEyupN6Eje2YvLnBZ0pvShox7g8mcNsI4jiW6QBUkIL5DE5ekbMRGkdzgJPqUiBFcMk1okUbJQ6KJLe264dr6MmYjuxdfTtCM98ogmXYGZCmdUpcjSxuZtaHUv9JSu83WCdEZziEpKyHNWLMmRkgMNNbQk/GrPZw/TySRktMzEj2QvMfo8Jyw4DgjOe1iagRbl/dnjTFD6Pjocof3/OpHyad0AdvmLO4QXheZRVnglDg4jgYslSI+qMIPfsPruacZSsTlmMo1zZEQBYiIUJoBeGkqwaonxHNYcxWRZlpclsLaHkBViGsnRaeVgIYRLNJqizeJsN8x+khcHOL9HtYkzErny5SLGLBghtkV1hJJEknZaSSXiIWZ0v+e0XVz/H4nWMZCoPe+7FbnBg8DaYTgitOjKPOl4IuWw7wkhgXqA7iRzEvdrvU+0i0IISGi5DCSBi2dFmkZZYWakIOQJeMp8TvLi3z3P/4dRptSwU6IWmfNvrbLOxR7uvHHO9mZUDXy33/RfTy4F0vNUVdmlPpSTQvZplpYGsg5T4Jk6aQbcok4toGp1bwxemkQ4W5TOrxNDXQoiX+iZS71UiYiACXWPk1i73FYcZ42P9MmYl6UnEtX10iZp5m69aoXr1AF8iSaqRQPIU9imciUFhlArESsjZtoaS8dsUv6W4nQamKJhhTNjGPkne/d55c/dlwD8LQi8GfNtuD0uXHj08vWnW0xa/siFL20fK+fd98e/9lnXyCcOySHFsmJKInBWxBDspWNZ1uSfu8c7cMrCI5IVzaIzGjpGLW8ZpSG3lecB3qPoAEnY5bQoERpyRrQqwNj20/VvCM5O7HtCBmcgTEFTIykCZVAYw2lblJP9hJhajLHckA0T/3NxyK0Wof6mvThPfz+hHUDsXEiyq99dJefeN9HGMSmtQnXXaFbXbdtRQaeKfu6nZEzr7qv5TveZqxz6S7ZplK3ltGRWMRuvDQKkwF22sh6SOgMRI/XqsG92FcCQvHpM8W/tgCSBPT4l2+BaZyZAh+m9OoYS+3KACXKNZfxpWvK3/0wYDOjIZA9MZsFPGbw0hBMRIiUOdGs+HRt17FoWqxVPnn1Ab7xb30Q82erEnlrnDXbghqZ9WLi7koz3DhV06CxOXXZmuE2NbRO8lAX+d/fsoto6QSXspOltEfNQDs9dzQnaomcmU9RTZtQ8zaUwtwNQu9lsBFXmvm0Qzc6KSsixSnbFCdNGVApKvlRPYfiaA1SFh6hLa2jW4XBSmeKcQmgJbphRzAtra9xx3OD9cYwOjllxizs3AeW8rSr5NPnKYKGu5HWijclLLnHSsFAL4UIU9/wefdkHn0g86d+OvGLT2fSpoHeS7Rm1raYdSyYPnfe8qpdPvueFgkZVaUT4coyExFs2oHpRGhC2ZXLCK2UyCv1Yt8ZR6fuS/267MC0WqKk2qD8/+y9f7BtW3bX9RljzLnW2vuce+/71b87TegkHUIwMcZIQ0Q7JBFiLKNg4Y9KgYSYSJCUpSBFoZiyLMsfSFmiVihL/UMogRKFPyyqNFhWgQUUlFpCjClEgSb9g+7X790f5+y91pxzDP8Ya5/73usf6SQ0eX1vZlfXO3efs89Ze+255xzzO74/JkA0ASl2plWIQId1pO8XlpLDrhCa3Z8Rctfl7MPvQNnLByz9QbJKKhZ30eseeWEWCfqusRf9mhLJWiCsMBy2sKRN752e/+f1zp/7yUdf8J4972DWj/yya16cXmCcOpumR1BFWMpEK43aG2PagJQrBI5bI1xZpgfUnVHqJWjNqRLo3BkIscBUFihlZx4UwoNajTg7m6yYFGqdadsJnkCbB1cPHmCnxljSL+l4rJzHSmkTT568xjxf0eOW1jpWFDNltEEfZ1RmfAOvSqHzuN+guhCfbpR33MM5Z+cwFmyc0FJpvjE2kLJLgCLY7sCDjc331zMWTIJ1NLQWfv+feUzE5we0nsWiajYN35sWbxyFy2d1DymRYHb4rd/+Qb71K2dEOq1Dk9zXTCVNsSmsY0vw3StWGm1z1GpKVluGRKA3FDFKWRL0WVL2JaocrLK1W5apEl7YHp/R64WqxmEN/Dq4PZ/pW0V1pbdKyA1h6S/iHky2MERYP71SHlwxphXxiVpuUS+UUmltxXvJtDFmaCeKzUx9wh5CvNToHUwKbb2lb42y3Cf0jNlgJRLQ94nWN6Bz9pp+ONHoomwedDlR5ECMBPd/9//wKj/1MOiasKHHswlmvckAns/fzLkAWSrCd3/dO/j13zCxdrhdhXOPPOBLMqQOU7JFh4CPTEweuzt6KMRI76rcc5KJXCz3qm1Epj9H7ofWDWQwl9zPkKwNw/d2SQyCTIQ2EwjHUcID3/ckJ03kHRBVRssoe91bm63nNdQpGGF0CVrPPbFqNiUvXmKVRF0mFbYdYLiAnkr+3AUQHBEcNNn6LYImwp/6qzf86Z98mKzr51xmaJLWCp8TP70D5wWl8lu/46t59+lTxNWMzZogVzgSKxGKUPFwQlbGaIy/cWT+4LofJDpjKKV6AkoyU6qztZU5FrCBRMXVGHGDjGCqBe0HfDpDV0Y/JSikVwx/kubePmExWFeH2VALJIx2GpTDgnNiEFgoIwrQEQ36Rh5KesFX4BPC9AF2AKxSxmO6H+l6RnjA7/szn+Hm9OhO+vzZYoov7JsFz+ba9XMGG0SYIvi+b3mFD33gVaoXruvgUzeee4opS4BGmri7QDVj9E5tilwJ53AmYLRIJrODVtnDRCLZf7arHjZg2dNaB3SPrKVGsO4vpcjTdVg15dJmmnVR5JplwFYCOwn1Cnqk75bKrn8Yu2m8CGqGhjBZBl0cbGbRwqiNmSM/9Cee8OOfPPH5wsC+2PGszS34BTDr7TS+rMCsohYXkOaNV/25ujV3Yz+X/7Fvu2KNkmyY7mwhlCmjU1vkAhMlzfSq5cJ/2FlUiaZDUWF1YS5ws+UGW0SRaS9mh/Bky4jxosFsRpfB6ILtQIW5JlVdhb6nEY4IppqQwTKnM1OEQk+t9bgVbBZkyYJQhR2mB2/pffTaq8Fy3zFRJkkz8SHp3TU6IMq6BlaycNscJsvXexYhNuH9qvzS92+88sHBV//HI43j3+KZddkUnzcw600/xxvo7p+DDfimriLKb/6WFxgDwpxZ0o/q1BIY6pIJmEsZPKjC61sal+L5PhkXjW/gYy+sT7kZFhmoGJNlIIG70LoSkhHlPuCmaxZQe7CBu9L3Q0CxTOZShKrBue1JTXevaE8pjOxSqw4muQgMSZkGxohBH4qTfllZvAdajdaTnXX2TFORooQG/83/+trnva8B+HMMZv3wV32A97+4osdOPQbeFro26I2lLJgN5vUIDnEenNNbG8qEj4Bjo+gBmwbDjD6eMPUroLPdbIzeKdrBCmZCmSc2X6nHwgjjUHZwflrwsYF3ypMD49AZvXF8+d7OAhsgink6x9Q60dcTwwf9vCE2GNEJlOKwrYLNQesNdOH82i1+AAiizox2ZvbKpmd0zDvTwhje2WJDx8zQTJ/tPujk2maa80y048z8ldcW/qef+DhKJAPnLeNZLKreyMyCHQDXJApkhukuhQgQE2aHP/z9fw/uD5E45CGPQKTgslG1ABB0InYGSnekdMwmhAXDMU2pqoVgMogb0OLoQSGEUvY9z4zWHAtnundgWYVzaZzPG8WU3junbaQEp69MVSj2AsMHa5zRzwTLB644j5befB5MllKxcOPcjGIdj+DgKYPtjza8D4YsbHFLtQfUwwn3oI8BZnQ/U0t2kBpwCtDuqBubQJABBB5nQiZGdCYarTU8XuKH/vuf4lH3u0ZaKqyfrfn1RjDrreNur5Nscnz3V7/I9/79V2lfMAZrz/1rWzNQZu1QUI5zTz8YSclfd0X3PaYNpW9CmVIeb/uhq8rOFN/9rHwHmtSzzil1Z1mRCWLDjYiWaYbZzQHG3kzUXaIPyei3NGqP9Lg59WASQfVpMuMWaQ2A7WBXTVBMdvDtUhGFwBRpBB+SDVIANNnMcfHPiTR9Ntmbj7KnFIfw2ur86F96zCcePnnT/X4W164vBGbl99/4s9yZnV98AE0Lv/1bP8SL/TXilfRO08WwPhHjjFXBw1N6KmkP4ijxUfAPPELHkv5oLjuw06lTwT3/Th+NSSYaE7Of0+tWOhbXaG3oFnRzYngmee7vvVg2zN1v2ZpRpjk9CW0mtsGwADqdQukOFQSn94FzwMeGG/SPHbj3rsGqZ9QVkQIjzzKh5/wsrMp/8eODT376M+nv9YXJyZ93PGvz6+cCNojAAfjXfvULvLA8ZCWoAZtrJnl7MOvu3CzZhFYPlh00khuD+57zeKRhu5NntDE851bkeXYUqAFEwudbSeCfXe2gARtBsfQCZG90jwF1Itmp+/pIWuVmM9yCaTV8ESJ2KbRlUqt5yu4JsBIsxSgYVaf8HVI56MRybfyHf/qGP/FXbnD/2bO0nrW5BV9OYFae6dSEZVKWpTJZEnVM04N5dGHdNm7WxCpyb/9ZLiQ/D+OLnV/lS30hX8z4vJ2FL/ikXAzObpjmA2qSZtgj/ahUB9UK2GD1fAuLgoiD6276R8aqRnDyXFRULjIw4bZnYWOiICOLrpEUeDOysNdgMYFQ+s7sKqbU4RjCJkJf00R7dMcWSfPRq0BPWQTVSVOn3Xbmjqb59uFY6OfOdLV3J/cFjQBVzcQeF4qlF8VkgrinDrtnIXaSweOz8s42dlHhW1yMfhrzyGd1vBG8krc8fhdC8IafudAHg+Cf+aYrTKBL5PvumTQ5JKEiIzenRZUnzSmRXldrQJGcn4N877LoDkKEIk6hYgRmnn5tBEXy9LoN6CFcTc6ITCDUnWUVInRyHqbJZD5uKOPS7ox98ZOEtkQcc6XrLoWUoGhk2pIoRZxNFBFHVDERxDLtsO0Gt0PAxmVZ/fzj7WHQ9/MzJlW++hefCb9lsNB6IhA1AikLyCnZb3aLzQWOMOF0geEbTqfqRJMndDbEZlSVNq3YCMoCxQ9M84EuLVURfeK636ffwM3ta3h3mJzrF3J2nh5vbIfg6DNaF3ooyzxxXm+ZayV6+shsvqf1aKWhuHRG72gpjDbQWdjaKZN8ojEfjXGsxLbtjL/K0GCpU1LmgZM22CZCK2e7RWNOqWtxtGdjYIRSaqNFaru//sFjPvO+V/hLf+tnlnL4LAwR9kMYuzRnZ/K+oQFkLrx8b8H9loh7zNqxqdC2jRsfDK+IdWoXzIQuAx+2d2ZTgqy6MYYgJoR3qlVCBlcvXHM+O3oaWNkotSZDlPT+ONxWjiHUKTjUmcdFGSOv89wcM8XmA5Ug/IYyTWxnQw8zEWmiXQR0TIx+i1SFKFhxrMJ8npDmbGujr85cDxyuc84O3xIod6dW4eZ8RrTiIxheuF7AuyNj0OogWq7t6o3Jr2iyUcI4j54Ovrry7/9TX8G/9Ef+ZgZuXN6AZ2y81ZQceNO/s0g2/uB3vZPjtbKG00buUypplj/tJm7RgjIlOGWkv4y7UTWhKXEhurEse4o0Y5fuQCNBrEI+F4RNFWcwevrHuAh1Z39JJJp02Y/dnbACOnY/yR3cVU3PLLK50wcslq+tiqICp7F7NEmGDdkUxEiZUcsoWS4phwqERBozX2STIYy+N3xwCEuWvwUtcv0uKkyRr+e4BL/zV97nX/1TbwaznodxmVmqvAmUuXMXCajkPZ7qzO/7rg9xq68ir06MTxnyzoeMNkFRlIFLpYggkXuQ9cpog7YJV9xjY8OkomUwxkBLwbrju9Rr2g8AEU/oulAzew4pKx6ORSGkYnGiamHQUBVGF6QGEhMmV0BjiaB3QWtJH1RPhrvoxvCCiGHFsgOhQnFnWgatrpShhCaQ0qNhGnRSr1Yn+Bf+3oU/+uMv8n9//FVU065E5NIO2MMAACAASURBVI2V6fNZv/9Mx6Vhv5jwI9/1MlP9NO1RJswjYOp4T2DA8yFMk+kplufK2bJ5HSOlC+oQ7ky2/1zJFFUrED1Dm2L36etr2sTcdaAC+g5kITvxAggVqu1xn+KEJpimonfrkQ+hb05ZAFXWzTNozJTBYEQGj4XDOgYDpXHCxpFqK60646Hyr3znxMtH5T//85/5OalUfmF8qUeuD7/ilx34wLuEe8vKIgYWWBRcnSvJeepS2NbO/StjHYqYolpZPLGMYUJX5eG28P99ovOXfuKWT3ziRDJpvnzH2wLMugx54xdv+VRdUmae/ozwFceyd1gGmLJ6moI20jdqQtGaXeamnqh2pIdRkWDbjDo5PZwhSuvkcwhWcywS2BojD/8W6ZFQS6C2e3JFAltnnCsVQjQXPByVvVByR+vTjnbvTynpcQV2Uto541VrVmzUoogkffnhpyGunFoKAbQ+2ByOgO5G8hEjF0Cc5hlzDcLaA1/gZlXaYwP63f29FLPP40b41in2xXyd/w6qKC9NhbZTfN1T0jlinyeerKeiKZ3YutEjN0LbY8Njz0vSiL0DnNp680wXqwYRApEHh/OANkAMppqMASPZf0Ky+ByoEbuMVLHLAZjdLFd2X7fI5+ZVKFhusiIp8WCXcRQZDFGK+p1vyFyCFpkEmgY+Cdz5brqbYMj2lnuW43PFlj8v4/d++AG9bahWKIFKIXCkbJh06OkD4pPTvROxoVIogGllC6HTqBwQuWL0LQEADWyqdD9TyoZ7pVhh2IlShKlOyDDebS+znjaqBKcWcJqwPsNrT4h3gW1nrFwT4Swyp5HyceH08BE2V7xkA+B4f+K0DsQrxYSb5lzNhTItdKmMx49hXvC+4aKUaLRw1FMSbeie9qpE2XIt5ojLunczCxYnVu2ET4xxBo6ZMDUqv/KD8LEnV3z8tSdfRr2ln/u4AFkRyfBUjztvvoutsRr8O7/hl1C5JeTM8AkdG6ZQxqCIMzmEpVGstIqnAyNV7jPNN8lkoEJUqgTuUHThdqzYITCZiPUe+nhjulegOlWMw5g5hKJVqWaoCee20v3Aeiyc/QaTyvDAqqEjmBiUpYI6szhjOJhTdKb5SimGeIcnwratzIeJc9+4r4X6QBh+S9WKqbAxGGJIF45LZVsbJg3VSjsFqitaKnVUdGxs44DEihwbEpZsai15oPZGGfBVr1zz1z71GERpz+Bs+0Km5CLCv/wt7+AjX1XZXHjcHN0bJ7qzB4iUoY/YCeXurArigly8E1vgLpSizEsDMvCk+16LKbhrMg4liN136hDZtDEzWnQKOwAiMEZQLZs1RTJVcNBTUh+KqaM7LKbqOziVB0uVlO2E5JwpqnS4+7uQtMfmydBwSUZVpiPu17D/WzyvuVjOIScBMfYE4RJONccpbIzdNkOe2xPjZbpFPAW0VOFSjV3M9xHh3/zHPshmj7CmlKPjcuDJJxfK0vDjhk4D9Y4wMc1Hhgul+A4orIhURGc8simnOhjDMB0IE0hDxZDilDYn22qcmdRAF0oVYm17irQRPM6mjAthBh2muhsdmXIOg3ZDUBFzVEG8UOVIeMXrLaNPmDWWMXP+aMc+cECGIXbidBPMC7QChbSeSEZ8gXHme78efu+nFryf75Ku32Av/Hnu9/NZ23+uISJZroryI989YfYq0vK8tw1nAFYUnYLiAZrnPolglsh0Sd2l/bts2kOYLBgNZKT1TJAKBQkhLHZoPhvRIlCqsm2OlmwC+ACzIDpYVVo45gHFkR47k3H3GOyOVstQAAF9YaK/thH3A5l2P8GRebSmsn/GKj46akd83IJsqAbr6IgfiduHfO+3XvPf/e/G62sw9n3OzPaU6V8YP19D1fhHPzzxnhdgfdI4XA1ENg4y2ARKzHj0DOfyoKlyCKjac4MOT/9Hb7jDky7oUuh0pt65N535pq+Ab/zAAZVruiiffKj82J9/zN/82CO+3Daqt4XM0FT3y3iDEOopkYR97X7zc0T4rz5yD42koDspS2iWOuc+gmpZdcnOVBF1PFEkSgS3m1BqMpkGsEoeDKpmwtuE0Ej9c0EomrRPI1Ccm6Yc6qALLMCkRo+RZZyml0Jvjmh2r0WhWnDaBC1CCYGaXcJthW0FTo5YML+s1JreC48/bjTduH5g+Ahuei6WEr5vWMpSVrZe2SIId9ahPNoATZnbKyJ8wzvhe/7njb9121NqCE853/t4HmSGxu41lXASF6j0Mi7R5PDZ7K1A+F3f8SK356BtwjlDlKh7YX9hBIs4kyiTZjw5IRyqYwGvnQYvzJZGziMZXHUIDedQgmKW7MFIWvN2TjYUpMTI9r8zNDuAjtJJaVi/Y17tn6O4xIw/7cIPH5hIzmJPYFU1N+4gJSEyBLGUpQ0kvUwEDrMwL8KTTbjdhNaFcyjVEtDz4fy3f/Gp2e1bx/PmmSXA7//INULQmBBJzynP3G3MFdUbZExMVhmyezOMwMRTvonQvSOhyBz7vEivkCyfaia1RgeZ0FooKGNUYtoQmZhi0PrAakFICUyPRmjFHk74+UToQ+yVl5hsYoQzH488/KmPUV6szNN9zg9f5+RC+AnzioyNebmmtRNhQnvtETZf47YRY2LURmkJvg9r6CgM77QdghlRcXU8Om1sFCtsnpao574ymdLaFSErWoI+FpSVGBP/yyeO/MW/9tG7+xw8m3R3U7lsjcnY3YvyIBlDmVoKiPHHf8uHoA9MJlQ7J+10rxQ1jDPFJ4Y5MRTnFteCeDDRaUOZ5/uENqRuRJ8xSUahSEF1o9TCQsVCOM4T2hpX7cDyoHLwBWqBd4DcBtyHeNQZZ/j06TVuBmybp3+QZqOonQZVD7S5pZGuC8otGp3zrTHOI2X4ZrsHZCc28NtHLC8+wGTA1jHLhLI+VsYaNHKfNxqtV4LXQa4YEihn3GeCoEfF5YaeJjycmzNckdEIOXArr/PH//KRH/uJRwwGzZ+ttesiM3yaapheRj/wze/kw19d8C0fdyIZRzgWadzf/ZI8mAbt1pV1A5FAqiaTmJR9sYOiiOyxIdnsK3uDUnMLpo+BaEGko6GUXSrTtsDN6UMh0gLCIS0eNFN8x87Ix5SqA1OjNycimy9Bsv/EJZkOxC6HTLAtwZQ8rA7PPdMRLAQkvblGOHde3Ps+PyTZD0ZKF/N+JIgwmbG1QIsjO7ymLmwE/8fHV/7I//lUkv8srl2fZe8gTwH5C9O06h5+o6mOKNPM7/lHvpLDdMPiM5ueqU8Ges+o04xO1/j2mLYdMTZiDG4eOqWs1GNHzfBPGPKeNHLI6ivtQvqYiXbLdDXjPTDf8JgYZWOi0odjbFSbYMwcz43Hx074illlrDVTnn0Ajk+C34JMmVpIeUKsB9QMKbC1nTYrwXBDVbF+pn0U4uWZOHawQb/tLMuBPs4Q2aA6+YbpQmuGlsbGyjQqf+z/Un78o5++C5u6VKk/XWP6WZtfPxsZWKXyI79q5vjKE0YDQuE2sKOweXCQCxs1gcKiio9koMpu/6IC8Qjqi0LboM6Zclp2ULZ5sAhgQm+BlVx7RHYjd81z4ObBBLsXV66l2QQHsSB2Y3mXYBKF7nnOqPvnhQxkKkz0m0HcB4I7H80hziSCYWkI7+AFvE+EDpZqlBFIn5D7G9dXB/7kX1j4j/7Cx9D+MxOhPWtzC3528+vn+Bf5infN/LpvajzxnE9DjckHLkE/w8Gcacn3fVKDyH0vaX1CqPFyWTGpnHvHSnqnrpGhUC0KVowtLoClYC4Mq7g4N08Kh+sJSlDNMYwN5Umb+AN/6G/sHph/9/GiL3Z+vT2UP28BsoCnoEDw2fdP4Ae/7kgtmd6mOFWELSJZT7tngffsEg739D3YgYfYf3etgUqg5al/kKUvey4qO0X8qLvB3gAPp1gCACXGXqBBJw0BA2Ha2TqXFApIsGAKzcPrBagrMPbrnWZnvgqu36XELMQWd74SL7xT6FsecMfO+Jl30/g7SeKYCAKTLE6dwHtSw5404fGAx6vwZ3+gPi1ev9Tv69t+fJbgEngzg+iNfMAAPvK1B15chNkULaSJv0d6JrDL9yQ1+C4wIqV5KRsNWsDLRyN0ZxtHp/Rg9aAYuGkCs5EfzvNZwHbpKUHZvUMQ0iBSBNGBhcHFh4Td+Dg80xNxKmRnmoFKEjIrlznk6M7zF9m9SSyBtnzOvsmL5ve2LPIjUhKg7OxGDxClmL3hDj/f49/+FS9jstAmvfusug9mnDo8wyOYqGpZKEfGxatURsnUVERQq8RkVJ8oe9qWmlPLQtFOMKEUPJIw51aQuubhj8HwgdaUO6AlJWZhyQB7MLj//oUyrjl98jXa9jrXD2aMwWFU5nrF9viGrkbVQFwpxegtdu+aSo0J44rpkOtLlKB6g3VjjA3ZjHlSvM477T4PoxHnlMJK+mCFJ/BaZaGHISXTpbxXRvSdji/8g+9vmF1c557tYSTIkGNPK9r3p5xTym/41q8huyXJ/FuHQivoaIg33Kc9vagjtub99wDfiLJAWXBtiBQkrkEsu8c4Y5wovqCtAgXVCVNlnmcOR+WoE/JCwR/sm7XnuiAPJuyFwitXL/BSmbm/VK6WmalW1AJVR9Wz0YMTrPRz4XyzEDJTXrpCDwbaUF2RbugmxAsLtyM4d7DpwKlDixVXoVdBajKWdXZ0uUWmipVAS6CaMiUXuNgGmApE2Y12A9dCozEP4zd8Y+EdL16Al2dv3NUCGtyfKv/lr38vv/yDxtoDzBlkwXwenfCxe4dBVWeSNHOPSFb88CyQqw06wRDdDdtJXyliZxBnJy0UZEeyNKCYYRLJXtVkcLZI5q9IpvxaASanTANU7xjHJkFVKCFsm2XyWNKNmdQwtZQ1SiYKI9DDsxkV0IGTZ7DO8CA8k8E8nG0Ia+TeTUiuvwIiCs6erJj3aUTQiWwWjLF7d2UtOlZjDGEJ48Pvnn9e3u+fz6HxZoap7qePS22zFOM/+J4PcV0epSS4nahnQWOhfrpQHt1QzzcseuDq2JAa1HtXXL17YXn5JdbTzKNPOmUuMCrFZkqZMFtAnamcWA4HxIVpmihzRUunWMWkUtQpdaFHJmy6G7gSfqB5wUsGFJRiTPMMmwFLPi8UbwJ1YeiJ4ZbBQLYhopSazanzx4V6XJjvO1U3uHWOk2GxcSgHVPPvQ6GHg+X5wEawMvPPfW3n3a+8I8H//T4mkMVnAVlPQepnswr7Yl+XijCL8G98W6D1Ce1ENgQ9sL2mPkTWFc2f9vedPOdFgJb0wLUCx6LYSVkOe7J35N/oEcwpwMFHoCXBpct504S0ifFgmTPKUAe0kJ0BGBmMsVuLiAezpxH80CQ+uCcor6YISouOXQv66sDMKZrn6IrSu+A+8DE4M3YFSafJRhuNIIhZabcTt23iH/+VT/jnf9G77+wDfmF86YeI8ht/beEHfq3yXd+wMonxwJ2rqMxjMElwCOdeEc4bmE+MJow2CA9esMFBgsk619GZRFjGQMsMe5jKLGdYnUPdsZLoVHdKNFQGESf83FmWBtpRNmrPtpPq4MGy8a//i+/j3/uhr+H63rwTQN5+421xVbFv+PDGg4neHYSfAg4XEEb4jvfVvYOWevPmUMSpGrvxJpS6H85VGHvR0kYQeCYeDuF2T+MBOJRkvCi5aHQSRHBJSvxUBXoyJerOiLpcoe9xI7pLuTJGPr2OVAR32aOphSmEPmBrjiO0lgaToonKH66E/iQPBoYwHTrHo3HzMKjFdhmjpbcAwbQzZ3S/zjYSaJjryJhrycLxySa8rD3BGXn2ZBNf7PjCx5KnoOob59/l629+98yTm9h18n4HXvX9/R+RaZKh6e8R7KbbKvSeBXW7XIACkcCWhDCbMF8OqAjRkuxwsCAkwC7OHXlYzPST7PAgCVhlFzLnuJG6e5H8jBkp4zDN+IMhUPVpEpWTnnMJXAVicBUCDIYbHsHmwhoZcpBpmns3cP8dKsGH3nd9d5+fzSPgFzcWFe5dDYas0J4Wn8us6RFlDgx8zAwtIDPFQG0kzXw44kqMjYKyCIxwVGaqzHscuSIyIarovDDNFRFlUmWRicIEDoflHmaZRucMhHuUqQALVia6GFfvO3I04/yxx/iTW8Z5I3TgzWnbSpUVFcMmwWWjLJUA5ir4k0dMLxwIB9UZXx3dJrwIOk2UqXLqA9XI52sQslFJmbaKIXKgWAHSs0lEYXQCJ6xTmXAEL0Lxja97zytpuvwcQKZCmr5b7OEfe4ouCK+8MPFPfN0MbrivbL4xSK8NswJlQVxZx6D3hndDdeJqMcyMrbVkMAiEZmrhsQizCrXMzMVAnTI5WgOsU30w98JhmnLBWvvuMSPQBMEId+RKsJcK91++x7HAlToHqXBS6rjG45yH/K0SozKmgl4pcUwD0yFKqNGfDOS80afB1gsmAy3ByiPmJVkvsw5MM8BCVdh6QWLGZMKlgztnGiOcNgaNje7Cuim+Mx9Ro6lT1OimtH7m9/zqd90Bp8/SuJi7iwbXNvGf/ZOvcA64cWeNwXnAFk73gdNpng3DRuQeQDLHiUFoAl+3nkDqpRmTXovJkFJJXyn13VvLg0oG64Qm24Xd/5QdoFLLxt+SMyrrlsgDPjGIPdTHL1WiOEWdiPTeK66E5wFSEWZVzNNfLULS23T3SS07ULfv2gzIVERNU/mDXHyN4s7rC5HdQyxbYxLJnOw7y7kAvjm9B6fhPNmUm+Yp9X7exk4ieNNDO3nJTfhd/8AvxT/+GvJJY3k4UcaBMt1HX67oO16gP5lZP3nL+fVXKXLFUirYyvX1ESvOg3dd8fJXvozfV+Rho14nQ0otONQlAy6koToR0XCZ8A2id7b2OD8L7ugU1JIzYJ6NWrLOKRKYFEQTjJ0WYyqC9AJzw+o9VBylZP2tFfPKpIWprdjjE0crxLs2xhj4phyOE2bKNEeGqkigRanVqKFMIgxxhhaqDNYSfP+3HHnHcv2mhsYXEti8HdQ3X4rxxb6uGvA7vvMex7kzr4KaJktOlBpp++Kyqx64NIienkdlVmQPVRKBUYNxL9ecAhwsASeJBPS5kAwQ0JK/e2eGIunJFdvI/XYnUhBp+h4heM+G0EXlJ5LsVSPDMdwDH47VQGZABvKyUF7XbJKLoMOZRmBmqQAQ5TRGNpwxwmdacZps+HDatrHeTPzGX9P5h7/y/t/pt+oXxltGrcZv+vZ7/OB3BscBdCNc2bbG1qG3lVkHiwTFFNPBoYNJ42CxNzeFkwsDp/RCLclDfRSGyuku/GfblOVqJzv0xkGMoyQOYWOwvR5YGActTN6xIXTpDO/UAXU49/vK5jf8zt/0fn7kh7+KZXn7NWPeFhVaGk+/+bEgZU1vZMZcjsbfdF85ue+JVs7msDlJad8pt/NOaR+RlPLJUpI3l5RXbVtS1UUi6cWimGaMuUoa6ZkaQ3bvKw22DeY5UM2z6SVmVUMIzRjVoonA24XNpUKIM9lIeUhkJ13ZJWnh9IuJqAfrTk3ubslgKOAIL7ySiIRG8l0VZy65MA6c5llkDjK1sXdlrsLBgmPNw+HjHpxer+l98RwcAL/Q+Bx11d13LuDpZ2+VWTU0ga0L5/XyQ8LoEKJU0WSmkAa1ndTW20iYqYdSQjJOd9+setdMeLLdc4s0htwi9fQ5h/eKRfzuM+GAuu6x5fk9Dc3vBXsbNL09QjPxJw8UesfgCwVGXq/uvley/y8kkLJv0PvjEcHag233E0iXNsB3fwCFr3+f393j53n80De9TGlpFjyiotoR5kzqK2fwa6ZJdlq543Fipw+gdIrU9MWaDmBQwqiUnU1nmF5Ry6CUieXqJa7uX+VBS4U6K10VrCCmDOmopmnxYblimRvVgmVKYFs446Vw78WXOHKPJ3/tdbydWLYDup6Z5oltE3oMqi2UMlNVqTKxnlZ0usbU2fxM31amuSEz1LlS1ZASiBY0QH1g4kxSiXFE6cwUqoCwYmLY5fUXI2LKdD1vKM6IE47wq97VOJg9s6yZt44kDr3ZtHuo8e/++l+MbKf8jO6UX7U9Cl4d/DOMODFNE1Nd8jMeStsC0wlVwxjZCBrzXTgECFoUm+8la8YMC9AR0DsH6/CSwb0KJxDfUBoXK06ZSmooZrBr5YWX7nGfK+rrgg1Dj0o5zByvjeUIy6FQCtRaKFYZoyFjo94k46FdK1EdVWVz5bYPtlE5bUaUQXPBLw2CIZgpp95ZI40CAqGyZPqZGjVqsjaouDtmIOqIrXm/HVQahcd837e94+/22/0lH6qAwj/9S17kD/66d3DbUwozRtYPbey+UaQ8xjS9gLKJ4rkXSeCS+0lc/k9LqUtkEq/sScwVQDJtt2iGAgwiGShhu3k8ydLzAbEzkVVQC9BdXi2xg3A760vyAIfuCdUq1NiZDsVRS2BUNBl2F7ZYBNSdhq8j7iS8psncU8tPQcfTWysGLQqDwMMwct9VJA3lyX0d19zvR3pm9pEgryoEgx6aQS3P2bi0Tz32AzckMAn89o98Pe98z6vU9wjtnZXxTodrQ+otEhuneoKvuM/83neiD+9z/sRPcW+aKFJpbaMuoNPCdLjm+v4BWYwnf/sxtEEtE6JXmFbKXKmjZXq4rUylMk0Ty3JISViFQ6SPUkghRoPSmSTnUdMOYYg11NLfKj8QgdIYowGG6IYwUFXmYvRPTujjeyzvNaoqE0o9WAIipdCbpcdSnAgUH4GHIrqyMFPJbAophUlP/LZfdZ10IZ4CWvn18zevLuNzvfYJ4zd/+GVefHCLWSaBh2ftGubJNp8Es2z2Fsv0+gvjDZM9zRKqpRNg2YK5BZpLIO559rtkww6POwWQx9jlzdB7AvltP+N50kP3IAJ2Cja4BdWUebZMJe8ZuuGXRrcIWsiU8p6s1oiCPxDiM8H4dMB5QpiRJx27UfxJQW9mYgV7Iojfcr4FjzMuZ6L3PaTD+be+54Xneh59KYeI8tu+s/D9v9pZ7JSp9upQoEp6mV7Ne8P7nAqXo2RowdV9obpTLVmCy76fpUqjZZOzO0UbE0bpiVvQFKKhsaJkI88j6Gvj0SN4cK9xvWwUOe3NpbE3mTsVMHFuhyIaLDhXvvEHfvC9/OgPfw3ve/+LvF1Oem8LzyzVvcf8OS4l2Bep/TpFhD/07fdoHgzXXeI3KGFJFw9H5KnELzRZVGaKhFNDuenBZMGTNX2M3MmocVX6yMInjW+FNjSjoYcwiWfyoeVCVyXY/SVB2BlSWQBFOG0/mIbmQpjpEpkW96QLQ4OtJ8g21TQaXXuwzBknzK1y9UojzJCh3LwuPHrcuPcg98/dhoLT6mlAjiAOa4PHt3B1DKIrvThTgfsSfOS9yv87Bd/+h2/2BffNN/1Z98zSHca74Kdv/O/nG5fv/ZZvvs+DuWDm3JwT5Ol7J6bt8j8l552QXWuxLNCngGG58SiefiAto3RbwNUCZjuby4V1g6sp7pI2N56azQsplyDYKekJlCXPJ2CPQxfbJ2eQxsrkhhhkrLjtXiLh5JWrY6EMSfPe2LlV58h7JiUN4LewneEIt13pu/RVanYMBsKf/N9uWLfPjvt9Xjyzfscvfxfvv3eijMKqgkdPjboYRZTwRshAbEGHsZYVi4FawdSIWKiF9N8IYfRbHtQr3JVNAp3PRL9C1TltG0WFUgtQEVWWA6RUYRBRqDbjvROqmAk6FThBH2emuVDFaX2kL9ow+k/+TexwxZOra+Se0/oJlSObZFd5rjO2drwW5GalHCrnU6ebs3pDI02Rh440ht+CGDeYKE5ljI1LLyW00H1j+IzHDRLpBHWiMORJSsB8IAPWMMwGnGbW2OjLFT/65z5F7/2Z9G6YVOLiheIC1aELXAGuxo9+/7dwPW4RP6Oyeyh6EGnkg3swaeBlY2wPMBvUYnsar6MhNBoRC0JBi1O1IKVTRaklD+3D82BwvcyYN+6vwf2XHuAvSrL/bibGeoPdD1iuwYOYBdEGvcE2Mz7dsbPR+w2P+sbmwapC9xNM8LgHsxoSsJ5PxDlwy/jxqmumiOlg65KAqBqDE8SBETeozJQatJ1ppe7QQWMDnUDObF13G4GW+58e2MIJOh6O6JnzqkQYwxpBpXvQ4sz3/dHHz9T8+h9/01fEoyZsA07hbJEAVCKC6T1KpHdMuTD9iDs27h2jQKB3OJ+UWkgjbrmUuJ6ea5mnm00/kmWIZKMnsnJJZrBozl3fmWOeTCmzlKINSSlf7GbtIuln6gFnoLjiodjoWNW9pZSAm+8BFAy4CafvYSx2qQliz3MSMhk4fDd0110qSTLG2KVDWZxmaArJ5mMH/9oQWk+P1OaBue3SVqHIoGjwu3/sE3fvxbO4dn1Ozyz2A3lik5jD1/+id/DPfnMhQrEKY3gGNRRjWQqindvtxLCZq+kBQeeF4zXrR18H79g9Qa4fMIpnLdMGeDBehdU/w/V7XyIIWtuAQIflHNo2bLpiyC20hmgeLPU8YDVsucetvIrqgo9sc26SDWXVDDHRIox2j5C/jZQD4p7gr7yAxGtsr4J8RrH3v4gcb7DzDfghGabeAMV9hXGg64ozQZ9wXt8bVjN9nAhxmizUmPB2i1vhYzcH/pM/+1HM07dX9jn5RqbWZe941ubXT+dptBOr+CUvT3zfR9LKYzSwjwn+Hk/8UQTvSrHBVHVPvw0awmQVZ6M46R3bE0AQhWkTth1wcoIzGbykyF1CeRFYJUGtIkJXEE3GVS2GZALGZamlkn6isV/7KBkk1tZAW+7juBIG8wxNnKrZDKiSzXRUsZqm3z4CwSAGaHBWcJxFstGjdWKVgfasSa82p15fYdHRw8Qm9/meH/3rxOi7LuXz3+5nbW7BTz+/foa/jY98w8LXvNTwnVmcvtsJEMnO6tOS720MWDTru8Ps+Gn3R6uWDeOHcPViqsaipXJslgyXuw3QyfB1IFNB1868GCMGHWFIQXoworF2494ivYqPaAAAIABJREFUuBrD6060CZwFLSe2ONDoVEpeXFEmTWbq2WaYnEUrgvJX/3bhP/2vf/zv3C17w/iy8swSePNnRd76vaff/Mi7JnxEFiUSSQb39LKKyJRBCZhK0kiJ1C1vrafUj0t3LjhoRphORZCLCeieXlJUd5ArGS+2U3mSPpqmoyK7f8KlbLtIukhb5oIgpsmgCsFl5IaJ7PTq9FMqmrR8F+G6KtHTML5YUNySrSNw/UAobvm6PKgk/V0jGD1TflbPA8rV/JSijyWFtolw2oIPv6s/RXGeuWXoC4+4g2iedgrfzP57+thl7A1sHlSjteC0pRfWcNl9IHKj6d3vijXZf6eSXRVEdrDWdxpwgDpbCPO8c+0jr27tcKh5Edn5TsZWlwRqXeIuGamQEgcFSgTl0sWWLMyL+N3f7ARzyeubuKR65t8Q9fSX43IQyWtpkYeI3YKLc98p1fvvd83DxNij2gfZrfrGr1zedD+fp6n2tfcP/OLlEeLKKRw0OFihimUCkw9KFEQLBiBBDcPkyKASvRO60YcjfsNYV6pWusKYnNBgtGsCA6koE1KuIArsMmvxNIeXTfE2UNkwG0h0zJ1JYF6CeSksFcKN9fyYtg7OulE2Y94qV/cFd6O3iW1sjHailgIyGFpRd8ocbNstQ1eQjUNJqWAmbU7YWJnEKbLgUvA+EFVEFMGIDpMUGLfUUjAtyUCKMxYzBUsJkFTCOtPpgN5O1Llj0fh1f98Hcj94Rof7Uw+9INMMAVabuN9fh9gN1AFhyoRLClOZmWSBKMS4ItNKSb8NbVmZ64RpQWVQY0U8vTTwgjClXH50Jq0crCCnjt4E1zcz8tFB+cuV+KvB+FsbdrgHcR//5BkeDmTaN5m/PsHfKJTXC6wDmyvlWPHrgs+Bz5WTC5NWxjDW5sQ0oQ+OXL84YzYTOoNNDDEmKyxmHIClGkuBEiVnwBgMv8UkmGTB6BzLNZMMahwppWT3nWRjD3kdxZl2/y5cORZjLoIyE56HhRLL53xvvpzHa+fgNILzSP8N6SCeAJB4NvRchB67+N6zxhjdcfcELIHYJXy2t1SCZKFXghKCRYI3pnkvd0wICTCcSRVNcRYSWWup7SxhvQBbOzNrl/KlLDl3lfBkUtgIMnilYxXCc4ePAEamEUakTFB8Z0iTkpyy+/hdfmdKeVIuWwLYudZKeqdKSHqouhPi+3OeqgnCnHlyhg7MJJMa2ZmTJKP6uRx7IRCk/Ot4PPC931gTiC4QJqiVlDSrc9vPnCLZx7VM9HZLVeMcDX3vkfrKFbpWZnEmrSz1iq6BLgd82bBeEYFqR+bpHnN5EZmPHGWilAkpAqFYWZhkwsYVlCu8K3JMIFbY5YkW1CjUKpgU0MogKFcNGfOeLrww6RVVdyDkPDF/8Aq9+gxsgcxHxqTYcEwmYEpjCAOVAwynWMM4oMAYiunCugrWV3o/IUUpFrzn8JBf83XvJXn7cndMemN/+q1M3udiCGgYBxF+4B+CqYE61KncyfCy2ayEDtTAu9MlZX+TkkCW7lV8h2rp/8djaBpohxjpNXvc/ZbbiLvQskYyt6ayh1U4lA3+f/beLta2LLvv+o0x5lxr730+7ld9dVd/udsmTtzYJnICSccxjmU7CVZkocQWEQERQRCIPBgkQMISwiAhkPiQghSkiEQiT0hISLwg5SEPliIkBwR5iCKTxDFOuru6q+vWvffcs/dea845Bg9jnXur2+0WCHd35ZbnQ9X5uvucvdfac47xH/+PKQQZyXAdtgH2AqEDqZtyyAQLRxdlvxPKJZR7it135qsE10o3ZA2mkzFuAswo06Cq5t4igdAR2xQW4UxeGJu8uY3YkjQ7RVdWrfhNcB4nWm/secov/fFPoxjfetT/O+tbLUH4N37a+P43GzYFu52yt+Byp5QdXGqwm4XpIEyzok2pHfwM5TRQCQ6XyvVlMLfB9UXw4AH0m42BPBn398p8gIMV7hfjIM7FDBelpsxUs2fYlR3XKtg8qK5c1QzKG+dO7UeuObNrjcN64iqM+9qYMZAV58jsneorS4dC49KVEZ0Wwmc+Pvgv/v3P87nPvcF3q9Mr35Xf+o1r6+XvAODYauBvho3+uR+YiXHn1ZBskxXBI5tpQ1k8OBA56VGhWrCMTH47DWGqiZ7r5kCkG7glQJE7xpdgm8QvRrCszn66o/RuySFAeCKiHqmz7mxFkTtjq1daSw0+HilXdGGahNVzAx2eaLq4U2pBImPKy2WhnTpaNMEQc3ROQC5E0XBElPP2Oq3dMVWen4N7l1tU7DZNvZNC3i5KXxKNH546t49ShO8daHXXGN599e6zO9mcfMN3fuKfuCDCKJqyVo+kRSXaDSYDF6Vv7L+7Alci0wEjBNvKYSKQoaCexo9Ger0MoTXJYkkHbSgjUh7YY2sm/O7eS7nrGFuZLb41tAlouae/DqQv1l03HCNePEHZwKe7w101C/7ONm0PwyNlPcZ2WJOS1Rzap4H50I2aGPm+EoHPPDJ+hQQPZZuPfxTWhSp/7kcmjtvoPhBsOFqd8JlShN7SpLpuILbWilrhFE+onh4/2me0BBIz9WAUGuc2mK0inhNsLR0Aq8JsHdFOjIaOA1hHM/eZ2QxtC8dz4/piorEjfN1MGQLvlTYaxi6lDa2j+8pOOnMYXBQONTg79LZjPS+4nigyo72g846iQZweI3bFOlZ29ZKlH2mjbYEAM8POzMNZqxAxM+gUGmMyxtooxZAWGW0tg10IRyCG0m2HjVtqL/TnQty/QWViGgvfV97l9Xv77+Zl/7atu71ZJI39dZu6uxq/8OOfTq8frax9JdqElY7ZBVZOyDpQS+GWMNGlJ/ukbzJgUTxaepOFEWNgk1DMmcuEh1E2Snt/vLAulcLELDNlN8HHdsS9DrMj5Zr44kCuGjpNxHtCPO/oOfD7l8S1YxU4G/p4YT4rvWaM+NBgN4OoMjr0XlhHI+zIIjNRCq1NiDX6SFaVqzIc1lERcYrN7HDOFuxjzuGUrNRJN22JQSxoKG2AyC4lJrLkxHwoHgnSenjKkDQF3+6KvXqEZY6eZ8IqQR85ESYELcm+KgrdHRVjSEr+TPOMG9tkmQ3oUXFQYbKUD7pvfn7qKd+DF1NLkYx9180wqW1WWWNjWtkmH+yyDfxKnnHDfZMTQq054fYmSBd6GEYwGCnTFkU1aEs+7vCg1M26ULd0YE+wQGIzpfc8k1WE4YKVl7RnZWM8kpNwJXAVShqqvjCKjvANqNnsASS9JtVSQ2CRzzEcvu/hzN99vHwXrvx3Z+k2RTTTzUdtxy/8odeAka9h68SY2CXizmCgtTJWKNWRGNSazqDRjphcMAy4qpQnZ7o+xj7+No8OV5yOjj26pnun3wx2jzTZMJaDx1FKBqNUocoEHcZ4gkoasO90QHeKGWN0zGY0FK0TkwXdd3gRXFOiNc8zbWnELj25bn/9KTYOlDeEsnPaac904Yx1SRWJTJidiS4UL0QRtDcIYSyB6IkQIXyhjWCeJ4obXTurByITQ50vfOoxf/PXZt4/ndLf96NSaH2LJQEig3/vp/fsR3ofg9B7g7At2AGKDqQpYU4z2I0M3GlAHcKkeTblnpNJpq6ppghNgMoc6rT1gltNLQa6COtRmUqwjGC+SIWOoIzNy8hH+gICWxhGMrsm21IPY+TeuPkIqqa/lqtiu4EMo192rNWURo8Ac6JAtGCovqgflEK3kXJpL4SfUDX6KIgN6u7I8emB4hXr8Nwa/8xnjnzhsxf88q89+65dy39clwCfefuCn/vBzhSN51uqvbigZoQPTIXVYD+lGsfUsV1lkkKRPK9unzZs6pSDcfVQ0FuweVBmheHMdeAt75Fzb8yTcpgqWoTzMrAZqBWNid6XPKNdeP8Mh6vKXAWNTHE+WXAulcmF27Ema1mFEsIsxuKdYxTGmsE5xx3MoXSFfXfW0vk3f+4NFn+b/+A/+1v8f8vE/P+/PhRg1h1JiHi5Idx9DF8Pas0aNM9pXBHBJTAPzp7FC+Q0ojmYDRxhBFTR3DgswLNgEjVKSemga7BGbkom0FoqE3AQLUy7kf4Prrj2LNAGqDljvODUg3v6VikZD+3OVCynl0UZYqgJ58yqphZoIyWNmabhTDWwSRmekorqyeLxCC7uKTdPB4eL9NQKCUyCdUR6RkjSSa0oYyjzzumk6eHwwbMV2qmwK43Ws4D9Zol+r/r6eiJgvLgHv/7rL/2zfvjRDiJYlzQ/T0P2BDdrAKrMCMvQTMIJQS1vt/Q6S/mERk6/Rw1GS+PPCcPC6V2QkocZpOy0qNMGWQQrpEdHxo3LnbyBlGsImeYkmsClxJ1xfb6pJDJ104hNnphTZt3G5Ap0CdSFYaBbpKcHSGQn3SOTGsOFIekvJ+L0yOagi1A02Il8HdvtWxOVX531hU/u8NE3nrts/LcdIo2IE7hSqgKGi+N1xtuak8NygcZEnbbQCAmGzszsGe3EXGfQMzuEPjXi+Qm0EOeFtc25H1YQWelPgqAhus990Cu1Vvpa8PPAr1f8FqQYy+7MNB+QXeW0dLRXHj54nfnmlo+tM1+8L7C7Qrty21a++Nx5vHQmVibJRlHjjNbLlHxX0jAeKLUyRjYrUwgiCYwNHyzDGd5hgcmUHhOiQh8LhrCORq0HKM7wldGvKE86+qDRbeBiaCSQ+ic+/9p398J/m1ayXvJOGkTKvoB5Nv7wpxqG0SOYStCbAI2CISj4RLMFj46OFfQS1cHYWMjWGxMVL3le0AdlVcax4bsGLLgfuH22Uv2aUg/YI08GxT2FK0eKIT4TX1mIBxfEa0aYop+dkd6J9wSVE+Ow4kdJGfVbK7Eo8iVS+mpppl1rw1Vgi4oW3THaoI+GFKMNQYZRxJJS3zsR+RxC4OygfUdVp/cjY1R6NFZXIjollGIrWirH7mgfCPcJPTJ8UHyHhzBcqVpxOuozg5XxCrIblp6eiDEyFCIsvfpUC47Tk1SaadCeIhqPwCXDb0ZEAoFdAMXuGi0PzATCt9rtJTvE3VEdOUDZ2A4y0rA9Pag2wFYE26LCRCXDBIBpCuIseVaqJZuuBpWeUlhVQhNcEzLiXCMHRR0o4bhY4pthGxM/0DBOkgyt2JrXMfLxRRVik0lGbEOpbGTHNhGKuyJVUmbvRILPAUjKgSbJ51ERlgY/+b2X/N1f+WiAWXeMddVtmKfCn/ihN7maTqATEhUzB0lZk1aDNtB+IOIZpTxibU+RcsfArIR26ryD/cq6v2J+p3L+R+8gb72O+oSZML2u9Hee0p9X9KoQ3vHW2E2Vm8W4YGIIRDnROTB8ZdYZi4l1GG4FtYFQMRVcOqMrNpEgVr3MGjpWdMwsX33MdPsWh9feRq9PrOegnztlb7DChGIyeMoZ6zO+segLjXV1pnmHl0GYYf4Gqz9O70Df43T6UEycEresXhh0/uwf/iz/zV/7VZb45s3jqzioVk3A/LdaP/bmzFv1tHnCsnEqPYkCEltvl2zKWTV9h0skOGWgRegt5aThYM/AJ0P3ySrvYwONBqyR0mlTGDfJTdWdIA/AhzMLrDfBdCmsG4GAAtMIokIpxhiOFJAF1k6+RyaYLBl36oGace4DatbWqgmCQKMjxFGYLp21OX2Ta5sLppbDsFEIyeTolJZ5WlgAk8/EXuDkjNoYLViZ+cWf3vNT/+3N19P9fmd9y6XAv/YTe/bTiYX0MLo3kvV3RPHIkB1dIy1FDYoFXQsanVIU1Uqpjdce7jidgvV5Y74WLh4o4zS4VGdZ4bV7V7x2WfnqbWNS50kfFOlU2VGs8yygKgwZLAiGc/N0cLGvzBdO75YaMluJMHa+ImZon+hjvFQxRfD+6sn4vwiGBtNomIBLcIyC4VRx9rvGf/0f/j5+4Zf+Jv5b7EnfjvWhALOAF93u17GxAj5YQl4WS0AJ6JJpEKNnLVVtcBrpj1UlmyM0aXRtKBaDXc3Gi808tE7B4unHsNk/UBXWlkmIzVMeqJ7T62KB6ABJenrbfEy8B9MWQ5fSGsMl6aQ7TZqpGvhI7apsVPu7NAwXQSRQEyZJo1Ejizq/Vxk90818OFKc01m5upcov0ZPmePYfL9wDvtkcfXbnArpxtQpAU8Dnr4Pf/mP7/j5//k2pz8foY3qm4Eqd2/YD7K18ufysx/97CG18ASjCBZp4N97bEbq6fqhBazDGIKpYtu/qggWic66BKM4BaUUmGumOZ3Pym7eJBaSXlwiTuuSaZzpKJJ/b9zRpJMNKJJeOkOymSjhCUqFUjT94zyEQuDixMbEKpIsLNnYU2gW88vmquuRk6MgJ1IhJBNy5KuWkeTJ7PK7VA3JyXZ3+NzHLvj7X37OS7jw1V0CzCr87OeU1StdOu4rIjsCgVYZtVJkoo3n1KqIBxOdk6any2xp6o8YblCsYKy05cRyOzgsCyaOXVyi+4lWJ2TpFJk4vH4F0jefKqH1hd18j1KEtcFuht6EOhdKDFQusNcry/MT82miH08cRvD6VPj4ofLa9SX+7oHpOLi/u0JKhxL47czvfuse77x74ktfe8rjCqd2w36XgMEclRbCYc5U1dYWDvUB5/6ESeDclLG5o6bv5YxP6T9nrAyVLcgDRIydGPRGOxlxBt5oCAc01oypNqePyi7e/S5e/W/zkm0vkrsAhwv+qz/2e3j6HpjfELUgdKYYTP2Sk55RgfmioUOY6gybqT6aDBohiJ4eDuv7jXK6YIzOKsmQ68dLYAbt3Hv4gKkOdv3E1CsVRZYBlztiP4hZ4b7iD532wFgf7mB06qLY88C+pMRvTOjJYXZiX5n74Pb1oDw5UPTE+Zmy9PS15P4Rm2ekKGKVtqwcBkxD6JMx1cqyNHazpuRtCcw6poYHrMvA2CHaMTEIpceBteXk0tfgkoGr0OqJPowRRsgZt4neV1p0Wl8zYZicXr5qa1+TpbeieM/mSMOQGBQxfNPMuTtWBz2SDTyRTOEhAS6o5TnRV2Ei6xiRjdGQJ1X+ws1fUlU3FoITw7ANeAoC6YqVTZJXPB+rDDyyhukjqEU2I3qnebKIw2WrZTbjeTKe3iTZUrJNmNlMIVSSYeWSQ011YReSniZstRVO9I3tbJJMLhG6D16eaZlQNkYymIVUDIjolrCYhaVuz99Qlh5QhM/O03f2gn8XV71Lh9tsMQThRz5xw+L7TFMeK0PPSFRmKcSAEjMhnXkuRAx20yXhAx9wcVBmqSztOdSJUoL+icLc34B/+FXuffZthlY8gulTb3L86pF2PrL72A4rV/RxZl8KEgMlUPYU7S98zdbS2NeKyo7hHdOJCM/B8i5tH6ZyxWJnisHzL56wo3L5mY8TrOhYMJ2x3YTG80Q1pwNjLKxxyc5v6NqYNwba6enKdD1BSzaoDGjtBqnKVCf6OlA1LgTcJ9SFkzXMr3mjf5Xve/0Bf/vd97K5jJfYw6sqMfxmQNbd+HSS4Od/aGEd8kJSjowcwm5DxOoQqozirJKgTiUVP4YRzwMbBRmDeq/QLxv74mTmk1OmfJ1FBGnCOoI6B3Jf6GuwRiBjYFXxs1MPcEedKyUHymIZAjXUU/6nWx9YNvanpgeubME99GCeBO8AkeqkIqkAaqlOul3TYsKXTiOYp9xbd1N6e7mC64qOHI53nFkMGIQpz1vhqp1Z+x4dHa3wr/zwm/yV/+Od3/R6/876zeuzjwp/6keCURf6KKj09GjUwCI4SA6D1JQoOSDZE6goO/PsC7Ri0hgUDmVwfS+oWrB15eKpcvVox/d93wPql9/j4aMVPnMFuys4R7rHa8C58cVfP/N/vXPDV9dGhOMnJybl+rVLnI7EIDx7Th+BxcB1wsRTWjgy0bWFc3sr7C93UM5EM0wrowxuxoTWzj2cgxRGrJxlZpoX/uJ/+kP0ccm/9Yt/I30wv83rQwFm3bGy7tYLptbdf7ad+S/+6GWWECky5tQHEvJyE9uQ6n0xRILFjZaGCYhkU1c2E7/w9JEicoqmm6dRFUGrJg0+SaFZJHts9PAsbs49KGZEQJk8qfEWSBfYAAPXyChoNtkWIyUdwMAxybBVlfS5qkWQSFp/74NSjeiNOArcy2molU2C1gIrniZyMiglDeVDCrMNNCwNvYtuYE3Qh3Dqwe1Z+KnPvOTNfJRkhh9cd8//m7GyXtyDCH/wkwdGT1AINiPFKilX2X7mDtCqE4wuoCntzNQloXZn3SJWI9LrbDeBhObjijMiS+Q2MsZ8kImZiKObEXxAgrFENgGRUycVT0nbBppViTTzHQKiCMkWY2tARNOH5y6K+M5BLCRjfLtrUqHT/jmTV7apto2gWRrIE8Gim/zDCyGJ5ksEn/+48Pe+zDe8sq/m2qG8uUsKt+pg9KDUmRhOTEKLE6YzTTo7T/aHimId5tjDdEK9YKXQ4n328YDzl7+E8Trzg/vU+ytwRuVeeqaZwwq441Y46zmZTxXW3lEXzmvPaN9px4iOWmFtRyImiq6M2KKZZ+cw3cNvjuxvnTfsAo1GfOyA//2nYAvInOy9K+PSgk/PBx5Nnf+VI4/dkeWAcKKLU60gGNVA5MDSFiKMJRpCw3SXMlkGPXdfWhRE4HZ0dgLn7oQJdcD5/WAKQx+dWMQI7XhTgkKMfF/u9RX1oJGXxskhYK584fMXHB48Rny/7TGDohUdzm460Vqaea63AnrGphmZW+45J0POK+dmhMBaHI57/NElh0tNKV8TDof6osm0vhLrzGlXOdstqxUuD9fI5RkmAZto1zB2DS8VsQ6qrG2lHox6KcSnB3I04ksFebJACJcWPHsoxFcGh4czayvcPnnG+MpAr54yXVZ2daKrYKLsy46b05GhA9eABt6VnSpGJXqjOxStBAOzieVs2zhhoRic14YyYXZAhtO7UywZ0VAYPeeXow9EoDcl6pnY5E2v0lp7soyqOlMRzj3PMddk0KnlmeAjTfVV0xtmiWz+8mxLLywiDWpHV6Y6NqlPpnmJ5GBElGRvRWQyogvFGrHmOROWMhlXTVZwJPNh8ZTAJ86g9ADxoAvsS5rPr2Tz1yN/JnmpyY6SjfElEsTYLCkkkC2FEVKFOiIZ/3kcpnlzggGD6sKySQZkqz8hfcXupPQ9nLIxqGVrnDXSEHz3daCCUeXOWPmjsSJSmjUPaAX+7D/9/YQ+QTkz+g6vDWKilpm1gnl6+o0INAo1FiImZFRmNeo27Kt6kbWrdKIrTTqHB2/jX3zO9ImHSDFMB9wP2ntGvNuY3tzRo1LmlLMniKu0JUGqkIHVCWLHVJ1GBclBpe0rLgKj4tLhdmF9d2F6+IiL75lYzkfcd9k8quOypLXDALNn+JgIGTAp3irL4yN2Xbi4d5Es1HoiFigy02VgGZONFuXcjlxoIfTEMoxdnyhMLOWWP/3JK37x6TPk3DY520tA66NU208S/MwPHFguTsiToNu2j1jC022zk2mnYF6EsKCdhLrCOgW1CtKdsECvsqZwTfB63YRTHjC5pMwQhersJqGLMG34fRjEyH5wqsptcxibigcSAy95XzCEuRp9q9FNstaG9LdU0gd1Zua8rpmKvkCpSr9NifM8G+Uie+NSAt1vCopI5URblHYM5qttKFAK3QfFE7Q3U7o3puuVdnNNv9dpEZQz/PwPnvkf/86Bm/PxO39B/zFaf/Tze37fpxbOGHMH04Gb0N2ZNc+SHjn0bgwmg+UcjFkRC9QKcw08OrVWqjplJAmhiLOfL/nC5w7oO8+5OH4N+fQ9uDD4yg38ro9D6Zk0tjRw5+1PztxbV/73d+HJaFy8nvsSfeACN6fBXqCIcSt5lo3jid6D6MI4PEKWA8TX2O8cbStYRaITokQbmAUl9iwDTgJFlCsfiCvqwmV5zv/wX/4IP/cLv/Jtf/0/FB3Ai61Wvv4ryVB/Sd++r9A9WD3oHhywLe74DpUXniyN5neU82CvwUGVGkIPwS0ZUaZ3zJtI6nM6tydAsU1jiQSLwjcaadiWGJKpOyqBWGyMmDRHddIPwbdib2yGprHRzU0SQTTRjL1EqFJSriGbfE08AQ8PimVEdnj+ra2BViVaFklto/pLhlawtzRjXcKZZgVRegfxBEbOLtz2QJaX4dAflaPuLtvobt0xsu7mx3eff/D7CFxNG0Vw87swYGl30dJ3/y4BJBUh7TGcwAgJSjhNlVqdKpvp913RPILe0vDfNpaVmeLk40yb/M8k/36VLLgEEjDTTYYkL/8e1ZcTaI9ApWdykEIK+rMxflGTbybzGRqR96ClW1wCWaIUNgljBEPZ6MkpcS1DNuCrgycwagH35w/F9vJtX3ugFedf+sEdQxY8GlYn1lEQK4xlBZ3xllHc51Fx9fS4MmdfV+aYUR2UuKF+VfCvBffe/CTlzT3t8oRNoMxM05pApHT2u8LJhXk/YS39YG5vT/RlxevAZKGfO8vtkeW80PxMHQX3Rl8Gy3HFR0pHabe8dnHg028/InqDw33al09oFdQnpAZSCsxG70Jdg3uffcCPfeITyDCWfsYwzDYGa1WiXBIy0JIH5VwvqPMVdV9oITAZKRopmDRMhDmEbkEtjjVYvyqU3cT64EgflmDt2jB6pkGKbdKeV485A2xWdxk0oSEU4M/8gbcJDgkcb6laEiuug1PXBCIisAPEaSWeD9YvLtg7xs37ypM2EQ9nxm5F2kR5o3L5WkHLLaaDaQ7G7Yl41ohTodcdcb3SyylZc5snUoQRVsEGelTUDVOFtSOhWJ1wG6wTjF0hZifeOsKDyvAFjpXDUZkWQXywvxiU15Tp6hp5ekH7WsDzM3OkKeVSFnzueAQ7MWpRTCxP/q7UUjJNbwaZS7K4DVQ7U3XmUtEo9Dbofk6WagwMRTVN9E13yaRWwWSimjBFwfzVA7MkMtW2NWX1TM+yzWvRxXHZJCgFphrZJIkjJdAy0tvRknVeTKglMs3Pt3NK786ioOBMbLWKO9KD4g6r5TWyjAO3jcIZfR0+AAAgAElEQVTkChqOulI+IFn3HlTYhn7QVkFdAM+mf0vydM/ghE5Owo1kbyGZmhhRiBB8ZL22umeI0B3EJOmLBY5imfTYlT7ybI2tsb3zshOSfRSRdhFGNiEqKS1ThybBGmkaXSisr14I2G+59I6dJvBWveDzr9+gvSMxY/ac4jXvrVhp55Z1fVuZLRN6VYWqgdQFnRyi0X2kbcMwahRmLRxqhYcNf/CA9uTIenxKs8Z8ccXVxx+ibQdj5f5uYtoXdjtjKoWg4wVKmTDZMdVC0UAUdlqoA2o9ILbdj0WpLZBnO/affsTl/bSg7CdFMXQXya73vNZFK94rTMnImMVoxyP10R4rE50zzVrW8ROIDGrJe71o+oWVYnQJVt/hTMy1IbHS398TVws/8/0fQ1VfBiwIHwkD+LtnVyW4EOGP/uAZt/Sz7S1/ojYYZ8Hc0SUN3f1RRx8I5QHUt4LDAyVq4PcDvQCxkeErEpSiuL38nQnOBsvzAZo1b5EMvVANykiDbo/B2vzF9TDVjeGZeJVp7kFrjPS86oEvyU2X7f6xMNoxeD5OeEkSQ71KJc7uSpgvFWpPZqjkMNNl62HLYB9BnYLrhwUfsB6dPlYcR2xgDksMhhudiRYLTud0PNNOZ9p+xy/91Mdyo/+d9ZuWIPyLf3Di93zqTIvgEM6igAZzdoEvsIy9wlzgoFCrcphhH06NYFqc9qRjtx07NuKmw8mZVuFqVb6HM4evvc+lrMj7A25u4cvPkyo9GlwIfOUxvH8LT5/BO+9z6cHvvVQeeCfeP9PeW4knZ3j3DI9hfZy2ReOZ0M6bmfKk1AulXDTqgyPThTFrI6bOeTlzOja8CycfLKMTviTOMRqMzpM+sBjECJ6GcQ7nL/wnP87X6+x++9eHgpl1hyTEnaxwA5b0A5qve6ZJRFBBtgjV0LhDvHAyKeLebnvDbQyYSYO+sZ76XSqU5MciQtEEnEpk6iAqxEgpYUUZd/I9M7x7Ti3ZfLtKbJR1SxYMm/+QadJJRbdo55SX6ZZ6IeLbtF0gBCtOD0e0bImIQvQgCngf2FCWNXW1JmAF1lY5XAzG2JLqXJlspDlwOLhhJZk+85Q67CCn+M+7sqy6sbriO0IB/HCsfDMpd1l9ueIbfuIllCr8mR++5vGRzfw10Z9OUD2N4M3ukiuTEQU53TmvGWdeECrBqLmpmfbk+3lskoNB3afZbvGgbRJGJAHRHtuBt0V+yx0kl4QtBoaIb7V8emWNrXB0yaYkr3QyC0ukYX1EJGDGXcInsE20c8qc0+w8FEdOzl8U+AlmKbAApL0FFvZCToFupvTf8Pq+amsmn99DL7x2EHxc0O1Il4Ew6OSk3imgjdprgj0YpdgGPk5EdPQmiKbYa1d4afRQJpsYa6e7czHtgZSzuBjn5UipndCKLik33pUCOOvaCCaEFdNKMaO3jlfQoczTRERKYWjBQWeu94XDxUxcdPpXnsL3X+C/5mgNYp7TH0dAR8H3iu6DaTf43P17/J3b95hC2FkQpSBlzillKL3vuDgUxojNwNspOugb+0UcStlYMnUH7cTpiWEY8uZgZUnWmuR96HqkjxkVZ/gtpQRjfDiOst/uVYQX6aEiwe/+7GtI+xpF76Xp9Ai0ZBMd20h+kaSVmxjl0YNkcTKQUtklvQXhjD45UK8L9Z5BpE2u0SlrQX2PXBrMHZX0XOvS0VI4jZWvnYTXbwZycQkIvNEw2dOfD1QL4Q3VDl2ROVmI9IEOhScnTtK4VVhlYVFnXkCjcj1gvBks9wr9ceH0uKMPbtGLSrhSrdCKIe74ceH+XBBXzt05ewcp7DCardxqcG7OJEobjndHES73QbBjPZ8ZWmm+EKNABBGZ+DkprKk5YjgvJuWv0hJN6wEnX5cRkX4sEnmebUzyCPK9H4KZ55lkgkRHiqCe5XpRQBWVQcg2gHvB4MqzcofifdCWSpk8/YHuhkwqLyZKd6z5jAxM4E3FGN0Zml5tOLglA3pyZWU7+EI3O4qREkJeWtHKNpCROzfyzRNSIwH3IgDpL1nMUqJEsslUJX+nC+752ogH5pKM/0gZf0/yM+YkA2NL+i2btGcI3IRvteFHYwVbc47wr//+h5z8fdD71HKLyvWm2VIGR2ad6E9Xzs+EnT4BoD1c6HpJvTgwpDPqTMiKSyatjjhRZM/OdhRTnk0nZKfYzcD7CrsdoY2LN69Yb26R+4NieZ8UZmRKEAFdcJlQm7k/7XlmhbYumBjzwTh7sur93NAb4/rTB1YaY0n/wv2DGQLWVTFzZBRUN88+UdpYOftKnAqHw8ziZ9wvUamUCLSe8OWSjjBpICOSNSpKxSlxZrFDps46tKeag8o5+AOPTvwvdYesR0a8rLteRWZWsiNfPq8t/Juf+8IFx3WF1pArQ54M/GHgt4KundWMejVeBDZYZDJ9bMNZhJwcW/Z2ntpDRDzTXjXVPQmQC7Zz2sbuDY8Xj6Gbl56a0t03YFFwc6KnL60AXaGWQs9MSyhQS/p0LedgnskU813W1xF35vB51gsgmvfAqXcOZfvi2LCnAYsZxeG8dnQWSqmcngnTfuClUfXAcZyZinLqK3rvkn7znOqCX08sy4lPPQpevyy8+2x8x6/1h339qz95wWU9sRn+IBZcMLJ2C6FanjlYOrdpOLVA7QPXgqpQysT+clBQhlf2O8W9IT2oU+HjF4U3y2B9/0jElvz7uMEn78HlFfyN34CPX8E45IVvJ7hX4JMzVwL7/1PZrQ0G9LaiGlwM3fzJheerQ6THm0iyEOfzicFzukKIIiEcqkINjm1QI2CvnEZnUsHFiKGEKs+GU0TZlxVi5uHDlf/+L/wR/uU//9c/0Hn/9q4PRwfwknz10gD+G77/V378CnfhuIE3pWRIkZDGmt0dtWzfekSaIUdSxbNnFHZTvPDcSgQ7KLNm0p8knV50c3jQQLUwlUTVYmzFmm1Nu/kGjQiUl40EkcwoqflLzO+YVpuE8Q6QCKdK+k5YCLNlHP26zfxqSW20WbprWZFkWJlzfS3cfDWTVkSEYxus6hyKcLvArii+gO6ScnpuOTkFp7XKMQZ9KFcG7/UsMF51T6MPrvgWz/bl1/PqPtjXTEIK4URQzCkunCNBIN/8p2K7tmysqamQm445OjQj7mt6NEwG3YWxBtOcMj7NqhcLZ8AGP408WLczVss2EQLU05jWcUoETTPtULdi3DfK83BNwE1SgurbZvrimgt4ZMPi8tIIv5LAmAONNA4c6AufAN8OfyF9TNKMPpsPJSuFFPC+fDVfxTvMc1DPv/vPvsVoj+lkGlpxx7UwIpik4+NMsYoY0Au1doo3TqczcTOheqC+9ZCyP3Fcbom2h11KUHfTjnChsdJd6H3Bjo2lGfO+MG7PeAEZuQ+KCkMG+MoYCZSmlHVh2EV6JfgZQTidbjnoxO7ygo/d38FOkNsd5Q2FtsI9Y/yDG/SH98SFIUPxp4Py2T30E3Xp/N63HnH7pcGz1pnKhJmiM7BO9Hqm1sraBfGFyYJlrIgO9hR8maHcME7GclyYl47Vmf39W4hkcGXy1cysQo+VFhcUXdKXRhWLmaHrd/lO+Pasu4FOAHsv/Ns/+loWSaxIzKAri6fz3aRCxEpRzc2CpLoXBsX2uGSKUQzh+dcal69fExedOhnj6Zm6TpztzDwlU+ncbtNvq3fqnNKeMTo+4ImeefaVM28+6Vw+MOTyPushpbLy3JGLSmhFesNLMNrKvg14dubxkyO3A4YPBkI7GMflxOHCcBPkPajV2L01CJl4/OtQnnSu3lgpVzNPng/O3ZlUaD2o6qAJ8qooJ/eUYZRCbWt6DvaUUNYyWFtB45Qsi4CzVyQWHCWkUTQB4e75N4rMjPHq3V++SeVi8/6UDwR6+MZATwwv0A2siUi2kWzsX3My2KRnQqBNTr+F/W4zaUfSRgEILfTi7IoyXTTGSObXHWDWE+3Ium4kyzlEmXRsEnlHJ3+Z8LnVeosHNfJvcd0AKc00Rfe0V5CtYTVN4bxu7LFB0MfYyjjZfDMlUwkjYIPC1u21qgKIUzCMTI92EuzL4VBK97lrXLfBUN2G0svGbM7AD3j7uvLFZ+07fOW/8yskWXo/+0++zf0L6I8viZPSeUDUxp4rmt7i+3vYvOfikTFfD9Q6RWGOCe+NuJ1oT4/06Tmx7+wvZo5lYj9fsRAwr0zNuJ4rrUFcGxINfXrCrvfYg4qr0b660sYz1quZq70yLxW1jsuO2YQeI4Nwxi0yBbKbcZuYxsD7oHalftroNwOiUXZ76t7opxWPylxnuq8QmVrXtSF9pT8bzHrJVBu9NMooeGmMAaqV0SqhK/teUJyznkCusD6SRaozk69IK7QnO+TBc4oqYwOA/50vvMF//su/gbq/8AF+Fdfd+/+uOHaBn/j0NT/w1rOs3E1Q76hBnA25BGlCLJ2CJMPThDJVWm+MnsMim7On1G2IVNjUCx5IFUYmJ1FXo/VBFCXUaRFb4FcCZUNgVmMdg87LFMTWcoCQU0zh3ALoVNVk3He28ChhdwhWSYnZJGXrQyG28DDX2EC0sfn3pnetSRI9xqKYVjQ6A0OL00UYkzM9dKal0k/CaXdkxCVeG4HRucHsCtud6FsLonrmL/2s8Cf/qtHjdwCtu/Uv/NiO3dSQYQTprT0orN5xCWYT9pq+ZGt0vAHFmOY9865jUmicKNLpongI+z1pzeFQbhv+ZOXwsQdcfmzH9MYl1AoyclN95wTa4Gd+GJ49gV99F167gmMBPwMTaOHzn5z55V8fiObZF6GbbYXTJHBLX1DF0huQ4NRXBsr1LHRv7KUASQ66tpUozgpEnzgvK2M3MxXHOdF0hyL0KQdFNoxdXfmf/vIf4c//x3+Lf/gPvvbbfi0+FDog+cAHEh/4wgf+7yPN6iq5AYizyW3ACKpmgx2RmtQCzB/wUbkzudZtSiiSsq7uTuCMcEboC6nVpJYblwTDlbBM6JG7dDf9gBfVXQNJJNhVclrY3REzBhnt3XtKyiyUgiZbSxNE8M10O1F9TbTWQN1eJMBogakoqlBrFnS+0dlEYB3K8K1AJA1S10Vo4UmXHUAZNFOOJ/jnPzfluOwjtP7fHe5f/1PJvhOuajI6fZsUF8viVyWntwkk5aFUSvqDqGSikmkW42L5gCEBRbZUzWwMZANGTKBoMrdEeAE1vrDJ3dh7dymDfbu7TdlYW57UVsmJt2+y2Hyf5LQ8GXyb5EISzE354iZX1EzBlI1ZaKoUyWI+SB+BQTYI6edFPj/Nm3FIIB/gZb+qRZUCb5WKtHfAD1jpxJghjBgD7QvqFQ0BrrAiDD3BTae9r+z9DXavXcPDYPH3WBele0XVaBpgwjIGy1gYFJZTSmGe3j7HLgMpPT0dRFEpaClbA3hJxESt02b6faZYeiwxBt4GGsGslV0InJZMg20OV4V4w2hPGlwZ9trbxN874e+sMFWK7WBKAIUCl/vC24cDXZ1FevrHNSdsi1ZnouiA+YCjaCn0NnNzs3L77Gv0L1+wPDEOMaEPQa/PmBi2+eRMcklRBx9pEK6dQcp5JIQ+2mbK/Ootl5eS4Gd1UDaDWo1KxJZc4pURzhJBOjSmbMa0Zgy0ZIO+DNC24l9R9vUKOSyYCXGz0IZwuh5MO6HMlWFgsd+SKI3Rk9/VIujhjNE5L0e+fLzlnXeOHP+3L1H/9nvYFx8zv39kul2Yn5/Y3Z6ZHp+Z37nh/MX3eOcr7/F0ZPHfXBGpDIU2Ous4ESa0a09W8RNhfXrmtU9eQp948o/OnG8Lhc5+DvZ1Dxjnc0Nk8+2LPJe1KFWEeZ5QUyY1dqooM+tY8Kgw0oBVvSNSGN6JIQhObzA2yTTSSHvgV2u5j43BFxt4k2yhZE9m86Uhm+RStqYmvWey+HFQcrA3BaGOejbvIYMyOXXn1B15X00DkUHDU/6nY5PPJ4t1ljwziwrlrhDUbfinL4Eo2AYqHsjIIUrf6Fs1sii3UIT0IAUhPKXyw3NAkDVXnp9Ft3M87gZdydgKoIdzCrhL+yWyfkugLR/ftu8lsX+rA2Lke2akbFMkaNugKRkc6dH1k5+7/g5f9e/OMoWQK/7QW0K3Rnm9UT9xpn7qOfMbA//4DfPbcP1mUK5uWPpzwm4zxVaUo5xpc0MunKtP3Of6zTe4nN/g/OWBPTZMoE6ZGl5rZRmDIU4NZaoXlEfXMJz67MxMIa46V/2ah18VvG21vVWKzkgE6pvf0X4GJENTvFOrMocxFUNunXI9sbu+ZJ5negtUD1AtJfmS/cNxeYz1QtEHzA8qen1CDZabhbAJiwXDQAZqjcLASmX4QPseZWVISmZLd+x9RZ4G8eg5YjtMSvYPZpR6y+96/V6yKbf+6RUkZm3SyTuVAGgUfvqzK2yMyLuhrzWhHQbRlREvfeoiUkCwri3ZpBUYyawpsNVrIGJIlh5oT5KENOhrRw6k999W8zJGShtTzsCJgStUgeIZHFUGG8ieQLtK+mCuHkTLp+RkgNMIZ+5CDKFntQ0SaZVjd79ykzgWo0aGMU1asKHUKqDOag42GOYQI32YRhBlRbpgIcR0Sr/JmvvmsOC0NIILug5aP7Asxp/+p976zl/sD+n6Uz96yWtXgvqg4FQzpGSin5liZog5Vg3RTj1DmWB3XXA70XHO0SiaPX3RZGzhTozB7XuN81npDyv775mZrirUgNbgcoZ7E/z+T4LtYD7Aj3wO/uTn4d41vPsMri7h/34K773H+8+OmDeqN0SyJvRwWimMUGYXSqQ35YxwJcqFpa/pskKRyrk5N8NpwEk6z4dREMY4gdlWNzVqCw4C17JwDewjOIhz0MEO57/7j37o23I9PhTMrBf41faBb6j7HUPre68mTKGFpK9Myo5fMP+HgN8xUNwZnt5DSk73NozphcRQBZoLO71LRTRaT/+qTC4xmkcCEPFB74dkwoiktMy3w0I1E3qKkMalsMlnUm4YW3OvAj2CtY2tOEt0FKBXTz233j0muFtuwBEvEuJCnWppIB0x0rA04gUKqKRWH0mZI+b42FhqTbHJeT46z2+Nf+57jb/0q7JhaB8NE/jfmiH0m1HUqndgUBY7MaB5urvKxqgL8t4TdboL5YUpfyLYsRnZ9kh03jPILdleU94bJnnfIR/4AyWSURgZ9X1n0l5F6KSUcNNegOdEeADh+gKiTtApi/QxUiJSVRi6SS02MCrSmCeBKVKGKJF+Da6C+iZdFaWR74kIwXwD0SLokp5hEtn0DIkNYNtYaa/o0oA/9v1vUuSGRc9EGMWcpZ3ZzZdIpAy0RsXtHZbHxs4v6bVQ7s+4Pk+Z4eoold6dqR4IDWLcgjxEYiC6sJxBbGV9fmZ/eY/ZsgH/f8h7l1jbsuxM6xtjPtZ+nHPuI248MiJc6cxKpytFWlXItgymiipwFVCinhSihYRUHUQP0UFISHSQEBJItOiDEPShAZ1yq0oChDAgXJTLKTudkZnxuBH33vPae6815xyDxlj7RNhOC4TTzuB6Splx7z3Pvffaa445xv9//zQVjmPh2NemvjlD7hAi1a3JAZELhMTJGn5qyAgGlnTgYDy6UvR+gw/o6Zb8ZEu6FcY7O3xu5F96F/vuPf69E6I1DnLm0AuUxnuPH/HbhwHjPqCr3dBNxrqzKY3WJtrxwDy/xO8zKsokW+pbW1qbUU/g05qumRGxaMiYM/eZZA2pG2zM5LFjsYjIHqvqgvF68hxcIFtMc7/5zhMsDYZbADaTx1QegEGVFI0Jk2CJsR76k9LHoBwOzHcb7KIwvTmxsSPjReI0CfmikmTBukLqlItMmjuHLqTScEs0VrULkeTrUulduR7CvRwZ3zsivyNMm8RuoxwOwpSFY4sI51MP6LZqx1RAwlavVZi2W3x2TO6xumXUgdcd073i6cjFT1defv8x/XfuyO9PmCp9gJaB+8RpmUl5oGq4JJZhDJzqIElpXhFbaM2QntCsmG4YOiNakDST5RL3DtLolhC5QzQzLAYHr9vKGim3vUNOEeWO2+qWDzt72NTP+0VsNzmNB/6U+mpMX5UMvYVXz1drxZlT2cXWxtlqxVh9PiZOdn2QIEbNFYoml4FLghS2R1kbTE5Y/cNqJFR3FkJllYqEyqE71iMdtmYeLH3ZLV5bzngFIcz6KeykX9jz8bifikWPP52baxbJVH5mq67jptnPzb9I2BYPe7CORKB7QlWWRegDSjK+9uRLUYL/ka6ywrL+5j9xxakEm8417lXGBkkNGwXTBZii/LGFkSBbpvcZLZmkW4ZkZGOkWph8w+Vb77NcH2jfu6PVI09+6h2GRKwIkrGNYPPMNE3w5o7jzZHNjcHFnvSesP1BYnl5x7N3H8XhrggvDo6TmQaIOVPZxDD61JDLCaHh+4LsBngG1sFiLwxdov6xsH5bH2wv9mgqjNHQXkhSoCzU3RPavOB1A9rIPWpHkxqOs7xB6XRLVDG6V/wTR3eJ9jgs0e4dY6HmAHirZf7aNzP/6MOo/1R4Le9drGfEcyL8z7+X2T2ZOd2DT1FEK8T7rhMDiREul+bhxAoXsKPdGGm1Fp/xye6krPQeu2vKgi4e+0ZybGekAUMVtVCeDiAtgk7GRoUTYV2GUMa3DGNS0hLm5Qe+bDmnK4ZaswO5x+NbVrviODr7y8DjZAkVrKyK+6yJdjJK1pXJ2iiagoUqTiUhasio+Fjw7IyTkjfC/ung/rOCXg1yjX29pomZ+xim58ZpUarMeHf+2p+757/8X/94X+ov4/qlb+74+qNOs2igLhLs9bRihLJUJm2oOfd3HXPY7SplMja2IGlaQyIELZU6HEuDuxcL/TbObbvLxP5q4r43/o/vfMLVN56w9wzvXMB2Pa/+mafwy1+Dx8And+AFvrGHt78Ov/o9+OSW/lvCizvjk2unrU3QLqAbSLtBykIuCbNEb5EQvEhcz9t12EQPl05BQ+lKZisDH8qMYjJgKLkEekbaiaNPeDJSWjgNofU9VRsw8e//e7/Cf/gf/b0f62vypdhJ5eH/4+Cvn2u1APhPfmlHN+h9PFibikRxXSRYD64r92FtVpkELFSSrhDsePHHiGQ2zbAMUA0uVkoCFsUWRBwq3bEcIO+y2gjdolgJBUx6YC24OpjRmpCJCxoVGo4vwiiDdm64IeQU/moXIWs0mrQIJpH+4ysTrPd4WkTCS21rkhDZaTPUHSwjrSl58VxMwctdGyaK3ButC7udMzeluXG9wD/3XsQSD/+T0cj6YsNKvvAv/K5/+fxv/9Y//STsFT2id5MFiBkPdpmJP0i53ZUivqaRDAylTtFIHCpU0jrIXq2nGk2PMx8OomgOIPu5mI6PFTUa+sC7grOBT1ZWloV9VlaVl0fIga9MuDM+N9D19tCMis/3B6UZwqq2CibAWb2VRXBGAGvXvmnx4MB1ixTNso6ts4Tlsq4Nva9/Zct3fnD/2iqzNqnyrac3zDazqZkxYhPYTxfgDUkbuDdMDEnP0KvBWGXlKc3RPLIFT5XMhOZG6/fRQM+PGcs1sym5VlRnxqmjNjHtMt1mcim0peEjIXKKWHpJcWN3wYezL29g44QtN3RX0qSkaaJ5YtjCfOls9Z6vPV3wq0zZXGGbTPvQqN8oyEePOdYT9VtP0F+7xa4S/qsfo19LsFekC/vsXOXOyQp+UrIKfntCpOA4rS1YM+TjHbunA50m+jBOL29j2NAbiyYWv2e0ibI30EwWIbFnVNAlIydnmTOPsjIXoqgTIxf5f3il/v+5shONGxX+nb/8PoO18VcHNg70viUnQ8aW4S3UmRIDEPEtvb0ipUwW4+OXE29+9RGUgdgRu1HGVWKbEl6dcXLqdk+TjmK0NKN3haU1ykaJTPCww085bA9y6gw9hRLPBE3Bnrm+Njxnchn0U8X8SMqJnLarDUsfDmMpF2QS2kE4HYR8d8e02QO3cDkxvcosu8az9zK97bn57Wuu3nC2b+y5HnC5TdycEstQshp9jhj7NhZmHFsGGWh9YapX0YBxgWG0kZEUMdiuHbwzXDE/Ib6J5has7KTXa5WQ/TI8ph9nUHS4YJwUL/HDoQ8P9a+vQ5xqK3vSw2p4OuTgYk3RJFKNvcmJfS/aPpFeaj4Qj0N6TmFrtPVjnajD3Eo0gIgmV49zXagZPBpXtvJTs4Z6HnPG0OA1JqFahG7IyrwaFkNHcQmYtofiUNaBjHo008zjZ441WCcLnBOLU0xFyR2GryFA7riG2qLhZIRsrPavFvupnQew0WE4s09e96UezZ4//6eEkVYGXXJK31MLzN6ifj21OBTmEuncUpAaIQwlV7JMkO9pac+wmVz3YML05JLt4yvKpMz3g9t/+CFpl7h45z2YQfYbluOC39+T08RoRx7fFdhm3vnqhvod0H/8iu3PXkVC88UV1jq3R0F15h5lHjNlW5H7G0gTKSvSDWpwQlUFTYl5vdcc2oyOKZTSHAMIjtBdMaIuyPkOwVArwJ5Bw3UmSQOryFgYaZBGYrkH7cLpHSGlBbOKrzTULkI+FdIwpDWm5shUYTR8vL4AkfMj65L5u/+s05ozOSwvlfQomlB1BGamlkQvjnxGNApDm0CyeC+moXjNIO2Be2XN2CR9OGfmnFjcGT0cFvHTo54WgzqUlqBY4jRGyKeyYyNECsWdNJyhwmi+pt0LNmDWuD/1oRRzLIPWVQDRHbbQ2tqgN6XujOUeNjtFbKAFxksjvRFCDXzlHZrTsiCjBK83E4yvSdDmjOSkTaeJ4VJgdI4I1bfYabBsD9jIeB60kzBdnH5Cr/aXZ2VVfulnFu6WUA1v1YNn7YUqzq6AphlZnH4U6pMY+jAapSaaFLbZY59pjfvvOzcz7C8zV1eJ3ZOzKlhpy4GNJD6+Mf7Hf/iCX/kL70IxmLZBkb89gC5wY7E5WqilycAvvQvXn9E/anz6O7c8elaZ7zvj1EnZOJZEG3C6MVrrHE/hYHz0Zum1Ti0AACAASURBVEGk4Uv0FqJUGuwQTOOscaWDGeFunNAcDL+iipuRfZCWiVQGjEa1ShkJtFN6MML/wreV/+6/+Kv89X/jf+DH5dv5UtgMY51vDT/iga0WEhHHLFrn81iP5k5wsSILmSQrLNeBdIabRny09VA1daKrrQ+FmeE24pA/iHQoieIukWKShnEYtrKxJNgH3fCk8XPOBXJau/or6wh3UhUYCdVgQjjrVC+BJaNpwN1PbS2ZfQS3YoWO9y9IZwWYuyNpsJzi99G1KeHxBCASTYhmjvXYBOvktOH04bjENH90eVCX8XqeBb+wzrKnWGdu1u/XY50/HuvxJlRQNQWk31brYF3jyEWiuC5qiEZypUgUOLl42D7V2ausk22Pa7eGgil6U+vmqasa0QN2y8owcVlB/awTv9BVr19rwbxap0kr1CoaptG1WifCFpPzETh3FT+r4B8e+9lie36mhFXyjNNdIznIVxXfOZpo7eCLB+dr/WgoIkX46pP02hZTAH/2nS3DnKLKshiNA1kzIgtLb+RPG+nxFn+iIPecSWPLGMzLYPhE84z4QmJAC0NTFcGWG1w8pMejk+tEXxqbiz3DGmbOsjTGOKF+AhSGUggbTE4F1xHsjetGq4W0EYYP5qVTk9GYWZYTL+aF/uKASmYUhwuh/sWvIN93xr/yFconRjoK9t6G8cELdL9FvnPAvn8P95lNcyqhgtheKulyy9gU0jYjUtBlMJowHg/k8QZ/+gb5Ys/28QVpp3CVA0a+21OeRlP2pPcs2uh+xOZrTvKKcdEoTxv6SJGeSMeC3k349ZdoK/sxLlkZRtvtnk2ayYQlzi2Rc8G9IToQiVReW0fBIgL2gm6DjQnt+WD33oZR7vFxpB6hX21I2dBkJBqT7gMC3h2zFmrmaWEcCzqcZI4OIxm0JVh9UnPI6YehIyzQ7o4mZVmOnI4DdAYKZsbog9YaY8R/7TydTomRjuTtRN5UkBQDrJcnZgV7dUCmzpCJ/PYTDjc7Xn56AzlzGGGtVE0rbLyT1tCWTMj+e4vp9BgNI9GGMaSAxxCBxbDeg+PVHaFg1rGe4zmV149rNETpBjUbVZ2SPlcbd4zeNVJCVwaLJkfVmFTYruiD867pi5IT7HYDXRvMoqF0qCIUhZqcnIOhJWvKYQxOVsXXyp/MotEckgAmqMQBzkc0xVSJZsKIL0w5dqrgzayoCFu/v4a6qpZMQckp7PKqK3KCtTmmAcOdj8I8x06WkNgnJQ6dWWByp67gfNYGVzzOxMaECmxW1tgicZBsHs23TYoh5iZFDaE9GK+v+8oCqhU5nWBALonRC3OZSXJiI8JkRmJDKGecbltKVXIxVCamacd2P6EyYf0INtHbgqlTNhXZDCa/oE6J9OyC+ipBFuqk2OEQASm6kJc7ntYN+3nmncV447Zw9eae6WYhvRSYHWbQl/AoF95KhU0tTNNERZjaFSk7WU7s9xNZjZQkEj1lIB0qlWm35erJhnrllHKBpDgbSEnAnmadnDNZa1zfaowS9b5aZZLByZ1ulf5pw5vT9o2upxiKyhxqH1tIDewkaHXKbkN9VPnpN57GcNQ/b1K/TutcUwoxWB0+oybYBtIuUsNdwLfh3Dn1QVenqyCrhCN5NOmHwlgcJ5p/WWQNK+ChMe3NOVx3FgaUVSyhMdTORWEj9AR1EqQY4mHj7rOdZ9UMBBshkiBFpTxstR070BzaoJtzFMNHNLpKiea7xzZHquBd0AuHarRVGStvCscXsEmZLIkitu5vzvDGaOkBs5PdsQnuzbFtQu4F6LQB3gtSBiOBr46j5plZO8cB7z16PWut/7fr7/6KossgYdQUSj1JE14bKXXcO+0m7Hm6geQTkBBzlmXgp4UXn8x8/Dud5z900mXh8h1hf9WZNODqsxmlt3BkjYF3+KjB//RrH3L9/edw+wru7kAGnBocHZZQozIJbCtc33L927f8xg+vebVkhi200clv7GCXkTa4uFAevbPnyVsbnr2r7LaJ599t3D8nBtLZcDEmhb063kKscSQxu2KuFDsxOfg4QTPcOoMBi5NtQO/M3mnaOErc3xVlsznxt/72t39sr8uX7qrUH3HjVVWQiBvdqqxFj4W6BKfq53J2WeXnZwufrNWKa6QADo+DfmwIZ82KIElJqqQkkQI3nKzR+DEcTFk6NBuYQ01KrjBGAK/nbtEoGnGYGLbexNL5gBG/Y1Fiem3BbEhEEWUjGiZiwagYrviweDwZlmNcXJxvgJJwl2iwSORQaVqbFx7QtaxRlOYSFrG+qspwj42yncHd/Liao1/a9XvVfp+/8uf2ze9+CrIKuPL8Nia/903XRqYHuy0LmxL2VZVIC/PE2s7xdfqbKKw2Pz9vXjER3+TV0y+OM1bff1zTuqbGiUTjaqxyYZNVFk3478+4dl0tg0miOTnknBAVXx+pdTFhj310fa/Ieeq+KrGIz117a/EYvvhMOSDOUH+wT4oP0nmyvz4XYfENRsmziz+iF/RLsv7iNy7wunAyQXIi+Q63UGI+un2Gvzuh1skYm7qNg7MXdD0cNzuQyBSdwg4gkWrTloD1F3EKcaDq1zcMr/R+x+gwPCYqS1MWCRC26oZzNP3oxiZX2v01vk/gC6d2x2gD1c7d3XOydpZuvGz3fHp7h/cFkuJVOP5Uo/2dr2L/6GP0Zx7FZvXqntwNuR14eUT6OOEfHBjf7bxxk5AXjTqCBegEY64zo1Wx04lpn6l1Q+pHus0M7TBNSBYWuyOXQfIE6ux8izYhS0cQ1AdphmU5sYwTtu34/oDs75HL15OZ5R58yH/5zz4i9Qq2Q+hkwHohyyZUedoRO5HHFqGAZ3JSymlw+yEM2TDtlGKVegCjUrSRvIIOlrvOSINux3irDyFpQvKq4NFgRxp9BXYLvQ2WceJkq5pJwVoBczod1wBp0xUfDUciqEDzg01UJRiRNjriE4VOycrQTi05Jj408nSJvepM1Sm7hr4ZnDU5XQc3s2Y204RYpdaJYc6gR2NDB9t9p6QtyTs1JUhGHzNJ5gCUSyInJ1OZUkwU8kgUBgkobH6yF8IfxTLHlFAbaOwLU454+0wiSdj9BKNIJEMnD/VSFdhkIaUYpDGE7RR1V5FQpyuOmwbPTEOdEKm6EWF/UWBTZN1DQ8GTCVaMpowkxRVGTyDx9ZIcNNTpj95wpgQ5C5ukbGs01ERWO6tIcBv9c2RF9XXPZmXPyTr/8UHm84HR3M8Yidj7uvlZUMVwZ2ChypJgjeSgT7IAJzygz6zcsXVfdg/grhtUFbok5t+XdvQaLodf/tobtAswb4wZVBuYcFwboicSfVJy2lCqrs15I7FF1FFfWI6HQD7oRK2ZnFaOnQ2sGS8Pn6DZWPqRhnNzc4NZZ5KEtCOPPoDtDxt6M7h8Vdl9/xY/LpCV/Obb+AdH0IKVGky9KrydJt4TuEqF/UGZZGFzO9gtCe9KlUoeBT8Jy+0gV2Vko2YlZ6XKBZoSJEVlQiVTJyHpxCAjeeB55WWxoKbhFrGGDkivFuRxRq4GohWxLaigFDZDaK8yohvSo8xshc4BF+MvfeMCX99rr2NxL3JuksJ7F2tHfEW5pOosn3ZyF1ILzNAQYbSwVNPAU7CFkQQaelF3R9I56R6GxjnweA3SM+mpPNgQVaOB1IFmhgyn5OD6jQNoiiZ7LXGewwVpK5g9y5oi6ywpmmAEzgpbWWDFYenGmB2dNRiOc+BP5z7WAbfSezBUByDN2F4m5uuGF2NuhLjC4j4laUS9XzIDpTejVEW9413BAyOgw5mTkZqAdxaidvTeGafGf/rXp5/Y6/6TXv/MzxQEYxFIuZDV2aiQOTI5zItxOjipQr1Q8kZ5mo9cbWE3CYdPnetPw/66ewRPnlVKbnSce4fbxaCDLMZpwP2dM2bYTnDoys298/d//Y7/+R98yK/+t9/l1/6b/53lH/wmvDyBN7g5wA9v4IOPef6dj/nt68YHLxJZIzm8VKW3mTQlymbD/GFj0w7UTaNMibefKu9+NbF0OHzmTAYbgX0pEWqQ40yYDNQW9sl4jPCn1PmGOj/tja8jvOudSTpHM26HMPsawoMy3PBkIJl/+1//yo/ttflS2AyR8wSBB67Vg+1NhdmN4QHp7DLAdW34ONk8FE4e8LKKMncnq0U8MsFucIvDvwAlh7XqrAJLshYeaYWCWkjHbQS7RURoFmlJsoJDfUTX3se54UDsGQbJnIZgDDYE8bsqkGISqSgqodpJsjZUxWISjkP/3CZm3WES8iwkDbAyaX38a9dWNBReRTT4SbJCwR10ESgDN4sERVV8TYGaW175GD+B1/wnsH6U8ur3/u38dPxLP3sRLZ/1jJzFolm1JokkgWV1nhTCWicRQ/iQAuXuEflsiiRB6TCEMoXiKZ9fo1VtKCtvg/UAIRJNsHAOxs88s3dtbXC5p7BlcJ5mr1aJB2NMCiXX+l3xSGBMvkLaz4B3nC6QPQpvk7Wxtr4XfW0Ci8WGF1/2BVuuR/ohhIJryEAdLusXQxhev/XE7uj9gk06xbRVFK8H9jdXtAtHmmIlwNMRFDHofdBLZrJOKYVNUrov+OjklFmWjmsnHSdOfmRKAiXTZ2HaCy4NtxPdM5tNwdo6RTEnS2NZGQ4pOfefNDZXCiycTnPATpOy987JHuFyh0oGEX79sxd85ZNH6OPCOBncOU1+i9tfeMpmTOw+3iA/uCdpwyZD7ibG94/IMiPvX1I+caYb4+7jA8dyYvdmZfhMTokZYXP1hFw6XityGHgfwSQaB1QqG91xap2cYEjHvVKT0n0D+USyTBNhygWTtamPMWR6LSG3EAoQTZW/8meegR0jwXRo7Fl+wHQHIqS0IfUdqcwB9zTj8MMOy47d+xNy2Sl6RD9zdHrC7vKeRTa03Oj3C8iWhSPmAVPX1OlkihmLz7iXFThrIRMeJ+alItOM5BwsPXPMFnqv6BAqna5wwkCV6oV+imZVSommgpoz+0xrTslG1i3WW1TtCJYafRmUJ0+or7Ys9zNpUvJ2wd9/i7vv3/Do/Rs0VZyEO7RZAiCP0LygWkiWoi2v95g3alVODFKLNEwbR0pSlj5ImiKdT5VhA+SIWf9JXwo/9uUmWFoHdmJhxXRB1agaic1YMNLcfW3XABLMqIQGsD0JJwllVyQ362r/jURbkFXlDk6ol7uFEEEw1DX0qutwUR/2FyDZapdJ6/cWNpseqokTIEJfRXO+Np/ivZExG0heQ0o4Q98F01XhvP4IcWchDpwpQdGwWHYSXTppZYON7gyJQ2wSQUbwLg2je7DqdP0dunhYNEUYFrXrgiEpkx3mEfvljxrevm7LRPgb397SrKEZbPEY3paBWI6GIAPygL5FcEqupDbYbJQ2IplvDMi10nvHaHRXWE70+QX9+S0XsqV9t/JGShy2C+OjW+6PdzyeK+l+sJRM227ZX2S2l4Py6hH6vMFFgXcSvFAYGdUt+B0kIdF43MGe39Nly6d5wfIF7C5REvPHz+mjswjIrpP9irZ0Uklr3WYgC05Gy8DcsT6TsmDdIG3JfUELHI+Rni6UYCXdHpDLykgDtS0+FiTVMKrcHvBNZvMohorNXyEaln7zxPv1BRutHKyd37Wv1/KVLSXwr/5CRqUjroGWQRjFaB/DGEraOnJlcaYj0UvgVeK45mhzcg3BgwwnT0LqwnwNHWH32IAee4uHKlRHIEJyFXqzUG0mZZmdVEIswPlcuoouclZQYYhhPUXgRFnr9h7hI9WcJcE0ojF/5u/VAnsXRsikcAZ2VKZ6TiVXmjqVQXlSSbcd2SYWX1EmGHlNy1us412YNoXFjcmhbgunVw0uDMmRXi6yw9sp8BXSGS3humHIn0yr4ZSEX/zpjiZnNmHQ0OFoTsgQ2tEpVdldOqehVIlB4LzA4UXY+K6uoOyD3aYOnkY0Wj1Uvx04mlN69BGmVYmXgHcm46bFAOducR5thCrOd3/rhvqDXweEtx4XXt2fuD4q3792jsO52Dt3N5AuYLdVXl13pAjTpjK9t+X48Ql28OzSuR4JmTJP3515+V2jvXKePRXEGi8dsjnbpEw+2Ipy58bBlZdL45SgaFnV/YHEqbkz5cZmOPvJcGtUy5hnsI6Jsr3acbw5/KFfny9HM4v1oOtnu9P5D/ALjxMNpZlRPPhOfdVtyspjGGtKpQ+lu1PzavXjTGiIYsKQsOGZPjTQkka5lZGHdLb42YrmOLg3G5xMqKs8vBI3wWZCKsLSYJM17GMSk85MyF46tia5KGoBkDf3h6mJmaO+xksrnLU3uDOaUIoj2bCU6NfOKQmSLJI3xGltLcCyYK4kGaSUmFQY3RipkyWFD9yVhZj0jzXB53cb7V7v9UVpMl/4s/+ez1GErz+dGEMZEolLYyiZwUJCMQ4LbKtznM9N2HjNIoHQ0KwrAFZggCSjtgQCST2kltlZOmsB7OsEktVKG7+MYoz1oCirf9bOseUrbBCP5tbwaEoNjYv7HGd+tqIOieuctXGVWKdT/vlzYUSzNopsXZknZ2hvcEFiIw/ZtEKAKN0JZImtKZwhUc3yo5/n12V1nOSNpolSKpIbvIJDSch0otSM2hEfIHoRrBXCGprrhuaDPgabVFlO1xw1sZsKSTNko8qWkpXeDqQsNBesb5HUKAIyd1RKJLkO59Bu2dQd+5K4u15I+8RsgoywohkT3geHU2eUxiQZkU5vwocM/v5vfcCff/sbkPZsj+CfCumjD9FpgzbH7xpyZXA6QllIb0xwr8w/vMbeLuzefEw97Pn0eaP/4Mipdg7eebzbsXAi1YydOq0d2ajgfZDyBU3hML9iYkMPEjPmE+g9A6FZI/KzpyjYTVBNTFaZpeNfnq3sx7pM4dkzpY77gGz6hCaLg7pcoXIPGMk7mgpCofZOf25snjxmuog3YHNheq7YPiPTDXeeUGnkeWAM4MhihawBNB49URXarPTeyKafs/SsRxN76iBb5tO88vcU2BCRvcYwRxlknWjmNF8YZLIMunekZbwUepdVfWgsrcVhpMef8xAaii/XbB5X+i2ozZRS0HKgvL/h7vsnajpQvzJhJCSvDCMTNBnuzoytDKQo8HUJ5YdrovlC10EnYTXT20JP0Tghz9HIsPoTvAr+aFYjouDPz1HTzKS2Dubi8fvaAPqcUMOq6AruFWIxKByJTie5IzpIuh7i1joLC6apW9Ro5olcB+6JIRaNRnfEg+9mhLXdXFDpWFOkBP7heMwgukbRQ0mD4RqcZ4mBjqSwObKK1fu6V4VSOZKmw4ITqi01cBU2ZdD1DMSJnU806jRhzbS0aIg1FU4MJo+9UlIkWylCfgiHAddQ3qe15jq60wxqjuf2X/v2oz/mV/6Pd33rzSsGN+QUNicvkCikPpCUmFcrasoT5ELVGk1QFU4nqNuKFtikgo0j2QZ+WFg+ObGRHfrsTcqzHXPrLHIDLzPbbebyqsKstPcy9Avm08JGnfx8xm+N1DNjX9BPC14H+jNPsO/co79YYBjjg3swR0dGyx6Kk7lA08zy6po2O701hiaMDsfGbjoiozEmIT/dUl1wrQzvmBYyg6EbpHtI4oeFonUopRaSnejjhL0YtCd1rf8mJN0iXpG7A2mXmR8l+piRVGmnxtCKMVNGYeiJuSX+zs+/wX/9v3z0ACF/Hdc2Cd9+NsONMk/GlBKn5ORHwBWkz4xl52zuNuh6n689h5IZGMlZFri4SHQfmArjQ2d6Art9NBcgamdRYQMsI/aS2BfWRHoT5vvGsiMGAX2sh4lIDhyE7djKRJ22cZAfC6k8wUfHbj+jm3NuEw0sVKcJJgQajElI2fHkaIfNxtAew8mZTkFoScitkbfC6c6oe2VJnUJmjOAx05xpk7A+KCKkmrDUsHZJlZtQpA5nvjhRbwv2xIEdp94ZNtOb8u/+ivMf/73X+ML6Eevf/OeFopl9Ghw9XFgr/z0agDuLa8JhUwPif/OZcdrDxWMlY4wZdhhPFO4cTmMwe4RkRD8ikFh9Ad2uyfYW7udRnEc53DXm8Gp2Pvxs8OQC3shw7/B//rAxC9QiTATq5n52WoHDLdQa6cI3nzm7qw4kNm8XNgxefNapTwUfjSllpvcHL145v/NDY/8MvGSM4De/GCsGQIThnTQq2ZxXOqhECFWVI7QdixpuM94nUioMhNqNPGVw5Vf/q7/EL/+N//6LFcb/p/WlsBn+yKn66oP6D35xR14tVIO1ey7AWXeikFYppVtA9YZZwELNGYTd0ABXo4+xph/6g5/8zE96yMNa+VsmgqkjmmOy5yG/WtxDHr7KR9GzXDoKoiG+xj+HZNU8JuVKRFeLKCmtjSxCAotHcVYlRZEpkCdDcjAZkjpVlORCX2LybIuBBftqOPhwtvuQ5leNG7VIovcA4OcUN0WHSOQ4PzF/wtZDU0t+9MzKcNRimhKSSkdkgPsDCFdEWJquMdzRgMwZVIMHYh6KQUVJOZRVxUYU2eJMEmyjKcehPD4jR1F/tjMQTaOMrLHzfD6x1uDARQMqftPoYfnaFE6rtTAOs6G68tV6Gw1U8AduiK2PSfi8oeycG1Txg915SBB1EURllVsHaD6tjV4hlCP458/vj2ThvQar5UiqNNOIU54benyKbO/DLtAH3gqgICeyZDTBVBzkCBiJwf39HXmzJZdE87hXuRhYo813nG72bJ5M2CxgMxf5MTUpIwlNexz4bLAtBWudcXtgt63AYNhCHwfEFWkNmxM9ZSDRescxJBnuMz88Lvxf/9tvYd/7CGGmPb+n3jjpkwP6yZH8CtwXaGEdYwNMnRdbKC8PyDjBlfLW1y64evcZ8+2RnSVu714GeL4WUnaQCU2Fkh8xTp35dKTKPvhPyXHLJJkx6WCN7JuVa7PAMJJkkjfSEIoLG15Pm6G68C9++71QsFBRKSyts4jRh9Ct4lZBOhtRsp24fT4zvFIvNZQtqZBL4WAVm47M61669IYxaEPpRfHhoYKQUKAOK2gxZCq4J2yEGgUDa85g4BZx510kprdyoqUU0zky+Cas+es9rlACAG0Z90TzRlo6pU7YSGgeD6BuRSj7gm+g3yn3S0f3hekmEs7cEvt9Z/uVylEGtz9wxMeDKhZVhkMzZ7iytBnRhUTF9MDwzkg9DpNJ8QWy9LAb1kTSslp2U0T0vGarpEHJoJZWlHTYk6P2WusWj+ly0uBciIfFvtlAxYOHJSsE/bjue6Ir9HtN8/IV2aAe1pvJqZuwPUgO5pCsfBZPA8bKgJFGyZHqqyneCykR+61DW3mQYbmBsu5esX9J3O8keEbn4YudVcorpmH4iPTXkDtjouvOGXtkcSGNaHYVVpAvkVqV/Yy3iG5YJg6HlUQFEhY8TZxpVZ31ARmNVEdzihg/99ZraGFdVwb+8s9VfOzCGt/j4Dz7wJMw1cRWM7nuUd0w1T09RUN0+Iyy4GZoE+bjfaTvzreUj+DR47fxdyrUz3jxvQ85/MZL+ocbrt57C3tc6H0gb+5oVG79SMszfuPI2xt237hEf+ZpXHPFULbYUhAG7TfvGGWLzhO+FErZ89aTDRePCtOzwthnbA/1rczuq1fs37ni8smbYJXr+yN39wt1v2P5JDHf3lFGD6ZailpMZSDSUVeyVIQKlkmj064b+fYSyxNZEqqJIo4fC5sO06XiqUUQVNqDZ2pOlHQBPjFLAttQdfD1SwXRL8ch78e9BKrAP/VejQHsheBF6ckoZriGUwcVJlH6/oRdONNXhP5DgaEkSZQGux203gOvYcr+zYqo4gVKlTg3sQ57wzEatXWKGjingGRLUeIKirpX08qyVUGyMNVMyoW6eQT1MUMTqUx4ygxLtC6Mvt5rXChOWE0FUg4Xhd8ZaUnUZU043yink6HVSQrVnO7OnJxykZjvB/ku7P4RyDEi8bobqqG4VV2ri82RdgxAiYkxbRP4WAf8AZlvKc4/33r6eg4P/6D1L/zcBk+QymCxgR2d1BL7jXAxwUVxNhrqLXNhuXU+ew6lwnsX0cCqq0huOLxy6AP2AtLBl/j3pQuHI6RdKA8HsBD30WIxzx0Ccw8RzeMMFwmWFBiai0l4YwsTxsmMZdaVx6ZMGo1MXKiTgA9yHmTvHDtsrjLzB40rUcpoLK5MV8rTt+HlZ4HEySJkM3JyzBJqRjbheHvi5nYw3w6urxt3p4VjE069sTgsHeYRIWKGIylh3alVcBX+8//sr/yhX6MvxRUpv/cvD0qRkHYHzNYeEm3wmHhlYTUOOvOAXYmJbNKIGC1rYRIx5XHIz5LAHdHEsLBipVUGv4yQxLvJQ1S1rKlsUw7uUDpP+9YL00ywYbhGUsmEoaJ0J6Yv4riG2kuAkhTzc9qPs7RQ9WyKIV0YamFBKyuoUB3riZSMMZSyd5Z7J8mgxrfBCYXIsa1JCgYzOSYGHkmNwxUbRq3BHFODYydkNa+rR+cL60cpg76Y4Hj+uAA/+9YECmrBLEoSKSJ9LZiTGLKqa4JTFZ+TPZqKqK9TYWVabYHSlEoo+yaNa/vMxIoJcKib/DyhJnqlY1V8iQRkfsSICFsn50ZsYm1NSVJRhkc3zGW1/0nEiQ+NA4uvMPfBGmcOD1PsOKuem2TRDAu5fPyekcioD6wtxEIBuTbg1oF2WBglrBTyGiv/UhqYbUhWcLuHV5X76YY0K1lfMeVHSEqoTtiAITNZQ38eTlFjsROqJYyhYpS8jZhtTjSv+G1j2i4cj5XdY+V4Y5zslsKE0hhtpqmsluHGpl5yf39imwVbbG1WVopp2Kjzyi9qce0gBV2nLHet8Z3DjvvfuOdbHwv7JxNsL5ExsGHInaxTZUdyZen3PL+buZXEC3Hm792weesC3Rubi8z73/oa7dq4vhuksmeaEtenGdWFpRlmM2OKxCb1xjint6YW9i9XRNOqxnJgy7COjzvMU9hqzzLb13CZKP/kezu6KFUWxojrY/iMpANCjund2NDpDp1fAAAAIABJREFU2PPC6JX001vMB8Mzmk5w3Uhv7TktBWooL60bjYTnAKOLVFQ2uJ9QETR1jned7WYLMshFGCNuFIsNxDP0e7BtgAFZ71l9sJAx7+Sc8JEZvpDWe8gYiskRoZApmBu9tWBLOrTWKFKZRFiWFnHoHrtcH4KXTL3t9IsTJ9thtbF5e8t8nbj+6MjmjYzTEY1BwlgWCntSKix2RKSRdRuWwjEQKYgeMW0c5hT31qH04sxtjx2Ndnr9ri8TIiREPQ5R+fN9INz0oW4zHTHckWjOyDjvYRDNI2e/HxwPCT1V0j5UD4qSZQBp5ZLB8JUPqYDIw55xxkhE0rOiGsr6YU4XJacV9YCGwm7dI7ukB+v/ULCWI4hFg//oHole3kOBH0lf519+zYNb6yRzR84BK6sqWsP3v3ImY2cMLmb8uazDJ1Yb5pmBeR7kZKCbsKz7blkHQ6rQFiXVSEp7XddGE+/sK86CudN9pqKoTpRimA9SmkgFxAZ9mSm1M54f2JKYDzcc6g36/ps82g4OH9xT+oS/WbiTz1g+e8H8USPpUy7/9FssaWEeL8gvDb7ylCELhQI28NvGy11mT+OnSoZpoN/cMT6bgmN7sZBeXVKe7fCXz5Em5J+6wJYGB+PxlLg9HJiZydsNkiJJME0wcufJ/inzp52bj17x6js32OWJd9//0zz/6BXkA3oZlme3DGmJxqhIWE5P9+hxwm3isL+DBHWunG5mUjlwma+4n070ZrhnzOb4HisypNnMGIqsB83OBMvMvhYO8+s3sVYBEeWv/rkNJw1rPKxug6rUNiJxOzsn8zi7ZZDJcW0cPoT6hlBqRXwOy2KC8dnA3onEv4pSDYYGW9BW1Axyfs+H+nP0sGgPjYAt8U5OSrfPh8E5K8uAaV/J+YqcTlyPjHtDJXOqjhw90se7R+q9r+xeCxWfuVMrtNZJtXA8DrIONluYXyVqMdJWQ8XVB53O5iIxhiH3DntH1/uSKw+DbWkLQiZPnXFyZu9kyQw70c3p1sh9og2jGNhs6Ob1HB7+Qeubb87k7sgI1VTeZTalUQn1cCVRS2dZnNNnsX9ePYbLCa5HhNTVGv2DU4vhTCLO6vsErcEyAyOGN9ZCgHCR4dShlxC8nwQmgztxTke43EOfIZ/C2TMy2AKo0wcYA12v0b5Z3UIOqUTvIelgWHBLcxXau5lPPu5s3sjoLjE+PVEuJt55Y+Hlp4Pt49UePyq0xot7RXSwv9hjyUklnGElDboW7o+K9M7T/cI89kxmFI/B4XQZgT0V+Plvpmgg/yFkpF+KZtZ6hD//5WGJn61U8aZezMP+R3B/qoSlL7FGgrtRJQDWE5HS0zxAoEYooWr2SEnqnZQTc3M2Oaxbvp7QU3LCdAhIlC8pxaHfRVALAKmIsHRHkgaPocfXi0QnXMRJqowelrI+lLzepMaIG2EqUR0mUUaJtJt43MoYqzSfTtZM3woXi/DuG0rqxmf3gm/hVYvCrYxgGJklnMHSiJ/bhCyR5IgbYtBEaN2Cr/X61em/b62tmD+wsXJuZDnwt759iapwWJyalUsXPlrT2iAguEUEKU5v0dTRc3kr8pBsmTRapUljips1Pm/y+D1UQ1VyI2Arf2TtScX39CjvXQSVESySlXMlhEXw/HvH//yh8TVWm6AhD2pAdV+L7GB6fA5/50G9eOa22apTVJyxTqk74fkXj0NQxJQDYmRPIcmW4H311ZIhFnHu3V5Pm6F7oedTsMbuj0i5Qi4HYkbSK6wPtCRGv2Xa7GitIVpXKGkPdZNVLKh9D8VSVad1pd8Zu+2eOS1kc+ZTopRCtzmsDayKS4sNM+x2M5aN43IimYZFzx0fSvMlNjMpaEqYJ/DOcA8INpnb4x13beGDwz27Twrb3/yAp9vMs+0le830rByHc3cy7q3TB5wmpydF3rzg5vrAm9Mj7vuM4eze3HL9snL69Eh9u1ByYbZgOHB0hi9079GQ1UShQ9+Gus8Ss8va0AJfG3+MyskUzdB94PZ6Hgi7Jp5MzhgnZpuo0lBPJImJSkoxmBBNyPHIaJfs39sw/EDTTCZAy36csO1CrhssRZJgFgll1FBGyogbU5qRnnFOHJtB72ty5prgloJLhcf9SvI2VFvW1uo4BzvPFlTi0CW+J1sCV0wGmgTvUbg369RNwYl/703IabD6sJAhGCdUMxVlMSU9S/RPC/26Y4/m/5u7d+mVLMmy8769zewcd7+PeGVmVbFZ3awmq9EQhR6IIggJalCABnqMBWisP8CpNNBYkPQn+DukmQYaUQMN1GiIAsFuNotV+Y6Ie6+7n2O299Zg241MkiUNSuyuZBygOyozI274vX78mNnaa32LZPgN5ObCfgb7stLuLrTjCbpS/YZ6gMdrsuvAEkjehN0rJTbMV3Y03dgEVGd7LPTzNRudXnyEzKzIfYtKvhfpILeEuKvTLV3vIjmZL5QPBTJOtmeOiYQ4VKjHwflSiKtyuElGZ1Y3+IdSkFTwE/pQl3QGjJExvFAIV3a1+fqSKekI8T1ncsbtU9DyiIzPT4e6l/x8mE/YPOQwpzId1rk36zPK78/hBpkua01B67k9+Pn/xUQG1LlO6nNxznR6pWs06J4CoEiyMH2KZs+geERwz2FYS2wIUj/OZxdArQvVwMqAGizbAW8dldw7SctDmFyvRL2hjC+wrw5wuudR3yNU9PEt8U/hvS5IOSGfKX79Jd/+4srCgds3P4NXwaM+UG2wfQ3y45cETh9XNnPCYFkKXjaeYuW6FA6SjsD2ewGnF9S/GPB37+DPv0TercTPfoSUf55iugadwthXmgnbw4ZcoBxO2MHRuhBhrD8W7j/9BPtaeferv+DP/uwfc/vmFYfDPfu3A3v/y7kGJ1BZtRAe6H7CjldcCkUPFO9IA3nj6FNwOaQbOl2JV1QWPDY2Lwg7sFCrk2PswR4LfRn8Bz95wf/8zz7/bd8G/8Yvjfx8f3Z84DEyCfMhBTCcRbO4ay0VLZ1t7lnVheX3YPvzwuU80OOGSrKHLl8HN58W1Jzm+Vw0FVClimMURGyWVSgumo32AfUK19M8XeRcMB3oQ7J0zEhB3xpyrFRdWbYGZaHohRoVkx0RwZ4jQipoeKYqPMV6FaGuwnUM1lWSw+WF9WbAUC5vnb4Hh1cVEcOns9VC2J5AT8keRBzRgkdO20OMUGH3hSodqSCjUDXgoXItOxqFfjHaUSis/Nd/t/AP/9HTb+cG+Cu8BE0HsQv7Dnc3ylqyaVDMQeeuu8O799BWeHNKp9WTpfBaC2w201/pcUFz+wsO0uDg8PgEN6/mOSy/dA579kROnIDz1BFLT8SS5XL6wUGMpmtx0irxLYviDtoY7pTiDHeeHnN9PGjqBJe5Pp3eFM7vBvdvlJvXlfdfbLR7qIvy+RfO4QBj7BSt3L2ERbOwxyUTKovA0EqEURuURRmjsPYr+zUhTXfHzj5gVWVXp6L8N//tH/M//Pf/62/8Pv0gxKz/N4Hhp7cVl5zIZWwQVJNJsEyrp0zQ2LEq6sHQtHQTwm65Walzw+Eq7H1+iFHePRivTgW3yVqItJG7J9StyHMLXaqFThCWbTXPm5AgP/B9wr+tfOciaxKYJyy0zpt3zBtUm3yIjB1qoeMQwbYHWrOqtxu0DrUol33wkxeVz74prAcIrxxPwfEgfHMH/+xhTLu+UC9BNDguwhhBKfND4RlZq5L5bxnC+CCHfLzXs9H6191n8zkAPAtDwk1VLgPuDoVXa+ebc3CzgFkyrZalUM1TnJw77BEJ0tUy2VUy3XjFqSacFmhdZmxD56EgIxviwSPQcdRzC57A3SlwhCBUxnPMUQQJnwLas4g2mzrnpt9JBd4lha+Ym/NGfl6EFNg8M0XJhyEn40GliGMOLinc+vOhZIpWIhlbRFIc8+cpUgRd4JBHzFT8S2V8pCBSjz2jMd+coX1GvHhLUaH0mrGVKkR0iANXu87ihy2PWTGFch2YBDFt5/v+yNU3wm45vF4Z3ilD0VJz8lcH/tiQNSMY7tMq7pGur/MGZUHkzDUkG6EYdAql7eDJDQy95ioaRtEGkUK+asHGmQc3znLkoMrnl86qg2gHWoGb05FWC/tWKXedVm9Zi1HKQlsr7zeDbXB6cYf1nbvfWXj43LARNK2MZtl0aBvLWFGcS+wUF/qAGk7PTjwEYbOBRS7oRAHpIE63QcQhYdUf4fX7L0/csvNYhNWDLYLCoIng0fC4orLmJPabe+qPBG1X8FnNbWf8fIu9bmgdEFd8z2nvHjvqgnbPJs5S6CMons286hXRe0w7jA2XW2SAyqDVRp0syyFnJA6UIiA7OmqueygmiqohLrjsMxIZ1FqSJxQ77kpF89+LwFmpK1g3al2AoFe4Pj2h6z37w3vubo+cLYi3jr4AlZWyNl59GoRVvv38hvK2o58tVIzrFSQ6fQwIYw/LBtBmPF2EporJkpBlE66PB5bDBV43ZMxK9Y/sKiMZniHCQYMQR4t8aOlbliniIHTSyX6IjBwiz8Ug+QwzdeoCBw/6nvfeENDJLjORqWMFiOXX3HMNK6GI5v6ru8x9VYLVpU5+qOT9FF2IStbZS0bxjSy1SWNfwzUdCOkwy929kGKZWsbBl5KRQo30Jo9IAqQAfW6uUzCenmRPITYidxPpXIzZQEu6kSMd1lrSKf/87AoPjpKoipCMtObrSx7mtv/27oG/7Os//9tv6OosbaH6oEuWk6zFkOUWauCj0/ga+6cH2s9+l/6TM+qFY/uEYRf6/cr2iws93lLHC+RLob16ySd/8yWtPfFk7wkveCcF8JuNPs6UIhRd0AJ9dDbP9ee9nPlne+EPXtznnvC4JrTmj1f4p51hSvzNG9rrDR4O4Cm0cyO8ferUesj4ztiRY9BG4/zlNyxF4NOKjobfC6/ufsyXf/ILtv5Ef/EuSyxOv4NyJbbB0YX3l/fockB0J/yWg+fad+2ewuxW8XaiXgRdocvgYjuFwvCFhmGmLOqMeX82GiUG63bk7/xo4X/5849vf+8o/9HvHnDdkxc5BFqWaoUFHac+CHZIJmirueYZQdWK/PXB8SvwXyiHnwaXb+H+TcLZ+zR621qplucydbKxXBWxRHC4pNurOmyenOSw4GpAzUHvuQXFYfjk79l71F4DQtUFH08JkF8MbYI0pwlEyVRRyLOLFVQCb0KZsSDBKap4JaPZq6MFjlrYPq/IJ44Mo6PIArUWtkfndK889cDMaLpw1UGxSqyFWnaOteK9shfDLfCXAg8LoTtRwFy5yMYf/8HKP/xHv9374K/i+i/+/SMqV2w37g/kfsIhKqwCl6fg6ydoL+F0gNbgEkKt+d4HKXQtzyhGSwNBFyiRghQOj2dYbrIQrs6jUvQUw0qBEcI56+ihgzcmXijXtgI5GCo5C7wTGCOwQ3BCGWNQwxJVFHD7Qnl65+gLxXbnlQ/eOdiinF43vv3VzvpCOL6u1G2w3waHG9j2TI2JGC657h0IdjOiFdDBKooxIE65ttp0G5Z0jlZ3cOWy7ZzKQvfgv/r7d/xP/2M2iP4m1w9nh/ZrrNb/5d9oqD5Hr74TG0YIwwJ/PsjJPOSXbAjoJtMUPg/YmnXPJUdwE3ItvLpNF4TOiM4za0NVGOYMN1Q8D6Xu1JJtJBoJcVcm12ge5kc4+0gugj8/1Oa3Zprg9WdCl1tyGjRg69MVJoKWnOrt3WiaDKbzNfj0qPz8trDcFPx91mUeAg5HuHPhxZbcIu/OvjjalD5g755T8HAOEaxSWEUJE66b0KaB/mO/5Hv/x/d+/XVH4N3ynrlumX7feuHNvfDTl9NeTEARauVDVe+0UiGRKv287dBQSg1u1mCps9ZcE/a/zAfQqTI7L9N5xQTgfnidkvK9zIPHM2ErHVRZbyBRqKRzcJqlphNtlg0kfiudWjEPGZBOicivWSTvT8VnzCJ/Yg3mV8lvNgfJ6UfT+b+qkpl+kgXWJQ8bgbG0f/Wn/vFcQefmi4L4LfV0RVyxLUGJVgzroKVQm1BoLOWIWu6W3OezTQXRhpRC753wQX9XKQfobkhphDrdd1SdMaAdwLwgtaLFMi5agpDB0xOoDogbxI64d1wOIB3Z6ywYCIq0dJii6MjNUkiA7Sg3tHKT9eelUeohWX5VaEvFC+wxKGKTdwLLckAVyipoA18qF3sgj4bBT378CV/96lc8PjxQR8HNWNeVtbZ5j3ZKSEYyxT84L0rJyC9m4MbgnPHDWinllMLWR/oI+/f+4I7HWGAoHhvKrKMnI8dhBYkGO8hi6BJAQbTnhvxyhBshZgNRChADkXQxqwhmhm8jm3l8EG7putmv1JuMgJayEnRgMMYOC3Q6Gzu1HKZ7a0vXiSiijmifToKOR2eM8SG25Z7Q8VYTWp/uLsfNKGwcZIda8LjQreBq0F/T5B0nyRqLWiv7qaDvg5MU1mForQwZvP5rt+zrwvkXF/brE7Lv+PsD47GyPxau7w6ML5WHXzn9rXN5PxhfPeBvd+K9cHvf8RYQg6BT6scXq4iSo2KVYBRHXKn6fCiTjLST7NGsbResJF8Fz0l1iWzh7aZ0By0xeWvpys0W3EA83QDPa0AtOdRJC1PASDFCS8aiw20+myYc3nNP9uF50BQtQtVCKUJ36HOdBP4lx9QHcmQEoZb8r+nAL0Vo1TlojrqSA6bpomAeJCDXdinMGdV0QGfb76RIzDbHRFzg2azdRGgoGkm2zGh5sJNt27X4r9v6fjTXH362AQPrRteguxO2s28X9vdfcfnlF1w/f2T//Kcc/tZC6AXfskH00jdse8v1n+xwvaG0T1n+2hvaz0+MN088PX3OZe+I1NyPSzpYj2WZ0POMfNroiCqXPR3nVwZ/cXnPF9czyMCrE+dHuJyRH50pf2diSeSSv2ghFuVfPDzSbfD4+Mjl8gS15qmxGu12yXKJrzp6OOSfaZ3lx6+wbjx9fiUuO1qvNGlYyTjX6eaOkll/VDXXVTZGpO9ei1MVlmPe0t0aVV6jsoIMJCqy3WEUrBegcPVBp+HNyY7X8v/xDv3beRWcP/xZYTNDRrpUxCG6s0QO6oWgNsvWSw9MnxUCOBShvlSiw/ZNcHoFQ6G4UC1bxUs4pWiCvkkHqvcUkrQJvky2bi/oyxmTXko6ThdnqFKfHeOSTtAYG7Y94L0RccVjo8iMnLYUKoJsT8dSMNE5oK7Pt6UIhyW5tCPAZ6P9sKAUpanSXgaF/OdlQgNDnfWFsL8daY6tgEeKvTKI3TmcFHMw6SwT2DV2GL4jRdOliINUWvs4B4j/6vXzN080NxrZXrlJOp9WD647PD7C7WvhlP1eOcSR4Dk6E5FnPU3sciZhPF1U5tBqaumLTIyR5JnBS5oxXyq8ANpc0/B09C51aiIByxz0tpJfd1zg0qGXHBBZOK1AqSXj8CgqQVmE65anzcuAe4Vmjptw9+OFy/scwByPlZMEx6rcHfMz0+ZZ8FCDsMELKagVwox9BEdXKns6Ium4DSQG4c7uBY/BoRRieJ4xPfhP/v7PfuP36YchZgn8OubJf/rXS07jJQh95k0Fw5NXdOlz86RZf+wIHTBxTINVnmNSCUxP/FA6GMpUFEWYGWihFs/JMORhXjQ5N5PPsA+dWWaFKKhWfvxaJs9DWFrDTLDpXpmEIgIornm4V6hVENHZViFozdczhk8XWnK/huU/v7gPfvfYaFU4vjDKRbAvMrZWIrj+Cm6sctqhvkthbtt9Tr4Tlvp0Lby/KF+9db59n7XWwzIj9xHvpYDv4oP8ml+f/3v+Kry+EY51TnZV+PpcMA10Ud5usBShf9hUZ9vJbAanSC48MjfGRTOucFsVjYIyF9ElWwdVlBbC0uaCJQliJ/Ig8EwReX4AZpwm9/8hMsG3uYkT8XRczUNHZvpzGh4RuD5XkXvGgOaD6PsHCiUfjHPtJGRm7CU5JVXyAQiWU2t5Fgin2JZ/KQrfNYlKYa0f7z1W3jWutcHLa06H3dMF58YwYWnp0LKxpxumX9MuHkpF8NGzFVIL2xjs1ytud8h9w3YD2xj7NWMxEbQC4jkR0Vl6ERxxd+wsxFvBb2GYMXygpRM6QAzEsLIjWuizYbHLjoZgvid7ZhTCC6UGYxgeF6IoXoxyWCllpy6FWoXRg70o7Eb04NqvXPuV0XfWtrK9f4J95bKdoRxx3bl5vKWKpz17F+wCgVNaQ8qRHaXKYPNgH0HRgoWh0igVFjmxxBGvCxoGNpBSifg4N1Z/+/d/B/d9itIHVka20cZCNEAa7js8rNS7hvuVfWyMcOwywGEXI+JA7xvPn9jyHOEPUClIW8AVkUZRR0xZluRZaZnNTCi9dyAhD2YbiwS2d9AFUYNoeaooSzp9dGDuSMlqiGQiJG/LbTBsYHYm9AwI7iMPp1Yp++C8k1wRHexLZ98HT3bh3HfOY2NZBaud7fHKYm0OB5QqV169bpRW6I8Vs0o5DI4vB8dXC+WlI68PlKMi7UDQaIcjxxcFfZ3uUqVm+5kq1j++mGHWyScIvpCw4j2CRYJV53TYs3a8eiLixbKhUrSgxSk13W2tWK53Jdc8nQ50ERJ2PstyMr4niXrwIDr4kxLAsghLkbl+5SgFV6KnB7lVnQd/8hA2h4+HgNuapSqD3N8RGat/dpahTlVhlWx5SmEpphPVEdU8CJTkXcaHcWh84EiCozGHOTPuXyLd2iU88x7zM/UseuUQNl3Wu0ymHDlMSuZk4go+1uu+rdnyCOg7YX0H8TioDxV9d6DIp9ze38LtE/3xPbY54snwKf1rnv6vJxb5jPLyyPHHK3Z4xNf4ANe+DqWPjWM5pfAQxjU2tsuFa8+e1t0G42GwLAulDCw6j7Hxp+++4v31gqrhr4Pr//1uKkaFNrLpU4qBGl9eHvlye5dQ+RYstyf6SIF+7xu6LJQXjeM7Y7x/i+oVtUo5FertDTfHey5fv8Oj4mwZ5V1ASxZeKGsWBow978tlSdpzOEVWJODxcSB6BsvhvSl06USJFBtEiZFcw5COdcfKmU9uP762zAD+8JXN8xtcp1BVSw5rWxOOvjCq0SVj0btDVcVHDm7WJbj/65V2XjNi7JFWGQnKJpQBboOypjvKDdZFKeoETpXG/gRxTHFoFCiW8HkZ3zlXM5afPK2IBR/vGOMLlBNVGt03Yka4S2QzfUEoNZWNrtP1EDIh3GCe7EGLrEPvViizQf2CEcvGeMwzpcWYyJJ8+PhtxruOAlI7hYV2KuyXbG7N8rHINZyg1M7we6QEjUrYbITtg7/301e/tXvgr+I6VqV0YTnD7U3BAy5deLcJ35zh27dw/ybh6EshOVTzz1qkWIVMzMp8fz11ykwgTJMBM44I+bHfzCgC14CvJ3XhDiBg30EPeUsU8s/5jBiJpUZZ1nRuDUmjzBYt3cKSySEppKSVTWMzaivcCNyJ0hiEDUKEx68G77fBfslkl2qaKK7DcReuPdh73nsHc9aoWDjvaFx8pXtDPUtP6kwRlcgBlyOz5TcwV/67f/BHv/F79YMQs57jdt+/RIQ95suL3Ew87oMxwEzYe9Ce7ehplPkgPDEdMdlYODcdDhLpiCiSP7ylzo3XnK6pJmvBbf6lFgl3j8yY+oBuM1KIo2q5MRv5em0YUtImJySnSieDQ4GmwUGEOm/8pgUimUa5+/mgVIA8O9CEH90qn36SU4PjItz/TFlfV2wID/9cefES3twJd/eNosq+g12F8QSxCd4T/Ozi3B2C9eTc3AQv7urcbH2sUkNev07Agn9dYAmCv/c3bth6SWKaC4975vHHcDpws2ZGuGpOh5O6PdkeDt11DoWTsVXn5lkjLcGFYLsAdU6Ga+C7ZkV6MON+inwYpimtyPdigM/RV9LFxXN1ev6eMtXJ78So/EbL/OZVYopufNgI6JzGTy9zTnQ0N0xVv/tZKQ4SqFRifq0UtGRyTRxKMr4iEtYbZEz2/2/t6g/2uqxwY5RSCb0gUXPCUhZaPnSyeaiSUTmveOxchzF8ywe5FLArOgZhhWg7xKCtjo2RrtAIVCu9p3vKYzBsZ3gn3DmdcwMUt8ZSMw44ohO+ELF8KLOAgseOe6FLhQHdpgsvFop0wjv7uVNKQfSIIlmmoQtN77Aw+tXoWzaadXceL4/0OfkevXB+2FjOwcPDO2Q3CkbvV9QL+7tvUXUKg4idbRvIeadcgmI725ZO2NIELsp4AhmdMgSRTpTO0nc00vGFb7nh+wivT9oTbkcsDDNBaJRS0xEXlgORGFCUuAGlUUk3SLUDflzSSBr5fvoEbKpqFmDMxbehqDlqO8Wdfr5mvMFbwtAtA+m6CNTA3ICF8IpyREuAr0C6rmQoZjZZQ5r3cK1TXHfGGOlsUWVQ2EPx6PQdvBTOGBdJh1jRJZvOjgkjOegNGjsVI8yR0wIn5XrZENMP3LmhcPzsnhaF9eAsq9HqCZWFpR5pi1DWA+020NOgHHVy/6aDxpwY00nU2q95d/7tvo5omgFEwHOfU2M+qyMPilUSpi6Sjb6mwZgwj4yuZ2szkxVZmnE6gV2T9rlo9upOfzB4UA36k2K7QqnoMVAxujlbD4Zrguc9y0y8pCN5vwidLMgRybQxAo8ePPR00i8uLCSX8iDQImhk7H1JWQuTvOd1ilY5PPIPnwVhpNt/AksKIJIUSZ2tUcm7hEXTEb+Sm+lVg6PmwaDOxECV+B5nMmNEphN7Ibkf/VivUt9iv9rgm0a9Xak/ecHxk1v0szv0R7esb3ZseWS9z/Y4dafFSrk+cPmTxil+RP3JO/x1YOwc6pKxZbUU4eOJJgd2f8J9AIJvhqrTSsXGRozONjx1dlOk75SiPMaF/+Obt4AhXw4On94S5yDY4GTIYyfWxi/6W/704R1P+w3dO2YGtrMsiqtgu+VzsQTb8YR/+Z7QQoQT3dEDXHynjTv88oAWpZXKoHPxgRss2liL4q0SeqBElggc9URgnIcRJ8XtSHNJAAAgAElEQVQfK7Y84MGMJDYYVyQ0hToGe/QZ383n8c9f/yCOef9GryKF49qfx6jUSgrmysRoOKYpGkjL8olDEUyD+xuBpbBbcDl2ihl1CIeSraguwEnY1dGurF2xLc0NgVOLprPpa2N5kWiHpWQJUi+ATvFbn1nNeRb1Kuxc2cYZ+hOQQ8SikgUILVNCGiSHKRKWXWMy+UoOnhxhKbNkTAsenVoH3acyMmOIpSutFYoIpeVQBgnqUYmngllFitCvO7UHBykUDSqVMirFlrQTiVJlQxF62EyBJB/p3/3djzgjDfz80zQrXLRyMeexB9sWvPs22K/w5mWKTzuwT+1AYrYOeuoSsadoFZb3o09htEjGB+lwPYMc862rMvlX08lFwFPk+vJJgbuAe5gGmwTD9z1f5x5wBF6XycIih0kHnmu9Aophw8i+xBmLjyw5MIOlBy2c69VpS7C8Vh7eC+8NBoaE8uIN2AOERSq9a3BR8Cp07wSdU3QOsVHc2CPS+ugpZBEdFyHM03Sh4Nq5PfzmQ8MfCDNr2uUkxabcXwRbOH0C4MXJiFadGeLUmrK2eU7OVNOpiefWyTw/9DvzoUYgNY/eIUKMdGyZGzpdLhFpz3RPIWk8t7JFboLGCOoivL0G+1V5srkhcohIdX2I0JibsjTlzyl6WjTVk60Uz8qkKK4kvF6Epy03Ty2Cciv8/I2wSuAvHVkFsQIvg69+GdysQn2VN+Khp0tn7YVeBsejpEjRncdR0tVmwY0L1104T9vix3kM/O76vjPr+9evE7n+3s9O6GbEkKmOR+bRcT69Fx4fpuK+Q9kMl2wfTN1VaOopCJXpfCoZi2gFDjfBvoHWnNqUGmiFIk61oFuwRN63IoLPaKqnJgIEEjpZWhDMRUXSfajzwFA+MEbSpVcC6nQ3opKcr/lRC2I2GwqzgXhC7Ke4yvOkPT+H+TdnSFslXYpaLCc/z2KcBlKmnZZgbfPU8TFerwa0wrZfae3AiA2xSikVykrIIAK2Pmj1QMQjY0haxvWYwtWDEdI4vQoe1Qm/UsrC3jtFF8JzE9RYEBGKlERdfWPQFvymcj7tiAWGgS9UCqEFkysSC+ZOlECoCWpkz8oUMUQruwUFw0NZJHIqqIPcQQVtOTKiM1w41SPdN4o3fE1ovDTPogCthDmHp43LXeVw26gd+vsLQXD7eyv9zw7Iq43WTuzrlcM4YfsVKcGDdZR0Bw3buZaNtgZijaKNvhvStxwaLIpdg4Uj4R+fcwbgThvaldpOqC5EeUBZCTGqNkbfia9XlpcVrU9ECZo35FHw00CPBXHFxw4I9BSXOjuNQiuNTTfA88+Pm2QJLResO6Xu7GZZpbw5sgjpc8+GSVHFYiPM2VwpUyyNGBSp2BQlg8CsAwb9SF1SLMrJpRNbR5aKHBSbJCSPVPTNB1IK0QvjfEHvQPRA33dCgx5XDmWh3gnXp42yGdcbQeuOtCP66YGHrzqHN53djeu4oKp0DK+SzzZASsbQts0wD2pt2Cj04fyGGIcf9LXjVIR1DkNMHHUmR6sk8xBYq2OR7veizw3P5GbUc/1CoNZ0U7WDsz8K46lwODlacwBEONtTpdwYp2Zzz5fAddPngQlsPjArM1ITcElBi0NOLXeBQtCm42plnkAdShkfkA1GOg1KZFkKksKdByyTPzkEuihDnDa5qWFAccaY3uhIDqtMd4RKut676Ifm4U7+HIwcWBVgn4NM0eTn5IDWuQQsKEI2rj3Zx/ns+o/fvCGeDtQ3hpQNX24oeiaiEnqmyi3Kjj28Zrs9c6gVlQHjkes/rtz9Oz/G6+eULwQ/PIJUtj1/loOCjh0tC8wIVLpI0+1XbgrddkqBkIqUC4VGl41ohW3PBrqHavxv/+ef87c+ueFNvUe8pEh77fyKzi//xSMbyhXH5YnFszTBmlI993Xr4YaH9w/cvXqFvXpP2Gsu/+SXHH7vM9g7y23h9OI1l7cd++dO/+xruDlR2x3FI2PYrsRwlpL79O5AVK7xwC7CIJEQ5X6lX66M+ogKdAa9NKQGY2RrpFYlhiK6s3vhj16dfst3wr/569URQjsWKZpnuqDQ3fFG2kr33BsvaLabFkUteDg7tQWvb5QnVR5eGfG5svxEiTqy5GE6Loc5axGOB82G7hBEFb72dPe2mcIYwUmVfaTRAg+aOr5Mfq3luXUWQWN2yQHNemIbN6xU9voL9Jr78JUFqYPDeuDazyyQCQmYZQTZTl7Ncq/tzqIr5gO60yiMl4H2TGyEGDpZXm6B33XosH8blENQauM6c3FFN6ScuP4C2utEmFyuHX2R68BVIsUYh//wpx/pvn5ef/xzJ86Vejd4/wAPG9zewpvEnrFDJkhHxgttmmqeucJny2dEn05nn03Aw+DqKT5Fh8PdFLoCrMNxyRbDOg+v4fCu5O+5m6UsYbk9R5Ld5gH3LeOCfQepGbpfarq8zJe5HjprC562fD2HBS4CX+3Bu5o6ycGFm8fAXsAowvJaePql4/fBxZ21wv2rwvbeqC+MDeHBGqggOggX3rqwRiJPjsUR2VN8d8OpNDOkKJRBmLLrkqmh3/D6QYhZ8N1hHXLTcxBhJO2X3fPQXIpnk8x0o7TyzA1Kd1V4Tsye28BKzcmeREpZDgkgXjQ/2Dpt4B4pdk1KerZDgatTJNsfdgMi6BE5sQ3hasEKHCYMdcjAIye4mwUdy6ldyVabMIiWNj2zfK1Vg90F6Q4TbNqW4OkqEM6NS+ZK18hF6qB55/W05cvcJAVwksIuHRtOU00n2RQkSnVGOAXldk1mk2vG1b73LvyVvd8/hOvXiVy3RXlrwtX25PK4USUopvgIdgteHZ13ZwgrFJz+gZ0R3/HXcmfNUtLpFAH9Guy7JG/Up5srspY1PLItQwIVn/etfFhUQ7KcQNVSMIoUTP3D9xIpiuKYCNVTsKrTMSWasYsiMr/vwFCenx0yN/YqCewt5CS5M7G48zdKFIok/yOFLklovSgm330+JZK19cFx+LFeWaNFWQqj72nDRSaj7CldT1JZyAhYZaXUwe4VGIzHndPNCVfnuheaKdYCHcI1FI1Br6C6MIbgsbOMSpNGuTtw2R38ayTu0/8QFUUZcZ0V84r4TtRI33HO11CdEPUo2IyNJj0v3VyjGO6waCCy0MdO6IFag3PfaXrA9InDrL0WYFnXFM3cuZTATpVWD1g4cjHkYJy3K9oqb98/8vKlEA82LdGHnESacPUHtF9o2pCyZPyCFC3qcYHSkKg8nXP6HgDl4zwQSlyxFcoQtGVkAk/WwHDFH4SQQr0tKXZZx7ZADYo2wq+MvVJkwcZbVE/TwZAup9GN2nakOH3LquYYzlIFl86wmu5RBrU1ds/Du841z00x7QnC1kB9nw/VHfOWcaDoiBynkBoU+gR5e0ZaJz5g/2Ap7YgUIiw37xGETUC3Lgn89gtlKWz7hWVp9H0kvLwJuxnlcke0YCxBrUa9XxnvBrxmOreMdRQe4oEajd06+IpHTQD5FVwH5iXX3fgIJ9Can10LQeR5QCJIzIjfFGKY0QJmmYjJXLg8nQSCZbResvHQFepRGE8CQ6k1so1pbywHo1LoYsgkRbpmFEKCZE7GhB8DcVFYc/goYoiUiQDI3yueU90ieZjoc+gyJGhzym1zQDq/O6oY7lmKogTL/H41ppNC8tdVp3BL8NzEGAQjctgjku3REjnAMqDJc5QkhawVwTz/3p0cTBUNlsiJ9JUcfH2M1+//3g1xeES5weKaQx69orXSR0PbE/uXyuETw/zA7p2Dnxl/vnD6o3vEz/jTjo8TDWWMbD4cjGxv9YJgXK6D5bDOIV1jxI5GcvvchKKG+4J3YSkn9pi7GlnBK9/2M//754+sv/o6C2tqoT4Vvl0zedF0Zb25ZbMzIkdCL4xumJ2p7chmnUUPPL39gsPxBbwOyi8ObN8+UOoNtj+y3N6jp8GDP3A8H3l4+zWnTwNtGXEzvbD6wnU4PTZKVHq1FPvtQNGOudFH4LbQarodxI3WZvu6XAmpgLKxM+JAi8ahfHy8v5+9XnGdro/5MVV1pDhlBykFq+mi9OFEEXo3tIC2POtdIygW3L0W3l0c+QtYf1/YyKTCdgluD0qMwi6Doskcsh3aTRoPrg8kzzQEm2tdWxN3E2RR2e7CIspeHNnBMWo9IsuC20YrDZWF4isuWy6fzVFx9u0pmYAR1AiGwXqYA+0elBvFZxpi9A0c1qrIljv8yxMcPql4N2JRqkDveU5ZT4VVjX6F/mCUkq7oEAevrLJzLc64err8YqOYw1JxA8USVfMxX0NYbp3zBucdXr1ObUFJIck8oeuhQJ/rkM8WYE0Tjjy7tfQ7YLuU2VjYk5nFBlGTm2WSaYke+fVv56zGrilabTGL5DJIwwie3Tq4wtVSPDtJmn2Gz6EOOz5f66VnOZySr/MmYG+FEoZZxnZLg1NJQfficPsStnewvACfJL7VobpyiUItV5BCkZafycimdihcEQ4Iuzg1oNqg1QXIYZNI5UCn6G8uSf0w/Kfy/V/zeP4H91nFnvwD4XJN3mJCqnODpOE5hfN5YBYSvCkTGyqS8UDPlrcigpbp0CrMQ1+yi9wdlxTIDEVL8rGqRqK3Ixjk5u39VfOGDU/7sqX7Ql0ZwwnztI7PmKRPtoOTOXy3dMok/yvvxD1SXX9ubQygrvKB4xAq2RRwX4ibwvhVzfwpc3OeBqLM5i6B1yAOzlicmIC5A8raoJMthqIQ/v2F7uMVHb67xeYU/l/793k9XQAfGdOZjAwV5Zun4Nst6CY87t/FNndJEGNEbr6N3CDrdC4t0x0VIWxPQW1kG4omq6Nocre0ZuygiGKRXmUh/1zeRnP6NKHNIfP5JcxDwZxik/GHUnICUKtzu0IT/471IfMnMafKLmAq1MjYbpHMMfcPUNznGJrOaFiZptW8p51MWyr5sxDJhyfTHfaMm/kYt+wjGpjgvedETZN3p7qj5ixlIfZgmNFUqKUT1ihiKDvrcspDzow2mRsxKt4GGsLFHT8bcX6CPvBNOZeNx+3KpRhX2+jbPcMHnQsjlEEn7DIPZ3vGPWNJoDoJtW0l22xS7ArUbgmMxgnajsigaKEwEAlsZIsLwNpSRhURti4sS6UsjeiD6Nna4xGs7QZhYGPHa3D+9jGLOF7dYE+Vx/dXxvaefn7P6BdGGURcaFJY2w2rH5PTFvk83nshbMeBTc/o0omSDKbiH+PdBRrXbFHzoIfSohIxMBPUN+JSaHcLO0/plDoX4lrw00bfL2zXQUTH1PCxYt4n247p0HJGFMw1nzWRQxwd23RCjynGK0JNEV4yPiy6EXKlkgyuMqHLogq+TCEr1xSbMcWY7A5V8KhZDRDJwHHfaWPgbrhnRL8UzWkzMd3TU1qQZR5UG1t3vArDjdJKDoyOj5RtYPvGEGU5XOnakD5Qc8QMLYNmB6QWarsBUoSwMNZDsuPq2on5zPvYLpfZphfTkYQS05WpGvNZnvBjmzB3mxz3jMY4lPzvIoKMxnP7X6lGOzjXTejXkhvmG+PUYjp4FQvHI4seglxDBFAXokvG75fclxn553RG68U64gMJIQb0ObyRZ/C7fwg2UouwyJxyC/hcnBTNZ5z4h0igeEbrl0ghf1WhlZx6DhU2DbqnAKcIzYOW2hrNJZ1tnm6M9C7yoTQmIsXBJdIdthFYBB+plsVPPj1gqqBXWj2AXxjd0dHBO9cvGvWzlsKg7mjbOf9pZzn+iH0EtLeUb04sf21FJKg40geMQWxGsQ4yWNdK2GC408egrkearHjseS7willn+JUtDJWaQ8dQzDcKCxHZxNUrPOJ8wxPddpay0sPpfkFbo2tnt0LfDR+3hBfG6Ow88f5hY+s7oQ4//YTDuXAsRpXkC4nMsoS9I77Sv7wwHh7osqHUnFGL4+L0uiO6UPUOQeiRgpmWQjsKfi1zH7sCkdgAy0Yx3zxLQcIYNiZC4uO6fv6GNAsElJgoDntuVs191LMxgZLrmtY0McgAvwZjE/o5aB6cXuR+VkxYAnTkvjki6D6oJaDAihPn5Kadz8Zy78QS1BZUtRk71imkC1jyB6UY9Qq3rbJoQdgotlGb0pqidUv+50xP2DBah1YKYpnaQQM9wr4bqywZF3Rn9KBYpQQsklwtPTjLKty/Wrh8mzVlGXU7oCJUBXdDWqEcg74J21UY34wsUXvIz5PIZN4VTRZYFWxPzIBwoPwwFIS/lKsiSKsMdd4/wP1roWkKlBvJrpIxIfwK+5ZJuvOMG/Yt58VCnsuvicBL4RV4RqH1yLMcnmws0YwPeuTvG4APuADvA74lNYIL+R9luuTGBl/vcCUFts2AMXlUI910bYprMYLtCushXxuAmc0WaohrlkwNz9b72oP1CO12Dvq6UcQ4nITL2Vmb0ch2RyF1DMqKaqWKcQyjPfMrAS+NIQNiR8NpatRSUanUsvxG79cP4lb8l+Je87n7n/3+hM+VZBdUyTxnAKhjnqJT0XzgZPPOnBRGVppu7umwigxPC0KrEJ5WUSmzLlVTdxIPPJ4h78EeYO7U6QQTz7zsCCfmhLqOSFu6e06tS1rZ1YWGUEyI4VQtqARNc7OUgpXMamdFPHvprrvTh08gfaqZlLzh44UjDyv+hbK97XzykwqazCPRFA1GT2Glm+WHIXKi1cJpJRg4l3DOPcNqMaeNH/MVfF+mi3/pn595Yc//3D0nph4pIA5JV8gzj0pR3tzAfNQlAFbyfnpuKgqmtZhkfEAqTxYFbXPRhKzoLsLuCeVjVoFrCZpkHKhq1tVX9Q+iUpkCWlEmcyl5XBHOIoGU4FDgUJ3bJfjdV2kL/XC/k0Ben+JWIUG2kCo5kYJvm/fg82ZIeGZr5QYt79g8bHjEhyjv88/3maO1z6flR3mXmSE6oFbMjV0Dk2QFuQt9P1OXwbIMxu64NUI820VacGW6+UrhfH3AbGM7v4XrQjvccPvijpu7z4h1ZRyVfhwEFSvJ8ytzGthlTxE+U+2Ypni1xg1WhIgd004huQijC5V1gruV0c5YU1wHQxeq3uYiOQox8pki4vgYPF3O7NczVQt+2dlHp6rSu3F52minI1JXQoPR0xlxJeOMfrlyefcNhzG48xPSjmznwtPbJ8wtJz4124pCOx6Gq3Clsh4sRQUtiN+zyJK8sTL4WHdVwYEYC6OCyA4+WFmos5LdBeS4s8Qtfu4JBz7kgiZLIaQkDN7GdDuNDzyPbXcONTdnuGNxyOeeO6K3oEsK1z3dMEanWz75uvcpnAZQJ9XUZwnCSOefT2eVH9MJqj3fJoWQRi1Oa04zWEUpdFxsQkIds861b/lM8cBnLbW7sfWORQecRR2xjraFyxgfOCnjvnLcjvjDE+PaOb10ti+N4wFknBgDdDlS6dysQqNmnbYIUDJuvS3ocBb5zTZYP+TLrGEd3IS9C708i+rJpCqaIqXPjXVMHtWhCItETlgVlqp5gNLxPF3JdWkBCKIFLLDV4CpBU+FOnTsRVpkQW3LttKHJ3qtCLJYNY5CRwihoBFVssvKyGc/Hh5Vofmcf7MbY5HX5s2t68lMLkwP2vH7PbXZTWMghE5GDzI2sUR+ez01wxIPigWsOS6sEWh00eU2J9M4GqiIzoiRBI3EYo+T63iZf62O8Vtsh0slnXCl6ZaFhW3BrK/VlDvaG7Sxrof/JlbJ8iv7Oe2rsXH75RHn1Kg/+PnDvaOk0zdgW95EWhy4UVRKVd8bVMQtq3IDVbJckRc06AouRjePecb+g7cK6Fny6n8aeayAjuOigiLP1TuwXSpCcPgGvKbxb72xno1XNxEUpLBpsR7BLx8Op2pLji+Fj59VPXnJzvGX7ZjD+4omvP/8ltjt2fd6jHfHoM9oWHA4rvcjca4Ie1u/KB2xlnIOqR6qkIynKUw4EokM5/3ZvhL+E66dvKoeRZzstOVxetSGeAxDZlDEzWkWABtIzgiqa7MdQ0KXQS/DiBbQV+ldBkYWyNJYjuT+ucCoZP97eOfWuMq7B6aZRXRMSPo0P2rI4R1QxglpLlmuEwJLA9nwWFEQqY3sC36HvqBrVST7q9EKYOHdtNhQqiCtlhevWkxunJVvsw9ECoYqq4D7NGmIcXxV4PwfTcZnPZ6WKErvRauPmsxtqPaAmjG8FeX8mbncwQ025PA02BJOCSMnYNDvat9/ujfCXeK0tkCW4PGQMsJngNVNa3Z/POLMoZTCRMbB4CkS18KGREMnfp0y2lqf4RSPbByP/vWgKV0UBSwHsIeAx0q01+mR4za9znZrImlujHDbNF2Y7vN+Da0/3dRXYNV/PPl3I/w9377okSZJc6X2qauYekVlV3T2NAQYXgUB2KRThA/Ct+RJ8Bf7gkitYwS4uO+BMo2+VmRHuZqrKH2pRDYwsf3AEwLSUi8z0LSszMsPTzezoOd+ZWQLbnCWIBSXUvZ1wCHyc8DHK/S9R7rGXW32fSH3hl4MS0ynjwy5JWyKs51FkiSx8QcfWOXSt+YuN/jCCmDp/9T//foUVP4uY4Sd3zD877f6vX++YBHcvZbFvubwqFfHDSmAoB1Y1e8hMLlvZx1smc0UP27IFJk7LBlruqZACeB5Rglku67iqMLNEqZTKt25S+dhmyvRiEokvEUHq0G5my+q8omlWn38TqJZyIbWCkYiW4ASQQboxzMuJpcrLSLam/PIXlYfcWkJ2+CK4/R/B/h5+vDfe8mA3Y+L84z2YOLsZY5ZIdRxlTXxFaFlsJJb9Pv0BhYPPVGoAfooT/vTXklzqO85/8TFPu6HqvNylILQkDz7/4XC51EOuSZSLAanoTBkI6VRkpolWHeuoCXSewvZu2eQdbKsF5eNwjvWqFCEqQrwKBkukLHdDK+DxckXoEkIzc0GUa3MsUo13X15KwHq6wi8+BN/dlLe7FIiPQLLcV+UG0opiqNCoKuhqT6zIYcjiEqCEBC2EKRVDBGWwYr5Zf65pENmKPaHCMT5jufQ24aJ0qS0oXk2qkScFVN+YOWk+a6XKZEqj6Q25bzSEeT+Zh/N0fWLkie3vyQaze0We9zfOl8CugaSSWzL8IBOMC1M/knOnN2VINddkakUXJRAZSG6knwwN8tTlriohDO2IVjws1LHsREx6a9A6LgMRuB2DfXuuql1LsEbcYI5JxsTHxnUXxhjr8FmR52TU6r4pKk/0duLX5PsfPnL91YZLR0UYr/eqrr5cGZG0HOwGt5kkr6Q2zLRYYpaMWRvH0Uuo/Rwvy8EltITDKLaFxU7GD8RvLzz/WSPF8eMbxDei39k7qO0cfrAJtdFdv+NmtQF/wN9vxxvWWh2S5A2PRGnMWeJ6rEhzw/GhiM014OkYhuedXM6ClFHlFCLAWEOVsRxWxcfyaLQ2yrni7xj6grvibeK+LYZR0L1VPFF7gXdDGPOgYSVCbEa6kNmY8coZSdMbpk+0awCTGY4/F2hcJ+i50y6dt7/7DftfdG6Ho3FH2Zj3pMmJZWdk8Xe6JL457huRn9+mPSUIS0ITT7BhnAhHT0wmEsZxL2fS++dECNyFEVFOvOUCqKr2ajgVL2e8GtwHmDSazBK7VrOXyyS9ptxG1YgfKLONev7sa32O5TLQTylBWANC96jmxBT8bKT6Jx5k8FjnH5PgxXtcg7satpSbzLUEgf74GlLintXSxiQKSeGyYkz1eUhlSjFaL4vbOofiM7hsSqjXAWUNDBHhmrU3HY9cdgYqtVf4HK+230vcyY27B6kNGFzileN8gucBzRCU7/7P72j5C/jzH3kNQ15/4PLyFf7Lb5ljvTliIE5GRenmead3AQ3EL+V8kgvH/WC/SLmuTOneuFOivmwbebzQZCdyYvYFRx7IAawyqB7K6Ou8IQIWNOugDfGJxiR1gxAGQtOt3FLRUE3e7t8QrwJ+xdqdy7eD2/W39K9+wa/+w694/S8/ovGCf3Xl6fk9x/3OdW788Ot/wqLx9OcdWtKHMrgXwsF3xF+QUJoYMwb9/g6XF+Y22ICbl7MQFfz8AnHBdGd8hjzJX/XOtgnnEUgWP8/nxLYq7RAH+6IhDLo2iFmFMlZtp13qYA5e7pfZ2f/cGf+9Y3owoZr7ulecOpL3auQ18PvgehHMkpAyC2xaHLfJoDWt8i+D8eps74zRwUdyehV5kYnMYA9F9IB4qSGyyXp4JdmUThVtmA7OE56u5Si0vWLLrHMIMetsoE6Esm2FAjjPxDTYvu7cfhjEJbi+L5Yz0WGDtxhcRiUz7M+vIEH8bZK7I1pCvolwWdHMJidBPYP58Q93D/xbX18/w3c/TsyF/ZK8SqA3yCIP1VkHCqeyBKxtubQ4IJ6ogcqsj9tXh4xmiWG2VewQ+YmlNmd9XpV63N2PEpuE+vhxh32vo0TrJXbphDeooaSWUCZWH6+zuFyexV+egBxw3pPn5xKvREp004cT7ITLO7h5fU4lmcMZJqDK87tk62VgeItk+7LuZ6UzshA0X+rBIZ279sVQ7ghWgl2AZ91/QhXEjFQskwj4q1994K//02//f79fP49V9H9wDjH12lADxQeK1Z62oJpZ0zXVUv1IsC64AytWCCAqqBVcW1eEwJfwIFLQ06QEJL/VwyTy8TzJdYgHtMSNc9VLEwvilsGMWvgskkYJWCpCkxIoVKQOWwrjFMap3M/4tNUq4TaYs3gM1sr9cpJYlpQqLw2ZTo7k3Vcbr98522WSc8XYRPj+zXmU8vRWme6t/wT2rqrQctBkUjXW+XnGv373KjGzroe08j/6vr98Cp73ephYJn39fN5v5ar7+lq2YaUidLYaA0WgaS1EXctRJaN+9iFSsFxNwmVVXFQzxNusCEeTEtlEVgRxxQEfE+MWCZS77xHHEKnIT/19ObhU4LkJ75/g/TX58BT0LdhaxUobdTjl8fOINa3OEs8eN6SsB2oVbq7IjxRXRAT640XAJ5FZJNE0AkM0PpllzrGy2f/6b+sf/Ds6S+0AACAASURBVLInqSKAmxBy5xirqjsvy313X62qnW4bjAvdTq77EzODGG9oKttVuOUgrTq3pBnmzjHu3O5vXLph2nAR7v6xXKquHONE9B2myTlO0jsze9mWs5V12AWVYhuk7yVWASFzsXIEk2vFuOiobaRuBBvuFQMaAREd97MciqOmfH7cURVMG9qXVHw14qKM14OqId9KELWNNEH7O+TaadsVH7UjkEi8N/RM5o8HtgXDjKAjNGY49wn3IxmuZAxcqpRDVWjxs5jL/OtfurG3BnOid5ivg9vrnbdvhbhowTwx2tHRrVVjUWzFZ3QnsoFs+IxqVE1bw5MskVVt8YCA7AgK8Yz7CV5HfzWvabPUZoNsFZ0QVtyvA7PKWPJYTKL1nBXBcxKxxpTrz5BSjYRnXw6VRpet2pyiLXdQh1DSWw2leuLnibtzzAOPyVxNXhtCngLxhiZEvKOr0TfH+oV2aXgftKsg91+Qb5NLa3QRiFhdF8bwAJnF0cxyddxHcubndyCUFFqTaq5VBXNaExhGZKEUPt6M8yxXlgLo8j9prorccizbI44owkFwmwXKBq9DH8khVY5zohySfJzBj6/gV2AbmAliJRipCWqrtvsx5ZT81Dq97Qprn6VUtNs++YKXoCpe5UAxSS8ou2ptvMMey2DUJl7Wn8xaq0zr31lU7KhZQd8jgwc+Yicwq4nySGqI2pST5AQGupqHk+fVqliRlBIdDOr+/nd6v/+9r6sL276hVg6VvoO0hty/Qt6Pigi/DUxfsPsv2P7jK3kpt1172fA/uXDMgXJH8k7EZLovKNkr1pxxJpnXEvSrZpKejt+jhs4FnaroszdkJqbvSBNig9yCM52ZJy7BMQfRA1HD+hO6DpeJ18e1EpfCJ+5viEym38mc1JAwkblDNtq18/zLr5lff6DfAvnuOxDDfvmOt3+YSL5HtbE/X9Br44s/+4r2tPP2j5Pj24+85sBF6zcsJq5wenKOgRq8yUckd+TjjqgjnEheKzYUVQo0iGq7/cyuy/MbMTvWaj/qttwi6xmgU9haQ5rhGZxzsYgk2XqdjcITRIlUsjnSAuGkp3BVwH1FF2tw1iLxl2Tv1UQuD76yeEXzZdJQnrpW4/kULhchh7OJsptytcZmyS4n4j/S7HU5k3s5S6RYRSL1NVIqijwEttaIY1Y7qiVd2xpIFwql2vGs1usQfCpbq0ZEBGwG765G3hURwzlp3bhY53h1nr5OWgjcpdJHPpihzHBEg4MkZ/ENSYjvlfnhD3kX/NteTUp4aR8aUuEupkDOMre0Fdl7nG0EFqAfZIf7HcYSssTgddTnyAm7LXcWK3VFrTkzaz5+LPfXkHJFT6/Gw61/0jpJjLY/o9eNrZc2mQmXdTQ7vWKPXcogoV7ptjkqXpgsBJLUvx8Uj+uoXigsSwgbohyPtFKW+/A4nNQaeO4mvH4MTJIUg0xONkROttWanR6kQm9OCjRmpcqoBIsuU0aKcNl+v5Piz0PM+p1LZG2wLLhooimMpTjWtfhTUCKVrslblL/FUyqvGvJJwVArh5IsN0tFomryItS/t2t+EoNguW4oZ029sHqwPdw3k7IIZgThA1kTOJBqsNO1YUlZtkTBt1JMcz2Ei1tVjQelUhaJKBDmXM06sTZatyRfnfjrE90750vw4akg8KfUw7X3h4hXzRS6BJHiY+Snd/ymdfM++Cmf81XP3kda96crf+fvBWG/CEesg1p14qKa3Gctki9vyX/9plxIoiXyoPGpdaK1quJWhbDkTjCnknsiPdEupAmuwm2yvE2U0EWprE2koLzLhSgAJkvIEnRNeAsAWE1QUE+wpsp1q5v4HMq3H2VFOGq6IloimT48ebIewNSkvSKNyd7KOSZZ9+QieK37ucRTKT9GWaKpio2U+n19cEmaVETtc778XUemAe/YrNMpwSDyjrnSl+g45htDB90bMzvzJth8ZsZgeEfoHBKcGbyOg0cjq+nO3IXQO9oDyfd41O+z9MExTkaOcjBE4Do55c4hA9HAczBGQ6Ph+grbJMXrmaSGalsT72pjJYpPKFKeZTGjaQe8nhcxmeoc57ILaz1UPAPHkWPQdSfehEtvqAbbBr0lokbfhBaGvUvu374h4xXbnni6dsaXT+zPDf9xwA0yldSD1jeERlhUzCh2Mm5oGnI0XD/Pe6zlHWZBaF2NPRszDnJstC86YkK+JDRBrUNuJEcJ1CpYBjkHKp2uV9IdV+HEUT04jyQ4iU+UH8PaW+1mlsgdkWh2UpMuDdMnpjseY62VTrNtwa2NzAuOlHCfikgJqpEGcWeMGz4HU52TQJviR9nYYT2fAiQmTeyTkC65MznoutGsrdbDcuJoKp6DECtBVo0U5z6EbAe+NeIC3l6J64QD5PUKcnAs28+cB25nRcq7l2YhF7I5Yf0PdxP8G12iUS4jrNYQpVwolxOdnd6SP/k6eL5UQUSuoV3TWq8eGyVJpaXRouKGrHiLT117tnIySdSGODQYVoejKdDUuZiwi9Ck0BEPHuNgsbyWQ3pOCAvGWs1FhL7FarSuSLIqy81Va5KqLidzHWBFhC7QqUMmRDmwpOrrtdXn1gBd4BK11S78AJ1Qcd2Mwk54JJNk6nJSwEIEgIpy0Vp7m0ETY2t1EG2F4/osL+nK9Fnri0LECf0jB8amV9yEfRfe/tvJ0//SUbugNEZskBd4OldZwElIK/6KPq1J9KUGKNoY5wAZNNlIb8Q7ZT+CNhUimXGswpMgXfDhiBwrEl2R0NYuSCo6g2MVApwEMVudRFPpMtGh9XsgiR8l8vpMMozMwCMYN7BWe8lxHjx/uHL9xR9xvTUi7/QPSg/D9Z/YtvbJXW9Nsa8Se+/E0Zh/73z3fx9893c/cPzDwfzvnf5ypX38AH/3nvYPH7j9P0J8tzN+e2H7aAiDfa5ESnR0JjY/v7Xx6BD3k4hkPriMBJlbDX/dgAOLYGuG9nXeKo27GimF5ZoEXz8jv8L8KLTUOjtp7YXqzyu9wVw2TrVysjdNrtroUk3Qz62TRyywezG0bNTzpVsNZUwbzwI6Dcs7cU5a6/RtHf5LWS8cSKtodDPHVIkVdbYQwmuI3NpWZ4UsNhJSccMqb1qR2mzFtm0Jrpj2WmvV6/dkAhTHcLOJH1blRtNolnSnmq5DkX96gienfX7L4qdraLn3bkfxcK+sSKFUJO9JVsEIlLg3S3xqyyyje90jD5C7ATJh20vECvgEYCeLk/XqFU/UqH82rSj/9Pq44Qv4bkrYhl2vxOVLzu2JYTu6vyOf3mGtAO3i1Y44FX4cMG4/RSTHmsscs17IWNHHYQWrVylHomcs4D91rkHIV5DFfRo4x0g8nYxJiHKbk+Edm2ex2iTJdEYKOwbSuGR9YV26ikiiBHP+fuL7z3KcrdQi0VS4HcZtJG3dGLHeVBNlhqLpFd1bB/zoUW0B1P9iRgFgJWiiuAp4TePQBUCW4LwrWvSyapaTilQNL/5DZIlmW/nk2VVJA0SxdCS9piy9HFwyy67ebE3jCE4Xniw4oJxeWZBAaUqz4iapVoujWbVZ3BzeBlwtyN8a8+9g+4sTeTGO3yiXv0q++Vv4zz3ZrX5u01fF77pBQiHcqilIy/1zbcUY+KmL7PGT/zyvBwy2/v7h1HoEDutSEX7963IaXQy++kr4zXcTQivW0JUvnoKXe4lKZPGHOsJwpbd1j4gRlAtOEjZL7lqC7CTQVgGI8wDtiliQ01CK9VaT4tWYtF5ngSyXB0oCy+Ll2OO7kSQlKi6hyrunmnofp/D9Dw2P9d4+jGEitFhusXXPdwPWhj6oqK6ZcM96QE8qUqlSUYsuyVhOSZXlNBRb9ttAq0KDMf2znT6PPJHZsevJHKBtotYId3YxpNVGSRV6dmbeefUNef1If79ze3tBbStnZtT0TETJe/KiB2ZGMpGujPPC9IPIKFYEJ5kX0itm7aK0THIGIR2VziGO5hOuzhTDzBi2Y17Ct2XHTEi7YlVJh7b6fSlqYaBsjHBSgxnGeZw8XzuTBYWedU/uarRm+AzOfCN6crhjnjQX5igGwwhH9Q1N4/vbreJfv/gB+oWtXRg+mJdBP4Uzb3Q23F+LQyDFSnw7b7TW0TZ5O0Hj89uwA0y/wmWQW3GpfrREv3nCngY6D+bNiXclPEgOrBUo/Rw/IvqOMV7r88gbEobplfTBrk7EjojiXtyspgaRnBO0ysDr0MadzKcqY9HkzO8waYj7ivY45zyR3HBVTu5IHnS5kkxyrhjr2EhtaB8gxjkH5pdqUxTBddDOTqgRo6bPqQNJY05n14OeSnJDjlabPOrZ3PskzwvIwKOanJIN5I7KE34cqAXmG/5+EB9P2q9O9AejxcZsr4hsxduMIOMC8kIOp/PMHJ9fa1OTn9xMfR30AkrUbhMLRQP6Vs4UALLYMI+JcmgWEykVwbmo1WBuCi9VmMmQapYrdruuOEPxuKaUUNVEsAi6GifJoYFiRAZ31+UyrcHIPtbBQCCt3mk/Bb20ioayXMZlR6g46lrrd6s9j7tVw/A6OFZrXTGN0rVEiTSsV/vSSZYglcmwcr3EufYRKQ+z9ScHuBNVu05xvg4NGkaXYMhkLLcEuaK8n+FV2A5lzJO2CVMa9n3n6ZfJGQdmye1vfmD7+BVjvJFyFuYjaj/vtxsmRlovJ6cm4cn0YFchYysmUX+BcyP0rQZvXfHnG3Ya573DTPYvIU7H9VaOYC/3fGaJAqkn58c7ly+/wrzKNjaV5RTdcTtxNjK8zhHui+t3p/XF5ZXg9e1A78p4DnTciWl4OHYB/bN39H984+XDC5e//FP+6a//E/GXe41Zu3B/OZni5JPRnk/sQ6P5ezw/4m60cIb9WA6zL6tVvQN+c65+4e1bo39/49Yb+4cLc2odfuflD30r/Ktf794mqrB9bNip3G0wukI/CvmRTiw+n2X97qoW9y6MikfLwnXEij/3jn85iH/c+Nic9sERM0aUMDo1yauhLwHPFXEXmVUEsaDqQ+DtdqddL4gN7Kw9c2+NZHJGkqbl+krh2bTwMj05QxFPWDE2SWOvB0w1542gb4uNdCrSWIKuYh74KhVraiXs22ouNEF7oz/tnK8vXN7v5VRsjs9im16enCOdHsm1d8Ib1gczhHx9Yt9ewa2KZL7vbF/d0L6aZT/Ta5xK34I4hL2YMlxZeNAGH70ihqtIsIwpi2ElNcerFJiW+NUUXt7g3bVM6qE1INlmiVuZcGnl5iJXY2GDW22b65gXdX67n8HmJ3RodoHnD0DiPtBwmirztQZyY4C8wP5Uhh4o4Yqk7iEKVn+/Q3tajYxez1t7iPVrsDmcGgpsxc7KDQyr8wuVQjIpXNNJaS/XpmzasLX2h/hCOG2fflaxyhLo8Nd/+/J7vV8/T/VCKEU6awp33SseFQmTJEI/tQC2tkDrlCsllotJrNxdlR1OMpTzLPAyS00VVXyCitG2WHDRxLSs47mYEGZ1YC8hoGJ9Ietjrd50tcZu9d/K6VDTwTODoRUda5SfsC1rPsv1Yq2iY73X2EA0aMs6+nZTxptwvynHK3zzzcm3v1Fefp2MSO43+PjVRE7nHImsh4unl7MjK7N7zIDQsu23AgQ+XGQ/XZ/ngfDxXX4SrXh8p/+S5dSWPwGvHPrxlvzph2qNGSn4WCUEDzef1L0VoWw9UePT4ikSyCjH3ZklbI6MapxMYaYXNH0JXv54LSqPQeByOrEE15pQ1zeUKyKxJuVQrCwB1vT5U0NSGt+9rsYKYd1X9VMRrXtdNOlWB1fV5LknXSuScbEqLBAtAHinwIFIFmyQ1drCAsvLP4t0ihBi/0JI/NyuhtIkOfUGM9iyfYpZnTpgAUnLa9CKZyQTnztv4xVpyTwGKU7bt5pO6Mbl3U6zOvzfXh4TyBtANa5F4x6GMzkDDjE8kjcZ4J27O0OckcHBR0YaMLG8kOtmqPY6x5uRrsUjejgaIgtQqsX2A6/4rBxMD84oaEBY1TOfYzDDuR0H0vZa3iwwT8774PZ64CNAa5o4bobo4PmrC5snr986t3kj5ht9O9ksmbsyToe24/kOy4oMTJymVzw2pjdMNrbz82ubA8h2MmKWK886qic5T3i+0regXZ4x6eCGzRJ+Hg2CR96r2U93TKoRLJx1P/YqVmmwqYI4c74w5ljQYF9uQiH8gltynIM5BYvixZRb5qyptgYuNzJuEAOlETnxOAm/I+lIO3A5mFPxebDl+xJNUsmYyGygDZNJ71XWEk4NYQw8G0rHorPTyvVHOSXuc0eY9NyQoCIYc3KVTvNy1IxRpQv96YLMEszsA/Rt0t6MWx7ggVFtTRmGsTNz4vb5iVkjEpdih/oDhB4Va4gUQqOm+metL4/hmLvy6NutOGu5kRAlfLX2UbyNT66q2nDUurjiBdrrvdUozoZorRwzE4nlIljReeTxepUzYJAMomJ8mmyX2o8lFfuHavLN+GmPs/dyy1exSQ1tmgIStYZFoB7MzPoaMrmTxRWLx55hlfVklaPYwlg8iLahP+0yGsKuyWbBQNeesUp9ygu2Gqg/00nP1HO5xTuiyS6vcL7jfp4VEf/7G9vHP0H/tCD+EQG5lyO8JdZ2nCqvIJ1jJqkv9CaMc3KcrxB3NrmyRVRkWHeq7emJ7LXWCR2fAraTdyXjUixQX5aJHNxfB7Y1wu/MeUP04Hy7c8YrI29kDnJM/LhzHJM5J8V1M85DCS8XWN6CuN7o2YlMTE9sTlKD7z++8SYvXF925vgee/1j1BOfA7zRe0fjgkpA7NAbuhfnyxT65U6XBtkBqSbyeRLbwLc3+Pp75h8pocL8bnK/3zk/nsjt87PPvO0b8yoc7x37Wnh6bqQn/Uchvi87jKYS/QlXQzyx+UgjKE7x7g7/KdZ8jkS78sPlYP5mVnzaE0jud0e2GlZKC9qLMMfguSnP3RBNtHUsKwkRciAYYUKTxm1UzjG8RHvLJ7oqMyaSxbBtq/ykJbRWhRYZvkqkysDBHaxtbBcrzE4mNqj1s7wYJVxtxc9t+ztca3C0vbuRJ9UCmhMQuhh5dOIKXZRdIcZbDcwHmBhH3nFRjg4fPxrz/aSoDkJ+pqxSgI/35H1baBWFe8LHgLeHU2q5qYI66287jHPF9mrpfOgziPEp8fMa5YYaUfiOI+GsowJjoXWJ0ih8LiOqQIxqUJyjRKVDgrczOUZxic2ukMocP/B2DkbC61s5C/ulGu7X21b4G6tzWk4Yb5TgnvV9RZZ2gCbnCVzqe1mmZbadwjJJibXpxVAuSErg2lG8eM6aJXVJpdoyhBm19jWCzILFQ3Eyf/33r7/X+/XzEbPWD0nk0bpQFvhCuSYjq2Xo4aVRrQgTUXE/MyCp6Q3VAPKA17UObUvClbYYDE2ritJabcZU64Z9CAiPA8HCOtO0pm+uD8ZWiQi7CbopW18tIwiYFbtEwNqqHqccWGoP63spnSLCjmKmWMDpxpz1tkQGd4M7wccz+W//OeFrYd5AvnLyIrx8L/zNd8l3UWBu1Qcvqw7ZkjAzGDO5+eScVb95Gnw36us8vtfP+5JP/5+f/umf/1fhL7/upLNy4snbTfj1D8V8cq+63N/+AKyNv1FNHyynoIrSc1k0KecUoUhfU8WsetvIqi6dIsxZnlSTZDPoIojU+2hrdYoH101qvlyF9tRCRFk4q82pCG+ewsc3xV1RDcasg/5jml1srtUiJbqihYLoihku+KlKMhO6yadIohQRq6KOuphyUq87F0zXNCp6pp/wYJ+tM0tkJxya71zaBWkKbkh3LnKthsMxyqHSd44xiI8N9EanopxbuzBOkGFMF1IrSkY3LE+07XhMfBqHRzlKOQBhuJPtTsbgFMWj85pZDTqhSF5QeSIYRDRuYxAS0IKgIMYyq23pDMiouvLUO6cMZEG+oRrBWiRPe31f7p05ks0aEcH9ODnHwPNgMui6MY8k98b2viNXYe8d90B3BXliqiBfPPH17OQ/rXr1CCLf4X7Dxk7G9zgV25VIunRSboSeTA9MBnP7PIX4zI7ERuaFoZM2rphe2PeG+M7sr2RO3I3DGm+MVUv+hHviaQy5E9RzIBnFkZFZjpLcaUD6RsZllUh0MlvFRvMR6Ac1RWRUaUDZkstFKMW1IgWZOxbGOe/MIeQ0UoMRk3HWWijSyDRmfCT8LIgvDdE7wsTTmTYYwJS632uTJZBebDerxjJXR7Vq6LsoGo4Sn1wLOMR840LjSa8VF1FHqHax89w5+2R+cGxW61yuKPYZwqkH5laW+s/ssjUwTH8gsAKTcuntJlyA1hzbIUev1siozaosSLqs0ar7KkrRGtYMqSYoiRoCbWoV2xEqnifleql9VQXZVct1iSyu1FpbwmoP2PcV+bFa86AiMs1AW6DmSCu2m1o5JbokuwWXFsQUyHJyiSZijgjsqmxaA6BBOYtTtEC+XoeFXPvOkEBR+hJz7xJEwil8clgVi7VE4saaVq/ChYz6uT+r1ZrvwvP83d3I53Ht7YmcQW8N88C80b9s5JjE7UfaPz0jfyEcHxwZvfZQuUSi8z2WiUsDpLgqmrjvRBSA+KltFYM+T45NeHXhkDcibDmiDjwntoHIQHWAGaff8faK51xN6NC6YpsxDge7EMPRVFpf5TdZe6VsCszK7+AV68KJOTjOEmu3rTPmbXGZJjGct5cTu72S75742CbyMrD7nbjfSAnGeCHyYN8Ui50YA7G6R4tHKmhuuASiFeGdOMpOj+ScScQFN0e/aLRnaB8m/RfgX93+sDfCv8G1Sx3ycYgcjO7094n9SXL983pO8L0S8UKKkz05MmldCavW3XsK+2LoqQlbn+wNPvxSyN64/yY5CXpu6EUJEUQNfQa7Cu+kUwm9zhwTZ654f664vSLmDJ+YJm1V1LlnWWUsoNc5NtIRfzjuaxCwL5ZhndIUWqJPwnk7iBucI2p/pnUOqDOIQJzc34RJcd2a+ILfO713jiPQ/oTJhXN85LwdNDWsBRFKtidiNMKqKb110NnJN7CbgAYnyW06n6khHoDbSA4H9+BGObKaFi8rVlQvdUUNa7ZbyZlRccLjrLW1zoHF2NJLNQ+KLjNE1DkxtMDr8yzX1MGKLY5iX11aMbfejmopnAfkSOZUzvNGHDeO12/I83vOowSv+4DtCrMVUuiccF+v4xKVttkG4PDhutha67CW5RXiHBXtlyXAVZOjECoQwiUXz7knmUZGq2RaBrGGUyGNKcrQxhRBTJjaEW2kNExnNRyKoKm83c/f6/36+YhZ/+y0q5rcXbhHrhaa2iiMtRFR/SkcdqMcSinrf7EqTKU4QE2LmZBN2S8FiX3A2U1rE5YuC6CtxTggqyln5KectcpCwUdVDV+ksq27UVZnM1JkTSB9bdxkCQBLlEivyV0mJsl1r0zquSyMpspmNenrm9C0GCYzld/+F2Wac7wa918446qce3B+ObkPJ84gtUSGEiKAlOJkIUtAq8/lCUTyv387Pl+V4Xeu/y/o+0/CVvI/fXUhpCyfHnAfyXHyUIBQacwUSCurKUpasq3JrMmaoCjkKFhftyWAhn6qvfeoB0HXx3uTS6wqmO3jReZy/Zk+MPD1UkwqBltzb/1ksJP1b6YbL/eKKboXHasgufzEaXtETFZ7J1Kusm7CbooabA0uKuXAWr8zsaZaIlVOoPKoaS0RTnRB6bWch/LJlfV5btgjbqg6phvaT/KcjJg0V84QoKG6IZnc/Vs4LrCP5Yq6fJqy9hQGA0/F+kmiuA6yKbK94iGc4w56MKKm+ccMhrTF64AYE2cQ4jVJjuAWPzBm40SZWs+ATMeHMDgxLoQJkSdqClKeB80vfppeEwQHOp3T4e73up/v33O5Ko6XgCIJUq6FmfX6b7dbiS1Ays7rMejPHRXDWufd/h7aKy89eLJ39Ej0NDLvhAvzktx/SFR/JGSg+8bIUe5INZ5aI7TszJ/jJdQ0OPMo4KwHKhva7sz7jRYbHnecE1t93sOdkPK7p08yldMHLp3IXiLQaJgM4CDCgYnLxDOZMWu6mAX7jpRP3MggQaPE2UzmrHsucSKC4I0x78wIZgrBQfhaF6UolO5n2fDjhsdBa0mcE8uG5wO8DojSeg0RygUzl/s0l+trCQgxkZyInGQUCMJdGD5IOTDbCBw1waWDXBntYMyDY75hoRzZad6J4RwBI708RWdjWJD983P+TV8Nzlqts5K1HyETP6sYoiKByqU7NjpNqEqGmtmxt1oX+lofUot21Ui25vTLYL624khKfipNqfKeoG81oJmaa4iT0NZaqLV+tATzaio0C5bxHbNyvarW+pQqWCrNgIgqr5CKFq07nddTGS7r3q7vWbJE1iHBawYvERzLeXyKcEi1wg5JjoShwqGr0Zok2mMaH2uiHSWoZsW/j8xPsFzRGrSeCTLLIX/7TA+EOl8RvYAfxHxP/mio3tDeOf7+Pf6XQby/V3zl7cCj1f6iJe6TIys9IYDpxkUcDQe70STwt4OZFwaNTFA1JBTLDs2R82B76jRTPG74cMwqydHGjtLrUBoJ5ngEume54k8Hq9a3Opwl6eeqAyuRQRQigt72EmJf7jw9ZYmjKcTtqHUaZ3z/yngyjhCyD+YXz/hVab8Z+MvBZfuSZiXUYY5tAiNWBC5RdXwaFrA1JcwhlCOct3CcxpA3UpXIA9+yml55+6lA4TO6zumfYtEjyuhQlIxq+5M/Vp5ckUMJh6lWzYMhBYPPYGtCa8m+G/vFSljIhE3ov0jiVbHTmPeT1sHPgWrUUOfijJeTEEHlxE/l/Di5vwnnqxAvSsxJjkZ2oS+R/tI2ttTqJs/iHKc0rrIXbJwqEOsqMMDY6Fk4HdFKP2xPO0krh7E63RyxB5+wHPfvroIcFS9NrQHWQOEKb/ck5V5c5XYlb0rmBdELtjVUJps6udxBuTtvx8RvSfvjiXVbwkGu/eHneQVwppRZZhjWrzlRUgAAIABJREFUS7yKWTFDpERTd9iAx9Ete7mYLEroSq+CgrEEIi9EbZlXotrju0K7QO51fpT1tdJBTvj+rUQyDXg74X6CDGC+gU8035jnKKHLy/XUWwlpfgD6wB2VUHbLEsVuZ0UZByVuBfXaJ2UEeh31ugIKL6NCl2RGcrkk8ZZcFfatEACZZ4HyAVDSKg2W1thVUHXCnE1WkQy+2GE1NFArttbvc/0smVkXsXJmIcShZAMzr4mMPgSIav7TFEyXJXATVIpdlZkMr6ghVB7qnvW55lk3kmx1TJOpNX2UxD1RU9py+loIk9pomVQ61hDSYDP5BAEvcHIFUS3bilmxJnEL1m21iUPK7aKZbLswJsxbMjoMcS4XwxuMj8L5vfJ/TeFP/yzR2Rk/Dm5DcYUffPDb75IzA91KyujDGPsksuqxW0jdLil0gzGLxyUT/rf/ev/Dvcn/jtfDjQUPl9BPOPjSgSoK8R/+qNPWuMeS1UQEM8tx5Av8WUnVuu8+FS8kbGnQyz0SLvSr0FYG/jyShpCuy1ljiz9VENISlnKBjrOYav54KFD3WeUuFoy9ooOFQYaxxKk60yczrKaErcTZuT6eXHBQAlFhy6rzhbIld0uOWT8dT63K+9VaFS6YVtRwhKwJ+HrALzvt1CVeZUU6RB99oJ9p1DA7EcqwgzEHPZzQK3dJWgSRExXhzkTv7xjPAw6veGqW++2MO7pdyLuyX41Y0Zh5nnU4jA33g9Z25lkulwgns4EHs0F68WVsTNKceyoWk1Sp+NdRDKLZlXcpjJzs8o6pN2IYxf4bZZfXRssXpm7Ycg8qynYtIfycb/S8ENOx5yQOpzNofa+WvAlzBF0bz7oBewlRmozekDxh24j7K6/j4GTH3hfY9PY3k8tfAOGljUmyXS/4yw29ODESYqNrwBvcN+f0K35+npuqaYFFp6ljbuR90C6GDifySuagxYa1BBe2iCoX8JOulX1ynVhu7JJknnXws4FEgxHI1olwxCbnqM2HRK7nX61pM2rNjLQqUZmOiGNm1YSTXqJIXjGdMJMxXkiNarPMG2QwT6Vv1TJmTcp9zJ3NjHOA6EDbVnE1yoHQdeM+k5bl9IJiWU4RNJQzB5sIHeMgOWcQ6bRmSJRL0s9yGEoYKcE5jRaGXDrpyQcTDhq2GT6FjcY9IHWSciC5/4HvhH/967Ke3b7grgewK1jKAwaFJlzqSI92yLAqptHK3V20OJzVXBuMsQDrDUhhfw7mx+D+YvR3A1+ClTiMu6xWpqAv3sskkVn7KliIiIR9q02/rI20mzLUlzBW0do8lVPnYoEa47F5BshaozIa/s8m0LFKLuZczNK1qc6MchWnlFMra89ZrNOErNKXRglSjUBWA2NNLgEUvNbZLrXGd4SeyeUsfuvbEJ6ePk816z7fs+0H95ePXJpyG0/cfvyG9utf0n51Id5/zzhL+LNrEq8DeXfnmk8c20kLx1aLFnEwtdYhDiNa4KrAG6LVSOeckI3wN+w+cen0PIvpFgdIx++T/Xly+MR0w+NEc+eYszAL0pD5St83Mg98XFGdeHTgRrMLk0F4x/QZsRP8RO6wbzvDg7e8Yboxx414rQIMfa/07V2xt+4XIu9M6bz0V+x8Zv76Hzmf3zPGD8ycPH94xxEHGcFVd2achI/itZ0HmVbnIwM86lmG4VkRleEgNFQ/EPH5RaS/e1X+eFMkHGuNMSayCU5xR7kqfC08favkrxohwdycdLBW57CQihPv7uwJowkyhByBfYCtN/ybiX4FV4qh3KlDc1ijf6m86In8CM/vNw53rtYJzoql61bryHxF2UgJ4KTvjePmiDWsVZmNtZOdRmoyxqxnzpPgedDEiHNWtPDRpiqzHNZpeCv1wrosts0SA2xwsc7pyraDqOCaXI9nbkfQ4uD44YkPf7JxGyfWJ+dUtvbHDPsttk+o7mrkmDx93Rh64veoZMgmPyM3zL/N9ZuPylWc6E6OWkPU4N0sQDz+EHnq47NV6+AXlxKIkhKJfP1DWolQrZVoFQ99XDuhgzwBe6Rm4FxnK/ESvCJq7doXj4uAJ5tY1rOn2URafa0uhWlwAc5yM0KZGdzK9dUvj4bd+jNGubDMS+SyvvYH5b9AIz99vF3h5TvYZ/LFu2oiTtF1VhbaRrXCqnLBmdroYrTshOpyHkKjiowUXWag3+/6edyL8i//urekt/pFOSeIztW6sECeUkre1upYLwLXrb6VGcoxY6neC+6ZUpwqKWGJVhwEtBwurfmKMEiB3yM+RQPzMTGUmmJuq92uCyuWBVuu6Y4ITaycMMvJFRKYVv2ypNX0Ux5ul/pz0oKnZ8Ma6GhEwst/V8ZLcsSk/1XwrSX3W3J7Mj5K8ptj8s2bciC0LrStLDJSgzAawa5J18pVX1vSM7E22BSiJX/3Mj45lj7n6ycha0UTfue2L1JW8tTKPikheFYUdbd6UlkqEfX+b40SeLRkMU1lE1k1FjDPYiTZUrIfgzHR8peWVFTAdFWvySPVoFIuQK3csuRyOxVrQwRsVYdnsrB75Yhq+ugiq4VGEC4N3j/V9/bF8xKWFsC9y6o1l0ClJi2mNaV2yVUBu9yKjwZE+8k19niduh5Ksu55Wa5GlURM+fj6k4T1Od5pQ07CXskBKcYx3pMRdJmMPEGMbU/6rcH1YMYNbVbiEwFiaHuqVlSZCE6zRmTQrJhAqhCh+KxuXVvV8CqLARjrHnMnQ8lRzzL3UXD4GCANRLBxcj/KUTf9Y7U55SRzcteD6QNVZWB4HgSTfr2AtZr4uHPRRtwHl+cnIhQ4OXInZt1LIpNuiTHBk4hJenCE01tjupHnwRGCts7FDAducmdrxnw9sWj0JdaVfX9D5AmJQcsDceNok5mTpneafZ7C/JBnjCoPECnaopnBaOCDc9m5zzyJOGrXIwfNNjSSyGB3YdP4FCcXEdydidG6cHubjCgxKc/atTgviAQRnfCtYnmyVZNkDkSEgXHEiqmnLffp4DheGWMwMaY0bvPGkIMjx2JmnZ9cXfBoAjPQUc+w34HKOo0zDqY0Qjs+i++mXs2WLS50SmBQy4pKqhekWZV5dlxrKJXcqpBAFWjooyiBoGvF/dWKBdb6QeYVzRvw+UV1CEEWr0oz2UQwothThzKP2g8dVMRgZrGMWg92g0sKOQQ7lXg18rUjtwtyU3JUu2FX2L9MzlfFz1Z15qeSJsjmpAQS5Uao6HuJ7sqkZ7Cb0NWrWXC58sotX8UrmgVtd5w0r2elV8PgA4DtXiJ8shzFsVo6s3hh08vFn1Gng5blMLUsDkiErNbMui+N4EodDhrVjFifuwTfLetnahLlspAacBklhIWX0/p2BJfrCfx+k+if+/V2e0NuNy5PTxXDevue/NsviV9CvP+G8f9y93a7tmXZldbXex9jzrX2PiciMzJtU4VdlFUSFEICwYPwGohrngAJHoBHQALBJTcgVBdcVAmKfxcCY+qmXMbpSv9kREbEOXutNecYvXcu+tjnRKYtkOw0mXWmFMqIk/vv7DXXHGO03trXTmOMB6aO7XdyKFtuzMeDpy82zBWJA3Ep8X1I8YS6cPrOYDK9MT2IcDpVSpPHoI+35HaQjw1PpajaSduUcQoinXNMIg9CHhXn0to/uQ0OH5yjHMkz7hzzPSJPjDiYtwcSd0yO6pAajfPlHa1nPXMc/H0gB7SrY8/bgo/fGWfxADMT9oN8NvpvfEbMjdYP2mdv2Z+vJQqzkREMfxCtlZiXSbOGWPV8bg5GQeTFJ+KBRu3juiZx3tFP8P56/3Ip/p4p070c7A5bVKoFuXDYg6M7nBVF3nBkLsZyU4gyJPSgRLHlqGwG4km2E/m1JG9KqLGtyvKZxfa5c3I9DJk1bL52RZpXDFk2RI/lNlHEdiDQbQczLhep5IZckDyqITOdhnBpyt6EPRttiQPXa0dCyeioNNroBI0xKmqa4kQGHhPZDBFjb4I/AgsnZ/GL3j4/4/uGcnCcyfUHL9hlo2dAdILkcf4ZLsFlaxhJflUc38hBnDXoSBJG0tqnuKv/eP3uP3UaFc3rViKSOhxSYtKQdY5fgtPWKq01WOgjKMeWf4wmtmUhOhYPCwXXaiMPqznIrKMB1ipy2rdya/UdLpdyQllC99IQRj5QHXguBupZzYVmZTLYWjGxsgIzSJTu2YzFP6s/y4Rj1N+r0AMraUT9N7L+bgn5gO0JuMC3t+R4CMei1IsVM7Kp0M3K/KOJ9iozWEZlTITQgWY5YvtfQZL61RCzfu79sKUwXD7yFUI5/RVSWlY7p+zjtjhVPtdhPYt3wLKSv6IuUrXs82sK2WW160hCK2smlIAQrqs5pxw0qHywx4tQghb5AU5aVdD1oEsrEWtIMiOKXfMajVzihGnd8KZa9vMURGa5Inpy/FS4XJM3PzDa95TjBsfXyR3nq0fwx4/g6xE8cOYjsVaihFkW4+JQ7i/CnEozZW+6GsuSbm1FSXRN3j9Jv8zPXB+1UvngzPrzV7LvjWZZsatV3atEbURFeNqSvb/C3wu23yh4ZC6xSaJ2tiUE2QcxtIa6yzm4hJ9gWaJZReQZiwUSSywqwao270ovqFs9OFelsGrBbHetiUGXEsQurdyIzaoaeMy2BKyVq5eC38orD0urhcJEiCk85mqqo+4V1s+iUu83W6T3yOAIWw90LSkta3LfgH/yk/kzr8Gnd2UJgDlXZfckZ7GrDMAbL2cS1itKPIt74d9hAhqzYqfiRA88z7rH8j2Rk/N8JbasqYhXxDNGghtxBHMYGZ2cO3lUNEuskUNwbwhBzIH0K7RkzMSnkZ6gVUawudLbdfFvhE12cgZ+vtDWptE9uD+UFF/NitUed81kzJPjvOEB7uWcjTDG/U6cE51CxOBiBeguwPjEQ0g5SDuR/sz928T7JHHMksiGybVicAiTUQsysxg9qkj+SpqM/8rX4ev5ELBTQlSXl2o//VzJR1R7jSiaVhMxuZLxQFYZBQISjfggBHhFFTMJa0gLNIMmxn6l1uPYK0Zjg8hJxp2MwXRZzsFEY2BZ8UJCmKczxizeFrVTm+eqbPZyQAWCxKN4NlOYI4Bg8OCI5EEw3cu8mlV7HkSxB0fAtiiaTbDWqkBDBodPhk8ihOQoxEgr6H3dLwPPJNuVnFIbPx6c41umCMnGnfeMAPfB0Hp/bvt7Lvo5zT89iHKSkIqizJmcCLeEB0pc4djgaw/uGYQKGcH5KDbWWBCQ3J24DvwyyeeBXE/kAnkocVfOeyuRuznnu0RjubjWRrY1uLzGaMhqkiZoaQX/juKOtpbMUa6nil1Vi2JCtXlRu+PMJFTwBLVAVCtKeRp7ruijwmv7d62jNZQKionSJKmndw1DwVd0sPAST60YqU0ACYJYg6Q6tOSp5FDiDOYJOYT0aj8cR62P40ium3xwm32K15f+RMzg/iOFLy+03uuZ//Y9GYqRPG+Vrbm5Lq5VI749yfwGDcPiQkur9i2pUoCIjdCB9UsV0sxeTapeHyOPjXhzr8F0FuxaYq/YOhNkMP2s+J1szDR8VjnG9Ed5UfVE9ViokBqAH1ltidu+gyhjwLgNzm/f8fz8zAq/Mm+BeZBPjcAITaa9YQ6nRWPGHdMrl+eObZNxP9i/eALRKvmwjekOMjExXDbO+S3dtMo+YqJhZN8IqyZp5IWcb1cx1okQDLnTujHj09t9/f7X94o2U+fC6VHtyiujFec7dGvsPxDyy0SnsbVO317j00lPkFPWGXKrPZfC40xoSt9he0r4aQkEpyvZjGmCx0BMyKEwFBdHc6IMNqu99ZYXwgdNO5430pZCcBTgfd86aklrHdG9Ggu97kPVhjTKDduEOQSzRFuhTe42kT6wfYP7ya7GrhttNloO1IKmn5VwOo3Lply2ZzbbiGOQbDCTaG+ZBNenZ0yuQJ2PY08eTI458XOyfVGZuVxO2RQp/mR8evH7714/+lrYt0rgmJSLSTdWKdZit0U5oEwhZwlI570cWH2dy2S99NUED3N9PbNyPlkCXt+LWK+BlIB22UovuHbYnyv2Z/qRH6kBPWD3iuTPM+pMutXPdQIPX8npQp2uxBjcBvgD7rficMUS7awM+RWTXI9A8mNayaWYXL0rbVd6h9iN83DGCeOcvH8I96k8SqwhEGxZ2IREWhIiNCsUjmTw3/9v3/ylX6tfDTHr9ai71vTDnUNKNW8ixcRKmF6b9dB6IfqC4yX1seHlSrlEWd836pesnkgEmdVe+NH7V26U3iqWsPxTTHeCZKaC5KoKXvBtCQRHlxilarwOkguQW9Z4zQXVZjXLyXf4RpTgVjyShBTOUEit5qAUfvBD4fKcXKXjZ/KeErDe9cmYpcLj4I/a2HVTzMqy2N7Alsp5FDCOJTQUk6usfRctx9p3hZ1P26WVK1JY188v74JwVfuwuRUMiZrqXprQW66IXwkLPY1d4NSq+BWpxZEQWqvYqX4AxbPAkCVK5WtEj4LM5nL9KSv3v8IOSolkKhV9eC1mUuphapKIBpZaBwMK3m5arqmxJtOvpQqXLZdbbAmxy/EF9fOrJDOkmExeLLDeSnDJLL5W6KuzrO6XFKup9XravQq8XRtvdvi9Hx0ffr+f4iWpzOwk5baiFaB63id9CrQX/KtG7AGPWszSnW3vmBQAUhbUfXigXIuboYPMJ2TsGA7iZM6awGrFvwogOcrqPKoVaZ4nYyTzxTnvg+c3NREcOcGE4SepXpB5bYgYDEWlDu+5hDUToUmyS0dG4/7+G+bxwGKyPSkZkCGobZgp0otNIiKc50vFvM8DbYqeZxnDCLp34pj1PI/J1nZGDkI21Df8jbGPZ3BlSEB2jnQefRADIhvwxJHJmTvn7NW8Zr8iS9kv+PrJodgqPwkepHaOOWmXaiO8PAk5qwmuUY2AGSWRQjVbjdzwULyV66oaCpXM2qzqHrg6IyeerYQwNs5R4qXrRKPa40QmwY1kIKL4LNf09ElmMGfgUxmueJQYu6uRU4g8YDojN1rrbFu5BUUMkY6juFbcMRZnASbuhQ4YcpKWuFSduruTUfwuoTPTOT3wKIZAuBPca/M1J8TOeBnlajWjd8PsyvQTt0lsTyhtuarXmu/VSmrz0xOzZLFHTUAx5mqCTuCUUntSYIpyC7idxkSYFAQ9tfYVc+Echi/nkiX27MzLRPYSdGRLxjTe35WTirDOCEwCH4nPgrybKjKNOStCE7l+IktsG+WmIoqdSj1T0mvnrcttLFENgqZBl2DTwX4pX1WGVKzeBJ9rPxjQ9BUhsLIbC82QkQsyX82ETddUmcBEuYryVpWLCX0uCHNzrA+6Qes1ZFQDb5O+JcdM3jw7XWrgo/Jpro1/+IdfM//obyD/wob9nQN+6NCeqh4+ByKzYlIzMduRPeHeeBqfMw9lTufwSXisEoxyW9Y1SWa5Lft7NE8ihcw7fL6cnNmZAifl2j3jTqYztNx1mSfut2orz5OIB6oNcyqHY53juFdhAK2M96/u1lfYg0zefn7htieH3/E5ylV/GUhOlAtxTMAxteJZjaghUQjSnxEaJ4a/+5LdNvrW0cvOkQdhA9c72q5oW8xgq/dFehTf0BsxLmgbpCVpO+RWDLLc+OoTNC3/6MuVsqGKKPblVr+N4DwmqNLiuprnJ/5HB+rKRRVdVWq5WjNrIjZKiBBhu1T6omNcaqPNu3cHvteaQAS+thvx2UDfJOO9MlWxaMyhXLSxqbJtvfbYDbQbnIJt9fN5JmoDaw56ENpIS2ITzul03YozKCsiKMKQWu9aN1Ivhb4xY5LEPLh2EJ5qPbUXZK+WbOVtcVwfTssbjx9Pnr8wUp0YD2a8AO/Y+hPzj5P5eWccwjwbhtOvrwN55dKshvkk909wyPPda0ay7fAnj4Kh51oahsDma31kiUpZTqoM6E8lfM2XZUpY68aWEL2cXhiwonwkbO0jr3gHnpYINhrIBtmX08pKoDItEWw6xMHCx5TTcOvJs1H6h9bnKBV3nAfgFXlsLMGsA5dynM3lvnos17KUL4IpxZL2hONRTrGbJHMhPiQT2Y39yblclOtbY3/qXC7QL70KBgCiYPGNMic1jFBwEf79/+gf/aVfq1+RE8DPiiifXRqfdylxaE2ulFXh/Ao7ACBQUTarnGWLssWLvILPs/YkTdYiELWQnkLDaGKQgqbRvCzxilezICuaWNpGhcKkDpLdjN0q2iUKWMFKbUXIJKsWVhcUu2UBUsWDeRdilDXQQpFcvkKEHGVH//6vCee9bIJHnrAJeRfuKcxIpCtiyuXS2N5Y2f9WteV0YU7IJ+dJjd6EL79RPGLBW2syeJv65371n6rg8Lr9+PN/9rP/3aQk8d3K7bQ1LRddEzaDqyrMZGtWjLUlPjVNmtaRamSJmbZXNEEsccpBZap4KinletokP0DrKh5TrqdtbX7NiiVikpiVuNBEMOPDfb6Z8PwcmLbKzGcJLGMJuk0KgPmY8HKWE+uq6143KYiuVpzQIzlenVhZoNzwjxKgarW/aI9qW2Q9jwUyqgXKbMUkRThD+PFXN2CBoz9FsXRudAu6Ahm0thNy0p82Rp/4Tzau3+swBtKSM5yZyn1MzjAe8WBmNV22ZyH8xjgdPztxwG0e5TQdjgzquTYrQiMuuFUj2Xmc8C3Iu8TfTc4XyG/h2y8X96ApLuUE1VAsg01uJEdxudLBakDQbWAyeUznlJOtK9v1M+xyhdYZj4O2dR4xeJw3Wm4l5OWkSUejkWMgDHhWGsHVjKdLZ+jJ1I7HjWAw561YUOPkljdu/T2PfHD7+lZMizxJacwczKYMH0RMFEdW0125aD/NZ9ff+50/JSng+R0FGejsHLMm0Ycq3h+c7xLPDayEy0cGdw6OcAZ3HvpAZhAMUk+SOx6O4IyRBNW/LHMyZefOg0ENalSEc7SqgvcdiQs6KzIvUoyPc77nGKMOiPFC+mCc5RC83QfHPLlPeMTEpVx8MWeJUjmZPhCq+idzK66aJ+dhJXjkYGYjQnjc4JjOwyczHiXExkFRCRUnOEZynw8exyR9YHSaHWyt3GwjD7pduGwV5ejnhrQHLUGtLbfzjueGzs7c3v2yb4Vf+DWEuocShsYSmJS7Z5WUIAzXVQAAZ3MOdSbLhY582FOMFc1/RPB+FGA5JUpseKoBS9uD46aoa0GNxQo4fwmOmyGzsA5OFguIKHjsWjc8a5ApAIegQyr+ETWdrqFlNRhu9VahecHoe2Y9L9okLPB2Iv1Eraab51mRmTAnV9N0SJI96Bj7Wk8FyMVou4rXoAtDD+Vyhd2CvcHV4E1X3lrwuSVPGlxpHI/if0mraf8F47NPVIj/+z9+h/zLP8H2k/OnA/OTbM5mF0wdYnLIgzDqefC0cf/mhRcT5m7cnoLok9iCWLyYUCGYiLQVlT6Q8USIQgvOnw6YJweNeSTDBkTjMe+I1OCJcZIEcw5MNny+q318KuN8jU0f+BiYQY4T8W8gxwf2n/gDpmP9mXdxEPNO9r2ifk8DtZ2cifMNmZM8H0x/IGJ4Nr7543fQbzw9f8YxHrjd2B5XPG+oNLp25N7pYvQwNkl0weeHT6QFFwILA3uQmkR0NgKZA9SZwzjnnf/49776Zd8Kv/Dr//rJiY4SnlsvgV280DCW1ezuMeqU/uvC9gOl/8TwnxryULoKz3u5siKT2eVnHFskeFQJweXvCHwttLNYQSpCV8O0igf4XFAPOLJizCL48aClckG5yMbTpsgtuW472p6ZIvRtR6wjdkHkDaaNzZ7YpKMdxv1A8/MSTrckH17GCr+gm7AdVYjRL42Ywt46k6C1KJcjhtiF1oL+vHNi3M+Bn43v//YTmt+nSWPOBrOxyRvsx872A6fP5P6TIH7Skb+RDE3m4iEWb67MHL/75aftzAL4T/6BkEdF9DaDc0XeH8vhdCnPS0UPnRIuDbYL6FMJQOOxGFRW61XrQJkv2QWuDWIEIsnl2rF9xda18G9N61a+Sn3tp72+z5EVFZxZLPAzE+8VU4yoZkSLajc8ooQ3B2IrUSq1wPTS4PD6vPOsWOJbqft9an2d1eGDeem/spVxKK0+xk3oTRm5cZELzxo8a3BB2XqnaaNvxW9rEkTUMHMyqxBmOn/wo7/8PutXaxWVspC/nAUwnDN42nUtANVeM7ycIiK5mCtJZOXhY7lVIDm93ngFJKvK55rYwXWvXGf0QM56OE13ZlLxK6umQ2W5V2xVSOvroX4JW2S5sqSECmLVmGeimyKh7Bv0HsRZdvj9Uk6sOAp+i1X16XzAeYM3VyNPYSDItbJmsSz4cVBxME3aVhPG3hMfNSEtKS7pW9DVOMSZp/P0DHkmxyw+1ObBP/iT79RffprnwA/XqxyT3/nvV6fWdy8zragn9RBBy2UUnthcDZFWLqgfvkmw2mxXQaUyh7D14JiCLUeTz5ofq5TYaVLT3UoW1KSnafm9WFZUKJVbsSWSvtpOy/FlAmk1SVaAbKtcQJZzp8SRiDqUvH6OLbZW3b8Vi4CkN9hbcGnVlpNJhWMVxOpjXhs39pYF8VsNiIjjWTFJkfKhFj94tXSu3/pfJCh+Ctfkgc/kGEl05eFHTQO9RHS1WqR8UKK3XBCMlE4bgAiBEzKZY6JaLC1JiHhBGTCdjIb1DfWzDnuRBe1+ZP1zFnj9sZwxMrNg7MfE3z8KJh+T9EmMk8ivydxwmYRMRgSSxjlr/DQygPuKXzjNT3Sc6IB5N+zNxpvLzhbGmAH5whxzPatvXPaNblc0HuzyBMN5cUeHkHEys5HaEXsimSumq2w5UUvOG2QeJNdi10SjzcGujSpFh1OoApDYys32CV7/+A/+GaEDjx0dgrgy+mR+I5wRxFQwo1tHVqMg8gprT7a2LcdKw2u2Q88LkhsqGxHlB9VoCA9OaWgTNKCt2nnXFSljQ2wQ/hqVlbVpqjZPcqv7PvZyJCfVZOnCDFmcLCdPZ3gy4kBlrn58ZqGGAAAgAElEQVQWg9wJN85zMGNyP++kDoZ7ratR4mXxQZwIZ9MNyR1tW8krMhDd8Xmi0kiscAMReGwMD4Ynps6QEnFbNySSJjWcagoXqeao1uHSO5bXX/at8Au/lO840NZQTaBg+osIe+nV1LRLFYp0rbZAJ5B0ZMXzJEtyCmqjO0atuN2cGTDfDNpzfNivOFGHRhW6BpsCruVYoRp2zVbUL2pCnlJrtqVwbVViE1SMtWWwhWPpNEsMZ2uOqbCJkh61jtsonmNGgdhbRZk3dcR8RUGEbsGlrz2CR0U6SK4aXKUhCDOU2xGcM9ifYGQwSIZWi9NJlQPdgffTuN3h+VoD2chydd9z1vj7E7y+OctjruPEtiuzHaB3fJ4lIrmskxXsJOd5VBz5179lDCvng9e6YBpgkynJYDJ8A71CGKGDkYkcgmrjzFnxvnDCgykHpp2YIPMgSeZYz6zYIItTmwnJgQvEwoMMERwjtC0xPYn7nXl32hRcAuuK6pVtJLE35uyco84jcxRrNaOVFWIuZtp4wFPt656ub2hyVqzyDMb9AFfa1muvQOBjZ6JklnOD2UCSbbuS2XFV0srVKpviNrhs8Nye+BTrBb5xZ9ePRoBdhIspTw6izuEJTMbtxFpy7sFxfXAZyvPnOyJOTGXrxcOdo8DwauWE2pS1bw50D0Y6jx8V6kG09tZiE5HC1+gXxvhp0GxHZOJr3ZlxAwm2vNZarRM4eerXWqu4Lufxg00E1QeqE/VOSrBpcWmLZStIXhANZFo1o3Kpc8vYade9ovcezGxo2xg+kNyIaAx/z/V6KXe2eg3BzoO+dYIr808Hj35j7MLtXdBuG/tvnmD19629rBcf2Iypwv/0+/P//YX6BK67F0P4MeBBxf+SOht9+PfkQ1u86Yoexkdwum0lWOWjznivAlJSj//ztaPhTLYctDrOY73EqnIKlntrY4lKy+l1HoAVbyvna9FJfY941FlElmvCj1qfvcquycXOygWYz1EtiDPgkfW1CHBdYtH6fm39HR8revlYtObhyi063+rk7E9MM2wTNKMwNxoIjRTDLLAIlDJd/Nv/zj/8K71Ov1pi1rLwjiUKJVT8b4FZXUFCSoX0ErSmw+m1adHVpCZa+eJllK+qXU9ShClJdGcc5WiILbjfwaOEDJN1SNc6iELB786z4Iu7Kj0/ZloVaKYfeFqaSWtKs6g2QVEsDL3UZDAzK4O7gUsseDcML0fL07Nge7FCfEJvynFW+Gz/rLha1gpW6Qhbg+MhkGX7rDaC5KQmi+NQJIPPnoxnFH1RJIS/939/x3uc8CH/+AleP+sJem3Xk+/8Sf0TKQVZFOFpq3x4rGmPNLjsuWIHybcvIFmuuNcDQWRFB7WOfcyE5kLT5dxZgk9GbWZFFAspkKUkjWV5ztrAvf60Sh0kbIlXC1e1HF7Fk0MSFcXUqjZ9Tc5vd0p+l4pINluMt8XfAthVilu0fhk1fa7P+/xarkhE2BsFhpfyWdUkq1oQmxSUWdSK+7Wimq/31ad6d0UIEYrZOiBp+XmFiXojnyFt0K+JPyoyNqF8wbtj2mm2VZmEFdDTTKE5KUoXI6P4d+4nGgI5Ua24apPGyPIFywRmMdVaa4SzVriOeBZrg84BBM+gk4aAn6gU9yEIzkgiTjQVS+HUAw9n8erpduK3e8UjU0gZzIBxgM+DCJhzcI6BjwfvcvLtn33JtjbyKb3qsX0yz2852gNkYFKRQu0XYk5ae4Pz4JgHIwONIFXY5AmLxjY7MgTVGxq/WkvZL+r60zvc5Xu0NrgcybwOrE8i3qPjSoYhbMhlkFl9aWckYavdyp3MAvc3ZLW1sgDu630qFaMhOplniaQieJykd8KVivUMwg21yVwH8Ii6B8YscVUtQCbJ6+caY94JH8iimk5xIibCBdIYkpw4maOETQYZF7atA1ttCCNBYC6QbVIRnjOT070YXARnBO5RLhwAcUR2Luq08BU7ujPWzx6y43RkBClX0Dumgsm1CjncGTrwdv6Fr88/z1dEYGLsYuwaPKGrFRLEYrFAE1dwDVRXFHRF4jO0DmyAmLIjbItRdRBMN86h1QzoVAGKrvY/TbYuqFU88aBqyiGxBiFRrDWqw7xbctVyJ3erAp5tS9QLHr9rsrXvRAUzkAwMr8GNTbZtwFT2DJ4b7Ft9nWt3rg0ukuyaXAyk5Udhb6v18LrKU2IJbH5WrL9fnYPl3FqRfo+swwDKnkIeQXuavAPekbwbcCM4Qrh/io5l6qClEfDyfXJ7j8X3UH+LpDGXQ138DeQkfGebie4bYyRrkUKkBhWPmdxOIaLKI8RuIE6MQU4jZuJMYkw8tZ4BNlE2mIrHJMOLJuUCKIPgjJdiA1LIhpg7xCTD8LggUYkK8QHHKCj9rtgG515Tq3BjHsHxeEdEufpFZsWdmWQOzvmec94ZMWhdkbvT7MJ5HPU+yLeEaT3H8iTHC+jB/Xag0gheyLhjGgg7rRmTnRFVk5ZSccmCeNe+y8UJOX65N8Ff03UE/Oh2rbIiF7as/e2pcE8Ys9aBp/7MbjXQyavx7WcPjj+bbKr0xTfWBte9LbatFt84oamyzcRc+N5vCOKG0YiRmGm5XgxaGuKCfK/hYyCWtGa1c9dLISFisvUN0WDrCvaCnNWe3iTX/n5gAYpiCc/blfH+a1ScVC231rhxngfzcRCihPtyAx0whaaN1rZKXDSQWdTyqwWf75/T5DMw56IXLBTNwUNe6Lfgtr9H327oY2f8SfL0L1aMf5OofaIm217pEnOji/N//uQTzLD+BZducBwrjbIe111Y3ERYzoAasr4mpbJEIFv/nAa5wXGCniWA7R1srogiJTKdDkNamXPm+jiKjKRLZ5hSbqipCxJPiVYxCwovhRmFJYapfvwzKx0cX2LbjPXjRsUSX/8+o46ixUmuI+AHIcyXBmIJIsaW/nE4JoF1Q8xJg4ERzcCMXQuHtPVJMQIbkcbhzh/84fu/2mv0V/rsv6bLEXr1ItMsyWZYX5hsFZq/OmZKpOhG/dYxZLmzTGxt4lmb26w2gXh1XNUdkVL29w/TCymYbdOPnzNnoC3RBZFHdYF482PMKkvUEtbhvlWjBVEbM1uxQ5P1va0eltWiqcwZfO+HscC1Al3JWBD598KcdSd11QUshK7FWhqR3G7OXPvtUwoYHJLYnjRTbpHMFuRT8OLCT35+b56f5obqu9drOOL131+vV7HrMSZdaxY2pzBnECa4LOHGodduFjNKhAIslTEUaeuB0itiJ1IPEncl1D9kmkmhRbE9WntlYr02deZ6YK1mwuWmEtFqfJDXgId8gMMTVaEuFmXfZ3GrWsWvRBbhwbTaJZSyIi+p7FycrPuoSGQ9oOvR9O1NSTGaBkhNGT20BLMmC8JbQrK1QJewhdb9nt+5rz5FQSv3xuy1GEgG04+Kzrigrmh7lHvAE7OD9MmGEGv268eDSGGeyoxAZSeH8jhPFMNjrtr4yfBgWony7oG/OkukJtOcJcbvCPOs7jbJycmg6IJBxMneqi3TxwEoTT5HUpcbUKvm3ntNgm0sx1ij2c48Ar003EcRSxqrtr7us+mTllbNOn6SXJCmfH75Icdx4LKAvHYj/WC6Y6NhYyNOKYHhqXPVC4/zjtJImwxz7nPjxeGIwciJUc0/7hfO/DTdDV0HXx8nesvVUpQFhlUl3s2CuGeSNHxUNbkItM0/OJORjkhHE06Cme9qUOQniTM9SJkccjDFmDGJCFQ3NO9YOqXQBmccjHRSGrd5R3lem5+TyJ1zlovmXJZ1yQko6cnINQIkSdmKQSHg8wQXwhPJDulMvTPnYHVZklERSbENmBwiuBRDTtUJV0wMy42k1/0uJ02fERmMDGYKegyuV8XHW1oYxKgGxxzkqcXMWg15YqBqjGPUVP1Tu3TNTrQcKBW+klUprrX3iYpdNWsl7KiQ2RgoM6va/hHBfQaHCEcEMwryMMhib7hwP7Vaks5cbW8b/k5obuhao9iApmyi7MtJ3EXpmWg4voacAgxLpFfMJoZBVGdbua6qIMLWAImotmoZ8GzJsyY/aMJvPQn/yvc7f/cL+Fd/CH/7yfi+KKoTz1xtU/lhcjxTOKfiR8W95dmZUvwvzeA263dxREAqHeGnh/D+JvzaG+UzES6yWoxXpFtaRYU/xWvI5E++fMK/L2x64eBB46tKSsRBcCJWIG+1gIcTl4OLPCGzECLur6950hoVTUGJcxInZVewA0g8H0TYGsxluZxdiXwg8UTKKPyH+RLNZwnkviExGdPK3RQXYgYSD5iBUTYFs0l25zgHIk8l2uejBlPnnetnX9RZ4KhGYZkdj4GxVfuqVHmGny9k+/4aaiYv4x3ZN5h3UhRRKyeF7lwvzxzHo9y3eq0ChTzJuBP+wCWYKMpzweCtIydVJhQ7h22/1Hvgr/P6n/9JkCbc3XkQ5c5bexg2wzN5f9y5+8SlgvT9sqHqHF/u9ZzKcmJlTqxlleVEnc004NK22mNfEt2cNgr/YcDeDZazxHAuz5S7FMNzEH7H82NxTstH7Ykj0LOc1NomZp3dNpoIum/F1G2TtLHq5gyJiaFsl4axwQDrHdNi4WrsQGLskIo10LUeiu14Qm8bX/3JV7z5oRV/dA6aPPH89Q946e+R68YxD77605PL36qzaGqSZrgKZ1bxh0XQZOBq3Ob+S70H/v+6/uvfqYRLUEL2K8vf8yNqZRGHKuK+TIPNKS5jK2FqUwrq30EOUF/thst4vvfav/WcSAheoTPO5ZKSKNHJlmOq8VGAEqufY0Z9jetqX4yswhM/qw1xTj7E9T346Eq12g9Yq+8juXw98EGce/8NPH1WH9OsSsGMoHfFtAoKNinX8iMVpxMGolVCpyrsAiD1+7IEDf69//B/57uWk7/M9Su5ir734i8g5ZYhla0pTQyV5IiK1HjWNKya1YKutVGog2VxE1gHyeA1apW0VKwXkT8TwqJEJi+RykSxrOmGtNoEdzNiBt1Wneu6GZo6kmVDT6q2Wtb3uez5IZ5oy/HikrXJi2JDZMC7nyS/9Zud561XRGzKilmCYWRzbHN6r0OjiTBfrCYLEbx9oxxTuL0rplImlbFvwpsnsEc5ahTISN7uucCqP3vFJzohfL2C+v3BRwFLfub/D377i2rTxGHrBelH68CElKrctRpHqg1QF8yxYrCPFdNHSg1/iLNN4bob4yZYLjHJWOJm1X93kQ8iZUp9XFOhSxRwVkqkMkos6lLfT5aNSiXpVo+I1uDShe9/tiKEe+VHYtbr7i5sm9K0DoljJulakUSpUUNG4m6c4/VNIiuDXWLejFxsEmXXYoptpqjVz1ZxFP/gevtUL81iNFzWxghrTGkcfWBfNWZeyHRCg1EvLiMEncLwoFvncR4VS25KygNrgm3JDGf6LNFIgy0bSK+yAFXElelJ0tnMyGuJio8FCDVNxKwmh0UJLGdfgumJ7b3KNeQgATu1wKgCXSfzNri/C3jAvL9wvPuKzDubCEInTsX9gYQjs9Gl4NmaxjaF3a5MDrom93wwv3rBpHFpjQs7Gwp2wSUICaQdXHOi/YHNXq2Qr1DyGRiNRjLEOAM8gpMEGez2abYZynT+8//hnxGbEduFjXVwl2oNFD3Jd0Y8jIygR+IenEdADlo4MiY6HjixGiafS6SITuYFlsD+pG/RfAA7ZzpDIGznjOQMqc1Ja5xpvE9IaRzzVuDvuSHcCnocHQ6QOfDhqDVyBO73Ao/6ICJITnwKRvnv3ZTJXptnV4Yo9GpkFDYE4zgGbkociueJRxB5YNbJObBM1EdNCb3xGC+4X3i8GMdwcm94v9J+aIyvDiTf0OdBXBshzszOGc7pjbsfnDnYd6n33qd2hTAyGVnNvWEF+Z9SfwYsp7EgM0gHH8rMWI5kKTfzGiR61HAtQ5iPxu2bxuOnhr03YpTIoFfnmxfhm/fOLZWHOedpFWM5a2h3JJyz+KAeyRh1kLhuwUWUJsmFpJPF2OqTU7wav0R4MuHJJpqO3412Kp9r8refGv/GG+Hf+rzxr39m/N3PjN/6vvO3npTf6Mq/9Cz8a1/Av/lF47ffGpdL4STKSVuu0rYF/Q3Y5uwivFG4ZrmcRWrv9nhnvH+vfHk3Tg+yCe/P5KAm6l3gSZPPgR+I8Ov6aa6QEsl/+n/cuMQDbcmTbYx+5TzLoZlZrj235S6IQPMNqQFvhPN8x+0nxv3mcFYENT153MG1M6nT3ZzV1OrvtUpquCGcHJF4vifjyiP/tBxUERxxMGNjjsmckxnvOYYT+aiZbrvjOcjWGTp52OTsGw85K6aDEwx0HGgqvLuxXb/Pcb6nTS/Ysn5L4nS9cD4m5+MBp5DHg3i54fbCiInjq4n3PV12JIRNJiMKV+Dh7JcdOQRh0u1C44nGlb1PtnQMIeyF6c5xvlTMQwxR58cv4//rZfrn9vovfu+GR+JNVxy0hsVbFPcqvBAhohDZMVuCwN/c0LcP9I83tLfi812Vxwl6CawH3YRuV2S1l5t1nn5T+fafOtetIQI+HNfKQKgoPp3j20FryTgEs43gpPeG9kGyAyfzPAFhu3TiGMh8oOdAshHng1dUjUTQNijlqfaa2q+M86B9T/HzoFknXdguiVlDbGI9i80bncsXinUh0/jpNy/o9sJ2fVP3+dcwvrozvncnuHIGfPNjIfZJ7HC3GmLVszm59or+tlbD9j/44y8I/zSdfz9//eib5Mv3wuMRbOUpLyTBa1Mhr1pCCUGD1zNeubpEKEGoL1i8Qr+UqDQSaJU2u7/Aca+XXLKwSCkf3WDLoF6iWMBDSyc4loNreS3wCWNSItdieL0KU04xsERAFlS+sfQRlsClxdkqU0x9/u0dXD4rttary0ub8hgwFwqqIWyXK09PO0/Xjedr481ubC2xZqCGG+zaUS0x8B/+d1/x3/y3P/4rv0a/kmJWEjWRk4IVXyVrYp+BIeybsDfl0kqccVFMSpyy9QsCeJmxptT137EUwWogKFnVtKYl26Xs8/PxWpccVZsqBcsWAbHadEQuH1eU2GYqy6lTAoNS7YtDC9gns8SBWMpnX+BtVHj3U8UuSYuKfshoeKtJlapyfF3V83Zd0wJb7rJZXJ3M8td871kJD+JR0cUptdG8O/hVGI91Myv8eLafE0F/JW+DX/glLDs5f15gEeCbY7LFekf3gqybAVotS8/Xio72rQ7tTfQDfH/blji2Ca7LIbWifFPq9edMjkOITCJfGw+pG2c9iGTZOsvVW86pmpfr+vNq0ZlSIpO9uq5i3c9WENziKinp9VBLAVHhnKWOX7eo9w3UppJikdhin1SLYk3Ybbm8uklNHainm2f9nVVK4PXIiqjoq+D3UTj8VK/ngEzDW2fSCJXKs38t+NsTWL/n6EAwxCFHRZhj5+GT6/5Mj1p5IsFG0B9XUgf4Vs6nVE512hhVXOHl+zVVZjrRajpCE7ZuiAW+C2pO3+LDNKQ4D5PMC0FWDOOAeTvJreJBEXALJ/pke9qxp525bVw+e0NTZQxnTMfnoMdnjDmIdiBWLTyZA5cSTqVV46Ven9gCrhro44bPE4l6R4IirVbHW+4McezqNJ2MLPfRzGTKyQinQ1W8Sz3Tz7zUAekTvX7n97/BFU45SbsQzdBtMOcs2/h14uPAT+Mujlmx9kSWK1ME5cKcs4oZCKYGYnfcD0SMiGC6I7nj8UDE8TiJHJg+0bPiNrUOL0B2BKKKRuCxIoLR8TiQ7Ii+kGnMOUtwn+W7zyj3n4gQ+SCiaoFkTIyX5W2fZJ6MOaj09YmoEzlqmt5eY8wnZCPcea2kEEmQo6Kybpz3b0EG1paon8VRGTzh96+rUbYn0soZqNJXIUJHdCvGjX56oNupJTjMrJj8BCSsXhcWVyOgpVKjY68p7BIhKtZerqTzBo9vlOPbDoexbcHl7aR9NrG3TusTmMjmvPmh098m37wP/uyPdh4tiCdwTeIh+FeKvBhylIB4NaWFkkMJCarPq/Z+VTriSKvIn7uvLsLaDF6fnV9/m/zW1fiNDT57Eq5vqvFZngO2RDs8qbCP2nNeQvn1JvQp2Aj0KC5m24pdqpn0qFhlX2yleQov7zoRytNz8OZNcLmevHlK3lyc3pI5DZvl5mhNiFZRjtsnyvtTEX58/4pzvmdGcMY72nigW9BGgmzVQDgv7HNglw6PyZQg5CR5w/MXdy5NyOmkWyFHtoOkoldkR6gWVMLIN432uCKjI15ew/Nx4PHEjChXs7xZQY4sBAhK017PkccsUWRvxLihzUEbKSceGxikVVT6XOPfTQy398Rs3Gcwc+Loal8MsgVsgTeIp4Y9dcwpB2AonoPb7c45r4wJJ4ryGRp15khvdX+zcdzu+OMk5gsSz1hWtFfyafm9O0LjiSRj8r/+s/sv+S7467u+mVSs7tU9CfRQLMD9Y4Q+D0WZTAdtJXrr977Hy/7g8YdBjJ37QzHrkEmcVZrUGgwPxBqoI5vQdmG+dCJymR6i1iWdIEJLao/SNvwYaFPCGxEXdD85bztP+1usTTTvQNB0w1M4Pcu5kvVapyuEctXORhkq2ruT67Vjbad153Z7Yc4SvVQfNcyWxra/YTyqsMyshtL5OPibv/kDtv6MfV2u//iiYSEcx+D2I2fbhf5rneGOhTAd0pOUup/XEQQ15b/8R1990oPqn7/+q98VLh3ePZL3s9bHVyHpXOwpFqtqr8Q8oQV8N5Zw5XWW2tb/r1maRTfYdrBL6RX7q9sqysWbWnHYznKEzYoj7l7f91VUW8dAXGtnPdb3fnWHzSi31t7q+8ZY0Hetc+IjFrA+qaghrNhJvR865eBCKCdhBvOIcqJpI1sHA+2N1kv4bCb0FlxayWldhLBEUDaSf/c/+F9+Ia/Pr6aKUVkqmiRkwWLj+BivM4XQKPulsuCjr7b4MiWHlLOmZSJR4c+Z5SQp/obwdKUUcFXCotgMG+QRJRJ9yImug+OKd1T8QND2KkDk4tSs9sKthAYl6a2U/blUWljxMhXu75WpwfMPVi32TFCvG9+talyB+71EtxGB+2p23Kr50FbDjpJcnoxvbrEA3PV1yBIWxIXHmSTBf/aPfy7nLJ/uQfC7V82P5WfElfzO//7RTyfvdC2CWb5OSeXa68Hx7lb3xBix4n0rRjjrd9wQmlXEIEVAfH3TIIeiG+QD5jDIlbjRdQRbQqlQX1c0FxR7QWjXgi3Lci+rLzVz8eWy6uoJqqjA4eUGMwyfuqzUBYgfJLcHFe15PfxRls86CNbHB8tOiPJmK4qdu5ASqDiCLmdZCcLd6sHbVNjU+B8XHPJVPPwU77J3dsHmYhJJ0B8D3jnyWTKbI48qDDhwcmxoGPtqOzXqgB1x4gaMgUlynEfVNZ9G2kCZSDpTBRkbmScpUodKKqpKK0t4q1Zu+v/D3rv92rZl512/1nrvY8w519p7n0tVueyyY9lg4wgFkCxhHhASEhLiAcEDQorEO+KNP4B/AAFPXB4QTw4oQZaChIgQhARH2MKBlEwuSmIn5VuVL1V16pyz91przjF67601HtpY+xw7joSUsl3axTg6Z+991l5zzTXnWKP38bXv+32LcmlKXQqlNkYFlYR4Q9bgijUknrBh1Htl+MzYFdmcFFFxNmbPBql9Ol6gh6MNSnWu+8fUA6K7zUfWpTGmM4YdLK4zHp21AKfCtRt7gPgdtTSElTmNcrgqRFfEO3sv6FIRVxxBYsEwWhPGCEpk3GTuJwo9r9/v4iFA73ykd+wxmXMnzKhyT3glWPDmxElweYAtqDHQSN/pEGWLoKszS2G6sJQj2sWKlGCThHd6eaRzhXIm9IR4TqCdHdeMQ0fYcY1wqgdhaUE117zWRDI1PBzzU7aummWTZjT8+Ccico2LA9w+C6qN+XzT4UKVM8UEC6PYCRk18QF4xhEpWDRC7nFgSiXC2a0zekP8xNhuLOsZO9V0gMiKo4g7y6ugXgXTiQdUOVElsHC0HW7t45ws+u45swoJ9V1UqQhp/vWMbEY61MNgj3Tm2dF0uG3O9Va53ZSH14XXny74ErSXzvpiUE4pOD+zG9WynGTVwh1wEtDVePHh5O4Lne0T59NvC08b2EkoH07qK2NpQb0VZBx14Z4My2kcgtaxNnq6YwPPiJHmeq0efGGBL56DFwVOpVBaIRZBLkZoQU7pKqRAqzksLeq0vfAjtbIsCqfAD4e+DbI1LeBpD15fhdevC30v3L2cnO46WgMpRhVhUWfDiAbnNV3xZyp1FhaU9YD7vouHkHH7B/uAGwuiL5ixEtdgSFKrQBHduJLQfL1FDmo9ObkqGXHavSNL5Hvgms2t1ukDuj3hTwucld025gLOTPepZOTMbeK+p9BkG84j2s90d3ooGxvjOphLOgKHT6wqGpViFRmK+jUdW8zECagzh3M7FfbbpFvC43cfzPzi+My7VuFEeH/78xTC0RS6Y2acl3tmeY3MJ+hQypWmRngBmdS2MwA5n9D7Sj29oO8bAyhlEKWjsqDNCG3cwrkrzm+9ebedM7/yu/ecRXDJWPCQLIqoew7HbGbpiDtoa9zcEuK/3Vg+UO7FuM4b5p3W1myCr46zMuyawirGvjnijpyNT7++UWul1qBJQ1iIqKDg78P2LSNOkxGBu4BMRAWRSjtNjB2hYkdkNmynk/d25ktyzqRTXBhz55PrznY1YhgxgnpSWluo+oIXL19wPi0QyrVPRBpTQOsdxo2tN8IK+5sn1pekm/7WmXNw/vKJxoltwvzO4HxXuHwxOPsgTLjNYIRjEVm0ZsKUbO0jlL97e4uK+j45nL/0NwvzlmB2KSnwLGv+XuK52f2gHsmzWSHvfVoDDrfTc/cFHEmJQ9jCst0wjvtDJwXOpcB6uL4upC5R5bPPk0i3VpCft+T2+3BT59dTz+G7Hl+PnCEmO3ymiCXPj23ZduyWQp110FOWLkmA1LyP7NGodaGJJuZ1l0QAACAASURBVA+zCK1YluaVhVqTo9x0pWBUAY/MPooK+3exP+B7UsxKN0i2vF1HYRHDS77YRv7/tLkZKrytTJbjpInnFzwCyI11eWYTxeHKisAMtlvGMwTwoTkJWdKeWl0T6i0lM7KHV1Al4YG1aDbKHTGvGcYIxyPdMyqKIcySLpxFc5on5PPwq/OFrwi36RjydqLoJrmpvAXLPTQ8xQ80p+EmLOWYno5DoJEgSqR8i6XZJzyt+gjaArGKROFvfpzArLc8o3dzMPj2+LwT6zlKGW8/8tmvv/rtnY/f6MGEOiJ8CrvleTE8iCOPnpaI/AGaHILSUQn+9mLkKT8lSBdKC2Rx6H7A4nkbP9XIqaFqRgUzE/nsvtMjv5zTJwRqHCKmpDMwAtz12OhDUWUk5Rg3mOP4OxGUELZe8Gc2l2R+WVVQLbTjZckceDLgdqtsM8sZimSxgUg61tCsVJdIQWuRwv0ZfulXXr+Nc+Y1/d070b76e4pIJ0QptqDjFfEKwiu7gcXMNpFZUd0JMUwGczuuLSSEWIbSUObmrKd79tsTPgJCs2lMnHVM5pobM+mgx3WhWslp3FlpaxBrEAd/RtTRMtDdqRLUMQ/GzCRmELEiZwVr4GkF7sOZJaOR3Y0pA0N4unXMk8wgYTz2SVRl941F0yvd+55QABXW9YL5LaOUj4NRFetPR3TyDdd+e8vwivoEBNN2KidqV7pNHD1cPYLOhTmDTQYRDgxMJhaFGO/ytsr4q3//997C3PMYBE/JTrPGlCDuSzpJ94X+kA1Nc86jnKInlwiYcwdmwmPD6OOKGfiUbCL0eYA9D0dxDLp05lsXVCFigAxEJ3tk7AYZaDFE82vaLExLvHUc7p+QTo5erohueY0deeO4+2APo0u6kkWEfU83Xg8jmhMt3n4/7p1pG85T/oyFcRXLqaTkWlnWlSGP6dJSmLYR0SEKHsGtQ5eBag7ApuTjPzu4zI1pG7u/ew4HsZKDviM6ftIKtwYPhzNqlnSyRK57E3KQ0XKg0mewXILLe0YtfgzVci2ZkTdnjVyr6sypLi50jyxsOJy7ly8Z5w8ypv3wkXD7qGK7YNWws2Friktlb8w9F0wlr38qjlZJd51C94zzicCJ4IOqnKKgBdaa291ofjicBb6xElcjShCz5o3IVZHi3F8m5zU34OCHy7nw+qnw6aeV/aaoOpc753Rv6eoS5STBWSKFKlFelcK9JmR/LfDqHNQGfRRsCIu0P/43/4/hMASJyS9+DRbfEXNKe02pBX1ef3QyrCIT+tKzYddTxBEJRiTbSpaC9xPzuAZO2/DY8diBhbndGD6RuaJlEgZFCyMSjeBFwS74GKg74gvUwIozZ4friTgF7vPYK+24+TEA7khRQk6JWBh5f8GEpTbcBy4gqphvFL1gU7PISncsAo/JIoVKRocwR2WiDhrKjB30wnjaOa2XtEqEstZgrWC+5Iw/nGE3bral5YOCjRzaqyWDR8tgmLPtym2+221z/+vf3tlUUwiKYD8wGtKEIoeqUANKRefg7rzQTiWHKyiPCtouLHeFzQenl/dYKUwcXQsSBYmV2tIdd/9h5XRaGddA5YxhBFmaElEwYF2U0oOlFFrk/jvCuD1M1nXNtdEnITn4ttBkS8pODSNMKdOpAqKNWgpSI8/FoilY+U7oRKTT6oXlfMLHGdOg1BNzTMaE2+tPeLo+8d69cj6/ZH+q1KdJfHDl+njDYuPjr73h9AOCvJrYVPqeYscqKZA0JNtgj/hIE+WTN40xnkvWvn+Or782rrOwJM8cyOWzko4rUVjX/DUmEJ9xqXpA8UT+tJZurHkYZib5d6VAnxwlKc8iVRZ3SeLTuB1rXSl5nzmfC3EPMasWsHo8n5Lb8daAmhD6Efl17UgBaeTXT77zEVOUFMLkEN2uT3A6EmoVYYvg0VYebkI7B6UItQZFG7quqZVUT0TP0mhFspSoJfokihBi/Kv/3i98196b79GZUKp223N0RLJmXgia6lsh4kBiHbXNZFQBz9pIFSIyMiOa77JM2GswD5lyIMxicBXWFWoczRBRWBcYZFtbPyaLb9lakhb7EE0h4Xg2eljxAaQqg8Ak7eSlJ+fGDqHp40+VL/5ICl+lCY83o1bhJFn/y2soL4AirFVYmmKR0bXx6OgpJ5QRxu4p/qko7eRsG5zXnKyCU8VZ7vKC9OYNDD5/U/TuH4c4/vYQnsWs+H1/+tWPJreek3lB6VheRDyLANwKVEcthSEkL/zrKTfYxSJbR0ockiUJaPZ0A54WpRRn7MJ+Vdb3km+TTqtCwbEjepWNv0cOMUAizzOXFLVCoB1Q5lAwLyT1C8QkuRMTRPSzifXxfc5Il5UCtZExGs/PqZIOxlagW8pQKnDbHT8aFluFGcJaUsoXOTL6otwv+SzEC4/9D/Ia3j1T8l/59Tf8ax+c6a8NfzEZ643iBUE4W6WvG/p0hnNH/ExVZ/iCVEeiU+zMdKPVQZ8pTj49vTkEeofdiaUiEZhO1ALI2mZc0pUlwdRks0QtnKcTNSN+S1T0EAFkKehcsDqAivlEYmHozhIrqgvORErHZqGUih8Oz7kP7i6FMQbSKiMqwiE2ifB6G1QVdN+51Z21Xrjuj8y98Hjdue9BvMoyjcCTIybKhckenYh7rmNHy8JkJoR6V1QLuwXLOrAy8V2588YYC6ORsYDpuWF9B49srhf+p1/6Xf6Nn/hJuhgnGlOfKP4eIp1BsGgBVowNGvQ2OUlF5hUbLaN9ZWQToCm9dpwV9kCrYyWdOSU6Ii3LUnTi0cFbGsJlY8QVkRUcYlTkILEN6TlxJMnv5bDGm1W2mJxoWJ1EnCmlUaIxZgK826niWnAZlLhQbLJNoValtMIUsuRgdFyWbNZLcjnCml6vMhmSDgiNgLkxAkKMRe7yJmEP4mBs2q1TouD1niZvcF0ItyP+vaTrWebBwahM/Sdr2vlePK5bRs5bNUrJ9jO9D8wth3oAR6wQSeJLmYVtE+rFch0pdmQgEgZf5eCE8rymxNtB4xhOlJzKxtG+XCVbmytQ7oV2bxDB7Qbbx4VWg7v3jTgbRYLLSJYjJojpEUFWfCQvMMwTkNuEtRb8qlxdmHtw8sIHXxZ0FugFz0I8bKs87YYtcH1UyiLYndND2G+F7SqMrtQGy9kpTVAmLZJNWg5O6TTYI4v4IkquoYeA3MSZEVwjHWoswqxGMl7fTVepRfI+f/5Xf4t/86d+gKiDPk6UeiX8jm4PFFuy+U8N6UaNHUghwqwjcUfuxCfDnmjrgszArWd8X09Qg1hXpj9R28hYlwbuD1S/I0pl+o1dd2opjDkZYZgPVF5i+obYB2JKWxcs/NhP3ah1cpvKnWwQL+gelNVxE3pVug2KO1InYwyUhdl77uPkSquKzsC1s4ciFpQZ1Fmwm+OrE7cbrka5FO5vL3n96Tcp9y9REfresSMl0mNHyxnxo6SiGfvouJ4ojwY6aftL7LJxNy/83G88/QmfAX/0x1c/uiH7HUudzABQuhjnIxpeCGIPfHRYlfGUBSpLW8GulPdX9JsdfuwCZ9jnpCwXRr8hW+X+tHKdN9BCnWDVKB/s7N8RpClSK0UmpQk2grUp5UOwjzryasEtWOpktyxPKgPu6pkhuccKDVQqiy+8XzdetQt3l3uWy5nrvXJpd+jrK58+fsrXv/Ut1nXlo81pFwUqZcnrrVlhOTdGf2I5QxnCi+WehzcbEpP9vvL02685RWX9gqPbPVWNj/7hjQ9/2DEVYgpmk6jCuOVw2z0H4IignwprCZZXwX/6VSM90t9/x5//ZeM//NdzOCMtBad+CEHlsAcJ6SuRQ8iqR5RQLjDGwc0quW19dlOtLcXo0tIJ5aTY1MfxuDVNEeGZBqqSAtR0OB3rT8+0a8aYWwpqk+RcnU4ZPzTPrxdyRAefnWLPTi2OgrPIz6sO7Q62gOlCn2kSWmVgKnBekKYs7URblXI6c75f0FpZV6DkcH0h9RNXAW389L/1v31XdYjvDWfW5w0yAoimYqlKRMYHhwXmR83lc9gqjqkf+taSV1QQ+SxKaAhz5hnTJNV7USDSGVE0qGsQwxhDc+oneUNe8YzutLSexoRn+dOnpCuCvJlv+uwbFMyC4ZYOKw1eNKGsMJecGr95grsPDCmV4WB7yrCTbAOyaZwXZS1BccuMbSSjSQxizdY5c3ARiuTJxfFcHt9ICnZiLAK3qewjMAn+1s7bhrvvl0MOT9DnI4WffSze/m53J2VJoYezlNQmRWHOdMyFF3wmjyyCY9OSotgMRTUOOJvgHCw1zX8BtCnLOTf4iUnKebabJdhbQDTQyPcno4b62XNN+14Cjg+mVV4Qsm5CIx17PMez5LgwaVCVnEiHsKjw8qS0Y0ItJfDjRTri3AfNKF8RIyOvQV6UqwTDU/hyT1eDShwNo8rr8X1yfsXka7cX9IvmtcIrGpWgYMWY1jjXgLkyGezmR1R6o5UTgWMe7NMSih3ZSGSx5ARjydXnuV0k7cEDZ1JLTklCglKgHCtVRamlsGhDijBzgIv3vCnVqIi0vAeVCbECzrAn3AZj3CUJZk5KlJwUlkKfK5Rgj4FFp9TkOqiCzUEMePRAPCNg0wtxdda90++MOCBr7gsSK8USQE009tgpNWugVUvyi2Kh26SG4FJptyBsSfhufWQOZ7AzMOa7COgGRjnYBNb5B30lQg6IuwBXpjsegqlhIYxmdBpanCkbrCvlbsXvhLI2alGWsyUDqjaiGSKKWd5sXco95gP3/Jkf/YT4YLITsRJSUe+5ti6G1UroAyoNlRMaCzRwvaWjTyfNV1w7EEgZuE+CDdPIGEczguDkL3B/QyyOt8qs2QZVQyAuFFnoYslai4PNJRXzjsWC2YLYYF4dKUptjVYvBzssq9IlNhYvNC/EaTK14tuaz8knTde8oMpgTAUtCBv1HXTPrBfjfJpZLCMceIJkIzay7l5cqQS6K/tDIbxyucCdCC+KsviChoNlVFFFj7XWaQe11iU3y97SvUxkJF8tN8dRlKnBsEm4gxj1zrh7f1IW5/qtwuPvCK9/V3nzncrTFbY9uLrQRTF1RoUnFQYlK+9vDX8QtqviMzgpnE8GD4V4EFwN3pu4OfWHB6dL4dLg5ZcCznB9FB7eFMxAT0F55dSLp3vZK6rpydgl2CSdYSaazEuFonmbp5GDrVXgRal8UJVV4WUVXkpNYH373tiGf7cPPQa9GvArn1wYviEHKHgftxTWD1YsS0O1ojpRN4RzNrDWtDdEOOhkf3Njt3SoaAXTzvSJ6aSW85E2CDxuDAr70jHbcTdKgemGz4q7IVTcN7yveA9sX3m8PTFjwm2l2n0OFGMQXujjEZae8W4RfE7ErsxwYmbj9JTO7hMtOS60ccSky8raFtwHt72yD0fcKKrEWVnXF4wFHqTjrzOqI+N6xNPIBtk41tnwo91YqbEg25WxGi6wD8HD2HF+/dN3z036hx3/x98O6MCENh2l0I89uAoQFVFln4EzUZkUh7a8ZJPBbRlcf+OGUnAp+NxotSIr3GKHdrg+S0AR5E7QVugPGbXPwUpC4/ctm3VHBbsW+pZk0laUqpPQwYh0Akc3TjVveX9kqfzTP/lTfOFnforlX/4J4me+wuWf+2HkK/fol7/EB//sj/Fnfvqn+cHyAtVB7zf6sS/axHJTrhXpdwiV6zefePrkyuleefmF96Cv3PXCvLtyPZJJ3/z6a8rdnq4dV/qjsWxnTtuZV/WOslWWrbGOhj7B8l5hvpcxsa+9mUh7+Sf6vv9JHv/VX4atK9Pk4DfmORKaIlcrue7NyHggmvwqFLiRBagjnVZ+RAbd8tcxshCjHDdih1EcGXkfWY7kz0o6uJqCLgfyqMFyuLHEIQ6XFgNujylYteP56PE43qD0vE4vx1PUyKjhM/trWVIoMwvuzrCoIO0MRailIkuj1UJZG5elpPOsKSqNVQtNCrU2Qhcqyr/y7/z8d91Q872xir5VGeStTJlMzMNGLjkBW0tyX+bRBIjBFOM2jAP3kA8TCUG/PUErnkqnZYwLDrHqYBA97+Kmy9Hao2m/Q9MezNH8F8IcgsVn0qscFdRyND5IQHHJFoPIpsPLMZYMyYV7RrBvwelUEqR8uHlGBD2C65zcLEWpOp0llJWMoenMWtQZTrcj12/J60oLqKc6izItXWmnmg4PEaG58Of+3u14jX7/mfQuNxn+we/t8zJLfE7i8viMUaWkM0qrJDwvUkzKevAD9ncYu+T4p5Asjfz5V0Ts4FRlBCOddIKF0Fan35JzFXGw2A7ZLRAoKRLoIZTJ4f0rlaxtPv78/PX1OaQtZD1xOEVy+m1TMqI7E/BeVHh5gfUUn9OR8/yPUCrHhTEqiVV+FrKCKk5YRhwXlGqSrg9PsaxWYS3CX/y/Xv++x35XDwf++7//bUQ3wg2T4MZA/Ub3QvPKk3bavlNqQcSypTRW+kypcDrstiaMeRTMJh6WTBifzBtZ+mCHulqUtS1o6YhOpEq6TxdDqtEWSyiqDJxOUSd8IQoZRzYn7EqLllwcjECJqZRoaXkvBfWg+0awAUGIc6Uglp7m6VcK6Wb1cK5jcGorY3TUJnbtrBrIhycokwyYgcrOZjc2m6grFg7iLLQssbDHg+9laGTNr9+MvS4olVqEEmuyE6PiZUkY8Dt4LAb7ESf9uV/4TYY4nR1fC6GNUjIGuFtkJJRgjsCtopwITy5LRA4zpsA+ThiNYEekJeexVJCgR0fLCRVFByzFMK2UyJs3pjM4k1e4haCniFU8XVwyMgxdV4quiDTq0il6SsFVzgg1HTo1YeNlnmgIFleq3mUjHnted5+DDLoxJdKNimJ2Bb8jL8ILYEh0xs1Z7hpRnXHE8s0M9xulTIQz4ZURj5hOuEzG7YaoJ1ReZvIKLV+XMQ2PM/EOXsNsksMZ4wAoa3otA4J0SNlN2R4qlKCdAi+OHQ7e1aGII1KOOWQ6rorn2dHd2Vx4suCNGQ8TbpbifXgwNPc83SDcWfRoYRalRRbvrOfgxYfO3XvO++/Dq/ecu2MaLhZYh7kJtgnzJowBmwe2QHnllNXQBvUktDvwDyZMSSbg7zTMg/lpgam0O4dLUO6M8/vO9t5kq4EVO/afwUWNpe00Ci+rcC4KGBbOWg1KcClwp5pDhWMwpZJ1UjPSDXeNoFbl5Sr87C+//pM+Ff5IDvc42sEnf/FvfB3mHbHccFtoLai65rplhg2YT8Iujs8V9Aoycc84dLAScYYzzPlArekgDU9xrIQyeUOIY7HldWasyfM8dlVjJA9yzpkDuBk8bY49QNkKul3RJxi7Yjzy9PSGeVXEGps52goxGx5XzC3bwhjYHFgVhh3Qdw0iOhKDHpMZym12rmPLMoU20OrUl2CWbK8pN9Yi6OXMXau8+eYDXZ45qIpY8pVcBj4mETOxEu7U1tBScqghnekL37ie2aP/CZ8BfzzHf/cPr+hSkAqzZSLHhnN9M5k9qO6Y582hmeLD2eYT27ghZcU/UOxiPP3ajfV0h9aV3QY9DKnp4jyJsWqlSmFdKryEuEJZjVbOVArO5HxecQ/a+4VGFpU9w+hbq4AwbCB7ivjDjB+tC1/6iR/Cf/KLzA9e0D9o+HtnxssKr1aiKWEV/Ui5+/Ev8uMvv8ByuuPuYqytcTpdqKWxLgutCA/ffgNq3H8ZLi++xLY/Uh8n+/2VoYqa8fqjKxdRLi8K/TsL/Tudy1Lg3BnL4JN4ZDtP5l1nKwN/EUhNrM9f/q0FD6ePd/O69f/l6A7/w1czRj93GLeDYaX5sSHH/d6SRStuaXxRO4SnCkuk8PXs5vJno8IBXq8tP7YW3kLYOeKB65qPOy1FMrcD8k5+7hhwk3xMm1DP+W849CfoPR1dQrK06uUYOmkKcO4Jgx+SYHgzaCssp2Po1ZTOQGtlRs97i6aURfECqpVWnbWmcxlJIa6qMedkG9/9gOr32B3Ac/hLeJhwKspajuCoJhvILF9p8YzS9akJf3U/7HFpM7fDMTI88w6laLIaSIC1iKQL4hDG1pPg9jlhA0FK1lITKSw0gTos+0IkyR9mKWh1I/OhZPQwIdjpKrtaPt4MpQ+lnSSnBKasqog4w51hkdb2DqPm81eLBGt70I7Jp7liRwNO5q+F4bD15DrVJTekFcU8Ybpx1FzfbB4ijLyLqa8/9Hg2/OXvP/NixduPfvbnlys0Obbm4YyeQueMbImISEHSDwGxLHkRUPVDF82vUMMoIW9bu4hkSk1Pd8qyCtWhX0teHQSI3MgfXq23rq0EqQZSctNWJIUzCQ4RK3iWvCIi28tK3vSFgLgwu2TLhWVD6HYTbg/Cfc1MvBwZxmkH7Pd4kZYCWpw4HFyVku4zVS7r0Sqmno6Pmg0VovC3fvvhc6/zH3yl353DRfg4GkNeZBR0CtUKNheaNqp0VNNh5WPkzbjO5A+VmVPbWmkMnpsr/RALizRmCGU5agsCQpWT5fXARXO1k0FI0DzfH2TNaUkpR5sdVKloFAjLabiekAg6lm4sH7g7t75TSmHMwFS5kxNesvnGxiCG5u8PF9mYWzpk1CnFeIqd0ODx6YFlM27NiQZW7lhaY1iwTc9pqRi3MPowylSUjrSJzoWokTwRCU5NOdVO7YOCM6wxkkLJEk7B4B3duJukmDwl+N3f+hTQnGjFxKMyQxGtiEu6EWKBtlHtxGTSydgNAsMLhuKloROKdiQcOVCkKpKxd59UDKnBCJBwKsaqOeSpBCEVNAh1pkwmQpRAS6CyUL1m9L0k763USq0VmEfzzZnAcAXXFDFFGhqTFkHTJTdBtFw7PRCpx46vgXZEPG8Enwp+7fitoRdlygS94GVjNs1oYbkjvLExmQNKXVilUtYnyqwUD+AMsh5u1EDLJZs466efWWvfoeMffDLy/SrZsNsl17XpwvVWebhVbBHiYod65Kg67sKNFKOeBQuVrNteVTCBYcIegoVTS6AUFkqKVChahEWUs6azvIWwmqKRLYI6czDYjhv2UoMiiZBoC5SLU++M5X6wvjTOH04uH0zO7w/qC6fXyWsL5iK4CJydqIY0gy/2XMuXQb0o/apYcW5bZUTCyV+L8+1rRvFPAmvJgY6SDYblOaovwYuivFeF3ZUeglm6tSvPA9PgFk6UwqXmOrpI4b0m/Md/7VP+wq+9m5BuEVK0FOU7e8d7Z683fMtyCfMbcXD3hB2ezpRXCkvDXBLGLZr8OzWsVLwU6voK9fXZjENbCr040870a2H2zm17jagw5o0gbQ4elbllO12Qw+RilbhBdMdHxUfB90xhrItipTNNGQ57f3NwC+XANAiTSuxgfaKae0WjY7KzW0s2Ukx8Bt0dC6HuDdt35u0+94XYwRQU6gnstPBF+RAJo1UnZEfrIGJQbSWWAnEBmZno0GMQG1nowXzB//zrH/0jA+t39bgZqBha4VY8m8jvlHY+vBEddFfEhNGdOdPc0CPYnibL5UL7oOJl5+HvfguWQj2tIJUxKm0NmGdGTCS1V9Yz+GI8fXxOMV8VC2FauvK8F4bcMKmEJs8WVaquLG2lx2TYlffjzAf/zA+iX/kidmrYD53wP/0h13/+B7j9xPtc/9QLxo/f458KsUJtC1/+4It8ZXlJ9YXrbWN7uLI9bhR/or++Md8U7r+woHpizp1tE7b9AZqzxoV9wPLgnLUxHozli8L6pYZeGtpgqCGtEBSohTmTs6TDKRH8hf+n//54y/fp8Y03wV/7O8IPvoL3X2Rqoj+lvbkClwqlnVnWvI96jhzGc/rrKCWvkRHDNdPz2YbO0SSoycSKo0tsdg5TzMHVqukGq5IjveD4zyGAzUiuNgdfazj4KUUpD7i+gU+foG+w32B7hP6Qv1rk19quRzrJFdEs5OgeFKCKsbQ7qCdsrWhdOa2gRVCpeK1ozZjlc9rnX/qz/+cfyfvxPZHNeAa2P7tMAvhfvn7jz/7Yyvkk7AirOBKaTUR6zGI9m9uS7ZPNXn1KLjYerOd0VWXBnNDkmRck1BIZ29NDKNKg36UIJkfPSn1esiQB38ud4FfNnKsk3EyOJg1VISxFCA+IqvRwUMXnZGnJRdpeCy9fGScOmeJQDbL6NF8P34OH4rSanKbqnhOaEPabYnVgUw5HWD7n0BQNmihlgW0LODkRcNacCmKGvQ05x1tn0ffXhemzb/az8N5nsotN+eyDUVAcOcTCiAP6JzktG92pF1BXXAyXljJ4STGilfisIeJguIlzxAadeu/EDv1R0FOCAc0AESTkcCFCWKEtBZVA/BCecOz5O3jOBQaHSJvnYnXBXHKi4oKWLBoYBtMUFee6JwT+fBYe9889lheWFrxcnNusjONi1El+XBFnaUppwZubEuo5hdK8mCcT5fOvdryT7gYiqLHzn3218x/9mUqsjo2K66RZ4LUiCLM6RQtmg3P7kO5vsCelnSew4xOirVjdkQMem3D4BZsdWZQyDvNqEyKJs3gx1hBcK5VxvO476id8dKQ4Nlek7pykHlnFhBnbCjKC0BW1iRYlKEwfIIZhPHSlLgtFG8N2KkEpDfUr+1RagUt5D/fBNKj1xPbJE2dRbh9OlFNOjDR46p3lvLDuwhsGPlvGcXQyvKFemWLEpy+I7QleGOKGRWGXE9WBOokYeK3sI1LI4Yr6u2l5f27DAZgyePDCl4rkgKI9UXGmVXoEtEbMgYWySKfMlVEL3m4UgyET844yqK0writ1Cbx3kEKtMH2gNGZsFFGW6sS+4NURFVo5eGc+0vEQDVXL06oElZUZOyEnig+gMUvDA0o5ISXJqSq5ZkEKpUU7TkFZwBShs2g2Y6YwL4z+RNE7jMnsF8weOd2t2J0RfqGoIXpGpDNtz8jXPjP61iZOusVsDuxFpXij+JWrlnQ8k4JuiBOtwbglU0o/wP3dExz+k5//hP/63/0BpgXnIpQQrOf1/u7shKYrHs992fAcpwjDSwAAIABJREFUyIAfw7vDjUsKFkMOR/2BMVApCIaGUlU4qVMchgjGUTzikbXzJKcSiwPdoMQQ1nqAlWe6VDxy31VF6BpMUoiDXPsUzfi9FTZTvjHhveK81wuvH52Xm3J6MZFToBfodK5jpc9JFOFb31G+JfC6GwPh0oTz4cb3A0runpiHHumYheBERvdF0potRY6yosKKcj72g6aVL1fhF3/vyn/wVz8lDjfbu3i8NRO4swh8oivvvefsv72x/FAO+xK7uVJu6R7e5UqTAVZQ3cHOGbVzRbhSY2J2Y5dzuuBjZ7+t6FMlXhpeAo07qkAvkxoLPV7n3vroto8u7D1Yx8IcgXUjRsWr4mWyLEa3gR+AGl92xr5Q1zMVh9mw7lR2qCvjYkTpVJk5uBoZcZQyETmx9SdqadQw5jjhTw7nCxYdYlLixPQtG9G8EnfBrTvjd57QL95TCvRuFE1BxWbgPqjamLYzTGkBpkaxBZNPeXh88321tf/l37zwL/zYxmmmS/z53KNAXRStk3hK/MIoRvXCiISkyxaczxeWHwEZwv61B9oXTlhNFMzr/crLyx3NBe+BFkda4b0fCT75zSvffLPx6iuNpSbUaJLCmt+1XOcsEJ2sL09EPaNxxRD+VNzxo3/6x+HVhdDC9i9+SF8/QOxEi5V53tm//C2iVS6bIl9/DW86MYWv6B19Ts6t0Z+M7fUDjxG094QfuP+Qx+snsAf7pze+cD7xnRDW143Hhweetp3zD59YiiK6ss1gd2HYRCVflz6TH2m7UCr4FXghRMlm0P//yOOv/44zfxH+7Z85UgeXgEPwtAD7+Ia8OHBENYH6SVvPGKEe8f792OdVMga4O9zVA+xeDih7btOIw0FVyXbBJTJl62QE0Z8DbgGjQzlBzAN3U/P/955fu95lTHEeHx8TTgWi5vq2Vrh8mAyudQ1uUekhaeLglMm1c+NyXmhLZTmBthPtXD9bDw9t4z//2d/kz/2l3/4jey++J8aN8jmrTETaX/7HX9vTbl6fb4HLwbtKR4pbOo08HC2Z5UxPl+aUg6wStQljF8KEfnweHrilFLAENM3pYq1wvZYUrzyS54DznGBpwPkuXSs+sua8H89bNQUyz2FyZvNdMMtNVquF/RNYLsmxmiFs7mnr14K7vXVnZY0BWEg2SdXgyY+KTJ+IZhSshhxxuFSoltC0LWPZxkhOFSOyctp0+exF/z4Tsv5x3+4/IrGIHm2UkudJpE19HIw0PKfH3TxLBgjAcC+gCes0J5kyx02ARzKNcLLKPtLVggranHoKfHuOEuavDmAlofNZZZjxxuNvoTkNL0e8UFzeCl1i+V1FSTCpE9QWrIscrXOB+AHzczm+R89Hjoy4anGaCuc75Xw+vv4R9a0VgpJT/CMqV7yyeQLuf+5vPD5ra597bd9BIes4BOgRPPiKzxQH1StuQe+ODUFlYiYMKWz+mi0MOR1ANhN0KVhcKdaIOnNsg7KaURWUBI3q8/uZNEBqZMRZyWY4kZLtpTpyIkLjvFaqKkgnrGEjof6MG95rMok8hSzzCUyEhrlRF45r4Tje05ocmVk5lUKtJ/p+xaMkUHtMTkvheh60eqEUpw+jd0Ol4H1yCyMOg2h1KHHJ51cn9thwv+Hrif5JY/iCHeLumHmDoXIiDO51oZjg4/L2GviuHSFHwUkEEsHP/sI3ENsYoZhVzFJlrqLMqelyKIPRjNv+yHx4wh6diFO64VRALuxuaAv65qhnrXio4+Js5ng1umyYr3jxbFudkwgjYh7uVCdkQmmE5huaaQ7NptdSEXUCwbkdjIYEL4vkTYdjGQOPitgZd8NrgBiOs7SMuwGEN8bYqOEsp6CuLaeFR9VxOrhSVEUa7iuUjteOo1gpRDgRO4TxNG9pyUcJG4Q+O9TS+RwAxbiNB/wd7W1Kd1RJF3tX+mwsF8dLcswCR9QZBK7CzZzhKVZNMoZwI3iM4Mkk6yKEt+yiEEkQP5GAZimcA84hnCNdTvcu3EmhCryowirCKsZag8Mbn7DbmmU6JkHH4dn5TF4fwgVGIUZj9jw/ezgfmfLbr4OPT86n1fhOF17f4JMbfPxQ+cbr4CPgt94Iv7M7D1dQaxSr+F7pXammnI5W1WKaPDETYoLOQh8KDjVyfzC6ElExEboIm3jiJ9S5hfPv/5WP8+fnHRWy4O18DUiXwZ//60+gWwKFR2IMQhaCG9wG7eUTi+aeOY49iotlK7N2QhZ2CUJrFlRQUH9BUYMyUClUD8IHjuK246IUlDLvWAiKBzadqpothjbyps+MqJHg96H4diZGTR6Sr6xrjtmzeWziS9DXFXsIBmfMDRsD6YHIPZQzocruT6ieGHNj2sp4avDg2JyUkhF6oh8NsY0xhOGKtcalvUKHM2dDNMffYTk8pRowEe05aOqFbXN86XyDl4AcqJbvj+Nnf2mmUyScdjBhF9F0uIRhXfGTJ//YobshwPlFZsDmfgMaXk+Mqui3nGorayu088Jj73hVpG7M3tn2K9tmfPjDK7IED18fXF+f0ql6QLbN8/ozb0Fpejhgd2wERZ0vvHyJbwWsEPeNvtxR+BL1G5+y/u9fY/ojdRhVBLvoWyiSWCAUzuPE+I0b9tEnrC8vrJeV+brw7a9/iw+540dfvaKV4Olup/3QmY974/WYvPynLow2mTrZZzIFYeJidMkIuCrZTpeTDGorTBP+7999NyP3/yTHV78NP/uLsFHetslLTe5Vu08+1r4dIhIHWvv41Y3kYFsKUSbppqoHf0sLhyMYZOTn2ITYOFJX6ZqL42ZrJJqUlreZ6BkWeeZrk0aGw9FFOdxZV7j1/PxaIQ7x7Nzy+XZTHnYYHpyW4FTBvXK+r9y9vGNaoGWhtoVWFlQVpYA65Ui0/Rf/7df+SIUs+B4Rs/6w46FnJfSYQvX84THigJcf0S2R4xY8N6CjV8YV9lthfyjcbplX1qL0G8jQo2oahilybCQGgknGFcsRldKix8Y3mUYJkRUQQyxrKGs5blyLUkoKFlPzMbVowkKL01bl9gYIeP+inE7CCGeT4MZRg+nZ89l32GfaY0Kyh85c2IewhxNLVs+GBLvlRt/fCicKWllRJJQmwlJz4lSL81/+ve1zG02+b4Ssf9yl9w9++4LQFOoCqzyD1BN8NxyiZIQCF7wLaws43IKoI5SMhb01VOrbUOPUFFXnyAuOe7YvlVLQRWhLNjjNma5CcfIioTNjfW9ZJpH2qUgRiQA1SYiXkt7+km4sGnn+RMXigNh7Vt5PzYbGcMFF6TP9rVIkF7KSDqthylPPxy0KL89HbEOc657inGgu4O5KofKLX3v9h77G7+ISmNuAfOn/m69trPW4+V87qo62BZPJnBl/ipLx4hQVC2aOq+DTCRo2ZraNKMnXQhhbBekZ5ZLKEpXkCR6LXc3rxyTfM60FyPZUrYJ5z3YxabAkU4txS4i4TOiTGZMgWR5+MGBEK0iCts09QeGHc2sL2PYT+3REG0bNeMXrgdVAtPDUJ9sIVJWihXq06a1ULrUeAIGVYgXxJ9ROtNuKLzfk/QdOl4Y+RcYjp1PmHcQjtHQHxqxUhNLs3Ty5AELe8vmGKH/n1z/mU72nl41JEFLyfZVBpROmTKtMK3Be8DtjrDDHhttA4ozIQLwTUnKKWJV+fSJmgwgiNsI1oyxlx3THVZIxJTncKc/rpX62k5Ka/DLgKGRJhpCWoGgF2ZAwqhji6eixqEyf7BSiGizGDGciTIzh0HRl3AahgrZKL5oiPA2zDrHkWquSYlkEwxx8ZUTBZWVOx8cteXDhRBREA/cTWgu3PcWQUEthjcm6rIguaD0aEt/BY8O5DeXpqkRx1ktyFqcBpLN4t1wLNfIGpymMyNIPM9hNGUNxy4HbzXMglLzRlKNUUyJ/CueJFMCu4kwNbhU+luDqwcOEN+I8uvLowWszXuPcPN/XkwhaQLRi/v+y924xtm7ZfddvjDnn9621qvbl7O7jtrHT2AQZCVlBIKQIAkJAFB4IIuSFvEUCXkBBCImHvETcrFjYkYxRRAIoyUuI8UNkE8WO7aidhCQQG6dxErt96fjSl3NOn/u+VK31fd+cYwwexlf77G53xLV9jvbJlGpX1a5aq9b6LnOO+R//i9C2xrQ1jqJMu8luoGjba0OrLGa8XwZvGHz+WfArz4K/+2Tw80+dn/+y8E5Z+cJt8GXv3BSwkonGugPk7sI2UkY4EEpJKf+hKMcKD6rwsMG9AmVvXB7mtMg4eAb5jEiB4q8/dv65P/eVj08Az84UAPjK4zNDroiT4++dEBSLcwJa60zUhu2sFUhwvIVSyob2E8RG2dlSFmCcMTG6KZOnlYOSjWiTlaqZt9YtwfSQhpZGbaBeqHoFfkCtUtsRGYWpdELPTGUQWJZZNiFeKBFsXnJP4IazoQ+C2Zy43GLWWEUwX3DbUJsRbUR0GFds7xjabvEHlfl0wKwmC18Ubdve4ByZpjg2+nVjffdCFCBuKSo0JiTKbmmwIds1JTamaTDPB4oG//PPf5khL+d89Q8a7/vGVy4P01N238inl9/OqixBN+EplrXwjVBKKmPGU2FZO9vqiA/mbxJWvzDe2FjGDbUcOJway7ri5cR8qhyPjdqMmK949G1H6qec7d1b3nlrY4wjbaqMNefNmDRZLCVYRyZAVyaO919BpwnfHJOCPFvw/gb1oky/LrzyV245fUHgWaedIbokKyqAUSivnbn34ESr1xxuO9ehSN+412aesPCF5U2mT03o4QFvfN7odsPVpws3rFxNE2MYHp0o2QAvgK3J7sdl36ekGqXOjq7Cn/7fbvnYbBz/H4zPvw/f/xPGugNH+yHM9PkjtGPK/WxXaG6ZoZPbttz647GLfvam4Db4wAu85/PILqhq077d02RPSdtVQ5osqj7Sc6v6DpBJsrN2DAtxeHqT4JbupvEA1pKVpZKgVoJgjk4w5sYSDmXm0b0jTQt1CtrUaNXRBlobUkCbEFpI/1R4Y73+hp+Dj5bM8IVhEjx9qkxHZ9mgHJIK2SINNTcJkJ1u/jQLnHZ0mqQEigDDyXPkXE8gDJ48bfgUzC3TnyKcacoO3xhpOPr0CVw9GHgoTbI/WSSBDA2IMihrZRtJ4TMzZlVuSVDNSd+l2mCaC7Eo66XzLd+sjAhuN4iyg2ki3G6BRkokt0VoU25UwxVbYToG3YPNgystLKNjpH51jEHVBLpU99ensgs2nGGO7Bfqz7x1Ib5Ou+Zln5riaz7DBywt+aqfB1bypjeEqWRBPhyOLQGbUgXvUCaeM/bMM3Fsb9shVdPXrezW7/s165oG8WLZQbSxG+8NR2aoN4qVYFZFDaoGrtldMtdMC3QQL5n6tGtArMhz+YUQXJ8y8Wzb0+sET4ZXcSzu5G67Jjtg80yXuj4IN1twVZWrkxPu3K6FWfN+s4DHlzxosstFVldqubvm4DxsZ7u9KN/84Pi+rGMA7y7pYyQdGEK3mTaAUojiqBm1VDZWilfcOxpCrcJAEc3iuZowwvaCPagnkGdKvUqzdm+GuiKiSFgmv+6pdwDEQEuDOOBxIQymNhgeKBW0cjzMLH1DWuC7qH4dDS2GSif6oLSZdY8bTy6oITIIgy5GaUE3Q+q95KE/7kyzMtoMDGx0Sp0YLJkA6iPp/d0ZsoI1TJ6hNjPefEi56ugDyyaFBdFWaqnUITxbAnwj1mtiVZCJjXMybTXB+5dxbPs9UxUkHBz+8A/9Aj/wB74DqRtBRTTAJ7wawzZK1JS/uzHLNSOeoLWmXfvylKhXtJJtulry+F1fn+jxHnF7IhqMGKgawUAkWNxwjGMcM8FVkzWje+HVasPMgAtrmzIYIHZZv2dCJw3wCZriuqHcI4YhKoxhmBk1HJUJj91MPCZ6XKjVE3wTQWRQ9u5hH75jafl3bGdsa8lEs9zUGCIT6JkRVyA9C03fQM7Ueh89D+yeEP3IFh2TI70/Q3ZPTfWXL80QQBblMIEeUsJuYXsCWGFY+jYKoBG5IXRlBao4DWELzWu0ZUR8sIObmoxhS4JzMoojWfUhkj5w4fTIxxVywykuzKEs4hzQZK33HVCqTmvCkOTJhQaulom8NcNNDg3oinhla8HZB11AQ3NtlmQdeEimCRcnRjahJCoiThHSG8Sd6tldNoQ+kqHcQ7mq7D6khfc006YnLdySzcZp2kOGRGhRePep82/+xJfod6j7i0vhS7osCjuwELkpWxn80b/0Ln/kn/1mxqfOTGuhPrtHuVc5KSxygy1KO4DFwEpjtXP6iOqFYoW+OZQTsNHdEdkoIQxLiXXQaBosu2rBozMdWh5iN4ILrjM2XTiMAz5n7eSRddRUoBwqVjJxjqHI9AwrJxBhFgU/0vstsnX6lTAIijykFs0mgnaO/ch5e0ytV1yeCnp9w/zqnHuKc4P1hklm2gTLGGg0xuighWrKKJ2pCidOWH/KGke6PQVplOZ4z6Rkx/CYKJsTvfOTXwnONvYW/0t6YX2dYcAf/pFn/He/7wR6Ya67bA5hGYE0oApTlGz0StBvC3p2ygMYFxjRiTNcv3JF+cec/sWO/f0V+3alnA6cDg+pavRzZ9WgTfehzmz2jPl6YvrOmQeycH73zPktQ7bGNm/ce3gfkQF+wKSjBr51tBfoA+0T8v7Kw791i7620ssAEqyqf3mh/SMN6Qa/uCDLBpen0AaHTwhI53JVeV8GFx0cvvkaaSe6bQyDX/+1r8D5PR59R2HEifBO9WA5F5ZwfBSMbKhGRCIdLmgEp5qs/yIwS/C9n6303j/cE/0RHheD7/tx+EP/SuGbTkaPDxIKB8nWooKdk0TQWvog+87KWv2DNMEgEwalpEhDT7DsiYMi+Ritu6yw73e6pk9X3AFiIwGp2E/ZOmDWfEwPOB12XyzyuUKh7ZviOz8vnSqtFYp0bm+Fdrrm+qD01ihz5TAXokzpI6e5hykFwpypFaQ4SOHV+o23afhIgFlfr4kQIUjLTfQWhUIweTBVYbljlLizXgSZ4DBnZ9bcGRbUWtNUVtPjyj2ASj0afU1pVZwg9iJFyMLDXNAqsBd1kvoqPDJGN/0QlEHgA5oLo0SypjzZK1WEueQmf+vBzRvC8ZPKVpR+ybSTtRvalD7u6PJJd533tAMDYjj9AmXai8S1sh08E88iEM/3FziHXRpXS16dcgrWLrQ5q4lffFq+7tomsgMhH7PxtQDX3dL/7LIyt4kS7Fp3YdrN+UJT6rMaHKb0zVDiuZkfnt+nMd9zsSCee9CcpUoQPuiAhGKbJkDmgRwMX5QoQtR8UMawZjzzMEFNUrqj+aotFE8n+H0DW7isjjbdzQbviufYJUBp4G5dCPP0k4kgtLC5M7cEkg8n4bIosUA9BkeB81o+iKDdu1+leCY1IUQRfuAz737Nkf1gvIyJmXdBErl1g7/5NvyuR9mVwAc+e4KXMuE4Yyw0TmjpabQZLTdVKvjG7sPX8N6TcWWDVircL3h3oijFMgK8uzKVeTeJVTw6aeWX1HU0PYuuJsNGy+QxnGBjs0JrE/2ywVQRC1rdiGgIB1DBxJEQpICNDSU3sZl1IfRto9ZGt6eUJ5WpOH5PMU8z9qke6d3ThyhWVA7ptRRBj0Itg8tbM1eijFcG5VrgstKkIDW9J0YYtwDXQr2d2cpGvxixBj5PhAZ4xVk+nAvgGzxq3Ml1coYK4N2L8fnHld/eNioTXdaUwVklfMK8U2oGpgQXZp0INzYq7TihveOL49Mg9ubHrTstDhk7vt/cvu38UpmQ5hSZGD6otN2nSNP1VFYkGonhT9RI0+V8rELb59cNkIkoAXFIr0c6YxzTdytpYhR9Rmiyp5yZUdPHS0Zg6rhbvj5XSimMyHMvsWe+CnRbmUvmsKoKPs5oEYIFiZTVFZQRcxbzKMWC0AsDZdhG1YFHQeMepk8/pCvgGztqy/Vk9PTbnDRN9sOFcmfQUVMy0yMZ46LCEc25JtJrS9yRsq9FARPpEaq75+MQQ0IpujPvNBnErSTLfLkDPRE6wRZKH8EcmqwAoGnKPzeRPabprlgO1AWLSukJunmLrMZFqJEMsT3QLDvNoqjHLqXcu9UG0jLcJyK73mLpb1kkiF1COUtaWGw8PzyoCLPC6so8QaWyafq1Pj13/uBPvvMPlue8pCStvVcL5GeJDJT4zHvBv3o/YOroKws3bz0iUKZtwY8F8aBLQ3xDZUqwSgPKAsw4NxSuCHeaGj2M00T6/sjG8Dmz5WJkyt9YaPqQHo/B7qHSEZ2RKQMohKCWM8UPoIWQ9OIV6Ttr4oBYR3VmdUerUaeanoRj4JKBT0TBuaVF5VzPUA7EkzP3HjVWOyVLQ41tuuQeg5XmlYnK6INaDngsRBhNK9sTR6hc3irIq5JMrjgwtgsiqbYwVspI4/oyKZ99/TGhewrix2xcufMn/qrz7/9OuPSgniLRAS+EOW2XTWOS8n0cfZDhE2rQnymHVws+HLcJ5gVzZftyZf7tz7gM5Xi6j55OXGnDbLCuC6U+RA+CjwvLduD0TcEr7ch7r79Ffw9u31tZ3lPa9TPKqaBDeOCv4G9cIAZ+EOrTCXlrI/6JhfJPTowfH5ST0L+rUn/+bezGKd8qsDhxO8NtY1me8lbAMzZ6OXB7fpcbGmNcGOOWphMtCn6ojKWk13JE0ml1wUfFjd0bcU9kV8MsEFVkOFMIXoV3tgN/762OSDz3dv6H4+uPP/5T8J0PhH/7X4y0QNrZbRZQO5SZnSSTSqxt7//MiW2yAKc50wN77HvHFOGkMgjAdoHOEagpNzTPdYwUkO2pgilbDM2/cY4URBxK1pZ3r2tkXD0UWFwoPWAWSo3dZ7xwOBzoUvBq6Zdccq8yFWE+THv4Xf6uiGICVYUf/ck3+cGfeP0bftw/Eu3seHExf4F+/a4v9JuCeyKSd7R2JTuF6yUNx0pLIApJLaeKMsIIcqNZEYpoUvYKTCdSjrPflEFk2kSASlCOnfPjvbcRTuYkJlvA9kfkRm8HMkyxAZNGsiNiL3CG8P6XYZRBL8Ftt0wVUKG0goWgkhOrd2cO4epQaBWqaqbSaeCeCUIRRu8pbQToOMOzMJv3309wKtAa3C65qB1xvuezX78Yf5k9G752vAhcyQtf3/1MgB/+hSfMsR97ClqFwxRMTSg1c7/C74qdfCZVybRB8fT4kNgXBpin/RzDzjnVXQpYMpSrexq7sydhSrCtgllJgINd1oegQ3aZrHJ3ARfJx9/JDoNg9N0EXmV/b/tnTzB2GQlpxM48KyjhScevNVOE3n9fyL2LslyUPpQgpSWlClDzvaA0Tcr2JPDlJ5dv9Gn8SI27+yfIRecnv7gxpKWJehlET98PkxX3TnISnLElgP0cBtMNUcWl0H2h1YK40kQZ0XHvbIvTCgwZiAgHqZTYpWUMGnO+Cs3zUsQodWTS4GTUmiy98BNKAxemqeW1Uk6YBd22TFMUw8eg+SDcEbGUN1tFOKKlZspiU+xx4VAKywFub50xjGHGtsKxdKQHtZwQSePoi2ee8LYFcxOWq4WuK+dtMHwH24ZjoohlTrEZDFnzrd1z2iOHqeMX4/LM+dtPXk7mTMBXTVjpZjb4gR/7ZThu2NgTfkXBB7UYraV33hgDs4Z5zetMBcNZJsOmE6bHlPPFhmF0DYYonU6XYCuBVU1+s0ChohGMAsEFCbBeMK8UKoETdaHVa7Q4pRZEMyBlhGKzwTQwv+zsmGQVo50hAy+Z+GaSOXBFGgUjaITmfCVSUJnT+yuAKJSySwxto5Q96VAT2BdP/7rwYGyCrEdUjIiVVgTxYzJ2vEJMDF8yYMAWhldCKhbnlEy+hOPNy8jlqApSPFl+mnYLOhlrNVbJ+zLPslJC2HaDW62eMvimDM20QSlGb8EojldnHAZ1Dsph4JMhs6QXtwq1K34WvFfECuta2PoOhEySzQCBqWSjchmO9Vxja03pcwxhrMo4wyhBj0gvuT0ZGFF0TxWuyJ7qmpJ7uKsPcw2bJWiJs1HR7IIPxUdKCo8CswvVlWtRjlGYQmkUngyhR/prniMoGnzP//ouf+DH3v7NdVZ83S9fqqH7BurFMRz+yq++yUZlZdBpnF7psD6h98rolRsBfKNwwkNZxfEe6YcmHbwRrCBC70LQuJmMeEtpXqh6zjpFJBPYlgZrx6yBrzQOqG6MIlAHTBt6UKZ7hs4ZAyY6MozCT4wuOAWLFcol18MCaeLQEC0EBmOlxpTpYaGMdUVfuWJz8HpGR5p3F4J5OJvCujbOY2WRjRGdzbNuG+85Qx+zfqJzigPnpzfJWObM0JXulqELW2FYEAfjB3/pGRaOv5xT1f/leIzx2fc7l3sT5ZOBdejvgniCNbWkUX4C2XnfTVKZxfErkMmxs7G8f+Zye0bvTfBNlTadGb+uzPaAdV0YvTxPdpuOM92MdTE2KxwOSm1HsML1q9d868MTn/zWE/c/VXBb4TXD3llYb95GxJEHQb034L0B33qTpkVfuFDmC3zxfeRn3oOloRzhiyvxLJA+kN924PH1yvnmGU8ev8dy+yaHSTlMB66uN1559cjhvtGmQG3h5q0zj7+88v4XC4+/BE++NHjyVmdZBiMsrUf2hne13PeOCucSSHG++ydzUv447Rf/3w/jV54E/+VfFNZboZbd10qzxzwMLrvXlU2p7prSEg89wDzv7CsB1yS29M6eNJzfl5LSwuYfMLlU8nkvDhdJv6thyeKyBah7qqLCSv7OSip0whKHuWypAuAAUmdclCipQ9QpONTOoU1obdmoLOljWWpl7MScP/Fnv8R/9sc+h/XOH/ruz/Hdf+Y3fkuO+kcCzPqAmfXVq99/89lLdsL2wmdy4eY2o5QvZzgePE3WdhlddzCM2A2DI5wmO0hFxiwPE7YRzIdCP+8JPl0Y5vvFEoQr9QQ1AjXZGVo5CuRZL+l/5JaJiYJQRak1mVyrB2+8YQwL5kcJgGBP5N25AAAgAElEQVSZCDRG0Eem4iCJnLKzd9ZI4GwbKf9qV2THOoJShBpK3WPCiyiCslnKFO+qopbqM7ZI9PcghcX8g43Rx3AIH1zs8TUfL46/9eVLmqvv/kOlpabYNXJmiZKSQV445rEzdBC0Zrx5AO0gbCPP5133l7h7IbHrkgNfU6QcxfN8h3O57MlRoWlEPyAkQAKTwMXyT++AUiBpMO+Cq3CYA9U0LC17JFqQhvZhECM704qmB85OM75doA9l6cFlCa5Pyc4Zls/Q9mMj4jSFognO1h2gu9t3v3hcX/ZL7rn/SYCJ8+d+1fZkrTSB92G4CdWNsaUfmuydEPENpyNdcTrug0lK0tKL5gK4a88nKWxDKQ5WFJOBKwwUvfO14R59QNEtz5c38EA8VyuLgvdgxJKsmHDEBOI2f19S4piG8YMuQgzF3Im6EtoxuUkJjkyUJxv32sCugjJdMc/OkKQU1sm4bB0qrIuxLoLKiuYNRXlnxq8ueBHmmgEG6+7R1m0ihtEZUI25gIZBdEpULhZMMiH3juhR+enXHn+Yl8A3buwyLSfNtCVvc572zp//e0eGXwiv6a+HUqwiMZDQ9GMkGBhbON6TxRJmDN3AJT2hUjCGeyUz3BT3NX3zIrDi1EWJ0ilFOMSBqoWNha0shDgmt4jPWJywOMPuHCiqVD0gkql27pJsUDpae861oag03C1BKQlCrkAdp+DyZPeKcMZqmDs2dAf5AhtJiy3SWDfDo+3+lqDacRlQ5/SU6wvDg0kqNyus51vq6YJpT1+xAKXQSmXSQ244akYuvIzjh37uCavApsEawRrQVXCFSyhjlySYZJy96r7kJUqEi+6x37nGbJ7AZVjhbMKIDCkZ4WwRmBUu5ixhLMCtGtsMS8AZxZrTa+AS9AGjK+LKsw1uPb0nRZ0xhK1XrEN40LegR6Y+S7A3AHe/094omo2iiLymd9URNRKgm4BZQFxwz4Zg3C3umoyi1YMzgRXJdXuvKg8kM6e2kr2qVikFfu8PvsHfeG3d69u9oXS3IXxhUXxZ18c7Jtzd8uh3HUOC//FnFoKJXjpnubCN+1yOjVKF1iuieZ/j2cwN9z3waVBECQYlCkaloqhWeGRUv8oap64plVGo88TaVlwDmytLvckgkQqtFZiPeCt4M+ox9wZCRY9g7Sky3aZv76Wh64RuyniWfoMSgzacshmdIGxQSmF5AofhLCOBtcqcDdDYE++2CbEZq7e772/Wj2MV1kvgDw05XYM4t1fOw/URuqeSq825m5F061TZePNy4lce557n46i0uBtHjO/7CxtzEeb7SnkV5GnA68LyunO5geVibO8Ly1vw/m8M3n5biCeF2AIvg3YKTqcjg0B8sNx3nI3b196hzUfgwvAbthhcAuZTpcxwvJpAChY5v40xc5mO3FwG0/0HXH3LN3P9Xdccv/NVDt92H/lEgXki3unwzlPsrY34tbfh71yQdy/I5pSHhtwX5FuB77qHfHuBTx95cr6h90p7qDx68Amm48x89YD5UUNP18TpwJgmODQefPtD7n/HK9z/dOXRb1tp18HxleD4SOmrsL0vuCW6VwxEhbI3xw8Cf+e1+7x73l3K9/Gx8fz7/zSC7/0rwa+/uZu+R86BkVNHgs6e6q/YicQ1ezDpPWlp9n73WPP0ypLdHhnP8zV6rtFnS1aX7XbK5ruMsGRQiwPnjYRZNH+27aDaSBcR7l3BoWaTWdSpJYkd7jNtqsxXR1YTmiq1VVpRqgjDjV/7wi3/+n/49/gLf/M9/sYvnfnd/97P8dlfvP0tO9ofsQrNnzNkIoJfuilMB8c24fJYaBPMJ0+NOorjmAlVA9uZWJsJusu7miibp5t/N0kzWmCuidBzgmdPHI4JNBxrLihNgrnC5UnhcG1EJAg2q3ATwbHl358bLFtQjgONCq7cLIALN+8Z00m492oWgUR2uS0CtOIjmRijBxJOKcrhLMQ1XEzYurHcwsNHYCMoErgF81TZuqXHl2eC0wTcRLAtwekQ9FDEg+kqWM/Kf/B/PMvDu3cnn3sX3RkafAzG13uXd4j2HfgSwNjlCG6eHX93xl3sgyd4yUxusjyLe8lmXtZpRRkjqFW4bCklFGCq+dzR84IUMjggEHx1XNKXLUJoJ6EMWG4DPSRjSywybSfIDp3v4NXOvtLI9Ms7GvDNxZNnGuwFvOWEGPJc8pjStJR3COCaEiMLp1G4XYNusFo+//EorBb0Uai7SWCH7HwXePPpb9bTfxyWvDuZISRo/fmnC3/trWv++UdrygWK0cQYpTJFbobcsyCwnVWnArYJdRLirNQKMhXCLY1sFewq0A2i3uPot7hMBEarPQv4PWluKiBFoE8wLbg3kCWTxgo0mYm45EavOrEIrcwJhimoGea2x84XQi6EGsUPhM5wHpTLxOmVC/LwyOPbM34Zyeaoh5TsDGOVlR41Rf2WQQbnMbO87VwfBvaJlVZAPdhGZfU9s3iA62VnJRZMDffOKIWlCNWdqU6M3nEd/A+/+OxDO/ff6HHH+Hvegdun7HD48Z/7ZX7Pd/xTTG1jBkTTYH81Ychg0oqLE9ZxFubyCqvfEqqodcwKpa54LJS4n+c50rwbOabMemeS9rZROonu+5lYnSZHsJVaj1AboR0cjBnByHCM7P1pFURmIradkZhWpDVmhmyECmJKj5Wpz1hc6EVotaP9E7htlEMgtbBejDZXEMPFkZpgcSg0KfR+oZiibcWiERF4TabFdhiUZWKcjUMol5OxcECune3JSn2QjYeUbF8YZrR9PX0Zx995baWheKQJxyYj66hgZy8IzTMYxTRw0kIh3LkEuwdnrqBV9mYgwpC9RotMEwtXdPeMVClZD5lglh6nhyLIAJeMf5dwqgZTBN2UNXLtE5Q2ClodE8u/2RsehtaguaYfiSpbpNmyFiN27xcpH7CYE9S6C2zJ826hhDiKMHlJGWIu/RQVZs1mYoizubCWoBelCFxT8WXh3/rh17DfdL3k91/PS/JlHS84HABZYxvZvP7C487YTrQpiMcz9o++g7x+JD7luHb8yTVWnTIpoumdZtYxm6F2RA+MYaAJXtu6Zcrts8745IyMbXeuDi6xpnF2EQYDjcLoCfqoZkJzb8nwkgLGBKzEEFTn9MvVjXI44cPRYsgkdF04+Ak3Z3s2ETbYbOV0r3B931kpqLVkOZsj0oh1xVqa28QIhhaKGL7OcICYzpR6xaZ5T1o4cgrOsdJfv9AriM8MB2zisBrbKPzJX30TjUgGq/Oxqeu/dpwD3lyC92/vcTo+RV2onxQ6xlyUzeCoBZojLYHvUnZ/SW3E4jx+AzhtXD9s9INwaE68OlGuhKeff5Njuc/KyvzqkemhoX7AWYk1KIcrRHLNiGPQD0ast1we33AcleXKaRb4pfA0nnI/zvCph8R7hrwCOinOhn0Oyu84IJKyb3t7QecM5PiVx+/w9nLLOS4JXE5n7t1/xMVXZAyMTj9vuB+oesv61gmbjO1szNeNwyvG7evG9Ck4vgLmwdPXE8CvjzTllyopwy7KD/z1M1+7g/qHDK3/++NP/XR+Vpn4T37Pxr2aoNPd9tt77h/U09dKSy5RU8CStpVJJthBLjF2f+5kX5Xd9oVd8GN3iYoKT9fd3L3uDSmBzXbm151hfGQomRzhqQtNM+F8mpRWC05FpkqZNEOlWoNaaS0Z8f/Tj3yZH/mZCx82x/gjA2bdmUbLV/3fBx3YVqHMxmYfADKKsEaahu61SRp4RkrAjKBE5EZQslM0lb1zFwkE1aOy9uBwBPzOxDQpfno9uLkpHK5TaniOvRSJTM6JOfA1Dbq3s/K076ZrBPNDY75KZkWVTCZI+q9i4c87hAmoFLo5k5KeXdlA5vqe4EOQcAToXZmq75G7Qt09JCIEFeebD40b2bXhCoeiLBfh3f5Bp+arJqGIvAk+ZvPSi+CVIDRJFluOYIyOlkb3lA3WgO5OiDC60467BFXyePaxR6m60IqnxIEgBgmgRkpJpXzgGhVISjeKMFSwrtQ5NwehgapQqtKXoKhQW0BUCulnYiNBKQkh2LsquqdWSGAjGVcCiGRHxaLszAzZkf5M4Oy7J1dYXmsRQjRHKazdschEutstDW9rcTwkjf60MEtQpPH9P/XGC+/vg+P8sQC0+EANpgF/9bVb/ulHryBxQXOmwS0YqkQPvBgqBY0pG14jaHv3/2qeEDLGmUqar3tHJ8FvKuW00l2ptQOR6U8+o22AeYIYFrishDlFjYhrlIGHEXRwRYYS5txrQV/OdEAPMyo53xW5T+gN65g5lkHTwvm9C9fHiXgIT9SYpTMfZ8JGps0ZPLMzh9rwrTB0peFYFNSM+IowHzvna6dFwbSy+TOcA8iExkaLQglJiQmK7PP6FDAXoZvQY+BW+BO//JIysl4Yd/ePaezHAg5RuG3Gn/vsLf/uv7BxCeXAjKIEK+FTsvsiacsS1+krFkqo5cav3dDXA6Uekh3IlOBE2A6Onwm7j3PhJCdsWlC39KaaGrMHa4WQQXfSFF4yObVhWLvgI6jtyLBMywzNyHihE5E0d4rQhhNlw7ZrrECVSg9DhjPGLRzAoxHSac3YnlVOVxNbDdycWir4xNhWdGqMeaXJI4inDLtFyjUjOiJG1BNyuaU/gjJasttqg8sV5cETLnTMBjMNVcV7p+tHplT6/31UcawUhicABemFVXUPLikJ7pSdVby5EbbL8HSXtO7rWSBUz8aIp+qA5pkcGZb+jCOglELI4C4lVz3rumNJ8ZbsgNowWDCQTJMrXrA2slbzwhJCuBOTUCPBJydwMhhAdzlqxF4zCuyUGhog+H5PJfvdPP2vmuR7C3aQ1JS5yHOAZhPFa9o7hBhK4ff98Gs8Xn+zxiv2JiIAwvMq1/ca9mUddyXV3Vu3vSAwqcRkaL0l7MQUwtoqpweddQU5OfJwUNeJuRhbrAwOaHUEw03RMMJ0B7QNXQp+1fF7Hb04IY3wTtPG2h09ZBKvWkXccBmMGhRKgkrDmaYGMuNuiJ7QssJIfzRoxLTAHHgc0iOO4GYdtIsz38+0zaZT7je8UyRZC07NDamfKe0TDG65rpkq1zfF+8b1A+cylMYpAXpPkCR0MNyQdqTOgR0HlEGLDZYj4+HG3/7iffDMgPSPY0H/wvD944/8xQvf/wcKjjFG7sGC3fzajCJAF8yD1jxDxXSAKO3TRovCzbsr2ybEt1ROp2BdnPhksJYL4xzwznu095RFJ/pYWLxy/MR9jo8eIi2jAL0v9GVis41lveHRmGEYz7TyG/cK9xG+7d2JcphgG8RwdJ3h7Ru4SZYy2ilrcCmDv//sTd5+dmbxC/1QmOcJPLis71DbFaqVUSZEj6ngOUxc6oIehMPcuH22cZJKuRKWp049Zppm+RbgLKzvB65w/Ylk5/7wL11BvLzNwt/K4bHxvT8Bv/Ob4Xf/M0pRZ9tv18mzVBu6W91qMrM2g3lvptx1Nj0SyCqSskW3BHK65z5Ud6yjFTi1HdgqqQATTZYWChhoFcYIdCooJZs9mnI3F2HzA9PciTJo5ZohltY5Bf7UD32Zz3yufxVj78McHwmZIXywwL/oDwLwvqSp8eEYXIY+B5skApdMH9lVWxB73Gok5dyM5/Q8RHJTHllMb5ZdotqcunfRqggj2397bL3S7hnLs5QiYvnYGsmmGjg2nCdvBrdPB25BPSbi347pt5AdIMCD4cHWHTPbWT95IUoEfqvEIaOFUacYabIb3KF0eMBquXkdAcvOmJlUuBmVx8NwdzYLJtE0zT/kcfxaavsHx/3lH1/7HuOF/w/SY+PF3/7zn3svO1/sKLmk0b4CRffN9f7b7nvBa5pzjcuOcu1zT2Tf985jxAWiZzGNKW5CmRNEpWjGq3oyUkSFVvPcja2kDNbyWtSSPh+E4yO/DklmVYYjkBT9CIaXjEiP4C5aSEnmGZGAWDL6g3WnvW6WyZtGgJf0jdvfV3YAlN/2CTjVkhudOljGeH5c9PnR/PiMxJiFIRkp8qc/94SiTlgyRkMcF8ekI3EAnPCClkCPDhPM6jgD2ZJinGrEhaj79VdX3Fdkz2lVBrgQ9YyaUCj0cRcKABITREEQitx5Gw00Ar04eoClnTi8cuLVq2va5hRRmhyRcqYP4zSD2sT2ZuOgjl4PXFZKqcne0g03o5hgdE7TA5YYdJwqhfCC1A1bJ+S60x96JqMxsCFoXGVSX3SiFIpODFe6LhRdU0bkR4wDjM4AEOVzz7YP61T/1o0ddR970RPkerZg1AE//YUv8JX1IbOkB5WNjYgjGgPzgjnpwyJrJmRK0se9LJi3fXkpwEDEGb4kW08GIlN2aCt46ahXWpnwCSQqQwJzTQN2GSlZlhVYkt0VFYnGMjpaNTeAPUH/rTvmikVKbxcf9G2mtoz/2WQkC8uDMl8TVnAWJE54majXweYX7OmZ7Xxh3HT8vBJz3jRuyvCV0AZ6QtmYm6Ixs/aFXoUYnmnGOiNRibmwPk32hXg2M4Jr3Dufe+/wYV4F39Axl0pNYVVK7xBmhLJ3eu/XygElVLA9elqbsnj6rFxGMMRwgrkGpRV6ZOKgSbDtlEIpqdTXKhR18EzDlKGcEB7WXL98T5AUEvAZlka5I1IO6Z7eV7GzqK16sggiG3vdlS2CQTZ8bE9XTLZdAmrmzoqwoWxSnrNSJ1UOFGZNk9xZ4ajKtK/7BaVoeW76rRL80tsrv/eHvj6QBTy3IHhxxJ7sCHd6hJdvxNd83A1R4z/+Xd+ERMHM2MZM7Y5dO7zzIAMZPGBqdOtYHNMLCkOxTPGmY7onoTKI44IUp1eY2j10TtZuF6MeZmIswIJ4x8qAOQFVB0p1qipuGxFCEUN23yBV8DqIOrBBerP1gakRa6Xqht0reQ2Vuwai7B6+Gc4EuwmzHBnlbYYpt9GJpxceiHO431hHY3fJJ8zSmiDOjOFId7x0xrzBVLCYGVbx1rmxh/z4r7+BkWDhP2TM5Fit8yd/vKSPcBFMJRUypCm1qhIOqspwSYuaAS4JPA9pHD+lnB4469uDt3515fZXgqdvzFzeHtn0vVbGJw/wykK5P+Ft5eatN7n54mssX3iL5fUz2zud61vhW+qJB9evMF6defpoZbkqvHY58/rbz/iVm9d5yx+jy4qMgLcu2HQhthUxh61yowufe/NLvPX4hsv5jF0MEViXC+t2YbkYY3WWviA41hdiO+O+MrSzdVgPxvSgEK8oVoP7ck2/1bTV2aAdg+mRcLwW/Inzzpce8KN/d3zIZ/LlGz/9Ffijfyn40z+ljAHljqkFbBssAjcONwUosO2SQCNVMuzbsJ4LJAMYI7eUYwfFQjIdkQK17USe3BIwC9kkrwpdqXMhWnpfNZmTFBHKIpUyOSEHRGe8CqKFX/78hT/4n/8qn/mF5SMDZMFHiZmV8zgvYi4RwR/72YX/9l+qvP/EEYN6LfT9/lJ3avlAetE90kxbU4JVRJjK3gmOYJY9hZA0jA+HQaBHoZ8VuXa6O7bvHMreRavXwbo5filczyVjLGtw+7iwrUGIM7+iSHFqFfySRvFiyYIxyW6fmYD4Hq2ZnlkiBR8wTSSsOkB70Fo+VlogO3+rzk4MBckOqHuk4Wg491rGoF+hSFEWnCvgtfHCxRY7A243qYcdMHvJx4vsoPia/3/x8x249de+eOH3fxeMvesrntCBmcB0F+0dmOx+ap5pmGnTktdDxH5NS8pjx9gR8HAkShaykh5LVYQyBXYRVFJiUcQw1fRZUBhb4AtQhdp2pYQGhNJKSlGF9PaSHTRLw/k9By3yNWtoUqz39EsnY8d321MUY8hOMXbSk0uDV+8L7zwTQoNDS4Bulezaiyt/9mee/aZj+2KP0Pl4+Dik5HCAwFMz8CMRFdUzEQ0lPakmNooLLj3bJu7UMTGmIDDG4RYtBcZEvxjtCnqBEkotM8KCR9lNjSdgUDUYVmjTwGNOhg6ZapiAf0NL42iVpd0SD5SilbGt3OyrnU6V6o6vgcmG1Al7XDlthX64xR80bJswbnE77eyHvI7naPRYMV+okVK3sQmhK8ftiuW9jfapkelmgHsm0bmk8X2IMXpH1BiuuB1w2ZgPwvli+HC2ciJaJ9bKZ14/f7gn+7diyD53PWce37GDdzxcVv6rH/1Fvu/3/+Ok2GHL1p0IRMX8Jjuv2tCddTnsHtWf7UyVlUDpfaK1oLUDFpnyFW6onqkauS6pYL7iPjFYqMxQhRiB7Yws9Rm0E0UhJhShyYZGwzXjJhynlobJShHNjoEABJuvFA8EQ8aEiJNuNJVCQRiZpqmNUUCmzsQBXDAfydTAKcUJ3wgv1BKENcyg33T01FlCKDeBHBO08wJxOKOXCblRVjXatbCOBZke8Wf++hv81x/qhfCNGxGeAI06KpXhgValeHrolQhuFSKUTqZMCgElQdYyJcOlkLJ036WGors/VMAmUCPXS4tkt4s4NZSZZBOvOBZOj0oDNJzFCxHpb5QrSL4mQhl7WmBJYTPVnVWAEtmtLnfgmKSsHjKcRYDdv02mXLuHCAMoVRGCTkElG5wqkr5gnpI3L2ko/cvvnvmP/vKTlGh+1VB4cb2L2CUluRrKHtSTEsY9vOglHi8ytCKAAf/L55/wb3yXUSyoMnBvhA+4fkqxA6oD0YXQim7AUYiYIIwaQfdCKQ2h0x437P6Mj5VJ98CUOOJygSLE6Kge6NIhOt6V2oTiM8QzrJ4gDqjcErEScUHLETNHUMoevuTFqEwUb/j7Ha5WtjYjkV6C4SnRdllxU6r6bhY/AY7KjNk1cy3wzJm/fWa0GRsdLxdiXEFc8BCkNLa1U2savG8doqQX4hiG0Ogm/PH//V36c+CX5+nKH+fRydL4Z9/p/Oyv3eN3fMezZH6qUItgIzA3SlEUT0Z57Kluw7nnQNm4PHZO9ytx37myTGKlG/1cePpuRxfhpt0gs3P96D48KhkqNqfSY24brEbUmccyGN0o2zU9rqAbcass14XXpzPvrXB+X/j0ckSXgd6/x83jjdfOX+LNocANp9sLS8mQi7UHh1tgTnAXEbZt22cu6AlpYUs2zWNXZJzXgTYhTvDW6xfaFXATjDlJF4UgGhyPM//pZy6Iby8p1P7hjojgy+fge34MPjUJ/86/HGnzIpEpgOTHUkB336y5gm88lxQOJ8PIWn49drN4s1yjyh2ZJ4RRc996QDARDhRWHDmSXnwEXipVlQ6UUqllX+tqxUrnv/jvv8LrTwYfVeanfBQmviL6D3wRKsKP/Gv32DqcTeiaflGBMEnZ4+aDsyVrpWkW7EpO7KrpUHBE0xR0Z6OgSYv3nfU014J4dsmMTCUMSQZLYj+KqHEM5fJYCNkjo08F61COSVkdo6Wv14iM2G2ar2OXA4Iw4Tx+rEwRlN0w3NWZZ0V7cgnPezf+UEAt2FToFtQBqzl9l37dGNyrwZUoJoF6GqkKScP/g3/z8deP6d0ri6/tCkbES1dZFSlxt9gnLCgv/JvjRUlcAH/y934aQ7ms2bnrPVhvhdMxdpZSns+Q7OTl5LMbw66CTEKdgqKkXEOFdXUKQvSgtH1x3Z38QrJLzaZI3SF0T2+SNDdWxhZ7jIUlyycKIXdG9Ls/ie/MRfX0LBF/zr6qLXLS83w9m6WJbUpu78yiM8pcNVNf/k/23j/Wtu266/uMMedaa+9zzv3xnp9/JG5JoAHaNIBKKIWkrYLKj6qRoJgSEKlaRRVSqzZFiIhKQKKiQJVGKW0AJThFrZoqtCQN0ATatPmB4lBXqd2S2o75kdg42M8vz35+98c5Z++91pxjjP4x1j7n3Puu7ecmxC/3vamre87dZ9999l577jnH/I7vj+b5XDdbuDwU3ISzLeybMhYICuMg/Iff/5FHruOjEOI1mPW0zS85Ros+YWRMrvBHf8NzDHKfURIMvKL4jkemW1DpCTqsZalHwTVNiKsK0gUfPCPBm2BLEFNax1YVTDVBJM4wM0w7pSrq6eW3GQXm4HDYo9uRWgZgD1KB9Jkpg+J9waWiPahbqDtY+kK9taUvFfPGyWZD705RobMwUgkF8QTqvDc8TpmKIr5jfzmhux3cEZi2WMzMy47wEV/g7FTZ74PZLQ/ADtY3zJGF2eJBRxmaEqNzcOfPf+CVxpJP29wC0HV+3Yy41yNh9+o+UMeBd/6+tzEfHNjgKgzbQAnMOhqNKrexuGQcNM28EdgFepKHarcKMlO05hyKhoZk8iUzWpyNbAgWFj9KEluagK/D2VPkDM2ZCzrTzVEdCAGLjspI1UtMtxkdTnbIvc/UUqgyEnNj2BiznKC9p6EEW4pc5sEyxqt9TdTTNyJWNoQrqk6pQVtgklOUxn7f8G0HmaDt8OUUGXeEDiwe+L3CfPs+Iae4F/wczqcT/uT/8jG0z8z2dM2v49pV1tS/7/gDb+PW2UREdnFHt2QTu7D3ZF4JYOEUy3pDZAWu3NcgijT50LWurMAQwRKS74nLKroONi5sFFSS9WtHE3kyvVlD8do4eD6/IsmqmhDCIz0Gp/TFyl3yWPdlJEruOHmbkntlPwLBIsx7oZ6sVgII4pnUmQzsBOcqhSJBkyOb2vnaH/wE9+dOfFrg4MlSr7iB6txs2CaD25+quQVZ1+fiBcd6C67Xsm/8Hf80U/s4mxffxPyWT4FOqBj7nztj+BULGo6LMtCySceARTBqAhLuUEnA24ugvtAWGA9ntO2OogWtQSMYSmA+s2Hk4OlRqhWMRmGiLcIQTpmCUbZ4MRZr1DlR0KkrXo3hLJk8WjrYlPn2saV5YyjKcnHOWRmxkw3qhs2GNCdKIIyIgZzBeP8u+zt7go5rptL2MkFcIJwg2tILzFbPtt2WvnkJpWI+M8fAt/zYnsBYyRpX9iNPmpNP2974meouSJ/ksjaUv+0PTdyJTO1zh5FkdKIg7qzRlwiebydrIvkIowSjFvq6mpQ1HF/8nvwAACAASURBVEKmlMEXImv33YiXPctOKB5gGxoL0gZiTJMircbggm6DZ5+5za7tGIeAPiHjhre+WDmc3GcrZ1wuhZfLjpkGvjDqBMtCtIF75cB2rCyHjmyzaeVh6JBEhyKp7FhaukuHOD6MmDWkO6UULuaWio2XnekuKdu+UGIrDDX4ur8Wqx/iZx9P29yCzz6//sn9XuXtJ8E7vjyYToWpxmoSDwPJ8FQgKvQFtkMyModIptYEoNdm8kdenSGg6SXZ3JFW6Nts2Lgo1EAZUYWpwNIrf/FvPODF82Svfz7Hq51frxkw64qZtX49DhHhb371XQ7d+cQ9YXMr/Ro035sskC0ZVpiw0cB7oLWwRMYjF4RRhMNiaE3TMo/1/5C/sIoQB0FPyA2EFYioECYZ4y2C7INYlOm2pWntWLhsTg1ZDUorOibrqugREItVTij4ZbJ92hBM1dMEvEE3ZywCPejr616KM7ki0rEoHDz9sJYDzCos5jQXbm+EMdKkFdaEApwf/LjzP39on2XVkfK2Xtsj1PB6ArNuAldc/VtufHdtzvq1X3qXr/yiZ9i7J8A5JzNrHNKBT8hTpfej15tQSzASdE8Z6DQGUmRNUXLUJTe1DlRhGNP/IVmACbz66hFXi9Mc1PI5FQRfEgyJmlzSBIjkCqwKccxlZWGxvpbkXJUi1Joy2pSKGOZ5gOieneRG/r8qKzU1khYiBbppJmOQOmwpillFS/DtP/4J/tH9PfCKnvTVFbbXIZh1HIMU/vRvGJmtwnAgXNJE1geoCeCYBTKUBEU12RJWHDWlmbGtE6b5jg/aIYTqE4dDZbhziTDRolNCUC3ZYTFBi1MdVE+x83v0k2FNjAONgqqhDMzLQhlGzASJHZv6LOb3kSaUk4pbUvGnWjELpjFoXRCUMcCHii8NC8W8M4zpMVF8S3kB/C2XMI4c/MBmUBbrmCnRKyPO4sqeBV+EWireGxGVxpawC3YMRAPRzn/1957MyHra5hbAJHK0uEOE9CO68Sod2IRgJfhjv+fL+TWbl4hSoBmMQ0rtIighlGGLLQ9TPqZjMpisQxuwYSHhgIHw5KZEOKOMQEPEISolHJFCl0zH1OJYSJrFr6liQUe04+F5WJeRUhIwFfUMP4hAKJQqLLagUlHPQlt6RYeUIzmCmGA6o2ypYblnesF8v3bVT4A9vS1sp1uELFgMiBXMl7QF6BUdDhyGU8JmkJSrLbtAz6BHYfdSg7szW9kgQ6UdBv7Y33qeh/sFAro/XfPruHYJ2biAXKv+66/9At5yWmkLtHD27mgohlHCCVeWo7OVGN0yvbl41m5DUQY8jahXGURbjO1G6eYUK9ytQUVwHJFM2SVWzxtLOWLVBM6W1YieFfg5UyUWwUsgJf+vE1cgmoSkzFoyObOswO3ikuCDQG95yJOS+7gAYgNaIpl8kQDrMdOwivK7v/fjCR3Eq2PAHH1gj/fzdR8/ojlHLy2PeDrBLM1P+fH1r1k1RBzN9OHP/ssblpfPqG9+iZlbtCiU+SGyfwZ7bk9tFYqjtRO9U3zM+ssGoh6IT91CntsRGOPLt/DbM74McHaB2kjYhOie0ZS9NLyOeNsx1S1BwyhE0fRMs1Vi2wqtLKgFjIaVNL5VK0xayU9MQ6kcYkKHc7TfQg6Cnizp+bdcInJC+MQ4KZMay2Unxg2LNexjt+BX3QMfkLrHfSJwDq2m+DWUwBCpHEzYfPIOy9teZr/vSHF+9pPP8lfe99GrRPSbW98bYNaa6L6O7aB8x9cMdF/QdZGxWD3/yOvVawJg0QQWp0wwDpUenakmGcFVCCkUK8zMRIHTUjALljWcK9lxRqkFaUajUqogQ0k7mTCmItgi6KZQPRAv+EOnbHMN3Jw7D3vQbnum2y+NUSruHdkVdqdpddNwWiPT1rtQAVEwKZQxmN3pEagUZnNq1ZUXHWksjrL/RLBRGO+mbNsujR/7yJbv+8CrZ70/bXMLPn9g1iPPAWVT4Te+LfiqLxW8ZvM68Yp8r/NeQnNfbQESxQ0TeuRpbKirE6YYrgMh2Zysdcr9TRTqyA/86EPe/3FnNiG1Za+N8csPzOImj+PR8QP/xh0WV1rP7YfIgickcHVaT4+fkxopuIlcoJw09y6iab4cxlAHSjEOPf0cVDKyWVXwuUDt60InoM5mSK+iitC6o4fC2a1EwZeaRdZ+n12AZVY2t7nqEmvJgjnC2Z8XdDHGjaPb1YibRAdsTvbVNKY3hJuixWkFtpI6buvZsWwGWPpvEcGeylaDWvKAerJSuWeDf+/dFxlv/BnG6wXMOn5/E8iSG/3bY+F5vM8own/xu34lcyRX77Cr1JpA1iROl2TiCWmMKyR4OYrTXTj0TP8bBsDTUNkjTfvcQIty97bz8DLlsJApmkgQTbECJXVESTvH8UVxDdAEaX3tch970scubwrVBLnBR1MNXHITnyq05jRXzJ0myVqMtSgKsqB/7g7c31cumqfps2TsQi3CM7eVy50wVOXr//rPrdctHmG33Sz4X4/MrONQgdtV+CNfVglxepOUQcmWMYIoMwOVVhcUwTVBLZUONrDUgsqBykCnM+lmNfeG4nA43zDc7sjYKcdtKLaYZ3rYpgr2qWB+pqPqqBSGOrH0C2oUljJS6Iyt0kunSKXZnqmfIGFwMiCrqUysUi+VQphjvaHjQF3jUVo/pLeOC+MA84cH9NYDNndP2Jus3icHFgMWYaqKiePthC6dpc1sYmTvwkzKfCIyYS0WePc94ydefP2AWSoSN0NnB5JKfjwYdoHJoRVhqhu+9ff9M2zKgsYlbV9TUqyKlob4hsIlEoLqCAThSln2xFgwb9nyC8VjQXVEuwKdEXArTKediM6BYTWUH9OsWAJRw6yhMiEUXC4RtpkQhxC6oLEBstMsUrE+oLonaCgnhBtlCEIK5jNDmdKEWXMNVA+KVljljEaCZh6k5YBrNqFsxKTBPCHxAMaCysQsB9wLoumpqbsNy2aGEswvC/JMWz+DJ3zbj+/5mec/uXq0gT2lzCxIMEuOK7fASOF7vu7t6fEYgCVz1yPQAvSUXq0gH+Lk0TBIPxmRPLx50EOx7lRNlvtWUu6QIJpceVa6ZzdzkPTiqmVlZXru0pYlGRtRhgZlExzi2KfLMB1B02j8CoSCFBOlPPIYCTofBJ2SgXwkFnoPypiiRfXcg9/zsYd8y7sfkgFxT1jqn1S4rrdd7YVH0Iq4atgqclV7SYA9hWCWilxdsaM8GriSpkfAr7+z5d/+osLffrny/H7H7/9nb2M8ZGN3WA7OcPuQyazjlm4z0ClRqdSM6jrdctVCG1OGBz2bKtUZLZnpXkHmShNBdEbCGWJkCQPZ4HpB9YLUlLRCSUCpWBKpW2EY0hdQOCFYoBh+qBQXhmnDZbmk2IgoBD0Z7iLIoMSuMIwDrjPt4pR4qRJf8jDTESN3be8lDw/SmA8dK5LrqzaGT4w8fNaxxXnpcMp3vecF3DJp/Vhr5bV9cjnytO2Nn63uquur1cS0efMkfMvvjbTu8EBWZUUGaKWEvpYgzsFPoRalOJg6U1I7cVZWVldi3VfTw9kYXWklpX0SAzEYaqlcqAVqHehmbHWi9SUPAgW2ZcAeGNvm7E+V5WCMu+DhoVGfLSwYZSgczjsnG9j14O48sB+MpWSEhFnW9rVmuIaHwD6QokRNkO2yp6ezitDIhrZ0UA2We0p9Ntfsn/7YyHe+e35lR/rRa//IPHva5ha8NsCsx8dxh94MyttPg6/4IueLfwWr7U2hVGNG0yBLK5BnRYlgKsLAiIny8n3n3T/T+H8/Guy6Q6SVzKtl4v1Sj1c7v14Tnllx9feTn/MH7hm/+k5wOggv3KucnnSWIxtFC7uehuyQuvVZVuq4Zke6W9LhWwi4E6S0L0Lo4UQVxJxpFNqymgKSsc0SwSjpKbQcBrZnjgySNL+uRBgB2EGpg+X/IT1h+uJEKIdLcHPGM4eimbJIgCmtpfRidMVWDqG6MbvjksaFswujxDo3gybQm+JDUvQHEVyghzNKYRfOT52X14lL0ec+rgGXoxDhyMq6/vkScZ0l7XUFRy2Tn8hUP/egFKdHfpAigpkER92znJ7Xbp95Fs7HVrhI8PCSK783kTTdKxowQMxCTLEW34731L27AQXEU+d8TDeD3NCO5IEqGYKAkGlP6++JCDw0PwuAZ4whoKvMI/vHSF6d7kGN1F0XJKPTES4PmoWaXDPbbgJZecM19+31PDzggQsP4oyzvqdoslK0HFAd0ydGofRx9chriAuulZBO1c7oW6LMlF6xOEDVXLdcGZ7dUS9P2O2czS1BZeCge6oIwzhRLoL4AmNshW5b6tQxc4ZyC8HQ3oCypvzkIVXkBBkE2TvWJyJ2qBmsSZaiQZVKGYL9wZCNpqCfSpGF5ko/jLTpnOHsFru2gBTUOgsJjMCaThbKbHPOG5vopSOU1bPNcSnJAsT4iRdfX8k6x0PfUZpzTRs/yqnSj6h4wDLzLT/4D/iTv/tLwAtligSCdsZm2tJKx0t6mQ0hVMsEmzoVWp/weaSq4eHUskG8QQyE7mEYCW/slpmhrsw5nQh2GTnPxMCCMlwVRSEn1KGwmDNGoccqB/QzIhoenTIsiBVCJ5RksqZPX4LnRCbzSghLDwZdU3xkweOA6sSkhdbS8S9E6NFxdcSESfcs4yo9lEatE4cF3A5oCPN2T73YIreVPjWWNiNlxMqz/P2f/+mUfj/GfHgax3oU5vhlwfia//YfsymFP/dvvoU7t0YKwRDp6Tgvgg9k6IhKxnx7pvMVLxxWP1LB0bI2cSKZXyWyiSgRtFh9txYQTaBcVpuEHivjWZwe6WsjJa0UrGaS9eD5+5GVrSyr74usoSikLyTB1X5la1MGtQSWJF9HVaHUQtHOd//UQ773Aw+vmNqf5cJdAVb5q66TuY+3X/88r1Hc2Buvkg6f4nFstK19uzxvqfD+hzPf9P4EDQjhhz688Dt/dWGpe8YDLC+PlDcNmO1WNvqQTL4uzPsNuhmQ8QIVoTLRojEEcN/hTqXXRpEOXdHaAEPbKSGXtOhMMjDLwqAV1YKUkYGZjrCUAzBRbIFSaJKelZM3DjNUC+qZYDKwt4cMbDEO+MrwK5rnA3lpop9eYuqoBeELS9lDHwh6slYNGI3eFyQm6jjR2p7Qloz+eUvtF1yUwnf95M9fMd2RGw3a1wAx4bUyrhrH5B75wqx8+7sG/vBXHqBn+BaytuYkKD1Dek7HBKfMPX0fpXAQRzvIAGIkQ0YkbWtWlVBUTY8jV4Yx6C09daex0BcQHOnOgQOixryH7fYEv4Sxw8ON05cD23bKgQMoNG1XwU1lVMSDE4Q5OixCTJl2qEB1QSzoPdmnPoCoMzDQHzgxgeTiiPdsNkoPrBRiMtqFcq8+y19696dW6vf1XKq10vu1Efwb8+zzM47Nj8tm/MP78A/vA+9bQ78g62scjyPnWdez7fHc2db37nFkwD8jePnLZbxmmFkcD/U3f3BsFBbhr//2O7QwLg7C5WXh5Mzoq6zKYv1AhyAlC4mq+VVXk/SDOScDHN3VjoSlkDQKFWBQZXcR6BYkjLEUxpL66rZXts8ag2RUc2tBb04pytyDsquIOGUABmFZlCGEroYndQcRR0sm6igptVgWo6MUU05OgqUHm8jH7iXNRxdJg+/CDc2sC+dr9vWtmuvPIPCmUdkt8DXvevgoep7sxKvvjyekx9//pxFlr1IiGUufHViRG/f7tXdH/v3f8na6efprjBBYmkaSgGdRJzwpvoN6Sk2j0OZgc+LJAihpe1wLqMEwQngW5menwm63ztlV1hckKBXu67wRwpJW1ZZAR70Cm7K7HWsCYr5KO6YpruzELOjXnx+La8+PQtFMi7I1RSoBsWAsUAah9WCJ9A85Oy2cH4I6KttamAbh67//Iyz26VfCY/nu6zH8aZtfn1MHR+BffNsZv+u5HSIjUYIqll5VlsBNHnRI5lYlkwCLoaJU1vdTKgMGpRNeCJJlsqkV348spTBsd9RzoZcKG4Gi1NrpcwIGGuBUNHrS7FHEGkMdEEZEd4htMmXqBBYbmEpQouCrsbyiKxA6YkuHaUEv7uLnM7E1osMy7dFpg5lxMhr7faGzYDERTTgd4NCFZgdEYNHGYCNzn+hq9KUiBfYO3/HBe5/x8j5tcwtWqc7afS/HpltaY1zJDXVlwZT15dtQ+NPv+E08N36SgrD0zlgWJBq2myjWseJMteBDY+iwY2QsHbfOoBU8VzoTS/N3H6hDMClcxAKlU3yTjM7SGdqIuzNtwGOhxy3EZ0pRFomVudpRH/F6ydBOkWHB7RSYGWzEam5SizlDSe8tt4p7S99JBNGFjW7Yd2MoC4c2MmmnayPYgnbCKuEVsUtOT7aYGSGaMg0pNJsYtNO8oUvQToT+QPCTGUN4z4tnvPPHX4TYI5EsofXw8lTNr5trV7nhe3Y9HhWNC/Dlbx35hq9+M1Uy2XCxZJ7LCjZtjr6jlg0bXRm9GpHpuCsjYl7TDsWVEwluSa57uxYMJY1wFzK/DoIKFNamYldKsZXRDKIp5feQtUlJSnsksNDVkiKZy0s4YYWKUMZ8dT0673zPPX7k5w7EytR41eMGC+vmfzyG7BzBsKPh+80K5Gj+7sRTN7fgs++N+b5cA3yQzLtJC3/8K0bCKmxm9P4pXQM9nXMOtErfB/pMIyzRfin5Xg9jJfqB2qGNytgXXEZEZqoO2DIw14ViBnFGjBcoI0SydmjCZuNUeh70GdDmuFVCGzIZo29wFtxrMs70AH4CFCg9i7yuDKWg7uwlm56VTRpz/2NheMbZ326oF1QcU8F7xdTQJoS2tIAwQ8qW6fnKd7+svP/jn0DXwIHjXH/smr8hM1xHhQROSeVMXUHr7/qDgliFaBkQEGnzMJtwMqShqaqyD2cIQTTvExFs1rPjMFSEnuugrywouLaMKIVuxkaEUVMBcbqp7OaKPwwOceBNWui3Rto4UJtifs6mK/fvwTB0+l1JMEuN4krp2RxfSsAl1G2yWoOgAZs9xDb327knmDZGNtP36sQeqhSowqH3bAIQLKp82w8VXtj1/19A1dM2t+C1ycx6vY5ffsys9a/c7uXGDyAsu7MbFKlg2+DBhXB2VtDoa85RdvjcgqGCu6YZ/FosDCVjl5sHzRzRkilumt5EVaGRUrHeOydjYViL8MMF9NrZeKL44bmRbGqh7WFcoJwZ3lOH7QrbbR4+LyMjwFMWIsmkIcEpFQcVxgjmteA+IqnNKqUkjZ+AgrOErnKfjPOsC0iqQqhdGYZgMeGP/t+vlOFcAVkcy6ljsfX0jyuq+42vr3zdeetNdtE/uL8kmBRKL1DIOFynYGEg2T2uEavpXsJcEUHXNJstpOntOK2Mgg5Lh6HC6ZkwL1nQpqY5WTHmJaUSXdHpmn1lCi4lEy8i4KoEZNUdKUTi9y7JClRxdAXJCDKpMFKGSDjd8vMRAl3yMRGnWaY7eRRUA0XZzaAlmYquwosP2xWQ9eRrepy+rx399ed1BLznhQtucZuvenbBtLIbnTNjldKkh0upQTXNFEt1vKfsM3NEPGUPVil1AF1SilA6M0E9Xdi0Sn8AMTicWb7/EUQPXBVplaE6mkI+FoJJR9CgLSkzpG4ZhpllUQpBkTSwDe+IV1wFN0lPkX6JMrJ8ckst5/CcUPyEFg/pu0KdUtC7m0cktggXaCwop7RmKcmup8y2J+YzWs5OwoJeghbBd37wwef3vXsNjJsMrStCpKyd0iT65s+s859+3//FX/hDv5ILvWQksD4CpzCcU4aS+6gZFjXhbgX8DJUHmHRcjKoTnYqW82RUSePQKz4X9EyAgqqmz6MaotmoERmossMk150a6ceBJMiET5gFtZzg0ZGl0Db7NU11i6pinLL0zqRBqdDaTJQsVw69r5LG3E9nh7CKlJrehH2A+YBu9KqjLCUQm/BYKMyUMEwLWirhhtUJe+B8WO7yXT/+YSQWzCHWjfO10PT7pR+PNik8gve+uPAH/5vnKSL8W7/uNu/48lNEBswT0IqqnBpEgW7GgNLCeRDp1ZLBO+nXN0audWNo+nKVwrb09GADoBAejFKpkWyIjoOkvMck993inkxO8bRbWGsblUIgjOXoz6WUEGZVHuwbf+HdL/NTLy7Ymg597SD2ObzX8igri6OckFyrRa7l/zdoXFxtyXFtjP40Drl+yY8MFQjSZzbXsbyDAXjnfS++hS9766eQ/W3anUv04MQnt4ROeJ3hmR2NyqC2roUjo1r6akl6y4gJrgNeDGFkaYUydkpoysUk6+ZeYKBDVBg6DYUoDL0SQTakq2WgjoNpILYCWTLgthAGdZzpQ6HOp9h+ZjwduKwLNQTvE52Wfkbu+GlBDkBxTNfYF5+Tne8FQpMN2ivaD/y8v4mf/tjza1L1FRfrFay+1+c69eRxJcePbNxG5IH3L7+r8HX/SscRujrV1gCw6sjBYcr1Y7BsHOGBrR5/SwuGQTEzpIGNSbaAo0wrm9K9G2UQRAqHGcaNcnkQ2m5B7ypjV9wKUcHO92xuF+y+cFkMd8eGrLuG1cU+IuiihKxW9CfK8tDx07X5GcI8wLJz9Cwl0rbEsYVMF6HVYBNOO2SaZ5cMEfv4w1NevLx8Q0LxxvhlPV4TYNbaxFpNrG/sbUdmlgjf8t5zvuk3nbFEsB0CFePBReVkEjbVObhwMgSXBkQapLWVxQQwjutGJBlFGZGMlkDSTE2yY6gEd8Y1nasqFw+FFsbJSS6MRw8qRZkfQBNnc2sllp+kyd/2RFkWR5pwqsa91Vm7VqEILH0tutYuZlWlVqN3pa70wOzKJLhmCCdSuDRnS1nTf5wxFClrupULiweDOs9/BoT9SMo6fv96GDeN3R9/zdel6yvTDfPW9DMYFSqFtjJZVME95XiqmeJWSUZVjyxnzZVQCFvT6ASEyJQJV5aWxe6wgXYg5YBrKmF6a6wajErGtroTmr4lslbDvhaFhUjdcwhhac6cNOv8THkcC0UwOUovytrJs9WA9zgxNAv/lf0hDl4CDQUfiJK+W9/8vz9/FFOs1+rR63v8/nFfttf7+LEXHqKc8BXPzGwY2EtjLOllVYgshiRNtXVNe4s0WqEepQvDBukLh96pYyBSrph4EIzLgI2OtmRdqXbCk6O39MZQphXsFAYK3S8ZykgtgscBOxRKCUpUdpf7TJAqY3qNjHWVrTq7DkMR+r2J6eyCeeX2m95jjBMu20ydDdFOhGMsjMNAaxuqHoi+YewLCzBGZT/M6LKhIxAVC+V7f/bi8/yOfX6HXGPRlEjfu+PGFgGiq5xC0ndIBaoH3/dTM7/3121xFkKD2vbIyngRK8BIiUYUQTwLYTmpqdiKoLU9sKHUM9SExkKPS9jexa0xxEyXQKIg1ahhRExAYFKpkiy8IBA/RVePK3rB14j0PjvDxrEeVD1dQXsjeoayHFowlk4pQ/rhFMV8ofQTrF4SUnKNc1DZgU+Ug+FnhqN0CbyPjJBrteQBetGOdedQPFM4d/B8+QL+8//t/Uh0Vqud10e351WOq4NzpH/WX33fA/7q+x6sjK0Nf+K3v5nTSVPi7sFe4BDZCKkWRJQVaBIoKX1fxBPUkjV1iwqSDPQSCeIXFEQ4RDCgyXDOoi2NmUvFNajUq71wLMkqU1MinLEK3/vBC/7iT917JbIS15LAR26OTw8W3JQOXssLV6b0sV0oq4G8JAv/yI6/YmlJ1ib+VAMQ15XUzRE3WWuwGmfnstaA7//Qx/n5foff+fYglkIUGJ4xaOeET5Q4JXzGR0EOwThMmYY6dJAxwYf9HWy7o8Q+2Zqy0GND78YYgTATNqC1ZxBPFUQrpWygLywelCr0KCgdrCMRmIBIX88RLb2ThkaPgjwwfPMQOSnsPHAx8ALSMB/wB0DrWDkQVFSSeZpFn6FWaHpJkTeDXTKNC8/vvoDv/PsfyUJsvWLX8/B4PV85V1/vI3jlR70T/B/PNy7/1ob/6LfNqVAA9oMxbArzYEyRPrZSsjndVzDaIuXUg62g+kY4ddi3IGoyU9NXkOwJW+ReFiP9xaBLozyX9Rui2BjYYIxDWYkKFTnpq4pCCOt5BhChdWPBqSKr1FGRThYDuTymn2EodvD0W1PSm7QINuf0WRBsdKIna/bD5yP/5Q9f8LphNrwxntrxmgCzrqna6yH95u3kQv2eT0FrMBblYMHJoAy3gnv3K7M4ZUiGTK3BRtLw04QsVN0ZEOZIFLt2aJq/T0UwC2hD+lpJMO+U4dT5xM87wwind2AcSGkYhflcqWGwSVBqbkIdUxM9u3O2qSzdWdwxq4h0+pxmx60Fams3zoVRlAiYxsLSHSmKRr7WWpJiLyEsEUlHx6iRWSqIZFKPwukIl3uhnSYo8SS6sXPtVRG8ftaum74Xj7/mmwBMPOE+m9K5aCnrMzXchBBLthbXKZbH6G9n7aSsByxKXAGVrIBFw5HI++mGq4QVd+UYgC6WjDs3TfmqBk01Ny2T9bGym3zcaIvnvIb1fuT3+aLWlCcCIo57YEpEWM2VpWD529NwF0EwYmUxSgjbGuCFj31qZnF/BXh1ExB8HNx6Y1yPH3lhx2/+wmcZ+wWQARVGQ+rAoYEMUN0yb2moKTuNBUwRVYKZLk4dhEqhF0P7iNw34qRjXxgM5wPzTrEJhqHgFkSBLQUPp6ysFFQpoXRXXBpFCptJERlxD545vUMrB8S3hEGTAyUc3QA7p700UO/s8CE9mJpl16BLY2gd9UqMCgelKbRdzqluI8FDNnqLsM4cgscm548pKgv//Yce8nB5CgT9v4BxA2O+Mo5O/7trT62jH56sB2QR+DsffJ57l2/hD/+WW0hc4LrBPZNNu3U2FaBh7nQqUS4Z2hZqwSVT5vLnMKxAebJwsplzKMJIYRlg8AIItvoCiudBwLrRtVDKJc2NYGQoCh64AZzIAAAAIABJREFUGzI1YEORgWDB3PEl0KHm4bYURNvVRTDr4J3QhZCB8CXNxqUy+sByabRbMzUKIZXFZ1QH9paSxwFF1CBG8EJII3zEvfLNP/zThHf6SnKV+OyJdU/LeFWH4eOC/sjdcq9774sL7/iej3Jki3zZswO//1+4za/9p7ZUUWZdPRl7oYyGRlkP8OshMALRynLFWIJRUl7YI5syI9lQEiN9uCKwqoySaYMBVHVKCH/3+R1/+e8+4IP3l2Q8P/piP3vtEzzxety87ZhEqDfArOO1PMoHj6zqa5nhY2ysV1zPp2t8WkPy9Wu+fLlirx1v14Cf+MhDPnbvlH/nnwsojW49vRnPjbCgNGAeiY3T+jlVS95nCmIe8dMHlPMBv6WI7HIG9RkNJ4pjVGhrQpg6kztLr7hcQt+kHyqd4orTsLhNKQvCkj6qiSCgMtGWA7EMlDsd70blhBKGm1MlmHtFSqe+NBJvN8ZDYZ8EMAKlRKXEnF69sQV7mV3Z8KGX38pfee9HV6/f66sncr3mf7Zr/XofR0azsc43gQ9cNL7xh+BPvaOwEUMPheW+UzrsgZOp4KXneaym7NktKJJJ8bUmm36J9TE1084HV7oke777gH8iiLPG5pm0CjGcWke437FnBpaXDpw8V+kWzLWhwNydME2VkDklNOv7mu/xYoKGEVtgFmIbLC2gCjYKaqnQUIG5ghiMAQuZTitdKJPwN94/8aM/k3z/V5PO+sZ4Y7yWx2vDM0s1Yl1xjofzVzBoRPgdXzjwH/zzJ9kZ9IxtHlaq8oUnrbIdClGMzZQ6ZopdSaqKKN4y8raZYGSU5TjmAjeVTLnZ7YTiwWZjTGcpN6w9WA55zK9n6cHQCZrDfFk4fcaJnv9vPFVQpV06+yXlF9saLF7okayZ6E5Z0zAqGa3Zj4tKC3ZzoagxVmdPSt2WCKIbp1PBI73CtqGUEiwGt1He8X+e4/5kWdfj1/VJjJmnUf98M83wOB4XE1wDWmuc9vrvUYU/+9t+FVoyZn5nyWLS5IVTVtlpdhUDi0KEJ8uvwHYQNDpjhXZQZIBpzOSRad0QS2TwgPn6/sOV10isn4ljwY8WWk/KVK1poHMEqLIoFIK+voa1Q6xCbwlutVU662uSo6yfH/cEso6SC19ljBnqapRa0SIMqxfJN/zAR54IXD1+TYPrJEN4+ubXL4a2/ht/6xa/WKhbJdUOjssG1QNVgr4MyNTBkgGDFXrpbEURLbh1yh7qnRMkGguN6hMMTvGgHGAXEycnBcLAZkI2WSBrR0un2RbVzjgoiyUjcJCJejB4ZmQ3X6Il58jUttACfxgwXWB3RtyUKoq1NBDvXRm00V8GuQvVhEvP6j3CaJYFoXjBWxA6YbFQ1Nj3gkxb/vwH7jO3+VVfx6dtbgFUkaNq6olePlf4wlWHnquDzqCrLx4j//FX/xq+aLqPauSnf2V6iiiiM9U29D4zFkFKw+dAdEMTo/gpIpf5eRbBSxBz4FoYS4fjWqIO5UBpZ6CBy5JeMwEeB4Z6kgCZBG7CKCM90gDZzBAFkULVgvWZDKWoTBXMk9mXAumKSkEIuhVKdfCOHM5gMoQFrbCEM+qQj+NCtwNjKQxsmWNHzBOyVf7282e88+/8LCWWDB34NE3qp21+Pb52Pdk365XjCvi6qXv93H7vyrzPnMEvvFO5PSpvPVGeO6m87TZso7JrwsPeeeGiMTc4n+FDL82ceyagStjVHvdqOyevmsES61+PmLcDkb6SNwT+HFOpj4mFx9d43JOv7nN8rOxjEZGsM8OfurkFoCoha1Lypxs3Qb3j98fcHYCiQrXgj/zW5xi5R4nbRJ3ZLDBogU3DvbCUDjLhNlNtpBZLf8dqYE4/DIynhtdGzIZwC/dLXCrToJh3IINNXILwiXEyqlX26ogpg8zMngFRGoLHQJWOMVBtQoYdpkI0g1oZZU0KK87SgJiIFxvTF4/slwy/WKwjVES3eOwJVzwq1hvf/C5DmtGjJXDG5+jndmM8bfPr1dZdT3rRZf1JJX0h/8zvucNbbt2jmTBEBkygCT6Pquw8z30WweYgNAukZR1cqyCqzOGMYzK2oiVzNLbrHC1AGAVhowP95c741uDwcKCeNpANtRcWdjz8pHP7rnBxrmxugWsmofdF6EOm3rvmedGB6X7BRycGoZNqHuvpGXhspjcRtg2iBF1g8S3f8AMNoj/h6nzu42mbW/CLU9e/MX5xxqudX68NMEv0VT0JVeGv/Wt3EHGaK2LZoZgjmAk2AmLKS/v8ULsLz91N2RcU2uLZVa7gCrUY7kIpQo3C/UsQd2oNtqfKsIONpPTQi9GH7CPVISmd7oLPwjTmQoErQzUWFJfI7nTPWMxktsBuTcAYJCiR+vehwFaFC3fchSrC/hAUy0VqH9n/XAK0B7UWRnVMhFsIbYAxgv/kJw98eNceRdiPiPuxWLjREnsSvf1pXJhuglnJdXu0M3g0Uo8bP89/59/f+lVfjE4Vj8ZsvspaMkFT1wdQDczXNmuAuTBNRpWUjiqKtUBG43TKQ8NVupEGvSWLML0cApFkL5SSgePuUGxN0oxgnjPdUIdkV6nIyrCKteG9FtFXPlxpH+6shsZwZfZegpWVk58rJP2zimWy2FBAqlAVah35U//rP2LX+ivAq+N4JWj6Bpj12caf+I1n1GggBVdjlMAplGhoVA7mTGfJyjM1nEIN4+Ry5KCGnBhSBiBlU1KOgGtDa6AMcFnwpWYq5VQpmx3SjaWMeZ9QVINSJw7LHlR407zhXIKlCWbO2By0UaaBOjXaUIgOLQp0wfUc6SPdnW0ptHuB3lrodpveZjoNysru0Uxj9FLwbpnuKgc+ac/yPR98mSX2n9M1fNrmFkAtqwH8EaRi/Z7rf3MDU7jJ1jriDWOAl8I7/8CXsuc+dEu2pzhOW9vWE8Maa+9S8VgYygFptzFZGFRp/RyRTe4dUlHT1QDZEWkJlEWuXeEDRRb2slBDKXKanlrhYJVS9+C3cL2grFJuc6FURxlwb/RlpGrFPCiDMdqMScUwJIRhqKvRuIAVYpmR7ZRecCLpB1ZGqu6ZbUONTjdjVCXE6LsN/+PPwQ+9/wU8OnYjmvqJwOFTNr8eX7uO0d9PAqhynj2azPfKpL4bd/7FulJXgNmn221e9QPx+JN6/HnflBCuBOurifDI670hyYkV2Hr80Y/3PdZYevUB5UqFkH9WRtJTNrcgwaz87ro9eDP9/QoQ5dEpJ5Im21fyahFGhH/9S76Af+nuA9qmwIsD41vOk1HKWkuXQveZW0ulj8qoBZPK7AcqDb/Ysr19oJOhKViC5/PibE/B+5CsmtpwrxQaVQ3hDiYLJQTzhVoGunSENJZ3BmRf8LOO7JWuM5OmS1tUR5bbgBIvBX73ArYTXQRkprPBvaFiCAV3YdaBb/3hl1kIxLNx/wtlzjxt8+tzqbturhy6zimNbPRAtmz/1S865d/9ykvoINjV/FNV9griycrqBpMCIpQ1+dsiiQgRUKj0Q2e4U6lhuK/C5wIjA3FfGe/OSB2YDzM6ZaiF7Ad2c6MojHdg/ynh1h1lNxtlcg57QafMF5g9/Z3TlkcpF8E8OCpKUwdXWuRZ9giCesBU4IWLiT/3ozPzY5/DN+bWo+MNMOu1M17t/Hp1rbh/wuPokwXkRv9pnnoEjAhCSvHGwpoml0wWdaEXZzoTTm8pJyfwwr3gfF84v0zPgs1WGMfjwpSbhx8KD8/Tb+rZu3B2+yjlCMpJECfOPCj7SI+sly/z2dainNRgM8RKkw92rhy607qwLFk4u0oyLFba2RACIszk5j7PykV3mkEzuJw7FzgvL2UFzZIB5iHUAlNJeMAMhprSwU+2gQ/vj15ZenUtWYGLDLK7PvW8BjDMX7IhN776Y7dBXi3h0aI0L0/+/e0/+TyxxnnrKsnK/J1038/DY8bCC0epT0oR8TSJ7+F4yU5dgmn5voLSW4JV2UpZo+nXmPlY5aVFSAf5vn5YqhBRsA5pH5/PXtG879plVMlNTiUN60McV9ZI36CIYJKJTx6arCyCITT9skoCalWglIJosH8MyHrsiPDI9X5jvLrxn/0/F7Q60ucl1w435rKnidIHw7cNnwcsDGFKk+v7QjsJ4lZy7dxXL7crc+yOsqXKkGy+bUHvXmLPPGQse9oDZd5BHYEQLJywDctc0LhF/8SWy48HnF+gdsl40rA3C+VNE70a1gX1iknQu7GPHTFvsEg5UNnfJjYj0ScqBlSKTEgM+VxLo3lQrBF9oXnnJ89P+O/+3oufM5D1tA73R4EpuD7bH0Gu47h5v+PtJUj/DDe+/n/6KB/fnxFWcO+4K0GByMxxi5kWevU43U7ozFd7UNVTIlI6aCY0PWB1ATG8a0qwIzDryb7TQpETJDaINkTzwFaqY6KYNlQVtzHj7DUIq/k4NlIKmO4Z6kwshRZKl0ya0pIHDi0N7xvmwwwnQFiui9bxaHjM9CZYLLgvCTC4EaG895OVv/m+j6HW02ogXnlNX09DUg+X/wiIGz6KCSpc3fH6/je/3uA3P+HRP/Mv/3QX/RfsA/Sk3UgfAbJuHuSujdxXwBi5ArBuvk5Z76tH2uRaayV7MK5YWlcw3NWHd2XEx/F3yKtmxP1yHteA/PWcuTLGl0yhPKbzHRNb48Z1bTg/8LPP884PdoZQ6mZHtJolk2ejTXxhsIk2OaMGTfrqR+UgI/LMOcu5gHaQoNSAurDdQtsJ0gIxo3sF7agEYrdo7Og166laR4wdbglQHpaS8jFz8IoVZzimNHGCfuI59H5nozPz0pFNx6OALGgXxl4ZiJTdL433vjDwZ374Ab0HpT/6sXg1jMI3fLOePK4/hznPjh5tEUAY7/roBX/8f4BL2xIqV0nB7g7uaf1iwayRQFB33KE3o61phr4AGOOJ4ma0lhPYcMC5PD8wn3QuMO7fM+pmoJAKm3YxE0Uptx2blWVvnLdGaPBwzvWjRzKrAI5LiIvhoRwOYDiZdxJo+BrqIkRPMPi73zPwrT+ysDx2wH4tEFreGG+MX+h4zTCzruRdwpX5+7EDfXP85rcOfNOvP6OEs7gwB1z2zkhQauGBp3hKwyhe6F0YNsYyF3oHqYbWgcNieBeKCyeTMU3BMBWaZwnSF+GWeCZY1KArtJ7FSfPgjiqjC3USDuE8PCRivwhsVBgi6dHbYaDp/8fem0fJlmX1ed/e59wbkcMbaupquujqgVkINcJYmEGggcHgBViSl2wDsmVrAGFsY8A2lrFsoWnhxfKyhCQGGy3MbGxgeUkg1jJGQq2mJYGEWtBNQyNoumi6ul5VvXrvZWZE3HvO3v7j3IiMzJev6r2qetWV2fur9Sozb9yIuHFj33P3+Z09tA+0MuOgGKtJYPIkdC1mnd6gU2NRmhM0uDEsE11uBcPNjUGUfXWyCV2GorAjwq2a+FNvvX52pJW0wUpvO5MfPmmGWdKxX3Ti5+SkbvY8rmtxvKXxjZ/9EezPd9ntjVuHk3iJTe3CneJQSaiU5ozRWoy7tFUgdZDspOT0LlNKTdvPRbC6FtTApdISELwV/Z4UXpdWi6jdSyexqTrVIKWpjgiOSQuLbrWVDLdWiHZ0aElBLToLAbMmhRWH0aC4ItIiFnMnqCi9KjkLqs43/L3f2jRBkDucr22RyzZrz42LZl/3YwXnGz71MtRDep23UPiuIrWJlZIGutpjeaBKS3OQ0pN3CnXKzWhfbRP9k0irs0eHMSI4KSu9ddQjpRRHNZE1s7QCUumSoPMFOptTqzC7vMvq5gHV53g5oKaO3npchaGMJBLmK3BhMJjVjOeCXOuwB5xaVoj1VHFWo6FdJYkw1MxQmxNmusf/9u4bHA3LF33eLpptASQ9tq9tsao1oGjXWlJtnZTkOA3ldBZYpg1EySD3PX/hSz6eB3kOyzRhq4IzklLr9FULICN93gGviKxg7JBUgFaLKpOBDPkQaqbXBBSEDidTZWyr39LGp+z9NOFPaBbGskBFWvcuqXT0rGw5Pb/VACyppX2IADbCsIvm1g12xCmrBSkLXZ7BJDyYD7glxFsYtoiy8oGkrYPeE/Yo/+2P/RJq08r5dK5eKOniotnX86UZPm+0ldMa5PjZ+x7fY4/T7G7jeaK3Xmoa4/OyPmb8rib+Ni1bnf6M6+2nf5517CfqGk3+7TqiC2+LrNXsQtkWnH1vPB0FchzxxtZ3czJqy7WJ8s2haPWLPv01+/yhB3eYXb1OlstAS0dPnii+oMqc5CsGS3hOdAnQDrMDOt+j2gH4jC4nSh5xN7LtMuQFu7VjtRAkVZJXuKSYG9UU8UrqwK3dM52CDRntndXhQHdZsWd2yYOQr1boYLRDhCv4Exl7883W+bO1yWt1TO0q7xvgO972AaROEWzTiZjKcj3fOb4rMeKij13Pu+8Z204PP2v7E+DNVzv+6y9Q+jTSi/LcqqBJEHfyTBgHJ4vSmbC4VckZ2FVaI4mpMpc4nQs+A78F9RB2Xi+UlXLwbOHSA0CfGJ6BemhcmoE9qq0BwuAMTzrzR2E5CcC2NGZzoZowuLXSIDRBtTwN/pBjB2A7rUxNdmEwRZLzD/91z0+8a8XZiwwvnYtmWxCRWa8mzlVk1rTMdXJifAc/5heeqmSpWFIGKlYr0IoXj5No0JcKq4wXZ9VVKkrXGw9ccqwIt245i1HYmRsPX63s7yqShWVxzIXeYQdazSKFvSRoAastfaxzoWMqyFdbhNRYfZMitqxOdkhJWdJqJJRiLEfjaBIv5gq9VbS0NEZPlaMqZDFm4iRJdL3Qa4umSdLcwiwCeYruqVCr86d/blvI2orKmhyndcTRiVP+YbaCc7uQtXa2bxe21v+2+da3foCETR0wW5QcCOatZPuIt3Q+b4XSC0qlRVyZOa7r57Uum7V4E2PNKdYm9G0y2iZ7ZiAqiCXKJB6ZK6TW2RAqWFt9EXVqBRuFsmkHmqbPpZg6tb074q0OhUyRX0pLc8TXsWaGaGoTZG/tiFWbXf/qBw4wWxeM58T1uln5mv52WozWXZTaDU7xrb9wk2W5QhlGhlKQoU32jYqUHhbK6IpUAMHSknFQ3FrreVVFfN32vCDWHOcuJ3LKcNizOqzobCDvV3R/wbh/hO8uYb9ytGMUOnyRETI3bxb2djuURWtDXVKL4rFmD6aLKSoso+bUXBieSYgVWg+ejloqXhIzMrXsUsaOouAq/NLNy/z1X36W1UsQsi4ym6Fdtq6vLdGq1aTx2yY920N8ZUpZAeow8N//+Du5rleR1RHFe7TWVrTaHMSQVBFVxlpaC3FT0JHqUC1PF3xt3bg8U9XahF5bNHGtLTpBpFDdGKtTqlLdqFoZSsFILYrKFBflyI6oMmtjnEDNAyIF0iQYeELnI8LI4UpYHR2hfcZ03jq2MgDS6m+RMevAofoRnTvJBr79HcZ/9+O/jNRCddpCAscRu6fZ7lb34cyJcXy94MhaeEon9j2OhTpDzNmKULqTmnUcHbV+/JSbeubkXc7cfnzccvy3bL3H1uc4SxQ47kwo27u3z+/H52Fd69XXO4lMd1zfPH/bjtTXCz0XNzLi+GvcEjpPfdZNMfxT/n6rrXfsq62jtoQm2L/t2gF/7dee5snD1+EMrNwgFZapoDm37rm5In0la6uv6wyYdAyyYExCzc7YTYu9kik+koowMGL7ldwpedm1ZjkGHUZKibEU1GaUWlnKyFgynlbMZz3lfTvkJPBo4SgvGGVkkB1WpTBWw8ZxM0aKCCse5X/9J7f4jrd+ELeTRfDX/uLxOYlx6MVy+tTJWdun1eTfvFm4cZBZ4YxWWl1laV2lh+tKvQn5BgxWkX1gDsWd0SsiSkpTM6YMq6eENDr6WqcsjFvPtMyhMWeWNwy55cz2hMWO4KNhtbISGHCWpTUrLAKaWr3n4/mJMAKroXVT9yJor/hBu25GnA/YZf6Hv+/8xLuW3C8hKwheLbw6uhlObESGtUp+xvXnOH/jV5b8mY/bo0qrtUEVVqU9QVyoK2Vn5tyU1hVicKdPsCwOKly+3Bz3nFtUVC11E/ky91Y1aVXZ1J0pBWaqDCsjdU1QOqpCEodasalelk6dnKq3ycMqOePozBUWRXAVRpy91IoPKpmVVxQYxpb+MLrSJ5nCYCtDbeKDCnSpReT0qTAj4bW9mVW2YmbtxOofHA/Ya0erOQcfPh3CBJ2qRZ0UtOD4prYuJXv68bXQVRyePjziNeyhU+qfm0wRL3UKVxZEjOqKy1SfzZ2q7Z0yrc4a2trO19IaEBSXKQ6rRRWat5qRZkzHnSnW0lhThjo6pCZmuENaC2VlOvbcCpZqAhMnC6wmt7x1XJx+ekIo1JoAx11bG+La0grdWxcppAlm3/nz16bz4ifOnZ+xBn/S9Q/ulb/5S8/yn37Sw7xOrlOK06UCB3PoVwxzSJbpkrOyRCpg2ZotmeM2IL6PyAqnYp4Yn+nIaQWpo788IglW1pF0wL2lbVeFjKI2sLKEHBpyVUgCzx2OqKdWSyQZZaxUuja2lJaWMZaRnIz6zJy0v2TRJfRmbhGoObMqKyx1DL5gLB0dHd/93iNu3rqJim+K/gYn2a6HtamTdYp1NMOJTmnbr+FNOFxPJnOpfNOPvpMv/D2v5wvetKC02TUiLb9HtUfMQCriCfMON23pguKI9gAUW6xHNlQHkB6zjtoVkrfZQZcSeI+zxLUHFF3foMyoXjErCDvAgJcEYjgdSYw60MbIDMWNvs+kMpB6qJ5RbWmD7rXV0KJH89i6s3pFmVFJfNe/rLz9Xz9JtePmGCfqIJ11Xi+o0HAWm6j49e9bj52ojbUV1jCVRt7sp6fO6+nnnjUhP1Gr6sxtdjKUYvsi2DylXRybKJ+1CDV9EHc78f7rToObCCluF99OH49sijgxveZxw5b2Xlvbt++H0/G6shEs1od8ka1rfek83zV0nLo57Ted4k3NLGkRMdPaIcVbrUWzVibhb//Sb3NJMv/lZ+5gXlETTBIojAjoCMVAlFqVrkLpDLGMSUXHHs/W6vAxBzKuQjeOrKqQZc7qdwr91SNSb6jP6LuMF6PKSLr2EAxL7MYVal7ge5XFpYG8zNistNq9gB72mB5h7MKioLPE//7PVrznuacRu7U5B8j2Z7+DbsvxNfXhND69WNbznu0ztb42N2KhH5/vmQsP9QO2VFbW0tmHbPRZ8R1rItWqletILozWMneEFtSQzFt382tGd1koWWBwhiL0lw3PgqwK9enE7uPG8AxI1zIqSgHF6EwZJ0FX6tS8zCq2AlLrVihJWqfr2mptDaV1UVWE/+n/FZ4rt9pkNAg+DHhVpBmKiG9ualuHs+2vnHSInB/73MssilAHZzBn4U0ouKyCZDjCW50iU3KCnQQrF4ZS6XPCBWbabogzEuPUelVcWK2cNJ/ei9bRbg6sphzolQvLlTKfj2RVSnUWA8x3mojQi3HgiqDMk9MnYajCcrr5WFL21FgMrSNdqa0IoNUWrO7F0Sz0GLdG2O2b0CHqzASqJ/YSeHG+5l8s+eDRuHEGTqZpHnuA2wKNSquPcxYfTiGj63WO0+LW6bO2OW/AX/38j6KOzsHYij7OgZSc6tIKFSfDSiuKnKWlbrhYC3OXJm6pwt6OcHS4tmdAHF3PIGxaJJpukDpNRFWdnFqOfXFHim4cZ81GHZShSEs5zD4JZaDJGWtLhxy8iaKDyVQnpk04R3OstiLwXW6TWhWhitBn5Vt+9oM8c9Ccru15xYnzPP3cPtl2KubhotnX/Q5Hfv1ux5e+CS4lJRt0O4UqHUJpKQw4etRRtTLrOiQNuBumPWkc8OU+SY/oL091HOjoUhMocjLwnlKNKrsITfwSd1LpydeV8tgCSCwHyJ5wcTopFE8MlsgMtBi81Ex30WG+QjrwNGN8ptDtS0uP7VasxsSRZZ71jh/51RXL8eDk4PQSuGi2Ba0APLBVc6Zt3/jgZ5y3s65DOH7uuh1Gh1Aks9NXvu6Lfg8P9AfkdAijYChZBlJNoCMFJ8kOoxwhY4+JkdNUR28s5G6klp5aHZFC7rV153KF3COecRkQ3aXWSpKM1KnhgY3MUqFYh5vQaVvMKRRElDxUVh3M/RLVb6CyT1ouKH2PM5I0Yat2bThCckWlw8ZWq/I9yyt8y0+/h2ExMuZErU3YeL4ua2dx0ezrhdIMp32Ot7GOYrk97W57/7Ufcjo976x0RNaC0PPst/0em7u1TGEUd4ypO3lciJy4t29ea1uUutMxePMCNnWwNi956vPrWmTzM0s+vMBxXijbghd/b9xOnTs+x34izVpoK/GmbHyot1yZ8+99/D6jjagbZgWV5u8OruRUsHE21e8riCpV2wKkI2jNtHJXiuSBjFK8kgX0qMNv9K1+qe+wSkct1eyhFYu8olNlpT2pFPyox3dXpCRYFYwZ/sEZ5EPstQPvvfkQ3/eLH8TGutFl1+74tJZwRxHrxXLR7Ovl8LvOStFUgUTi27/8KpKfwysclcrMhWzCoE6qLXLYzbEMjDSBCVr5mxvKfnXkqmOdUkfDRqGrAvuOJ9Ai1IUh+0q+Jew+IhyUFscp1Tl8v5MebcbuAkkSUivJYfCW0ZHW10JNFHWqKv/3v1R+4TeHV3Rh8KLZFtx/vz64e85VN0Nt/cJPTJB97XZsrRauEW1hnz/yB/dYDMbTKygm7PeVmSZuCS0aZWQqgt0m9gcHymynDQ6dtg4oU4Zz60iXhYMD6OcVRNntBDGhWEsvU0+MWBMuVs7OThMadmkrRm7OPCmqwg1v4kQHDOIsETBhptba+4owLow6AzHoRagG/bSK2GehVuHgCB7ZFZbqjAK9CyRjrvBn37rgxnh2pY91BM1xa+hjh2ztnJ35vBiYTqCnUhy++Q89xli7tlrjzYbyzFpUlLd6DqW2NNTctxREFeinog9ZnVqn0GBrMWPUVkMLkU03xXXihk7LdS3gVd0HAAAgAElEQVTCqlVGFWkpZLW2Au5M0XvuLdWoVm+pQQqildQp7krOxqI6M1GWtaXU1iIsq5JzRbXVmBdVJCuKoEmYZ0V75T/7kV9rK9w8v/aw/XiIWS8PSTJ/7lMe5mGeY0gFTW2ledYVqJkqFbUOr4Ukykhmfsuwh44w3QWzlha9MqRrDpvqCK6MY48mRbRQa0t+yUdz3Bf47gxHqWLkZIwmqJcmrlZHi7IURWVg5+gyizJSLxWyKOOykm/21F0Bg9wPfO+vj7z3qJKtMr7M5+ii2RbcuWbWZhu3bzvr+twOKklbzzURenOK9Mxy5Ss+5018/NXriDchaD/tMNgS19a9azG07qwmA5iSspIZoXZoSlgeqTaSZIfKApGO3IGPcyQtcXqsjggdnUL1sQlY1lNlhXvG1Zt91Bk5LTEymgbcZ5gcYmVGl711Qax5ijJOJA5JeR+XQ0wu8fbfnvG9b/sNRhfUWs1JWUfRcnKBLOrOHItZ6/pPaxfMOF5oObFg1rqGrF9rIxCdqEd1p5WPiXUank6GfJaQtRaQXijN6qxC7meJbutoqtOvdlpAWfugsvU8c7+j7/RSuGi2Bff33riJXLIW3b6uC5vccVE++TWX+Lw3O3t+wKpmxDtUOrwbYRxQ6akGZEG9R+QI1zmuTkfFvIAYwhxZ9Gi3xIYZ9dIBXb1ETQtkWUk7HaU6Va3VOl125K6QZKSTOSsTzGa8/bfm/MyTTzKUqbEUUzHvrYihsxoS3N25eOHx66LZ14uxLUU21/TmrE83zxMvJusAip63vAa+5vONVTZkqfwXP1h4ZCb8ic99kMdmz5E6nxZwhHTDSb1jl4RchWzO4XVp7YT3m9id3DEU/00nPe7Qgzwr5EcEq85Ymk2Ph47stu6F3rdIrB1RBodqrWYvFUQ7/tr/V/ngwYcu0+ai2RaEmPVq4nyJWaLeir8fh822Ofzt0VrAVCdI+KqP7vm9l3YZc8GAS9kZJTF4SxpbVWcuTdI5WAmXdo3kwkBLO8Tg0J2dSbA4GIVOHVMjq7KXWxjp4dgGiixCFaOjdRXLqdVEejgpq1rQIsxmiUEqQ2kTwC61jlE3a1tuyVMUzjDCjsDCjYXD5SkVLkkrLtiLsijG4gg+4goceut+eKlpYvzgE5Wf/M1DtttEb7MpqA+bIuSbtEM/u/g7xMB0t7zpgR3+wBse4LFLMwDchZQMdadYO++7udlSh9FloZjQp3bDStpSwjKCeosITNraBbu11W9cpm6EUKVV3FVtopljrNuAOo5USFk2E4JhbDmvhWkVMyuuRjFa9x13Wm8xp4pgCToRTKSltaogSZglYda1VLG//o+f4t2//cxdnyPndsf/otnXK3rT08TlDH/s4y7x+u4Gwzwxr9o6m2KYtfHGcPx6T7pS6PoWnu6SSVOBcHXIOWEOc0kc+RFuiSSJaoV52oNrir7WWdUFy9GZ5cwgFR2VlAV3o46tWUDHHGdgeCqTH6kMQ8bngthAur7H2C34Jzdm/KMPPstY7t/pumi2BS0ya3ulftPlywHkjuP4nVadt4WvTaSKtAUVVcHo2e+MP/8lj7MzLEi5oNmwWlDtWY2OoK1oe7qFyyWyFLyMkNuIgiREWi2+URzoSNOBV0Zy7SENx8dnPcnAvAlNmmsLufBETQu0dIgofcqszNBaISVEFPEBpwPPIEZij1+8oXz7z/4GYxHUx/aaMK1W335e7jQZPL39otnX6bFLkOm+w3Fkt2z1KNwYoSAGvi4UBbelKK4njtvJ56dTOoWzxatNquzp8y9npTFuKQKnvp1toXL7uduPb334KeBr8pn8TlfW/eGi2RZ8aCaE05pgW+TzVh7kKz/lIR6qhyx1wGTWorbESCREEl1ySgdpKYxipFxIai09eTXDfcArpDlYWiECnWSoA4MnTGaYjKSc8IOR2iXm0sPunL/6D55iYYabI9pqrbbUXLtNVH8h7nacOouLZl8vxramdeFNZB+s73+nmhJs/TQVriThL335w/zwP7rB239jhUhCqCSEL/uUOZ/ysc78A0vGq4LmaWzLifpUpX8ASgXJUBfAXBgPEju1wkOwPHL6XiidkL0tio+AlNQWBK2iXXMASs30qTJk5Z2/Dd/9c6+OwgwXzbYgxKxXE+dKzDptOCq6cXhurz/QnCBR6Fz4G592iRUtDDQlWMnUIW7KqxeD1ZjoegcxZiqT52Woaiu+7a316nKlrLKzk5yKMhenU2Eww6rTqzCKs1ok9nadWXZ2RLFBGKs3UaIXFuYkE+gTqRrmcAshexuwCs6iCpeSM3hr3bpHq1Ok7pTsOEqqzuERvGa/hVEf4OyhPGGZr3vb03cMj9nUu1j7mnIsYEVk1v3lwXnm89/8AG++ssvOfKrfYU7Xt1pXXaKtqri3yGTTKeqvxWSlabXRtU1UO45vuCKOiVLx1iFx7YC35XPSFHJfrKU5VAeT9SQS3GSaCDuIUkVI2iYsTfw1+pmSUqJTRzPMcyZ3CVHjz/7Ar97RwT8ZVXkspkZk1v3hjXuZL/z4HV6jKyqGe0ZzJUumjhXBsayti11aMXrPThKKDxTdYccdNyNlo9YOR1nWI5Iqs2v7sL+k7hogDCun2+mwQSh1iVHY6fcYlhWTxMyVej3Dg7eodQdnYEwdlMQ//O3KO64fsTIDb93u7hcXzbYA9LTgsBajtpWorZXlbcd8K3Dm2EGfBC2z4406iVltvxaRNUrHJ7z+Kv/JZz3KpfoMw1ipPiCyj3E4RTq02DqvStI5pkdkZpgXJI2ICd4J7h1KorJEZQ9hQZZMGRVNipeC2wr1GcgCJnFdbY5ZqyeIFiRVzPvWNCUtGenIPuCyR3K4xj7f/Hd/k+VQUDd8qsPWMsCagM8Z5+luuWj2dbuYNflWm8gkNsrnaTHIp/va6fS8zePbqXvtzW57bFMcfSv66bZuf6eZBLbj+kq3pwdOn+1kpNVZoVhwx3ILrzQXzbbg1TUh7ES4JM6nPn6Zz3ytYOMKug7GqUwEjqaKMKNmw24WsnewX3Cc2WKfunsDpyOn2rpC24D7VZSCpUJy5ZdvXeJn332Np8aKm1NESObrdUdOVzQ8HU14v+ZjF82+7qdtrYX4zRsIW7X3Tt5bWwSXspuMT3psxp/4dMVXK+oB7FyBJa1510xhceRoD6sPCLsPwLDrjM9Bd1Whb13Ju1Exo4lYN4VhJuz0bTH7p34t81PvevU1yblotgWvrrHrw51zLWaduQ/rgO/NcxAR/uZn7JGsdUY9MDB3uqytVhDOcgU1Qd8JYkaeihwvvDLX3DotiaBVOKJOAoGSxJhNDtdQocNZijAnMRNnZcZuJ2R3Okkcjc5edm4NULPQ5XYDPSqtMHeZQkzz9FEPljDvlNErSxceSK1z4VyEG250ApdEuHEg5EvOJVGOqOwA//5bjzCrt5+gbcFqs1k20VvbqxEhZr3y/Dsfc4XPeP0uc00MFXKiTdbEEE9NxVLHTEk0h76Ttkqcu9aWt8JmNptlHXIgkzgmuLTUwSI2tQyf/nm7WQLI1BWxOGR1VBKOY8kRTUgSugR5SjFMfcfX/NC7GWq9PX2JszXV9fYQs+4jCnNNfNprL/GHHyss0xG2gn45p14eyVXxbsC9Q1zoVfARpM+4FSQpmFO8UhXSKCx7Ye96Il0eKNYxiuPVgYRqbWlaxZHUIytFtWCrXcp4gOzPGd15rsz56ScWvPdggZVmBUJLabuf95uLZltwdprhNutt5rdPhk6LWb61nfXf0/N1HSQ1LYQkEaonNDmP7vV81ed9BPvyFH3dYRADbwtOWqZGE1YQEVQzIgqyQunxvJoWpxT3qcuYCxnFOUDYQ2qPcR3TDsGgZFxaOmN1EJwqrWuxW6JXWgq1G8t0lV98f+En/8UHePrIwUv7zJvP+PyphPeS2nPR7OussWtTN2v7HG7lt55VW2p6LbbrRq3FqU2B9O39OH58Hfl1MkpKNotxZ0VbbR/Letv2At66FtbmsfuSGPjyctFsC149ftfzoQL/+adc5mrKaMnYakBKZXyw0tuA5R496LG9FUJm5pXO5gwoR7rLr1w/5BefPOKDBwNDzcBqkw2xjgDy9eLBxJ0bHZw9Dj2fyHXWa53FRbOvl1KPDe5uvN9+zp323wju4puOpsacS93A43vKp/+ujt/9WqFWo5+vSGPH4XtH5h+d6KszXDfkI4Q6NE/ZaseyJFY24++9bcl7DyrP3qGUzKuFi2ZbcD7Grg8XzpWYFQRBEARBEARBEARBEAR3g77wLkEQBEEQBEEQBEEQBEHw6iDErCAIgiAIgiAIgiAIguDcEGJWEARBEARBEARBEARBcG4IMSsIgiAIgiAIgiAIgiA4N4SYFQRBEARBEARBEARBEJwbQswKgiAIgiAIgiAIgiAIzg0hZgVBEARBEARBEARBEATnhhCzgiAIgiAIgiAIgiAIgnNDiFlBEARBEARBEARBEATBuSHErCAIgiAIgiAIgiAIguDcEGJWEARBEARBEARBEARBcG4IMSsIgiAIgiAIgiAIgiA4N4SYFQRBEARBEARBEARBEJwbQswKgiAIgiAIgiAIgiAIzg0hZgVBEARBEARBEARBEATnhhCzgiAIgiAIgiAIgiAIgnNDiFlBEARBEARBEARBEATBuSHErCAIgiAIgiAIgiAIguDcEGJWEARBEARBEARBEARBcG4IMSsIgiAIgiAIgiAIgiA4N4SYFQRBEARBEARBEARBEJwbQswKgiAIgiAIgiAIgiAIzg0hZgVBEARBEARBEARBEATnhhCzgiAIgiAIgiAIgiAIgnNDiFlBEARBEARBEARBEATBuSHErCAIgiAIgiAIgiAIguDcEGJWEARBEARBEARBEARBcG4IMSsIgiAIgiAIgiAIgiA4N4SYFQRBEARBEARBEARBEJwbQsy6S0RkJiLfLSK/JSK3RORfisgXPs/+/5WIPCkiN0Xk74jI7JU83uB8ISJfIyK/ICIrEfmeF9g3bCu4a2LsCu4nYV/B/STujcH9REQeFJEfF5HDaQz7sjvsJyLyLSLyzPTvW0REXunjDc4fIvIxIrIUke+/w+NhW8E9E2PXMSFm3T0ZeAL4HOAK8E3Aj4jIG0/vKCJfAHwj8IeBNwBvBv7iK3Wgwbnkd4C/DPyd59spbCt4EcTYFdxPwr6C+0ncG4P7yd8CBuBR4MuBbxeRTzxjvz8L/LvAW4DfA3wx8JWv1EEG55q/Bfz88zwethW8GGLsmhB3/1Afw7lFRP4V8Bfd/UdPbf9B4L3u/uenv/8w8APu/toPwWEG5wgR+cvAR7r7n7zD42FbwUsmxq7gfhL2FbzcxL0xeLkRkT3gOvC73f3Xpm3fB7zf3b/x1L4/B3yPu3/X9PefAv6Mu/9br/BhB+cIEfkPgD8KvAv4aHf/ijP2CdsK7okYu04SkVkvEhF5FPhY4J1nPPyJwDu2/n4H8KiIPPRKHFtwoQnbCl4SMXYF95Owr+BDRNhWcK98LFDWk8GJd9Bs6TRn2ddZ+wUBACJyGfhm4OteYNewreBeibFrixCzXgQi0gE/APwf7v7uM3bZB25s/b3+/dL9PrbgwhO2FbxoYuwK7idhX8GHkLCt4F7ZB26e2naDs23mLPvav2i1Z4KXlb8EfLe7//YL7Be2FdwrMXZtkT/UB3DeEBEFvo+Wp/o1d9jtALi89ff691v38dCCDw/CtoIXRYxdwf0k7Cv4EBO2Fdwrp22G6e+zbOYs+zrwqNUSnIGIfDLwucDvvYvdw7aCeyXGri0iMusemFTM76YVW/tj7j7eYdd30gqtrXkL8EF3f+Y+H2Jw8QnbCu6ZGLuC+0nYV/AqIGwruFd+Dcgi8jFb297C2SnSZ9nXWfsFAcAfAN4IvE9EngS+AfhjIvIvztg3bCu4V2Ls2iLErHvj24FPAL7Y3RfPs9/3An9KRH6XiFyldXf6nlfg+IJziohkEZkDCUgiMheRsyInw7aCF0OMXcH9JOwruC/EvTG4X7j7IfBjwDeLyJ6IfCbwpbQI09N8L/B1IvKYiLwO+HrCvoI7813ARwGfPP37DuAngC84Y9+wreCeiLHrJCFm3SUi8gZaK8tPBp4UkYPp35eLyOPT748DuPtPAf8z8A+A9wG/BfyPH6pjD84F3wQsaK3Fv2L6/ZvCtoKXSoxdwf0k7Cu4z8S9MbiffDWwAzwF/BDw59z9nSLy+0XkYGu/7wT+LvBLwC/ThInvfKUPNjgfuPuRuz+5/kdL9Vq6+7WwreBlIsauCblAKZNBEARBEARBEARBEATBBScis4IgCIIgCIIgCIIgCIJzQ4hZQRAEQRAEQRAEQRAEwbkhxKwgCIIgCIIgCIIgCILg3BBiVhAEQRAEQRAEQRAEQXBuOKu98SuOiJyoQi/T/6U9CO64AO7tb2D7GT49x+Xk9jux3v95jmja615QwF7gff2eX/WVxt2f/9ScQ07b18vF13/mG3CroIlhCVodZk5SQdxQVXCnV2dpHeoDu13myISCs+tOFkXFEFdEC0ck5uJQnYKSTeizcaM4P/vEIb/w/ucwV3RjTYLjyOZnY3NNrM8BUF/APl8JLpp9JVEHEBF8PU5NrM//2vrW49Ppn+vn3kaGz/i4B/mitzxMjzBKYqcHH4UCZIGlVxJCsQRWSQnKCCoOmnBrVqIiFAS3NoZaqVRzalW6bIg57kJxw92Z4YwGYOCKuZFEcXHyZNfF2mdwc1KCEUHNqUxjtilObe+vgjoUg6qFpw4yP/z238Crg7bPv30eTpwzEcza+69Z7+fC5rlmdqFsC+7f2HW3/NB//AlUNyQnxB1zwTFScbIIsy6hYnhtp7664NT2xRhYVbR3kk5jURK8tNHJ1jZfKiBUd5JDrQ4KKSXM29hoWRARhup4DzklqnbUoxVWnPEA9i8JaZb4j77/XYz1zmPdKZu563Nx0caue7Wt117d4fd99MPU2gauaoKIYa4IjiQwE1Smc+uOu6MKo03fv4D42sNrVAMXx625d+Zr3w9wpzo4gsGxzQhUX4+xgrP+Xtuxtb108xqu0jxKWd8zARFUwEUQ8emnNJdzel1V+Odv//WXcprviotmW/DyjV3f+A1fzaos8Lpk9dxzHD59RFnNSfuP0n/ka7h6ucKta9TRSbuXePq3foe+u8pOvUHO8PinvZnKwyxXK8qoLA+ewnLPrZu3cKvkecfhqoPVM+RZ4vD6itwJe5d3WR5W5gl0NqeOjnXCrVu3GIZCtzNjdbhksVixWozI0RGHy0LPinzlMqJQ3QCheKIc3MS6OdUdRfBawUG8Yu6YOe7wK7/+NL78IMO4ejlOH3Dx7Ot+3RdFZOObrdn2TdZzUvGT87m1r5cQvv6TXsMf/6Sr7FxNvPU3CzdqpdTKXpc4EiUXuHEwkF14sFcenMOlzmFhHLizVOURhD/yM+/DvW5e/dU6d7xotgWvnN/1R9/0GJ/3u2+R5BJIYTkYfZchzxGraO0o6QhEEVf0QLDLgDk5O9mFo2uO7OzBpSXqGU0FakEMxDIpO06lWEcnBWcE32XMA3UAkUrKho8OFSTNqD6CK2KGCIhWkI46FLSrLGumpIHOe6pVhsMVve9xrXuAb/tHv87hUKY5x9qRB1WwtR9wD9ytfb0quhmeNhydHCFZexWcEp8mgWvzwKmPsBa+5AUkq+c5njZZOvHaayfHj49J5MTfL/LNMP/QiwxrYmC6Oz71sct89uNXWLV5Fw7MEMaS8HFkZ89ZmpAQ5skxhFoT43JgvisUVzoRqjk7qdn84aj0swLT82YGKrAahWWCLIYCh658589/gKNamxgy3ejOErCOH311CFoXzb5UtX2gLVFKRLC1sDhtN3zjJCl3EK8mXnel509+7pu5ktfjYMJrxbORRTERNEHOYKaYGbUq7mBWEZoQChX31CacVScHTVA3xjFRxtJECgb6lBmqQS0AFIQOR0i4O2YFI2FmZE1UN/qcMCqgTcjzJoiZKKUWUtL2md1Jsh6226S01matS6n85L96ivd9cHG7GHhK5DvtZMopJy/ErJeHv/0lH80DVzIpKw7U6TtQ1WaPVhFX+iz0Kqg61EzBqNUwBKphI2hS8kyp5ojQnCbXjVhZbSTVTDHDtDlUYgKdIKIYjlalYhQ1TJWUO7RLjO6sjgosC+MC9i4nFGGn7/jj3/uv7uz+r8UNX082746LNnbdq2196b/5OF4dA9J0bZpIc1Cnl3KamKXS7Ma8CUbr8VBEqHUSjhDEK6PL5M5Ju5dOQlma7mjVm4hlMolQ7pTNuqZM/h4bgctEju99kx8na9udjpEkKI7o9JVuvZaIgjhmQsqTOCbCP3/be17iGb8zF8224KWPXSrCV33x7+fGgaHMkN0HGMcD9t74GI++9gosR8aquFeWywEpS2R1xLKb4ddv8oZP+mgOR+HmbyzYWz1JLSu6Pbj0pscpe4+zXC1Y3LwGnbMcQcqCUjt8WOGpJ9UFaGKW50hZUgxmvfL04YCroXnOcHTIMAwA1FI4vLnkxpPX2Xv0EpI63A1zQx0W14/QyzuYV6w4TOKVmSPiYMei1rvfd8TymV99Wb4HuHj29XLdF2UKjpgGFjZKtnCbj9bE8OPt28EWgvDITse3f/breFAT0kPphPcujGtLWCwK+zsJ7RJSRq49U3hgt+NSdi7vdZhXdpfCsz4iLuQET5vy3e+8wa9eu4VPssB60frVxEWzLbj/ftfHXOn42k97Pd3sFq7zJmwDSzN20x6iAyk5o0AxJbmQvNCNewzzJYWEekde3GS2uszqNUdInTP6AvEZWQtWl8y7PWCJj5UVc7wWMkbOO6yqYRgihVEL3dLp+xlVaYvbphgj5ivcduiTM1JRYPAZRiExwsKpoqz6inpFZJ+/8jNPc7gcKUxzX/fj+/U9ak7nW8xCTkQ6nHh00rFka+/bIqK2xa7j93jBk3hiny0HaTNR3YqAWT+2dps24teWhLYZ9ERO/H3iw7RHTv2u0yTxlScGprvjaz/99e37r80hdndUFBUnqXNzzHTLgZ09wVDSZEeHS9jrnVmCI1dEnGxNPEgU3DI7M6eYsCtGMSgOhjDgjBVyUkRBrfKuZ4y//2vXWkTN+vNyUl89aWXNfu1DJGpdNPtKqutZ3DGnFcXNUr+f2Ee2J1so/82//VE8emWX4gVzw61FpRSvIC3ST0QQVSQ5aabM+g6RwtFNoZhjpUVC1SnixESp1dq4SRObcKEMLVqqTy2uodRE8YqKYRWy2kacatFZLcqrupO1TTSqgPt6/JWtKIy2RrmOmVCmWAgBmzLbR8BqJZnRoQwIJolv++lfv82AXU4Ox9sC7TYhZr14/sKXvok3X5kzFGfuIBlmKYE4BcAc0SYKSHG63L7hrIoiFKtNWEUwcXw01BK1MzQBLi0CVQRkJJOaAGuGlSb0FndKrahrs/UE0iXE2vhXR2PMtOPImSrOsDRscMqRMd9V+i6REBZe+KoffDflDhaxfW++W0Hroo1d92JbD+33fObHPdqGMpsWHGXyiNypNnlhbXWFJIJOfs/oThZnnCKual0LUe15giBJqNVQmvDvgNv6virUyfuyafGo0ISAtYC1GRPWC4woRhPPRadHZRKypiGt3ZSnaAxtgpro9DftnqwKTFFdos1O/9l9ELUumm3BSxu7Pvvf+H181ONvQq529Ds9l6b7SqkDR8/d5IGHLuOS6LqO0Sq9Qp+FxZjY3ckcrISj9z7BI5/4ZvZnl5jNhK7f5+hQufaOd5Jm17n6MY/hVx7n8JmnOVhWVGBw8OEWaM9465CkI7t5RvHKSjqWy4F+Z844GsoAbty6uWK+m1jcGrh1eMhqhJtPXuOh1z9CGQfMmkg6PrfEL+1idUGpLUJVc6YMi/ahzRBkErSMX3nnexjGw5flu7ho9vVy3BdPi1PT6wJnb9vgvuWLwE7KfMvnPM6VBH0xrmriKFdWmnmyVG6OxtyElVV2esEH59pz8OADyp7CQzPF3cgr5yhX+io8J8J1lGcOKw/OM3/lbe9nsMJ68e7VJGpdNNuC++t3ff1nPc4nPLikSo9gVK8k6QBhOSzp+x2yNK1hJYWUEq4FypxsoNmAHtKS8oEeebTQSWLwEZNCqjvMZKCYkqUnJ6dWo8iCoWSyKyaGSof7CEDRFX0V3HS6Nw8YMyQ5tVaSJSoDlvbw/Cx+2JMKmPV4LyzzQGLGaAPUTOpG3vNcx3f+3HXAMC9TYt2HkZg1BYPf9qFfMIXwNgFrmmSdEbkl0wrf852hM0/6Ga/1vNtPcSKK67bnPM+LbD1k93kAi4Hphfn6T/9IVuZ0qYlUpThJmgM9U6OgLAw6AS+CDG0GcHm/snDl4MDY31FchSTOTJRCs/GKYCtnZ9biMd2VLsFzS6dPULU576pCFqFzZ6bCu54e+L/efY2KnbDd9Y1vHcOyHb31oRC0Lpp9bcQsOL589Xgs2r7cTws0CnRJ+Mo/+LG88WqHi1Ex0vSMw6Hgpb1Un4zUZXyaXKEw34XZXLj6cGJcZH7niQVWFZuiJ6q1yeE6QkIcijhqMK6c3V7ohEmUcqpbm6Sa47WFBRqCVWtTTBdyElbVMZlSJdYpQ1sOn6tQSovOSOsIWWUSUWWTeuHuYC00f/BKR4vKOLCOH/2nT3BjUVpa0WSwJ6La1m+3ZeshZt0b/8+3fQ7jwcji2orhYIksS0v1cnBzZl2CBOJOJ22yb9MIspMSWTbhMS2gT2hqgENdGZ6d1E2PW3sdMMwgS0a0jT9enVoq7i1NMamTUFBB93pWRyOWwAfHBifNFc/K6E6pzrh06gJm+4qosSNNjLuxUr76/3wXL3SzDzHrhfkjn/qRlKYG0WkTF51mKyZG9RbphK7l5hbJh61FQ8fa5c5Yp+vV16k7zblbR+JXXwtU6witKUWB9Ti1lsnbz7rOT6Q9x6WlNSZp0arHlYDcV6sAACAASURBVGHlOLJTBTdpz1Pb+ITQIgJFDWeKIMxt3CHp5IQ6S4df+scvn6h10WwLXvzYtbcz58/9h1+K9zNq7pjXFUtzdL5PVufG7zzJ/oNX6GYzyliZz5Wic4REVqjDgNsSL5Ub73+W133iG1Hp2J/PUN3hkcfeQNl/kHf/4r/m8Nd/ntnlwt5rrrDzyJsYinLzuWcxd1a3Dun7xHjjOrO5cuAzjg4HciotsrAKq7G2OGjtsWHJwXJFdefoaOTg/R/g8ke+BnMopYL16FxYHB21LOzqpGHApaVTj2W62TsMi4GjofBb73sfVo5e8ndx0ezr5bwvnvBdthY51mmFshlr1mU8jkt6fM2nvZE37ykzc/ZThnHFgznzFG3x5jlxFiPk6izc6ATG0RkWmb0rzoPi9EAnwsKNlTmHDmrwbNfxxOB88qXEeLTiR95zk3c8dWszhvmUrnq/54QvxEWzLbg/ftelvMPXftpreOzhJdWNrB3N+3VcHbFEqSNImhaMjSIZS87umDmQm+zmXYyeJCuGxYKd/DAlH2KkjT+VqtOWiEdSqtiQcDXME2YgWhFPuLSAGcFxX6HeYeokY8rm6KlSkREkOeIFHTJHpcPnS7J3rLTg4hQ3NClYQb2SJbGqHSsy/8tbr3PtoODUdpt27sliz72YNf2x+dTrqKi7FY62Xpv1KzRHRVBJ7KTMF33cI3zSa3s+4aGOB/YTO6k5Xe4GnptzNk06MaGoNQUdwaZVOnGhVPiVpwbe8VTh7U/c4leuHXDoI8k3vtxJIYvbB83beaEaXJMjxskk1Jc6sMXA9Px85Se+jsv7immLWnEVknlbiV67w+5YdjBlOUKWVvdKpaXkKMqzB5nZbESWiW4+YDmRvNXPUjeOBmXWO+ZKdnAxVmNity+sTCnT6vFMoFNhGMDS5PCL8K1vez/IlPo1HbueWs0RFJv+e6W4aPZ1QsziONpq/SllaxtMcydRvuKzXs9bHtmlemFZK7uzOXhLDjSHrM6qtMpoKTlCZpAyTfqUlBSXiiS4NBeOVrBaKmVs40yrjQXuhltbcVYEN2McpjpZ0qIJfZrMJ2tROKIVswQIxZ3cgpExXweYTRNPhCS0unE5oZoYDMTLFL2RGWqhVmvpPNNcd133JosASjVD0jRBtebwLc3JAodj4vv/6RMsx3oy2I3jVM719hCz7swnvm6PP/0H3kDKwmwOoymXH9hjti+UoTA8s4KjgtbS4uymyMEu68ZmzZ2cgFLpu745PNbsNaWpbpIJPoKpM3qLw+u6xGCOTvaTEPCKSKIUAzO8gHYtAkdzIlFxU5hl0t6coRakOnZUGBZjux46Zzx0anXmPdA3EWRPhSTCkRd++Oef4qd/9TlMzta0XLjrulkXbey6JzHrU16Paru3dNL8jFKnOHIVUEdcpkWdSWSyyW+TKaLKnQqsbK33t3topc3h0xRVZd7qTlabxgpvqYs2iV5rUU1oEcxMmtmUHbgRzbx9yPYdT7rrWgQTwKX5WC26DEh6onaWTscgOJqlRWiJrC8OEHh6Ce/9hfdi9aXVN7potgUvbuz6yi/7o3SzOZd7YzU6ZX6Z/V1hdesIxMhpl6Nnn+bqR76WmVQ6gaPDERehnydElKGOzPoZ1ZX5LPH0E8+wd3UPQ+lnOzz8yB6mPbeOFoyqXL36WnDnA79zjcUHnoTyHLq3w97+Lv3/z967x1iW3Pd9n19VnXPuo7un57FP7nIpUiRF6mFHkUTJliVHEhHH0AuRDFsxaMsIbAWxAwiJHTh2YEORgxhRJCOGkkg2rCgBnD8CwzCsxEgUKX7EchCLskE9KFEUH7vc5c7MzkxPP+7jnKr6/fLHr273zO5yuUtSNtjaAmZ6err79j3n1q361ff3fVx7G5t7txAmTjYj0zQSl1ehrNlsDRNDa2WaMjUXilRy86GZSGyf/yTpynXoOrRm8pSBQM4TpYwIgbLJhC4xVaibLXU7oTHSz/zw+fGjidXzv/55vRaXbX59PvviQ96cLwOydoD6uTXHA9YRF8P4iW/5Eu6joJG9APNZR98HhvtrShHudUo1OGuWIVYiWyZmCEf3C/sHkat9otNCxL2P7sTEVDMbVRYEDpeJkCrrdWDRDYzjmrccJK7vR/7I33+Rm+s1NLk2Zv/aQK3LNrfgC3tmvN4l/vL738VBPCWLYnFCa0JZkPoRKZlqhcqSji11C7O9BQEhS/YiBSVaYZsWDHSU9RnhrCM9liEkyAmLSqhKNmOWCjr1xNg1X+fMVic/X2qkT3NK3WIaCLFi2446bKkkQshEM/IK4hghQT/bJ4ezZhGSKAjFRvpQGc0Qm6EyuYWEVKJ1ZB1RSSCZZ+8v+cl/9qID+/wOAbPCrtx8g6DVxY89fN2LbuBrnn6U733PnK95oieEiGlFA1R1ror7ukAVL7gfROVLYysEa4enHbSonAMT3qcMiCiCF9QJIYoiknj2WPnPfv4mHzs+A9SbL81j5uXjQQnjq1//a92YV//aG1nk3lyYXnv8ua9/mpNVZBa39LNENqOP4dwXyB44qOcipGjn8ocgLgVL0UHQ7TYw7zLWB8wCOhbi4FLFsjHm80gx9+6w1unJRHSrSPLHTE3fPFahiyBELDpT7PZW+KlffL4JVo3mSMLuuPEgOPCvykvrss2vGKK9vNVgIbDXB84yiJbzr0WBP/773sF7rg1EgbrrjKhh0Q3SLVYvTNRBAIB+1iO9slpPYBBTagc9GJIRUiCUyvo0ULViZg4qNeAr7FgRNTCVgtVISIUYxPs3Wsk7QDb4Y6iZSy6AwYRMIYl7GwW0FVHJD41a6Pvgz116qinzlNi7tuDW86fUWimmiHVEqgMLzUg8pICWiuykPOKHYtOChACm9ARORfnv/u+b533IV4ASvAlmvXz8R9/yVh5fzJkJDHtCRkhB6DqXsS+vLVhcm1G3lXK8xU631KzEGF3ipy4RjcFZpBUjiNEpxFhJqacWZ/6lCFYhmvup1fYqBSohJbRWZ9QoBMyl0jg7J5eCFUVCRARmVxeQlWk7MZkyHC5BKnWjlDKSVwYWqNXYFp9TMeKmp3NAEj0AgToJf/ZnPsyd8ZXr23mDjNfHzrpsa9frnVvf8d4nmS0TYi718k4yxOAgE+JSQ6+BHNAq5u/x3X3dkSlzA/YrjjDVZoTnMkU7r/9spyGUne+WG8RzDniF9pFzYMkaYOXG8NKYXDRWaAscCMA506I1T1s4gZqvP4QGVrGzu4DUhYsGhTQpRrhgev3Kb6xY3/zU5/xaXLa5BW9s7fqq976Lb/3W96GbLSZCPsv0h3uEXKBLBOkIQ2CohWm1JQ4D2mrsmDrmobBMgUkGjrdrghaIHf1yyfrefc7u3efqk4+xf+0q3f4NZNqyHitmW+bzPQ7mEVscsjrNrMcVx8crpk/f5nBvy1ve81ZW8gS3br7EdnXEqhizCNInNkf30H5B2W6JUThaG6JrtPpMfv7jd7l+daTGpVtGnJwS9heUXLFSKGrkqRJiYHuyYdqOpOWMKL7P1aKYwG89+0nGk5PP+bW4bPPrC83Merms8NXIBoIwxMiP/t7HOZzPeW6q3lAOypPLnsW8Mt7O3J+EowApRTaq7KcEM0/BODles14nrl0TFqb0iu+rNXK0iGzVKJuRarDXJ6rBO68tmF1Rjj61pe/hXWng/qHyn/7cHf7F7ZMGzMPL1QD/qsZlm1vwhZlfS4HAjL/67W+ll2NC7SFUYooUE6q4D23SiRoCVmEeAttxxbC4ApKB2Hxze3S8Q1o8RpHbhBevww0hSHYwqgIyw6wQO6WS0a0whJ5gFROlSE8ZK32XGQhsNUM/YNOKoAMaziDPCKsEEpnmkHqhWibSE3APLNHACkFswqySZURC55YjJkiFGHvUJoo5WyunyIbAj/zsXTbTGzNR+qIFs4BzrwXYFUEvA2k+A3AF0HUD3/Gex/m+L1/wyEF0Vos1UqgZVS/KGNQp8tYqIrVdIo8XuqpuJhqs0oWEasEstALuopO480uSxn7QlpgT5FwRhARDS2DRg1jkxz94xt/58IucZtesni9D7TIfPLC9vtfIC7/XWskeSlx7oPvw4HhzYfrM47vffYN3XZshKmQRVveVgytG6gS3NVI2RObBQLR1lIVahS7V5s/SkSgUoAvGuka2J5W9Q2dYjaeBxayyrcLQwaRCl2A0YwCyeWdbFIboc7gPwkmBvlOCOT8sC8ySoBZ49rjwtz/0wkPvlx1N+uXAwG83qHXZ5tcuzfD88yD8lT/2lTw27+j3Ix/40Q9iqrztkTk/+E1vZZqMXIWuu3gFdmtN6gKLZcVGJVs8T/K7cjViVGqEWTcjdJlpDccnhRQDqoXtqIQSqBb84KagVUnmXkTSJD3bAkPyY2UQ7/zu1oLa/IMEl/LsiqNqQgqBPDkzrJpfp+EyyWpw/QBWtWfcFvdGCpXFvOP+MdRa2XnVWIUNhVno/OrbodUCxFKRKI1eHQkmhOYfUk2Zi/H/3VT+yW/cdrmlXtz6xrC5VHML3vja9f3f/BRf+64bmCrb7UTdKGENeweB0hlGRwxKDMJwfcbe1QErlXw8Ek8zTJXSgIqqzkJ2H6HoxqCGN3xq83DrAsEgmiJZURIEB2e1+fgF2XWOHeCIQYhWMQJqQikVKxVJkSDRf0EMDnrOOrqZs8dsq+g2kzeVWmFbOmadkIKi4k2pKUcUJUXoQmToApIq3/c//zr1ZfvdOThhb4JZrzW+56ufpkv+Okrg3KS6WKCPds62q3hARQjCVJSqLksuzeh619QpO9YoYOpgqDXD9XDeZPS5ksSo5miVMzqbb6m431ZV3O9qx9RsgJYTLAKl+fhZa1hKbJ5c1h5JdvB4IARnfzlmFs6bAVoNSX7tof0uZ2+13xUDavDLv77C7t9mO27f8Gtx2eYWvLG160994HsgiJuth4laM8iMrsOTobs5Ij0z2RBWE3JlgWWlaOFw0WOTorUis4FtLYzTRJc6JERqUY5euMfeYcfe9avsXT1kGhXNmSkIV248wkI6CgI2MeWJ09ORk7sv0d09Yq1zlvsdJOXgvb+be7duwnTGJu5Rx1PKZiIMkdXZlr6DdYnkzRZEyKsz7jx3j8OnD6gVxtNCXPbkzUjVCVVFq5I3me020+3PoJQL6XxretdqfPhXf/lzfi0u2/z67QCzHvTLejWfrCgd/8O3Pt1CmPxPFBgwrrdwnuOzAiRuixKHyCLAI8vE1AtME8/+1parBx2zwQgFtFT2Y2BlcNrBukIukXkX0Txx0MHi0SWzULn//Ja9LvJ0Ep7XyqfOvKnzIx96kftTOW/OvJxV9ts9Ltvcgs9vfnUBkrrn53/+b30JN2bZGVFTJc4iRSa0pQDS9UjxOh6EoEopSjckNAZEMxmhDwNxvSKkiXz7KjwqxH5CJGLBMALGijhF4kaxtMC2TrBBhKgTOSihdiCb1nTESTqmaBdcUjgf6HRkZHQLkeTm8yYQpzkaTzGNrMuEDJVaD6gyYgaFQrKeFJRSnXkfrfNG5BQYI+Rh4if/8cSz91+/dPqLFszaRaN+lu+/+HcQ9vsF/8H7nuDb3tEzpOgsBPNQ+FI9bUugeZO2olU5NzRWmh2CeLLIbniCuPMPpPUNtWnaA+5Z5GkAocXt4swJ9z5uxsUOanUSKMXoe4itSGoPjyH86f/tJT700jGmbj7ykF/YyxbaV78pvGFIfudDtvvoRd6bC9NnGv/JNzxJsEBsAKsBSGC7UoZYme0FJlX64EbXBaMoQGCIHl/fBd9wPOXBk+j6ACerxHyRiRKRIkjOhEUHZpTm04FBNMHz6pQyRfYGl8lsceDK2YHuJzNESES6CJtS+IkP3uVo3D6wyV1MmtbA9m7gbyOgddnm14NgVgrCj3//V6DRk9Wu3oDV7Uo15eSosDoFpDKNAZKQyJgFj6XHmVkhFiQGUhdZHCY/DK6N2Pl6NVsoJ/cLUFmXjpSEoU+cHGW0OBsLcw+YSsCyr0vTqNRqDLOOnePNSCM1VGcj5NK6wRpIsTEqHPHHqs9DB8MDPZUq4uaUJnQd9EE5Gc3T7ehAlHVWQrXG/ArnzItqlRQjgcB6mggpEmozCweK+AE5mqBVkAhBjT4qWZW/95FjPnFrzflyGIRa66WaW/D61q5/92sf5/2/61HkWsf6aCIRkKqUnMkbRU+F/aXQDUY29zKSJOw9Mmd+fYFYpdybkKO1swRCwCgUExKBrotUM4pAF4If9NUTumLvcnzJnkSowSWlIfgcr81/TULzYmtSNBeXJTAjK9Rc6PuEmfsv0UfiMpL255TTTFlnypixDPnUJRyhF0Lya40hUqw42FCFnCPDzAi90HeVsR/4wN/40KveP3udEo3Ltna9nrn1ne9+jMNrA6WtEbtEwB2g1B6HThrA3YqJdXa/PnZMrSqtcbiT/Tl7i8YXrm2LU9TlzHLReqkVrHnu7czni+L+SI2RhRk71Ep37C4u8O4qzobeaV1NhB307Q5+fk3VuDCBb/5fRYWYWt0pgDhLKzZPQWnAfgjw6Q3c/BfPAoVxnF73a3HZ5ha8vvn19e/7Kt77zncw6zticvZwl2j+UWAW6OYLui4itTBLMN7fsr+fqDJjlmAZlAlhNfr+kYMgkojDjNX9Y+YJNuPE+t6K60/doJ8tmEpFtFDrSD/MmKVAnrac3j1CT7N79rFP/573cP2Jx7h/NmLljPLsJ+gWlXrjKbajcv/eXVIycjGqFqp0TNstKQmqwtnpGWWcOHr+JsvHrlKyEaho7MnbM8ZtpWwLm/WK+cEcxFMRaxHMnLFcC5gY9+7e4cUXXvicXovLNr8+35peWoPFHvz8ZWOnzgHhyb2en/rD7+Xms8esqnFWhRojYpUEzMTr+HELIQU+tFWeOgjcSBC7yN6VjrNbZzz7KeUtT3TMZ8p4pFgUrohyuwbG6HXS9cMlh/szXvzUPZ6MwtmQSQVub+Ed+zMO9zpePNlw88hY9MbVKwMfHeGH/uEnLnaxB1Qin8PR8A2Nyza34HObX0LzSQaudT0//G1PEDuY6oYuztE80XWQRYnqDWtioouwVaEHejHydiLOe2pvqG6JOicFIdyvTEf7xCcyEgtJ1hRZMDsbMQYKPaFbEBZbNDQTUx2xGAk5km0iWkeKilTfJUd6uvb3WSkYIzFkvJT2Wk9LwUKHSEUkUMz3aNVIpeAJ5h1bNsyrUGIlWItbr2BWwBJZNhQqWhJ/8efWiNULxvRrjC9KMOszmb8/tNCIcGU+589/45N8/TMzj3VGwNQNj40mYzGCGlOjp+uuEMIjIv3FcFAqWiO9mVEa5dy5EO2Aya5goh3UPK4+4hHfZvoAzd2fa7eDBwx2pqFoRPB48i5GLwiDEduVC54YlULgw3cKf/ZnX+B4O150Enc00i/Qa7brSj74tq32Jrvh1caf/rq3MIvCpLAfBVQZImw10osiwVOX7hwJfSosl4JJbN1dAEXcGIipupm7itCJm8kGDQSFsimkZetunxrzA8OqUEyal5IfCLBAj1KisN4GuplRKxSFGFzyYaIEgUESE8bQwdlGOQuJn/iFZ5vU4pUb3o4J+dsBal22jS9KsGUv/NUPvJdUoKiiKdCLH5iuXBGObzrwk2vBTOklcnxcSL2zD8AByZDcdy1EIQRlmAm1wnwmSAxsTyuVhFqlFmefaFWqdITa0gd3Mhygqw6oTtsJQscQGwjqy6XLw1BKDc6kKdUZgw+8W6z53BRTurZejNUYJCGpEolUNdwJxKVotJ9R2xWErSSUZkovDpuqmqfZmXgiXsD9k5BzpscsRVQVEyOF3jvZWhAxhij83V874WN31rt7eKnmFrz62vU3f+B3ITFSVpnJAnnM9ANIH5lKpV/0jKORNyOSlbJWBoTDfU8PRLzgjldm7D26JA3GdDJhdydsk1GUWhULQieRLgYkFOi784XCSiCaYhUSRkyBGmDntp2CRxloMWdd9RFq86M8T7oUjAqVC5+uEBwViIIOYBoZT0dsI+RNxswYFh2WPKp8KtC1zqEzoxMleh5enTrmS0ODdwlnvfCH/uavfsZ7/dnYWZdt7Xo9++L3ffXTpP6CWUertUIM5w27PnIOOA8CueJ7Gq050lLaCs5mV3PQaMfcs+p7ZxeFSZVsTfIHEIztxm1BCLvHNGdCR2kNSH9atT2fC7pxazi1Gmzn4xWjNCDNayBnb8m5J5eqA1UEB1MIoEUJXWxsviZNFGcZuveWA26OdQl3Jnj2n3/sfFMdp9f21Lpscws++/z6Y3/0uyhjZu/wALYbMI+Gt+bRWLJwcDAQ+gGmTNcL6/sTy/2AWKRLQHaGMTERQ6RLlW1W1ttMXq0JKXL347e9Wz1uwQQLCZMEUrGUuLoXCast5eohw+OPsr+cc+PqAVOcoVY5fOQZpjKxPbvHFPcI23vcfu6I9b073Piyt3N8skUC1DIx1olSFc3FVSBdx/bshFzhpY88x/Lpx4ibkSJbxiqs7pyQzeU84DYnYyk+mTBnTezqfhW0Fn79w7/2hl+Lyza/viBphg8wsl5x3rSL2vhHv/09pK7jmVnl9ktrxmzcCR1xAFlv6bqOIcKyVmpWpOvI0SnvdYR+UNajMljk/r2JL333klwqm3uZWRAyyl16PnKcec9hxyNdoItKtEBdLJlq4eh4Qxm3PDPvCcvA7SNPh7s+6zhZBG6uC/2o3CrCj//iC876eYCldX5tfOGBrcs2t+CNza9ud/XmTL1//+vewb/5+JZKx6RK6p3c0JX7qO0TU4BQyFZ9fxEl2YBE6K1QxoIMCzRAjIVIj56cUY8j3VsSahvmq333MD2YUyNQMilWNsWQUHx/KgIV6BJFq7O+gtAxkkywbCRmpDRRaiCHEdHYLJDcMF7oIKwQOqIlJkCpVDbUWlBboBaoOtLFjmyTq9iCoCVQUWpYEXWG0pGtorUQdeAffAL+8cfvofbaosMvTjBrx8p62TtuZ7r52N4+f+t7n2QZIrV9r2qLeW9eMc0rrZkV+4E8GBcd/AcO6NZMadOuC2gu+akmIH7osrbBgMttdlT32KjmYCCe3KUaKOKHsQGjCkTdxVT7t5YSCMkgGF0rghQjhODpXxLoggMSKolA5b/5hVP+/kdvoebSNW9EXjBqhN317W7crlJ7+D5+xpVsB8TxJpj1auM//LqnSASiVAiNMSJuaBubsXVth7NeFK3CWALbjSAmDIuRfhaJzVjWJBDJBIGigYoneCU8xeTo2Ng/FDqDcd2R5pUShR4lq/9eN8v2NnIxoevBKoSobLYOnC3iRcpTITGRqdsZ3V5GLfJj/8/zTGXnqHXx924TdN8RfcWG+PmMy7bxxRjsT73/S/nyRwaksehEArO9yNyUUCsn28hkBStGmTLUyGZTmA3BjZOJlFpIvSAKfedOfCEafScMVwLL/cSnP74BiWhVrPiBcqouQRDztSREX2uK00oJWhm3wjCvEDpqcWDNqp7zTV2K2Iy5Rci1eogBgIjLBNtCE0JobNfmb6UgoWeU7EmIbfkp7RRpumMw+L+LNQtmM6I4+BJDIIYmN8PfEyG6b1aKnlyHGREHcgNGShBVmCRRMH7yn77AVC4vMyu2veKPfu0zfOPXXCOmyOb4jFzMD3MYdG1epI7JBFFFxsI4Kqw8CjyKUUomdT399YHZlSVxFtHNiN5do1MBhRoDoj6Xk9BkVi3kwoBkpCLoRggJ4my3LwlBEpaze8KMkDeVEJKDEKakLmHRCBbdV2Er3nCq1liJQBcJvVBFmE5K8y0S6JucLeBAaHXfytL8L6NEiO5zNGIwGfNFRFQZhsj3/vRHGqzyyvEmmPXw+BNf/RQyhJYM2IBy8y2lS0It/v6fqrPRDfePDEEYq17UYtXQ5KxM62bU1CFaGdcbkjhQLbvfYcJWjXF0RmkxmM2DM/HEXKLY4HFtyNWuDvN0RFBx/8oLXy0HyyrmgIA0FhZCbOnAIrvwFH98VYgJICBBmIqRkksPnRktxOjr5YOm8Cq7pmTgkyeFe7/8HDsf1HH6zPLDyza34LXn15/4wHeTLZCCUidluZzDmAlSYb4gmqFnI93eDImBIcJ4ljl49IDN8SndMDDvIkGNQlv3TIkpMBVhO02Md29zchIZNxvmTz7BfL/n8GBgtr/HeHrK4toN7t++xeajLxBvPMbm9IQ6bjAzlsvIY0/sIY+/i1kUxhjJJqT5IfvzxKeffZE6ZvTeiyyePMSWj2FZOVufspkm8nok9ZGpOtA+jluO7q6JukZV2G42nnp494z5jQXjekspbrxcakGtpcKCN9kNRCuIcOv2be7cuvWGXovLNr8+J+bMy8Crh2SFrebdpQPumJr/5be8k+VBInTGo1K5e6+yYWBYTJxox3h0RugjQxRu1EohsX9tn9W45vh0w6EFNsHY5sAglZP7yjueMU43gmjHIgXul8IqJn7pbuZrriWuGGxz4e2PLRmuDZwcbTmRnunulv2cWcvI8SbwyCPXONXKaBOrceR4A2kxUMfM3/7QLW6uJl6eYP6ZALzPZ1y2uQWvb34J3pbbEXajwI1hnx/+A/uoKRVhVHVror6nt+op4X2E2iGptvAZTwoXNYYUKeNE6iIWEmkI6KpQ1wfEdELXVfpynXqwJdATO2EzbegkojpRZKJq10g4fi4w1gSZY0RGJtBAsEwnSrBI0IoSkCJu4h4HPx8Y7o9rbnFSLSNEVNr6BNTie+tkEyks/SMdY4BkE7UMmCiRLTV2bimAss3KnI5//tKSv/svX3hNU/gvSjDrQfN3aQcrgK9/6lH+0vuvM3SJXNWlC01Kk3eusu0AZaYEezg9rJh7CQV5gGtiXngLQkclNPNPMwehTJuQLPiE3QFZcr7M0Ypn15x6F8+BMMGBCQXCzhh+l8xDoNRA1/vzl1bAedKdU+hTDESksebdXDdJZMzKD/yDW3z0rNfDkwAAIABJREFU3nEr5Pzrfm68ACJ4aPl65bB2X3j5j/AmmPXy8bsfX/J7nj5ExOiCH+y60OAejYTgc0/EU9jUhL4I0nuX2NQoEjm+a9y45sWWE0CVKAImFHe2ba+J+wSdHRvLQ0EkUiyhdWTeJSQY2wmCFTegJWKmdKbUGOgwigjbDL35QVOrUGNLtEuBvCoMy0gQ41OngZ/+xed2mU7tqh+Gr+x8S/z8x2Xb+KJT8viur77B7333I/QdzIeOLmRWxxmVSJ8q29HZCVaEPBnrbaHrXVOn4n4LURSJDpSnEOiiEYOy3EvUUBlXkZIzIXRsxuoSaT+BPZDsJ3RSnVWqsFkLQ69uYGzGWFxGRjPq3kmsIkopzejbPN630g6FbdGs6hLU2EAtrUYNDiBkMUSNqUIXfb2s6o+hDSlPBjU4CCsamveOYqh3omvAkmuKjAopMJgwloxidGk4XxOH5CyjEJrJtAk/9k9euFRzCyCFuFNuYQJ/4/u/irAwYh/YnBSm9dTiRwIWnDquNZADaIA0KVYz9ThweCNgrevfdYHh2oxu2RH6hGpmur0ibdv7vHNmgIizUYbBdzRP8A3IWJEqSFS6eaSqkldQ1wWr5rouLaglwgLCIKCCZjANWM1Y7SAUR0IG/5AU6uQyI7OAqRHnEQYPOkChaEFi9HTD6nt3VmvG3w7YqQQk+sc6CVRlEWHVC3/yf3n1ZLA3wayHx/f9G08RRchi7He796uQgBqcTRIFqvvUelPOhJz9Pd913vAzddkwIdHvLZEKKgENMJ0ee6KleWiJhcB64yxV5+3tfElb01EMLFBb3bRjrRNcDogZXWwAmnhBX23HuroA49SatJEme5SLNqB4iYdpaE1FoeDhCSpuOl40ENPOH9UBPBGXjDvL0E84owi/9k8/eWEfgTG9Ckvrss0tePX59c53vJVv+D1fDQT6Wce4mUgCKQnzGKmW6JJ7pUloTFKr5OLMSlMjho5ohdngEvcYlJwrOReiBSRUbn38NinB6ZR47L3PMMRKqcUbTaljM2aGmLn1sRc5fOoZDq7PnbmXZpydGEefPqLceZ60XJCiMb+SuPH042z7qyz29zm4+hhSEs999CPw6WfJHVx92+Ns4xXOxsxms2WeKquTU6TvObq/IeiW45svkfYPqPdPmaJy/9P32XvsKuO4YZoyqLrsuzXkMWdtu99gYzML/MavfmaG6auNyza/PlcZ2EO9/Z3ix3Z/yQNfgx//t9/FKmf2F4lkBc1wVuCxR5dsJiPomk/dLoShZ18qXa0czga0L4Q+8vzNNTe6jq0ZZpVeAi/crhxeFfrYc+0qmFZOxx6lsM7KrOv50qcPee6FIw7mRre3YDsGujAyHSkvrUZWk7KP8ejXPcnNT63Z3L/PagOnXcSqM+ivRNhT44d+6RYnY37FiXAH3n0hQK3LNrfgs8+v7qEr9ibftcUef/lbDll2PaNtmaSSa8cQlCrux82x0B90WF1DWBBEmWwiMmA2MXSJsi2EWY8gpHGLnlxj/kRkPLqL7l0hDkavESQgtiWbE08tF6pFqnbEMNHbiFrEW7yRYhMaBCkZq5EuRko9pZM50TqqFVJITJopuiGGjlR93ywC2SrEDdhAtYpZcssIhRqqN+VLIUtHCEJSY43SWUFrD0nJJWMhOUimRkmBH/4/V5zVcvnALGmdrr6f8de/8628/fqcqlDMtQi1QJBC1krViKGYRQzvKKtqw8CMTmjG7PZQoXphi+WIaDI7N2rfgUPuL+zMF++MGF2QJonZJRnKuT9XaIuCAphilgihtEVD8BjzxnzIgb7fgRlg4oc5xYjB06N2PlsBOff16pPT2kMCMeOH/+EZ/8ezN93TZtcxb9dwsXJ52uLrGQbom2DWQ+MH3/cUCffhCEHpQiQEPziZubE2zZ9qDowEag10qZwntBlNikPg5D5EyxweCmOISPD/7wUQJdfo7L6qnN6DvUPzU55E6taYhwxJMEmtmyxscm1G4JVhntwMPBpT9k5ybLHp7t5bSSlCL+TsTBkI/PzHVvy/z97l5e4xDxpKgnuafD7jsm18MQQTAn/pe9/NEqOPDq5EAqMVRN00OIqSi9Eh9J1wet+waCjV173gIj3Ht7zIiGKEWikS3TtKzLXsAlP2VBRTT3IzFfeNUiEl0E1lzMZimXD2gpKrkRrDp2Sw0NoHoUCGgsuqN64BIiSXRobi/kfWWFWjQZKAaHX3LRGmWkhB3BMnuNQGdblRNUVCIGg7SVZ1Q/kG8OemyQ/mSY4hih9GcfmPMyWMlPxaQvOyiSiEQB9cPvkj/+jTl2pugYNZ55+I8N//8S+HuZBSxHLm9KwgayV0gU4qYoHJsQFybAmVODNrmDvLuBjEEJktBYZEWvbusXV/RVRBisAsuLdW9O/1EDgHPdMYkASpAyuGnip5UmwhhJgQyW1e+RplggcTtHABKnR9oCqYFMxSk9FXN5wXwQhUq9QsTKdKN1NCH6kYdaok2e15EdVKjhGrgU4KZpGcvOnlTSpfBwcLRIxPnyo/+DO/cQFetNv7Jph1Md73tqu854l99xMVZ5ejRp8CIXjoSFE3bh+Lv60d5Hape61eZ0kAzUapkAZhtpyjaebsUKuwXXFyUuiS+RySQGzAu7THggvT+dT2VOcLO/AeooOZWLOSiE2m2HzexHxdq9DAJwf9lQuWgjc923xo7hBZd0EX7esFpGvG7wT3EAMQP0xo89Ly5OFmmhucffvBX7yLru/7xVh7rghTHtt/Xa65Ba+cX3/w/d+CrjPLPTh45CqhS87GrMpssURqQfKG9e0jzuSAfVkRqZSpMGkH/ZI8GcthxdNve6oRRA2I3qSbRsYXP83x0ci2v8KNZw7pOyEtZ+RcKNnBohR7QhdZ3zlDJHLt6StMNTHMAmqJLkZqyZRxi4U5i/0Zt+8Wjj55i7y6hZrQdcJbnjnkxpe8k3j4JFo7XnjuRezmb5IO90hX9ulmB2xlTsn3uffiEccna9a3btFdv0IskG3k3idv0h0umYBps27gnc+PWn2OqCk1e2BGPQ8WUj78q69fbnjZ5tfnWtM/aFnzYGJhOzJiGH/yK57gK58+5ERh6BSycWCVXI2tFR6fRUaUO2tDFgse3RdCiKzvnmEm3C7C2PU8rlse3ROmTaZsjZUqN+8Kj1+NXFtEZtc7zrKwOt4gVbhbjaevz9m/GpGjyvO3T7mSAnuPBKoOHN8buTsCk5JmkU0Ai8qdM2HVBeadEMbMngiH6uE8Ty0TlpQf+Ee3uLdta02r58Uv/k0w61XGq80vwSXqqm4dY+ZEl2Twbe98mm//ykKskONAZKJWQUMmSceoRo9SM3S9c7okFLQmDxCzCQk9XejQXD1EiUx3/CjpaaXevA2zp9HlFisTs2CYuY+VWXXJXzWs6ynVkFhJqhB7yBkNiaJnRAa2uobaMe87rKwR6dFi9EAJDnyaDhgrgsywDDUFqhWKnRB1DqEn1zUpDCQRJiplrcQBnNmTKLIihA6lgCa3r7ARpPdTjwl1ysRo/K8f6fng88fuzfmy8UUJZkUJxBD4ke/6Mr7iyd4N2qsbwuZmclWrL/apAUzOTgjtkZocZscECLh5u/hhR2p0oAlFiQR3EwVTgu5i4XeGoK3oeRiwd16W7BKem+ywyRJVnaSqpqQYMfOiTlrEjpn71FgV+tZlCkEcHKlAEJd0tOIqtYLIbFdAGV30YjJE998KYvyhv/Npbp6tz5/L5+Ot9SYz62J84Kue5MbMkyoTnmIZU6VYJESDlr40iKHFD/hB2msahSjiqQ7RAwIigqozW2pNnN4z5ilzeMWBBRPBggOkMQqajXvHwqzPhCHSJ2G7EtCRuOgdzJLYFguhjEpcBIIKJThfIwWPdc3Ttv1eTzqwqaff9wMfCtsR4hz+i5972EvrofvYPn4+XlqXbeObdcl+6HvexUy9az9PgZCUahWtyphd8hlVKaU0MCkwrSu1C04Fbo/ViVJQOgl+ONKL+xxsZ5rsB70++JoYo/90NqXD58125SBkt3AAATxRUIgEih+61A9zleryBVoSohlIZco85KV3nrxoxtRCDZJYkw1CFiOas/0cFHfftrGt0ZIczAr4n6qB0hLJaOtWppLUD4AK5GzECGqRGJohfTtImzqNe5BIxCVl/+0vXE5mlv9LeMfhwJ//7rdThogKdLVydpaRJr1yuXylVvMOXYBecBZczkiIDKF6vHJI9DOwLtHNk8+BVSaYQAHmDkx1nctaY/TwiTg2S6uZIcXQVaVORncQ2+HezkFPJJw3l4oGkAhWscmNmkOMkPACpklfE9EBEfNGk1qgbpS8KfRLg+TdZzNvfuVq1K1gHXR7CZmqewwGO5e2xtbU6q2SUqBo4C/8zG/yW8f5oXv92YzgL9va9Vr74p/5/W/jLBtUpU/SbBQcmdybuQzPmpnoVOy8VlF1uZ82mDCKMU2GdIJWIApxSKQuoJNLYMdRz83la/VUV8MlhX0StsWwyQh98ERFDA1+mtBWfu0YV7m476zuFPa7/68GsckTXT/h7Pb2XIsKEvybS20eWoIHBSUHp/LkbDRf/nb79E7K2IzgxZsKu/rTJDQGtfGhj6zJN1+8aDzumo/AOG0v1dyCh+fXH/73vts70STOXrpHLJXDJw9Jfe/mxnXL2a0169O1J2ztXWf/+oLZzNmkse+YRmVzPGJHL3Hl0WvUszXXbwT2Hznk3idvcufFQmLkyrvfyfJKoI7F9w3xFGjrBqgjAUinI2vtWdxYkIYBQiAXZba3QIoRYmB7ckrsO2IfOdy/goWeavCbn7jF8SdvIdszQlSuXB249vQjHDz9JZyVgdPnbtKf3WNKHcsnr7Kuwulqw/r+huPb9xgOIA4H3Hz+RcajFVffcsh6s2W12fiBNE8NXPX5WotLadVagEIzGVQxfuPXXh+g9Ttp7fqMP+M/eCExtIerXBEhmPAT3/ZWVqGHgyUUJdU13Qg6CDIWIsqUhZNauf7oAVf2YD913PzUfdYKi3lgrJUrIkxmTOsMBTYSuHsn88T1jhtz4ViNMSvbbFwbEkfVOLwiXD3sWb0wcrqtZINZMpYxckeN1dq9Qk9SJAdh3BZyEHQW6SUg68wjrRk6xMBiERmKMeXCaiz8xx+8h5EvAK0dKsOusfNKn63PNi7b3IJXzq8Yzm/TOUs+ihDU+H1P7vFHvnafgjfhJPm5ULeB2E2MGgmdYjkSdcTSgs6MSmmNELc9SHFBasnfut3SH8+Ib5sRcybfWcATE6oVqtBHAXpCPfM5TSVnqGGGBQM2pDoDFGKhajivm3I9I4Z9sDVC5/LsKMRcsJgw66hMfi2hUoufJyep9BjBKrUmkEDdBaqMvqdWmYi2ACtkK/QiqCYsuQKl1EogUGMl10AyD8AYQuLHfqny3On2FYbwX5xgVoj8V9/+Tr7yLQs/DKlLuM7lKBbJWjGP9wBcZrMzLNvFie+KKMEnnLTiwesHpTMvNkLTb0ZpxZm1Q5tpA60cBPP3tuxUjwB0uE9Swc69ZgQ7Z2oJLdoZfCOqgEGuDl65/0L1N0ZL2RFzRkMCajPSlQZupcbCMXO6YgpCCIkgfrANQfj+v3eLj947affgYryR1/hNMOti/OD7nnK1DUYyIVKRGNEQgeKSJ3UGXQUGaIa43okOgvstNHIV2jx/mqdLUEgI0xTJ68LhQSZbIAfxtDt1o9uz08q0NUJM5GpMJly7VknLHq2R0OQ/ZWuEuTOD1Nw8vOtAYmS0SFJfbrMZljrCibHYc8nOZgzE5EDbX/y/PtW8si5GfKAb7lDX5yY9vGwb31//vi+zSEvRqs4Qne9HSpmYJsD8UBNSoIygtRJjZHuS3dun3Q2TylwaQ8sKtbGfwA/2oi67KKaoQtdYUI6NeeJfUGO7MrohkGalHfQCsXoHSaU2AKsxqIrSD0Ip6huxGblCoLKdHCgL5smYgeAMK3FAtrQ1qagDTrW69NDM/IBnleLWWi49Ehw4bYWWNtPvYg5+7Ehb0RQLgVqMKAmlsguqCEiTZGc3jCc2pqwyxMhf+2eXF8wygR/5g+/h8KpRhuZXZJDXmUB0qXIyBioSOvIEU1GGATqJ5MnQXJgvhVKdZRpTIHUJjcpMXB6WMIIGZNGRuugyPjGSRmxUiIFhZogYeqLUSeiWzRyb4GCV7IBYdS+3KJg282zxVFctLiUjKjRjf0qTmqlhMTUA1mXSeeUFX5g7+H6xpSm5BqgJZoE+GZrVpW2hARfm/oN9CKQo1KCk0PE9/9OvPAQYw2uzsy7b2vWZ9sWveeYKX/clV1lNSo+nFnYhNFDQ17Oivrdls4u1IrgUuZEvPeG5NfGKtRTCooRgbDYuIex6r5NCA+Vr6x7unli1B43kffcJ5rhornYBHiFobaCYNkAdZyLGBlBZdKngphrS0K/SyruUnN2aH9zj1OWFMTqAVYpLJ5FdJrY/z9gFZ20lISZvT9gDDNLQQC7F+PDtyurXP3kBaLXfN46XE8x69NHr/P5v/FqGeYfFRG++5m+3E6ubJ1y9MUN1y/ZeRjYTevUJHn9iRrdcUKdMaHXILCVn+6ZIrca9e2fU+2vk5B5788i0Vmp/yJPvepShrulmqYHkYH2iVGWqxmIw7n/yhOHJaygw9Il5J5B68jRC6ik5czAkzk6VbpGQbmAWjdj1FBPW08ikPbOh4/hEOPrk85ST26RFz8F+YO+Jx9jWjs1qzfW84WS5D33i9HRkc3dF3p4we8uT3Lt1l/Xt+6TDnrFk8piZsoJmSq3t2BFQJyyj5oEpTtzyGX62WvGpZ5/9rK/F75S16zW+/xXnoN3/hd37VSJ/65ueYRvgXhD2ru2xnPVsb91F+p7TMXM1GKtJyVVJQVguet727n02zx1xfGrcmZRZJ8wMeowsSplgrQ6eH98rvP3xjqKw0cC6ZqLB/kwYc2DSwrU+sBphMGMMxmDiDKwKcQILwlpgjMFZ9EA/BKwo14udM5FN4XDmjPbZWCgauH4gPG+BP/OzzctvB+7tpDw7cOsBP7HPNi7b3IKL+bUjr+xuSWj/1/oydBb4H7/zSc6kME6GpITEAvQUzSSLlBjoYyZaItQMHQRmFN1SY3I2enDLj65McLpgzMLeo0v6fqTe2mBXr1HSFsR3l07dciORPXBC1c8VugEqwiFia7DoTRarlOzNBILX52IVRf1sq9FZ7BSKZjQOSFCKOVFjSpVAj+kZSKJaIFoBHVA2jGPA5iOh9nTMqbohBEUskdVIMVCp3mTUCGWLxujhPxpQy5Q447/++fvcfxk76/XOr/SFnACfz4ghMus63vX4jGLqRU1buKlu7l6r31ypuzeeF8vCjva3K0O8mErijCukSQL1YkbqrjAS93dJ0jq5uHFppHlk7Tp/cP55U9AQBHpCozBo8+wQN1RuwFbAzmn5IQqSXR4ZqK3L4t3zyS7khdJ8t3yhad4zLS0P3CQ6G4gWB/Askkz5qe98lCCP8M0//XEmq/CyOfDKhWl3t94cLx9/7hueYZqc0ZKA2UKZNLbDeSVFIQUlSyTRUt0wB0gtgnhHe9SLtKdskSE0/48YIbgMIkpmGITSL+kilDWs7k1OM1dBrYd5x3IpxM4YMcqdieP7BaSw6CauHM6ofWyVf0cILi9sZiLEtHO0Ne8KlMrsurC639Evla5XdDR0Efjh97+Vn/qXR3zizsm5/buT3MHh4J2/nfy2JB5+MQ1ToWolxkCkUKyyPlayGTEaUmGsRugqgwijuvQ4Nl+pFKUdqEMDihwFTdbAnuKyGSLUaoQQiQGKVvcHwVNcdYQyJvb3HTCq6v5umK8/ESh1xxIzilasc9+r1My+qwmEQs3CLEljWKhvEsHOgzWCSEtrdc8cmnmzh9kJorkxdIREomiB4Mkmnbj3jhcDztYya+lgRalBoMmJplIY4i5cwVNeSzVMA6MaKbXDbLueyzyCBZYDWPFkt5ydVk4XqKOzmJigSqQZW9H1QugcGOxnUDfOEFTLYAkHACrRhBqVGAKlqq9vNTZptSDVmFZKPwOZKypCPVZ0ZbAopOgeCjs2iqIN0HQWsVXfZYo5WFVFCLv0liBozWBCjIFgQpXa5DZt7xUlzKCsFCmeABy8y+PXHZ2RQ6nM9wYkKnk7kSQwBYUqHiqgntAoIuRS+Cv/zpfyF/733wQ4T0N8c8A3veMqE7R0UpjFCwN4aYylJC7HS9Vl0y4mCKhYW1OEZM5eWq28NsrmdVq3iCwOvBEk5gyUqrg3aPDPDZcVnjPCxBt4Jk0+WNxGojYPPQkOqBlQGoCG+IEDIEW3aMi0JGHzcJYYraVfO0AVW6PT1ytjwMiTkYZwzgY0cSYa7d9ana2481xN4vfNl19pa6Z7an7Fo5FPLN/BrQ9+rH3Dzojg8o3v+APfzHw5J4REFzusOEuqQ2E+Z+9tA8cv3WFaKxIPeOzL9t1RQQKhTGiEIIkuVEyNrnd2+ups5MknrpCvzpBpj+MXjrj+ZVeRaWJ/NlHG1lQJxmYshJIhwjwkti+uefTdTzir2Vx6n6cJycUZeVpZzOfcu3kfi4H9q9eoZUSJmFRW28LQCTadcPTCfW5cm/Pub30XZ+v3cvfohJu/8lvcvf0cKSWGOZxcv8L8pTXjEq7uH3AldZx9aqRPPXW+pIo3ny1rOx8oFQ+xoJRzgLZti9DOO7vFcblc/ut+mb84hl1IDM/PiecMLZ9zP/GNbwepbvdiQlmtmNuaO1noKTx3Zqylol3HQZjoRdhut5x8cstqBTErnSXyZCyicdSaiAOeWl6DMkiiFGOLEjvoiVyfCf8/e+8WY2l23ff91tp7f9+5VFVX9WWuPUMOORQpiSYpURKpUKZoWZIVOIYSBDZkwbHkFydylARQIhlwgvjBSQAHyEuAAH5MACN+cZ4CJLFfDCOOATvWi2LAgS1KlHifme6e7qo653zft/daeVj7VM/IulAGQg56vIHCTDe6Lqe+fdZe+7/+l2Vc4dc7Ri9IiuHQtMysXBnUeWAFt0qrwqROG+jJdYK2hs7CFmFMKZLrxDBVlnxKqwtqxsFgdW08P8Jf/4GX+c9/9essfXhzw9TyI0PrX03Z86ysfgQcFb83Kzr1IC4Iwk995AUmFWDFOMa54jrhNqO6ojEHs9kK5i2CdBhpslDcuietMrhibaJcXuBpTbodh4qRcD2lrWeYM4Ji04LnmSSJ1BolbznoFV4HsgSGIbXSJGyY0tFOSRWrjhSj2QIWUj8USI7UOXq3vCYzUcmILfjo6LKAJ0xWZDXYH2iMqCY0rUnDHm+ZlBznmiahGov55kwlzk+zjOCkkqhNMK2Ih41OapVf+fEL/srfefiv9szeCxtWRDynzL/3mVf56e89A29hIko0F4ZTa+sPJS4/x3quYjdFytyQo8ShN8KJdyJ23puH4+ccDSXjF38j6NBAq1v3dGn9Ape0pw6IIG6Iy43hZ9/+JGn97/tFlxhV5s7scndqVVIO3y1rUUaGdJxBwY1UUMIoeZFOY+/ddviQRJR1sMeiUCcETXFJHJLwd399x1/7B18LDk03Cnv6vI9eWu8GtP41Mwt+6XOv4GZkCWPlQSuOklyQWTEaq3XHRTUa8SE5WZzFI43SzDFJZG+YZBLOIsqgRimZWsPAPVvsG6PSauXqIagnfJO4ey/TLL43R3+jFhPquTUO14LvZk7vD5hvePzAOFwdMBYubi3kkxV1EdanK/bzHFNOl5CZNcjJWZrBTrFNQyRTqCw1wJac4L//Px/x1SdPbnbLsZj/S/vmW/Vle8amOP/dz3zMtQVoKAatxm8iaxi0q4E3waXdeDOICKnBPENeOZKEwZ2ls0pzOgLnIX1pi+IpqEyieiONUV9YDgJ1YH1Wgw1KsA6W2WmLkEukcaVsLD299Ua2nIxWQ5NzmA2lh6KPGgCRx15bLD6nSAfW5SjhiWZwJnwDIC5zeFwyW/Ob1zx5ZAUhT01HazVElNYi7Q6iPk3t6CMGYRHiDN7BvsGpcwwfqjz10hGHv/F/v/FM7S14ysz6s59+gR/58BZtGV8D0lnJzXBzbAlvNZHOlLPKuhREg6FJc8p1I22U2qnh4xgSqZQcTSUuc6LkZKgksiRkist4PgEtUHcLuleWQ6OcggzByBMNdrN2+Zd26X2SoLdDnMeNDkiY4TUCAVRCDhtAQTBgTI5pip2VbQJzeHOldZdueUTXqySaJfJqRE8MP0CtM8zBxmkekqNRFc1QIqaOxeFn/6f/512/799Pavis1a7f7Vz85Z94jWkOAPzQOlAjUZNKCpP11XFII07yYIwe6lFCHEDO24/DwP/sIkWdIJ791Lx7qEFyj1RE5yY4py6G5A5gaffdks4mTE4zwa1RJJIIa/96NTYXcVR2qaNHT3hMEW41mIXhcyXUxUhdElItUrGDqRWvI2n3lPQUw8kKqfR+SxUkjOMRoXkkEnv/+2N/aQjSG8ukegNyfeUAX/5HXwTiFD0c9s/U3gL4mZ/+SZeUkRzWBkmlS+FTDDvqxNe/+Cbp7A73758ypAhJ0VyiyVga6+2a+fEV+dYJtixxIbPWkyQh14nHj5zTWyNFGsvb15zePiF8ywyv0cfrSjl87Qn5xXPWJ1uqQN0dgkXozqiwXyrNnf3jhdVWGNfbGFKJgihFjLcfXDHnkVYKeUhsTzYxdLLE/o1ryrBHy5rWEjnD4UvfIM+VrTdeWmVe+8GP8sYX3+KF117gN/75N/nm22+y++CH+bUv/TYPHr1Fq5FAV5tjtcWJ3Peke1AfRWFpwT6l+7v9sz/AEP79ULt+n397wz46mp4fl7vz8nbkv/zsfeaDMA4wu7MHUrZIa9PElAtf31fqYpyulVe1MleHtnA2ZBYzTiRxKUQyNUJNmRWNwYRrC7Cf2dEBhpyYtbF24cMfPeMbV87uG1fcEoN14vIS5mnm1jjyW3Pj0BwSJ8yVAAAgAElEQVSZK4cy0KgRsDN2n7frymqqvLQp5FXh4eWBC3Hu3r+FX05cLY23HleSO1sPBvZeIzxhq8Y/frjnf/zSg99Ta/FOEPCY9vjO9aztLYCk4jFc9htFVlehh+IrKb/wmU/wiYuvsDBgaUI8UVkj5RqrA7lU1FbIUQE2NEQGpDothU3EBGzSTFoG2sPC8Mo51WdU14jvWT2asedOobV45nWi5ERWoc5TKDooJBWu24GlGcoQCFw74KmEfN4WrAmQcBotL2jLqCfmuifrgGlj3RT3BVfYOSAj7o3pUEkl0yR69kHmkO6L45YxUZSwhAJHvAIV44DpiC4rJF/jPoDFoKg2Q0g0MaotLAjaCv/k68Lf/mePb57Ft7q/9A/+J9+epSJ87pUtmBEDHEe80dwiGr5jLG5yQ7MVaf1ObZhX6D4b8dqV3FFms2PqV0hoBHrD7d2zJg7RJDGJjuaZG6p4OjIcLIxErRsyGLB0ZoEiJAxFw7vEAYxEvAlav3Q5jmRYrEUj1l97O0LAzg0UbBbMiFhdW9FreCZej9/827hIegupxNSMH3ttxd//86+RJMfFUJ4a7CPHr/udBzPfS+uPv3YLLJ4JCoM6iPbkIyNvGsNWaCSm64ChNuooieuqqHqwAKTLMlQYFSSFBCFnodWFQRPJI9HJBHyu7B5m0smW81dX3LuXwyuhEgBsC6mZltg/076BLYx3R+SJsx0aL9yH+x9acf+1Ldfc442vKA++NjE/eES00ZmsThmU9SYmgZ4yfgLLYQSfmFtiKIkhCSUrf+mPXJAl098+QEwkjlDW8UPfO6Xk27q0+xXh8R5MCkUEbzHdiyZqIYuSiSAAdcMkYnqLKrk5S4+Ez4B76h5+glcQDaCppBQAqzhZDNsnpGXWp9xIVtpsHK6d1Tqx2obHmx41+QTo2HhaK4QFUmW9cvJKKEVpOxA/mocHSDsCIq2z/aJ2mBmNFimeLQCvnHK/U2rIc1yYLCTjK+1M2NbwzvIS6P6ClSRBoR9UKUmhBQgvTvhrKdhiZHFmazchHUUVSc/w/nPhsx++Fd5YLcIh1OWGHVKSIFpIqQWDJvjBIIpqIkukUqZBORximpuHRFJnHJScSjBmcqYMmZzXqCV8H/T1YetohcODhektYz44q4tC2SY0d/aWdLNrjoBrl9C38JC0zngWB7VgWiAeKsPkwT4MLU2AlrFlg62cIvVTciedieBHh/HePJXR8TKjeYBkSFOspvh6DSRr8Geb01qj+YI7/JmP33sXgfmdF53341qtlFtrjefUQs5ctPuPqjLmeD8HUwtcUn8mMC3Oft+4ftI4Ox+4dZ4ifAch5RRnYQlQOmswuqo5UkNSkwTWq2DnjbkzNJOQgM0q/FSHHF+DDkJoCp/AQWEYuvn7DRvfWXVpYRbIJYDWQZzsxlCgzz1BhJUKQ4KVKlm5YYOKGCuN3m/Q+KCfiEmCkaV9eEmvV8d6rP0bBOMh2KsicH8DH/7hDwPxfZ7FJRkMDUARo2icj14rGeXJb78Bh8btFzcxDMsxvRc8/EiTUg8TSWIfDUNhaQ3XkMjbVNk92THeWpHGIdIrL06oyxIi9CRYV0Q8+K232IuzLkqrC8v1FMd2mxmHgmhiORjsjNsvnKDDhmk3cbCEp4G5VRYTTl+8w93bG85PErdvbfE24w7rUbnzgXNkvcHHgXxrZHVxzur1V3nue17lU5/5Ibbb53n0q7/BKRMXbjyXCj/8ye/m33rtDr/w+U9z//n7jOOGrErOGUkRPpASRHJZB18lUq41hYRfge/91Pd+px/3e3K9q57LU2AL6CC78ss/fJ+9OS1FbzaIkoccATsavo8nPvHiYNzfOq8MlSU5m1sDQ85kDa/HXWfJr3LCuuVClrBYMBLt0MgrZUiKlsZ2ULaD8uBRpV0eWBbjwQEePIzBtoqyWxrrVBkU9uZIASsFU0ijUIFcEi+Ozp3nE8NorEv0+S/QmLcjDxa4tkadnScOdRSGwRnHxr1B+JMvb/gfvvAaSVPXW7z7d/dOwovL++OMfCrljaXe5eK9Z/30vVt8+u7Xwdd4zgz5FEEoorglUnGsxQFTXMg5hrBQw26jFSwXcirQBtrDNeO9gWwtiDM+B4O8rJBmKIUkRsmBYdQFSGGz4Ti2ZLwlxEK2nXzPQtiKKErGAgyXAyIKbYW3SmqZnAtmDWngPtFSBhkDFWkxIDdfQqEohrohksNGyUc8D5AONDuEHYk5TupBRKdIzeRhQhgCn2mOkCgKKpW8NEiO0khl4bMvXPHS+g+/x94zN4DT9Ypt6aM4d5ork4UPQvKgaQZIZf3N9pQJYji4MtdgXUX3YDc37ebWfV9Cwtf5TTcofU7voBOak1VJKQpRomtj1WIKou+kpsLQm63sTtZI2DpKGEu/9CPWDYyj0Uk02hwHdHxTRzxo6EJQsSMhMTy51PsEVMJnKTndRNnw5ljXzC5mVK8BCNbwv2kG/+DnXuPn/siLJOjQcsAR/3JRevaL1B+0PvnSGWHRHZPe1guaephy45DNyFopG8HJzHvwXWUlRjZhyFH4hjFSdkTDt6No7C1NgnnD28zhwYGrNyqPrzfcva/cuRsyIhfQZPH8k+E9QXEoUHDSLGzORlbZ2C8L+69dI4+fsBr3bG85L79Uee27Cq989wWPucc3frPy8Ks7luuJtl+4flzZT7EXzYX1hTP7CdUr+85oWA6QkvHXfvRVXjzbxtQUuvTQ33XwwfsT0KqtIS1M1HMH1lsHu5PGJUck0Vrr2vbu06CKWYBAiKPNyRLv7ZWE/596sAMSHrJUgpacBWQCb8r5hZCLYbswnFyvB84uBtqiUAPoKOnIl3ASUIr3RM4eVoBQTWitotJIpXGYAtQfRCgqaA5fQhGLpqdZTIh6k11KZz/4TDqmDUpCRRhyIqdEa0ZyGHK+8R8oRclZySnH4WktaixGziFrUk2ABAjWZdcuSu3Af20Glr5DO+DbsCTSUk01Ip5NSJJYljgzFCEnjxqVlGlnHPa1g0rdPFgdK9BqSFZUnFRyXIo8pM8lpWjit4ragG4SZW3U68rurQm/aqxOMuu7Slo9PU9v4G2xCACwBuq4V+wYCACdSR2grSpo0BYDpO+eX54Uz4myilS71uWrqbOQJeuNP0RK3ZeyD49cukzMw1fHPdhfIoZWqNpYNKRw1SNE4Kd/8Ln3YdX63ddf/qkP37DYR49kViHkFkmEnGOoU1KkpgpCytH0P3nYmA7h5Xa6VXJrZAyV6J+aOfudMe0Nmww/GHUCX6AMzjgKJUsHOQN0KlkpIowlmuhVfspszakPEBqdIRp/P2j4X60kzsqsENhX7JNSlKEksvbeTZxyM7QKy4fj6y0pTrTcQ3qC6RWj+U4MQjxYqYnwAkt9QKpODKE6419EcOuNvsd79vnifPwLr6Np+A498f9/lzVlKGFWnMVDZlgtwjt8YZkaZx+5j7pjCvvZkCywLIyaukeb4ENhELC5spKGt+h/U4JWM8MQedNliAvW5eUBE+VwqCQFqXs2eeD0+Qu8Ob5MFIl+rS4NtwVq5bnzFWldsFrJycnjwHJ9ydXlE+Zp4fDomrU7c3PmeeHq+opqAYxeXl0zTTOrzYaz0y0+z7z91pvc3iivPv8Sr79wix/83Ee5uP8RDo+F/Ze+yO2XX+IDt0+4lwY+tMn8x1/4JD/0iU+zPTllzImcEykVmsmNJDsYgbFvo7FURBVviddf/67v9CN/T66jnND7fSu8N2Pk89MfewH3RF2COFDdogHfDAEcmlG9UefG8+qsqjHNQVygthhUi5KSsSDkpIxJIMVQJ+6H0cO3KUUdNNgfhDYZdYGrx3vavgajvsX9dFfhqirXDeaagslMDHFKa6hD8VDhbGtjEeV6n1kkIbViLvzTb17R3n5C3S34JFgJkH+2YM3forNYB/j8D1zw937++/hj9++g8nufiKGM6jfo9wGoJQLDcV7t0c/Pqvz8Z+/QVhkrjSxLeIsOW2yJxPJGJad4Tq04qKI6MM9CYqTJDnQmq+GPCnq70MaBmSn8dXOhPnkM5wWzSi2HYGzZhFgMfHFhYKQQdW9MI0UuGWVALmG4TOQnjTTt0aWQdER1RCyhemDII/u8D2BJwlfUphXsF5arCVkU80sOO1itbpEJtn7AWxWxNeiCsEM807xgMuOyw3WiJHDfMxajHaDNNcKFipJsijtAEXyIepZYY/uBKsIvfO70D/2s3jN93E98z20mca7dmVuYWKskKnF5rtYleT258GjEltyhBZNglY+pf4RUT/ulUjJFPKQ72r1dvP8ZC/pd4GG046guonqi8dBgetEbFO0omRwbc4nPM4eFaKyMANAAMKHVkBH21HvGoTLNCTmCUkgHsIJ5oUQDmN5RMNSfFpPWuoSpe8XExSIuOnhIM2prVHcmM/7i953wD//CR7oh/tNC9O6C9K9ZWmpOSc5KLTyPpIOKEprzxYgKZ+EH09zJJxlOMq4D9drI88IolcErQwLNSlIj+wKqlJRIbkwPleH8lHsfKNz/QLzPl6VitQUoIgPrMccUe1DWm0CvpS7YriKPDrQ3jFy3bF69zaHc4+E31zz+YmP68jXtak9JC/fvV1796AlnL97icjnn7W8au7eNdn3N3BqaBfOKjjNmhSbGm48b19bYW+F6cf7iJy/4tz/xEryDlXUzwTmCtkAiva9ArXSUIptTlzi8oJFMwQztDZSIoOTeRAXwssoOU2OlyphTl+gY5k7yRhJDO9slEUy/kmDMwKKcrqFeN9qlc3qWWW0dp2FWWY3OuFGWJSgu7grqpJQQC98bUcUspo+ajCFpeGqlxLhWtGkHO+LiXz1+lkEi/UQ8OHmFRKsd9JWQrgVTwQJMC01jwJ8ekrLkwfrIHepoBrZUHMhNsQ7kqfbJEETzDh1I7aAJQhNwf3cy3bO0Xj4t4ROVlWEQbBHqMpNT+AZ5NUaVkKqbsxoEtZB0tmZdHgAH6+BEU9Yl9fPLkRI1SSTkgjQBDnAw9o8a0yML0HMVbAufwQ4Vb/0slTjbbqT7TsDeknqhiGnR0T/o6FHUOoOGI7vZHd0IelbQjWIlBQP6SKvOKVIU574HlBtWkKiQSmJplWYNby2Yg9Xw2tBByN3X0CthTI/TqvFf/7sf/0492vfWMqE1ofZeqGj4PW6SUFKipJAYHsGdZoA5Dx42Xnw+c/dCuX1RWK+CKTm7spuc3QSHxTk9ETZb5eQkM2yVslI2m6gx+2ujLfEwt0P4e/jsiES4STbQ5jfDQ4CkgnT2Z995RNIruEiXuvaEVo3aOUgw80qOE6tosNAyAWRldwqwLiGFTX2LisN2A74YQxIGFQY5eptG7UvRWMXkubNno2UMM2Y8mK3SzQcd4SLDD3/hlW/3k/62rFEhacjkzBXTHlQhieuvPoCT5zgbjDQfAgQUoIZfYlumYHwrjNlZlkpbFupiFIyVwHzdOD1fMb/9hELl0ENF9GTF22/vqUR/uzyY2bxyjyEHE3AswWqiVVZjsCGyGvsHV+HPJcIoTp12qDXMK3nILOos3sAqOSWsNg7zzGzGkGA6TOyeXLF/8oh5f80gldX+ik/dPeHF26c8d+uCz/7A67z62sf5xn7DrQe/xUXac1FG7oxbnpcVP/fJV/mxT/0gd7cn4enWz0BNYQ9hvdaRUgxGrcG8gMMwFnJ+z9ggf8fX8W6jyA2jFwkpuwAvn2/5wVdP2O8abYmzTNNAGWBje5gbgyilRUI4i0XYDNDmRF1Al7jT4UJyJw+gq4KKMGaQosyEJ5JY9DGWFBNhdGE24/rgTDMICRGYLUUKqgR5omTIOZHH8Diae1pZnhbK9YRXY2fOw4eXXH3zCnG4FmF3UL7ytmOHkEe3FEd77eyiUeChCwdxhjYjKvxHHzrjf/3cy1367zed/e9lnv+sro4ZAzBLZ2b1c+JD6w0DFamQLFNsQNWh7UhjJmlmbFBRWjJI8fvLY2YzJFJ1SlqBZebDgucNw6aQpCIysLQF5TGlntLskuYzzRKDjzh3ITlVWvCuZGKxhvEYtx08UuxtZ96ekm+t8FPH20ibC/bgEnkgDNcZWTLt0CjLQr3e054ILBsomVJOKOsLci5QbzGkEbdLnACgcs7UKkiyCHZpBTMnpwVtCnmDNCc7DLqi7oycVkiJ4Xl2kNyp323APWG+CmBsfYVrYi3OL37uhT/UM3tPVL5VGfnjr58AYeRaCIBGuiRwboImQyyYJEEPjjhKtwB/BG7+20TQRhSufuFJgCNhQuvRnIdyz3vK0lMvLu9NyNHY3SzovtrZBDdGyL2ZzqmxmJCadODLaTVQ7wC7LJoq8Zu0HxVnNbTwrJGGi9HQLn0Mfy5z7cBYNGPiAXjhkdTkXR4p9tT43sXYLUrJHgyJBrM1FhFWIvyjn/8wj64q/+b/8iWaEyasvwud9P24fuWz92lAM6W6k5PRXMGNQehoOPEs+pU6qdO6IWxTyLcKYt2YGgmTZqmYKfN+4fqhkzZbTu4V1uuFtG/UacZPlc0wYPPC9UOL9K9RsNNVyGkTpG1Bc6Kcwu3TheXxnu15mFvNrbE+rZzcUdxXLPugjl5dCcOja7gLp9s157cVZE1ryrLAW2816jevOXkxBcNhEOSgJK00L7gsHHYw3k58/0vCD738Af7K//5bdOeQp8AC9D3YQY0OaD2VyT6bq7ZIHUzi0AxNRnFwJvCoOrlAskJOIa9zb0hS0mZgdzmxHIRUKlmEnDsDooWvjGGRBGKVlMLse3rb2N4dkNRAIuFyKcIgCbNGa8rcIgIplRQSr1pxKaQSYJm6YFTKkFk80gCX1ig5gNaTOxuuHuyx2akVTIQtCWuG08LXy7q5e86IR0SAiiKyYD1psXnsiCRQBmE5gvDZEdebqWn2xjCEGLamAFSCpNGYq1E09riGYybeE0QjUcbJ+uwys375T3+EQYTWDFmcoR5lhkptc997yroEu68iyCrSjVJRqI3sFmyWE6FdN/xESSbMeBiBppDtt6tKbsru0UIpiXxSGO6Fx6NbwydhWCliiWWpwTbxesM2zMW4ESt4DGqUSISD45+7mbFZf8Yd6MrB7MlDQ9chjfdmVCJRUd0hlZh6osFIGzMVhxzBKHWeaYdec4rgHTxlcVyXTpuPg1sUnMwH15XXb6/49YcHIKbdv1+q4bO47qwzZxvh8jp+19WFdZc5kYRNinTMkuhAtDI3gz7lb9bZNxrc+dJDK9YlYdaTJTuTSropf755yzrDJjwhqwvz5JTB2Z7k8KxqTwEjn408RAohBGvKrNtluZNUAzBKMB/1o0nDv4/uNdh9s9YFpp7EaBKssFmjliePlGjv2K5KnHh5Lcw7p6w7W7BFcMbqKL9M4aF5ZIsVB0SCUUn0WyBIosuGCe31M7gWN/IMaA5vOzfKUHj0m19j2sFLH1uTM9hQSCIMKYZC0+ys10prRmsJl4WhpDDrpyAYTTIXt4R9dWy3IHe2bMQ5NFiVBCVjl3tqmxk/8DxK9zFSY50z7XAIrys3UnP2jw/IqjBaZVqgaSIl4WBOWSr16jHb8zWXl5dMOjJV65YRjXleIA3gxn525hoy+UUGcoK7pxuGXaLoNf7E+dQXPsl3tx/gn/zNv4H9wz0f+6PXcO/H4Eu/gQwDP/u9L/Ijz/9R/tu/8/d4uN+RSmZeFqhhTdCIFHMXDeNmVdTjzvTRj303v/34issv/+Z39Nm/F9a75HEcWcTxpz/16Q/xox+7xfTWFT7C9NhhgNEruUJuzr4J2zH8G0+kRd+BMjVnWxoFR9YJW+LOpuIMe0XTQhJhXAvzPmpCMmHO4EkZgU2JO+nlQjzXiWBPj4KkhLhShkhFx3qHvSeY6N1nUhCyGdd7ONkKa0881srds4TMieu24AfYlxiKVoMiQZgwgd824fliPJ9O+Oo/veI3r57wCGdbhP/586/wyJX/5tfe5MtvXwHvBrDe6UH2LK7j1jkCWkYwv0/zCX/9J24x9dAS1cokCVsGtDjVK4NnVDLJJ2DGfcOGAW8Lsxi5GHluZKlMTy5IL02AkDQxpkRTQR4c8LNIR6/WYHqMZQWZqLWSpAR4c3VADisKp+hZgzuwl0ppDRgZUmZOsaeHsxOmBkmMvC/Y0KiyooxDD4eqLPUArEAOYE5ZG7NVsp4hi8C80FKkNjarDCnRWqWYkNqAL5XV4tRhg1KRVmFcge1Jkml5icG1reLuwILRSNqHaHVkUMHajldH509+ZPMtP7P3BIXioy+fk5OTQrTJ7DA3w5r16UQLxpGEeWw0BDHdTxDyBeM48kXderqWMwo3kzwjTL3lRloTzKdE+DRIR6zNoklTjumFndbbvxc9KU4AxGiEjl1z9yZJdiOLSHRb5j5hjMYdICQS41AZskN7mmoTYFq8lmA5yM3nlu7nMHrE2NMZXe7hL1NrR/QtPtSd0b1fsOFQjfOt8H/9/Id57WTTpxXx0t4PtNHfa/2nP/wyzZ1BEyvpcfQdiKzApoCkGg2VB2g54OQWvlnNFobO+qsaU7TauqeGJXSZOexOeO71gbt3JzapMr6gjOewPl9hlljemFm+2dDb55x995qzVzPrC2FzK6J8d29dcv3gitImCpFsMh+c5XIm2TW+GMtuwdvCsBJSUdZbxV5YwxvO/ptXJFmoDaoAvnB21lg/v+bqKwm7Cv8HXTvnZc1FEnS7IZ2F0fKDnfG4wV/9E6/ShRu/g6V1nJA//XjWWVraGZ/NQHpsuLmjmjFiYlvMMamxpxTGEj4zyMy4lvAxCtQaM2VZFlq1qFOiIZ9KieXtyvVjGM4zJbfwi8ldjuPBwEkpob025ZRuWGFpKJQUKWBtCflP0fg5VjlRUmI1FIZVY3ueEdnhJqTsNyAKPTgjJDvhJRPof+uSQqe5IYRRZOrTvRJqCEBC8qVCIiFuVM8xjV8NWE8bQwUtMQZzUQbNLIsx5MRmyGh5KlP0ZhjyzIIP6sKpKyJKHgrDKjFuFV0EpNKaRKKvBlMqq7CWRm7OughbFQbp3kIZyipimdvBkWSkNCApkbRQrxt+KTALZy9vWT+fGbdRRyRFmADdFNcVyqpQ1spq64xrQXShLUabwng7Gl7HWsNql4QZ3Vuovz4Fb4llFqQmdG7Y3LBq4c+wkhtWl7shFoOhNkPsJydlC8a1x8VOPKRMahXR2odKkWycJYZkYWcQHktO4r/6U+9vic5f+v77FFW2G8GadGZ4hICscvz56P951NiNRbs8NXqmY2qqNad6sAaPBL0iUQNKgbrE1w2/Kw2GlcO+M/XSEP/GlhrSbYGchSELpcQPllvUUmvvkF5LhFE0V6z3huHRFl5NY6Yzy+h+HfF1kwhqcXYXdVJnkTrxb28YVwoFkCK0KfZb1pDRqfdmuh29BgmZoYdMPHUGYbhI9BoapS729DO4ighZU++dLUIq6sRuv7C+/wKOUesSSX11YVkiZVlLYj0kUsnRX7tBaxSJzOjD4wm3inlCNbM9XzGI49PEOivrMVgO2MT+65cU29PMOMwLqs6bD55gzajzzHLYM88zbRDGITHXRqsVa5WpNSqVqk5rC4da2alyPe2oNlMPM9N0YDc3pO6ZpkqiIssBQ1iWA195+Ji2vE1+7gQ++nHkT3wBvv9TjP/GZ/ieH/oZLnG+/I8P+MNfZZVXrPOWrRZeuXuLj738GhvJjB6uN05GSwl2rMZQzEXjPSY9mcyd+2ff+gXwWV3v9gfuw/pujXG+WfNTn76HtCnkm+40CfP/5EaqC9eHxtz7nHEFVp1qKaw+NP5+5YSUPQUjHnNWo3GYgvnr+0aTOHOuPQJrRGBM4Z+8b86yM6wV0kkhrTOHXaIdKu6NeV+Zd85+Uq6ujIvTzNmJcLqGs5WxLkYuzmYryLVxWZcwktjPrNrMfGjsi9GO9zoJGf6o0MQ5pfHB0zXrQfi1vfGGGDt3miV+u8Ibi/KLn7h/8zs9Dh6PH7/TTP9ZXEcnIOlDif/i8x8mMaAyY0uh+chQDUl7zI/9hWPsSQsk3+LNmZaZ2gSWGGwwgF8ObC9OST6ytIrKliYDaX9JqY129Qh73CiPK/nJQHsI7Jeg5ojD21eshudIdzb4nZDXZxlZm7PKYQhDi/uD5SC/ZKlUn2FtICPqiWYzzRtNDO92HxDKDaX14/6SnCu2rsxWkRzDy2V2vM4kEXx0ZK0wgkiF1IOvmoMHQBvDbaFpDaGFxF3AZ2FwoaQDLhWRNaYHfvzlbz2t9T1x0/zJj6wjucsDOW41AIPWQKgk6Wbv1sKfBcKPAQExigQVcxDCAN16yk23zRJpiFhQ13sTEf4znfnkXZJg8Tnh8xDMAUF6MxIIkfVLk2oHmlRDdihCpSKpXyqloRJpJC6QXbt5Xm9mJIpD69LClMCWbkx6pH5JNP5ukbBkbjQPf55IM9P+ezj25pG+sBbC66bTI5MFld4svLXmFtKNv/WnX+BiXN2k/bxf15/53hdwQm41HZwnVzDUyqjOVoWNakxIWkYRtj12XFJ40WQP7yBqNNZKmBxnEdSNqzcWLp9see5+GHyjkJqThxVpnTB11qOSFie9eMKtc2CqmC3YvGd/vaO4s1oNaIarJ+FzVbIwL05aZ0hrjLhwqmb0xqC2sdkY9YUtJmumLzdkmqAaeVRIiXF0br/qjPszXjzMvHQ2cnomnPjAxamTV5nFIqFvPjSum/KXv/DKDQgKR4GqdwHu0494ufrMglrNFFFjcDCr/Y6eglnV4tInKfzWFuIO31ojH6UwOWLt3Xt8fKLH3caFJ0tcBOcnhsrA+b1I3HGLC5h1nyTo4Lu1MPnPgkgLmaI3kjZyN08exnQTdKEiuAfKkLziB2V+XNm96SSpKM4wCEVDPhrBTlGTRGAohRlDtN1M60qGVdFuP+kRSdzrlyA0QuojIsHCFaeUxq3zQhGlmJPQqF8ag4CUQdSZa6TyHGffNQoAACAASURBVPXkqad8tvZsTgiRxOKNpsJ4vmZ1vuo+UYZ4wgosJFycuca+s5w43WakNaxWkgnSol4kgTwo+8ctzOFLgEFMjbaDvII0OsMtRdZdbS8WbMIuQ2ytUo0elGI3vm8pK3mMyXTdOe0QKYRH+SFHwNEds9ZZfg7JKIPTaNFAHSxMQ6aF1DpQYR7yLY2kvVYbiIH0BMYOQKgZkuOy0egeTGiAVhJBME1i7mVAo6Gj4vndw5z302k4Zr35vYonSn7aTxz9qaqGPKZVKNbBIBX2V41hHRJEQTCLPbZOAQId36pRorpnaAnmloc+J9JRU1wE9MiAT1BrTyDsW2c2pyKgiuQuL+wDzDCLDxlhpHEK1sIzC4nX0ywgqtThJKFLJtORBUuAVnRgKwWbI2v4XWoLC4KzVfxucoKcok5lgVUK4/pEDB7VI9nWKohCPk5L/TjYjJ//GQyQBmKYMk9T1BwSWhK7B0/wNrBdOy7OYsF0EQ3LjVQGmij7aaEsc0jZRZkXmNrC5eOJk4sVjrBYI7WFYTuw3y1oHhA3pnlGJNH2zjWKpYzYTF4lFpSSjMPhEH3/NLO73OPi7KZDsIvbxDzPDJJYKUz7mevWWOrC4A1fFsQMU0ASWRuXh8blW48wjMlhf9iz213yZJr48le/irx6H85vwUsfhHsvwmbDxX/w7/CRj32eeqI8/vuXDJ//cfLZc2xTZqjwkx98nudvnZLXie127F6qgouiEqKapAFiKYqWjHZfuWHzh5PoPGvraMciPGURQfSk/9lPfxy7fsz09sLsiZaElpw6O9dNOCwwp8REIN7LtDDmsK1ZRcvMgPe6IgwoLsJQlMPe4x7gzkoyYnDdlEWCGXW4mnjwtjFfC1dzopxkNluoKfqq1S2hbAqXB/D1wHCWkVX0bkuXnI4psclR9wTlVgqgy3NhsMx0KPzztxpfr851S0wHWCa41WANQGU0YZ0yv+7GF5nZRUIF20F5syh7h9PnNqTnBl48DUBBOPqOfYce6rdxddvGm/MLgY+cbHl99TbVG8kGUpk4cMWlLGguSFowWajsMVkz54TpHMSZLJCVXJQyB4ue5QTWEwCaLRhK8478+Iz5/D7p1gVcNNrdu8idLfliRTvM+MNr/Ktvkle3mXWh2gEXxYieSGWLtYRqpUrBKaDO6EomE8m+Qg/ZZTEo0npIntDSxEwFaV2VZrS2pnnU1TQKy2NHDsZWndWwQfMYtToH4BuethM1CXNuTBZ29HOrWMsYDZMdEB68mpXqmWIbvJ5SZ2fcbUh2/S0/s/fEDfP1O+uYBLJgDqvkDAAOreoNoyHMY7vxr0QjKt09K6Jr45K4EhiSd6PbMMsVtL/5j3TJhGqIoLRfKlUcUnhfVQ+vpNSNkq2zpcSjCQsj5zB7FhKZCqa09jRN0TpolYiDG6ebyAWNPWuwf7KEqfeYHFsS05RikofHz9g/13qS49HrJBISnxZumpG1PW3umqMW0o5m1un4zuLOoTpThf/tz77I514+78l736kd8J1dr9zKDGpoc7Zr4+xMYcgsruwOil0686VhzeMS5I2MYxYsOCGkNaZC21XqvlHnuIC//Q1nuH3CxUXth5wwbDdwUiIZTmKf1mXhoEoeKm2aA5Q9eJiobgZYQ9kKq0FZrZ06H/BpQcypdaFWA4xpDn+JuSmqQhmUlBPndzMnLw9MF1vSW8ZKZ4oIJyeJO7dXvHC+4cPfJWTuccsat3FOzyr3Hs5s04YkmakmqkIejCbKr/zoi6i8OwEF+oUkoGbgOIl+Rlla5qgpZiEPzB2YJoUZaHPpfkL0FKJ4o3mfUBwvXtSMqFCXGhN9CUbnvG/sH8as5OROxJsnkQAgCONhfOkX0agTbWk3l/gkTqY/H3fMa6h2tDIezbQJKW3rLFDVjrobNyl0KTvUGt8PDblzFEMKQvVEylHT8GAbDBI+Et6N7hfrcKf5zetTFcYxYYtweVXDN8yibok4Q4G0TgylkJuSNSFkFCf3MI/aQub9LK6zTaK2iJjf3jljvH3Byf0zvBht5x10WKhVWGyiVpgXp2plWRpLM5pFsmDxGHCsN5kkAUJlB/bG/MjY3h4Z14W0LaTWWElm0NyZzGCtkVM8NzOjWo9XPjJMAMyQlCljTKdtsj4Yj6Rhs2Bf4AGchOxWApQtAiNgik2O1wCjND+VjMR/azRiLqRkQcu2uLC0VskWJuWjaE8gchaL2i0kvPtlzglMA3VJQ2I8sq/h9zXBfdbWL/2xD3Ln7sAyR88x9MQ0xDu7JoYkmwzrDNVgVIG54U24dzvSMI8enSAsfVC4SuFlMS1245GWMI7G/Vbje7hHKIDTfUJV0AJ1CeaEmz9ld/VLZBYhDUqTAGqzRN9mLWrtaugglQWwllRopv3cBUMpKWqIqjDmPjzQY5hFSEtUBHDGocNgDiebkLVqcCEwgzHHACJ12wFHSR7gffY+sJDO1u4sh6Md3LO4soIOBcTJY+JkzLQZysUtcg5YUTUGc7M7NSWm3YS0hak2pGhPi4SWFZbKcDIwHcLjSlPIQKf9gYRRl4Xmic3JmuXRAX3hnHsfucvhsEeHAbfKYb/jMFfUnXlpIeGbKvMyMSHUFgFK2hZanRFR6t7Jp2uuTHmyGKQxBjr9NR4e7fDZ8LMVdQoz+WWasdl4eHXABgLtXG/wJ4colEOCVeL8Z/4cL955gfOf/Un87/4txL6J7i65dfESL5wPvHJxh0Gil0o9OTkXxa0yjCOpKLlkyjj0fapISrz6wTuIPLvS+29lxT2vv397e5BEWRVn9zjOzLIqDJtEKuFlNLXKIs40TaylMR0a7soyx2BPOtNUVGnp6JFsMYQDbBUywSxhP7JSp0kMm2pzhpMVpxeZ9XlitRZyzmGLI0LLStFEE+X8NIHAoYYlxJFFL6poNdRgpcKZhBz6Uhpnt1eMW+OqGbZRxpVSUmN9kbk4USrK5d6YDsqhCr8xO7/+pPKlK2HaVSrwtWujXi7UtXEtDV+cf/9TL0UH/7Sh/x3n8bO5jqS+IM1k/pM/+lEuB6e2wtJgJpN0RZIcoW8WIU2uKxIzozQKazyDphlZFtziTDo8PpBP1ojOiAyMwwWrMTM+SegLZ5RNpZUV+AVS+n5rRtoV0up5bLtBD5cUOQCO2cwsGZeMU8OSQwtaKlkSQiJJAj+ExQNQlz2DD6xsxDQDKXAO77HRxLAcMkmlB+0t4NeUkyBszHMLSycmPGXcM55SpB96YjHFmkLJLJZIco6kBSWT/YSmjeoTkkqckSKM1DjXz2Z2m/lbfl7viY5tVXokqiupX3aKGEOP8q0V8KNc0DvoIjeuPE2cbhHTqfDRcMSkryevyREMiym+0iV7AqYBJkn/3u6R22a9WcndKmnoJqK5N8hKMG+aBQcha7APzOPnTirdcM9vop6LhrdESkbRaMYdJ2lPCitGKcE6kzk8GbJFQS7eIvnFlGxHGr2jZmSP0WLq4FlRCwBNjIM3JnMma9FwWuOwOLvFuVwaf/UL5/wff+6D3Fs9m6k6v9/6pc/cjxQHA8nOEluAxeJivl4ZegLlNEw4swnLnNnvlcMTp7bEYokyJAaE7Wnh9FZme5J5+BXnzge33D5v5NMB9Yp3I8dUKyuMoTXUDHsEtjFyDilGa6A02uzMh8pqUNpsmCn7vXN4tGDJKNnIk1DqgWQLaZlhN5GmoMG33cyTBxNv/uZjrr++Z9jN7O9saDrQHo4M/2LizlevWX9px/QvdujV21w9XiOXO9aSWN1e86Fx4fueK9w7W7HKMF9BS5VZhP/wR17qTdQRtIqiZ9g7evT4v/QM8h1yChNQ10arjZLiMrOWGtKYEcBDJJCi7uQOGGUNtuiwJhIRPWKWzY16qOzeMLKMnNwrbM/D76+6hb+exYTW3ZAG4jUSVcRYrTTSmBRygTwKeUyg8TlFAihonc1gLRgEohkTo7XQKKsq7t1DpqRuBh8G8mPKuIW8z/tFEEKS5gm0RIy0djaY9hrr/UJbNGrrOERSpxL1S9QZerxsqhITGhNKdryETLJSsWZMFq8B0o1R/rO2/vwP3ad4xtvC7qtvwX5GT1asbq2YGmGSDd2YU9AUDXetQhUNubMpNQWbZEjKeg2bbWK5XJjeXDi8ZazuDGxO4rJetp3N5E5OjezBiE4Spv+SHRaHJYAst2CA2dL6+Rnv/rRx8kbDw6oFGwsPzyIEWgKX8JVTDXkh15VWIxlOmyHzDJ4o5fiME2nMIEpbKktVxDXMWRcj3bBeGqkE4HEjjcjKnI2qCU9xOTCcyYTZG3/zFz8RfcD7iKX8Fz7zIqebxNXk5AXOkjN24OpkEPb7kAVngdUgDEU4HYQHb1Xmqty+yCyTgQljzqyLMOQwO67dIN6lM0JTt11Iinswm1Ii9oQ6Y06MvU7lHClteZXxJhjK4pHO2vpelxJG9JuxM9sFhpQCiPQeGtGZokNWrAbL/kiQKhq91yDCdgygPJJVg2G1yZFMNvShY3D/4mdYqbC7MkqXSpQUfq9JhCRKIYIvsjijakgaLc5A6eBdlnbDTnsWlzmMqliDuTlf+X+/yvWDa27fK9RpxtqCkdkmYRSB6qzWOaQnKuznkFboXBnawmzKaU5sxqgNvl9YD5mSB66uFlJWLr/xJt/8/8h7l1jbliw96xsjIuaca629z+s+8mbeeyszy1mVZSOXMUJQ2fJDgMGyJSxjCxC0kGjQwQhDg5ZbCAnRQQgJOkY0oJBACIkOtAoEksE2wi6VQYXIzLpZmXnf57H3XmvOGRFj0Bix981EWGQ1nJk+FdLVfe2zz9lrzRUxYoz///7f+pDH7z/luGT2dePu1R5KqXVnTp3pWKgjoKn2HbmacBSrG57uB4yOf36LtY48Ci6fiiC9Evc+pW4r2+3G4aB46vQaNkbxPuzQgSD5j/6Hv4OvH8CTR+ibb8K2fVEJfeOaw7/0b8Ff/y0k/wP4974Hb3yNT/7Wt3l6nPgnvvk+j1NhVmc5HJhKJvlEKiWKVpRU5kj0BXQA5IrDu7/0K0xl+Rm9+z+79WP7twyXwODp/ZU/+XX6Ry/wczA5l2y0252kFkO3+IRznCZKcw7mvClwfHxA5/xgoy6LsluoMjcPRdyUlZILWpSNQnPlRjIovHppPHqSWbJwLErTcM8cswe2JmeSJJYU6dEpayQj5kRuTllgmSeWSTkuhZNmugubOuvmlN1Rq5jBK+2Ug3I4Zg45cwreDJsbehD6Qbg7NL6fM79bYTZjU+OcYDplztKpt/DJx7fcvngVgT8jGfnv+jq/ZstDEDwwRs6/8g/9Ck/1e1z2jV03zroiHm4F04Rj7N5DAY8y5YVpmskCc2tkOeBlQSSRD5Xy/CnpWlDNpKLYIdM//QT9hadUvWW3V2SdsLQj1pC7T/CXC/zCY/yqwZOMPz5hHEirk28vpPWM+Y7oFM+hzaQ2YXR6h9UaipKqkqUzLwX1iuhK7jvNGtYThkddZkKWqL/cenRIvCA1o9JoxwpLYRNHayOZ0ex2DMcdkYymCU8N8U4ujvhOYQp1PysZKGkh9Q1J0TDu6YKmEGdo/8l7Ej8XNwDpieqJxoh/J5RPwRB1vEcRnZCHGOT7j1EeXeKwDQSzJUrpSD+8X8p9oTE4CAAeoFOG3S8uBVHEYz6shESTaaikIuVgdOhHx38MnuktmmAqQrUBWsbJ2YdrUEiuwVpyDcuZO2JG9Zj+2SjCTIxp6SSEXn1MuMOq2NUCDyaEBaQprSo6pu17Ny7duezOq+oRdS9hA9q6cKlOM2O3zqUZ1cJw8Z//xa/8tN7yn4sVVi9YBUgDDJuCwzLleL/CugUHMQ7aI1J+avhsnB7BnI350OP9S4pKIqeJvhuPv5RJ1rAyRbpczvhWaecNnZW679SWabcdUuJ0HVPH9dxDoUIU61mM9eUlrIfrSraAgM5XOVRdCXYD64K4MOXEeav0ClsbINolc3hL8SdGLo22O6/SS85f6cy/dCR97cDpqzPP3j3wdLpw2Z6Sp2CM+Md3ZC388mPhS08fc8jD2kTGBf7VP/5ePJvDXPijR9yP/rO9hkW7upDS2LdU2faAWJt4FM7NmEWR7tH06katxt6c3qJBpanT9lCXWnXWzxvnG2F5MyOHSFNq7mSMQ05osqGE8WhcLcO+M9g1vTkpAxm6Cd11KAE81AMp9jFVZe8NlzRUAkM9kAe02SyacCKIdZROmQyyB3SbaM5jjb0ZOSt0f2jSvfUlDYhy7dxbjATIGn7+qYCSOC2Jw6GQNBRc6+bs5px7PFF7Cwu4qHCaC5MqqsFPuWcQ+mvKnfnVdxIqlakb6eWF9YNPefXtM7WDLMaUC3hIzGdN6EjQFA2rvHsbaaVCp9PqeN9m8Bulb4nj44nDk4JtIS2PzNRQDkYS2fDeD7uoSjQd6T4CS5ykka7F4HuhsZ/mImgGaRLJlCJhaUvRrDcckx6/roFUYG+wR2qYqpISpCn2V0nRElf1YDH0SMFr3oGOWyQWommc6RIxsV0QNUpWUKW2sU+ZU3ulecJ84o98/fFrPW3+f6/33zggHa6WBJfO9aFQBJZZqCZMV4m9ObVFKqGK8vymUq4S10chF5gnZZ6GBUXCFjwlmFQe6qk8WHtJ4xKZZPBPHeq4cDYs1JtjbyslrDsyhU07pSh6chr2wGExXWtA2LvJsNcDBPsrS6gxVJx5ESQL3gfDi3u1cKQ/M1SkGYv/P5iALmNM06MezRqW8PmUqKszpxhyJrnnxMUg8V55nQQm0ZGgF3vqnEbzXxzpP6M3/+/xumuGuTBnY/3wObslrt99wt2rFUk6BjrKZd1ol3283mHtuqvKbs4OTMeZ7qC1c657cAJVqL2xntdgEj2/4fLxHVyfuHr3xKuXt6SRuklJbHu8lzrP0Ds6Z5Y5UUoh98rdTaV1I0lir5nLZzvp6YJZG5iRyqEYxUC3lXZeMYNt37gzZy7CsWTqGsorUajNSDnzojr/7V/9L2B9jt28hHnmvjISEfytAv/oX4AnHf/e98EqX3534tO/8R2mFx/ieRr3j7DwzocYWmuOYA3rFZVxxiqU7JSiPJ6A6elr3XT4/1r3bKd7JwxELf/v/YlfImHcNkHmgrtx92IdabmCJxv7wUbSEM9JEaoqL6tBDm7eISneYJpHMmBkMNFlXCyzIrPgzdktQkmSO0+ulSkldhe6J3SSaJ55VPuTdPakpKxInlmykTYjUZg1mlxKYtLEQEhTd2FbMnaYeHGpfLY1kkbDvVajKZx34/bSWXFuRKlzIs+J90+NXzwIL9YVVaVrKBOnkczxtBqnZqQZ/tk/+t6Dw+L+9b23cb6OSzRseE4M3b717gvONtOlsFoPwYvGkC7ZRvbGVZnRvOBpo/c7xswOkSVwC17JGJPs9GzUQ0Xajs8n0s2n9O0xtb9EreB9RqWyyGNyN+TlgemtBZGok5Ms1NRopdGvj/j1Y+blhLy8IK/u0GqkfEeyjlqjpEKjsqtQpwumS4TjSUeqo60M3MgllLDdYrBtBZOXtLKSVoN6QaaF3gW1E1ksakZJ1LUheiQhVDf2bQPb4rkpipky5YRJJaVEzpHuPqjU4ErfnCYpBCae0f73mTILB7XGQLcMSWOPaYhHfokAnegw35eaQlxi7lMGVaLYsZGYpKPRlYOeEWoqD/ieS6QiioziHx+A9RbcmmToaEDJKLwgGlk5RYKZJkPuIaaJAMBnR5Mxpy+gqffMr6l0SukjvMYwC+6VagBEG2Aj9aYTgxeVznEOu01vEheIMREoDl6VrM409zi4pVOBHacmZziIwGSUbXHoQUwY3CORrXdhbz+l9/vnZP2lX3uPpM6SYiKTHBa3sCx1yBLpaZqcsyYqKV7f/sXEv6SE7zDj5Ay9KN320fhU0hxJb11gUyElpWyVtHVkPmJ1I6+J8kZGipBKQSTYbFKNJMaUIbvRa1hy3ITpAHW1sBO2FnZSB9OOYRRJlByNUlxRdWzzYOPUSm+VsiT8kLlsHUk9pkvXjp4n3vvGSnt5Ih0ELV+m6E7WzFdKZxJhGrYSTUrKhX/tT/wC96HpUaZ/0cjyH/nrdVvJYZdoplfG59SN3gTbo5jp3egWyX4S0skABktcniQ53TvbLVxeCulYePSWkHMEWVgXdNiXw4aj5ElIGere8WYPPDwYxUZymCukRs6xt2lyUhZyykN1FfuPaHv4taqw73skK6qCpofroWqmN6eoMBUjT4Nf5Bl3jWQxnOqKZuXzT4JP1D3TejRVxTvJogn36LEyzY2SDfMe7KME8zyUrUN+D5AHk0KTPHyvSC5L5Bx77+u4mhnTsqA54eak3qifv2S/NHLSsD67kzwNBY0wp6EOKRmRFGw2ifTS5rA3RwdyqjxV0pNEJ6LGPd9bYJXu0WAwi3O2ebxP3gzNjuaO9w4o3juuTk+OpU7KCRnMteUo6CzQRsiJC6I5Gh0DH2BWB48tmG9Ow91ordF6KPEEi70U6GK0Foqd3T0aem4kGeiBAaDHHMkBytVSAoR6r9BuwT5UV2rt7Ab/xp/5xs/0/f5prj/3R96mdmezGPxNvXNaogGdS6J5DHyOVwkZiYB3a+Ny5zy7Tg8WHlHQJExT2KG8gyZlmYTTJJTocY8GVCT/oSMLSzTYpUBvHjypYQEMYmlA1ttQ6wz9/KhclQiuU+YcLMGUlJIhJY9JcArlfffYNxQi+dLjv5mDjc9M0UBctP3+0hapjXhcbP2BvxW11PUcg0ZhWBk1/syJ+BxmgYww3V9qPKznNMMaeDe8R2P3dVyJTNpf8OkHn3N+sfL0q28yPzrSbm65/fAF0h1rFc/GngSTxLrudHOWyanWaWaszege591RM7MIa3OOhynsqNJJl8b05sJpjjOHS+O87lx6QpJha2WaC3NJlKKUPFHyxBuPjqS5cHqUYTPWbWU6QH42P6h5Mg4m1H3jII634PguWbAy4ZqoW0NoIKFikJJpDq1taIL/+ts3PP8v/yry6DrUrGMPcmIowB/7KvzT/wyyAnSYEs/+4Hus+5F3uzJJIndDd2d/vlLP+8BR1Eipldj/JWcY6AdF+ANfe0bJv3/UWQ/Qd/ixAvQfefcJtRkmmTQlWISc+tgPppHE6/Qa3yMRPNCc4OxhZW81mvE5wWadfXMOKTEV2EVYU+wN1YbTJ8UQ8PYWnry5kImAClejpAgjayLIlJCseNJoxt9t2Ocr/WXGlgNME3IxUt/RDEuKgAs30MOwto19yT2EH5qVeS6USTAyl6RsKRrLaOKyCuudc3OpuAsXhJoFUsbF0RZNd3CeYvyxZ3mIJ+JFfWgYvq6N0h8ZaF1boXketS6YzFGzSwvHQS5omoAtwme84RrniGvC6BSfyXpA04m7l4V8cErdaAqnqSMvhdNX3qRtDfczKgnvO6oX+PTM8vYTRCrWN8zHc+KJmIN0ujpnN/zZNXL9LKDqN4m8VmbLeF9j0NdTqPbtgpggpnEXkDMK5DYjrZO2ndxAW2XaEofbA7I09nQcg3uQFG2oBHha0OmIbJ26NzKZeQl3GnS6GZ7OeLqli4WaXgo5K9Y2eruNek2dSZwqWziW0uEnfst+TppZdaiUomBGetgNPZotyeLSiDliMeEP7gU00YCAjiuXSigU4u+hxDL0wSda7xm0BL9DR3Gt4X4JgK4FA8klrH+KU5KNaibUDo4jPTz995oT555bE5e6pIaoPcDtGTB3GRDBe15STND74DVEQT7HDxny9BRqtOPcmLPQegyvL7viGsWkmbC7UD2m4olQshUJhVh1YxvcBo3K6mEf6m7s5r+vJtL/+rfej8JThjomylcEZdHwobd+j1FXTi4Ud8SUUwom26zBwsCjaHVReqvDUx7qByZFvQV3QRNop0uhXoR2+wqeO/1pYSrOckrMWlEXaJWcA3pc7zpJczAiDGiNJSmaQy3R3ckpYKVucQl1DdXCaUlht1VDkuBZuHnhaBZac168MF69vCPPYa/IC7z9rcL04Ykvf2NlOn6Zq28U7ONKnjN05fE0MVsezWQJ264W/vI/9j6jFQ28vg2sH1vmZNFhax6qxzZS1jSaDY7Q0mjvuYTSJTtDFIrqFEmDGxzfUE5XXxQM4OQslCl4MW7Bw/LeI9HJOgOPFWqlFOmmbRd0zUxp7FGBYKCP4ArRSFxVBXrYdEQYkPaxz/VG76HoNAulQaS/Od5DYZWyc1oSp0XYeuNwVK7mQq8y0qsANSbV4B95TPT2i/HqudFapm4Oajy66pQ5DyZiqMuqO6kYqxuHOYrBVkeIhzLUvMOX/xou0Yl976SDQlJ6HZefPRpBvVpwxCTOszrOojz2f5VQGBs+0mWc5om1Cv2QKNcTlhJGJBF6clzjGW3Nhm0wGhR4DJJsFCMpFUrOsV9JxixHwhjK9ZNEmWdyyZAzksMGBgWRhFmorzUOwjjT6dGcGwro3jtWLZ71FrZUlRbwZZM4Twn+lvWAlUIEH8h9h0AMT4IXBmQ8QGE6jdRRC4WXmw3eTeK0DLjya87N+sU3TigSlr0xETzvna2ORnGKJmhbjblATs6L5518VSI5M8FcAnye7mseIRRX1dkvzqU5mhKnMr7fsBQniTTVouBjEKOAN6fujvRObzYaXKF+Mg8+jY4wgN5C0Z5E2Dtoj0SnTnxEfPBEHxQaFpfVeagLZ41hZpYYZqmG9mCenFqjEJ/Uwwo0GF8y7NHmHunFWdFu5LHvDtwXieCKzQPI3c3GmQC5RD0qzcll4Elew1Wmxoc/vND0wNtff5PjoTCVxNXbJ5Y3r1lf3IQ6oEftdKmdrrBtLZIBJZ7Lc+2h2uuwto29d7IYO0pz4fzDG9LTI/teWSvU1qiLsic4PVnQovSk7OvO3d0aTD/bSSVxvtvovZMUDtdlNNShibANu7N5p+4b1eB8qTzOibZ31nVnWRTBI0HRgv/YukEz5nkilwlrjqXCv/sbveYo6AAAIABJREFUfxu279D/97+G/R/fBbuFbUcOo2b66GN8neHDvw19YxJ49u4T9oOi5UBB0MOCzsJytTBdP0bLTCcuqevm7Kuxnivb3c6+VtqlkU5v/YyfhJ/u+tF7zP0w7E++8wZ31UeT2ZB2obRAyqi3kfibCCe8omlwjrNhImwtag8kQh8ipEJYDhlNyk48OCbRUCclblvj5WedR28uUZelhORgpOacoUxMJWqwvlXszkk30MuJ+c0D6Q0lT5W87OhVot0I/fnOdl7ZWoeSHu6wlVDBTjmhmtjPjX2t1EtDig0ltEASlBYNrBZ7Eqr0nEiaWEri2iM925KSUPRi2N6RUbvJ/ZDxNd23IGrhUWLya196QpU7DCXnTNG4J1oDyw5imCVamynTirWZJIlN427mOdOSIZrwvHPVjsyPDhQWsk70Tz7ioG/SppdIysAhGtLzFdvHn6JXb2DzUOjJFLiOkMcPvnelOuSSEXd6qjRNpGOmz5DXgqxKNgMuJEKo495QrUyS0JqwS+KyN0xmbFZcCzlVJE3YgeFQqkypkzxBz6ANQ2l2F2q2CXzYZN0SYgeUzCILqR0xTyTJZBV6O+M9kTWTiyISlxwxUE94q/R++Ynfs5+Las2aQDMmU04ONKV1DXgwTiU86OVHPjwFZ4YBCh62Qx8XREbh7DGJi3RBws+qTikDnuxOsrCS1R4YkOaCidDMaBZqpdaVvUXhHBHUoRhLyREPi9F9U+reJohHY8sZ3Vy/Tw2D3Y3NYHNhs0Z155B0yEjv5aRh14kWi5OTsJmGfakYWgzTuOxa7FGUFAVaBtQjgt1cB2A3JoPJlWqRGOneUZO4cHdnu+/0vebrX/6HvxKMIGIqO7lE5DZDrTLYY0UiBSwLNGustx27CJdXyv7SudwaqjHp21QR68xJydNEkhxNzy1iS7N3JmvMy4HyyKg3O9unE8s3rlkOjm2N/eWGuoY18Wyw7SwCKQvNOlZrFFZEc1IdcopCutVObY3soUoUB/PEVuMZVE3RCG7OdHC22pkWJ6XOd++U731+AxPkSZhOzlt/+prpa19m++TC/p1XnPUpH//1T+HmOc8eKb/w1szp6sjhKnF6pMxXynQq/KU/9cswpucqXzS2XtcVd6X43NdWEe2UYrgn7lo8HxH4MIDZ43JVh60lAdYal1vl+FYmD9VCKWVYmhnWrg7SgqUwJmfFg/eSJVOygN6TynoUOWrs2x5TvD1shYfoiI0QCXuwfoXi00g0pkOEY2QNTpEkjUaoRHprSKsVmqCWOR4TcxIOkqiXTl0r3hqCcRjfv/ZIVmwel9StOW3vuFT2LRLITHIof2TwwATmBLMkpilzc1vZLivTLBBHRqTpWf2xSdrrtHrf6VsLbtDsVGmh3Nwq7a7F/jC+VsyYkpKts2hc0CYJ48RU0kOBqg57hXJIeB6MoqRYFqQES4reEOl082hy9Y73MbZRJWVBJ6HMkQaH9lD+YRQNlp9qpHvqYnSUnMFsjwlvUqY5ii+6PzRMuwutOr21ocvRiJe2YfWPA5GUoFyBNyMRDVe3CEQRia/PqkgKNUaWBK3R7xN7LBI4e7WoJTpYNS7ryn/4L/zBUU/8LN7xn96ag0FN8hiYlUm5q8o8K60bWeP9liwswMvPO4+eFK4PQiOag2FHHugFCzXlKQu5yEiVlIcGQYm7IaqJqWgM8xSOBQ5pJG3mYFy5CpL0HgxKbxEc0CzUhRD7bu9OrcESdaC1ewSEk1IopJZJmbIyT4nTQZiXwjwn6sWZRyM1uyM21FRZOB4iLKE7D2EVp+zMAngoH1sXjgflfBfP8CTCMgap98zpcAQYJcmwNgY/UbkfZIbd9nVcv/t//pDy9hs8+9Ix9oaxh5T5wO3Hr5ifXNH2hq+dIqEiT6kgSTEJdWA3w1uL/X0p7Clxsxtrcy4fv+L8sqJfecTxzQPMhSYG84G9NYoqd6/O7GZYgleXxkevVj57ccfzc+fu5pa72iApe+24xnDuthlzaiynwovPb5mmjM5TQLgnYRcP7pEbj5fC4wVmNR4/Xihl4nQ6RmqZBIdtOh1o3vjds/Prf/nfRN9v6K+8HaEv8xRDP2v4f/dfIX/xT/PR//wDfutv/jY//M2/yQ8+/T63fafnBtcnpkk5lomJxNUC05SYpkKZhdPVzHI1s1wfKVcH8qEwHzO/+P6jn/Wj8FNZ8vD3L6pOB/6df/yXOD5S9kvjxYsdvavUG9hd4p6YQtXmGhZjSRGW4nXH9mioHhQOCnMO+3oWZclKdQNVrhZlnuPskQ7nV3e8eAnP3j8wLWAp9sySZ9I8U9zZzjv9rJhdcXj2jNNbC+ntiXQwqjXoEXJA1mAuXwl2XTjvjpZw5KgqGzkGnPc/t0oo271TLe57mpU8O+emnFfnbP1h8GBqvD1PPNs76bJy9cbE8ZApSTEXbtVpy8w/9UtfebAZxs3z9T0g73+y65T55751zf7yCV2NRqcGyGDUJ1Hr9xTTlNoTk86hdPaM5A4IqhWVgLP4dIAF5PKSJU3k7TH2ZaF3RlpvpAvm9VOmq/fxg43gpgvUS/QpqowazTFV0A1rEUZnrDS9ZWsrro1tqehs0Hf0JpP3Gb10OHf2Bquv1GnCjmeWUwG5IO7svbL6hKZQm3WZo/BaMyoJ1Q31/CP1+kqThkyOrz0OfT1DNfZhF5SesH4J5Z/nQPNoB91R2dF0gFYCK5USU/7JW1Q/F80svf9oSHxAjjizdiaHxSB5dCFVonlVRkSzEZYr6wHWTHIfvRxnX7coKgpEg8INlVDXJKCPba8N2ZYOS6GZPBRMIiHpU4JJ5E2wbhE770ZGUDWoURQqzuw+YuU1YKQDKFlIjB9lcLf8gR2xWo8LcXcuVVi7sPdENag1vn4aWZoqMKnzeB5JFxIpOdmHddIh6QCPMjg1QwXWiXSzWWWkpITyzOz3hY4GgKeTkn0Umw220X3M7hwUpqTRKE1Qa6e9ULpN6NMZOTnHZzA9ycxXie1FpT6vJO+gGR+A/3bXOB5AurKtRl4K3Rrt4xvqdys1Z05fMbabFWoUu4pxqQ0RpcwJk8ylEhDSPtgfKNRQS0i6vwAymhMpoLvNKGVMfQH1xoC2kYpwOGZyiklMKQnJzgcX5YPndzR1atuZp5XDAl//s09J33zKljvzu1e8+OgR+3eeM9G5yjBVIGfSLEhOPL1y/sK3vhaNQv9xS/DruNIUsPUlC0kDcC6SQFqkdPW4gKnqF8wgUTIpCp+k3H5OQODFqX0k0OG0oYoJFZdglui9UwUoikkKJlZrQ2UYOZKpzKQE29pJunDZO5LAMdatRVrh/fceyWIq93/+TJ6HSUEMp+O7PTC5xJ1p8gduF71xudtGCEY0w816NPlcaNIp0iku5KFgcIGtha3r7ga+9GbiyZMjl7VyKJGcmLKRxt53t3Vs3di3UAGuu7PtoU4L+Hd6bR8wT3Gwt81om8SlaoG6dbKG9D9VYWJcoB3ivUuEMFRDoYXgbQSISFz6e8lhk5+AanhKeE+01sljECQwLKjBsiwa8HW3oXiRaFq3PSE9oV3QnrjcCm0Xtq3HZX9IyLOUaJAwbIDuUbDjD8wlSUo3jedIWvxlTrVQIKceGIBUFBrYDm0PJVk0whjP97DBMmypPRRcvfWhlo42Qm+jI2PBU7ImTEle22fqfiWJdL+6xTty3sIqP03w5pPC9SzMJfhUl7Uj7lwtyqNDPBlZoqEVak1YsqINTktiysJxSizl3s4camAtOp5TC0QEhO1Uwi6oIqAathuVaHhK7BlJhGSRBG1mw2oT7ftIMRzJqW0kSg8EE0O9oOoPqUxLhutHSt+MJQcjRXP8GUJBGwp81bjQLTk6VGkMLQWYkzBnmFIA7hnXySkJsxAWwnikB3Iihp9mgrRotrkFsuJ1XPX4jONhBI+kglhHrOHuPHljQpJS5hLql2ZkDc5KwrFmnLeG9s5USgxchitDkpBTnI/LY6Xvne6CWCPnjHpnOh6oW2VdN+plp+473Tf228qlRXrhed/ZWqXVTilC3Sruocrfm3DZO7ML217BOu6dlByTGBw9Pk5h4deJO09xEZVI6GybMc1hASslk1Mknv3GRyv/03/wH8O3/3v8+ffxmx/Cqw/hw+/A9RVsL5l++Vf4kn/MD9LX+V/+2gdsH73i7qMXkVp4mElPHpOPmf3zC1wqqVem0wGZAgqvQ2GNh0rR7fdHXS/cc/u+UDsKwm6haD9eC22N1ybS6oWUE9OSmDUa6JS4l1Vxtp7o4a0b4SOxF3oP1WYEOwQr0oC9Fbok1HdubgrP3jmGWkWVKQtpzqgIEwLV0XxNeueKcrVzZKd1YV07qNCnDBpWbxVIudBTpMpNj0t4aZMimsK+reEtUdHY111pnikpuICqEjZ/NxoWMwINhMoxZx7bTm+dOQuTJOQYjeNXzVgOyju58Kfeu4pXdMiW7rlZr+MKg5Xyx//AV1Gclu6Q7YCwkDQM8KIVbx2TjGM0geaZXoyeFzwnXC5kFSY9IjJhAsvVNaozNmVSS8jpSE2Oyhz1VRJyX/GPBJkvIeepnYKOcK0GbEgK7I3CAzqpm2FtAxeqC9UUsZEsmAS9Uvrc2efMeihYcyQtSGmoHEOwI+DpSNEjkwhtrSAN0Q38Qp6MVjvOPJiqHdWM0YdwA6bDiWIePOFJkJQxWaNe1IIkIcmE9nga3QsVxfwu0lrJ5Kyo/OTso5+LUzSJBwF/xHxPwHEwDkxtTM0i7SuNzSpZxG2LxiSuenSurEeqTETBd1rk0IdWRKD1kJZ6D+tE7T5kbfE1D8WKjPo7ZsNkMXIacs0BUo4mkJG6INpHU02/iCknoKCRXgZtWP6SxSZQCG19wRFNwfBQp2QjZQ8VWYp0OwiZX+qJ5JGuk0fzTnVEXUeGeWx+w6KkwKLRRw6LYTT7RGzwvzpLYcRiv/7rq4/nUK6FrwUwHmVnSfHa69igXTr2wtCpkJ858xSpXun+RXIjZWF6VpifTfSXnf5yxT+/cP7swuW2Y88v9MsZu62cv3dh/1jpeSa/s3B6Q9kuIWWu0ujmTKJkj+J/qH+RUZGr+KBxNJINixGQp0KZlZQTqiFx3k3oTcalLUIBigraje22sd82aMG+mZKOyHLnty/G5+eV863wye+cWfIrrqaVN7+mXE+ZJ189ML+ZqKevUL9zR/ENmRw7O37XkLuK3RjfPAp/9OvvAD9+H3wd74bWOtY7DVBCLuveo8kOCCmmah4ph2bBhJmyjlSveOamY459MCVSytFAGPtQ38E8bDpIXMhaCwnz/cVPTEjayckCXGkhFQdjVgUTWjOmqcReIYJZqKU0+VC2ZFIG24bSJfoPQLDbxPtoRGRs7DspjZssAf52dyQeXDQpbYQVWHJ2l5AeizKNxLHejQ9+WPnu71xQg/PeoiHRjdqMbo3anK1p2M4QNMUkUjVa8V3C5vQ6rmSdVOIZky7MVzPzYeH4SLFeKdJRCyC1EJd7ja7jaJwy7KEejWsJkL6akYuQphG7vAnaKrbt2Nax0UT32knZUN5EU6GnSKwUU6idfjH6Ho0hxMgFajXq6vTdwQSrMuxXSpeOWDC5XA1X6J5wj7iXcEM6qgk3RSlEPKY8WMXcnTwBEs+fSnyW7m3zNhh13sMmGa3ZeG2E2Dj7UIIhsQen5Ei3SA92+Ct//g/H6/+aNhoAugXYfSrKdmlkEba10004bwFjn1M0p/bdkayUSSMkQuP5mjUU5ZNAOxuHU4qaaSgRfjQNuvfRvCSshFTou7NtIxXTLQDXJXGclLnoA680Pt5CB7ZGQN+7R503ar7qoQLLadhhuRdshl2ySCh+zOJnM3cOp2CIJGEosJ1CJGgfMxQPmL2N/SWg5VEP4jEkjcYWTChZIv1Vk1CKYNWZ7i/XFu2uST2GjxrDW31NK6/Hz8K2spuxW0MkeEMZQw8ncKOTKPPC5WanNWeZc7TeFcpU6GiETUgoodwNTcr5+885vXXCW+fcKr51bHMm6Vz2yr5vrJcNE2HtxsWcvQl5htY6a+20Dnd7ZeuNujcMC3U1Rk8gHmysw6yUKUe63Dyx1caVd66LcFkb1TpzUUwHX3fbeXQ1M0+Jw7JEvXnZuXp6gmXi179zy3/y7/868tlvwsffhw+/Bx9+H3nxMdztPHr/MZ/98MIvfvMx9b03qE9PkI7cfPD9CDqpG54K6ckVelzwCn57i3pnPoTHQIZFU0fT4XVfP/ozyhiyiMOvffkJVUGnhKmScrCGXIjmUoJ9q6w+rPijT7S7oyVsy9OoayBRqyG5oJLYeuBFttpppqiHa+fzT5zjmzNaYpCiqqSSaT0GAnYnXAysrLR1ZaqhpO9iXF1PWFaU4CwfsjK5YBqJzl2jrqoCWzXS+PciMSwtaszpvg4gGgJJkBbMyQ5MBCBeBa418QQPKIEFLmPfGk6L57kob4hwLmHJD4TK67lf/egqHqq1f/KbR/A7ytuV+vw5XiORT9QQjojuGBtuGWTHc2OnIWqYrnhb6FJRTcDEKT1GriAvmfnqKY1GWyZk67S6gme0bdRPE8vbT5lEmPPEpIo1BylMmpkkBc/PStQ0Q42eWmWyI8rgnQqInOJs7dDQgEjKjosiJbPVBn1C75ElPoHdonKHa0MPDmu4ujKCeUeSo55J3cl+pncbNWCIiExWvBl0paQUh3EiGlgCuQjuZzo7XRyTmYKH8CttCMGmtgffwf//yn+PnoXf02oIFeMgRvfEjXZKg2OKeOfVjGzDFkMU4t6FQxag4644NpRYMhhBPlIiolnVHBRj0bDL+AAix65nQ6MlD9JJ4X5DMUwjYmdS4Z7NZT0mgWmMw00IYDNKMx4i60OqLg8/J6MZl4mCUEexlehICUXYlBiU/7BDJI/LbPibK6YSVkwjpgg1irgu0QSrNhgQRHJUFJUJcaNoSGuDLxK8mfjZ7v/b67vePBb+/K+8+cDkCXunUWtGs3NMMJlxd5Pojwr5SdhJqxk5RzB3Utj6mGp0ZylRbJfHgj0vHN6JouZys9GX4MFMC6S5kRbFJ8WGBF5TBxJ9c3oOiGxxY29BLdLs6CSD+REXUe8hiT8cUzBBckCiG4LSR1MjJKtizn4WymlkNkliyXDZGEwaQSTS9spRuDsrv/2DyqOnG80PnL93JucLtSnL+5lv/8YL3DuXLsxXif4D5WCVdrVze8qUZSZrAWv8mV+d+UPvn/jP/sf/+0ckua/fIagKPUVaIOpYbxRN1O7YSFalC0Uy3UDLUNcRzcWbjwPcnmonncFL8LSUHI31fN9QiqRWcaVVQ7NiFkoKt06XFLbmi6AHi4vbaLZDqEmTaIBqRYdKwUMdppEemLQxlYn1EhNqGw0z1Ugd6eNibxYMrB4dgjgke0yuS4pCsQ1lTfZExRFJlElo1UZDLJRbezekdYzOZ5doHpg7KgZkxBX3hpCpfh/i0SNtrytgwevR19Oqs8wSzc3e2Zrh1ZiKMk/Ki7sBpJ077c6YHkUYRXdHeuzl3oMJRIvzCJ0elDL5qqDF0c3pe0eK0e5WtDurO1NUdHiesHKDVJAWKT5JHckJGU0muUSzA5VIhNWInZYWKhyVGK7kKbFtIwjBRkpxirRFsxi4MBpeBpjvMVXWOBPbLsisaA5OWFfBeicVjZ87E0e0Qe+h2Ot9pBArkSZXFLOEYTH06UolLskjVJj3jmPY8RofidNp4tFBOWTh5Sc7Xzopt0VHkpNwulK22wY01jvj8bNpNHKUUxY0B4h76sJeO4+eZTwr27kzpdgbLcHBlfNuzCpoEp6/aizHhE3BnbnsoVz3DdIs7BYJf+4MdiqICd0jdbp68FJtwNNVnWYyuH4MWHzsj3MOhmQWYfdQWy8lnp3WlNwcXeJc2kyYs9MtcBSx7QrrnXE8hmLMzDCiKWN4KNuAOSk1dURh2+P/aRbmJRAPWSLgZ5LRdBvcmUW+sE2+bss8GudN4nN+9k4RoXbnKgXeIg2255M3jrz85BU5XcVnuxneGylD33twiMwhObff/wwpM147bjBn4c6dg1W2O2FTp3hi96jTyKGua73T9o6tjelQcG9htXKhlmBLtr2xiYXCa5nZTs7ldmOaC5oSdY9E1NWBHuFJCmQ1qEKaZnRuERhlUBDOtXL99pNoaF7N0Bt/40Wl/af/De8sE3/iD73H6Y1fwPUlIm9QdeeD+Sn/13d/h4/2nVYyx7cK1IXPv/ecwoX57TcQzRymhaqCU7i9OH7Zkd4oc4mGfm309nqejX+3Ncp7VDN/7lff5pxBt0qic1jg5Y3x5JnS94qrouahvowiGd+VcozgCcVoZLIIhynCbaYMnUy7VDTHmSY9ho+f/VB4+/0rqsCelIlMbjvry5W7O6HWRvPC8a0D6w9W3n5PuM6JNWW0VbRFquHaIXULVVlXsoXVdl0rZUqUCdqa0Ayn5NE0685ZlVSdZVK27hE6MdTYnjNXdFKZ6JfOIXeunx04O9x9diFfJW63zt0euJSlGmKdD87GfnsbdxaJfThMjTJYw6/hEvjW229ypZ+zspAuFX97otaPsE8ekZ5lkhrUx3iq4XzoHayHxZ5g6KUSyI5ujVwm7j5/zqNn71FUMYV8u9GXM8kyTY2sd6wfTfR3hdoqRWasbagpTRu9VbIv5DTj1GhYtY73Bi4cdaL5SuCHhC4b5jvuC1mDCbiJgy/Qz6xlZqrKpVeSB8ZI5IJKpnoi+47bQilK94qzIczkUml2F4N7ZooYiYzbBcsT0odCflnBTggT7I5mp5pxkWjIm0Am0+yMkOmsqB3xpCTreP/Jn6+fi2bWLPexzBLQ9KrYiEU+ibALNFcOydg77KbM2uNKZAEVvW8UhcQyLpD3558NP4TJvRgnLniahi1oNKmEIS2X0UwYdkG3YIqIg2G4haqgRCNy9LV1pJOFusuG+qtLqKBMomBXvQeZQjTPYnLeW3xdIRgOKhEf7RIyWfMAB9bWArqrnaJCrQGqN0kITm0jIcohZYum2ki4MITaQ5Xk8JDkkz1+7+6v7xQa4F/8w++wEUXvVY5pn7uScmOWCbfGele4ehJBBBm4BUDZekTWn1TC5oA8KGQQhefG8pUMRRDb0RHjrSV8vy1Dr4KvFUlKGzylXo0pRyJXTsreG1KUvjtuobBQgqvRukQTdDyz1sGrBYw7OX34PVwcv3TqrOTrYOTgwbLZPdR8WRJ7NVCnJKGjJO/snvnffuuWdx7d8M7XnzAz0Vajrztf/gcX1s1YV+flC6F5J904r3xhe76hj+7g8VXAlJvwC4/jtRO+aGC8bkvHHoMLvUGJRIiYupvTnJjaDoVdq7GvSYf9eSi4Hr89oyX2s2ZA7WxtZzKl+miEJiVNmW49IoEtmtDWhZSFWmukkgwFpnsf8FOJy7wAEpcxTVA3RzNAo48GgrrS6hapYR0kJRIWzD8LVUVc5IRq0US6HyQgTk6Z7k7rhF0sRjF4jyCNukfDXHPYqR+sAKokj8n77gEtr5Yx2rBA5kj+YjT5BdQ0AK0ibGbo72GC8/fTEh+JlxI2JnvhcDDYO8sSw5xueQBrhVQM9Xurng1unZFU2e/t7Wb0TUhzsDi2i5NKppwcSqNdRoMxx++ZsiLDq6+qZE9Iq4TaV4aF1obnMLwtwVoiEi/PmU40d31YyqgdHxLC3sKeaG5gFvwFvw8kieETDh4YEcpsdItGlaf4LJk7DE5kUo3IdDX2ZogkRAwskyXSEG2kL7gQaaA69s1OJB27jJ3rNe00AI+OmXeeZfpmXL09cf6wogi3a4TRLCUUAMukHJLw7CoSNZcE5y6kZjxdMuvemR9FslLb+4CkR+1SJMIwTouyVaObcDilaIAiqMGS4zKpR+G8O6kEt2qv8dwnC+trl9hPu7Wo+yRsx93j93DgUgUVw5OSi9DMySXHZDrf88GizsnF8SykBhVYcmjZXYx51AneQ721bsbhMNRZhCu1qLCbBXTeQoF/2Y2lyHCtBig4qWP7/TQarDklh+2xuSCvKap0njJSa6hm1GjE82PuXGqnnYV0NDIKvTM9OnD76S2Pv/SINvAi297RvaLHhZKN9fs3pC89xV7dYqOuMIcpO1uFMgnJJFwbYlw+37A5Ei7NIvWtG9RaqSZMKer2ba9kFdbqzNmY3bB6Zi4DBN8ajjHnxFIybkY156CCJaObcizC5e7C6dGB2oxJnJefXzg+PaBTIWliPhQut8bh2SO+XZ3vns/8nf/1O3xt+YBneSI9/00+ul351IUffvAJ7frEJEbVzKLw9L1nPP/ojv0Hn/Lk3Tfoaw3rmBtTNtpVQXbB73ZSMqxEzfC6r/taQmUEMSD82//8r5IvO/ryjt40VC8pAkQ++7Rz/XhiyuGIcKJG0izMKyAJHxzAnO/T7oV0r0AXkJI4lMR57DGvfrjy9L0TcwkRAq1x+fSOtivldM3jU6PqE95+t2M3ndRCsWIIl8GItNZo7iTLdOKz0a1xqcarzzu9wN3njTx1ro8z01nokzFn5ZV5MAmzsnsflupACpg5sxqnJ0e2tXKVjHLIvOrGCeecO0Jmmgp975xK4SZt9BSDV0G4XpQvn0787s3NgxLuNRXEk1H+7DffwP0zuiV6Grb65Q3semf97I4lXTOJI1MiqSByYpfA+ITOvLD6hUO6onchtR3dOl6ige7cUsRwKZiuFJTtdzcObz/l0j4Dv8b6HYtesbUbshzQIqGaswxdMC7gC5oz0jo7Kwc9oq3jckuyhKcCbDSMYifcV5I2ml5Tm9CnRjYhXzrMjutOraDpjHIiSaf36JW45bi3tg2TRM6ZVqN3Yt6BZQz2K1wV+t2BdLz/Xp0W0Shkj0CNOYeASUXw7Hg9Ib5Rs6ImJMrv4T37OViOMbnQJaDW1RQyXEZBcUyRQiijSSOpY8QEOiOheECGV3o0hERGXe1DoRBpYGYxycPB/h/u3qbXtuxK03qcfk5GAAAgAElEQVTGmHOutfY+555zb0Q4wk47nZlVqVSRhUrVQrSQEKpOQYcODRr8ATogRLXo8Vv4H/RpVANEAyiKKn9F2vFxP87Ze6815xiDxpjnOkFCckm47LxLCjls33s+9p57rTnf8b7P62mZF5sOrpKxxZd4nszJ7EuzYkpgubmuTN5VZGtiBDlpZt4YeWlvSjeZm1NCKZGtOdmAkFLY6CnIgczCxFTUc4MEDeWIbPbSlo4NtwQPqsuLzYahMoW0PORZ7skxUphLEWvW9saMoTAFusjYwad6/df//k8oGMUK25IOOMFp8wEVl53OitwNrlMUvbgS4ZzqNNRFTm15gbx6TlyrBs+lUSIbd2QPOFdCEybpZpjB8X5wfp1RiarBcGeVglbP+FWkKDl6EHOH2/ILTKEjWCLdWlXIzUoIPjdqdsh06gTllGtLyOnnNVK03PdIHpc5DWVZlavl5+O8BIco12vjn//KePXLt/yjv6ecHl5nZGPGllwFXgU8VQ6/cvd5oVzu2a9XrF9o9yvUQpHGf/4f/gX/w//4L/iY6vzULhNqzQhdqQndZ4rRLoGKpvjNYKl5QK4qqGX8YXtTiQlKRoVlCcIqy7wXagFiwc24vR9QYT0r3Qx5qQF3EEmelkpBSsF7/v8QFC0cRzarqkIMpaihonQbs2WsfIRrWxiUMqvjSUuxlmxTnEUWU7PLwxnKGoXOwMyBlgcHUnzainJYoTRnvw5agErBp1dvuE8AeAr73XMzKi8TRfHcWEZuVvFOtxmPzez0x3KNT+3qnvd0jZgHbPDrgY/pXhPJ6nlVfE+nSqmKheWfnbHyNLlnoGn0oC5KLaQouju+pqtZa0O1U7aMcZpZKrNiGXMWmdb1FARU01nS1nQJj9k+98KDCwSTDFM5c9Ck6b6rWD4kxXLo4zEPFYFLoUhWbEaA9xSztE6Xls3DRavgydSSAlUyoqsSGckVnZwiULUsMvB87UTzdbLJFYkeRMlQogu8vit8dxkU0fy5P7Hr+V3nV8P47KQ8PRsynLUELZRtUS5Xp0i2FqokomFdhMuRcRUi2w/7Jfllrim8okLvnusnjegoOZzbR0bwpnkO1cQ+DNKFvy7JrurTlVXKBBiXbJoWTYxD9xQyDMnprUCbcdHMGmar7HkVxJ1aE8zsGoQ5p6ZQco+077l+X4T4Nl36WpKNUxVOrXDtgQ6oa7qLVNLl9f7ZP7YiLy2h82ikoBwp4HnLgoG6Frgay13hsOSg9k/0RNhKMmSOfjB0SX5KOG1tuAXv3r/nzf0jgbO70M3ZPr/j3ddv2T5/mK5ismnt6cL16Ub94SOuxj6nsVUzoVBlIFUxFI9Bn/tjOReqFi7XHRdPMPOqXC8dWQs3c1SdVYTbyIZeV+HaO74b+1IyIoZQIp+RfXKxWhOWpXI75j776GynhtsgtFJVefjTN3jPiFeUwjGZSPvYKbpgofQh/OrXN161nWOAi3Ebg+V6g8dHZFlYdMEJVgaPnzfe/uaR5998y93nr7PUwoK2LsRwpBU4KZ07eP+W9kdxyvv9XkHMAdpky4pmSUoZrC50CW6z1OLNo/J0MS7f7chnC7XOaGLkoC6qTtFeKSWxN5RCj+BuraCGHMbnrfF+cvgu31wY1rivyh5Of39weyfEw2e8+iKoQ6k/uOfUL9itUE+FZsHlm87RDp6eD+zqSA1ugzno7jw+Zl3E7YDtsUIxlsfK26+D5+NGe6hobHx4f2CZMGVo7h1LCF0hFHQkzuJ6ObjbnU7ej7bq7OsKLV8bG8GDwiFGJ0H4Q4JXGrypG//4p5/zi//16ZN3LVsp/INH44OmAF9MaZLMvN0L59dnILg9PbG8a7SHOzrB0hYqlxRVPTjrPebJrlWp1E1YfFDril8Li5/Y40rDIB6RERx1R+IOKx0/lOo3hjScW+6TrBDhIB2VLYeEo2NW0ZIpBwmlRCGKM8YFfMNKR3RQ7MThT4Te0DhhPtBo+FpY2NltzcIwa0lKlUFQGXHL9JjdstnSgiGZDqkDDg0kFswvyDSHtOaEV7wITgM6WgfhSwqAMYCOdaG6ENJBG8UNwUH23/k9+6Ow4pwg2R7kYaVhtAgIY4+cptRIkHs2zyg1ZG5+86oiCSsTPraG5QQ2XVkawdZiTmZmi0WkN+oFDpoJwKwjFUA93RbmJXOgcwdW52bePdU1e9nnah68UlczFE/3lgilKKcWtBaIpgtC52FXFbBCcQFXjl0xY26KlBhKI18DDU9WhCSDoodQq2WzYdrOqCK0KcgFmoJLKRQJtpqgeZMUR+TloBE6BbVP8wpLrsurBiuORiFLQwO5Cr00yjnjS9cZ4fQpankk7yXm9F4BOfL16w77W3h4Uzm1FLzGs3N+vaAtBQGpOcnRHi9O+fxHAtNcPBKzyWsuJl1rKuHFZ3xNUF3ZD2W5K9k+Z9OBp3OCLZJrfeT6rZqb6t2D4j6hu2RTHcJSwXtQOthtUAvcLVA1q9SPtfE//yz4X/739/zz//Md/+LrZ769dj6YERbEODARau3cf+a8+fEG7cz3v9pZ9AAJfnwv/OO//+M/3Bv/+75mc4xqgCZTRVQ+MlZaKbQatJrMq5iOpOdvjPVe2O7zcyelpGPFSbh6AVoKUEi6+O4+U7azcNwCfwqKF2qBiJyM1FIT4jIcrRUFrI88222KVkFUCRloKQy3ybyaYPrIgyWkACBScM3Dv5ljw2dDqrC2BZD8nSSI4qgHtS1Ueam8zgeqe0JzAs8YYigmgXkOHobry0uZUSFeYtYJfQ6PyaKRCbOtqYGEZJttwB/Jo+z/96vU3Ki7pDu36J6O2pC5mZwtfghxMBlBg1rTz/nCDOrGBFJLsj0EqhvFDI08sKczyigaGWUQoenCTMzkAMgcGwkJNWCPBDrroty9CZbTmhbxJYspbjfjIDfUUXIY480mz2qi6UU+gujLbLKjSk4bVbEeybpcCnVNyKiWfP6LG6Wmg6aQn8PfFi3kkOtv85bCZqNeJM8pyINPSHBErrvdAuvGf/Mf/9Uf4B3/t3dd9sHlu84vf77z/OxcdY4/RnAczrYIj/frLKGouMExgihKH7mP2i8BW36e55YqneEtn0HFg01TeC6ixMg9kRZJOPEs9mlM6P5csxopfBxHNmqG5H8n4iPrdO9wDOg2GO7znptDgTFyyLmPjJUmgT1dUB5wOZyjw2GTkRqwKKwNEkHiyT0c+VkThLtFmDYs7ladLdXBUgttqSxZzoRqAuE1fxRqgUWCdVMYzqrJdJVgQus/PaEUEq+hKrR1mYNi0h1sjkk2KYeALbm/rkvBJVje3LFfjuR6hhMifHh/o375mFHBER+dfQbsPhjDMU+H0pgDZuuG2eB2OxAM60a4s3s6RM2c3h233K3nHsy5XQ/CHTNnt8j9lzsoXPrgGIY0zXKL3XBxRu8piotgI4ek/bpzd3dmjKCdNmptea9EuL3b0aKctobWSpXCe5S9NXrbGA8n3lpjXZy63HO6W9G6YTbQqnzxp/dcrsq3P/uOsB0RZVxuTDPt/JqD9nA/eYSf7pVGhsm6Je/h/91/8g8y5XM5EgnjMR1VuclaNqWqYXs+K1QTjl4Egow3dc/GeWoOZGqRLOEK5bFWrpL/flyeuT6vPPxoJXzw9mdPXJ8br//ygYdXB+tQ/HFFxjOlLLQl3cCtCvW+cO3Cen9m+8kD22evuftsQ0/KF3/ywOVWOUI5PxbKAkstnJry0x9t3N+vPF0q3/z6mXYKulT6TRiXyM8DwQ4sDk0U68ZdgBTlIjkceL93nvpgezzzoVfaGIn2ue5ENw5zTpGpku+8849+uOQ9+OXk/YkeGf/8dMbLW7oUpPg880PzhuCMks+N5bMN3wbHuyeif4C4UPUefGOpG8KgyZJMbRXCTqxVWdYzy37FTdliYcQKyzvkh4XuHYsdvxkuaWSRSPFB3AgO0lGhmB20cJoErTmHwnUWOi2cWWylcSZ0z+SW3/JeHGfcp17hWVjl3Di8QbTJojWGZuS14yz6Ch0FIe/Tq9RktVnFEZrmObfJObFGFkit1GJAOnSrFsQXsAY6GAE+KrUZ6IJKRWRPrltd0PK7K/F/FJq9RdbMK4qHY1IokvwpKclJEM0p9cPkeFjkFPWllULJDcl9yMyQR1rK54aiR0ZsXkDwGkIGDipDEpheph1LyXjhcPtbFcu5eJkxxkWFLoaLMItsYP45NB0YOg8cMieJqc8lzUolbaB5GIHSsp2nhrNuuffyEMKNtmQ0yXsCnaUk70iV+boFd0WwBIPlFF10OnoCoqBiDEl3l4tPB0kwRh6WjOl6+ASvf/bv/RTTfH0PMtIQBKHB80XTxeTBZUYXaglCJo9HyFY6mRv1yLW0zjrEbAsR1i3fk4XgegTbahk1VMfHLDhYErgskdWu3pU2I7Iq6a4o5IE9ZnrRDxJurA7jYPfghLF7xrhkChkaGen58L1xemjYXHiF/OwMV8yc06nQj0HbBDW4jMG2LNxV53bk11tLIIvSEa67ctmNu0W5NtA2OI4FkZ3TDxZu74Rf/h83vvqzjmwnzq+VxVbePyvXtzc+/5ONf/oP76j6Q/6n/+3rP+xC+D1cqoVhB0urKTbEbMfUbDLUmtN+nc1VSxWef50PqfuvKjKE5fXGfkmKcV3yoN53582PT/zmX19ZJvRWJF1gbIqcNO9XR9CfoT4mALI2wXclZMctWGtBmkNXWi3c+qAtLevsRVlW4bhmMUW2g+XkWGZDT6slY4o+nRYWlLUQMag1CFWQjCLmKMAZsznVZymHhVNmfNpFsJIFHwljhnuCYxghmqXHkqDJ7pYcJWIeVvMzd3TL5sc5jcVfYtuf3tV3oW3pAjVJl12EU0oGd3MAkUJlrdnOFmIskrX26aRKt6BrNvPiOYFWL3CbTcA1iEORkZuORgJpVRxD5yHJX9QyPDKOJayYBP3ZeP7gsHZGQNwaNnLdSwmQwvCOGCCVVoKoSXOUYQnWXhpmhRjpuho9B1kiQpvRtBfXn8yijGztkul4Tg4WKogLEoUjRgq0AmE5kNC5Tk1TXAlNx21VcKmIZkTgR68gA8KfrlAqmoJ0Veg34fmaDx4BpArvn4yHVwX3YNuUWzeOZ6eeldO5cHm2j8UjWqB0z6FfTGff8GTdAX1krO7cMl6IJFO0DxgVbgZNc7/nfbrnp9g6Qj6KR0cEPQ30iAfUGduv6TtfSv5erQpbLYwBreXnY6CIJog5LJlaYzb2qApLCKXlfW6ZvIcRQavpQNxaRgT2Hhy3YD1VtruF7dSwduah3wg72D1dDrVmxHWIZBxyyedClYmjIAewn+Rlg07ucfrTDTmvdIRNUjg4ffHI2+8P7h7bfF5IMn6qsCyF988Hp005vvvA6as3PPcU2qsyh37G0dM5eDmykVDmEDwNoiObVt2wMRuBzcCzLTf3UOkItN1oNVEdZsY4knlW1LkdxrYpT9fO+dRw69xG8nCO20DVOJ/P+KRhtqZ8//Nv+ervfcXT27fpUDuCbXF0qxx75/GzB/bbM102Xp0q/fnC9qPPGVFRN073J379/Tv8+w98/uc/5OnDE9Wddd1Q61wP+OKnn2G98+5XH3j1eGM7v6Ifnepw6XlPFXe20x/FMe/3diVGho8te4hw2g/GxSgeRGRvvZRCWQW7Kh7G6aHSPxxwV6mahoNFC7FmA3VR0t0nwoNKDqfdKBS6B14K8vaZ/bLyxZ9Xugdf/8z4/O//ANaD/f2FzRYuD8p655SjETjSB34YTYK+Cs0EPQcrjmugXrDDkWbcfy5QFkZ0zhEUCuKD75+d5WFlOw/uY+UXv9nZvhDanRBSERsEyt0BcQRlDXor9Fp4vg5QeBdGK0qNzvju4Et1rnXh+fuDizubCI+VbHYUsnW73OZL/Ok2GQL8p//Ol+zu+LLjvdNLw8KIUmAo57LgdWeMQt0aem6wL5TfOPHldB/ZwtJOExZfqDqQscJ6h/h33N82nh46USsanev/9Z7L3TVj7NXYpIEptcIYBV2Tt5xD3QtunbXUdLr3mWyISmDcuHDPisSBhbNJ4+rOMMHUWZsjvjLcqWqMuZ8accNovDQmUitmxuILQ5+IUtJYURrWmU7onSMK6lkq5cU5bp1NVlpzbAyaLgy5UuIR54bKjYiDoiuFwa0rpRwMKVTe4PEO8Yro37E2w5eWl2MGn8t0YTWJPIz3nPKLC7cITHOjVFAWzRajHrOe2TNWVWQCpzXjD1V1PgiFFzaNUmgKa/EUDubEO0IYPlWoF+CdyMea2wwlRrb4MKM2ntFANNias7TpWJgbbiHwfaFEPmBwxS0rykUzDvFiaf/b4llBM3IYhVacU5E8AKujpADXpnjWWjqQmMJFOi40Vdt01XNYHkTSAgIWOuOT6VL7FC/R3GZk74Ng05VwvAdZhN2mxYlsU3ACl2yoKwqLpgOrSLaK3NXpwAG2VkGYayQShH3N99zUMS24ZM04d8L1bSdKUDdBah7sdVEOn3EYFK2KNs24BhBDMBGu75z7h5bip2QjUkwGm3tw6yCTJXOMnDqa2wQ+D5Tg+qGzFuhHCqxN4LYf0wlojOwxpmlwWuDhpLw+ZeykkA6x29OAVekR2OnE9nDP21/taDgcg/Vzpe2DH/z4xPd/cwWMf/LX9yxt+YOug9/H1ceORyXM8PAZkQtqZHOgMyug59p7/nZkxf2PFraHRnujbG92lmZ4S9eDWYpaz99fWSszljPYzfOQpMH6RonNkZOwflZpVYgO9t6xp0FZG/VuwVXpV8WP4HoZXJ4ip27pR+V2BP6SGcwTLN0Sml3xjJnNqGQ/5i89Auu55tydJhmpKGXeQWbMBs3DZol0CWXsEVbyf9cZO7OAIgXz/D6jOweRrtRwaiTQ+YXTkLjbKTIz3SSfaET6+CbgCjbyOWGSUStRzZr4yEky4USbMPZS6SOHOx7MIQ50T+E8xMEUMSeOI52Blq7f3PTP1l/0IwYLmxHjmM5jzWn29D/PAU3BIp9llEBLDnBKq7TFqUvLiLIbPabrArJiHBh7xvhz/qKUU6WsJdeN5J+jlOl8BETSkRaB4Qx6On2YbcQymzUBmNZ8Ej0QkWyV7sEYmvFZnZyjacF2c/7sq1cAs5r907pKSUjw4dDJzWxTYV2Eu63xait89eXC/Z0SBqetYM/B6VWhVqEAD/eFpcosvUlHailKK8oYwf4c+M0zBrUo53tlv04+6dWxfUYTTSgetEjhthXl1LJ1KzwIBpowwMmugSYZm/YZOZXIu4FZ3iOEdDzXJixrQUo6pkqpLK2wlJgx7mz2cmNOEWGrmns/ASmCkX/mRVxdF+H+Xrk/A2vh8gTnBlG3RA1EDrqK+NzLpVB37Ll3lZI8Npui3Kd4dRHMk/W5nGsKp5NtpmT5R1yf8p4VuTcn0qnWCe5erTz//Bv08TWM2byrmq42gn23dPO5098dk5Ml7MdgP3LgcVgOdDORYbg7Y0xOZE938LDAJv/UbSCUZMSIYJ5i5m0/0Dqb616a4S6d5+/f4zT6MI6nGx++u/L25+95+MFrjlvntBQe70+0anz48JRsW00Q+Pt3jo3OYQc331mrsDXh1eM9p22B45n9/eDpb/41dv2O1l7Wk7O0vPOWtvD4o0fefdfZ376djEnLqLa9OHg/0QUGv90TiEyURbq4FwIxm/HybHwuJbIIReS37l0LNo0spxBh0yAmF7cIeBHum1KKJsuKlVNVaJUYxvvvlNY6+7c3nn5+4au/eqD4BfvGkGvBToZdrvhtIMeAvYMFRRWolIlQ2GoyQ8eMBW5rpcYsKbNZFOY54HsyRWqjW6eK8BSB3lXabNAOEr9TwrlbguVUuB6V/ZaD9Vonh9kDvxl8fzDeD757Zzw/H/TqtCWB92uF3ZXdyJRUlHxGf+LXX//YOfozfRwMEboXTAohO7TC4TfEChtBLRtIQU4LfidYP6NeaWK4XcCCpQh3BK0udJzjQ2fnDf28AJ345jva8gWvzq+RurGyEc/gzzfstlG40cJZ+8CeDvr7gVwavH/G3xvSnXFU+jD26NwMbhJgKxKKWUP0LjmGJTmiGp2QTo+RIHeruATm18Qu2IljWGKIJO+LYQdFofqByIF5J6JkikzyHm2Hsy53SBNMIWrFSiF8w2NHYiAtUL1DRUHGbNmGGkH4B8JWAsf1dxfi/yh2aFUnMM1iHm58AmOBlwmceDIvdPIVSNyGxWSpMK3aNW9sFoEVS6FhtrYVUzygleBUglpy5+T+whbynNiGM9x4qUx2chKoIh9ZITGt50UmLD4zDVSU0YUqRpEEm0nMLPeazUy1CFVtuhWCk4B6sOhgEWWRFMnKtNpHgDKhrALnNVi1ZMxoam4vgkornqKIKT6Ao1CYMFNyEgqGMSGZEcnREZ/BxE/vulyF43Bue8BzwLPQadSHhIQ2zfdSJKuf23T6JYhaeNsjRUtgm/DYVYVzkbSjD4iezq/n3wzkYfvopjgMbiMY4lhJUfYYwfUGDKcfwtht8jqchVyvdjh9ZCywE+zvg/NnC9UD6yVZIpGRMkYKrVoUWmBuyTmZYuVhytOR9muZ02AVwyzdHYtm9MjN2Ug3Y3Eo3VjVaROM2004eiB9ZJpN4NWfKl98frD3B+R4ZmmC7UH7vHD5Lrj/4p7f/CxgH/yX/9FP/mBr4Pd1KUGx5BqVojMKkwdmIlN/MkGiCSpo2P2SLaQ3Y9yMp7+B6MZpSdGLtcxosrBsBW3kIX5u3HRGr0ottFclGy9fZavO8kppn+dG5fC8T1JIztqpcbqvFMkJofPSDug4hb1D945McH23FIKJkfyhmsKRz/YfJyGU81swLJ1WrRRqqen2IB1YhuGhVM1YHKqTwVYQ0WxYmf8srRDHyCGAKKHZVIfPn1flY5wgKSmf7mb9/Jnz/jfG03twZg4PiDK7hOZEWX2yQlYhc31ZUFHmpCIk+VUZxygMYOzpgAm3nAQPS2ceTlCyFVeT++MYMeOuEcAc1MjLRFxhVMFD6Z6uCV3TEdGHYfN9N8+YO8A4Cj5eBIIcwPieEYaSu3fCAiKZWOE+yyWA8Iyfxdy+RxAju6eQPNS6pqPWFVwtTcse02CWe4NAMWceXmM+t/O1Fy/8t/80o4af5HkwJGNfZCPv/fIiGKfIpUVzQFIbECyLspAlF1vN4omtCnVRliVd52UOCy/v8yD5+ovK+ZWybCkKrFVpp2xaPZ2U5ZwlEXVT1q3QWrAt2RZYgHMVKBkpbrOBVSWbFHeyICOmuyy05CH1Be0wf806WavLWljXwrpVpFSoC3ZYigSZhMZ7Dv4q/tGtZbnEWKtSJrOrasYSCefzc2fsIxunGWw1hVGRfC4sNVvvlioUg7uTwhT/Il7W+qd39Vma4wFoIYCl5hq7Wb6P9z985PldxxWennNaIqIsLXj+5VvaV19wfHjK95VkKw53locN2Y95DwjWz09cvr8my6xW3JzLEfQxnYISxPDZiGkcoycLxrMNrAzL1j/NhEPbCofbdMnnP5frge3G9cON49k4nSqPXz6gCpfbQNfGem58+Wefs96veb+thWO2nK3bxuX7dxDO6W7hs8/vOJ83rpeBbBvdHCGj/y5CvxqLwoevn7l888Ttb35DjB27HYz9mEBmR5bK408+4+174fmbdxwjwB2VTplx80/x+ttCVkQKloLw3/9nf839CcIqEBmFCmcY2MjXLLEP+fk+L6lgq8zIcFHWpaFV2VoWfw2BO4VlI7m2lwvvfr7z6rNGROHqC8tPfkA8XfCbwvnM+kWdCYig38ifZbrJPYzOyDZWwI9gHyULKyJYVqFpobVGKc6pwJ43JJYCzsGiybOqJQs6wCnDuHuxJhS4RcbOypoN18fbnX4Y5QiWvSC74kPpm7A+VnQryKpskqraW4FYlXIqNClslkaOT13OWlsn1k67NdCGlU4PZ3hjt47IStXKVitVnSo3qlxpD2eEJ/zpoI4T9/XEvTaWKBzXt4Qppd9QuyHyRD1u6G/eodd79DNgOWjLSlkE7ivt8RVDLuxHcH37jJY3nJYzp7vKdnej3t+xnGqyc1eHshGqRBO67PiabaejDdyvhCf/aj+SZyhWiagMH5jeQJ1TWxgClR21hkYFWTmsU7ln+JXwjN46Sw6jRBLaE9BaQ0tHSoGoyaIjBVzRBeQet5qlPBiiDwgtC88iPxNlnl/LvwFP8o/iLrdneBMlqNNObjHoHhwuSDEWhE1/y0gZU/TyyEOZkhuI4dBjVnFT6J7ZZ/NIrsOEBIpA8YKYAkLFs0bck9dQRT7aVpsqTX3WMmczoUWwuyVPaU6HE/2e097jUCSMqsJanEWDJcVLsIw5VglaeH7PEoRXmpBilghLKVNYcVokWFRFqDNesrbpzpmbeZH8PUXg1IK1prV578LNkksgkQJcARbNTaMSiOdm4VO81nNaNOUklHsoZ+Nc+qxlTqaYkNHRMiN/4sIKYM4iGUy5EyFsUOfx2QLGjJK5CvtuPF8qy+tg1BRAj2ejxOQJFZDNuD2lcOUU1iYcA0ITzn/96BJzNiWZXpD8Dgb7cLzA9a1xqhXRFDtKSYaHnpU4ct1mtNUxjIfThJeqcpizjwn/92TFuc1J1IuTJkBcsWPkmj0iOSYWyFlBC02NtTn9u85P/3Lh638p7AeU0vGr0x6N/ZsbP/1T5/v3J+x9/wOugt/PVTcFz9Y0hs8oIFntPQ80Ihk/eHp3Yx+Ddc0pnHsCXMRyAji6UE5OqQVdA27gx5F50xhA8oCiSLqpwqlLwZrz1V9s3D1WfEBblNCsRZcJbgkBM0OKU1q+30pOKcNAYrCkrz7LEWSWWJjQLdeTzai0TOdgRHCEs19y4KjzxH+M42MJhRYYYdlIh1O1JJ+Q2fgTNuOw6ewSSW5crTXFq/lz+4zMCQU/PFlfKjSpObH/RLEgd+fK6TXYs/PhVweO0tkA/a1TYWWK9GwAACAASURBVIoRAO28Qs/niWpC2H2yJUUE0+wWlVqILR2cowmdyCkawtCCqad75MXN1CM3YrXwwsuYI5qM8ZWX5+qMlx0FGwVXSLgfCeuOwksmNGSC+yNFLiH5kxGFGIqOwG5OPxLaHfPgmjvpHF/pCyeJ6dAzwS2dsDqdZcxDjk3vcTq3cipfSw6xigbqSp0MLQ+jVGNT//jafmpXeIoy7pPDqcmramHUcD48pwvl7Xeddqd8+y65M1X5WNM+RmCHpxtvHiqbOCLw+j4Hc+tsxLo/KSI5pX61FkJzfZ3PhbUpdTq8+khHFZLNc6cqnNp0fGmhVqVVYWkvEcl0bq4tD3u1VgozQqm5r2w191/UdPUta2NthaIlGaKWBSkveK0xmaVLDdYmbC2Zc1VeuIgFKVOUOjrLeqOOZ3TcCIL7Avctxaxw4a7lPXRxS0bYdNQDn2gPa97aPYJjDI5uXN89s0+2VakwhmXg9+kDwwVpheN24NZ5/sUH6mf3rFvl/ObM7ZItdGbOac1BCVvjdkyHpxvrqbB/f2V0o0gmD2qZg0l3AsdsZGxoDEY/8GNgbuy9YwS3m7Osgku2dxUF78bx0hzdYHnYOD9Ues/9TD+OeTBzaIU+OoxOWyraVrQoh+fXfHh9T5DR12Wr+HPH337g4c0r8HS37qMn58sNKQvbD14R96+Qx9e8e3uA7RCeju1IgZ+A1z9+zeVo7N+9/QhoVh/E+N2jOn/Xrv/3kEFEOFe4XB3FIIzYSpZuueewrBZOvKReHCxxIiLJwW3F0SXFevfg6il8pTimcHzg3c86y92Juy8apx+/5uFPNk5xUO5eUf/0FefHXA9Hd5a6sMTxEYUw+pEDY8n7SLvT6TLMc2IrgmPJad4djcgWepzWhMMNLcJttkbHC5/VjNOSe3eXmXaa3OYSgjbQBU5VediEdoa6CaNkwucWyoeRA/tVAlkVK0JhIAXuznDe5rN2OmTlE302ml2xckaLsIwlOaPqDD9YtACdSqYTmhaq3iNxppXCclpZTpXt7ZWlr9zrxCC0N1zt20w9hNBDieuNcjmz/XClYLn3KQdFX6WQ6YOyPcCrE/Fwz5D3mF4paggLIcIoRltP6G0QxTAFd+VijYu9w6UT0XEumAudwdDknko9aKEUKsI5f3fvFDoehSg6dZU9HaryDKIcKC8MJhOwSLxEEUujRPQ831hywU13KNMNKEcORQnEF3q8p1SjSKXoCtIpZaHIgsrvXuz0RxGmdknYmIZQPXlVVSo7Pg9JglfjJAl9bZIRh8PTTvlRlQ+jh6KRm9Yy4ey1plAU4tmQM+vBLVWlGQXMCdpLAyJzopQPReEgWGfUIBFZCdN9qe7uUhJIq0adE7kU5aaLzOfUs6Rjo5IAwDESQ+sBq6RTxlW4mlAjJvF/wufD2UkhSsj4266Kd0FqxhxfGr7GdISAsNSUqY5IaGuQdm6d9ZA9BNHphPsEr+HGVlKw2kdufG/VKAGUgaEZCSBByZV0L9UgD3gCrs6HG7xZC6sEQ5R1S4jo1Yyvf2ncf1Hx+5dqm2CgtLuc+PYerFWgpH34eHLqKaeFS821OY5s2JJW2W+DmapIh15rSKsMsczcn5TvvjfKCeqavCQRYRXlWNL1I6c8GGoYfRYpnDe4Wq6N4TJdFPNwOuMaZo5bMrhkJPi3lnyoPl2V811gY3BEoY6OnB6Ipw98+RevEXtH13PWaO/Ow5eVncJju/LcT3/AVfD7uSJAJ9vJQinVqCjden4Ga0Hc07l0KdSHgtmNNRplOuqieLpLS6M0gz0glPIafBeWNrAPOWbLeN5gjcbhwvmcQtLb7waXS2f7qnHbd2S0jFkVPkbwUthwoqZbE3FKCIdlxJWSTJGgso90PEUE65qChfmMdB0jRZTZTKdLfh08hfbQ4HkfFE0+iqumGyYlFUJrtqtGHlaFwbIox3GgkjFaK464TvGioeEsBfotkE3B0wnh82t+qu3j7s7dvdLaQAK+//mN9b6hj4r7mCUPWekdBN4H3kiop6bT7YUlNeUmXEvGswCWSnlVGH2w7yA14+uh2Qacd02hNhAtKYJqy/e+KG5GCcVHOp6kBJQcKPlzIFWAmg7Tm+GaXL4UiALrQpFk1YTk360rzAdYNq+6IGa0WvP+NEVYzbMJbikYyGy4A0ej5vAq5ohmcrhC8jUtFGxW5NXZWDQMXDwdupRsiDThJ48Lv3j7u7fq/F25bDIzl5aHn4sa9uvBF3+yUkS4q8L5ofLhg/Hjn5z4xb+68oOtsajiRejDwWBR5TgSwH/sQT/g8bFgkXGWNfGcnJZkfs7bBrWmIxrPPdcYiYeos7o8j+BzXTGboyMdgEMKp5og+DIPbiIpiJXy0mKZ3ycc9luS/0MrrSY7rmiAKEtAXTLOfdh0Y80IqscswyCh4luRKX4FN/eP0epTFb755Y3XnzdUZf7dmIfo/KzZ3IvJHFAu5F7y+FTZM5F8Iamae/pXZ8wGg0IrUzww4/TlmXBHw7h984H48jXrDx/wyw5to0mgLbhdBuvdwn7reHRqrdMJLYQPpCZv63YkfqGEcVgQ3XAJxhj0vdP3I9MLAbUVWlS01eTZKhyWbpeiMoc+whiON/24P7oM57QUrDt3W0XqgmhLwPzo1K0i0pF+sO9Ga4XDB92Utgiocz6duQ549+23PF8Myo27dsLef2BZGv0wpBR+8KOvuOw73/7NN7z54Wdcnz5gl8k2XBv9dkzm2ODLH7/i+Xbm+s23rI/3eD+Qf4Oozt+V62OsUH4rrEQE/9V/8Be8+/oZsTxHri33W31k2ROR8GpHuWtO3ZKFZyqJ31DllQv2UJASHN2pJbhbVuoKl3/1Dd88r/zoH36OxcCiUq+d8fqeux82pB+M0RnDsiWuC7rEZO4OhqUgW0s+i+SwvB9MsTum6WII+ZyckX+LWYwzBj5AqqCijHmfKRU+fKecXju1pkPeMFYqIxzZQLpwbtlkePXplJ73qOtw2hG8qsHt2bnTjGX3IxMqP3jTuL0TSkkBN3ddfLLcrCgbjCtHu2e9deppo8eVpQr0A6kFrxuqz7ziM8SMdbljiHOWlVJAys7t7TvKF2/YpHNsK2M92KrgXeG2c+gd5acnXHYYwrkMuglDnyEKtDNFduhXpAumyijKYpWqVyIqNQZeoJ0cOQYGiB8cUvAS6GhEQK1KWLDHgdaGe0YLtadWwlJgVJydYqcUwfplNqdn9N9mWqzogUUyrZqe0TCQngVT1hEaPhuwfUYRRSpOp1I5YkdCUR20aBiDkEHTg8Pmz8aRr8HveP1ROLOSOyWMgOvQ3HSIcQaWOR1pklOeF7aReLAym29INVqlZNyHnKqpS0akVCllEK4Zj5nNO4V0Pi2J584JJbmhEknbaZCOhOKTgQU4M2+NTsEKVsmfK38P57A8qGkIjZwkFYG1lI/TveF5EJnaErsnJNRG3ph7zEOaByHOQbrW9sjE0uEpYvW5WBPinEJdlTxAvxxkY/IktpKOn7Ukd8Aj24vqnBZ+ipdJQlb3qSYHjltJVk8UzgqrZ+Rz1YRVVzJqVSX5PGUCIQ8ErcqpZYTv3ddGlMoXfyKs1blreXgaNvkGJaNVrQA6CHXqKqy1UKTmZpcxp0ZwdOf5shMmjB5494yLmXIdjo9srTOCcoLRmb9TOu088r2UJtjbyPGoJuVtEHR7AUfDSPsVZp58k+4cE7wrgHoeDDTyQOAIaukmcvOcwI9Azwd2a0g88YufAWEclnbuy7UnAPystHH8f79Jf0cvd8OlTK9eRk1vo6OqLLPyWUiQcWhw91g43624BvsteTKxS4LOYxDd+MlfLdRFM7p6M27fCbEHbgWZVfbXDwd26Xz7i4N4hqefX4k9uL7r+DFF9ukgdZFkLyyCNMElW6R202QrlSxDGCNh2fvIxsKYk7fjMEwko98iLK1gACVjN/Xj88YJgmMX7taSQjywTKYSluwbZiNili0oVZNZJFpnQUVQPL93TVAhirFfs5nRcbqkG7FMS1Ypn6a/oYjgR4LXrRif/VDptyvvvjZuT42ihaYz/pfKIFEcu80Grlx9s1DiZV0EVjxjNyObwNx9gtrz4C0vLZEyjYGlfHQ2u+czEIWq9UWiBCmEVUbPw5OTjq1SjKd3Th8vwmPFZ7wNldk6nNKFlmy907nO8eQYxmQ6JSlGptOsMHFsiObE52VaHJFCbJF0QGcUcj7gJIURbCRTLCFLiIycjMbHnx4h+C/+yb/7b+8N/7d4HZaw6qUV8OB0t7A14cMBTxfjiOByTcB7WxqPn1fe9eD+sYEqFsrzERyWzq7bW+fNXeXhde5Tlok623uyr45buoBrkY+MmqrCorBJboIWTaZeURDPkhI8GTdNQUqukVOrLDXZV6VoxobqC0tLp8M6G32djOAaWbAjMQgbBML5NCfPPd2ia/5qyV4b6VwLzQOvlHS+t5rO+K3lCmmSYo14RiQ/WjAmgqLVbG70HlPEzfueCBmp+DTPgxyddEK5Z1RTlVoborDvBlXpFlgU9rfvuP76mfbVmxQkVaingonQEaxWtvMCx86qlTGEoyeLtr+/0RMeiCGUPmjz2aII7s6xD2JYckSH0ffO0Qf77cAiGzPzEAHHPibTKOgjn7lENvrut8FxG/RbrvmtQisVHwM5bglgr4X33z/x/PbC6ANEeH66JI7CB3YbjCHcbgfffv0N62cntruVumq2GpfGr372a9pdw6VQarDvg7o469porbGdz5TrB8a+oyWmU1kZNqjFMbmDyzNbWymfoODwYmCAF4dw/ucPW6G84FM8GJMl9NIijlmWg0jyH+udcx3JoNRSWCu0UFbNVvtWg00WItKp/PZp4c1f3tPEYFvRw4jP7zifB3J95rgc4EIMQ6RS6jRN3OaAWAqllumsD6JUqhbamufPppUoeWY0yf383373+tyLLzX/fDr8Lc9zp8Lb3xiYpYtelGcGowh9ZFnY4ZmEGpHDdvEpiJEHZyMH4ig8XwduI4dHHxxscBv8P56xn+71nCKNCn7vUA4qZ8Qby3KmsDF85y42CENKJXBKON2SAeXLmeM1XJ4u7KHIeIdcCk9m7ENp50b5bGNXxSTd9ONIPpW7cD0OLDrRD7w7o1YiLqgbErd8roUSHNTYMK/IslPqoCw5kKIUSlMkSjb0bgVaZUTBS4EyGMvOWBZ6vzJsByQLpKJj9LwXl5c9kkAUxtgQSad1+BNj3HCD7jsOuA+wkgkMVdCV0CO5deWCyAm0ErEgpDDrOB4rVcd0nq18/JD/DtcfhXxRcs9LlZzed6C7sh/KXYPHGr9lQzEfOp5weBXDCI7IOMyLqJOU/nzAJVejoDVgKDFyIyVkbEolBQxiuqBMMOOjY8o1oze7fzyyznadrG+OyElcxs5yShxELuiUTphDZ2TWohcFbAYkZkSxSN5xSw1q6JyQT7Cu6+R6pOA2IjjwdFdUo/d0PwxLR4VFVt6Xl98zUpDJKXZGkHxGf4oKjIyRfIpXFc/4gufrJVLYxGmhhHmKVZKRvuovYiCcFM6Sdd4WlgwjnP3w5FtHtlmWc+6yA2NcBzVysqc+wY3T5WdW8yELxIx6EQm9PnZhvLhLXD/GbjzyUFcfcvO2GzyPdNkMFeoG193AK4P82fsARFheZeOd784xcv1ZZLzBpgBsllWrNl8DnVZQrTmtXyIz+uowRjaKiufuvh/ZB7qPwXgl+Hsl5ETbb2nJtQmN3zviyvL46VmSxwRjdwp9ArRDdN6HSq4Fgg/fDs6vK8uSmxANYTs7ZQmkkaJOFe4/W/j1z3bGLaMDQT6INAThmLHEQEtBpdD3l3XUsK7sJljUhNJHxgzLUjio9D1bnswrTgq1ecCfcMui+BSoXGLah5MX0W1kc6GmSF+KUspLw5xSa5ZNFE3ew+jk5h1h2KzpDUFLzSHCFBuYa1YiHRgthHUKM2W6IyDFUauNUZxCQ6JgloKrSJnCzad3mds8FEvCPAnuvlg4v3bGuPL+m8B6Bc3GOVFJ8rS8OLEyAu0leZQ505Ap1xeQklH5ovPJKvhwogfjNvBbOl+G598z8xTew6E73i0F2SiIGBIDG/l9LF4cydlkhwhu+fxKRmGKa+GRJRmS0cNk7OSzyJ10q5LuC+azLIKPvJwXwHMg6Eff8mRSSn4GstXYU6Tz6QjSkgUzkpDxpRTWkgJirS1/Vw3+/L7zEmX8lK5zTdDxfmS0ZT8MNmF8e4CSB0CF81K4vN/ZTg3cqbXArJbfVkFrYT+chy8qt3C0FMrgo5tJJTl/WqcTU4LnW8KH9yfnenHGzSlDEMt7BwOqB3fnwt2aYlipGTW8byVh2Ytyt66c1sa6VFrR5FWRG9ulTsd7lYTLkofgXEZZ1oKnE6yeC4RiPhmoBK3latKAU8nW6kNyjzcGH92g+0jiu0q27JXJRV3KSxQjRRJuwWlLh0gK0Jk6+FQj0lJ0RnvTQWtjsB/JqWrnBb/1j2yU6zOsXz0mv89z3xx1luu40X1w6YNoK29//S6B3q0AAaeEqo/IQeVRFHPn6Eb19KS+CPZhho0UomIENgLvlo4xM4oE5wpIcC6NVg1CZ5GEIG6sa6GdhBiFViunppy3xnra2JbKMZy2Vsq6sI8girBsW7p29o6L8PaXv+brf/krPvzmGzRyuLxKJQ7j9v6Z49ffsZynu9pStNs/CON2IHVN9+KrR+K4QVRGHyneeEayv/hy4dYXrm/fo5+gMwv4OHR9OUN98X9z9y67lhxLmt5nZu4Rsda+ZCZ5WDx9uqt7UJAGugw1FfQWmukB9KwaadQQIFVD3VWlOuQhmbkvKyLc3UwD85080OgUUIWidgAEASKZ3MwVy90u///9l4oJXMhhqAO7B1XznYtpIS4yVZ8iaF1ot1SUDtW8J6USOlgK4IV187Th/d0vfPybB4rBsSycPx3Yd4+UdlJOh7JwjsHxtOMqLJK936pKueZwXDTdRZF+etpomWzvkuFTI8CVfjbUIFTomumfiFCulUoGMWWSsXCpeVbf3St2V/jHPyaDTjRYNPvISsHRVJoKwFQemgIF83Q6MYJVUizR1CmLsm0rn91zCOb5c793myHjnuaKa2IX9t055OAkaHoQ5Ub4yT6Epz74PA6+6I1dOmepvETlS3TacuXmjV+OGzc3+nLiLzvna8qVm78iZHDUTknYPLBIoU4GlXSlyIXqDWOFcMKyXh7ScL/Q2Bk6GLEwfKGJUGsmPx8+oObiLvpBhqgE4ScuCrLSxwuMIxfLzRMvwo6SyvjRK+6R4RfqIAcSIzvHWb+LODKWFInoBbU+l80VdAeUiJUoVyo7SkG0oP0O9SuLvtV4lXBlsZabpL/w+W1MLybvSchNHYmbpWmwayqk1snm6G7sLhxDORuUMLwL0jSHQ5oFMZLKGnFJMGzMxJTiOdUOR6TntLLP9KZQwoU2pq1m5MDg9FT3hMAeMV1ZuWUL4KtxO2RuiXPAFdPi0D0L7SEp64Tc9KmlhDNl528KoNworBpcRKgyQaQ2G46Y5brn1hqg2MB7lmDVZBb76adPGWr+uQg5WdXJaihTqls0t9+800m7zmZwUUFdWZrThmHurCYcETzvwkk2Pm0qEk6CF8+Ek/tSuEzVggnse+PLj42lBFGCODuKMFqqbLw7MQRpg+hvQ1fhHDm0KmbYLQebPWCteYmZZ/T0UjJ97DaEV3deX3fck3fWx6B5ps1pNbbN8JIqq9vhaBkIcJ6RP4sGLjkgLpapn+E+t5GOS74nwSz0iWkbmilhE7as8/1IM48kBLCNVI640x4K33w/+Nv/lJdzrcbQwnDjjPHGCn9XT4ugRzb3EpqXvQv7ObJxH4Efg2oby6eCx0BtoFJSThxp/ZUY9MP58T/v7DdgOAOjXiqYZ/FeDCslk6HIYqUYk6eWg2+ZvKH85IRSNYu06EjJRt/d6QhdC5SCl5JDcy2YFbzkQO7syWYwTe7SGCPDLIpSl/y9YlpwPLJob2PQ51lXl4JHqmVlNonuOdgPTcDp4jkYThqWsFgmYGFGi0zUowFjYJod8hlOaC4MugwYLRkq7/BZMHw4osIiGe5hEdiq3H0wrHb2HzpxTrt697Ttbcn7EMlDK68tmSrLIKLDTPrqLZcgEGltaD1Vd7WQoAPDuhNtZF8ehlmZW7P49a9QnLTbu+SwqZ2D2zHfj0iFmM4ONkSQUuZQKhcCGjMwIFIBpiaI5tTAh8xF0RxcSkz7a/7nfbLV3J02UkkYc2ABfMUPvKXVGjEXaDnYzTuyU+bWuXdHpTNCcnj3zp63Db3or5/jx99t1NUQz2HRaFl3PD5W+jn4cF/5u7/bQWEhId5j5HCyT0CZC7/iEdpkiXpyaZYqPL/kwmR7qNx9qlzvjcu98c1Dqqvu7426GGWV2XgJa4HVhMsybX2LsRZNLmhVtqJcqqXqiwmQRbmUDL25W7L2KSYsNd0A1xL4OahVWArUNdUSx8vAVLgUYTMmXDltS3eSScJ1lQmOF9Y631eEr4gPSWWPEJy3YBywSbC34DwH+0Gqbc+sP9/jcx4nfXKuzpZDbsoccPWB1Up/euH4xyd0WSkSLEVYSnLMiGB/PugeM2BksPeTsWTwwN5OvtoaPAeVozt1zXtVIjl5dYK8w3Oo/TZb1LfFYk8FiukM9HFjnLBeK3dLoVbhUo06lztIUJcVXWeCZnecyhBoofRQtrXCTOo9fnmhlGT4jbPz+e//hJlRrhvRhOcfnnj64U+MaEDw03/+Bz784QPt8wH1kWN/Zd0uXD5eoQqjn/T9ho6TkyswoFja2gTWxViK8en7O26+8vLL53/Ft+Bf5lHkzz76rEv/1//h37GfTg84RWBJdd4+cvFGTMdOjJkQaJjC5UMQ+6DoIFSQkgvfGoNPJRVbm5+0W7DVSEXh8wsRhWVLPtuxd17/9EwZkRbThCmnMjAGMjqyKPSRjouUFmeQ08iFUxUhLNMNZ45JLoTdUVO6kAu8YRSDCiyRVuiOQgT1kkM5FaV0pYZy0eAI55wDsTFVbT5FEa6e7OCASqE7vDDvaQ9Ogh7KbQSH6FRFv29l1ilO6OA8X2EUlrIQUbgPw4aibaWUQlehS+PGwW1Ubia8GhwceBGaCLd7Rfrg5WdjcNI/N5bHK3uBIt8g2hFdadZotVJsQUbnqhtG0HXBCCqXBL2jRDRECx4NZPYanLh0Whm0eKHhqP6aNL5G/co/Q06KXRAGHi+pdddKH4GbM7ihQ3MJwIFHp00RUHfJ2omBjMoYiovjYwEdFF2zvpREXxRbKMMgZkJ6nIwQ1H4hq7SDqoGXXFbC/P0mOuIvfX4TI/suUFMdSV0cDeM4Yd1SYvnalSrOvcG+K1IdX/J/smW7w1qUkBk9Tm50F51FfGVyOoxBTh3fYMU2p/FCqm9cLCeMkrykMZIxNQDvwVKUV3/bCARVAuuKW3r3pWe0eTZ5SkQOFmz+XiNA1Fnn5mDRlL8qmXoYEfSp/AI4Ykq6SAl9LuoTBv/WS7hMG+E8QN8eJafwMf3WovlnoAId4ZQJgJ8DQz/fX8EOcLV5MXgmMbkmpDYVSslEky0Hp6MbNeBmglRYPTg06CM/e2+Dpx8Hy0Pl8RO8/ugslu1V88A+pY10zE2+yiC6UJYCY3A6CIOinfZQaJ+Dcc2NWteOj1R0vXom9zSXydzoCfsfQQ9hWYRdjLtwfChIWgS1Bu2m+Bqsl7yAugjLGKDG0ZyBTI4cObQYYzLe8sCJPvLll4KUmCpG4fbq3D8kV0x8/r4lm5e9d2pxei88PNyz//wLl28feTmgrsq5O7W8v8uvD2fVLdWd6oQpSsdkRt2H8+UnZb2SEMllSmrbmTJgnQopF4jBYkr0AnVwPjdUgtFykyIR9NHneSJgTm+ZmPrGnalLLgbSohz0JvRxYlIyMEOntUVKpiad+Y6KKC0GfTKRhkCxwMUZp6Q9VjLi4jyB4VkY6pttVzibUDShqm6F4ZmAZzUHTy3DUjjdM5ExghaKy2QCkjBJMUNHsEiq3ahQNX/+amWCv/MV1QCdaWHv8Tl8pF1cU91UraBj5MVdDLsOljvh+ceDy/eV0TtlUSgBh+Lq+Z5FMol0DUJSydnaILrjTy2HmUs26lIWIKHvWkEKKIMYuaCxVeie3LQIR0ouUMbIongA/Yw5AIXxYpQKuOOjo17onkqtYhAt7ygVARkgmbYoMosaFKkgp9IjLdIREwMgOoclgTdFfEzQfFqbrAgy0v7qFCZgKdmIEm/u7jQvTjVZTmMmmL5ngt8fPm3/Kp//v+SzSHLwjGSZVQ2enhvf/t7Yf3RuL51tUfzshAgXhLhTPn0q/O//8YnvvrtwXeH52bn7WKkW3I7g9hIUE0SC1WC7GHufFncRPjz8WpeIZCPXRp4JlzWtzFvJYrZHDiBapNKuqLDep3o0ROdyTrmdmTzX+tQBnXm/XxfJpU0Ij5dU16QlN8/RZUnjqrokx2g1omoGrajSunJZ8ywdzFANCYonN3PRHMyvRlr7z2C5CBV4bVm6LYvQvoz8uavSBsRweoEYQn2XUZkgS1qQ22QE9QBtDUJygRIn52lsv38g/vFn3LdUcM2Bch8jl7jyVsh7LuQ248tPN5ZroY2sef21sVw0lQaRC5P9GJSSahcP5bIWXnvPZa5YniHAui30NoiarDy1oOKMfVCKsprmz1Iri4J0aH5iwygfNyKcGs7TrVPWhRXHzwNTo6wLTYIf/s9/JFDqVlnvVtpt5xLKp//u39OlgBm3fTDGC3ZXefzue375v//Ed//Vf+CP/8f/hn23YOz88qeWrFYFscr1Mnh9GdTaQQsWQSlKP0/OAdcPRvO7f+1X4Z/9eWNl5VBLZsIpLA6/vDbKZaV7ow1D1akmc6mhmGQQTReoBGtVZDRElhn2FBiF19tg/Vj53dL4f/7W0ccFrkp/ujHGhfXfbRzPjVOgXIS4fMIjKwAAIABJREFUBe3W8dcdE8VXpcwEXlUY55nJq4sxXjr1WhgxkAjOG6mgJh0iXoTRUtmimsrhqo7v0D0DwV5a4hskUg2aFmjl0zfK4p2BIKVyGxlqVTQ4u0x12FR6qVBIi313odkgFFYNbj1ROvWYacZbncqud7iV/v88VQ1vg9JXtAuP9RFtO32rNAY360QHszMt8CwQztmz1nbLAZK7U7cHxtawfXD+0bj7q/+APz7R/vgK8g2lJp+LHkh0PAp97JS147sQunN4B+9cy8nRN7oIlSvIQY+Gc8Gk0uIFdSXKioeylg3fdyZJgSIXxAdeKsf5grfKkJPonVvMsLJZZ40BWEyFv7MUR0ZhkQE2EC+4phhGWYlRkBg4+d6Obshy5GxBCxIrQ18xX7EycN8QHQxxXAbaAorQu2Ca393y5f4v/sx+E/vsw4OXBqVOxooFdypcVbgzAQ3OAccJD9vg3pwLCXofkc300MExpzsqjkqqYFScEo5Kyak2ZHqgpJ9eJbkaydcwVGJOW5P8rbNh8pkccTalD/2VixBClJSlJ1TdE8gnOeiqqrMJTCh8LqULEsriJVMOXGcc+LRMeHI++mSA9JY2tebJ2nqD5Y6RC+NCsFhaE99inlUieRQ4qyYPa5k01NOD5qnIgWBvcPa0KL3HZ3gmXxaDl6n2cMkE++aVPuDOBveqObUuIENoDW4RHCEMC758PnneleV3heXiaQV8sK8olkXhbsthWX7iILNZl8jN9H2ZHA6HKg2/D24/t4SRuqbCKdILPSQhuWpCNWWxYIQiKtxOUOk8ncFJXu494DwUvQZtd24jk1ogeG3CMcb0Mw+OMyXQeMc8phKiT96XQTVCM6paitI6XB8ydU7wTC3D2c+On4N2Bv0c1GUgl+D5J+PlSySv7GyURfNHeW+PVMQCUcc550GRypPFjJdfBt479SEHgPvzwfEyiBDOm8Mx8JGpYWZKOwKrzuMfCjGCcYtMPyWH2GaWFgkU74bgmL3Z/ibLANLWp8kYMpspYa70luD/Mdl+b6mKvZ/0Pjh759Y6Y2QMRkcIG2nli8DHhBn3VFskm0hxKTCT39KyGvgM14gBwaAYtHPgfaR8OsDqtCOV+e+WX8+gl8NzSxTJewPo0Qna1wH+218q79OrYwhlTaj0si0zNSsbu/AcxBPw+LvC6+f8gvU+kHi7uOaf0bRrzn81+Wi3TphMS1kC5ofKfH2VsmThHThWKqqTlZSxuDOx0iePamAl7bUi+nVIZJbnl0hNRoJOJdYcQr1ZYZkbbGJaK2dacYTASH7bEIHRv97vQm7bRQSxmTRM/LrNk0wzFtXcYrp/Zcg5zv6WzslUTo/BMZTuI6Hjkl7rcOd/+R//5l/nBfgXfH4+0t5UTYjTExAbwcsOXAErtJ5D1GjB2GG5K7wc8M3jyg//sLPvwnZvnOfg6Sk49lxOllXSOrrkTbiuyroq26K0qQbTOvlrDkvN+6FWRU0oRXHPIdFWhLtqbDXVnSVSJbVo1nabOR/vjHWyKatIJro6k4OTNkXvqWpcJZtbIX/dWoXRs2gfnspqENqLc12EqpHNaApGgcCKUqYCf5lswK0orSVLq4+s/ZYq3K2FUmH7uJKieJ8LzGSEvUcLK+TAzn1MPtFU5VqGR3gfnD+/Yo8XVJ3tQ6W9HCiaYQyeas4W4H3MmnpaNJdKvVROh5jfVVuVdku1aTohgkvNxkgkbbRpPbXkq5lw/7ix1IQivwHFdbKxxJR6MRhp61/WBTXFbAHy+yLVuH1+oZID4Y+XipyNfjRAke4cX1744T/9EVuMi4K3k/PpxvLhgUM65e5KqRUnWKrx8dMD23VLrlII212l7U4xo3nl8ePK+fKCSEGLsK7G3WOlFmOruUj1nliV8FwElPqb0Cz8sz+KfB1q/c//7R+4k9l0LxDPO7coQKAaObCxVGDmEiV+tT8ruEKcWbs0gRYHDw/C1R1vyhCn3K9E75RDKd9VxAfHaIwCt6MTk/O2rgYMbl+OFPRqJparlunYGfiD0WOgxegB1HmPhTN6EEU45922j9SeRU9+tJhwkIugFkETBQkWUYoHS4HnM+/lZqmWyKC0tOcEmQp7h3IRZ7hwuHB4LhfuijHC8rsWZJ1B1npHy7v1z6H77/E5o0MRbA1sK3xZnthX8L0jujA0YecHczlonRE3VC55RsTEtWi6U1gG/rjgl871mw/YVQmtIBXN5j8DZyTtpsY9EoroIFq6LtwGR79i1qgEYk+YVEQrpQxUR4Y9FHBvMzF2p5RUI7udIDVZzW3DfBB2IGF0dWqkVXmMg3J0OAW/Za0vkeibFgeMkxrGoT0t2MxoJ3NCHZWKRE2mpG+c42DEIOIJFUNpeBz4W3qiDVQvBPeIJ1KJzyulB/uHH/7iz+w3ccrV01jXbIAglVh4UHAkZsqEO7eWzI6qhsRARag4Mr+MqaF6y2zKLzuzpg8ZiOYkf3huAld7s8kI4ansGibYCNDc8nTviS+WVM8okVGncyAi5NBhk+QM9a4MD2S+oHWyJyJS8urq1Aj6kFRyDJn+1bTygMytZaoonEDM6WNyrgL4CsOV+bNN/1vxZG3FG2jUccnNZg/h5rmFHBE00joRkX9ezYN/gqLv/1dPj0InWCO3q1g2eD0Et7SbPM+LonhQRJN/1IQQo4ezH0q9Gh8vCVU+CM5fnIffpW1PQjiPYNuy+Ts9YfIt/WDsIyfY7kEJ6KF4ASXVOq8HlDooqry2+BoW4JI2mjp5IdIGpyjagvN0dDGad44B1oP1TnnZHanQj0jvfDhqyXcKz888JLeXwwVKUCRVMv0MrOZQ9HAmayCwmqrGPlKxEOR30Katt8if296cZ1ekdT5uyhmFxRv9HYaQezR8FJoMhIJKcuqCExfDfUNrz62aK0QBhL4neF21ItIzQfLFOV1R6fzp80GcilryEXqXZIR0R0rJAY7JHNInC+g8R4LjIxhvnLae6plxOs0ERPFzsGxZWI1wzj4mb68DShs92UMl7dnJFZoVH1A1eSNnF+qSNl31lr+Gt5SckRtJUTwmCXr+zCslmxTPfxYiDHdWK9zGDN0YnoP7yTzq7tQJeb9MJgrTbuh9Dl7f4+P5vUOc6Cd4WpPD42sioYtgGtjRkfvJv0MS/Eme9yqpIBGT/Ltk8Eesjl6McTphI5ttze+/Rr47aaUHIoeaQErAI1K5PFLZFzNcYu518n5Uw1gyUMDTyud9gHfC8h5lpCLCdFrygxk+kJbmkadN2gv9bf+WdxkTJB5NqTqShZKHEu4NqYWWQK2vakAnU2OjO+ebKmYW+T6ncDoyZjq5UcrffPpNlEr/rM/z58ZSKxtwtwrtcOpFOT142Iyn/3Lj23+/0M+ZCleVUo2nl8a//cPGcOflZfDdX1VGwPZg7OegdacuxuvLoMzlTh85MPTI6PdSk5Em7pTF6M2xJQc8Hql0LosxhrPW4NZmTQdsi+U9LpPTR6pe7QLLTWiaqnhZE/h+WZTR83tyWYTbk3P3YJksJrkkddIRoCU4juSmbR+U29NAi2CrYSX5dY4wOrnQ0aztltW4exBuP3fcYVsyEfZSjc8/NO4+VfqZtosxYB+BeN6Z1z8b4L+nJ3fLOjl9jveYDVfeK802LtNOsmyV5hXvDS0FH04n1cjNYSGXL9aC19a5rIXYR7JhJBeWagmzRuNrwJK3ngFO9e19SYu0yuC8darlck5VuVuU5lM57VP9qcC06sgcYjKAmhtuH8ovf9pZF8PXzr4Hcl25/XzDbwfj8crFlFgr9dOC7J3ycOX1aefTt4/se2N/vSHLglnh6csTaoPjPAg1/PVHxtmplny/s3XqZZlqw7xDNRq3L19Y1g0T4bWNr+EtZpF35Tt8/M/6vf/+rzaM7A9XMcZVeH5xLhfYzGjdUwFuyYB1lOsKvSdy4/pBOX9OW7/6oH0ufPfXQvNO64322vjweE8/jbYe+LnDann2OJytow5aBJ+Ih/UuodttAKq01hBAt7chqTOG0G/AIsQ5kKoMz9CA0RVTxyKVpGqK904ryRxFhLtN2VtnCeNGcKpQQ+gviq/C2M+00jLoorMWCDQSNXG60gh8UXxPdf8emfouERPfkOf21YNY7OsA670OsoAJ0J+L6f5Mi4KVgW3GpTmvpaLaWUamMY9eQE4iDopeEE34f6C4KsQHtursDJCTdipb2eBOuZ0NtKDRCBFaH5Q6GH5ObJHSW9ZepgPvG2oHTqeOK6Id0wzV0THdVwpxCKIT9h8t0zx7Bsl5fAFfZv5cp46VQ4QYO75XrF3QcRDmlJqLbJFgcZuKeWGJyiJGd8O1E9FzaYkw7MjUWh1poy8gvuSwFlh0wUfHpbCIEX5DixB9Zdl3xuOWLoB/Qkz5b6JCOwOK+7Tt8bXobSEYPlMpjHUdtJ5FaDXwCXivIlyAIL+gWUg7HppWGMnoyeHB6IKVtL+MUCSyqDKd/CuSEdGZkag+wbRfUwJTSRYj2EpGVKu8MYT42mCI5J0Xc9AhSNprgD4PHEhVGGSC2MEcZrkjK9gEx4cLa80t9jnScvmmLorIRMJk4eRwQsXf3BSMaQfzmbaYQDXHzOktLZEeaVN7rxvCnWAlrUibCWcoxmDTYGCZFNmF6xDGku9RVGExQ6Tz9Nn4+M0gwrKQ9aCKQNO57c8/09tr0I5GfRDWLUG26hlTvyyaCYek0tB0Kr72oF4U/xLIYlnkkvG5lQSgigmNVOo1yW36PgdK+61jW26XugbWk3F09vR896YslbQZjVRyREQOdANkOOZ53TUJljUjzXfP701zp3jBRNgbqEZycSJZZAxoMmOQQ/n5S6cRYMrDNjh/Kdx92/AxFR3v7NFpTQoUqUHRbP51QqUrEJcyzwQHy2GzrpXRG80behgmTh85KBpnKkZMIIZ+tfJZDMJmwpd5DhAkG68hA0WTBTiH3L3BGBP8PYeiPVJa5W1QNC+mEvB65qVnOC6KSP16fmUonmMSmBpH66nGkUzfVEvbWCnT0iOZIoYV3qBw0TJuuizJIPSeQ4VQQVsOrhrOIsmGOBy2JVVkBFzF8JEy+sOdkER8a0oaUxL9Dh93Bw80Cq6CWaf3gU4752pvEPeOLsL+CstDqowwJW5AZdrkAUl7YJeByJrqPR+IWqqbJrPRVUEd9eQN+hwmhMSU5mWxG0feqfm55+flNWYCmKKaYPgYNhcwgEHc0qY/JDlcZvnvviXsSuTASUSwEHyMtNpKciNjboqZm25RycXBVHYQ+a6GMGG7wpzUISKMyIYhnGRA6NwshhEEUjLNUD3vTpPfhIj9n/dR4YcfGn/9+yXPJyVtVhK05mxXYz8EdYdzsHwwLAaXVbi14NvvNn78+50vT86Hx5LnXbFUu0SwbTlQHR6UqvQ+MpZ8pKpzKUYU2M9OUeXssJQcLkByI0Nn+AHO0bJZDJG0eJS0CSo5dHXPNMKK5eJRYLE57NJMI6uqbJ8yvZBbEJdgWWALo00o+KVq2rQ9uNwbT0/O4xW6KxITRm9Zc4Xn0nR/ddYqHJIeVqvC/WXh8w8nl2tJh9Pw/CIClyq0Hpilbf89Pq05UQKJJFSXmhxXU0t7/X0qi8VTvXA257JlzWOqeI+0Cc66OAOUYK0V2qBWZf984PcFMZlplZHWQ5tLtkuheOfocPbBtiquK6OdVMuzq0wlqo856B+KrMLx3LBiXAuct0DVaa8NtXlGMHj8UDGroEEplesFnn955tN3D4zP8OXzC8vvv0HmDKxFske3h0sO+NvJdrkQqozRuT011ktJ6/Zwfv7hF9a1Mto+Fa9BdPCeqWMS2R/p5Y4RJ5njmbV/TuKyr3qPz5uaLoBVlTXy3hINojuXy+DsOVQoYrmUFSWiUyQXd1guQ2wTrg9wucD6Injv/LwvVBG+/O3B5d98T1jn1gbLp5XzCI7nyYGLg0U03R8jEn1TkiXIAa1NZeEmqNVU2kwFfUgKHyJGwudHKonDHYpw/NK4fKyAJodXhCvB65eOPiaf0nSyWzvUydwNyTuwBHTJheRwZ63GGGlBVCfHbqKJMNFU9O3DZ7Ji9q3u0JuzfRMzZOp99ol//mhZuPWTKorrYMjg+exs6yO+nFxe72nrlwx3WBbOo6Nyh9lGeEPWjTnMAM5c6A1Ftec/kj0Xy6UnH9fz/NJzYN3xC7AP1lC6trT7BUCbGBCnsiLWWOMRjyPFBKTS1K3S9KALYD6HtGv2AqXBWei6Zw3WArRTutD6FfEBMlAvjEVp5065BiYbowY2l8jmNU+WcRI6ENmATK8XWagEpzfMkltebKfEBmYc50BKLieLVqILfOlwDuSjovJKzBCrv/T5TQyztjXhrOYwIi12Sx2Z6tCUgbMsnhehpVRySG5rr5qN9xmdgnEVoZPS5kjPAmD0ATKUUt9SnnL7/5bq5rOEisGE4/FrgefpfQ1S2qo6Y5+RBAkqDNeMuA9YxOkTQKuzhjbycGAOvXZxLhGZICFC15i750C60Y9gRIGSVi+PlOEvmv//QrK23IXXNgeCmgT8LLs9I6ptqrwi/7lYnv7ightTrZaJLZls8f6ehyUvltESsC+SLKqnRrLYtoLUBP0uSqqsJti7fzbuHnJIuCisKzydac04gMVTbUV3Lh8zDQmBpx8CewBQijpnd7wrhcGiQj+zsbMlgcd6L+y/NOShZsMGvOKsonQXNGaD6EEXZyvKyxhoVcaZw9tBwDmm6irLLXQm3Lhw9LTw7lPhIJ7bqqq/KgLHACnTTpY1Ib1lesZ4DnwDG1mkqiU038R57cHT7miBdTVea6H3nfUb+PIDfPx+Wnff2eMRefbognHikXHKi6a34rV1Pn23YpoD8GqpDo1wtAQaCz06LYRChk5YyUJtiOFjpI14NQRl7y2ZSVLAUyWTWD1JIK0ZY0zJseTho5S0E/ZgjILTieZ0TQk+Qwg1dAg3h46ye5/FUKrtRLJIK9oppljkhn2MhIgiQu857CwqxMhp3DgHqhlF7WSKj895SHoiQAqIJHT6de+M+a6LTP7c6EhJf24quHKgZjPTPjxTO9/jUxc4fW6gz5M4FVmmwtFKbhCjgSpyFeJLY9iKbmmd0pFiwNFHNpaijCYZIFJGJni9bV/7TLk5hfPorNUyrvtw+pEKYmQQBqMli0YXwa4OZMx3HE40Z7koI6alaAyIM4eiqjPN0BlHYJaF9PAcxjLB4YhOhTWIDrylNbbWfOem2YFOQ73khlHyvJOYS4b0VCfDUp3RdQ6wcgiGOGUW7C2Ccb7d2cnhNBWGZeiBv8Mt9MdvF16eGn//x8b3f1VpKshr47oow4TlwbjfB90EqnG5S0bGSn6XL5vx8ybst8F/81/f89OXA/fg5eaoTmvEGdTFuJ092TSed0s15fnonAO2JT/3RWWqaOav82TBaBH211QM15laZwuMnsu+FsmDua/QhnGeTjWleUKPqxqf7hd6d17OVKeOs1MflfMM+pfBtgnbIjlIRbIuUqP14P5Oefqp8eGbiijJsQno5NLhdPh4n4OuG6AtuLtTXn88+fhN2j4+v6ZRWlVYLQHQOgcc5Z02h+qBSoFoiFpaAlWJPtDzhi7XbKrLrKGen+n1gRkpks6KOYrZPVOnRTVVnQAirI8r+5cb24c1QfOkBb+3yVgjGEewVEUXY7hQbSCxggTbNblBPZRalIsp/cglsxq01ulVWS9CG4XrBcQLrecwbVGjluwfXs7O6x+fKJeVdmssS+Xy+wvhnUbKTqsIRUYOdCVZtsf+SiBs24Xzp5+5/vtvk73kjYePF17/rxvSTlZJbtFpiu6ZymikiqRUY78tlNLRWui9Y6q53H+nyqzs29LudgVw59NU8/6sncUsQd6HshNcrm9BH4Zq0EahWGOpyt3VuL8Kiybbs7845Tw5/rizfHdHXF8ZPwv6KRPXJqQDm70FpPPAW6fUkgsiUbQ6VivRg3YE+gDn0bCl4mr0W6Osxt6ng8fTJTEC7jXYF0OjU9R4HaChjCUotdCeO3GnzL1VDhmKcIzgw8fKTz/sPP6ugAQ//ziDdcS53AfLookniRQ/vN6EqpLfWTT5ygYv87tja+XHU7mTlgNE+dVq+B6fErCw4CaMUIocoFfCn+n9SqyBtMFDPPAiJ1ayRujSEFsR0WTVWsVkRRWWutGWC3Ea2/09ao39fEa94nKgKsmXPRvjqIiuaH/hThTVg4gt+3ROSqwMCqo7agc20iGUCOgZOlAXFGWJgYfT4kRU2YbSpc/Zg6YrLRo9TugVBw4JpA40jLrk/AHP2qiJod2R5QC/YEUZuQaHLpS6gAeug0spNDeaHIQ8sLujkRZYtVfG8xU7B+NOsI+Vfp4oNQkZakj9y+uu38Qw69GcRjB2RRanzi8zPSXZl1Uo4pyhnJMFI2RSySmgkpvXY8Zxv3GxFnPaUbASc5k8v6xKKrIQegSZITIbI8lUCTSB2u4y08KmR3sWv8WC0JyGR4e15GCsSrIUVB3zmL5VAEm59ISFm8IIxcwzUSnSomgeUJ3FhFOSIdJOGJbDO4+RFqCZvuTzZBHIBlo8X/g56R1CFvDz149ILtcglRoy1VopSX6fsTplWmJsMRg+uUQg9c0+mtLkPi0AKsIiqSjxTYk3RY0GtyZfVW85w0qY+u0FHjbhDKEy2O6h7dC0s27gXQnttMh88h6p2npLspQIlrvCuXd8VYzg6JJJPmVaZyPVVDXgtSfnKjwIC87DsQJjHk4qwX4O1iqcI38tJXhpGZOtI9jJDbM6dE9+h2ugI6ONz4OE5QacPSjXHFy55Z9RO9O22VzYzwwQ+ObbQkdZH4WnJ7jeC1EW+tgZvvxrvwr/7I9S2RY4dp/Wg5gWLDi+NKwa53NLOxwQm4F0wgNrjmrDVSdrTwmNyWzJdJK1GuFKP3NoYZKJhiK5Pcx4ZKMfnmk5M4GyqtGtQ9evRV8twhgNmXbXGPnfyvNJ6cG0A2VB2E7PM1PyzDCzhMh3aCiLa15MM/wiNJlcQ8BEkZZtScy0uk4m7Q3Pol5CaTJyix7CQVqC9pZbKEM5YsykW39bNydw05S9919/pndaVE15LUMzzbIZ6Bl0H6yXhFXL6NN2MljujacfTu7+Tc2CxmSGhmTTw0h1jSwrEUGJwtgb3p3RQS0/z7IV9uboLa1fuuWAwIfQmiQAtAqxJIvDxyDcksHVwbsQ0gmpmRD2Zk92Q2ulEYR3ZAxazXfHppoG3ngcQjBmsuqbcmgW0qK0nve9+0jdhufw1iW5Jyq5JEtvfkKkJS9/RnMEywUBkyMHEyo/GKSapqQ4H+X9NYQewf2dcWrw4w+dv/7DwrKmgs4HNAZxr1yfBv3jwu3FqR8MW4zn586+n3z7TeXHH066pGWnmuTARzLQ5iATJhMAHljAOTxTf1vapGSZ8FYJahWeDue6KM+3vN90TEjzZFT5TEYtNVV4VRwdeRdfaqp6RjjSJztrOK+7c6mFx82IBuO+EJEwQtlqJoYCL5+d630yBvfmFEub3KePJROlLJVmmSmVNUNVwINtgfVS6PvAP3e2bwwtkirTYrQ+yG4jgwpaUbynOuI9PlGUtu/EtlKn5dlCod/YD2Wrc9HsjqKUh0pMm2laR/UNVosp6UCIVN2UYpwtwzGW+zWbcoQY4Or4AJ1qhrJmMuvK4DjzjhNLpYuUtMysknX+YgUuubzGjLoq0vMeKzIIFijCogv3RXKhvA+4XJCnJ+6+/4a6KAXox0nxQZSaFslqnCMVhONsRKy4TDv9cF6fn9BNuD48QGsUE67rHdGV69V4ukE7O27KWBbOpxfKksv51hpqwe1zQ68gnhiD4vGrM/udPW8KtILiGhQxKFD2YLOVRiCSi1jagKZ011TkFaVYKtnu1sKHu2SjxRgsHmxlI/7xlXXbaGsjfOVWUkzQ+0CGZx82xRItIJqjQxFtM8lmcEzFsnlgfcDYUlkskfVVmYqrkXfQpilo8JioE5m9www885hJ5AO0KvEFeJh3qRoSHcHYe8eXlc8/HVgxPnxDWgrH4OUzyDcCWCZrB5QKNVKF3En+1q1BWbLWUDc+qKeljCmIeK81FyD+CixEVNCGRUHsoGvF5ODkZLvc8dJOtnahr4KNASyIOWe/sdSVYjUT5X3Q/YYuK/3lmXrfUB/Y2AgJqlbaaNCUcv9AxE40aCwYnYULri1dIN4JWZByow+j9Ein2QzacJTOgTfBlkLBOEdBeCHohBu1DGpcOMaJlR3pBThhHakeGwp0tF6IElQzSh1Zx8fAzOai0ZEYrCjNAosNWhDrnt+PqBhBiztCThYBlUHThfN5ZSkncr8gkY6AYgvu57SYO/ZPwIf8JoZZ95Ke9S+axdCK0sP50oW6ZqLWDmkpVDK9zRKCvk/r1qY+m7TEkdUinKdR1yxSUGFEfnHxZAZ5JGtEHLqk/aVIbtzouWlDHJVB7zJ/j7QOHQMu4pQiSEYvZTFtCa/MYZXQWhbLGVUdtLllLzVVMH0Ck520ObQQzJISos5M8ErwpUtGri6aNsKXXRmaW1BDSfSCMDSQkf7n9DXPLmDyu5KbBcUcn9vzTF18n7eejbSX+Bk0U+oGRmcMmWTtHOaoQRFnkA3y7QUePyZHZpm+8ZNMgRKFpZKf6THfBx9ci2UCkwnbxYkGrz/B5VMmkDg9UwMJpESySETwmIeFK/uT07Zp22rCdRnsmQkNIllk14RbNhkpNVdFNFUcNZxbavXZh3MLYCofMkJ1pFJvat9fSWZbA0pNOK34wEoyBtZI5QI+074mey5KDpndYeuKfkg9o6nwzX3wD08rYoIscLwIen1/6objzPfoIpWzKdsiLCWIF0e4sHyA+2tCrWup08seaC3EmkV30VTKuUemdHkOd+pCDhjU6b1TSsVKqroiBLWSx4474hkW0L1jnqwZQtFaGL1jkVBis+QmCHOgFak8aSMH2UbGMNsccIbC0fJcdvGvtkartpHnAAAgAElEQVREOKf9ynw2GuIsahw9AzDE0hLUR2AuXLdg70JVJtNrKo5EaT0yoVVTFq9nR4pSTRhuiAoLObzv48QQLiVT71aRd1uwm+afZXvbQocjm2IYrYHuQtyviHTwQvdOuQ5uP4N9gAijhNFLFsExOsHCdlky1rl0zr3n8GEZuegpBVnyHKCkBQfR/MzwTCbE8CE5bFRHumVLbm+JqgNZLaPGZ1BAH9lcaE31qntiAcxTJZ1KvVnAq2ExOXMjQVqqgx5pDSdiMrU0E/FSlwo2GV6kyiYITOrkyOVgrKiB+Ne7XMnhfeuptKm1AsHpyajINvn9Fe7Vcuj47YPwE/Pu8ECKwHBEjJeRg8Z/+93KsQ9eful8icbvvt+oJVOVP/+p8eWlp8LgpeNHsstsUYrlZ7BU5eU5Awce7g3v8OTB3ZZqK49cpMS0fO4jG6wEJqcqcPTg6MGHh4L3LGhaH19RDb0FZ0x1qKStXXqwLEb3we101iWL46Vk+upqQmtOLcp+DO4/KMergwjXLdXKa0mL7dNPgw+P0zLZ0p5IZAlxzjTXx/uK/zSwbxTMpjIxFYCdef72gZasR2wqwd/nI1AXYgz2z431rtKfvzBk5fJgnMdbMyRzUF15+uHGw3cXVJN/ZCbIbPTNZ/CMGuKDRaDPQfb5eiazaC2zVs6BrKYdAe/Ber0ADWmpTHZNVa8Wo1SlFEtWKYkYacMzXdhy4bisJc8boMwkV1V4NWX/L3+ifrp+tdFiQT8yVW83YbS07taavCtdF3prrLWwXS7cXg+ef/iJ7/76e6oE57CsAxB0vfD6489wtEwgGAnQtzWXjHNNxkCxx5X+8ppNc2tQCjreX90Fb0w2+J/+5hvWq9EO4ePF+XIkR1kDqiougZpxe+ksF6MswVLyXFAJNiBujnvh/vHK6i887y/cP1y4fF95bYNbC/at4+2Ykspc0PT+lsILtgBDGCMbfTWw3hgSE1EC5o6VkntPg/7S6DUZgKtl8qeQoV4i0HsiT7wJ0QKpM73akt8c9yDPQr3moHffU8lsKtxvgZvmQH66NBYrtDt4/jzT0gGRwd2dfUXjEGl9VpzmwjZ7gBDly2LvGvz+9fEVl84IMiwuKqadOuZgm42zFEpRhhzEjwvLdx8IniAuIB2PnsMmy2RWP4J6uSCfb7QeLCjaBt0qIS1dY2uhxZFMbpymQRnKGuAUujdKWaZL4gqavNzOyPJplExX1ZVDTqRlmI6FEWQd1G1g3ZDIYXsXAxv5a7zhizJcE9ZuJ6Y1lapRCM3+MrTiDsVqqrI8Q63yvQSVK6OXnEVIQUuGIQyBoGDPT6zXC2W742gNlY2QG6ad0APxNfW58Zdzln8Tw6wfXJPOrwIH3K+ORvCgKYHsxNeUiRHJ1xiSWqoqOZhqAu7KOodT+00oa6RfOGvklG/OxAhmU/6mwHXPonbEtDFEzLj3IKa90SectktufMYwNg3EYHdlVWakeDAcfEri68iiRU3TGy1wf3V+/zj4j/+Q8tHypihbgnEWpPhXcHy1ZBIpzhlw85xK2RJcImGkI2AMZVmmh0ed5iDk/49pHnbiyR2oBOLK8Qa1F6W/04hoqlA8GJq8Ap+cNLEEseMgNlhMOLpwPIGuC/cfTiAHWfsgZe8SmaIzgqOloqauQrzOz1sDDjg00JJw2/iUA9nhikVyHZhA0SKpThFxThe4KKUrl6vweg4owefXxuNSOW8DXUAq6Gj4SI5aRvCSjK7i7JFqrJY1DqMLXYR4U3CgyXoiI9fTiJZMCA/BOtSSMmL1OVzAaDGLy+nRTwtY2kNung2Bq1HDaV343V8ZP/zpiW9/98jLjyVjud/Zs1yEajC8UV8zecYcnn7qbHfKwwJHCBqCS8OwtN9Fhz45IgN6eDZgnumEQp4v0U98MWRGiR8RrJER729WAokcnFsISvI7ZAhFg0UHHaWd/qs1ZnKtnGyk0vYj9JYFWoscfqv+2sK3MRA35CskXKbdOy3KxXK4MTTThGooJ4739K66z4RHTci9SXKWctMzk3iK87wLZQT1UjPJRZXoncPzPTMNLprK1L3PPydzzP9f7t5l2bLsStP6xhhzrrX2Puf4Ja5SKpVK1RWyqMSs6ECfFg3M6PMEPAPGG/AiNOlUq6oFLVoUWFUBdcubUgopItz9nLP3XmvOOQaNMY8rMTpKs8pKpS8zmUJhCj/usdeel3/8//d/mhfC5+86bRSwzrKVCdJMRuOgU9bC8dzyw1wK21JZ3izsl5a8I52FKdMJRwiLSR54JWiyo4vTrsnvwZSgUUbJxkBLkdLC6DhFZwQ2gq4ZcwmRhCHHNFK4UE8p9PpQrFaG77N8JTh6xwdZEx5C7SmQjRaUpU7X4mBIRoC8O2rCoBDuM84/BxQzD51N4y/xQcFE6b1l5CjGBLtnPK77gCObsLwKHcdHCi/XI+O5qkpjsIomTtI+PffMpsJhyW78/LPCL39xwBcr9xP6XwSkD8bZ+P7fXbHPTzy8hrJWIgZHU1A43xX260jRZjPuChQTjpbudkpejspasqV5gKiwFVgsW3jbmBEJI+NBnnvNMfJcth+5Vm5V2PfIoouekdcilp89gCkmwd4HZsq6KNWYLLQpoFfl8EQuyAjutmwbu9+U3uHubDxdPMHtD4W6QhvC+longUgoZV5y5nu1zjV3teDPbs7ffV152qdDaMARnmJ9ZNvhbbqak9X0aZ67xtGT3VOMuqQDpTzcJx9XhW0dHEMpmud7M+HV24X3v7zy6u2S5UWew5NonS6pXqgFXZQYI8VPy9gVmoJ9CXhTszXz2mJyupR9bxQJTvcbqyjH9chzscIihloyJtuEyVdLsZZSORD6NVjXPFetJVvCe6nsf/odr3/8GXtPsX2TdGzJtvB0O7Alp4DH45XTqztAIDrRB4cG61i4vL/yw9/5HB+Dce1sW+ImnICHN7T+DcvDa56+f8Y2pYbSzYgQem9zzXN6c8r9A75fksnTJhvqU3uCGSgV/ps//IL3R+V3TzuXx4NHFzrJ3VxyO+AkUB9WMGjPjtylI+bNHRRL6/KXX5xYL51jhy+XhdUG/HJgP9442k55PrhblPfPKWyOWejQRrrHRxtUKRxHpxaFYURRenPceyJexkDnGSvCYROkORbOzclhpadXM67K+jDZyx5oVToDjcgLnxgVgfOgDePaQJd0v2oERw+2xZJhC/NO62yrwpp365srRuH9h8HdSbj1oAOnmiUaZxkQxo3gAfgn//L9R1fWpxwz7BO9Y1rSVWXKiIKSbKiugzIGXje6LdiXA913sFfE8ojqSh9OD0GiU1Wpriwn6L86iIuzbmeu/Yr1J2gDWYwQYROntYOgI6bsBdQ71x3Oy5pucw3cD1DDRFiPE11TqHIu6Ngolgab8EDqnvw4XRjHU+5FZRBaGRwwTixFcFOOHiw297aXsLb26WLPhBEMSl/wOOgmLOUOiWcGtwTgj55nNw1unudE6Ybug0Lj9tmG9jO3OEAKzQ9MF9wvaDywEbg0fPzmYtZvxSr3uAuPHjxr59JTCOhDEHHOAncinCW4E8/DEIBnrjVjAXnQNElmlSBQ8sCegPSc6CeMPW2fL9XiEjorSyUV6Z6sGCVdJzCngy6zDWnmR+esNkIZCOsKiLCH0IfQRPHQbGuyjPG5OyEpYjwewh9/X1BiIhsTeN9epjotD2kmwuiCD+OIjBwVSZB5JVgEtpqtZ71lFA4Nsn42LzNq+edtntP9EMFEMAnuNFg1o5oT5/bJPaZwhNExbpFutkWnyyiNlxA5bb18SGjoec1JvygcGiw188KLCucCZ4W65HvSmrDM5jeNjJtFBDbFq3A4mnD5LkGQaunQcxLIvaJIEyoJo9RFOVphLXnpP2kKUV4D7YHf8t1TyXx90WyQE4PrJWM0IXmA6p7xjugDH0YMZXSnd+fwFyhzELPhBcBVs1VMclOUCQFXT4HkduRfN5dsxZTkmuBK78FBRnvaAcdxpntjiDE+wRTr5ehc9s4+hH0Z2GE8fcgYxMPrmlPdCd2PCMSDMQZFnDpbtkZMKLdn46qPOfmKjhab4wyjd6cMzQNsG+A5BRZJobq1nlP/nI1k9CqM0Z1SlUWVirDMevnFYkIjBzEyslitUCUoMliLUmzCHs1Q1RTcyKj2WoVVFyqKSUZbUw/J9VQi3aaofYxedpLP9TIYME2dYLjTjmC/HZSSjiQmX8VJMb9EsMwmrIx+51DBQ2Z766f3XMWQ6rQOl++uPP/KOXYmc8cYIx1wXgQY9JZw/eVUKdN57DKHGTKSNSmB9XQBihZKLdiaa9LRZjnE0XDPi2CamVMZd5jv8gTY6ozgWQLafTijAeLUJV2FGeEqhJV0oaK00Rg0Rj9m0YowAnpr9DHITz0ygoFPeFZyADMZGNOhmGufujI0uZL5+455Gcy9OxSOGNiYa9qS54IxBgzFIy/GlXS8+iyr6PNn8AmKpYOsAS9F2HtCi9//8kaEcK7GXc0zSQScvipsTzdEjOt1Npd+dOoKS1VO55JrzFZAdMaklDcPlfOinJc0Naglj6isGeErlo10/UiHKZEuzTYyLuVH7putBberc+mdW8uCgLWUjBKKUqvSuzMimZJVhaKeTLgZL1UjywQAROmiXI58z8eAtcLpZNw9GF//YOHNvaFzRd0fg8fHzvWYUfKSAnCocDobGzCqsm7Z/rRtxrpIIg0891HTZLGdjPz9hXP+rRgp/9U8Jjmk3d9fCc/vlWkOjz2U9u6KSwrLOoXCu3PQ23RFeQ6gkYwGZrlJfl6iQpWgpkcl4/kBt8fGPnIvKpaxdA9okQ562kCOZCWZ2nRrZlPmUoxlRvmXUuihtKPn/jjjNoKCKlYK7Xpgb+7Zu1PLisYcLvUgRFnPZ6wumAcPrx/AjLEfjD7YtoK5s+8HT7/6nr6sOMLtcuH5cuQ/B5RtQ3wQWjjfbRyPV7xD0XSS5fRLQQwphvfGcdU5jMi17ZN78pUAoHlFN+HddfDeKlcRLp7nLrNsAbfJBzYJ1rMg3jIWeOl4Mz5784pVK/LBKWth+/E929/9mvN/9IpN4KvTwr0Ez0+d0zJorWMkYFlzI0EkSzCcoPf5M/p0Jg9AhHY4rQVjOPtsQMzGZsVkpJCqk3usPUt7Rrroh2STMZIFO1qcwztdlC6OHDtVITS/T8mEniwuTRf0iPw+hk+nNLBEUIry/YdGXZWt5r+7RcFlImsiuB3Bv/7mMe8Ln7gzS0yRUrkdgAykpS9dNW+MogNkJ0vnFJfP8M8E5RHb7xE21rqw1JLuWwchxaMzJ5aycBbh89h4Y8HbYvzeuvD1prxahFenYFtzSEwEt1DYnL0ovWQKx23j1M/IWAhpDAu0DNQrFkKJW7J6TSCWPKO3G+DscyA41PGWg0GVoCwnzrVSLH9GKYbVHcQIUpMRltQzygBdWFSJ0TlQQja8FCI6PYKdhklnXI24dWI7cz0r0hY6BxrZU72UgkRnkY1FMgmg40z9S0hUvxXbaF2hHZLOpXXw3dWQEdxXYSj4SLdJ5uiFe/JQmwVFnmKUgg5nKYF3o9ZfH7jzNJ4gbbMxF8I8QFEGY/KzmoCJzTRXRr40MjYlklb4tEP7tMAlRM8Q9gbM9sH9YxuTUOMFVcvHC14xo6qz7/6R1r+qIyiH5+95rdnk2CJhpBGezXEoMpILki1WkZGw2QZ0jLzovSx6iDBm5NBEeHJY/4KgFZFWZgj6J7o+XaRQrNN9tsIp7GEf229UBmPA8yPcvbGEoMnkQo05Zc7yKyrQTdDDOZ2N28hUc5hSPds+gkAnFLRosESwG5w/E54/BNzlFLo1o7rABucNHlsCt9etcDucLooVZT96xvwiD8IuzuWS8GXV5Mv5BI7bBteWbgmVmJvojJR51lTvI6McxQe3EDab4luknVnqoGLEIN1dGqy1E6bpNJxxxsgzHW0oyMjmORG855RVi7PcLfzyZxfefqUcH34rtPN/r88knlHUUVFGdV6vhp7B5ECkZhxB0j11REKpxkjh8iUGJZrcpxSeYjL6ABwrNmOGKaIHPifSyS9IfmDmh7M6vKeFvEmKWCelH2MKD8ESPoVcRekZyXDmjps8QFTx0VHRZFZNT79IRrJgxg0thRIfPZvIygIjaNEYBIsmyyjU07aqgpFxM0TQ4UgpHP2YTiKoNcUpQ1AzfBwI+a7XSNH2GOlqCA+WlwHHJ/h8H8GP7oOygUplvzn7+3TWdYLTybCq6PLSiDSQyGhpnbw1XYxihShGUWFrwqka9Q7282RbnY2na6N7p98UkTL3lhQME7wsU0SLdDXFQDwFIxHDIhjqRDXc83uh1jnkBA7eO71m9bmHIeNIwVKzRZF5QBbVbP6RyWzjL4iVU1hPke2FrQWjOC/XmxQ7x8svR4sGbgmGV7JEZuQa3TwvI6MpUWY8qQ3qUsnwYl4Y9S/Bbvib8hw9eYzD4WFVli8q333T+MWfH3zxgw0EtiKsVbjcAlvhs3dX+Gzj+ZaRVwUinNveefuwcBnJ4ntY4HZoTnI8WC2QYtwORwocPUXROqPIbQTnRSffMR3NxQSKIuL0lq7qYcJxCYjBEcK6au5xOcXkfs1fwyesNiJX0SJwuTh6l8MAk7zMRQTFsgXWqrKPoJKlF6Y5mFyqUGtw2pQ///nBShYQMYQwhR5cnoMvvlz55k9uLNscSinIZlm8UvP7uh/p3D0GLJonyf0TPXiV2ZwWtxvl4UQtuZeE+xSa4fzFRuu5ruwxC5OW5I49fRhEjGRnjcH9mzNbzX9ueMbr3CybvQaTfSvIqXJ7avhdpVqei3QxWnOcYG/ZBltJx1ctSt9blg2oo6UgLrQY2BxK52Sz0MPYNqOWjPzotVFfndMZVQRujWHZvqqqxHHQ3ZMTeS5c952wdKsmg7eiEdRT4Xa7IMB5Lfh8N+5Lil9FbeIhBsu20PsOIRScY3TCs/wpRjqnT68K+/sLdqqZePnUnmlaEBG+uzROr88ckTxbiqDTmVkV+myyXQlQoUjBzKjVWe+M88PG2oX6+kTzg2hwOp2o5xPbeeFpfE90Z70LnlsweidaxnC6D8QzNWTDM1pYMgbd2kQzuCNh3LpTGAyU2NMBPPrIWLcK0ZPZ5RkBoW5KG2AjzRh5hgw0cn3ZD8Fxbs1zoLhKtg0y73Sp4mOz6bpJcFrSKIJJCgURXEI4nWBvC+oDkYyy9skLXCwTUFWCp5ZplRdn1icrao3AecYM8JplQ8kxIPqCyJWwlTYa52KoXui7w51xfh+0EtT7Ez2OOehtjGHQnPtz4+Rn7tbO758fkB88wKmkUDauvP/wyJ+/E6wOnvaDiJItI3pC3fH2SPUV/MZajes4MmXTcrBicsa1Y34HYgyB0Q+UwrIM9pZ33MNBbRpqyoH4mdCO64r4QC1xC2KK6ECa4TRk2fFjBWlT3BLECmUkQ9LjQGVjaKNyhxyd0XfitRLtA1aWTKpE3h00OtDQOCXLmxs2hCEfCFt/44/st+J2qZIxN5GYDVnO3pTnETz1TLScP+rwIwUujZzQDmGTYAtn1fzyek/m1osN1QRqcbYl1ajwF/h5Ri/Es+lLyclZOMRQVBNkPOb0dzCnazCZLYOinRFO9+QftVxlkUjGC6ETXDl/Hnl4fn4WlpL552yvkGzWU2GbTCbICR6ei1QTAfzjQd4886ltRiaDwMIwFPNk62DZMIfKRwu0Tpda92zMaxFc8oP4D/zJ/4d5NvP89ynCajo5Q7AoYOAY+5Py+o1QNetvJZjiV1bTvjR+9YDowf4IQz0ZCQTntVEUjpafvXg2M/We7oVVMj51rkFo2knNHKtZJX2d1nu85wSALAGI6dybOhE7gfSgrHm5JGKCuz3bLOb0wF3YR7YgEsIx26FuPQ/P+4DbcCSc3YXmkdGhknDlrpHsuOJIFS4j341FEg5upBDBgOdbfGxlHKLcutCnS/K0HjSvjLbT/bdCO//3+ogkmJgJN95vg++PgQ/lejOaZ9XM4Xm4VQGrBS3p+nCBMJ0Lu1Jqbkg5wVaWJZl4Kvn3WhuMkW1t3ccUrTqY0vasPN+fB2LGsmUzYgLYhU6b/BmoZBSriObBrthkI4EWnWtmuiuq5kG91PzvWgSbzXgq6SSVkg7S1jreO9GhSDolGgd1CcrijJ7TeZFseB2RUz8cjt1ZNqObpeNsil4WQhE4qXG8rMOact+LsBLx6cXAAP7nf/aLfL8k6GRcZ/3cWd4IpzfQWuP5+xu3X2bhRBxCH04LZ/dOm/W8FnA+b3x2PvNmW3i7FL5+WPk7X9zzBz/+jD/4W6/57NWJ87JRT9D6QbjjPhie8ZsQ5mAFouevG9Ot1V0II4U1Gwx3PEY68MZOl4wcWQTeO+M46PNd8EgBA2tYSdEpPPe4McZcSzK6P0jXFSP5Vvluz3HMxwFOro1KOqJVEgIuaVgG8n3xyAuFz9jkPrKZykceAFfLgVJE0OPTK69wybbaYnDpOe3/6suKVPjuFzdGc+jOfgy6Ow3lzw64/ckVCF6/Xnn9qvLmoSYfdCQeYjPh8TKbBntOfZfFMM2oYDXh6E4t2b56vTl3W4qy66JsS8mWwR1Gc6oJdydlWXKguWz5ORUL+hhc+oyQiuTwbw4es3U1S122IrxdjCLCaZnnsRcHvpFOLkuXY8bohUFGLsqilNnS8/pNYX8cnKqm66EF8a7zphjDg/258+ptDkQPh/3ScU934otTerw4oWdUaq2f5rnr6BnXu+3ptA13lOk89sSE9DD6uyeCzuiNMZzeYLmv3N0vnO43tlcrD2/vGMfOvgfRwCK4Xjq95zm2a0K1gUTEbpV+JEOtVEV7AIGpUYpSaoLf1fJ+UKpl8dPH1m9QKtvpRF0WVIy1LGzV8DYS4I7w9HxLl7wqx62lKzkgLNmRrSeipFYjhrNaZV0WNlWO5x1x52f/+ud8+ZOvqJrttGKV5Xxm7Fc+XJ65Pr3nkMIYPZ1A6wJlY4xsNFTSJRae/DjRvNbVV3f0fiP0t+Ka9+/3ya8wd0vl31yC6+WCIvQG5yKYGsOz5X2E08ZAyXWhR+ACy5pOvzdnQ4bz9Mc7px+/5dU2CHvFirOsC3UTTB3rPbEgPe9d7il8+3SH72OwR3B0x8znEFlm6U1er4rlu19r7slI7l2WFb5sdZaSXbKBTj04xqBE3kUYWfDT46XIKx2NPi0JeEyTh6AMRuRZVCZmB7dsBY105vaRCAwh19XLU+7nLpIDgfnrF02m9MtA80XE+lRjhiIVixM21hz5SktTiN5QnukjHWsllryPO2isKJXbfUOPhj0LRRYUZxw3vDcWD+5fFX7fX/GDuzN6d4++fUA/f4Xfn4iffMXrf/gT/t4//JqffP158tVqTVGaCmaIbVCUrWzs7BCd1gpIp7VrCk841UHjBiGIDUI6l0PTLe+KyMboO6YnzAWPRvhADdDbdE8/Y7qhBGqFwoaOO4pCjTvQleAuw2DWUe34vDuaFPRSskX6vlA4gSyYF4JCGYIMYYwFVUPNUH1mSa8bRU45yPgNn9+K2+W9CeUEz5dCWTstjNPaWaogZXA7hDrghLHW4DoSEYJ4sjE8JoNFkK6Yzml9zGCEpBrtIpRQrGSWtU2odgAmufDxcjCef22SNtXugXhe4rZZQ+nD2CPV/qUkD8TdM45G1tOb5s8YBOZgJZXMrQS9xYQvB0OFSxOQ/GKYKoumg0o0OE1Hgw/omnnmJskZs5JQ8n6ki6cueShTDPcECSr595gLUqDskULd6HkLeNZPU2U3H1QrlHBuLgzP5V8A73Ac8OazbOWLAYs4XYRV8mDehqStnZkzvwGhPDCyUncE3Sq30dks6J7cjoYiBdqRglSI4BXaY+N0MqLCbaSzQH22wA3Bb421wj4CiTHB4PlnkZdpsQRNBxVFm/OwCBdPsLZJMDTz93lwzEnNpQu37owwusNasixgi/lnF2d1S9s/efMb5J9PhZx89fldEwDDzFkIxkhXmo68kO47YMFiwmc/KHz388bnX3x6goMU8O7cSEi+74J0oWwTjt9ixgdzDXEX1J3eB8t5o4gT4Sz3K8flyMpuDbDKQaMsZTY0wVqNukB7hP0AwieI1nBzlhYcN81Nz6fbhWla0MGmC0MybmpFs9WOZDfE8GRsyFwdNGPVTCFseLZDheR7gxgvzVwxoLeRrscARLKVMbKhtS7JDhweLCVFiNFTFEOz6eX2LLw6D4aUZEJlozR9vJQbBDdJC/2lz/VZGqaWhQSf6KHqf/mTR/47+QoxTTdK72hRRAZ4pd4frA8Vo3FrjdtFGS3dKXUxalWu+47GwluUhy+D03Nw9sZnd4b5YJOCH2f+s79V+NmHC3/0Z8aH24V9b1SrBEpZgpitvDmgzPc4RD4Ojvo8FPts1Bl9MHwwgFvPfayiHK3Terp6xsiykx4jo9KxIyyoQT/ysimarhZ3x+ee7wLhHWLJGM1sL5skIsJS/HWXWZySMcMghTjxjCYdPifdmut+mEBxxhX8nPG1Lv4xdvgpPVtNUSi6U4txOJxW5esfrJxN+Dd/tLMU4fd+tLBqoEugqxIPyvhm51fdeXVfOZ8Xvvk3j9xsYavKuhX2p+Td3d0FR3NkJNS9qvJ87ZyXLLo4xgTYegoCESASnBebglU6qaIP1JR7CXwKVj1SHKqWZRXdmZGFHCxEQPc85PYBZRXuClx7CikpxqeL3TTPYmsaebhblKM7m5HDzhmBezgrOoR+Ce6AmwWnH6zIonz37YEenWIr3YX96NCdBbLZrw9eV2Hvk89qcEu98JN8fAyO5xv14ZziJIN1SadTmdF7ORrrm5X+3FgezsDIS3bLiPHpruJt0BV0WTBL0fQYSj1V+nBMctjRXEDzvGKmDHFGC9ZV6QpykK7jsIyDBYQaaymMvcGS8Vi/dba7yrIVRutoKFUNF9jDUXFUC/u3zzx8/Zo2AqM0o3kAACAASURBVKPTJZMjp1q4uVOWYL+CNue8VvbR6UdnrZXLuyfeffuIaOHN77yhjXRV2XJHr5V+uSFq/PLnf87SP7CPO2yrtNvjZPnme7psxrgNdASihvdsjU3cb6DLK9Svf41vwV/NkwMM4b/9R7/Dj98U7HajkwiQ25EO20IO7l2FiMpFM4khJdl8owe3eqL84mD57J7xixvHCH7yn/997IefI68b/n/8P5TTimnQngT3znET9mue/e1eMZxzS+N5jDnsuU33tI/puBcQZQfcB8dFqCcjjjHLepJJOxzaM9w9JJamnCunW7ZY9pzUECNZllIyleOhjGuK+zqTTFmokUPLpSY/ufeYnOAc/LhHtraL04ZQNdijTAyGYqYUfK6rzuE+HYr5GXzKIHjhmqYDhMMHJxZCDnycOErjrEK1wc33uZ4YIxTvg7ot+EOlt53lXWc93XFbgnMEn503/v6Xn+PfGLz5DH9UZBnYeYHzPf3eYa20t3e8/n3lP/3fF/7ouwvvvvsWGVcOOmYLBaW1R24Mqq1Qeu6L9TUELOMAMXocRJucWwZXRkLiOQieUFbULmCC+IGEQRzUuuI6iOOekMYSG4gzLCavT+lcYaxUaWAp7NVs02McAy9gdxe6GIIQV9jqHZ2DkIYtCv1A1dh7pehAWQiUwTPqZ4oev/Fn9lsh2beRh4XzCr5X1iVtkRG58TULYhnokur6ApwteVGQQlREgDmugz2S5VDTb0lLlhsSjuN0T0XeNJlDH69BU+gxiQSKvjg1yamlaR5CWgQqCTg20lmVjq2gWk77IB1nOtlUSua3GbNZ4iWyGBBijBcXUAhoikx9QNudKjmBzmnzbH+KSGZYd4onRJMJ8PbZPndEAp+LSFZKN6EflWOv7D0Pjj0gimfb1ScqZv0P/+TfcURyzDKfLnRXvn0ULrtwPsNtBMeAraawOAieQ/i+wxCfcVUndihX4fQquD2nA6CEcF8Gi06hTCageGR7lgpZFx15qI5FuEnw+DxdTibJhYiBmdAP5yDbEWUI66ITFJ+8mE2SA+MvUclqPLV8n2ZxbkZy5/RKZHLRLDlK+gJx9owWDgSb7YZjcifGZOfESNi7ZJ6E0BdG0RS7jgR3V4Uqiuvs1pmv0uUKx97YR+Fov/nC9DflGROsXmXGpEnHVPfgyPQl/ZZzs/Cg90iIt1j+u+/BMZzbMag1v6fanWKOLYXjOnIS7YN+Cy7vg9iCr/72Kad8EogMZHTkbMQt6H4wXDOaFbmWVVOECYwXIZ3kA8swP6rykVUlmpfH6GPGIJ21ejKyLN8j1YRvt9tg9HSIyQi8j48V9BbKss3o14RkiaVlfnhyZNyd6/NgqUFUpen8vWi6KMIzUpRsrGxMMc0LapkCVjLD/vregb/KJ0QIEkLaWk8GDDJZClMknet4KZV6UuwhqK8UKwOnEQv4vfBqDU7fD16/VuSWIO+tGmU4K4NNTvzOm7f86PfOaKmwK7fHRt97xlR9sqsUYjTGPKwTGWENnXuIOlrGx3jLEfk+Fwl6z8iYex7iew9674zROJryfJsT3zl86pE9hSMmJycE70JEirhjjI+uvIhgjJLix3CCZLdFdA4fCNmIF5GujDFAXOi945LiFjq5bpbnht7Bmyaj7hN7nj44e4e6WL5DCE8HPB3BuwN++pOV5sG/+5OD64Brl2QwDrh2x3/Z2G9Zz7NWuF0zav341Hl4KJgHz1fnehv05phHwpEl0DEo7hQmVykyMhyScGVRWBbNdYpEQ6hLMotmzMZIl9VadK6dWVyiqmDprDudjSjCPrIZViTjZfISaZsO/VosnWKRTrXbnm2Xt8h4uB+DN3eVbSvoZbDeBstnhbs3lfu7CsB2Z5gp26ZwHbT3nf3d4PlDQ9rgznL/fr0kn0lD2Ah+8yDF36xHVejU/A6KI6aJLZDcB8cg+Z0OsazslwuX726E5xmtVOE4OsPHdG/OM60Ex34FZpPp3HeKB6PNZl/NFrbTjEoFsKyFEJ3OdT5GU4ls4pTDqe6wGG2kKCYODzWHwcc+0D6b6S43RklUyQLszzs9VUpuvVPM6DMKb7Xw7pfvefyzbzmebnz3R79Eq/D2h295/aM31FpTyCopKMR+YJIu7HffvOfWOiaNYnB3fsjW8tn6ejnI9Tiy4bxo5Dl1TOcpjf3509scdYbpfq8q694o4URzLtcDuTlyDMbh+CHJsS1GEYNqyCxEcVUWNWKF7//5d5xfbfzoD7/EfvKAvMl1Te8h9GBvO/1wnp+CXYRxZ8hZaI+dcRVGEahwJJiYYbD3NDZEj9nC7EgfGU8eg9s1z4mMoF8PlmpUqRRzRmtZjnG9sffkmRqSB0rk4/4ZPV3b5RSIpd3T5sDJe5719imWrxPqbcJHpyJTrOqe+/O6Kq0xGXbZHCyScdt/9qtch/+igKW/vj1/Uk9wYqjiOpJ5S7p/uw9qN2RU9kOmi1zox4GPK8EFz4UNMedYgz6e+bpt/K685u/df0HEhhaFnwv2weHzE8fXJ57+zsLx+w/cfrjSf3rm9rly/vJz6sNGeXXCzq/yvSWRLy5K6Xf0PqA4IQOJTnAjbGUoiC6o9RTlbCEruA5qGEihVkE0z5WzgzNbXtlRV0SyccylJg5ChN1zcFnKwlIGUXeipYiOL9g1z552mkibAO2GIhz+SKgg0ii+sviWmBW5EdxQTyZ5sXPyzam/8Wf2WyFmhWQLGBqs6mymaY3zTplicEP5MKNQmwZ4SSWczhHpCvFp+ezk/75+bCNMNZvpqBp/AWyrSjY0acZ5ZE79Fk3lv0VeuCKCxVK8MiVz+AojBhp5WVNPZ00ClPPgXSRb34pFWvMs/zwv4NQ+FxSJBOjO5BtGTMVekemw6JExxpAp1OGEBk0iF0UReleO8Am3dzSU7p6OjRDa0ujrIDSdFMKvraL+6e15QLLN/rd/+z3PF+f9o3K5KKrCw72wnbMtMyIB2W3kNMdIDhKSQtNErrM/K7yC5oHe5WdrNbg2QwY0MjLTwzlZRkp7lwk/D5AE2TJdeh8+wOMR0zYM7987vKr0Dk8uU6hN2LpFTqWbOYPclA40K7+LfnQUagShaVHO74RwE83ygJK/ppUgLKcJQuCSyGU0F8WwCZmc0xdDaDE3Msm69EWDdqTz4TbSXr9MFpvOqKbNrH+9M67Pf62vwV/JY9PC/wKiFisUtbx8u8MpLzh0iGMAwdEGhjDGyGYiheiznVKgnArVDD9gWRZiCO1IB2h6Mo19pPvl6I6PYGi+B7fLTrGC8P8d+buDamFEch1iHLkxDmfRBC7bdDXcrcL5VChVOFWhrELdyq/ZgZ6thz6h2EtNVwwTiEwI7Zixt54iSB6A4uN6U0y47nB9hvM6sA32I9szAZrnZbJUfSmoS4cWPgHgwi0Any2O49M8VEnA5UjGTC0J+g3IljhPp25xJ3pe5Ibn++DRYCXB7jbYPt+ov3vHm99TqsN2EtqTUpaVsiaktK7C3Vb4/S/fsn1urA+GmzJ8TCE7h0WQ7U/EFA4wmgIluVMoeBjdPUsWJSYkNyPyEB/3zCCywWsI7gmd7yPo4Zh4Tn/9Jf6XMVVkMHyfJQIZi5AXx5jkuzZEiLmmvbisnZffr+aaPNLJ8/GfkxR0FMPVaUf+vJGb9V/Dp/9X+8QmiMPlMQctSJ6vxJIXtKP86HdX1hP88Z/tfPP9YFuUUmF5WymrMd4NfvVu8J/8gzfoh87j08FnJ+VUlFfAYhO30CMbc9257VkicjsS0i0qLFPROVpwPZzd871vI6OKotNtp3MxGMK6GltVbLpD6cK6pChVa8lD+QSBV4PFhf3mXG7p2thqknk7ybDaO9ydCxrBUtPVcFcydrbeFZ6eHd4P1reF5fOaoPi7ylJ1xo7yHTEVlrPx9ovK+fPC3X1hHM7teXB96nz/wbm2xDtcu6To+gk+fuxoTfammuXlmxyiic4WwxDMCkGnbBvrqw2lc+z5n3btjDYYR4e5r4ZDPa18+PaZ7sJBChMusBQBM3rzLB5hnp1KScfSyFGfmiYioIGPPKvEWhilYgO4No6nnfZ04/ndjed3F/rjE0/fPfH0s19x+XDFI7juGamWtVCWhed3V3wEj8+XdH9J8N2ffosslTc/+pyyFF798DXb3ZnXbx9YSqHUivee4urRGPtOKRUpynK5Uj878/zzZ/Z9ZJFVKchSc+hjeTa1mvDxmCKdWjbFEsHp1acnl76wQtdTZblX1lfKUoOlVqIKURXbDDsbMZIheTQnMLTWvOuJcueD7//tzuc/3dgeVrbPNzhZVoPvO5hxXFZ+9d17rrsSp4JYIkM2M86vFmyZxWNuaXiILFxSDbzlGoQn0qN3B2YxmQfePFmSHrTeGWMHB/EkmuI2xX6nLFmSYiXdgSNysBhDMpjlmUTKrjnQ0I934qRwxccIqta0oDrpalRTWuQ9+LjlbtcDXDrDhd6d//VP3vHSYPjiyvJPdIrYD0fakrHdds4UVF+pYqzLhkeH4qyjE95Y6h2C4X5CXJAR4A0sOKRy+2Jleb2ijwf8+QHrBl8Fcf+E9h9x/PCMf/6a8fCGuLvH3g30Av6VsEZwun/L1b5FKFiHvd8Yrgx5ZuC0I00JRXKQ19nZo/363K0Jki8FrApRnUWWFNEnI810yUEpQuGcuoDuLJMT3mOhvegUMdIcJIrZiXIMpK9wbfh2EOUBKBTdKAyqGUXT8LEAS5xI4vgg2NmoiYOQPGsNBl2v6F+iRfq3ImZoIdiMcXXVzG2SDgaVoE4YRtHIiQmKSGcV2EOpkUykY6SDREbyikZEgpZV0mkVnpfzCR8mmK1Js/7XnSGK5r0x4YEeaR9+cWhZTkGEoIRQ5lRkIT+WaKA1ozHFPNVxTeGrRzq92ghWFY4ejCX46Rv4tz9X9g7rjBMqWUUvkc4sEfkLkOPMM6ejJ/PgogYl4e8yxQZmC1TbFVcHJWNA+Uuwk+0EI1LAUf80D1VC8I//9bf8wU/ecB/JtIpQNHJK0gGxkRNYst1jINCTEdPy/0bBic1oESziGTcQo+BoOE83WE95eO4hPKZ2RdWMKR6eIk9dcjPuCHbnuKeodVoFWTPWUjZlb53bgIJwVvgwYe5jpLPGg4yTSbYi7QKQB0Sf7WAqyu4T0ldSlLIxbcbMyA4TBR5KyX8ouWJzs6qaDLoERoKq07oSBgynSDYjSnHCs81HdcYWNeNrd/eFx198mu/XIEHZixmyHFyvhdYLSx0gQX1T8MeeLJBzwmNHax+5C7Yp1Vb685GxQc/vdN2ULukq3c4Lz4+NWgv7JTguO9FaThtlxp5bsN4v2OK0PliWhTacMkUhH2O6ToFSuN5askKqYaPjroywjP6Rjqjmudl5HxQ1QiL5H9Pu3trOcKWoThN8NqT5rqiOhCyrsGpyvjyU/doZ+6Asxv1robOg4mySLYfuQRXhoCGhlJJCfBVnF82yD2CjQZd0rP5W7GR/FU/wT/+vb/mv/v5nVB1cj57i51DGMLoeEJZgUAHIy74KtNbRpYJV6p2xmLOeNrbXBX1svP8Xv+LuH/0O9eRETX6RqXCH8OOv7/lXt3fonuyjHuloQfVjGYlZrj3iShEjcHReHJKvpQmAnjHtCGV4S+ZVGIz0NjPLBZD8jLsHZjnwyZi8ZCRsfsh9OMGCuBCjIcXoZFy3hKXlvTthmnFCYTYeZ2TAos5fI9dIQWjkWu0E3Rx14RBhJVuR5RNcug4X6klpe2c0px/Ces4IO2LIFBs++/oEt8737w7++fudP/yDV1QdxL2wtcB2549/ceOrLwrf/GJwXZ2tOp/fF368Km/vz+m8UrjcOt8P5xff3fjjd4OfvRt8tgkaRu/ZqKnkZ988I6tlyZizd6dUYdmMaMmYHJl0Rh3Ws6KWqxCeBSwIVDPCnUOd4+o8vHnpvyNdVNOlV4px3QdLNbyl4Puyqj0+D16pUL+qPP7yYK2zDIOg7T6bYg9Op0IAZYGnR0dVuCHoyRCHpThuio/g/SXPubfj03P9AbRdWO8nE3EoqCIjGVLhYw4J4dYa27pk2YQIahV3KFVgpLtFQsAHHgnkN5S7txuj53e2kucsJoIkVOCys91v9MnbMy2UaVmXUGpNl1c/BsOUWoDI0pSyVvYZbR2eqY5iyrkWjmNn+/ycKQgVaoGqlb07ZVFul4O6KX47+O6bD3z5t39IUWiXg20tWK0crWUUsRjDhE0rR4NC537dqOvKnQTtXDm/fsPTNS+D+z7wo+GWTdQ2BWjl5feaAHv6hOdrIWERn9YjH4cpgoxsBRyRA98WwlrSSHA4lLVQbSE8sA4SSouFUw0u18bdq1O6WpYlL9PX53QhX280N2684/ohePcEaGMXyzO9N/pI5IY3p4zBuhZCwLBkn4Yn64xkUw0SNRFSGD3Phzb3To68f5olLxQfmKRhYpSC9wMRoyzCcc21ScXx0SlUYKBqdE8+nZimeKu5FrZZeKHqLGYMTc7fESnGKVmMeVOb6IBkGp3nAOHa2/+Pl/WpxgxVn9Hrxj46cntCfdBiARNudNQctUbbVjgprjvmJyg31HP9iXLibhj1WVjbzqs3Z1hX+LLC24BzQXhF/MvvWX7yBh2CvDZav+E/+Yr29AH9mbLefYMehS9/9GO++7+/ATq0RETYyD3PhzJsZbQPqC3zc18QjrwL1kagFCnQPcVNb4SWyZwFItJsEwciCzJutCMjjEU77llcV+rCEXU61gbRDR/CKp3rw2CMFdEs0DOyHdlqIY6BlkIjjTbsSl3zjj1aUCnJedad1LTu6L7/xp/Zb8UV4PEqbItxL5ECUCMnqS4clq4BxRFJtsZOHkBLkG2GkqJSJbjtuUkJUFFGyXiK6ou7JtL1RcavXirifQpGGg2oOd0Qx3TWfpMsGfGRgEhNPozMi0MfCYXXkiyQwsAHSAwKwhieU5WRx6MhAxEoBH/6AWTpbBRqOBZG9bTMj64fp88wQdA4YsKO06bwJtPqb6r0Jkj9tYMmhjBszJ+rGJENCaS4kY14mo1on+gTwP/4T/8V//1/+XdoPSMx3pWT5WFIvYAODpeZCU/ekwhowLg5z8149ZDR1DbRiOPmxCmZU+ctOG4wltxkjITd+nRLDEkWkY/8+RqgJnQB24zjcXB6k5e15kHbQWtmUfeAExmNPYDLEWmZnhHXi8MWybUqmnBHxKmS0a2YIF3VQpSRfInpsh8KmKZoSgrCjlDJjTpE6CP5SkJneMEsePwgPGzO84y59gZMxtvoA1PjCMWkJO/tLwHz+5vy+HBWK9OGDJdLRg2LHviAIwqMweneqN8DkQeGIvm9LrEwLgcHB/UcjB1ogVhNoFsAq3FEo54q67mwPx4sUtGzcewZ6WvfN+qrBTulIMtuSE0vKirc9oaZZfSjZwRr3QyhcLkdlFI43QlHt4y0lUEtlUWgXxrNB64pTPWsbmUAi0MWwL4wsYJ2pKi31IKMFM/2y2C/OnUJltXglOtxn0OMCKMYeElOV/dA3eZhLifcirKqMmQ2N7WNYCC1f+Q4fIrP//TPvuO//o/fQFjGQhEWddpfYIVle5vSgRrQj8BRLsdge3uHrcZ9UUwMDaF+tvGDf1CJoXAuYBX6MXcE+LtffMa3T1f63ug3MMuIZztyz1UTXIE5Dc74Htmqo4p3/3XbaU/HTY8OLnhLwf9QwybIHUB6grdNs2RFLReoPgG2tr248nKnkhB0ScfFshZmKBbvLaPTM7aWzMjJ3roaQ0dCbuFFQ0N7NuV5BDIEuhI26JZFCfoJumfacB6PYNEscrCaE+V9gDRH1DADE8dOxk9fVxjO//kvnvnBD1c+fyN8L/DqpPz0cH5G4esfGvEnV/7Rf/EVy5uF+OUV+er+4zq2LMabHvz03ZU//H7nWZx/+aePfHvJmHKdfKxl0XlZmxDiImAzEq/AYvhlsD0IxxCWTVkXy2HmPCcdx8RERHDswd2d8mZbeGyNslhGETXZb4cKo013nqf4L9dgGwGbog+F832hqvD0vhO3ht3DuGYb3n5zaihVgtaDY58uQ4G6Gh8uTinKjcBGOs68BdudUsqnee6qdxtErtUu6RRW1SlmkzESVarp5OXFRz5Clch1YjXa3nPwKIbZ4NiFIYkZEZGPBuQWwcmE4nnOHbXmGuSKH53W+mywFuxh4+iBSkFPydBqEcjesLVmi+d55bk5ZTJqFeHp5++5+8Fb6hw6qc0Sp9Fz4LksXL7/HouVG8rb3/uSSQifgn7+97kqboXn7ngenHh7/wAxMo4WRtGO2spSCl//6DMuz89o9DzzjUb3TAGsRbjdciSJpQPD591ENIefn9yT0Ey0d7wql9uOu8yhFxDKdQ5amw7sGFyfjfOXK3d3gl92HsXQV5U4gsdvGsWeuXzjnG5rOpx9cD0af/rNt7x3Z1Theiuczs7RNSNUwnSsw7D/l7t3+bUty9K7fmPMOddae59zz7k3XpUZlfVwVpmysCmBkAUY6ICgjZBo0afPH2BAQkKGNh1oIHoggZBoGAlEYSQEHSzkp8pVVGVlZUZURmTc53nsvdeac4xBY6xzM21LKC2ZJOuuXkTcG/fc/ZiPb3zf7xO0G+qDqBMFzzhzSVOCjxSFqsN067x81WkIvRqyN9CLgUxBq4maQQXzikiieKZnjbuHlUULsg5MNSOtMvL7EQl/FxVi2ovCUs3ahX15/9qkxzodzd3yvP6+DdLSKDG1HGCuu4v6738LPsx1C6C2mbV22rqgVwoabGMgtRFxR9WK6ZxprTDiYSPGN7AubAoHnYjnz3mcg9o2psMnLJ9P+NuKvjB4psRVpd/OTH/7Hvn9K9ozYfxLv462lS3+hDYqsnaO9Yg+Xrg8Br10VCu+zSzMqKxUC4YOLm6ETmwErkbxiaIN0Y5GY9HIhtZiTNbwutBjEDHS/CItcSay4GNlq4LOOQRwE6QEjELBmLbKchL6IjBvnCdFr56wGBuBojJjMnKg6JdslDWBaBzE0EOeB9UqpSpr35j1gI2GSQfdUP/Z165fCDHr5qhsq/OuZ0SpiHEzFc6bE3MQLaN84YFr2aMBmdtseSfPqnpRJtGsuY/kReHZxEAkRLtEOh0i8mImOCElm7UIamZwEtDJ3hQhnlNpAMlDvezWvSLs7ScZF1TZmS88tVzkv6+Si4ZKZMOZK3RBwiiA9fK+/ZAIXGF1p4+W7hYCNOhkUx4SGfvaX0ORsm+6sK3JwJCp57/TBuH0UEIcI+uuVQR33Vs5YKrl5/q+/7yenyy5wn/0P/8hf/lf+w185Jfz0dLF1JrhA+YCF1PmsvMXamF7DFyE2xtL94oLs2arSD04HoV+gcdFOC7weIFlAjfwml+yHsosCSRWyQtcRvECH3BQpz8rrOuAKTeoNjniTtEUNUWzHbGV3Oy2LdAW6cAi2Dyn39kglTZqi0ClMNXMOns4oQUp2RI3PBsKLbM2uFZQp1nQFXwEbcr+wipBWKWIMSjgxqg55WSPAKPJmYCsaQ1RYhhlKj9lC/xwnvtXjl0V5kOuSWJZ2uAmeBXUkh10eTTm4owzbCXZaEUMZBDq+RquyTMri+YUrRSefTZzeT3wtTHcudx3NGDzAQOmFlweA4pQdkaRiOxTk1wXEu5estkJoVUlVNjW9CdMqthwHh+cMmV7F72m4CqakYwg6+ujpnBU4BCCVGWY45YQ7W3NKNl1q3gEQTYMxVCur5SoP9VItwsJkIKx7/zCHk4poBTGT7dA1hRGxD3X+5Zx6oj8+T7EJ/bvpvckWDgVj4FIwXoQc0Zk2IUbgEs4pRQEZ7gzzXOyXUq2POkCWpU4B943+I3n6Tx6NkNPBlXrwuc3M2/frKznzkAp3aHkwEQRbEvQPyMFey05PHFxziMnwCL5XiefKCfVHqBhTCJIyagsDqsYlXQJiiqtZnRGJUHfMXIPr7KzsJSsvBcl6EC6/5DG8Es6uSJ2CT6Inpfgp7hR1p0rLhUvg60PtDRKKXghHY+RMfNhH567odYcrKykE05Hrl2HJkwHZbsbyFKYr7LddBRlrsqv/xp8+cWZu9eVX/p84bIO3i4Tf64E72rh1377Ge3O4COQQ4OriThOyIuZ95bi64njx53jq0cul+DT08b336y8uuTQpFjunwBlTsemSjb8FvY45Kz0HtmAOCeOoVThck7H6bQU3t13bm8yErhuztvRs/X6SbyqcJwKzeB6qZzW4HIaTCeIo9KuK8skiFbenVeiKNMCcVKmSL4SNRvOzufg0oNjyeYvrbBujnejVqWbgQerJ+f15jrPEl+/+jAJ8P3SmQ8F64PaSvIad8yGu1PqzkkjWa/midcYA6apZOmJwipCrQ0bhqNo4f1w1/b3XCIv8KcBh5asRStKzzJhjlczI2bO29hLJQq+DXTKNasU0HCmaWIpwuV+pRynlPZbpb99YPRB++w20w7dWJbGMGOL3CNrBG9++A3Pv/MxheBxNSZSqKiajYtSlNN6oU8L1yUB3KsNpnliuzwwHa9xM1599Zrpk094+/Ib5k8G57HlGS2SN9ba7iQdMFT2aXy+Ju6WCBTXvIR+gEPqPK4Wujtxn+xPccl2ZAKNbKdHhfEwsKlx/KwxTYKt6UhpNdh6B933gMOJ0xdntuMV5YVwCjjxyOs747ELY0iewVYlRlqZzPLs5ZF7qkmgVhAdFIGpZBlLKXn327YsPXn7TfIitYL3BGTPzZmXNEPInhryIEvOMEIK68NGk0rvjrZknI6u+KaUkkYH6442JUqejUYPRgEimEtwcafvbF8hDR1Lq6gKZ8ufwdyZaw6hF5T/4cvHfyhi+KE2GQKUMiFno7aO+YEIYypjd3gvjOlMkZZn1qJIOxJ6hasxS8NUWceJGUNotAC+XtHvXBP1grQJjkfidsKXN9RthknZxgPRVkpP7p0slR4XQjrzURGtSDRCjUtAkYH5oHsh1CnRkFjRnQ0xOAAAIABJREFUIYSc8dGoWhj7uadF0OQFoaf9TrlCzPRyokqjpgpBL8LsFZGBDvBLx31CfMb0zFyhvwgkKjJP6PkR6wtlhhEbtRkyClEEKTUZbd6Y9DHB8VFwK1RNHICNQDlmIkTy50cb2i4/83v2CyFmXTdn0z1/a3B3Vt6GcZihrwGjUZeNrhkBezpgpotc9tRlvGcFNU149VMeePdU5UYQqaZDgtRDFY2MaGT87OkLG+9heulcT5By2UGxw6EVy6a4KHuMMYWtGrG34+SCmodpeQIaoex/Zgiy5c9YyQ15kB+62B1ky2xcLgWd8pBnkhCx4TmhfJoZDZLRJQFtMta+g0530QsNSlg2C0RCedmjI0G6g8I/zEMVPDFVggF7TDAPlw2oNe3IRQvhg0rypQZCu+TZu12l3lye2CqiFHEmKpczPD/m53ez4DhJWoz3aZ9ZDsxM0jbfPTltwx1CmIqwDqOpEJMyLqBL5rZRfd8WKAgDzwy7B7LHSol0gQ0yEglO56n7u4CmGNyUnGILDGo6/9mtzZCfcXKzsr3WfKqCdyNq/loVBa/0i7Ec022lkcymIllLXDW/cdnmmQf72h0vvxDLzT/W53AjrA/G5VGZFyPSCgBqjC7MS8tLmQxkaYyHlX5XePFZw1anbyMPIZYgztoCWQWdshnlzQ83WoCNnryDyHUvPAXLdc3Wur6x1zbnhA/PNteppJCqAmHpSAmyaaqWzKgbJOdvbqwd4pLA9eVQ6cNzzlL38omS4vfoBkvmewqakYtuSJRsi31qXHLlfG9c3QbzYeZ86nTSjcXOgujhqDY0jIhBK1lRXtIgQ80FO+3zDCQ/jNh+pSF22PcH/EhN94yNjq0N2kBqHlwRxdmFIgQfQZSBiEJUbF3xfiBawFQpU6O1AHuEW4eXCp9XYnJEOmyDqsHN1ZEyPSSzKNgnv47tHKK4ODYGEo06Z4QQqag9cUE0BVAErUGE4T3tXE9AVfd9r9P8fKUgN0CmbGKNFMm05sE7LKitZrtZ7JNACcJTZI0I3Dq1VIYl0zCbEnPAY0LyLDTb8LBkHkZUPJsx4Ak0z8hoFIrIhzfoeeL5739lVs9z1DDBIqPhEsHlzjh8NhERvN2cZ6Xy0XPn7p3x4x+eOBwr8jGcqvIvf1yYrxb48SP8X2f4F78Nhwm5PcLHV/DLz1PJOV3g7Ql+8JZfOX3NNyLUq4p9+cjLs2NhDJRjLTSCMufgrRG0liU6NtJxdViykKLlzI7n142BcP9gXF9VStkbg8PRolwendn2UowTXO6Nq6bMDc6Pg6tFWL5VMwanwubBdukcpsLqMM+NN687enZubitRkud1OaVbpjuYJ/ft0KBHwbvnGdAzLieRMdwffHn+AKWGfJrYDusH3DERrCc7lj2GHA7D8hRftGL7mdXME83hyfPbRjrLnzg/sqchsmRC6N1hLtmYaHlGNw9UK213bwnBUgsWyaidlon17sR8c0jHdK0Ukp8mx5nbpfHFn7xFgHpzoF4v4IaWwvEwMYBSKlMtnC4XwpWPf/mjhGfXylECp1LKEwMSfAwmKqJC9+BwdUV/eMzASFt4HJ1pOrD+/h9w82d+ldP9uyxqOm30ywUvGRsc61NKIyNltWVbsu2Ns7YPHuCJV/lhPfr+nDMIK2xkxNRK7icaASW4PHTm5wt1rmiAjMLD/eD6I0PEWF8bd7Xx0a/dsqmjzxSLd5zvrln1zA+++DFvT0JoSZtxyfO7imWBDRnlUwmsG0sFbZYN1KUiGsgQVJ3NdhfP+MleNtBEQEgwtzzeBTnY6ybvUY0iNT/PoslxjuCwNLZLzwGTp6HCPJvM1QMVI6LshT3p3DsbbJ7lBu7CXJ6a0h3zTO1UVe5PsDx7it7D3/zRO+AnbiyRpzPBz/2t/7k8w76F6w8ZaqAPFAsKCwOnlEq5FJgKUVbCBqbpDJ/kGh8d1QszgfnCMl0nkP3b1yjnbKaWPX0xNeS7B3h5B88n9OGKfv1IWR2kIqvjURmeMeMYxlwFMcNjsHrNpJoI4dkgPHlj9YbYGZ86VQ6IDtZuaXCgI6UwjwbbhOsZLgdaFEKh9j1y7YWInoVNusAcnKc7lvEpo657mZ7hJkztGaqD0Z2lFToLRSRTYvqIyIKcB3EEKYXNFlqBVbcc/EfiaxoQIeiyYb0RvvzM79kvxA1AQzlIwkhD4dlxMHrh/gTtAIJzOVfchZMLnRSqjOAUsLryaHCiEBqcPC/9RWJvOMqNbCJt6qu/d12mtVkyIvikVI9IJ47IHuFLh3tCIj3bUxTd44qClhTQ6q5+Os76FCuUVOULQYlIG2k4ZkoZyeeSyJiIedpShYTYRyKKaMvIg34H2RSTjGI4gELfzaIDZyi5skWwZRooYYk7HDI1N6HtAkbfr4Ee8Ne//tnzqX/anieLrCD8x7/zfYYGpWbrSLC3UkQwPKGhEburYBWOx+SXTaK7U0L3L7KwBrTZoASnLQHCF3fODxmPtc5+cCEv3e/jrhnlG+RBK4qwiTNLsCywro7X5DH40B2El80Q+cbnAX2LjNkipDCWGmy6G8iooWoq5FGyUdN8B9iTYN3sW8jPdNNAIz+XQ7J0IJ6cOVY4dWdY8td6h/MGfQv8YmyrYyZsFvQ1ofejOz7gcTUOP/u69Kfm0aIcn8PxZgf/96xhFmpWeY+eIGqD3oN2qMzmPNxvbOYQldE1X3OE8IJOZCx+Vbwbl813QHbGUm38xOAQomwjuTK7hEhtNeMUSf0kqu/cPiVUWc2xoenUjGSiWSRkPtuQslXRN0fdmaoyt8LSJiRyar60BlZyKmiBbUGpgdRsWWJfe08PwTQL01y4+AYldmdPXmqqCketFJIvo8jOLBQIo5Z030StNCkwlFLTpdVKSRfHHq34IJ/9r/Vf/c1vso5bFSkbeT9UJMpeWJHDlG6GeDYRqjUWafga2HlF5oo0oFWk7VO373wCP34AFuSQsRxKJabK8bDkfWifEqYDOoWE9ZSOUhWBugs/nmwif1qfXJFQysR7Xpppxt27KcN3biPpUJFQzNMd9MR9FM1+1tyLk+s13gPpn1x+OSGXcEKeWmNTaN8M3BsDZ8UIH3txTF6Gt4DNPOHU7imuRXJIgpauv31Y9KE9bx9zD4tIZsW2BWNNx8DD3cbXLzuXUOJQOL/pvH43KCLcXwyvwkffXvj884adO3ffdIYKP9oc+eYR+fgIv7zAD07Ep1fwz/0l+O6/CvNfgPrLcPMb8NktfPsWfvOWT29nrh3+/K88wy3XoCIpAmgVllapqmwB81yzyTTg+fPG3JTrOYtMpiZcVihDuL2qHOZC7Bw+itCacq3KjSjXx8r1JzMf/fqRm+9eM//qkc9+85rbzxa0pqN13QZ3p4xYP+6wbxdYPp2435xXj4PX7zZUhPtXKy9eNDT2QaYqiO4XzRwitb1sYwz44osLIvDtz372xqY/TU808qwesJkxbMMj6Ba47IdbcSo5JGYXsSKemJ3Zdqj7eWxshsH7c3lrQq07T29S1lPWvPcISinMteAebCPow/bPel6mRFP8Fgu2N49sr+45ff2W01dvOX39hvXlO159+YpFAn1xjQQ8vj5xeXsBF0Yf+Jb2Qbus1FDWuzNr32upBox1IOGsa2ezYJglyyuc6APTxuV84apN+xBRGVuAzomIaDNTCw7LkeXqwLQU6lJTBAkYp0u2PJLxNNyTt6s5oM3uarKA5gN7gmDOTBzlyfGvWUC0qOLmrI/C/GzOKKg50pWQC+2mwC6Q9n7grRlvHuBhGHfdeeXKy3cr3//yLY8XZXXYOlx6miKKBOJCoWSywrM5cpmgTsLNTaEecojcmvPxLwUffaoc5qBszmbBusEi8Z5NqpF3ACKH5WbwNFtxFYYEWiqmnoVg0y4kRIFh+BiI5n1Ty1Nqp9IiMQBphI88Z5Gc6rYX9gg7T2u/o5pnMdj5PJKhtRssdB90/zT8/QM9dfGDb+4wWRKxIg3iiKHYyAFsm480gsqMUCko4oMYj6jOjGasTCwcObPyo/Mjby6DsE6yGZwRPU0I/9QNsX1JfKPMP7wwvTzDw0a7u1Bfr6x3F97+yY/YNqh0fE33UoRzsT0pZoqvG7ZuFA+WeoIlzQkZb873e9KFJWYWfwZVYDbKDMvVxHZV8MXZbk6Mwwo3j8izgl0HQx09FKrcEOWUTnXf+w9HchBV05ghrhwwiAvH2nA0h5jHng4xLVDu6ZxwCzZWBrsYZcmV7ucZ5JKi3s/4/EJYJU6iXKkxIVzCcZRnz5wxlLf3wrPrQRUQr8g0IDy/7KTi7DsAPszpEiwK7oXLCFrLhjAIthAaMCIdL7KPJDWUMTxt95Kgvoh9ghQZ4dKnOIzGnm9OcWGY7w1JuYhIPE1y8/AvQIz83JSShyp/AmmXJHcMzwuJPl0+93jOXjGU0ypNltGs2fjVt0JMka4cUUbsAokHPgrb+AkcMd05ureX5T8PUs2tu4hXRfgP/o+X/Ps/5/f+5/E8DQ+CXNB7BP/h7/wRf/lf+S5X5alJ0BiuTBIUjHWFGML1bcJD1VLNPFnhoJ6WeEnR0FC2iyOutJETlVLgdA9lSb7VocFqOUW08GzMkUg3lYOG4Bfwq3TwSU17/KWnYo0HZkaC4oIYKYRpBF1zykIMoNAQNhTFGRTEsj3Pyc9gQtvT6eIkTF4kL6kO6L6ZSeRndRbY3GnF8VLoZ0OqgGi6vEJSnIh47w6qJahF6WE0he5C/UdopvjT8nRJlx8teDZXHt8NLhfl5VvjxYtKH4MxBtNU6d4zanGA4xb0qdB9MDajTMo0C8Urp0uKTCkg7lXiBBQl+sBFsb5zgCR5RdJKOuTcuGwZ7xyW6xU0HEMWGOeNGIIVmGu6UG2zFK+qIMPRJgwf+FBKFSi5BroEJQrrZQ959L3LpmTDGfuQodvINtBawTrLc8FGed+IWUY6YrPqOHaGnFPiqbnQ0B0YXMKpU6USXC7GfNyb6PKGmrFpiw9Qasjnae36q7/3mn/7n/k4I6GLJJNuZ2q4Zf28mnAMSz5NVUbfuAxl9Q25viFq2TkqiizP6NMb4ofB/O1G/x9/n/Zv/RbElsOQdaVbSZeOB00KY83IjCi0klEttNI1CM8GmiBbDEso3ZLXFl4ZJvRhyafcXbLJ+YKLx/vobCkFrDJGAuYFp9V0yMg+ezMfyd97isoD0TtuKdqrKjE8o0bA8LH7o4MtwD1da7UqNhLwPHYGiwRYOObZ9CMBdcfRfGjP8SrPAUiCWKeS7j8NWIpwrMkq9R7ch7OtuTddo/icsWOZC598Z6GcnYcfnLh8vMA/cYRV4Lu38Bd/E/mtPwd8RE5hPgE+BS6wbMT1inx2S4TyrRcTP/rDd/yzv3rN3/jikQ3hxZKCaKhwWArHKDysztVU4BLMtTK1bHCalomHu41nN43eg8fTSAzFPrA8zI1np+BuCuonc7pWPegXZ72srJvR5oq40y2nQq0VahPU4fGxp3gSThuCb/Dm9cpnn1fuHoNlqRyeZfRpaoWtG5cVaoX7U/Dm1WA7G6XCGMHnH1dkbpzW8f/yLv3pfUIr/WRMh8SHEAUbzjTld66b77D/vTn81JkOeSWJkRObsXMjRZPfqX2wirK0klHj/fsqIkxXEzI8a+MjL9q6M23PFpStc3s901Q4d8NXY/koXVkhsiMg8rMvaLZSuicIfmksVwfWMLoHTeD0cOEAlLmiU+P5Z9eY5X40YuM4Tdw/rnCsuHlykNwxTW7aej4RpVCuJvqpU6shxfjmj37Aiz/7a3zxvT/hs299xOPpgWmeuf/ygfrRC66WicBxn7BuOdTqRn88M4pQp5b7a+SZTj/IQU82jQL74G4fnl6EgXF10+BKKVphpLPcF+fxjXD7LWEMY3s7cxDjoQsXO/HmlTDphce7EzIqzDmctp3hXBrpuBJNNp8arJmyOEzK9cfK9mrgqzMeAi9C+GB9V5iXoOSBjBLBHAmFn2uC66+XQLzQDaoMRBvDM24fkYLui8/hm6+hLU4flb7lwHoqWf4lKsnA9MiyjKoYQpdkTVpWHLJ6NpG7855Z2iPwNbIEZIHrRamivHoH/9vbc37XiH8I/v4huv4A/sv/8wv+vX/9lsct2yRNBMoJuKbHStiBojBiJLfPHriKF5iu+DBanwk17tsrDltDdPA3v6f8C//k51z3gWyD8uaOGEH0I/6rv4l8/fvo7/86h791hu8ecd+IL05cHmc+mj9F7pxiR45T5c1D0MeFGgMrFW2dqgciOptcgErEoJRrxDYmW9hq6iXSLrjNOBdEF/oYIM7SBuETJWa6OKs90mi0KCmeritNGl5sR8kkY7WYcYlOrYH3itZAo9FKoOfOzdySzaWK6sDHhNIY8pgmojEhfmK0ykrQaFmE5gtVpp/5PfuFOKJtY/BgKdq4kw4mjCrBYXHu72u29BUnHpMplXDuhBvWCKoJthWcCpY202MLZoFaFKcwBCjBVJVJJZVtF4ZlHbWZgzgiRiV2l1Q6pZ4ORAT7oR3YJ8ZEJLzYsx5VIw/SBaFpYa5ppxkO7Bf/p1uKlmyvsMjfa+YprkSKAqd4apvIWKEDJoFPTu+FtQsdz6hFOm3ZDKYJ5gYqiukecQtnlpJ3kLyjMksymcaHCIncn+C9wSFFGvL9/E/+2h/t0GBYSqHti5aaIAb1CsICKSnm9MjXy3adsaCEFKo6GLkxaUAF12A+OFP1tFMOoe0XuFmfphvJkameTZ3zHHv7YTr0tnMCideAQPECNQp9K5SSF41pKswhVMlOnyCBlLnPa/5cqiB720/kdyEk7fu1BOopaBEpOnlITrMBJDjHHp0IZWyg+0S0sn+ONAUt378tZR+6euzMLBKEzwcoOTRRXIThKWwfrkHLwFbn3b1xFAWpjOFsHpzv0xZuR8HD8HDmQ6U2sn3mabLaAqZcK7wIoW1vwWmMkZd81/SA99NI6L8IJUoeZM3S7WnpQOlbsJ0dmSZMC2VK+PqQIJrSS4qpIikZVIF5EmKk0JqCRP58RYAR1CpMs2bVr/rehkeKWJpCwXIVEIUQoXty2nyfpHZLIX4u0Eol2MU1T6dYCOkqjOB0ceSQjXg79W+PlP1ULPwDfox0B/eoySDzmsOJXpI/JuDiuIJjGBnPuzl0LJTLu1yDXDQ17xDGKRh0+qVRb4EumXMYGVfYxsZ6sYwu9GQKjpEiNjuH0j2FBGejSIBteTmMSJeUddb0DGfDDwULw/f4iw+omdVHteW6qKQgFbG37OQMOCvHA5MsL8kbRcE9L7Bjd1i5J4oA2b8DEWyRQy9jgObv6RFcwnA3XDIaHpptWDYGge/8ufgwAfCRDcsdWB0ue8Oj7EbHLeC8u+cGyaCiKuVG0RCOQ7iswWN3uKpM3144D+fr33uAH7yFL1bif/oexD2wkX/SAPuKFLQ+g9trWBpyNUFpfOuqYSP4zc8WSgRVCssho2LHpXK1VG6OE6oF0V1E353Pb745Iw3uToYpPLudeHY7cX0zc309EUOYDpXlectGVlGujhPTorgKx6tK34z1lE7aqFn8c37sIM7HLyaOh3SGSoXPPps4vKh89c3gT368cfs816EIpYyM/D6cje//8cb92w0bxs1z4aOPK599a6LMBYtOHx/evgjJ2yzVf8KQ9HRRBnskxh3bOZ65ZviO7SDXFVXMDY+Mtce55+CPdG7JHvEiUsyISKGhzbn/1FYwezo75x69hWeL+NsTx2czS2uIFLrt7eeeLhZTOI/BBswtwf4+LtQI5irY2ahzZUwVJNvYtScwvJuhpGtiaNAfNiactseaQ5R6tWTRRSm8e3sHPjApTIcbGs71p79EvzwyykxYz9eqB0spzDjFnUnzzKoSTEvh8PzI4eqAlIJvtp/Dck/40J6MRwtjH45ogW1zRguunk2UUljmxLm0pUATTm8Ghxdzum0eg7qA3U7JN3o01m3weBrZaujCVhsjJrQVIpS+ZVS+b7bzyoTShKvbBgSn187jGjzeZdRPJkemwie/XmkItx+1bFstwbElC3BzZZnzHundKGKU0hAZaYZ4is1o8PIrw0Y6jyGdxx65j8kyMzzYBOo+XOo4Z995lJav2uZKizzDiQahweZODWFds6glRiDF0QrPjvC3fvQmz2bBe2cW++v/oT4/vpx44IZMl6braGNh6GATOIdw0uRyVwq1LWx6obpg4547vbDVAWFsEQwGZ3vLX/+Db4gexDbgrMgfrZR3A/m1mfinb+EHj/DsAv/7K/SHV9w9PPBohl83/MY4a3DnwAQxN5huUCmoVSR6RmypTLKg1tDh1HLFWh0vvq+9E84dlev9LmFM2rJszks2rXdQg7COh1Fk0KIScoFNMAWXhiCsRXGfKHRq6RRXLqMDM1EF2RpM+yDTCyEddaNawYZQ64bJRLeZ4sIWxsPYGGas5589LfYLscxdNHlEPQLX4DyU06hs4tCMZXHePSSrxRAkSlrrdqidWEU2pTanNGMU2DS4kIfh4k6RdKOkY4DcZCEncBGUsruvnnoqd0dWLbvApcB7sn4eckY8gYwDXLiegz5g9YxYeE+mzWkDdosmJcHzRWUHWUrGKoqxDvAQqmgKJQAqSBF8f402VS7kpFInY6qy2/3kvUgzLP9/qNMvFSkjoZCRr5dHvvENuIzKeqlsH+ZwEPgHnVk/eS7u/Dd/4ytGpMaMQO/O6VJYrpWpxM5jyaKBjlIlhS4TePC0GHeUc8/2j9h7wjdgE9i2dAQUdbpkYcDF4qcmkul4uli2oZwenPOW0OxejN7TibeSiGPHmasztrSOdoOIdGnVfcPZesZKezhLcXzEe8B7k/ycp0NwJw1JEBsJN9wFW1doFMYO9FZRehdsTSGhh9J3e3L3IMsRU/xdR16SNpN0hEXszTs/xzf95/S4woie309VgsLNiwQW94eRefbIw4+dgjrXhHNXofSJ+diIomg74KGEyH4Az/hcOShiGQMaw+iejlALwQIsJqIFa3dsh81Pki5M2d8RNB2AUhU1wYehEtSpotpwMrJXJwUK684WdEvosuyXD18NLAWIaRG05ppMZJS17xXUtuW6+/bOOVxVkKD7ICRj4CK5zrcqzG23Ju+xnKzDcEoJtj6QkvFH3YUcD1DJ5kMtQqkteYflw2Ma/f2P8Pe+CaZpME2N0pLd4lXQNgGyv1cJaC87l8bJ2NOrr1ZevruD4QzrrNuG6cLhN17QjrA+DPjqjJwNzoFtsK59H9Ck87Rv6cYZWzDWZGJFOFuHoNGHELGDiwia6G4794xHREd2hpYhdLd0m+5usfwc5XrZw1OMCmewlwl4Xky7yM79MNw92WCag4h4L/blYmNiO4drL6iIHCiEloxAslum96mzh1A1xVePXLO2J5blB/Y8TdptvxCKKJtno+QlghXwkuccbewMHrhsQbuqcFtpi3IsSrPgqIo+n/AmvLwL+KPXyAL81b8N3AMP8M3fgP/uv4cvfwdYkOUKDgmLiZMhzyZetMKhVT6/bTycOufTYOvBm/vB3aPx+tXGy5cXLILX32w8PmwEwfXNxPUycZgrc60spSJaabVyuTe++3zmMsHNzYSZs3pw/9Az3iwpslwtlemQ60uWszjznAOZ+zVFz2SZKueeQHqrAo+dhw5ffj343h+f+b+/f+brL1fu33RqMT79bOLz78xc3TSmqew8KE/H8vRhXgpDQGrduSnJVFQRfGRR0tgbUN13Nt7e8DvMGJIOX49cK0YPvBWkJITbPBijE71j66Bv6QKtVZGI999fUcEiOEyVaUp3ytg26vMj4kGL5EVe1ZJFiqoJ8s5tLd9vC1otNM21zIdBzcgzJbgMI3A2d67mOQcBIWzrikXQ3Tltxtk9S1pCKNLyIrcPbKbWUHXuX5/oDC7nFbGR0bI+eLy/T3epD/Acos2R7djquc+L7oNqhToXtstIV1Z8mJ8vPJ19tEJfhXZsHJZsRptUUVOK577w7l1weDFBHWznwf1DQy1gVoYI20NkA7A0tlAuYjzcZeFTkKKRtnTvpViUn+EY0B9Hiv9nz9e9OF5rznXG4PUfDewCb79xzucsrBAVejxFcXjfdm+eQ2AzYRhccnukd9KMoMo85eBynpWpTSzHiktn9EB3Ju9UsiSnamIbWk227W73IEref0cIrcqOLEihbJljT/IAurNp2NMB7MaOD9iVBXCH88OHZAC7D4plYU0tINJQ2ZgFFn1GSEXPip5mYprpczDJnNFfm3C3HIqJ8ObxK773EvzRiS/fwvfPMN8hr9+gl4of3xLxKfy2Y3/w99DzC9TTVLHdd1QX3MBKQ3RCdaQppeR6VKSi45roTqkHtlq5cCLEYDg2HEaBODI4JSPVlTEuyapiMKlnnJHpfUGTkcuIcoVrxWUgdkAZVJ8QP5M5r4rVDkWxONHL4GGsRFzy9/g5TRCWd+VSnM0qKkZhY0QKvKUa3gvTTf+Z37NfiJjhLMoiYG7Etmd54+lgLuhsEMrbh8b1sXNegzrlRCKA6MK0DFpJKOiuPGVWE6ciyeQi3QFhwtYd97QSh+TmSOxOK4TDYmxbgpNFk/mhmk06KNjOmtCS9abrCDbLBpFu6epqUmltMCJHncIOXX1y9kQCHCuRMMuSsaJuQexxMgmoe5Qik2nJuJHI2KG4s20VLQkYPZ8r0+RIDdaLZL25CpMnL8olq9sjYLD/vSrvY5Qf8rOnRnlSbAT43VcX/g1VVLIZzXuhPAssBPW8NC01hSMfYNNet026ndYAW4PDQdhC8NWRlm6WVEQzHz+1HWKq6UYR8su3EgnoLgmarcfg4il0VoFRwcbuqtKsj+97O5K4ID44owmtB8JyU1IJrtU5ecmqYpOMiZHiaPGORdl54sl7c8/viwkskc1fbc7CANty8Zl3KHCMnPiplN3GHlAqFkZ1yW4x8QS0jrygtsOH9yEbnpubRDpgBsnqWvudAAAgAElEQVR9On5snN8ob14HN7eVMYzpWPAimBl1TmDx5Vxpi+PutFqgOWx5cBjemcyIDtNU2SyQGAQlW1Q8ON9fmK8bjuMqzEVZJuW0u+A89k99AXb22nJQbIMhexywtQTbakXCmKUwerpSQoS+DcJhUmE9R7abtZ/E2yAB9m0H0painB4GhYFFxVUyIs5TsUWw1LozivYomub/Q0uexlWDiUq/t2yKXSolsqkpIg8GVXb4reoOxP9wHwn4K//rH/Kf/5vfBTU2F2QEbka+/obu1t0QQ6wwJF2+rQgPb++R2xc89MEzFcrjGbmCWFfO39xxfuUstcPaGX2w6cabuxO2ZsT5MoRDLRmzr45QMIyNIGqy3RLGnhucjWzUikgxXvbWH/dsedLQvUlwn6zjP9mEwhCpxM7AHHssIifBARaEGV1quhtsd2W4Z/W0kL/GYZ4iHWmRzmsR2cX5lmB4kfcHcxVN54hlyQaRbWAtAv8AN8i+pbNTJJ1GfXfvbj1ZKmpB2N566MpUc/ihRbh7HPix4Bb01TlUZVPhcgI9B7/9F25yA/u7fwK/9TH81/8LfPEOnivcb3BcyG7mhbCA80BuGny1cq3K2YMXx4n7xzPbqw5XxrPbibooz67ScTMvNUd4w5ircjhUhirnu4G/XamzcmiFh8tGvRjf++bCfKPcP6ZILiIshxSqjk24exh4SQfRZjBXRSQj+tvFqItmCTVB7yl66gL3XznrFmx3OXBQCT7+uHF1W3EP7tfAzbNpcc3vQiddRMOe6K0f3hO7+xzreGlIa9ksvg+ZM/K8uziHUUp9n3QYw/LXFugPZ6bjYT8PexJi3TA0WS2STDu7OLJMlAIxLCNae+N4H44U5XJ/phEc5onwoEenlkJYcDUVDGUdg7E5ZSrpcK+VGFtW1JNIjiYZbQ+HszsWFQ3ntF5Q2538RooCNV1mD6txXIRpapzv7pFWWUckbkIKB1Uev/weH/3Wr+QBXQbT4ZrSO+28IccDhnBxg5qlB+zrfjICLZ3xCC6FaZJ0/cmH6fy7tz2t0juxJIqgko3SXlOIttK4vFq5/ngGSCi1G9OkbLVRzSjHgLXx8OpCe57JHjeHFbw+sWUrfQsmD4oI2grzURLbQOJpou0cKS1MVxW7bPS1Ml8J/c5wh+NSKZNxEUU2S3HTQWehm+yNw0CBWIVlFrZhaAibKa05dlbacFbxVBisEhWuDwt3r05YCFShhgLGqo4MyBIz3c0ZAlKwrVNK4dCEMRKh0mkskizJtu97T8LVewFr3zc/1Edd+at/6wv+nX/+GVCQUimx0uyIlI0hygilVmO6BCaNfrWxjUC0orFSqxBh4FDjGT7uURX+7ve/oPdv8Zs/Nuqfv0XWDncnRr2jtlt4/QXbSdg+XXj84YUXt7e8PL9mvRjHBXRc03kkdOJ0fofUGcwpW6O4YjwQtbHGhSaZbLCxZvsiSpeBjRVpdcfATBiDEhsaM6vMuBvIykgwL1upxBgoaw6RfYZyj9YG2pE+ITKwCHSt2BRsXrKwzyDiFsSo5QrvK9oWqjujBmUrtFqwGIiuNAvkckTYWP8RJKpfCDErJLjf/9JLhRlhk701KwQw6iJcurH1yjR3poDtojQXvDimhc1zcWgSmAQ1UuVO0Qq2CKokH6uUPJxRBh9fKV+/S9WVyGa/ddW9VjwjV1VyCl21QBhjj/J5gITTh3JaUwm3gG4wqXOtwtTysDOXPCCXahTNS51KRjWK5pE+NN1nYwgxsl4144wpUkjZW5xCKJEL7WEJ3t0L21CWo+PqRC/MizFwJpOdjSE7m0vwvbI1WsICf/fNz66A/ul7ZA/AKfsR5KfcWsFf+Z3v8e/+pe9QR0YpJu0Y2YjTDC6eIM2oydIoFcxhc+FQ9sliAR8QE5y7Mmn+vkmCKMHjEKaa5QUl9QpAKFJpjN25lLE8zsHxSnkwKBLU5mwhVFPuLaiarWJETnabSDbwSE53EuoYnC/KPKfjbBLoPZ2BMoJWUpSyFcqkOQFin1Kb0nfhy3tQDkI7CBdLN0TCWnVHunkyulwwd4Zly04hXYZrT8egleA/+2t/zH/6/8v7///dU8rupGKvNh7ZGHKowvHWOd0H37wyPv0lZXLnNIyyTPRH5zBB3ZzVZ45zgA68K6UqsBFn4eQFKfYe2H94duD+8UwdGVG1JmzRESk0UUKc+3ujLm2HY2eMVKPQvWfk0wsyZdwrNLCRwpHie5QxLxqrJ5hexNDSOPfO9U1hrCmEKQPVwrbHZNxzGHB5CAqFZ99SGPtnXnIqXfZGxiHQ3YDKNtKt6gGt7msbOUiwyTMSqU4fKWikG2zgPS8bmxk2PswL4dMTCo8jV7LLGkQU3AZFC33zdMlFxgUihK4JVNcGC0HE4KvfBfv4xK98smCsqFTs5Tvuf/8d9ZPC5fUJyoZF4UfrhT/+wYU45XtZFkGqIaVmrNZ2dmRVXAfqNavE3WjTRN8jrm6GhdKkYVUoBt6Mph3bGk9tW16UJpInktp2a78ml0TBUeo+NEKDITsLJrU86CX3agZeClIrmxm3i/BMCi8fjc3YB1aFLXJgwe7sCgnMBsGUrC4NVHLKs+0u1g/tqVNGpKvmfmGko61VRTw4rc6E0BuUq4yqiDnnzWlNuHtMRIEoPGxB4PSHwTwVfrsozAp/9hb+278Nf+Ej+M4BXp/z/fo7v4f8xTt4+Q75O1/n+/Kw4V9feH7XOb9cefFLC8fnC9+EE1WzRa7k+ugaXM6ejL+3K89fLGxvOtuxEJNQPq70gDePxrwoh5sDdy/P9LcBJViuM6aLC7YOonsW+8yFSMMGGnB7NbGObC+7vzjWN0qFixX+8Hff5Tq5Dr7zqzNlKejcWDfjfBms2frC6Ml9e1z3qKwHbefgzCV4efdhnr1EsxxEWiFGR4ti9pNBYmv7f9/dllVJBuhI124gjMcLdZkZ1tF9MFNkb/MOw3aguu/Oh0HgWwIPNJJJ24oQokzdUihfZmwEdSkZw8taROyycXi2sHalTjlMt61TppbsLTf6yFZCE5inigUcS6Y/LmMgrWI1B8aq6Wy0ANw5tEKxwEee/qqPRIq0Sm2Nxz/4IfNHByadeXzzks//zAvEOosW+qTc3Ey8/eolvsy5Ho2Bka6eEMFkd7cK75sOReUXJH/zj/cJduH9HMTVgeO1Ma3yvmnc1g2pFacz3S4QxlTSBfXwOjhOTr1uTEthE6FUx9xZx8TNsXPeZuoE4wTzlUJsHJuyrUFXgx70d6BLDmj8rNQWlN2VfrozzCsTxnYvSC0Uh0cBejbQv/hIMMtp9dqdQ0lHsA3DUXQWNs/zpBehiGI9m3e7dw6HxtY768jm58tjJ2rJ1EaPbFAc6Xa2vhMEzKgHMs0TRqOAp0v02ZIq2nCImk3k/8Xvvt1Lw/6B1/8DFrIgUQ2/927wwHMm3hFjUOsE9YIycYwjnDubnxltotkZQjj7HbN+kukV64gPjrKw2WsIo3HE4jU//N7G/eFXuH14zae9csWZug3urzp3d4W4mbi5cybZOL0ybg4L0gKpLxAdOLf8P+S9269tSZbe9RsjIuaca+3LuWRmVWZ1dVeX2oDExQIkDKgxL6htIflf4B+wQDxaICwk2wIkJPALzRMSFo0Q8IAQD6bVMpIFrebSWGq7sfvmquqqrEvezz57r7XmnBExBg8j9snsi1AhkZ3JqSmVsk6e284954oZ8Y3v+31tO6OnRr7seDL2YqyiYVywhroGVqI3JE2IKUKle2VNE8XDvt8Hc1ntFssnaBPOFvzvIWbOMnGaHHrCaSSZES24NbQeQTsbhqWF7J3JCquvmI8G4q40OyD6AiRFhJFr8nbPKlDJZDJFJx5sZW8NOXSK/fjMrC+FmKUVJhTTTndY3SnD2tg9XnY7RlmElye4noye45A8JSNVZT8n8hKbzi5OsThsiwhNo8lEHNJk3B6U08UwF5aifHAXi1yVOJAjkJHRumUw8NlZQEcrTn5MIzqIC63H3/fQAqasI6N/qRH7mibjXIXbY/C0zAg3jRs6IkOPL+MO5BKtYL5nptJwCZeFJ2ffibaUHjBksUQS5+oqGi12V7BHiHS86F95kiQYBZsJdTTkicB/8nc++YLu/ud/yZCw5DNLsr/6uRC0/qNf+x7/7p/7JnbqGBIcBFM2dRacU4Pp8Xky2LpzyMK2GqnE86HZ2bowNaCEc0TU8S4UhVbHNDYF0y0rKI3uSh0Nl0sO8enSI3DVmg7x0VilkTxHe10BkRSxPu8kHa1NaIgX2pmnxLZWZEoR90kBr20ixCEyod5oa7hhpBMHxxROMnXQHBX23gPS6jXRpxDOlNHSOJrorIeF3jy4M1kIkU9g21/P6aC70wdgUz3R3VmyBGNBjeXY2S+Jj98zpq/GmhKNaSOijJIfVnoqOELvMSmTVEAqWGzEpXdIyum80+pwn3aQ7hTNgGI4uyleBS2fFlAInb07KRVyaTArvfaIOXdhSYqbUc3BnL3K4GwEbyFpomMcbyKeI4eO9jzs8EYuAbgVhbomrO88eSuHYI5RtIcDx0aTF+GiSblQ22NLDqSSR8FGQEy3HeaZONj08SyOavvawn27nZ3adLTEvL6XjLRIHU6a1ntw0j5jYd8sxMicEkXjM5pSolehXZQXv/cJ+YfX3PwzT3h+3NEXF7a1c64X/N1EPX3A8o0jPKm8+8ED2ykYHWQJsXRAb9USqhquuuF4zovAKhiZ2owUJUvRNEYIlb061sNFmC0TD3A4XLP6aCbLI+oTkUJHBw8O9hbV002USRIi0ebUaaQMtnswKItiI3LrrpTJeboo6+48VGMqUXTgkVllfLRwjemUe7gImzhZO50UIuxrdnUPp/djEqkNk9C5BpIgORwmuCqKbZ22g2WYZyUbrK2TNGq8t93YV0iz8NFB+N/fv/Bn3jmGI/StCX79Q3jnBr52Ddcd/va3QC/wnRdwMth3/EcP8HHl5U3h9PbMPgWH9PrU6Xujese3TBE4HDPTIfP+B2cu15mXV8Pp153zpXO8DpacJ6ersO2N6+tCu+xMTdkeGq2FuDSViAtZc6w2DGXvnSUrH3+80zWilttufHhvrKcWsZ8MX307My9zRDNrRy41BkMq7Hs8w7iwtkgR2HD/bxZDkA78p3/rW/ziF/kgfE6XtREDU4GxP1GVMfQQah1MWutMcwCtS8kkge20haNTHXI4dkMUCk7NMYcQK91HLDDus7YeYuelkQ8Fa8GcbS/v4emRcn3gsCRqc7bTTrkpuENdd5gnamuvIO6zRsNp8uBdzkRc8rIbxyFSuY82cHMOOfNirXhScncsa7zfkoxhdPw3ZG+IwDFdsYrRJfHBt99jPmZunz5jLjMv1weW4w1iRk7KZXe2fQfPkDXW3DLR941pnli3nbRXJKfhpoi1LYuFaP+6XQKtG/k60wssXdi800hkdpIWFOPlx53rN8Md05pgKuGik06ZQiTS8Z7wpKxb5zAJNkq9/GhcTpVpzjQzZIpo33ZeAac34+qNmbbHu2L9oEETempoVqoLk0K5Ek53HXEjK1RX3vz6zAe/v9M8IPPzLNBhNaVpI0ke58rRbG+dlEBqC/G1Gt4TKUPdwystXZBpMCMxStIoy/FIDMxF2ZpTMkhXKIGlyWOP1c2Yp0yyEHR+eH/mkWXq/uiOfv3FLIC2X/jtDxL/9Fc6nmMva00oKMvknHWDBK2uSDEO+0RPT8A3am+UdIWLc5ad5JlJMtZ3ii7YqfHh9CH370/wzluc3XhyEn7Ydy79TL47cuegzyay75S7leeXwkNdOVNpEs31pTvb1UKaO0eMu9ow1TiXmeHSWfQa9xVPHq3UFgOAnHo0QrsSxNqV3hdUfdxrkJ7DbaXCQg6n/KXh8wNi1yRysJy7U9tVDLfSyuYdTR1rOjjMNZq0+4zrmVoDvYM6uXesZ7rseCsk3+Aq431B+P+ZmGUaYOAWmR2ah/CghDtKVREzyOFeuVwyxyvnOsWU5KLGfGXYHq6SMnvQy2zEAVtCx7T1MMO+O89u4XQPdQ++j2PD3QLZJQSlES2MKc8jb8goopTsbOioQIWpdM57WEUv3Xk2SXCTmgdLa4Wrg+Ep4mypK7l0IDY2oZr6WDhG9MIbqiX4XDXYHdtFqbsw54z1xlyceWmcN0fVaW1kunFMDfpwJY3zr7jQe4qXgQfs2Ry++/L1hWY9yiifXX4f5b1XopbDX/nlb/Nv/0s/x1Ial+akBFN3LsKIliqWfcD9R7Y9BePnoTrZE1MxrAxIvwUkPms8M7s4yaHtA7Ib7xsaAbYuydga9BR2aCc2c90EJKKLIuHmq320KTLYZz3ETyU2R+7x4Z7nRCM24lPJVA2+SQtLIToLdGdKRuuJvUX5wV6D/TVrPCONiM52Ha2FFk8rxMvy8UfVLdr9JJgkEA1Zv/R3fvg53+Uv5jKBRKJbp8qjoyNaWZMIeVLcGnXPfPwSbp6GvJQl4sRZQzy3i3O4TeRs0YZJPG+inebCNIcY4M1RT4MtYsxLAtHxGY9cfDVnkhxfiyfM+/g6DFzZL4ODoImcldZ3sgQQpyfAFPEaExQNHsdU4lDRBczyaNEzcobT1kiSuL9zzBpvfTXThpLmIqw1saiRNOJb1p1UFPcMJWKCuzSUEGse3aMHooVodyCBtGhREYS6w3p2cjYOi9P9S/Eq+1wul7hd4nDaE1dziwm/KE5HSggNifyKD5UERGaEyroqdWvI7cInx87xvZeUZzPL1pluJ27/9HPktHL5/sYPf+MEP3XDadvZm7G7BotFe7BD0E+htDjZNaDN6kS72GjBLAoyLPZJqdZjkv4YOxYn50T2YGVmgZwymgs2GiRcgv8lCVrrdI/SCfFYZzKjFMYyPhqNZY6hkBvo4ixLCaf2bCgesRSLaI50w1wRyTSLHh13IbPhMgXMVcpoLu5f6DPweVzbcKr5KMwZpuUQF4sEGN2M04Nx7uF6eDYlpMVALSkjKgzSDJLxIIqo85HDD+qJrwmhiv30hH//Hmk1mg7fuYLf/Aj+j+/z4oOd41WhfO2APJ04105F6JZghk0yWhLXc7DNLtV5wJFtZ3n7wLUbewNvRt8bWhJ7d6xGnGbbOyqKPt73LOwvOrfPC3MSljlRt0ZzOJ8aSY3rUpAMvWXwzrYLv/s7d5RJSLPy/KkGy7QJ9xujbVrYe0TwU473poszFzhbRMJEAilhPZ55ex1BkuPazyvicXASCSQGLmhRkoRja+R66V2YlhR8mW5ITuSc0DTuaxes7QiJPCX2buQeDErrnZxToELEg801Zbbe8bUhW2V5eqCLUFIITBD2u/W+Uo45BMtqGCmYeT2KIVRiMG0DUSI92tKjoCIc7xMjzdEqSaGL0hLBiUyFZuE4zjnhtVEQalKq73iaSXlCT3fc/NTPgiZOW+XlDz7m2T/6Dr1XvBliEtiU2wWlUk3pEo6cuu2DQxktkdbDqYsECkBfw+Idd2e3zqyO9cZWoWlBUsdWoWujvjCePpvi+UNx76hPTFeJXhNdM2oBo3GDtlWQHGaAlBCJWDqThAvZlD3BpVd0DKzTAPz/qZ+/4du/dqaJkmfjq39q5nu/vXJ946yfCNvHDdPgpx2fzuwvdj78zoZoxqxyNedowTRo8kizjfuuI67bx3lWGQ2EK1wfhVNVmne2zVnKKBILJ0cMZXqKoTrBBp6LYGunCmSJlEcSYffEUozqhojzvfv4Xj8KWY/f95+Uqzv817/+9/mzf+5nuOg9ya7RHWQuXOoDWQyqIBPUNoMoyTeaC+I75hk8I2qUsiOWmbimvXhArm6xdOZyOvODj2beIfGeTJTDxKVv2OUCTViy42WmeEK7sF8J1ndkzdHUeXvL4ViCi32pJFmxXgKylpxkFdgCf6MhWk0pcfDKWQpCH032hZR2uldUCsIBrOJ5JtlOk44HRJf5WKh1oqfESTvJNmiJeXmJ+YHar5C8A3EOVD1gqVPrStYFsSWYiR4TIW+CLBtiQtfK+SXMxxSJn8uPv3Z9KU4As8RGqVgo5F0abiHOFDTqQyWEoePkXDblNHdaUor00VQCpThd4P4BliuNA4B15jnqaztwucAkwsNLp/ZwBER2Pj6wWWVA3QP4LQ7TiCx2i8mv93A0pBSbGEOwPTHLEB9wPmnhLlg0Nizyqn0x3Alz1vFnGJP0mAQIHMcAeBfHWkFy5/wwM+fBY8rO4ejMpQbLqMcQJg3r9jTBusYBwC3ihCoRV6sOe8s0MUyUREQtzF6/l91nL/nMPx8FLPnMjx9/3oD/7je/z7/2z3+VWZVLj3jnZKMsQDpWo+lmcmE9C4dDp5qSE1Tv0QxoIMmYU7DNtu5sGNOAkT7eGzQswFiA4J2IWLXRjtMH/+bkJWJg0kdMPbhbbQhH7kJ6FLmQ+PNEOVnjWELAnEpMQmsP/oupxt9pkdFvu0CBXFKIFOPw2vpYBF3Dqq8R/U0Ek0ItJn9CFBTkwa9QBFJ8pv7Gr//gT/R+/4leHjKeJmXrxtWUw01CtBXGGhFcse3sfLwLb3wlWEZTTuxdEHWeiVObkcvMpIZjr+7LnAT3RJeGmJHK+HvrAIBnoY8puJLQ0ke7k2DSmeZofTJRWmvB0fBg3xiAp+DAtBD1VdKIPoe1TifHSHiLDZISYphorC+JxMsPNw5XUG4yq1lwPIb7ZSlpxKtTbMqTYRLNdK/ce2vYndHILbX7Tp8bRkwezRS3znlVTg+NROeNp5kNgf7Innk9r88WNf6VX/kW/8Ff+OlwXFnHe6xfJQtNHbXHFkDBpdLOHVZlukqQNmqH9y7BTnu+VA7vO/nrCZ2U+laha+fDb7/k4e1wn+7ulNIpcSYdbV9KItYV7x0002usPxIWJ/ZWx2IrnzpSVJmL0Yh4YevBmYsSioShQ4Qbq7MwmJKjlVdGZIcQ8cwlhBiGA0YV6aN/WBqlRE37uRs+uH1KrJduEdfeEUQqyhSgc8LplnJgCRBHPA6Gr9u1bk6SmN6nKSpnzAlW0XBqOcpU4HgVrqeH1bgAV0khCVYb2+bMs3C1KFXhXJ01Ox+82Pn608K//PaBcizwT13BzQHefQHf/SSma28s3F4nPvh+5fSte7wU6iTsq/FQG+cEF4moZ7mdefOnjixXypyVukX0eB0x5747h5Jo7lwunTIrKincZ+ZcTp1nR0WnxHL0mHdO4WQxVXoLJmXvcFDhxV1lWTLffb/x4XfuSUvmqz89c3WMafXDHmtg6s7pk53pkBBxNou9aiKEq3ivG/ZI0XWn9XBb/Pv/w+98kY/A53pNhyVyDYNtmzDa2pBcQhAH0gwqBTOwurOukETJhxIQ98eyBnG0FGJC4mCGaQbiPRWfeWfdOkuJFrveOgJcv3WNtdj/0jo5KVlCEliWaP+VMpEG1HtvwdtrJXPZO3XtHKbC7pAewdpZqa1Hy2LrlONMI8Ug3jrdoORM1YROQk4ZaZ1eCkh8ftZtw1n58Hd/yPz8QE+FSWKQfr57QebtYA+2hteIFJKF03sPzE+uMaB5DBfUDEmD9TQl6lrJWemqeH/9XKUQbrjYTG/B59FKPUOfhHrfuH42x+dT4uxmkqDvpOJIn9EC9WxIFSy2RGiPtIz3eJ4md0Q7nhJNDakdOQtpyaTmPPvmxO2bB979u5d4BnO48H7w2ztI4uVdH9zj4CGrw+VFZT6kGFZ6ZTkosju2MyDw+upc2R2KRlL0az9z4EffuYRLC6UU5XyO+67jmcRjOKgKtUZKp5mHQUNiWFm7UWahWOw5nXjnFu1srkzDRf9f/db7r77XnxW0fpKuS3W+ux75Gels7NS50PQTruwGk1OQue1Ao1FsomvH+4zkBR/DC/cJakJlYtMHpDqSIbfGcpWR9cJ9nrnvd2SO6F5JBcqcYx3BWJfKevdAahPLk1uqrtz1nWlPpB7NvOlYOF7gYV9JKWE1sVoFaUylIiJMunBsmZrPmEycpQYXU3ccyHKIIjPpsCleO5qMJI2s1yQatRvzBJdLZRLBckZkw/yAlonEBbrhOpHbFW36hC43TJro9YzngknF1dFmdHWKOcYN3R6Y8wF5AQ+5Mh3vfux79aUQs4pGvM9Hk1HyhIXPkU4ADHcbh7oluFH9JOi1xeFZHFIcqg9TvGzsrNwchj1ZIii4YLglNonfZyNmkMIFjVu0G6bR8JBTRKv6qINPosiw7ZoHu7/iTBhSjDJJuGccXmydZmFVzQgFZxKniFAAkU5RpxHTE8ud2hMqITC5xeRz3YZdfqpMJf6cokJ9FOCA3uMQcb7E7yuHYCeJC0XDjdGJTdrqnTlHe0ySsM8/5mJf5+sPL8OfFbE+FbeEv/9i5d/65d/nr/35b7IENYHNheohWChwkB6H6DQA/kqAQi0A/y1B73Ewg4Byh4UXQFE1mgTDa39VVw1rV6R5RMQ0Nm3imZsScQRrsXFZPcSu5MpKvMgCpBZQ25LjXk+qASU3Hy4ZJ5VR3Utwtnr8BIjRrTPlTDPhvDmlxGdTRzygPToVBfaaKPIoCEuIYoRTqUgwtNyN/+I1dWQ9Xq07j6z/YxozUDfEnVwSrXVwId8I5bBz97Hz8Y8yZcrcPom2zJSckyntQTnehtzaahQ8ICA5rOa5ZCiZfa2UFNFi9xCUyE4zJXdB5gnLAVcXDSHLBVJuGFBcgyuiEjyX2fDm5KSIZ6o7SEYJsOiQWV+JABixyU6Jy73Q6onnXztERFUEIdNai6+7O1Iy7p2WHEPx7pQ8UcxpW6P1OJSqeMByV6OmGAJM1tkRts24f9k5XneePYsIYzWj1kTSDtPruWH/7OXuvLd2zJWcQpTePYTT3aE3Iycnp8zFjPZCocHhCUyL0UyYsyP7zo8+7rznlWdXBf3RxKoRY+nV2L3RXuSYyuVPXb4uwc+qY9A0pYjV1mY04nC+a8Qopp5CYBSntkqhRFmKG5rjGXGVcDpG6qUAACAASURBVG4Q4pGj9NRRTXRklK70cSCOQ567jMNIwZvxCG+PniaLogrCCqGWuL8YyxRO75YJnkQfzgocPNEkGFFtTKqlA8nQnkYLqFBew6hOOoS43Ifr1l0QjUhVHu2QmoSuwnkzFoRc4v2yr45hHA/KfKV/wBkiamx7pxZ4//0Lv/r+xs9//cjPf+1IXs8kFN4+QIf2nQfkuvD8Hz/w5Grh5f2FD+/hxcOKH2Zw45BAu3NzKHz4wzPTnDhfOqbCm29O3N4W5jnz9O3Cfq68eLmHk6E609TZeqdVmK4yclDOq8MU786Hj1amSel9vBcnpRm892HlB//wJbfHwql2vvKNA1/52gF34XypYM48CVsNwTPdhtX6/NCwzZFJaDkOpVtz1t1GE2s0ALsKv/Sr3/uiH4HP9epjNmHDWtpR0IREfjB+zhjt3o7phE6hG9dQhcIVOV6EHm01IY6nhLixG3jtUC2Gukmpq1MOQzCbEutuHGUgHrxTz41lKaSkdMnU0871oXDeG1uO5lwtmVQSe4MKVHcW8WCpp3ivaQ42ZpGJSzOmrHiDtnZ0Vso0U1uDrXJ+uA8EA8b18yd8cvfAccm8+N49NnWu3vlZWjNECqcPPsRpfPDBB/g0sYvSkyA7tIdOfv6E9bJxNWlEIgnHvz/uQd1JU6abYbWS85fimPf/6SWM/WxqUJ1sndYLnpx637h6mtkq4fwm2pq7dtQ7M7BlqJc+dvjRxp0PEw8fOOVGmDUKdsqxsJ6dbkbencOc6bdxpmpb48X3O+t+wTxRVWn1zG6dvQ3nXNSkUk2YVWE0DNZqTHPE/91j6F3F2R1MJXhytZJ0RqWDON//zgYoyYOH6RYO7OPNge10ou6OW6JZjzbgMRBaSpwxluPM/alCjuGf9eG6bg0tIVil5pCcd7cRT5TYdwiv3/vvx7kc49/7n/4B/+FfeBPygSQOdWLNlxj0qlL9RCLRVFGbQ5iR2HMXDLGEikXc+cUDV29+FdOKlYWdwkGd3mJdfGRWYmU0Pid6VdYqpNtC+/4Dl3wLUyelCZJwvGycmmHLFUkOXOXMlhs1G0uJDH3yI8UMMXiQTtlvSXJhdqiquC0UTbgpzS406cyLId5QuxqonnjukoB34TgJzY16aeR0oOU9WF2pkHumdqOfT9iVk1qnYpjOMaxshngipcziyn7ekH5B2PCreHcWYLfyY9+rL8UqJyo4AVYPYcFZ3Nk1NliThJAlYkxEfvPjDc5nJV91ZnEWUVyFrRmoUCa47Mrh6pFJFTliMx8WYQ9I96OzYggKOQmHx2ihBCcphv/yilM1GeQUB9HssVjNgKSYAJrDG0cfwpdiFSA4YNkivlU0NuYSIAGKKJKd7mG1TilRe7xIfaj18fJ3Oj2cEmPB6i0hTcg4ejQaMVVODPcVzuZQTZlLMDKSC7vEf2N/ja3un718uNf81Y/h0Z/1+NzFvxH+8i9/l7/6C99g7bBMTq7C5nGw7ykOP0njfhU1Tj0aukLddlyV7J0KrAbJgwnTPTa3U0psI2oQE8iYXIbLKZgd3hNZw1KoCbqGGwtiw73hTBqw1I2wF4vF16gq7F0oNMbTDBIIk+BcxfFPPdw5khSaxZ+v0bTXdiPNxObNx9dA6GZmwkY0Fu7DExTErnhx99DPIo30Gl/NezCfHJo9MvAS0+D2mBtLCmeWpYVnX6ncf1BZT40yLSzXMbHfrZFduZwnrpbO9tCZb8K11y2AoDkn3IzpEHyYXIyHu8Z8ncNp5eFwTalG6UUJd5i446O9KznRaMOoQRfHqpAlxXNDwy2goN476RhiWe/hc8/a2VYnTYXLCdaHledfn2KAgEfk0cKFIxIbfnHo1VDJaBFSXmhrJeOsq3N+afF1Clwflftaqa3iRagmPLxsZHfefFNpNirX+8ihacS/tL2ezqzHiCF8Oh39xb/9Xf6Nf+Vn2C4d9ymYeUPIFit0jG1rWIXj84lcHNVEUsNqrBfrtmK9s7fO7YPwUi7s7tR1Q0vBToZex/QsTyXcSTh4RqXRTMIqLiF6NBfq6uyauM5jHZVYJ4onKoJbDKWinb4jo4VVUkTeu3WOktAc/D0T8JzG8w/uCRcjERy/LqA9GoOahEtMNUU035xtayTNnPpGShOHOUQY96gvD0ScRHxaQuR1bKzv4/Fyj02Vv34xQyMKLBiClouPFt4AbMcHNwD5eY5SAbU4ON9vneMhISnRevAZrHUOU0Il8WCQNud4yJS18RvvnfnWw8bzY+G7LxrXmvgzzzMLwpNqPDTnvR/csQPP37zCXmy8vKtMz3O47pfEza3y/Ok1ZvCj98+cz8Z2X/l73z3zzs9eE4Vdnabjc0O8V+cpk7UjSbicenQG5Ni3XT2dePH+ShM4LJnLy863/+EDfTdSVg5PEsecySWxbkYev89VKeZs5qxtRAfd0CJ4dh7OBqshUzSdbT3KYHALV1k3fv+j8xd49z//S8xxebX7wNwwjfhWH45vGVFVH27APgYwkqKx1CNW8CrWLCLRfrt3mhtFMpYzc3lcH2W894DesebkAk2GJuZCnhKtjbQEcDxk7h828mGGVkeLb6dtMTgXiUi9SQwRio8hcHMuKb1qm/PWEMncvnHNy21ns+D2qU7obQaBqRR6a0yHmY8+fEB74/nPfZ1c5hgc1cZ2rlwfE5dLZy7O3o1eK2Id9jOSj5SSuJw25kNm0XAX9tqHcxp2C06wE26d1+0SYhDSqyM9ISXRto3LKkzXZThLK6knNGk0KpPodaXvE9o39lWZSux65iysW8Zbpe8TaW6gKdx3HjD0x2FM64JIJ18pXp3LD4xdI5aPeeylxnmzj/cHUxgKRJ1dolyg7p1UoFrswxsSA8EOaGdeMm0PXvK2EdgOg6vrgl/GsDIJ9y/OVIv3WJEaiJGUguVqhkl0na9bjXivRMHZNENODUvKtg+HroK78l/+vR/84W/4H3UE/IRcuxuKsltn4yVTvkW9gmUqlSzCZBnT2NeE/3sgfnRC7YSmib4/IPs1LRviO6sL0nbMJmagl4JsPdYnd6QlxCorK907XRqHW6c/XMhvXlNbwxY4acb6hf2jj8kHSFc35JyZ5wX6RquAbVgTvK9IzXjq7F7YLZFLDPDEEo5TkpF0xraC64mUg4NLj7IxERkopIQKHK4OXM5ndD/SU7DImzfEHU0p0A5uJDNS8sjwaIqmc99wElKNfEzYwxH7UMhtoZaN6W75se/Tl0LMOlwDDzFaeKzFrqqvoLfdOwcNt4dJ2LevboUXL6EhTGJc+qdixFGHpVhik5ZUWTTqeZci488Mto02o1mwYHRs1gxe5ZR381dwVMcpAi2P6dEQBcLi3KPbGmFWWETj4C+GTjLcN45KJ48/+xFRkdRwhGm4Xyx/CgoVh5xCPDMBjFeuF1DWs1Im8KOBG7tFQ4t4cI7chHMF1UROUQkdccqIZ6gn/tvfu/8C7vqf7CUjyPdH5wt/8N+NZDhO5y//yrf4d37hZ1l7uPcWnJ46D6YU63RR1CtuOSCb3ik5npUind01YMciWIZmIZq5Fjbr5BTwvcgtx8HQPJx+7iniCDbqqytkbewWbr6ShNph74lOOP5yCpaWeBQVqMPuieRRirBH/WBw4UTYiZduVtg8QN9CD+C4CmUR1tVRb8xzQjzitZc9ni8GBL4nYdKOZ5AWgG8x43sP+5/Anf1iL00KI45qeHA8SoeWsBYtQ5XOLBnV8GnevBmNM3cfN04Pwlfemdn6Tped9NDYZSKNQ1NrwnQI3oNQ0BL1u2Y7MiXmZcSjSxw8+w6ooils5vOhI1mifKDFemDWSIP1hieyCFKgX4ytCkmE5LF5U/EQomA0R2XmRTjtznZXOR6JVhMJroR7OPxKUSRrRPencPCYgjfI3Vjvjcu9k0rl6XNFJ8XPwmYVesUrtEvFVVgWwSdlG42Fe4+c/2Oc1TxE+dfx+mzE8FHY+vUPKw8XZT5o1NG70AJnwNY6fjZ8U+ZrsNRjYijCIoL3FOweGlBodDatJEuoGnkq1D0cotZTwNKr4tmIGxhOwzRYV6WMWOjemArIFo4nS4yIh9D7p6yzLIKqY5QQqywOE54ckUL1zpSg+457inh/0DMBRyVA7u4tuH0ak+2weDhtQO8B6m5sNJRMysaSMk1alDaYoRrisD0epB/d1w67KtljPSMFt+R1ux5LZSI2HI41MyeniG6lHPevmqF9MCAFtvuOZiEV5bxb/Pox9LusTs9Gmkb0d4uY6NYNP0dMsZQExfjN1ThsxpvPC/O58d4l3qnvvXvPW1+ZsXfPnD/cOXx1CR5kKeF8FePZ85mvvKV89GJjuSTqfeXvfu+e6zcWnj2bOFwXqMaUIg4mSdia4GqDA+acT52HuzNSlF4b22Xlcuk4zu2N8s7PHKPMBzh3o60GS6LuDTQOp5cazLBJnctwKYsrxzmGiOcXhhQQYm+bs7Juzn//G6+3YxniACOPLkj3YCXmAaZ9xHnEDY312y2KZiJ3PJiAFq3dGjs1M6etleNhAWLvLnS8ZHS4IfooskFCUNvaYFmOdkVLypQTfa/cPawsApuFc2K7O3F4ckUpiuaMOaSBFyEZsya6G15jMhjDZeG6KJf7ii1w3nugHrziEgPOThRzvHx55vpQOC4H5PwB5Z1bINH3nSkl1u3C6f2PefubX0VMua99pDUMF8iHRKPhIqSrmcvDznJwmmjwbAar1R0Qp6XXc6DoY6eeVGhdWM8ruxWOTxNZQvhJJdxOIhJCEqM8a22kqXA4g13HHue8dfq2w6Jc0bisOSKlvdPbiPoJnNbO9FjwBRE/rJXaJIpy1FndyfNwTiFYrzg5cDlN0DKSHFnRUpDTjo/TiRPpn3NVrlXZWtT1xjnX8Qz7KZynOQt1NEE3N9SC/yxZ6aZM2emqiEDfhDW0dGYN8X1SMC3US2VKmdobqkKy/uq8+tnrJzVqCPB/vn/gn3j7RPYrpkfhT+DiAlSqgDAjkjHdUFcmqeSeyemIy4a/SExvJGq9gBzj+98Enx02wYtSvfHQolRqWp2Ul3A9myGurIeMPuzYxdB5nO+7g07krybsk4328QbHaSQ0GvNcqD3TeYnoRPWKsOD7GukhC4dikSitclvQltjkHuXI3tbgCKYOkpjswOYru+3xbHlGN6fkHjgVD2SIthX8QNqfQO5MaeJiGauJkoWyOuvDwrQ9sE8VHp7QDvdM1xnTFaln6POPfY++FGLWL/xn3+F//de/yfoimC4vt1BCwdnNmCTh5hxEgESXjojxxpPOxy9mHiTz5Gl8wBkRvZKM5QBtzZTFqX1suiSmKtMYNE8SkzMH6prp0mITOxT1TDiYehdyDtZLtCs+kjsgR3KWlD51unQgSzwkNvbBlYifYeBqo9Xu8YBm1J4QDT5M1nCJdYP50Nkdah9T7RYVxzqBXnV2F2jRypHE2ZrQJaC4lnx8SIysMbnq4lxaRDeywC/9X6+/mPWHRatx+z/zs5/+u8fYoQN/9Ve+w1/8+Xf4yqFQBE4djs3xrBzdePCIxs4SwlOXiKnWUUFdq+LDum48Nkx2TJzd4hnxR3Hq5JTFMQlINsPpt5uAyDjYCgeJprDjeJbBuZiQDYo4c44NjI6zZx3DzdZGc5Mou8eOZ1Jls3gOpxzuoroZaCLhLFNMtJo5zePPPxwiTpc9B/Tco4FuvcTnI6nw0dr4W7/30Z/Ejf1Cr5IChu7WwRVVp7ZQnbPqODAGu6dbOCXd4HBI+JMdmvDDd88kEa6fJg5HkG7MKPW+kxYhl4J4DmxPr9TeSRIMq+Oh0KzTN6HMGXnSaNrZm/CwOWmLyuj15IBRBCYV0iGA2IdjHN62TcIVmJW2GmnKtBKxQpOo/05JqXTaXuh3launznJzZKuNcsijOl3pe0dyMJCUPn5v4e6jiq0bt1eJZ9fO8+eZ85rJBpe1Y8lwqUy3CruSbfz97pg51QgRXzTq0cfmzPmSvMg+h8vG0AU+I2w5/PX/5V3+0p99iwy4JLwb6ydhP8iLM91CniHlcPR2EVYTbg4zlcpMoXWFJeGJ4D3kDi2jpXM+d3ztyCFREig5os6SyBptd26N1WKSnEui1RBVHw9TJSutNuItGqJbSWMl9vix+YjuGJAM18S6QaKQneCIJIeUMN8oVqgBE0RSCC50pVps6gWGI1YwSex7NJK1czildzwijmbjHD2GHCZMiSGORcmFJOdSlezG8jru4SWNd5GSJZzlMjh6zY1ahawxjFkt3JXJnatjQgTO1ZgS8eskGFRldnaIuLwL3uCY4/116k4yJ7uxu7DWHcE4PyhXG9yJY9K5vpm465XjTy+oCe9//8xbXz+y7Z2sSi5KnsJ9PB8SX/vGhJtx+8Y133/3zLfeu3DZwrVeqzEfFJpTm9NqI49SgeOVcvu0QHO8JKZZOD7L3DybOV8alwaV0fwl0MTZt0ZHOd01yqw0jyHV2iJ6i8DDRnxmRLl9rgGjXzt9BZ9AJ+E33335Bd/8z/9q3cJN7AN5UXQw70a/tPNKxGoNSgrFoHuwZctY1GsPfqiOqP18HdP6Wh3RFJxhjdKk3uJ737uHiC4J7Y3NEkoDFdrWMOmkouQS5QIHjYjX1VtPQnRPQr1s9OZRniIlvqZu7Ek5asQW3YHeqALleor10IKF2lsU7UwpUeaMd4viE82oNzwLh+dvARKi63ahnxrH2Xj25le4+/gjDilz2nYuL09UyZS50GXEs/cdXRIPp0Y+hntNomeAbsFPrS1KWl63K6Qp5x98tPOPXCtyFe4W1xArtTmXFnvacxLaXsmiaBfSdaIclLadkboEvsWMywNc3yZqyXhbuVyC/Zl34OhUjfukg+WW8CiEKol06lAeQe2RUugES1ctv2rw1Fm5bLGm3l7NbJcQJjUVErFZV0mkZJw2x9YCc+AhWndKCmFuKhnvLVjQFu/QjiGD0yvFOfUUX4VlqlVQcDEaiZtnil+MtXYU4u2uiZKc/+b31z/WifWTKmQB/Of/27f5a3/+T3NdfoglOHBg6ztTcjZb2N3JvnOYEtJgLsLRr6nJmKVx/mHj+MZzLJ85cjWSNZByYts6UleyJSbNXNpG1opbYr04+VAoGG4TopDfEOoPv4f5NfL2xGFZ2Fuk2/ab42iMfYl+YmBHeunkQ+Z2eYvLfseyLLS+Yi2MDlPKTCasSBS0eLzfp3LNaWtM89UoIGpUGs6KuDPrPIw1Zw6Tkk1pp0K6Mxon/GnjuFTwHZhZ942SNtqygU9IviZfPeBvzJSqqO4cdKG1DddEmm9Zp/XHvkdfimXuvBv/7F//Nr/2b36DdBbKHpDyrQejJ9T3OLgXtQDk4TQS17eNfe988knEKZ4tjd6VSdOoUjW8gaZgfSTtZNdwy1hE+OY0VOvcwg3h4WoxkWiW8BAUzJxkRLPXiOqZBBA7Dyt1ksgxo073EIxEQlWd8MH2cqzHAaUTDKyUdPBFBM2xEVt3wYabKiGYxoZ8rQVb+meqjgGc2pV9hWUWRFvo/BpT9HAu+JjShBU5/t/rZ0H+f7r8j/mnjP/94e/E48/94q/+gH/1H3vOv/jNJ5QuXDSA7RVF3XHtyGgczBbikAxXXErBmrERKXVPLKkhImwmbBbAXauGPzbQWAgLs8DmTkrxzBc6Lik2dkI4GsRYt2ib27qhOQVTqwcTyQYVoHZhHvHjundKkqi0tojqdHEuBjY2g837K56WS+Slk3dGLwwg7Bqfh+bBd7uahc2cVuFv/tYHn/et/FJc3Y1WjVk1uH9DMX08KNca7VqI4EPQcqJp6/pmAheu1Xi43znfXXj5QeH6iXDzVDlOICvUm4nkDdSiMv6Y6I1o2GwVLUq7hFtpb4lTU6xVRAI0eemJh61ymKOlpu2JS3dUjbnA8TghUpnmA713tChdFGkdG+zracmxOW/KftoiEnacIIFqpvcQZBtGyiXgyi2cQJ+83ziknee3zvxsggX6lrEzJN3j75jCWVa7su5G2zdyzshYT93DTbi2TxmLScKBtvWx5r6GlxNRHfiDLq3f+fgSh8OaqRfjfBbyAtMBJBdqD1ebpgFgp6PMVHd6j02640gzWoc8Z6jKtEQUb7qF9UVle1DK8xDGUQ8w7pTprdLqaDIUBnTeo03LYnAQgr7S9opqgeTRViYaDuvBwYphzxjqtJ2SJ1yErbd4U0XGEGmJ1XoUBkhMEl06rY8FyATzxs3TK9ZL5ZOLg3WqxfHZx/u49hENJjb+PhAF1RPeKkueI6YSNce0OtiCr9nlIvSkMZRzXoXFw6gVol73cLRrFeZJmOaEiYXA6vHZCwZoiI5rC4fwLOFWFY9D2O7BxEPDOe6awg3fhEt10iQcNXNqjWbG4VigG7t30jFx98HGuieWotweC1s3bm8CVmmts3enzIW3v36M2HbvzBpcvYf7yltPJvr4cUmDGdMi1r/tjeMkPKyd9+4aclfRRVk9RKjkRDuhBMevq3BzW3i429kQrq8z69YC+q6xj9uHm6O3cEWbCPM1PJyMml+/Z+mPu+pe4zM24uZm4Ujpw6H+GDV8dF0aI9nawx04NG/oDZkyrsG5rTVKGqK9yek1eG3uUUZR3WIN0jxKMhydgzuZLJyiZZrDfy9CtUYiYQ5V4YCz1w6qHK4Ld++/YLk+ME+JLSsiGrGfvZGnTG1Oz/GOEhNKDhTFTLiE6CGCmjvTdIB958Wpc/W1N1mOR1rvvPz4JdMh897v/4Cf/bnneB0ufElMJbEcCpePTuTlJtIj3vDBxc2HRBKhiXPuAMEPczGmKbGv2xf4FHx+lyD8j7/7Ee/8k29TbhKTNpplehvlICYkMVqLIZ4Avju+JOiKT07aoef4deYE90wEJHE8CpISzhasSBFSKuG0cueyecD9p1g3qwhosHDdnbkbZUoR2R4OxFp7CE7EMNtbCwGOTi4FrKEop33s3SejeTy7ggw0jbDtUTClOGrhwJuIIgT3GKxmCTdq8zBy1O6RpHBj3yPKpsMgspqRcNau/NYHd4+4LR6LT36ShazH62/8+vf4S//Cc2w/UedwiybNnOyM2oRPhbMLkxqp7TyIoCT2TzbyzS0flTsWlKXFvnephT2N9XFrXC4dmyuTlzC9aGaeYK87WSe619gKTYn5a0defu9HXN/9HEq0uXo741KwlsCukSeGb2eoDb1T/JNrDjc31ENHvHJYwpVHzsF0vlR6qcNJm5h1BYeqTpcF2hot7HIi9yO9O7Ps2HRF+sBInKnTS/TrGdcDaa9IuSbbhe7CbS6cU2WyJ6RPFLu9p2ulVliS49zQ2z2q88DlNPL/C2fWl4Ka6x6Vpf/cf/wdvne/8ewINxkWV+YkNPOxmVa2ETVUCQunizMvwpMnFenG3Sl6/RoxHjYZ1aYDMNxaGou+cRJn9eAE7T02bjYcKI2orj73gFx3gVWMVZ2H5tzjXHwA+DTYR4dkzAp4OMqqOBdz1g6R9w9mUU4OCXoXWo7YItppe0I1FpzahFYV85iK7h6sEKsJmUOJ12FzVod9zezNKVdEo4IIKjoEu5BpQt+P76fIY6DuS/EIfO5XOK/+KMZQGJHSP/Zn4p+C8Dd/+xN+8X9+l5Q6aYgALiG0KqFkXyc4G69auaKuXtktIgmGoKVz6sqlxd+bTdEeklNOsQkJV19A/F0DAigQkEmcJpGPN4vD42EK4eD/Zu/dYm3Nsvuu3xhzzu9ba1/OOVWnTlV1ud1tx5cYK0ZchJ/yRAAFRBSEghA88MADEg88kYcgEDwRJMfCgFAsRyKKDAHMxS9OuCgxidsIO3HbxsRux5e+uLur63que6+1vu+bc47Bw5h71yVtuy1od/XpzFJpnzp7197nrG+ueRnj///9Y7MLNVdcgCUq5uiAvsffZj9pOIbc45KYowtqBlNJVFESRh6KLhVIGhYfH/Yiw6F2XCN9yATi7ir81V95/ev4JD9aI4uymzIkYc4SgNsbJdwNT8ui07y1sDlMGkyDWo1ulYrCvvDSy4XL88rheuHh6wcWP6fcy+i7J7bHGxhMZcIsOtzuwJRoyfBkLGvjsBimjXwG+3uJ+aJwfgHf/j0z97/jjPPX9ty9n7l4bWZ+eY9fzhxSdHW6rQFTLUDu5OyjaxjvhTTnsAi5Mt9z0i4ju4l5p8y7KEzkKRQ5XRJP3jIevXHNKw+OPPh4pP70NsMhRWF0t0G5gcxDtwBQJnXKaMurKjlnUsl0LOyLo+ocDEFj0rgsP69DbuSiH/q9v/aZa47PVrYj5L1wdiHBWrQNCDu99ZukJgHrmFW62+2FsKRCEYXayWtCNJFyZtpnyj5hV9ttPLIi5DIsQ0w0ovGzjTQ4GcETmbCbuoUFyzSHvQtHUsLcgpUlEpfZFLZmcUVkGkEsAXfudHw1fLXhHPLbwpn3DgTAvRQoUxRWr46N4xqvkY8dTjXFzyPsEprDipi8BePNo0FRcnSxq8Cp9QGxVtpz6GNtI7ChEUmRRvx6hNUHK6iGRXk+01vlQbVIj948vqaaUZNQ0WCZebDtmsVesVSnx+0aw9maI9bxbpCMY+34nJhbfE7dqWvDk5An5aUHM0ttPHvcuFqNpRrnZ5nl0IFYW+ei9N44ro2rtXFYO6sFn3J/nrleQtVQq7HWjmpsbJKdeU6sJiSEFy4npMDpcY2Uw2ZsZqwVTg2uNqM349niLEkwhWfHzqlGUnatRlInZWHpncVDmdtNOXVh3gs//Nf+/jf60f+hjN/5jV+jW2PdGnVpoSYKRyvSQ9mCWyTNeSipzD1UzkBrPeZhLiN4JCyi3d5bA2JddLYW5fqBeSOpDhZoxgfWQ0UCn5CDS2vdaT2CmrbWsdZHIEkUvkWc2huXD+6iGa6ulmg09hZKKhlgcIlkYicU2lkHpLsbeSibt9Y4HkPxkhNcv/WYdOcOV4eFbWucXex4/Xeeobnx9M0rnj17yrF2Tq1xXDtbSuRZmQFdhQAAIABJREFU2E5b/IxRxEAInMHhSNZEysFT7RLnQ7POz/7C//ONnAZfl2FjQ/zc00reKbtJWJkRNXbJWXqo8BIFkxbpan3jsLXbQ22o+upwu0ThioGD0Dx05R64hA2hm4CH6pxpIu8V3Zyiyga03oLZTCePRlLvTjWlp8AveEqUPM4upwbE+X5rQrNEN+FYneYxb4RIQ0weHNp1dfAW/Dni3uzqSIdtVcwEkUxJMsQREdTBSO91nIJgW6VocHoVZ9YQTPylX3s76lfObSHrw2ePb9XxWw8f8+WDkHaJWhfcNyYa536HkoNvJuZ0nzj1M66acq0bp5Q5zCfMhMqeazlQvZFc6XVjawu1bHjLrK2MYvzK2ls0l3XDtrBDT2JQK+aF/asv0Q5v8/gLj/HjRG8J3xzbViS1YFnm+/junPTCBdv0lNOzN+DtE/LM2HflTAupQXFHL4RSJpQJVQWfmHZK7onddo2WRBNB2YNEoJ3qRHpY6emKdt+Re/eoUnA2FoHmBzYdd4MktKtCO15TXzihfoF4oqSJ7GdgK0kjeKpYQW1wJr/G8ZFQZt10WBD4M//t6/zMv/MJ5iVx5oJYdNNMoxATcaUyWD+hOHIPkGm56zx+Ijw9CfensALuZECOSZwOAruKNGfO4ddfAwFCc4tY3BsIarRZOHaom3AkEhBFnQTMGVIO9UsWYZei2ICH1HcSoXoov7JAIiK+qxsTyi6DZ2PtcXBcquLSKDcAQIR1gzwFpwsJ4HtfFdnH4bu40kW4WpR539g8ChQqgkp0unqX286+e3TEo0sWzKznVtLwoSFBVhgXovc0tJFW+SFvOOPSxFBGEBe5N4+dzz9e+fjdHfSbwzGjYKqs3ZhU6N1YTaLLYz2KrgS3YWvhiXdCou4avnZrAXNvDpH8Ex2YiKY3jADQqwVg27NGgg2J5m2AaZ11gzKHiiUqYDU6iQYMe2wh3jdbDxUW3WnEAbC2hidlk0hB3GlwQGwkXBmCNkeKkEti81D73HTz5Q+w+DwPI+XMulUY7LPuNwltkWLahrKoO8yDMcaNHVU94sUt1Jkbmf0rO+7IxvXDysMvPebd3cwnPpkpW6c/Bn3Jwq6gEmDbahyeRVHRD439PpPnzEsvT9zZK2clYPTNjeqwbp1nlxPXtrEdjZoCiK1zgc2wZz1UVjvheDJEDNVMykptzro4tTUudlM4wwCTCZUedrZVefuNzm5dePBKZ/M9bVL86NjizHecPoqw1EROHWuxbq022Cae0QLeLbrnFoexJnHhtJtGhkWBVcWiU/8cj6/2t/sfPvM2f/zBd5IuOnmW4BqpkTxx6I27nukW3WPEcNGIkh9MYB17VabQWkNzpx0SuhfEEpcvzphtnN417tyNxDcRIaFsRAfPzClKHOQkQYJmnYJQ1YZ9OVggdmMT9YwjAVf225wcug94rsWFNuwcGnzLEkmDvQnbyFHPk5AVdjnYSCLKoTmnxUeCa6hcVcKuufVOTomS4vxgUsllYrZo6hge6ciqLNcrrhNlUnJpIF97qs43y4j9J+xJRiiKQqkWDYq6dcSV87MciYfccCfjWUXICKgJx81JKVSTdmsBjj2DkYLqKdbFpBK2PAkeUSnw7tOVF3eZOyWFAlQcrZG+a2a88OrM229upKeNLx+Mu9W5f5mpW4XRhNRhL0MCuWDjZ6nAtBeOhy3mfRbWk1HpJAnGTHAPo/mZAJ8V9eCi1tVxacikJImCnY9UaxdYTkZKMO2GpXwzth4hPyZRGFkHC6p9i4Tt3IyvfOFzvPbJ74Yp0XulWSLn0SDxG+V4vCY6wpgcpfZRc0AxM1KKBPEkfmst16EaTsNfYCagRquNNGeSagQc5UhWNYRswiSKpGDmYYLRaG0UvJWwQEvYbxox/zxlUmnU2uLcJ1Hk7mbsdiWKYarYNIXtX5S8K3it9NbJu4my39GPJ6oUNCmnrVOKc32o7OfC9vANPvY9H+fqzWe06xNdoY3mmLce6tmUqEsjlUwlLi+qyuKZfTfcLU6bDs+unvHLv/rb37iH/3UcMWsc80pK0dSQG67rskXDQowuodj1lGmnlYpw7lDHmcsTeAXJowljMReyRrGS1mhZYVW8GF6hj27aNAHnO7w1rEOTFPtHj8CS2pTiTleHXDCtzKOA65Lox4rPiSydZUu0bQsQ/KmRzpRTjXl3w0+2nkIdrcrkFqEEOL3F2q0qTMnZPOMG5/tE61vMcXVqjyTkigRChGD6Bls57jxPT9ttI+NGjSVDhfsPB/zIpz7Pj/yL34HIClo4Oqh3JhG07IPl6Z0ulZIy27UxXUwYR0wF5xq1O+wkCt67rXGcSjQBk9CtYb2TyVHzyHBuypod2xo7KZAF6Z1qhfKxwqOrdzi8q2jeIy8LZj3WHBVMnkU6M+Ba8DsTbatUPzJd77H9zOUMUp2TNZp0kA1ywi3TpOPHI1rOyXZCZKaxspfCuRQev3Ggzgt6X+jsUEk0SVGvKIk1bWg/pz5ZaXNF73aWNmOm1LSibcY50H1CUDoLzRpJJvCFY7/3NT8b+SjIB5PoB/4Q0UEV/vt/41W+d7fn6tgi5a+HfWupTjE4K7HpKLBJLOAdoze4vkqUSXj5stGJDnG3xPEAF+dOyS0OYs6oXgur9VC6IKTcIz2pj4JZigLENtg4otCbcFHCpvhCCZaLd+F6dJ7LUMN0BFWY3JmSYh1WOj6iWiUHuNsd1i028lYLa+1c3olJ2Tx+XmmK74zqIVPtS0Z3UeG/kYamOSLraeAazCS/SXKUkKr6sAH89c8d+Yu/9Pj2tXd//jLIRcR1QIRvilO3nxsfP/x7/qGP7x+O8O/+09/OXVWOg40l0lCLTTLh0en1Ad/UYLB1jy52Ubk9VOORiLl0Y04QXKPgbHRGJ9zj9yDUYBnDRrrYJMKpd9qA8KoLrpGnkRWa6G2owclsKBo1rB0u9Aq6B9W4xISKMHhZm0XSXg4wDyrBnHPAuqFZIgURAjyP81f+zu8dN/68za9/709+p6v7eH9ZrCWacTZ2Ep3ozTt7jbTArIPNNgryXYVZ5Vbdhsd64mLsinJ8uHB1LSCF1777jClVzthx0CO9xoW+9TjEvHDpvEYi28ydTwhnZ5mpZMoE0zQjKQrbfYXVO6deuTou/L3XK8clDsJnW+HdpwvSKnmaotO7gHtmebiRaJzdiahyckJ7BF20HjeM83OnXOxwdbwKfoAmFZnCBl1uYhjG1x+XGu+L7gHudQ9QsiY6ndojTjhSDaBtY656hBVEV1/ZNviRX3rnuZpbEGsXRHEBovGCv7cm/di//H10GptF4TFZdHWdxDSFzUlSWPK0KWkyssNyqOwvJsglGEQqmArbGpc0neJQ5O4cH62clswL3z7R/b2kSttapLj1TmsRokIDt45ZNF9uUjeRAanXUBvfqIU7sS/ZKN67RqohPX6OW1zizBvWYvFpqtTeOVMhF0FzZz2CJGWroWwVEXrr9C082TecE3fDmegSyo6GUzSaUNOUqS5sq2FJ471FAIJJiR/5yV95rubXx/6R7/Xvfm1GRSjCYBtFY6KvEeIwpdAs31jBhCgyFA1F8VyE2sO6F6o3p4iyS/EWF4XUo2BV3ZlzKGamrGDOrgg5ZS7mKDiWLjAlLs5iTUwqXJ4pWzWaw3K1UVR58U7h2bHx5lsbL722Y06gJbFVo47CVlGhbT0UxzkafIdTNEXnXaI1Y6tRAC5EguNxaWgSWveA3CNsNVIL+9ijt0oUsjxscs0Nt+CeTlk4rs40VBlbNZoIu8B28Rd+6te/6rN43vZFeG/tAviuP/aPkUeQQvJomKQpINnx7vehirGhlA/2pvpQco0QC9s28lRAA8+QCXZetZv1YshYLZi2ecrDah1zvAhgMiyvQ6klwtYauUPSwrSLc1fR9z7Ou4m2Na7eecb+/gVnOezPkjXS1gVSKVw1Q5qhJVMk1GQnNyqJZnB5cc6T3/wC83e+RsM4HFYK8PAL7/DyJ18k7/dsT5/C+SWmznK9BktJlFOtdM1Ya5yOnVSiUW7EufP09Ei5mOnufOr//MUPPIvnbX6piN+0pf/CP/9d+FSYLzO73nj0eEWbQk6hCPFIz7SaOB4q5y/vAYK/NsF6ErIvXL3TubgfCa0pdH64hw1fabQlc+9O7L2t9dgLDcwSIhttVU7d2J0pZDicnClD9TYSBYNPtZdoTF/eUY5PGs1h64OPDCOwQqmES0cJladqrFmTGEk1gsuIopkqqBpuIayoIjRCZbxUZdY+UubC/TGJsktyK36Y1fgPf/5NbhLf+QPA3p+3uQUfXLs+PL7tbM9/9CcuUNmxJcdYKbLDvCB+QNljspBboj5NpFcOiMy4JkrKKEZOmZILsyg7zhGv5H4HmTeyC4mNE5nLEi9t7Tv2aeWiTVy1lSrBtV1EOHZQ2ehPn8LjPfO33adPR1wzvZ0o6YydC5cOJ2k8HRicSaImkdYNaZe0u3DShb46ogWxFfWM1E6rBzo7TFbSksnvnvD9Y+TOjpMLbVaWNSEJeq/k7Q79uOHzY+QsQdsPgZDgtrCuG1OeKFuIMRorIju6rLSeoG9c9TP+7M8+prbla5pfHw1l1oeGe8RE/6s//gZ/9KUdP/kvfYy1wlGVtXdKieJATYLXcNsnjTRAd/Ds7O8aT66Up9fK3fNx+k/GPAnHkzOfRefQPS5HrcbmOc3GpQuvzplXz4bFY+9ICpA3Jkg1rk7Crz90VoOmzpMGWUNZUBDWGp24nQQjYAhGOW1OzoyOuEOOZMVdGTJWjNIS7xyMMgfPo9/4pUfBzsc/1Ua0sd+kLwZjzFYNxYTC5hKAQOWWM6BEQl6zzo++r5D1PA/jJlTg/aqsm+2Q9xbxW01W/FpvdQPxVTcf/7P/48t8973Mn/nHP4a50i1SBQO27oiPAqoqiRZWA4F9hlNV9qWz9rAjtu7MOZ5/gkjiRNi6s8/gFheFdYVpclIKZgMoC3GImyy4XK5xcFubsyrss1GHbD43YcVJk5MycSAs8X7bTpB2URCLGFiJLpMEfDVrWF0n0ZiDKQNhFTENm9CvfeVbIUjgg6NaEFdzTpgokjsFJ5lSu5OSQBdWwlphntlrA+3Q4xCCg2tl6zCnuLjnlFmbc/Zg4uJu5eEj4+3PH3jxk3vYVfRpBjEsh/3qpUt4db5k3nX2s5HeyZRPTOxLZ97NzLuCqWBEVzB7Yu6JjPL9rzR++52F7eSsoaBnq04xo6+Z5d0NZePifufspTPSuDRUGCBwZVkMJHhZS1fysVI3w1Il50zvjjdlE6O1jrtRiGJoJFh5cCLF0RRJYL1FN75kwT1S6QJu76RiodQhCi75a0/w/aYcN0V1kVGQH3vCn/+bX+A/+Oc+TutCMtAUXDEVo/fgNU6aoUZxvAz7V/Ngx9h4liqZ2jqeCqkKKYfypAmcvVA4fvHE0y8b56/ucI3ihuaM9IbmRG4dDCwJ1gYHQmJPjSSK0PWYjb+IRcMKN9RDBSMKa23jzBPgaBs2NrP486mAuDEzwkwWR3aZ5hXvNeyP3kmWEElsVikk0AnzFWFC8dtDvUgYLaZk8cc8OU0TpXQ2g5KCVXFcn7vzOk8+/yU+p5/kuz42Y0Qzw7sjDbQomkIFKSNiXkRv2TKpO5ITi1vEbxM4g9ZD5XDooZ4Uc6ZZWaqxy+mWt1hbFDOzK8uzyvyg4A7NjBeLUrdQZYmGRa9rNGpQ5XB0tBgXZ4Wzi8bjtzbu3M+cq7DVTmuOTtE1UBn2htricquCV8OXOBMlgbY5TYVOpDRiTslxTjAL9Z8rHDdnJd4TKTunxx2bnN2ktLjx0g2mBMcW9h3PinQ4rMbn3/7W2x9vxltf/h1e/fgno7A8igXSKm5Ob5B3GXoom0k+wiGEbd2iATdnaJ1pP0eS5GDviQjFwx3RB5fNPGxkeRZ6c+gSzcaUhrqUodJXZs2h/BWBouQcslUhZF/VnZwSy1pJKbF/cMnhrSvSSxehCmtCmhMObLVi46xly0LaFbYeNuxKY9rvePTFd8IJUo10VtjvhDe/8C77FyY2yYgH+3Q2Z62O5oS0zto7tQczteHkfYLWsKFKEzd0nlGcv/WhQtbzO2It+Ylffcy/9oOvcgfnyWEbyI34vEncf9bFKXPws2qHqYTKL2uiuqKt4Qhb70zmpJJo3UeTzpBcmKcNI4+GTTiEenekV0BZ3UZDpJI2JaVYLyPO1Ng2j/UMgd45PVVaF5rGPUTN2XqEHCQ6W4+7bfMohHtrZE3DyRQhGkg0W6qBdJiTUVtio4d1vMNMnLVWooEdZBkHDwdRd+fHf+vwgVeVj4DI5aM6Xj+eQF+myxPE76D9jJ47xQ40EirGxJ7l0YK8tKe7kzSTu0Hb8J1SrZBa4iRwOQm6GfuTkSfDmrDXib3EPcL6yoXC3CI5PrlwpY5bxXTG9cjalfnynOP6GPuKkx5cwFzDspejsH9ASJ7Ze2fLHTdHvLDmA5KuaY8K8+4Mm46I52jyqdDtQKGwXJ/YroWyPEVe6ag+4GgN08KpPmUm0yj4opCeIg9O1O0FkkFqJ0wzZhtWJ7JM9Cb0/JRtPSOlofheI4iDWvihX3iE9e1rfi4fDWDSVz0nxm/+xrsLf+on32B/btzNzl2Ec1VKivhRE1CPNJ4+ijndA7q5u+xsm/DwaSa7shfnYh/dtX6KY1VVWD3k4A928AMXyj/xQPjYuQabKoeawQEftFoX5WIv/OBryh9/Rfi+fRysTy1k99WiiCA9kn4mhWLxUk/JA5adlGRCZnQQrwt+SPTDxHoSZlVmUVqNkgsSF2MdLACXuLyEdUOoBHB8axFVPu4P+FDUZL9xczoMPz2u31Lq0YbRCc3lzZSzf0Cr5e/71U2J672vcaITZhi/+WTj73zxCTl1SopL2SzCFjVKNEl0fF3DDtidY1PmZGyjO7hV8JwiPVDs9uc16aQU3wsZqUozQ5LsbC3RPUD+RUKNsDHsrOPPujXn0VXYHXIWfOfoDBUJsLYZTcBF0Tn4CsspFBIybL8p3zB3Qs7fMYreWHyDQha0GeEXfudbozD6gVEMneJwXgi4ZnWjaxwauhvmKS7xOYE4RxeaTHgSikQnsJmSXcgeschrjWSapSk9F+6/4EwJHn7uwDuPjVPaaMnZHzM7Mi+enzN5zMOCc/Gykx8fKLkw7fbIbo+cn5HLHtmCfVVyZk6ZCxW+d9qz32ekRMen6I7lsSFXlfuvNV78ZOLOq/coU0FTQUtiziVUPKpMOQc77ujoskZa1DnoFMXP3g2jsm7G1hq1OccecO51a3jrtGSUYfP2bnSPtTrdAKc1oO9THnaCbqiHOnH/vNulbxesm0J8/MbvPFtIKFOKtcHMOEsJIbHeKEgsLOaaYv2r7njy9yw+A9oO0Gzj6Ct1g80kIutF2b2YWWvn6ZsbXh0ZX59TpE4KiYmMdInDeE70oUyUJZK9vBORvq3jnQi96MF8aT2UL1kifKCL00XZXHETmtewO3tw6pKHysoQ1jUKJ2e7HRdnnctdFMLWdYsQAQT3sJ70ETueCfW0uWGt4wQXaatGLpAkkzQsHi7CL/7Gm3+4z/sPaTz67O/w668vAZuuYbdkUiTHGcNI2GCbBYt/FBFTqEGMsIu5hspOJJpz7oFucIRtROtWcdbutzbENGxaJQcLxhrs9oncYu18cowU56eHyro6p22Avif4ytsrz64rd+8W7r2gPHy78vBJHbbVON9sS6NW47D0gL/X4F25wtaMtXWW5uQS+Ihd1thLOwPiJ7RuHGvA4nNJrAZrMw4nQ88ydOd03di2UM7XFhbK2kPl3M0xcSjwU7/8rcOS/PC4fvI43mseFmBDItUvZ6Z9hAL01mhrp25OXSrmnem8kM+mAHGXQqvBHkIi8dnMRkE8uFXmkHMKtEKPw5OZ4U0xj/tCurVRGVtvmPXg4gGnbrdR9e5hX19rx5Pi4tTu7O6fc3x65HSoiDvbUtlaQ7vhW6Vbp66NpYZypi0L3iu9OXq84oXveI1UEkjhrdevECrT/ftsRBjC9XXjsFVsWI7WrbMuDWstGFkazMx1q3SNE1jtTmsnfvpnv0UKWYMJ68CnX3/CXp12WOhL7GrTPpFTWETbFsq23o1mxN7RKkkd6Yqv0bjYnWf2OUcwyVAlG4BmkhuSMlePOodjhKTUU0cUahIoMM2Q72SmfMamGUOoFtiRzZU8pQgWqxHAlCSU+bWHrXoTZ6mNKsZqiWSxlnZXVALNIO5xxzAhp5vPxy0mj+L9ZkPlaDbCc8Itogg7dYqMAr1EIU2T89mHV3HNHLiG5x3b8P91/NinF854haTGPm9oq6FwJpE9szw9wJlSStg21RpVKkwZlUISo2qj+sLj7cjqiuiB7MqZd7IL96qwWzeyz2DGKhnfjuSUmcmYBPuv9YnknQ1heuFF2uW7bO+8S2oOGmvI0ipVKtfS8O7kVsmaozaQL6jThJ9dMfdrLk57dt3pmpi2zHm6Q1rOKY86c34CLytPLXGlEVanubKTeyxLoV1dI9O7nGTC2l2wA14XlME97HmEBm0IR6xNZIO+Ot5O0JQF4a+/0Xmj1q9eGvpdxkejmPXVKirvqwx/7tHC9//oF/kfP3ckSwoPaI8kORntt2WDdVXWLuxS2Cb2SXjpRedsgodPM+9eZZIpd2bYJ/CeRhVfuTMrD7LygkpEJaWRStFC3kwK6TrZuKkMdXO8Je7Myh/bg5hQa2KtwrGGugEdstTxl+waL/ligiWhd6UfC56c6yo8rsazKjAbNoWyi5NSjwndFJ0MJcXFVzQio13oa6LVNFIzousZgrD3wN/4sHV42D1+lyricz9GKPut2kHf9zp8wG54S0L8oB3x/a/aT3/2KT/0t75MTglyvK7e4oK/S7FJCXEQSklIGsmYbom2eVSkPQCmFY1OkiviecSeEpZENIqTopTiaOqIdE5Vb4taqqE/6/3m5wrTLnF0WDxCDdIwWwaLJtLItqHqMpRy5tgWYQPaiYh6CStRUkEMVg8Jcm3B2sKN//rnvvD1eFQf+fEj/+sXebb54Ao4WUpc9jz4Kasr1UchWgQkkmXwYGrVrdFbC2CoKoxCIYBtwWArOaFJufuSkHNn+/KBZYEujWdayd2YHhr9WYfquCnqilsCcgB0fUJkB31PuagBepTYWKfTTD6H8xSq0nS9wx7WKGzdBZ/OsFxAY44IQ7FqHrLpppRnTrpqnPpCPu+sDda10xq4b2SJYmlrIYtftgFVXgdo2oVkwThKGgczRoqm3liggCkZKQsl3zQHMmhcsJ/nYWa3v/6wAP4//dSXQjFDiTSbUWjOEnxGs0S20Jh2In3JLGCwYpWldupI/XM3SHHh7BUgeHsyJ84vgy309PXTSEWMS6Vzo/QysgppCkgz2+hgaxQXJI/mQQLRiDUXCbZWXB6EqoK7RlF/XFK36tCjQLWTaCx0V7xFsuu6tfhewC6lSBNSJ6ehxdVg3HSiuByJUBnTYN25gklh20KRlDPDjn2z1ic+84XnN531+vNf4rdfX0mTkEpYr9AUAQIMa/K43JiFrat72Aarx9mmjYtlH8pmG5YCczi1UFqeKrRRQFUC8t+6UxM8fRonpGU1Hh9HcUjD9rc0WDfDPFTC8z44Sl96a+G0Gp4Tr7xcePjmyttPaiT1mrF1OG3xvokiOlGQG8W24yosZlxtnevNebYZOUdYytJ9gN/Dml9FWWonE/pskeBzpQwtSaTGLp1labQadnzVOCNWgzcenb4xD/cjNL7w938Nt3j/ceM4kGDdCYpOmbJTVDoyh2mkN6Nund6NlAaMexs8U41n0RF6M6w19nlUIz1U4z5A2qYG1kjDDuoeTXB38BSNxsCYgJWJdV2xToRDpGButcFZUoHp/jk6CYerY+ACmtFJaC5wo87qnW1Z8Glm2u+5+vybnL32AtvVNX1duX58RT884d63vzLWO4/QjAARsNRGx/GcI7VzDRW/9yD8pWnCtg1wfvnv/Tr/16d/7Rv4dP9wxwcscGbMNK6XoZTXxGlN9DTSVKvg2ZAESoZqaHK0GuYN1hVbDKyiERrNUglm1khdbQhL66SdkneNloU+KZvDtC9MJdwuy2nj4JV6HADuobbqPYQGYkBRmmeuNgFXVDPiIJuQ9pkNodFwBSSz1JAth1BmBHgprH0wpOWm4S5srtFa9lCaIaE4bjYYuxbN6exppA0TAohxxvooYIe+GcYvf+Vd/u+HO4rXeE6qZEnsk7MsTxASeqfhnsgpRAMbQjOh9OC8Wi/0Xlj6iVPqPN11Hh4b19lZ/UjzxkOvvNtOvNMbj9uJk0zMDkoioUBjTo54o/Ro9u7uXpLvHWlfOZGuE621CNRZEvVYOW6OtnuktdBPRj9ldFGUF9FpYl0qxzfg8Jk3ePjFL/LW515nvXoHf7BRLy84seN0NrGkxJWAXc2kw8ZufyBfzMzybUxTxbqRtaAKB9tYPBxKqhVtFXpG3HBZ6K3Qasakc1yE/+ULV7jpkJ58beMjycz6qmMkESnwZ3/wHv/6D7zEsnWadrwLk8A6EpRu4n33jAUkd6YUP+Lp9egKelyYzGEuzkuz8Uem8Oj3LST2cq+FpNQLLg29v+HaYkHaEr4kuE7IM8EmQwq8fTK+UqHnUGAlcUjKXoAsFDeyKt2E05pQA586V4fEfFYxyzTvnNZEawKWwjYx2EQ2WB86uF0pCTm3iBUGOsMG1uNg7nKT+xGpjALk4kB0vP+F/+nLH3iZv9X8z+8FQ4+vHR/99vPvQW/fsyK+N97/jRXh3/9nvwPxHockj8thtejQYBYHOPfYvERGMfLm+wMesuIsQw0lITGex4bVLZKhOkIaF0kRpW1xoE4WVo+uERNeB28hoSTpiAqrJRjWR3eniY7DnZNVUe8cG1h18izk4dUXDUuJEQyLJHGI/Cu/8Htzsj7wej1n8+tm7RIV/q0rgbltAAAgAElEQVQ/8THuMN+mILndFLDGZJABSDZDJObeLhvWBTByTiSJbnNJCfc+ClkxF0oSanZsqxzfbrRNKSnxQil8x52Z3Zw4S43ZoZRQVe20UC7PWGlMrz3g9OjI/X/0AZcPZk7PjpzeOnKaGsel8ujNzuMvH3h62TlaJ+W42KcpRyE2FdpmoRZtxhmJ6htkYWsVJJFzZqktLhHdEPP3yfWdZQ3WxGaRdJFwVB2sEAeyHhcO5FaFlDXgzA0ZNpFY/8yCJeXemUX5c59687maW/DBteuGm3XDHrj9Gs/8uX/mE3zni3BoYK4ohnhHWg5LXoZUHHBWbFyIIhbjBtY5Syal2GPNE1v1SHzKoSyR1lmuoZtRT8qdl3MohXskz7VtAImTsVzfqOmi4C3acRsFDwt1lWlY3lfrmHWwHZIbzSJpUEb0WatRNEvekQRVFNqN0phbe30CLveZpTun1aAHx6uZonQ2lJIybQ1AZc6ZzUKJ2JxQVkyZKXW6lIgrH93q//ynfpXe+3M1v/a7nb+/NbN/5WP8wPeGfUo8LPYyisgagm5ycvZ75Xi0sJHipDEXM8HwEaBwkzYaH7sT6VkilMgJCPSBO7MqpxNc3g3LcRLhk5eFx9242MV5RlTYNmMqSsrQGzx7unH3PLPbKZuFYmFdO+8+XKldePnVORTEUaIIQPcNyMs9VBoC2yhK+VBdFREm9QGpD37l2oNR6ljw3JJS10iNbjXWJxEJpWEmGIAtmoiSnf/i90kwfN72Rfjdz11/5Pt/gKyZlHkvcVRC1SxYBElg74GnVeMcPVi6N6E1pGCq5aTsVOi1kXKKlNOUGCRZckm3QRWTKjt1FoOUUqgICYdESsP2TyBI5iS0LQ7TaS6kpGR3coqmTpLYBycV+tMj89mMlURKkbBq64aLs7rT3rlCLxPnL9xnyhNdE5/7ld/m4z/wCa4tznPWKrk7djpFIWTaMaXRNPROrU6zoJX33sGjWPc3PvULv++zeN7ml4i43OqT4S/+6e/i+misRlgHTaEGQFHnaOTa9YbvJpZt4cH9e+QpkTG2h8buTuXtryj3HkShvA62acaoLZAtWeMMr4SqysRpAvm2US3U5lQyda0xl4/GEkJT0r4wWzQAEEGTs9XGJIq7BD9tLjQiaRiLdMyFjLVO0kjK3Imzdugh9MdarD3Nh3jCo2BVNNbFpHHfbQhuwpxHEjowFeXP/9xXeP/s+IPWBJ63uQW/953xZmjK/Cvf9/38ye97BxkiEWkdlnP6/hlTnmjSqTIh1hDJnMnEWQ413GrK1ozz8zO6bUx+h2m7ws730FYShewVnyZqXzFm7ohyXwrXrPS0x+ms0qJ5aHua1zE3hb0cuH7jhNYLRBr1hRPglHxO6pW7eWPZHNKOQ79mThFp36XS8x3kdI54J/eCXSTEw1b/bO1kq2zX1zA7IgVzR5szyxnGNd1nXJ1l6TRxumz0phTZ2BNCn0hqzJjEXolXhIl/81MPY17fVC6+xvn1kVBmfU1vnVE1NuCH/u4T/sm//Dl++Z0Tk8aGZmPxQZQmcXhfi7M/60xTYm2JbU3s9s583pFdQD1rd7ZV6Vuhjz+Lzh1fgTcFr4LsN/ROxw8FnkxwPKdf7+FJRmrI3qUrPEvcI3GvK1qDHdIskQMngrRgKy1VOF0pYgazc73mAZ0sXC/C8TihKuz3jbOzxuWlc7Hv7ObOLjtnM+x3xrxzvDROAjXsrcxqzNkoO8e1x/WwKapOySBFCd2NfMslz321YYOI9eEiVuL9mYfw1WfpiHq//V7Of/w3Ps+xhqS9tTjwJIdhDg2oLQFbjgNcWE+d6AxGcmXws3ywbYqGuqcNdZUTijz1QLVrM1JxZjVMhXkXnZtKXBqjft84dWUbF7sIQI2OKEgsHiI0jM1hl4RpUuwUscD7FMli3oMn0XpYaj2lr8NT+eYbbs6P/c03eGtZg5siiVIsClESXIss0elNI8kEdU43h/UUsnJv8Xm8oxIpWn1Ekm8KvgqHI5Q7iemFwnRfsQfO/pPK5Wud/bcr03cl1Bv7yz3t/jnbHcVf3dP8iOqJtz/1Jd76zWc8+/yBlYVnv3TN6VefMK2PkG+DfpnIU8F6wpqjXWjHjD818uJMdLQ0rlLn5M7q0LXQ3Nm2irfoLWOdbW3YFof0vnW6tRE1XSnJgeCYzBrajlADOTt6dMFVWAiVho5530dnepcMpJEBS/a7PpvnZdyuQKN4cLPFuzT+k5/+HFajcJA8lFwCiFasN4oY1ltcyC2UEaerHp1dA6+hnFMLLp63RkoZS8Re2BzNmTyHJXF/3nn6zpG+tXHwjq4g0mj1Jgn2PQVw7wnRDBbF8bD7CN4dHFRS/L8tGkoQ7ykfkK001D8NpTWna9Qk8o2yQxLNhSenynYKpZfJja0+0q6m5Lh3kEgJcjFSVsw7vgnMQlLog0sSBVT4zJev/wE13PMwbu8sHk/r9NYbfPrT78ZONcIiAlImEU6h8fpfL8HXsnHWqjBYbgHMby7x71AW1/FjAlQdCdJx1goV8uNnnVKM2uP42jbjzVNDunM4GCbCYW2Yhmj+eIrD+53LxFvvbhzXTq3G0ozWjQcf23FxN/HWmxtXKyzdWXswDDvK6s7SoA0bD2Ndri0UiafmHGqsRbUNFQ9Ocmg9lBCtxX4sTnD/RKLzPhiIIzMANOz+/3C8N7702d+kWo9ABrhV8JWkpFEBvVE3x1lHQfW2cG3EPLgZ7s7SDU9xakslo6IUje8dK5AP29dIkqseCYQu1NY4HVdq78Fyc8dv+EVTQnKONDwTlhaKPx0/V0ukVp/du8DFePLoyLZUnr31hIdfeYhvncFyYHfvVa6vG4++9A5vf/Z1XvueV1hqMN3cbaSKCqaJ6ycnzDqHZaNaDWWuOHUJS1kU2fmaClnP43j/mR3g119fMEAbtMXCcj8JfYZmidIrtWX2Gc7P9tSaqHWEaAEt78GOXB/CzrxeOadDovlMGntNGQWh6kBKmDv7fQqVMomuORiMW9j9aR09m5CiSHHsFKxUw2nWowhOzA1zYSqJZh3VKDqBBTScyr54BO4kxUYjyPtNGmiorOMMGWtuRzh0o0sEwlQGJ1nsAwXcr1bIiib7c1ef+v99WG/8z7/2GfbpErSi0uBa4PxEnmbwQvFEsULWiVkaUjeqrWhVdgKlnLPUjvUOtmK1YwdHJJFxunS8LYglnKcoRu8rTsZ9o7UeZjHbYTxDc+y2u9bY6kx+cImnE/JiZtpfYOUekiYoiWV7Bckv0dIFZXoVygOkvIjMHwe5Ry0G5wvH6RHHJ29jD69pbxnTqXO8EnzveD6nWqWrk/OOakesJ9Q71tbAHfUtQhJ0BYS1Z9yElDXW6eqoB87iL//WkeJyW8j6g4yPRDHr93/bvFcyuKkad4x/+397kz/1E19i2gs5w1yUnISkSpFgTnVTcChTZzqLBSGTEIN5J5zt4GJvNBqPnySePMtcPVW2Bj4pXBi+7/hscFHhouP7DX1hQ+4bXkLuLD0hu4AnT+eOlZAaywZtSSzHzHKC5aC0RSk7qAUeXwnrSBd7dhCSGGWu5Dw6UxIQ0s2i7OKTs6lxVGPBII/IdYRNYVOPhW6ofpLCNHUgNt1EpJZ1+ANJ+J7n0ej0sS3cjDgy3Ih3P1zKuqFSvXdpe38x7Id/5gv8Vz//Oq5w6okpK3NKXJTwqof7VNjEaQ1619utuYmP2HPY58ROQ3kCo8A1mCBIyOu36vQcuq4V0ARbSwFextiGBShpcJsSwaK5scFlcWYVcgquWnyNxNzQsFC0rXHaYvNdVyObkWlkNz71m29/3Z7LN8UQeW95cufHf/Yr/MSvvEGXilBQN5KE7cmHegSPxL49QqnhYe/W6LRIAUwSyTWSqKsjPtg+PRh+F2cF1cRcArCdpLDMmT7fFM4UXrmPXcz48RlXn3vG9ZuN06ONNBfKi43rX36LevWU9u41599r7P7oHnnlkjYFsDh7Yt/hrE60g6PasDPjpJUFWFqnbWtwKXpFeg8FljeqCctxY9uMtdXoILeGDKWaiLNLOYoVEkW7LhF3jwSrqTrgRibmp1pcblKKueoWh7OSBabCD//8889rM/9gwe6mwHKzNrUU+55JoxkISm0ZF43usUTHViQHR2OSsH1aKHnnYfcxb1gWujQkQyvQTnH5T5MwT7B/cce8y5yetdvDcMpOkoTqgN9mHWgTG8X1cWEb1p8GI2k4mFUoIwmxoUPaqkNB3W4WWhcmI4q9PbrjThTvgoelVAzVPNz2ghM8nN6U1uN1kqG4JZisCJUsPSyQbmxmuESozM/8yteuPP1mGuu2jrAduZ1DdnrEp3/uy2HHHAUrRqGqa7xmBnQPmxi8jykqN7uYsPkIqZGwwfv4KBoXMHNYmnNqxm6vWAprqUnAvBd3TuJ0jKtjpyPUzVhqpEBLklAUJ+HJIZqS1mHTCNm5vMjcfznz5PHG4+vOsRtrC8VU62F7vNm3BYYtMi6XbYtL7urQerDBeg8lRdGweW0t1IDr4ABE0youilsLNhQ4zYz/5m9/9hvwdD+6o65rhDX4CDSyKMxX83G+GWuaR4AF1ugWz0iS0upNoZoxr+LcYgKbDwWdjYKiBIvPiZQ4czDrnE2Kbh1hBBjsSzC43EbhKBopRiiMt2WjWWDjjTEPx5536obhnFLh4u4et43LF8958eMvcfXsmtNbj9i80p49pMxw+W0vBOM2Z4SNlDPejGbGVleaOMyFIvF69DpOoSJMu4JYtDT/97/9d7+hz/EbOSID02/P6f/lL76Nb07OQtkPZYPf4BAq7STkXdj5dgL0UAF6eFVRV+69UtgOC22tiC+sz6549MYpUAcuIZJA6DiH3nFXrq7baKQ43kM9l4mzXtGJ1QLPkTXjGNYT00jh7D0a6Utz1rrhGUpUYDmtAWsv3gP5ocKEYG4cOiM8J/bt7kYfgUOeBFI4QVR0BPSM5sNg3xqKCvzV3z7E6+e3Cpj3Xt+PgGPrm2EYnR/9uRNzO8efddILwmTBZ3OpzKqcyYG9eHD5zjbQgoqTe6FojTOP32HzJ+SzPcUSYonWM0Kht0yyHVO/xBqIndNrNLlVI7Vy84WULkktw1aplDjH9QhEKQi9dnbdoUPXM6RsTAh7SRTrzNUiFKga13aNtI1mM0wX5Iu7lLuZev6IY3sL4W1IBfNOzsqZC8kXxAu9Z05UpEeyYZKC6AHIgauRxs7ukHxGu4byMAs/8/rMz76xst2ocv+A4yNRzPrA+Kp/h9vtLf5rdE4c561j55/6S1/gT/13bzCnxGVKXKgyaUK83MovnbD2ZRxcSElpDkcRrhyugJ6FVJz9eWKaHQ4JeZyRqxT/vr2HN/b453f4Z2d4XBAFHfwWxPGu7FFOVbjqzlGEJRtlbqQd7C/Bz4wrNw5X4dWfdo3jMQ8taizECUgWvJLVnIqyiLN6VOUZm1vraXSsBCfRxkExSRREEKFrwqOMhRIXHkmx2P2/7L15rH1ZVt/3WWvvc869b/hNNXbTcxc02N3pYGKMMaSDQYEkNijGshMkR3YkS4mcRChyJEuJEiJjK0FObEcxSoTzBxYmiYc4FgFMMMYGm6HbzUyDsaFp91RVXfUb37v3nrP3Xit/rH3fe79f/bq7pib0q9pSqd7vvXvfu/ecdffwXd/h9XE+HgS04irL2dd6Zo7I2XfPc1PiX/sqfXpT+Ms/9hEma6QOLJqHznnKEWGaRWAgggOMiDW1RJbQwy/uFDecFEmWauG9JUqtER8ug8chsb8mN8Cic5dUSB6mk62GkfbdLUhnQyweiZi4k3ugT7M4ZNaS8K0wDs6SnZIVhoQOwkyjkanAh29uPuf35bf1cL9vehIRPv7cwl/8kWd4Zl4wjfa8efjZFQRXw3LitDmWRoob1o0Rtd+vYrEA+ZDR1NAcneHWTavzmJEhmHS7pXLrlnPv5sjm6Uz7REV2p/BII73jBvr2azz6rjVXH18zHjZWCQ5vwOknYBkPOZ0Ty5JZCK+3oQxMpswKu1yRwdnt4OTZQtvC7s4O38K8qdy7V5AKZgttW5jvOVZmRukpQJKDtZGc9eCskqIuFAvKvBHeRkuLpEVRi/RDCVaPuZ6xJEVhEEUlR6CBKx+6JfzXP/oMt+fXLjS/n7P+6j9+GldhSsq1A0WLkl3xKVicc/fTay0O2w2Y57i21RyKI81IJCQFEOWLozkKvG0AzwwHA6e3jaMbA2bG6a2KNyVJGGkrhqqdyQCzprh/LpQUjZlmPf0N0JR6mESYGmkgvvGmtPvPWbD9UoMmIKYBeLZKpCSGGNzMcYNalghX78wMJTzpRGL+cwuvzHlpiCl5rTBm8uA0zag7K0moO6VdXtbfvMzM865f7l5JZcsHf/zDHQvsvogaC4xrD43pusOGd/ZVfG0S/pAmQutfO8GAMoS5BWt4sWAj7HZgOe78bglGlHdLhd3snFanbivbjZGnxLxAK87pprGrxrRO7DbGvMDcDE1RF6eLISpcvZLYbp2T0wAyivkZJa2YsynOZmlsi0QicXNWq9gf7mqwGlSdnJxdCSCsmNBDD+O9i7BrHp6SBKuhEQdKETjZ1d/am/p5MH7zn/1KZ2WeodREwy4S3wBEHG+xp0rWyBpsdSRjLRJJlxqWDtblos2gtsbJbqG4sLSYP2qL31sc5hIxQNMqU7cFdTsDrJDYc7fm/dwg6DTiFkCJZKF435dXYy6NpQWrMLmz1AqaqSVYrsePXeP4cOTGmx5lffWIg9WKu9tKqYXNrmIG5d4pVhpqAaZac9ZHE6XFVWmq4WHYQh69bLb84I/+9P9v9+6324h030KeRqarOQBKAenetJISp7Mx5vAgC4BrDmWCh00NGJbX3HjjxOG1zHi04vB6RtjRLLxiS4FM3IPBo+mxmnL4d1Zh3jhLacwOz948CQZhxM8zu+JZGCSoqcvSYu5sjteGpkjsEhe2m8Y4QOoRv5JCObEPxxHCP9B7QnrWPVPbuj+XM2hAfe3sGsV/WQLIOjX4l3fO01UvMrIuIwv5czUM5yc++lH+5k8a166uyE3xvDAMMKUDNm5YmoCB0sDKELYiOtKoZAu2uLAFVmxaw+SUxRaq7sJSIxlNt8EMxlna3UhfbkopM7syU7xS2bJQSasVRW5RPJEQhmGLVjASjUD5AwwrDJpYNWOVBmoLJuDCzMqMZWwsNaOlMraFbROyHJFXxzAcUJ4r6Ox4zZQ5MS8pCDepItaYpVCyo76g7QCaMTCinljSXZpvw25EZn7jZuZv/ItbCC9/r/XbwjNLu/7Z5VxDfz+J9LOP8xQG5R0Hyvd9yxtxSyzFWGrsqpvB4J1q7LHZNsIc27wxZedLjoVj754O0qANEVc9g0+9e7d12mkmjSETdICSsNSYm/NchY8tzpaIJ1dJZBGmZFjTXpCQMwxTNyO36GzvN+SxdwzAbTZCVtEvyUhspM7kAJwfaFSghpANUWHqTI2FRhbF3fj5Txb+9D+6GWkpD9z/16r++cGh7NlSFwz0gYcJD6XDWHb273O21v55/8Zbj/mqt15jyQIlFqpiHhRlF3J1ZrXzZ3RGnvRTfJZKbWHinARqpAGH5xYeMlt3MhET3cxJmmgWmz6IJEJxqFVIndVjndLZPKSQ5opvQVfdx8L6RsodkwAgwPCk/J8feOnpTJetvpKqXyiEsy8V6RsE+Kb3voF3Hg3IypEu/9Ik1FrD+y7BWhOqNWLKBbwqczEgM03GahJOaGfJratJSD7hLRL/3DNZG0++QXj8ysD8z4Wjg5mr70zIcEyaVsi9U5ARXyuVhbJtbJ7eUq+uOHE48cbJztjeW6AKum3klbK4IEk7FTpYNYiFT1tawryhOUFmH2gumDWSGzuTYKep4GbsqlAaDDialBOrJO9dRgRprUuWojPpkiMJEmMUw1VRMj/99Mz//cvPx8XuF725XaraghfOXemBBkQ0KM7f9p/66rfy7scmZFvRUcP7TisH5pyoIKJhbKzGgFEWY5xGxBtXx8xqyMwIu2HAykyzhHbjdiFF19CFbS1UlNVYuPt8ZTwYODhOLLNTTVCvAYTUkKi5WQSe1BbAkoS8omkcCsJXix6KMVCtkEiU/YFXHNcIrnDZm7jHJrw5uIS/UfhJ9s27S4ChWimewGJ+w2OWrcXRIyVPwipnaor5zqwhngHhh3/xY/z8rz8X86ZdLs+sh62Lqso4DOx3FI+/+x2887EM3uWfezYW4Y+FOyqOePjIiBsJjcO/0xPFgjEsFp6fyWAae4OnOEMO36OcHSw8tExgSDANEj6O6uSdc7fB0TpA8Dh4OTdvVxThxiM5urPurIbwvjETUnJu3qmUBR55ZKRasBFEY45uAC1M6RtxADUPMEUskgldYj4qZgHYEZK3GtZs8d4t2GZDDpPwuTnf+QP/7EXdi8u2LsKL23e984vfTU45pJoEGxKPZpxZC6B7z4/vG+CUQMzQnBA0DnydmSVuTOPAcrplOFhhHimH3n9nc1hnIaOshmADVhrzppGmTNkW0m4mr5RhyuRpHc2WskD3E5VmtG0wQ/XogMMxAAaa4Dkx4ngaKLUirszP3eKxL/oC5mLMO+f2s89w5U2Px35MEmUp1OpMY7DglxrvbXfrHnJ0ANaCDdkKP/QPX56s8LLV12eqrW/9vW/mxjrSaL04203h+HiMOqoNkmLiiK4ZBmO+XTl4/IiqC7r0oBqHtlSyNp7/mLG+tubgKJjA5kb2WHdLM9aHid022Hl7xnhqhnWrj+Sx92nuHCdFamWjEdCzs8rKGwwBpHuL+q/JST18QPDYX0mQOFrft2tnWqGwNFgskstb8y7jj7AnUWHwmEP37NM//9OfiE+VyFm4zpl9weueWS/tzCjBQ3nLes1f/ManWPwO1RNbD/IBOFmE0aGKMlnihq5InKLpiG2+R7EVQ4XZZvK0ZtoV2mqiiFGbkHKBxbiahNFHVnliW4x5iKTAqgOntkUZoGbWueLWKGYcirN51qjXM4yCtmA/DyykllDLSGpsrTKrYbIgusJKsKpWPuDMlBoNAkvGaZnRDBSl3HHGaYVOp6Q2oJKpzCzWyHpAa42dzEhNHLhSfGFZEirOYs7//AtbfuneLkANeWH9vdj6+m0BZr0oA3jgHCb4ND+9aIqrwiDwc3/s7fTWDmt6qlunHS9LpFYsqbEpiSqNNZW3HSXetgadPT7gHZmw2RE12pKYd3CQBVkZELTCuTk7hJtWebpBUWdESDlkNUOqCNLN351SAsncpyQqDZXQP+/NjXGnQF90QyYo0n2LROLDIuegiUrAKikFrdXdGdMQfmPe+NrvfZpGHBCavxAFfc1PTBefR/j07GvuImh48TEPM4h/8A8mQmL4Z77mLbgZxTS6vhKeQ6kFZbp4PLsZrEQoCq3FhlzMaCakZOxmJQ8WfhKET4n2z3JW4XR2VpOytPAFczNEg9VVqjNbIg/GimAuiuylXdEONBIDdGZYpIctLgyETOhv/vwnXs4lvXT1dQZmdYP+M/kSfT6yPcNE+dO//400Ikm1GWAwiFDFmdQZc8hmJMVEP7hhRRi0sd06t+8W3JT1KnHlcIWVhqyVpAMpbUmaqaIc5Ym3rDdcf+OKMSU0B1PVNQy9bWvMY6MZ7E4bn3reuf2scWINn0Ay5B7rIyp4BCZFKEY/CDanm0OHl0kYvRtWFEtL+D64s1mMoV8rIeLqA+TV8APbk4MFaLHoe5fWtuYMol0yF4D+b941/rd/+lx8zvaLX//9ZpcfzFKNhCbvS+EL5yP4zm/6QtScOoaHniyCVOMEZxrCbNMUDlplnBPTQeKuNw7zwHqIOWeTErhH2u+YejMoACRVha2zVEfWiaQ7bn/cmK6OrI+gVEhZ+2HO2e4aomGcPLuEob9FV9k7OOrWDVRRJIV/YO3+aXkIgMk8QIxmQUNPSam1MTdQMVQVNQeiflxy//iFQ0jxYGSk4nh1ZEqsHp0YhoQrJMkhZWtRlbsi/JXv+8VofL1GwKwLP2MaJwDStcf5Pb/rGj3esNfdfo4LPyksGmlqzpBiSkwuPawhQC3o1gfiZ2D/IIKq4Rbep0ljXxUHL8Bj3RSEnIXcupxeowE4qXPzpJKacvVGYj0qrTrDIMxzZyy7s8rKnTsFGTM5c7+00pwkYew8V+97rvi7tcbrN3FKMYrBlAmvnQ56udMbP42kGubKLhRz/uoPvQ5mfbbx1Je8m9Td4N1BesPsrJXoURvuwbzTMKwiOeF9Z7GHFoBi5FXI+xE9SwmOuSVWZtXwoxncGQfFNQFOff4Em5T19atQa6DrxHq3/9sC5Dz0uSaS8DiZIxTq4JDpIPIuq4ehvW4rbXPKlTe/EVXn2Q9/ioM3XsfzQFNDXZhLCfZDVpYSDU51586tU3RKrFeJWowf+LGXLyu8bPX1Ymrrv/u6d7BsGkerTOv3MuRfXYWYB8bslBNjvDYhSWmthV9aLUiLoqr37nJ6V7Fh4sYj/ffUxpCim2wJSmuIS0hmoYeL9f06TikOg7IWw7bCbjGWoTINKdhXnaG+uWNMR/25nU4lwMEk3JuheSXpRNPKusZ6eXcxqgq1RrPTtZGznMkT3eEoxZyUTPiffuk5bm53cWaUc1YWvDx54WWrLXjpZ0YhyAE31kd85x88pniiSWXWjFtBfWBwqCocJ+Nau4q6c6qN07SgDtds4NQcH4y0OySvMp62LA7SNkwMZIS1Tz38rWI1sU2NJiMLhtZoEnutkXDdlFYqXhp1fYzJcxiZSdesfGaQFV63pDSx9YXFG7X7+WqbkOqMSYEd1ZUNldSEWSomgjTDtCF3HZ2FfJAhGXdsi/vIpLEPqCTSUlmniY0ZlS11Np7eTXzbB587I4OIavdJPR+XDMyKxe3FjvtArS63+h/f9yjf/NQxswWIs12IqGZxNtKYS2iXm0ec+So7v+cajA7eIthL0KQAACAASURBVNOOEq9CgTu3ldqUcWWspkhNmivcEudTVthZbOSyJFTtzLxYuyTMu39EtVisY94KMGTvD9I8Ip5DORZSSVcPg959GzEJ29IYc0gqBGGVJKLPJZhoH71T+BM/+Cx3S0gzY3/vDzVZe31ieuC5HdDa35tz8OoiOf78UHnxD+mFx14cR2PmP/19X8CuwShG68lRO+tdEg/J4yBCwTtM5rhpt6uH1owxw2KOeKImZ7D9Y4ViYM05GBOlNhb2XlvB+Go42QTTvTQo2BLzxsmT0VwRsUiZSGF2G6wG5zdvnfD+j9x5WdfzstXXg2DWfQVwjoP3obzriTV/6L030G48KgJjCkP4YXI0C8MQBtStdwlpAUZu5opYIntinIBkIeESoyUNo/YZZFbGG4UbjxzyxOOJ61Mm14SuJXypdvBcqdzcwMktY1sbttugZrRZqLtEmgQ56AdTi86iJEVcyXQAAqdpo5ZEsgpkEpE8tywB7KkYgznNGtmFe16oluME6DFvJpxBE2MOs2a3YAIFrVqQfkD8tn/wPIu1s8/i/lLvN2OvBTBLIBhIncX84HCBGwn++z/4hexE8CyUk8YqGafuXXJnuApXtJEXIY+JvQ+fiuBpYDcEQziZYpP02Hrt94bwk6lObspiC2UufOo548ojK46OE5JDBu1mLKVCl0vTfW/cFoQBzCkSgDseMqJWBE0BaorsTeCdRRRp4elVXEhqWI2106RF55NEchBtmArWYu9gFn5MtQhWnPUaDq4MpBsTOUMeR2zrnO4Ku1ppS4D+3/l9v3h2bV9LYNZ+rKYAtK4/9Va+6E3rqJ9ee+YeByYAIiFr1AC6tAOVQ9Iz3zN3oTRnGoKtKQSbq1ZY5QCr3Iz1GKmuBytlN4fcK0nUxrjKjLMxqzNmYczC87crXuD69Tj4t2pobwjRGV7hnyQ8/3ylqnL1Sqxl0dh0isvZLtMtmkzmEY6Q1WkCu11jFI3UaHNcYSmwtMbYDaGDqRZb8//1B3/tRd+Ly7Yuwovfdx098Rbe8MjVnn4avkQie31Gt8to0aAWCSBT9+xd+lKikfYrvR7NwKsxrIfOGAzGiw45Dk6dwXmcIzlpmQtWC0dXj8/3d97BL9HzfVz3hQuj+sZKEkVgSmCbHfPdGRlG9GgKL907W4ZJOH7sBrtNY55PkCvXyYNw93TpyZwRqpJEqUth1/eAm9snjFfW7O5t+JEP/MIruheXrb5eyp7+z33NOxFVJhWWnjLtElJBXx2S5xPm6YDVEA2ztgh1mRmzMDdhsoq78cwzlSuPjaxTkA2ioWbUIbG0ALYHOgMQgnTg0dAcCIuJVhvrFLLqxWN/hCsmxvaucXgU+6pUw6/WJYLCchKGAzjdwOFjV7j57AmHrVIRdhaYKkMju9L6pcmE9+3YZYqK88HnKz/8G58C329bXz6ItR+Xrbbg5Z0ZpfvB/idf+iV89RedID5xSqVKIZmykiGCeETJi6A5oWKcKJhvWdWBYbUKhuB2oA3OumMIpSw0VxiFlYcXGuYc1YRLYueNE92G+bpmECPryFJPkWGH25rN04XpiTUVYRQYWyER4UoiidmN5jPmOSSQJQVjmhrSSBd2KdbHBWdUCfaVgbaK+A47rezqI/jhhu0cc+8ojraF1DJK5RRotuVZewN/9v0fpXr7jPX3eQdm7SmP+xPKw1gw948Xz9IKM8eIc//KJ0e+6+ueAI1UGwF2ZpQWPkXFGnM3qdUCN9bCOw6UG+Joi7SmZU5BSW/BZrm9EcrY2EnjRIQqBSTsr7IGFGLOmWGqdkR8vzg6zq5GRzqS7wLQCrvJoIe2FltGTfv3HJv4IoHoK4Rxc1LGHLKzT9yc+fe//3k29dxP5uL9fh3MevFjLzsUuA/Muv8x55Drg+DWHvCys8cK/9YXP8J737BmacHcOt05w9g30R6Rv4tHa2aSOFy25hgpUGzZy2Vl/0Yx6wd7nHmGcZBgf1l0PQ2heevvKA6l0oGsZLDdOtOBBXgVx1eaCeWCoOn/+JmPvezreNnqK2m6H8G6eMM5n8cugp6G8LZHJv74734S7/4GqDNoBgnj7KxB+9WW8BqgonllNY3cvbdwsDZSgtWQkSS0nXHaBvzEWB00ZIxDlWZldTAyjSvScWLJyu72jnSysKkVsfALWa3H2ESJkLXRauHec47JyPpq91EQwb2GkWVrJCCnRFN6gmEY1mYJKXU148oYnlcOaBOsCaVUFgwk6qx6GLtr9z1KvqfKOyeW+c4PPMMzd+8H3/fsJOkXOQxOLz+YBcHYvfgpevARAnzrv/4Onnoy09yp28JaMidWqeas1MiSOB7Cl7GYhYxLMy5w2pw6RjfbC0wHsSF3McxGIIxHzSrbTeZwimSfMlfu3QQ5ShzfCJlerQWv3f8Mp9blzEfNrNEk/LSUYKuWpaE5kshMhOpGaxBs1QBRo/UVsmlvCRPBqWQNX8wA7FqADU1QU1KKw+xm4wxT4vAQpmtr0oEyTCuOjjPbe4179xa2tbFbKj/y/k/yy7/53Blw+FoEs/ZjNU3oeMy/9pVvImvcg5BuhY9LtS7zFCd5NGLc+4nPnYNAs9gj/PG5DZ8pm431QfhQJdWe1NbNwAWGs3hLIsRGhaE581JZHQxsTgtlEa5eU4Yh0i61M8bGMSSPwYh31km5c69y79Q4vDaQtbGUYPY1emqmdE8soDVQiaTDQeB056RRKc0ofj/41VoHvizsHL7rh14Hs17sY9/yhb+TIQeTKtILe6108AoLdhTo2Z5F9lIsUSTvQdXOEOxsl1JgGIjH0NnFHkwudUgWxsztZMN47aizUY00KuOYw6ahNkSCOV1bvKacOuurBDgqxPeiGenYbqacFlYO6dFjREduf+xZHnn7k8ydfVpbw5pRSwRkUGNtnVvDm0GZ+dBHPsmHP/r0K74Xl62+Xs6e/n/4urdTSSwtfBInhSID67Gw3UykA2cYB5a6w2sAE2ZObiE7rLsddzcjN65HRNKowqlFkqn3FMI6V3RImBtDCingXAo5Z8Tg7j3j+tVokJ+6hT9ulUipc/oZozIk7Xv9MG8fBdJ0SF02VE1oM6YWZ9edC9U68BoXJ84oFjWbCfDs9mJ81889/QI21n68XCzgstUWvHwwi84s/Q/e8xb+8LudnWV2LCQZOCCRK5xQKepUGscps6sRopMajMMhVYypDNRhh3hjkAExoUpjpJF9BJ/RpAwGQ0rAxE4WZmvUYgxTxkoiJ+fUTzHL2HMVP3SYMoMDWboXadgSWa0hWe2Yg1hhsAjSUVvhugFZcWILmgxKoyKk1qhAbtDIYAvl1gRHC6e5MSIcINS5wTqxVOfj2wO+/Z8+iyz1oTjExfF5B2YB55IRPyc63IcafGb86v6xd5/dP48+UcieuxLfXIny3d/4OO9+5JDWCkt17u0yZakIypjDzLaZIjTUlEm7TwTO0lkw3g9ysijDujGMQU9OKZgwKnHI20sIm1uPdA0j41GNamGiWzxMRsVhlYScI+1LHZSQIAFYE1qOxRuUO3PlT37/J/nw6WdAOi9cw9fBrJc+tAM6D4IU+3F+2HoBrvGCct5vvgzh7dcnvvmLHycPRu0+StsaEi3vQMKAM3fWSu4mukmIjU9QNtjOceDrTU5SA8lCE2OujqbMthlq9DpyVIW2U1ptHB+G4ajZ+UbdUUqFZXb+wW8+w+3dPmz9pY/LVl9J9IXUu7NxztZ6AZOm/0jIfMkbVnzLlz8ZLKTWWI/QLINXkjqtNJzogkyeQt6nIM0p1dhuE5nC0ZUwz1YNKY+JoENQy2VImASUqtloJZLrijnaGstspMFBlHEQEho0YqCdLuzuwbIoq2MYJ+8efsG0OPfwDY59ThJSCYUMqAmjOIMJc+06Qw+grbrgDcYcsuhCZS7w137uJj///HJOf4SzuXt/PR+4lK85MCvkTx3Y44XNn//l33sXKnCyXThw2AadjmSVg5wZNRgpm6WRB3CL6O9ZKy4ZTSmM+F0wcSbtc0PrEhvPLPNC84GrNxK2KK4Ld54LI+XhaGIYG3UJUEpKo2kwZJoZRSEXaAWqh4F4Xg04EZpBieSw5k61GilMfbNYvDMZugdWc0MlI26gNepWhGoJte7/t4u0pzw645jQw4HpcGR1nDi+doS5c+/2zMndBS/Ot3/vB7vrSFzc1l67YNbFsV4d8BVf84Vn7R3Z++jZOYiUpTfjnG7C72FUbH4GeqcOVHg1xiGkXlMKFqArDNrnzA4sDbk/B6ctztXjDNWop41TE64cafh4eLwmEKbUn+8EM4eYm6rBgPH8zYaOyvE6ZP/FnKGnPu8aiPW5VoRlY+gQDDMTBxXmbgovPUBtbiEx+qlfeYZf/siLT1i9bOsivPT6On7yKR67GnKv1Js63RiPva5aoRcNIBZWHGIMsme0w5AT3gynoU27n14mTymadimaMVNSvEE+3TJcCcZCyim8LAWaaJjRKwzEDR41aH6lhGXI4ZApLdI2ESFnxa0xpIFaKnbSuP3sczz61uvoak3TaESW2hhxylJhSJjVWBMhUqTnwve/immFl62+Xsme/nhM/JmvfAsQKYW6HtjdnNE0Ml2JechEgt1SjeaNZkqrle3tQlkyVx8TMrDzhOTWPfYECJlWQsi0YBl7xZP2BrXG3syhCIg7d2blODeKxxmzGUw5FvcdkNy5kgVNytYjtTW8S5WlNprDaYGjQZgxBlUysa4OQ6ytf+tf3OOjt07O9k1yYQ8lvm/Q9/3VSxyXrbbg5deXdNxBFSYd+Ev/5pfz5qufQDUxNxilcUo0PJoWlBGzhWqQdWJU4UgSZZvwaWFLQ6RypCMHVaja2OFgOyQnlAMGMqUWhMakSutyZUmNVh1LMLcS4OizSn50At2y30h7UpoZeYxmcy19HbcF9WOaLUGwkYZoeAMWdaYSa+ziidnCC1VkS2sJIbHcdPIwoQf3ug9lZtbC+595lO/9lY9EauyLGJ9XYJb2A+FZ+bwcAOslAF0Pi30UhAT8kacO+Y/e+yjinSnVnSUttQCTWmbMjdqMReLj34qSk5EVWgmUc1obOXlIszTMQb0fOpZ98pL3uE4P6YN4AoWcjeJC69S+wYQsgdBrEiTHxnBU52N3F77p73ySuR8QXsp4Hcx6eUPPYKgXAlX7r+/7+w/5+cMWDkF492Nr/sDvfDQixPuPs8TClyw61s3ioFA9GA1DN6QtFvT6rTkhHFLmAqlG4lL4YgXF2qUzuprjDaZs0cFWZfAwcbYmzA6DCqtVwRW++4OffEXX7rLVV9JzibRzfviib278IqD+EDDr4pfvftMBf/i9j54xFwQHVVoNk/cxGWIHbHY7jktlPFLuniq7beHK4wESZFEQKNZIKeYOa4quu2OIBAACgpeYU8SEeakRQpEEMkyDgqRIaRJYakWr46dCUWVcG5pD2rhY655HRkIYx8S2VRzhQGDBSMDQepBAO8/9dBJVHNFGbSN/7h89w91i9386Lly3MzbW3rj0Ak3+tQJmwaf3zrrYqPm6L36Ub373DYobk4c0qrWFQxkYVbi3VBaP9EJPia05kipOJqUBhi5pd2VJziSwq4VRMphFoqAZ8+wcXVnFX1+MvIabn6wsZhxfHchDzD9ukTrYhT7sFqVW40AFT8bS6fHihpDioKfBqqgOrdUzDxAIoL16mDtL6v2rFmECirE4YAHi+uxQjbxO6JCZ1PBVZjpekw4SV46PyBNsNsbm9o57m8pf+N8/GH+nX9zXwazzMU6HfNn7nmKdAmDCz/c32oMvaD0BTgSaBYtLIsU3EzJFAWwx8qSdUQPaIA19Pu0m73jMTc33Bz1nyD35d3EoFkbyU1T/oODddsHNGLs8IvIEAgCxFrPM3dsVQ7h6FIzSlIXWHOnAWhbYLHFAaXu5mhhzi01rVigWv6u0wPT/2v/7qy/pel62dRFeXn0dPfEOHr9+QE4hcRENRYO4E2LkrmxQ0LOZThhShDY5ARSMSfAOoqo6yy7q8/AwA2AuTDnk63Zvw8G1A3CoSpfIEt6NEs2DAJkEzIKB1cISQD1SwZPGWlqrhzG9KtKMux/5FNff9AgyJGZ35uYMQ9hFtNMdB+tMa9FUMA8FhbXG33uV0wovW329Wnv673jfO6iqlKUyDEqaE+UwM41O7qbq1btSR8BK4fRWoRYBBlhlppUyjoXiLc5rycN83ZzttjFOieKKiuFNWKqRhwDAcxaW0tDu+7b0PdKoCXFjqc40OkMTLAmFCJdoFimztQqlhdH3Kik5hTn8KN1UUGJf9h0fiH37fs/04Ln/dc+s+8crs6bZ/w4lY/ydP/q7kXwTLNbFW0sl5REEVnRiS4MmBUkw2AHZhDQKUisgDDRWKMUWNhp+fqtBOa1KXkDHxsqPUNshKbG0SpGCtYGcE9vaqLrF7zSqrZiuONmUkqMWKg3xONc2ayRzEoZaoqCIKN5KAHAqlBr+leIJLDPLKW5Kwcko1C1ZR7g9wVVjZoe1Nd/9azt+8tlTwr/mxY3PKzDrxRjAv6DzfOEw+LCu9MMed//hMjYl8T3OHiQXDklZlS87Vv7i17+Rw3UKU9qtMI0djOoGjmUBHYJaD8K8U45Gpw2VZp0lk/Z0dzCTM4aNObSqjBmm0Snd5yERfjEm4UORGUjauD1X/sjffoaP7xpN7Nxg+qWMLgF42DNfn5he/Ehd6glcsImPknsw2fC+18MLmV3nNRy+EAL851/1ZlyU6sagob9vxIKXXFh6B3wCdkTSSYWYGHeCjg7SjfVEad0ltXrDW088JA6OdXYkw8EYEonaPSWMqMXiwve8Annhfly2+npw7rrY7XrYpuFh48F5KQn82+9+lK966zFGQYDijRurFXeeb9TauHZVufmssM6Va48KVQjmqCaknwa9NuqSGAfwsZAsh8FpEtxD1ldqr9dizA3I4T1CiqCKPITXX1mMlXYJ4KZwayukAyFnmBS2LTbjKQkTwtxDKgDW4WeFE3Kk1BxNicUqrcHPPVv4G790l0Ig/hclhGcA4QPX92HjtQRmXUw1vA8ol/uv11/+d7+IISWS7JgW5aQWjnRgFOG5yNNiuykMe1Nr1TP2Qh4SKSmmSuobekgM6uRktBLy5XnXODpasQC5KpIMSc7J7R3zRkhjJq3DBLx24+ayNFqBNAg6KmrC4i2AdiLNkAopS7CvzGke9X0GFnv4cmlyrDWcHI0hnEHDbwSH1hqtOCk7qfvRWVaGlXCwXsEg6NHAE9ePuLdp3Lm15Yc/8HF+6hdivtsHpVy2uevVWBeP3vQkX/6eJ2IjLOcgfBCXgr0kHj54WfwMsNqHRiDdWqEz9nBHLdJ2fR8WQHgkrXI0fIwu/ds5w0qYd4YXePx6Yl6cnAOwN6OHVIRvarMAPdSdxQlwtc/Tm9NKLcK1q0pxWGVwhF1xymIwBAtLBQ5zACzNhCU2dJhFMymJ8wu/cZMP/tqnXtJ1vGy1BS+vvlLKjNfexBc8fsyQczd+3zu9+vl+ySMhs7swkHv9BJgf0kMQUo59tyZBtjNpPUBtHZiIsBzNiWFMCNJDlRRzY0pCq47kzJD3TYJoxNQSsrI8JEQiuKAtDXGnEom9dvMex09c5fTWPY4fv84CLLUx5Eja1LaQ0oDslRrV+Pizz/ILH/qNV/U+wOWrr1dzT/+2qyv+w/e+melAaW3BNooykg4aJiEHDSaBgCviFS8Lbde4d0rIilHGo4Gr60rtMq2lOsyNYcpUNWrtqeROJC1iXL0xcXpzpmxhOAwLEGswYpiG/1ZqgqtQUvg0ZzcMqA3mEgCqTBEaMGjIX5PEz6dkfPtPfpLG/Y2/i+fcV4oBXLbaglevvkThOplv+/p/lXc9ugG23LYV7rfBV2TLHFDZqLB4QdKImDAsa3SaKWXD4QTiK8Qa6o3mGfEGUjmlMdoVxtQ40kw147QsjHmF20LVGZMVjjO3YBDOn7zH+tEbJF0QlMULxZQpG6VlGJawhvCBgYVNFfIwIK1Q2gBpS/aRUmamiDcIFrMbKi18MD3hFsza+Xbm5vWB7/jHt7i5m1/yNfy8ArNExKMDd//3L3aZX/ikswf9lg7pKThCdP6O3fnKN6z4E190ja986yEHY2OpiaUnksxFmZsHYjmAJgvJoYbJdutUv+TGx07gAx/d8H/989v8wh1joeHG2eb9s7yyCw/67Ib5n06n+vrE9NLHXnrY/9pZ3V5MN7w4XjyL6/yevuexFV//rschGzRlEYLlkKA1ZXBjh1MXKC0oo96ToObWgVMAj/S86pGop116wezkNR1IlX5w5Yz18d0f/Pircq0uW32pqu/nqItMu4cBMPt0w/sAB71/M3Fxc7F/jCbli69N/PHfdY08jmBw89nCo0+GUfaQgj2XUsT4Os7SYACsKnlyqliki3XJhvVDpHjFGKKTMweLNGel0tlOgKgEK6H7SAwanb+TOwUrwnRFMW8smkitxfuV+Fwcjs689G50MTYm/N1fuctPfWxDoR9oL7z3B+eli3T4s2tO94R44GevOTCrTxQPAlgP+mH8l1//Tt6wNq7lxG5xTjtgqEmprXZPKtjWSE21WNwYsqPjQEvG6AlTSDUmhJaUNUr1QjEo25GDozjk22Lk9Ygmoy7G6Unh9F7DmrM+yjSHYZCQvUoETQjpDDCrwXfGSTQ3Uv9eV471PYGzNMFaJDdlMsULxRIJkNQZHC7s5sYwKNq7kAjkacS1Mh2MaB5hhPWVY77vR3+VH/+Zh891l23uerXXxa/9hvfgGqCAOjjWWSuRUCSEdj11hotKGKivxn3NBgtZC6QxHreXwKjEvcxi4ZklsNuzsQblznOFa48MZAGWaAGMKQ6DxTnbSWo3A88SjR/zkAlmApi/9XxDV8q1w9i3WTNSjnCgavH6phQMrdIiLbq28EctLcDa7/3hF5dgeHFcttqCV1Zf09ETfMGbHyOrMmhCtHuoRVRE9yk7Q7XJEGwoj3sRMkEhEYDlNA7hD7lUhtUEsjeTjyTy7IQpeFJ2JTyQcPDSUAnQXySzujKg++emPp94SNCGIXH63A5sYXV1haKk1Yjc3lIOJ+ZSQ3afIGdo3r0Pe8DBD/zoT71KV/6F47LV1+dyT/9nv+YpVpOz3AXGERtK7JnMg9FZJcIGeiT13IQsjbJUbt8Wjq6P+NJIY2UcVuCNyvlBzvp5L6uwLQn1wrjqlg8a85N4GGejETghwNycSRWvxtzDmOrssHJqTQzJSF1RQTY+Pgvf83Mf72dVop73Z5JXAcTaj8tWW/Dq1lfnuHAkh/xnv/ft/L533mPTHDzRfMehXcXTjkUSpVZympAyQXaqzgxNGH3mKgOjC6d6ysYnqm+5ziG17bCcaeLUnTCsQnVTW8UkIx7ey/uE1WwL9ZnMwdWBjWp4c80jV8fw6XUXqhpFw/JI54ZqJPpikCSxNOGwCtocswnLn6LpSGsTqoW5FaaUuVeVf/iRxN/+8Etr7lwcn1dg1pnvjJ9/6OAzsK1eznhRgNBDnvbZPvSy31r37dIDNDEJvVF0kCQ4O95pB+IvlJoFSeyFFNCHv4agy7/o93XBR+x1MOvVHRelh7Dv350bxT/4f7gf0FLOa+H+n++ra/87hetr5Y992ROsRUmd7YAJdzeVcYyY+WItOn5kqjcSsUguEo+fHQ6SUs0ivQVjPSRMuqeJhtRiEOH9H73Dh56+96pcp8tWX0mTnzM8+/17EFx44N/7oUmxHhUNnEkU/cLXFz+mgU8IB8n51ve9hTced1Nudw40hQa908obwiAJb05KDSQh1s7As0RDyME2tQBGWzXSOHFq1t+PMYqzA3BFUQrGemxYy4hVEpnbzzvpauI4tQ6WOcOQMW9kUT62SXzPT32Mj2yE5mF26ZzPaw+auZ+/4QufhYeAWnD/3PhaArOge2fxYtZJ5S9941McDcZSjXvuJE90+xfmbWHMwq45OzNG0UgcFGeaBhxjShlBaTS8CUkaOWUMZ1eNcgrjYYr0XTF8yeT1AFrYVYOlcfPWjNvIlesJUaFRsRoAgxObc3WnaIAhDaFaYxDFBHa1khWQMKpvJtjiaIbmoOrURck5AHkEyhxg2bRObGkkBzSTtJDyinyQ+Ccfeoa//7OfHay/bHPX52pd/P3f8B5UE+ZhpO7SwQdiP5SlJ1d6SNzTqGfphoMKUqPxZ73RIh4Aa9awghhSVL01R1QYFe7eqawPBo6vKrbEnsh3oNM+eIf4nnswT4PoQ+mGf0m9f56ck7uNZTGuXh/D663L7mMeD8ZpaQG30qX/ZpEw/D1//8Wbvl8cl6224JXV1zCskDTxBW9/C6MKQ9a+JobNgkGXt+6Nr+PeJaImcop072r7+xsAhIpQt/2etkYjgKXVKocVlznDMISspjNU6VKznJW6nWnbgmvCNTOuc5jLi1NPK8NQGVZrmipZwarB3R12NCDDQCtxMASnLQuSBrDKD/+Tn3k1LvmnHZetvj7Xe/o3X13xH3/lm/E7Rr6eWLYBXAFUD/kq3U+vLDBlMG9sN4XdJnF0rKQsJFVMwmamSKM1Yd4FuzN54eDqwBKoOruekIo56w6YFnEWi6RX2TppgKVCFVi2guaGdD+uUWE0xdT51Tszf+tDn7pwyNgfqs/ZWf06vs7Mesh4NerrwWurkhiT8V+97yv4V95wQtUNtSmDDqxsh8rIZM6JKUOb8TZxcrABG1m5cdQMHQa2VtjUHT6sOCzGKJHSadpQGTGpnY0Ms4XwrzVBkrKrFalQb23IR1eoad8kKrgaWZR5EWZ2jONIqwJ6gnDIbjEqM6rCwXII84YpDdR0SpNEY0Vhi6iwq8r25ID/4v2vnATxeQhmnR/mP1sZPchs+a3/JH0GZOwCYHQfi+sCy+xheuW9sfH5rz9nV70aE86DL98+ze97fWJ6ZeOi9HBfJWdMEl5wVr8AUvln/f7+Z5z9TEgqfOkT/NWncgAAIABJREFUE1/95htMqzCID18QoBt0NxpYplBxFBVn69I7nULbNNLayRK/zyw6hdsWDMLv+cCrw8qCy1dfwczivonoIhh19jW8NED9Iqj/gPfWvqYEwUR5y5Hwp973JNdXYYBrpTJ6jrSS4iANzEiaGbT1dMow9nZ3MhUYOJkrq6ws3e/BB8Cc6tEVV1WswpUjOZOYGeC7xL0TGI4b46R8alf5sV875Sc/eop12Pyh8/V+rnzg+uznw08HZD0UGHZo/toCszRORZ/WAP6BR/NX/tA7KRUaFsECJmQXltrISTitLTxjajAbqjrrKZNEyRoJTaoBIow5gTSSwGlN2NJoVRhXSs1EuuWc8HUm0ag03Bu3nmusjnNEQidDWrQBzOwM9C3e35s6tcZcpM1ZBA6nxNYCTPDWYq5KRpOMaKLuArjPY8Ib7ObKtI6/Vx0kO4nEz/7LW/y9X/zES7oXl23u+lyuiweHE1/x1e8iacxUkUMXI/VPrTVDCPlpxwxIdG/IbvZOXzdTZ7CIhoFyJMeBlcYwhBxs2TqPPzkimsAabTHK1iCfA2pjChBUE3iLWWafnyJ9y6UiLOac3G5cvZ4xN9yCyUyK158EdqVjYmaRNOzOX//h18Gs/Xil9TUMK0QST7z9bRzkTO5G/EgPp/EWCZoOCQsDd1ESARh5S0iCStRPUqXNldUkDClHkmA1GBUlkXJUqjqklM7+VusgaFLFa4sGdo5qzl6xZuxOF6QZN564RiHkz+6O7Qq+mRmOx2BPlErSkOQm4ObtO7z/F19ezbyUcdnq67dyT//ffNXvYFiVaNS4MZuSpUXwg8XJLuFh2OHOsq2cbuDoxohifd5rVJztLnyYjwdHhokVsQda3DBRrr9pxdMfPmEaJOSKOJsWvrh2z2gJfDAYM7Y1SN2WJCltaVwZYh79tp/8xPl+9CHA1SvxyHpwXLbags9dfUm3Efkd1x/nv/0Db0a5ydKEMRlHNjBVZSOF3SLoSpAy0XJlsCXWUcskaZz6hiUlVhZJgdkyre6YpsxSRkxPMUo0r21NtR1eB1oWSivIYszPHJO+YMtSlCkZyTXk8wjFSzQZ92twXVN1G6z6tqBlIomGz5cblmBpShFhWJQ/+ePPvmrX7PMKzNJuorwvnzN21kVGQ2clnLFd/OGb9/2G+LMCXi/2YPkyGV2fk98nHcR4Sffs4X/wdWbW525k0n3g1UUA6tNd9wj7vR/Qujgedhf9ga+FMNE9GhPve+qYRw4HDlLo+UEo1qiSEHGWKoiHKW9bGgzB6IrDpDJgbJuxXeD/+eVXZvp+32u+ZPV1ZgB/Ye76TKys+1hYD4yHspMe/B0XALKzzclFEKizxN5xfcX73nXIl1w74upQmdKe3ZeYW6E26VRkZz10M3HvCazZEDLVnFIbLUlEoGsEVIQPjnJS4eN3F77/V5/n1282Wrtf2vyZQPgHf3axKs7A3weYW/vr9ukq6DXJzPo0rL+Hjb/wjU9xkBO1FZpmKA1JUGp4HczVzhhSca8jQQmpNDKrccAtUiYGUUhCcmHngjZjewrDUfijyaB4q2hRGISmjpKYd42Te42Do0jRMQsGaMJwFcQaLlGPrZvGYxlSwx0W1w5kGK02Uu51khNiQtkZmgQVxyxSWYchMYvz68/c5u++Arn0ZZu7fksYyyp87Te8B5MAtToppc83DdU4sO3bNoMIuYHnmI+yxpqGhwQH6/5aKsH2quG7hji7u8YjT45cvTJRSoPmzNtG3Rk7M4Yc3kpLNapLGNELwfbxPai1bz2CN2Nzz1gfZ1SM5vH6rftJujrbwhkb9a+/DHnhfly22oJXXl+qSk4jjvCmL3yKUYLpkiRYm047Uzzonr0uRMCEBIvPPHxpVaEulXE1hERQwgC+nuzQw+nMNzdpYpBgeXrKtAaiMQ+l1P2yWshdSWEgn1Som8ZqBZpzn7fCzlZKo51sGQ4zjBPVGjRINH7iZ3+Z0+1L95B5OeOy1ddv9Z7+vU9c5Y++5zEKULySPTyUW6nkMaHqDAjL3JCcOLm3sGyFg6uJrI0sidmM2hpZNeSzWVibc3dRpgPHzWiaAmwQIXkKJrsTTScLhmizxFwbB2M0Lx3BJLGioVn48z/x0X5GfrikUHowhvmrQ5a4bLUFn9v6EiEsPkT4lne/jX/nSwcGQM0QTRQzyq4wrv4/9t40Wrbtqu/7zbnW3rvqNPfe1+mpf0hBwgEExAQGWAYCxCA5VsDDDoNuxAkeOMEhdoK/OIxkJE7jxA4jdpQBjk2IMUS2gw0M42AMkcAYotCZgADRGCFaoe7pvXvvaar2XmvOfFi7zql73rl63T33vXM0f2+8cU/t2lW1a+1Zq/mv2fR0JvhKkcER1hQpqA8kjjlWpVrHYJVFFQapeC3kYcmqHuGujA4iCadSrOLac1ycrsLhzSMyD8LebRAnMTHpQJ6giKP0rNUQnxiqUr1QfWBZjOPuEJsySQsVbQWnvOd9tyf+q5+5dU/b61KJWSIyX62cCFjn5cs6EapOFm/t34+aW+tpP5x7K1ad9wEbde0evNXzeZ/tXE53e5vomO4daRaRNv55GyF2Ez2/4U5vrfPL48qZm9+8c54uM9r267cdYBQ/uQpjk9i0Xd/muYY94094Zlw1+0qqp1lpZ54ipJ8cOL0Ld97zdsCFk+xr26LnHWF4nHpmnXzwdh++fRLn7Ma5z2KBn4pCvrHRuYeQ5oklbJ1z9gvi5/ZHT1vBcevaNouPk6+x3VYnT56+wM+8zdl2rx9jYhbM9qLz6Lm9GQRzgm05aScFPu/jHuRPfvoDjJO2KodN08LGyroaosLkbVJ1rMKOtPx5AxnvnV6FjFCKkVLLhyQOnpU6VaY1DEtYCaQK0ifWx5VkUFLzqHniySNsGljugWZtOdVSE/TV6zwBM6okrM7Jbr3lmnTPkBQ1I1M4Wgs6JLoeJCdu3ap00sTWt/7wu5meS4GUu3DV+q77PS6+8Qs/kb7vZo9Cb4t6oXlEeRuBkkAyJ3cJ9+bXmUVJONWlVUScN13EZ2+vYuwslXF0pFOWy8Ry2fGql/R86CNrFHjyoDIdTTgtJHC0VoVwI5ybt7HQrL2nzInipyqsbk90y4xoy82ECtPUxvK1QTVDcf7BO0LM2uZe2VfXDc0PudvjVY+9vBWnUMdEWy7H2srCt0INbWwTaWGpWecQ0eJory1MVJpAKlOhW/YnI6nP42OGlldtUCZvI7KLkKTlOgLISRltrmBeoB4csf/AHoeTtSp1tKTdyZ31wUgtI/3ezrzJafzIOy82rPAsV82+Xqg5PcCXveFl/IFHdknSBKgmrLcxa1Ug41Sr2LFxPGU6h9wX8jJRrbYE333C58q+oymqlSE3m1o7DEPPeDih2eg7wdZCcWG1Ehgq2Vtl1zlzDSLON/30+zGrJ3PHu4lU9zrS56rZFlyMfZ1Nui/MwlZSPvOlL+M/+sOPseyfQLRQDgplKSzo0VKoTORxn9IdIGLsac9oR3xkajn49lmyYCQzQHVWcgxF0D6zroWRkTp1SDLWk6G6g/mK9eEBQ7nBtFcYLKEiWHJqrZRiTPUA4xq9OJ0URi+twjqJaTIqRp86vu7tzz0n1tNx6cSsj/b8ZoF3nofVWa+F7cXTU3atz1tcPYOv/9Qf//YLz0oKd3nTeymayba08QyEsjOffTfvIIiO6V6znUvrdN1+uvt7p8h0yt2OnfU23EhSd3vteZ+x+fztiotsXVO7buaklfeWq2ZfSdVP7su827JJTg53ehGdiFJbz+ldPC3PJkM/OW9b9Dlz/tP15Xfz4jnv+Pbnn9Ggnup5dnaQPitOnXON53lmbe8iypm23PbM2rz2rLfWx5pnFpypari1b3L3cdL5D9/4al77SI9PzpCV1ZwAeVobR+JMCJ04lhSrhZQzgwmyABVl6U2BEKVV16F5cU1jE7O6RUKG1tPUYpg4Xp2udmhyajZuPTlRJkeHllvE3MnuLYyRVsBARCheMUts/8ZMM7gxaKWWxJiFrne6nPhvv+eX7mn739GGV6zveqHGxc9/8xsQybgbSXR29jwdD/Oc16rOfUqLOG2VBJ1W1GSTT6sWowNSavm2jo+MnWsZTcKjDy8p1VmPBdyZxsL65kgRpUvCaBUzgFb4oJW8lxO/ap/FMnfn8HZld7elEKjWBDEDJnOqOYfHhR9853uec5tcNduCe2dfqomc8vwo8dLXvpadpKCpafXis57vsycV5FmQZ87FZggqs5CVgKmSkiIpoRgurcCEShMGhpQo1SDn2Uu02UICutxCG91bhenxYM3Ofodo4shoiear0XWp1fo6nHAvyHLAysiP//Qv3ItmeVZcNft6Ief0Gz7x4V2+4lMfRTZ9kjhH6xam2uKaJx7/iHHjRssR2ULdZy/UlMml4AgFWuEdbQJVPRHaW5EBRDk+GsnScXzcPMG6AbxK8zhFeMfvHPCz73uyfezcN5694y1/99Ym6T0Sta6abcH9ta8MuIJLx9d80ut40xt6lnJIyRNiuYUrl8RUKrt9ARcyPSDcqrchD9QR9lIll4TYhOcmlE6SGMuEWct9OsmIeWYqI1YzVSr1Q87eQ7uYjIiOTKatQqY4hRErmUEBE9be3B/cKl4yP/r+iX/46zcvtH2ulJh1ls1umt6xjD+zMHo+X+teCk/Pl7MC3fPxQpsJMev+k7ZErbNC1XmPt/NsbY49VZR6qoy6zR1OLmdee7ZBzkqy99oj6+Sarph9baoZnkiBTpsR26nwtC1YnTfBOH1wvmB0Hh91121LKN2++c9UzNoWp87a4Nlr3/YYu3OjYPb02xK2tl+3/X3vdk1nP+e8z95+v4+1nFlwKmY9XfjqHc85fMPnv5ZXPNAmSdW9VQycCscFpqwkF1SNISkuCTVnqgXtE8usqGRc2kjSS+K4FsaaWGRjXBeG5YArZFdGcagt1KJOQu5aHrZbB0ZZgyxtDv1pOUk6EaDtUpu05ODVE9Ur1JbYuZUwd544mvjbP/mb96Stn46r1ne90OPi5/6RN5D6TDqRG1qCbnGnU1B8FrTa2NTN/ZLOfUvSlhOwzyDV6bJwdGDs7GfMncVy3mk2P5kx2liwqS0omYVTd+i9iSIObJwdpwJTbQtLd5hGZzmH9lSHYs2jq1bje97xK8+rLa6abcG9ta+uGzjdhhNe8fGvo0/SQv+sbem5eHt2NpgkRi0g7qjm2fOqgnlLzt1pEwu8hdyr20n13i4rUluibZU5FHouHJByImOzd4WyvnnIzo0lKsrRnDvNzRmSImbUySkHR6Sdnh//2XfdqyZ5Vlw1+3qh+65t/txnv5xHdhaoJqaptIITVhGUW7cKuVN2lq36aZdazsmxwnJQqhujtzlin5TjVSFlpc9KUmEshjsMDsfHhgwtGfx67aSkHI3wv/7c77Gu5SQP1iYVjW9+CzNnww7v1TL3qtkW3F/72nhoGUKHIKp85isf4t//1z+Ol+7eAoxia4oZQ13iWjGUhUwcuTO5U21iIcp1XTJNI5MURBaIrVlPCUkVqxNrt1agh0wpE67KeFzJtx8gP3LEVDum6YjcOSI9lQkbV3TsQzpA04LDCX7gV4x/8jsfuS/tc6XFrLuhnPOdhbvm13pWPJ9f/l1eey+EqWf6WdvHQ8x6YdDZQj+aqHQ2d9Y2Z89/uvf6aOff7TWb4zXErGdE0rTxs5qPnIaTtodb3konx86IONuKI6d/nydCbj+/zVPOOfvE5qHcpS88e50bQW7rTZ9yiee6AG2OPbXjPfv6zYG72eVmavaUIghbRTa23/tj0TNL5zA/eOp48tEELnD+x7e8HpJjo1GBzp3RCocieBV6hN0ukd1QUVZe286vKH2vqCaqGb3CqjiTJYakkIWjI2Nn0cIKJxfKvIPsVKYxk5bCVCu3H68cFyGpoQn6LuOj4VUp3nJ75aF5RFQcq87taeJv/thv3JP2fTZctb7rxTIuft6bP6V5aClA82CQWUyX2dVQpBUCsFnMSuLzdnZt3s/mdB2Uo9bndIuWxyYhmIBi4M1zB3d6EaQ6Vfw0mXfXxBFoIsg4GtVOf1OHB7Ulkc9O6hTzJpQVq3zvDz+/JN5Xzbbg3tqXiJBz80ZocpayeORVPPrAYg5VTUhqQqjM486JiFmFvgNJyjR7HIgLaU4ob/MIk2jHEG02hre5sjQvvaRt3BFVugRuwvGtkX4JKWVyzlScAi3Re1JUhXo4cfzkLX72vfe/z9pw1ezrxdJ3bfNvvOYGn/9xD1Ct5eRjamnfD2/C3rWE6Omc2t0QEgtxjt3xpCRgKo6L03XKXqccHAmUSqqz4p5blU0M3veE8Xfe/btP2fg7G2Z43r8nc8zwzDqXF8q+NulDfA6B/9cefBlf8Wkv5RNeskIEajlAulbRRAx64EisFRAoE9fKksqE5DWJJWU94lmwLNh6RREh2YKVF2oxkB63kdWHe+SBW83bXhfzpvgxx74kW8bqETenBd/z7mPe9eFbjF7vW5tcKjErCIIgCIIgCIIgCIIgCJ4J+vSnBEEQBEEQBEEQBEEQBMGLgxCzgiAIgiAIgiAIgiAIgktDiFlBEARBEARBEARBEATBpSHErCAIgiAIgiAIgiAIguDSEGJWEARBEARBEARBEARBcGkIMSsIgiAIgiAIgiAIgiC4NISYFQRBEARBEARBEARBEFwaQswKgiAIgiAIgiAIgiAILg0hZgVBEARBEARBEARBEASXhhCzgiAIgiAIgiAIgiAIgktDiFlBEARBEARBEARBEATBpSHErCAIgiAIgiAIgiAIguDSEGJWEARBEARBEARBEARBcGkIMSsIgiAIgiAIgiAIgiC4NISYFQRBEARBEARBEARBEFwaQswKgiAIgiAIgiAIgiAILg0hZgVBEARBEARBEARBEASXhhCzgiAIgiAIgiAIgiAIgktDiFlBEARBEARBEARBEATBpSHErCAIgiAIgiAIgiAIguDSEGJWEARBEARBEARBEARBcGkIMSsIgiAIgiAIgiAIgiC4NISYFQRBEARBEARBEARBEFwaQswKgiAIgiAIgiAIgiAILg0hZgVBEARBEARBEARBEASXhhCzgiAIgiAIgiAIgiAIgktDiFlBEARBEARBEARBEATBpSHErCAIgiAIgiAIgiAIguDSEGLWs0BEHhSR7xWRQxH5LRH5yrucJyLyV0Tk8fn/vyIicr+vN7g8iMggIt8229VtEfk5EXnzRzn/PxWR94vILRH530VkuJ/XG1wewraCiybGxuCiCNsKLpKwr+CiCNsKLpKwr1NCzHp2fDMwAo8CXwX8DRH5pHPO+zPAlwKfCnwK8BbgP7hfFxlcSjLwO8DnAdeB/xz4LhH5uLMnisgXA38R+ELgMeC1wF+6XxcaXDrCtoKLJsbG4KII2woukrCv4KII2woukrCvGXH3F/oaLgUisgs8AXyyu//afOw7gd9z97945tx3At/u7n9rfvynga9198+6z5cdXGJE5F3AX3L37z5z/O8Cv+nu3zg//kLgbe7+0hfgMoNLSNhWcK+IsTG4KMK2gosk7Cu4KMK2gosk7OtOwjPrmfN6oGyMZubngfNU0E+an3u684LgXETkUZrN/dI5T59nX4+KyEP349qCy03YVnCPibExuCjCtoKLJOwruCjCtoKLJOxrixCznjl7wK0zx24C+3c59+aZ8/auWoxqcDGISAe8Dfg77v4r55xynn3B+bYYBCeEbQUXQIyNwUURthVcJGFfwUURthVcJGFfW4SY9cw5AK6dOXYNuP0Mzr0GHHjEdAZPg4go8J20OOivv8tp59kXnG+LQQCEbQUXRoyNwUURthVcJGFfwUURthVcJGFfW4SY9cz5NSCLyOu2jn0q54fq/NL83NOdFwQnzCr5t9GS+f0Jd5/ucup59vUBd3/8gi8xuKSEbQUXSIyNwUURthVcJGFfwUURthVcJGFfW4SY9Qxx90Pge4D/WkR2ReSNwJfQPB3O8h3AN4jIK0Tk5cBfAL79vl1scFn5G8C/CrzF3Y8/ynnfAfxpEflEEblBq0737ffh+oLLS9hWcCHE2BhcFGFbwUUS9hVcFGFbwUUS9nUnIWY9O/4ssAQ+CPw94Ovc/ZdE5HNE5GDrvL8J/GPgF4BfBL5/PhYE5yIij9FKpX4a8H4ROZj//yoRefX896sB3P2fAn8V+BHgt4HfAv7LF+ragxc3YVvBfSDGxuCiCNsKLpKwr+CiCNsKLpKwrxm5QiGTQRAEQRAEQRAEQRAEwRUnPLOCIAiCIAiCIAiCIAiCS0OIWUEQBEEQBEEQBEEQBMGlIcSsIAiCIAiCIAiCIAiC4NIQYlYQBEEQBEEQBEEQBEFwaQgxKwiCIAiCIAiCIAiCILg05Bf6AgBEJEoqvkhwd3mhr+Feo6JPsS9h8zUd33rsODI/9vkIyDn/QlLlG9+0xzKBVUMmxQxKdjoT0kpwg7TvdGJMo+KdoxVMnE6Uqgau9AoVQ0wRh16dSYQkQHFs5ZCVfnBqFXpzDo5hURO3K3h1tArJnYrSZUMcVCBnY3cfEEey4CIYYOr02SlFyJYAw0j8qX/yxPw9T9k8OjWO0xY0/Ez7ycm/m/bdYG5Xyr5e7H3Xp7xsl6/+jIdREo6yMyr9TmWFI67YfM/XVuk1U8wZEpQkiEAVyOIICVelqKBZUZS9HaXL8DX/y8+zqYorIu3v+aey6U1Ofjlza9n8O9u2o82Jm/OMZ9e0V7HveiHs6+Qe3nkUEWV/WPLq6x2f/aoHeLi/zVRW9N0A1SiiOIYqJEDSRHKlGEDCbCTTgVbcATE0wVBX+LLnyfUOH7iV+KH33OTxY8d9zZYpsbmkzeN7Tc49pYx3ff6q2ddzsa2c+tPXpz32P/5f4aEB1Dc9vYHJfJMckXZoc8e03UkUQRxEDEQQN07HVUg44uAIGUNUMbf2WhWSJNwdFcMNXBVxR1LrT7R9P6Q6rCe6vR5zBxTFSaK4CIvWEGRvnzuZo6pUIPXCVIE6j/lCuwZNrJ5cs9jLLLqMiTNVwQ9XDLs9yy4hONmEolBcmah814/+5F3b9arZFty/vms57DQDnGdu+dV/iC/+3JeSOe3LskBOgtRKL87qI4f01/eBgkqz3bEYSRwzYZGh1Nb5pGR4FZIbClh1xnFiWHaoNvO2ySCBVOhTmzuqGMfHI0/+/hH7L13yrX//h+5Hc5zLVbOvF/u862OJq2Zb8GKyLwWEV+0on/ZQR/WKuiAKYob0GTXHAJc25ogA1XBVfB6XpTppkSlTARGsGrW28TB1bXTOKm3tlmHoMsmEt/3arRf028Mzty956qT1/vPiMZzgKnZMGzFL5slO+3nfKbqcii/btAnSthyzEWiSJr7xj+yxg2DZQB09VkSdgmBjm2Tf2BdGF2q1EyVIvYlPXRaqOtkFR1hVbxNtlGRCyoYIJAeOlbzjqECpkCflidtO78qkzuKaoUmQ2r6NGpRRKIdOFsGlTbaGBfS9I53iauCpCQsOJEdM+J9+6oif/3A50w6nLbAR/O4UuE6PPFX2O/27hph14bz+kSV/9o0vA8C9WWzCEcsUL+xmWIuRRECEqQqTta+RVBkFeuk4koK6IgIDhdp1mECXBJ96+v3EztL5kZ94H//Hz3yw/Y5OxhMFDBdQpNmYCPPoeiKAnhiDgPvmt9i4UwZ9eq5i33XR9rVZ7G0LWCJNhBTTJiyI8YWvfYTXP6Ds5EOsgNUFooZZIfUFZYEBohO4kPo1Sgc1YQgiHUkqk6zJNdGlyroWVBO9J1KaWBXQuiQtjlmnjg88vuT73/s473/SKWrkShMZEMqzsI3zxbm7H78bV82+nqltiQhJO5h/ww7svPqTeNn1bv7N0oRr24xxjopg3saz1sZC0jbOmDUxSzFUBFXbdAvg0OOgSlJHmbsMb2OfeZt0Z2XuR+ZNlFk4SynTiTHWJpAldezYSDsZSUonTSgXV1RAq9GroLSNHnPFpW02mSiUJm65CJraZyaBJx9fsbg+oDg5KSJOXWdyOabb7+mGgbJakxDIiVV1PnjrJm//F790bhtfNduC+zM2LhdLmtDemq9/zRv54s99BTkp1AlzEHeyghRHrWA3j+luXKNLlYrjpSKqVCuoVQQhd8o4OV1WcEe9ogiLXlkVY3WwZrHMqAjT5JCbGKrF6JMyuYELH/jNx7n2smukLjGtVnzrd739opvkXK6afb0Y510fq1w124IXh31l2lz7jS/fIUtlAKYqCEaniapG9rYmrQLihjJv6mTFahsTvRh0Ca2Oi2OprQt8cspUSZ3Q9RkRxdVhgrRQrFQSxm8cGD/9gbtv8l00IWYFz4mr2DGp6MmXOhVgTj2JNo+3/z773PbSWkX5y390n5U4y2qgbbkuprjBCOiB0D9QsZKax1URurxRzx1M2kQrCaJtx29sW7+4CY6y21vb5atCmQRNRldhPcHhzUR1o99RcnEWD1VSEpIL6rVdtSmlGFaV41tKAjCn4iz3jW4Jrs1Ta+MN0yUjk/jzbz/kA8fnC1rbnmx3eradJ1/d+W/1eqXs68XSd/35z3sFjz0wMCSntJGNXmFdm6dfVliMYAtnbUJOIDYPdgkO180GsigrB01+slBVSaQkTAqq2naj1x27N5oofG3Z87a3/zY/+CsfORFGNgKpz4vHE8vYCFrcKSb4xpNj9oBonjghZt1P+2oLwtmDJisPLa/xpa/NPJoPODoc6HYTCcdyQbQACa9dsxVZQ91F0wqpHf1gGEeUOmClJ3VrVDLJR0atZOtRhVomFl1lXRPDqmO9nLCF0lchKVQzbvs+P/te4Z+/75CxHpEqFAHf2O99aqGrZl9PZ1t3eGEBLgK64MGP/wQe7NtPGQGvdjJ6tnHAcPeT37y6gzk5zW9mjojP/Y3gVFQUr22bpEuCiJO12aMZmIGqoygo9O2fE6cpZg9qnwecAAAgAElEQVS+lAT31oeIN9tQBxkn0nJAFXpVuk7blVYHNzqVJl5NTu6NVRUkJcQKRkIMcp9OvtPtx4/pbwwMKphC1kQCytrI48hib8HkTiftFQfVqOb8n//8fO+sq2ZbcPF913Kxc3KfpbvO53z5F9EdTuxf78iimEO1QhJI1UgoHN8iD7uk5FSvIBl1o5qR3NpGnUM/ZEopqDRvLmun0qliZqyOC4tFwswRMdoMzsml4KKYO0/87i2uv2Ifc0NUqKWSBL7l795/D62rZl8vlnnX8+OifIzvL1fNtuCFty8F9vrE5z6YsC4h1dHc1oY4iLaIiTp7j4oKU4Fe5MQ7WcTb3EiFLNrWlu5U2Ww8KevRSDh5SG0TshPc2rjlfcJrRSxhIvyDX7/9grRFiFnBc+IqdkxJ0mxf255Dd4bCnXps3SlmbXtrbTyQ/oc/voutYJLMjhrqxnpUEkYFprXi4vS7RoewOhao0C2Nvq0KcHHSpFSXJg5oxVXpk7Mem8fM9WSME3hRSoH1GrQKpOYCv7wm5Gx0Bwl7oCCpiWRJYKFKrU2MyJvv4cr6lnF7rW0SlpzlrpP79nlZIWUQE1Zr+Lofvs3aWmhH27tu/+nsPbP9951C1p2P5+VN20EIMeue8R//4Zfx8Y8sURcmN3IWrqEc1IokxaswurFwgERWoegEQCdCme+qCqwrVKR59CGgQhWjWQ8MyTmeXZhzbl4Ie9eFNcK1RUeXlG/5v/4lP/lbt9l4ZZ3Hdu9ydip30pJbP0n7GPacgWZfz9aD6LmyACbpePWDiX/ndbsspCDVMBxbJ0wnyEKio+bm2ZfIwJoiHSmNzYuHitBTq6NSqKIoHVlWrbfwAbqR5IViie44sVbBeke7iWwLssLkFXenYLP36pIPjDt860/8HqN7213chLJx8aLWVbOv8/qunPsz66umFghKfsnreeWjy+bR5JvftyPuLZxe/cSLyryFA4qBU0miiDl6kqXV2wgsG7ELUGnij5yOR25zR+DteFJBqCSkhYe5kMSpqqi311Tmt6AFFSYBWxVMoB86+k7bhN/bwqDa7BGdlISwrkYxYaGVrJnq0kLNJCEKaao8/qFjdh5e0mUldUoSwSanH5TyxEjaAckDWo21OyrO5MZ3vuMnzr0XV8224GLHxuVi5+R3j3T8sT/1x5luH7PY2yEj5F5Yr0ZwGJIiUpmeuAWyYG8HJp89qXBSlxnXE4pjDouuqbQmjhQnNyMma0KyMxVDzOnUGQ1wx8wZ14Why6xXI4cfWTWxcye3TSPAzFB1pFbe+vfecVFNcy5Xzb6uxpqxTXQ2ESN+lznTi52rZlvwQtnXxh7gc1/SsUvrbyw5yQVRgWqoJIobKk4SoarQTY6pzJt7beXad4oY1OSk0tLKZJQJqN7G7WkUXAr7ix5PUIshKaHzhnalrVVrnSjHyve9b3XfWyXErOA5cRU7piTJz4YKNi8R7sjJMh86weZwib/2lmv8J993ExD+8r+5z7pvLuugLJKRZxFsbUp2Z/2EojeaoECBTqDO+TuG1HaTB3UmP3UbzXMMQyfOVKEcCF4StbRQC/oWjrHYFRZLcK0wNUGuHCmmlW63heBkgUFgnJyc2gJBZRa3klCPhDHBzUOhrn3elRayNGEDn71mBP7Re4/4od/fdjG9U/DbHNsemLc92rZzI4FHmOHz4K1f+hpUhZs3E94513cKWZTqkCrk3ll65sgrE85CoFi7790EZYBjWshhp7B0QZNSMWoVzJy1Q+ft/atBdaVKC8VxAUOpyRmPlbQrLLMyZGkL0t2eDuFrvvnnmhC85aF1lm1XSQE2MUQnObbm1zybvFlXse+68DBDBBR2svIXPv0GWoWqBaPS5YKqsDYjr3vsKJGWidqX2Y19JKVELULXO9WcQTrMR7IYilB0RGqHpko2RdQoNK8rzOGgh11nzSFJFUlKGY2UEpN1qCZEK2OtOBOddZAqZvu8+4OZ7/3VD7GuduKhdZF73VfNvkTEc+q3XCc3quDJCYiA7j3Ga17zYMtv5Zt+fhaxADGbvSoVVQMDx9rv31vuIN2IBydemu2PirRJeWr3rkOZ13bgTvXWNSRtni+9Knm+zKm2XWVVkLUh3sLNihrMYRYLBHUBbRtHi2nEe0X7BMsdqhmdOHMEIV5pnmPabFTcsanSLTJowkrl4JZBmti/tqCg9LmJ7iYZMWM3C6vH1ywfXJxcH8Dx2jiuE9/xIz/1lHtx1WwLLljMWu6gaclnfdmX8Io94ejWEV3fgzl9B2ZCygmvI1md9QcPWN7YbSHyXki0DUfBsTKBdohX3Iw+C4bQSaJM4xyGKuReWVVDMCiVMhp9l6iA1wIufPi3nuCBV99onhMpIV4ppYI5nQjVnC45x2b84P/zi/zKb77/oproDq6afV3ONeP27Bj2rg9oMvavLxgGbf2Zw5NPjBweTExruNum4IuJq2Zb8MKJWW96bEmuFa+Z1DleWtoGRxD1eQ1HCy9MLW8k7piAzt7BpoKa4SKkBGpOyhnBqaNT5rHW3KkFMKUbHM3NUxpXTAUMqlZk9oQ+OjLMnJSF737P8X1rlRCzgufEVeyYNmLWU3NineInost2GJ3z1rfcgNnDaTLjdlEKztC1OOV9qRwXYRBYF4GxhQvu9JXRW8hDl9oudZu/V3YlNdEIbx4xBTRnfCysbis6hyYsr0OHkDqniFOOhMU+bTJfoGxCNYByU/G9iaFTNDmdgU0trmPorXlFmeMJEGE8BBsMTHniQGAUkrU2SiKk1HKGWHH+3E89eUc7cdI+zH+fSlzny4Knr4sE8M+cT37ZLl/7mS9HxahqdC6oCKtRGXrDxVkoTDipCK40L4UWOY+6YQjHxelVKGJUEfrUEhsv3ZhwdueFXnUoaNt5zu1OjqZ06vSSGMVYz+tZGzPdXssfM/RKnyD3HToIX/M//yLV5xBV2fJ03Aop3A5B3CgRJ/nrNscJMesi7Evm9rUEmjJf8pqHeMNDK7AJ0YqUHSoFSYKm2m7P2GGHSh2g60ZqN5JEqZ7pqpD6ihSnuuDZMDH2TUGMdRaSgVDJneOWMTNkpZAUk4Tlgs7CWku9lKlSMTeydlChuAHNe7WWiqeRdX2Iv/3uFb/z+K3T/Erz97zXU5urZl9dHrYSXinbqrPMAtADr/9kHhpaiEITZXze7GiTYWHjWWVtjJtFLphDHGbBIM/FTNxbsmzNQjXaZFtb/qokjszedl1WqretEPXmPdMpyGps4fzM4hWK9c0m2vw7UUpFk9KnZk/Z5xxdLiBKqU49LvRqpEd2m3jlkGmJca0aBnRZMYReFXdnXDu2XnN0NLJ8cJf93Y7j6rgmcKNnDtFIApNRbWS37+i6xPForMw5ngpv+9EQs54PO8sdZO8xvuAtn8FCnbJaoXmHQY2uzy2EsLZFXpcTxx/4CDsPXyNngVJQQL20xPDuTFMlLXKbIx0XFst0kmvGSkFc6BdKp8rRVNlEy7Ke6PrE6MbRE0ccP7li/+U36HrBa2WRE1OpLSYIJyHUOrEywceJvhduHa35W9/74xfRTHdw1ezrMqwZhYQzp/xQZWcv8Vl/8Bqv3BHcFZURPDMxNu9R7xAyxSe65BQyH1w77/ndFb/73iOmdX2hv9K5XDXbgvtrX4LgKvzbjy7xNFGsjT1YG0dRIZky0UKVs7awQs0KpVKN2RmituJeZnQ5tdfNa4bihU4F94xQqXOkjaqwWrcUNf0gdCrUArU6NUE/j8M5O6ujtoGkGVLX892/en+Sw4eYFTwnrmLHtF3N8Gyy9/NFrNNzv+mP7kFt1Ymqt6TuqwpJhak6KQk6VLIJNoIeKb7bJkBI4tidnc7pk7dwQW+ftJMEqs8djXB45KwPBVVl2IflTmGZhXIIpW+T8aMJ9paQ3Mk0hV1NKOZMR0o/gu44qW87y14gGeTkaBKKtOp00ESI4yMhL41aFS/QAVYh5U0IB6zN+Wf/svK29x7NbWcnrbMdSnhnyOb28+3vzfMRZvjRed3DS77+D78czU4vRrHUdkq8smnlhQio4a4MQFFIZoyeyGJkbQtTBTBnWid0qBxWWPQgqqzGOZ9LbbsxKrMoprAuHZqsFQ1AmarS5QnIzQsmJQ5Wzs5S8ASd9HTZSL3SdYLmzL/31nfNQbdP5Sl5tJgLoM2L5O0nIszw3o+NScFc+IyXPMyXPrbiSI1Ud6l6s4lTAmQj6YJkR1CGVkVn6pgmyPsrHMeTkLQFGhYqUgV0ImtLWDrpRF+VY5lY9EqtmSyFRM80ZWwcsdyReqPUseVKcqdqwrwHLVgVhAlJBnR0PjB6C5XNGO6G1o7fPr7Bt7/rAxyMI+pzLqV7zFWzr64b/I7umtNNHCTzmjd8MknmqoOzNxY4mMzCVW0VA3G8WJtkz2JWUmGs4OJNjNK5giECZpi3/FbmLbyPOcF7VkgiqOisAbQxkmmk0pE6wOY+S4U8V47DnGKtU0navL06UUSFUp0+0bxQrYUudp1iJnCwIl1f0stmxGrC2jh7nSm0EEmaUHvwwUNUjesP77Fc9hxPEyawzJnODXdhXVq/d+vxQx58eJceuF2d4s4E/OOf+HkePzi6415cNduCi+m7dpa7iGY+59/6YlSh6zu6LHQGy/0lVtZN+J4K/WKAgydIe3t4qeSuR2wiYZSp0CWlo1JMMBO6QbH11MKkh4Ehga0LNntVeZcwKy1s0B07Hlnudnz492+zXleuv/x6s39tG4zVWv/kBkOfOFy3MbzWlmTea5091523ftc/u9dNdQdXzb5e/GvG1pu8/LE9/uAn7/CQFQzDJ6W6s6C505t0FK/zzDqhapSyyXvkVNHWx7rxOwfCz77rNke3phf6y93BVbMtuF/21WxkkXq+4KWCJLCpRcWkJFALmnSOcAGxtqGXmQt9JUNyopihLliaU91461NSSuQ5fyRUDCVnI0lPcaeXVkDlcD3idCxzC4N2Vay2tShZ0GpYD+ORcXxcWey2fJPiyj98z8GFt1KIWcFz4ip2TNvVDLcr8Z0vbJ0e+2++6DoDTdBZyFyCucyhUOIcT9AvW/hfX4VpagEYQ9/CtnxULIGIg8K+wGhO8TZp7ya4fSCU2tzYdQeGHWNIfhJ+5UXpl8Z6EvrN5N4EMoxu9KKYGDYpdWpJvpMoVSpqeho6qDCKk5aGDq01XIXVWpBs6KTtc63FSEOr3mRAMuVr/+ltDoudeFjpHQ7T7f14ypEzygSEmHUOr7ox8A1f8Bi+dnavOVZaeXDUGDQjvWFHhepCAXIW+uRQlQyYtOID1doucFZtoaXu1AoyJaZFpfSKYpQK0xpyajswyzm8yGiVwkpVclbWDqqVVRGWHayq0Sc4mJRSEsPQdog8twG475o3x3LoUOCrv/n/O9tWd+Z+ktlC7jjGxu3j5NAz9c66in3XvRwbdW4d144veNUeb3z1CsbMScJu7+mYwJZYvwYzcjKq9mipSFHKEaTrhS53jByRJINWZOpJPkEHO3QkSVSfaM6hzfMni1NFyFqZbnXINaeWFRVtxStqh6XS8gdOPZKOqTVj6qgmvCrZFUuC2YoMTPUaSQ7xlChT4r/7qWPK8XQi2p83vXmuOciumn113cLTjce48cCAiDAdrZjGCfo9XvqSXfrUFlEAWAvlNLM5X1XzvGpDq9PZnBVxDtET30jZLc9VxuebISfhxKJzxcM5nDFJuzc5NUHLzMniuDnuiTS7xLhz4nmV5thSASZvnl2V9nlJmhxls1jf5/aeCSHn5onqT6xIS6VbDAy9tLxY1ZhmActKS97N7LV8+OEV/Q7s7y2pAqYJ8UJOilXIXaJWoxocP37A4oElg8ORWfM+y62a4zf/0J2J4K+abcG9n9fvLHeR7iG++Ms+n8PHb7JzbZfFkJtnoE8k7ei7HpFKnSp+cJOqS3b3MkCrnGkFwXBztLYiA2N18jB7N9QKdUKqkfpM8jl8JzevO8mJOo5gyurwmOMn1vS7icX1gS4JUzHqVOi6zOTtXic1RFoxnulo1TYZu4SZMbkhSUhS+et//0fvZXPdwVWzrxfbmrFlH7XNAx5+5ZIv/JT95o1cAHG8OmrGeqx00iIubPbsdG+Vn5PDyoXc4sPmnLoJdccVihriA+989yG/99uHL+h33nDVbAsu3r5aVlkBdd78qmUromJNIJLUQvTFKlnnatBujDjZQDQhGepouNcWzpxasnZUSdbCC8vs6QwtTL9aZdFn3AuiUGvzVJ5MsDKxGBKaFFyYbEIloSKtgrQ4Y4H1aCyXyqggRwbi/PaR8S8+uL6wtgox60WEitLtLLj2wMC1/YG9vYFF1xaPR6uJW7cKj7//NuvjCbN6X5L93o2r2DG1aoZnhaxtmeVOUQvgv/iia+wUoWZvC2sHzNnrnfWkrM2bZ9agLLKgh8bKoN9xijaxanpC2dlvwpYoaG3Zafveufkk2Kjowtnbazk7tDO61MqBTwpe2qJLO/C10A0th0ef4cig07kaEwIOBSethXzd6StIaVUW3RVRp1Qox8LgQr1R0QGmCnWldBhDL8zpT+gSlNrcTlseLuff/YHb3JzsDlHwVKg6P8xw22OrNWGEGf71L/kEhl7opFJqxVMit5QbrL2JTJ0YZs2LJuXmBaGklg8GyFMGr6Tc0vCbOYMaU1WGZKgraxd8MiZN9Ms2cUrirZhAaeLGJC13luBUa2E5nSpGxVxbIkhtiSAnc1ZVEZSkFc1toVhdkQTL3ErYeyfULnFt6PiKv/YzJ2GEZ0vPbSzGmAsJbLxDtkMQCTHreb1+/ldRbFC+8nWP8Lrrh9SpeeFJN7Z7UIUiHZkCFVwryRVNHZWCqbI7DujaWOU1uU9M4mha01lPtUpv0irupMKYZk8cERb0GCMjGXRCpoRXoesySVvo9ciazneZpOKT0edM1Qm3gSIO2rx3shU8tZBpXCk6UqsCPS4jnQFc45t//pD3PXmE2B266PPiqtnXjVd/kj98Y6claheZRaU21mUVUlLMDTMjM/9eHVT8VORybxsztPxW4k3kUqyFS6S2w9vq8wLq2KQMiznk0Fu/ZHWu1puYPbhaqIVUA004QjFrubO0LR0T2vJwydxPamKySqGFqnZzrioRQYGclHVtO9I5ZRZzwvrxiWN8f6AbOsSNqRiDKk7zZE7WymBMR4XV7ZEHHtmhGzKHcxhIL2DSwjb6lNG+R+uKJz8y4UwsF337ntbiKlfAt/3QO++4F1fNtuDezut3d/b57K/4k9yQFt5860MH7D+0S9+3BOtDlymrNbnryLmy/tAh1156A3GotZKkVdNUzZTjQyQlWK+x6iz3hzb+TS2XafGCiCJTZcgJGbqWMR5rlQm9cnzrgA+/75BHH7tB6rqWs2YWbLVLrA6OwBRNbTEoVps9VadaRVKilCZwusA4TSyS8IM/+cv8wm/c+zxaV82+XmxrRgHImS9/0wMMVjGg1No8+SZpCbu9hb9mBCsVMyWrtbBY0eZOnITJmkeppNkjR9omuaiiKky0OVrqnJ/6tcJ73nPAM5wiXQhXzbbgYu1rs2560yt6wNucufocBt/GVc2CVaeXds9LKbgL0tyfUW9rO6vgc4i9G/QIU5JWwdebvCraxlPNOodYGzuLjlUVNENZO9PkLHeFWg01wXPzoK4OXQd1dCRnDo4n+iGDWMu3JYrVVuDle37jYry0Qsx6AUhz0uxHXvkgf+xzXsFjwwGdKK7C4EaRNiF3ddwKPR1VJtSEqgaT455xhfcedfzYL97iV3/5g20SdJ+4ih3TnWGGjbPBcGe9iAT479+8z3SkIBWbwyl2tAlASJuY5EGxtWOmdIs2QEkPqTYVfZqaCLUqLfltdlgdtNCNvO8suyby9KlNukW8JdAVwdcC2aATysrZWbaqFoizPvGMEqQI0+RI3nhUVXbynKurCmX2ipiq4L2zPlb0UGCvwgJ8cjItlLJTaQ6p3pLzCkKXaNU0RPkT/+iJc2SrO7205Mxf2899rIpZ3/Rlr2N/UKwaZe1ApkuFTpuIZF5ZSstl5d7uQSfQDz1WK93QQvHA0FopNVErlJWy+0AljQmRWTg0b8kiLcMolL7SLQqHY2q7LXNeGEfQLHQmLVxLmsfD8eRYNXIHbqmFpQGTG+vSdoYS0PfNU2xFy0fT57bTUzxhQ2F/J/NnvuWXWddymi+LzeTsVKzacDb5ezMfwfyZ9X9Xse96vmOjzl5Innv+s09v4X+WeyabWLgjsm5V43yJS50nVR0ih5AHUmdMkzOkQkpOXu1yfCjk6yvEEqIFTTRPPbR58ilMIizdT6obFsmYFEQdvbmkXNsITwX3rtlHUsQ7LI3U4iy0x5K1iqpSEVN6yVCNSSuVQlGwskRkwt1IllhoRSzz9g88yA/86vvAN55nH7Wdn3YT6arZ1/VXfoI/+tC1lrNKHRGdE6G3cUhmrydVkOpzsMPsPNkkdHAniZLNqHLa9ydmUXr2xkoyJ1XPSqnQZUeLM4nQDy2RbXtfIWvzKkUTXSlzdcImnGMtwW2vTTxbJOg1zWICuGgTtFxaqBfgbvTzQrC6oyg9MGTFFY6fLNQ6svvgHlYLogmbX9O8w5TRYfWh26gZD7xkv1V5GnrUWriaWZ3FNOjnXEmr4wk/HBn2Ye2JPiVGb+Hc/9v//f/ecS+umm3BvZ3Xv/mrvpJr+x3UZoMHH7rF/iN7DMOAmNFJh40HYCC3R6696iF0ToA8Hh6Bz6GlFfBCKRUZRyQlcpfI0sJyutxhNtHljgx0KVHLyOGtA269/yZHhwXHqWMhZeHRl+/R7e+Rhp5pnEg5cfDELbqhpxt6FFiNI10WFqo8ebCiWJsRTdXahiSz4KbCOFXWxxPf+v3vvHtjPAeumn29GNaMbQ7cmvUPfNoj/KGXrll5S/qYaULANDnJKr7xMK1CN4cVrou0hN4COSsJZ5o3FXOevd5F53lRy9GrSYCMaNtodjU+tB54x499eK78ev+5arYFF2dfm5ywb3p53+bf1dGcYN7sEFW8tqTrcwAQmoSsSrWWsLaKtcJPtYK04k+WnJS62eWrIt42loVWaRhpnyNu9CmhyolXqFhimirD0DW/CLUWtTEJSQyjVW4pk3G8MrpFRhKU0hw9zH3ul4XfOKj8wuPjR2+EZ0mIWfcJQeiXA1//5Z/AQ/1BK1ntbec4z7GnvYzglbV0DKIkmRARqgnFHXXDVyNVl/R984QwAJ8Y18KHVwu+712H/Pqvf+jCha2r2DFtPLOAM6LLtiSzkbLm5LIIX/0Z13j9nqBdm3g78650VerUStb3SRgnpd9tuRGKCH2uqCesGslb51WtOZauDoSuCLLj7C2biGEuLFKbeIk0X6bqznSg5KUjYrgJfed4aVUtylwpKmFYyehQEZmTjKozOKhL2zEXRXpjmpoQ5u6sjv5/9t411rYsu+v7jTHmXGvvfR73UV2vfrr6Zdw2NgTbmOAHiBhssIPBjsHG2MQhiA9RUJQoiRQZCZQHHyIlQggpEIHkoCgPUGSHKIlBKJAEGQImJgQbv9Tdbre7urru+5y991pzjpEPY55zq7rbdtNd3dW5VbNUuvece8++58w195xj/sf/YdiloKedaZfJT4Rgq2ObYQbehO08OgSqiMBPfmzhT/34kSzB5BVzF6/46NVz/RgefGOlGf7J3/denj0rTC6s6mgXojvLZUdrZWdBUWcdiSQS2V3BFHNPNoEkO7BsFaMRoXkpXx6TnKym3EYQvMHGgsuWzzQcQgWZQOZc4dEdPQpLCMVW+lrSG0ccU+HCg6UJu5K098VjAK3pE7eQoNx2TgmRi3CIwKKAwVFhnoRJjN2J8j1/9h9fpxp+MmhwBW59GsXqq8Znws56Eveuz/lslJTP/ODX3ua52FOn3C9WYsiID8wq6ZXX5+zgzQeILQdbsNUoemDqp1hZaL3i9w15aqEM0/5aYF06u6lyXA/0ubLpRmNBOkxa6OYp4VKl3y/MZ52FQGRBZKZ3RzCWYTy6VWPSlTUEj0pIowdMIqwSrGEEDZXG0g167pE7E0ID70b3R/yXP6H8/APn2u0vrucV4NcEsF45nrT1tb351njXu9+OhqAmaVzukLLTPOsChrl7squEnufEFRPFHZXcr/oAlJBkVykMgB0QzbOte4LV1Shjf+mRlzkF1B0kwS96AmyCoOK4ZNEfJcGo1pztXJCx95lBi0xcLZb/5uWhoUMuGT48uVQpJuyKsfbOGkI8WpHe0NNthg4E1DkN5tVSfvbyLz1gmoTnnjlnUWFp2cyKSM/CKAVZhglvJKOs7YN1v2e+WVPeHYpL8Ff/j5/gzsXjRKgnbW3Ba1fXv/O3fRe/6R0zpQZFje6d9cGB3VPnbCej2oxJo+33xOXK7saGEGN7sqEd9nmBbAvJo4OtBqs7rTmmyYrfzhOTVXZnWy7uP0xQsy98+J/+MmCId6Yy8/SvextYZ67KnV96mcPHH6GTc/OttyhT5fhoj86VOhXwTlsbTYzeOpuq7JeOR3BsTtFkRKg6racRfbU8T4/Hhb/wI68doPWkra8vljvj5qzyvd94m4gF63kOrg2INYNyPNcY3bOO8mAzUi17BzXoHqyNwZDNSloNEAPxwRDVlLtagFiG/WgBzYbzYsJf+7G7rwtD60lbW/D5W18KfPPbJhjJuyZCbyMN2JSQhkRaP+gAoxBBPe9TpgIq9HAsChqdTuAiTJHOWKgOCwCl9ZWpFCDvdEVlBKMIzRu1zkR0YhXKlM1opaMKS88d0xAQYfWxvkmWM+T6VlXcR4M8YCqFv/YasrTeBLM+j2N7esof/I4XeLfdR21Cxani9B7o6CBqOEt05rDseIeSAKciskfcsvhbGi2MOgebkNTZi9DXzoNL5eTUmKdgdYaxZPDjL878N3/9g3w+YlufxI3plcysq/FK6dsne2ZdwVr/0Tefc3TnBAXteDda9DxfdW0AACAASURBVGuDWu/pW3UyB8dFWCsUj/RAwClN8/CJ3IwePIL1KEy34KwIFh0NTV8alFLg2NJUPpaMVq01ZTLiuQaUlAx6OD6ki6rpQaLKtYfJVgQdkarHSHmXh0AJPMAPIDP0TxjTrUBL+nyUAtMjZdkCLQ9bTCkO2gSt8J0/8oBXwguvlhs+/twrAYirOX5SPbPywiX85T/x6zkenWUNjg123Ym1wwTaoXdnf9HZzYW5BBaBq9AuO9ttcLnYiIT3PDAikyyLKCenQkTy5bqD9YyhjzW9s6oKGwkugdaUsgprXRCZ6O5YuUoRk2EUmSa1FaV1w7TTu+AW+EhHrAiL5zpa1s6KsF+FaorOUAfL6uiwjgO6VKWashrsSmHaFr7vz/6jlGh8GgbMKyWFn5YhI5+ZEfyTuHd9Nmfj1RyKTnzL+2/w9W+5IEQosXJpDW87xNLRyFTRvuY+1Q2xBlpYG1RdU9rQhalXYhLENywPGtw4si3BEhVjZRtpAt9EqVFGYmKwFsH7mkEZWkCP9EeVXgUpnazVKt2dSSdcG1MPEGUtazK14oB5IaLQKSyyprH3GjiZ2LmRNCX1CHwxjvORaBWJI/cf3uaHf+pl7lw2+udQ7zxp62s6eS7e/4EXKAwpgntepiL3M4ksaq+ouDoAaUg2lkmCWUb6aK2rkypAQ2t+XZa8yT5ABF8Fm3mc7uvOXJMP5h2MIESZJVtKKoKRqYdXXnpiirrjApMYGp2GgBmi2RDwyKZNi/TL6mRtVnXs1Tg4nFSlSwYPiFaOn3gIJyDzjs1EMsFayhsvfukBNilnz9+CsX/Ss7abpFFtojkco6UPE8KIKePR/RXWhXI+EaWyEec//18egxVP2tqC14BVOp3zzd/+L7E92zF5MO0KeVcTHr10j5O33OL8dMJEaGtDHx2Ybp0kU+64YMWSTdjWawCzLSttORJmTNOWzbZi6567L93j7i/do/eghnBydsbtZ29z8+ktbTlwcf8Bp7fO2R+PaJ1gPSJq9P3CcrHy8GP3Oa5Hnv3SZ5iniVqN434FUy73DTNHWuNANqEioF1fAIPWG44S3jKJsTX2XfjLf/3/fE2exZO2vl7fO2MC87/rdz3F0yyoW3qwRaN3xxtE6xx6R6NTh8yrj1R0iUgzb0YjD1BPFunShb4GdRLmGjRP4OEwkHhTY7ZscnotyeKqKU2c5so/+1jjH/7f919hqPL5H0/a2oLPz/qqCt/4XMF8ePCNFGCJlLSHe2IEI5nQXTAxVBvRGTYAgtWUJfaxkZRS8MimkhCsLY3jowdWshYLd5CSZAxJjnWtQnIsBF+C7YlB61nzSRrBr2s21SlKi1zbx9aZil7fnuOKge3JPhxmvPzU3ZV/dr99zvP2Jpj1eRi//qvfx3d/RW4y9KTpmXgal/ak3rs1GLKbIYFG3DF11khO8WxBb422OGqVMiUVtYXh6hjBvfvBdidM00TirUFIIrONDabCP3ox+OEf/QgRn/uCuRpP4sZkYvFqc/dPlhYCr/hsEGxK4U9+0wndIyV3K/QInGBrwtJg2cP2JGBOgEkku8y1Q9NgO3heACWUR48EZmG7Sf2zdaEWsuBykCt/hbzjJQurBnh6WKGMdZCPyD1gFXTOFKWUfORltmpQZVCVNTvkvUsCTIO66h7J9HkE9cyz2yOSyYwHpc+5oZYy1vfwRvp7H134z/7B4RXg3681Hs/xkwZmFbW42kNFhL/0b34ly+Isy5qeU0tDe5q2F4KlOevRmYph0hNYDKU/hPObkZdJzxTBiKubpFNFmXbpn5aMq6F3XyGOxjQJxopKRvgeHwZakxU4TZaUZALVdJtBFiAvet6VZQ1MO6awb4qT4GjxwRZToXl60dy7m2mJm60S4synSUW+WPMcCyn5tUWgGudV+MTFyr/xwz/1aUzgeVXNNe7Nn/JnbzKz/rm/ju/5Dbd4/8lFJqR2YzVhrwemboimJ5qRJp4mhlCT+WJgvdPKkegTJ0VQjN4aYiUv93WmRQfvzOLMJqzhuCrRlDI3KsoxnFhmZNoSeh9jw2F/ZLutpJ9fY98Ls4FpRXuDstB7pUnF6PQQCkYrC+59yM0Krdc0Ze57ZjFCjD2dRVIHbovij4LlBKTM/MWfbHzs5QfwpgE8AC/8C18bp5ZhEVc/mAzwKNlZkvG2AbUApFG7eM80QRi+V86cmA0dyd975Pkyzq46JPBdLIvxIWEExSSLYfHIhDmR1ORHYGrXiYkmCt7pIkRkh7mQcsMWQbHh2UdeAuUqCVGTMnbl54WmuS4B57UQCIee0sQqRty7RCzY3DqhN6fQKVq4/+IFZnDz+Rsj9XW99hV0nFmUUgvH6PQ1CCt4awhBmZRDE+LekbhR2Yjwn/5Pf+f6WTxpaws+97r+23/w+/GLC07OT5BHB6bTDVIEQlgeXLK7dYvtlGcaF3vm27eI5cB2Ug6XlwlgqTBVS0ZgbzRXluOeWzdPaWvj5V/6BBd3HlHUuPX253nr8zep1VEPluVIWzrbTeHui59gd+OUQjaf1pbvj2rGcjyyPDywX4T7H3uJWpy3v+85kPRW7evKsUONYI3sGK7dWdeF1uLa/Ntbp/Vk9VVzHq3A2vjf/59f4Gc//OLn9CyetPX1+t0ZFUrw3d/8DBtWfB3puSLI2hCH8AVvwmHpSRW1vAdeSa+vvvNwsr6xrKsSdIfDMUGuqeavnZH2XEaz8MrX1EoCYpNCN5iNasovvGT83X/40hdsRp60tQWv/framPENzwFUikQCWJGNkO7Dv/TaCsEIaXlmeTaQtOSZJw5TNRpD9UMg3dPjiky3D30MMmW9n8ahauVx3WMjMVjy3hn7oJ4KsgpqQanKVdtnjTVtGkSRgP2hUyq4p/RRyD3r6vYMkooQGljhR3/+8tPMyGc+3gSzXqMhWnjPr3uOH/itM35wpskwX1i6MRlkJoEiLEmD7ytIoehK9EGXUcF8JXqlqCPR2F9C2eUF1NxokjubefDo4YqWic2kyCYXY+sTLp3JFKcM+RCEGv/OX/rQa6aXfhI3pk/HzLq6KX8qQyv/6r/9m25hoxPtHplC1JPVVAYzJgKkBBXJyNOT/FgjU50sMiHQgbYPjkdld4NBKU1T9VmSZiwOk8nwwvKMJe/Da2R0qYkR3zq64wHgeVCW0cURScNa1Uw6ZMhrAoiSF4alGdtd0FteXJaXgVPBNkEFiqRJ72EPcpo+XYbQQ679k/7QjzwY8/gq+OH641cCXRktm5vekwZm2VVS5gAYv/e3fwnf+L4TljXQ3tCW7CWAvgY6BcvDzmYuBH7NIFCXLMyRNCpeV0QtpQohbEyZJ5Da6B3KbsbXTlsDbXn5KxihybDjIbRNxteDX39/5VRYu8IBpHSUIDqgwYqix1xr0Z1uzkaNtmYXsRDcuRP4XLhxJlw253iZzIhAWaOzO1MuRNmYUEzQYkwqbLfKv/tf/TQfvH+lp4/HUq8roPnKV0vGivqkd+2vBWg9iXvXP+/ZKGRK6TOnhX/9K2EWYzU4bcpqDcwylfUIMaVRt0gwhRKDOYeB9qAhhDgVxxLFoMqWcCWOKzEHE4FHpZQGkkCphCPaEE0wa46TlDT2wOOIlQ2hK+1obAoDfHJmBJEKdJo6i2+YObDihCfjubXArBM2c+grRlDpSC+srlwes7sZAev9ip43QjutFaiN/+RvO+FLJrb+GjP7KZLYJ2x9fdXXfF2oDKP+K/aVQpFki/QOJeLa3Npk+LQAhFOUTGCSSLN1v/KoSt+rIChmyegajZPlsLC7saGFYJZNnPGC6WWlybwJEQopY+6jAVNF0ejsI/dUQa67zAxGWSmPz2Z6x2oZSYmaPxNCi04Zz/X2bDRXDj58Ase3c2zCbm3Y7GjZ0BH2Lz9EHG6+9SYaPVtV4XQZoB+ZxKhWuFiG19uQSGpNz6yHH79MIM07P3vvIX/jp38WePLWFnxudf3v+f4/wDRvWB9csN3N6PFAPTlFolGLcbx/ye72bTZbS2uPo3FyLrTVqTXox4apMs+VvqxodBQZ8i/j0Z1LjkfHWuMd7382gQXS68jC0aL0ZeXiQy9iVvFwNmc36OuCL2tKGifh5KkTjseOzJWz05mXX9pz5+c+igPPvffprJnmimoGJUosuCmHY2c5rin3RliWvDA6QfSO4zzc94FiONGdH/5f//5n/SyetPX1hb8z5vTN58Yf+vqTlHl1ZV1XxKGHQ+usPVMLiVTqSIdlhZOSyprr4ySJLIwewQAess46LsloNVIZ0RTQZKe6QiUBCMxSfliV3o0yG5M5Wgo//GMPaO0L47X8pK0teG3XlwG/4x2bfOYeGIN13DP6iJFcGAJ4hoX18KyfZfim9UwTNtIzUsbrRqRXY0inR/quSU9sIBleAEGYIC6ZINwzmKVboBhGBhQUy1TpkMBIb60Y98zunS7pq3x52Zi3mkqlNck7YQzWtBGrD0sHx0KJIvwPP//Zyw7fBLNeg/H+r3kPP/AbVmrMHI+deUomQl+CWj19OghKWF60NMAXDMUFXIJpGCMfVsE4ptdNC2SntGGQO/tK605fneOFIRulFsOlU2xBZccSjXDDw7AyYXRcpzTUnTr/3U8u/N2//xKfK7X0SdyYTOxVk/JKlhY8lsldffz0ycSf+LoNx5ZsuM2QJ3SC4dOPdVKutcnIUt3nJtECtttASzKjJoXDAhcPlfNzsOKEKT2CqlnIWCTjzhCkBGvWuvQO2xnaSFNUTeaWylVyFBiCa2QRPgDOepXcM5B7j7FBjp+84cxFsAL9KPQu6EPBbvUEsjyToQ5HKDXprUuQDI5Qmggfub/yQ3/78npG+aQ5/HSMrfxenizPrE8Gs1SV7/mGd/ANL5zQeqf2ZDH0yHh5sZXjXWc6VSrJZolHwtl5jNBMoZoDxmULylCqJMgVmAUiRkgaRupk2DGwkj42S6SXDJ7AZ4yEFBWj0ymzoOeV/tDpS0tfG9KLprVO9GQZ9lC8OZsZjsdkmt69nywZuyHsRsLccU3g9XKttB7UVWibzslOcYWtKmFGt4JJ4Y/8xX/wK0+myGNAhQGLvuKd+yaY9av9vQGui/LMVvjjX7tD6BQBFsEj0LIipWRBLQk+QZ4r4sm+CZ9BLulizFeu2m6gnSJzggixsn+5sr3dieJEsxEe4DRxlMIkAhVWVuoaeEyoNfSyYGdw2Quie2Kp1LpibBBrrFFocqTGGQdfOFFYvLC2S2qpYBk64G0lvKHke2Edya2PIpAHNX3gzi/pBt4LTqWE86Le4i/8nQ8h3VjpV3P8GTG1nrT19dW/+beEXAPJScG8Sj6SyOK5dLKBcpWsKhnTrZGFsUoyRy1kpCcJpcirZMNGpi31wYpaLlbqLOhUuPLfilHcW5X0kKw6/LdsLOzAorM2BYOiabQslvtEa23E2U+ZCL2kJ1HZzPQYctaEWlmio6JEh/OqhAdHNVScWdPr0qMRj7KRMKFsNNg/PLL2zsnphHWnnE6sNX/WDky1oKWyIKyitOMxgVWMTVF6X+kvXyLbiYPmUvrzP5YysidtbcHnwCpV4du/77uptbBcrJycTJkYuXRkUrabmXZYCCpPP3uDfvGQ0xs3WJaFTTXcO/14pK3O+dkpwYr2Dr1x96U7LHvh/MYJz731FlIKhZ5ruSrro0vmybj7cx9lc/sGzzz/LJ/46EeZz3Zsz8447g/ju0x7hxd/4SNwsSBbYffsTapU7t99xCd+5iPorNx693OUzZa+tjRc7iuqhcvLrJ2WtWV9FsGyNkKCy8sjHoJLcOxBMeHyovG3fuKf8uKdh5/Vs3jS1tcX8s543eIW+KO/+0Z6445iv60OrQFOeLBfMrxCBou9CrBmPS9DXVHy6pgMaMgzepBRF0/wq1aInnum1kFckNyD004E5OoDUxZXpm3FLOu+ZoX/+n+++wUxhX/S1ha8tuvrW54zvCrS83mFp1VI9PFvMUzWrwkAV8qMlA6GpqG7iiGyIth1XW+S9jQiQl96mkKqUvpgMI/ADKklXy8gikEXVEc6sFxj5mhJ78ky9jezkj7dETTtEBMPHx3YbUsawIewrCuEUabRCG9B6IoyDUZXdqd/5Oc+O0DrM11f5bN69Sd4qBS+97vezQdOGsUiH8hhZVOMqgv90FNr6o1iG4IFWTqu6ZMVqtRx+USUY+/40pC9ExXmCdjmwpmlsR6duw+dWgtnW2X31IKzZaFhHlQqi69sax5u0OlyHIWeIGH0BX7/l2/5zq94D//9Tz7kx//h50ZJftLGpxqR52fzDEnpnVz/ifLvfcOGywEgmWT6ULhglmCQRXC8VPS0Y2KU4tSTpAFPLb2tDkcjGhzSsgE9i6RmrppFdgSPFtiVyLjdBovANvIQE81OeGtp9L6d8rteWx6KJfJgo0WCHK7XrBwZOa1XIXAZt55AGOKJ7re8AGvtaFV0J6wvGrHtlJ2wHpP62veK73JyDGE/Uu+eO1fefqZ85OErIYZXmsB/6lN40keCMMK7tkHXjqrSw5GW8hkvsKzpoyaRDLiiwVKNop3uyTQgFB3PqZjieNKQJf8N6ePSKUIsgVikh4JA7IW5FfpJPqcWKYcQDUwVX0GPKaOIqmnArAlsck8J6UxqiDdaUfD0Xru8F6DC+XmyMNIKWqhT4F052zSEBD4vunBYgr4KXgQrwTR3JhO+9Kkt/+zl/avm7bFnVh7m13Lg+OQ/f3P8ykMQK/zRr3k775J7tDjgXjjSECqbaQEpEJZd4KIoTsSMltSIaQ9ghVqoq9KspreQLZgURA4IMyobhANNg6qVbg6yYgazlAQfoic9PjaEXgCBPhLYZofw3ILjwajbTfqhibOyxWOh2oyasl2c4xLotDJN00hXTVnOqkqJiXCl+fDC8srkRtw8oN7AYH1kUApFL6DDszT+g2/a8ef+XufOZdKCvhgaeq/H0AFeXSUJ6pAO5kmoFBwEJoE+9izzLHbNct5MBAmhuVOGDJEIZkl2lWp6hVr0LJYl4LRSNI3a5ZBy5zpremGJMldN8F6TEdZRYllBjG1N0CGOgUyFJsP/itGV9p6NnG1KYyM6h6PT24rtNinzCgERppqA2MWdS6ZbO2pJ+kwa5E6UmxlhHp7s6/2DPZvTysntHQvCcW1Ec2pVah3n/WXHL/YsW2GaN9ChTOBrY7mXQUCmkZ4ja+fGdub+/vj6LYIvsvG7/8h3UZnSJ80ZclYfvmSCThNaC7du3+T+L34CvTxi25OsT1Tx6JyfnLB3mHeGFePhh36ZywcXLCvceOY2t3fGvNmyf3nPNBV2Tz+FarCsB05u3ObOhz5CXZx+2LMue7Zn58zbkmmuluCBh1FNeO6978KPe1pr7E5OufNzH+St7/sSpCgv/9RH6OuCzhO2qayHJQGIqkjsmH3lxm7L/cPKetgzVePR5YpVy4RZJwH7cDZF+Lbf8uUcl85f+Rv/1+v9mN5QIwSee8c53/oBobcV7blPeA+itaGvzv1tCqANomYkUCVpucvhCFrTXgISvIKsbUIyMbwItFFHm2bNvSxBHxeUUtPXtjMCOKLTwqFZbtRhiAuTBH/kW2/zV/7mXdZj8Eaov794xmOFz+9424Ymmp5olkFiHcE8yS4SiSTFKHCjCNoh6NmgpCFh6WulHQnLO9a1D3ejH5ypFGyyxMFax2v6YBWzbKRnwgBdoPRkgHqMRh4dlkBKyRoglJCga6qF+mBteVfWtnCym1iWRrH01LKqGdbi2dixAr1v8uQeZ2rrwbd/yRYBfvSD+19h3j63oZ+XV/3/6fjNX/defugPv5MvOztimlHSvlyy+FVBsmBFKGIYUxZ73cGCamnqtikNwVE6azsgx8Z6EGwnzHMm48wo0lfW+wce3ls42225eRrMtYFNeByZwtmIY7YipRH0Qf3PSOyCM2ujyh6ThXAn+sp3feWGmze3r/dUftGNV7Kvrraa7ClfATCps/hjX3fO6kNzIUmfDE/WnZHgVtsrUVNg2j1NZimBS1BqUEtwsgXZpvRhewZPbdO0vU6ZSKgIhzUbK9FHt0U8AY0rcMJhHXrqtaUcsUqysEzAdPw0IcPQWa6pzOGDvjrkNIsnm+sqDc8kdc2tAxaEOHbbkYMiS3qN9C6s3UE9k6JyStKUUoQ/9dtPx6zKJ83xp5v7J3TIY1ZWUl6cF962pbqwLWnu2DUG5bxz8VCplkmnBoQLZbxdTQNTT+aDCMUyst5byXQwEXobzInhKUPkWhKFGspOhNgMs2a7urcpBEQD8eB4GSnXctITbSTu2NYwM0IcxJgKiHQuH+UzvnFTqZrglqCpoPaMvM8ZcJoHG3V2BbZb52TnTBtQ7eDBn/7eL0PFXj2Fo5i7GhGf5MX2BgUbPpMhktWyEfzu99zkHfUlvKwJUoVSpFDZ0GlAQ6SlV9uQnuZ+0hFpoA0xZ3MEtZViR9T2mFWCZPetcaRLEDHTrY3u3kKtE1V3CboCkxq6ZoFR9AZVnKJnTFNg5rhP2GllkTRj7ghd9pit1KWwPLzAZBpSti1CG14THfdMNZTeWKyNRCfwR5pJjMNUWRZDTzuqC3qYaCuIC7YGf+w3PcW0sTf20pLhgRUpN9akaSKSrCYbQSZXe1xRQUuACHVIDovm+98kfz+ZMJGgmFmyt4oHgVLVmIpkTfTIs2mzm9meb4gwlsvG/v5CDNNZQ7EItpq0sKvXW5aOTmlSu8kAVU5qye9HArX0rsq/r9SNstltqAqlN3ZV2SpM6vh+4cazp5xMlnfBmiC9AidFmQY58eAgVpirEQKzwlSEUg1VyYupwnYK7PYZ5ajJHiOwdaW3hh8XNrvKZjJMFTPj+3/rb3z9nv8X2bjxlltYt/SYJZmBSiZaalGsSsr2Q1gfXDC1BCaFK1+zQBs8ePk+m6pY71x+/CU+9vEHrHXHu77qPbzwgXfy1vc8z1Nvf4qn3/U0z777WU5v7ji9sePsxo7dbuZt73qO0/e/Db/zkEf37lAnQITDw0vqNGWjej1w/95d+rLH5so0V7QoN97zLj7yj3+BOFyy1sL9O4+YpkqtG+Y5qTnLoaO9UaZKb8FcQHcnXK6OR8/QA1M0grkqJpqASAhzNX7wW76G97/96df7cb1hxju/7Ba/88s8/RobtNbx3qCveOvQkplqDnV4X1WFzSDZaBLt05Zm6UjPFFfpCdiaAz3rHu+p/sAT7CoRTIVr39resmaMVOZzXAP1QAh8WYhoBA0iUAn+8O+4lb6Bb44v4Mj749c/PyfAg+PekMXHfTOZ8lc3z27ZUMrn31KJQ0FEibBhW5mFSqbk5t3Mo4MrEZUugg9T21BBWgxMLT211NK4zSJBtCCuw8LAMklx3HnRwMUponQaLnn3690REzRSodMj0JLNSVMITQaWWHoOmKXHpaAJko2gld/7js8PPvEmmEVe1L7zO7+Sb3n+wE5BKPRwqgfrWtns8oqubJgqgFNkpbJQJKhqbOTIRgLzkp3C44IfBMyYTqCaYqZUcdxX9nfS8P0tb9kx71ZUG8UKRm56pgtahCYwh9FlTs6CraiviDaUnnHnUikmTLVRivBDf+B5bt16E9D61PHJ5u+MXn/+DuBLbgRtmMg6qXsHzZjSCPYPs0syD9P11pym+TmJ4NCF1fNVN5IA2Dzl4TZVoYpjJX2onq7pfeaje+OeLLErpbt4bgAMr6pC+ogo2bXxEKSAauCuo/gDsbFNjgTD0ATlJMDEqZKx4r0lMJX0U2HagN2G5V6hPRRYs6MkjWR6DZmGjhk0zYKf6/l85ZzmRnn1H4Nx88SN4LHXE2BWMAqh6WEWnhKG1nMebt7o6XUwdO3Sk6nnoYjkQTGXfO5TCYp6+hpBrgMbzLwrE+TilCJYS4AzujBtHSE7JVVtyIdSHiQIPlLHomcqirfB1POeB+h4thVYLguxCqc3fMhXA5MCMvxFBKoIk0KEYQahBhpUSeZXWxrRgzU60jr/4e9/7hUTONbMOFdlJLa8ki0jCE8ekf21GRGRHi8qfO2zL+OREmFkj9UD0FjrJ1BTRBy0jxQ6RSJokgzCIlmoiBd6FTLjUpljYpbOphizTMmO8AOTJLApKlBO6RxHh9pQJo4+4QVcG2Yrm8sZny6RqGDQ5QBeKCagG0oLyuKYF6zAZquIrkg954o9FZGJsiaKNChV0LFmu0+IpeSxJwxCt1xvqis6KbttBS9EczbtDv/+b3hbAjhv0JF3nMjDh0h23pCuS4CMVEkCJpXrM0cVYqQijehA5mJsKmzL8I0qyQ6Yo+PiyPD3W1eYdzPzeWGe0lcPgmlW5rOJs5sz68VKe3hMYL8WFpS5CFeGkaUaHj0NaT3ZYbMGO1M2RdNby4VZlUmVqTWmdaVEZ8aQZc29rHXKbmJreaL5SNx0M7a10D2I5vS1U8PZ1IIUZVYdl0WjVsFK5RhxnUS92ypVlTJVwiQTPqtRBYoZFor00Sx9swS/Hr/t237nsJgd6ZeRh1qQzR2dKufF2JSJyRfmtWGzYO4sh4X14pKgcXhwhxd/6uf4+X/w03z8gy/xvq98H1/669/NzaeeYt7eYHd6nonUsXK4eMTh4j7HwwW+rMiy53C4pAicvvNp9h/6BB/74C+yXj7icPmIiwf3Oe4f0PuBqrCuRw77heOy8uLHXuTi/j1O3rLlsDhnk3J4+ciDF1/i4uUXubzziN4bZa7MJ6fs7z2kt2M2pJYDpS9YmSA6FSHEKDECFExH8zTX2Nd9+Ze83o/rDTO+8YWsj3tPECt6I9xp7vQWyUrpMfbM4Vk7eo3DVhl1qEUoPZvXlp/Gs1dw/fEV7iRAz9I/k6ojbQDcYVmuZIzDmmIww2zs2d7AfUXWRmHlm7/p/HWZtzfuEL7idmUrkqx1z5AKt5SiqkjKAa9YUeTzdpVs9A7T9pUBHhmEDlsRJe9r6tSi9BZE6dksiVRnqEDXTCJXSZeIK6l9iCQopSOqdAAAIABJREFU1fPSmZ6ZUKfCcVnRgNZ73m274+6ES4KsVaklcYwmmdarkr64QbLPas17iUoMP8y0G4Fkaaumgun3v3PHB27W13TW39AnqQC22/Fn/tUX+OqzeyxRUVqaykZwPBw52wrbImhr2Ii1BzB1DiSQVS2NSmHEs14IUSa2JzO7eXQwAVkX9g8uefBy4+QtxulO0VgQjswiGIkcFEkAxSRphS0apS+IZlGlgLjRPSg0JNY0tXVh0oUazg9991s5OZ1ev8n9IhtXgNWv3IjP23SLZL10HeDPcBOuCPsLpZtQNgl4uQSuUEzwnlLBjI5O9DuTJdKMffE8kDIGPH23lM6Ephysg4rTNYgQ1h7UKVOgfPhYRQTLEizH4VGjcc0g7OI0JxOZ0NQ9C5muEsF0BboPSEmHYa8hSCtpdN8DNcduJZtr8vQLWR8lol/IRMco1xPKX/w9Z2NmH8/h449fzdl6UqnOmbaVv37g2d2Yc0HoI0WSx9SjLkRJaZ4HLBd2PS3pkWeDYh7ZzRFhu8mEw7gCI6eEZeeqqCaIWYvSLyBOHW1p/igSw68m15xqGsIXq3h7LAkNadAiqe7WryuqhtCOcHLDmSrZQbbRLQ+4AjRl7EmbkoVdH2a7Ypn4OmekK9KdfQve97anKa9gZ10z2+DaBPfq81fTJjGk22+OVw0RcDV+4OufTzDKFqSsTJHJNWaOq3EUQaWMuPo0TXfruCjL2rB+QmihmHEMR8LwaCxqLCq0SGYpIpjNUFqae0YH2VNik35/obhWoDFJZeOCXMB+EmTpLK3RV2GumaK47IMdC2XnTNst3RoxWtO9N4rt2QxA1nshExcbro0lqySaHymXELuGlyPdDqgVJBrathSfUeDYV9wWtGyJgFlf5Gw7vWGrIJUhdzYdZrP5OdNsqKk7VcEICsMA3sbFTYxSlKkI1YSqQ6Z4ZVrbnX7sHBq4GLqd2J0o86YyWVBEKfVxMe0ORZLltLu9ZXtry+W9hf3dAyaZyDqpszEStLJ6/T3tijGJsEHZEcwRTDjhTlkap9st88nEZqpM1did7BCtuFWmmuB9tdxreu9M7hzXEbYjucf6SEbcbSqmCQRrMUqtJAl6eAOG4GJ4OM07RZUWUG2ilEK1lH4vw6NQBU7nN+u0b/uBPwBINuDakKyrDIDckWLUect885Rn5w3vvXmb7emG4s6kwm6a8EePePn//RDrR+4hbeadX/oe3vq2Z3nLU2dsd4XoK215xHLxgPX4iAd379COR9rlfQ4P7rI8uMPdT3yc5bgn+ooVKM/fYL134O7PfpTLO/c4PLrLejjg60L0I9o6h4uHHPdHai205YhrqjjO33mbpQcf/8h9vCtME0uHux+7w8s/82EuPvGIB7/8gLu/8CIPP3qXi7srfv8RdKF5UAqEKMeWoK+JczYbVdJN/A9+89fwzK2z1/vRPcFD+I5ve5a6eqZ59yB6BkmwONqD6gPPX0F61llx7ZeVjQCNrF/8kGnUvQnrZXpnKeSdgXHf8KzZqwtlAGLD8SQTDk3oDdZlAGQwZI2BeqevqXGUNTIdzytv2/mbldMXaCjw7hsTb90mZVgiWZXR0/dKIu9Q3R2i45o3Mr9iSXlKR0PSyH31DFcakfTJyIts7Kwt2fXikkm/OI3g2J22NpqlhUgZJmuyZmV95XdJpOdbhLP2hqpxbJ6G8j7unaPh3ZwEzshQoEngKsBKRmNLygCsPMBs3AYdHXfQCKdoJSJY6bz3hvEdL5y8ZnP/hjWAFxX+4x98b6ajAHRnPTqbHVQL/OjI9pRdXVnXxroHnfLBilzF3Bu7qnhv+HGl9YpNRpRMsaksxNBX7+8eoQhn5xW0ceiKE0yx0JmoseTlzw3RoK1pCu690yhMJYutCGcJpQxT8kN01r5BRGnibErFpdAkaMCf/d8u+NDPvPwZz8uTaOZnYvGppu+falb+/V99g3ecOTb84h1oB9AlDySd0uQYhKgJOoUEVWV0SZRNBBtLCZ/fFzgJMKFWsoMTKZEhnHVRpk3SgVeG1zKASBqeBkCwwJA4JmAqCEWdonl4HhpoSUaXjiQp87QVDDQvCiV/WrWURnrjWmaiml8fyHUKoqywf6j0GkQX5CCsUyAnQVzJSsZB/X3/4wOuiLDyKuDqcarhFam2P2EG8EVzsVwBMn/++97NPE0sB0cmH5LNwJfknGfnxGiPnIlgcyoQitVG8ezCaCSzwX0kiYkg5qxHo1gyoWyC6EEpwqTK4Z7Td8osecC1McuNlKcqw7/LNAH5Yeq4hg8GYHaPeu+YGbI6l/eDjnFyK4uhq+RFI7svnVzz7hkqIBJ01+uEMdFUYSuBq1IU1jIxV9jMynf/uX+Sa3QEYVxLfn+V0+BXM4F/EveuX+lsTPBUoQj/1m9+ho3fo06grVI1kxvUF0Inuh5ZPBMmrYPpjMpK8yHlEaVcPU9dcXO2bGlyZA2lUDMAwztmGyyOxCeEeFowOwF/wM42FAmaOx5KaKUcO31ZqTcmYrBdzUEedfRWBhLAjHrnyAIumG7wuEhJIAURw+VI7wIOawQejdR/GwtrgsIPCpuTzl4yXUdEoQmrO9orLA2n0lwT5F0b4gWdgr/w842P3LvMQu1XqYeetPX1W//FrwuN3LfT1P2KFaNUHFk99yPPlEArgotkd1lHMEWMs8Q0PagiOc3SwYoNPzShjoCKFuAtAyuaSDKYFMJTYu8RbE2Hl0d2d9vFwm43PQaTvOPrmp3lkoyVpacsQtzpJmxKJl+WKyCqpGy/HxtRCl2CFcGis7HCMZyOMAPbYlTN9VYl0Egvyhc/fJfbb7/NGk61gq8LXgqrOyvQRDifKofWaR9/SDxznjYES2e7Mfxuh3pAz894eHHAAPHGZQv+i7/540/U2oLPvK7/bd/zXZwNDz9BRkqXZ31RZk53EzfOTnnqLc/zruffyttv7Nj/xN/jF+9ectk7D+7cwbuxe+acWzfPmZ5/CulLgmE9+PhHfpH1cmWeC3WuiDvHZaUUYXM6cbKdORyP9N7oLTjbFvraE5BceoY0bSYuPnaX/f0LNs+dM5li00xvjdVHndU764MLqMnkl1KY5okP/8wdLh/c451f8Xb2x5WpKFKNhw/2mEFvHdXCxfGILx2qsDbn+PIB1cb2xgZXox8WVJIlcdny0polYue//Vs/8avO8ZO2d32+74wi8K996ymE0pdG7463hvY+EsGHPcgAnyzdZjId3KGNj69SmoeAYXhiZbiTLmDD6B2y9u/ka9qWK2wX0pIoU1NJ1uKxpdQZgyijZKokA9uCMs24ClghLLgM46/+2INX/ISv3fQ9aWsLPtv1laqZb3rrhBhYz1CaCKF7JkLHYCy5DO+sLoQlaik+6ABKGreLUCXlfEFgoin71zSHN0mT9isWoGv+HQ9n1jKQ0mAlmLD0XevJ2jMr6WcJ6eEnQl9TLbabFa3psdvdmUxQK/R1zbuEGftDoxbFU5I0XiuG84njPb22VAVd8x5Dz0A1D803zWCOVQl+8k7jp+8un3ZWP9P19YbsSZ7eOuHP/NEXEFJKKCF4C6YpFw+uHA7BrqQm39eg7vJrzdKwGzVODGo4HIOohbpxoqY5+yQ9wYFoXN49cHJz4tbNgmpH0fQ8YhkmqR20sFIIPaL0lAwNgEtkTS1aBxGn0pikJwMiDJV+zfJZW0OiI+5MrvyJ3377dZ3rL4ZxBVrFqzbwV5tNA7zjptMUWs/1oItQj2k4O52kxAoRJgusg3jQu3BcoS3pF9LH4SWR+nYzYVNzt7mKQO8CqoqVjDBd/bF0ryBUGQdc4hyZejiUICYp8VBJ76u6Deqcf17tMfdMDMw0o9I1v78ITWPKJuDZHWqPlLbA6gN6ijTePSxCD6hzULYBZ4GtgqUPb/47mk2C2V4tL3zlzvPEnXKfZrzyAmzTnCbJOqi8ZmxqmrGbpUhz2inbc4eSZqBaAuvpe3XFnIMsTIqltDCaUGqy8LRk1HxFMM85D1OqDQNmgVAZFHQh2vCGk0L09MFRGYyy4deWmvZM6DzccS5fAu3C+Y1BbcaZ5EoWlDHRiI2OS4Oe7KwrpkWCX+DNh9Fksg+9N5Y1oAl/+Gufvgayrt4z423wqXMMb0oNeQyaXk3T73zHOWflbibIAcwdTBHtiBpqnWLKrAJRk8kpR8KdqjNTqUQ3Vkupu2qhsElgiW3KSG2lIOxqpbLSVVh8S6UhdkgaPEllr6Z4DepxRdoRubUlxIlYsRLgRp82rPs199kaGQstE8Uq4ivSFA3FShpw5a4ow3hZCKk0F1yPlOBar+EqzJT0L7pcKXulvnxCf3hCa3Oap65QVmgUlskp3fjjL2zT2PmNNiJgKB5MkyF8zY6JQCzlcZspPXxMFBvMrY1ISqRtpBde7TcGoGxrvl61wXpyH4EACYyJKXUwqzQCJAGkWYUewjLe7CpQI2j7JaU460pbO1oKXYRjy2ZPDHRt6Z7MKNFkuZpSp4oOLX9MhVJSel8NNtPE4nnhqCLspoK2lbY2SjhbU0yE46Fhm5kQ2BbFuiOl5llsiqlyWnIPjgP0jTFFMgznuTATyNZYDo53p8Q409VYvwgayq/X+Jrv+L1MptdsXxmSeEGxzQZaR8rErRtP8xXvfYHf+PZn+cBb3sI71gMvxIFn7z3ghfPbvOPdt7h98ybbZ5/CWFnbgogjGtx+5iY3njnn/NYJu9PK7qRy8/aGzdbYX+z55Q9+nDsffRlaZxY4Lo3L44r3YJ4Ni5Ttc1JZjwv7F++xrg3xRkTP+8C6UDXYnG3TD02EeZ7w3nn/V70VmvPhf/JhakmpamsdCU8Jfow6b56BIDzoS2d3qzLd3HFscHywcLxccSLXy2hCEmAq/Cvf8FWv96N8YoYC//K3PJPprC3DcsRTxuctiPaYfRWeda+7ZMCFX6VP5/msEgP0Z4C0+X8xmLaCtFT1FAUt+UxLSabXVVihwjVDVsbX11RcZ+2+pCI3VhB3Skj6RnQnvLHpwVuKceN0LJgnVCHx+o/gm962GWep4fSU/l2hlTGawJJejtaDZv6YdifQNdlZaoUwYdXcD4QE+F1y0amksbtqTaVMqRRVogdVCx7OYSQa1pYKieikVHGesDLWsg5JbHadk6W1tkz0ddDIACpf11w5nszAqx8JjbQgkHwf6FX+zwjEK8PmRnywt7zQo6HDWy4iOHZ4/7nyHW//3Fhab7gK7jd+/Xv407/vGaynn4PScjOxjl8uHB8c6ZeNzcmMSsP78dprKC8IWZxZCOrB/rLDPGh5ASdahw8IyHHh7sca9bxSZ2FVaLLBNYu8ySy9cVToQsbes6H1oIkiGFYU05mmK2IrlWTkdF/xEUlXwsHzwmmRPj3RO80d6wtf/r4br/e0v67j/2Pv3WJt27LzrK+13vsYY8651tq3c/apu+1yVdmpcpEUZZcvwUax4yJxgJhcDI58IcREARGQkHjiAR4QCOUBXhBIvCGkvERE8IBEojxFCpKTB+TYUUTsEOK4qs5139aac47Re2+Nh9bX3uf4ktiJqZPap/rR0d5rr8uee4wxe2/tb/9FfsOv0fG/G9y6uyuRApJuG/8wR7bJmWajdseeG13fIgaBxGsCmWK6LOpUD8lhHQVzIgCrho8UuhDVJ4k3dNaYR2YdZqAOSxM+9JEeXjYaZvOaA0DSPgAMYtKjHkko3kIimSUSplRD4irBSqWucLpR1utEP2WmWch757wq29uZ60dCO4af1rrGxqTJSZOjsyGXRrtWpnJrLu5sOP/5D+55NwJxy8Z60XLfsrNevuWjsPTBcMge//5lDjNiVwsTYvGRhhSGkGUJvxVhFMtpQIHCkOq8MB8WETQHu2FKcQi1HpONDvSjUR4onjqdgiWhd+hdSfNIBivp+bPYz4Yflf4M+hNle9vZ3oDT18AfKb4py6WSLqMBhADPTMI7Agl/tzjROiWN1LIer0iJ6WVrPRhbCNoHM6/GZOpUnR/7ntfiGo732+3zcfvru+WHt4ytd//ZB3HdAqe3O9H3fdygg/oMqVHYEA2ZoCP48PkQAD0/Bw9TcZxKt5WUFaXgqniq4J3OirOScqGp0XOLxMsi7LMieaUzIS6kEtNgKwe8JHLOZEv0exdo76iGV5V4RiZH9sIke5JklBVPIc3KLdJ7c1KmnBFz1BV6wrvjPSjr3VYKldQSboLeZMpasK8l/GsL/rUFeXJBf5bxB8/Irx5JFxmfN/zyTDts6L4xZee8wLa75j/80of5oLnBZ8J7L/togjQ+nlOkaqUsZJzuYdzqhN5FHDaPMwAb4RPJSRipv/ClLPTnLC4RDd/HNJq004Y0Q7fGeY3k3QQUIgBjSsGu2wmoCXauHB8fY7qrwipCLUqdCp6iTjIVLCk5OaUUpizsEmQ1NoxuRk6ZNnxqeo/mIufMbinsS5z5UykUhLo1zqfKee2crivzHIl6oMyTMO0ymhQtif1uQtbKca2008q0m+jdOGTlck6c3Dl5o69GWzvVnNqN1UA/eGU4AIe7d7g67JnExzAv2L3eLbrzXplV+ei9e/zb3/cF/si3fIjvKJX77QmfefXA1anz5e/9Il/+lz7N1dWrTPcPIBvbdiYXoZ1XzBq+VeYps7tYWOaMZI8a2Y2Lw8zVg4VpVp589THn44mbJ89ggGG1ruiUePbOU5b9xP1Pvko2YXvrCeenN9AqfjqSxGjXZ3aHCdTJU6bWjZyVZ8+OfOIL3wrmtPORtnWsduYlntuGc143tpsz85Ij9GBWNCloouGwZHyZOD6pHJ9V/LQhtWOnSj93usAf+6FvAlq/G+vzX3rAAz/TesbNoLeQVvew+6h1gFZjkOLdUQ9gYHi3D5bri/pc02jeiYHlNIYG0+zMS1iKzCPtftoLh50gG0w59susMEvskUr83TmDZMEabMPf1hthAt5BvDMsm1Df+PE/cIfnvcs31+/iiuv5L762xGBGQ60lg4klpGGmPgAdd7rF102MgZ2HggILdpOYIS1qO9PooLqDkTDJgKEibHWjNwE1PFgG8XoGc9rNaTk9Z1+THO1Gs4RhcZ6aoZqYS0FxanPGBB0nFBwpZ2R4YdbWsABF8A7nbgNYC8+vSdIArzRUQGY0j33drJIkWGLNHdFQqKWcOW2VP/nt+3/qu/CBOkVz3vGz3wlhiOyoGjk5YhtlcvaHTF0F3U1cHlLIf2rh4hCms1nT0J/OQf9rid1VSCgQIeeCORQq7fGJx4+Eq9cWLg8zaGxWS24kZiKANSNaaNJxVfZyG5c5kXykipkzy4ZKo4himsA6WSCrU2zFzAd9sQOVOtKcihtJ4c/9yIMPdKLFC/nbrQn5bUMYjbQi/Affd8DV2SyMXLtDPQqHKUweO8q5x4QupIDB6EumTCojHQnEhbrBcQvH9a07pwri41VIMPPEYSojsrU7ZmGoZx1KFfoUnglTUnauzDh+VFKDeXb6GkyY9Tx+9pjsZI8EqJh09kjOC1h/pChCOTi7OxaeEMU5XHbmOw0KrEfl+pGimyPJBoPQkRlSEdiBX0tM6CUmU/dyHtfZeQEUvnu9Fzh82dZ7IE4NcScqYQ4sMfVn3PNbUAYx1hpW/0kDyEoSUgtNkUKpORgTogF83V7CVOLneUrUarAVyiRDTtrpN049OfVpY/1Kpb3jbF/pnL/WsHfg+DqsT5y6BkNQ8xRJJ0tBknD5IWW5A5cLtGchRWsCaEigjSCK4krSFHLpFM1tVgmKvcIuCZMmTOHUQ6pTBNQ7juE9wPxbKv7zHWpgoO4B7rncPlvw9Rek//O5HOcz98NzsUrHbMNu6esqhBFHDRm07CiqYAnNhFF6X2gpmFGbnuhpxSUHqGXgPvzYyLhFMVSbAxMnT0iJ+0fqiO5oMpH6CSyxPAY5TFht6NzpDnmeaMTwRe3Eya7R08bcFmaF0k6QGkijuXOqG711vHWwFZOGU2MYoBl0hm2ivr1DTguyNOS1hj08o6+tpIeVehkTzt4bSEXEWNIwhwfOmhDZUJ240iNeUjAjPyBnZR5enqqxB7kFdl3USCZMObw4NAkpK1lDaphVKEmZSjA143kJFnIpiV0KSXySTJKYyuYk9GpYC6CMeSLvJ2RS9rMyNSejTLlg54329jV+XbnuyvTqnosP3WG/n1mfrNTawON5NIRclOqxhyz7OYRqFnvw5s7N5lRN9KSYQF4KmpRdEWrvTCWRameSFFJEEWTKyJSwKYVht8B+TsxJyQnyYUc9N7omaM5p3ZDdRE2KZkGl4ynTEawbVMeq4TulScJKfG4Dtpf4bPzHre/+0R9l0ZAThtFwNHTmAWLv8sTve+Uuf/73fz8f7md4+g6sG1jj8d/7Kp++esCd77zPgzdOfORqYRqsJreGbQFqpXbkePOMXjf8fB2WILVSzxuCs21beE7uCpev7rl5dB1G3Qm204q0znY8IbVRjytizvLKnrI57Xgma0Id6s0GSTher0wlQ68sRbm5Po7ku8Zydclbv/o27XiE2tiOG3iEaxSFlIxWLUCsHJ64XlucmaNOnS4y00VBDnOkY+8SlnQkiAn/2u//vbx65+L9vrXf0OsL9yraO6k2vNtglfYI8xm1za20UIgBZvgYx546BByR5Bvk/JBX39K18JCOhSI+app3BTy7eQyRk9C3+JrM+Jk5gK3pdoidnKnAbg6QTRiDRumo+/Ok2oxwzxo//D2X/MSPPvwmnvW7upxDFu6XsDDwVhGN/R2FPryVUcHcnte6McQD7fF5LQkjSA8dBwnpMn4LiA7lhUVdHNQ/BRP6ZnjrpFLodNxiGCQeSZduxuZ9PCAgFiYPkqMvqa2OGtsjWGUM9lIhfB+tDdVIWARYD9ai6Bh0jZ5G8JA7KhQdPY+GEk1U8KKj5ogUdrdggJ9vKoeLggN/4tP/dPtX/me/kf/8L1Hlv/q5T8WksBpePVgK7piHUZu7cPPoyNVrV1zsHXVhu66UvXB2yASzoZDo2xmA+QDWOnKqQVLQM89OHZFLrh5M3LncqKPpRzLCMEfWE12U2TtbFxLK4h3Pmbm1iIAtkH0KcAVnVkdpuCW6J6oLSTp4yN7WvgX9xp1FMs2UYeGMlx3/xc99O//p//grLzWo8FutW7Dh13tk3QrjRISddqrDyeOw4lqpsyMtJmeIk4kkmW6he082GniL6XUSkDN0EvcvnGdrGKzb4AYXAIlpT5MwzvNhzo16UJXPgl6EhPGdX1MmgpaqSfB9SNekwWEOCWHJY8Mqzvk80u4I2aJZCo3yGkKd5QAthQdWE+c5kJ+CIr1MkGdjPYNVRXtIw3pxkjuyN6oK61tKbg57EHEu9sYf/Uzhf/2/63uu+y0v6wXU8/IukWDC2UlJhG6gnxs6J9Ye4GJxJR+gb462jB/Bd41usUekDGYJNUNVad0i/WoGO4XJsvVIcSs50a836AW/7Dz5uwFqGkorQl4EvQhJIXMnl0GLMOeAhpTBwthxf5k4PzY0deoaflsJx7MgO6FkZ8LZWmgbEg0zYZmFVoOxiDt7T2weGvtmRh/JZ9WMbEKno5JQc+rakQZ/8d/7HP/Wf/9L70kwfA74EYXeu43gP4Db13uWDEzz45cLP/15RXpCk7CilAzeCimHlDllwBJ16CGKOF0yYgK6cTDBmGitkVLCi5FlgbliFJKcQZwkJZhcHhLFZBmWyladxSYyjvqGnpROIt0zeq8c9oX17GR1qI2p7IDOtLvPtKz0t5+BG22DyTI+GX1zamuAhwmyd4ru2XxFU2ZrG+mNglhhnVb8YYUuo9hTTtLptkHfIcs1dduTt0zbPUOZOJlRkoGFbxhNaa0g05k//6U7/Hd/4+koJ8e1fomfNxnDhyhSe0R4e4IlUZZg+TYPjxbXANiLjy4KCb+YJOxTNN5GsDUTIXG/HeBszQLYnwMULalQxFlPbZgeO0ohzeG5NV/ume8KYsbpuOI2k0rCLmbm+xfUmyPrGzd4Msord6EFa2GfEk40BqIECNuNZQowqpuhCLsMfZqoNQJ76J2Li5naQlKtmpHegt2lSjLjLOAa/lhlmVjPDZ8LalDV2eeJrXWSdXYPr7j+R2/BqxeoN0oSLksmPTtzurigShysrtGsTOkDUYa/Z/3Yz/4EO6DWxnrc0JyYlwK9kZPwsXt3+Nkf+jKfffYYvZpgvoiNzzr4xkXNTH/8i9AP8MMf5XuPj5l+6e/za9uRN1pj2yolK9dPT/Ta8LxyrMaUE71VypzZ1i0Yfb0HGKHK4d6CrZVuylQK3juzKrbPIJ3TuZHVWT52h8dfeYw+O3JxseN0vTLvC7WuSJnI7iSL13A8Hcl54sGrM2/+g2f000a6SmgPb5m1bnSHdTNKCZ85M4vasUcgS8LQKXFeAzlurSEpmsQm0Fo0ojkJ3/v5T3HaGn/t53/xfb7L31hLEX7yX70Da6P2HsbVrUF1ehs2CDUYLxakljB3j5kkXYTeX9gs3M5ELAgxFA1QK4vQfQRtDF/RLMHoymlYODh4cSbgvEIvIS1U4utTGswbj7ZPJVhcrEFyoIUCxBjIWjNqKnz2tUK1I9/z+bv8zV94/PW/yC/hukrKFx9OGD2OxqR4C689N+L9aqOQ0PAodXPcK5Ax1Rh4jBx71Uz3PsJ9wkOwDYN47RooqkHHyFlxevgpa6b3+L6ujpLpGOJClkyThreQLupgiG3VmaeQn/YWChHfoge8vKMjICbHYFES3XvI9K0P25rOlARSWO6odwyLxF4VUvIYdknYRkjryBQ9LGZ0hXrTubooMSBvRmuNH/+WHdkTf+kfXv+278NLz8wqJfEX/vQnWXoP3XPOZCJFRrJQsjLnxqEYKcFhBvUSU5AlKOmzKKpTbDxrY97N5Knw5M0Tb3zVOJ0ytELlLncfvsaDDxfy8JTJmkgpgeZIuENwJnIvmClJchSNKeMtGAuWQxoU3kjOPkHyGesz6oZiTyfpAAAgAElEQVRJJWse5r2dlQ7DqBQRmhtVNpoKpgmRzl6dz37qdy854Btr+W8A8fz5f/BnvnRFd4nGpQt2FGoyqnpIbFzotwmHcS4EICYBILThtt1dqV253BsdY5qDMefjZOtA6xaHYAoGwJRgzjEh72dB9/Hq8ETJkYboyVh2PeQetymFKiQEKtDhfIwut7vTxKhjQ6sd+qqkaaTE+Sj0h6St+ThFy60EEnRLpMk4rkLbQrJYTah9GJRfOnZM4Rumiib4ic/t33Nt4d0g4nv//GVdkyqHS4WUEDFyFuYSxY6o4gpJUkxerUVyoKcwq/ZhCJnDhD8JgUgA/dwjbrk70mOCvb7dsHOi3VROX42D6/BwYv/JxL1vg6s7zsVdY76n7C4mEoq1TreOWcgUw5jUwXsArtLRycLvS8IQfNk5YUoTwG9Q1lPE8xps261Zs1LFQ5VohopSPQ7I+HuMkkKKu3YnS2eXOq1FPO8/wXh7PERxPZK89MfWb7082HR/6vMHug3DA3XmZCRZYmw7PNHow0dNGyKdlDLZVgqFWaJiFg1PrdaheKJYJefEJEZioohRpsSEMlGgh4l8XhZyV5SZTKccC75L6OVGq+DLDtuEQ9lFQqUTyW9iIY1tGzLtWNcVzU5VYzsl1graMqkLmpwme7rUiHq+EfyNTJ0a22tn/F5jalC9hRdF3xBpKCl8JtsOzY182Eg3lzFt74lWO0VOFFqEa0gjnzsfOj/l24Yif5BZX2qWVtQPhliD1UlTYVpCWqga/hgymGppTHRdhKTKlIYpPDK8ewS1jjehS3RdXRUXYdkVJo3UREXpx0Y9G2UplH1mvrPj8m7hqgS4Vgbza14K88UOOTW25lgC187+asfVR6+Ydjt4+xo7VorDMOwiq5JQpLUwhXdDzFCHiSHFqTGlXiZlzglrxkRI+LUH5eJySqRbSWMzXIWTdY7bxo01SErKmUmDRZGy4i4kKqSZB7MzuWPrxvrmE2qBZjU8s1ICg1kS5yfn9+0ZeD/W5/7En6SMYYokZX+1o4hgpw2VSKr86e//Qb7rbkM/9+1w9wHcewivfQwuL5C7O6aHr+DHHf7tH4F7d+HD38rv/baPUMSAFooLOqkodtqop3N443YLew8z5ixYa3R3ti3YXMuUqddbhPH0Tq0Nt05rYQ6fJNhf27my3NvT3zry5I0nwVYk2AFpWyMYYXNKVooq7bzF0OFoXL95QzZImljPFW8d2ypzksHAAhmJYqQIelJiuNU8Esq23qku0fQStiUphRSptWhu/9D3ftf7eZu/4dbHPrUjbS2So63hw/AdYu/oQzooHgzzBEgQZ6J3MB8eWuNzPlJaGWyuHrU3w2NyDkI8okPyPbyHdHx9TlAm2O1AVl4wdIbsUCW+v4z/51Cf0Teehwdh0aN0wtOS1lEvfOmTiZd9wPz1Wl94tdDN6B6J497CWkQg/K9UB3VZwPz519KE3hrmFpK/AXiZRY/YR3iKa0hgxIU+wE9TIaWE9YRKmKvJ6Ee9QyLhErgAnobcUdCc8AE0wQg3aX1429pgS0Hd4vfmDHlk+MaVicHAkiEHh+q3/bBhyQPk8mAii8NMnP0RdBH7pABtyCcv9uPBFbCh9lCETZx//XeQdvhydwUi/Gd/7BOs12fqeSMJZNnipkoYes/FKSkz6cSy3zOnFDKY9UxKwjQppcA0CX11Lu9M+Na5eesxeXfJhz5xwasfPnD3tT0PXjXKdMLMAYuiKkOXRJGKdoes5Mkj0loyJSXmET3eAXQmq5KTkrQHmwvHqJhsVFGmrGS5ofbO2RztCTVBxZiSUTTMmlHDtVKaM1H5s19+5X2+Ie/PeiEzfLF9v/vjj+yiWdYucANNBV1iCn12xZOHWbFFwpxrNGdI+JyJBD1+7c7+0oBAqaXDecgfPPaOUXgMH5EUCRTNDT9m0hKvzSw8ba7udzwZuwXWc0zhugd+5RaWRXkOKWPiNhZY6E2pZ+HmsXK6FvTCqBj2/N1u9C6RDGawbbdSEef8zMmHju6c/V1jPYYu2prQGgHSzMHaqcdgN3bG4S2/OQcr/un+0h+dn3ywJ5XBiHEBE9p1FNVuhsoo4FtkV2r38JeS0KKLOJ1O80IVR0uiDflOnkfsbVasOlTj+GxjO4dj6N3PZPLBSVtDN2fehc+MYnSc1iMtBXNsGEG2HqzEug46vKWQwhDAGh5Jneszpz11vCbUEqmM94E7j5/Gsxfs04jy1SSIDwaMBoPDVUYSirNg9A5rdwqd/+bf/NRvAhrEw3oLusYHPn55uUHR32zdXh9V4btfveDKTphH8qClRhbHeoSHqGdcG9lTBIxIImkGESTDrB3RjGVlskzRRJlLgJ1qYcDheUyXx3OXhiRWCpkZb8bOZnbVWZ9VuOykbMxJ6dqZpKFZObeNrDOosbaVXJTeH6GS4dDJ9QKtQidRuUaTY6L4lFC/RNM1tR2x1zP2yMn7znRXmVJFDUZGIUXWEYEesl6VhqYG0hGtcOcUbFMN9mhrDbZMVaPaEZfElgs/+dnXcCkBBsrLDcAHQNWhK2mJCHHxOBmt3wI0AS6lIX0Wvy26hd6M1ozeQpZVcmGe4/euw0tS3yUhPlXchf1VZrfP7NWQTTlMypIVQ8kZSgnT2boFc2t5cKAk6G0kOOXwE9rdPzA/vMKOG+31a07vPGEmkzWAtZw1mGU+zsremUvCVOiSY98C5pSYVZlSYjdnFnEmCbDeELIotQ1rB2CtnbU6T5/cUGtlTjnM3msLA/sKuwcHnn31KRkfiXhwuIp/x1USypRYpoIdK8vV9D4+BV/fdfHxH+LbD0LK8R5TD9Co7ArLbmbXlE+/8iH+hU++Co9T6Kf29+Ef/CL8H38Z/spfxf/q38Affgr54R9AaoOrK7h7hX76E1zuMu28MZUSTXzv5MOElkRdT2ANTUbbNrZaRypnsJ5d4HzcuHqw59mbR3p3EnA+V3JK2GllmTNIyP/ByK/sqI9O9Ecn6vWJi2Wi5BTBBtaQtTLhHGahr5U7r12BZKxVEh5eaxZD614rW2vU1mhrjVS6Ek1gLpFSpgK0xqKJOQneNXoZnG6MOiPAju7wI1/67Pt8x78xlkriD34qAm3oFr1a76QBDsSgO752WBsxcKmRMs7z5OkiUU8V54W1BICHPFDc0RHwlFLUi+ldZ00aZ880huepCPMhVB88D+wZYFZ6YS6fRNiVMI8vHvI1dY8kRveh6umoN5Ibl5cvd/v/9VgK+EjtEw/fRhVBrMc1lwCDOiMMadTc5k6Ppmncm5HLZQGE6e05fDtQEx2BTYGodgv5q3uLF+LgI+nQNAC1Vi1qfq/hdyuKY6ga1odFiNggZUTysyVBcgBuLRC1SDiXxLRLIyhKBjaSmEp0d0aEkln38Dcd/a4CNnwI0jB8c7NggavQzy3mr6KsN0F79AHMqYz97re5Xlp+cyLx7/7Ud7KUG7yFn8z66Mx0b6akjLqzuJNTwyTh28bh3sKyKLVHEznNCSchrqzXG1dXM7adefLmibzc5fKOklMHy+A9qKiSWQqYl3jIszC1TPKGT4Fa7lPipq5oUZK08ElCkAKdhrdOLsLWMjlVXDJufQAWHtHWqYR3Tg25QE3hr9TdonmWMJ1LdEjGJBrG4Lzc/kW/2XovgOXcejvdQi9Sw0SxA3nnlNTjCrmjKSLDk0MZ785kyuYerJth5iemWBVkjms7CZwMVJw2wK6kwTaoXVg2x4ogJtgKabZIt3ElaxQ3b7+VQIzDpbOucbAZjDhUQJzr49gMHdQFr0KtAqWT9kE9V2EYdIce2iQYY2KBvOcEfVM4gxRBZwMLppoejLbGaamLg4fMUi86PBHaMowFgc89EP72W/b82jq3B/SvhxJfrnULNHzPx16hISz7zumJInVlfmWin2F9HFNU784yF3qNAyblHAcWkEum14bRSU3oqZMm8BEX12+M9ZGx3xdOq5HzDnkFlhlwY77IsIUUtRlIn8AdaTYkjOF7E2b1Gh1eY3Dl4xnXlHCDnOIArmbUrogLuwnWc0dKPNeOc+9qvKc8CicjDCWccejpMJCOC0VG2Rx2RNF1o5VP3N0xCPTvuqovDtlBKHxJn55/8noP0CeJH/uOwnSdyHNj7Z2SMms3liVHMSQbakrLwmQxtfduuEDhQKGSDVwnKECvaK5Imjmvxi4LOW2YZHprzFNjq4lCJqlh4hxOe2o1au5Mhx0qhuvMujk5RXS0u+O9k+eJ7bixFKjnjuqEaqMipGXlXKFpJVFoN43tukMuYcLsF5RNaMuJ7aCoNBIZvGE6QQ8PItdOH5R+N/BckFpDtkNCmlIvDDuC6Ez1hKuT+4ayw3oNAMa+xnd//Iq/9Q+fIMFlfWmX9Ib1RJqCXZUjRQbzW2+OwQ7Igm+OZo33tRJplwOEd3empIhEY90Gw5kk5OTo2dFZkSWHrNQzSYX2VDjcj4TN3qLYzilYyqcaflyiglsjFWVGWE+VvATQmq2TsvLqR+9yfHzitBlPf/VNmiu6ZKZ9puwOrLVT5hBTNgvPP/HOpCkYp+dGmkP2FfYBQktDbOoaAUFAdmdLheROHpFkirOo0DVzmGLgU92wbcWlUJ9ueDPufOQha29clPBJmQVOW2NLjd20vH8PwddxqRb+wI98lCIx4DEE0U5CUTc0JT768B5f3k3YL/8d+OWvoL8ILAv+8DuQP/0fg53gb/51eHIXWV7DP32Fv/HLyMOPQfsqX3vzEXVrPG3XZLW4d0KAm/NM1sZ2slBOtMGU8M68K1y/c8NuCVVFGtYQKgHo0hvLfsKasZtySFIlUc/O/lvucXrrhqevX9OfVcqrO9wFL4W+VjZim81JuHN34vjWY05PYL7a04jmLonAlFnXTp4z6j2GTWronEOm1EOmbxqqDWvBhEgK5xqvueuLJtg1BqM/9N2fez9v+zfE+sN/8C7dVqRHUIS0wZCLxwCzITtvMHyzYw+C8P2R2wALZ5JQbzhxD2AkGcZ2g1rYlYiHzYMO4/jl1t19DDDFogbDnWmCCeF8Hl6qKZ4pD4/w56M/SSAt7EGSRg1vw59UtIYSIBmTK9fPOt9c/2zrez+0Q9TeM2CNsV9YY4gqVsM2xMyQdGtbMwBSjaRfhPDyFMMspMU+9kQfLDu1F+wu1UQXj/AWlO5OQdHi5JbZvJFTDisbgh3W26jbPVhUzR33hGfBCJVIkSDcnGunVWFKIRlMKTwqe7chn3WcFs+bp8A/0JBVqkUNkYgHPgulOVYUNcdcsWL01VmmTAP6FpJJEYFqmCpppBP/dtdLCWblZeG//MkPkeRJ9PyhZMG3YAzsZo+iey6QBJWJd5484cMfKZgrtMrhsAMcaVB7ZX/vAltvePurZy5fveTycsG9orKweWU3F7w3MsbpZuXm0RGVjE4T+JmE4c0Rv+HGKuwSc0TtIDLFA5AMtiNpLvTmTOq4zpjF5oYLW21MpWB0JoMmTtPG4jNmypSElUgSCj2Z4tbQVpDS+eLve8Df+r/eeh/vztd/vbsR9vf8abwlD3eMm6NAcnKLN7sHnkNqwfs1J5B3CQ8zJxpt75Eicus/5S2a+1ViUqZD2D6LhKZ4AD+mgtvYsFxDUjpOtYQw9gRMg5+8bjJQ6kgO8x6bhZhjPUUBM4EWY5KYKN/GXEMkaVgDVUOycJsI6xjbSZkUuIxRkvfQOleUKTlP386kfWilNUfySmuw7UFuhHQnStP/5Aeu+Nn/7THv5mG9aMMFXtLW8DYh7gsfL7RThxkO9wQ/LpT7Rj+BnACFeoZ1q6gLrYcMtKQOnulbCyo7Tk8JFSNpDtPaZ0p9qty9U8ivFg6pI6qQG62Bd6fXFr7fEgeglPASMqBMSjchb44lI4tyapEM1rsj5tQYMyG1UyUhmpjduXsXrt8OA1PNKRKigOTKNMN6HP6BHaZktBa+DUlg7UJOiXV8z9YirncTD7laTlxX43/6c9/Jz/wPf+e9rKsxlXqPOfxYSQK4/yCs515iAv/OFz/EYm9y3u3gWFnDpAEtnc06Ikphh1Khx9i212jqtG/stQATVTximzXRgKUp6xwJu6WCt8wyG2spIDP77LS8oU83dnaHdXpGvggp2GoGuWBqTHPwXfp6TU4Tu4t71Hri6s6B7XgiL0KzM1udseM11687kxzwS6UuEzo7hxIeEbU13G4irScn8JXCgmqn1kTOleoFM6CFN6F4JntHW6ImpfZCtUhzTD0k/3Xt5FkwV8ScTQGZBphT+MOvrfzSV4VT5WXdsgDIZGSJ8+k2jVVVwrSdkcQ10h6WORy23B3xYG3Nc2brMOXhAZNCRp3OjZtN0AXmrLTFSDkSjrIqnDvlspDvZqwa1Z0iytoNV43nMgmpxFikrg3VGNaZKvXYkQQlZ7J13nm2Me8T+12mXRWKKM07kifW60p99BSZFnQvyN09u6yRntdiaJXmzLRW6jxRrONJBqNBWFJHNmM3LaRpop9XylLCE2zJTClxapFQO02J/Zy4OZ8pCr1kPBf6KeHbkbzsubsLVuPZKk+OG/NhHxLvD8D6sZ/548GA6o65jT1dyTmREe4fLvizP/g9fMv0DD7+ReQHr7BfbcjnvwO5OkA3/K/8ZeQrhv6ZPwKAsEcefh6A9gt/m6fbhtI4H8+AMBdFqrNMSrNtpPEqZh4SRAVZN2yFi31BVNjWCqpsWyXNSijNWgBOEomWtRtr66DhJZnuLqQ7C6lknrz+lLkU1qLYfsbWM+vWkZJZinD/k6/y6B895Y2vvsn91w6UObG50JuTW9gAiFrU/TlHPRDFJHWz4Y15a6L8ImDIRNjW8BzrzkjZi1rwm+s3X4Lww//yfT4sJ7wZp9YoPVJY02BjeRsMq1uWlUbNXwkPrNHbs1dYfMj8PNwZdikUzWYEE4uRhlg8pKYpFBJ5AFri4a2l4mgJLKABW4fdpZNnuL4O4KsSQ3MbpvBbEOGZh+y7m9MdFh0p1oN1lpLy3/7vj1/mo+3rsj7/ykJWi0GhD6DyOeHASCnRrQ8iQZilOxbS1FuPWBHQhLg9r2djJCwhHbwFskTpREJ69IExtGakAWb1wSpMdDVKyhEggWGmOAmVsGMIZpiRirKtDZEZEXuuFloUzkeoa2O+VOYL5Xw0cg6v7sM+c76xYVeTGP886EYfzDG9ZS9mgW5sAtmUZnFW9lMn5wQlWGJrdcpehxl19EC1NvR3QM166cAsAf7rn36FdnY8hWmjuFPU8ezsMMw1jNMk0rkAtMUBlszJCzQ3cm80U5aLjPiZN964oSyJe3cmclGS7qinI9oq51PHzytsju0O3P/oA4QWU+o+dPdWwtytJdpmnG426BvLvFF2M1vtlDLhDHc/S4hdh1yJxMjmDPmhOeaJKa0gM9Uh2xlkYjYdQMVG9Qkn4ym8MP7UF+994MCs23XLyLplC4FzMRUe3chz6aBYSP/UX9A/cVhSvAmTC60LpRiVkAyKCtszmHYBhHWDlA2riSn7kPqApZH214WmPvT3gktsUkjIMjoeceQegNgbX0044b+01XelKW5CPyvMDlMnDWm2VYUcrytoqgO4k3jtsoXZ5e1lSBOQHOs+ZD4B4onGpFoXo6+gy0hKyUR65iTIFl5MOo0N7ddd8ffyaV6+ouo5a0aEB5f6nIFXZuP6sbOTaMDUnU4Cq3iFsg8zWpUem76GJl6fX7KhR7/u1KcJMeNwlWGCMnXypWGb0swpk2JP+ojwjQJr2ivtZME2WUGnAIRUDU9hQi8jfCCR0OykEXvfm+A5iqquQR/eP3TatZGugtUVR2gcuv0M7OMQ8+7kHHtTHdVZsw3x2zADB5OQRY/QA+/C3FNMsnhhBB9UZR+eXP5SAwu/nSUCn1neoPY96DUyXzKREFa8LcwlErqkj8I4V3BnGefg5DNIoWqleyUlg9SYPWGawXoA61Mm5aCpzw0SHcmd/LqR2eMPBb9JyBJJlaWEC4I2pUxKvb5B8wKTUls0kCaNkjPreoMfBX/UwA9Ml8J0Z0VPiukJ0UR1A1fEpiji/ByS1yzAGvHUnhG351IPGXHVKGTJIZT12NMmErXVCL9IwaItJ4PS2TK0k4OseAbpihf4N37Pa/zFX/gK8PI+drdyJDfQpMGMUgtpjXmYCE8xyZHbw0VlfBx+jjuc2kKS0FRJEnHbZREkx96YUyL5KO5vNuY7y2AOOJJjz3O99XmLoj/lkPAnhYvdxFobeMipUMck0Z+eOF8tTDNUDyaoDi1+SgXFKJeJ5c5DMvD4V99id125+sRdNPQOuCj7LGie2FrItNNSKNNEXc8oGTmfKWJIhrwv7KeJ03mjV6GtlVzSYCMKN1sNf60OlhTdGtPirF+54d6nrtiasybj8ZOKTZ3EhLf6j71PL8O6uHiFSV8wdLEhzZF47mZVPvXwo3z0cqb+/N8lf9ePwMd/D/Jxhf/3/4HLb4MV5F/5mZCqjHMhVphx/P1ffZ3WN9w6EB4vfQWvxnZ0DlcLNRH7nBipLNjWwnQYZ1JFU8Yn6O2G/bywrhslDHCHj1WjkqmtU1IK5kR31i1i59ZayXf3nFejbI2WVw5T4XoACU+erdS3b3jwsUv0zcTNkw33jdNWuXq457ArAWy5kAnArA22kJYCqQc40g0dzXA3p9XG1oTjTcVH3WjCC8uAb67fYjmf3J/pWzCsJgYLK5RR9BEApxYE9j5+7xC92K1IgjB5j700aicnGFLuUErMY3TIBCXffn4MqnIACU7ct8JzkhZtAFxZQCc47KCfQXY8N5tvxGtRAc0BBuhQXSghYS1TGVJV5Tu+Zc8v/crx63ytX56lkrg/R2q7SwBEItBrWANRUpAZxvtTLJBGR0EIJpQ4PiKEe1ck2ah3IwQCQuEgLiMQIljTTEJuwZYSdVQy3VvcZyxUQu5BerglZlhFc3ouURyTYiD2Eid6mawJ8c6coXYj5UISxWok9xaBvkY94N7D76t3zMIjLGn83UmEOsAzJZGGTQBDGaJTJmeneRA35ikklI4hFj1zzoVaf/tn40sHZv2Fn/tkmGQXw7bONPfRFSWWkumtogMGzykFXVQbRYYp85TxqXAhzvkmB+PAhNIT2uD+Rw9cLdC78+j1R0hPTBcXXJTGTRM8G3cezFQP+jQCklJIbNKGdKFoRy6cvhRaV45Pwd9+xnIpdNljvZI1mBJqmeRK94i0OEwJrGGiMVUXRTZHpNNQvK4kPdA8jHCNkFI6mdozh9yCquwfHIrpr5dWvpst9NNfvKC7UbuQNMCqAJeDZmwt/KsG4sDmTsnOsQqXc4BetPDZmiTSn1SHVKMp3TplgEoOnAX2c6TYYGH6aMMIz4YsMSWiL8thvI6HdG8723NzPQ/GMOnKKQYbw/eKIOTJQMtVPCQfWzQfkpwyD08v8UhWGX5a5iE9hDC8F4S2jTSVqhSLhI6thUG4qNEvHW6UOftzueHt+o3SsJezLYzJnFNKRNa2TfApJArbGTLCKmFGvG3CvBO2VUgjkVQ0JsUtyWDGGd4FewpeC2WCcpFxd+YHGp5XKJKdIon1WWfTkCBkiYlub0IuoBbNua9KLjGN7haeZzridXOWMIWUOHCypud3Sp3wkJiVaoqenXULyVrOmZ6d3b2g2Wd3NveQgRGsw6LBCGtE+EUj3h+IkTzRLEzIuwk/9d0f5n/++a+8uK7jRdx6zr37Wfog+WYJIJrIKqxdcb9GmSBtlDXhpUPawmy25PCSMkMbLLkwieIUUjJctlF8h9eC1wX3TtLMJhX1CVJHdKLnSs2Fs63cfbLjOCX0fibbFrIJOuJX4M623XBY7nE6v4NqIU8Zl86cFW1OszOP31lJm2PnPXpPKMs1opmKYzul3yRaOpPSBdAChBcnpUz3hFlFEvSRFNR7JGRmF0wnup2HOrXhnoKhqJ1aQ86tKZg+lhRbGjfrwlKFPG24FcDRMfT57PRkXPxbPcDLt9IcDCVJI15eGl4zZaje3G/xK8fMR3MlSE6owNbCjDoNQ+KO0cnBGPWKGbQWjKVpEtabjbRkug32AZEAm1Rxd+oIE0kpQA/1kbRYz8i1Q42faWVC6ol0b48PSD2pU5I+jxtXF2ZxrIfBvebEw088QKtx/Nozkgp3XrsKuZnZGPYZeU5YUtpW0Tyxs84b10I6FKo5u1xoSUlzJll4kkjtTKrceEeTknqwrms3VnNmc9ZpQl9/TH5wl7U6p2177tisKb1vz8DXY+13B771D30ZlRjquHbiVAzGgSZhPy98/yc/Qnrr7+Ef+gyyTGAtsuGf3MDRkcMLjx/3M8i75Jn2NX75nWdcHzfaulJrY54S9bix7GY0O8cnR6b9TCkJQUjWaDhJlW7GcevMEtKsrXfqtsV+moId2LZKTko9NUrWABC8P/eHSepoSrRmLLvEVqB+9Ql8+C6s0eTWU2P/2gUyFa7uO+tByQLHU+Pp69c81Rgk7S9mWk7krJwH4OGtcr6p3DyrYb58W9Vq+N2kKbFcFpIK52aRWCzwwnTym+u9K+z2A3Cy58Nr7T48pwJY6oPxBISJ+7jfUeUME3YFNrASnAOI+iXlkBxCDF0AyhRy55yjvjqNIPrbp1vHzEAZau3EcysKFeHi4JyBJrcywjGo9NiHp/Gac4FB4UOzxJDCndrgS58q/NKv3KolXl7VxP9f6/seDqjRBqjuQu8dt4E6thag1WCBakrYSJUGQZLQa/hTiSmiHe/R+Jk7uUgAUQTIpGMAEGmDUQ+bj3CT8T2Scsi1pdN69LxZFB0AkpnHACkFBNqGIbsmoZBxCW/d3S4zzc7xFKnStXUkK+upsZs1eoQcTG1rFuhpt+emDO5OUyd5Hoxvo9YA/RSDbkyp0DHSGBC4xCDcNICwZo70/juq818aMEtE+Y9+6nNUf0zeMlk70xypXUUyRYMNcbrO7PYwdyNlCymgZvYXd9hPiXmfyW1lOxcuLhRRI23Om1YFLewAACAASURBVL/2mI98eEe/vuHJO5lTr6w3J5AFe/IYugZKPhVyforOMz7HDqXWIGVqVdJcYuPzYEgkU3bayXLBusJ63RHbyHcymcS5xkM4SyLvMmZbNIK9cLaNiTBpBqPZONzkjIxCXnsiAdvmlARlFn78++7zv/yfb76ft+t9Xi8O97vTAKCIAyNpXO+uQlHHckyPmzmlx2HRLGJyRSSiTk/C/hCyqjQ8tsyDqbVWoZQwXlax57R0V1gGPzmJBAA1JmnuChoH1DQoqRIM0jDag0i+m4NA7gJ5FPTuIPNoRHD2i3J8BD7biGAfQBseyp2hm46NNhDx0wZbc2ZRJMH+yqiuPHob9vecNIepd+3KsnTa48TNDZTd7bEoz6/yLRvu11/3l2qJgAgTznF1WDurZnLppK7ULa5rs0hMbe7DWyYkYttNbMTVBW3Qakx8pwun3If9xQTq+LNOf+qUVxTZLFJxTg4ahwvV6DLAyPGzRcMvRDX2idqCNp8zkBM1BVPQLSYvh5KgCNetRfKYRgpndme5D6xCvhymyt7pJ2VK4aNkJFJy2tGDBYNhRLPbHTBjFmHrAcBKcrCgJk8J/ugXXnsPmOUSDa89f6J43jh8UJbILRTf+fd/4MOYPGFR4XwyLBt7mzFXNjuRJ+jN0VTRbMy+C89EqcTMObymnAa6pwto6pG21U7MOmMl7lmTMOKujwxtifYgfBetd5oKS1k49yOpGFYry3Lg5vw2u2Uf/gwRv8l2s2JPMjdb+Melasz3nWbGxoLZRrPy/7H3Lr+2J9d932etqvr9fnvvc84999HdbKpJWqKohylZMZLIhhFIMRA/4okDBHCegyADI4Nkmn8ho4yCIJkk41hAYDhAEAeZKBKQgQUHDhQkTiRYlshmk+zu+zxn7/37VdVaGaza93bLckzDMglesoBunHvvee/6Va31Xd8H5id0p+xthi1z3lbSTuna6NrJ3VFPdKtEHs4ZPDG5UBNovWM3JU7D9whz1MLzMqvTteK1kLLhbHjfk9KZtiUmptdeY10TazdSF26miZfr9tZut6nWYIGrIMmZSgkGpxN3AZGklLOOZs7JGl4urQcoXY3w3PAwPg4WcgfXaMpKQlWwDrIrSBqSdnc6ypyC0dAMFu8xQPFoMKWunGrm9npi/1DI+Yp+PLGRKGnmvFbmOdFRyoizzylF7VNX1EJGZpqYJe6lZZ/Z3Tyh3x25/4OPKQ/27J7cYGulqDKrh6dJiov+428+pxS4efKYu9pZrVE6zDkjDlo6RTMmsOuJ2hubKdUbU87MKeSq8+PE+cWGIjz95MTNoysqHXHjeG4/0H3wz3Md9gce/+pf4WcfKCoyYt3Dpy0a8MqcJj64fZevTves33rI8i+8A22DDz+C967gaz+H7P5Q7SDz5/74+//9f8N3zxulCC9fbCRx2mohuds25iLopKO+67h1Xm6gOVLBgw0YrHhpjQe3O1LWYDhZsNy7K5t1XITNYVLHVotzdDAzUjekNZgLnoTrn3zM8997Srqd6ThlEqarmblVuneOL470mx1lUZ58cENtwYw/VeN4t4ELtTbqZtTa2T/ZcfNoxol6woc0ads6bfi3mjt5eLUm5A1K8uP1uSUY/85fuca2ilgwTLQ50kK+KQPQwi/1dKxub4CsCzsr9bAUWUcvkYfwochQkgESbSAdJ5U3n1MV6hY9hStxTcNrIFKG5DEMtB3JcP0AXr1wZA4J4iSQRYJdmqCdAwduCt2MZBpD6x4qpdti4VVo8CNVUP2xrFB2CUQNboznUODCQBIdyd7Dr+riazwGQ94i/da60b0Gs1ziHhDJeG/REzLsZUZvnwYwraqYgIQxXnhhmdGGoiNlxU3ZetzZUEBr0AYv32pWkih17aQ5knvnJQOV3V55dYz+rZ5B3DnsMr13nr/cmHc6wLaMtQFjXSbOzms2t/WGDLZ0d6M1YUpK1Ra/xxpBQdqH77eMB6fbSFH83gc9b80x95f+4lf5YDriIwreTagOqSVSgZKMoomr2xnViTxNaMpkTRxYud5ldvuJ7Ea9U66uE1kb8uyeF998zjJNnD5xnt1n7qpRmXnnZ7/Muz/3Du9+5QMevP+QwyFjtfPiu0dabcylsBQhSaZVSPOOpBPiYRTq7q/FOs0dKYWHjzKH6wP1OdjdCxRhN1d2uzQSpZRuic2CoodDl0pvFbFAWCdLLGbkbiQadRuGlqmDOf/K129/0C/X93n5Z97yz/3ducKrGn4rHjgEFah2OejBu5MGANQGoS17pLidjxIyPw+z7Hg/oValOrBBT0EZ3Xqw/CJUALr4ALVD/lINKqGhbx3WFvJHFaeLM6mQB1hhLjG5ljDJLeLjz8TbxMG3noeJpMhltIPmmMb0Pthg3kOqo0LvRq9Q5sR0ZTCNQzR1dEmsr4Rtdc5bGBcej9AOEWtezXk4ff5IeQNkvb0X5mtPJ0skd8hB79UrY3sZF4FfoiinKFg0g7tyei5YE2xLpCzkKzi8C/svGsutM2VFa0enyvRAkSuQLWJv/RSTjtIi1Sih0IIZZi0AUHXARmS8DbPsFMmc3TtJQpcvhDx29UhAzSlMZgHSEpRkVafe22tGheNMu8H22jLbGc73oHuJJm/SYZwaPjwXFaoR8kdzHwl08dyde/+c2bly8eiBzz62F1r/m7319q6LnGZGeMiniAcLdN4ps0M/vKK0YKGoxMDCzBFmVM80a5wdzM9UjnQMXIZhe48YZnM8zQiQLTFLCSr4i2Dp6WNl7WFcnUunSAYctYV6rMACrXG9PCYBuWf0FWwfZtqnjX6zcPhgoqfhU2Md94b5Sr93Micm3wMdt8aWX1AOTu4djk5iwRXa1oIdqA1PmeQWe9SNsybWPoFMpB4AiZmRtFPd8HZNKsOQwXeQNoRMYaZrpc8bXZeQYcuBKsav/sx7WHp795jnguYwWr0U3B3BU4JR86YhK1RjyKCdkoanlRAhKCIBUImQRvGeM+QSQPZcNOzbzMIQXiIkoIix1eHok4U0FaZlQs4b/ekJp7CfQBvI1lhPjerB5FF1plNFQjBI9wBLJhxaZy4znjKqhUmDsTXFO1KPZ653C09+6gvUlysvfu8TlCiyY2JttNaR1uiuLO/cUE8bqSgJYcp5yCASpESZMtWcKUNyY54Th+sFy8rJYH+7oyFI0hhyTomqCU8Tx+bD1/LtW/v9AXTiz/zkDYkY9kEi5ZCpJ0ILl1V49yrz4re/xfzVW1Dn+F/+F/A3/hbkh8i+vJbEXNbnQjH8Y37rw+9wPJ9Qr2HgzmAs9E4h3LvNnVorvTcYYQV1q7RaEY1nwGrj+PREmjSsGCRet/PZMO8YIR07V+NYg99aW6dL1G5bd5iU3jslwYv7My+WTHt6pm/O4TCzvTxxqmFrsdaQT3eUKsG20RKJ5VcPZnZXmcOjHTdPZqbDjkwNqZBHuI+oYN2GR+pFmjZGiCokbKSr/3j94XX9zo7UoifykdLam9PdR3/GUGnE25c6ZMykUYU5BQiVMzSLwbSO51mHhDsLzBIhEjLkh94CEEsK0wQlDxZYH55boUJDJJ6b15+TuNvKAFGUANNmudz7wbLFQ6oo42tw+bthpaPeeHxIvOGL/Xh9r+unbjNFUhC2XfAW6NAlqVBG0FrvMUDpA4gSCdUPGrLl3j3C3TxOq/CzUiQ1kAsrK/zyXELC1yzQ085IsB9+zmgO9laLe9AsZIBZlTgFWgx53EF6JGGqvJYq+gg9U3HKlJmmgriQrJCLMu0SZn0AU6CaQiXUbdSogHikgGrIMLt1kgi9RiOSHKQ5Mu7RRAzCUrUA3p0YgLcYavln9v33st6Ka/Tm/Uf8+Q82mke6TVZDszKLMM9K2uBCa5Z14ybDbLDQyVapx87tkpgU9NWJ3cGR45nT7z3j1UdH5mXPssws79/wEz9zyxe+9pAn71/z6Caxm5WbawetpJs973zwkLJfePmtl3zz//qI7/6Djzg+fUaWlZ0SzAUZm9PiwJmKkDxTSqQYplnZ3cw0O5BbJdVEq07vSvNE82ANHcRxSaxVg+qfMiSlSw+gLmfEC6VoGJFKnJCP5h8N4+TLulzlwufTHG+WTEnGVY7dYX0kGjZB2pAbjiK9tQAPRcLMfadCX52yj2ljPKnC6kLdYvJSpjDV21p8blwxU1R7yPxaMGWCmhxsrebOSvwZeA1wNYfNBDPHNL6PYYoASEzXXZgy9B7ghSanVUGnkHj5mDL2Do0RF3sRHTU4n4S+JXQPjFSqjmMSF3yaOlsL0MMxVrO4fDGqCVqF//BPXvGPA67exhTNN+bcQfsvBWYz2jF+V8dXFtG21mOSkaPBEw+/hNYs/LMeObsbZ75Wlpth7j9peJFNacTRG8uDieldkFogN2wAonmJKVwwH1p43yRjnoLOXnJQzGdAa0ynawsT+qC7C+qd4k7zPNKQxsXcYy95DzaFAEhMgLGOiZF3nXkP0wG6tTdeAQLrGaQ7y5CmCsKxB3ibJHyPokD0mMxwYSj6P6KQeM3x+0PNzdu6hDBu/YXHC7kKdEV6nCE721Gk0LXGfjAlOSwpk03okuh6xSILysLMDvUCecKqsvMD2AI4U0p4SohUJCvTmlhdkMcTuSxMSVAvo+BqeFZ6b4iemZaQ4+TcKAh3nzzFP23MS0duC1LukQr7PrQYE9TUcDfyfod0wfWMeqFrQWSio6yl4ruEbIIfG5KU1DbMEypzSCFxvE8UEdSN7DH+zglSjj2uKKZ3JHf6Jqx0qmUcQ3KjtIK2FKxn7fTtiHvmlw5nMtMPeAf881tzjvtCVSiXSHEIHwxTUkkhVU7DXyspOWWyCstcmEtmzpldErKFZD3NUTpPKSM4ZQ4Z1dSdkhNlNHyNhiZlnhVRZZ8ysm2cvvsK5sL0cKEsSpkTMifKobDfJaYlU1RIosyPDswoh5wpOCUveB+JrdbJCJMIWZQiylYDjJgTNDq1bTz84CEP37li+8ZTzi+PZE3MuTBl8OOJrVYsZyzo9MwiWFtj+JMyaKL1RponLJdIp+3OtobXIFnpm9Escd4aMl+jk6Alfs8iIbV7W9cH/9q/juJcP7wilcy8ZLIqKWUwZ7fkYIp8/F3a1aNo4F99hNkD/FEJ5sEfsdyGl4o76//2a3zjw49Z1437U6dujW2zSMgcNUewsSrWO741zBq2VRTDtsbp5RGs42bsH0y4gE+JVjdaM/ISDWftPvr/iKw/9xaM6pxCamONU4fNg8HjtXN7VbDeePnRC7xHU3q+3zCB6cEekwC/6vCUMQuD/Myb+sJEefAw8/yTBi2YZ0GCMPKU2E8arMgcQyO/MPhF+dGq9r+3JcBf/eVE6sbwbQizLIvhmcnwuwK4DAXH+OziU1VCQBGsTxvg1WB0hYx6vB8Mn6CoWeZEAN/jXBUJMGyZYJoD3FpX0A1qg16JfSNDhSEBBEwFfIVl+JtKGn5cGoywAEPi7QRYswGQdcSUn/+pmc8nSP94/ZOWAF++SnQPj1u6v+6hctHXSGcfARd9mJ57c3qPJL/anG2QJay18aLZ2HcWXtk6kv3kAkpHLxZXxUgk9/F6lgCO8Hj+RWOAnrTEnvRGShep4YU1JiTia5hB0oKkYCSatTCET0IuzjQnkgi5hJefJkckzqjebbDaJYLLUvQ2niJkzAaQ17vSNkPnIEFUDzbbxfbBawB4WMgXOz7Oz++9Z/yhv0VTSvynf/kh3oXcI75UHMSMLoakhEtEy3ecrnCqJ1oG60LSzAOf2BflujX2W4OPnvPiWy9JV1c8/MoTbr94w827Nzx+L7PMwb5o25lX93esfaO7UDRTSiLthMcfPGL/hYfIYc+r88zT5/D7//dzvvW73+X86cfoZijBr496R6meaK6sJCph6EYR+ronC6CF1hztDWn1tW9OV+V6UqY0DWP4jWZxiUkDaVvoV6kUhCKGSvtHJl1v8/rH/aS/8tN7IBImViLiWHFSitvLL5dZDQNHj5sAc7AKdZWBcntcFiZsBpbjgTUPGnAfkapZQMxZu4Rx/DImKaOwdRnSRcL0sQ/zyG3VgVQHdTMRIEHE9gYgkAZl+bxB7UE3b11fJ2eYRNqNcpn4EEkt3dlM2Go0wumS/OkBrNmYaDpCKQ6TwzYOrDpAFwGfjKkK7y2XK/yzK5hgbyOT5gKqJE8InTTAvrY10uq0c6WfFesxknMLT6wuxLR6jiImZQtz9Cx0EpIgLZnUFV0cawkvivvG1cHJhw25S0xLeF3NbszJyLvwRCsi5BQVtYhDDdGfeUNLXL5OXChu8XpOKYep7TB40x4AkySCxVMUmePu1S4kFUSVpgqHEheaeiSXSbAHTUBLXMitG60LS9bwpJCIsQ8CmFG78Z//218D3jR4n7Vh++y1Znzvl9wP+xKHv/TTD6m9AB3zRnNjnc84Bb3q5HMiuQKKaNwrYntmOQ8ZTaNS0RRFj+RO1Q1JDZGMaEPMmUsOyWHvzE8OJHPq6Qip01MNj44ekz4jMc/XUJXJKvWTM/cfNlK/In2wR24nys0ev19HoR1TQk9KkgnVQpczmvb0FuedSaVZpbsM2TfYvtKvDvQ1obbDJKSSPqTYSSsX1NN6DAx6gyJ1FHGNpHtST/TsTCgqlawlZHbSkNRxDfC0F4/hhr3iCzdv7+Q65jTBjFFGAinB8hU8BjCmAUJlJWUdUd/RIE3J4dxDdj8VlizsszCrIkMy2C2ecZc4a5o5Vjt5A9k6Vhvt5T3rWtHdxNU7e2ZRljmT3BHRka4YF00ikkyLJDRnuDtRgMM0w/2JKcE+Jw7zTCnKkoWdQEnKMk+YQpfEnBNTCsP6UhIPPrilPj1xPJ8gJ6Yy8/GzFeaEeAuWtRaaCHmeh6QRdkkwVbx1tLXY462iCrkUcu+knFi/85T8oHD37CWlCFOeEQvTW3lLPdkkP+BPvz+Tk7IeN/JUBg7UmTIsRckoDyRjV+9y1Z/C+czv/tpvcPXX/13kF9/HP25/5EkvUvB+j//Of8f//Ld/C5FMa4ZtlaJOkY63NuQ/PYYu1rl7cWQ9n7l/ec/WOrY22rHSTxt3H7/i/rt3NIu7qnbj1ITNnLX1kN1G+g568TLVjNdGvT+N5EBFu9HPG2wtfFS7sTXjQRHaBcAs0cCpSnwsxpyESQzFgiU20hLj54XWGg/ePfDykw3vHnXe5tRqnLZOkvDy9fZaqYNcWOM/Xp9beZcoffx+ukHvcd6N/6QPxosHkCRE7Q4BROXBjEoDv+iEHUORN4yozGvck1yGEmMwaS7SQ9c37KkL8BQplhKM6jZYWlsMvsscdaNKvJ0d9kIwW0Y3n4XXzJYiMAFL3HSgY4BtiZ9554e+/f8+r8SXr0swoADcxoDeEbcYABsRaqE5EkUvYPpgStoliZSECZgISKSJR8JATLrdO8k1GJbj65XuqEf0kgwUND7MBhvLcDG6xT4LWIhhYRMAVE7B4FIJJNYHW081elKXqKGCuQqHQ3jv5qKYCvcvLkEC43MTbDQdEHoMwxxvRh33vQtYdVLJodDo8UwhAfK11hCmYHlt0bviwixjSPA9rh96z6z/7D/4ShS3HcRG9KQb6jmM+aSTdwVfGyk7qSTSdODdw8IXirDXxkKC4ys+fdbJDtOjxzx6Z0erK15mGo61zvG0UZtwd65c3cy8fHmi5JVeOj0Zp/vK3GHeKddXmcNVYZd2kIRWKy9eGh99+x5Zv4MsMQXQNDEfZuarQXHfCt5DQvbkZmK9Fo4vFDutMHUkL6gkWheSNBKxkRTFZSMz07bEeaukSdB5ikZ38FGrRzPxpUeZb3z69qfofHY5n7/Yf+6RcO5GujxUArkLmuDcYJeDdtl9UCvHBdRqHFjTLv7NB4vJ1UlDjqOqwdZRp71SPDsmFmeVBMsqdaAKad+ZJ+H+FDKPnAYzy6GbDMRcsG2A+Ai5EoegAE3pGrT6i9mfe1DRTYTB5kediEYVp6/KVDxOgA5zCRNcT4aZ0FJI0CLWRUZ8uDMvzvo8caWdRYV5TIGSwDz8txgzwzdLLsT379dL/X1b7iGraeLUnuipot3JDvUleDWOL2GZLEzZJ2LaAqDBZDKCrZAnDbBSjTknbD2juwOp9ZgSFqcU5cENvHzqlMfGezP8wcfC8khIyajVSKUga1Cf06TICVpqNFeShixnkoxKx1tcsCmFB4cYYBLSDBesCyJhjKwqo/gDS4nswdjbXReOLyH1/jo5qVtI2bIqzULWITnS5Sqh1+8OXmHLhruwSObh1S4A3UuK4WcaPbn870L5v7wG35+X+gezBG6ykPPHaLtC84bYFaovWRzO6RX5uNBvOpLAvEBzUmpk7cyS2ZoDM5pXumSkh9xP9QKeRzpcFCnKJB27ecw8r5zvjsx5h6bEDVfUek/SzvmYyHnl9NzgCOfuyONrHvzUgbWf6OcAnPpaySXjrxqyNzYX2KBYMBO8Z5xKyRnv0OpC0o2ajO6ZJAnTius96SbFmfTpjlaMXDq1RDpPpuJWKN6ZNFPbwuC4klASnZ6E3AqmG+4TuNHEsVTwc6GllTL+3DGyK3/1qwv/1d99O1OfikLrFr2+CnNJI8JdUXVyuaR1hawvIdRx/9Tq7CYlHxJi/XVTtmiiaae6UwYgpjkaLAOShcyg31fafmY3K61FKnCS8PzLGbbWkD5A+WEcnlQhJUJcCEaiPLzCjht9D4erhSUnNCn3a2VRYULHYDP2e3V4MCvWjKYa0qwMZo2bLz/geN/5+O9/yDTN5Hlm/86BNE1sn74i7RbKfqH3xrxkNCnVnfv1TEJZciIXpe9nLCVaKWDG3bN7li884PDee3z7d7/Fg3cP6LbCdmaBOB/fwvWX//2/iCYllzxYlY1mxm6Z2U0T6f7ELmV0P8ODwrNnT/nG3/4N/tQv/0p4Zr33c3BdkTcORa+Xi2H/+3/L3/gf/w6//dEzbq926NbpbcjbPfyyksOnH73i6vECriy7CAcoxelmVDPKXtkq0fXtnPu2cbrbyPOCtx5MeHfcWkglzzUGhDhZ35hv+1Yp3ZhmODVjWxsvnx6Zridu31nQ3cLz339KeTSHsXszlgR3TxsP3z/wqgd7I0JAPZjWPdgatXeyBBh29XjH0+8euXo8YyIRGEMAWXYZdPaRkuZv7DJ+vN6sv/bnD0F7MsOq0apTILZZ2MfiFimBOsAnCbPaALkElgQzoZ4AD1/mwYLSHtYJeY4aplkAYGmATnF+hdfalBwsvK9cQDLMxcOOYnhyiUZo0+mZM98Em1aLcyhR56fhGTgN0/fmzjT6lVnhHF4jiEYz4LrxeGm8ea7e6irqj2UJnZ++nTEL6W4QqsZdNJ7DLvp680giSDRmr8HlCFpy3DqJRBsqBtGQXkfyvCAo1Y1CsKi6GZoCgJI+pnxjT4YVRySSYym8mcUQUjCzuscQkUFiCDowKQVoKk0pJaE9vt+coG6NwyLsDpn1LGzibC8a3R1N0Lu8FgWlpPGzD18wFFofTDGRSIseSvFeDdeEbI1GjgGiKmYtAgx2QrZh1YOT7Hs/vH6owaz3f/J9cqps3UlesJyR3lGNaaEmwWSjqbDfFdZqPLo+8OWbhXdpvJs0IMKpwccvMd/hX7zhuE/IXHixnml1Rco4kCqczndMmimysUsSfhNJ6AmWnXM6gtdK2SfwzNkaE5Fs9uRGOMyFZ9+ZMU+QVoyJF5+uyKfOvGvM1zvElKvraXhRKHYo3K/K6fkr5nQiHYSSE25B7ZsENlHoM9WCnTUvM+5KYSWxIK5sVVhLIlvhJ7+05xufvvhBv4TfpyWjB/58pmFr/gZ30WBbNYvCJaUBVK3jAjIP34vstE3ZXfnQP49JikQyId1Ddkh8fLfQ3Z8rLHP4NIhGZb815/aJ0ZtzPgZyL23kjHlQ1WcNYKSJkLIFbDkSH8I5Fzy/OUR60G3oPeGbwyHMBvFInnIz5CToHIkT4hLJmT0ajt6D2ZEl0cLdKMwsLZJTVJ3FncUDHXuosKiGFY0Km9jnfu+fB7HezgvTPZ5vT9Bch+lsSLG0BOG/WYCbKsOD0SNhTSQ888JQPQBTM0LmU2f0gVAQtufOsiu01jlXo1XF6NynTppn1ued+ZGEwaw5VjJ28mCCqdJapHSJ9GA7mDOR6OphauswoXT6oKlrUJ4lkjetSTQmuw6vBJEOnkjXcD5X7M4pKWElimj3hjskDa84CJ+t7ErvIzbYIrG1SArYoXdag1/96Vt+/XeevQayfDTUn3Nhvfy9fz6p9G1bCvzK127wZvTc6M+vKDf34Ak0RarVHKN4vbtCb3uY6gu4rGy+Q/UIDbIfosFRCx/H3saEONK9gqUDcpew2xNrBUlKOzWmrGx+YpkTrSrt1UrJSxi9T53lvUfo2TivRxRj6oLbRqegmpBFWLcTGWFjo6UU07kMZXN6KlQ6qTS2LZOkhX+Cjwh6i31bZWU7GAtKOxbSOZHc0OT0lKDA5oJNFfXEjHLWcdYjeD6hPeG2IW7gM40T3Y1EAl2xrqg3NhfeyY2sQutvIRBvylwUz4bL2AUCOUkMcUhUnEmGLlqdpXWaJ5YZLIWEUFSgBQse6wgGzQKsHGmB1oUuI/mpwXQzoYRJ/LSbmBPhhwXUFxscJuZ9IqcUKU73G1s1pgc7sjsVYVGYlpn5sOP44ScsT27orUFXZhW8de7dyElxolnd5fD6aALVWrBJR9p1ziALPPjKY7zD6cPn3D+7Q/WawxdusfOJbXNICRfnvoO3HjISFXqZyN5YSqYNM+a6VqYX90xf+wBQdgcl49Ru7EuAgknfTvbfkgviRttapAJOBV238JW8r7RSuBPjVuD+40/4xovK1774k+SvXMN6B1dXoPe4L0NIcGFEOP53/2v+h//p7/AHn9yh6phtnLctPOB6BKJYc0SN6eGMoZEqbcaxruQxVTR3th5+WeqdbQVdEr6bqOeVPBV63VAJWWQdwV7IaQAAIABJREFUg5nmztVUyOP2Oa+V3EGWzFqNzZz7T+95/ME1vTlrN+pag1nxyZljb6THB0Sc5dGe07pxcqWkqN3WHkbzce053cKGAnGaOTdP9njf0JQHJ2JcjeZRW4iOxDPeWk+2f5Y1nyN4xnrIxVQGA2sAV83fsK6G2ivmvhdQnmA86ahLCiNUKWaA9FAgh7fReLyHYyNzjq9zGYDTIvxuXmLoDOPfCVVFq860h/0c/eX9Hdw8dOY5gjOsDaBsfO82PL2mMWTGoLojFz67JGaEzfYIr+CtrqD+uJbw9XcPgCGq4ffnodZR1aFiMTIRGtHwSBKXMTBsjg82hDg4g2GVBn/KLzFHwdZlGq/nCHQoSbE+fLKSk1RwG4wukUA9x1DaLBISox8cxmoYaVD33EOF1HvgF5KEIoqrMWfIU+J410JCv1ZMM9Y6968q8xxqHGtxliqKNKMGJSt8rjwSDwWo1sPXjfDpTaq4GXkpeO+hLrKhpiuOtcFUEw/26z8FAeKHFsxKovwnf+GKzdprlBuUJJ0sOQxIUTpLRHe7sztc8Yu3iQ8mkDxOqSPw8TPwhcdfvoKrhKfCOjvPVIDOdhSqbWwGrYeudN3g/r5yOMS/YZAlcdgZ4pn17iXLboaU2bbhIdMFt8wyd65vr+jpBrUTW5v55Nsn7l469882yhLONDe3ilHDkE2U9GBiOxvtheOyYdqZitPmiebG/bnirixTDr29dDafyYQHhucpzJbpfOndA/CjAma9Oa4/65klEtOU0yluqmBchamtWRwaWqC2kDtkcdZXyvWtsYa9QSRTIvQWsE3On3n8PIz3XWLyvJ0Gy2oOxpea8OkL+OK7zjw5z55CM+Vqcs41TMOdSGTCRyqFjcSykXiiCfoqpDkOJ61AzpgaaR8TIZMwhW8d2paYFxumgYP26qHZNwW50FSJQw9TqoaUsvegNU+L88SEm1tnL5HoaApnlGOGRZzzuB0vQNbbyMoCXlOA3WG3wP2n4YGXNQqIXDwEWcZI/QqjxaxKyU4ZTaR7D7P07sgccoyiYKnT7yBtw6tI4eWzOJf6mnneFZ06JQn6XJkfV6brzLOPLIr5JDQ6SRLqHTcH6WQSORvrBtmG8XP3KNongxr7KUtiE8PWFpMfD4+t1cLkuWfHa4wjdQo5z1qdaVZsM2p3Zo1m0kWCfZGG59trtmAka4qEj9hf/1e/xK//zrM3v2OHz6JYl4nQZ5lab+tyhJ9/tMfsnoIwH5x1m5F9o1ejyB73Bi6k3UpqmUYKs1DvFDfWtEBtSBaME6IzEI18G8VYkQkhs503NKdg8nanMTPPU8h1ChzNqd95juSM3CZ20w6Sk7NykqfkfqDRKFUQ3QFbML96p/qG5h3eK25LyFQZe1yGzJYE6qgm1AP8t56ZkgezUGZSn2jzkfXQ0GZMZaHTyFaxI0wYRoEt06fKIp07NqQvQWG3SgnUBuisVfDkeAKRXQDAhGSzn1e+cr3j956/feysGK4YeBrm74MV4k4VZUkBAJYM3i3SIbuQFnltZHwpwudJw5Nj3INpSBdUHCVR3ZhcMIQ5hfQ+pWAQX6LtW+v0DofHM2v1YHyJkzSj+0JGaC/OlNt9sO2ysohTWyO/c8v54xeU927H/hJWBJlKyPMNVnPyJBRr1B5Nv7aOz1NIK7MirZM8wKl2PlNbYXGF5+GpVG536Dxxd7cxHQoyT8y9o82YE2QrHI+v6CWTU6I+PWH7xE6F9biynzJZEkgwftBhsv8WLvVonnMiYtaPZ5ZJ6auxTaFM2OeJ9XTP83vl61//Kl94dw5/vO0ezi/x//W3kV/9c/j+HYQZx+DT/4Vf+1u/yYf3jbU1sgh3r87h6zc6gWzhRRqSLWe7W9GrTCLYfq2FxE+GT4s4bL0HY74FiwJvIXVJmW5GbzXqJWukVFhrMM2wYExThKqR9Pzq6ZH9uwdOLZIFlzlhtdNuEylNrPcb9ZMjVhS5mnj+yZHdowOdYCmgwfg5m9FGSrFbmEGLxJ15fFGZb6J59eFSnlLGPfy33GN4yT9FItiPwvqzf+4RrhtijhL+RpcgGvEIgEr2xs9KGJJBDxWiD2ZWs/CzXBvsig9wY8i6NJhdpDcAmSQJrzMb78PoORzSPP7OLyb+AUS27izz+BzA4QDbObBeP8C8KO1FD18uBpiVg42112C3bBD3nULzjHokaYs4KaVg8f3YWe3/dwnOF3bxTHHxnkLBL2EMkLVEwmgSsidqDwsNF0aQ1/C+0iEtHyFecjn/BaxH4rnbYDw5r6X9mobvWUmo2yBFKJrCA5chNUw5bBZEg0iQBoh/UTuUlMP7uRRSMkhGypBSZpqUZSd8/O0T1w8mpv2OfrfRqpFEyRO0FkohYfTN3aH1cU52em24J3rvAfxbCz9vUTTkADEMJwYP1YfvLyFlDC+tRB796fe6fmjBrP/o3/tZpG8jWcsp3XAa5jDnKIizFjQp6sbNzZ5fmuCLO430OZvg9Aq+ewpDpM3g0R7ODdHKct/R88rdFk2DLNNgKlRUCt2FaRHuz451Ybc4cxIsOZsZyMz57p7lcCDl0MAaMKtwx8TZKrMYLjEpfOcLe4RrTuuKrfDpx/cc7yrX7xywnHA7AcbVgx3cdLYq3K9K3Tbq0XFdyVcZTXMkrrhhKaOt0VKOqag2VBI7d/bzj9K4xl+DWJ+dQWSFhgQl0xVzZ9K4zHKK9zTCPwVzeoKyxFaZiIbHAdkgTXFgZA+ZYhrTneM54sdNFSlxaGxtSAxNkArf/KiQZBQfHiajriAWyU3m/XXB6xIT9W3z1wCU52DloyCLB0o/0i4D2w6zbV+FvHSah57emjPn+DnM4nLrPgz4JABQwfGmEVrgweB6bzGuT5lHOKJOJZ4BxMgO//LjzG9+8nZKJ/7wusgMAXoKH5lTNW6WRDtWQEfYpVEkmsTkGheACD15FP0WyVgiMbPpJA5FOW2N40vQrJy32LO7J8KrpwUlfN3altAUr/323URdGjrFfpYiyNmQEixBekItzNkpY5N2BeukKZChdDBsU0pXjsfw77h5PPHyacU34XQvlL3hxfH7kAAtO3DzuBRNsN5JRYOC342cg9lo40mMAJgwkHC3YIJ5Q2Wi0f9IqeGoIQPEGkXC275KVg59DV8yd16Uex6sE+KFnjpCQ0VRTfS00U/GdEgUbbQWSX1k6IvTTp20K3hSyG0kz0TqTU/CdHcKUd5VQ2wiayXZTO0vmA4Tdn7J+o1K9YXbP3nNVDK9dWwTWj9ReIC1hkihsg6Zy5lqjZ3sKD3RgB0BjoVBe6Kbx3lDi0m5ePhyyRoDRxE6GRGj0dFidBOm1EitUPVE7Z3iC7qH2gVno6UTRW7Yzo15S2wTlFRi+DSH3Kh6TFq7zTiVcNgJE/HUFJ8m/sUPZn73xekHvRX+2FfJERzjBpM7q4X8QIF5CtNX0YAQKgmvHZ8LeWhfUo+hSJ4mxGs8m3MkJvUWzAcnosqTQtIIrFnUaZJA4pzDekyCybCE396sEvLAzTA6bCug6PWO+skrTtd72hbyfvoYTL13y/nFPVom8j68QcxbhFxIhKBkoAqculFdWUrCe6NPhVZbsKG9k4GHX7jl7tsv+PTpS778p75Cwjh/+Ixye8M0d+Y5YdtGQnEVkgnn1ij7A76tSJ5Z3OG9x0hSttOJpSQ0AyacTyG5tvZ2ovEXVl2tjbx2Kh7pkMXIuSC9cX71irsXZ979ma/wvDt1umLye0jvwv23kT/zdSgO/VP89E34g3/A//nrv8HTLhzP6+j6jSkFE88RLAn9dRy8s9UWhvsDuEhJ4+qx8DFN7pg3TnedfAj286SCpcTp2MjFKEmH71tUk703sqbhHWN0jzTrPMCn5dFMWKo66k7fOpPCtGRenXrILh/u6PcbvNyQc+V8v5LmjCThvjqr2WhCI72udX/DvJFoW9pq9NbJ+zL8DNvrZLTuYTvxY5nh59fPXFd80LCyhE+uEqyrrfO6thhwxWtAgiSUPmq+IICGFHCEZEQieEiZR4BmAFMpgKmMBzvQL95Cg/E1RRkmyuu4ERNgg900jOL9TbLisofTEeYuyD76gJzie9dBXp8TTOpsdmGXjWRsvSTgxUDx8TV85/mPN8g/aT2aFMfITakaL5ZwUQeASqJuPbzuBmtrGlLkZoweYVSwn6HfOf7aiD0Ar6hzxC18rdwRTYhZ9AfFyBb7Jec0AsrAUwTyTDnSonNJ4aellwiMYBFqSjEI9oRoo5SMN6FkQSdI2kg603uAaedT52wRJFYWxhf7TIphDZueLoK50UzDN2yEKkhy8lwC7JNQsQ0mBXjcfaloyLhVcDqiCTenmQWR43tcP3RglgL/5r/1i/yJ3TlYAtKwXvBkJM0cljTMTIV5nvFmPHm05xceCO9n4ibY7aL7f1Ug3cHyCP7sgzgNHlwFGLB26n3E/HrpvHh+x9XVgfMK51mYkpCnTF5W/GRoiXhcuiNe2C0b26sSqSvNUQtmgqkwSWdJhbM3ehMkjcmlOleLYzsh7W/55OMT64ef8O6XntC7MS9C9Y6Z4Em5OlTKYebUnfvTSnuVKId7pnmh+UQxo+doBpImnEwRw1Kl/Ag0gp9dF7+sy4P9zs1ENSVjlMG+up7Dn0DEw+vndYEf0zzbhFIs0g5lTPNxWgrZVnElafgedIkki5ShzM5xE6aJSKJMjiXw5lBGqqApboKqsRlB35TwdbjQnk3GxUR8LTNDRw9AWMCwDY8jEYHh35WyY0fFd0EvtTqYiVFrIsRIyiR+TjzSNoIWGswttTCe3Cfh5x9DasbpaSIl2F9H8mNvcMD5j39hz2/++svP/e7f5uUeYOn52MkpwMhX9w51Ji0hAcstDPlLBsNIWViHX5uooNLjwjJFU5xh1ZWcjL4q5SFsDW6Wxse/n5mTxt7oGnTjHEmufhUeIH3tlClRTTg+m9hf95Hy5rh0dD+x1Q7ZcIvLZJ6U87NOuSmcUqV7ogmwOt/59kaeHZKwuaBZqbWTMEoOIFcGuqQeNOdunVmELiG/DKN5QYcJZifAL/WQ7Caigsyu/Bu/9Ji/+fc+GVHCgH+eieUXZpYH6+9tNYT/uUcZT1swe71yZRm7btjRQTLpQR1G2cZihW2ptJPBdciES5pwP5NSpu6d0+rsDiCSyUmZcqF1Q+4quj+wX0BzgX6m14RoZZoX7v7BU7QJh68+QUwprshppUoiJcdOJ5KnwWitWDa6QbKJ1EO+qmnPlB3pFffMuXXwGmPwHtO6lAR8pmsj2Q7nHuFA545OgRV6roNG6pzpzH3C6FRR6CsI9E0pubD1jTo7ZQa1TreZ7At2b6xdcakxAWwOsqOzIdIgQe8Tpa/8if1gjL1lq6HDqwNEOnsXigSjNADGKNKTdvJc6BLyqYLC0ci74ANobRHZjWF1SK4RSg6TmZ4S0kOSsG6dbQbNgtfB+NVE3i/hCzL6Kk9GLiXYpJqQ/TV23qhm9Nsd+e7MNiVKyaSk5Ky04xFbJsbsCf/uc+Z3rmI4VQpp6xy/+YKtrtSkrBJndVHljJMOGT9X2hYmzldfvGU57Pjm//stnn3rKU++/ITVnVwb5ExrlWQwzwnJAdQucwQOpXLg6R98gl4pxYylFE79jqYBPm/dMFHondPTt4/1B7A+fRGJWvuJcpXCR7Q3pnnGe6M+e8n51cajLz1iXc/8vt1zfqp8/eE17z2/o7x3A//Hb+Fb4//5vb/P7374jO8+u+N+l7hfTyE3bFGjJxxLwyeGTmvRfDYPdKKLcHfcyCUYK5MZizrVnFercT47LJneKmuDliIFVYHT2mgpkTRxbpUlZ6w27t2YBrhUknLcDDs28iFhPSwFZoH7tZEdzmsnL/Ha9zGVabswlE7JsHnm1fMj0hzfZ3QSsirnatRmrw2lZXh46Ry1QkJ58awy79Pol4PFH3cwg0r043VZkwxPsR5J05MI5z5Ah9EXdQtfKvwNgIh7JApq+OzpkBJPCTaBxePcMcJv14QYMBOSxVmj1k4KM8rd8Fe7sLGGW0eoLwzmKRQTdTDEdilAqzwSsV+8dB4uMO8Vq8akMVBNPT621zhnd8U5riEfrx4D66TBqP3yuxPfef6jMXj+Z1n/0vsLIpmeL0BTsNpaDZfYPrSd7iH3U810HHWJ1+USUOMdlUibd+loUsSi70xGeJoBqCDmZIahuhDDI4INmIj0ZjT8sFIn7BxEXycXJg0vq1QSLjlq6xT7ekqCThlRCZ9JUZY5cXV74HR/plVh2U+cjo15nvnOp8+5ebxwf7fSmodnGIAqtVow/UywtZJLQqYIy5CR1Ogeaav48PVzoVmPukGiO7eL1NICyOvZUH+LDeBTLvzS9RkzJyULj6NsTAmKTkwJRFNMUmpl2RV+oiTedwsu++1NCJT/4Qv46rvw0XP4Cz8B6wZHixOlC/cvTqFZHkZEy37P1jYkZ7xxEbTilnAVTs9O7K4LKkqRTsrQU2MqM3SorIjvqNuKmVAtwAo0DEoXDWlEJXNeG3lqPHpy4NOP4MUnL3nwcI+mJWKzWyVpJrnRvTNlwXcTG531qOwLeIooPJMJcSdjQTk1wbbCPv/oofGXK12An3o80S28exR5La8gQUWo3cg1ipmUPaQHXV7H64pA7ZEiouavJ9ydMH4sWdleCfN1OMfPFdIUGmvxwROzOHRCEuqRbtFjm3Y8Sql2iVu1wajyYH91Yd4FCBfgfPwbBKMLiaaidqdXYZoC5fYuMelsiuaIle3maIqJPOMy7iZok2DWaABu6sqD2SnZUXWub43jvTIl5/4UPiJPHgqPknzut/62e2ZB7IGtZrRVkg9QdFpjbOcb6op0Z14iHUkkRSqlh6mjE55klgTrMYWxaaO/VGQRxDrLAsejoKtjuSOewAeUY0atRJV1Fm6fOJ9+0umrs3/k5KK0NSZDoonzWsFLyIc02GXehZwyrXamFOaUKWt4SagH4GDO1XsOL5yWQ5NfzzAPOVLfjKQh9qj1Yk4aYJd5yLpUhT6ShFyEjHJuPUzlaUjP/LVf/gJ/8+99AvwhafAFuPrMVpJxSb6N609/6R16fUX2CeZIRCoYaS/IHTTNcWioYpZCxrnr5HXBpsFKyYr6gvuRRadI4/EAQ613dl3IMnGenGIdzkTyTArWwfmTjf+PvXfptS278rx+Y8w511p773PPvfFw2E6nKVdmZSUpARKqQqiQEDTpFgiJNi3afAOa8FWgRwcJISGBkKrBQ0BBVaWozHI6y2mHI+7jnLP3WvMxBo0xz41wZWbJmUqn5WvPRsSJG+fcs/dea805xn/8H8rC5W9cyFv4p8GgqZBJtPGIWAD14gfal/ADkRqR5TOBFRy7DXx11EDSwiFXrEUT8byTmVfoGWNHPdOpmCe6GjrAUkz5fESqXDBDExnlxiDZBc03qp+Ag2RG1RwDCTcSK225UUqntWgcUiqY33DR95KTnBpdFvLVOeXyi70Rfg4rjIlnwrFGwp8NJ5u9Lzx1P+jryt0CfdlIowcr/RJpg27hT5SsYxKFu0+2c0qEV2cdkaQ8OtmNWgPUEgjmqCR8RKogI6xqx4DdGmgitcG2CG0r+N6w1slboTzucJ9RMUYP9vNwx6qjyTj/5idcf/Sa8tEdecD1B59T/sZnrKqcMfYRXmHX1ki9026V5byS7xNLKYwE+X6jLMrDm51PfmfFl8Lt6cb26gVZlSwD2zuswpqF2jsjZZope+uYdu7WwuiD6s5ihETFjNu7Sq2V/MnlF30r/FyWrCtpWxijg5YAeBButxuXknh6Gtx96xO2otiaqNL5oj7xP//BT7i7/RP0IrR28PnNeff29WSQAm8fuDkh+8SiNpsMBq8dsWCS29xzHOijIS2GhOsakFcfzl4H5kLvRh6dW4tBi1BIKYKl8GDbbCX2qT4ZYBGeYfQehvIOyCnhSSaQoOE7aj4DUxqHKV3C0BliYPq0D7ZlYbiR7xbc4XizMyrkS/iFJRHGGIwRzV9K0ShGOppwui/sT+FyuqyRNuYa74sP1OLhL7WyYtPSIcVjSLVQQqTJphqzDUR8DnGn5FBDWdOJAa+7vweh1APkEg/2/DP5xnVKDGdd7RL1fa1G3uJ7bPpsTTcRTISSY8A3AB/BzIMYBLbJ5FzPSq/OVgS7wvUSPUgORRdPLXy4xKd1CqEQEBNUMzoWvnUP4bXz6/XnLUHComHYZMhFvWwtwJjAnzyYVZNxFF5Q8Yz7M5A1gWimRFBFEVdEw2vLcZhglxBhD5rSrG/nPfKcpDjCk8qnj6yqkXPcgO/VIm5oTtiAXMJzTyXkf3mdQxhTWgrvrd4b1yfHjug3twJvrs717TV8VT0AM7MRyYwWALAojB18MsLIwXYPiaTMZyLM4MPCQbAezFbm52nP2l33Ke+Ngbj9BeSvv3Rg1n/2H/4Wfd8pWyK2melVsKxspcDeSEvIVnxRPkJ5sT/BXfhX8c9/BJ8fkM7w7g38re/AiwmhQ+xMT4Mf3hpH2/Gh1FtH1qB5riUkaKPmiDkXyGumPmaySzAuLHiAyROYYBhZT/QRBZyb40OYpOiQiIzOkPAWGZ7IBjk3vvmthS++f+NYjXIHLhvNwxMie9ASR2+4C2VTNGUeHzrn+0FlAQ/AZXSPVChbyCflzfGrk2T4p9tc4TfvYpo3LBprCAld0TiMxIP2yRHR20OjaEhzSqLqLJPWO+YpZfFksplQh/Eo4ZUhBvk8D0QLpkoW6BLXv1por2U2AnWAaESk6/J8n+hMKrRA+UtEMKvG9+cp4BIPfbZ5sKXUBSkBGsgEpsCxHoDD6GGM6wOMWRxN6io5zOetCf2AU3K+87GzaEIM0mVqyGtif+doUk5bgG9f/+yDTPNhphk+LxOhPkShYCkMZU8ZjqfB6ZIiJe7cQ8bjij3flCNhUkGFJT3ThhPSnX4S9DTIq2KPglYjbYNUAljNEmC+dUdyBgxbBnevhG/+zcTtaLyxuCfNg1Vl7nOCFEECrolFnFYF3418p5hGEW8S4NVYQtuvogwaviuHDMY+0DWTZERSZyckbzhGTKbDtXZ6sM0JleI0F1aBCLQOINanDOVxDDYp7yWG7xMN5ZkF97U1/+xDXd9ZrmGmzw36hZIaThQveg+nPVGpaBEqHUkVTyf2saPpTOcJ6S8Q3clyjgmaGsuA9XQOMHMIezEWXXEfeGmYFXob7G+fyDc4/cY9vhijKTknfGRyNvZ9R+2C+xNZV0Yzms5U1a7UoagaCUNTxUvsOehBGwsjdVwTRieNDO40nxNOAsDv4qgUjIqNBWUPWaJXkBQeC3oKarwlrFTGSKgMumiwQ4hoctdI3VlkhigI4eGQOzydSNuOmdFSZvjgZJWUhU9OH97elXD8MMaUGCDPJrXC4ordrshyImdljBEG7xKgfC5CspA5m0IK5z+GEYV/F7I5rYe8xlpIRJsJzTrHCNnLGBVZYC2DYcqllAgfkfCLVIUlCcc+aLeDmzlLNfKLM+urCzwcOEK6rCxr4dZhe5mRPujVON2fePdHP8YvZ+7/1m/gvdNHI2ni2Cv5ciKpoCWzbSuCQRsUayxe6BiXz14hbyrWGstpYbk7sa2ZZTJy9dUdre6M0wnpjdtTxdU4f/oRjz/8E6oI27qQNbNm4+YpDMHrzunTe25t/KJvhZ/LKluETJQcoR8lKdIba0m8+/EXlLsX3N9tcD3Qlwu3o7MU4eiNL16/QcdCPw4ergdZYogLziHKqI1NJ1DjI0IFFmEUwW2wpYQlZ3SfnowJPRurgE5j+DqMjtLNSZvSG6xFOKrTamV3YV0y7eghbZ7pmkoYMOOD6srpReZhHzy9ubF9tMVwc1W6DY5uYGCTsRGs/2Dw1BEhE+2psn20MvEKTGH7aOX1j6+YHqQlpNg8M0gBbxNIycLRo6coJ6U15fGhks8FPOqzfnyY99dfZv32771CxoF59GU+VQfPiYXPYU7qoBPI1GcPLIFmjmh4xw4hyBNz+CHTW6RM9tYzqVwIpqcSdb8Y5CWUHepC10C6vM+yu0RSXvJgfAnTEWL4TEoPCduLs3A8GeeL8OV8De+7Yg/pY9bYo1PSkBx6AAUuhufBi+1Xj9TwF1sLUBHLMDpjRB3tRsjihk/WfHhKGR4DvOdUQgk5p7iS5jBNhPAF9QAXo0mSrzz8iOc5TRsbtxGeUzynKIasvbtRJKHJiejE56FgUJM9BYCkHoqPkpycJthmQtIM3hBT1qUwfOA1rIvME49HY1uUL942TJz98KjxEXobNAsiSLMA1FLSSEdMgeaGpHDM58ZYRgDJyQUkxYA7hRqjzaFEljkksLAYebZw+VnWL51x0rdfHYgnro+V60OND6CsnJccKVxJOJeFsmQuuXC/KJ+icBh8/zX8sxt4gW/ewWvgd1/BT64hgF4TZOV4s2Nu1KZs6oxRY/qizowaQ0ojETRjt85SMq6J6oKMqWNPjSSD+LFGUmNdjLwlulYOa3SMNo4JZASNNcuIiz6clI20nvjy87eMfhBk9kyymCglNXLa6K7YEFIBS4nxFLHmmY4djeGZjKKLkxg87r861NI4UH66GfnsrKTk5BFm3XgkQ4qBdME8TNu3Dc7JGVVgMcYIJHnvQs7xwOYuWGVqo4UuQnbh1RKJbcrc3CwAL53+HZICTFOCHjyefassWvxOSEFwqETc7kDowzk8Urtqi4jUYaH8lwSjaxyM5kh2ypzUJA3/K5oGiCpGSkJegkBUFiNvji8R+7vkEeat2VlW45Kdj7NQkrGdnVRAe0wNTymAXlU4auJ5GviVAfyHukLvLsCLe2U9D/ph7E/Kww2WU2PsQZgymBu0UxLkFY4nKBoHkU0tuQjoo5GvQjpiY9cspJPjb/NX8b3uyG4oRmuDY4clJZazglZynbp0jcQmmwhaV43X4+BuaHHWDYYl8mlSfzuUGtfas9E6PD100oDb7uSZZpa68ZyCKcOQAAAgAElEQVRGPGYz7DaBVY2UoDHjOQWLZ8CFZR7ySmKYkU3ZPOj/GoZx8VzOz+x5OvW8/GtfOP6+CPjglj8SCVULopXDYthhYhzSqW9B8oI6pOR0SvgeLJlcE6mcItTBV0wX0qlRdGGUcNzXurM76PlgzRuFO7IU2hCO11f8UdFvnkmbMMaBm9BaZVkKt9sb8Ar9QEmY7dFAKlTr4Q0iTh/GMYTjeWjgPVJurFPGGpM9E6oNDmk4hkuwQWU+OO4NIe4LPIPlYEV7yGaNhucDL4QDrsyJXxoM2WnMRsSFJI9kddQqWQeqFgbP6TGCFrzEMMmFrpmeC9+8P/1Cb4Ofx0qaOJ0SJWsA1fbMgVQkKWs+c78likRD7jYQc1JW2m40E1yV5GGfMDzqD3XYBBaHlyUKc7OBHx1vB30/qK1SjwMbRj+OAIDa4Kgt/Dck9i1c6E+NOpn1p0WQ0xKvsw2WT+64++Y9RR378TuW0BDNaW+n3N9xvn/F9vELjhZS69O6MqL6Rq1xWhZySrgNtD9L7eHpGAyD+09foNb46LTy8WUhXSt1r2HfkBS1jmqi18a7W417VOH06swp55DgaqZsC70P0pLZf/QTzp/d44Sf2Ie43IS1RGPj3rHeKNuCqvH6y4NPv/WSrIP1/gW6ZBzjeDqoR+e6HzzcGl2glGD23pph3cJ7qIZztrghFc4LSBvcibOKs0gPo+tulG5ckrMijG4crbL3GE723iJS3ga1N2obDEJ+2LqxH41KMGl6t0g/rI3hxm7OrQ0+/8mVule2FyWkz92o3WhtNp/iPD5U7Jy5defWn4dLYOIsZ2GocOudMW0HOsL5G2f8oeJ9kETDG44AJPBgRfQeNeZzk5yyc36xcNwaxz7w0ZHlw5NI/2XXv/2dHnW22WRc+fshsE0WlkzG1nNGyHPYqBPEgCTBDlYIAEFnPWIe9TdTWjhBsWdWlsyfhdgni8Teuaqw6PRvKwF4uX/1+xeNBER9/p3PZl445JAOli1F6vr83UND2pgIVqHhEVTgkDUhkpExOJ8/0Lrpr2gJlU+3glsnqSJJ3jOiRCYBQZycctT2xEX2Z/sQDWKCiSEY6TkN4GtqFZlsKpksJCHY7KIykzTDUiZYTfNGla/8ZMczMwx5328CAYa5k5eIz8wpkZKRckY04wNyCam+JmfNgnpnf6rhET0Hi8fNWU+J1qDVkBiOSVM4mmNHcGDLOn2pbSKwDLKGhFGHkGyEhJpIqbbkyAjZYUJn0NME3yTev/0FDP9+aZhZgvD3/oO/TSmNcgFhoajTD2EriTQGq8OxDxgdOwSOyicq7GNnvVvQFy/g3/xGPOX3K/x7vwEXgR8J/PEjvCq8+cdv+eOnnde7oWo8NqVZ4+Q6PWEGIpltMg/MnOyGZ6e+cy6naA7HurDfBsum7AarFLpUzFfIA22dJUeyxOEJH4M+dgopgA9X+rzIr76defvmE774o7d88q3GZTmBDvYehtFHDWBiSAIfnE6F43HA64PyciHnBcmwqDBUEU38wz94/EVf0r/W9ZVMKda6TE+o4jzr4gNQCCBpVYeqAQ4GmYlMTDUsQ3an4xSDu1dO7WBDkDFTTprw6mV4N5Qy5RxzEtMwrM6IUxeeiJ8rKTbGPiKjIIzmDU9BuWyTjhxhSCEP8RRFTUnQPAzYESg52C+qTq1gydlUWFJsQ0H4JwA1BzQM480F1YFbeDZRQ4ppAz76yLh821lJrKuhXXlRlOtPhPU7g5srP/mBc3oZhObnT34Sdd9fgw9rTSoxkKWzo7x8lThqgw4PbxaWU0KOTjmFAXpCGV0533Xq44gDz6KALTJYHjL2KfjaYAzktpAWp0iGbwP71LMmI20KlhhbJxOssC+e4OOXje9+W/ny/104GMHC8Ej0kiSYFbIOPE+D9QWkOW1KF5PC4QPTjA7YToaVxOjOegnm6XpOMMK3zUyxFM9SQcIE1YlDNzMlcINKRocFSIrSAjcL8EqUZQJaR0v8l3//t/jP/5v/76eYV+9Bq59iY8k8CD+8tY6VYpmaHLFbMC9zsJOKZeTjK9wujFSxxciyknpH04nGlfu24hdoNSHjkbSuDBssOYqH1Ap8nANQt2A111Hpn7/G9CNe/NZGWRbarZP0HJX+EB4fXzN6DnPSyVQVU4aMyR5IDB8kd9JIkXCIskulSzC7VAZORyyjQ3HdsRZ0/RBfj5ggy4oR1gJInl5D03C8KN1zSAklI0PACloUlx2vIMsJ7QJpMLzRc0ZbZpSKt2UyvIx8StRrCoZErXgKUasm4V//5MObYG+nFCEAMndocdJSkCmjyktiKYqP2P8xIir+CKApZ8W7MySh3shJkB4Jhk6Ah097R82wWhmtsh+Dwzr7gJ4Smg+2baMnD2aMGQ+a0KzQlX2vyCmi0IeAmnI+KasmtlQ4XMJP9LzB3YX96MjjTm0NXDhujbQlLiVz7W0ODIXscFoyIxHXOCcyCVpnyUK2xHBD5tco/OEf/piXn97x+OMHVo0utoiA9fdpcps4LRV0DDatPJaF8aN3fNmFh4eGjBv+Jw+sn91TcsaORvlA0wzHqME49wiKQTL9VvnB7/+AT771TbYiHNfKen9BhyFm1OR4TrQM3Cq+hu2H2uCyKDJDB+Ru5fajd1w+3dDkeHe2DHvv8btaDB6TBhimk9mShvF0GLo6ewvEIungsQZ43rqHVNTDLFlGBKCEomJweAC414cWgMiWWU6Z/Rb3CrfGshSew4bMJltRBocVJAmjDQ6LkITbu8754zOtdw4EWiSfB6vZSB+fePpiR7cOS+ZZbyQi2ARdo9GNCmt0qHtjPRWODvveIP/qDK7/pUsksr9sRBrcBLTc/D2LaozgNDy70jwrCyaZhiXyKp6za8Io3uO/dbK3nsGrPOdvNkGlMj1o9+SopzBu35SkKVIxe+eo9lUKogpqMYw2DyaQpBlmNelayxBut0F5UfBbhPhUBxvhjekaaaklSM+h2hC4uiGSWFkIZOzDO9/+KpYj/FvfKYwWwGHRzBiNkadpu+v7Zz25MvogOeDBvLN5k+QZRxnqnhiqOVOtk6YHnkwf3MlMCh9jfT+sza4kj9ehrojH/mUWe9QYHc057g0JVpZopKXnFGoQ68JlEVo3Ti9WwFFvuDg6QyZefznYzs7tNjiulQ4cNQYDPoEsHzDawIeTZliMDYuBowY4lyUG1fH7obboV2yqNZg2Pfn5fpa45/sILU/03D/7pOeXBsxycf7j73XMEjknaDtZYOk3jp8MWKJRXKqzpMLHd8onLzNlWXnRG/qNAq9mFN1nS4wMdUB1OBXYMo//5Ev+8M1BGwM8I94pqhzkSJWzwaYgbhhGUdAuHC1zWgWpj+y2RspEcjRnelXOa6MPoRtktaAy95VkFUE55c7eJ3pPCLa9GykvEVltwv1Hzk/2leu7xuUzAckkXRD2SDJjIRPyEBGjrYXb7YHcCukUOlST8BUxd75896tEPY6H4+scoWi3QtvubbDkhGuA3kMhYkSF3onUNpxtCSN3qWCLIV2QBQ6PPAFPsGThX3kJnz8E0KolGoGszv2d8e6qWI3Uy4EjloKpM6/zkJCxFo1EmvCI1ffafAMG0WRNQB4bikskHg58avA12sFpFrhM7fLzwZkzHCbTPDrkX65OmmCa2XMROg3G1bnfwliylEEWYf244q+g7Wf2phw3Z8uJF5/8i5/9M7T14RXt71P3pg+CeJhBikLPzuWlc1ydAye1ABdJc3yXmBTl8JXKWdgfB1ycRW1qzBP5I6PfIpY7Xwt6CHRjbAIp/LOWi+Ka4NSpTXjzD8+8fmucXxxcf1TgBNSYhlDBRgvuu8VrWxV8EXpy2KdkdlVGHaSUsR7pYstF2B/hdNf45NvOj34/sb8xygsjmbCc4fokdJveIxJGlNVC2hgArMxmNw5jmZT63h2y4uIs5nz34/Of+ryfJ2LwVeE4H+8PcrkO2uioRs78WgquB+YFU6PYSjo/IccLlErVgbCgspO2hb4bcizk3EGctoesi3FB2w1PL0ieMQi5qhnHDzuyvOLVZ68o5cR1/wl353vqsUfy5JbZj4ZkwBRJlUzi6ANGIXnlGJ08Ol4Uk8RCZq9XJBeGZTS3mO7ZQlLn0B2RFdUrw2DIDfc8fZ0OxDPDKqKEQehz6ur7ZChFfSCqyKg0BtaErMKgsqREbS2AWUkcbVAoHFSQg6QJbi+QvCNDsHVBLYD/RucTWf5ll+mXcvkErZ8/xyVlvDs5J3LJ1HeVRgBYqwqpFJTBLgMjkbvRNZpoHNrst20W8/UY1MOwGdddhnFtI2TIfTb57tTcWTVAxC6C104pJ8oaHn4NYb9VtpLi+pNIkuju6ATBNAfgUbaCZefMgkmeUeWZWw9JUZLwN1xKDh/ImUS3CPRh3J0XGMbhPcD22jDNnD65582Xj7z89I7t0wvtxw+UFxuiwtHCTHe0HszScYTBbR+kTz+Cn7xm//wdqRk9C8tvfESh02ojzQThD3G5B5hkPSwRhnT6uzcIEqbVw6B1RqtQYpgjFs/s6XKieKcfleu1MiyycNWNnJRxq1y+cWZcG2WLM+QYkRieggAcSWLNgkYzU7RcjLIohxkJ51aNhtC7YErIaV0pSRkY9uwxg9CT4tcWQFNRSircurPfOv06OF8SEB647jHiat3Qp8r26Zlhwe5yFWxEg3nahDFaNKVuE8gy0ESvwdYv9yvXN3vItTWeVU0B4jKfX8ep105TxdeQTiJO2TJ1fKCH419wvfjoTPcRAMIEEyTUn6jHQHiSh0NySChYn0GtQQyqU4rG2VJ8j70fhBM1nQomTucrElUCju7IGnWeiLEuCyTFUNaUaBhZnNyiZxgEG6sQcsMyvblsxis+s2SPa9RzKQUb6FmKmhfBx/R60xjSD8+o+HxPwsvi/BrI+vOXSkJ9IaXY200FkpLGrF1T1KvBPuY9gDXJUyRNEX5DXIs0Ew6T6rRSCMZcGKXL9K6NARpEvZtEkPdxlc+9oM/AsClfHB42AHxNyfD8dVZUFR09lD/Jyeqhr41JMmlaHLVdyKK8+LhwbYO2gyaJ2txBkqI+/Xld2LaESGhzvYcE20WCrT0ap7TQW6jIclYGCRvjfdDCc5KoT2AY9+lM4mTJNPnZgfhfGoLz3/57v0PtxjgGx76DL4ye8PMJW4RWwIpjS8GWxF7gGFHspI+24GqmHP+GuNPe3uB1C43XH73hn37+xGMz2nBsyhraUJaipKysKZPLSpZA3UcNU8Yld46nnVQWLksCIspSFqHTyLqQpLHJAOvU3tm0IpLokhk9UxgkE1wK4oMKDK1xwCdjUeHy8ZnjyYFAZdfUUQn5oDsM15CftM6yOOv2AhvBlAg6o7FkpeTE63e/Op5Zz+srrlBE8kpyLhmWrSAahbWk8M4Cj4mXGjIclpD4KYDCeArPIYjivROFmybnyxuRJLYI+01oXbi7CO8e42HX6NnZZpJDIZDsPp4PPqHOjZFpGqs6acbJWUTCZNsD2HKZp/F8Lc1AcJqE+buVAF9xxyX8HlQgZwu21PM0qYf/VuthBDx6gGatO6kLuU+DXoO8DHQR0sXxczDTQgQ+WW5zfR3K+hCZWe9ZQy784esxDR55n4QkKpzujNOdMLqwP8C4RfqgqpAWo41INxQRTj2zvgSzQqshf6rXGYOrgrVBz0aTYJ/KE+hVsG5AD5NIHXxxWOx/G5xWJ60GGcZbYVyFMRI+QIsiotyelEbGPZClsXV6Cq82s8GYseBucLo4l5fCt34T1o+M/CqSOMF5uo45/QtpkRCmzEoUiI7N2HAYEkV4skCkVIPVsSLUrlOe+Od85hOc/RDvqa8voWFpiaIml1AwVSX1goxIG6yekGTIUyKzUvsD6hmxFV+NfAjmBdWN4plTOTHYOdkJLkaRhU0XkM718y/w3bh8do/kwb6/5ny6MEalWee0rBz7Des1Rs4iwc65VqiKjZ3hSjqtLOWEUBCMPhJSNoYMml6pvnKVzuGdx+NgmNN65XAJQ3cTOp1GxWggERlt3HDvNKBrjPZMoTGC1eqVljpy65P5CuaFao2cFkgLHQ0fmtKmQeIJT0pbH9CR6aPh3nAqxQeJzqpPv+hb4eew4ukxc4qGQ8eSFJVEVlgvC0WVUyl0MpodzYmXa+acgZQoQJpygmVJ0xg2gCEs5DFTtcxep7xghBwjz0TWVWDB4/yVYOYxmROaMjYGy5pigLJISLRLNBVjOK03bG/IELRNEHO9UNaCLgu1D2hG1oS1TsoxMZ6bEMv8OhPsKnenpIIkZVkWKBlZEr0OssKLVy9mEtScMmdhyQreMI/PqOI87I2WMk+PN/y3v0f+7b/J+molrQVHMVWOToDAH+AaM4VPRMg5UcR5+/rg7qOXXC4LPhqLwFYSjBo1kXQSLXy2XEjrwmef3XEuyjIiLbDvnfWU0aTkGUAgMBkQ8n4gl9xY5rnV6gBxAhJz9moc7jSPPCjrg9qNOiZYIGH2zAS0uzvt2khr6Lf6GDNAwwLMxTi6UTLhk3Wt1IeKtEpV4TacOuy9n1EW2K+dOl9XG51MPCs+pzTPZ2QXZ/14ZTyEDNI9mmfBseYcj5XeGqYBBIbskNkTTDPzXy/+7r+xkCWF35FbDC2ePbJSfO4h65reQxZMrAocQGOyryZYKkFijyOE52Y8iBe1Rx3uBCDmA3QDFPIc8KkqqnneyzmACQ0D93ULxli2Z/NsQP2n7RYmsLZtyu0KeNT8HWFdYM1OcWcpIUWMh6TPXT9kbY+36Tv36/Vnru/eZzrBPvakz20WKafwJBOPnk7i2jG9nlIKtpGZTbAmJKjPUtEQOYe8P6WwGXH3abIeFD/3OCfVHe2G5FBieQ+wLIAsn2ZsEU3vNq+nOKkkSlnYLncspzvyksjLZOmpYTOVsJszeqIP5fWPb6QimCvjFn2kWwSy9A6t9/D7Hp1lUzR51O0ezwMa/askWHPGjyDSaJkKkKMjHvtpjCM1AEKdn5fHxqUKNoeTP+v6pdnm/tN/TZFUSKuwbQvrZpzOynZSTlui0PCnxuXjQjkLy+jsh9OKMpLN3aaHc58ZfLnHDnU7OP6PH/B//cnOl28ax0OPDWlEU2heEQaFRklKxkjq6EwBIoNbQ9dZ8KSBaCGlRs4ZqU4dDTyhnkmWySbUWxhBFmLy3iRhbhy90SyhbmGg247QrTqcV8dPW9xVPjCc6kazG2YVTGhHZ10LmganEyBKQXBZKClxHXDUwW9/955P7tdf8FX961n/ovm4EAym5DIPHedcjCVDq8qmoEOmOA7qrsgQ9j7p8gOWUzACdp/Fw3wQzUGHk0W5NWdbIWfn/mVnXeFehFTCcVIISvNWwq9rSUExjkGPgwlHVaoSDBwXxCc4ILEdioRXjiNRcHlMqSNZA0iTk2YJc5neJ/7+9HWiaOwSOm83QbNN/mu835yEUuB0F6YNujqyRtFnOEfrjAJtRFJPpJ09f/b81Of+oa2vT0H+wT97CggrRYpQSRqG76qIwqKF7YXRvdNuhdETx6HgKaZqvaMlM3ah2ZiHQ0xg3Z1enT4GxiAtyrBBvw0EI3dHqtOvjt1gfwuXizDEOH/bcO8MddIlQgEWAZrgOsCF5c54bIN2NeRk3H/mLBejrIYypYerxmjS4Lu/p3z/DyMmOquhNUBbs2BlDY97bhhk1WDMAOg8sAAnUoVgHnREU9m8s2qnja/JCt9/4Myf9a/kUR8wnqV2RvNBk0pXYySP+GXpiDVkrCzD8FLJmkj7geczbh2bZ5Avg8IRQxh1lpRY8zILD8fsSm1PtNvOuJ5J3zjTe6W3jq6FamHOfT5tPL59y+jOOAr16DB23DKeTkghBj4JkjuHgEmPsy81NPW5F68YD2g31AY5hVQRD7ADUTojouhNGTUYsnVMOvwoQEPcwWt4tGkA9jYlYWOA2vSiG4PBwtEN64mRK60KZjXSxnLFeyeNFfQ2G42BujBkkElk/fAAh02EpIklKUsSiiRWkWDEfH5QNM4Bx1hXIgmXSEXakrIhpGYsljipUmxMubzANQJtmsRZy7AIPFFl9cHZO95tMqJCfgFCs0hbzRKMHhVn2RaSKF2dQcZSGNL3qdNYtoV0XpE1wZLIp8T+WHn84Tve/vANdT/oYvSnnf7FjdGMrEJy2DSkDEsuIS89AmCwVpEhc24ckySZLIprD2+vZoNDldo7D21wdeVmzrtjcBhQMu3xRr7buKwLSxaOwzDCH65NBkjOvzRl+F9obcVpe4sUvnbw7k9+jJuzXRaOfbCeLljX994y9EZvHTsCcko+WFL4VKU1Uy4rLz85IXtjESO1zrI63gfZB+dFuCSLRo+4Fz3H+TkytCQ87IM310EdkQqXFVofHO70CSoGfDXTxRKA483IWw421Gxg9zaCUZ3CSwcPUN+HYaeVclfQ0xrm7UQtdFj0H4NIt6akMHtOSposRxenNWNYnO1uhvXQv/l1UJ8at8fOsffwzD0XSAlJKdg8Ev6YwhSQ/Zp4AwLfOw2G15B/jil1YkoFLUCoCGmK/7Uk3hMX1glwQbCcnoV5CqQxEw9zNOQ+f58LE6AUJMfPNcLr1hF2g6YwUCih7JD5vSix5wrszUkOMlOlFSaYGWy+7S5zf1fot6jv28243MEqKQbXGXIK4ERUJ2IqZIOHPvjpKv3X63kJ8HufraGQkEgq9K+FEiUJeWlimrxrAp3gFBNsSl/rESRq4CTBEn0GJ909vJrn98k8cwPAjPPQ3XAfcb+lYCbPLQfDwps7x/U1M6TH35lOJ9LpjuXFC3TZSEkjgGco3lvURg0e3x4cVxhduH+Vkewct0GZfntuFkbzJtTa2U6ZlEPKuKzlPQickkZ/MQSvjmzR/9iz5jvJ9JIT+rBgwg6J4YBPY3o07H4sgLKfdf1SyAz/zr//O+FzUJhYXqRl9To4I1zfPFLHwqffukd1R7tiX17xTy8cp8xbNT66GjpaIJjVGPvB//37n/NuN5ZmONEo3J521lLQnBgdzlmxpNTduVsHRscNkmaqCDqMWg1OGRlOksy7643LGpO6BGTPdAxNMQFai/PF1cInRELyVfvAVQOkUiN7JOgNE/KImEwhoSVzfRoMFaodnDSmj70Z+zGjQ89pGo0n8gkebkJZDyStnFZnkPgv/v5nuCr/0X/1j37Rl/fnvv6sx6G4smZnNziJ8a4pp+TkZCQRtgSejesunF+EGd6owpInCylHbKhUI5+VTQOB3zt0FR4eIWXhtIU88djhI1O+1MamiTpCuphzMBG2rOyHsKvTJYptIXQRrUFaQra1TC00Es+ATFAqYe9ZQUb4X9GFZQ0mjOOYOmJCyjGfyQIH872JzEM4vqebo+rv2TNDnMfDQcOm0NwZT4WHN4Wnx3jfTZxRHYq/F0LKbFJifXiH5lfMLOe//6ev+U/+zkfYiMkNPn313BFJiFSkKGsWRu1TG24cnye2cyJXwT+JaUSayadjhIG2jIwkYT0PWk0oIxqtM5g09hZ+eQyBocjSqQ6Icv/C8MN58y7Ok+WFsz8M8poZTxFWMdJCasLQYEb87t9t6En5X/7rjMsAjSYhr0FRvzsr1584Y4T0u/Uwsg0maMYZ6EIYPE/p66hCXgRSTBqtJ8ydwwRRRw6QrBEdvRJ+SX/q8553kwebawaif7AMre71fWJoxTmljufE4bDJGbdK0hPNB2yDYhkeBun+jNiNoSdSPiitYBfFjsGxH+Sk1JxICsONJZ14/P5r8sd3+Bpm2N0rYkJxpbVBuwl2KSxV8GzktqPpgmujttj/mgzEE9oTyCN4wTX8+3p7Ht+FY1+EaQQN3poxhoZ0w53eNopWxoxnluZoWjEXWrnRvLD4wLwwrJItOoeUDRtOKmes3lASkg2VhtmGaqOKoXRaT6ybY62EAbg3DgqeDG3gqZBVaHawpQ9PZrjmjIrRdGVLjprj1xt9OXH/sdOPEbIJSfgxyJcUcgkGRxeWJCxbxqpxWjSARAvfonzO5Fo53ChFuN6ENkIaU1NieEJUOa+JbUtYFkqOUJZtiaBy07mnWQTzrGSyCuuitOpk4jzKGmy6+raRXhZMEqzC6XLPgnBaUsg2hrH2Sn975bp3breOvlhYL2swyExxH2xZqTglCS4BtO7A6bSAJp6+/2Ne/u73qO6Uy4rXwtGNZsqwHUmJ5IZooj6843xe8L3S287j0yC/bLQOzZ3aB+XD3LporVOWwrjtLOfMsRvf/N53OBW43BXq/pZaB+0IL7MlQU6diqL9wGuFtJG0R6IX4MO5fLTw8Po6aS8WDPfsPN0qeYmBsznoArVGarRVZ0xD9j4Mk0jKfNw7tc0EVcLbRVxoHt5V1qPJTEvI+0bzr1LrEsjRuDbIa4RFPdOgao2EYvEYSj1+8UR6sYBZSIyOCBCQrLSjMSSHb+kIpsSSwSWYhwqYCuVS8FUZh5O84ynRPBKun98XIrPBjcQ1w3+JKAs/z5VIw+imJB+QDLVQSViU2cGKidke5XlopuGRlSRy7XAgeQDpHsyoZ6xwfM3Hc1qPhixaPcBth0VzBHSdEkOU7Epune6RhI3LTEf/Klldc9RV1BjSuMGWBU8x+Kl751SE4cr19cAdLvcJtbgvPQs3m/Jblfl+gz3z5vrhDWn+KleZct0+w7kSTiKjxSgpBWvTwquutx7gy7wPNKatQT6Y7CVkhqbIHN/MfzwDWTY9s1Rz3I8SfWAqCRENEsMYc4Cr772pJGQKWHdSibTDYYbbjpBwC8Bp9BgyJE+oCy+WAM7ePbTALV4sIEZ/dNaSQ5Uj4bmMhS3BeinTF9PxHJLHJSdaG1AHWhRKqIfA6IugI6CmJTldNbydPaxHKgO6ohY9oz1LgAV6/dkVZL8UYNbf/1cdo4cuFGekgXum4Lz+0Y2X33rJ/eosyRBZkL5zWExMjlF5kMSDJj49KT/6ySNfHqrkeV8AACAASURBVJ3j6OA1JFXe2Vv4HeXU6ZIo3SkaxjZbEm42GDIoLnRpQYHzmFrfmnFaAIGEsRVhaCaL0P0AD7mQtcSao8FfVEm9MTIcLU/KoYXXkYFLZ4wUps9KTCy9QW28/GRlp3AvUey3MUhpcFkKt0egPsF6T53ma5qFIjIL86BEdjL/7f/59hd8Zf/6VpQq8RWEnOkY8adlERLOdz41/uBPgjP8OByvgX53N6wDAsc0dBcJf4aSlKM6t125uw8aebfYAF5tcNQAEC4nx7qhD5l1ca4WVEokkOqjxms5qdI99McUYCYOtvbsCxHAiFt/P3kTwki+aIBQEPRySfFeJQWlVUZsPKMHt7oPYcV5N8KY0iRki5GU4QGCWZjXZxzvwjiEp3eFmoS8Qn1Sbq9BXxmnTXj8IlGnIudDZGL9ecsJuYgglCS0GUE7hs1Jm5PuhF6VUgY1Gasmxub03UA7eeSgr+uAI3o4F2c7JWx0xhDKi4X+bvCNs/Cjh4F1GCosDrjSe2K9dFJ27u+NH3+ZcRrH24wuAymKLE4p0Bu0EcaPaRH8seGrUZ+E//2/O/Ppb1RSJnxKdB6+HhPg/+1/DR18uDJHoe8eDTHeeXVKfLk7A0Ux1ixIgduhk0XjuARNOmmkO3lRJIdPiKmQEbKGpOP9BOv5A590+6/SMj/Me60lRzwjWwqGLYNGZxlgObyqmu6oDdQ3jM56gdvjEx9fFiQPvCzB6mxKWYV67HycP6Mug3ocqBXMrsHU2gbHqKisjLaTZaOPHp5A4kgzjrhIIBt93BAEtwXJYag+GKQ+0LQw3FAy6g3YGOrB/DHwnvBi2GjRuGnDUMJtZGBjofeGyYJLI7EzRgLfYBkhz02FxTM+p53mGfNKlpnayZTHeoYhVDGwC1YaQkZGItEZPc79gSIWTXBejUOcLILbh9cRiofcxVoPo9k3N7wIuQ1MlUsibPu9o/cLkiItt1bntMXg7DigbAGKHR0EYxvC7nAumaLG462y5kxaneTBxswEq/O0FFIqDEl0zZMpE2eepMTRjGEdFaWlQTelEFIvG0p7feXaOsvLE3q3oCXH+euCe3hhGs5pTsxvVdCXZ9LZOdmgXQ+efvhI+uYlmJ45Yy5sOcC28ApxZK/cvbxw2rZI/6RRcqYk4eaQ10wdFVkWjKjXLgC9oXd3mBgpB7trtMFwobV4Xx/ikAfAc0Z8kJfE5z/4ktOLO9bi5BzDry0B4uEjK4bnjePoqI+Qas4gAXflviTG0bFFOI6QMZcknOgUdZpZ1C/XyliVOmDcoGxR82YshsPDI4ErG2rBkN/NJis07ESC8WkYynZK1H0yqdQnuGFQDT1lDhfKDBHqIxjxbThbicCo27vK+eVGezjwHjYE+8OBnRYyg96NPmsu5av062GO92eGvNAOYzYGlAVub8DKmEPVyVROGmHrgA+LWg5iSP4rvtLmNFV0jCmdioAAmN65BNgzxQtxveUrc/dn4OF5NDsCR4/vc2Zyc9TQWWQOMKM8wkIumkQwXfAcISZKgCNuI4ZHI5ioroKMaUo/n5ElB2PrMNjma+lTzr0k5XQulCUID11asKNn73c1Y1PlIFQj7qBrvJnvf/Fr2t6fvYRzgpRWLN3QQ+ewX9Fp89Lx8KCmv/euCw3rlIVOgkCeJINn4MrNAsiG93WtMr3w9D0WBhoKnz6iVrZmSFHSTPqDEUmbX/PbExEwQZdQTPio1EcjpYTXFsmYkvj2x4nf+s07VBtfvu788eNOe5Oi8hoOdTCmfNuroEPDuugUeZlhcQN0pV5HsGdzYqzTB5joX9bpPa6zVvecMetggkiM5BOKyTOZh/dy6fCE/sCYWWluysN7bAAmeDu4Pu58/MkryuokSZHylhLtdmApU5Lz2AbVoL9+wx8/bohGUolYZ+8JpLLXaOisdpYSCSZjJFKJadGwQV4T3g1LBXfBGEHR68pyXiErhYggX5OBHHSHvCZkf2Kwsi5hBmejkNNgpJiqlBzFzZjR4QeQpVDoDBscTcg6jZQPOFxAKt2UajFKcA0vr3Ixnh5XSr+RzytDEsmU7k5m0PwUaQoM/od/8MUv9sL+Na0J6cyvAxAtCq3HJPjoIOJ871uDf/TPAzRCwDy8jKwHrqTzzy6r8+4mvDqHiXVW+O7vGi8vnf/nH2fUlNMZ6rT0/+QePvlk8GULv5tv/vbOxw+JH/yo8O/8u4/8j//ThdPG/8/eu/1almXpXb8x5pxrrX05J255qaxrZrndN7rbrVa3LQuDZAnxADzwABISPPIHAE/8N1zEAxISEg+8ABZGgsYgG2jstqu6Ll0ud3VmZWbczjl777XWnHMMHsY6J9PlRqq27K50VE+pKkKRJ05E7L32nGOO8X2/j7Yaq0lM/jpbBGocjoe9M69hLQxwvCKpxxRPI1Wj270S6L7JFQVWMsXvOWAuqKbYsCQSGTGhVSVPIU0NMO52qls0aOnC6VVifgzjI8NKePNrTdydlMMYm9nuyEYA/iffhTezZOcBSh6MNae2sI12QmWSyTRr4AN57sikjA4qinmlXxJ1iYJo2NIFy06Yzys5G2sVbBbyALcvK7koZS88tcrzm4RLwqzDstkUdvDWM+Hx240fvyh89ReFXhc+/qP95i6NiV7xTkVwTbS7TpsFsjHsEsvaefkis56NwTV88tnJZiyvhLwo7dSCc9Ma1oJFoioBe59jj1UEtsSXmDL3LX0lrESiSpWwbTciLSWREDManS9fZX74qj+8xvdKuHtr4cOvvaGJYNoi9cik0d1wMru2XWK84dlJNiB5wVYn70awhhdo/YLdTNguMQ7O0TLVO1e7AwcRWneGNCJqTJ8a+cnIhUjNlGYUH7G5I0dYW6Pkgd7PUeD5iWYR7aSyQ3SmWSiX8QnXUHOaXmh1DEZJWoNP0wuSMt0aWARZdAH3A95XvBdohWWYEdth2ii9UFPHLOHJKDVFillVVjGyDLTeAlIuUHvfIq0d14zIytD3LD1h/UyyjB/AvdN8U3P0jlJJMuBZIS+MHtBx1/ln/Sj8c1hCN6WMIKeF3VuHrSEo7AYoPjCpoKasQYpHLFJHc4JcOzolBhVYOgUNi+ZooMZ5BaudKWcuNSxbSTIqSpGwr5skPAmaNBICCcs1EumaWRNlv8fWBTcjuXFeViYXei6Mj0YG3aElxwVVhHHIkYy3NtKQopGxKotXuijWDMnKuNszPb7Cri+c/ugl45cfk1JY3jIx9JHW8azcPr/l6S9/g8vdjF1PrOaUIry+rJgY2mHcDazLSpIUqazu0DrHt5/y8i4+v3nISF+RPJBMoVb0DQUwS++YCOvphItyHHKoTMxIViMRrjesOee2oEMKVpmAXRYGDSOF1k6XCM2p3WgiqBpWK5aFZmHbmpKQHhVez6EOkByDyG5RqyTix56gt8B0eDe89dA5b38fRDdFntN7xyQuldUh1Y6h6KCsrWOrIVMhi7D2uJrhwUtSgXQcqN3JU8ZuZuRqREcli3FeNy5WDxabIcHi3YDS5FBXdYdUQmmBK/OGFpBcaJcKU4mmi/h2PspmD2Zrlv75Gocd4h20bxzFrclgYeGrD3gPPuP/bGXFhoIFtvfivtSIHihNAeL7pBTNUwmUXoQKNDa+lqAlhx1aM8lWeovmLW7oZi0T2RRjmyJMt+8vBJIkA65xTocFfAARRmvkBId9QosgM1iKM1AVBhcuvSNDDkW2KR+/WqMm/DN+P774y/nKkwOmFe8jKbWHz5ZI3CKTawQKaKZ1IxfBu9BaC2udO5r0M1uoKr3VaFJqNMUAcs5Ya1sJqxQN26toeNA0K3L/o1t8psVC+YdujfD0mUtEG+JDNN4Q3DrzvHDlmf2k/NYHE1/+0o66VJYVxrQiTfgLH0x8eNs4nRpNQoThZ+dSG4d94tnbE+ZKTsarV43zXQWPEII8gHRFPdSp0jtJlepxdwxr7/0QO5ph9803sfi12LZ0ayJHcFn1n/7J/MI3s3JOiHVUCmZOfXnGhh1X+8zucE05dlyEaTcwipH6gl8a41cekabC3e2MDytlyiyXO4aSH7g+S4sJ7qBC7ytt7lxdTxR1KIZUZelLRGdKCiCzz2DKWoXmlcSOsksRT18dpVK7MwwjslZqPTMNA16Fensi7xJDgdcdpEXbP5pLTmxnnSwFbOMiZWGXxpCve0ZI8UB5xnCKJDwviBZq2za3K6H3kfnsQOX6mJj7xHxeGa8brgVLyocvfz4g8LFZh/XtfuOumyOLFlaXosr//gdDJNDU6KwXgVGdeVFkMNYKJcNdjQ/eaQ1YYw8xCpfVefbYefXSeXoUbmehpihMvvu9wjR23v/FM7/+G86zx53//r+D7/2g8Nf+2onf+7sTH31SwKLLjuqWvqTbIRuwymoazWoFeoTUNfdIiXPHNqXXxsjeLnORe2CmYBtgd4PKG8qQQUqkMoZsNfz8YmGtLEdBk3E3Qh0crcEWa12pFaoIrz5WniWnHJx2+clt5fPtxDdvPaTr4aFkMvAk2BoR9701cgp+1fAkJMtll7DWURvYHSu6jtTrSn+tjNeRmmLizEtYSHWzu2Bg1eA6InX788IwOeMhs5sWXt8k1ln40Q+VUgp9Ub73+8J8TpwuAancI3irjKOyLMLSwFaFaSWh9E3l1Q0kJ9a14R3WCxyfJtqqvLxpTNdhpUUjxVBx1qoInXWbtIht0mmCx5aSEFB5YxBhxYiAxXioMxYJZ82R7PzH//r7/Cf/zR88cAp+cj20SP/EBuq/+EtFUJQ+L6RJSWxpq6yUHEOKtEWvJx+ovmA6MRyXh8bgaHeUuyNr6rw17bk24ZIrv3J4wqM0MFZhfnFL+WDgVBufLPD99TVrFdbpDi4jU5rozREm1tuFpBNrOzOMhWYneisIA8nC3lObkXrC/QroJGk064hlVG5pPaMlU/sMWVmolORUE9qawYy1xW6dF2NWyCZkKnVRulc8OSJnxBJdWigTfGXQTDPoGmeozNF8r3pGuzAWp9ZoNPS6I02NVo0BjcAVVlIRaInGQPEzb57JEHJRXAvt5gaZDqxd2ImiGebZsMEZt8J7Emc1o14aOUfaW94rasGTqTryyHqA+VuniAdHZi+sS2UcClL0gY2lEjbCfREkZUyVaUyowlIdKYWuGcGgXbZptOLdkSFCK7w7w1BIapzmHpeJWsOSWgrjaFRNwSMZItwi9848XyIMqK6koeBZefLNd/j4jz7l6r3HWIvGkzjkceT5jz4hTweuriaef/ePefzLX+f17S3L2im7HX2tjIcdIs5+GljXSq/w6f/zXa6/+pjd7pplfcntXWV/yMwvzpRdFPfL0rl78SaGC4C1xnx7Zrk0nnzpCWUcY8iWCkNyknXUlOyVw7NnnG9vqOdK2Q+oRVr46ebCfpeprbOuzrPJ+ehupZSo5myzzmiRQCv0aFJ1l0B3mNEaNOu0HoqI2mJ43VejtcqlRchPzoq7RjMyNBWsiwVnpocSsamw1h7NBpRpitRDd8G3gUrJEXF/Oq1Mh1BV1wrT9cTp9YLs4rInRDOEFk3OdRswbrIO2to33MNnquTzaWXcJ+5qoqgjU2ZdojCtPb7W7hVHqltwy895Q0vgr/7L75Dbp7QWAoIsUa/gcQ8o8ABwTxoX4w1zhG05Id03gPe9KmX7Gtdg/Zh4sIpy1ISzwCCKa6BLUk5kVVIe0PuwC3d6a8FP8q2JgTDg7KZwRHQP62i5L+xVyJrIWTAKF+tMmnCMIs4+K06mpc5FJfb5NWyoZcyYh3rQk/DJXf/zRtafsJTEL78zhlpSO14VSZszwHrcw9WxLg8+UyE6j8MwhJuAuL8p0Yh3Oqkk1DSaOhsn1hHSkLgPH8EVyU7ZxhzqweuS5KjH+xzD3YxLnFMh8N2ClzwYW62GC2tQZRThrWvh3/nr7yI50efOjXXmm87LHwu7QRncuV6dNGWqdni+MhwL10935AFqdS63K6038pR48rTQ6jaMxGOY6YrNPazP3hHP8fUquIRatdMe9ib1uCul7U4QrOctJdIDKvXTri94M0v4l/7yB4jAendHr4nHzw6M0ulzZ/dIsARTSmRWXAp+VmYKpWRSUi6m6BrRv12Fm9uVYSqYNpRESSujwyoJLSFvN8BaxS3AZYn4/j0JvUdzIhRc0XCwxWICRUdrR9Sxprg1EgOdxG5yehlZ5k6msT8U5ipYX6lpA/QZFIl82HtZ6ohAioki7uRdomB0VejGUJRlTXRLVF9Qjf+OdjxnmiVOs6O90gXmRfiP/rPv8OqS8Ict+edj3Te0FGFxpWyWy2BGOY92xqtbJW/RpV2jWCopLlb3qSX36SdIwDpzEpbmHHT7MO4cl87+IOx2HRCWOTOqcrh2/t7fF/6Vv+zk60q7KZxP8OUvV169Kiy+Nd08rH8pGWbK6SKYy0MsbyRQQTOBHt3xhD2kxt0LVUyCsdAzlHv+VZydVOIgF4vmHinsiuv2HzzBdLRI/HHh5QynO0d3W2LVOborsiTGa7h7rly9I1j57IDc+i/cT5bexHWvGgKQHryOZsEeUyJmVzVsJSkLXBI9x3PWTBifDcjriG2uSw9Jcet4dtQjxrvkKLzWxSmjctwbz552Xtw27JRYlsbT95SSF14umfU88MlLpbbO6x8757nQayLthaU2kiinasFzN8fKBrYdBHvt5AL15KFAVaCEzeJy16nSyCX2rNZCiUaJAk4HEBesKm1xBjpz15hYulOyE7S3FOwSA1chbeEJXbeEFMuIwZeOcUTpBraM9blZ4ucUWm/iGoviqTJZpy0DOTvqOaTu2cPG553sI5YXpAWHo9cF4UAeGzY8Yi4nxrVwyStvz9e8e/WYLx2O7Gqnvu4MT67ZF+Hp0vj60yuGm5E/vP2EV+vEvF4gVUQ7Q5pIOeFyIYuGVUMc3WAjZoLXGUfpVsBbqLRidkhOCbojvSIS511tiSFnaj/jnlFfOA1KWgxrjTtg7I73TJISaq9U2EnHPJRlGEhv5JJo545lwJ1u0DKo7xFq2ElkhNRRL1haQymYFHHFJF7fAHM3zC+olzcyZKB3QZdbxrQjFaLhbh5IBKII7huzxU+NngWdCiYW6ssGnjLrXWM6CLSwLmaUc3PyboC+giWGHspTMcU17DWSCoccdtB1uxWu9+eQ9ajhcqZfjDKmSMfbFOxn7wEwng3VQDGsp07Jgolx3KWoBy+VdCxhX1w6TTp5KJAyCePmvDLgjGPiyXuPeP3RDU/f2UdbXUK1enp1xlJA6JODzQtJhLIbISWqrZzPC0/2ysvXK6iynFf2h5G3vvEN6rpQLxeKN+rGTLK7meXVBT0eGMc3c+9aa+VybsEkK4lhIAY7YpAzSiJpZZ5h7I1BjZQDTFy8bemAYdlKCtkbN7OSSjgVSlHmauyyc9dDjq4ilFGh3ie7AfgW/S6sa6h862q03llW8NZBdGO09LgreETQqySsGcWhyaa2E8dEKSk+Q+ZRB4okVIW5O8mNaRfqnBWh5M5aQb1TNDO3UFaoRLOi9mhu1MifikueRpJZWC03fMUk1B6Kn6U7brB2JRffhpebMxEJtZHwJw6Bfp6WuDDaTFd/aKa731tHCRsg8V5x72qQ+FEFlnCJkbfbst33HDeXRCi4PqtHZDsTUaVZx5NuSW3xfN4P5mxteF9J7ogra28UURKhch9ki5/QuPCLB0O593AM+Xa+FYn7wtAzxYJPinTSqBFkJcK5x1A7aaSU0521d+afDz3Dn3oJncGNuqmfUjKq+WYXzPH+NiNMNPEau/VQW6mQJORVvjUs70MezCwcZCZbsum9wMIQ35RNG66jqwVbSxPOFui1sbaQaFgJvtUuQArlVtKwCpYSnDjtjXEc+Pf+ja8x7WA+weVS6RfjO3/vzPFZjufvtXG8Tsy3hsxR47faON8a7sZhGnj6LJPGide3M80FS4pX4XLpWOvBes5xlicLhdVUMqYBfQ8USWapjhKsPxNhTIKWhLhCakB8Pq2/MTZD59/+Dbi8Wkkl8eg65Lj14pRjZiWx2yJ0axPGtFJ7w/YDKQspObtd5eVLR49xSog63ntYF4dO74lGXCoHFXqNxCR888SmKO66w+qOdyGlNRQu3Wl+wdmhNKxFWkb2xNxW2gL7fcTQBxxX6QOcbxr5kZNoVCH4WeLklKm9ksRQBZHE0gWVDpajY6vOMq/k/ba5imHiXFp8kHIKIJymwmxGSUIeEvPS6T7wn/5X/4iXl80/9nOzYru43zYc0NTBhKULJRvvPnayQ04bY8V0U2nBlARbiAt9cZIr48EoFU4WQL2bW+H5y4Fffh9Oc+fFbSjn5HUhpZi6vK7CH3848fbTmf/j/xaWVci7xvmlkh8ZH3xw4fvf32PunKviCLUF9K9VDUlmYmtogZoGx02E7hZTJQnlRiIUW9qdlIIhYtiWHAWDbNMn4OJObwqrQOlojsTFZjFxQpymcFudP36lfMNDOtsXpSlIhmEPN6fNz3+fAMQ9nvszUPebuu4bWiqJnhvaBFMniyMpFFGaNZgXORJIZFBGDEvCNDgrMS3ra3ymhYD/6z1cUTKiDTNlfAqX05Fn7xY+/kHHzbl53RlIvPd244c/KLx8mTEzWk0s58S8Ope18/gYsGXLHeuCrWFZoyj1LKRdI0/RoK3NGTUmSUkEPTicM2XbT73BenHKFMU23XBVWmrR7KrKkC0uB1jYEcXpVoPBQzTta9w2cIe1J7JH6IW3n7AXSkQW/6Qw/k0t2JsvaC3B2ChOkyVYGCP0FvJs1yh+e1bUKm4NBEpZqSZo7QH87M4wD7w97XmyKEd3GEPlonnATw19dMB94Te+dGRKN/ydTyp9mOjWSV7xZng23Au5N5qsJM00n0ludBp5AR0qVWZUgqFlbnQcl0pbhZQmOhUXWK2RzOm1hJLRnXzerNCEHTZqmh6NEC9gutkD+8Ptw7WwzC1CBDYocjIhmSPpzOqQU6LfT1plQdOI+w76mXWzu5pWerVAB6RE9/5Gulj95hYb9qSDkjZ+VtKwzjeJoY/NjdWF3bFwEKVZY+kgmtGcyMvKPCRSD0C3pgIC4+Sxn9QA8h/HKLBzwFwAaEiwpiwsyWvEGZH2Q1wm1ZBmkdzqYdPIbpRcsF4Dcu3b37eD947kzG4MFIQnZZoSBactCzkn1iob3wZs7ZSlsjuUADzvJ27qi1Bt630ysTHPnbQ3KIXhuKOa4yWT9weW13ccxoSo8OriTOPI+Xahff9HHH79A25OZ9ZlYe2VdlkAZxgSt5fE8a0d+0c71vom6v7g5tMTSYTr48CgHsluaVMWmOFpYDcVhomwgCVoi3JIxmVLzU3ZmYpwXjsmCfFInJtrnDOCcXNq2BT3y4pEGqIS7JjgJKCutGVjw/VK97aFq7Tgi1oPu/v2Z4h7KKwtLpOLOOa22X8iRXq+WEDgRSK9VzpjVrzHgCGNA+uyICbB8KUjh4HzuTJMidWMeXbyECptyVujpRtLjwoqwg/j3xxbksQASsF71FQpB9PPvYPEfSMabHFW/imwM2/kcpzHeopmuwbywH0boAHeA7Yum73wXuTtG38ssVn9fGs0imwIEMc3pdZ9w1GFBzj8Q8NMjH7fCHfD1hVSYF+SxLPWzCL12v3h/eoNJEeDwwVKEfaigaMxo1pmn5x3r3aUosiPZ75XnDUeeXwQSlLWJZoqWUMZazini1Htz5MM//+WIVhKFMDMMIVM2hwvvskGtjvltl98HnglArJZ8x/8q8RQF7bgAAurInTcN76nytbM3BSEOdJOXQj7czfQFKrC+3vtZtETIjEzpXv7ntFVuB4zv/2LR3b7CF1KuTNcKd/5f2dy7rRbwKFcJT76aGW2ROqwuyq4GcOU2R0LwxRKsZu7SIPubswXZ54rpSRKTqQh472y9lAs5o0NNhIBYXH3hjF5BFVpvA7VGiy2oXCFXDLNK+VPwfv7QutPVUBuK9OjHEyhVLhcOi1LyNgtgOySjJLh9SmStXQf8eDLEtMds5W6RnexjAk8WC+5EjuPd3IxuiRubzvzpWJtRS08+o4yeyinkgtqKXgAXVFJaF8IGpbTiYOtiaJJWUlbwa5Uq9Ta2F0JfV5BCtOQMTW6GHhnp8owEBLiZKg0evUNhuwcj5nTzYq0OLB6b4gKY1IsSUwCvFNrpVok7KxNmPYj4zHz4mb9Wb+tf+brXpH1+Y37By906yIbZsKHr5Qf39xPWmK6EXG78PGdcGuK9LhwH0ZHGuQSU+i5gnVnTMonL+F6hPUi7CaJKYgpLs5ahVcfKt/77sTjJ87jp8a77xmvL8LzH438xV+qfP39GRTGZLjCv/rXT3QiRdGIS7tuBZ0SjCsIzsk9d23tTuvRRFL1+HeqPEQ060a5bFVZ57CY5cEou85YgtuQkoQ1UXzbiIUuwg9eC4vFhLyKsyxCPgb4cnoGl9db0gtstk55+PmbuB7idLeGS8XIGiknSjSvum0tVAsOguw2dZw4ZQhvuKBYLVg31tawGgk2ZhIx9CZ0CdWWq/N3/8/EH/xt5Ud/v3H9FKZd5/1vKrMZz37nBm2d3hq9bXbVDKU4rSvn2jmb4G2MFJHcQmXhKzJF2ME6KzRlkBLsGIRetpQktWB5mId1SOLghfiERRNBQ/cpoeCau7NU0BIXYSEhdWu+um1hCDFpyt5RnLOFmvYnnxyn/2MR2P9k5uGbs6QnRDslr0if4zNPpvRMJ4XKw4w1NZY6R3MwpVCqeALbhb2zQN4r76073io7rmyKfWlJkFd8dni7wDsK703wqPAL33yPbz49kIe0QUrHSLasCrbgVFQds8rQSwQFsMMnpXRF2YVy1GLvMnPoF6wE58pcQ01BYW2ZKgPOQPcdDOvGrGn0CtInqg9Yd7p3EpHaZEI8xwjUOAPFDfVMImMlkUaIv/2AWwQKTKWR0OAs+V1MND2RcyaSrwKaIg2SCU3LO6bjtAAAIABJREFUz/ZB+Oew5PEV5ahhW8mFsgGMx6SMa2WvwuNjYZgijCGZU1yYJJo/dldZRMPu4mAa0eWydPZTYicwpmBIplwYpoFpGtgPmbEUdiVxWTrdOmMpjEPiaiwMm8rSlkY/r9QlFMaIMiqkZngPlcVsHvtQd6bjjjwN5CmTxsxUMkMqtNpBnN6i6S8e9ZeIst8PaCncrJXb2pGriY9vFk4t/EbL+YSWQp4yp5s7Fk0s84VHT66o5xkXp5RM3i4+u+MR//Fzhg/eQTRjmrGcGRDKWFAyr370nCfv7jleH5lX41zfTIW84Dx664pSBrJXRB2VviXDKbQFHzO1Gm1d6bUzFGG/0xgA4agZ67rSRMlFMO8R0qDbADcraoEaaa1HimRJlBK1y1qd2kJVYQqtNao5vUNt22Xe4pJVe1hl7sHNDngKLu3awvLXPZoCvYfKWFVw8VANizDfrWQ1ek7B4PPgc2UCgNTNw96s4C5ICrupSAxWq23PKB6ICACc3o2+WjQ4PNKuk0RTjfvkMuL726Zy5v5MfnOPx59qCRIczvCIwWZPvVfA3TOw3Df0yNYYsI2dm0o8D42tSeQOeVNv+YYZ8Q0cH29vDI371hh7+HgnalvpbaYu68OzFsPjjdWrQsnCbmO+OTEIDzVzXNjHJFwNmfcPiX/tlx7zW79w5NffHfiLO/jmrnDY/JFz/4yzRgqunDW4u22Ak4/pz+ot+BdujSkUV93CKkj3LZ0yalSxUGfW7XMv5pvYYBMd+Mar2+4GKaVQeupnd4aEb4zGHANKFVJWTIM5mVLC26Yq9W1QnAMDcL80KbYpNJMIOaUHFlVR2Ck82iX+0q8+Q4cRlxgCQublq5WcFauVZ1+aePVx43iA976WefLBAZqjKbOujbtL49Wp8uK18+pV5/aucvuq4mtY600V10hx7R6oFey+y2u0TWyh27/FAcnxzGsyxqmw22fyGPyxy9xQS8x/Cs3NF1qZdf3la/bHjNJJaUD6gqXCmDt1m4ScV+VahfXuxPLSOBwnxt1AdcI/hfH0euA0X9jJSNdgK3SDxTqq0Hwr1q0zlOjQzyen7BvNjG4LSRJIptvM6omioLkyzxnXhWRl87CGgms06MMO8zlkp16ZqzJKXAhFMq1WxqSgG6gtddQT3Txiw7PTvHAcldqdjlF2M9wOvPq0cf12FFxZBM0roHRVTIb42jKQPQ7pUmD0NxfC/dMtefj/b31S+bd+Sfn9DyO2djTh1SJgQi8OnY3vY+QUU2XbwTyH9HE/OFePAXWuj8axK6fceHVSnhwyh2Pj9LzQJ2ftkFFWh3ZW0jnxv/5PmXe+OtOfdZ59yRinCy9uhN/5nYWvfq3yve8c+eFHwg9+MPDv/wcv+S//i6fRMOj3TCynxZlFbc6UhSRR4KsTBdbWAN36cyQND77KFhWshtp2+RPZ0lMc70r3mBQmi4OfFhvvrTjf+kT42jG67jevlOOVM3fAnVWEFzf+8Dp/psh6M5VZn7cYAvznf+s1/+Fffcw4CKuA1UQWZ66wK1Hx1C4MrdGlUMYcnJdJsTthfBxx7at1JClDcVo1RDLrxSE5e1FOzyt5iMbSzafOl35h4MMPL+QB1m8NvP2Lt3z/HzymzgnddSxbWNCScb4k8uTcNUdFWLvjQ0yvEUNzojfjfFYO1xFy0SWem8vayV2wpqQxCqXDzumLMO6I5wCPqbk7no1ahSKRENpMN2l0pDB636y/utV8Fiq+oQgDkOzBK/HZ601Uor79smwy7zdxKVEAmA14NlI2zCpuQRMwGpoSqVZcR3rvrLoyphKKJl0YDLKvPJuO/Pr7X2XYG3bXkJbAB/yV4b9wgN8cUN18KifHX8Jf+fUPuP3b3+KHc6W5h2JVK1iJ6qFB0kioMzHQE2PfM+sNfa0BSZWYJEdNX8g4eKWJs3bBywk9JSYtnHola6YtGwunOX0QerPNJGhk6ZEMqyOrrZRSaTW4dKlPmNyB5Bhh1BK/ry80qaiHfW7NDskorqgpQqPKErahlsjDENaR7fJd3sS6XyM0x0ikbCzVaX3mXAvH64EmihCw95QSiGA3M0yFkkCPkD1sVpeT0Y+Fw6DIkGi1huV4ca4fjawRkxRKwZJx65QGecpoij2yEs1unzslJ1YEPURDCA3lp+XEOI3UVzP7fYayI2Osa9Q4ljNSEpIHrFUWIghAXMmaUWa6JLQUunio5btgonHxvD6yfudD9o92pDKw+AkdBx6/+4zhMCJJOX/8ktOrGR2iSbeeFy7VmHYDL771A/I71wF+7sZpvmNMwbu5/dh59ckL3v7m26ytBR/OjTJ8ocvwf+r1+K3rjW3VqZ641kxfF9KQaOq025kpB9fsuH9MXyueBs5zJWfnXMNm39cIuVl6hMxgzrwEq621Th8z3vQh2S+5s5pGwIQKaw079kMj043eeuyfWxOC7c6vRNOrbwoMb5HU9UBcDZozSWDTmEXTaVPx9UFp3dBNjX++aYxXJcJ5NvmO7wrLqW4Mpajn7tU2vn2eTKB2C2WDRIpdSpFqtjYLu9g2aL8/wy1mlA+1nN0r4n/OmVkuDqljzdEeDb+0wdtVPxPUpCHsdwm4f6sjLC4A6tk31ZWFJbFuarlNBEg2mC1SEVukKJFKOBcUqL5CzWQ3nM6ahKrGpEIWY8hbgrOEp6FkRSRCC6IWFHKCncCvPFOe/pX3cElwBp7PDIPyK9346tXA71oEFEgL9mE/KzevV3JKXB8H6iD8je+9mTXTP4v1ZDeEKtNTwNBzFAAmitVobCXbpHjuSJbtp/EZlRTKLWUDxjukUbEa9zCzCCGpvZElR5NMEr416N19SymIRplKNCRT2Drw1OPXiV8XIA+F5Nuzk4w9yqOp8O/+m19HrKJ5xx/87kecunD30ZlcnHlx0mHkB3945td+5xEtOTcps54bOsA/+sGJy8mxmzXcGWxN4Aw6KG7O2hqy4UIgnEs9Q7GtPncNJelWs6uE9Re/Tw2VzV4ZTXoZM9KFeVn5mx+3n/o9+0Lvcr/1W1+hEylKyWb6xcOiI4ZbxLYPkyCaOV+MaT8wHZRpP5CzUNeZoglXOJaRDuxyJL9tyKOQWrqhLjRbaGqsqjCEzcZtwlFah9papH95Z6mFVldSMWo1Zu+srQIrbplaIVvYInsCp0SToQhKY1dWrBleGzTbpgSFjpA0MY0xiSzqXNqM2UqiYZrR1HGc1y8a0kNxI5IZKAyEvDVrwq3TPUVEJ85/+3s3P9P382e5NvJASLdxfviq8Q9fbp+sBD0ZqhLJYatwcxFIzm6AsTjHCZYW8s+9OE/2sKyhxvntv7ry1gcL73+zMxbnk1fOpSZs35FF8B4xumgovrpA6xHp/PzTxDAa3/7WhJrzv/zuxHe/vWOuwte+Wjlc1c2WFtO68BkDEtA9dxg04sfxKIzS9qlOHsoe1ZDLm9impTbE7lUxsSHaJnFViwNUPHz4EHL2lKIBnEX4qAof3sGpOXdzMCFWj0bGq2T88SX+/H9cMfPmHpyft8D9je98QlGhV3AMyRbvEcZaQ94uCnXMaNeY3plQ7xwtofATyRiK9JgIsihtdVaPae7l7ORJw2plgnXlw+8bd68H3nt/ZvjVEz/8wyPWQHLlcsmYCeRO2TklW8iAe6a6IiUmPGpC7TWUPoswN+N8FxMXF6GuTvJEa06fgwNgLQ6gdgdLA/eQsrsYzZ35LMwW4vZRFfN7+yqwNWSbWiSHEklOEWWsW5pJMCHuX9/P//h5CfebajMUcZAGvuIoQy3kVEAznhR8t51lA8aKphKFM0LFkR7FTslX/NpbX2E4Oj4W9J2RXhNycNLuSPrGFf3dPe16pO4zTE565wBF+AtffgvTFZOE5hYDIQtosmqLLYW0TS0TnQXlgOYUdv+cyDmx2xVyifeqo6wG1sCXhGyJnAXFulI0ozmHugWn60oiRn7Nd3TZgW8Wa4ukporQtOKWkN5I1hDtgQUgk5NShlCTZYYYULmThpjCK3lrrHZaizQ9FFQ7J59+xk/CP/ulGrHw0hvnatTzjPVM3hWahxLXe2PIYees6xy1kTopCyrKvBrJlf3TiSz94SLIkFhPjVwyWQIYLylRIuyNVJ1xn5mSMGooZzRpJLUeCmkUplEoKkwpeCH7nZKysiuF66sRuTiHDvluoZTMfhjISakejYwyDZRhJGmoppIYSQuqytw6c4NlbbTWaMtKXRvSGqkM8Rw3w2uwaq4eHbB1xQ2WywI5xc/vbrmsFfV4HXeSkKyUcWBdZwYCR3G5dF5/8gnPvnqFjhPNDLHOKNHofxNXKhvIFwXvLOtKzyWUxrWzrsawmxgFzku4JyYatS6cGnQzzpcVlYxsEPR5Uxy7hY24m0WvprVQKgFPNlZVSdsQ7b65YxsguW/QZeBQfLPseLg9NC5Z1o22RdyJhA1NcYbN9nKveOmtYx2yRhNMrIdNsTuXS2WcArKQJNAOxPyZOvdoCAs0s01pLJGQjm9hG061+N+6RlJna6FIXRq0Je67fRvKC1Hedd8GkHw2Rvz5XQIu5G7hqtHgIrt64DBaPCvDhsaI9/kzy6BIXLgjfCl+7km4eAQmiURqtVsot1qHtcXX1kaED3Roq4MpvVY2GTxONDjvm5fqTnaLJonAkGL/Q2OYEopG4dkAT3/pLfzpHnkywVf3cD3gg5C/vOPJ04EvXxUOJc5+XLmcjd0+c3WdSSVqqr/z3fPP7m35gq+3jxPFgr8oatseEsByTeF0QUOFpUnIOcfnbxOmJE1oyg+qP7EenKziIUrYRC0pbQPk7dKmZcM+kEgq2/ePNz/ltP1ZQt74W2YdVaVMU5xbOW5z4lDGwm//2lOmQ+LqsMfNmW9XTj9eefv9I60Xvv7BNfOp8mu/ecU4ZFIqvK6wtBimT/uBw6PC8Vnh6mnm8CgzHhO7KbObMuOYGHNmHDPjkBmHFP/m5mi36H9scaApK2kLbonG/lYvmN8j5lCN/bKkYA2f2k+/e32hR0J/6e3Axta1I7Mgg+A+o2TGLKgmBinQV9YZHr834SmRRKnrhShhOk7jvFS6GUkSTRrWE0UcpWDe0B6HXXUjk1GD2ZTkDfWKFJCNO7J4jwPJlbaumORgfuTEUgXMyCVFxG5L4J3qHViQPtAl00XZHY06r7jAXgdMGmIeMeEeCi/RgSk5RkE7XF5fePZ04tKEV88769zJU8GqRbLBptSKtATFrKHjAVP4r//mi5/1W/ozWZ9nZd2blk5z5bKO1Ab7FNM0d0DhYlEktKq89bjx4gxDNrwLQ3Hefgemg3FMzrc/VD75OHH9pPHp88xuUaZj5zIkbs9CPRilCa0KZdz+Fg1acg4j5F0nJ/jN35j5wx8lTs8jvnqaOl/5emN3gP/xf7giefCrBg2wKUTxIxaTJs1CVUd6XA4SkDzR7y8Km13L1emW0BwwSU0evCKLAZ4QUMloskcjTokGV5d4/YYEL014fgNDd9oqm5xReD45Hy3tJ153f3jd39R130yp3iMaeWicT5tVUMA8hTR5i6lNW6KqqeMmSIdh5wFD11CecFFmc6QYrSrMCU1GR7l0R4aOCSwddmNnvoXv/8EVv7JL9NXIx8blNiG6BtBfEmWM9BGk0ErbEishp1C92KKcu7EuMQF6fdd5572tKZoTvvbYJ08S4MnB0G6kg7LMxjg6vdrD84MGw8/MuZyU/ZVh2IP1IeE0g+oJSRX1HAWYGLMLkybefzLy7U/PD6/xQ+Pqs7vKG2s1lCSgY9jgxON5WYOPZd7R3EA6mjJQqCskHdEy03tGcnAIpg5PrwdIIIeMJycNBd4p0BT/ysT6LCPjgN5cMBF4fkb2ha++9xT91o5Ow11QayxpYfSEdSfJiGjYY9w7JoY2IWdn6RUh5M5WQbSTZWA2Y8xwsQDHd98KNwkLqTXDU0GGijYFSTSLgJPce6QTijEQz0rTiZQqvTaSRNFXV0PygjdlGA1QFivRtK8dFaPpCLaimsAa1QXxTs4VtZHUL6QivHoD3fnZohFVkqOnGdkfyApIWMWbOWUqkd6WMuNYyOZQ4HKa0UunPJ625CVnt5+w3hCZApJ+GDHrSMmkJRpAvW2x9SlUmZ0tScw8bIXkSNnd7B2VYGUVc+oaStLaGsf9SCkFHUaGQZAWg6JhCltEd+F2nXm8G2kCVjJpHKh3pw2c7NT5hBKXDiNSq0DQ65HXf/ycZ195yos/eo7uR5ZlgXFEWkOmQsoZsUbtkeiavUM16vnC9N41S4+hmW9cpg+//SE6waqZXBe0hKV82Ronb+K6VxfkZCTvzPPMtJ9AFe+N8XDApWOlMPrMze0JSuFwnKin14zDAKzRwK6V3iwSeC/RxPbeaRJs3MMuYW5UEV4vxtxjONclEYb3CKAJC140R8WMikQDiwin8PABATw0GNJm28oSVh/dLmWt9c1OFDZBNntg97gDlCEYN7VF4MqyqSZqjcbt3EIxtv3FwnKWIo0wUslk+3oikKX5vWsHx6Luc4Lfs6k/TO7bV2FId7+vfH9eV9SexROrGmkDWslW72oWvMU+NG5lbAD0NzWVhbJKiOehWSi9OtEsrc0fYPG9xXvTOw+MM8lAD8dDah3dhpvdCUSO3jNB2Zr+ERLA1mJNHqoc1WjEvbMr/MIHB/yXniBPDoDD9QRtQL97A++McK68e058tHRs6dzdVh5fx31UAd+GpLdr4nMeyD9fn1vXO6HlbZ9wDbg7MYxNKfRJhlMkVFYYaEoRJgN48F/iPm7BwnWxaFSlEONAhEa4frb/x++PLqptyq54GMPzqoRyEycUvaKIjGhOlJyxbtTW6c0oAm+9PeBWWebM3Y/uGMcJ5pXd9UCZbvjGb17z7tcOtF65u1Re98SLVyeaJZ5/srCuMdDB426CdWjhrjAcLOESz7SaoQlEA4vjnqgtEt09J6w1kgFJsL418NwpSfEkUVtIKMVdDEsjsPzU79kXupn1WKNDOM3OsAPEUTlQhr5NO5zkMzevOjokVKPYaes5Lt66TYCaUMbEjhIHxQoMTpNMouLurNboPmFWQRpKjo1J4xJINRSL+F8baMxgRlvistllQntwr/KYA3BsgqeMGSznmTJNVN8YRn6mk9ntlPMFmjU0rxFlidK6k5OS1OgW/vvTaWHYJaokNCnjbsAXIx8aq+ewlIlQXTAR1OJ7SV758DzQ/ed147pvY/nnDvbgfBSJA2lpyi5Fqp8Aj3bOoRgvZ2E3OOsan+Pd6Dy/gacKT58Zbc28+Cjx+y+Vm0t4pXd34Ve/t0yZACV8zS5O0vhbzHPiS1/v/MMfZd7+UuPtt41+arx4VfjKNyuahL/1P++Zzxt40C2+rziDhKyzlCiYZQMKqgdwPBK6jIzTWlz2k27JGy3AlWlLRlQTRLdkuU3ZpYQcf1Bh3fSgKpHoaE054cglcYdzW6NZtmuQi/B7z9ftVX8Q57/x6/NqIVOjjIWddk4vMkJYFbI41hzr4Nq4JtNUkQr7STDpiCaGKRJ0Xq+GjKGcK+I0AkQpHvB49xzgSXd6jQtae2X8X//bSF8UJVNSZxiEZY4CqzdABRehizK44MlZVii+0ruyzIoqrGvETLt7TFhyp52dXJzd10b0prO0SqVH0v1iVNeNIbJJn1MUANWFq2ujdgvfHLpJskMB2MRIlskaz+y9lRuHd46Fb3/62ev8oIS7f/E9ns03clmjaihWpEYTyx0qKyQLsHEbMO3QBc2hwLQ24XrBZEAQjtNjhtKJiC1FDsFmUASuOvLjSv7Vgl0y/Thipxkej+QXF8peKCnT6xkd91hNSFV6EtBG9ZWsA2ITSROtL8zFKH1Tw5qhmuK56MYiFRKs6Dbx7FjuaB9wKmSnp75RAoRBhFUjVThtU89GRyi0OpN2A80rQ93OaklhKSHhoqRiWAvlWCE4FAJYckRm6Alzp6G424NSNemKW6GnhQ/vvtCl0j/VmiTSreyycNEd1wmSZkY1GjBv7A9yxsRJd428TywvZ46Pd/i+I0no3VjNUIvIe6GRvUWjHUW8I02RFFD25fVCPWQmgomXcQYlrIStYlU4G1wdIesQ7KSUyA5SYlipaeQoKxc3Ls9vGN46IklIwxiNgbWRx8zNaUEUjlNmvbsw7nacz5X9sdDGTBYiwbcHU1UEkh6pVvjxP/gRqyhf+eZ7UTesczCRnlzRL2dUNH5////Ye7ce27Lszus3xpxzrbV3RJxL3qqyXK4qyu6qLreRQaiFBEJCfAE+AC/wDk+8IvER+gUJiad+QQgh4AXkFgJ1q2+CbtNusEtVdrlcWc575clzjdh7rTXnHIOHMffJLLkRTuNWpU95SnGUcTLOjoi91ppzjP/4X3rYEczKOqVgHXrIyFrtnE6V6sZXv/YWre2sKOZOFSEVpX4RY5C/RCsS38Ivr7qFSqKD9QoqHK9mvJ/xWpmuD+RlA9t59MEZrZV0PTNNhbvbleM0JFfVWZaZU6v0Fqyq2sJjNklYOpzcX7J/D1k4ueAWgwE1fQmkNkk0QMSYUyJpMCAubaOKMOVg9jjRyAkBWmUN9quYUxal9tHUthESNOSD58ECu8gRuwu2dWRWqvVgMQ85TjVDZZi+DzDZHeid7joArxjP65BLmoW5+MWzCfxlQEp858GM+yVewkjys0itxMLmILWwYEkJtDMoWBe7A7AUoLuOVEwfis0x8w7ZvYyvJWSqtQ3xg4yArj5khh5S0jJkZ8FMAWtB2SvEN5AmeNaY03nU64qQRbiH8I0HhfSvv468cYCvXOOHgiwT/OAO7g0N4qa8VpRcoZ6NKSuU6Hvjvjao8MuWZv9FViqFISCNXmoE7aSRXpIl0t6N8IXcrCNmpBTnXG+RKujuSIphdR/kg+YyANDw/pNhJh+2DUJSHV9jw/buIlckUs49+lkVifOwTKQyB4raQ4WjAm8/LFxfJ9pd+F2++4MnfOt7X+PDf/IR7/3gCd/8V9+i74pxoqNsprz7szPPzhYy7+dDTaJGrvEstGaoKdVj7+3e4qdTwVygdUR81P3QJdPWGuEGGn6/YT4WgwV1j/dKFJdgtYFjDf7R+7dfCIb/Uldovu6UIvhU6V7I6sylojIkOOq8eLqzPW985Rv3Ee+oZs570OcTUaDmUpGuNG+IwDQ7WzNUO5slxDtOAt3w5tzV4TVkO90y5kb2FEAXkZCSvGMtD2+9hEsDMs0jeSe70XZB506vnbzMSO6knnCvdBaCDuMcZyOpsFlhTonaG6SYKfRu3N1W8mFmvr9QkJhw0wPVnKKAdzd2azSfGFEKYSgngdj+p//lH/6Cr+Yvdl1ArM+gFefcdBQu8QB1janxfREkQxfheQ2KeRehIzy6U65nOG3wB+9m3OH3/qiQyzCx7sItMa1rTZiKRCSpRPqJjjSSVODDjzPPbsPn4fXvNn7048RaE+uq/M4/vOL6xvju3zjxO//0GKlzHrrsTiTiVQ8fI9FIKzwWp/YogiaTcJiJ3g69gFld0HyZvMdmOo+0OZPYpOsAwNSgKeGTIzCPsIU9CfutsrfY4HKCuilTCpPKv/NH23ivP//Ov9rr81LD/+y//5D//N//ahQ0i9G2iOYWVZZJSN6popy0MbfM4SiUZ87bx4WbB51rmfFdSb924tGnGz943Hh+J/QErWskL5kxz4X1eQxtTndOngV2oa/O3hXdLFhXbrQBdLZhCmtDytglJr9JDUyZ7xnzMdFunSU5W4soZ5mhnx0wWlPaxxvXJGpy0qy4dHyDvcMyK80cVR9prMqcINCJ0NnHoyLRBEu62ANgKHcWUdVOAHX/znfu8Q/eeRbvM1HQO1E0MuQnr+pNdk5HjnZG3PAkJDWMQdd2oMfZY9pxMik77jPgqCrIjpNQqQRa4FAF/7QhbYH1iJcGbwr6s5Vpdba3oSVhvmsxedt2JO/R6GVDLKNuiFWSZnbfIBvelG4jcdBKmIKilBbXLWZ0VyR1creIlpeG+MxcVjw562qIevhWaYAXm25RqHhGpNPVmCRhskfRaY0pZSw7eZ9wE6rsHEpio5MMugbg1pqBT7Cs2J5jgjrYF6LBPPQsJJdgsWnisHf+wQe3v9D74F/GevS4U5JzfHDNoQCDDZWTkM2YS/h4LAnq+3dMDxeWnJG3jmwK4hkksUujmKDeiKrL0WUGazG9bU6eM/SGr0a6dxiejjARKYrhf2ccc2ZblLcQtrVyt1deu1rQnLhfjN2UtXesbZAL2ozj1YxMD+i6RdJzKthSkKTce5ARq9gwxTWEcnOg1hqeNClDNbwbuWSOWuhaaW9ltt156xsPKclJKdHqTuln7r32BrU12vnEPGkYzJtzfray10oC8nzg7uljHOHTn3zCa99+k10iGKj1HubS43d8RYlZwcZsRsVZFLI4ve9Ib5gn5gdQ1zGhT8rhWDgej7grYpX9tNHYgt08bA+uJuW0VxBh78GOORRhrxUbA+16G4eJjtCblALs2r0zlwzu1L3HYNGNkpVSMhDDFYZMTxgfSfDWg+llATqFEgK4MECB1o25CFtN6DT8vMyDuaVC7xFKRdGXrEQ+f54RwT0u0HsAZ71apNW60ZBgvw4JOVNIYbuO5MLxcj7OUSeCgl5V1vKfdRlwFqV4MF5ksHBlyPdUw4xbJRSAJYPVkAjmPIzXFbSBD/8rG4Q6T3F/eeflc9yIwTcCS4nvUTJBxlDIRA1eJIYqqcOchesUAVQiAYQqStPOMcOb6rx9lTh+5wZ+5QH86n24/3WE+zg7Uj/GckEfd/jgTMsTSxOul8TmmbvTSm9Os4po4u9+8CqaQP7FrWPJUdO2TiIGv8XHfqCC6UgbRGgEq05TAM3djDw8s/ziq5WFmWBueZXw2CJsQ9xt4DuCpzQCLjrJB/gjvDSgdwtPW7EY8JALKTtJ15AYW9h+3BwKr7++0PfG1gu93VEOhXf+6DH0zro5y6HQ9g6SOJ8Txga+AAAgAElEQVQ7v/uTWz56UXF11JzT2NfEhOpG22MPrNZQSZFe7v4SnHUNFjUexI1mHdFMWVIkr+4Wg9SsuBhqwUB1B0xoHnueq1FVeFK/2MH4pYXsRSMlx8fmIxIUXnfHaiel0LzfPb/j+NrNSAAIaOJYlFkbgiNeY3KvRvMErsPYGzoR29wFnEbvyt6FZivbbtQG3hrSndY2BKX3Ru2dbZexeWkctFSst2AIjKmQJR0nU8OTgwmG0hxEK3MOH4mehimyR1KTAEca2lfOt8bNg2OkkSGUeBmqd1JzUgpDyEwk5cRDlUK7W0I69D/8H09+gVfyy7Bk/HnhZkXp8OSs3G6CDwfHjjBLRNs2i8a8AEseHgXubFV4scG5C7d7mHmbO62HYWl1j5QKF+ZppJqkAC3Vo7gyF7YmnE/Cs6dxT/YKv/kbjb/2vTOvv1k5XjWOV873vz/TLWLMLx17VtgtJjatgZvQMJo5sxqT8DIJpVWnO1QCCUf9Mz8FcbwDruwD/Nq804IcER7PEqaUvYHpeFbU8RKjpZyF5pDNSbMxJ6Fd5GAv3315WRi+autfVCj+nx8+w1eDHXKKQ8i6hg9H62wtISZIVZYuXG2FsiWum3CUjNxl0usG88zrX1v4ekkkzXHnanhm1F3Zzo7kxnpHuOVZYoSiQnX2E2CwV8e2kNYKOthNY45r0QAkzTArijJnhVJZjsJhTuybo7NRljBa06RMV7DNLYou7eDQe0GzUc1Imikpx0EnIenARlKmyqAaQ3MlqUdgB+FHkUTD20IgY7xxM30mLfycwjA+H3r7V5SZ9WiHWjNVN5ptMTyWPkBJQ0uj5Bn1IymFNNqlQzqjfkS8MMsc0/peoO6wN+xnZ+Q18G/t8C1HPpxYv3XD89+4ot0UZO/4oRAu/GBtRnUCzxgb6EYqme4tgk/2id4nlCUmvrohGHuPFE5IZHdEK0k23FoU4drI0473idYbuZRI4ikMRuMOWkg2U0ikslBEgZAahXloQq2RrZF0J01n5tyxWjkUsKK4zuycqdpoxbjrYGn4TYjSUvhD6SJ4EbZUY/LpFaTw5Nmrhzj4+ZbVpmjWPQ1PjjCbXs04b50Xj2559mJD3r7PcrWQp6gxhISqsiTh/pxJquQ0MWuCFztJnWZOFqWthNl8nsgFJCU0Z8jhC7JJoswpBkaaKRaFbp4L96Sz1YrtlXWLIcw8T6Q0kVJGPDHdv0+7fcL2/JZ0V0dEeKE7rNY5efj9NQ2vm7aH59J2G9dYrXMUWDSDG0aiufD06VNsHkECvVI/fMqDb7wdKjS38GydZqZ5QsrE+eOnvPbXvkaaFxwoyxXvff9D0gFMlb3udHe8hEIAErPAYXo1G8skDP9NWE+VlDWYA61TstDdSSXM97fzzuncOHUw7agG06135zAFEHo8ZO5Oe8houg/p9WAwqWIthjZlFhZgzrCoxTAvOVdT9AcuGVyYpsQ8h2QUiSY1SfSehykzlTgPvUaDaD3u6W5DrmiEf6RHCqK407qwZGi1B1NqMD57d86rjSQJf+nJPoKl47V6VKa9G92F2oAUHpQvNfWfq6KcMWSt9hkLXoYD2DBWjT9fzbPxz7oEYcIwiZ5RBrONwY7SSJEJttTlUSwvWzdavMhIqRusGgkQK8tIQ0yhaMh5/H2BKYdRdikwl2hP02DYpKFmzSpMOsBNM3ZXMs6CcLZONo17XIVpcviVI1wXuH8P+Cpwg5Dwq4JYwj7c4KAcbgrM8bPv+46p05JTJ4ECf+/7d7+IS/GXZqk52ns8Y4MF5UIMTwGxz57FpIPBrCOFNaXBvBJUw/s1+fA9lvC8UhkZmxqspsszKx7ejioKI90w/LmC2JJEo48VHedSw/ca+yED8yDIFDkp+6qczzsf/3jljW9f8cmTF5xeNMqN0p+fefHJmd2EJ6fGJ+caQ/IknNcA4HGn90o4vAnd4mcNebTEvivhF+g9QiuaBW4lkgerTclZkZKotUHvmMeeRUrkDDrYXKrBLP3hp40v2jF+acGsMhckOQxjYCQudJccUfC94W40SyxXAqpMM3RrtN5pPQVKKQDO1nuwtYpxOoOnMjwyCDDBYDfj3BvZJyR3nE7zyt4iWnLdzoFut05zp3sNYMAr3gtuJSQe7lhXvDr7izt0PkLPoxFbg0pshc0Ut4aa0L2RzHHfoXWePjHO68LV/UyWRs4OPZL3uneywckSVcIUHG+IFzqJrJ2cEuaKpcR/8/c+/cVdyC/F8lEK/Lw86d1b48VAvPPRMHHObRhAjkPHDc7mHEqYRJYEaxWaCVclWFHbLrjF5lIIJpSJDD+ZcdklJIGTRmHiPbae11/r3L4Q8gQfP1befSfzyceF2oSr68ZhigfdB1U6ngOP1DEJfbamiwdEeM+0cUpnhakIXvVlokZ12FpMxfv4utZj04oYYKE1oecAvkiOTjBdwVSG3n5N5AQ5wTLBZMJSBM/2ueCcz6Csyzv/ys8Hx41l7mSCVl57Ik+QJ8F60HS7NVo1jju8UOd03ElvnqlPOmlT/KHEjeYTzBPf+u7Mw7IDHbc4FLsbW7NI6snO7VPoL5z1RVRkqUT6UZMo8JFOlpjktsoF3QypWUp0N1LPGIlta3E/e0dSmDG++S0jHzLp6FirrFtjXWN6aQbrOZGuL3u10qWxtUZJA0BWHf5eIYd075QSwP3ehTxqg732oCcP0LmL8tqSPpdWKC8TDIGXN5W9ogbwv/POGZ8cSQdcr+l0anJcI+VNPbxikA2lIHmApzYjciYXyFnpnsDP0DO+VuTDhn9b2b97xf4bV7AbQoZjFF/ijtxVODe220r3nV4rvte4vj6xWw+JC5mz3KKyUvWWlGaSFpyVXIIxVr2GnMYEPOEZFi8kP2Bjukc2ksagSvuMWyLLgZwcmQxLLSadFwkHGgOjqeO5IHnGVdCeyVJoltjDcgfRhuYJIeNSKZbBMu7CbnXcRwtcwgqkkLyRaZwPwp2vv9gb4V/CkocZr7fcfrJTB3Op4Wz7zvasknTi6uGRosG3um02ZA2FYxEOOcypl1y40mi6V3Ge68SdCWhiWhv3701EurlBKZS+03sUy7tGw103R1LimODNeeKmwJSU5eYYz7oouSSupmBjTe4sKVhkzXbSzYHl3hV1v6UimHXS+FmX0WB4bVwNgGN2J+cEWwtj8Lj7o+GdCx9+/x0e/uobtPMZSQkpc9R1SalbQ11RLdytjbMnnv3sloff/hWWe29FYJHAO7/7DmjnzW9/HTSkZuholMzIGlLIpK8mmGUWddecgF6wzSPwKCekZGqrtB5nwHbeuJ4yD64V3yvr2qnnYM8kMVqPdLY0JRRhOznzMgY8UWCFdLO28NWbE9vmnHdQ15Amm8Y5J045lpeSoDQGNIKimkhJo/TJGh5yfSQWDgrVyzTp2sIc2j3AVxXSANgArH32b05rqCgC3BoNsTB8BomhDE7vfVSrQ1IEQEgPL0mH+Ph3hLTNEthuI5lxNIkS3/evPLPG1q4pkiGHybR+DkRQAmjqEtYjAFjUu0iQB5KCp6hJ1MPMPwOzBv6VJYbMU46PMkVtXHLU4EnlpW0CHmdSlkggZ3gmNVfm4Wu1KiNswOk9ek4tBbua8azADByADh99AFtDuqJL/ACtCH3J+CQ0aewYTeIeatY5fQFj7V/GlTU895KmkbwXQJS5vmTPQfSHYV7+OQBL4oOkSE7xNOfwskYliCY+7qdhtZHG1+YcKGdChqT44oMXxvP98vzzWYBATonUG2I7UzFKztRd+PRx5U/++MSTPzlx8+bC+z/eOJ0SZUl887sPWW4mvCQ++GjjnUcrvcP9m8w+9hK56GWHfolLUBihhqgePXN3Ze89giwuGN/wJnQRmln0mgplKrQG4hpelr2HX2oKGK650yn88OnQ636B9aUFs3IOWZWp0Dyod9UFaeFnJdq5e3zLw9cfknNjHpOyu8cvuH220s6VVnfWc6fvgtpA0HvQnvfWI7HHnN4lGnoTlMKK07pSTdls+MvUxnmD86nR2o71SmNHqDRaTFdkJ0kOk8hkMCXSMlOsMUtlTpCkMKmi7CTfAnhICqKYOafHiX1vHO8Xrq7jpt3VoUZD4TRScrp1+tbonnCZ6KpUDSnZZbJo5GFW9+pNlb/Y+nle0KVA+N33z8wIM0F3c4vJliQow7vg0jxPxTkszvUhmilrkHrE6IqGD5bigeIPPbGq4xJJiIlo+s+rc9ri4MvqfPRJBlN++ieFf/a/H1lfTIBzfQVXR/itv7nhGgefjEIqD1qnEIlUIdiPJLg2NNbVQtZjPX62jtIJ0EBcaKEqw5LQGaaFFiy1NAdTxkakapJgDSZkbBhO34NBk7JRXMjFKSlRXpoZXuCGnzfef5XXZZN3d37yUedqK0wVdNWQTaUEPaGWmPbEkwn2buHT9tqR9bEjH1iYkq4JP0Q0sCyFf+N7hZvruN6dC3jj0IZx9tRoM3C4yA0iNszCsATvSu9Kb06thtERryHNJg6ebuFt4zJSdnawVklJePTDjN12SsnknMiLhGrQ4XyXSZMzTYL1Mor0kJi1HlJYcKYCs0YB565ITxxkJGqORjqLouZMKX6vaPP65Q3mAkxfGHEuhHTgFb29fvCsIlLxpiQaJeAY8MqxOTuCl46nMoBJQWjMU0VKHgamQu8NWxX/1OjvrMhm2P0DdGf+pzvcVoQz8yc75aMz5dMdOe1wcp5/2ui1UUpms0qu09gv4rq6QCbTfSb7BN1ovoPcDIC042w40fi16pR2YJ+NlCoLCcth0ptHIIuUM9NyhNyYcg5viQQpT0gyki1kAU3hLShmeF/RUV3ubmgZE1WP1ExrkDXHhF0tWGHe8TSResNlYwe0ZrTJy0nr+mJ6mez6Ki1ZbiivF1o7UZ9UHGjPT0ieuffGkeslc0gwLQd2V5zE85NxVzun1am9YA53e4xPRJ2CkRdFzJimCc2ZWRNLSkwlI5sjZWJKibY7i8Y96jlzVOF8glqdVgUkcbcZSkJSYnXhtDckJ7o1ajOSdKblgJZMp3D4yuusz8+DeeokjcHLoSQePrzhalk4lMJhKdjjx/i2M02FkjM9Bfh1en5LPiw8/Oob3Lu+odbGR7/3Yx7++jepm1Nk4vknT/jZD37Kix+9i378mKvjNdff+CbbduZ0+4LTuZLnxFf++tfodSPRWZY5bCJOG8uUmVJCyV/eIvz/57IxcK6tMV8Vmhg9Jda9cj6v3D4909pOWGYIt3vj6ZMz3qM+UgWpxr4Lbo1aQx5o1jkewpNFHX79qzPdbJRBirizDxlgpP1F2E3fx/R/KDMYksJcBrNQNXxqBzIxLLAGEBvMGdRp3bDhaQvCMimHJUd6oijn3qgWvqQC1Gpo6KSpw8zLPZIVIXqQYDsEcOIeDETJOsIKxnk/tqAuwdT3AXC5Ka7h03NRi8CFgS+8sofjn3EJYy5LnIVISMPSpS2QUEzgwZizAWrlAqUIyYZSzMdAWwaARdyjrpE8mIsEO2uOYUspAWqpMPxoA4y0EYCh8DI9M5dINc0YrdsANwfbSyKIiSmFv+2px2CKDep79P/298D3aP6/uuA3M59sRhWj7sHwsy5oj9//ZNMv5kL8JVri8YyGD7ehGvYYQsgOfYBbmgZbT3nprQXEfsJgp6qQ0JfhEpqiriiikSIuYcUhw5cLojeTFN7Y6iBpeOaN/59E434WIrAmOSllSk6UWZgX5fZp5fpe4fDWQkvKJz87kZLy9b9+zfFB5smpsR0S797ufHpybo6J9a6z7R0ZCYTx8w5QXMK6wkTozqitCFCtK21Ina3Hc9QHOK/oS0ZX0BMDoE0SfmLgNLPAQkTZ20ZQeL/YNfvSemblpUS6mkVx3pohc0ZVmNS4e3ymbc7Ngx5SLm/Y2dDrmbatMcm4C/Tw/v1EwxGf2PspJmG+s28zTA40mlk0776OqHGLyGbr1Oa0tVFrbHSTOal0rg8L3QzPheRGzsruQ0NtC91P5JRZa2WZE5s7CaNao6jitSA0lJ3Tc+PwQDk+DM8Tw9ms062DTZSUmFzYutNaIk+J6aoi0nDVIdeJm7xdzi4V/oO/9aNf5GX8Uq2LzPDy2e1auT44p0sioEYR1S1MIYXwpRJLSHakGw+vHO3C7a54CkN4l4hDfu3KMTPeuue890iZ0vA32oVjDtYXEizhN+8Zz7c40MrkbM8T3/sbZ/75P7mmuvD8ifDam/B//a8HFoU1eZh9E4fblJ2tESyt0fQ7IWuDRCbkhbM6PTnU2CB9UJ09OXmYdVd1vAvZxn6ZDekJwckIZYmiK6aISlmcx8+EpE7JQu6wXIW/1n/1O58xGC4g/eWzVxXQuqSOfN6Y/D/+7Z/wP/1Hvw4tpjFJKm0zJA82U8qwN9QTfpxIB+F4Vbm7y1ztCXnL4aFC32Er5IcLx2OjNwPLEQeewCTM2svRORblxdnxadABxUnGYJEKezvjPdIybd/jMNGMpgLNqDLAshomttqMnKKYb2swpvYXjdQTJKNcd6oF8Ks50btgUyONCbhKgJzhS9nASgwprKM9YRqzHlkhL2Fym9SoHqlniwriSsllvK8xrfIhLRy/Iq8y52/bFdEb1G8DxMpO6omUJppC7o73Cc2NZiBNyR1Sn5inA912PCn7rqxrYqlbxETnifThc9LHGf6xwd+85ur3T7CucLcj2w57pz3b+efvvzs8KJUsmea3cd+5oGSQCemdTmNHMQtgyqSD9CjS2oEu0SBYOlMswNVGou6NuShJhFNvzOpYy0DDc0OI6agmx7Y7RI5YazCBmoJnUtqxNiGlQa9oUgrGLgW3GDzIxRdzVyY90H3HvCOyU1Mmd4HckW6YZyatFGv8j+88eyU10iqJkg/MX1PS840nH3Te/PY1fRO61wjB8YlDcjbPXB/DMNk8kk3bMMjd3IFgyUgTHlwveN+pvbNcF9ZdOOQNlcJ2rdxhJPdIX6qNe0lRcWpXykF4JkoebszHXNhPFZ+EkkPHU4YFBduOLAt7N0QT11czjz94DFczngu1O1cphp97a/St0gvQjGVO3Lz5BunmiIuwrisiyvnZmY//4GP0emE5HpFulEef8p1/+9+MhM3Hn/Lso/e5+soN1//ad2kaPigPXv8Kt7fPqHXl6e2ZD/7ofV7/7tfxuuKawpy3RZjHcnNgN6dVC4T1MzrzK7XMojZaTzvLlWOmWNtCco5wLxm1ZqarI6fHj/AuzLrS7s4c7i80oIpyt24cirPtjSmHXD8vM3VdaSL86OM1QpNaQ3QE4iCwGek4YS1StnSOkBvt0Ww24DBdfLKgrv0lsBEpc8F0ai7ISOC15vTmlCRszbh3mGgabD23aHBv9wCe0k7IVh2KKrUZkoTWeqhBWsd1JNmlMFVuFdxtWEII7mEY3ruAElKfFiz9PvrNkj08sgTMBKuO5xgGMdg4v8zLcSgZqS286tyZ0mBcOWz7qP3TJZXQySne34uiwSqkPEJ04OINHmwrGXJa4OABgPYc1vs5RZ9Q3MmqIE6JOQkHDesO97DqMLOwDSkBvlUd11kM9ylYXGeHU4NPnsH2f+O//Q56AHm9wLbBcUKa8d6jledbx/vOlKIGXIpwNufpnz0g7pd2VQ+mbutxfXK3YFp5XI+LXNSHd1WvLdIMIa4zYBpWMF082POEkb+7IyWSTl0idT7iAEeZkZRBZAqGlAaonUoKS4Tx/0SErEopOlhhHUWw1qEU9hne/fhE2nbmDnetkxx2hcd75Ucfr+xH4KZwJfDRByfqbkwl/LC6xmC+9ai5U07x2uN7O4ykV0Cd4vHsdOuYpHG/f5bKmEzoI6SPFKFVc0mR3u7RJ3Vz/ud3z3+ua/alBbNUInUtD6plSgmqwCLY3jndOffeuCIvhVo3xIVDmjgcOltZSAY279iTlfM5U2Zlb6fw13BHy0JeGtuQIWSNiYoPCm8zaKS4m2xMHjPkkURTBiyye2JxEEkYOZLGAJWOeGYy2K2zNUG1x8bUBNfGvlZSWOtwda/QTVi7QjemqZFyQdKCE55YzR3t0WC2XkOGMUXSUIAaJZBdT6Tk/J0f3sIrKr/5IuviJ+AvCdzxtyCUFNd60iga3IIxZcZLfX3yKILEhacn2DzAqT6M3Q8a0sJvvmn8wYfK+58mcunsTRELcLF6AGTLJKRkPL0NVlN1YIUPPyy0n07YYF+ZOx+8M6MeZt6JKLDyQORVnDlFg68SEwRpQUVNEgliZYQkCIGuW494XxuTpWpGSoMFVAwrTgISiT1FETYpMZLqSi7OdudIiY1pEmFRZx+JHXT4hz+tfB5ceMk65ZXsB//UumzynWjk3YAWk9aiwuaKiIVpMJFsamJoSbz2HeXZD3f8yRXypoQz6HLAbUdk4us38P3nAVg2h9o6MsdUj5q5uwuzWK9DRtrDsF89DHLFlb0ahWhKJ5RcGnekkEeYhk/DOHSNRPdOuyOYEkNSkQ5hmOw5/Dlah+3WKHPo443B8kvREARtuiDmdDrdMjqesW4RyPGS9ScJ5LMIoC4tpqbwmW8Wn7ufBm73qu5zLRm//17nN28W5KZjHSQZwhRIXqm4dfDC9HiitZ3pSphzQnPnuBSKKGYrHzx/yrfuXZHuF/zDjDy6xf+4IzcFzjv8syPy4oQnhTejKfz++x/z+PScnBPeDdUag5M2k/SE9Ilzu2MpGdEJ1fCONEt06bgtILckmXEq1hMqic07WRTzBqkFxbwlCo2awbTiVLInqnXCt1nIKYPu4AnT2FnUOiqZOJ07Wy5M3WklRxHVnXVteHHMEkkaLZ+wGibRExPeO10z4hLMsGSoG7bM/OGz/ZVsCJes0XCRSK/P9J+cOK8LhyR4z4TFj9Kz0LZOtRwyCBQdTJhcEuadfXj19eTY85V0zIgKq4P6zsZEXU/0KtiUYkptlaupcMBZm4HDnHNIjpOwtUgJTNYpWdmAQ84BGnhmukmkbogUPCfOdUdqo6SZXg2sY9OEtxpl3GgSqlVuf/aCB195na11dmvkVGjmnG/PTMeFt773a1zPGT83yhs3HA4zT9//mDIr97/7TSQrL5qxXB+p68765BPW1rk7VT760XvcvH2FryeqgU6JfruTr5cwEG87qzGSrTVk4K/gOr3Y2ahhjr9WtLYIojHnrPBCE3hiebByNcMhhw9kXmYkFYSNdb88e5nslb01cnV2P5OSRNoWAuIcDxPrGmb/7baTDsI+mMF9AEaGYSpMCbxemOyGVBn3JJSiwaIxo94a+RCea2bDB64o6pHAWZuHZ+RgT221IR6p2I6RNTFnZ2+RVNgtxnrJnbYbsmS6GZt1aAOwN8FbSJguTbDhWIt6Lthbw7erA+McdtdhRcHLn4ckwbL4JV+P1sRXi8AmSIr9Cwsmn7tBBZkHMy4sHuOeMcgTEBknDCsjBsErvkbDX3dYwpFzsFiSCAVHLKT+U4ozrFtI2CQB5hQNYETGMH3dop/rHhLY02ocpsb6VLn33guQgj9+jLz/CfJGgQ9X+OEzOCY4Ndre+fhceXFXkaxsPZI3M8Ik8F//41dPMv8XvZI0OpnsYXouYz+QFIl7Jh7JyBqhSjoALCQYeEiQBvAIOLmwSDuOpvBmvCR5B6AZ0jsGKBplc7yO9mAshezQSJpIIqQiiHVUhJt7heMyUVtjvzO2U6PdwaenleurCX29UNuZVjfef9opmlg7LEsKtqsPNtgkSFHaiz5k4sFY3a1hFu+Fj/v3UnM7vEzn1CQkzcGGlRjeiDuaFLOGNBnSbqXh9NopS3hliWj4Gf4515cWzDqfdsxDVy8lc/QAForBi+e3pHzg6ioiubUIfjL0obLdrSN2t5NUme/P1CdnPClZJjR1XBO79WjW6FAcHy5/3SMpqlOj0DaLi+iEcXwRfHdMFG+dvAhzKnQ62RXzFGwDKiisRPxykTsaC3jmqsB2co73lDYSEbx1pAizdGzKJCKVsHujecPkgPRGTbGT1pYGBdDZLRoEM0ey03WC7vzt3/7pK8xZ+GLrAmh99t+xNglz83kJcFJx9rPGFEaDKp4vB5gF2u4WhJusRrEoFqYcRUgRx5KREszF2PfY5A7qPN/SAJoiEfNYwFtI/tSM3hNuQsnC5s6LNQ5El2BFqIZZZQOucsgxsgQIYF3wHKO6bVOmMga+Li8ZLJeo+6xCHYbctIiu9xR3SnN5KZl0DeNJawFcbSeYZzjtMA92mCFMSwwT9pdqVvncn/GOv5rl+p9eF/oxDv/bj1f+rW8sqCiJkWY5ZA9lhk5GZExkk+APjqTjKaShNcOLCXv7hDTwc+LrX8/87jsbx+vE9liYUkLM6M8Eve4xOXFHdGjeM7gnvAtmF/qysTcDEqvvpJ6ZvLN1YUoy4nZh7VBPcR+n5DH9SZm9V/rw6hLveA9xreaENUWTD7luHP7mQuuRCJSmmHiZR7xvo4+91nlx1piSqzNpohIHf3anXAqFzy2Bwd+PKfiryvpL3fi7H5/5rV912tNrZOrMZQq6ez4ibaLVFeFIv/eM6zyzeWKfOnXf6MyUIHrzgy2hWvjGcyW1FR4/BDvhxwX/0Rl92/Ebh7bBO52PXpx4/3SHV8ExZFyrbgnVFc8HmjaKZcwTrW4oSpUTk16PiOodJNF6Z0pCbwlJM5Ia0hIzCZ+FrRs2j2dnJBn23hE1vAVgIkmpOYBbnWoAwZaH30lM182Vgyb21NFmqGRsr+ScY88b7OVqDZGCkLAuFCu4V1rqITXvoEV4th0xX38OSH1V1sWq6WSwiLFPDR7tyAMlSUKnhNkeCbh9wiUCT4rCjtJqZSqFnDK2rcwlI1NiX4AWkhxrnTYXTrUxlxnLTt2cfEikzShZKMuMiNPorKOw9iKgiUOe2F05NZiPBVIKX1KBLkpaZq7KxN2+cigLL2rjMC1YbYPZb2y1hadQVrIYaTkiLbGvGxsBNBxKDI4e/fRnLA8f8GOBH8UAACAASURBVNWvvMXcKi+efsj9X/kqvTbq85V2JVzdewty4n5ynj295fmzp2RNnPfK+99/l+uHhZsHDznVM+pCfX4mLxlrxtZaHJYFZIQM6StqA5ExvEdDQw3/TxHlail4a7QK0nfkDrbbyrkaN195wM0SgSkVYcqJ2oOGKyl0f7IE0qA5k1OEqgDoFPXQYWvUm8TzZvRWEVVupghfkqokjQTCqEs6YoKXGDKJw95iHCUqcFS6B2gBAUrUGrJlTOhbi4bTJczYHXCjewyU6D1kaxbSspKgX5IMc/gdugdxTzQAqO7BoO8GDCaHE4PTFsofzBSVkD06A2VxQ0i4MJpHB3P8FWX+fZH17lPlzYehXmHIo1TiXJtmaJVI5w6SaYCCQaALuesgz1ymaBflZgn8M3z9iT3VJYKjxjchx4QYIdiltlfyJdV8sLU05sU0g+Mc33S3SCdflsKpOz+77bz1eAfukEXgBJx3/Ccn5Mrx1wryZOOdTyrPaqNbY99iUJ1qyNQkK5/cvnpn2V/0erHDzSIjOMewEjeF+2BoEQxKVyU5wSoaQNPLdZEiSoTYWYvAGRleUpHYE71d/Nvx+vHiuDuTKE16vJaHRDENypZa4v5riXv3Z1JKnG53Hr+/j42j0UtinpS72nj8Mxt+XjPr8403vrbgqQOF82kHnGXOrFuYyVMc2XV4lBpTzrTWQ7osY4joAd6KXPzmDL3EwFrgLDkL3mJAqAOcy0PFktXJOYdvYk4gGx/dXbzFv/j60u5ybkSDrSEpMY3kPtKOn+H6YcZSoiCkJux75+mzSkeZi4ApWSvuMN9b2PdhWp3jnVJLFGlM2hHT0YBV1HNsLgRTgR4Ne5M4hOreMNHQzueMWg5TYwrWjaPu4JVmne6V3IUlO1M+MksiAasp01WhGSRmvBdObaJKJOcoLWh+raPm7FW5O1csK+I5JJC94b5jNSiIoo1UwlUleec//C9++jlJ3V+t/7f13/3uStGLBjieo3QIX4JP74aWfjyA5KCZ1/iriPUt0bzvVfj4WaK68J1/xXl4T7h/dFYPg9vbJhySs9bQV0uGvQaQdjMJ3/pmp5oQaYNhAnkBQLiksJhGnLAEo9ht0N9lpFdISECyRkHUYDjVhHdXCbVWeDWMCHYrFr5YDN22x7MnSUkepoUHjXvfd0WLID0mT8sh9NHTHOycwHAuJ/6fvvde5fvxX/Sb/a2//z4HVTpjoxWLtFJNdAuZnVjQbk/noORe/Wbm2ce3+KMz/qQj5yWicLKgVwfuXcPdyfCqMeVzw7VRd2c3D+83xuHpwXbobiid3cOocnPBu7NXOG+d27s6zHM90ufcKEunzJn1VtkqvHgKpxeNKSnbHgyHdRhP7AZJE1qGlHcEB5BS+LQNc4nadfjJDc8iLn4hymHxSOTs8by4O81C6rqPzGuRz0knxtcYl3CHV3N1gSdrZc4JeftEuneHX53xg1DnE369kh4Y9lpjSplbaezaOG8raZnZvbN6ZxenifOHt8/44EXl9DXF3rvF+wF++hi9mWCryO2OnI3fv3vM758fse4bqcIlB4rNySVR0gEq+Dnke24FpGNWyfIAL4KjdA12gQDZZrIq6g3rHmmCqYFNJJTkE4VrShoS1RQDm2nWALVESB1S6TAYDKkFFFDTFrHQ0oMVUZUuBbpHgh6VJIJYorniHBEaSEe14tNOy/tIooVrN1yNv/9pA/yVtJ3xHjJhgO1pI9+f8Lbx4hzG7Fvv7Cmxu2Kpcn56RzOhomHgTsEs5IDXh4n7xXlQJh7kDKc9uNAaSZPajFIKV1PhLem8hvPGVeH+YWbKiVQ3DhLx9CUpx2XCU+ZZa2yaqeeGk2jbhg1wtJHwVtnOK7U59bxzfOvIdmscDoWsyu22BTBeO6XEPbzfbRwOhVMNECBPB1wy1RO6HPn6b30H6x2dCo5Qm7G3xt3jR+hcSMuBrRvr843UG/PwW3r0459xeHjNg7e/glvnkGfkfKZcHahurL1HHVlrTH66kLNR5lfTAH65PrBcKdevzZSlMN8sXN2/Ynp4n3JzxYOv3uO1X7nhzbeveP31wuGQqI+fcXvbuDtv9NpfNj3uDZdEX2vcV+YvGS5VFAW2c6etxvzGwl2Lgdw0TL5P1Tl3Gcl0w+umO9OU0Sni4lPOmAvzGArW24aahxfVAJHcnSzxARHE0i0SfPfW0UlpKczFm0cS2m6OiMXguY70w+GdVM/Dm2dIwcID6zIUYxxs4R98+TxwdaObRNKhKO4aYN3Yp1yCEegiuPdfwNX/8iwBnnx64tyE3lMY9WukseYUPrE5B/HcGD5Yg2mVNGSp0wTzJPQeLxh+V58RwmUoOXQMvoUwhe8DuFCXUat0DlmDCaYXNrrS08XqJOhZrpCKkKfwV8pzZi+hg3Tb8XOFT1f8j5/CkxM8OiOnnbvbznt3NcBPDc+i1BJFFRHlB58U/spD+f97vdhDfSAeYRV2cTbXNLxcgwIZ/nZhhH4Z4ELUqibhtw1DVaDBoEw60t0FJIdXlg72per4PEcQhXkQGrIGCF/CFJt5Tjx4MzEfZx59vPLOH77ggz8+0buhi2BLYpfwVN268ezZTk9Kn5SntzuinWrxs7tKDAwkPKNtpCpqEnoPRFcYCawWVjrE8RXJnAQwnBE0B9u9lFAEqIe1CjJ84zQAZB39J2JUFdbW2NbEP3rv9Oe+Zl9aZta+RTEUNL145/Zeefq8Iua4pGCGSGK73Xj9q/c5b4193akeUrGthdO/yYY0g5ai8ZJKG42UiYIXXE7IBin1uJgKnho9x1TbNWQTxQU3w1MU8aZxmE3eaEkCQUiRJNebMZWKeGZtHZHKeob7V4m1O0dxjI1aBV2cugmawyPrKjmnXhBpzKVQU6f3jHkPaZoWeu8hyZBMl4RKyOX+k7/9PrXvv+hL+KVbF0bWZywO5+lpYylzAD+bUGZHekgCrw68TCBZd3BVpqnH9KULOtJOKEETffzcuX8j/NG74V1QqwYdXBTHOTmUKUwgexekx07w7ATPfzAPeapwGd4KGjI1QsOv/ZK84hR1vAe904cddshfoWXwGr8LNiZLLlSC5k6HOTlrczQT1M8ck0RXyJOzMRD3HboJbYXDTXgwPb8VlgR5ATnFgawiQTX9OWGh/9xnryp7Bn6e+Qd8Ztw6KaU79WRsTUm5k2YJkLJ1+qGQulHvKvubB/yDlQffnvjkR7e8+e8VpGachGiCPPGgL3y6GaSNagUIuSrm1G7kbHjL4VeEsFdAoVka/nuJ1hsv1sR15AnTSscTqCiLhH/Nvgpo4/iaU89KPjamg7A3Qb2xbh7FeR+TRxqffiQsx8TVPQczGj08PFzJ0gBFNRId85AVVh1MNXW2JkwlgFGTkMSuplTrL+8j889o2OFPedEZvprLHbw7/8tPE//ur0GdlKkLXTfylmmyDSPixkZ4sCxZcTtAquABOOxeedJu8ZPz01PjJ+9dc3xovD3dcXh04P5pp9495dFU+LTd8ifPb7ljZ9eK5MQ9TWzNMCmk/4e9d/u1bcvOu36t9d7HGHOuy977XOructmFbfAlBtsxwkIJL1Z4SLD4AxAWD3nghX/AQfDAKyJECRIPIIMQCAksRY6BxGBMECRYtpLyNb7U7dQ5da77si5zzjF6763x0PpaexeuEMV2qo53VS+dc3ads7T2XmOMOXrrrX3f77OOSEazB/PNaiABpAT8UzorSspOORXsuFGScNqdECtIX7D8DKkLXWFKDdrESqP2jkih4HQValf65qRSwA2dAy7eViAbdQor4lxnVj+QbIrqqhs6rUCi2xRAclU2GqaOukVwiq3UdkaSAzaa+TlBV2cnF/z9PzjAc0X9S7W2LTaUtB045YX9biGXE3665eZNZ9rPbP2AzQsX3/EQKYX2zhP8sjBpxjPkaY4JtQiUTJ4LOzOkX3NzmimTclzhweUZWEc72NkOtkZJme3JkfnRGZdnC2LOuw7nWVlrJA7KVPAKD1+54Nk7Vzz62AXWatCVe+P2dKKWia0bJ4MpTUypIafMPE+YGFurpP0uDiFTgZuVY5uYLs443a7sdhPb8chXfvX3+NSPfi/73YxI5t0vfZXdxZ6yO+Pm3ffIr1+yf/g6InCeE9d9o3WjLIU3f/89lr1z+clHHA4HqsfxJM0LzYMhkjRA57LMWO1kTSS9awi+fMs86nazaAy4h4fLx5AuqaC9kEToZc/567BPncdvP+Xp+w7nZ+wmo96cUAv3gie4uTWWi4T0+MZZneOTytlFNKYeX23j8JVpoxlWu2PVkBqpbkYovMwYsqsG3UgGx5sGWUmTsrWww+9y1GJbbdG86hIIBonBUBeoKFadtRvSxx6osEwZxTmebIS3ROMKD6u+eAyitn7H6QLzUA+NbMIBsgdiXsUdPxIJuDIy8BQQjB1G8qEI73zpzW/WI/ChWV/8gyv+9e8/p53gcOOwGRNGVmEa1q4KpDlqaiUOx6KQ2mhkipMn8BbXWsu43sK99VM0mlimozaxyJ0LUYazOMx5JDw7eJLgm7mTJFPUWSQaodtQ5z3cj8ZJUt776pHXN4HHHU4NeTjjDzL1auPzXzrw1qlx2xXJRiFQDYe14VPBUP7z//Oa5xX5t9c/br11tfLJs0JTI/toPmnUyyI+mp7DFfMCBkPkOTsXGBwsvU84FXO6hitGRv3q+P2g1u6GvSlEBWkOlfpdL6RkQSTRa+e9r6wkVtIEZxcTfpHoVmkt3nWIsLrBKRpr569mJCUOX6h4S6zHRtlmaguurYiQRhMuZaGtRgq+Q9Tsc8KS4SYhtCGSO4WwVRthm3eDMti7q4Gqhd0whchCGAzzCmQh5VB5/U+f3/5YbdYPbTNLuoX9KoGfjNPqZG+cTZkuys31gYfnF4gET6uaY61FDPk4KIopWjxYDzvj5vGR3atTpCIKtC6oQJOIDWfKeNtIOuHWUZ2Zpka3hKijOqOeadZGEkajmwZM0gNa6t5wy6haTJS649qw6tTa2V0snNzJ5tgUG72lxqQlgGtdyLmzdnBaSJlpZFGaNyLIOLGtHbyR2aFJcUlsQ6b81cff9kT/49bz5sqd9S2OxkWcvEBrEr53CQh2wN3h2Qr7BaZhZ8l3H3p1fujTxm9+KWwPW3fWGuepZpE8drYL1sK2BhR5KfDJ7zDe+P1CShbTcYlir7X4fTcLhdVdzHLzsDKqS0Rdj40TE1xCmpoQeo+XQ3cZfAburVhIyKXZQtKc8l2Ky5hIAdWiEZcEMEUx+irR2JPYYBOwzI6dEhjRbFZ4/+brNa/ufuUvtTLr6y13xzbjcKMss7DMTutCa428JOjQ18bRJnYJbp4qi2RcZia7gS0BHbEeE5EPYJVOEoNcsM6IlVck9eAtHGPaL4mAkqZMa0AyZkvcjnSRYs6hJ3bZqQ1mtbA9RBhrsP9U8WakuUWKiTXomRoG/4gKtyjAkxolK8fbzv4ifv6MUsUH5JJQlLZ4GmoPVgQqMR2qwRbp4swoG8bsgiB8cLTRvAoV29c0tJ5f7W/8Df4GLCck3L/85Y2f/PgMfcGl04swTStuE6tD0TqgmkJHcEl4O5F1IWumWmVrK9c3M/NsrPY+1zfCE93xcHvK8oUdTz9u7I4Lb+eV03wLdUKa4J45XSTcT5CUSkO9031j0QfYtnHSE5OWYPL1Amxs7pznTJ0K9bgy1UJfjO4N1fOYBLpFuItvlKlw2irFY0jVMbIz2IKCawfrTNsO0g13sRcphdKhmCK9IpIhFaydmPqOo2yQdMREB3cSBZOOS6ZzRLRgrVNSQbXh3fjctVCpL28LPmfmtrHKzMWcSbZBypTLS5YHTq1bNKLbkekrYB89Zz4P9bgT/Lbt6JTkzPsZdWMmwXZg2T9i8xrwcxJlMLYqxKG9RMplfnSBPb2hvH6GrZ2PJThJincFoBR6bhzNKNnZTEkYbqGSl3kiC6FMkcEmKpn1yRWXn3iAlExyv1cTb73jZWJeEre3J9LujGrOV3/zSzAvLPsHVJnw1qg315x97LtpbWP7wpd5/c98L7UU1sMt2sIqJnQev/GU6/ee8sr3fJS6reEgODX0fE+zShqxeq31EVlnobQ0x1vwRF7G5b0FCNgd1GhmzFPC2wqaI+1QhJTguBkX+0xaMsvFDi8rN09veObw6NVCSmlYs5TeNg7PDtCDR+qauHg0o9JpCFPKuHas20i1TMHHWhsyCUhwjBTBuw1roGNVqKdK2kVd0yKCjrkIWeD62IZFLd483UOZvjZnysKcjZvmqCne++D6C+sayT/TmMDYXQckxjP3SXcBn3+ubbcBH++DCAExbHTzoXIIFs8dpLzLUPh5BCKYCcduuH1rD7YdkNZRV0py8i5jWmmb4lukSWePcJJxy2JniceWHsHQlOHe0AzaoqlFGZarYUNMQ5llEmexpDEQ72ZMEsqVjsQZAqLZVQUmRSW4qgmwHLB/T8qpG6KFkwtv3sLhnWseJrj4rgV52vHLxPu38M5x4zAVTmu8X2qGNlTRbvCl2zGZ//b6J66rw0YTJ1vCxQKzEBAOWpPBho0UcL1TZI2GlAw1lqSR7vfCoNuTkCzdw9UjbM7xlMK2J6OeFkYjzEOkkjOtGsfbHqphhbKEK6vMYVNEGmahpqrNSClRcKwL1juyZMqScA3rtuYJzZGCaNZoa8ftLrkxzsjNAiqvSamnFnvVeMaLpuCKdh8KMh2DLaW3+NyIjTNECpUiyBiqj6a8CLIpluC6/vGGOh/aXdSJJJNiQl3h/GLm4pWF3Ssz82WlHiWmuBgjhTm0ntJHRz1TUgdrJDp5LqRZ75tPIJSUoDdqrcw5M2clpYS4kSSNQ2FG8kwvS3is1dEpYLcdoYvGwSytFG+4KMk7SiPrnlobN9cndktnOV9ADLF4yd1W5+SxYW49PixihprhllDr9MGYqR5R91md9RQyvq7nnKrTTEnDmvYz/+3b38zb9qFdElf3/mAiLxyHmzs3R2XrwT6oLZpazZ1tyLx3M5RknM1KQeliqBitCZ//qtIkPuTnS8hCq8VhX1U4bPDxR6GcEYEf/3MH6iaoOp/+roqZ0nzYp0Zccx4fftHgLEyDjVV7ePtlvEgrkTAod9JncSZAsqMGC86s8hw+6uAJ2jFRD0I9hLKlrcrxNpSF6wlsVXTppOzIAq4h7V9PoVxIk2AnmBcjoVSDn/nFa+B5o/Br1Uovsy4r1l2Z4MPvDvDX/o8rlouAiDpCzhktOaC/QXhlva68f2W8O53IlyvtmfHkBqSu+BPw9xP+WNGzANqmSaktinVGY0hM2TbD1mj2TLuNTvD+Qiaa0BRA5zbiTqvAjSnalV0C8U5v/oJUGjQLieAAZpSSoBSPRoKnkbgSiq39pXN+GZWce6TauTnejI5QTZ9HisdYCrOGdYlJohp2Gw1ikYhRLO4ct/b8Go9G1t3DFB+Xl/vJUndOW+N2d4EuR+qykaXSx77AaCa7JVJxup1AbvC00GTDcZZpFxy2rfNuP3AyeFZPfNBveLc4b9WNq554b33G8RbavCedFcpuYdpnrq861jKiLdLCRHBiEugpgc7gKfat3EjJWExwgTnvKJc77ExJNaEyIX2DFLoDzYZMQuuVlDuWQFLYaHDQ7OQS0PtEYZMjmgTVCE3ZLCEdcitoUXR1XFck71i5HY3ZBltMALOm+ySw1GFCkFQpU0LSCdFGnp2/9YUTMg6fL+Mj9h/8V3+T062z7CemnFEymuSeC6n7c3b7PfnyIYf1hDCFbQlla0YXRYuyGcMGEQ3UjcLNuzdRUJuEXax5DIrWjakkVBNNZiSl+MuEi5yDoUVYsXZT5mEBzYWcM8ujC27feUavRq8ORWiaEEnMOSwgy/meeZkwCSjzVGbOd3vm3YLmEu/CoUilTCwC25Mr5rMLXv3Mx1geXkbKasnUrZPUuXnjq1FfTTPt6gl922AqdIQv/tbbXH/1Pb7rhz/Jbj8huaBkpod79rMyZcXNgCjykThkqEWqWU4WCu2XcLVuaLbRXCGem62yNWPO0VgWTZx6IvfGujrHQ8Cj9g/PePSJPckqz64NsWg6NDN0nigPduSHmctXF/bnwvG6RaNTnNPaOJ48BtxA24wknbILO6JaNCL6yWjXDV8jaZLknD8oY0/xkaQOrTnXh2BjNcLeGHVaHMaCGz+U7g5uLSxkKuyKoimxS6HW2aqR1KHZOAArzTwAzH73PccgzPWe1XXXhjCLwykpmnJIYAXuEzHdQUJxpsl59saXv92/gOE6mJhSAKjzVJgX5exC2C9DXVKjwZThXiGnEqxkiEa8aggsYlgoUMMNUYi+ViJuS9TZGvYrgyIybIlRGYuA57CT+fjNhPAqdo2UuJKUWYRuw87WjPferbyzOU8eFp6913minS88W/n82rkZiAbN0TCowymhRWkGf/1/u/kWqML/ZNahBu/PJWpPlYyj0J/XAk40stxHUvKobW3gL9zGs3D39XcmAg2xQFIZz1M0wMLu+lzFpQolR7L37U1jOxmaoeyVaY7Pf8pGrY26dbYqbBvUUS5bM3oTaqt4UpaHM1qI/adkbm86rSW2tdJaHW6O+CxsNTAgSYZyYqS73geOpXAEYZGimpPSBwqi9uCbuoWgR7PSJMIqfCBDGBZdb4Zr53/5/An+mM/mh7aZBfDBptwcYHcxh5VG40af7xeKrRxPldaMlhJXtyfWTag2x00WY/NEJ15GWZzlcuF4XQmneadXp9aZi92MqGM1RVRkycx5h+kCZIrO7NJCKgs6BWy9S4koTonGlDWhp4yJUjfDTsp2c0suZ8hSqB2ExrF7pBv22FizJFJRJhSTzpQTkCMtIyfEN1TGFM/7UA1Vpr2ynDdubxqusVH+6hudL779R4u1fJnXnULobuLl93+PX711E3B1q8EmWCR68NYTmSE/ztEsrBugxi4L3hXr8OxGolhx59lBqS48PFMmdc4KWIc33kuoCGd74bc+N/PmWwH0/NIXJnQ0P5SQdwpD6qyxK3YLGWjwHiKswDwmOQtOtqEYG/99HXZDKmQJttK6jk3aAjZals60OGlvTHsn75x5Z6g6uwnSHNauluLPUptQXTgc4nvYHcc2B4ciAc+eE+DvrzovXOmXfSN9UXl2N535xc+/zZwJ9VwXNu8xam1O78G56BX6Zrz7gfPBTaYdjrSTwK3Dsxosv9lxv+F2E45bsKU6Qhveg201aAXdRwxSt+At7C83egVPnRbRTeTstOTR7PKOiPF07dQa8eJOQkZztYtzPAjWCnbM94BaSxbBGxBqINPgeqQGHuBSG6pZVUdzY8UCSitCQjh5MAnOSqghEaGcCacuCD3stDnx+28fozkoL15r7tWGw2/4DbnH34zVBCac/+JX3meTIdmenMPakWygxmorQkZaZtJgT00dzjwjBSCjTyZsmRA1unW6FLorhywcLo9sN7esJeO+onmCVJCp0NW4eCjkfIPfLJRckFTIOkc6LxZqKm8BtW0TahklwWo0DYmoIJT9Rl5XRArmDUsGpSAaMnSTiY3OOjhva3FghgaJimlnPykiEy4nkmTUQ/lppSJe6dmwHPEuhYkkgpqwUUlSERMymdILvdRQNpIRaSRycL0M3j3V+9Sql9FmeNwaeTcxpYxocH2sO9I7XUuA2HMmu0E2Tk9WLAWLI08TU8m044bmjDSnaCJ5JnlCTidK7/RtiwAVTdhxNAdrqAWSGtac6XzHIsJJ4WiwIXiZQRJb9zhA9OCSzJeJk+vgg3Z6q9St4XlivyuIOMdulI+dc9wqx/duqMdKn5RDd5onzh4+wlUpoqzVef8P3mJ6cM6jT38Ht1fPsNOB6zff4eH3fhZsoj1+xv4n/mXqfMnBhcPxxO3hwO/9/d9mtzQ++xM/yH6/sCwz+5KYzzKlTKwuVE/sSgZT9kk4m3cBAE6JzeF0dNr6cipn4mCmtN5xhOPtOhrUFgesHm6KZobPGTKcbleWOYXyzoTLT1zihyNtqANySdGEJp4pHDRllovEdnXi2QeVrQ/LXR+hPNmCLTX+8kNnVmOZhHKeKWWEO7mw9VCnyziB9mrUtSGEEkuTMM15fL9QSYXypWM9arU8mFkCnNaO1bDzLppIg+GlORodEFwtHcPIsCDe9Z9isOnI4GkBXe+DG/wuunAchH00TB2HJFyfDPfGVr/t1AD4/WOhiZBTqAFLSkgSpllY9sAQTqTRK5yGY8Hdw1aoL5QgAlKcJceZwEQicGcA3wUQC8WepAhQyhohA6bDohavtqj5DYwcKeoyuEMSDhCxqJfefmdjS+CvFd6uztvHxpcOjXc249SVriENy4vQmmAYTRJelDWFY+lbzR3xR12OR1hXF3obw2mPe+ROcOjGpYyaOZo/d0NaQUZDOr7mTp0VPXBDU4gCsipJMmkk/PlgrKXhXW3H0dhcYL4spGmkl+v4ehJoonXDGhFa5wnrSqvKujWYQvHazEklU+mYCqd1Zd1quLxaHmmoSm0NxO9dF3dqMy3KVmsMoSVUogYjETbY0d4tgqnEmEu6b/bfKU8lKSrDNiuAKsem3PRId//jrA+tzRDgf/jFd/l3/8IjHKMPsHV2oZWFst+4emxw3rl8bQaPxpZ6dBu7Q3KlDlXKqXamktidJ558sJF2wjQV5sXYxnUsM2w9QPFba2Tp+DQFmZ8eqVxkchqNg+7RjMpAV/oG59NG30UxHNKGE5MkmoQ3fi9Gy2EZ3KVCtU5SCUVZ76SsVGJaMxlUi8QyvzNmV0jnBRFjd3ZGo1FQ/vrf/oBf/o3rb+r9+rCu5y/wu4bKi2Y4+LnPPeMv/9lLXJ2cY2M61fiKtSkjXCQ+fO5oS0yzs/XYvDZ30lHZFeOiCh/5uPEbX1Fw5apaFEltWEo354NT4pVL44PHCe8KxAHV1O7b9yaCukITcnKmEpPG5Mo8O2n8DBqMZHoTpgyoIANOPCCQBgAAIABJREFUKhKKv9OqiGtYvGZjmuKKtB7F2Z3axRB2CzRxpERBJ+b05NCE6xMcbpVPvGroSZGzANqqKr/9Tkjpv7Zt+OI1Z5C9XvY1rsA4/Rrw3/zKB/wbf+ZVJHXUAp5MMsjBa/AU92F9cssTLzx+euJ8X8KyrI4cHZuFD96oPDsYZVL6Ogpdi800A6SKb0JzZTahb8Z2nJnSytMtCn83mHMwrI4YzULKHpYvx6xRRfEspBb8o/nMWLcMOVJdtTslK/04oNwFqjdqVVLRCMn0hlkGGlimdmdfhOMaFqHNYzNcLdKuFKG6BRwzWSgkUSYz/u831ri0d4+PyuAmjis+htQv7fJQ0X35aUX7hJpjt5l86WSzUDggrHIia8FUcd9C4j0byQO836yTdjfMfcKysCyCcAapsYrgb1bOP5PxY0PqLuTgouRSoB+w5XU8H2gnHcV94lQ99ORdQv0URzJyajiKTBm8xjCgC6oT9bxRTEjrArPR+obRSVoI7QOR8IkgfcNbDHY4CLZ0Wmr0nrDsaOtINyQ74gVrSkoNl4nVOjlN4ILLEXyHkukp3pFmkF1DYTS8GGIG2vjKdsFiz1iJA8fLun7zza/yo9/zSVwLXQI424jE21wESQmfFtLT9zg9uSG9csZSSqR8lUKZuU86ujpVzOGsCK998hHvvnnN8mjBXznjdu3sLy9pdLbWKKrMk8LaoCmPh4q4pmko4yG50MlgnZQgzzvQQluPvPXlW+aPnPGRVxf25+dkb5zWhj27pZvx9PpAyondMgXU5KZSzHHrnNoJKORyxrPP/TavfuaTnH/6E5g7h8/9HvLpVzh7/VM8+c0/oGVj+YEf5Pq0UddnrKvx3q9/hdZXvvNf+gyyzNzc3rIdVuR8wZYF3DhtztZapCm6shQ49lBleSS24Enxs4nN/zikkA/varXF3tIdT8IsjWaZVDuT6OA7JfCG4GCdeVe4ut04P08DEpU4/+QDPvjSU84+cs5uFtZm7ApYF1oPC7xoIj9YkLXjGKfu2M2KZeGwhlJiOZ9whL7osPZFs+B6GzWKCH0LdtbhBTTDnDNbs2DldmVd+z0fqdv4Mk1kuYN+C97ac9VWh7U6tbdIChuqhGoMMPTgRA5IeChB47No9nzb6xbWJRkWxTu4dChChnZrMCSbOddvfIGtrt/4G/8hXb/4S2/xQ3/xVdZWERG6gvaAXk+zkRSOx8HDItRX3blvSChxz/VOGKcBwc5J8OokhFSiAzaNoTTNkRJn0CSAJ/JQ7aiGO8MdKBrOjQrLDDUpZyrU4Vl87ysnPv6phflspp0a622lPUhMOLfV2fA4M4y2iYaKg+TGCvzM3zx+W6H3T7EcWGWi2IqnwdazjiZDLSPZ75WSjqDmkbZKwnokE4o+l2RpCluz5HhesFFX3J/VQskUfQWBEvZU2Qm96Qg+sgjB6JFsaEDrEaAkolit4Im6brRmlJKQCa4PlY98YuJ0bGw14+qc1hV3OB2M3qFLDxaW1bAqNkaCp2PdEFe6G/M80VslJUUtsDnxR4vn2zwUtzFstkgiH9bFmLuPxGrVSHrF+YUv/tGh7y+uD7Uy68n7V+SSyZpi2kHiFHseaZdwDPMpfJqeaBusfcjcvLN1Y9satcbBp3lDS6JMjq+Z7ltMPGonUTBRJim4ZlKeSKUEDDxHuyHnSMIYbnuKOpIK6kbOkbLUTWndgt2l0L3RHSbtKE6TNiximc3bkBg7kFEpnEwQ62jKNA1oqKB4dbaDkM5kxLkmUoJln/ml31n55d+8/Wbfrj8V6242cdfgGvM19lnJGgqR0za60RryeItbHgk6Kshs3PSYzEj0AWgCq8ATc37nSzHCURlFig3Ojzg3q5AmJU8jblnj37tGoyrJ4CB4HLg6kVJYB+y9YAgWU/PR9BIibl4ZiSgEQLKJx6RoMWRnsESkuRm4jZQ5CQ4XDiVHkuI0xct8VphVSSbBX7gOOPhpS3QFT+Edx+A/+rsHXtwtn19dub/u34rLgf/uN94jlYaqY0IwVUzZZUFUyJHJjZ6E67OZo85s31E4XStSQ8ouvfG5Lwu7SVnXuzkQlFm4/JhjOZ7ZaZfRAu2ofOQ7KpINzYmiHbdOytF8bBSmnJHkIJ0zFTRFOpMQ0/NmoQDbXDE3zI3mna1n1upokeBOGOCFNDnVhppCI/mnNb1/xvqICW9YsFSGN9a8IRrKDtewibOlgOSK8Mazr1Wbij9vR3+rrDth2u36Cs07er4xm4L3MUkuMenXipDiucoF85XeIzHLz0pwHFqm51AEdBpbPaCSEVW2k5LouJ8oM5ArzSuSpgCFZPBpAwnFYJlXlt3MPCtpr+S5k2dHNaPJWNsRCHZNG0DcCahywpeOr6AeKi/rDcxZmIIzBGTdIaVFouJFp2SJWPrBLXQB0cJqSvOOy4xLodfOTgXLa6S3Upg0bAPWO6kbU06o78FhqonSC6kllhvhZ//hSpU48D5/i71867/8X/8ep1OnVoOpkBfFU6bMGpHhzehrhfMLJm5pDfq64reNdDyha2Vq8ZlNquRcWF1YvVDmzFIy81SYtJDiVUZJE5e7hUKC3SXXqlRRTDNnqqyibA2aNcyVOWdUNVJNRVn250yvTNSnlZoSH9ycuPbE20+ueOvJgafHlVdffYUf+cwn+cFPfJTvvXjE9z/c84Ovv8JnHyy8mhKTZsrpgElh+fjrLMsl+Y23+dif/1eYXv8UT77yLqd2pL32gKaxex3fe8Lbv/Zb7F8RPvNj38faYL25As1Ml2cBzzVlOzZQ2O8Xpt2MTCWwAmnCesXmxNaDA7d1Y/WX8+naRt0dqVhOHsD1lKKRpd5JGCKZrEIpcZ+hUduwfh1XMOP1T+25eeeGUwfvnb7Z/cF9q51tjWAoE6g9h0XwYodPE8vDheViwUzHaE3ZTIJBc+wBPlbBbRzMCLeFEqzHU+331qFWO23ryLAN6oCHi0o0wh2SGTlHzdd6hPdEvzLGec2ixkOE1qK2w+/OAYOzM5RYLuNPLFEPOv5Cg+VF8qvfh6GICu9/6U3Wbzeyvmb11VhzYip5qPwE1RSNeZSpwH6S+zL2rlfYfNgL74RwoxFhPthG4ugUCh71wdxlPPdJhnpQqR68LRluCcwpkoYbI5pquzm4ue0U2626cPV04+KskOeJ7dnK1bPKNoeq9NA6tXmw35oFX82cJpF6b5qCIfmSNsz/mS2Hx4eRQ95HxJYKborrHYrD7lV7LlFPuUcioY0CNacUzjDVQHboaGBL6Ig0hfUlR08bVaUsQp4TfqcuRegeTfIQMwl9OHYQCW6VdcyFujV6k0h2zonWMtaiwbqejOv3T2hJEQxlHinB3umtYxgqmW53POWwTSbJiAQKwAjGYzAqwT3EGnbX3R8cMJWA+hgd7th+OoIWzMY1iCT0P6ku64damdW7cSSx0KIzmmzccKhkahOmJdFdMd+QREzfaKyjM5nbjEoDURpwWjfOz/dc36wUCtY7pUxUegAiXTBNmFdyzpA2astkMTZr7JJi6qRumM5E3zuApdHiMiYtMQWXBrZHpLO1eAuKpzFFMWpPCFGEW+8oE02OJGa69+G5zaxb8J52D6Pg6yJ0zxSvTNPCf/Z33ng5fRD/DNeLGiKAn//8yl/65ya6OKncQTqHPHTYWKpHc8qBrcJUwkoVbVbHN+GE8JGHxvWNcIuz02gMRGwrZHHaUfnqoYymUuyU7tBzxEmnFBLhjjCVSL7LWDAUxBATCiPx0AIQGNpBH5HQfq9U2QjgS5eY7E0Sm3NYjSQQIskpLnFQxUkoaUwIs3pYaKtjq2MqLOakM6dLTJwyacD94E6J9fWaVy9nyf7/XV/7c4fUWHhy67yyKEkEVwN1XEfkbXwhZTdzbZ3znfN+rzy8hn4e9/7x1cb11jmsUUipC2hsCsebgnvHs3E6hkRddvD0/R1JOmvvJJQscZ+SOEWclp29xDtwc6eI4qJkGBtop6iyDu6WuqBk3n0Grz/SkLGrUBBydmLEbNhIV3Jigq0lmvXNjEmFzQSkBUjX492GM1QbghejqXIxpMi92R+6pqNuZ4gl/9B1f9nW3c/7H//KO/yVn5gHmDNYDlVXvE+kbLTe6HKgm/LwPNFRqq9g4MtC0gSqiHZ6g1xWhBmXFXvtxOk949GDhcNuR+krPc3RyJQKm5JlR6fQtiN5b6Az1o/IlPG2YF5pVJakiBemacKb4z2BGtt4j6lf0GjYbkNvFTlLzCxssnH0GuBxnKyGWMLbRDLFfUhmx4AnqzHhqDhVOuYbyEYumZPN5K3TUw1eUU547mQ1tGZkM8QKWhoVZ9LOdAFfWR9w3B7He/Jb4KVVdnu6dnyNGkq0IF041M5ZiaKa3UxNt2xXlbNzAGPK51hrHE3YLxP72khEoMPjp7dMl2ccHbwGg2NSDwhzzqyWyVLQ26fsy8Q+KWvrPDXnWhNlykhvWGtMy8RmcLYs3B43Os7+0SU5X3G4PrKtlXceh/X+R/+FT/DPf/w7Wf7sj4NneHYF730ZUNiOcNq4ee9dfvfxka/+xpd59OlXePWjn+L6136N8oM/wM3Tx6y//nvowz3zpz/OdnPE3n6LExNv/frv88kf+hi6XHBaT8h+iqQrc6rB2pXWKnlXWKtRNyeZ044N32fWZngpoeLIiniDnO98Gi/fcqg14L+SlG1zyizR2D51ypwD2G6N6katG/tJmadEaz3A/qYkdTQVzi+VD7565CMfm3CN1EBHgvPmgEFxZztt+BxDNjW5P+B3D14t5ujW6TqsLoyUZ+LwdhclFgm7io+mmRv0zdElgTjdhJLCIiY+lDEjZdo9kBHWI0nR74DvAorRPOo0S4BLMGVsxN3Dc1shUdv5HVMVGXuBA2koNsbuNwabLrAen33Db/eHfrnw5duJ78pb2J1aopewayqRZJlGiEouEfQUClFIieBaOfepcyLC5E5XqCPp8FCdvMThXSVcFdIjBTxCdCClOAdmfW4t7aMRapJ4sAhXp0beEh/cBNT7/LWJZ09OqIPthZwjhAOP5EI/GQ1DOtAdzYI3xbLxs3+v/RMuzLfX11tffvspH/3sw/vPd7c472BOLkMU4HEGlHGGM3c0JVSNlDQGzmXUqhJNnnBtGCkSvEiWcOmh3hpK1tYaRaNmvpdfWJxFnbv8esGsB7C9KzhsayMXRZOSXPDUowk3JsDPHt9y+ZEz1rWSzwo31yu7s4zmjNc2EAAxxLpzPNhwhqnG762aqGujTHHyjWiXRK/BChRxWm/k+9AOp1VD0ngHRuGKdOcXvnD7J1a5f6ibWQB/4+ff4t//Nz8GNNQapERris6dnJ3HTzfObWGaIj3rsDWmaUeeOlTFc6f1TrdGXY25wNNDQwXqkxP6IJRdOYPsCiItJIA6RRoLhR2GkCjmiAfdX0ph8sbaAsBr3ikeCrLajCk7yI6UQ621+iAHtRwfjN4p2Zlzj00NGQ/ojqob6gmacFuNecp0hv2GhHls4Lc289P/yRe+2bfoT8WK1tWL6y55L/7L771z4PTdhSJDtqnx4ijuSI5pWBkSY3MZEvHxuUweyYXZmB0+uA4gem4ORUiT3CdXrE0oGtB0Fx+qluhqu8ULpyUjmRLI//iDd7n7CZS2OtMS3XaXwdJSY22CaCQZitrw+8f3if8p3Z0ymluaQjXGSE4EKMOVIQ6bDx/0Kjx5Cojz6sMA0xeNxpw5/Ds//+z+6o6WxgtXPP75h6//y7ksnh6A+5hed+cv//ef5+d++ruRFH52MFoLmzJTKOuecWLZctgenmR+9/WVB7+rPL3srKfK2gPuqUZYSUXYWiJnhg05hZw9Jcw7/dD41A84X/6txLEGo6Z7wNtLivFiK2E/myVz8Socr4Vl6pxMqQqnUbRPJLbqqHRee6ChOES4unX6pEwLHNfE2b6hGkX21oJzc+xEAtk46DZgRmgqnKozJaGLsViO5oUnShZ6E7bRsLtb99ZC+Bq45svcdXjesINDc37pC/CT38UYFzu5J066gi8UbVFIJ+XUK+IZS46fGmnJQ8GwkXoeDXBABcuPWBbBbm541zJnH1xxml9ld76wpqecamdJE006pcw4ne2wUeZEKkJtHfeNpk5mR/WN7BPOGpR1bTiG2EKzjYajWhHL2GRMG+ih08uetDxDXJHeSG2HcYtnoeco6ODuQNgRW9joMQWVgpI4eSf7jHoNq0VdSHWm1g4FdFfZcqfMivYVH+qJqg3Ne/7q//WMSryvvhVmRH/lZ/9H/sN/+6dAl7Ab4JyqUIpwM/a1/e7jnH+ncnrzGfVponzXRzla59gTl5cTa2tR4zi0VKh1Q5cFr5XVlWdt43JXmIe8QemozKSzM64+ODG9tufJ6QrfndOON5y64nNhP8GtOSTwVjm/WLjdKqwN2V1y++TI+YOZv/DjP8aDP/9TkPeQMlzfwIMLqL8Pn3gEhxu4OgKPOb9UPvXrn6N/9KM8++hrtC/+Li0J7SvvoocrLv/VH+Pm9oj3I01n3vy132H/aua7/7UfYZmU43qktUQqO043N7gbKY30qGmh1QY3t9iS6NM+Piu9YmmKA4M36o1DX8nnGZYPfRn+R1quw7rugvZQPZ2OGyqFiznh1pkkgOZlWZC2Unt85rbjCZ8yUgTRRO2V3aM9+9M1h0Nmv4/QG/MAC5ckqHWu1koTQWqoJ7I6GzH0a93watA6nu4aArF3rmunTGOo2OPw6sPynrpEWpgpZQHMI2n9TiE/qkgVoEdap0vUe3d9SjejDoWFdaIZVg1ycH3dGEnlse7qJUeinpPgf8lQdpikcAWM64vo/cDjy7/zj76h9/lPz3J+/n9+m3/vpy4xLADtLe4zw9aZElxfO6rCufg9MzdYVjEM7t0HP8uRBLNEaEVLwtwFbQFdN4/hcnaJ5sCsBLc7FNRIqM99hAWcTcoEPN6Mmytno7JcTORFuX52YgXmnZA1Bc8I4aYFomRz4+m1sOhQzkiERf2jq8yvffHbrp1/2pWBd9cBgccwDVSDEwKEVsP6F/cyPq8pxb9LSVCJMJV0lyquBIfZ7051DTGhV9ApQO8QSs3uIfVq7jHszQIdqnW6RbNJNdPpuGfMwoHmWyR16ggL8+LQlHmn6KzcPD2FenB26tEpe+XqChaEba1hgSbeM3YnSfBgFdI6roaIhs1RAluTcjgwcnaSR/Jj2HEF8Y5tiuc7hWm4nxCl987Pff74J3om/NDvolfv3iBWEVFWz5xJouSO2cQ8rWyr8eTtA2cXiawBuZuz0XsL5cIpCm1qNKGqdc7m81C+pJl+cvYPOq3HE1lrPHS4k8lhSwhxS7y8PJHEh+xPmXMDzxTN+HbEEpQSvJcyJMEQ8k/viTwFcFlSph47kuIBUVe6rOA7bBO2rbHfFeZpR9s6qQhmGddII6gGP/2ffvGbfHf+dCy5/7t/3f/P+OD+P291fuI7U8CGc3BbpEtIxT2mbm0AsKcSUeAWPSW6xUsg+jcxtekhcSGtsEo0jO6+XlNYuJIpWzaSG0Wi2SSmI/ZbMHGyhg3N3HCNNKljg1lC51yrM5eAHJtaJBcSU4StOWQPQGgDklP7kNW3eK12jJSi2ZUkCq7ahCwxWXx6HQXUbgnp6bwYJSl9VHABfn+udbOvEb8/v+YvOwD+/285RtIUyX0YmUzbOlxIbGYNfFZ6E/TC8PePHGumpk67gqML7gklnkNyp9eEmmEpB7dBnJQTXSreBFXl6vFdlLhg0iNqerTNc3KqO3OeSdZ4diUULADs6syqbNU4tXiWYlOOZ8B6TGseXCjHozBr5+pgnO8kVGIGppFoqNIRMtv4PKUSHvyQ38f71AyaGBsR5S4OfU1cLu0+5QnGZ3f0SJ83sr7x9/ObtRTh73yl8ZPfNyN2olGCO1OcxBHqJSwtpPF+wpoy60TqYTG0PmyE1ulJkVowiUIm54zunXzT8dd3lJtr6rbij5ykO/pQbfbtxH6CbgWTjXa14LuGFgm7GSfEC+onVhOyZ9rm5CnBVLHT4I4w06Ti0lnV4VLx7YQ8OWdOQsuK6Aq2AA28DB7gilPG+zJhCXRTbEvo5uz1bvwEN1OnzJVtPtG8k5gjDdYVWqLnjUUSao19Vv7rzyW890H+4v7ZepkfsavDKew2ttI8gwheIHlmKsJkhh+fcmw7Lj57jlw/pb/9AU+2RsmZJ+/NTJ96DRKkGSCxre9wukrsk5J1phwPtHRGOV+orWJ54VRPJJzdufLWVz9ge3DOdty4KOdMA1fcPNLATtW4zWCHjaJGF+f6eORf/L5P8/2f+RHkR340ZC26wukGtmf4F95DWoM33odygKsn8N4t9dc/x/611/jhz34n/+D2lie18fC9pxzWK/r3fg8rnZ4KX/i7/xCrB17/4U+z2+2RpNyuR0yUnhJ9OzHNAco3EbabW5ontsOKzXtSzvQaNu9sDVolqVBvhP2ricol1uVrmvUv0/qFv/W/85f+4p+jW9hrcCUnQcfwVtw5rpUiUJY9HLeRDh4ojdYDzRFJX8rp1Ll8dcfjt0/Myz6YNHeq9x4cxu1ozHslqaGi9A61ViRFzZNKwSzRraOiaO/cHiqpxNAPhaYxKKqEeuBucKMenNQlK9vW4nPyNfYtobWIO+vuI97+ub3evWMeXArDkaS0OD8iw6JzF5BC/GhRK4aPEdUx8B4WHjdCZfuCMuvx9Qm3bytxvv5Seq3IZKStULTR6ahnrDfUlSaGLs71yanAnKBnyENa0yUSMs0BjfCjMjYHM8hzgq2RprAumtzhgcaZUsJWpoRKy0ZQQFbYiXF74zx+f+PysvDgstA6yCTkaYJTDxUigRw5DEB3753rQ/Brj8fOcua4JETgr/7tbyv0/iirEyFEB+9kMpMBEoNpIxwFIjJSlSFJumcVpxyW0SQRqhL+1Gi84x2RhLWooVOJ52CrMlwagkjYG7M4TaMr2QE8UDJ3Wi2VCIBqa0cMtOg9000kzoTHk7FcJCZN3D6pLI8m6vac6SsC6zqs1kMxCo74SN+l411CsU1wv/s406k5toXiEIvv4ci97VAkuJvWQrkW19WwDr/2XiU+SX9y60PNzILwZFZNbIQFa+0rrVm8yMV45bUdZXbKvOPsobDbOTeHyvWNc3vIdBPOdomLBxPzxUSalgAxp4RoZ8qNwwfbvTlKkuJq9AbrFi+gLhnHmBBKiRsZjIhK0UIiYlN9DpjnyTJihyHNU5ooU4J5aZFcQCbpRto5h2OKnxGYAe/GaROm8wUrcajUYdg2jYf1JMa/9dfe+CbelT9da4g0gRdbWC/a4eLvv/qlW6TfwfpAWjQXioXVr3mosu4sXmbK8SS00XxiU1yGrN2Dg+XJOarR1mDdLlP8zrUrWbl/QbYeaZa8cEBPyUkigwVhkRaHoJORRqSPeMTDNpwTw3vvQo5XD1O5q3QcLTYmkU7dPFL0VkFX5XirbMcoCtOwfwnOzabc3MYf62wfNl6GldFcYmw1ruHzJtbXrvhO32JLnh9S7v75m29XksI0CbijS8YtPtPmkWjUTp2aBN+lSAlchDMk0lzH9HBKEvy+IqQ50TEao8AdCoGokJ333/TRfI+Ui6TRHJ0n4xOf6Uwaz0MbxTMuvPLJRqthLYVQezU3Wos2WNi2DVOjVqHMAf7+xANnbQYonsPS6L0HUJJG9sQqBlaorrShfFwZhZ9D8ZhPzwmyGLX6fTJkXMwXLvH4tbzw65dxvdgENolC42/8yonNHJEdRy2oN+qWET2hbUPEyH0h46g33NdQgqYKlgNc6sL/y96bxly6ZXd9v7X23s9zznmHqrp1x+7bbUx3G9uBeEBOAJNYBCUgZJEQCRERiKIkZCABEiIFHEVJCB9IPqAYUGIiQAIBIi0kzGBbGNMMBrfdtnAw3XZjd7f7zn3vrVvTO5xznmfvvVY+rOe8VffabreH7nZXeX+4t+qtd6h6zj57r/Vf/8HYBjCJY1Xo1wy2hm5G8rMjfZqoE1GEqSLirFKYq7cRLCvD6YROnbZ3ig0E5c9pchT7xIySC9qisEkaicPdeyR6+oD4iDeNhJzNjKwqaIoBAU6yzHi/MVyAtjVjA+0Z3SnrCyHVkCBuryvTyQ4/vWR32kgZpmT4tEJTp3slpUJWZc4VqQmkIzlzrtf4kTtnHGYSh7XYOzzSS1Mhj2uO14UxCZusDCqstTCmwvGQOFl12jxTVyfUdx1jz5xQn90wbxr11hvw+puc3w9v0mtPHVNbpEa7d5589pguheaOljX7LPQ+s9/vONeRfVbUjeMcVOPBhYGB5OERYqUwo1Q3Zhe2PfHEk0/zr/z234uwg+0W2hyH2MkJPPEUcjrCfAbnb8ALb+Hf8/20T/wk5V/7tRy9//0MKsitu1x74UXyV32A6fn34gp3Xznn09/7Qzzx/mvc/Or3Il5o857tdo/kNcNqA57QJuyasD939m9e0u9M9FtnXF5MXO73XOwmmivzfs+YCjpDmp3x5oq9FCaLYCBPv+Rnyj/v9Xe+43sR6dQe55b1jveOd0KaE65ZuFt4X+2msOvQ8JvJKYE528vOsC6kQSmFpaKIhquZMFdjd1mjscwDPYwf6AsQ5h7pcEvWHylluoV1xLApaElh3L68181DIllWiXElJO94iQS6aTH0Mg8fG0RpFgNNTREI1DwM2s0CCEMMYzF1j+YlfJeWlq6ZXQFgkcIYA8ilBwyGN4e7UON8OjTJC9jVzTh/+VNf+Bf5S2IJy3iC0VeMerCsyURASKKrIimx3ijHx5AHmDrULWHJsUgN1eIy8IXUMDtLhA0MKfzWHInQL8BT6BXKwg6cLVJbm6ZItRNYqTBNyuXWePZdG97zrg21C3qaGU8yeUyYBkiR/QD2egQ8WY7eYjMg3cGUqs6f+f76SA9hPp/r4K38Y69cUrxjHjEw9vAAVQCJWlwX/9uUBSTYVJpZkvsO3zR/jjpiAAAgAElEQVTS/HozfAF4uhFsrB4MU7Po9zUtDC7vGHo1udWFxSdieHVs7jEYHBKphBE8dgB2gmk6DIXmRl2k3W4RzpFzhNf1ZfBtS5GTF//don7l92wuEeThivelP84p/FjNaB5hCREiFT1ApC1GnxBm+NEnKvDi+S9+gu8veTAL4KO3hAELtC9tSEUjTlqO0DyyOUo0A5cRy8q4yWxOCuMGqhjVEi3KehKAOd4rm82KdLRmvJGpdy6RKkgXVpo4GhJj6YxZWQW5JbSpFnRDLQmTglsN/mkJg+RMhl6BY7CIQF9SKXFPi9+V0iWT8shmLSRGvHYudoXuE8NmRXUwy/Ru6ABoQRjoCX7Pt75y9eb65fWzr3cSOA7gysO+TgdekRCHykEqVpvQFrPhRHhMJYHaw+9oNS6Iu8KcFlO+tLSfJlHU9IRkwfcJOuybRKLJTugzWE1Id6zH4TNqTFx0AcVmd9Q0PBg8qF1tAc1EQbNhTUge9PfZFvS8R7GUkqJdaFVgm9EphXcbYejuBtoUrcr2TKiThKfSLFzcDyr10elyEGk44jsBZH30zbcfSu/g0LytEX9cTOBtYXYCbwNivuXvvhAMOIPsGbNGySHb7ALzvpHyAO60seMt2G9n2ZE2sho7ohkI6QWLgX9zgQNLsDui4b/QmmIdmifE8yJLAOg8/37BxxIbKMHqKC6jbgZDUIn3l0MkNKXwhDvaeFxeD118ZTDmHrr4KplxSMwefibmTlrMm01gcXWgLiV8SuH/oc4VkyarkNTBG12MH3jp4mpTicgDNtbhY8tk+xH1UAauWhcgprJVjU+ddfb2PJJmjphIvTAo1DyhZowoyZ1BYmqW05rsIbdxC/acYGQvmOcAwRcD9louaTswRoabiXIJ4zgsXmUhPy1+jLhRbUbahtVmzVpG8E6/XEcnQEWlICmHCXsRsieatPCL8AFVCZ8S2wORMpWyY3SSGD4oPRt+AvOq49cmxBpzn1Hdw+aSdrSnbXbokaA2RQKejzDHsMJtpPse3Y84C5MmG1mVLJBSJxfnz374fkw9H7x9l+ZWFk+dR3f9T3/hr3PuA3vz0Jo7uGaaBct825xZg5FU28y+GTUpfTYYRnjiGLshlLde5fytxiwb6Eot4dtn6+usj5zbty/YtUrf7tih3EOx6hw/+STDMGDd2QzGuB6wAufAWW/sW7CSzQL4L6sV/8ZXfQO8/gY8+TT+oX8K8wRTgbyC4RqMI/6Tn8a/+x8w/6PvQb7+K8nvewbuv4ncfYNb3/8jrF9+Cfn6r+PO5FxcXPDqR/4FF698kmd+7fOMN59EbpxQTkdkfYyOGXNhd2cPdy6oF3tqrUxDZX9jZLp5zLwuiCf6NEMuNOl4SrSLjm1G9ps1d3bGrnes1ava8FFef+Nv/RPUQyJXdzWm+63iHfo84+5stzUM05sFGyUrczMUpzZnfVKorTE3WN9ccbG1MIkXYRziXrC5MW6GSPeVkPGLORK0AtyVpJG21XsPxgzhJRryZb9iR3UL8CurMu06mpXWDuewhvyoWzDZu9FbnBu1HeqkkBgGMO60tjAmCAlPNY8m9XCuCOGnmQLI8wNc93ACxcJ8OPxagtKFLPz6l//lx7/QL+2X0PKr//+TtxJJE5KiJvIlmlAFSOGB1bKQNsLqOFTA+wsnLV5oEBJaW14LA2Y3moQyyJc9hlgAqC6sMliDqsJkys4VzUYpwqoIp4Ny527j9MnCyVFhvmykE4UszOb4VBlyDKnDnMkQSbgpuwnKqAyDY0m53HfuzwMf+8z0mFTcn7/11namp7Bj6CxhWQTJBjEk+XJ+h7wz5xSAugawjUjYYVi8T62GzFgSGBr7hDjnDhNZ94C5DSdJ9H1Ball6TXP65NTJlgTNhKQAsgSQvPQHHtLHNGqAZ6vgVLk7ooEtpCxMu7qE6Dkc1EO2sND6QrCw6DO6RShamNwbQ4k7W0yuZJYignpHGuCJnAPq1RQEix+7F7qjX+wlvxQoziI/+1z9j/8XX8W13HGZySZkr0wXmeMbzu7+Hhg4OU1Ap8hCUXYwawxLZGbWTO0TR0nZE9ICDEoKTaztQNpM9YGcOrMn8sDiwi8kqfSe0NSoLZEk2Dl0I5ca3LHmuE+kvCKrMZkABbzhImQJ7al3xSWjMiNkLvZKWeWgJZpASYjM7KfCOIDkkTcunD/w5179vIIC7o9eW5gk+Tuf2TsN4ONj8KvffcRvep8y7VNMOxKM2cgF1BfvJwsmVCaKobyAzgcfoyLBgErhqoD2SMAAp7qwXiZqWeKQVAHfB0hKEUhGNmHoSncWhhdoiYsxaUdd0Q6pxc+pB/+GMQzkEwF6VUBmoSZjGOPnD2HHRvZILOwmkJzthbBG2ZpRHepeaAZPP7UYG07K0UrIQxRxivA7/9a9mBguLDe5epJvX758tHt/pPbXz3R2pSujRwC5ali+8unr/Ml/91mqQVXHujOsNQhuzegT5BPFrOFvKavnFxnBBHWq1L3g0ilDvDaYQ+sYwniYOzsh3UPAjNaDeaUeF2JewfY8Ei8lO95gdqHSWUkmD8JQOloV98bcEttLIMfecgSzhGajefi/DUPQh7FC8xaMg2YMJdPDRRJ3Yd+MUQ9stCBSSAofiLk5x8VpxPRZa+YPfeen2M1vT2U61PeHTXWgNJvZI7W34KffXyqLKa0U/vfflGhakabkQWgCQ16hs1HHYFuNK4XLkb5urFJCd522VkwTmpRi4EykvEakob1hZ5nhqWPKkMn3d0y5ITbAak21c0YbqbbFMSQr4gNWpzi/vFPnCW0Faw1NBdGZvJxZkyuaoFr4hrgbERaQ8K6k5Ex+ibbw9ZpzFE5aE6KNZhHmkpZOwmVGm1NxTBQ00jvjvFnRtg3WoK2EtNo7VVYIl6yys1Lh/n7kj//AnqrtCszyBzRe4NG7G9+5t771D/9XjOtIRCqimM3o1BmSMkhjdmGXjziShtpMcqgHE+yUKAj94pzhwpmPQi58dO2YsRS6GTWv4OIOvl4zqyxpTJl1q9xvsFkleu9sVpnBQjZ2Xh3JA6YBhG/PL3ni5lP8tq/+GsrpCl4/h2eehvNbcPI+ePnT+P0JWQEnzzB/x19h+NqvoX3mFuJb5vPbSBkZv/w9cP1ZfuDFO7z4mde4X/esPvAMR8++i2aCm2PzfXw/sTp9gna+Y/f665TnThA2tLu32LYtNY90h0sPFcA87Wjb+PiQIjzF3amaqHVmVYSSlLnu2baQYSdR/p+/+Fceqb0FP3V/PfvUdX7zN3wVkgZKUdaDIt0Z15m+71w7XVPbjLUeDZI7rVXcIA2KtR7DN4e7r54xXD9iHJTUO5fnM5vTcfGWsvAUUoEe3qG1OV0CIlIJ1lU3FqlPeNUckgJTgjobqsK+dkRD0pcUdosqpLtfMd4Bqi2WDb6wunoYQIe3anzOAQuTRYY4Hxg+LOfN8pzC61Suvr2LLoz6QLVCVqgLuBUff/HjP/pZX4tH/ez6uS3lj/ye9yJtG4lOiw2NzRVRh95xM4YFXxhadArnZ876OBhapk5CGDT8PycPBtZmSSqcayetMpukDCm+1747kysyQCqFkwGOBRKJe2/NPP2ukdZgf2/m5NhJp2suHeb9xFiNMiizLOwbN84XL677541rm4SlxDYJ+wv4Q3/zggMT5vO9HrW9BW/fX1/7nhs8sQpgWzwGrsOQkaLhHZwDHNUcSppgZC3DVxdadayHkb+mBRBdzglBorZBFpkeuDeGHOCqHzzyqrDfzldMdcTIOWOE53Z2Rb3jIosJO3jrlJw4upGYzxfDdoVhHKjWadaxuXPvzZmUE2WANjdSMG+YegRh2OLlHIN5o/fw5VUWWTRR2+viN+22yCQ13jepaCg2RPnwa3teu6w/p235ue6vLwlmFsCf/vYXcW8UUiCQckjBUlQSbQ6fI3dhWx2zHsldWake+vzaJgaNxlGYSb3jLcy1ezfGtbO6XlgdO6tT4fgUsijaDGanz42+M/oF6GVlfzExbydSjgLbcCQLXVcUhdkUtJC0IhooancHy5Fe4LCbBs4nGNZ2lVh3iLh0X5OIWMwfecX5g3/+8wtkPbrrYNEZ6/Drn/okhY+9uiVZAo+EnJKXA8digqdwhaCH5MojiWeByzKL4amD08kSnWfv0WiOJgFxyWLG7Q5d8OTI2skp0PiuYKMhG0fGYINZdWRy+k5pc8gYdW3YqiMbo2dHZqFdOvUSmARmwTYGBSwFMGuLMauqQHEkG3OHMjpNnN0stBbAyM0by7SSAO3q2JmBKsIf+76Ltz3PwzN85x59IOV8fPbuFZC1oC6H3//4rfthBJtiT3mBvg9jxLqPSlpNUBvpakz3SnyPVWesheHIWB+FjFCW/aOayYeCdzn3DYs/lwSuIZ9VwbqwO1/kqWqUYZGuKiG7gUUCplQRWleG7IxrJxdhbnnx7eiYha/WkJy2S0jOXMydlJTiUWQnMc73M+RgMg55ueQ8ZLu1O9t9mNCLdEziIu7iaBF29SHm30PbLKJ9HzBnfikMZb5QayFnMknllf3TuIyUskF8xWrcYGlY/PqWyTMFF2OwuMukGcZMREd0ulXcE8knsg7xPHedVndYNSaDNByRj4w+n1PGY/qq4eqUchzeVz7Rc0gHGwZlhZdO3giajKQrfFqMSaUHkzppsMQk4ZaptsdkYm6V5CX2czaGbhQ3kjmaHJceptB0LMW5Sh5RLSgrEKHbCvEV1hSjUGqmScUStKSgFwwMaE6U8Zg/8c+21MUf86oFeHy2FAAX28puipSlPm2pk6B5RV4X9l3ZGow+o21m75m7k9NQrIyUMmKSgnFZKvl4JJ9scO/MdeZu9wji6UbVFZ6OGPPIackMp9dIgOaE5gyz0wg2X0pKEiO7B5NpGPjyp56hDCuicMpw7y6kDbTX4f7ryFMD3HsZ/9j3Mnzz78BXK/KRM5+fcXsrfObceeGTt/nRH/4x7l/eYvjA01z/Vz/AcPoUcdx0kjjJB/oe9v/yJ9nefo307E1UV+xq4zIPYTzRHRjIHbw1chrpZcWMsPXCJcIswaYdF2b13bM9RsJTouI0fcRpf8t6/dY9/up3fT99miKly0O2Pu1mUoK5N1pniYnvTD28/PrSFIkqtUe61vHNkd3dLepO3XfWx5mkUe+bCJ4SZkYzwxa5XhAMhNoBXTxtNPqIQ/Op5syzU+cF6EpRazVg6g/gpkNFwyHER0Jy2LsvzAehdsfcKVmXCjSaW/MlKXphbflivNwW42U7AFnE4CjMk+Xq90i6ArFchNd+8pNf+BfzS3o5f+2fXSKa6Cm8bxvBRO0WnrGI4svQuQzBxEpj+OemRQImHqniDTANdp8vhlaqgtdlL7gwu2AaA8SUEonOsQrTufD6Z3ZsTjNtD/Wyko6VKSd6M2zfFq82ZZCO4IzSmLpTm9Fa2Ip0UYoKa4O/98mGsmzKX16/4PXPX767hLYZmh6oEg7khqBxL+9jcTDBmgXLdDbMevhip2A8mYWKSwS6hf2Hi9HdcGuReMgiaeywvzDmXfiliYYnF2lhAXYi4TBM3MgLI0sU2mzkEmEBXiEPEcy0rz3Oldlpc2I8Suz2nblGWJ0ZVFN6bws4H51bt4oZEIPjYLhiYQ1hFsb4Fh6GSUNS7Yuvl7hwrwmvXfzcgKyfy/qSEevfenPLJ88KH7guqDR6DTqeN4UMu3sV7wWzCU+ZDIvxsYU23WM6bDTchIzRU2iWRYIhkHLHeo6CtwlGopdIF0gjDD6Qx/CmEU0MNYUnwvmOdDSStdG6ItrYi5Kz0LwhWJg3FxAfaBaysakLqzHRlwvL1FALamCTkOJ0yfypD93mIz+657Grrn/R1tsBlp+epcUVw+j7Xu587dM5GCApWHQki4S/WRaPgqCFeAJs8bUypScP4IkAvppFkZNzMKB6ht6FMS1/F1tQdI0CpkkAZGFuuphKqjCn+HlziQlgcmGW8GkYUgBoZQTzSN9JDqZ92d9C1YMczejeyR4gW50FLYsJZQbMGVSoZly7tlBAUNJWsHX47CSJy/tjb7W3PbeHuW6fjaX1OKwDRfidIIu78wf+xmv8qX//3aiHCaROIRutF06+AY5BNoZrxnRrz+aJgpfEXPb0uZCOe1CVTYLu3uxKzmi9k5MEBR3BGtASOsyRQuJh8l/N6XPCm4dxM4DExdcqnF7r7M4SXQPYyjlka14OFGFHNwmZQQeh7xRaI2um90YVIQvMrjxxsgJ3djgZp1loddUihUeXW6iIxECC8KGrzSJB5pAKufxkWYCyw9tY/J2A6qO9Ds8hGXzr97/Mn/mtN2h+jrvSa8Z0RmiYhCxaayHnRldlVmcsM6mt8EERM1TD96C2kbUa6MA+n9PPCvr0FllVqjnr1Yohb9md7SgnhTRMYHcRP0YWKalbMPV63zHNsFoXVBvmwmqoiK85UmOSiRlAG41K0ZPwlGnQtdIZyRKBK0ZGvdND741ohAIIiUbFPNFypVZHLaE9xwDBnCRGEWHySvESQlcVtGdSmdlI5v/+4Qvmapgc7AAOO/zxWm994idRifMhjxsSnVxWSC6ka0ccnxaqGH0snF/sGTdHmBtGpklhzHvmYeBy6yQrjINgrTHjeG3U6tQ5c4yTB2G9eRLbzdRpx9HRmqOjkd2+RlJTneh6xJA6x8cD9y92rCVhqjx38gRs95FQaAatwWoNm+tMe7jzgz/B0fqE06/4lVAEGQSGgTsyklbCtZtPc/yrfgWX6nzm7gWljEytM9VKEUMpUDu7T72KHyv2rqegOfvWaReV3f0Ltmcz/ewOU49kvOrRYBjOdqq0BtUa1j2MyJdC03F0LIyrCNdwES7nx2un/bW/9wP8rn/71zPnNT7NDGNBVegSyopuMPeOuzJki/fi0kx6FER0Qjq4nYxCJ6XxgUzRnFbD3mOVlP0UzWNdUgFxD9XG8tgbTltArD43ykYZxrCIMFUk++IrGIznafHfqhZ1V7OOpvCswqPy6e4x/EzBSrhiXi2phKbBQjwYiQfzITxpDssPLCxf5PXyQJIqS73YW6VOb2cu//L67EtwXvn4W+y+4T0My8BPi+DaoSqqBZ8rRrD0mi/hAWNj3gWjdFQoHhYJk4ZEFFVUDJeEDsK8j1p57rJ4Hcd+qhNMM9y+GySH5961QjWxPdty/frITAwO5rYkgFYnawSO1UXYMFsYM2y3hhZlD2Cd+z7yXR874zBu/+X1i7M+9Ml7/JZf9QTWjZwTJsagOWqJpAGWL+9PcwsZXneEkCMeBs2iEhJlY0Em5IpFqiIPetFu9JmQ8QMoaEmQw+x9OTgWxUXsT6OjbpFwb3E1ukK9dGRQhpK4nFrI3q3RaoQHiMBqrewvOsMQ1kzNFnOL3hfWGCx6n8MEGWCROIfUcp49FEyagk22eBBC2PL8/RfOPq+v0ZcMMwvg2z74KcyDV0UO+U2VRTPqe+7d3mMMqIcp39ydqXdab7jtFp+gzL4K26p0DZPTLEEhnClUT+A5DI99plgle2dcdKKuYbiNCRct5GbD8Yp6MQXjoYYBIBa66WmCxoAmoVqDHjTqTqEMhusekQm8k8i4JGYi7yxp4ZWt8JEf3fH4lda/eOsBsPL2JW/7jAdSuR988RzHOR4XtLcEkOUdLqeY5GUFEkyzBMuqK/sWBUxf7MwaehW3bDHLwYVlfx4KmKCfHxIqDsWK40tz5Uy2GDR7UOW7BZ2d7swWF1xdJn6+xLp69tDwt8RUnUHDHwsiOVNLnLzmEhKlpWh682zxAhsizXHflL6X6JwTmAkN4X/7RxdXz+7w3KLJfvipHp7z4wM0PLx+OiAL4JXb97ncd1wdKSMgmFc0Q8GpHVrvSBohwf27BZ865bRQLCQ9moLN50uVK6ZXgRPmQXXvDbw5KRtZhCyJ69cW5lNPsYe7P7igepxx9Vw5uzPQxOk9sd8vf3+IkQ9C1yjYt92ZJ6Fpp0giZUeyMuTwBQDDdw2bO4MmQOku7GsKzzdi73WDrsrUI/lnlSKtxZbnttiCvf15ygI6PGbbS3hgRKo4/+PfvUtSCbCnV1LXhU0qWM8hzespGrKDX6MWvDXaJHhtiCdoE3Wa6MDqZkLPEr0nxuMjZJ6CEZVOWV0r5DvnjHLKvg80jaaNaV4ki0FNH8ppMPAQyIl9Gqm6nHVeaMSeFSnhqUUO02fJJCyCCbxHGpgnRCKBLHth0H4VgZ1SBxNGTaQ6UH0Kr4ceTLGa4u9XZyP5zNo76xQs2B++u+FHb0dBdwWOPmb76bD+8g9+hGe/7JT1tRV9nvDq1ItLprMztm/e4v4nX+SVf/EiL/3wy7x1TzjbJXy4hg0jWKc2JW1OyTev0W9fstsXNJ/S24jvEjaHFLHeuqC9NXPrhVepktmcrjm6dp3qGS2FCcFXI9M8cdGNu3Mk+Jolrh8fkxD2Z2e03R7uXuCv3INP34KXbsEkrC9e5dbHfwieeBYQWG3g9BrPftl1NqcDb929z0d/6BN8/JP32L85U1+5g33qZY5v3UPfuGD3wktsz9+iP/c0l/2IOy/e5Y1Pf4ZbP/4SZ6+/AHLB5mk4+ZVPceNXPcvmy55j/d4nWD93yua5G5y89xlufvlNnn3fk1x/7xMcPXvK5omB4ycLR9dXDHTefOmM7Z1LprMd3/m9n/hiv/Rf8PXB7/l+ulV0SHRXpu60qSKtUa2Tc4IkD854j1RBtwCRkiY2x4ndW5ek1UD3BcRaUnZVnCyBICWNZlEsJDIlaSS7NmHfYXt3ps4RFjEehbdud8eao24BQMnCY118aWpfhiwAIotSzTHVpY7TAPg9ErCdZThJWozhOyoSPllX3PUHQTlX/1/YV8ES0itQLCpa45VP/MQX9oV7BNYijOIvfMfrD4ERStIcqWsCkhOSBEghT00eIIDDnbvOfOEMy2uDJ5BMJh/cj+jujIMw7cNnti4Dw/P7lbN7nVqd45PE088fMVe4fbexur7CRJYgpxb7mUixbtnZd2F2ODPBXJm7MXdjNYbU8VxX/MEP3sO/tNr6L5n13T9+h0/c3oZ31gHgWc6ahTAZ5ucGfb4avcZ71hK9Cb096OOwkImKCIsZZCQbzp1pZ9Qp/Ko0K1qWwbhHYIaqXg000+IlKxpEC/OwDhFXkirzrjKuM55T9A50eou/qy64Rhnim+33jWkmwoKMK5/aUEIEq+zhtsbFEAvyw8F7rkt/AL5rmMP/7U+ff95Dmr5kPLMO6zd80/P8zl+zCSbMWWM8jRjeUeHOm3tOTgtD6ZhnZps5zRENX3toOftkrI8TETMZ3hCoLnHcKTaOtUhJ6Z2cCrv9jGh4DSU3mkSshXfFZMbbirFMVIN2DjU11psMzfBiNM90g5KEJI3aG85IU4UurItTDYQh2FzS+PE3lP/5g2/E7f0FXI+i/llFr/bXgT8EDwqGn+Fr+APfeBIgj8DcYCUBUDqQc0z4ugunI9w6C+bVyTrMRw+oVfzk+HWwtRYvrO7klUELmnNZ3vzdlVUGTY70KFgay1mnLIbOvkTbc1VM4R1IbJbYcnFZiqwwL3V1TIJCnYtzslLm2UkGMsVle+tWMARPjmHTEq49PCRGJY2RiocoH3uj8n9+5CAxfMAUOTzhtxvrc/WsBej+aPkafbazS6/+9W/necQFmPh//6P3k7IwbxcPvmOjV6VsHB0Fm2Fcd85fdsanCusbYPuO3Uu0leE0vAmpxyUjXRA7TIDi3GiTMCRnN3dSXpI6J2cnGkCmLjBuDlq0qtJqGLv3LggpgLIc4IL3hJhh2TBN1Bp06akl1iWmRn2hVE8VtAu5LN9Lnal6xB67YkTQQA6bI0SClTqoYE1xcX7fB3/8p8gIDyfUock5oA+Pi2eWEJjiQZ0kEjLkP/lbRtqUWKUM0pgW8pokI93JzNcbwzDSLvaMx8fsbaJ4J2sm5wHDGBlx2eOWmS86Ugc2X34Nmy7orTAeFYZRsf2O3vbMF4amE3R1iaeC9h6ya+skV4qG3Me602xP8cKAUKlYU6pkhIr5jNgRont6DyAzvKucrgZd2G4bugmz0SaRZNZbBm10q4itGNoxPd1H1DDP6LyCtMN1RcLQvidnQbUz2XX++398l7xQ4/vh5PKf/m541O7Gn25vfet/9/uY58o4FEpeMSwq5yRC1USXznRxxv037zKdQ/aZUgtH73kP16+PXDtak1NMf6ftHS4uG5v1ip5KFNJ3z+HkBmWzotQOt9/ksgn29DOcnAy4dPbnlwsLRrh+8zpWnbnuUXP2Xfm660/x7qLIcMqLP/YqnjvPlS3TSy/Ryorp7gXP/45vxudzZNoCArVCUnxzwsXdM35if8krZ7e5fS8yeE07+1ojlbgEVbSUgamBk+iEdLL3PXV7iQ4Du8tLjJAO5VJoUmithUeTGfvLLT1peGfahOQhzMbd2O+2/OCnznn1X3wY3Jnr/pHaW/C51fXveuoa/86v/xqyGqqFo43i3Zi2E2SlpGj0ejfMhKzRqk/bivfOtK90LzxxIzxs5qkz1U7JijVjTM5UoXlnnnvYgcyNcRUsicni7Oy2+GVhIMKuGqtEeIeaYL0/SHDGFzJVsKJ7j8/LGnfb3LmavPTFNPnAruoui0gxfn73Q4l/qJvkiomMhDwxAJOFnaXBhADnhY9/7obvj8PZ9fNZX/3rnua3fbmSWg2ZWDd6NYpVFMPdOHKjzrCdnaO1ksyRreEtUgm7R51eNJIQV4OCGTll5tboe8eT0uk889wRpTjHWdieGzRj3AhWhHUpDBjbqTNFWgBTFVY0SHAjKXcrqIa87PVzWI3wxLpwO3V+/1+9/IL3i/Do7S342ffX7/z6Z4NTUxKlCEkXQ/6FyGAui5+ULIbqfZETL8PIsJUCIvhL0yLDkUMojSA5ACxb7G3MnO4WFjYaHlvJLSxwFmN4TR4J6QRLXs05OsmsTjM5K5f3KxD3U7d+M6AAACAASURBVKTaOK11ajW8G9YS+2mimzCMS0bngqCnHAqk6pE+e/i3JJzaHTQ8EGOIHeeciPA3P3mB/QK47p/r/vqSkRke1of/8St85dPv51c/QXhxiC5GZMrmxsj5G1uObhRycnIK0CDl0BXPDU6OBkJAGJ4MCvSpU8ZEq426V4aNUpuyGTq73kkCOXeyDJjXkMqQ8FrRlLBcmSV4huM1w3fK7v7MtScykwjejaOUmNxpljAdwUFD8MrsJaipudNRXr2v/C9fBCDrUV0PAJf4lT/0cR76s7dJEd15a07cLEaRMGRvAgdcrHkkWzR3dg1WSKRF6PJzdCk5HFCndaHoIudSi89ZwARpgizeXEk85IzdI90NuQIdisQB6Vf0LV8S6pykccCYAh77XmSRlSFYCqYVEhLF3T5+lhPg2L170TzeOHVyS+xTo0skjaUcZqmUeK9960cuHzynh57r4Yk+LNs8FGmHP3mc1oGN99Md4uadpAYyIpbwATp7xhITYJ9B1egtUU5mdq9DXsXr4UcdzZl5Gzr1akaJ6y4YOsv0JC+FsiVIORr2XDK9On12tBjWR1KqpBS0aESw3ug1kYrhYmRg26Go03WmIKgL+zn+jauUqNqYLoTxRLEmsHXywvxzD38JI/a0qzNXJ6vSdEn8AYLIDPOs7Friuz/xBvAQw215lIcn+qA0ePyWW+wT5VDowI/cWvP11y/pqrgKXTqiis4ZipJLicleG6m+RSxjbEDn8K+xDikhZKZ5ptyAy1d36JsbxqeVoRpzuyClZ8jZaRh+bYfmS+bbGbqTTmJumUpapoOG90pOqyVR06l9wGSOokj3iGWUo+W8NJKUJa03wgSkK2ISDao7pIb2RCfYD6AkHTDvmLaQ95RCbpntDtJxZmiRMpzySGLLOh/xLd97RrKQFx722NXd8Jj5sB3Wj336Zb7i+fcwDivWyZkYkbajbW5gRDFdrh9zvH6KZ7Wj7QK7c4dbr73A9Gbm9uo6cjTyxHueI+dnOH5+g7WZst/hLuT1hI5KSY4lYX9the8Gnrz/JvdvFfypU8ajU8b1yHRxwX5b6bUztUa1zLMnp7z4Tz7GS/NbpHHNu997k/F+52y+4Olv/E385Ic+xPt/678F0zmynePCzSUSF28+ycV2z1snG+7V1/Ann6Ucn9FrZ9ugSMPnGRNhGEZ6m1HCm0RmYb48Y3d/H9LBIwkz55zJahSNNMTJjFXfU2VgWA20Xmm90XSg1UioqvPM3/9nb7B76f8LT53H9AwDeO3Wff7i3/5e/tN/7zeSimIOuoRKmEPbNXRYfF9sSf1txv5y4uj6mqKCnU3c2yZuHC0Me4nGTwX2JlxuK32qpE1iHKGWjODsa2yNVkPu404wYSwGLLvGku4VYIRa+N42Dx+YaD6FefHM6SKLtCiY83GeRfVjS4XJ4lWqKszdFmZ1yFN9YT2zAFnAcr0t9LQryqjwwsd/7Av8Sj2a619+5C2++X03US10D+/IIRtalZzitWkXzlyN9dpJGimUR0fheSZNMTpZUoSBzZ3LKaRZzQM4KKJoFq7fPCIXZ9DM9mxmbsbxSWEuHoB5NU7FOEmxBabakQqtGOqREt3EKShbD1/RoxW4NP6vfxgpoY/fjfXFWX/9h1/n6957ja987jg8TG1JhifSom0xTg/sOy0MJ0NTxlr0iaECVUgd75H2lzVCw0wOg+k4QyqhCBNfBn3GIvEHSYr2huSwl+lLj5qy0C8NNNFnx6YwBLVA12IALguw1iP5XEtjJLHbht+bawgJzYNNEYzUSDxcnHIwUTSHBBuUah0XA3W+89M1Qnm+AFjGlxwz67C+5T/7ANdtYiwD6+IghnTn7M0LdFasCMcnI5sNYczXLijjQKIwaMNEsVZxKYy50S2TdQIdaReNvIohyDQ5q5XQXFGfUYdOSLusd1YDTGZkSWFmq0YzoV92bHLKabzQQpxQ8TkxwYmoacd9Rc5g0vg/vuM+H/30TOTcfeHXo4iyP8zMOqyHga2Hwa53ShL/8DddQ1yo7hGPanEYrDJMtujngTYped0W8ztQS0xm8R0dCnEAaQY1wcTpTRgL0GHMXKUhslBFVSWA2qXJt4XlpWLUSRnGALLC/irkratMyNRcwhtOnFxCjrYTJw/OKoWX0lgEn5xbd+Kw22ygbEJKqOrBvulC78p6DCBvleE/+fb7V+DU4Xk9DBC+82HLQ3/yODGzIBh+vOOMPfhbXTs64du++ctYlcR+NLJOzJORVhL+QVbJpVDUufOi8cR7CroS7r11wVE/wo97pB4KrGwBM+eQNWBOQmHn2Bg/X4Ebzyu3XnCagXhmtzfyUYBWLkJt0GfhaO2QheKCD8Jup6xXHathPCqiNIO5KtmXy7WCZsdKpGWqBoCqHk1Dn0MOOS+sHQVaV9LGGDSYqyYZeiQe/pff/inm1h4ADfJAahhFwgHkeryYWVd/tvwnSm5QHfiDv/46Xz7egYOPhmb0zUQ7gvVYKGNjvlT60JFsqKxQ34f0WAo6GCtdsT+vyFEn6Yi/POC/Qil+ybTtjKcDw+oE6cbcduS8pvaOypb9WYPZyOMQEtEGa5TKjOiA2RZniPjqPDHNHZPjKKx0IhOmtpnYzzXY9/R5YFzDrk00GkIJ4H5JGuu90wl5oszQ0ophnmPv9xH1iZKNMcFqyPyv37fntbN6dcsettLDD/unMAIfsbvxZ9pb3/ZH/+t4Aw8jWoSTceD+fqa18GecupBPTpAmHA0hg+l9x2r/Fme3OtN0wcVbl2GVsF4hpycc37jB8fVT0uUdLndbjk6uI0VZbxZJ4zSjMzyVdry6PUUHSGsh+57trHCrYZ/5NGU18q6v/hXcfPZd3MjHPDnf5XxuDJp56VMv8b73PsVwcoKs1/Q7d0nvfhpOnoU0clknfuT+G1x85hb3L884E6POFzQVfKp0DcZoKdFpNIft5RbTQgJqA2s7zI3z+3sY1ujg5B7A7LSY3Is5TSQcUXLUit2MuXfonR99Y+ZT3/f338YArI8pM+uwvuLLnuHf/LVfRR5y1DzTPiqGbnjvcWcqzLtO386srg30GgbHKQlnr99nagkrmaPrmVGgTp35opI3AJlufam5g5HgON2COZGEkCS3kA9Vi+TfTjAjIJpKE5C+/NoDCPMU8r+5RrhOTFxiwB5fGt8jJEAL00qCGCGLJ+RBnmZGMByIWtA5MLH06ute+/SnmA/a/89xPS5n189nfeNvfp5f96SjreHekbnhsyOtRn3vUZM1hw1GcmE47B0Jj9xO1OrHChMhgzWApjid3JxyUhhSYn/RKMUZj5WVKjUp+x6qn40YN1XYm7GfAwC5LBkDjtxpC5vw3mQMuXBtcD740cZ3fnTLz5f58gtdj9regp/b/vq9v+HdkTB5BaRHGjkaSc3Wgv2LWwzfPCR8UVtkhAZJOXSpmuJzwht2MVcnQCxdlAhihGG8Svgfi4G1pVMUSNGr1qmx2qwYRo/08ZqoU4Qq2ZJcUeceoRR9qXms02ZnPzvjCDktgWYeDFZj8YQWrny+zGNQbYT/oFvjH75SOWuHIIKf/958ZJlZh/Un/vwn+CP/4ft5l3dmCbNlqnH69AlqO+ad0vaN8y2MJ8J6fRTJc+YMuSC1UtJAE6OxGMb6mlE6+VTYbkNLndeOuVFUmGtaEuzCrE0LNFMGkZjyDIY1JdPxlaJrZXexw2dlcy2hQxiJK4WO0nt0ZykZL587/8Nfev2L/VgfyfUw6+oBq+OhJuXq/2+HZJyIY+49ZIOtCwMhka/LF6alaDUFs0Sk2zgmdgUKqQi1KposTL8lDr11Dpnh3KGUMF5vC6XTEaYWiocMV6bz0oVuQh4lKKdCpNQ1Q0k0D4Pj7Q6O1zEPbBaH2yCOEBKwbEKvRDJHjT9fnQCXih8ZWZyqEiwHFZJ3ugj/zd+5eOiZPfDLenDavJ3j9uB3X3zQ/IuyfsqwYGGtuXO2veCWdZ5Pyrhx6JlSG21rWHHSqKgbVYTrzzQuLgorjKP1EW3ekdoaScGcMipiGgBoXwBRMypCIVh6jrB73UK60RVLnc31mAo3DwBBknPRYTZnMMEHZz9DpzFP0PcJ64IO0KVHQk96sNdrXi7E3tmjdIOVKr0pY65MLmCEEbdAmgWtUeRPoqTBYICuFkAWD4FYV9hVAB0q8Xd/XLcWcEWINACb+dMffovf/w2nfODJLWIn2K0UjNCjPU6j7jspg5RKF8F9RycjScHA6hpb30NaZsgrWmtMz11gt1cM71qz2c90PwZXKDOlFOZ2ifdOR0jjirbquO/R2vGyZm/nFM0k9mGU7Tu6CW0WsEyat2QVPAds7+Z0ryiKzkdY31OaULVRclka0s7YhS4ratsjVkOBI4W+75SjC2SdGDBcG24wJuW4CH/sn1ZeO//sQFZ8/PHcWG+dVY5vHJNTCQNjc2Q8Zr3poJkBY97PcFnZbY6Q4pQ0oEfP8ezpQKtnvHLyJrLdcnFesbMz7t++xYUHmNh64r7fJx3fYLh5k9OnniC120zTjntdGfdvsq7K/jJz79aWdnGP8WjFjd/4NTQbudhsGE+eYfzMy7zSOkLj9r0ztFWmMcMwMJTE/do4uvZe3tzueOXej3O3zVxsz9nuzul39vRR2PZ9sG7yiLVGnS4xWdP3le20I+VM2+2xQdntp5CmVaMPwnTvPpsnNsweA01Yivyi0GOAaeZ4r+xrgGP/8IdeY3rlnz/EyHrAaH6c10+8+AY/8eIb/Me//RuXWHqh10ZRpadEnRrz1LG5kTeZNhuehX3vaINyumKdwm9me/uS8xbDkaMbA21h87LcPcHDkkMIWbAbPFhSObGAW4ukUEJChhxA8xg02rQwp5NGYyrhbYMZ3aEHHz7khe9kqtsytDwAVwvjwsWXBpjl5y5fJ3pFymq9/ZyBrF9en319+EOv8bW/672sbAqWvDRSifevps4ohdkcxeieUO+4KlMyBjyCwoheQBLhT5qEfRdSNk42Bdt3psvOnkbeJMZNQd3oGulx4p3uyl6UWwIZ5dKcoyUpyoExB6B22ZVeFR2dD73gfNdHLz/rv++X1+d3/eUPv8rv/tefBcloFtwqQqbVRjA+fUkw9WCS+oEhBZIsvGG7Xdn1uyz+yioLgyHSVtUJvywPiw+vh88DR1EyKQXgpA6tOuujAursdsb6SEMGb0IpAh1aW9j7ZliKACk3xaWRszDtnLSJIXVvSy2+pDaax9mUF7mEIcEgS8r3faYvQBZ8oQr0L1lm1mH95//BV/BrTgx6Y1wL6zHRekTWZzG0NW69PiE68PTT4R2EK0UjCjOJklJHxFDLOI41oZkxrDNuUVSbCHU2huywpCj2IKBjKEnCoLb1iKxPGWYLip5oMGmsKVM1xnVGcgZVPnM58Uf/0q0rDeoXez2KKPuBmfV2+dvPvN4pP/xvv+n0aoqaJJh+AV55MFdwqILl+Ipx0f5ENDNslsmNiNPdSSKUxTiwd6EkaHtYrWKiWzTSB4sIczMSUNAwg3cjL9rkLEuyoi8JhzlweY8hALPDOjvehTLGgZOSUFwpYuwmePO2MiTn6LpjcwoTQI1C7TAtSCJog2/5B+eczwdL+weA3+HZfi4kZ3vsmFly1a8IBy+MkBLIMtX4c7/7K3nmqYRPQVFPg7PfhY4+lZiMmCu3P7lj9fzI/8/emwfZlmVnfb+19j7n3JuZL997NanVgyRaU6sFqBswSBZghWRhkBRtkJgFBoxw2AgDNgbPECHCRDjAYMI4HERASP4DI8IQJqwBISS3kNWNJCOEbTrcxj1UdauHml69IfPee87eey3/sc7NzJf1qru6u8as80VUvcyb597M3HflPnt/+1vfd21lSBamO0bu12i+R5uEJEqbnEajjmBb6Ia4CeXe8WRk7UipUUuiuSA5UpwkAWrUMdqxlUzyRpLE1kIybLkxlUyXICWfF+LQqrHZKdoxx5w71uIUu+EkVUohFIEapuU74vO1C5Zb+E5IxsdEXjnf/76n+fmPPXs2jmeE1oVDnjN11htUmRVfB85LikHgG24O/N6vXjFNjWaJ+uaRjjWVE/T0gHaoaNpBzWQZKHqPniMGcRojK03USWmyJq82OAkZhe29FTff1jPdGmk34567Xt0IT8FxQ3LIbCjpAB+3eO0RThDNSOtBJmptqGZGC68ZBTpVnIo1wbGQ6dPIDKhM7GRFuXdKPkg0iWQyn10YUu0YN4nsldYndHTaUUWsQ7RykDqST+QEnTjf849ArMSG8wEHhg8a7H1R2RW7N75QbT320E3+5B/5g6z7FUkKeKWMTvOe/tqKoz4jVVllwbWPlgUfcZyceryN7EjkLmN1B/mA4yFYhCElbj93i9z1iMXGfLx1QkqJbIVdTZSTu3SHK/Kj10kM0HWMrdHMSJp5ZLjBOiW2HRw9d5tnp5Fyr+BHLUy6Veh3I/XaAbIe0CGRHLabHc+ebmgGa8Lj0rensKtMruyodEcdyQ3peqap0ERnhbNxUifMhLEURIQ6FsqodMcDpUxxYj4v7EPNbVSDUhs/9vMfZ/zkv7hUYHuPNqHUN7Yy6yK++JHrvOebfiWnJyPrnKhT5fTujoPjjq5LTM1ppdGl0K1HymGkRkqCsitoTrg3yqZiKdP3s8rdIp3XcMQbU1N2Y4PqUV8S1g0O1AbWJVSJtMNi9MnCxJ1ZpXChtSti6H32yGEOtzDMU2xexeeo+1Atm4XaLN54pYZHRRzg7KUPZybjzhMf/PxbC6/auv6lVGZBvAe/47e9lS8/HElTpGZ6jXvqyp3SpiAUmtCZ4RrtWaGYCZuHLPPhtgp9DoP2QZVDdaat0cTo1om0ynQ42Z1TT3gLxWBWZWwNNafPyujOalYf43AsytMjbItz80j5t3/wuTPV4KuJq1Zb8PnX1+/81V8U1kPzGxMprNFlE6Ql7MMgZO7TU+a9wCySObtJaBDePiuoRGdlVnBJFKLtef6BwcNPLQ60G9PYuHZ9QJNwcmdHt85xWXWsNToNwmwcaxwuNkdCMoa50EocfLYxBBp5naIDwwwTx4pHUMe8AG3WyCnxj35pw93dS1eYL7a+XvdkFsB7vuXL+E2/LLFeZTxXxGHQSArIEh5BT9/awWQcP5o56udkE8l0NEQnqg9kCidbY73OIEaSHk0bmHpM6twSCGLOtmSGoaFEP2j1TCeNJEZxpbmy9UZnFdU+FvyS6MXZ7IxxK/zRv/Vp1F+thsIH4ypOTEmSP4jCuryXeZCCC6DTxB/99dci+aEFkeUe5ntlJnvMQgWVNAiuCScRG3r1YNaTziqmeYjVoZutEVoJAnQvp29qzPGBDLMBKDL/dAZuwirPP+vcDiPJ5raboO007XNNhKEHRuhU2I2wmWCzCbr/zQ8JbSYydvNrSB8nl0mcbIkPP1P4qz9/+rxRvKjMiuXiRcVbfDyL5oMofoORWfM1MQYzgXVxzhURRDv+7r/zFWQJg3RD8KnCoLGeTUodDWzi9ieUh96WWR9npqlgtxW9Hu1/bYxTnqk06qmwOoz5yhqoJ1wanuD4WNjcjYSnWoNA2EyJbjKyKGMz6EA6mObNWa9wYgYj9AfhYdSIFonSDEqPdRNrUUaLYASzqPnninA9G1MRhq6xysrOYhyurUEUrIUhfVKlbjP//t8Pc9sHGr9fUNKcE89+5cgGePH3xrkDhUzir3/bilMXqIXd6cD6OkwGqU6RZNgrRgaZyNZossbFWFNQ1mAD+IbiEVGf3TkZKqs7MJZrXLs2YddW5AS17VC/RskjbSxcU0PSEdu2o3eh1olWhYzR0zP5hDWjSWPyFpJWJmiJnA23HnMFtigDLkapGSkFH5wqFbNDqjfECxmC5GcH00CyRN8yZT2hrhx10RqtkvjzP1N44vZImafTfTLYRUHuPljo4t/pG43MAvgPftvv5cZbH2J1mNDWyKsV1takLrPuKsmd9WrN7t4JCNyrhSEpfTPk8DqeOqa249rhmuaJ3BI5FbRVLHdINbbFIQ1427HuM6odpsIglZGOOhXuPfcMp5vnyOsVZawcXnuU7nTDTka6fICdTjz35DMc3lzTBqHvhaQVKYKte04a7MbC0DllqpxOE5oyeWoUdw46KNVIfYfVQn36NBbyNw5opSB96F69Nu5WRyRO1UWF7abiBbqjjm2Lg1HwOJFPKTYJ7vzU//U0m4/9wjxhxabj/sNLodTxStUWfGHr+t//7d+AmlPGCTstDMcd4Gjf08YCRLuLSHi70KIFUcRpGtYeOh8YlpORcRR00LiXGrSxkr2RVwpZKdXPSIM2r/FaCzXOOBtg7deEzYRwPwuljFvc15vNRFScl8druc/zTHiAna315/m6WtzjXZzmKR4UOVvnSUqz75bxxAdfvOH7ZVy1df1LTWbFa8If/X1v42ErSHVKKagmhjbRLNq+pBkZo5jRLJTzncq8D2xYEoaUwaEW5frKYGtYMugFGTo6jT1BtUbVFKpAoCMM5d0izZkUh85rEVBlU4Rbo3PzOPM/vP+Ef/ah14ZC76rVFnxh9fVd7340FrUC3ua53gX3OW3cImhJZgP4NBNYEeojs79WfPu9ZxYSiixJae5S8LNEa5lb/7Io7o0sQpeMcesc3ehwYHdSqQlyFypQqiO0CHYxGKcanWLuWLO9pw1Zw4R+Ghuk6NIRFby28PVyJ6dEsQYq/OTHd9wdX1pG4w1FZgE88tAB3/e7voiu71Evc6RvntNJlOyFu0/tuHGjo88NE6VPQvOGqEA1pgb9nCRXipJ6QW2v8lI2zekdpu0p/bWBMoXSIImSdJrTNdN803LcOpIaZgnJ0ZqWJPHjH9zyA//wqZdg5F56XMWJ6UGeWZdxWVl0TtLERPPr3n7M13+Johi9wFQkyKokZ7L0Ogo5e5zANaVLdvYHHxxR9MB3kubkMKERvlaGs5vkzJvKPAwesyudRLx0JYIM3AxKYhiCQMviVJ/VMhItW6GOF4YcPm3FYLcRyghqcZ0LSOc8ckNxN+qojH18f5dQ6/SuqAnf+6O355F5/lA+iBB8gOgBeOMps+Zr5jaH530F5lOZd37Jo/yl73yE3S5Oe8skJDF2LYIuektUGpundxQ95uG3tUgtnEa0DPjBjnFrSA1vvnGKxE01QTWS38RCCXh4bJzcTeTkbCboJ6g4rBxQNpNHipk6pYHOkvvTVqljZlg11BMNo8036SzRCpvV2M2eR1NzIGHWyJ1QirDujK4Pw9NpFz5t1XVu5xUSmSdPdnzfjzwei/gLBJbvi+qCdFI4J7neiMqsuCb+VQnl6F//zkeYbItbZffUmv5IqbolnR7A0Ybqh1hyVAvalKpxutxLwq2RDMyVtmkM15WiHQd0FE6wO5lixnpYkx5qdOmAXTuh2Yqcw79Bm0c6oVa8JVprSHUG6anaoBnFG3VuxfYW+mZIsaIvBaWbiV5nLIU6KT40smUmxkjdFAdbUctEShk9FfqjLdZW+FTpWHF8vMG6gf/ox5zb5WT2qgC7NIYvZgFy1e6Nn6m2/tM/+NvgRND8EAdvfYiDDtKw5iA54hUf77E5XbM+EkoZcevosoSKRaG2xuqwp1jHsM5cOzhkvDtxdHzI3U8XbLqD5Q6AYbdjk3v8xhGdOFa2eG1sTu9CVtJ6xd2nnuG6ZnR9yCeefJrVas3q3gly85Bbn3wKOxJyVjx39KmjlImahUK0I+/bYEXjZJodHN8cMK9sRyB3iDXUJ+q9e7S7jXLjIDYP5ngWijjjVKOlQ4STkykOn9YdilEs7nytRYrwc1vn5977M9BOYSY1AvMkJtBaiXnuitUWfOHr+re/6WF+zS97C8NRFz4yKkxjxZox5LmtpUHbVdaDcbqDfj17Fe0aeZ2wGu2duDFtG10fB4FVYj1m81xgLeLknfA3k7kdsMzp1WFnGl6TzebDub0CmZgv3W02cd+TWr7vEtrvDUPp5z4bv8sZqY6Ev1ZcPicXMquycJ74Ag3fr1p9vRxkFsRm/T//PW8OM+/awJyVl9jbmTO08BeaLHx0kxsrTSC2/8EQE8baOOiVvAHtGmnQ8AxRIVkjibIjuizC3zRaxjYOyWFQyH3YNLgqg8DTdxU9rPy5v3eXuxM8/y726uCq1RZ84fX1ne96FNxorjgahJUFAb5vJtivb/aHIHPewNmCNg559wdqc5cXHv1gQhCos8Bmv8FQjT1qVqdOxrXrKxxjt2mRcq+xH3V3fGdor1gpFIdaoVqkJSpxnYiHdQ2JaVvJQ6SY1TKH72mQY9WMH3nilOllKMk3HJm1x1/7E+9g8AqaSdQzfytxY3d7Q90qh8c9R4fCSCG5MI2Fg6EDjVwRw6gFhi7RHPACphHPu4XhwEBSpHJZZpULY8kR+Y1TrdE8zV3zRtVEa4m/9U+e5cd/4eRFtWO9WriKE1MSva/KLxIt96uxHvzx/vPv/dducKCGtDB5dzdGgrjMIrSt0Pdxitfmkt6bt8dpbkwO2aM1dZBYNBVikqqTkDvQFOTYXtFlcxth1Zhkuv3xnyhDgmwwefgdiUSKjwDNNRKpdnByL/y/th5SVQe6Dg4O5vZEF7Y7SGtjSo5XWHUJ3PhT/+DufXL6i+lLDyKuLrZzXiQF37DKrHnj8vwrz8ksRPjhP/EOptGhCVNt2C5MkGsTspZYRKtw6+PGzS9NpA76g0S7uyUNB/i0Y3N3r4GLVXqSINttf0I838hISts4vTt10FCDiVGrsx2d9SpUUmMTdu4MKwuD3QpJGyKJ5g1cKRPkVWQVhqlkwjwOAarNPf4ouRMGh3TY2I2J1EL12K3hdDRUM0mdv/AjH+fTdzYXB5m9zu+M1JpxlQ264bPX11nAlZ9/vkodf/m73oTV29i9EU8DTsW3A+3ajmbKSnIQ7bVRNRRd4kbKlcxAUYGNkbLhKSE5BTmlCb070W165KijHBja+bwgz0j2iKguW7AVV3jI9AAAIABJREFUWMZ8Q68deAtT92r0IkwYDWVXSrTTekdNDR1n4t+dKspUHdqEJyOhFI3Np9oB6AjWoTohO0HXSh9h0Rwo2G7ge9+3oZQpzJvn+tkP6gv5ZV0Y//MAgitWX5+pth69eYM/9t3fxaA7ds+cwHagP+rJhz3r9RrtO3bP3qKkHh3WrFdHpJzoUmNMjuQ1UxXWqiQfqbVQtzv60bFjJR+/mSyVJIlsp9y5dcJ0+w5duobdfJgmQbBu727g7tOk9Yo7pXDy3D0ee/Nj6L177A4HqJVnnvgk/Y2Mpo7SJgSJtuVOMXWkHyhjI3VCIsUfya7QrQe8FvDYOKaUKVOlloKXCVqPp0LThHUdTotNbDNGc6Y7O/xwiICXFEqeYkZpzq3R+Oc/8RPAxc0G8YE7tU33jfdVqy146db13/1v/BqQFP6RpQYB1RzbFrpDnVtnYFeM3O89qByfnNQLtVYgCCUTnV3Wg6hKKciH5mFcrOLhEecAzmyXSpvNkevsiRV703hj27yhdI2PRWaFuiht9sdqtleRyazOkrNDR/dQYjj7NsN4fG+t9YmPfoTyBfpkXbX6etnILOBtX32D7/l1h5HuW52VN4onnMZQagTfYNQWidFZo520NVA3koZZf1chW6NbCeQ4BMpZEIv08YrQJJQ1PUJSY4xjHDQBGus2I/FwFj5w2/kLP/ws9bXQW3gBV6224KWpr3c8dsBXPrrGUxjx6d5eBD0js9wqKadQZzZI3Zx/7rOg4EIXD0R9NnE6jTU2QDObU9PBmtEP4WNlFYYjRRHKWBldydkivdCMNvqsRg+7pKmEklTqbOEgEsE+KV7dirGdKn2fZuVY7BFUnb/7LzeRYPgy/FW+YcmseEHla9/5CH/sWx+lz4ZYwSbDCxyuEkaDsXBvo6wOE9cOgm1MkXcZPi9SaSVOGlsJQzWyIlgstDThXikuqEFKeW5PiJj70TPbyfgb732G93/g9WPQdxUnpsvKLLnw0Qu1zV3G/jl/5jfepMseccxVcZ0F5x5G7W5O0yChqjg2CZ0GwbRvOezVqUDvoUfYy03dlTIJZGPdg2+V1FlY+2WjCmHMXkIJI01ZDXvj2Xg+EqoaamJzClKDSlodNHIHnqGaMBZh2sHhYSi3UhVaNhhirdfl8IT7O/985Oc/Pl4WxFwiBO8nB3nACL6Ryawz36x4QpB780L1PJBPyJr4O3/gq0lHikthexJzVuqj9bCNSpXKaiU89wlYP5pQjBvHyu0nC1k78kHj9rOV9XHUXhLICkijlRw+bxOREtcbOSem1igWBSrZqadOPoge+p0lKkbXhe+b15gTt3Osr7SInvYMRQH3OBXaSWT3mjCJ0VvGtbFKMvuGJNY0aoIBRbNScO7uKn/uf31iJsUCe0WWEHX+QriKc9eD6utyqyqw707BPU6XG8Jf+T1fxXr6BIwdn77T86Z0yrTaQQ3Da0dphNcRavQcYO5kVSotFEwbJx/M0fQKxTJZYi7pT4V8csC9acvR29dIacCEW4evwTdGs47DbqKps9k5K+3wNjFampNaC80TjYqmAdzRNqGeKdJiM+mOnwrTwQ7LHQejQh4xGwCnp9Hqik5G+t4xUa4n4x89fsT3f+CZs7+xOReBeZ96Ptc/YDwvj3f4SFyt+vpsc9ef/kO/n7VmBhXW2mhiHBBzxJPPbDl87JiRDpHGQXeNQg11pm+Ru6e0zYhIwmqFG8fI8U0ODo8QEYa+R7Ybun6FDR0n2woKXip5yKF60I46jXzy//0E0+Y26eYhR0Vph3Ga3AQGGXjqw49z9JabYBPVKk07yu1TytF6Vm4KfadUIj69k4w0o+0mat+dXSMpDHHdoOsTicbpp7dw1CFdYpoJC0dp1iilMp5U0mFPcaHUwj///25x78O/cD5LzR9cJq8u440yd32++K5vfBe1tDDY7oXURWqXmp351E67Rn+QwwCZuP24OmUXBu7VnbKprA7jmsZ8SGjhZQX7FWGsmaw6rqHE0pm8KmcBPXuFp5yTWoQSS2dllc1fV2bTeQlVmAuhaIZZebU/8NP7FFlmxse+AJ+si7hq9fXykFn7u0Okmf7W97ydd10f6XBag8FrqPVavJ9WI32w+EwoNKfvIoluOnXWnXGwSjScKlBVGRwkBaFZZrneIKHGykloIhQTjjuJkJzc00T50X96yg/9izuvSRnEVasteGnr69vf+fBMTAexJOLgTkoaj82fq8b+Lazy9OIhGlk1FFl+vrtKorgZkhSp0YHm4vTJzvaJ3SqCK1RhuzW6YZ+maNg8T3qJuXBXDPGYdxRmW6X4XrkLFeu4M7w5aQ0qzr2x4yc+vg3Bz8uENzaZtX9d4Hu+68v5tV+aYVdIJNaH4EQKxbiZuHO35y1vcpokCo0BZRzbmc+HpvBhcIRiDXMlSZwo48FaukdEb86CivLxu40/9Tc/jttMnL2OcBUnphdqM7yYJvR8Uutc8n3xmsM+8ye+8Rrg7Ax6DVP37HHlWKHrY9HjFsGre1P2pA6mJPUzX5ZmHt4zOIl5ohmF1MFB2ESwOnDGEYoHmdVqeBEpIBZqLndnaoI3xSan7kKJdTgIw0HDV5AQTq2RTChNOD1JHNxo9CL4acLWNU4XEVYZHr/V+Cs/c+9c+n6mWjsfocsk18Wvx1mj3EdAvBHJLODs5OTCM2fy4fzpIsJXPnqDv/jb38SkjbZLCGHWWF1oFfrOkeTce8rYjonDR4SDtVJPK1YgaY+kQmmFrhNKndMERcjbeLeURklxs6rz4rn5Po5ckBEkNzaucxKUUyWRe2PcKinNajwx2qwQlLnIm8Qpt5T55gw0ndNVatS0CoxVGXKjT0GWZUmICv/FDz/BvW09iyPm0hh9JlzFuWtfXw8isJ537X3PA5eOP/Suh/nI01t+9pP3MJQ//82Pcq27N3ts9VRr8ZeaHEsxtwySw+CWRj0NX5mks7ejZHBFs9DnCs8Zua6ptmK42dBVnGBbU6o3hmqkg0SrRmEkTYd4Mna+Ad+RfcU0zS07UlE6sBHIuGVEjYlGu6NwrYEbmhxqAhK9VNQrXe3o1ple4yDqz75f+eit00iHncfm8p34xS469uP6RiOz/vh3/26yRqBJ8kbPGtvu2NWR/MUPI2ZoFyckwypjGnNa54oCq2GNlQkXY5JMaQVLAwerHimFA2+k4ZhtOWVTVqS1IIyMRahlYrVe88zHniF1O7prR/TPbdgdJrxWWquU3Y7pmVOKFbrDjGkY17oq5e4OPxpmZb2Rui6CeZKSVWjFcEmItZi/ullHb3FXK+ZBXI0j060tfrCmO+jCPkIzBmxLqP056Cmt8v6ffB9iOyDSVmt78Qv8qzx3vVT4N3/D19F1sd6+X+jmtFJp1dAc3lR4RMWLQG2OJrDq1DbLlf2cwPLZc2Y/UzS3SLoXaNXJSWlmmEOpHmSEEc+YUw9FwiOy7h8WiP2lzIpoZtJ8/j57UnQv25sVWrNkA3fn8f/nAy/Z2F21+nq59oz3fQ/gV3zdQ/zWd68YHNSMzmBXo+YSRqtBYE7FOOigTYLXQk5w0OscoGlozkxurAgCc+fhVaqSOFRwhWtJue0NNcH7zEoKT+8yf+5/firUNK9RXLXagpe+vr72i4542/UeFUVzQjzmJMWR2TdNNP78dTaDj3nDUE2xh5x9ssJcfjaDJ9IMk0dXmKQQT7g5tTn9oLTqdB2cnDgHB+HzpzNngXuQWRJJsC4RpKEzwd/czrrbzA13Z7czDtbCLz5Z+ci96X41w8uAhcy6hGvHK/7ke76Ur3mL4TjZE6sE9063bO9mbjzc0aXGZioc5gyE/9HWFfGIy1WvmFTcE2bBTNq8af/JD5zwt3/6OU425X7JxesMV3FierAy64UUWPe3xV0mbgDe/vCa3/V1A7VB6qAZDB7kwFiUoTeqGDtzrqFxAoewUqfYvNCZX8ssDADTnGqzT2NNozP0iieP6FOVOLluYTJvHhNYcmFTndIU20JmVoEl4figsV6Bp5Azu0FVp01x/ek95dpDkYjhW6GtjArkDGMT/st/cAfm3/x8HDh77PK4Pejxy+P6RiazHmT+Dudkzf7zf/ebv4Tf+BVrmBpGR5cruxJvYDckptoQhJNPV1SUdK3n+mEJU8atQE20wxGb4nu26hx6R8WRruCu1CbRw58itcmBgsxpOnHq0wgCoOBsinKw8vBSqkaXPE66m2BZyShJg4AqLUhcdUc6ZTs5KTnJBNFGUqHslNUaxENJk1xIWfgP/96HaKGC+Zzfi6s4d30u98bLZFbvoUZqMqdMEvPQN37ZEd/9zoZq+Jq5J1ISts1BKmsGRoyUO2xbsL6SpSfaSBuahDS/dj8ZVMU2FSmH+KrRP5rxUhBLyDFUJjrrsHGiS0pxp1qkgg1AqxUjMbZC1jXYPdzWOAXUkJY52VS6VQY1lEpT6NohrhsOZUXbGMPNkY/fvc5/876nOR0bIhEVDdEOUi8M0H5zedYGdj7eUZMXxtPPnnO16uuz1daf+p3fiamEh99zd+iOVwx5Rddn6qqLOUIUQ+m6DnNlfbSmjhPX57TmQY3JEi0lJjdqnTheH2GlwNBh9OS25bRA80bqenLXcXLnHrc/8iQHjyQOrj9MNuHOnVt0hwOtjIgb42bk9kc/xcGjx2gK30jTODwpd3bI9TW12UzsBgnSrTpsbFjXkTFMlUyoZGyfCDVvGqobtRhiFU4LZVghnTA2MDcmV8btyP/9oWc5+fj/OW8gwpz8c8VVqy14edb1X/amh3jXV39JtOvoXjEJ427CXFitEtYaWRRxi7mmOH2faC2Mu80i1TlIpyAeW4tEXT/bRM6v34zqMnteebQ8z0Jrn+eKdnbqEuqsPWllMQiRAHZ2IBr/iexrbn6uzCotj/p99rmRk0996CUbt6tWX6/EnnGPb/nWt/PNb92BC32D0R3M6MzYmTCVSq8JKY1WYHUQbcc0xyV8kgxQV1IyEKPSz6pgOCTaX7us7NxI5mjO/OUfv81HPz3yWvHGeiFctdqCl6++fstXPYQnJamGMssrSnhPxT7ASPvuDdEwipcgtKixP9uHh7hDnvcM4uCzXYxoKKvEBc+OtIRqZXOvsT7Ks5+y06og3mgOtTpTqaT9BpR9eEXUaBYN79OkeGn8g49vY734CmAhsz7zd0REeMtja778bUd809cccKNXvvhGR+oTfXZqSxhObsZJi5O6D36i8IuP3+EXP3iH2/eix/75572vb1zFiUlF95Z6wDnh8kKE8v2qLM6ec/nx//hbrkerjIfqSmvmZHS0h2yOZiN5TCo7gSN1dk3w5HT7V7VYyCSZzeY9ZKiDCJ3B6U7pDyuQSBhZwsR2bFCa0jZAc7IKx0fO4coZBao7GaXvoiWsOiSDMnvjnNwTcjJWayjbhGUn9eFF8Zfed8ozp3X+Cc+JqL3K6kGtmBfH8n7z/PsJrjcqmRXNBDF+ujc62svaLr2CiPCVj93gv/6Ot7JtherhydBpQ/tMabCZGh2Zze1CprE67jnIhCqmGulUqBVEnXvuHBwEaWEYyWOD6s2ZnLm12oJobQlL4CnM4yUJ96YIyZhckKp0Oa5VQsVXk2EIOWnIB9PcNNHC4NsUBtXwGoFoq/VQgTnGX/upT/BLt8cv+L24inPX53tvFDg3hj8//AeCBEfge7/+rfzyR55mZxFFMVm0nYobTXOcAI5K6y0oefMw5JZoObOqdDXjVlkfD2jtKLcqeKEN1xiOR7b0oThdCQcpHCnrWBEpjFMmd06aIimn+UQrGWkJtDA5JMmIF+ppQ1dOzvHbmRnJC10aOCyFO+mI7/upDc9sd9h8lmSz0MHsfCyAMwPWi/+ezV0z4Xy/8mP/vKtVXy+mtv7Yd76Heu8UP1zHIjsLSAdZ0byi10oxJaUukny7FX2Xzlq0VlmCKF11tBJq5ZZ70vaEVV4xdMo0nZLyCs3KZuc8+aFPsropXHv4Yepu4ujhx8jbOzz1xCcpN9+EjM/h7nQp8fTjn2J1fYWrIuqxixSh3hthSLT9H4IqqhlvLUgnwFXBwauhfZ69kYLIbLUy9AO1FjR1gGHN2Dx7j0KQee//yZ+ilFNeimPpq1Zb8PKu67/jG3/lWTtMUo25S2AsTtfN9zczfG4ZEzhrWa7bhgwRAGWzKqvOk4bPLT+2D9ohAlfD6F0xa2em3IrPBs/7tVvMObElnY3eLxyKNtezSdiItm3ba/8lDhpGc5758IeZppc2qe6q1dcrvWdUhG6V+K9+39uYWp1DUoy7m0aWhE2FroOclcEdw8gu1PDoppcWlag6d/dAwxAR+gSTJ/qcePxO4a/90DOUYi94MPxaw1WrLXh56+vdbz7izddWiAqqIU5wQJuFnQOCa7QWyrx4SapBxDefFVznuyyz2BeaxNpOekcmn+95AuKoN3Zbo+sSOYdnVytGaxVDmYqDtVkVxpmxfBMLoqyBZOVj9xq/8OnTV7QyFzLrc/sB4qTnbJMeN8CLtMbLqqN7DeEqTkx7MuviO3iRmHq+8uiFbyOXSZv/5Fuu0zxa+nBnGpXUxaI9pdBk9S6MRItgpMpBSszG8LGw3qeZuBs9SvZIv+wFdpOSByOp4A2mpkwbwrBZYdU5124KqyRYMjYmyNRIOYU3lzonRejEqC08j27dEq5fi1YLNko5NLSBdI0/86N3LxB5+xNFv/S7n8vyzz+6bJr//L+aNyqZBRdaDeeBCXHIflfN2WDtFVo/9Ee+im1JFAzE2UzGalDM59PlBt4amhO3Pmk8/OaBw26LWcJF2TxXkT5msrSu1DGhHqTTVBoZpzY4NaczobjFaY1GQUeqpbA1mCqxSZyETo02syOFRpcTzcDUUZ8X+QjSnC7P8mSJUyP3OKn+Gz/3S3z02WXB/tnwubQZPu+587+q54RM4iJxAzcl8e/9pkd5a3eKeUFswNWYLPwX2gnkozUlbUkVEIuWHM+ITGQysjXSAbj0qECmcnLLGNIBepjx1QnJ1jDslU+NVkeaHVI5ZbBDSBvUYGoJ1LFa8KZol9BWaVuhOzDUG6o9bomUJ1yO+Jv/+11+9rkta3MK8+ZzNm6+jPuIK17447Pr73vu1aqvFzN3fc+3/+ucbmF1vCKJ0CWlTRVWHX1OFAlVpopzOITaYDLQPiOS6UTRbGzJNBS1QrKObt2xzsK92xv04ACVhNXCc790i/UjA8c3bkYr4bbQHR9Qpy3ldKR++hnsWJkqJM889+xzDAdBpBmRFtcNiXZ3Q+0HZEjRRiag2lFKDX+RFPOoaNx5w4B7Jiz20/Hswl0tVKhqxu1p5Bd+7nHK7X/5kr4XV6224OVf13/b138tSBgQ28xMT7tKynLpKG1vzRCE1jQ1+k4RD8WUwWzqHs9qFqqEJFCdMHiXULa7QJlfK+ZBZqWXzqmG53OM+7ka22VOKJQ5+RBC+QUz4QV3t5V7H3+cqby090W4evX1yu4ZL6xxRXnnux/hO37NNW6MIyebhruy6sASrMxJtPlQ2s52kx0OruxU6TSsHrwpdFBd+FTt+Ks/+LFZIPH6wlWrLXhl6uvbv+phSHOqKtEeuPfSRSIYSkVQhDqrscJ3bz64maHNo205XD3ICnUyhlXGzXE3kjjTGPNbN4TNjc17wTo1iscuLyG02iIBWBwzY7RGJvMjH7l31lH0SmIhsxZ8XriKE1OS5BdbBy/ihTYxXLrqQal9AO/60mv8li/PIR/2MFbvI9s0zLbnlkCb/bCS+tkmK1mw8uKx0OlmaXonzCqoWBiNO2U7Omqh2JJZknp4YAwHMQGmPjN1cfrjaoyjMohE+0VJtFTDEFBCxXXndqI/MHSTkEOjIuSu8ad/6C5wUb12UWV1/+hdfuxB6rfLr9G8Xan6+rzIrAe+EPeRWe7O0Wrgf/q33kb1THNl2tUzT6KyC8Pi7M7te3A4VO48Dfl4zUPXRnBodw19zJlOhZQSpRSSRGXVGtHjnQp3J5vTSWDcJNZDi5tjivaKyaLt1MTom1JEwFr4BjZHh4hIN6K2uxReINkkIq5d0Gz8jz/3FB/89MsXhnEV564Xqq8XIrfOlEWzEus8YCD+3X+uc0SzxjqI4SDzF3/TMV4nslaaDWFyOzotZzqFpucneaqCWWGtA9RttMukDBgiA5Ud9aMrVjcPoTvBVx15FW2mkMg5s6uF1ozclGREm6pWSpVoCzNhxfx5mxjWa8J2cMdaGo+PX8af/fF/ibjFpnK/ibykurr4u+9TwuDFkVl7xOb0atXXi5m7vuXdv5pHv/gxNEXikrbwEZ1E6PuMqNC7kXLGUVa9squxUe9yh2imWYPcgxtaI0W3H3ratKNKtD+3bWW8dZfhoTXD0RHNlFQK1ucgV8dCqxXZ7DBtbCdD3Lnz7Amr42GeZ4KMSp2SxonW95gSUtAUZJm1+aBS5tPpxtnZpeGknIFGa0ptRnXDRJjKxD/+sX/4sr0XV6224JVZ13/Lr/0asqa99Jk6Rft0HBLZGQml1kAT7k6pNmu1/Ex56bP3o5ud+WeZxSrGXACjucxkV9QExHP3hu9x7bzeEWZVGGe+WCLhKcmsjA2LrCC2SnOe/NCHXhYiK37Oq1Vfr9ae8fw+oRzf6PnD3/4mrq8q/ZSoVA7FIvyphYdRkwqeIu1chGwxf7oIHz3t+NFfuMOHP3LnMwbbvNZx1WoLXrn6es/XPhJJqfuUy6RgNVTE7rga+SyNPBY5DvP6K+5jKYXHlUjYg5CMsrNoubbZS0ucaWpBvPeK2H79GD6CbnsN6z5BMQ4IahPEjB9+4nSex155LGTWgs8LV3FiCmXW80mWPR6k2uLSY+dfe76x+Zc+fMAfePeAm7OxeP5Rjs1/nk/6XJxJnByZ49FKCCQUnSNN3SMOdZpCATNNM40mIRXN4hz1yvqggmS67FTCHFyGOF3UHK/TRoEEGaOaMmFkT6g0pilhd4VVb9igoM7tavyFn7h7NkIPUlmdk3oXzeDPy+Wyx9jFUdtf/4ZWZl1MNeRc83n54z0hoap80fU1//3v+DKSOaU1TBOTOJtbcHit4QrlFCQ3nMrJ04B1DDcSfWvosZBzo+xCFo+DRmgrmoxpFIqHCqEZtMno+oS3hokgSdkVj+9bjSwWMnmF4honP5oQn2gStSRz332H8p/98IdfopH+7LiKc9dFZRZ+gTh+UKLhBQ82ue/x+0md/efpAkmfPJPE+OZ33OTbvrqSqVRTrI5Y65E+I1Jp89FcKBFGsh/S5BSZEjkpVSw80FKm1RF7KuM3Ev0afAItA+nY0PUKGxu1TlhXyLaiqwbNSeKgJVLJpCO5Y1KQFKeVHzt5mP/u/c+w2Z5iBmX+s6pxhvAZyaznj++Fx+X+a2T+nyD7xeSVqq8XO3f99t/8rTTXIK7mETDNaAJxYZ3Ac0ZSntXHguaEpxy+RU3QJAxJ6VXoup7pZEvtEjl1TPe23H32DtfedMz68AhyYrp7l67raOJsxxFXoVNh99RdxlUiWcP7gc0vPUNZrVkfhHuu4nHKvGtwkGhzYrCrYA26LGCK50jCm21KsNkjyTThzSKtsFZ++r0/xbh7eQiGi7hqtQWv3Lr+ix++wS//ijeHOqs5TWNm0zkREPzCPOCU6pTJyF0ENoHPc02El3hcxlQc6WKeNYukMXenzdYQ+9lzvx6sDhDX7b9qJETiukaaSTOZX0tA4WR07j7xYcaXuLXwIq5afb029ox7QlS4dtzzVV95k6//imOu9YWHpFKzk8w5dUUNPlWVD35kxz/5xWeZpnbphhRUQmL2XXsd4arVFryy9fVt77iBzG3JXc6xhjaYjdYuVEP0rKr43KIcNjUiQkoxB8lMmo+7wuowo7WSUsIRSnGmqdCvMt787NCztVkb6mEu7zJPYWa89xMjt3avhh7rHAuZteDzwlWcmB6UZvh8QuaiwuhBCq4XbkfcP/avvO2Y3/Dm8FpzV7I4/QGkHElg6k4hjJiLQ5mc0ZxpEkoxnroDJ9WYasRF3y3GaWm05mxKMOVhyidn6oLweWC+Md7/O9nZz7v/KS/TJ9z3+P3G95dJqvu1Cy88dpdprPtTENsbmczaj+me05r/d0a07m8i568d/ybh+3/v23n4IHFSw/uqmdHRqCVRmmHiJFWaN0o16sbZjEI6zHzRY0o9qUw1PEGyC7WFlLhMThGntURxZyXQZFYLIog07rVoEWzF0c7nU0ZlU52UlWxQvfLBZ3b87f/j0y/NwH4euIpz18X6et4vd4l82V+zVx+dkzFRanqB3BG79KR5aug8YuirCN/w1gPe8zWZQ9+R1n2o/WSEuiJJoTUwejQXaB2tCkW35DzgCtpGLA3IvQTPZfyLwm9Nug2cDqScYN1hFKpNHGcoY8daDdNuv5ajaeXnPrXiB//ZLe7VCfF6NsfEPBgbzjC6D7T5952Df0LR9YDxTZyHcezHDs5bhVT2qqyrV18vdu761m/6JrJGKi8iNEn0XSbNvkFdUrwj/PGQs8RAcyUrSEoArFcrsiibu3fo1utQHD/9LDfedpMsPZIb210li2MpgRl1GpEUXn/jsxtkndAhM5ZQ24gIm1snVM8MRxkVaDitNMgd0gfhjgVZlboObzXaLDzSxqg1vNyq84/f+5OU8vLFjL8QrlptwSu/rv+mX/vOs01aTqE8bi4kn42TIdrfzaP1vRHzo8YqxZB5Po32+6QRchEJlxpKr3liqC6o+uyD5eChntBZCXifAfz81rY53Te+G5wU484THz3z5nq5VFlw9errtbpnjFvpxaPfy2viyyvk1z+uWm3Bq1Nf3/E1N3FmddWcprrvbJAEXkByzD/icQCTU6KJh02NC10Or79x2xjWHWm+b1drTMVoJZRZitHM5wOgeL1KeHK5wo996JRpVn7hr24AwUJmLfi8cBUnpgelGb6Q6irw4q0XL7fh7R/1593SHqRiujjU9yui5OxnBPxcAAAgAElEQVTZnCnAPpvqSR9Awr3Q939wg80LE1GXP38Q4Xf/eDz/9eCNrcyC85YEZrLBLw7UJTLr7DkiIMr/8oe/mtFaSNhT5IC7x6JYFIYeyhjKnM0EPhmbjZNTz8PXK2TYVcMqeA+DC9PkNFMmd6ZqqGqor1Dcw0A3KZRqTFXJHVittNThZjx+Z8cP/OynvtBhfElwFeeuy2SWzEUTaTfnLXMXrzn74JI66bJfFPvXI+pOOCeDANBILdSc+eO//hHeev0eR0Q6nViNeHpVslbMeupktLQiCcCOIiuybhlsRdkV5GRFXiXKcWFIUH1LtzugO4SaHG1KzhPJGi0Z43TI3/+A8iMffQZqC38Hg+TMm0Sfo8/nH9djY2p23srtfv47nV03e2rBuTvm/vU+E65afb3Yuev68THv/rpfFYayRJT4kJkjxaFLERQR5saxGO97xV1ps0Jm0ESXhLpraN9x8uRtuqNEf/14TmwCqxZEZeqYLFojWq3kJEy3TvFVh+cOLzsaSp8NTFEXts+dMpkyHGYQaFNB1isshX/lflNZ2tz6bGHAbAanJ3f4+fe9/+Ud7M+Cq1Zb8Oqs63/Dr37HvA6aD9ks0sHMI8QJEVoDVZ/9rjy8SAkSVJGIpC/hRWk+36PNZ1KLIMHUUU3U2e/ybLU3z88msdoKb0md1TbCfmIeDZ758IfOyLOpfOEBKJ8JV62+Xh97xrO7y5XGVastePXq69u/6iEQp+EkT6Qce6raLNRbYrEfMMdVSCjuFVclefgqqwhlauReSXEIF35+ZpQJcgd5nvPMwdRwBsrY+MeP3+a0xcz1WsFCZi34vHAVJ6aLBvCfSXX1QrisLno+XfTCnlqX6aPL+qj9VRdf//7v8nzV2PnrOfeTR/df+8K/z/NJq8uv99lwkbx7IWLwQf5kb2RlFpyrs/aphhdbnATA71donXsgCV/7lpt837c9ApKYmlGK4FQosJ0SuW9UQL0xTpCzUHcg5kzbROszR8cFtcquAgalKl2GXXPqBN5BkjmcgGg9VKK1opjT58Rf/9lP8OFnty/J+L2UuIpz12Uy64F/a3vCar7ozCfrAdc8iMxy4v0WzgSewLnBca/7TVrPYXZ+1Zuv8dt/xcCgd1CpTJqRKnhVaA3rJ7KukGqUlMgIHYkmJ7Qn19g6ka81OiVS8cZGJwe06wNPjiu+/6d/iQ8/O1JaLNRkJh8gzN1lv6nc/777399f3iXYVauvz2XuOnzbr+LtX3zI9V7IqpjMCiwRclY8pbCikjCD71K0JaJp9vSARKWJcvrkCatHDulXazzFvWLalbBck46cnFIrZs7UIG0mdCWQE2aNupnQXsmiJMm4GF4Kp7dHfDXE6XU1vEuYKNai999miV0QZ5Wffu//Nrehvfq4arUFr966/l991zsQcZCEup/NH0082uLntYnbPK9oJBKeKTEdSjE0771qQpxg1dE+btSthRJRQq4YcVEStHnMS7NaS+Ysxfle7w5PPntKe+5TZ3PxS51c+CBctfpa9oyvHVy12oJXt75++WNr3na9AzImjeQpgnPEAMXMZsGUoGJIUrSB69x+2GIuG7Ii1mjM6lB3phq+zXnu4oCEaOVfPGV86Nbm1fqVPyMWMmvB54WrODFdVGZdJqZ4IOlyTgq9WFHwC3ly3f9aDxpav+9nkAv/3z9vr7g6f437SaRL4p6zR5/veXWZUHuQmux+QuyiN9j+97n/Z/3cRNNvdGXWvnUQ5vXu2SDORKKcf3z5eYLwphtr/tvf/RakCaUKpcwS4rtKf71iZY4ab4Z5ggmGQ9htIs2wFEXXmfXBNpiBZvMiPwgy1Vh0N4Sw844F/w/80yf5wJOvzZvdHldx7rqPzPos6qHLf+N7oupB5NbZA7NqSyU2bBdJroRSxCJ9dVYzdbMSyoDsykNr5R0PrfmGdx5wI2duDBsGqWjK+DSChImpWCanBsm4ezexuXvIk5uBJ+qO9z1xi2c2UDTSXH02J311nRqej6tWX5/L3NV1QxRTd4Nrb/1SvvKxFZ2GH1CXlKqRuqQiqCa6rJgk+iS00uiGAWbPq4OHVmiXo32wNVyU6pHCJEDb94YCglKniTxkrITPjJeKpiDU3Gf/yuZglZNNZTjMVJMwf5+VL+aO1cbPvPcnP6sC79XAVasteHXX9d/47ndECdn+kFHmxMLZH429wXvUmhMnSBHUE8osUgKMOs1epAJ7U3fx8NkiRUuhqlBtf38P8gqBOvtrITF/fvKjn4K2ie/r8rK2Fl7EVauvZc/42sFVqy14bdTXb/7y62GdYOBJyYQHoGqcLpqFVYg6kQBtRsqOFUdTYshz8nkzqic0Qy3A6MjgjNrz848/w91JOXdqe7E73lcOrysya8GCBQsWLFiwYMGCBQsWLFiwYMGCFwP97JcsWLBgwYIFCxYsWLBgwYIFCxYsWPDawEJmLViwYMGCBQsWLFiwYMGCBQsWLHjdYCGzFixYsGDBggULFixYsGDBggULFrxusJBZCxYsWLBgwYIFCxYsWLBgwYIFC143WMisBQsWLFiwYMGCBQsWLFiwYMGCBa8bLGTWggULFixYsGDBggULFixYsGDBgtcNFjJrwYIFCxYsWLBgwYIFCxYsWLBgwesGC5m1YMGCBQsWLFiwYMGCBQsWLFiw4HWDhcxasGDBggULFixYsGDBggULFixY8LrBQmYtWLBgwYIFCxYsWLBgwf/P3rsHW7Zd9XnfGHOutfc+3X37vqSL3ipAAoQjAU4oOxiCeQbKNjGpGNs4TjAGQgrjAIEQJw6YFDZQjl8EcGKgFGGZhATjMgZkXJg4gEGULEC8hMBGD9Dz6t5+nbP3WnOOMfLHXPuc001fqa/Up6/6ML8q6fbZZ+111ll7nDnH+s3fGLPT6XQ69w1dzOp0Op1Op9PpdDqdTqfT6dw3dDGr0+l0Op1Op9PpdDqdTqdz39DFrE6n0+l0Op1Op9PpdDqdzn1DF7M6nU6n0+l0Op1Op9PpdDr3DV3M6nQ6nU6n0+l0Op1Op9Pp3Dd0MavT6XQ6nU6n0+l0Op1Op3Pf0MWsTqfT6XQ6nU6n0+l0Op3OfUMXszqdTqfT6XQ6nU6n0+l0OvcNXczqdDqdTqfT6XQ6nU6n0+ncN3Qxq9PpdDqdTqfT6XQ6nU6nc9/QxaxOp9PpdDqdTqfT6XQ6nc59QxezOp1Op9PpdDqdTqfT6XQ69w1dzOp0Op1Op9PpdDqdTqfT6dw3dDGr0+l0Op1Op9PpdDqdTqdz39DFrE6n0+l0Op1Op9PpdDqdzn1DF7M6nU6n0+l0Op1Op9PpdDr3DV3M6nQ6nU6n0+l0Op1Op9Pp3Dd0MavT6XQ6nU6n0+l0Op1Op3Pf0MWsp4GIPCwiPyQihyLyFhH5s09xnIjIt4rIe5f/fauIyL2+3s79Q4+tzlnS46tzVojISkS+Z4mr6yLyiyLyOe/j+K8SkXeKyDUR+V4RWd3L6+3cX/Sxq3NW9LGrc5b0satzVvSx62a6mPX0+A5gBh4DvhD4LhH52Nsc96XAfwK8Ang58MeBL7tXF9m5L+mx1TlLenx1zooMvA34j4DLwP8I/ICIvPjWA0Xks4GvBz4deBHw4cBfu1cX2rkv6WNX56zoY1fnLOljV+es6GPXKSQinulruC8QkQvAk8AfiIg3La99H/C7EfH1txz7r4FXRsT/vnz9xcCXRMQfuseX3bkP6LHVOUt6fHXuNSLyBuCvRcQP3vL6PwLeHBF/Zfn604FXR8SHPQOX2fkQp49dnXtNH7s6d4M+dnXuNb+fx67uzLpzXgrU/aC08EvA7VT2j12+9/6O63Sgx1bnbOnx1blniMhjtJj71dt8+3bx9ZiIPHIvrq1z39HHrs49o49dnbtIH7s694zf72NXF7PunIvAtVteuwpceopjr95y3MVeA915Cnpsdc6SHl+de4KIDMCrgf8jIt54m0NuF19w+1jsdPrY1bkn9LGrc5fpY1fnntDHri5mPR1uAA/c8toDwPU7OPYB4Eb0ms7O7emx1TlLenx1zhwRUeD7aD1CvuIpDrtdfMHtY7HT6WNX58zpY1fnDOhjV+fM6WNXo4tZd86bgCwiLzn12iu4vaXvV5fvvb/jOh3osdU5W3p8dc6UZQX5e2iNbv/TiChPcejt4utdEfHeM77Ezv1JH7s6Z0ofuzpnRB+7OmdKH7tO6GLWHRIRh8A/Br5JRC6IyCcBn0dTRG/lVcBXi8jzROS5wNcAr7xnF9u5r+ix1TlLenx17gHfBXwM8McjYvs+jnsV8MUi8jIReZC2A88r78H1de5D+tjVuQf0satz1+ljV+ce0MeuhS5mPT3+a2ADvBv4fuDLI+JXReSTReTGqeP+N+CHgV8GfgX4keW1Tuep6LHVOUt6fHXOBBF5EW0b8Y8D3ikiN5b/faGIvHD59wsBIuI1wLcBPwm8FXgL8A3P1LV37gv62NU5E/rY1Tlj+tjVORP62HUz0ktyO51Op9PpdDqdTqfT6XQ69wvdmdXpdDqdTqfT6XQ6nU6n07lv6GJWp9PpdDqdTqfT6XQ6nU7nvqGLWZ1Op9PpdDqdTqfT6XQ6nfuGLmZ1Op1Op9PpdDqdTqfT6XTuG/IzfQEAIvI+u9CLyE1fv7+m9aeP3x8rIhCBIEDAqVMG7UYESuBICAPtfa4JRXhsgM99+Qv5iBdknn15zaMfplwYdsyeUWBE8QEyid0uc2VrPHkl8du/e8iv/9aT/Phb38l1+9Bvth8R8v6Pur94f/F1FqgmIhxR5QUXEn/mDz/ACy88TooER1AvOKNkXBN4JYWi4eRFX3aCIBEOYRVNI+4TTuCR8UgkKWhSqleqrHE3JClWM64Vl5khjUQ4EeDFYRTMM6jwK1dW/PAbDnnyieme3ZfzFl/3IrZWqtTw45UHj2W8UhgQ1IMibWViCMETZBUknEdR/s9vfgnFd1itUGdwIUIJEYopOl/FM2gkLAydR8KEa9sDfvm3j/iRN1zjNx43PIIqCmFUYBbIIhQPVAXzZ3Z8O2+xBR94fO3nQIk2lhy/DgiCEyhCEMdfnz5mOQkEyzHtnB7tfb5/DSGWKTWI43mW9tLJXBwBIki017n1PbS5Wpefvj9DwPHPe6Y5b/H1dGNrvb64fObHJ+Cmf4ogCB/2p76G/+UvvhQNIdzYTsZcJswgWWG+foRnI8w5nAPbbaEapc7M28JsM1Yr2QOtlXe/d8eFg8DnioQzzRMZsDpTdo5hSA2iGlWcKEYWSGEUd7wG//Tn3siTN97XzuXPLOcttuDe5137oScBJhlJ8NzNmj/70iBjMARjLpgmBkuEJy5K4NcOqBePwCs6AAE5BznBNgY0VxTHBIYUhGZkZ3B9QB9IHLEjCLLAJis5K+yMq/Uh/u7P3+C985axClsNNMCijYv3cvOt8xZfz0RO37k95y22AIZhbCLBkrcs2QzP+ohns5ZAw5FQIDB3wgOJlh8lcdKiNGiAESd5mAWrJG2MAkpx8ECSklMwiIAENgcmsBmVarGcV5i9nXtMwWZQDudAI3DAEVRgOSUigdNyrnEQ3APzNn9bDTQtYxHt2g3wONFGwm/OHS2OUzuIljv6/v5EtGwyBJf2u1vskz0I5Pjc4S3nNHcOC3iZYZ+LHuePJyFV6nRH8fUhsZvhnYhZt17n/rWnmhROf78R3HpH2sTXAiCI9jQYiY3DYxeFb/wzr+CRh7YM6RqWCuVIsFVBayGRqeFghqaEi5JlZIggSaakSpCRpGhakwWyX2SaL/KTr3sn3/uvfpNrVZnFmf2DuHl3mfM4MN3LiS+hmDgiic/46It89kfD2g9RDVQCDYFZSSWQleHDABLkGBGfUQ8igWMgCYmB2YLsFZOEywyeichoTKCKR8KoRF7ECU1ETcgwIWTMnFBQV1RHJtlRAsQzKsEvPbHm1T/9xD25P+ctvs46tjKgbX7DAATyMlTpftIBUBhcWanw4Y8c8HX/2fN53mOQ5ivMIlSbcIfwGfWJIGMBNXaIQZ0SebQ2pjloSJuMaCL/BXGG4SGeOMx8x48d8QtvP+RxVVbuOEKNwJd56JmaUc5bbMEHIWYdC1XcJDrs58pj0UhOXt+LW3vRaS9Y7QWlfYoRnAhcLEkbnCQ+p8Wpm8SsY6Fq+VknOeJJ0hinf8r+J7Tr3N+JZ0rYOm/x9XRja7O+ePq9xx/TPsZEhJd/49/hGz/lMpMVvBriQdnu2IZhxcEqR4dbhMCsUKpTtxPFDKmVqczYXJjmmbXC9cdvUMfMGDOpGttqeNmfu+LmqBvsKjsUpYK3B4pa24NGNajQRHecf/7aN3L1cHdX7+UHy3mLLTiJL1XF/WyTXFWQ5ee8YLPhM150meeNV2FIuFSiKVysDxzZrUhTYBqsi1I24LtgUCEOJlIWNIwxO1UT5qBqzJFZqTHYiF8Du2yUlWE1tYXEcDZpzdockaDmEZdMnis/+441r3nzVd47zYivcKbj0S24swX6D+ZZ7bzFVxezPnQ4b7EFMOTViWAQgATpwUd47rNSS1WiCVUSjkcTcRTHTUjii/4VDLS/25YXO15hlYVEMNegGIxLMp+k2WnMwKUJUAMwOwgOori33OnC0MJ/Z6AExYUQQQmqL6KUChaQpI2PbkFWcG/ClqZF9FpWF2d3mt+mZXxEW0wkghDwECSCkEW4A9z3mp+c5HVADX5PDnmsg8XJeBcO146amHX7J4eg1Pn8iFlP4zy3Eb1uzpX3r0W0h8KWKAtZg8972XP485/+GAer91IkKBaEbTF3nBuwC2oCCUFcSAlqWFNbQ7EBkEzSjIQSFPIgQCKPDzQXDo6mgZxXXPYX8su/+SSv+hf/jp99/AoRClQsNXU1Au61znUeB6Z7OvEl4aMvDfz5T7nIxbhCVgcRVBQVZ0CQDOVqwEVFqpN1TdHCug1LYJlQI1jjtTZHhLRBcg4jGKh1YtU0dUISBBSBKrQRaj5A1lt8GYgJwfMa6hGhgge4JBBwRjyC61PiW15z5Uxvz3mLr7OMLYGWYEc04crbxASCRpBFqEmIgC/5pBfw+Z/2Ii7ntzGFEGXCy45CYL4jDIpN5AiyK6VWXATzphJEhaiBpjbRhmVMjJph5U2wyCkRrhRGdDej4wH/4ledv/+z1ziUkcyMEdRnSNA6b7EFH1h8nQhZJ4LDPtHwU6tf+xPL4sDi1HuOh41FVDp9Y/cS5/7V06KULP89dkSfvhY4/vexO4tF9Np7pm8RrfbXJre+d3n7vRS2zlt8PZ3YulnIApBFqNzHjPBRX/2t/PU/9mzcClaDWgsSwdGNLa5Q3Rls5nBXKGXG3dlOBUrFy4yXQjFn3k4Uq/jRxOG1wnoFooaasbMmZmVzajXcjbg2kQ4SsxmbBNPsiAejBlcnY5oDSTCMEAZWDAkBcX74tb/BtaN750x+Ks5bbMFTx9fdciWdLFgDqlxM8Mc+8iLPH1suJZGRtVGrNYGKQNMMeSTNOy4cXqZmo6xLC4w8INvMsDFsmFFNrLNTXCAVFNqi9ZUV5IpvAk/OHMroQtWCbDdkD1YXKxUlppmIkbophK143dsu8E/e9DjuQl0c8/diBDtv8XV/iVmJ1aXn86xnP8xznvMw4+YiROUtv/Vmrl99nOtXr+D+zI9BHyjnLbagiVkhe6lZEEk89yWPoIsQI9EcUbLkJtWbEKXBohC113NLvqhLDu81WCmU6oQLmoVRmwC1qNqICikJqkHy5rqKRTBSCVJARlBtCzQA8/LXIItmYBFYtEtJAqLNtNMcVJw4ppakK6JdQ13ywmMH/ZJ1xXK+k+VFXwSs5thqIpazv2O+zx0DEFm+9iUXPVksBbh2WJuq9XtoP7ueJ2fWLcc+5UR4ekX45Ot9icTixIqmeirtQ37uasVXfu4LeMVLlDkO2RVH6xG1zqSYKe6EKJgzFKUAhqGR8dnwDJUgO6TcgiMlbcqtwJCbWKZDQhiIDMqaGIz18ABpXpM2gsRzefVr3sIPvP7N7NxxtDkjdLEQBiQRxIOzHPbO48B05hOfJnBjTMLXf+YjPBpXEA98BTkbSRQ3ZUyBYCiZWiEN4FLJNQNO1kRQ2KmSrMnpIkANQoQhnFmC0BWTF4ZwxDOON+dOKEUNZSC2CVsHs8ysVDESEIhvkHzEbIKoEhiiFyg+oXGA6HX+ux86u1Xr8xZfZxlbKwVfBKyQ5tISB1c4IPFwGvi6z/8oPu4VN6izEHGdcG8PhlaJuqO6Ym6EK6lUYoAoAn4y2bkIlGj2hQHEgASmrYwQCdQFTaAiRAWbQUelTpV8IfGOKxf57n91xM8/4Ug1fDnlveS8xRY8/fjSU6LRTQ6rU+V/N0tTp0QiOda9ufWnnhakbnr9lmNPyhe56einEq9On2Mvr+3LHk9f8/6qjyW4Uy6uE1nubDlv8fV0xazjX16OpcdjR9YL/8I38O1/7sUtSQ+neIVSCatcPTKGVHAPpqMt5sauGFjFSsWmiblWZFcIcY52E16dK++4waWHB8q2kHYTHpVigYjhXsGgXNmRNooRhBtDBLvZGVNbLb82VWYPNhkQJWorl6ZClUAkmGYnxHnnE9f52V9721nc6vfLeYsteN9iFrx/N9Kt7zl9fBLBVBnNqMPAX/6okUvZkbGiTx5QH7xB1g2BEdnJVQgqyIASXJrW7AYn1vPykNXKfNyMlShe2nPD+qISg1DnICGUaxkdJ1Yro6QVRQvirWTfq5FSy6sqwcYq8/QAvrmOaVs4lFKQdIFffvua7/u1qySr1FM+17N6Hjtv8fUhLWZJ4hM/8RV86Z/7D3jxIy15qyKkaDldTgPmxmywGvIyZ1de986BV/3fb+QXfuo12E1elg9tzltsAYzD6tRyn7J57qM8egGOl+d8EbOAFEGN1tZDAKqjKkuO462kMEAWd0os9Xp5FAYVWNzD7uAS5CTLojWkZY4lAgNGFTQgSeAOtlRF1CXj0sW1UxYN4TjXksWVFW2xWkSYZyePShBUF9yCCstCZ3NhtXl1WfA+vpR924dWZtiMO3AqO8OjLbI3F9felCNELILXqXxvdtht59uEe/udzlWZ4S3HAjxliaGqEu7Hyuj+A0j7lWOBj7mQ+NoveAEPXrpKtULYljI3ux4+sjvckddAgd1SY5oQZAuxWn6+LQGt2j5QD5IoKu0hEBWqOINAltaPJlJFFHTIxKr1RxrywFSc4dKDjHmDZiWnC/zQa7Z878//O9yc2DtuaEl/YbEN+klOfzrv39+RD+SjPY8D01lOfCrKcy8Ef/lTN6x123rKiCA6kKYgxNCxlT8okCVTI8g54dcr+YER94IEDNJKyWqwuPQM9RFJRjFlpUYSoYRQI5G9YIOzs8VK4Y4wYDGgKajXnLhUEdY4penptZKHxDYgRW4WfBQPJ0RICCkpHpn37Crf9pqju3q/zlt8nVVsbeREDNCgjRsqPBxrvulPv4yP+cgnCdtRvFKsQtlhPreJFKHWoABSm9BJbSUYdRR0DiCBGEKiVGtjRRLYKjI6ksC81e3L0ptLRPEwcs5QDJ2CGpky1jbWDs3CPOvDfPuPXuHfvMeYz+LmPAXnLbbgAxGzmvv3A0NpnRdOfFf7x6z3fxHH0tRNr97sylqOOnXC06LbybtPucb25xVOhLmbrnB536lPvj8Q3hlPJ7YONhc5TqrYf47ti/z8z+CHXvWFhEUTnCqIz8xzoRSjeOBecZvY7QLziWkysjlWC3U7MdlMVEejMm8L1951g0sPDrg7ZdqRwqizk8LYTTMazva6EaPj3jpMVnOyBFMFMSMp7IqTl9X0SlsFTwm2M8xumBkRwigt/zssvqy0O3UOfuwXfuOu3/fbcd5iCz64ufF0bn+7PD8l5SWXBj7vxcqlUIoYqhDWSnnWNhDP2jXhcpvIWSBVXNdsDgf84UKEEeHNqZyjLe5FZYxESk6OFbarqGeSVsok+MOFIaX2cJmEqIJLITwheSB5oVYjlxFkTWyOsHmN6w5dHhIRx5fKDauP8fd/8QZvvXK49L5pk/1TlWW+P1fbUwmF5y2+PtTErMee92L+9tf/UZ5zSZEkGMtidBgiI1VgUBgkMSgUCywSB8koqeVTg7b8apoFEePJWPM3Xvlr/Ouf+HHufY3OnXPeYgv2PbNg70B+wUufDbE4rwA8mjATsKL93fpSTZWJJlgti9BraUKWO5g5grAemhCFeTMlLfl9sWglgApJlYSjizvdaK4uDaGydEUCJmvPbscJ1jLOnO5l6rDYGRZTjwq1tGsUbXmVudCGnbjJXRXHi4Z7Wpli+5Ht1fa+pS/W8bFxnE2e5HucOr59ZQG7GtSp3PazOLdi1lO8/+YXFuuxanMyQBMJLgGv+ksvRvUG5WgH6QivgtUWdD476oGVFhizB+T2weUQYhfNuSCJ0CBVpwoka/Y/UisHM2s1syk1casqbGq0qKapqHlscScpoQzkTYWcEFkxrFasVg9wWR/m1T++5Tt/5leO8/+6/IGcWP6We7AE8k16/l7kuunevO+V7PM4MJ3FxKckQuFrPvUiL7p4A7dms1Rtq70iSjLHpxXjUFFtFpuRjOeZECi7A8a8A12hbEmacQmqBzPCiIAkrCaEyioZxMAcFQtbVgQd1w0uOzRGiEr1wBSibBCBnDKkQ9wytRqrlXJkgeBoKuzKavl7SSRXnEoZE1ENSWu+/gfvXunheYuvs4itCzT3KLHs0KGZC2F891/6I7z4Ob/Ldg7K0ZYyzUzzddyFFU7BoTp5mRQtWrLNMrmqgnoTw3OFgiBDEN4EEBHBoolfLktdvQohgQKSBFxRNawKw9TKXD0rZbA2juK4ChrKjg1f8wOHPH6PNr44b7EFTy++lFt+fTnlfmK/ppgYVHj4woY/+IKHeOyBkYcurtmsEg+OKzy0jVWRCXVmb5Z6wtlVZ6qVq0cTP/eWJ3jL44fcmCaq1ZMVlVIjK7YAACAASURBVFOJy/vjtp/WLb219r/BaRHs9wpeHK/mnHaY3e0SxPMWX09PzLp06n3H70cefDn/7If+W6xOqCilNNfUNFfcjGm3RZIwV8OOtuxEmOZC1IJaIMWYpkNqDbJNUCtRjMcf37G+KIgVjrbGJgrJnEGCa1dbj62anSzCbm6ruu7B5H6csU+HldVGyTizK2NyzNoK+hywnR0PR72dxyJahX5xigdDEqadkVfK7M4/f92b7vZHcMx5iy24+3OjSnsgK3ngqz5+5IF5h8sFxlQZshFecVWqKfnKyHBhRHRLXSecYKXBaivMjx5RLJNzE6XSbJC9uUo90R4TC+vVgJWKTpkiiXWtzCsYV4WyrN4oCUtGRODmjDbCzrDR0aHNn5MvZTgOSTLzNJOGA8wL21zIZN5x5QLf8fNXcHGOdaxTC9QfLOctvj5UxKyXv+Ll/M9f8QoeHDJrhZ0IJtIEiL17IhKRlA2BZyF5E7I8gkHbM2JYRQPmklitWnvwI2l5fxHlVf/flld++z/4kPRqnbfYgpt7ZuWHHuG5z87teXrJj9sc0+aakeaaYumNtdrPI0vO3RZKoBanBqy19c2alsZSoy6lessmSgGtckdgTBw/6PsiIYi0skJZcq65NaFqbij2rvdWrtjGj6VUMdoSIEHTKxCm2RmGZsipx0LWIpjH8j5uHodubn8kEH78sz04Ll3cJ2vHmsSp/M2dvR3/WDg7PCrs21+c7tD6+6Jn1u9t8t5cDCpNxQxg0wpf+ZyPusQXfe6Kw+lJ1IQyWUuUo9lh5lqJ2s7hVYgCOgau0qyBDukoSBfAIzEvD40mztrAVEgiVBw0EWbNZeWBayBVWomhCh4OgzBkmn1PQGdheACSJHIe0fXIenwYRuPoxrP56v/1N3irXUftpNFyXf67z//3Su1esApOEs/ljp1aAY9TlRonqznncWC6G2Lp6b8TFWUcEl/x76143kGh9TlzUmyaOOVOjcSY2yilNbGSYFYYRIkUxCCss2KyxXVgpcoUM6JByIjJDLam7TERZE0kr633iAnGQOiu7bIzD5QcbEiIBrM1e6iLUiZnHIQ8DJgFPhk6CtUUU2NQYSfemgOmAXdjFKgyMjGjocy+4fGa+Ls/8vgH+Umcv4nvbidViTZhJVGQNkF90mOX+bYvewk1vwvbTkTM1O0WC8GsUo5mpkPQArIScjrVgFGWWvbltmsExYGkbfOArTMOA54mghUelXkbjGuhiDOEEjmI6rgIw5CJUhEJmNrq0eSO6dLNKJrtOUyIARDhDb898O2vdY64/crL3eK8xRY8TTHruPxrEa9EuTBmPurDHuYTn/8Qz3/oMqsB1BPmxiGtjFRVwIOsimNoJIo0t0ub/hJDBFO0B/wIWvl76wpKlcUP5oU3vetJfvo3381b33v1Nu7p5vw6vr5T1956QpwaY/e/x7LSuO+9ddN7RU6VJ54W7k5EsLspaJ23+LrT2FJNrMeD42ez9l4FPeD/+bHvJKuhYbgr7jNWjakWrDq7wy0xKMkrRzdmdHB2u4KbYXVm3hrhW2SqZHdSNa7eOOJagU0KqhXKVFljDLVwYVCuPrFjWytpVARjKoZGm/dms+as2hlptTwcLOUgWYRtDaq3+S5SW50Oc5K244q11fO0NMydF0G/ejAKHFoTG974tnfxjieu3bXP4rzFFtw+vu6kX9Zte9/SYu8gJ770FWsuhzHrzJDWeKpcMG2uibzk6lXwa4GMEA9kVCcuHV3mxkPXCS2kNKJekYBkgZmSVgMeM9UVkQFhR94OyCpRhy1SnCEn0jzi1QjLlGHLmEZqXXb3HQwXJ3smZbDkiAv4BvKEVQGp4IKjlHCSKuLB40cr/t7rZg7r3JpK08Wsp+JDQcz605//aXzJZz+GjIkhJSS0PS82l0JrDZMFZzx22IwEHkbVhEyVzWZF8co8O6MO5EHQ8Nb3VBQQilXyGFwpI3/yS/4h2+sffB5+NzlvsQWQh1UILX95/kufjdAcUft+WTjHZYUDUMPJizNpkEAcJou243iA16Wre2pfZ4VQISsQ0TbkklZBFtJ2HQwPkgSxVHwp7dnAaX36FhMn5i0XM3dIeiy4hbSx1ONEoNp3TlUAEcziJiGtrQXtG9Y39jpBE53a8cGSzS1zq8f+/HI8bu27aMHN65t7HZBTOZ8HbCvYNHFzZnhOnVm3TnKnRSwhUFE+66XP5sv/1MfzBd/yk3jd8QcuDnztX3gOeX6CsAkzYyqOFZAb7eEvvJ2reisdTE4rE3QoMwzrVr6YjwzdNHFrXnrONOdLq4eOpb/NNto2vVWanU9qizrBKcA4rjEmRglMFM/BAQdEOWJ1MREYabNmWM8M+UHSeEAeLvCGXz/g637g9W3HAVn63bRf/kTUWohb7s/JtudxrJCyf++pxwD38zcw3c2JT0R40WXhKz85wZWCrVckqYi07cDFVqSx1RmvsuHqiLYBJkXCFMa6okwT2RJirY+RHDhpiNasNmvbuTAcVUW0IiTEg6yZyQrqimjgZQ3DhHummZuj7UinA9WEsnU2B0GVFSVmhrpG8yEWbQWyOMRgVE9slt0vNAamVNoA5UoaCpMZIY/wD37mKm955wfeU+u8TXx3O6m6IK2544q2E8r3/5XP4dLmN6lW8O0V6q7gNmG1YjG2Le1xbAKmTDlsPTyGB8Ck+ZdDF4eVClGMiNymmRxYDVIkVAxL7RpcErE0TY7sZG0iJ7HU8kcggyI7YNdcDCXThNus1GjbmKu1/l7msMqZV/2M8KNvPztB67zFFjy9+EqipJR40YOX+PSXPsYLHnoARNpOpghZlJnWc4gqDNo+q0orcZYIRJqLQVWoSNM8aUJBdWeVM7Y0HU1JqIttPsJIkpqCKtKELoTqW77np/4tb79yA4m62M6fmv0izO37bsVJZnXKidW+t5/Wln/JyZx3twSt8xZfdxpbm82l49VeZJ9XKH/9Nd/Hh0dlzBWrgXihmuNeseKYFQ5vTM2FXrZMFpgFu1opU4FSSF7Y7SZydbK1cuXfees1Vg9m8IqaMU0TmwisGvXajnkEZmeISgisMOYlCXcT6q6S1oIjXJ8qFsJmFKw6h8UIhFJb3jaXVv4/pmA7ty3WXWDaGZKEdZLF7dX+VnbWEn0Nx1xIOL/2tnfzjivXP6jP4rzFFtwcX+9v9/H3cY72vpz4rOdc4lNfdIjPQugBRQ5BpDnrBsFqJbuiCGvNMCekgK2DBxx2jwIy4TWhA+hsoEoEzdU8gLpDJMZVaj3f3jXCYwVcj0uExmHfKDmBTCiJYi27TtJKFdUVSYaLoJrb7+JQcTwKSRM+J0yClNszR4st4Z/920v8y3feIJVy4qj4IIew8xZfz6SYlfLID3z7n+TBcWhiqAYprUgBwyAciRC0PmrJlZSClBIaze2eUjCbkktFU+JwKqzWic2gjN7GmSmEOZpzPgcUUcwLivLGJ5S/+OXfSYQ9U7fgJs5bbAEMwyoQZXz0IZ7zyIBHa8a+F3FYemYp7fWZtiHTEM2cgoO5N3eWt89wSLKUQi8xk5vQlGgLwK1H6Em2EoDXJhjlBIMIo7a8ZjreWbC5uto40UoFk4BIE5YSS9saTjeMaP8VWlP4aQqGNc0pZieNJvblhcCiN7Txad8kXolTIhaLegbEKafaTe+XY+fV8XUcO7favHrjaF5eO9n851yIWe9r4lPV45soBJdlw3d/7Sch+g5UKnV6gvXszHaD7TQhVZojy5yIhLujVdHrStnYsYMhKbgKUVsdbLjgO5CLwXgDhgvt6cyTkBG2DmloQZBp22pKSrgZVUAlIWHUgDFlitS2Xa8HmoyUlOJClmhOnRtBuuRsssKQ0CTkgwHNG/JwAXTFa35K+Y6ffhMSxrwP5FMf9363gH3yf6t77TiCaM8EHifCl7ufu4Hpbkx8gpA0+Ob/cMM0zBxslDkXBtNmE3VHcyLTVm4HaWWuuQ0Zy24SFVdhkyBsRbEt6/kBJi/I4PihwZzhoR0pX6BYIQZBMDQ5boksjiPUOpAkQApqECg1DJWMRqUwUMNw1vi2srrQDKMeQhWwkvBcqKEMqoi3lSWRifA123SEsMZqQca2m4dbs0m/7l0P8Y9f+zvEB9AQ6bxNfHczqboMDElZS/B3/qtP4HnPukLMFSuPQ1G83MC3iRpG+Jpg2c3LW4lDhIAGJQR7MogZ9IKQLp5YkgVtff723YeWRpIqikjGrYA6kRNizjTDJjm+BokRq20FEZmoAemqs50Fu9RWkkSA0hwxIW2mVRN8q9jopIORL/vhmcMz6A5/3mIL7jy+vupTXkbSi62paHKSOylp692gQtbcmsqKHydCOQJUsSV9sYARaaXLaNt4YFlf8xAGoTUKpdnUJ9r4llgeCslk/FhrUneKJVJu206HJsIriPMvf+td/NQb346HnYhQpxdjhJt3NVycWfJ7mtqfTnxOrdCcyFrHpYftxPvvPH3OW3zdaWwdbC4dO+GaTij8Xz/xfbjVtjEO1jbOoeJu7XOfJ+ZSseokdXbXJ8iVbYV5N1HmgoaT6oS6YbvKfFSZb+zwjYLN7HZz27U1jHJ9y6yJ6jPqAbWVdlGdMZYef+aUyRhXymxtY54Ib+XW7q3lw/GycnPIl9oeSKbZ2VYnipPWqT10ElhxIgmlNrdzSsI0B1HaNuZpaIuhzQ3bGuIWC173prcyl3rHn8V5iy14+nPj6Rsgqsdl7w+p8N+/fGSXAj0wpGpzpCdru+96bqsm4YQWVBNRBU0JEeHCjZE6zPBgZWAgc4RzAYu2KCcRDDljOCUq42rVFm8eB700gOxABWFEI1P8EI1MTq2PSbgRy4Y6niBMSTLjlhCFqJeo6QqjJiwETU54Jkt7DilSqXXgiB1rNhyyQ3XgG39C2dq25ejeKk7i5mHyjjlv8fVMiVk/9l1fwGAwbIQiwiC5tW/IrZH7gQZbV6pmVIJSE3mVGGh9R8PbbFZDkWKMa1ncz4Z6Yg1UccyMqhlPzU2/C8XFkWgCehX40V9XvvmvficfWETcPc5bbAF8xCteHG0xjEVVgsAQb7uiSrTPBYLRwaRlFcPiVEoC2+qU0krYNxnWKhRvbWTWadm0RJrbqi5lgq0aA/Zdp9KSQxfb92Jemr8vDpa9nOnRxCYPWK8Ut2Aqcaq3dnuvLz9HCWQp5fJozeBZ1iL9lCgFJ2KVxUkvrb1PPhY32n5cCvb3iuMFx71Y1Xrunijze3Ht+L3RhLft0XzTXHAOxKyTkoT38T6CgT/0gkf5hv/yuezqk/h0jWl3jZGJOilRnRJCzEGSgWrWVMvSmhU3OTBRH/S22qeC50Qt1nYTRBiLYhhphnw5E9WJHCSUWppF3SW1xm+xlAF6MI/KUBXMkLTsLKBtFWiIpY1tbmUbKsIojvrAdGRcfqQ1iExjJuUNaVRscLKuGfLIrr6QL/nO13NlOzPLKTvfftH6lhXw04LWU7nboItZT3ECDoD/6ZM/DLv87uaAKjAmAU0IreQ0xTIp2QGquyZmSZA0ETgaI0lmrGY0O6iS3BlqE8ZGh9nWxFyweSA/CJbaBgIeTbhqu586JTKmzjrWuDviimkl4W0gtJFDrRiKbp31upWJFR8ID4oYaHtAVYFiAlLINjKpMLfgRB1sqK0UKQbmcIrsSPoo3/SjTzId7ng6k+l5m/juVlJ1OUNy5Q9/2EP8ja98EXO9zjQ9js9g05ZqlbhuhCdMDbPmRK01EG8CRLgiY9sFNdwJU6b3OquUiMvWPusU6KgMw4Z5Ujx2rXmtGClrE7dMCK9EVtLozIeB2pq8MjQn6lRwragk9HowTcABTBJIbU4fZhjz0tByK5iBHkDkNin/wjsP+Fs/d3g3bt0x5y224M7j62s+9RNIWUna7q9721En03bIWYu2xRUElyYOFWulD+aOsV/1a4Kn4ySV5rKiJWQejouyOOMhWhPTZb+TpV9Cs9urKWVxeA0a1IAiTpJE0rYQNIugHvzg63+LX/3dJ/F9anbLb3zrjon7T3lvpd/v2NPeup/55KZ/7///dNkiPL0yxPMWX3cSW6qJ9ergOE8QEYaXfQGv+nufixQnvCI4bo6HgTWB3ecd8zQvjvdKlInqMM1GmSesFKIa2Wbm2YkyU65vuXHDufygcDi375dS0aMJGxJW5uZWroaZM5sxKqg1MYoMgzkugYs04QonacLMMIfZnTI5BweKinJ4VMHb7qtHR8ZmkzgqgeJUC2pZ+k96MGRhLtKWy6WViFRvseQSTCaL8NAEMlt6jrz+N97KXN+3sHXeYgs+MDFLpW1Gg7TGyx/54MgXvbzd26w7Kmvy3Mr5Wmchw1Vak//kuCRSNijaSngmWKcV5fpMXEhceCBR5i3DKjGQWi5cBLIhjFQg8oxeVXY1sX6gie/iA56cPC8PnhkkGcnbjtNelUEE0RXGhNZWIiYqhBdCM+hMqODWamzEocpAwTCvrSm8L85og5qE7/p54803DGXvgG0PrE+X8xZfz4SY9T986afyWf/+s5irsl4roWAMHCQlJQjJjCJUVSZroutkmdXaOZDEnNtGYDZXcEXUyWMTPFmcWgmYvG0n7dLm50jOZK1sbYhAUqKooqlSIvOZ/8Urqbu7m0s9Hc5bbAF8xMe9uHlBfEl0glbBFe1JWz3IS+4wxmJ8oe0UOC5Cz+HOqR5cGIWsbZORubbetGNqeVck5QCWvlctVyve3FpBMCzO0xJKMScrZG07EFosJYbLM1z19pyY0qItLD2w9r3WZekLCcsin+4XoBeRzZbdyve9s6S57+eyF7H2OxpGK1RcagX3rrB2ajkWvo71MNpja1N09kkbe2PWKTGr+ccOD2+u3jgHYtbeEvc+38eFgH/4dS+jlifxKTHtniBNhXmqhAmrjbGr7QYnAwtpjdrNUAdEMQPbCqtHWklgFQcHRSG0rSYfQawUHQOx5iNcIewiYFB0B0MO0AThlHA0IFKrS1UVbOekdUv6tTnXIS8uMfZuBuXgmpAeMZK0nQ9zCmBFrGY0DhgubWC14vL6Et/2yvfwT9/8HrLF8Y6HcCJm3Wrt3pdv7Mswupj1flDl2QfCf/MJA+lghnFxBbQqrabCa1tJ1KUWOQvga8K2JE0tGULRJCgjHoWcHMTbLpdm5COFy8EgGcKo84ppt2O8nAFr5X++dymAaQYppBgwd6obKkNLst0ISRQRMEN9g0hlJii6Q60lWS659WvTNmDb3GJ+0jbgNPtqJg17m2rGmSlkAmWWke/6f7e8572Hd6xnnbeJ724kVWvggipf9Zkfy3/8Rx3fHVHLEfPRFqtbpLR+NPVGRUSJ1HoCKm2ziYg2SSVd4zER3nr5DZpbSfIcyNUmRIQJPsBmJcRFRVKQslIdVJdSMVpJREojpUzUsT2w5YCpOKv9RrvDiFyDnU94osWXB5iQaxCqzNfbwkF6oIksrJrV3hyqZb74h+9e2eF5iy24s/j62k/+eNZDK0VQMUIDQsnaPrcky0ObLit53hILaz+grfB5S4CyCmNqriuNVqLo3pK11NYpl+a2QETr97KUKkL7bD0E0fZAjywiv7Ttqx0ha9v5NwmYpOUhFtDCD/6b3+GX3/bumxZcbhWz9vjyN3DTfHZy31o/h70zGfaFcs1dFCfnvbVf11Nx3uLrTmLrYHNpcWMtC1/5Yb7/x7+DWmZyddCglrnt7mQVrBDuTfCOCUGpZcdszRm83c3MuwmbK6NUfDbqNEEx3v626zz42Gpp+l6RMCgT1drMU6svbgdjNsO2lXFocevuzRUdsCvR5jQRdpOxWXr3ldrcVPPWyKOSWPpnORwdVmTVHiGKtU1c5uqLI6v1zxILSK3fyVyDQbTtnhi0h4EloNrqdLRWFdYWkXQZo9/wm2+m1N9bHnTeYgue3tx42lkp2v4m/8iDK/7EJwiTz9ihs7mk7Dy4UAfmZK3UZ9mq3hwkOZJHRGc0hNEVO3TSQ46/8xL6QMA4sxmCqLAe2+5d4UJOgRUYL2eO3hm4rNCDHSm1Eupx2WEwxcjOCkiQgMRqcbN7W9zJBWpenM6J2Rx1gwEmb2PSLkHMrW9WJCO2mfnGio1tcC8Ya2BH5BErh7z67Rf5pavvPn7w47QJ9Q45b/F1r8Wsv/V1n83LP3zDoCvq7Kw2iZRScxuLsspBYkSltRU5nBNDhhoJDWPIShUnx0Cd4OAApl1Bj8v6lQujYuEUDSit520gaFR2BMUMJZOG1kpEVSjRni2+7Ft+kV993Wvv5S055rzFFsBHftyLjy1D+x5ZsezMIItjSyJIAmsHEV9aKwQrgV11dnNrwr7Jzck+AFaDPLRFRhEoBJmTzUf2ok5abJjiS/VEBL6MH81Z3K7z1F4Rx+4ujyaCirTFlWNxihMnlQjHjs99jjTNgaZ2tma8aQuVxeJEsFp+nh+bZtrc63tzzn6RME79zDh5PNx/rXIigO2va5+D3Vgawe85B2LWHb2PIRKf9ZI1//lnKvN0uGzfHG3XmgLswK4G7BRWgj3o6AVa6YWn1phNhDGvmeZt06JqGyDS5UTsahMSrgtSYSUJL5W6gvRgxnYVF+HiZqRsKztzSMHKhdqKa7HIEBWtkDeJ7MI1jBzN5+dLbxsVYQ44uJKIByuGsx6VVTrAZEd1Z0DRS4rmgWGzYsgrfvt3nsNX/qPXk6wtMtXgJLDkxBJ4HKS3LT3cB9f5G5g+0PhKjHz9n7jIA9efIMaEJyelYIzUxB2FUZbByNsOltB6BakKZEWXAU+kfSgqgnoTvjwr4s0+PM6CrgdSTAjCLEFMK3xbkBDKRZq7QieqJVAlD0bxRK5BGpxtyWw0KJFIGMGy2ldTW0FOATlTJ4FVpYaBDgxmmEcTw8yZpGIiwIjFEv+jkCI1e7QMlJgozIjAd7/2Im/5nTvb8fC8xdcHm1Q9BFzOa77/r34CiXdRpiNquY4XpxxtUWuuprBoceCOhC5Pl4GQly0CKi4KKch5xGdrW0CHk9MIBLpKJEbCd7gPxLZQb8z4biDGmdXlRKwzSTIyDLgdkYYRCaVst6xZk7LxaLnEZmWsdI3Nxm6uPJmusL0ON3JhWxU7cqqBHCjm1laMFDAhtoGv2oOf58QX/ZO70/vhvMUW3KGY9Wkvbz0dl3E90dy/SRQWx2gTcVoMtb5AgUduK2aL8JQBE+HG0Y5LB+ub6n5CWs8G8+Y2LQiZwDXh5sfi5Hqsp1b2HA1tC0Zhi3jUkixNbQUwpCVkSbQ9mAKiwSplrkxb/uaP/QrmN7taWvKz7wF5wnHpIdxUZn/yNTf/TqdWKVt+eLJxyu04b/F1J7F1YXOJ4/LC8Tm8+kf/NhGG1kqdJnJuf99RChFOmWdSGPM0oVGxCmW7Ja2V3TQxmzMfTdRqqFesFHJ13vO7V7nwyBp1bzsglonddSddAEppu0xbc8tP1SlzZaWLg8eDvOwgPE+V2Z0kLQcMgnHZkdodqhmlOJqWsovqHLZ6WSLAayVQtmZsr9cm9BMMupQtelusKg6JIGlw5IlqzrD0wpFlR9e98uAR5KUH61yD3373jvmozZftIeLo3MUWPF0xCyAztC2U+OY/+CjDA1eZKEQeWe0gIlN1IpY8rO1TaSRPJDFiFahnZFTcKulJ0CExZmF3JcGjQRpm1jJgFSS33aFTtEbwkjL2hLK5aJASaGIOQ5hZiWFVobQ+gkZzAA6sGdKOzNB6zoytZYiSOKozJdrmGKpwZAWvG+r8/7P3rrG2ZVl932+MOedaa+997rOqq7u6KarpBkzT0Ly7aUGMu6MoNiI0YOIoENtEShzZJJIdiCEE/AGhgIMVy8hBkSOCI+VpS4mcSCH5kuRLXv6U9wdjy8Z006+6z3PO3nutOecY+TDW3vdWQ0M12FRX3ZrSvedxz91n77XmnnPM//g/BD9AWrbUsqdvOkwNFwfJdBqQSSTUZhYpJNvyY//TY2rvId//nCb17zTebPPr9xPM+h///e9elQ+wK4XlaAxbRRjwpPSsXCTFqtCTsM05ajU3LBXEhC5OToq1zpCFdu2whYSQPPZSMcNFOIpi3ukSAWLhJGhRy3sL3yVXFo1E8k7IXf+H/6/yU3/hl3+/Lst5vNnmFqxgFsEcN497IyczLAtwKrvgbmwkJIcdjwafCJfHjrswDUJ2x8Upa5lbslB0Tf9bLRz6Cpo9DRKdvlBfPbg91BjGmjzoztx8tSkNWw8jfLJE1zVVVpP20+/AV+1OFF8pBcHHLFjG1qJBcLKSOLGtjKjxDJ4AZE96misQ5+d/sxWgE5dzvfY0PUkIWwv4HIki4V1+3D/xsHmtYJb+bm/26zmeBmG6Nj5178hx3nOce3hXzYI1hUbQhlumvcOptw3uZ+TvTfivDRw+5dSjQeu0ec/mGvKlU64E9k5+paGvKNO9TFkSWpT5AvpzCfKW4ROZ3WHL9lLxB2HON2UYNgXTkOyklFANXyxyDnRXwjSO3teJqGQ3aEJKjlw43kPuc6wwtwNz61gVaOAHpR1njofKcb7my1++x3/z5z7MJieU1aR5BbHEOU/I07X7fEacnwtuPctDJPHVzzdu1/vUNlC0x0GLEgcwt1ONTyP8aSCArJQSOStZgqmlRErl6eo6HQ2RKkpjQ2aSDXJoaB3ADGnQ5YBMibLLDI8S/dJJfcOgmZSCTaE+kLMgLmw1pGbaFVNn1BGxjiWLboIKbkdQI7syeVCb3cMbTmwJH7eS1w2zI2kgFVA1Kh3VjkklyRZ8oPeBP/H1zt0X7zKcVs+3xmsaG4GXdxN/86e/AuHTzPtr7LinH2f68QgL9CosLbz4qgcDEPGQlraEWlCYU3CGyav4wtTpKZFKMPtyUYoJnhZUM0WObIaBWy/cZftioU+J/shI151cCkPOlLJDekMExnFk0sSX2Q2+fLrB29OWuybctsw7y5aX5lu8ON3g9phJ6sg2oxcJp1HEKQ1oqfIJ8AAAIABJREFUipvju5DluCi+dP76x+Cffd/udb4bb8zxYx/9QLCaHMQMc2OJLYbaO711Fus0nNaN2TodEFeG1JjUGCRYM40wK91sylrIxNfihrmzdEPstHqtRR5RRHUTSqmrJ0iwklnZKN2iAFcnPIzW5yIA3lewzTFvNAumYTXjRhn5mY99Mz/2h7+OrE9KlTPL6lVM5LUU8icdxPPu9pRvw9qweTWT9CS/f+pzeWsdW1nFrLWE8pd+5RcwTslJUaPEPXBcWhQaKzMpS7CoDocDVhLL0jBzWouP6o2lhVTs/scfU25uUOtIqwzWqIuQtkoxYzgx/tZUJ+vGNBZEUrCjVt1rcotDg2oY4SoUCVZXYEvB3ErnjrXTZ5jG2JtjTxfmHqYf06SMgzAWzkW5rSysSEmExRR1Cz85h5xOkeirlNWD+XN91TleN6wZL79tPF9jFWEa31r7AJSGi/DDH3w7hcccB0FbotBppSP5SB6MQRQ9ZvoqV4aOq0SabwNmhYNwwQ3SRvBFcemMYxz0nEzKRjJnUMgpY6nij510u9IHD8+r6z3y6458srB8YsTvZfSRIY8bqQnTIaP7jl4njkeFo9BeEY4PlOsHjeVhpj9weGWkv3ITvXeB30/Y9YSnRH/xIfL8Ht8aLRMp6O7QTuzXRtOEibJPB777q55HUn5rZfp9HH/6+74OrJO1UsTIZoyiZIcxxYl+s64p0wA7DXGOafgiTRijGO0wc7ie2Q4ZPKOphS0EHuC7g+bwsxWFLJniIaE1CSqLiqOaY7/Pa1gFsedjxkffl/jFv/rDT5jTb43fw1gN1vE4j3FiFT1pjolYSPGI1GcN+jK9BVBUUoBMKrEHJIiEe8BlBX7QCN5ZKxiVAL7jXgeX/HSsSmsNdGZjqTAWJZX4AVVZfU5Pj7NKBv30iuKMH/XimkrtwpBgM4SvacoSyfZnS6LYF099wSTnKJgAoc7ywmguCoBG4iIe8/OpS3r+5AQ9vBqCkLVJ6fEm+ALHGxLMgrhZgvMd79rwr313px073gQ7OEeDtDeOjyAtmeUFQzT8quSFBu89kr/EYOvoI6E/VjavjCwt01yxIUNN9Jbpo9PfNmEvOOnmhMzRpSu7BXtXp9925KZjFwO1Kvmhkl4B3Q2QC51ESc5mzAxTDpqfdkZVUgn4dOwgPiKayJZoKTZZTQnTKBoxpT7q9DJwrHOkBR2vafuZ4/ExbD7Jf/4j38iFPw2axN+68pLlc8Crp2/+uch/awDwwZd2/PFvMWwp6KZBSrHIUBHWiObzm281mDUhJUW0g5ySCFfjvFVrLT2uuyRHXQLdb5XaHwfyrx1JE6pKEfB0DM+qW0sU64+Femy4dFQctOKuq8GfIjrjckSsRKKiJkaC1ooPK0V2Bo/3hOeM0ykpkjddCk4lSSy+6muMtDmF9T0ELHZFEmfkglTgx76t89KLF4g4t5974fW7cW+g8Y037vJLP/U11OWSenxEm6+Zj0fa3LDFsQq9Qw5yObgGrV2dkkdSShz7EvMtlTMzsKiyyyMlz9Aathj5sKMdnXJdSMsGqRPZR4ruGHzguXKDXArlOKAP96SHV0xzY2uFXdryvN7l5e1N3pl25ASTDgxpy44tm3ud57d3+ZIbF7y8e5HndplpU9kJbA/Qu9BG8OT4IEg6i6DJKLLAd33FkX/rQ28d6r7QoRJrCFh4NbqArLJkXdlKXUg9KOs4uEbx1Lsz9466IK2tHbJOJkxKo6hwcAufSHNEjOwLzSJowMxx66j0aCSq0iWYCwHkB0BgPUBzI1KAwmi00z0Olc1aMGbWNl/vjnfDunNj3PDTH/sgP/c9H2ZXCnAmJp5Bq0jmeQqIEl7F3DoVciInOnzsdee98cTKOjOW43vPMjw/TltYr8I7/+Wf5SXvq9yiR5CIOb0Z3p3eFPcK5liv1O70rhSH1MJHq7ZO9vAYdY9DQL4+UO5u2GSjm1FrY16EG9tTsErsnTnBmhvOpijJOmOO8IGi0cxpq2k7OGOCKcXh4bpJ8H2S4MfG8qiyf2VmuTejvVOskdwRU6pDSdFZzvmUdK1ogqJxEDiZ6Sb1dY7HPDnHqa+psN3Dy6sukEchT4mhaDBUkThQvE739othnN6LAgEyeeJPfO0dvny6h47C2BY2RUhHZWwbJAdwKRnyxklm5OSUArkIm3mi6IQ2YTtD8wrFYIayc9yPCEq3PSUVUhqAHkmvfYtmo1cnfSLDx7f0z9wiP6f4rU7KI77syMcten0X/+wOf7yj73f0yx16b6I/vCC1C3TZIccBXW6Rj++gFqddHNDnQF48wvOXcOsA4qhsIu1OQ5aoCSbVYGV5DqmqLRjG1714j3/6K2+skuuA5c5r2ucAGG81pn/v4+V3PcfHPvJONpKQ3lFNAQSkYMSLQF7lzCqJpBGugxslx9owaLBGS8rshoxZp++PlCExauzLg1tYyhBNodwM7T32aj8B4kpbGTW9K+KZrkrXhEs0i0yc97995j/9D/7M633p3hTjvDqtSFaIPoPEEJqq2BtNZZUcx3uu9qgvUgojeF2ZWykHIJl0JZOcG4KxfyHBeg8Rj55BMpHwJu0reBnNOoskzdMOsh7mg0BzegWhBvK18SernYzKUzJDd7xHsm9ewbMAtOw3AU1PWn6nCmptEsqTOszPv/a0ssfP6lPfjwYo6xV8mpW1NoBEyMPpRbz2HTK/5p/8fRxRKEy0dvxtfy6r8Mc/cmSZg8VEU5ZHRjLQjZJudpbeIoVNA/xCEnYwJDfyLWUoCR4Z/QVHOjArx/sDW3HKZzsyOa1fsXm7spiS7474PKByBWoclyPTsAlPhRHaDSExwKdm9KbRPOHZ2OSB2loADquRtkrFRYO2WKJj6d2QNNEXx0rDe6ElR8zxlDi0I0WgVqMgmC3UQ8csMW4r/8WPf5A/8vP/SzBtVprgSZPtqyj3bASv8gS1fWvzA4KR9ZXPFf7oB67ABauOFsM8kZOssfRB/ewOeHRX8pkpsCLRJpj1QMJVMDXUA/2mxQFQgJQDYfei6LEHqm41JD9JQEaCtJ6Q2xGjmq4FSvznUjqaBsQa7g1PBdWG9hqxzymF2aR1ijRct3Q1qiyICVkWuozIGiftKWj7DYdmlKGQkmFkmgveoPsR6wmVxNyvyGWkYfypb038+H+15dHVZ9dr+YXFcD9LY5uFf+/ffIn98SE+t7PRe60dqeshysPbDBxNA8mPtO5IyqTszLWRPDEvnbLNTAieO743oJDKXfIUrME0OOK3wtOhRcdPVUn9EvIV7cpJV40qGTlmFmbGvbItxl3N3E7CnVnw/QTHBW4UZNthnvEbN9BRGcV4O4lHTDjKg7Eya6S/ZhFIsee2CrmsySpt1eY34b3PHfiyBH//iyNx+g0xkjlNneRRTJl2sASrf1Am1p5ukHMiEZ5AXcODTwQOPaTyWF9ZK6vRJ42sKWKmV5ZW7cJ+7UrigovTXdmU8M1qDsnlXCgp60dPNAkA3wlmYU6ComEMb2HevFhHLdherp1BCojSm7Nk4d/4zm9EqfyFv/V/wSrAgCclz9PJhmc5zrkgXbuf5z7oq323nv6583iG17Dz9QB+/gfeQ136Wa6HB6B1Si9067Fm9WBfCY70IwyJ+XqhaZhYHxaDZlgzyrzw8JFxcUfCc2sx5msjb1ZJg3XUo8NsHXIKSSMnSb9FSIF4xJ5XC+AfifAJ7+F3lTDq/UiXYzewfUFoZkg39gejXzWsdnoSpouC4LT9ghWlpwh6EYO5AW50iQ540jikNCI9KjkMCrPFHDtcV8qoyCTUGhfSPDy3NI/Y71DfvtnHyctOFZpnfujr7/A1uwdIz3RXypJBQUnILGy2Shs6NgtIJBO6hPVGzgNMnXHTyDYiVWhDx10ZWliMVBpJR0qJ9SSrAwP4ATlk0n6EuWAvzCQ5sB0EXQxTo4zXVFEGH1muj0xTx0fwmiJBkcSY1qABTyDHYN3UTmlGG0J25kDWRPVOORrL2BA3tGdEjnRRmgpqR9wzeKWQUKIR8Aefu4b3PMd//w/ur8yKV8uiTzXXs7pm/aMaKsIv/ug34L2RtOIy4tZZslCAIcd5sgkIaZWWRuq3SyTbi4J1jWCwBml0cjaqCEkVFyGp0F2hdapH09klkhIzzrEbCVh6IxdlUmWWHuEtOC6ZUSMIIXWjIby4O3D7uXfw8N6nXuer+AYevvpAWZhbnxhDcoKxVjAGIuhDREnre3FxKFlXdnvsbSqCrkSAbmsIj5+abKz3Us5SQ4gQkzOrfH0+utK0dA3xMVi1f08acUmFnITWglGmEgBSNyLhem1SBr9C6DjHOfZcX0G1k5OJStR0K+99fc1PNIanNTyuhJw/l6fqsCduWnL2fI4HPP3005/FLxuSnH1YX+t4w3lmhWhG+J73FL7zWxbaNdBhURhJsRC4nYvoBHR1phW51CSYQFmEPjvpdkHbghQlaWFjxn52Lm69wP7hp5GucGPED4J98oBujHbHGZaM3hFK3mLSaEtBNYMf1tyRPbIM9IeO7o6U3dvofokaNIVqNYybj42UFNWRIxVpjkln+YyweUdh8U52OD7qDM8LgxQWaZGY0GEYIA1CmZQ0FsbNTS6m9/A9P/2/88A8DO9ljUs/Tat1fnxuquFbnlnwZz9yi/eOV1zNTm4gt09RpkTXpXdKjsXBzEl9NYBHsBS+Mr4miSUU76dkHiPnQNuzJHx1OnLPK4sABkCOimwFk5nFRkwbBYkDpZxkNNAWsINQxky+MVNtoNEpojSp4InUBVGjSccegewU1wnvnRANOjlNzP3ARlMYvrvgnhA3FjN6FtwFT6tsaXXXcTNau4HJJZ4HsnXIC5e24y/9SmP5POkqb7b59bvxbvjGix2//JNfxv7qMX0+MM/X9KXix4hkTknoXUhqWM9ISohURAeshmVkyECN1B1blHKxg+KoRtJXSpmUlNYXTGcaY5ji6obeKoMIy/U19aGDbMmbI+n5HVnCb8QNZK7kZeSdj5Xn7YK09KBJ+wiMMDwC2yLvvcAezOidAZLzoL3C3z1e8qBeczDDKix0rIJ+SjnOAcJUIOe1TB+jI4Qa//crG/7y/zGv7imvfbzZ5hb89vPrJz/6tagZiwcFPUuAMk2i2FjWpLW8skCbd0QSOLQquCuaQaxhSRhCw8WQcoCOhJmt+1p1EcUyfkrUOXklsDZpolcnCHVpKBEwMebYh5r52s2OXp1a+EU2Ym3L6NoxFJrD5CsrRlcTVFEyUayRhILwH/1vf4f/51P3f9O1edVMWJuJJx+tc4/xaeDqKdDqBOK82jjesTfZ/Pqd1q7d7iYC/IGf+mv8+HfcCe+PZQkPM4+kwWwN8Yb3Fr4i1qitU5cjdjXDRrl6dEBTp/dKXyr12Ll+5ZKSMjcuhGWpYXL8qCKTMy8VdaO3hvZV5mpGt84gErH11sOXptc1oRM24hxaHAazO8cHR+rRqVtl3GaKwFw7SwvpRFG4PlQ0KYsHWPbglSPWeszDTaKq4C2YE/sajMYU1oThTSoO3ZlJmDutGkvt5DHy59oqRzyHDRBNisWMv//rnwHie4fj1ZtqbsFvPb9+qwZXksRPf+gWaXzEdpngeiBvZ5ZtZSjKsHHsUjgsCSbHU6gMkgqWnI1OeGmoVIZ5RNqMMdKGI7lssV93ytsrnhpNneIhLexk8D35MxPt0cT8woFxWnBRtBuJgYyRPYBKVeVQWxTdbYGrTt1tEHE6M3HIzGv6JSQdqO0aWRKHrVE8oSnmr5Ko0llmozVhmDrmZV2jlWZ9ZTzEeptkwKviHsDwZb3Dz/7PD2A9pH6+a3sab7a98R+nZ9Y4FP7WX/xDZAEVY9SRnIMpmksh6URPzlgylYSrslMlpbyGQMSxXV2oLoya+fTDPXdvj9Rrw7dKWu+zeXisJTf2LZifjQBBNAkHW/fNlEhr8tzSFnLONHG6Cm2ZMZNYh31GszDP8Lf/Dvzkv/2f8YWwW3434802twC+4uvf7bKavrsDfTV9l2D/njxGjWBHFZwJZamdY3OGQcNH2Z+AQukpuKcTrK2Mn7JCqB58y1PVe+JArah1SOcTtCDtBcM98KIAk04PhDBkYa4h8ssaNeChRZiPaCTG2tO/aK2MNI6auEXYk64sYhGoq6QwmGEnVrHjrpGmvm5yiqxEjyem8yfgnfX1PbF6kHOi9LkhuZ5xD4uHauk1emZ9UTKzfvuhfOd7C9/3DTOPj4RUz41RhSYecopuZFXMYFRl6cYRZ5uV4bHSl47vErpzrFZ0nLBecSrHBtKUw3IfBkNapuQNy27Prfe9jX3v6H6GwwYeXbHXR6TbULMz7iCViSS3afMB08ZwF9LlDZZ8H93cYFADCWNUIcFQkHSg9gXvipSEWhBvmlQEaFdKucg0b4gKyZRmUWD17mgTlutG6g3E6cPf5T/50Q/y/T//t7legSxEnsgyPs+G96yzs5IKLy5XXKkhozJsMtYrqr4exGIxOWmcRQRJcZA0dyrGKASijuNmDAnIa0cWOPFBrQu5pNVIVhg8kHTtQjp0fMoUacwWj5cV1BpNchTQU1iEyrHiV07aBY1UeqdQaNIwVZJkUstYWg2ZWfC0dgJzR+mkFIX4IEp1oWrHmpGyo1qii+0jnhreK52GW8HbnjwNJIeqYQw/lsyf+adu8wv/7X7t4K8HxGeY4fD0+NIx8ct//g9wPAaQVZcFWxrWG+oaXer1QIYNaE5Yr4zjRLcWRa0u+MEpfhO57bTpiKUGCJoycAjTdXIksfpIplIUbG4MXbm8d8TbhrIxphfA8w2KnoCJitcBnzL5wrl4xy02802kdMi3Ir5ls8U+fheZADuAVZAEsnChOyZ5hVyE1BTrHbl0ZFb680oZOjQoPcC4ar7G60U38wPvOvCvypa/8n/OuL1F0/p843RIHolO2Cna2C06iGn12ZAVlGnHkKnmZEyDINLRpGCJ5gZr6tLSjCkTqb3imHfEE5o0JC5qkZ4pEl5BEkXbyWAejLHEGmgeRZrVMG3uHt2/mJ9R6kRqcHgcmUcBmYDZYRCoCIM61o2mabVmSlRxfvBbvwpB+KX/9f/lVz/9mHMpeAKuTublwMkQ/gm1nzN7ixNetwJX4vIUUwt4BvdGATw/x0989AWsV8ziIH723TQLX0VzRBJ91UV7r/GnON4XdBCW2ViaQ4f9o2t0Grm9iT0yJ2f+1IzfzLRW13uhCIkyGN4csXg+CaO6UPLqBZgL9dgoaWVE1Jn9w1XmuMnkW4lx9bGal06zcLGN/RrQAJZwuHq4MOwUd6U2WK4aJp1hEDwn0toN9x7Ae+0nBqOi6hwuO54hDWmd50/AUMPoa+KTSbx30HV9fobGq2oAjUTod9/MbPSAipJzY7jVWIpTujAMC8u+kIYwzrbeURGsNEDZiNLlkpEBXRyXTpqVfgdK22D2GN/cxn0m54zXleGQnbF1rh4nuMqUd10y5giEEi2gTqFBHzCOIDmSL8VRjlFP3ZhQa7hWEsqxQ8o9vJDEMb9G3OmtkPpCkU7rEn6XoivrGqbB6ctALS1YiKYBZLWgR2QxLC90S8H0J7HjilvTlsv9Pmp+//x1/VvjCxv/5c99B+qNUdNq3eFkjUZQciWpkVEMomZSDeDLG1VHJnWaJwRj60aXaC7m3pldQkLYFSkOyfEeK1vGqR5AekXwLgg91B8W0rLkggyFZa4c+4DTSTqQU4skxDbSrxcOc+f974I/9i/8M/yN//i/fr0v6Rt0PBWSJuAeCaouAihZjQr0FkB3w2gGpYQCp/nJM9uxda8Ie8dzrjL93FqLNcFWzviJvXRit6tEw+b0j25OR1YpYtQ0p8dywiDeV/ZVtxPhYmU5m52tFBAJO4kTy4snJU/8bDxpecpnVE7fX4F2VnALfyKfxGVlmL2Kc3W6rGeW1hPI7mQ9cq7UGIoEG/o1ji96z6zPBVhe3grf+/7ONYWsgs9Qa1w4n51lleO5hqZllo6WxOah4p9J9LFhd4U+NHrv4brfFtRiUu6vBRtWSYSFkXbnMUOBKk7xznTjwPblzu6r7rB725cgnx3YfXbEfm1g+fjC4ZOfxhfIGZo6y80ZjiP26DHHtABOSReIFJI21DNFIelI94pkSK1QRJBHMNxUfBNFf1COg/osSahVaU3oNdFqoh4q/bJi5RP8tT/1IbrkteA6456/JWj1rFOTFfjRb52w245unJKMlmaWGg56qoqusgfWRWqIMxhmEYU6Jl0PSjmWlex0CbPY5nHMMvGYWxqFWbFOWYy5O74x+sUS3iC1x92W0GQ3F6pAWh39SlNso+gNhzZSmpH6QBPBVcgaiZcmBVMhb518SOAxj9wiYQkPA1uAah1JUFyp6+Lo3kGdrge0gfQNUb6D5DUxbTXmdUlMDV7YfJY/9pGXkTciVv6PefzKT3yY2R/S5z29XtHmA14rqa4Smj6E9wLhw2Dd0ZQ41CNqRmmddAl5uMBvXtGlMpUSbBoN4MiroSjqPYyXH1eOv2Fc/urC4deEw28spDJSnlfy7Uhz9daodWZue6wP+GCgimthOhhyYfjNDDcN3ptoH4DjD9zk8gdv0acJKQUfFJJSMG7mHdkMVacfjeSZ6Y4wDraaQxujxHtEBUYJA1SP0x/f8tKRP/Li9AWQjJ+t8Sc/+N6QqvsT+roCNbKWqWZkovO3HIXLI8gA2yE8i8wME6F3wwgmqWpCCIZWc7Dkq2FogE/uazKrR3pSCF8sIuY5dduCSO6aqOaYW4D6ZQ2gaB7gRO+k7qtMzKIVaEY6r7FRQDUM9UYzmN0iDc+dbob1RrVGs84Pffir+Yvf+yF4qiTStdg6Jxmevl6voeFPwHZYASs/e/mci7An9dgzM8Yh1vkf+pv/YcjlzRFfwtsHoFvI42U1pLaOmYKF+f98WemiXD86EO4XjjVjAOzQuDXF3MSN9mhGb5eIt19lFm6NXYZskNzJYoxZEE3sRqUkIZNwU0ozlt+44vDrj5kPTrk9UN4+MeyEaZsjvGTpkTC8xpsnP0WKg3XYX3XKzYEmGocQcaabibQZmGfh8Kgi1VC3CFzRVZoq0XU+XjV0DIp1HEDCD+UEMKvL6rG5SjCA7e1bz+z6JiKowSYX/vT7nSKVbXWmHLIu8xp1q+WogxfHe2NCyFSyCdk6kWk4kbPQEbAaVh/JYGi4jXi+RIeMu1OywbiwSOXwyszFwy3p5U7VxnI4Ir4hA4MksjSc8LZq4ix0FkksPZy2uiwsj1okw6oxDAGapjUww9KEJhi2MD0aGVJGupNdcXWsOl4LLgktTmpK9hHthmahiJF6i2BFCinbuUZfRPnRb8pQyjlh7K3xj2akFvJlrJMxzHrIiIGcY+1wSRFkgZGIkIqSlE1yajWSOztNFE1MwE0Rlhl0m9jvO9Xg+qqzf1B59GDh8aPG40Pj+rqzPxjL0uk1/CU3aZUqrg0r651qwjR2pslIQ4NsJE/k1CmjMCRjGiv/4j+ReOnlL3u9L+kbcEQhGu+3SNRRjarCzOkEo/xEWm/mwSRyGNOrvRYRSCmYdlmFkhxNK4Tlp30i9qU1CHoFllagR07PBjpPiBRrx46nrRROpYqt+2hSYRhSKLSIdWLMTxjwWVfjeIW0hre4vTok7kmI3NNX5gRAxccnQJKfn9YTyGF99k/XUK+SR59erZ/BPHhiqP9axxc9mHUGWEQpCD/xEccG0GZ4g5m4wW2NP02uuBu9N7IofBamTxl+G/KdiieBHrVzEiVVSG0FGGoU1IiTeqftO2m3oduEssXtIXlKaLqFSBQ2fnEPfb7COwemd72IXNxFlhuU+1vsHwr5fif5gjwHQ3qe7aMljOHUMFniPqthNkG+jo6dO9yC46eVNGWQWDBVFbMZ64p7Yjana6faGtfbo5ue2hE5POC5t73Cz3/XV6GvustPySl+C+PIZ3V899dl7tw9MtiJXQCFTO5C8vCaEVFk1S3LiaMpp7hSWyURGaStunmNAlYFFaVbmBdnAOlkTXgDG4S0bSQKhYE6GtQNi4HTVqbFeoh0p0gi5c5OOnkQxp1THyv4wihjpFJYwaziuqApPE2atzCBFgemMGxOc6RsqDMkYVAQE7YlUVZ5pZnSTWmeQRewxFIbkiMSOwNqRrZM1xkz5QN37/OB99w+X99nGSg9jf/uX/8Ql/aIPjds6fTF0d7RptG18QRSyV0ZUkTRS+o4nbGCPRJcJ+T2gKQjw7gla4YuWJ/RdkS9kcxYDo1+fUQ+K7T7zrRVbrwwsftSYXhpZLzjlHwNAq11zA+41Eji8QD3VTtp6ezvjPgFcCvBXei3MzIIfTwy3q+kr9giy4gcK5Dx7NzaXrDVkb50lJFyMyOjopOShxQGjwOQE8Mg2GpW3okEWjPhn/uWffgJvLVE/abx3GbEMKo71eCIURU0Kd6djQjHvTA3ZRrhYiMh0cLoa9FyShQ0C9ZTSOkME4uOXwOzhkpiSMqxOskrk3QKibxWLE5Q6JOEV0MB1Ht8lAhMOaFIRZUpK1NODEVQh9YFacbSO0sPw2+xMErFndmg905xD1CtO9U6zZ3WAggT6+CZn/vYh/nGl95+vk4CZ4nXqef3KoP4k3/kuQKTpwqttQB8VWX2bIxcMvqVP8C33YwuMCgdIafo8qYejElxOEZwEclmbIWuZCyx51BoPfy0VByxyo272wC/mjOkRCvRG27VyEkZB6VoHBokzANxyWSB3bB2hc1JrdE/ccn+spHvTGzfdYPhZonOOI5LotaFZYY0OK13Ngny2hlvLSLP66Fz+/aAJAkfJY/CHoGhQN4quitUE+a90S4bx8tG70afjfnY0CmSH5OGHw4SnoS+IqFJHF9RVfewjH/nRT73o5+VIec/TpaBH/mqHcPSoQsphVVHGp0pCSk3lgaLLMzJkeyIGsPKYhk1s8XZaQSJ3BwTu6uESMfnhVyFkgeGMaGDgn1fAAAgAElEQVSiFO9kMrs2wGcK4/GC+V0D1iuDJ3IpIDWoDBaMKhPHGOhe6J7R1EEL5pnuCZ12sGTcE96jVq/kOCgaeB+R1JBbjj3KpJJpK9hJ6pRNQ5Mh2mPuSJiDp5XxGODoGnMvsV56d7LMpPyYH/22C1SeNA3fqul/90OAn/jnv5asYcAuogjGoGHQbxKN3gxkqagISQqTQsoW7FHr7DbKlASVzt6UtnfIwrBx5kMEV2y3wsVFZnNTuXOrMF0oF1tns8mkcWCQaAwcj7C/rBz2FZsr89I4HgWxMPxIHnNCGpgE18UMtAQA3GrjF//8N7zOV/aNN54I5DiztMVXn0QRvEcTRFa8qXcidCc98aYuJf5fkvAFFInHzcK6P8X/PYs01xpFRNbzppzZwCuJ6nw2lacqFFmZWetDBOvJV3wjR2hA66u3lT/hQrEqjNKTR4q0cYKcoYTHVjc7/aLw4D4/hzVpkyepiwGEnQ7FpxflT31cr+6r6vonyYpP+ovr70ivnRDxRQ9mnYYC/84f3mJDJN60Y0dfgRuvGNvLDAdDO+RPONO9DXoUlqboc8LytriQCzCbU91oLQriqhaR96ZYFfJGaLLQOrBLLPNjXA/s+wFv4SfTOyzVqH7ED0aSG4w33gYbY/P2zJ333mLz5W9j897n2b3zBXS+i/xqo15+FtkOpAfCQYNSnNOGIe0Y1CgM5DQinmkPZ8odKJOTiqIpRVqPlKBni4BlahWaD9RmLMfOcnCuLmeO+wP7h3+Pr/6ae3zkS56PiXnu4MtbRpFPjT/30Rt86J2OdsGykFezPu9GSaDL6geTDVZQEXPUobgg+dT+d3SlFYTBY1BAaWGAvckrUCmRnNS6IBO4GvQc6V5ayXnANo3hYIgLRSMBacjCkDMihkhGHUbPkAq668jlgB8OZO8k6ezyFNHVSSk5sdlOtHlDViPnI0kSYpmkBesFaYVmGbGGuKIpgLysQkFxnUlZ8WVhKs6gmeyOeUPUMa/gTvaKWOIHv05J4/RW1xD4V77+Ze7c/iy+PKQeHmFXl0gzZGHttgmpF0YSah2uhHK1kC+VsSmYkC86pge6h9SiX12TliXMRutMrmGaK/MEryy0x5l0VxnvOjo4JQcYasshEslsoFfHOdIcejPaodOvGvUQNf0ydT55+CwHq0jOMAlpAX0Iqe04vDthw4zvK9xTOM6IC6knRi648JHbuwvSVpFAOZCBNV1WQTqLOp4VS4RsF3DpeHP++ndNbFzfArSeGj/2He+nEIfyhnP0OHwdro3DQelrl2/ctJWFdeoqr+sJMQ8GB7oFyKDC0j2ARCdARQm/wNQNpDMNnaUpiwlgQWP3NXFnfW5uRPNFFEnBEDx1LtUdkjNjqAQYZW6UDNshMeoJYDKMAOl6t9W3IqjzSeLr1g3vRvfOsTX2vWPtyNIb3/dN7+VnvvfD/Mwf/XZO8vrTOHGuVib8uh4/BWjxBNOCNXWRp7uIz8YQlF/8K98f7CkUeiMZVFPasYcZfDOWWulmzEsAkZmO9yVY8Y/3lBIsQGmVtBy4/8rCoI4mpdNoD45MY0IkDviKMxE2C9OQmcbMWArbKZFyorXO8ht7DpeNNBR2L255/u0jOoQvZWs95Fsesp/eOzrCchXNqMPS6d457BfavlE0sduGt2US8OoMa4Fu4lSLuTios90qm5uZcquQdwmORHN00BUkZS32exwU3KOOQDiGReaa5LkyLAzSsHnTw1m/KWlPYUD4dz9wk9t3DyxJmGxkS2UjoC5MOXF7mLghxg3ZsM0rA4IAx3eeGH2Da8JGpewb4ysDdmtiW26ipaApR1JlE7ZloWQnmVJfUfy6UN8DWq5XuoKgY1hGaFbwRHOnM4Y9Q55JydcDXkOINdHGYxzeukKSlTlR43hnlSFB8UySI8O2kx4URoSTYU1Spa8yXUSYu3CwGqFVGyjbafVoGzCd6JKpCUiF2jLPH/f8xAcv1uv8lsLi9zJefseWD71vR8EoKwsZS2HnIZ3ixjZFM3ujwnNZ2GUYc2JyZZuFLMrGZU0Hh2k25JauViHC3YvEtC0s+wWhotWoaxJxUyBbMA8LbIswDHCxczajUHI0m0vulCRYF+zY8BZJwosJ3itCC/mrGM0MVeNv/OWPvd6X9w011OXcAAu2dlhgqAhDXllM3XBjZZpH4u4wxB6Q8yqUl6hnk7My1ommByf5IIjK+Y/3eOwTI/5UkQQ4xZn1JBrWM35iAqdTANmJMQUpwVKdeYkabTfFOdLMKWmVvHuE+5xYYS4n3vB6HQRySqtM8uTR9ZTZ1gps2YopnM7BJzb7CQz00+v3E/gFfgbF1iHy1Id45dPwJmJmAZCE73vfSOZAnQVmQUxoFzBfwHHjFMsM9wR7p+O3D2h2cm+kFsXo8ZSaFfy6leYX0ooq0ObVGE0M2gr4FEF0oC2CW6OMijdw39Ok0avRDo30XINkTJvMwA6RTE8H0jhwaAm7NZJevkluz3P9D5x+VSmPOrZfUNtjMkdqiylFM5Yag06MY0g9egd6oVBY1rhhswRakeRQF1JftbMm9KocD05rCTvM/OSffDc3clmL8icb3dNFhpzfCM/eeHG6jMhUCF+EFgdAyYIVB+0kV3ILuqh1C7bVKWLcBLeYS66GZ8F6IIcmTsmhn5/7EkVuV7wT94649iaVkx5G1RHptAlyTXjta+xrLHiJHBvWeojUdKCMhu8MPe5olxlMoB+ZtKCeMAHLR4qGN9OUIa3MjMEDfOtFkZrwIeMp6PMtG+I1GDYr4JvSQPZMagHcdTon1z71TPJE8YZR+cE/eIvkm9fv5n4RjG+42PHD33/BfDVzvLrP8bJyOOyxq4bW8BPaXHdsf2S+NFovMCb0YsCnKGxEDbctYo1JR5JMDDqRmpHNUYOlHbG6pz3ek3Nhc1cYtK1dHWXGqG1B8ohREa1oziy1o4vRjx2dhXyRYGhI7jRx7h2uuHd4CH6A2qC3YILNl9z4h9eRLnZjB3WGx4rfPyKPZrQ7WW9GUEU1csvRvlrWDpBHyl02CVBlETiCzCCzoF3QPvNTf/DiWV2afsuR106dER3ZtghLFzYjDKlFwa0SaUkCItG46S5oclRWuZeGjB6LdNWsUdi0lZmUNGKcu4Z/R7bMMIKbAR13IWlG3VGNtQQN09HuAZKpRhhLSXYuhoo7zSWSE51zoymLUZLRW/h5DWtHE2I5I/oCwcC28FHSDmpO7p1qFoBZbeTVB+lnv+/bzvucr53RaAKeOpun53CKR+GJv5+s6TvPGNthGrdQXliL+VO6pa9d/xbJuzIEzJViLqa8bl+1M1831I1GwUTBKgo8/MzMrdsRfpKsYVdOnzzkPKoRUJGUi6JscqJkpTVH3dBemT9xxfyZmemlCy5u5gCfsJifQHdhKkry6FyvvWUuH1UePThw79cfc3l/4fGDyv7KqbPz4JN7+tzpXQJAWO91hA/GY6Wk1HXedHNqC+8tHRO1xUEUVhuB1T+krjIPbAXWnvo3wdf3mXH3zo5nYXE7vweJUkGToPkhwxW8bZdgU9l7YdnPtJQjlbJktpuJ0iO5cJTwJnMZSJLR3CF3rDbSvON4K5GnI56PFO8scsRbYitGP8Jimev7M30WLr5E8f2BVmusMZZJBvGOb4CjySCFD5pZJLeKKmYJ8xShG1nJm7Up1AvSFC3j+jyDRe9poaSEjsAdo7WJZIkBDX/A08GYzqBBWIbMSIK6xHtNZpwjS5kpZDbXGUF5zEjdXjPkBKTPc/XfGq9l/NU/+81cqCJuzL3HPqeJIsagBVJiTMoNdS40M4owYZRqJBHGLGxKRpIiatRDYrozcL1vlEEwywixH+ZRqXOCCuJG806xGjYl4kAHNcpq0wCRqtfcwr5BJGrs0eldODbIGO5K89PBPlhA9IUpNT76h77pdby6b6wRYHV8dlqeBVmbqhIJ4RIsLHPHk5BzpNpqjtAalaihTswl8/C2W3dVgqEUQE9fpe2RgBmsdF15zitZmO7RCFDkbA0qCG2tU5Soa5LGo7cGJ0SpO1zPTm3xHJZq8Vo8cBFfGZ8pyRNmupyM3n0lWvmrCOpOGMOfmFcndtUZtJInAUG+/uUrayzw9qcY8Cct46mTeL7srx2Y/6IHswThpQH+yS9dkNGxJtTFqUskJEUi03roNpAqDGgcpJLSM2hXtCu9xgQ7sZS0RWGSHqwXvBhDKaSSaPtK7+GmT8rgnf1ecam0NT6kXl8iUyEsvPcUVdxnTCtJCrMabLeUMpBHZ/uekeHdW+TuHfTgyP0RmzPyKaFetZAjUin7gXprQUsmq0I2TCtGjsQMBXKltyiUFoEZoXWhtkbuQl+EpVXm5Ypj+zV+4V/65jV2fe00f04HJ6WBV7Wwn5HxXe/fIoTxXhNnIGJ3s8QciiIkTGOTpfN7y1zoK0MBBM+OaBgEqoGm9hQjySkSPg7FMwdv6AhdDNOE2hjgUI8ERHMLlkrp2NTJSyFJJkvC2oLiDCkOCaJGYURccRptnGOuP1T8mLC+IN5X9sWOYZOoi+M5fB9UDU+OWvgzdJkxljC51AG3TpeC5hQdwsUZh4QOhpaOSUNzIP6qA5lKk5GeoGXnfXePfOlLz66JdwJ+6Ue+ibkK6g2hk7TheYO1iJynZ+quwJQomwGGhZQLoKhoGA2jpDSDKfVwRFuHFmCDtwNiidShXnbsAOWGR/fXwii5e4VslJIxM+gbFu9YP6J78Ao5DehO6b2Tk4Ap0jqtGh+/d5+Pf+Y+pAUOThoawz3Qew19bPCVl1iH/pkrLl9pXP5G4/jpmf2D+/R8n67QWyRs+jEiXX3vaBiQBBNQIY+gk6CTQwEt8O63Pebb31k+Ry79bI5v/7IXOK4AS6/OLJndqFys+HVTaBLpgIYwW6TWWBdq72tB5fTUkd5QU7pEgaEeO1lWMItiGtcVGLAAuZYoPIyESsdYEEJSI2vWqYqFx4f9/+y9349tW3bf9RljzrnW2ruqTp1zz723f7nd3Sbxz2C3HZPYOHYiEmLiICyw2wgbhJBiIBAU8QBCRALiB5sfggdEhHgLr3ngjb+Cp0hISBjFdtvt7tv3x/lRVXvvteacY/Aw5q5T3RhoR+3c2/f0lI7OOVW79l6119xzjvkd3x86gPro4J09qtw9wPkBgnl3xMLOVAlPCRmBGOJQOHdJfQBg4dcU3VIL/yxemaX2PhJoexiy/tYv/xy/8GNfCH+xB8CBPKjNzt5G8Z8oGH14UZx9I16XkXPhV/6Xv89+l9kONVhLmuIeNBn3MqLjMSF5iwTf3sMLqEysp415MaQ3WnNefP05u6ePSD4SqW8a+8dL7GMiiFWmKYr+PJXYkXunqGFfP3J4ZyO9fcHlp/e0FrLF2hoNobVRsHdDEaqBakKBF18/UVcn72d2b1xw+XTm+unM008sXFwXliczxxM8f7bx4usr2Rtnz9lI24y49CxDbqGCjxQySQEmn6eNju5zH4wsA9rZP2kcQOzsnynR5d/nP065/p05HtaakwAq/K2ffIvDDDoZp5eNtWycJqfpDl4ubOpIv6P2igs8EuUiCxdaSNqjJGcjk1mOCb9M+COnFUVSwosyayHt4JiE4x3UL2em96+YP5vZOII68zxDF1xObOb0pKjMAWAB0oZHjtSQnYmQcwovHMvj94v8ctdDyBA9QjgyQtUjb7x9GdK1HHVm2TXWk9HEwRXVCc7rWc6IC1MKRr1koZWGzh05Cpcf7NDWkTcrXDi6N/ZkfvXHnpLEvrtH/mOON6929B4Nj603FGUzwDuzQPHGXuBl7+wnsG0jaewZF5MxFaNWR62TBExS2ERgSHfUK3d3dQSUNTBjKZB24K4BWPUlPN8EsoQvpCCkWQcsH3W/eKQfmoG3cY1OnAe7kSzAL0EiFXZ1aof/4BffQuW7E+RbG6NO0KiJRi8tcAJgTgNYH8FgJct9siCDMaU6wneUke73ivUuMggzo2bR8ZpRLwmtDgAd6CbfSDY5U8ZG3SYMoqecOQUe5AUPgosQ87qa0e2MGYUcMCe5J0WICnMJoM7Ojawzy2ukJCKvGMic//6mDUzGY159fcg1x7V8o8rizCQbUsPzD/rD739r46M/s8X5j39+4rB1VnO8OniiA5uFv4c3owlsEsZsqxnMCWkGNbStZ5+Q3qKglupkVaZnIPtIjUhSMDfSCiWXMHxLxtRGwZ5Wuh8QBGsn/GCURzPJdwgTrR+p/UBKme6deZrZT5nuG2CIH9FZ6YuRZ2P6nJIuHtPLhN4slPcz/f2VJ+UTzI+d3vMA6FOYjGsDyeGz1MIjjMiCYm2Oa8ZJbIeG02FTbOuc1hseP3mHX/zhtwk/Ovl/dJtb2z7+VdUfMX7mCyvhYR6HtoyQPKK9e3WQHh+ybDTsnlEiGGrD1JiQDaoIkoJK6h7SVSeDBj3ejpkuA2QVIukCwXyNTSslzDpuY4Fzgp0yN+RoYUArGWxCrcQ1e0GtYhVcE2mn5MfCdLXgq+K3C5xG1K+skKH4Dj3uKD18K9SdeYCZWholZVQuwDeK5MFiaPRj0GeRGuEFkhCBRdZIefGOexin4kr2ldyVX/upS0qZXku54f/wiz8O07u4vcDrCVokgFk/4WJsRTBCDtPFoFRUJmo7oJqIjocx5x1ZNDpC5tF26YY1w1vCWqPfgNw45TIiwGnh2VJbxnyiNVir4FS2fCTdLdhtYrqAtHMkxyGxTFFghxSmI+q83Bq/9+xdvvLl9+FocGfI4YjcGhxW+jrhn1XSD7xN+d49p++B9U2nV2X9wJg67OaVlDtiStdOKmCz4gVmNWSOzpAMxqMDJ3NODr/+0z3i0V/DOfRw/MSnn7A14/ZkuCiTNjaMJnGoP9UWh+hhnJ1EqBIHpSkMWAYjToL5NCSKiuLew6vBoasifjZB7ojkoLQrKIniY60URVKP1wMY4E/AXX3EMDcyTiEMdaN7F+xXt0TRoMhvOG0AdSUqqAEERAw2FgEYEYk95GSjgRrqbWfz8CvsVgO0daNb5ef+9Gf5rV/+6XGFISM4/xthpIS9mlw2CrBzIqK9Tpvjox/nr18LSRKlKO3USC54jwN5JDIZqnlIDjQ6yEWpdycswXq34RaHsiRC3RJFW6T6vTyRrgqtbRjhnzaXJdjNkrm9PdBxTl+74fTVAzxZyE8zkxrHLe67eHimnppxbJHaNCYb66nz4v0D73z5lv1bM9dPJy72iXnhPvWtdUOKoAUu3pi5fGPm8o2JZx80bp9X6t02DJ6Doacq4RVi0fjJwgDuNMzwRTF9mJQZKVFJJZLOCIDVxyH13Jk+s2Y/7kNGIxWHH1rgqb3HTpWmsKbMclMou0bdOVk80ptVKZ7J4mw5fGFTdmbJnNTJlrg+Tjh78nX4yoqEr1XRxJQyJkdASC8m9JTonznifoeqklPCW6UUWGqmiJLEg7UsShqJZck7xSdMA3DHVlSNlE/4ArU3nIZm6D1BjUampgQoL79+oGvGkyK5IeLMlwW/WUiasH5u9gnulWmGaU60vpKSMa3gLxRdZ/onV+riuChzSaTpgHT4/NMjn3y0i0Tk12A+fbvH//gf/iTHlxvdO/UYTZIrdcQaRjCQc8qkAVbTo+GS1SOoRzJTDiDAXfFbICVs7dTVOdwZj3aJ07qFjFGELobLRMMi1KIZbIL08JFMrjQa3ht4eKfm7qjoUHdVlNizJ7aQeI+1xxxEIsYuThMG3fgH//0vfLhv9HfMOPtlxf/OIIwSYE2SYN4aYf9SNNQGqoJEDtL5p+ijKXJmG7WI+buvKM7PnUY7LcK0hpzQox4+M+2C1TTS7WWATX5+jnPtFXtV7Fnnq/CQPQ6ZYdQ1gYUkiXqsm3Na/SyyidcbNdFZ8ngP652Z7XJmXp2rpW+EEYLZxR9x9jvXX4P95X/UY1497lsZH+lVLwE/9YbQDo42Jd8KR3MqhtqQ1LlyjMYv+TKhLgFsVecgkSbYcGYLynhOhXIj+Hsa0dKPovsvKqg7Vo2NTs+V2jq9CW0wV7pt+AbJnLR27GmmvjyyccNW76i2UqY36aajgwe1H5nmS2SamS6uKCkhdkLeeoP0olB4l/lNYfe5Bf9kYu5vcPsHX6bMl8ylIMWRpOSyI+WZrVXUlJwWiiS0CCRhSRLsisNCv9zhZKwn2smoh0pfn/Fv/VVlksjU+WZd/eskoziP/+qv52C4jE4HgwFgBHW3zK8QaFUhl9Fd7Ip2QAf1UiMyXADpHkwCAbSjqaNd6CeBpQfQpULvTmvB1PHBhDBfIe3QrGHyrmGIamLsHu2RNZObo3o7Frg5uj5tYT/t2CUhF8KDa2qUp4l0OVN0Rp4LduP4eoiCvnTKNNOtIi1zsiM9ZWSkUzlHks+4F1IV8mlmnjMybeNgeSKJM/k0gLJLiq5jOSvjYALqlSvZ+E+/9AQv84dwlz+88VZWfuonV9rhwHp3oK4rbe14ddLZk6N3/AyIinDYwkeoVejbRiJF57hu9K0ibkwl462H79Vm0J31q4ZWZX5rz/6ijDS6RqRRtljo3XE67Q64AymN8lhhzCMjirjahLrd3Icd5JTIi3J7d+L/fOdrfPndP6DfvIRDh7VBAqk9QgeWO17WznvJYCc8+sIV0+5NTr8H9f2GWMhDSsq05JTkzIAnoZhGapRCG+unSeB2rTq//H0L5+7V6zq8J0QSUoIVWgnJXe8R6f3WsqDuTMKQ9YXfT0j54sSfx/pfAdWRyiM+Ah8iDbE4mDeqK3ShuQ2pc5i4g7DVAMzKqMDEHK8N8fB0FBHwPtZDCVkjozM4APs8GF9wbsrJAFGdxGC6jiaVntN2HGZTfMgJ4/cJmaFbFO6tgvWN0husjdoamyd+45f+Er/6sz/86v180G49A1ZRrsl90+d1Grvlgv/pf/1NtG4kjLkkdrsJq41pKpF4mdJIXeoI4WXWDe5OjVsKYo0+Z6rBWp2bd17wxqd2TDjZjL7f0VsEoCwJJjJSN5IZfT3S//AOq8LFJ/csn74KQ2wN2ZkjLMC8zJRd4sVX7njvd2548ZU7nv3+kfc+qNTupIuJx59cSDau0Q0zjyaVgQzPEFGlE130pMbV04XlqiBz4fb5xuHGuP1g4/n7G3cvGofnFeuwtrAjWCYQS7h1MHt14BlyCXeGNxw8nGHKWboRqYYf9xENQPjEovyNH4V5cVattGLkXeW4GLwzsRPHHt2SNoFD4rRGsvLaG6jR1Km9s2zORZ2pe2F5tDFL4SLNXE97JoPiMOXORc7svl6gOOWHDZ1BVmWSTMaYiTCDnhN9hPhAJG9KNlQmFKUKzChzFhaumC0z657ZnJSd1C9JXVl0QjMkFyRnJkA8U3vi1DbUQrbdccpVhVuD3PBkITE8FKaXif37yptXV9SS8E858ydn8mcaeYMLhGKOtRVNzue/KMiy8rd/YeGizMH4+HBv93fU+P7PXHI5HXly5RxuNor4SOl2lgFwKiGPn1XYJPbgnBq7KcVa4g7WaSejHVamfWa+Uo7HinZ443Eha2cu0WBsG1Ab/W7DWxiIrzSmAsWNRAU2pAqYUU+G4Jh0slRSj/XMDMwt9mnrce0+YjhcyXR06iTrkVB+t/L3fuOvfajv93fCUOQVW4oAWsydrNFYax6SPSXArCShyMmTYhb300ex0/sAkDyeozm0e5AJziCVAlkGqDP+uL6yRbgHryTAo/OZIWxp4rXC/H14MjKsh/wMzZ0fH8oiJ9RFWxutuzNDf7zWWVp4z1i3gKvMH7hq+atEQx/seRk/x/3P8wBv8G/Ap2K1Pcsa+aaf/OPes4/wSJL40k9H0pFKYNAJQZpz0niDejdyB6tOnxwWhToMzWx0ydTpc6c0pd1V7Erwt4yWBjXQQprQtWGbk6eMJqHYEml0NopbVwwj9w5HYZJMykJfjzH1W2Y73bD1E80OtNP7ZE6RaqOZu61CuqT6xior+e2n6O1V+CfJguYd/hmle2FSZdELkhayg1hF5MSSjHZQKuDJESbUJdS1c2KtG30NKaR1A8+0CsdnLzhww6/99PfeK+vP8Zvnf79O45d+rCA0LPEqEnVgzwxap6SR3hCVeyxACq0EnZ2uZC2R1iUpGA8QjBn3OASuFr4ay1Afq0cKhoQpYBzeguEkEibr2APiqQhFnNN2g06GrHukZuptwbboHotWRO4oGoWXqob5n3XIz5kvJ+YnM3nKyGGB3gBDZGVuE50asiE1zouNUOhyQqjoVtCd0/JKo9CbkdMUwAiJLAnhXcQuyVlJHMiyIp4RqRTPPGor/8w/dflP/kZ/SOMywf/863+Rvq20bUVqxbaQFnQXam30ATjoWGPMjCKO11FAmdOHX5qIoz2jXfBtRZNCM8yU01eN3UViesOwXNn8FGBrC18N1TCjlVXwF4ZnhTnRJ8dbw9OGqKEOta3AEe8TzpHeT8G2y0rZ7zg1+J13/oD//Xfe4evvvEu9u6O/c4NmoV41bt9f+WpfwTbKvNBSZX5kmDjHl8F0LVmZxzyt3bHsWIYt2ZD1QGvhJ3Bmy5g5f+2LK4+TvlaSr4fjz376DfYz7NSZdXQEJZo3AUhB9R4sGQQkyhHzYIZCFDUrxCMEmqUAnsxIaSToDNZVHmynOlp/6g2k0ag0aegEtSvShazB0JlKpgxKehJnFgk/JFGyM67NQnKtYSK/JKcQ/Hf1IRmUYNGkrJh3/GygnWwUbMasQqc/oNQD0ujukfLYYe1GVw2woQW4+yOffIvf/Fd/FkEfGLyf3YzCvPTcZzxLpB6ytj7OY/nxf4+9KJ6VtnVmDeDldAp5e1bAesj5WkNFWAT6eqDeVfZTIqkwp2As0Va2lqBDskZrylKEabeg1Uhl5rCeAMFuD/T3Nq6+95oyCb1bSO7bxjT8SZacSMCzr77ga79zw8XTPU8/94g3PnPJ2997yaPrTMnRJTcEM0W7kVwoSTg2w90iRjfcodQAACAASURBVF3CpdkFyhQsP++xBl/NylQSl5eJ5Spz8SRzcV3QJXN706nHjuO0DjILvkVrWfxVd/p8eAlZ5pk4FvOoW3TUm8NFeT3mlunEr//oVQTaNI/GBkrD8clIbxwjQXydSXul74W+HLDbNNiXAiWTFmPvO7ZrQ9OJqcxoU4oXdlnZcc1eL1A1Tu83coerz+9ZEPZpIunEdupIz7g6dRzgZlFEFJXCnBtqTpKNosLV5EwqzE4kDpaG+oorIX1ebvGDhDzbC26F3aOG7C+xxdnWipkgFNw2jIZZJany6L3HPHpWaIfMYeqcrozDJzbWYuwUHu8vAMjdkeJ06axSUUmoJL72u415m2jHZ/zqP3tNz33Ukx/u/f5OGf/Nv/4DuMX+9Ma1Uldh8fB1dIdGpqQzQN3o4qh3cleG4wzqHc3OsgdZjWkKH7SbW3jjrRTnLANLBXHQ7HQRys7JBUpqlAxO4XgUuic2S2RrFJS5+JBo+0gkr4jnSJ1zw71Fw8h6SMDdUWvBKsXx9VVa8dOd/X+9Hd8dYwTYZPf0o/BoHEzt8RYmFSY1shEPsFcnSYfBlXMeHq/P3wsTeOXMZdLxFOHfLPd+W+FtpYg4WV+Ba2e055x26IPRdb748K0abLHz+ZKoq88XFObvg8HlweBqfq59ztcr97XQ/fXwDRcQzz+grDOc9XDc74nCSEd+yEt7+FT+8GkfPO7/f3xkwawkhX/jB3chy7npNGv42ujVSRl0e0B6G5S6tIEfwudD0TAzw1ES6Rn01JCL8D5IKSakSsTCl6zoLdgE29aDLsyRhISf0KAMa4PjTUd2wY7QpCQSbifW+hz6gb4eyKJI39HaRdz23tk2p7LR0wTyhNXv0Lf2SA1qYhOl5Jnl8Vu0Z7c0jpjPbD6RWwHLuO/jQ9BTFF/WcZSaMtvzDXsCKpGIaCRaT/S7EBf2duBf/rmJ61EQvm5d54fjpz7bwUDtnAIRHxojDn5nQzyAUqLXlcZnUDUw06yO98okEwwPLUVQV3J4vZOSQhqvMwwNNBlopgvUc5oYCl7IFmyAbg1tNXyWstBah9ZxTqTDzDQfoDiaM12FrI9jQzUPuqo3SjIyGfREKgm9FMqTwlInks1khJKMUhZSmcCDRq0eHSBItLUju5BiJpnIasw6A51GJbGinkAz2A2CDR+Vhckl/LPEcOn82p95PQxKM/DD15d86tM3bPXEWu+oLeRaugm2WrgDuaItgEszRyWTTMdhP7jK2Qs0G5uRDzOkBfOIhm5fhVIS6bqgWui1EZTBSpcOCLMIdnS2oqSrhGRDPGKnu0OvhnsKyWKf6A26b2MddEQOuHeKCMsMTuJwbPzu11/w21/+Oh+0A8/0hvdOR77a3qXuj9GNkiHQzwfy08wsIXOrg0lTVEcgx9jS7QysB1t2q4b3sZmasDbnb/1sggdR5K/T+Jnv+wRmIXfuFuDjubs3IUTMBGzmNDrC6MyOtUs8jJeLJEyMzeNgVAhD2d6jGrLUh79VgGKJYGyZCWX8P1t0qosaTTt1E4xYf2Ipja4xPoApDR8hNPbvbk4f627URtHxdI3u0rkL6W6krpQEiCEtpGvx/JFQJ4Pl1cypDTDDMZo5m0GrDe8B8vXWqa1j5vzGl35u+FW8Ak3PHllOgBM6ANXXRWb4X/+9LxEkmBSspbWyzxlxgxQzYcqFTMc84T1uckoL5XKHo9w9uwECXPzga3dcPlm4nITaJ3a7TDZne35EF+V4PLJTo797R5r3XH1mT/NX5rvWO5IKaUocPzjywVee84e/e0OtcPX2zOVFpGAi0KTz7L2VtvX7uetuVI9kwq0Gyz2lRJmE2i327LEGmgx5iBC+XAJ1zGUsDiZ5FubLhGliPYRcMAmYxzz0c7E/uueC3P8u4qOr/WAqWQ9248d9iMD3lsbjdkR7NGtLcnJqaE6IJlwS87Uiq2N2omXDUJwNkRTvrStyyqw5s/ieC51Z8oLkNYDEw8wydS6mxtXLwuMXE8uffptsd0y+sZfGMjt53BvZlFnz8PwzchEKG7gyyyXJF+a0I3lCVWhe2bzHXiUpgF3pzAh5CflR0o7nldoVzxu9GWWf2axz6Cd6V9KdMd0taIItd27nij5uXH+qsH9jIZVM147PF7z31ZdMU+P6U59Cc0HKBfk4sVHpvVGrc/I76kn4dDnwvZe7ONx+/KfVt2U8mUejRTeyO288Em5fOKk7uzmzoCQJH7brKVHUQqauRlYHa2GGpAm/deZZIpSgweUOlimBNUpSTCp9KqhA3yQaNurYcJ+0vpFKC7sbP6Ip9jHtRj11tt6jOUOG3KMx7SX2qG54jxq7MYy+75nVGXo0Rfu28dZnPvshv+sf7XGuAQa9YXhcgXuAT+4W4FKGnWYEJyWGvDPOiIGBSVhnjCYtIyXxzERSQq7KkPGFP2eAS5MGoCVA1nienINFfGZZgdPHc529sB6CQWfm03135Qw5jZ+1e4ZXNPVCxvgQyPJ78EpGA/T+OR+yp/zBC95/6SG+ED8o3/D98SM+3uDRCBJ5+FTfOkbxkQWz9jR+6PN3jLMxVhJTSiQhNp4SBTWSSJoxDF+BkQyCGZLl/r3wKXyKenVC65WZitJ6yDRchLaHy6TMGuhhFxBXOMLpruLHzvoi45fg2YNxZc40XePd8c1pvYJs2MlIuuJ+Q1s3hI18MWNmzMvElPakPFOtkh+/jbXnzPOe7kfmTxnt3czdegOEOWqlRjLUkHNIMSQVPCegsKREn3pQmn2lUXFp1L5x2DaaG7rO1PVd/qNf/HGsAPdo6+s1/rO/8hQzvWdjOULJkRF4TrECY1vjJGY20PlB0TzTMVvEVbDWTpJIoqHH4jJNEcWLvjLlVEmRjjQWMDHBUxrOy4roBhKHRpUJz4prwXrHbKZmkIuOXFa0O0tKIAfEK2K3EftqzlkorYMZBY7nCWhM80x6rNjdGtLJ3EmpUIoOM8CIEaZdRtw0iZSCoZEdiunwLMlk4nfpdKQnSIb1jiZIDI2/1wBnPLPJ3T/5m/0hjLnAf/s3/hxmd6zbilfFmpCr4DWThh+VKCPtK+Qp4g2/N3J0NEGPRS08tWhDi99pJ2X7mqGPhPlpAPRrC9DRvYMlFsmwOf2QmK8yU47nEIQkhjdFSbGZAlh4dngtWIsutfgOUCYK3leKGpMk3Dba6Y5jdd6l8tXb5zzvd5zmjGehLp3+4iVqEimYlxlPkQ4kOcGiAXIQkotg4/i9L5aOj1wXx3scApMlPvek87nceLC0vzbDsWHs7hC9fZQIragexu4plpJIBzTCy4+I7saBxj3ApapMQWS+Z3I1B22JLhXXKNyzGkVHcTEO9Un1vuAI5iCksXa4hSeXKrG+uVNG00BHly+Wyth77gNVJNiq4VvjlEF3h2AtxpwQ+tk3S4J51Qgqv5rTLN6HTDQbzINBU82pLXy83BqtCb01fvNLP3PvWSQP/pyrw/P2+LrMtacpzGyXaWJWWKaJfqyUlFjvttgzJFKXz3PCEIp0lgLORtMlmPTrkWm352JWbt9bWRbFTo35YuLi6QVLzrSbA6cXMH3mMeVSOVWjtji03dxt3Dw/8rX/631++x++w/P3VmrPXH9yYf8kDoRb71SPFWRrxnw9sa2NXjs25oubjcafsWQJXzYSniK4JJ0L+FELrN1ZTcgp1iQf8tgA3AGcMgueleNto27BUuwNvBlWLeLasXvJoZy72g+OAqctUqtS/siW4d+WoRINnn/nB99GJ4Nk1B71u4qyS4lH7uyY6KJsl44cJtIpkydF2hUQ9zKnys5muNpIE2jJlNzJPaPZ2KaV5p16ME7PNlrdQXqPxTOTZPZT5jotXO8yuw0mqYhVUgFNJRoApZBzom0nSjZEtnsfx947qh3Rjg/QS0dTJqVE3Qz1LeabK3d3jVUNs5X5WCg3O8ppwnaKPBL6DPb4gC6J3JUkE+vxyMXjmd5OYDf84Bd/gOXqmve+9gekRyt/6p9+AqWw5IlZZ7qFHUrvSu0bv/gjlwHCy3flht/KSGwUr8wuJIwpwZN9ZycKvWMorcHOGrl39g5kR1KOcybhlUvv6LriiyJJONbOW9cFa41iCSMc5ns7ITZsTBpoizPoLBZARY/npEdggCeDrFhSLCX61tl6RQd4TorGc08OOpg2kiAlytmrLlWmFGm/WYz/7t/9At+dHf/v4wyknO058AAHH0ruFGXKSrU+ZILhSZVGA+wcIBP9kWjmyZAEugVx/t7L/cH+c24EGT6AL2HOsVec6U3+AJxSIKVIh2bIGOPyz48LlrvJGX56xcyKpOJ4jHCWFso9w+t8Njg3HP2Mwp3BqfNrPHjOMzj1anb5K5aoD9Du/juvZIln8Ov8/Y8FMysr/Oe/UPCq0ARt0SJrHrGXJqObJcRBXyrzrWAXIS2og8rmm+EuwULKUETjAOmRKCHNmEWQTUheyAJrd2wT7FaZ7CJYJXtnmQXXTL4yki+YWsSRq7D5SnQnFe+JzEUsXH0iuaB+IOVLdG1ominTNWU5UPaPkPmaphtp+hT27jNKX+leyczI84QuiXku7OZLkAlPypQn9rNQ0kIWZUpOO5xYLj6JuVJSIknCTnvsZcZnoW5wczpyPD3j+z//f/CvfOHp/d1/3RhaZXkf80ZO8burgPSIjkehJQNV5kUjfhmldwOH7EqqsUhlFUoTtDlSh6QgCSkDKKYR2asSh0rvYbBtnsAHY6Ib1SKat1kha0HdEdlQJjgq7gt5gjIrlhZ6TiALcoDCgnqhF0c8UcoSBoI4k3mw9MwoulHYI3pE98okE/LCSX1H0Yr3GswulfgdfcO3xm4fy0yRHZMqIhEhnaQzMUUhZ3OY3NoFS3YmKuSOi+HMqFwg7pSyfti3/k98PNLE3/3Lf4aLy99nPa7IesCPt/TTidoNtNJ6p7mHoT+DSWXQmiJTeBW5G9Y6SZTkjjSwnlh75/TeRjnsmD4J01Wh2oprJ+UIBcALegLZjDIBewfrJEsUjUSc2BglQHiLnU7VmVpGtaNecYNWN7BE7SuzFlQmZKtgwv4qYcvGJidqLpyq0kQCWNAMfcZ749SEpCcO1emnMEFuNYAGTU7qUdSJxgZmEFI4CRp3NMHDMLVJ57/4pRxAm7w+a9ff/LPfj1enNaGaYWRW85DHe7CkBGEba0lyYRVjlYCOFgFNSveQGVbx8NEwBjjtVFFcHJNgPJEGI3DUE0sa98jObBwJNhWCpihYVCzWQJWQa3eLps8AslTDT0uTMomSVXERrCvZz2vGSM6TPOit5y7gKO7c7wuzWTUkFRrywKQdITrTCmGmawF4bdaoFp8FtUZ2o6H81i//LH/3l/78/Xs9+DScvSBel/EP/uH/RiKMr61tZIEshi6ZkoTttHK4OVBPB5I0lI73YM+sbcJcuXnvwOUuIdsdp0Pm7ScTp5sDj966ABeWi6hZ2u8/5/jeiavHF/iFMO8S1YKFfPP+De/89jNuv3Zk2s9cf/qCt77viqdfeMSjtwqSo+1d1x4FvDmHarTuWK/oLtFOPdaZHiwaGQeE6sGWdpw02sJnmaoNoNYlWjGrnZMS4zAjEnYUucTrpwTTZaKrcjoaW+2sFY6rc3fsHI+d47FS10rbGt3jGusWf+csY837+K5hAiEtUeXK3g9GcunscaQr2hPbVtk8semJ7pVNlbvJOK4n5DnYVSgjUnZ2L2eOe9jlHa1XTBPNhCKVfGpceIf3X2Jf7Zg+4s0vbuxIeIcihWOvHJsj0pBLSJpYKkxpImNkEnPPLJa5mPfB5LMSqWVNkOTRfGmCrDP+sod0/5TwF3DZFtJhx+4mwx80imeSz1QKx31luzLs8oSkTu+NSRPdHM3RRD384QG5c+6+dgM3yumgfP33vsq7X/mAy8uJed5zOLzPT/z570G2BbNO2oRJibaQnHhcbmlJXqel6x97/Pj3XEbzto/9C2GRxlyEZy8aRZRFN2bZaBSqGUk7uz1BqxQYyAYAcj2RSsKrc3je6N2DWa8bJwcGo6fnTrYWe3I3ujq1ddwURegWIHprEWLS3CnJQoljMW/aaoh36EZ1C9b+A33plAJMz8XRlEEdSdC7MKXGf/l3fv7DedO/A8bgXw0G1bArOjdQRe7l4kmFWsFlNEZUyBL+ZvhY+84sJw8vtjSYWwj35u7qAX4noimYFLYu4e8osDpUE9YWaYg2GFlnVla3YZWjZ0kgw1dLsPvfye9rGyQSiRncDZdXoJV9E3vKzxga38j2fMVcewg/nT29Hj5OXr0Hf5RHyKsO4qsXfQBufavjIwlmffGxYh0cpTfHj0ZyqDjaHK3n31/RCfKN0i4i5UtkFNJ5mJxZ3Oh8NLY+EgAGauguVAe/MrqdwBK+OjIrelGpeiI7aC0cVgM1EhOtHCnpimYyTPcgs6OkTEqF3qJbae1A9w1Njrc+5GM3yKT0U0KtUUoh6Q6fjqS3Po28nLF8Yn77TcptHPRUo/udSovruZ6w1pglowpzvWC53iHlwJwSG0b1S1LqaDekBdVUVmg1sVXj3//SZ8Nc+jUbf+Uze2bPkeAw0vhUnC5joXenSGwwpmApjJM1CzkLLRlSFBWnVUVkQrLgOT7xilA0Y5qC2IQM4pWPJCRHqyPNQvPucp9QJ4RUUbKwVqOeViRbUE3lhNOAHgZ9aQsKxsnwFjLUTAW5RbWTNEOOFDH1DMmYZ0U1k1WRJ4Zbph42sELRSOSITk4ALdM00VBmzzgvSVrJnoLSTxjWdyrdTnRaJIuagOQBDhrmt3i/wWTD2u5Dvvt/smMPFIx//i/M1E3weoCaAaGZsW5Ga+ASwfYme2wwTTqxiZyDjazFvMECxBJVtHbsnYT2THpyIoKfT5Ay1s+Gj+ERQ5nRnUBvFDWkTeAVvIRZeJ+YUgpzeFFqbVgNnxmvcRGJElLt5kFVtw1ednKZuLjYI7IgvZM0haGxh/g0pYWEwSVwMLTUoNnPO7abDQ1NB0JCXenJQznYBG/DGyLw5JCnpeAzNBFSF9rm/Iufk1EAfPwr9rcvFnZ7YZqC12QtcThV2qqYBRiuGqbA4Z+QcOKzKH3IpgG6o83oq2AnwSyDCXXzMM3usc9qJmQXBpUAtHobUrsBRDnQeh/x4Z0GJAn+igzJTlK5L+qM8Ipz9zDMFb/fhzOAWOzdIhHGIUJjI0usSQUoYve+cmDDk8jIIsF2BcRjTzPrbN4x9ZDQmtHdg8VgA7xwx7rRemfWPT/7/SG9eOg9cQ80vAagqR+28P9RSDmylVaLgjftZ0p2UmskVyZv1NrxlMnqXD8qTAX211cIwvN3N954c0ezzlwu6V3YTcrl5cLh9z5g/8lrdo8SF9eXLLPy/ge3WDXef+eGVhNPP3fNk89chK+aRyOptTrmSXSUdUqsa2PrkTJcNPZPbCQ1EWmbeKxNkvU+Jt082PjdjGqDrzoAgAhzEaa9RgvdXgG6USMAGFOSe5+T/WVi3iXmfaLsEvO+kOdgR3RXanO2U4/PYD6nSY+TxMcYdRCB4sI/98YVpkJdBftg4bgWus/4QdDbBWuZbBMdIecNZmO6zjQS5bSiuSNHZ+uFrC32uAyNmepG3T3ClplDO+AvFw44u88FGCR6pKRX0PSUTsyyoGboNMGykF9Upu5MvqFayZsjx430ouEvBX05wx34yx35dg/rRPVGubjALnfkq0TfJdrlRn0kHPYbx8uGHzqut5hXaBnXLQ6SfWbzzkl6gMce0vG+KC1Du92zmSFVeP61Z0iFl89Wbt47YSfn3Q/eQ69XMhndJ5ACklGdMDF+9HuuQf1jPLO+PePv/MrnOGC4BpuzpvBzcxTP0L2HT5Eo4htCiUAetyhS7heHDlvMSRWjSyNrSNqTOWcrhWQgo4G4DXsaMUP6QErGeqcS/NG1xXqj3mneyWLkAq1XJDu2RYepdKOoDmVJnJ2rZExjjSmpkd3JBkmNdUu8kQ6vTTPwjz1GLeUe/460wWBQRVLt8MqL4iZIMgzj9WGULkPh1QbWowLl/In0AKLcw/R9ABIwzqNxX+7pTPQeOAZnrPIB+NR6nAzr8Ak/f8/lFQcqAKao2wa5mHN4WWBH/iqc5wwjyUMQa7z2/WMCP2GwA+V+H5PhiXW+8jN4Fl+7t3S4n3Zy/35882J1No//VsdHDsxS4Jd/YmI6bbCGJMbmkKpgUIcu1SxkBfn9Gd9D9s5qBNCgfi+hSA52q+gOXKF7sKnaJNQaRmu9hsdWe9kCaW09GsLWoU7gASjk4pAbxSZY1/C0KY9wc9JU47YtK3kxFhs0X01sdY2JJJXd/AZyaswXhW7Q6TBXkkx0DvDWNen2MfkTGUkL/faI+xOCsrEfSQSVtBV6vuP68ik1d6wJ9HV4eC2IrRxfOE2Uvhm0hNk4qLbK7eEf8Re/5+q1W8z+wg8J1hpIyObyOKCdk6umkmgtPIv8HNPksQExpC6dzrYZ5AA80R6meSr0LBy7UdnwntjEsaBm4QpSEpqDnWI5UNm06pAvgFmjH8PPS0pjnQz3jvYdyeagIHfHPWOTwFIiIrgpqULuc3gx9RWzGY8lmNRb/KxHoh1JyI8ybiW+bnLvC1d6oltBpy2AtGTknMO/S3v4R0hCtCMIpQjiiZQE1UT3ilPIwCyZLJ3Z94h95Jabb9vIxKb0Sz/6WXpb6e2A1yPe7uje4+CiQjOgWRi0ywlvr54jJQmZyhaG033rYSx8MOq7Bl9fkGToWyNiXgyRFJ2UHGmtujbkIOTFwgPLE+aGs5I6iG1RPFsNinwviCSyKOoJxcie0Jawut2zcLKCb5lWG7ks5JSo/URKhdp8RA523DNIrJ9RBGaSCUn37B4LHNOQ7gYLB+lICs+wtABFAjieNYoFiwIiwjyMbk5Kxr/05zKm39CI/NiOL/3o5xhhaSDGlI2LpTAvHmbXIhw2OJ6cthnae+xJCq0J6yocNyIta1bmBXZLvI85wVwMnR3KREPwdRh9IyiJ7pFyaXgkBzJYqCbBOBWNr1sc/rMGewH1ALRk+D5ID3miG0mgn03fJebKuVJKCZIZxSKUQjEYa82UHHUPOYiEnLGOpMVJgtXdcZaASsP01PsIO4FuQjVn6xHM0bvR3Fjbxl/94hf4N3/qh4cs7EEhxzf6HH1cx24ubIcThZD51g6mo+9qiWV/QXPY3DhamOcXDVaIWafdrcyTcPPeC5584ppUO/nQubqYSGpstfH13/5D0pt7RJz99QXP3ntO2xo7NW6+dsPchN3jTG8b1ioQgGwWQZsx50SvLfzRumEp/PTEPPy1Boia5oTUGkbrKfD41iN5sfVIMPb7lKkAc4uGTPU+eapF0EIW0LMfCkKvRpi6h3z13H2PQ8yQSQ9W9rIIeU7MSyKXHPYELcJ5vDne7GPvbdQVfv5PNdqc2OZOf7SxXXdsvkF2nbRfSdJZbzZyvxhN2gmdZvKloUvCboXdEdKuUpLT8wDOp4qVYC537+SDcduE8rkrugg1CUd/xKqFtRqT7Ni8UN0paWZhYsmJPhf6MyGt12y1UPMl7Vo47qE+OWFvVtp1wd/cqFfQlg0pmS63CBsnqdRsrN5ZrWNF0FnZLhqHTQAl0xCgM7HlDUbIQbNhwJwUrFOrU+cDukViHrlgEmw+N/jKeydeHG6YrxaqHOmtIdJQ7UBledz5Fz5vfKPU57vjm4cgPNolisV5cUsOzZGcITUeXcDWhnRdAB9guBnSwW9PcaBvsdedXbSdTn3WeOvpgqgz5Y6bkbW/CgzgldF3lvBzDGSiBXuLUG/kafj+oVHrEWmySSI8IRXHxjU3TfH8GEs+mzalAOjvm0QV9bAayLbyn/zbP/Oh3oOP9DAf9yk8k4erDOLBvMo56n7389dj7Y/9IDy5jQcg1Gi+qse9j8rayULUMnof+8W58ug+GszucX4/e/3BPTPLiJ7LvRfXmIr3e9LYX2wYVARb9gwUjZAzXoFjAwq7/50DO5N78tVw4blneAnfaFfk8ur6XyFU8UTRKHxQT30TiHX2/Tp/+Y+zgn3kTpdJhamvtBo3TiuQnI0G7mRP9Jv4ugL5TaPnkKLoomF+fabdbYJ6Ju17mOuZIWskPnl3pAjrCBNwd/QqIzlMmLMn+kkRXfFkuAoNYWtKV7BsZBraDhTd0Sxhuod1xlqjQTBU2JHygsiG0Wn2AlBUMqItEsdMkbRD5h1VYf7kNW17gTx9zOkrFSlGlZWclJxhkh1WlPRi4f333sV3RksNLYWTV7o17GT0zbBdFPFbq3hP1Ar9ZBzqHX/7V97kPJNUP3JT4ds+/tJnd0zTHZQUi4334akRhMnmEclcREg5UOtypoVKdGATID200VhIqtoAE1SFOtKSwogxiizfBHom5TBWNzUmDcmNJMenAJcQQaTAzinTgqSFWTp+NpnsJ9QF10LEqyQaK+yg5kZPDV9BDztKn0myMpVE0Y5WYdJEVkeSk6QEy+wyUd+HdvTBhnTa5ux2G1gm24KIhe+OTHiyAQg3YA6zaIclF2a5Q0wwMlk2hEaSgvnEye9w6od6//+kxgLjIC38zS9dsG53cGzYehuG/D1RJJMFFnWSh1wzjN2DYZQd5Ci0l4LeJeq7Rnt3ot05zMryJJM/vTLvjWRBN0+DAVNEKNbpLxsuBXks4bfQwkx+lplpdKYj5TA2m+YRPkCNVNjWezC8RotGPaOtUFA4Aauxu05Y3zidVmoV1rZBck447iu9N7yF99LaKnYpyCGTdEX3G6kLtikpZdLwVDIb4LE7JkJ4eBuiUSzoYNvmHgfLanDQxhM7+918ePf+T3r8yCcegzirwbHZCKdQkIZ7fH3ykFRdXsB+goIwiVK3jqozT5EYeQgrScScZuFVpuLkrEwi7JKxJEeXYWJdBwV+FDCmEnX7KJCqwkbMQx2lhI99djM4WpjXup+7bCFzjEol5r2Ik0TI51yf0fYTjSCLjATzGflpHQAAIABJREFUKil5ACsyHLYbMUeUs3mp4xhJnIoMCk6NSHSPZljxQbfvzuYhyYy0wgDJvv9zb/Gb/9pfJqf0oLB75SHxcR6X08Tji4XD7YnjYaPVOPgAXGVnycLVLFzud5Q5sTfYqaFHp24dXysvf/899m884hOPduy2jd2jhXkR8mlFPjhw9fY1y+UFqnDz8o4kwgdf/oD3/9FzLi53LBfKLmskNKugrSEaiV29OYdjjaZmjQOiVfu/2XubXlm37b7rN8ac83mqaq39et7uuef6Xl8n2I5trnEcgW0RAhgTkgikCCmCNKBBI18B0UCRkNzgc/ANEE1ECwkJkEgHCxAxliG51zkve5+116p6njnHGDTGrLXPdWj4OrHP8cazsfdea9eqqlXPfOYc8z/+L9m0JAMANLJoL0253BsUuJ+d6wH4PhBRNiPT5K5lvDt3+4w1L8mkdXNMhIslaIXI7Hwn698sk6KGp5S1WzZKQxQzBQ3GIIErSVZXWRVKHjBDmamd7+7kUuA3Pjji7QHqzqFlWFM1p+oBtNAqwIX2UoH7lEzdCdxvnGSldni63TCWhTgISxzwzViWI2jQYqUsO4Uz/dPG6WdfUFun2wObCZs9MHywFedNXNgt6J5y/v185nLfkbEg7xe2+iXjsBEv7hha0KMiteE9QO8xlKhnWAaxGlYCmwCW1Z2zGp0dKdC3nvt7AS+K3gyWVqmjJyhfHF128E7xbDDFlaINyDLYvnRiN6o7TRrLoXA4POX26Q3f/e6HnJ4+Y12EQqUUZ10qMYSb05f8lZ86TSXK13f9v8njUAsn3zkM5ziCG0tSBGpILZyq8PqzBL5LH1QxjI5GAIY8GCKdiATdow9oWVu5O+2kSAxksm9iGCG5hy0SiHRUlCLK7hNQqAWvlVqS7QwgUmZT3ZEY2LTSqRqEOO1QQYU6nKOkWX0Rcu9UR3N3400vEA3xkb6ZAj/9vvHy/fe+tmvwTR1CqrqufllX9OYaFKNBptiHUEveY1VJr1AEv+r/mL6f8VWeFZORnhVGETip0jSnjwDYJAWLJoP8EXTKxsvu2YiRrzzv1SMrmeczZGeea8dstDz6XgXT7+rq1DX3Nbm+u7c4U77Lt+AbyKNM8urblScRfuy53j7TW5DsSha7Sg+voFrwlQc/QmvX1/ujjW8UgiEi/OC5cDlnl2IN8JJdDSi0s2BuxDPBl+y6RBjqafY5fLrxu9BMU0IoUy4WCdiUUpBQ/JK65LpUfA/2DS4+ODPoKoQZNGXUNIRUFYRCPQxKdJTCoLGj9BiIGe4PLKujvidrpVb2cYe742FgBd8M4oGxvaG4sGjnwG2yGIqzro1L3HEYjdPH0J7eUqtAfZIFXV+RsuKlEsVYTjcQN0icEDuBG+KV/XOhPk/gwUadHQVjmHC2wIbTxz9CWQHeeblOFfh3fjZvDTObyzvsk1IZQaarRYClb0wWnEFTzfh6ZFIq8wkHeRMWBXXHfVJMNZkMJUC85U3agrCUzxJpPpugl1PkkJXuNAIvXhE9pwRyHCmeJvFeGtIUJCOdRTsqS6YjVqEsN5QT6E1Pun4/ELuDbJSyEGqIFJpepY+KVkefW0b3nmc7XguqQVWnlA5RUlqhUFippcxo4S0PogruW84lvWOhZ1ealRAjdNBUOXyjVpt/PqMACwm41FC2Htje8fEKXBE/ICPlTFU0Ey2FpKQjkx0F8VrR146EEFooR2jvGevT9DeAlANGhWqFqitRFBFhuNFfKywLUjUBqRhEMbwIu/cpyQLxFIVlkpenR8xk2WQnyBh4rpveGb7l27xXylpS8ihBRKdERa0TPii7sA0jZOByBisM22mUBEG94tEYFLgblOpIuSa5FHZPf8Mrpl7K9A8oV60/SeW2ZEkeLsa/9t0JCH89l/5PZfwb3/8IggxnUDBPw1GzLAa6Oa+G0IpwcTA0pZkS3NRKxfEtWEKoBJ2R3WQJFlE8hGLQyBABUaii7KroIWVYzGQ7j8RBVTNRx/f0FLyEUUukuWnM6xhOg6/02HK0WeiIpAF9Fj2ZPnjtWGbxn4defHoZeoJVTBaMXc3hPWh4AnrhtBDaBKdQ0pMrhD0yva5LslNNjCIpu4hhWTv0pL9JDH77P/xrj+/5sQh7h8d/8w//p9nxVZ49PXE8VDTg/MVrqmdq7irC8bjSL8ZpOabhfzQihBenEw93Z24+esH7twtKRWqhHRp+7gwpyPMDNzdHtO8si3L+/DW//zs/otwcuf3WDdqEPZzt9Zn++oH+esf6LJBnGbhPVl3MtnMtCTQaQpgQmuQG82xWOspSchZaAK3i5rTMJWCfgQEZXOC0ooTn4/ct9SNOdtnDk10NM1FKUyJ+TYZ2YzbGgCLTzy5SCTClJ9nFT5+7Md5KZd/VEQq/9b1GK5XDCsMUN01/TnbKcFyV2lbWOBHrgSiOPHHqixv8iVGOlTie0VZZVuBQ0xctRh7Yi7O2W/wzoe9Oq9np9jCiDmLNRl96YheqbrTRqfcN0wP+VPEnQW/KWCabRU8gd7j3mcYKxkz1tAo00KCb5rUtgkfFQ0GV4YpRGDZ9SC3oo+bh8WhoP8AQlhDkULI5CSkXr4UIx3phKUf84tlYbBXcuNy9psTO7/7OP+bu/o66rLz4KeFnfuk7rC9uiB5sIvwr3z4gTMvBPx//1Pjbv/o+O2XaIxiVzmkyr2w3zJzb4hxFqEXpBs2daPMM8EyhVmRVomdjnIcduzil7/BwZqmVSylYGKVVJCzn0FzTGqncUJ3AhClVnfPDlHpFUkOL6pRHp5G8aLANoFSQ9GSQBcYMWtliekYieA2WYhxXJ+gZauEg5hxi8Nv/8b/wdV6Gb+aQvBev5Us4uMWV1sSi2Vx7UuHFCs+Ksoo8avhUAsQnePOWnWQwPRpnXTt/pEdek30yhUN49JBNptUkW1xZVjM12vxtAuAjlCRvMbjwyRKLK8B1pVrx+HOP7Kd4+++rEf2VY/WW5ZnfyV8pZsTJ/OH5xPlW/umqPMG463NMM7BHFOuri5Twx1myvlHHy4jgb/38kVrTuHNTx4dgd8G6CeMFSIvJigEisHC2RTI+deqLXYU3bwxdcuFxFaIIvTujOfUCXqePQt8hhHaAEgWiZGFOS9PhHmxm+NDJkVuwodTiLLHS6okiecBf9JRssLaw1FPGNeuRMWp26thpY0XerPCgxKsdfzOwujNc0KqYB4fykv3wAeNBkLrittMkiFgpbXBYTrSaVCFdC1p32qJ070hp2YU8bfRpLirRczeOZDyEg43CZez83NP0lEgZxrt7LHz/VOiSnbIq4K2wIxkKMDv2WKBaKFXxyPTL4O1BKiKpoBGBeoJY9apPjuzqVoXms/nqyf0cxdnd8JnSRTg2jEoCEhYXIiJjlrkQJaVDiXWfk1paazKyWEArJfpkaBTQh7z9ywBZ8Gq0dUGqo73Q/JYhewJLVhETlnDWYrQKy3Kg3h7wTYhzpSyBxULysUYuWaXOBXFDGVhf0KKkPb4jRSim3MSBk99Qd8GiZ2qjFkQ0I9ffsXGYjJUlgh98fMvYd6K/AYMaAhgR7bFjE1PmTJ369Q79Ffho6PuFdmPIMTu70gIXp0t2+kYMogQX6xnkHGkALg+FdlOpa9B9EBqE1PToC6OU+rYgX5RgUs89PbrGsEyL0zyA1XLEPYEyVDjvwUUMbeCakiz37GAia4IFY2DueKkQJf3VWLC4oEfDzjvroeKrs70uhBoqhVaUct1syUIyYia3QAI5kWwg85zuGIQVfuuvpA/LuzxMHqsXroaYI4K7yLCTfaRHxzkmAKnBJSbQLoOiymmZMsF4dDBgIeet4JgEZsb1FRYxVp3FyZREg1MjASYnJYtFRnaE0cmKEkT1sds2Jl577a7pI5Cls9hymD4OMdeGKkIrkd4UzO6jzHuHmRhU0rzUCFp5WyCJGCPme5kNLE/MgaUYhZSQZez5lKbNfS/CpxQNbCQL6D//9/9VgD9WYfVnbchDoYilFCFScnhzu3I4Ldy/viPMqMChLsS206pSS2WJC3pY2L/8jHp8xocvn2Zq7/0r9NCIuy3lhqeFZ09PXN7cc//5K/7hP/h9Pv9858O/8JzTy4WYflVaC/VmQW9X6u3CjnP+cuPyYIjqTALOSl1F02/kGtWp0+1DhKpBOTYYnoeQsMfr7ZIx9hJOD9gGj/NxjGR8meV1d3dk3hkZmz55DgJShAilk53vyclIJnOQ7MPH+X/1dMuDQK35s+NqqPIODhU4iPBivUfvDP2s0mpnaSNrLAHWQEvKh83vkTKyBmtO7HdIXWnPd46LI7uxyoEeQdVbyiEoshC60vuX9PsNTguuGwq0qhl601cijc4QlLLdsHvBX1TKjSFaMUnrCWplDKO/ueD2JA+0ck25zsZeqYaVkeEZIlhRDE/rCA1GH1iSbKjScFVkmVJnDTQKlEFrwoiFGBAXI0IxH5PD2qjXhPK1sl+Mfja2N4F24fd+Z+f+fuP2vYLUxjgvvP6DO7ZPv8Qcnj4v3N4MWstD8Z+PPzQE/q1ffcnZhAdNVrqNoCYHhqbKWoWbVXOfi0GTDKgQJQuSCnz+ANsOdx1aJue+uevUm5pyKjqMQbiwjUFER2vFTShWpm+SMQRGOCZpKh9V2PYgYrCfjS2usi/PcC8BLZUiTglFoyOhGY5hcFCniGWTtQNa8ue7s5Im9IcCYcZB303FxD/rkNm4y9oGrmSkIsFtFT5YhA+r8K1D4Xs3wvefVm4bhGVqbYlkXSULi0fgCpJ71OfOcvXuThwsa+GrFG/CPlxBIkUeU6Cv9c3kX8yv49G8HuauE2+TEv0KiP0hl/bHlEOuANf1FSfrytMD7A9RqMhAMCZ4dU0tlK8+5Mc/0+DxvcijD9d87ce388fbD79Ry9wzVW5kgx1kKKUL9trQ22Avg7IloLRHMCQwDcyFsgv3HniZgEIPSi35+fgsZrpTitB2YVvykBaLQisZd6qS8mJJidjWBi4QtaTf1UGmubwiyw2bgXlni3s8dobXlGAUJ7ylvGJ0GoUSFwjHOeLHhfKsIk9WeHFEjgVeKa1Vxl7QUhkaHE+VVSqn58/ob+6gnVhvDrAofqoU/YB6XGh+YVlOYM66SpoYfv7AcpOfVUSmLA53RJRCBRF8G4QF/9FvfjsPt7y77CyRwt/8xSf0MKSSsgVP42CPbH6kzDITQxLwUnSacPv8XNJTKht3JJaYcybiMcmiMemjHSoN1/GVwAHSV0siaeclmU2I0AhqqTRpya6LQvSCyEptnp5UkrIhIfCSyV1aLkgc8DhlcorcZaOmdGgLdlBiKCIHdosJdBhROyKHZMKUnXIM5EkBU0JT9pWHBaVIRcQoEfk7kQlkdTTU4VAyAY9iCBvohjZLWa0M1j0gNtzfPTCrAxpBVPhP/uYvMPoDbsa+dzYzzAew4R50G3jAZZ8npT9YsFdKPGnIy5097bbTi0hqMjq1YCFMOyLElkljLpQ7sPtMWw0duCtejMC42Jl+CSQqMoTu0N2xmXhTZDJXI7K7U5RukZHk/QGRWXyTGOlSBRua3mqyAHkwCLKDWUeHYyHsjEqKd0o5ErHi2qneMN85flTR4fibBMsu3ukyqDFlhgGUlPF0D0yEB52bPgmQOGmIehN3fFji2pZ6J4fPzR8JNFJqoC7UPbh4JqINycJgJ1NvnGAP4Y0LD+FskdInUaH3dFrwEDRGMksl/TUWNOO+XRhDaBJ8cNNoJWjX4mNMgL4rh1YoAUuBGj5TMXOfDWawBpGAvydQOfN3susoadt+TfcR1Vz3QvNriRl7nwdjNDubm/tUZUsC5FJmjVVpbjSNNLtlMrSSl0NFU94RyVL2UDaP2eBxHMN9JHA8BofW+M/+9q+/08y/6xBNCaiQnzueh6Z1WXhyc+D+8y8nO1lhdNZlQWWwvXGe31Revxp8+NENN62yqjJioXz5wGk9sFXhVIS1KW++eM0Xn+/cfPyMb33/GXVpVBJMvdznHrHtI9kL4UhR5NQYBS73O+MSXEYymx52n5JoiBlnbyPB8PNIIHS7WHa5/errEexmmAUhOnGwPBGUomjVGfaS9173tzYE4dMny4QxTxIhMwUxJjPbgrBkcGm9HlaZrO68N0fkIaPUq83Ou1l3qQi/8Z0T2wHkmcAaeDtRl2RizhBfTCwPOb4gLrTaqOUFtd4SDmU5MMwpvVEUTuuKlk6tlajBHmf62TOR/L1CsQMlekr32ZByRr1TLp12bvBMaS+NXS6YtkwnxED7THId6AWCe3bANsNJk3Urg90L3eq0jGh0Ik3+vaOxUOqCW+7DoxVKD4YU1DKww93nWTLo7Jg6UgeqE4ygED5QGfhkSms7EL6BrIwuMAzxwf6qM/yOh1cbr/6vLyk7jD24+yGwnfnBx0/SBuPPx4+PgPeeZFDKYe41VhujG0eHWxncEDw5KrtlzaZTmcE+pjmjJFX5zpDqsBZkbex9UJaS/oxnn40Zp1VBTahuFDWqGK7KrulEWURxWeiRtfdV4prBFQl+e9RUc1jFcUYXuk8WO9MbqyQDH9GES5pkw5lgs2CPhGW6dWrJ5pT+/2KX+6OP615xvU9VMpxGAlZVbhXeq8pNBE+r8KIpH6+Fn3+R9VIhk56v+2n2hRO0iQmO5d/KHjGvQT52KtmZ/Iof4y0F+dzM77nwuAf5TO29NhaTpXV9rfwjWVPXtqhkSB4QkbM7YhIueFtW29UMcgJZca3Gr8CWJJY1OVuPv9uPM6wmuCbXpgKPv1jw9rm5/m/AT7psfaPArL/3q6c0Bt6V/RyYKPE8AYBYhNhTx9oCVoSl50UzsiOSJSv0RZA6i/uR0i6pBTehV6Fp5HMWZbOGryONb3HGBcYStNsbYlmgTNDRhDETJbKVkt0ct4VrRoHLhTBh+ABPxsHlslHLc0JTpjOs53mgZzEkumI3ndiEw2KoLHlIPBilvs/SDF7tHA55jqj1hpUG/UvWZy9p6/toWZB6i1lLKvIp74BFhIoQGlStjD3YxyAuinvFt+Avff8179d3eyETMb7//I7lANJlGvzm7a4tjbMdKFXoAwgDGynt8yzKVAQhqcSL5iFOY84ZQDwTJ3eCobNjJyNvsMgFqADNlGqFEsK2KZhTIxjDGJp0clFDh1EWne+hwFXGg6EUPBZU21xIBJU3NKDELWgjUw8HUZx+7OjlQvQTwx4m6FGxxTBZKUVYa+XmZByenygPjaKN2oRaCqWsVDmgWhBdkeIsCCqdNuWrxWsyLvwWHyeMlqmRNuih+KjIlLS+S6OQG8W311u+861X0AeMhxmvnDKuMdK80QzY0wdovBJ47rSPglpTytcoefCRwGJkBzdAWyCiIA2qEQeFL5TtBPW2MWTgNufGyE6PqBI1u8Sbd8ZuU9Iy6L2zWRoi95HAqpkTIrhlWp1FSZDbCzGccizsbPRhuYaNIGIHFHvYOZ8VUaOWI9v5DQCdDZGRstQnBzg7SxuMRdh/FMQ+4A3oG/CL429A7gW7B9uTOeYd/N6Jnuu4ToapkUDz3/8bT4jMw3snh8qUkgYpU6YkGH8QDrNaqiQTyyy9z5KVlCVJjfR4zKIoWRAecL8ZlyEMlG6DHj69ywQXoS55EL/bLUGwgCjJSImRfhGq0EToe76PopZsVkuAaxFhmTt0qULVmVIc01dQDSmOI6goi0CpE7SzZLsGCbb6LC4zooJHACIEdsugExFH1a4+vJPOnybxTqVIpkilmakg7rQJLlhk9WTT/8gdrA9ObeW3/+6/TtF3N/n3v/7d/3GuNck6Cs+GjyCcWuO4VN578YTz63vGZePD5wtuncPS+OD9DyGEqpXmzheffo6687QHpw9esjw/8fSm8tnv/4j/83/+PXYtPP/2LV6c3Zx927k7d/YRXErQu7F7MqbO3Tn3NOjfPair0ktk6mpPSaBMmaCWlMnWWjAmw5QgeiAjQJRVsoW9aAJWvc8aYFbB3dKPxKddhc8DSH4WU4lNoA3GCHaLKekGENBcv3/u24W/9Mu/QNRKRhXETKubMo/J8g53Skll/7s4asC//XOdGIVewW477cG4vCmThVRwgz6Eh+j4smXgTATruKOI02qk8XU/cCwtgx5KAxRiwV04lZX7Tx8Y9Uh9umFjsI/GoR7T//YcyFbpNwv+ATiGjQZNOTPYFawJbg2NBV2e0BtET6+sPjxlXhibC2POF7eCxWCpZTb/atqdWJ5DdkC8A0HpuZaNPVn7IikJb0UoFIouqEg2GsPTX9Wd6sEqhVI6MRS/GC3KTIBVvC+cXwfnfWP4kb4fEQ/YCtKFX/u4UL5Zx7xvxJDptMjF0G4J3Ned3ipdg3MYPZxdUnr+waFxvGnIoSCHBUohXm9wMviwponSAhxmGFDtuDrrqaYPlqYc9bRUqgjHkkmnngk3k3keEDsieaYgORh0gR7CQ4GLOOdIWeQgm5CuzkATkMWSrBCZ3Dt95MGF4g8sZQZQ+awtwijR+Xt/91/6Gq/GN3HIozWHKtS5Zh9V+fZBeOLBM2DtwYumvGiFZ0X4zrHyg/cWnh+U26apKpC0g9inxy28lRhevbhmLBdVNb1krwFykiqda33iE/jK5OdsRJpnbWKRtf/sAyXf6Q8xqZLBLo+v91WQKR86kSmugSlpPSH61jv1Kl99RLvix9lVMQN/ZAJXWarJVwCxt+PxS3nbsJ5P+BOPb8wqpwgfjAv6ALJA3AbdLH0PSsAAWwbjS7DZofWiM6o7i+pwTwkx4GugJhzUqFXpe364u4PFiWHO2J1uG9GFkMJoQXuu7OJZlFehtgNlqRCKlBu03SJLw2Pgmt4um2+MGBArroUiSpzvOfcHyiLE0icQoNS6JNBBp9sFK+kII6eKvTlyPDhNK8WO1KfJ4Ghjxc+fQwRmHSRYfaHpiRGG+QPm95hd4M443CqtVmQMQp0oFSwNdpuDmiHDiOHc2xv++i9/KwHWd5Th8INvH1lqdl6vCHKZvQg3I2p2NlRkWs/lNVEFV9C14iWRb/c8MF6NuzUkTag1JQkac6MMYC5CZS4g6oWQNI0tJUHG9DTSfH6FXffE0qKAjHy/Mg9/Aa7ToFI2HoPtJZkMRfNYu1CJKIgbQnq8lbpSLQ3ZtRZUF4iC1IJYoZCx4bJ0uneQe3BFWTJpLDpaDGRkMSkDRCnaJvtI2cx50IEWS88cPYA1mIyy0HevateARSr/3q98G+0jUZhBBk84mKU23N3QAXZX2T8TxgayJGCVSXWCiackWqZeP0/02f0Tocr0FroL/GmyFGx01JSQMhkmJQ25LdhHyq3SCDKZCjbS28UsHveMmJ2XpBKnvxfk98Z9R5dGiFG1EWqZzqhByMj44V6ww4VKQetCyIo5lLai2jB2RjnjPanyN89T6rp/mZ+fS/rdFE+g2Tbh8jrYPoPLFwJfCvsrR18VxufO/o+E8QXs5+Ao9xzl3ZtX1zHcGQZh6aVy0GDRNLpGJp39yvyckku3lBQWLfTiKPJIcU/RlHCq8tZwnZTx7e5ceq5xitKWkgwmgbUmFC2jcKjJpnACij82WvatTK+qBIOuHkwuOqXajpVMN7yalbprehKqzKLeKaLpESbZaQaICTCYBHWmCyVBVijqMNdIUyDK7Bw6VQWXNJOnzHTjCYwZlj5hngDYcCd8YNOXycnkvgjh7/8Hf+1P/+L/KQ2/axCRTAGyRt1sMujcKVqoS+H26ZHL6zte3Z05nzuKcFuVkwbLWhk2AEP3C+/9xQ/SfHZ7w/2rN0QXPvqZ55wONefhGLy5v7D1PIYVSR9Py7M/227ZIIxghJDk+qCqYgVwwUeyR8NSFipoAluS++segd4Wzg9GjUh/uDnP7NFH5BoY5LMATyAsIqglHqUc1zmjJMqlKvM1mczBaxS78LMfVH7pkwZS0Vp5NLuN+TiuoeO5rr+rddepCvHG6NK5uVViUfqx0+yIRO5Z9Hnq8jIbw+kr5fWYSWHDcK1ZRzvEPLgtdc0EXK1EXVEPLhIMhA1HS2HbO20Poj3n8PJA1YDdaaUgLDAWlinHD7skCOqdwNhlo2fWNaUJPTZs5LVy95Rle4AYZpby1BBEB6qpHIlSsJFrcfQM7FiLQJ/cBgsKNZOCiyGSgSspCyy4FFwSoAiMWqAVB5mWFWqcnu60ZUFFYbkQLhRr1DC0wM04s7aflOPw7o+i6aenp8pmUEfAKFQPGJ1thx+96nz6ufH60x0Lw/sFbPqC/vAOjgKHDGLiOJsd541td7oLqsnyjRliUURRddCY9gFGk7nuhE57kZpJ4SXXnM0S9AzR6duUqogxmTcuUExms0qTWUhaCGgYYclit75jofgAPFAb5MrkaBi/8h1PD8o/H3Mkw1c895UgCTQvNLixQCyDRw6STK1ThVNTbht871R4/1goFZYKq8qj5ygkSGVcRXw6Q3bmGU7k0SsW+DFPK5ln9FT5XP22prx5gm1XSeQjtSke+34JdF1ZYdc9aT7x4wqRZVMCqwTolUD19jHXn79+8SgtvG5pU4AzVYSPuFTG88gjg+vt/8mjKky+8udPOr4xYNYzSV8WW2FTaDHJdAO6FmwBitBWRT6HcqWNSzIfQiTBrTG9jS4FX2ATYTcjDp4snJPi5YFSFKuGHkBWwaRTyhOcIy1z6LGxYeLEpeOx43EHdpfsi6VBHHELanmSl0YNjYaOFdZnrOtzSpmm4ATDztRmBAPVlaU2YntDC3Au6FNl3ClaByH3uA6OT96j6C13P3xFILR6wk04HI5IbbmR+ZJMInP2zQDFiuD1wEBwV3YxRlFUSsqKXHJz7ju/+Usv0Wj85MS+Pxvjr/5iwWtM3xl/3Axsypc0MnHGzGkNSmP6pk2EeuTWkelfeasZc0OqE/TyeJTRax+o52Pbte0bkdedPEb14YgqOpJi7HpFtUuayrbMAi/II2hUrCYIGYZ6ySjYcsRiw+OiBpSxAAAgAElEQVSAsyUAFg8Ud1waao7ELWPKBNWnz8jsCLiewTsRhnCgBNQ44KNQmdq2JNujWhFxyihUCRZOgNM4MGRQmrAMxVC26LzyN7CQLMkCNsb/x9X5sz1U4V6Cf/NXP8D9kh58FNwHYZaG3V2wrXD5NDeE9UWwPDF0AzyB0WVuRkuiqhSCokqRQDyDAnCBO8VuJM2rmxKWwKsFuHh6MyDEzgx9yCQuc3CD0VPCh4PbjPy1nGN63fnIyy5SMyCDPY2yxXLrjYoMRa3BJnSMUhSPTu+XZGPVhsSOK1Rf0sNmaUQ4/tQT7LsVlqeF402hPgmWp0I8VerzoL4M5D1YXzjtW1A/EPQ9Z/0Yjh/D6TZT9zZ1vrvC6WucA3+SQ9zTILoIOx1E2CQ7hUTKhoumQW2R9KuqqrNjZ0gI3dOkWiObL6KZRFjwTNGSyUaKwKKzD2Mfe8qoXGmQ7KtQpDmm+thp3kc2loJkEEYw2ckw9mQp6PRbUNVcg0RRERYVmiTE5n5NN0z/KidDOExg18imwvSuMYlHcF+nR4S7EVFnkZcHyqwPgiI2GV6Wv4Pm2ldIs/uUEUxmmzPXQs/PpA/GSHu4d3W0WunbloC2GSWcQym42YQ+k+HpWrh5/wXiyt1nd4xujL1TDze0cMQMicbpbuOHP/wDbmpg2+D8T+55+tEN2+VCbcrlvDEsBQlaMnXTLedobdcQCHk0/B8j34NNSfShwNKEZpF4PwrijGuB757g10jW1XpSfMumZgYEKeGGyVxTx/X6O9d0J/MJAM+KPzxBrd14NKBvLaWZEVevLsCd//Z/33n2B7+DiqG1TOaoTL/bBLKuWZlvDx/v3vjBJ09xgU9+6oYI6FS8OP3ZA+1c8GWDFxXWYPSKzTysXZXNL/RSoB0wW6hPBZohRaGAtgOtLoCAnaneWJ9WFqmsZUf8ntiN2BZqA8aOjIXYg96DIfc4GyrKsIHQUp5caoLaCNthwwS2nvWyloKZ45Z1Iyp0F3oEUPHhjB64pzH95ZL1TgSgjqpzGUJEyUCoebxLrzZn2CVZ+RYMSWaQqbCXbMSXSGsVJEMtvvXxU/Z7oYy8L6wrXjd0ZCJeyE4cB3/xvXd1d/zjj6eHRulBDMPeJDBp5wsPr3Y+/8LZ3wwOTxqnl4WLGfvF0dYIEdidfV+Q2mC9gbJCa8TuxCUIH/gWnM8ZzuNF6aEcxKlSJtOu0kXxSC+raxPGSJDdTCjSEGR68qW9gGlaL+DJsob0jV5kJqYaRIyU2Ut9BOirW5IkdLDGtAHx9AlDgR6p6vnzkWMyiXJFckSDUxOeapIX3IHdqK1wqnAowmlJOf37t42/8LzyYhWOVTkW5VRgKdmkq5L1PZrKHom0rCESKC+SDK1alKK5b2TD8moDkG/PYjaqLR6bUPCWAGXXQLx4K5cM3vrTPj74kVU15fTyiHI9epW+ZVX549+JYQWPEYUSEDMcIf/IH3vEphIWzFeTr7yH3Offsr2uUNdPhkh8Y8CsX/vWCVlSRiAjfX1EwUZwCGedFfO5OnJKKcwQoTi01ojZjf4qjigdOim7EIS9ZvexHBo0QZuiy4IXaEuhX+4gzshw9jdAh365MKrjS6HyFPUjgXLsR4rvrBoEb6afknLe7zE1TDeGOIs+yRjP1pBo2FiIcsCl416SVizBvl0w29BlEMMS1W032LHz4vYp5Rwsi1LLE07tBeMmDWxFVtwSaFjbe3AZjItj58HYd2TkKVYkKG74XUFeCfY6GK+D7RI8e/8PpkfO1zkD/uTGx4dkMUVArWXqlwF83qwxjVjn4mXTck+n1jmCMIiStM5r+WkKMrLwyW4IudnVkslrVw+gJCsAJZF1EYqUKYVJmeEiB0qZwFZpUwt9SBGjrhRSkqMsFFILnXGt91SpFHXMlaCicoCafgBVa256h0IsJSnVLIRKgg4IMdkLok7UAWUn9vTAsuhAoeqRKoOqjuuYrynUyFQ6jRVxCDW2OCOq0Fq+bzHEC6Usf+rX/k96lBBOGOuzz9n7hd53bBS2MDZ32ITL58p+J9QXQnnm2YFZlT6S+WEBuzvVp6/oPEhhQRk524rAeBOwAmEMKeyLMsY0jTFHaBOoyoQopBKuE4CVBLSAlA9OnyJPH0AfjvRCmCJd0e6MvsMEESyS1Ul4xkyLZ/F+HkjpFMkUOBFDSyAuqFT2eEhgBHJuOaw0YjGqKBRF60JdCqgjainDYG6C65SKlch55oKJ0JtiNZn9f+NXbrl8Y3ayf76jaGVpmSApSH7+7oQoVYISKRGVyTRKVmgw3B47X8Jkl0jwGGYhwk6yQ0dPZqiq0CTZK27Btu3oyGLpdJTZOTb6PgFRBS2W0myCETYjqVNmKG1QNJk1eAKwj+VMTC+RWfRoSen/8HxuE0mWgQgrmlJBTyAMB1fFJS0GwFm1oJOhN4SUa5f0ULqu8kUUb8FVwyF6BcWy0yrze3geSMMzNXb4YLwtvd6p8Zt/599FENbTAd87Y+vZKR6wzo5riLJUoWhhPRz45Hvf5ijQXDkebjid73gqlZdt4eOHjfrBS24PBx7u7hn/5MzLT56zjwFtZdt3+kiWCiHI3qdcMBMCbetc+ttu8z4ivSkj2asZBKY5d5ZCnxLcswu7wzayqHZzrGei8NLykLiPBE15jDrQnHNMQExTajix42w2XV+XycIWoSjpYUOmVrnl/RKSAOvdPfx3/9tGxEiflNIeC/prPWDz4CATkH0Xx19+aWhXPv3dey6fd1pVfHPsMtgPO8t5QSMoDuvSITzrMNmTgaVKpzPqhVhPmA7Or1d2zhieLChR6iEtPdrSJhP4QO8F34XxXDkcJRPK1Ukts9OH4F4xH5TFH+U7O2esDM4xKB54BT8GqRbsXOU0JRTvadYeHpl6aLmemAUbKds1U0wEoxBWUEnWTiYdVyLGlDMpcmU5SKGFUBZYKFk7KoRluIq7MyT44vffEJuyPxjFct2nBLHAei8wVtr5hl/5+GudBt/I8Zc/XjnfGWLCA8KnXxgPF+VwgE8+KDx/r1FbAkQvP1n4/U8v+L1ld+bBWd+v8xAxEkEiEFXu7wbPniiyKqUFuxvnixO2s5Om36Mq+94nqzBZWBFO7IZguaaJcpnwrlg2bC5h6eEH+Twe2cDBeLDpWSk57zwCfFDCEiBtWSsua+ESh2S2TtVIWKYQ/52/9Qtf6zX5Rg15i/PorKKeHQqrCseWCp/LDm5BfzCWItwelFWFmxp8eFDeX5V1yX3lWJWbJhwWRWcScwaZpH4vJuh03R8KWZ+rBGWy1K/phjJBJuNKlJn7IzxK+zJxPCYbfzKzSNXH9TU8HzjXn8hE4Mmmmgfkt8DTo/fWVJLJFWd5+1wxN7mIt8DY/CjfMrjmWSSIx8cLEw+bzfQMrbu+8h+dpfWNgWJ//adTcjOm14FYakUZgR0DM5CayN2ugd9DOThelR7ZAakuZHCfwpKIZ0WRJZHvKM5mSviGri0p7G70SybcEMplQJNADoIz0EgwYGkrJacLRQp986Sh+4LUgo3XVL2hHZ5C1ZkOVugyUK2YGSorm28s3GTXrzpVbogwDmQM+l4Lqx6Iy4bpm6QcVuN5fcb67H3u7870H/7f3D83ynA2c0qH7UcXzvsXrB82jJXwC92E1vNw+uCdkEY5dWyr6FPHNdMutssdv/7eif/+s/uvdQ78SQ2NgXJlLzCjtNP/yubNw6R3yhXFTiibRVIhHOoUL/QY0+9gSlYm6CCSh6gWgXlq3rXH9KDJ81MlsBHpn5ZnQVxqGjHHNPCeIIOFoOWCRqXbTiMPgk2ySyjllGw+byAdn+yYokLIBnJImjMViwvVK8vSuPQLsV+oa8PrEXZneME0WEOpDu1mZbw5w+gs5QWUNxmiwIIAlS2RBt/zkGA9mV9aiJpskMFgZWWo4NGoccbLu4c4DOCvf/cj+rbhe+d8D3a5IHvD+8APRrwUJIwtoE3FeZfgYkHtwrqmPGaI0zw3oKrTx4qGjsE+CtzIIzBodSB9ehudA6oTs0OTTNVgXAwmMCEofZoJFTNKEaw7KlDJv71MIKkUijZcHKXQaq7FTgJfNZLOHiYQg3Y84qMT2ihSUG0MN4iVMja07WzeMBzfg3YTWAn6JRgMyjpwSzNf9gQNXJJJpJ5TTSczwrmybTT9tBR++Wce4H9oX+Ms+JMbJqR8XhSNlGMVyeSj2dzDJ5OlyeykeeRah2YTg6xgpELS5xXHqVPi0BS2XalV8FQ3J1O0CNoiZY7dWVcYlwJq2ABUqCWvh0qgoVCEcEv2y1xXRSe1JdIbS64MVyGZWqTfUZF8vodZUGVSTgJ5bXp9GbPO8sCisBTDQhjX4kmEEpHMB5/9Q4tZtBm1VnZ5K7F0Mhilk+yGem02hBKuaU4tivU/elH1Z2n8p//Ff5m/cwSH4wkNo1rHLw8cDqBUFoXLJaWaqk7fOj/9vQ95os7Dp/fw6sIvLiu3336G7AN//wX/z//yT3jy3lNeHRfQzhevv8T7xr53eh8TMDSeNiFeDbxkmuogL7Jq+ozggZ8t99zEvvP/EDaDS/hjp7m7J1PPISxYV2XY9AZZlPsHQ5agRyRzbx4IfXbGzWQy8oKxO2WZBfvcq6s6PQpYSh79Or80U2FjNgvEnf/1syCsoyelVWXvWWuEZw15fV53HuXB79r48OQMK1gEx1VQN07Pbnh9f0+vcBM747OGv3B2Eeoo6DH9pcp6FaUo0oLhgRwC5DUxbkHPlOiMfUXGDg/B8r1gYNStc9mF+uGCx5ltX9C5mQSK2c6yHDDriApuikjFOIMpO5GJcxqErxTp2NoZY0mGZliGCWnB+5TkiGbwS8898orqdx9IFFyNqtlQqpLzv19mAEdzWk2bhhIFcDBBPXAKTVON6T0I7YTXTJReSkbGlAbeKVoYw6lq+CqUMbiU4JP27jUR/1nHX/3Fj3j6RLk7D56dhCpBbAM5LDiOu7Homindqjz5cOX3frTx/ecnvO/oSa8d6jyJlwb7mTevznz0yS13NjipspXGocAIwUeAZnK0tIJbWuEMg7pUhji7zaTe6IQrFxHkytjCk+MZNZVEgDLwUtNmJzrh+chMb01ujO9g3Vhbgvy3OrjvTsHZw4BCFec3vmv8V1/jNflGjYn4XNlOhyK8XAqn3XjvtvDhQfAvO8+eVJ4fCi9OjW992NguzsWMsjif9ODT884bI+eXQx/TNuLKfJK5JgHJDw3qBLdEBNdk2OdqOAE2JX3xXK5bCR5p0XFlEsv0oPqq02c2Ed+GkV23nQSn8psx2e/XNMWrLFEhA+6uc/7Koor5UU3o6pqYHbN+v77nq2WWfIUVNvGwt8yt2dPx+fRZ7f/Rz4zfmNNl8z2TaApEq4zBNItVcCEq1LSfSau7pvODn3IthKhOLDXRycgD4whHcaIaZZcUdFbFhsMeXL4ceKTxqJTUIfddiM0xz+S5HsFgp2MMCXoMvJ2R9Ya9bOAXhGPqYNVxv09pwxjY6JkGoCnja/4EoSBlQePE6IbFglfBLs4Sg1acilIxwpzx6nOef/Ice/2A768pNyeaHHAz/Ms3PLz6x8RT4fidl6jcUuRMdaG1QI4HzstGnMDWzsNDynNiCNWUoDH8zK//yx8+6lbftdFm2tWVaukAWjFP7xmVTL9yVxywer2NZJoDGwUYOtJY22suEhNtrkUePbSGpK/LFejyKYcJ95RuuaR5Y8AeJLVYZ6LFZCpoXSjR6KYESpGGF0+5qM1uAK+BgsVD0ovjkB1rGsQNIheKLoiU6T9TiMXg0NBLxXanTEPCqMaCw4DgwuEgWBh2cTQ2dCjFGzacPjZ0XygjP9NNejYXWvrWiDc0CtUPqG+IORqdqDUTqt6xUUX45e9/SP/S6WeSUXkD4+mOPPdMxwryoE+eq/dpBixH4C7TtSDooWwEpjAisFbol070BW6MwWCbKa4yFFVlEEhLydewYAwYrnQ3QnSaiiojaYPI9H1jT5bB4iWZDCgudapPS8oYRamaXSS1lAKZBWN4yhg76BGwDqKIGISwjzeE79SyoWXFfEXtTBWDo9Dv85A3NqfWSilp+qtaiCJ00tRcanZ5VGQyCWeqowqWFI08DAyj6bs3t2D2pur009AsindPYF6LpozzmkI3ZXVVp8uDzIQ3CaJci47cN7OoKEhk4bGWYFgm/5omkJTmzCn36+Fc9kBKFj5as1DuI8HSMQsfmxIvm3T5QbJjingyw8TSUyvymlskMOdzn90iOLRMk821NtlnihIaj/6YRfIAYpZzoMIM6UjAS/CUDWnOHyWBEPORBqsk6b1c24IB6/RiCk+UQUj2c5ix27s5v6oqjaBJ0NRZw3I/PDTsYbK6/e1nd/9wz/n+jvHqwvGLzkeXO777L/48T/cHyvkeXVf4B/8H3/2tX+OnPn6PJtC78eRYUFWqlmTwmrGejXGBfixoVVpq/Sg1wSIVoS0FvW3oqmAwHgb39842nN0907k8C22ZDSjzfMPmE2gi6PnLTjZUNpVsOGGWwKa/la6WWYhnrPoUWkhGr5hfTeJ5NLplHiJEQYow+jwECGA7Y0x/pa9ICpNpNgv5d7Tusu0BY6PKQM2xy87d5SHv4RnC1E6DuFtgEeLg2NipNAY+Ax3KbJLBsZ0oywKjsMgB/AD9/2Xv3XZkS5Izvc/M3deKiMx9qqqu6uZxpkkOSA0lQQIGmhEI6ELA6Eo3upMeQXd6g3kzQVcCdIAuRqMRAZJqSCKHIrt6V+3MjIi13M1MF+aRexdHgNhqEl3K4QKqEjsPkYdY4W5u9v/f/8D1fz8Tbw6IaCqmLoX13YneA7eK+47ECaGmeiVWnMdZsxRKVAgn+iHbBTJw6Qly9043Y5iAXNml0yuoF3ZP5p55qpR9ntjMPJv5Q/At3SMxwMZULqhgAmV12jHXcSxYSqFO5QIBrSi0HS+C7BVfFVeh10HkCxJMJ1NVgYpqzVACTWYXGOMFpkj/otf9cWBm3FchbFrO7xrXa+c6chBk4UgYq8K7+8alB9ggKrnhtAY2D9x25eHPN7764REpxqKJNGka+OisqhwmKmdoWo810j7fimaDinmvh4BU+rQnWwRXS4VsN8XDKMhsvqcLqWC4BY38HgHsJbBhqBhlKbmHDmffz1B9qpoFY2A2WPBUPv/d9cyBck++3aEIaxjrIhya8MXryr0K714XfuvHB37z1w98/rpxh2Tw2sih4JsCy6HMlNK0Gsoc1qkmP/nWF1L5uD9kcuJkQs7G17OSyWfDitm8Yiqy5KMSHz42q7LGmXWQMtlbABMLwUcVlXJTSsncm25yqo82+VROfWx0Ic//m8KQuPXY8oqPKYrzN5mff1NI88nb52cg//s5zozfmzvXoiIIxcBtYGVOMe7SG1xGPjmt55PmnvyharBYNgLUAN0Rc7oE2oGWKhe/COIwhmDXwLYZUz/TCkWTmbGPhG4n4DETnuiKd5nKLM2Cp6wpuYuBl9lI04Sx4w08qG6ILJk+d/VU0tSd4EKwYbGnBFmuRBfWe6VwQKNwlJV3V+WLvfIrrz/n7fI5y4NxeAA/HPCfXrCvHzk/fMvy+guW01vMHrKZJjXH7ZIMmzEqSqGHwkE5x2APwxT66Jgv/M6v5Mb+Eq+LDmrNl0lEEEWwGNkBZ3aL581UCTCh1jpVIJ5qBYfagcjD/21hUc20MdUp/rQ5JY5cqG5eZhdhmHLRLHLEI0HcY8fGPgF+hksn+obHTqHkjcnANbu5ugRtWWleEB0JfQ8htM+y+5rFuK0zQdEgGsqOCqyrIG2j1gX3CyKFRWYxvr5BakHVWdtr3BqEJ5jXJoCegSwbVjpbTf5Y1SOLr7nAalCiUiXYUZi2TB9O8ZfHbtjU+YN/93PautOOV7Rlg0H1FhAw5y7i6PSTW6RaTxX0VNBNGbfkD51RRxLoJQMgLq3Trzkf0XxXNiaG00QYxSml4ZbN13Fj4k3p+RieRVeA9SC8YuKMEDYxwqHONdVdodyK49m88KCUQqtQiqUitfcJ4K60vFMR7zmAmHrofb9ilhHiVU+INGQfiKfU2s851Y6xgKb0Xi1oYwLwIw/ROLgHfW511ecwtM7de1d+7/C92cr+Rq/aMqyCEEIa4ZONFZkyo6SaRZC0QXnQNJPEkkE1br0ayi2dxi3h6tNahwdjKgqSv5WcjlsZEZaKEndnWQ3VyU6bSW+Zgjlt1XPglNmvzIZV2geL3EZvGU0/SJV99nkLoQEUhif7S0OmgsZzKh2pTM2vz/VSJBkU4cISmd5bPeZjBRWfTErPuGxpFHFK3GKsk5lVCcShJeeAQChhaGRS4idV1ou5/pP/4j9DbCbturB4KpGLKEur4BuXh41vv/mA9Sv7trE/fKB9cNrdHXf/4R9w+P3fQf70T8EuxB/9Gbx/T/0nv4+8vuPND7/gi9NCs2B8s8F1sL8/o5fOcW2U140n60hkQmo3g1qyMe/B7pFsrVui0qKMQ8VXiDHfP6fazPTOTsJ1mUX6INj7x+bTTd2ZFv1MllW5NXol1VaRzV+LqaZiYmVsrq1kQZ63YjZUb0h3EKhguzMc+m6YjVn0z8b8reiYauu4jf9f2BWurFQOteIeVCrSFSHtctEafqfI6w19gAXFar7mieRX1bbArCN2Nmpr7I8XfIbR7NfCqnfc/eYbtA7WAXFQyjoyBEmgtAUJRxlICKU6tZywkUqmhC/nvjdEgUSChNdn98aITP2NCDDnqoFIxbNNTt9nOuZ0QjAM6Xm+6BZZx4VOJU6q82SmXwaR6+BkC3oNvCTrslhQhlMXo+qGIhwyIYYhEBjujYKi3lEfoDdrbKHoEfGXeX/9ItcXbw/PrZylpJq3SBC7o7GzqrB4IkDCUxn35lXFS0WOhRjgHWIzuO48/bRz2Qw5QJizAmPMAKYiBIPhTvdCNhFGNsUnHsfUESl4SDIyAxIX4FNx4+whqYyJVJSic3hunudhyYGykpaxGqlKDUkWpETyK1c5JkplWlYNnc38wn/8T3/3l/q8fG+uW/0UGU50rwJDuDsm9+o0682lKYdVKUV4/Iud9b4gPVgX5fWrwrvXhWVJ54UJnJbkM2vagyY/NOvvJjdO42TyzX1BZu9HJLiZW55VWtwamjnAFFFk1s4iQp3MrdnPyoGf5sdu5ZiQFvrbUOa5FRV579x+hgylmhbDWwMr56d8iodP0Pztkfn4e9waXnL7bOU2Vvw40JkSrufH+/+ZMuvVImlBmX/GEtBEaQX23VNiKcolBFZJpkwDL5Vek4vVpOAozWTaCwEVxpCZogWXcOQamRahipSCMFMGBMYsNCwcr5mXpNKAHbkOxsMFPz9SSp3sjkrVEz4U1QPrslL1kFDSnhLkeDgnOHkB7ETEYKlHzAb7SE5AMSXUsZHskM+OR3785Vt+58e/wu+sX/BufcdXWvkRK18eXrG9f48dXrHfV04/fMMoRsRA9IDXK1Fy8Vr0RF2Vw0ESWn91ZE0WgWihW6qFCp0vjvuUOL+8a40p6QVA5nRuwmA1+RWLaqYN+s0KnxbMKsoagmtkpC0d1bSmIAWxXKR6eKZb1jxU6c2eGMIYjnsWRXgwRFJVRzC4gfyEiIrEknG8KhnXrAO0ErIQWlERdt8Ir8lDi4aGoXaXU7q4z58xlBgPNDnQNI91o19ROVHbiTJ2ih4oTdEotLIQ+nWqOFypdwMZDbHp21dnbYNSjxRb6UtJS4hqcrVkUGdHvsk1p/sIHmveYxEcyv7Luwn+lq7FK9H+gjEuWGyYpfWk7DHhxFm4hs8D/m1KKkzOR2Cb4IPJkXF8ZBHSR4H7QhTHij7vDZb91pm+FJmSGCPX0Bkl0nvaptxTqbJZIINMkMKwyAj6TEHMxykmyI25JU5QEZdsQnmlRTZRcQVb8EMnuICMPBSHUOjZKIi0orrvmGdhF8NRDWTaCXUtMxXPcZvhACrUUmaDhmd4ZerFsqm8jUCK5s9vwtDgP/jdl2kz9AhWSeVMxfCqs7lz4wpExtnjU1El3PKvSgi4Ep4WvaHCWkAlJ85EwMgyaF3yftl80C0pQkbMdDggsklwPjthhVv4iodnGtd8vlRzsIQGRCqiFM/C27LoURVC0jq5TNCBaiCuz4B3yIYCZDJd9i1zwRZJdmHRbJRHBIbTLYv+m6LKTbiOXGXzx8m0vSpQC1TLv12Tj2WVj6BGpjIOciq7nS85DX1h13/1z/4ZUtOi6WH0bvjWic0Y24ZHoZwWxrQWyzZ4fXzLD379M37lH/77yN1n8IMviaMgK3DdYO/E4wViIK/veH3ZOV+ueIMzTj8ox1eVbRjmmRYVU6JkkzcUZnT3CWvP57ObsI1Mcds86FWw3Z+HUaminmqr2eDtHs8sEZX837aNmQ7qzwW0RlCfJ9apji4zKVuJ5GzdxulMG4hIrvUGWm4FeTbKbm0qYn6tG/F8YMwDQoQQ6Rl4scos+gFE2K4B3hiuSHEojmOEDyQcqcqpVfSpsM5DU1sa121j+DXVBBqU1tjijGLYdWcMQX+2sZ03ajWKF6LD6X5NgHaRVCr5AO0ESi1TDepOFMd1nzI5hRgUmY0mgfAcEFavVCnYSPZZt1RhDZ+8GROGBfLU2LvTN2f0XKd6D7yndFAsECmoKc2ngsrzHrEik80arCNokoOFQskkPVKVGzobsj4oFjRTqu+EGmG3tbUjsVMxqmxIfcHpFf8fr8+a4FuABeHGsQUthEMr9ItSl6xZS/UMUBF49W4mCmrh8rAhLXJNuRoPHwaHu3rriueCo+nuWRVmpjljjKk2qRxKSRYagrliOEXz8bsFu2Utfu6pGi3uubeXbMBG+EwNz31qmRYx9aBFUFFUBxo+geEjubhlqrncU2KNsYcyxuA//e2/U/HBHFJMHnDgLARtEUpTlkNJNaUHsRmP7wff/qxzvjpyqLz9auX+TeGwKq+WJG4tJdVNIdAmAxBJwP0AACAASURBVGv2nFIIoZoDcEklvUO6JGZPq0ggs55KJNXNiniDw9+aTTwPVop8kppLDs+J6bT4RA12G/zclFe3b5pf+d1GuN6G7rf/y02JlQ2wVMffPjpfC8+K5Bt36680sG7/fm523b6BPDPA/jrX94KZ9V/+3pKHoFq4bMba8o9mHiy14jM6u5QKbvgCradMjZp/OsMIL3RxmsyFoc0sHs8JcSUVEDE3BxlpByNgVKH0TJUzzUInzCh9EC7EIYhaQBt+ubC5U+MBaqVYcDUn2oHQhbJWalnw6BzLW7brNS1B5Qn3N5yvD1wctB7Z7QOvl1ecGvyDH37GV7/6axgbpVa4gD447372Nfrjd+x/+TXvv1U+Pz/y/vSILj/Azx9S5qwXCsHVCuZPNFmJ1tBu2LdXDssBfSNcztd8kayChtIl8F7R9g1fvHmZRVUlixXXBMDHMFSVMJt292S1iQZRlCoCPUtNlkKQ9PchRos8KBkDLUK3QLwmg2gkg6aGYCUmZ0pAyoSEOmXavy4hiAWULJ7ywDhQgqU1Igaj7KgNJAyVV4RccClICaQWeh80UXrkYlcqmO9EKagMWpvpXggtCtcxkGKMurM+LuxslNM9mxiH5Z4+ElHZS6dENgwYhbbs1JJTo/sYnMuKyZWmBQnjSTxnQXZEGFAD2QfKgVYfcFlpDBZ/eQ2Hd0Wo7LgYY89m1fBgFChDnqGNWDJXCpr8tBBcPe1yC8gojNWIedCObwrt1VScalpLfQeqou5YlVQs2Y2rlBvcrTEvnWSxFEFGwrbHzYajUGdzQQErMtWmgUuujSUKJZxSFY8djYJ7KnGKVWR5pJQj7gXfKlIGGksmL1EIVmRx1suKlZFMGdkQbQxzTCp2do6PynYYyAxHcGcmugRjqnNdbimieWDVlgeKRTKZTqj8wW99L+Yyf+OX785Gwu+bFEpxxiwdugcHYKDUACmOhVIRGoqq0TyASh/OPoKuilTFZVAlG6WDoHkC1CVgH4ZKJYonaDaCRcpkuICL57S/ZAPLw0Dy3s86KPDISaGpsMyx4HoojO6UUuhj5J49MiY9wlmqsvU5NQSI3MtvdsTkUCbMuXfLg54lxLsISA1qCBdL3lxdLSfkAYhiQ1h1YBSa5v1V06nzXFupfmxaiBdM4LBWGC+vyF9ZEibdOxLOSYOnPnL6P4xyUMA4HQr7vrFr8IPP7qGtrG8/h6efwNMDvHlNXAR5cyR0RZYC3zzAuzvWt3eUx2/oYVyuA8U5W3BssG8j773ZwDhfAqmCbUHtkUnBko2HzVNRfe05GMIDmmJXpyxB97lWxLRERj6PybJKhiWaStDachKurtnUcLhZIyCf/rEZ61HpRjaKTVP9NZtj5nmQFYIQRTSm4gYgB1+jBxTjcGpc/YidH6YSZ34f8WyivFBl1uneJwR/wc9GW4NuBWpBNdMlxQYysnEerw3dCnbp7AT1eECi4n3AsuC6ceCO5ZXxdNlZrs7SFvTX3lCvO/WDcj2tRHOwzhgpqW+tZsPWBRtbKvNipohFQUh+ECVTAodPnmmkklka2EgW0bZnQp1Mdq+eAxPNFLt9IP2QwTqmeDFiUWzNVv9BoUunLY2td9ZWswFlEAZDA3XPG9DzIOrkcMyKITMNdiupvFbVTLezGeAy7+8RBxauyXOTXDf/7vru9c0W3J8K10iW4k+fdl4fBavK8Qjv/+xM++oeN+X+KFgB0cJffL3x7rOKhEKp2GXn258GdSmcPivYPpsgOjCU6h2j4mVneEG0YZY21qulo+PZKOhkUqHOIaNkOmbiBdL66BGIZTDCQWOGLjlYsKtTfSQWJYxr7GhkNEw1S2aqF5x8fxeI0VnU6cz9NUdBHxsR/4ZeqW7K1xmSCqzjMZPgawTHVnjzpvL4s85213j9buXL31jw4TwMKFqgDA6rsjbh4TIV5lE4HZXrlspdvTWjJk/vZj8XmfzO8Fs5kqxIz8FN9jDmvqGpLIQMJ7mpsm5X9oVmh+g2FLzZBud54WZ5v1XRfvvcqZK6pftOtvtU7c+/0bxfbm2sv3r//D/fT7Px8q+3vm59rO8KtP4a1/fiBPDqOKhOwhtrphTK8Ofp2K1LeT13rHtaU9YsgFMKB3glzJGiyEiLgo9ULYikOmFILvgxa6GbiiJcYItUKu2eB00LVBVdhXpSpBVCR/YfXSlVqadTfr9DodSKSG6eQdC9Q1kw7cSijPMZH07QCS/5ufbAoo1WB7/9ox/y5e/9CvaDA+X+njg0fAS+Cf5bK74qX776If/g68Df3HHqB8q3f4lwZV0KhRUoqASn+gqpC9u3jzCE5a2yF4WtsNSacdEhoBX1QgvFrzs/Wl6mMmu3ZA24wNVTAWJmhGpORmyKxUsmHXZLEHa4UNwR01QLhiKeB6Y6E5hKgIhh5qy0vNfEEcsprKjOzSXheiNKQuAjGVg+LJulpKR4SMZ/S0lLrMuaqhsbeLQJVt4SFM9rhg2IgmjHwoiyE94xCsPvcZwenaGDyisYO6XeEydh8TvG45laBXyjaAK/axGUlbuiSLs8H/BWKqILJlvaKWNaV0VhVJgqm22/o9QDo11ZvPFuF6q94lFeXlH1629f0+OK+RO7zHRBS4jtsLQo7T2X+g3lloR849NFgDaBJydaBlbwAcoyV3ERzG9pJgHDZxz8/AHKnOTkh1LtZ9lMGBH07tgAGzC2oI/ARm6KIczo6MiUN9MMtIgFDUVLIexAiQOVu+Q0qTK2DV1PVCsQpEImBiZZaIFh3glbMXbCDGzgvbBdlFKC+GC0Q2OLQK+azeFp2RkEw5Jl4U4qduZGKyWVR89FeijineUFqv4glZ5e5/SWmVg0J2A14244aAeFgtA0bSnRg30Lznvy1xCBpviSLD+jsYtgkfb76wQWC8kAVE37aXIrJbkrk8Hls/E/RkJLx+QNCaSibsrQLYSY0+QCjN0ygdecGnBUZZFsVLU5bVTkmR1RpgQ/J5a5H0Pu61Wzkani2YTVqeSRoFanreBD2U1Q6vPrbXgq/CI6KxluppOdWOdw8AZSlXA0DAnlEi9P3dADug1c8jDfxw7i7J6KvK0bT5cr+5575enUILa0TUFakW0g+7fwqsJnd+nFO52mda7w6tiwkYzIW+7vcMfNM25+TqG7GybJu3JR6lqy8S6SCgUSAj4s2YAd2HeICn3L10V4zBSoVE7JVCowMQAqGUrgnkL13Z1hmZyYKq6cft/u35x2JyIAUo1zA+UqgXXDgskOya+/JWo70zo2oNZA1xPEx7I+J9TTTsLL2xcBamw0cUa9Uk+DUUay7jqMB9gfO7FDsUoURUcw2s52COoZ1m/Bvr0wwulniO74ded6+UD1SrNKOS7oAnUrxNsTdc3XtgwB+Qa04LIjVtCApR4YZkQUNFqSab0zgC7GGKDDqAjrminRgeV+Y5Uohpji/8eRtudZoI9kGpoop5rWwHBh90AoVBeqJ99yOVTaGjRVxj5VOpp20wqEKsaKzbTMQRBNOGhyhM1myqsuaHFCnEqnEBArGpWFTrcD7kbFKeNlNkt/kctrctKWmIPFuvK4w+LwtAvxtnL++oIMo3vua6UaDx+uWe9Yx6+d9++veN84va7ZzK6SSJeRikwkeZLec1XA99RjDkVL4FS0QJnNXYhkxUmm/7Z5QldPq3x48tYS+OHsLsmhl6CGEybI3HN9QsLFkoV48PwZ0gUw1zgJrLds1FrQEY73x1/a8/K9uT5p0hDBxqxNyDr0uCpf/OjAUeCLL1d+9VdPLIuiS77W3JxTE745D8xyguEhXGZIUynK0lI9iqZ9HfLBQyIHgnxUY4lkDZQ7UTJuJbLm+6hsynAgmY2qT/lYH62IPLcriVsj6ZPG1+33/k4T6dbVun1N/lyf/LGeG1nf+Zrnj8bH5hR88j3lO58pn7z/uZH1cwx6vhfNLKxQ3ImRjBb1IFomHDnB4oUiymlNeZ+qMrpTyaZMOGgxdEmJ5dCSQFDLc3YQrJbP7nCIHtQpEd93Ye/QuxD7hHxaUKXQu6MlYynHPnApxBBoG50r7pl0hAuLHJHymkrFty1ZSgTbdSMiWN+ciK7s/RHsSvggonM6Hnl7/5ovf+sd+2d3+Bp0GURZ0fUN5ZszcneH/IkTf/wNr3//LYumMqgr1FLxK9S9wMVoVMb5SoxvibuCV8OHMryyy9NzAyULupGJGWFsxfn8sze/7Dvhb+VKSWZKPIvoZNrldL+rEp62GR8DLDeQsHzJe+RBSUTZcdBUeMmUZRrMeOmam5QIlLRy+uQNPYPhffrbAes6bRaa4PXZlU+utWCWnCULCD2h9YrHQKQQY0Y6yxWzCTmVJ1TWPPSXbLB57HNTa6RnZwMLbLxPOPgirOMVK0o6gSpaKsXuEk4pG1qVwjETCi0j6nMAXbDouOwUhaVUJBISvuiZIspqK3e1ca3Go17YXt55kK/eHbD+nn0U2iUAZfc8KHqH/ZyKUZubTQzPtK10W+BBKu2OSuzAh8APSqyeE39zliQU5aQ2YEIxICLtqoNpYcmDmoRgGvgAH5IqrU2ovcAOOqb5UfJmSYYbRDFK3fM1UiSVA3rNRNhymQqzVESp1FmAV8I2qt4jLpTa8G3PZCWDcd7plysUQ8Q5vB2wFjSU9bPB8qawh1OelOhZmMUAuaQSLfbkG8YZxgb7Y8AGvsPo+Xq6Dthmk/qlXTqndk7GdaO5PiWPLYc57hUVY3QFA6uS8ex1RkPLoACrGmWqYKqAaEaw1aJpb0DYZ2FSVDkUYSlTfq5CH4pnJZ3KFxzMJzdoQt1d6AbXLYdOTloRd0tbmcuMBK9lVh9CRdkiLVdyk6mHphpryswPk/3gZGPsxpeIqSq8FTJ92mo9kjtTC2zdqbefDyei416QGOx9IO4Z0BGBdX8GJjv5WBYjBbQv7MpAjgSvF0ClUkWoONQFF6GoIDIm08q5Xq4MBOIR+iXtCP/LT2BRONzD9QkOC9Ia8eER7o4spfJ42XNoItlcve6WSsHujHCue46pN8uPZ5Evz9a87sLFch91coqtLcNWrCg2gubJPR2R7KE+cs20yMcwhzIDDFxkNpN0phLGDL2MacnJz7lxR0L1mVOS/F1BmpBc3xuT6xkXnw0vyeZE86CdTsRspt0sGc/F/wsVQXhpFBfuqYTLHAIOKNBeT+WfpsLUYiSOIxK8PV4P+v2g1cbhPGiboO2O+9q4yIH4eqNqsB8vbA/vuZ6/4eHhipWFgSZ3yO8pmhzHEY84O30MDuWElB2XDnVLa7TmvigIra4QhndH5UBcV1QaoT0nAcuCf35hb4GtQSsgoxLR6GNP3qoGLkqJngoqM9idfh70i80zRp4t8r76pDiSMRX1dQ4p0qXSSD5rpaC+EZ4DVQuhVEXKhujKvhfaomjN+kDK3zWz/uo13OglnTqlCMcyWJfg6k6twmU45bNCf79RzOh7Zx+pXn+4DFSUx/PO/gh3b1aKGtvu9M3ovSNqaEkrMm6ICeIdxegDvCTfqNR0DTVJm1TalwUXQaWiBAcKWoQoTlGB2KmiMNXUu2eImZmDdzwKYp3qaeftVjARREciScIAp4y0tXp0xlCKw+LBH/x7P/glPzu//CtgWtzzeuwxm0y5eg8LTqfKUaE0oW+d0iZ/0RPjUQOeOuzdp608y3aLqZKKdNT4HJ5ZZLMqFVDCPjES+Sbre537VjoKE+iusxYS+WhfnO6/vF9ug5k5GHSXyWZjKoHiWXGVj8p3mFpBfo+YErEb5P3j30rmcCb/lXKeTzY1IZuq3/kDf/yc78LfczVMTljM4e1f7/p+NLNKRvOWmKlZkdyq2y+773lQ6ZLJhFnrCr3m3iJb4ENpO9hBiBjQc6o3ujMs2LoQ18jGgSl+AXkS4oOjT0K9aCaEbXkA7JaVk23KKiutnrJo52lOmFe2sjPcMDE239n6twzZ8eJs5wvWHeGKs3P2oB2OlHPGvS6SiReLwv3pgL9OHlI0obx5Da+V8ZOd+OKI/mRBTob848+JLw/8vS9/gxHGcb3nunW6XjnLI/th0MMZa6H3e8ScfR/Z7KODlmmPq2mr86D3jrvTrfJrby6/zLvgb+1aqiGa6ij1AFG0Cm1JGWem2SRvILk8syCtAlEoKgzvLM/954R0VySVbhPMOKpPxhqI3ic4skpysSZgsZdZXBsQym4xC+l8cWuUnMfFkk1psbRmjYJqwWIjVBFpaOnI/N0YK6I7SkNQih5QLcCg1MGQJyZymVaOyHJhPQryCqrdcaTQIsAHxmMuyFSUhdI2FjlkkSaKlKCKs0ahyZLTHu9oHKhSGCjFL5w01TPDB2sRGi9P+ffjH71D632CXdu0KDfoBWKB5Nca+8hmfbS8H5jpVq0qlcJa4fhNwZukujMUjUGLJX3jketWHvA8GQeSwGMRoWswiqd6xbMR5C5IF/oV6viYYGo3xdOU3mQKGAmLpGQwhibPjZiNspEFeFOFpdJQPAb4TObgkvZl26Ekm8bPF+r9AS1BXZRSC80bjFN285oh7hxPoCfQS6CezYq4h7UJywLtAOUEY4V1pj81zcMkJYGa4t+Prexv/JJMdiwlrXRhgoXSdaZnudAHbEPRZkgVaqSqNMHYClGSJ8Rs2s8CYQ0B9JlLVCQVqipBeba5JK9LJnTdPG2oYZk6GdlbZI9ZuAMRnky3CEa/RYSTEdPh+FRhhWdjorvTQoi5txPJtqkCi+hsiKUK1t2fbWQFofEJ4BSmuia/oZKvo1YhKNnENSEsox23EHoI4zZldKfITdafvIY6H/kFIrOm9crmYDdVaIWgUFDfCcswHKewj4yr33w8F8CCgLcc7Pz2v0O8+wIxJ2ojcOSz1+jrI8NGKqWmWkk8OM8QANFk0iCpZDGcpd6UVfnc7x7s5rNoTrXV6E4n6JaTbDTwSiqwTdius0UwLVw2slH5bKMIn7BbT/aRx8eo8oC65NsRt1IdUHl+7YQLMbmbfiu8b2yQuBHk8rV0alDX0/y+PH9e8gDzYPESL38cPGqqPhUyoZQDddkppaQaKhLt4H2wP3lagJdUHaCVvg7GfWXcG9u6ce2d47lADIpX2BdejcrT4RXVO4/nJwqFoisRsF9mA1EaKgulFEw3xE7U2ghLq7yY554dnaCnnb4qXnfqKRXAlLSwVnXa6hTPBkANY1mCZU0b91V3ejHKEmhKxagNpOSBJYZSygLPKtbcx0zz9aBqtEYeQl3xfTIyxSnVcz3W2YgtYJoHzyJCxM5yMOoYyfTRQ/Lh/u76znV+SuZYupEzSVdDOIng+wYj8A7ltXLdAcs97s0XjetjZznAqsprdbpmE11RIoxWleiODGPMvcnaQKJkQwGhn20qSh33xhh52F9CWFRoU01TWirfRUC9gPQcREmkHdwzgVjNGaODGMU6uCOhKIMmTgxnmKTamanOicFCDoaOMji2ZAP/kx+/PBzIz3vlnO2GO7hpabP5HME828PhpJzPg8tmbJfO5TJwCy67Ee48ds/Bnzt7xixj5s98q1sX6BmuTu45+ye8R5j3AMxOVf4sorl+1KLP6c7p4LiNS7JDdVN2yVRcBf68B83WEWUWUc88rXj+0YCplfp0+hJTSSU3TRhz2CgfP8AnKiz52PT6zvv/tUv+yoP+9Quv7wUzy7bBUpMh1IHDBNmG5nS2HXMRaKZ4yQQvj8C3gRc4SMXm1/oHR6viessZmQWzGKsmlL0Phy0YLmivWWy5oAeQgxJWCXYOTZEi7NLRSGtVKwV3JbRRzIAOUeil0wJsX/HqLHVDR2W0irpRy5XQTru/x9xZdGWJwv39kS8/e0U/rhQxrK1sp0Fb3nL43YB/8S/h327E2zfIvqNW+OKHlbd//uv86eUPpwXTENkIGymXd0GPlf6zDkfFLdj9muoQI1MWgS4Bu1CrUYvzD3/jq1/eTfC3eE0lJ0UUiQQlRyomqQjRdm4OuCoVEadbQh/DM81iWSp1GItU+gx/t3C0O51KW+fkX8Y8uD3iATrZBiMcVacMGCZpj4mgEB8PWkXo0lHPuOjugYazyJml3uHeGVpwMao4Ekd07JQl8P2EiyFtELLPQ10jGDRt4EfQQdGGlwXximph1MxD4wxyB0uc2PueoGnN+N48eD7RtbB7ThNGkNKiYVSO7NYRPXMqSo/GGo1jCH+hG7XesfWN5QWmZb47ZdHjMhjhOaEfOeHyuf6LwrLkQaZ2GOZIyemLRErO/SkIU1pNmYlYNuqvdUBPoHdO8/I1bB7sAe3mdU+YEUa+YxFh351xjYz4HpVRd9yAKrQB0ZJnlMEqgstC00GtDlZZZBAlOTdSGtiV/qGwvtVks+FAo0gCm0U2PBaoB1rtz9au5XiYyVBnzAU7D1QTpMwEmeLQXoFchGsNWiimPu0ZqXiUPSfoEUGfReHueVj8zmT7BV1Lmc2mefAVFXo4VbOZaKoshakySYZf01zz0rWQe8IwYRHHY6r6BEqbRXFWMYyAcOOKUMqgRvL4TGdBkS4KdoKlwRenyvtzJ67BPuBCsGaPlkWVcMNUuCIskdL46I4qmBgWOhMZlc2DIsKIXBf7yKKqz6ZHt1TbtKTNU5ncopK2m5A8aO4iKb2XbOai+bfTmpPSfQNZ0/goQNWgz3TNATPYJZLnxQQ2x4y3fmFXH4OKsVtO620YmxsDw8NwN/Z+ZTPj/u5Ei8FaGqfTHVy/gcsT8d//t8h/9E/hf/tj+JM/Tn7Ln7+Hv/8VnBbij/6S9w9PqCbQeO9Gj3mgs1Q67+eByeS1OGxhqBZ2M/ownjzt0VpSpRJFYMhEJZCHdSdtuAKuQZlqRm0lk6Tmfi4+7d8j1wyZh4JUQ2e5bQgS6QwIByu5f8ucjgOgMa0/PDc/b3bDnESndcxx7o7Cz8odkA3SXBbzcST8eZ18aVfcJTPy6srdwTENKhtaCuLg1SFSfSRNWYvjbbB9UNZ3DeeKxgGhUTQYUbl+Jrz+2jjdvaU/nPnNH7zidDFCGr5WejXOm6EfFr5tH3jyjXa3YDoboNuWYT6rY10IdnoMFmmsdgc1bYVdOkJFbANaKvq0Mobh0ZGm6DBKVfoCpadbohWj6pKcrdgoJd0dWgIVo7RUblQPSlOGlOTfSMKlfRhFF7r1VDNrzVOiTZtJr0gdLAX2IbmeF5lcrIVqYCXt37tkM8Ne4Nr1i14/eb/z5esDFGF3p0pBY2BSYCjL4mkjlsJ66NjTQOrC8aD4PtA3K9WDgwQcshm5j8bD1anjyum+YUOoYfQI6Hkm3UIwsRzAVYHRKRpoyQ6CFWEbeZJvBcwbUZwG1Bwv4hY0zTVaPS2wIoPiiRoZrlQ3hhurORaGxkgr24iUnWKZ5KuG7QOfKdplKF8sL7OW+nmu1CznJaJsIxW/1oVrGOdrNoliUT48OHf3nW2D/eKcr8bVnD/6aefDSBVXqpxTaVTb5GPNBg9z8Kek3GCS2LkF4mV/J9m5YSChtBJoTNgnU3HsGUpxcw0pN6WXPCuUBclvLB/R8Hn0TQdRuj8+McPPIZTP7lI2v/L9uRf6fMx8f+6Ft8+8vZ+PXTFuv9D87jfcyvzIs2Py+c1ff/H6Xoyzj5qKqKsIK9NqvCcYNEMDLK0JZBe6W+bTa1HagI5lxOhaspNtTqnTjyppu2o1mw8uEJZx4Vwh9kH1eUC8QmyeUfLbTDXUbEi459TE3FlaY9El43B1odUjB13Jp3BPoGWkzWzpBemK2mCRI903hn7LjrPc33O3Ldx/faX8mcMfbrSfDU4/g/H0LfGDCxE/4Kor0hRaS39JGRxPgng2QcboeE8GgFgmkMW1Igdgr5hkZ3fdMznI503dygElZYfDPu2bvqxLJZNk3J1BKl5we2YZEMlaQwQfPTkXS64ptcHSYemOT9tDoYDNRBEttMVSlTIZHe5pJUsgu6Xst8iMoRdqgaI1u+qt5GIx5aDpZVdMdjwGlSOmgvmGyAIysqGqwtANXRZMGtF2yqaUDuJLFomQheN8DYgu9Oh58K8bAwftSFkIVmwzbO/U9iYTvkIQPXNsjbUuGB0VZY/URAwnuWNmqEIpR3aruTnLxtfxQO8b1/6EU9lfIHfm7f1G9w/pbfe5QRTJJgB5aNNI/pOmKBCpwD5ZVzv4FThCfW3Ityu3kUl4QaYlcDA3wHlYKprT6645benBtL+memGbdlAXnhUIJQQpOWXxknwZqyvSKq0d0egUOaXlVJJxoiJ5b3pHZWFphZCWgHhaNkIjKFYQlkxUjStCodQV8QRdWt+wvWTzYk/7rZSKmFGkUiVVOX0PRAvF0yZpMuOlPflRwdzUJ8+pSILs7WUuXYQboYa7sIcwJGg4MoKIhhRNqLuSMdKk1a7L3Dc98FFoLXApGUywZErT8KBJStULQc22OlUyaa1PVcqYhZdJcI2EgV4HnN7lZPjuVDDJ+22zRAPoAQ5vGkt1PDqbOcPSDuFkkqIIM+NpFlI5maETz6qYiJtCJnlX+ZZnMHKNYFGHMdNBQ5nCwmmRSxiruWNUZFG2UVBN/kh4UMSQnq+HW59BZhPfpoKSF9hwKJIJaqlGC65hWAyuffDwdGG4UerC3emIuvP561coTt92+OY98d/9D8jf/3vEf/3fEH/65/DuB8g/+cfIb/8GUiuslZ/+2dec9zEDTuJZDbYNRzQHbUiq7Lo53SL3mGk/3D249mRleaQdQjzQlocvmWCQHaffpsgJE0lem6eVZs57MWNOoVNJIarc2CGBYHNQShjDs4E6LDJh1vO+yPTEHEaEz8KejweDdP/K1DXCtUO/ptr5NuW/se+e7d4v8LI5lGtLNiOHWarUSai6qlJacoWkKK5H8KAsweqFMtYM2emdpL04SNDvhTfnjc8PB169N+p64o7Cq+PCF23hi9OJuy9W5K4Q68IYmdbpGLoeKFpncm8gYSwcCe04aT0culC5Q6OxyIHccHsGX6S3mVqVUhrWLtJXWAAAIABJREFUNAOnzCgl0KPQy0BrsK6FumQzS8iGRxFJJMMi+JKQeNGPqkCp4DHwVfOwqpODJIAGVgy0cJ1oleJkmqbfET2wuqey0oTqDTxY2su04P8i15/8nx8ImXmiY7DOs89uwe7G2HviV+h8e93YDoXtckUDPvvqBF+nrYzDCscCxyPLr97x5vU9ujQuT47Yjg9nbEbYQHDKlHKaGL73rJ+n5UujUaNwkLnGyECjI7YRPuhmGdbhV7bRZzCKIbHRr46Y5RnOd8LhQIbHqMHWBe+WIS0SyZemEyOtq8VS0ZxL4/eiLfBLvT6Ki1Jxex3JFLsO43J1Hp6Mh6fO+287l3C+PTuPT86Hy8jGl8P/dc4G4nlLdVbV2ZMIZoppigJuFkFL2RSTPc9HrdbNWp8uDJ0+wlTR35IJ87NvXK0iHxEVN0uizOZRzCAT+KSsudkgP3n/jbH10QZ4a2Dpx/d8oh6T+RN/VF3J85vbNXe/5399t5U117nZAft5K67vhTIr1GEVFqCjrEtKZ4c5i09miDmj5B+qwvPBMUoe2EpJNoeKoiWndT6bB+KCkF7o60hGiI1MxCoqYB8jJSUULJBDIcSx0TM2dwRVCy7KZhted9RX1mVl+EgJtYBQML8SM/JVD0syZ+ye8XQmwlnbr9HZCVnShvP2yHgzGL+1omtjnOBwafRvDf1qodl7ot0hNph0Wth3PIzdNiJsTtUlF8oQ3C7JEik73k/QH7EiiNe0MobTtyta4ehZ/Lfvxd3wN3+FCaEFVGYkfck4eTNKmTL0CGpUtMhzhHwToaDQBm7KihCSxQleMmmujAmnVlwUs4Lqhs9FpGpOZ0VKRsfLABKwrJGWr5SvJ0QbTV7NbREd8sjCgsQxFVdaEGt4UYoeiTiDdaQU5HDAulC14mvHvKX9qtxB2aihRA/gisYdMFUxayX6E+ZOLZbhBQ4LIHpHtZ1zVHoozs4qwrAC7mnZESPojBAaxtEaZxxq0PqBkB0bgpSXV1RJWVGEMZKFcAOr1BCMWbgwDz8+rT0KchT0Sdi3oL0Br7nRjHFl4UDExpgwyLSfKiapJi0TNJ8b2KSwzA2jj0gblsMSimvCGq0NLMBcaEUoNbKxqhtBQ1So5R44g64IaTW7kYM0TogZelKcjomDL7nptSAz8QoWgpYjIh2VwoglUwxFQTcYK+Ps2KHCmCmGZsTIQ2Q95KF2LxCmdMuDbnKZ8nf0nomPtcr8OZVeX16zAXIfxAtagqNmQ0dF6F25u0srgWmqkDRu07DcG3dT9t25PxrumiqByCmbqtAkG6ESyhiGaDKy9jlZe5amk2pfc8nD9+LIFvzLP0p1ioWjLgjGiORqHSIoDOoKdlHWgzI2Z2daOSIoE36s1HmwCESVEQZi+bqaytYbFNc8OMw9X2fhXXGiZmNLcDQyMTRmEyrEUa2Y22xkCKPnYTDVM7e0zEwbjQBUpv42J7M/f2n1/b/MjMKEoHtQcxSHSsr2SnRerY21NfZrsvSqLhTt2P/0zylyR/yP/wL5R/8IPlvgWIm9Im8ORH+Cn/yv/M//6j27O5dr4h4y+MSf76kMDAi65X6Hwj7h8JfduQynO0CwRBKp9pE1Y5l2nE4yZoi8f1JhlaW1z4ZW1Zm3ZHmvLFVmGZUNkiLJaorIWmh6/J8bpyIgnvN6I8vwPHvcLIoJZv5YlidHSwUevDAuT0SmtnCzsN4OFy/1EtvYS6PUZNSmsjQVBxEZ4qB+Y7MIok7Eiq6Dc+wc6hFip9bG1jdKqVSHVRpLqbSnjXr4jPVwhx4cXQLqERlPHNYD0l7xh/3PUX3L3p8QHSCd8KDvkvJnjkRJRc7mQY2V1mAn+YIGlNoZJrhXSh1zH7IMGrC8r5ZDZe+DJkJbcu0beKaV1ZwGSAGJOtXOwW/8W5/z07+4cn7Y6N35/Ks7np6C7fFKlDEZKg1ZUm2oI7hK2uGkaPKwdObPiRMG8bCwV6E1oZljVbleX2az9Be5/vm/uvKfS/LyqlT2MVi10NqAUDaDtg16FNoBrtcz6+EOH4EcQL66g7/ciFcLsqxw36Ap9Ud33P1UePz6kc2ujD1YT3nW3M9BWSs+BosWHgfUkgEUTSuu4Lujnvvp5nmmpCg1bsS+VD0XjOE51FJRRLNxpt1ZkazR3GGMtOTLjqum2ozk/G6u9NgQnIvXHCiNMQMv/s2+gnhONEVSGf7Tb3uqxD3QYyG68PTknIbz8DhoJetUL8KfPXS+3pyHmVooylTMz9pHb+iCWxJgDs/KHJ5EyHOKN7fGliTgPebgL/ehybPKh3q+cpvJ+8WfG0S3oYs895mMTxhYU/0fz2+nI+ITddVNU5VfNRnRU8SV3zg+WhRnRyrth8zH+lSZ/N1W1qdtrvywfOej/2/X96J90efktZWghLBr2hJUBPWc4PUCjAnPVkmlC5kKIOZYg2Y5tZP6f7P3Lk+SJ8l938c9In6/zKruntfO7mKAXTyJB21phKiLTDJdeJB0kVFm+jt1ocmkA03SgSfRSIIgCOG9u7PY2Z1X9/SjKjN/vwh318Ejq3upC2AAuKMG4zBj3V2ZlVkVGeH+9e8jDa1DgPTiThNID6IW+nDKWikXz8KlC6xCFKjDiaIMcW5qcHi0EJtgdU9AbBr3STRqWwGlyAGiU+QJLvc0PaRBaS3JmDBByoXD4V0KL+lsCAscjRd+4vT4QHn3MYuB7cbaG+fbwc03V+pQ7F8ciS/+En7lA2RT4nzg85d/gEqw1gNmnZAdfHqKSJ2JBikrEe6Q2zJNUg0VZYRQLJuE4TmhbcvbeYh5BbGMPc5B7jSYq40RHabxrUUgkfP5VQseaRiqpeDNJ+CVaSHVNdl962TuTTNmqZbGnNRsrGTgXhgKpThVS3ojCOlFpCCSsjMTzYNJE/RRTZlLovVJ6xErhF5S5hcL4ZJ7kcpeniNVGWPA3qhLySmfG9k2HKB2lFuatAShRBm1owHr4yfsdsa70k9BSEF88KIsM/FKIVYudqFq/pykKX1PRG7BuV0ap925l0K5NKzMtLLV2N9C64YPDo8f4ntLKbinIXu5Ai+SLKQIoSYnLk1bzYEK7wwuS1A3kJLeUX13Qq8XSiZemTiiBTUj2cVXz5pswqbiKmVY3Wl16vojzwGbBt+15j5UlUypDEeXNVkqxUBWinYiWjKftAALHlPmIApSEHYMy8lxFEKzKCuaTK0hJVMI/UypHYtG0wNuTmyVZd0SYBFPxqtqynQOIF8G8l7SpIsxz/PA0Ly88UyXmXK5oYFsb2lTaEGZ91knk4g6wvGYg5ckkVypfEpgaRBsHZHGckyCuOK4FZDpmzdJ2SHpvdVaUtz79A7SSPlFTv7yfCsC7gU/T5l/AGGUGSPdqQ8N/rgETy/CcSmEBJeLU6dxfTebrFZmaiagwroqp4she5puj0hg9vqbr1KmjDb3QYSkBJU08k0QqlCuyYohM212MrSaIk1waWwGsW+TmQxVfPov5Qc3OWpBkWS22l/Du+H/PytwHwm6E3jPBn03Z5UACloW+uVCK8Kz5/e0uwv95YXPnhrfeqzoP/2vCRkJRLgiX34CvAvlwot//8f89H7j9Kqz+0wcHEzDdWFM1fl5OD7ma5CUYQ9z+gi2bbAPodb0CWySjFYbTi25H66phApEye9TNKWjV1bd8KCS7NU6/bmmz38CUSSjtpD3le3JpMk9Phlh1zNqJ/futQ3xwOdE/DqpznpdiNoYWvG70zTfnYEK2R3MJuE/3W/8P+WyA9SulLFgMWiLI9M3U0lmHGKU4hSv+dOchi3H+giio9tCmPP4sNJ755Hf8AsaPHr/EXypsBQu2wsePfkAf1TQW6f0G9p50HzhG9vKZ9s9IZ2iK04C2Fpi+rJleqbawtqCiAsXL7TIukxdkH5E7Z6iyj7Sr5G2U4tycaMOwXywlprMl3DGCFrLIbtKBl5IgaI74RVx5eM//Yp2C//4v/xFaqv8m//nR3z7Fx/zO7/1O/yL/+MH6EHZzy+osjL0hvWbGzd25O7TS3q3Rc0IljLguHFZKtFXtBpjy8+ZNkPr4ee8E75+6/uf36Ml7RnOLhwlQwNWM4rmjVNcGfuWw2uEfe/IE6iscAj4lUfIT+/hu+8Q7xyS5fl0R2vhsQcvn1c43rH1mj5GNbi/3ylL47IH9bigkkxnE5/hUDu7KVXAZ0q6emTCb8+08H10YjhrSyaW7AMqLDgXT0+tfRjiO0Smweoo2OiM0GSdOeCGizK2IM6Di8N6oxRZft6/nq/ByhpHJSW87sLH90a7KRx6YGPw3J1WC69OznaxDIIIeD6C33ux88WWw5haZN4fyS4297S8YfaA0zNrqXn3+UyaTNN4oWowwsF1AuKv5e7XkLKUIU5ijr4GjURlSt4TGLpqY2S+t6svl8oVoIo3gK4rrWqqtpTXoYZkP0rk0DNefymvIa+f/XleQa68/+L611y1hVfh4+v5Tvy1rsavBZ9w1MKyyBtJRmkMuRFYK3QPlh1qrSkxKWm4V2tQIz/4hz0nfEODfbdku0gWw8M9U3AUSjHWkmlh5UahQrR4oLD3RwKLs7YKTbDe2X0gRXBthGkaMQPUQtSGSsWs5OWiSqnC8XCEOOJ6wMtOLY0uJzok0CGVbe/0Plii0E5BbIN6AT0Nbr7ckJcD9jPllx+jn67I0xOMwf3zC14g/IbNvmLshdIh4hapgnga7kREpstRqZ2Uabqy7ZE+W00YNRtuXLDL2ycDuy6ps6idDtMikT5ZLiiG1EroQKtTqzPOHYtCUUA8HVY0fahEWhoNWTbsIkrRDDAoedok3dNBq1IbVCcBipqR8kUT/BAlUQxJRlatCU5cjxZMCe8MTph3LG2XKXKTTYgGcCC6IXFDiwU/LLgO7LIng1EG0HAPGmtKuhA8Mg1UBGiFYQPqEYiMI5aNIVvq8MMZ3rG4oMVwGaiWjBhuU44URgxoCItf0Hak1k4tSjcj3kKZ4fnyFDwZL2CULrTOZEQxm5e8ePqcskUB7oW+DAZQd8miwsBNMQYuSpecnNRaki0hxhDFLCWH3YI9HCYrYMyRjU8PJW1CWcCbUJpQb4K2JLhbSt5F1IUqmfqmNGpZKd6SWVXnZUgnpOPF6XHGzTADLZnqQxglCloa5ndYN9w29v2EM5B4BDHwAdIGzs6lOlU0qdYj28KrRKcvFdkKLnWCvj4ToVJOtougoQ9fL5Lv521ctWgyWWJgW7ZitQJqbB5cU9fLrDLKLMq3UajFJ5tGqUUoYlSgiU5D+IQGIcuGJmnSPK/gZPApVPIsy8Y+pQiXmAluJJAaJfjeh4P3F7gt+ZxLCfaeTGhZguWg/NZvZ7LSk0eF9z4oHB5XfuG7B4rCk/cOPH5UeXIs2Mj7Sq4k9un7IAI7gCoh+a99Tgw7we5XuZln6qPwUMZlYIFQHR4XYWm3KMEi6a9UIuUWEKj2nDqKZ3riW2jS3a5z2SnhK+QwrLbKulSWpVIU1sMNT3/8JePlhvSN/YunlG+8i374LYhxHdsi+x188A7x4hX869/jX/7JZ7w8dfYqlINQVqUtE0SfZ6JPth0zjhzLpm6MYOsjGzzvcxoddPdMYx5O3zunvWPmD74gGR7EgwdaMn6y0jZyqNWvya9zL/v0unKHfQRmKSm0N1IuY7JaU1rPfHx+bq5A1oMi1XMK/pCeKRXf08cy5A1A6/qLePu2FgAtCtGMsic7qWjFY0z7AqcKNBWarMkMvCjHS+X2/Ih2v3G4b7TThZuvnNtXCx/dP+aDF4Obp0L79ITvAXtnLe/noO9e8VDKocBSKX7ktr2L1p53qAaL1gzK0KCEIj4oFMQGUtJuQiMvFOuFUoNup5T0ALWO6RfQ8j4S0rNNhJCRA8uWknjIbW7AIKhyADkizdFI0PVyht///Z/y+ZfP+G//i9+hn274V//6j/in/8Mv8eu/9R3i0PjV3165PayZ7jvuePfDA7UKbXF06YRnGIzGTl036ButVq7+OPK2brC/wXKgBpOxmb+jDpypdBpuNdNQrWRA1g64s3kQdaTlCwrffpwf5ApxrLAC64LcHLl9r7K2BdHI+4cMAgh2ig/UBhqZao8NbDujJumD5QMdg0oyZnWMBGKtE8NodcqfzfBuEANzow2D4YRlira7U30Qo9PdGX2wm1ELEMHRBdkUbY7eCNv0hPrP682VFkUnc378qhOHQr0p3HfY3Hl5Pzj34BLCuQp/ctf5apsMYodak5WVw2eSdBITc2CSciTvLIdJuMg/h8yU3ZgSwutwjqsf1pXhm98rsagr4ylTUB++S3D1jifI+0umXPHao/h8vzJBpusdFdfvwXU4mFVVvMEKiweywpsQVDyAUw+iwocHvP75Pvw/5p/kZ//lr7K+FswsIo02E1YIpCf4VCXSI2QpuBl9OG0RthJZ5ON0N2iFVpK67gqq2eytS2HD0IBqCdwUVS7m3CyFk6X00BcwEZYVyipYNaJ01sNCCcvI5SIIA+GWwkh21lBCzojcUPWA6E7RW2pdcO+0g1AOK3aG3ModiYZWo/cLth041QtfPX/F+/4B7UKmDm4L/WZHN4hzhyWNv9vnBR4ZP/z0RwxZoW0s/h229Smx3+CXPS/fULbwnCC4cb56fpRC1SmtkNcGc9dibVnezo5QQqglpjFsGsKiSbXVmN4Z+46Uwq7BoaQBdYxgb1C1zGSsTMoMbcgQ0B2xlkyqoshIqU8hJy1OyRQwBC0O1lAymtrJIINcBdFB0UjEvCgSA4mbBBVKm8iDItMfLuQeoeaBUO6JUnBz9iLoSNZPrRUfKUWK5R6VAyItDaUbuF8QXbBhKIOQBY0LtVTq7lxKsCw3eL9Q64GYMiJ8yc9sgJQNNSeksRTn/rJRWyMGqO+TmeSZyvcWFlVnh0AfGFhcf/chxDTONo+UuDoMdeQlxEKy6phJljKNh1fHo1LFXj9f92yYpuGihVNKmn2rpnkkkIaSMi/CEg9G8kX1ipfinnJiJaYMNtl5CiB5PrmkVAsBI4F4OQdxYxSOmO+IHfPso2F4AuLDUX+ClzMyGhGFWgzRTtiB4feUnvvPB/RuRCiUwHKIiEVwWIzLq0CeKDZZE9mhZqPY5mc3vCDVqLwGdd621d1QC4bn4OW4ZBKfuVBrpvOB4F5YwhhDuBg8WQESSO3hMwYeIOV4mmaU7OG0Uqa/Wpq0lzn4ickeLSLQmIbsGaBSplxRqNM03TnLwj/4Bef7nxubKTU6KR501lL4zi+tPH+RhfaLk/DRcuTV6cKPPu4UlE8/eZXsTxytELukV2QkqyZL7ESobE5LgQcfzCopxU0j7kyaE4ThkzUYgsogpLAQFHX6rkTbaTqliZLyaYlKzY8bJoM0unu7VkzOnpHT/3VpqHj6z0WhAJf7O+6+uuPDbzzh0XnjrIXnZvxSMYa9ovYPkAUmsglVke+8z7//v37CM5JN2CO9YsKDPtLvNKPkE+yv8OAZEnMyO8ynV5rPAARhmGaowUSN0pfwWrjn+TYsWXnbLKxjsvTs6n8FGQLj06cGJujEnHCDeAa0ZChCDgXNAjObE+U8G/2apCgJcjGBsXw9s1IfneGF6OcHFlae6tcD63Wx/7YtGwFNscPOcWTdtY6Wfk56xNTRWtkXJ5aSxtqLU1aw5YAXZymNALa+cfKN9fgu4QsileNXgtw4+8uv2PqBdmjoR09wP8HmyBjYSGsPxLGRjdeoO5SVYINo6OgUvQE94eOGVvZZLlewoLZgbIUSA6ygtVO00NeK7gNvWa8F2SxWLbBYbhMJVm10AvMLH350w1fPdm7eV7794ft88tlT/snv/hJ/+O+/4NlPfgBr53u/+5v8we//ORd7n//xv/uIT79UrCh/+cMz4Y0uO8Uq0hpSoDfHL463HdELWiphd0SpeBGUtzOl/G+yRISLBMtQ8M6mA1GlMJ3uwrOGioDhyFKooWz7bPwL8KjCKHDf4dc/AjnA9pdwqMRBqaPlWTSDtqQNREuy6hSid/pFkEXpMfBS0nrBUj69SyDmqA2GO310FimoZlr0WuzhHsY6bunNVMLBMsREzPGRcv0WzhieipLh2Aj8ZLDkOaie/9FI6aK/Rif+3i2V14CTRtZD3YLnqnzSnSWSrX3TCl/eGSzKnTlfnYyPT85mafnhpC9o3hvX1Hpm4FiaHCAzfGSaZeVsZyozPJUZMtlbVxP3MgcqeZvkBeKTPfUwVEEe/s8cBOYXvpYTqsj1OpsA1gPBiqv5+8S/eHMCIyT5Z778N7y3rs/98CQ/w756jVZdE33nw8izM+brul6W8dfgW30tKrSjZ7KeRZpntzK1wppvp/fBovowaV1HMm08FKlOazndT3O1BAXcYZhRVdg1iBZpjB7GugqbDOpBGBroCmqR1NE1D4tWA9VBbCtVjeF5gbnsFA6o1oxgJYGsYTuIo3XQY6O2d7Io3jYOy8K+pd9RkSNFCntLzysZjZ++2vjWuafJ6CulPHpBe7YS+wk5BbxU2s2ARRmvGnf7wDAusWPRqbJw1pd4CcaoaHEWMiVl10FYpj0SkWwzD1oEVgWiTJNy5cvnb5+nEYBjGAWRA+EpLSEKhLIeCj5mUhwVpTM0I3FbX1LiZTnBLaKw1px+UKDdJCU5aTEPxXCoQ1RKS2lP+hoUigQ2GmtJGNE0mRIRVzReEU8vLZGGUHAZD+Z+ELhLUtapaOx5kogxorBUZ/RMyziUG0JHHjRmFA5p9KgNJqullpuMd/VANYGzHrMBECOqILIgxfEwQoxFCyZBt07Y9NDxZNCULrxaguGDopVVLgxt7DbwMhj97QNLX9wF3/pwx1EsYZ0HY+vhszlTiD59ee4EMyFuU/ReDEzTrDo0UFd46dijmMmpV9PcTJKb/oszkC7lwVcWQAHGrLNqSX+lUDINpxQi0n9KS9CoKTUkKN7nfl1w7mlaCJeU5VCQoag5Ov9GYmDlfu5tSzo8hbZUbMvnOizC5uk15zYI3REVzJzQQWmAKEN6sl2vF/4+PXBqAI5ZytDXIhSTh7HNkGCVSCN4T9DubVxqQls0AwR04gVV8CF4yAxbUEY3VITjIiyz4tD5M9WHomYSySU9J0vJ58fTJ6OqTLWioDWLjZlVg5PTxZsanGtQduXcs2gOdaTCF8+NlzW/56IQnsJa8TxTfvjxBSi5OYGfvNhQEzLT1TIBkXw/KuA12RsSPhlWdU64BURRjRnokcy9CH/9XiOLw+GJMoRMf6bhqGzskZIxXWHfC7UFpkxJB2CkBFM0Ux3f0ro+IiiR6VgV4RzKqgI2ePHFM2ppfPSL3+Dy409ZfvkjLl9+xrquqDuvDje899lz+NUPiZZ3I35GPv8xP/jqzGY7u6dv5BjG3jMkwCIoRVkEzpvQAfy6X7NxC03WVpBMpn0YVTMtFkswF83Cv+oEhEQIvRbDOcU2uKJHBDmUzDo5vbQOh8LpMpsWUWSm0IrMyTUJ7onk3aszcGNuqwdwikgQ9cFjbs7HlyVwjri/nM+Xxb5cE6PebATeslWWwnoB7S19Sw+DsRpWnbVaGqhzmSbFlfJuejA2vaVHprXt0SnlCaeD8OTymEUL4jeYnlK+FyvNBvLVhvzmO8SrDdkrbgPVvJdqFFQOWBOcC+oHXAJaQ62we6fQ0V7ZdcPMqaUxfM/wlgiQgURFlgsaC6N7pvxSEdkppeJ9MpUliCLIWNJ2IoTSjA+++YjzufM73/s244XyYr/QxpE///NP8YBxccyUP/2zj/nV3/glvvntxk15zO1y5GJ/Br/6W3z8wz9iXAStOzYKh8cXfv3Xf5t/9+/+JAdoDmUBGRWVQnd7AFj/83pjBZw2ZejgtkC3BpIqnoM6HWF1kBL4EFrpDNvSN28pcFSiFuTFJQfNn3wF7z2Cjw7w5YYsnlSVGDkoro3dAsdhg3IwZKb57papibFD94FS6ATNlS7zebpTQvHYEQ2OxSg2cuDgnRbJJG3uBAWNjRo5QNjM8G1wuUrPgP3keB34jYBnPSGRqh67+kb+PV4znyMHZpLs9GGZfPvFxTkusEYCMJf7zrhVXpydVz14tVl6eM+E3vBgt6ss/YrlJDM4NBPFgxliJMxqiDm8ZrKxsia6ph46KSV0eGD6vh6RzPCRmVqYoBmv7x9mH3EFmniTJPWzf/Em2JRAlDwMf2TeizN96OF7PTzm+u39Cqj9LMPrKjW8gm0h1+8kD///64TSfS3ArIxCzihxKZWI3AwRkXK5Vdgs40l3VwrpBVRUkK75wxXYN+NwA1IKtmZqw95zIwxLzw4RZSiwBXIItEKtmtTwAq04UoRaDvR9o5ZOuNFiyi44pME8Lxl8gyUEixPr+i6X7Ut8byDOGCcoB0KUkGCRQ6ZSReBs3FbFY6G/Mp5H5+73vuD2V95DfeCXQF8M7M9f5TTomwLHA5fPX/AX25mXi3G4KPt6y2nrmI6ctFOgGHEOUGNIpmAN8fTccdgvydTYrNCw9OmZFdVPnn4tVKd/66uVkub9OiNSI99vAdjSbJvqdHZuR0G1Egy8DeQStINybYgonWGFsRmHG2eUMSkvRuyN2trUN1eITlHHrSOl0aNTSpo5y5RKFUifN61QBuwLUjs1GsFlNhZMz6qSbkF+i+IZbe8NLc5a6oyMzibAe+7tsix0Ny6nwfFYkTI9ZuKeEkdaren5pMpQocqR8/mEanCzLtk0xILFjpQD7juigyPKZkZRpc9o4740+ug0L1B3Xnll7ZUbGjGEc3wtjpu/1fUnP3nFb/zyys4dRKYY1sjfqaJcIlALSivEU8PWIB4lU1SE9EyLlAiq5WXlUVgNLtWYgxO0pOm7alJ8nZhyF0CuDEuos5nq9epOAtUFUYMBcUw3twibnmwJBoidGCWB9uHJj45aadHom8DiVKmoCBc/U6ViMfDR6UvL1+d5FpkvEAsuZ6JfMISwkt5wUrNxPTnj/QFR0/WoO3KmR0X9AAAgAElEQVSNoYtgPQiXF4E8gtohPMEH85ToVochkeyZeBs5f7k8GkWdg2aiW1K/K1pzXxlgNui78viYnkMEiArh6XMm7hRVmlRcUqp4bXAyEnyeiVNumqnBglbl8PjAtz8y3v+u8vF/OPHJs+BXf61xY51/8ydB1Ky11QGUuy1oRZAqtAqrLpiBJUpOYKxH4bYVNptSb+uEF3ZPWda8YEEr4QOTK8iV/pmP3jlSS+F0HnBK/8AraFckWbhIYTOf8lymg2F+RiRSAuDT4LQW5T6E0gOqo14ZMtDSqDgW5YEB9DatBDDzDHIXttrQyx2vXt3j3fjwo1+gYPTTKz787V/j8tUXfPVi4/bxwlPrHHvw4kmB73/O8m7w+Y9+xOfPn/Hlq3s+H537q+/VbjSy+U+GE9SSzCqXLOJFg979gSkuUrDoKUMmsO5snuCSxPQiZCY2tUR5La6SUQifBbyl0XiPnG6b+8MsuyhcNp+JrRAjGVxawIeDlAQHJBihlJIJVFe5q0+wzGcElMx25epzSEC5XdlGDlll+q5FxGTTPrQ2b+WKfeF8a8i6cTQhVLGaKKBpqhCaNkRHDsf2lmmj2lkAPAezIUGVI9vijF6JuIddcO8U60i/gXcr/sMT/t1KKQO1ndN64RQDLwuilQIoB4wBUigU9t6JEKw4gSN9ersx0n5CbziocDInhBwG+pYWI1E4RLJtDJC14lZTku9K0T3PN80z7dG7hW/dvsfTZ/f0Z8bz84XS4PJ5oxwHcnSWttCH8B/+5Cf8s1/+x/zf/+df8r3ffY8nh5Uffv8n+G48frJyjsY3vvMtPv3x5/zpH/2A3/jeL/L9P/ySIXv64BXhMgahC+UtPLv+pisI/td/9QX/7L/5gM0tmVAMDlLYBrTRcSvsCofJHFTPNMB4dcnkwHWB8w6qyF98Br+wQzW4JPgZdzt9GONVZ5OR/cNQ9CBYT6VFVSEuxrrWZEwFbD5QS/ny4kE3xbyjBBaDshuuKcGPcGoY1oOwae4+OscJfOxm6BhcTKAkw1sunbIEZxPUCuYD8aBGsKMTaH9Lpzd/xRWRg1LN1ohhJElGhIs5n+1KHfCTi6EGnzzvaBVOu0+Wk+bjBg/3hV6hGU/GcS3CzaqMnr7VfvW2khxSB8kOq5KvIxU/pKcW8RCI86Y903z1DzJBfLKoJvtK5/1Yk38xiVJTyggPaYZXttX1nst863mvPXwXHgbpEvGQ7nsFqq59Sg5vro95LV28+njFf/ycb3wFf42z6+vRXa4V33Y0UoO6tpKx3DUZWqsHe1GKO6WCj0wP3CNTAfolONwqrRZMg7YGvqcEpzUeIpaFRK8LkubYxa6D/owD1sogZYWlDFJclk1YVaVoodWGu3PQD9Da8b3Txg22fEVrK9u2UxdDeQfolKI5OWcg4RRveFTKjbHIMQ+43fmLly/5zc8Wjt84wqXCHz6nfqfgx4b2G8ZXxg/LJ7z0J+lBEZWy7XB+jtbDZABugNNd6Fsyz1Qj0xQjpWDoILojmojqCKd6IF358ed3P9dt8He3CvigemOPAtUoekR0x2znesy0okT3bAKnHktKFsa1BbASNtLzqHTMK9dM5ZAVGPQyaEPSm0tWXDpRhKId94roHOlGpaiDTZ8GFcKX3F8BQnreKI5oTmtEOsQBl9P8jBfqEngXuoCPjdYeIzUm1XxKxkqhLQtj7ByPCYJFHBNYNWA0iu8s7ZCyopHeFr0YdRmUAeFOH5L041FQWzmUwDeDJgzvbDZYRVEZ9JHmlvdbsFTSx2k9/Zx+/39364sXEFwQvya0MbXrMlO7IIpgpwRh7ADF8lKUN0YYw2HRlA6WW+P+Odx8A0YUHKORTV9eeDlhc4MywYQi1wCDIAo0DUApJkRztAqyXFMPBaUQZVClZKpbregY7JtTV2VJahfedko0fE2mGXGixhElm800MExGX5MlGRGSE2q7zylSTBZCiGJs2aCaIKNgI5k2G5HUbU0viARVYJwSzdskmwydTI1AKEUZ7jSUkLez+HIZuC7ge/ryTYby7qSPWDilZqJhjwStZLbVqjoni9M/cQKjTYItMrhC1dknc6qJcqgwLGFzVUU48+mnyg9+MKgtKYHf/7PB0oTDUoHO1pWlGGHBQQpj7m2VLJQVJUl1ec56d+5HSbrXCv/oH93ygz8ejH1Mn4k8Iw8a7DPhx2IOuQJOLzeWY0XRjLb2yVyV9IrskmXXUpRuGYLi8/1cp4qqg55JCnRxFlFcC2PkhFCLkuOEkjDY29gPWmfA/F0XXjx7gY7OoVWePHmMjQs2BksPbBhfPX+Bh2fS9FrZzvf0uvD9H/2A7ccXvnj+khY7W984G6Q55UDNuUwvLAunaEaXp1Q9AfoxoyO3DiKFPiWkMZmnw3J/yUwElJkerUVT7kfWeOakbFqyuL6mUibYxYNH5LVIH1OqHZbpszGlHGaZXByTpUVcjd2vKbIyTbiv0+sZrS5pIZAkeMG5oe/3XMfRV9gr/3CdVr+Nmwvi0YUSKcXaNT/HOhTVgtRAUOpueDvQWo7wu2aD35qnH6ceAM/apgQnBZ5tnC7KTVlZZWHRExrvsdszln4Dkuy6z/eRBu214dMMOyLT6tQ7olAbCDcM77h3ZKnolsZoEpUhO2ExewFNtoEXDqJskmdsnitORCO0YxqoppR1iZI+aWPw4x/u/KN/GPzOb37Iv/2XP+Fb332PL370DIpTyg2UO54cbuh0fu2j9/j8p4PtovzeHww++eTzRH7PlYvsWBc+//IZWx/EMLZT53hQTiH0fQVxlvaIi21pGfCf1/9n/W+//5T/+b/6BrEXdE1pX2gOTIJKCCzFKJLqg96NKMruwrp1kl4esBk8u8C7a9LI84ZBbircw9qUYYOdQlmvDPfB1oO1aJ5h+8awSkE5FmcTYR9OhOEG1S3PIxup1hgKdBZyb9Eq4mTKYR+MknJ5xlRzNGfshgzHazIKV+kYQnfSakWdGCVVKle519/XdUVyJhtePKiLTq9lYZusqJjst3oO2s0EhhBiz7AxNNUQZnlvEZMZj1AkvbJ68ECByqo9UaZMN3zDk+rK9Jq8X31gWk2FzHx8zCdSmVeMv6b/XkGlqzdX+OvfcSBz4PIaRHpgVz1wvvL1xwTb4ipFDHkAtCQmW2vy+mP+LONNqeFVo4j8zPd7YI1d38RfY9jztTjluict1wgWhHBnRLA6RA/C4OiTvqakh9ZwjiHEEtQi0J0qQTk7Y3OaChqZdljbnKjANC9TKJWwQlmEpUhGjBfPi7TqRCmdKsax3GQjUQ6ZoEVKCW0/EKG4bQwPzLeko48GeqH4hXHe6NsJ80EfHVmV9VFFuMGQCazBJZxP7s48/ewp8gcviO81xlK4vHJ++PFP+YsvPuW5HtlaR13ot0cOcqDdPOHm5obaGiorbhVZgptj5RAFvw+iD6o2RI2yl0SNPRjDk+GBECX4/H77eW6Dv7MVdHzAVncodca6b3h0tBqIgwTFBdcCNdCp6VpUYK/4lGmqDCQ6tdb8QJtO6u5Ijb23NIWvhcKZEkZ6LbZkZKU5URrKeyCRUppaMkFxFecgcNDOoo2IBSKDni0GohsqFdWMvM7AAaBttMMx/30PXAe6KLLXZAaVjLg/nRzzjSWcQmS42fR9MB0McTbvDN1YdYHecrDog6oDCaXITb6H0RmHkpHCpNFoWKNTGJb6L7k1+tLZa7DZ1wM7/9tcnzx/ySClyWLgmkeqEZkSatC+CmwX9ieweEHqND4PsJAHaeDoARXGCA4fQD9DaHZ5++5zypJLgjz3QoghDMsCZEzNvMj07CqZlFlm1O+Y8huVZCbalEAO26EI620lztts1JwYguhg78YY9/l3MhixIVIxGxRZcq+yT5hM0ydsDIZX3FPoe+kJxnkItRa6p9y2d6c4bFqmlCfN8AdQbvNq95cJAF6bWy2BjEC0sGPs4+1MbGotuJwN1ZJR8eGcLXAadp32BcRwtCjbiARwyD0WkcyTBDyzPHDSpygkZVtFUkIY5py6MzylVdaNVpXeC2uFvgu/8WvKB4/zcerp2SUOfRQkrkXelPW50zugRlP4h/8gODRPeWMZaDEWEf74j85chnHZAL2CBMHZksnjSCbtSiYcugWXe+dyPlMny1YkGHOPpwekpFn4G1Nm95yaXkEFFcnzOOAcjovjpNlruLDj1AhM3s45tWim59oe3L3auX185BsfPOGdd9+htoL1Tj/dobdPOL96wfOXGxxuuHm0MMzwUjn1zov7E9veOdaSBvwjuJhxumzZbAtQcu8m8xTCjDGcPnzK8/I81IiMOHHD42reHslgmBJA92RcmcUEqOYvNBK4isj9eU3cNM+vg4w2V/L8U/JedJ/ssCnhmE8FJPBlEXm+kkzWa5+T6UwJYF3ny24AmqoLzef2y86bkg6I6bU1e4y3MFwAwHYYsTFi5LBhTCapbOiYXeIROp1woVRjjAt7P3HZgp2NPgKiUevCLifsy3vOHZZjpRRYbhW9vcEv9+wD2MG7cirOK0vwUmuypzQKLivmyczyqxy17IgMlrZkrVSNUh2RDaxQY8GGI7rh7ox5z6YPXDZkyWQYgFJcUFeKL4hMlpcq73/Y+OrFYL93nAqjMXbDdud0d2J7UXj2bGe9Ub79zZX9+YYswrOffI6aY+eOHgrbVhh1p7Lx5Inz/vvv88WPnyMXo6JYsTzLBkjphLWf6z74uq7dndYKj28T/LYhjDGlfQTDjYWKkcCSkT66Fw3i6SA+ORG6JCpgHU7JFKZ3uN+g3xNFOUefFg87IwZbP2VCHsJwQ2RP/77qaNvZ90FsO2W/wG7U2GieJITmDnswth0dlkoehzoGC53Sg0UCHzstcphaYlDcsIsQJVmtPfaszTBK+GRF17RX+Zl0ir+fK0Ie1HNXbabIVOiQSooROZT1Ily60SeQqcRMLXzth5ipzMJSZ7LyDEE593gAq8YcjOTA5TrouA5R0lYivW6TeSXKTEWcfrpyfe0ztXDK3rkqOCY2pFeAKiAryASURK5yxWvSb9aNE1rj+ooUSDWEPoBp+R7k4f58DUTNxz0Ao/FwFeYN/B+pKh5e15t/8VdbX4vu8vne+IYMBKFbIppLKXTxRESPa+ra12wUe+QF0iXQAd4DXyY48KQQwxiXQG4VDWiqeEnj7avpqEqnSKXvnk2/OnUkS4Zp+r62hrrgcUdbHiEYQqP6huoRbENDsLhQ9wo8QsodrT2aprorpQmlJkslqqIkEKE1WWUMY1mPlBKcLxf0C2NvZ+5+emBcNqxnNHX3Oy5+z2jv49XZts4WZ8pp47QMgjSFFh20aSa3qaE30HeI0lFTthgsIXSdCU7+enP9+Nnb6ZllXhKM0kBky3hvBJ0yApFMwdFJjaTPyYQaVgLfHEwQLpSyYD1NE0ON1n2eKorrSnDGmhNaUF8S/HLD/JhMvugpMdSK0NG6pFbdVqooqhvz5MT8QlBwUUIPSKSHAzFIXXwDPdHm12gI6Iosmn5snNDjiu3Q6g5SGR3EHW0prY22cwzlLILuilRj6cIuwlIqFp2TbYikkrtyZO8XaEGXwoh7zCoRA2FBA5RCOZy4hCO+csYoo7HL27e/Pr7fWEXTD0GT7ZKAeYAHfoJTE3RxCOG+G1Uy0TDvn5gTNYiSj3dLnwYK6AvBbhNk75EwKMOzMd9SCsYMIPA00krQImAZgTUlhhMVaggjEtwSNRChsqS0SmyyO4M4NOx+oDeN3jteCnWswE53KEMYYumZJg2LBIRDUqbdXfBTx1nYXm3p5ReFsnTCM/a5L4ZYsExqvTlIGCHZhKoK+8i0HhFoj8DvAzksGD3TFEl/AWby41u5lpZMvkTgE0DSmAD81cAalkUYYyYdTvNWVUUiZVrZtKefhpHSq4QNknmkoiRPJydqTso6Xz53Sgvup1Hbx99XalFuVziLsJ0TfCSCqEIZgzr9qQYtp4NzvPdnP1BEhA/fq/TNuT9nM7i2ZLIutXA6GzfHipmzb9knbLulsbekqXvBskl0ma80gSq9ThVn8eaShaMjaAilpEG4iqT8MGb9N5NozUE0qFrxSO/CBLSEIW+f39++dfp5o7XKzbs3HMQZYxA20FLolzNcjEv5iqdPnyJ14dGTA1IqpZ746suXrB8saZbeKsU7dg7uN5uAUtZyAtiUSPueXlX7NJ5S84cyWSJDCsSAyN9nm6mrLgIdYmShLZN5VSKlfzkkyj1Rpxeg54wqQbHc0Qn4xxvFf+RjS6T8doazooUHplUAqlOKISnJ7J4Dizdr79x+14l2sm3H3T2x9/y6kFniv/auS6/AtxEqhag5pC7kz61VoQ/DRWFxIpSLKcjAW8HLIT1xW2ChHNYlAXzbsT5od8I5guN7UKVjd8EWG20VrAdSOtulcLlpfGk7975BVYqthJ/pm+NaqboyYqdM0DFUqLHgbqCVOhomnSHJBlVfaEfDtFL8glHQkqnVRQsmDfyOWpwegkTDfBA1B1AeB2oEIs6vf+8xj/Ux7713x9OnL2lrYTsJ614Y4x5Z4IvPBsvv/iK/8h3l87sPkFL59CeO6QZjZ5HKQLn0wUffvuHzz+Ddm4VeTnB+xMlfIudKYUcu77LVlz/vrfC1XB6Bi7KHI1XQ6UXqDk6lLM6ItPfY3WndIDp3L3cu94Nvvr8g9/dwu6Rf4LO79NOyDhJE39jGjuCIOuaKjCmx9oCxM6pSt/ym3oTtkpaSmzneg6UYFxvE0BlccaEG7D5rOXWUwhgGZfKCxFlFMrBipB+yjZ11gd12dtJaxD29f6vsmKQEMRX+V3env8dLUu2A5JBDdDJ1J833SgZ3zz5+RHA+G4fb+jOAjsxB2xWcUskhGpYSvFokBzKkb24+zB+M1ZH5R0kmlmpCRyWS/KOT7SVxHdhMUgGvgSmb947Of3nDgjlZxPMNX3E7gplz/HqwEyEpdySHUjzUT0k+emBeSUJcPodHD5Yo18HPvFBfQ10xX/OsEx/WGyyuv+L6WoBZf/ip899/VLiIp0RKgt6N0oSlKn23RJ/XFK9KC1or1FbZxsZaC3EfcAt2MbQLxyeFPQZVC5dzTCDMWNbGoNOkwdbxi6KPodBAjPBGLRCa+nV5OZBlwc/CIpVtvKQuN9QGWhpl6RS+BV5pOrg/nRn7hXqzUspKKUp4Y3Diti5oBWND/AbRneOjJ7illKu92PnqkXJ+ZOw9KGtlrEf27cwLuUfqke4XXnz1gsPjA3YQlnhEGaml7nFPk8d0uaMF0J1NC6oOA3R3FtWHKbNKJlU5wSKNp3v/Oe6Cv7tVO9gxKCS4NNypLoRoRtp7vm9XYS2BeibvOZ4a8htHhiAuXOKCcKCGUIIMuQphnEoComVJ06RRMTqNW5wXlGaYBWs5Jogkg4ZgYUhxdEtJl+pC0yPmGy1D4UE8QS6/IWSAdZaqoDvqy2RhdIoeMLsHqZSyYnbBuNDWQxoaV6ceCrEvxOpEUZo1vHaWVegol5Fggx0vXKKzyJFaenrVDaHHhbowkZcLq1V26VjUlKgdM8HxbMIqR4Y6T+yWs9zzONaf2x74u1qvhsLlF4n4SwaBhjMU5E6IDfwQRJmsIguWlowRHaAtL0uLjJEvdTK3FsM1jajtcSBD8/wrisgg1mSSxuqvwwncsUJKtIdRVPBphrwsedD3YHoKQas1k1T0AlJRb4CBQFsLrIqdO2Wr1GPNc6OQ08k6UBqdjoTQWkWqcdo7UaBrS8YYG8sTI+0aksVzOWfCTlsEE+FiAVIYnka5oZO+banz1wCapLP9bRDs+EmoDvJYsvhanD/6ePm57oO/qyUixEGInvHZ2aCnDNNMwJ1tV+oqNLVk+QXUUtmHpan1NH8IUWKkufs2bIZaZKHR3YhaObRsrvtIAGoLp3VhPcB6LLy8N/aeEjxGgqzm11QcZ6k1AVETigS1Co9uKy/vd5YqlFDuT8677xTWRyCRzdzYIRRac57fGccGNQplyo8uFqhNoZcKvk8AQ6+29vIAFqQhalCk4ATtysCaa3hAEZokwDwkwa4xJWROp5tQJU1Uu2SS8du2DsuBJ8cDo2+o72yS6Uq7g92/YtmM43uPKLbz7NUd3/zud9l90Fw570H0Cz0aelvY9419N3ofDGJ6XU32CpkQ1oexFOWy97Q5gIy034Nwm94+gpvNQW5WKrUqe09wdsw5NVPGmmBEzsPrbDJiFvDX0jhmWnYycZxale5zwnyV4MY1OIDX+3kW4TYSVE3xKgncz1pb4nXi05XNFdM92AN833ndOwRvluvXR149t962pZHqiCXAiiEirLbALsQLYz0bvVTq8ojdNuLxmfLOwt6FdemMu8LFnDU6cbqlrwv99sIWEPvCOzeN23Wl6In7y5nyzi3Oxv7UuHu8EzWAwv12Ie53xqGlT6TlnXoZd4gc0BLYKQhuCDuxSyZUV1FGUS5yQiElWhxALoyRZtlDd8LPYAU/JTtZHxvhSglDe4NmeDhffjF4cliwZzt30bl59IRnn51oGuyXQN9fqfXI7hf+9//lY+o7jfPolMm0SGCt0dlo7wnvf/A+gyPL0nnnm2eefvEB+/aSm3PjVVhKnOIOuX/7gPi/rfXP/+1n/E//5H2Su+aUKjnoEaPvwstXnSfvVESMfRP6853LUvjGuzdczDjcrrAHsvccMO0dShDm3D07czHjcukpYXelyiA0EHWG+f/L3rs0yZIl930/93MiIrOq7qt7uqcBDACCrwUpakHJZJJpqc+ib6CvoZ2WMn0CUZJxKW20AgUjRIqiSAIgQQDz6pl+3EdVZWZEnOPuWvjJundIMxnHDNA0Lxi96KpblVlVGZFx/Pyf2Oosc0EjsJMwKWzNmBwwx1rDtVLMMz8phNUagtCj5f7N9wRFuiSh4M7ugmsWx+y9M0XnsSuhBbHIQHnJ9vU9Ch4pHAnKE/Dyl/kQTQV7Ieg9uFn0CbSRQZJ1ci0pEsyHSt+NbXOmmkosGOCTjJIigq0NslkHrRFJulzXHYkrAJbK3hhRSpCkXK5NmnDjNZtR+EDdmwBXGep0IagylFpP3xFUkWGZviq/4hctiFzJ9quoKsEyv65mEe8f8wuRKYyKnvx9rllcVwXWhyBWwC+uiDKIraencuSXMA9+J2yG/+SbTq95gksIZglwa89MH9E8wd0NE6Ht2VrT9p2qBauOHwLtQZ2ypa71QGXKYfY2mwVYlX4ySp9TBngQ6m1QLxMiQY2JZVYUZ/ad0juHeUanCZ1z8zgdj5SyDAb3BfgBGRds7xem6RU3NzfElsN1t0ZwfvLbJgI7UerGXG9Zzw9cvCOvH1lfZnDuZVXW3ThvHevG5fEtTc9M5UipE7o1YGbiwFl3bPsq82swTE+E5ui9hmSXumuqwhbFowDBVAtFh9UgYO/LR2mlANBZmeXAgiNRmGWooMabrpbCpIoy1E0oFttgftMzbzWbZqpUxDcqQciMyU4g1KPTo+VbXQoinUmFbheoB4jOPE1ZJqBBiR1YmHTiYHNu3KWiNhF9paBEpGKwFAWfQde0weoyBukJ1Q3VR4jAfaVohjyHKFFmhCPdAq953anM1Bm0zcw2mEnAQnFWws9Q3nBcDtk2pI0gbalSYKrTUPU4Jje4Gt4miijPbwWJjugOpWSGiTlE5yjKx2jWKdJ5s9Vs31NBO8R93q84RgY2Gk+bnz6YkZiUaGmLqZrstTtsGF6EraRMWYi045XA1GibsF+geEkv/HXBqblwtmZ4TWUfGpQp82m6pzpnmStEUC3txp5eR7Atf2ezDDdtTpVb4i7w6njpeBgwri12clPZcTG6T+iUyopZGtwA5UCZD3iMFsPITaHbQszjcw88skjAS2bWDNFRKjUALFtuM+hSKcfAF6GFY6SF8nf/9cdpkW5jsJRqmJVhkwr2rsxa6J4V4lWMJkFxaLxXxZSSPkKBbJWRnnkNUxk5fEMtUivqRl87bVPMc6N9eH7L3/2vXqKbs56CRYQvPq989jJ48QJe3BWOSwKvkyjTrCxz5XY2VFKh8+5+Z6ISIcxL/j3PX818/oPKp7/hRBWW28LxtiIqLFPQVuNC59w7FsIkmV9Yh3VLK9k05RmK+pRvNAAHQ9k8TfQRIx/pGlI6/u6rwH62oepm5B4h1EkGlhJ0s0GTflyHi7O1FQApC+GZjRXRuLm7RV++IoqyXt5w/Ox71EmZSmaHIp0WcL5sGdlwalxOF/bVaY87++4oOuz5OVwfZFg9nWxutlTKj9ArLBJwH2bQjGAQQetELSVzP7neS5VarvYuEHFc3ls13lsmcqfg5rglnLRbDAArFf4ZfeVPtLSOCf4KMRV10FQFelyZ5PxBIzYrj+ApS+TKXMP1394z5ZPkjHCd45t/fOsiwBwz8zYxPT7j8OOF+Uc33P58or6emHqhfSLEF8bjq3v0+8ZBj8xnKCenv1H6u8bcBNsOnORE6M6khX1xzvvKn5aVP/ITf+bCyYLXonx9UzjPwc3lhv2bhrze6O86cbdwqJKAeEmlstQZCkSZ0NuJcmfEc6Mshi5Knwr7nuUUV8DRXSBGm7TqiGEoqXJeCvpMUZIwEpkzr7IZ2p15O1IeC69l59PvHXn39gIlkAniee76mj0QvTLpyn46oVvHVqOt2Zpn0tDphh/8xiv+s7/7Ob/5+XO8f8upF7b7I7Y623EDFXovrLqjx5tf8ZXw3T3+3u9+NcqfWtruKZwegp9/uaIlePn9A/UA811lOUDfOkcTHrvzthbuu2PnnTjt8O4C3uinlX3bMYzddkKDiJ1aNoROaxu+Gdo2SjH2xwt7d9wyvJ99pdsKdqIQLNaw6By9gzdEnG6deQAh6klgFYLNlf1S8CqYG9sa2CWIKNmSF9B950IWk+2ZEk2ViofQrYwp/TsBDfzKjuECfwKauKqehjop16Fc3xLkGa/t7hmVMQCvQroOMlImwQXkgT0AACAASURBVCnLhYSwjGFw9yTgIle+qSqlDlIk0o6tIlSNkYl6hYQSGEsjzzALShJ7FUGvI8wAiFSuGqyMUXr6m8YklM8YT0ra992I4yuRERDu70Eol2vyVWZYhoy/kxH+/qS9uq6SV2rn/WdXmidC/y2y55dRZn0nrtjXmxFudMuJZhknspTACEoPjpOySOGgzrJkCLxVHRdRoFWxAnFf8JqKhdYahcLkldKDskTKm60huyH7geIO88r86Hjf2fcLmFP6C0SN7me8V6r2kdlwBhoqM6Ln9J9aPlYsQ8XdoR4OFAKNGdVKkSXtN73jdsG0su47tjk3P71wflF4uJyxIk9vEm/GvnX6uaG3M1UK3mYm+x5Fz7R+puoz1G7QvVFkoZQMCm9RkKJYJTMomDgh472RrFKGMjstlJ/c3/6qL4O/sCOK47HT1dHo1NHiVuuEaCpb1KEWgziAdFRKvql1gpipgGKUVpjkgOuGxJmIhS6d3Q2ZK72CdEUNKHeUupDC3QPmTs1bZOYqFEPxocJZEO4yM0ZqbrZEyTr6BGmnMqHSqTWz4FSNwi1FbtFJEC2g16DjC8hG1CtTBL4FRR7ROjHtedPR1qBWRI4p/1+nVDGURkWYmGinjrsiOuOy414JO4Bd4PHA8zl4LgvTUGT4aPA0OoUlGaj+Arl8fOqZ3YR/9AcXAlCDbQ3iVthn6CXPYWjWz4sXzASRHI69Bm1NyXlcZcsxsmMMXKEJ1AX6lmqTOAZ1CUyyRYUBEAVkts9gZXoZuSya5QKMLC/cUalsYTRzrGsqIYZCIaQiMZNizgdSq7Gxtp1u2UAWkQ1zRKHrRDehtxVGf+KlBLJ1InZa35GSm8EIwZrhmtlaGdJcYM9FrZDqxygDxBrqCXchSmFvjvXRxjdFto/1AIcfP9i/dW4+hiNa8lydVCYlkAjSG25tKC5hqcpMhsmqwx5DVRQj0JqgRwIM3VKhEgKbBw1BoyewfQUTLMPU7WHjj37/DMe0H1rArQZ/5z8/8Du/IRyqc3NQjpNDg7YH1p1CZR4kwawZPtEsWDfBQnj97U47d959naHK+8jX2qVm5uCk0HMoVIKpCpMWKMqxFJSgRmZP5FU3stWurCbXbLhUmPWRxWQEaLCZYK5YBKsNFY04If6kmGlkVlKq2j4+9YwwYhUQwnaIbDFdN3j99Te4r6z7yp99eeLuZmZrjXVvnM73SJnobpwuO1KC4/fuePXpS56/vOHZ8yMHBTm3tHaFE+6Y57AfJYPbl5qlGQk2CjaKgbWkHRVJso3w9+2bmqB9GRVPadkfPSxDCQS5CSFGIYdFbg70Olpfh2jJdrLBdo89BhE6FFtDrSVXdpoxqF+H+TF6x/hc3g/5qSe87oJk1KwnUbb7+98iAu5f//wv9Dz/qo79Z8+5+WpGLhv1RSC/0fDfNKYfnNHvGdu8s7U+VN7B5XDPeoA4NPRocBP0G4gXO8UnbII3R6fZxq7C2e955ztftXc8aHDfV/Yq9BfB13zLbRTuj0Z5ccTPxr7m5sjM6BpEKYgekoBjyny/ACkzxJTz3vGAKGg45jX3CyIEGSQ/VyOk5XU17yM3qxPRuNbW+7HApHzxO8/44R++5QefveT5i+e4PNB9pnVHa4NQ3AsvboLD59/De6W/67S95Vy1F2pVfDLu7xvv7gtffNL5L/+L/5j7Hxfa409p81hML0AXapl58xFapP+8jm5B9wmLGb/m0KhzfFZwLxTP+0KMlku7XLApywK6OZwa93vnK4X++MhlD15vnbenDZ1SLbpvRnRn35y973QzzLe8R3XDaqFvK1N0ZN2QbtS9UTvs3rC2ZVZXD6x3ZO/USLW9huERbO64ObJ16Dv2utEfd2Z2pkNw6Y5L0HoQMbFIR/dAWNg82zhLKUzamLXCR0g8//KHYBZPjchc1VKM9YagtwEolpHrqUmM6NO8MLIeJQllj7Tcd7sCYhl7UIswT0nQXEVWpUgSKR7jdIwZnatiK+M4sqUVrghVxka8B96uX8psyoSOrsSMR+4TPgSbrkDWFcRLBVY+MpVmv7gCXle86/x4JW2uENaHa2Z8QBK9XynTbfBvrs7wPnPs3+X4ToBZDUWqcjMXpJBDZs6yFM9aTBenj5DX2gUdTF3xDOmOyBaKqo3DJGgR1ATbDaJTJqHOCzf1MBRJhRKXVDFEPGWTlF7BDdWO+g1Q0Lpm+DvBFDfolBesW8O7E33Nl19PKC/e117eFMpktO1MO9/T23moI14iZ8d/fk89PbJ/32mmHG4O9K0TWggLWl/Bgv5wwSic2or7IzpBf9wQvaW3R+JYmLaJ/rjS2g4xEaWjMeFWmdXQ2MYF02HSzA4pedFMM/z+H368vnpRebp2ygip05qLQEPxVkCVLSotdtwGq2pO0DC9YCJMU0GrEz0QmxGcEpW6HhMkVIBOlBxqfH0g2LIJsxtVnGmqlKIc5lsmz/Ph2pHS0bigUp4a4JAJ1ZKhsnHJ1oxyA9Iobrm5G2qzyQuEjVwcz4wrn9MaFhDzhVKCOt9Qjh29ceoeTAbLIdDSkLZQbYe5UHyheGO/fMvhVjncFIrM5A0e8HsWCY7PLpxi5l7gtRutdqIJ035DuUywB7PDUS4cjx/fhlA1+N/+1VsAYoe4ZYRq5417J3322vPGLA6bWW6uI9JaWGp+bR3y5AxtyJv/2FTJJPRIFZKORhSr8V7OLO8ZupBsKLs2bV6zg0QS8NGS+R2Eo5NQ5wnTtP25O9BomxBLZofghwwnVaXiuFQ8RnmE7GituFSiC96CEpUmikklF+CCRGHHaecCywhL9kgAYRb6yD4EEAtMJ6g5W3ZG/kMRugoqI1NsBqlBb4V3H6dDmgMB1nNTPQvaYAphqmNw0EB1xhTKrETYE4iEBLPmQG0CRWuOIIXB+uX1MguEa94zItWamc0gSBindxu+57VWS/D6PiAWfuuvCq+eg7ehcNUssyiqhNcxJEEXzyycAs07IGwnMBdungdtd6olQVVdMAwpMrJw8vvasKtVyWB2LUqUBB0GbpFKHc3x6hpKuvswr6VQEUHoo9q4E5ik7d5G0YKMYGiJ98GoSjpdP7bD9x1rjkWjR3DeoUUw64pOB9wbtndaN1rvmbYWjctuWN4JeDxfiMg6+4fTibYlgE0tLK8OHJbCfmrs50479VSISw6v/pQNIuyto9WpCkraV2vRbPoVsoynCLUqdcqctqojr20MvyqpPi2STVEwsvhqMsUqICNQUFRTqTe8FNfmKP9A1XXNFjHPPLWM+bpS9eP9F08jO2m3uL64172FDNJwKLSGsivc8uOPNC8L4F9Uo/5Hhv9O5/BXb4m6IkvDBFY3tgsQWaTTW4DM2Wx5mHCd4DAxR1DPRlsLbe7MvkBVTtKo00znMTNkl2A7XdjtzGqN+vwOP3SmdyDlAnNDDxA1i4/Cgi5kRpyn4kBKA58x67jvuacAEMOqsJTKKj6KpQo3d2O3J7kmpeX/QNsqRW4pBKGGBLSo/PCnX/O6b/zLf/lD2n7PZ9//nDpPuAi+zHz/rzzjt/7KK463N3zyyUvkWPHbAFfcCqUa+x7M0w3vvr3wD/7hn/D//OkjP/wmeOZH5FYpbYZeWOLALEfojX/248uv9kL4Dh8WwflSOD02Ht+l3VgOsNweCbfMByrKtgm2F6jKfjlRo1P7xuvzhbcdHh1+uhx4/PIe6zBXyWxZUeZ5kJU4p4ux9s79ZeWyXtjM8PWRy3nj3IxmO2bBqVtmQ++OuFP6Br1TPSjiLDiXs2FusBv2ZsMfLqgaVDjeVsoysYcOjYyz2XAMYHjAqpl/FIMB6BgXFc7947PU/7LHFWjyCOqU10m+23NtsP6eNENlECzZlmydsd5cs6tyzTFPog9JfKKM9axofm9hkG/j/0XJttSSGWa9X8ndK7OSAe1KzoFFnlbCUfB01WDFIHzGNwzL/XVNzJ8H11knxu/rHwBPIU+JV+M5n35YkmIDTROEDwtNruDZ9eNfBLo+gMN+QbD1i8Dav+vxnQCzCOMf/Gxi8wQY5hCmyKGdSZgXaC5ETThzD8dGMHBMoEmdUCXoS2BfK2gGqi0qeHemUGYP3BuHZaFWY1KhGmgrOIacr00mCRLQQeYJeI4/NEqt1JuFebqljh+uEVivIAsyfQ+p7+jamKohbaNI5Xi8YT7ecTjc4uGc35zY37zFPoP+6hV7d5alsq8bKsbewLyBOuvPHrmfHjErbKcHonXs7sLrn91j7mz2gFfYZafcHZjrEdZESW3aKFPm2/S9pNRZZgKnijIFaA2OMfN//vTjtOkAeBdu5cihOGW+xSQIKspG1XwjhlTmYWsyMbooJgtVKnMsHHVMrpMma3gyqj1HZCNuVuaSNxThQEfIoKJA+oF+7kwLTFEzXDfyHBgLKhOTVA4yo8wIbdgUBSkdj42pzogd8kZjeT5VFtRSNyPFwZZsLGRCvVLLTpWCeWEvncPyGYdPb1jKLc+XhZfPFz57fsdLW7g7LBxrTWfYBsvhGUrF2gE9HqAvbA8X+npP9QO1Vl7Od9RyoMctasG875R95hATx1q4KStlVual4cvCm9r4uX9815gH/Oz+zCI/IJ4PaaxkwLF7Dr2hmZmlPdgMQkrmtRXNwX7PjbTOBXOFLQGBXXMD1CSwqpR2XWTz/S2RmzUvwlMmYxkBjJZWHrFgwkEckRnFM2+LYZ2KTu828hI6okE7G3YruDVMAouN5gJSiDAsVpyFkILrRIszVoNedkwDojOLoX3HcHoPVm+pPDspfHJtJsvwS/OAKTJ02Qd40TrNhO4yZNhkzbQEHSEmoTiUWvgXP59BPlI0K4RFJHOf3GlTcGr5OoUHdS6sJ0NEWVuwi7LhY3OumZUgJW16MiTt5hmorTKUfDlMeb+OEQm8KpkXhCWoFF347PNbfvA3CuErp1PhWIMvPiXtYCVzBlvvGB2LDLO9rYVFlUmUSkEkOD4THh8L2wmeH9LK1S4d7xtMCbhGKegygKdtqHc8Q5d7h5m0oRWRVCVGjKbaVDWKFkIyAwoB1ZIKwMi7/7U1s0zZClslN7UxciS7gGqynP2XkLv/+3LI4YZ5gm3PoX0qzuP9A9smlDk4XTbO+4V1SyuKWeeybXTbefNwj9rGEhv76kwm3B008wBLQVTY98ZqhhwnDnczdcmMq94c2yxVopFz2nFJ23PBcvDOyZ4yVF1TUbRWpqlynCeWqaC1UEpQCpSq1JI23AyHTxKrTLlZkKtvhLxA9n6tDc/XwsMz9FavMKiMAV7GpgAGw5CAV1y3NoN0wMGugCtD2ZWPkSuQBXzgWSHcB3nwcR7/4x98S987VQqXN+/oUdhXoSwCtzAdgL1TtizpCQKTLD2qpSH3xskr242zyRn3O3bbkV7gWaV5MC0Hbm+esX8SiAvtx8FZgr0AL56zzBPy5sA03zKVStVCOcyIVkpU0HS5Fi0oMyEN0U6MtUjdmGqhakXmwq0WYOHuxULYjMjVrl1QzebeuTrCmo4R67h3SjRsdX7yzSO8vaHuhV//wQ1/7TeP/M7fuuN3/prw/ee/xkTnb/2dL3jz1crz5VMKN5m52XYuD4LoxPq40rbMzfzpl+/wN+/g085nP/gMnQrTNFG/19HbE8FLfvfH51/xlfDdPqaDcPfywKtXBZkqxADc55nTV2fayaiz4pPgxWBvlP0EX72lcuHh9VuinXE/c8+Offma0zc75y0JmllLEpBhVOk5l3nQvLOtF8JGbMf2yLs3mbns1/zBfcVbw3ajkOBa3Q21xhxBf9cpE8y3hZtjYSIhiYfYEOvMxRDLfW7YWPscemhm7QpMpHq1eyE6dL3CFn95DxHwznC5DDv5Vank2aS7jVzIfe30HkxFON6UzI60VP255/9bHw2FJZXEolfQ6r2CVzVzRnN5GOa/HLtBk4gJMjS+lASi5gFSFRhr39jDDuUV11Icye9zY6jHRl70IJaIq3U+16Wn3LQn8Ckfn0vosMyP1kUZjTvXx/8buuX3gBjvFc4fapg/zNv6cMz6ZSeu7wSYVYDf/eFOmQWZlFigTDUDRDVthHIJMDDNKsxSlcPI8ukSFNMkuUKYv+dMr0sOuV0yVyOcdW2UChYrUQCpTLUyTXnFzDczC7dMcUOphemo1HrLciwsh1ugU0yIfc+sEi1EVKQ0bDtBe8AlqAphgrCMrJigToKIE1Z5dugsv/kp0zRz2U5YEVp/pJSJjQnlEaPj/cD54ZHbTz4hRIGJiTt635i04Ns9IXe05pgWxDeWPuE3t9T9lukh7WqNlnJUqziNGiXfGBGUong8G00IH+dRZ8d1w21m95WICtoJrYg7oYqxAcYkJYdfB2cfGyQHmymlZhthdcoz6OfHLA6IPvKAHNWJq5Q9aznPzMtMXwNTENHM97DGpJlBhAkhK8EKMSEoHvtgrRVkJ9STKXSheMV7Q0VSgYGA2mABJlQKbgeohcPNzO3hjmWCF5PyW/OB798d+eTmhrtnCy/KLc+XiWdlYgnlOE3s8ci2P6LVaZcFKw1ZKnpwRDtVnLP2jGOzQi1CPxocdprCOeBtcU7sbPXAWdbcEpSP8CITWAv82dfZl+UFNCV6BJlhJSjuwS65ELnlJqa13GWHpsVm78N2eiu0noGcaTctmRloGahs+l7OOykpAxUITUWCj8eVosNao5hBi4abPHnciUIMnsXMMnS9AbfLCLOZ0x50DaPv6Wt0Xwjd6GWnidFd01bRJ3wJdod9E9ZubJ4SeAlF1kLUQKccBojATJ4kzzEAYfcM3lTPxbOU95vOYpKbxuZPwPP/+scN+Uj3hFXLyHMCHQGZyzGopswVcGWOjkRBlQzjV6GX0fIWw47wNJtelUtKE0NDWCMtm1JG2KgIqjmouY1rNHL9ffzmwo/+0DlvL/jqXWWrM2VSZs2Wwaq5/hURpsEIo0ofoGV3hyY8PgS2jqbE1bm8M6wa9TDQqFLRGmjN/Jn5AM2C1ny0OME67JMiOtrCPshbI8Pta8m11zTDnKOktRwaZQToWqRFMSQzxnKWTJWNo6PJ6DsxKv25HhFpdygYl33j3Zt7FinUWXDr2ajVWzb/xs7ag713ujX29czbx5V6vEW3M199+Q2XTcYMNobZcQ9y0s4a5T0hNB9L8rgVuht9sMUumusawkwCsloLqoPN1lRrlSujrcrxOHF7e6RMksor0lp9HalznB9M+ROpLSNjLVuiRDV/1vgaXPPVRtLjdVPw9NrlIJ/qw7xWYoBYNvhoyE3DtaXpGpb79BzAt99+nBZDgM2gt0LfLdcVF9ZiXJpzNwtFKhwCFhkbqEDNiK5sD0K/mdA4ER3Kze2QVgr7GpjXtF7LQusr880t8mLH98bMwiKF5p3+rLBsDTtrkt5+g/kZsw0pWyqwxDA5IQY1cmanOSKOauDMWAfzLVWrsbLen3l2e2Sq2aEVFnh3lhlefb7w23/981RU6Jz3HMm80n0L3vjOT//okR/98VtefvGMv/6bv85f/97f5g//1R9w5vv8w9//Oa7v+Pbtl4Q/wlqR6UBRI1ayuc4WLo+B9DN2cr74tS949+Zr5meFKDv7PtPezrxZgY+0YODP6/iv/7t/ylyELpVJsu2hoLTzjnxyl8rxyNmsW7YI7ntgS6PKTnv3CHbB+s40KfJqJtYL5aLsF8N8p6oR5tls3ncs2lNMQoShGJcV7o5GoY/8rqBoQz24KVC6E80wzabhvnbm0qHlY+yatm070mELx0zYI+jNeDkFHsrmZClMXAuEFMOpQ32zMPIr/hIfbqnGKkPiG8FQ0o7cqMh81zJLbuG2kd86Yj0uqz2BSjFIvVpSbZVr1Hur33W16E/zfmbERsBUhMOSOSJlgIwemR16OLwPWAjJ9agWRjDN+Nnj2a9OkRiXiErQXcBzzQ6PXLtH8+KTCkuGrV9G0y/A028c7zciQ2klT+vke9PgLxwfYKRPX5f3X3tfPvDUcfzvfM6+ExOaAd/uzgQcPUA9G6/KaFaoUA5KdWUukaHBBps90WSUUkbSf1aX73tHXEa4cB2kmmMbxFaZfGGZlGlymIJp2ZFnB/bzTtHGVG8pOgMb9XxCD8o8vwQqjhCmWH9ANOuEy7xhdkpQzRbcO/I00OTmrnuBNxe2cfL3tTDPR2DCWmXbNvp2YTt38I49rnT7Cp/JAFSErX2LyjOOLz5nffcG4gRhlHKktiNnu0Bf2csZPwpyr1gIfQKdDZ3JG6s4Mildg3/0o/5RM4SEEqK4VjYzRANzSQVVmYHGoTynagA1WejS0+I3nqJFKqYALLJeWlXZNX3n4ZJsf5xYRJlKRUMpHKAUor6gXg4Ic7ZLyoGMYxkgJ4W5KpM70YWiU1p/WNA4DI+043LByiNlqlgc2DdFbMpwd6DUhsxB1AM6HcArz6rz23czn3/vE/STBduvWVxOyIGpV2524W5XdHaWNrNwg3kw3YJOKe3XuMkmlFD6Kmw07Cg8TLDHDatPtAh276gHk+7slmos68ZsH18QqZA26P/l995QwsAjB4OSpZbzAJdUCzbaSSaXrPiNbCkUhzasKAybV4z0SLPAhmK1HAUiVTDXwzU3USKCVh2gqmTujKbSwAbbMxlI1QwI72MANzKHgZIqr9Xx6BnUHpYWQS30yJayvad9zEk7OFHwAeZ2CaKlZdLFs1Sg5+ctYH0Av7MnBYRD2h1T1UwftcdaYNLsF4rInAdhyLLzW1gAmUC88MN3Tv9IicTX7wzVbNJRsvbZtRBz4GslwjneBqczSKlYFKapcpDMTAyGktkNLZJNpEMBU22oszywidwsjkFLXSkOtdYBAAgN535PJc8f/N47/HVQz0KRmZujojITveQ1WPLO2Rv07hn43Y0izqU5j+dseZqrc3MHx5Ljiw/ljHXDrSNF8ZpjylKVMgm255rqHpgkUaVaR+bbaNCJq0kwL4xKDp2ugumESaVFhnA7mVtnJLCFJwHl7rgKu/ePckMokYAwdYK1UedCC+eytQSUxWj7GRXlsgLRWC9ZjKIKTZS2b8TtzFQ768MZTit97U8g0NVmEd0S2PJg0hzsR1oXVTJSdxogvbohkQUGVQcwWTQVMkVznVTNj6fC4fY5Mi0sx2MWJIzHTSVtND4sqiHXayw3FH6tayLvKzJ4oXG5ZwHFyAqJSMv39TLw8Vz69DFPD35i8Xk/nF/BvfxUPxRofbRH8eD/evccfzNhl4JYZ7EJtcr24JSJzD4LZ1ocNyWozKvgB6fHI93ANkGeNaIbojvSDGcDsgSEmioKf3WDlAcuP29sOKs7TMKl7Ng3jYdHYbcV0c9Z9JbCK168eoX1CfyIScfYmeoztBTchNtnM9UbU1UOPXUvZVGev7jjcs426TkWVBvqE3/zt75PbS/46sud441x++pIjYbQCem4db782dds24kffHLkJ39s/It/8pY//fFP2brx5tuf8HA58ezVM2af8DWvHzMjWOiXDe2Ox0q7PNLOymbfsO8b/8l/+gX1+Ck9ZsptY3le+af30D9iK+ufx7E3S3XlcGwcCpQeUKaMC+nOgbSSne93yqScz2dOm2N73uUujxvVbICySnk2s11OnN5l7Ib2zkSCA3MteChVndkj13YXYt0xK9CUySwVQG2m04kc2DBgkSTAp9tsgy6lZx5hwNqMoiULT1xYPVIBuxTODjOFJQbhGanua+vIIZU+8o2Ov+Iz8qs/uvmImR02weEfj7Cc27kGrit1USyc7WIj9iPozXGD3qGUBKVEkhQWMjrjCs6b8TS3mF+pl9FybvFkaZyroppK5PkgWa4CIEKVK5yUUSVVPjTxyZj1Ex+JSLAuJ59rKzTvwaRfWJxyjav1PREE+XtfrfhOPIF9mR15ffxVufUBXvWUn/Whcus9mhWDlBy/DL/MIvmdALMgQ2fv15cEQm/5wpQOyyZEK+gmyLnCN0K9F/QUzG9geq0sPwP/yphOMG8L0gt1BpNMFC1BSi3r0A67Q6vsfaNvig4dX9iKlKBTCTmxXXYKJevj0UTAHbRs1GlnKncEj2BHQha03rKeGz4sDG11Lqcz4T3tYJcL9Vgod7ec7zdcVlw66lmR2q0nkt8VW5X7f/0VujSIBZOUuCsFv3yLS8Pud8oIh9PZoW04RyI2DOdEY78J5oeZ6bJQZBqZDWPTokFF+N//2elXfPb/Yo+oAxQS5SCFTdIOM3MA61SZsL5iMRNspBnmkPXh1wG0Bk0uGBPoLYYgy8QUPhhaoVtkeDETw+VMhGO24XpGDivshnuyZ5MuEBOqE0UM4YZenDKv9N2RMqHlkZCNuVRUJubpFpUDHcf0AoeFXh8IA5FK6AEtC+VmYS7Bs0Pwa3fPmF8+T6BEKqXfYi64p1oqulEeC7MEL57NTDrDcSZmCGZg5tokIBzYtdFuglJr5qMAUQxVJ9xQCcSO9PKMEpaLplY6H6fNUIF/9s3KLJnHtwjJJntQKSOrJ993oRlGjQriQTFgLJwuZDObB2XKe1YhVQAKqAWrQ94I0qLnPsCr8XzXDVOC0+mh0LFAmAi2Z5BpAmwyrLE12cGLYgtY3+iWYdCVjkfDUHaJfB+Q4bbF9akkIVzp4pgKtGT8yqTZOBe52ej3MN0FhZJqW2Tce0FT+8zW4eJwaaPtUEp6/T0zBzqB1Wx9LaK822d2nmaNj+4I7zxccnO+WVrewmCPwr4AteJS6G1nkQ57ljAoTsUpCEspZBNNvp6VoBnDTpfKwS4Qko27U9Un250omVsV1wHEaO6sF6dPt3AoiDtrC5ZjcLwRplqSQMmrNpnIQ1oiVZVlCaZJOQX85GeFF8tMK3AYTcRLKdmyWxQxIzyBkyip+CrV2U2ecr0C8JSxJug5xF0Kw856ZUgjwY0cMAhG7tugKy2SnZTrf6rJWEoZbOrHdTTLbMX90pBlodSaG1+FrTslhNNph6JoNPBBGu4Nd6dfdpYpAVM9T7NkOAAAIABJREFULLSi3H32jIUEkLx52mPD0qoZyVyL5nnppA3DYpRYBGBQR9PyRGakHT7IFClFUt2smXE1H5e8F2kCSd1yIO9DHauSj0EUD3363l/AJyU3HIzznxuLK9g+NgNjAxgDGLsCZB5pmY74INx2sO3IUJzGvzHsPzHSH+lNaxxd4O/93jf47By3oK0Z5t+8cZGgVCVc0zmxkYD7SeiHtF31Ri6kJ6fbhbZ7EigojQypDttgU6wL2IHptz/Fvn1kv/dcq/bK/uoWP6z444WNIPwNu1zofmF92JimQredEKj1ORqnbG6eZubjJ/g04Q2cDnvFXnfWH104fjsRp5USzhw3FDF+9offsr55RF+fmb6+ZfkSbi93lHWirhNqSt+FV9//dX78Zw+8Pv2ce7nnX/9ko5TnnN4a2/3KD//JV9i9sTxOlEdnOlUOl2D2Zyz7kXLfeL7f8PnlOfu9c7xv/Pwn8Fe+OBLlyLIY5e7EP/7R21/xVfDvwxH8yTc7PBGOhcfdUA0WVWYpbJ6Iw9oCQ7msaV9/2BsswetvLrRQ3DyD2hXiduYgxv03Z95+vbJtaavGnKqBbY3SN2bvaFu5uU0Sh+gccdw7TZ0iymUojg8k4OSP43o9VHZPiUXvjejChlGjU9yYEfa2E7ZjHuzsTFWwyHW7h6JLAVfMK40Yqvy/3Ifqe2DHI55ICuupJFYd6iccqcq8lCSlDeYlZ9qteQptVEZJk+S+Kxj51UkkDpde/ru+VwP7NfZWMiN37xlGrzLKkq5xCJbZftf10x1woVxhoogn1XB5sjlCRJJI4QwX0CCTZKy3Ahq5T8g1LvcwHwJUv0jKjBnpg8ysBKc++Brv56v32NjIgRgqr6dV8pckEL8zYBYS/Le//5bMdwxKZFvbuTrTorQXSquN9pmzfLEgnwCfBw+fKfxahe8FvBL0mePVKF6ob5Xbh0I9GYd7qJbWw4UJ0ZVJCuIzvQu+O2IzN4eJ8rBhDwXdTrR2hr3Q141mgpcJsWeENegbi1Qoj5RSUSqHm2N6XUvh5pMDN89vkD7RT40lCvvcef3ll+ztnrZ1touxrjuBQtylbFkb7eufYZ+/ZtcbVA1pQl9fZzNQuaX7Sg/YL0rfVnY/sZlh8YDEYVwQirjin3R4tjO50zvUZaFMDrNg20t+fPq4A/8Ol5qgQQiqE4sprRf26LjeJjtdFHzBy7jhaMuWGW5TDqmV5oXAEO2oOLqkOkK6UVplkoIWS2AgMkw4B+VKSGcrB3oV1JRyOoJZAhHiqC6jelqpcuDmCNo2wiakBCozqgvZtJhZXqB0WYEZm/LGVj043Dznrhq/fveMv/lbn/H8i09BC1GEqII8DzSEYlO2HH6dAfU3twduXszITaXUnVIrGiulNe56WntlSVDY+8QlgmZGWKNbAy/MurCH4GostmEkk4FV5o9vP5i5QCiP3vk//uVLZII2gRfYq7CboQTiIztFEuacxgbbVGijUcxN6O4UlI2g78FGZgca0DUDu5sNia4m+NX7sG8BoZnvYyFEIzcLliRQtGTioivUzAmEoEnHTkE/WIKbVTERGsbuynrJUEsVobsiPo18pUbznguvKKUesbUnaKbCvg/pe4f1h4LMgVeIbnRJFmoPI4qymSdQEcrs+Te3Yxmy56ArhI0cE4thfQz++98LPD7e4evFS6HEzjdvM5DcI6CQLXRlJGSYcntr9JiYFifM8WkCUczHWR5A5z6IjOM0rIOeA00dluaAHIRKWtC2Swp3lNHM2RWasrfOj/74LV99ZZmnZRCbczMJcxUklFqAKXOPJguOs3NzU5immWlSni0TywTfvN7RWdgcwo3V8loWVSg1G4UY9tVEJ5imVFl5d8xzrfMhe++k2rsNELdEqgwtHN876BWcGKTZGN4YLGVnKL8iQ1XVnd4+vptXv2zsrSPTAA9V6cDWO2u/cH+5sDUjvLNb593jKcH4ls3JWnfuTzvr6UKUwmGZ0VKoz27xS0+bMzm8VkmlqgoZF9GTBDqWtBVKTzBfZ3nKu3ISvERgUcncU1UOVZirMk+SJS2i9G6sl5WlJmCq5BD9fh4eZILLaKhMO6wPK0mzodYe4BUSlESgUokanqH1ozwhRn7W1Uby4dgd8f7rTyP7Ez0dT6Tz1199+f/Tmf7VHA68deFen3P/otDvCo/eWaNidsvqsIrgs2OTUlplO/iwGibB62+NXmY0FPOd2Dr9EuCZ/1J6Yd0b57byaCcuHvirndOPvsbeHjIiQlraxY4Xbr5dOcoLtAfahd6c5hvWjdiN/fUJeVw4vpu5O8H+J685vGncNUc3YVpWyvMDfld4d/uAP1P6DDYZsXQea+PVX/uM823j/Gnn7e2Z7cXG/FmBmirSPTrLCf7G3z5yKDPlYePl4YH18UzbV6I7XhrUne2m0JZnXLbgYXda2dnnC/vNwuW28NPLO76tnZ/6yp/+6Wv+6E/+jBtpyA8bX3/9CeeeoP9/OP6/j//mf/jnzJEqeWlwczMRIlSMiwVrLPzZz1defHbDtu1p6yd42AI9KH6B9e1O2wAXzg2mKSifHCki3LyYWNTY3hjLDneDJl5Pwem1sd43rClLgbkIl5ZkgjRj3XuuQR5YF/bzhtwIxTLIfX/c6G5YS6vu1pXdK7vAZZTpnG1CY8JQTiZUVVoR1A0No0wFLcFclP/5n/8HJV/uy/L+PsaKFCh4gvDkP6dqKgKdhOmo9Eu/ynDZ95HHzNXel+tO2taHghfe/xyCPRtIkpgrks+b28inRt8IOK/2FCOhQ+mbBByDCIxUtcNQmEnmUJLlBNdcSY90btn1D7qumx5PxToyZqUnrftQl8UHoFb+LeOFkvfKqytwdV1/P1wpn+5K1wgH+SC36yrM+mXO2S/37X9xRwRcDBoFMWFTZ5fACdbe0O7URZlN6W2HLmw73JTA1WBWmsZoIhL2F07UwvlTpz9T2ieC9M7xQdF3O75DbErRFek9G+x6x61R5hm7nOjX9hS/EK0jurK116zbSviRBrhtqNzSWiOmlZCOaGOqhf2849Got4VnOiGvDix3z7h9dUeJwn55RCyDi3e/YPEW6xf2d4XtsHA4fEaPymXvXOLMViqny7ds7ZEolYqwc6LWA+1BaJfOJSond7y/zAu2GM2C0pRNOmVRfN2QLqgFf///PvHeTPdxHnK7URqU3nJA1kKZFS2dEoHrjGH08kAbNG0JmKYFrZcsEwhFoyKlpCc9guZ7qlS0MC09N+NlphQdEtIdkdxaTUwUP1MmY5dGv3mHdyM2EMsGHQlAV2DFCaYbRe2I9Du6nAg2iASxLBpBWsCkTJgtNDXiOOO+84O68OnzO0QPMAWyZNYIByPmoUo4KbI7ZVb4zJFnnn9LPWBRM97EFohgWwpMB7b+yHlbiTDmgJmKOkMeLTyeA04H7HTgvN5BP9Jjp+uJHh9fRbTK9WzB//SPX4+8FMUKJBeTt/TcF8kIOR4YwvCnV/FUj2oyEjvOPG7wB8+MhojAkQS0Rj2wlfyYeSys5mnParnhMgx65iwZhTLP+DyUhOG4K1sH3QOtmbdkkZuwWuZhrUk1RhlWIOl5v+qWYFQMT40IRLtg0THvdE81q/XA1rT1lGeBWqF5vgDdU+7c9gwsb6aJewK0oPbRFuupTILERctQMu+68KN3WwrVysd3bUHmr93MleeHM+/eZVug9wSsxHq255RA28ybe8Gj4jKNTbjhmhv+AoQEiyiK4hQWUY6TcjOlQD3dKGkjNRcsGnUOWgCRmZTX9rehgWLfnddvIUzYTbi/CLsl0NpE8ZIIhtb/l71365Ut2e68fmNExJyZudbal9pVp+xjWrjttpt+QOKR78IjD3wJXnhBgkbQDUICJCQERi2hdgt1vwA2pnGD3Kbtg33al8bX9rnUfd/WWpk554yIMXgYkWvvOhb2OcL2KVc5Srv2XpfMtXLOyIgR//G/ZCiFm8eJ2jo5G8tqHI+O7hJP3p/42vsT001mt8+IOHXsSzmDq6M+5IAyih2H2i6phTHP6+h4eo8Cb7NgXF28tFQ1AHyAwabBIY+/V7tIaG0ELIQM4OP7ux/OBPhzHF6Ubo1tW3HvWD0hEmvIWuN9GERLYasds05rnbtl4Xj3gt27jzh/8Jz7+zO7fUHFaA61d0pR+hLy4zmNtLgLQ4mokK0bbQumfJ5jjUkqzDl8BEsKjaFqaKnnWcND1Swk9RLy23b3GlvPbxWzTkkXKUhU1j60gCnxYPLuIsEg9BGoMIBNG94o7QJ42htpRHLCUydSY1AuxbtzqdlH/xp4K1r8AniNw8EPXKn/JR1JG3/vm3dk2ZAaieRow5aF8xIHP+sZb8bWw1dts4JtHasJ3R6R9yCWkaq0JSQ0sy1kZNQWCe9Gt4mlOvndKySvrN95TT91BKFbo0yP0CuhfXxHvRW2Vwt+d+Rwl5nrnrJN7NRxPdF2G23fWff3+LWxZaXnhdY7cq60toFHgEbvBk3RHnv9q+cv2HNDPzemMqNTAs08erZDczQ6P/zoM47lMWfbs3//hmdf/0mmHKbMZU4Uy1iaic3tTN6tMHUsnzGNtRca4jPbKnz6nc9wWTmfhFPbOF3v+NlvPketvUk/+6vxJ45Pjk4pE75XXMMOYZWJLs6ruwWdS1g+IKha2B60hmwbeZ/4+MMjG0prG21rnE+VosbVVaEejVIm9o8Lazeef1ZZjp39lVCuB9glFmtSV66LINZIqkwpM4kgm8G50UpBXEgpUVTwcoCuWA4fuStvWOvQBvtGHPPEajVqdYfNO+2seA4jeLfKBOwn4Zd/68sNsn8/wwn53KUhEqt1MHwv3CEfMv3uoXaQFI2wC6MqXdhXHkBUG4DTxZjdnbHfPOBf4+cyflq8b2uNZnLikrgbbKrpLZ8sw5E07DgkpK420LI2xGj4G7bZpY6LM8gltdUfgKsLiOWEgf2bfWyATe4P1+ECbl1ALH97uZFLkudDN4dLQ+cB2PrcJjlSIn3s3T/APvmFAbMgLtDP/UGhTobUkCXsPWImL9ejn8P/ordYTMw6XqPQtk3oTbEkZHHSdQ9zbY8UxHkq1KdGfab4vaOfKn67J/s0upI1WDlJmK+UtMyc2z3znHCvtLYivgO5xwhPJSk3bL1TSkLTDa6Zw/VTzvcnrDemvoe7xvpEcLlm6063R0gpzNMjtvNr3M7UxfDekVdC+vRT0uwYe/bzPmQ753tsO9NMo5O0NZoLXpzFV2pxzAqTOuod+h16LvgqNBHu6axTHJRtBzY706R84w9X+hdrGvyZj25Pg2auwnSayGViZ3t634M0Uj6DzyBzFLoKEIWydYkuNA2VLdrH6YCJIkwUm0CFplE0uZ0GNbSiugOZwDrOQpYcKH5y1B+xpQ5lC4BgTUg3xK5xLaiFX4eminhIsxCJ7iRnVAtNKmKdRkX0HJ46+8STolz/+GP8XWBXIz1vcrgWuN5hN4p8cI1/eor0heuOcwBR1DpJ4tP7s6Hd8dyjdLIzyoFuV7g1rClWZ9bXB+y2stZKsorkjpSVcz+z3Cv1bketJQrZL9m4dOU3nA+2uFdVA5wyTQHCxMkLGFHgqqFf19C9DwY7OtiDbrC0OH1vEjKp6eJ9pcJmHtKcTiQZEtThi+wqwFRAhCqj60Kj1iU6hyhI+AmKOH0R+hyyn4ucaqsbYglhgqSYhnTRSx4Jh7DWCwW7IO70KgFWueA9UgjFhfNnM2U20j6kOW0YZoaMJ+jMfXgUOQF8rV1os9KTkMPsBnUNb5shpfy1Dw9wkZF9SanxuyTMydlPE+9fN17cZnbDrJoLmInSEsxpo2+VonF/PE0UVRbP6C7TLVhsWR0Vw4Y/FhqsmaTgveEuZINSCr2ONpleJFcXmZWEXM9g686aNDrZOQy7d8V5MkWKkqkiKSGmPHnvQBpR596V3OF47yxnpzXQLlgFyUoxDZNyVbpHV1N12AZ4gBK5RNrQxXMiiaDupGyQwri9kWjiAywOdmIa3hfhzxBMQccp+KDuxzVEDE3wM7/8+z/cifDnMBTBe6VksF5Z1haAuTnJK7UFi621la1vrK0O/x3DSwrgYC/M54Y2EG+0pbPPSp4T++T4acVqJKcqwYZSEdBYp0SduSiJi4wBzGUw7QLETrzpYtvwK3lwBBkBO26RInjpCJt7SCdgHD7fyCh8AO0XP6/WnW6AOrUHKBrAUwBe1UImLYPpp4P52v2SQ3V57nhvRFV/6Uu/1YEeQN7FGPjLPi5eib/7fCFNifLMublWap/oYiRL+OrQIS2O74HVSWI0ddrHib4/Yq3RbAMapSfaFBev9QX3DfdKt5XeV5Azy9m4/tHHZD+zfbCBp5AcS2VLmZ6c3eIBYGviPC/Uwx3rzYLtE21SPE1UC9/H+fqKJjW8CntYALhVzueFaT+HNMYF65GuOV1nmD3qNT+hMrG/gvvjmd4yj6c9/8a/+R7f/LXf5af+tfcQFf7oX36MF9hd35B313gR8Aa+AUa+EfJjJx0S882GZqOsM31XsS0z3eyxvkOr4tvGtj3mu+eN7auBmf6ZjH/nv/pNXp/h3p37rvSkrJuxrk47Nq6vClvviGb8bLTWghnvmcMhhcfp1liWOFH10eSdDxNFhL4YZMFU2D9OsM+sOsE0UxU2Cxa/aR1NAacAOw+rCGqjXGXKACGsVlZvgPHidSW7s3XooqwJluZUryxVEDVElY2EuLFuQt4FY7koTMmRrPzY+3vq+UuaDP2DjIfGy5tVfPQ4hhWBv1nYXaLhYTDvlFZHiIwK98cxF4bNAxdAywJs6j4YTgPguDCcYp+IwJPabaQiRhK1WuxhW7Ootwa72W14RPrwRLvUaw7DiCFANRuMsAfWlDy8rgdwanhoXRo0Kjywri6g2OX6XMhk4yUDb8NWsek+2KyM53QuYkLGg7+XUBOM6M8jY3/y+MKhGP/kW8F0mfaZ3o02OHaiDWnQW6a6oVPIpuJKdmidksGlEVauE01GbORIgeruIAlrSn460b/eSdcL1+0dplfK3q/YZXBbqTT6ubNPe7aekRVSKpQpo1rIFgaRSzWKntFUKGUie+f0+khZCvuzwnJGnkxo3rOc77DeWLaX1HVjqRvWGn2t+Lnx+ruv6cePOV2d6QZrexFxZXIi0ZB6FR0uq7TUsZbIXCM1JnTaZ/CJ3gxPjXXu1ORMJ0VzQVE0hTwjawpzzK/AZvfv/v3P+O++8Zg0C7470243VCvTKGbdMq5nVDqlh0+LSMJ0DTaNGb1rpD9ICpBJpjDitoZ7Q3xP14SmmWEBDlRojvp+GFo7OWUSiZw7U1Eg49OEXVUsZ2xzOIL5DvMzkjpIQ4j5l3UGn3AVcikYieR7NhplLhx65Wt7QUpCPQetoTheEm1XsCtFcgZbST/mME9QDLgN4+Pu6LoxrZklJxZvbPeJu/uF9c7DHPjFyunFkePtkba8Jl2f0EcwTxNpt1EmoaZM2nX8quLXC3UrnI9fQgbgOCDpAGRE3yE/GPZ0VgmQKEx/naxx2M6NkT4z2FvbkIAiFBLJh6zTJExyceTCBdYhY0zRFVZ3UGUjwK8eGWwEyVARga4asqwU/lj9ZKxHhw1SdtQz3mKnaWbBximC2xapdNJBE9WDGWG5IyVhXWlmnE5GrZ1t67R7p6+Cr069JWKpn4Q0cJyPySXAWRlglAjUsUmLKZP18BEzD7ZNIxhIRvjeiPAPfvWWL7dAGvai7LNyXZSrKfE4nfj4RWx71UMeNxchz4nZE4pg1aAJ57OxbIYWo7mQU8IunUJTmDKuSnOJqOgBCjWHVYTTOihx2YdsSwb9XkKiJZmldrrBO08KV4dMyYknV4rWxLpBInE1ZQ57pXXjW3+wgCRIGRdjW8Kg+NWtcX92ZC/0okgJ/xIgTHUHQ8896PM+ijfV/kAhiiJtyG1dyCJMCm6dLGnM7yjEuueoEyTWdCzItN0kEqYYL12EL+sW2azRRlplI7FZog4JnaYSBTKOtUbSgohSW6N3OG+G1Qa7iYSTrDO7MNWN+eJTOmeudoV+amHuLpHU1Dx8RCYRNKfRqR7sy0s32KJb3A3a5uRMeA3Km0PEpVBPokwSz/9QFI86WDTWWRumJBcAPaye4xtbB83g4dw3fK4u3iMXRtnw9zKL+THSpi4/6+0hl0L87S+M7rWPqv/29Ys/8/v5RRw5MGh++fQ+ywnWJVgtbTJEOrlALk6TDBaH6N6N3CeKN+pe6Awd89zAOj2lhxQwsYK2NfxQ14XSdrA2ltZIP1KY8ka2mb7FgdBxaupUnPrIYE5o2UOemHlEK41cHKcGs1USd68jIMm6IUXodNx25PlA2zZ6rzRZI33VZu4+eg10Spk4XD2hbyfqMmF2xb/yE085P6/8wm98wN/8W1/n5f0LDtfvsK4d74lmt5xf39N6pWkNv9fJMM3I3Hn8/hW1zhwOO9Z0TxXD0xH3jdYXlA3qzP/6+z3A/R/q3f/LNVp3aoZGYZEUxAYR7u4bT57tKCU6k96NXhvrBkZ6SKfeZbh7seA4x2NjXTun1ji7wpMDy/GMViNlWD1TpvCqJDlLdZomNutUj5CpnSaaQHXltDp6UEwa1TvNhBemeM94h9aF6gk3uG9K8owkpbqGxYRGEMwlEfmws6Fmm9kMSrnCk3FXo378qo/LVnNpQIjYaKDZCDYhQKzx7y6xP4iG2ToKh/0I7klvknOdC+BjUWv1eLZB9I3ajEuaoEcq4mWtc4ZaIhrXrUeAhkVsTpB+ROjGaLoEcJaVUd8FoNZsyB4lZKmXBtBD6i4XW4mLQPANSyp22Dc5hXKpty4bt79hmF2eKzy/3m7syLCLlLee47Kp63iw8Mc21j9lfOHArOY1NMOl4wkWqaPSELwYOTXMIsVJJL4UutGYRI6RPUVB5tDvGrSZIo1VQPwmZDoWHaFO5ri/R54JSU7wIiEbFH1GenfHemeYNjbttApba4h1yBsilZ2upHyN6p7j3T3p1ujbc/S9zvLOjvXZU5YKp7v78LipjbZ16noLrdKfV7ZPX/PpR/fo4Q75kSuun72LtRNiDdoRWxprV1zPnDoka9h2pJ9WTvUlZzuSmrOsG64n0s7jYNyNakKdWxSYGxSJmFCfnf/lG89imn4JGTNvj4/WxP/+O/fU9ggviXxToCqyEhVr3zHnK5Q9rhJdD5vIaQbpdBcog6EiHXyhycainVWFTZTNF6p1rAumDinSLPO0UGZQyYhket8eursJR6YNp1F8j0uPDevGkdyZj0/pW4/YcC+0uwQ9Y9lIKZG1kHOkLx7KgZJnnumO3bN3wBJdHZt21McJ9gUpJSQbFOxHAH+E355prxV/nfEPnPyZ0ppx4kjvja0bMlc8b3hecFtINxv5ycR8k8iHFIwHEVo6sqWZc++0fEezholgvZB2K7l8+ebZpVmBByb4H/7DU1yPNLyGFISENQuWgYXkyXIUGTra+p4DqKFZGFETJsM2FKsVifCJ8bMIf1sATAKAanYxII7/uUPrHUSH4bLRpNGTwE7QK8EWYZuIr52FtkIXQbNFkU6AUWqABUNP1UgdEp15mhCv7A8a0t0bJd9kdAJmaJ8VuN7YulOJDVSNSKFq0erqHttuSk6tTq2dsztenaLDZD6H7w7jus4Z7nr7QRo3fylHI5iSm8NJErrPPHvcOb5cuX/u5DQSYFxIjxLqAWS5Ortd5nA9MWkYL7tHMk7tQhNnq42alJ6F1nt4UplT3djMaCakAbY6wzMLgBQsLAmDbnHn/uPG+b6zHiuvP+tsLYzoPYWZ+N3rRm+wbVHMb83om1KDMhEHhVJYNuXx4yumq5nqSh8/01J0lEt3vHcci1AUDRlFcmcujHRDDw+RbniCMmdQ0GRvijkiJdLcH4pTQ+kGRYVJ9cGr4m///D//4U2AP8fRByDTuoN1TA1vK9Ya6xbej+ZhFL+sG8tWWbeKemfulb0aVyK896M3yLKRNfHoemayzlN1JoezO+VmYqKTzo12b0g1qLCdG957dIjdh9dVMKXU3xj3yySoahi/oxRNMQ/NmdMosOVS/IZ3WqifjW6Qk4e5YIpC2cO8kDq8SfBO7TyYuvdxbbp5yCB7sPNIQ6qf5MFTZdhq4SNQ4+1IRPd43zwcDWUckHC25fQXf8N/CKMBm8DP/MIHrCdj6x2jku80bokJfhZ0ZxTJBAPCsY8b/V1HreCuqGX6EszSTmPBOblx9JXaElgjLWDHIyKd3hI1KzxNnP7lh5EiJzsQIc2ZZEbpBSkp7mebWP0EBpM+htyjdjaj9VfxOzXYUUg91kJTo50MPFN0ZrOJrXWsQW2d/X7Hen/EvfCTP/HX0ek1n/3Ox/ghsT84v/nrH/LRH93xwbc+ZtrD2u65unqKl0a52nF1s2e7n+gvQFPl5pHzN3/qMT/90z/KdGfsn+0pu8q8n7h76fQakR/TrvPPvv0peTQu/grQ+v6GY/xb//E3wrvPMvcrfPRp48k7B1JWbNlQE6QZ52gLUQbA/eL5gu8zt6eNjz9agM5W4f71wt2xsvWGPtpxPFbuXzQmd1YTNOUI2cCDRWwJR1lNMUnMKNtqlBShL63GPGwG3pzmRpOOoxybU8WAzrH5ONwnPEfDyixxbspaG71nsFj3tias64ItiX/vH7z+Yd6CL8zwt+qCkBqOJNvPsZACMOr9TZCJ9wCmpAulJA5XiecvIx380shwd4oIRZUphY1B20YoE3Ff3ZzWnG0z3CTOEkWiDzhqnC7GsnVchU74QV4CocyDbRxJz6Mh97mUwfh+iPr+DdPsDVClcnmtEZQTX37DWpYBc+EXuCseENfsrRagf+6vt8CqALHepBmOnz+Qu+/hNf+p4wsHZgH84ofTuO5OccFrH8ieYCVxf9dG0hC4Z2xObAIdx9olsrLTxZizk7XRJZPF6BYLjUujmVBrpfrrMCHmwOlRIyEsty9obcGSy6YZAAAgAElEQVQOZ7gP3yNJhYwzlStqm5jp5PyInPbMWye5sz6b8CdfI6UD4ht9PdLbHaKNtlZsa2QTZLtm/farYEvMlasfO1GevUflimO9xXokUCkztZ3B79mI4u/cD9FlPhzQs8TzSaMkwboiXbEtpB1Xk42u6EbexQEyZWXnE//T73w6kna+3CfCbJXJzvwPv3JLcqX1FT0IXDlSd0CjVaV7J5NJKWOcQ/Y3FAPuFsw2AThgngZaPo/FYMI8zEpNjAkhMSO+R5jxZIh2Uipc/GcUQfsBlYT5Bn6gDmmji5FvVvZTYV6CRVCuLMwa64RKJmmkU8wlURRuXLhJV8FOMIuCK23ozoCCfibYtyb8w0TbMtxGml3KB7RM2LsTvFvxfaLNiZo6FKfaEWkFs7gGkhNSldKVxMzaG6e6RlqVO15WvM6UtAvTXHWSKPOXMBHs7VEFfv9Y2ey9ODwrEUXrnTmBV8dEqR6d/ZC0vrkmMspO6wYX0/YezIFWwwTdOuSxCZm9kbcYkIEdQJKHQ33X8KtxFZImVBLdg86eVkHz8BFyx0ujDmNJs+jqxYuYYlOTkGdJCy8bslJZqAZbr4CHLwoNk872MuGPVuQK7Cj4msDnB2DOEdbBaPMtXqckQpIUvGasD0Nvj1jjaVKKwq9/+vQH7Nv8JR0SEtYW7RqiTSMcbhL7fOaDT4zUdbAqO5ZCpu/rYCABWgrkRHNDKJCi04jIYNMFXa6b0Xwk/o1iaIMoViTWpCQagRUS3lWaorss6Y08yzWCVtwNWzSS44LWwqROXZ3UHK9GTkGlb4tRTxXZnHpcSalwuCmxpljIS1WEnIQrFXaJh5TLYPAp2SKcIudIwHQHqT1i1s1Qy6j1KJY81r6c5MGPbWsdeSjcbBxXvrxrlkiAha01aq8RSAKIGckrMlKZlY54I+FMrSNrRdVpW2OrK6cKx3PltlY+Pm/0XEAS10l471CYLDhPelUoV8qUFK+R5tB7lKzdw0ProbQddXffouC10bBEBE0DXpXwtcIvBbg8yByaOTmHhBkXJA9pg8TaG+mHnWY8yDQe/hsgVN8cHf5d7gPgGv4hl3SoS7c6mFxCGM89OGaN32q8nAFk2Ze83np7ONF0EXP6tqdtSnbB9wm1zPp6j5TBCrWO9BZ1lxdIRlLFtEWdrIkW6SdYF7RPSC3BFDhDLSlqk2HsP0wlkbsb+HAXdiA+YdrYl6dIOuCtIDJ8Hlun2cRqR6TfMOUDyZROhr4jIdQVlITogvYaG7J0aj8zUTHvuBh2NF4+v0N6QZvz27/1e3z96++h+z3dnOWuMpcdjx/vOb0+cn98xW635/Z1Zb/fIdbZbjslJfJNQyel7CZuv/WE47ceoU8O2LZjKo/iECyOrY3enNv7ryM25Ld+mXd/Nb7f4ZK4PXfO1XnnawfIUCXhCtY7NQmlFtwmznWjd2dtRmvG9ePE6bZzWgaokQrHU430QxSuZ/KjidvPGr0Z9M6sStYJ1cgWXpvTdab2jaU1tDZ2+yG3JiM4akbKSrVIAPYpk1PszxujPnNlFpgMzDNICgZgmUkS8shChAfVLYF0fv8PPvphX/4vxpALJ4kHlm+s2+Ej++B9RRDD3066TVMmJ6e7k1PU1luzB3/FByne8OV8w5yCREjxRYQyRYpyysMWZPhrBTMr6p9ucLXPkdh7Kdcv4SQW6yf4Q+iNSjSFg8nF8PH1B/DJGQoT4cF/XB7YUkFXCy8teaj34mjgD5392A8vYkke1CsP4NTDX2+u8UOV5W/+fWGnfb/jCwlm/c+/cWLKgCZUYZ5zdFGz0lLl8SPF1qh23B1pjSLKVBLTNDxjGMXFfmZ7LXg1qjdSgqqBwueUISt5y9hqrP1EQpHrRMqZehZMnpCeXlMXIdHpaqwhmqW2K06fvGZ59YKlGHXKZEuUFv4xk+zIApPOWHOsbmzrKzwJ9TsfweMF+RFIN4/I8/v4plg7sW2OewOpnLYzSMXrjK+VRkN1xbxRHlXqC7CcOLeOJMFRzIWkBl3ZLma34iFFPAiY8Uu/e6C1rwadVAAx+MbvnSme6D3TzLE0ITeCVEM1pBTZJ7LsyMlHAUtIMgnTvOJKLk6m0DBycuoa9HjRDrKBz+A57ps7vTeaKY7iKqimACDESbkiaqAFqENy1XDrbNZxTchhJfjPDpMi1oYPnI0N00nayJKZD0CbYE2whRFg1xlvin3Y0fszye8pR8XyLfx4gacLHBRdFNtmzg18jc5Aso6aorqhXuMga0L3hdWNxReQPK7zhPmO7DuKJNwac8rsxdiLc/Av5HLz/3u8OajERvDf/vw9XsLJPCWhJGFheFxFLEjQkR9AqVj03VockjQYK40weOzJgxkgYRy/6YXSK7gFcyWLkDUMacXARyKcadi8MRK5jDDo6oCdDZmHoSTQs6Fzoh2D5SoyUTE6CwkjaWLDQPpgGQTLLKfo8tQKbcTBWVfstTK96+QZ0rWyvjROfaMSvl8+mEBJNeTUSeNxLrilSFA0pTuRlgh4cswyP/Mrdz8oC/kv5fjPf/m7rCjNG0mUu004H0PGsEgmc+aDVxuvbp3JlKzgXdAD2NJpWyKlxFwUAao4ouEj5R5xBS7CgoM5yWGrytI71kNSWj0aRXjIe1Tj4yQhFZ1FcQ8o1lVo1mlu5OF3qQ8GokqvBptxVQJYRYSSE30cBlrvLKtRl8aUCvOcI5EHJyOU7JzG3J6HT1xWxWsc3nIfdnEadPxq0aRQi/nKAGjCT2tETlswF9MAl1NUioDzt3/+mz+cG/8XMLw3rG807yOt2ThXp+NU6/TWosg1QVqlLxs1JVac2yrcOSyaWLxzrp2lNpDOsTbQAKJzcx6pMmclW4BlpsCs+E6RWqnNwSJQonUj4VzilepFWnopjd0RNyQWNXR0otNDER3J8qrQuz7UPpdGcZi8X5pTCXoU8uZG90j+FLfwjSxvFdmXQ4i8zX6VIVNlAFuX8lseHqgyvEH88vvJVwZc+Ny+qPAP//lGF2PbMu6JelLk6R1VhixTFPcZ8wK7YOnVXnn89AbT9DB3pGdMnMYW9iMGykSzldo70mLf9W7UvuBPbpH1Je2ThhVjmnec6wvW9Z7GYO9NnV2CoobJRJXKaivalbLNXElHk2KycrYTtaXhM+NId1Iv0ByROfAtwn+0rZ22VLb7W/7wG6/YdEV3kPJMwjm+uGe+fsJhfsTjp4lUOnfLhu4T7/7419h9XdBHe9AV++gJu/kzXqWX2PXC/tHG8Vip9QpLgsxgOvPff/M5mzCSOcf+/1fj+x7/6P/6lAo8ebxnU4+kXpPhIdqRzVlao/WV5kpvGbOw/jCHp+8VXny88uknC6e2Rf2/GQljOW+keeL6cWYqIfXuKFs1vIZUvnVl3Ta6JU5LZ8uZV6tjVqP5QLy3EkLBME1hBE6itwCLYTQzsQgVwGmLUXbGunW23qkt5n3JCrNy32bcvhpnwj9tDP7SG9X626CwX3aj4bV4qZ/daTXqIxTOxx41hQjLOgCjQWLowx3BRnOjd2NgUMPUXfhbP7kf0sJxZhh4hw3Ju1n8/Lu7GnJDd/IkGEobDcj43aLpd3kNIsMFxRk+qhcZJJcuzcPrN3zsYfDAOH74jje+V+6CPygEL08mbxpTnydfhXSfN15hPDC7eOubfxAo6wsCZu12u899fHb4T//PRJpiE9wkOv3WOikLWzdmz8h5mKORx2UNacFmRiP8OjZfITvdC8kmtq2Sh7dI95W6dlxC9yyS6Mm5Xzb0yR7ZGfqyUVul5D3T1YGbm3c5TO/zTJ6R9gv5/UK73tGlkNRHksU998trnt9+Ql821mXB2iu27Qh3B47/4mMO//p7HN7/CQ6Hd9Gc2O7v8NXZ1ju2DpsvLFZ5fXuLSEJzpQN7P6A1klO6OhM7fN3oXnBLtNow72xdMBrWw19GdLwBC4h8jZ/5lZdfhbMgEOtRB9Zu/Cc/PzKOHKQn6Irud2hzpi3jeaVSSXYg6TVTCWmhyoypsUpntU6XSiKhOyh1T/EEpFhkMCrTkE50XO5D8kl4cJmutESYFNuMywyp0nUlq0WX2BKHfBPx5nmHzQ3JBtUR25CXM77sSFsh1URu1zxyQAtaDX/VoYKcGuns6CmTslBfdvzuGvkpIf3EY9jlYGtkRa7OtLVxNmf1DfodZzrdcxgWMrNinPsKGYw1fExwimbEgoXUbEV9ACDWeNR37Lxw1C+fSffbHQ13SG7809dnfvW3n1B3QteQ/w2yXGwcF9bIJTqkg6yR7ieaAtxq0FpIpc0jla0ZeFio0VvIg9pqcBb6GegFPIXPy/ALTJujm2NnqItTN7AVdBXSTsFC2mHu4W2lhl5BR1nuFtpR2GqmebCvtAldIXshu6Au0BNmgjTBK3hX1m8JbTLMhK1a2E++6/RboT4Pf7DuGe0D1BOjr7Hblg3yIaj1SmefYDZDs5PN+c/+WeJ1/WqYlH56e8u//3O/xWf38PzUeecAV9fCk5vM0+vEzaPMs0eJZ4fGHz1f+Phlo/dgEKSdssuN+mqjLol8mJlLMFFcA9hp1iM8xTyASnfmFKlKeQ7/hkSY0d6bUc3ZzIYcbHDrLaRBqwE90jLrYHV19zBSbqOrONIvz8eOJqf2ytbqaBMCZshWqS/vuXtxh502vPWg8quytJAFrSM9UXMGVcoENfRewawyyOYUdTB9AI4hGCARs21sLtTNSJLIKZFVuajub89fckc2j0K71S1M0Imu7tKd2xpSzfMWAM+pO/fAedu473C/LZzWldO2cm6OHjJ9bUxpxnrjThNnFfKUKNc7cndm1WBpDQYvDn1KWO3UYw+MXMKUP2Vox85ufmuN9Ugp7Baplm6GlESSWLsS0JuRh4QjpXEjJfxFxBnMwggGCAboeN0SqL8Q6Y19GzJUAhjVh8OMfr7Ufss4yy3Mdy9qDrl00uObR5/auXv11ZHyiMQ64A7feNn4l7dPIqn2zvGDsbSo7zeJxMyEw0koT09k78ypc/diAY7h/1gKZgVvle5KbZGYW/0+/Bd7ZV2PtPNrjC0aPU8O8LVCeb5y/o1OuxdsKpTXDt6RYljLIAVNhroh7UxqneKVXWksspJRStqTdCJrRqWQxJhcKOMwZn4/gqgMtT2eesjWTjPvvDfzztP3+Rs//deQdKKeG+u58fr1S9bzxrf/sNHduXn8mBcvz3ztX32Xw80z/sZP/zXyi3d41W759d/8lJeffMQnH5359LuxVrbjGV8rtTq/9O1HfPLyHhHIo6n/5XX9+/MZP/O/fYu8KzRSAAMIrVduN6Oi3Lvhbixr59VnG7fHE9fvxJq0WqJaY3cjdOl8+PuveXHbWKvz6r7RVdnaRttnNAv2yYamzFWBSY2bnLgRIVlhW0G3jk4gJlTPJN+GH2Qit87sDmsPuwr6qBc7bh3PhrnSLIc0fFZkgas5/KY1S9jXSOJkzn/wj777w770X5gx3A+wEcDUzTC5AEDxx4Z/1dsgUbXwe5x3iZTg7r6RM1hzts2pLRq/OdwRMCNq8jBzDBwnCdOk4YmVYFmc2iwUE2NvSULYbkjYRixLH03gIdMeAFIAZSFhTIOxeinb3O3BFxNkBAPFrzD6hZccKWDsdyJvJISXFx9ffPjYR2AT8AB5vWFPP3zmDdA1Pvf5P4Pb/AN0fr4QYNa6rp/7OKXEt5bCXX9Eyj6iX4SeoDanq3LaNXzXsWN0Rlyc2pWegowpOCsGrrRHnX4ueEl4gm6RZOTSERXWvoFDnsPaLOcD63bGyx55ZMxnZ5qE9UXGXizU7TPu5BXsHlMOz9g9eoethkm7V4H1CC38ANbtSK0L9/cLehTOn32AvL+wnKG1M/V0oq+C+Uq151ja6P2OLkrhmv1eWCuYZboLKwvdLCbO2tEnhjfYW0ctulT0zCSRMFZyhgye4gCpkvmPfu4MfCWIDUBMnz6Kyd/65C6K2DiOAQuOIvsDNXd0O5BFoYAUsD6hMoELRTPJNECqMS1rWvHJ6bWRPZOZSOaoHFG5wTRjXnDtFNuFflkyOXW8hglylxbx1FIQDar8tFPWZiy10vqKUehiWHa8zGycae2WtgreoPcN38Dvj/Q7R3aOt45uoMeO3zv2HMrrirVbWAXf2jAlEZAz7BPLLCQqNOgSfhVmRmuxUJoYyITYIdI06SSbwyCcHEbRpJHO5xSZQOGkRtMvn3vDZbG9lIsbwYz6e7/2mpt8Q04h5SN5pCRd2AWDRrA6bA0W6SH16n1I+oLRVVXQE6Rxrs6T4gnSlEJGswOfnJacTsN7bGSX9EEtiTaDzrA7CLs5noNqyE6w3MIrxwJo6IAMf6HpOsHk0CrttZJOGe2JIiWAcR/dIRq9B4iAOesrxyyR3+tj84bNnWQCNxaG+C8Tri30/Wa0LTbuPjm1acjgLGEpOsy9gCThxXHPb3+8/rH78KUdHnPsv/7l32WeQvqWsnLIQpEwOU/uiArPnhT208rtaeP1XRzAkyg6Q10r6hmdIm0nmKPR5Lh4H+xypmTYFeGwg8dXytN9YjcZjybhZhbSBCRwg3JhC7pF0iawebBc0oiGFoXWoRP+jYFXRWEWPmgpEgxbvG8kp/CtSjC7k6QzqSAWZqkX7xpG3Lz1HuysnMkqnM8e9H2cnDMJQQazceR1AsHEUgSqxxrsb0xeL2jEf/F//Isfyi3/ixrNOrVtlLKjS8hUqxlra+CVcw3mr3tj63ApMFuvAYRZQklsg13V7zeW04JOhTQVZD/x0Vp57U5XkG4cVNilWP/SxRQ2EeEs1WjHhvdI6fQ0OrY+kk4HGxQL8KD3kFZZi/tpBl7jHrZqbGt/8DNRCUDWiOoQvyROKWmwri7yU+02QgbGgSN6EZgwetUjyelzBfqlBLdggjG21eGPeelomxtb/Wr4ZV0OK0MNjAN//1dfMtUr2kGQ80wmY6MJoilYuOk+0iJtgIfuDSdTESwZed0wE4puSN/IGL1N9D4Fg1TAvbC60VC6hr+p/PQJ5Yh/cI9vxk3K5HVH2d2wV2HKkLkCqcMeAGSa6WlG2NM11gxlQv2MtjnWXsmI9ADCtDDPStJEyhVMya6ILdydF15/8im/+5u/x5NH79FaYekLV+md8PfzaOhMSZnTjj/6g+/y6uMjv/NPv8OpnDg15+RbNBGPjbqcw5JiNXQtzFvmn/zmt9nGQdQGy+arwgT8sxz/9t/9tah1NQAtKRM9aTQWz8Y2ZU53jXmv7K4OQaXoQ8qVEksX5pyYrifWI3zn20fuVjiuAVysS6OuMP/oY06fnrn9cOX0SWX7bOH0spLuFjg2cimknpAWa4cTvqvLMBn3blwlo0wdujBJ4yDB1NeudM+c1oWuwulYyftEM0gadXnSFGxtUe5vzz/sy/6FGU7Uw34xeX8bnPE39f5FOsioh/vAKppB2V0aH6NJshrWwxN2WzpW42NRKCXC2S6pgVtznj9fEYRShvxd3mLcedTDYT5hUbQDy9pjnxuM4wtAFmL9B4hoEKBkmMB/fi+7cLMcf1i3dTCmVOVzANdl7wugazTRv+dM9OZfby1E8vZj3/70m+8Vh/oD9BO/EGDW96JvvXewM3/nH9+O6PHwDUkGkyhFQFvE4ebHCTsp/dWE1DC+FfTB40WA0hXqKWQVCRKKdXArIyksUr/cCsY1XhrohPRMnQvr/gkCnO3IejD00ROWVIKmvjp+PqLeqEdD+pmqLXyQLKFagMzs73H72afwI5AP72DWR3SrUPtCc2UzZ12j85St0V8HcaJpJ3gWYUIvEgfAPgsnUeTTjHenWmMbne9KRUYWaELIGFOGbz+/5tuvb7/0Pll/bEiwszbP7O2ApTj8uBZQobKiU2fxjVYTSQ70nqOz1mPh6N5BpzBqTE7SiY7C1Og1gRiJLaJzbcfCkWYTmnZknXA5Qu3U2snbNNLFFNGOlJBbOT101tKwspLmGXQXC1Lf0cyw1CmPFd09o7EGFXrO3E6O7K/QG8U3Q88Z7hv6mcKHFalH/LGiT2f6B/dQK/Qai9e0w1PhJBk5dUwaTiRXNc+0tLHpinXAnS5bAA2qNDe6hRF968cAXjEkgTfj1u842kKVL/Fm+bbhIXCi87O/FN5CkkeHgzjEFQ0+bnimDf37FBuh5kxcYmcxRzdj2ylaFPXwNTKPQ7x7UOATMT8tGT05PUXyV8tQMXINGvC6OWZC9VCstrGZaI8GgkyETKyDuIJFYITPClcOGba1hz9JjXAAQ0iewjduaH3kvlDe3cLdQWKfTQzPAYf82FibwQvFutGcABt6MGo0Z5JoSKU9ZESaoRXn7/7il3gO/QnD3fg7//h3id3EaB5wfCYkc0uPA+OxJd69cYpvfPIqHLbmAjlX9NSYBUopwybb43myMKtwtYen15knV8KP3hTeOTiP9sJ+V9hdZ6aiPJkLN3sZng1R8GzdWPtIrBGhj/03D7aV5Ji/kgwkB2tYYDlt1CqRiNgqXhtswbOmQ9bMREZUyFnwZoh3zKNIVB/m3B5eEEkEmWDtwRRlPI8GfoWKBHCrwTyrQ8rml+6khWeFuI+vfblHt7iWa9tIkoJJd5FBkxBCejftEncvjpyOZ5oF60Tch0SxsdbKUle2dQlj/9qRZrFXlURTYbGxh3ZHzWPd400AhqREmoT5kGhrYz12pA+2KIDEvQGPNAQxJGv4LakPKWykzbUeT+5Jo75zwmdL41V1D+9CahuEQKG7kFSwzUnljQQ1VCRhSivG6DpfussDFLs0ky+SCy7A2Oc+jTuc7ra/yFv8hRgXYK+KcET5xc86mzpbOVNbijVMPUyqveF5QjBSKphl6IIthVaNam00fASTPamkqIU50cuZliJAwCVAbbeG28ycMm1JlL9eOJux+cZ9bcjLW07fXNg4kKdosAgZXWM/6yJs9Tbo0NYRaUw64bkg4nQpiBlZMoVCEcVIIwm4I13w+wndFaw31BJZhXbqmG1ge87bJ/TmlKJs28rrV0e8T8zna/yze7y8wlohpUpLB9yuaW1CtkQzQYtR58rP/j8T9a2D9qXEt69M2/rPbrg7/+MvfTzACxnrQADh7bwhV4lpzkxZ6VZxcabiqI30uTHfr66EJ89gvmo8/+4dRqdtFnMrFe6WjfK1A/qje/rThDyZSE8dHiv6KCGLgVfUlR0wuSIITWJNdc1sSnhCqqMUEoKfhP7SSX5mOswsd539o4KJ0jCSO0XDhVNRfu2DB4ejvxrARfYmA3S5qN9sNDGQNwCPj4ZH6/7ADTCLhh85AKB5r9SxB0oWpGicC4qSipLS296LUQu/vuvkrOT0xlfKB5DlHkBYJO+G75l7eEVG5lOoLS7JvDI8dGNvf9vranRxJOa5y9vSPhlA15j/w0fM4OExFz+tB6dIv+RJX0hXb7d75M2G6G/OS987696Cs/D+/aNZXwgw6/9rvOrGb31yiEQvDe1mH4mFKY2YZQd5LNjjDU8KnymcBe4z/tKwV45+eMV8A/1DYe4pOsspWCbqippyTko1w8saoIKHnnjd7tlePqc/nph04fY7zzl/ek+qZ9p5YTt9xNqM7XhH9cZaFe2PoN4D9/RtQerKiw++Q38nc7h+F2GHs1H9nsZ9IK19QWwCNtZe8VXRbUGWTKqF7DA1YUfCbGVLjlnnkQrTU6ffKyrKJCWKOTcqAh7VvOZEz8Z/+QtH/C3vIvmeQ/iXddiDHrnx3/zfR/TuCUYBj6609IyLs7/KFJtotZOoJM1DUtNRH0wrMqYpmDA+IRmSOrJM9CT0IZUQ3SES1HdQXA5YamR1+nSiNUPaRnIjMTxnCKaV+BUiYRSPbkCGeUNyIpfp/2Xv7WJty7L7rt8Yc8619t7nnPtVn922E7vtSOCIEOcBhTyBhOABKW+8IR4A8fGAQEIhwkE8QISS4EiWESLEKMSSpSQYCJAPcNRO4jjYso0/SNwdO+52u7td1d1Vde89X3vvtdaccwwextrn3Cp3d9qm7S5V9ZRu3Vtnn73POnvNPeeY//H/QNIG1z15k9ApkSXuOX0GjyKqLzP+fEP/TENubiPm+UsLTDNpb9Az1OjguXZu3bmmMrkx9i30LeYNYULI4Aqk1a9CIWV6A0vhvdPdqLLDvKOiiMKSK0tynEK382/gDPidHS+Cwytmw9/47C1WQpbnWU6hrKs0Mw70pKAr0+J5cw2rb/NgJ1QVxIwm4WXTTz9GUzAOWc92Etr3tTGECIwWYFkXp7kzpLVzZB3ZFrpHehsqQUnvgDlDyph3sjqymoVrBh+MvFNar9gk4Um4doESsZ76ZULOF2QT13aKEBaNRDJN4DkhLxnLFsQUumEqwZ2eCwwTrRkuwRRzAjz5+V/d8NaH2NLBcH74F79IOfk4aMjwXYQyBCDz8Cwzm7IkQdue33jbuJpHttuRG+vUfciyEjCkzCgBXJ6dFb77ux/wz/7zr/KH/shH+IN/+FV+//c85p/6Q6/wz/xzj/jYd2556VHCSgMplFGRHNlvaT341x6VmHgYyTczqgGkAEc92Fr0mAfimdajUItYcaGtST4mkQhmZgweKT9jzgEotBpAFjAWoXcLKaOAdAVPtB5rkooziN51IuNpytwatcccE5GoLYjPEkD5EOyLx6mtMoS+phsZS18N0r1SrTF1Y/Yw1udwZP985mwoAaarcFg6rTbQRHm8Y76a2c+NKoqmBC2CHY7mHJsxKWRVNuKUFQXq3cIzRGJN1EGCFY3RlnoXiSezU6eOjPeR6Kaxpq5WHySN4BtNq4dg95BzrweS5sGusdnoKQ6Gpy7xdDQkWyRXAae4cYF3Mfa4Owpw97rxMneo1vrI6QBy/2W3Dw+r9O4eRX8VXWXAf/PXJnpzcsskcUzC52rwRhZHU6dLoXnF7BjrnDvaj2BKkUxKytBmpAspF1QK9Xok1464ht9ftzWBtdF7w6QwV8My+IMRe+xszwv1/Br7zDXXv/Y/wi0AACAASURBVJyRZaAuRh8aOT1Ak7LdPAhwVwVNFgxPE7o3tC/k4nSbMGuI9PDxahrS+kPCzo70NJMYseMWmzO3zw9r0EuNM01fsFloraPlSLrd8eavf55lWGh9AJ+pXbm4GJBe8eykFGzmmpyr20f8wptX0VBc8dYPW7/66zkc5y/9xBukYRN+RD3e70NNtBLnsV7C8kZ1BbnM7oCILALSEc1Ug/OLMzYXOTwca2O6rRwPlWFIsb6ZsBl3WEloGaiaKNqpo7PchN9p64nZQD1SnKsLizvVE1UTh8m5uZxZZufhhfLg5cxgmeNNMLdbbWEHoZmpVzYC5iGl/l9+7Ne+0W/5+2z4HTPXX+xIwF1gjMp9o4W1Nj/J+7pHza0S6oVNiXCS49TRIqSiaA5zdgsb0WBArYFNUbuAm0egTYp/wymlMlQe4Qkp7DbRMXe7d2zQOwjsdInrv9fzgbPKDdf14mT6foI13U5A1Op56i/I/uTUoF8Z0wRj67Tk3C09cmL+c/c8XtwnX6yz/P6vu6vwr73gl/cDQ0dEvuJFiAjf96/ERCkuLB7yPdxQIJVIC8gmVE1r4pGBBnWyaAE63RrJC8mMemv4MjC+vsWl0qYD5SEUeQg6kEcJfy7ttOe3SE7UZWTbz5F8yXwzkV464+ylLcerhJeZogNFlO7X1MnIQwl6u8P0XLisl7z8e54g3TEZMatoFpZ6RKszdQEm3DJdEqWB1yOzOplOI1g7Sqa7sXimW0N8QOtCfZqR0bAHHZcMVpE0kkt4AkiBX37rEX/+7z7jRDb8csP9Bcj0AzJykjtfQxHYCvzHf/Q7+dhmTzMYzis5CJ1oW+jipO7IEbhIWHM8LbgFWyAQ7oVkW1QbxTdIv0WnM+pYSVrR1EiyCTBIUsTI44iGC00BzCsqmSyJ0gdmMYY8kFOk94Cx9BQRyzpRkqKcYxwpfobkCpKisLsdOBsar+eHjC+N+JKQ67hOn0YEg1capB3+2Rl5lGBskCz8i0b4tfmap024ffsyKO+9U+eKeGHSiumMCVgtmDqtdZwFXKldAxyUShhqddRGbtnTxag9830fNy6v6wdqfr137Tp1oSE+Yf/CR7f8a394oleQed0YLQ7Vshg9RwfIG5CDpZSLrB4IwTI1N8oQUeCDBzCUulMVCsFQlRQAgK4bTxHIK7dYZE0sJPzzWjPyRkhrx8YJo27RkJ8Zq5m2C4qF9FWE7H7HDGsdlkVJ3dCt0KRjzwfs9gn+e95mkU6dZJU8xAaNeKSHhYM4HWeZhXbpDEnI58phagwPweZEyRa+EjnCK/6jv/7V6TIfxLUrif7mhVqEf+uPfBffvt0wrcEPnY6KsXS9SwLWlMnqzLczh1l48gCSD+RkUfAMznabeOXJwCuv73h4fo6mjG4kGHnXe/z8DF8EK43mjWWZubl6yqf/4UR1pdeK9cRxWc3kPWN0NAkqK7tnNV0va0rPPBmlCIv1+J5VEmuq4QOxGsfLav2ubmRPmDeMkHp0D3n9MORggJqHgXxTNK1JoR7MnGhiRHz1bRPasaKqdIkQjqJKw6M4XaXU3/d3/tFvets/aPPrz338rzlWSWYca6dNB3qtiDV6O9IXR6xzeH7k8YWS2syzt6+wYcP51uhLpc9LhPXUThZDl87t1cTjj15wcztTpHJ7c4TDjLWGdWPrHbHOsRq33bhdehjCSiQrNQuPEU6pdBJSdxGo3e5ASlsPDyKrE4VFnah0Zgu5w6mLDcJcV7PdGiA9IsxV8NYCcFlNdE/Gus79a55M6GPu3Rf70VCV1cj3xcJ/LcrX57rD9dUN03z9Ze/FB21uASSV0xkIuN8bBcgu/Of/YkasUoqwsQHNRnlrhCcNGRt5M7C0CVKmLg0QRoXz20J7tPqHilBkYPEpAGiP/QIgMaCqsV9KBDx46/SnQnqlhIWJOHIt8HAF1d+qnLUNbTFMKvJkQy8zIkbOG8ymmG99bWD5SNo1qD38Id3Jphx7R+rILAsJhdSoNAbbxHpIwzUSoheZqGS0G0MuzBNQE30Lnhu+ADRmcZoI0jI9LyHDt0Si870/VhF8lTndj7vD5Qdsfn21M+PX9ecg/Mgf/x6mQyNj6L4xPkpkjP2+MqgwbhPT7YyORgbORHl200g7QXKi0BAVeleevTOz22Q2DyJZVy1YOkNKDEr4xrnSpTEvxsJAu7nFLVMeZLIESGEqLKZIM+Z1TVxSnIm7KHYjnO2ihru1TrPwCp4XZ/HMXJxBw+f3APyxv/ip3/Z79EGbWwAf+30f8fDAC39QMVt9aFeWlMIAJ35ugFgGvTm7EUQV9ai3+9wpJbHbCNc3nc1WORuiJq62un332DDGLHSLRMOkq1pjbYCHT9cKWK0ZNYs74onHjxLPrzvHqQWYZitgte6RSbhjGcdvsZrIr/trYHCx17WTRJETM/kFQtVpPwsI5k6eGHux3LGxXmzrxDW8CIzpC6CY3H3/+oW715imBhi1zl/T/HpfM7Mg3qy/9cmMZmVe4y8zwkYSg2SsRoKAa6TFUaCpo1owayxLxV1JWiB16uDISwV/+UivB5bLiuwz0xtbDm/P1C9OLJ+9wn7tba4/FfplSmO8uGb8tgPzg8ZwlvC3Dtx8yZF8iTBjtseXI721Nepe2cg5x5uEHIzXv/UJfuj4ZMhyoGPMtdIXx1UY7IC5IW1AasWWimyFwcDTiFpiIxl1aHNCzaA5fZ6RVNg8Gik9UVNCq6EpMWjFMXJOpH7GD/34zeldBT48rKwT6qwrmnx05fv/j8/A1pGh4rdnuG+wDrMo2IBnpV10dIoDmvIQ1RKMo1RIUkKfBVi6wnKhnR1Ih47agMkAa5KFijCKk5KiMjCIoVIpuiGp0WVhyROahGY3TEsPfxgzkrYAr1JGdcBlouQRS0ZbvY4SibY5cmRmv5/hrQWe9kBPRkWedXqacc+wVOR1hXeO+LFBU0QqV3NjkURfOi4T3ne4Kakkms/kqpGS6AUg4rNJKDmkILkzyIitXjnNC10nGkL3gV9++gpXNx9wQ2XevYCrwI+/ufDW85cgS1CAgeqBcq+KzWCHrEkgYsACrfkKNPnd6+UIIowEEhWShBmyY0j3NXBA7hLI4hAPPQl1ZXaZG1pPAEIc3JoES6VVp1td95eQCYlE8mZrnbk3KsaiTkvQS4v7ezB8ryzPoD74EqrgC5Egxz19Gg/KtVVfzTXDm2t8AvWxcTwa45xINcIRTp7dRZ0/8aMfAt3XVxrym//3L/zkp/i5t56zU6VgbJLiXSjqjGJsVndRd0ibDY+fGFdXwuHGqZPSSyalxG478PjBjhEl90pRY0DZ7kZK23E2jmwfbdgOmd04sttsefjwZT72T2/YqOGuVIt7s5ig2oPZbE5fQQTcsd5p5lF4e4BIQ1KGHAzEUiIyuvcw5Q67pEQjGlizrwWiOkWETQqD1aUGAyMhFE0kszv6vHqYrYqszFkT8tLZFmGTYEyNcjL5NlDzSO957xv+AR1mgAV4RO93vndmnaVHCuRSF2RQ5tZpUticD+wv9/QWDCbNOeovAugeHm4p4uxvF4paJEs7AbYnJ0mLRNZ2SiqEslpJhK8VwdDqtrIyY51yEfpiDIm1FBfM5Q5gEtYGAdDXVrOtjL6TrCKJ02pIF3qN9W5MjbwRJK+v208HFEfWzjRrJ8x4N9vKWY3hgbvy3e/KcSBYYSfWsvuHaw17kZEG94yA9VGezReQlCaANGQqWI5U3SQD07FhVrAazFwpEjL4XWc2p4vTe2LuRjZFPNN7CrmiJGpbAiRf2YbLUtckOKc9d1Qj0r6p488SpIy8lNm/smCvG8sF8GwhfW4Hb2yY3hDa5Qj1DPFzkuyoqbG3HlYMLthxpB8fw+1j+uWRPAuSGlBIjCz1DKwGi7ol+jGhb73K8MaW4Qtn5C9sKdcD/TZDNVLN9NxY1IOR1reIONly+PJq5R/8+iN09RO8s8l513v9zfHbHY7z5tOFzVnmYpfRTQDhTZSpQtkNLFcTOpYAkQT21diWkCxbb3QTsPABvXg4crtXliVShY9iTFPlcDvTloZKZ2lzGH5rZsaQ3YD0Trfw5ZpdqFN8uCZzSsnM1imSmeZCnwzfGcfemUWYPdE9MdnKCBqFusS1qjgf/5UPn/T5nzRO0IuciB8nf8eVjaWr+TvrPhQgjd/J1mVtOjswrNL51uDiXDncdI6LhwR+pUjlrJQE1mJTNAurA3cYhsQ4pFDqrN0A9zUNcTWcf/tZZX9sdw2UO77KeuY1j31U5EXJLHdA1Ol3Pp2TWc3m/SQblNPaEjW8v7gRvlAvyelF1p9/ty+eWGwn/f36lPu98uSWFY+7nNCyr/2eve/BLFXhRz+vHOwRHRhyoiaDnGhm0XnNsNBRr0g1kjku0fVNTtB5CyzeSWmLS6PsRvQh6Kud4WPKw+8QhieKPL6kvCr4t56jj2bGb9kgeUvKr7K/rhTP6PkW/zbBrw4cP2VMnzf8bZhuJ/ozZ3lnYP/pxtNPvI08P3C5XKI+YhRmrdTekNbpy0TFOE5G7Yq3BNLx5pg0ptpZUqH2xuLOofnqL2OklGNibsPw3obKsTd2lmmlkxRqCsaGD50/+/HGzLsTwN4PrLzfjXHy5sgOyYXkxuzOX/h7M+f5iJRb7DqDF1Ia0OJ0EfAdXSEtQLtGe0csIpddBPGESAIZgu+tI/pwRFom7zeYhwQnaUXC/YUsK7TOym6SgumIa6bJjGcNxtbRaDSyjgzljBNLZxhOXmwdZYunHBr4VOhlx9Wmci0zPF7woSKzY34bXaK64PUArdPTCNcOi3HjiadTZX+9MF0dkDbQ5Bkmt5FilxNLCbNgORYG25IMhIbbhkUGhqb0dAVrwa6E1CiVMGH9y3//zW/gDPjdHSfTxGBmdv7s370k+zlSBC2KpZCMySCr9wfUbEhLtAzkFYRaU0jCRDskW62H10/vwUQ5MQgsbEfi+9d2TBdoCNrWWF4LU2WpRu/3nZriCUmrN5WEpDZYracNKH6v7lBFcdNgJ7ZMv0rMU6bfDvSLTrpwmIzUQypZZT0griwLXY+WS7MAEJJACkBj2DrDNlMPma0NJAVJxq++vWH/4Qgv/E3jJHUC7goAX+ne//s/fIO5tZhL7mxSYkAYcmaT88pQMrQ0Ojt2j0EvGmdjx57PaCtIj/UtN8WOgrpS8pbNsGUYNmwvzjnTLecPL9iMIyVlxrzh4uIx3/X7z3npXNhmIWmwoEyUkk8smxT7lSjuwfbKxNqpHl5YSVcPmVUnlnPIkSI5aE3X0URzY7a1kAdmTs0BYzk6y9xotSNDwlrGukTxb0ZtnaU6xzm6rEkSKTmjZtLa4UwpPofZ4c/8nU9+g+727+6IqO/VfxMiE9r66rsTYNNyWMgZOkLtlTkNCJ2p1jXrK3QNzZw8ZK6vZ3yX2D/b4whzkwCrNFPKgFOYmnNcG0xZIzIkut7CkAPUTHf01tgv1cMT5hQlHslOcf2iIRNlNf5vq7m/91PnOGS1RqLIQhozUhK5QBOl9fBHCil0yEfgBf8QWf+gdH/Rb8TvfETuS/rTc9evrB/f/c3xhcL9QzLeg6jcYYPrnx/8qWuGcoY1pXuiPxe4mOl0Fl/QTQKpiDQ0GdkEFcWy4F2xpsEEF5iOHmx0P6O3HdYWPA8sstDMmGuneyRX6CbSKg/TkZYVe5DQVOnvJHSzi0Nj3sBZon+L0b59Dw/3yHiDLoa/5aQv3GCfa2w+nzj71TPS5wR9s6HXC/32HXxfYXmAXBbKb5wjb47omwPlaUW/tCG/PcA7FV0MxmvSoyPtIzccX73FLhpSJtJtYvJb3JXmhYpQxEEL3iuqA+8cXuNHPvU05OYvTK9vygy/fuM//B9+idmUjpK2G8wT5s6DbV4ZxQVP8XmfWyKnwoIzjLHv1Z6YzakeYRAXDyrvvH3AzMg5s4hHw3FpTLMxVUV9wNywJSw7No9HlsvKvKqMWu5Me4ecWASmJTPdOCl1bMy0Liyu1N6YxJg0UoCbZMbkbM6EpUV9+KM/9flv9Fv8vhuyNivAV6XbPeP2hBOFdY1jWLBzO6sPe3zTkAOg6QZ5SCyHRkoJ1Lm96fQOOQUbOUv4/OkJiOY+eOQ4G0uNc0BOcV3d/c46J3yynFzCq9RYrRpe+PskgbQV7TqtxSIhDvS1Fuh9/fnKPXiFrymJRHNG1gZRd1ANGf9pH5QXmhinLfzuP/ICiMVpe7z7/5XjBji12v1zv8bxvgezzBx84U/9rUtyiRQtVWVvQac7dGP2uKELFuwBLSweJpNt0yBVvFZyGmkcQUcaynFa8KrMV5Wbqz3HNuFsWGpieTqhZ5tIWGqN4+E5opWpdmo9kq4e0jmSHhsmM7f7A9MC+6nTjk9pL93i39XYD46OIzfzNTXv6d1oJrTacVO0gfdKazWctGSPaMOo4EprR9DOjDCjHKyz5JGpLcwY1jqzd6rN9OkB3DayB8W+aEcUfuKXzvj81fxbmxkfoHECF6LT62uKkvPTnz7wVv8oJUM+m6n76G5VC9+VLJGilhSSjYhmjtboGGoru4WK9RFpStLghvp5xzaGPstw3GIy0hHMFrz38EbzTPcMMmCWQ0olhQYwDtg40/Zb6mLUGlJFoQTgVoRxOCNnyHlEJLFvE+adyZ3n6YhNwG2i7w3NCTeFHug+YuhFx/pEvZ15/mxiulnozys6OzZ3bC6InUWRRI+Ftows4y2zTcwdOGasV7IbXXdYL4hv6CZIWkA2DIvzv/5sMIg+bMMJ9tGBxg/87QPk8AFSDwN2c1hklUsssPROWs3bRSNrsxHfi0UiZ3WPOYaEIXyLr7e7jSo6J03XFM/VREt0ZSYsThsj182JjmH3zmlLW6rjPdaPKmESHWuWMRPyitvWOVwK043TXlrwlxq3vlAGYfQSrKvuDIPCEqmy3hwVDSmYCKMqaZ0SOWuY1Hen5wV52DkeG7kqmjM/8DPTN+YGvg/Gu8gN7/kIuTv/xd/+FG/uK339BoEw+JcOGixKlUzSFtH2KXMcCg/OB/rNkfp0QDH6caEewGYHF1rLjBevkHbnnH10ix8GNpst427HOGaKZsbxgo+8tuM8BxiUk4aMa72/tjSWGkbzKSXmrognXIno8JV5OLuhK0DRTdYkswAFkockMrqBsXafDEirBDicx8TcJdISO2hpaHJykTWmPHE9GbUai8JijeoBvGUXivnabU2kL6Pq/KCOq94RLKTDZjTvayLpmpqFEfAjVOtMPfyxhl1CdEQM5qXRutFx5tYxa/TWGBNMNw1rjXE3UogUJ0kwdzA9maz3YItasKHwYNoNK1PPJYro3ixYpysbSzVK126r59baoe6nRoI7m/G+e36cwKaFnkt8VlQQWSW5dmJ6rfUmp+SoKM5Z556vKdkx1u87de391MePx8XlBRzHwSrT8uFIMfxK43RAO637VYz/+sePDFXJt2G2PmvCkzB141Ar3RPWE9ZHkBzee3kI5uWQ0FKwQ2PcJJZcQa9BZpQBWoVa1gNbIZUaRh3FokHoA/vbBRky9vqOVq7gCxtogvVLSs7UnKlloD7aYg8f0F/t+Ec69q2V/G0V++gt8u0V+Valv1boryj11UT9tkv67+30bzGW1yrtI7fY6zPt1cr0UmV+tdFf6swPZ/yhMj8UDhrMi2UzYQ9h8YF884R2TGhLLN3o1sm94XWk3W74oZ94A6HxoujupESAD4/64ndyOPBvf/8vsjh4AhPBVUmDUnKBobHmsDAo3K6NxEN3DlMNyxuEpTW6hpy+zcpSo/ZTKfRuHM0iyMUqx2UCyWyHTRATcuH8ow9pzxpLC9/eapV6yEzPKr4YfduRpKwRBCQXDI1ERjU8b5gF5h7NJMuJH/65PR/ag+FXGScg6551tO4HK/vxJL07KQ7uH4u6xdxpzYPR5E4eBB2Eq8uF84uM4Ty7bOCRZNhXwOjERkaisXNqpFg3vEeojkhYItipQd2di126N+yCO8DpRURJRFZp9LqH3j0QTzj5Tp6wqRMrze5+99MaftoP13RqlxP5Kt65F5YcOSFWp6/5ux551wNyt6cK1tq7Hv1axvvOM0v15I8g72IOCSA68H3/6gINtAsFDe160tXkuNMblJzx3tiMhWEAJAqmftiQz0I6Yy1R5RiFcnbUC/ko2FJJr+2wuZFayCM2Y0X9CQu35JRZPiPIrrJ5fYOLMS2hghetZEtIkug8JoFFqZcdf2Sk1MOXo2Zce3gv9IpScOuc90wvQj9m6niguoI4szvWbS3wIXWLA60rs3eEiJce54G+77TXOpvk9EHo/SF//K9ecp8x8NXHB1H/nCJ26+5zlIDCujxp4n/8N16lp0YH0nWGvkPGI4zKkBvaDF2UpYGcNYI6A+ILiBNby4h7SGzCueiGpAXvHeaOTAM8UUpPWGpoGWl+RHwTQQTi4BmRhTENZFFqq4h0aCOqI3kT5sqWM8UiYleTklVYzBhWJuJ43PLk2NBs5KOwfeiUJ+eghrEgVjjOzvVV5Xk5ckRYemOWyuydeWmYKc5EPSy0MtI1Frulz1jPJBrZQyLQDLov1KXQJUGu0bG3zJ/7ycqvfOGeVvNBm19fi3eDChjKv/kHdvzB37unN2dxIS/rIapFih9EwgkYfWWMZIS7Ha6w+lydki+NwQTG8JjJunrIaBDkigp9cPRkLmlKuYV+bqQUm1siijDR0OQrQlNlUMOqIhoSDVpmvgkZkLzccY1tJ0kcNJfnwuCF4UENRpY5lmBaVoZod8SVimENNinhGgyxXj1MvhLIXhkv1o0yOf/B3/zaDSA/aHMLQEXvHAUUuTMlfdcQQDJ/5l/6bjQ7lgI0zBLm/wvg4pQk0HX1SYBXPTHmwsWmkm5hd3bO7qXE9pWzCKmQl+luPPmOR1wMCz4Y8+FIvV3YT5csz2b21lmmyk/9v2+vh8Zg1TjK4kLCSaLB7ukShV8WprmySXcTGoWIlHanKODB/jv5aKk4q4kSvho2WO30Hp5yqYSxfdPIZ+pNWJqjdCQn+mrgazgmsno4rPspHs0GnD/1ZbyyTuODNr++9d/9Af9jf/SjUGeWVvFlorWO9UpvlXZzQJNivYEt0Dq1VkbvPH/rlsdPRpZaEavQnBFD1GGptO6MtWPiaBFsPtLmzuG4sCydrEarnWLOrRlDivvVHOqxkcf1/kP4odU4EPSVkWWy+oJ0B3VsMXrWNSDISQ6a4eZyBTY3mWZRH5rE66g6c4sivFn4tok7rcf86KtPCfjdfDmZb7qv6VBrR9ux+wNOPCWYYwY3x0qf90zz/iveiw/a3IKvvjeuWCGqMDDwJ/9AoT1QyHskh4H/KI6QQRrFnbHk8JZypc8LOTWGssERWjW2g9GWtdmjleFyS9s22igUaysTMOPe8KeKv+LkVPA0MGxGfHZ0c0V+c8CHETvruFaagdeODhlhgS4kBTB6z5TH0I4dmwzzLXVqSGk4RjVB2kAtDbOZjQ7rQTDTWqWlhvdMHhKHTnj4ITR37CZTz/Z4z3gf0BtBpWK7zpQbf/JHMy01zGK+9xcO2ev7f3eG+qDNr98tz6z3/FD+2vd+z7rmQXEnuSNe8TzSayP5zNSIs0LqqHdowqZA64plp1bHe+L5s5lxl9kOC6NmanJ2OK0mnu8b2cL/CltABqYZUhYunmyR2z324CH7q4l5aVy8orgJw2ofMdmAe6V4MMeOxB6cFqWJkXPjZ7+w4c//jV/+//22fNDmFsDm4ol/9PURVtsDuTtARkPN7yTs8aevEomSw+oB1tpHo7aRNYwEwLqw2wr724p3eOlxkHT66jtiHidI1ZDO28pQXyzqOFkb192cucYamtMawmMnL8lQ8rgH61pPwJTH9azdl2g8E3vpiThlLayP4N4vEqI5npJgFk3yFcO6u8YwkD8BXadrWGNR/OQuFozmF7kN/gKDmbWh3mtdD+hObcvXNL/ed8wsuysW3r1W+frYT/76SxSP9Ii5O9riTesGskCSIYwbU7CzWluZJvUM7539886yLPS+IEuCDu2g0Iz50CmPLpBjQo9LpNUlYa479ssBrgvzpwv5wcT2I8I83dKXBUh4OuK9MFujSV0TygyTG9qS2OYFWTPrui2rcWnQ+ro3sMRtn5j7QmuVqcbB8bgY2uJAmhySKzUVxJXFDEPpkmh02IX+f5Mdz8JOlP/sr18Ftvoh7tAkIIuQuQOhaUQSmHjnJ9++oPTC6BvyI0cfTvQ+wxWwFNxHem4kFpSCeKPbTBfIjKS0oYkjudDotH4EP6eb0iXjww65cPLlBsiIlqAcyxZJzpBHNMO4yWzHJzgDJoqmTJIdJjOaGzYTSYc3ieNcsUWwm4ZdC6UL9IY/c3SqvKkLXzpUvrjZ88YGvni85Uut8k4beKMan+kHvtQPXFtjkoYhcb1uiBS6Vloq6G6DzQtMAexmKaBO0jG6PDi1j5hmfOuQG16duVZS3fGPv/Ah1Ye9MML73Pjhf3DkncsHBHYT3RUVoEAfICUnWcIkPuvFBTHBc4APegKqgC52V8DWdZPsEmleXUBzsLO03XdaMMNGIw9hY2krBfnk65blJPcxvIYMbFmMdjWw3CTS1smvramKPeQ8x250V6yNuBlNncVDWtgatBT+X56grnRsydAsDrJqwBDdqeSQz41eHE/9twRkfWCHvOuvO+3Iu2K0HbDGf/rxT1Dd0d6hQVucPDtlycicsIUwU7eOts47vTGnRp8hp4zrwvzOFe/8zG/w9Off5NnPfJKnP/8pvvCLT5mvO7KHYe/kVhkOIM3Z0NAMTy5SpAG7rSxYI4khEp5Uxx5sGslQVNkMoaXtvs4XC7BNszA3Z/EwcS8aEsYsaZUraszjFv3n5cRiVGERZZ7hdt/Zz5XuITsUFXLRVd7ImlYX7ETxYPUEM+jDtUde/sgP4r2HH5+sSaju5EBi6NXJfkpkgu49im6HGxIu/QAAIABJREFUXiu3ty26qF3xlcHp0WwmidEG4XhdSaqYJPKQGDYJULqsa9B6LbUHM1OTkLe6mqw76o40Rwv3qYW+plrb+vjK4FLCoyo71C4cr43zB4JuMt0MJwUeyrqOeqQFd1u71EL0q2U9TMi95ON0GDgxuO770sTXPQTUdxKM+HK8X/P+m+SHdYgEECREE0UNOpVPPD+niWNa1lh7XY2CFaPjJUHdcfSOyS2pGYktlQO12cpecFIuUVONheXxLTw4hpQ/G5Ziz/IqKIo1cJ/Jdk2dbzG5RqcL5PWK92vSrUMTFCGXjvqE1YRL4eHDl8lppJw79bgjyZbd4x0tXaND4+WPPAYdGTJoqihKkZHg91V25wUZFJcRzS38TF3QLjQT8MysnaoDNStzqRwfGvWx01Lm5954hSrtzvD9vW6k7yUDfHN8HYY7X7x0DKVpYpIx7psOzLeNLkZLOXxBMURHkETJyqE7VYy5zQiQ08KTJ8q0X7h61nl+2VmOiafXwu3lxDjA7rHw4FHhwSs7njyGV15THj9x2s3MNDvH51c83C48fjWzv6x0Ejdd6WmMvViVo2SOPbETsCaRHKrGZMPXBcj6oI4+7TFjlQ1yZ2LufnJs5B60gZAYyrvZuLGdxufQ+r25urfOcjQeXBRU4eqy0dsqBbx79ppqeAKbVlZUllM6eDRg/C5hV1aAaN2f1honGoVrZXNikGHr73ECn9ZrX68XXQNN1nroHoRa06D9dI3cX/AL33diXam8m3sVwJ/fMc/uXsNXBtsqze+t3v2AF3IQ/4njfQdmvXeIyAtATON//uQNv/z00YqMOpMTWp6jI0noYlgX1BQ5ZuptZ3FlWY7U1MgXhprgSyOlElHeZhyfQnk5M9UrrM1QlN4a4h1rlXy1Yf7ignzkSHqYaTctTD2tMzi4FVqZERXq4uDGUgsTiWZ75p7xrixTJSXFpFK9hv9Vd6o3FhXKzUjbVJKDd0NdUaC5IBLdRawzpaDmDw6ZxqYpkxp50xANicX3/Zjca08/5BtbyF8I6cLalO8GFfih//Mf8xtLZlIj+Q7TBd0O6HljvnLmaabbQB/mOES5oCZkMmilWyV59PZTFnIeonuXlCyFJEZODXaVer1wuGlIa9hUaRVam8lW6JPg8wGtM96JdMAysDl/GXKm6h4fRtoukc5GTAttceabA+2pUd7uUCeupXL0PcdHC8eHA5dWeZuZt/uBd7jmdp64WSaO5iwtTFH3PmO1QVeW1VTcuzJ1x85GUlb63sA6GcG9U71iqniaaAxxyJABslM2W/7qpz90LiFfcTjQ6Pzpv39La5uQ2ZR1wZ+hdKCHOXoJR1z6EicpAzQFCw9bQQHCw6EHERDJcidFlJMBssGyblTqYHvQrVKrx8pfBFkNj60DolQP4LunTrdOMkVypzyq2MZW6nRsgAvOYkJ1sLnhatQZ2qJUEdZvDWlYV3AhqTOIUEQY5oGe4vDZe3jvqMJY4e/9evkG3q330fD7iOUX+59fDnjp3vne/+sTfOLZkaYdHaFtBc+VTXFonfnokRTXnFSN633jaRNsBD/M+N4ZN2c8+D2P2L72gFd+34709HMcnl4yPZ2QYpTtCEkpo6KeGVFee3nDJidKzuGDJuEnKFmwJGgq4aNFppmvkdfRGhxQNKXwzzJFUnhp6Woe7g2WpdMW6K0GqJE6aYiY7C7CMhnz4Z62X0qiFGVUI6eOSqfTV7P3Hp7eHp1vF6er88O/8Ou/Szf1fTKWz/O2BaN9MY+EwLV76+v96e5MtdN6Zwr3bGaH3XliupxprYU3JJFw2s1pCIZwrIamyv5qiUK4E+CmN6YW0eUn3y4HLDnLvtFc6AZ9Bm+Gl5BVdwuWFitgVJKsLCtAhCzKNgnT5GRrDOdKZQXPbDXpXbvA3UOWCPdNhSwvMB9XGSIWcshTWlUUzHEoOElKokF2KsbvTz8OXN+GufK0fGVW1gd9vNeM3OwFBpFAMvjLn3uLT15Ck5mLcyV1p/eFtjf65NCg65HzeSBTUBEqleRjeOy1TpPMko6cvzSgmmnHcy7OPoKkBbeEaiE2yQ01Rwq024j1hNSO1073xoOXHtIfn/Hg9YQeI70Sa3Q2SDGyGt1m5lsn8RC1mZIzh6OgnFFK5tnlHi9HqgmtgTNTpSJSEEnoWOIMo0qTRKei2hHtmDSMJQAwMzDY6Y7BGtkav3Fzxo9+4h3kBcnTe8eHvd7/nRr/zn/7CzydEmikS79zW1kUphYJ87UZs62S+toDWBfDF1l9ADOinak6FXj5Seb8UQExbq8n6gLnD4Q0Kj3l2MeJQK8zCTXS7oHz4JXCw8eZ7WbLmTsvPdpwc71QryvTvFAyHBFElZwswlkwakm0lPgT/9M3fbK+6nB458awqBjWtUrDh2rFj2IvC2UCq7rB1tIaX/cMWZs/q89p704aI1F8np3z80ztzvV1uyNanNjIfWVOvQgG6fpzliUYVLKCVbZK7HG/349YFRmyMovF79kcnLRa9008I4JXEO4wl3UrXAX2vrKt/I5Ze2Jz3ckJT2+Onx6ODfX0aqf9V95FY5YV9OPuuafxW2kvvu/BrHsd6jr6wn//s9d8dv+ABtQUha5kwOF8dtIBvDo+Gl7iUCimUAVZcrC1iuK20CcjXSnjI6HPlbI8YjFjmoV0/TL+uUz63IbDssc/toQ3xPKQRUayFOaWae2ILR0/Cr135t5ZumG+xytstg9oVWnLAlSmVpmrYBWqDUw9DG7OVKlUjjUmO0QC0CLOaOC9UVzYkNi0iIF1cbIqfQNFF/LjxE4z3/9x5dPP2rs7+B/SUZ27ZLQG7zoUusPiyn/1V75E7r6yXC7I207KA/q4I660W/BlSz40lA2eCsk2pL6FPkSKRVe89RVGV8wU6SCS8LTDtx15Et3fOgm6Gcl5IOs5JpmSJsw2KIZLIg8bVLYwZfrtlnR7TvuCUd+Y8M8489Mr2nzABthtK7cb4ZgT07inP4BlMGpyahmpqjTOmLtyWJSqxqF3qjSO84HKxNINesbTEfEdzgySwGam5PTtQj0arTaad4SM9fWw4MbSBPVGksSnrl7mJ/7R82/A3X7/DnOYzfgvf8ZZljPUJVILJ6h7pSXD6Nis1INiV0Z9Ryg9jKq7dVoK35huhqUAYy2widU3yegeSSi2OAWliWBzFEjNIkUHi644iUhUJcCQ4nLnkdVvnekSlq1F0tkKjDlKJWRj3RxRR5rChaMJZHBMw9S9LcDiZBFOZ4k8BSPDxsbYJUCLlQ0hGT77bMePfPKbjD7gbje/10nLqbcWnbcXxwpA/MWf/jX+m//7s/RuzD0KrMUMRChDMJKawCTG3iuXtfLGYWb46Mjuu0Z2r05Mb93i05HpSnn0Wub5rxyZe6MtA0l6xNy7402gOmMaGfOaYtgV6Y4q4EJhZSkTJttJHEcRE6rF2rzMjWlpLN1QDZkRroiB9YaJYxqSwVKEcYh1p5kzzQ0RQ8aMroEwOUe11SwkvGZGWcEaT1A0fCim1ldPOuHzlx8yTyN3/spPPI9y1o25xTqwuAd7RuP9VYkAChGirulG2oyQGjeXdS1KheqG00kWhXpuHdlk/DCHsbrCvHQ0KUlZA1AiWdK6456QkuhtZYQNHhYSdpKZrmz21bTebE2pdI35gnNzY+TB8CHT1pAM9/AObTUA/ign13kYW/Va2Av0dT0jimsVJ60srXhP7o4IQEgt7kxyeSG5dZWyejt+ebThQzLu/GVOe4f7/ddZmcUEmPzxXzqyIXF72TBrWE/4xYyWEU/KQmUu+zX0RCFZBPX0idQXSI76yPGmhtTPF9753DUPX36ZMQnURqPjfQIaGaDNJBtxiwPXvBhffCsYws+ak5Pz6HakSkJyYTw7w6Rzc2w8+fYN0+FIb4WlHvF2QJNDKWQt7M4fIkXp0kGV7ErXjgwjV1f7aJDSwXZ034ANiA8kDRsBGWC+3ZGy01qks37h6jv47/6f6/WQff8ef7l/f3N8/YcD/94P/DxzrQxZaRYNGs5KeEGWxKLOmINdvlh4m4Izd4WW8B7elWIwWayHF49GXn5lwCWSEvGOmdBR2ixM3Tm0BkMAoNUEPzhOxYEixmtPBna7xPHKSRgPxMk9PCdrdipKc2HSgevb4zf4nXyfD4H5+XWwOu/Am3sG1MnvE2JP0bQyl9wjJGSV1bWIArxn6wJDSYxboc6d1mB7lnAXbq5O3ncSTUCgrvI/CPuFktb5ZE4pGsoOWX111+tRTnV6/Dv2sZUldWpUrRAUSFiJrNdmcr+7nb7rZOsgaxP7ZDx/AqNsZdbf/1l9qg3MLf5e91Pc7/YD54UXWUe3+/P5WlZ87bfs/YDg//b0z5nvPEv8+9/ZKS3h6ixHZWDDslkoY2OWgWwEFbg0ui6gidJhkDNMG/26UBJIzfjSKPXAPG3grFM+coCsLKaUavjo0JSU4xQYKKrhdUsZZrwpNUV8qriAVppk8jwiwx4zRbMzLxElJhoyCxFjsILODSsJkiGaWKRTvdOaUlIgtYUMTQEjDZEmlEqi0tCi9DTwn/xvS6DFv43xQdQ/v3d+6YomJ4eE3CdnJeUH//Ut+CNULfxCvOJkOpVxSAxVqcsExw1nuzMO9RIORrG8dtciitk0EknwOaiq3sFHUi403+OpU3zApSDWCNX0QPEFZ4vITC0g2ShJSaTo0my2DEXJang/g7lT9jPtFWjXAzYdsIcJ3QjmBRVHUsJ7QiS6nFkrl9VItwO22dPE1u7jwsADDn5N9kSjsfTois8s9NZQE/p8huV9UJazkrrQXFl8JEnjL/0c/PSn9nfY/4vjgza/frveDSrCn/6Xz0nbG+oSi3sOCzZMT8u7YAoDjh0juU2OxIMJfEqkbGxFaA9ABhCMQRNN/j/23j3Y9i2r6/uMMef8rbVf59x77qUfl+4Gmkch0sirMCBipUO0TCTmQUlZYspgpYyUJmUsY2ks1IjRSkwFgla0lKoYk0o0lUQhwSckIj6igAICItC0qN1N38d57Mdav9+cY4z8MX5r73Nu96Vvw73dze6e1bfPOXuvvfZavzV+8/Ed34dTehBbmELoF4GepbE766FiEpIFM3JB3tCYR2AvKXG6sDmrmBu9BmXkYx24MpgjqEXRCOKhIpdOeVOuUMUKvQYRzmJAh9iAWUGWoG2DWGDjAlMwI5gGdQq+6W8IP371c1uTblttAZSDZ9YTB0G59s065KgJfICflojyVb/kbfzSNx1TJDdGKUwX+iojGzKQKGy1cO9s4tPeepc3PQ21C34JPnZc/PSezVN3mFrFi9P3wVhmxmKMYXR3rppyfzdzbsFVOHW64bDU1jIhT6CUkv5s82DMq5xrW9fNTrIjFhfwlBxqASRSBqh5Y+yu0rDcw6lNmYqsvm/pHZhga082hoOKo2val8chZVNWabVRI6WQf+y7X9kvC25ffZ2e3A30mN/7rX8EfDB2V9lpXhaqG8tuJqSzDGfsZzQMjYGZIfsOPti/dEEx2GyEFkbs9hSD7TNH6Fjow9ldzJycHLGbd5gKtnR6n5kXOCGB84slGHN68Y0qbCS9PhxZ/QRzLXGUMKebp/n7zkGCYUFrjk8tQV3JUCC3Q+phrvFOHkRsjf02Ty9SiUjfLCBWABgBH54/D9dpUH742ZD1dcnKxIrr7rgDL7344Hqf/qGYWbettuCwNuZe9YMNlcPj4N4k/MEvrewZWFkPWVJoUqir3UemlzvNNxyZ0LedysReBkMXJhXKqEiBPg/KUGLecnR3XtO/lHDn6MEpy909R61ko1wmRlxSSiXCcbacPn2Xy4eXUIyNCu1iz4gtfgpLWdhqrCzPI+a+p9Ut28mwOf3dujRGOUeWLX3ZwVQZoZQQphZcDkcChlTwYGjHdyU9D0UJMWaMiIZe7vEx8Se+f/AvdwOJ9Gd7/KoGCbZeHzRfNm5bfX1UPLNeNr7oM5/mt3/Vp/LUJhg2uHpg1GNFZRA9JffNAtToJsQeYgJ8UCVVRWM2tpOkZXsEiw3icnB0NtFKel62qMySCamZTqcIQaUwrgbb05ZNHSlYFPbDOH9k3DktHDVlF8EoihZlbxO/+8/80Gt6HW5bbQG0ugkkkHbCJz+3WdUocc0eKmSjwzzTl4vqdYhSWf9USSVCXfdunh1jjjZ6vb4sl4OT00aV4HJnLAucnRRaSTN4VWdYnhc0HBu5TuUhNla/YtYmTayvUR5jg+VrEFa7E3JNZSUJ+bp/tIAxPPf4kRJwjxuvyENTwj3Xx+H5Hn1t5Pi6FF43hdZrEKxnmpXRdnDRCg772QPIl4v21dXCgdN1kHP2Mb+q+qqvxQf/0Ri1Fn5y77xw94Q3bi+Z7w/6G0DHjG8L4yJQXQDDZiGuFD2fED8lThZ2fs7QRtEdcVKJOmgnwa4IxiMmlG6KDkPMiM1pbtRKoy8zziBUabXiFzvsTNL42iYWn3MJXzfSZWxZKll1c1An2FOBkSeMqRDmLNNaMQVaDMqKaC4RLJ4HytFGGtwzsrg0u5O1wVYK3/I9go0PNND/xLgZT5rP5e1VAXHnL/3QGb/2ixTEcBYYE7BQtMCYmG2gchfb7rm6Oif0FD2+op5VNhRm60z1DJFMz2m1YIsQCrabKVvhiLt0X9jqxGIzosoUWyL2DFdClEm3mA7UFW8pQ9SyXZexieEBl7Dpzm4TxItC5wpqwXAmnwgxUGHpS+qmZaL3K8bUwGH4Be7pmTJCISroJeyUXTUm3VBlsPOOmNMIFpkYxxfszwtHm4b5Do8tFeFYOn/3n5/y93/ifZ/gA36I4RF8w3fu+MZf+SxaX0ofIF0lgrpKCUf6xbgVpGVnxrYZfmEtu26LJ9Ok7gvWHel5/09FYRNsBHoJmAoMy8f66he3LkTzRaWcB7utY1ujvDm7KINVOhMpxSqWaYalJdvGQnEf7K/gzrMlzZ7d6GJgIJ4gw6JBGcIUjrWUXRiBNNao8WR0/dh7nuXHr174aH80H1PjwL6SiKSTJ/3qcITOrcG6bLx8ex/hfPsP/DO+4x83fv87PwPIrplpoF0yQTUEzOkE57vgn/3MBZRT3njqyDBiWzl+65ZxcUmPRqtOKUGfDJ2SxdKKsH+x0wWUzrQIfQ+1BGU6Sr8iz9c6xNHiuAVVhS4weqfWSlhFK0yegS4e6cdWI7Co9N0Ag93o1KYoSinJthquKbwN6Gs4hYfTAY1MRayrLCDZPMYshSLJCvw/fvCnP8Kf7MfACCB2/K0XBl/xVKAoIzIluqwSJnPBhq2daU8T/9Vk3c3Znk7YI+P4SFEpbI4rY1l4/l+cc+8NJ1RdkCYsu4V23Nhfzdg8qFPFLfcwtkB1Q04qZs7SPQENPTD6AnehaiYsPnjQqepICU7uNGaE2Bt1qiyrYbtmaO+1HOKQAEXAEFDPw4CtK6qFIHITspPAcB4ODk9ySLLKjbYQ8fjWfb0fY5VrPOEt8nG8GsoroCuHb69z11iCcezoEOikB2cISGFIT46BHiExEBO6VnoIwwdaKkqForzxLU/x3nc9Qu47cScDIbb37vLopXMiFo7aFnRGN1P6OjJA93iU1TttpjZn96jTpBKlsAzB72zAduiDM9rTxvDBtGl03VOiYl3otTLGVUptayB+xACEKX3lMMKdR8UQV6pO4IXgEdgx25r2I8bEbr+nbCo2B8um8K7zE95zldLCA3viIN90Z5Ua5YVWudnjfuIc8PqN7/vx+0j9NC72ME0T9WhhaAETGgNVYW9Gi4rEwJuvYU2Rkm1VRDRVDsUgMl33MgrHrnQM14oWY+6N1iojjMrqGY0xHSvz+YKfTjSMfSilKqdPOecX6R1YtoqqMpvye15jIOvWjnXdiJ7nG9cDFzdHNkcyEKSUA9iTu7XDquABMQKqXMvwm8oKOK9A01Fld+mcninbbWH0weWFcXRUOD5R+rJ625b0fjYXSj2QYLJhKeEpK1zXrkPwiKri5Jp28H8kkmUcK0Aloav5wsrDWsG6Q+OG9Wu+vufRc23VuoJeHPaeNxL95FrlDnW1wQK/5nmtV3A1JIuVBxaw749tYuMm3fDVjo95mSHAZjr5gK+NMYN1/qu/fcW7nr+LPiMcycTeIK7Sj6HPPeOmjxWfBvGGheVN9+lPXzC/scCdIN4k9DrSW4SK90KLZLLMAzwKroVlWQg3BgujN0Zs0jTeFtxJ2ucM+9iz9IINYV5gWYJzZpYeLL4Qm0TXqw5KD7wI9bIxV6eHYpGyye6r5E0Km6JU0iMiBGYZaf5UEq23JlCf5r/8q41//P70aHilBezj2Qj+5eM6BvWx7eZ3/KPn+Zs/vBDWsHGU1ys2uBfGTukXlbGf6b1jp1DaQ4pPxPnE7mpC44gYgx47WAp+NXG5pOxiccV2E26NasK8V6wUqh2zj85wxfQEK8YcQpOGiFDjOGsnVpmMK8tDmMaei3aFM2F3Bl4qQwY2jG4LQcdGZFqmgkenyhmghDijgHtJUCL2iAm4smzIcAQHjVyMJya8bPHiREzUU9itLK0usJcF9caf/7s/Q/yCmFU++mM3Br/7L7/I5dVRdkJUoOQiFAShUKtSMFBnltUQfl0cMqJ+ZYEeOXImtHuBPBPEM4Y3uHwQzP9CmV8Ae39j/Exh93wgV4X9Q2H5qYq3QN7syD2jbUBWaRZumGTHRj3YezLFzB1xz8MoUHthboPhhgRMItcynUp2eZAE5oi0lSwFpATShKkJ/+Q9T/PHv++lj+bH8TE9cpN04OvJSiPn4Om5bhNePuevtHfrfMPf+BGsDyZR1CLlMOG0KClXVzjvnZ958YIfe/d93vuScQkMNbw5fnaEnhYuH1Xe//ygd8WLEqWyiHIF7KdgroVlW5BTRY4FsR2xn4nF6H0wD+NyZ1zM8KDDvAiXS+FiceYwrnpwvjcurwYXF4OHFwvPP+w8PJ853w/mMI6mxqRKLWuy3cqUccuI67KCDyrQUFwiLQkMwBkRIJW2bugMeNdLH3+eRkkiCr7nv/42PAbdLU1nyes6u7OYrYbnnqmCkbHvbsGkwqYWJPKaXi6D+8PZh3J8r/LgfQ85P3dQ5eJyRlbz/jpV3G8MdbdVUha4hv8kWzo9tjxARRFJ/67LS+f4VJjuTujJhh4ZTZ5R5YfNcjAsmSopsYCaqtSUCa6Al/ljhr2rLCSZfNk9do9VTsK1UjBuHOxSFn0t1yBj0lfQ68GDi4/Y5/gxPT4EjrJ+5DxA+AN/TfGpUluhhNCk47LHS8XE2bUrLCo+ClGN8D1lCgxjIwUZlRfff8XYDbjroJ0yBQ9f3KGbDa6FMcPSYNgOlyXTfDFKVNQmYm4sNnF27xl2YyHYIWWPWeDT0yxn9ykvFRjHdI4IqcAGK8bie6JssW3BJNn5EgZV8SlZ++4FnY+INXiiL4+wDk2EKAvhjshANYjulCb88HvO+J++70UgrgMJ4IYpkZc5bg7V6/cPQNYn9vyv3whVHi1OV5Ct0gqAMAQ8ajLfJc95jUKjMNVMNwRHpsBCCSrEgoZy56xy/nDJEAQb9C54GN16NmhiYKKIFWaDvq0sjwb7KJQWq0y1cHRaQZ3dpTC68Hv/hx97BY7kJ8YHjGsgJ/iZF/sK6BzcpQ6U0psUwOx55MHnxlQ9AS9bmUy6ItAHNj1EhjqJcXmRJiEnJ5XaYL83Hj4YHAiIbsEy8vxnJLvYXZKNxY2s8NBoyf/l+YCDxI8bux3kYFCfb+CQgn7DoLoBpg7aeRuBVg6mYPDYYzPZ8MDFugHWrjl765p6MxMdvCYzcAoJvC+Hp71+zIcDw/8ClhnmKAimhV/3qcd83tsvaV2JUQgWvCjVA78MagWmDR4zoLgKEkrIwAlaZIc52AALQnBkEzvZY54dYF2hWZ0qew1kZ5yULfswagWXQR+S0poIalNcg81yj1IfMNzy965FLlKIS2F/PCOitCXQFnQtMBSdBrp2Eqsqi48E2lq+XhpIg+P2LL/nL77IA6v4GLwSrfvVjNtIGf1Q9dXkpqtaAdeJ3/3Vn8WnbB+g+xmrE1o6VQtRZqrU9RC5oQ2DtqNyTMyDGMqpGF0EtUhPoVrwcPayZ1MqVSZk9XCRfcOAsin4sVBqpoJp7ahWCrp6jZyjckIphdg39OKc/VlhI4aWDUWd88t9RpWfNFQ3KXcsANk1Z3Tiak9sTtjFjO5O2V+9hB85xIbQK4o3lugUGrEEVjrTGm2/FOPRgMBSrjMKYYb7xFQnvumvPOLd5/ufdQN72+rrtaK7/4dffMpnv/kKGcIg8OHrQiewBLJV6giWEkyhqDs+KbHqtybNhUk1mV2Tg5bUw9vzgrwp8AHrHoo+FCk550l11CoyLJkuSb4gSPP2vrIR5tmZ6mqerNlpoirxktPOQFzzqCdGeugksLAQ1FmQlv4oebpM8+4jVf7XHzjlr/7zh8TPc6d122oLXrm+rg8q+Y8n7rlXuggiwhvunPJbP/+NyFSwyHVFcLodQAxHpXJaKmfbDScnlWefUvQl5eieMT+csS7oNiVh9x8ozy97duEMhMWC4U4rFV292bobJYIxYOngkaEssgJOKXFeAYwIVFPy3aoioYiC+GDxABOmdQ01T6ZaBiKsxqRVaOppNh8ZCCNW6NcHQUEZGAUn5bIvXCz8ue/9qQ/5Wdy2+jrU1snxXf6jP/mH2c4d80ExJ/qC9fQussXwMSNmmBlTOPvdFVuBGs7lS5dszib6GIQHJZziA5/3lIuFeRZ8Co6k4EdKjIFoMrBk19EiPOx2DUyGJQBuK+1ktw+iGzEG7aRA0QyX4BAdTgLva3e4W1APUu3II4iFJIgZ0FfayuiWgT2rcT3hhGQjYZin35/edIoj1lo9gMTu65FE1s51yrUv9sb+4iEHucSrMX+/bbUFWV8HePFxYOVw5tDH3nHKdoQThD/wq86oXDG6Em21NvBjbLqiCmwfgt6dUJmI2ENfoNYjAAAgAElEQVTJ1EOJAjLovlBDV99ZQ3VCmqGulHNDTjeoOMRMKxNNlZ0axQZoAy/rnnthe3aX/f4KW4JpOiZMEGa2F4WxLdx57g67qz37sWc6ucP+4aNVglMwn1Ep9BEUc1wLYs6I9Bh1LSyxy9RiJpyFGhuGzth8QlTnz/6DK37w/kwJrplXfn1ND4D0TZP68fPc49f6ttXXx4LMEOBbf++XcHl/4eyscSROvxzoVuhmnMhgGZkAW13BBr4zdBII4dKMSQc9KrgxFZi7ID6wXaUdDxiBTBUTZUZpYmgIgVEs0Dql1Q2w3zXaWa7raNCjUiLo7vynf/ZdjPHyzMvXZty22oJVZngYAm/7lGfwdS3RtSErkemERy39EWWlmQqJ91z7TknaKZhl45ZIVjoCZsG2CvurbBqdnmjumWfnah+0CaZJMQ/mJdi0bChzYB2vQNrhucxzn7WSnVZwKqWGoCkJjJsmqEfu5/uIBLPiZXMIK0Mr/AbMO8iZ1zNCBqrGdTPncYmgcwOKedx8bb0y655T2M+Ojyd9cmNlm71ameEveDDr8aFl4g/9cpCLBdHCKM5G4KorkztKwdQRaywG2ztOWNI2pQR1LymdCCi1wB4WAzsysEoJo1fhKIJ9dXw0qhjRVoSyQ+gRsy8Zcx+DqqB2gpRB1z0yTonucDQwW2i1YgrR08A2WOh7SYPaKYiRYMaEMrfBhCJbKFXYNPiR9z7Ft/zN+7xaAGvaTCzz8orfv40T04dTX1u5oU4+tSn8sd/wDEhS2o1BiULTgrhRrBFqSKtE7BCZAKF0Y5qUOSZcHlL1CHQhvFLEAKFqJWoQ1hFPH5m6G0gHQimjsbTCpjk2CSoNLh3Gkqai2x1Go5SGhmJ+iV1s0a3RtjCH4iUnDAWqTsScVGaZnMt5EGPP1YsT/tSM+BblMlM5y4L7TPGjdJ+ZKkM63sHd0qg8Npg5xZV337/HH/+un0ZGrEaErzxuW329lpuqz3564uu/PLjSDg6tgw0hsqWThu0eVFk3qh5oy4P9wWRUVzPHqSrmzmYUbIE4TdaUBWwOi5Cs/lw9pYN40KqgS0CBJYRJgjlyQTKFrafseQZEG/6+SnvjzDCniCBjpTqXfB2tpvxRRejq6eHWICpc9rv8vm97xMIHc1f78Mdtqy14dfWl15uHD/32D4ceEeUb3vl2REpuMNbiKIB1w4peU9kbsPHC6WnlWCqYcXFldBWog06wW1I6ijhVC6KSSacjJaRVSjITIjAz9gbugponbUY9WUGayTaHzmU5HNgQSiQbJs1MU0o/kDR2lpp+ERglhDClk/HSVaHWlET2KGCeXVTJRLv/5rt/7FV9Fretvl6ptj7ls97Ov/ebfyNTScBpjM5YFqp31AxxI/rA3DEfyFVHam7YwzoNGH1BwznSRp93zA+v2O+CqVX0tOEu+O6K05PK5X5hiDCPTJlcrgzvCTduj5VLO6S2pdfV4ZCuArMHYUGtytzTzH8qMA+oejDuPXSq4aon66z3NPc25wbkOvwewEdcg16y7pF7XO/KOUSXp8eS4pbstUc7Y7l4CHC9rd8vHzpY4LbVFnxwMOuJ7x/+L27+XTW78d/wK+/x939y5jvfdUEN5Y/+a1usGDKUaZwSZ+cQYItC2yJcpofNyIagrQzCTqZ7K0I1J+5vkDtKmXoe7ULZVGHEkqbqfgfVHd62DIQjGUQoFoOiE0WmDG2xhegTzXe0InlvyCk6tixFWBTwzswRxAtgGyaf8brBLRhVuWBgNdbkcoCZahtks+f+/mm+4bveR3Wny8p88JsLd8P8uLm+j3GygCcPpbetvj5WwCyA3/E17+DzP3OimeNDsDFA5XoeLOG0NS12MVL94HPaQpTCcDhSoylcDmfyoFMwMSapCIOrpTA1wRRqGDOa4XQCUVrK9ifBRt4T7aStwUDKb/8zP5wpsK/TuG21BQlm3SQJBidveIanj1hBpKCuDWcEainXN6euN2YRKBLUkiFPYU4pmqxmssnrHhRNoKmIMAx8dmoRzs4qfRj3H9q1P97RkRCaN73FDUFKNQ3gxYPuXEvj1/Dzm731EyBWrk4eZCDeQfHH6gl5rbNMkEwOOkU/gF43qccHxUB4/sxBIHgTWpSPza1nXDOoDxW5DOj7zstZECtG9/EJZgmw2RR+8xdMPLddkDmgVeYrp6EQI7cgOyFOwGbJw5sKBWdqhaLGvA+mUinZ++MiCoU07fOSiUxjBvGKTY62oMlgQfFxBytXYOkJUetYGT9TGiFvA7D0LQlHVDFdjyHDcEngQcIJ7YQWKhmrakeBGsQZaNvwF7/viO/+JxdEvHbJX7dxYvpw62v7GOL9u37lJ/Ppb7mk6jE+0kS9WKAy0ZgZbDCucIQixsRR+gtFJrMNN0I2UA0ZM7UoEQWko3qE6A4fFQ9hk97/jFiopaCXhRJQrbKXTqjTK0zbLRY7ShFibNAaQGF5NKPHQS0tDZAjkLohYskD4pydmjju9GXD3A2731lOl5xoPE29hzdMoAYYe7xPSB3M0fE0aQOEmUssTvjP//w5ZmuW3ifArJ/XOBX4Xe98lpPjFwhLwIpIsEpIBsE0YFQQzzh5aemjJYVVTpoAwqYHPIS4V9CSS5qNZB+2CHq2w+kudHe2NUHayXMh7JY+OlY8f04SWBsiWA/isjIP4+heJChih4S99TS5SU8uG6BTgmFaBSnBT77nHt/8/z1kDvuwqMQ/27httQUfXn1dHxxJBpJf07o/EOaSVa/yGffu8LVf+BwSwVSFGM68BKVEgozrAV9GME2FWhSWNW68g9VK0Z6+RTjRC9NmBUpDKZrm7Uiy/BBhsUzP655MllIUCyNs3eqtDOiiufnKQ2e+G1WhRUoDqxgRadp8AOksgqaORr5/C+VqTbUTySREIQhRqgrf+89f5K//+Pte1fW9bfX1amrrrZ/+Kfw7v/GrGTYo63/i4KOzHwNGp9pgDBA6SlDcMTPcHfVsKNY+6LuZfrHgpVCLsLtaqLWxV+hLx7pR3Ch3K2aZxRQRLCN9SdyMUpRuNwbY2QV3egh9eMo5JLfKRVnXswR6XYVlMZaRe6+QTGN1zw24eXKsjJQ4DrvephOR9qaHWnayC772F67BrBdfvP/EnjwI5o9jMOuxv6fhsPvLHvMkkzRYg3lU0FgPWBo0nfhtX3HM24fTa6eeaPqcOTAVhs+0UNhP2NYYfUaKEL6w0S14ZURn86gRz8xUGhF7ilaKT+zoyRRTpWhH+xZXweoF280JPkDSBhqLhSnuMV8+okwJiB+dTSwsPP30CbvzHfsLpw1h3iSIt7jS6EQ9xZnZW6fuK61v2cdMCEy10dslf+8n7/J//ugLLFgyALkBruDmz+uvPR4OwsuPhIefuV319bEEZgH8il/ySfymr/pUvu4Pfy+/41e/jS95x9MMd7w7KkYZxgiBUKzPuBQqCzHSH84MNiwsCA2l+wxs6JJz3xg5T2lVqgIoPTTDEbSxjcIstkqptyy7hR+5L/yJv/TqGjU/n3Hbagug1SmeRNqVt3zK09nYiASqRg/a6jp+aL/lySgbbiopxZ977oG0yiqHz4TcA4OpXrMq13t68SQgbBJhmkewX3K1O9oqSFybueex7cZLtWdwKrG+RlHlEHxyDWwdAHBPOT4rGJbwUj4+7SnWs4TK+pyxrrs3oJVEWjoJ8oTkOd+dXIenpIw/KWU3YsOcty4Ppu+vcEd/XIJZj493vqXxqz5dqPNgDqH3tYB2jbEVvArFZjbaKNVoXTJW1RYmFPVg9jy4RUiyIUpBp4W5T8iuYycB8wm+2XNUstPsgDeBrogY7IJilWkrLGUkzXiCjU64dESULoKYQRVUDV29HLSuCOzqL1OqgASP2nN887e9wAv75RUXrw9xvV/RU+s2Tkw/1/o6FkUQfv2/+mZ+xdsDGMRoyeSTDnEEpRNDEE3AVE2RtiPQRL+1ZvJWFSrpKyUYpnuCO8AAbxidk+ZsOCJ0wUZkh6cI3gvmms9RBsrEplWG7/Mwx4J44DsoRxtEOl0NW6U2Of00tnaH2R8R06BHYyzB/kWjnF4yqGlCaU7URre1HSgds0pxwbcLo2cCUFjjQpVv+b/v8/6HkYEIrzwfXY/bVl+vx9wlwFd+2jHv/JwrWmR4gAaIBcUL3Y0ucCQlacPuSF0pvgrNBS1BGGwebBnPzPnEHuBr5HyLa//FUpS++mS5BxN5oBBNEK1LogdREkhYgGUo+/dVNs8tUCQB3pG/XwqIZ5R4bcJcYUhKGj0a3/q3Ct/34o7Ve/w1G7ettuDnXl+6bhgy2+/GnPPJJ88Nh4jw2W+8x9d+3ieBBU1WFgqwRKZu7XbO0WZNzhkVK06oUDFsaZQp6JHJq26ObnTdGkkC9BJIBy0pz8qNXKGvfUNVxT3ZMG5BQRHNHVtTuabLQzAVwVfEq4bAKntWDUYogpH+4Uq40MOh5P3zaK5sN9kRDeCPftePvOpretvq68Otrbd+2lv4d7/m34Rwxjy4mmdqBJswzh/OHJ0ow5zm6fkp1sGcYwm24iwj0yNLD3xboM/43riywDUQC0yTEegj08AyqclWs9nVIzRWA/og2amySp89AahpTV1FUroWZBPAA/ohnfBwcvC8R4ZFgl4rk2vunkeNg395BGbZJBiRc62t86VHAlsvvfSI8HTiPFzY+VVIDPPpb1dtwU19fTAJ3PVjgEO+VT6W6z8LB9mxJvNBlK949mm+6osMlZmpTOnpVgSlo6aMtqf6hghDYov7jOfHTBuCPirEU4WppiWDSkHUEQ3O3vhGXnzvi0jrbGsjBkRRomwQnyk20ctCLBVRpwwSaOhCOdpgKgQ7YklpNPuOTxUZCy4t2a5S1jQxYXGjyIAFZBR0GP/d9xvvfnjJiGwIwGro7jxxfR5nZh0aFwfZpsfNHv/w522rr481MAu4BioANlPhT3/9O2hiDAmmEBYbmCs9jJiXDD0BCkEfzhRpVTMsN2ZuljYhqowohFs2YWpBZA3FEKdIhkYVN5ZSMRW+9Ttf4h/+0/d/RN73bastgNYekxmuf9PtCc+9YYOsZIU+YKqsN2E2fpVV2bXK0xuweNAQ0NWXkVgZWlkvegD013u6CPiAWI0f25QEmouLgTu0jVL0ZtZ0z/UtIpvZNw3MG2b7WIGssWoMr6WPI9UZB0XN4YPsw9MKSW8892RlhB2YV4cmz4HAcJ0avPpjHfApj5s19PHfEitL6+py/lk+CaGP/S8sMOu1St14IghY4be844i33N1BFI6uIFrlwpf01opEMUtILpjNaHOwqcriymLOXApEapvHLFTfwJTSL5eOrNQ61ewQE4rHgkehheCb/OiKNaIu+KjQBlpXyl6krEsJmiZrwSTQUikBxKAcN2TbKX6PP/XXLvmB+/3xd/lhjVLKNYvmg43bODH9fBe+uwpzhT/4NW/nzZtz1DdJ+7aJTZkRJgq77ETHBq+2Rn9vCJkRNL1c3HLSEwMRRhwD54RPoIUaHfWGSnaVZ9LnaFw59XiHa0UoFDEiChoVxEBmin0SNj+gnDWGd/BjQmfCC6GOTDP18pTY7Ilo2BB6H+wuOnYyQcwQhklHZWKwJFhHGhjWosR+gaL07Yb/8XsG//BdL6Jx0Ey/OlD1ttXX67mpagq/6Qvu8rnPXTKKoR7UDksAKMVTSpEvhKQCr/0PPQc9FnSkMfemCN1infPWuF5R3Ndw3pIdnkIujk1y8dpEpu8EOVeqCBcjkPcewVvm/MzdKStbZipKbXk4LAWmWpnVEDnhT3734B+8f+awCL7WF+621Rb8/OtLHuNrPc7c+iC/ByRTb/7jf+VtvPF4wiWZD51g2RmlNkQG3Z2NVi4FGoHh7K+ETVWGQmtCI9gN4Xi6fiG4CL4EUSM5Dm4rMFDW1cwxACnUsJU1k4yuWvS6+6iiHHaAarGytHLtFfGVJbsyGla5YcZQO4SwN6f3oNXKN33Pj77qa3nb6uu1mLu+7Jd9IV/wjs/i8sVLZKOopmfWGCOBiDHQEM7UqBKIGVf3F2Tb2KvTzLiybNh5QO9jlYveyB9wVtlYbn7dc/2MtR4OHecQpS8DKYWinp5qEelzJDknLet8N5WMI5cIFgvCs258SeDz4PVhcdiUK7aCahFAZML0wUfr4dVguUx54c3E9uokhnD7ags+sL5eDrDcvOEbMEsfYyBBrkOKZILf+rNK8G9/zhnv/PSBFcHnCUoGpZgNggVj9aYdmh5DrRA7oZ0L8eweYoPGFSo1vSXFEFV8bPC2gBdEF8oErkpVw6wSXmiihBdkv6B3jglX5v0jzBpSFBtKqR31AV4xCYoLURT1E0z3dL3ExglwhegR/8v3BT/wnkeYxlqXUFfQdJDGzcIKZkU2tw4OSKqPG8HfzO+Ps7n8ltXXxyKY9cGGivKHvvYz+ORnjyjk/OPhNAt2i6Klczw5u16ZhrFTaJE+kwzwKmxisI+GlGBxWX22JkKFLZ5hLlQc4X/73gd81z9470f0Pd7GuetJZtYBYYdyfMpzzzbCEhRq5aYM9ZpzlGBVWecuLL1sXdaUQUk5ta/7avP0eMx5cd3axAqU71NmWFphswn2S3B55TgwTTkX1qL04IAYZdMvY3VzPhXBcIYfGpyrHHIFnuzwOtbJYvRY58TDOhgrQ/5gbr+CaHDd7Fl/9QpsfQAOeB32cmB0ra+Uy8v+5IT/xE/m4z5umVmi8oQ+uDHx9GnwW99R2ZY9QaWYsxNosyEoxaBQYANlGTQFutK3wn4YSkX7liF7ytZoQEG5EABL+UQpaQA+KbULHSHKwL3QpsAuC3I00JYdaLYwXQnRgoXsaCuGbCBcaAVkEkaDUya+/fvP+CvvvqLb2ul7nT622zgxvVb1dSaN//brPpk7Lsxi62Y6AQUJaEUw73noKmWldypVjFoUGTAoFF0IcdAtEjMlNgwWqtf0hCmKyR4fjXkuTAOWY6OVxog9VZ1lmTkrz+JygURluRrocaW4ExUW9hANlcoYRi3HxBKUk8EwYb5yCENVuRgLUfaIJDSS3JxBSMV8xqKg4rges5mD3/8dD7j/KDAZH0Bz/1DjttXX672pKgXe1Bpf9yV3uffUC0yRhuzRU3JchExADEVF8fM05p62gVVBzoU4iRVsWqVnErSqmPm6oHENcklEmt+u6SviQiWTkgZBCWF/WeljUO+CyWpwKUJZu0FaBStBGcrRRvnL/+SYv/Cjj1hc8PAPKUX9uY7bVlvw2tXXDZR1+Psr/kIEONlM/M4vfRvbVlAPzq+CzTbp5t0drEBzlkh21Pm5sD0WqgVMmqmnZixWONpmezCi4LHQEMLzgNZEmD0wJKVqNRl9cnA3xVnMUU8GhQpMWpK9IyulPYIqmsC65OFOxHPDKTBM142ZpJ/WGkb9j977iL/6Y69+43/b6uu1nru+5As+l8//vE9l7iRjrxuN9CRlOFUc8aD0ji3C0pwqCmJc9jUllWAfgZknw2+tx2smCikrTAAKRjiyrrOBp2xCkulnscpkSZZqJzJZLLJbXuQmtXAYWIcons0nWaWFlp12j9U4Xlj3l5k2bQH74Tx8aU1ijZtt+KuVGMLtqy14ZTDrMA5ef48/6ImLcDNlXbOODgyGYwSZhK//0k/irXcv2HtwLAExMfdOFLAy2NRGsUhwdXcMl47c6zQpKP3wQvLViBMMBltkCkoLtl4ziICBUtnJzGaaWPbG0b7RT/fU0xPGuTIvF+jY4O0CjZNkcJHJ5TsTRCqiM26g0xESxt/5F2f8X//wPQxPBs8h0OCaw7C+70PD8Bq4euzaPP64WI/gPPZv+ASY9VEfInzdV76dX/6OU/bDk7FlwOKUqgx3jinsWcAyomSEo1FRtTw3EHluCOikz+Q2NpgWdi78Z3/6B18BGHh9x22cu1rdBJIAjMi6SV7f5bOf/DTbiHWfERTkOgH3Zr5KVhQRxMjG7qroQyStPoIMJZFISeDhphZkBbRy/VIVRs8bu26UMWA/243cWAXRDFSSACmRzPXw64khSJk83DCpRl/l+3FgJ+fcIpKqDJ6YU+KaAXqQ+N+AV4/LF2N9XTeA1eH7EVyvjwHs9rYG1vEB89nhNQu3EMz6cJlbTz4+d7i/+KzyH3xuZxdB6VmAowfHDXbdoaScavgRk13SJ7DhMFd0G0y1EexQlI0W3GFuA/eGiBEitCLQnR1OU81OXnWmlya419kPx6PRNp5Siup5eCyWxraa0Gw9BpkKMT/L7/zfXyTiIMh4fcdtnJhey4Xvrk58/a95jl/8hguGbWhS8djR9Ah1Z4gnAmEOuqR3S1lobDM5wpVSZzYIszpFjglzwneINMSSHaOT8OhqZtINtRv7bSFil0kSpIfb5I1aC2YL84WyOVnTu4pCNLAt6HluonB8fwxHC8NgXvZs6sTV2NGvBrEt1Dh0uAtNKiEdC2NPRwGLe3zL/3PJu97zMBF/v5EIvNoLfNvq6yO1qSoCX/1ZJ3z5ZxdGPMpFB2Ez8sAfHaYGnVyIlEKEU2YYNbImDileLThywSIX3CGCjaDWRLXWdGliwCQZM62egBYWLA8acdzhGEIzYMAE1KFpJKFvrxzXM37Lt51zNYIhgb/OE9htqy147etLfnYo6+W/G1XlN37+W3jrZsvmRKiSc8zoigJdDCjI6DzaVe6egVka20bAYOBW0i9ClfR3jNykO4iuBqcCRsHcV4N3WTd/nsk5pN+OAEfFEQoD6BKZYkYGEJCvJhsK17KP3JRe7gfbjdAk2Rrf+P++elYW3L76ej3nrl/2xZ/D53zaczSVNRmw0wqM4RyFI1cGU6EWT88+nG5Od9iZU8KxCCpp0H7NMlnZUJ2U/YmkvDAjypNllaa6MEwYFkwlgbIxoE3CfjhYAvA9tReYOKqwjIM8I+iRP38IzrgJN8maHOYMd55//sFhMXxiQ/5qUgwP47bVFrw29XVgIj0uPzykTg9RSjhPtYnf96uOM21cF8ZVULaCRYPoyDDMofQKjwKeHekRGIXQhLZFJmauONls6YvRJ9jE05R6TphQNdi1oPkEbNA4564UrpaClMr5fEktR5j1LIFNZfRzwhq1VBoT4QsWipfBo/ku3/ydz3MRtjIfFMdvmH/knAhrU0lu/v2Ed9ahEfWy6nn8qCQC5rervn7BgVnrEIHf8K+/nS/7RSfZ+LMERboN7qiw95xvdq7MO6NM6ecsZU3/RZmRtBVR4Z++L/hzf/3dXFzuP2rv6TbOXQlmrWzQxxlaEgiV5567Q1klhoVki1dJaV42XlIhEQ64U2sysQ7MUoS09VgxsiIpWVeR6zkvCLwH06SICH2f89gh9TkiqBUWE3z16xDSV1Q0riX2Bzl+P0gRV2bV9Tzy2H/X84kelB4rkL6uwcgNo+wadI8bZq2/7Lmvnz/yDR9+v7tydTV/UBDr5qfym30stwvMeq3GicC/9Zl3ecfTl8k28cB6RWomDrSidBci0ndjmVM2gwptTbSbmOibgBjEKMziSfdUwS4LcQqtOL2XTPMqHX9Rqc8MZncqijahVMdFCYGN5iHUGuhk7K/eyJ/9nvv800cQ8crpgz/b+LlIN2/jxPR61NcXvu2E3/aV92iyB6vUckLEOUOUUE85KimtyEll4HGMsyAymEqh2yCi4ZLwVKL/SyZb7DteAh33CHtA3wZIptVZ31DKzEaO8eiwD8q2AAuDDXVTkTFwLEEKqXgtlH1llktG36KbidD3s/QtV5dGPRo00fTZcoMoWMn8VY/KTzy6x5/+jp9iP4zDtMm6uFq8epTittXXR3LuKpJJql/61jv82i+8ZJgnawq5Tp6TWL0bgIpgj4JxBkSavgfp5xGrNDDKChyYsyrNKAFa5CY9yZMtSPgaEa4MHKu54CmBTBCec+Wj86f57//eBT/xIDD6uiy9NjLyn23cttqC17e+dPU+EPjgnlr5+4Gsva/9vLfxmc8mgO4O2oVeYB8Dc4F5sOjEnU16CC2joNOBVj4YVtk0rmU0ualL83YJmF3S+0oguTY3ncA1AiVdKQa5kWTt/Mnh3SRzLHn0A4lKsG6gPAgVwp0QRUX4Ix+GXxbcvvr6SM1dUy38+l/z5ZkiGcEWp3Tw2bJLvREI42IERsr3xrojrnkQT1aoCN4dV2G4MywDdNwtJYJrezjIpqITjCU//1Iy3bVHoLEa4ho0cUbJNEKLYIz8vhToI7926DQf/u5kguLizvvf/5DrAJ4nNvCvnpUFt6+24EMzsx5nE8GTjKLDxHSQHWZAzeHglydAj6BG7psrwltOKv/Jv3GCX83pUeUjbT1khqjpyPBSw5/ZUTRoYahsGBhIShZjFLQ6JU7YPrtl/+ARgVOlER54K9gwWm20JXAZiAizpAxVEHoslGhQwBaobUA0RJ0H+zP+wvc/5F0v7lOhsb5VK1wzAA/X5GD8fgCzDuYgj1+vm7jI66/cXL/HrvMnwKyPvXF21Ph1X/kpfPGnnaLaqR4IDffBHMH9B53TE6WWSpgSOggR3v2g8+1/+wE/8dPPf7TfAnA7565WN0/M5i+fmN70lqfZ1NxXCCQBgbgGoq4pSIAYlBpr43+9S8OzMbiCZZNmEiFxE2ASnnuhVvKe7z1TBX21C7m+1TX5Ex5cB5eYP5lvHWT6rur6bzns7eKaNZXLZ2Ah16x20WS0ywpSHTwlb/ZlqwH9Y03Dw9ycb15uGFskkEXA+eX4oA2gDzZuHTPr5/X8rJP+AXYkt74nG+FrfvFdPuPuHrOZGCCj4N0QQIagk+AaNGtY6QdGMphi0dG6QbRCOGY7NlNhZ5ZMCJQoBVFDngfe4ERVVJ2prLBsST8lLfDTLzzD//yPXuL954WIV4+0v1Z+Y3A7J6bXs77+/S95jq/83EHIRI0Z04kgWU0yglIKEns25TiNiL1iLFQEL8KwTlEhYYlBzBu2bU+TI+Y4J64mlq0hWlt59CIAACAASURBVBMxL53wVXaD43uFAm1TUHmIxSnIhPjAYqBlm5TXCv7wmKEPGU0YRYm4wkbguw0eM3rkuG4I26OyJUJ50IX/4i88z3BBxFcDwJ/7uG319ZHeVBVyLptQpMCXveWYX/2LCpuTR0hIMqjIJJLiwrJAnXJRWnqwbWscr6cOfiOgLswjzY1F08TSI6WJKoqub9EssB1Md8BF2Xdhe2xM0vipB6f8qb9zwb/cNQrz6kHzkV1bblttwUeuvpQPcenkMUaXwLNHx/zmL3iOs6OGE7hkYqB7MO82PHU2ENEEJ5aBSKPUYAlYOtSW67JiVBpL+LWB7hJGXcMNrs1EXRga6NpqnCQ3d1ShiGByOM/lGq9yYNJkJLojtMjXIwy+8bt+/MO+Rretvj6aB8KvfecvZbtN9mi9XGAEXpVehL0bLoK5p3Fuhb4Y6uBF1gbLodMch8N6dpBF6COYSiTTr9saI57Au3msLFOQkkzpQyphhCfbawU8u8eacLimPa3Pk4a7xnve9+INPQY49LcPF/UTYJbE42DUy+Xla6MfuHmMCB/A4D2kcymsMuF44oqLrEyE1b+lqPLmpwpf/dnHvPleJ3zBTUGV9t4j+KRLIiZqDSQc0zXVSwIJpbRghOHiEGe04z3RGxHOtuhq8t/wq8A2AjLj3gBJHysZbGVB6zG+n3jXS4Vv/6EXePf/z967B1ueZXWdn7X2/p1zH/morEc3/aS7+kFD89KxmWZasBHwBcgMxIyE2OBrJBz1D52J0JggnJExVEYZUXRQRggFERXQsBGDUUFeoTL0MDTdTUPzappu+llVnZn3cc7vt/da88fav3tPZmVWZ1Xlzax7an8isirvyd8995zfWXc/vvu71jqqbaNKq0XYUvstUvvnDmVR56Y5Hzb3hD6nJ8UGVmbBC3DmYvlxgbZN73yjuph1HrmDnf5zgG0cu0LMunlsn4nHHnnZFfZalz+xcARDiFoOIQC1g7ukpwKPELUAs4SAZO17zaLO5zzWCe05PZonjdPs0DsVt1KO8dLbH5Eo8xHLpDgAmoWquWnJPGbW2XNmdjJHmsfYau2AsVprgqItG7uNU9F0pc3FxM9GZnFrvnOnc6Fv/DleO2U9bsoxT1p9bkpxXcx6GmjKvGIn8Yf/CyHZyFiNhSxZUili+BgTDwpiCTNjiWLLgrRaHqsJdOmRwgAUbYtzlJoqi6tKejgsWGOd2MnhapnSPj/3K8r3/Nz1VjT8ft6J7RyY7kV8/a9f+XpefeXxaElv4XYREgtJJKI9bzXDJApqZxVEE0h04nKbKKslw87EUqJj4HRcMDFMJkgZ02OUBW6K+AKpFRsh7SRSLhiG2kT0uGxF5Yn+GcqSemzYYsWIUyVcVy6FaSWwFtJeCadNXXCghX/0o5V3/uY1vMRA5nJau+GZsm3xdb/GrkQsYLM4VYRPubLL73008WkvEjxdp0hMpnYMdSdOeFJtjoSWTp9QNBk658qneFznD1tiYo5i8MJUFqzGNbsPRHzbtQf40Q8L3/uujzPVmC5rq9h8NwX2O2XbYgvubXzNo9atuaG1Smwg2+7z4b0d/tQbX0Zq1xwdF4adzFKii+IkICasJ5CkaC6MYyt0KtER0UwxjZpqSGoOQ0CUWiuqRvUUhd3b6Z5QYEqoJkiGqbKg4K4UFUTbVq8FfQJMKsfF+Rs/9p6nfX+2Lb7u97pr5g//jt/CQh1bRXOLupMxqydCxyxc5SG6PBmx8C61nSsLrKcQ8D36iQOxgZjbjlus1DETdCnRRICouWVzEdsWV1bmemxxyj2fPFcjav6Z8+HrhengiQ1rTONkgd6dWSLRS3kWYjYLld/sytp8bPPxzevmrl/z8znhWpqvm59qoHUKax10f98nX+KNr1RkcR0+tsteGln4gjErnqHswuhHUJZkibXZKCNiyzB55hVW99FksW6fMiMFGR3ZGcmyx5pV0x4SSGGlj/BT71nzw+95nNEqBdjxRPF60qWwNRZjLskzp1vjzRGxIeptFnO/+et4703Mmu9Xu2fzLe01szpnxTaOXTc4s27WFOevVXnpSy+j8++d02poBdZ+CROhJkWnwdMug6nV5KoeNbbEaaaBkH3mIvIhEslJUyVpziirgM6iT/z+1+KUVvg95XiuOZPG/dRp7Kot88IxD/eyGVh7HbQxpXocIJ6O2xIif3u+UzFKWgF5b+99Ts5sTyaCu1HMOTwYb31fN76cjyyEnmb4jMnAK/bgc166x6e9sLKQiXVytCRUFPEoMlrEyQl2klKLUXYyOq4ZhnYiLKCptR4XJx0IFx+AVU5Y3eN73z7ycx8cWU1+MpttKpmbm8F7uTHcxoHpXsXXix9Y8Fe+8oUYOygF0RG1aBW/YAE6MXnBPYHAxIDIEdgeUtfR4dKFhS4QGamH4HtrRjfELuDe2oprZUA5vG7s7guWK+oF94ykAa9rYIkC2RVlZC2FfLSg7BieMisbcbcYQD3iO9UBFs4P/XLlh3/qoxxbRilMAorGoMezi8dti6/7NnZpTGrz5zAwTzTCFZwvee0Or3v5ggvLkeXuirFKdFVJcSpck7Lj0eFNRalUYo6Kz1xEcIkdwwJlIHH9iYs8IQPf9/brvOtqZTUVnIp6OGPwO6+ddhZsW2zB/YuvJzu1bnNK3AQpIcStF1zY5w985gvIZYcrFyqiwmRGOakFoVCFYaiMkzNVJQ3RREUJp8zE3NGnADni2iMFLbflIFZQUjQ0cGeswjJ7S42WE++GDMKgibEaPsWjf/mHn1564cy2xddzad018+jDD/BfPfoyJjQa4NCcKtWwlPFaqALTZCGQlhqbAxxLoQL4PD8JgFAsXFc4WA3xahjalkNaeqHBVI1BoNRwrRaLA4FiUXPLganCY4eF46uPxfdv3MHNm2lWmMpTtRy/kW2LLTgVs06/PnVgPen/8zV+0yjzCcwpN7e133R40R7fc+FYEkMyPuuhF/Aln3LEg0sn+4gkZVovWO1PYIKLsF/g2jCxYwtKNRYLi4YnWVhwkTIValWyV2xvzcAS88RH1pl/+vbr/MbHK8cV1CcGF1Zt8xoa6+mc7dxY6+pEzOLG+/Ok+9oOo57OL++2xddzcex6vrJtsQUbYpY059UN66HTQUuXO7zsk3aQdtiRtaVBtyYhs8vKq7f9XYgDSYwUS3LM43BaNswC5pDcGbK0gztnqkLKIZyZtTqOxRlye6E0Ebt6NNPRWG4llVaLL362ecyTs1OsWivFMOsPLu2M5rT+lXCa3uitmbRt1MpCOEnzj/VX/L1JIa2bIVw76V44i1zcJBQ2ZX+D7sy6y+wk+NOfs8uV3UoehGKKyZqMM4yw2nUUQcXJeYF7RUhcnwaODjI/+gsjP79yVkfrKGxrfrroeobcbrJ7NmzjwHSv4+sPfcEr+LxHC4NG/akhVbLvYnWNSXQGFBGKK+5CKYUhGZoh1V0mRhZmjFJwcYpHqqAwMUlFx4FpWqMykXcutELMzmJ+mzbF4s2VrAPZR45Xkca4WCqTOpPDVFcsfIcixyR2+dATD/I9P/FrvPfjc4yGjX3Dj8GzlSu2Lb6eK2PXfFNFoulE0th87aLI4Hzqlcxnv2iHlz4ycGlpXFhO7DgUgXUeEdMoZOmZw9WCaVI+fJR431XjZ3/pKr9cBqYSDQiktFP29s6fA1MIsH2xBfc/vu64YHwTtWKdF+PEMg/8rle/kM952R6TplOxUwQZM56NAWdVHRElDwpeo1aReNSaUGFAKTJhFvUlsTjVFI9OdWiIb9MEPkSdLJFK1HYIqSNLwRFWqxV//cd/9Rndi22Lr/sdW5+Il165zBte9ckM4kwen6QZTB4GGBdwDedx5KfFwry2zURSoZhTWuOA+aRYLDYROQtVQ+wqFvHkNdZltbalvcSJeK1RfPeJtXHtY61WzS3u3jw/Ph1XFmxfbMGT42tz3yIbD7Yu8m38OBV6Nte3uX1PITaHKq1Kh8XvfhVORSKFoTVIKS1Vx4k0RJWoCTkm4ZIIl/eXfP6LHuSFDzsPXphYWGGRruOiUQ/HE2jUiEQHaoVrZYfHDgvv+9iKt71v4okxUqAxw5NBAdMFwhh1rvzUSXa/fuG2Lb6e62PX84ltiy3YTDPkJOFtrs95o0TvvPTlVyIFrzm0lFNzCpy6R0O+iVEgrpPTtbM7SWNeqrQOh5zWBxQiFTqnGMOKtZIMo5GzMqQQt+YUQDOwySCBb9g1W1V7ChsOV9/oUNgunD/S5sGKFGg7rY8lp0/Znvf0bt34i9lSHnGuHRTw+gnFq1kAmzlXYlan0+l0Op1Op9PpdDqdTqdzJ+j9fgGdTqfT6XQ6nU6n0+l0Op3OndLFrE6n0+l0Op1Op9PpdDqdzrmhi1mdTqfT6XQ6nU6n0+l0Op1zQxezOp1Op9PpdDqdTqfT6XQ654YuZnU6nU6n0+l0Op1Op9PpdM4NXczqdDqdTqfT6XQ6nU6n0+mcG7qY1el0Op1Op9PpdDqdTqfTOTd0MavT6XQ6nU6n0+l0Op1Op3Nu6GJWp9PpdDqdTqfT6XQ6nU7n3NDFrE6n0+l0Op1Op9PpdDqdzrmhi1mdTqfT6XQ6nU6n0+l0Op1zQxezOp1Op9PpdDqdTqfT6XQ654YuZnU6nU6n0+l0Op1Op9PpdM4NXczqdDqdTqfT6XQ6nU6n0+mcG7qY1el0Op1Op9PpdDqdTqfTOTd0MavT6XQ6nU6n0+l0Op1Op3Nu6GJWp9PpdDqdTqfT6XQ6nU7n3NDFrE6n0+l0Op1Op9PpdDqdzrmhi1mdTqfT6XQ6nU6n0+l0Op1zQxezOp1Op9PpdDqdTqfT6XQ654YuZnU6nU6n0+l0Op1Op9PpdM4NXczqdDqdTqfT6XQ6nU6n0+mcG7qY1el0Op1Op9PpdDqdTqfTOTd0MavT6XQ6nU6n0+l0Op1Op3Nu6GJWp9PpdDqdTqfT6XQ6nU7n3NDFrE6n0+l0Op1Op9PpdDqdzrmhi1mdTqfT6XQ6nU6n0+l0Op1zQxezOp1Op9PpdDqdTqfT6XQ654YuZnU6nU6n0+l0Op1Op9PpdM4NXcy6Q0RkKSLfLiK/LiLXReRnReT3PsX1f1ZEPiQi10TkO0RkeS9fb+d8IiKvEZGViPzj2/y7iMg3ishj7c83iojc69fZOV+IyIMi8i9F5LCNYX/wNtf1+Oo8bXp8dc6KHlude0Ffe3XuJn3P2DlLenzdSBez7pwM/AbwO4DLwNcD/1xEXnHzhSLyu4G/AHwh8MnAo8BfulcvtHOu+bvATz/Fv/8J4L8GPgv4TODLgK+7B6+rc775u8AIvBD4auBbReT1t7iux1fnmdDjq3NW9Njq3Av62qtzN+l7xs5Z0uNrA3H3+/0azi0i8nPAX3L377/p8X8CvNfd/+f29RcC3+3un3QfXmbnnCAiXwV8BfDzwKvd/Q/d4pr/CPxDd/+29vUfA/57d3/jPX2xnXODiOwDTwCf7u7vaY99F/ABd/8LN13b46vztOjx1Tkremx17gV97dW5F/Q9Y+cseT7HV3dmPUNE5IXAa4F33eKfXw+8fePrtwMvFJGH7sVr65w/ROQS8A3An/sEl94qtm51St3pzLwWKPNmsHG7uOnx1Xm69PjqnBU9tjpnSl97de4Ffc/YOUue7/HVxaxngIgMwHcD/8jdf+EWl1wArm58Pf/94lm/ts655X8Dvt3d3/8JrrtVbF3otRs6T8EF4NpNj13l1uNRj6/O06XHV+es6LHVOWv62qtzpvQ9Y+cs6fEVOZedp4GIKPBdRA2HP32byw6ASxtfz3+/foYvrXNOEZHPBr4I+C13cPmtYuvAe75w5/bcHDO0r281HvX46jxdenx1zooeW50zo6+9OmdN3zN2zpIeX0F3Zj0N2gnMtxOFSL/S3afbXPouokjkzGcBH3b3x874JXbOJ28GXgG8T0Q+BPxPwFeKyM/c4tpbxdatbKWdzsx7gCwir9l47HZx0+Or83Tp8dU5K3psdc6SN9PXXp0zou8ZO2dJj69Tupj19PhW4FOBL3P346e47juBPyYinyYiDxBdBv7hPXh9nfPJtwGvAj67/fl7wA8Cv/sW134n8OdE5CUi8mLgf6THVucpcPdD4F8A3yAi+yLyJuDLidOcm+nx1Xla9PjqnBU9tjpnTF97dc6SvmfsnCU9vhpdzLpDROSTiTa8nw18SEQO2p+vFpGXt7+/HMDdfwj434H/ALwP+HXgf7lfr73z3Mbdj9z9Q/MfwhK6cvePisjnicjBxuV/H/gB4B3AO4mF19+/96+6c874H4Bd4CPA9wB/0t3f1eOrc5fo8dU5K3psdc6EvvbqnBV9z9g5S3p83Yj0dO9Op9PpdDqdTqfT6XQ6nc55oTuzOp1Op9PpdDqdTqfT6XQ654YuZnU6nU6n0+l0Op1Op9PpdM4NXczqdDqdTqfT6XQ6nU6n0+mcG7qY1el0Op1Op9PpdDqdTqfTOTfk+/0CAETkWVehf+ULLvIFn/YipgrJjJSEYmCaAAcBd8hJqBYq3uq4MFWoVSjFUMBxLF4VaZGo7qhAzsLuXqIguAECq9FwQFRJg6KiGDCZIElAFJJgJIrFzzcTwFm7YtVJy4wBLgIIjlDdqZpABBcgZQwBEX7xHR9l9es/82xv121xdzmzJ79P3I34erpc2Vf+4lc8THUjJyEBVRy3hOKYOKKZdXHUARdQoWplkRKalPXaqWo48X2ugrhRPVG98q3//CN8fA3tiqf9GgVp8W53/f3fjm2LrzOPLVHE4/N58Qv3+COPXuLi8sNYEhY4ok41QQSqOdljzBAcF8GToMdOuj4gD44cOmQEyU4FBNAKNQvDsTDtOGJgFvFRqpFUcTPSALXGWOUO2Z2qkCt4FtydQRLluCJVYAd+8kP7/MivHrMuFWtj8HzDVMDu4t3bttiC+zN2dW7NtsVXj63nDtsWW3C28fXlb34dS0AElglWJugImmFnmDhYZQRFx8o6ZYbBGJIBA2sxBgFVxxBSrdQpw1KoZnzvD7+b+dNwdwRp+wdHZONjco8XwOZDcY04uNz4+P1k2+IriTrEPZ6jzGNrxfxGjfbZAczXtTXITPuWk7/HX+IiEbnhc7v56028/VdFb7pG2tM5tB0mt1qrzy9ETl+giGBup+/hdkj71vZCNu9JPNTi1Dfe7/yU7iffKyKnr8xPb4W134GTl7bxvYhgsandKp5rc6MS62V1uKzw8mXi1ReUV+3AFWAxKDtMWDbEBFKs6zHwJIxTZjVMHNmS3ziq/MerxmMr4wkXCpDdMARrb1ucJ+0KE1BvfmEtJk7Cd+P/cMtIf9rc6dj1nOhm+GwD53WfdJnPePlDLIeEqqIaN14FqgrVAXeSC67zkCKsDgqShcXeAtQZ1x7fRGzazEK1Wq8rOCFIYTHIEH9ijFBcT94LDpT2d8mJlJS8k/FZrDKh4KzXjgyKqeKibQRK1GpYUgyN0UQFkxQDC/DOH/sl6sF7n80tuy3bNunBvR+Yfusrl7zlTRdJClUExFBXREEwzEIkjd28YGuHpWICmOBS0aSoVEpJuCjVYnKdXEluFBGqOaXAN3//RxhLxdsQMotUTzX5ztcAXcx6Fpx1bCmJ/Sz8/tdf5DMfvEpxWFgmaSHtGGWMpU5qd9UyyBp0ERPK2hx1YcnA+tCwC4VaAQdVEBVGd1xgWRRXp2THDHyCxRCvooyGDBE1yTJOxXOIZzpBFXBtEeUKK5DB8AzH4y7veH/mBz5wTJ0qJo57jMObk+NTxetTcbJ43bLYgufeour5TB+7OmfFtsUWnF18vfihfd70+pfgqqg7SUClkGpmdVyZKuxKZiWK7AiLtMJloJizSO0ALwmLIkyj4ktjB2ElRkqAJ64dXOPf/NQHYh21IRAYp0LD/LhvCB/a1v+bIti86b+fe61ti68TMYv47yz43CBuzdvq9tgNm23Z+IyeNjdu1W9Yt2yqY8/oeT/BN29cMotSJyLdfI0Tcejz3Wl3Yo7R9vqt7RGY76Tc+l7McT0LZSc/fF5zdjHrzNAh8wI3XnVB+coHhCtSuCzOcYXrC2GxdjQpU3bS6KwGGBxqEsbR8SXsacKOK2k//DVrzSSv7OOMJfGYLHnHY8ZbP7LmwB0TYTBnItbo1oaxJ+0Sb3OHNsWsp7jsjnneiFm/9RWP8JpPuhhuKxX2dweqhZtqqcJkhopQXEkam7SKkDBWh5W8SAw7StLmyxIheTgGVENEKPEFVYT1ZJhDLfHhStIYLERxEUpxvDqlSdhmIVoIynJXkZzRrBwdGVU8XFxZ8aQgGs9dHXIKEQ6w2HXimmLyFOHdP/vrTO//xbty/zfZtkkP7u3A9BVv2OdNn7JPqcYwhEPGPCHmIat7k5GSYK6owSQCVCTl+M23iiRhZ3CmUTER1qZUqyAJUMyN6oKIM2J82z/7IFcn3ThlapN7m+ifyrklCPXJmvuZsG3xdZaxNajyha/d44teckC1hJpBElyMgYytQRcFEAYVPLUVW41JC3XcBPM4XduZdjg+nvDLRjUnaYwltdmlhqT4AdhFpxanrBTZMwaHXIUjdYYmQuHKsAAmJzscVMdSLKwGF0pR0EoahaOrcOGRzOjCN/+/zkdWUzi7iLHN3Z/xQn+Wbx3futiC586iqtPHrs7ZsW2xBWcXX//d5782Dl1QUoUhGfXIsClzUYyPq3Jh1xmWwtFUKQWGIbOqzkIcFUdWgg8JzTXcKRqHzLiggyMuuGX+8zvez68/dvVEOLjBnXWz+4VTwWDTzTU/DjcKYveSbYsvVfX5Xkpb7c7vcFN8nMWfzevuJnd0ACft9d3O5XULDetOnne+Zn6vflN8nop6EZ+ziHVyfbsn1v5t8/tP7u2my/DEgbMhEopQa92q2IL7PzdeBn77/sDve7iyi5EF9gZBq3JMpSCYO7nCmMFV8LXjO4CBVSBDddirShkMWd4o6hrCgJPaul2AyTM/cyD8qw9UPlQNcRjbv82ZFQInatXJ109BF7PukK9+02sQFYo5tRiLRQhT5s4gQlahuOPmbdMumBlejZQTmlrKzKAocrLJy0BSpeCMFVIW0tDSBZG4Fg+XQ/MASkpM1SmTsy6GiFI8vt9KDBQODFmRnQVlNEaXSDNcpubcihQfQ3BxnBTuHhKmHrvUlHCcX/2FX+bgl3/trnwGM9s26cG9HZi+6S2PIBqCqLuQUixdDELYJJGkUqqwzEatAzUJbpUiCaWSJCGpYkUjNRVHUzgMiwnmMTkWN9xCCFUpfPBx4zv+9eM3LJZOFlmfQNCCe+PQ2rb4urux1T4lgWVOfMPnDyxYUTUW7eJgzTWlrmE7LoaIIzsgLf3ZS0s11PlEDqSG3Tgd7zIerPFH4gTbmd2qThYYLLOWEi+nJkwNVcFL5GZ7hZTkxC2fqodw5hHjBw47AlMTbYfHEuVyxVWwycmLzNs/uuSf/8IxxQmXITeedd7p4WbOmVLKydfbFltw/xdVnVO2Lb56bD132LbYgrOJr//mt7+arMJOjsObVA0rUK8aspuQ6viOUy0hYixEKNmZ1omUFZc1Pg1zBRCKC6LGZLBoG/QJAxkY1BCcLMIPve39fPTg6Em2gxvFrZhvN4WBjXtxw/u41/uubYuv2Zl1s0g1CzMwCzA3ua9ETtx2zxhpK7Wn+Hzv6GkiRe/kezeFz1vGx20XRgotY2jeY56spzYchXNcSssNO3VmzQfeMLvcfHbjbL7HjZ+4+TK2Lbbg/s2Nv+eS8vsfTFyqBTtybA/qALtwIiZOEmvt5MIKR5KEWWINtissR6cm4XhwVEGPQJdQEywFioTYtdOKTC1TmG7WHhltZHCDj/guP/hh46c+VijUkxIh8372RED2Jw2LJ8ypqc/mZm69mPVlv+VlXN7fAYhJCqhGy8qbE66UhftJep5XZ5KoA1PXzsVLMakVc6RAXggigoowtF/4tTmIoClcBFNxyEpWRQRKhYqzSImKUyxSZ1JOrNawWhkphRUQEUSUg7UxrgvL/YFxAhZRD2kSwT1qelEdT0olJtxwfmlMkqqg0lIT4R0/8G/v1kfRB6ZnyN/4mocYWpzVogxJQY2kIWBVq62mmlMs4VbJFoLochGxVWvFRVEUHC5dhiceByuG54xQuL6ONFqSkNWpDpPFBJiTcDQaTuZv/tMPYIRrUEVvyL1/KrfWWQta2xZfdyu2ZofRw/uZP/G5l3mJfozJQTzGpAroZNjQrjZY5EwZJ9IC5DhRspGzIh4Ck7exT4AiziBKrVEriydgunKaQmECWSB5puQYxMyNWkCXgpZTa76asFJnBzmZqFQk0qNF2D12ru/B8EHBPynGXaugSUgI0xQC2TW7zF/5T1dJ1Snz2/LbL5pO7zncatrattiCLjg8l9i2+DqXsSXK7oUdhjzgopRpTRkr0zjeelA4J2xbbMHdja9Xv+gBPuvlVxg11jmDCFf2hOPViI5KqYmdnSgFUkpBl4n16CyGSJ2vpZIqmGeOvbKToBBpii4Jo5LbATKWqBrpi+7KhSxcr0bOzi/8ysf52fc/9mQnzGb9LL9xZSXNmWMnwkpcey/3XtsWXydilkTCw6aIdcfM4tBTnJ6JRCmZG3bu7eckUV68n3jt5SWve3jBqx4QXrA0kjhGZnBjpIlGCtTIpBCHRKzFRD1q5brxgUPlvQeVd3ys8N6rld88HHG3VqPUT97dncTNqfvqFiLDTQLE5tH35gVPSt2UG8WtuFIw72mGz4Yvf2jJl12YAGOHSBNcijAeOXahmRjEKbPJxmEEkHBNLZtmwWjhxsptXW5OHQQOIKtjy/iEl0ocYOf4WZsGwdHid2q5CGFrrbCTgCx8x7uFf3/dkSrMlcU3I2bO7bl5fR4usGfOVotZX/XGV7K/SNSNzZQjMWC005WkoVZmiQ/VJdJtJIX1bjqqXLg4xC+0hlLpLSUwq7AjXpQgdgAAIABJREFU4ZgaWw5pbl9PBqKCKixyE7BqPIkR4tbkIV4JgqoyFmcaK3lImIMn5dqRUaaKDEoCVq7obqY2p1YtjqREccfQqDNDE7RUm6NCQJRf/NGfYDw8viufxbZNenD2A9M3f+1DCInqwiCFMgmSw8kSpy8wCFH7SmCRnWkSyugsFspUKpiQFoKZIlpRzVRzvKWzVnMkKaUKwxDCgYthqoxTrKxcNZyC4uhi4K981wduKEp0O2fWzcLWWQpa2xZft4+tO/UXnTwRX/DoRb70VceIF1JS0lSR1Ma3KmRaKp+AecIdkjvmFrVA1gmsYruKaKQSDiLh0BLQGmeYRZy8zqy8IvshoqLQ9HZqAjFlva5kjckNEZJrjKUlTotStXCDKagLFCgJ8pFyeAjLS0LREiJvm+18KXhxzKEgfHS9z//5/xyxNhB/cgLGzZuC09PLJ+9dty224JwKDlvKtsXXeYitYbnk87/oM3ndI0PbOE3siDMhTMeVYRkFUpcIo8BjY+Zt/9+H+LX3/AbjNN3vl3/HbFtswd2Nr6/83FdSq5AyLLOSsrC7C9NVZ7peWFwIp3IdEuvVxO7ugoU4RyaMk6FW0CIMCa5bFH4fpDJk4XiKw6IsQmkOY0VxMZaaGIBCuB0GF0jw1v/4Xg6nEk7ozVRCh9uttDZTtjbFsHvBtsWXinpskm9KkYMwDTTxxeHGtMOnYqPwe3wZ35Rk4CUXEl/88n3e+CLIyaA6qopXw1tmkLmzi5KBtRN7ObGo49xMEaPFYeCQ4oWpOHiiSjjs1Q1U4xBT470NEtkY/+rXKj/2gRUfPly3Mja3i59wam0yv//NovKzc20WYW9YsfqpfrfpPjyJ9Y171mtmPTM+bZH4Ey9ydmuIWKLCTnJyC9zx48J0xVCPVNCaY6e2FKVWY6qwFlgIDCrRYExjLJtoa//qLIH1EtQkisJLNHnaWQqjeNQXp2UP1aYrpGiIl1KMd0MWVI3iwvf84sBbHxtPhORWgrftSyI2bhawujPrFvzxN78GbcKUAqU0m2ZSijmqIR4kba4EkWjZKIpLOFlqMaaVsbubEfXofFji9zovFDPYS4LV+PBGAVdhoNnrmiMqJ6WKYhYd4VQyVWA9GXnRxAgEK63jnId9T5KwNmE1OuNUo1hfVlhkTKCSmKqRTCgt1TEMzxFoLi0lMYFIwlR45w/+22cXMY1tm/TgbAemb/kjL2Sq0QlCmbBpQHJ8lTMgBYkqQ8wNAJBKMmUshnhGckVEsSkGo6StroJkxAvuEQO1aKTUAomCMmBaKCYUFxAJp2BRUjJW4vzL//sx3vuY3XJ59VSph2claG1bfN0utkJ6mof5p/h+QuR8w4uWvOWzJswMTTGBTQV2pJ3m4SfHkO7NyWdGar5fzXGqnFbC5M5iJ0T6WkBTiOw5zZbzmHjWTyj5AqwHY9kE+smdxVoYU0yudmjkC3OqdrziucNNQsJxNTiyynBY8T2hDEKhNjdWK0hZwLMwFDgeIFVYTWAJii35vncav/hEiZNITk8N526Hd1JDYttiC86H4PB8Ydvi67kaW3lY8MYveQOffnkEnMzAYJURQRhJEoc+rI+RxW4cIQuU6uxlxaqxkwZUjb/5fe/m8Nr1+/2WPiHbFltw9+LrD77p0eZqciwpaRD21NnNxrWrTj1UuAxDchZJuXYIuhD2s2GDMh0adVWpWcBjnjsevR3exGa+uJAkDg2nJGSL1ZFIiGS5NX1CgOQMqohV/vFP/OrJOmozzau9/xuKwwOnKW8n7pguZj0TNtMMlVj7znWh7LZphG2bLad2lJvTAwUYUub3PLrLlzwqLH2BUGPf6CAY5rEONzdMDFyYatQfGlocHKEkDHHHXEnaMmy8tLjL7bVXICHeirbjrXt1ZifXli7rTG3/uJDMhcFQgY8dKd/3KxM//IGrWI295vwm/DZtok/dWBvOq81MjVvEqkBkApmdpiNuCLHbFltwtnPjJwF//qWJC2podYYU+sICD9eUx7rXDuD4YghGJGK/b7AE6kKYJqc45CTIyqnLKFFEW8vn4tga0qXIzFl4pBOmRXyK4zr2CMscKdcrA9o+oWhkapQUPz9qgxsMoAP8yhMDf+1dxuSVNZyom7N34kRObXexi1m34I+++TUMKWpWuQvj2khzz0qJLoHuQlag1cxKbkyu6JyWVQxfO8u9BG3wkeY+AMgayn5yYWUenbra4+aOmaJJyDlqcGGGa3SrM486WVUERRFVjtclJrQY9ygeLq6pwlSNOjlkxVxgJ1Mg/l6FmqKOV20pao7iSeL/rbC8a1gq3vGDzz7dsA9Md87nvmrBH/jtl6MWVnNgLVL0DjFVsoBJNBvwVgcNrUgFscwU/TBRiRieagrZUhxxJe8oZYrJkzkO24lQiJ6gGFaVooI3sWOqMfHG0ZXy+PXKP/jBj7RifacT2Mn9uYcph9sWX88mtmKRMPClr9vh97z4OrYMZ91Soh7aQhTMEGLCshqf26CRthqOLaIrZmrFPKvH5FdBlspajAWzQz7syBlhXSt6nPDsHC+MHNppLHQOgAcEu+4sdtsJozksiPGmgBSnaCyf0hNCHoTVruMLCeeWe+TxG+CR578o4Is4ePBDGFNlUqEWuCjOTzx+gR9452EcUtw0C84nP081XW1bbMFzV3B4PrJt8fVciy0R4XN/12/j1ZcKF3YGiiilrtljYPDaXOrGUsDEKVMiJSNrrPJXlslayTlx2Z2r40RNC3SAf/2fP8x73v2++/0Wb8u2xRbcnfj6os94MS+4tENuwlNGSFJZayJjrK85jI5ezhQrXFwK5VApe9FMCRlZX8vkpbedXqTqrGqseHJKVDXWVVi6MyKn6TIea7OcBExJKTp87WomKyzEITvf/h9+PTZ6sxvoFk6Wdj+e/Fj8w5k7tLYtvmYxC7hhYTCLNTdwg+XoZgEryjh8ypXEH/mMfR7aza0WrSM1XC9rYt8YprtYZ2WZS6cnVm6oR/rVSIikE7NgJiSNDKLSBNlBtJV/iH2nYyQRtB1aK7HXxBwTJYkzVueCJlKqJCATzzF5ND7Lyfjpx5Tv+fnr/MbBBLdtqqOhiGz8k9/irs0C1/zoZv2xzVpb3Zl156gIb9hN/KkHC5NAEWVwIzfDTdL47D01t9MTMF45rX87EB3IdwSOFcoEB8C+R6zkBVF/tjUGs0NY7sORw5Bg10KgMoVp3gd6M/7UqL/FIkTZhUS5o6k4kmGh8ZpGhTQIOcVreeuv7PC9HzwmkiTbQflNApZwWjz+mbB1YtZ/+4ZXIEV46FLCJZFa7vFxjUnOPRwJc7v5JEpq9jt3QOd9lTNNxnRsXLw0UMxQE1AhNW+q5pgIE0BSjqew3C0GpUx+UjTeiVpaRcNFAYZqaik00eFwsqg7Y9UxEzQncpKoqTU669I2pSZUj2LM7A5M8yawDZDm88lQsxNKimDRiCoRwSTsge/8gR9+xp/Ftk16cDYD09/5ww+FQCXSumNWpsPKzn5uA38iDcY4KTlZTGRuoDmKlBp4MswySUKQ0uxUnGR6UmAPmVNOBVWnFEFSpFu45yY4JUZvp04GPjhWE+sKKTlWlFKd/+utv8n1UW+Y5DZPaG4lat1tQWvb4uuZxpYIfPqLF3zdZ4xMhF09qyApJg6pTlJFUwiY7pHel3JMfLWdAFcnRC+1mABlrg8YjSbs0LAEeU9PS3pUgwRmSvmooY+Ey2teFKaa0cFZH1aW+8LUbMmC4BZ1AfOizU7XE3lZw2GVFCnGuiSq1HCMIUgbm9c4eyTKZOSdVm+wrRJFQE35tXGP7/ipY0aLLcVJ9N20IN286XNA2ZbFFjz3BIfnM33sOhte84bP4gtel7ngsPLEWMfmnE9ghaVqONrFIkXaEnhBU2ZaG5d2hTWgaQcrI0M9Ro8yXM6MKZEUalWqOI8dKt/5fW/jrtjY7yLbFlvw7OPrD/2Xj7JWY5lDEFh41LVKKsiOsl6vOXxiYMgw7BqTJPYWcDQZvk4sc+WwgCSn1EinwYRdNdYFShLUwoVgTuuCLtHh16K2zMoqOzkjBrX578mQTaIBiyg6KKka/+Kn388T6/WTusbNyfOb66sTB9GmO+YMRa1ti68bxKybuKUjbkPA2s/Cn/zMK3zGw9HpvlrsH2tLMB0J4ckrQBgTJqDUSkbR9sm5OHtEjdLSDpujyVjLAGoLm+rREToOtts6HUclXPlZZ+FJTkelU/sTS1XQKFWCxXvKrXP1kKP+lls0MhDmQ/I4AP3375/4J+8+ZqzjHQ15J1HiG+uq5nhzTuNUaDXgupj1lGTCJfVnHlny2btrzCJjbDbbqEU38Jzi+tHBU2R71WtOvQySYiAZiPq1lCgb4gK2iu/zRZxp0xovqSvJnLx06gSSYLlIlFKhwHGNrq2ZcIUVdYZBsWZBLEQNchLkCtayKVKGsYLuCCk7yRLjAv7NLyj/7MPTSZrh3JapSS8nBwTP5KZulZj1VW98FJ8qinJpGZ2+ok5VU8Al3Eqlzqci4V5RFRYKSeRkYDOEWp2jg4mHrizaL2hL7SrzIBRpOzTLXrW5yLue/FKbhcLZBOtQRJPgNR43j5b3q9HIqixoAlirrTUaSG5pYW0za0NiXFdSztgyYTWuW9mcsBRpataewwBPCVFper4gOT0rh9a2TXpw9xft3/I1V5CUYgKSEIdUjGklLPY0UsVEUBWqgpmRTCNGqlEnZVh6xJUJSf3EkiltYhMfWC6N1XHUygqnn0dKqytIDGjRIbGl0FrLWZZoQHBwHAKalRQLMc38yNse52feOxHT0pMXWbfibgpa2xZfzyy2hCEJf/WLheRObtZi3BmWSjIjoZjVmPhcqdaWEk5MOpOFcO9AirEtEWPKVNrkKG18KnB8AMtLii/sJPVwocJ0AOsdR9xPBaMsDGunuqCLOXUiYl1E8FqjgSsCjzn+UIyJkzqDC4djPFX1aD7go1MGIRVDCkz5dDFkAgPS0kgSqwlWQ+abfnSktA4rm/V1n6ozyrbFFjx3BIfO9sXXcyG2Pu9LP49PfWBFssoelVVVkk488XHn4r5g6iw8TpsX86J7MkoykgysjgoXLiyw5cDeEj76G09wcbHDlX3noyyIWpLhrplEGSzqWv6Df/cBPvibH7vfb/+EbYsteHbx9bWf9yjTWKkoy50oJSLVuZhj3aX7meuPrfCVovuwm5to1YTLdCSsLiyZbESPCjXFYfV+VlbHE1lhnBIpw3ptmCR8YZjFQbTVaLAzeWKpRkrRIX0hDpLaPkEYWhaH5hAbvvMn3kf1eiIK3NDtEFpR7rnL8KlTa16DzSLX3Wbb4uupxKzTU7tTIUtRXn5pwdf/tj2GwRmLIO64OOpOlYgrF5jMOK5R6wqJ9UatYVQoZiT32FN6GCrEabXWoqC7eEKTs0YYaxx1I/GZL5Gof+yxlpMkDMQCsGJhwmj71LE5abIIKs6QYk9qzbyRUqiwSSPrZ6mAxvctifXgkGPc/OgR/OW3HfDBozHi7+YK3d7um3PyWk9+e1Wa04vTNWVbLkb5nO2KLbhbc2MI3t/+UmHpxiRhkNlJMKVI7cuEq2qtRBkjhxreGuxIKLtRszuZY0O4oaTFxQDICOvdKApfs1BWzsIFWTvDZVhqZFWoCuvqZANbKqu1scxAy/wyaV0OgVpbU4WWqbFo9cexWPOP2aNOrhKlRxRqSqwOMn/+50auE2t/oOkrs7PveS5mXdod+NLXv4xSKkNW9odEbm4Va5YrA0hQ3aJNpUYaoGoUSE604pDu5EEwE64fFB54YEA8LJ2TAU01nWo4YUr7BEQThpNVT6ofFXNSSkzmZI3Ckd58Lmi4DsYa9r2kQlFIg5I00gLXK6PUKDBpFk6dUYE0ROHlvQEvzgrnyJXJQmiLRodz7azo4ugp4S6ISrzWuYbWM6APTE/N3/6jj0A7wYsNeZzSZBHqZOSd1ETT6CChKYpDJjRitm3s1R03QaWEwGngklqR0FYA3uvJOU4o21EIchqdtIjX45zakc0N8Ug1y4uBnX3jg7/piEUxSctgNfGhx0a++8cfxzjtcHhyr9qiKhZW0Q2xi1m35+nGVhJhfxD+7O/Y44IcMNBy3iVcT6pOspbz3ioqlhLjUkrC6B51qNpYlIpTUyyIUxPXZ6F9oUr1mBgnE8QquggbvWjMLMlhXWPDh0QTDTdHWrHc9dpJ+1HgXSBWMTXcobs1cXy9ki7FJGUZlMThurbDA0Cc2opKavUQ3mtrmeIxgc4BMUqciGaDA9/lm378mGN7sj355hu+t7fL8fExZtsVW/DcEBw6wfN97LrLP5uve8vnUG0imaNlYlcTa3MWbnzk8ZHLD2RclKVUFnPDi1SQAkPOsONcOzTycuDCMnF8vOb6SnlkB64sMh8aCzWHYFGJA4JswqDh0np8THzLd7/tft2CG9i22IJnF19//AtegdnAwRNrLjyYWlqW88BSqBVWtXDw8YzXwv5F2F8IhwaryRkWynLlLB7e5ephYbUqmDiXFkrGWB3E9CMaYkNCsez4GHNY9bbBc1o36rbOkhCsokZT1E2KplFKUidj5Jz41d+8zo/8UhNKNxwuwJOEqo1ErtO0nDNwaG1bfH0iZ1b8Je79N37uQ3zyRSheGUS5VjycnIQoNJqxjG8km1I8HKArrwxE2Zj4zONwLlzz8eTrEjWDsgi4kVMK4ccqRyTAQqDUEC4GZlNCq3ckp9kRUzusG9o+L6GMhHsmi4SK0WqoprDWx56vvVljFkjC1U/7vqRK0tgbVIGf/qDxLW9/AuAp46xpVyeC3g3F33ua4e2/t/15UODrXyS8gBCkJMXeb38KV96xtrVshkX7zNWjEVNVmEYJxxWcHOoMCGNyBgNRkAJlEftDqZCmSKOW/fj/rgrr5EiJJndJhUnDHFMM8iBMFsabI7wZguJ97OT4ky0EtpzAxxCm1hqxtDc6006s4/cRbHL+1i8lfvJqbVrJaXaFtd/H25Rzuy1bIWZ99Zteg7qxXlcMZX8QlsvEMkUKoXlsflQFK9Hpq5rgxfCVkXdTS+GbCyiHMurVqRaF34XZLtzErpSQHEbhVWmOBUIsoHUFW6R5Iou6V9LU9uqRJqQqEShItMnMSs4hPJk3J1hWxiqMTZRLRM70XomUtCMXhiFRVDhW4bBE3vTawvLqLpiGG8skRAfNiku0OzNRPBvveuu/f1qfxbZNenB3Fu05wd95ywuw7NQCImENzOqsr0PazUg2UrNmVhPavEbkuBpeDV0K0xhiFW0ydeY0wzbxWQaZqJ7DUtxOSmpLNxVvNdUESILVCq6MRREqlhI+KTJUvMBYJRSOnFivQZPhSfk/vvcjJ612b+XO2kxBhLvj0Nq2+Ho6sSUi/M7XXeRLXn4IZigxdlEh5RDFU2q1PCxy5XOVk46GTIZrTByJKNwoHnUT4vljssIjz90Ncg771lgyw6IiY7igamoTrDqrA9DddrJI5PbjjtbEQgTUWXvr4JOhTGEx9scFf9DZGXY5HleMxUkLZSrh/lo0W3OuIfCOCXyK9+ytyqW3NdFITL6lgmk0+NhdO1//n5TjYifXbbqzTrcB7f9bFlvQxaznEtsWX/crtr7mLZ/Drk1R27Q4VSqDGXuirNzIVD7+2Jr9y4mdnEgSKciDxuFOSZlLC2ElysHBhJbC0Qi7l3fI7lwcCo++5BLXinLdlGEJqUx84APrGEtTdBcrAGp843f9fHR0vY9sW2zBM4uv17/sEp/3ukfQGuvi1WEUcd/bgYKxnxJlXVgfKSur7O1BQriyJxysKpOmqBtZEsOFEKsOx8IgmUVypilqOWpL/1pZFOrOKMVjXl1ZpJwtRVlbxaoC4UbIKWqj0kSIWTTY04rJIkqAEOut9z9+xI//4sduSM+CeUN3Y12tk06H87U8MxfD7di2+JrFrBPhT05XqiLw1978MC9YGK6V9ZiwFormxuDO2oW1gWNt7wU7yfGq4Thxb/EgVDNElVWtUQbGQiQa24d0siZpn+OgRKqWOKMnEpGpASFS7Hh0crZao/5te92TNyFKhOzRdZpWm0skuhpWc2rLDlpq7CsiFqMxlLqHK7/tD5wQv4YE4uGsF1WWDiLOT38o8ffe9RhTKdzIXML7FpEonOwbYPtiC57d3HhB4S++JPOQxD31qALCwiIttEDs26QJhAlSgnziFiTKgDiUNaS9sEANhOawGEKrGEqk/821mY8PnZ3L0gSxyPgQg5zjMywAtcUVsLYQwQ5LS7Umypaowq5LOLcGJ9VIOYxGevF+1g67ohy5RfZIElg5uquU5Lzn6oK/9rNjpNy2EJrL+5bnm5j1lje/HvVCHQvro8ruhYGFGENOoFHEWATGeuqMKW3QccBXheV+BkK80hT3IxEfGC11L6Uo3K40a111ctMJRqTZ8CKfntEgpROXhGsEZHFvY4pE1f9WCH6emoasIUTMLrKmoouEJZQKi6yhoqMwRS0tMqCZEaGIcOTC0VQ5qEJ1KG2ANJd4XSqtGHwUh3eE9XTML/27n7zjz6IPTE/m01+y4M/8vgcZ1Dm87uhQySk25eN1g/0FWQpVBSXhK0MXhmtGxBgWTjkON0udQqH3qki2E4u5NQ/merVmubNLpRXQVqXUmCBFoiOKeAibkW3Yussh4EK16HU4TYKmyroKOmYmcTRHdx4zZcTAK3/r+z/MqYZ+0327hcD1bAWtbYuvpxNbb3z1Hl/+yhUiQhYnVWdI2pYLlUESCcc8Zg6pwkLbKaAT8UCkSafdUEpFjGrCsp1cm7WTkEFakdBwQa1STDqzO8GtMu1k9tQ4fBzsAUFTqGa1VCJN30kjjGbIMvLpBxNGMbQKchWOHnJ2VfGVM7pjC0gp4aWGLdmEUWMMHlRZTUZV0BJjrxWDrK1boiMak+xwCLYHh9Mef/UnVliNyJuXXLcKol4zq3OWPJ/Hrrv0E/ncL/4cXv+Cyq5NrFzItUBxUlL2xVm5I9U5Xh0jw8DuIgT3PQNJC6oYqPCCS3vsL5yPfPSAo8cKF155kUIiTyMPX1nw0Q8fsb9ccpUCk1Els1BhXUuk7Huk+Pg4sbdY8Dd+4Fd57GP3r+vhtsUWPP34WmTla3/nK5G2h85mrFfOegWXHwTJgo7GeJiZ1oXlZceKs5PhwYsDT1wb8aSMVcm7C+xgjQ3CUaloUi7sKdeujSw1MU3hbJg3VqIVrSlKd5gxlXAroG3jSBwu6VxCxKLjMBK1bMWNnIXBhUkSVmA5wL95x4f42PHqpHbWJ6rnNK8HmTe6d4lti6+s6fTmtPun4rzlUx/m819mLCocGoxeMYnsiBNXiDul5UeltvrObUXhRCmP6pwU5haJmp8Fo5iGSEBY3pUQReNIOj63XcJBI8DVOS2QWHuJVWh7VDlZ+weDGmKJidiPOrBIp4d33nL7lhJimONMVcL/lVqqWStxIq2Wr3g4EJPHAeQwB7GE26wcJy5cHPkn76780PuuRyrYreJObiGuOnPK4lbFFjyTubHtlkT525+sWC1czO13Xf9/9t481rcsu+v7rLX3Puc33DfW2IO7aXe7beOhbTCGQBxiB2NMDDgEBxJbEBFshpA4gcRRAooyYCsIK4IIFMQgFAcFhUQokQgkGBwwxpGcgJDnCdy2q+yu4VW9evfe3+93zt57rfyx9r1VZbfb1e7q7upXtaWqN9z7fvfec/Zvn7W+6zsoxZydhVSzFYHJ6Z0I7Uph4L8xqBVsHgPeDqVD34xQOgvVQi/R95XqmMY5czyHzTY+ttHoL8gDJBPo68A9HI4p1DuWhcvqVAMXCZJPCtjBHc4S5AlSi2Fzl2By+epQwNsAwIQAWtVJDj4G6udW+Kb/r3HqAcAafpUH9VF1kZ/SYNbv/PW/HHqnJMeODffEbifUtbHdZhRBVZEeqHREpgruhksATHJyNttAqXzcLLkafRDA1eGisjsrETsqzizBWtDrCUkcCohQazCmNCvVBzvLY8N0D5miElI/gGqOe1BWS1FEE72HXGgdhoOSoA2G5lnOzOrgcUAeDp2lG/t9oYnQJLF6NHr3VufQg6nTCeN4UcVlUMyGlNFR0I8u5fCtg+nV67f+yj3/6hfuEYnEpOOlk8WYNgauwQTUmPBsp0y1YGz1Hjr3ABMM7xlLhg+/K1zp3snOmLQohpGT09eEJsWlBVLO1UNPMe+IhOGj4TQ0CnNG4sp4fcNwK9TWWbtC7wF0OmgZfl0NtGS+9a8/M46Zcb1e8WB/vQGth21/vZa9NawM+JYvm1FdcIJpkMTRwRBtCtP4PE1xLzcS6YPmhmhMCfN4zdX9OsXVexQymoaxbI/m8JSM2cBTpuGIGllh1kQ343Q0UhHamrG9kVK8eqsrWWL6V0xZD522c7YGJkp1I71UqNuOZWMywfLwguiwuLMtIYc1BM2ARfHWlpgCYRqFFrBiaAcvwVSlglboN4RthWfahj/5nStYf/lheFVcveLqvwVmvbU+nuvNeHa9nutLf/MX81l3KmuNojckXBXtRnZhL8bRhZac9qBRdokbGyXhIJmNOocG+1sz06SU8xMf+tCCiDFtM7VXzjYzx4uVKWU2CY5e6YeOlJmOslgMdBChW4cpsfWo9f7Kd/0UP33v4hN5Sa7Xw7a34KPfX9/w5Z9BdwsGlIbsb1uUw4uG7oyOky/DokH3YPRgzzg8eVZ4cKi4KAdL7PeKvdA47cGqsTrcPMscLhvVjGThd9U15IRqSlfDqmLq0GBtRtWQ6qxXhkEMEKvDKuG1qxJAVZFESvH7NIAQ1cTPvHjB3/7B58fQ6tVyQvxl/6xrf63xCddsrgEafCzrYdtfrwSzRITf8d6b/KZPD6KDitFasOoQYe2Gjd5O7IqhFeBWd2Ea1zarYD30W1UMusYwccgEmxvVZQBNzoSGIme4Xqsq9JeZUXn0m6awuNCbhRpo2ILgjkt4uVkSql8dAAAgAElEQVQHxtfq7hQZwTkaljbTkLQ2hHkEkKmM/tEdT6DjZ8spfHvxUPFkAtASJ4anSvSrIvRF2M3KNBkTwl/6/hP/91MXr2JevXJdpRpyxSQU3vQyw6sfPqH8/rcLn7Xp5B6+2zKsi2aHswGKukCahIP7tSpskmBdSXXWEkB7BeQ++M3hT6XxOlIEXUPJsS5OXoR8G9bsAaQabBPINM4YC+DMKqwJlh73/0j8uRMYiQXiSpFQhEwllBizQGvCKTmTxffaUnxsqZBGX7CaUfqwDhHBCmyT8h9+d+eZHn1Q5YqU8drvxacsmPX573mc9739DtkNN6MfO7dvFXIWjg8q0y5T0vCu0kgeoVt41HWn6jCscpjngLXLYFfhIAkQRXtnvTQ2tzI2PLLwQbOT8LlaF0Mt2BPL0vEkgUgOBlYibqLp8MeSkPnIoO9dIZQ+wDcnmDV9mOk1A01CErhVMtnDNFwI8O3+/cY0Qd5M1Hi+snTh0uGF6pwsyGLdgaSYAJoC7BAGUyhYWt/3f3z7a7oXD9tDDz62ov0v/r7H6CYBMBi0mpDeKVmw1cg3HUxorkzJ6OIkSbQeUiuakU2p3km7HIXTgI50jFRaC4+hmBU5lgSrSk6O+0jQwVkroAFKNEvjgaxjJqREkgr0k5Oys7YY1/RqdI/X9AS5OH14bLln7l+u/MW/de8jlksBptn1r7/U9bDtr9eyt0Qy/+4Xn/Gus0uUBgKlOzorvkZSqk/K3B0TJ+XQzUsPyfIYAoYsUbiW6bUGOSeaWFDb9boOpllMB3U2kAiT0OTX0kZJUCnI2uHC6FNhuhUy5uTg1nEaRQQ7Jhbv5KJY6yGCuC8c98ZmVtpitALlKpUxaxReGoxWs/BySCKcqtNqPNBUQsdvI3FWIWS3S7C1XAxXIeM8de8Gf+ofX8KIQH+lKCiaAd7yzHprfVzXm/Hser3Wl/3WL+Yzb1bEDO+dKqC1k6thObHTxk1PnEv4W9XLyrQtPHoroVpYW2WDo/OGZVnBhCl1+nmC5YQ8fgPDuHN7w2kJ+U42OL5wgZwpvSllm6hL43Tq9BbPskoADikpk8If+7bvfV3lXa91PWx7Cz66/fX1X/E+dMirLHkMPzD6Auqd06HhPZ5N0z4xzdC6RTqYC++8O/H8C0s8V7ZTKCqeX7mciFo9aMlcnCqzCWadOeVInCsaYSVE2JKfoKmHz6PF18k5jJE70W8kiQe0uYZfDeGHpDoCgIZNSAzJjSTw57/7aZCXzbdfycD6SIytn/v3v5T1sO2vkrJD+IJ+85fc5tZmsEQsdAanVZAUqX7NglniwXpgq1EnVzfUIznO6cwj4Oba08eMJHLNqEuiNCzIE68AGMWjJgsuwgjjGeyo5iFjrO7X1jidAAzWcT83kuhuIzBnECrgumfEnCbB/cqD4TKl6DFMoFalZEfdInBHAqzTMZDMGiD+rNG7diNAPzdazZwlZyrKNsXQ9ITy9d9+n2bt5+25l2Wd8TWSKM36Q7W34LWfXddAlsB/9K6ZJ2XBPQbTycFKqCYmd/aE7G91IMOiL//bRDCFjz32iSvBkroH/pjQWnjltgR7h7kpa3c2JbCLXp1cYDe4Etv0smXJRKQXdpxV4GiwNDikl6WGZUDtRvz7IsHMkiSoCZcezDHhCkMBb8I6JtIO2BRXI3kY2u86rDNsc+J3f0dn8ZeFqz9X1PqR1qckmPVVX/TeoF7a0OQa7LaJ/RRa4Lo4t28Waoc+LqJYXPwuAQoxPm+zC9P0pCFBVA/KnTow0PH1srO7kegIq708BRGCsnp54axLZ1LFHTb7hJYhEcyKWJgunyyasOaDcSVOTsO0nYHYD8kYgX1ghGl8UaUkeGRTgm4/JJNoYm3OYsbhsrK7vaG5cFw7iyRO5lwa3D8Ziwh1qL9dCFYPV3JDcE24KD/6vT/A8tNPfcR78bA99OCXVrT/6d/zBDc2hlvCtdNqpJm4O612/CDMt4AcbKkkIXLOc6L1hnlhFqMtHU9Kc43JjMSkBhz1sKXtTam9MyWlFOdkMdWrHg8T9URJGtG/DjZ4+N1iumMeqYYqOmaH4yHjTm3BDluaoJZoRLxwkwgY7gjrIQ6Zb/uO53npeHWkvRrAeuW6Moj/payHbX/9YntLNfPHf21ms1mYr1l2QRNOU0gGJwsQfJsc0yFZlpFgQkxxdFRBkuP9jRreQTSSDrd5eFEprC4DqFRSNpTxhBtAWMkFqw1PRiU2pKxKuVnwpUGJglya07Wzly1rrRxlCS+HRWkr5DOj9ZgqdoFSMrY2vIRJqrnTVCgWA4XWYL10ehkPPXPaFYM0Gb4A69hvTaP4XJQqHc3wf/70Lf7O0w/o7tf+XvAygPew7S14C8x6I62HbX99ovbW5/6az+FffG9BGiQqvtaQ+plHkq85GxF2RZlS4tCFejgwbTc8+mm34KVLapnw1phqpc+Zixcv6BeZm+3EhcG6GpqEvINyd2K33bLpzjFixsLkISnZHF1PnI6Vg0OSzO5GRkzRHCz4P/Y//xCn5RProfWw7S147fvrD33lZ6BXEi4cT0pKUCZBF+d47CwvVdrS0VszN/cNM2FOYN0QScGA6GGKm+cZL4rfdx6wMm23wMrlRb32uGorTCnMtXsKAFUMeilcrgvYCByQjlhm9Y6gnE4NTQlzGwMmQORVJt/eBviFXjeqKQQe/JXveTp6m1f2Xa9gaI3r9jJja3z8YwW0Hrb99Tvef9e/8tMTB3eSR2KbAaqOreFNdOpOc4eeyNkQeVlq6B4MlVKCjSUE26h49GwiV3I7ISe9lr42M7Je3Y/YS0JYJBhXwT3RE0AM67KGH5vKqOfEhwRwsMgsGPhY7MN8pQbySFt08xFUphxNmDTA1PieDW8ZNMCwpAlTODVj1lAriSRaF5SQwmYP9pkj9EXJ6kyTc5aijywaryci/IXvW/nOpx78/Gr/laDWm5iZJcAX7OAPPg6XacgCh0dWK7CrcJbjDCgCC1BS4AWRiOowSYTOaQCvQ7gTnrkXwKPxZwpsEOZFWBZDNoFniIXt0YRzu0DWYGdVhlfXwAe6QBV40GFdAuBtI1Sq5HgdJd4fSUK+2CWYVyrC1IMg0wkvk9XDq0vE8RLfY3bCPsDDsmljgu2cYsof/i7hGe/Xg+v1Nd6L13p2fXiznE/C+k1f8B7Wk7EcnbVFul/aKJLjBi8tkrCshxn3RBjiQYBDOYW2fT0YZaMBKhET/2pOl/i9DOYUEih6M3lZz0z4uKjCujqtGSUrWoTdNpGyEueMw5AH1R4PMs1CyfEQFgmTSOnBRmg+Di/iQEsME0qPKY24MyfYTcpmjv/O1Lm9V568O7EvmXaxMIuTRZDaYGnoqcffqZAQkncygy/oHbCQQo6v8b7P++xP3g3+FFr//dc/wXZjuCY0CW5XXmnBhEol40XoVZgyvP3TdkhWPMXDQyVB79TqcYplJ6WgGGseDoAerEKhk0og4J7jwCka6XI6+FZB0XESBm4UDf+ikM1GnHSWOPyufOGDmy5D3pXoLR7gOSe6xkPWWxxaZp26Gl/3JbfZpJeBLICr/M5XAlqCXP/9W+sXXoryOz93j2yi4LE+DN8ZU60r4JyQ4K1D+ildKBLFqw56eRLIJdh81i2KGwlq+aRx1q1j8iIqTFNm2kQABtnRpCSdSLrBvNOLkXNmI1uSKt0Mu6hIKZRpAjpefJxfjV2eObOJSZRbec/ZWWabC/upkDNsiiASp5yaheSxSKTJppCqmkG5qUwTTBtBtyG19ENjej4hJ8fPBJ/Btp10x6l3GvKIw134bZ99yWObYGpdm1GOa/3QVVOfgitOBUHJJBFUMiKKSA6ZNpl40uqrfGLeWg/vuvH4o3zJeycwCSCpG8VDDl005PWFYLHvzzL7HZzdiGZ+UwS7uKQl8GXFK5TtxFM/co/T84bMoI/f5PajZzz5zhvcvLVjvRSWnz7x4Ccv+dl/fp/7P/USLz1zwfrgQH7xnPr8gcsPrSz3wS4TxxeVZz5YeepnLnnumQuO3fgvv+Yz3jpPPkHr933p+3Hv5DKzK8GKmZIzzQlEaVME6cxz/DrNTl2U1h3pDGNrhxw+Qs0VnSeSBLN9BpKdOF02hGEb0oy5dEoOlns3QbtgTbh5s1BSjjoqdarFQM9MUOmkFK7KKjGgXh2qO1U64p3aQ7p/ZXeymtHw4avrfN0XvZMs47k8QAvG72X8B1ds4+hNrgGsKxniW4sv/2VKrc7OBbVOUUhu2Op0nFM3JA3Wy2TkUT9nH1mCA1wKdl8wlsyugKzQQpSUggxBgEqGs0nBpM8a3rVXTPkswcRxnGYRWIYrJcU9nDTsa7YK2SO4yxVWnIkAQVUDsOrXbBdHXENVodGvzmL0rjSLfScWDBxcQ17oQm1G8rA6SeHiO77P0XOKXreIlw2WYSiyWMjPqsV7Aoev/9yZr/xlN66Bu+s1ZJqvAmXfhGsH/IEnBM+wc5izMANzEm559IdFI6zJEvhQiaUMHhsm/NiG/3HK0HJIBKcZ7hZlTpC2UCYo6tSD4dthIF8ELZAlwDD1YK+iMI192Qn0SEZ/0Q28KDZHXT41SCtspgCw9puowVOHUmNvSnNYnNKNDUCKvqUQX1ccaGAN0hhkZ4GenXwJfm786V8Hj0mAeh+b8/KHX28IZtZXfP6ne1vjx9tsMilDTsFuEonNoOZYdfabFAdHSujQKzcPuV4353jZ2J0lcB3SwdAlqwTjKcu4jA7t0NneyNedkHkcKNbhtBrLqVOSUlTJRZg2Su/x9ZxBwRNh6cacNSSE4yAQCXbMOuiBFWAAbL0aS+3BJkPY5MQjm8TtfWLKiaSJTUmkorgozz535PwYuv9WEufHSKxbBU4C96rTR8phA0xS/MwKLsM/SwQX5cc/eOT4g7+wIfzDNsGBj24C/ed+7xNohikT6WzqJFMSnZ6E3hxFw/TxmEhnfcQ8K+7GNAm5JA6XhiyGZCVvjNMSH1cPlt+6OqUAaqxdmQL/QsSpHn5sqpGceDo52w2UDdQW7SAY5oqIs/Yr7XyIDqPgsSFnFVoTWhdEI/wkJeF48JDpJqXWzukYD/h5q/yZv/lcgG2vgX310UoOH7b99ZH2VkqZ//wDsLnRxsRuJBRe0dIHM64QYHMJ13UyQs4vv6wq4EpyQ5KQUsFlhS4BtqYorHqK18MjxVAYwHo30jTR6sJcCgmnimKyorLBUaxVNnXHIV2wyxMnXdGeyCxsfUNGWaRhtZJsi5A45ZWUOi+chnTSoYnThlzaVfAW+9gMjgenzEObL6HTL89D3Ql1BzRoLQq0KNzB0WAnWsg+TvWMb/r750iYN0SxTzxY20O2t+CNy8xSSbzjTPiqXy586Xszt/aFw/1zdncnehLEKtIjsRUDyStihVWNtSpaJponLteFv/PDxnf+UOfpBwyz249HqfOxrzfT2fX6vL7yjV/7AU7d6N2ZveHNKHTWZmyTQpJ4topw+9aO21l4sXYun36J20+ckVDcO8067aUD5/dhd+c2T77vBi/8xDNsb+7Z7mfsVOmXB/p2w9I7m6xcXnSOL5yQpTLnaOoeefsWBxYBMyErLJJ44bzSD85UOrf2iuwm/ui3/fDH8/K8aj1sewt+8f31e37De7k9JWwF2SnJV6Yp07qxeqIE34m+rpTVOZ075VbU1scK+6Ksa0WnkLerJABu3N6RFOqzC5fZ8W5Ud7rC5OHtkhFyetnyYelgqzLtjFqU47GFtxvBfFbteE/BRGb4jQ7QoRIDJRXBPSxKOpCIoXwh2PKgTElQGv/7993j3nF9hU+Wv8zAeoX88Be4rh81Q+th219/+Tc+4jZ8imtzlsGo6l2ZStTt6wBcRGIAO43a+EGz0eQHs6XaCP2SkFtNV1YvGGIRwhMG1oAHuHkFZp7ccVWKewCsGjtKNVg0RtzaVYTJCDnhsI5II+Qni8X3geLSQ7WDXoNuEB6q6gzVzlXFE0M9lbCfaRrEBXXFh8F77zGI3xDVko2UxNrj2q09kl23W5gB1fE+SqH6UI0vd77Cf/rdDzjVPmSYxpWnbvc3KTNL4Q+/Y+YL04JOgrYr+5iQis7jFXYSl7OrRBL5AEFXFS4Hc3iV8KaSfdSzZ3s4m+HOPdi/A1pWllV48b5zkYyDQGox6N4Nv91icEcY4QVcg0xmkT5IgkODCyCtwkGd4qFYO0ywS4JWj3R0ib2mVzYhadTbFlLret1nxudvJer9NRnlCDXFoKF1kHNYH4u+B818wz8wDgOHqa/hGHutZ1f+xT/l47+Oh07KymaTyPMVJXfI+QjTu5yEduzR6KtGgzYAKsbkJGhyYcqdhvF792B0hccWaE54D6RdRMkSPlZcodeEkfFuiulxTvFvUzwnoyllPHTGm3pKkZYRlOMAJJoHwq3qiEVqlwPW4mPznCJlAydvlDQn5t1EaoGo3jhL3LmxoUyZez974B1PbHn6mSP9uHJzk2ninDyM6ScYQFZo/E06ohrw55ggXBl5v+89O374p95NvfjJT/RtfsOvD7x7JpfwqWqtIF4xT5QSUipXKJMibmDKkcZWgqPUmsUebZ22Cmc3lFOLIkq7sN91Lo4BVNZWmSbDLSNdSSk8HHwwG9Kg2qvEdGmzAywM/MwDlOo9sV44m72ScydrsH3MnTbkh6BBX5Zg8lyxDns1pk1MDZMFS8Yt6NnZOv/Olz/KX/72ey/TXj7MutpPOozr31ovrzhN4De/f2Z344hdFmxbSTne/5Kva9cBtodcWQrXrFG6YMWZU6L3TtIg+SGO+RpFmkZcOX3Q4pvE2GWTOJqFVwd7UjmSFMg5/Nk0jP+RGfeO0clzxrWzaRO5JG7kjC1GX4VdKjwqt1g3D6hlZj7tqLmxpMzzx/vMOLWFP4CbojieDOuCJcDiYX7jRqF5I2XBHig05+LJji8xFU3urAm2YYtFN4YPRDwcZyDPF3zt597gf/r+81ezJ96QkM/Ds0QSX/Ju4T/4tcpnPx4eluZOl0I150FzlvM59nVKZM1QAqTt1SHN1ExI4T2MdzOVu2cT/8avUH73r6rQVqTO/MQzK//rDwl/7593zD6xcq+31uu3/tDXfQBajIKLRepXoaOtMqNICpbElBKe4ebNTD0apQY4fjg/slwcyWzJVlkX4eYjN3n7Z+y5/9P3cCn4LMzJuEggJVHUmCQm2DI7t9+5QVehLJB3mYuRnJgznOoKWljqymYSdlvl9JJy/9lO4+Jj9il6a33ktS1hfyHS8e40MvXSsOqU0sLLrITsahUhT+EbZFVI2Wi1R8NugpjS6Wy3GWtG3hQSQskW/ooyAqNSDIvSYN/IkPRn6fQCOhc2UqkipJI4Xaw0T0CKASPgOVjSMcWMJpIOixi7ISkThGadTHzvaUjKcKVa4ive9wR/7Xt/+lpi+HOBLHgZtPq5+/D18ND6VF9mhrfE4sOfOHkY+luAi7VZ1FSiqIbhf7RwxpnG86cQ0mQdTbubj37NRxK00BVwYR4SsMPw0ZqAq7CusP4IVk6kB0bvZRDWDuN+unqEByiRYlfD7yibkJJw6s4qUT+Ff2j8KhLg2j4Ji8SAGiCNXuDUjcowqpeo8a/74MFOExfWyEinewxNVZRZ4eJC2G47TeL7Kgo++tXZYwK+zcp/96V3+Ws/eOLvPfUAhkzyjTp4+nivDPz2RzKfpQu1hQ3SNMHU5WVwNIVVSNWQ94XNUdT6a4LUHMnCkpzskXK4yfDu2Xny8aiDlxdhmiAdgiSzcbh3I6yLDveNOcf9zS2+p36l0MlCGgq3PvauW+zFHULrTs7R03aNQbT3kA16D3smTaEemVJ8/6chQ/Qevr5mYRkyh0U5jrFtcJqgiZAOIXOsd0CbYGqodf7sl0z829+1vO735A3BzPqyz3mPbzaJHHqba3PghIS/FaED7dWYilJyGEW6QepGTsGcOtV4EEqR+AcSQE5KGs2cBd1PiIQTQ5izEpYtRiOM3VUYnjNCXY3NNg25FiPV1OMwIrTHpx4+SM6VVlpGmmGwvHqLFMRU4me5PBpahJKF7so0KbusvP+xDbs5GoXbN2be/bYzbt/Z8//8wH0++OPnHM6PrHSOJlw0WLpzRLhXnUWUdQB/kY43Eg51wMIaflquGUvwo9/zFOuzP/Tz7sXDNsGB14ay/4U/8DjaDc8BZ7s5IgnHR+woQ0IDdnIondaF5YGxvxO64zTEqqKdpMraElZXNIcpo/SE9fDQ8iuJKeDiZE2RQEKYu6cU5qZdwn9Ihk+VaEBIVuP+rkcPmv4m0g5joGL04clYPVIVmytCw2yiHxtSFEvRbC4uSPfhLSLheYTwJ//6cx+RnfVLMYV/2PbXh9tbCfiKz7rJr3v0nKkkunR254rtDAhZsAx/hiYxBrlin2qJKYgOQ0fXACFN46y7CojQFMVOSoqKsohFik4PL76ugkijpA1lSiBHzPdIcnpbKJpxSTRrWI/GQSSRSTwiG3SjpKXyjlt7bsrEdKHIIyHf7iacfupD6JNnXJrzk+f3efF0ZDHh5D0izUsEG2iPKeQmByiXZcvRT3SLwv1ETDSzB3ORKnRVmoUfVx7eASKCjzFOT/BPP3SHv/ZPX3xV1O9baYav21flnbeEP/1bM++/C+IT9eCUZOSSmDfKsYNvMkjCXTmuK+uxsRyFdEMjTbM7iEUwCx1oKFuqCCadSSLSXiyjrSNJcTtysQjujVYTa4uJ8vMV/tx3Nj74vND9kwNwvRnOrtdr/f5/8/NRMVILVlYHttKQ2iia6MR06MYmsd8qzRKLwS45l/fOOb1woE97Hn1sy61bM1piCDnvN8gzL2Bvu8XxpSMX9y7IKfHY3T1rr9QedZt61EIbM5bWOL24cuOJCffEipJqZEHvkiBduKiNKWcuCbPcbPDgBN/yt38c/wT0aw/b3oJfeH+pwB/56s/BTj2MqLVyWIMCoj3UEAkhDXqBqlEPHbvs6D6YL5NEI++1swymS9YIa8rzBhVHX+ic7422NGQYIZWsLB3cOs2FRIOlgBppH9415sapRtlMUupqrB1Mnb4YogHIa3ckEUxDTzTv9J5Qt2E3MnhfLhQZz6kabBdzZS7wT5465weeuYjqbvRiwUfzq2v4KkP4D2ce/1rWw7a//tKX3/VTh9XtWnqpKIfamYbnp2FsRDExxDVAzAG/iAQYZG6cCO/i7iEPLNpJrmRV1AMwnTFElPOuLISMD2HIqQSR8KjqNRp/l1BLuFikXGK4KNXBxZhcmZNFuqInqnQWD0miCvFaVwBDCs/nIFp0zMMGHvWQmvWo29ceA06Gz66KDX6XUIkQqC5GsmC7qghG4nip3DmLtFBN4VldUDTFdRWPP8v487MH47/4ngecWgWB/ibzzFLgP37bjs+wQ4QN7COd79ZILyQHwD0TA1lLIDksh6rEMJscRuyeRuicCZsCv/rdzvwg6vu0gf0LhbqrlI2wLE7ZCEeDi9X5kQYXpyDXlDUk1fuwDaROsDuFRxcSqp/FBUxY1UgZzgk/LORKrh0sLtcAO3c9gPvRVrD26E3aeJ4vGbTFF8g1fq5eQg7bL/365849khOTBuA2T/APfmbiz/zzFbVf3DvrU4qZVaYwo24MPaWH1tMgNocOX6usLMsgNyaPtAdVugjWfJhkG8uhk/aDbTXAqfCdcawr6s6yCvuzaMzojl0xmcyuY9/b0Bf37ihRJFkNpFIZDz6JyZGJkNVZWwBZ6sHW6V3QouREgFcdtrOw9GAzuBtVgq56vjbu3NkwpXitUNt3Pv99Z/yyJ2eeevbAj/3kET50znR74rw5pTvnJ7DaIwnMgaHX99BsROyr1RGf1wDhfV/0Tn7s7z5FXc8/Wbf9DbP+4h96grZW3AokIdNwFEng1ahkxBxPjhp4tkGwBSwAyd3WaA1w2G6U5QLcKjIEzF6hdolCvvXwVXCGnC/2moiTPKPeGRm4FDo9JaQHIFrXTk6hhxfC0NRJ115s7sSkcngtFQ3GV1bHTEipkfdxaK3m9JOQ50DkY6rT6Ra+a9/0NY/yp/6Xe9eAlb/8U3NlAv9Kb623GFoBlG/2E1/65DlVwb2TUsJudfrzynwXODm6i6SdLEMsJ4LkoT03p0xBwS1+pYM3ZE60U+ydmkAsgRhdnaSKeEc0k7uj2clpQy8EgOoTra0k73HvqyB6Ai3ovCVZx9aFrBM9V95xfISbj4QcY0qG7G/C3CFl9LkDG3+UJEaRTrr7OE/fe4ln60ukDsce6a/bOXPKUJaOnHdyKtR8RBWSKtWMnPzag6JFb8NUja5BvU4e8emt+5VegCLwRU/e539MSumx697aeR/7Ekl84FHnf/i3tkzZEM/4MEfQ0mk+xzOxddpI+vUpipiDKzoXpGemeWJbGu/aTpylkN6v68qFJQ6L82Jbqa3Sq5IpsAnPCe8HjpcEc3UwK/ZbodN4pyX+m38tzqU/8x2Zf/QT/U3NTHgjLxFFPOQrKo5g5NqvGaaeAozYTAXcmPdb+to4c4FjI10Yj73nnWz20Lpw627msHZkddb79ym3zvCloVZ55NEt5z97wXGFKU9sVLmMwoodIK7MOaHbxOFnFvTRGaGxSgqGf4tnvZvQxemuuDoineks8ce//L381//XP/tkX9KHav2Rr/kcShP6zcTxhcpmTuyyUQ3SVGi1simR1qxl3JOmrOaU3slZOVZjm0NO78hgX1mk+E6OtMQ8GdFujlrOo34r2imqLEA/Zo7ZeeyJicNLjeXcsRRJmG11VongH/Ee1iJjf5jLABmcTg5Td5Fg9lv0FeZhLJ5EqB7s+Dml6zrJzPn8t+9p5vzwcxcA1z5ZDHbX1d8BrwCyrv738z/2ZlmXLhQxMiOVWwTxzk6HBYhC9mFuTVh72GC0NTcmFap3NpKpHudFI+pmdRm2H5065IRt0Ol9SO9cop62UbupKCuRGJdy9H2ukEzIyf6UYMYAACAASURBVHCLflAQJEmkKzYle5ivC0KqgSgYIZF0S1iKVMJkTpqc2gSjYy4UFLNBEPToOXszpizghrvTfdjiSHhmJWCRzkbjfWMe1f3BA7TwFuFkuwzeO2WAdo1Rmyrc2Qj/7a+/yTf/vweefnD8pO6DT/wKP9vP3B7RJLTVkQNst3BqTkmQLfxiuzlehKk51iK0TouSiP3ZFWoGryDFeeKx4be1h7Ik9CUjbRubs4x7Ynqy0o6wPYVi5+0K/0yEVJ0iIFVZ1ZhqeFf14dvtQw4oaYhDffQpBNDkBElnMZg8UjbPhmWNEkzC3p29SiRuJmE9OtvxM3RAt7F39BhWIduSOKydfA50mHZAF0Sdwwq/5tbK950V/sGDQWt9HdYbAsxqLSLYpxy+T0mhSVDyfKDpDMnf8aIzTQE8qVgY2WnIEY1oiMo+0RYjbyJxsBFNo3nIDw+XnXmfaeGYhndHm1Nmjaj40bqrSKRErCGhKRp/Xz2gThFwM4xEUqe3QXX1cPLHnFzCea32QZEeP/MVu9hwmkV851P3F971+IZp3uAiXF42dvOCkNgU58k7mcNaOFwU7FjZ7Qs0SGv4NgU+D2H8TlCrEUQtDAkJUA+C8vz2f+lX8/Tf/05ae625Ag/f+gtf93gU2y7INk79bspMMAQt52CRjH3SUyIRdGZtiZR7INo9QRf2+8bxECZ8m1lxTbQaEw8szORngvIbu4kxO1HcFScYOR0huQZqP/TIQrD53A1VpZ5SgBbu+Cr02a+TIgy54tAjLpgFc6cZIYnVziSJvm3Uo6KzkCSmN1OO90E35Y/+9kf51r/x7DVD68Mxta7+7i1AC1D4gx8QjimoxgkhtwZSOLsjtJfAb8XUsCehWPhMMSYjMvT2AYRphA9Ip5REszDGNRtPIEK2MOWw3jbNGJW0yXBKnE4npmmEYOiWVE6obJC0UjYlCvCesHVlItNVcW88UW6xPxPSi4XNnRQTYDvhl06/qZS3bZH7lwhGyRs27QFPbCYufUv2ThJji7CcOhsx0MzxrCG+Mq0zbV3opTNtCm4xJepLTAppQcduHnIQcHIXyqSsp5B2VzNE4P37xAcfhEzzLZnhx7bedUP5R793pmZhEuhqAUJdTXSb0v1EUgdJ5DmTbhSaJdZq7HsmZ2e+U7hZlDu7xLb4kDsLTCXoy2fOjz+98kzLHKgcKRzvH8lkUi7krbFLiW4N1mChJu+4dJSQkf3RL4V//1+e+fH7jf/sb3w0Ic9vrU/E+tqv+RUkVrR1XEcqmzuaIXtIKlwmprRy6+4Z3WG3EeTkPPuzL/LYpz1O2jv7G2dgCxeXleXeBdvjij3yGJ6Vvi7hUeqgd/dc3F+QXWWvITHEjPOReNc8BpTznUwd/qXeO9rgwh3Fqeox3MEwwosV6Rw2ic98+w1+5GfeGvq9Husbv/rzKHOizJl6eUQ3ibU6U1Y2yZHsJE9RLwuUlYiYdyFvE5sJuvcIW8rONimenXYIbxcXZ9OFvMnki07WBqr0amTJFKnB0PGQvba1s7ul9MUpW2UzfI3UOzopZVKKGec1eofWjFqVs+wcXEleyVmxlmgW9Vty4SSxzzsBopTxfFrFgungHZUYFv3Kd90gI/zAs+fXxyWMuspfBqyuJYj+aqnhm9EUvpuFPJAAsrYEkeFkxmZSjt3wAdAoQ1EjISGcBMRD0bNaj/AwcyaNa95QksEswsmCHW7asabhw2Vj1ixhTRPBUHEWiQUDRzTAjHI1rCMzTbA26IP5pdLJGoCBuZLUSB1sEmoHE2Muwm4S6jG+7jx8oJcFFjNUnEkVFWdRZTtSOE0MkyBchGd0XIelC7NEb1uHLUlPTgrr+xEm5pgF2FUFQJkQnI5Y4ujhN/hNX3DGX/2R9MnbBJ/oNd5+/9WnF9wrbTCXdgv0S2ALJSnzLKzNKANA5CyUFk0hNUMiMJxawHIwB28l4V17KGUE3J110k8lyrtmuGf4p4FQSM8tJBF8ce4ehHvm9FN8X6kZ2mKYtCVq+a6gqyMvhb+uYMxjKLzFMVGqRi+yS45l2EIMyHv0GuYSzK2to1OwyyYFNPZQdocXQWrIJ+cbimtnq8J6y5EWZ1i/6hMdalG+4QOV7/1u4UOvE9FeX5+X+RjXGEXU7nSLg8psxKr6QAcJdHC7VU4XFTeGWSysPeSB3gegVUd6CKFhLiLXEsFl7Wx2QZm0ZkOuLkhR1kokJo4HigyDdrNIIrsym3diE64+jPesU9tAwbuRJejIej01CQDCbEi53Njk0EZnHXIhjQSUDz57RL3iGBdL40PPX3J+eWJZKsupMiXn7FYAJ6mP9IRxUF/zE8Z1uwK2dHjPyDW5IYCaG5OEb1ieP8E3/I2x/vzve5xWHO9QdlOYpyPkDKhGEWWBRLuE5FU9Um/qudAazDcEq0ZdnWl2Lo8+pKiRIqEY0zRM+XI87SpAL4MBOEy7paMaD54wkIx7lFNwjQXoteGitB4UfA33SiRBo+N1qGszqNQAwSwA20nHhNLiAZwlHrTikDdxEBnxsba28HHyFoefxmH5ykRDeHWR9XM/9mZd73psxxO7Jc6ckZSKClPuUBw9q/AgjEa1OV1CKigW+yaleOggMIlRpjiiawtfNA2mMBNR2IgI0iMognoi94wcKj0fSZswh9dNAanxXi9G0hQzRIE0h/6d1Jg63NDCne3EJML2kQl/cYKnFHmuw3MT+pMXeE74vgATpMxGNpxl4W03zti1iCY/2kotxjIb56kFRV2UZaqkG8pUBFmMfr+zXtjoMJ0yCTY5m0QwEB0OOItZNB9cmYopX/svlDDhfWv9kteXvKvwwW+8yfd8/ZaSYOcWYyEXSq/IZeXw3ML9Z0+cXoD79+DZDznPPrPwsz/2Ej/zY89x/+kL2uECLhc2x872/oHtssSUKY/kCpmhNtqzL7KTYCXWVejW2NzeMd0ydAc6QaIzu7IpRqGB50ir6mAt0qeEyvtuGX/19yR+8+e9iQrqN/iabtzgjBPJDEk9WO3W8RaS9iSRzDVNlVRmHhyFao1+MPLpwL7AZtO5vS1UqxRX+MkX2Kc9b//893DrJog3ZoX9XKIxECFthHRsZHd6V6okplTovSMdbJOpKWHHlaIZ0dGZiHJJGMKfOrTWwtjZFOvKNnV+y2fe/WRf1odifeNXfx7WjPZi43g4sduVSBRvIbE6AClNpCRsd5mpEGlyLmwUzuYx2HbYJNBupI2yKYl5E6bfQgogsjeOp1AhqAjbObOdwVvhbHiO6Kkz7ya2c0GzDjaDh1KjZVINac1Ldexbc0QypQg9QVHDS2ZtKczDJYAsNNKHGx4G3D7MyAeg0DT6nNbSGGkan/tp+7hIr2Bc6StqKr+iU7yiN7n6vKtf30yglkoMvFaRkeju7IqQJONmbEXYpggLu9oD05DvpcGkSg5zVgqJpJHMNgtscOar+jgJ1cNYPqlEMJmMkHKEbIpa9JdJApRaTg4VsgnS4j9zC4a8GJNLyA7NOXXlYNEfJgTLgrWQC5YUoWd1cUp2+hphY8saA08BUg7lkhLXITLsh9Ji9BbdIwwqfJ2jx+giNB9hPa7B7Jfwe+serLXmEubfGEaci61aWEC40b3xr392+WRug0/oUuA33Erc8Eb1EbZmUPfx/pskzqRuPUgHKa6fd8dL9OoUsHmAhKswXxhnW7j5iLMzR0ucdZtUKCpwU7CNhtLmQ4a8PZN34dm3Udh1wWfBSsJyyBb67LTUERfyCtsE6W2C3HL0ppDuCH5XSLeFaWfsJ2EvTlrD52o6CtMh2Ph+E+SuI7fHvrh08j1huRTaM4I+B/ICeBbkljDfFjQbrnHOaRX6OAtXD3sk70I2o2X45l+lbF+n+/OG8Mz6jV/4Hu/mpBzxojqoj+qRGJKyMKUBSCHUi8p2l8N7RoWmMaHQ6+Y6phXroXN2lsMM1KMT7LWjRcGEUmJq0jzAoE1K1BZSBrMAvEqK4rk7TMP01v1K1x7m8eIdS4J3xZdGShFl6VlpRFpGSoKNhDjVSPtKEv5WMozgzYOV9thZ4Yvff5PNvKFaR1BqbZyOxsVF58ESSOqLz66cIzwD3D81Th5StkjeEJABwkhwf0yGef4AzlyFE4kP/t1/iLvT2vrQaevh5+uf3/1o5j/56keiudfwm8IjerlZQbyjdMzTmHwpKRmtKdmc4wOhnCXy1NHuNBwpRluV1IImnD3j2x5+Gy4szXBJiHS667VxpHuYMqKKmJE8jFCTBsPFNEWak4e5Px4pIkkSIo1lTcNscoAgCm01NIfMsEtQ4+0qylAGYDzkbFnh2OLhbu74yfBZwwhQnLoGi+9vftd9vv8ZH1yyX3z9Qgyth21/vWpvKXzLv6LXaSWhMBXKlbnoANTno9CKMG9GUiFRzKADCAV6DsArE34OQT83NCmenMmFnBOn2pivJNJhmhXm2lOmkWKCJAkZFOcoehP0SspbzE7MeUfuFanKFuOz7j7KRhLpXJFNhlTgfsPfsUeWjN27h2al7y9Rtsh65HBS1sMFP9ErT/f7VFVWOjq84GwUe71FUS8dWoriLAXZB1zJaxRwPQltcrwLa3U8h7Q2E6wsUaV3497hEf7EP7wX3gT2cO0t+Pln1+vymijf8pUzv+39mZITmYqbcPGg0w+VZsLmZmEzT0y7hM8F9CoNWFn7SpWIB788NZaTcGtXuNM7N82wUzyrbhalPL6FPAWnfalwWGCb+cE18/zphGVnCWNJukVD0Xone+zR1UB6D/kGCe+dYzLENpiu0COQQyThJvyub4tAg4/HeqjPrtfl9ZQ/8rs+G1tgkyOBsHgA0fXQmHeFjYYUK2vm7iMzLx2dnAt398LzP/oM27fd5e03JqZt4iTOc99/zts+9zHWy3N6F9Z1xcvEen4KPYcpa++oGd5ikKiqtN5oaTzz6FiL0Jy8dHyGhYS3Ts6JAiw0pMGFJZI46p1E4tJhMmGtjW/+W0+/npfrVeth21vw6v31B3/L57HfJ/pagah989rQCdoRmDK9r1ETdWO7n/BecVUwxZ6vpBtCkYousN8KB3EkF0iNy2MfMbnh47ffTfBgQW4o/bwjJTEnOBwacqx0EuWs0Kyx+EoqE23IJQ5rDK61dmRKTJvEamGF4q1x6oJ047AG87h5sP8wHaqOAMW8hwxRPCxABL8ejruEtDoT/lkJyMn4377/RR6s9dXMq7iYr764/mqW/C9mCP+w7a8/+2V3/cpKJV/52YpgtZFziqAZou4VccxsGKkLRZ3kkaCKCM2EpEbzK0AivM6SQBJn7cpqkfRnhBVIwqnutBR1uYjTmjLnqHyTQnFhlbh/edSD1aG7Ut1Zlhgy5xwsKtFg2neiJ80Jbs7K0oxc4LCmK1oHK8qZxms3g1MNX6Scot8sYapKdzh6KIzyII1Mkq4tdI5rgC2biegTLaxzyiBybE04inMS6DUcuLo6E8JmdMH/3nfde6j2FnyYZ6MIX/VI4qvOGmh4U2kKsnkFOIYlSLoZSpqUg4ncLIZwyJAU9hhCr7PHrK9ED/CBWbnRLIY5u0xaMl1P6LyBi4S8E3jpAC9M4bl868T5c/ATzzov9QhIEpSiRjalFWe7dRYjZs4GrQYA51OYxheL+73JwqnBqk7pMEm8XnsGrEC6A+LByFKBWsFbhDtZcgpwEhg2biTgpLFvUwrPsC6RAOsyUhLTuLwJvvWfZP7xS78ww/61nl1vCGaWjdgHs5Dn2QCXVOP3ZmF2XjtU65DD7K4OP61MTPGN8MWC6AjLNh5AlSs/hKEjFQm6HPz/7L3br21Hdt73G6Oq5lxr7du5kDwkuyV1qyW3JVlS25ZkA3aMwHGUiy+yrdiwEsWOIMCxn+wESP6EPARJDBsBkrwEeQngILDf8uJHO3ASIIiiKJHUktKtvpBsdvNc9m2tNWdVjZGHUXuTLcmB3Wo1qaOeBEHynMNz9l5rrppV3/i+3zf4LVGpe6xhhOtJ8RwZ13WIQ82M/WIB5fPIXQc5yekeLiklDoykEKsCZO9xxhyOrPhOY+HlrvXA7/4JqPDs0Pn5L9zwha9ccjhUjofG/kWldiFvc8QnszBvM2enCTUjaUTbMlHzKuNrEx9/Q7CYzMaPBfNkgzH9vs+AQC7Th3MDfIuv/+DPvRqgRAJ66D1F/HI0P8ZpOQWrzT2cCj0ipIfbjhRnKhXvgifj7CTjXZknoWwhTSOmUxO9RvRViMhgs7DNx73ouESMq/d4oHURRBtdoLaEV8N7IrmQ1YY4qQEudaVgpBStJarOUHwRU0p26EoqjshwexGi3d1WqHkeQms8rNNsyLBwi8FkULLyZ//Yq2zvaIH/P9cHGVq/166zaYpD1QCaK8FbSEkpJVGmFFn5LeTLCScmZmadnDNqwYjyFi0gKUXxQMVZuSuyiPYbGRuP2QpqCiWFMJY8QLUMoKykWO90JhkUUTI9hLURn63rAXpjKsbjzTnZQNYE1fE64+cnWNkE0PZ0jYA8Z+hnQT57gP2G7e1EPjlnc7myezehXwF5C+zWmJOO4o0Ag+MhZIk7G5SNC7oAOGTQkxDa+x7a4kw5kZz379/xOU0K3zk947Xp286cf97ru84zv/IfnvAXPj2RgfWm8c67R770TuVomfLonFe/64wHr01MZxumjXOShc00BWBZjVknbD2yLEZNhu+ci4sNjy8K28dbTr7jAY9/6DXKJx8CAmcJziZQZXl2ix+cT8xHTkt+/6CmG3IqoJltCU+CaiInwyTWzuox7csWQv5EYpLYQQmGZeN/+JnET/3omBaLcjJ/+974Vl3/zp/5Ya5fOGin9s7qdzEoRzYRe4BYc5DOUpV5zhQx3v7Vr3JcEtmF6eEp3Z3yxUs+8ZnH4SadCsfDAU+Z9Xggl4avPeKowwHrAvsX6wA8J1IbQ1FNmDjbFM6/er2OQLyTU2ff6+DfCBtxksVA4Lg62YWDNG72327V/Eavn/nx72POQHc2keXCxSkXG/q1kafE5EaWcNqWJGh3Us54E+bseBUmUzYlkzexd0qmoIZbQl2QFDHE3UmOSI0Xuhe2G0UtDqEyC8cpcfZaZpp6sI90Yn/VmZIGPqIbc4GSM3lSljpSD270fOcka2SF2ogSE9dwCtVwI5oZqxurdFYJRu6xO1d1TKzFg7flwTGqQG/CT/yBB/cNdvfi1G8QqmJP6uOnfmu3/Mt+JXWKWKAxzGEUjJiHwDJJmB3UOsmNKTmF4Mp2nGqBC5EaHDU1EBOsO6LBOisaQ+6iIBLpiILQvbE6uCZ2AptkyBqt4o6xTZF8aBKDt9YjAnsk3IMpdSZ1tlPwSBOjWVNAU7QwZoWcYb/CanBbwymzOelsz5WLeTgRNVGX2HenLGOvBybOgmMqTNqZHNwEb8Ji4eDybijBFMMFEwd15mhAo5tzJcZBApcRKQPYDMj4Quf44XthviXXicOfuWgkgY3AUoS9C7c2cgJboVg4m4q8f0+duDDPQtrBnEBLOApTg+whcp5UWK4MboGktCvHHx+Rwxb5jg2iC7xtwOvwBx8hP1KQR5n5sVPfgGffCesT4fjIOJxBfRRrxKJBd9AagpKViJvON4PTlZ3tZkRmCRyTlPi1k0F/RVAT+iV0D+ZW9Yh/e/HglssA2DN65rIEoqYH1kYhzr8Ok8JcIJfYuweOCf7jP2xsvwnHxY8EM8ssLLTq0Koz5WAImURS4T4njkWkUIx16eSTTO0eYHULx0kp8bAME4pQFydvAwIvDLHMQlZtPWykbpFrNuED7VgRwboj+6ekHBfHFiONBsShbIXCb7E4mA4nlHq00RFfv+j7B33xiLZp1hBPxmJWNB7SkpV3rjsvjs6j68ojSVy8uov/zx1RaNVIJ0q9bNgaNlthvI4EK8nGQ/CDD0UJwFM0HQ7P8nd/4oxf/twFXi+/xe/8t/76e//eE3wxbIoPdkFpSyfPCWsdoVF7Yn/onJ9kNMc0ZK0haNGEclGQtIJ3VJTaAuhXu5NziEi9CwsWEjidbune7VWbk7PTW8CRkypIdFCa6KibNlQ71oWce4ggFu+teWaVyJt1jDQAk27RmjiXEE6tZcomsvZ5tKkYIJ7IKaYE4Ewb53Ds1JbJ6uSkmDZUMrixoCCVv/3nX+E//QdP3+e+IV83HQx31wcE298TDK077z/825+JKXLA90MYV4QjnQnBcsAYc1H81QV6wlNnViVLo2eJ9UNDZFcfXD0zSr5zdsYqEjw1gyKY9WD3iYNMKEouCe8B0W39ANKQlHEVim04PL9iPV6TScySyNJJ2UmlIecnZJ/x1xLyKGOPFN0+gHPDP3eD/tAj+s+9R9oU/Ezhq3t444Q0VfzxlpYruTbkOFHfisKCy9k5eSPTZA1GWAdc0eIsNZpP6B4lCgKIkIpgsyNrPOh3O6WJsVaPTSXCfhJ+9sc2/Cf/+Jtf9fuyXf/wr53z6Vcra4Xr25XlKlzE88kJF2dOkg1l6kjOoEoVp7Kl9FifMoJaQlnBJra7iV1JHG1mcid/MOp+I/DwHPQSFodPPAAz5uWC27dvuEyZZT2y1MqaCyZ7ZA4moE6JnGKAJH1GZEVSwnqiSGMBxIwo0okBk4gxmWKq/MQPKD/xA8biwUj6n39V+O/+ybfZWr+jlwivnjq3T/cc60yRmBwuycGVE4lJtksnpRmScFhXchYmc/yq8fqnX2O3NaQfuHr3klc+9iq7As/Wzm2tNGCjjmXheIzSiKyO2hqIiAKbB4Wb9w48eqXg2w2PTjLXVwdqizUy50TPmclhTspyMKaSSbQ4/KFMCm0NN4978DR3p87jk8zT22/fR/8i1x/9wY/z6JUtfe0xsOsEyqN3JBnp8Ya0N1JJ9FpRTXSLsoC7obCSODvr2OXK7mHhxRUsCN47qSaaCaaFuQRDKE1KdeX8wlm1kKQRXc4JzXC6c/qooZcCqSttZyidk1PlqhrWEsmceuhMRcLtLkLrcr9n7xYb+2JOHQNAcvAwWxOg4a5xvskhlqQER49f6x6ih0tHPUGCtSo/9Qdf57//ua+EMDVYKvci1f1W/uv39h/8p4w9ycusM0wp0jZdA/EhJNQDyu5EgUOWaOSLwV642jGjubJNsbnSRAwA3dHReGkWBofWDZHBayMapas7olFQNmjpLMeEzs40WjVFwLqM8gshpzgGWBMW7WhS0jA52DjXugm0aChPGsPn1JU1NejB7fXVEYsypyQBg4fOfArrMtwQDjtLHG2YGAQyiSLOQUMENe7Ef6GosVRhm2xQsyTc0Slx6DEkwpSlCj1Fs+OqIcSaCGt/me+y96+//omMSmUi9t6uwWHMNYbOog6nIKvCwZg3AWG3PFhnAk2EPBHvY+iH6CKcfxW236lspjDv6CsO7yl6keFXGrz+Krzp+FSRrcIBRKMQzM1IJQTTbHFu6GZIGVFcFSxHMkxSAOmbOPMRLMf919XRWdiOtI4KVB3miMfgXwO9EtpjHxB7cAshLksUNZmDZGFtDptxK3bYE9pHc0ZLJqNAYRyNKxQx/trHZ/7rL/729vAfCfuE2bDSeijS3WV8yBmwQ6CP2kgiq7N2Z3GnOuxrtF2Ze8QEx4e4i9DMQ2V2p7ZQyE2FOlqwro+dYzWahSC2jj+4jglK685hMY6rYRqOAuuOG1SD1SOquHaLynHiv0nxEKtuLN1ZBgPMRLExfZI7kcmN1iLTbM04LFFLv187X3je+IX3Kj//hSt+/b1bvnZ15PJQuVk6z4+V6o4nWPcdMY+IE+HSUo9FB8ZDbtyseNx9Doh1sM7H/qUfROQjcTv8jl3/5V9/nWkjiBlCH6BEyF1J2SIjL5Bwzk8SuKHWkW6oC6SOiwYs0SQU795ZjzWU6SR4N1p1rHXmGcqcMIRpUpIm5l2Ke7plQEga8T4DSPnuHE9SME8Rv8IQ03gAkciyIhayq7rgHu1RSFiugYgVYvQ6cvzraDxMEkLaQZi2BtlYGwFHTZ2lOnUfDDgGEDdLRwUQ+Jv/5vv8kN+4XboTslT0Jd9KvX8JiQycbZXvLNEgYz1s4kYs5EkHb6PDlBPg9Oys1yFYGc5aoaZYgyQFc0MJS+5ml4NzkIS1hUNABtRzbRVLMf3oJgEqTdDXRO9HzIyNJjblhI1uuXn3yOXnb/FFODs74eK1C+xxoz+6wB7PpDejjc5fTfjJgp2CFMEvKv1rFfne1zj8qCN//gH8+CvI903wqVPYG/5OpdwqJ2c78oOJ8kYjfU+mf8fEg7ML7MtgzwIiOU0gyWktHuxypwmO/btIbBx1DWfa/DCmje0A2iGrRiV2Nd7Y7HlSvu2c+GddgvD3/91TPn7a+NpXV7789sraC2dv7sKhsBUkJ3xqLCQWU1Z1phxrITR6c7o1ju4sKVMK6LqQriu7Fzf4iz1+aLFrmTN8+jH84SfwvW/Cox186d2IGW4TJ5+8YPNgYrvLpEdbpnM4eXTKNG85XAk3X9nTW4um4gSkFEiB3DERQBExkAkjoo+Kg1vwl1ipBITUXPnjnxL+7k9vf0+6Rb9V11/6S3+EozV8O/HiaUU1Ku5dHUkdV0N8JSdFBDbnhZQKkypvffYF6fwBOUPPmf1+wfuMF+PKBVsrvnaaCsvxSKrBxMne6N2QsYkXDw7OxcNE68rTL17z9v/7FHpnmxLJhGSNMoVQsdlmJIeTo1tCyGRzltsa91trmFdSN6wrf/mHX/mwX+bfVdeDsw0/+v2vsZoFDsQzu5MJkY66cLzquBtympC5k3fCuqxIUTwpHCIOJtY5fWPLPE8sx4TlOEweMG5bp+wySMdbRNF9aVw83KDVA+7uBJcyx56PpDQ3KoatkMWYPOGeuL40chLEOqnAdDbhKUSsfQ8EihBnDXOP6JnDJoOmkdQwxqglBuWhMURRSRQwGebjOe5QTcY9KJEYsM7P/sgTYJyBhA8MpOMf982GH2Bm3TG27tuRX2KX1tGUpRt2MRZ46AAAIABJREFUVArRCuhAmZ21hWEg+KJ9GAkUX4RJNFhUMdWlawibtTuThntLxKnitETwqDSGK2ZhOkChS0cV2prYbIxNcrYokyhuETUTiVgeHjga1eGM7+CWWEg0lE6CFAiYikVRmShNQVrCuzGrsRFnIhwubdwYHbDVmbE4zAwXf+wPBRlYkoUPJII8jBbguAreZUQho3Xz6CMBhVNHCdGUjI1HBLsRTYt3CYKX/UoC358bs0Y0uCZDNeJ4qYSD7h7ofga5QXoBU4XtCqmFs01wcne2SZgLzC6Urznr90B60qluTJ+0KFjKG6gLnE74Jw+wuUKyR5b01mA1Wjf2U5whVgv4eryroCUGAeYxKHYPw07CkQ0sD4V5L3A7RPYOmdGKKIKnOLusgD4CHYm5NOKEs0LKoYG4Q0/g2TEdEdsklCKcSBT35SlMFja2YD4g+DlH/PBPfe/C6W9zf/aRcGY5sZiUOzXQoXmwZ5DInbuH+pmGQj5vlMPROTkZlroeQliINFErWRR8oxxvG7uzTM6wumE9UccHXnKIFkfrkRNOyhqEWWoNa6m5I35n9VWaOl4dyYJb/Ly1UEi7x0GrKkgKR9idfiRDtIga11g80jj2JxWq3TVPOPtDo+QQBVbg9ga+ctup7sw5jZYUYRIhFyFNUPedNCmebNiXx+IVXq1RFawhkRIhVhmh1vPkXP3wj304N8Dv8PWf/fSb5OxYF1qroSJbIWWL91adYokuzqaEmpwEck4sxxCAShCLaCOimomMsSboJHx1KIJ3yFmGo89Y14Yq7ObEjVXWY8QCrXXI0FoP/hXR6qPuJFXcwxBtLpglIO41FExyTH3EocTiU5uSSzRsNkvR9ElDUyL5sPGnzMmF8uKFMW0b4oXsPaaNGg+vkhUSZEu4GgmnWUKSQe2czRMPJ+P5+lsvPIJ83UZL/eV2ZzkRCf1bn9nSOaAdvAQfCqK0Qnq8FkkdageRKH64cOxaWM6CFzibYSm4DmuPBkwRWFtUPSdrTMT91X001SQJe3AueO/0Dp4czRFDpVdcG/svvoCWePSxc/RJojSDYyf3xkU6Y1Mqu76h1C3+MUGWG2SeoHT6dzhtW/CNwrrCcovWMZ0+GvlcsZMj+9vCVy6fYi8yftJJbcvJ0ejbA/0iw+NKenuLvHWkPjTkFHRxWr/jDyjSw2UoGFnjNSzmSBMwI88xccI7vsAuKccE/9Ef33xYt8BH+vov/uKOP/HxxO2V8fwyc7IpXDxQzktsPJANrTa2wCITlqOGng5rKmwJUUkysV60Srvs+FTQKXFgYZ+croqeZR5dbKEK1AO89xQ2HdICz2/DWvrKObct8bYl9topB+dcCpzMpKwcL05Zj3vW6yNX7670Xrl4rZCS4q3HIWStwRSRJSbENViRwc5sdBWabDBdSKnhKpypcbpVrg4v71r0YV4PZI+3ypSdi/OGV0GLsiydaTAYRYRNKZgb06EiOfHFX3zKKx9/lSevJ6bthjMaL546F28U9uuB5elKOTlhq+HUOzndgjnrzR7RTHFjKYr2xonCoXcWScwinL5aEAvHQX1+5PQcnt0Y0o+0RTjcHDm9yCySWVpnk2CtjbRJuK3BGqydKplN7vSLiR/8+Dm/8OWrD/vl/l1x/dV/7ftIXkIQVGEqnbU2isyUreO2oJpZDy0a5ubC9NDJTWI/PkGaCpMYS+/sft8JN5+7ZbObWGXhtSI8RznuD4hlstpo6DXq9YHT3UTfKlMptEQ48zCsdXZZuT6AamU+KWiv1L1zOkdrcD5W9DQz6cqzHvfytBLcXQGGS/p2NeZkHJYAcDvBOo2TQ4gfDUNGq5RBiA4KgrM4wZVzyOq4GEmEp4vxF3/gFf7h//MewPsurd+Aefhg/ND4zc2GL6uglRlt4xKwl0mDiWXuVIv2tSQwIexXQ4syTxFvzQaeIMb+sY/ODCGxOyrBrQrZUXDtFOAkhTlCCKHqcEyc7uxecGw+xMo4csVZVIfQ0UP4XBFyT4ha/LhLDM09GgnLcJW5CEUCIo44aiGomoXr746zljxETEuBBYkoUxAmpxTy5mpGFmGxKCzLymjXjFegTp2920DhBL/ZCSbWqRjPXQNzocbWlV0jRDcL/tfLet3FSn/q9cJOI77uKQS8XGPPWodQ1AQ2GiI7rwEu7PbK7b6TOpSjs/VIFhhOvhGW4vibwl6dmyY8SI4sAjuHP1Jwn5H3OvLlDo8msDXEhKcL9RiJsBuPM6scQ1zLGWZCLOLayWcjkWbhnEIg9xBr61l8PsrirAJsQliCwRFPUXhQFeQJzO8Ix1dC5M0SRXuYwnPDXxFWC7E1vB7O6oPNLHfYlDgXxa3m6BEsScDkGvy3f0L4y//4G3+/PhJ34qShoruMxcMHiM5gWYKV1TwmHk44RkyEdTF69/vFpA7Ry+VuYYsHRpkUsXGwjPrAgA5rCEcucQjv7gHqHs6APpxebQCcW7trWhwRB4eOUE3pGg6zeJYOG7FG7HHKKYDQSYNvFeRvfAD6Akw4xDwB7yNH35x1H1n9ZsahhQPt0IxlNZZq3NSO1R6L96RYNdSNu3TmmEnEok180ep2D5YUA/FoPvj4k5ezmSKXTnOnth5A7hOlHuM9nQWkNPqovj12Q8dEpVtHcuR/JQvelPksQe9h8TYJUjeKJUUtLJjxkI1JXCnxPtweVoomkudolRwVu2mw2cyj8QQLIfL83OmW6EPEBb/nfCU1ahdqJdx8RvAfmiEEZB6EaZPJOWNNyRnOZyHVqCSfi5DMyXOKr8HDKZNUwvUyIMqiCXrUTJdUKNr4m3/2cUwa5P0Ww7tGQx9/qej9Rutld0Q8ODvlIi2IBOMqWXyOp5GbNwNVwWW469zvc+Q+O1Il+A8qFAe5a08SpaNkV0oOYbxlYTEDa5QkUZjRR3NJUrYlkUWxXhFvFIF+I7DOPPr9j2jbhfKiUvfKNc6VrFyp8pV25NfaM36pvsvl8Sk+K1jGa4ODYcloO6HOR+a9wu2KLyvpNGN9wSzx7s0VLpl6sqKHHk2Gc6f7RPnKnlmF+U1BtoVyNcHe0QnmKQc0s4bjVe9uF39/ytwt3JHJFdlDOwhljgfoxmAzHT7MW+Ajef2jf/+Ez5ytvPfuQuvKxXnn9NSZ0wGXsd5IQiWxkuOzLy3S8whr7dxKpk0zsyTY32IHSOc70qlyPFaO1UiiXNaVd64r189uYTeyzocVboZj7vEZbHcsX7vhC1dHWruJ1sLTmWXK+NMjXO45mQWdlXIy8/DjEw/f2PLi7cbzLy0crxwlITmhJYAMUpTpRNBTSBulnCi6VeZ5ZUopQL9rp62NpX5byPqduCRlaOtoonbSlFkORqOy3QhTW9l4PFtEGjuBVSYu333G3Iw33ijkaSIXuP7SNa9+9zl9gLzzZuZ4cw0YKWVOB+FhmkCz0YgCnhPNtN4oKZ6vyY2CU5Kia+fkYWbpwvn5hu2ucPbaTJo3XB9hee+I3VbqWhE32tKoB2WyRhKlt0YWwVLjX/+hkw/75f5dc+U5MW2hH31M7lOsLWJsi9F7NAjOk5B3it4uUVajCZZo9krZaTnaxltr7D55SmoFT8ohKwlho4nzx8G5PS3KWhtmiU7Hj4aVTgQQnG0RqMaKobXGkDsprJl5I0wq2E0j7RLb2Vh6uYcaQ/AtYezZtdEb3K6CibHvID14EN06tTfqYA8l1xHjCj6WjdREStAEPCmrhDtrwSkiTCXxI2+cxp98J2TJ17ux7i//zdHDu//vo1Dy9c2+MgM2nQRNwaZSj9dtziH+mDm9KtOswehJY2+qEikWoilzJth4Yn2wjp1s0UzZxCKpM0wLRZQ5ha5wuunY3WGdiDhyd5btccZSj3xVkGkSswuqgaDIEgKoSsQWg+kFqoELyQ7unUmG30aAcV5FjBXumwkhzpVJIu3RWw8DAzH8DAezMCcnq7EAq4eza56gHzNJ4qTYHWZxGsbzY6BMsgZPsFlD1Idj2pnLy/tMdWDG+ZdPVxhuo9miyyZnRss9kIKr1jxwIC1Dm+Cw6ZQLmDdhfnCctIDeCvV1h+8E3caPceXULdhEHBoOHakNHiqcJ7AKyxEuD/g+1pVfvgmOVbNh5MmRWqhDJ0lF8EMISFO6K8kjvheJ+8/F6VuhtNAy0OGeKmGuMQ0dwwTYOfk57FrEGl2grsb6CDBnoxGd1nG+TROkScg9Ipdrg978PqUiDqmFvoMJLRl/7OE3zjj9SJwyu4/mQuIbbR6Wtu5x0zSLf2/+PhurWQgBixnVQqxJQ5Bau4x2N6WkRCmJehwRqEk4HIbtuQ3WkBM3hYdy70Drdt/6Joz4Io6bsfYQ3pqPKt+kpHkaCK0QnMJOrPcNE1NJIVjwfh9ciHfx/d19vyoxIcgq5B7Z6KUZ1g01C6dXD4Gt9/hbx42Rh5NDbMSUnLBFj+hhFrt/w4W7CGLkoWRE6l7GSwgxUenc5fjs6B/gFkQLJWlEntRxacEzMAuxZzXWWyNnEBeaxWI26grDkXPU4BqlBplwVLWYzs3JefM7CicP1tgZabznZYrpydlZhZ6onnj86oYXl8ajh9CaQ9fgSFhYmFcrCFHLm0lx75jgOYX7zmIeuBwihpVmo1ni6rpydQtlo5ydFtLsnF40pI+oZQvPqmajq1EyUAYLxx31NYQ1F372xx8Fw+0DccKY58QG6y5yeHclXl4Q85/73lP2uQ9wqMKo9HaBDcJUQlBmsNVEoymGBGzAqtCbcmgRhc6E0CjdSRa27tRsCIQMcHFM3qImWpk1Js6xaW8IRqNz+7zjT4WLTz9iXQ7o884tRw4nN3hxfOMs/hxVAxduD3s+//YLqq9I7lHEcdOZn95Q3r1mfnHElg4t3YurJHj7Zs+zfmRtR2wumJ4il5XNyQ62hfZgy/ZSaf2IvgaWOul5AJ/dW8Bap/HQvFuTCT6FJwlG1lfBXoA3YWsZf2/GnjuHS4OXr1Dnt3X9q5/K1OcLtWbOTzOnZxFPSBTUS7CBSiErbCZDvKJe6ZZwDd7iNE/k7YzXhXa1oGVCzme8NI77PSuN47Hjh4gC1eMtX3p6yRd//avUZzdw24Jca06vjXfWyi/d7jkebsZgwZn8yOkuw8PMAdi/dck2KfNcyJvMtDvh8Xefc/5aYr1y1ttOmaLhWKZACdw5PycJoLO6DZC0wUR8/rLwd3/y5V2DPszrT/7pz0RrrgbOwVw4Xi0UiwrubYqmriSZzVSYdzOz7akvOq/8/tcxcSYah197j+13PMDrkTIpfem02sZwxdho53hzwA5HnMTaE+cb5/GkbD3gvN2duSQkBe+qWayVqhLCbWrhfMZh6pgYep7YnSe6FMzD6c7WaD0ElCnB0kHNmMSY9COxbf7IX+bQa+fBKwm7XHEzNikayG/2wlwiGJJKJmsiPd4yr4IpbM7n2C8vsZ9fl06tgmtjnRvpNuGibHLnZOPMBlOGYzMuJiWnTk9Cmmdw2Gxh2iSsGV0yS1NcEmtX+iqcPQhWad03yrlS1OlrR5bGnBhig6Ga47nkFnswDbTDWiMy36ViPcZ3BeUuO79ig2sZDXk+2EzSo7iqeYgmLnd+oRiOf99rO2a9k9L8t+RkAbGv/eB/+2+OIr5U1wSSY1pYDZYe0VRvsa+vS0YE5rkxi7NV2Ayhp3rExMwa6sGB2qQQgu50oyRQ1Nl4CBFzgikJmxwmCbszIWi8H2sfTvkaO+CShvBIsB4bgz/VY+g4SWBm7oTSLk5PTpOIT/burOOeWNBA73THW0KGO2xKMYA2DRFUcSYxRIxSEqyjkdHiexaESZU6YoVJYuiaJYSY1gCMnQpmyrIqWuL8usOghZfr6A4efOj6cpVkft0lwE++OVGGeSiMMXL/mqUU4vgszjQJs4ZhxhWSOZaEJsJ65rRXBNs5xYTdm872BKY2BDMTrm/gObBcOf12gecr3CxweYC6h5sGhx6lJ4vzxb3yrIX5p6/DeUXoGClFgXTfOtKgPfPglhIC6SzCZIy4KaTu+AnMN2HGSUnJBL7IIs9K6pBOJM61XwuHGoSXw2WA5nukmByGTjHEdBWaxlHZJVhdmkM0OwZ1hZVwZ/2NT3/j4uhHImbYergScEHNWXt8s1FnCyoesEUsGAejuc8mYTk60xw1kUrAtJPH7ykesLOkUPvIFLuTJzjuG2WrMTURaGsoja2FfbDbcAMwJh4SNuU0YlTtDrSYlZQEVCm7Eq6dPlgO3fGk9MhzkFIsfM2cJJGFVo2pjA8hy5xoVWkWfJxJBrBeMTGSJepYPwLlB0dg7sOSOsNhb5CjohoNqGBgKeM1NI9F28XvWUviIVK8jNdqAS9Gc4AgccopLLcKW2WqiaQrfFWwVxIihuiEeTzErEFvhhr0dSFtSrQ8ZDgejJI1eGMbQVahWaEkp7vSc2cqGUnG1U1lPUaBAUPsPB4db8rz51Ex3xzefutIUuG9r8V7ciSwjNCjMcKdFKsrpoa4hhNRe3AXpOOL8+iB8/TWmSVRTqGuwpxgWY0bU+ohrMvzJLQBLZ1GMcLMaFvk7t5PNI9JaVHhzQfG3/rTj/k7/9OLO/M88L6gdd+280G31kdDO/+mXmebiU9v3sU9JoTZDSnCpkKfiQaR8aTpAt4jU04SphQb3TJN7I9H8rkQa3tk89UBdUSUliMCvRXDJVpzao97SFVjjRCPr0En9FA5vmvMWdh+csOyvECfCT539PQM04UmB5Ylosr7FqJlt85bNzdc/+IN3//qI175xBPkNkoQyj7iEnJscAWshq03/Pw7b3N5XFkGwL62im+OpO0Z/eYF+WKHm1NPN0y3B+ykcfLmlnqbuf3sFeUTim8da06qgAQE1S1cqn0R7CnkN+Ke6uIsvcJJC65YEtb9yzd9/kYuRfgH/9YJ51l48CjjsqBJA4ibAt6uaQoY92hCXWziBng4J6TH6K66kfcLy9UtebfDd8LUbtlfXlIXaDulrYb3ykEjor9Th9V5dnvg6rNfYc4x+W0C7i3aXydn7Ynl2TGi3BeZ3JztprDd7DieVZb3blCc+WKiz8KhGexOePjJA74K73155cETsDQT9QoZT41Dixp2H80JnQmx9V5oURX+q59O/O2/D0t7OQc33+pLRPhUPkbnd2uUFLGpxhEpDzEc95V5UiaE6s6UEs+/tOfk0Su8cjGR08rzLy48/t4nPH7thOsXR2w94LVTtLHJmbe//IK5OVKUy+sDp9MM2TlMULaZcrajXN4O7ktDPTGXxNI73RztCfWGXxt5FjqJ3jpSYXuSuDpCosUU+tjxJLiOYWc3qjjenIM0/safesTf+0fvfdgv/e+Ky8w47iGfZriqtPNCTpCT0ntjOi1MZixLR4vQJmF3U9m+saVXZ//eQplGrCxnalPOnkzsP7cgNx3dCj1N1OMSwOUW++NsRjndkb3zojmn2ai3Hd8npmL4dSedKAx3xfFS2J4UajMW6+hGsKNRSqQ37NCpnWBdNaW2jilIHu7lUJOoB8GkkZOALEQ9WBw2y0hvdAuX4p2jZrTyIMTzf/XhCrIQGf7CHzjnn37+yBeu9kCs8feRQr/bb3E/Voyv5OvdWS/blSXsKL37/d5LXWim0cjdjZSION6IqfQx9J+J1yqnECbcGOfPMTjUuxxLiFVhVHEM5+qmIImBtzFWH6KkhrgR5qkQqqYU5TxIDJKEWFNEJZi45mgSWiMciRbi1iSJnpzdhbM8F5YKLpH+mXOkHpBIkixuIX6a05OwjLTQpOCbxPEgTHMjaRqcaIcsTA6I04c762wLl9fK+alQawwRL+aOSOK2R5lKGs42eqQtxI2mL9+9BeHyeaLwJx+udB/tfoROkOPWYBpCTs2xPqVZWZuz7p1lxP1EAv7e3wn+K284bSIMBCl+Tg/OMsPbC6xJePOpk/PKdANlDsdLaNXOu4vypYPxNTfqBZQr2HoIWDLMe1uNe70J5B2QQC7DsSgJRAJ31IEpDdepwbIFX2CzGsfoaGEVKDbcXzicgJ/A9DXoj8OA3zTiiS2B5NBP1hZ/VpK4z+canwvH0RZfm66QZol4roOpk0/uBgDf2Hv2oV/Nws1Umw+XVaigH1yoRYWcEyZCH4pmNNzGJqM3aP3uARDPh+oei0AHNG6GTvxcyuF68dFE0nw4rTwYNWYBeGy8/+PdBmhtOK9qDxGoN4cRq3KJB1wwtohpyXDv3LVLFB2RIQvuFSao6L13pfaY4qgIYjJ+izjs2bDPZ4KP5KOC8YhRhvimWWLBGa8Pdz8+pknAff7+A90WI2/9Ml7CGm8BPXAwsZk4VmwR/LZGE2UX0qqAkk1ieqZgrbIeO3WpTJJIFlEuVYsJS48JieaOqccBvMUrnUTovZFzxPVSit9fxwNNRTCN+8zoNIsseu1K7cahhg2zD5kIj6haN6W6jM9A/wCcLz4/ZedcXjunJSaFizW0xMNHU0Kqk2ePBkQXsqYByoRJnJaUtsakIQuUuaOjdaX3+Lydbp3Xd7+53emDG6mXmZcF8Ic+saOZ3Md4pRNR0eL44ty3EY0JXJYQnlTlvrJ52SxMtTC1eBq5MuzuY6oqQhILaz2E2y8xOHxTTIJlIutETjNTK9R3jM3uhLNPnGGSaFbRaaFPMWbqtZK8k6xxfVzprbMulXV1msHRhf/9rRf8/K/8GtgttAPUCmvFXqy8+PK7vPW5L/F//vLbPOtrfFbw2OyrA4lVbkE38HSPF0FnY7PEQdLUsWLM04x8bqLfGtsysSnRpmM11lN7T0jPM/mVuKci8j0mozoivR1kejk3Vf+i1//4U4WTaeXkQUd0IadCShNJy2h/y4jGxrwRPBHpDtrZk2Odap22OAc3fDfTOdBtZe2dtVZ8p6gp1ldKSoBh1ejWWJZKkso8tSg+0JVJG1NJpOTYMVPobE5izbx5vqf1hcO6stYDeGd6ck7PmeWdK/x4RDUFzF2UvIHzR4nrdywapkiYdtRgzsGC7BaRnmRruHE+aGtPwt/5KxmVb7u0vhnXd/2h7wPpuDdkOANcnOkkYMinmxSHuhpcl7O54NboN43XnmzJOdPf2vPkex4H03S/stzu8W5sivP4dOZLn32PzXZGLybKaebiySn6eGJ7vqU24dnbB9579wY5PSE9OOP0wZa81RD/z3bMux2u4Wr31ikyhpg5cBSHfcNbDeQCMTGWxBgwtkBR9OG89URy4P2d1Levf8YlQsCzNfa9epJZn1e8Q7NOQ2j7Tl2FaRJs7Whq5Fc21G5oSuweztg+RAmrjXpYqEujvDZRb5zuE75G87JuJtJ2FKisRhawZpzNSjsK0y2wDfj63aG+u9HXTp4FW+8KlBS3Tp5mdps4UGiGzSZagknOJsGmhFAiiXDraTyT3QOBsjSld2O1zmohhrXu9zzNOzPVXWmPi9HEycTc/c49Yz3xY9+1e9/1zvvOLB///fWC1fj9f6s44ktymTnWoCEUdcooRMpTmBNK9uGA8zG8dyYJyHtWJY+9bh/DfAhW7V1aw33wm3GWVbm+UdaaOD2vbLbRzNmde/aVEjy2KTk5GZPeWbzuzqIw4iH35QHuEb3CnZIc1TTSIYH16JcxwCwJIMwJzmB7EW7RKD8JEPldogk0jnLibHZOXVNEylIIZbOEJUuHuSFbNCduSiTZTGMP1hH27khSknQa0HvcmF0D9fOynhhdlb/6yQkTIXs0EYpE++kwSsY+tIXbaquKNCN1pzTwI+QlHF31q1BWOHlV2GVIJtgaaNHc41xgi9CO8O7q/Mqt8LUD3FRYjsLRhPcW55eewS9eGpcG5PH7N8dHjC87TIRw3oi1Q7KEO28LOooRvMaaoBpRQwbHyj1+3yWBLlAOIXZ1IJeB/yiDCQ3k53rvZFSJs4/3KBtQgUnCdFQALJJ3qQ3Xo99/HEJUVugKHeNnP/aN4Y4+EvdiHeKTjFywSwgt4pFfBhkf/jjFaBTBRbORCFoiBub9blEPUcyGle5u32E2RKHBqtrftvtfZ2b3Lt2UNLKi3AltxtpC9KrDKtxchsBleKt4W+MwB9FikRUbj5/eLFpNDNTGg4hwjPVud18YeCzEEA6xNGm88SkmNnc2WO9O75H7xuNPNQuBIQvMOdxj1ux+0cYibhjW1tjY6bC54o4aiL+ktdMSgG3G96sozZ3NgxI2djNEMvsXR3husG/gFhtZjLIRaInpYoqHhHcQI3lByLFZUFBLA9IedkxpA1LZM706t7fGlFu0X+QMooPbJpQUE5usTvdos+xrCGWtdqzZmOwMfURjcegkPIdAkYYglScnpZlXPpZZvZA1HIW4Yt0w6dwcYlI0lYSmqMwuKeClhqOpMZ8KZY3PYe/CVGIagxoiijXnZ/6Nx8DXRwzlAxt9fckbMv/oqzWqb4nV2M1J4x5IKiQf914sVaRklEmCxyaxITUCulnC9znEIEFGJMPNSangnmgj077W4KOtHMmz02qjpcblFxeWL65sP35Cfn0AGB12646cL+ir0Jdo3zwcQDyhzLGmECy42uHQw9X69lecf/q//Cpf+IVf5+pXv8I7/9fn+fn/9bN84Z13+fVnl1z2hcPB2a9xz6pFCYKqMvXMOjW8zVhtwTM8T0xHR0yYNsr2U45eCPnzG66+vLLegD0D+WqifDUxnymnTypSdExAh0hc4rXug2Xx0XiSfbjXf/OTJ2xt4uxc2ZWIE0rUViApk1MZbVnD9SwTi0RdeKFhN9dcP7ti2V+jqUHuHOtK6w2vN9zerDBB7Q3rC5moLs8phP3WwGlYVY4r1L7SFuOwdg4Ho3uCSenrShKlzBFr7gZ9razHOKxaX9k92jA9OWd590hJwm6eUSlYa8xbYfNq5sWX9+BGHo1hWRMZZ75nYoJZv3/eg0cMl8p//lemb8sR34TrX/kUTFhECu94VsDFWeH58xXpTl8bpRjzJKzdaJeXrK0wlU5rHXntMc07Uo3lUFnBzGjvAAAgAElEQVSXFW+N6/3Clz/7lDc/fsrJLEw5sd1MMJ6TuLA9zTx844Rswv6t5yzvveD49AbKhvliG5v2TRnFKcrpw8I6JdIkpJSotSEpDr8mK9ot4NAWQ8DUFbNO8ljX3BvijR/77m8XTvzzXLscbFFBkDmze5ColwutQvIGA90hOaM5kc2pS2ezB9yYz2bS+YxOSqrRSGl7p2wyeaMc3j2QxZHhpNPsTEXjBJWM2kB0eMInj/UhFUrWeIYeDLJh1llxLDZWmGfK1Dj0OF9kiVa3bRnjX3d67YhVsoWgJMBmDuFEiJIok3C5IHqf5uj4veMnToDDteOKdaUGeJcVo8ZcGlx5bTcD3LcWwtcLVnf/fjdM/C3jiC/JJR7R5W1sle4ZyUltnPEGoLrrwLHEme2eK2Zxlso4SUZB1pg63jFqMeFwlcnFmU8dUo+yGlEkjSg7Cc1CyeEQay6RMMojQugB9i862i8dBEVJ4eoS8Bx8ryzGrMFtywqanKWFaJQ1kfB7w4O5jPbM2GtVH8aIpCQJfpdbcDFlEioWsddhcJBxDqZljjVx68Y6pqVFjVXgIOM16XftiY6ncK2aaUDr7eXceGU3vqe08TrFZ0g0PlnBwh5idBrnMDN8Fo4ZFhvupI1Q17gf5teVvcH1CtmdXYZtB1+hFSHjbJLQLmHfhS+s8As38HPPjf/j0viVPXy5g2dIM8gM2WCj8fckw5mlUDQErCzvxwE9OXoMYU4s7svJZTgbo0iqeLCzNEXqSATKTYhkjRDYs4SDSh6F6Wf6KqTbcFrZcDluutw7sujcp82kx5/bJX5snQML4D0G6GuLr+1PfqJ+Q+/ZR+JONBGqR7NDDzUrHCYeTKhm4CI0u2uJi5unDdtkc0HmsFEGLDiiOvHrnLoGOyE+8MBQsPNG2e8btfs9/yqYW46Z0T3aK0yGO0zCM2YO1WIxsx4Oi/VY6bUOV07Y00uWsJC5oB7OH9UQporIEKrCaaPjPJYlvvdUBDQAke9D/xiAeUcsBCw84o8iYU+WGkJVmaIxT81I6vei4J3bLRN2Q7178GIv7ea+j8YQJ1rh2hqTegjXlTtYSpSHBVs7/VpZr5XeJ3LKSMoRTdyEHWZdGi5GzjGFcYec48BUkkS8sym2Or4q3juHW7Ca2O8L9BBnnzypqMIbbyrf9cnYzGDxobfu1N6jpatr3KNm1CbUFkw1zRGbFOKB2WpMmntV1lopJQ6bnjo6eE4R3XU22xC3ltZY9jaEFaWZozqcDEA6d9Y+ptruiCTUE9U6y0GxRe5dDh+MGN4JWi/jRuqD1+mycFJTPPQd5jnq5tVjgiGDBzinjJhAAzmOiYWGI9OzUM47iwQYVHHKsJK0HEwOscbKQmuOiVK0BM9sK0gvrO9C/1Jk1k8+ecb2gaI5sbJQvFBT57K/YDtNNFaOtVFKolujtwWkk3S+jzDXHgeBY228e2X8358/8L/90rv82lvXXDtcq1NzOLiYYkPVVug1WIS1VoxO6u3/Y+9dYi3Nsjuv31p77+8759x7IyIzo15ZrnLb5XajcmMa1AMwLZlGQEuoGfCQ2ohZIzFgCGIKA0YwYMSUGQOQeoDEnBEDpEYMEBK4we13vTPjcR/nfN/eay0Ga5/Isl2NXY3bTkfVlkIZmRF577nn7G/vtf7r/8A/hP5qJ3Tgd8lKZX9CXRkE42eM9vHC8npBn0COSnnZkS8bcTTOEmzh7/wAFYju1AKtyTRhfV9Prz/ZKlL4WIK759BaQaWzrE6bEsMmxogBKF5TKrGHcUCR+y0TCouwPjuhh4UxRhbe0bn0YOtJgyuzeDVv2UDsRh2eKTbuCBVVnZKPyLNTS3rGUWgaDCspma+D0/GW8/0T5z3Yx0aIsz12tn0ghxvWj2+wT97im1MjcG+M3bhZlQ8/buzfDfpTNjc+IEYyMzLAJQsxJsth95R9qAhaLvxH/8bnovz5i70uBhhLDdYyjZJVaMcDvH0CghaBl0JIparwve90vvqNLwCBP7zl7nlhWRohytP5jHvw6vv3PH5/Q54fuGgOCZmg5Fpz6nu6CY7PDtx+dOSjL6/cfuGOWgr3DzAeL2wP22w+B/smFJz7LYvuw/EEIhwXodWKmBB7MnXEYB+GkTKLIgXEsKuHjSl/7WunP893/S/EEkgz86ZQnXDj+GLh5gsLcgku93nXRcD54ZF9MygFt519ccq90B86pztJP5YTrDdweF5oanzwjTteHFeentJjUvdg6RXbkmFFNw5Fsa5sHfR25fRBoYuzh7O4IMcEyNSd6I5inKpzrMHhrtJmY9oZmaK+rNxKcFzT77FESaCgScrOpmpkoLgEtoO4cqhZ+4dOb6zpLVfQ6aOVzAfVBFFMpk+Pz+FgBP/yN+6yhpPr+yt/oL76wx5Z7yMj67rkmuLHVXGTh/wwpQ/lshfOo+SHYZXtrDzdK49vg2IygSYhRnB5CJ7uC+dHxTZlnIXtsTBMuX2emolksshkbiV7r5a0Q1DJHiMkUuEhQR/yjhwhnv+fSr7mIsnCU7LmrpE2OUICoZB93mZK0ZRLimZN7cC2AQQHKck+IxDTTAwNoXomIyLZIxZ1YpdkcYXQVDl40LeSxJEGTQtrJPMqyJ/rSIIkqjlYvQa0iWfgWODs8n7W97/6rFDVuaooRZPZVCIZxij4kqyiaGBF8Boc7uDuI1gOUDenvg74EjxI0Ns7OAAF7lDuulIH3EgCSauDPzphAgX6AueS3lLeUo1WNuF5hxuDk04GVkzlR24qKlcPqWDsEEWQE8RTDv3cAt0SpQpLgLNonnVCUAvIEfwErcPt4zxTgndn4ukLQtwJx8fsZwoZXp0Ksh96TYCQftMwAS0m7uOzZrj6kFtKK7+6/Pif2efDM6sHrMowZwkoWiYQZUQUkGzEa5GUA47PDniPpNmpOFqVp0djWTRN8SZdcgyQJRHvbILyYR+RiSv96rBfNCmEMidzzAm2FmqrnC8XYn7oadzuFBwiDf18H9TilKJp4FyVKsLuRrhyWJhTmDyA62eCSvbh86DLWGtWmUmHScMpGildFBihSNhM2/jMyJySEwglWCvJ5NicdkoQA5L9E0wtuSSEJZHTIt5T4KECYZbeMUuaRLo441LQtcB90N/uLF9oxCXBrfHpRpwr8mVNfb7aZ34HBHYpRB9ELdRGUjdrygbZElhcV2VUKKbplyQQY7q/S/D97y5YBA/3cD5PllZNGryYoKW+S8Z0FzYTmgRrq+w+0rS9QlXNMAOEUhLMxRvf/p3UmmrAchJ2S7O/YZqo++p4F5ZDmsmPbiylMDw9CMw0TfNHejjsmvuxFE3gbRUeH3f+k7/9gv/if3xFvAs0/mw6CPwRgOt9WuVmYJ4D1qqKj0FZoXqkXx0kkOope6jz0ivXiU7JiYwsSrzOiQfuGQ5Qoe45KakCG3mLtOpY7+wPCm+D4MLzj4/obeHx/oH+9jXej6gM6rFidX83tdvsPKPFM4Ze5kXoLgw61RUPz887MmpXFLQJuwnnR+d4Sv2/l/Rb0HPFNGWQO06M9OlLaY+gUakEY3eqDvy5YN8WpLxC75Tqzng+OJ4OPH27o89yIl12aLWwd8so4Jhph5LBIKngnPvtPSWV/klWU+Xv/Zry0W1jaRsLFS1KwdMI2xqhZT6fUMNAKvef3lOPB44vnrEuymN33pzvUS9QK4+WSUpFK5duiO2cWVB1Dnqhm6Tc3QtRnEIwGnQDqUqZiXTDOkEhrCOmyDG9J3oR3HfOjztrFXotjG0AO+aFJYLl9oZ+CcZ3XmMvKh4L9WbF9x3BefmxsN0H3/nt4MMvpU5sWtAkA63lNJGSzGgnk40XLfz888KLm87rx/dbCv1Pav3yr3yT2jp+BimZ/PtscVQKBwn+ys+feLLCvsHNB9kExajIU+d4Y8jo0J4jtVLNefVwphXh09+85wtfu8VvnW4dvTKO3Yj9wun2RF0KS1u4bBuXVw8EKXnQ4tw8X7n/7j3HFylD7eHpYaTK+QcXbkphY+PyMBgjWO+E2AZjUcbeAWHB2SiUKZSfo6D00Y0cYv10/fHrvGezXKSxtmB7NJZD4fCBED0orfL0ZrCejiyL0zejROFyGexauO2Z5stxYWyd0oPdOhwqeiM8+6Vn2P/6inZKynqtwJTwL8Pw5rAUSk+vSd+y0RQyGCoI2NJke62BHwuKI+7Y7pglyIUHVYSnhycsRibhLWBPzhLCcKPVRu+G1mxWe1fq9Ld0E+pkzJgIPoS1WY6QQ9Exg4ZCQZzNjENpaVYuE/RD+LVf/oj/7n//5B2rWyBlQj8C1HqfDeCdTBwMT6mba4JG4wnaCrd3nX2k1/BSO6Vm76RC2n2QzM7agnWd/Y+k+sUd1kiPZfEEn8wThCwlrWzWkp9TFvZOm2CXGazXvxfBrmmA7ZHG7O/CJ1RYK2A59FlE08YjlH59LXFlogdWg2qaFhOTBXa2NOkmBKkJjrknSOCTzCEzmf3ZIbicc2D1uBfqqhxL+igfER4ZqBSiX21+lBZBV2FEDuw9yMAe8nsjSrX38xz8d7+S78O13kTys/AWSIW+KMfpo1hkAlu3yf4bD0Htin/i0Kb1kObX6go3E6w+7s6ocBC4PAIVDhPo4QnOD8ncKk04vAgOXeCSqZcxgCQcT4VXfo/iE9TxDMuTJY3na0zgSgCcVmZPJsJigS3Kk01CS/JoKBusCuOQwXptTxDLJ1v0IiCHYNxC+Tb4C7gcZj8BqfZqM90duMzhohlUF6xnYq1YAsIl5v714D/75wr/wf/y4/mafi5Gk2MkUBCk6f6ITKgwslkK8oHvZgxLOcsIkqmFTIAofTK0zUTDkYliw4Kouck6QElWzLDryDaNyszSO8o8cJsb2TKBwmfMatYxwTajKYcna8yvUgnP1MOYaYNjMlrWUnITTIDMuT4kV0BrUoev6XolAS9lHsCadNSrie3cKjOONn+5T4nlVQJOUvF9VvcqMWmqaWhZxFGfKZLxGUPrfVwW+fCKJEOgSCbDuXQGgct8/x8G1ZdMQ2rBeGPwWEEaZanEUOLJ8HNJaOYG6lI43DTKBBxkpOtdqUkmRoIeituUWYnjkYxCiwSg7u9T5qfzdRQVIiQLGwqBolEmRTm94NTT1D8iQSoXBWbiSSioQROqKrIG6xJ846uV03NFl0iZhVSC/DtmPhlo6aPmGIjhKO2UvnPaJkhBshtqUW5vGmNz/uY32x+QGf4o4Crex/3lgrqiK9n4zMxo1Zy+ieQBrVPeVTSfs5QFJMPOh+BmSQPvnn4t7TNs2c0ZZhxVWEawoDz+wOETWG8bx790xGKnf/JILQvlecHWjbEOHs9ntu2RYRtaLNl7BtazILKR56GNKRH0eaF5njVDBRlwuQSXLacr+xb0AVt3Rvdk95mnUWnkHnYB75keNLqhzwoMJcqCOLQPDtR9ZbSk2RcFrzvyIMQGMgLWkjKkWbi7Q6m5r8xnvPAgJWvvKRD/x6/Cf/vv3bLQaIedqEd2rVxw9ihs0Ri1olSqOM5A/YnHH7xiefkCvTsS3nHbWfvGoo3w9OATg2Lp+VcQSq3Y1hFxulzn4k6UwL1mkZPEAjbf2RlYGKHO8AteCnvshCvbSHBNwvA9pbTeO31MKYYYbme2p0G7WeCw0p+gVAc5EG1F1wVtwfK88MWPlTefBMsKywrtAIdTTqZGz0Ag2fJku4RzGU6Jzn/+by/vJcj+Z7H+mY8ja4lyycTIyPvIPJIBsC588v23LFoZ3QmCKp3Tyw9p68L+rQu3zwSTYO8XTjV483uvOd4K3QwvxloUicDNWUqlHCv17sSI4P5x4/LwhG3GsaT/yDCh4ty9bJgl48aH0/cOGM8/WFnrzv76gj3tHA+ZTlfWhTq9RQMIUl64WyA9ZqEd1PCsGac35U/XP3qJpG/a2A0fBlU5LJmk1cjhSsc4HJXxuPF479RS0xtPhdYHl+aMe6e1xvFZZR9OLIV9GOWSUr7Tz58Yj8GhZSjF1QtXHx2xwc3tkmfKOe0cIiTNiZuwqsBt43CbEuiQ7DdKFZ7ujdICd+WwFrQ22pLDpb47y7Cs+VpQVTL9tymisGrhuKbH1s0iyHqcfYVQJOuDvNgU9QyN6V1omkbxN2VJlrYGewSh6fMWIfxbf/VFvr+zZyASsHpXf/0h8Op9ZMePoQxJ1nFRMDfcEq1apwJYNX03+8g+hzmMvg71U06YNiFFpkn7TMfNeY6zHJy+Z2L0qQqrCAeV2SdeAbJkN1QijeJLSqZMZk8WaSpfVKgy7WkgVRYxKFKQ4SkPm0ybqvmriFBEOEQmLtaWQ9EmQEnjbcgeMEYWjSKegemWNj1l+j7JIaW1p4Ol4b0KTLnhOplBp5osmg/I19/dsAiG5KBSJBiSqqQjzkHfTzBLdVrSTMZk8ZTElZKf0fniXDwwzTvHI1mY9iZgT5tZFNoH5Yf8OvNXj5ihJJONSXpGtZjyQAQdQe3JbIoeXD4BnpJ04w4aQnSg52tcqySQL1l7m09a1JRJ+rQnCYclglVjhk0Fe03MRK77ksRhXNLHqvRMWNVlBvJ5vh94EC3Ze34CfQCZ+7FMr+930sJI0G3XPD898syMOSQIyWcvSKbWh0fjwx/zhv1cgFlcgaKpe7YQ+g/5ofRIKuXwTHzI4Pk0sc0COk0WYyLaFnMXksmINif4PdIAfrf0vQrmn0VebL3n6zB3dvc0f3e42ODxvOEzPQw89cYTbBPyg78ypMY8VFXnn0/Ev0yIVybaG8PpZul9VSLRW810xDanMXjqrZsm/ROCKjrvsPhMlqRTyz1lTYVMiCwF9t0o8E4vfu2SkyKbh5GIvAPb3rcVSB48sygW1ZSBdkV6MrXGCJzC5bETMfAdLpvw8FsXxqewngr7w44clNgM7g3fQRZne3shvhdsnwbdBmV6T3V3KpXanFILQkG1ZqIJgkZLcE2FsJkwITITCRUnmYIyE0cy5W0m3rlO9H2CJVKS3jnyRKrSMn2RQKzx5q3wW79vPL0Kbm9zyrDZQAm0JcOrLZK/V0kzyvih/XIUeLzKvMo07BuEGuuN8i/+5bspZb3uyx+aFL6nrCwA6VCsEuQzVAJsy89HLJ+poyilCm1hTv8SoswvkM+0qqJHo5iiBmKZ/AVC0SV90VxhVR6/NTj1woufveXmSyfi9Z6G8M8Kuk4fQHPKxdJnbygWO/EQWMkJ4fCrCWkanxYVzCylEAGoEHvk142Uvi5acnLSmTTi6x7Rd4X6IjOWuBvWR9KHLzsinbI2tEK3yljO7F9UDt8R1Cs9AldBP1L0W421ZjIdZXpbLPOynpfuUjOJqFQQ8Xx/fgLXX/24slwGy41DLLgNJDruKzqNNbPS3YGUxjy+VW6++JIowW4XHi6d/bIh0Sk2KAbNzxy4cFTjoIb4zkYCtH13nvZOj8Ieyh7OHoZZsvpSqlrpwxjhGAciFth3fCjDLoRthFQGKXks5izutJJG8+EF68boj/RucFNp2yB8pyydpSomhU5hiLMe4XgD4xF87ss9DFFhabAeC9agXyar0BxHiWH83X/p81EG/UVb2hOU2PXA/ugcNS0PlIEWYQ/h7m7B99QSHJYjn/7+9/nqX/6I/uknrF97SYTTzxtP5wvf+s3vo7Xy7IMjKoaYsi55Ph6asN4oKoWyb9QQ2J4Yl2REhxTGWjneHmi1sO1w++I279FZO523QBfh/jG9J2UtXO43zq/O9JGGzpskiyJsUGY9tAeMMLpnc4wZQ97X0d+f3opuNA9aaRwkU8alCVukzA8ttChIDU4fHHhxI/RXZw4HYdUgahDd6XUQ0vEoHE8JPi82MqUrnOOLFXnjIJWyBHpQRBxtLZkle6di+GUwhrIssFalFFitcLxRymYcjo2VtOS4PARtJdnp83hwN2ITihunQ6OGIO4sqog7qxQWVRbVZPpYyp2XtYHvaCmUUiik1CttQjLxfDjImgN4k/pu4FWz2mIbObAngoMoX75ds8aaM/mIa2K0vJfg1R9eRbN2Uclh7JHC/qQcjqmqSVeV+eYQ9HCGpUwM0uqglWRV5bK0p/HpM2xBD2H0wvGQLMIxEnhYFZ5VYZVkrlciVT8uhKY6xsPmAC4Bo+JZQhuRHsgz+MuipB1DFS6XrKvCHK5plrNvUaa/sUqmx2lQcA5ViV3wDn0f7HsOuhVLEM3g1oOL5TDnOL2ce3hKzTT9mjyCvWff+gJhuHOxVCZFKCWU2+k1vIRyGwmK2HsaGuYEhz1BGyHN2kdjhjYJS09i3hXk6g7+lPjR8iSsr4JyK5g5njwDlsjkwb4Ihy5sChj0LUEhEgZg9aBFsqLW+c9bSdP02+mHRQ+8T1zBQOukQwX0Pbd+SL72zINL/1095XAPh3WZLKppN3T161ZJ0C2xDPBZa6OZ3OgNxp5AFbMXWE6aLDIkJZg1f6YocFmUi+ZRtQLaA2p+H1M4E3TJe1Ysh/y7wK98/OP5Un5udqJZGkG6ByNipkVkyptI+mlFznJxz4PJIkGtkfQtxrgi78K+Ge75ZrnkwWDdsXcG7jP9gfx97+AlN5aRD7DNPzNXfBq+j7CUt7wzjpfPWFmWYJpIyoosPhNejUjEEUgmWI5dEBFaE4rotApL5k4lD8o2Jy9EbspF8yAvc4rQNE0HhYyPLZoG7yBTjnMdl5P06SzhyVyMBOCmj37qrN/DtVSlSs3319PITxbgRpDnM5ljN/qWcrzSEhQMdawP9m9t+MXy4T2nZHM8GH5WvBulFsZ5IJ9mAY7ULCuUTOghD4bcF+MdY8vCMpnTJRMog9TiL5XaKjfHSl1XXAsmmeS5RyVEGeRBEaOg81J2TVpxhGPDkSJYCJvlnrUYaFPOrwXvg2H5PPRu6bO1GWYj5btXFFYFqWlI2W4CsWDYhogjYRxKxbuzvx382r/wYu6pP3isXGWG7+OSCqUN2j6LU0/2o09ppkSeV+7x7oIoJans3QFz1gJrAdY8AyHNNYvk+YZuqAWXTw37PWc9nFh/TtnOD1w+eYMvxlDHrGMm9LHR951NAiwZEWFXs0foIw2br+eYpclgFleWZ464cIXuy5z8hl394TSllTiMINSoCBXJaWWTLBSTUkXvE7SXHd86rYFbJThjWrC+I1Mbph8F/ej0/0cYNYuKZZq9X+GqAuj4LKFO3+P99cet/+pvCboo2g6ECKsWCo0meV6JdYoZhcF46lzeBocPbjHplMsD8bghEYwxU8VkUKVTomYTZU7s6QV5cKcu5Z30WRho0p4pOCYDjzx/QoIRhd1gHxeGCpunxBYShLTeKb5xuIXzm55JlV2z8dyeGFt+wN121uOCeqEaxNaTeUGH0PS2FOHuBdw/gYRhkRNEFU8wIwyJnNprrahD34wYg7/2lUYpP003/HGWaOGgg/F0SVbBkvunqXIqCxEVK4WPXp64uWm8/e4928MDsi8cl53DubK+KJTjwuHgvP2Hb1mePaetsJ07GnkPRyk8e3bHelgRbRyf3XL/5p6HhwuxCeux0Y4n9tZYnh1QUXoNVBbO90+sh0ypa1W4WQvdBG3G5s7NiwXWgu5GW/OMSa5GYFoS1A9FGTmF9ploCDzdG1+5+eme+f9aqwqmgoyBXZztsmNboFFoh0ITwUbWR4xOORY++vKR/u3ztM1oiE2z//uZ5n1U2k3Do2GvN2iBi2GL8PjbD5RWc3hmQYuCyoqbYJty+/U7nn/9Q26eH7KQHgEvFp6flA+/+WEOnY+NKkK5UbxDjECn/FFjpomXhX1kTZUD5KwxS80LPiYbIbVZ8LAZNZJBjGQ6dFxVEpp1t2j6xtDSd8tUEPFsQss0Xia9gnsIv/pzd58Zvv8QeOUTBHvfV5Fs+K8/6fkRTiej1WS9Zf8UiFhK7UKpc3gv8pk6JoeQMfu9lDtlayaU0MkWcY7HZNEcSFBCwmZQWeRwfDL0hiXLZVmU0gpLFWpNC5FHmwoeg46jGiwKiCJFORwLIsLYKx5ZI2aNJthQns7Bw1s4PwrblhY2DeWDI9yuwvPTvN+KsT8UlgucCC6eftPnoRkoIMFJhKOmp9gTwXEqeJ5p9kdvJ/mih7CLsbnRmSQLyVrsyQvvKz+1uLJVoEA1zVpiMqKOPbiryuoJvkS99nc53NZPAr+FXbP/PynzcxYuZArh8OCxCk8bbD1ZSwtZxzDtapaSA9wq8o4NFRY0sq9fBNQ/sxnSyZYqBcoy2VvMZ8SCvgVDAr9RtscEzlXeYWCow2FJZqjI/BolCUXuGapHfgt8gVayjuuRjHmpIPf5nEQFW5KJZT0BPStgVbBlKnQjUztFJZljWczP4B74279gHH+Ms+xz4ZnlVbDNKS3pZuGZKCgyZVPkm2sWaNF5sGcjpvO/NxU0HepSpicpAaxteggRdM8DoiiIpamfKO+0peFAFcZIDpSUpKq6B8MnKDHZYh55YGpJUC1N/ZJRI5OamCyvvLhqLWkgStJHM6kxG32br0mDTF+pU34kaWy5XX9OMrGwKDCR1m5p9saVpjdNDacbAGUePLYZdclIWuZlOviMpTVjGP8MP/U/u3WVU4oOIgqiHfOCRebCHD4U+qsGF2MXOJQCNbBS2PbANmf8diY63L7MpIeqkrEVl8boF6TUNDz+jtPFaD8zjRNGMsEWhT5i7uvCiJ5TpVayiZP0BfFQRk9Dd9dkW7WDYpapS6DsIaw68rq2TgkIM5aayYRhgUnSmBWIosguDBxTT6ZLUdQcrwnIxUxRTJ+nwiIp/50EU6SAD0lm2i7EpaAC45zNYn0hfGNOAjziDwBY7zPQ4J5ThUUlvey6IItjIqxV8fNgCNg9lDsFYdK0mWwo0C64OiHKoTn7ayCEJRQpDVejtqDpYDk19LCjnRxztAPRn9BSiW6ELKwYm2f6n4chqvCotBtnd2V4SmVa5HnRI8MDdF4k6kJ3T98H8hwkgkaen9t14pk9Hut1MjQwJNEAACAASURBVFwmWLbPojDSD1GHoAZPTzvrqoh1RBSVRjxX1jeF/tzwUtnCiI+FJY6M//sCP6NcZgBGRBaZGdSR52DMqN/y/m6xf+S6WYXtUTncClV3nANdO1UqaUGsSAy0w2V3bD1Sb41hZ7Rv4MGzEjxZQUWpMthniqWfO7pCt0KIUTXvEd9tyqwKOw6kbLAQHLUyzPCqCUCpEl5S1h/G3gOpkqEnPgDDpiTbHMZuVHEkFKkOOtifHK2FEUE/BfUCy3FFrLOrpu8l6VkTDdoCDz+A48vp/REpo99jslQdStj0m8h95b3zX/6bzn/89/5cP86/UOubf/0XIAxapYWDgcig3xt2e+L54gSwlZTd/1P/9Id879fvOdzcUX73geM3PyLMublp/Mbf/32++DPPYREuTwPRhcpg2zfoCx5vGSM4HAvteOD5h895e3+mrQ1rhdPdgbiMZNG3QIYiep6Nf+HDrxzoXnh6uFDoDFdKdYYmsDAa7A8XQnJ/nAEL41CgDyNE0qLBcoj4eB4cGvzr/+wd/83//PrP+6P43C5T4YAhbZ4LoexP6cG5NqHcKsdDw7b0i5WA3YPDFxvbfTCeDDkKuhb6/sTpqeEvC3U45cVC9A17tSM3heMvHnn8v+D+Nzq3X8/0ZV8GY9s5fXSHtMLDP3jFl//Gcz78ys/zKAHaqdr48OUz3p4vrMdP+Pavf59nH68scuL+N36QQUpeqctge5sdqzMlOkVYZ/b8+VKIi3CqysWd3kGbIp5Aycw5f/e+pBfvVSqYZvCpGAhadXzezQ0gBJsm5DKT99iFrz078LtvL3MIOgdfP7Su1fz7eDXW6UfqAftFOB6VZRmTrSbsniqYtO4walVA3ylqQoI6g0nE0/MqdDbYkn2BhdPUMCuYZ+2xGTkYLMGQ7PoTDJts9ZaMq80C90xRSjbWDPoSSQsPv76W/FkuHtTpmaUla7GDpFdfnXV1rCnLWiKZ/R7CEGPM+mvMfdkiON4MTJSzKW8fg7vbYFOhilFi4ckMLYPmygnlbeRre5K0z9GAh0gFyZ0rQ5KJdZHM/LiJ7LEzJuP9W7o73tLK5VJT2mkOy/SZfrCADq0FuiRLSVxonwZyB5dj+pmZpIF7CaAHxwC1YFvJtPsGhz3Ph8sMH+kDZEl2Yao4phxRZCqwYLNpZVIF75HYQ5ng1lSllXQtSbWWB7pO8ModuYW2K0U8fbQiASYJSbYZyTYTEtACcihAPiOjQHsCuVE0PFlVXwD9nhD3IF9I/0I5CP1NsJO1upG+t9EyjTNmkXbT8+uHB/sZtMKLuvPjzIs+F8wsi2wKUzaYespuJBJYEtCyCWq5Z1zplWWQk+A8wGLqkfue7Kruzngn0cqv6/P7DebhNRkBEszDJTeD1hlt6hNxFf0sBj4JD+mXZXM6wvX1pT/XPhJkk5iTkkmJvcp4VLOxLZqUPp9fJW+gGfFK/j+LJJ1fkQTzdLI24uq/k+9jBAkhTKpVorWJrAWenluSMkcxqJ4+Ydei//2EskjJZ3V8m9RGyydEZxKJnCp6k2aheqjE7qyt5URkgbPC2wEXD/p9gqUUycRJD9rtitxN2eg+sBFsv9kRL7SoYEkHVbmCrj3poTXfcyk6Y1VlRu4WtOaUpi2FUpS2NEQbZbKkLEoeSmvDXDBNqZd3EFoaBErk9GgYwx25mlqG0vv1WQObeROquTeSBRNQyqSezgSYXeFstLJQjoY/5d47nqCWRNW//sFVif0+llB/dBUVpAmDoA5n80yb8d05nyGqQgG9KdiTY4+BvRLsQej3kZeMOdWF9eLYUGI4pQbry6B8GBwP4N05ffGE3xl9cfZWCBHCHjFdUjallRIbbmCWvgghgZwNvXHGBBXm3ZWsLM+p8BzSEU7KcVreoiGRPiXGO+N4kXwGtAS16rup1OhzukxOH5H0XPKq9KdANVlieGQKjwdjrUhVmoHtRpnSuF4u6KEkyDefDS3MYI0cBGhRoqZn4U+AsuIPrcJ//Wu3bH1n1ZlHK4A33I0Fp5VBlTVB567UoxKm9L5nImqQ9ybO2QehVxC6MfpGt0AwjMI+gwGGe7L2wiGcGktiqiS7yyv5Z9rAC+KG6Qo2OFQ4IcjoiNf0cxjOpeflU8nnKCRZ1cluVMSC/SlTnWxzdFmI1mgIC8GNZLLT0eDuttB36PewkHR1ifx9ndPVKin/PlAIV1Sdtel7K4X+J7F++WWlb87YFd8Gcr9zfhpYG/S3jzx8cs+b7z7y5rtvkbLSDkdOp4Wv/eJz9CsfIBEcb45YP/OFrz/nEvA4DK3KooNFgkpQFkfvbrl5fmJ59owo8PZhQ6XlUKYW+iWZB9tD5/x6o1/OmYCtwbhsvH0zsN4RLdkotMJ6XCjhUIS+JRueyHPbp+/p0z5wN2zkEFGKcP8kDAyphRj/eBHiPymrIDiFrSf8c6wQChwqvUBcDH/8TEpDd8oAtNFuhGdfq6wnY3xnYz0d6TdC/YGhbpQm1OOKHPMsWk8HTj+3sDbFt5Slv+2X9GfZO21Vygcrn/xvv8+LvfBL3/wqX/3Zj2nHW8pxpS4Lp2dHPvraM7749Q95+dXn9D1B9bDBUoVBSpap9V2ieYSznZOl0ErHx2AV4VThEFmDLypp8K1KaZkUpldX6etgPAIl09N0wDCnWDIibHhKxpkSIE8Z2K/87F3WjRNg+2FG1jvW1g/9/n1a5pmOiQXnR6cuGW5CKEUU1UiPyIi0rbFkkCAySQVCD8Mk0uIFqHj2RMEkRQhi6StbNKglKM1zsFhmYvX0QFV1ljKT5UrepaUlU/WmKqXEDwGO6TdbirAUTT1YUcxLsluX7PWWqtyo0hSKpBopQji2ZOuM2S/69MpZNUEtIz2+hgcHDb5yIzy8UUpRuinmgxs07/FJoD8gjBj5LErlMaCFcpKUaB9FMpRHhBsRdtJUPORzASH8qS+zfC/dYElFM2tAbBleUyITdWNAM6EalE3Qe2XPWSLjMg3N59csCmMRLjPlfN+hmyA9CJ/O6sBSr3JT+czYPebwLVISOvkWMIfpMRI/qVe7IAfx4CAClgo3veIECT0wtsRX2gTD37G0pp+4TAwhLL3ZnFTNZT0OvaRCQu0zta7cBXp/ZYfNnvclHEuq5PaSDK2oU4KtKb0s5Wp7BK2RyhGHnz22P/Fn9rnYiS45WreRH0S3YAyfOl4nkoqET/ZQmvp5GiKSh8/wKadJXIvQ62Zw3POdVpXUgEZ+8MNjGsxrTo0F0pPFM83wymCazC4mGg5ZIJulybtNyWPuOkl2i2YT60y2FDGxqtwgVxPIMhlVZTK0RJiT6+wQJ1w1fbCgxNROvwOylEomHV5r8ShBm+bzUqC2/POxe35fYZofZnN4jXHV9xSAON87uwkcdF4Iniy+KVO1CNpdQZdK8aAds6AtY9B7mvztTbmI8uYy2N8ItS6UtWLD8dcpv1nuSl6Aw1Fx+vc6gWeEcxFapLeSS35vpU6j+OSFiixIbdSqbC5ESe8XKYVDqdSiiBa0VkqpSKkIlsbafrVjLu8mh6vKLJzyQtRaUHV6DIRMD7VhHA5ZdqZuMeN73YPSgXPgm7PTuRSHQ6XV9IlQVdZDMhFLScbhv/+vfJDTqp+UxjCYHkGFiwkHnFAojYwjrw4LWDX2E4xbiDsYJ+AZxELq5WsS/crZWT8qnD5KY//WO/0G4lZ5errkEVMV3yzTQOSI941QoUzz9jESWDScJopv6UkVobgn49Uctj0vuEEWen5VG+oEo9JskCUSyErPwEngtPQj7OHpocW8IVXQmQCkMz6oVKOcEyjtF59hFWPK1C7ECtoX6pLM22XRbIR+xui/J3O6HXPKmZOtSvoqpvzx+hn85KyqwRdjp94e2WVgvaH7GWynRmQOWzthXLi8utDujrA/0v0pZcXTH0R8p4awkJ/PGClXzXS4YHjPgQhjSlIV1/RYWEITwVTYewJTTk2Zzch7OkSQ/ZLxz6RspmglzDLue4JkfST4kCEXOQm3gHPvjPNOcEEaMMCWguss7tzplhKwEXCozvOP4Pw2/R7qLLyugK2WKyg7GGEoKc92lLvjT9gm+v+xbttAqmNlUEtDbuG4OiILh7tGbSuqg6qFLy8bb373gbEL+6f3vPxgZVkb47Lz6h98h/vXl0y8tM6wnuaypeCHA0/D2MbG2zG4PD2wvXrL0i/0bWMbHWfh/vHM08OZvXcuYlyi4JJBPW9257xtvHn9hPWeNhUC+zB0D2wfhHiytdYFSkxJSdZtRA4Te4AMw7adm9YQC7Yxo69/un7kapHnic6p8aUba1MO4tS1Uir4EvgiyKGxqtJDEM0/VxGWpXLzpYWn336iLJXt5MQmjO6McPTQKAPOry7IopQPFUbBNIeLt+vC+Xfe8vR7r4hqxKPx+gf3bK/uOT8+8vC97/P6W9/h4QefUC4X2nHhy196zs9+/SWnn30GIuzmPN47ZRgujvhAawL/58tk7+1wqIWlZJJsXZUSwrHAMtkPVZxqBdWSQ20CkxwujpB3bKMgWdAiGaRQFHDYSbuAsEwONQZ/4y89+yPphTG9MK/V/PvooRUu9KGcH5XjTQ7r+7wPcKMxyxFArh5ZGqzVU/ZHTE5RYD59xkZ+Zk0mQ2UywolptRCZEjhIX+SrXUTEBNP7JFOY4p6qmdOScr6DlRnslPW/S8z0+mz4dYduwbJ6kilEWELY5s+1h6ChLCJcRnCZvWTR6a2kyjJlq00qRZLZ3w3uI/AleHwMrMvsFVNcdglnkIFpWuGxBhc3XqpzKk73YBHjjE+f5+xdT0Xwoth7CJRCpg4igVVhjxxQX0bWEQcR2ghkD9aShBY1sE8cXjhlVRQ4OpymjCw8ZX0+fdXCAmr29JclsGFcJhvqMcmriQF41t0x7YCSXyis07NLpl0IE9yyiHfpixqApZ/2Oj2qWr1iCZK/nzV+JiAmM3afOIhOjMABaQqez0FV0rz+kAPH0eTqKEI/BVRheYKlpVTxdJNqszavSw9od0JbM/ka3uG5+BQ0xZLP3r/2lT/5/vpcgFnDkiVi7u9ot9o0ASFmcsQ8nPvIpKV8UzLdA53yk564tyXdBYurobtkOmK6Ficzy3lnnm2RQJbbVft6/XBmsqHkgeXMJMRISWF6+E0vLZf5/SYAVQpKmybsac0YnswyJf1rrhtRIhMVxXOnxGwK8/UmM2FMlk3R/PsaOckukyrRSm7IqmT8q6f/kpBMHq3yGXthar2vp71Yvqb3dR1OgAn+qNSVdLEjCPOMVY2UhXEAYnC5d2RRYuyo1NTBe0r3HkL49NG4PIJLp94K9VaRy079omJhQEbwcnH6gxCi+C5ISx8l7TX3wmTFqU6j5lIp2oha0VoRKUhriBa8QFsWijYQSZ8sEVwrdS3U0nJ6J4FHPjuhMkGGnDB695kikTScw0lzsj0Gpeak6F3qZs/93W6CckwAZKkJUmUylVBWpSPoxWmuFDGQzpdP8wH9CVixFeqrTEtrt2QUbpspp3OyY5GRxsK8YCYriTGpu0XAhOorcSdId/rFaUXxm5pMATGWNRPgYjhXY46znZGqbFtPv4VuaMknP9yJJ5DVCAcTp6hjloMDEWGfGNQVaO8zQcVIQ3bp86IhCyw30nxSp7DeodT0BVtE4SoxnPr+XdJ8crSgb3mOyrzRpEz3vhuBXanbZPeY4zXj1UWgv83b2XsWXKFJcfdpcCqVdya9Pynr7/zzB14/do4Hz7AGAqjJrlTHqJzfPrG93rC2IvLIthlj5D4YvmMYlym1PoZzGdlIuRnqzpWzWTSp4RaRwE+HbcDena04mzmIsrswemcPx20jPJktKnn/SIDEoF+MZRWOno2tWJ0+ajn5xW3W2hm/rhUWbXgE+rwwHh4oZhDQtNBKUEuGJOy1shwTXH86w+K5n5OSzTS1zbcrGxXFLI1+/+7f/KkH0p90FTGaWSYAxsDJFLoRncv9TlmDDz5+yde/8QVeHQun7cLtXeP0aEgxvDuXH9xzeRuUWvAL1NEocWTvnWE+6xzl8nTBz4PtfgeD8+5IJAiFzol3UZ6YjSXBeR/0Syfc6KOzdePcO94dGZZS/1LyoKqKxuB8fqKgmAQujmKYORd3BONpC5Y7AXqesTH+vD+Gz/W6WLBZ0NOwlZOWbGSqoPvIOyiEulQCw06F9VZYmOqDWlmfLdSD0L60sP/DCy++9AFxA/Yw2C1AhfpiRQ+S58FdYdUDWgqI8PoHb5C1oKWymLB/uPIqPuVbv/s7fPrtH3D/+jWP33/Ns9sT/fVAt43DunK8OfFX/vovEtpoTVkP0G6TNd8WoVqhqnC4adzWQp0euUtJVvpuji7BTUtT+NuabByXIPaUgokKiwgaQatXxYgzJFUDPbJG/CGPcnp3vKVXbpjyxdtGEX3Hvsre5Y8ytN63tXfh8qSsR2FZBfcEe1Svjin5c9c5qLfZ4Hukd3CZzbPNpPqOYAXQBKjWyaQSgkXy7w8sjeRJ5c/eydCwSD80zS1HkVQO5QgIKKmKSR5Esu+SjSP0HZoUdBGWlj9HJVu0CxCh7F4YQFNPMCEUdeFYNXsYzUS55nCL0HTwJownhCLOIsJJgmc3xnFNVdLbC3gIX1Dhw8nAqS1YTbPHpPBMEoxdUW5COQBNlB3lUyY7q79/QCnwLhkwbH5u0/fKOjxo4goHEdig7I681WR/HzMUYr1AU2Hf0li9ilBD8HMOYmWaqnfPhESrGR51tdMYzN9XiGkn5NdaZoZ8qSbbfIlZ/5ZJ4pHPWvzCHOj5xDb2VAdhwTbThweweWBlyhk9VWk6sjewyNA8m/tbE0ahRPp4telnqyWlsXIb6BNsrwL/BM7fSTBNhAwXWuDwMuWYXlIKuTmcI39W6vU9EL750n/k5/MjP7M/3S3wj7ksqXJYECO9oGKkeWtMNFhJpDACri59KoG7owbDkqIukX5X3R2a0D3BJCabKU0bZUoLY/pzMYuTBLquSL1qmnhfRVO1Ktj890ifo3f0JxGMYBvOsdZsuiTYXdDdWBeZaGeyruoEpZjAmO8ZF3tY8jC1SfUbcA08AybtUIKmSglPc3vyAFcRRjhlSg9VEtwrAtLyAui7ITWBDq5gSpnF23uaTBGaFG1W6GfjcFrS42xP+rBIoYpTbsH7iu4D3Z0Pbhq9T3qkTq8hlGGD773t3L4dfOEXKv7GGKXw+DuDURdqDPQgWDfi3BO8EgUqdXVCk5EQkf+tACGFohWVJV/PAmY7OieVIDQpeB3AjiR1hhiGuVK0E7sSS7CiGJ7RraRXVhFl7MFyyhPPAvolf/40xk+wAhNqdaKWFP1EHsRepkSJDlUxC5a1ZGJdVbp7JpvswX/4r77gP/0f3vyRz+F9ZGuNOthPQukDduWszhowZlEjZdJ+q9JIY+x3E46RN2T8ZrB/WKkfdcSVnUCenO0UNIK+G2tZGX1noq+UkvIK6fn1qwre07vGwpLhWRd82/FbYQ1lWCbtjJ5ef6qCmtLxjLUnaJ4XqIrMPm8mmcj1TMyXsHlck3+xntOY4clKI6afVYBEen2E5ETK1dk8WEvjsg1qM6w744WgrwunD4TLGLCl9FteBssj7L8j9I+T2u0CfU6vtwLe4T0llf7oJfB3fhHoR+LxwnpTWTQQE0o50Pf0edCnC70Lp9vOw5Mmk2GO0EoETXJKt8egk3LDS+qpcBl4h6Gg1t8x+FQLMs1AeyRlr2nKVcekyZfZHOg0MQ61NCN1YQzPqiMVz3gHeztY7qbPZATz2Er2qqQEx/eddRUuj4a/eeLw8YGlFqIPdtNp9AuMjgL1JtlZtzdMCX3WAcuA6PmzZLhMmvDu0vn6s2w4h/3JC6if1JWedQvVN4SASNb3Wir1uXB49gLZHrisK7cffIT6A18/v4UPXqKfPCID4vUTz7/+AXEsiAWXbWeNQSwrJxGkaoYADE22fBhdCt0L7J1luYWyUJrx8LBnEADC49sz1jP5MhyWpjBg9zwbmxSEZJVuoeiS8UxN4OLGohXzzqNVKMnSH2c4nYSzVYxB8YEgfONl5Td+8FO54Y9aSy0cVRg28A02BVsyNbcu8DySUWnnvAPWQ+BFKC9WRh9oZHJ0RGG5a+jJefzNN8hxQY5Oe5PM936qLIswuhDPFvbvbClh+dIB2y6MS+fZeqJ96cTp+S3f+/u/xXc/eeTw4Ym6O/XlkUOptFNjqdC3wnmD57eVX/zVX+L//J9+HfvkgXqrnC9BacGzFwvnp8HDORODt5IGzmhwWrOjNOAyE4U1gttV2XZl6MCHctLCxcf0y022qc0QlqjJ3OqRspubcN4G2DoTrCfQogH/zi+95L//P74H5Pn5w1XWH/7392WVEO5eWDbCI2hNMZ82HQIyLVQiYC2KFGHsgpSsR5Q04UYl3SUl77ShObAz5TMDfkm2+aKwRXqJmoysiYck8D57jOzdoLW8/7ZumWi4KKMLFkpz0CH8v+y9W69tSXbn9RsjIuZca+29zy1v1VUuu6vkBixZoi3akhES/cIDSAjBAxIfg8/Ax0E8wBM8AVJLSDy0gAe3MLLbxlVtZzkv57b3XmvOiDEGDyPWPkXLhiqgcfapCikzT2aes/dae8aKGOM//hcrDq7sI4GFFukdx0hmz/tIAoOQNjMJoen0TIbmCWRdItnNqvP3DeWlGI86PVInyaKqsnvwSoWbYyBUdje+vE/biBeL8khwEyRvLZRjOAeE9zgXVTbPQfY6mVpaPs6eUUjV0tULTWd4kxZoxtUtlCHC7ds5qP0ULhV8mwyjLWiSEr1LZODDogkXjJ71bWu5f+Ui7Afm8BDKyD2IJbkgWoJMm6fEMYeDGXIwmPdxbicoSuvB0FQumOU54ZW5vwM00wy3koPqtKMRGPHE7hKRDBUrk8ElM7RKc784EGsq4HYSbFuu/cPXCbDumgxTbtJc3iNfYwwoq9BKKjw88ntVD3aEGkEneLH+4p5s34mdODyZChEy5YXgpMdLBoRNuptPidaU/EUw0w9JyQIp97OQSS8VxjBGTw8uiwTKjAllik6qxPw+JNtF9GpgPC0Vpx9XuEwlobDUTKpYikxTbyWiZEoiyS7Y9mlsWTXp1mUyskSwHk/SREsaB4c1TZuvZm/zTeCkj1deSk7RoM3XWODJ4Dz9aJKRQVwlG/EE8Gmd7LMrjXACfDBptB9pmmG3bLbVYYhwfjMY3igLjE3yufVMsOxnR09CWYRQZTWbCb+CaGHgeMlo290L431wfj84/8Xg8QG2zdilcD4bxxeN9VVC0rrkczHP5JLWKq02JAx3hU1ZTFhLghDrcuR0esZyXGlt4XA84q2ytJUq7YmCjjaqCkWVsgjNl/S1QaacEcIUmYkqw5LRYgIyrmWOJmOxO2GS086FlGEGOQEPn95sml43CvvWs4FZQRc41Jxe+ir8wW9nhPZ1136sHlp1EZYI2pJgTRWhSEl/J00/qQZ4N3xOVJiTDRPn8vVAnilxu2Pm9GpIcQihjvRBqkVAR54bwylohjwMoTpQMvBByYsHmdiO7ai1TF6d0gMclpJPJaXGyaiSpz8zPTt6SskiIo0qR6Q+fj5G6dfk2DxPNCT/LAlmfEjiSSr0GNOYeWoF9ykbFEngf1iw2cC/GZQQ7GDoMYgmxCthOSprT1+4sA9MIYkcP/0qhdHdroVWlFoH+8XwHvheqbXg/sioFUanb04tleiDNjbuYnBD57kGz4vSQ/nWnPsxuHd4cMc5sFtnlEMWSQYujd0KEemgtRspr45k351NM5rasxDqk/3URyZzDVOYhril/Jxfmgu+Bevdh3v7yl4UY5rzpil3E9jfJCusvhDe//TC49m478aDp++WEXRKBr10KEd4+/o6yAw2Szb2hbz6S4Ft7vEqGbby+z/6GFu//+/Xsu+UcWZ7yJqjRSRbKpwiCUgvp1vef3Nm7DvP1sIrC57J4PbuyPL2PTefv+LlJxU357IP1iaEDU5AH4MoycZbTHj+yYnTZ7eM6ZMXpwPlbuUyBNoBrY3Lbjy8P3PZjXe7sc3Pxv3W6buhHoCxXTbG1lEbqHXoG3s39r1T+pXJFdNjUqkjKKXS3Wk6kKi4GGHGjz7/5eLDf5XWeSTYtEjh0CpWndId70k7eRjZaO8z0MN2QzdjvNto7ljNxPHltrGsB0wCeXagHYT+k4HcLXAjrPc7FOX06sSpNOoXBd479dF41o4pJT4pp/dGsZ2705FF4PLukfpu0C47JoMqzvufPuDvBqtsFFU+WY/cfP6cfSvIWSg49EbfjeHG4VjppI2DtKCL4NPo2E0oU2mhoqhlo3pQobVgMFirMEwQZuKxKrVNKY8Ka03Q6t2D4io5QJK0VwmCrsIlpj/JXFmu/tw59hGys17eOKtqWmmo0gk6gy0iU+35AERFBPTgsMT0LE6f0Kr6xGAxS+DQcgKHS2CRZvvmSUyQ8PSlsjwX1GVK/fLrdBM2h4jyNDTsQ9hNuGypBFHPgaK5o5EXnXlHpkzea2DFuUSavNdIeaqQ6qVO+gkdNUGNQyhLJPsZDyIcI3jvsHl6b72s8IMifKbBjTpv+uCbIfzlGLxRZT+mv9iqwQnlLhotUnJ5GwUTuBPhpUf6vwGfIDwTZejHt7eAtDPos3/KMhkb6Rt2GbM/p/CsBPsF4s6zzvBMslQjp3Xb9OmMJK90SUknlnVO7i0YJdLTuT9BElmPz6EwI3ESjxwwIoFeNNlRZAJ5l/yW4fl9xgwWGFOBRkwLkqv/3vUsKmksLwTLTHCMIjyOYAuyvlSZaYmwBVx67vUhaUa/tUl+L/M1u6KPsHjuYbUUk9QD6E3iEGMLSsv0xCWC4+QF1ST6cxOkp90vuL4TYNbcK0/RjEEWu1fjd5+bJMipss+HagEumQqRFi/ObsZuzjZ1p6KCSTZT14MppYvJ+hLNaG+P9NCKCK5hXU8eXFyZYHkA1pIg1lGVEZiluQAAIABJREFURVKTqkWmFrqw9fxaVRWXTJdzgj79u8ZulJopTt0Ds5SZuSXoxHyY6a8VlFIQkq7YihJdksE2kVQ1y6j6Pg3nLYvzq7G9TOF3mT9XpgHiJHvND2xc/8tHtxrMn7FQa2W5g8u7QYRSFkd2y4vCAt8tTf1PQXmpnFajuKOWqSIUxVE84CLB5W1nBOyLQgUXZ3eju1LXlpHyHdYTLDcCZsgYyYTSQmkHtCn1ENRDY62FtQZrhdvjwnK4oy3PqO3A8fQC10o7VNA0zq5ScUmQNvd64F4Y5jkpism6mlPQkrceGjMudb96IeU0cSjEBEQthOEFiYJKSV8cTwA4QtGWjMSohbUK60kzirgU/t3fe/l/2k0/n274Ma0gqF6gJ/DnHdwsKcNEsqEKHKcv1pjnyPF4i1wU3VfkU3sy4hTVVBAuc7qzB2WB7WIz4EGfQLGYH+CrgePV56pdJ0BWGK0ngCTCGEmbVrmm/MiUV+deSUl0vo9l+jvk0TcTTjRlPBHJUpV5IZdIibRqTkCFjA4OoLpkTDqKm9M3wbZgXHqyI/2Sl+rhhlqVLsHyvlAumVRXagL/fOb4N3kRgzzdXE8phh/f1vob13/0Dw6EPbIW4+ag7O87tHyO4gcOe+cQg5uAtRqtkOa0M3TkwZw3I7gfg74HmwvuA7PB5jv7RdjZEizEKbEj2PTFCjbJwnvsYJL7tc8Jpo+c3l2mT8QT4LXN4ZNJshZcsLNjVljalHVMtt+Vwi6p2M5wFoM4Q3uWk732Eh5/tmNSEvzEZwNh9BHYGW5O+b7ffpXnnM7XUzQ91sKn8bQIZWZv/zu/+4sbjv4qL61QpXC8Vcw2tk1wb8RujEtnf/2eN2/eUcqGvd/48U3wcgQ/viv8Rj/z45cvKKvzzaNzWDL44fyw41642KAtK9UGSwj11YH3bx949805h5MeUBoXb5QibAO6GTYStGKcoW/00Rl+hgm87qPTLRvH7hfG6BxWJbRks9Az+bVEms+LBCWMS1eknJFwetfpuSq0qrxcf83K+ptW1IWLCLuAYpxM0ty3FdqS7LiLFRYvRBG8NLrnMG2o4JeBirCfB6iyaKU0kINw+n5DfjZQq8TzhZvHZOvUQ+Xu0xte/eBE+WnnxuA3X9xyHMbdqfDp253f+uGJ3zmu/OjVkbsQxuPg/dev6UVxeeTwaWG9q/gwenXufuMltge6GkVKekCWQkjBBW5PkzuTM1NaBd0lUxfN0+tWAnWdYR3pkVtF2Tw4anq2NWRKBgvuUEW5hOOmbLMvsunZ60XS5Hwyrz6/+QCqPgE4/9yvP7YlwOJpsbIiNFJmOBRGaPaM8+dYFKoJR4TjFCSZz9R6mQFNqk9ejVn1pNdw+m0Jm+XzcnLvFkvm/EGFgwp3RVgcwLJZH1NlI1P+7GBSGaqcUS6RbNGLw8WViwhuQjehi7OFZEL6SPuQ4rB6UCcj/+LwzpxBoUTwxQLP18JpgeeqnCbT5TLv57fmLCEUFd6KcY+w2+CAsFB5Z8J7N76h0z39sr5hUAi+8eArB0J4NkGGRwuOH3HhdQ2iU4E9YJRJBCkznE6CeCdwJ5xbemsVhyAH/0KgZVoJFWH1q2LhQxDdPsEpKYIf0srImN5nlmcaeSRS2mSqM1MFJdKKafpq1ZE10xW3kNlTJFU96+bWMlAnFDbye9twhvNkNVQkB5MiVwLRJNQErItwmoSi7vBQsj5rkZ5YZQ7qLyfHK/gbkDfQhrD0ZMX7AH+EcRF8TzZaC2h9mtpPJG8U6PGLiwe/EzJDIyhp+8VUciVTYG6IkDyYnrorSZRTgHBHJdI8XWWaweeGKuiTqTuevlUuM+KWCXZdk7Xi2uBBbod8AfFEucvpivhkSsiMa0YwcaxUFEk2mQtbH0gLFiH9ZSxZHEKaFYZqpgHF1OdWmYldyd7ykTGtZco/amow0u+mJi1wjNTdX4GIq4H7EGV0p8KUtwUquelVY17MMROpACl8nGTkXIbSasBIeY005XAXnO+NZW0cj4NxsQQqTwl81j118C++WNl+MrjYwFWpTXFN8V50eP3g3JyUbTim6YJeSsZ7DxNqcdZPKmMflENLAaAq4p4o+SIcWsNYcC8TsEj6TqlKlSPrzSGNJ21HObCfDZELIGgdjE2JorRScPHsJpfKsD0R8on0t8OCiuMEbVH2PRsSfDAGhBVKS8bNvusECBwhU/rqouw96ccqnRGZ9NJ3J5YEZUULpQIMni/B2/1v77n//7HSHDtjaCdrPclrNqc0LQHGzefZItOrIc7EJhxeTo2cRKqvHNpF0ZuklYcHlzU40lKiJclxVpl7qmZi4LWmyGSd/HXfPRXQBDEiNftzclNKTlqSUZrG8YUcJqhJekFkyCVVMkiDkpOdtub3q1cTW+fp+zByx8SWXwsLyqZ4C2QpLAp+AWbIRdM6i+2d4jAOwkPvLN8o/r00sa+HZGSxCP5VIM9nAtSqePeZmvXxFlX//Pr3fjw4TAagyODbM9RznyYGO66FtRvbUemSW6ZTKBr0UlAUfGT0skwpvXhSyMkxomgOQ3wPHiwDTcSN3XPw1OczJ6bcoGcRM/Ka4SDBpjzdj1LS3FnFYE/JduxQb+IpevqyM/3QAIEV5nBLOL8LyrNZyFkQrXH8XIg3O3FMoEuq0GqyTk8vYe+w3MJtgbdf51TQjul9McgibZWcxptXwHjefi0x/IVWLPQyEL+wVEWLTWaAMRZNJmUV1kPlOIwftZXzofDi9gSPjzz/8S1Hd/7Rn77BF9jDKBrYCG4K7PuZ+z0Y7wwNAzN6zPqrBlIGq3XicEjLhx74NrCxs+8V7WfCnEt3pAanYmzdOaBs1VFZMZytwX7eOa6VuKT/20pw8XwttWaa3LYoDaWqsUlBXLkMKO07MQ/+Ti73rGG3GOwEz0uwqFJIew6Zn9utFdgFb04pgfmAR2ilwlKS8TR26rGiVNw2jjcNKUbdO2Mr1FWpP7vgdwtx01heVL749Mj2h2+5e1lpnyin5hxcOd4qvIPvvbwhWuOv2iO9w/u37+H5wh//6U959uw59ebENoz93QPHW0GXhYWMF3v3ONJDZxiHVvBDsF0KXlNuGxU0cgiKwqEVzITdp5Qs0rxkcUX0gzXIwpTZu9MWpXghLFhaBl6Va40/wziWkgOpf+uHN/yX/+v5yQ9QRH4uof3jWx7ZGamkXL5jrFWRHUyEiIxTjihoyaRI/Nq/GeqKMlU9U+mjZOIfZHJhDmPy59gjh32d8pR8munjGX5SdFpHeN6nnZhDmwQu2qLQk23cZzDOCEtQRJP5dRDwGbziAVqNplMJkRap3JbCeRinAgcXHly4q0pxZ++CVjipMhLV4KLKGsbXLrgKjwgNuBFlFRCHb0mQ7hUxmT7KozoHgk9o/LkFnxG8rMKDOD+zwp3DHcH7j3N7ETXrU7H82R8VQoM2++xiEBd4fAzsi+kFpQk+VgGfCQRqaeXSYnptRxJfumXdU2XWTJNZ10XS16rkQLlapp8iUHrWNkUSSKqH4NETg8i0wsiQAY/Jzsx+xBy85O8Tm4F5JMGgT881kcRhBh96mlKSTRU1+xLx9OcKT2KN1nzfV1+uaPk+yj0c7jLkoB4VPzv9K+C5EMf0DOwLieTtKckdEYQKi00m2fTYqvUX96X8ToBZUx2XGs0IxJ2Y1NiQ7Ax1wowyD538Y/PAUUkZzIx119k1GmmyLpJR85fz4HCqHyYVEhNBnXRUktZc5CoJkxmhGzy5qhVhn+ynmBS9FdjEEUl34qJCjMGY7N9WhNKSIeMeLFXYd6NVpU0aWKmphU//8KAUTUhj0hAtEpmvS8od9whqyeZUJgybAGwad+8jWROKXxM/c7Mvgl+CGE5phYHQJGZ86McJaLUKEFgRalVqBKhyvOuI7exvg3I8sJw2rAexL2gLzI12aHzxBejXyWZwcjoXIkRRLrWwX0b6cumVmaAcTuCjw2hIF5abym4graEu2DCKXuh9nVKrRjvcUkQwP+PWiVDW1qjLQjvcsV0e2IBTdC5DaSU9AtItL71pEChHZVw6tVWiGv1S2M9Brcb2KNRTxcZAiyS1eQjFQBeb/D1BJX23cE3qdUhK29QAxQVsDFpVjqecUjsBArspsQf/6X/wCf/Zf/HtR8nIui4fUMTZyQS/aHmxUKGUCVDNXFwJkJKSitgM6RV7limEkNrxdnairLhu6A6xBm3A5dDRBzgca3J2ZRqJTiAryvy81yutPuUOciNkbRwUz6AJ/Jp4opgl0MC8XM0+JAfWntp4w6d5JEjLPZPS5WR59QhikNRnyWFClTQq7Y8BR890R3cUJUoyxGxPKk+oEGXPYnNOevZPCrd/pezfGzxGsCC0TxX5p85+mpHp7jTJiefHynb/69adOw+qLN1Z18rd7UDvO8dXQi8NQ3j32OGZUEY+3whjhCZoTUdDMMnhhqii0rDRP4SwWEqi3cgJ5DDUs/5ghhpEySLnKj2NibUiwoMErU5WnmhKl8NyEFBT61dPaQDtLuDC0nLgMAlkSEmAeHsd6WdYUp6qwOoDSskknbfB3SsSgJiv53ADb76B4wniCO2Q+7J3uH+XYNzaQE5AFEI6lJIDJZ0+d79ef+Ma3pGYHnuextcZQ5h1TB+DdrqljI1//7c+ZV002d8/OIE1uDnwaav8nhj/7R++5i59Drh5WXn31T3nd4Nnn97B3UgZAwWznWGVpTSIBXFFNiPYGdbp0wjN+47snTDYNFjVJuPY2QTKJki7IJHefeYD6zuCosO4iGYdVZzzWWinidDS6NqRMCKyaT38Kh08v+TKG2Kwh9KAvcH9HhR1FoKTKstaM/n5eUWXSpUB3TibpvRPQQas+wVhIdpO0YY9L+mtdRlod6yDn5QilfblhZMIz6ty/PEztr944PLHG+/rxovfeUkzxXrh7nCgnAovrbBr4fvvdv6JOn/19Tu+/uotdVl4/b9dWG/hi999xs/+bEfHOQfVI5N3b06Nt/eDYU5bUzI4PBu0bejsAoNty0nXUoTHXdjM0BIsi+BWqTqwKASDpQomLZUpI6kRpYGMDCdoJQEPK8HZhKWkJcDf//4d//Nf3Of9fe1mJ7D1sa3z1WNKM819IWuZQ9Hs94rSh6Bt0ENooU8Mk2rZHVZyYN0n+8WnP1UmzpXJThG6XwGAyNRdSUKDR9BDUZzoqVjwIk8ejaGBaLK4zgGiMzinBOKaA5TiT1J6SFAzVUrQJhimkX3vCNgZDBfu3akuoM63OZVKqffIZN5CSioXcbYhnIrixXkwCJkD1gELyh3OVx3Oi/KqZKr92xG8Q3hG8K9U+NacLSoV5eUBtiE8epp/f4yragaJXIGVJG6nn22ZgPFyduJ52hOEJnBcACKHan2SSuh8UFvtUEkJckpZ59CwxxOgJBMUMrLnv1EIE2TKEC6T4TXmgFwFdAR1lRlwkJhHn3YfpaSNQx9JhBH5IBsM8nsNF2ImPe8SjMEcdufvWTRz0y5k3TfI91QC0DTG3zscs4xi1/wsdXfsBriB8ibgtSB3gd4k1mGSIQonTbZbSNZ5OJle/UvMFr8TYFbIdVKRB69NllSypeLKOsNnoR3iM9I0D6hrAmKQtE7KZFR5FtGimuDBouybP5nzXRFMJZHxSKwq6anxc3S9az4rKdtTETx8amlL6jptUGoeRWNkgoT8nPyrTPqckBt3aYXdE9H3COqUZXzgByYSGpIsD0agSzK3BBCXp+dsic1Mimw20FY+gFvDmT+fZF/0knH20pichqQ4f6xTnG6BRH5CZHPqEQqO1IKE0m6EuGzs7wu3r4JoO34prC8K9sa5+6JwaCA/65xHo6sRCqpp/OiuMM295VBSGjaEpWVzzkrSQTUoWrg8GDa9p4Q9ZX225MRyOVBD8X7JwAOpabYXQq0rtAt7V9pyYPRtTpwMC53gRiBt0GrFwqn1gC6dvgVjCK2kR5dISoZUlFCdqWP5mq45q4JQi9CtJ5vIFTNFIt9XOIQKhzXoUVlbmrUShhzSD+ej13/VBMyVacg+U0dazYZcCaiFmLJOJOOYSwGXBbjQR55J1UH2wO921DJZUlAe3Kh+jdV13PLciJLMU4ksukpJI353YKSvmfe8RDM5hSxuS05Tygj2mpexW4IIVYVtxDT3/DBposBqYCMniR/umA9nJXPrXPM2SgRyytehDloi9+RkdElIavu3wKKwYpnEWXIYIFWBwjpl2qaGvwj0G0H+Tg4rMuV1piz+iqzVjbYrbUkwcQfOAxoV84JfzniDMgqIZRKvT2n9fBYuWaSB4GdDNaWxiHB5CJZbJTzlWb2nJ8NGToy7gO88pdpMHJNheX8mB5qZkgtoTv/69IzxADaop0hmVwA4JoqUSPKh83QftyPsklNAm39+k6C4ITWwBfQ9rM/gnSXdXSMNR3XKOND0ZtAF6pKT9vOegJc8s2kbaLCk5ORXien3yy4BEKXKxkA52UgGRDf2lmeUUmiy8/l6x50E8rxwOJyIxxPy/TlpOzR+6/u3+D/+kmjBRSv76wv7mwsvnh2J/Ux4oGVQRqb7lgYQLG2htYLUwrBGLYW1FkQLXRwj77SiwpLV4xyQZv1oLhwk8M04UjB3huX9VXBs+qUuDMyV6soWFwpp1O0oRZ3dfs3M+puWuzwlWIXC4wbHWXAH6SvUxkZbFQ/l8n6nr4VSCtoih3xaaUdH6w1tEexsyOjoeaTKYq2UVdE96/nlUGdTKFzeXLKA3gYvP1+wd4+8/cOv+fTfeMXNb91x8KAsyUw+LoV2OPIPPrnhv//pN7jtdKBaxyksp8rtJ8H9T890YFlqXoIlvVXdUg6IgvjAIlir0k0zpKokG//dfVBW4dXdypv3G4FOixSlav4zFMbmoEbVMoM2IFwoNRjx4XSSmueqluDHLxb+l38G17CWqx/uxygzLCihMS0vMnmwiSYYEBCb0BYwL5hm4SORagMvQhkpoYdZS83+znaBJevtSW0jA5My0RAyKMlssrosLSJ0GstvnrWNRjK5lJTFl5GslxZZn42aE7hqGZJCgZVCdWOTPKPchFaTCVZmfakItcIp4NUBLqaAsLmzu7AFVAsuMRk5DpTCNlJ58qwaqxVElXfqbAEx4A7ljuDbkaFiX2ieiX8ZzurBXREuBGd3vCprS1ZNlY/z/PPhXKadUd1hzAC36hneFm+FfpMKJyb7/ZqfFhFTqppo0Up6S7FAeUw2fK2O6FRviLLNgXHo1QMLmP5ulwGtBjHZX3vhCbsoJXfxdQgc8zWrprfakBySF83CPCX6UEfkYDJkMhCvYFoa1pcmbFsSZrYJ1nXAR77/lgTGTBsPWK+M/Q3s2cQjRtqEZK0fxAvwHpS3EKb4msqRCNgkLSF28t+dWV/+EtvruwFmTSAL0UzRsqw+r0mCzkyjY/ruxM/Hz8bsvyVlZC0bG1EQSSqvu0zGS3q5mDlmQm1kgiFX2cwsoknYKdMwEi0sV1ZY5EYLTTGYzFwR8cDHxrypcZJizdxgJoFtRi1KaQURYVWekgMsUk7YprxDrqmHItg+0EMlSgIzY6YtXn9uyWibgN8E27LJ9adG1ufvUc2fwejZFEuVmfAYfKzMLFGoODEcn7KAgVFHgeh0q7SlcGjOvi+0GrQbx8+FchpsW+X2eyu/scKXPzEuFoyhSMs9kA9cqThW879fO0btkY55N4Ubibx07o22FPquIJoSW98Zdo9y4tCeMdoJ2NGyorog6riBa2NdT1z6mcUVG8KYpoHmishAhoIZJgq9Z2NWQcNwK1gM6kwXMIJ0nCEZF5MCb5IRslk4NcDSnG8CGd4tvbsC+uYsB2PfhHawjGn3TJdKme/Hua+ATAMMp+qk3qrSdBZUEeyVTNaZKYYT9qSYUG53LBxpJOvtURh3FVVj24W2BmMzmmSKXyNBHSlJeaanXBDyEuyT4SUC0RNQM2CzKTvQa8ppGnsbkcXUnCI6WdiU2fxfi2AHdCQAopJ73q8sL4CYIIXlpVpTAI7vgazZQGJxrf0z/YfpXWQCAyrG3hJsV5l+XWtBeqcET+zAw6tKf++oT0+4Ik9U/V+FpQKimeC7WwM1doUHg2aO9DPWlfWYCUk2QR+fRfiIgLIisWMjhyJlAaSwzwHNcromtybrDgoelqDtnPo/+cNFTupk3rmh099j9noeJJNVjWXJ/bW9g7vnEJ4pTNeB1HVAJCW/Rg+IR9DTpLdr3r0OoNkktlKQ26C/cRabx24ebdQ2X+c8fgToJV+DxfSxewn39+ldsp6AAqdD8Pbhb+Pp/suxMgfLUC+chlOLIGFc5s97CeMkC90Kv/fJgrQCF0d++3vEn/wMyg1g8PAG8azBFuD9NxcOL48s33+GdMfuN+pNZbsMrMQc/miy0/sg1hUtDRahHVbaemG7h1ZXZEw2vypeC00GLRZQYxWhqtNDWd1xnM1yz9WaidRFC3SjLjUT96Z/nJf0HME2Sisf9d32/3aJBiYFbT1ZR65c2pSFqU/FQUHIZ7IcNNOjw1K2ta4sJVmTp9uV3/ytz3n75p53795RTLk87LSlUcdGD6iPG+PBOGyGnJ24qfil8+KLW+RgLOsNxxtl/NF7yr+6UN8Gct7gi2fEAsv9QpHB73/ykn/y8J53XbF338IxeP/H9zxumWS31Ia6gzqP74GZcOebIwdopRGRvkk+5UrdglULz545lz14vPSs0T2HO3TFNIGOJtncFVP6lBr1BlqmhE7mvDtykGWTBW3A53crX76/AB/3GNGKPQ0dzDM1TkiJVBOIlsNWK5GG/AKLJKi9mdJEOFxJAwJ2yfsogMOaLJHu8+tHsC7JYvZLzeGhzwS4qvNreIKK8/f3CMwzGADLXqxScBe6BgxBa/aOiyQYWnAONdnQPRQrgVra6MS8dBcNDsBA+YszuDoSaU+yinLbgkeCbaaS32pFutNCODYlfDBw3gy4j6y3PqvKn6tzHsHSlBvyZ6IKP4zga4cHz0TZVYLDrjiDdwO++UiHiA9k+JJG1lwjbfuYij9EU4bX+5Tbzb6oanq8ZoJ3Aj/qyTaSAabC3pPFyWRj7T3B6aLJ1roy55rn9mJiFwkmpMTQr+CPTF83mzVyyWFeCOwW04Mrh8guqZhIH+X0pOJK3Jl1UhQmKpSvbUwmfAxNUKoE+zx7YiSY1iSezOHL+oFxlWK6YOKeDFI62V8F+pWj94I/h1iyn9hL/oy1k2yvOSz9Rdd3AszymBuEyGjVWgj3Ca3k383zwFC5Ui4dDZlWfPnQSk2/Iy2TTeVJN9VJBde5WShlJnVx/cbJgopEy31uHJErQyxRICN/XQIWPoBGnSnPyVc6TdACF8ejZJLYCMpS84MRWbwLUIti7uyWbLMRaWjonk2dbc5yrIRMltaQRG81qcYxm44rUyKBuKA+SS+VHikfaxJ4KEsB3wLvljRYzQ/Qx0hHBvAck8yGOyairEgF96TAewS1FmTr7PeFu09BXjgSt9RxZntn3H1xwM4b2+tLyglL4SEGQ5QSRiMPuaWCnmomXZ6UcgrcMtIWd55/tnB+vyFUugkyC6PmG7F9hZWXHA7PiPoJaMXD2Ich+zlRiDhQ4oQ2CAtu75TH+8vT50WKIGrIayPucmolJSiiuObz7z1Q9QleXU0KHYn0dCsOHsr5XllvBzaNEC0SwIqp87dzZOTxoh/Yk+IztUz4j//NO/7z/+GBeNqhH9cKpryZeb5sjiyAZGBAmCRbsuWFd/UiGj8Ryt8zTrVgPcHEfYYzbJuwrE4fkpG7kWfS2WExQeYkRVXT6F+h+ATzi+IX57LkM90JWkmKsUgWeFeKsMzX75G0Y5lARfW5zWSawssEmJismpiphpbnV0jS5EvNoizBLuBM6u0tQXrpkaaQCnUTokQmFlaZiU8gI7AWtEMaNocoj2ZU8ux+dEMX5fAI+7OkV4vk5fmrsERgM2UvgdQdRspIdYH9jXE5Q30R7D0B7LLDped+sQalgrJN4FWINRiRe3Qfk5YegQ1Ar7KL3J9mASZ0clrolqwLn3foUiAyjYBmQFNWCkMERdk6FBssp0ljr7lXFoRLD2hZbEkE0SEu5Bl3LWqyVkNLTggV4KjIMOozpX/r3N3Aw5aTUCNfx9XPzgT6zlMDowEoHG+EQ0nfzH0rtCrMT8mv11+3RFhlimJ049GVKj2Bzukbsodw0y/8YHme+oM//Qb+w3+I/OUb+E9+BP/sa/jqHt4Yr/78LULnVqD3Tpm6YT0sPF48z9Hu+JxUxxYsd5n8Jn6BKJRW0OMKa5u104oP50TPeHQqXpRVYhpDF6qkhBqZsq1QbB+sS+Xx7JQFdvL7Vw+CxrAcYe4xJwU6kdOPGjr4f7bCJWtPLynpbFkH9fkZpxa4yXPBRkGGsd4I9gjL7cowOI+NowRO5XEXPv/eK7bzI+8fLgTBvnXieMQe75N5dx6s37vhWVnSjDuc8e41i1bUPZ/vZyfiZ++IHz5H/v5vEKcjvDGWd1/C6cjtvfP3Xp/5o68f+ep55e2bne6Kd8sQlR5sJQfOezHEIu/okj5roSOl9OKUnoxoD+eNG2sI0QTrJY3iPWYKmaf5sWbIwBJwrMHZ4knypBrTRNy5qcKjSyovirD3wVKEP/jNZ/xXf7hx7UY+1ppeIivKMRneRZK1EgO6Tv8qoBoM0nTfPO+60VOlsJdCE7g5QFuhD8ErKcci65F9h9oSTLh0oUYmtnlkIiJJqkoZV6TiJZjME1G6z7qJTAE08VTARKFvhdtwOkDJPfJuBAPhqIWIZNKIBHdkUMVw5wx0sXxfrsnsEngMYxt5PwvCFsoYaYcTIWzDcYSK0sU5SXp8PQqsq/D4KNy1vOv/bIoVv6fO9yg8DCeK8DqUn1r2DSaTtf8RrjHrYG1Zy9YR3KhiNRPF15J1iAZ0ZPorCrEn8CwetPQAyvTnmjYttWRNNfYEPZRktEP60Z4O+Wek73h5AAAgAElEQVSvHlg+iSaVrIG2edVImUoLchhUNOu5qwJLRbAlQ+GiJtlmzGGz+0x4znYjCQclMZBruqIYTyGoMc+nJpJDPyG9vSIH6lFBGrx8hPezxjSZzMCR9dv18xRzoH7+DNoj6LuC6MAbxAF6m9YmMlVyv8Qz+06AWfPYzb/POOSQlLRoZcZgXuUs87dOPSjkQ5T5/68G6rWkp1FEcqeYeugENx2mCbeWJw5WAhw5I4areTx5IYxJZS1T1mHkAeok+iilTDpxSvtUMjVCSMBBpyvzHsGqmqXy3DBFBfVkwSBpmkvA2FK3UfT6OibtTvIQT1P8bHRFr63plf2RjWYPKFRCknJm5C4WSXqhzEO+yAdvrY9tic6kt5LcljE0ZWDXm0cdbYK04LAIunTOb6GsQtk3lk+VGh0eG5/8pnC/HllMeP92A09mDhSW2Km1ZHO4g6/pS+Ul0FITkHXFzoPDqbHvRhGmFBXCDXHH+wO7NJoeEQ2g0sYDg0umIZIeCpiyHCpj29JofE9J14R2kSPpjYNhA0IVxFJ/LQnkEZ4JThr4ldkThtEoCs9eGPtICn+/Uq91Nq4OY1EuFygHQHIKpupEXSCc3/nBCtz/7T38f9Fr+uB5zZ9HW4TakvZ9BXDS7zYneEMcvoZySPDp7IaOSRM+CDKctQmMbNzaPLRGwKkovTut5gURV5DJybOjQGx5hkzOJouUBP5F00AenpAfm0bw7vFkOhoRSM0eLUamjDhgNZDBE21eJSegeE6G3bO4k/n1UBg1/QFKyYJOasrIyjk9PkZRxJyiwShzOFBysmCRUlhxY0U4X2VnBeIWLq8hbhQd+b7br5B3zV6z+a4jP+vnHZ7dHVEuRATbng/NNTgsIEveG5oqmPzsI1l0eN4fasEyWU0F4RLJLhzjmgp8ZTRlwo932DcmiJlAbUo4sgjZTVhrY0hjaYpHRXVLiZZ09j2p6iLZGJTJ7gpJebIP0COzU5hFjQE1i8yI7FZCNUENGewBsWRCLZ4hBI9bFlGqMx4bpl/cB3kkkwVWJfCjp4Ti1+tvXEI2fD5GGiQDh6XkZ986Rv5z9Qbnnj9obdlh/uufw0++gb98hK3DPojolFK4HzsLlfXQUMsyduzp79bcuOjKCMtUZgMfOx6N6APHWddGLAu1T3Nt2TFPD8hDyfNulEpTQ+aU2yXYQwkZWK9oa2lGv2rWgTPViRoUCzolWfg+kLbgDH4NZP31y68SiTIQE8KUqjMLzgrLXYKHPbLJaUswHuC4Co/nczZ7tXCxwH7ymv3dmfvvv+Kyw/52R2ulv92wx3sOnx1oUfADfPqv/SZLKdj9I+PL15TbNT1l+k7VRmugfyXw5QavK2wF+clX+I8+R9/sHPwdr354x4+frXz5s43XfzaQABNFp0R/NwGzOcBLRo62BOnDZ4o4oBkLRanK2LJRDVcuajxfZijGFqg4Fefc5amJ3U2mD48Q6uyhMBQ9COd5h3skY+cq53EPXpxW3py3Dw/iI5QZqioyLRBKyWa9nwU5GHV6HQ+/1kmTGRVK34LlIOg6vV9VuPLYliaUyVS3SWaQZabcW6C9UCVZdk3SCPxC9pNhShM4k4nfQabXE3AMgVKS9CBpCTIiwUlHICzVGSFcJOupFTiMkoFNk8gwZtjKmi5djDZNyr1Q1BiegS9KAnqCICZUFe7VKZtQlsIl4LmmJc4WQVAYJKHh3oW7Jpw24TMJPl0rPyX4coIXLqA4EsIXIdx8pHfleiXYpA0xpcDFMlRNbdY5TP8pT2ygkkM0HbCK5LkVwrKC7JED/5KDYJk2II9NkoFFglaFtFJo2VJOckomD5bJDOtXYssEttZsF56UY655zlytRZRkc9n0okIynTxxC9IiRROnKJpft3vW1NdUQxy0BmuZ79GmQmR+/riHS50srlnH4QEtzzC1aVtxBZoLjBV0GSxdkQfHL9AP0G8+1JO/zO76ToBZcG2+AHLSz5TFWM/pfr45mY2UTp00ybSaMsSrx1YpkyViCYb5RB9dr2hj7gLRlDkEaehnNpMNSZnglbGiZJPGpI+q5mHl14mczw84aYRskg2tkCbM17zxfFsp0ykyG1jJVy9qtEgQyzybUm0gNal+wTRsk7wskzHBk9k0kQcMk30lP6eXd3welsBIwK/OCYRctbImk+X18a3/7n8y/u3fVYbv+cHFUtdsIJpG6oU5qZfAj8ppbdB3tu6MS+Fw1/BLZ9HK8TMhXhuffFpZ3hqP7klp1sZBnFIqegP2XNDmeE9QtdwUenTYhf1hILVmcoSm7bqrURhgO/38DpGgtCMqwmY70Q0fhkXHx0hGV3fCS34+FmOphTGU2De0gZ2N0gSpcy9I7iN3oOY0UBx8ETBlSJmfI8fjQ9SC1GRsxGQMbo9KaTZ12oXtbLAUDgTSBBeDKlhPuYdND66PbYk6NhlX4cnuQHWaqTutTNaRAxKsQ9FLo/1gR5rim2OW3mUtBCuWPlcCq07GKPnX7g6dlLFOqopPybGeoJ1LSg3X6f+n8zDxpL57TCrzyLNh2kEwgAPJ8oqS4DaejKw5R0BHHmOueUkFwWh5HkfPSzh2ywlU/UBllulT45Npe5UxjvXKtJ3+fnsgSzyxukoEtCDO+f/DPD+vAhx8TiUzLZY5uf5VWBHQ+2BdShqEWjA2uDzbWS+B3haYZw678XhJFvFhnd5RpaDhDA90ByTlGuWQ99gwME3a+AZPIO3Mgkhm3oCxJXuv7NMbYZ3MzZ71UtMgpBPScBpVLJN+oycwVT8UKk/TtwC9BKbANAgNz63e5kRxzm+yiDIh+kaUgqtNSa2zRw6UkCDWLOLGTFU9tNzvw6eZ6Zwa1pp/ZnFj+7UP0v/lioBYUjLRKLQY+DbYl0q2eJnCtsQETZeRiOeffAPPP4dXR7g/w9sBpyMdZWFQy8JNMba+p7mxFG6WA0WCYZ3GoLLQizB8pwzBbbB1QZeVtlZOhxN9DIYXKEor6R1RFEKdcJlAuaGh2Xj6wC+FsqbXSQuddZ5zmBKPQTIegmCYs7bCbsl8/zUz669fvSgHDywqIoFN/76iwSrGeMyGaDks2MMZWRYqM0HMFRVHvVCq8f5nZx6+fODyv78nRJFtR6uyrMrxk8qL58rzVyvba+Pbf/qXvHh5x/7mPbEITQ6Uy46UBSWIfc/Uw7sDD//oj5Affo/lkzvqJUGLeDT8UDhYwHLg8GLw+uszw5VqToTRTTM9zwatNsboVC1Qg67K6B1F2MM5NGUI3EgOAXrJ5u5yDqoG3XO4s29Kaxm8UTQIDUrP2umklXP4BCvSO3dMOY+rwPRV6gh/8MMb/us/uvxtP/5/oWs8wHpMhQURbJsgNfAuDJkDesiP5kYmlS/QbjJJbnellJQLdrKX3Euy4BhwbEq3YLky7MlpSAWWImwGHilV3EcOKi3y2bhnv9bDiZG1j4U/qXGcTAs+WOTQWdPP0kV4JinJ2jp0dY4KN1JQIhnZaowsJlF1znbt61LPdvYMhVIPVol8jxSOC1zOQUE5uPFX5D0dIUgMNm8sxfhBE2QvfLYOzqH8STeOCn+3Kq9D+daDEgn0r5rkjI9xWWTdJEwP2DJ9opxUb5GMOSL9oqhkeFiZOMME/lqHx3VacpizePrlyuzfxSQDySQVZTFxCBNSTiqp/JpqVYonsNY9a2lq+olC1vLVoXqqu3rPZ9Mtt4d51lPuqRS5NhZVJRUVs35bV6HXDNeDyV+QecvJ1Rf1il8I+yWmvUSqwcaU5O6RoFoFBv5kPUFAswQCowE18BXapWAXw3ZAEsu5LFcvk//79R0Bs4JrHneET+pkglRXLYBPbykJwcl0iSujKyI+GPbNL5WaX03WhM+ngaNzE4U7oZKHIZ4TRskHnpNcIUbq+oVM35L5wGBSN91n+pEyj6VpWJ+TYVdN1HImmQ25lno8gQRjmkbWKeNRDcaehtBJVc40jSJptKZJXHhijS0i7KTlbr96jmhcR94JCpIo7JWKGKTOV8aVD/eByfExrv/mH3/LP/zdv5OGozX3gYdSxFiXjPjtW/q8aHHECrVdCF15dtq4/0ZYWkX3wG8LdxdnNKfqym3duX9TEHMuXrGSZsrL3YHtdjC0cTgIpQTvHwZFKjbN1psq7ahENCSC8+4QPbNI7JH9Maj1HR6F0JZTPgnUgjEGRXz6DzlmBamBhLMUZy8lo86X3C9LyebfPTCcUpxaGsPGTM1MDxQtc9o4Qw8ski4tEVkqLQvRnbqmZEBQuBgbwaEafTiLwM1BWE+N1192fv+3V/7HP758lEak4zohGTGNzZ2+pRmolgm2m7KZ0zr4faEeep4pT553QEAfRr0RhsXTZHHJD28W2VNizZQ/q6REGcAvcN6Mckpp4qTfMCQntkWnJDBy5JSAEZSZWmKagGxNXTWQl1mX9AzUCXwxCzGunn2p0smBz/wr+jyrSUmkmSMtKe9Vgen/4XsWCVPdnZfnvLX3mpIzfVjhxZasogn2txP0yUQdJcF++RXRGXpAlYVhO4EinVlxVe7daJpTQlXwwxzxXWAbEA12T7PztcGy8CSj76nWSp+XIewjmXY+45nHLGDKTDJEAMuvYwLrAush/dkCoMg0dj8jDl12zFOyxbwiN09PiCulXGdYQSz5Oq65K5UE4mS+nc1nsXnIPSRr7nMhY7SV6R+xJSFoCHhjev1lYRcCDYg6p48Go2SozPnxb+HB/ku1Is2uLaAYRwlsqSwBtmc4yIjOu7Xyfu+8KhCXgfzhT+HvnrJL+PYxDxQN9suGNk0/jf+DvXfrsW3J8rt+Y0TMOdfKy869z6k6VdVd5aa77bbaAssI5DeQEHwEsISQkBB8Bd6QkAUCIV6ReEJCAh78wivY4gFZvNBqmoss2qar213uqjpV57pzZ+Zac86IMQYPI1ZmyW3DEW27D7sqSqWz9861cl1mzIgR//G/SEVjJ0o8S4kO3tEoNAm8Z9HNAGZjaBGETg9jWQrWD0xhsGezkpZGuFMIzQxqylipgnnPZuKcvljlohDoQZsqFce9EGJMo1h3mTAGkCXJZv7F+OPDXXHx9IwNwAWtgBa8pI9fdMO3naqVEkZINibKU3AW0JqpmdoEd2PXRpFguhYOb45ITzPt6fUdTZ1ZN44fHbH7E60UHHh050PRtJuIoMwT9bpw/v0vKb/5Pdr9A/OHM/GF4O9OzB+9ws4b8xLchvO5CWbCVC2blpaHxdWSedVODhPsZhw0D4shinoml3eDLdJ5NKRwtTh19WTLD/nOOYSjGm1siKJKDX1m6ojBoRRMOoSyWa7Pw/aGOfEUqjte3v+90DXYnxSdwXYox/RBTsuETABEhtfirOl5LEaR9DStCnvkWQgZTZwW7GKpfrGSXoCWjE7IfbHMI1m5RoJYOFNJhnOSGTL9W8K5MWH1oIuzttxAVTWVCzizKo1ccybJ9NR7CyYV7mahkt5XXYKpwLEE5wZlcpCSwVFRQG2AZMJBhb0b10VpA0ztYem3RkXUOJMJjOoXnaQgq3GYSf/S6vy4B08Yr6Sk524RHnfHJVhIAkaI88P3tPFzQJJgMIqQYhdVed7P9Qn2edS9TvoojqaGOxmEYkG/EGg6LC39qlVTOWaSyZE+PK9Ek/FUHZjynp8GABS8MMrxrI03B9/A5+GtZVnn4PHsUeXj8owe5DMYZpYqElpwMaZqg72/jma3WLwEOg2wtqoS5nRPAkgbbLByhu06zxLV8nUnsmFYRvPxYtywB/TBCiuS7NJa4HxtLAvYW/Ap8Jpp3F91fC3ArHhOC7ygf8kMCEk2h5uhJVNHQvSCBOUFjsCGbE5UENdx8sqCthSYpiGx6clqyCQ2SYmFOPOcZrLhUMaFlQFB+tg0FEhTsqSYhgfRsxpPppUPoCvZPpBsLx0HyDyT+mCVjeQnTQqoMIycz4ZZZLqLJDNi87xJzDNtrO3BMind0pMIIc0IxwIepDwTeI51DbLgc0s0WZBnPap6xtvKONS8n8P4T//ax/y7f+WjBAhKyp08coPSGnkgMigW4yavyEFgm7i+yYKsnTpPAn0KvvFLB14/Onoq/MpvQPujHXvovLuauP9ypb9T4lVlmhXH2S2Ya6FZJ4pTAk5roW9nVIx6PCAlC5XeT4RXfN9YzbJDWSp1WthairjFje4ND0dRpslGESW0NUFboqOWhrkmyaKqcz6+dwXrFE0+Z0SumqrJ3irEs7Fk0SH5IO/Bp9URU/RYqVOwPih1dvqTwpLzTkrh6bHjBv/yb97yP39/fT+ZWaGUBjtCVZjFUiJVEgHqnx24+XBnm7NrUizwG6XPTqyZ5rELTN0Ry/WmRm4Ks19WxexuqAe0gtkwPxVnjwS+5BT0Y260CcSn7r6T4FVvuaGIMwwdc1Prlptp7LkBbc2pJVNI+gCr5rlkQRSkHHp0PdWyk+QD+HJJIL2osDU41LGxK8yDzVVPoLcFUadNyY4sAZRsPOyDeh8t2WVT2dGNYVD5knRXWTBZM9SjJDX752U8RWPugoRjg3zH2tBloJSilHTDy+CHq+E/YAlMzccshlDwYXJbynMTO30np3wtGea5ZVzfptkIuTCxtlFY7bwwoLN4CVoPDgKn9khBmSIlskVfCrOLkWl7gDa/BAkY2YypwDYYYYOwnb8jssPtCrMZtQqPAkfN99Ii+PIJbj7MImwfn8FGYo40BmU+WGJ8NqBr4Wnb/viX/ovxMyOr20lt2CMU5tpoHcqc93FM0KTwN3964l+wM29qTXn/3/hfsO9vlH/le3CA3/udhrfg48edaZo4qlPH7y+R4SRPARNB7ekvFAQ+KwWheiBF8XVHRClFOR4Kez8gpfD4dKLWZK1Y63nNyXmwWX/uapsrpjY83hpRgTDWiLQHGIePrpJNQBVMOqt/9c7xz9uoAlsokyal0kUwKezmdBOm4nhUogVeAjqsp8bj40ZvUK6FclywtfHBL19TDgda7xQRlmnG5glpK/P1gXePK28+uoPv3fBHf/Qp9mjcffOK02mluODLgW+rYecVa1kDzb9xx09/6w+5/vVv0N6eMN/xSWlf7ljN1Mpfu73maS08PXRChLo4U6nsW2czMB9moiWBiRnFJQ+/QTIEg2CylJWl5xup+gCiF6yAunHOjD5EhIbjolh23rmQrKvk2WAasfUuELtis6ODNT8J2RBNU5H3cixXA+x5l8EB3ZyIYK7JVu+eqh6OAm60AJowF6d6nhUPGiOxNw94orBGhuy8paMtDatFBe9OCU0mPEARjjW472PzCKeGcK3OweHsSsewEHbT5zAlwTHS7/kkOozEhTPBTKCTcKjK1lI2mCmYwdMuuDo+Q2/C4ZjSMWRPhZFdegPBTUm7nGw0Kt1gJihXnf5UiWOnX7giRTg2vfQV+AnpY5lYf3CrxhFFw/mzM2gohvHYCvsKf2F+/2p6uGAL+WcXYZcEbWwLFhdsSqN3rRkegwPHoDaQCWYLZAM5gDyCX5N1eHbamEdI1EFgGx27yzcpo1YJgWhZl1fNRtyFbri3YJqEcw/YYWopiU3hjww581B0RIJUkNc1JGv33tLGZCOePWuLXAg5pOVDpNJGBHwNtt0xEahwasHU0lMuClRNJnyXNJevAocdzkuefcSzTr+QhUoZ1k1D4liBvUD7AOoXyfwqH3z1FexrAWZBvLjWP4MqgyFw6eQOiZSEZzNMhXB59qyCBKhE06BdNI2s3YR9JEKIapp/tsEQqIKEMF/N+Npo3lKiJ4NlIJIg04WuRQJQA5emzEpvAdio4J2qJVkJ47nZjU5x28sCk5NLxmc3C9ZzpsXNx0LkXBnsoQS0hDyM1MyR5TAp7gNcG1KhLs9fIZgTJWVi0YwYG256QCSANpWL3xa8UETevyEhvF1zE6rTCI73BhH0FllAmHD7CqJJAj49CwyZ8q70x57suIfOclWIzZjezEzmnD9ufPNXDtgfnilvH5G5EJ+f+Hy55fRhI65ST2q+M00zqkLbgloa1gKvKWmYyE6xtYwVN7uwCMG8jaJmZd+FSQp1kmHm3Wh7Lr7NQeeCdUci4f0WxiRB2x1dKuGOluzuiAlaHGN0E7XggyVJN7poflVjgdQhWTXNw2U3Ae8IwyMpYG+BP3RcCzI5FaOQ0rD3behgLgVOucgLK0yzY58Kx2+umM6UaHgdZqWlZ8LOKCAWAS1ZkElTRJ2Lz4Vq3vebJKGhTE7sgs+R9/sAkNIrbfgKGi+BEH5hrqZ0ujgJ0kcWexdGax++XmEJgoVlJ7FLpH9NDImiJ1tCsiGYgEQfzZ2xm3gX6uqsr7I7s1gCD0EyqjyMZc8NEF7SZztBlcLulvJEB7maKJ/v8CoT9QrDMLPuyOhaptXb+1q2//Hx01b41ZL7j60NDNaTc/xgRtmxPenu8wRuQi+VTnu+VmUUvt0y8rkb2SRyR0pKCC409kwjzEBWIedsIQHEfYbDAJnKJYlGs4i5XI5gdAM1k3W7jXVqFE9VYH+CMjHm8IXlFylHHeAY5HvZNX28Lj4RNuQe1+Tj5inZYds9HI45JZvAFeO5kSCx15TvbC3Zj1YKmSf18zOP/iRDSJ8YSqHHjjdNKUzrLNcLOgndO5/tyv/x8ca/+Odf8cUPPuWjDz9kPT1w9fGGfVj5O58+0CyZz8dlQqwTUXAL+r5Tq1LUCUvPmUqnu7LEEak12fPRMU/fmY4hprBUZHUKZfj9GbUW9nVHrip+3hGtTBFsZrimFLE1IzNOJAv/KASd80gm64BWp0YlNOgmvxAZ/kOG1ErpffjzZWNVZJhxR6cGuFsaAr8trKczS1GOVxPH1xN1Vs4nQ6eZ0+4cy0aLipVCLQ7rOYHN+41WhY++8warMw8/OWOrcSLXpVILtu1cHyt3WtkklR3rH23cHBv9yy95/Ns/xO8OyK98SLkNmvVsfkuaPS83My6VJQzvDZ0Lug3QveaeiwuP2vEt/XFEKmVKyWEZfqLSoI+QBCfBhOa5z1YFVaelwzi1ODFVekv2zG7OJM4SBZdkKu6tMOnGHpVJ0gYDOh/dLvz08ZwV13s4OSNJdhxfG4+fFY53kky3yINVW9PHjyE/Ly7J5opgl6SZzGQK5CRQPJn1hwhWKlsJdslE4O5JgCgeHBZn3ZRlV85qnAYzJQhmTR+lEheSQgZOTAh7QKNkU1lTcLhEwo2LKYs4h1rS7qUYTOmRdQSsOFfD87T78CjcyUa0kEmsA/1oQ4e/aZrd1wiOwxewSjYRqwbXXlh7YCitBGeEfYf5Os/ik6bdz/dbcEvwuhTObjzseeb4xmRMB31fj4y5/4x5QRHkLNThc6VzYCtwGBiEO1HhqgvFsx6NlgwlA2SG5RFiAQ2nLvLCDG9BWfLcluE3l2P4sFm6QCAXSERIqxdg35LgshlozYNCirJiBArk2bGRliXYOAu0tG24WKMU0sw/hLQ8GWx5GfVikJ+HMmwnJOhrWkzIlM3BchwMsgEzFMs6rQkcOi+hv4NEUwhaTyZaTKPuk2yOFw94LfgXYPtXn2Bfi352xAuV7vL/y79caKDwgrcEDD3neLSkTvjCLAoYbKiLs3+8ML6CcdMng8kjeHq3s+2D9jxeuQ82lSrUOW9aJV88hY5p7qZ1eFlFtroFoZZ8F3phcUnKahDQITX0HmDGfur0syNVhyNudp0zXTHf70X6E5KeXQ4pLxqTto+FXUmKMyWRTgh2C2pRtKRGNVG6kdQ4UP/8UC/f/Ps4PDp/9b/5JEEZVUQrRMXM0VmYDtBM8Cr4npC27dDMk2lzI8hUmRz2MjF/oOz3jwTKhx9d89mPG9P3Cm8+KHx3Cb73Jvhz28rrz43yTvHdmGelVEFGQmEITFeCeMO3laARHaIbEUYJo28tF0tTouffS9nZ9h1L4X4CD5KdG1FNhH0wg6YaVFVwZblOMKKKUybJeNgCOoz7ysQw4R7swsEqjJrJKpba3fSh23IxMgSPZDQ4BXNNmZKlYaS9q/TN+LUP3s9dr2v6RhVVmjndUw5X1pljmTP4IRo6GFO+O7Fk6s6hZJJmcQB/jpcOS/kfuUQgko8LFdC819fIDcMtE3ccJbZ8rvU8dRWGPNFGX6AnS2Xr2U0y1TRybuQOY/7sHWeeEutDKdn1i/QZ6p6AxNYHw8Ff1lzrwr7BujvtGtiTraNjTTvUkrIISYZPuFAs6cyX12u75dz1QLUQsyRIKDa8C/Mz6p0So3UWcdkPfj7GX/+Dgs55qCoV6uECGhmColPQWl7jcwQW/dnzQBdYT3kNV4Gz1yy0LQEw05RxiY/v+uK1ICk5nCSveyNtkNCU8tXBXq6SzxHggslqkQGmZvHTJX22iPyvjudcNl+N0ZmEceC9MLazcOskfR0foEMETz0lhh5p3tqfEtjae3YF19E9Hd7wqCbjupaci92dFp0v2teiJPqaj5RKIEaE41px4LQ7h6uCSaN1J6TwcP/EF8crHqfgi4czdOH4a98ieOJ3/qcf89lnZ0yM4oZvDYBpsuwdatBJRv1UhIMZZkr0kpIhr5nCedqI+yfWU0N3p0wwa2E6TEyloFZhqkQEy+1EtEBqRUhJd4mcZzEcNafQLK1C0BJ41QRUVWmWh4AmjruwN3mPq6Y/2bCAUMVRvBfsKWgPwekheHoLX37SWT9rPH7cie3E4c3C9NGM3B5oXVi742HooRIerFGRHsS2cXq3szXYWrBG5/HdE7/3v/+AH/yvP+DweqFOQntcOd9vrE8b3uCzp86TVtoatB83vD0g/8x3uf+isfzl77L8+hv4+Ev2P1rhXHCpzHrFmw+uub5aKBHsq/H45FgLlqkwS0FqQYtymISFmcNhRqWC6JCVVawLIYqXiovSSeZz7+m+u1ueIaK9NKJ2V+ZoXE9T1mUOogUv2dSnCVe6IZNy0GyaWzhhwl/8pQVgWBm8fzO0kB5DuHK47hRXrgu8UuUmhJuDUhajhHAg7fE4LMQAACAASURBVGs0YoRTAJom+iciuUhCBjdZ+r5e985VS1/G4sAArfezI11oajx6pGF8wC7Bo+c3XTW4kpSVThV0Sr+gm8k4qHBQ5VgKc4FjEQ7FebUUbmpwfTAWTQPx5aj4HKwRvLXBChVhmYWmGcAybYVXNbjSZNQsosgsYMl82UrhpAUXcDo+OdonZlHqkjwxEViuck+HDDm7UWcxeFNgacLs8JEKv34QfnUp3KhQcFbez8KrbUI7gz+APOT52A7gh/SE7V1oAq05MRp8kGCPjLrnNMM6gCebhdaynj/3JFG0yCYyo8FHh4k07XeSERwlWcQDy8rR8y8XgotI1vHWFetC29PT1F3GNR11mObzrGRz3EZQ0+XobyS5ZWMoOUJy3vTEFZrnMcFbNjpbFVYHf5eKilbGOUElQ4MkZb6mSTpaJT25EmC/BC0A5D3kA5OJgKZBvw3k4atfs68FMys/XAywaXS6RF8unozufU1d8AXQenl2Qpox4L+IlFuFZ9HlkWAOl4V9tNIEnqPmefajyR/oYCEUHZRNsrMsQ1IjpJ+Vku8LiZ/xzMoFwXoaZxN56JwUDCMs8B0oORGZIcqgBUpG0COZJrAN9kMZPMEO7ONkoOpMA2i4RHKi2amWGIZsYysrozvwrH2V4UnhPKcnvo+bHuTnEoS9O6d14vrgzEWe2XpunS4zIZ1DLegM7h1KEI9BHAt2htJTm6LvnvByxeHVwtQ6W++8erWg16B/aaI8AQ8nFl846s7vPZ545zPlVunemEqhvpp4euocr2aKdHYzihSOt8a7LwrRHPOkI2tNE//ulprtPSNejWQAymSIObEpbumaPNX0ZLBGGvBuhXaV3kkmwmEp7HuioNbkOQ0ndieWSq2dJiWTdbrTNTvvbfhF6F1K1GoErebPjKRML0U5nYLeGvPriW6Ff+kvf5Pv/3ef/2lPhX/kQy1eDuKqRId5CfpPYfr2noa3Dm0SyjmY5wlno1bFzZlHQqFKdnLomV7TIpmZLk4x51iO7Lbh6qhCWROs8CUZVb475ZBgZBdPKUyLZ+kX8Jx+Yj218PvqKNnNk5asm5n03NKS/mpb8xcmaY3LxxwNg2Fo6oAlw3S+gbbD5ILPMhLqApU0FXcjk60YXSclAZG4vHZ6XiwqeHNs6en10AMpI7QBiOJoE+YpsOGN9PMy/ubf6vzbvylM8eJp8LDBbA4yMcfOsuR1iJqSO4lkIIUA17Cto/CYeh4KCLbhoViFLEzghUk8JIqXIkWmYeQPz80ajfx5sfy7DFxIIrt+XZ77L5QpmwXaQK6A0Yx56dy9sBLt7/udTZMRWjWYBuuwDZDsWGFt6adVD2mk21s+99L9k7Efiw4MVxjmDZX/8Xffzz3wH+0IjAK1sXnlyo2tdeqkw+evUkrl9NS4azNvv3Xktz9beUVhq8rpw8pvP3Q+u56Id4+8s5myBkvpLDTafGC5gmWawI1tg7Y5ZS6o+mAkL2kH8Lax3q8UWXMCzSX3TOBsRsyKtDTx6HSmuJjdJqoZZoRkw0e7YWh6mIix9gQGRCNBYncWKektKFmvfvLQ/9++rJ/bsW3AJqj1lFhFcJiyUzstRplryptnWMqULOchRZmvFKOwf77T+p5G60/gh4qIUI+C71sCQJ4bSbOGbzvl6hXr1UKsO8tu+Lry+V3nnRTOrfLnv3mL6iN6dcf67sTy0SHn0OtKfHTDSSv7lyv1dnisTTN/BuUPJs+mEcp6SVo/G/62I4exwBqcd6OWQOfCeeuDPQqxD4kZw+vK80xSi1NVMet0U0px0ILQWV25Hd45Mhe622DDK7003JUp0nJkKXBKi3uOlZ/xFX7/hpc837glC+78NpC79Btqu3N8lT5njRgp8TJY6jCVeGaQHATOLuwR3JKm21jWsarOIqnmOY8miqqg0VhdMQmunwNuhF2DpwiuPZvJBwJceAsjlVy5Jc91B00T/y3SVuHU4SzObUlZ7hqAK/uerPhMShw1Ua10MXweUECrFHPqnF2gyZSYYG1CmTK9XDXPlhNBxZjJJOkPVUGEn56UvTnFBNNs7HcFQjgtsA2lyEGMo4C60sQ5vadepRaBLkJfRnCbJvgMaajuhfRTqzmn5iFH75GMqzpqXVM4BclMtYs+y7MWsjy/KS9hBRkmla9jAANAutzIkwlRh8/WWC/VMnFzLFUwmtiXcDzIBOqwLL7KeP8XL7655M9tD6YJJhtSQcsz5EVvWUVpm2MIVkZN/wh6TAaWjbeplueOLowU7OG/atn4b56+z5OmRNE9kmzjCVBbJKjXlyQGfNXxtQCzfLCgSM4SAzLKg3oA48/RIw0/daAyCpfsVRWeY+FFIS7tZLLN7PtFBqGpPR+TUGJIYFQGuqrj0BfDd4gEqqom3deTqRURTJEd5VrSrNmB3dKIMH24IFZDB/jlFbSWPIAsGYeZxoSDhxaZxiSRXfEq+swmM/dnA7rhKY1HarmDRFktssh37NmTJM03ky02DQZZi1zYdOh2k0gPP4P9vlfjBdKDf/+/+iH/yb/zHbY+ujs4y5ypcjrNhDg6NVoredMvip8NtuRtqjesHtitYw9wvFPKG0nKypdKLBNy6vDRHfgT1/Mtf+mq8/c+afzB08J0XGh2pjVFUZap8OVmzAX2d845DJGCzIKvgijs206tlYiKR0vkGihi2CaUOhh21ZFwwtJbrpZhND4VfA4mrUg4h3miteGBtAQ0pfctJbRlQcVwU+pgezG8HtzT0MY18j2G0+4jJ5ZPiBnUiXU3Yg5kruyPSi+d20OmSL5v40hNam4YSDCH0j4Xpm/t2DAs7wVKd+JR6B/2sV4E6lkU17LgtiELoAlmC2AaVEtD3JOfh39ZAgwx5aaUDwziGnZjeJ2NKF+5sKxGMT0YWUomGlqDrkGxBNZCBdOSAQEez7LlZfj6tUaCDoNluu3BNA//pSk3JgtYNJmnxS/d09GlLw7zhbo9ZG3je1RRsEjmV8vHuAR6VvzKmZ4Eu4MIzU20O/0R/FqoJehfi53sn8zYm9FRFlHag1Gv4eoJtlMgdceXbASFOt6GPG9Ov4axtdEPA9kk54jDkCEY7Zx+jZW8TCMUJx/tgzUIIGk87JK+DENxk0W/MWKfRyqn8gJmutDXYL5KabJ5HiJCBhMrxnuN9Lo6CNn4GXN5jgRIjWHmvgHnZHl92eF0hptj3idzzd9bID2d8kzBxRXrhGSRKend9Vu/u//jvnzvxXh6bExVgU4UY6oFi0zHXbVQ3p0pu8I/9Youwv/50FjkwKe//8iPlyM7O10duT1wrQvLXaGsG1ETCD/fv2Xdj3z0zYrMwckKdjYWD+psLNfO42dPeDWWQ3C2Spx3nlZldiWWAlun9Wwe9taYXfDeuZqVt3tWmyWUKg5hnJlYrWc3uYCh7HsgEyBOs0rV4WUkTtGZ3/l7v0gL+IeNq2PFZ8OiUtzBDCOo6LDQgFCjSLLgynHGvDMh6JPz1DqGUJons3kG25zjsWCnRi+wTJU4COx5SPIi8PYJORs2Fe4nI/aO7kIcZz7FaQ+FVzcTt155c2uoKvePnelhRW8OWaMvjR/9rS9492Vn+43X3GtwnBZkD9oZbg+RzcAqXH/ngK9OKYJcCcdQ+uZodMpqbBVWBWaYTjs2B3oO5pLJhVtPSxJRoVdJCxWCIhOquWe3ImxrWmLEhc7tFUhFiUSCMoSi0dkdXh0O3K/re9mkvv8MXr8GhpfR8c7ZHyemg41kesHIOuogwmqOlMLBnDcKzQtNHB0AxOJC17ReyTRn5aDKhNNUuRFYu7N7GsdfaWKXZzJgQCS4lUIPZy9KONwW4VaDQxSeIgGzO/VU2KjzFMpc0leyD+rMoycDvagSLSk4VZxJlWuCdhAmGj2UHbiSYC2GibA9KvVWeWjBqwKTpBn9rk7FaQi+Czev4KHnXmsK5+7sT/DhaxvEBuGkcDDlqgY/7SnPnFV4F8FDZFH3nShclfevpgfS+yngRAIri2dd7RKckn1DtcEgD8FqMsQL2aBrS9ZGdIiaNXzMyci6OpGTR9Kz6nSt1H2c81sSWSKg1STAOEO65+lnKpVRUI/X99EINIgVZEkSw0bW4s8NSBkYQBlYheSZ4UQWXpcgqhGWycCA6SZoD9qUAXNlD7xC2YReY8gtx3niQgQqA7MZbMUpUiHXS9aIMSwfGMF61gN0mO5L1nXuQbn76mvX14RTP4404VxgLbm0hRmcvcvjwrMbI4lqRqS+1SMBnRhso3y4D9LWSOBCBiky8su/pLsNUCu7cgkADfVMmsxGAm5l0pFomGldF+DNPbikjJWh52iPHdstWVKzokuBuSK1UIbBSJrQJ6BlcZE4ZotaEMzTEL73PLWqCL0HJvFMEQySYSWRm2GpA7CynAzJIhtpMoyEsAFy6eVkM7riFwP793HI5X/h7H0c6DznxPkt6Ob000Z/ajx8Cu3esK0jraHXil41fHKKFurubLvjxxmbgvCGf3FO5PvvnohfuoGPDX7tFXyj0d92vveNhWJOWxvUJdkoRXn7dssExQoxdWQeMb67sdScERPJ4CvSUvZaA9+SsiDihHfEwSM31fkoYEapynydiZqzFiTSO63o8OgqULRSTZCnip8rpXW06UDEc0G6+OZMxZlmmKpSpcKj0nuFq5oH2JIHbVGhSsU9mG4TQK6X0+17Nrw4oT3v5wdhN+B1AjJbGSxRD1SVeStEzXhy98BHaqG3ndkVJsEHDd4t01AuwBYMI+vRufYCNsG+Qmm5MdTRaWmeBu7OkHSJYAghhTJW/AaZ5rolVbowQiHC8M05rS8gsDlJke4JgjcGG0sTGO+D7WlEauHHJhjjcV2H8eWzAVL6DADP6/huTkdzs1NhE9i7YDhRx2ZpgYclsB8JvIWmZ8R+en/Xrn/Q+GvfL5gbG8mi2hRYkgK+nYMWPsAeIaYXavil++ceqEt6M8LzfhYxfAWnMcf2ARa1wY6KF29GyO5ewHMlkWQDeTYU1QvzbgBSUdJElSODGp0FVh/voQ9w7JIcPQv0/QWEE3+hy9PBT/mepiV/v7mw7lkINhkSyUhZrteUJ/aea1WXAf7WLDx/2I74z5H32p9kTFcTsyYDnZGKJZ5gdDXn6fMT+o0rLBzEWR3Wq5kfteDhR49EBHWemeZKnDt977Sl0nViFSVub7j9sPDpT858/pmxffbINBvTbWW5WVh7ME2OnXa8O7qlnLqKE7NDNCyC8y7svdMdLHa2KLTVENtog1WQQQYK0hBxesk1uopzU51jkKlhOB3YRKBM7KJp/vuL8Q8cUhKk0WF0LbwYaEukxYd5ScldEZ6edtbVeDjvWDS280bRnT5SxVcHkcLeSV82Cmg2HaebCnMltDCtwjpX1t4xyfNC33fOjytrh0c2PrfCH543/va7jU+6cfpw5uPPhXdl4lGCp7ow/7O/DP/0h6x/94z9YMXOwvla+OaHC2tr2TBCuKkTb65nplCuolP2M9jKozvnKpgFh824XnueB5oOMH4k5tWSxFB0sJxz7d49N/xWg6kmK+yygdcgUx1L6rudbNKL7HQRDrXwG99c3ksgC4AtePtFSe8xSTLCXJzzDk0SWADAkn3+gU58pMJ35oq5sDdn8/R/upP0qToTnFo+vgqA82TCakF3R0K4i8K3qnCNsHkCX3PwnCy9aDBXRzQ4kT60VRPEel2MVYJzMii4Umf3GGmFkiFiCJVMAq4hz6qhrQdPEuzhnANO4awdHsa5d5LgzTUcNrgrmRp6uDZ6C4oEcykcSkFEuPcMGLiXwqMJmynHJaXZyaYOZgfoPDRndcnQAQm+XZW/eIBfLRnQ9tP3dP1rlhYNgrBVyaCQmo24NMQnFVcOIkGRUZIo7GXI82LI50ajT0mmfEzAQ9oiPPag787WAougMRp/EyyX5l8kK/7SuxZh/H6QPsIOhgrHTdlthJZso34ro75rUMna7Nm6oTAsk/Lvu+UZQ0KydmxQLZvSK9mYt2vJMCFPw/dtAFalZiqjSVDihckmns0hr8OagjG3f6Y+wwfxZtSn3YNZXiTXX2V8PfrZ44YNkpUUMqpVGflnovhg0YQM0xg0KaY/8ztkzBhhSA7lhZFzYVhdzOMtBkLIMDYmE07i8m8XNk8k5VAgwaySE6dIFsS56AkdoQzNKD2YDrkwiChShFouVb9TS5r5JTA2zCAjfUckBngwgQ0z+lBNBta4YdqewJN7UGt+R6oXhptmuleFfTAnIhL06wOYm1SI0SkQScQ0nj/9+zcuMkPIA/p/8F/+iL/6b36LaarE2dErpU2dqQbzsTJXIbxTaqWqEM2RI3Cc0VOCXH6c6e6cPoXb1wf0lwr2BztlKvhv/xS9XhA9wlWaoLMZ337tfPy2YlNe++iGuVBroJIsFQE23wk5UIozRV4bsw5V0L5hXpkncs4XGUG7nSJKhFElsGNC+/bQWWIm5JxeShV275Sryv7gUJ1uTjlW6iGIhwTq7MkQGdFjPXXTIWPh80JrHZnh+MqxQd8uUYaM1YluNHO05SKmrTDJ+ze/+lawR6fWCbtqyGxMKkwUtt2QJT3MWnPKVpgrPG3OUpXdfaQXpe7cX+VaEwJTBFUY/hgJPkxF04smLmbsMM1BOcFsL4AAkSb8ZWCH0VMCva5GqSOtzpR9z25y2GBveVDSGTDfV8s1Jo7AKBDnYZ5qXZJJNkCFMuUf9QKYGJQRXT/CMLEedB3U6Dq8tFxGqio0Maxkl7JEPj/cKHVEAUckIBIJcJRD0Ev6En5NujL/xMZf/23jr3wb9mNSsWUKrCpylXNtewdXr7LQIpKFawKxA5oGoL2nRPYwOnRR4tl7UUeIQFmykLoUb0ICTJ4qrezuSjKeXPJxF7p4jKLrQpKOAF8Ty580i2ErCZJODHBpFD4dnvdoL8CWcyzKmKskQ2w6AgitZbxzD0G2QF+lH5Kx4LrBYCeqJvsspamafnIEEcp/8T88/elczP8fjgjYIlDt6JpgRBRYXGl7w+vM8Vqhd+Tuhv7JPXpzxMqO3T9yvPkWpy3gqXG4m1m3jkpNMIo8vEUpyOuJOw1cZs4NlmJAR1r6yNTTDi3XjWkuyVrcFLfG2jvSG82cSQKPmRqd5oZQ03zc0+Ov1AQYPDTZzS0ZO/25cZpS8I0EgLvDVP1nON+/GH//0JIMYB0G/mjP9GwRVg+WqtRw2vDXrN0JMRThLJlQ2j1NZR5PwvWbikzZCDmf9mRBiOOmtKedSmGJiXe+4bull6wrUjMIyiOw+53l9Q3xuLLTua/C/azokzM7/ORh4+ZQ2VFW65xF6L9+YP3dt7QfNto84R8u3Nxd41+cOE/Cad/oIYDx+lD45b/wBjkUPvlx4/t/9wu6lATpi3LszvKUxvSfVjKBsAWdoIhCDfZVmTUwUWYVVoxmheKOzEGRktLx3F6hK8dqrCFIFKaAhvDRe9g8vIwPPhLuP+2cv6hcvW70AK2GP1bqrWfYTaQVjHfHRxjXj0OYA+7mPBE8eXA7Bd9W5YtdCHFEjL3okIFVdoylZ6LfXAR64Qao6nymweHCpB82HG6FmUx9W3GukZQrDgXRUyTrfhLlasr9eYvcXFUCcUEmZ3FhEmUS4VydHimHTgVOnhfNCh2ntWAuQV3gtOdcP4pSF2fdYZVUl5TrwMy505RgigafPc4cj41zGB7KwpC+SWFW5bveebBUkjx457Qpi8CNBt94T2WGPdWXWVdYsEwpaU3JXrKy+jizZ2M3a6d5SA/pwVqCa4DBGG2R+MMuYFdCHXWztQR/rGftv5HNNZOsjZrAoebrxLj22GC/ayanigtrD0ID6aNBCchcUCzPDBNsQ+ml+jNe25Hnu/0Fokg/L5JlFYNiJAFYglRpD5GImmo+VyXPHCGJNeR5NiWJZXAZypBerpbJ5GUYvoemP2U2U0fNSLLcvur4eoBZAzS6JJ08W2pGMgEuPw/yyxMdgJbkVUkYLJ5TjxCeZYrh5OOGftTNEUkDDRfJDq2lZt3DM9FrsAzUR+t4vDcbEkCtF8TVMQ+KJmPHLBM1SghaNbuWw2z9whYTErwKTc2yS/peSWSk/QXFjQAiEt307HKFJ9pba4JSKtkZsOYIefdp9USELZgOw/9mCLwshsRDgzqKsqJZ9OuFZviejkvJKSSb5OPHW75zdWJvgV4F2MS8NDYTPHI+VECLEaWgVPrnjb4X5rmwzQvnVzs3UTl9+Uj9GKQZ9VduKN97A6cg3irypqLhyI3wy9cTn25ObJ16mOm+58alhaVUNlmxUKalUjBsFZYrp+9G9EJQKFNFV9jujfqqYt6Rkh4NHo6U1GTPPrE/GHIMrr8T7PvCm9fK/X3w9LAT1bj+TuW0JpUnEHoohFCuwXsa5irOfNSUjR0SID6vykzQmtEMyhRMUWjWE7w1Ra8COzu27qAFo3Fd3782TphxeyfsZWUpOvxahC6W/g3m1CLMJXVT0ZVFwS5m6yL4KeCQ61syuRhJIwkeXlJOwpOlh8AemX40GZxqMrLiYsbRM+yhx2AjV6H0LKAzpTAyORGlt8FXnQuCoT0ZDlZyIy9VsB3QsT5YXsNSFAsb/5Ydp8sGKaMQsHAqo5MUgyI95fsMBbvIwp/XxtyguUgp3VKNOKhgdomZJeCp4jctJdY6aEA/R6N58HfWiV87tktvB+vx7OGoSxrE1gWIpG6bjE6cZVEhz74qyqJOj5QUymjU+AAuGWwoG4UPMgqTwcATRufv0kgeskJGsWQFah8A5HEUT3LhNWe3bt+SUt81gYJL8eSjr3WROl6M6b2R6UCMvb5CzOBnpwTsliu+sIEn21E1MLW0GZjzXijqCbCqcv/uF/5HX3Xcx8xd2WEv7MU4iFO90szwdzt3H95xvUwDKE82zeGwoEVpb4R1P3J357y9f2Q6vGKrHdtWzDy7yq4ZGd47rc50hEmDbXWeIr1boLFNwaQK5vjm6ZvknRKBdGePTNI1h4mNs8vz+qqXeq+k3yNS06zXHZeKeM97QAoHBngngheo1mlRfgFk/T8NkUyQDIGRUKul4tGpWoYfi6Au6YtVFHGhTopvgTVjvip01/y+LTCMeU5PWJP0Z6lA9MK5d9ZoXM/wdjfqXKHZSHieiN4oc+f+7QnfO9P1ATmvNFmQ84YdC9MPHnj30RE5LLR1x8VYd6f/yjXaHfvxyvpJZvPOd1fEbuxnY2uZLvbuy84HfuLbf+aK19+c+eDzI1/cN06rEaVBEeI6G8xTdyYKhwpr6mpog8VWCiDKtmf9uZ1gOmSD9TzWs2TuGLVmKt2iCd5tEvR3ncMxIw3ex4TWsODubuLxvnP+snD1QTJDpymYnuDqpjBNzt6dd6p5+JfCFp3D8IK6LgkgvXXl0xacWjZfbqtgLYGuV9q509TLb5tm2ElNxv0BuAV2hJMHXZV3JViiswHuhaKGe0VwagivUQ5qbCGYBqhwKIF1GxLHPFf2EHaJlOiLU12pPtjLJR9TBax3tCS42VzYxJmXQnN4ao6eBaLiq2Va9CI0L3xszixwDGG3jorTRVgEvrQEAzsFC6ME3GlwhXHDxI9xNJx3wIeH97TuKoK3YCrD1qBl402GkiokhiF/+hD3njYbvQfFnb5kQqVdWEnxUrv04f/ZerBfQMkygC5PTKIO3ZddHrsnW6vPJUH/SAbUhXllwxe1W3rTygjn2btRJYkr85S/Ty7WH+SfI9Kvtw9ZpE/pNaqeKasp0hnWJBLUlqqO8zBA1UhPNxzKPOq7kn6/cnl8zXurDUnkBOwq6YU7vVg+iWRIT1OGJ/lXn19fDzBrdL/GX4b2JP/7jAoONhEE4Z7R7TCq5/wdPqKzhPxScIZMJ5HmZDSk35XoiwxGNY2H9cIFlMH8KqAMPyKJRE4tzeWlJuOq7+k9VMRgpAaW4QNCgYIOH698D1ngJy3fhAShLiDZ+OhEorNpNjgOfX20zCOZMJrs4vQ6GSmIMbrPsw79blV6JJsDsmNug8rasEH7Tt1SXOKF38Pxs55ZF5bWf/bf/j7/3r/x5zgeHoaUaufppNzdGtNU2PeOSBCyMJeCnVd8BWmwNmNeT3zyWJgn4+54TZ13llpyQt0bcV3gJx0+bcibCbb053h9FXyiV+xbQ73k9dyVtXYo6S1Ri2XRXCvelWXK1eawVNZPGlKF628LRYynzztqBQ5CnRYQwzeFc2e+rtTXyruTU6eNh21mE9CrnJMNS8kYFSdjzsssdPMRKlAIUc7uTJPQLCgUQoJpytOrSslsz+EhorbSS2E7SXpCFcHOjgb8c3/25k93IvxjGMtk7AjikiwkFcLSxJ0pfXjKFswz9G9MbLbiHplq8wDtmGbnFnm4rp6gkVk8M13w9PhrEc9mslUTkOgCOg+a7wo+Z1ckRmum5tvK9JKiz956xdJHwpOcR1RH9+yaaMkl1WMACx7DJ9DpLVmmptntFsYL2KAua75nyzo7fZAqcIbjkjG+3TMNprRhDCkXunZukj4SYNJyTNgsWOb0yoqWTYv+ZPRXA/AYjN6frxH8R3/D+M//9UKYo5NgT8H1dRa8NmcB1O9huoaTwkyayxbg4rYuFoQ5o7/z7HHWI5l6VYE6fBQYhdCgopcLkDmuucoAt0YHLhIfwM7Qr7Lo6uO1Y+yP+UlADtndm8l0zjLx0pzS/HlrA+QEpkPKxHcPtieSDj/BPMPhdX52mXMOB8lAOwPSlV6c3YVZjKpKkcr/dR7o2y/GVxr//W/9mH/1n39NiSDCad3Z71du3izc/tIVpQhf/ugdd999zenxkTI7uiy8vp3xk3H60efEB9/geFsxN6QbvWtKqwPK7MwtaKGs0Ti1QpHgqAKnM63kwWtDcW3gys6Gt0Z3ZR1O4tKcqQRtM56iUmtL9lVXkI4TSCl0E6z39B/qAsVYd9A5a7vumZidGoGKTZUfPf4cpU78fxi1Kt2dqV+k6dms0SjpPYrRhOpKvwAAIABJREFUWgKJcwExQ0M4r51aFV0qNvwaz2dnKc5hKXloW40Z4bTnwhO9U8NZgCeHuVaaCfu6I3Winhv1WNka1LIhRVjPG7eHmXdfnigTUCrro6OvVpanRnPHp2wo75oMWP3OAfbG9mWwPz0Qj0aYcajB/mQ87fB0f+Knf/jA4e7Al0+V0xcnyiIc71K+trlDKO7KqQTnLT0g5zmYlmCuBXPB10wo7JZpfYdjJabC655S6m3vHCR9hhsyUo09w4oOxqaFWgq7vX8g/SyBlJ1f/mbh/BA83gvLjWZwTYHTGlw5HDRhAS15jnxjymNkSuonuzKLcCe5LxxKcJiUn+yGu3NFoXX4pBralbsj6CSsJbst0oJDCFcqfFACoeCS5u1OAhP3vfIUnS8RxArH0igqfCBCVSe8Uhx2jTR9J//9QO5X67CpKOrJArKRKj7OyVrSFyvDoDIdsym8lmRnna7SeHx6EI4HzQABgeNUCA9+eJ9zshYQE84MokXAQmChfHeuTOM1uhkfElwpXNXK0/vXnwbAWwy1UwJXzbP2aJ5Je/Oo1XtNIKeUBEDVldPkzJDpgJoglbVIf9HRrLUAWSA69DOUSWgaz8qDrQ98oo5UeMuG4HTlqZYQWDeoS5q9V4FyELYdbIpngEkbhEb6DUbWd9azrtYpQWFjsO3tgptk4dWHZZPXxEWKwhb5fBkYh4zyXwZbHk1LkBajKTU+axnu8Jfm5zkYBB7o+8UgHuqRkRgMey/8b59X/rWveM2+HmAWo7X87FcxoIdhAB/pvDYArktreDC14pJCONLYPFFzKWmsfpGfmA/zxKrDR2p0kIdcsQwk8OX35tvKtK0E0lRByotRmm8+cLRkXi3H9KkJ0UyPiIsWVQYlMFk/FjxrbIVE1A81u8nl8jWMSt5GYodeWF6jI1WHX0X0F5aWD8DOBh0yInDzF/njAAjTGFEvRinJdosY8s73d1ykhhf56H/4X/8e//G/9R32Dq+Ohe6w7Yq3YJbK+tBpxx1bCmGRQM9qLLeF9dToh4nHq8pxFkqsyHGCmJIy8Nkj8p07UCMegJoGelc10M0om2PqzHNJBo1DVUu5q6QXxDRB6yl3qD2NH63C8f9m7916bduy+65fa72PMeZca+29z7VOlZ1U4tgQSKQIPgCCh0i8whMRLyhfIRJIxFYCQkI8AiKi5IdwEwoChAIhIlEM5AGwUFAwkUMsbMuu2HU5t33OXmvNOccYvbfWeGh9rn0CNqoyFdfxdvVS7bP3WvM6Lr23/m//ywfKq1Oaqd5+reK7s33e2F/1cecEL746EyXvF98ciYUuCmKUWujbSviEumWcrLX0cgonLGFSD8UkwVqzQKvmcZhS+pgzHOBCrc66djwKHkGt0JqmGX0PduDZ7Zt3fRVLUDsiKON4J3A9gHIEn1NXrrcbcyi2OkdV+ltOQZmI4dMXT0aNQrJhRHIO6lepcx3YPUkNZhGmKrTNkcH+UhnJKh2mKZ9rozOkV7BMEqDQUFyF9mAsPuajA1B5WjSLJCtM6wjhqDmPVBX67uichZMM4M1LytrmWZNpYXmc2hxYC6oMCVgwFlSe5tSc2vP1QqANbVsrQheYi3LuxtxnNFZ6ecL4f9+NDBW/AbsgBdoKlxuonglsywSbweWSgNY82Eo2QNI6GFvTBN0zRet6GiZNINZGJ60Dt5pG7zFAUrLpm9Tx0cFcriyqPlJzhszY2wA6eU2Bj9Gx6+RraWSy5mGGtmXncJ55ajzFPJIJBS5rdiEjMyeI42AenqAchb3HYG689pcoAq7O5LCJshNEFVw6P/tXfxhn8PfuuH95om/PeTztzN15PhduPjgwa6fOFY2OHCfOp5W5OLN09t1YrXJXhctxxy2Ny86XhtZKdcOmidp3+tnpJefS3RMwI5zdlUJwcaN6pVeotdJD2FqwUagtCHUwYzMn+s4yH9jvV3otzCVYW+eoJSUTAio96yZP71FzZSqd5iVZig5aS3okWkHd+B//zv0P+zR8qYdoTa8sEaQ4Yp0QJ/ZkErlDSKeGZuIvwaEEeySLsopwvkB/6BzeOiDdkb3Rmw5gXIgt5VeH6nSZqGqD/QV97SyHmdbSA23RheZp06CRbPaHywmdCr0n28SeQbzs7Es2cPaL4ZoKBjkI1ZVWl2RV3U0cP3CeP1PubidOXvnVv/3AiZS+3n96ZpoLUYJtc7aP0ufx5sXCcguLNnaHuRh1lgTgSgaxTCpwLBm6swqyBFKDtinnvedGsA45bpB+qAjni/BMOjFVisH7tzPffnjzutShmutXBDc3cP40J/njJMQlCQJxMB5NCJUEIcJwCZ4jxJ7phvtsnETZSvC8CAd13lngpcHqnWMUXIJejE8Rtl24WZxaCi6Fz924C5hCkdEwEgtmDSqZ0nbwiZWga/pdFXf2ksqfGzHuNLhF0ri/KJcuNHoCmZ41n5uwEsykPE0R2iA7IE5Vobni6tQpOHtwK5W3QtnCON8kg2wpwh5CdOexKYvDcszG5KFkYzOVRcKK4F342NOk/l06jyiC8Fk4n1h6l76JQwYoQwQTwqXGUEvlXjqu4HZknYFDaUEbUgSNoYqwwVa6Wi0wQKaSoM00K1Y8vWIb6BpQM5051WNB1dz7+6jlZUq7hmnKusYig3Sq5WOmJW2MkGRvbjHsIyTBubQfSc+uK3/H80cgWfdf4e8gDd+pCWrdDcXHrrkD7KM+DElWoQ7FSPe8hroNz+fRpHYBGsyLJAss0iaklwTyhv89YoB0/vtf/94L+y/H7lJ4vRuR8cfQLFyBh4FSDZBrgF6eLK2IBG6CQeoa/lThVyFDMqteyyAGBcp5MkJPf/gBhqG4JFssBqUQMop5cJyIIpRF0xNnFqYbwdoI7h3vk/dCpAhSruwo8nsEw+k//UU80mOgX3E9T+PI63fTkl+jXNMMW5rXXw+VWXo6FPLq1qqICGVSmieYV4b2I1MKArNc5NzHMX5DO9NfdLX4f/79L/yVV4gHlxP46uwPafK6S6c8F0IL+6UTXWiSjABXgymwzxqfiPKROPvdM1apsAhdNuRrwvlb50G1S+P37cHRsyB0yl2lHgrVjKIt4+qroHMWgBVnks47b02oGpM29ns43MHW+sB9a064Rbh598D7f3Th9seE49cqa1gmnlhPyZEYaGO/OL2lVFcAJiWaU1TRCJhKGkQrRDFq0ZSvCXiXAZWVvLdqUCdjORS2VdG5pDdFTw8enSpTEaI4kxZeHL8k2PkPcLyMA+GW3mq5f0o6eIxOTMJO7A81N1bnBBsejs5O0CQ7v8mTJO99FaTKk1liJ6c8M177FwHsCU717qgqXocqrENMaejuPU2x1RJwq8MLQseqYe50y0K4i7ANrX4DZMp51Gr6AMgoXGLMax5pYN8liCnB8Zxicj7pLWPIdRN8DlofnZ5hfF+Wguu4pgagqx5MQ9omkkzaSZJB2ixN4AW5vkXOs9dp/vfh+Lf+B2MmPRemkqmAUwRH4KYKz2/gboK4DFDIyGNLFmTOqGHUn8w2ZZz/vY9O3Di25k9NO4IsZMLSL6t6Pi6bOfmYDnAzijkbYCoDzBqS2DLOvz6thwMsmxJQsz2v/aKvI6/7Y7747QGmG5Ap1+/VYdsyCVMcjoMlJpGfMSwB2MR8A5UD6hN/9+XbowH0o/G9j2T03T2buX33yM07C3M1apmxdWW77Jk06Tu9OeW40M47E9CW4MUffI/TRzu1HJLtHmA4BxG2Pb1ALdKfRHrLZt4I+Gmt8dA6j3Ghu9Nbp+8b6k5sjc0N8cIWMLcd6oSZUW9mgsrZAsHS7D+C3XKe8pZyDQrY2mkB5h0saJKFt5lSS/pTXg1ufzR+6xFFodaUryBQKqI6/Gzznr0m9hkFLNIEPQqxStoVfL7y4tnMCy3czEKrlZ2kAbR9Z+8OPaVcvTceenDajP2c0qnz1tl24FZZ1RBRojg7SgMIuPFKmZecFyfYXzbMnW03mHNdtj2Z6VlHC6V09k0xUbwW/G7h+YuZP/Inbnj7/SM3bz/nra+94PjuzM2xcPtu5fjBAS2dh08f+eTvn/jow52He+gyo9NEnwoq6VrZPY1v17Wwtko0WO+h9z5k3TnZlikN5C1yK6eWvlq4QIEP7t5M9mBrgKcVSBU4VKW9mtk8JZqH50E7VUThYulJlt6cSltr1jRzQ4E9nErn0o1vtZT2vaPKjRY2nIMqdzU4dKVX43EX7puxujGp8iqch+ico/PSjXtpnMy5EKw9/T/vxHi3Cm+5cqOChmAK9zgfefAgwULlxoXJBRdNX0iE8Dy3QmA197EzcGuS++KS5v+VoEYCGKbKGefejEuD4xQ868Lx0XnPPdMYTakIx6NSppwHHy04ufHZHlyacBbh7Uk4ivJrMfGJwlLgxw6F9xQ03kxfNrMEsUrAWZOZ1e11melD+mejERuSP7M514nuae6/lez3q5LqBUnV1drTe3vtGfagEbQ5QamNrOPNR92/Zc1rDu0C1pLI4qQd0tVifBufo3fPvcgAwyJg6uCjbrbOk50Ro/G4Bk+klxoZZCdlWCYv+V51D/Z7kGOmRKuS0lhSFigRiCutCwfN+iCHPIGA+2jO45mIGBNQA+2vYaBq4zUdfv3yva+xX47dZSJU4+9DozlgwqeNy5AL5qNyYyZyPUjjpwMxjeuLCjzJEK+snLgirI5roV59qpBr0FYuasMdPp8uTx9PBsDm5CQaXEErpczgzQmMeixDA5qfee9B1WRgXIlfdVCo42qANr6xe2BuueErgpZMOyxj8ymSnXd3CHIDWVSwgcZKd1jyuIjkd5aQlAtpMrt8HL+4FmTxDwI9b9L4IiPri5JDFeU3Pjnh/oJ6cObjxDtvWVI1t5nT/UatKUVxF25fFNp5p/SCr0I9Bpe+83Gd6I/OV0J4/y3h8TuNt74+oduJb/894f0/9oKOY93pZaZUYW0dXZ35IFAXvLX0BuqS4QHk59lWo5SJeFUy/vn9glqjOGgJ2t6zkxwzsWZXL7rSzRDZKSX1o+YTe3ekGBFGMLzhLCn5WqDJjMmOlpKb3sLTLO1D7/YEmFbJzaYp27qjFcIKQWeaZ2Tv9HDMnHlKlGX5ftz8fo+Mn/um8y/8pFCTz8le0hOvFmGSZLrtXagr8KgwB9uSzKxrxK0LzIwEEhmppj6A87Hg6JUJIwzq7+jMCCTbMiWDfVB7IanPvSfoFEMG6O7jc0KhUAs8nC03iQjUXKB0MMFUBfWgboHOgkxpAFk99fQiQnHJ1KXhozSNBKeicDkL8xRPUrVkp6bHoYSh/SrJHsxSTeBhKskCsp5dx9CMofaqHE9O057s27Ew/n7FIn7jw41HEd4dMvQaefzdYpgvw3xI1lY3JYqNMBBYjAwc0Vxz95br5+TZIYvIDmIMedBWSFB7z/MjjCniKk0deyg3sJb+WJbYALXC2sCW1zVUUtDjdWE11l71BKHKSOFpO/gGPe2vuHmWYHv3LKz3cW1DJohe7mG+Ge8dyRbbdYBrNphfe9BlY+XAf/LXX/7un7g3YdzMLNFB4bKli3/QOL/auZsP+NzZLZgOFW17NuD2nfndd4hvfsp3fvkTfvIn32YrCqsx1UwGLiU9iZoLxwK9Keod0dQqmKTE3n0mpLHFlHVXON2T7bq1FSJwLYm4OpkGJ1l/tSjJxFfHulCGT03sQYhRj2CWLK1rQuce6ZGyu6JyhYF/NH67UWoFA6lCUDAz9q54cSSUJRwPoyBMbjSpiFam2tgiaFvHXhxpGrwoIDuoJYNuFRuGzJ2i0NpOlInnzw5cXp6JRZinOUF2bdRdaaqp31kq7k64jeZ1w7bASqBSWXvOnfPkTL2yUQgNonW6z+m9N1Vsdx4C2svgdHlgujkSUlmewXKb/liffAQ3N0KTgk7B8tUDe4e2G3szfN3oj4Xt3ulamCMl874YvndKTcVEj0B3mIc22+egN6ClfUlVWHeBasmm0NynvHMsr2v8N2g0ScP7ach/b+927LMJvwh96exW6HS2tVDmvP+nKHg3YjHersqnLeVYXYWTCUXTC/YmU7EwaXQK58F6i5LeVYsKhPLo0MW4LbC6sgfMHtzMykMboSTDTzkizcHfXpxtVeZj5LWjOc+tPZvkiytHCSrKRZ0uadheijCV7Cwdq+CNNGn3wt6cjrBJWstAUEMJM9qpMIlTbgr7otx/boQEh6FIqupEd25DOAvcSHp1TUM+eSyFvcEhhHets0fl28XRUyoADm9gTQ9ApPF6RDLVgvTPYtgn9BroBssx65BZcy9FD1wTHJolQecq6XHaZDT/GmxzMu4mH43cEeiGQx92HHPyFLAZogVahXYIyhY0zeAmdHhfiVCGl7YxrCYgEZ6e17jGaK6PGo7hb1UGA58RxOGjObpBqjFaMqpag347muVX/7CRtuglYOxHbDSYr/6qZjHArvy+1/AgJNUjMkzjq+dn7pKsRY3K+fs4ZV8KMCu/8/jm13lXrtXt8M0KJQYcocIAuWJ4aQVXn61rFOYVRHKJ7AoXnt7lairv7pgkg0lGoqDWAXw4ePLynnQ/6T+T7+cOTMNg/gqQhFDnMpg+nWkq1ClBqvkaL08CYrUovSX4UAfKWTQj6p14Sj9MqY8gw0wuUeCkJRSyy2wymDAqdAOPROMkkqo96UggEKGZjy5ObnSejq+ksd2bOH47kC4iUFF++j/6Nt/4l/8gfe88PCp2asgU1EPSbNee0bmnS2c24fKJM0nBl4I8Bls3LgqfT5XPT2myeH7l3P7EkelbOx99+0Lflb05j31ja04shXYzse9OvGqUO8FlxrbO5b4nWs6WBrQOh+fKiz9c6eYclvxv7wFUCjAtjk6FuRROD0bxivWGqQ/pakuJzqSpm97TZ2LWBKouezCHwSQsNdjPY3IlKBp0F3q/Jk5UeuwUSQ+mGI6CPYJJZtbmhAm9O0UUl2DzLBbetPHzn+78qZ+64xIPTDXT+XIaC87jupklCAw/JA04mZWebCZP7paMhWvdgjoPSjDASMBBlBBLT6ueSW6tJmhAySQ3LcLsea+X0UkCUiY9AjDEgl4SfLPwBB1q+hRpTeZMI5gkF+g+EkqSUJrmkteF8ppuqcETx1dIBt/TvHXMRXwin+Mtf+6S3Rit6T2QSXPDG5BkBMGVyZOafw9y8/PZAX+ennbah3ztS7GS/XDGn/kv4d/85wq30qmW4QCQRpoxwMjlAHYxLivMU6bjmEOVpJRH8GT4vmnK+WrNa6jJ8DSIUYwNaaAGT2xo8yxwrIM/wHQ3wKQBSHXy9Yrnc4Z6n3ZliXkCT1f6PYmPpmm85Pmd7sb1KeO6EDhbXlslSEaNQKzQD7DuSXefSh6PUjNkpfdMJSYmfuY//1GC4e90/Kd/80P+9D/9Plhw1EqLzmZOi5nbm2RELB547Bxq4fL5ysOl4bMi7818pd3x0eed+d0jS+mIG/unjX43YUWQknJC9VxPLIK5jkmtF1wavSvRL1RRTn00NGNltWyJK0btlZ6aCyYzXNIThp6gSpjRG8zHyE3paEI4IJbGvzE01Eahugzfmh+N/6+h0yH1MDEnYGSVEjbSfY2IQmtOr4oeKt17NnaHGmE6Vo6aQTin7imP74G40VyIcKZSEsg8FESVV59fmCbFNXg8NSyCt96uXKaCPq5ILfjW6LvCXBG5cNmcd25u+ey8sZ92lmcHfN9YrbCeVqa7hf3iHGrFaax7siOWG6U9dOo7EFH48OMLD6+MMsHts8rzu4XnHyyU6cJnn9yzW4JitRTkZqKfg3I84Lsg1ZlW57IJL24k/XifHXDvT81+scC80s8b7ZKJhzu5b7iEULadFwehqnJu6VN6ePNKLiAlphrJJL8JuJlnlnecl58J3Qo3d8LpIBwiWE3R6hQxDpPwVkmW+dcm5VCDvz+CU0JjJLoLj+E0r7xThI/E8Z57STHB5jT5bmRg2cXgtgSTw4pz7oUenUWSObaFZVpvOJ87mDi3BgtwiMouzqMaZ5Q9gqUGt6o8p9A8uGi+l5ONUiZnq5msOmmul7WSzLEe9BDKLuhUOL4TbAEPPWAd6fYI51C25jwboP1nkob2TWCLgkWweTYHXoUmq0cD986NKyYOXliv6T1v2Oh+3R/C1tOn9aakHC40zeFNRpoz6fu0XAEkz5TWVWFqwQPJcHLPPXubgYg8b0dB1hiM4ARAdQdGQ/IyMAmdIxstBieFQyRDdBtyP4tko4enxQeDCRYBU00GV4yppAzpWB82DxrDAH50zY2gDHZ/eLCdYbkpnO8MtwFkNdAL+JL1v0jW7K5Jv5+GOofCU2CPRNpRiCbW0CMBuvAAV4yREjnl5//GL9hrFcr3ML4UU92VN8OVBfXFn8a1beujmvYhLRxFTQCSHbN8/GvwYogUc9Nlngft+ltJxlNOEVepIk/Svyfl3QB7np45NgojQGd81PH48XwXWI5Jcd3OPcElslAvw6HfPZkLDGZWN2ffh7szSmhS7RynyGBhDYbVFfQz4inGXkn0167mIOmMnN2fgZJ2MhK9lvz+5oEzoOGI7ys54E0YwfAVC+Ff/cZ3wCb6GixvLbgGLSpRkpXV+o7vwvkhb1brne3SsCnoj52mwSefnvnwc+PzY+VDlI/WIy/fPtId+Gplf6H0r0wcv16Ybw17PHH56ML5s8b9b26cv31hXztyB8evwvHrhWdfn7n5QxP+Qmg4umTKHAPgrCXQaixHpfXGfunUSdGSEdjigUXq+80KbQ2sCRYNnWSkWeQs3N0GbbamD9TwsXMClwRiEWXvjd6vRoIFa0ELoW/G7p1lRCLXqys0hamAlvmHe8L/IYyw4Oc+ymRQMaHo1cAd0OxybQ+KUZNBZ1dZ84gK3/N5zaEXYVrydZ9SAslOz96TuRVj4WCwV1QlX2vI9/biQ68vxIi6FYuUTQ/qNJab+pAgKswiTFOyUfUgzEMu2LOV8yTPLpaySBWYZ2UmvQBz6haqlKQ/t4DKk0eAO7TBni1lyNLG9/ABdHRNKXQLiEF5jSG5ZPgVTo/DI+KyU4tTEQ4lGavT77O564sjCP7sX3ZMoZdMWCsygKiWFPlmUA5we4TY4f6cQNIW+TjX/LeN5VZlsJ/IDlz0BImmAWjZkHb66LhpgbgASpqNlgGOijxFiZtlsbe39LzyAWwF2SiqQJxgvZDs2MjPLHJt9uT1ojKaTZ6sLxtFUoksmsrdAE5rgrHnSVglC/KO0lFMK7/Sbn5IZ+zNGL5vrCTz0zB2M/aHTpmyISfXfXgLGsr20HEvbDtsXljKwlf+0Ez77HNefbjCdKC8cyQuQVjBRVmkZKy5ORLO1mKw+YISU1oxdB0JmAYYu1XA0S0TW3ccK45FcGpB9TRyF4c4p/+QVWUbTc/mjKpQiVmxEBa/+qYqNiuXN1Re84McOpP+afNELxVXmFQRUY4Kuwi6TGjJY09kTdOtJMNkFnY5YGpMHtgWbB5jLcn6v4cj4pxXw3vHN8vEMA/MOscKxzhAL1x26FvDS6VjeHd6q0QXfHeqpmlQeOAbHA4TEcJ63tHa2ftOXzuKo9XYHht3x2CZhPe+MvGV5zOHSdj34OUnO7/x7ROP5wsnC/aLs69OqPL4sLPtmejYe9Do2GZ5PBS23dgj2HrHGvgw/TN3lI16B9NtYS9wDOPx3JFLo0tw6YqRx7lWQaRcDQzeqDEfhNWNVz1JBIvBM1XevlHUJ+YleDYVSnHqrhxR7oqwSHAW5/MwXjq8CudGyEAeFFFhVadOwqrBp2EcQ5mKcKzKPBeOIfQCMeW1t0twb7ATLKXCsI04SbCbcBBhR3kcejQt8Llnk0jDeV6C96VQnafX+m53PvbGhUBDuXF4TwpfWTRrfhXqIF7MRVBJb9IaldoKMTt9Cu53H/J/4XRxVlHOlsmNBsmSVOiqfI6wRs6jk0C48anDhLFgzNHTvkCdt0rhdob36ptZd01XkGpYI4jCdt3neyS4qbAN5tPscB5MI+/OFsPXjGSql8F27xrpjT0afZc96JJN6RgetXuktNCEYUgVrB0uox7LlHOwEmlZPNRWJ0lAtvfXtTWa9dvVH0skr9M2LCbEwKMgQ9J2TRfvAX6C+BjkBi7HZHz2qxpkhpgSsGpTSiynkjYO13AqmbJulAGqReWJneY9k9g9MsQKTQxmJUYdGvzzf6wyfx9o1peon/0EaX3hj5TJ8QWBGPJabJgeWuNfev09jOzC9KcSMv1QhweWA+JD7jI2hk9yxsiCRQCcCH1CKRlMqfzl2OSVsdMbTvMReRKezNqBOiveg71ZAgSeyRFBJh8mwDY2DATdgknBLVlX3pVrtn1IygOv+JMDHkKtQfP87BFQlmReeaQXko3XuyY6Jos2N7iigtvwS/l95qIsX9gAf3pv/OJvVP7ET+WOSDVFn9tqqCjTLPRLH89yTAx2QZvjM3BfmG8nzvfOWoKDFuxoSFO2G2F55dw/rMTdLV2UUoRnP6YcEXoLvAmn8858nJCqmAalTNgAaSeVZD0QyKLEpVMXySTOrXK5kLeQFqyP1DtyQt0vOzopYbmYhhpTKagWmhlmwWIp4YoNOisi01M6iqN5L6mzW3YC9m1DlxnvnhHDvRA44sKGE7uj1ZlkYmuNWipe37zrywV+7tcf+Gc/yHmhp4XBuEogHpOdxOMwUw9QE+qUwFarCYhRcuLXIdlKZkzKi8NywncbJtYCB4HVYCINGX0ACtrANIHtyTPpJjzSlPTayenpYbRIPvYKrPeSv6OCSJq3zzUjdlWAWZnx9EEbcuup5qK1t5RA1y2QGxBLbxKRJ6wcBrunzKNxMJg8VkenaEyn2z4AQUh/QxK0SJYbrFIp855zX5Hsek5vXsH+/YzA+WY78I8fVrQozT1NkmX0Rzy71Diw5PG8XKAeUjLIFaQiwS7v2X0LzeJKSj62WxY6Q4V/DUXEL5lE407KTUeI+lL9AAAgAElEQVRXbo9k+WXAClw6lCmLxc3I5K0lk3mmKSn1dXweJe+HPk6tRb632JNajCA94Yhg30CXvK58z+JJSm4uzXNtnDU3ynvAN/7yj+SF/3/HahVhz/SmFrgpz5aa18gUiKcc73wWtssrzttEWZS5KJ/vF14s7/POTx15/PQzPvrlj3n2E+9Tniv7/QP9DJcCU2+opQzQi2SRLLBF5vBez31W5k7xbMh09rw+uEqcld2Tlaoi2Nmxmyzi255Snt2ywScmGIK1kRwlho988Qr81b/z+MM87L8nxjTPCaKbMRdFy4z1nQuwTxUwJNJn1rtlcIhDnZKJR4PmG+6KbYLV9sRM1kjp3UywhVAQtosjGpzWvObC0z/v1bbjzYji6LEgKhyXrOH21TFTXvUVKOg0473hFDxSVp/9k2zilEOhnRrLLHSHjz8tbBY8+6Dw3h+5YXlb+fiTxnd/80RsyvHO0Gczr25vEAm2tVFvC9bAzPHIdPGQ8V0E9l0o4tQDhGr6Yg4ZXBt7u6IOi9In5w7BplFveCTguxvhJY/lb6NM+L08+iPcSeUoQdPgVQSLCHUBPRunlsEeB63IXbA+FE53QRmeoXMx9p7+QLMIiyhnSZD80yYsBV5UOAc0SxuHHsHtBPcbHHWkzJVkzBUVJpRLOHNAE2En2KrTdmFagqNrrsdbMqM/1eBQjXdRFoHnBCcTzjXwEjyGcO5BnYKDwknSlntGeK7CfeR3N1PkcUImhyUoS2RCnAk3c3AwYW/CskSCv1V5fHQOCkUKhxLMPRU7nUyQPRSnHGYuXZjcea7Qo+S6H4FJ+nP1/maC+g8i3JKMdOtDtTTMz0vJ4rRM2eBfAjYfNVGkrFojkJ7y31KSQX6thetVkhjpJ3pVfXlL0KtGelAx/GivDKuQrJvkZtiHDJKK90BqeqR6ZLKhX5t9U5rBL8BaXlvsCKPZbFk7eg2KDfuiLviWKFN3QAKlEOrokBy6w3FRRJzWByxCIMNbN/T1+7iOBuR1/zIwiB6C9HgS4fWex8MAFH7sZudn/6nvHSz9kuwAsj87puOBZQ121bV1e+VHDcbU9eQiOVmH5eLFYDDFFciyANXBEEgj9hjdxDxMCVJ5GAzH/XzPASBFduh8pI1lWphAyTQMGOZuJPAVr18ygTVNuqeO+EIzf9q0QTIPYlTufdAQ/Xo0LL9sG4klHkPOEcnumgQIZ90l0VcfpmuWYB2i7JtTSARXIhk2hCdDLB+SJveMTc8bOL4IWv1WZvAx/veN//qb6KQJDnRn3/PGlIB9zdQ3poLPgR6SaaPFU65VO+sqeAFZYW2dh904WeMB4eNqSClc1p3LhzvrLtgumEFD6QVuni+ZlETFuqZcbwCc5kmjLzpRJ+H27XqFd6lLFuAeycpQTf30MgXhG4dZKaWgwwE6TGh7GmoHUNcgFqAKcTBKTKmT7oZEYTsbW3f6ngliPRwtN8m2cMGtsvfUzrt7erWVoG3BVBtaFLdOyJcIO/8BDYngMeDDPrPNM64lFwVPs/KDkJThnpKuY1VmTZadW96XpSS7ap4SvHfLjXfr6c7Xxobti2Gj0WEZss2rCaWnuhh8aO3LOL+qyCQjQQfmOWV+lJFOSC7WIVDnBOa9Jo3ZcDSErglMXKnKEJgmI0xaYRnpPf1G2P31vdVhsEwTYBXSWDwgE4Ui2aQiKV9LyaA89QhGfwKARw32jwJuhk9XpFS8W7Cel9+Fs/3lHv/2X1s5RRmMK+USycjqAeLB6nD2AXBJglO+w3oCe0wwYrsCWgv4IQuvWhM82m10DUfXsjGKlD66cKP7V3ldWChZpLkl1rCM3oyVBFK5zdeLO/A5Cx+7ymNlsMXIz9wHmNXIdbCP60MtsAvUmZEgOu4F0q9ingrLlHLrTDEs/PR/sf+unps3dfyV//UTBEWkEK1wd6is0enmPJx21i6sIoQodXFqUS5bYxc4vq1sZ6MJ3Lz/Hi/+ked88ssf0ttOmWfKi0I9CHE3Y3cTvJhZDs7jZfinutFpOMJBLG0VImuuLj2L7pFybVTMPcFZ4HQJ9AaIDN1xV9SCbU0JWQhMmjXpJIJLoRQFdVo4D9sbWiz9AIfOhTrNSK3UaU45ci3M84TIjEpJk3hP0HxChnlxgTktDEqHhWDTHdtKBjngCda7Yz7CmtzpbhCOnzuyGdICQtmQZHS1oE7K6XHnEgW3hWYFm2C7NO7midYbclRsN8694wiyG+KOuqQ051B52IP5UFlpvHxc+aX/456PP1q5b0dMF+rtDasb883Eu1+d+eDHb6hTNvP2ruhsrIOhse3ONmQ4z5bCzbOCR2GzTHm8+uX2cIoKap4Mb3MMxQ4gbhCaKbNFkGPleEzA941UxIpQS9YgZsGjB5sFPhvLM+fhZcd68NKcxzDawYim9DD28AS7EC6h3LtyiUAIDpOyifBJTw/RSZPtEiRD8+KGSrAOVkCyYBTBuIRzDmcrzkGyftpFuBTn0YTPw2kXmJbgbgo+qMLqwscEZ3eWUpgk31NDkn2+xJNdTqiyKZxMOXfneYHZBDkXym0mYpo7zUHvEiCtWrlEcLoENunwsAyOJuzSmaJRIzekk8AdwY8vwYtlZkF5PlX6pHyile+K8qta+ZYLn7Zs9sf3owP7PTR2ySCsEIZ9QbCNeWqNTBa1g1BJqWuV1/vnsLHXr9mIu/iVQAJEgjZI1v1Lz3pnl2Sy+5Qm8JSRXOhfIN0I9OFv1XkNChUd9VEb9Xlc9/WwWxrM76rEHrBDMQHLUKgruz4ENtJOpmlAFewusGPuE9yTRjUxVCgCJ5zdQWZJn9TxGufhC15LrqN8gZ1VyL0JJF5BB6nJiFyWxDFCeCIH7dP3PnnJl8Ec8K133o0rE+v6ZwzPq+tZzL/zemIWTX3zSGUTrpPKuHLG80VTgqgkC0lVn9heglJUU+4XmZ4kJaUsKUEcTAkBGRGZRZPtIsFIREpanUpCC4Xc4M0ln5tFV0DR0WkWCrBejHnJCUFLbhqage3GtFSQXMBKgb0F4pERrSO15Oki9vzHvhvTLLQLHI4pU/Q+IjaHhLL3hIWNQFUJEV49OubB4bbS3fnr/9MvvnFLn4hEofy/OlRXA/yrKbwMTt9f/Jkf5/5VozWYI6noohkhrQWmYvCYSRfzoVDfKnhk4cNWefa2MU1JUZcaVHF4ZfC8oCps31lpLfAyUd+uNCw/SzH8JINlWODguAuihVLjie0zLxNuuTt0M2xPcNW60bvmROkN84HgGxyWwjaKO8IJFDdFLx2/dbazwpQsLJUERLeespx1MzarHEpLBuA13iwULA15I1L2WjC6g5Hx5YdDZQvh/uXON/7GK7q3N+r6EpEQgVkr/+4/4+n3E04I3LyasHcaugv+4Qw/saE973Wq4Jch2VOF4k8hrVdwCl6D4tavoHnOKcsW2DKU11WGnGsg/4PSHCqJPmhSiaMZsSdYZK70Zjl/WkpucqoVdHpqHQC56F5ZoVMRZArmKFgz2iFX8ScPwy/4D5Y5fY9SbSpUSXmPj/TWMpJQVLMIg+G5RDJs3HlisBFQQ9lPQb0o+lVwMYoWugp/7r81vr37G3VtQV5f3+9z/sl/7Mif/uMX0ASWxIfXHYy0MCcimXnDA5uHC9zdjs4hPOWmtHjtR+WerCcGcFojz21Zci26JvCEDTniQLUqQ744LuYW8XR995ZMLR3NmiI8JSxOkX7NyRTMzV6LwVAc37VdYFnyMYV878d78INieKYMM2WDSZS/9dkN/9nv0PA9rkkzb8j4nVxbv9X4l/7k16jnxmGaqHOmYtFbgppFwI3jixuO6wPf+ib8gT/+FodamGbl/Guf82P/xDucHo29TRzqhW/+wnc4vPc2bz8rXKzzuO8cREdyqeDtAvedfjdTQ2jNkOlqkxD43gkN7l8F3JX06zNoLpS1c7gFY1g9jAtx3YI6QVOhk0wfk9dzYheYdaFT+Hsf7/wvv7r+IA7d03jTri2AIhr/+r/xL7LvlX3b6OuK7x1rO1sz9m2nAqU3iDR0V3FuZsUaKKlvrhaZyqzx5KHXds8NljpRF6bYuZklgUh1WgtuXxyYdmUVp8yK7Tt6UwlPZpebZcDIldU5C0UrpQT7J4a/KJQK27pRBGpV+k42mL3R+0TBuH0+8fFjY6oTtEZNl0ekKCKBHBY2YFFna537R6N3e2rslDAmKVhPj5iQ9DkiAutpPbB3oRTLfUYE3YPw9AaL7tRQrCcDrgAtjG9+3vm7H96PRvWbtTb+x3/yeWwuhBSCnT9QJhZSErf1wicb3J+E43OYD0Z4sLRKHA2R10oflWRVtYBDUYzGbS1IF16Fs2jQLsI2B8+lsGL4DrYE0hJ4KuT5mjxDbASlSfoiV3H2pgTGvhd0Fu7EuCm5Y7/VAcQFfL0oUoTzDi9r56LldWBZMQ6lYOGsJogq9aFQI6jPg4uPfSfGVODBCtueXafV0iNwLumTfL8GpRXseA0Rg+PwV35lznESNp1Y5cAsxoQMhj9oN25i5wj0mCi686f+5mdv1LUFuTb+zFdG/YRQhgJiXhIAOtwHdgN6hGgw7WlrMA8QpgxDd9Fkak01bTqipL2PVOHWApbch1pPRRYGe8jwG806Whjeo3V4dUWmPRPpf2qjhvPImsxHw7Dvo7GnQ7RTx95izmama8ojVUdg0JIdQylk6ucVqNR4Irtoy7RFhpTRHErN+lJ9AGNdqBZJ7Bg1XF2yGVrmZP1flRk1CbrJxk9fJeKQ92YX4ZvfLfz5X/re9oxfCmZWHrIB0kACUfFEyHpNz7re2AOoyt/n756YTldalOfv5CowhSHD8+FtNV5yMLFSGqgJPJGx8lfG2JUN5RGjO3xlaQGSF1eSwnLTd1wSXtMYMsJypRjka183ctsluYZuV9ZCoFoQhVqc7jnZlCuc6fl6wjCTt5QQPS20LRF8hCdZT5FI/4cIdEoafe8pFwkfEiSGgRxv3Jz0NAxLYJHXVMtkfbz+d/JghD/z73yYMe4RGZEsRo+Mfd8jX6kfwavgm9NeCeJO9AGKLZo+aPcXZItMo1RP36kQeKcyPSuUDjyC9lws3JReBHOhudNXGz4dRt+dSwt665zOF7r118yoopgFMphPqhWLilklvBDhbJdMx2td8KaU5hTb4blALdRbpUzKPGWIwG41rxuLLMgkqbSOEGX4PalhNdlooQKSnXeKomJMx6T+ny7Kv/83Xr2RqTqQ99oWxt/6zWOyHgOW4YklCLoIRXe0p//a7gksP0mlHMQk01nH65kPVsGY+q7JphGkrwv5eFdwS++3PuSlVnkddTulh4abJbhehW0PutigPWe6YR3dmVyUrr0FwQoDfApiyuezAxgyJStGLBmwOj6/aJrQspMeMwx2DYGrMqwL83MNxqt84Tu6yxOLC8a0GSNB5liILsijJVtI4LuvZj7vv3vn+8s+/vdfuvDv/e2SSZF9HPdOFgqW66GOa88cVofbg7CueayNLHZiFCP7U9NkgKcbMEDHPsMpsYscmtfL2gfjyhhyjnz/TiZWmuTvtSY4NZ5K+0JE827JrIKULZbI4mvW1+BWWVLW2Eiga2tgJau7sgjrpuwedEn97u8UyPrR+O3Hf/d/blyaIAdlNcPE2b3ToxOWqaW+d1apRHvE28Z2ubB3R8vOR9/thHfKdOHiE+/94WfEy894uHdmMmFLItjDQHd2L/hbB2bb2B/3TKb0nAebZfv84QKHF4XJjf5o1GZM0am3ObdYCPtoGgjw4jBYsR1EfNRing0qUTQqTQXU+PkfMJD1po4Q+PN/7i8x3VTqcSHKTJkKWiemosylZlKfpqckBEWUS88Et0tLlskl0kdlayVlzgbTFByOioqifUddWNswppZKmQptdS5iSAn2tVFF6JdAKNjaaSZ077gKdTH2vfPWsyPr1lljp/eOh2Ci9CZ0M9a24R5UyaaAi/HysxWJ4LSuPGzOyYVTc067c4ng8bLjlwuPD2fcC9M8MU+atZ07XpSucFMLZS7sI5TqcbAkXl2UUKNT2bqyXuNf9bUtiotTqnCy3E98+9H5xQ9fPaWXvWljFyFUWMQ4UDgSHMVZNO0xWIzjM2d9CBClFEUjmAiORTlWOFRhmkZ6qQTdjeLKuQcP0egRnFzRWSkCczW6dWTSlNWPptxRxwFWuJng5uB4BKe905tT1LEQ+mSIGE2UhwBTJ0rKR2t1PicZX1GE26LMxZiKUFAOqswCh1q51WCKJD9Mz5waznEUSa0UVgqlC8+nQi3BsqTkDYK9F04nwQ5pL+KkmufBg08jMFVOpmCO7mt6zFlj8uBZGM9pWA9OIZysc3wDr63r+N8uY3849vdSwCyYr8qCAHaQDntNBtXWBnPKEshKMu9AOEbHTwYA2geTfO15Le2z0CbBK2ikhDEOQplIVpYFpjDNmqSZ4UO6RzIE+6jVrrhJ1QS70CsEIkw1sRU1mFs2dWTYJMk+6n4bCrI+8I7+2vO0RdZik6RfrpNet9YHax+Bkv/GJBvtc9Z7Mhqhsmgaw1vKcUtVYtyjaCoEIqD24C/+yvde2H8pwCxeQ1NcGVrXnyL/4G+BkV4YT6ytGA7FET6AnNH51fSUeprNwweAM6SJcf1vEJKmpWn8mQe49+wEynhMd3n6eKoyzObzZ328JhJc+kBkFUQTaGgWaSTeUhYzzcpyLEmPbvl5w3Mzaf4FnW6k9PBKYywSaV4aae4bA5ADoKTVo1lOUBqZtnE10Q/P1LNa82dtjyselzfHm4k1PA0bQtAraHeVF35xBMHLB+O/+nnDkWTLkQtKukUJlya0LvShow/baVvBTk7RzuVRuLTg8G5BaOyPRj3U3HmHpyTwqNjbnfWycfmkYZ8odgHRTGGiBbYL28m4nIOgDtlpeQ1CuiGhqOSC7RZocZCdvXXQjrtTGPFjj4H0RhcnjoI8V6bbSqCoWtI8tWDuuDgxin1jotlGLZGfbzgyiyiijjowUk0uPYENp3A6B5dN+Av/zXdeA9Jv4JDhafcf/krjSBZZ+gCy5HlK1/Ip01GA6kIMqnEDOk7rCU5bGp0xqw6T7ZzIzPL3CKx9vK68BoDMAjTfe99zk18D6P7EBu2S0sNpHouapGeElIzhLaoJeI3EEYsgSS+RZt412S4UeYrflWFaO0/p1ZbJhkKvyQiU7sgAPI1g9bxeqg4gbLBig/T5igoynqs9F/AoMsIzAj4TYgFZCwgsk/Gz//PGVZb+o5Hj//o1415rmusPqeHqeb2J5BSz2QAwBXZPw9HHNaV9u2dh1gY45Z6dNbMhBxyS0LAsjNoAq8IHk7mkhxuaksKrubxFJucU/8K6Lvn7GL4T2scvxjW+SAZVXJdfHUv6eR3+dOO9dzLBsB4i5TcIsgjSJy77wr/yl34kLfyHMT759kt2d1ZJxqd5waWyW2EjGy5mxsUnXnxtTql6g0tztkno+wbzDX1TbN/weuDu6+9zefkxn32aTagpghJOb8KhBOFGo1LvCnXp0Hfa/c6+ZXpuewz6aZjC3gptyKe7Z6AG4ixV2CI9+k6W9ZaoMEtFtIIXSgRmMuqzrA9/NNN87yMI/rWf/g+o08y8FKY65dpTKstU8v4tKTcMnYhBG8ggJqftEFHGce/DwyY9pHYHitI1N2ShTvc0uRF1FlUEYTPHIiUwGsa+bWx0cMM6PG6dh7PSLPjsvLK7szyf6Q8dd2MezOB+zjCdx23DC8yl5zxTgXXPxE0P+tpZu3Oy9OS6rDvnpmwbtHVl3VZOa6c12EXp4cziNHWiG81yPlTNIB3rzrY65p1mRnTJuc4cb7mj9IDNciJ8cOMXvvVqbFXkjWwiNsuG8T4ICkJeJ2t3vER661VYngeP98Jmwa5wKpUHg1cenAJOVjiZsoZwQjgJ3I8mWdrBGLs0thacO0goPRouwbEGX6vCcQrePwYfHJzDLDjOs8VYinAmWXRHDQ69pBVDJMj5mcMn7DQ6EcqDGo9dkaMzaWGLYC/GxZ1dwCRBJrcC58LhHePDS2PV4KYqb0/KLQJdODu87M5mKQtbTLhRQZrwTAQxYZKhLhGlojxDeAa8HcpXKfzRSflHK/y4CO8TvHA4hvLjtfCuwNsSbG/gtXUdf+3h2uxIIoCq4pJ1ah/7dbfc+ohF+oRG1kI2er57QIz9QY8k3ehIRtLIhrVagAvlEngPtj58qQK4pHTQO8QO9CTabHv63MZoZl8JLFUEdWGKLPLOMmSKAeu4Fq/s+T7sPDb30QAczKqa/y+S86p61n0xDNtjeDfr/83eu8XKmlz3fb+1qurr7r33uc0Zcjgkdbch2XEMRIb9FCMXILEVQAoSAQEiwEjil8D2gxPHiSwlMhRZSR4SxIkj2EggwBfaEBzJsSzrZkuipMShJEoyTejGiJIo8SJybueyL939fVW1Vh5WffsckSNyhsKQwzNTwDmnd+8+3+7dXV216r/+lxK1mDkDvGJ4QRAyxeaRPstIqHahHsH2IX1kErw6vRleAwAG8BKyTVkKn+ivHKJ6XZjYyGBA+fhqZWXJgD8j0SoKbyES/VwgFIV2zdTC10PeYMj4Y7CF+WA+CKsTW1zex6EMVKJrvMJpMoofRdDx5jYLnfsKmhVWeWGwDKoPKaKEJAwJRLa3HmaP8oieJ8RmJQUurxq7baJ1Y5PGCWMAVc0jvWLK0bnuw+8rAfvLyumt6XpStR7AlGo8nz6AvXjtFFbvL4TjHDKj3mNCpSdU//z4MIxPlhw+zs5ab//E+17k/3mf8L/+2bscamG5aJSN0SyFH5GHebe5U0zwy4aIsD3ZonIgS+HBvnL7ZGLKicPlQrsP+XbCJZGLUE3Qu4n+QqWnHiyE48yyd7AUQOomOKKHeoxFsaQgHXbBJZIu8zbmXN6Eabd4Zro1YQ8qtrMATDIozv5qZjftQn7a49DpZmhSjkv4AWjOTGbMO7Dm7LQiErLUYj0SMyyMVFsLTmLrwvESNrsAkMUd6Zm/9kMvjte986SOtVjstnBlO078iDbHzzo7VY7NKF2HZ906x8BNAQv2pQQwbh4HpopRfKw34pQSklFNQrYAl5YWQE8a5NP18xtJq0F5dwFdnKaQhzy0JUctNjtJcbDcJonurgb7jhKG8Xh4BWwAGiRP0cEsj7i05o6OKHBsXZuCyQVCGgzVOEQGiJI8OjOs6xTB7vPm5CJ4jUMLFwFOuCjtoTDtHXu2UYiuzt95z4bnluM1M/fN8Wh88z9oaFL+6tdBEwsaukWhLgzQaTVTH++NNzgsoIVrpoquoBfxx3s8vnoUOcWAKYAqWTuDNUAschR7TYLpZT28siZjfBbi3y5wrLDJMT/EBxV+AG1mAXLNEik4h3lQ18fPXA+A+VRZcKwGymU+8e3v7lye7z9v78OTPgyopbA0A1XUFwSDYqhl9t3RHnuL3LjNcy9W7txp6MG59ZYzru479d4lJzvFqjAZnJxsOPmKp+nLFR/59c7p0xM2FaYE+15RzUzWuJyjJa0l025Eo+e4dKabIbVaLLxjlAD03SMSfKvC3hTFqDXYs9UVS52DOSGwj45xk1WUJLzrPVef75f7C2ZcWzi4823f8p1867f+R8wacvNJK1Usvt+N3iqiHelhvmIorVeShvwOgpVVWqcpWFJyNxZgK8qxg86Oe8dzYuuJtlVsWdAW4HY7GstIAFtcyHR8CZbVslS8wOHqQMmZ49JpmvD9EtJWOnNt0OBsK1xdzJze2rFVuHwYbHgbko+5+zBGdtrqtytOwmCG05IwC88Zr8G+mTFUNOpLbVQLP55SHNXOoRVkMaSEB+7SE9qD0V8bMcdV2B+dn/3w/ZC7yZMJZAFMApvkVKKW8XEmLCK0LnQ3aoYJYBYOF4Ub7+wc7xnpBDZI+A5hnJQAxGyQAbYCtYXP4nZ0+zfiLK6oGdmEG6eOJ8OTc3vjzHvFSmfKwo0k3EjwwrKQe+Zjl875UdnsejCEzZEUZIqeM5aEWwr3unJMHbGwtHlH3nBQ56E1zCOZfn8hqBrlzJldOblZOBL76tSMQw8bnI3CxpyjhhrnUISH9ybEG2e3GLYksabNwd8bwePKfevcH82nSQStnb37aOc7G4HbhKfYmbxysOELcXzHi86fuztklt1Dsi5EuFIKUo0LUIIBjvk18WTrQ2GhHm4f46OoaRzvPWSDKUP1MIvHQzJYBYrLCLFb6+NhpUCAPdVBDwxftwEAjZPsSrKaGBYPCbZEg7uJMPtg66U4j/QR7LU+L+3BtpcSIQfWnMnidZBpeIv3uL6kaJTq6JKKxA/VGk3RLoO5X8Zz28rwZHaKCpqHAq07h7zlu3+h8h/8kYnv+BexR7zS8TqZiStDZk0q9PXu8a9fM7QePdofQRAehbpLTK6VGngtKRwsrpVqt34dEd8hJ3QHj0jBmHQ+AC0IOnEnDETH0+kDELIxmVfOz7UckRHjOfQQunp4IdcSie4hUXQXpm1ifww2lQ1pZK02GtRx+F1j01edswnszjLdfEiNJGiM8Mjce7C7Vk+dYLUJh4PjJmw2ic1OmQ+NH37PL7/Wb/TrejzunQXxnr54uAXWQ5uvIdeqc6OJsJDYnIR5OxshbROHi4WlFua9cft0ixTl6jIExg1CErEU5geGpoxmKHcK7Rj0SssJPVX8BGRruC+0i4Y/EPp9ON53lvMc3g1NIz3sEAVgNyfnHP5r9yt+Aul0QqeMFIcsnN7YgRIabp2w1QTQAkyZl+h4zQhWAVG6K9tNJucMmiOyXJRuYeR0HCwLRXGNg0Nz4Tt+4MXR1XjlC9IX8kgO3/7exu4S5FTIJrQaLEob4LlafPZD425oiWRLTYKak4lOjTvXG4xIbFY62FKybnKuqIW5LWPNk9FN8QEAFInEvzDrFtow6nYbZskilEiSIA2jd3VIC+QlCqMTHSmsFqC3GMxLmFt6cyxHjLWW2Lx7Gs8DYcUw+/CnKa1uGo0AACAASURBVEnJOcAMSQGw6Wg6KPHLWo80Hy8gE/gh4S8aOTmeoExgO4Fl4mc+ccSvd4Y3xycP68af/4fGr84nURB7FEoHovO89/gzDzngYoOuPrptnQCQetRp8QdGGMTwOhg0+APDcL6O9cQGPX3sV60HaCujWLMBwnYCFEsJZl/31wGe9UdFYB8srOUIUx6srNEYcldkhkUMSykYo7Ljm77nwOX5/Pl46d9Q46c+2qEuGEYPlBwT2LuRUop1wTvtqlIuLqI4b522ZI6HA3a8QubO2cYpW2FKjUqmTrd45lk4f3DJ1Ucu2F8ZmxwahZ49mO8IRkNVScNQwBOgKWwjJKRii0EdNePsISOcq+NnYZQrMlIvxVkQmmdEnCTBDDrMj1qub45XNtaVWRz+1nf+CLrZkDYZKTkQ85xIokwJCsrixuwRUKNerhkBi1mAXjnCj9yFjjKJk1OK9ylHhZ0F2Cr7yxqsVAH1Cim8atBM8qiRI0ekI5PGda3jFaotbHbCYornaKg3F44G57PjWenHxvm+h8eoBgu5tkazCO0Rc6rHht+XytKdpTv3W6ePfPqQ1Dv75izNmNvC0hiWJp39sQcbtkYiej+GWXydw/D80Az3hpswzws/95H7cZJ6goGsdZjB5MKOSH0OibwPQCo0gBXY3DSgce++IqdO3Qv7o6IinKQUXqRZr9Pe9+40MRZ3LjX2v0sVUu5MJ8ZZEU5y5y0F3npqTCrcLspbzxJPbTtfcgeeviV8+VMZzcbJ1ihTI7kyJWMqzlSc3TaRNRq9BxfOSoDqVymMJpMbmwoZwa4y/SqxvW2U2+BZ8BSN0MPsnPfGpQVrYe7ClTmHDskSBad0IUvjzm1jk+BUiLTytd4TOFhszjeTkjVSiHuPEIwT7Zzh3FVli3BShJsbYf+E117PjyaZwzWBphgsbuEbZXHGrzVYSJpCxh51Urg4Th7AlA8AKHWYOszNrz1AhbhOYjC2CHKNiARY7Y+ArGtijwQwFonkcZ/XqJkgfk7vHj7gw9rhmOJ91wKzRoNwMR+WSHEG7DWALjHnePDhLRnrZVmBiNHgFAOrKwjm2NGjkQlj8Rdk9e4aikGfg+mGw3FIFH00Tr/9Zyo/+cD4cz925BcvrtOmXtF4nYBZYb0NDEJf3FpT9hi0vFVdCAz2lo/Hheuau4DoWMSd2GF8JAE+gsk87rhe7H2YD6+0rPBweSRC6yLU3q+lNR0Zb1Y8v2aQZBjRaxw2a3M64ZNkKzwS9LGguo9fRjwmC0TKWBupcX1wA9vww+nNsBYfBoFrvbN5PLYatDlSV5qFUWS/xhB8SJzioLtUx1snJQMxVJ2feP//95q8s6/H0T+JJfS4Z9bj/wJ829/6EH3ZIFP4r8mQ0SRRSjEuGpE0mMKDo7myzNExmi8WLi+CkXe8IozQf6vz/L+44sGvdeajUHsg89NZo9ZMa4a54uKYFzxlelGWjSEn4LlhPrNcHFnuN+bnjOOLzv6FRj0XUlU4OJwZPgm1RZpNLls0bwAf+mclT0TXUyBlZ3eS6TiI0a2zOUm4BXsvPipGKSkSM8wiaaOHtMxMKGeOW2JB+evf/wLV7FNe6yd5NOClufGB/Y34jFrI5XoTuvYwOldhETAVUgp6sqbhHSSDMqzDXFuhjMjtdi0rhJydlkNTbniAYUP2TI/1RZIOEA0WnJ0o1S1ovSkkDFH6j/XHoU6xYfbspK2GnM8jxVBSVD2pCFoCfGsMjX6N4Is82DbBgg2z0VRi89Ik+BJmtRPj52us/K2HxM16rLirZVcR8HNoVWlPAbcZabQgGf73nxKkK2l4br05fvfxN35gz3MkFo1Co/gAI4f08FgDiLIBds42CpJBSe+Mx7UhJR7F1LrF2MrQalyn7Dx+kFWLDqItYQjaRsdOLEBg9/g5DGA8ETVT9fjB5gGyeQ8wkxLP6SjxuavN0J2SNSMCBznlG//B4Yk/0L1exvMffQFPYYphHut+7RnXkP2EjFS4Ou7Z3VHuvxDBM3PtnFwdMc8s+wuOFM4vFl6shaXNHA8H/OSMG2855eYXFfzqghc+MtMXY943pDonGfCM1pB9zXunm1JHg9QbSO/XfnCxvWv4IR1has6UIoAli6CSyW605Bw1jHmlK9/9vsvP4yv8hTlWlw8X+M2PfIwf+b6foWw3pGkiTzkMy3McuKoImnKYKI8EsbWmV0Z5LhLBEt1i3zJYrJOSYjUAqakIpyfOtA17iDq8KlWUNkO3TtEw0TYBUYmvzUgIt7dKSVuStEgyrI7Mnayr2FFZuvNg7iy10o4WKbBFQp7aI+WrI3gP1sKShOYBPvQ6jN9js4yDsQjqHlJbjzreLJjSvcf+5gbNOtlDgtl8lRcGK+S9H7689vJ90te9hnO0FNYrKAczLs2uyQUnwGZtInon75zloXOsynQWzKjlPHO5V6oLtQvdE63ISBT0CA3oHTLsirGbhKdPEs/cgC++MfGVzxS+9NnEV3xp4UvfXnjnl2S++Esmbr9NuPWM8vTbEl/2Tnj7M3DzpqPFKGpsi5NT2DsYRu3BtiLDDY1AsQszKon5UtidJ95609E7HXLGs4wmM9RFR20mXIrzkjlLD3ZrHtTruSv7I3gO24C9CQ9r7MHb5pwm4SngLsZZzdx24ctS5u0oTwN3VXgbiZMUbMaG8LDDSx3+yceffOn+e2aQJGHgzgC3POSGVYJVlVI09tziPLdNirsxDQZVHzVq9tHMa9FgbqLI8LSazTn2qG3LQGYED/uXcKIfRjcjoXpt+I0zqRvIpKGA0LBm6M61Km3FIHoRkgpbAuiffKgjAl+nNahXYS9RStxXa/zfWaN2Z9SOi3Id/NMszjEHd1iIELrBEE0Sc0806sTsgyzk0chsR3jpOPFRi9ezur9q26PXB5glj99cPQnksb8foVjrvY++0jB5d5BrtCtYW3h/ZK3lq7+UPXbNgYg6ARatHlrEIbF1aC04gzL0E04skIwJ7Qyava0/NzbuPnbxFXQzDS+uRnRNVMYBNCIP42AnUHaJeehH3YhJoxIHXWJDX+WLK5ClsaNhGAcNEKtb+NGsG6GNg/XhaAF64Ww2meTOD77nV16b9/V1PF6OLfS4Af61QNWdb3rXR3EiAlokNg/vlSRTSFGx8DFKwiqLFYV63HDxG40Xfgke/iY8/O3Kwxcq7VA5njfqleJWYtG4MdEPjfkQEeLWo5Pdzal1xgxa5IWH1nhT6LvEcmL0nZBOoafK7I02GZMqXhkRrYb5MkzbBUlBW62zsdTwH6gVDofOVDpmQkqZWh3JCfFgfSWT4Us3OqOmSO/D+LuDBWPrXT/yEkt/+df4SR8O/I+/fk4tJ/RNsDBPgI1Gx38DlDSoLj4CGkyoNdaFpOFplxIDhB9tmAaOIjZAqBzywT7ApGaDUeijKzueT6wVUTTlJOSUgmpcQ/ZnDPZphtOxzqxAxLp2ThlEbQD9RibSSsoAIiA+F1cQHZsu1xdWkZB/dKeOWOE+Nnft8dmRpPg8NmNGgswizA+VsoXtrUrZgGZnEsCETRJ+4fwYxSC8AWfaqx//0/d2/trPbFCPQso9ipnrrl4a7/sE/Rjsu+4DbFoYTM3Yg9ZiSoYhswkjMSlkGqvs0CqxbxqkFuyrXR7dyhr3+9okGp4T68hj6u910NVbgGmLxmPDyDTRaxSYNSkLyv/5a7f4y997QV+d5d8cn5Pxox80WmRMU5kwz3RLHB0aQuuGi3LUifneFcduzMeFOQlTFZptOb93QHZwuX8YnliiXFXwqdBkx+nbbnDz1sL80pH9843DvQXviQ2d4sbF/YaewuTOZE7VYHkikCYhk1kcjj1SFzdnEVveDPoypBruaCpsN4lkhWogryIi/M0RQ0aQE8CgC/Hef/4r/NgP/Tx5CnZWyhktE5ozoopIGqnjGSOFZ5QwNMzhAegOnoOV3pKgWdCFaMxulC//wze4cydz4+kpJPDeObYwR0+D6dDdKePJeRLmFoDY3BybJlycB7OTU6ZVxS0xpcxmCsZUbYJaZ94bU4LU+3WjmazI0sIvxpzUw6Q7NqnwvrIGbi3UJBYMq8WFXKIZ3ix8BWsbMkwxROFoE8eJANSCHII5/NyH7w/liL8qNsMX6jjLiaeTkLtyZc4DF+47zBJEA8c5VeHEYULYTrA9M44vaUists70lKEnneP98Ps04mR9cKhlpOFuQhKKCCcb4akT5yu/SHjnLeX0JNP2E/6wwKXDwwmOGTlOUAviEzdv7HjLs4k774CT0x6+lcObdOOOHhLTJnGlzgXGDJxZIl0pF5dGOjNuvFU4TcLbtPC0KHescFPhxJRT7yQXclOsRVO65sasA/CrwuF+pqhjU+fhFdw/ekiqTWjZaAYXJuw96kvtxjwY+CdinKbOrQJvTcLtpLwjC0/nxN/9wMJ3/eqTL99/90V00kRCytoztBLMJxu1du/RvBWJda8RiebLqMmzCBOw0QB7Fl2TCuN19jrQgxTvgVmAP6TAFDajEWMeINOaKddH3WYSdVGt4UnbVyRoTS608PTSsZZai+JedDCreoD6ZgEG19Fs7CLXjco0mo2tDoLOaDD29azSw2e1tLXOd3IbTQmBzWDqm42f58FC6wZk4X/5YCWtNLXPYsjrAcG//fTTfo0McQ0Jje+Ow5vEAnXte7WKS64ZButtR2QN7o4DniioaABcst6Og75q0JaROECuLLCQ3oxTnRDSHoWcZBijWSR2eRwSiwxDZQIRX1MHSxoH04GU22gxl7L64zhuyqRBBUQV70adjc1Jigk79LqnG8V6SEAiXcqx6pQchvW1BzWxXjm+haxhMG/Epthmo6kwbSUACne+/70f+B3vxZMYEf2ZIsj1ZTDd35F6SEyDL3nLhv/s37uJ9xAjIpDIWOshtyEAH0rE/dqvzXhXqgF9YaFcz9WFSNi6feOEW78voydHrMHhhU66lRGCut6X6Mb0BUhKFkG0M3cZqUvCNAXINaWIcRYgT4Z5witMWXl4aLQ2kHDJLMcF94JaD/ZO7+Sc8O4s1UhZ6V5JqVD3HSkaUlpTlrkF9bUbbmtsr9JN+J+/7/kAPX4XeOFJm18vN7dEoOTMX/1XG7sK9QjbJTPfaeFl1+NgRQ3AOgIZIK9c4iIsszNpRMJ7j4umQW1WCIPFxcP/bTJcBGsBOCUVvDtdopu05OgstTboxD38NQaxFdaUlLLKF4NJFW2cAC+tBLCrvsq1HWahJ4/nzwA+ADSA3TwaCFTFS3hbNCzM3EeLqQEMH5uuoJeCNkgnyjJ1SCOWeKzteVasOP/tj8FHqz9KvQXqEza34DOvXZ/9heF/+NoR8w5DJjMALQv6uZYh5WMUUeu2bAOQGt8bwTUI4csgS9wIVmBcw6PBHd5beXQ2B9bkw6NrlTAy9tHWBhtDYZlHk2gUckkBT/TesZ6Q08S7fnHHL/3Sw9fk5YI3xtr1ex1/4t/4Ym7IEZpjLmyobJOQvHPYN7aDUZfOr5jLGdt+4KmnT9nownxv4vSdExdzZ3vjlBPt7M+PeBrM+x7g+HG/JwPFHLFAOD/xPJzchbyFpRL+N02ZcQyleyOnhLdhFdGcXmE6FXpKw7ew4w2WnFAKuglJa546P/CLnRcvXztw9EmbWxDz61FCr6/3xb8o/9U3fwN1bvTDTJ8P9LpQD2HMLm2mNSfh9NaRamgyutk4BIWvkItFGrQ4WTsobE93bO+ccf7CQ3yecY0CPI0GcXPDc7DWJ8IjMtK9O1uM05unnF/O4TPYnbRk8q0Ib9pfVvKUWOaZ6ooOyVEayoeqiT501V6do3SyK9U7U8qo2GAdCBlDVZmbkUU5NKXEMXg0COPAWzvk4VPazWlLJ20CzFPp/OLHD+znTy+lftLm1/f8ybu+74M17k5xYedw4sF6ajh7i+6Y5LBiEI0m4sPLzNlbw3fTPSSjKfVAA2Yl32njOOrkySgVnt4Id08TX/SUokfBZ8GuHK9CIZGfjlO9qyNPN3DDunDozrlUPr6EnPThhxL5LBQ7ao52YZkTS3eyJXRr1NLRktg0RZfx/L0xaSYjkZDuIyzI4eDKeTeuPJrLDaHuE8ulU4qRb3W2PpEIjzkzWCzSHZcGc0vkZMMPS9iIcpaNeYANl2G4TPPwZf3RDx/57g/NUeM7dLcnam7Bp+6Nf/5u4WaqpAH6SI06npOQ3olCycOmpj+yQBCHjcTZP9hTTk1xRtQEqUsoEDLhEbuCU4TNx8kuzgZtkFFWk/ZdixTn8PUedg8u14oIHc3zZBLntrVJPc4fuYQfbyeajNFBFtoyyC9LNDVXf1R4VOeh4aXWxLEUtaIEdwgr8TwgmtU+0qnrFAFC08BCpIDWKCdbgh/5cOKHXuqs2T/rcF752vW6YGbJymK63ugePwjHiesac3PgkXBvfL16Z62+VeNTLo90qus1ZLzQ8aP8mlnl6+MhQIRq4zHD+yWYnLFR4YjreK7B2KrdAw0dhuphY+OY2Uh9Cw27uKM5mC5CgEorbc+GnBCgbMI3wJFreeDcQ+qxema1Aar0pCwtdK3iYfAsDVo3jgscroz5EHK30126Zlh8MpD15nj5sbIFf+uFmas5Uz1hGuBOrY1pG7dbT7RBZ1lmWEw4NLiic0mOREw3moYcY3bj+fM9v/3+Pc+/X1mqsLlTWO4ZyyIsLSNaqG0IXsWpZjQedQFcM4spYsPktEO1xOGYowMpylU3tprY7hJLhV47yyLUZebY4DgLvSu1OocaBUDrnd4mahs+ExKmgG4Vhkn8mMFYC1+sv/njL35aIOuNM4RaG3/vl0/pDbZZaTeNfJHQpuEDdCTewBRU3E5QlkNK5WHM72G4mXGkhp+WF8L9lNC9pxoyCF0GO1UHHq+gunoiyAgYGUC8gjQna5jTNg9fBjy6eSbDzw+jp+jy+GBSmY1AiQ4kR1v40JADyNKxaSuDjdGEOht6AMciKVGENgOL4FfQDoN6fC6UrVOfcq52HUnhJ+YpnldWkK3w3l/d8ZElx4FB4nD8ZJXqn4Ph8E3f5/xv79tgyHWoifojZl4a3blrSruFzFXz8N5yONijpMLUI6CkroWNheF878NnS7lmVszDj6s6zCmu0wbTwNfbGp2+wzGecsnR2Zw0aPLqnV6V7/3YDf7S319eUyDrzfHKxj/98Q9joyYqvmCehnwYimVSMop0ZLflcO8IC8xdqPmU/JaF/YcbJzlTDwfqQdlMKZo/1ejJMVsQDcbOnKBrwkvmxrPKvYfw/MNIuQu7bWfVrzbRkC+XEl3sBrXE2rUCWYZQRfFZaHOnH6BsoPvmNQWyntSx1vMrW/j6a2IveP/PfoBcQo2QSgqZ6qT0JDQtmMpgaRFJYoQx/HoUMAX3RLNIiKaHDNBa5cFz9+hLpaHk2mmtD0aehRri4OhRqHMYNqdkiIyUXulMGvX9lJS5GvXYKUlJRamHSpEcEm0Pxmgzp6mGX9cAUyw7kyvdDfHEMpIK+0hrPNZIyxYPZpi3NrxxIsk4WAxKJmTfs43nSKLXkFn+0icWDssSlZi8cTbBjrJNsEmCJ2VThJaMqywc3VhazJ0uQ2LXE8sMhzkawue/Xbi6UqyX0bYOT9x0s5OuMpiySXHGL5Oz2cHuRFiuEvPlSLZsypQKaRHsxYxfAneJjVOJqs6d7sJJCi/J7aQwKenEsalgG6GpkI6FctdoW6VKNIZnhXMRLrzTpGBduNeMjyf4cDUuzRFPnIpzJys7N3IWLi+E4965e1e4dScjPnHhdt1wfGBQxegi5Mm5MTXuJuHtBZ7KgBnzrPSDUmdlMytTVW658lsvNv7+h2Ye9xZ+I4zvvFejqSfRCEECLBKDIooMNlTqwSi3HnWPE3XT3MPXWkQwGefzJRRd1qPrpxYsqLgd9U6rHiEVQ6VVJGoymwJQqmHHHEyu1fKljqPFErhKHfUbBKCkWeizQ436bDWknyyakbrApgg9gZXh40U04EsKcVD3kThuQqoD5Cqjmd2dTQ9poXaokzLbsA0ZZ5Q+g83xu5bLwve/1Gmy0pQe/Xk143UBZvXHwKUYj31QZP1rbcH7eMQjh6P1/8R5/zE7YB8oqoyUQ0JKyGqEjgy5YHzdhvRHAMkaSKmPSTiuK6qxkVz7bjH0+AFMRaTwo0NfN6d1uzY5XpllMgzpJZzTrg12hXEwSEqdjVo71UanZn1uhL+MGKSdErLIMMlsDpui2OIc9sbx2NAMJ6fC6VkeyT7OP37vG8cj6zONlwNfHmdlPT7T/pu//VwkyQBuBUmDNdAd6z0S/tywagNY6FTPdBEOCWpK7C3oxM0iLvr+fOTiYub+B+B4ENINoV0FYtCJuSAFag8wILxlEs0Up4W/mztmnXnpmEUcgapTD41ewwjTrwIqNzN663RX5sWptXNcGvt9x5pxmAe93TvH2eiutGpUE8wz6or0hnum9Y6h/N2fuOD+ub0JZDHWE4GfemFmUqUOkXhdoiPnSnSd8yNRdckJt5B/zRYRym6C9CiWIaTKKpFOI6PNImVQnycd6ZpQ6+jwEKymPnTqaQjrVQTJodXKY5q7hIFlaWH6nlJidZ+3Ep6GQ7yNjWvOGfpJpOLIVaxRZfIIFThCOjq+gWmn+Nkwb1cZgD54ccqZstsIVpVyOyjcvii5Cz0HfTsFVoYqzL7lXb+xp1Bjg/XHdsA3x6seH/vozF/+x/Df/+QpJhHjzGBhdSUSJ8d9ldibmkf3sNpIKRxAVyXWtGDxXfuEjhS5KPDMQyrYPEh/tpqFMg6G9ZFHg7Uo6KYdbKYohlTiYOcdPtzu8M0/aPzM+x58fl68N8enDAd+9rdiT0haMO/YQNdNhKUXat1QgSSGZad54zg3et/C6RXzrEyaOLaZywXMK5JBjs5hHkWvGu3owUSXTHXlzt1CLs75Obz0fOPh0cMaQIXiIfuovV3HiydVUor6afGJJeI38G0inSTKZJgX/t573/TK+myGX3sZPvKnjW/E4eqf/MjP8e4ffj/bkihTJqWJ3VTY5QlNiZTykK1monccoLvhVIKZ5EujJyG5MychE2nTqUfz1sWwEv0faR13xRcJa4cTp6mw3QjWlWodAy4P0KcNagGgqShNFZUe55IcnqbiIX2PEl6DSeqO9sROglXdmpFU6PTwuK1GWyxeG4PjMgyWiRRy8agP3G005uOahRSNamtoDl+kD90/sp8P8ZoKT7xP1uPjSoWL0Zi7mcPw/IHAEeOYoNVEvVB070AwMlMS0uTsTjpnp0a/NB48Z1y8mGGBXVFyAr1hpGr0e5leM94T1gVHWRajNaGJcv48kdD27MJ8v0Vk+K8LvHRCXxL78w33rjL3Hk7c+0Sh/dYG3lrp2XFPLF05fnyinSv1zsLSjKydE5SddpZquDizCRfNeKk6eCSYN8k815yXeie7cEOgeObhJzJtSWyfch66ce6Nro2GcNnhhMQNSUwmeBc2klBNXOKcO1wQnqmnJ43NDePpM3j7rc5X3HT+yvsf8u2/dMH6eX4jhWFcObznkHAVlhTAsuY4wx/NRnjEsFbIgk4ajUAdvlRpEHUEdgvQJDwbO9dAGH31Yx5eWEmZZKizctiTNGDXAZOwNhp1lMc0j8ZMgrY4ngaZxqOWWoN4OiDDTb62wZSqQaaxhetkRu+QFseSDEuHUE+sbNE07FKWFGeGkb8XrK/h3adZSEdDJVK027ghALv4Zf/Kr9XBwPq92YW8LmSGIuK3nnoqfkEXXu5jIuuB5ZotBcEElEdSwHEjWCse9IQ1SVAUkQFIrUwr4j5UESSMlMcPS+qoBuJqEp1gkZAZKiDdKNsMFofDPIzfNzmOfeYOKCpGUSWnSMtgpe2ZX5swdx+yH5Nr1FNEUIfDvlNO0+DAxOOW5jAbelLoKQ7GmZF85oEIH64inSdvw5cr0NdIKvjeTwNkPWl0ZHjlcopXIjcEyGS+5U9/KRt7GPPCE+KdvofpBKQIaobfW6gPnIse9PNNN5asWDVmc5oJQkdVKSgJY1smnvlDE1ZnKDkSNlew1xKiPhD/Tvc0NNrKdqewSrimSLATXZPFhN6c475S8gS1cf8Q1Hws/L4SQWFPxEE2D9ksQC7O0gkD7xSgBzMsXWnN+K73nPOJe/UVmb0/afPr084tgX/n7Vu+/suP9KyUF52DKeWuMQ2KrtkqoQv5X9Mo1qdjQuksk7AhoqaHvR5HhU0jpGECPIB6GmBVHzH07oTUJ0f8vHu8n736YE95GDaODU4J0Mw1OjUpC9KchfCR6SKYQsFpKby1eo15qT022pzS8CQca/h4zliYTnoNanW8bgGWuAr+wOFmAPvV4zWQFl2hjSjeO2kLuyx84w8qL40DrcF1j6OIMNuTT3d/LUeWxLNfvOE//pePbMViNRzsLB+s36wxZ1ZPtzYKr+4BfJUMm/Eej94QOcX/XX26dG3K9PCFcILpRRvAl0HZMgqnoMlnGOul8z0fusn7fuHiOjjlczXeUGvX73H8+3/8GRxj8tGY7EcmV4paeFW50+4dOW523Lzh7DYJwyI58MEFm7t3QWuwVEXwTaLul5gbCTZmHOeOTYIuLRLheqw9szuTw+FhMOT1NIpqHSDI4TJ8jrRktAx2fTa8CrtNilhzLZCc8xm+9+dfezDrSZtb8Dvnl/Kpdb2MBu1X/b4v5uu+7o/RlkZbFvoysxwrrXZ676TWyd7ovSMmNGshMazh/YoYtQeivt1t2NEj6W0xFsLYvSRhbpHga4SJuwgRSHIjUfed42L03pk2iW2auFoWpuQoymEv3L7dON8bbY4aqe4jXdEwmknYTeRgYkWvKLH0htQ4SFZxJmXIF4NxOBUPRoV1lp4jhTUJ0oK5nwkmR3ZhptM80qYPzfjAxx8xUT/TOe5Jm1/f/W8+4yaOTk7DOJhQvSM9YVfwzIlxmhSnc9/ANRjnC0Yh2G7mkMV5cK4hh0rG7nbi9NSCfUvF0wAAIABJREFU1dmMTcukW40bU+LZU2FzgOVFpVTnqWeVdkz4AyOLcfJWpU8Ku87FJ4TjVvj4Zk/rzsEVw4IkMQvtUukPHHna0K3gRZCmzEenqzOt4QcWTPdsziLRZTol0arxoDtmyi0T6oWwLIbfhP0GjjXYgW6PzpYVKJFcxpQ6Ykq1kLhOJtxIcIYw5Tj7osEs/OjDxjf89EWAw+Ns+vh8eyPIDCGApv/62YzMDR3WCC3BNgna/DpZcEvUNckH80lhI0Gq6UNaeDUIKJLghkfN3YFNGR5UFrX4REjzTCJUTog6KjlsS6IuAcAnDQq9D2VGzgzlQtjApDQsPVKwrqwONUMLUD3SpwVyeG2HhHkwrpI88gkfNTrEGdEsmK0HhZ1DT8PixEeIz0gO6tNohrZoaJccDf+s8J/+8wB31hf8k1/4V7p2vW7ArPX2CmpdM6euHzQoauN2/LuinWt3Pj74q63Wyu5aTdlW+YuP/5eyPrqeR6duBYxSUobEGgh5TtIwaF7lfDlFq3hSuQbNkguiThah9c40CW5KxplyeD/omATra5+GsVwaxX8sPkF/Fwmwqkwp6MoA1bAiIIlUQmKoazvdjP1l4/Qss8xGnhTX8Trg/F8//auf9r140jY9eHVF+ycDWp/qnRUvjwMbdb7lT72Fk03CFmG5P5NvhMnP7gzk0MlToj1/4PkHCbaJPibx/tJYesd7zC0DEpF4N5F45ktPeeruwuU92L4l5qxCdPg8YipsPB9N4fmQUmGaKqkIZZs43cH5Q2NZnFY7h2Nco1awKlw1Q1WokRiAE3LY1hpIJg+qtGrEGM/7jo9FOZWQir3r3Q/56P3jK34vnrT5tc6tlMK/55O+C+p89e2JP/tVFd8Qcb5zYpONvgVbwu9K1Yd8OHyuxIU+BfV3MWebH61l3aEXJRnsW2fqMX9yjscuFtJGcYsieHFkCjCbHimxZoItRi6DglzBh49f3sR6lpbYUGsSughuFl5KU/j6NQs/NlJ0cUxiQ87doxtVIM1KT07DAxUb3aTUwQvYHqZbIaHu4iRRmnt0gZKgI9nlLMGf+X7nnDDDbAx5+FiLEej2ZM0t+NyCWZ88VJQ/8Ac2fO2XN3Y01IOFIDosFga42se+asMXi6iD8RSKi9XCso3OW67RpSvGI38IjXmtCsclNllNHVflRz9xkx//qYuX+Xx9bseTuna9FuPkbMef/CO3SNbJPfYtX4wph7/Q8bCwyc7y0sKNd5zgrmzMqcU51Yniew4PEtu7Q0YmgpYNWme6K74s0e21YERvUqG1xmLGsQubYnQSMreYlD0OYHMSJhnsQlF87hiFlhKbEt32nAomDaSgk/I3f+K1l68+aXMLfuf8Wg/Aa92+eh16VB3kNPEX/vN/F68Lfakc90f63EneWJrjtWLNUO9hyN0bSw+BfibUHWRnq5lkBjQsJay26wTyrQRDSgTmJiQiOKVsC7YcMVdYOtONiWJwMZgxSZ1+oZRToyfleN7oBOPq4qoxFQ22gzveG1WCpWEIefhB2uJYspH0mdBhMigsKJmU44BpEioQUOYenlpKgHUmDqY8t5/5yL2rV8XEetLm19Ob7N/5b99hAmbgwRHm2kle0OxspbERZefOIsZx+IA2M7qG9CoPlcMuxeFbUvgW7c8z7h1FKRs4FSNJ5sZZ54ve5mxJ2EuJcjBO7gAnwnRHEe/oSeP+R+Dhbwpzdi6asjSjipA2QSyopZG2KZpx2UiaMO04Kdg2PQIA2qxIaziKilOyM02Kzc7hUrl3EXPi1g3n9glsmrI3YVbnSmyAYYZKQuPjwYbwPV0wzJQNykl2SgLrQtMAwFISnruq/Ol/tsc+TZBK/Ig3BpgV92e+8a3K7rKTTg3P4QXrA9SZNOqZGRj8ApqMesnDPiho63BMsB22CRmhjvO9CugmbqRrMDIusDK5UgqvXWs+PJlBp8AQZAXORj2+Nnxl1FulwBw9gPA9HYyqMDiN5qHkR36qZqEcueyd4sAiWHYkgy9RB4YRvod/Mx7y6XVWLFDXtPXkNBcWnNME/8X7lUXs07KyvmDBLIBbT93hkQnKyht4HLeTYUp2DVfFOyKPzOBlADi6Il9jMdOVmyXDJI3x5hMTJBFomApoToNCHN1FVciqw4BWseakHAkpWUMj6hLmbyuzpXcC6e5CnuKAkERoNbqI5nYNsOVxKhMJyp8Q11yqYR6pLasvjUscPFe5og+J4/GykSdhUxLNHK8Ou9hc/9HPfHogC568TQ9efdGeJYccdf3/L8POWu//17/6Gb7mX3HkCMsB5MQoWZCUKdLBnU1W7n1wYd4lNAkLcLWv1L3QPLTXEF1DBvthEvj9f3RDMdg/hM3TQspxakxJmeeKtaGxVkc8U3ZGUhugSGbaCHffkvj4xyvnD8Gt4y02Suswz+G70HOKWGhriAl4eICJKyKd7aTMhwpaaG4kgSaJv/3DL/DCq5QWPmnz6zPNrUKk13zDW3f8W//SgXn4x2z3gk8RALH6gmDO1II+LFvFmkUoxVjfJl+7bcFolx60XWmO7kFuRuJld6AHyw7CeFQluj/VgsWECTp8FMSgrMVzCU8kEWIujM2naxgmI49hUhprpqgMvX48P1FBlgimsCO0U4HrdRSKCb3FPOIkPAZ9gKoisRYmGwan26DGf2w549vefU4lEiFHsAqj1xDSuCdsbsHnF8x6fIgqz75jw9f8YfgyPcQemAIU0JXmPgq3XQ62HhKS1IHDxlrXR0eOlfE3GFwSRRTAfdvywx/K/PKvHKn1kyIOP4/jjbZ2/V7HV3/1O/mys4p2o0tD5ggvSYshtTKdCMUbF/OG061RtI9a7O2IPke2I8vlxOndQsuK1KCOmjpqjeTKoS30LqRa8QQ058KjQbQl0XqAWeaCaSTHRs0XOgtFaRhFwzdSpxQghCo1RZPi7/zfr72M9UmbW/Dy8+sa1HoZfyeRxH/5F76evhyZ9wteK1MPCwRfFro3WhPEKiyOiSFm7I0ATTcp4uYRxBtYQzRd7yvrIiWuwbwxQzFaD2AjCRyrkTeZs+0J9y/3OE5JUQstV0I6FR5eVLIa0p3WjGMDLeGNVIh9q6/1uYN3YxEnVRuy7NiZHae4jeTz2M+KROPHPRI2M3GuCTkTnB8bv/HCebxeg2X2SsaTNr+SqKPOH7s98Z/8ods0NXabsPbYtABLixvbquzNOQisNPFpE3T0E4WuzpE1iCtS5Ex0XGt4hWpi242pwllRTrvAWefkaSU3wfqG9MzMXow5d5bLgn3CqHPGThsX58p0EnKvy99OOCFzlSzoieMlPOHUHBUL0KJxzajvLdGqUB+AFqOYozfgKscKhjsZ4ynJ1ArH2Zhy1FyaQhJWuzMhFA2mv3iAaFk6IolDjQT0pILT+foff8D9+VO4lAA49hg4LW8YZtY6dinxF0+NkomwLxnnssHOurYKHMFNqLMFLCU89SCtDDYXCqeEGXvOcSaogHjUwPF+BOBPilCoamG9gUEqsPR4LMP7aqvCYiGhZtTR3QJ00k3UZF4D1JIBaoXkYyyReSjGstOGPBEJVpVZNCpTjvq/J6CFMm307hEVloGipRLniOXo9ClYq92hJ+Wvf9D5yBz1oPvvXuV9YYNZd24TpPBHd68uWtccIyHYSAMRfNxgcv1bxK+BqhX2SkOrMyxnwEBSyHxEgq6XxuFRNNhZkuVaE1tWdpYKbTHK8FzYblIkFoznrOPDrilQ1YTHhnm9YAzfHJWwKvWgdjoxwVSgLoF0mglXV5WyLWjvMAWDJgVVZ0RpBnPGDM5uhM7W3VkORjoR/tFPf/AVvRdP2qYHn13R/pkYWo/f9/u/6CZ/6qsnNrtMz2FQ2xuc7kIWmHsmLTPP3VfKJmif++qcX7TwprIw7msES0+BjTe+/A/eZTqd0aUiWyXvAsjsNorzKtSloxrAZSpwciJsJ48OlG2QnNhMjZeeg8O+BUhnw7fGwmBQk1DUsDHHqxvWNFYxBQZ46zhtMRD4rp98yMdebK/aI+tJm1+vZG4JgCr/xx+HsBlWkjv9JScnpalhMjo5Cv0EvAs5hfGj+VireqxVKGjzSGQaQRJ5CSBhGfx5Z3RhGnhSlh4S1DKwAdXoVq++JjLexl6j48ME6sMTsAAotRmSAlAXCAaVhJny5INSnBiNgaAjr1K0PLwByWO+i5AeOLwlUhZlRTzUrzfeAHa3vOBb/rt/+pCjrmbNw1dw0KGHWgV7k5n1ORtJErvTDX/wKxN/9G0L75Q5GBM5vr9NawgAAYDGskMdextDrnjMmfc+uME/+9XGw48cBnGvfb5+rU873ohr1+/p+sDX/GvvYOc1OrWHGs2Ww8xmUvKkqAuXz11x4+4WSh8MgpBBmypTXbDtGZsp1rS6NEwnshqTGFfHRlGjHvpgZxqzBPhQAJqhJfxuGommwlI7JTtKHmlomU02VJzeC71IpKhOEz/xi1d85MVXzjz+bMeTNrfg07EbHsmUHr8djWblL/3Fr6UdKm1pWDV6rbR5QbphPWqYZTaqtIh+90Zz5yQnVGQ05eLa1huC0sQp0miDCa9i1BYNn2bEvCQk7VoSp9st5/sZsU5rxslJ4uIlJ98Ueu3U3q+Tvure6CXTfXjpYniLlLyQ3cfhtLWOd6Uh1yBUJDMaFcCdEtHrVHPce3jwSpxDrubGLz93QTz01X10n7T5lUQfsf6Av/En7nJbEyYdE8PakMwhHNy4YrDDCYBwI8LOlW6NQy3hY7qJdkoqRi6CTDA1gWKhzEnK5qHQTnqcB282/GHG5kx55xzXGKzktEBfIB83+K2K7Z16UdBdw5eOzZnjYtTF6D3jPdKofa2TxhlXdJw7N8aN20Ipxk3JPN8rS8/MS/gimStPJzg1YWnKRTcsE4CcOaVnTjSYXM2jftokIoVcnYKycefDDyt/5r2X4eE0xqeYvY96Kxg//sTNLfjMe+O3nCVS6deN36Th39o97EN2w1sKDwuOozvbwVA3F2zIsArBzjJ99F4z6uZMJIyHPmbIDpOQu197YxFEvmt2VSmhkAgRhiLdWHIw5K3HmQAFmYIhLx7gVmqQjmEHgkRtbylCKNyH6KuNMI7FkTPBlvDBFRnM+hbPZVi7UQaD35LApTOfBrjWFN79icwPvugI/foE+Ttg08f2hS9oMAvg5u1biMRJ+uWTEwbgJI+AKmRIacYXsoJWrP4/8ojpMK4sg0ElrMkpASboSDNJKS4iHreTRtwl5qSSELNga5UAIrIY7oqqkAf9jrHx7bYBpBWRAUoMegNGbXFNW13a3AarTK4TpOrBBqqvbKZg6rgFmHXYG73C5lQoWTEPNpc15/t//pUBWfDkbXrw2RftjwNaLyc3XL+Wwar71v/wGbo1Uk54hd02RSIbCyqJhy80kihLgybKQufiorFUvU7GWM38ssDN7Dz7VVtuniXkCHLS8ZzJxREa+6PidcyZFM9oe6LcvLXl8qqSS2HezzSPVLiry4VejWMNbX54VjitCa5gvWMpk2SkaspgXYgMH4gowv7h/3vJBz+6wGdx6Pz/2Xv3YNu3rK7vM+acv7XW3vs87qNv34Z+ALbaDS2BoAiogAQ1IBCoWKbiK8QyxkckFcEHhVgRNVomWpVKlWWUQHWkiMYyGktJsECxjUAgDc2jG7qBBpp+3abv69xz9t5r/X5zjpE/xvytvfa++9x7zr1nn3vPvuNTde85Zz1/67fGmr85v3OM77hs8XXHsSXCO64PfNNnjxyrd2XjGFIT2r5nYloWksJCzdN397wuv02QJ2G1ECbVbUeQKv66rde9sxbadaEe+Q7lYiHdTLYbbauRE6y6cWVrflvCL1bgde2rCrL07zqZeJlY9QnWVPw5Ir08uv9dxcsk3JdmuwlKMkjL5E0RrJdQA4uNC2ibA8jZME2Y90FjyInaFDJMw4pv/L83bk65c5zQy87nuR+RmfWK0q+RIv49+mjkxdN0ccJ6OjkGQkJFT768B4DX7Nj1ct4D4au+5DF0UnJVBlFsrJTByOZqdBmPePZG4urrMqssaGueJZ8KUjL2zCHl+nWWy8ymbmhmDGZIXlKkYmI8d3NNWYC25CVgfed6mhosvPRMknfNVLKXmEn2LOpWsWHJksymTlAGdAFP3BB+4KfuT4fMyxZb8OJi1jyH2m5Cz+M4xp//b76OPCq1bpjGibqesKZ+vakjtSlaK03Vu1eqsjf4BrF0f5Asjam5QNDUs9AXCKusHE/iPjXqvlSTTogVVJTFUtiXA57bHDG1hqTEfjYOj420LEzTRBu9wc5YvQTr6KgxrBaM6kbvOcFaxReJ2a/R2ZSNuYfXNAsW3UQw6+lKi9QXqap+PsSMH//IDU68Vu5O0Lps8bUrZoGfkoeGxP/4Ox4mF1/wXyOBNm6irMVFy5RczBrE/YxXIiwFDsX99KwpNhbytepJCJYZMG+6U4x0UJEhYaMx1cL6FrSkDI8YagPDYnIftHVimuCKQD7K6EHzOfRkjGs3XU9Jqapk8fn5lKRnnDc3X+oZVa1CqcLDB8peyhhwSxs3x+SbemI0FQ7MuGLCFSl8sk60lqjFS3AH8a6yq+wy6qCZg+zzqVUSPnk48nvfdUizxtmomnvsnE3Smv/5WioznLkq8I0PZVJRavIMq0Xf+x9wcafiVkRmxmgu7uTs857WYzGZV+EYbH/Xgt83gPsvV0N613PB15pqLmYNnJQSYm4Uv0ouKNW+KTxvNmvpolnPoEJOjiElQQ/7NqICCergG8e1eXaf0T+fge0J2nrZY38dbwDkOkbJ3SMON5/PxR+vybNgv/G9XoqZbHvou+f+1Nj2wItZAIvlir39vf6v3VJDtrl8SWbl2LO3Uk/fmvOxssyDv2xFr7Q11urlN2kuM5zzqqSburs4llzdAlNK3z8q2TtfoMIwAJOxXLorrvT3KCXRmqeKamtk84sc5mWCqWdPlUViWObe+RBEjKEH7mwS146NYZGQDNOktMlok0dkU8+uWe4XZJGw6qmqzzy35l3v/ZW7+i4u20UPXt6k3ae9p8XUrYh1Rmg1Gn/m934aV9LIcqm0lhkKDCkzCIxPjWwm70ixMe+QMdW29YfbHPeOiCRUEoNVVjnzxrcfcP1KRY6FK4/DcgVSEkcb5daNxvpYIQ0siqItodlY7RVaU2ottGmi1czBVe9H9+yzE0dH3qEwL6FV93DLzZj6550UsrmxKdmNV8WM7/vJI376lw9f8ndx2eLrbmMrpcS3/ZYrvK4eUUwRNbIUVCaseAYLQBrcAL6a+G3N0IWwMBe0puQefrW6mM5aqQvvgqijYnvuvTX5MOfjSBeg6M0t6qiezjwZeU+4hbGXBFEhTQrqQr/t2dZIshre+ST7+29MfQE6eabYvLMk4rtAy5QYZyGr+S7QtEmsisFgLoAlsLKTdYaREtzUFX/u+zeA71S1M0LWyZdAlBkGF85rfex6OfxHX/IpbI42LK2ShoGDpGyOmhvCi1LqhpvPGMO1JXtDI+fMYM39RTOsUMbDCm1J2vPr49SUZfZMFxs3LA4GzCqjKIsKdDuHKRvJMjo1bJEQ820qzam3GM+sUiYj/MhHRn7mE8e89fE9PviJ4/t1ei5dbMGLx9epDC3mFfMJD129xh//w1+KbEaO1xNt0xBTbq0nUpsYa0PU3CLB1OVzVRJGVs/EKX2OTTLWtbEwYS811s3nYbkYtQtTSRJjnSiLzJX9PZ65NVGn0cU2pXf59YXiNKlnXbmpLkfNYNNIq8SoShGflzeM1hLiee9MmtyLxrxzrFgvccMzEr3E0BtemLilgKryEx97rmd9vTQuW3ydFbN2EYHf8diSb/mCAzYqPCkuHnqHeV+3rfp8ZsjCprk3WlMhNSGZMSw9hbgsFUqhqVe9mDWmke7BLNx6SrAVLJZGGhpY8vWiGCKGjpliicW+saieGp8L0JRbR96UIBehFC/fM4XCgEojqdBUWFdok3ufug2Eiyfr0VhJoon1skrhevYYGmrmavdDWo/GzSFxjLH0WSX7KTEp/PF3Pc3N8aww2nciYTu3Ak6E591/89orM9x5FP/VG/Z4tB6RS0ZpLBCW8wpR2FZ/aXY/K8T9QveyZ0opXeTq35UkmARWJkhhq0FQFSnQmmd1DQbLsVdiDP64qXn536JA3eAifgEZXTGS4vPsUVwg84qPxLJbx1h1Lyut+Hy6AOoJMccJVuavXzO9C7qvfGvftmTyz1OTd2nMaqTi8ZiyC7WtJb7lA43evHHL6en8rMN4DF4KMQtgtbfHcrWCnR8RvbzweTlbfYA5Kce37b9dz/Luhan7JfTY6qa20kupugFbymRx1Tz1zIOMMWR3eEtDL0fs77FMIOppxdCFsOSJVyKCZO9UWLJfxKwZiLEYCtblTTEXs7SXJg7JP5+N5s8TV8k52ZxhGg1txmKZvM2PuJr/yWdv8qPv/9hdfxeX7aIH90bMesHXPxWJid/1+Y/z297mfg6SE/VpYRiERatMo3EswmZSmgiH6ip9MTcnPV4b1TILURqJQRvX9wbe/FmJqxkO8pIrbzZubVwVPz6ayJY52jRMFrQ6eVcKExZ7wmastCqs9gUzpalQW+LWDWPqbVt9Z9PQyRgQph6ztvFdJzVozfg37zviZ3751oucjRfmssXXS4mtLIm/+gV7PNYOsSLIIZR9IXUvAhlA1evvE4KoGyqmIUH1koSkLkxpLynU3gRgNGNPBFm7IeTRbLqbvJvqnFVF9jR2nUudxf0AR1GG1kWqJKRjoa0UUu+ICQzFx77aYzf3XSMF9pKwXhtDAVsIxYxRfEdoQYJRGZ4TNo/2TYTmTQha8l3ChRl1KNywxF/8Vw1tJzuFZ/MApWfnzoQBfHCRxNj10lnu7/MffOY+B8vMZN6djql6uXWfgw5aufnUxLVHMqTsJc3S6H2aSVSWYqxvKDpAmTP3E2CNqRasFWwwyjJDmhgseVdVMaw1dFigpJ4BbdhGkKVyZa+gJfGd73rufp2SU1y22II7i6/egonefsb/7BN499bKfMs3fAWHxxM2KbKpHGtjs5kYmlJ19Mz01LOTa2O0xNJ6J0QykzSytm6jYCyLN7mplnpmlrmvWhVqheUS9h9asrm55ujYSwc1C7JRUkmkIkyTehOBpgymTOa+NxX3wfVVnuccTFhPiVBaLWAVE3+871N1MatBlZOO0mY+L3vvx3vzC8FLkF7Cd3HZ4uuFxCxgqyI8UhLf/ruvIykxNaFp84qZnukt4j5SY/Psd1u6521ttk2SyIPbbIza3J9PPPdYm3H8lJD3jFKUln3u1qwx5ELOoKNBFWQvkUXZa27SIMtGVZg2sK7KoiQseQfDpMaeJA6tURtUSz4fbMLhsftgDSvP1lNLXAWW2Vi3xFFSqibEYGHKY2QeL5knqnFTlalkjlrlv/5Xz/o69MXW/7up7x3rN6v5b/a1KmYlPHPpW18nvQOgeZfcvj4f8J+9iQtAuXuKLhEWZrTkfsmCi1kpzz/6Hr4JVuJVVrm/Tqt+7gdxYYrmx0DprjAGLNzmwVKiHXdPwITbkkD3Q+5ZUQp7K2HcGHYspMGzp1p10cSsV3YUt23amLEqrofI5N0Z6Rmko/VjbF62qNk1kCx+fiaMv/Q+mK+ws046B8/tTvilEbMArj30cC85dKFoPgFbozVOTkxOss3M6glZ3VsrbcsK58wr24pd/pySU/8Cu9m7dH+YbhwvvawxJyF1kcu7IPpCcJmlK7KG4DsANtcEqZGLe8eoGjopi6WLZ6UfvZnvxtS+j6PN/bQGwTvvdPNcT3PwYzs+buztZVJOJDNGE37pV5/lp3/pEy/pu7hsFz14+ZP2s/5Z574HcmqncZGFb/19j1EkcePJkQUD2RpZEuuqTCSmNjGJMTZQFVDhuHXja8OTNAVyVT7jLfu84XHjylVj/zlob4ArV4Xnnq3cXButDrTmE6/jIyMVb1QwDAMlG8/cquQkDNnYTMbR6GVB60kwreQuikxq5Jo9C2YAacqkiR/+uQ3vfv8zL+c0Apcvvl5yCasI7/zCRNXGEmFcC7LyUhjJO7vW3bA4NYOFjx0AljLTprFY9Vp4cyPI0rufTNnINwVbGbV490Dtuy0L8zFQDKamtG7YnfptugTd+IXZ1kLac1G+9vRjQ6AptUAafQxsg3imar/AzcaVOQtjMpbN5/ZFhHRscACWhfWxsRj8op6yIAv3Kvy3Hxj4Rx/c0D3ngW74bmdTkk/uDzEruEhi7Hp5LFZ7fOUXPoRVJdcGMiFrQRndU08VG0eOa+bKnmKpkPFZ92DCQhRNmbE26pgoBzBQvLSMRJOJkgxpjbYxpmOj5QFZZIZB0FqRYUmrYONIWSp1tXAxf1jw3f/26ft5Ok5x2WIL7jy+ZFe8OrUxaPMD+LN/8iuoozKtJzBjvd5485qqlDYxVgNpbqKtzQVSU7J6dtax9tJnawy95mHTF3OuiyTG1lhgLFaJIQ88OYEdr1mlxGFTlhnyZJQFHI/mnQ03lZwUq96t63isyMLFhCYC1ZsauGuDzyNVG7UJinsdebMhz5RYiHc/rKaYCh944hZjm06do5fCZYuvLNnOLn/Plift3MEgib/+xdf51CtC7oKPJmOaYKUZlkZNnqmu1lAzljm5/xCKVHpLOiGLUqsnVxzeEIZ9F5NUPMtqUxVKt6xRLxG07JnrS2loK56Rv/S5i26EJt4pEzVPkjBjNANLlL6GFYSjyTheA5a4sm8skrGusNHEKC77Y4kFfi4WorwtL6lU/t4vH/HODxwjal2f2snAOnW+TvQrmT2pYScji62w+trOzPIz+NuvLvmy1ca7N3fhKDfPhJIEY3KheurZWZL8z7mj5iInJpSF50JgE6yGRMXIuZu9A3Mb3uRhwSoJU3UrkKkfrvTHDHhlxJB6N80J8iBQetO5JNTRK8VU8AZSi+74vMDRAAAgAElEQVRtmn09Ovoror2BRs0uTLVkLKu//oSXEFqDsXdWTOCCfAbERV9bCH/tZ4xn9NyIe0EulZgFLmghu1lYICbM5YLzL232wHIR68Q3ay789UysvpjrBvFIVw9zF7nMM7UKriwKLjRI8gwpb5cLySV+iniaaKYbeGc3mZyzvKzvpuTkXQ9bVX9M6keuwpA8a0LxLInJC/qxyShLz85QnY3hfJBNCda3KsuDgaErs1Ub/+JHP/iSv4vLdtGDezNpfzFB66yYBVCS8q2//42sn5ooOZGr0izRrLKuQFU0J9Zi1CZY9R3KTXXDQJdf3RTtSjKupMSb337A616feOjpDXufvs+hjRw+V3n2cGJIA5pgs2kgGTUXOJs1xmoklIOVcTQtGcfK8cZ3djwz0Ec1VUXVTbkzSk3Cj/9i44fe99TLPYXA5Yuvl+7HBg8t4K99wcBimshNqMW8q5aAaJ/AaPexakLtJsgbc/PGOgC1j1HJMz5V+86OehZouwX1yjzJ8dcaDJYkDlUZsjCa78bkKl5ukbafDd0Yw9IztvZa4pYpxXxiPonR+k6yDW4qupBeaphcrFptjM3gYpwu/BiGQ6HtuWiXcuqCv79vKZCXsNorfP0/VMbeSr3tnOVTYhYeumZhAB9cLDF2vXxyKXzNb30UqQ0xoa0nmkCx5pkJCjxzzGI5wMrzdUrqWfHDAmkjGzNqnVBbcnUhTJMhOaG5MU6GUFxgyEo2pTWjTUI2RUumLDxl3kqmmreA+sc//Cy33xu+eC5bbMHdx9eukLXrRzq/yp/7L76MmjI6GpuN+2alNrJpiTSN0Oc5WZWmCqIsmm9AH6lS1I2USxJKa2zUGw6sxeflWhulCbYUZFmoKkw3j8nJuwBbBqnGcpGpzZiqex5NlhBVMKVOxiaJixu9jEhVfc1hQmtCFc/AGbclkr5pVWhUpM/ZjPc/cYuxneQjv5y12mWLr1OZWedkD52HAJnCH33HHl/+1oKlTPOWc6goqQlVutfRvG4TaJMv/t0CwaNT1BvcjM8lVld7F0JLtNQQ9W6ZpSTv+LuBlnvWvfi605Kxaok6eEfy1jwrZj93QcBcXEVnUUoY1DPjlxRSNQZN7K184/xWU44qHGGU5Bk4xZRrAn/zR27x/3yy7Vht3x1z5Jz6NfdOecpr0wAeIOWM9qqqLzwQvrr4ZnQGrPlceNgTpqRuim4eqnsiTD15JaVeSph7Mg5ul7aYvFNgHnb8t3pm6ZB71pN5NVfBxxITL90T68fQ/ffmRJlFT/LRHtd0Ma1aQm8oi6uJzU0lHfjXu24+7y7ZD0xbr2IDWvHXUfPss7mRXmtG2kBd+bE1EVKFv/BzsJbn6c93xKUTswCuXX8ISadFhTk7S/CuH9uMrW15ofRcrn5hZDYh9hRmLxP05yTpJvBd9Uoym8G7+mn9DXMvs5nLExOu/IOX/yTpqdLJUwDVbNulTrrClRdzOaS39C19PE59p8hU6B18wYy9weurq/YMMnWzSxuV5UFGErz7F57gI0/efOlfBJfvogf3dtKetpezHlOndhI5VZIoCJYU0cQ3fcWjLDRj5tmFkymmjdZ6u1IRasuM6u0pN7gZX6u9vNQaKzKSjSuSeMfnHrDaV65PG46fK2yuV1JJPPOssVwJR6N0AdcwlINBOTwW9q6ueO7WyOaoYeYpqKYZWiMVF2zrlBmbIiq850MT/+69927H+rLF18uOrbTkNx1U/sRvgLIB22vbmnXPJrBtV5vJLRmQaqwTlCFhGyX5XJiSBekmi9V6XXvzyVJKnj1VJ99lkUEYmmeB5i6CafJoLim5MWkCPYLFFWhZsFFcCaPvKKq37k3Ju6i0BpY8RV8WPpZtDBYNytJ3IFOFtCfddRKa+C8mZVgsoe7DcpXYW+7xp777mKfWbljakxU5GzzzPFYStHa5YgtCzHo1EWPXveN3/pbH3SgXw2r1hbwlUmsUbawPRzZj4aGHfGFHEQa8VL6iTOLlPGXKXLGGFWNdlmQzxlrJuSB4yVnO7gmiUsg2UcqSI/V24v/4/735ojYC94PLFlvwUsSsk7XOnImEsZ1fzXvSX/Wln82v/YxHqZOSasOaMdURG5t3AGzKWF0QEpQr4hnISiXVRBNlibCxRqtu/7Hp3lWokXKiqnFlteLGrVtuOp+EdW+WMiwyi6o0hOPq8ZiaZ1RhLnKZSM//8ot2VWWRhCaJafLGFxsxpPVFp7lfkmEkjA9+8pgbx+uXnZE1c9ni60XLDO+CX3e18Ge/6ArX9weqtV5iKAzqCROL0ksODcCgQRVBpHF8c2B1oD5vVmN/6SLPcRUsGXmRvayr0juFV4okpiTbahqpyecxq97NS92bdCHGAQVFWVdfFywlb8uyN0BqwrQplNI4WDZ+6BMjf+fHNtxqJ45EdxI7NieHINjcmKULyYqvX63/FudJ17zmeS1nZm0fj5CK8acfWfCoVoZJSUWwhZ+zJt0fq/fEqdYrusRFpvWcaJPc4D2ri1ol+6iY1TeMi7lo5FUO3ryrFM/mEqAl70LI/BXiY2rqluODuUfXOgGTMCXPXCV7fA6HCV0pKbsnpYpsm1OZeRm0ubThaxKdfcA9kWea/N+1i2ZNCv/d+xs3xe5Ebz6XSylmATz08MNz0iOzZ4qc+qgn5YWeldXTtOiZDjvqOHgqqPQOhkLPTPBj6ubyniklvUyxq16ULBSZTRy9HrYkz9Yq2TtyqbmVmSR/jk7N295jUOfjS6gZZehG7uIeNoucmNRoBnuDYHnpbVyppKpbjyMMhv3MD7//o3zyxtHL/i4u20UP7r2YtX3dHQHrrMA1syt0fcPv/FSWusE3cTyKx+qTmA2pl4t5XfJEwpIbuk9YT39WhMR+Eq4JvPHtB+ztN1YLYf9mI1/PPLupHG4StW18V9AKiyLUVKBObhBvlWoLpnGNaXavNu8ZgJi6oCYDP/mLE+/66XuTkbU9H5csvl52bAksDZZF+FufVyi1Ikt8Am3dJLG5+GTNUIE6edaTNNt2CJxr3aX6RVCTkKtBE9IILHyXBPpukBlVTsQyxSdGiNCad4ZqDRaT0K74MVgzbM9vH4rQJp90JYO8SEzmxstTwVPASn8vFa/vr+494enJjUUSJJu3Ay7GIkF+KHE8PMY3f9eTPFt9MQInqclb8Wrn9zZfscMAPrhIYuy6t7zl1z/G571O+vXISxxybQhGM6Xeqow18eg1xfBa6IrRbAFWaVbh0MjmO93DXtl6e1gSBlOMjObkZQ9JsXFgse/j4j9593PeNfVVwGWLLXhp8TUbTM9m07KzgHYPLT9NX/tlv4G3veUxUPX281NlHCfGZtRmDG1k7L60gxqmLm4NDaq1Pv9PaK2+64L7JlVrDEmYFB49GHjixvH2uNokyKKRxDeP0wiHrdFIFBqTubcl3QspL4Ssnll8PM+vimKTW0is+7XT92CUqsYg8MGn1ty4dbRdiN4LsfWyxVeWZLcvK2QnA6QnLuzedOZf802eAyH8wc+6wpe/ZeAgu7/RMkGz1MsPham5NYIAxzcTZU+xYrRm3hUct2RQ8XUdCbIldFKmxLYDHH1tmESoo29e5iJUbRTzMkgRL/laia8xV0k4Vs9YTSbc2Ex8+08d88NPjHQHiuedk+edp3M+/rm3cXoD0ebzZCe3Gxbzrt3nJfibjwvT6AkpaWFYdtFqI3OZoU9iS19KpgK1J2AO2btrVvPYEFxsKjnRMHLy7FLpnty1N5coBlmFWrzzfO4i2OQaqBu897hbCRz1hhb+Pfo6wtQ7Mjbzqgntx6cpUauSxA3nM/3zJc/aSj3pJlUvKawJ1gptMfBX3u9Zsu15v8E759KKWQDXH354K1LNopQX6KXtCTtVash8gyuK1sWs1HdPRKSXE54YljFnXln/svprzYbyljz93XoGyzC40p6TC2RZTgbRkoRxbAyDdzj0DRwvKUrJd3RMElabl+qUxDJDbW5SeLDylgW1NSYT2rghA9OxMSyMd/3sR7h5PN6T7+KyXfTg3k/aM/l5t+0KWrti1nyfH0jiMx5Z8NWffY2FKJLxq57BYRPWEyCNSvGUefH2ppiX/7WUMROyGYssXAE+7e0HHOy7UeSjy4rcyIwPN545Eo5Hb0edJXtnHLrcL8bxsblyPol7NCnuGTFkaqt84ImB7/2Rj9/L0+bn4pLF172IrT6S8cbB+Mufu0CoWFE2TSi1ezQgSPEL2Sgglny3ZlJk8N28KQv7Ii56C5DFhdPqf0/JS5XxkENzt4Hoxu86ejZq6RsEIt6xUJ9T5EpCkjel2ExGKvRGFrDADR4bPq7V3LNOq7FYwEYFOXaDVa518Sx7efYnZcWbro6wbFCEDx89wrf9i6foHX7v7ALYx+l2yWILXnnBITghxq4LOIac+d1f8HpoPn8pplgFkcpeMp55es1yWLG/BATWtdJIjBtjlYWkE8kqNWWswVHL1ARXrg4UKlmEKsXni9koknhqFH7gPc++sh/8DJcttuBlLAjPCFrz37f30YUhKfyFP/xFjK1g04a6aWgz1jrRRqNY5RbC1dbY0Ejm3cU3rTLg83xTJYlnxKunRjG1Rk6Jh68u+dWnD7tJu1CnxMF+4xi3IMktU9vIpnkZbBU38zZTUu9amBKM1VcCao1FMo7UhYhqzTudm7JRGCTxK08f8dTNI5CXn421y2WLr93MrNOCy+kqid3ue9vH9/nCi5H6vOY3Plz4w5+3z6N7AzbBsDAW4Jmix95dLu0JY4W1VlJyDyT3U3aBqtnW6hibPNNJxbP7JvWOl1cHn3tNCNslRnJxYpDEGuUnP9r4rvfc5BOjnfin3mGcPO9z943B+dc1nyuZH3vmBM+ediKzf6l3xW6tXarYgpd3bbye4U+/LrNojVwFOcCz9YClF4ORUs9uEi8nbBWWA9QGB0nYqItdCc/cQrybtyZIksDcqmg+8UXw5k4Nd55PbvdRZ2sigYZvgLcGw+DZoiKCSvfrM6/SqNYDFd8gn3qDMhbCuqnrJNp9ebVLmgZkL9tVgw8dDvzPHxXgRJd4qSf0UotZAPvXHnbDdZlfA3Z+fl1lt664y8lFsP8v9ZJEeicv36fpg43CMHjUdYETyZ4KWkS2skVSoSxS97lyA+NsCRVjSHMOj3qXleFENEviRs5DT8+znm7gxvK9lrZfwJv5gCpp4QdXFVHPsBmK8T3v/uDLatl7lst20YOLmbRnyacuIvPux3m+D9vH7NyWEb7ht7+O5cKox8oIrKu3k57U81Em+sjHHAugJtTmRu4LM0oy3vymqyyvjNv3eORaYr8MfOLmMVPtTQaKx3UpwnM3lFobbfZ0AGR7pYXv+L6nuHV8tnfcveGyxde9jC2fRAhXDb75M/d4/f4xG1xA0tazmLSXPy+EtnGfvSy9jHBM6OCGkdY7MJkZOnbzSbo3oLoZZDWjmDGlbvzYS5ir+KR+zlbN1bs+JTM3slz5bpAWoTTrRf3u/CgCVRJGQjaVCaHM7aQV0gCWE7dY8T/80DFPNsMY+Lav2edjT2f+7g96Sets9P5CYtYcSP3aHjuEwYUSY9cFIsKXfNHjHNQNBWOfxqFlUlP08Jib04IsjWFqrB7JFMuQhUrG2JAnQ7WQh0zOlU1tHB0mMsa4zAxpwVPN+LGfeXWJWDOXLbbg5cfX7ib0PLc6K/J0YxG+6Q99EWhGrGFjo1XP1qrWWJmxVmNSL0GsamRpLKygVam5kar7vTRxH6y9lFmrsa7KRpUhKUfPJfavexfNJJ49mKrPy6bmG0hNvTRHFOpGWC4VMy+JNdxSIpl73xxrYaOtF2oYP/uRZ6mtbTPQQsy6PafErDsUp3a58+ecb5K++/2ICFdy4o1XMr/pDZm3PrTg6sq4uspcWSaSeNmWGEg1GDKbqjz9jPJMbTx53PjYzcaPfLzxyeOJ8XZf1c5kaPe9XyhObnf/rg+WzWLWzja8cvr3thUFd9O0+n2XLbbg5Y9dCfiUIfEnHhP21431Pr7bm71UMINrE8lFqlk/ynjmVJv/nX0tmCajLlwULWa0Za8G65k7tXp53zAJ6+ziVMne8Emke1mpi6tTdZ9biq9HpwbSYCju9SZiqPqx9PyKPq/vlSJ450VRL5+svTmCdO3kuz6Wed9xe8llhWe59GIWwHL/GnvLAdJu95MzJvE9RXlWlHc1r5z89iS+iNyWF/Yf8iw8pQRmvlJzp/6eAt3d/UWEkhJSAHpHCuntMJuRc/LWvp4bQ07JM8Pw9L/dBVvJfqHzBakHm253oxIpG9NGySJ873t+4aWcthckBqY7Z87QeqHywvNSxOeLhACf/rp9vvaz9hBTbk1+ERlNmLpRaBVPBR2SMKqPJnXe9RHbZmm98dOWlEFI1lgsBh5bTlQt3NJKNd/5SdlLWtdrY1x3wSIJU21910j58DOFf/rvnriI0+Xn5ZLF10XElk/PM3/pN654fT30Lik5+XfUs/ks+5gkQKu+W9JaT1M3bxu+MOEQ9wTMvW1vWkGeElMCVP3xGKl5XA5F2JiXO7RmWAOKd0pcNGMveVzm6iajqbrqVLMbPho+huXstzVRhlyYFpViicUA3/ORgX/+wU3fcfc2v0Zyg+YztfXuO2Knzg2cjJdbQUuim2FwscTYdfGICF/5+Y9QqNTelUtN0aMNR1Nm/8BNRywpRWEsCbRSrDCOlVXK2BLv8pQHUm78xIfXfPjj0yv90V6QyxZbcI+yls+UF+4KPXOZzDzXev3D1/hDX/3ZpBG0TSQ1DjeVJcJRm7ykVA3Du9UVg6LGcfes1Vqp3ZQ9k2jJuDEZWidMhONDWB745jfJMyY2o7EnjVsqZBrVvBO5NSUhlGwcK2CK4h43WsXtRaSxru6p+9ThyIeffO6ORYq75bLFV5ZktrtwYjeV4fnzAy9T1VOijAsI/TxvM7hOnim3y46bvQ5uw1mha/sat3veydL1+VUddxoDAtgZ4W33/PS/z7LVyeGc/m1tjxm25YTu49YTR2xX0ZrnXeGZ9bzn9/+nlPgrr/cKrSRKSULNxsJOzmLtDYyGIuhk5AJDtzmamu8q9zwDjs1tSVLfOG7i1RUGbikyl/Nlvy/3x2nv8VV6Q4Gj3CvNzNh4UQTgGWKr4nNua0LDK9iamc/381yx5vP0qVf2kIxbZeBvfmDi2F56FtZ5vCbELICD6w8z5FPpWaSTkWEbVFuPLF8pMg8bafbLSie3ZTkZUuagSZKgWe9AKJTiP/iSEqn7Z83vL8lTjDO+wEslkbNnWSnqWWF9MbkqgpibBbq1ljBNHrwpSffNMVSSp6aqUo+Vf/3eX3ypp+wFuWwXPbjYSXsmnxKsbidg7d5/Qu9yifC2NxzwxW9dMtGYNLNRwcQYMWgeZ5r9AtMmn75NmhhoJIyHUuLxty5AvLQil8KVPDHkfZ4dJyYqbRSaCaaCaKO25hOvXnb2K0/BP/uhT1zUqfJPfMni60IXhAKfsUz8+XfgE/EspAGYuuBjvstygDAW0Gak4t0JpfmFSZLv3tgqYaMySmawhnRvGdR3f9YYq7l9sLqhPFncXL4CgwteQxI0CRwraSU7rc0Fq+4PgPU5T3aTZZIwFWO1XPFNP+BdqObkY73N/O7FsrF27583KULMCi6SGLvuHykl3vZrr/FrHs7++27KrRsj168MbKwhObu/o3mZ2IqGaKFKxapgKfFjH534xCdfvo/o/eCyxRbcu/iaN6o9CWFnw3BH2Nq9/c/83t8MkkhqqDY2ozJWUEZSk97F0JfpqsoA3llQG5tqqClFMtUat6qQmwtRx7eUK1f65kpvRJVao5h3tpOktN6l0MxIBuPGYOnH2JK/VlOYmvuvVuCpW2t+4RM3nveZ7iWXLb7OM4A/NSc45zk2/1/kVFbW84SvXc4IZi+JFxG/zn/KncfAi2WZzfefZ4EyZ2DNgtXZ5wFbE/iU0jZlfneD8bLFFty7sSsBiwTfcG3Bm65MjNk886q50FStP8gTNMndMsSN2oVj7CQJBy9JlN50CREq+ONFqJNRFoKMPuZUjFb8K1sijM0zskqXKlR7VlgF7RlgpkZR755I77BovYuhV2r4601dYnF/LeEHny58z7OKWeNe85oRs0BY7F9jf5ndWI0TkX22N5N+4xwUIicj1Oypte1wiPQ2urbtZiipZ18V35XJybOnTFLP3DKSJFJK/fk9TS8Li9QHBZHtoJKKG8djti39ydkvYl6C6BfMkvwzTJMHvuJljv/X/3fvM7JmYmC6e+aC0tuVGL6QwDXfZz11/fd8/pvYy4dM5vXOzQpNzDNy1Ovs6+QpntWEnLJ3aDK4tkq87k3FFfdkLBeFq7lya0wc1gZNGWvCjiupCKk3HZgEnryV+d//9b33yDrLZYuv+7EgTJL5nGuFP/npG+peRo4Ezc3LJXxO7k0GBUZzW7QRv+BNBotjkJVsu5s083LFZXEPPzCOxX0gTPEr7AIvbfQP6bebMhR8K6i5WaWqGz4Wc8P5sV/0VARLsL8nNITv+1Dme37FvUt2OXX52Zk4nharXnxiJ0SZYXCxxNj1ypBz5lMe2+PNjxauLTIpV29hbmBkUk6sq/L0uvHen7tFrfd+Qn3RXLbYgnsfX6ea7JxzTdgVtooUvuE//hwyA5Mq41jBXLxqrXmzJRqFxKa6uFVVEVXoTVGKCEfNOG4TmLA+NPYODOub1QaYCgPeqGSjfcPajGpuyny0AZaJZjA2Yy/392oZs8bN48ZPffTZbdbQRa3HLlt8nWRmzSu9OVPvfJ8sYJuN9aIn4iWIT7fPunoJr3U3zztPbEsuiLyYyHUq433Hi24Xw9e/qidZbdtzPL9OZGbdyevx2UPh6z8Vcpso/fYmnpml4HNqfK1v5hlSRxha3XdbxMUpsb5BjYvidO/b1Dehm4jP4Qd6RpiQgU3qDQeaZ6SaCnXeiDZj7E3sNklYqHWN4iS88ix+KbRCT94R/s8nlB89vJdn6zSvITHLKXlBXq7Y3xvYqu/z62Ow7UbIiWCFp8tBQrKR7KTT4Wz2TjdhQzw7xn2tZrXbEPVuiIviCz7FTd1TmVP+0tZUXs2ljuTtEd2HBqMkvy2ZLxBbg5YF6T41eR6FDb73PReTkTVz2S56cH8m7bsZWmc7G97OO+sFxS+B3/l5n8L1YeplY4kiSjXPrkpYV/cNUSVLIqtwdWk89IZMyY0kBUpitTA2hzBNymhGtkRrviDIi8Tf+mcXm421y2WLr/u9ICzA73rjFb7q+i2mDMu5a4m5wWhOwrp584hVFuTIsJWPSyKeNkwCreb+VcCKhKp3dKp4VtdUYKlecijZzU6H7Jle1sdR+pzxQIWWYBIvz8CUtC/8zJMr/vbPbmim2wz+83ZB7/QEnp3sz/O43hwmxKzgQomxK7goLltswcXE19zhUDm/9BDmwouTUsTf/LY388Wf/Qba1KjqvlZYRdVLVJvCVBtF3d9qVCOrkhEOqyI0NgbTxigrFwoaholQTBDz0i4xGPHMq6rqpYuSOD5slCFhor1DeSbReP/HD3nquUN2uzVeFJctvrKkUwVvp/9u24wG2X1ARzkpUYWdx5x5nN/J6UnLC91/zrGczwule81rgvNf53ZZZCfriH7/zgPmMsr513hSnjn/bp5/DhTrJZj9hr6ensXAbbmihJh1Zy8ImOsAb18IX/+phT1ttNbYqM+tF/MqMPUMLPHyQHBhXfvJl9ybCSAMeWCsIysETcZo/v1mhVwSE0bqwmbr3lil+P1jt7rtPaH6d+leW14I4skOpi6yqfh/IvBRW/A/fejeNJ17MV5zYha4oFX29tlb9nyrnoG1qyLL/F8XrbDeecvcwD31H2gyI5Xcj88XTKWndmXpnleStmWKAGJKShkVKDmTetFxTic7B+57IyAJa25kI5LIyT1t6O+leLlkUratNf/lj12skAWX76IH92/Sfp6H1tm/exyk54lZM6dErT7Befjagi9627XtbSkZY3MhtZj5LEpdfV+K8NjrM8PSa7RVjJQyw9EIV5esR59sJVVQeM8vHfGun711P06Pf75LFl/3c0G4nbBL5oo0vuoNC37L65ScGjYZOvjFSJtnZ5XqE28WidF6mnhrJBHWk5EX3Yyyd76o6hmle701eRPzJK3cW732mv8hJ7Q18jYT1sugBVhk+Ic/n/mhJysb82jf9XG4VydrJ7l2u4kZYlZwkcTYFVwUly224GLia/buOVtaeLYZzyn6av3Rq1f4z77krdSUaNpIplgTjpuSrLm/bfOSfs3GUuFoDa00xma0KgxFvTwH653mDNHWu44JUzM2fZ43YIzVBYFbI6yKkgfhxpiYdOTdP/fJU9lkIWbdOWfLDOd5c09N2Po7nZ5bnwgxp4SfM69t0l/Ddh2mTr/GC3FeOd+p+87JHLuXZYXnoTvve97nnTPchB2x78zvbC5VhN31zOWLLbjYa6NIRmi8fa/wBx8TSq+sWWWfgxtA8bk8FVjCoJ6JnAcfc1S9mkzVyxBT7SJUFsbZ4L3BtICr5tlfI1Amtt3rTeBIXW9ozd8vDa411P5v6PFiYEmYBvhfPgIf2dy/qcNrUswCKHmANHD16sp/hGn+8e4OL14KuC037CNUThnpqrjMXlq9PNFFLM/WEujZVnOmXfJyxZ71hXhXMDd7n324gPn5s8lxTwvUZkjxhaULZnPmQyKZIRjf/55fulen6AWJgenlkbbS5u051Tr4Nplbu/fTJbChCP/+r38dr9tXDE/7TU23wq0ZmCmPLhJX35BYDtBqb2CgRjpqpIcSm+OE6sT3vucmP/+xzT0/By/EZYuv+xVb52UlzWPEp62EP/a2PZbtkDbZbOeBHUNd9rHMZx3oAGmCTR/TShfKfazyMWhT+q529dgrg7c0F3Vz93l3CPHd6SXw1HjAP/jAIe/fuFCbTL2eHrBzYvyuPju3qRqQk/s89mURmT8AACAASURBVC9XbEEIDq8mLlt8RWy9erhssQWv4LXxNiWIs6H1W17/KF/3+W92IQqjqkFV1BqtGWODLIqZIJvGWAzUmKqQcqP1dvQKJFPPmDA3hBeDtfkagqSsp+QdClVoClZgM8KP/OKvUlvdHhv2cq6QL85li68syXYzrAROd+iT03+e5fki1e0FqHOfI91Q/sxzTvypTo7p3NK9O/uYzz+GM69/3n1wIl5tsxg5+V3MlR/bdPmdrK1dIctf9PZedeDv1ywys+7y1QHb9qr/T1+/4AsXo3cPTJBzL6FPQlJA7MSMP7l9UW3WKzFOzN1nn+1RDKs9Oyv1aq+eaVebe/ktGozFuxVO2jeDG8gCFur2JNUgq7AWIxfhL/7iKzNdeM2KWSmXraAw7B+wtxA3ZOdkQdS9005Eri4gzZ0NoZuv9x82Wwf/ruerD2Grpa8IU5JtV4y0k701eyHlHkgpCZJATcjzR+6Cm6nXvJaM7yj0A0kC3//jF5+RNXPZLnpw/8Us78D2/Avdi3lnwfMFrt3b53+rJBZFeMdnPMKbDswD2jx9Pouwh/LIGweKKEPJWDMUIxeDZ43pKrzzXz7JzfXzWw5fNJctvl4tC0KRzFUx3r4vfMEbMp+6GFnWxFFWJPcMLXNha9n8ApWKlyMOvRNhFp8YtuaCWOr1e6awWBYmbQziwqimxJNtyfd9eOLHn1M3tsUvmtt5ELcXou6GlOYyyDOfeecvIWYFF81li6+IrVcPly224KKzG26fyfI824YTE91TpYg5D3zV576ZT3n8Krm6Z5apr+xMlFa9W++UKuOUOTqGxXJEySRTSJANb4AyNaxkN0tmYk1GEXSqqCXvaLhRWmn84M8/Q2vTKTXiotdhly2+kiTbbujZbumc8zyhp/9/TjZ43qRETj1wRx27y+/lDryuXkyIOvd46DE/J1+ceZ71t97JzdgKbqcTOc68xyyS9HMzf2ybBdmdde1cjrid1/XPGRnxL5fEEuW3PTrwFQcTV4HNUnxjWk8ELOsZWZJhqj2jSiDDtnqs4tmhq+RCVp6A4s3EWv/iGrDfoCFMBlNyy5rRYJm3lmtMCiOJ73jC+Oh9zMQ6ywMlZgVBEARBEARBEARBEATBnfDiNVFBEARBEARBEARBEARB8CohxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKwgCIIgCIIgCIIgCILggSHErCAIgiAIgiAIgiAIguCBIcSsIAiCIAiCIAiCIAiC4IEhxKy7QEQeEZF/KiKHIvIhEfn9t3mciMjfEJGn+n9/Q0Tkfh9v8OAQsRVcJBFfwUUS8RVcFCLyp0Tk3SKyEZF3vshj/7SIPCEiz4nId4rI8j4dZvCAEmNXcBGIyFJEvqPH1E0R+QkR+coXeHyMXcFdEWPXCSFm3R1/GxiBx4E/APwdEXnHOY/7L4GvAz4H+PeArwH+2P06yOCBJGIruEgivoKLJOIruCg+BvxV4Dtf6EEi8h8C3wx8OfBpwK8Bvu3Cjy540ImxK7gICvBh4EuB68C3Av9IRD797ANj7ApeIjF2dcTMXuljeCAQkQPgGeA3mNnP9du+C/iomX3zmcf+EPBOM/t7/d9/BPijZvaF9/mwgweAiK3gIon4Ci6SiK/gfiAifxV4k5n957e5/38DftnMvqX/+8uB7zazN9y/owweJGLsCu4nIvJTwLeZ2f9x5vYYu4K7Isau00Rm1p3z64E6B03nJ4HzVNB39Pte7HFBABFbwcUS8RVcJBFfwauB82LrcRF59BU6nuDVT4xdwX1BRB7H4+1959wdY1dwt8TYtUOIWXfOFeC5M7fdAK7e5rE3zjzuymWrUQ3uGRFbwUUS8RVcJBFfwauB82ILzo/DIIAYu4L7gIgMwHcD/6uZvf+ch8TYFdwtMXbtEGLWnXMLuHbmtmvAzTt47DXglkVNZ3A+EVvBRRLxFVwkEV/Bq4HzYgvOj8MggBi7ggtGRBLwXbi30Z+6zcNi7Arulhi7dggx6875OaCIyK/bue1zOD9l9H39vhd7XBBAxFZwsUR8BRdJxFfwauC82PqEmT31Ch1P8Oonxq7gwuiZL9+BG3T/HjObbvPQGLuCuyXGrh1CzLpDzOwQ+CfAXxaRAxH5rcDX4or7Wf4+8I0i8kYR+VTgm4B33reDDR4oIraCiyTiK7hIIr6Ci0REioisgAxkEVmJSDnnoX8f+CMi8lki8hDePeyd9/FQgweMGLuCC+bvAJ8JfI2ZHb/A42LsCu6KGLtOE2LW3fEngT3gV4F/APwJM3ufiHyxiNzaedzfBf458NPAe4Hv6bcFwe2I2Aoukoiv4CKJ+Aouim8FjvHW9X+w//1bReQtInJLRN4CYGbfC/z3wA8AvwJ8CPhvX5lDDh4gYuwK7jki8mnAHwM+F3iij1W3ROQPxNgV3CNi7OrIJSqZDIIgCIIgCIIgCIIgCC45kZkVBEEQBEEQBEEQBEEQPDCEmBUEQRAEQRAEQRAEQRA8MISYFQRBEARBEARBEARBEDwwhJgVBEEQBEEQBEEQBEEQPDCEmBUEQRAEQRAEQRAEQRA8MJRX+gAAROSVb6kokMzVvZoKi5L4ykcf4o2rgpqxShVsoqQVUzb21MAaV9qamq9haqyT0FrD5IhraUkyAxuwQdhIozYhMXDMku/5+Cf42FhZ10aTipiAGQkwBOWVOSVmJq/IG18gr4r4Aq488ihv/szPBEmIGSKCGYhkRBQxMPz7xwzDkOR/l1TAmj+nKjJkTBtqoKOSFwkzQAzUUPWPbGYI/rpIv90E6++ECab+Xs/cnDj62Mex6UY/4vm0yc6/5dTthiL45wBobUK13fYcXLb4erXEVnD5YgugiJgCIv1X16NNfFggJf/Tdm6fmR9jdvILFvH/VCH1n7IAOQmqRgaEkzsyApJAGwoMKfPInvJnf89beevwCYbFQNUN6/YQWZ7m+HjJagDJEy0Vig2oVlQymUYpiXWtDFmojJhVFocHpNXIjXyFn/iFgW//Nx/jyPx6bMnYICSMYoKa0fDjagmaGQmhYiQBnc+DD20k/DbbOR9ZoNnJv5E+qu3ctnse58eoXq74utuxS/qJOu9Z9gK3J0v8lf/kLZCVTGOalCEXNlSsQklCa349UgAVmih1hL0ho2Lk/mWqeRwmE0pKVPXnmRlJEiZQ0oBOE2TjgEwDUMOK8I9+/Gne/UtHd32uLprLOHbFtfHVw2WLr1dbbPk1NHN62TbPl0Fkvsj47SLS7/W5uPTHzLf5c/pr+4Vwex2yvk5V/OKusJ0A7M7Od6frtl1v7B6gvwpAtdvP2V+MyxZb8MrF18m8I1EMyMaeJd7yiPCVv23F2x/doLXSUqaIoApaJ0raR26u4YpgpZEayCC0BpISKQmilbQpsFHS9cSYxfUGm5i4zs8/I/zgT4z89C8fIQ3WBjULyYys9Amjx5IZTPfpnNxpfMnp4H5leKUCJwk+STXIknl8tceXPfYYb9QjbNGAEUuLrg8kiqxAbyGrqyRplKmyHAsMazZqGJnJIMlAkZErUrABTGHUDUwLKANma6acKFPiCOGnj+H7f/UJmiagoXRRy86MjfeBGJjuDWk44FM+5/O4usqkvrIyg5zlZBGqtv1+kwimE64vWx/UxBdn/ToopliDtHAhy0i0aaKpMgwDoGhTkISp+msYGLZ9L5svppz82dT6Is4Xi2bGs7cqhx/7CFIPOTnKU5dKf4XnXTlhmta3PS+XLb5ebZOq1zKXLbYActq5RG/Vl9OcJ8CcfWg6I9TMY1C/BPp76cmvO0ufxABTzvz2z7jK7/vSh3i0PIe2G0x2wL7skWyNDsp6msiSaTevs7hySMsVbEnOIzRhNB+zUmkkzSCpT6NHyvohNstDUsosSyKliZu2x0/+0gHf/gMf4tlRyerTbu0fIAEj/z977x5ke3bV933W2nv/fuf04947D80IaUYPhIREECXAkBAhglHAlRTBxOKROMZ2mcSJAwWOXA5VrlTZwRinkopTdh5UJeWCsjECm0pIigB2BfO0AfEySCChtzRIo5m5c+c+uvuc32/vtVb+2L/T3fMSGs1D457Zf9x7+3T36T77rLv2Xt/1/X5XYAG6AHEiYMtrVwdfAJbd47uVEWoEqmeX+93euT96/1Q5zZsvdDBLd5GyO1eeBMA69/xEBHsl8fb/4OWEJwgjPJhdgMb+GB1cJPAWJE2njZbmyjw74ygUFdQcQ9CkbKuRc2bAaR6oCBaBESQRxBU02IsdUOloSjSBrTVEEu97YMM//JVrn+n2PaPrIuauF8/G58+6aPH1fImtLGn519n9F87Aq8e2gUXOnbjSP5bdoSwwloGXXhK+8gtv5+v+zUu8+iWJ20tw912Jm1crQuqHlBWkVlBlG41tC+57oPLuT2x45we2/MxvX2crCuZY+HlY7bQeOL9eBLMevZ7L+BI5/85AikQk5TW3V777T67YO9rSVgkLJ9FjpTeJBpAKBGqKPGJwG/iit8uhVAWRIIWyPTKGQRlWQlgw5177pZQJUSwSQ4AMlQdv3cHf+ckHuXlzwGJGItAQDEfkjGwzPwe79CKY9cQ/5wyZlo6Jqyqf/5LP4S0HcIkT6hSMQyGJsY1ESjM5Z2gKKZNLoMwYI8NJZigz4sFRzGjs07QhLmSMfRlIeWJmj9KClreIJTYq2ORIcgwoErTmPBBX+NkHrvKR6QS3dtZZfy42Z1kvJqanvnIeUE0gmSuv/yLuOBxQ3XVXYumM9K/tTIpY2ExLH0aWrrTTkc/+nSRVUoJmgVoQSSEMJPXYaHNn+yV6gnNbfs7y3KedmR17yjmrxzqQ5bHrC50F2q54i+UQ/OTHb2A37qeXk+e3cpd+OftGglqnJ92rixZfz5dL1Yvr4sUWgJ6Lr8cG2vkXu2MeEY/9H7r8vTCywhdmEr0vK3TQJwXk5U5dApoqh2PmP/vj9/KWex6mIaRwnAqyQlA8jH1tnPhII1hRmW5lOKgUMhFOGsDCiChYQGilWOA6YibkOZBVw6RBKCWtOiun+YJACdu58APvnPjND9ykunRm2QK6z9KBN/Po4Apn7KsOfj0exIOeh3fA1RPt7WP3r+fEixVfnymYtbvMymMD7RwTYPfYQVb+m299JdiEudJmQ1PQbGQzO0WdYQzEDZdEbyWfFYgV8FlYDUGLwEPIooQICe/xSxC+o90F5kpGMK8cpIxGB8tUhCRCNcWTgQotQBP81L+6zi+//+hp7efTWRcttuDFs/H5tC5afH22Y+sMxDqX8OTRrKqgN6llR58WugJDhEzmS153yF//sy/nNXc4WfbZbmETIL5me9O4vgnKXuHoemY7GzEHU23kIREe6CzI2EF7IygCQxFKBEkb+6NSZMbnY/7ZH1zjf/vZR7i2nfHwzq4BQIkw2qdQU/xR66LFFjz3YFZZFDR5SHzHWy/xuXfdRMJQSzTpl7O81HQSILk3A4XAWjCoENeVdFkJrWgIJWU2DaI25inQdaaUQMJ7HZoSLTIws2jSyDJQo6KayG40rvALHxJ+6l9c56RlDEN2rcHlbd8+yxjSi2DW+ednSTeiCE5hxR+76xJvvrIhJLGWgQ2Kh6DzllyCHMaNWhgH7SysEHRYk0UwKlITh4OQTZjduREzORK0NWWcGdRxG4EZkUpOKzDFRLHa2KojNUjSGFyZS2AmBBPqezw8BT99a+aDJ490WRlP2JR/xteLienxK+fSwapHPysA61d+ES972T4JOS2mZLk0RwTREapeADRDU8Jx8OCc2O9Mdgio6JkkxpyqmSSOqmDNUHHq1ihDoi06oh34dP7Xc4+lmuNcFScLaNalhf1xhfAu39CF7dVYqmNBs7LTQBpw/3vfDzGf24texexYXy+CWS+uz8a6aLEFHczaSRHOA1anAA27s+3scVke30HPp48tAE9aHi/RP14JWCRacu4clf/6a1/G61/6ANX3Gb0yaOZIjBJOihUWRsqK6RZcUFMaQY1MujGQr5yAKJlMUsM18CoMKdFiQ2MPdEab0OZMlH6h0mxUCcwLqkEh4XHC5mhAjwSTQwa/yQ/9XuJnPnKtM6Ydqgqy5LlKB+ZYiokdsxXOmFbQv+9xRLdzdck5POb0Hy9kZpbIUqYt+3nWjHnyr/9zX/M5vP7uAu7MHrg5owhTOK0ltDjMwaYFEhnHWZdANMgaVBc0LVKKqYOumpQkncGcBSIMjcQcQSRBvEtmAZI7WUEJiM6QDjo72j1wCWKpOqdwkiaKCjYFRxW+76f/8Gnt71NZFzF3vXg2Pn/WRYuvz0ZsnQFYj147koSooNIPGFEBcVY68jVfcid/4y8ccjgeECfB8RamSXnoamKaYFMTocomMtHg9ivC8S1j0zLJG6wy04lBC+ZwJJT9QXETolUYEoPAVCEUikCYM6igqgR0RqsYY+otrBIzV48+wQ/92iP8zsdu0HDm9pkJxy5abMFzE185CXhweT3wbV91hTfefhUGYW5OKUr1wE6E9e1CmPVzzITTeq2BDJ2Frhb4lJC19FoxgjYLNgd5v8sFczlgno7QSKRkuChJrBP9AkLSoiAyojjFEjWMnBPCGiHzz98v/Pi/vE5qgQZMgClU/6Ne7We+XgSzzj//8oeE8JV3v4wvO6yEHrFf9sArkyaCTDah2sSerMkUjvMNYMXKG5TMmIRAmNuAeOXyniF14MQrM42wzKAN4jKeTyheSDrBtCanmSiNFk6rmSkaJWWSQVRnTgNIIFbBR47sJgdRmGXg7330QWo0ZjnzBHm21gs9MQ3DisdShh9HFpbCwed9ES+/aySQpWO9072z6OchiWLupx5SYUFKQmuOaJf0iSpu1p9jOQzDjayJ6oHocjl3o86NqA3XQkmOi3SwbPHAcvPlt1xIoNHZWIrsmAWIBhKKhS+AVv/d3Rxr3gvklMlZ8DBU045w1Qvq5WfVFjz4kY9DvXm6LbtNrvOLMsPnxRLIkbqfEE6kHje3XT7ky950F+uxUJKSBLbN2JwYf/iJW7z3Iw8wu3bfGRIpbCHJPLb6f36tixZbcMbMErosfsGhH/VWPFZeqL5kLBVs58LhXbruCnmR4JX+GRJB5D3+3rft8dK5kQ4TzcCjIVo5pHBiiUGCoompTgx5RWhQbUNKCfMVmhrtkUzaN3ISkmxxMg2QKOAd8EcaIEy3hLR2PJSYlIhg41t0uyalEYuJNAp5bBAzQlpAj5m6EX78A8o/edeGYEtaqGYtFv+s4LS5YDxaigiPBrMeG9bnGdGyMLgjwC9YfD2V3KU7zcwpyvepc8G/+2V38NWff4DPrfubUZnm1O9QzTubQLWDkbOxHhLNEzY7gTOWWM5II0QRCcSVyYIhKVmgWu8wE0IRYaNBitTphx5kLahXkoCIoiIcTUGyLn0kO97v7ziQzTsgpgobJQZDBX7jY8e849cfeVp7/Ueti5i7ntdn4wtsXbT4ei5j6/Eg1imiv9SW0s8JEVAYkvKdX/9K/txbD/q5UxObo8SNG8qNW8rWhGbC1DqrpjloLl2No4nNJuM6sB63ePcjYdzf59aNm1iFde6JeExKm4U8OmaK5q7i6EbYnQ02Lp2rJtIVQCg1gsGVlA0ikdjwz9/3cf7+L3/wM9qfixZb8OzHV++3rPnjrxW+5Y1b8ghbhUF9Yb0HZJgNisKQpMsHW/dWRoTkimmv6VKDmBJ5zFAaaTK2VRlGJ6fM1JwmCZeZQZVYmoB5YTuLGM6AeSPlHclCcXNyWu6JDnMBkcLf/DHngaNGstgR6Nk8S4DWi2DW2XMjIeyXxDff83IO/SqtZMY0UpKTYga5BNqIEBoT62Zo2afGBlNlkIFBCjWfMLpgrgy6Tx4FnTZUc6qDoKyKU1XQpljrdMDUGiKZoOIcMrctphvGlEg12KiDKbM44plkW2Y/wGMmp4l6csj784afun9ithP8aeib/6j1QklMIkLJw1LwnNdILOscDWJHHQ6El3/5mzksQVIhQhBdDBwDkioiDtaryf55xVoDBw3HJSgq3c8FQFIfGsCZ7GdQYdZucuwhCMY8VdpmIq/G7oeFI6IdUY/A3c91ygV36yBYnPfKMjDvBYQ5HWPrPzlESDmRUpy+/M5kWF57LNISODWcVDor8ZN/8P5eQCzbPNfpSQudixZfz+cLewc/MrddHnnrv/1q9oeKLmwZFWW2Rp6dGAvODixQRJXtIxPD4T4f+sRD/NJvPojtYM94FlswT3NdtNiCHl/nofTHfZ7H4wq7TFboXbOIzsbaMbZQcBJrnBDhq994O//FH0sk3zDkREWINNPqTE4DBQVTIgmFwKnkAEcIMSoJd0d9hW4dhkZWJ6WEC2zdUJSsiWiwPUqEKdkNz2vK0PDsyBhgAyWfYAsw0cIIz1gzsq+JdMKsjkZCm/K+q3fxt/6/D3I0O47TWOSDS36d49S39FG+YudS5Rlp9RwD7onWRYuvzwTMOj0ldww2WfbtMfn++/7MK5nMGDtuRZ0htBF0hpRHR1QncQYUJbBQJGB2oU7B3ipICcSVRiNH4ngWIhTxGS2Jg46RdrBRele5nP3G9Cs5eAvmOZ82nlwhhbIeAhl7w2dE2UpnwVvtTOPIRpFl2ECDH/mNa/zOfc+8gfxFiy14fp+NL7R10eLrWbcOeRIW1g7Rl+XgFekNaBfjdS+/k//5P38lhwLFnO0289A12FBo3v1v5xZ4g+aACxXHyISPJInuXaXCpX3l5lFFUkJ0wCYnitGasdq1qEIZk1IrlAEg0AhEUs+v2pVIHsEgmZ3T0Rw9p46lYabgEB785n2f5Ad+6fee8l5dtNiCZze+VBNfcHvwXX9iIEVF3PGSkNyQ6EBWSv0MZE1vRKpQVGnVunqmOYMmInfW1uCKTYFk8CrExhkPoRZZPLgzc2qEB+IwiDDXIGtn5KfUG5iihsRIiso2lqF4abkVaSKJksI5wTiZXsL3/+hVagssgjnB9CxAEy+CWSwX/Zz5j155L3dyE3UwqYyacFGKGDJkJDcGWQGONVCZKL5HyNw7ygppjO4tUoVwIefM5ZzYWlBDqNNMzgMpTjDP5OS4gtIlWpsmjAFbgUES1YUUhhiciJN8RNMtplbIDtuoZFNaVuQRQfcKwYZfPoZfePjqs0aQuIiJKacSmnaDO+PUcO/xDKzdOmtB9wlOieHVX8yrX7pGtAM8qspOtaxJcAuyduacNyMR7JXMKMpqvaJuG8NqxbE3prnS3Ai3/nOWaV/ZoYoQ0QDQMGKuNDPmqU8u1KWScFukhfjZ5MLlj11B1mVIHYzz6Awy1w7AnYJWi2/XGUMhTvX+3Yere9Hosme+8ET61zqd4BU8fHNm88mPAoZ70Np5GeLZumjx9Xy9sIsIb/7K1/G6AxhWIzUmUEHcCQV1Qaohw9D9EtzQUFSDmzcnVpf3Ud+gnpCiWIz8xM++l4eP2mf7pT3pumixBT2+zk/pO/c4u0mlj12PBbOIDpTvZIg7YOu1Lxn53m/YI2ulBYwnI/lKY3JHopvMpjyTPBgi0yIQUXI4TaUDSkw0SZ2dNYM/cpkp3aL4IjuO6J4PkUlFSePMsM44gh3D6kohYgIZmW1DrUYuQY01oicMKGaZ8CA7mAhVA6tBMqVtBmQ+5tdP7ubv/PwHqNHBrF0ubPLoDN+9w3bT8x4NED7qVHgcW0tw9wsVX58RMwueEFU9NYUV+J5vfhX7at2MvRoeypgdN8Wb0yRwnETqbLkd2ohQ3alzZT2sabODdMA1hVADDtbKbEaOzLYGSZ39ooRCdcNN8CqYO6AUCcJ7m0iKc2kEVyNIJIOj44zKzJV1QhSO+wWQYVBsk3ANNPfRn9bot3t68fc3fvITbOozk/4vau76bP8OL66+Llp8PVux9UQgVrf/6Pfo038v9+F7r1zie77+8zkYRirdqyosMAMETo6C1UEm6ABWWJc5N3M8UjfeNkdz4Y6Xjzx8/5bNNpGG5edKZaWJuVXysMZUiWnG29wbRAJYZlUaToJouAurxbKkD6ETHKV66+WGCEWU6hW3RMbYDUn5jnf8/FPes4sWW/DsxZfqwPf/qUPuWj1M22TKvhGW0I3jt/X4sOaMQ8KbI/u9iZJSJlWjafeHjCToZIwKJQ0IQa2V6WbCGuzd7hQJIHPihubO0ndgTJna+hCUNhlkXc7ZQKWfyUkLs0MRo9HPf6MxkiDB7EHSwEX44MN38QM/8QANZ4MuZ+8zt17QYFYCQgfeesdtfCEz6YpiIeTizKaMOJGUooFpsJ9GLBkpDMjdY3thrEjKjCOYV0pdE2PQqrOnjdwK8wpi0sVsdmYtnXYXKVPrBueA4tCKkRxGF45qRVWRJLTWUA+a9ImJ4krWmaqFJhAT+CYYSkdVNwHFB37q1sxvXb/6TG4bcDET0ziu41Gt5NNwkzMtytkjHQoKQfZfxhu++DWQFJXu4oGvhQAAIABJREFU11E3E6u9scdH9INJpPu0WAgZuLIaKPt38OX3XOH1Vwb0ZMvR1Zt8zue+FCM4OZqoq5Gf/uhDPPixj7OpRstCHuD4kSM2m0a4IKvCuFI0nFod31VpO3aM2TKFIrDmS+clTiU0dmr83n1DOruqA2Dn/eGJOBtpv2zH8p3s4LAdSy0CvDkpKy5076/l4AS4flK5+bGPMM/HT/heXLT4el5c2JeQDoVLh/u87WvfQJZGTBNUYxy7VfJsW4QEWGfbABJGQ7sUKDm+2bAaL1MxAmMUwax39/ZKJiR43zX46X/xYcKU4PkDbl202ILHx5dIB9LNrF+o4wyU0ce8+hKdtUL0CX5CZ5TePSb++z8/UqaMepBSRdhjLHM/xzw687IY3oQsiexCRMbdEEls6XR11T6oYnpoRFqQ75oB79PkCDQFhiDLxdt0BhJpmzA1IqfuwSWFyacOqg6ZOgsWjbHAvFkjbSBkSykDXjaoGlWgTYVIHX3fr86P/sE+/+jXPoHTfSCcMzYW9At7nGMSiWpnGz4WLDw7CU7XRYuvpwxmcVbYcXpenB+qo/ztb3sFczPEgtkDwyimrInOCFDtQGlANdAkVDNy0tOJu+l0lOTSMAmlIN0upLdkAOVk0yUZ0bqJexDkQVnnhiKLvHDxiBTB3Nh1ajQHYUJG2NRM2xi3X16mKiYo3gGsk5rABB188e/qDSxzR6XfC4RgXCX+6btv8JO/c+Mzei8uWmzB8+RsfHEBFy++nsnYejIWlqqeOzv6PV8UvuXLP4+ve90dhGemRZUxi3dpu3fWaSyS9s0kKM4wZlr0szVFH3YhkhARqnRGlUXCyFx+9RXsZmO+9QitKRrGai1sT6w30hGaJTT3hpWmhG2B0iAEtSAVoU0ORdBQZOlmiXSbk6Tdp7K60Fp/kSUF7/zwJ/kHv/rep7R/Fy224JnPXaMIf/VPrHj15ZkmkKWzrzazsVolBne8BvMK0krI24AsUEoHKLU3ZWzqZ1hefEL3gBAFNTYPCfW2FXuywQQGUcKFlvp5FUJn7AFF+tTg5Io5mAu6ooOmjLgbWYUJIyPMy1maLEgKnvt5jQgSDTkRfvUTh/zDf3lCmRvXn5Tf/tTXCxbMUmCtK/7sa19Knh5m2ArDlTWeK96AUEa1Tj5PRs4jSSoeIykpWSrb6qw0M5MZCuS0JcTI8yGWDds6l4oQeQ+xxjwYYTOtCUUSIgM1JjIzpiOJAZs7Qm7ZYTLM6cwv9tGYmVUQJmReQz4BH5ijIpaJbSaqUYvTkrF2YfaZj8wjP3L/J5+prQMuZmIah/VCYTivkwB20qlzMkMBolzm1V/2ReznfoXX1BEeBWw20lBQ6SYtqxSE5F4oIrz09rv4qntv4+4B9ugdED/ecP3Bh7jjFS/tPkQlU1X5yPv/kN+pGz5x/YhNczYbo+UVaaXkAlZrr1XdaM1x81P/lj6ZrPtc7V6BWWBhy8TCsxfaZYEd3GKBvLqvTizFXhDRx3sFi6/NTn642x3vAF8szLTH/ofdpZGgFxUfetfvPuF7cdHi6/lwYRcgp8zbvuGNrDUoMUNLDCXYHh2zXo+0cJyguaNmFFVCAw8j0zszYsLJ1Q3DHfsdIEAp4rRQEhXRQrhQmfEq/Pr7jnnXhx961n38Pt110WILPv34OnfnPs1mgwhNArXu4SeivPULD/hPv6wy0CVXOTnShDoL6z1FktJsC5F6TNQVmoxVzpjPCIp5cCIz+7JH1Uo8As1HDm4PgkrygVDHo3Z5fQqszUikDgpUwY8L84ETUlEZEXpjRywhgzDPW2Q+JImQL82ETZgdEBhzzIQE4Ss0HdMWGYVFps4bHpJ7+K/+0QewCjUEl53suzPcdtMcP9V964ksoS5afH3asSXCp/zKBUz/zm+4h8+5LMwtqBZg0EzYy9DMyARt2f8MWCjOMllrNzQFenPFu4y9+2b1ib/hECqkJjR3yiB4OLKM41QRVLqbrWoBc9LOnFZA1LugUZSwBiSydlnO8S0nJVgf9HN1rYXJG+TMdBRIcUKdEO2yQzcSufuJKDR16kIDHASu3mz87Z/59O9mFy224PlxNj67S1luV32dSxq7oR3Pl3XR4uvpxlYSRXiCLVmKdpUdC6vnjSSJf+/Nr+Xr77mjkw6kU6+2O59asy5zxhEFt95IMhOOT+DyvpBTl0jb4lXbr1hBbQkh2C7G3WUcOdw3bm1LB/7JWGt47ZoLBZIGWbvsv2TYMIBbb6pb9/oTVWrr4AMitOjPn1E2JgzSFonkmR9ndePt7/ilp7SXFy224JnNXV9wm/CdX6UMWSB3IoGmfidpBqsBovUqbuWJedXIKZNHo7VEqNEyFFeoRgXGEMJBJcgpY8dQr2f0ZQ3EGeMMwKrSB/RgvsQ2XYrq3U8rWlf9tOSUkE6uSdobN5pwE5oHqn3iYVVYq4A51dZk2TKNMLTLbBJ83ztucf8zqOB4wYJZb7ryEt5690SQaBlW80DeJPS2Y6opRZQcYJLJQ+rGyDbQtDEowEDIERpr1gI6VEwzqTTqlDv7Kq8pOhOM6FyworS6JTThegvxNS22ZBupIgxNkTIjlvCstHlePEYOMColjCZObhCaMM0cxw3E9/DmjJugqeMp4eYcamKjsG3HlHaJ773vvmdq+y5kYurMLM6xsnblHr2zu8gFRYTbv+BLuetKn16YJZNzZ1zJMutdwvFWySqkrAwCWYPDUtjPmX//ta8geWM/ZS4PKwoZEecj7/0w997zEmTdO9FHjzzAr777YR7y4CbCkcCtsaBloYOaYd75UY7QamWxwOqm72adthw9oZlZB7TcFpN2TguDWIzmg+jyGgnCFjN3FXSRC+4Av24ybX1yhgqxTLJaFImPkh3ueCGx7GUfKuZ84EUw61lfCbqBMYVv/w8/v/vOzA5urIeBg2hcP67oIJSkWFSItAABBjgacmrWduvBI/bvPCQ8WGWlSiIRzM1xMYbFiyGSsm0wDtA884P/9wcwFMQ+JUDwbK+LFlvwqeNrh88TSyxwJpETgTEUEycHqCT+7n9yN1dWNxgISlK8BRoZNVitMs03RKxA6jIFqaGujDL0C3pUVKG1gYnGqg2c3JpJbY/V3TcJBpAZIjPXRBmWck8coqEURJzsynQr4BBIBr4mktNaI50UXMH3FFLgbqxEaVVxqQTB7N0zS6QPJhASRTZsvBuKW0vUFvx3Pzvz+5/c4nS54S4nKh3MetRRsIucONtDzjG44OLF16ebu3Qnr3miu+Kyf1/86kO+9S23Y9GY5wShTHNjzAbR2QWxsJe7715nLoze5X1158m4FHp5YRb74kkjETScVlMHkAT6/ENgZxCvSjFwCQhDNJO9A2X959bOpkp9+Iq7LGPOA7OEHQfjXjeYHxVm6bEmmmDryNiHFQyiS+EXiAQ5CXP01xmqDL5IkpKymSrv/NiWn/jta59yjy9abMFFArN21Ofdx7prCS6fDjT6TbIPWxFYGNA76S2nDcbPzrpo8fWZxlZCz9mMPO45QbraAnbTCTM/93ffxMePjGvvWaETNBxz8BCaGxKgGlSTZfATbJqQxQlXaiibY2P/Umd6jQpzKOKBLx4CVWLxuM2LH5dRVhnR3O/3tdFqkEJQICJo1hiW+kByITYw7huzLex71e5XKUqELuxtIzzhc2DZcBKrHBBORqhN+O5//HNPaU8vWmzBM5u7/o+3ZVI4rTpSIK1Sf9dKYFuhFMhFMBGiOiMJHwMfnGx9QNgsgHRFoJuQYzm7CLIFt64JXBFyBs3C0BwjCBVmUaRZZ0EH5OjMrLpUvhGBEZQIimYi6IPq2HFAFBFdGpRBGMybfv8vw0gNp7FMWxRBGHj7D0/c2D4zBlovODArkfnTr30VL8vXkHCaNsLW5OTo0YCu565nHkBijyyBFAiMQQ4I2TJGN2nfDgG1sIoKe87gB1g+plalCAzZ+6U/KTJVWh4oqVEtMEm9NnRDrV9yPPbYKxPtpCFlZDIjMUEU5hNI42WoR4huaZ5pAuZBSCA1UW46djiATyRZ40yYBU4jIlFF+fsfu8oD8xP7FD2VdRET0ziu4xTIOq1UFl2WBCKZ2974Jdx9WEi6dIhDKdEIoFXrJ5TTryohvYOiym37a+694xJvuGufspm59tAtLuXE6++6xJ2rgaO6Ys1Vfuc9H+eoCiKZrIn92+/ktW+4wok1PnF8wm898Agf+OiDTEVIq5HmQXiDNJIy2FyxZliANSMpvVvjfaS4m/WE6X06SlumFfaioaPsu4IkIjBX0A5iJenda7EgVDuAt/v2BQDrB/wZBOg7dhjnvATOmc3f94H3MW0fP9XwosXXZ+vCLiJkLbzta19PyRV1J6uzl1L3qglDVJlOTkhDQjXh04SVQlEnaqA59fc/B0cP3WJ95RIlQRUn9aOJ7B0I6MxEXYDWQFKixeJFg/PODxzz2+/9ZJ/C8llaFy224Mnj67zE8FSV1QkqZMn8la+7g198zy1+674Ndx8m/qdvzthUSXv75KhodEQgIlBT8tDIreeE7uso4EJOmQSkCEQa3jKeGu2W4Mdr9u9MSDqhSUGSECxsUklocsK8g/HA4IUaDWtBMmG4BOHKdNNIaZ/YO2ZU2G6VyIarIp6IqICgqXtabqMu48cL5t2TawggKTWMOoEvo6ff9cAh/+M/fYg5dpe2x69HSa554pLzheqZpTzJSz5tcPTz829928uRBjfnmZwS0RqatDdPvE+XRLu3pLstXV76OSpp8Tbrh4oLy/TNBTKIRK2dAZUSyGLSHjvJowvhhmalmBDSjW3NOj0ipX72u/iSN2U53zqg5gFZ+tSx4xMjp8JeMfZGmOiAmmsg24SWYMjCbMHUBJL1C34IpP6cRfWUWbZjRI5JCemi7L/2o/execwgjRdS7np+r8VkcIG8RTp4+qbXvYZXvup27r1rn1VpWEClMUjgktEGjWDMA5HAWXNzY/zMz/0en7j/IWxumHSRc6+5OuDwXK2LFl9PJbbOAKxHyTLOP1e/36iQS6KI8Nf+wmv4trccsH04ePd7Mtduwab2vLRxQaTfhjTo//9ZvKkExHfN5MDpj4UpR0fCbZf7z6vNkdIl+uEdeEhAi7TM/80MRckK23CSK6rdq0iGgkZmc22Dpg6W5qHnpemmMBwGDCNWAwlbgIr+Wr0FKsGmKjkZdWFgewgp+iCzEsFf+T9/8dN+Ly5abMEzk7v+l28cyV6hcApygtMalHWXmKKNPCaILg0Nd2RSXPsZKRlyKhh9Qm+TRm5LvWXd/uH44aDtNVaHUIpiG0c1oUXYzhXJy53GhOSBLJJ+BUKVuhRz7t79KxfygzejSMJwVGDeFmLV7WzMfTnTM00yYl3qiBruBlG478Yd/A//z0NM7emxtF5QYFbRxF983SvZH6+TamNioIiSdAYfUAM5apQ7FasrkJmkI1qOURlIqbNn8mDEtjBhDMMW8iGjbKgpuklbKCsdwDY0HWmpko5G6kGmsEEVSh17B1lAPLGlodbR0CZBmldE2hBWaCGUVpm99EQa/aIuGMeeSaa4BWMzrPSR40lAWsbCqbJBbaAKuDv/1ycf4b3HTw/QuoiJ6ZSZ9bg2fKdbvv4rvoK0yA1S7synmCamyVAKOgzsHWRElWEoSARJGtmFg719vubzX8E9Bexky14E6onDMnLoiQjlwzfgc7/46/i8N7+KeOcv48cf4r6PfpxHbj7Mgw+fcHVrfKgav2/O9ZsbPDkthJDGwZUVkdbUqWE2I6IgSt1OQCwj5wWx1r21wokQavRphbL4Y51OO5ROZ41YWDkieG2EKib9IifhnYbKckn3M1N41aWrfU6gKdIfO2U6OGzniY++/32Pey8uWnx9ti7sKSX+42/4PPJJIR1Wivdu4b6Do4Q4BujmBC1CkOmQgHXz/8iUBEkT1YyTaze4cvttbCNQrwy5UK13C63NVKsM4x6REtPRhoP1ATUZtTZWB4dMFW5ulH/w/z4xI++5WBcttuAsvuT040fL33bEul1aUzLf/fX38JUvucoqCid5n/24iqnCiaJ7A8m3HcDGSZsEJTPo3AGGBHPbIuyhUshDRauSXSjiIBlDmR4QVncF6AQos3ejb10JBagW5NSBtbq8gsAwS0BDNopKNwsth9G9QVRJ4mytA+hSoLVYLvy9s2gC0Rx8IOjG9aKGRzc03bYOkjQ3JGemrXCNl/L2d3wQ3LC0DLUITu0Sz0ukz+/1+cfg4sXXUwazzpNLlkAUEb7jba/irlVlO8OowtaNYos/2dI8WS0yF3OIFKwjs3XrZ6kqgrIbQFIJBgRxZY4eN+sUzE1Bu5WIKn0gAf19tAhGAY3u8ZhO+dbdL64t03ZVMoqjkiDs1Ax5rg1RYchwPGXaJhiys14lZu2X+pONU7KQhh4zdXZkgBpgBmMWavQm5EgiRRCpg3VkxcOpAe/+YOOHf/3+023t5+zFii341wvM6pNMOxB6zx0HvPUtb+KuOzqjUIMud11YfiELOOsQEqScO2Pfo1OlS0/GkfqQDNdGItF8j1/4zY/x2//qg7R6wtkM61Me/bO2Llp8/VGxpXRG56d8jqVwV1VKzqgGYy6864fexPH1ifvvU64/mHlo48xVaMs0Fe2XXqJV5gaiClQ8UvezBMShSv9blgZ5EuXWTRj2jNXQ/UddgmR9sIlRaFZR7fKvvcXeZNt6zjNXTKPnpJNG80S1RhEh5WCVC7UGETMMA9GMGsqgLOoLwb3hkWgOgzZMBpy2DGAPivThQN/147/wab8XFy224Onnrh/4psRhDbbDYuiegbLY1oQQGkgOXINSEjWcVcqIVsSUOFbayhjzwrxbGsohHfAaNBEYJw86syvDbYomcGskVYYM0qAhnek+90aOJJAFrBJJeGtM2okMRpAkQVomKtZe5eWcmY8NXwWm/fnw3phSKYQbJoYw9kEssaVIkH3FA9Me3/+j1zh6Gp7wLxgwS5PyHa9/Bet00hOT94kOSY0IZ0grshlxbOT9Q6ZygrszppFUuj4jLCirYCWZ2frlIssAOmMKqiuE7rlVxsSqRh9kn53mBU/KYM6ELUmr4PMRJa/Y+EyqIENgc8a1EmS0CRIjjSNkHpF0QmLErbL1fWgzIkGrgkTCx5nwbvidK0w0minZGxbCTKfA/9zVI37j5uMZMZ/uuoiJaRz3HtV7393J9fBeXveF95BSQqPhc6O2xUg5rdk7LIypf2t0CgtFHTA8CpfXhdfddSf/1t13sopGmSt37Y+Mtsdd61u0ehe3XTpA3vAW5Ku+4PT3ifvfT/ze77P95Ed43/s/Tr1ceNfD1/j5370PpfHQdmZqTvWET1vcZkoKDm7fx8seVhvz3CC67tpbI4l0NiDCDEx16QKaLWypfmFy63r7Zp2xZbWRNGGLpMZF8eh+YALdyBLvjcTuyIvtChxZJiUuplxyTpbjEXzwPY8f83vR4us5vbALy3TVyl/6pi9hmo+xE6Wsg7wU5/taaQYWhomit05gXUi6TL7Be6dQlayZosKthx5gPg50FLSsyEXJYshYaF6RlPG6ZhgVa8fUI0V12y9uOpD3lSR9YMXV64l//LMfoC2A2nOprLhosQWgqnF+auEOzDr/d16ULEmFb3/Lbbz55UfkUigyoNoleeRG2Ro6JpKk7tdogfkadNs9tJIRuWI1LUmwT7VRmyhRyDjIyHQtM9wZaN7QrOcLiYREgrxmSFsS0ZlUkqh1g7C3yDJOkOmA1Da0g8IgwWTdEBW6l8lWZ9xGGt3XCAJrEzl3DzDx3k3sJtwTEgfUCi5bXIbFg6kRKWEt42rc3NzG23/sD5kddubuRldSi3BqEv7YCZEvdDBL5JyzzBN89W2Hmb/8p17GvPHFuL0PKnFb2FABqt3DI+js5hnvLAYP8o7hxTKxUzrDIUfQ5oQkQK2DAdK651XEQpTub16OIEk/93SRTrt00HKVBEL6Pa4t7OTFQF50UVhbUF0YxoZZ7nIfEjdu9jlOBweBSffUmo+FnHeSiw5mqCZmN1Y5MUeX+md19jRjoaSiXfaYnLlm1gLf9WMfA0ncsYJrW6e5XajYguc5mCXnifqJ173yXr7xra9mYMtsS4MwGZmExQJe0X3Z2vK9SGcOFu1MCcVpUbonkvTaoheHvSZQd0w767+h/OCP/RoPXXsEos8KezY364WSu7oT1tJolcU/4XRne4I5ZWItCEEpwpgKv/+jX4qcbPjwe5SHH87c3MCxCVMTtDWadUVDFidr976awpHgVHY45GWK76nnVpd6eQhJBUW5fg1Wq4nV/gDRz6BAySWY52DQ3hSARG1OLmevxYMzcKMZLQIPJUmgScnA5gjKAbgmkihqxlwrLTJr8W5aj1C3jXEQhMTU2pL3lInge/7Jz3/a78VFiy14ernrf39bYr86aRA2sfg4StCsN2HSSkkJWgpWpeDF0OhAkk990NtqFtpBoRKMlojS6z3XrqbINIorN68K5XKQBsXCOwt57oPt9nRF1S1z7XVdJlGZO0GDoImTDFIqbL0t8tUuQ+3/MwQ3o20zeT8xa/dMrd7rQ7cuxU0Y4oeEntBUCa+LDYSScmWqt/OXfvBTy+w/1fp04yt/xj/hebL+8hvuhrgBLSMJNObFk7Hg49y7cRr4lT3skRO4kiiRMHFmjIOcupRBodLlZCUrqc/DRLIh5qQCHhnxjJeZ3CqaBor1qRe37JiiB71TbYbqCvfCyitTSuRa0eQkGVFXtrmy4hhtBVtXxpMDplxJMiJlgyRBmlDmwA9mSIJthJyUlAKtI5lKySvaXCFnJIy33nn5aYFZF3KdSgv7ByGZl7zxS7nzUJHWqFMlIYQk9i4NnQkQ0Qt66cWUpoRIdK2Dw1gETYm7L1/icG/FKhrrYcWl9cBw8yq37h85vDIT+Qr6lW8498vMUBy56xKrR/a49/Neyvs/cZUPP3KLfPvI0bVgrUo5yOg4gK8oq4EHHpy4+sA1kh6TFS7ffQWLgWgNS8Jcuzl896TpiD+SadrBWok+dCBpN81NKkgzUk5L11q7saQY5nIKREhaDHjpviN4oNIQTQtI1n29lN4dT6K0MJ5TFOOFspYO8Z/+pi+HdoK6UOeJdDDSqjNqEDWYvTLkTmN2jFEzoYbhDJopS5GZ1JmuP0LiNm67VyAGKsaYBmjObEHyYHrkOjJcBxLDsbP/inuY2ozXBidGzIXtNNFEuMKWOw8G7j8B8fnFKHiG1tk+LhfkRVYo0bt1RPC9f/IlvOrSw8wtkcRAoVER6QyYkoykCeQEl4YfD6wOK62CqxGRO6Ig2mWq9KEQogdICJJuMl3tZu1FZ8IGiq8I3aK54LGlDJXaGiOXusQwtqhcpvmEBSBrRAP2M4MMzGzJ0qWEufSJvln2FkmOkBZwvpSxG5Ja0OiGpiutmO+DBikpyAgIZo3EsBiYBj45l4br/K9/5jb+4g/fQmh9st5OeuFPttec+qs8H5p+n40l0Js5C+h3fnNUlO/8ppfR5oUJtfh49HMDwjoIFWh/7xejd41O89VQXJZYXqQ63Y04mGbIJdDUva+oQU4JcV/YyX3gyuyB07vKqgld3OPy8subByn61C8XWQDgfr5b7Wb1WSGPhkgvBsOhJePyZeXGTeHGTeHwjv77p7USG6AsDLAUNO+Gy94clW7RvD2pHB4WXMCrda8UMtNGKYfOPZcKf/UbX47VFW9/xx88l2/pC3sJSHRT5UziW775q7l3b0MCNCotpMturINUFcNdKOEk9YVB2unnEUpJQrJ+D4qs5BSdg9qWyQPSx+iItv7DvfsHZkl8+7d+CYbyz37x/fzuuz+64C7P7Fj7F8rKjwKu5Ny/H71kGfmrIohCycqP/M038uZXC1c/dMT9H1tx/8PCJMK2Gc2037GlD50YCqj397sZFI0ORokwpp6+Ivo9u48Z68kzLb9SJrjtdufkZIWYo5leU3T5BEXSYtjugDOu6OCCpD5hTvoEV/NgCxCJnDoYmqXn0FIyhLEeElIS2w14M/aS98+b4yhEAnVaLLkVA3VSLvz1b/wK/tuf+JXn4J27WOvt/85A0kYelzNGIGWgwXol3c8RR1X6RPHqFFUoTlaIEDQKOLjOrKQwlMAauO4TeoyEEq0/RjE0DaQshC3m8iMMASlmNg5GYpDcZYtuqILjDJ4oKbGJugBZ3SNOixNRmL3RNkLab/jChFY3kCDcSWlhmqniHHd2YTSKZnBdwLCBfU74819xJz/0K1ef1b3/15aZNeiK//Lf+ByybxhHw5v3wloyRLBWxxkoeoDrNQZZ4cczsT+SSYg4s26APca9IC1+DabdyLEkUFaYBCkqmld9ljSBSmey7A+CzkZNldlXqFdUO7LZgCQBtthFxozImlDn/2fvXWN1y7LyvGeMMeda32Xvc63qunRX39w01wYMON0hINuxkR2QCRGNTAIG40ACdmyjxMmvJI6JiIliWUK2IllCdqJIwcFCJDJEyo9cnECiJChEGEODYwx9rVtXnXP23t/3rbXmHCM/xtqnqhpz7UtVV9f8U7WlU7X3+ebc8zLG+z5vm5WIjthEbxXRDq4wH4m2g9KYfEIe7NBBOG4zkYp+wrvRe6osmjin5hQCX6C7EcWpXflHhwM//rF7v+u5eD1W2V+uzNL9E7zj856giEDZsNkpuh4gulryxB01BSuYBKUUtOThWFRpLtzcCLjw1e94K+99yyPsX/gw08dm7r7tK3jq828it58k+oh+7fs+4adZiF/63+HY4IUXmR48z4/83z/Hz33wOWZvWC2AcHowIfOUD7khYBgJMYZxg7eFjzxzYnnxeVDn9q0K4znL0ul9XkH1a9dmBb63dg3X7bRltQSZPFRtrW+N9aG8Kq4iFVa6Ph56ZOf9WhFCZIfIe9oYVVew8toV/5Vf+sXfMBevt/X1meg+C0aIsx1HvuObvgDIjijCAAAgAElEQVQ/nRJCHMHh+QPbuxU61No5j+DFFmwLGf/84JLxzOghlDJQhpFlWbj46EcIzrn5xB3cMiWnRGBDTUtqO9FjxBDa4eP0Q2e4eYfTHBwuDnSbOTvbYbFKmS3XQhHBtXC/DfxXP/UB3v/VX8Tf/T9+ea0YXKO3Pz3j9ba24J+9vuRl9rhr2Lt55ce+o9Gl4DRsqcg4rP9BwxBqU4ZtFr3nMM40u4bhldmDKp4XWmraH4i1mN8YgcPTI/WGUfYnXGHUgoUgFESD7pFWwIClT5hsMFMmroCCdOCywHZmnoKqG/q4UAhmWipudABRImZ6r6hUGnMGUQR4HJAYaG3C5JwuJ4KJGSd8l4WIPuFRkTITPqC9MWlDZcvlUvgLP/qApcdq87hWpGZ3HdYCzkPl20vFrNfb+vrt9q5XpBh+4ttQlP/kT7+F0wLRwb2t6UqaIP+A0pVe+qpcSOZLBAwSLEBZYfBxPQfkWdIW5XwXVLUsqEvClUcLmmT0vEja+0SNjcAiWSjLFZ/FiOtEBNHcm66zeafZKUXQAuKSqhh5yXLUPciAV2FxOJ0K7gu78+TLlIBpVurQWUSYp2BbVyWjKURaeEM0WXMI1QIp8OBF49at4CRCmY3dtvBDP/nr/NMXptfV2oLXljIrC5jCWx5/hD/5DZ8PksyX7p0SGTjgOH29y0h3SiGrE1wnOucj9DoNNcNT1uACQGvBRFncCbO0LS55Z5SVnRYkvrVLISTXCAjR4ekXgx/9iZ9m6Z88+/YTx+tx7zK1V6Sshq41oN/4Z69NGZl4WoRSjL/3H385732q8Su/XHjwbOH5Q3D0YJoisRmee1JvqxVRWQOUOu6FooJIIkGSJASDCs0hW0FZ0BrEiLIGBKyoDzWhNePwoHG271gdKZogeZFk4KJZmHJ3lgmKAdExM06TY1VXxEeurTZ3aklFl5UFhpEW4MeFaB0pRm89G9M43gvSJ0qpBJ3TomlTE+UQnf/gJ376dzQXr7e1Bb+3vetvfrNhi1Nr8seaClsPljHX4BAFLT1jSwzGmiE8ZX+dMLim5XqhHxqyTaty1coyTcltLEal0PvC4Rlnf0ewYcPcD4SVTJpvAxYzasoSztJAasV6wwXMO6YjSzSWpaFDxXpnbh2zApLBBvOVonuQENyUviwgwhKpkBYxwjsrnYbmiklaWZG6BmILFkqlchnwvX/nwe96Ln6n6+u3NhW/RocgfO8XvpWdnKjlRGFDeGBp96SI0BlSd1ZOoDtYQG8NxMePFHWaeqbWmFOsU2VLUWVUZ7CKmLEVZWMdK5XwhlnFrDJapZSK10pXCCkUEhwqsafYxGjKKLARJYYB0Q3FYPaODWA6IL5bq6UJFMQqbI2wwnC4wbANfGzgM3VzkZ1GMdwWRLMHuTHDZKDagBVnjAXBec9+z7e/+e6rPVWvqTE++QW88/PewtmNM7ZnW3Y7SbixOlXT8lCsMG4HRISqyQxShVKMcRjy4SjBEgVEeeaffpBf/bkP0e68nce+9Et46t1nyHYDb9og94688gWwENMzcONmpnjdGfmZX/tF/p+PPMfl8UiTkoegCTfu7Ij9nu2NHcIWuTgh9+9z9dFnOL14n7c8PvKuL3ozT/6+t3F12nF88YJtmdlstyDGaIURZVOVsVaGIhSDugSixlhTmmyaDIBM7w2KKWW1GCnXf39HNdDwhNpKmn90BfGqOlbWC0Nn7RC8Zu6xn/UjqCjCn/z6L0SvL8eRegSJYJSgqFN7PvBMoIQykl0UPNiMG4ZR8NMFh6ef4eyRp7j71C3EGqaw2w7oun8O4wbqlml6gPUD7Uqot8+I6pRNcOvJc27eOON0f6b7EStCtYKh9BCW1tnozPf9iad4090jX/LWcxI88pkD3r5ehkh52b/LSwJTXqmUadb5kf9tRLygsSX6BtWOWaeUyN9R2ULUhLFPjR5ZQJo4JVfDZtSCWgVtQvQsM4WDH7aoG5v9kvDbNbVGVUAWmhpmG3o/4d6wUlDLPUVlwBipl4btHIpRt0bZCJsotAn6IhQdQCdMhaLnKIaoI9LzgRkLhZGgIYw4E3M4RIWoRMxZ8GobytApekb3CUMoPiJ9YWvw177lFl6FsqrcPF4qDD78bHn4/vmcHa/4+79sOxcR/vVveApva5FoLQwsdKLFwwLgUh1bmyIln/EQCTHOJolnNHxkESxQqgqbzVr2bmvBkev8OEEIUMUVqimDxkMu10B2jL23vFy3wFU5znCcYZ7TtlPHPLNCs0ipkSnXWfB4KL6mKVQLzs87zQf66uxv4pRdqm8ilN2oqbwIz/PPHfH1ny/72WnJNZnDiKNiVXBrfN8fe/Nnako/N4fAu9/+FN//XV/L+//oux9ysPBOcaF7p/eGtI64w9KQ7kgC+rJa2zNkRbxB7wlSpiO9Ye4UAWkLrTdwJ/qCeMcsC7bSHJkbMTdk6eiyID3QWJJhI5033YV/8zv/IO9465OpIHu1P7fX8CjyUiFr1XR+QiHrZU/b9bM0zd+/97ztjGd+7It419b5wC8UPvrBgWeuOqcWLE1o3emL0DqkWacgIvSeLgWNkntEViAwUQbAQlZWpDLmBZmxGGKBidMi34oKDCEM5ty8XTheVWRplAJthcdbsSw6tUyPG4drNZkS4ZQh1YEOWLX889shmwTWmE/O6bgwn6Y831SYW8MpuAkaaVU7LRnK4h5UbagKop2iwvd/3Vd+uqfxdTGKwN/6xnH9fQcIjkaiX0ZFPEMIXBOELgJVs4DNENk8tkBM2JQt3p3KBl1Z3tEE04FqsKkDvTXmYzpohArWUTWGMuB9AF1oZhRgYGAzKMt0SMW9G3OrhC7ZsFSBlsXz7VgoKEUCm4S6d0pJq3/vU9qlVXFNsQLRURU0FOmaYQgsa0MyVYCo02ViZmEYL/jhPzN++ubh0/Z//jSOP/uF72RT7qNSsWr05YpiFSRr4R3HrFEYKAjTDLqHqUxs3jLgzyh1V+jjwDDOuDSsLLgFwoj5CHaVVXjAbIBpYXtWieiYDrRVvh5hFI0VJmi4Oeq3aczpk65gdPpYWObOMBgeR8TPKBaEF1ydsoDLiLlxOQd1MI6jQy1sAmIyhiKYpBWk9YbgqGzpcoGwpYTSpWC14UvwjmHg6x89579/7uJVnrFXdwjC7S/8Sh6/vV2hxKs02COrytc++gjqCh/KCG+lqlHGAiQY3axSSsA8sQnn18yw8cjn95mbj95Fbp3BsEGOl8RXPklwQqgEB+gnmI4wbAg1fuLv/yQ//vMf4diT87Gjo93ST+1OHYX92Qhd8L6lzxP+4MALL1wyXU7stwWK8tTbznjxhcqLz75Ijytu3tpCHamSgPh5biySXUIdjK0qS++YFnr3VKStD+XumYiWPAgAX60jgmnGmV/bnPIt7Q/VXQKg+TDpETzyyJt4/vlnX51Jfx0NkRNvf8ujVJlpAcVXSH/kZXh05RTC1oLJ08KAgPSZut2iJRhKcHj2Ra7uBzeeeoKhOFIKYUMCiHusVlOhaGPhSD3O3Jtmbj9+xtURdqPibkSfKWPhxqMb7j9zxfmjgrNQ8haGt0YN6KE0Lfyh99zl1z92xcXUWT3gb4zf8XipABiRhedYnRS6/g5qCObOzz4dfIctWKvQZgYc00K4ECFYmYjFqbVQXFh8olhl6NDKia0M0DMVU0bP5CN2qHXmB53x0Wu7WWUogbQ514wargtzO1G1IFLpFuAd0YEyQZ2CdgZQ2BToIbR2QM2wXaV0ozdBTwMxzlhpWHEithgK0gkXegcpFacnbNkSSkoHLTNtCbR2lJGIGWPDTKOvgGa3I4PCX/2mO/z7P/48eNo1r5WppJP6JSj853JR/tpeeC1TI7+G4ImbqYKP1hLiTrAVo5ujqwdWPQtcdZUPauYvM2jC0G3lD0UPCpppg26o9XzUSQLjB03o9uw8VFgN+WpAgizCQ7K1XOlugDIOkY2qjeak6sK1B9ID1BWpufeF5u+Re4abGGTwicISwebMmQ6ds51QTWgeVDcuPdPCtAoSSpdr7Hw+sq8dRA+VzLqy3qyjDJgXbu7e2BM/PUPYbzd877e9jxIz7o3ZHcIR11SZe+RjU1vebbwhPR//3pf1Lpig7qGTlU76Q8UWZlk4Xd8KElmMIJSgEZpQbQGkKNaUwOndcV/QSKZfyhohWuMbv+7duH4Rf+NH/se0FH0GUw8/m0asijh5Rdnv2mboq2o5gyUyCVX50nfc4r/9gSf5hz8/cPh44cX7cN8jmYveKV3orG+6VWkq6kzNGCwbvHlHyu/ZIhWneDa/iaDFalleq226qvKKBC6ZW7isaiqLzu07cLww6g5sSCt14jxyfywYHo6os+50aGQYU+8NetCrUVtbQzeUZSYh4CI4TinJTJpmh5kMQrHk+VXpHDDOta+BKgV1eOzm/jM3mZ/F44e/uaLzxNBBTPJNpYpGchWrkgE2NZN1s3lTCGlUS0iLNqeI0e3EgABHTJQugVhfG3VCLAslKn7ZkbsVHdK2P4wjqiNSjtBHZF2X1rKIZvtd2gtPiXvoF1CWICj5GxPKIsGmdlrJQlstW5CFpQgFZenQpLONDCLIEJ3ATVIY4Y5j9GiIeCIBtFCALgv0yrkO/MC37vkP/+7vnaH1m43POmXW+z/vXdyozzHomBeDeUMpI9TcwEydYWNsdcDUiSqUodIkqBQ0FuKxoF0eGQYBmRnbhkqjxEhZoWUiIzYWnLMEkg57RBrhE65HBnGaH9C4xRJQimC6TebVsFBQrA6I7ZC6zYKASX6POIPqmA74IIRUfBCkBF1ntpMS5w32UKoQ2nD1lL7anBdsS0//Rg+UuIHoQi+ZQNe6IzajZeKrbn76KqGfLePt730fj90asmqerVKKKhrBZihoZBc1SGWWVmO0tK4yJE+tdScI2jzRD2nlu4eweOPXnn2Bn/knH+Dp48eTNTUI/ksfSInM6QWiP4/4AQ5X8OAeXHyIn/npn+LHfv5DXM7JUthuSyYq6sJx6hwPJ5Z55uLixNXhxHy44vjCBVenifO7tzh/y6NMdcPSldNHX2RbJt78zsc4f/TNPLg/064u8FKYfe1bTQuhaxdHWROkOmOBwUBXW1HabfNzq5LdheuyVQSY+Box+1JZQiVlsh0oGgnhBe4+cuczOc2vu6EIhbQv/ImvfgLrjoQDDe8zg8wMnjatM72+VxtiRkijT4ZYAy2cPn6P02ngzjvfRNkUdKjUusHMEVVqtUw5dIdloj/3Ila3nD16BqFsdgPzdMIkI4OJ/FnqvuLTRJFCp7J4p1ryAsQEpWMsfOcffyuvIdfJZ834xGLKtXro5Wl8kM2Uv/GvdmrP8k2tAXS8e6b9+YJzQqct1kBGy7CSZUSkUmOE5phWvI90kg/Ze6Pdm7HdOWVjWAwgC7hS2KA64nQ0KoPu2ZSBsRSs12wEtI5dGR4NjwWRBW1BcWdXzrACSkNNKDWwM2eohcaAn4T+YEZPjdqDilFq0NucDz9paG8wzZTusFS0K1ZOwESLhegVp/BSiIUzFOGRep+/+IffjFnacWM9F/yNJfqKIQ+rfOvXJJ9mLG2N507miml+eBawiZUXQqYYBoKsjCslAMfI8yI5jsnOki4vNVUkiwJFs4AukmwrXXUYslpDI3qeOwLFDQlhqDDUhtNZIjklXYMuSqwqC10TyISMClPNB2T3fIBch5pMroTDvjQI496lsUzZhZ4MSmRqZ1tTZAm5TifEJC23p9Yy/VDg1IzlVNnVQutByMJW39DgfOpH4c98+9fxfd/2XiRWXhX5KGxzh95QhxId8zmDcvqctulo0GZ6Dyw65ql6zoL4KZO8Wie6o56BBxqBuhB9gd4RX9BwrHd691RrtQ4sqJDso15oc+DTgnpgEbgb6s4Qzp/65j+YhSyxV/mzfA2O6yL7b9Cv5ddpLU4llhao1fjIf/cV/OR/9DZ++ee2PPdh42PPB/e70OZGb8K8CActqOScNk/mnmDUNahCwmieKd8lw3/pCE3XwqZmExwgWlqdfRba0igaFCRzpWMmrjrTYWBuBdkNXHxcuHq+sRwXXA0XKN0zzGxVrqoKPQL3jkrDLIHguiwIaX0MGpVMBi5I8rCkoALbQRjG/NmrwTg6bQo24hy7IZZK2SDQAje2b7wff6vxniLYaUEti6ZF1/UmDpZhDxrpeNBIlI1pRSTPHW/K3FlTUmFUZReFcayMep7sq+4MxaihGBW/PxNzYagNq6RCqqR6Kh4U2uFEvzrRTg1nglOw3GtMHz4xXVasV2yzQ27v2D/5CJsn7jA+umV38waLKm1yzAdibhlgEkbRdK6ppMr4Gj3TcEpPHqSWQvozDAtN6+TSs2G1sprVZp46O3Br96nf0z6rmFmfd+MRvuXdFZbVc25wVqA3YbATPYRQYBkYa3bIapGE4Kol2NsaxEwtFS722PmSk1UlyWmaYNJxPNHbGZ1jKraOO2TsnJXKokroRD11jrKnlBOnqaEhae0gbRWqwdxPRJlQv4lH+qsH0lcavdPVsdjQ+5HlsjEcN8itiWkAlsYhQCIfJb4o6opPyfqoOoGXjJUGphaIjqgcoVemWCgdpgZ//cP3OLbf3ov/evQ/f9Uf+bow1Tx8RBmKrgdSp7sz1oquNlE1xcUoOFoEMeF4tbDfKvNpYSeVvqvpl/fGMs0Z2ZzZtuwN3vfOx/myofKef/7zidbZn+85XB74z/7nf8T94xXPf/ySnQmnnh3nzSZVhafTtHa1M2VQVBNOr8Hx3kS9sWOojsiGdjhgZtg4srgzTxOHy8bOJ5opF5czowltmWlm3Drfc3V5opijm4Hjac5Lt2pezERSiRhrvytWUGAoS/O1EHHNOEk7BvHSwwISsOv9mr+VlpIPfOADr5iL19v6+nRyQURht9nyb3zjuzg1uKFB6wtT7/RlZleCw9Mnzh7dcFaDg1boDdQYreIvPo+e7/AiyFWl3DA2JZgZ8ehsx0pfFpp3HMM0mO69gNme0IluO3SZaJYBAIsLo3Tm1ZYz984y9ewuLxfobkQswdstZIWWpu3oV379gv/hF17g03ncvN7WFoBqHtEv52QBq905mQQqhR/+9tvctAcMESBB3Fdu3F1ZVjrjS0lY8ZWw2YxgILJQXcFOqGwglryIqHEilTft2YboLbaPHJFY8DIQOBXygh+BWDYK5t4RrzQ54BcwykjsR8Q60+mAtAEbFoayJWSmr6yiQ8sCRzBjzbLI0Tb0YWJZNlidEFmQtmFaZrwYIgtOApqXqHTPx4Ir2BLMS4EYCDnhAkKqUZ3AKrSlodr5wZ8a+cfPH1leYvA+/HyJV+oIX2/r67fau/Tam/PyP7E2N37wO98KrXNcPBW7IvS2hn54JOwdpZKWvHDJYuJqDVLJ2fY1Dt5UmU+VcVxQYgXJBl1hE1kkUmK9X0EmsuYelGEm6/9nhccXU1pzQljPNcnUxPCHDK08o5xSEtitVphOsqqmPJOlCE5LUGtaGqMLx7kwHVIBcXajMU/CpiQD5+BORfCimTzdje2QtiVXoXWlL8HuTDgz43QI7AZsNfiev/1rr6u1BZ/es/E3G2bGX/iuryUTpyOLU95WEHewnBrgVBOGcPqq1FIRWusETpsbpRSqdcRXVVWsnCxL1V5avjM8R7SmLdYjlRSaLKMIUDRViZrWuC6OUunqzK50EXxxhmo0UY4tra1asyjSmvMz/+/T/J8/96t8MnD419veVbWsUjge7lHZd02ZraoilmfUx3/yy3n2Iwsfe3CX5/7JgWcvgmVOVUon94TwoIzG1bFTuU4tTHtYNdY0S5gjsmC0IkCbk3w0h6oLfS3XV1Om3tGiSHSWU2XcVySmTLNswrAr+NyoNc+nHtccNmUO53gpcOpI6YzFqbsB0QQUVTNadNqq4BJyLxQgTJivoJSZrmOqvCLAKtEnTI2IhHVrCKZwXDoKHJqgBi0cNUE8+Es/+g9+y7l4va0t+J3sXZXve++WL3/kAj4MfreyuRkgC1FTdVcRgo6VfHsGSjXP+Glyr8IzidC8Mahw9+wxbt+7Qnc3mQdh9gMPlhOLd7Y2sjx/5DQrsXGaG4OCy4S3NczkkRvshgGPC+YHoL1zbAU3WC4nekiGpOwmhtsj474gS6X1jhVhJm2HbXHEtszPL7gvbG4Yp6ES/YKie07LghAssRBqazFecem0bngsWNzAx0vwykhh9p44AWmoLPzVvz/ySx89/rZz8bpLM9xZ4f1vGeBSifOJgZ7EvxhgODDjVK+rQqohtWdaTsyMts0UgbKsNqiCxgAXQbldUQzXvgJKHR06bTrDNo4zMhTozTgTS6hnKYTv0OUFNmPQmrMZKt07bS6IKaVOQDCUDS1GVE7pv9YUEVYcTNG+Y+GIHzp727A8trDMwFwoHmwdDhNIHzISui+ENoZQRA11YZY8PKso3ZZMfJJMEzjUlPz9+bfe5a/92gu4T6/yTH7mh6mgxSjkxh/upNhbKZGyYbVMwxyrUEswL5lquZxm9kWw3tiL4VtlINDeORwmrORZOlSltc7V4vwv/99H+F97MP7KB8GU0bKr8/zFxNRgLKDbMS9baush1qjAxdXMOFgWhk5LSpQ7dG+cVyVcWJYj23HAw4k+I6qU7Z6yPEDqln7llLGj2z3TM89xez+w2SjjeEZz5/KFS2yTG2nvLUGlEam2USU8HkYcawRDUdw9k6FE8Mjkqlg/T5A1vjpWC6KsfpQ37BO/l3F9P9NQvvMb3kU4bKPBNLGzQoSzCAxl4NAvUNnkZXyasWJsijJsjeVeJm6ePvJxzt/xJNJnQvZsquDNMtK5FmgQ7cTFMw+w4ZxQ6DqgHmA5i+5QpKNk4pdHYz4d0VIxc4bNGfeevuL2k4UWeZGPaMxTY7vb8fwxoZEZQP7qN1A+W4ZQCNpLX8tLtiXz5Pd9/ZeMnLd7CG0FeAZRBrqcqBRK2xE2pyVYRhjAMumCJYIx9vnIX7u3IsooE5dPG62P3HrqRMVofcG9IUVIuoImSFYDmtLpDK7IlVA3IzEUtKZtp5Q8i5dZQY6obhBqCmX9sL4W8gF3FQLjFeqG6IL3LFYIecEOWWOk5Qh98zBSmlXdgFRqCdQPXE4CtWczywSJGe+pFOpe+Xf/uPFv/agS7jSRV6gHP5dX6fX18RMNPP/et34eLQ4UcYKCR1qkpujsxZgI3IPB1uaHr5/jGhaS9oMsipmBuzJNxjAuqXyGh6DtGhCSCUxFjDQArsoq4qHlsJB3oWl2xlEQaQw25F6jnuwqySIWLqv6OGgCvSlWY4U8r2dZFyhZbBurpKPMk++1qwvjLefefYUojBvw1rDrtdkj5WZiDDULWS1gQLmclfNNrI3HRrcsdPy5//JDfM/f/oxO7+tyvO99X8XXvGeb4IOeBhrxDpGQd9Y9QmX92iMtXTitR96nPFbVT8P7dWLsS4rCgiFqq80/7bCZ2puqvKR0rxB5SZWXIomKIEVWETPu617jQAhLa5RSGcSJdf01d1yMr/6yJyi64Wd+9hdexU/3NTpetknLtYtA03pcTPnZv/MefukXg49/aOTB4cCDKTjOkuEi2ugO3YUSQZuCvSq9pT1ZQhHpWazvloyhsipONP3pc8R67irTotfTj4dT1TgehPGssD9zWl9Ak0kbker2MloykmphXpSGUnSielDPA7mZlmmo3H9mwnTi1u10QkQLiglEQUqjKCyzoCLUTdAOQtl1umzYWMPbjI4VD2eeO1XhuBYhYoEYlcE6viabD/sdy4NPfRjB62F80Z3C73/0EmtBvFXQ1pk/VIjHlY05OiTXVoHQTI8UTZxLEcNpyVUMGBxujGc8un8T79jfwv0CvSEZg6g7HtxzDqcrpsPER1902AjNZ6IMHEwpVegxMvQOD45MOlG7MMcRPa8M+5uoHvHbA94WCGV+0PBfhQdyxMqJXmBzZ8C2C60bKgO9nSh3lbFumB8o/cGL6H6g01BzvPW06kunjANLg8huYro8OBLdERqzTqiegx9pjGgT/u0/anz/39tzdbz6lMzJZ4XNUNT4ti94GyEHtC7YqRDWM7nGpgRp9nMaUMKoEYgXIpQwA2loX1PHBSJqWgo2DxikAqA2UGthW0e0byi1gQ1sh3OK3sD9iFThTAuGYHVGNjsaC6EVF2OJwjDKWuDojDrg0SmRMailwmiODhUZSJhtON6PbMuecqOgpVLOKmWzhbOb2Fa5uR+o+xk5O6LDzGZbKNWIUzCLIKUhGljtVBeEhLZpC7bNERdGFv6lJx9/Nafx1RuS0dxGVm8zNSu7ZdUkVdwlJZQZNloYS2BzXlJHc3Ry9HyDRnZy52Vh2A2owoZMghOBWgRVY5kX7l8tPLiaeXBotFNjkASyD7WyNGe32VCKMqjQ587cHCuwzAu0nnX9HrQAq4XT1ZHoDVPheJoyFaeD905fJra7kS4DOgSVYLcbqeOOi3sTMTutNZYIhtt7YgLpfc2NzYu82XqISbI+ekAn6JHqGjPDTNdyhK/qLMHWhB/3jI8S4g1L2Scx0pBT+P1f8XY280JvjZ1A05E2d3a9IWQqVyclvI0CpbAZNxSH5eJA6AYLz+7c4pRhz80buyw0tUa0A/PpHhcfepbjfdIy1h8wR8dbY1mO+DLTpwWRDJpeHGJZ6EtnU7eMmgohJ7jx6BZpwjydaFPDZ2cYB06nia9850hcx4v9BmvAG+M3Gx5ZyMokv5dscOqphHz0rPKtX3zJYIK5opLJRJQF745RELnKkBErVIdF5rRTYbhWTnLkJEdMnC5HFj9yfHYh6Nx5akZZ0iZYjOZpZ+hioANiQ9pt4sTmwZ42jwy3d+h+zNho7/hyRN3QWsEbOnXoV0Sf6e2YxrFQ8OyUV7kGchvVlFqMBejaCS1IW5CuTF6zHCYJUJYYGGREu0ALxBTbdHwZ8L4Q0XHvaxpiVlncL/nL719aMbEAACAASURBVH8CAOvXBZLP7UIW8EoDz+ptVYEb44SIcuqWhQIiw3eiMAcglum/Ci1Sp2DhdDrEqq5aLZ144M0oQ8vGiKb9TzUVERZGNMfUaGQaXW+xhgHkuQf5fbwn1N3FM8lyaOxvZLFVEYaaQGVV4WHiiSvdIZo9BL9DsnUsUuERsbJRV6YXmj//uE8lz6CBNuEkirnSJM9HW61AopmU13F6c5bouINLQUL5wf/mQ5me+Mb4pMZf/O6v42u+ZJ/MM08243XBqXan9IXaG0NfkGVGuxO9Ed7Q1S5r3ol5pvj63xJIZDGs4y9blx2J3HeqO+aQ8L28s0nrFIm0FwHSWxbNwnmYIhDg3dHomPeEz0eDyFTY6MltkMjH8D/35XffODV/w3hZY+y6+C75Oz4W44Wf+GL6i42P/7rxwj3l/lE5ToIsimmDyPCtaqQ3LFJVGmKEGq6FYpKsvgJDEQYcF0h9n2AoJbIZUquu4SWCL8rclP15soR6ZIGtqqIoWhwZKxKdokHzhu2EceeE91wD5BoRwGjceFQ4e2zD5XHLcx9zkL42HVrWaRfNYsLKvSw+YqpUXfCV6RW9U8NBFA/DRAmB41zwnrf3PBqFw4uXFGv/jM/9c3uICH/+X2gUF4ZtKgBl16lPNYZ7mhiHaCiOlDURWHloX3VfsCKIZ/DY7fGcd95+C++4c4cYZ2Q7wmHMt1kMnLeBx9gxPNOpj5yxeUtnc/MO46OV8Rw257cYbxjcHLA336Q+vqfd7QzjmGewX7IsMz0u8GFhuGHsn9px9iVn3Pj829x42222tzYcnnXufSS4fFa5evqSwwfh9MHGxYcmLi8v8aHiF4a+UOlTR6RixZGmWFekd9Q21DJQRKmrMjW0oV7xfmASofjCdLUw1AN/5f3bT9m8vOaLWaLCVzxyl5t6SR3PsOoM+85+3kO9Q+mF2gpVg7Fs6eacFBYRWnRMxqxi15bWMYWRBK9tHtsQz3fKUCmlEBa06tTR1ke+YVYQJjbDQC0DUQdGWRCvDGNNCaEZmDGOAzFWStmwsUpIRmB6F6rdodoG1S0Dyih7tkVp0wLtBsMNUqm1alprmah6SBaFgclIEWcYjdIaxTo67FMmKgaScLmEwldKn6g6Ui05YHVjfPXmAtXPGjHep2xUITcOM4iMz86+MowVNkXYilIChs2GIp2YO+KdIQI9NHy3QfvCYEGfZ2LOy1FZ43uX6BjOtDjz3JhOjTrYal0RFjHKUBmHwv7sjCceucl2UDQaEdcHIQ8jdkfVFXQbVA1q6wyWB6iHUyosS6ezEKoM0tEebK1ncp0Vok08/uZzhMogJ2wYGaoiBNtbI64FOczJz5L8/gXPuHrIztF6GVfJIhUkhJrVHw7rJc3XtBVY1+C1auuN8bsfnZDOH3hyJKxQtTHEgkqm09naJVY6GxVGTd3KZhyyujmO1LM99c5NLl94wPb2OVILYsbcGyUm5vv3ac9d4B93br7jCXY3C5tbW6YJtC+EN6LPeUC406eFWCZUG2JBLLlulcbiji8L0WdOxxmrI3VI6wQ0SjVUKv/aH3rn+jB+gwHyex3ysiqDSvCf/ssDs23zga+ePKvYkgnLmiqTKJgapSfDQJqzSGfuS9qGYwCMORSVTabyti37xyq4I+Q6HKIyjnt674TCIkEXpy6VmM7QG1BuKi2cmA/EPNGbInYGKkwXMyYK856yVJgCjsAh4BTIovRmqVxoBaTjkUW54mWt5AWUDbMEuiSbiXnC+gbrkVahCEoliydSKMOJthjokqlUXKXtJwLY8ET5CN/0ZXdQ1U+rDfazZSjyinciazPjL3/7uwjpZEW7sVh6sEJBtaeV0AO8r+EBko0/MwbJdKUQIyyrWT0ULRkFXzQTtnJPKQ+/r0k+6guebCtLRbU7IIoRad/qviq2rtMR00p646YSGkhpQEs2FjxkY0VoYgKcVe2VtscAagEiWZo4mBgiyS7dbQMWpQssJtRe1mTHtDaKQpdg1ixotVVJVizBwF07IrAb3zgjP5khwJ/7rn8R1QmPRItob8jS0Nax1ii9YW2GNmPSiSU4HY4sfYbead7pa9FKnERIROR7gUzQLGvzLmLGY03ZbJH3HMtCahWhsmDSCO/gnU7Oc3iDthBtQb0h3lGfKb4q+VqH7lik6l889yoVx0IZcL7jW7+WNxpB10O5LrmrygpqV8SCQYWnf+yL+eVfqDz7q1uevSdczcJyCuYutNyVKCRGBFd6dHoknBvtsDoPJjdCs+DjoYiWnLtyHZYDUgSrRlmVmU5lt1O2m0DVUmggshbFg9BsRsay0HvkGS1KoRPTlPtQrIBtktfrqx1benB2y7n95srVvZHDczPQsnGjgsqqgG8Qm8BbQyUo1/vmGspjRoZgkQrvsWoGoUlyWqvC/mykWeWHvuVrX8V5fm0NEeFNYzZcpHQagRsUE8q2Ux5v8MDYHkoWsEhQv6T0HTVLPq1nbWNQ44vf/HYeuTMS5oiNsB3yzFGDoyAx4r/euXnrjLu3OlU3lPoAXxrFtvSWjFBCiRMshwe0Jsw+IT2Y5wukHyB2SO8cru6xHAWfLxG9JMaJel6RsjDcUDaPnNg+suPW2ypnbxXKo8p2d4beh1gKszhyFcTlwvEZY3524P5zAYvjcQH9hPUhGeUiiFsC4w0Gr/S+ZTgDr4W723tsS/2UzM1rurKhkkqrP/ZEQYoQ2jE2BCdkc0m9EsqNytQagy70pugWalFmyTjUarChctmEOgRhHes3KN6wcUvTE0NsIGaqnLPYCrou6xnTFlRGdts9YnCKE+d2i4GZNkMte1RhiAmTzZqYZHRpqBdKKOOucvKJjW4xySh0f/EA3GB765ylXzCVLa0dqVKJRXBZiKioHCjDhtCAZUGscLWdMoa2zAzemBdlWJw5FCsbej+wKZ1TnWnLyLB1/EpQtnz342f8yNMfJnyNyv4cGFtLAHDgebFdwe/barRlwVtkhKrBdHWgmlDGLUVmrl6cuXlnxxDB4kGfGyyNWjLtxtvKjVLBu6+WvLzTb8fK+S6hj9o7Vgp1HKHPzBeOmFAFjpcnwgTTZGxsTZkOU1b1XQiccT+ugHXwtl6seksrbW/IoIzFCDP63JG6Zb46IEPh7e9+Ex/+5Q8jdmD/5GNodFyF7Wgw7phn8NMVOg6EKREd6Ty0XXh0PNL81tdY9ULk4Y7Teh78a74UIdAiLYpvjN/LEL7qS38fd3WmScFjRGMiWmMx2ETwhIH3hYPNnKlyGCrFHa3G2X7L1fPPUM/20Ctnt88o24HlmeeZw9jePOf2W2/S+sLpcGS6OtDaDARlW6gMXF7cw8aSh6921NJGHa0THgzbgs+dcKMazKrJrCnQlolqlWJ9jQIIeoFbckxlQ+9vGFB/h+MaAwKpzrL1V6oq/IHH94g3Bk17wlAq7p2qRyp7iAEpmdwlnlboOnTmIS2p1baoLGkoXsHbEsLxowtnb9vRycIUMuExUs2zuSIFuYJ6mlnMiNsdQ5hRdF5SATtkV9GXiemyMe4K+xuVuTuynbi8CmRwxjEwD7p1mii2CP1yZPYOGtio2RQyIVyZ45TaTw+sNMKdwh5iRk1YeqfUytQ7IRVYMCvsR6VNRhel2BUeBccZtTCL8K988X1+6h8GNGEhlbt9taB/rpyTD8f1e/llf+033RwYLG2i0TuCUFeutjiAIhH06IQqnUw4ah5sgDnFciiNy2NhN0CQhaxU5gXdJTls4llkUqeuycIuqVAYaufkwhAVV4e+FqtMGGuh9ZlakhMqngzH/UbY7ipXS0fccF9YPI2yszdMsxkY6gwoiy+UsTL7TFGh9UBNaN4pZqTxJ5hdWR40zm8Zy1XHcbQo0WP9++ddoPdkMnUXIjqLBGMreOn8qa95gh/6yQ9/hif4dTDE+Evf8wfBG95bnkuRxSBaw5fk43nrWdzyxhxpHXWc3jp+7AwFtFomji8ti9/rI188MIucR9J6Rjc8AqRT3WGorFCA5C+tiZviENIoDiCoKcuy4D7kmrOgiiHSQZRTb3QEiVQIiaeiq4tSSlpsz/eFP/un/wj/+X/xP/EGwqHDem5lkSBTA//rv/JlfO1b4f/6ByP37iWi5TLriiu4GqoGcwfTFa2xFt1jvbuKAF6oQ6f33FvcQUumoJsMqHW6ZOFfVZgOIFths8kGXgLi8+5eitDXN4GK0DyFB6UI1Eo/ZsHzdJiTJxiyBjSlCszW805K7mm9ZxH11iMgusFduXyuc3ZjxsoGIRnKw+BwqgxbcB8QnwhRHtw7UXYDohnm4QS2EZY5m0DVIDzwQ0tl4fJG81FEsAjuFOEH/rAz9w6jrkE4LVndPe9YmydguupMz8LwRFBLzmVuLB1MkMiQunffeZzNmUBYpjMvA7IP2BpxscBHL6E9QN57l11c8Q69zT++/zQPGhSf8aUxDIW5OcqBQZ2OIqa0vaL3K00nihmzXzAMiVWK5YpOIbzhPuMN5EZlOc2UfaGUZCP3gKYndFeom6BHMq4kKqUKVYwuR3wbmFT61cjVVcfU0U1nPD/DeMASFeJEA1pvDINmWiyFv/ndt/h3/tZzPIhPbld7zSqzrrkxX/X4EzQxWhsz8rHMVCupeDlrTKeZqBC+Y6gFjTO8CGd2RhFj6yNLAMOCSaXowDjMsDHwCTnv+DHjxYs2tiiVYBjOqXWLmaESUPNxv7ENk820gFNXohpaFLNdVuBN8qDiDLMhIXpW2BWlS6fNJ5anj+z3b8JvVWqBUvc0deq4BwpSjNYF0Ykee3rXtMrZhuidolAqqFVCBatCL7k5D9L5/9l7t1/btuy869da672PMedaa1/O3udU1bGrXDcHX8pOKjKJY8dXLjYIAREgAolwYoQFSKDkBYSQeATlj+ABeIEHJP6GoAgJBSkvkFgGXMiuUJdz9tmXtdacc/TeW+Ohjb2rYoGpiqOc43Oqn4e9tfdeZ801x5ijt97a9/2+Kge6GzILVS8Uv0Jb4GvnnZszj+uKEbvH/OO/5s7ImGMiqlitlGKceySwUXWXlDtHDQ7rwnF1ttuN65vG6CPlx9PxSFCiSrCdB5BASPX0oMsYzMslbQanC/1uo582xmUQfTLuL5zOZ8YYjG1kcbWnGblPxCO7/irEnIzRk1E0RhbJ20BNsQiqKVtPGLj0gdjEZnA8FJ5+5prSU8Z+f3fP25//NL0H24tnmBUUpyw1FYXN0fWIny+YZREnuxJLZZ8qSSqyym4ryw02vbvypmVBFmIBRr5XP1jf35I9R/pPf+EaVaVpxRlcRtAJtpicRfERUBfMO1celDnAKmaFGRtsk+e//4y3Pv85tAHf+AaHR2/x1uffpdwYl/M93jf65R6fySCSCFopuG20q0YZkgeFUFSD1ko2MbcteSEBPfr+3Ik3cbzqQq2pSFRxInraedT4pS8+2jWRP1jf0/quZ3RGfOdvXBr/3q92xvNBEedoUHYejKpmauDZc8JrF7xmyqizoJuy6AEjsrBR3ae2g+29idZrzCOl8royo1JsILoClVUqh82ojw/YY8esEqTawGoBLfgARke2Rj3mPhXSMB1ETNoy0Ysmc0YK+KB5BTX0uLFcndA1YBPmnTPPDuKoFRCnluQfKQfUHDTT5kwsVYLhqA/myOf6CEeWwOxMlborlJODEgOGNH7jF99h2ne4gJD22U8S5U0g+Wl/QAHyH/1rn36jSgqghWaa4PS0+XkwxFktd4LX9YUiuDgxgtUUwzgUJ+R1YxSEiYVkQIGl4sIjuZZo0Nnh8gHdjUWN/ubKCO6pkPDoOYWUzE3E4PBQ0ALLGjswXijFWBawNhETpI59WCi4O9dHSUZWlN3+OOkzFQ4RDhJcxuTwYOJjyWYxhSjZAO2en7uxK3i6OItasjMlY87xrNseP9IfiG2+zyUY//Fv/WLyY2dPm7GD+mSOQVwmBafJZLVMEDsDLnnPejiiQSsVQ4kNxgXmRZAxkmUqoJI+PxffFcr5JGglMrW5ae558p20zrqHESiZZPiaXRzu+wP8Aj4ZY+Lh9HAiJibxuoAiZg5GY+d5eUwmivZJqRd++c995cN66z9CSxDdVVmaZ7P/5b/8Sb76xPjd/7Xy/Llxfy6cRzaPOmkXNIFtbzRle1xBJROd7fUlKFBGjmcFwLGyw7wRSk1Fp5qCGPe30K5362jsCq49saVKNtFSnRe4D1oVYgzGxfEZidgT53Awai2srdBqoKK7DTDPlBKCadbk7IK+kGQAPnrHOJ0WXn3rHptpc2U6ukC/BXQwSkWK0B4s1GYUkXzuSVDMOYTRSiFmhrDke+Y4g7/xr/7ih3itP/xlAUOF/+TXbwgJpAE9UJuopR1YauFShPuY2JVQr4TxSkEca2AhqOZ1Wak8PFTe/fRTYgCuSC1wmHAp8MqRb03kpx4hP/sYvRI4HqEZV7Rsv07B447JQGTDXZkzlewRZ9yFqZ04O5NBa5WISNxHQI/B2Jw+kgupbSJh6GUgczL8FSFQo9Jig6G0vf6yVpnD4MZZHz0gXiicHD10rj4t3Dy9po8DL75x5u6bMF7c48/AX55pRdhmIHLMmi1e8Bd+4R0Of8SN8CPZzHo9ja4i/MJxIrpR5BWrRkZGjkrMAm40W1hxdLmAblg7EUAvJw7LSqlnphiNisiF4gUpFbaGyMry+MC8nCH/L7h01G4Q4LCkn7qqUijU2tACUlekFUpJaxqebIWiB1QqVSpWQViRPQr6fFIuzzba+TGP3nmHOBi1aXJuMA7oDtENhnRaEySeIGUydaDaM/rVDlS7JuKKaoOyOmZBKYaGMWvHdHCsB1YbXFeYfqbX5Q108Dd+5ClTkpX0SVhzDDYPsD0NSWC4IziHdaFpHnyUoIvCuPDqm3fEsjDm4LR1tsuZPibqWURHn2mxSABRqpCmw2WwVOX6wQIR1AiawqEWzn0wfNLMqGSSTkRa8sKdqhlNfrrfcE3ZtCJcbi8UE1ZzSkyij73YmVythapG8cn57oybc3515tk3P2B5+jaXUzK2Fgve+twPcftBx+9f4t3xPvZoesVKsDy8wU/ZgBI0LR6praeoQOTXkCFWyRsT9imS7ImOeU+pCMWUT3/q7Q/xyv/xWxHBn/yxd4CRMOS5cVDnJIFEoYlyd+lsRQkxjo9uePb8JY8MFnHqWlEP6hi8/dkv8uCBML7+bdZ3f5h2LJz6mbld6FtnO1+SzfHangE0BTHDrFIfNMb9hs9JP3X6eTB6UNuCD8mCfb93PXKsErOzVNhuT9kc2faiSh0YfOXLNZsPP1jf04rdbpC/z19LOL/5Z66psXFsFX+R/07sslvlUj057JQNRY7JkYmCUmlipFogFQbCzgnalDkmyzu7xUWTILiIIQIed+jdhpw6463BqGC65PemUGvFPSilYGVmAlh3kLE3wHf1MjCkI21DT0IVR6VlARYJnK3lmIPM5Uy7maxmzNuAfmLMQe/5GkNOBBtQsPpaTUq+Bg2aOuGZAuXuzF7I5Kh7kMEYI1VfdH7+Ux9Qzdj5y3xCZj3/wHqt0vvulGsRoe+MH2PSRLhIsqsyKTIPljM0i9SZh/6xD2b6SMXS8AHztU099ollEK6Z9ufJ1fKdL2N7KpxJJEtL4KoEykCNTK8Wy30I9hQ5Z0aysEyV0wuIAbffhk6kNcT8TRNiaRMzoxanLbsKYyuMnqyTtJ1VtBgToWvs7C2jFcPKpPuGMfEpGcqgFd8bzxF7ip0P3PcRrebh2sfrPtYn8Eb7h1yC8R/81V/lcp7Mi9O74NvGPG+MSycug2rBGo7NQL3TyQa/aSpPimW4T1uDdgiWJWiLUGswJ5gMkEzM9Jk2tBBL+6jlr223lBaBogONicQGPvfBnyIKsbO7lKBIDs1NC0UEJ9lbCZTPXpeTjd6tp73VCGQ6MSaiINP4Uz/5hMN6/WFfig91vbEW7pber//3P8H6/sLv/XbjG+8Vbs9wP+AUsPnrplVNh0FkU+myCZtnI15JDl+RoGpn0aCI59gt0iGhlszQPhPknRZ3uH6QNF5R3S3X2UAXMVwKKmVXlWZ42JxgTaEKEpNlBVB85PNVJXleqoKGJ+YDQdUR0fy3ksmaRQKXwBlc3QQ37zzgxQfJ0xTJ/XwSjDmS2zdTiRY+GQZjSwucj1QunsdgVAdbURNaLchin/gn1BDlp58eOPISmrK4oC1DtGTHssh0CpPSlL466wOjCcQ0sEppBw6lUiaUoXzu4Wf3R/9ub7WRwVrfmIwPKvF4hc8F8ajBVYFDhbVyc1xZVAk5gx8YlzMyBPONOfNcufXA6UgDGcAQRu+MnaGNpIIaQMNSeSiBaiQ7LSLtgacMIZtzw0SQ6KisjDGYDIjOmPe0pwd6FeYz6B+c2fwD1kevuH5LsEfGqsbUFS+CvxroOZ0eLp1xL/y5H3nOzSo8/iPcaB/JZhZkEfAXf+zH4GZDLhVtmVuDK2aK3ATFoK93SF8JbWhZEX2YbAJXphsXL6gOVF8/cFISXOoZtMM0lmul397jYUBDK1m0WaHsXde2GmInsCOCYUPQBscGYspS902pJhspfGC8pEgQd7c0jEef+RTLO5N6XKlLg9ecriJIObI0xdqB4/EhtCv0EGg9Uq3StO4qr4GIorJhElhUXCtVK6d2j9RCXRQaRGnczUprg2ub6feOyhVnfvRwk+k+n4CKXRSsGKqZDVaYSE8FlnumKOET63mwuXt2ix5WrpundQDPxBGB7Twwgm3sMmd3mI7MQd8mx7VQA5rAtQoxnD6CV5eBFrjMtCuOAJ2DuXVsZuEV2wRPCCgz0w1r0fwBJItiDUEiJ8hFhO3SMfOcoHSn3565ujnw4MlDFrtQNR8al+1CKZP64Irb98/IdqIilDmpJSlMY3T0akHmxHSfIqsiPZjDE35aag4YA8J3Xlt4sh1MM/lnn0KFB08fP/qQr/4fp6VQjV/5yhMWgbCVS+S0pTFANsKDw2I0SfvnOKx0jLU0bg4rDaHE4NFyhd5/i9vfe8aTL36J1oTz6US/nLicB3NsXC5bQo3JuPG1NqTUZCjFxIDDw2uOVwvt0BBzMMN1V6MiqBfGtlHUcnq4l+CulhMcHYhl8aQ+mVr48z/xZOcIfPyfPX/UJXwnuOJ1slah8Euff4mjxMOZoQyvHI+ChlFL8u+WQ2M7bYhpDlVUUBu4BhGTOY2QgshCAOdXnfKgocVB005V5qRqTmsPt0faeoM/EKCiKntxbHhseE/FQugF6415B/Xad2XphT6dGWdirPmcKIWyFqYbMuc+Za6ITHpk9HNVQ2bDS2dZGt4rmXoo+XmYRlHFxBEuqPXklGwTHQa+Ue1MRAcii0D3N+BbqdmElTFBB3/9V95CojIs781PyBb5D6zvbmRBbj8xA3aD3eZ5KDLZmSDsSpLIsBBVxSX1l4GAZHS9TmNm9wuJ/HoRRUsW0qaWEeESWKSCKRVeaQJqqlQJFss0OVQoS+AtFQhMsLC8z4vRI+i9Ms+FLRzVmdYeh5SVBYedn2mSKb6tOqFQ6kQ9bV8+HGYeDmW82Y4xUpHjm+wJaoGLgA4kUkGxaB62xz5FC0grpkzCJqH+Bjz/g/X/vbKB2Pjrv/lLFN0QmWhJ3AGeDDfzoKpT5pag9ZEcLQlHZWDqrEzMnGLskPa9yaVQl4ZZWlOVwHaTsVoqKlJ7NUEmswSTIEZHRgLkdU8ni+l7A7a8QTVERB4Ew7ESuOpe6mV4k1rNOWAEokG4IHPi2wW/ONt52xM5A3TwF//CVz/sS/KhLlVNJ4wGP/ulh7z3fxz4/a9X3n+h3J4qHWWPlaCaYiY0m2+GQ8OFasEihkrW6yLJ2xL9DjNWzVK9t6uYE0+c9fDcJvUYeUZwp2hQ1KhFEJRWMgFcZGOM4HI7MXcWg2ZCK5L3YSirBtsL53wLMZP9lRtT3vtOBhvMXVUoAmbCNlIBb25IK9TmLI9X+umCk815rc7lhWE+8lnu4OfA+uDquqQ7xYxSJhNjhtBnZ6lpzTcpHKryMz/yzod81T/EJcq/8/PGkFTtmijqIwUpAtIEmqOWKYYlFJZBPQrtleIvOvN0YmzOqgcOTbieWw4TA7TsvYdzQ05CORa2L19z/vTCfLTiDwtcDTg4q9lu0Wu0pXC5OLevBmPkmUCmEQSFmklBZinm2OPNHNhmPl9iT7WuJYegugTzTuhbzyAAz7OvzxUxYWxrPistGXGqxhiT4XeoCfXTB/ShEC+EeAZ6N2hd0Btjublw9UA4PJlE6/QXxrxtWBEO6+C3/vmnTCSD/f4h1kfO77H30Pny40d8bvmAwGiHYA5BY0Uegl8u2KzQCjryIi9nIR4cqPEKgBiDoyxMnTiGyqTGkhLSfToWqkyF48NHlBfvI1ZoFjSt+6RRKLbCoowwqjyklIkPQbQwJMOi12XhMjb85fvY7WTUa5wralO2raNaWR4lYI3IyPtZG3XKHgU8uYzA1VhUcAodaGp4AV8s4bjzzKFecz9vafIE6a8Y3jkgzNq5Ph2hTUKMsQ1EnBaFWFfYwFywOui98K+/e+Zv/O7KtntgP85LBeiDUjNlyaSxHiY+Jgt7hzoyirk8f8X6+Jrpg7452nt68gGfg2UxmJOiiu5yzXGeuGWK5eaOERxE8QjqoozIFzFnUC0tF9ODQ8lDnIQyoqMOEunjqyUtEb5PU5CS1ooijC0Rlpf7DiYMD9rSUmmBc//yFXVpXD98hIlw+fYtjz/9mBcvn1P7Rnt8QI5X3L08M17dcv2ocGxHOnDpk3I4EHcXvGQTUI6F2dNSCbDtYF4vwhwpvU6Ybm6yOZdPC8gP1ve+VILf+Ge+Qp2TBzq4jYlsilwXlrhQPNkNvTTuJKilQi2sh5WX5413bhbOz18yXgbX68Jbn3rAB4Dq4P6ysd3fMyOoZeHYGicdzNGpWtPS45PhiswLU41L5NSuP3+BXB325mVCRvGd1bZIPpWPYgAAIABJREFUNkxj0F2Q2tjmCaupBjI8J5H7Yc6n89PvCv/T/7awcf6w3/KP/AoyOUmA4hAK/81fXvBXJ+LYcpr8ELgvmKS9UM4H0BNNVqYqNmaql7rgVulxwcyYVShhsNu8ujeWm+Q3jNgwrVhZ6DG4Ph/xt5zJRqXtfgrQ0pBxJmlDzvQOXbmcTizHFTzY/J5hA5+KhjLlnqDuCY0bcS7Y0thiw3zgWvCZ6V5mLQuyMRn1llYDOyV3hoOCKWjHpjFGNvSQSS2ZN1XHMVk65KFDymDrrw+aTplGqO8HHPiJt5/zy18o/M2vbThJZvmkoP/0NTMG3oi2RYT/4t/+Amwbfe7Qa2BklG3aaHYVWwWmvrbqZEEdeUJHMc4xWduuHNwtPDVSwSDhbATFdrWFONMzzTJF1UKzYEO578FaFabgHrQFHjxybl9mQ2qMVIRNN6Z1StFdfbjfIyIUBCuOuyKeh04D+hScztahVrhcgnVRgsHY8vPi1QkVVCbLWtguYEdjxp6KF8K0/dggQppwDeeMSqFGoC2tPIjy1XeP/9iv9R+fVYDBb/3lX+P6cMrEv5nKOh+OR0+YcqTyt0WADwaS994ciUZgoL6nNQNCNhFtkjZCDVwUacI8XVBrDB/UpSJMhBxsKxCiezDGbosNoxAMSzvsmCC+IZp/50Qq2cnfT59vVIc+gigTF8NHDlzVA986U/d/V2YONWPug054cJOJx8EnM21ODQ5F+dp/90W+9ncf8zu/XXh1b9yOtPqaCK6S6ankM83dqSaMgPIabCaJ7Jiezz+rpBJLjMvohNgba2GVwXSjiyCzoDX3tKZB7M2AmGkvFikZhILiVNoaxMGxaYiC1gTJ+9Dduq1cXRuumeFTDdTsjcndKPjcwAdFhMvZmQRSKuVY8jXPyRZCa/D+N5V3rtP63IewPhr0IXAOyjIJE2JzLn6minHq0NaW1v0Q0OB8geNhZKOlG3/pz/44f/v/+taHe+E/pPWf/VPX6HaP1CBE010gYO7UVegRVJQwJ4ClwDjB3KA8TsayTs0BzbeCp7JS3zsTf69mOIlszMM7yE9BfPnA/GrDPyNMrcA5VaBW0BOonjn3O4IDm97RjjkNmWdhbBNpE6YQMqmt0MWxSyAWuEneYLuazMOY7ojvvKoK5aCcXw3qTSClZLiQJZ8U6fTTROwGtwvMdIVdNmHTyfn8Ki3XN5NCJWKgURm3ELMwJmi7IF7QBxekDeZYmf6YH1ru+dkff8z/+NvPOAScvk8Dx0dvJpSqXv6FH15wCkVXfIe6liPUEdTD1a5D3zhYKm305kz1jblBpXKwI0UEbQdaNVZNTlLYlj77qBxZWKQQ3FOOVyxasNIAJ6xixXCBQ21odKLOlH/KhlBZ2kKpDTVl/P4t/mxl3jylfeYR7TML9clK+5RgD2uC3bQmR6s2bHje3KF0CXQRDu2IRWHKltbGolR1GMntCi2wjGxa6O2elKIEjVoO2PoWKgdCK1YaMhtxdMT2rqukAqM1Y+o1/+K7Dz8RU+eDOKulfaqIYvOO7cUdlw9e8OqDCzaCOgqcO68unfvTRsSEMVErCYAldnlyMHZ7oKtwf96YixJVsVp2mbjk4agPbL6WmDttVy5VzangNiYloMo+GTah7zHd58ukT2e76yxHI+Z8w1So1VhaYTkW3DMtzj0bbN73qaMPdLujlEZ9dGT0TLJczDgwOTS4ebTy6N1HPH+uvPh2qgjXpbJawNqInqoPFTBLMGlEvOFjCRmnbpK++8SlZLBAziPZLWw/WH/4UqCACm8dg4hksF2psJROmY5JSYZWMWxP2LJimBp1OfLygztiOxHPlc/96GOWzz6lGeDO5XzhcntHqY3DcUH3gU2rNS0xvk+bfRKRqUu227zxyQylWKEWSU6JQzBxOgRsI623KoGUDKEY/YLGYNs6yIbGzM9DdMScf+5PPkDkH02Kycd5vVGv7c2FP/upxr0L5wfOepsN7KCjK/j7aW/pdsdQy4NeCLMqrg1LIB7CutsLC4RiUZnfDtZ3azYS9m83tTFiYLeVeBTAgorhE0QmET2ZaARFNoKg987dBy8pu719xiltZGN3lkkOcFL9MxFxrJ6ZJyiz4aZ4bPnnYfi8MP3CEPDZcA9mORPlgr+o2XgdSoQhtGxSOMCSMnsaHh21CQymO2ZGHyOVqa1TSwMKpcH0zr/1Z9JK5K8bOnwy2vLx+of8ruZdMxjbxpipugzJBp+FYK7MHWel+56XjKz8Wt+TUDSM0zYTpu6p1Cvi1H1rKA5zr02SaRQQBjoJTwXCwNk86KEUe22z2V90KC8+0Dw4xm7zUdkTeHeVgyjdk5MjBmLs0OhMGdOdp/TqdstDSlXU0n7mjPx5jwKHybiXZMoBWlIdUcwpkVakUEcDaugOx4etO+tSU9WhypCBkGEaP/NPvPWP4er+8Vt5Rwy0CFfrPRITmYHEJObO6HP2GmPs6aSTLpPAiTlR2VV/mfGGMCl7UmGVwIqn8kqyxm41NXenV/cQTji78hM0Im21kS229rr+1kyzVt1B397xOdE+s2EupIJMszby3bKoMZGSlu9SBB3ntNrWlWkLYnkG2PM0gcBn4BQ0nJ/56S98WJfmQ19LMX73v/4TfO3vPuJb31Be3iu3W6TSuLRUJAnM2IWYJF9KdzWpWDa5wtO+WSwB62PnXhm7OlkELYGHc7vBCM8G/OIZ0KRp6Xszvi2eiaWazLOICxITk4kNg577pI+e7gaDKJmeOS+TuJvoebK9cPy2M19N4lToU1BruDZGXeB6hesDejwwNuX8Cs53F0w7CByvMiBDA2oRpqxoqURRJIyyBLI0bH8Gji3fnxAB9fyz2Tlp4FU4F6GL8tXPf/LUWQY8PbxAtCNqROxqWgWKMhw2Ey4OdGPew7ZVylpZnwT1INghfy2rIe8K65cfoT/1EPnqDfGVx8RXv4D82kP85x5CCS4/dOT0zhU2KlErKpbONMkhnYlAyT227Zb2si54zwAB0VQeW4dCft+YaVnuJBbEgz3MBUDIoN+gVEExvAXRBZmKemfObKZXU2I7E57MuJhp+19qo5Zdma3GCDIIoQq2Ou1GqQ+MoKVLSkFnBVG03KNH5V/5uaA5aMD6fXanPjLNrNdNFQF++OptFjdKKK6dclWpS1CWnoXFyEltoSHliHCgyJFKsCzKWtKrOuPC7J4JIbrSx6RFpZWFKgp6oVJRqXgVpNeMh65p52I6TYIpk2KVpawsy0LxhpWELvurW+5+/wPWmydcf/EhN0+OlFUoBbo46BX1sOSm1UtaBYvRrgrlANGEZTnm62EQi7NEoeHoDGI6VwdlKUqR9LY2XSnWWA4PWZcrloNRS8GWM+uirBdlvS88OCjL0XGdzFbR6oRMJE5IbHx5HZ+IKr1Y5fpQ0Lt7ZJtsZ2FYJdYD9SrVb2GD5fpAW1f6cCrAHGg4S9EdSJuQ9vTgJ6R2ua7Y7gTsfexWCecCjHNPdRae8PaeOnQTaCIpQd7tCCHB1j2/jwZLs9xo980mAJ9p3SNgzMl27iy1oN/1Z7UUYmbi4enFHdvphPvgg2/ec31cKTc3nO5nSvKZlFp4+pkjh8ePef7tu7TrWOW4SDY6Lhcg05uk6JtzzgxnzCwaJ7xp9O3P2CwC2PkoP1j/P8sRJn/6S58ifKN7Z9OKiacNeQpS9w1UglIUq1kEW8nEwYMqz/7PO57+1Gf51t9/xsaFsGwa3N6+oljbrTA1I8wl2C6nnBKWhCY7CRyVPCWmskrg6mrl8ux9LgG1NfS1CcPWnFxaJTpUPEM1YlAKaHSkLWznYM5MiKulYShfeCeVNz9Yf/h63UiRvQj/93/tbRa/0EZhe+seuyhuBQ+nHJz5UqhS9p29oCVQ2SiRcHYpQS1nihQKA+i0cMasqKfSIQLKckDHPeuLRntLUQyTC307o5rFUJVg9omGYbJymY6/qKzHBUIZCN1hutBkoWB4L4SNHdjedgvWSOvN1tE50Lkg08ErS1zRvGVTz0cWYK4QC3bT2U6GzZZg7thy/95tYGNk8RduiEcmDgHImXUVeh/EKPiYlBb0IYQoonf85GcypZj9vf8kDH32mcR3/QH8tX/zC7tKPZPgQPbGVQ53ZC+CU1uQX+MezJmHfAS26azLfpDcm15FbL/7nEHA2C2LAW2HHGuKBJkhucGqJQPOjIhkOpaqROyNLA8OV0LInlwsaSkcLsnK8QDNkApw5iCL85qDAihcXa0QBYlUVpkk1ygEbOYws6yBn43eQcOZEYjPnbsTFAroTPVaDvDpZ6FZR1ToPbkkVRoy4Z1HP0gL+4NLyOv49PEN/+Ff+cUckk1nxmS+RjtE4L4R/loRl4E0FpLPA33NsklIfGFSQmhMSjgxnDkjg3ZeA8xM0CagC4LuCqpMIzMJKqnqykRD2xuS7CoHARnUWilWEAMfu/V0b7q9jspJJYShTMJnJkbPxJtQBrWlpXfEfMPe2oFMQIZd/PzPfpZPKs3od/6rL/G137nhm18vPH9hnGaANcQiP7PsDUfLh3gl7Z8+Irl9ZNNcJbm0IkaV2NlWZC2kkQocT7eM1UKpytjSfhAhmDq2f3yn79dIUtPru8Kq2n4GGMHlfs/H9aCPoFjAXfIGba3IdWG9qVw/qdSbxvKgYIdsMOQgO9XyqFJEgZl7+jUcHh6IsbB9MJEIZEykZIqqycBMaccCFsyRikdpC0PBNasBjQFi9EsgB/AhnF92Jk6t8Jc+IeED3x2O9siMtoc/2Bwsmnhk5LW+QNBnMLviVdBHgh0mUTtaFYk8u2sTpF5ohxuODy3DSrjAY5BPDcbjwFvB5BHtW8nJ9phwIu8pjd3jfsV5GhqT4nO3P1takgV8m4lCkkY3Z+4259hkP0OCbhmMUSKfkRH5LLShXLzTrgv+HlDS4eVu+TN4KgmxYN5tzHDcBaEwzwORxATInkA8JRgyM1hMYdhEDk7rhWKNateppJ0DK4O1nPFQxl57rd/H4+0jYTPMoxO7Pxj+3S89pM8z2IVWDJ0BZbcCtIk0gw9W4uoEZcW2TmwQ6xF7UdEHJ7ycER4Q0fEC4p22S9Z1TnQJqhywxYgOYjcwLqzLDWHCWpUmcHkJy3XDS77B83ZDTbmcO3IHpb7N0y8c6XK/Q7ILIzYObaVbELMj0rAl2O4unL+9AUI8GBAHjq3Sd2uhFKPGzANs3CO9cKgVGYPRJqEb3SvhnVJXwoONQp05XZynySjQjyArjFDO48z66ogf7xhFsb4Q4VxLo/c7rqRwT6a2xMd0Y5zd0CtFDxA7n6BZgIIP4yD5XjE2Sgmuto3LvaIlP5Cbk1PlbRB7x1hIWCikZHmMoFjGtyb4daKHwtYD2xVOQyYWyoYxA4zgEhA9UzBVobVC7zNZNH1SloRHxl4xVVXm1tnMaK3klMAM3RsPPieLGuxwXmLy5K0rno3K8/efcfP4CS9fKPYmcSlZNWvdKO9c8eJb97QrxdaFelXZTkHDcTN0ZoEoIUh4Tr3d2RCKpB3K4ztJVk4eIn7oU2/z9W9++0O8Az7qSwlxfu4rR+b5HrEbNg0qhUetsPlgkJYb1SB0pkVVC+uxsbbCMzfe+Sc/z/u/9zXGO59mvnif++d3nJaHVDNeffPbvPX2Y+Y4oeeJNwHdY8XD6RHJVhqDPge1VIpURDIAwa6PjJcviOsjaIHpTB+oC8rIGGoRihqXe6esk4jKQoelQe+0Kox+gVpwlD//5Sv+5v9++2G/+R/t9bq7IAAH4vJ1PBLOHt0JO2O3FVkm7UHj8nISp0Y7gl86Dx9fcZaJijL6JYs0XQnSliC2cPetjfZ4ZS2BS2OVhXg+satHXN7qeW39zHx5QubKCc9AkkWpOnF3bl8Ii044trRtWwEc5qTW1zHjAnJCWXalaU9ex2gMO1Ol0c+dUp2gZDPXhWFO8QMSG9uYjMiEPPWgHjQLM6ts09ElEoQaOf1zuRATxiVYamPYzJ+dglXnsk1KDXwqY+Rzugf8tV9w/up/mweT3VH38V+vJXn7KmK8XTdOc+eszDyIuzu60817+ssTti0l8UUBagNFGNPQfU9kV0qhGRYiETT5TsfQdBJS97S5bCZ5Ij/2lLDYX2PsNKNUseZzJ1/H+UQW0pGW+2SapEIHT5aNmWfq5cimvoinioNMYu1jB86HMtxTqRAGGNVg2wRrM23Yl0kVYY6KjM5o2RF0h8p3Dr0eabXWkYMhVc17Gefdq0/CzfX9rSD4zX/j13m49lSATid8fCc9OVKZpTMbB+pbJgdKcoVMDBOn0fe06bRnzbgwKJlw/Vpfrgn7Z29ar1cVv/e0zxrZUIodkIzkdSTvxyJGkdcNJ8WsZiOOZELWmTgLzDJwoMDUis+06IZU5kxFvjvQPRWlDnZ9oHeQ6IQESsdckVLSJhmDz332XX73975B6iU/Oevv/Z0nvHhu3J0zpXCbEyxRHTFTUReSYSmKo1I41AIxGUAVp7XCDKfszUpEiBG4VjBhsQViYOuSTo0Z9FdBvYoMMbkIsuYzKU67qi8UwxkItQoRwv3tZF7g6lFhfeJggb8Q2iNlulMe7o6Hqhg1VdFjpJLaAvEEvW9e6FmCZ51tMHtaKlFhzLS6lgfB3XvBs2+cefS5glbLwB6duBTmaFhzqEfO73fq1YBI9par0c9OuQqKG10GF4IyFevsrOCP/3rNjTQV/vN/9gByl/bREOqlsJ06UqA8DJajUt5WhEG1TPAlkqmssg87MJiDRa95elxZUaJ3pFRkDvwV1PsN+Z8780sPuHyhUd/bwDuqG+K5bzE6z189YxjE+ZIJhR6YKrMq1Zzzs0BLNufHTAafuqA3yvlFqo2HBGXLB56FMbWjlmzKQjY/pQXbveFL7qXdMyDKfQevNWNcHFuEOUcmfvZ8NnXNoTuR4TGbB8XmzjdcKI8m8WLQH3ZqNIYOilwIL/xLP/8O/8Pf+gYiyvZ9OHs+Esqs1x8PDYDKxV4ii6KtMO8aYhOnEWoUOUIM5Gbg7wU6k4Xg1qg+qY8hfGV6petMyPtujaJk0kyYEbLguj/wrFCKUC8VU6fVwoGFRuHh1QNMlKaFdvHklnggd4N6fUX7lIEOmhaKGGawLg1rFVNLaajvU8pSqQ8WYoV6f6Ti9H6hjNys/NIJnxhKjcIiA7+c8Q5sQR0H1t54sD6i6DUmK7WtbKXwqhbiQYFjUFr6silCkZWt7jGu54VahbIqLidkOfJrn34C7IlZH1M4iNjG+TxoNW1+RTIJcPaJ+OQyO8ZgUeGmwmU4FOPSJ+fhFMnG1fBI77OQrCjdN87IFAjdu/VWsmlKMepi6Wc34VBTNaV9MmZKeUvJQIPwjJC3cMJ3+17RVBrMyVJ24HLCP6h7cVzMWHLPQxwWU+acXAKmGUTw/INXCba9BFzuk8EVcLSgkYmdrVaqCA8/dcX9807c3VFUuL4qzNv0fDs5WRf2DTSg71NQ34vDKoCkNN7JKPO3Hj/4MC//R37lRF/gosR65HR/yxiTC8LLmJwuksWwZirYYgshlUMrLG2hifPkM59hjYGtj6nSGRfj8PQp9aiUWmlXR84vXnF+fodP59L7G9lPxCRGZ84Mlyj7PeQxmHvMdLFGW6/QKNjI4qvscFRVZa0VNWUGKSuWPd3HB80vGUscg6NBm84igz/1xes83P5g/aHLAkoIP/HpwMyy6NhlMEOMYhWTlRHC+rCwvXS8jrQth7NqJirVsmB6nc8dM7Qs4B1643hVIArVbmCC3FzRDwPUCHdO7znSHtIeGfXgzE25vIT5DPz91yo8YbZ7ooBK2qszrGSCjF2Dk4DZaWBFgGRKlnIAndTlCN0wV8Jr2r/GYMYdWu8zCcwKVlJJo2LQBtM6VpS+OeEJ/3U0VVywF1apzAhPdgPqlObMmaoe05ymZSrVYCUy1ZBPhjLrDzbs/tO/8nnOIciUVAFoqm+neyZDEohEJvBO47wrddVgDmPrStG0cQGpdictO+6+q1lSxQuAlEzD3JMSUduDIjLx114r5CT3RyTTdMUGpQbSjIHibvgs+CgMMS4zIc+vJ6ZzlNytNF87kT+HSg6USpXki8Ru39iVaEHWAG+ENqUzVmXTCeUMaP4XoFLYcMQyRVEhFW7T0ZqqV43JoSqn+QO79R9c//Kv/xxPri6odMwn2RhPm4x4YGMyB8iunt+1CWgEVYRFOkedrLtVnoCLOz2UPYeLKdmUEN/DLiTTAwuphnfve22n+dxVEE8Yd3KVhJix25HTfqS6N0d1pmXbjEUV7UFcZir1Xgss1NC6ILVS60JowaTsyqGRacEmb9SPRB6UDdkti41/+lf/BCIfz7r9D1sf3FZebXDnyp1n69A8MI9kjnnW0VONpRYGk8ucnPy75LbAokbbLclMw2rFWqMtFS1Zk9Pvkb4hY6NcDcycJZzjA/IA2QdiOXjBJ31OfGYntNYMLji+dUy+47BsiDwg0whVMKtYTa/YJNVgtQomk7qjAeY+IK4lLZKrBX06S1NcNAfq99nsVDOu32loa4zTxMMJVS6vUlK0XGXjbPZBe1i4f2m0g1OWik8h4kxMpw+YnsExzMnJB/0Tcq+JCErjR1bjaHdwBnkpxGZsOmlPYXkKtQrnOam+M6nNcEuxg4qCQ9UjV72ynoTDC8deDHj/TPz9e/jdZ/B3XhJ/+5vwt/5v4lEwfnRDtjOcT5QPOnrOwQ4A5+C97R4bTqnpohDJpEL3jZgVbcl+DJd0UXgyHoOgXhljc3TvfUyDKRttZv+E4rs9PpAF9OLgM63Oosn2e63IJoULw9OpM/vIEBiSrdsdxkjRhpntDcIB0rnMgRxviLuKj0k1IfwAKL/yky+ZRYnYHVLf4/rInCSSyABPVfak+BMlCjw+I6dCGY3pCatVX9I7+uiKeG9ychAxNts97WK09ToT1qQl+FGdMQZFG6bZ3WllpYhQzViqUovQvNB6J8Q5y6BbdjbFJ4eyoouyvTqnL/utPMyl9adipdBKJi72kQdEj8nsHQ1Y2sp6bZRHK9MOXF5NtvdPjBcvqNuZxgXrjvigDGX1lat2TWmVdvWEqyc32MPGi7FxiXsueoFxoi1nDlWptWLxGGZHODH9nEDX4x0szna4xTUnrIqhtvHjN4Zqy4n9x7RgX0qlmcDc0sYX+aGrKqxNMrUhwFUxKyxV2M4jWQnAuWcx3RTKDphdmlLIwkkCmmS6CkU4970Z1QpelbPAeQbnMVkXYW2Z0qSWkfdCsFTNQ1TsijGCsrZstqoyRs+I3r0xpkVoJlQyMTH3m8nmGdWrmj58l2QrrQ+OmMieOBg8uW4YwrUFMicaCZGXETz9zA3nrXL//m3awg6V/vzMoaTkfh+C77ws0oaxp8Qk1DlfjyGZivhxvbH+ES0X5dAWtEHcbTx+/CCnu30wxmSOjqjS6pLTWy2sVwtWlSLB86+/z9vvVC6//wHr04XTBxvlyYoVsrloSrtaqNdHHj54jJZCf9WZz+7p7z3n9O2XuTlKYYyBWGVpK7FPACeSlsPauH35grlX47ZDjjWcOSYqBbWSqr0A2BMugVoLc066D0wnM1aGnAn53icvn8Rlu2JAI/itX77J55bprtjKk1FvHd8cLRM3Y1mg0Sh6oNiKiKZSwRrKRtVkRA2C+Xyh3iwglVYasW3EXSbMqBdMNu6eTdrbB9oC4LgJywOl3ShxFayPGst6oN9W5p0jbjiCzkClEgiDIxGG6wA3LCTZW7Nk42COxAFIUlNDPMMwuCD+ENMDcy6YOTNOyJxpGWPDPbjMyQhFWBiXI0JORtntFaYZiT4Bl4LLhseOg5YsXsV3W0kEfqd84a22R6F//Jf+vzyjH9SOeN6A7oGG742fPHg54JJGp1YGzXI/wB21SBSDvSYsko2c3drw2sbhJgxRIJODRXZVlFg2L3Zbo6oxBbqk8qprslU7jpjgu9dfLRtXugTLIRBNPmSEEFWzwC/xGqLD7gRkerLfEMmbZCjne2U7B5dT223+wjZmqjIMoKYVaVRKgeGTKs5UUA8Wy8PMIpmGJkx85n1WXJBa0i6pn4wD4ve0JOuFL38u4yktskHFnGhkarTMCUxq5BhcI2iy/50H1TtlANtgXjpjeqrgetrdY6/Z7f9h791+bduuM69fa/0yxpxzXfa5+3ocX8pJqkJVnJCCSl4IFUARJZVAlIQEAqkQKnhGSPCIxP/CG6+88ISQ4DkgFVUkFWLnZsfnnL3XnpcxRu+9tXpoY+0KRRAOkjmHc9wl27L29rK9Zp9j9P617/t9KFkVRseHQY8oGBbuc3om8xznAijh4tovbwHKtv2b46QsFA/SV9r/NQMjQ55StCWKh9gJaKloDse1wL5vUxSQIbStAwGHfy5cwPeLo4Hp4DTv4tgX7Iz16mLcurCJMDzuWTkZbxoIJcVZVZUhgtSZ6f5ILRrn1siUBiTDBkqmVKWUDOuN9ZOF8dLRDqkpsjren4uggKKkYfjoeC+kFO6pKe2Nhuqod/QwcXca1Nmpp4l8lEDCpLynxlLwJ41dCG2YPYvniXbZ4u8ShRPmio2Ils2l0j2cgn1p1PspRH2Je8T89h2XV50xGqMNDneOSXCPhiS6Oa2vTI9K34De8e3G4XTCLeEarF612F85KyrCf/33/pVP9bP//2K5Oy6Nv/dzmfMK4+DkR5BjZ8q2D0ciCn3QxMBAEqt1UgehBs+2ZOp1ZWnGJsLltHGdrqwvL7BaFKF8ssIN5LtfRd7tyJ8tHH9wJn+yUf5go6yyx6k7y9MnvNzOSI4BzABab7jGZ5M1MZcpUEzP752UcIuIIQxkZ122tN/jfKbTglfaYsA0UjQTuzm+aQz/xmC1Tt/fV3M57dibvdk1xTBAbW/YJFiA9uZiKLjViKzKzMLrYEfWRh+Cy0JnoAy+8fX5L/1M+0yc1ATeHJL+jV/8LqSMp8LITt4m0mPH/Ilxx48OAAAgAElEQVTpFpFx14BdF+2UdxKyKixXklWGd7QW2uuFKjNZnVoclTvKdE/Wwfym0ndDR0R8JAniPdhVksIG3wrDAgKuOYE623KheiU9VBAll0TJCbS9iYNJep70ZGqZmE/xEqspmhUTwvRg1HeOyJxpbUJuinbnBLzwgnplKRvrvSFTpqUbt3Wht0bKK0UH2YyhippSJ2WsDU2NUl7gekSowYJwjeY+qYgrlja8ZEY7Usvg64dDNL98Ts9UqRh9a4gnphzTrSzCVCQqnIMASfeopn3x9h13vUfNvBl3CSrOtE/p5xJf2g7UKdT5UoTpUELgSrFP16Wxbh1T0BrQz+6wGJSkjGH0EU1Kl20wZ8VFqVlh2+HZ+wFbU9g1zQYHVazbm0bFWeOjyztMFE1vqlYRp48RdtdU2JYF18S2DKaswYZImTH6Lrgm1I333y7INPH0J5/Ed+NQ6K8W5hKFAiFSxbRadZ9q79PvsNnu2X6cL8gw5//1Enf+hV/8Mq0rdiicX72iv144JTiVifvDFFNjFaZSYz/4QDVzlwW9LLTza47f/jpP339JfTwwtrjO15rptwW/LPi64m2hJOP4MHN6ceTu3Xse3n2EVDm/vmJrAyJCGId4R8cg5RmjcXp4G8kB/Xc3kIJLiB+9Ldi67Y6LLVhvDsMzZitDMqaVrQtFLpGt1y8q9eMnWyZQXZlIPPSPyA6ufXdkFnZTO/UYrhLMOL5TaS/D5j1G2ZkfHZcUXCw7I+rMxbDNObxISDLEGumpYC+cLRneFs4/GsyPSiUa4tCIUrtWyAmTxMYVcoP7GwOlXQbGiPp5D3aQ0cMp5ZUineLBXtMMWN9bUKOSPlVIPTPYGJ7x9JphV4oL2hV9jo64oy5sa0yPu6wgjVS3qDffoyMRITJ02iEXEjX3WMcEhsR/f8qKrRWxzKgb//5vPGIekaLP+zPMd5fm8xIRugnNjMGgWwxsVC3cCvvluluP4aPt8GuP2JZ7C5HSHBUDM1LK5MC846r7pQ+wtoveibTHCYtqFFUmx4PyzcAj7i9xofegOqCawr2+A2xHDiFN9j/zMNIErkLHm/PmbvOKYRYFx+ibIOLkYhyOgzonrDitZ5YBbZnYmtJXZV2NpUFWgITmFE1kBi4hoEQ0bVB0AAnPA3SfmG8ShQRf0Ea6v3gJ/+nf/y0gsq1uz/huwHvcEyyizfheIDFa8O+eRVETug02hyUluipkkCx7lGyPDbrhfZD2QbDmhFYl54ROu8vC+t5GGPvdzMLFuYus4jHEFJW9DVSixVBi/w6N5nPUkeLRqC1QUiZNM1oOuKVoWywZcsF0Hwj1gY8NTzFkBd2F9xSlQpqQIc8Urk/rA/tU1nJtrGujXW+MjTjn9sBaZHfyPqx262z7RXlsKyJR3rRu4WYZTUEy3cYOf4/Wy8NBKaWRpjjrFIkm0xEIWcx4ExVNGqU4kiXE9t095Wps15WhAtuATxYYEpd6MkmVVAQhMACBYUuoNByLNss549cW77JcwI2SCyoh/vvScVtJc4mmdKmwN8bOU0Prke3HN4o65oOkwhhgowc/1QQ0U996C78Ix/sDz+gJp1MOlenxHlPDJITArX8mZIOf+ioCv/DtQZsjXkgVDqS9kERwZWcrRwR1EMK2eDSUshj+cjDuMukI6ThxOCSWP1s4XxqffPJEv9ywb9+T/sYdvFjxDepTI70clFeOnDL+USMvA3m58I9+8Ee43MGzWGtglnBP9BacPUmGb4J6lBNsvdMsuIE+wpXHULzF/Q1dcN0ZyJ7oRJECLpT7yrZEA6wTkVd1Ybhxbq+jaXtHy7gbA8OToX3gw+htIHg0du5u/WSys/MLdS6wZEzCyZhcSGnj3/ub7zP0z3FOf4L1mdmVGUha+fnpR9TUqCMxmSP5NasPvGba3QJUakvIkijpQCsH5ofCdP/A2IysNeIK94Vt3Ch52muUnQMN9xujG7lMoHHgLXi8KFMjj2iXk9pR2zkyLpQGy3ZhOgv5QZjuKikpVgyTRCUh3sMJNRpzgWMt2NbC+SIJMUXSQFLi7v7E8fTAW1//gMcP32J6eCRxx7oMLufXJDVac+TibKOFYrpXqUy1IjqTclir3TLb7SUpN4psqG5MWaBmak6UdEee30akID4oQxA6uTR8nPiPv/Ue6uXzqmVBh1oSCaNtLd4nZixr5zoE7xtLG6xb41Xb+GTtqMApwZeSMrtzZ8FQ0MReLS4ci6KpUmvFVbAWf8eGsQ3fQSOO33ocmtLzZSqsl7a35ajEnmOHwZfhHE6V9DxBes5vu1FTHOSPNTLYAvjwAOWJ4zaYSwpeII70zjC4bZ35vRewDDJOSk4nk30FM0SV3gOwLArDncejcHz7yPWjK+5Ouq+sG7TrRlxk/I0jSwXmFJOKQYDsI2rIG5Dyz9ZfvFzhlz7Me1kAHF/cc//2xO22sapjxZhT4qjOKQvHKtSkHMX4s9/9PcrhgVKO/Oh3/5i3vvk2KTm33mDdeLTG3f2Jt+4m5DhTSuLOYRorJx2cNFM1Ln6Huxz1zJeFsr9wvDdKrTE51hLxh6fL3gSkZDoTsW/YBeJpztDDJty9kHRgGsMA95UpOdYDgPy3vnPYLyE/W/+3S4z/7O88okkoMkg9k7rgQ8g6SJIY0imXiZoreug83B9oTRBdcFdUM21cUTmS5A4bA9aKF2MjIgZcDuT3Y+JrLzfGLXH6QMPxJQO8o92pueB+xUY0VZpnbK+aPxwn6kForwbeLzgrQsF9i5gEzpRLQJXFcK+oJpIVkkfMVcnBOUzBw3EMkZnNE803DnJi0kRBaF2ps2De3jTHmXfSs5jvNSInTvAbSGAZH4mkJdrQOuGkJpFTRJZqFt45fkTNg7JfIj+vS5B/DvwuPE7R4ismwVvBaWF8CGcue+OQxAVyEg1xmvhVJY2DqexNvQkJYVOCBeP7JFdRhkRbXMIhxQik8yw0Cu4JVCi6u7xUdr6HUp/jC6qYxxQ4YqKZzcPh3Hx3nauAhGjWTTFTxgjXl+hApVDrIOe0l5no/vcH82Tk7EyHQTl0psOg6tjZScb51aDMMZUHo7pzzBmxvX1OBN+MuaQQ/YChgyKJ9DneW3+ppYn//B/8qxxLnJmxwEFId2TbkGZ4a1jf8C1avao4mhwpgsgIfVIHQy1a4lI0TJJTcKcKqCipg7UQNvV56KbRaiiEsF2OynppXJ8WxhpoCXcHG3jvYD0uZ0kpquHGU6EKIdJKlHFUhKKJYhIu2Sqkmva2TSjzAdUD5TCjmiL6Xw+YEOdG20J8I+DK+MBG4tXrxjD4a7/0bd4Ifl+Q1QgxskriThPF9qSAR1SvpH3UKkbxhm4O3dEt7nReBDlOlLvCloBSEKJcwBzaGgkMsxhAm2YkC/NdRjSR8/6lDQMMSI7h7nAYkeTQsTdGi1InIR+iST7VzFSd5iHRJy1MdVDVqQK1ZKZ5Yj7MSBbyfWYsSh6DWhIlOWzgmihzcNrQcOoUDSEh6YSQefGu4PmOVML40FNCDgUtCS2Z+TRTpsJhit9nTlNwuOaE5oImZ10umEVEejsPsnb+q3/r1z/FT/+nv4rAv/7hgeuraPZbMsxuLAw6KQb4xKAkiZATHDOUkbFXgnw8mI7hxGMXwsUa60ewqnCdhY/ea/zJVx19Z0CtwIT0Drbi24ZuK7QzcvuYp9/5I/7h7/wTboDqghIDpXXZMG200UhFo9wN53hKDAshqWSNlt2RQ/SeRgj6OYQo9YykjKQoOnMx8IaLsqWNbs7wiLMCmDgNxzVBFroIA6F4wn0vNpMoaEnsbmh3lMqg7a2vC2qOWkckU186wzYkVfqofHj/Ax6OE38ZieozcYtwgS7wzYcTiwBa0XILoHSbSK3sZSAB19uKMO4HY1koCkUj/nd6OLCuG2qZnGfu9BAtT5rJGVwN952XMM7kPT+t5YBqphwLUJB6JFuiFKhi3EvCZOAfD8gz+VTISaPCUguSnE6022kzuoVV3dyYRJkRDqlSXDn1iUedyOvG3M5M20LqjpwSbTJ8mtk+ueP2/T9Gn26M7UIyi8hQVaYEYKQsyDRT64yWTMkHagmBrW2ZIU4dAqmiU4DNc3Y4anAt1oKOKy0b1tY3bQOfx1UkQJACzGlnWmCYDbIHe2r0zmaC2wAJq2WRiCwcgSzwzcfCiyTcq/BWTUySmHrDrgt+a28UejfHW1QyVxFK2mMVNmg7r+q5cbMqQDibclKyO5ITMmAq6U2uPhz1uk9VQmzaR8xMJSHuFCRaEsdgeMQYzeJ/Q18XHu8LfWlReL0ZSo/KXwXVjPuITD5CKjGBUDPIU7gYiAtoPVTybVA0HuQRtfRgjfEMiN99WcMZBvenw6f06X/216lOUb0rMFqjr2uANkVJ10ZOB9Y1gPtTUYo7FRjXV/TXKy+OgtuV05ffYoxoATukyppDKDi0jRdZOKphmnitCnnCXHh1DbFDwhiNqJDmidaM2/lMJprySB5MrALp8THipRpuCxFQj8uHoKyvr2gt2Bhk2WBvF1OLw2IfHpEkNn7lw7s9Tvaz9RctBRYy35mf4hJWBZUW8TkGNWU0NUQ2xqHBVVF/RE4d71fEM5oKWTJTOaJFwmnMHM5JFWqq8OTwVrivxB3LYau3odhQRh9sm7KNjm2NarozLhXTzvBgdDmdVI1yhL4eaJdM214jbSZpi5/NBfOO42hWxDLqK9JzRCzU4TToaydK7Q2TDdeVrBMuje5OswC2i3Sy5XhO0iEHq01kMHpMwceICFEWp7hiFs10YkYuiayKi9NWx2VDzZgd/s2/+kBz+/wOevhzOp3/s3//X/4HX0H2g7qkKOkZI77fHopB8LNEMBlvrtLug7S3/foeUyhpQI64u46MDdAcgxBzo2g4km3/KU08hoJ79PM56ikisDOEwom3H7J3W5mJRqSCuICiCX2O1ks0ErpnDEh1j0IWj3gjGvwvAm6bUkQYkUESxSxi/S6G7GUrJSvH2nl8AbceEPoKIZAS786YZg+qZGpVsIDxmglF0t68+JnoYfpUl4jwn/yH/xp7hi8E6BG/a7WOeANGtNUR7qdKR70HyqPb3nopPLd7SfAayHi0mZpjzaMYsyipZsRj7+E74293wosq01SoJaEjYWvDVuibMDZhW2G9dJZr5/q6sVw2tnWLYWkzxhbCfyYi1GOMaMSUEf/L3MkySMnRIsBgnjJjawgN6l5woDlYShqu+82c9Was6+B0KKS88Wvf+7lP98P7FFbVYM1WDedeTYHu2JV0Ljik2FfpOU4lxqCgJaMZXDJDQEpCcsKTYJvTxoi/41FNphqiUz5Upgynu4hZuzvWHfFEtr43rQY3z12jaXUMRA3zaDEdPnZXaLS2Zg+xQ6WSU0VFEc1oBesNhmHN8QLt4sTtzZGp7GUIghDR1D5SQOA3JRd7wyZ8fL9y/ngNxq5ES7p3I9dwD9YSIr9Wp4lS72amUqnZUU97sZmwnY1yF78Ltc+3Aq+e+Du/3EgPHb06tYPsZWumTjUlE5Fyc6cPuH5s2McwHhP1YULHwKrjFNq2Qa/0dWNMg6295jJXLuMT/vj1hcv6CngC2yOHTyv9D37IJ//oT/i9P/h9PllXrlvj2oytR3EAgOZEkoyqM6zRXWi7M8wMkmWir1MhDVIWbOheXJFQUYYPrNme5DFcojDAkqEGOTvWNPilajSL/RLifjhFXQTTveV4H4SnHiU9wX2GMVYmqXSP84JOShfD60a6u0MuE32sJOsMgd/63sOOOfjJ1mfiLfocT/r1rz6Cd6p2NhcyjaYVzzdUD0w6Y9LJpZDzMQCyl5WUj+ipo5qp1TDdUHFyOSKs4I57IvkchxhXSj6S64Z4wXpGp4IcFfVOsci3H3OlrEbXzoWNu14YX0r0nRs02ggLKQEddM8gxr3ES8lxkjjTNqE62JKRSuHWN9bbwnLZmKaZ6V52l02nF0G/npAfvsXy44/IT5lNb/SUwBrr+kTSA1vdsFYoZSPVyktfmbvg86DmI5v1gNB7wqXEZdg6aRVKeRfJG1cV8kXwafBz5cj/vjx92lvhp7K8hwXdBEZv5Bwcl4xTcoA/cxbG8D1mqpCcmyq6beE4Qvh47cxT5qTPbuGY3hT3fQKstN6ZROgY7sI6RuSZCVsy7oykXEf8uTKYwjtO22LSO1K0GZYdi6MQlz4Gvufpt82IuujEZp2aglNzC14k3SLrru60ZWU6zGjbOOTEVfd4RRusdWZcbpR9YtzWEReW3qPAIAv3bykvf7hw93ZcHEqC7VBo1w3VaDrsY5+O27NlOh5iIjEt/9qX3uMf/t73P9V98FlbISEpv/rX3ierRwQsVdxWhgn1VFCE9vSa+VAYlumeKGoUDOmd+1Q5SOL1R2eOHx5pZrTzlVEqTuI8Vh4nxZqxGiy2xTRJ41Bz//g2t/VGNWMzJWvm2m+oDspU6b1RSo0LvcnOUnCun5yZ33rE2sqQRMpG1rKLnTOGUXOKsgFxhoe4nyWjsse5SbyWmDJ9MTpy/vJLHKYCVoVChxHi+Ig2BtoCdcporlgepLZiVyedMqdZWa9Q3lbSzsqwLqS8kaTQ+qCkTCZqm/1+sNnG9hLqWxW3jOoSwnyCVRcmg84NZUa9IqntrrxEUkfcGeaoJqY7pY1w55kNxlnJc4NxAG9Ap7crjuIyQozA41LqRtID6srk93uEcA2HlXaqFXquyChsdkOsoO64LiTLdBckKTQhVSNl3afujueVjJIsmo7VNEJsbtFQm+Li0cX4W3+18N/+LxJsiM/x8ucB8vPKireO+wiYrIwQGnc3CWJUFdYuHHaBqVsMZVwjlqEqMJzNQ14oYnQNIap6YRBNYsMcT4McVRjxXJS4SMp+voora4ivSQPnEMproBt8gCYLMSrtbjNxNElE1UbBeo+oQyJiGh4OCuy5KTGGNdHCvgsckuLdTieb7tF5BRshnrqDGqcUEV5U0RS8tpqiGWp0oflgAnpXtEDWiN9XQPRnT79/8Xs/z+McTiMnzg6JGMyMPQ5cxKMZU0cMRjzETPG9HEADFWJGxKpHuAXdhO4BgdccHCXZo/rh/hJKLftzKNrHkmYwj2KcEkUBKeVwqGtgib3HhdKIn2GeWJaOYKgZI0XwSAw6SikgdeB57G3kwfxznSipIknAC3kyUjmwWsSZVEBS4XqOc0EuxvEguDSQwou7L97+kd0DKhpNcU6DpmgWXJUi+6nCJBh+UlET8iHcvt0rJQ/UC0iijyVYdkXwNTNNjs26x+0q0zHDurx5D9QsDInz0naOu6cYSLHd2RkxPWvBMXKUeiRKR9LenJtTOLuqYkvsT8yQrPFsyiliVmaUAnpItGuHKWMSz8uhiWQN97hPDHdyUUDjfuzx/PNeybmztRDSUwFrHVHFtJBsRSaFg7BtGelX+l56dXkCrYNykj2ynVil89t//Zv8d7/z+5/aHvhprjw50zA8AQ+Gv8qsB8gHZVgMZ8ycWZXbxTjkxJgMOXRKmmDAmjZkzKTUOJwm2p+csa4UqVzpoDc2lI+2H3EZhfzSSFpJKbP0haUNbt7QkZnzhiTIO0/PpbLtNTfbiLIJ1YQRnPDhwNrQO2F4Qmk7h213sHqKO2LYChFNNGskgskmoiG6ZuXwMPP61YWpgBCMRyPe770TpXUeMVZESBbfTlcP57UDnsjU0G/GwBS2bdBaJJwGF0qu2HpFJiWJ8b3vJP6b/+n/Z2IW+6X3vUOCcWUkMJtwMYrecGZ8hECQaljZehO8NA56R6+3iB76xioL99zRxkZSp7SE5Q2IDLNKImfFfbCO4PHXw8ZxKrx/9y7vrTMPDxNycNJjxv+w4+9Vjr/3Az7+ysQ1LcGDESG5xgFQGyXNJFdyEs59w+cSzUu5MUahjY5Ywm1BRWi6kQpodbalo3nscN/KZMLybqK+8x7JjdwTm29s3XnsX2OjoZfGOS9gB24fO3M6MKSSfpzw9jJqZKcnuHfa5cQYV/IslLeEZV0YBrquHOeJ1DO//d0P+ce/879+2jvhp7JSSaxri6++53g5wN4eE1/GPmK6I+oUjQai7LCJ0OrE5bJS98iXjcFISja4LPamxtUslOrNne4RwxBzugjTGDQPaPa2t65Eg9aeRR7OaYopyBBYbOwxjf2wpQHb7WM/bJVMax1wvFb6MI5JGCts6mQJN5j4Lri6s60tDnwWU0JDGG0Ll9cYaC2wbeg00VajjYjEehuku3u285np8ciyRhNenhNtFYoN8vHAsm5xOfHd4WHspByomj7NLfCZXEZCxPjaB/f0tiBJSL7FCwGPWvu+UucZX25YVfrSqVk4JDh8dOFrX3qP7z8WptP7mDXaMjjd33PdVqx3Xotwvm0cfFA90VLC10ZbLrTeaecNY/DOO28hT1eu0jlME9swkjqdxuX1a+4fX9AY+BgMF44v7vEspPk+mFxElLf14NuklOndosGrRTGHSqFkoIcHQ0UpMgjywPppfhSf2ZWAv/+9mRNbRAi9R8RTw0eQq2Bd2bbG/eGAJyEj0DJlcvrl2V0Zz4BwoFQmVawrfsz4Bewk+MVZr4P58RQHFVtQmdDcWXujasb2dh73JQ7CFFTAydgYVE3ogMFGa42UE2YTUi5gR5JMAXAXQTgiGpNw/AisIZZ6XE5yXlkWmA6V7hnh7k2s0SHEOR+UAF5hw1nTAUkh5HdzyrwyOnSRPQoSh3k80WRhdN2diU5PxkiGN0gpnmMP20eUGDZ+rtefF7I+eLsytnBTNpTiMEywNym/cApvpjERdsd0jydIYgxhSraXqgRrBo33XhZwc1pgjDAfSA4xzCXcTcNCmGr7tm1YNO7WgDk7hnjGjb3QRBEPUcsk4NueIssnorQR73hPUDQ4VYpEoxyKJmH1Rh4RkQiXrKNDaN2jmGPEHtI3Hr1wJJvD4hYCiukuChqi0H2H1z83kiuIRcPeILiqwT/8nG+u/4clwK//zQ8ZvgRrU55H+R4MIyGKUMR392/8p5KEE/A5Xzx6I8nuICBFC6UNnBCi2NOmyXVvAExIkR2JALkowwTdHfrJlUjHFyj6xn2YpKMeTgR24eB5/w0LkVT2AKN5Q0hMZLY+WM8d6kDuM94UEyOrs/VBGoWsgzxXuodjNFmmW2OIgCVOJwUVOsGAk9Rwu2P3A3xhlgFiRgdyikFcTeEWXzdDDyfmZOEEX5yUOmaKmNA3hRJAd0tOX1eK9og3X2GanVsXUtmdVprYxohyr11Q7S3KHEYdyGFvQ0Wx+YikTFbwtpKKg8S5qa1OvstsrZP3SFdWx7cYspAL06w0TSAZvxk6K6yQUjhKBUG74aJ43xDNFBE8KX3EPUF1D4n0cD6HmcMYK5gcmOaIZHaPPzMZ3M4b85wYI75jPhQbnb7C4R7cKlvb9q+akVPiV771pc+tmPVr72auajsPD+yuc9gS2ybMBXSFsQmocCiKzQOdlaIF2EDB9Y5sAyGQNr3H+0fblethZi4Jl0E3RayzegG/METBM6p9dyYZa7uwAlnTG2eT4fiQGEyrh2fPHHTg40A5eZTpZMf39EOyMB54jYZd9705OEXpSt9GOArdSKLQC2YXaufNxCsKJ3x/nsaZUgf7czsGTREDDiFeVWFrWDJSN7qC64SOTk5CoyOaIF3RywGfQq95J/8pJ6af+DP7TIhZCrx398CpX+hJ6Cvk0tAxYwjmCzlVRBdgAhlkOZCpMG1IV0aNKOC9vYXWKXgG3in1yHIDZyPFrIcxQKeMyYGH+cD3vvNVHt4/BmBvG7ABm+LLDd47Iv/kD3nMH/D4ZeP7nwjXtpGsMSfBeo6MNM6Wbnx8HnBQdLN4oC1Ksxu55OAkNei2UXLBZ8cvZ1IqmAbHyq3TtLCuZ2Q+YBib3XCfyaWy1gV6w7XxUB4YQ8h3rxkyUW3ldn+mb5mcO/L0AdPpNct9ZTkL+jRzXf6Icn9PkxY/f40D5QvOsaE+h2tpgy7gaDhgYvZHoe9cGfYqUecugbdOUmXdOnUqjCSc7gv91rmsnSLCetsPW882U98P3n23sWtUmGLRcjNQNjdYBqfTxNojXiHuNHOyKps7bXdvZckkDBsBfs+7YObArNA9LKPiwu22UFQ5j32KtzZuy97Q42Cq6AO8+ug1n5xX3nn3jtevzhxfHFGEMiVGBx0DyQVvLZT6YXjvdJy7k/PqquStk1I0jg43JEV2eiwraRkxat4vjHtog7H/42frn18DQTikK8USJ4sHPj1HvGU09HLDlittG3xlnnj/LeEbxzvK7/9jvvHND0gffpm//sM/43/oV350iXhoLs60wuKD88sLMoRNYekrTmaahXp/CjHCOs2E2/lGGvBwN3PDKecNcWEqmancQ3Omw8RtP7ThirQLWibydCTZwuV2QzQjYozeITnJCy1HnFd9I5OwPZbaCHfab/5C4b//334mZv1Fa6jwm7/YYNnoVO5yplhhozHodIFcjEkNqXFBNhPmHDEZe33D9UBJAWIXLXS7gQujVQ7q2F3CvZOOEw8PM0ij73yYbiE8TZoR21CpRHhGGKwYKZg1w6KpixAwsyc8JTazcOL5RCqD5bySjhMig9zCEg9x+BYNEaBIPLc6kPWO7ufYS2OmeWeQab6GR0Yd5chgCXHCLNjROqIt0Y5kXTGP5z4udF3BM4XE1WR3fwAupCo44UBVc8jOv/ydR/7H3z1/irvgp7dE5P90CxYR/ot/90P6toarhMYNZ1i4DYoLqzvJEuTBaIYUhW6UFAwR0QDvR8SL3SkVg94u0TZWALcOmknaUTJaLC7+RehjMOng9JA435xtUU73zv0jHA/OH/zAw9wHuIfruksIUeJxePfdtYzKXjmecB9okjhgjwDgOpDHDukmzkPuutfLGXgimUbTUlLUhGQdS/tJQgwf+0WwC1JiGl3VsZaYp0xdBtkHx1OitUF9/rWb0toXO2b9b//d38S9M4HpNHQAACAASURBVPbSBu0NeW6XHIGDEIRkA5EQsMXje65CONYRqiQUYUg4TkcfIAlTe9P0pW4hgpGQROAQmkEfeEpkhd4GGg0RsZ9qkPscCeA3GWvBEMzUMPHx7AwVsmQMI4sAFZHApCQRqlXsNrh+slAfjXw8BRvXBp4OpKJ4N6wv9DbIx0d0npgs9H4hQNxVU8DlUwFp+BdMzlrdqBpmgh79Eiw4YmEomI4ZrYIsKzoUWTM+Z8qLjF5vdD1A31hfXjkcgtlXUsEenPz4gsdpoW8Zy4VxPtNXYySn5EhA2BhvSlfu33+b23XQWzzTnAFDIQsZ8KZsNycflb51EBjVsRVco9gnBPRB2xTXEUNnHfQrhOTeww0jBlWRp47XRM6Zvg3k5vTWEXW6xftzAByFlJX81h0f/ekrHr62YqPEn7vHfmuJ+Tbww14yoAuXa2Bp6hRONxSGZVxbcAHdSSr81i99+Cnugp/e+nd+dSblC90cJFGrsZlz0BScyEmxg7GhgXkocdPpaXDqSj6mKEERQ3vh9sMQT4/fUtqPDXlcWHvBkpEtzjrq7U009JAfiP4vx33D+8wiazz7xEJIJyL+4EifcEbEmS0wFL7nj8QUkwZjb12sgCfW1qJgZXdQi0JKgNvOiwTTjg9h9UTVEQVye8TRkUj/SDhokzhXC4esmoLHc5lmwS0nHK4dA1sZmyFVMEkkHww36nylP1Wm+xtNM7/+Cz85nuYz8RYdwL/03gOqwpwHqQyMmSFtb7Q5kHVCuEPGEbVCErBcGa0g2cnEg83XFcZGGTDJjORESoU8n9CcUQZ+qFhWXkyP/NKHX+Hh3SMcasCVThPcg78WODdYLzDeRb5bkFn56gcnPjhMHCVzt95Rl6D2e24kQpRItiIeB7Lu0VQjvWN9Z8a4BxxNQY5R0bptLbgO5ixbo9tM79do2QCu62s2On2rseFHZmsLo72k50IimpxKPpAnpyWhny6s5x6HLAF7sZCf3qV/fGbuUEzw2mg4Ohpvy/yp7oOf1trQaJ8g3FOtG1l8t7THIUM1rMOKI25YMyTD6B1pjWbOorAN4fUWEyETuK6Nm0H3iFMMhHXAaiPaB7OyDmfd+SGWMm3E32s4Q+MytQ2LC+LO29pap4my9IC6JwEZweEyj0l61nhxa04gwvlp4fLqiqrw8HDg8Hjg9PYd0/2EvV7R+0pVodwdyPf3XD65MawFsyhFc1VSMNs5IioMU0pKwfh4PHB5WuLYZIb1gOUi0Zw35kzfHNmMJAG3d9tjR1+gg9ZPumTnOqhBFmcTj0PQbcGeFtYfv8SPM+XhhL41c79u/LJ1vt0vfPVLXyGlzPbRR+h3v8pv/PIHfF0at+WG9c623BjL4OHFA8e3j/hh4nR/Yr6fWIchkgFhSAnuWc2kudLWDl2Y5jnszKOTUMjOuF7IKUdUoyrXy4L7QHxj9MF8OCE6SPMJJ9wb7oNEJnuwYhRIorgqY2yYCz//4f3enPiZeB19plYCLovTVFA1mm142jDtpDn4MEMCQow1jEapQndnXDYO90e47NGoVEgygqO1bZw0Me4zrhvzXca8g20BQ3chwO0J1UKn4Z4RNZwrIhUi6ICSMBeGK906asGI0X1Kp33GKfiWqOmI0undWQU6Af50cZLq7mrINC+MZnR9xXarjAGLrbuNPg5JboVmg00DVtpGDqaIOCKJLKeIDyrUlBBzxjDG7shejHC+ygpiaI9IdNKIKY0RLMy//fPzHnT7/K1oeiTEJ+J9qKOj4iyj01ypkkmRvaNLTGA99zfV8ljEMZznn8U+kBHQFO8B6QFeZj/U7rEY886Ld5WHd3tE+sZgjCgVaT7x6nXE/yXD00W4XDpP58zpAb72tYgV3sxoDuyOva66H/YjpuguOOWNWxpXend6E8yVQQycRDxErp2HE66c4NxoieiSjrjkKdBs7JXlER/DBnWPVKv3iC+OTmPjMI9odzWjeKZqMLta60j9fO6tn2TNU+EbX82k0QNRYA5u2Ijzcu/RXFjCx4z4IBMiVDgDotUy4/t3OYTUGOSFGPv8980ccY2zW1zr8BSIB1zQYdCVkjK1lmDtTnV3s+reDB4ti2FmiITHGHvD6l6C4B5g+YiCh5hGiuh1LZl6VzgeK+t5oS8rQo8yKlU2M5bbYGzKfJqYaqfmBGNDd9bS81lK9oCduL75/n5RVt1bUTUJQ8PltFrcqYY563VhufYQf8ZA5oHmAW1DNFHWhYnO3f3uzB05fl4tlHHGthQu+dsTWZyUE6ML9WFmEri7n6kpYx2efvQKX1oMh0XIaX9PejRfDnf0MEgSnNksBptHkfoIJ6eN3YUzDJrBNvCWYUgw24Yzbo70zLgZY+kcpkKajyEmPAjTY6EeE9PDgfntyvwwk2tiCMx3Gvyr0fchefx/sg7iG5YcnR8DR3EW7u4VKRnJzlGgEC3D7nl/nsYw8jf+ylc/5Z3w01mTXohue6FuRnqtnGbDSouhxzqoIsG8y5mUnLkqycDThA4hj4za4PynV3wbHD7IHH1CHyZyuY/46zYx/BmsPkAKmRJnIm9s5jjO6ivJo+FSAMyxEUzJ1HOI4dZxc/SNCyscqNuykWUi5RJ3Ow8xtrSdbfzMKLRAAMg+iBpm6Ij7iWpHVTCcLOG0pofTemCYOKaxX70LGx7IhuERcxWn+YikjgX3WSfBJED2A5ipkCbKUeiXjHrm1/7K40/8mX02nFmS+NbdEZMt2BsdMgm3js2DTLQ1eO4wBjkr4lM81NUZVvG0t8XlsBfjgolQEVKeaRkoivYr2QOE+yvf+QqndzPUgC9zOCDTEV4/IeczboqsB/iVKarHP1HSjy987Vb58XD+TJ7oHh9OMqGtLSbAWiE5bRmE0u00MbJHPtVp9DUeCIVC8xvZ48UIGfMzJEhywGlRv1sq1gc1rSzDSDufqKdBlRGxNMnBhdBKtczKjWUBPd4gZbx35MtG+tHbtP/jzDieKW8XmIQmja/ff04vk9bxERXMuOA5phKCRDugjWAiOHit2M6zQpwpJzYPDw2yT7J3u/ri0FRhGHme2HYxyHt/w31pm6FTXKRcggfS98mOtIHNNfaMCGszNMeFajjU/TCXi9LNabvBnuHklONhowHia0vj7nFCNJHM2JD9gAT2tMJpIolgwHR3op/PyIs71ldXpi+dsPMtKn89DtbZIKWEWmNphggUNW5keg+2Vy6JYU7frfzgyJzx4cg2GBbfyYR80c5aP9FyEl9+54HtxwulJnxstL4xnwqHY917f41mnfs68Tfef2D+8RP9eqMcDricyN96jzU55Wsv+FXO/PH//CM+/sMz737ja1y3S8RFDWr1faoyOJ4OrOcnpulASULbPz+dJo6S2NqGmSHTRNbEcj2T64FhzywaGOuN+7t7ZjG27pAzW99QjRjzcwwswpR7fl4D/mzitB4T5oKBvYwMzs8Ez//L+srkFO1Ic1wdy/tkCwL0mjeyFtiUdABNic2NlDvoTHKjiTP2g0+RzLYZykSvPZgQKeqYodE7kDQuY96AvSIe9oN5QPwCrJvCAWMg2tDRSVYZBjllXK5MZqif8ZHRBCYL663sFfc3xA/IVEJQsgnzGzZuSJqwDOYFykpbJlLtOB1ni+iGF0QN7QZtBP9qF9yCI9IQjcswVtE8wrrvGgMeerCT9ud67wOv/+x3n1Jcir80X98cED9PS57fJ/7mn5iLsHjDB2QLV3AfTknhhEkCK2ErMgvnSkil8uan4ra7vGNQ4wJq4ZgJcHBMfl3jDPTqx0IpQhsdd9mF7Wjv7SNhrjw8Gk7ifBPOi3E4hhDnEnFlh+C17W2GWWTH5QiaA/5PHrvrLvhoWTQugvu0WUTiArqXl+j+Xg6OVyOleA/3EYKJmSFBwOU+K8lDcM7Es9080ZNzeem8uNdo9XVhsU72wtgMDtDli+tb/gf/0W+TeB2xuh354CNyveId2WMtIaXun5F4uPpEsP3CiUbMT0xx3dt1gaTRtIrvPCwBSYCFc14MSlKs7ZHlYyblTErCEEPEdqhvrCIJhlFqou97puj+TDR71sUiEqYRU8SJgcOOOvFulINSbKZdVqZTQshsy4Z3YT7GdwQMqSVMjlIiSiRK1JCFwwzX/ZnmX6i3pwxBc7x7aMGpmqaJ3oWaLxFxZwSvbwhDg8GWXbG1IepoSZgptQolDzaZKaqsa4NlpU5RDDI8c3dUrjcY1xVTyHlgZ8KRIxktMK5n6lEpSTm/3Kgp0XsjCQyNMiYTi9SCOeWZJdri/ihF9oKLYPCmNnaxYWC1oMdAPyQHDseISm5XJMFg7E2YMeBxLyG67uy/hJNPB5aXF8p7B9yNUoTFhCzGjUS6rCxPjcOd0X0msWFe4t1OQkejZt35p7rHgD+fzy51KCjDDe+J/GKwbFBLCMr1ECUj7iPaM6XSGaSsiCyMLVHmK7YqVSbKuzMjG9v5DI8P/FP23u3XtixJ7/pFxBhzrrX2Pre8VnV1V1/ctrrbwoBkLGSQLMB+4An5wZaQeIF/jxfEE7whDBIXy7RlsA3Y7ku13XXLy7nsvdacY0QEDzH36XLLssrI3ZnOqiGllKnM3GfvPecaI0bE9/0+aZN5VXy+o0ljaKNrI3KvVMGIslWbss9y4qSUnW+XwiSITLpVQMQ+yzbdNJmHcEK1OKGtKemjGKhGBaZosrtwOrABEYnrRLwd1sMarM850WYsz5yYiakx0hF/GhQBIUyBGMFqyk2DzpFU/MTFzCeffVaYWSRiSQ/lmoLpYNfqUXQzZDkj+yPfefHTOza+Fs0sSecZb9h/vLGkoZ+sJJPlOehcyFNgnBAmfVHGCFicTqf3tdg+YhjK6dIKzCj1Ad4RzqeO7ZNNvSwxOOf+grsPGixKtkB0IdsCfoW/+5a8bwiv4BTw+bVSKU4r/PIn2G3iP/oxD19sZAyEE/PhymRFmrDfRiksuhwx0TdiVBmuEuRsSNYUnWzEkqx5NAZylgUiAjzYRfDpBVO2Svw5tY4DORXbYcgjZGcjIa8EDeMMYuTdPbq/YeosELnB+HTDXpzpQ3j8gbPZa04fd37zo29m4pxm4KJML4ioZVn6TscHmgNY/pRkM283/NzJ6bzz4HRa6VKgYFGv5lZQk+aj67xv448xHZLel0q+7I05JzmqOMs4PPdN6VGNsfA6XAxIKyjuHoksxkzwkSXB58mHXLHp25ePLKfG5cWF4VEHHVnNr0y214N23zEV9ll8rxh7XV3nRJ+f+PIHn3H/wQe4O3Nux0XTi9EV1bSKDAylXRZOa3Dd4uCclIQ/EWYUJ0VJoik2qDhjEbYZfOfjj766l+BruIzkz333JecPIW4by6XRWsdxhmalXeWOsvDJYvzyr7xAvvsKDPzvf4/45FP4z/9t1Bvy3/5v8LbxH39yx3+3LKw62FvHfaeloFnPcLHCLOvlHh8Os6wb2us9lQhkh5zFQfMsfpwCNJjv3rLc3XPqnVR4+8WXnO/ObENQ8SOGN96zYDKdIhIpRmeMK3o6QW6o1iQcvcPlS+Qbnhr3/2f9+i+cIa54V7agEldbcoo6S3oa06GtirsQAafTAgS5BGObtIeFXCuERDx55kCs3NZEc7znwaQkooYgByOpFM/hgflKt8Yej9gALBErNWmEFx/hsH2kzmqEpaEEIWuxPhCmG+0UzFBKzuOMPRFtbNwKriwCOYFezKMI6A8w7ogeBRrXROwGLKRMsnPYBZWcjS0NtNQeWCUUemQl8SAcM8bj+wcEzpfG1QfhQtNOShDNyHlj6jfvzSxBlrxnPgL8F//pd4pZJsHIKAtPVmR8NmHOLOedlNptRtR5RDGvIuryn1n1zkmFyxker42mjiukaCXeUrbApo42YBazck4nrfhTeShP3rxr9AVSF5oJt0348q0yXdml7I9TlWf3sN9gHpwqk2JZmToWlViZh4RM6j5WHByt86u8Z07ORHq9ouKlLo10UioRczgsh8qrabAskxzKSTuf587wOtOlHZByUyKTtVUjNYfAqT7TP6uTnu/+4nc46ZWYWvy0cMSjaqtwmiSo4GPSpBQKiWBZKZqajmkjxSFKWYNE7UUppFpxcmt3O5JUDZlgmWijkjS1lF36pEowjmGmglrZGL0Um4wj1RdDVTAtC6R4KRRMykb/1CCOhK4Nyagk2Gllme6Ne2u8fdjYrpO2OtdrcDkv2HklN2GPB3KftJ68GwNLL0tQltVfDpW+HsOGn6X1eJ3cPTMIpXUHO0PekCjl7f35sPZp4nQaVWjPMbDmaDQYg946oZC9wx4HK0hQK8l8RJIyGRNO5woOEA9yBHq/EtcHTGA8VtCTdYOl0Vtj3hw7GfOo3WvjrHCDyKgkxKWTwKaJzUQHBcBeKrGwjUG4laOI6t6HCyMmvA56r1CgCLDWamDVG3NwNBKyQlhcWF4Z7/5AeTUeiOVS6bRSLN5tJpfra84f3Jf90Z0xJoskM5Xb8GrcxyC8LLSRpVL9Jq4Up6URN8WWwKMsgSkwrJpLi5aljiZk84ObBxNjNYHZeP1PA9rO82cDRbm9E86+4bbSFkelAuiSwZbCikKU0imjYjhFtVjKKWzpmC5Mv9XA0GfxQI86DSnRRE+YGaX2vDrtbAQ38Fb7lw9OS6sQgKXYq8yq5URqYD33QNc6g8Ngf50slwoNcC3Os0aFaswU3IOtV0Ln0BpaJ8J2DK+ACuXQQ1E5D/t/CE4rl5B0tmjI+hZ5e2F9/vanfmZfi2bWpa301bDvfITNd3Bp2GPw+KOF/iIxb7TlkZO9RNvE+hnTK92og6oJTRtdFO+d1oWlKU2SeBxME8yFVyLkWh72T57dI/1G6h3SGlysvOe//SXyybfJ3wR5ULhbyftJ+kDePsLjDfnMWX+YzKE0OaGSbC5Mc5iVtriroL4xDgbXeWm4OEOrCSUSWDScQbNg3qCZED1omUyfiDZy30pRxMSAfcKIYMaG+IrgeJyYeWUPp7cLixdPBa/JUnswtnPgDKD8rG636rZ/nPTW2X/wId/df/QVvwl/MkuQ4psd9s6IpEsQoUCA2ftUI1SQLWj3jUyl90Z68c8ebpOtorsY05kHZB0RbmOveFN9AtDCGAfo2JS2dMyUfQYuBXuQhMdDRm8CdkzBoaTSRJT0OEvptKyNpcHVC9AoBC8+OBNZ1sb6H+trzzdX1pcX/HlNhFWFroqK4Lcb2yh2iBCs5zveff8znn36imuU3VDFaJIsTdky6oLhyfOzcX17Q09LXWKhpLCH0q1pxdSGlIVSIunHRfCjl8++gqf/9V0uya9+smBMslulrkWW0kALwtitJja/8vxMjiA/eY5+fI/85b+A/Nf/PfxffwX59/4C48U/gr/867z68oH/6L/52/ytz95V88OTGI6tJTkxEp+OkCxrI8dexdLSiRnQV6Q76/qSh9dfEAoiiueVDGM539F6KWcfYme5uzA2R7XRmzDEWPd6/tEURhzg0iBkHEmdNXGsrPJKab1I8pBPhLWfr6f1n/15xbZSCc0WrAE6Oyw7OZUpQjPY52RZG5awX2+czyuQeDvxzIJlrqwZnEP4/G4WfP/qSDOaK/TGgxkzahImkeg0mhVkdspgZp1JFTU+SBc0GmszkgneCKlGyD43yiRZ1r88wjGcg42TBxSbreTtrRLwUm+4n7gliMzjz1SEBe97FXF0mBeyPzB9gDgqKx4TyVEKGBfKJFgTzIh2gEs3NJXJwaLIToYSJDuBDMV6VGOQKCsIyaen5V/ylL4hS+BXf2HB950xKl2riZRqPQo8e4TW1uQ1i+ZSK8vycOi9zCpZKQi27bAWH0Emu2dZPyvJgOGBb3V5FFXaUuxJD6smVz/OaWlsQ5hZf797MbcykmlKivD2mtgBq69miB7cJWHIH9nzNetcDRdiVrP+yeYVKTStn0kPzTEZdHVsVjDAKsnzNfn2vXK/Vm332T+FLs6zl8b3vnAGyvWqXO6C6U5H2B5htgJK5zslrXH+6Z0U36j1N//6b5VVJqtBLZ5l1zugyUSgGUcD8qCb5WRkwd+RXtboLJWvIkfzkiPlbhCzI60GNoRgGbB0zqcTc+zQjK4NRjDngOlob3g6SUO70HWlO+AbfV0OJSLMAeJHg+1ISBQ7LpazrPy5OVf8aPIf6XUhaG/MLjx7sXB7O7g+Dk5n4XReywbZBLnBvF3x7bjgakOy0sSK1sYBqyhkwM+UsjmVGaDiaCZLXok9C7uR4NdDsSdCW5LwRPadVGVMWC4Cqey3nd4NkXoWbo3xo0fW5zBDmGQFT9wmbBDuaFNiS+R8Y7m/ELcdlZV93gDwAe2UnD44oZm8vj1UMzbLcuXhqCVTOtwGvR/YBS2FoarirjBGpbG2MrnP6lXQtWEx0WVBbRY70BpjOupZyY1Z77ZS97tBcrJke/WMz7//GR99967wAHPj+jb45NdfcXs38W1ga4dRCY2aXomaXmiAMYJuUol2CjG/eYplAL0u0Hfu7xojJh6Tnklv1QBqa33yLJOehjuYK20xYDIyePtPEmvKq184M9mxlsQ8ERrc3rzFrOPqNI1ys8xO9CPBlQRRPKpJJQS+BbJC7BuHOJrp1Ht14K6FUijPhPSVyAob8FEJqhFO7AcTuTvxmOhMmhmJl3I1hDGC1oUpgqWAKxIVOrHnoQ4UIXt11PVgp6oE2cpuuR2W35aK7YUo6Ic6eTzt0RNSo7rykaWGtcdS2F4GvP7pn9nXopn13IS2dm68YV0XwnfiHk4vkv76rhozyytuvOMyz5hsqN3jVFdQUpB2Qi1BJi2MObPsW9055YKcnD1PfDJX9ueNi05yWxBNUnf4McgPbvUEPhF4rfivvYCPO9M39HpD5g7eybuG3L1DPp/EABnBzbwGynkqN75vhAitNeBWYHAD1Q4aZEw0hNCJu9DPg7ityBa4VwqFx7XUL7lBLowYNUXO4lAED3TtTL+R2Ti1hckgdsFOiXZlmbDtSd4l4ssBaH3EMfCB2IoNYXm1I2++mQD4eCpwSJ50ImlSvnE9IsNHXewknA2hRXBqdTETjMdt4FIfTs8jKjxhxnxvv0mpTSkAAtSKZWAOY9uQvmCLEbPSS0SKKUXCTLh5+aElkjGKsbG/uXF5ttaUxUsVFhzydWk8jsAyWJeGu7AFPPzoLeeP7tnGqOmBV9T8w7Um4D6Sk1bHffPk1OsyG9d3RJY9RKgo9tYFnVQE8RyIBrc9WHqpaGbWVN6pRJd5+J/Jmny3YgOD5PtG3c9XLcvE2BheQHQ5pm7WAh+BSZm/FpQzgX9YbKkkkG+9JP/GXyL+h/8R+zPG8uf/PHz0WFKDNvHeOOvCKsk2JmPbGftOv5xLCTirsApgvLvRmxDW6HPgj1e2fGAfBf+XtSMuZA5mQjwGN6CfLvh0zqfOw8MjPhPra1kKA4JK3elqDN/wrEvuNkHHDucTqDJ958V95+HNzyHwf3y9ermRe0XLW1c6Cz4H1wmLNvKIf29rQdwFQ5vgsbHsxqkJ8dEd/qXw7NkZebjy6XKpZvojyLOEnoQK+mVyjU5k8NASazvkCUlHmHWhfLJ0URbmRZycDWudaTs+k8hrFeHspK+MdCKPlqYoYXX2OVp2oAXGtqBaAwVnw+zEGEWtqEaIl2NfBV2U6U5eG7oGsAL7YRfUUlXQ0FSUQZQcqFKH3di13usuxj5GCTAwPJzeYboiYnUBliBo/MonX4tS6V/7yoPDQ4JhTB+HYq04RUlB+vc8ksOk1HYCLKrs8ZS4VA2kftgxMyZmRkNrSuMTE5hhR/plsju0Vs80M2mHJ3FulY7oUWDmgVfN4zU8ev5SeP0aQlo1QqVUKkmlLj45Qp0j4l4FybKf4cmccjBNOVRhh6JsSjVBpQptk/r/6UmOCZS69dKTl134pReGboru1QDNmfQWXFbDXpz4nS+8ptBK/X5GMJuwT0CUdpm0lkh+M+uuf9k6d8OwuqTFROOwLAWgXs10ofap/fgdZpaySWsoi9S+oiJHC7Vqs/dWLAKReZxdpQ6QrqhGOSpUUetIjEIlaLkjLCrUBjvUhvsj7FKfCqt6LeRIUzytWNZ7BIqrFsuqKRyqZsLIBdZeStC512dGu9DbwnwEU+fu1UqI4XMnXWFUqpeIsJoxEZrU7yik2DSYlVrrPejhZ2OdmmHipXTSIzCnXhJEhD0VC6+9JhPt1QTat52X3z6zfensu9MXo728J283fFDNnPtywYyHHSzxWZy/cd3RS4d05LxiMcnH7ahzAx+HsNMSn8ntcSPnVo1OM+Y28Kn0tXEbO4miS6WfW1FB4FD9WSatt7JwjYEu7eCyATNZVMlm7NvAtDNnsCyKtgqw0G7ss0gP6Q7dGKLcvWjI67U4zyZsbxfOr1oFjPlrnMTHzqqNkcG7WIh9L0i3BM8sKbO2srsXk+wbuPK041L3uy51tiXC5s6pdSIGrVearWjQKebnnEGXM/tDpUPK3WC3SkddHy/4KehdibWhmuQWoAvBQKzUwUKWKvkY1iCzAsbWzsw8GrjCZLKmFWs3opq41BkqYoTuxaY6bIODvc57rXekOfjSiC0Zq5cNFiUi0SbH93DA5iWxbmyvg/Vlw/WPbPkphaRQqWAwPBgTUoz2pP6zSnxNkSPtvoYLi3b2GCypDGmITIxq1qYGev7p36+vRYX27PSCQdCWl8ys7nZrjdYW8lVyGsH2/Z31oxPWkj02eOtYdFwCesPzHbQLqyzskejq5Lxil2fsyyNne4E18MU5XTt3S4Mdog3kH0/CQJ8v8OoZnKp4VjlxvTd831mzEWtgj2c4D5oJH19OfPHjt4yWyCgIYbbX9PlBTfjcWZvQQnFJxj7KqmYFspVjihBoydrbxtyg54Wpr/E9CU1EVjIDtGN6Zb8J6ReSB3YKMJ/saLuQo+F2LZ8vRtpkiLDGzrDEJdFRG71zprfBNpPrtrH0b2ZR5VE8BlEj6T9FywAAIABJREFUDxtgTZGT3BI/NdZTwfEerjvtvGBNyGa0Q9J+8ziSLUqKmSqMfRIkc07CK1XC3X8CY11NR1dDQnALJIouIiQzha6lFFsVMpWxD/JIIxnboN91PJN2sLuaGK0pzmF/EAhrbPtke3cDhPOHd+yzDvLhQtMqvOabK88/vYcmSD+z3zYiiyd2+vA5j9//nLiU/WP3moRaZiULOZDJnPV7Uy32CJmVxFHWfMhjapk17Z6RRwT7TzBafr6OZbS91CeKYgjekn6kbbW1lR3KlFDFZpC/+Ap9830e//bvcPr3P4H2Bnn175AfDCT/AcTkkz/3LfR//gGpE4GyEEoV2T4n5gVF3feN3leevTrzbjjszjufiA9uXheIZkdRNB5o/YQqRBiBM7YNzWBPhaVRIsKJeDVWtCkTY/ixR0kFCrQ+gRPXMWkLWEs+fdH4wzc7P1vkj59ibTX1TxKNxHrtOYEwrUJHEEWnYiqETFQaoffQBrmWOvfuw8R+tMHdhbQ4FASduC/OlG6D5+fEr5OrHpDP2ZncaoAywUwRnxBlm3mKhG5MwouVVR9xQbOaSlEzRpJibiUBI0lpkA7RyXRam4SWXTmQQgW0Qcvia+Wh7kwoaLYIsgQxDGUpBc+TpZAjhSe1bPwKI25IlJUSOi2T9ErRm1m/0a6Ke2AtcZ/sDqbFcvqzH7z8Kp7+n+p6cXFOWgmFb4NS/QUHVy85BUydqAsuwiNOo9hUploNLDUwR6XRtJoVOYt7NDNIjWoUHmzGSbIcY+Y8rFmqB5jYhCaVDDzheA8aD+8OdVahjA/VTp2LmUXq8AhcS6V1kASwsLoIdMhRytiWxf0oVn1ZahrgexCaLD1RLyXN9eaA8Wyd/OLzhVVBLhvaGn41XpxLpyYTzteg7cJyOqxBR9Ld9bEGle3sLKpsKXT5WpThf3pL4W/+9b+GZD0nVHHfMKvayo77SwIWB2sl/XhOpQLWGFVriB3NzFkcFqn9KbKQDEjtO6hhB4+IWXVwDewoL6mV6qVsXElOR3ugoxHXUo3ZeUGsmqhHmFgp6qWYXHBYdjVBrGrB3kkRlq40q6a6oOxzZ20NtUbm9X3Dvi8BYZAbuxQsXKLqJlGrS6rIYY01nGQ8HkOGbyi/6F+4Mlikhqgc1mTRUiKZCm1SDUWpsAlEmDFAlOsXByhbsqD/b2+QE5mOiBLqxIOi/VC/zYFPWC/FE8rZsLMg0xAzPv+DB9a7lXYStFWYlDTlenPW+3v2h42xjbJZS7JPJUenraX9VJFKz9WGBMiiEEn6DqcVt852u9HlRFoNy02luGFqpCSnte6fWCdHpYz3LuwjiG4Hy1lQHSyXCyrOvE6evQpur5XQjTQ5BBbGAIYrZ4VYk7krI5yRyWJZd6pIxL6ZyqxdIE2Ka+aFARoZR0hIECjjsCpPqrE6Z9kvs9+4fQ6mk7sPTqhuWBq3x0ds7Ty+m4fIJbC21JBZDY+9hopPXekDCeKUGnPOgU3Btc6SHDXo8UPYZHLUiVqW9ul1xqlZJbaK1ol52JQ980DWwBwNZyJNsFZn8TyQAe6HDd+d5Zlyez1pzxXHCSsnkg/QlmhW870ZREwMI7Tu4JW0XSgay0aqM8UrPEicbBUSFUkNaFHCfvo749fiFP3uh0ZqR3M7XpYLkp0cO9o3dumcv72Tn0+22zP0/gX9bqU9u3C3JtftHctYkPtGX+4x2xEPlE6bQtiZ3I8EkpNx/26wvhX44gE5G3z3JfKrBr/zAHmG3/iI/I0L45bQki5nYiQLCyyVUvM6rlxVuJLMbSflBF6F9WBD8oTxWBuSLQiOrYL7jXYc1m6zoGwxcBc8gmE7Gc4yT+zbZyz390wpuV9uA2+VACT2CAl7LBjJenKY0CPYNAgWcq8oWYt62zVnJcupc24wbUAWcC1tknP/al+EP6ElByPjSQWVAre9NntbipelovRL4/b5A3aWI02plEVjOsqxORwFwxzlwfcZB2Mq8DmJMd5PiZsZYg2zw3bhziBZ+vITCqxZHX1P5vVaXXQUM2hLqRK6VNphTbaPCeOhfMoZkJP5+ka77/VzqhwpKVLJXlFASVRoS2d64DKYHA0GD9rYiH4qaX4W+FhN2EY1P0yEnaOwBNbVeLwVAwARPCiJaZY4KDMJOSTfWpcS/wk2y89XpZd0U5KFLsqWlYLqUUma2wxOJmhO7pYTM6FfFvZ//CXLbcL/8rvkX/1LpPwZhN8nZSXNkE9eIv6HbBTvTHF8HAEZJsy20iJANpbTyn7bIB2PSjVpqixpwMZtnzXtiUCfJudRkeCdp2l2FYkz5zGVTmY29tsNXU6oNESFsW+kGKC4wRIr4gNV5dV6JFH9/BX559aSBWVfel3KkbLzRgbPQtlkVhqSOJIr61LKKskN14ZLsmhybgLPjXwNfAhhFT+iO8TdhpwVtYXz7zyyjY7EI7kkHOom6afixsiFpjukIQcIfhJEbsRRTDVZSqGqfqhU6wIXGai2Q6FZQ6vakgWkHe9fEl3ItkEs+DDE/Ni3typxNMhQEK/GPA9ELuTuiJ1w34jTxGwhfPDE3hKBkV6KxCyzkIpiluxeyT+pQkywrrQtGaI0VX7pG6rM+sn1V/7ip7hXShhR58YUyFGsPSe4WHKluD0eySToogxPVm3kAVTPI3Hy/rnz8CbRWaDaKRRMXwK00Y/EL1TwDBRlhCBWqZXXKUfDwkgRmgnvJgeiIY5k1FZTYe912QvFzAmPsi14HurhgsVHVHpcQ8srdkyzZya9QbqQrRoT+005rRMJBRXulp3vvGos0zmtUqqggHkuxsh1F3iAzYXz2ZlZyuQpsD0otgrLqWoHOS6xpuMrfvJ/uquF8q1v5xH3d0D04bCrlGI9DqVWkgeHtFhWqgU6S5HDfhxIHEngKnhYNSYOpo8AKYq1o8md0CzIuZMIOZPLs5UMwX0CythqSLdKJ8TR1llPSlsaIUHLUpiW6g+IUhpmSUcrTCOpFGir5K9SmR1hE4BuYMtCzXmEgXOn0HvHZ1knmxbfLbW+dmXHVgNNpZSt6OB3/9kXNRj4GVrWjWpxa6WE61Ermxw1zCyVplQdS/U6WVZ5GpcQWim8SrKsyjYUYyIp2PMVGRvz5tU89E6cBJNqFIRX8lvOyctfOLO7E81oGWx7IqNUK+Pdxrhtx16ZNC3rvfTBnJVE7jnRXIr9rImMRjdlo+OPe30+tNcIK0FMS7BhCV5hK6slt6FMn0yvIDGkAmOQxMI4GTA6/RP44odXTucb68cvmZ89IF5ntAK9K9fHYKJ0cXbOiL8lQ1hbWe9NjWHOjG/oeyeweBYpwYoD+wQaiHDSoIXRs1hopg0WECaPPyjm1ItfOHNuSbSl2FJzhw9PIJP9cSI9ive39LIQSokd5qFCzZg0rf0isuo1Z2CizKPxPjnCyjhK8wA5mI6uWV8vvdTGh9K69rA62602KuRx0FYlTBlzYlmIt5DaP2sgmUwLTMu+S+h7mPvaivMsUgKGpNSxopVC68c9UY7ha6Wk1J1czdgysJFgxbWMPDp0/wq90q9Fhfat00ty3tBWd2X1HTTp64WWgSxgXIhnxvrLWhYcGxBX9H7B34IvSqeYG+gJ6UdxGtfaWNbGRRqP7zbG5Q6JwS/92glelA1QfvcCbwX/i3fMX9vBAz8LZEkANQdzdfSHO7y5cgvl3fULrg4ZrQ5IVxZxgobnaywr2nL4rLQVra792EuPWpPrDUnYY2Ky4tlRgse8Ie0lmk6+G2h3aDckOzd3rE18nmtCZY5vC861+CZ7QA66LNzGO/TDBftsxV/upbQYC8m1Ppxj0OPMYsnt8s0EwIc72xDu7qwUTeThbX5KZtvJZeHhs7dsO9ydaxqWY2eeVh63cXSLyxqRR5PIPchRkOEYG3MfBwimipBoRl+q8Cj1UlksBomGM0eUtQIOyHHlmy8H5LMDp24IST+g8Gp1oD7sOz6cy+7MU0efLcfXkmomUYovtUqSePP9t7z69DnjVmkZc6/o9OmHcsqT80d3fP69H5KXDlZWHlO4ZXFFmlrJVXXhzRcPR+pGNa1EinYkWTJvFUEliVl/bVF2gJ+vP1pJY5iyujPxUjxk0E917BjGjORRhM9D+M2X9/jbR9qP3hE/vhG/+Rvwn/y7CH9I8hnJRHsjHnb2PcieXOekzp6sBkBUOo6IoOf7CiYQYXvcoRsRjkswcrCPw36TA41S5YU2TDpddgJh3ydtWZBZk5/wLGsrO+vpghDM2Imwkq6TdeCmMyWPpq7w4eXJpv1VP5Wv11qkBv1NkpfNuGZdzC+cuOZgEaVpQyPozasJMY3WGv2umH+f2MKy1C0qd0F/eEZ+eeKfCPlLAraCKuk3Lr/+gh/9/e/RL0qGlZKqddRHgZKzCrY6vxT3VhdJyi42ZqUnRs66q7oROavhn4Pdj3c7JsJa0FKLQ5FdZ/ZTshzsaOugA8kVzwX0UPnlU/NzACfQR/QkzJyVbDx6XR4jKqVHal9qUXYdUwUfZFSIh0U7Iu8VunKbA6HsvwvKh5ev7BX4k19ZjZX/8Leese17cfZCWA9bferRWNDkYZR9KlVZ7IlzVkEPLnbs+6AaKM71baXIhdXQRjWIMY+UwCAtwK2CIrSVtSFqXzBTRJU4ivbe6xJn2qpyFyNQulYzdPisiS/VJArZSQdD8XQK71FspSxnJKPQ7pWKeVwcZpQ9MDw5XSrNakzn4sknFziPxmqDe5Tn3wkayvd/oDzM4LI2Tvel+Nkea9++bomswvIsUFGUurBsKag63/vsq338f5pLWPgv/6u/ih6JW3LEwmvU4FiIQ0mT5MhKlLR8bzNUsi78IgcDr1hrnkB4NdgxIh1LwzMwqyFbHJ/7jHpH/bhT7bdH1J6UxU4/L8VRohqvTbOaqVD7HvAUFpSpZZN94ttQoPiu1cQKiUOlWBYgdykrzXrh9rDhj85yv/LuOmmt12crqo5sVoqazNIgzixYfVJcU2uJZeN/+ju//xU+0a9mhTwRgGvQ1p5sT5FHIncxzEy8FCFZwQA5HXElziumwXpZuV0H+54sx1d0EeK20SVp64qac7o8w/dB6uCDb3+Ll68mv/ePXjNs0kXJbswx0VbPOgQYg/Cd1qp9VjuN4lHntMdg3irZHBuo1cBFteO9v8+FcG20ruXuGCASLK1Ur+ICNpnT6j0HWO2ox40+4mjiH2nSJ8VnQjjLs8a7t9CeXaE9Z7vu1WA4wg6aZjVt960cGq3UWhLObRZ/rNvXooXwr32teqiHoyygYrBEiRse43CiNPAUWiabO12EZgvuE/1U2Vs14+82kNY5tTN2XhiPezWyyOLuhRIMzEppSSaNpWoZDGWSrrjXGeqTA+tSFvsKJ6wz2yPZj0CTQd3BoIYD4lVMWlQqb2alfI4YsCpsjnLwJI87a0YWA5pCAniAnQXeBvpciL3wSQFgUsdyRKW7qh1cZWGN4kgXGitIr/8GVcKdJav6inkMekzIaOThPPtp1tfiTXy2NkR22F8gywN5UlrrpN9odmHMnbxN5P7M48OVRZZSpnhyezNZnr2inxwlMFMiB006iKO6Igs8s2JxXduX2D45nZ7BP1R4uRWJdL4h/8rHyMdB/yefE8/P5McnZATJhuwD+govlTf/5+/jUxA3eiZDdlTPpLxjxgeEfoHKguUxCc5WSSgRRFpB6vdZ3uMUkoKrmgDTEH2EscH6nGED1l4b17hAKmKv8Sn0boy5YdqJvNLinj0K6Ly0JGJHW8Wz7ijGlRnnKk5Z2BN6nkh1COO0fzNvkto7awtuDzttbejSUfz9oddODVkay/0Jv5U6JMbktjtzq4v/bQZqDbFkek19IwIn8DGYc+Kz4Iin88L1cSsFgDthhlkdMDEcPa2VctOs5MJPl6tMOkEHFpFiTWVxIJpapZGZ8njdyW2CO3G/YtR/t81SNixrR4ERs8xrrSFSEOn9kKyPWRttSE226hLpGFby2SrXEGBtxp7zsAodijGftbtFvodEZuah4nnvGSlmgSlL1iX25+snltRhiFTKJsTBk5GiiUgiGogb/88/e8N/cB2oTuL3HrHf+jXkz36L/N1/wJ7/L/1br9D9M/J7X8Lv/pi5ds6mmChjOq0v7NcdE2Ex5RqO+U6OQURyvr/j8faIKMw5Kn4+BHLgc6tifkzUQMwZs+wTIkHm5D0EN4MRSeaKtp3r4yyLhSZDpNh0qjhSSY1aKXwffFBpRD9f//xKBWUlJLnGZJFgUWF44tI5ASGdZRo2HT9DdojlxkmecdeM5SRIGtkWpBn5LpHtgv2WMp4H7k4LxbYqmJ+3C9csa98YXpdLFizjUGC2Uqqk1fNnx2zFfaPZSkRHrCEYM9+QacychBnqHfe3+MGoSpFSOngHuZHRK3FMArJSfjSWUmHFrCJ9lh1e5VR/fgB+IeWxlGR5Bhskg5Dj+0ywNg9+X3miRyrZEnfKnuil/Lj6wI/gDpVg98Tk8at7Cf6k1pOdgVLSjjySTQPOreyBB8asprClZcHl4AdlcLKyaapIAd0FdkmerZ3VkvMl2W/BmzeHmkSk0lRppSzQ4qZlSD2DALE4bFp1Fj89i+GKSeJSKXWlWBBuadicIIdqwJ5ouJ3MG45U8MvxY7soehxmmvB0ayzlXnJqBTZOjWp25I4txsWUcwBjkhM++g1HujL3YD01Xj6Ddk3mnvBycjop/Bj0Uk0ZccMWIVSqHlTB1Pjt//tfgXL7b/rSnVcvgphORlaCaqUsoO71zJ1K2QW0ayEi8OM5GWQUq0eArM+/lLiuWHwZqCops1RzCY3+vgGWmrgcyryndOm5IYeyytrBOz0sr4pAOpFKEz1SumofbFYN8Mxi5pScQd8HpyCCSTV94VBHmCGbl5X2fiWtI22rOs3qB2kd5qh0YDmax+REYmGaI9oPJwd89uW7r+ppfmUrpfZmNMvqTNXPKnoMQqp61SFkrzuQixYi49LoDebBtTKSrkslaBqkGBE7I5WugUVnf/cWWZSlLfzZ737E//H3/n7VbSjRhNZXzs862+ONtgjZjfN6BqlBcqPq6yCKS+hZA8dZ6jLUaVbdknkIUnprZf3To+ErVimHIWCBDSfTkB6VTH0MkcmoIcOshEUimddisOrLO5Zr/XqaGvFmkJcL+5aotUOpaswoRf5Mp+XEM/EZ9XlLLQ5xNm7bN5OZ1dMZUVccywKfe+91V6YGHyp135p78akzk/2LyXVP7lvVDToa73QgIzjFIB8mSQ1AJKBncOsb4nJgGOxwx5TiLnMwZrlxtJViQBpHUvhhtz8SVlPqea9UsJxl5YGJVCr1PNTU7kAItlazKaLuHrIK8zbRVUuTIfXd6NFgc63uv88k9nIWmR3CjmMwDTUYK/1j7c0ucdxvy7opeQizqKRfkzg+rY1gvofQa1ipuH/K9bUwvGrudE3Syq7SOGHhwMKeJzQbESeW0067OyLrxaGBtk7mlTEBrwlMs14S47Eg40bbYJ+DxxjMUG5+4/PbA/tHD/A4ydtGvrpD1oHuN/y5Iuzo4yNcH+FhQx925LbDH/yQ1+Hst7d0jCkPBU8OR+SOlEeUU/FLEDwbEaPSKUKRVGR6aYWpaU3qwFRIBtIecGmEL4Q4c+4Mf1fyUR6Y+ciSvQrDQ+6X84GMlamDwQ01Z+ZG6saMxoy32KuJPr7AbKkJmIza5FoypUCZ41/Bn/pv0ppRjJl+7nShLFeiNemi0o22bXK7TdZVa9LcG3cvFqIJ0e09XFKlCuOnKVDGQfmJakJUqt+hTkrQOP45a2NY1s7aW02ee6OvJ2xZaX1hWRrrYgcIEJoWZapR8kxBEYfFqsPe71f8sDEkAlZwycyC9ol1yGTMwO4aI+GktRFeuqGmNRHVkoHOAOtVYD9xu+KAB6oI4RVznV5wrKQKtcwqOLsIT9S1o46riSlHkstX8fC/xstilj0h4V4FqOc23dm9rFSNxobzw/GOvF6Jt1vJgpdnhP8AF1h+5TvIaSce3yDsfBlRcHkL+qnTTv1IypkMJu3UsVR0BtJXmilzbpWWGOVv9wwiJ9twxgb7VolAGYOZHY8dz0FMKfRRBu6VvuMiROzsU9Blgen0WVOXOuacxZJVlCbtgG3Pn1sM/wUrdhDb8bHT3FjinjmVpoMPmKg7/XGQ+Y7llFykccrG+Ujx67qUmiA6cgryMpHe4cfJ/uzCu99YGb94Yrw05qrEklyeKee0As5msqhRuNGJy1EJ2xW1nSI+roRXQqLmAC9WW3mdnyzuiUW9A5pUYAaNwImYzNyZ0XCZEJOMSeKYLIdNvGbb5oKKg0ySUXZw21B2MgxlR7gdfBAhNBi5gxypiQbBLNm/guWkI7SYdbGVekczi7XiWTDW0G/ey1l9nOPMl7JPhAthNS12tVLUubBzWEA13jeyVIwRQc+yYlaZLljC6W5nDuHHn0/GNKwp3iDjsNxL/W6L+RZY01LJidFSWA4lXTU2pQpfilViM0nRw3pTBsIZzpyTmeOwXmTx+6zOKBNBjwJbs35WQnDkPV9Esqbvc5ZyJxwyldPSsYDn684HHyiX58rLT8Eu1TjZNnh8cLQZ1uDuW8WyuU1lkHQpBmLdWQWZgofgIwmH3/69n5VmhPBv/eavoaGH4iCxjGoiRRCjmlwSk25KMz+e2JOq25H0Uo9Q8pfAKzU5OVKAawAwM3DXmusnx2BxsB2oDUmvJEQopTJlWzQDS62ho/PethZpiGVxmczofUW70KRhqqytBtaStcdwBLVYFk8OMVT1sLwV10nvz6zPzpDGsjbUOtt1lMs3DjVPE5bWaaqY9tqzRAtKLaBxxvNnj0Y6H2rf8MjDMm6oJoNKllcTVjuCjLJ4kksDiYZEHCxA4+5uLQtnTlqH9fkzWq+mqaYSO/QXa9lFWWFO/u7/+g853d1DGvefvmC5f05vyfXdYL1faYfC/PFx5/HxBi3fc7R0VT7+9h1zOtu+se+T7bqxXx8Ywxl7pezOueNz4ge7tgKCqiY3heajlNES7Bu4W6mcyZIRSdSAnQkKlw8WsAazFImmYKcTsT2CwbpmxTBOkNxRrc+HeJKzGjpNhJHClmW1FAvW5Zv55oUK3rTylDzZEnYmtxnvnScgtG5Y1NkyH5LHN8nphaCW9JMxCaYmdhvsm3F9F2y7cwtno9jLazQwqBbGPO5MO7znAgIG7slVq3FUJn4gBTMrQYIakMwMyv1pLAY4XLU6pJnVc5gNIirQKan7WmQSZ6k/Np54knVvmwnRBPNiUa6XJF7L4UQCkFL8UUnV7qWWVQyLowykvpeWcgQCAYfi1DMZY9RQYCbqoLpVDflTrq+FMmtdyurQ9Ap2QWISKRAP8GZjffWM5S5oe2M9neAyWOyuUt3njcU6ugjbLHmg74/oVZB1IWxltx0TLanyKGBkSPL6n33ORx98jPz6iXx4S759iY5H+sMODw35BPLcSza3B9tv/wF/+IMb19jgzc7D4yN364qOxtVrMxBZaDoZc+JHhLRncvaARZkMRI6EDBVGbGieEN2Ys+M56FaNC8+NTEXkyiCYMmoamhe6CukbG8amBvMK3mj0eolEiNiQXJh4vYjjKAJnfRSmlurM4kMGn3NavpkA+HZ88KtdIKjBiGRtsI8sFo0GvQnXdzvL8xO9wfVxZ+nGbTjWtDYyauJmBK6KKWhr7E8w9EjePuyltuqG9U6zgo+iZcdTnG5CW04VAoBWgyyDGFfEC5tc+1B5jNfTwtiD+XDDNLk7LzyOOrxErbhf7xFWBS18eHtlFUVWuH91jztcMwqUG2BZLKwURSJYFB6HY4uQZqjX5UOtmlhHeio+k/XcqiOfQpP6d6XIeUo1lGOTy6dvip+3s/7YasK2l28+VPnAGm8JpBmhjcODR1urcP/ha/i4P6CuzL/zvyO//tewL38M3/uC+DSQLwZ5vfG3/t4XrHf33J/PXKko6O1a4QDhyTYnS0vElYEQMRGS09rYDx6Ej2TuV3yrhkpk0E4QF6nwCOvYFHSpqc5iSmZjzg1PQ0zptJqOL8YNobNiMaq5fMBDM4NVK/660lF+/o785OoddHYWJucdwh4rAYudqf8fe2/Xa1uWpGc9ETHGnGvtfb6qsr7L3e5u21hgwHzIEhcgYySMufLf4AdwjfgBSEjcIO7hAoEQ4o4PI5mbNsKIbuz2Rxt3t6u7q7IyqzLPOXvvtdacY0QEFzH3KSNbuNtSq8qZNaSUMvMc7X3OXnOOESPifZ/3uCx1ocsdWzhtiaMZ9IYxJv3OYVmRpaz2cgcgyC8K9vnk7rdXtm8v3H5pZ/1eAbL71zvLDx4ZDpMa1LhDhtO6ge+oGsyGxvVQYCWZ43jV1+I/4EieEJmo9GKCyI3MU9ldc689OWBG2fqQDiiqjaYbwSCzQRgqG9uBWxKxgkcDa5wZOTDzYlaOrCnlATg9SScpsLk049ySPcrWiyghHbWyHAY1ZxoJalLy9zD0C5g4J8mHPVmA3qqRru5sURc8PxKLnmHaqxkuyXpYqhxho4aI/bAlmhq//MvJb/z1skrte5Tta/YS8+6BYuzieB0NZR3zxowJTYo1JQVpFoSZgniwqRbHJItBs5gxZ03L62ntGIKZVGBCM8TzsItETZmjrIdppTzLPD7zKN4XOUlRmpRKy2dAn5ykoW2ynoTTq2C7Nb7/vZWHj+FHb52XKvSvBS51a7iNEv1HVjPQNNisfi0EelOGJj9++HIwsxTjL/27/xLi1wqViRp+jTFYTBEVIrQUdxFAWX00omxbUu1IPVh8hV7TYy4cRYQ5LpnVAHXa0aTdZxY83qv236UuVZhzdzoDExOltRXRpGlj0SMls1UCtUgHq2dHtIaaC0K13ZOlGzGLI1fPrX6wIkbWrdFsJccFXjQa0KRxHRNbqrYiQZrQMEwNZcCsEBhxKmURZUbhKL7/4weO/Ogv1VpfTh7eGm++WtbfCvTZAAAgAElEQVSnblmNxQymODPL5mlhmBhmydyUF69KYeIhSA72i7NS7oHsxsPTE/evT3gaGgO9MybK+tKY1x17dYfR+Oi7r9jVeXy81mf8eMPVET1xYQcRWt9Zz8G/9Zd/ifbC8IdH/pv/6vf4ve9d2bfBvs3DMias1ondi+0m1YSIQ3mofrwbo5r+y9KYUYw/uRPyPdjLpKniU4+6SmhrslhDO+wT2rIw50RdWZZkzhe0l+8xe81138AF0WDfkx0ghCbJ9bbRELatBubrkqR2EmH7giqzZvFoWBKui+JbYp5YU3rmYXcPBkrriTwkeeuglR6+jLrr92YsKPu8R777wPx8sqwlIrgdjKk0Y0TVPMFenLzM+v4AGDIrEbFDhRGYHCqrPPbGEhughU3wrLNtnzWMk1mJ1elCaKnQN4w0p2klaqKU86sFuOJRaeTudWZOSgQiM7ktSS4w3wl8VdE9yFZBMf7MKhw1gDJKfCEHQiBFGSmlVlZBY+I0aBWe5pp01QLZj3/GbIbTauqBGqI7kpPtnfLq9hr/Y1FcKQTtJ8JvNWHTASOrAGEh5q2mXdfJksZsQegOKF0aY+yYNsw6HsLdVD5tk9t8z7ce3tC/0mDfSRrkTvoGvqCPguwb+f0nPvnBxuiJ7s7l6T3bPmixojoR1fJ3yBXPE8KOqBM4rXVsDnaH8ZwoQBWTRmPGDc2JxEQ0GXuwnJSIYklkGkJHwugEzsaNgriZKCt3XHhkemLaoV0Ivwe5Igvk3lA34v7K/AzizRONl5APzCwLx9SFG1/Mjcm0rG92TEdD5EMKWO9UOmDC9Mn9y5XteiPOK/dn4+KgveE+WU3Zg5J7W9ljvDU2n/S+lKx8+sFuKKusFf0dtV4cm/NycB86EV4Xfis1zGLJNhyNSgLMZyhtV65PN3KvhMLeyvdeXu7qyu8j8G2QM9CW9HPn5f0CUsWeZU0LNKqh4VFKByXoUgwGHzUFNQ+6CrfjErOPg2dyPB8zgvCJa221e/7EsZJycF2pS0qIIpp1ackv5hTnn3pl2Wycxi1gbYNLCE8TFk16p7hkuyKL8n/+/lv+0rdOsBrtW98k/ttfJf7ynyXHIy2+iW+DT3/973LF+Jokn1+fuA2KcxVGW4ypXglKPiCcGcEUwwNaJGPOUiTEhFD8FtzfN7YbXKeXRdtKAiz6nOgD+CSykjpVy9ZmVlLtSCVC6XojXUCcQIkxOPeV4eXfj583sv6Rtd+Ete8surKfKskGJo1W0/99ss9kejDNOd2BnYJmG4s0brfg/lwpgnGxegc/DsZjQ/6C4L0uhjqzUjN7o9+dkLxADDy0LktayXXqUrCIKGWmyAoyS0ExFZWlzt2oi2jL4hKJCMgg06pgk14NslTEnXQqJICJqoNYNZRoIFfIjrLQcpAi9fdxBQs8N6DO+mrMGuOQ48MRHU0U8DeqEM1MWpb1e6OaMOHUXkwpeSRKQba7k+2LyZNEng05Qow8oNmN3g4lXUqdn14pSaSzIAyt5D6FOnPMSqnbgAj+1v9dFulAaAozjWUNYjOkUSyhIWUzaNUwi9ihC552WMoKWEskoZS6JZLQiadhGiQDKGWYh6LNwLLA74BlQhNy1B7zHM7icHCb4oM9QfKwhFFhLSbKdeycGgjGcgo8igG3T+H6KFxmwJ1w3pWHB1hfA5vWr7sT1NkaSFk4WxINTqbsGcXT+ZKwJM2UllcgSmUiiU8vlYOU3V2Ayt0FyEoAJCEFSUcOLmg1vPxwiNZepCpIFCxdsp6B2mPAfUNpTJkc6HRoCy2DKB8fou1oZlfogEvxYshqIojqB+aWeA3wpkBoNXPLD1mpXaZVu9lhQRQVrLUDEA/SjZYNNWPfrrRFETrhW10+TQmfZZHW40LakvQDPUApGb/z0cp/+B/8Rf6T//x/+il8oj/FJUY7DR7GiWaBNmPbZ0HOpayhYkK0ha6DrkE7VxMQNTxHJc9NxVdYXpzZ9wv3b15jesLOG351hBWfN+x0T7uH22cP/Il/+Y/zw0+u8JiMmEDCoog404N//c/9It/8U51k592PrvzVv/L7vHsMvvmNxnYpMUPmYE7Hw5BejVdRQyXQrtCKmRVTGeKsAut9R1PZidqXhRoSvG7k20m+Lqv2s1pm1XqX5jxgTy1hwtvffeCrv/wR1x98zvKdl5Vud5toE7YZtLURt8kksRFoKJOAFQxjk8n+oKwvy+75RVz3DWwPpkmpyVsra/GMcoSJVqMmHFS5vA3E4e67Tr5VblmomDFBw3F7X7bmexg3hTZpvQZyMWfxsmKUBRBAWn12PorPJYfwYBRDNSPx4/529Mlrm8RrLwOmezVpKVnUPvNgCtZtrc7ncs/YwVufWUMBetBuwq5BDFgWWIXDkniMwDLwReEp8HN+cPKgZRNMOU7wkoBXSu2RGD3K0X24l/RwaxgjnAaYJDHKsfYHXT8TzSz3E50rMzfscoIfN978sW+Q37jQUF7KwnVujJujS9CXjrmwq3M6vcB5osWJF2NisrMtih2sqrYq6ES3dtyuE3F4tbzg8tnH7N3YP3vPd+Yd5093+KVXdXC2RH5/Z3/3lseHC5+/3xgrsE+ub9+xqHPfhcgn9rESXkVfqDH9hprVpEUcnRDRCLmh1hhRD7ikg50QLoQUJ2TuoM2LZZSgO0xxlEkja+LQCjQ/twCb3BJoL1llZ/ONLorYhTGNOQYqsMXgrp+53W3k4ytGd3b9KrINXB4Racj8Yl4mZzw3gGpT0gzShH2WzH0c0IWkmlW2Lpy6cr2WzFdFadYYHiwN6tLk0ArQ2VrB96wVNyiyoyr01j800ACExG+DZopGsSEcL1k7wn650cfE7YA0stNVkVG8LxmD892J8JKeLg7X2052YVEl7hdK4S7HplOe6jGEfY5qPjQt1hYwj5TCD2mFu9MapAjDS40xpRRieXii41mOv6zsIw8Qc00STKoBV09RfX875LHPDIqfr5+sdKtCWydNWxXE2mg5iQGyLmgo7bzSV+X3thv/x/du/Gv9RKfji2P/699B/5VfIH74MXnn/Opvv6evZRlTlIWdPYLQxhY7fVlph/LAmjK8JuTSF2K/0rqxhZEomaMUCyPq0EVpeUycqfoon6dL0fGYrFqWLPEEn0f6kpC5gZyQoxmjCqoLu0/MhBFOtZi/fFPm/7+1P4A2Jb2i6UMbTRbQwdRGW6GtCWvQ7R6byXwX9B6YdNw32O5wBd2C/GQiL8+0P+1cvh7M10lo0h8EXAhz4nZjxuC2JUbHtUCzGiu0DcXIqCtnINUBYmIy8VyYUek5SMOBkbfimVhjzxszpJ59qvhyqqCKvYrx2nFOx/OniBz7aB4sB01IK8VQzuP3HsrQSLQ5msXIJBupyaQsbHFcmpOs5ppUQEal9tQEsno2ZQ3Z9kQOzsMXcn0YRCQx6j8yagqcUflpCUeISWBpTI5GNxWrvTYrNbgGiyQzlRHJq3OhE4Y3TqllSQ4n66AoSzI1oUWTKYZRkoRBEFoNdlU50umqIan5rN6RYsAd56vZUmxKk2O0DqllhWgGMsdhXeTDsyQRhJRySr2UCJ4VotKi0qV2D8yqyZVXZ/cFWwZjBG01fCu1t56F/fPOdgvypXD93AiSfcBAuWt1ySCE2esMF/jSqFF/8bvfrMl7VqO7gnNKyYdP7LD2lmmsLjFiHcusRK7MUv9lDfuwQ5F+WBHr0lSqqHQ/DKjOjPpMn9WfTRSkAnWSoKWztOXgAQkqHSEPaLaQYSAgWliKSvOqxgPhxTBKQeJ5UCR4zOKOalRtfXzYQZYdNRTXKHzI2HjxlVJeNeuVwFoTIpyyPNXeZfTgQ63qOLJ0zvH00/lAf4prtWoKPgP3YwZNrYIerH52kc7Ywe1AYZyKmTXDC8exB0sHGszHK9oa28fv8fWJ05t7ltcnxuXK6f4VmhfaXHkcg7/3699ntHIgsCinu0Zk4+tfecGQJ/7m3/ge/9evCdaV63Xntgd+2/ntH13BvdIyj3ClktvV4EUXRZYXWC+bsgDSg66KZTEMZ8x6LpcFmU6nns14bczbRNaqzzUTnUGY06RVouqePPzeRj85tp5BH5jXuh+pGJkDyU7sG5ETQ7k+TabAlLJGqwSrG3cvaijEF0+wDBQ70ZtyVUrJK0lInXeD+rt3hGxleR1hvPgmaBe6CNuDIG2htWRuQeudboLqHft2RXvjFsGadbYRh7XOhAw5Gtn1Z5GMGuAdqa4SpaxKLWZzihwJqoKFIhqklJ3WJQ4MSD0XcaQLPqMTyo54hLgcdVEGqJbUul8MWhYnMCsUTLTOVYlEz8H2qdBOxw+uOlilTKTqpi1qeDAOGbRL7e/pz+EylXY/3GufFWWfydqMTU//uI/nH7t+JppZm9/wxw2/Gut5JX8RBt9D4zURN67tntmFxo5GQcykaQUbabLOzhjJtizIfkVHeVBpxdcSVcImXTtqJ85pPM2NbdtYLzs/khtP1we+rfe0Tx+I1x1yZ96Mp37jcU82H9jngV+f6FkSQ7NGDqWp49KZ/oC7Ia5VKKuTs7HLKAAlnfSaQDqdmRt9JtFvxLjDxVGD8OSSSepAVJn7WvY0cwxnxg3R9eAzF5h1xANmd5y0M+Z7ZnoBJSfFa5rBrT2SXRG9weM9ffkx2V4wRkM9amrxBVyNmiyXIuuA0UXUYZRKa4oujdvDlTGSrs6jlxVTj8J7XhxOBaVtasRq5L6jYjQruLXpoUCRY2Np1VBoRQtEUui9oKM6y9ecM9n3iXTD5igV13OChjQkk7vFCO/kyzMnrWnm9KA1WEXR3mA4rVkdMCqkV4JYNdeqI49Q/CwtqfzMwbT+IV1iXHdk6YxR8au6Kts44sWH8wz1i3DmLItOo3hbZTYrb7XIocKS439GTeKLO/bz9WEJaC95/KLKW1cyBtFa2XE8cRXOByjZrld+49yJW/InsvPRtz7i09/4f7gfcP3WPb/5G2/x1rk/daBiot0WDMfH4O58rkPymOqmJj6LeiRS3yPGQEiyBKqYKX6tSXFfk7UrLsIiyn5cKmsYuCNZU+tJVEpqXzEOUC9aEFMNTiHcErYxEBpj7sx8QbL9dD+Pn8F19yrJDeTVpNuCNSd4InC6Liy9mosqidqF9mrBdiUfDTknI4Pt8cJ6/woeQfQO1wv6/o7TD3fGNVnOILIQl4Rp6NtBRXt7cbF8Fo8hr3yoXp+ZVfS6jGfZ9aZsBaPVskCbnTDOuDs+JyJnYu5EPpEsJJMxgpATzq2SGMVBHvGhSHOslQpCdfmQ5iPiNBL3E9l2iE5LL2X1TJBAcgXb8LBidinsXp4yEWXMAnwjpSYslb6yjWIu+QEUdg3G5QtatR/L9GAOSV3wP1gdVI5Y+1IZObO4n1pqpbJVQT/sCplCs7IoyBLcn423Pxa2o9G4ZCNz4qmoVEqbYIwJi9X5JFYKABPw+EmhbVYwY7OyN+bBb1Q1UmuSDcfk+uCaSHpZHBLEFsYoU5gCZFkeTAq0rcfgJVMIb4QMTqas3XCC6+6cFsMvnflyElaYmQgpq1hvyL3QunKZXmB7AtdeSkKBxDhbZ/dB743bdfkJt+wLvv6df/tfIKKGJHpYykNKRdKl3tmjMkFapx0D3SBRL7tpNbJLIfiseIJ6bwtx0OniuCRBPZvuVS/53JEZhCXr+uIYNvfCPLRGzkq+663shfLc8NJnRs5xmbSyIUZI7Q/iSDg+hWj+IdQF6mJbDC0BORRlZuScTFsP5YZwtpXHbcePJtzu80MCIwe3zyJqH1Zj3xw7VeDK3/zNL2A4xT9hzUjm3ljuXnC+uzCugi11ER8Jy/kOtifiroJIBlX3+ky0CeplOW/amNMruObpBuuJ3mF72ji1ItXuP3rEByx2IacRyyilyWnhz//7/zz2pgIHPvudHxGPd3z29mP85uyjwqJknxAVpCLSsD7BTiwy8JiIBNZaOTm6HIzoUoae1FizanXtHYtBDC+VC62awh6sTdlzYcztGBxDaCnRKp1aefwH77Cz8tVf+TqXhyfSAtNGarBdS6WDBQwYF0W4IUuis+zSeP09byHkCMT04DR98dbUUiFlgh/hTC4gUunGbR7K0gR/W6mZ2iAH5AunPy01PFFlSwETlil4PKFLcH2A9VUlTmok7oGZ1PmDoNJIKzi7IUgEXQwHmsE2nIgowD9QudN1F2NA2jz4t8dgJvNDUwkOlTJl/Y7ww51U97jejMgoBfs5kJtVrVXY7+qxHUNsC9CXSV6VtiRbJEuvO2dK9RREy9rosyM6QX8CnJFshaWRCr9CBI1gStZ7KX/wpsTPRDPrtz5+5Fd+6YR+JRnrRHInpHGSzqIrV79hKURba3Of1Y1elpfcxmfEeIWy02ddoEQ2Ihc0kxnluXey4nbdaLLxeHuAlyv62QVev+bdduGTx/e80TseP79hrXH1G8tshEzOpsCgURNbxUgfTGlITHLUSLfCSDpjf0B1JeQJE2NKkPOCyImmwoy3RChblsUi5VIXhP2EyobmyiQYMkEbETvbJjR5iZmXNJGBZwHkuxiTjanKYne0rbHPd6g2lvfCuIfNF5ZlI12ZLyeWL9nmZ2DfYNqG3b6Y7IaQuoLpoVgq7IAeRYuQrRERnF6eeXp7I05aCifTkpiqoGcrYK1W8/k2Ss0kzRjHC/g8JZRnzzAFfhVT+tKwZSG2rabgWTaHgp0CUWopPw6xtFL63Z1Wth8/0l6ciAgetsCo5MLlUA5rZDGuhA9FokTSVZjhbFtwvu+VOqWCA1scKrWoK0pbG5d3D6j1ggsecn17TqDKPC6tsGRgupS1KWtDr+nyYd+krJxE2USqUS8H2PDn68PKAkeyO+c+GSqVoCLBi0zIVn58UeSy0V4sOMlvTePTp0lTpf/xX8Z/53d4yG/w6nTmZeysbeUqSvpkG6UE7E3w/Ya1E/teRfO6rOR1kFZx9XokZq5LQ3DyFGQbjJMSGfRF0KUhfT0sGOXDn/tgWVcGwZ5C82SKlBrVNjQUbQueSczBog1wejMmoHPhB2/jw5Ty5+snKxpIF7yDxzhUcQejTJwJH0C3qStbCqf7e+7uHK7JaPDpw4WvbnB+/xXiFx+Qt534ZGAvd5aHFU4Q7UL0oD/eYM5K8DOYJJJaknKK3zVvk7Z0pO2Qe7UVUknfiUMtLJyBRPWKuTFm+f4ir6ATciHDcU8srJRcXs9FpkB2mh7qmgSheEqHqh8nSoET+/EzmYeVS0nZKInRJEZN0M2i1BYk0Agv/cegppCZpcLYqRADQrlFIARtCp9ev5hFe8kqk6+9sFKjD6VJlD1di73xzLfTWft600qzskjueqmrPAWNggSXjUtId378w+WAzgaLABpM9Ag1AbE8FMGCS6CtUpvmKNtja0dE+PHnqLPmOF1FDkt/qWZEixuSUeqcytTQshoSiFaPVVFcB3qkWoa3Cks4JuQTQTWYYTxtzjYCa85DCEsa8u0bPsseMVO5vE3m7Kyv4bJPLpvy9x8LxhuiNYS0umi0hMsc9LXO6f/sv/v7XxJllvL6ZRBZ9YuH47cjsZD48D6WrXDBNYh9IF5qJ1lW0m/gNThRtUqeO3icclgNn+MLUzrhOxKVGhb7ztgmMgVO1fhoWb/mXpzBBocyLFmW5RjQaSnpM0GK1yapeJSSzLSepyFS6vwjmVG0kceFWGcSFIpERLGlIfvg9LIz35Y6yLXVvqhKaNn4fY6ygGnx36YoMqsB/OZsPNGYOP/9X/m141T48iy5u+f+7gmbwhzGeid87Z/7Gh//5id06/Rz8vSZsrwofIbg+N6QQwlinsQC17ljCPv7jfZ6wUz59i99xI8/fUtf7nl1PvHw2TsYO7fpTHeW5Q1vXge3Pfgr/8Ovow5TGyqjmtfJkUQ+GTnLGp3JsnTm6nRecHvaqlbnjEo1OEWKjZqtGgImytIMN9Bd4DKhGdqEmDurtVItotyeZj3zj0H2OPbSaqLYsvD4vc/51p95RbZ7Lu83/CY0c2J39hHooabfHnaEjb50ZgjMxtI2ZtHbuDpYOr1V03jKH5xp9M/Smqk1pFVgdHIZLEeoV/NgLmBR9vW+N/iOFLNzOm6K3E3GO8FfKu02WV8nIwqRwLpw1mCMo44bA+vV7DZpZBR8PxBOyGHVk0oY78ptOtIFCWVm0KOs6h7xIRROAyKssAtZbMZSl9f9z7Qab07ZfPbpqBlyiIWcOj9N6nkcrRhYEkL2w3tzhFxoLwXy9l5pb6ICVFoiR1Bn2WHlEOeUitWj9sh9r3orPOlazTo1g5xMNfL6Bz8bfyaaWZ/dNvrdShIMBme5I2JDxxMuji2vkLjio7HaI5KviVzZ7ZHYG215Qr2x9P4TZQDVmRSvF2/p9YOPMZn7JIeiZ2eoY587+iZpq3KNDZ2TnZou2tLQ6wAqEl16Q31w24MZDjjkCdEblsk4uu2hiucFqG72NR4LdjkfEFFmSMn18kaG4jFQlNAdvSR+50RcSO9MmeUtZYX2OR7n8qfOBZH3xDCktbIo+YURC6yOPJ5g3RENPAcpg3TD9xVhY+aCPPwKslwBKYXPF3DJkXJDVvc6tJJP6jURukCqVpJOCt0qdca95Mgx5gFjPGKfs6LJpRkzSoHgB5w0Rn1Nk7Lb9dNCOxpN83pDRJhb0JcqrOOokYYH7bmYzmJu5YS31wuY0IZjUjLNioGuTWtINcZaJjfnQ5oix9dUU8blxuuXlcg0QgiFOYPFR/HAArYpnE/UzpOUHXaWBSM8jvSnapYVCY5jYl4WfT3shSKVxBhHc4sDwhwcw8qfrw8rNUHKZnGNiUkQUp/XvLvDZCK+kJtzfvOC3htv2s7TnnR3skFfVvIbX8XsntMKL8+v+fizJ9p9593DI7oszJi0tiDpjBhYOpPBNgRtK60F8woji30zpnPqp1IAikGrg2W1Xs+rVaNX/fhstZcVbghra6Q6se9wCiSMUCfdaWqkrkROmjVmVfuowuP74iL+PCTg/7ucyoZ2h0WCRmCagDJwTgiL3DHshnBF5x2RF+K+cVpW2jWZt+RhTu6+ccV8rcZNh/wcZG6wgy0VFJEfPwKN3Td2LVWD5GSNsvvEeGC9uyfyRriT6fhUNAyTRjttuDcGN9J7sagYmE4So4UzJSC9OFbimCXME9KsQikUOgPnjNqk9xNzTiQrkWoASzaGTQwhdmfp1ThImZh2RkxMzmgK0a5AJzOwXswjjkLtlkEP2EJJeU66EzyUFsKUZBfle19U8cPRSPmF7xReIf1IzvpgK0hOB0fMjxCPpIYoIOxSNvlFlY4wnpkbCZcHAyubg7aymT8jXUTBc9alHaFrncP7EMKUbmX/bCIFYWzVSEupIdCUw75+KHJqHrSXeo8a2li5RutzPeKUtCcxky6NGaMUWQKSsPvkfFivJQUZyTaNaU6fC+/Wyeuv7zhKzpI6X34g2EeD+P6KZ3Kbwo9m8rDXn8mkYPRSk6ayspoWyFuFT56+mJfBf2RJHBav+rwKrFnqBjKKCVP/ir7+Ovn2d7H1Daf7EzGemO/flhIvqumlCrRKyYzbRlL1tERdQMVnWVoIJoGnFyjekra2em7ESaumI2LMLGD8zCyLqSimZegza2XVnpDplSDmk7ACv2RQkkCvS3AlW1cidTXbSlWYApGBhHPujc9vT9zfN0xPKE90MzZKpZAmrFkKeJdAop6l1qi2vCd/7dc/+aCo+DKt+dl7bGnQOqdXO8tp5fpww0TZnjbuX3ZOzTh//cz18wt+hW2fNZAT55qCzGRcBy/u7rCvljJdW+PV/cqPPzG265Xr42OB0/eDm3ZNmFfevRdOL5YjdTzRumySbjTbab3cQn0XosG3v7lyA/78X/iIv/d3L/zgd5Pwxme/vxPZ6nnW2iclikzSpbKfzQNpDdPKdG2iiC2kVOCUWLK+XBgzaec74gKnc9kC7bzw7q3w+pug60fctls1zfYbdCOaIduOXILLZafdK8jKkjXYSJtcJpDH+ShWjLIZyAn6F/TOaNTQhYDUvd49rftMKLzwYuq1BmMKrY2yyzVjd4fVWEPYnnaEDuEMAp8LOveyu1+EJ5usp8MWihAx0ARTO4QzdQ/dEHZRNAMLZT/2zZZZ4TsIhjBVyd2RZuw5j8FgwgazCS2f1WYNjYmoMB2sCXN48Svhgx3+YBQVm7DXfS8HtFVryOW1n6cGWCmoK0G0BLQCxIS0pGF4Hl8r616plCK8S90Z06RqPSknk6x/8M/sZ8L388l2xceGatKyAGC9Gxe7kXrPHWUrPDW4i2/SupHre7b9LdqMjIY1GF6e4pazwGwehHvFQFpBickHGq3ggNIYL4Px2cDa67qcm7LIiRd3xsu+0nni7u7Eea9p5G2bPAzlGs6IWRGU7kAyohKT3Ef1uNiLixTJ9JL/RSRzVLqPTyM3YEzmFrjv5AymADOYY8FTDyneJIE5lH3eGPlEyBXPO9QWwq81xZKVnKOadavS5kv8zghWFs5YNmKZ7AaaN+TVjzg3h35i/iFga/8srXhWQgk0UxrVkMojVa1svsrSlD4nkXV5VIRmBRbFDymoUHwH07I95FGwqhyA2fpHu/HmzUvulo5SMl0rEinLcjBYqq4lUuhqVez5kREOpCnjspPANjZus15+OWTvLj9JsmBR5gxuHkcBX4Q9NSNjcJ1lF/Tp+G2wavngb15/CHl4JNcTe5Y0v1IpAvc4+BaUN//YOGcki1b8seqRlAEf0qmeOSd+2HWebYg/Xz9ZkoHPycJkF2MMK9vr+Z5bJCGd63XD1zPDjJtZxXS/vOcFjfsX94gKL7/+Ebcf/Ai7O3MFzq/uuXjnxYt7zgZdOzEme0LXRrSKtM8MRCe+TZa+INoQoJMsBn09YW2hL3ectdGacVpPrH2hacO0lFVmFX7QG8UuUS12iEBFYi6I9eLCzYG2xpjCnFsBcmPy44t+SRQKf7h18U7M4Gk14yMAACAASURBVGUaq1pZ24937JzKWTuLGDJOrLzmrp+4WxZ6vMBaMEZiX1nJ1/BwqA7kfYDtyFXIzxR+KHAZ6GcbbPA4ohTHO+Qt8YuxbdW0Oq33HxogqobKib4I2YJhO1MWXMpSLzYrhRcYUfD1cINsiCyorIh0QldaF9SCaEk0Je2e1g3RydiPH4Yp42ii3DIwB2GlzDh3H/beiGCRBnrjMp+OGOhDMRpJhpWGNJM1O0OMf9jppSGIOlOrmJyR/PDTL6ZqGQCBP/ntE6IFgIVCE4zM4lwVJONISa6iURPcBIsCERvJrSj+hVCTagrmEdet02lZul2X5BoBtjBLlABZClTtWRMemwg1PEKLX2SZNC1F15rVhIKjYRBRxTdBBQnVYMUoIDdekeEFeQ98S7KyoaqDktUY2zfF9zrLsaT3egbMJo8RPE3jcXeednh6DPZ757Y1PIKHHX60J59eS8ERJDeSKXUBCi0wNQqik572pdnzqkzRqssPR2FXKxV6JhpWOIdQ2H6M9RNig9v1HblfESgeDEazBggSgsziXLVlITFCtZJOqeZn1SJ1HklX7NzQtiLNUDW69FI+U822YrbVO5DUjSyzLm7qVG12BAqpNTKikBJSNVxbFrT1agrPPGqx+lpBIrvT3Hn96q6+7m2nvzwxRymEXEv5JekYhlpZLSuxNuknY4jxo7eD/+i/+N/4H//33/zSNbIA+r3SzuBPP+D2+eThh0+8+34N5V+8WfAnJxZ4+AzEk94cW8A12GcFMoy3k/7qI779p5ZqMM/BvE7+3m9d+NZ3XvDVr9/zy981fB+cVmO5W7CmtLWjLjz9cKcfhW2kVxKnBEEnxar53wJbkm99+8xf/Pe+wf3Xf4E/+2/+Ka678q/+uW+hC1hzpNfAGx+YVY1dXKM4lCrllFhtoaGoCucofluTwpuoNsSsNue5Y/3wSrz7nLuvf4sYOy0csUDnxN4H47NHcjwSS/DytcB0dI+6o3pCCvf1ZNIU1pZYCGuHe2us0X/KT8IfzTqH8kaEZVRM1imV5nk4T4RdklsKYxd446TCaZbKVA918jjXGdTmZKDMDdwHI+oMdEtkgHo11H0Wn7IcGxAe+IxKlfaEI7xraJ1Vz6E1zxytXQonpNRABqSON09G1DEXG+SsxtXQ5yHVkULM8XsiET/usplwkmqVZQ3fWRTfo1Kls3jIFkack+vnQkoxsJ7FDaEC2MFGFYhSmkYrFZZrMqQSWyGLydyWUmP/IT6zn4m26ue3JPuOzVestgE3COOsZzRK2tsfnbUr+2ljasA0BEXGE2oNtxMFIUrmkcBToLSaAsmeaAP1lUin373itlwKQrm9RW8LfTnh+5UwRUYxFDI6I5U8G/Pxgq0LaYFj9BCchueFHAXxVm2wgPtTNdncDzzlYBc9GigHsjIu9WF60gw8W0HYtFJYgknMICVRaVTA/UJyIeOMWRXu6CMi92jWhRVTJAfjOti84qlVJx6N3QIZDetenud94XYZ9N75VF/+tB+FP5JVKUyVbjSnE1o8K5rVYFDqRd29pnrn3riNQYhxykqwiQ6LF8tqphCUqqSpkGroHDU16wsZ9WJ61IStK2y3QchRgEd+KN5NKkEpsjYllZJhEs68bMi5YPN+2Ac9K4JXteLL9eBxbf5cLsE2E5/1TH3++eT1m1M1lUjWpfG4l+1DAdPEUwlLcsaH+NfI2nhUgn1mJR4eKiutsxWP2iQ5ClInK9CHwtZk5JHymdU8/II2S//pV4Ke8bzhPrlvjZlRE+K2EmOi6wu2MTjdYHQ7kmka7+TCm9Zp68KyNubTb/G4Gy9W2OfG9u4drgvreUXjRjSpiOfFWLrRRZj7hmlj2x6wtrD0O64P74G69GnrrGg1wVoVSqrPiHbFmuG7Y01xn5gIDa2o8gQJoVmlwPgzg6mvJInKQHRlGxt48snjl7Ek/yevxXZQeNI61hdxzI74ZTVCG0+xoYsy0hExrHWyOeMBrBvtJcRUbkzaZzeWvmA5qhC6At9K5g+SHBeuOXkYwX4tJcvptKLnSXhN0jwDVT/SVsseqGq43qpJFaNyVohjKugVgy416yzrckC2GgykHoobZ9E4VDYNdD96ZlosJlVKLy1EUKm9OMrOnsomV8Q7pqOsARlMURpWCm2lLGeaB7tECJZDjZVMjeJLUkMCo9Kp3KGL8dufXH9KT8Af3cpDkUTCH//6HeSOqSIysEOV1hT2qKQmFaHXdl6JzAEDwcRQm5xJRjrhSjcOFRWVsCUV7uBAZCNlMPeg25HQeYxVhaOx6Mpqkx0pFkmWEkoPELxar3Q7CcrolaQqXRTEivlIMZk0SwGYrsCRgGdKjnnsXaV6iQlrE5bFKulp1HAGDdyEPYRPL5PIxqpCvDc4O3JRdpx9wPsJGYZZMTrTKgFURFCtQZRRScih1SD9MjCzJIVtq4l9R8GjFPFZfLYZsxpEDcwdTUf2AN+LbxrFyGq9sO4p0HsNZKy1sml5qTcrgOIZeFD2+baeAD3SoHulTVsxUddlQbPUc83qGUuvdNdFo/aCQ2l+OFyrRk9ltUPNaMY8GHOmQkjgo5zz9WxLWWgXo+3B+fU9Tz8OTCcRp2p6WTVRn/cnUCo5WxlXod0ZwxvBxn/6X/81Sjby0/k8f9orrcMJ+stSIO0+OT89kBhPT0J35eUvfMTLN498/PfrzqV0LPeqpXdnfbOQ/sBv/01lWRvLixUJ49Qu/IO/c0HT+FGvwfTXfukXEAafXD6uvvkI7HSY1tdGTOe2j/p8e7EET60zF+H+vtGWxuffh/i9H/DXf+0t/+Kffsmv/tUfsNyt5NULxmGKW/Evn7lskgUElzBaB2LQ0vDqOzGRSuy0anoJiaxGXK605cz1Mcils11KCRtjp1uwBeRXFpbdyXzNnBsujd4HZLA97tgKMkol+7I3gg6x0xbhhvAuajj/RVybCmdP+nPabRoo7FNYlhIgGM7tKqyLsWeQKpy8mirbkTpqL2B+JshjYL2he3DrVAO8VzNyXB01QVah9pgsdp5pCTGk9s9O9TaY4M0rmEaMOUvd21yYoozqcOElgD9671I4o6hzKC2ZO5jV9xM9En6p+t4jWUXwKfhaqCYS0uVQCJbiyieFg9BSFPZ7iFvi6+HW6YV2CBoRExVl7hWcoqNwAJ6FMciDzbq5Y3PHuvyhtrefiWbWJW74/hHTLnjWxKZrEvMMY6fNleXNGd/el8XOrV74rhWhOzdSHNWFZg2TXt3tGWhAjsll7Cyyc7ooT+0ldt/KktGecDbGlsy2l0wZxa4OZ8VHcUHQneVuxa8V/R05a4BoO6ep1SQSQd1wv2LSkbxVET6DmcF+SPwkrxDFYIptRwRuWV1dRJn5CNHKjijtAKE6wxKJnd7OeGwEHfXE5Y6WSVjQ5R6/XaE5/b6x7xVBnjG55uA8b3hrxBTQBaEh9sS23Pj08xc/7Ufhj2TVyyRs7mgrqLpoScG12TE2LK7QbsoewrKu7DMY+84Y8YHLAULIYeXLrJSn20RasTkiE9OyZwST6c6cDsjBeKgptpnV5OOZLXWA2VetiWJvjX0WAFCWjlpFQ6cHS6+kzPvDoji9VIgcvy4iSIe3n+3cv1Bm70QkLYXH246qMMYxLZwgjw/oq5V9C7op04ORXo1VkQLzeqnZZgjrqbMflgBI3Osy0rTa8dNB9Cdw1hQqYehLULT/YVak8O5y49yS3huPHnSe73VleXkfV15y4mFP3lyUH18e0K837k4n9uj0Vx0ZwVf/2Et+/9d+k+/+2V9BBE5vXnDbheu19qKpwdivkNWMVyqlcG87a9aE5Lw2Yl/rnaAxfLC50C2xJkQmMaAthjZl3wdmvQDyRyGV1KR6PXfcKuTAxPBD8hzTsWUyVQto2Y20xsdv3x82w5+vf3j9z7/1kr/wy+9ZxbE05OAWocrdTNaTsYowpnBqjdWkWC43J5tyPi/smzMXp703PudK7AOdwX3f0Bi8+J2V233yKFspGdqg39VUVuWIi87jIq47Os9k7kySKaMufmLEkUZDzlI4iNTUeegBRU6kl83GwhmRlLBqlDJDkoxGaxUEUGj7dihzlIVCESCTiEmYY7rQeyldw4qD5DsIlTI702hWFV3IZM7axyOC1kpVvUYloe3Unlx2pWQRKTynO5+8/+IV7f9wQuOLOzsCYKqx41CWeUmaCNpq4vycdDRDmQ69VbKStwLcFquxAN3qxaOUmEgTdIF5A7LqssWqedUtmQRzVmqgipI6IRWLSkEUqwlyi0CsgwSntKq5TDgEP0jOah61ii0XC9iThuLpxxCplFYxoyRCokiHtgzEwdqEvTin2g4O2wHFf7gs+B68FCNbcHpnzK5cmvP2ItysBpWYsh8hMq3VwAkptlyzILXxH/+X/wDgC67OUsBqSNcWZOzcxk5uybBJyyiYtBirOZo3/KqIJUolej07ZdpSkH99TiA9VAlqrcIljoEJ2ouNJ6Wua6MuVGaVEKeqmBhmyqlLBVyIsmirJlfrqFaCmaVVIqEWX/XDPng02U0a+1Gfi1lxVBXEGrok+6GCyARZO6ddefnVM9kXPvv0B7z86Fyg+gMREc98N4wQmBhzJJwqIdRx/pdf/T5X/3Lr3P062CMgOsu8cXqzEt4wKuEvP59cn554fDf49p/5M7z9rb/F+HRAk1IS98RvwXLf+JP/xrf5nb/xQ/yW6HLh6bOEm7B8ZyVHMB1+529/D7TCAeYM8k7QKZxfvEBz8jCutNNK7BvbbccWY4pwYsPU+e3ffOJ3lyvf+O6ZuF352792w7wUfpU0V3BsdUOWRmW4BaELK0JYfACSDzkwDRxNlWMoPzxYrBEtcXvB03Xn6e2F9UXhwTWT3Vfi3afI1+7r3hENH7diLmUNyX3A63NjRpSlOoJ5SyIPzlN7toJL8X6/gGvM4CL/L3tvE6tbmt13/dZaz7P3ft9z7q26VdVtu0Pi2IkhA/MhRkgEiQkMMyBMmGQIUyYgITFmhmCEEEigJCAGIYqADCJQ4kBQokCIQxybtt3p2E673d3VVXXrfLzvu5+PtRisfW9bBikdhOPK7Xqkq5KqVPfec959nr0+/v/fX4giVFtg7lQS0XLzDB+pCnENygeD5tAih+xbqehwrOaS11fwB0M2h02ohzVeywu6PCIW1MhlX/9UWBZFToJMh5kWZWlOO/kRZJKImhBjzIGY0EcGo0T3t3dUjLTjewdmogGuB0s5iqH1COkJyblHHGrm6SBCI/tB9bS7jvC0V4951HvOJskdRVItplvWVntzdAEZP2Bg6VSmKFbzXf7myMyFmZWSsDk/7LYSlH+Ie+4LYTMUGg/jRC/HhBFjf7pizdDTiX3t+A3KepcDH73idKYHuyeE3aNBUxg9+T6xICaoTsQm/vQ5j98atLoSXhFdqGsWrUOFKQ2jghYGV+YajN6SIVQ66tBciKXQllumAEyh9Z1G4xYp3QwfmChzNhjJ80jgLMTMKM0RlWtrtL0x/IF9NLw90seNtl/xttGH0F3o/cbVnZZ08ByMjXz548HUQiHoJW1ww5+wDViOlAKMq+3Mi7JKgJxwV5g1v772QNhGbfC3v/XZ7+Vj8Lt2nh86QVq0KpKcBM8UkNE78zrYP79ye+rMGewPnf250Z8bVit1tYz7DWhzJkR2TGKkEslKWgjtsGD0MTIWdYycwJthBotKWmg1LwchiOmsVSlLxWrhdD6hZrSnBuuKLvVIXcxkufMpE72qKuVoCmMkcP4teD6CyxWWxcHskCLnSnFRzYbtSIlYi9BNGCPtlvtINsqBeoAD8J4ryR8kfIQ70w9uiaRawt2Zx0bija1QSb7XiEzW+PL84KgE3/ksuWbiE9RyUGEKj8+IN7aDt+GWdlU/VBKvP37i6bufc2vC7Dtf+ek/QC3K9bmghzUQg+3licv1iYfvfMy5brgH9FTNLEXZMNayQO/0fuP9914hdWUpcCrKi9NKqTWtE4CtSyo9Zyr4ajE44tSTW2LH0FLT826WSZaRDcCyKtdrIGOwSAPXtK3Kmwfuy/Pbz1//uw+oORyNu4hkGukAXe+4jMGgEmWlGeCB9cb+2WCzis2gIJg7fp3ctmQnzl256ORhc76/7sSTYOWEypobbLXDZvODOyVnFCdUO6IdkYnPFeEEcgywD2XNG7ufUIlyIrQiNhHdERTVI50OMF3yn5aKFlXNxlO2THQVARmoJX9yUaOYvf0zhgRdAo2FPSZuKYcdCkOC3YUxhLYHKksqZ3RJVbOfszk1YzuUGCl1/8GzOMS4cPpH/+H/IzhvVEF3p0AlY7v78e+KaQKuFfC0+JloblfdUZs5vpbO7AkijoBSDEyTG+q5ZDGC654WmGpwOoYDPj0tDm6sNQHIIskPmQc3Y0Qkw4yZ7CWL4/2Uz0qmbOWw0SLh7f6GKxBHkY8jB9Bfwolw6mKMpqnGm5PZUwUdTVOhbEc4wGEdMVHcYW/wmontcFmDh54A/BZwhKVnYV0VdSXUcyAi+ecjhSLwcH1jZ3uXjwOdZak5HDKj1MpyUkYTZj84UJZhOQ6gK9SVeYTP5NJxRXRBS8nhYySDasxBjI7JwWKRxD8koswwqdRq1GIUNWotWTsV4bQYKoWlGEWSSaSmhzWxJqJBAtECknt/UcPIoKeiybGJoqAVP7pMkcQ7TIyyFupaKNuK7BO9U+a2MaYROpgHvkIkG+GQtIu9iaogjqRaQCNlkT/3N/8eB9XmR/aIdmTmkL2+EBiCxMCj4jPQ86R9v/PyKx/x/V/5VcZMtch+SW6RbRun91bKEnzzb30bF/DZ8ZHqTnuvJCu2GFOduhU++tpXKNvC6gI3TXijZ0Ki98m8DWKQFnpVTtX4V//4T3N/95K78z0ffnDiN795Q12OhSB5ly2DsngOawtUVYYKVQprOCMG+y3rvnELaEofqbKpmoN8Z0Ixpi7odqZ8cKIcaZnl5Qai3J5W9Poxsq3IGIQHc+z5MyfgoxMRjMigqachdMah0D0YwsUp5ix0TgJK+wd8Uv94Hp9K9FQL7H0nmtCGctGgv+EkT2E0aDclhhFTCE+si4rAcAol3e+nSfvM8znxme+b+TlzTkKFoUIpJ5b3g9CJPOWSSESxCbrowXBJN/2cMGPmgqkHxeQtu5g4lFhxIBNG3h2jSS4Wh+FXJzzTLt2TvTYiEUhp1o9MMU7rEuJ2hItlmT77xFbBV4h5JMsi+JyIQ2mG39LG0yPxSEMPfIOnW85E8JJDXxFljoGbYKbJ+e4wyw+vt/pCDLPMg197VO4KTARt99j2Y4y7ThvPaBhNnni83WjDMb1HRFnLwmLCKpbbVruwxdFYxw3VjVBjXj+B1xO7L8x1ILLT+zNOxZea3vem+ZB5ox+g75hCTIFYEdkSiuvgo9JlEtaRYoQUlnEGvTG54PtAmzKj0ZkwRgJKfSC900Zn+M4YwYyCzx1virfOnMq+D/Z9ctsH4UKMweTC9COxh2tGDcdAZ+caMMaNrs64Km1C684chWkPLBPiPNBxgqGMGIw68iJsZyg73YRfvb6blNvTyxUZVy6PN/bnnfbU6D2IMRFye6eL0iXY7grlrKx3Gy/eOxE9h1dIPqeLKWJCVCNMmDOtEiLJFpFwlgPaKRGZQDEdZnr3hQOiF05I2h2Hy3GBHL+3B8PTTlRrxWql1JKQwJG/nx6Ww9Yn4o45xBgH20qI6zO2LYgEbaQstEemU1nJCFgQLhdn2dKfPD2zB+fBgTh6AXzmf/PI8b17bpwh/6yMIM8NE+RQ402BPjh82fPQ5395ftsRfu3bjwwyZne0lA7HY8PO9/RpbNKRkcVuUWXujb13ujt7f2J//YCY8fHrnfvfV/n+N3+ZvQdPtz3tDw7nu40Pf/xDfG/4c2NZVyCo55USg/VUKAa2d25Pn/Pe/R12PrO+eI/tvLBslfBsUrUaqpVSlfvzklumkeEVxZL4OGcw9gsijlo2GaUofW+0m2Pbxrqu7J4K2+n7MQD78vn4nefXH5zTDscEGQhiFMKMnSvNnVs843Nnb86zdz553NH3K2431JzFA70KbelYQJNGeMO9MpoxzpW2BD4b+DzuGmHThWk1rYtm+TNsC0qhU2nH4MHjSoyCygI4IiuDgplS3KhMzDo6F8QrQydTZ4KVVSiSEeniFdMCoQiVpfRjSDEPbk05lDQDSwI54UrVkmm+0yhYMpEQJBQlE59kOsuygDRKyfpAPEAvB48HzNNK8KapznyG4DpeIdx+z56B380TR0rbvgPtKMgngBzClozZriXVvfVgTaqSARYRlKNg9XCKGnNOTpshmjZAU9g9WXziaQeYJFPrba6hDsYM5FiszCDt9Rpv7ctigswCHsgxBBcnrVkDZA68d2I06iQj7BFEnCJQavK9oiky0k5ZiUxhJFXOc6TVYyqY6KHiMsQC3zWRD0VhGA9hPFwKt9K4wDHwyHe6H3Z7sThUQEbokdopgyIDiLc8pXf5CFBWyfRRTUuViLDUQkQOmiMyAXeG4d7SVlrO6LYiJpn2V0/Ido9bgZLPX+ZOgx28R8hBaDVjLcpiylZWllpYVsNUKXVlqzUXhLwBtQemC0UNOZhrbzRSkqZpQtK6GgTbofzKQYBga9bmJd78v045LKulrNiQVF1vJ0SU7/3W57x8/4StNXlJpR5/92MgaiDV6H1kfxIQMfhTf+4XDkDEu/3M/INOhaQ0RKHPhfbZRJoQveEucCosvvP0ndfc/fgH/MTPfPVtIqqchN//sx+wyyC2E7YZfhvJ9xNoqqnAadDn4F/5l/8Q/+w/91XmfCBi4mWy3RLB8fjZE/ttRyJ5SnWBuhxLYzP+8p//LuPa+aN/4l/k4TE5b7rcY2XDlo16qpxOC8uaQ/YcrE6KyLE4zndXLZas3NXw4oxjwTx4s+zJgaosBlpZtzOvL3A+G+w77TsXZHybcndGlxWfk3FrmDi2GO553/tIzrMq1AiKFPDkDNciVFGusXG+O7GslX/nz/zvv8dPwu/OCUupb++T2gERdtKkFSq4KrsFLRasRFrkJN+lAUQHkWSPWVuRInDKxL95gzGU3oU5wIezj8GljXyGp2K64Q+Wc4ERzMXzTTkjZwIC0xWfhzJZknnVw4mSAy6ZHEKHrN1GT3yRjLRe9+GUkRediKTzR97wsdJ275F3YItkSTNTSFPXY84yJ29g7kTyIacGcZ89jbTJHDNTYC0Y+qY/TPvs6NlruqRIQqdg4QyHqTDmP2bDrAB+8dufMp837Fa4LJ8weGDMK1Yme3T2uWFaMDOGXFGD1jtKR+LGOhSLyeftNcLEWyRQXZz2Sae89z53X3mJHYDRYhWPnXp6hZ93xutndAwKC1WNfqQEzF3w1hje0gJIowsMuRCqSFRCBpNHwlfCKqUEsQ7cToRueKtMb7g4PlZsJFdi+PMxQFu5uXGLQrSEj/sM4qb4VfA+MkbTO2Mc3CcPeggX35kxU5Y8AQ12nCkXhl7pYyMUFjXa8ow6nPZC9Zz6VgdmoHrHs7+b0uUQCF0435+odwvLXfI2vHs215YWFyO9wjGdp88u7PugnBbGPpE3qrieSqj91inIsYUVkCNhh6No81S/iDs+/Eh9y2jmRiqVJGDTLOeVTF8SD+TSOd1tmCqLwl0xigibpTXVVI6BUypjtoxygqO0e/7uAy9fnjmp5nZpTvoYyZs5oO71WLnrvjNcGO45fPMs7kYcwymVI7kwp/0T2G/zUGocirBjk/4mrenNyzWOb34EhHxpIfudx4GPP3smHJqmvHw+POLbxvDOfVW+grJFQ0Ywe6dfekaJi9JfnLm+vvH0cKEsxukrP4mcjd/6xncZ+8zY3xC27US9O3P34R22Fp6fJzoGszthdjzBgVrNpuL5Gd8nbYCsJ5ZlZV1W1vuXnO9eYEthXV8gCMWMasKy5jYydMEovHf/gkVXip+QoezXLBa3k2GaaZinml+H8yIVGfGFeB19oc41jHa/4Oq4BOqKWsdjZHKcFFzTfnJaJ3KtSD0zBdpU9ggiBqcb3J+EbQq2NMZNCXYQ6KPj58k6hEVT0RvRaXRsZvs23BFtBBeG9IQZq4DeECyHUOw5HNFB0UaJBDwrTtWJ2EAZlFCMFRdYkIMRIlgpRCihSmdPGPmb4kocmERXJDaYgrJgR/rq9KCUdtw7qawJHJmOUiiLphReQKQh5GAi/wjDNRito4diVo57zBR+/jf8DfP+3TsChCNLEEtAndihJpJjC6uRi75MbMv3qYhTPG1f03MgNDy5oSOE6y1ZP2+HDQd76g3QOr+/znXmO8TDssCNYCDZULkeyqjknNEhyqRopPovApEBMRNE66m+yu3KoEguYXIQkBySQeA2mDrxXrIHVMen4V0pizCZCaVXmFlh07qynmCtwu4JQf484HkP3jghklmXzKVBHCEouVGfYyKRQzU14Zd+vfCjoq4Jcns/I7JppmJWWE9G3Qoewt4g0S+BazoshIRd44bFJFyYo2cD5QU5QnhEhBieC0cpLJZpg4pSimJL5bSeWNeNbV2oKhQJ1iNB81xS9axFMZPkxnEs8o7ozWN0SlHlXpP/GXGEA5liVnJJaPlcVjPWZUn7pCgnC9ZXL3l+eObjbz3w/PgZsq3oYU10H0wXIhHSIJK2t1LSKiRCuylf/84zX0bpwJ/7hW8RTLS+GXJPoqaFXMKRUOYpKDfn4Tuv+fu/+D1cnZsXxpx885c+gx3a0+A2BdbKnIp3oXUyDKcY5xeVv/y//F2+/o3XeAcfwenFHfPlQPtkNU/L2VJ4+cHGe6/OlLXy0QcbNhMv8i/88X+a//MvfJN5eWZeB/N6Y9xusN/gOoibE7OwaMWANkri0EQTni1CiZEKRVVEKxrQQpl9sndj9jXViThWnI+/L/DwmvVesasSd1e4v2cqrHNQDmbcDGXuKYoonsZ+MwdXlprv3UUcCdG0FAAAIABJREFUDWMzYVvPrFowK/znf+UXubZ3MxhFWvKgvEOPtOzFcNiVtkO/gDaongghQdOePzoqBa3AyMHMnI1Qp56Tl6gEEsp+c3wKYzdkGtJH2vq3QE9BqYFcckG07DVDvyK3JIribaKSEPhoxt457iXA8h6VIhyTr1RuidDnwKdTyb4v96T52ROwu2fYS+EI/MpeDzLsa/TJzOuWqRlyIIvglizIIiXrM4MoJXlaZL8rnnfnTuAHV3PkXyyZb9PpkvZxD6H1H57j/YVgZk3g6x9/m7J8jWcq9fhGlLEQ1TBZMH3OLYlDPE90FTDn1oUlOhEXlDO13iGyAB0Zhlw+hv4B5aM1v1HslO1EpzH23FrX9z8kbp3bbz5Rft+KygmfjyCNXioyHdkzHjU3w4eNYjhDBjGvqK6MGZQyuYoR0ZgdqAOv4ONgZMUjXQKfneYn5OoQA5mT9kRuOOc4JMuTYFJdWMqA6nhfGXeTtU9sU5p2qgax14TI22TMnNyKB9OcEkqEUejoEgSDs61cn4I43VAKv/R9ciDxDp7RHTOhhbCp0XGoBTuil2/Xnf1pcvdq43Zxthcpg+8xeH50llXfSi9rSUj/IpYFtkPPFRHhTlWlTacc1gyxlNH7ocgarUMximpu8I4kJh+wX27IdE73lT4Cn4NJxpUKghRlHs9dJoMFjLx4RJXbdVJG44MfewFj0kY2nAln1yy6j5Wj7z0LxlPBPZuBCcw3XAhPgK1HPu9x+LD7c6OeMkEsAtptvFWYmeR2tXnO3oNsBqeTzJp3dFj6//lEUhejJP+o66CvZ4gdnzCm81te+WgtVG/47cqrjz7iIoXZLpRWoV242U9xWvOl+wd/9o/w7a9/g/ANK51zOI8RRCh7C15+5SUPn75mtKC+MFyCeb2hZtymY7owYkcOhs3T4427RVnriljJ5i4gqlKWF+yPF+7e+5Dr9Ym+75SlcrmmdH15dc4klyqcauW2Gu6DBeU2Jw/TiJj8tV+6ciDDf68/kS/eick3Xr/gZ192FlW2JCQzIujqhCjTB1tZ6J8ap/uNuV7YrRNRKN1TUdJTASx2YtkWnn/rwvmjLX82mzOr41p5r1d2BlZP+Oi0edjmY1C04C5cQwiMkInFHZMrxI7qCjoxApcshIcq+EqxgjMOluTIlDpbmXFDYqLUfA9aQlE9ymF5MFwalRw8ZPpAQ1nwCPoQIKX602eqYw85/HRwV0I7g0CkoFHwDobRY2LiXHDeAOMlyfaEp5Q/UP7bv/35G9PPO3gkFzmHnbRLUJZB35NZERzDwlCMxB0EUEhQ/iJGO5S6GpMg7VzFnPOWyuTwQrs45YDGx7FNTl2Mc/OZtpxFGIf9YHdh1TQvm2QSpqgirvSRQ6xMfAILTyj8m2J/OLnSM1QOy+EBGmcml6iK0GVS1NknuQyMLN7VFJegKiyu7FdYtsmYuf29D2Muk/ZYWZZBlKA1Tby9KNOV+mbBY5Lp1KTyWo93+X/yF34tn7N39rn67aemhWqeEHs+7MUFulNXw8pGf3ym74KcNkxz8MW40T2xDDECbk9ISeZo+EQpmaCrWROVkfB31jP4xGwSmR6QKWQzFya1RAK1l4qZIOFUsWR+SqGIIhr06ZQl0w7RTMVcS1C1conJFKUeVsRqxko6RHqfxPQcpN2EiIF99ILR4fX3LvT5xAdfe5/9NpHFEE/2rxTS2qSFGI5b0Ifj3ilW+ff/i/81a84vD3/2b/0a/9o/8wfY7lZ0XtEPnOcn5fwiRQg6wTZhxI12PcFimFbKGImTcWF7ec/c9wwP8E6cc3h0qsL5ZeXx9ZX9Qfjgx36Cp9ffxcUyofR2o0Qh7h2/jVzo3WBZCqN0isOnn3aqVP6lP/Yz/KU/+bdoLRIVUCYacvCdA0nh1AHnhrBk/UVoQro7FBfEFlSSLTiHUGoOuSQK67IdYVNKWTeeHmH/1q/z4U//GLzurB84OhK8bVvQRt5PS0neUYyeAg3vx32vbOpv09lLJPS7VMGt89Fp5d/80z/H897eWd5fxIkzGRYwp3OtAI6WIBQwY/cgzJEwqmQtNnSmYhnYe4Clgi8CtBTaPjm/LxQZ+f30vH+QXIosZO/eoxFniJOwPE7iRTlcWtlnikGx7LIwST6kQCHYB5nSJbkAaDYoR2Be1yPDd3iGPJnikdZoHzODByY0E86aveEgB1caab8UVToDJljVVHANMrRDc2k4CUqF2Yy6zrfstZRTKhr5fXUVqimlgxxhQSWULlBl8t//yuDf/SE/sy/QKjz4NF6wqKEY0zu7NGo0SnmmFtCZBcumLX2et1TTCCsm54w7RvB5ZYRzvX1OezJkOaMx8WncxYYsC75nSkmLiZRg1MDLlf7pA609ZKBcnA4ZsiFrTbBjTymmhzG8EX5D5AX4hhbn2lvaBqcxUOaYjMhI8cGe3tFuTBbCJ6MJowuX3RkdnpvjsxA0fBYISwXFVPbd6OuOTOhyIbwR0aBXig52b/S4HWDKFQlhmZ0YC3hjjsGk46JcomWiz03RgJ/7rU/f2YtpjIkDxjjAc5qsDQIJATNOr86MxwfsnE3SEFBRVJ3dgzYjX1aHYk8lt3IWAJJWhUipbskAzuRskHs0F0CcspYEwiLEdWd/brinDUtNqK/OtFpgNZatsG41h5K3xvPjjdkGbcxcG+Cg+ftfdojekLsz1z65HM2JeRzpPCN/BkZuj70NysnQyEbOD+knnhP46fGWgZVyZ+HSgsTcxFubYVmNuuSFOLrT2w9UDBJHtGpkgoZ/ka6bL8KRSejkew8DtLK3ThXnLoSzwOf7ZBf4NIRajLUlwDT6LRPdHG4vXvG9bz8QVbjuOx2oL1/w6a//Gmhh15pw3JlA/+vlhpXKoHN5vNL3oNzdMVUZU5G40F0oWrFSWFXpYfS+5yLBjPPpHiLVgbrdJdTxdAIR+uPkg/cL5VyZU7hNP6q0ioajYoRVxMoxJC38nW8//Yg0df/wJwT+5F98nTw+DYY54LQazKlMv1D0RQ6mqxPrhS2M1Y0a9eB5OHreKSGcpnLnBWsLy3S2eWzdplMsuEZjtsC1UrWwLSvuzmI1B0gEfjT+cwYxJxoFk4USsIjBiISLq4JMRnT24YTXDIIgrWPJGTzAywczzYozxZliCCvSwcbKJBkKIYGPNQdNHcSuYI2lzrTq6NHQIhRTQq5ETAhNZc50QpyQRpVMoVN31Ncs2CTl76GCaWXwIoNb3s09DxysiyrJuivoARWeyfwMB02LeS43kqkyMNSDHn5wrhKO6wKzTWQI/Ra0S26yw1Mt4c7BPsthqJD7leQdpd1gTqNoRo3HwcBaV4foqE1MkoclMwMl1JxahWASPgjvyJy4N/b9sPl78rdipqVfSavSbea9o9Ipi9NuBW+Coozd6Dtsp1yGKUbtCQUWEZZQTpsRoagpix1hMtpADssF+T6NSLYmB0/yXX2c/p9HgcH1siOlIXbU0ZrWukzIFcq2oAb0fEeopeVFA1wLgqVNbJIsxpx6pzp1pKpYBKoJjI7Ng/USae8TMlDJ1N4yrUSzASuSShM5LKnHDJK1KFWgSmABJ3VMlSsCWo5UaTgtC6fFeHlXef/Fyvt3Ky+2wqkW4rpj95VlXdI2eLmwnlfmU0/W1/QcwhdF1XAToo8jNTFYFuG0nrm0kkrTL2uot+fP/+K3efzuA3sbTIS4Oq075W5DTsbDZ067BfX5xrpkPbPcpUuiGEQfiQORVIbqotDS3nd5HLz34Rkx+PyT73B7Hjw/3Ygx8TZxGdzdn4iajC3fhMt85vrJznycKMb5rvBz/92vEl0PltGh5pOKuDNCaFPfqvso2eCL/uCdXE1SeR2BS3pBTndLDlJLfesqWe9Wzvcn1JXnb33Cq598wbg5bDf2kaqf4p32umPPFyQGUmCZAjMZiFWUdQbqaR1XzSRDq4ZWwaxiYfyH/+Pf5PnWDvTB7/VT8LtzPn19x4jKmINdnNmccMuLIaCNdDO4piKrRzDdKaaI2+FGUdwDjTVRNZ78RsgBfL4XUklsR77MzIcxe64kKjBfBdeHzrRACkg9AnVUcjAkiXKJSMFEEXib2itCEfASaAlWlLoUdBVkJhoA8pnPoZgy1VjC6CSTS+QYqB7ummGD6mm/93HwcqfCIlAyNfNtYNq6E1E4KFxZQxxGQ1VF3iinzRiitPnm7ZhD/Z//ldc/9Gf2hbgZNWCq8te/kfoXET/k/8LTGMzoMBprWbHR6GbcwnGdmaTjHZ+CxJLSYzp67Wx6wvXCUvyIB9/Rco/UTIfo4jiOq2IFlvuNuEy45XRQRJixH4yqwW0fDDNsbGlfEEXlLiXCMhlzMnvFXRiyg15ZhgGDLg5T8IP1MfqAXomeNrTZoDPp3rjsV/yi+LgwxkBd8JYbyBIzbWm6MTywdsLlgc52yFKN6TeKjpS0U4AnwhrqWUyGC+zCuE5ic/q+8b3L5V29l/j5X/hFVITb1GRMCXCUlKKSw5zRsPsz2m6ZXkje1UhGj4tqDrE0LzE4tsCm+euw47WD4ZHga6GulRlHpDOWLJaatpby4sQoihajP12pL05ZpFum6gzg2gayFOT+RLlfiZIwelMYz539NpnDsXFjuT+nZchTZdWIjMKOhEDnhj05W2yF2whuM7/GtAQmA8UjjuTGvHy6k1P0vRNFclKf91ZCcTka0WrUmpfr2NMzTZCTvcN+8eX5bSeFB7x+Ni4yuUd56RMX5xpCsxxUPjt8zkb/9MbKzmZCnYNmxvOtMfe/z3MTxmzsl8H20Qu294Rvff07eOsJg3RHtGDVsCos24l1W7g+P/P6k9eInDm/v0F9j6UsTCRT3k4Vl2xafb/SHq5crw+HvUv4/HsfM8gY9ZMWTq82xnZiijPiTdphcLk+UcuGoIw5Mla6T8yC/YvxGvpCnhD45r7SJXgeCZkeodhUkIr5BuOZ9lSZ58714OapbIhPxJcjqSj5NELjqg30U56bcauTOADZt1sn1kymZHjyOkRYl1P+7EbgZLpd4FmEwyFPL9gsVBmZgCNB7gALagV0klFxnhtJzUpNIu8PmR0blXltRFds5B0X2w2WhGpzgN2jDtw1VQ2yAidGOB7tbZQ1rCBBPSXjK8IQKRgLpZRsYGQklBoImSyl5vsxDBmB0/n29Suov7uawTdDukGwMdFDn+0BtmSyIX7AucdhdRWBmKga5bCRryKYCsggChAwpiFLYMVRzcSiN0phZCKR6q/FhH2fPD51igmiRzJ0pPq5kCopQ3Mu7kK0CTEpkvDl1pJxUjSolml3Eqn96g16A58HxNbf2GbzfRfhlGoosGw97RM3Z0xhPQmTHFiJC3MWRvWE3dtABAa5zClVWDSOQV0qkeMIxzAzPJTQ3Ib/6Azvcxvf9rT8iaWdBHJA/CZ8oZRc3GHge8KJg+SqhQNF0FqQEKYrZsm8iqP20AhKSbZokVQhVLW0REmGJJkrOgc68ioxd2QcdkI14gg7qApLBBvKEk7V4M5WVEkWYFXW00KthbtivCzB+9V4vwQ/acFP3yl/+L2Nr63KezE56yAmvP71R84vFySU1geFrBUpBdEK402gwtHMVUNtAYP/4D/7n4+v90tl1pvz3/wf30BLpT9PxApRboQW2q1xfZiUzRgm9K3TPulEKZQXlSHJ++m9Ed6ZzwOZHfrhXFHl5Uf3vPzoxxkDPJQ+4+AQBeYdM+H58ysxJoNUnoyhjFrwJXhlG5QNuQ7mCGbo0WtkIJNtC6HGq48+OErkZCGpCVXtUCtnbwLpVDJ3zLZ0hiyVkIKtleW8oHUh5MR3/94D53NH6x0+dnwr+Oz0UK7N8XlFt0HvwPPg0jMVUhnJAzNFLAMqlnDeV2EBNldKBB8W+Pnf+PitW+NdPf/DN3ZCOo1jtCKGjcBbDtQ1qZzU3WlzJpMqYMzgcfQsdwLEjD533IUuef+NEGRIQuYlQ5NEDJ2HWqknAkgQwmYmiL8Q4jEHP0QcyubEukQcgSN+DPBFUjVlablVTcugroEuTthMJZam3ZFjwVhGKpiVIHpO19w95zME6tnDFc93qPtEMksNm5PdgzEDP7ZTfqQW74+dxO9kIquFJUs5MiUWh+kHz3l983UVLqG8Hj/8Z/aF6CJcMg3ur/7md2E8MHyw+JrFLkIfTg/l4p2ucPGGREF0gdaSuq9X+nzK5KIuMBqzALukv14cn4PRg71nIa4+sRxfImVjrxtxZ8ynT+ifp+pJpeJjYc4B2uneuPHMVAM7USLBjfiN7o5axvT6MDx2rgj7zD97KnQfDJ6P6OEsyMaYzJl2N78NoiujO7rndtFn5Ha4gTehR8ElAeLdIeb9IasPwClSkj8ge5p/PWhj4gphWcDNoVAS0H07bW9Blu/i+d73vk9EYJbT8vB8ccw42FBklPfzZzfidKIw2G8HD8oKyyHnjJKbEU93X1rpEiCSnt8ib4dgcliV/WgIDWESdIe297whJdO5Ls+dfatMeRNYkQ1DH8n46Aijd/rBv2pzcp0Cm1GqsD9c0KUSPg5o+6GbEs1LSFMendHril523BJ2LJYKtRj50kyyb7JGBnIoMXKoFUHaBcmvfz++fwLokViYe36hrAXM6C3lrEFCE788v+OE8De+/jFjbwwmQ+Ay4WlMeqSFDBMebk98GoV9GHdMNODWBloC++DH6bdOH0r0J5DC1/7JP0gZz3zyrc+pWrg+N8oSEAW1E+V8yk2MFba7lSLP3D59pj28ZlydeXUeHx7ymVMotsLdhswbqgtzTq7PjfP7C35plHFjud+wuTL7ng3LnMyYhHuqXGLijITpMthq5fqgR8H25fl/O9MBb9ziIwRhzJGqqDFZ60B8Zz5uLGtQ4oShqDltXCgtmLfOTZ8Y85aJkj6pKPdfXXn89MqcCecenoPu6+2GLkGZgSz1YHZ4cvEkqKIJbpdkFE0RvEgm25VJ98IgbVxFOzYF8Y4OJfpk3oLx1Ck3QdoCu0J/swnesWVDS4dywXkCF4KWwwAcj8GcipVgRssERRsQBmEUT8WM1cacoMeiAfJeDNkZwzNFKPywjiwJxqcxJQGnITAN/tRf+01mpJL2XTzZNgvPeyZPdh9MNK1Wkg23TMfF813hWTiHCM0nAwdNttlwkCipmo8Ah2LB6MnjuDtVyqFq8ulETEyUmPDyXDHTtF1o8hu3EtRjCXQbDqpZLLsjntEiuKMYR5AnoIyRBXi4o9KwJVAbaWNojjdheNruF017WUTaG0UEW4QRhq3+lg3ZpiNdiXMuWp+f4XQ+EiA9cAnOy6E482SaqGUDKwoqjkpQRHH8sBj+aBwFQkfaC9VwKagpqhWxmqgFS7ZVqYXpzv48mM+d63Pn9jTZb9Bbchz3W7A/3ejPg/E8mU+D9nilXxqzB1IKthXKqbAcv+paMzHRFFuNYpVqK2I11TlawAqmRlWlWqGo4BhjZkx9YwWDshiLwlmDuzH5sDX+YNn5w3fCez9e+Oijha++WvjJrfDTC7wY8Pz9J/zyyMuvvs/ywcr55cY+EzA994m3DtuCeiIbxLL5mzH4M3/+lxk/Mk/LP9zRecl6vg/WFeI6KB2W4mznXEzEtjK50T8DXbLf0+NXscqyBVoLy3aELOnk+7/xKb/xd34F3QOeGjoHc3f6vjNaoT3PBKKvd/yBP/Q1Xr66w2c+3wvG69sTj99/yOV1SS5auOXQXC2ZRaZ89ukteX/hmKRVljaJkbvOGUHRVJKhhgn581ML67KwWGV43ssff3wl4ontozO3148sd7mI6ARzBEUnYpXbrMQMdgY5nh2UaeDCKYSX4ixmnEtliLIrXE3oEvyx//KvHKqhd/t5/PmHAZ5M6dkF63nv6zSYQp+TcYNRMh1ZDjxLhnkJTz2QPdI+Z5LCgj6SzXkLokOJIGYOo7oJYZJBSEVzYeNOi3xHu8C6KmW84W6lLY9IpVZEMiY9mzCWpUBk+EpRYTFnWQDLtHmrHCnFuRwqR38KB7s59FggZnrxG36k45QJrKlsFVL0o2Vj85xwrm+ARZKkwXoqDPUcjKkyxsy6UPId7YeAQkvWIjMCi8lnjx+xzh/+OftCMLMioGvw1D/jNx5/hp96sTPilsoWnTm1U6Hvz/hmSF+JZTCGEzHQvhCXySoG5YoUo5c7Ngn6pbB+NGl9R2WDFthdyicv+0yA6NxpN0dOTl3vmH1jfO+CLXfMckNroUBGCfsN1TvGbEAmcUlbQVLx4F4YPhjiqC/AnlC2nlYbIvBeUG85XFClR8dno8qCz86Ugc7KKBO60rVTYyHOOUgotwm1E6VybitXu1Jk5SSd6ZUgpaLTHcpC9IFKSWjbDHwK1J15LVgV/uO//hu5P3uHR+3z0FMlq+qwL0ik7a4a+96h5sZe1g0dk+ZAH8haKZVjiKX5Q3fY8RYTbntPyyaGlSxUW2QjNSLTj+ywJZ5L/j3mSH7IvOzY/cJSEpTbfFAFrvtg0ZyKjTaO6VgcjYJTD3vj82dX3vvqS3prtNSmE6rM6RQTBsLsA5eEIktz+v2Z2VqOPiNDoEMtI8sho1MPy6GEsCjshx1JpaAauKeNsEhyTkQz/XAemyQg7YXVcH7A+fry/M4T3HrjVCsXT+7PPNQPMoNYjOKd199/zasf+4jvMvjaKNzqGY/Bubxgys7HX/97vPqpn2C+fAWzEVr5p/75P8K3fvWX+c7/deX9P/whjFTLtdEpy0o9LfQGVp2bQ3mx0YqyXyelDNSWTCOxlafLoN6eWO7uadfBnJNSgv400BcnYMufsdiZviI6Wc2YMZhesFNuOKcriFPNeP2dwV/6Zn9HxwT//5wgrXX/1p99zZ/51weoUhxmg/1BefXBQiuTMNDYkVoQGSwheK+M1alyRkx5FYVJI6bwVM+0hyeuRZH7DFZRvbLaRp8ZxV33wliN6U/4yOE/RDISNIu7pQS93xix5iDTHcYgimIkP0K0IItiPpn+jJUFlcqCM8ZkSEBUQgKjE0UZrWI60p6F05iY5mBddDKPhMM5ByblWCJkylPEQLogYYi2I6Y6rYehgkcHK8mKmDkkKx1YBQ2hH4uhxnt88+EJJN7dZzTIpUoLRpmspsQMblNYrBIlYAalG2YJcFcZ7NNA0p6edlJHuiNFU7nlQge4BX3m4mS/DeoCkwoM7qTAq0nvRq2OVee666FscvY507o/g3U1rjEpGdNCSKp+JYTee/KJJJOhtORwyuFIZEwYvUhupkFgCnvPoj1TDHOR5MBqzukc7O3Yrjuor7CkjOfxFjAWwnaGO1OUoqn8HpMf2OQyW53QtOVrBRT+vf/0145v/Y/G+9Ah61FNpIUV0rKD4w2QBQhmTGot2GKUmMSshPthUXWEjVI6rQ/MVsSciqZqBeit49dGvza0GF6UWIxlSc6pFkv1llmyskQzYfoYGCwmFFEWCboUWgR9phq/qqAFiimrD5bu/MwL4f5nvwa/7wV8+AJmYB9f4eMLcR1IHXz0cQWpPHz+yPLTH3KrhS2MK4GGYrUQU7k97xCNei6MGTmwu+38R3/6f+N7T9ff08/vi3z+jT/9V/mv/8QfRZsTqtweOtUCiuIXYX0D9f/gJewXxmeFUZRynwnmwyf91tnu7gkU5iPtgXTvdOf+979iPDxy9+LEp99qvPrgBY/PVxYp6fapyusn4/GhsZ0Fi8KLr/4En3/rW7gaRTMQ7DaDpQRFKuf7hdt18vT5Mzaf2CwdEuGO+zxYuQv6JnRMlDaNu3XikepP8VwutAjulsr1Oqmff5sX/8RX8Y8fWe4zUGMMwftO1cGUSomZX/Pe83KcgxFZc1qpPHsGpmySIG4NpVTj09cP/Nt/7m+8u+/B33Futyu/9OnKT706o/uNRQq79EOgoJRPAl9hedEZ35mUn7QMEnG4iLAWwyvU4tgSxAXipNh7wvhk5D8JFodWguLJ6EuchCFjoIcF28K567APp67C/uRwEnRCi0Q6ZF2TNZnPwHSmI9Iy6VdNGCacPWgCXlIdJh6UCLofYRZX8DXSQRYHDzompnrA4MFN0JmWa58z+ZN0VIMayvRcV6sJboXqkYgISzQKlrgCOQa2ahlUJn5wwif4EP6r/+m3cK8/9Gf2hZBKiGT7axH8xa9/Cjqp1Sg1PekhFZ9BKUIdQpUFmYXVztSrUVbh9P5Cfe+EeiGYoAORirgxS2eMQLkRoxyMoRuuTuud8A1VpUQ9NrML8WrSPn5EngcWkzEE0ZTI+WjEUGRWpky0CH2ZjGF4jCzeZ4LhXCoRCRsdcQObiI4jtakTslIjMC14dKbCnPmQ0WEyMF0wDRgBbcunolToztw6WrIp2EOOIj8j09VKJjLoimjH6/y/2XuXWNuy6zzvG2POudba++xzzr23niSLRdKRHAvwo6kESJCme3m0EsDpxZ000gkQ5ImkkUbSMqKGH4icho2kkTiBo9hI4MiSHUrRIxacMKLEh0SKIotVrMete+957L3WmnOOkcZY5xRl0QJJCWLlVk2gULeq7j11zt5rrzXnP/7/++m+sZPoUaltmZOvz/1NSu4YVxrKr2PhOkkxSW1zJY85HmgSENichGEqrLcnbp51aoOcg8VSUlxHrdvGYYAhwWkxWo/pdZewr2uKP8dms/SNSYWBFhAzau3UILljCGNJrGtnaVFlbWZY6ySIhh+H46mxf7BjaZ3VuY8H+uYYs+Yki81a8Y4cK2cP9sFQIvhXQxY6W8shW7xENmj8xrxaLW7Sd3nnvuW7nbgk+/b3+He6GeHj8GB36GRNpOFDoZ1/+JYJv/HtymiNLrHJbgZBBRWu33+GkGluzJ54lwTasA69VRKZOg0cr1a8zThQhpGWjMtPfpp07gwS9d7NerxHvVLnRvUWRQJZ8SzszvfsLw90Rnb7HVqULivj1BiTMl8/pZ5ucY4YnenBDlqPVp3TQq0tCg08risVJVAygvdOKVCfKjdvnxhmkE7OAAAgAElEQVQn5avvV/qP+vX/EK/NMc712tA0UVHazRjC/GXiloUq0JtTJVHXlWwTchxZ+gpW2dXEeTdWM2504ZbO3E+kh5X1GajMeOp4O2ycvJnOwslgOMK8RvEK3dC+x8ToHg2766kH6NQNzw2dVmwn9KmzDEZXQ73HD+ErjUSXcLJ0qzG9awEuHXOLzVx3XNZwzCajWQrmBETcjUZtW62e6X2xRO9G0UYRwZcoGViiepjeFPNwY6mPNI92PrWGm1NLtKY1k3BNJ+HnvrKPqKb7cz3oweGNJy0igDgVY8SD82JOTkouRjIBM1ZPJFWaJZqEw2FuFiKk9wBpawsGW8vYlpZRkdj3eCVl5aY31sWDabnC2ZmTE5i1+3iZiFAGYbGtQVci3sAG6hcJ5kwwHmNbpNbJbtFM6dAtBfjdwlXt5rh0phFSqaTslMHJgzEWKINHzM3Y+n4yUgPSG0bJxHBYMe+gwjjke6Zkc8ja6W6UIWC5JNn2C9HK17ZGqo/SMjoi26HIojW5Nd8EREdTIg+JnCIOLClDCUi7DgPDODDtEmU3sd/tGHeZaT8w7Eem8z3j2cThcs/5ozOm8x05JbQ7bW4styuypSZUND7LDiqxT8vKxr9SpiRbJmc7VOaEbPiFJDHYY638yYfC4V/6HPaTr2OvPYJHB3g4wTiGO32tcBNNb/nZkctLYdgg0pbimhBNtOocb2ZScZIW1pNRl4oB/+jXv8P7N/OP7k37/8uSaD4TEbBCyg6uSDKSVDwNrG2ha8GnGRmgeaUuM706g4DfPGN5ckUTCXh2M2QoLM9uWBbn5p1O8sz1sxNJMz7AT/4LPwYG19/5DloX1BWXytXjxzSJgdNaG3MNvEvrEW98+vSadT5y+cIZw9ku7m3Wab1yao6rkHOltK38IEGXxu3Sw80o8dzrfWVX4MmTlSffeJOzV18gv/cEOasoa3Bx/YSmRCVRm7G0RusNd+PUGhXFyLjEdXueC1mDWydkmig3x1v+3b/9a5Ene44fg//k+t9+O97EdRCOugZfeXb8RjlNQjs4DJ28V/rjiDHXWeO81u5MOApjpjdFpSPdWYFlSViP1E2ySDFIzmgP5meT4FnlHgKSq5OHKP1Ke8FXx4oiGUBxiVKxnCU4a2yt8oAkx9PWK5xgKPEcSqJkVaoI0kJfsBJOrapO7XpHnqH3OA+6+H3ayHrf8DHKuDi5bw+1zbTg7ttgM4rR1MNhZmZIdWxrjrXNDGE9oPI9K2ubeLw6Vb7/tswPhZjlm5WuK3zl6n2kTdTWN9B6QfyEumJ9YOknjFtYF5bTDdODAyodPEUDoFQQZ3CPA5U4OiamNFF0YtUn1OunLKcOKUc7SnboFvWUNVOAaTpQzuLCbW851ERzoyM0XUAW1v4UXxJLvcHmcDxFDKRjKUdrnkXt7uBD2BBrKOIiia7RdDAoWAonTSmCZqNnZ0nBqIBOV2GgBZhVTniPyU7UpjuuztpzTJW7Ub1Hk1OZAWPGcIlMbcsGxwOSOj/3zRnTuECf5yWESBNClmwTaTaGoeEd2tqw3jfwOxEdVChnI+M+Ns3H92dON8baI1BXEVqHetu4vV6ZxoRrgpTIEm1+uWScjVvUQ0BdmzNfHyPL3sJqGZJ0Z+1GNUeGhJayNY13rAYfi9oir2x3LV7Bxkoarqq7CXMXmM1YzDgenXwYOa4dcBpQzZnbRrWI8yhlizp2IkoSFIeICQazMNhgbYuSGE7fmFuRQowX1ghhTvGNvRNT7o/X91ji/NrX32dUxbqjTjhwkjIfZ+ppZXe5wyVRt7jmGI52vAbYvS4OT96i5MLZOEaMZzpjvDjjUz/2Om9+7W3WJlujJXjv0SYlhaEMeIOUCp5GrDfKLiNlRx5HdmWIRrFpoHdhevGC4fySYX+gW8BD194pkmI6ToB7k8dhMrNdv024fXPGbGF8ZUdLnc3b8fH6p6zvvi3/zG/tWN4FGxeGQei2ot3JLvS0UiNbTluPtG7sBufgwTloAkdXFg5UwHxmdzkhw8LTt2JKpvnI3GdWFoSEyQ03duJQlbzBmN2usVUoFHQa6EOG/QAakdfeV8wbbiEc+eYgFV1JMjCIRuTaFkS2Q6VuzXl9QA2SJQYivm/uqBpqFSzRu6MSHEpVQ5NvplXboLlnnI4C00DZhOElOakYQg62XzLcI+7RUoYZsLD8mzt+K5yOI3/317+z2eX/2N/2P5Z1t9kF+NIbx3CWoBRJWN46RjRaDAeUITvNM7UHKFs1nhdiISrhETswi/e0WlR+qMNOoYwhJOQcTUvTmDitiYqzAAtgPRqebBOnqgciIZ4qElyhLcIoaXM39eCLqIcQKhYtXRDXhYjdC57pjjavQncjRbcZJcn9ENAtpsuGYxnWdeOzinA8FnzbH1hPwUppldqgVSd5OCZycjqdLJA9Bjxiwt/5P4/g9tzvt77XMp/QHDG6nJScE2XKjGVgGDPTEGxSUQm2Vk70FL/fkuIp35+n+8ZPM4e6GtYNklLGibPzibPLkf3ljnFfSKLUHu0EIVollK0ZzAGNYp98x0a9c6rnzDAWXDPJhOJGWhs/vhfO/vnPwp99DTl7BT17GdNXobwOOsCQoWfsm+/D0YDGg5cuySnFkLGzvf/KeqrkFNf6eqqYCl0HmnT+51/8LdrzevP5I1x/4W/8Ap6hWsal0SWhON2DS2RzRTVEddmfwdUttmYcZ3l6Cp6kJkSjLGIcJCDZZsy3DcyZn1UevP6IvEuUKQHKL/3CbyN1Dq6gJrwZ8+LUXrGU0NYD0L4JB4IyH1fcYlj57N2nLLdXHI89zmsZypkzXQ7sHx04fOqS3YM9h8PIw5yQ4lydnkF1xI1xqNS1s7z5PhcPHX86sxwESyNtc5p22yLyxj1qpK7O0R0VqGaszckEY/B2dXrPrB7tnYPAv/Pf/+r9czyGOs//NSnA75w6yZXcncEVMViPSpVKGYXJBUtQLpyhD6TZKecWbKkU3Kswsztag/mYgcN5gqt2j23pHggga42usp3tt/9GuKaQiEgDVI+zlG1nPXUn9RYHOI/nevDhI6nDFqN3CZ6obcK8Y/EM3JwYruFcbziph4ivFnt4Qh9m82DEnJ2YtLoYPYU4ZUrgS3oUFmkKw4ctEYOUHs9/yYH7sR4lMFgMigqwa51f+5ZFo/UPcKl9KKwSAS+DJpAk7OGalFYzJS/YKLS2RiygZrpGfrTRaLIgonRPiN8gqhQK9EL3maGOrC4UX7F8oFfo/QbXiXq7UMpAX5ySdpgs5JRRixN+OxthMuT2RH37mvLyQ5BTtDpVR2SMC8yULAbqrB2kRURiJRoDxJXVK+JKkok2V8QTGaVxwohWCvcFKgwSccJpCHJbE2NfYR4LspzQMqFrfDQ0OawLnhtJDO8JkUbyyInn9Yy1V0pxzBLVlbSCp87aE7/07uMPGE/P8f7qG7/7Bq+9/loAfzVqUI2A6jerMBZ8axOZtwaHJLDWzjBmREMVHy4mvG/Mjm0zbGKUfUFSfPLGtFk0TUka0Ye1GkOYBFBNTHtYfKRkxUXptUU2mWggFFWWCs1aWOJVcAIcnzRaH7QotQdfJHiAujFEuJ8i39keVTszBWudonGoMAvwn3XfJIWNE+bB/LC7Gx3cW0zZanpt42DdMb7umi7YhMJQ8COBYh7X84dCOf8wLld87sxElAfvJBKtwenpLY9euQgTCp1uzlwNq5WC0FDO95fU9oT+udd49pXHjK9fcn4YGHPhmTlNM8PUePydyoOXQvhODkutdHNSGknitKtrlpQZh2icqhbV5Nnhujf8OHP+4iWCsa6VuXe8h8PPU2zm3DZnH4KzYF25vXZun90yWuLhpyaOKWDKvt/KKdjC+x+v77ncQxD4b3/lKX/+30gkCQGzaIlXzhqK0KnQxnBeDtesPbEOGbOnaBujCKWueNpH6UQbGB+uzG82rt9WXvq0cL1AlsK61o1t4yCZYQJrEUGVvFAdXE+YZaQ5pZTgPKSE9I7S6ZbC+i49DnecEM2orLincGW5RQQJwbxTsgZgNfWt8ESD3SdxUMGFdXG8dDoZ1wZN0DpGlHk4kvYWZS/JwRpK8LSgBsxUwpmzrAPaIGdYPDZ37o5OymQLi0UU/Xl9Ln632+zr33yG/ORuc+V2qgfTpdvWTOnCgqO5MqzBotlJ8EGqGr11JKUtut7pPdzKIXQJqzbmVaOMpBi1JvLQyVu8ICVjfpK3khWhz46OgrrRk9BXRXMHFPEUgyGcLE7fXFpbrRPN4zrZuk3CUb8NY7p1kE3IuxOvXDjVzm7YeJpsDY8Zmicyggyxga/N2e1smzIneoySAx7uSu2dfXHWFi1nZNvub4Ek+Ie//vhH8l5/GNY7bx/57Gt7um1FA8Xw7ltDmGKr3jdb+hafSRlks4z3Fm7BgLxHnTwQ3u/N/Rf7IyHljKbEqAPHpyd8tZjubUxPV0F6D+yEdQYrIJ0uBSspBBEVEGWawtGvvfNKqTz8Z1/GfuJVVA4InwUeob7D5OvwdIZ3Z/jCt9CSYQeXl+c8q866bYisg1VjOa4sx0rrFXNlUYM5Gr7+1t//8rYn+9i3/P2sanHCH846tWXSLuL4Kk6X+DynMmK+og922LMV3wnT+YRYxVPCtuGriSCtB5lIJurNkeEycfvsKWtT6tr4zE+8znr9lPe/c03tC8M4sByNfFHIXbitlbzP0Jw8KM0tmn8zLOtKtkqvQQmfLhTPAy8+fMDZbs/Ds4mdCuu8stSGrJV3UyeJMc+NudcYLrVLnn7jGZcPja4PKIeF1p1eZ9SVIsZNB+8LuQreKms3zIT1ieCjIdJDFLlNG3S80xO4C5PCX/xffjmG6b/HkvWB8+a7ByLP03Kg18rXrgqfuxSWmrFrRx82iiem5ng2DKWrMe4X5qcD6VCx5qFlZAONU76bbpB/Z1UnHRL0hKd6HwVMsrmUINjODms3hqysIoFk0O2ZXAQ/OT5BE9tKf4gynxZ86N6EQROr9xgOkPFW7/ddLr7dByNFBpHmMYmhTNHgZlmHQcPccNey6ir3bnlrgpeIDhohsqUirDX2Tikpbeewxr06+MzbOUFiMCZEOYqbUNT4/BfD/S8/gHD6oRCz7tS3tCm/P/OlW/6VP70nSw/xqXZyOnK6Gjh7YUJdWa1j7pGf96i0zWooO9ZWKLoiksH2lLUxl8pQ5wCwq5LyiLIi5hjPsDzQPdHqwuSdopWUB5ZU0eFAP9yQ3n5KT2dwUUmDY9VZmoHUAKhZCCVZlTpnhlRZ+5YPRTARUhNqKmQ32m2ComGr5gi6w3WFUUk20ySTHCY/x+WEtoZQ0OR0DaDv3DIlc38xN3W6nOBWycNA02NMnesFbpXMnuZHzFecibpNLJ/XDfvd+uIXv8SnP/PprcI0uFliWwZ47sguxUY2B2/Ke0QeclbWVkmEAyVtkRMXDSi6BKtDciD0ijhr2ybHbkgLDlIRoffOmDO1O+vVAmcjXeMGl4fCfHvcGFPEe7bNo9dm8fDaVO7VIfeO5xLq+vYgb3dNjSLh9PQQlNYK+/1EbRbVv2zilIfDyjYxE4L1VT2kiN7jwZ4wNCtzDdFBNuvpXcm4bQcD3UStgEVvN0LC/h3f1vP54PvDL6GLcjSjuLNXZU7G9eOF/NI5htEMUo+GwGdPT1xeXFBrZUiZ62UJAXtdmF5JPH3rCdNnXubx7TU+KMM08MqPfZr3f/dNnn51YfrEi5QHQ3TwJOd6PpEls5rT5xPt/AyWaHNzHO8dOzWGfcGWRsNiGqQaU8gNkN0kYOLHbz0LRpxVmq/sX9ixO9tRe9raSzpLg7/9q1eY3z2CPhazvte6G66ZwMk8ohPZKZbo3qEPjENElXdHRYeFF4dzvHeesSJtJetIzsGzS3li8Yr1AXxlpZIOjVwa737jgt0nRuCIdFh7YzcIJ6Auid5PMChKoS+3qKT4ut2gd7Ik1JWFGfWMSI8DPg1VYfWYOrrtMG14jkOsJ8NrtMu5Bnsi9RDvPTVoBbEcvMdi5Cka5BKC98ztLYyXK/RwwCQtAfRO4czBJ1yWcJ9KZr12fBBKriw5sAQqSpMoWVmA33jvE2R/M+LTz+tta7u2AN66qhSVYJ6JbhyMTvIEpqy6AcxNoCRa76zu5CEa5gSlSKd7jt9HNPvmrNCMXmPjuiaBFpPnm5OwG8OtsjShWDgAvXc0CcmUVRvMyqiKrEYziZZFD2e6qNM30TH4VAFkdySGURsg3rwjPeJIbK4Es2gmdjFKkXA9e+AIsjitJVITbAqbw/VVZhiElISuHSzg7g3DTClJyArrqdC1M6iwu4CnVwJa+fIb3z//4/lbwv/wt36ef//f+9fICp4M6YLrEFP5Nax2mgVxi+iNxABMxekoIkbKBUmgbmB1cwwES0iIUgpzQAtWDaxzdrFjPVbWtTMfV6bDQCJF/F2UoWSyN7wp61rBFEbDtFByYiqFIrBbV1775A5e/wTaFecc2GFf/zz65bfQ7tivfw1/JOiffRW7XpC2cnUS3mtwU5X3np1YbmbYmuPKXsjpjGqNQZTa4D/4qf99c2Q955vyP8JVCAGmm0fSpTk5dXorDKNT2xAlJV2oT4yLz+5Z3rzBNKLkSTNGQ/KAdWNXBgSnaOV0jOIt7xXBGXYDb/zG12mSICc8D9EKnhw/nbheOmUcaK2RDNZVKdmpzUAauXY6cP5wz4MXPsGPnyemBxn55AvYyWDjuPliMHdYGp+8XGlz49vPZt514/Hjlfmdb/Lgky+TTo1UVpaeMIvijLr0cAO1hiNUq5ze7jx8daX7wPFFQciMWmhsGAGDLM4ows9/+Q3+8i99Bfi9Q4/vXs/9ft7gL3/B+C9+MqKr/pJt7jYPdScLaTs/3xgwrPC2cvZyuHOtG7n2eJ20g2W8t9gTjR17z0mPtjNSCrGKHC46JPZVrmxtyhFR7Wq4bLaDRLjyW7AjNUPezmV9dSQ5K0ZO4ZrG2+Yojri3i8cAyoK5yhxfO92dH1XinqbOsjn83R1PwmJhdEiEWces0zwG2ykleu+IRCN121inZBASunr09fRwV1sXhGgw7gpfeOuS95dnd4fS73t9aMwScfaOD80vvvMuJhGP85wCaF0PvPTwwJQV8kLPGc0j1Z2mHVUF2+N1YSqdxVo85M5XkiywKna6IWVFXZlKp6mzeqe3rf5XY0Md8MdzRIRpszPDQHthpM835L4L+J8KIpmSEtknkg24K81usWR0E0h1i1MYvXbWVMkYs1V6Djioat9gtZWkI6UYUs7IJggFZ45Z4cZiwCPzehKwVGkpBzCVGpvvNuK5UG0O2+KgOB0XZ5ErLDnZR37xvba97j+qd/2PdznhmLIeMHIj2viaxSa3O9QNVJ6y0Nr2z82Za8da51S3LLT3sLxbx1Qw6SwdVguBy0UgJZpEfDRakRK1R5PWSkQY+xbXW2rDS6FXozvRPmkBPwZoPSDs1YTTqWFZA3RpWySQENW6a8QMJdoFVYSh9RCfzAjPRFiQw4oK4sET6QZr274nu5tP26bkg5TEOjeaSzgz7m4fWxtdkLgIMQ3grjNGBFB+gGKKj9jquFe+9O1ON1hEqcfK7oULEkrdJv7R4pVZu1Cth41c4XaZQaPy9+Qw6pFSKl5yRGJKIZeRVz77CXYvFk7vvM2bX3ubZ2/dMB8BEY4ecOOpDMiyUvtMayC6Zftbpbqw9g5uVItoz+BEucSqPH7jCl+dcdcolzC9MnH+iQs87+kUNCkDcZBNZnzjcUQw4q+P1/dad65ZAVbgF77+ADkqc3UWjwZBWZ3D7AypMAyF3mdKER5QOGNHqYlWO2YRQ0y2vd7SEUZ0zewuz9DylOMbt9ALgxTOxqi8b+mEnoBUoGSsOHk4Q2XEvCJqWAquURNIuqNpgGubxIGxdwPPdClQIprde6O1hncNYUESc3daU9zivuGWUWm0eiKNR1JuuDsFJZlzPFb2h4RbwT3uR621zXkKKY24ryAVkURdGn2qnMRoUtAUiAIEtBmDJLI5/80vv/eBvPq83re2n0tEMNdwjm++pEgLKGOK6X1yIfVMDC/Y4mAZW30bEIWDz93RHiJlwgPKrxFvyB4tR2mMKu7zM6EBSxdq3a6RFptwFaG6kU3J2UjaSClED7MeBzR3TjVawEScvoQjzC1FDAOnIPFs8/geQhxW1hrnBlQYRCgeolrSqDM3U1JP6NjRHtehCYy7qCPPkmO/6BpOL2KIYynTzKmLMJ+EdQ4WEznx03/3a883e+0PXM7t8cjNbQ0Ae85IGuJAlML5lIoEf1QFVzY3ejwd3B2SbvdCj3KaDbSvbKDklEiS6M1pvYFCHkZSKezOJsbdLoTNY6OdGvPNwnys1KXTLOHDQBoyEk02SHeSJGhCXjovJUH3Z/h1hbeOiN/g9g38C9/Cn17Tv/y76IUgn3oJnxtqDZmFJ08Wbt6buXn7CllOTLvMcDaS9iVQDr0GfmJp/Mc/9Q9iD/+RvU5+uPWX/sFvkl3ZF6H3qImwlhkHJ0lnENvA/4ndxYmrp4ofoL23UCXRaUh1cm/k3ukizKKsrpScKCUg2qrKvICkTApFfGNJQiqFNIycX56FIxVBpxJup2OkLY6njiXj/PKMTz96mT/zuR271y/hxUewv0ReeoS++AheeIBc7pCLES2K6EBelZenien9zPj4GdPDF+i3M+shR8SShSmqQ3FzZq/h1jmtDMsNl68KyMiqQt/a3KvHwKekKKkqmjG1ELLugEl/4Hp+r1ORiAB+9eqMKo1mwmqOF+XGDKVE0YkLulfyeaI1jedMd3JWqhAmCMms3nAVkjjZIZ9DfRaNuK6QcuxfRFM0C4pssWrBiPNcI1Jrro4lsJPQarinWrW4n2zOKIuCynAF+vactkgGsRkQuBOy1o6NOVyyQCcK5FwiMji6oOZxomuCmmCaMBHqbUM83GJNiKZogjG+eidv6AjDkR4c1bqEuxnzaPtNCji5RQJBf4j734dCzDL/YEjoDmKdn/96pvuC9SPKgnHGakpxmHRPaZVsStGCLAPeV1oFSQOtKlkN0cR+CnslPlDyDukpMpwGSc4YTfEykKyQJJPyjpU5AIEekzqzcKZQhHo4Ye9f43TwisgSENommK/3Xx8CvGYGSEZEGQdh0owPGtNjSRTPqHRK2ZF1IpdGSZkhN7QIpUQ8sfVElULKhZ4WlsUpg5IWwRfbJleQ28Q6C52V5jtYnCJG6wIELJqcWMX4uTfej+/zORfY71a/hwhzHzsQB8spnEobuC6skoYkwCOXXJJgEkDXaBQMwca3XHQPYjdOtFLcO6ZIrH17cHTHBeqpMUyJ2npEbFqIlGZOU2G9B8GzTZLjJmaEUIY4qwtXaxCHoikxDhhjsEvp5ttGKZhWq91x0SKeIapU30QtlfvohXAn0t7lTtPGzwJJQrVtY7ltKjfD6P0UNb7f4JdEVNM3x5ZvGe6P1z9t/cZvP0VyTBXX2xZZ9K2hrakypMx6OnE47Bg03p+0dOq6knKhiVBInF0+4vRuIpfGoEqfFzwpOu741J/8Z5hefoSnDlTWp7e8+60bbq6EZRZqbxE9dcetsZ4W0MS6hoDrm3vDG5gJVfa8/7uPWd5+wngGZ6+ccf7yQ9JuR9ORzhCH1CTcjf+Kw3vXUOXjCMX3s+44BSj8pV+5QQahYXQSee6MpxxcmMGQVjG3YAYJHEzYUdm3wkRhNCczgg/gA5MWxp1iLfPohYecjSvX31rR4kBl5cRIhqmh13EvGjxcqn02skwUjaKR2ivWFmprWE+wxflsuw+qK+Kd1hckFYaNkWUGWvr2EzmNFUpCMSZJ+Loj2Uhtid56xGuvKq03prOEiyIeh9e76IMBFcE7pCz47QgG4z6jGtDnajUmmO7bJFFRNd5aPsFprVu8AoJx+bzfu8J55arsMIorA4Kim8vOaTFDBrPoe9wifq0lco74Q9liXN0bLh80LOWtxdSA+aiYK6dbp8+QEQbpwS5VoYrGyFaUahJMGuL5aYOH+Okx8U4EMqB3QYhGXrkTl0zoXejNsar05vRm2+ENTBy3GB51t61+vAemogoyhvvfVOgoZYxnpLoH4D2le4eyiEVcxDok0EGjJfYotFWpt1tc9Xm/jP6A5cDP/uyXAvauEkUBKeTTlJSUFJJG87KEICnb30NkUlwT7opte5RAIgQLta6NpRl5zAzjEGUSSSP5MST2DyeGQw6nc+vhVK+d+ebE9bMT11cnbo+NXhtJo6FSiX3LxQgv74fg6l4v2Neu8c9/Hf2bnydfgjxdSEtEjORbT5EtbvjWN57yzrMjz9rKsk/4+Y6ahRWjN7sflloT/tO/8nkW//6Bxx+vD9Y/+uZ72GjUMtBuTlG+hLEYNEss85H5vRl/douJUPoT6jIxfRLsmaCpkMeC5UwvA3Nzau/U1WirIQorGVcleQ/zjKRNcDCa24b5EPoq5JQoWXnt1REZBnpptPdnSnYeXJ7zwvkln/3cJZyfwYMzePQIO3sFP/sUjA+Q/Yv0/Q4ZCz6UcLKkzuOvXHPQd5hev4ReKYeM1IZKZzRjJ51Ua8TIunP7RkN1Zhn21G6srkBCxNlnIYcUzKjCBFzP1/zrf/0fAt+lZQm/777l2797XsX56WyPe7Cj/qffusY1nH/JM7Z0hiTUZaUPcc7vYlR1hlLRU7A5uzlrN2aN4bNqQqugzUnd8RwstWCARkKGFnuR+0HT5spv3e9/7Zuz2D2SOiKK7CCVwMdIiiFAlnh/hUArqIUgK2qsIlSRSAB5AOJpPfaasjn1PAqjSMoqkdShg3cjNyirwWzIucIsJIMiujFQiURRylQzmjfUtqjiVpoSh8Tt8hLfgPSwtvxDSaQfipghxIY9EXbR5sL/+rVv8s+98hOcX1xxetcpL9zQHW77xOALuWTEFgYTmJxFFdVKqwnRBfWAkfk04u3IwBGOkNkuMqsAACAASURBVB5M7KsxeiavV3hP7EvEZaiw9o5opq0ruSTWpdN9IftAozJcHrBnwihEU4E2lInaZ8Y6sOydvIxYcrSOJDlSWdBU0KZUjIKDFBgr0qCmRvJT8IjGEV+dkuXectipZEmQwiKaaocpIAFNMjSDVjASPTsMQlsUyREJs6NBnnEfqckpS+O//H+e4L0/x7r6719uhmnwfFrvqEakQLNGOZJseV+JDbIQz6e1Gj1tX2ML/7kZWZTanCwxac7uLNvXnFcjq8RDDgnwrBrr3OlDiUm1RWQQd3qLm4xvH/hu8SQJDFYIbaLCfDsz7AdAUA1Qo0DklyUEBmf7mi60NVqV/E4txzeGVUQJ2QSvu5sv+NZesYl9xGfTPUTAUkr8ua18QCSmqBHPgLs2B5GIbRohsiXnI3Wt/TDLrfF/f/OWP/3ogunhIWzAGrbfLJX5yUw6mzg1owGHUblpjcQZ+A3H2yN6tmNplaxXPHv3IZcHZzovSCv0eaEvnRdfesCTm85Lr1+iCZabmfnqKfOzK+ZlhGnP7qWEa6GfnNunR/pSuXn2GM0DrltZgjemw8DDT50xjAN9O3yua7AHT8sR00SzSl0TYxLUGoMIP/3Lzz6ePv8ga9tUuq38xf8x81f+vHJRUtjTzyvdhYxQ1owO4Zi7cefWjuScmbJx7nt6XygQEdEmSGqMu4H6dCZdCDycKJcLT988cPlKHAZOp5mBibY3eKpwiAHJtC/Y0VnHhokz6kg2Z91Auqs5pC0W342khWbGXibWvrAsxjCm2ECZhNPLOoOA9IqJcLzJ5MOK+QKesZSwZpydCauFqJFkhj6Shk7XQmUlmZI80Y8ZmRZ8PwDQW0M1k5sEz6g6beP6icJSL/hP/s63Nyv/9tI/p9epb8OcOwFw6YYv4VxfujMvGqMMhatTXDO7ISLkAWw1uisqRq0B1hd1KvHfS+qsXRlkI/9owLpzSkg1xn2m5YotSsoe3JuNa1ZtE6R6MDxuTFASaXvQuSd87Xi5O1wmbK3spowSbmk1CfeUCG6NJCOaKwjRbm3bs1Uc64miUKTQV9DRWCOlhosw38B40TALd1rOdyUoimnEFQWnbWy3pImalJwCMfAf/bVvbS/6XTz/o7iEf/yFX+df/Zf/HGNJmDYSOT7/uaNuSGsUzXhrUVjUOpI1SiysbdFSKJJRD6ephcWeMiRyCqFLvYNm3BveE6QYOOqQ2I8XlJwY1NAcUHkj4mluRu3BNWJprGnhLBeadlqpDKeGfeMZ6dTwfcY/9wry/74FB4U/9Sn0yfswL+EezIX3XlKekLk5dZZTiwa9bdi5mpM8hNL/7K/9H5w+tq7/odZ/9fe/zL/9L/4p0iQc3ztx9sKA985simZFBsV1hHLGdGZkN65+58TZZ3Zw85h6M9LPlMPFBJoQW2lS6WOKg79Cr5u7VOXeTz6gNFdUnKLK3JQyxL73d751E02F7tjB+TMPH/GZDnp5gTza49MFdpiQw5+AfECHS/x8hXokLQvGisqAvVPh+IxP/viBm/cG3skLKz1aOjfV6erGmW8a89XK/vKatD+QXlWq7qLZPBeaBN/5QgcsQerBqZ6XmX/zb/4iZnbf9gn32/nft2RTue64dc/bmm+PAHQ6V4tT1gGGimrEM80VcseqsQ5QujNiyCPh5tvw4HPyQWuqKifprJIgVwZTDAv0woWxPIZ0Joxq0agSHhruSm/FFJN47o0eMX1cgs99BloNOyqnYqQtraEeqZ5I68TPVB3UPNhwm2BWNw0W2VxXZuGmz7q1FkahiyvBEMyCtDB2WO/ooHEt7IXhGuq5h+5izpCUVj84d94Loy6s1vAGpWz8wmZ0df7eb14A1zG8/QGZbB+qK7ETUQonhIGf+r9+F18WDruBgUTThtFwSySZUIRqSvWGeKJbKOgpZdwSdnvidHqGs4Mpw6EynEByZ+4rlDNMjegZSNCFlCboiVyUdY4Jb05n4JmkE64DVgybM4mCyi6iZYPQho73QtaEM2PlFpdCZqDPwuJGXzt97ZzkCscwbRSZcHeGNKA4aTLIHSkdz4AmcjZYxrgodIevjrRM0oaxYrLgsiCt0ZqDFlZmTBvGw2g88yOpNt6WAzfbdOGjtL75zTe2+EmnE40ivcWH2u73ETFy6GzT/aiLoOFRQIDQLA4/pxqT3aX2YEyJRjzPLCY2283Mu9PMqAYLASjFjcXknimVtsl2Q3DblPdNDTdAkrIcV/bnE4ZSzWke03STuCnZNnVudxBb7yTrAUjdfj7bRK6+uRPhA3XcYAMxy8avEdD4/RuMC8kS8UKNn/fOPabiG1BQ6ejmJNm4Yh4i2UftevtBlwl8+beN8WzGJPhm1uL9tK6U893WthU1tsfqsSmeGzdzpKUajTJlbnzP8c23eeedhXWF47yy1IqPSj4/47AT1tnQrug0Ui4vuHjtc1y+/pBeb7j+xrtc/c5b3H7nXcSfcPHqxOG1c4ZP7jh/7cD00sSjP/EiF594xG5M9GosS6UuJ1qLtp2SB0RyRGA1Pg9dhF/9ZmTxP8ouhR9muUeBxLfnxunyk/RB8AGKL+y88CgN7MrAIQ1MnkBneq6sXrm1yvt+w40UhISvjSkr2ROGMSyFVQa0OyU5fX3M/MxJ1hHprH5LdmGw4F4VzWj3cBm3CVypbjQVar+BzdGQDGqt1F45tiPdK+ZLtHrlRNNwuyRNdL8GXTGL9rl2PVLKgvdO8YiDaY82O3cnl4DGI0Iqy/2fE9la9mZBL490jSir+RqtOx73ydwLJQUoWrTjKD/1+WgU23T+D+qtn0Nnln7XB9BxpqIMozBv8cBh39hPkEvlMBkZ53RUnhyFNitrE2gwiFFKZ+/hmhEBTVFgMajiLlRzeg8YbAZWV2ZvZA9mS22xZ+thzqJIcKtyisN+2ibS4lHO0h0osflm2yznMThyVaCK0j2czrgFwFsaiG5DGzamYwxPSTHZrUejlx7nBQfLynyrkAyabgJ8jyihhUOS5tATJoBEA1YXAi1BuIk+HuVAvAaJ//qv/3wMvlLB1JCUIgKmSi4FNAfvVhXNQ7jh3RlKiJ4ZjfYvIfYmKGXM5JTvwfGuOSDFJJJG/FC6oYQDrKiTtlisizCUTJoGzi4OXD468PDlAw9ePuPRS2fszzM+DZwSASsWgbnhzZDfegPOM3I4QF3CUX8YmKcLvknindvO20+O3B4ra6us3enWYo/WndWN//ynf4mTfcRte38E61e+8XYweBSmS+HJu+FoVw/cBS6kooifqNdObZnxBcM10XcvkR4p42llqRlNQjVBy4BnYT4G7ydnJ41KFyGnTFLFkqA59u3rqUda5z4FEQ28rRqXo/Dg0UT+cy/Bj414Abm4RMdXEQawBrqHx0f8/cfBkbxN+G8acvse6cFL6JXjr07cLsraOk/eMb7zO43vfPWKevWUYbzi/KXKqe7p7tEemsI5qxhnWxmGYZRN0Ggu/IW/8QvR+Bpb9fv13Y89x7+rXU74qNzTDOdnvz2CKX0bJOPRhmuSsArF4n5UXdDJ7ttto5EXmgSTMRIu57TNeNAc0gPIS+J4A942Z3mPSGAzZbE4q2eNZFq0zG9ikzuukToqKSFFyFnJyH0SJquSLJMsotu6QZJFhCJC6ltsXmDNEqKW6FYu5GGdvzMttGBltdXQrfAFgCScRkGuE97vQAUBfO93g8HNuOGbToMGUD5vatvkF/y9L4eIKD+EG/5DJWbB1jBHxKreb7e8+ewRWhoiK3jBzemyUtuR1RqnVKlVUTlRZIqLTGe8VXxtUbWbndkTMwfWZWu6ac7sN6zEA1GrRdxPGyldbRnTlUai+QxES06yjB86PImIWbcFySe6xuZGvDKLQR+hDgx01BPjCKoNHztSnINfMEgmSQczhv1I2i0MqhRN4CNiE8mVMnRaG0m72Li33hAO1BoHi+yF7Bm1HM6cZlS7pfQzeiss/hjvm+WwC3/1H78T6u+P8H3+Uayvfukr8fp5wETNw1HVieuu2RYlTFEPjQh9+/1RRaqRZTa737TbdnfvFpEKlRCD3IzWoTW7b/qrS0NyYrVO66FIQ7ik2lxhiz42nNrCHUYMJzleL+g0Ue8SW5tY5iKbqOs0EZbu8fV6XNex9Y7v27dN/l080hCayb37anN90racNkg4PjaLVtwDNQ6MyBa7jodaI6IjfdPNut81HbL9/76HV/nj9XuWuICc+NLbBfG7B1Y8UObjEnBmT3ido3CCTuuJdZ1Zl4ZKIWtcA+tyze6VA/XqLU7HFjXMtVO7MoyJw8vnHK9usR7TF9EBHZTd5YHzT15y9ukXOHv9RabXH3L56VeZzs8p047d4QLJ5+wPDzHJ1CbUpYL4FutIyKB063Sc25tbUlZSjmHD7PAzX7iKH/gH6d39iC//rl8Y8G/9d9/GqnEQ49x2uFRuOdJ15UqfMdPZt3N2doZZobltJRQn1rRwmSeKRMPqICvNb3C7IScYbWB4UXh6deT0rKI2IlTqOiP7hbIm1HO47qTRpOMMmCxUgZQnRBpmTrWVpI7mcD20qixU6NG+K1SMBcxQy8FfWwrz00Qab9Fhi7qlFA7FO+N8GaIpR3IAuCWjFNQ7qQuna2Utjd4UlTHCi2X7jLFHstJ0ZvWVXmNK2uzAF9++CaHV72IW8co/j+6su58pIuXxTFC1ELB2W7uSBNxdRCE7u6lz2Bm7Xed8UJrDWhPZYRyiqah3wCs7DW4WAkkjlk6Dk1vE4j1zXPr9ptU2R29rd99bMDjcDb+3ymmA6SWES+u6tQpGDLJJMEx67TjOYMYgQiZFtMui3QyizTcaM53JhN4VSjRrdo/IBs1ZDYYdzBaMkDsWpIUFGVHBkqECqjlGo66UlCkqHOsHYpZ/5HZd/+TqvPGdN3nnvZWyMXpS2g5eSUF1u18oTgJNlCyUrGgaEBFqCiGom0T7lwS2QzRYpZKiNVMwJMcgJSKL20EvEdHRbfCtJZGGTCop7jMlwN7jfmQ87Bgu9uxf2JMeHSL+WA33jgwKP/4pfMzRKD4Yfr7njeuJL759w1ffO/LWbWVdnaUu1NaDPbkdYmt1/sO/+ssc1/W7Tnsfrz/MSjgpJcwTh4crN28nJG+8Ie8svdHdyTrD8QbSnpu3ZzwJst+TP/UCcnzC6VsnspZISrhRr1daXzERxlwYNjaVyICi4CnizkNCcqL5QNpFe2L3znkxzs8PPHrlkrYvyDDA2UshhmimSwcd8a/8Bvz2F5H3nsB718gXjv8fe+8Wa2uW3fX9xphzfmutfTnn1KXb5XbT2ECUhEiRIhQSlIQESJTLC0iRIohRIpGHJER54CUQrlEID5hIQC4OGIurCYqRE5CNBMaJY2N8AxvLbl/b3W33raq6LqfOOXuv9X3fnGOMPIxv7apqd8fVbtrdrqr5cM7Z++zrWnPNyxj//+9PvPRJ9OI+9orxaG18/KOvcfz0Y2y+5XD1hPvvNR584AJ56hK7uKaXA8jCk4cOw4mRr5eqjdPI8BQJwYpytCP/8Td+RyJW4jP3uXhTMUuQzep2rnjJ23Jf/MwREXzHx24YUvEiuBuK0DzQSKVxhoFJgtgD+mNFteAIqzvNysZYFpZ4Qo3cC5oUFoVyPTg8JcQizK+mHfFcL1QkP96c49aAsSWVqLo9/LIL9DbvCu6Oa6bUm234HEn7uy1Ckthff2K9CGNLOaye9ZduA9bI/ZtsPoul+jg8mGo2jjK0DzyMKEZcOOU2m1LpKjs7fAQtgkkGR0Vk2IAPoWy/wzf/aGeNcfeYv/HvtzK+7IpZkOqstCzB//zDPwdLsCyXWVwIA1eWWbBRMxq5KBINd2MdK+OxMe0FboNxkQkyTsDUMJYsErGCHlDvrL3Ta4IkbTUK92g6UVtJbhdAPKFQMtHiIDgdiYZKQan4GFByk8unPA/x49hAjtmho1JtQrxgu5VVhRqXlKJ5qNdC7BZgEJNk/GYLVPbUyeiRi0epBakDjxMjCiMkobnkC0SG0iL5NDGEHhOVgo/gH70g9Dh9iZ7ZL/2wbXM6F5Nsu1CfG2PhwWLpUfbIC3opshW8EpSLKsOcPgJKHp629OhkMZhtCqXAa2VoYQ2hHPLApVoSvu6eoMoQmApjxFasyoOdiubPNwZt31Dx1y9Zm8VvHbBYVs77GRYYEJrVqcUT/OeRH8umHDtf1CKS/zUiq/YF2JVNUkp+zNh+xm1GYRF52N/4KLLlaRvpt95qcPm62SrsEbmovTs+94hNivsjP/mIuikRigexLOj+wGKD41gxOh0ICt3mjNYVR7Z5vQzj+vLA6MHlsw946edeYEWwIuwvG7cDiu4ZBrN3NJxhwdoX5mWwu7gHtbGbJmqtlDqxroO626MeyFgxWzBLGXwr+1Rd9WxPVRLm7V7Y7w+UgNWgtMKHX9zj4ZtK7+1/EPpCxxu7U+cj5KByY8qHXr7GO9zGwKNydOcojrPnSSx0nZlicFmNp2PiwqCMW2YvCAMJT0aaN1q5yES/cUIBaZfsnxGsQ3+xYzeKWkFsY9vEIGJQ8lTCMlZG1LRvSyO05akosnNZoqBSKM2Sr7Vm+MliCtEoNHx25leDWo3dU2vyS7ZOpHenIRwieQ5GBiI0mXJN9EBLx5Y9re8ph57KWBFEB8WdXYCGADeYDSyUVYAIll74I9/2hLso6HfQ1Dz/qovVVBiT864VBWXr8Ar7kvtWLvcZTXLYQRVlnkvGwE+bwn1tnFbl1HPfKWTyoDa4FGVyWPrAfeM6xmY13cDJndynNRK4jqTiwjSTEpVClY0HYpFKP8szkG/2PwmhUNDIZ7VGWjbKyPRVkexAg7BGhuO1pnQJFsvLySsnoe6yIGcezAarJlOzbIzJos5OMqq8uiMlE5NLyWTrP/4XPnTHmXwHTavPPUL5c9/wbam40oRqa1OKJstBtFJKpVbNcCXdoVqRAFRpUpC6PYc11xkXSS5km/KepopIw2KzyUQwtcq+TmibKLXRpom623FxaEwXB7Qmx9Y8OTZCctYCcKmM3US/umI5GvHUJfLUNex2WTBoity/xwdfXPmZR4/4uXXl50+Dh8vgtBhjHsnYsWRPDhf+8Dd+L7wDHRJfzPG1f/m78RiIGCoTT71n5uaFoJbGvgraYwuhqVgphHZkmZEY2HGABO3pp7n+6mC8/IT5xUBrpUwDH5U27egkRFs0Mqk1Fzhaq0y1Ju4lBrePjngIF1rRaeI9+2tkYxAGAlrRckn0BV0GcjLiJ/4J/NTH4Dt/HL77k8T9F+HXP0vUlfIVUN9f+flp4FeFmA6sNuGlc7IsiOrY9sXrSw47mB/lGptQ8QIKhypMhz1/6u/8CP/ZX/zeO6XqLywcyJYAnG9t+SrIG1SEb0fF8mcbZsbf+tAeseRCjjIoIVyEUj2ZNGc3j98Llked7o4CkwqL5/OQ7gnfmmpZDNsNMFcwWA9BvTa8wPwQWPL9KilZrpZOHwTokcX3TRQxDp5nNF7nrKrIxiwVfBaiOF06Eo55Bvd0wAvEpnIfClNRSoUpo2MJFaqWbPTMAeqZWkjcWU1ryaaO6cZUddlEDGcRRCArdLa9U4RWkknp/j6++2cGRrlTZX2+hdIvG2bWZ451W+GnWPjhx/f5F997JHrgRZjF0X1B7MQ+GqqpDRlakHVCLgvdF5abmfJgJp8tTUjuhdCeGP60MfnK0oJmRrhh0Zj7a0i/wKWkhz5AZEJGQF+Y2n1mmdHnAvnwLXb/Et67oFapseQFrsA8CpM24kJZuEJZ2IUQteI2sFjYUahTgm9NC9WACCa9xxw3oHkQDy9EgTompAn4insWx4rnZcTLksq1MFQGJe4z7IhWmIDFVpo+4G8//8o7opr+ucY4HydFKThhzoIyab54XNIPrqJ3hZt06aUCKvkihcJAW0oqXdK2JyUBdkVS3eTIxrsacFqxfQO2+PlN5ZRJE3kZG0WZKiwdZKzUWvMgTyW2jrMAJZJ1Fn4meG2gXTJ90GNTV4VAq9mpjq3LEnnww9LueE4zEYTVX9+YkqWSharIWlkmXm1/q2zBF9sinh+zecE39RfkgioIyJu7PO+Ozz0sVr7l+17ht/+rzyKrUS4PuDg9Kq0YfZXk0PRBbY1C4LVxPJ02lWrhcNhRdWXtSr2G137mZe5/9dOsx4XVOrvrA08/u+eVl0489cweFUOp9J6MnMvre4w12Je0nO53O8IdHSsjDEqqMYzAirLcnri4OHCzBrKu7ERxCZbwhFaK0caJv/SPj+i7+oS3PN64Vp//GQxmgd/3/z7mW782LVRHMS6XxrI/Ib67Y/dM6lzpJYy83E/+gN5vuS2w9sBr5+Sd66d2LEeouz0+hBHBrjTsmZm9KE9uguWV4CYMvTxysduhTXA1TJzD7gLzI76mwmYXCce2qrjWBHaHU/yC5XSLrY4fG1NbsCvBVCgXhem6woAiO1bp2BgUrUy1YdbodSC1EYCWzoiZ1i/oa7BMM+wG8xZBPelExEiId7tmNWPHgH5AdMWGUmsgtfLk9sDzjx8xqLwxXfOXcqj6lTfy9/vGv/s8v/fffzpVDKvTJP9vDWFfU51MTdUlMtBRIYw2CbtdcDoF5hMmaVHUgEkLQ0Bd0EWp2qA6PmWIxDKcw15TRUPus30ou2aEZMpd01QeN8mEQ0TRQloXqzBGAt0nCSTSXhjka6cLeekMAUqqp8MZWtPS0cuWnBToIblhhiAYjx4pVxcBxVgDLnaVY4d16dSmeQYQQb0QxXEreLO0yEkwovFX/86LuV6+/jC/O3CeHI985GNHfs2vvsgCpoOW2DgxgbgjdUfYwDp3VmDxhjFSKVCVdmeLcaIokxSKVkKd5gG6oxQQyWJW5ufkuabsdrSa6nsXpUwNirKvEFGJcMwHFeVWYVjlUz/3acq+sd9dMDHR1kK7fprnb4UP/+CnefHhy5wWz4Ym0OcORcmwLkPmwtf/nz/Ix2/OLb93p8U/7aGRXsNSnRjK4crQ29e4uRGcA+05owfbWia4dmztTIcdbgJNuB1XlOecvQ/6yzeIX1HKys0rsLtXWb2xqwOZ0m7VhzKVdEsUhVoq6/GIdeAgXF3e4/pij2fuDro63DwmXjkin2j4Kx9Bf+0tUi6I6Yj86x9AfvIhvn6ccn2Ntx1xXPjHn3xIv13AzkEbjdCKeK6LZmxpjI6VienS6U9mSpu4fKBcl8rLn36N3/NN37dhUF5XWIm8rogF7piKcr4ynbEkvK4wvWv+vAPGD33yNb7mwdP8xuceUsfAyKRAjUw9jS21UNSoE9hJ8fuCmTFcKW5E33iLZbtfpfQqG4gjg2m0pj1xf08y2CYKp0XQ1ZhWxdTQK3KPsVR7xXZscZy4Ad1zx9xyK1g39DItt2qxhdqR9QY2u/YAr5G/T+SObBK0EMSge6qo62VhbEiHSn6TiuBFoRux68isxIUBkj8fnvOnKfU8xzYO2BxX/IFve5GQPAO4/9JWxC/bYtZ53AJ/7cc/yp/+ivfTJTt14UHF0pIg4HHDuh6oMvC9MPkOpFOZsnPMAcUJF2p5wFo+zW59AC29omaOIsyx4OxppTDWE7bJxOf5yGU9EE3pcouww00pHzihn3gV31/AznGUIh2bG6VNrBZEMdxWIOOjI3rSukdD9MSgYUVo4oQVIi44tsfUcHxsPA/ZEgcmo89ksqJ4xpyP7IxGZIFLQhA90PUGtR3ihoTQ/JJv+dgxv/87eOS5NYGtWWhKBdzYEiLUU22V8Lv8f9VNfaSKj4GvA52yMDUctGRilntaNRbPRMNzsUdVGC2lncKZ85EL4Vbt2eSYwbJAKUBtqXDy2BRafpeulU78VB1kkS2VUlkk0E2Iqrilssw3dVWGM26foTA2ZVZsSZgEd9C/M+cqyAtFbMbD8/vO77GQuw0twbYZTZt73eufce7uvzveylDmI/Qw6l6z+CSVkIyMltIYnjbD6D0VD6Vg3pn0wIjOvELVAm5Y2VMvbnntw89z76ueoU1wczwxXV3QP/oK871UUo11pdXCaXTmJ4P9pByPqTSopVIi8DFYR2d04+pwhbhh3Wm1JgAVxzYOU++DEkZ3oUblteUa8dtkEv0SN6x3+thwTghwjMH3fOwB/877HzPrysmEfRRu6HmxPzP6bNDHymEH0XZUJoiVpXSa3Wfvt2mbOt0S0wHxQtGFEc4uOiGVdjGIdsQXIx4fePjoyOXVAS4ELgUZMyKOtqAswaoDE6HIxDqMdR2pnOmdNoHeF5SBkCwbzuuZ5R7fJYBCrULESh+FVpPFVkOTnymG3xS0dvTSqL7b4siVAqArHaPGjnUMJra+lvS0BIjTmDjJyh/8u2PjHP3CQtbbuqC1Lckiwk984ojzLFUGVivdO2Vk99TGQFEmgyc9ONTs8sfWSXUHrXBZjFuD00kzRXIy9p4yez0EKsbx6IwKrRXwtLdfACslVQIpwSHMt9QwpUWh+8jDbsnoeYmzlyHTeeXszFCQGESUTEfaOtMjlBodi0rMnimN1ahF6F1TpbjBa+elUnZZiPCQbFARaIkstglIKJWC6WbKb4aUtIZ3caopP/rzj+7sD+9c8PtnH1//F76FP/3f/x5UFlrJvSpEkjnmbIE4CjWtKOEDSs1wmb6kK6Kk9akUUrmugZa6zUehVkGlsKvKtNsRwHo64SPTxKROmaQ4pXIUEfrIJGEJR7VmU9OEJ49uWQr4EFoMdAjywg3HJzOP+uDJ8cjj02D4pmGPPGMKyRJUmfhj3/QDDAPe1WN90cbX/tXv4i//zt+MWbpY6iSM3Z7pAB4r85POclsZ2ohpopWOLKDTyGTMGUqbMoXQoD59DbdH4tGgDSNOlf1uYQR4OK0pjFtmdogU2q4RunLQHW0stCeVw3rk8MSRTzW41wiZ4NUjtNfgK56lPJzxn74H9QViFvzHf5by/guKPUeMgbry9z5+w6MnjymJ/6JOJS8adQAAIABJREFUDpGFEs2+NX0EU5DWrSGETpR9IebC6bXO7/ub/5AXb2+3xljusWBv2OPOZ/T4BWf487tF9E33gXfMiOBbfuIxv+E9E7UtDPL+1ICdwLUpJxyfwC9hPFbqVQbLTTTW4mhLNuc4M4uFZEdtT4VuqiTdkpk5W1AJypVQLbACfgvrLHBfU1EVqUoWBd0J9jioO7AqqBrs2QInYnsOc031lG/hHtQqjC1VcKzBtBMiPNXTGkxaMfys8OHszRmWDevi290w4BCwCLgFNWJjcW33zUjGmJFr9F/5ngUfm1fjCzhnfVnaDD9zWKx83fe8AnZCdnmpCkupnnQIDnhzBivNJ4rMxM0R2CG+cqiDISs+jKM/ZEzKeDQYPaWAK85syVMommltF+VA0wnrQpngxA1Rg5CJcGGw4GWif7XRXzpl8koEKxUtjsaKqOHWKVwR3ii6R2WPeGMnRukHalV2KJWJWLLwMYXj0pC6Afp6sIQQXtk49YyoFAscY+iMb1JEVcfMiD4RrDlZTfh43/FDrzz+Uj+VX/IxH+fNopdFG5MCnjaH7gnkHBbJ1rBkUo1N9WSWAH/d7xDNEo4Wts6uggTr1gSu6bzL7omnGsrYgicjNki7pqqJvKSaSSaSb6wSO9tkJNOXzhz2kLwGxsbicjJ+2kn+lpHFOSI2f3vi+PLKmF3u7mnfYbMF2rl5vVk3NvrxXUEuOP9Cese/Ms5/s10O5U1ebNi2QskCl7/5v94dn3MYxuCjnyp5mJeSc8+DYQOtO7p1JhVqdCYEl4q5cpwHfQ1ODu4G3di5cbrt6LOV24+/wPr8kV0PlvnE5YMdpx7UqliVLCJ4oDinnocc68FYjHldKQ5ldFrd8ejmyDIPbD1xMbVtY4TFB+uyMonkCyQKRWf+zHe+mEefdwtZv+QR8frx0RH+u+9+zEv6HpJZZtSSajnHGWq4d2YZyDSxRsNtcKAyMXEY1+yjck/yQNutQSgenWUr9IcfWL0SeonJHtlP6HuMi6dW+ukV/IWZ2w8ry3FHf62xvFJ58sixx3v6o8rxVaUfN8vs7kC5F8h+R5NkVBqptkYcSRkqq4KshnpDfJc2xKlw3DhFoYMRgzhdIFeB7QK1HV2EKo0inuBn36FS8QhUoRTPgOAWW8pdZRbjz/6DBzw5OZ+ZzPR25mW9acRmJ/fAK4BSS9C0ZJquFUxzj3BxLmsm+klsXVsPlh5MJb9Om4LLCXSAnwo3S6bR4YUxHCaYKLjBYRrEkuE43Z3FDNnOUkU02yYuqW7S7Ag3CdwFogBKKQXWPB/NQ+i9EL3hHZYTWK8ss+BzsCwTMTI+3IrTMYZ5qrmyOc3xWFjHoO6zoVM0GZoiMFXhqlTUyharTiroq6IVWhGmArtW+Avf9sk7psm747OMEP7bP/aXyUNPxsMnJyvZViLQSmNqBa2KyQ7fuFjaGnXX6CK4BrJB3kuZCCmU1qhtQsuUTK5SsggmhbafkJapqCMCbROgWHf6qeNR6GtApNKlh/Dap488efkhx+mSUyusU+PxcebFTz/k5cePeXy84bSOZO1G0C1tHVpSNVYR/uz/8U9YLZ0Y744v8migJdXhqxfogXnJveBwTXvPjsuv3HH//sL+Ak7P3/Dq846NtFCPPrOebmCsLI9mfAi79z9D+5pn2H3VBcvVFf7cA6b3XSLP7pmeu8/+uQNxz1gPAw6duawsF8Ht5eC1ewfW913DVx2IZw8EB/jADfymryR+zQW9GfLPXyLtPeg/d0H9dc8BE+FGLPD9P/eIh49eZdcC0UDUGWtgXWAMrBtjjeTbaqHohEyNtlMOU+MfffxTfO1f+fu8cHt7p1rNs4S9gQ35BhU4Z9XV6+87N63vbIfvwLUtvPOnvjeZVK1ux1ugmNMl6DjWwWuG3/isjFJYdaDqyTOOTAykgLRCOMwbu7lsAgOztNP7OfVvS+c9h9PEPjg8nfiF8RrEI4VVYHa6OlwDDi0CSt4zN2N2Xk5h4wXAkGCvSmjQHGYPaMnGCttqEqLpzJBsJO1DmFRwyUCBoYm3keSjsF4JdpJkam2Fs4iN/4UiEnhVfFR+4uUU2Hyh56xfEcWsNeATyw3f9YmnYDGaViiDeThDV6YIqhVKXLDGysmM/rLQnnYQZ7GBjPSJYkKtBmr0PrZ0gTWtVqp476gYIQackMlwbcg0smLKSFB8u4dXgbJHng7KDXibkKkSVanThLbIVEI9UrQwYgFxXFdamyj7jnWnLBf4OijTYGqGyjVqUFGwgkySkv/YoS2Tg1ptecAahdVBOWBxQFUJMUQ6OiaMzlor/9sHP/Wlfhq/LMZP/diP4ygDsEi/bmgWaVQ2VoKeC0Tby2NjSi2rUfYTEJg7w+X1Ig/J/HBPPhWS7ZPzRUpL2vXO0HY2gLuH45Gbbmp6s4LuW5fEIy8RVYQqGw8rYrMSRgYpxSYnBbpvss7t1mtoxgIHnKthWvKfw5OPorqZPCI7A+dY2BBh3XYu2YpiQSoD7Q4Sn4U4JLafI2Guoqmd9S2xIhAent6Bu98XMH74Qy9irlQbWShyYS8JvVVgtUzLGrayjiUTEMeSsuYhnOaFqSpqnXbvgHdl/54J8Zfw00B65fC+Zzi9snDyiktjUPLwXdJmG5Fav9FPDHOWERtTxKk7qFPh+uoyYd9r3DFvfFOUQmBN+PYPWgKW3x1f2DjDuvNEihL8rr/xMpNeYap0S/l3yrsLKhPm0GWGGNxy4saPYM5EUO0WvNJHpudorHgJJI6Ir8iohD3Bo+PirJ5JT3owLt47Ud47mC5P9NdWfDeo95T6wGj3Fd8PuJxplx3dFaTdgBghA2VHK5VSCqpbZ9gjGW0E3iqwEjrnfArLwyG5NsrpHqZHzASzQsiKc8RjRZjy95c1ix5iFJkpuQiyQ9ghtMn4yCtP80Mfe4jpF36Y+pU+guCl21TEHHCmgEpsChkBNPeWbT1PLfDW8a1CIxXEqbRzdhdO2zsHNZ6cMk2rnM/RdYPHroX9FCyrUDVoNdMOFxfc83LJds/ScEqpydiyVCPbCNSysOWzo0YCmSWVqRa5J2tmZ6BlgIJthTKh0EMzBS2Ux48a7s5hJzg1WVzb/hkYCliDeeRcXGRLeSpCa1loKU3ZafCh55+8o4QLn/8IFhe+4S99F7NMLFrx1hiimBZWLawirEUhlFoVtCCqtFbxKAgNLQ2titdCoLSWb0dJNXxtE6qVPnIylYsLtB5YBvQurPNgOXVuTzOrB8d55N414Phw4eWPPcRHJx48w5PjLeV6xzIqxyed2Y0FGINU7buDB1UGRIWofPwl4fd/ww/y/ON3Lqv2l3ukZcmpDjs11A1OC2I7onZaLcjojKhEveT+Byaeun7Mo4+9yqNXnCVKrj+nTr0Idk/dY56TSUqr7O/BeHTD8dRYfeLohe7O/uqa3b5A2SF1IlZhdMVvOh//6YVXf+QV7J98Erl4kXj2PrIK+tgp60x86AjP3hBrwedbxDqvvAzf8ZMf4yMvvIBGZ5kHoztuydZNFl8BUfpyImalWEfCMHPWNfjz3/Fj/E9/70deT1ff9rmzG+Pu3290TtytW9v5f7OTZVhInvHuOt3vsPHqsjKWi8S1CODKHMG67TPNCwVBp866VEo4pRzwnsxmDFQ37NFqeaYRMJVM/jO42j+ToVzKZlnfUut7ho8NhRgOh8CfFuTa0aYMKUxnTuCVZLPw6JRUHKSowC1FFFvhTEbQzVATzLIZg+TdzWvufz1SjBAYroGF4Q7FsmC1i0xXtJEcLgKmRaEmKysiKE03VM+mVB3Od37kYgt4+cI3SvlyOMCJyFv+If7Eb/n13CuvYCVoeo1yIqSw9OBqagmTjM76UefeB+5TLlfcJ6ysiCnTxT18nWkmmN4j9in+LrESY8U9MW4Fwa1QmtOjcFGNWDO5ya0h0cEnTGd8VnwN9MIRrpA4YdI4zSekBMSgx0C84NZQXZEYCJ1x3MMETic0MDphWfFUm1iHoLIQ4blAjor5QrgwSeXUOyENkTWtZJJFFSudGhdoP/IHfuz4lp+LiLdfxNhnzq9/5bf+NtygasojVQQ2bpSZbElLm595S14KrZQSKLlRqgsh8QbrXiYYumzMBxF8i76FLPScZRXJbUiI7FYjwoahNTfQtkWtpnYrF7dxPtEHhMTdZfYsDDZPv/F5EzIPokPUwLcuusUWyyuxfX3y/dsFhQ1Se+7InBMNz8bCs2U+ABueFqBNOcZWsc/6n7zpDG8Bn/zQz0PMLMvpbTW/Pp+165fw1VEp/O7f8sydv/yiKK0WOoNalBYdKY2wxsWuULRDKNoqV1NhEqUgLC0tyxeHHd4Hu1h57fnHDHOuv+Z9rE9eYzmdePTpha/+6meYZeK0nBJs6wG24jJx8J4smjHI+ALhEGsyKETY4byyZFjFpcIj73z/T6585888+eI9TNt4J6xdb/q/7Y99CFH3fPvv7ByKMSJhna0U9gH70gBl2MgYcSlMOBoT9+oeGydOunDzpHJ5GdzUYOcVj86QQZUDt250WbYy0CZTd8d1RuKaelIev9bZP6jsrp0dhdNYWcIYdVAsA8G7F0IXcKiyw91wUcI3tYz1XJ+GUYogMhgoVRUY+DigqxGt0MMzEWfrdPpmG7RhhGZRfQnL9dsKQzvDha6GDcFs4mu/+ZS8P37xTvPbbX4V+YW6ofvXhT/5n36ANoz5uNJJXkZETUVxbAr2SDZNX402BcW3BGCcNRQpQRGhkOexQWGeFR/GveuC01Fq7sFLBqSIBmWStFeXgtsgmeDKStpmW53QMXAt2MgTtk2GCOxLdpkNKCMbNyECnnNgXknFjyXotpBAex/CaRg+Ks9cwROyKCFac+0rqQRrJSHvffvpw4EWyAT7qTDVVPEcivL3f/DE3/6+bCBGxC9qMXy7zS34fPZG4X3vfZb/+r/4dymtpHpydGrNk0RZnIvqmcgmTtVIS+jW1NEi7DTPams3Li/3tCJ56ffO1dUlDKN3Y5wG5kZIMI4rfRitNGS/p1bJIApb0gLbgMsd5kKfnVdffMyD913TWuV00/F54VhgXYwxnwBhHcnok4CHN8Gf/Bs/8GVRz3y7za9fbG49OEz8L//RbwJA1dPaFcq+On1x6r6mXa40Qju6pXHHCFiNmJxJVqQPTrf3YX/g6qnKvQeKeLJ2aZV53ebRErQHl9x+2vB5JnoHmdm3weHZHaHBfjfxa557H1990YiW4QWiQiyF+NmPw3s/AM8aHIXHHb73ox/mZl0obhvQO6MvROwOkm12xnwIboPLiz2K89LNkd/7l76P8P4mNpbIW2ESvfH/5Q3vje1OkrbxzThCd3tbzS14a2vXn/h3r3hw2O7mGrStODQ3ScB5OMvLyu454LHQrmXj/gW7mgWfNbZblkD17V4ItPQZZrAFjjlMpVC6088yAhFWgmWz8VfJO6tQmOfBfi+c9RhjBN4g7YiBSMVHp4SCFzqOqjNIpXVsHK8AKIJ5UF1R9yy6hVMiUTa1ZhHOla3xE1sKqFK6EwViB+clKBzEg7/yQwc++Kn5F3VqvNW168uemfWZ409898/zP/yb95hkj7Dgm36tbaDi2WYOCmU+sNSF/VoZFmgthCjH5YZKQJ3wm8dM+2soED1TB45mVNlTygoUVjdUgnldqV7zEt/SihbSESaiLtTXLvGDQVlwjD4LUVfEU6HTpG7+/444xDigQDNnCbAoFFZKImopMcCVqR0ZvssNuA+0nrCY0LLSTxXbD6IH6p1SdsgAUePgymon/szPvrMZWZ9tiKRXlxHINBGkpcEiUE37YWETMlG2AlQWq2wEtIzjDrJjKyKMkamaRWSzZmTxIVlX+XFN0wZ45mRxlmaed4Wt47163CkVjCyuuQfEVlgKuTsc3xWjJQth5/KTijBLxqlGBFLSEjHuIs7ZLIqyqU2zkBWRNiXdeFwA4XJnEdyEIUTJn0nq5tW++/zkucWm9BoiPP+hj0Cs70hZ8hc6nME3/4OH/PZ/7T57HXQamYBU6DZQrUxjMHfoLVgF9kBfjTUs05bcOBpMze5i0I9diQbXT11w+3PP0/c7rp/5SupTNzz/oVd49gPvzcPeCEYYYkKRjnrn5IVKcvpOp2C3b6gYnUFIw8U3ZWEw3+z5np959Uv9ML7txl2HNLZDZpz4kZffx295z4usAqqGRqEJWDd2ZWEwEQwqxmCihbPwiKgNOR047LMotI5cD1eUYldZvBfhbEFUKwSV0I7JNWoz1e+zvz5xe3NgOZ545r17NAaoEr6j6xHxPVINsz2qRmzwUnPBJdMVVRqU2BQXA9uKXuZGRIV5gsmIcgTZsQ6nqiYc3JRB2jAsApeCSmX4iSidiEMmXa0JB/6D39pTscObz1PvCFbW5xiPb22bVxVpkSiDSMVv92RzpLpOmFdn3zJJcFVhr87Sg4sGS8AUQcjGBgrncJHd5NubsqWk5kWs1qB16GthxKBMQdhIwUEpdE/7XglQjJWC9mQkjX3cxYOPrZHnkRxRUadboFpSPVac8KCVSkdY3FmOynXNr3F12elIogBQGhs3M/JCUb2ykg2rSrBGKrEmtgCUUCYNVIL/6/s/+abm0rvj/3986qWX+XPf8H/zX/7nv5nFlFIqPQbVhTpVejhRcr8bONUFKxkq0YrgJbAlOKffrCgDR0flySsz0VdcjCiC7iaKghRF1nVjPxwJrdgukHsXrJ5gb/VGWOfTn3xCmwxKZZ6d+cnC2Aujp8NDJTuQ1YV1OH/ym36AV991E37JxmunNfctoG8IkPBBD6U1iDBCHXfLPWAIvqxIW2hX97JoU3fopXJ1vzDVBTm+wksfVAZXmDZk3BCygKx4TLRXH/PgPYXpmeTzWblGvUAsqDjz3Pnwy6/y8OopnnvqwHORDMD41BH9mmd48WOv8OJceOHxDY9vj4mqWQwplkl4kdxCimZCL4nEkS0mvKpyL4yv+/Yf5f/56Rey2f0GLsHZWvj6SJXMXSLhptSKeOMeyOsg+PMFYeuiiXzm13tnjT/09274+v9gwiejli11sCjimdQ8rNKuHb+pNDfK9jgmbD2IqugITNKuuOq2bwWs3dnVZM+WUlAJxAMNKA59p0R3KMladk+e4whAB9MBrAd1AhFFq+CzU1rQgRoDbLP919xrLUCGp1MJAffc7l3QEIY4KnlfnUzxAbIXQhU1y3AD3djMLlh1VoW2gGwiESx/xg8+/zQ/+YnX+Ke5Qf6KU2YBXJY9/+O/9T6izoBiJdUDWiZqMWQdxMeV/a/b0zww8dyoXLOCqpkwcHk6oO/dMzTBtDoGpQnLWKg0tAq9d0Szw3OITFKJMRBpyQrCWLpRX2jwvkzPEDF8DKLtmf2W6sn28nrEx44IwWwl1orslg2ivUvYGh0LBc8LRe9C2w3m1RAKxgn1CTsqsiOLbVGwIlRmNJSxChHCN31s8FNP3roqC95+HRz4hfPrN/62fzvVocOpU0nrnAa4bnZTufPfypaeFOEbCD0P0bae0wGDLfF2K2ylkqpoQuBzYwiiO2XzE6tu0akb+41ISwWa0mHflF5mTilbPG5AmN1JfSOS61XOlkDLX9HcaSIsIy8SvqmkJIIxuItW3xw3AMT2PZU78Vh+D+CMerxTJEsuegDW8/Hzs4IMufs7JD/vEz/103ebIgTLMr+t5tcXV5kF+YQHv/ar7vFv/LN7RDItJyi0IjR1LsW58cY0bWldKBe74KJOVFGM4OjB5dTY7/ecRqb0RF+p+2v2ZeXR8cT8JGi7B/TlRWJRiirT01f0WAlbaVK5FuemG00VRTn6oETO4Tmce7XwsGeFYPLBH/3Wlxih+aL4Io93wtr1hvffSYmSeAW7uuebf9c/w6/ynwYdXGhBpdFL5cIGR3cupoKaQis0UQqKh2OzIHvnsS/UMiX3LJymwd4rN2NgUz7PpRXGAJUJ5USxSkQhTmAlQwLsWCnXE+USVlkAwy2B7sPAx8qkhaLK6gvQQEYmwhUgKkOMMIWSjaR+G8hhwX1KdQYrOds1lTwEYwiR15csbCCE70E6bkEvRojydd91xfd/4jXUbWtaf/bCVSkFs5y7b7f5papxLrjcXV6AP/S7fh2/+t7K0pOjVVBuVmcZxl7PiVlKFKOQANouSkU4bPtGjYSp9+yYoJqMxZC0zONgI1OgbDE8Jlw7u0MhPJVMvWWTsrKpmT2QoaA1WaE1O9YmUDeJ85oUf3YlN2OxjSUpaUcMhQnnZIX5pBR1Lg9Cx9gr3Ixs3Ax3LlthWOBKIgjMUsGslUEwRqXtUwU4tcF+V9Eq/JFv+AQPnyxvKoa+q8z6RT8aJJho/NE//DtptmAUauQFaj/lRc/dKGFckFYXBNquEg7jdMLHoIZujJbAw6gNpotdMic3i3wCjAUYoIXWJiKgI2hYWho7DIyXPzETMfPUBx5ANJZHR7oOvFTGsuI9qG64CH/+b/4wH/z0ky2U54v20H7e4+02v97K3Pq63/Ev8xUPDgwpeY6PoJJ2YCVwU0Z3ptLTDgXJVCuF1iSDIoqxrNs+9cRoNrh33yh7BZ1YI7EbbjWL3AWIgRk5L3RsKhenqGJtynmnO2Ta8cypEIcOS+X502M6HcJy/nRDXZhDtqaCJBuuOVWUUvKs3bvSxPnWH/1Z/vcf+HgqetzvXBvu56TCz3yEzh/x2cfrdkS5e1s2b2IqXpMz2X28reYWfH5r19f/h41Bp4pSHRachcQEFYL5Vbgolf2zlpzFkuuObftDobD6SItiKZRWidsl0zZLWgt3KdRi50JH6JJpwGiGhyWLJvfbUgVxsBO0i7ybDYTieav12ShT3gtmzTTDYVncd1eQsamoZFPi5dMrpWyhTgVfBrrPQtmdU0hBpbKuI9VYm3qvVsVuBDnknbR44fd/e2O9nd/S4/tW165fkRCTW5v5Q9/zMo1ChFBG0KIxfGb1mePLA94L/aUrrAx8GMpKkYHqoOqBXZng2uBhyppbK8DCmI0ijdBd+kItiDGokhPFt+ooWvEQTnMncHR0+jEIBu7J6iiu7P2sYHEkLolQfFH0WNGD41oJgVIXvAx6VGI1CunxFxm4CbWAFAefUGvoQbG6LVJaqRjH0XATPJS/8+LyeRey3injLhS5lASlbx3dkLh7RTip+XQpec7StC0AdFeiaqYqFcUoKc8UQSKtDcPfsPBDHtC3xmH3TJGQkDRFK2/43CwCnVOcLCTBuwShqZbqsXmv5c3WvwxtUkzSvzykYJFpTL51dDI5IzvJyQXb1F6bKgxJWL2TxTbb/j22opnD9jgIFM3KfmrB7gpeIfk9PvmRT5MffhYov+32vF+GkU/uhz91Q/eU85pkydCGYS4srvhYGaOjGrSW82NZg3WMDDjogx7BbR/Mo6cNthSO85Gb1Sl1h96v6O4JdgQpOy6+Ys/ty5/GVieywsAaQZPCCOH22CmuuMFiaW3t6lRfWG3lwy8rw+OXpZD1ThhnawFsXdbt/cZW0LKZ3/PXf4xTex8XOuEhzBh1XlEv1DBGN1ZxjpGV7S1EhtMNzBihClscfaPRrRDeEC1gE1NRyqiYGmCEN4YISMMPlbADu8MFl08L9uSW20921CsYFAlsZNqNlpoqi+GYF0rUPJgVxWywygln0CWIU2G+cTh0fONhGYOqLYsk4YxwnIFGy/3bFVBMgj5m1mUADjH4i/+w8oOffEQJe30v+BzjXMh62443dO3Pb/75v/vzDC2cVHFRZkt10k4qEpUDA21ORVnyUWfKaxOFTBnUUvFQzAXVmvuWQOBI97QgTsooxuGi8NT1oEra/aYD1EkoK+znSixCzEKsNYNRSifaFm6imdwVZ9WxstlT83XiAkWUGuBlw7xYZb7Nn3e3dyKMokrf7BpnAUIEWDiEYzbQUnBRytZQyBABTXtHaZu4euLhk+VNj+m7462M3OdWOn/4j/81xu6SclCiejYPF+M0r5zmjnfow4hhQGU+OTcPb7l5eGJ5vNJtIPug3Cu0e3uoO5YBQzSLoAZn1umIgmihd6evAzdDSwUTug1efWFmnR/z1Hsv05Izz7AOVApl5Gp0kKAP4fd/w/fzYy8+yUbju0/9l3z8N3/rH4EG1UeuObOgC8gyUBt0Xyk1oJUt1AhqCZBB70bYynoKbl+6ZX30mMOlcfEVE+vugi4X3KyZbNpPgzEWYl1YlyPzcdDXldDB7MYAwneYFHxdqN7BZ9qTzit+5MXjzKM4sVgnxmAsQV/TrRMlOUNSlTploEAl1zgNqENRv+U/+cbv4q9//8fSPbI10cP9zlL42Zei7SyxHcsjzoFR29tvqA581nKCagZzvMNHhGU9QZJrFSUZyyGCFUXvp1DiNpQuRidRHWFbqr2PPBOJIJ5inHU6u3gS6m8hsDlkigQtlKqCFKF60DSzBbUosW7M2h3EkwzoKlIIC9bIO8OwbPbkvq1QKkglcEokPkS2ubNlQuHDEvcgTrSKkUwuOd9tPZhPHau5L5/nnJsgF4HMQlXhO3766i0Xsj6f8StSmfXG8fX/3lfivSKqTG1i+ejK5fsbvT6hOgy/ZNc6+wpKYyn7LY8SRAaTXnKwp5kfPEKXE8h9TAwZN2kRE0P6hOiCjkaUjbM0gtXAWamlMuZb+MQV5f2OFMfcsBBKdMraMgr4crBG0GMQGLbuEqEqAavjVRkSyOpIM/oiKBUxZYix+sK+Fo43we4A5pe4J2MkzFhk0Nz5Yz92+0t+Lt5uHRz4hfPrN/zW35pqqM3Ct9WdUwaJ3B2ORVPCSWzEqHOnNV4vUhFpKxAcj4wfHdsi4O5Z4jFnqoF7Wvi2NHHOnC6VzWe8KXjNPQMnRLGRii3dQLTJyUoIILz+eecqOLKxsopgeFoYPTvTsdkbZVOFZZHpDOgT2CyWbOmNZ5/EWXeVsuTXlVpne6VW5S7pBPjUR18ilpfvHp9zlUsQlvVdZtZlzoyxAAAgAElEQVTnPRTEK4jzO37zr+Kq3aBu7JqATuyGbZvLoNY9EGg4z0wZKy5t4qavXEwVC0UL3Jsat2tgR+PinlPbNa5GjeDhS0eun1aKGfFkYX10Q5dGvRLqzpnaNW7GGg2VwWpBtRl8pQ+lzcb/+gMLn3gyflltNu+Eteuzfwx3TdYSMEnjd/8LE//VvzQwqdyroGNiiRmzilTjFI0H+5V5NHR1ZC3sLoW5OosbUipTDGQ4O7nHbbnhJg3wyPZ9iu4wOu7OpELxwtBINfGo7C8bp/GE+aEz1gmpO3bPLoh1ggmpljBQH4Q26piYa0fdGWuF/v+x9+5RlmdXfd9n73N+v9+9VdXVPe8ReoMtkAApAhaSlhAv4cUihtiAcZZNAsQQsgJ2ssDYPEweJIZEsbPi2MjCdnB4CBusZUxMwBAgsrFhGQQOEiPrgd7SSKMZzUw/qure+/udc3b+2Ofeqp7peXRPV09X9fmsNdP1+N17f3Vr13l8z97fDblb+nG3jHRlC9EJDcKqGD1KITGWzn0ryhIrvY9RAZZ7me5Mh6aCoCRJfMvPFvayMR0Rb57kvfdr1teesvgKqoYdblQ2kSbw337zZ7HbLSkjjDmxDX7QMrkHzWIF5imiDBi9BKAw1HKCpELC3+eAN5OYciJKYFBhaUbK7vmxrVqPb5T9FQQVusEYAmyrcn5l9DNDdEKILLJ3Q6oe3WgUDop7eEwG2+qVY6EezKgVihT3niyRuFLCULBohJUgvYsbqXgnxSUgRQnVhEMkQxVbFcCMrlcuJm8M1UehG5Suj/yl/+09jxOxDHvKYfC0xRY8s7lRiYhmvvnPfhWf99nnGPdXBMvEKIgoQ0lYWZsnG7Hr3LRdIKZS13VKiIGUMsWKZ7Cbe5mqeSbCLHiTHG9BbxDqRi4nxkdHAokztw2siIwF8t6EhIT1gYOl8Vfe9FaWYz0R8KO86/LeXW9OW3w93dj6X//Mq7nzzEDJE2bBm0xo8EYO+NJU1PtHByKihYcfVEgTt9+VCcOA4mWDIuKHwZoJ4lmis66w0o40VVFcekIsFFGk80Oa0CVyUUoW0sIzYcQUO6OktERCZHleuf32yN75JTnCIJnR1h12fcU9C7HuSUBJ/Km//VaPOKsjTN0HbKoonuAdOsywenLWK32rG4f1Yx4rYJ222IJrG7t+/OsCGiN7eWQlEEKEA/dX1pRJKCX3nL1rSSdGtJ6Fena5+9LCEJSp5MNjf69IRGNAsxGK0Zv7Qi4MYlFSZ0jxDvYi3tQwqNAXIU+Z2AnZvGJsqsbaKqAjWAhkCla7FZYAmks1t5faQKfQoYxTRsVFugCMarXs0Eu6g0SCwRgKZVVQDa6lqM+nosIP/WLg0jhe1fv6dOPrxItZz5/P+IHXnGWJMtNI+NQ2PPcSfgyY6T6+TXruyBAisQTy3H2vgighRkQys+UW3HUP48WPkFIh7Hb0acUqryilw2o3jEHOkPKKrEZHz6qMWFFKPgAK5ZGR+cUzhOdHJttjOQX0YCKe6VlREBspGNk6JlvidskTQsAmRXVBTgFz1yKkdEjcI68iS/V20yorPyGKmTL6RD5OHUUTmifuOxh4ywcevebfxa0wML3yy1/vJQvBW0Ij6sV45l5YAi4KmdKpse4eqFXfOdRnfLAX/PR2vZjx+nbvAKX18eAGtiaHJi2p1p1jBTGXsmVt6l6FJAH3Z6N2GjQj1MVxLkY2L0OU6mJshp/MqGxeF1w8W1tzUT1AqinYZuAsbpjluwBhU2MvNRPLpJY/WsEs1Bzmavpu/hoPvPe9sG49XcW19W7JMMaxlRle9WsQ8Wjxt/JPvu7TuGcYvaw1wA5Gko6Mm+MaEdXC2aBsqWdPXEyFedehMSAa2RmU5TIz7q0YzvVoiMzigFni0UfPs721RQhCZ4G98w8zC5G9SyM5zhnOBaIoPYkxeWedZNDFiJXCW/71I/z7Ty29QyblqX6868atMHY94XWwEZkiEIn83DftcjcXGHKPxQW9zfzvNiZiCezniUki+mhidtfAHFgGN7heTSNdCPQSGMIWB7JkNU5M6hmYYoUgA33w7KVOvAwoCSxSRpeBKRp9D2T39UiLJct9JZUBOoilcyFdDemAwchRiSOYLCllYLSR5dII0w5i+wgdUQPIktIJs7lSwkQuhWIDJft4VVYrbEgwdMgoZE38zH07vOXtjxKqCHK1f7inLb5ULzeAr1MOAM+/Z853f/VzwFxwtOxl7Vqz+Sx5Z0Es04swr74a/sSJFZFSch218EMfFQYzJlEysJxcYBo6f21VLwFbHnims2nhzCww2YTFzg9yRAixNu1Rz4ihznUZpZiXSHQqxJrVnMkE9Q1pOlC2+uy+bEGwEaQP5JK9FF+FBEgxuqCMJbPVKzkJkwgduKilwkGdibd6IUT4y298H+sDn8Md5VOXGPrbc7piC67T3Ciw0w3899/zNQxdYiLQBWUOkCdKqcbH6psuKTBN3nk8BLeqzmYIVjtDF8juQTSEgNYulqVKG4J3JFucXzFdWnH3C8+wJLK0ghHgYI8PPbDgDT/7NkRqifINnueuhdMWX1cTW2/+C1+MZmFUxczo1b3/JAJZCOoNkS6eFxhHbn+OMpky4AeIIXpH1CTU9b7UCojEoBEihOzyWNGObIaJIgX63S3GZSYtRvqS6Hdn2EIpW4UyJY8fq2JD1xFjQC7tMWWhmwHipYYxwM5tW/zuO+/n+9/yB5gU1o2nfM9h1dd3/bYcOZnYcHQ9/9g3FB9fN983DgcxobD2QX08py224NrGrs+6S/jeL1EWePVNGiGYYFuZaIJd6sgi7N6WgeTilMxZypKA+0Lm4hl1vr/D94wxAoVYjCgQknsgj1Zqeb/vHUf1/WJWCBlK9oMW/+14YxUzL9XW4OJYyYKEzIigom5tA5QgWPYEDJkM7byzIcWISSidm8tkXe8rC7KENKytePBFlngiRZSOH/6/Mw+vrj6T79QawD+Wjy6W/LV/ZfzQl9zBaqnEbqRb+bGcUdiTBQNKsgRRELfwJIRtio1uetY9zPaFyBRGwtARDjomVVQDhCVFO4xtpmnhJWDjyNQryQpBipf1jAN6BlarJfr+M4S7z6Cz85SdTF5l0qxH2MLyRS/hCjPKaiSG2hWHjKWeVRzppg4ImETMejDop0COK7CJZCC5AwopAbJCcs/bz0d+/mMPP5u/jhPB8mCfYdiqFYXe6c/EU5YErVlL3vkj2XqJU6Uq49D4UDwTy9uWV4nJDGqWlokPBkHAq+Z9ADAKaC0rNDyfV1yciusuFraeRmrGVPUG8RR23Rg/g2eGmWgV3QoW6sfVF2J97z4+12yu2r5c5TAdVESw6Ob1Wks1pJ5mekJafba1eoWr9AIcGDy6FrLqPLg+LXLWE2/jajFS/dfj4Vf+zUN805fvUojEktnLhRBrGUyaasc65WCamKkyakTxBRkJsiTGEJksk21JsY4yTUxTqhkMxmLyzlF5SkiIpPkZtvsDjMRDn9xna34W2U4kGwhlCepegx2Rdz6y2sRm48awPokV8RO6TOIb3/wIP/OfvZQ7y7sJ2f0eOyn0ObIgscQwb3mKlExEMA2kXFBVonQkm5jyHoGa1Ve7A070pLSCosTYMeTAiiUlCKFkpijIpR3SfA9mE2RFh8hsEPKBsSwZdg/o4xa5LGFUpjGS9pakFOh6hbAiBGP73IjqArUZWUZsBJ2UnDKrg4ll6rwTVTnAyoBIJpaAHQjzs7dh+jBv+u0dfvlDF7yb082/97whrE/o1+cN6+0LAh99aEnoCmMqWKrziBgTCcTLX3JJBFHP/lVjKi4Ejdk9aZL4vAUwF/dTLBJY1b5cUUFUCWrMwF+ng7hTWCZlP8GFAyNbQDSDGsW8XP7Mdsay0KMsa3dCxT1JDM9CHkSZ1DtTr3JgcSBsD4UhQNZATsUPJi0jUhjrWkCqX8jSjKCBRYGtOud1KmT1cTh2BSZ1D8yNsNHGvOuHIBbYm1Z8z4/8PC//9OfwLf/pF5NZMZrHUxe93CqtDxtVWBQXHHopNR4CWAJRVIQxWbUeEbqaiV7UoFqI7D+yZLw0cvb5A/v45rSXnl/4jXfwL37ngzVT5ehvuv3Ob2ZEAjIYPYUxCVMJbAWYsiGqPPjJRNCJ3duF0EeQQCwFpYApYxZCB1oPh61AjIZaRw6RLhdUM13o3ScwKHmvELd7FpdG2F9w9p6elGfkqWDz9QFgYdYN7D2Y2H5OR1olz4rplGGrQy5OECPzbfj1d3yEv/lr7z7M8az+IuXIGvtQyALW5WObia6uHh+n0fjX1ybvl6UEUbvTtcnyafHuh4x/fl/Pn/jMiZITfVTvuJxh6oTQTWgHiz0jbnkH1hQXWBHS5KK6ro9/JCIKQQqpFGriFr0IGoxlBzIJmqsHc93bJT+nqZU/7pWVU0Y6BQQrmRC8WRgilJAJS6XrIQX3SC7qjZ+KuW936c2bklVT5VIMLetdMUh2e4hxErTLbgBf95diggTjR3514uHV8Y6TJz4za80gyg9/0b2cXZ5jPHfRN4Clo1wcmQ+7lK0lsespVgjBs1tWjHT5LP2wos9zyjAny5JSIHKJKc8xFVJRoozoZGgUjAy59yyqLiGTq/K5XEIlwCdHwvYWeW4kzUhOyBiZYkTiCAX2F4nYufhQTNHsWRbTWDDpffL1PSwlmJ8C5Z48KnGYmNIEObDKYHqJf/HBOb978dIzfRtvCZV9vnOGP/75X0gINbtoI+qIe2HgAo+uzdepE5mAbFJv6x8y1FLEw9JBs7LJorJsNfureqfhk86R0hXWGVjrEz5ZlzHWxbFRVfLNrOX/iVo91bFDw9GSvYPY+hTyyKTkP8JjzCDr4Ytx2L3Eb9YFPhEODenNSyKPyhTF4JMfv0S5+DEO7/bwNqvqt/lKy8y6HnScmRW++nV3MLNAynvEGMAiXRSyZYzATDK3R2Ffonu9hACilJzY6ZUxG+Xiirg7EGNPnFZkES+FXsHWmYiZMUsT+/sr+t2zJBmJaWLvwoI4biG7HdtBuKQTq8XAG3/1o7WD0I1/W26FsevJLz7MrhGBXkBCzw9/+TlefdceUTMxF4aYOT/1hBDpGDk4HxjuKGwX7wo2mRuImhYsK6ELlFRY6IRFZZCeg2mJWmSICSlb3KYd+6wYLRPEhY9VWmF7HbJVY8+MXpSRzP6lgnZz71xXjFQEk4T1I1GFkiODCAlhYfv0sUdLzzLt09MhITKmFYXeu2diCJlsE0LnZSA5Ui7M+f7fnHj3pT20iHtwbca+q+tWeNri67GxpUdP7A3+7ne8iEU2t0hIQimZsUBnxZN3c0cotaMcwogwkt37wwITRlcE0cI5CazwssOlFeZRsckF9lCEmRhDH1hK4kIRgnpjgpIjxMwQzDuEFVgtDaPj9i0oMpEoEDpWVhionSxN6E0oCstJyZMyMnHHXAn1MElNqqBb8MNDI5l7UwYTJhX6aIzZOFMX5xZd+JUOljHCCna24K/+2AdZTOnw7ZPN1Pq0Yuy0xRZcz7nRN+WKj0+3zed817f9SZ5z1ogSmCRRihClYCbsp4lgQpRD82K/IV/jraaJYN5cwPv+uDVEytBl4fzD57nj7m203+Yf/dJ9/ObbP0zW5KZrXH1mwc3AaYuvq4mtn/62L2VQZUwu3gcTMOHieSGXBWfuiAiB0Ck5TcTOrxmAFYIFUFNUhSSGkZlF5aBAHyJSs0uDCUZPTivoew4WPVuzPbIGikUsj0T1TqpGQaRHEMZL+8xv2yKk0Q+MLUOCBy5c5Dt/+vfJNh4meh5ZTl8uXj32DYInX4IdPlGpfyfrBiBeoPH0BazTFlvwzMauN37tNqHb95LmpCyjuY9jLuSFEqae2e6CvnfrmMmEqQhdqHYtJgQ/dUaLN7mYzJuQBHUxaY6yWvuhAYWOUSbftxbQTlHzbL0pZ2LNlNboBzEJwZJ3svTKQyWP2e0bIiBCEt/3FgTNkNdJFVnQGSQzenNfXAnCNJUqwPmhgomRM/zrj27xS79/7f7dt0yZ4WP5pj/2Il75/H2i7DIf9ki2ZPjAC1m++FE6jT7pdQalEPqOmSjjlOj6CGWXLAtyEXKefBEvKzQVJknE0hEkesrlqFgYPa05Q5zAYiawYpRC+OgZyr0H5L5Hc2JkIkyBMM1ZzbwjoeqSnAORnikfIHkgyZISemzcwuxhQulYzYRhzxhzwGb7mAUXF0aQ0vH99z14vd6+W2Zg+twveT0a3ARUpJ4Qs07JPMTwk1pVcecPc2M+WZcS1BaGYmwM+4JCqd1TbCNw1XvZlCC48u1dBF1dKvWIfJ33ZOXQbaNAzcaqzwGbMsB1N8GSy6GBvR+W14HO73v9XGbVT6TOjoeSl3FEb0esZpYFqUbJBgQvOxF48KGR6cH3scnSovYzfJwfzeFHTcy6ni8On3H3Dq97WSHpDCv+O8+WiV1kpsJdER41jnSZ9GzCLnhXsGn/gPnODDPjLoVPiUBWLp7fY/u2HcwKQzFiGhnj4OU5BUx65mQuHVxkLGf5+299gKmkZ/WM+lYZu54uKtDZemHR89b/ODGXAkRGSXTas7iwBcMe0keMFbeVHouRg7IkMNCLkjVhOTF1M1JeMmjPwgo5rLDc0Ulmq/TkWsZhamRWiA3YBFIEOi86ZdlTUiYxQLhESD0LE0SNZRawRL8bEZ2IFggSGZk2mdYq3vm1IJTsTV8MowQhlZ5BkndYSomLdid/4ececD8cDj1SNqVgV8lpi6+niq1XfMYO3/IVd1JMGEcjmjGWQm/KLBW62mhklQWJiWzuI7QzKFr8d9UDlMJSvEuhqDBaISIwwqwLZPFmBBIhVcERM0rtUi3RRYix3u1QN6Tj6GVlZRByNGJWDpIxJkHNiObix84ghOCZyQJIMaIoSzPECiKwLD73aaiZzKLuM2lGVJhrQFUwKSRRF7ligCz81R9735GDm/WbC6zXBE+D0xZbcHxz47rsHnzcEFNun0e+5k98Pi95wTnuvGOHYok8VS/TWjIDftaXUkKK0MWCmvLe+8/ze+/4MO/56KM8cnFFFl81rS0fTgOnLb6uNrZ++tu+gr0DJSwmtncSOo/VB8tYLUd25hHJQgwKGiiWCBIxNW9Wod5JcDL3E5IsSCcUIl2sZaxLCEPg4MHAmd1HsfkOU1bQREkDUkbi4L60ZanooDApMazoZz2/8G/v48f+5Qe8vKyOPbUzkwtNl5URPhGXpVc9/rvrDKzHPcrq4ffVc9piC5752PVlL9jim78gcRAn76osLioN0iH7GSFgIZF7AwuEoXqS1Q6tOStSMmdEWeELeEEQy4Ti6/i8FiFxL+ZseEZFgE4VSYYNgk5UId8N6rNX2dLj5ZBj8WKbdXdFRbFU3COzjp0axRv0HCjSG0WK3wcGRX3Nl40S3PdL1bj/kY6/+RtX5491JW5ZMQvgc8/t8B2vvBPTwsA+Bx8fiM9LBLbQbiJZDwrzsAWSqpggSNrFhgcpuoWmgklizAWdOsJsgaaOENzrQWPCsjv+F1FyNkJxMSHnQn5gYnZbz7I7IMmMUqCTjmk6QBdC6oxO1H2VQnFz07zFZBfJecayGP3grYTTKhAse+tMO6AwUKxw/7TF37vv4y6cXCdulYHpc7709Yi6qWMUb9mtphAOsxtMqqCzLteT4gKRrRO67DEik3dAdLP27JMSVgeItZjkF3tGnosPh2bshylTG/GL2snQs0KrkOUTVqnliODdzFLOPuEBG9NGW4tQ/pzr0hI7/IJ7G9Xf+vpnWU+kfv/uSVFqZtfFybj43vd4huJmuVcnUWOTr3xoHbI2yxem6dYygFdVT+k9FiLgnVb/zOvOEruObL5QF810RO7qlEfzRNTg5qG4KXIfIVtHWi2Y9QOBzE4o7EtPycbFRy+yddtZ0MSMHk0jywJ0kWBCSe5VMlH427/y0BVKL248t8rY9bQehy9+/CTPS7rOho6f/Y9u4+7uERJzDpg4eBi6u4TEijNh7mnuyTvlqimjehbOMhVih7c2x427E4VSYEeVMfcQ3NfBusz+pCAjofRMCyNs9/hIkHwsmQp9HpDUkbZWiBo5FRIT04EynwlxmLMaF8TOO/WkvCSGnqnUgwLpase8qS7GjUmEwYR//kdzfur3D0i2wopsRIXHmrpfDactvq4mtr7n657LHbs9apmYhDnrLpIwMVEIdBiXFoGdmRGzGx0j4mKYAGJe2mPGrES6qOwtCrPBZxIJsF8X6D1CSZA7b3jSETlIRujgDIZKYDLYGwXLwlgKvmb3ubRTJcZEGAJIISYIGghkkgh9gRFFqj/pSKGvre6zKaMZoXbKDCEww8ssLCiiMCiUGPi7v/gA7/nw4zPipW4Mmph1DM/L4cHc+ivUDV9Yr18IIEKvXs4Vg9Krsrcq9GRW1fpBrNTnqnuAo7+xo1VaJ5zTFl9XG1s/+qdfzdkzPfOtnmUBCx4nnQbUEkGFkK1WZES0ZoJ2ffDyPxW6XpGsjICFTEqBvo+oCHmVQJXzD2buvWdi6GYsqliWpYPFEumVDghRyVIIJfG3fvkP+dV3fZzLlojrcKwd0dcVE5sih6P/bt6Py7X0o092mU/WkZiubZ6uWcTavMIpiy24PmPXPbuR/+k/7FjZilIg9REZJ6wY06XIzm1uUTPljKpCzuS6h9JsSB9RS/4rU/GMJwGR2jk++wGhmM9iFgOWC9EKK4G+gEaItVnYuqPwshSCBqJBwj2ek/habj2yShK3q6GutbRu61aR1HmDsrEUhglKryTMxbNeCBhv+8g2/+T3rr0R3VFuaTEL4DYNfMcXvJC7dx+hO9+h/TY6S0yhEGNPxhjigJHoJDCOiW3ZhbNKWmZy2SdqIAQYx4zQ08URlUKaMllm5GlBDMoqAwWCjaQyYWFGeeQAXczJd3lWTg4FyUvIW+SSKDIiQcmTnzOF2DFOI2qR5WTEEChxieUdZJlZdpmAEbKnRP/kHy1432L1RCPYNXOrDEyf/aVf4SmRKqhEEBd1wnpW0HWCerV5X+ffUoWpIyU96/I920wKvqLKpdRMpVyN3tmk8q5bmoJVkaimHq/1rvXkVBfEQj2VkTof1d97qdcYPvmpbu5grUp51WCpG4b1k68nufW1m/s+rKsvmzZXhxPpJx+dmO5/z2WP8ofZ4fuxftAmY6v+T4SpdTO83neAEBk6+KrXnmVeCjkoXcmoZHZM2IvCVjU2DhYo6iUYhMK0zMznHQXYMaGEgWVesffwAdt3boEFb/1rmYvLBcN8F2xEgvCujxR+/b4LHrdV2H02uVXGrqf1uCMfmHkJWcBF77/1unt53Z3neaRLLB/qOHOnYSH7SKcQrGdpI4bS4RvCi2bEaHQGUSIrEr1EcvL5a6kR44C+M1aTkOgolrEEagFmGSvFSxAJpKygQpiWXqa/Y+QcKIqbMV+Yc2YLpiFRivrBghrGkmwdaEZWgYkRDUqavP30kjk/8v8a73jwAhA2nYGe6R+peEbYqYqva42tr3nlbXzlS3fJmpmqIbyqQRG6BF0n5OxNTab6ElOBIRQWSRgQtrWWM0/BT3QiTJZ9oV4PdgogWtyXTcTFdDVuD5EDy55RZRDFF+QHy8jWlpEt1zJIWEphhqJi9AgqmWIBgFyELgory3hb80gnExeybubtro9gxgBYp7XLcWEIysf3hDf85PsfJ1htSgyvIrOnjV3HgG7Szx+H9948Kopdj1Hi5uW0xdfVxlZQJUjg3q2eH/zal3NmawdEUcT9rkSQaORlQIMQYhW2TMjif+Ea1DOVxeeDqShlUvpuRc7KOCm725le/eBGOiXlwGpvH9nqkTLxpl9+O7/2nodJdX4FNhmrl4tUtlk3P7FQdZT1g69w/RVC+7EdCZ8Jpy224PqNXUPs+NFvAHebVG9CQkEfLdh8YHtInmGlbr4OfvjYhRkljdiyoNGwTsjqnn5ighaI4v6Nmn3tPRajFwjBM6a9mtY7HYagbv1RDIJ37iV7eeGYfN841UocDULJ7i0aVkYchFH8tcsKSvTMLoKXHyrut1Wy0ffCJx/a4m/8y+sjZEETswD3DLk9zPnuV3ece+QO0t0HSChkeugCcx3cC0lXYIHZ0COr25hmD/tpbp4InKXoAWkakRCIJWNkhIFkyQc7E5AJLQmdBi6FFX3qGT+WkHsTRTPEjjK6MXjOkTJbMtsXFqp0RdFZRnNiOUVSMBKJnh5ZgoSRqUSEFW95f+L/u7A4jrcLuHUGpuGez+aFL30OnQpaM7QUqW0YDk8ypM4MUluVrs/9YC1zKZRyJEEp143PoecVVs9AzA32NqWDxdtBq3praGoGV6nL43XJn6yNu6jeV+vXtyNlgcXFNFFZJ1yxVtqMunCrj5V1rnF9zsNFt9VRqk6MUjBTHtlLLD70bo6aux+dPDdi3uE7znoy9kwyrfqZMU2tzPC4WJdQ3XVu4Itf0dPn4lmCMdBrZpoKXd9jBjHUU+gidJ1Sip+oKF52c3DxElvnzpJNCFaIKiz39wnzXX7s//mUG8XfND+5c6uMXdf+XP7fUAKmxv/5dXdy14XzzM7VDEITrDNURmLqPJumzIj9hJRAYcLM099TJ2gxOoFRjGCKSGA0WJUloSjS4z6P08o9HIIfFqSkbtisvngLCSQq6eKc5XyBzArdVEjLGfMzBSsLEhEjErQwFVDpMVt6Srx4d9V/8PZtfum+T5FKR2Z6hu/V40sRT1t8Xa/YmvfKG77heYjBaqrtxUOCokz1oGaZJrQo250xo2M/Z7SWiK3ECOKCV1QXOSVB6SFbImep3XlhV6BooZSOooVcBKywnNRFNCZEXYT18o5ML75pHDSwGBPBFI0Fy0I3q+WLpVCCotVAHhFyKcSoxDrVxQAlGvOux8h85995/5PqH083KwtOX2zBzTU33uqctvi6ltiKGupBbc1sqX/XaoD23F+i89sAACAASURBVDMrvOzeM3zVq17MHbtz7jjTeYZfCRQysUAheGbV1BNtxRQKOWU+eWnBR+9/lH/6+x/jYxf3SMm7tq5Xxeu12dFV8vpwev2lK805z4SNr2+tPMn5ePzeTltswXUeu8KMVz2v59tfs0RtIk1emTXtGykKs0GItaw+WfE4M09AKF0gYExLT37Q3veroWS3FKmNVQBGgc6EUIwUYKbCVAoaFUkFUaUUmMSQ5F0PTbyRjgWljG51IxrAfO+Q1X2zrFShC/XGLur7B0J9vwzuX5zlf/+Ni5Tp+g77Tcyq7FT18vn97XzXq+4hy0VCXIF0xNBDGQiaoGS62UDHLiUkVtNFVEZEAss0pwsrVI0yFYQVQk8pE1jPKiWizoGFm4imiNgE94Pe2bEK2U+c84SaMmlCEuB2qZDOEHUfscJUZkyyQsyT7dOUkG7i/Y/O+Zn3fwIznuEy/cm5VQYmEaHrt4jPfTmf8eIzG7FK6x+8BBefBO94IjU7q+BKdM2jguq54ZrVkYnKDCsZb+NrNWWYywQkV+GtZm35zOrP4eZ5fu261K9eb4dZW2qbBHn37Fq/hrB5nrJ53FoAWydJWc2iOszQqg1SXPASYczGg++9H6ZHNje+vnad8SHV5+vwTjaymOtlZqR8WDd92uLrplqwi9Ssu4JK4Ms+f5d7tjIrE3o13+DhS7kQ1ceoiP/+ksdpJ+a5ydOK0A1MZpgkApG3vWvk7Z+YKHnySewm88I9bbEF1xZfV1oUH/1apP4Nh44XqfJ3vuEsO9OnWEpPr4UkMDfYT76wip1nKC9MUU10NiAhu5+ReGmfCVhcUZYDJRiDFI8d7bi0Z/SzgllHoKCxMKVMVEOIaDU/XWVh3xbkSdnqdljsLTl3LmBZIXq3H9MDphwwGz1rOgR+88P38GP/6lFSOWC8LNOCK24Ons6moYlZ18YrXrDNN37RHV46IRHLxkx9Aa1F2EFYqR/arJIxKQx1bl2VQgiK4Ya3qHcTswQxuODVFWUVfD5LYqgFllOmoGz13jFYxUvLegFMPcvd3OtrkTOCEt35G+nNvTLx4Szh9fwqQtovDLd1bnAvinWFIIEYlb/0o3/kHpVPkjbRxKybaG68xTlt8XUtsRWkruNrFpQfRgfMql2GHGZHCbKxGRHYdHsN5ofNbsFxRJw6PNv1++OwIuGy/My1Dxbrlzyskjjys10HUetwPZ6uow3NFV/plMUWHM/Y1c/mfP+Xn+PFWw8x9ULKmdX+NrOdAxTItXlXEbDs9g4T6g2+xJAkdOL+zZILUXRjLVM0eMF8dnsZDUIfAmZTTb+onQkRVtmIWRjFF/CFQBZ3IbTJNnvBzpOi3TvQYApuMTElQ9WfT6Nimnjzb/f8wcenzT7zetLErCPMgCxgIfIDn/dCnruVQIzcTwQLdMyYVgds7Z7DQnCTZJnIIyzySFADG+gEYEQsUZIBHVn2KCWSmIjaM6WEBMFWCXvY6Le3GecjiSXRtshlD6ODWBgXgmSF6KLIHNhPE1IUiBiFvL/F//zej7FvnZcm8nRSTq+dW2lg6vu5f7+/k3Ov+CzumqvXLlePKDeGl9rNz1VpV44OvaSsdtlZlwN6GlQVpGq9MVD9tOqnBUQKuVB9uLwg2e/Su1uyfoZSalZTnTjXGtemjt5q6aBSckHD+hYOy/4KYFWpOjSVzDXN+WjXRL/+4qJw8f3vh1JTRY9M1FbVLKlCnq0XAPV7KT254d9pi6+TsGC/89wWr/6sgbMDbtYoBSQRcoHYEQOYJMSEGCKTwTAZkwT2k/CLv3OBg/E4JfTrw2mLLbj+mVnrBa6PWUpPZtQZr38OfO9rVgSJ3qJ5NFYdqAa2JCKy4oBMSAMzTeQQCMUIGigIWZQ0LdiLkU5qS+8CQYTlfqGfC6ogpUfjilT8xNHoCLJuGrEilcLDqRCmM/QHI/1tgaEzSlkQ+w4rM1bpEqPMCZPwTf9swTLBClDzHkxrfeGKm4JnUE102uLruMeub3jVnbzq07fpNCM5EPHOuys1OlMsGystPq9aIYmgaiyTEjvP+iuj0Ok649jFqskMFeWATCSwXMHWoJhkTGEwZVGMIVBjEAYC+xQ6hWnKzKILbbnzDasvwZQpGEEzYgFWBbYHgoJoIfbGIB3/1Zvew5jlcSVsR60HoIlZJ2FuvFU4bfF1rbEVNWz2UJfr0JdXK0hd568Poddr483a98jDLjvHrWvyy/70n8Gcc6XHr31vn4zrWUb4VJy22ILjGbtEvNzve7/obl78/POQJpZLJfaZEIQ0FUYKIoGcC13ssJywAMGUZIm4r0xzow8whA5NmSyFJAbZD4JCCIzTxEzWTQpqJtVYqtYQGGtVEEASyNkbOwHkENzvMfnBkEjNyJoKvUVylz3LPhT2F5H/423C+x9KxyZMNDHrMQzgG2+U2yTy515+F3/s7gXduEs3GJYToReYdjE9Q9x+kLQcSDp628oMFjLzDPurQggjQbdZ2QEqO1h6mMJANiWxYp5nHDwy0m1Hcje6sr9WXvEU/JQMxkROPd2OoStAR9Kk5HiGt/z7R7jv4KB2kuNIBszxcSsNTGsxC+oiNO7y/Fe/glkItb28q+DGWsiqwlSd0DZdAOtMV4pnWEk95dn8bdWsK8EoVo6ITLZZEIvYpmWhZ0vpRhFfdzbZZDvVe7b14wUX1oohus4YoypYh+WFaw+uwxMlz9NZP/f+ZDz6wU9gBw9c9j4dTvyHb2POiVKufsI8bfF1Ehbsfobomz0l8Ny7t/mcFyk9I7N579/TSMowrhJv+6MFDz68pKwfR+HZd8R6ak5bbMEzj6+jgs7RBfB6HulsnakZuSMG/tqXbvGy3UtocD+kUgKxd3+iogrZiPQUcVP5Iu7buCKgBJZW3IshZq8TMyPkyCQjISgqI1hHItBJIktHyplAZFBByorzeWBpS8Ii0A1GV3riODGFc5SQKUPPP/i9S/z6B5aYTT4/2uHP92RZaU+1s3iyU/HTFl83cuz6ka99AfPBD4eW2TuEFTNUhZILOYiX88iElUiJmV2LjNn9qQTYy8lLEEXcUFegrCI6ZMS8OD9q9bMsgdAVskE0IWZYGcznMGYXsMKkLLpEb+oGz6KsJFOKMvTq3ZzwU+gYI6FL/I8/cT+fupiAw4OdzQHTUTFLuKpT6tMWW3Ay5sZbhdMWX9csZkl4iifmKYSnJ+gK8EwFq6fEEImHWWQ89tfpX7uRItbmlU9ZbMHxjl1C4O4zxnd+xafxafNPsLhkbO0II8pqmlDt8CSDQlKhy56F3CHkAiwLw44iUoiTMCmIKYmMqHcSNgSC1UQJLxlUE1QKkyklFawLJCuUXJOgxa8ZMbIaZTJU8DJ7E8IQSZcm0q4wSOQt/27O73zoovtrHdebRROzroh7lrkIEXwFTx/h6z/zXl539wyLHbmcR9kh6IzSjVhZUoJipUNyJkYljRNlVZBeiJIYyz6alJEAU4/0ntgnHxmQe1dMYfKa1OSJrTEIq0WHxhXLSdgFxtJziczPvW/iA5cuQMms7WafshvrdeRWGpgOxazDyWFzwBJ3mb/05bzwzt4Xx7Kut68ZW/hi91BcqoKTHZlmqlfWuhRPrNRr1omc9bK1D1YVrvyhLjm5ALaWzhTI2Lo7RRXJCqWKWQWplldWxTJZr7fraZHV4yjv/gUPn1+x+MAfcvhT4FlmJZNzuh5v/2Wctvg6GQv2w7PE2jMTjqbIH1mIuXNcTaWvH9mxL9SuD6cttuCp4+uZlCTIY/6N4iNOR+E525G/8to7uPfMQ8y6QgQy3oo8FSVkI0RDrZBCZlkiQQpFFck1zlQoasQUGBcFZtDToQEKiSADElasUgCbGLRjKIGD4v3xkgXGhTHbFvIU+Kl39fzaexZkW7nvHzU1/vqfoVYR9/KNwWmLr2dz7HrtS87w9a+8HQ2BvZKYiTLh3ZY6KfQoZnApZ26L3i1pPxtbnbKYIKsRlkocIEl2j0oN9AiJTB86VmWiM6WL3o0p1jEvl9qUIBWmiGdai9UMQaFIIUrAohFUGaL7mfzXP/pHm2n7cX936wol89i/2jf2tMUWnJS58dbgtMXXM4mtpxS0nvK1qQL2s9vucr2WO+4ywqe8j1MWW3C8Y9fu2TvZv/QoxQqo8fUv2ua1L5vY3hrJWVnhMTZJIVZTKrFCwujFBa3+QIk77t49TV71s6WQgFJ7qhxu/txaQi14Ag0wqe8rbVkos+AN7MgkryskYwRwr0p1c/cO4aOr23nz757nwYfLdfV3ezKamPUEBGranOsLIErBDWy/+K5zfOXL5pzTzJDnLGaGBaGQyEmYdYFsC8YpEYuScoeidGEEgzHDlDIhKzasWN2vnLk3MGlHLiNFE6nbRhcLVjYQc4ZivG815x+/82OsrHobyVqA8Hu+kb+hW2lgcjHrSt86zBkW7Qgv/AJe8OIt9+AQPxlWkc3idV2+k1KuxnhsfoFHs7COZmqtbdbNXIjyNz3j7aKPLIdNLisbVANbW8SbVJ+rmoFVzE+uzdvUbzQI8wyutQn7XoKH3/FOyF5GOE2rY8/4W3Pa4qst2G8eTltswXGfEG5ehHX773hEjDfxLoifddc2f+PLOsZ4AZmUVSj0uRDEM7REhEUyIt5iesoJYi2FMM8IzPsBm0dmFKxAkYzGDs3JMwC1AIGQE50FHiEyC5kPPXA3/83bHmJ1MG08CXOtCNlkLN8gTlt83Sxj17d+6T185nN6VqqUBLPozShSESaMWfDOwKaBVKAUj6s0Gf0sV48P3ZT4iCpRjGTGUOfpoF5iSBZW5r6BvhWIjAJBvGS+V6OIeEcyTUjs2I3Gj//6Q/zWOx89vOmnEPivpsQQTl9swc0TX43TF1/HI2YdzXhaf+wZMGsrjifKiHpiDg/AL9tqy3oDuv6cq5rMTKrH0k3AaYstOP6x62iWvFhAgvGq58755ldnViRySYjOkLIkqTHgNjIyRCxn4oGgvYEqy5yJAQJCFM+sEsEz3av9TSoQi+9dU/Z13QojUXALXMWiJz+41U4hF8NCQErh0nLgjb+VePBSxqt9bpyA2sSsJyFymCwq6mewUoQsUCTSYzx/e4tvf+2LOJM/QYrKWHpCSXRhhk4rchiYVpcQAmJCr4lxATmoG4aPSrlQCLbD/j0rIoKwh5WBS0n4pXctePv+BZLBUIqrsbAZF9dD5I3MyoJba2BSDcTYPX46cpVzU1a4eZ6wxe4XvoZ7tpSom69u/Bw3BuybTBjP1FpnXam4wo3YoVhp62Wvd6UodZDYlBXWWW7jgbUeSOywQ6Gsi8C83QS1xmHzPJjx4F5m/30fJ+1/8IYORI/ltMVXW7DfPJy22ILHx1fXdUzT0/cvO1p692TG8Jt/YTMYxvp9xaAEutDztZ8546teumIWVsQAWk8OJyCXmsmpguVDTz8rPbbM6FzrlUImIB3E4j5XoQgiPUlG3vmJXd78Bws+upfRXDjoMnE6FK/Wh1HpCj/HcXLa4utmHLu+8NPP8GdffSejGVmMrpb3j2b0KiSDYsJyJfSx0GsVvgRSMTQAZsQoJAnMUmFECGIMGkCMZTbwJCxi0drC3E+3u+ivFzD6oSMr/MK/ucBb/92Dl8fY0c3nOlNDXCQ72nH46XLaYgtuzvi6VTlt8fVsZmZdkWvOXr+67K5s5YYdPD9dTltswY0Zu46uvcDXStrP+LznR776JducPXuRkCYkFJiKXxe8wkcL9HvCtOsdEEOE3pRshVI7lQtCMPUqmxBcDBMhlkApmUJhrAJXzm5RY/i+2MXWwLsfDLz592FvsULNyCKHlT43iCZmPQVuse65MEe7zHlqnX9sCFpgLgN3bQmveO7z+IzndNzbXURTj+qSYBNJhVAiBywIGrEJLCf2Lz6HvbDkvQ8m3r13kfv3lyxsVcvEXFU3O9IYTC4XsJ6NhmG32sC0yc5a75KOLlaBjavrEcVLt+/iJa95BazdiKp25F1SCusCQdbTTv2fFbwMcF0HuCk5rAnL1c8qUzY+VVJFrcOToXVGl7FZQa9LG4oLZWbGpQc/ySfe9c7r9h5eL05bfLUF+83DaYstOP7MrFpIekUxKAJFfUxcl+ULEEUJwXjemcAXvugOXnPXyNnb9ujowCaMiWKBQX0sKtnIUwchETrPgBknIXcg0vEHHz/Lb3/wPO99SFmuliwLqAr56LLd1qPf8YtWT8Rpi6+bfez68198N5/7om0oxkhhJpGDkpHSUaZM7IFixCAUMYIFMgWtac9F3GgeKxSBmYANyv6yEIMSBWJSxliboQSjC8og3qwg9MIb/68HuO/DFzdZFJu/k6MJHGvqOuFqs7Lg9MUW3PzxdStx2uLrmcSWIqjoka/UP9zHCVJ10X/Z1w83ApdlWz32sU9D3LLHn5df9vxHyZZvMgnrkNMWW/Bsjl3qWQ/A0M/5c69IvPL5yqAHpALSKd268c6iEHeEPLnAuZ6bSj3sEwOLQmeemZWPVPmE2gjKRL1Zj0DJimXhwTHybz8Q+a33HTBV/61nUyc6UWJWo9FoNBqNRqPRaDQajUaj8XTQp76k0Wg0Go1Go9FoNBqNRqPRuDloYlaj0Wg0Go1Go9FoNBqNRuPE0MSsRqPRaDQajUaj0Wg0Go3GiaGJWY1Go9FoNBqNRqPRaDQajRNDE7MajUaj0Wg0Go1Go9FoNBonhiZmNRqNRqPRaDQajUaj0Wg0TgxNzGo0Go1Go9FoNBqNRqPRaJwYmpjVaDQajUaj0Wg0Go1Go9E4MTQxq9FoNBqNRqPRaDQajUajcWJoYlaj0Wg0Go1Go9FoNBqNRuPE0MSsRqPRaDQajUaj0Wg0Go3GiaGJWY1Go9FoNBqNRqPRaDQajRNDE7MajUaj0Wg0Go1Go9FoNBonhiZmNRqNRqPRaDQajUaj0Wg0TgxNzGo0Go1Go9FoNBqNRqPRaJwYmpjVaDQajUaj0Wg0Go1Go9E4MTQxq9FoNBqNRqPRaDQajUajcWJoYlaj0Wg0Go1Go9FoNBqNRuPE0MSsRqPRaDQajUaj0Wg0Go3GiaGJWY1Go9FoNBqNRqPRaDQajRNDE7MajUaj0Wg0Go1Go9FoNBonhiZmNRqNRqPRaDQajUaj0Wg0TgxNzGo0Go1Go9FoNBqNRqPRaJwYmpjVaDQajUaj0Wg0Go1Go9E4MTQxq9FoNBqNRqPRaDQajUajcWJoYlaj0Wg0Go1Go9FoNBqNRuPE0MSsRqPRaDQajUaj0Wg0Go3GiaGJWY1Go9FoNBqNRqPRaDQajRNDE7MajUaj0Wg0Go1Go9FoNBonhiZmPU1EZBCRHxeRD4vIJRH5AxH5qie5/rtE5AERuSgi/1BEhht5v42TRYuvxnEiIreLyD8Tkf0aY3/+Ca4TEXmDiDxc/3uDiMiNvt/GyaLFV+O4aLHVOE5afDWOCxH5iyLyeyKyEpGfeIpr25q+8bRpe8bLaWLW0ycCHwW+BDgL/CDwT0TkRY+9UES+Evg+4PXAC4FPB37oRt1o40TS4qtxnLwRGIF7gG8E3iQin32F674d+NPAK4CXA18D/Bc36iYbJ5YWX43josVW4zhp8dU4Lj4O/HXgHz7ZRW1N37gG2p7xCGJmz/Y9nFhE5B3AD5nZP33M1/8R8CEz+4H6+euBnzGze5+F22ycUFp8Na4HIrINPAp8jpm9t37tp4H7zez7HnPtbwM/YWZ/v37+rcB/bmavvsG33TghtPhqHBctthrHSYuvxo1ARP468Dwz+5Yn+H5b0zeeMbfynrFlZl0jInIP8BLgnVf49mcDbz/y+duBe0Tkjhtxb42TT4uvxnXkJUBaL9Yrb8fj6LFcKbaudF2jsabFV+O4aLHVOE5afDVuBtqavvGMuNX3jE3MugZEpAN+BvhJM3v3FS7ZAS4c+Xz98ZnjvrfGyafFV+M6swNcfMzXLnDleLlSbO00b5DGk9Diq3FctNhqHCctvho3A21N37hm2p6xiVlXjYgo8NN4jf1ffILL9oDdI5+vP750jLfWOAW0+GocA4+NF+rnV4qXK8XWnrV69MYT0+KrcVy02GocJy2+GjcDbU3fuCbantFpYtZVUE9gfhw3ivx6M5ue4NJ34iaRa14BfNLMHj7mW2ycYFp8NY6J9wJRRP74ka+9giunI18ptq50XaOxpsVX47hosdU4Tlp8NW4G2pq+cdW0PeMhTcy6Ot4EvBT4GjNbPMl1PwV8q4i8TETO4V0GfuIG3F/jZNPiq3HdMbN94OeB/0FEtkXktcCfwk9zHstPAd8tIs8VkU8D/jItthpPQouvxnHRYqtxnLT4ahwnIhJFZAYEIIjITETiFS5ta/rGtdD2jJUmZj1NROSFeBve/wB4QET26n/fKCIvqB+/AMDMfgX4X4C3Ah8BPgz8d8/WvTduflp8NY6Z7wDmwIPAPwb+SzN7p4i8TkT2jlz394BfBP4QuA/4pfq1RuPJaPHVOC5abDWOkxZfjePiB4EF8H3Af1I//sG2pm88U9qe8XKklXs3Go1Go9FoNBqNRqPRaDROCi0zq9FoNBqNRqPRaDQajUajcWJoYlaj0Wg0Go1Go9FoNBr/P3tvGmxbltz1/TLXWnufc+99Q1V1F6oeJNQasBRoMEItDISMGEI2gWUrDBGA8QeHA2GMjEMhY+OwRMgBxnjAYYccYRkHNlPYYYJg8AA0bixLBDYShAIJJDWSICS6VT1UV73hvnvO3nutzPSHtc+99716r/rV0N1Vt29+uPdM+5x91s6TK/Of/8y8lmu5lneMXINZ13It13It13It13It13It13It13It13It1/KOkWsw61qu5Vqu5Vqu5Vqu5Vqu5Vqu5Vqu5Vqu5VreMfK4EaGfcxGRAFBkfQAIiPV/v99viPSHDo8Ll1/T/0f0u05cvOclCQJEkLg49EnyWs+HgKz98w+fFQTyyBFx/p0efu6h0xbwiPP7ny+JiNdajnekHPQL+no/en2uikTX7Le1XDX9UtX+8xbhccM05NyA9Odi1T2VIEJWG9Cf0/VVsR6nIoQEiYRn4zc8f4tv+JIAnfCW0DaynO3JR45bxsRBAjEnNAGNYEO1GT09Rk+CxFk3pTlBK1QmchuxaaE8k4jaEBIIJMksvsCnFH2un13KAeI0cSQGjEYqW8T35LiByczPvHybv/3iS7wSgthCqEJ4/+0JuL/axl2sn1zY8SdY34OVfVTc/UrpFjxsuz7fMqgQAupBlS1HzJyk4Mvff4tf996R4xPjeDNhu4pX2G6haPDFumHwiTPdsn9lx0efy0w6IulZfu5j9/ib/+CU3/ctJzxnO2oIpyZstXD6icT47Jb/4IdexC0Q7ba7RpAD/PCDWXVK5EKP/LOwalfNdr2ddOsLXa6absFnT7/0YovAVbiRlO/+NTcZ45RUvO8PPuBihCoWCylGzCs5B4SyFXA3TBTVgmKIdO/7PMOfjNaUpP3REkL2wIDIGYsG4eRccMkcjaAG0zRR7mzwtLB7rqK7G6S7C/KuhA0N9UBaZTlN2EmQPUFe+PTpbb7/7+zYW2PB+xrCeqtLxBuLD66afr0e3Xotn/8zxX+H1xwCs8NrBUAKf+CXw3bjSIUmgqj0OM6dI03sm9Gsn+pxTpy2xo5CCGwCNgSOMGn3j8xho4EmRU1RaTRRpoDJg4hAc2Ik8QM/uedBe9pV+OzJVdMt+NztjYo8hCM8+YTWP5djjEfAgifFIIfnhO7D/b5fdZNf+4ETBoQlnOrd024WCIq4IZJoFizSdc5cwIVRnSzOZIq4UFcsJST4jr/y8Te1Fk+Sp9Wvt8U0w4PiXDY4h2tHPBmUgosQ8TI4xSXlOAeMDodHrBf9wjC9CoB6IqJ0+Qnl4W3mtb7gI+/3Ge77ej6H8464uM856CWrbve1ORxzeOy1FPu15Kobpifp0WW50JXPvNFdBfHPIQR21fTrAGZdlsu/P11/3OcO0UGjDq+hgzPne9UalCfowXsMvDsrv/WDG7ap4fMOEcFNoRksN1nmBdkKWZ1QRVtQqRRGmkC4IG0gqSFpQrRijFgYEZC0stwfKUcOBFmgKkjrmnF2p3DjViOXTIhTLRA2uDuaEoijpXZArU3IIOSk/PyDE/73j9whcA4+l6yRwqOAlnQTvoJ5sq7hmpgQeWhdD0Cgr/ZNREgpUWu9UroFbw/AQYBRlSDYlMJv+YoTvv6XLgxpT8wJSmJzVtndzAyuOIYsG3RbySa8m8yxbJllZj5dePEksGRkjll8QWUm+8CJB+6FxSr5wQ3OTvf4+zPf+9fvoCa0CBoBevhtrcHdut+HXvh6wcN+31shV812vR1061q6XDXdgs+OfnVgCXAhaebbPnDEN/ySPQwVCSFnKICa4BbMOVFTI0fBI3AqY1JClFFHou6JlAgNEkK4kVACyAygDaMRIeRIZHHMM5YXRAveHElBViWlkWSGorTs2J1AFygvNO59ckveT+gXbVk4I+0SKkErFZqi2ZEQJIIf+dht/vxHTjEaFmukIRc2TS5ciDUJ/pnX7arp1+vRrdfy+Q+r8pne7VHQS0T4rm/YMEyVYQPLvqIlIQgWBqocOYgkagSCUUyYSTyIwBSGFmxEaThLghEhVjAMdYYWlKTs3ImUmN0oKbE0iHB2O+H4WFAN/qsf//yhWldNt+Czvzc+NYjFJf+XWKGOJyTOLz1+OAaELPDvf/OzfN37jnB38oqnzItTijCbdBvnkFUxA9VgsiBciYDFgyOgSJAEdtYxh7rGLkkdUH73//aJt2R9Lss7EszSc47CysI6f8EFW+FwH7jI5D+iFJeV5LEK87T0J6F7yI8DrZ6aQvWY4z/DsY875+AChLvMv3lNQ/3QLbn0HhcA2MUp9eevumE6rNfTbmLX8nh5oyywq6Zfqhqygp4ulzcRXrWxdFC6G/8cimsQj9BDTeC4CS0Fz5WR3/4VtyjlFbIIOEx/YgAAIABJREFUdb8h5oQJeG20UErLNKsMW8NvNKQFaSsoIzBjrSGSaQFMMBwHcyhJEmFQ2TN6oU6ZITsMgkml1aAkISVneeUW6eSMUEF1wSIhkkgtYdoQNZpnICPMjK5ozj0zzU0+/PMzP3c2MVaw6Blwk6CuX/2QaU/RI5WmBwZXoKpErBlJVWKl4BxsWIogklLNrpxuwecfcMhauKnwHb/6Fu/dzigV15mWFIkeaSmZfDeIZ7cgE1tPtKa0HBSEW5K5rRmVmfn0Fh87us+SQdVosQFzUmsIjSMGhn3m058qpPdCG5Xv+yufxDRYPNAkuHfmlazoZyNIgMElALRnud9KuWr69fnWrWu5kKumW/DG9etyUvbisS4hfb/44PtP+NYvC3LbITaQzCmD4mIcpe7dagi7cKYU696bSApZlEZjSJ0xnD0j2ghJIIEG4A1WBk3TQrJGUUHbjJRMU+lJIgUVpwCeFPcEspB1xKIh+yPkbEJuKmefyGzfe0rdJ9QGYuuYyVqx0cAhkuOSaJb53g/vaUBIBzjiUtwQPBxCHNyOJwFbV02/3gow643EAAJkgd/71YmTjeCLY+IMQ+7+SnSyQc5KasZWEw/CGEJQUZbmnCGYgXiwTQVXYxHhlgY7DypOVsieGCRwhepOJRNiJBd2DmenxvHNzgY70cQizod+wfjxlz+3Zv2q6RZ8dvfGg307X7RHPumNElEOxx4Cij/+W57jfbc3KE5tCXDMHUwpClWcunSboyG4CyKBBJgLzRWkAokUzvHqqC8hnDYjVDB6EkDDcEn8xMcn/vsfu/uG1+Zx8o4Esw500HMw5yHj/QTgiocZVuv7XWQwHvp6T41APXLM4ZMee+4Pb7qPU8TX+bF9o1pZHfLIE4+siVwCpeScnXaJ5nD+ygu5YHLxkPe/Bo1X2jCdg1mH517juEezMY99zXo9rtyifRYkCPyK6ZeqxqF8+Gm+2QHMuvz3suQV3fnKd2/49vdv2Mcpfn+AeSSemSnSs3pmBXwhbTubq72UIAnNbhG2J5eZUYJFnDwGUhdabElDZcjgOkBSqiVoZ0gaqfeDdKOSJCGMeG2kHOzuGeXEMQWNAZEdQj6nvrgqYQFWCG/oYBAw5gw0XEY+6Vs+9LP3+ORSycZFguJgpuJiNfrjgvsFGnEZJHxIIi6//krpFnz+AIdB4Bvfd8Tv+PrniV/4GNN7jFSU4zpwNECrzgMSpgviyo294rfhNokxGkvdItnQyJQSHIegDqmO/KPNKa2MSAT7aGjTrssPlDRsqC9XbrznBqfpE5ymG5TdnnbyXv7khz7Jz91fGKiArMFDB0YPV16jq6VLTyO1t3D1rtreeA1mvX3kqukWPL1+vcqHPv+7si8vAdQaha95l/DbvrqXuqcF0nZLxI7EhmiVo5RJyWhuJFHuqqMiiPTQixBS9ESNCGAjqoHFAskpLaMkJFUahruSBRJBiS1VIaThFoxJUXFmF6Q4SoJiSIzQnKNhwPcKd5yqp+juBnr7jOXmiEZQW0MzlMjMdcYRPIzcYBkSf/pvKz99utAQNIK2rowI/fbqf15mpF6s4cVjV02/3iyY9RAQ+JhjnsSaORLlu77RmOdMzk5MBR2dtBIWwrsupwxDQAnhgTc2kZCk4MGEsPPADAZgzNA0KN4B0b0bGxFSKGJG0kJVYwonqTKEcuqNu/fh2VuKKGQHR6gIGhX3xB//h58bttZV0y347O2N5zH95R9qPFnfHnNewCUo4FIViIjwrkH4gd/2Poo6u9p96maOu3WswI2kiUPFm7mjrrQQkhq2AvTTJKSssIKnKsEoSvXGPsBQmjuV3g5lI4B3m/T7//on39I1e2eCWSsY0x9kDXAe5hddNkxxwHoeJje83s9e33st5bsUNAmg2hlit8fMrW1im4UbpXBcgqUpM4ZbcHdy7k7G3dlwb31TkmBNXj+x5OHwuY+9Do9kYg6PXSZzHICvw9odyg3Pvw8Pl5FdVvz+xgfUr8tVDwg/E+X4zZiwN3v8F4JYXC39ulxm+GqK78XjrwZjLgydrCV1g2a+7auO+MqjPXVOoEoLZzmDoRi+VTZAeCZYqDoAieQCoSx3GrGt6FEhN0e3mfBOcW81o1YIM2JK2JJAJkRGNE6JYqhuaDaRjzIijcg9m8PLW+TWTBC0lAnaGgRkxCqh5YLBqoYSSEtISRALJpCS4iK82G7zV3/qFc5iT/jj4LzXXrdHN+/Lj187VW9efuuXHPMtv0xpske1YZpJSeEjA+XLg5AZicKxCoMGd6L3UXt+P5BLIyjsh2Ba4LkU3SFXZ5s3pNOEHjkf1WAnE5SRKYLNpzLTsxWkgYzIJ+9Tnhd2ljAKzRfGPGJ1x+mSYP8Mf+Ef3uEjdybwQEKx6CzHDo4eEjPwVrrzV02/rsGst49cNd2C16dfjwO0OniluDgZ4de9b8Ov/dKKaBA4WYXiCdeeaAlgsMS2OGWXSBtnZ8aUnJAMHrgbwUhJRmAMCr4GEh0YEqL1RIyHESGIVlQKKoGKUsMhOhAWOciWSDIwhTCUXmKWkxGWKEXB9lBG/KM3qGUmzhrbDzTqfIT4gkclouGhqAXNGypKSgn3YEb5n3608Q/uBkpnNCc6YH8IhA8JoUNu+tF46KolEZ9Wt16LlfV6rF9GGDX4Q78ysRfhwaTYbNw48vPuZtKJfiRV3Lp+jKHsm1FS1/GtCwtwJwKJDiqcqKPSGfNOZ2K5wyjCGI6r8KA5UpSSlMWM2UDC2eTUmWH03lu1JTapJ3f2DWxt6/CPXnH+2j99i6nKq3yh266nkct6+FQEmIfPhUOJ4eOe+6b3DHz3t7wLorf8EGu4K1OLc1bnYrBRQ+g+UbRAstAcUoCvtHZD0HA4sAclSKJUek+3yY2QbmxNO8A+ChQXKnAWQQvhP/zQWwdovSPBLD0EKY8CVo8wsWA11I8wnj4T2+ah4IdOV1ZRnh0TH3zvEV/3vpFbRTERSsD9vbPdKEUMTwkxYz8lhuxIchRBTMg5GNIKfiHgwZCFrTh764j5vTn4+ZeDv/tS5Sde3rNrDdwfUuS+IT16PZ5M67rc6+vR0sqH1/HAa3u41PDymhyCwy9kMOvNymPLQ68BrofkqoFZKaW4bEMfD1y9WjQ4VwyXwkjj93/wFqndw6aRNCTMMpoWHtxxyvENvHyaIW8p7iw+YECKSpItMuxgydTTiXTzBKWxVCNvFExJUnojx2qoJiTvCAWVzPzgBvFgQ0wL+B65fcbmOAgx3MHuHqO3H/TmtlrIGrglwjKoscnK5JWkCl6x2Pbv6IZJW/tc9RKOlGZiOOYv/6zwT+88oK0OuPOwHXrILr7Gml5+7qrbrs+2/He/ectJnZk0M4swJies4XnD/GKQb28YjhZanklsOfKJiqKx4b0ORQu7lLknZ+zEKMsNZDhFLHhBb3FzH2xuHvML6T6nnmj7CsuWeHbPYnRAdNlT74A+2/dhj4FF96gvqG9o0ZBxJFtlktt831/+BLP3Pjmz9GDv0eRQfYtW8Ko57ddg1ttHrppuwZvTL11Xw+llXd/x9S/wvpOXeq/EHKBBCYGqaA5cel+rkkeKz4gkNlPBysw9EUCotF4OiK69X3oFB7GW10eQrG/Lg+q6PQ9oBpeJIQpz+PmgpiaBaiIJiCdcg03q5fBkpy7BjaNjwnopmnkj3Q0efHrDeHKPo/c8T2sN80pYI2RBquBAJaNeyaJUABp/9IcTn5xaZ1hEnDcvCXp7ghQXDU0u56rhGsy6LI+LsD6TFBH+yAdBKTwIYz8pbsatjbLHyCKdtOBwfCM4uy9UCY7pOuYq4FAEwp19UmLpCZgjySSB+81w6SwtDeFIEht1qsD9xcglsU3KmVfu75WbYyBJWcw5ziCemVsjZ2gOixaCwMwZVyB2DvihjzV+7NNvnem/tl2vLXpAyh/TvL3j6Csrxx9O1D4uYXtxfvBLjgr/9be9B/cAMThUc4XjJkwE4rH2thUwVtvRrYQTuAmIEyEkCTyULEFt/ZxUhIVAUSZ3LJyigtBbfoQIR9qH8uw9sICE8NMvzfwPb1G54TsTzHrErFzOLjyeedU14omsrIOinN9VvuTGyLd92Qlf+Xyi0jetCae1gJxY3PqmEEEsoAmYEsO20RRyCLMlwhqp9IssIYwDEEFrjia4mYTkSlWhhuNz99U3Y8NcGETICA+q80MfrfyFnzvtSnn4vk9xXR5anwNj6zKoxQVIdrlH1muxHa66YXo9jfderzxOD6/BrIflqoFZl1mlT9qELr32/HetASFBTsIzvuV3/SphaDvm+4KenJCt4nXB64YWgh5VxDI5VwxDtCCxIYcxtYmyGVFvMB3RljM2X7RlqYrMZzhHkAodZ7/HdntMbfXQ5R3RYF9hkETaC23esOwL47DH5YywDXprTw5BQtmFoMlQzb0HFo5IJvwYi3skHXF3anNyrghC1kKEMw0zQ74BPvPj927z//zsJ9dN/bUZWof1O9x/9PYXgu36bMl/9A03+OBt5yV2zGXkdsqc2YSlxqxHDNXQe4okI24nhqgsCkXhVpwwJuOZdsS+BPe1sZdGa4c9xyh55LYHX7TfMmxhiszLbWI/CMvY8HBmglpn8inMGth2Q4oJLVvaPNOmER8bkmaEhMoGj+BEd/zNj9zi//jJl9klp7Q1s83KUHgL2VlXTb+uway3j1w13YI3p1+J7ku1pPzmLz/h17xwhhp4FsyNnBRVR6v2rrS5p3YLCQljI5BMeTAVdKjUAmif3OURHJPWgRFBSkKEAxkXo0jvH1PCUQGrRhl6f8b6YKTRe16aRvepx4rmQhmtDzjxjBZB6D2PShowVVDD/4mQbjj+8UT5mjN2dkJuC7Y4g9CT3OJEOBmIJNQKkhrPLon/8R9mfvBTjSqG+AV4ZXJRAfI4P/QazHq1XG4R8lp+ujDwB78pcVMrQwQPXLlzL5hb47njTEuNQRQVJcJ6TzZzUOGIXtI6yyHQD4ok9vT7Vh2ysFEhWjCJAZkiQVYoNBZR7s9KycZWEpPAi3eNd2+DshnI9NfW2iuJzI1GB9NcOvPwGGXx3l1yAVoEZ7Pxp/7Rm98Crm3X4+Vc91Yc4jVj+pVd2QchvcZrRfiq5wa+7194LxEL4bDMSrOFXBQJ64BpUyYExLqNW21duKA4FnIB6q50LRchrGEqiBcIJ8QxFyJ1sF9XID8nRdee5S36hNdGoN6/66jwe/7ap97sEgJXBMx6/It5ElGJw3Sww8sQuF0yv/trbvN1zxdmyTywSg2livfx9tr7u2QRdnhHLq0DnQqICTr0zMq0S+Q0M4wJswGXRm97DNEcL4AI2ZVjBcHIKVARzh4EDDCU3ggw3HDtaP6gnTLsEsxV+Bs/3/irP3PvofLAp71O8ei9Neg7AF3nzIcDa1Hg0Hdm/ZwrbZg+m8ys1y+H2fKPXttOD03RRyL4qpfnNHgusnLvNLmqYNZ6+yFw5fLjwIoqKyPRsx2R+cBt5V/50kzyhcV6xriakHNBdsLOJ/KWniXxQlOjlEBrIuWlZ/0iEFVS2sK8oz3YoO9JqAUee0SsTxo0JeGEZ3QwPAXZBlo4dYJh2CCxwG6BGwXmTL03EHWBk4WSDRPHU+4sK894ny9HWBCRacxISYgFNifS2N8/iZMjsOKMJEiOE/ytj9/g737yFKeel4wf5NG1fByYdfm1V912vdWSFf74b1LGvXDrWPmEGTnBkW45thlhg2nFRVimDXJvQV+ASqASPOeJd3FE1R07XbijA05msxloZxNlu6WZQHZuzANfmo8oE+yTcWdo7EplsiB55Y4b2+bEaeHujR2Wlc06WafuRmSzIAlEHA+lhRKxkENJPkAd+c8+/Ek+3hxfQaxDk3ghWN6CVbxq+nUNZr195KrpFrwx/Tq497KCM7/na5/hizd3cduQS8UGwXBSDlQG1BYE7QBQ6oyWEokUmUEai3cgwSVYsF42Ex3t7gue0NRZXUIvoU+pUGjYXsk5egwQjcoRZZhxnJQL1RpLSZ0dHcfYA2Vz+wxXZdQtpIVRxl6mvTFiGWGf0ft79vuAkx3l2Q25gkawmwPDCZ9AhWMtuDeaQRElk8AaH5me4Q//vy/hj3MCBSwevq8Cza6Wfj2Nbn0mX/9yA/gnESIC5bu/sXCUg00YRwj3FngwN443if2pMp5AwkiaMe+lXOa94csNhTGEfQQ7gqOSKcAuoHlgi+NJOOoHUVOQNQNCEuMY5QzjQVNqM1yEbVbu7jLvOm4sC2ySkbeZeRZShtkbJkpDaGYUCQZPzOGYJIxAVJhqI2nCI/izHzEe1Nd5EQ5rdG27XiWKPOSvPgm3OPdvVV5zLGn3Y4T/+Xe+gHuvHW2tnfs55kJrjW2W3lfXYR9xHi925qCvoG2PKs2EWAdeWFM0C0KvxmieUXUmXwE27eQY80BQBu3YQngw00sRHfqgA4I5hCTwnW9B/6yrC2ZdHPOqx1Tgu3/Fu/jg+wvNhSlgZzA52IogRnRKnQVknESwj07tlegbgQhkCaSD6yRTptYoBUAYw3BN1Ab1TChHDU1CiCA1kCJryWEHqpoBBkdjQsUwnH0oGpBTRzpHDVSF3F9KC0goHsrp4vyn/98dXpntoSD5SY3mH2VpHf4fmr6fUxsvyaWSnittmD63YFYHnVLZcAx852/8Ur78+YzUPTkL2WcQJeW8loV2dFsAN0XCsVDQbixUIVIv8WoLaG5k7VlF0w13m/J3fvouf+0nPsXp0jc+8DXr+Pa4rFcNzLrcM+sgD4NZPWOsEnzbVz3LV7+vIpPyQz9jfNN7GnlpyDTSbMJPMkPJsAizT+iyRTa1Z5t17iRiT32KiDTSlElHHepUdSKCsThtEpY5yO8+QavRbCS7Q3lAK4WkjWXekHShWYbWSIMDBZKjdyFkgrQhbYxleob5oxW2pxy9OxGhhBl1bertyUml0eqGRhBeUQaSF0xOCc2IJUgLEcpYICJj3iAaNhzxf/7cwMfv32GSi8zR65XrMsOnk20W/otfPzLHgoUiYoyD8MvmLXWoTB6cRqCa2YpzFCMFZ7M8w253n+NnCw/EONJME3glVzQJaSnIGIypdNa7z1QKwxDc3G25PW4YveKpMVugWYlqTIPw6TqxicTp3YVP3eh7qKpQ68Q8jeRNQwI0O1OrJAbMU2cIolRfKAIP5mf4z/+vl3hQK8v6fXV16N4soHXV9sZrMOvtI1dNt+Dp9Ouh3q1w3vD9g+865l/6CodhwmsiUlBKgDjSEmVJaDgmmbSpeFIsGjllijtYkENobcB0wgoEuQdu4ag6ZoEU7T1iQnCUCKFV2CCU0YhQHMMDkggZZUjGAFQt7LXRKkgRckBaCmGN8SbAwDYl8iAsZmhplFpop0HLM/KLG7YfmCA/Q2qNs7n7c8md8M54bt59t+yNJfrEuqkp6U7h9/7EnuSdFdHXsMfLnWN20SBersGsV8lDpIcnfwa//WsKX7YxSELxIC/BNCl67EQLkg7cP2soymZsDLmDGG1lAI4omwTVjCklMk4WBQmmJn1oZoLkTtYEOVZcwxmSsLXEouAYZxWGBA3l7gw3N3CUesmpiLCbYbOJ3vA7hDmMnSmbCJr0MrMmiZ03jrJwVp2kCVFBrMe+09rz6M/81NMjW1+otutx8rTx5dNOLEwifO9veIave88xu7kzS5t3MorROljlQnhPGBdXUoIatpJhdI3/Duyw3tvWEFQcQgnrw1vHIbAGLspsQimOebBEUFJGw5gsyHRCjomTUfZiZO9Tx5MISYNlSZTB8Rr8Ox9+6Y0s5blcOTDrMuvhwMASIOG8sN3w/b/+FlVH7npnuize0XCvgRHniKRhJHqTvrMWa+DUP9twEr18wqMfpwc6nnVQakixAl8dAUWFOtGbUuYATRQHCSMNSvKOwOOwKbKCWZlYGWG9AZuwGSBM8ORAIqdeW51F2UhXoFmDj5853/ND97CwV7EYLsuj5YaXe2tdOuicufWFBmadf8t4a2EelSM2qfE7vvHdfNMvPWHUqW8Ysn52BKSuL+Jyzss6v34itBa9n3b08iuLoKCoGr423yPkod+Las9OmgX1VEhH2hv0JfjF6YQ/9pf+PmdLZwM+nLr73MpVA7NEJC73eHo1a6iDk8+lwr/16x1bjmGaCReWs7Y6yFv8tNJaMIwOVdnZAJuJoVQoGRFFS8LajAJYJi8j2Qb2vkfTgKbUM21UmJzkhj27Y/PMEbUVXIPWFpInyA3LJ+RpwkgdlGJH5MK43zDdnRnfBZE6O8aWQvtFpW1eZvNLNux9YWgQXkAcCGoEnfu1IZhJkeAQcKQzYDwv/yolaK6006DcmNGS+KEXb/GTL36q941Ye008KpdZWpdviwhmdqV0C956wOF7vvndPF9ewVeGQwtlG4FJ8IIMWAMbjeTdSWke3MhwEltO1NCzY6Y7gr0wMasypT4tcytHbGfFbsDgma0k2pnDyQ3GtGczJ+oIt1uhTBXPyuSnDHGMsWdJR+zqGb94esbpTek9KiMx7St6e8FqQm2h2hEqlRRb8D05ZRrOFI2jmCnpOaQKf+LHGz/y0buM1mgqq1P25tbuqu2N12DW20eumm7B69MvYXVFA0ZV/tDXJrgN0QwTkKSEQylGRmgEOSDLBolGLJWJQhKhlEZ2QV0J6VUYloJQI0xJEn1ghA2wNDZFcR+gTUzbQtIFNFATigqmAbMTozCGkFPq/bpUqNqYQzB3BlHG7HgtyK6xuT2gmmFYUDI5Q/FjfB7Z33mJOB2Jo4WjL8n4dIy1BzRTsgcWTmhjroZrUDwTCao14hRiStx/7iZ/6MOfpsVFKOD0CXltXcsDeesLrcxQeHXC/vVJ8Cuf3/Lr3udsxkAI1DrDaX+/sb2VqL72AwXUYLeX3sttANFe/qoESZ1wxVJn36g4mcQU4B5Eg2EwwjObDJU1+ezOSJ+kmZOyOKhCa85LVTgaYKPQcNThtAnJnO0x7K0DZkvtkMZikDSx987iL+osVXp5qnSm9bwoJlBdSSJ8bCr8jX9yRvDaP+MvdNt16ZiH+3s/oXT1cUCWPBKHd59W+Yv/2gucLT2GD4MWQnVDpXeZbdaTdSKBRMcL3KL3XQMihBDvvrSvDERd8YTooDculNRbn7SV0dVc2CoddPV+PkkCDaf5yu4LQPvgAzMoYgh9MmIzZ8yKN8EIfv+H33jJ4TsYzBIO9SaPGiMR6aBR9CZjX3Vr4L/8jc9ytgh3FmGqsBBAwqWxACrO3oVtE3biKId6T6MFVFZkmz5VzMLZarAcJm2FkQSSAKJY7dOZnCABx1lwhwXh9H5hk2fGbaCSyGuddAjUXbDZgiZFV9ZXUgGM6kJoP4+M4tpReSUR7hzpSgcEaNr7Awj8iX+w50c/dnbe0O0hm3NgaV2+e6nMsD+xUgUjzntqXXXD9FYxsy6zRiUd8SveP/C7v+WLuSn3waTrzqLIGEAjJcWanOuuaHeoVHWlofqKUWXMet+1urRe8qrKkPJat2x9Aw2Q6IwtDn3AxGmm2KmRbxTcHE1Byn0XnHstKy+2xB/+cz/NRO4Q7ufQBlxFMGv9DzxcGtc3pOCLNkf8m7+mMN0/w1oHq/BCkdZnKr+8xW9UlIZZ4ux0w+Y4oZNT1LGqeJLey08g5wSl0rIxbBIRBkkRc1IpaJsJ3eL1AXp6RNRGeWHCbt7uzNFlofpC0oHICq1ikSAGIvYUH1E9Yrr/CvLMBq0dkDOC5Z9sSe+916cTtgJpR61OpAJSEQqLGGpKSCItSy9LJMjScDIWfTJPisK8h7ZpDJEpRfgTP7mwq1MvHQk/bwx/kEcbxF8GEa+67Xqz8p/8hg2kiUGVrSRm9zUrHGhK3JCBIlD3znBinHr0hI0XjkMoBpoFv3NEPO+c0ThSZdTMWODWYizbkSGP3KiFOcFYEuUe1FupZw6XhdSMJUZmf4DaliNJEMaZJ16cT3lxhnx7xooS0ieQqRTcd7TWUApKQBuoqe/PIhNj3AQq+yVYsvGR+xv+5Ic/3Z2+VTPmN1GffdX06xrMevvIVdMteArA4XJ/yQgKICr8gX/uNif7M+S2Ed6rKJo7w+hrElmRSLjU3gOVIJpASUg4R/OITEIeGxY9sY01PIFpoNvM0gANJFr3uVNARAfOVj95EBAXlpQZlspQMgtOWUtockk4fbJcTkEiE9rZCSMbfO/kTcOyIWlgk4yxHIEru49PLArxcnD8yzOIspztyZKodUJkYHJjF43B+vAUsw1Nzth8KiM3lboNTpdjvu8H71GjN2NuEeesrHW+MPCFB2a9WT//+VH4zl9RmE0JbX1QcwQbCZb7wvYWLCsZQiVImglzzhYlFsVaoxTFA9x68/WUGzoUNoMTBLN3/SKccUy0FhwnZVEjSIg5RS4mxoFi0cvsZwmWZow54XT/fpKgJIgJWurIRUTBbaZJYfbofd6styyZHVQSSmPUxL0ahDrV+jCBQYUf+MkL0oQ/AdT6QrRdj4oe/H8ukUguoIz1uVdjGk/4bH7gX/4ibm9TB6bWWK96YCE9UnfHUbRTbigahAc5grNZyUOvQhPRPtGydR1sNEbPRGoUURYLvGXGTcNaoq7sDmvBvFOGTccaigZZ+/lPTVYySCA5enuU6IM6WtArNhqk1GMG8+DffRPsrHccmHWOpK8lcKLCH/uNt/lN/2xmacL3//DCn/+xe/zpf/E5nj3KnC7C3qA2Z/bEIr2oq0LPSHhntBhB2KHPkJMV3BXFaRFMnshrCV6Eo6GoeUevQgkqIkpRCO0bbxaIJiSCSJDSilKuDK+kzjQBVhhKIxfwyNS5cnzUmTWNAxPqfA16aeHaFFpVadEJxBnlOPrY8aZKwykuuEDKSqnCn/vHlQ/947sEvf7/UVqD8whjJC6xtQ5/r6cZPs17cZRH/uNv/wAvbHedZRdOyj3slrUfA96nneSysu/SChp9y/bkAAAgAElEQVSqIhE4vfm2SgbAzEEc93RuDa0pYpWUEnnT36eDXz1zc3ACQ4TQnuXxWbFdsL2ptCqI9qJnzRmL6ACX6AVbsVVa2vK//uin+PBHXiGFP7Zh8lvVyP6qgVmPlhk+ysz66udv8O1fVWnuxL1G8z5+uagw7Dfspj3lxHvmTKDd2zA+S6cOJ6OII82JjVJPjbRxNGWyKiYFfEIHRTURUyM2ILbBvSLMhBaKCvN9GH2Lnc1oavBlwiAZe3CDRe8hKRNFScVp9woaCzIrHC+EFpondJkITSyfyFjsKLc7aKvRaJpwE/LYezWoOc0Vm4U0GBaJ0EbSTIq21uo3lmmgJPCx19wXMj92NvK3/vF9IpZXgVmPW+ODXHXb9UZE08C3fkXhm28Y4/OGTMImKTZUqkmfQEmfqOQpYbWRRudmVZI4UzFqu8mST7nZEkMq5M2W/DEYv2TktiVmXRg3iaHeIt9I6IOZsrlBlTM2vqHkjC0Tob5O62rUVPHabZ6+6HiFU6/ci+DBl1QsHeOaWOoDvAlNghQzFiPJ92gUZE0AFVHCKguyOlMDTSuuFZsSf/hDZyzVcYfdm1jLq+a0v73ArMvpocdLgouSqismV0234OnYMwdJCl90PPCdXwMMhuyVOKm9Hy0gkjFxkgbqvQTZ3QnrCaOWIVkPxDJC9tXfEvA5sRSnipMUZBnQqaF1JMqCHTmaFHMnecKLE71DFXrYqywhRRFtlBAsnEEThV5OVtfeQ6owJOVYtkSZmJqikyJeGQelnCg1hG2+wXx6yvzRQr5lbN43MtuCtoXYK14Mb4l7rZ1PwlMq9YEwzpn5maW3mCBRAv7tDxm+wg1BT3rBYfHA/Wrp11sBZh2qex6Vf/59I9/8/kqJhJn1CofV39AliL0jx700ryQnSQKx3igb0AypKof+Zd4z0gxFuHdqDJEYTnrg7wJeoRRw70QKlcTOjJIyyZ0j6f2MFus9kTKJuTn3zoThZuDRywPHPPQephrszxx3QTUzlsq+9Vi3qeBuuGtnOyK4ObN15oMRGMKAoynxUtvyF3/q9LHr5+cx7NXSLXj6vVEuw1MrdhEri+ScgXW5Cugx/XQP/qwi/KV//T0sLWgO4T1JO7XeSgGguuGhJO3loBpBElCchDJbPy4VJ7wD2lkFA2qLPqwuO2Wtfmge7Bal5J44PtJYC3eEarA7y4yjUZLQxGkBvXIsqAHVnSGUrH1vdu/xqO07LhKJtdrI+a7/+9Nv6Fq848Csw/hKAb71A1v+yL96hOna2GzuY0yXB5m7NbMscGaBN+N0cWpkKMpYgtYgzDqiuZYcegSShCIwe+8xdCgZbJYItb5prvXxvXlbkFXOa9bDO8h0PhIYAQVdBFAYjQghR6cbD7mPVJ12GRanjE61TB4NVVjL+leAA3JyahNK7qMxO+bffwhqwrGsjd1WAE0JfMmkAMsBxRFV/t6LC//t3737mvW43TmAQ3+tiwevfkD4RsEsJfEVzya+51tfIFLuIBEQklAVgkpagaawDnaqKzGcG3xSknXkdJw7Y0Rez7FTQn01fq01CL0oUdQ4zxiaOZTc2THRkXl1VqMBthfKMZgZKQLLSqJ/nq9U5UiBSMLNwVbGjziiid/7Z36WXYunDhxW2/dUYNdVA7MeZWY9KreB7/jVt1jme5R9omUjMeJn0Z3UMcjzFk8TsRO8OMNWGBJM1RlUcAmUii2JXNbh4upYHijaR4VrNFooxY+xcopJkFrC04atGjWGXvqngtSC78+wZ4PNu46I+yNtqjRdIBkUQdsxuhTabkd+ttHaFrGKmdP2I/LKFi+vkJ5r6BJ42WDVUc3M7FFTRDs7kNAOLHhi8BlPA5XgiMJcZxhLd5/aXeqmsHlF+OFp4O9/ciLionfD40YVX75/1W3X65UkhX/j1z7HV25eoqDUTxTyM0bKgWxhEiepcVI3nQlKIyUYS4EFBhrSNgxloOqEJGWDsNVCeTkY3nUDOQ5olbQ94obf4n6ZGB8k5Fbl+TuFdryhHAWt9eIJmrE8eIDenZh3txkz3LzRsNjw8jzwifkOp8+csS8LXjZ4tbXPzcHhg2S916WoQSxMdQRRXBvuhQmjeSVyIdqERuO/+cHCx+9PmDv7N7ieV81p//yAWQcO+AG8ugxidS5J/9sbyR7uXUiHtJQ1YP/8u69viVw13YKnY2Ydkq7PjYnv/tpj5MYZIo7OIzbMvbRFOngV1Uk5dzslCbcOHJznbi0QhbyWhBUveDhLFpJb76vlEPcLcXPpjJYGeR57Sc5QaWOQrYA0iExOGfcJUyhrQqbQEzaDBBtxRAem6liu5CQMomy1UGUhfCCNymi5T0h/YOiJYyXY3BmYp2DaL9z6ZQPIMbbskGYsbiCJ+9WpsU5YbwP6iYS8qzIfV45c1+mNMz/4yvP8qR/51FrWzyE3fZ7TvmZmvVouN4C/LN/zQSVpHySws05mEOmJ6LJPWKsMR53VUgpszDBN6+RA6z3X1j64tsafDgyimAvLroMPNjjzDNUEPLHJzsk4Ym0Pm4GUGqPCUYbqneih0ciSEE/cm43NCcyyJhVdaVbJWQkRqju7nXNzVJYQZg8mlNoCF71gDbmzr50Y4d4JIZ1UURCv/MBPFJz5iet41Xx6eLq9Uc+ryHgIqHoSYPXI+z/kv25T8L/8zvezXww8cBJmjVhZUhG9VYKxXjLre2hSJ694QBGYFkGTkvQw1EIYtbcAmWZlHNbqNGC/lgm2CjlB0d4/NRDm5kQkkgtnO2HIQYyGROr78hqvJqW3tomgiTJqJxjVOVFyMGZhtqDRWzf9e3/z9TO03plgVlL+zLff4ku/bMC8EQ7SEtP9YDpV9i2zkNg1mKJhzVisIKXT3sIE0dbZJQcFWL+erciNhYNIpzSLr320VpQ5+oQnj17SJ2v3RHeBqH1ahdha398bcg/0rEkSkObIoBQ9TJ7rJRCEcnYXtsdKOQ5IvV9SGgSzdVqdKq32elTMSLKWgFkHQFRgFMgWlNbLElvpZZGZDra49418seCP/r1TPnJnejKodWmjO2jKVS8zPGf/PaX0kbeZP/hb/hm+eOwOTSfiRO95JX1kqTq49OyeiJFMwKUDkrmDp6IJ8UomkUugqZe1tirU2hBVUOk6nHqds7sjBrn06y/SGXu9n0K/7SKEZ8T6NAsJIfbWWTMh+AKWLopNDyWlEUbScq4frg4o4YGFEgQ//LPGn/3bv4DFwuNzWF2e5BQ8Tq7axvfoNEN4BGSR4N2q/K6vCcqZUqeBlDJpXJioqAg1go0UpgewPfHe/0kCISHa2MZISzOaElET/v+z9+4x327pXdfnuq617vv3ew7vYZ9m9kynuwemrQVaGhBEzpQoQaFCYoQUNEaiiQb+0dZKjImGiByiJmJMsISggRiICn9oQgrEIBq1AQstCmhpSzvM3rP3u9/3fQ6/3+++11rX5R/X/bz7nZk90z3tODN9Oyt58jx5nud3Xvda6/pe30MsiBkeRq2ChCerSQsjVoRC94FsByq1jprTY4/6SgxD1sa4rRRpxMcKoSUNb2+FVStVVoSOP5qZXjOW4UQRdBhjHcSTPeNRoC8/4jRXWJ1StviKEPoo+Tp0JRbAhIgV6RUpjpaJIQtjmVBLYYSIc7qekOnEvXvn/MA/dH74racM/Wym6fPv8933r4JZd7fJdN7f96se8rHzx6zDUEtbYFknxjo4O+1oLz9FqnIPpaMMaYTMnBdhVqOM4KIE5ka4EfuZpXf2c+FB7LFr4MHLnKZbPvTwHhcHY/eaMT2tjOsDOhunhxVfG6fDgdurhXINvU9M94V5cs4XobAydObtWHm0DD4hj1jnCmGErEhvuV4xsdOBdUG0cojOrR2wXnFvW3NoZvWVtXh6SYyUWds682d/8MT/8Y9W1gh+JsFNL9re+KUDs7LhJxvP0lF2BNMMX/tK5SMPhWkKznew3AS7M6eoUsQYapxOTrjw5pPGo6eDT1zBzXqX8qubp8uX/xz7sxkv2tyCDwJm5ffA+A//yXOsnBA61An1YERjhGPGFi0PKMmIEUVNWUff/EIljVu6oDVgVaop4R2VmUYHE3oLRjdsN3KP3BrhuyZwApoilwtt85UJSaYBkuoLFcVx1AvzFOgAVad5RQxMnLk4xSe6pbv3VPbs4kDojjo6N1cQ08r9ds5t6SyPLjl/9Sm8cgGLc1pPuDi1O9cy6GMQPtH6yu5TE/5hQfSU8ki2tMIOf/KHz/mbn7zCec8W9RlT6wWbX59vbn0uIOv91AXPs7MC5Rc/VH7HN4OFYxRW7zgJ8hjCwwKHK6FeBB5Cl8FeE0BoffNiIx+nIiyRkkIV2fyMshZo14MFRc8HOyt0B1+EWKGW4NQBCy4vB5cmrCFogcJgDLAonE4w74O15LP3MIo4RxSLoInQTs79qrQIrnomesZQjp6NghjOZS08Pm0Ndt2euwkxnMWC//JvgYTzmePurfQX7EwPHwAs3Xy7lefYV8/d4gsBtL7/d3yEh3tN4L3nMhaRWjINGB50H0RUemx8uM12qI2UZ5tCzSwnakmpc2dszFFhWQqljPesmjbi0PAEs6Y60hQ+0k/8NDbaYOQLc4fTUbl3MSgmLENYIpg0GWW3I1ljuCESLKtwLkGZBkfP0IKK8Kd++Cl/+63PDYy+3/ige2P5gu71/8chkqDAw/uNw81EuOJdkQY318rNqty2oMuKKJya0nq+qXIalBrsZid6ygsVpUsegswCH7EtKmnmtzhM2yalpD5+wHtm8BFMysbAEborKs7OYBLDt/hLj6Do5oU1GWPkHUXNqb56Guzt7ht2hLNu2AymQSnGEFg88O6kSB/6EJbmjNWYZ6G2QRnCgtMnYbWkkOLJ7lgiMBwvUIEa8H3fcR/d3+N7/qcr3rw9fXYx+Nz15yTA8aVN+vvSjw8KZIUIhvB7f83X88s/GoQ2VEaa3Uma2hHJfFJLWu5wRUWYTBkS0CI/iGgUVVwCM57FooYnoh0EVhL4kjISmI2UmYmlaWOSFnOzCYEwTV8uBzVAHfHNXyYGFKX3TZbKoEghPB/TE4nFIr2WEoDLuerDU4Ir+W792m8o/NqPvsH//o+CP/nXf5T2nDT1qyPH+zGynv/dHMIbZwV72ihU+lngcoDuTFMlhmNmyIDpPGPGRRQLQaXDKBylUT0Q77QeWAUIanSiNWy6xOOYBX8Drx3o0Du11JS8NkXKgYnK+nTCHlb0LPA2M968YX5wxu3VLfcvO2M0Jr2gj0F54LTrjsyOxwrzBepBPGwsV43+xDh7lWfJcZMrJ1ZUTmB7SiSDFQ0i5uwaI2kqP1VEV2SjZ4t7PueLwjoav+FrGz/ydsGiMZD3PSDcff9KaMp8JYwEveEjO+G1+SlLlGcUcQ1Hz47szxXRa+onL2HXefAguBEDq+Ars+w4k04xYwwooswm7Ps5U2kcrXFfK0/vVS5Y+dCHX+KVeUeho2WGV2C8vUc/6uyLcPvOQJ9ecC2d/pIjujCHck9hbhMeO05xRGzGdp1ZL9JUVDqxGH7onMXEtDeCwjEqcTqBz4jdwVIVXYNVj2gIZQ3UAukCh0KUwb/wi42/8ZYwe9B+Ft5ZXx0//Xj+bC8KH9o53/Cq8dEPC8WSIVwNVBpigXSlj0DPjfF0UO9FNnEYlJ0j4bx8JsTXTHSg9YFU6KvyE5+Ev/OJE1erbma3n8nm+ur4ShtKstBV4Be8ZCjXOVFwqneWPogyU7STseJODU2Z8rwlesmdf+Ld8XY7nbggJfCtWd17AwmiJ4vea9AjA3XwQFpL8OoeyNOCXJ1j04HYZypcSAIJd2FQOhSr6bk7AeIJrBGdiqNtwstIJrK2DO8ZldVXOHb29Yw4CrYz9otj954St8Hu1cHJBOOCiXdZRKgIYYbqSu3JqYg4JKMilDGCYkornd/zbQv/4B3lUc+C906W+9UT27YWvc8RQZ77acL5nR+H7kpY+i5LbAbvavTWWYtiBFNAk45ISZap5947wpGAWYzhmTAtlvWEpWkNsXbuPVDEYRVN4HILhdJLYZb0efvkI2FtlV5G1iQe7EphiUFryoPdILZmZhOFEFyF4obrQMMp58rpNihVUE3LHSlQhgHBUOPS4GoWpEkCuNFRN9atLrRnAtbnWPEfUInxoo3nvbHugKw84qa88HkP1+fH+zG2AP6T3/I6D/d5HTdPKxkfmURYRCEySVWk4jIYLZhNEY0trC7APeuFkWoy256LoikLHLCfB82TyIPknBGBoopWGE0oNWvXFkAEpuCDfF0KZxfBzW3hrDpjGpsaJ71QBWEnBsU5DTifAm9GJ0P39iqsEfzuX3SP733rZ5du+LnGVwwzq6gBWZz/xX/5PqfFWG+M2ybcNKE5jFCaD1qSm4CU66GBERDKcrTcYTb51BJJxatTMIlxGs7SEmyw4pzPg4ays0wiWBUYeRtIenOmJ/ozLyqzbfd0qFNOjojshmsVrARlQAyQVdAJMGEGzg/Ghx8I9cLRWrCSTJxBIrBXt847t+ktss4tDWt7Ik+G0EZePHdJF6JB6YE6rENYV5gnYbZgJ7k4NYI/9Ddu+cFP3SKbtPH58fzC9KIxZ+A9lP3zgXUKIPCv/cZv5Je9VOnewIN65oyNYizkecsFxLeDFJv0b1vOqirhTjsMbDasCGY9hREC2tlkg4pqUAqpW0eIPpKNaIpodoNk60iuLcEsLRvwO3TbKNMzZkh6dEVkIEGcBHaORfpjmWsuwBZIDdoKREasNk3yasFoDiIGm17bl0CmBPF0DH7ypPw7f+7vI5lL9wV/Fi/a/FLV+EyGUI6UD3/3xy/4sN7QWqFIR3RKmfMyKHNe+9oK7TiwC4AKsjJEtpQZQSnZGSzCkBR/KhnXLZKH7fQAlQSNDKqe4/2wHfKzw9NvlbJXYj8hdkR0xxBlsh3LTzWqLcwfKizrTL9qOC/j934KPYE+DNqizGeOc29z1Db8HYX7Twg3WGaGXDNEkRisCJMLEpUYwRKO1pQqVj3D20qrA+ICCcWvZ+TiMREFyoKEIPNL/Ikf+hRrz+bB55Jzws9vmaEk+QVx4/f/+nu8zhGvLRstFBzHLPewXamIBdYbtlTaU6G+Guii+OpYhfMPpZfW6MGDesZ9mTmbKvfrHusT+vA+c4Xp0eDypRnOdrAW2HX8Uw3/kFPeqcR1Q17d0a1zvbzF9ZuNw+Mb7vUdLGOTCxaW847fGxx2xtONrageHPrCdazUcpFmueacuuPhaC8spREti1VcGLES3XBvUDvKnh6N1QvuA5Ejf/oHZ37kk7fZ/f4CxovGnvliM7NS+idMwHd+645yfmJnQluDUpSiAQPWo7M/12zKBJwVZ/GSDHMZRAturwPtQp2dBw8sj1vqdKl5Dhw9m4E6ESPT7ESV3juHHhxuJ37yXfi/P7X8nOBsvWhzC3469kwysn7VR3d819cf8DmIJtRirFbQm4B7KxEgQ5hUwB2N4KRCKRlHv9OZ3pbtTJSsvzI7vmyyLJw4CpwJ0uDWDamdpglMTZG2IV0cO1XGlFJrJVnIdls4XTaCzoRCybP4pIYOmPtIOeOi9Cl9a7wkX1BEmULZaaPLYK0zlzVYu2L3K3tmeg/48YHHU84+fk6bKutt48SKjYnonp6so3DqC/FU0JcGtzIoFsxDuCEbsL0Fqs4f/p+Vf/pbL/m2DxX+vb/0iHdWp79g8+sLZWY9EzS/LwgjmBT+wC9XdrIyIRxdGZFn4b52YCCTMQvEbTCLszsTqlSO4awEVY02BnU7u2uMzddxg1lVOZyc/R6moZk6WZJAsYbj3dFq1OjMpXDTlKfvBuf3A53S62jyTJXrJ+FyTiH2EoOnI9Ci2fCOYFimoqvCHBPrurIWYemBFeP2GIQEZwFN03uurUEzAzRDyyL9Rx7bnv/mb91yx4D4zPfvRTvTw2fPr6z1thbNT7eh3IWqfQ42FsB//7s+kmEP4fQx6CNTCocnScLdKDaYtlT7Y8DahckCE6e5oBuLzkRS7ixwWNMHNXAKSlgectxS9UM4LjDc2NtGuBkp248N+e4CZplLvvatxxCJwcyaJgHLqvQlyTO7i0jQqwSHIZyOuQZPUTi0Tt0IGkkSckbA93wBcsOfczLDUpTXd4X/4nddcHhitG4cFmEBTp7YVAsjEipEJUGdaCUZLiU4s0w/cYQisbGctoUmkt2yhKBbzIBE6kJbC1qDh+cJSZhJ0vrECBN8gGtgd1T5OzNvU+bYYuE3eY3JIFbHfcIKzGdGrc58a9yvsJdAj8GMINW5fE2Re0Z44fD2Sj8p417lrdoZdNoa9BUgi1tGTnY0Te6bB6wwltRmzzu40GTXJEFIEBf2qkQb/M6/8qlnksrPHsqI/sIuTJ8LzFKdOKuNP/TbvoHZ0lAxtq6fKSCD0XJV2Z1tN4pNp65p3AhJr4xwpEG4olOyo9Q6aEU8ntHVAazmYT4d/LKQZDPyi3CiBmoFH5223DG0BrUWBqAtOy11yo0sgN4S4I01UX2ZQD0p1GMEdVKcjEvddJeZ6oPC2BJx0uUPY4bmxJQLYu5ZgnX4r3/wMX/5775F/wLXjxdt4/tcaYY1V2/+jW8q+Gop54uKlWBYym2mDi0KtnZaLVjJD89KRaIz1FK6LCA26AN2BRBoaogMJtlMPCUQL1iJLcK8Q9/Ty0qcHLvdoQ92dLlG1omYc156CSZWYr9H36rIjdC+9paiE+wLZbfn5v+9wj66R7Uxbiq2b4xWkHbi9pMdOxfk0ojTDsaCiNLGgczJqblpH0+s1agOUrb5pTNrW9OvaTnn5vbI5ctC7zPKIcGHufCov8Kf/ztvMvwOfXiPpfUZiYYv1NyCD0J3f+/nIoV//Re8xBuXV4x7eTD2eSFOQhShhuDTzN6gDKeoI1Y5vrtydrpAXjlQJ2M8Cco4w2g8vOe88vAhgvDSVJG5cIzCR6Zz5r1hZY//FOjXVaIns5Q3G3xkhk8sME/4+QG9ck5vrtweYExJiy8YxeH2cMXtcA6+0My4khP91jmdjjTtLHvDLhbKvYKcTajc57DcYkU4uSMbC5VhhDSaN4jKaCtqlS4rDaX3Eyozwwd//K913nrcuPYPzuB50ebXFxfMUj52T/mlHx/J9PWNZVMs/R49WQtaDPFgHGG3gzJVRPtmcQCTwXFRrA3qXFB1fJyxHI5E6whQHhamWYAp07d6p7iwdme96SxVWG6CaZ/g2s1i/ND/M3hnfZbZ/MV72V+k8aLNLfjc80s2su7Ls/I9v6wi+4Z6RVZYp4ViQuuCHif83ooQ7AKEDD9KKY088wldxNl5NoR7wIzTN+VFGcHJBHoyTaQEMoJume61GR0RY2O5E1gB68laAEEPNb1ptWFdCU0bAF/g/qXA3NNbq3QWkvFiCvtaM33RG40MadkpdDWYnMv5HjqM06dW5PFC+bojWh5wszZGNJDK6I3iA8RpB0OedurLwXHbA4U8s916FolShVgGay2YF65c+d6/dMDHi3Wu/1xz63MBWc//+jNv6VT+3V8B83B2pkwiDHdu26CbIeroyMTfEMeGM24r+72zq8oaTotgX9KYnQiKGXKXDRQph269U6cCG/DAksFQqweHkWlxtWZq9azKccDhAKc2ePggaw3bzOj1WFBZM72wCkcVhg+qGkM3c3lP+5oy4MnNoJxVZDgLwtLyjbknwa1CdOP20GFOW5vuOcfDk1n2n/+treX+Pu/6i3amh0+fX8+ArOdrneeox8HWTPzM/3nu9s/f7Af+xTc4tMYaEO70EfkVznDbWDAg4uxRGpt6K1I+6PGe3Y2StYYhmMFpCZg8G9uRDFQCwtOuxoBlCMUUNol2i9x7zwyuTgmMz5ZcvE4g3UCNlk5eedvI5uHalesD3L8MThuhxsjmVTgsC+zmYEEwd4RgbcH3/8g1f/ed9bPeq/cbP+fArD/ynZd8yzdU/FB59EQ4DaFtF9TRkzReE1jkuDguRi2w19RphgQNfyZXMdE00w7BGGnCJ4lYhiSCPlven4ezM6P3wuHo7GpnmpL1lPul4JKMK0b6beXESrbCcUknynkqTHth3gliDSMXnjaCD63CA4yyV/pN8OGv3eGjcXurtOsT85kyvVTpk7O6c1iE6wgOfTDGBmI5RMv43ZAtjt6FfuuIBNMEiHCucddAorlwKcoSziTBYRR+7195xKGnPOOOJvnzlZnlVP7w7/h6Xp36RntXXBT3hppSSgJQEWNblPLrTppX1BJ4ypmCj0g2XgUpztioqKUk0i1bephslPVSC2H+rHODODKc0ZViwhDHe2Q4QeQiJVPe1rriJ6GUwHUgAj4U3TjV46qg5yAxUpq2dSO7CyPuaLEQMYhIANQjH1tNKJJsSXq+9oWBUJLNFY6MiT/4F/8eP/rk9IHLgxdtfj0PZt2tpalLV/6VbzznXG4y/riXTGSTlbVNCTaJMUmnPZ6pLwfreqJsTFCNSkyeQOTasRrIZtAoYsnEE6dKQbxvTridu5CAOu9Z+6BqZ72BOHNKFbwD60y51wg3ukAdA5srSwt292D8qDB2jfJhQ6d7nD5xQ+wbej5hly8Tx0eoDuL2Pu3GOR2v2b86ofMZhydX0FfMJnpAeGGSwrE10JZMQVe0djTO6H4ixsx6s6CXA61KH4Ju/jqjKDvr/G+fuuR/+YlH7x0a3mf8fGNmiSSYdfcPv/nj53znGwf2vRAnGMd9pqyK0f0GmwrTFJQSyNlMlIVZMgGn1j0awZDGmSpT2XHmlYePlZc+Kng956WiPGkLvT7gI6+es+MMPwRyEvyjgj0xxvlAf3JFXp+IHwv4GiGuV/SdwZiM04cKh3aL3h45XyeMie5Hlj647o3unXUetFF5XJQnpyPt0DndOtEKqgcuPrqyiKPTzJDCaIrQ8VjxPhNyxbCZsTZEJlbpyVoQp8mKIPQ454/9D0c+efrg+UoSm3oAACAASURBVIYvGuDwxQGzjIf74Nd9i6MiLKJMTYgysqird40/y3RfUySEQuBrNuLkjJR7oWgJtExYzTVACTqGKqg7psLhEJxOjfNLZaqKa8ro12UwWoJVhyPIlM2o1tOWoQn8vZ8o/IPHz7Kkf/Yv/4s0XrS5BZ8HzNq+//u/6RVKu0bqgh0MZsF1MJc8u493wR9mQT1XpQxhlcG0GV57T9Cgx8B885bJQwwFxbpSpNBKQ5bBacowJaQg0pOx3pQRAZZzsptkWmIIczhrOLITipMNR4dastloppxJ59xhNSNK4ZjlH5MkiGBz55KZk3ZA0OmSfrxmPi/s9ZxZ9yxPFtrbjRorfHyid+PaF4qu9Ab0AV2Rqx34ielecKOClBPRzggRrn3N91VhiYEBu9izPl74Mz+x56/95NULNb++EDDrbtzd4DP/45e8NvFd35gpmdOWFK/hrCo0/JmdTLUMUSoBGpXTybl/PxmCnUADPAS191RGuskORYyldWrZfJvVwAc7MTyEJzfOdJ7A5Jlk4FgToeC8865ydqHcu8xmuaKst8Z+XtPNRJUokazBUI5jEFKSHajKujbCZg63nd1OuVk7qhXxThXjtg8YQnMDVmwyblqeLyZxhgff/8PC0d9/vXzRzvTw2U1qnrNYeV5W+GmTaqP/Ce9vh4EoP/DdH6W5c4wE5WUEqw/GGIRUBr6FfCm1DGzzKgs1iGAZjm1EC8+nRd2Ar0nSt63OmwXS5vctEUmu0Ngsl5I/cRqBWfokmyqnnnVgDNjNQgxYFqXsItPYN6lsH2kRkLC98OREJmQLnBbYnTnhG0i2GDJ1Ju7wl2TdLwP+wAdkZ/2cA7P+2+9+mRiF4xq8czROXenRE4nEYEDr2c3DSdmEJKAUnrr54xCKgESiyB75QbpkUeiRH9rYJqETVJRBgl8Ad7Zu7aQcu6OWdEGJQNTY7aHI4HhIQGA+g/3O2BXFykBCgUGPwDSoYtw/Kg/vF/Znzk6U0xV87TcXTk+Fnlxo1kPh9M7KGCfiHN69GZy8cuzO7Ugwz33QXUDyFx4QIdTi1FlRgtlgDs8FLoJJjUPP+M5wZzbh2IX/6u+f+B9/7PqzaJAv8sL0/EZnCGLBf/Tbv5WX64kRW7qg5QX6LC5Vk9En6nn7cFSNUNmMSSNXlEgzxbEKREX3jTvHUjXf0gJ1e/QtMjpS36yanZsxKTYJ9JXeJY26LectvsFoouhsIIIuA++ec1rY5oU901B7V/wgyJmnCbIVhvuW8qkkEy8prlJHGngH9JavUTQXPm9pSh6mqKRxpIdnlDWFv/L3jvzp//UnsHD+xL/0rdx243v/zP/FgZ4syOfGiza/npcZPvudBL/61Ut++eU1I4zQBHWUhneYZsNF6N44W3cczdG6Ylqwkf4M6fy/dV9OQlTBtBCsgGLe6SWQoUityChoNEJg2g+IiRYr4+hIn5h2nTYXcGUcHT3r2HyGjoBJiWXgMbBquO05izMOj66w/YHmFb13zvHxLfWiUWRH7w0ZDV/3HK6U+aJTP9IZtxfEcs3qUMQIDWydOJUF8YkxFgrg3sHPiCmIo9IOC/pgxjmhzCnVjSMuZaPYX/Cf/Y13GS7bGv3egUE3Wv/Pl4LwDji9Y2UpaUz8R39dcBDjrDh7dlzbkYJxEXCc4XIUWhhDgtog1sqlD9Zzp47BOk/UMricLziflIuyo9xOXAyoU2HWicfrNS8/uOSlr3sZLRkgIZ9QeM3w64ZOSrxtyL2A5vQLwX7sAJPhH1lhdA6r49crxVZUL+gOJ22swxhXwugrB3/KtQWPW6dfFLQWpCptNZZ3T7QrZ9wCLz1ifnVGY8YjZbfuK+7KEoM+Mp+YmJCxICVNU1fvRNzj3/oLb37gz+JFm18/czBLMOClXeFX/0JndBJs9yzGctuL7aCdzRuVjaUclgl1Zoh1YoCv6Vlq54XujtmMj4FpSrXKNIMPimbzsUcjXGgnpR2OzBcpr2lhxMnZWadQGJJd5sPaWQk6QvSgiXGzCn/t745ktj/fZv8yjRdtbsH7SHXYiOiaa9Z/8BvAQohRqEMY+040x6c0Xi+PKnYfsLyuVRKkinBGRLauhTRhN2P0QZeMm6+i1JYP5uKMvtlChLOKUsYmtwkj1EEyXj6iU7fGIVVRoN8m86EUR6plgyCpE+xxLnWm0VjFWEtaRewwZitUMYSFrkKUDDXQAjMTtU6YQyw7Dm8+Qr0h9xt6seM07WAxNJb0XnJlPG6sDPQSfHKsFYJICWN0Igq9JIN+tIlxWoi1c5yV7/nLLz4za2szf8H39X2/ooCkmX8daV1cTPHRkWLcujOroT6wO+PvCNYVLveGE/SRIU6B4TE2ayJN5tRmSXJanToL6gGSdad2MAdRY1EHBhM8o1w7adL99Cp46UGh1GwSXL0tPHgJhgSTZxN8zIFqoQsMz/N8OzldEjxYr2F3bgkUe4JwDpxGsravPbDuWFVagJB15Kk7f/2dyv/5j048DwXerZwv2pke8lx/N58+rUZ+DrR6NrY/fy6TdxHhfCr8+X/+wxsTK32l7sLfSlJsWHruUUQCWlMRqgtjU/94SKbQbw86RtrfKDDJBqaStztF+gr6phxzd4qlwXthSx/c0g5VNyxBMpBOAXVhZfMDF7ZgA2EduQdPZauXETyUq2s4PxfWDmXKOefNkAbTLpmysT2nTvpM71T4N3/gpwe0fs6BWX/mn/sQi1tSKz04ebJcwNB1MM2FWVsWgZEI5CTBZMncwtlkNxkF2SK1xe4pG1MSmdSAzTiKTiKUtpVHpkol4y/tjn5HAmCJrgdxdE6rcnZZmScnSiBFsCL4OqhAnJzwipwP6gwPz4wPTcqEsEOZK7z8mrF/feLRkzP2hyDmG67f6Tx5FDSCk8CpOddLLkKrDMY+zU1Vc2KUkRNwPSl+1Qmci4tgMqOL0ejU7fW2ngfQRTe2B0IJ+Ff/6mOOfTxLZBgvMLvhDsx6sK/8od/6sUzo2OjrSYwSopAb25ZWSAThjoomL2kDtd6TOOVCM5lgZnj6XiOa86gUiDBiskzC7JKHdJJOPHqmQ0BsxrVptudbFG9EzmEz5S5qNXDKEMSUMZIthY6NuSOEBuoKdPpN+l+ZQqgiNoii6UUhmQTl7s/AGHcYbHQPCUIUW2CU2JhrRlimZuQSsz1+ZJoiWzegr0oP5ff9uR/OxXl771+0jU9Vn1tAg10o3/mRC77lcoFYiTbRdFDUUE9ut8aEzI321sS4n9IakU7MyjQ6K06hIi6oQWhLA3dNdkkA82SMLrhsSaqSG6ONglaHVjMlsyn6wAh3ZBoQyRKL2oEC1hij4LJiBbTs2dUdy2HF94HJGe0TT9i9fo/FT4gp9B3TvtMJOA2m/UMe/e3HdGvc/7otincdyHAokZ5gmzkkS0NVKd1oOlhciEcPqC9/CmRHN0XD6UNAkvXocqLIzNW44M/+nbdp4neT7713/uehzFAl03QnU773V87YlB4zVpwiMIVALQiO6kA0Y1GVhulMVZgZ6NizK8FaKhwXdjbzQM44Lxe8ZkKdC/VktNLwgIdxRn2lwst7ggI/3pBfOMOPB+4L8uEJuSn4WUE/cYAHFfQAJ2gzPB639Mcn4gomdYYo4+zE2E30FhSbeBrCW+2aLsZ6bEy3jZUj5Z5j8xnH1qilcXucWH+qcLJbLj9s6DzRNlk1caCtsPSea2V3xBzvhdZOqAt/86f2/OkfeucDfRYv2vz6GYFZonzdA+U73hi5h5FJ0VNNA/fuSaM323wg3dlXwapACGM4OglVsplUtFBFGK3hI0koxYCa/pBTqdk8Cie0YqNz8k4JSeZnG4iDLMH5zeDbvn7H5T64sJnlujPdV9CKj8ESyo8fBz/+pPHO2lg9WA7Bj76740c+efyywlkv2tyCzz2/TJU/8KsK59HR3eZ3a8bqg7oxxofCvhlxDMa97VzenUkyGEc1zzDd00v0tvcsMB2KC+Zb43ALfPKe/rcHz3XQY6QU1qCI4yLUcBgCM5s1iaAtGLtkwWciLNQu9CkL1QsGe89AqFNJZteuwX42wpVJ4KCDogVVY6+DWndE7UjLhqYMRW4n5HBCQ7GPBOvuPofjDZNm0Rg9ePz2iqhS7y8UN5oIbp3myerwZWBT4FHwJ3A7dRaB6M73/uUXa36939z6QgOsAuVXfKTwG79mYAiTwjryXD+JMJnhvVFEU+liWTN5QFeoc9CeDM7PFDOnNaWrskqedvsYqMGEsqzObr+Bpw4xBqVs69ISvHquHGRgYcyZ70TQibBnjJZ3PxVYbbz2kvDmW3DvZbCS+7uPwTQVXGCJTCafq3BzGoyRUsnjQXi4hzXgZh28UpTHDqeAtYGhzCqcOgwNdpYJicd1oDrxH//QMbGcTcnzQoNZsrXhN/Bqcyb69J7HZ/RAPkudkT/wF37P6xs5Ia1CxlZ3QqZfpvLmvTtqIzi3NPO3ZzUmdElvZuiopK3McCjqVIUaiUP0HiyiRHRclCIwRrKUVe4eF5qzqcwSRyAEtWDtQYRR8KxjR9YZd01kD0Ml1TojMojs+lo4O3NKEYYOjqNQBvgp5f5tBOsohDbWTd09j/R3/rf/6uc/f33QvVF/+n/50oynx8rVMTguMHpFXVEKhUC0MvpgaYXDKViPSl+FtQU3S6YRpk5Yaa54KBs+gAJ7NcqGXAI4CTxMqgwsJ40IIs6KgOViIpG3MQLFuX4MK4VXXi1cnA8u5mCPUnoQ7w7KFbSjwVywe2nePUZwWCJlWQ5iAbNzezVYrxZe+9ANl2+szPM51DPOXlfqWVDFMXV0dvplRyvUa0OPToyBk35iA9iXjp8HZVaun8LhOJCxUjqsPdCunKkwmfAA5R5CdWcR+OO/8SGvX84bcPPl+/y/VGOnwh/7Z9+gRHqgvScb3ORdm9+BwjP9c/CeLjrIhc0smVkRG5MmZ2EufOSFvpuMYlsUKhBWKGd3oH4QZWA1k3p8WxxMQdWplc08XiklpX356MnEkn2AOqUqViNZPSoUTTRfJagizOeOUamTUqpT1KCXNFPWQS2SiYkIoiA157wiRBO0p0y2SqEkbY2ebZuNDksy0ppjkuGoIkKdg/08+OPf/e3b/b/Y424z2hX4pvMDPhrhla4wxUyMFfE9g8pQ4fRkz7wzpp2ANNDB6J3hRh2VsgGKAinBEcF0Ap8wLWhTahXqbLglKJmGk047KF4H06Ugu45ox0oguiOsQC14OCEd4xxVp5SaElZfOPZrRmnUatCfYtPM7VuPoAt+WKn3TkSp2Lnhu8LRbjn/+D3O2yXHN7PxUDSQukNixnTPZIPie5j2yDRzHAIF5n0hfMX2DxAtiAoStkWON5AV0wnVwSvzU964P6fk4zO2t89nDP8ijPeSG9/78kgq+ff9mkt29ZhS4qmjU8qgW4FB37w7jL0ae1eKZDLvq7LjPO6zn42D9JQ5633YKb6H890188PCfKnI687x3qDvZ1AjLs/hUx2eDqQN4scMVJD7E3KbB3ZuV+IK5OwA+wnuCVZWpt3MxXyBzJWxU/oE19fK1eMnPHl8YG234CdKMWQKynmnfs0F5dWXGKd7xNuCdGcdIKrMbxh1t6O9OXM6Pt7OiQplopY956JM1mDzkzPrTOqUWvmlX3fFt7+++/J9sD8nhpCljvJbvt34JW90kKBa4OpMATpSaj+ZMM2yNQGDeadQcp+1kn5Eu6IUA5NMBnNvaMm973yn1AKxOOu109ZBX9aUb4yGSwb5qGnudWaczcpr5/CLvnHP/gTlZrDT4JWHFbtyXq6Fswl2xwMfPzN+5WvKt710yWWH/d745q9Z+K5fVvnFH/uKOQ6/kEOAivJdH7/HrqyMndBDGAGMQS3ZKLOiVJE0LX4glJuaDOIarJqpbcMGXTojnO5ZRGGSdg6al38XZ7E0MV7FtyaRoj2QpiADHYMYCbKOofRaEoztAUMoUplICWSeBwOZHBtQjgJDcalUL5ytE/ooaB3iNuDaOB0adj0ozaA7rptyo0/0VZFVUTHqPr1zRhHa4xNzvaXOnTWcHkETmOqMhTM2Jr+YkY6XBWeg9Rxpgl0HdtkRlOmR8PLjs8//wfw8HSLCb/raZ5IHRuT1rxKMBr13IpKVIgbzVgtW8wznAUY31pPSRgF8YxAqZkYtKfVTU/ZzSduOjcU/1fQKLLVgUzDEmQVc8zOPCFYH3wzdwzuX94VYCtdXhmgGjkVEqkXMqCShf4xUXIwOc620nooAHYGWrBm1FoYBJpjo5u27ySJnTwN7DZSOKFzQkDvbkTsmEp/VU3xhRk6J92rizwJKPw+Z9w7IElX+6D/1MtFlY1bB6kHbEgLXkaQa02RmhaRc8KJkwrz2ZN8PHNNktHr4M0AqvdnYakylu9GdBFPFKWbPwHDZ6sF85ASvDNLcXTY22EbyUYFagtFJgoUq88SmXnOEDkSyrTwQCYpIbvOa5KFUByWGso5kdU11UItyXowzUQbKyhevNvzK2b1LEEWwGaQOdmVQ183YrDRKDbQ6U1GmubM7G0yzsCuZ2FdHIEs67NN9e4sE02SqTEVQywlZI6mks8GupNQLFYoU1ARxTaNiNNldI7i+hov7xv372ekpCr4E49jxK/CdEvcN2fVkuzQnPLWrPZwlAt87owyW7vQuHI6dm7ca7emJzjX7h8f0M5mEpcNyJSzXTmvCEnAqMF8YFhN2G+gC0QerCtMc2D4Y943HJ+PtRyDrwARuCa7dOfjgFMEQBTHOQqni/JF/4oLf/PUP3lusXtDxDQ/P+E9/+xtAxzTNM+/8pSIG7oPwRMqfj9WVknNI8GT6eWTyxOhMlsi3ZpQTpRpW0nMq1AmUgjDWjsoKbUFGaqVHjzRZLHng7xq4aa4wI2AERZVqyceqJhRLfDx6ZEGxAysjJa6STELfgFiRVHZPZwM5DPZqVBWmyTELbBTGmomIEWnYp5GpnipCqYn0V2CUjteRckvRNB5UwyyBMLUNfBOh1GAqnhHGxfm21+qX8VP/0g2j8Ns/ckmXThvJWJABMToVw/2EqDF3YbrX8TIofZNKq1E9KaZCsC4ZzzsG+KiEZ0S3W7KzhqXsePTGaI5qgWP+vZw79J6eIj2ZoglCnrb7X+9afww/gnQ0FB2W3nkNZGRXvM4KDxrTOMNYmWql3xzpeoN7o+6F4rfw0on5W15jXs8Z7cT+7IxCp5gjZaU4FF0xbfjTmXJfGKVSolPCQRYokHBoZ64dNcUsu4CYc7jt/DNvlKQ+bhDzVwKz+EsynnudGvlVgX/stQn3E6PmYXVSQ8miqbgxl402LrBGcKrBkMI5hQfdOJPGvDof6w/5mlbZzZ29Fx7OhalecmgH4voW/4crPBJqMywGvJVJRzLviVfPkZeFsIEshQzDUOTtQP7xHVHPkJrFKGVHaHDcO7Y7gQbzrrC7V2k85HRynraF3pyLGNQlgwDWnkKx/hD8pRlODylPZ0o0Ihq7VxRmZ/2pHf3xO4QcGaeC6w2mFQF2YUzROF1D8x1DnLDC7/6VZ59mpP/V8enDCF6/gN/2HcEkI1OPhjFGxoNHgT6SjSAbkzhToGFk1ji1bmxyUQrJxlHPyGchwXvTZN1ggs355Q5jdaI5bTSsdcycnQmzCvsJ7tP5pircvzlxcWjY40F88pp4c+FMnF3pvHTbePhgx8VonMfKx8rCN+NcimMLxKHxjQ+c3/ptU3oc/gzkSl8dP/3Yl8J3fOyaytY4NE+ZuEr6xowstgyhWQIN4+JEv1JKU3TapC0eWyz8Bj54bPVd0IBhnltcLwxV3DZTbBVsDOZdeg856Us0oYiB9MbatxAeDVZtrG3A2jFJSY+HZENgnybwcd23XXugDwybjHZmjItAzxQ7t6wFDs647tw+XRjHJZOrp8GuGvfPdkzzRXquHs+JEwgVKcqg4gheC4hSxYhp8/qKwazOjh1nvcOpojP0R8HZY2OyPfXhgy/vh/4lGD+T6/W7v30CnN0mmYoNIBDPmIgeKYfqAJuKIeXMefZoyyCkc7sMDldBW3M+VhtErBQjWafDEfFn+d820uBbBUQbU5GUZWv6bQmektSSrkRIEiPO9sFrrxQeH6E1A0k57FwqFVK+DexLhoZ5h50MzveFeZ4zNEESKJkITq6UEHaWdUZ4PocRji6GhtBdmQzWEtiWpP1p7/QLfPx6/mx5F1Dy3h+37/L+/y8i/He/+3W+4ZWJ1TvDE8ga4SCDdYyt/tzAH0lJoIrieAL5JdVpJYSQrA1UIzEKkmlqkj7KIyKRzE254b5Z7Tm4pAwfnCIpa7TIMIG7c3RR3cCtJES4O/MORs/aeFlhGfmCzRTVrC1VLUE/C26PSm9BeF4HiG/ezFAlWa1GECNYOxyG4wz+4G945YvyeX3FgFlrQBN4+8YzvU8D2Q+0dMSELvk/nfEM3Vw98M0vSAz2e2faD3aTUABbeXaRhwdV82cvkrch0PDNnBu6j/TmWpynR6AIIcp6gt1UuLzMzk+dhViE9SA0lDgP1J11bfQuaegW8eyAtyyDt46dq2PjNIImwSrOsiqnQ+fJ9crV7cLtoXFanCFBL87N2eBgOZmCgc3O7e2A2okzR/eKdaP2SI8khLMa3H8Z7r9SePtQeeedQBdnFmdPmse/64NGcB2DU6Sp5e/5psLv//YXe9P7vl//OhJ5EOqdZBXlCRzY4kNVnsn17Lk4aMRB86L3EfgQROqdV09KAAforuNmHFU4eB44xmhUHUz/H3vvEmtZkp3nfWutiL33OffezKzMrKquqma3iG6x+ZBEQaIoWQYF0YAGsmXIsg3oBdqAIEPw0JA9MPyADdljG/DcE88sygI8MCd+jayBDVEyDNp6WJS6m91dXZWVj/s4Z++IWMuDtW92k6ZEk1R3lZOMQiGzbuY9dc/ZsXdErPX/339W4mxYb1l5DzAXZATRHSnCNimbKkMVdSg4sKVykF31ZELRkmkSdwFroV0LcQtxF3BO2H8pzjQrVCfUGC0QHWnzsrR92STJXatQ51xA5yWZTSKBWUfUME+5NKZZWLb8dxYokQmgEQMtab3dULzCv/lf/QJ/+1v9n3xh/n8+Xifqaedtu2baLtCe3VuRTtRG1wq1oC/PjGWl+B7/3ZPXMXfZC157gWYCpCM2Evpug9jSpii70i2tomlX9Wsnqr+2jkZRjE6vgS0zVQpV81kR+0ETdqupB0QlvIAfUM0EFGmDdluZZqV8cEl5XgnplHrF0pPnsN7eofURMhx/8DUufvg94sPg9nwiiuGjMEZK71Un5Nrh4pZptznrQWEmO0OqyDSlDZbCGCsSKcUngDZR5sFPvl+yAcGbr8gCuOeAyP5vaBabReFP/+jAyTABMMRTsWIi+cyKGRBUFrwN6gpX28L5bDzTLTfRdeJmvuOdC+V36ZHPzQeMwe31C9aPhefXC/LeFfbIENuQ44L0M4wCt2c4b/Bsw68MXwYcJzh3+N0FBLwYPg54m+FOkRicLLhzp/WNEVuKwi4HPL7k9rQwzkp7dsN0CqYmeHuBxy3mAzdF3nZ4fIG8OKA3HaFTHzd0OWLffMrp69cIZ5o452kwNsHXW87bwnQ0bBKKHTGriHT+7T/2/qd4hT+LQ17/Wqrye780aCP3OUUEKyN5kuQ+KiCbLgpVhaPAg1lZCkgIdGHWQjV/3f01K5nMVVLdrFVJTHauJ0UD80FViNvGMpRwg1Pgp0DWwXy78bkNJit4U25XZ1uDH/w9b/PFH3qHOh+Juwssjsx3wG2nfQR3Xz9x0FSR2aLMDwybC5fT4F/9g8pPfun4Kz6H3x6/6SHwF3/iIiHse7POgawWBBqp2NN9VpUR2ABTwx8NRBS721PWZKFHdjp8L5JqxGuWlu/NvK5OxICmyNitiWac10D6nkwngb3e58FULA+Rng1w1TwvnDWLGY4QzYlrQczQB2lXjJrMIzXBY9BkZZPCKspqg/JQiaUwXRpoRyeY5sJkFZ069rlbrBo9DH95y/nOUa2YrSAN7xuxbCBKi7ErtysSD/E7x4eyXFba85kQQ98BHq/87FdffYoX/bM6lC8sDXXHPQ/xa9twyVRMK7nG2t4JamPQ6TTJTtLtjbGejeXBRLkU/EJYu+Z54Z4PiCOm9O6ZYK1ZpHU13FsWaruilkiOOR2uVDPGGLh/p2ISEUQfFAveekvo7mxbsjLX6DjQWt45RYw6C701sKBWEF+Z5oJpokKEZBwe930o0akCK8nBfXol9OGEKWLBXRt85emM/orq1W+Vp+P9+8y603dXsL7zh6/dPSr83L/2AdJS4TZGMsyUoIgTkaoog9cFUwiKZLGrSxbPOg6mjN3S6ZFrohKJPdqLZx6BhhBbKuyq6s56zrV2IguWqime2IYlxF59P0MkoqSHsG6Bu2CSgRqlCkQhAsquINMd2K0KY09RneZIntawTOXUFEV4UYrE/j6cASRkx5m+62P8c7/76jd9jcpv+hX+KY0wpcTg8aXRPOjDdvBYVh5rCE4CHiuBWSZODHHEJSF6QXb1DJoHy1FS0RDBZErbPKFq5qzdCFGqwtiBfc3hchFiMh4WRdy5fiUsk3B1JfCiMUIZxwqTpyohsoIvWb5P+86ewjg8FVhmAn3wi6+MKhtvKTx62lh6SabSlA+l7TzowM3N4JvXCUvTIpyegV0Mtnsp9F3HimXCngm+KTacaQqwTP0pKrzzRJhQXm3Cx8/gcOy0KMgKHAYXU7KVTginBl968mY/mkJSNhwhSIyUddq+2c6/gdBz8zQ8wes7SD+DBn3ftH/H1lVsl2g6EIKLgnRKzcq1e2ciHzCujeiG95q1salhVogm1KqYDLoPyqKp2hrgPa0ULk53TbtYBOdTYBSWwyDM4TDQ3Qpy36EcPRVUJkJ9F8Y5aC8qzTa4SHstAmFG3xohjlqheRakTIUWWfhwseyse+CJQqLUVJJt7WiHCwAAIABJREFU6rmB9HiduiEWjCb853/qy/zHP/d/89Ht+PQu/PdwvAZxa/An37+gieG6YixU6ay9INrIbK7B9DCQUehs0A6wOHpWuoGWtEMLQhlOWE0bhOTGClM8BqMFiKCaSYZFJtpxg7Ig3GEsydaKwEqC57tYypR9ZCSv5BmidIfpAaZbQtnD8h7pA5kFaoWutJtXyCHQU+DtOecHD5A75XC10Por6vGKu+uOHP8h9Z0PKM+/Tb/olGlhjE5slXY+448mNBSXxiSOnN7Dyi8RtVCiJicxJsQatUz4ZkiBvhXqfMvpzvh9jxof3kx87fnKJvyq4M03ZfzK97YnLjM0+Fe+8giJl0xSGK0x1cLUCrYp64XQo8NYOSyFSsfFEDd8OVMCbsW4RZBXNxzbga9X5/LiBrwQzyoPnz7h+LjzdJ4oDUYv6NGQNWC5BD/DRUWqwWXBPqkwGXEF8juPO4DPkfOGnEHOAYtDU6xt3MjgIIptnaFGWCPKxnaRqoz58pKywuX5RGPhrkE/3BKT474Q3DGeFmLMTM+Mu+lDHny+0N4TLm7f4/ofbMzHYCuFdevodsk0Oby7YvVI9M7onYuYeffyeg/l+BQv9mdqZOz3H/yKcmkDbcnTaAGTpuJTS3Z+g5yXdecZmSRfSAgOCnWWBLrfd3Kr0cIJ76kesMDMiDYoPmgCRzG0g1tBLidab2zhVA0QY5xObC/gcjEOl8IyC++8e8G7Ty54evmIZ//bh4ztOV/40sTjqfOtf3TLRzfw9W8MvvyjymMO3Ihx/W3wT264PSjbTCpftPI73uv84HtX/A9/84Znd2nN+e3xGx8K/MT7Fzw+Pke7MUgVyjhBVEWlI+bQoUrQNa1TqZApTDhSgO67MnDFShDDwDzVp6GcIpt7ERtaPNWjNtG3tFHX88BrNh9zYc3GZtdEOOAgY2AFes3kOgxmV2JzZAa5DtrFxLx0yo7qOgmEWDZZPNdsd8lGVMpxGFHyTHOaKbVzMRUkHJsaYwgHnSifH6wvC3x0YHrP2dYTpoJK7hPKw4mQtHxVUo1RzwN9cKB90lnvbtB3F6YoEMplDf7kl86f3oX/Po5fRSzzjx3/4R+0PajCsq7qjtWC+GB4oFWpCNU0z5aSRdK7G4NFmC6yyG413R0B6KNge14Zx43DwbKQ0WA6JOK7bXm9LP1YeV7oQZVAp0Ct4qPjuw2teFoUnSBMEM8U+8vSqE8Lnzwv1OXM8coYocjkdDI90QbUJc/SOoQyJSvz+k7Y3FhKWtfOLqw+KMUoovQYLAJrH5zOis2dgyquwe97b+IXvr1+z67fZ2ncc8G+84XvWA//X3vN+E6BS0X42T/7HjdtJLDd9xTEyPOkOxCp1Bsur0Mp7h2NHsCObwFoOEvdYeuaBfkh+ffd0t6nAUsJ4sK5PemOqMmi1zaUUHK9FUVCk6lKnu3yx7938TjsKq90G6XAY/RgmdmViYkAQRxcKZp1ClO4unDurpVLS5zAUN8bAsq5B0P2ApfvDXzNQp4P4StPjvxb/8zEf/Y3nv2Gr9lnRpnlEWxur2eQ6H4Ys6Tv+y6fE4fuSm/C8CxymQihsKrQgOZCmi3SsSVqGZhblRHC+S4lzd13i1WD7WxcHbKTbFUoNuh3A43CchTWV86wyvxIqYtjtk+okd8/yAq3kUW2aIJFqmtaD1pX0PTTP1P46jPnq19rfO1bna/+o5Wvf/XMtz5sfPWXGl/9eO8m+cDXYHqwH5hFUKCtQrtxtHdUguPsHI7OOClxEgileTA8D63H4rz7NBf5JQbTMSf29Vr41nVwt3U0nOObaoDeh2uy0kpk8TBh5ewMmpRPiuQmwETQvYigIjBAxLIwKelB9vvEQ5S+dkIVH45KwdyRrSMtMLW0s470R9vcsSXnj5DpD2rZVWQM2JwSQZmcOu2dcEsg6bgdxLVzmI06p6VQVZhmYz4USgnqJLtnPy2xYdB80CzgyUAvKu0Tx5okxy0GaCH6zLaS3U6RLCq70SlZ3PAgjSUCRVgR1h7gsnfas8Mgkp0BFaVR+Xf/+Jf54z/81qd78b9HI1MeYZLKl0yZaZTQ3LyoUDWoQ9lu7rAINIzhuagUMwodpkC84UNgVGIUukPphRECJdP9xjaovitwzBByg9y3FTWl6kBjSaabBBYXOI2xP1Nb75gZQsnFq1kujONEuBK958Icih4KLYTS7ojrQNpgfqTYu1fY3RPk62f85R3t7oZpOdLXOw5aoG0sTwdte8L5G43Rzmi7o2BozTSgahWTis4XtOszTIWpKKOsOLfYFMSojHVGSlDaQF7C0IeIJ3b6j3zwFn1fve7DGN7E8cuk6wCRHah3beaPvHvNgcLkhUObkdZZ6+A0Dy56UMnIcB/C3QhCnVI3GKmA2QQOXSivCuXxgUrnphtjrTx68hbHWXinzJRW2OaNadGspKnAkzkPktpTRXic8KcD+R2BPFViIb9eIpmBJjClnToC+rWwjZLr72jAmXmXWHtpuFS2WDlv0Fpq5pdD40IumDDUOzEc9BW1FuKxMV9f4GsDWamHwdUPXqMdyqNPePCecvyio5cXjG+/ze0/7Jy/tWFFCO9UV/7Kn/zi9/8Cf4bHH/phYdZcC7pCG7kejoCmWQyvmslGVsgEOhGqJZsMccyyw2sKpWbzx3a7Q7WJ+bCgxRIxUQxT43DOItZ2dUSvKtNhYl5mCqBb8PKXTlx/W5gOwukKVh/oZOihcjwuHN6deP/PfJkf+Es/TtT34Md+iPf/3E/xld//g/yhH5l59osbRbPR9wPvLRw+OOK9cP6WU0LQEjQ6oYOf/n3GH/09x98yCoTv1XDgn/+y02tlq4M2B67pMhjWEusAqc4TMnVXnC6eeIZqNJyuuR8bG2w97TfipD0xcncylb3wtcPg13PHDHSk2tyH4fthcQtl7IEFkyvWhTEp5wI2EjHSPBgayAT9RYUL0vK8qyhuNK2PIpLKMhVG9z1MqIEZ6oKw0Vjh0KhFKWvnAOi501vP5tJYKBfObJ35plBiJdogJFX2NnWMCROYxZhdOfQ7xquNuAvKgwNaCmpQOLOYofXNXBt/tSH82hynP/bFA1sMNFLhkqqZFAHEyNTosYsTImK3TjunW5AqFMvnmdXUgpQJSk1DYlwNzjf35wrZlS2DtjluUOuEan7/aMF0cEwzsOCudwrZNJgMljlDA+w1L1NAU/knA9DGdlp48ZGgkY0GZy9++c7N3ILjlO8NAT303KNpMAq0yELWhSlFhEMEHs7GQErO/Vet0xAWWV+rxN/0obsPNH6FEi0iftX5JSQa8md/5gPi3kY/Ou6DtafeuHtik0RhvRe5sCurJM/4cg9E3b+O7DicXSUYu2pHi6eoYkdOnBzaEHTO4ryMVHjeO2ispNvIg8TeRPK3kMTdSFbkKKEUYKxCXyX5gTUYJ6NaKr8iBoTinhbCdAAFxQIpoK70lq6PEelOmxQWSwvjLOmY053bFQAaPFp+c9qqz44yK9IGuLmkrFyMzTsTwnlAkayOp7RNGDvXv428kQeBazB7guymvZLeY2cdBZimF17nPHCv13Da4OoqmUdmKSPGBOnK6MKD2pE7JZasaPopEpAnGQefPugg2d8pj3ZSDhiyPwh3IN/ptlAmz8qXC152KGSUlJR64BJ4h9smGEaxQD3hhEJWPKsK5yH0LViOsIYAhemyM+4KOtICYFroezXfRHj41uCjT4S4Dd56mDdfOQQrxrNbOI83d9H7nU/mrDKTi0dESjBLFCDnlQLiCVqP+4LBnsQ3wmljo4btqpgEKXvPa6xa82E0QNaGlYLjhBu9Bxb5QNJpny+RxbG4T0tUQ0OJvb5cVdGRKSUmJQtP1SlTYXuZRd4UQWkC4yn0rSdzYZfcI4IugTA4nQyVIBSoUN+pnF8J8zawq7T41havVWGmQh8pCjXvRDFMU/xqURIs7YaaZ6qUO5RcxO8XANHG8cIglD/1h9/lycOLT+nqf+9GRDD1wp/44BKvHR+ZJBME4ROjNbZh1MtKeOe8TUQdiWwdJ/x0gMkxmXEJIrLzVadB9B2o3wclhCaCWmFE2iM6hhXwfa5k98iQHZAecgafkZjRsWGy0LugOiAm6txxP+zdPE9uAgleb70jUWkx0C2YHgjn0Tmow5cL8vUrxl0nHp0Id6osNBtUHuLTmasfeov6Cw8pl8b2YiN6x6aU8COn7FpPndELD94ZnPqU1jlA6wzeCRl037DtEREv8lAcC+4nHulzakystE/nwn+fxndL2iPyznJZ+As/PrFuQp07saxAQU2ZRoCVBJ1PJRWgO+MubjtrD1QbaOHixcRpmrj8AB6YIt5pWrHTDfLOEZkqr27h6uIG7QcuLXi5QfQzxIZMxv2DaLxc0ScG82DMDXslxJVk3E4L+OgOHjrUiW6DWBqcNm69sUSlnGekrtSRG6wut6xeKcs1ss2onZlsAndKM/ohOG8DxsI2VurUiXcOyMfX6NsDn1ZsvWQdt0w9wHaJxYMVu1JiW5Bbw79uuL3EHsPD6WO+8vQBf+fj3+q2HOXhHK85F7GHh4rwenNa2LkcljbDaYe/diI3wPvmWfY5i4P6RIgTlo2+8IFvg25QI+jn3a74YMFqYZ4K5/MZP52QAbcfNvoZnnz+QD1KprV256MQlnbmSTns5oyGRGE8OvD0L3+AqMI3XrDcTsx3D3jrpvHNX7jj8F5BlzMXVamPCg8W5/qTRhsbzML0IJ8uTx4M/qV/duav/y+N12/mt8evayiKyRmI14dz97TA4GmL95GNu1Bl+NjPdAmoHt4pGGZO96BeAD2QIaw1bYuiQumRqnuH2rNhKRGMs6A1aE2YpeNuDFL91SdnG3mgq8UyWCcSbVI008E1hKYDOwxEJfmEUjOZOoQNR8dgliyELHWiRWHEimjDtBDdWLRziI5JFucWZbfuTBSFvq1YHLiUznQ6MuyGMRnalFFO1HLAFmHtQt0cvxN4eMS/fc307kRfCtYcTKjMtG1QbfoUr/z3ftzzsu5Xyn9SRmug/N63G6aGDme4s0xpEYzor+deNUGiI/sR+fbWOCwQtuFkwv0YAxfP+ZDyfIjBdIDzM8XnwaOHxtaNiwNEJK9UVbEIziNYJB0OjPv3sc9BH4zoqBREDA3PYLIIpFe0DN5+Emyb8/KF8OqZ8Ohzgy6Bd2dSxXYm8vDBVCsewQRMUyqthgtVheFODUHU6VHoo9OlggTnNjhO2cB+S4w9Iu2NHyMc3Rc94ZersX7l/BJJHNHP/sz7nHsnxr5X87QC6q7WzJOdIxEcq1LEOTtMIjtLK93XRbPolCvtoMkuzBmAClNR+khFoCmEpGoPSKbWIrRzMq/W/eceI5+zFTIlHce8psVaUnzTuqDSmQ7GMmV4nYhjbnDpjB74JhkgRRZkt7HjZyQoJsyTcNqAyZlJ5ZagGCnYOG+SP28kB/o8hCFp9VUJ/pOffod//3/69m/omn1millDJZP3xBlhjOhMRYgG1TLpo4pilpHOY+QDAYEq+4e2V02LJHehCLv9yemyO/HFdxYSHN8SfDjjnLdneQBFksfQt/11Fs20Cd9fv5BwPetZ0IC9MLFXUiMh3FWEEpJebIXWU7doCt4Dx2g9ZdXBoBpQDZqi2jNxJeJ1x0pIS6SQUPkqmXyynYIywVKdFoJeOPJKKXVQl0waoGdVuIVw9SBtTt94MVhxHj4INkAXmN7cWhZfeftA7yPZPqZIyA5tj527kCq++3HfkUFz41pEGV6J8AQtBrgMtCdXYZoFSxASoOAdjQmzTKUkUi3ISFuqlWCaoW0QQ4gOqiNlnMPp457FZGxjMB/S9qqq6KNkEOWBFUSVNjqj2c6u2iOrd9WWIFwegu4Blg/m3p3yFsRmnD8ZTFdpmxw2sKG4RyYfDiGWTLEOsoPZzwOppJZ57MW/yPtMrSRE38FDqTXl1lD46R9785hsaeMM3l8gfGXztNdodOjKiEK5PBNRUHG8bgyC6IW+DGTNCFxdgtFz65QpKiXVnrultWulSoeRAEhkUGLQT4U6V0xTYh5kuEOwEQi1KBIrTEFvDZH0v0tpjACrA3PFVRGfgfz5ahxor1oC5x9BlJlSOr2niqx8APXlI7ZvBP75O+wwcbQDq0Jst5idaCMwbpBlQq43tDyg0LBRcCPVaB74csDomZ4pg7bdodXRqSGrsd019O0jcl7pBIfhbKPz+ceX/P1PNmTvir+J457HBt/ZrD+tG+88aDwU4ZueQQFC42kYWgo3vkExZoTxfFDWx9xyoj6ulDnw82C6nJkfDKw4YZ3Jgm0szNJpcsUmMD5S6tOaReuS3bziGx4lWSJFCDZEDJkDxcAbFhWvM3J7k7utm4pMArdZCHt+2vj4+nnaM1w4FsX9jtJhsS3VixagjdNpyzCJY+F2wDwCsYZsStVUVXnZaOeK1oG//YjDJ3ecLl4il+9g80PGrWBHR0KIsVHCmCZnk4VRz4xxwL5u+PvX/MWfmvl3/vqndrk/E2My+N1fzPAKsVSbLHsWe/KAYl8796AQ3Rkxzs48yuZGqCDFqKqwdTy27A4PzcaOGUsxxnbCz0K9KJQ6Z9iKd/y8og2ef2vjvAqP36mU9yF8MHo2MWPAx90Zr4SP/u7HvPsT71M+uuMRg3KqxLd3sNc3XzJenpgOxtMvPqa80/jFv/MJ7Wqhvdh40jqnObD3l9wrrc7Ljx0P5/hWcib/xE8YP/e/xm45DL5jbPrt8WuNLz2eYQyKt1Sgk4ePEZn2rJKokeHBFCOTsZAslHs21RqOqFPEEGSHvDvmeVg693uWDEyRltfoI/ciasg2CJJhFDIYYogNrCcLNHD61IkOi2laBS2wCEKcGfCSDefkDMVr1bOrpIXbsxFJdIqmiPUgxnkENsFVvcRD8Fip1fFtIsOkNx73J6CBuVKr8mwLHl1Xnl915GbC3laibIQOJlnwDcZlML5x4uKdI1ttaAgelueovuaedvtULvlncogI6+qIVEwHGjPXd5nY56FIBFNVxAOtMJqz3jmXjxaGb7vTJ1lvEc5SEsK+vzoqsCzCtg5KK7hv6KSoKBGZJh4CRIY3OZoWR8A09oM+TGb04YmF0HQMaUA75X7zcAy2VZnnzqNHwc2LwtbSlREUigxmJNUxnWRjjsFhUWpRXq7J9rIKMbLpHgKDkcxNHKlCJ2gbHGbnwB0qJZU5b/hQ0jaTy97OxBV+GYfgtbVQhb/2r7/H2gbhQttTMPG0+nUPShGiD0akstR3fpTqfQHL6J6J9nu24euUQiedYEMsz1l7oqFIWkhd7xMKs8GEAjW4u8mkeyzDgdqwDMWwTN0sZIJhBhY6kxbmo6Hd2ZowHNSMcKdYBmKMSYktqDUITc6h7er7sb/P7SwsohhCSNB94ALR9s+LnWMuWduBDMsCpf0m+kSfmWLWNgaiebDvkhVE0vL+msswOlSNtGDdA7phj4dMpZEEHCw7JRHKrM5Qoe6W+K0HN63y6OGgFEmFwKzYUNrLgR+NaRKIjm9CnQKxvaZqgTfBe/JqAt8fUELxlJ/6yAmYB/ygRU6cMYRSoXUQlZ2xlLouQfLr64DoxJ4AkF1Q3avCGXGpO/DZTDKpAKffwrIky6loMC7TNqnnwVQyUrZITqKO0LXx6DGMYbx6EUyX2S19kxuOP/kDl6CClIp6dgdNnVI6m8PoKSu1IrtNToHcxI4AOxqzCeME4iu0mp9ZHdzLumJ/wKBZYArfwJKdUHdlHZY2rnDom+1Pn3wI4DvjSksW1yQVZMvBcAayJ074SA8zttuQRhae6kFoPTldMldiM0bP4ocVEO/01UFqxvBqHoQv3oFthfX5wDroQZhtn56S6ZpNg9jViJB8Cgw2AnPbU162veqfiSllSVlq3wzvmS70pg2vhT//PuAvWHXG2kDmje164vgg0DIYG3RrHGxmjGCWTCuZEcrxjLbK+XyiLNkJ0j2pUMOxsJTNzalYcRNKG7gFTSZqNWQyJDq1KL4NXM550NQZaY3tOFHHJUU+QqpCVJqdd9toUKSBz3i9w24Uv4N4u1IenRCZEK9AYxJo2w0yVdgu6MdPmD4v+NeO+JONu/Kcw8PHlOUB59Mdl59/xO23P+TqC8ppXVDd0KOjcWTeGtOycDO/pMfCaFPy42jASnhBOBLf3ChvOVvvdB3Mpwds2pBF+Bfer/wX1yBjZxG8gSO1vvsGSmFR5S//lOFdeDY5D6WiEmwInUacFbup2HlmPFKO790S45ZjjNy4hrM8zOLhEGPTlSozH62dD4pi+i7j/eDidmAPTlyMipZKnDqmFdbG6ivHuxXfAnpJCDJKtIA1d2c6rVnZuAZ/0jAXOAftRvnGN55RbGYagrNy0zdmAaFSBign0E7fnDGcVpTzy1vkUmjTxGWfse2OaTpw53cQB4JbIlIpfX7XkP6Y9rWN4zsr18+N/rGhF7dINWxeON3dUuaOVKijU68Gp9MVp08Gf+F3vct/+X98+Gle9u/ryB5pzrEvvK184YkjXZin3LuPFsT0nWbPd2cejxFMRVPZWRWLhMpqMQLo/T4WHCBgFXR0RIzpwYRNsLYZWxrn64aJc/Oi4w7zJCwPhEfvV7bREWA9dUyELsZwp9Qsij3bBp8M4b/7hW/xkz/0hHc/ct4eg/q1l4QJfuq01dMaP0HTwuWXn/D3fvETrgVaCdAZbjemCcrxiE0n8EsiNrY16C8b//IfNp6/nPnvf2Hll8db/fb4x41pmfmzP35EeMUYlnsqSUVtVM+EZg+mvqdZEtRa2bZGkJv/OU0MSBgjRgbgSIbymsA29g3uSN6Rtzy8m6Q1Wnowxq4GMMG7UwvI6sRkmCQvcvTcKzVJZYYFqWbviTUJj0xQNBDtyYAJ3VU1TotUeLURzNG5kMomjlY4SGImvJ+pU8mGqDcuzHj34bscoqKb0PsZ0YnD4pxePeKtV9c8e2A8axVjw9zwc2PEQ86vrjn8QOEcGy0GZkpopd/CJs5iF/h4czlHv94Uw7/0+0sGkNw5Yy6YtUxMJll/MjoSQpXCq1edw8EoDwSXgQ8oJVV0jr++/zUSJRK7+2Lz4Pi2MLlx+6JyfDSQMogEHRHeaM2o5uhu3Csli6mDoBRSeaOpcG1bw1S5u01Os2pWLMoCvhn16EwTfPhR4ennBogQQxkSySpSTRvYlJ/W2Rv9JJSLbJAXnVgJbncMxUGF67UjBI8n45M2uKgTz1oGQ/2WqeFn/yb1chH7OpnjuxlZ/83PfIC3VMQNTxRQH4lK8lBUduWdyut9qvvO6jajuyZDK4TJklEsup8FBEDxbmnbJ5ncRQRGw3cVfhUYojt/K+shF1fOtuZ80aLMEWzDSeuGQih9CFjQA0wb7SSMZsgIbBFGE8ZQRoMhgkowHwUC+iYcHFyzNoGAiSc+RRWVgbthmgidyYTRdqeTQ2cv1JH3XpFAuvJX/rl3+A/+x1+/OuszU8wSF6aam6dJHLn3mO4V6U6mKhQCFaVqXoDhKcZzT5jYIsJ55EIkKqxDKTJYinA6gywTb116psOJYGoUcfxlcPkkrWLrqdFOxsPHI5UzOJ4Iq5yFBm1T1MBUiZGgtt73yTd8P5DmBCOcMmkujORE8JEwNSKVHEQW8pqkFJYYlFydCTQT50gVWmfQfAe2ScoMYwRn90wBssAulXaTOsBRNZMfR24qVzFuPSe9XgivXgmHSxKA8YaOi1mSO+SesnXyABxeEdk3xXK/YR97vHgWb0SMfruDISejPn7Ao8fw6lu3sPFahuqesvTh+/WVbFOLxA5bD0Q1lTiWMuWQIIagIyvf7ukiFs0C5uuHnqRPXnbAOuGY6t4hyk6477L8aZoZ3rO6S1DKPfB07yh5zv+I/H+ZCssc+OPKeB6UQ0NU6QTDd3tiBD7GXuRzIrJQZgI2D4aQzKfdc59LQE+Qoe3v/Q1cBK96Y8FQq8Ro6S+/rdQrpbFhUegKOgADM8V7p+2W5k4Q2inzJaPfUWo+l9ouEUd2LpFkyozhjFmYh0LbKA8uaf2Uz4JhhKc0dXNlKZrMBQ9cP8JcEU0+hyIUzdScbQR6ukVaJR6CPjVM7hjMiFREG+FKb4M6F8IclUHUghSBHzD4VkXqSj+8ouuBKKDvbfARlEslngnogq2BLGfKccJ7Z1ocmcDC6W2fTzoRfqYwsdotW1REK3pjjOUlwxwwFj/zw1dH/v6Lc24u39CxO4bRgD/9e4/oODF0pOrJg3MT4nkgofihMj0UDu84XW941ZSDNkIdX2eWYyQjajaag8hEbzdclEf0B4W3D51+cpbDhHnFSsdPglRjk45RM9WpnyinkpLNNvJUKQXqCgihhnhGlys1rV/F2eKOshUWu6NrpbXBOQYPpGTBvwSHNuNrdgSRW6w2os2U08aYlY1brF5QRnCcZk6bp42nHKhxJrrSmyKPB/JRcKiN8Mq4XvCqqXIOY8QNMV8h2hhaKReNq1n4/W83/tr/pbzsb+6c+u4R+5b9OMMHT1J1LJGNiim5s9lg29dEESd0P8iJcN6cubDveyRTdtug1FwrNBQdgWrhcCyEJhzX6bA6nOHF84GG8OBp8PA9oWiF3th60PqufpH75pJn+u82kDKxbhulZtPvH7xynv+fH/PFtw78yO1Dnj45UNn5mEN4UZSPbm54zsTXvnXDN0nGZQHO55V6tdBeDVRWEvSwZpNqKbSivPiw8+hR44//uPJzfyt2Y9AbuLD9UxyfPwRTvEJrfl6qfU+SzlI9u7rZCngn90HRdjXDHq6j+2FlLxyw/77ukZoW6UBQySAaA0J2OTl7KI2UZFn1DmWmtwzqKe60DqX2VBPgTJLNx35WtAbDgqIQe+PyPl06GTqS6YcShBakF5AzttuHqg0UoaOc+8q0q8tmN55eTLx98YSDTXjPypkgxHrGjpXD6CzvvIXNjVfnu0SYbDMbQd/OzI8Dt47e6RbRAAAgAElEQVSvQg/ZnRwr1KCeZsrtwPW3xnPs1xoiBRstmcgXQTtBO0c60CM4VMUmo4pxdxssl7aH5SQGJoqy9cA0LbCzpfrkXqd0D/e2kkVXZ4MpuHtm6KUzH4LwYLuD5YHlXPeeqhd3pCh1kAEHDmH770s+25aLQuyonT4y8Ek0C7ajBLNVVJ0xOmoT3Qe2RCpYY6DThG6N2RSfCn2sOJXmA/b3U8j7S0nV2aseaFdaBAcbvKXOJ7+FppN+F/D9l1kNd6XWX/2Z92jNdxVdBp3cc5jDBffBXLOW4T3dUwfTZElGCiVgsHWok78ujOuu3vPYV5i9dvDagBCJpoldKbZ5FtNFErtcRehrFkZlZ3+ZOSUyfGDdRTYqSjsn+UissG6BFaEeIl0T5lwcYHWBljzw9UaYj0GpSu/gd1lQDY/E1cz794pmcWtfIXtP9VVECow27yi5nqsnnmlS5+SDf++PvsN/+j//+gpan5nqhUqCy/aANVbPSqCTE2oCpri/qM7w/MCqKKLCrKkmYQeWxi6DM0lG1YsXynQsXNWR9iuyCFER+kvFLitlGvStc7pRDg8VVIlibCdS1UNQTaklFVvmQUTae8b9gUOg6A6xnASxrHTO+wQWoEQmLhq56BK6A8nzs4gB4ZZ/vksLC/lwW3GGKAOnh9LZgZgmuCrnEWw96FuyvTaM7d4TLdBcd+9s3jC1BsdHwvWtsr3qn8KV//4MEaHHd2yn9x/2GD03OLHX4GPgnZQEuuJnZbS86WUGquOnMy+/ecKHwVyQClZBbZd77q9VDGqBeYdGCumhJlLRJ6FoJPeo1lT4CQnNnSYlQilFEUlYuJWUOE8LxCrJowknfOyvDYgTsTFNtsetOp1OmGOzMi+F+WCU4qiNXPx6qj9scnSBOEvKPTVtt5kC6btKMAvAuTncH6TNWdeArsQIxIXoeagRSeChFvYH6Zs1/sAHFwxJUGbPkhIxF4gtC1jiaYOuNVWX7Yy3mTmM0dI+HWrE1LBp74B0p0oWyIhU1ukwRqS33Aes1WG6QG3kJn2Pzx046kadPIHqMXLDM1eqzYgEVibELA8Jt4JcB3I4oE8OCVKOweiNWsu+qCqmhtRUYowWDFvx88roCgenfvGC+TQRHwbCylwucbuF1VjHHdPhAl3uGHJO8GWckHLBxTsLMRfUDqCNmHsyKOZL2m1B316Y5grDKZfKUEN9EN5Z5Y6f+NyDfcF/A2V/sJ/1clGcUH7nozMSysOx8LgZnA399iX1oVI/D/b4FuaVVjLx6iCKamFEoxwT9F+0cN7WXWo+mOwhopXtAK/ubrNxF1nU6MPpNriVlXbquEANuBv7Tvtu7/RNjq+3hCd8VlvKqqVYrmcihA6+cbPi9QY4ZnNBgibCda9c28rK4FDhLQGTM8sUbL3B1Lm9WxntxDmC7htRPSX998Xy7UTnjEdDrRHccqfK+XJlm4/cbhs8anDVkUOhnh/D7UqZ8i2s0QhNa+2f+cPvf8oX/vs5sunxQ+8GsQrbnaaVqu8WiJL9iLIrRkViZ7HlRnuqWTPYAlpOVGoRLII5hLIGjx5dslxNnFnxSDDsWAfX3xjcfdx4+Fg4XkRySYfQto1thVLLa9QCbjCygdmuM9CnrxtmSm+JnuihfPwKfv5rt/zVn/+Q//Zv/iP+1i99zN/9+BW/tK387994wc9/uPI3vv6Kv/ei0TWTMymwLBN6HswPDQ1DRgMFDWH0xuSdh0+N8ymI284XHttvF7L+P4x/8Ucu2HTQpRP7P6UUQtNu0iStm+sQ/N7asx/mRwUpySQyU7SAxaBHNu90L1yJCCVIJm4kMyLREXuimIzcq0cq3CcLpCRPCEnKJZ7JuQhIdxrBPAdRySIuiaa4L2Spym6/SWsWInTpnMqZqlOGqhSYdOZAMI20JboG6p2nl8bnnjzmcPkAqqBS0KIUmbHoWIdaheU48fiw8JYekXPBNkE7XDwS5npkOExT4VADa4V43lheaH5OZUMevHn7rt/I+Df+wIFaUr/hw6mzUg9gBzguhTGEbYXTXWe6GMQItKY4QnZsTJF0xJg4WoTW9z1ZB3qw7EzcqSYO5+LKqJdBv4HteaG9hL4q2/NBvwNaoTehrcK4zWbkuQeyThkilqwctltLd03kPDYzNNKKZgUUR/amt1ra/62QDaLh1Mk4jsECXJlRGCwYVZ2QBt4zudOD3jtHM4LEjTw+KKdzcsIu5s+M/uX7Mn5lAeu7f/2v//y79J4OqhG+o2nuVVc71gXZw9h25ZRAi6DtVk0lz30JVM91NhOrU83ku81RPTDPFEIIwvY0zsjvLZHsLZEdq9RgXhSKMPr+eiOFNC1Ao9A2QW1QZ2eeNS3OkrbTEWkbnCrc3ih0p+7N+OWgtNuCbzk/fHZevVROqxCe8+PuvIcy7did4P4MvuN9AmYRFiHXWjFGhzscRCkK/9FPv/3rulafiZmZqXHpHd75ybuv3qEXwgaTfVfnoSlL5XV0ZBFnioSmJUNrtw8S3F3D1QPj4WN2eWbKAKUovIRhyvzYKTROm3LzsnN8bIglL6JKUEuqWdpZ0SW4z/COSYm+q7CG4JYtTY2dCaF5+C81GCMrnoX8u6p7igGaHc1g9+TuP98uLxzhqBihYy8mpM+15XfiLdCSiYlxD7r37AhFgwOd7oWXLYgS9+0tBml19PxP9OisrX4KV//7M/zkCV+X7K65O8VAPFVaEYA6c1WiC2M4Wh07BH6v+2jGVHxP0Ezeg45OmQI8LYE+at70EpSyxzKrUasibUDUvEYoZQYfWbRCglpkr6LnQWFesnAhCGPLzdJ9ZX5aCj46VQtaArG0sKqDVcMUdA7cFciixLY59R6uatllKqLo5EQIUjytPJ8Y0zIQUdquhCxF9/srVV5DLNUenvMzk62dzXOzZ5L2Sgklekqf6xsozfrRuiIuMILKxM0ZjseOhaQaD8NNEOnQBlKUGGtK2dF93q30AHWjlKCfKmVqRFHCkg1TQxhRs+jNmS0yKWd4T5ZfFZoWhJF2Cl2YfHCeOtUqMa34jdOuJ3w0psczQwfylpAazwp0om+oPECsM84DKxV2ZmGZC9Fyno/bIKZA4jnSrxj1jPzYJdMnEN+8oz18xuHBFbfThn+4slwpd3MGcIwh1MOReGWUy7Roj7hjno6EBKOsxMuK948Y84I2o8ia3EOZ8T7n5s1nHupzvnB54Jde3Xy6E+F7NISUcduAq8W4OBlSdibddWWjYe+dCEvp34QTRdhGdnyrwyOfmGiMoVxH0Icz6QWXkZYLWiPOcPeo0C4LszYmMZbSmYqxaOEgMO5OXL11QDY4xRk/bxxuNpZPLmFS9MkEa0vO3jwywkYUbjdevfp/2HubXsu2LD3rGWPMudbe+5wTETdu5WelLMqFjUuFv8CyZCEQslumQQvRwRgJ/gz/AySgQccSdGgikEXLGAGWMNgll8mqzPsRN+Kcs/dac44xaIx1Iss2ZWUJp/M6ktW7eXVPnog991xzvuN9n/eZ//7v/H1+8PlnGMLMnet1x3WAGLf2THLDsnMf9W5/mMKeFzK9ylaaskTjNgchAwtHxFjFaXrmGjviSsTODCWvhr+6If0BbTv6zYXQyfm0Mp4TuQzk+Z72E8X7M2sm2YTZd/70966cm3Cdn96e9U8+yd0i3C+JaGCn4rZ0KZbj47vk/g60U65yoXgemaytDtfaDth7HCLoLty9KdDsXBcer8/cnpy5CfN5JzK5vIbLmzpnSUL0GjatlNHvFgk+y2ETChKFktiV0cslve+JeFSD3HDcKW7HLP7L7/wUfuerd2xZ3FKJ4BxCLMLetfATksxRglY2xT9stK7c9ZXbhxvxAIudeH7eUEv6XXLSld/MjT//x1b+xt/a/n9J6w95HlbjO+vXbFHnqmgvtg5HtODZayZqx5kZoWgugXpwNmPTQD1hXwmbYKOKIkyq2j2DFpBNIKqpO3H6Wq2HSSDSEHXEhKGFXFBp0KsFzszJM9gOoo1sxUYNq3uEZTIVzlL4ki7JwuFWbsI4GKYahgBDB7SF8B3UGWqsMXn2ZMFYmvCjX/9h3UM84fwAOsnf35Eff0DHwumhId+7J6XiYL9x+Zz1i/f8dH2mn4VtrTjwyU/Mbya6NGJV5HVnyyBm1lD9+mkOqf9pEcOXeNjLc2fCXbvRM4otpYZSsU/CwCrBEENZT4LvO2LK2IRsgY9KU4Q7p3VBEPZxuJy8YTqO81hiZuxeTOWeAzHj1fcN91H74knoEgcgfCXZynGXRmygbZIS7N8kOzVJWO5r7YpXsUbd3erPkVr3PSXoM+pOYSXcqiotlLZn8d9645q1D9+9EoLkIsI+6j5JClcPRhqbT07WsJbkqMKxP/eDM//g7374BX+y387nhV8qwH/9H/2IOR33wD3ZRxly0ss5F+GVnDkcUJGBZPXlZB73LhXGKJ6UqCMUukgO00457+q+pS+1fwcnPPMoi0uAKs8TFXRWM2LrhW56KSubZLmjTWiRta7X2iNEBJH6PZe11lJktS3GkOI+z4bfSjhtBHoOxjxcZBqcH+r3u22VYjOMOUvXiCtEM9L8iEkqLStZN6VYrF2C5ZQEypzCwJEU/tO/8vMLWt8KMes7d3XZdoOZgmnWS0EUek1482hsM0nMpJrffB5uqCLkNy1b3rgFt70uew+vi8hPVivKC6sqv6looiw7Si+bnSeLtiPqEwWmRH4GXVukPvxOqSJSltL0OrOrCF2rKUJGx2fgeDXOtXKMSSbdpCKBWXywoRUhbIUzYkblsCPzAGSWKFJZ2GrAW47tOl5ii1HKuZDF0ppCz6AthjMwlNs4IIRNC3ioSU/QJdl35XT5dMF+fTls4VF/r2ZA2tHYBxyZ5W1UTKudFF0STA6hRhCOqGgGPiZkL0B3JJYlIvjMAiOrohIsgHvFYLRBbjvrUs68GVJsx2Pd7KMudlptApXjJzFTRjjWFGuUkJpBeBJejJKuymIws6aKLjUBlcOKrPLS1nkIXyPpVrlukaTZARdckuWscN3R10qYEj5JrUPcjKO+PONjhtwli3cnUi2iUf/cBHKWY6kuQZ+eP9micjhlQx/0S4OUg4RQVxwZgrXOrsISTltOTB017ZAGlPuupnBJO09k66jOgigDmybGKOfdOGNtxzJgdjI3whbMyznDw8Sms/vCyS40F8bv3jEeBDkPbDHmMlBfiOkHpDmJGKSega3Et6UR6Vib6HjF2K+ot6ocT6W1Tu5OMNDdaXZPXnb8m1YRs0ze/OAV4+a0z5WeC2Gj8nI2Ge+ekRMwE1sN3OlbMlXZnzbys8Z6vTDlEdpCzoD8APmWiEdaE4YLf+Z7K3//w6fJBRGpIr4U49/74RuWb250T57zRj+/5vSdHWXgIgx30srB3BBez84trzz1D3gYD1xANs4BZ+ucbs7ujraFviofpJO60cYKp4HoBSIZMtDnwcPlgYWGL3ABPsh7tmfl7s177nXCXk7klGR/Mvp70Ax+ct358ZfP/ODVPfvzF0Qaz74xe7DMldmdJInRcQY3LpiX+yIzOKtV8+9VUVfOmtxkEilkbPTemLlDGJpnPB7RLH5EWqu1ap3TG/DnwZbPWO8Ijd5HuQ0fBnoT9mjI1x3doOUZeP5lL4Ff/CPwp34kH522OauoJqkBy+lVxXHGDpe7l0FbfoTXCnVeOVnDHyfzBP2+hnbjmjy9214KnGmWnD/TAhVnIq2aWH0mvVsJUsrhUi5xDC0WSTvavIqxUa11L47kPIaBiXIdhQ3YN5hNGBFcWg1kxi25BthMQoPrrVijqhUDkQjWtS5uLjtclPll0D7bGDOPNaVsY3J50/j6q51/588a/+3fFjI/TdHg/8vzb/6xzwn74mjMMnyWaKhSkTr3xETr80QARyIwTXoYanAGbiq0y4Y8F7On28KguJ8i5Y8zoS5tA3LWuV1MydPxs0d11lgcqeiDX6pnZ3UlrhNWw8SxlofjQY51FaxZg8eQalGMTKIrM8vFODOQVq4yFejsoI1k0iPwXDAJVoI3pxVdl/oy3XWSIG8n5JtJvn6NdEO/t5Fh6HhGp2Nf3bjcn5C8kuL0J8V3J7qg3zE2jPl8La5RJJNJj8bMT3dI/Yc9/7jM9R//xQuWG3PWudyyhNTFWiUXqD0Er0G/tMaYEFvyejEyvEDYvcFxFzNVuinXcLS1QooA8zloPVl7Mp4a/ZTARLUTuRMUk3e643qlUU4UkRvscLo0xhysSyMy2d4n450hb+u8nodgVs3lNUhVLbbc2JP1BK0rw6OSSr1QOK7KzUedT01JKQElTBl77a+Tw+Dhya7GGsGN4lP3p8nd5QT8iohZxxFejqihSBkK/t3fumOfgY8Swv1gdgs/E5pM6m5kKnBA30Xz4F3Vz52zoniiWWvASsRyp8rvpAaPDTnuWHKEsg+sTZYbNRNChJjFzGtpvPi+3AM9kADVUgfzJvQ12Klis5RC8KjWWlqt9rwZgbqgXs7BgtJD6qGprcHYlPHBuNwHUyqxll6OxX7oKNsmpBe03lOq527U39WMErLkKBhSglDFvPhcf5TnWyFmffehU6WlJa4U0T4qVih1yLIsds9Fa/GoONEqKpdRL7E2i/+0Phh9SVYthkOzEqMyHXluTIR2r5g7vgnPH5zTvaIbWE/OVhfz2yzgutRtAl2S2LUOeweHKKVaL/K4wPpxqZe1Np15NbQnhjCilM3wumzsARLJqsLdfTBDGFdFOeyFR1xNqGxtUkJMT6qdIiv+1iU/XmZCCwJOJN6FmzuvtVoMWBMfyhhlnRYRBgVd2zVpn/AU2ikBpqkgoezXQeuHXVcPe+Z05GQF+rfKINvBDKGV4v2xcjx6bSgD6h7VYDrLWvZQTSHdiFZW4OnBsih2MZ4fn7BlpTWrStUIZtaEyJafQQbtJUuvwnqqlxchRxMUR93uZB4Meo7DYLpgvep0tzmIWYB4s5oATK+o0fBJb0lteo6PgCwId+4X1m2QazCeauPKjap2rdh12We9eDmi5URSyo597OvsWc5FkE+Sl7ul1fcxG9vNsbZVYYCtKBNItPIC9FuFm1N29k04L8VGCwmaJ7ou6L4RKsSpBGnmJBF0XfB9h97RXvuAnmvyo9EINqRfmLed82Mnnq5kbAyZ5JuOvqIYSzIJPaHzhsZW5RYj0PXCHo3mldtPEUwnuq74UKZeaXNB9Eoa4Ct+20BONDMilOFP9EV49aO3xO9e+Xr9hru3J/b//QTfv5JbIHedpd8x9kneJtDILsR+pbfPGeMd+WXWpDSE2+2KvAqIQOYd2u7YeV9MipE4yg/D6XyaF8k4vkcmJ37r179BV7AJJw1c3/FmGu+XemecCVwXHgZE23liEL2DLTzpYJsbJoH0ybt3wvmzjmvnHviBrVzduVrjMW78QD6jxUDaUhGrXOknZfMdaUJaI68b11XxfeH9hydO26T92omRwTca3PeGzZ0PPhm3J+CMz8SzhituxrjuiBrZK46cnNh8K2dFr8mkk8y5kfcN2Fj2RtodIjtPsSE5D4bIGWSnNWO+dzg1TpbM3Ii4wdqJW5T7Rj7Q24q1XhBVNubF6GzMRVBf+cu/9Zr/7n/9HZ7z0xPh/+Dz5iKc1yC9QLJmNVyTl8FEQjsBIux7gsMwuCx17jIRHu6N25eTtz/sBMHtKfjpu8AmXN6CNmXMQExprV4EejRsda2Iw0vki5Rygho1IRbD0j8WBecRf9Sj3rsdFwc14ep11mIUv2NNWM0IEp9eZ6N+oCusnHctYR6Xld5arXFrjKkESXtj3L4M7t8YVx/Vhqflsn/9ufD+nfFv/Qn4m/+Hsq7C++24YQDwCb70/gjPn/v+YwlIHaLXhaZREZMpB2rhGPgmFckPdVZRWJwIgSOumpnYsuJ+I8Sr9r4JeQwaSY6W6Ro0zxb4LYrFG1G8yg12gX6A2lMdmQEdXA1rfrROtwJdHuuxWcc9aFJCmwA4pBwg+lYIkoo0CpbCmp17KzyDC1xz8lqVy7rw5vWlfvbZ4PWCzBPyPz3Br69kP5H/59eIKvJkbI8NPQl3l8ZjH3x+63wTK9Mcf524wtw/HOc6EJxHFmwkE2fGpzek/qO4shK4l3GcEJLleKc2NXJODCWONJCLoX4IVwbnV4o69LVx2wZNE2QeqARl2ye9WZUuablg1sshniaIJS7QKK6aGSwHwN1aNfLOMVGtoUuqYwJDBd8HfTH09TFIftdYLgn3AaMSOiITqFZYQVHzQvNksFqZHWZGtW2qML1wJSrJVZPNZ5kwTkK64MeSnwQrdf9+3uvPfG5K3MYv6iP99j3/uJAFvFmMv/4X3jCG49RwA69kS7W5H64pwGqDKMbk8SMFQ8RLCFcOk0QJYUIVxb3giBIps0Q6lkocesjL77NYRapvW2BWyS9IzJLpcjCxyowhlF5w24RlPYZWUS2s+dKOqAlLDaayGboHIbUmgmrbjKHYuYwf+wxMnfXO2IeSrX5OqpBSFpr06lXJK8gs7mWGIK3uuzKF3mt/TKWch8c5IEV4nvZPfCx/2POtELO+c9/wwg2Xl8TrZbR5xSQ0hJE1JXTpzP2ATEuwNGEQXJ8gL8Znb8sqj1SUK1XRMWE/rOqvOb7kXn95JsiTEM/JviXLg5ULCrBWimJpSkIXwXuy3wSTihWG17+r6OLPFlr9foJYRRvTXqZRtcktCGiyHa6qr98LrmX1LBni4IXxwhHLOsiFMghil+I5aG2WokoXCuacBfUu1lYwpf6ch+Wr1OKtoiAmdRGSRbg9//wL51+4pwYXJSS2UrBDC6yonmgENCOlrLgmXvExqnFEsw6oPgNVR2MBBPcCeaeAtYZKK7+c1ksiCfgIbTdmTKStFROKhDg+g1ZTnsgXsChHhK/+2TQPwF2trQg5YPUVWR3TD+Groq1wHOBkQaWqh32DUEN7OQJFql3CrKZM1gpYeFs6SrWAtcuN1M5CuR+rsTGYWofH5dQZ2yTcqsL6yHmTkEf7z8wSwLz/4QeQf1Efy8RnOdvMoM8T2efRLCTlkssgR9K0oekgk9YvIOVIQcoxKLedXesCOJtjtwavE6YyfRJZUc/TeUei1TpwJ0aFjsUT/TCY98DZyun5RhhXZ12V1EnkStiNOYIuZ2gNZTKnV4S0aTVnWuLjQjxOppyZvoEodlnIZyHuN3JbaKcrqpe6iMYFNNl7Mh7uWb/+fcabn9LyFc9ffU377IK0lX1+xTL/Jcbyu5Q1y1na98j4kvFlR/ZnbqdX8MUzvSf71yeSjZ43tlF3jGGHQ1eA+0fu75df8kr4xTydgnP+8fvkvSUnn+xW4M+ewvslWXBaGirLR06bR6+ojAa7e+354fgujJuwvL4xNNBI3B5ICUThrPfc3e3knCyXC+rGEOfUVp54JL5R5OHCkCfmBvYmwa9cs/PV/sTDHmzm7B8aj/FIC2Vciv347LeKe4UX8NP3o7l1p2VBZlEn0th9EFbuquGONWOJwdxfMx/fYW+ESKmYxUjSOmPudBNisyotaJPIEy07IR9I7cReU21dXrPfJtqCuvI5kqd6tx6RpL/6J3f+m7/T0Ll/wvUCxh//UcFoNaMO2F6wa2u19lKrG8aU4osZzAnWleYBJB9+b2Jv4IuvB6vC80+Ez76frKvgbrhM2qL1/qQc6g2hSTJGoK0cxMPLXZWZ+CiXlHNcElBUjyj7CfZZLuExim0zDwFJ8jh8c0yAI0kpto3vB/vrOGHFAPHAtH6nLXfypshaJSklmhiXz+HDT3bWt8Y8JsauDmk8vE6ev5n85X9N0db58lH5m//bVpb9X+GnK5yWK0FiIXSBaUlIY9jk7J1okyUXKvAEiKMDoh8pCDk6l7Q+w5mKd1hHAlZR+QTSj0KlKt6ZkixbMbdmUC6UAF2VFnXpa1awZrMql+rdGSmIG2blhOCI/FRZ1JEaSUGboiZEOqR+bPqkZLWDwbWBGifr3NLpIpwykQju7u7qC3UxuO/Emshv3iFvbsg/dOTVSj4+k21n1QnbIO5XPltWPqhDBLHUGTCebxV9VOFpbrRhPLDjtvC8T+TxV1tQ/Us/PJEyEa9OJM3DIBFBHHuGR+D7wrruBIaYEDHx1HJDZaszchbT1kwYm9PWjkghYFQFd6cdxgXvgqyJphHuFR07WuNDnKUZc85i4UKxle+UfU4i5ODm1v0CTfyVc3sfLCrIUoIpocc5X9Bwxq2SNuMwfwSJS+FnduocLi5cCRbt9b3LIKYg7sWAS2e2jo3JtETNMAb7svL++q2QDP65PX+QmaWq/Of/wXfx6czDxReHuYAQtJWg9bPoXwlQ4XrsJY5pHHtKoWVEq7gn/WAAHu6syYtZpYTQzPg4vEkpd1dmsbGXtSBUtf6E3QsEn1nR5+L/ab332mRM+7jXcsSiFWXJ+h5ILx1CsqLbI4Q8RH5dSiwVp/4rkWIzhxG70PshoEkx3lyU8OS8CE+bsEgJXaDMEbRmDC/RV0RIzWMHTcJL6P15n2/FyvyNzzszqvDUp9DXpEdVQ3vUJLCK9qIg3uc6CFkq4wpqjc/eVk2ul6yMRDls+oC4ayz3xdsSKtqlcVjcuqFvQWewX5XWy43XUVZJrloRxbAgdaF3ZTklt2dYlskYk44VjyqLcYXU7zY96Us1qHg40BCpTOmuNUEqBb+EqeLuFnx7EDQp2G7OsgBmgOI1EdLDNSh5tCgmTcuuPa2cOyJVJzwza91KfYGQoC1lmbxuiZgyM/BvxWr4xTxjOi1euB8lfUtkwdOXRqqVeISh+/jYjtYPOLAc4o9ixdSKqrHtvSpTJYV9HyySzAExO6e7SZMXRpoyIxGWOrAdn5+1Xk2EWRbPF2A6VFvhwdjFvbhyotWx9CKaqjaaOHMoqcJ6argPNtfD1TgxK2FruVjF4RJsBd9rqplyvGRVGZtD25HRuP9hsFtn/7+UjJ31obac69MAACAASURBVONSgGCZCSJlXz4aNzyi4iMj2W9aS80AKzuu+CcIIhVhiSByVvwuZh0KmiJRh6aUjgQEg1RjwVjV8U2ZJ6XP4rBNczqtqsdjIVvSnk6oCbLt2CKwBdtWMZ1tbIgG6h2/NPLsNLkHfa5651ujjwUkcZkISmeQccLtGemByAAc8YHqHQZ03RHpxLrhJ8Fi47wo1aw6CWsszyc2Ah1nRtalVHpg0SE/cH69oL/7Flka2w9h/P4r7NXA586qd2z/9+/RfziY4xXEl+TThjyfsPv3hDSWfWNrr9hP3xCbgDRm3/GbIGr0ceOG1f4awl/9jc9+uevgF/RklgD91/+8caJiyMMK8j+6VMRBhdUGXQ2PYnQk0KQcC5fF8a+Bh0Y/V5nKXZ5wGstiwOTHvfP9OHHdNnQ5sS1w9snDEJ5QbrEjN0XvzrAEfOU8axVbtHDQE/nqzNPzRJadazyyyImRO9enwNey2FsaySjGzDBcNzKTPTshGxkrKUnvCxq1Zzap2PSjGMo39NeNeb0xL4rpUVYxvdrDHGTZ6NsrkndsM0jdyLmQsRM3w+4eMTkRdiOiQzsjCNKd6aeK9Igy9D1/6rvK3/0x3D7R++DbB+HMpFFnJ91Ba07DPo93lAhOVpwFWJsytdgeiyrjGqzfE/qpMx4nH34afP6jctiPkZjMYzAXnDsV5ZESpPNw3LgHEnJELfxoQqpovEixQWNNZAdZwLVEbc+Ch9ekimOfLbZkkgf8thzYTOel4G5kVtxsV0bEEY0/asgJWihiJazsMjAx1rfC8zeT86o8i2A0QmELpz8oj4+BtI3Xr4x/4880/of/+filfkWfv/DHXqHyhJuSA5YTqCemHfUgNWg0FGdFS3DMhtpkihBTa/bbC7CdWWcgCwHTo7EwWMzwo1QJV7Zt0nqdyS0VbCBeMPaRcJKaruURcVEJehp7JBcT0qLg9JTT3KahupEu9OiIlii1Tae1zjYDswkudOl0hBODLZV9Cidx7ppynsHYG2/PnbYYmBBvzvDGYDmRfzGR32nw/A7eX8EEeavkb9wRXyqRj7gZ20i2uOHPgt8GmU424arJDGM3Zz4Kd3Oil4E+fJqDnj/s+cddWX/lX+ZwHTkmSddecO0XIZQknpXLneMYGqCHO8QkjgbVWWYEKR+NeyFmxgx6a2R6CalWbk6VgFGDY9JJGq2PQ/RQJJ2k7gFJDZpEnZlaDFrqziJKRQpnsjTItzC+FOKSnI7Id2TQbKGfg+tTcP+6YVpDINRwh7MU0L3m3EG7LCjFe9s3421PbiJcI1m1sUWwmTIDLposYfzDd8nlPA8h5Pi7/kTfiy/PiyPrbjH+y7/2Q/a90joVSS/cT7mgvO7aHA6myEpiSRkoTlYpggqySEVdj9SVNai+rDicW2WgqUb7+pkpcjj/KDFUS4CStaL4I+uzMAoRMB1yT5aTgJVzOZK6k/RKfaiWUNvREsdECmUjsD8Lc4F0J3tpBb0ntx18VsRaKJ0CEdpS5QPuwrg522bofb6MKJhReKWQwFFyT9al3F0pFfvXlkzX4ju7MaZzXn9+A8S34nb52Xnlkop1wVboB3J7j6hpivHRYqcidFGUwDdY74T1ctRMWpaIY4qtQYtEXlcMcBy2TG01AxKDtliBuiXBlGUVuNUEB6LcW1lZ+Eg5JjH1wdipLqqrVubVoiy+L4KSSB41wYGkYdIwpF7KTYij9kDt4CZBuVlIhKrQlKgGvplVoz4S9oA0wRTIstQvrax9jhOUQpxmFU08wPjzaFzwQ0S7SrUPaQOZic08BMNP81nsgJjHIZBSrhnJEoYijrxxSYp1iDfFZ32RC7BQsb+altRfVkRtPD6T9FaH/RUu98nSlab15UyvKYpE/iMWac+KXhSEr9ZCqexaLKteareZ0Jeg9VluLj2EkjjWXoe+1CVWtQCj7WjmyZBqvPP63c2M3Lych72mj3NOppeFeFmM7HDbBn0Kpx8EY564/t5EtWKZcLRZZdJ61u+2AGKEWLVyNJiax9/3p/mIJFMb0I4JWD+myfVNHmLHGKMOASrzcD/tyElQ5sfP0qhu8qaC3HYyFM/GXIJxD75MchVYkuxBrEaelHG3YHcNjUDvFDmt5Nnwpvh4JjPYpjDGzo7B3WTquV54skGbcFmrpUmDocquA2dB+kvzycItPjDtiOSuG3ZOeN+QaydvEF/dEAZGZ8bg9PkrmDfWt685+wkLpafBTzp2nti8sD19Rfv6NbJD3jv0BaPT2krnC2QEKo8MjOkLg6RFkm2hqSG+0b3xuey/5JXwi3lC4Eyy2iNbFOeQBD32jLUL981orETsUD674+A9sZHsX5yxB+FE46ILqzT26MxUvsnk2YRbXPkH+3u+bsmXXNla8nS7cd2dU1Pu7MSJlcvFeNDkdFpZV8WeB89fBE9PH2BeGTp5ei+kGLd45tl2hI6Mzu35A/t8QjnTQlmlceorfb2rg1l2VJzpOy7BYDIl2XHMr/hWB7P90bm7e83CSh+NOy6scUEZNY1MJbriu4Fu8HJBMOMkyiLFirM4o7ISXZEbxeCk9uM9kiHGv/2v3IPC+km+G4Xf+F6dq6oVGWIBE/3YIl1Dl5eKbw7uRbD2cj7tj8lyqf1LxuDDT4PLZ8VRdEp0Eo6oQwo7xWU5iWBDeL5mTaSPdy6uSApGoqswphB6MJodxmMysvbWF3ZHa8ruhwNY5GiBzmr/arAYtHQUqfr5FGLUWco1SmQ93LFQl9fbLT7WnlsWXD4F+hth25Iu5bj1Mcs6lMnDvWAhfPhmonPnV1nIAvhzPzgxwhAm1gZz1oVnkXI3BTUIywWkJWKCtoRmSAZiHfcqIVBtB4+vWLabOT4T4wRZV6Z9zuKH9uLMlqxZMVTpgpqxND3OVoCWG7USFMZqrRhc4bSMikO6I8tgCeVsxiJJd2e4Mxs1GO6gbkQ3LqncS8MpV4Zp4S2CDdeKln3n9SsktZIVw9HrQL4O9CdX4m99Ae938s0C5w77GfmdIONKXITdNrZ0wgb+yrk+QJ4FVkf24OSJfTDul5Xt9TwG5J92NOyfdroUKBdowmWp83hKcYTEaz+73aohvKlgEVgWv+/lTF5CQOFmUvKIZTWsNSKciHGYFUo4TyDT2LcqPSjG1aS3VoIrWZxVgbZ0euvEBGt2/Ixk30rEaq0x5kQtaV0xMc6/1tGhHwcBqo3b06Q3ATpz34/9tOD1alLtsgQ9R4lYXZgTVg1OlgynWmajwPFLO/Zdqb0uWBDbaYsef6eftpD1ImK9PP/VX/sBt1GaxE7d0/vLu02iXMtaWoKk0aXuhhHlcK73U0WC+3EfnDMKGn+4qqBEscxiAM7Jx7UXR3Jdot5L7smYXg5Qqz1OOaDwQ2HWeplSDDj3ehdZq2TYaoE4RwlVNQOjDiGMoVw+34/19XJzEZ72wptUoUa5t6HK9kaFvhApARWtRuN2LBIhy3md9a7PI4br9ceuIVKUySgimLvTe/Exf97nW3FE++6dsLdZFvMo95USnCU5NWGVUvWULJYDE3MrsDRego0YL8Yj0yPnFI3TerQxHJd6SHIW8E4kKrqHkiO4vBEul8Z8rqaIPeuLqyKIJzl2VCeqgckg9yI9aqs2FKmfRLhWJOgAw6XVQhYD6VrRRl7EiIK7BYc9PvKwwFMZ6sO1NShORNghouihuIoypESr3Y0ZR0Y3kvYHtnmPl/aMmrSupvX/KzCXqkeP8a1YDr+QJ6WU7mZKehZvJxQzO7hZ9bVxr8OO1lvn4FaVJ8WPQ7Qe8cTkyB2PgrTfXawuUm6QBfhLb2T4sfMHISUiVRYbRBSRODhY8nGK3FrV6YYPlMkiSqMuFL3VZrmqshy2ZR1C84p96Ew6ZYnukpyb0xeBtdPvzmSPuiSOnabFXatsd+0sEUFrSfPKPONCvwtO943b37t9zHjnnEhGHRA4xFIfyFbNkaJRQOr+Ajf8BCHdvZVjIAe2d3y54iqEN2CwWHyMf2rLYtoReGWHa+qndenLW13KXAUeOstlA9mqljeh9Y6eKpkna63TiCB7MPJGaGPOJ0QnqSthK6lrweU3QabRxgZPyekCaoO8nMhLJ8zRy43MiUxHRrBowmhk3tD+iNk9yCQzEFmI54X+vZ3l1565fPee5c0Zfv+bcqYl7Od3+NdPwJeoDOQxkWdDnxI7Abvwdj+B7eTSyOuN+U64vTNuX13xJoQJ7dy5F2gM+sH662g1WM17sk322ye4tqgX9L/+65e6lvWo90IsWA4shFMqd1ltV2FUjPxwMuu7RuQZeXgmpfhTeySPPtmbs8lAmGQ0dnfmUnFnaYMtnXeu/P55w3UgGyz3C4Lz1ZhsbfL68zecTic6nXgCeVzYvtxhMZKVPQRP56ZXbvOJ3i8FdY6J2UCWgUeStxux3xDqgFZV1fdk26oZeEy2vdN7DZ36w4mnd09YTsiG5yPrcmXRlUwtt07fac9VXxu5E14tPZ6JhGM26DrRCNo6SVdUFyKo/0aEFsFvfrdEtk8zgJ+cWgG0NauWWwSmHFEaLci7QDlQFz2KUyBuwnyXtLsDTuvKhy8qwucOTzfwYn3jVPumBnAc0G9Zjvs6qZWTyiOP4ZAQAvnyzhzg1wIry0mQVntn14p6zYyPB1mlykfKsVDOdnGOwR6HAFZil4QcLutkq/F3DRSPZjofSbNqZzSpC8KasD40xpeJjirxWc3olGvtckrUlfvTJ2xz/zmfH5431laOFaEAyKoTloGqYWGsOpFQpitjAlKxEsHQ5nTJKr2RqPeYVQylC6xrYjGO+wKYthIatGDCTRspjqKsdjBPrVhZpsliQtMDWkw1fXXWIyajH6HIix/2eE1SobXOYstxoS9uTTdj2SfDdm45iFYC+mqTpXX2m7LviUWyXnqVW02QR4evHHn3RP6PX5Nzwp86k9+9Iz8Aj1dSJvZQ4/U9g2vCnMK8Oao7qompc3cPy9JZ75Kt3SqKLn90kPKn9AggUucwy2SlROuMpDVlexaUBdEstliWWFpOFDCtGFZ/EQysNpeIqJiUVtTqJY0ms/YbIbCzoxaHo5CPkanpwdyKpxQz2Pe9ynSKPVJc5F534fRgXRbCkzEmIQ464G6yf6H4szGfEtXO8mqSEbz7siK6KoJMsD3qzJlVRDWl7qatRkiIllEidbKoskgr8W4mJykh7KffDO5eNcb+q7GW/mC88NQaWyV7cS/HW5DcZt15iolV77hTExb1j6VeEhXVn3k48I475HJEVZ1yBTvFVobau4ASuPK4a+URK8zCvUjUmtQj0ZOHa1pmmQtaKw5czIMlGOVk1SgVcn50RJezP4aT4zApqPP83g5koBbTkqOMJSohZlo/r1P7au7Ch2dhu1mlcSTZrgFZe7VYDcia1J9Ts4w6mnzclyMqtj12oy9VzIL+/M6sb8Ub1yXox6TCvaJ6XXpFLKiDRdM6UFzdGc9KV2O532imtXukkKGHhmh0meiRFbaqeCJmHWZpRo4ovogq4sF8hMvnQlil0G438OaIKCp5gOYTYlYjogi+aync/iKCVIQvEfywuwNEOCJluVcrYcla/b77Xu6qlONzO6aLM5IXTZOog6ZSo8iB07IVu8KjhDYRmjl7GkRDM9iPnyWZuCgjkoVgG4IcsTc7vlzSq8r6U31emmcs4uCJHdQMCZQStRA/BKUSFDOD1tcSK7Py6HFcll7aJa3VppN5tDB1/QjUqzXj+FR616qblrodiMBL451q0nswQznfnxjbVs07ASq9Jjtt1IViXRmzxC/32jRbL4EywlHRI7edxe9qxYeLBq2vTA9UV8wmiuF7uRWbtWpxcSe9cvw+jkrYWc5HuQuan4hxTANaXRK2Z+AQbsnGsjibw3xR7iX/ETfbp/SE136w21qXZKwOwcsgWZiTaiUMoy1CxKBFx1tAOv124eYb2EIuE0Trgr8NvJ9KGJWngjOj7LsTpsxnp69BxPkoqOjVRjjL7pzcMFkYsdOkodGLC6QLOgzZywHWGmxjcrprhA88V+S6Iraxu6JtR5Y75n7FelXT+7V8zpeHRNZTDQ9kYqvTvvuay1eC2kTuOn285d3NWRtcnwbNYX/7yJpJPBuP5xN8+D1cfo2wwJaOzYE3g5vxvN8YeVdti6MuvTPqe5W9IT7Yr3cs+mm2zrku/KUfnIj5zLooTSdrGyzT2Jk4wpM4rnWhfxDllmfy6RG9M7oNGkbEYNdy34gt7LnRbSllNGe1cxk4G0uutNnoyyPNX/FhwP3qZF8YUpfJOZJ9bsTTIw3h8qDsIqzeeN4meSq4f7jg6qQKU3fk6vXZ2ZnwnaFli+/ZS+i4OvbQ2eId4p3GxJdyLKYoPkF1o10aLSeP9kyLVoMaN3o6ghPibJokDlmRRRPFoxPrIFPYdGHuOxJWIOcpdLkxvdG0cfPkPAavVuXdJ2j8Oy3FoAoAK6hyRB4HTEF7RSTWtbhUWF3mVQW5gX5WQ4w5YXsqp/PdW0oA27QudApbmZ0Rqwl0JMwddkqF8Mw6q1Bxd8mDb5UVadBZLi1thUxQEXKvgcxRilT15lnxCtES1VTrzwNUBPGoLfePGMsaEggVKdu8qtM9X85pML3Gxz6jXNMqLG2gv7awDQcKYp9mPHtAF+7vOj/+5pfzmX6bHtNHRkKzhbYEuimpA9+KH9XUMFloY2NYR1pjjmoh56iyJ5NFhCHHuqSm9S4HV8YTbY3ogsxJ6+WaWFoS+0BV6VbFTE0mkidi3ZE4WLaREIqKI2K47JwwQqQ4bBN0FuQbqjGd3IkMTkI5z3pUq2czlKUEs9zJfrSUJ2ztVP+fomxP71nXe+JxJzch+4AP53I1/4lzDTn7Ff54J373GV0WMj8wMJ595zFviO54OBGdIRNGQyyYjHKjhZAfhC4J7dNuM/ynXXf//T99j7EV71gcLDmRbFtj3JK+cthBBAxOvZdQNSetNeJwoSRaZTnM438zSP+YvDCDRiFf2lIOaouDe2QvDqoahMdeUWWfJbwvvTPGpC01+N6H1zkrCtXhR+O6au2pIJxbZz9P/Nk43S243VBR3n7HePeVMG1Us3UWzxUHDLZ0MpRLc5hefDARFgluKZxb4ul19tNErWM+2SK5tMN58yvwvDizRIT/7D/8HnME04+wfCaTKgGZWekty4qkjqElPh33dj1a6z2OsjhgjoTlGKYcWoJJpXtUpeJ4cbT/zVJCyyVY9yijkELEEdGTirZy6CQZJYKhFTuUoVUylaVjMGFQTC9xYeK0rrgc716oRNzxfl3ESHHmqHdjYZSE3YWx13uxLYeYJCV4LV3ZbsH9WrlI9zyMG/kxoijUsCxFDqFLCC29pbfCQv1RpNNvhZi1qNKzPnCTpFsyI4kKBKIB1xsQzulOuTxQLCBRdi9uUG9Kp1RHM0jXcjh5OaN01oeuGqQ71q1cVNSlf84K5Xseiuil7M3yQeBhHr9JAkZkMtwRU8a1Ni+PaqvQJkwpVR1q6qdWFro6USk+y03VhINr5Qfc7ViYxwLPSOIAR7rURmQhmLVSb2cixxSzFolVjbvVn4OE9BLFWnLYUKt1jkPtFTP6Ae3e/Y+ydP7FeX7zbTUHZgbR5AC7l/CTCJfvXyrG81NBzytyTnQRfDr3rxrb9ZnsJ97eO6Kd05vXPNwFj19+wVd/z8lp5AFc1F5chwo2l3U+s3hSy9pAdkSspjXH1FtUcZTlBDmvrAb94cT2YYAs5ba6b9y9vmd7fKZd/ONBLbLYJabVKoUc4HEvwLKm1UYxAt8fuU3FEZq2qjm3OFwHiYxAqAhjTodpzFHC3rrUFCvWwfXDSu87clffhSaHAzEb2zW4OXBcej/yUKqt4Je3CH5RzzRSBppXTqq4OWXBhLgGy2lnaEWnbQfoyBTa8z2tPZO9hMMmTs/gWZUmypwDjVvZf5vSLLhG1IssIddkG07rO7IZNEd7MvagszPfvSJXB50YjanvP4qJPnd0a+jqXPcrOoKr9mqdohF9IL6TJoQGnYldBPPO7fef0bcdW99DP4MP9u0B04GocVqU3/7tH7HuC7pcae0rPnzxyIflwszgy8+F5/NnjH5Dfwz76Ru6nfCnK3ou8LhfknxSdMCqJ7Bk3m6o7zQWNgqWaTNLtN/fk8u34lX2z/xRhD9x94FnUWYWd3G7JfOIg2kqkU5OwZ4W8t5Z7Int1GEaNwaaNYhpomh4HUj7CQUakz6MtjzQtNxe+20QpyvXfMNtvudqJ8bnymUk6ZO+dp5/7wOPcStmnmy0LzuphjTnvi+8z53MifXGwPEJtsNcDBuC5KzDjU+22DHdaHImz5C3QQ/DLcvh3CZdWlnPzZl05hbYq855wDVuXH1waRdaJj6tTpdrR/VgWuhGy2ReEv4hnL63sI8g+4JaMltnfgHt7cBYcIElBG2dv/wnO3/jf/nJL3sp/DN//tXfqMITyUSi+FQvgOLdq2V5teIiXgzGByAFPUO7VPEFUtXd051XbwWzagvTcwlSzx9AV6lLY2Rxt7LcXFBnIEN+xq7xGhBFgN8q5pJrTXBn1nskPA9BG8I52qR/5gSrC8Px5zliDDorUi9SN4+ZJXS5cAhpCQljL/eWUr+DDikWYgII+w7aaz/mKbCLsIcRHqyS7GGgg++9NSrw+Ktx+ft/e7oHox2OoptwtygaDdUa6qnNcsa9FOhMoDseK6YlItCWg111I+kV61EqJZFKrJCzDrvahHCl7xXBt57kyKP9vNzn2F4MLCtBTORQQbUjubFoJ5sTXuB/rAad4mewDzDXA+SdOBNTJyKLFTqrkAo31myYGa9VDz7TXrzVHFwfT9xdnhG7R7aB7Cv5t38Mv/0GfnyF6418GIjfw+MO35/4ML5i8He/fs/GEz0Nic6IDVHDzMGDFsYmUVHeU35sdvxVff7s5zvu5QgRE7abE26s4uhFmeHErCF0ZLmz2tHmSla6oB3nOdTL7ZSKmTIdOITvkyg+hL46e8gBmT+Kwtzpa+EanCiHl4Atje02iElFTqU4ha3VhhbUUFqyvh8xvFAisxUD9wHiIdi/2mAoy+cCd87j4+DpUTnfGbYEtxms2jgD132y3CXo5PlZWXuwT+FuV1Zz1q78ZAQTYbGGys7vfC189iZxg9/7ZnDsjr+8D/Wfw/PSYvhf/CffJ25V/BVe97g9D/GTQOMwn5AMF5pVtNlGCTWOYK3uSOGH06qXKIZSzZUBmi9mgCqVcxe2NNZllvHh+HeZwTyKUMosWomrRu1jmSVshQocnOxJCWMjFY1AQukJ9v+Q9247lmXZed43xjysvXdEZNapi002IYomacuHC8GwLQEGDL+AHsDXvvZb+Sn8BgYM6EaCTrTA7qLIZld3VWVmxN57rTnHGL4YM5K0YIskYIrt5LqrrKysyNgr1hrzH////d0xST3g8FjLJGUcyTD0me/msayFqppf2xCiO1qCfs4F8xG59BmeZWm9w4cX4WIGmt8jXwYdWdHHsnQNXWiAEc7tVjmfnLGWUP+h1tJ///q1OAEEcPhrjItkTGnQKYyZP+DlnJZZWzDuEkIaqwTVwH1CSW5VDKNvJa3qJeGR2uMjGD5ibdRE0pJ8TLSBqGWWXXJYMhweQG6C17QFuqdlOgJaIZsV7wKa0pu/hkCDj61u5sEYadUpprhOzPKDBDAr6MonG+uHZFVrhmS2WhdH4hXmnf9udcBERjDTimjE+m+JdOyMZXOVV7u/ZGxxSkXN2dPTT2uf5gPqD77MabhIauZBUKSixeEIbn/8Qv+6IX3n9mx0H5RDaI8nvvjtM+9+dWC1M+0D9w/Gy3c3vpsCyzpZhHSiqBLTsVbYWiMWI6JITdeMT1rvC/CeKns/KdvTCT0JYsq8Hjw8vuX8AN/7B+rTGfvuJWO3b5847I40YTufuP7w/HGb7UzwlnysElkLizCHIU2Yc9k8NWMUx5Fr6FCltsLtOkBIfpMH2pX96rgoGsL9xZmiiBa2y8H9zwrbJa2nPiVPAOTPr2VHAbraOvIgIkvg/bSuEY5qRhyGKDYKpyocc65NSqEPgarMwylasLaj24FZSw6NFUwGSCxrbyCyNmanE/vccUnmQV55eKx+QmchWiwLu9DenBjXAt0QGbgpo0yULbP2Pqh9Y8yDcnqL3u7owylbybpgx47PxcSpio0zUa5Uv3D9Yefhy6+Z/IK4PebzpVbmXYhy8MVD4x9+9ff5wp6odUJ5w4tufH165s2fXtn/wQPbl2/40/s7fjg694cXqgr78Uy5nBhUxAN/8Rz8WsbQjvugi9HqG3wqIjuqcPdJDafLmUPvf5u3wd/Y9WWfvPeClFWv7ROtBQtjUmnuyA+F0xvwt3eMhqhytsmQdN9updMLzBjpYvDcGmurFHcOTTuL10Yfwfb2jI1Bvd5AhfHY+P6280F3NDrsLzxfrzz++AIxue+gPqn1Pd43iJFRVzPG9Ya3nvEiX/FrSeE8ajobW+kpTADCRLQx74PT04n7NGQqsxil5la5qWIV5tyXZd2p0rj7wblWdArTjatNznoiSgoK7oJuyv6+s2GczhtzJoC+zIP6ZWf/7kz5fNBcOEIJm/z+b5zRf/bpCfGtTcKDrsmF8sgnuMrrDLMWYQLHu3zEnx5ZzzXwkuLQ+ACPb7LpjVWscyq5hLxcgv1Yy8SSAtFcUcBl3M03cuR7lDVj+QGy5UFARZnTYbBoqtl6jSSDZBxQq1DXrBW5HEYt149jpvs5F35r2F9b6lguNPdEUSCJDkkmV6zfu1p8yWez7cHpHDy8Kbx8N2kPK6EokkwTDdyc3/lM+KN38NdaL39C132DE/m9LCUoJvQqTF9FTwqoEqR7SiSSYxVGk4p50DTZdq4Fl/u69zQXRs1Rv8AYtB451JaGtUERzzr71yiOBFLBD0H6SlcYiCZYGRzxAjJo0pHqSGgKVlE5NaNxTqdzaetZ3PBSCDN0NKIOqpw3jgAAIABJREFU3J2tZcnTRsKOS7lnQ2IY2isf5s7jy51T35Bo8P1AtgHf3sCM+cug/b2A7QdGqehtckP5o/LCkMLmJ0YYrunCLuFINMyyXfnBO9fYsS7IgPYJM0v/Q9djLfSizJh5vlGhbJ3rLVtsBaWXgs9JkXS5+BKhxoBW1jms5EJQPi6DBFvt0kWzSEJQWivMIpTpH80M2URY0vVKlgSUJqAZO6xVSYPEYMyZBoxIbp+E4jFR1RR0i2Fu2DG5PEqW9AxjeyuMQ5P7q8rTZxu//MXg9GDsnkJFL8GYgvSC2SSiIWOwW0t+3TXv9doNUyUw9iP4Ucv5Tp8mXZx9z5+VT/2KCP6X/+EL9NB8n/hyLIkk+1gycuhAsfiINjKDbTmpDpwZQTXNsjfxPJv3gnkyHQ9P95SvEq1pRi2NooYu1xfw0e2lWqhr8WOW/Gs8RfTwxeHTiUVjt0yKVU1XlF2F2aA10DBGrEKAj2zvQLTQUcY9Bct0fuV79L47vQvnMymoyYFbZUYkG04yZTYDihgidX3V8TFqm/d1iuyi6VyUSPF9TOGyDf68z5D/sO3y37t+LcSs+WpDJ7PGviaHl+dCbc7jKQNwvRSCjFjltiFB6LLUPQvAg14TOBqRyqJX0rO+gNUlqY8rkgjjSIvMXByFabE4EeTm8RTES2A9NzLhSkHZp6NV82ac6bApngyHGblBMg9CSgpugHkO9aGRlnhPntacQVlOG0RXVDRt8LYU2LSrZjzN3VPowinLAVNIWLxZ8rt60QVLTXHBzYFV2epp2d53z2hci0925vq9L0+IGVrSnSWueBnEDSQqpy9PPPwnb9i2D7z/2cHxIQ98437jj/7lCy4b4S+owaZZp1sJQgdVBOqCPpaZIoQHx76nG2wG5WxcLhtvvjzx4ecfcE/wiDaDM9nKFspv/uQzvv3Tb5nlzq6dr373a375b7+lbI03P/qSX33zp8SeLDT9rPH01RO39x+oEUBWdBbywAAOIUwJ5h4MzfpoW0Q2eR2+Jbj6RLqiM4e+YQORBL27DWqr6BaoOcMKVpw4N8a7HXmoKaCpY+ZZv25KLDaK7YaWSgnDPsENYUWZpBCd0VNnhFLJ75OJcByVpoGcFbedarJc7Z4vr7YaMEnX4ASiaMZ+pzPINhTFk4s3DSmVoZOtKG6DMNhpyO1Ac6GcM8dy5rnl+q9o5fBUG+8/fwcX6PeN26xUFabc6Z+9YX9+QWo+lP1FmD6RkzHmO/y0oduEOpnzTLHBT3rjH33+n/K4vWHbOlCRaZwelfrwwM9+/g1vv3yiVeX89AV/8s0L35T3EIb0R+L9kWUM617aR/JMYgY1aXEpWJVO2IGPC1VSgDVdm6lP8Pqtx4rrhKl0lFIa7APrSv9QsDcT+XJwQ7hQeIhCxzB54PtunOYZdOZWp03MPAtCJBDfuPvBqVRCDuZ9Z9wbl/MZbhP3Azk/0F47aSL5SsUm6oYJfHh+x/bwhrvtSG0ojotTRs/Pp1+wMXFJe7xZckSkCD58bRhfEC64zFWwMdCtM3wnZOD+iAzS3l6SGVMLHFfFHzaaTpwd4kQMQ6kUUR42GGMQDIjOMWY2bn72xMsvXtCfvEejZzFGEdwVHgrz+R31QaCccDG+fHPn41T5CV3qa2C1XCS2yIGwCSDBtioObx+CpydlSJboNM0Ixcjfhs0sodEV8wvNWH8tq7CH4DjIwbUG0hMeX9afY/q6lMyFh+8QZbU3SaIUVAQqHEcC4D0WcHbNjXPER27WmuEZmpgKLbLangJuTnlYQtcStKrls/aexuYE20oWtcxIt5iqpBONHCOve3DahPbY2J8Hvq3nkPIxWvT7vws//aeV4K9eL/4pXWKNUiYSQo0KmnO8lELxQTjMQsLeJxTZECuoTPzYVlT/yGILMWoouBKREfmwQtRnVBsGRAXxG1s5A07oHWhICQZBWWwZIeHaZTkGpiePC00V1JvTAmzf6bViHEwGEUpoOlDNgsMPYENKZ9xz3jMN7kCthReUTZQ+z1SdyKUz5+Bw5cPtTi9PeZ758IJ8uRF8D/cfcdiv8F+A/PiE/zh4/mPn3UXY5Ypp4ejOPGbiH2re67ulY+auWcTwqErMyAWkfHpC/P/TtTTLj9f//I/e4PaekwLeOHZj7oPeyCyy5MGztIJE0IpyT7cEveY7pmB5f7lRlnulqFJCV5trgChz5nvNxxIURNKBpa/CV84noovTt5bqUgTbM90TrJbEV3HhdaSJWM/CjKW1fDBj09PcocF2dq7vgcdE2NiE5BwJpRR++ME4PQVMpdWKTdjedn74VSaAtgdjv2vyntVXAx8ckqdHByqNn727/cf6OP9Wr1Yq/+Pfv2AWH5fwsd4FJfJ9KeRCJn++Br1KzrAjoMBwTeSBGlWUcOHucIo8p1ksXpQIYwalZJtgFfvYTii6sDeeXOb8QjJKqJoGdDRtfa/dgfdrpW9ZcgDCCEWOQDY+xvxdZBWCJYtZAywK+4ugLdAyV3RIOHwi1jhfEk5/hKDFUSkgThyrddbIOGNJYe2Vr4nIR4al+YLKL21G3bJFUTNNJFWZAb5MAn8dgerXQszKhZywe/qSbvdC12A7W8YjVBIk6qyMskOBVkrCteO1dSLdKEcIx3DqgnaWCmMB/5qkrVLFqZo/9OoshlXa60tbohLJlvII5CHQW27rQvLGFrKiMgK2powR7MMTgBvOcay/XU3Cf1hA6HIGCWgsMGkKXbtZWpHJ/LVGuiOK5k0Xi7lk7qlsrvyqLSHLnAVNXTlt/KPdUNfNc5dgjOBwpUnmc6UAznKFfXrX33u7McwZ7nQEtcDuAq3STw5jMu+D4/3By/OBWs1s+qH4LESbK+4qxMja9pBAQyk1Hyr9pOCFsU+YeT/aEHoLJJxxH7z/9gpSiRiIKNvTA5/9xpnr3TltHTejt47P4LMvvuLbb36eImcVnr/7DvV175vz8iEZQYWCXhp2HXTPvbVZpGilICa0Vrg/H9TeGbdJfWz5s6HBbkbZzsgxVqOGEZy4Px+IJrj80KwmF1G0DnotjIvDh0a5BNIT9DfwbKIKwWSuBseMaRwI799/ei9CiYl4fs88JuITobOH06Tg90m7ZEtaCUmOnq57sARVKjEmahWqIatFW0a+sKQetJGipMaJ8B0QNBQwJoIvoazNO3YuzHGgdDxq1jZ7YcraKDI4HyesVHiYmVt/eKEIzOj0vQBXTmfBTkHYoLZYG25lslO1omIMhxYvvL00/vF/8V/z+eVzeglKO4FXYgr1uSFl5/HyQI8d6Z9TXLCHd/wwOx9eXjAXNDKm6BHIEYRn+5Uuccs9wAdpgD8h7RnGG5SBnAbH9dPkgvw3v/0Gix/YxGka3LnT5he0eSUedqxU+ii0Ci2Uk294LzzPG2Il77UIejHqrFCEqUKNyREvlNKzPcyFejizFtSE0yy835TTqSePUYOYFS2Tcbuxe8OfB+185n539FJwS+aMhCGlMGYn6p7vvjmZ5NZXR0Zza1dkOiFnzHcIwaRk849NzgVKbHjLxjnzSdzf0h4+MLUiNRi2Z9RaCsQ7VB84ODh5RWpBDhjW0zFxrhxxYG++Q57fMt8dtMcUIA4LCoOs2H6ivEzmObBZQe9I+fTurxqe7ivLc134crLXFOaPa0LQz4+rRc6hNNLlpBAjqCQLNBkdsuLuebCckb8uAnVLB9W4ZjNkaDq8JqxWXLi7002xms9GPB3pkEO/5bkRu5PLx/W/XUb7XGauw33GMvj4dQnOBhyAm6xDBJxPik/HK2yvCXERDlsHl55RRsj/t1ZlIODG3Q1fjslWlWMBnKXkwWXr8NufC998/x/5g/01uRpGIHhki/JFdInagFREUyBI54mDjjy0URjxwqVUjE6MhP6rnPA4eCUWzGG0eKJsxvAEY0vZUrweq7Uw7X4UmVBA2oaUgxI5Q7sITTvOHaEgUhmRgcZsgQ62OFMIoh6IBh4D1UrvlSNeIJT+IOAV0UrphsfETTFV2hk+s0fEBi91cjPh/bFzGnfOHtj9hfL5E/PlDdre4Rgfvr9y/q0T051fPDrf3t/hpSJ1JkxVKtIG6iWdNXoQHgxzTlMYrwgLJ6HhfwevPzjfuM0Aa9yvO10L/VxWaiaYZIO0hy0mWrpAI7LBtyGUKFlwUVZErOQZy9dZTaPic1JPaSKoxZLzp0Ipivuk97JKubIsbM40JiT/UXEmIRWbtgT9TAFNN0otKei74SEoimMMUwhbDYeaS4FRUFstnst16msRcL5onn8S/ZZtrK6cHwIMZjXsnskmx6mlcBZjn9DE6JHP7Q9/AQD/74uHn9L1v/5PX/Eaez8sz+ivNKxcpCyv1FJxVEoK4Z4C84w05tT6WhaWHqVzy7N/PhOVXuA48gyZaJbkZYsCmm7ykooZkA7qLGD6C+JoGJD4IsOpPZhjlagg+CGUBiOWYERQUMzyHXw9gqIFV6g1RTovKXrhjhaliSFVOPb8XsRyhx2mq3QvHYBKzgoZ0S3cd9gkT5UiwjBL3MnrPCEK6hy70HuesxNrnuzpv84S8ddCzBoG+wyOe+NygS+2bNOJELQVrtPpRRLSuKzJJZzDLVvbSsJhZQ0p84DaBX1w5NCPzQFCuqoeijBlguR2xnZ4/JHx4b3QL8IWJPcqSMiiCY4iLYhr4D1t6UUTaCbrgwxN9dPMmJO8AZd92ldEEHcOE/aZH+brwyA8xaaJgSuHwblnjLBEAtyI3FK++ltiObVC061VFNyU6llDfXjWYOvy05spx8zMdi+BYxwOHRjuSPlEO5s8GLMgOpDeiJ61qqr5wzeuB9/9y++R80BHzc1yK2w1hYJAqJ4DvorAFrlhvjoxC95g3NJqWpsuBT1oW+PylPb4uDuPT4+IDq7v84OP44Uf/vTOdtlobzqbXvnu+6yB+tn3//bPiwZuA5eArTEF6hDqufL09WcclrZjf9nZxShaUBHGSEC8W7oc9VIQgu2xYgNo6fCJJnDqSG/MD8/EDOSmnB7y0JvMw4YXIbTgURi3gzJrKi4UbCasT0JXE0c+bLU4sR5cm8JXbx//Fu+Cv5lrSsf1TsRB6JmiK5qg6Xx032BMvFRm3CmuaFPcGmqG1clEqWUQmnDiJgVjoFGYni/GuuuKIirRPR0QNIgbvpos95awZNlSVA3Nez5EaerQKvbBuVenVxDJDd/xHGxvUnAYXdkuJHdopEV5PlTUdxiC+AXiyGz+MaFt/JP/9h/ztL2lns54V/zrC1qf4PlbePgR8q//mN/87/9z3v/v/4Lzf7fRjxP6o6+Q8RV/9u2/wcqOl84xhGlO50ToQIczfWNyp9VCOc5EFIoM5nFiujFU4Z58lE/x+ntvcr2xhXDZG43K7eE9VEePyqMHTZQdY47Gz9sVLDlIWzjFs0nimD0P6mF039B9YCeoMpA9GVrxeKbGThfh/qC0voEKNZwxJFlG+w4S+Bb42tydHjr3qyHVGDLY9MJhLwiGjIaF4XIgEuhMyKeHMUdgofQQpJzB77QoqB40NXwAvROWC6vhQH+PXhtRnFgtxYZTXRDZeJkC0jEG0we8q7SvOm4Fj07ltXU0mLfJfFBaFB5EuK9NeXm8M4ciMXIWiMpXn3967oZe12nE8+BbPTlCA+gotSZ4fa4MaADdUjySmo2Z9++h9eX8XhG/V6e95nkrXfIKUoP+lCL9PIKoLD7WGt4HORdlNm2Zi9PRN1DGeH3uCXMs3IMGoau9i4y4rxER0XS2vzrcpwjSg3ELtg5owYrhN+hPyfGykYKeujLIFbKsrXMuopN/YgExPbfKT8L9O6O+TTeMGuw68an8l79b+fm7PEj+Xbt0VyaT86FodFoZTAmiFpwDfRDiNDMiJwWNgBpEGP0i7NNorVGK416w2FOY1ML0gKoccdAkBc526VAH9RDa2RkvF2KzrLA/CbE7p3OCnEucKbIzJXAG6qcUw6pynkAVohubtoXmiBSrcCiFgzvncsI5pwNiGv0sDAuKtHQv6omyCYdNqkxqEz7TR94N51sG72/v+Or+yPa202RSq4E670PYW+UPX37J1ZybT6ptWJ1U2dG98lJ2Yp7SLel33JWTCGdTphbOWLa3qtHnpzfXv6Zq/uL1F4WVN7Uw3eje0AJPbwr7fRDS8pkSQhPDxdmk4OKrRGs951iYjKUKVU3xyyxB36UrMoWiMxEu4VnyNBJ7UwXiNZ5AxqliHdZ603Qfa2Xs+cDyCaol52hNIUsXrmafxqmBHYH0xMi8NqojMMzYilA8G2inZXTRIhupYwqzGVtJwPy4G31LVMXWKxjsARfNuNr1EDYxNlVuMtGiXFDqdO7RyDdEfgif5tQFao3DPAsi1ud2WKZazIxCLvjqq4XGhRsZXZWwPCuuEhGJYE6lb0LuO1ZU2tZiseX7ylYtq4jku1hz5oogl9/6CoZXjnBOpXAcTqkFO+AYgZ7TVDMAjsIAanMOTyluzIwZhuR9ZijajKVw5ILJU2RN01Det2O9x0E+LiTGTPe0eb7TX1uIxxSarJ/Rku9d8/xzqwQuabQoIdxW+UIilpZLTFks6Czu+KtevxZi1n4XTk14+2QLpgaQQkMho30e8jGjnP1s+QAYEoTkqq9UGC9Be0jo3hShHsGxQZA3Za1lcRfWUysCU2VXYXsMxgfh3p12AkLSHrgI/E4eJPHVVFh00f/zgxQJpi2o/ILYCwmldF8PrUiomVqkejvzgSkOIwxxYeBsRdiX/bmu6k9ZtlWRZXFcoltbscyQzN+i5DZBQS1vbpadsQkLZl/yh458Aatobjg/wWsek1oFLZnhzeavjDTI6vGWWXnz9Zn7t1fCFJnGmKA1RVQtkrl3MWIP7AewXXj6uvPwEIgMYmapALFakWzwctu5nAu//XsP/MlPP9Bao3WBqPQTnD7b+Mnv/wYvL9/y7/7NDSX5ceH5ctv6xgzDpnHpGwVjjMHxPPjV8y/SgbclzVRDOTBkkM2Gqh8FrWyNMKJC7co4hPvd2ETh5YVjTkqk0CL1jrRYcELhQKk145VNCrTC2MCuQZMgRt5RvqpkzfLnMyQ5JarJB7Pj1+Jx8//pVfJIhZQN8yuqHaRgnu5Mmze8Cpt0VBpWlhhdnTkrTYxTCPeSPLI6J1OFMGFq9qHaBG9bNoTsd+rROOqkFKXMdG0hI3k0Hsh9UlfDSTXBy4YcpJj70BEq+JEulLIKJj4Eds+XdUQlmiJyMBUKZ/a9UyVPsmLJC6mcuETweH6ktg0eG/r2xPiNjeAzlA+UL5+In/8YPvwRT7/5u9B+hXBhUHlTK1+8ecvPn7/BozPHIKxwjRsq2VDFfidxh4Wpe4qrUdASaBkQikT5WGf8qV2XOimzYlN5vwvj7ZXqhdMUtvX6f5GKR7DJznCham7D3CvTBsqGYFQVNrYMpp+WGOlJ17v0jmJUOXE/7rlMaoq2A+VE3A9EnP1lEFdHSkV4RksnfOIGJwrMBpvT9czhO6rHYpKcMw5LHlbDFaHl1rEukcI3jA8oTwjGtB2fRza0RiNUsPugSsfKYhtpuqNHBEpl4jTZCe/IuDDjOQ+aTXCfaWEvB/KZoz/7DPk6p40B6HHgUjDLd8L8oRFvbpR44rf6p8dki1Q3M6tgwtT4uFSzGcQpY9MtNNmglhEqVaWXHELvR/DmSxbzLGve86AZq/QmXe/iiTZwSaYjyw3mngujZiynwoqnW7K6zHNOCnEikjUz9lhcxvyhdxLZoOR/EzW32+lAAPVcOPr6taxEF1Sdcy18sIxaLj49Pldj1GpZ0li4CAWzoHRd8yD0Wrgfk/5UcAtGJKai1WytNoX/6g8q//RffYJ1mH/JZTo59RN9M25tJm5DNNlRs2H3SX25IHIgTxekXil+WsvffaUiDjySq6XU5YyKnKfFQQqHHNRHodwqzcpy9VVam4gX+kmJw9KNXI1KR+RgxGskeabToujHOIyKpbBmJVsINQUhqYk46Wz4WhIFRm0n5pj00mm6+LqazuIib/jAd3xR36JeoNyIeOCYxq/2D9jnZ8KEiwc2DtyMve28cIEyExvw2WT/s0n8hqJl4+m9cHvYUW/cPdvGLEqyZiSh30T+PNw+PR3+L82Q/JN/cOJ63dmasOmBzxV/ZqTbpWVxWJ4NKjYPjOVCiaARRMlzldk63BNo9SUyJYvrVEjMi4APpxfFoyCarkRRyeeN5/xtljwsm8oYi4elGfuPdaYc06lamZ5CWauFOZ3W0z2WZwtLcf21PC1i4WkKtUSiQIajTZkIEunQvltBYmRscC3dZw82a9y2LH+qHS5TuYdyKUKtyr4ngsdlLlFjfQif6Nw1Yq6/Xp5hjpm6g7jSZeF+VpppTiVKGhQsPJlWmt/b13ul9pK4hRBEUsdoLbWDjA2mhVkI1CGaZJKLFLJEFEm7V/IeWc2CKtjIvKF2xccqozsMK4FqNq26O2GFWj2bECOj170FuOIzATS+Gn3l1V0VpDagi/u9znQzSrb+rq8hLFar4hJhV2IkFq+vF8kxw5MrHRSGJiopRKklv6EzhCbCgeVS6q8RFvu1OF1eLkFYKuOT4ESKNtWDkKyZFc2BdYbAAnvW5dRyzxrReYNyTvteKbmtex2yii4XE/lnHOFsJQ/reHwErrcnBytcv3ekSlouzwKSbYWlVMKc3pLnkK9DYS4Fs5QAd8yyocdnwvSyHcFRLyl2RQpPocKcxvTX4SnZFSmYBSWMe0l4IbDEEvnYxFjWUOa2HpiRsbSIwNb/u7QU21g5VMhmLCMVYpG0FMonCvarpWVkTpYFkleR0bDCqmw/+OH/nLSHwP2grqyEIPgEt0AatFqR7pQ3gR9CP71mqisWg7c/3hg343aNrJEext0Gf/SHg0026il4+uLE3Yzf/N3foD7BsCtPj2/57I3z4b6z1YLNwL0RMwes3vJhaAhWKicpXPcjGTOWn38w6aYMmwmHnAdSAiFBJlIKFhN3p1Tl4dRyE71nI4sUQZ6FaI6brva7fBjdjhRPlEK4Jzx/caH6qTLciHDuXpIPELmhKpFb7bEr4/rp3V97CXrpDA46yiFC1Q5+AzqlNbQaxLHYC5prsO7U2FHr7NVRLfRQdsk3SJXlMDHLgVonNjaKKHMr9KOuFrgEeUZLS3mNExE7XlPgD4cxdphB9Se8D/oWqJ3w/YW6VZx09BXpy/Wwo7UhroQYYs+oPjKPG0rBW6B6Jt7d+dHv9txIPir6phOPBS5ndn1Bvv8d+uUD5R++gf/tgvyo4Fa56JnbeaMN4fOnL/mz77+BBnUo4xKMl0bfhIcp3MpgSOA+6HHmYCJaiJnPr26Naw+mjb/tW+Fv5HL/Hjke0DEob4xTgTqViuIyuQq4DFpxhEormkyx2uihyZYKp/WNW3lmzs6MDzTbaGfHqZTWOPrOF7URR2BXY7yp1FBEGnMeFDWev/mONipxMrZHpegTz++/4+Hpie0yUQpbr8zdkHqk2wfFqfiwtLysjvBSg5jGbjcKFbylAEJnyBKONDlWg0CZhBvSg+l3YlekOV0eyFWP4UyKNpBg7krIHW/JR5xTuNQz+5wUYB+GnSabPRP1c8RGchyiojLZDdqbjfLOOR53fu+3nv72boK/oeuQP581AMqUBLjPwMbieAiA83jJQ86ppQu3Lr5Uu0vWbq94dMSfr+vrcjTNVUleFMTSTac1Ie22B3oShke22W0sLmguQ2zFH4UUlDzNUuyZts+DgApYRhZNkselugbvNfdprKIWch48jtVEZbm0qmTcQTy/bo9cDCjQSs5bu/Pnc5gKZimQuoNj3N4LXDKqEaWh4pjvPNb6KZ/7/l8v6YHXyV0i4002wZWBUfojPE4Gjptxur5HPzwQOoitMB86J82GbysD9Y7ZFQhEc94v8oj5TvAINoizcuyTUz1R205IYb/dKO1MuNBOq8SmJGA+xobJFaRQpTIlOTAeEFZz8S1OK8qwO0VPSNWPQPnCYmh5Sc7WtsHVkerZNhfKm35mQ/lghWsI7s9soZylcbw/8M8fmUuU+5U4jDOMF8rTIxITD6g9URVSGvP9lfh8h88D/ZVAc3oJsIJp3vvizqipYB3hlOPTm7v+susPHg7Op5yJ06mUh26JLFOZnm2BRDDGoGigpdIj5y9jne88i0oOA5FCEUENzCanLdlakKzAUpTSFEYWH9kS8EUFXlvqI8jG8delSUZwPfK8l+SYdIMdJLx/Hk5vZblV/DULnedRifx1EscwyCIyMeX7X1SQyQxlewwujxkTby1FzyZw36E+QCvBcaTg4AJbET4MkBBuM3hogT3kYuD1+lQjhgDT810oEUAgnpwrlWRLewi8nrsll84iab4RLQtDBBa+uFqGNKVkdg/X9fktA4BHMo1V88/Yb0Fr+f1Pz80S0xb/roqSqpmk8329l2Z4LnlaLsT3oVmqYpFfe2Qq6/JonB+M736xMSzddzU0Qfeev7dTGAS2Fj2iKaD5cqsJubgpixE3ZhonJoZFOv5ad7K6KkHvkFiHfeT7uAbc9+C8BTcUwlMkQ9Y55a+uZv1aiFmuOUBkfW6we6qF4UshZzkONBsBcCFKVmGqCpVAhtDOgbvmh08KAPR00JTNlmCT8D0WTC+uUB/y4SPIqmEz9DHHj5MEt10oPWNmHtmKEocgp+RXpR01Y2uE4CFU1dx0rodgtgVkw6KwBroQxuKESQgWufWRyAff1JzqZNn7dA1l6LI2xoLeaz7o7FXd9bT1JfULJHTB65SqwR6rpp08X/hrO5F/giscwGVStX7kaAj5wJaScOypQneH3YhH5fGxse/BPNJJ4FZSpJQVjTh1Ht4G+7vBuQv73YljIAE//OyeYFrNoSu0pmCJUbY7t3ulbAc/+c++ZP/wLX/2DZzPZ+4v33M+N1pXxgxa1yTKSgq9SIIbwwNtjpdCMwGM8vbC8y8/4GPdD5FFCUWzEU/UOUiVvkrpjC6ZAAAgAElEQVRuedxyK8Rik4zba9vPgWwVMc/tZwjYkVn+KUzNeC4oU50mjSNmPtSiUB1ipF17UthvYDejPDnbJxjVKTGZe6GdEshew/NbOknelXSOu9FqZ9iRonrN5spRAXXUFJV039UihDmjCk2zYWR2hxHc2xWlwTE5NGghjBjEcEZpuHdMd2orxOEfCwEklNgms+xgE9srpSjShPvz5PK2YFNRbWAH0NBDiHIi/AWLTrFspIqqhDlFgjgHv/Pj34Ra0KdCfHFhdiVaQ0yov2nMf3VFekO++gz7k59Sfnxh/so4PT5yxE5vTonKNMPaI7EPuk76+rtgEHvPN19TdM9hwJoR3jBRiDvtL93V/v/zehwXjj3QNxmJkFnZVTjEMGmUsFyCuLCTNc4daNNxVa6lIxzsEjQ7EbYzj46clKqKu1ApoJV3Q7jEQDFaK0gR5rGjcqK5EdcT8qOGno6sqpYDmcluKUdLlgOV2HemBj6Va8y8V3TxD/zVvTkgKq2cl4tmRyOVDAtfua623qdHtuVsQZUHfN4oW6VEAw7CK+Kvm8XF5doGosY8GmET8UfuekcCxrVSC8jnwfg+OH05uS9+g8c9nd5WCXnh/llhPguP89Ob3DVeW/5y2L2+wOkM2pXeg3ZKlxYWtJawdI1ITVIzAjB1LeGWWPQa8+uSleMDlkD0uoBbl+RrpHRhjoxpyBqM8fwzWBgGN+EgZ6mwdI35yKKT0CWmwatSBcthFmR0o9SMMaxuHYoGkcViK44IdWTBD8Jyp8aC5Sbs93W5mgBnTxeXZTtieDrNikCTdPgMM6rCqVVeObh/1y5ZzvBSJN8vCKqTWjoyBzUKijGlsD8FFz0o1rFxo7zrmAT0gVIZ20HTStOCx2SEYT4QSdepqhFRaa1j+45MQUrHMFQm2nMxjZ3zBDCVpsGmFyZBVAc6GXZ5oLcbk1zwUAetbrT5SIx7uvU1I65dYNT8OlQr029MgXO5sL3O8vbCaTSGGq2c4N0175ev0/U/GBDC1jfu725IA31yaukrRQGHO+XtE/N7gfsV7RV/Uo73GSd8jQOhwqaFuzsRMFBK/bsnZr29pECAJLtPJL8fWgLMMhLlyQxuRZMtFdlIrq1w3INSg1ILE18tmtmj6h5svaIErSQUG1OcxcEqk6oFcUuBUZXrYenWnHlgd/e/0GqeB2DbLecZgn2B+m4O2yu3OfJZbe7pJvOZ/CUyflZj48MPya/8/Gvj+j7bLmUK+63zcj/48ot0wbhrNul1x8LQLoQUhjtK8H54Bs8i4IA3PzYOS96zfKKz1l+8PIBp1AoxSfTCPuk9y4jyfZImkdYdm5l0SoSWYREElTmD8ynb+3zxp9RXY2/kuyubyg1xRQNeDuN0ShZeugITY1SztYtYotaPfxu++bdkJDpSezDPz8Y8zS0zHGZqEqVkvPY4wH4QQir7cBTlcg6uz57imuQnHBGrHXiZh16dinuB18XQUGY4vSXwXUvGB0UWT0sqtQT3mfdNFcemskkKefuEbcHo/bVoSKAXJWYuuf6q16+FmKWRVYxzrdoiYEwjRNktErqH0CUFl62l5bwsVcJxtMNuADl0vTqx6jmIZ0EelLIw+tMzBjiOxaZ6yLzxXIOdKFCSrWBd0S2HGnTVNDvUU1Y+lwordJgqPNCKYpGV11bJysxVfW0ezKU2SjhdU8SaBBZ5yGUJY6qagcAFc3xlY8WSz6N4xpwWEE6XL28u+Hergh3C3SyrOcWTvyM5VlrwEWyo+uk6s7aaW/8C6doj/m8bhv3DlVEbrSjtCGY16ha4C5CCj+vMvL1PWle++PGZ7SeFn/4fz/hR0/mkghfyoaRQqzOr5Q94EYZXOIT9NvHr4M9++pL/HDdCC7cfRtaE7/k5t75y8iHUbWI2qdspoyBamQzm1bjeP9A8NzaKohUGDlK5j5EPiJI6Lasy+BhzbaMEStA2xW4za4MtW/iC5NnZ2lKM/aBsLQsI9o37/UbsBX8FUIYRKAy4Pg/KqVBOUC4Jm/T49O4v82CrB+JKXREKm2dozqHCiEnplRebVLkgfkdEcU22invGV8MCkXTfRQTalBGDEg03RVSRY2AcCRjelV3XlqSemHej4ygVK2nzrUjWUuvEpLNNI6pQRxDjhjw0Ll8benRCdtQGYxYYAlsh/APFkhga9cq8P1F6urTEnFqD3/n6d6Ap8/Mn5uOW3L13Ocxx39leKv4vfgnf3NBpxOe/gz3/DC9notyxI2PYqFB4YZjiRZgmxLHhhRTiLF+g3hSsMAQsdnxURJVRPk1nlkngD5NsoRXuCCKTUgrhI0UFzyIKYiNi4nWxEcrI+mYVZAfvB0Tl6aHndth7NvAWxY8DpXKT4BTCo52ZNplacN+5//KZ8mXFJKheCJ2M9wd91YIXZIFsg1HrYkYEIifmsTNfi1pooMYdQyMddvMwojVc70g03B2iYmUQbvn3K6BRmeOg9YZMYZYbbh0tRwpQCC4DYWPKTvHGiWB6TQ+zKeVq3C5XtDxmNfn1K6q8Qz+vEDC8EjGJnuUK4LBNnn706ckRjvFyLcwjOG+wPb0uz3Ke2UgXlK4psRdZM05wWHzkghzrwC0IbSUXrxnKR1cFdyFB6lIWAzC/AHqJj8JXjTw4WOT2dpLi2OtizgJGBMeAMWEcgpecD0uF2pajYU9hqRSwQkYgSi7uyopCKvnvzAV9Ct69BJcu7A4QnMpyqUU6wFyC1oW7O3OHpkqx4PbinB4hziBF2Z+dc6sMdawI6kGpyuOmPO+va9a/G5eWRpHIZxVHCjtRaFWSO+Z5A1WdaBSus6A6KKVSv3BCGk0C/3eT/qMtRZnYcROq1MXVHfkBdaeFpTu55btlyp2Hk6bwPjfKkfdskY6UmeL6ih5OkkHjrpQmWDnRJJhhCBu1KWKVTkYCxwApz3h/pPCMthNig/6wZVLC7xy1cy0Hl8sb2uGUD87x/sr+IOh54/M6ky943JGmXF+eOfaJnD2jO61ztYMuJ04C4/Kedj9zfLgjD1Cqs12CeXTG1dm7MYqw+WR6CivFlsvk79SVOBAtgo+ZgrZkw2S4s0nF1KmH0/uKRkk+y2rVjObX9QsRiMfCjWhiNU6gNtm2srDI6VqdHlzvTqsVbwHLfYIll2u6IatdXjTy/VeAFclWTd6Qk4iQOZxWC1IMWwmRpvk8IRIWj09Kqez3jFBuj2QMtjsPF2U6jGNytc533wrff9t47gdf/sh4eLMxbdBaIaRweyn0L52zO9coDJ/EUB7agejGH/rXCH/8t/rJ/ke73NAQylyebwephf0VSL7MH6K2GlLzjFMb4JEc2w7blq6mGE6vya1Kd5N+fM8VyRB1NgXCpRd8BrdlZsAz1TUitYDiQhTjp/9aGAi9QT8H91tk8sNSx9i6U2dFJLszPWTxqMCG8P77jMyeL87tVjO55pGMv1Iwybe6BczJEuBqMi5Jr8V2FtyyQU6X6DXIsrRXEMD0jE/WkozU1qHM5HQXFK8OsX4OI0tkJBy3iulf/X35ayFmSbBcSfERrJ76dLAJqBTMPOFh4ey3SilC65G59NffHYHWzAxHfg6wNnnH7rQuFBG2lkLUuEI9ZSuBaYLVpEq2TahQmzB2oXbHBfAEvmvLoc7W+1BVEU1h6c83djncyYpbRaTrLNb2zmZGCs2WNX7dt5baErWQ9cMs0LxmG5qVFORqU+ZMp0ta8ZcTKwzRmgeCkTdCfY04SjAjldR8oq5hPSQbUfzTA0VCQvzrUspbAyKdVqsMkvq4ISww/vnCV7+n3L57j0/5OBW7Z7vC+e1GyME3/9yx+0EZFRme3LK6YjEjX1jbo9ElWVMRja7BnJPbtfJHf/gDX3/Z+PZnk5hCQYgWH1sfkMzFR5RUMQP61vnit77kl3/yK7QZ588q378YzBTbWJHZdOsJJkYvwSgVe9jyXj0OdD/YyrKlOrkJH0opjlwKx33imm0Xr3a2CKX2jfDA9mDcnLblKSQm7Ndlsz0Z5Qm2xxQkPDKOWYxktHxiV1mNqrm568xh1PN7dOaWRSlMJg+1Mg5HeyXcmWFUKehqTXX31fKRVcrTA6Zi7QA5Ez6RqlQP/EiLgSxHgo0b4i1FbJvJOlJlTsk2nBF484xMHJUjYPu8pkB5bLS74X0jwpJTIgd3m9TQ3ADXgZYHOO4gBfFA9KA9GAX/+LUXFUY7sb0c6MskfubEP/tT5LwhZyPevMF/+gu2n7xl/nAj9Iy09n+R9y5NkiRXlt5371U1c/eIfFQVHkQPuufZQpGmtJALLmbBH8U/xwW3XFE4IhRSZFrImZ5p9ADDBgr1ysyIcDczVb2Xi6sRwJDdMoDIAFVI2KYqqzIzwj3M1VTPPec7DIXwkp+3UKQdKI/EGfZjrleciaPlJoJH6v6aQ4ViOxZLOn0+wqvVAxkF7ODwFZOB9ZVDpksvnKItDy4y6NUoIyHutx2yOn6gNggdLGXBvWF2wqVR9EQfB1U0Ld0npVRl//JLjlcLoUYfBxpKMUvwuh60vaHnM34b+Cnj9RJGD2DN9jHvhRZHMiU7+YCTg/3WwBeGNnw24G3uCcGl45pug2eot3q+zjHr570PVmxu8gQvGWb0MVis4pFNm05jfXXBHg2/32lhjIuwyMLeG6ZG/eyB45uF09ugOQQ7pkrzDdUFGY6tC2e/+zZvg9/J5b4g68HrcwozL3E8U8yfgcjTdaSCEfMRM58JAroYviewu01XlgnJyAKYxSmSi2HCkke6Wp4HfHi6rvqcdRSdw70u9B7ZPG7JlTGB+kqggT9OdmiFumgO+aaTfbRsex6dlymykGLYmM4v7TA0h0W9R3LCBEIyWpNJAGGPYBlwm3gIVdDViVseWExkYiWc9U7Ynjr1lbF3AXPEB//kx5V//Tf7H5OWNRvjBUbPdMFsivT+HL9RQtMxkz+MHGa7SR6kYsuh2mvhshVG7di5ZKNhGJ0DM6WIEbLQQxFdwBolTvmsEEFKwWzD1TB2TE44OgPPWTYex06wUtYFdE9ch7ziXHJANwA06HpgRVnPC+53RO/gd4jtSDV0PtPX8z3uDZGC3GD/6h1yrOw/GIitCMrtAJPOEp3rdsI/7zmC+hR0ODe5UWrJIgw6EZ16f+P2S8Xfg94LwoLQ0MXQa8GWzq04JYwuwR6O/RYHwj+kK34tafGfXFIwRjY0q1DMKPM9GO7UUhltUEquCs8FXc/N8OlQ8DwzqVDUJlfYp6hlqRJOJ87o2cDpkU4eUc81beJhWs9oq3kOcmIylyJixh4h3Glm9CH0nXQEaWF4DgLKzPTla56CGAIlXWWLBh/oCXwXo5jQZnKjWIH94HufCY8PGQH78OCcXjdclFMER+t45NBwEUFLoF2p1ShvKx/c+Z//6vPf00/2O3DN9/2Zce0MjmlkiemQK5qQ8hDmgCTwnsLPssS8r/LuVFIXeGmZxKmW/2d4PndmXxwNz2iseiYTBKBkOoiEu0dPl1wo7IdQz8rTLbmWZXK13W26/ywjhu6cVrgeAZqopO1Q2p5uwWehqxbL7zGCfuSzuhR9iVGaBePIhMY+UvewmkLvzSfPnIGPAnPQZeQDQCJTHRiZrAPUnIc2nV6R+4PHrix1/FZZ1u9G7mcC1iOCapYTP01YuQjs3rN1pClVjfN5UJbBMQHmiBBhBNkwoNOVMDoQUGqKQ3Xa5qoYWhT3oCwpmik2bexMK2VQCiwaOIaR9qgIOA6ntcBVKEvyuXrTdFbJbBUkY1rxvNpOt1XRFKdMyRiYptilpoil9W6p5HRKYTXlJLB42knFye89PJsOdH64NO2huCBj8iDkV4ZQEWFEWr29T+4ACfUT0oo7PtKdVmxM50xk5MobIBTLXLyKYJbRq22/8vR5o189G5BvTlwb2hqVwEenNIitIU0RD9ZS8+FiyctYT7CeQERnXCE14yEgXhHvxN54vDZC1jx4ddKhMi8zOF+U0yul1mSrvfnsnm9+/iUlBMo924eWJQl9oFEAZQ47874SQTU/T8fjlXa90fd95irS4bcG1JkJd5Q+dIIxB+6DMToRSh/5+YRg8QV5aKyrsJYT9aTcf9+obx09K1ozMqzmiOT0ykvwAmf5iK6qjlYDDO8dlkb1hSHC8AreUYfujpbOMTo6QClUcao44Q3TwiE+3aZQtSAmDDdgI8JZQrJtMphOhbTl9lZpI/ANjjD2LXk3Y8yygHBKg9EGXUD14Ng7XSFiZ6cRW2fsE2YfC8tYMBFiF+QojPcPnC6Bnow47fR7Z1GDa8Ax0PdX3Dtra9i2p8P06y3Xl9sV/vE93H+f8k/PND3RNAHfT7drxrv6SBA0Qi0Ci9IOED1TWIEd58awI/lKsrHiFFkIdiofn1AKcGgw5MgqbjZWGVRtFClodJYB6yhc2soqhTsf1CgcbnSEoc4oczgSFxQnenDsV6rn+lApmBQWy2m195U4d0oTvDUsNGPUZeRnmRUplVqU5VRYDyP6QR8Dl4HbQp8FCDHdy3pa0GI5fFpBTgGic5qnRN/RkYgARpmNzGdo0NknmDv9htqFriC+vpRLuJfkL/iN8A5RCYVDO3tbGV5ot0ckOiaJxK8hyEMh+lt8tHwWeM3vWYR1DEwKpTfOtnyr98Hv4qrLoKql67swHelZ4JHG5Yzj1RkvuI2cugKEp2vKJ6jVe4CnIIg8b16BnMNMZkYONcp0SWcEOvdHVYRSQPfZqJhaF7bO760Yy7pQTyWfs2uh3kkeDlLxJI5gMeF0yoNFxEzEF8E1y3IydpRfwwdEz2GnkGKaheB7Cl5jDiZ1PL+mPIRWhNpBa4pbY0Ab2fg0ejq4xuOgiOM9ha4fvn05lfzRXO6dGM6YLgd1w1hm3DA/49IEY8FJ10AVxW2WxXhBx0I9G/H6QPcO20qpFZWgxJrJDMsCI5VBWTY0zoh4xowL2Hiaz9WDIq9BnKy1mfvoema5v4els3ju+xYRFhWs5r5QNQdDZmcolcCwsqJFWU9nCCUOn+cRZWhkFOlpcP38Xe7FPxFcKmstvF4XmqeD7/pQePrFl2wB5fVGvSjRk8UbYyWi8b47cMHFKJeAx4p7cGsHG+ke4dISDv1QGTIy1Gsw7LtxzPt9XT8umXCImAK9Niyy8MnIdt5q6bhC8tTTyoxVhXO9DgRNBxRMN1c6DNNt0njOQ6kLEcqOTxQOiKQDpWgypnx0ImDsLc8DUjLOpQLidM9kjbviexaNedTZBOtztdQcTCJUyRRA0ZiFYI5Wwc5G9GwtFy0p7Ivx9Bj4tjAeKlWgLsJ+E45dsul9z9dbfd4rAkMaKs7Xj9mgOIbws3cf5/nw77sEzbIY0kF0jMnKg5fCNneho/hMsUCe38+nFJqehSw8ZlLsVwYKE4gQ2hjEyCQXKBFCPyz7JuZzCshCivB0Rs/0mCP0DoHz7psg3KYR4rnJbX4Hz0VcJUH2JukyPLYcwGw77H06tsLSdYqmGFrI9UwC6U7vwe3wZPWtwXqGWJ2jOfuz8zWEqmnRNkt0QPcc2IsIrRfchTWE6ybsI9dbUcnP5RSY1ypT8PvNru+EM0udJN+TID0h86idYNGMehX1CWjMTUgWMWhuNjRFrdNJYKQdrlRl1SCuDkuqit2zhSfCKcPRSzYVqpKAtwRZ5Yc6nBGGL8J+i7QPSopVYpl17d1BE55dLBfDnqI8MSH1WhIGjyTzCkuhzicAK2s4LRX4KYYpac1XmZNGyZt83le0fGRma4DPemupePd0wkRmat3TUbZEti4kJjcZEn1KVzLtjaC0/m3dAb/bS55h+BKYHumgm6wyVZsblYEU45N/fqZ/sdOfDD2B0KkoZpVP//wObu/4+vMZjZWARWgcuWmf/010xiuY94GQHI8J2LOS0aivf5FNh9I7TZzSwVtJEbYIvFV86xzHgR4nPv/brzjdLVwfdtoXt1xcW0NC2We2erVskDB7nv6AhXMSR3Vw99lbrl8+ojWtrInNCvZQVHOM3RS0loSH30ZOWMnctThsX+6s3zdGgWaz3URywh0OxybTFu3ZFGQC4fTfppriD+SKTdKZoo6qg1VufSDRKQFeU1yOYkgPigzccno7joGvS0L5TRBPWGOPjswptYSjtUA4xwiGGjrS0tsjzVJHjJySiBE3o5gTLSN5pwWKC300lvuVIKe/49rR3pD7Csc+xU+gCesKUgetKMX3FL9X42qB0lhqRcbKh3Hwf331H/ivH/6M101ZZYF7gAKLon95D68G8ZPG+MWX2GevefrqA2Or9OvG4/t3/PLz/4eIBakbS7nH9QE7jE1n++jYaOIYCyILPQauWdwhkide885v9dT7A7r6sdLFOS8Na4UVZ0V5HJ0WylNxbuJIPVAWCg33LB1QqRmZ63AUYxEnVFNELQXMiNjow4lYKRjVz7RPC5fxKWOvnPsT+y++5P5Pf4Rp4zE6rT+ycGGwMQocT4N6PnG0K2UYVZ+4iVIj3XpjJKnSfRDu2bLYO4rMQgomgLljvtLwjIFLAw3WUTCdMWl2KiU3+iUdijac4Irqytlr3ssx8Cgc7+GkD+jeKes9zQ2JfLY6B69fFfrbr9h+cgf/eIMoCAt9u+JiuDSawS0+vja6v/2l8s9/kI1EPnIAIj7ZnwCeXMQesEpuVBlBn87hAtQVrtd0dD2b4W99biw1N6mDdJM7MEzSJS2zCcoTCyFzf+UWxJa/t0tk9BAwH7h0EKEsC6gmlkIHBoyWB4+Yrui65oTcPMHKaTJOwHEQHCrUoWCDRQVRyza6NaMfSaz4FWdreB5Sg9xfHtPZ3iUYLRgNznfZILuTv64e1JLPf1ehFqP1j3ST9fdcQwxGoLIg4lnQQAeyfTVqS1dbG1hZMhmhgzUiOXysuaeIE9e+s745s9hGf6/Ut4oPneU7DdMzEheiH6g21BYkdkoIcXeidGFpmu4qBsMW1lAGR3KPEOqp4j6SxXddKN8z3I1Qo+pBiaCTDXPPnLhSlcKgrpWwCnEQ3Whf3TixIHUwvldRKYTBW7uw9Qcei7L97EZTZdsP/DOFt7mu1W26w4ZzOC8O9+hPALSTMCR4o8J1ZElWLI5sgiyGr414X5Hd0YtP7MDHd/1Dpo3/8X84Y7q/nJ+qFkYbVI1schuDtSzsI3+WIhlxVsuW5NOpAh20YOKUecBWHcnhMqHfwGMgZyhLcqyqCkfLBatosIhgdaJpQqDm+Taio8VZ64kxDnxk0gc3RJ2xC713TnVysjyBfMqzaz/3miJKb524Kn6B9ZWzfaEsnwbX3ul7oT86ZYV639g9uGdhe+g0LXz9Hw/+9J9UMoAi2Kliw+kJjubpgP02uJ2VC5KMut/jz/fbvCLyLH1rgpulAO6CixM9mZIxzz3hQRMooWxNKeaUAj5S3FbLtMzw3KaOtHmm2Iy+uJR7AyIj8Qn0F6QnNS808JFP2BEObrkmIFyPZ5Er8tnlRpksSGTqAz1bAlWEowfrxOO2LtO5nPpIjIyxOpIx7ufyBIemyY47L3mOzTihoy5onQ5sMUw80xuT8eXu6RYDnhtcogS3QzivjouyT8nWHarC/SvBdLwA73+T6zsh2Ytm24lKbn4XVXoEhwd7e16xNK3mqrOVUNK2rAn6U+HlZiAi1yJJqzplapSaOBi3QCiczVjFKJ4HdYq+wBRNlCrCalAB1WnDw/GRipVUJ0Z+zQhH41ndDIrlzZDT5JwaoXOKOUbmTt2pksplseQsmc7stoBaycjlhJaikcnBqfDmh2XGyiakUIVspVNm9AcOcp6gIWj4y+JdJTO8Oa50Th8pKHI5g0fP93zGuGBOYsYA6Yikk+Cbf//E7QGMhdMnlaILZkmE+eZn7/j684FMy7GtjogzRsYZQgbuuVn1Cc7zETnp9ozJ1GXMBpKArtye5hTcBlTw0tHzINadvj1y9BtIh77THw/e/+KRvjV667TtyInPGCgZZ/AI1Iwenex7E7ooda2U8z0P73MDZZfCj/7ZP8KWwtDKqRpjjBeHZEjCA+0kaeUWIbyzfyPYpwNf0+KqMGvPn5sys/2nEtQp8MZ45o99fNdYSx6O1RhVoY0ZT1mABfWcGntkTXvEglhGfrE6wcLA0bAhHFtDqFAdGTOeOQxiBcBG4Gb0LrSo9OmB6CHsLd/vUio9sr48IpspY5SMNndljOQkmZ7oB1gxXFd6GF2DWwtubUAfdCvIWlOAFcNYOcbKQaMX5a9/+gvizSyYeHyC6yMhOxw3aDfwG7KubO867YtHtp8+8O/+1f/NNzTaRdlFGac2uVePhBZ4dWHVmgeREI6tJrScZX6mTgglLRuAFptx2I/vum/B22FIC+gLy4Sqj0MJA1GDWfc8ZEyHQ8bycnOhhDVKztqo1NxYCRk7jYW13BPDMC4c55aDIlHW4iwnZW+VsT3xcBvE6JisiEO4wVg5vXpFtKDEQkGzAvpwhLkZkY77xvDkOUb0dC+70NVgEUIqi57yfu3ZuBo+kG40D/Y2wAXjwoYT2pIu3rZ8b6i45jNfZmtwoXA+bdTXC3KcKGEUGqI91/B+Yl92XJTihRgDlYMoB6VaOkQ0WOQTjv3jm0q/fx8UPOOX8+XJBLNanr2ykdDh1oRbT1eTebAyN8BBKlfzQJYFJLkpLTOS4ZE0zuHpXOqSrI/WE3fwPNUOAAVZmJHT/DsXck91a3D0bMFs+z6bl3Lf5zlXhJGDaSddWSrZ2mWWLoQukkJoT1fGKtnIJHVAT4dVkH+XjjxUuEO6MNK5P8ucpiNeGDvc3VnuDTVZY+qS0N+XGh54df59/WS/G5d5PhdN8iCEabpSLL16eday5EGWHfedwUHRFfF1Prt2kJ1VF4Irg8pyMaQv888rJgs+gmpPnKpStQAHoktGiQWWogy/YkWoes8iua8rtVDklCK2GcUqpQrLpTGerrhvIDuCgxwsouBC1YrgWF2glBSd9kF735BvGosrtW4c0tFQ1AdhC3uSzUUAACAASURBVPiVflu5/fWNwoZ93zn9i8J6f0+9BkMGPd5z7Df2YzrjyXi1lju6L5RQ7M4ZV6FKhbAcGFi6dM5RYe3o95xlrKzffCeOeb+XKwjeLIOlVPBM5UgkU1JHDhNrrfTWc53zXOsE5uFbCXoiXnpG8+sqv9aOarRrcL5z1rPMZIxTEKzAeYHLIpyLcBbnPEWtonm/a+SaRFRiZClYtAFHR3rLBeY5AjRSkBcpEIHHhP1PA0VvSt+UcgEV56QgwzluweiF44PDeTpbRTDVPIOehE9fO9e2ZLJXk1m0XJxwYYihYTx+JXz6Ojibsqhned4fyZVYGZ3YoDyjtYgsjrBBG8LOjAw+s66JhMBH0HvyrlGQmKxJTfdvSPKyApmRxTyXtpbc5SCfSRlpzKjGs3B2jE6gz+hjnpswn9stiwhmCXv3kQB17xAufPK9HACKZjtnXfL3jueer+aoZUMmDt41sXE8C3fp6ILUamKkMFeM+f0IISnQuWoWCwnpoud5+JwN94+PiYmCHHaJp4aymHI+p5DllsOi3/T6TjizhqRqeDJwd2oJcMUPxUq8tNVYJAeBKfh4Csic6xRkwumeBK3tGGDpjFF9rnQOZKSCajGeS9nwBlaymTDXkLnDimwT02IISdzHncVyU04TUGUcI9VP8mFSJDeFSopTvfe84TUXnXRYKT0UAzqZI031X/EYhGVSN1lb85BCQvBfHGBDsqkn8gZ6vrkrmjenkgu6TsA+jomhChGarK1IXoWapQ3/I7xEYT0ZbWsMqdSabiMi8+9q+fqzzdIJc45j0H8KuuY95xGsYngTXDM+Kh5oC8KTaSYav3amDpp3TmdD1w69JqS5ZDPJ5V7wFsTIqISZcToZZsrtfYL5wmBcCzIaQ7MCNh9wKRCNo1PV0omV5mKGZ7Wp61wYI1lw43BiP8gFV/BN+OVPv8Jrywef7zPqKAmshynwZdPPeAy8GfEU1E+UJhnn7cOzehggIsHfmryMMTPTY4q98RHOdXR0Rsmn1ILSxZAxGCUwGmhG6KIHVEtR2gWNBN9u4zmaYIQOJFKVzxYTJ0zo0nOjdUymQx9YrPg4cHFw5cmDakKZ8eZCxmoRaBbpFGwHIcKqjpvjsUNYtj61neLCMKWwg57x3jBx+kUp9Nz0WaGOzvBAR+e97/yfP/lr/rt/9pdcvtzRpsQD6Sg9grY7/Zt3jMvg9vDAcT7B+ydut6948qzuHbdO9wygjBjstx2zTvdOV6Geeh4im6EOyM6IiseBysboFVnHf+5H9Yd51c52HOhW0brR5B4lX3f3jLijgYumk1KhyMbqd7DcsHkgxzrhxqiDMVaKWg5Y3OHoKFtOlJcLPm50g+GV8QC+Fm52oLux74NyNrzkz6ww2I8bHEpZE9od0XLtcfIQ6OCjUqQy+k7vDfcTgxwwHH1gsnPc0o2YA6ucWzqDMQytAQVGPIIsHMORaKy14tEQWXA/CD8zbMvo6uPGevcajUggvCZbsPcFQWg3UHtD83eM1wn1dgSGIbGgkgGeo71D9tO3fCP8l7/ePQaHSLJeJBkYyRrNiW/zFJtMIkHwmk4YV9h6ug96wOkiSKSYOkkH1JyBTI7WdEbN4ceY5SsRGd1T5v5surSCZMYw26Dd8oynOoUn78nW6DKn2HlIrCovboy590fIYd4yMl7RwlPkmqVDjZxmN08Ir+LZcij59zPh9RJBJ19bC5kTbBh7UE6S7WMmyHRFm6bbrSzCMQQLZz0bPMCkg/yef9rfwiWegP0SGIWile47i8AYnWoVolCWA4tXdD2oAmPccjgRgkZ5SQ+YgtGQU6F90ZE3RrETrldKP+FdkZKrhkihMug0GAtu0MagIhmhmq2IhQJsmJ0YY8v9tp6ItcOtYaVCd4KDtZxpJLsXE8QK+o3A2jmPmtDiFsQ9yJIqQrEPsF+I/kD75qB9cOS4sdoTn/74M1qpfHj8wJmD7VVn14W2Q/GdZTXkaPi4x23jGAPU2cZOuTfa507/vuI9D6hjploqA0Q4NOC0ER9fQvofvBLxGrnfmoKze8Pq/G8IfaYjjt4oJfdkiWRJ8LpiiWx55iC3PDsQga2D0yVb6QBMjKGd4imWl0gHyroOCik4ifncVwcFw4kXN07MQbGIog20K7Rco2SRGXXLaHxyCJ3hWZhxfxf4MosUIiPR9QeV42tlGz2H4zE4rcIYWbwQI9+DRZ1Fgq8+h09/7GgJLifh/buBndJUYl15dXdwHc4v9Q2Dd9/eD/b3fPkz6B1QsYxMhyAlcMpUsaBFsiUXYgqhM+8kua+X51zh1CcBfALaIZ+pIkE0ZV0SOukjWZV9JItWJe/ZHkqgbHuaUVwzjj8cigW1SmoaU1hKjSRZk1qCv/s8hywiiomzR2IBalVM0ijTRrYlpsEmjRJoDpOe2c1lmjFkagnp7opE1NjkHnrQulLEsT7NNJ5IHy/BomnCSV59isVKsNaBrcrtUMb2a2/ab3B9J8Ss5JELtg6yZCSoQ2YTXLZpdQ+woEguBOO5oYZ8o41kVuW945hlnbMEhCsqGS2QyQ8JFZ4egvO9YjXbcRSfAsAEKzMdNKXjTZJpJczsZ27YtAy6xlS4f3WTMieUIkKtaT/3nj9keXawkNXOVY3heQNFdFCbS17aGyEztrsHC0KfN1ZRT3eRz9ilCEXyg6iqTO/hjB5K5rTzS5NyTCAkk8ljsP4Wlr4/pEs17eXrpbJvnf2mLKukndKdsaf1USQoJdusXAXfBzWMPjqlFFp35OQZB2u5+XcJdBEyuaz5c4usW1XRrB0fikWDcFqBz/7kNa9/eOLP/uKHWDzy03/7AAFvPlVu1wOOyr47x3u4f2Vsm9MeW6r0z9FAE+xSEAd56ngX1AQrTo+MrYrP1sYKRY2ig323jAJGhqTdDW8NrQXZ0tmQWyIlXmJBglygf2GsbzMmAE7vWXEsnlP0EOE4Wu5DCbwIg2TTmRjePj7BYYuBHvl+eeRaIgSlOzEdgFoKhtBGT4FZglKFY59jDbK+edNBbXNSLZOIOB+PeXelw0tVCW2Mms2EIzwhnz5o4lPkd5Y50dMRnMrAw2Y0a6Bas1I+gHVklbkqohvGJetGWIkwLK6IxctoyZcj3Y39zH7AF4/v2HpDHwajdeqp5YPv6vgvG7ev3hPtK9qP7jgEVH/I09/8He/lQnlfqdfXMA56ZKMclw23E7Zu1MNxVg4cWYIYhRIXfDxSypqH3TJYPtLyin3PSLKsDadw6A3ECT1lU+WR7YWVwUI2AUY4blfu2ikbc2h0DaIUNj846YBYUZcMFFhQh2HnN4htRF+zMj4aT/KIDEOqZ4X0o+PvnHgNVjrdkyWytRuxnpGhePR0uwZIrKinULTtG0HJQpdy4L6C7Ogo9CMdrarGaEEthRBB5cAVilaGH4BNTtYUe8PyOSYt3Wm741sh6oacC132XH9ipdkj3Wvuj3ZBixIklPt426hkNTkMVDsuGV9DOtbffns3we/o8giaVdQHqo4NOKki7mjL6J97soyWSQFRS+FoqenSqgAR7I+D9dUUlsj9e65DuZ8qwZxG8xKBF5kOZhU0ggozkpf7MxMhis+GwdwXMt1fWYwbFFLkEk1xTUvWmMvghTuyPM9QZMpIzou731uAwfEEl08SbzFm3aLqBMznnPBlur6OSGdjByk5sT9J7vFChH3LgSsqiGd8e0f5s//K+PkXPH/zH/2lLfcA3Z/32NsUuU/U2ikyYAra7AenczqIqxj9eQ87HKQQNaHsA2H1FX91Qz6ckc82TCpa9xwSTQ5gHh5T7NdI8fBcTnQ/8rksyYYMBsjKUoTQlY6wtwNCsFoZTzfKec3oYV3QsTOe4GjXbIF9lQOYclJkHFzuz5n+EM2SoXGHLA073sDTVym0nJW7z16hu9Nvj7w5Kber5tkkgq7QDxg3R2Tgcss92Ggcwzmp0ju0hzvs04c85zyLKZZAcGqwtGzn9I9v2/UPXnUaBEI9B2qDLC8Rx9ZCGx1Gp3uWfal7HtqnWK/qjDEQK3no1+D20Lm8IcsEBlM4zDPmYOA9odhryc+/eKCjsG0dKXP/JpJpHpmmDLGMRZNiifjA3SiirNKYZA4uJX9/8rFyTdPUFPDwPMV5rqc51Gr0syINbM3hgFLokQNVBRRlWTQH6tcchooolGBBocD2qFwuO92MvSv/019t/7/3elpIPsorpoHBdYLbQ7CaTjqfbqpFBPd8vhGJRRJz0kUjhI5ktZEFAyJpnshfpxsuxfvEGPWeKKIiPvf8zwaddPmmG9jRCm3o5ABGsvwkZtQ/sJr4pRF5HjRLPnRE0Kd5YpADBonAIjhasmp9spBy3pSYohfw+0zgeCRv+/CgR4pfhORa2nW+VggGp0iTz+HBqrB3x3t6ansNdLoaTyqYDXQVjk2nacNzoPQbXt8JMQtN0v62KUOcVZShjpGsmNwsGBbJzBqR8bgi2ZjWIjjw5NAwYY2SrTxRk5MlIukmUOE4OstSKQPaHujJp6KZ0+ScTKZamSKRcbhngyCzwSBi2jdhrTLrb9MaaCaZcZZpv4uMmmlNR9ZAEHeErH51d9RkRv6mwGI5JQyf+XwRTtOmp8hL7tSK4S35XQL0qYD6GBMOmB8ym8PAwxUjP4yGgqWyHyEfa1KH5yCDW7BeCu1oXJ+M08mpVSAyYgiFidnPTexqjGtQF5sioRNHbmDFA2zkg+3ogNHDWc/Keh+M3mnbs7104HQqQbkIsjqf/tmf0nigfXBOF+Hpg/LLXwyICnXahZ+Eh3YkMNxTFJKA6EGLYFkkJ0SXmvXpmguNtbQoWzVCPJlCjDx8FBi10reOloJfE9K9xZFNVW2WuYhmk5CkYjzcaVuj3j/n+4M6l4+sLx+MiBlH1IxcSBDi+X1b2ms/tmspsEVh5UjXQcByWhi3wMqcYLROnDQFPUZyW1oDLUjPqRveKGJ4lBTjl4Wjj4xazSOiWDoAmVPYOoyQBotxnhMidWWYspTAiiOWDz2PQEquQYdks2Z00NHwpyUjsgTKq1zjLNB6g6XikkJ8WKHUdLX4bDjzqvzdk/K//Nt/xX/747/gcmvo/oF1WQkV2nXh6fFLyo/v2G+NR3nkw3/j/O3nOzd/4vr9jo8Z3d4PJDp6W/BrQbZ7uF3pi1POlaFPRFzofkVDOUbGti36CyjzY7siCrVu0M7s9coxheST3vIz6s45ystBr7hQpKJNOU6G2Y18mlW8HaCVViTdgwLezvT+nqV8H0pDPbkhQw56XGBzXAfIiSgH+gqEgn7Z4ZMVs51misSZ6E7XwDxLUwpGY0/RII4U5RAog7EXRuwprLcjY8jd0AGrGqO3LM6wwqKdbj2FCMmvj93wYbS9Erqh/QQmRL3BcspJuG4s8oYeVzgC6TWf3Y8H7VWu+0c4wkLRg/22Yvcr0fZ0pR5Q2dmXwk8eHr/tW+G/+CU4//u/HvzLv3DCK4ODPtmcew/GQrYQilCfGXUzwuf6K0cVAW2D8126o4SsCD/E0Zizapm6/cQySOQwcASZopf82eYHeSpfmkPGckqBi1lY6lsWpIiD1vl0nzyr43lYKHNirfk1PXfwiEm64Kfgn0y3QBY4Yh42a0ZGeuS0e4w8FJLn0RRkBEbL51pRJcSpnoPGdgV5lZyxnJIPlMJ4PoUyX+NHfu2ajl5lobV0axpwyJUSSvEVl5ZQeO20UVFphAq0BqVOF0uuJuqvCDnYI+Ezd3dPXL+Gu88KoY2gIFroA9QPfJQEzasRYeid0B93TvcVZyBSsJJNdzIag4LomOL1kv8E4ukR4YxsG/JasDcFi5JJCnN6dxKltIDk0Fijw1DGl4E/PXDRzp+czjx8aoymyHbwdGls5cQ4GmUJGMIRwZ126tsLXz+8Q9/kuuhjwzyj35ex8LoEP68N+6DofYKdZToXu8NpCI8jsCrZUvtHcv3lp4V2a1zuVra2s+pEx3QYDEwLHj1jp2Ok41fTk1mK8vQhON+BlaC3Qd+MxdKhWiw5R1bSIGGQrhcTlpKOfLxAHVyjIxfDm88lL6AqbWpCS3TMKqY5FB9TKDj2TilKKUGtjpmSjcUFSn8xJGhMgSRgPQmtBUML0QbLXebIVHViVAKxZEXWAv3mUOBPfgRf/cSQJ0HvnKcPQlmD0MLXX3Y+/WFieiKU/+Pz46MVrv6+K8YsAIl05ZYyo4ekBnFEUOd5RyOnJMchFE3hPu3oRpuoBZlprTGcETncEw2Ormh5hqMnV3lMgRJPvcA7IJIsZs0yrpKPM9QyjZPM5gSt44GtzioZMwToPnDJGfMxEj2ziFM1m1q1ZsTU5oDJSQxRTFbvMqOEz2zNenb0ls9DU8CMIsk/3Td/YbyFT5BRpA2r7XC3BrfjudYgh5JNMxXSNsv3qGfCrtgfmDPLQgh1TmIcA9xS+bOSHCrZIE6pkornZoTIjYtH2scXg9Fh1RRrVMFc6Eu2TJhALUIPoa6ZLz3GYFGl+bR6kqp78dSvm+RCpJ6K4RjZAhjT+vbMC4qIXDAkq1inppp8iJeGi4TQHz7mtFCyYlNmTGvkwhhTwR29Z/Rxxr407S/pwIHZRpdTGJv1oD6nnTpV2BYQI5XPdG/lB+L55jKRCTbNZWprH+9yZZaClQB2FuTa8c0yA9+muGeDopossQhEBlKcmI4/e+a7uOPRqZoPPSnPsZjZNNcHpQpt2xkjIZIUqHcL9z/4Hv/ozz9j+cxY3vxLGD/j9Oo/cPvlQbs+8h//zZXtlgdBPNi3g0UqdbazmCQAcik+ixNgVKfdlFLzXtNFU/Q6WjYZrgunT1aOpyfe3r/im2+u0J3RDk41FzcbQpSgdMEtrc1B7sVNhbhBKUKs830UIcacMDspyBA094T4orgO2gHjSJ5DPHevf0yXG8kLtayDpuB7x6xAdIjgKAs2jsyUT6uwYxS90ZoRy+TX9cDLRrQlyy4YjBrQpj03EqSITKcATkihUAhNPtpQZ50nOI+sWfZakFkRP1qwcCYuWSPhDZoNQmG4sNQDrSvrZaFXkHoQ/YSWQfHCse1YrWjpWDVKueOIK99sb/hf//1f8eev/ymfvL2nHCnEjZ81rvcbdigd4ScfvuSLbzY2v3I1uG8nrkUYOhKO01a42+lVKMsj9f5Txled7V2h3weLDpwKZcdHp/sCoiwf6dlw9I63SudIx3B0ii1E37FSUA1uGtThlDI4eiVOHYkFix2GYnogUhg6aGNgdgdywkMpOghbcX0CTjiVPiJjsGXgN0HeFJQ2Hc4VHxujgr//gLw6oTFY7oKjwbh2OAu1Gr03RjTA8mtrYCz0AUfsxAjCK4RQ3WiPB9SFNnZGKaznefhXpbSO1GcxvOHDib5gyxOHKKxXhBVC6RxUXfB+8KE/URX0dXJr+tOKvK7gCT43Vlw2NCr9ywKXjZAV+hwGuWPd+Zv3+7d3E/yOrgCebkGxCyEHgdIlOaB1mZEUAZ+iTZ2tTSOmEC7pqBKB8wX6k3C+Dw7gmOUzTNe4JGb0xUWV8fOMSVjuaJGYe6GYh4WeX79v6RIjElTcNV5cUkxUgpCjKDwP86ZMfmliJhjp2hrTHSHx7OpK1/tB7vu6BGPukRThtsdz4o1lfj0nkk9UycGEezIzLTfsvuSBJQeG0+Wswqkc/LEIWQBqFe+NEKjlBHHD9AyRNE9k5yS8HHhURrJYdKWaM56cZb1jSILjQ3ZWr1jZuY2VbsH55OhN8Lt1uikaakqw4Kung0Yb2Er3Qa0rRZQWgpUgvDMCjHRsKsZyWnB/QEfN5vBrYb0IfVFaNOIY1HoiSF7qSQoFzWZLGVQuPO1X+lcPLEdhWSo/+NEFEaM97BzstDeOjYKOPCxWlKIbqxvulRaddZxoPghRtBjXAeaV6sHGYDsb5d2J8vogamNEujFCJ7KkZElC/BYHwj/E69cdQv/9n14QnvCR0elnR2WuU0r0Zy5Qnt2GK9FiMoY6ywJ1UYYPIqBtweWT5OJV8yzqyWM6oumbL5LFDosujPXI8wJz+D2j1dLTZTNGrmHuiiZweUZqjREdKfbSiMgcY5aqiY6YblS1eWZzKHWeR+YLVVUiOlUlsz1mFAm2kTic073MdQmiD06nSv8QnO6E8iDIW+PanLo2otR0zLonLuD/c328p8WZ+FJeGgzH8Dz/RG6+F8kUS+85Aq6SKSfWnmfNnokpsXQ6MzlZIrBEZqL6Yen2wnHPYXWQfOG25/SkLANKIFJTC5B8hs4iTEKUUJ/PuvzOL+dg2xTWTGkEQhvpvgvSsagic/ju89812WmS5XNBFqaJwFJs8inz190Dv4JjLw62CY2ewp8QnUyOdaEZNDdiBGUNbmQLZJW8b2spjHC2DqM70RSteVb/be6x74SY1SfvpY9sjvBwus+UjQ3qmhGvVbMNQCWrlt0n24DIekedo7/IrChTiRTPCI0SeYjXrE017EXtTHD2VBCXuRC1yUt4BjnUFMFqmXXMR7CUhMfPgmtifj/ZrjMfKv78Oue/CJOB5dNqmmKYKsnWCjiXgkjQp700ZdX8+zOWmTbsMT3ERi5SbQSmKZxVyUnk3gDJ6mjT5z+btuQxDJeEyslH+tCrmqBGGYEWTQ7DHfSnTms5iUkXWzBGxlVWK2iRdC/dOkohSoAf6BCqKdE7eqnYclBPa4JOnzo//BefcBwf+PnfKtodK0E9KXefKqfTzod3V+x7n7BevmEcV774xeD65eD95432lPfCPpyad1/Cw+enekQCegtpC2xzUdMVpCmmivee91TaCgk/2K+G7MbXjw/pBAwhfKTtNA2C6cwTZ5AFCKHJEZHhtFugFwcrRMu4bDiUknbp0Xs+hBH60XIkHsISymGp+rfj47u/oho0Y9HBiBWtBx75+XMRpBtrBLGk9UAKWbesLYV5y1jrzGSxsCbjz4XDsrRBaiAMGGUCFjMaJgbrSGCnlz6jNrlAqJwQG6g4KjsWQdFCXYQmC42d0/kOPw6UTq2WcPrhSHO297Asgt0vNBzWlT426tt72AJhpfcdK07cNuL+nvfHhf/ti3/Dn19/xPfefMa6ndj7F2zHE92FX9w+8O7dE9f6npC3rNWQreK3G1IXPE4MvSarSaGWC+wH4wcHtYN/sXC1hfV1I7gQfkxxK8Drt3wn/G6uca60OOZBzyAqeuwcdaGMzh4lBXpPW7vYmMaWDYmFHcFiwUoyXdYVsGRRLUUhCkU2ai9YN8ZoePSMAt4abQ/qJ8xGps7hNxRDXg24Kv1Dw16XdFjUE30PfHGOfaf5DWOlEcAFEaf5oI0j4d4ijDigOeMWjEXpZVDbirQDVPAFojqLWrKMRgGx5ERKHt6WUMZYkDiIUljUEN9hWdFqhB9E2zieCn65UaegfATsvmGazhlZIy1C4ekKORp1yYaxzx8+1ha6wbvbwg9eOW0fuSfo6Xyy+UwUAVTp8Vw2PgWZ6aZSgAX6Q2ITuiR7VOcAZni6tSSSFzIinZ0+/6o+IsVFzaamOKDWX/1ZtYTYiubUmCmOpRiV31cE6SDVdHq5PG+Ef8Wx9CmGjefvncQyqApNIv8eyaVYZZqqTF4EM5+5oBDwY7q1jJemxCAYm1Mu6UAqkj7vomTCwAvp7f/juJYhdBNEevKpbJnRr2dXAMQQKCtij8RWKaXi/cjmgS6M02M++xysrAgHhytVWharXBx50mxgLtNZdaygB4wTog2j4uNAFuNUCv6klNUR6aBO8RURQ6zOgaezlDOtBbYJy5vgWpyqBfOV4luKqj4oCIukoB/aud0G4+mR8fTIirL8UFnWOzoXHq4PvL4vXBs8tsadnWh+o2jDgIejgynDG1jgbRD59MUxLBrjGDx5Dqzb/Y4dxvg5xPeU4cmmK2Z5fxroyNbQj/n69Vf3Z28CRsVp2dyrwcBADsJjJmBSHBLJ6JhKCknqxrLmu+0DlpMyZgPG/VnZr0G5E5Axo9BZsMU2KCfYngbLfUa80iCQm3OP/GcEnM5KOzIulqGdFDZ8wGIZj3wW/GsRTCbneA7VRSL35uHTWOFz32e0RgoEriDCUgeMTC95P3h1KUgLXl0WdAdi8IO3wf6uUq6O3Qsb8OFz5c1nIx2SDu/iDv4BXtbHt6PPq5PbgIm7og9hrcrh+X7HtBs7kyk5ABusWlLkil+5nCLSmeVk+UiIpbha+ovg1cNRz2HdsWWZgM7ZnWOTdfargRA+I+1jMOZ94Q4mzuNVWEoKrq9ewcNjUCzj8IQyJseU+XyyiSLSaW6JmG3PY0YbZUwDz9Q6BI6eqQ8hOVxVnKPn+eMgOGMZrx+RLD9zekkGHeFUSQ1mMeXqQRvzc9KNUqYTUvhP2GX/ues7IWat6hQ3DpiNqEGdTpoaRsc5V+NFFQpe8qEuZEtKn5D46ZzSOaVbtGITCjl5phOoBmpZo+mednllTvP8VwIT06WjL84teR4Wpx1dnFL0RWh6dsi7Zowv/FmVS4CfZb3Br5H901YolrskI2ZDRgoDZjJ5SLlR+3/Je7clS5bkPO9z94jMtaqqex9mMMRBMFDUhUTjtfQIeji9hvQSkpl0ITOZSaJkpCCQgEiKAAhgMAPsY3dXrZUZ4e668KgemEhCgBlHM+jJsd42+9DVVWvlyoj4/f+/v/lSjVuJM7AcXlp56ItoZXdXxjZmWfXqFahN5ZRyqIlAb06gKyr2aT6amiquJdAgXpK7LPisWsH6tV4PeY1J+IRUMp22YI+iZVMWLZFA1JB0RDtvfvSGx6fgx//ie37yR8+0x86v/X3l/mHw+CYZZ+PND65Yf8N163z1z3+P9x+ekBk8/+WN8z7BK0s/PekyiWN9j83QvmzRKyKaWSyTJslUpTUDGcxJTTcjllRarqnz62da35h+Mp+Dduno2uXfzgJ6i5ZQJeshUrwsxacSA7a3S6yV1dSZiY+qS9cFHKwmz1YW3eHMUxCMMWuh/9SuPuHFbohf1ut+shALfQAAIABJREFUVhNHVKuh23LSRPEYGApbWYWVJG2gZpzhmDVG3Nm3DdQQ13UQSzIa0l43QEHSwIPZFZGJphNLdDc10DsGYHXw7z2Xe7CV8OaypjBUzNYF5GS2TrNG++LGtL0Yavc62CKT+eGZvjd8Gjk7vDzTH5+43e9ETLo+8sfnM3/6zY/5nZcfMl15mQfffpicY3BvgWxPZHSOlxt53WnPg5ifcdoz23Sm1xBhzom0jcbGcHj4AcS3yf2dcrETrtSinB3a+Qu7B36eV+QB4UwFm2Uvp9dmaBD0LWlZjZkCZNd6TZRVJNJRAh0DtVbuu2ZY74h2Im8VQURJ6yQHjQ3V4MNXz0Rz1ITjUESdpp0xYW9GPBp2gfzuTnwZcHtBr5eyuZBwPDF1raObM2UUXJ21hiUYypzVBqTR6F05uKHZuafTMjFpeF5gHqjecVG2vpEhRE7GHPRrxUJAyGykBjmTzANJYxwH4ldEjTDBx4lrRQwzGxkNb4Km06RxzhNvyjgDlcl3909UgkjhH//e9/yX/8WGtA3myZzOfrGPw47M5JI1RdUoIR2hkA6v+xsF24T3H6Lq/IRVzFV138na2yy3VmpVcEcWDmJGFoR9ub1mlsMKXWKRQY4aAEsxaSk++3Jbt/r7j0YHB8lVmLH+vf8VmLyf4K3YlrK4o93KnZqSOBVP6q+imNR+zFsVsGiXjxOgQFAPmlf7kkdindXeWTHx6EaLVnHJT/RW+rcuDaxdiXlj0w3SkTlorUQ9fC/xadwJaeyWbNtkpANG6kDZcEkirnVwjnp+9AaIky74VZF3jjw8IDaqjMeghdMNyF5O+4Us8XnQHx4wuSy27J3E0Jh4TwpXKWynEU8D3T5jzwHTae1kTvA86P1CzAMImMY8BvnNYAvYMN78+uccMpEbvNeveZbklsZn8sA1hVt8wNPpswZNqhfuM1YqYIAEcjRyU84YxcYUreZzn1xap/0oGH9y5aF94DzLeegpzHTsFMKU+Fs0gv1dvhLj7z+dFY1PlpukhKQu1fr88Vcm1gr9MKdTjz7Buiwxv/xX/VJtqW6B7gpujDuEB5c3FZ2WrVybsxUNiazSAz+rJCKqB6jEcK+Y2pxK37Xc5SNR60h4sY0iapjQ6sxi8nrmzI+Cfg0fvdbASOZqTddWxo2LBj6U84TzDpdHYzMlZdIs+eKmtKPRj1bFRe8m/fPg5VnZp2Nq+Aww57/5x59exP7/64qoNUjWay4G5zmL4f16Bg/YtMo+zlXYFFncKCgw+piCmaFtnfe1nLwispoqS4QmrNZGT/a9GNd1Hv9ZK+JMCh+jCyUoFZ9/5VOu/ujVnhjsCO/eVyNhRJWQzFU0V2cI4BW/xNJARDhTGSJslA6SqZg4c62JI6Tuj6jCO9PSHBLh9KjnUwa32XjYA+mOptCpRs1jOgnsKbw7nDThmEJO5boA8ghYKn8bMs0vhZjVTdAMtihr5BmK4Jgo94B9ZS/lNZuayz3CYhItscejmmlUhNbAXyAuE4nlE5eKSkU482zFOELpLdikIPOSa9o364ZrxkdFPPxVkq2GuGtLhghtDXSBlal9ha5nWfQSCior5aSSahSIrFih5togWbm5SFabQbmvUmJtmJZza22wXLz+HpZanxVpwz4qtSFR/I+ImlIkXESY1GutadV6EgWF/hSvyHIGNRFS24oZON4BLyFRV62xpC7A+ioMSF3EWcMygVm7cKkHzkXh/iJ886++4pvQctIweXkXHN8r+9sLw+E//c//Hpt9yx/9i3c8Pu5Y7nz/h++YPgruOaM4XLTahItyMV375fzoqGsRkM6cQeXAQHZl3qpyPhXCW3E+rFxdwwdmxu39Db1u9CcrPW/WAzBMV4NnrDhmZTrOI9m6c3wL1y8mY+/oCCKjGExa0PnXSfjw4MwgXQlLdFMYgV5WPtzHL/ZG+DlcoY09D7SfNDZkdKIlhjOl4gMxZ1l3o5WzYPHsshtt1hIUWqK52RKax8S2TriTMhE7ERH2rM1KBMxWgMfhg37RaiQNR3yQzWhZ7SKWHWknaoq4oU8b/v0BeVttrRsmg0OLgyb7DT13sgnT75g15u1AzrfYrpzf3tmukD2hecW6tr60f0fsin73Q/5lfMPD/XPGmzrMDRls1x/S2+D5Zkgkfn9h9iuMpL1LeOo03ZjzGX00zueDyMkpTySBfTbLheSGfIAzJinKpf9SLGX/wa+fvFz5jy+D7BM5G1NeuKzpLL5xZ5DZ+EGr5/e37pxiyJxc9lbsFhLPC9HuqCpnPhdHRSg3gtbXmBzcj8nluvPuj94TE/oPW/HMqOfjzIa24IiA6ITcsC+gnxeOPcBHiUiW+JXFqjzqAOjgcpBq+JxkKqdMWjfmGVicnC/CnkUZDwORRrpztxtbNqZumAZxPyvebYFsyvQJtoGPWsfNQUqwG+8Efagp0yWF2zgXS2VjRDAtmXJDzs/I42Q83pG0NTwwpu+8HJ/qhj6JcP7gT5V/+NsBZugWhEZxrVZbYAD2GmtP2AWuVpvp26zWQXbh+CZ5uLB2lrVJblENgAMW5L1EoNsanIjXIZ2R5a5qkKNgtBr5WhxV1fISxddaPKxXtnVb7JkG5egDXtlcr83FIrX/cYH+JOgsodWHkJa1x7JyHLPA0EgdFrtQFVK1fauWaq+fUZa74rwl+5s6yzSq8TdR0owMY1jFW39VLtcn9vO7ciXrqAbJvKAyidkJcSR2tCctO9qfOe6ge0M4adcrKYHS6v7AMZtoBscCvZsWbFn1zvzGuf7gib43Mg48J0FH9UDZymVud3jTyNszfu2A0vu1xKNmbBj75crt+5Nsz/j+lnRnU0hPJE92eUvoJGdyfjU43zvX7WDrjS//ozdss3OPGzc/yaeNDfjKhTyVk8GTnezzzoucjNE4E+5554xc8dbgTOfhKfn2XXC8qeikzFrTJQ9uTWizUiz5mze+/pPG+Huz7k2Cue7bafmrI54yaakc4sjo+AC7RKFlCFBdqZTi8pD1+pVby7BejXXWajj78m3w8GXStM6foRUbbJes5+IUOIR5A3kL5y249NUwnL6QM4XQeZlgXRZjMKvZPH09nwTsZKf2dixzQ2/FJVQJ1BqZjvVcIrpjWjxksrH1io+l1HDTQ8lLCS2fvQ0OX4mANK44v/EbynkEjIkenZdvlOfvBY3B9dfgwzN8GBU3/+OX4lX+u65P1fM3jCVKlbiym5BeQ2ishKVNhZCBT+E+lOtWi+NYYPSZlLgotQ65V6pGlxHATPBZMfiRSQxhbyU2BYCVkFSuYEEyQGyVzRWne7wKa1nnQ3dA4erGc85iYAaYvq5ra2CkyqAE/mW6Kofg/Fnzpmw1kOktiVltKrYMMU6dq7sI56g/VJbuYZl8cC1GXa/bdZdyiB4zqsROha/uwohKqGkTtpU2eS0Vi/a3Wy5/KawSmwvh+tG6t4nw2J1rqzr4AuhFEfRHkGHFR8hkW+6iTi4797JuRn3IZW2GXOrDfhzJmEa25OFN8vJBOY9SUFcvNeeMqpI0YcxkVGlUsSLWmM6XgOWTtWl5jf+tGJCWZbTe9lnV6Zpo7ZCA12l6MtM/ciRirq/pKwfrrAdcteOlg/Wy4Im3atZblrDibRmaNX0ML4FsZCmjldmt1jlbde7TKvc/vNwzn+I1osRHVaUa3hPFaKb4DGIWRC+8BBqkAHbRQNr68MsEqp3IIldr2OQ8gxwn86x7KM8kBrRUbBoykl//rV/j4T/7h+z/yT/ioRtffwVvv/wRGcG8TeSo2N9r5lihpsXibFetyfUING1xETrWtwUEryhjkySejfm+HC0qwpyBSzm7gsS2jXnU5F1mco/gZDC9/tuIZLjgcVYsoM+y37eJ7J0WWdPCFYVtZiiyeHPCmVGTi1atVxzJfmkggbnyR19/evfXGZObBTODwb3YVZGMdLaQilitZ0YQy65bz4s+SsDMw9iW61S4ggwiJhFHuVQRNm1IGIOChWpz1KuxUNXootjK92/bhZ6O2oTsZDOmgTddzYUfkNZIV8yutJ7MfEtPI1tDpFqewm7ofuGMHTVlPhzgA3rgCsFgoGx5IbPT7QHVnbw1HqcQbxqHJnndyX6lXx9BgnFAyss6XD6gY+DiXMOYL0EfiQ2lxYXJFeyJhzBGnpx54jmIfqM/wfVJ2J8u8PCLugN+vtcffndndtBj8EaTH6rx+fGApDD3geaVK4blA3cJUKexwLFoORdCCTtxy2Iz6IbmJMIZ806exXcctwPTXoc2lP2Hj2uKp4ieZGwQVTgSAp7PFUtLY34Y9fxiQ7YD7rJi8CctBKOEpdQNj7kizZMmW8GYHybzKmi3KgMyr4mfBqGCiTOak9MRT7IJrksuyfqzgqPy1nqQ0Qt+er+yXbPaOdsgEa6y0SLZMmgWtLySsYMkpys5FPdqLA51nmVjyKd8IhT+6M+eC2aLg7TFiRRC1kSYErJSZPES4R7B86iJrrRqE2QJR+cN/LYOfFqurBK7yzE+ve6hCZwBhwdigq4NbMqrG7429lV4VwzTmHzkWAFrgFNuHA3WGlmRCvGa8NZBov69ARzlysqVR5xzHQypAwJLMJsBQ+DUOojuVoB8n7WvLO5DOVfbx1jS2oNqHU5LQJt8+/Xz/99v7C/0+tOvd1I38mjYKDcp8YIPJ3xgW8f2D4g42p5pPK64phLDmPJcYpYZ2GRbe35pD9UwKfUmzXTsYef6ZPjXHzhxMpRme8W01JC0xVZTul3Z2wYzSiwXJ/yCzY0He+D+7kbMD4wFcreuiAuiB83esO8X8ta4//iZdj9pb08ef2fn8sM3mAdxmeRuxFYnzed5oAz2Pcg5ufudC8aYjSOdc7kcexhBRY8awv2iPAn0GcgxCT3pbXAb8G4aE+eIYCRoT+TrS913WRE4b/UBkV8RALwgTF9YaXUiGx/uwnVXPKxiXpQz5nJ5FZ1Ye/+6n1Sroc4ntOvrSbr2+6985DmWMKCge3L5AZw3qhxKAmtOM+j7ihuuJINp1q9WHMJ6gCnaomDYlqgmfavUEUugUKnClr2xnKd12EdAOojOQoe0vwIJH4GPoHWpKL69omcmv/2joKnzZjee3hhP16hzzlC+eCs8HcpTbuwD8sPOX7f05Sd6a3kW4ieAXHE7bXWGzgxSE9dBSc9K35LzEKbripTKej/L5eWzkmARUu7frHVha8U7FlF6T1yMM9ewesHcfQhI1nNQam2bUY2IDktYguFGo46vNOfDKAfXHMlxOKZ1P8qK/zfqHLc1SsxaLuvWS+B1X6aZuVJpK8kjVGKoKZxniWArSQ9C4RtceHuFKTXQel1PrynMU3kJx8TZetAbPKkwpTpeBC33fK6h7d/w+qUQs04BdLItwWlk8mEY92HETIYGomvzUX7vIvKPgrKHS7kQVixvU0PRxYRK/BRylFtl25K9BWish73TGtyfc030KkPaTJbLph54r9yE118lH61NdJYiiYBJWzyq+r0e9TARj2UJjY8RwIwSx14ZV6TQe+VdiUa4Ms+aekYUoFCtNm4egSrsBtoKcNjQBWxTeuoS95SG1cZqOcLc4fmkppwOYkpvrEnCp3e9tnokTmod8kxha0JPZREXETVyQe7SE/XXKGfZQSFQq0x7E6WlMDwWWA+Ugvb3LdkuifXJ/iBcPvucebtx/kWwXYPbn/+U/+O//9eMl7Ik+yyNwNRWXXxtZrq1gqdr1Z22veEujDEL7BdRzZcejAl2EbaHujfPezBPQ5dbLIeTlGCHwxhOTOX5nfLhp4Ef9RCpibTQtLhg/j54+KIv51rdH3X/Cz5LuJmZfIg6AYjUQTrvirhCL1FYu/IHP375xdwAP8dLcS7jAcuNSMU3RaYvMbIX9yx6RTEVZA80smKBVPtbbE5EQy1o2/kx8grbqgdWDqLem9bI8IpMK0xbK04qrs6uBm2ACaKdfnGMwRaNnIALGRumierE9WQcE5GTsLbiz62iV6MxPbA8GLmxxYFfq+hg8kLOjtrgxU9mwDmFTIP3z3w9fkKXHzDPOuwaHZG9Pn+6uH4hyHkwQ8njhdvToL2Az2fCvICQ/oLkifcXPALjAq9WbT/pMtH4S8Q/zZjhP/lKeeuDNwZpJ3dvfLdPbpqMFDp3VJwPMnk3g1jssC4dmExxZgZzOuGGt7KtnxgzpO4LD6wPktosTT9wSfJ4z/STNEHY8XCmK9peY6rVvBsIKg94HBUR8kf0EuTLjeZajVqiiJxsS3gS0YrA6Fwb8s4mibU7ch3IDsjEXjmOWTF9trXJVxhztfC5M+Yo5kTMFSN/jSg+M1ouV8PO9T1sMTFpSNSgAw4skrkp7gM3X5wIAOcvPvTiOXyyV72gQ3ZSrrRe65B1rSjO2hfI0qr6qgqPqL2H9NrY5hocpiTbBvtOtaee9Z5trQ5pWme4qvuWcmuZ1YG8iptKOHqFy74mVV9ZJWrwuBdwW6Q25LPM5bisr5ugXnyTkDVcWVs5EtKEnCtCkuW86q+Or7baCqUYW5LVcj28+K5ovQ7uMFbrohPlElxuMAAiMdOV+t345t+Nnflkr//pT46SB/dWDarSka2hvaN7oQjCd5q2ElzkQDbgBTR2uj1hutOpIWSI49HJnEgaKh3tF+hZvMf9ie2zTnw/oQlTHI297snUuseyGg7HJth5YZ7Q+8a2d+xSrnp7HvgmXPcLWzg6TlpLtG9wCt/98Z+R35x07Vx+6w2PP/ghEV9w8oJdN14qRIPqI6F3UOPhaHBW0mIIzBwcfsdyInnBEU6bywgiWO5ENNI2rredqyYuypgD2xXy4MxgCJhM4ocDcye/b5BZ8V8BV/kkW6T/XZeJIjarbKgp+9uBSfDyIXj/bZkW6oYsp4taiT/XS3K/lVMmXPAhjA/O3mWx0RYonhLjVYFZ264S34X+CNujYUv4OV9WNNCqxGzfDNUS0La2WqnFQWt/jr2aHACS1pRwL+eqBNaE+3257GKVjVF7qFTQLuyXaq7OhP1i2A6m5Y5RqfbV3/kt5U3vPDwFn/2W8NkPhOtT/VyPavSzM0fyfZxoV/r+728xzI9/+fSuoIRHWaYWl+QkUE3OuYYzIoRoiVap9D653SHcSBILqbO3V+lARKw97OonT5hu6IoVnrM0i4zXdayEUG2Fl5hR62MZCJSxIoXFlqw9T5oy0zhXaVQVmoA04YziSgpRCbasrzuc9YwUWla8liXavop3TnJLLzSNgFFCk7Zga1IimAXdhE2lkmYaNLIwP8tZdp9wsyBXrHHLZMvkjORBpNJ5rwUFopz5d03MCjhn4y6CSmKvNjapTatliUwgREu8tt2lTIvStHKfYyTzEM5I5syi57eGXRNrjpgwQ5mii6kFcwYD4eGxbOJKNYY1rdx5vo4Ayxn/0aIHJWqZwUayo+xSG7/iCiUs9fT1Idh1uasWa0HqHasGOqUax6SEtqmOWbDt0HtZXYt5Upu2cRSAMkl2ivkESwWOSejPpoxjVs61UpKlvm69XtxutSlsAin2C7oDfv5XUyXneqCwmgdNMamy+x6CZvE7RCrCqtSkpjTBVw5ZlQBkJDHr3hPqvhDT5QAQpCv7Uhq/+bPv+e73/5I//af/hnd/+YbxMsj7pIVjQ8pVg6AhmNfGOnfj8tlWKr+X226ek74rrevHjbmIFMS0C9KFEEPV2B6N/SLE4eQh5C2wO/RQVAIfyfk+iWdBp1a8LKCjNb0OwU6F95DqhE8kS0AV6uSgZDlEqDitSrXj+bNiLugDP6tmx/mDn3x6k2lrgbaB2MFOr0nupZGyV2y1VPBlD36dxnU6ysxczSRWzkGj3AW60bfOZk5TpwFNlEsr2HezhiHsJlgKm4K2qLhsp0DfXWlbloC7Tc4UupwwBnkOmjgmQc+kN6WnYVTjW7N3xH5b/KAAJnoMTvsSee5o39jyLcJJjobYC8kgvQS6LQz78sr49j0fxo3pN87xnuMc2GbY9oD2Dd2Wk0guVdX+7OVueIZxC84F2o3YmOeFTR8IPUDKOh3iTL9graPt81/sjfBzur6Zd+6ivNed7914scEtfDURtorlE2Xr7onMwAbkKAeTiFSbnLZq+jpP4jwRd6Y7Hsb54SA2gzzLPTyC9Em7ds6vBjEPplZdiev3HGuyOLPuWY0bpzzT6auZbuA56ZeOzceCeMuk207kBKmhgAGpQlwqFhjNsQ22bvTWaA02TWAiOFht7u9nEDMKsOqv6/IaZmltLiUEfaln18WVizT2+ID7WYzENEYGyc55a4Q47fGFPi+cX+/LwSYkwe/+8VGHj0/6Cv7333/mVEW1r89dFJDd9KNLKTw5NZiZC35bz/g56r2oPVmBYge1Abde/JfbvSbFIxcWQWqIo6slKrKGlZn5UXyCmjoLJWi9ilnHWQd5ND9C21+h8sLaO7a1Rq7Dg0cd6hQwX21kudqjsyIaQa71vSbcY74KYbWOjaC+ohYvZ2/lUmuqS6RdZTMq5Y5JZ9P6Br9+/+nF7P+66//88VekXBALwiu+ktPKNRWGR5U8wORiDY2k506/TLJvpASNe0XpbCdDcEteZtD0QsQgmYg0VGpIcu4dayfjwygnee+FC9kGm9XBMFrWwO6znX0ojX3t5S+8/MUNfzJ63/EYeDSgkd7hm0589cK1K9uPnMff3Nh6qwGTnzxc3/JhJjONY9zQduccxbuiF6uPMCQH38lk08dqIuOGzyTiZBejEUgOjnOS28nDrnDrVFNrMTAni5naEoukh+G/NtBbAb+lL6ehFBz/V+HqaQx2RhoeXuaFS2d/FB7fDuad2rNTCYgMx8TIEJ4ecrn+nKvB02cN6/W82yy5XqQ4zjPYe33e+ypbEQuO51pr7t9u+HNjv1aKIyNXpCxKAIli0WaUyzXnXBD4ih5aj4/umb6D6Cu0Hq7Xetb0Vi6eSC9c4frvCfAXYd6yBgqp7JtwaXVm+ewx+fxB2Gzw9BvB5QtHH4KnB+dRhO0anGMW5D6E2Aa/d3z27329hZ/Jb5/alTXzR3vx03Ivh2joWhdCIFoJPaeUqcSMrUe5i5RVTBK0zeq8XxsVgjo/Sgpz1HpT578yyIjw0TwDK/4XFGaJEk/Hqi+crERNBsOFdwecHtym4lmcrFr76s/f0FVuUgfIcMq0s0pZxsnSLEqDMZYZJJMekFmFS7cEz1nogVWcEpTGkSRda39WPsmaEskUztc1N41dynihqqgKd5KXNVRCqtRg/zvHzJLktGBbcHQqDbOiCNXCdzHhXKqme0E6m1EHc4r+X/dAoGhZxa1iPm0B3SPK3t5eNbxM9s+N4/tE3gi0Jfqs3Ou+SQH71IjUBUBdTgPR2oyPoor6ihSqGp6OZNVdysftVMUGEams89pMqeUKhi4n17IJW5RgoQIxy2rv6mivWGFTkKgYSUrgweIkQU4tUa4pksLIOvBYQrQiyb1ygmv3udDw8Wlu2J3gvDsPvdOn07utmELSdyXvE3lqwKTqba2mf7OmNzHB9srRuxus6Uxsjs1imdEFkzWZNuHNl8L7nzjtdvDTv/gTvv5dit2mJZppwHzf6E+OimNWlYKyBNv9Us4niHLQBIwRqNcUXVuBclurfiR3rwUyg/3SOe+OhrCZME6HS6v77a74O2d/Emx3Rgt8dlo3bMFPfSaKc/xUyT4g22I+xXKwVWuie+Dp1bQRUdXqzxvt4cB7WwcUPgJd/6+f3H+xN8LP4bIRRL+siYuDG8nBpheGBpeAYQkxaE3J4ZjVdEd6bY62JgRnCazDkHNytknzRvZWiwUwLtXAs4muAa6gZ3HSCNjjwpQb1grIeN3gvJXIeJVE8wJt0KwXuV7LSmzWiP0Z9R0AeW/IIcy5ke3EvL6GffjAvCRyNEZ/wWgFhhwN9MZ+DTx+g+/4Cdd2ZfyFcP3Nd/Q3/4AkmePGeQsivoa54+93xt2Z/ATJtyxsDufucDcux4XjepLjhtlGxo2uG5LJbPV5UruROL/77fGLvA1+blceyY/Pzo8eRk2U1WgOTQdEZ9qgIWTe2b2xNWFolVeMIRiKXepk3qehewebzBnsfSADWr8wZVaU5rzz7k8Onn77kbArj18E4+Ukxo1simgHNVSKuoiDZCfahPeJvqnnpSzrTVw/IPeKq7mUC/iSO/ecXGQSAudZMdhtE1yK29AlmaOqpEOMFMe8bPptWyB8EZqcyASVRs7GTe9gl9obXAY7OxXObRgbop8j8Q0nwWadZ274/rQE+gcib/QvBufzG9p+R034pz9+j3x6Cel/6/rm25M//OMr/+h3ktBG70LMajISk2LcrXaaXWutu3s945uU+01brMFP7d/aa+QFkAa3WBPUSBiQA6QtpwRUHEHrn+fCRhT2p7zwVppFRauiUA9dWaU5gviCulPT9Mgkl4aU63vSkPoey5DN7Z70SwlgBXTPxaqUj+6wv3pNX89ekq2xDr3BiVSs0awOMmrlpJeGZAlwv0rXkfDOO1/MF3ZpuNzKWRsHdCHjkYiDVDhlwzIYeSfZsfMFR0mp4Z3ynsEbIu8wjaEDaZPIjaZeUUMtfIRdH7A0+s0ZLemX4jAGB709AXes72hO9PON8+U97Rle5jvaw3IexE7vV+7zRL42GDDtex5//ULKG1wasmU55G/fctmu3OOoOPKsAL49K089axipdRqIfM+IHfc7Vzl5GSWKNDNsPDC4YZIIjXwO5lPHJdi988Nxw0O4m/J5djqOz3L/2Ui+A45fn9ifX+i/ftJVeD79V8aZlTqINDIGr2BrW1S9vnfEJucHo6vRtrOE9D2JD8L2WEPaD98o7YtqHN1E2C6rmLvyiPSFeAmrwe79BFXj+rbwG/l4ku9XqqfVea63OueFFLR9Hsbbz5NzCMde1RgzZrW4Nlm4mCi+UmS5VxXcYLuAe3DpwkCqWdyT6YrtTn9a32+WU0YXSmXr8A9+29hG4/Hzwdu/J3z9+42UBk6kAAAgAElEQVTnP1BGE37wD5I//wPn898S3r0D1+T9h85//U/erRPsr9ZlorRWaao7jh7CjMkmBuZcRZmzAPyqwj1q8GVNKRaaIVIlXPFXYr6SQZp8hLKr5WqgD1ovtmQhbFiGGqmBX5SJR1Q5yp5VsTxPRlTaKqXul9QVTc1yRAev90QuZ1ZhdUxqvzWjIO7WC2/kK3JrJPkKfJeCtEfGYk5XOdgE0uFqSWIMD46hPOzBBeEMwQk04EXLlW1R5vlJuc8+LLe2B3y21v9zKE/bpHqB/2bXL8VT7hbCLq98hsWvkgKn5bK9udebsXfoW2CtlPC5HCqvTXyeyjGqVtS0Jm0FZFM8tCyolPqtBkSyPSb3my3YWnHfdFnDcsmkIQJeLrJYNdKl5CtzC2YroSisBAZpWVPDzBVxKxs+XlNln84ctRhFKjNW95xKMXEUVMr/Vwi6IEbB1oRSzjOd1/+RUZDwV3u+lT1WSuFgF0Uphqm14hK4gEvZ+IOqhv0Ur96U/VptcuM28TkhQSVpvSPZFhCyYprus9rdEmIJfCUo1IYaanEzbWymtL0cbk06Og15Sd79m0BOxU9HRq7GzBKdImKVFNR7aVaZ+n0XmiWbKGMG9/dVgzJz1Pc8nIxAxT9aTZO5vsfXKIgxjiiBacED658L0x1pwA7zgLRkuyiXh8R0IrR6kIZye1eK8sNvdoZ4WVyzBFOk7skhxT2RxRkI78TVS8iiIIeewRyxINKf3mVxYd7BD+M4IA5Bnje4AXetmt0XBb+QKNIuZBMiFa1KVqZHuSHavuKJE11jjUaxL7QXnP2hb+QULBotkkijC7TWOG3SL8rlwbjaQzUo9g0JxcVQE0y2asOLB2QXtr2vSUknO9CU8VSNlD1PzDrtoWH7DrpjfkXpzNjJadCtYkhtg/Yl8eOfcv1SkPwScSe/tHp9ZpVuiASeFz68jGInxXu2eEPLUZp+r0NzvG343skPDb/tpCQTxbyBDCSvbDgxH2j6xO9++/4XfCf8fC4h+F/+fCNOJb2xZ9m3T0tmHrS1LnWtw/gtk3vIR0ioS3K/G9NrbZwj4LygTI775HY8w0XZ9YrIyfF+sD9eKsIaL5wPiT4+wBzc3z0zRk0Vk4onkhByqwZgqSxWSDHVPIPIzugQLQi5s41qt7u29tFuv2mw74ZobbBEsxiX21xul8BaifGsnzNRQqLczyL4diLtQLpi7V4sTam2xAhF8iS0E/JS7p+o2MlGR/NOsEM7oDszk7ye3L6/8BfHD/EY/C3c7n93r4R//WfvuO87M417CmHF5CuRB+bajfiEMVmOErjf4XTHszamGSVCzREf14ICwa5hjiTSBLvUnytkcduOBJeqpadifiXcV+Ngk2WtWkveqwAGoK1cWjMSRuBnOaym1/dYDBDFR77iUUukjHKHmVTk0KR4kJCLZSof3V6rLxMobts9EhfQpuxWol6zioPUp7fu3+fzE91c/XVXwn/7r07Ek5MJcSHnhGjMU9nlBsPx09DvnOOrQfv2Svsmme869lUjjwfm0Um5oHLSYsO2RFug0mh6AoJ7ldJ4DMKTaM55Dew8sN6J86DnlfM4sICcnTmUOZL2AUbcsC87+9Mb9OEBOgTO+dNnwr9DtsnTD97gclnDPcFnx94NuhXs/zYn6jXIbj2qCOEwpjgfbNShkQk8g3SYL1xykodwxOTUOzKTJkLoQERRTiIHfpnk2di18YU1njI5caYqLwF3CQ6SEaBfOvGN0WeyZ2P7pCPSP7s+s0Z6rRl/FROmktX858KbL4Pbh8nL1wazoQH7Qzns903Yt+WWXw+Ven4I5xFkJNtekeYCVQMCt3eVkAkp571ck/N91JmsVVqhMBPFvdqT4lK24NIU0yw0jspyttYjLaPOJ2rl8FEtMZ+zMV+KhaRbot1KyOptlSJUJN9arbB9A92EHeg6uTzC9z9+y/0Ple1NY3/TOF6M7Qc3sgt3d06CaDuSv1pu0tcrIjlPOGatdWcsXpYHXZQ5K4KY1P5dZNYaMcoFFZGFYkhdPqdXznKZIjJsOZFZBh5hBng6zZTNlDPWWubB6xzknIlancXq/lvxV6k1VilEjYmvAZDSs/bUFtBeuczLOQaxzrxe0f4Vii/uV31hXUMd1fqKda6Uj3bpSwsumpjMEtOOwhzNI7gQMOBOicBbVlmKEOxSLMpCLlVs1gTOVDZNDOUnt795jvWXYov2IMX+wROPegg0qcn7JgV2DymoY9H7BbReEpFyIzngbgxP5iKBjuWiSqmKzQKbranhUtsztbzys0j6KkJXxXZ9DQiW80uyooOLvD/TCUvc6k2tuuqCukWWRW9EtRS4CMcs1dWTj2AzwdYbORGKvxRRtv0S8jrnFOaKJTaryl9JMCl2UyYYtoC/1T4UAqQsOF8WC0sK6hbrdXOJ4l8g0OpGs/ZpLnoqlePVJuxvdxDj+WXy4UgOCSaVBX792NR9JUsIqtfEpJof2ms7BdA84AIPX5ykBh71vplSNboAr+JilBimsrLWOO0t9OsscO6KNsSKovIh6dkq2hENMMyE1rQcYgVAIpcT0RdkMKPyyu7UBimrmcp9VYSzbv4pqDSEeli1NGLMcjO+E/I+aD+iWnHyZ5+zauIIxoKZv5r5FCOPhFbMkNcyhNC6ryI/TTEruxN9cu1C3yfaJ9mccz8rfvgYjM8mLSbzQyfiJEJXZrzErIaQ7sxxlrlXtNo8tEDyLQV1Ib3xcp/kGXhKTWV7w+fGIHnYlDmV82XDrlauinmieiAYPpa93Q14pscTcdMCWpLM84IPx+SCx4lcFH0ca7GDMV+wDA5xNB3XKo944YLnznGvkoShjeev3pF2oPkWjxfGOHF/Zs6DvCfd634RWrVwRpSY6gqz0REO+Q55nKgH8X3Zo+cp5PhynUIf0e2ZZ+s8n/sv+E74+Vwiwu9+/UJvB28tUOmECkRHLTkymKKcUk2WA1uH7hJsxIRtr2eMW9J7oOaINvBg4y1nBi/zBbkZOowX7kTrOIbQC/7+oFwfH/Dng/HdgPuANIiG357Qi5Gz42ZknGhaTafnUYBlOirK3U7CDjwO9FLr1q5SsVerivOLVcFLbeqDbgVGPjNgPT+HJ5ytJnwWDIe7TlKq55g4CBGGnUwXPDrnORgdPsw6XAeDEYutlQdtXgiSS26IfEA/f+F/+2cfXs3LvxJXkvwP/+P3SM+KyYkwRIrt0moK7ay2JcrtNG4FNbYHllBYkPQxKzboDnMWJH3WhqUcV205yZezSqxcTn5WEQ4LgGsrQqNr8xzrwOesaOGsjWwWj7fwM3259dfXbE1oTfCz2p09pVy0AddLiVDwyiOptau/7o7XhFtXNGOuf+y+mhYT7rMGVmblBembLeCz4mr88//703SO/nVXAr/342fQHQmlZSN1J0fCu5P5dcNeLsR3K5b8uaBPA/likI/PjGtitxf6V8n4cyG+2onngA8dP0GH0nigpbHtvYbT1snmdO/QNvTJmD9+jw8hxgubGbq4tjqS9s7xnrQv39J7Z9PiHpkb5/d3rraxvXH6rxmzTaIlsU0UQ8csMSKFGBW5aRSzSmQnHO7zwP2Oj4MRzxUPSkPOG50LxkZvCeL1M7ETLpwOMRpn5nreN9zhns47v1dKJIV7TgbOswon5d55dzmZz4F8e2G3iXyiiYv/99WtsB+Zsc5Itj6jyXkvNrKI8vCF8PADZzxXm2CkYs3IaPSHaoLPZY4QjHmuSPGlM7ymKTHLSbIJPH3eVtQd0GTblM8+V/y5nNH7U/1+pY6anolaxR0zJr0n1leb/ayzZkeqGTFm8Wt7o6eya+fhjbNflbbVoMaaF+ZjxbVkVrS7khTBSGEXsLPSOtrg/R8E7TE5jsntG8c/OJ//9pW8CW4V1//v/s1Y4v2/fb2eleLj//vErqgzlHsJU5rBFgsJI0JOCG9sqpRvxZCwSlykFsO4lQ6glKNcxJZjsE5uThkBjglnJmfyEWMz5xoCkQy80ldSA5fV98Z85eshDFnuZc317Ssq5ebKJVFtiw7ftKDsr3D6ka+/p1yChWGo4dFr+yb5M6HViY84qC5JU8NEeDTloQudydarHfi7Uwg3NoGdn4l3uxojrcRkhA3hUeElwQa86cpnlvxX//M3f+O37JdCzCpjkfLiUkDyBfUUqY1DstojpNrWpoOHMl+HXevBYz3YWtI0OaIseiVsKudk2THLoh6ZzCmEBIcrQ+IjjT8i6BuMs61IWRLyM/t8RN0sk7U5S0ExiJoOnU41QEnlrGXxFiKqheD1Z2kS9FZtdUllRLtoTR8RMpzWZIHoQMmyjmYuVpjRzIhMjiWkeAhjpV6FarYwgU2NJsqGfPwwaCZDClA/oQC7n+CVuSya60HgBNuDsW2AeU3CwjHJtSBoxepMCgSvrWJWyyquS4xMg0zj+cMDgZFWv2dQ+eNSskpsMi0wc81050fIfDEUFovNYdNGRvCwKcJAM2oSRLkR0uteqgbKZM6Cwtf4WlfLRa2srwKdU0JbPYyc1kHckSiAu76y1LyaLLgH2+edYzTGPZY4t6IbXg9GH75ac5J0JW6JPsw6vATFo0mWLVXo+kuRaP4Pfs0z6HPgUjHiI4VoWuBqC/psyIR5dfrTCdPwd5O2wPjWIVs9NyRBc1tOv2p5q3sSJBXnTsehbXR6NRISzJxYVp33tm3kPJnvX5CZ9EwsdmScqDRGDkzek9KZ5zPZXygejNF8IPKED4V4iz8/Mj9cmafgORDbiJloHBVlblVjvckH1Bz9LjjzPd3ecP/z97xcX/C4gArpB10b467cnwfpsQYUNQGztGJuzRsRg8monzlO/I0zr0K8v5YTsf8llg5y0lz5lz89qa38p3edkRznjdMu3LTx3TzIsTNuwRid7juKMM/1ecwDTa21xQJPGLMT07AU9FD8Q+P4dqLXRviBXRR5YxzuCI3rlzvhJ+l3LAczJhHFi+h7J98OznEy3y0g8TWY7ydzdPBWrYUZiGyI7YR3UkYJty2gBWinDLJJ9Fa8Qt0xS0QntoGKEVoDIEUhG+nb4jM5k+SQhLzgsRPSC1YfnbvUYItZrls/Zq2KPdBTiJHMNknpSDPEg+O4oT0585nIncbJP/7uBc8SUH5VrhmT//X3BluvEhC0CgMOaRirSbnV/maeFQ9Vq2fU9ZrcXpJz7SnOqPWqBKwVw18xA/faulXj5mJyZbFEX9sOk/X71veWZQ8rWK2Wo9mBw2ttz7UBTyhW3FoDJz8r7rGrI1YCgopUI9NrHTjUX2a5XFyKmRLUAQTqz5uyRK/XCfkUaFquBs9iG1nxjSwm333/KoH9al3vbidff/WIfX0l3yn2laG3Rt8e4POBfnZHfrjB58q5T+ZDEFfFHh/pb0/aDze23560z5Xoz9gQ9nMi30yOr4SX9wdz7vho5KlUH0owpZwq0nbkcXB++555E+bzDdIY33yHfTjIi8PTpQZI0og4kZzcPwx0KDwa+fA5R7yQYqjDvNXeXKKc7kGrIV5cOcbBYHAfN24Y7EKo4RFV2DOEOBvWjJHKzZ3bTGZ4NatK8KiG+YXPGEhsXBNEBy/b5PZNRXtNoxi8uQagKZxeA7IeyvxNuD8L8m7jqr8arkCpsTS6BAYyiomVQd8VNNa6lGyy8eZL4+VrwbqDK8/vvIb6WkJShBGve2Qz5hzEep51K4H8/N7ImB+BMmpCWnDPwP4f8t6tR7csS896xphzrvV9EbH3zp2VVeUyLbURyPwL/wUQv8BXXCBASCCQkDgICcEN19xyY2GEBdgNtkHuk62WD3KrW1Y3btvddHdVdR0yc2fuQ8T3rbXmHGNwMWZEVuOmDxKuyt65pFJeVOyIvb+1Ys053/G+z6uVy6eZdFAP1poiGCQjUgpZvCXQxDnf5n7q1JRlncMcSZ7SnA4/tRVGBL0braaQ5jZRI49D5/l+cgLxwnkJwhviCiYsi3N8Vlhbtmje/Tln/zw4RnD1YLjzD3/4ReLjR6/385T4+y+PvKNF0g3coqQQOc/IXoXpTMFCnspBVAPzKaCazMK4x4Ulfz9Ncq0T4LDUKh4j8MEsM5kcR1WleA4GIZsCbcbRAjJaqCmqVklXoRSeRK1GrlurPj5CKawVEuJeJUsELKawQcLsM0Q/Y/bE5H8x24x1CrPyRRQ2BBN4OAq15b+/16CugDoHKdgtKLci9BHcKfk/EQrGJnBv8OwUPBfl3/nZzwn/4/MdvhQnTJ9i1VJysreUYJG08V1tNvSRQFGZNrXDghKFLpndZD4gJfKGNCl4ydiCzz/jodTyKDfKPMRnI+BI/1W6ayJzn2UdXN7CejetnzKjQfgcJQpuljWbNhH1LjRNh5lKMidUM0IRAaI5lkyXWQpvRLqukGyfICreU63PQCATEqg/0qaomNt0mBVWcnM4zDmV5HmJzM9l2iM7+Tk05ktSCyeCQwp7OK+O9/M15ZGFAaL5i1iXef8LyNJop53Lp05dT9SbCVwsmhXckzrrc0GpAqJTA9bG+uGJflzZ7y2bLFs2Ydp1m/ZMJSQIs4mDK1DSAlzRmWtOh53PILRYpVOoJyH6YKlg3fHH5kUeX2bO6J1aynRYZX4/WzPyJWDhOVVXn8w4UqjLGiekKIcPolQYQRQAJ8ypLdvNJCYnZL7s8OniE+EYUA2O204UfQJehifXrmlu6KW+n9PBz/SOr9fXRDlN4c7punMbya1KUdlgSMIjl0BPeSjUIez9wHhOM0Vf5ES1njp2BOe25AJiOxE1GwFjsorEKFtga+V0MmQI43AoRiNjn1XPhF0RGm0puG9orfShyLKnJbitRINyNLoNSlygBFE6fXFqPeHWUHPgwFSp5QSLEQV6OaXTyl/Q7z9m/Vc/YP/+mZtvnoiPFrwblJLuwAi8XGlVOO6NfX/HKs8Y7kQceDshu4I0xALVzr6dkLnZi7sdOZ7Bm0BvBOrA5IZf+uyeeI+3WN2C/+k3lH/zzw/Ub9l1TH7VoJtwrUbThbg6cQPFABG2CLgGqgfhBbkTjmcZy+Ou0pYTJhfGw0ErN9gxOMbGTXnO0BWpI62YZsDAoiDAyRfGWYjz/LmA3BZMLtgnlfJRZdeDYleCli2DktunoalkOIGWAaNSBrQaOAOTRxyAoliuswwiymwC26guSC05WLCClgsaymFZrHDQAUNLcvvKmm6I4g5HpV4X+gdvOGnl4jsxuRTRb9GbgysV7OB7l2/yYB9ng0+8v8/XP3eF8MNXO/fHh6z1LSoLUg68Kxtkw+8RLGtGWJYyHezmjMni9LlNeoS3G3wxlJE0VvYBUnOIJg5lyYGjk0IUEfQ+H53IkpzH/UyZiMsym4Bi8jgsQFznBhyYzUge6VqOJYdI+feSGV8GtXRUD5vO/ZJuiuJ571XzAFMi2aKmKbZVFcpkknbNyX1UJcTovhDy+Bf/6jmzHq+/9E/f8B/9hYKNF+jyFjGHsmLsbOE0NXbrVF9whTGMEk4tC4SzuxNnpZ1f0mrHHpmvArIr9vCWpa/pSJGCx07vV8wvyOIszyt6Vtp1p4TQP/0MXyqbBvJZx7VxWoNjXNitEDZoN2dMK6c7T7dFWaF3LBohD4w9OPXGvgR7Ak0ppdOnq8ck38/Fcq8tveDASZRgZ2wHJ1143ipv9iubSbYhNGOzxgs92FbnA6kUX7kWeFEC+1DYXyuXl4JdD+w8D6kBN024zoZOl0H5KePhB2da/2pExSRyn93JKJb2jAaezzX32h4UdcZwRIxR4O4bzufflxSSFkHEcs8qQYlkIt09SzC2lkLB8l1VYT+C9iIto9Yjl6rJEmxNidK5PSv7Z876Mpt/S2JLqYvQ95gt88nHKiGcb4TjapSb3B9ShaWm63OXZDl1SyXkdFMYlwG10nej3abhYRyN/sboJTh9oDz70LiTHOrsD40WhdN55QefXPjmqbGcDy6fVq7b4O2A6y78k+0DJD79gz/n+d/31pUFtOKPJ+9kM+ojAD19TgXFTBnihAhuTphM17hQ1tQejhG0ItQ2U1RF5343v/8wpRbYuyGqyXGcGCNV2CNbFXt8IYCh6ZpS1dmgotQQWh76AaeJEEyMjaQJoQAj5s+JdH9WhUok33EOmw7/IskW5Nnv8MaCsZCc8iI6BbT8N1/Dkb2wb4O7G5mxWmHfs3SjSNBCufc0Z6xFeBtBl6AFbBRuevDTJ2FI4S/+rY//OVblH3V9KZxZTSPbXzyoA6orYwhXE4xpvQMkDJGMNqnMg7XIFHQShM7MHvsMYI3pkFN1Ds94zu6FbjYfTACjSpvRRdKpNJzeYbkDM02XFtMAQ94o92BtadkrJJvpUedwUkTT2Yjk8tjU48m7wpDZQFhL2vQVIYZOBV7JhL0w0KeGHJnOoYicujuaqnzM5kSZG0jNX5IiqYYqCY5uAX188dl0l1SgVXj17v2cHpp78qrckxtVFI+ccNQaRG3cfFiwvWOWirzMKMUj6ypBsAKR0Tw8kKPz7gf3bK8C9kLs4JvT3zpSGqPMPohZR48IlOSyMRtXcKEfgkdjmBIjs/A+nLF12u2ZbTf8Uci0SP5U5Au1lSVFNM12KPc+fy3kqamJOQ3YewfxbMCw9Igh4EUzhjgFWxv2NHkXsmXDR1aZh8/vLcJxUbhXtjZmBAVApmgb2dzhnt/T3s+F729/8pZdKvU4aONg1c6p3HAMZUjLz1JyepZxwUBGNumEDupNoZwvjBcPcBmMh4FdPXlTEbhbbtpLnffjjOjgwDCtyAH0BRtKeAU50OJ4CUTu8aXR5R6A2hbUew4N9Dm9rslz8IIpKc6L0q9KiVt0NGIvxPic0AVvHZOD4h0dDZUTbs75/AEPv/Vt+qL0i/Pw3U+5/3zjeq+EvmWMA7rgoyH3CnujRuOsX8f7oItTY4VxcNUrrsHAONyRYoR0uuxYF7RtxLLRjmxY++1ukx/4fj5fkBO4X391JS63sFwJzcZRO4w+ArXA1DiWQlwdOQq+LfThlFuhvTihLxxZSr771VEZ7KMjSyPePmfsnf4uaPX5ZApekFrYpuPLXQnbk3k2NE3yOjAGBaVWQe8qcYbjYvSLINeVfnGqGpQdi2x1qV4S4L4vyFEoLeOpxECipzM2AEkupIoiGCUOTtGQJk+8OZFsgYUFEWWXjmMohrlzJdhQ9hA6J65jY5ctQarRqe4ZmQViPxCMFicWP/G//vLn1JEcKPSrYs3KzTABf+vvfozHGW+SiARV2lKpJ6Uskwta0z1vHo+lz9QTjD0HfyrpbrK0NmVEw9KBFZr7pBGACn1PR8Gj+GQOWiFGiksx457pUp6xnMR+IJ5RRkO+aHiasXsjhbPe0xlvc8rdPV30IuluMfLnjJL7PPM8sFnMaOHIQY3OOCySgspWoS+Jq9i0cEA6/jTBuv/0d9/fd9MfdUUIv/n6ypu+MuQNg6ADh2+onIk4pRuvVqyky0lUUVa6DA4P+rBMDejOPlIgN6uYC6Me2E3Bvlbwjxz9ZlC/1Vi+Vbj5889pP/0B9XxLMWU7F+ybwsMCcmc5kDsZdXmD90u2mH8Ip68XtAxieZ3sqvJA8YNlNJCM2IStPDSjd6gUVBZ6z/1lLcJdCW6G8cKF5+LcqvNChbtQ7rRyw4k7GucO36xnPtAV15p8pu68dmVnoUqwLIPmAykVK4E3ZzWjDuU0fyfGXP+UdEq4JsRbv+kcl/e/vSIoXELYrCBSaC7U0mhL4lv6jKibKSFl8oJy2Hh6qWzb4PpmOoXdEMtWewisB1rTTaVNKE2hN0rkHgSLxI8ADJAg48yAhHP7Qnl4zdOZgoCx5TBZNZ+fJoEUx3QQKHW6+4skJBwFHXOWXTJdJBJES/fYaa1sP1S2T2B14+7PGM8/EuIK45rvLd8LYxO+8+uD/d7xUXj1nc79plz2ndGD12agwV/+1U9+Yvfyy3CZZ9lbRDYGTnw1raRrqYhT6mAfeb4arhwjMUilOq0oR08ecqvTeaVORJ6zzJVtZDrrCKMWnvA1Tq6Ze94Kjphx0mkD1nCKBIgjWifsnyzAEE9mpQi1KF5y+NMtkRSlyGSeZuS1W0wbT7rAjGxIVYEqJUUrVdY2WCS47sHRnWKZZtoC3h7B2JV31zS5nltwSGCabikLZxVlD2YZVa6rSnAK6Kb8GRG+dapsKvw3/+BNClnTuPPHvb4UzqyLFc4lkldQ8mBi0x5eEIxgKJRIWN5Jg8PnYdyFgVDqbDVsEENpmu1qlBSdIsrTBkdlZCuPQokJh4/JLPLcEInkA+suiGbt/f29cnPzKBTMG9U1YacqX1gQPV08FoFJBVKlHeQUJeHxihbDXB+Hz7kTnD8Pytw/B4cLfcy2OVJNRUB7fja15dTBKJTidM+o5JCCEniJJ1W3FiWm0vuY8Y6AMZRPr++nmBUbjArtPKN3pvkymO4hyEWhfrBzfdeIklngx1ihtHQ2BRmbq1N1DnE4clIbRfACduRLRY6sH3UJoOIMSqtUssnSRi7ApjqbJ7IFKVww62hNB8Px5kr1x/pxnfWWMavIfW6oJSHsGvnMjfH0jMZkVQkV1ZweqSgUx0QJG4QKKg3bjeOq+RK8TxElGVsQw/IAYjI5cAFnx25SnXfL5yxfPmk7jYi0xKow3tOz4KdHsPjCoYPYgai0U7qWCoLWhrmCF3zJaaAYNC2EF+p8L6gbnIyzCiWWtBhvKeC7LYCjywlpRwpjrig7fU93KDeCXjTjW0g68WQF6+jRUuysynK7sG2dwmtWvoYtB3jGG3pNR13rjf3tPXGTXD7XG4Qr0e8I7/TniqwQbtytH8Ab4eblLf6NhWI31LsLtjY8NobfEDuEOnBli0IdOwzFfQfdOdkdV79nLcKqwtGceBtIHUgvWCWZbhSib6guWNuo18rf+/jhvXZlPV69d37jEP61vaFqs8GtILWiVPrRWaojJ+d4Wygv9+kCLYQ6QxdEZVo1/CkAACAASURBVMadC3gjysCjUc4H1hV5YdjnG/JhwUZg01Wca0RBvCKtse/JmYqR77d0iHUqAeOGeGmsLogOqhRgQ3clDhiiKU5VR28KYhtiC1oMZk10DmUe3bQVCXtq7BQ1ymRFTKM+4SdUj+RFuiZfwhTRksJGd6qs9O5Zne0brkqzmrD6EYQMrA5iNIQLUPjelo1V6ed//5+xvH7k3xnOX/+lV/zrf+EF0irDchhYpFFLrjHMjWkOMASX3Gv03ZAlTUnz3EjUGR+czUppHJ//LVCLsF2DdU2BSRUsK4/SfTJjf8o0C9aZtfDJ97KMEFnMWPx0T7X5Z7yRez7Nw0qruRZfDZYRNMl/AzHdWpIbf5UJsyeHW78vEiIpzNXpigYlNKfLVQUr8O3vPPyY7+GX6crh8//5beff+Fc6w5wmS7oDhBk/PiFRyUBMT7eeDBBDdMmBosdkP1XQPe+/GpV0b6nMWLJDtQLLgfdOoREPO3Yz4HTDNUBKZ+iOnhqtCKU8py6K2Jb8ve2MRoDe4qb0CM4OtYGPg0ZhbIrfXujlloiOogxvLDpYN6UqKE45OiOUu1Yp1ilWMDN6aYgJ6gOzE61c0NJm8qNTtHK0zjs33E50NbCBOKznRr831ioU77QqXNwxLbmvSyjPHE5t6Efnn+gT8OO4BGNFEPrEwAi4ZdNjKbglW7JosoNjliMdR3Bza9zcCG+/6xwPJ5aXHVU4dqEUz2e1+ExKB9aFI+B4FTz7qYyiqShIipsimTISwGsiN87PhX4VOAf1Nnj4VHj2tYx89W4sp+RaOYW2pg0nHanJ+BNJ8VXJ9S2pHT7LUhIZc/uRUZbZtF4K0p2X31j4/BN4043TvjIsON/c8Pbbxu3L4PKgfPZ9o32zcbXBvc1mu1hwvhqOvj/oqjM2isMy0zAicMx0insW1pWIp/Og11wfdivY5pxPKRRl2ivxM1VhjIRi1JZagwIdUPf8mkgAu7vi9YvSLZGJTZIUuZpIOsM8pplBMgUSMssIHA3FJddcj6DbdCR76i2rpkGiiqQjSzLhI+RRM2K6pEdywW+mC1vFuY6MB1aVmUortCpcPTldehVKm8kmD1aSCzZmTDG/U+HDNrCifBbBLcp33+z8KFrgj3t9KZxZN5p2bY3k+3RPxXwp+UFk1Cnr6Leu9Ei+VJV8oDLalBlPM+gadPLrImKyGGJCvDPiR8TkcKQ1M0d+qcQ3ERRLN9X8RPsQTufIzfZQYgjHERxHqp993rDMu2ZzVFGhalAJxkiVfV3m99TZNjg3RRaw73C/C32keFLm5LJUKM0oJATZLeOMpQgfvxsTPp/gQNfMcmsteMCYDrEampwnpmo74a45ySxsXXi1v58vr3KXQhbdOS57tglqNjxoBDfaUrg6rwjG9S1zgsuTuBruYI8cKEk2mQTllJE7kdxYy0o+S17zxRM57alSqZZT6ce6UX208c1nwD1jgzqdW8MjnVquWQEtKZyaO2Ok8OiRrrNjGDZyMaRoouGFaVdNG7Sqwih4D7Sl2LLoCf9c8NcdrSk81Q+d+gzq7aCdB2UFuXP0zokXHXnuyE0q7jGMQcXmhjMEtE7Q4RCkTEHvPT0MDgl+4yosAfXU0FLY+54QfJJJx+hEyeepeGOZMeSxGwNoNjICFaAtQY+xFqw49fZEvRXKneAfHFB3wgX3waGV09eVm1tleXODHgJdiR7UWkEDHxWW2QjmF/p2YbGK6A1hF4oL1YU4QIai2hi3PRklO0RvCM51uzL8ATOnSkGuF86nOwJh+8HH2N3Gqd9x/ztvWF/ulFPBRsUeLmjZYW9c373FLxe8CK6elcOxYLJTGyi3XN2JeEB8nytpJ3SwR2XIgWnN6aYU3pwrb/qXYgn7sVy/8I8TzH2rgUUlSkZiBjuU4BDYP1N4vkOXyV40jhHgxohO+OAwJ2RnDMc25eG64zvUF4XjYUftZkarKsN23FpaZTQYvqHtgM2f+EfHiBmmDUzesESlamO3K4yO2AmtFW6FdqoJFw+l2AHUVHd1UHVOPR1aLNArEg2PmhXYTZEpmAcZAxFbcR0MabneExQviEi20kbHF0MPoa07fX/GuCmEKWMWukgoxIJ3Ael0F6DhavQpwr+fb68//ApyE/4zf+c1Sy2ca7odRGEjOGZLqiGMkpEKpmt3uYV+nW50e9paJewdmXzAXB9ryUKMorCelaPDI2FeNEUtAaTMASS5wXaTJ3C8W8Z9qPn1Y27MeWzErpruK0tHlnlOpUskV2QtCc8WZTJq5pKluQeQptQKUfLv7CLoks73qkJXyZh9zai+SgDGb/5OfCXE9j/sEuBnf+OCyonKLeqFpGtcKF5p4eBjHtwD7Tu4TtHa8/ClBuX6hCSBIIYgXCkIMTaK2GSsOKs02G/wN28oL7IFwI9O9E7QWeV57u20INrRcXAdJdm6PLBv95w0GPZAK5VqjX5cWUenjp2or8FObP7AxoXh0OKBcx8sBM2zsGUsjWs1PrELr0O42gUQHmznVdzzVoxNH6ja+JeiQgePwnaASx5MhzvdDi4xuGC8kZ2xKksNnnvjxuGmBuqD5lNYIQfzfQhjeT+H1P/v69qFUgplIlwywUI6RFuKAIdnq3eQXNtyIgWLCh98Q3n4LFMYZkGp2UYo6vmuMqhVqYtQWs/3AnkOCzUQuH0mLCvJgbZ0v0TPOHVbMk5trtx9kAJA0UJppEurBFwCWabgJlCbziRNMnv3zcmXEoQplMIiZ/b7AWue7w7JVrzlpmByIGtg7wrojshKd9j1oH3krGeQU/DtHwx++4fCca+Mo9D/CCHrfY4YAvQZ3V0me3jMJnoAmzyyElBKnntUgpDIlEsIS5MJVM/Y/JgC2L4rjidGKfIc71OnOGaHZhAcAygxhSyfTuGY/OxsyX1kIy9NaThLCaoqaGShyRyUm+czHaJ0z7hiMF1ZE7HgnjFFcSVscihHCmXmQamGjxTC6nRwLS15388WWJaKYHQNEMVNWQogwak1jkjgShGlTcbXqoqY46WgwNdU+fd/4WOA2X481/A/5vWlOAmoCMN80vzhpMKKQ58bGVOeUVinq0nmzXexPMxPJ5KZMzyoBjGc4XA8vdydmoInIHMqmPGtfUhaTz03LqmCJjgdZU4jE1pmEpRpB/UCUR1zOEx52BNOXyI3OD5bDboXRKAb7IdOx0riRMc8xBZR1rNwdxu0llbsR8qQObgUtktwfZcPaJ9huJ96sSCmhAm0fHl6CMdIDtcj0ByN/Jw1gaZN8hfVQrjucHN2fvf1+8l1+I9/5occFPwE5a6h6pgP9sMY15VxGK0Hhcb5G8rtR87+mXPs+ZzlqPexeTJ/ybI9sEIt1NuOLgVtHTnB3TcbLIaWlpZkmbW9OT58ilI0TRvno0DmkIe+OsWumU5XVboNeu8Mt3w2s5qFsMIY9Qlwiwdu+aIsZLNUEUXDCIfWsv1iv0D/LLgeB8s3FtZv3GK9IrsRVemqHFXZSuEag92DY7LaVIXScvJdqiDeeQTQKwLuGQ9Qo5OxH/lSvGn+/7/E4Rc+3XndXqLhoBdWrcnO6B0QrCg6AITQHY8yCwYGHgdesk0SkWRyDAgfGeXsRoQzIigXoR81+VnTfr7vwmEn+DCotzfJDywQ94PxuSBLodTKNi7oeE6JlbJA2ZXhnb7tdAOTjquh2448gG3QblrGhHZY1jOlFfSs7BbUu5cscqINhQ+M/uk3uX66I9+6Z3x0S7y8Uu4G5XKLW8GPnTIqixZG74w42OJIgSQE6xUb95w5U31BUiXmEEXsyAMChaKDshxQnb/6HXtiw30Vru/3nTKEqytmwjGnzXhBo1HvFX1pDBcMwyywQ7IN0qdj2ApqOzYct0E/3uFLo6xXvAg3f1a5fv8dtQhig1IXzDvqOxo9W4djgRoEnRKD6meEmtb8l4G/7dhVOPmJRQpWjCGDeMh7HZpCa3TNd1ks+Ka5ySpzTa+D0hQpByX1+Rw6+RQbSFdMLwedwdU7IwKRygjHrRDeiH6HuHM5HQQKy+vJa5qNxJblLkqnLgW/NMSc//EfndMJNh1H76kW/0deEY4b/C+/+IZeF6RUvJw4rydChUODIRkZaPURWhvpHFBhSxMmJjKbeZNP5WRUpkbu/SRIEHY4ZcnptR0pKnlqsTnsyW3hFLSDx1//UtNtrcEsvEm3gth0d4mzlqBWUqhiCmya33/vj5GOHJ7WklH5VvMw7PgTDL60xzCmECXjia3VdOBKyZNrUb79qfJbv3vhqymFfnEFYGPjdb/FSmOUni1b4waaMyRprpTAQhlxw2HCIcJwy/iqBXaciMjykPz0jYjlqWWyx2B/2OmXK9dX70A+pT7PkovhGyN2Bk4D3HZMNiSExU55iPOD63Fw9MEYwRgH3iG2nateuE5Ugu/CM1FeSLDEmdM4cdcHt+MO1cIRg1e+81qufOLveG07mwWv44Ef1MYnNbiGcLjzVjrf1wd6GDYGS3RMBn70jLxKFjqNkSUJp1J53pWbMrDrIHoKKue98JEVzpaGxeqKjWy0vRzv55D6R68A3pUzFcfnwW14TKFIsA7DDDQjWopSW567HgsnaM7NrSf2Q/J0+Fgqse3gUhkuaHEKwotvOf0C+whsEdzheBNoVyKU5bTMPXGuIyzAlokfhkyBf8y21Uw43Nylq69qoCvsOMNmRLI4sjrjAuem2dZqDrpz9zUIMYYmNxnP4jEpcLoL7hfnHQvv7nc+3+DNLnz3u8K9Ol4Ly9dg+bMK1fivf/n9PAf+Sa6C4xJcRrA5dJE5iEl3lnlkZNoDU+GdOxtwMWhr4g12YPd03x0WuGZctaFPrCrXxBl5wIe3+bNFBfFsqB8h7CPNN2iwjxygJDvbUAQ3SWNKzuaooTkfnNYyiWxYtJHoEiKHOSHgU2VwsjwOHSwl01+t5HKGRLa3PiKU3Bme79/n1TGFj98Y52e5ptuA00hXYi3CYYmi0IAl4EWA9ULF+WBVbkWppfAXf+5jrv33I0P+JDHDL8URM4vhM2BZJIHZQqHUIHpuNq+5I6FEPNWbxsjDvJQgTCgBp6mAGoBoNnOFsahOsSpYq3FSSRtfpJ3TI8WlpzYcSSU+Ip7EhloKefszxqCSwkT68ozWQIvQXWZtZk7oRPKlWDRw97kxloxtBYyuxOrZhhcyBbq5+UssONGFsiqyyFPLj6H5SzYhcRJkdSjTpRX5go3pZANgNi/skkyypkLztCh++vB+TnAeRvCf/8x3cRQJ5TgcGyUz6qeNraeIVEo6WsrSuP1WJe6z5Q0E8YLZnnWnQjZbFiE26NclnQyyIFfn3ccT+C35HGkTZG1pA22V0sp8kYArufsuj/c9m+2cZFlBpdvkWkl+fZ8vWhFBahA6su1iPhjTYfpUS9yHsw2HqPihyKWm0PU1qOdGpXD5XsGOB+qHU6knZp31yO85P4ccCc3pVnwhoMW0mhoJ1zUGVZITltwu//++QX+KLxEB6/wf3/sEYkFjmWbSoNRGqNPKSLB+Tytu0YLQKLImd2EEPQa9O95HcrYoTFQC7kHDMZyW4w60KMVSuB8x6KNjDGhKCVi/9QHtzxXWDsfbYC3CGMrQjtsZK5esCiYjhkfaDRitwuLICdCNkCPh2m8d9RVzzdCsG68f7rn8s3v6w9e5Ht8hPrzHTid8c2qrRNyw+5X4XmAXJVbhwCiefLkyKt0S8q1yzGcu31taKx65Ila9w8sJqwuhK0upLLHwcOzwKOJ+Ra5fexsMn2J5n2B+EbqPXE+GJgRdHYt0DadbSYDKJSC0sptwpiJXQVbBbs7ww0asdxQfqDf6ADuCwqBLwWXNDc2MOEI6VQavQQYRKxprNv8tG+Z3CePVwoigr53j2HLTJSn0sjtDD+RMCmdS0Lpg5rj2LHLBMZIZp5YCQuoD48nuj4B5BXZES27WWtDrPcMr6sH1oXAswo5TZiRRTCnmuCl+8w59d2Jwx699/DlAsskmMPyrfLkHf/0XHjjKmmyNoog0TnXJeFdVDo0nd68Bvjr7PluEIwiZ4s90WqkLB1lRngwYnhxRUh+jZelGb4tQp+uqR7osRIRWH91enkO+mAmrp2ckIxdOMrUegfRtlg2F5kHyZjrmHyORNrd1A5L9SA5Sh86BTssmp1Irba1oKSxFkdKoTWm18eu/cc8XI8mv7vWIPPjv/uFrYtwTk6lhpeOz/bRDCtBW8S5Y2dN5FymAikJ47nGcbO82b3gMVCbX7xroHuxrcL27oSPYUbmOoJjQAmRsyW/zC96VMa6YHlx7Z4iyRiG8M2xji8DMOcwwM1Qck8Lhwme+8244d154pkprhTMHrsG7ApcwNgSRyo2esBAsTnSubL5zjQ2hslLwKFz04DJB4ItX9JhhkZGRnrUUnsXC2YzbpbGKw63yauz0Da7FCXHWBucQ4lqRyGb0ta0/4SfgX/wlgNvId0vkgRsJrIONeQgqAuLUujKGgeRZ8jFyJRIsL/IM9+TCicDnote7gRljCG9epWI+jhxC9msl+hwYrY7epNhgI89+kOK4tGRp9W1kamc2GtYyB1R7ureYEa+25jtJpqtUVVjv8j13zJhhe3Rd+OPAJ9Hl2yUbEzMh0Hj7EGwr/N4POw+hfHwfHApbce41sHIQzxbe2B/uhvkqOE03LxyhDIQ+Qeomwh75rFQttGkb3h0oMlsKH4V2oY8UmA5zymQQd8nhT3iwD6EPqC1zfW8uMEK4ej6bIYrH1A1CsgI4kvNYJtdSfDDmmRFLrUE1qMosJ3zUL2Lum+KJr/fYkPnIBVPJ1sM6/z+ROZgiaGGpQ8xjZpmMr0PSbBPzre4GdQv2qXWYw26CiiZqxhQfwt3iPBM4Sa7F/97PfZLvd36/gPWnzplV1VkLnInkVIWwA9chDBGKZ1GkS9rTjtm93D3bJ5xsB3AEs5yZqUcq0zb5PZa7HHNhWKql5nmQEs8azSQtz6ndFLTcn6AZOIZZYSQtGWOCTy2SdzQXP/e5gUnHXTbc+NwQSzzVuGaUQ5AS9EvaUT1SKIvpOJN5i0Ty5VzW/PM6YXJ4Rhof7de7Jegcme15RaaAZgjJf3CE0eHUJv/hlNDx8Z7u2AP4vMO/+1d+iB/GshRKCdpSUJzlJujWGZcE4asqWiu331Kunw0WKjKc03qDqtIio1mnUKoZOoRqQh2KuubzRm7izbKdy4bjJZtIjsMYJoy5SAYJwTUtXCtcNOhujD7YxVO8GnMq6OnwGhH0sLSaTluqS7otRIJa0v7skj1KRVbGuwPbr8izgGII+Yy9/e6g6FvOL8+oTaOr8SOHARhuT1DeYfliQxIK/MjDMkung0VOHzLeCsWCdw/vp4PGPd87P9yMTRraddrHU2SuKD5eAoVW46mT3nwQUQk8Y5nkdGIskm2b0ZHyuKupc2ELOkfGJUQZdeFQoUoK8tE6xTtdCteHV8irwXhWWZ4bfq+0ZXC8E9wuwJIbu9OZrW80X1CrDJIy6oCxoIthbXB+cUscG3Xr+Kj0+5VlC4gr4/o9bn56pVfhxIm4bjy8NeRBqCEceoU3Trw2ai8cfqR7jAtuFfeOe2Gw4PUgtKWAi2BsbPtG8VfUY6PKlQjhlx/OyW3jT7bg/Wm//vKvXVC/0IeAQo+Gm9BoyDIoqoxQ1mgUCiKDkBWTkXZzy02UolzfglWF5QEboHT8fGV8cOU6ruga0JSQxtJWPFaQm3SlBgRHcrikoubUWhBdc1/dwJa3RA+63bOK0uLETWu0sbGMihZDihMhHKbsj42pkZO8Mt04mNDkyOGVFIYlUwspCd51ZQZp8bHSL4EsB8N6Wts98IeK3nU0chjVoxMeHKVyRIGRsQ7vhf/9t/pjKdAUTfjq8N//kMt852/8/Gfcc8KLcGjhkOSzZPhh7pQEuiR4VpfC5Zr7KolIZtaMOThBlUeXVTrumefOmOezwBlpqABKNnFOd1X3YDdh7yk6FZnsjsdh3xwmFZWcF9Xc8Ao8RTvMM2IRFaJl5DDjQ/mNaklxjJJDVhXwliKcNqVVZS2VpeWwVBdBaXz2oF+BI98f73o8nPzuD6+8tWeolxxeT+zHMXI/YX4gYkjpKBUf5zyImROmdLlPDpo7rQRLZExnHM717c5+HdizwagFYucI55CNoHBIZcSC0ogIWjuzlBSK7o8HRJ1l9HShWkVr0KWny9ODEYXd59DItmSMxsHKNdmCBxwyeGeKx4apE6NzMsOODqGM44JYUFlzUKk75xC+QaP2yqc+uB6VFoXz0XjpK0tUmsDJha9pcBOFhYHReFOc3RvXfeXilftoVKl84MIHNz4B9MGvfLf8ZB+AH9MVdMaRaZxQIaJODMdMRASoVMxHIhgshS7LOS9RMgpoB5OJq4gqowe0ZMIShe1t5e5l0A9Hlywl02Okc/25MkqWMQ21jEUXQVuuL1qUqvoEqxZR2swIRfGMNGomaFQh9kJZJyanAnVycbegwizBcCJygGMDak0WJJriQqnQWnBx580eUDqtKcrgQTrvTmMaQJS/9pt1Onr+sM/5/b/+k5/7IceY5V8+ky2WjkcCRnimYRSKOJWgpi0qTTI+G/zm3rzP8jklk16bZ2SeJyNNJq5EoZVEEI1ZzhY+nYOSLC8ihf2wHKzUH9EUIjJWmJiZmMwspUzN5IgUniSSC54iLhRP8XxBEx8TuQHqw590gRHGsWdkUUhO827BZpXbRakC616yPdqniObBnUp+j12RZowGL0Q5l4qK8B/84mccT8Lb73+6/tQ5s/7t/+0V9z1wFXZJ18pC3riqQitZxXujwVKD2xKchYwiujDfGRRLbsMYgg9Jq11znFQeDeeI4P6ArU9RSJy+C8/uQHAkChIJbovwVDohWwI844rpfnHEnKKz8WDkn0EUIy2eLo4HdM9GJn30t0Q+WFUAL9P6p/MB1tmal5A2MWGM/PoiCdQeLpiVBHRPCHx3mYeBbDwMlFAjPGi1sJSCW2FR5XmD21Un+yEozVjq+7vgPW2wo/Nv/bXv8Y8+ySgDESwqlAKntXK+CdgHPAhLCOup8PU/V7BxZXtr+CXvr6hg4ZgbQaHWFJIkZgtEy2hrLp65WXaPac1UohbKmhOdowiHppX8wCcTKziK0gt0H4xweknrs5PQ2l2UY0iysjxYxJHh6fqZLSs9HN8W9LNKPYN8tOLPz4wIfF0YHxeO33HuPhy0lxU3ZQs4etAtOKynzdlziu3zJYlIThcqqe5XYEZaW5ktiJJ1sQv5efzd377/iT4D/2KvAIf//ttvGKeNojFhoR2xK7W+pRXjKJaOu0h+Xhs7imORZRVVlJXI1pJr0KNiOmMWclBrgCuyOj2Uaj3rp0OpW1B6sgYrEBtsEth1py8n7Fyx2KnSiQeDdweXa6OPnaVWZLlyyAOlK2GR7zodiEArLxn+lrIGdlvwS0F/7xXxf2+8vXvg9l9+jq8rjMJxCL0pdZSccK4Q54G8fODhNRyvr4zXg3FvxHUgdiDuFJt5nxHYW6PuwkKwSKMujYWVmza4dWfnjl/8watkRvAnW/Deh+s/+/sH4jVjvOeOWqO8rSl+RqH7hpkg2hkG7hvDlVyZGqIH1gdeYZyEkFs0Okfd6X2hvnjBeKXZlknyO4bBsJ0+9mlvUVTvkrkgDm2h987BO+qLM2t/hnqjNmHdVsqxcJZ8tpVs1VnLgso5GwwtxbTqhbpIbgJjtsdVIcZC0ZUo42ma3SSbXT0K1rOcYhPDT4ZEpfl0i14VP18zdolRxoKZYHrCevLG5AR+CP9kueHv/95G9/hidzTdQl/5SyBi8LN/+/t859WZ89oeT0pIrcRyJmrBS26Qa4XTrXN7GxwHUDJKY5Iw3ENgG9AjGTePzdMplGahypiQ+c1g3y0PnhMKrzrNFvIogMXTfXLL6XSxHNgZySKaGhmJ505+iD+e3jxnDVrSMUHJohYX8OJIFWrNH6i1MGRhaONQJUql1mfUTfmVf7bxS//gU74k2+svzRXh/Kd/8xNMXiSawBT3ym7p9EVkDoIL7h0t9znMLUrVM2ssMCpKZ/QT/d7xtxt7OPqicqwre+RQtvuEL4/53vMD8QsYtNuV4+pwCEPOdBP8mK2JDHQ4chgaSi3GwZXDB5vlIKlIhWOjonzig9c++Nx3PvfB7ht9OOFGRSk1uVzFNl4W5QNZOfvGLY1zWeihrBTuTDkTbDq4WLC0yrkUbiu8lIWXCGYVqvAG4Q2DBxP83NkPwcvgEsbD6IwWvHDna7fKWD/kf/ju9pO+9T+WK4ChKXiLC70fibeYL4WMduXeONypVagtz1G9e+7rxalLOgclLV4sLVE3402ysZYX6cArUrh9IdSeiSHEEAw5PNcaLwyDpLR5Dog1o3/nryUnMDwYGomME3LAviZAPnaluxOzXTUi2I8ZBHpU7ZWEbOtAG9R18o2CPE9Odli5F+Sk7PdC+2blu/ed7UPhe+pcGjAGVxp/5zv3T9Gzr/r1X/z8x9yG8IFA9Yyu5xBNkxMZ85lD6S5cuub563FiosL1AKfMM33iaXaDmE2/2USag4/HW9pj8kdHCmDDkyluno5U92wvDZ33l2Q6S0SaeCJTGzLPki3SAFFduFFlkRTJajjVobilCzmch3A2dwLjMKfinHA6kfztuVa6jDxrFOHhrXNenHIRyuIcZOnKglADHrpwI1nsctbKWZXXGrzD+S9/5Z5Xx2xu/wPErD/J9aVYbYPgP/ybH/M3fmN7GslFTUVzKbmoyIzTdcsdj0c6aDKKo9kW4D6n9GldP2ZM0NGcwKUMipYEnw2E7SqTezVbeA4jY2Ug01NnnlDTR8eVTlHB0VwI/QtnFICoMSwjg8OEPQqHwWXWYB5YNhqixO7JtBLnmLY/m/HDbqmyaiQkbt8CemZt1YEhlJoQc8SpJT+TWpxzUZoUiuSDtR2OLh00a7Zh1sJK1on+Vz//w5/Erf+xTe+lFAAAIABJREFUXMLMrM/rv/2F7/NXf/WCxMhacElLcEynXFsP9GrYgyBaOX3txLMPgu3tTn/nyRCSltGdkr9C1QtEUKo+TZljfm+RVNWLFMKdsja06nwGJtespajp2hiRi9hhWVYQkU2eNm2YhKKH4b3nz5ibf/P5zKGM0ehvV2DA19PhaH3gli82pWJHp36U0L4IBxmAEzat0fLYOJS/ozkHiMxoD8XHzBwN8DGRkAbNQMwo6hnHDPj1711/PDf7J3TJhERKuSU8HXghDZdkaAwxqoPKIIoTvjBWpR+nbA1pzvCO4dAqoW2KoJK5dT8jI1lbNnLSYrFCkYwn0nKBdWffncMKhVOCFy9GlEKXSnl+h784E8+FWjv6NrDPG+PTgn+64NeFcb/ibxU+v+X6yUp/9Tn9kzPvvgd8t7B/Pxj7wl476/oB766F8XDKBc86dlkZBtv+lu2YrSy6st4o8bLRbmq6ftYFqwu73LAV6AyGFeI0sGXn+mZJUPguOW3SglH5n3/3c0qPear9al7/1+cdGQt1X7FT51JHxu9d0bqALBSr4CtOBW+4GyN2GGfsIsSpJACZkfnlVjBL1oPuQWwQXrJ9Vbf8uiizsnrgsU+Bu7HvFxJQdMPwzn69EtExSU96FWVcdVZHL+wMIgThwiK3CHUCVSUFW19Zy5KA7bKga2C+gyUHUFxxVaRlmQBScDXq4/tcQRqw3TBunFqUpoLGihVnxIr5hVIaMQr97cLF4K/86g9Y7FHgmLZ3vhrT6D/y+pEP4Vd//WP+3j/usEApC5QGRRkhqJZ0NEhC1Snpetg30EQ9Pg1+SoEmc19V/h/23j5Gtyw77/qttfY+532r6t7bXzPdnhlnPP4SsS3AGBCxLcVgMIKASJCFBIqARCCNFLAUGbBILEgcgYBYOFZkK0AEQgmCmMgKiGBDsLGJxyaxneAA9sR2bM8w0z3dfW/fr6r3fc/Ze6/FH+tUdc9HT/fYjj2+7f1X607Nrbrn3XX22ms9z+/Jor5vqqsIGFtceVggJS8EtWaRLLIN40g+iI9tOu15yQvJhphHogF6jAyfKCT3ZuPOJCQ3uaa2KSgixbKUWZhMsCEMFcLmTOOUmvYiidyzotS68iuPnI9/7Dq98LcvhZ+6hjt/6edh0s66OM6RLbSNiHwXxRqIW6bymjJJBx6z+mAVx2MHh87YNx6fFTwqKisaI9NbY8nPXpQ1jpxisEayz8Z1HV8nFg6s/QoJJ6zhuhAKrh03RWTNYIGoLO6ZrGuO0jnjLBMu1fBYCYxTDJCRw6ooQGcdwuVYEVMkCsWzDpgjeNSDKz+xxInOjpnKPIRYZ8a04KNjVuhuXIoRPpK/g3NwOA+hDDBdOJfgzNJ+dhzZGKzD+dYP3X9SCQ+fvsIIL4ldEaXUCpvVUzRRK310xFIN757D42sGo2piWS7vCxkzEYgaD18BejDfuR5wGPunjGIDJehL3qkyJW67wobgy0iV/hBmMmXQLCg1ec/iCqGUmoqdMkoOhgJMlXZyzDIYQw2GbJwsD5iv4eABJQfQuilT+5KWajYFjjenHwaXLwX6nHAaJX/evVPnwErgZnz7//Zk1+i/mvVdP3kfJ1XgbeSgpfuGOZIMmfNItRykgmqEo5KiFFcIz2F3BtEla3g22ZIOBRt55+8R9KFozwaWbJAus7QrJmg+ewNKNotctjpl+/4Zercpsxw0lBGbdZXY+gq2udsyqXUduvFGocrYqDfBjLMzCBsgffuzzQnnuQ9Pq3KnOpwMOYdDZC8lz2nlcRPUBl2USaAbrARVlP/6Z1f+9mvHmwbWr9Vh8XnRzLr+IP7Hn3/Iv/MDL2EalF6oSBa8lmkBq0O40gdb8wGyR5pSuABiZFMpe1rZ+GrdWXumLhVRxFMJEWtgk7OvgqXcimFwWIIxUgafdi5nuDCKouVanr7J9ZIkj0omFwYb92trSAmOemrpi+sm3zNGzw2ophQE9Q0Y35TojrhQbOuCRsrkazWmImhIJpaRvxhFlZ0ZRdKXbWy/GDkn4NDSe12kIpvUsZgwm/DL91b++F/5BMd3ACTy9eX8xZ99jW/5/k+wypQg5UgGmWvP5tceSh3wCOSoTPs9d9474VedftzAkNZTWuq553Qy1AyRjIUvNXlRw7IQXsMZs7GWlcWEVTtaAylZEEdVPNLnLpvCKdv3iit0SYKaC5tiwVBJFV4PTeYEE/SJcRzU2wPOCzmFHht3Ky2Mj+4GcSasJehuHHtw3Bq6aZmXzZOxSbRVt9joTJMzBI2U/IsIEkL0bIpJCJPWhPGqsyuDD3/iyZwOXr+AIwIJ54c+ulKkJUuPLerWssFpVdBacS1EWZm1c3vXkMsLrN/C1KhutNHpQ5nEmU1Qb4iv9DHwUQgNWqTdAZy5wPBGSkYHVqFKARpFnToNNFYYzjgesKtL2nFPGQL7gNsL+i5neroj9RGyewi7FTl7RD0/oueVs4uENLcWlFtHyi44xol2OlCHIz6QVbDV6G3kJUAapXWUHdKEUgZxb6WPBRPDulF9ZZLHiA0KQdTIZoUUdnOmxlIc1YEX5yNxzt2D5SRre/bvJJvh9fq+D59YbUXp+LGwO584QV7IwmhyoEdDvKNuKSt3kl/1GtRbSjAYrWMYqzjVCtEH6hPx9IHllWR1iFZ0WDItS9B1BRqjV8Y44RzRmPBw1DLxUGgUn1i74NE5cgV7YW2Z/NaaJYtmA7vvdKaqUlzxdaSCUNjYE0fawVHLd03ZJqPNlUNLvqZrDmpEYC6bIisC7yfKFqDgfdCv02HXldErOLgPYrfyN1+5w1Fa2tO2IjXP8N9en2m9/Ool/+v/caCbIWbZnCqVlYKXSi0FibSy2pTDw9WTTdMlBzDZdCAtEN1pvlk6hbRwqGwXhs2aGOQXX9fvmn3YQFDN923c+GQCqdlAG5u1MW3yedZPmpfFW+f5zhUTbAMVhmxCUYWuTi+BaP4bpCi1pkfEdMrzVwYfuRv8rf/74W/KZ/FbZgX88Ifvcm95N6EzoTtGKIOOhqNiFHN0CCM63Q8QhaUVzHbIovCg4WcrUVLp2X3Bh2FW8AHKHnWhDMfVWCNoMnIwfGo0Gktc0dwYsaPHoMWAmGh9cBozJxy8ZYM9HPMVs8YZRpULhq88jBNrLDiVxsJwx30FBsPXHI47zDKz60ofnWMMjigHTjRxmjSuIrjHA8ThrEyU9YoocBnO3WXltX7gkXcuq3PqQR3C3oQyBueTcee2catPTCgllAjj5MoPvPQUj4F3TlO1cZQ08Iltd0SEMRqmW20tnixYxjaUhd4ALxxPzgBOh8C7oyjenfkpSWWm5nC31IGeBO+wXAXLyZFiRA/6Am0F70FVuc6CyOQ4z55/W1NscbwK2mNF1wkrsD6OLZgM2DAlVpKlZQre8j6rJZXSYdCbsZ4sG5YO3jdb09Zca01YHp3nXp9XejkxFucUDZ2COuUwqMvM4W3skyc9xfBT1/932Xl4leICJ+9G1w4Zj2CMdDQJgsQ2eAnhNDzVyNdJiNt16tQzAO5+i+TUKjTZ0gZdGD04jBQOSAlU0844Iu+SmWqZn8HSYI78OZQU++hWC3skQ3zQse2MjQhaKCId8exryMbj6pH1evN0HU0xmAOcQa3BfnIuSnB2BvupI2k7YpxgPheGdZaejTtTIbbB6H6fVv1bCsMSO4IK3/cLC3/1E5c3vZ8b/vKvYX1+NLPgpmJcPfjWv/wydZs00w1cWDo3tkBhYGLpOxaj0zHLZpJqTmDS3qXZAGObEm4pABLZdY+w/LobibpgW0F+cmcdyjokEwNi0LvTWsoL3TMpZKurbjgMbRWuDoaaUm3TzUvLlMFt04oDGvSevKRTd5YtBVHMYYu+JIxI8gljbEyiCHTAbicUS0aTRvq+vadnWsQSyroGk4DNApr2OCwT6HQSHh+dP/PXXk1OyTtsBXC3wR/4bz/BcOVqDK7WE10riwgn7Zy0E3snpkawYqNw6wsmdtVYHgz6VcFKFtBWla5pyZkmpdTkyqw4OsN8RoK1p8D2hXpH2T1rTLcNO8sAgHkn7PaDokFqkiFwsPRgixgrG6dtS1HyGzkgdCkcL6GtB8ZFMExp3mne80U4lOjQLs8o2tCzQsTGoOEaKpnebZdk1OFp903lbE4Hq+UBGNc/43bjC3fUOnUeSOmUyZkmePX45AJI3/gCduAXjp3X9A6IY06C+U/gV856NNZTT/Z1BL0WLgXaxX3i1DJBKQKrBdMtqW/ZFJoUmII5nEkE0woYvTsLUKwgMkHYxi5zlMB80JaGal72vFVWqUScUjEhBfEKbaYPwatR6jk6TVDPsXPB28Tx1UEsDXv2RHn2gtgpejGBGivGsV/hHBnRcS4ZvVP0POHMYzDWoLvghz2lKeLZyOhirDGIvoPYEx1EC62nd7zIVlhKofiO7/9IAoTfKEl+p9kMr9d//GMrwyfkEnpfWcfEAHosNCk0AzNH7YjLwugz8nJFb4ExcBmolrTk9M5hWbNpPq6oT++RiwavpT2bkFRfhoPfwoehmhV1RCNYMMsGWYTRJ2iPGirQVBgGTY64wcE73TtrH8RykWEp4wiuuA7M9hzLxBLgnrZp2yeHsLdkTIyRUdjVsqneRROEKoXhho9BpWainWhyd0Too1EsKLMlb9MCLwk6/cFfvmSbH93wJ/Tzp0L6vFy9OT/4I3cJERBDphmtOdAJUfo1T6sqtg+uFqdvqqkuQYuEs0fyixmkCkE313HzgCI3rA/ghi/SScjtNRtLTG6K7FI35RZbvoqBVhAJwmCIc/JshLl6Mr5UWAEpipkgJcG1jhCq2KZ6RxSxgs6SITI2Ebbjb/zM/d+W8L2N5T743p98QLHGqZ8SWRC3OPaF7sIylBaO9RlruccGKzwM7AhxR5MBGzNmliqEXvEYOXAbnfRKJAYCCTQqAZyWEy6WTU/vrOOKQPFjh8gGRuglejLGMtE17WAzQok5Adt6P4MtAB1QWXHvBMIyplTtqdLoWKnsZLCEs6pyjMZVOIcO3XqiSUj1xWFLZ99LBbLpdinOVYErBiudKx2cSIapWjpTTrpyeASDQYizDOdV3/Fnf/EBxd856uVAuHusTJZuiFJsU4Aamai9CQnIu+HYkslNlB4Jzg6BO88Ij19N+Pbje6TSdwtX8qHEUTZVeGFMwvwUtKtOa5bYEvL9NUIyhZVAXFg7qbzZGlzzU1AnWC4HcVXZ3Ul3R9kS0GNrSJSa6tN9DXYlUFGq5OBmbYO2dko1CKHukyO3Pi48/tjM448YPlbaUnjqfQVRRUvD6sCm5CoNF/7YX7tKJ9KbPdt38ETnj/7Ey5zcbpIJia35BIgnt3hs4Sa2DTzY9lbe4zaH1hAmC4YXdFNiLR1aWFoH+6b0IocuY0ui05EJnJB4IzyZxmqZ7BvxepMxlVqR7FTZap9r1RiS7K8QZFN7BSBlYAR9CLhzbk6pzjN3Ou+5HbzvIviSZ5WveH7lK78geOGWcrYT/GhMBZZDct3MnGqKqlOaM03BfgrmzeEzI0wKFxL84EcfEu5bnRVvOpD+XJqn8vlwETDRraUJSQrl2qPFf/ANz/LeO0bVwhid1TNKtSEcR+KvbXsQI4AhqApTHVkYHQOfc5LvIx+4uLArikjw4Cic7TJh8PpRBBnlWuct+hJBerB6xlPupi2a0tPuOFyYDIQgIlkzPeD1ODtndUVxiggqsV3aMnWwk9PpkCy8um+JPKKbVPDGHg1sNkMRmsgGBs9Un+ZbU03yRa2qKWvdNhPki/THfuWS//Kn7t8Uh3BtxwwinrzXlslnRxqKCLPCn/rm9/PUFCgjG4W6WVM0EyUm2YplAT8UdFoYrwVxdkG5k5nIg3zRYYPdrlBK8K6nCk8/O3Nxa4fUQtStI95W4jQ4HYSHjzqPHsNx6ZxacByCr9nA9eYU1bzA+XU61Os22OJKHDsxCZxtXvyN6RY60Y5Gf6URMbDaqbfA1XKydBh0H9RbadlJPXZKWr1vwrDQlObHdZhAAiq3XhciAyIn11oTqm8SMMPv/9Mvcopx81J60vaXiHzS3jIBYeZf+uI979YDTQYqOxY5oa7UCHrNxFE5Dsq8Z8RArDO3c4YsiHXojmgyMnpfMdvjY2VXhNWAlirSGgmUdyv4dnBagOsZ+ylo7QQ+GMcJL4quDYuKzCveCnpRsYu2hWEE7kbdZbHf3WgvTWi5x+0vuqDNwa7eYXnwEDtNvHa8ZH9xls3ziwrd8H6krwpjIUpBBqzHHdEvUW2szfHLZ6i3X8vEQhGykz8YQ1nwbMwdwcuJaDDvZiSOfO8vKUvrr9u55dNifJ+ovQWfvr8+dX37V+/Y37qg8QhqchBENjZQ7ZlmVTZFyWuCPOvgM5PA0AWJQdWJrjAdBLsw6IVpPyBm/PiI5cGO+kJyIwYdolOsMtaBap6Q4SW5HQZdFFlA1iBo6HlhhFPdWBHaaNRaCT8xhSDsMoln6vRFCctJc/RUGZ584x6FYNq2zz+HQLGpoDWEwDN9sQpagi4Gq+DHQGrgteNjYtS0lYtPjFPBtfNX/s6eD33sAaL57os3qPdVboDhT9T+equ99Tn/fRhf93UvcMcWPFYkOqNrhtcMp48TkxuHZXA+pf1hxOvPWPrmn/A31DoiNwo5YFMiO3i+a6/j0vt2Z5+SJIFrTsvZFHZJCcliv5jcMNEy+Te5pPMeUGGvqUJsnpb9IU4pNUG6VkADNTL0R4W/+bMrH/3or81a+KTtLfjs+0uAb/mG9/DFT11tAOOAuGInZ1gERXeso4HOSL9iP8B2wmIwWcUHCI0RuWHkJMjemDWwpskwmiOBI1FxcXaj0ltn2hslZvroRKx4cc5lwuh0SRV7e1nYPStUsp63ENowdM4G/uXxQKvOeZxxbhNrNC65wsn7h8aAECYK0xC6KFd+ZMeE6J7L8Ri3REOcSVrAi6/0y4ruDWfF3Fhj5ZJMYJ28sDBoYpzCOQ+ljYFFsHt4xjBhqQtFBv/yhxT310N3nrT99WY1/Vc/U/ngP6CYj03coIzRU2HsbDatwGNQDWpRRhP2F5sa0wfVjAf3gnaCp9+XAonogVa4OM8wihZpSxye2I3oShyd2YVWjbqH8WBQz4R1GYiVLQxMGM3ZPe0UNQ4vGbYf7O44h1dzIDxdbDDAIYyzfnP3W/KimGEtNVU+HrAeg7ojm7at5KBZjB6Ny/sX9AedZz8wWIcw7gZ+oTy8u3L7vfkODuAPfr+RN9E3X/FJN8Y3/PkTtrfg099dH3iq8q9/zTOsa1pFQ5N5vTZhqoGL0E8ZChKMGxQRcHNvEs1naKJ4tpbo4dnbaCkeULKmqSLJEUywyw2SJjYVlpLJ8dmejZta2COY1JARqAmyCRlC8pxD8uxU2c6/HuhwdFJu2cqtqpxZ8MJt4en3dCRK+nru7xh3GhHG0OBXfnni7rFxXI0ygtinSuwwSOvzZFv/w7M30RM18Z/97SM//tIjYmzn8htq+Jv/3pxH1+vt7q/y1l/yG7Wuu1nX7cL8k2//kXv8i19xh2/68pJSdk25nznsTejbRlkDdAjztFkPPShqCSBugtYgNLA8Njm2PGzSry+IeE5oIhsBHjBpeleHZ7TmXjP9rQ02u2C+6KqkbJRNQn/dqBJy6jc8VVeD3EShWUXZJmdnK9YJS/hayE2jQLM7BR6YGo1BIyeHJo7Y9jN7dj2D7LTXknJBRRPrZMku+uD/8HFO7ZMOud+wT/jzdUUEpwEf/Au/wnf/3g/wwu18+j4GA0UsNuWTYKrUUpieIVlRz1T64xOnV435mQr7DHPVXeX2s8YXvvcOZ7fejZwX2BfQHcxrvkiGIw12vXN2uuILPvEqr92r3Ht44n5zjsNyKjkA2V6Nmi8sxNK+elDEV/y2EVFQH3ScWCvLQ+DoIJdcvFdZBGQ12iYldAWrynQKlsts9g4G+pwAg3AjIjlfY0Cx65QLwJ0hG1uukDwTBI0VK3DFLf7V7/k7N+qtd8ISEUYEJgv//UeFf+2LBXGnj5Uyp+XGS0NxvAvTmWAcqZdGOwuiXEEb9IV83ruOWj7XkANWZ9boMPIiRe/0LXxg8kh+YCitApw49ZYqghLU85ZS+LNK1GQdlRH4aeXwslGsYpb7tzfHtLK+eKKwcv7+iVM9cnH2PFcPyXQ5JmpVfAzEBmMs6FUFlBhXRO3IoeAdTB7SpWYTpMys8pj+uKEXQEkztLfkWxQVpDsVA5nw3SA4cqUXLO1Rvjs3a2t8ymH4Tlzf+bdOfNvv2vhROKFJsZYSdC+EOr1NyKvOxfO6paEeibBMIcQhZoiF9ZCx5XXOorYILPvb2HpFf/lp9OnHSKmITCzembTix2DsV0o0LIwehgaZzLQL9EEhzlIN7Sijjy1m3DMRDKXTUNtDD7yuzD0tEq6DRbI51zxABkNgjCy7w2omFYrQaamEnCaGrnifCe10hXoe+GGXakh1ZEkWTYtGp/FovMCPv/giSHImgE/yFr5h0vbb67OsYPBjH/o4tSrf+PW3E7iuFe8raGDljKU3JoJjg3mnSB/0hDIiRRCPjV2zXSK35Ew0KTaEM1XLi7oIPoK+cUh6T0ZX6OuDyR7594huTFPbeCe6Fc8SMGDab3Zwg6YKdLQWSgi2+Q69pP3fzIEZF+F/+eG7LOtGpOedc9b9WlcA/8VP3OU7vukWSEOHc1buAEnCbnLEvcOpIzjrrR0hC9ULEWv+HZLNnN1ugiWj5SVgr2nrbyNg47epNNYrp5wZrXdO0nDSElNdcRlUzlIBxkicxyic5hPWJkKcgzklBO0Nj8JcC9IXHrGy+LLZoid6l0zF1FRWhDjLdpkzhdYPhGVI1VSDpXemCCZ2HH3hFEpRRzAmMeYBp62pO8jQiyJQNFhNaD3Y2eDq4PjT8NH2DOH3fhM/3d+89eH7ne4V74FQaO5Ms4BI1lIjecWmefapFDotcRCa97renVu3jAcnMOmbQleJ4RsrGcLzWiYALdKiLAIXGcTkGNPzngPhomjJsLBCsBPjdM/oO2d6zhn3Kn67U3cw3S7JWArjdL8Tpkxn28XfgrbCPAurB6JOVaMvwWgw1wT9eRnJybo8o91rPP/ljTWU5VVl/7xzOgxiWCqiBX78xdsED97y2b6TT8BfftBYl7TvrS2h+xLb3doDFd/eR8FUUkV+bYmXUOJaxAIsnoMfJFOl2WoY3TAyStBdU1hAinXMtoZYyPa/B9N291fJQR7k39d9UFXZEXTdlFkuqDojyHATEfYRuKaK8FlrzHvjS27Bnec87flscunY0qIXwxFaKNYGQ4U6hD7nUOj+osxl4LVQPNANjB/DOa/Kv/3jD/no1WnjI7557e6/ynr+80eZta2tj/VpSwS+9R95ir/vPWcptYu0+x0jkpM1lDAoETk5C8voTAFGfi3qVEkILSjL1g2dSipgQkamPkVC43dTqq3GcNYwXJyZVDv1kQBTDUElG15Edv6H51RP8kzNUlggPCcEJSynBDaI0Dy0tTAcMiC10CXQgIs5Cz/dns0YmwJm2+gIuKcap2ww8skk7WeSBz6i/NLDA//hD99708SAbCO+M5VZb1yB8Z6d8af/hS9kbwtiJSGzSRbOZJqSL6x5NkoftKMxVud4GfCUsXvKqLeDr/jSD3BxsYezSpxVZAdRJzjLhB7xDqcVvxpI68jDA1xecnx8n4+92nn5fud06LTWESZMFdnSKvwk6Ah03xlasVHpl3B4tMAalKlTLwLuCMFMNE8ZPpmS2WOkUnGD1bs7vQ/owuJQp/x9ii3CdfjYDvTtd1RyTqMqhAWYYwLTNPi2P/8qH37UsXj9AHySlVmqehMOcb1M4Mufmvlnn4GT5hQkNstyYTA0P38rE8gJO1XaPJhKyeKpOacrx872hJ2Sw4YxRaNLST99bA0dC9Qr4Wte6iQQ3aEcEKkoleaNSQxiZZ0qkw86FVHF+xE1ZUihHhonP2dcDeZ1wb6sok/tkRrE4Rz6AX+4YyZY4govlrac/cp4BF0GMaaEgw+AgUjBIoh+okVB3FgfQL2dEfc1lNBTXlpjIuTEJAWjYix0PeM//0W4bJmI+WZn1pO2t+DtqWf+8D90mzuT58BCM81I/TryrcInhPq+A1MxZChFhVI3y735ZtuqzJeVervjS8cuChGKjsIijxmPgunVdzNeuE+ZA40dyMh3YyiO5+97aUgoywimYthrK+NsQmvNvRfBKiszE+GDwDc1cjDrhMeExgJrp+8HPvYZzhJLcgnNaD5SdeVpMzRXwjuhE0sPjE6TtCH6KFtB0RkHReZ8d6lDq6B95j/6349cbe+qbUaVyle5ZjTletL216+3Muv1lXXI137dc9yaewYGeMDo+TzHmi6dMLQ02hqoCyKD2Cw55Q0qgIhsbhVNdmhWOxsrRNKymKrStDhEkEwugcomjpe8YLRN0SxbmlTrmhNzCaaazEsXRbe6UMRYhY2XowyZKAZhxl/6n1/m14tH9KTtLXg7+0v4ihdu88GvXbBe2GtH2BGy4r0wWsPEmfaKqGMoEwXi2rkwMiAHmEelT429NPZtQnRBOMM1cE0bsj52/Fan9QQzz1pgdKpWLIxddJoaswwOrxp6oYz9yn4ES1mImDLAwIPTaXA+T8xhXEWj4cjodDyDlXSiD+XCBx4TawywFXOhhXMS35qzQonChRr32koMOEZDJkG6MQPFZx6745IWxSEJYJ578nssoJ6EUxcaxh/6yZX2KU/+Sdtfb1bTmyrf84/DWamMpSEo7QRlNqqu5GAwm57F8iVhxam7axFF1tcSxisvOu9+fw7O3B0V2O1TjdU6jAJ7z/RnkcC6wS6T4SBVokNygBSbGmaMTHntJ6jnWRPKA2H3HESDXiKHMpLq0eWeMD2dsHHf0DRIEEXp0Rk9m/gqxukVw+4MxnCu7k+sl8azX3ZkOhcef0wpO6fPwTjF0gVUAAAgAElEQVQqr32i8vT7O3GEf+UHxtvqVL2Z5etJ21vw5u+u7/jG5+k9aF04r0prwW4eDFEY8OAY3N4HLpYNJgnWphSLG6vmiKCiN0KWNtjC2GRzUA10CG6KRzKcdWskXAfeBUEl34MheZb1tjWqyEHkbNsAJ/J7V2FzkiXz+Wnt1Eil2UUJvurLVua9JboIkDWlz70H47IwdnByeHxvZtxa+MhHK3dLZwDLqkyaYSlnFejZFzHJ8J0/9Fcvee10IlxuOMufsZH1GfbYb0FlFqnGepNfqgj4zp94wBecX/Kn/unnktLfoDBYjJsXSJZAypBBDElPqcI8kkO1bBVr1fQLr0OYDdZwXINKRl5OklNBj5zg4cIsCtsB6r7J+iQvV1WE4QplZLqNZiQrIwtiU2F4QlIHCXowNG1po1A0khG2SeNtazCcumwwt82GaOmvTWdmFmImjkcWkKIJEZxEWCWLvz/4/R9NdQ+fTYn1m9/U/HxYwuCl0+Cb//wv8ffe3vEnf9/zFDHCsigiIn34lulHMU2UyfFFqJOgVw1ZZy6efYq5bBm7uwplSw47vyDKs4g9i8sVUu6h9TViOeCHPXJe2Zcd7/O7vHa4Yh3K6XEyFeoA9ZwwuUEbhbgHfgIbB8o0ePoFiGIsQ7fLqKDhWdz7tVQ4IHTbbxukXJVpUnwKojt9cfojxUWRXcaSx5YEGhukRGQgIkw2mDTT8r75ez/Gdar9O2VHfWojSySjdX/+QWe8q0Cf6HKi2EQjDxon2M0Gp4XVKpwbupzReIioEhbMt4TT4ZDTunBiCGsYUAk/Ii5MjFTgxEq1wmBLqmwntOxTem456aPuiDUoQLNMhOse1GlGGhSbiKfO8BcPqHTsS/eUpwp9XdkfnqeXu3Q5Iw6Pub87sjtW+jThcWSKc9SNsEcM1ryAosDKdHPsVqpWVj9SyjnL0qhTEOT0s9rMiE6MPWGdaAOZ4QdfDA7j8Bv+uf5WWd/1k4/4Y7/7AitHeiup0BqFcblDamN+74kIWNZBteQtENkQHW5bQ1uI2pAKwh73BaLguiL9jPmW0+dPEK/dYjznuK1YL9CE3gelpqrreFeQOiij0PuRtRYudHB61FgPE/O5Mp8bBQNtdBxrcDp1ugfnFys8Mvq8cjpM7CgcpysKOZTpBAyFGGCajEgaIkrbUsUa4JEg+aiBjBlXQW6tjMeK7YQYRh3Gn/t/g2VrCiuZpHfNyfo8mPP9Fl7Oj3/oFRT42t/1Ard2C6Illb1aQTvrcaVEpZSWdVbUfBeQtVNa3JOJpgWqpgolQcqRsG/Jy4GYgjitg5XNgigglrBkl5xdF0mVRqnGssB0VnE5ITHRI5jKhMpITilKkWA2wyn0MRh24pX7lb/+k68mVuK3VXu/6iUEP/vqY37ko3f4J16oHO2E+kqIsXvsyK2CVGHYYCJtK12UwWBis3oNZafQamfGaGOHlQMWhXMpDG+ICQc/plXY8/MtQzFZENnT/URIoYsx/MTjEkjsWX2gw+gqMAzBEJzhneIDWmfVvDeEOIZQfc/JG4Og6kCojFg5LCd2ZWKVbEAJwhqDKSxh7u7o0VjOFlQq7p02OaM5RYLzalytA7ziktYhy7+dpsFxKLY3/q0fXd/CLPZkr4Zuis4c5osKdTdoK9RacgjrHaslQ2qAqpkYFiOFAVqTy0hAbwlJFxSt+X5J3UJe3HUonc48Cz0GZUumF5HEgliyU6+B7ENTaVqmVN9PEowh2RArQXNuRBHqeU65dFxTUSbT2GxrfYNmQ60QQzl/T+PYAz/NHB4Iz3/lgk6VcQzMO3EuqBeYO8spGx3f/TMzxFvXVp/ZYPjOW//eD73Mn/zG53jUjWXJplAPocVgRZl2wnGkbdpMIZKj3Dc224jXMTERqUKaTG6aOLLdx1ZsC8QQRlzDjiC2BMJqwRBFt2QUVSHUcUmN8CpOMUNHhouVSGbuiOtztbHfHDovnAXvfQ5u355SwVWS0YYIo6ec2Qe0k3F4xZjvnHj55R1X0wnBiCU4m5yuhdJhBo6WCjJE+PkHwoPT9XD7RtTwac/21xou8PmhzNKtyx5s5cHbacQJO1P+7D/3riTwp+qckeqi5EeJvi4d9Wwi+ch0REHQkXyq3ZwPt4dQJZgMVoelCWfTxuLCCTcQ30Le0taT9P8gyBeYejaYVDLdQDVZVCZ5+LqnBj6bAooQmCak8NTSyqUSeMY8ZVLcBrIslv82dWGYIT4oxVAJiqQUtpM+8e/+0Gv81EtX+GcYHF57n0Xkk575O1WZFZ+liQrZmPn2f/Q5vvaLztEKZRKmSRAxIlMIWMNT7r3bcS6Vpy9W7sSXcvtLniN+h2EXwO2aPBgtSJxBfwqxAX6Eccm49wr2aIHTSqzB5Uv3+ZWX7vLgMnjwuHM4FOqjBpGe+90dI3YgMeFD0b7mpHI4C456AgCD6+jYvAAkbE+SJSCZkqE9Lat0eOVuQyZlty+EdLwL/ZCNXJuFap4Q5UnY7Rt/+L+7y4evhKmN7Sry6etJVma9yZ8DUEvwB77ogjt6Yml56RLboMW9c6G3OHBAESrCOjZ/vE2Ir+hwlsOes6cHTmOcBLWy2RUDaxVqYJKR3Toc1QnEsWnQTorsUsqcNnlhKbCvOcWFTXY/KlaM5fE57fJlzt5XKaWyyA5bH6B2gb8c9PMFziYoK2Wt+L0TPgtUJWxTAPoB77cQe8zQgayKWjDWjIruYow28IcT9alBmBPeQSoCKVUOZRydP/dy8Og0aG/DUvik7S343NQz3/H1xii3wE/IqpSLE1UnZAPmo2n/08iz5XZJddU6lPpao777jO5OrUHvK8hMrStFC+toVD3ncn3M/Ilzpvc0op5gGIqiY+A2Q2sQM6YnPCptdOZHxvqUINopUmixbsqbgkfPybUAzSh1m3J6bIqbVFCb5fup9VTvaDdOwBQVt0Zrnah5kQhPBdpYYBRPUGoMjMo4Gl0bxYyfe/Qcf+FnXoIIisPyFs/3Sdtff/eUWZ+6sjtYZ/jdX/88k6/gjruyHFfO9hlCAgP1vAgMT72gkEqYFE0k5sE3yHKGoqQKXSURDx4Kw7FZ6K43Ta2RxRQmOTE+LcHZvjBi5ADADHBK1LTNSyBUrAS6Kn5e+Ms/cpfTaSAuv+6Xuydtb8En76+3enf/kd/zBTwX97F1Ag3qXIh6YoqJEKNwwtRQB/eeITQbL1QC2hSZgMSefb3CV+WsGuLJpxyrITqAjmtDdEpXgzjSB9OY2ZvQtHOIIB4EapX9LSX0iOnMsTkzM1exMDeoU6HVxrC8S4xxJKLk4FidOzKxjsAZjLJDN9i9m+CetuidKyaFMOfqPrRnGruhDIzHTekM5nD2IXgvXMlgwVMJm5hWIoyryzt8y08/INw/YzPrSdtfutX01/+o1x09wQf//jt8zQsHpA8sBJeCMmBsX7OmLbBMhohju0GpQjt6NoYMRg8efLzyri8MrOQTvUa6IFALjCZIOFZTbeWXoPs3DHIVypDNFu2UCkdxxkmQKagC1eDyJeH8XZWiyS0NzxvaWmBcGqODnQ1sk55ECMsxQ9HaEiyXlWffn+zbh6/uOD3o3P7iwC3rw8uPNqb3ZfNsBMQovPTL8FOj8Bd/dkmn0xvWzYPdHqrEZ280PGl7C976bPwj3/ACtin8Hh/z9rzfZWNrPQX7fVqYR9+cYlsonVI4NWeydCzkxGzcDMDnTA5gAEMdSz98quiBslnoxTPt1UQooeko04FZOrpkS+8sCfEgQqikurBuTrLnS+cDLwTPvxuqGhe7xnwmGcTTUxl6OsDh4Y7HLwbryLRPudP5eJ158RVnFIeegWchikYORi1SOPRv/PC9dP28YYt96jnwVk2st7u/Pj+aWduL6fqX6JO3UQIZdWu8fKZ1q8D3/p73cUozJiHBybOXWUs2sBCYJHlX6wpWBWOweGFfenbNRzbAnPzAuzsjDNNsIvWNuVUZVFN8ZGRmG061lPC5k5tc0vKqW+LhIG489MB26Y/tw9dMVfL82YsoRhbzGrLFow8Uu5kAuYOVVG2pZPxlIPxPH77i+/6f+ze+00+DJG/bQuKNB8CT22yAt2czfKuGFiRj6r/557+Y558e7C8CN0NLoY/O2rbvdXvHhSjP1ju87+kVHk/wO34n8oEzeH5Ga7Zq5bjH7y5ocaKtyNEY7REyjujlQrz2gGUX3P3EgY/84l3u3WvYflBuK9QZLRnxGp5sBcZItcLGH0l1qee+26yvioB4Kok8gwsgNrl1dtG9B6ej0frK7jwbYe6KxUBtIK5oG9QZfvoTlT/xQy/h8dazwCd1f32mQ+9ToYZ7Uz74/pSCN0kbQh8FKQmWZShuM+EH+thR5xW9liJvCW1yUOwOSTr2yrATdRhogiSjJNvMNQgvmKU1Q5hwX7BorGWP6YIzUY1UtmypSJPcph+C5W7j/AMnYIeGsfhALo04HdBbELc73ndIH7gbVhauXnLi7AzTQZdgZ8biAnIkToZaQ/sEJvR+RSOwKPTLZ+DiHpPPBB0s5dXMwR7n5cvn+K8++spnvAR9psvRk7a34HNrOPxTf89z/IPPXhGnicA5e/qAiFFLyZj7GGlDJFD2FOucaaVLI+4X5mcHbQlkP1F0ZAvCZ0QbOjWiK+jE6eUj9amg6gw4unEZxhqZADdWwid6aUyxYzxslFsT0PLyKApRWPqJYhnL4x7UjDbBZQUZjGFETAwavjh1l+l20TJdrkVan31kkba4plo0BFdlLFnQT2Fpve01I9kPnYf1jO/6PxfCG4akNe3Xqaj6rbJ+45pZN98RCN7/gaf5qi9VvAc9kn+qBO5pUdVgwyRETqRDkWg3LFKXnnWPkrYFEoJraojmRTQkcM9pNFKILXnTVVHSFl5KpTDwnE4SKCNgqhNEQ0dFpsHH78/89Z96eVPqbdKJX+f1pO0t+Nz2V512/PF/+Cl2ty6pc2P0mumRMbCJtOSj29DVmXzCZKLJCbww7IoqhmKYzmh0NBaCSi0dHhZ0n4ljwoKEMowc0A1hCqV4Bvi0csb6cKFoZX9rpYhxWoVRB2UIJwb7daLs4OSDVgOlIxGMtaAxmNQ5wzhosA6FzVJNmXKgqCtTFGYtrN6Y1Xh4WmlTQuOrKq/5wjIqOho7CXRNpwkIJ3ceBtzqQRXlW34MHl1Prj/DU3/S9teb1/TB87XyJ/6x2DhBkuqqCEQcUWGnwWjK8rgznxl2sd2pIqhVNwurc3jFEBs88x5FVBkjz0+pQUVoLZsZVvM9c3os1F2Ct6uQyfEdhLQaeknhQHOYplR29eEc7hr7Z0f+fzb0R4+g57ahvyKU58BrfoR+MJaHjt9xrBg6O4zkad39uZnnvmyw1o6asXyssv/CzuHUWVsgI7t1H38x+Pa/sb7p8/3Ue+Jna94/aXsL3vrd9W3f8O7NjZVNzR7pdiklqJpJhHMVTj3YTfkQ+xCK5ddpgNjYXFaSXUbRhMpvyZo5yMm7ffPYkEaOBnRXVofJkqMlAZPCLuAgZErBxvC2zIiiarqKRgQ7HXzlHee9Xyicz4kmqlW5fDCzn5TdNDg+FB6/XFgfbUnr+6AVpavwMXfuLWA11WK58vdIKPzCw+A7f+Ju1lT+5hyst6PG+i3XzHpjY+WN//3G9WZ/fr1UlD/zz7wLNWMMaAKTOuEJagt3lpGFa2sZdXoY6fHcdCuogQ/bup7pz/fu7KacE+Y0MHAcdU2Lhnr6YstIcK0o6mlTFGPrvgaoJCtia3QRmX5omh3dayiayrZBJTMLTCXZRZodVySoLkwT4MHjNfijP3yPVy7bW2+OrW/BG19W8nq39El8MX0uzKy3WoExEfybX/MMv/erd/SSdqpRBDHQfWWqE8/ME+/dP835+ZSRvzwL73sXcmtOhcT9x8j9hdhdwbwghwPjfkGXSsTK4fLA5SuvwXTiFRovr85KJiyKCN6NGIOQTGmykfsmN3Lc+Py7554J920IcB0FB20LG5iL3Ci0hjuhQcbP5iVDJL+PuVDU+U9/9DE/+ovHbT749tY7qZn1qasoPFuM3/9FEz22JkGRLV43GGOAFrpD1YauZ8jeYc0/Lw6jrIz7Z+iFo+FQFroYItnoV92mPJGW1jau2NvE6ErMDq1AOeAyU63CGAzp2GywFGxWTi8qXh4w3z6nSIHJWQ6VWB8zvSsPVt8JcZoZqyOxUuoZV5cPieWMmI6YllQ2LILYiaVPCIJEh1B8THRdKQG6VNp8wqTi0diFErWhVjnpOd/7cw/x9e2bJp60vQWf44XQCr/vS2/z5U+v2P6QfMYOZW/0cCaUEE/7sQ3mKfBu7KMyDsK4aPhwpotpm/g7s+xYxsI0zTgL7mSKYXOmM8kGgUPTwVT2RF+gZ0x9kZlBx8pAXj2DixWZGt2TizMkmxC9Z8HlnlHmagXKSoy083s3tHa8VaQu9EVokodYKPTwDOnxHBopRndF6BQvtGEwr1sKlbI8eo7/5KfvYtFp8GlsrDdbT9r++o1vZn3q9y/8zq96ivddBDZn/WUEuoXw9JFnksnYmgGBk+DmVBMkpuEmLkcqwUgERaTePBDmYtdJzcm96lBmSduYtkwLk8ow0EhLhdTOT/3MiRdfOvLJV7m/O7bCJ21vwee2v0Tg6bOZf/+ffJrFj+z7oFvhLJZEGxcosaOIbwFPgtNyUCzcNC0Lqb4LUlE+1wQj2yOj3G6cxmA3z9B7hlKooA7zNCHrCe2VSz0Qx4IyMZ/lz3bqJ4YY6EKVmbIMRtnTyjHh3DFRYqW5MJGpxVWCJnu6P2YdQdkb4+SIGsTM3lY6wRDwYxCz42p0OlNXFp+58ob3zlwsQ63cOXfl4XAOCFN3Xrq8zb/7fz36rNvySdtfn62mFzG+55vi/2fvXYMly7L7rt9aa+9zMvPeW1XdPd09rRmNRgR6DOiBHBJg2bIsCWTA2CJCDgJjR2AbS2AMgQIbIoQEfn1RSIGFbSBQgCAQhnAEYUCWCFlIFpJAHgVGEpKCkWSNJWtmNP2s6qr7yMxz9t5r8WFn3rq3uqq7eqp7Zvp2rZjpypt5MvPkyZX77PPf/wfJu6SY6t1vNhoSsEjKXB00EZuZwyeVWvoYMixgmrvU3ATOPmlc+0BDUkDbecm2IKc+WtXSsGTU1vCaSENl2Cupdwn2ElCK4snJI7QqSIIhdaPv6Q4srnlPam3dS20d0kGIrVJPnPFpYZqd+SxxcBDE2NhMfVFPrcvuy9nAqx8znvzimTo3NicZO3BEGi2U6hCzst0MfMdPr7lVHq4l3irmzDupHmbs+vavfZYmjkaiTt1eKKJnDIb3RGkbOr5QWsN2zOGkO0nqDsNSukxUzGktOjFFuqxeZM9A7gs3eWdtNO9SNNNOZSbRSTTDLtTEAyr0MJ5onZklHYfICs8tKl/6PmE1JHJ2hgS1KLEWygvKmBv2dHD60orNqxM6wDz0/ZqfCn7ltgGBR8dTVGRn7C5sGvw7P3ZrJ4M9v+67dOzejKTwHeeZJezSIS7BWr32rJl7P9G9W3o43/pDLxIqfGCV+Utf/wRBl/WYA6oMDi0FGwImJe2ZfuIM1g221Zzi2il9Dj4KxTt5dGFGo9JaYis9VSR20kKPjqyK9xPoXV8r79S9XfyFiO+8HvprRuwipb3T20ftkasNR8X68wNMjRaN0ESy4Jc+ueG7/+5t5gsRvPfWvmXk0h39PaW7q3TgjLeeOn8VS3Zpkv/pz73Cf/ILxjd9/nX+1D/7BBqVaEGZZzzBbUs8vajkE2M4WCJ5jfz6y0QekNw9Q9rpy9jRM8TqSeLGhI0vEe0U2a45uFZIn3vA2WZAbt3Gb4FPu8EhekImsZvIx+5iTAS8ULYjq8EJNYZwaqmwS9eMnREu0j0EorZdbzSgS3CTCgkQ7c/LYsxS+J4fPOGnPuFEbImHkgK/u2svNXSHF6tzW0cO5DYuA1k78xMUl/7jz0l3Jo4VHHJuTNVBh+7ZcHiKT0rJieQDpoLIQJXp3CjSshB+grQlzSbCMupKcxjsGtN2wle78Ao3ptOR1bBm/mSi1cb4TCbIsNjSyjXSZmIzGmyX5NGhOWWekFh06fZ6i7AiaoWseJsQGVBZ0Vohp0StM00S1Qt5kbGpG9TKUBgi0QKyDagWJCkhme//yBleXstyg9eeGC8+9m6u0io/+NE1f/gr3sMHJyWngg4ztQZIZt4xionOCGxlJCTIZ84yC6fa03hiB64SxpxmaNDqhvBMs0JeDNSXlHK47TIfq1gTos14NMy6KXNrMy6BlgA5o5bOzgu2CIp50Kxiw0itFawDGk2d6kOHIsKxASpG9Ym8ZznTjZQ7GSFoIn1hKHVDewtoLVMamCl1FqoONLnOX/nFW1jPp4aIhwKyHtdbXxGVj/zyK3wEuHZtwe/48idZ5YkmgVSDvA83T6hlYicxDTWkJTw56hmR/aKKgCbcd/6joaANU6PWStIBUkPGPt4mVUJHLBpNEolgEwM/9TPPs94ayHwf7Opxs7wdFQG3z2b+/I+f8B99rbJpThanaaKEs0Q7dBmNFmCaaT4RnruHKK37VIX25EoCk0YLwTwhuiU4BN2wnXtQgHpGPbqYdbNhlZZUq5gONBnweaJ6ULT09MswRPJuYdCY2gmY9fAVKpMqqRqRKh7GHIUpTlnagCKUuZFMSGZInZhbZUpAg1QHpqHRamCeKdJgrgzJCen+RttwVsAsoKYst43flht85y+ePm7LixVO1gQItpMouzvZOsBQmqPWk5grRinG3GbGbIT3cKdGw5JC6uey8F3ASevXTmUGHcCGRKs9dbrWroyoO/NFDedwVLwEOvYZs6kR2rpfchGKOOM1Y/2CsnymW9VsoZMeNNFKpbVg3gSWBjRVthqdSJG6hjoqGMr6dsYW624pQUImiEN6Krl0+MAsePWF9tBA1uN6cP3WSeFzrnUW/DD2OcZiucMywpknoUxBSzt5IN16qDmk3TlLdXftHY3YA/PSQVBHkNYZg5jvZILKHEFSpbpj0UOl3B1NncRQY7+40+dJvk8WbMEIHCk8dwiLQ8FL4GtjI0Ie4M7Lhm8qHA74x2CWmeV7Az/odkqlZW7fFGYaC7EO+gKnW0Uk+PmXnO/75Vf7GLk7TvcmFz6qN9aD6rODmdWpK+fUxv3tPfZ+7x5ekPP2xy9KxO6dfOw2GlX4E19xg3/q/avzOG9vwWYShlWnpS90563gTvXus5VsR3kPYfYer6mqRBVcnUGDpLCpgEjf5wZmHbDyc7ZV/1LnXRyvSZd5yQ6lG3e7O0VPTEyi3bRUYZHAW/CDv3rC//CRbZeTvZ4HwUWK2z3HCnozyd6F7vKmVxJlfyuZWa+tvd9Yl5F98xcf8Mf/maewazPX7Tnem50n3n/A4jBjByOhGWxEUiJ+/ZhgiRwNSJ5wO0BT4OWEMm/ZThteuH2TO2cTz7+8pdW0k/50yal4B3/dHXHBLCHuSGk7Vl8AnclF7WCVS6DqWAfWcXWSetdaq+1AkUqkJT/6qzN/+cdeoezli49Q72Zm1nkZfGAY+Fc/0NjuGAVO3o0lkGULsgIKdQvDQR97pEkHIaXRmvZJ1SaRVooMlaR9VQUCUqBaiTrizKgpUTPFukG8hjDIIZNN0Bxpme1LlfHpQjqseKw6P+JVR8aJOFRMD6HcocnIyhacbgseZ2g7gLRhLkpOwB1FFhWX/YqM9QvTZohUSjhEQ0XJ3pN+dAcqjAiY8PfuLPjJT54i3u7L+ns975Wr1lvwqbFnVOH9h4l/8yt7DH1IhjSRUpcFDuKUubE46Myq69MCt8Rk2x5akiqjLUhSSaYdYHKheiVJ7v6PtxXdjOh776AkIoxgYo8phicKPUFTmpG0Mb+wQp456dHpUhlF+yKRzoSmXbi0UDaFlowsu+f1mEu0CnOqyO75PoMbYIaURhNga2jKnTNaKsHYzeznJTIc8Bd/5iViJwN4syDWVeuvzzQz6/VLGJLwRR96ig9+TvckgkaNHkkvYTtPtdbPgWqdgS/du6Mv0wW4YqlLjIJMNqXUnVRQEr/4qzO/9fFXeqjJa+rTd3iuWm/B/fqrezS+8RONP//7lmRTBjVGBNMt2SolEuoZSzOxDWpWcgNbBKklUgSe2s6UspE0Y2vBhsTWZiIqg+Xuf0tjQHG2ZE0kT1TrMXXbsy1RlOFwRFPtcmavRDjiTkIo2SmeSG0AnQga4hkiGKQxu2I0RnNKG2jDjNWhJ2XqgmM/pljGWiNujUxPbpmrY9FBFaOnmfXQIeW0dZDWNNhU+IGPZP7eC42HSdS8av31uswsgv/sXzwiz2siBPPOcvHWEO3qhu6BHD1YRCshkHLPiSvhrBad7dI2merO8tDpQuQOJEpAE6cgmDiqnZ0zLHa2HkXJ2sOR3JWpOWnoZAWTvsDpaGdoSU831AyO03ZU4fUdIy8avk2UORiXQl12CRo+QBVONzDdqmyOlXw48+QXGvPa2byi6BMdyGg4K0tMtXF2a+Df+z+nN/SHvFiPmVkPrm/4Rw/5yvcfdHKAOm3q5JmukhGyKsfrfgxvHAqtOdmChDDT+0B3R9hUmEv32fXYBUTVYACIYIpun5QuXL+HC5kdM9W6l2QmOlud3mgNwBNanScseHIVfP5zzrL1EAQJIStMa+PkZWe5hNWhkG4ITWD9vDKb0lbCLRK/eWuLFuuJ6gZJgl+6CX/l/32lB7zsAOSLi9AR8SmDWO84meHFv/fg1DlTSOQcrArYAVZ3QYS72M3DmceLGF/xHuPbvvo9eDEiIK3ApLIuikontONC5W46hbqCOiJQHFQa2nTHsuqU9og+WKk4WbUnrki/KFUgqjCkXfohnZZn2i8WXHaNKYqk4IXjwvf+7B1+46R22RdcAqDu+VS7I3CXX6VddXsuBtuzFy4ey3NgUDu6exUHprcXzLpcnSCVEVX+lS+/zr/2z72PZ28seEXfIcIAACAASURBVObwBk88s8RMUc1EzujLL3ZE/paxBuTwhGF+lrLcsmHLJ1+5zZ3TE9bFuXNcurEtBnQGoO5YdUHAPnXFHa0Au5hX6atAffLeLwS0c1J7mIAKYpWwwGTgR37lgO/63/8hXstbeEwuxqxfrf56MxeEhoEEH1wY/8IHEql1D6GQsae6mVAKpKRo29GHU1BSZ7eYCfMEWRMuE3F6gI1rxkFptludiUwkxSeHofYY35SRnkVONGEwp25hunkAmy1Hn79mctDlEb6ZsDPDrq1pmoiArQdJFtiYaWczwpbalIiGZqcVsLTqANTJRF4N1KmgQ0/RnMksKP05gImhrdFQrDmroUESTiPzX/zaGm3+hv5F9/kecPcr1VvwqQEOu8V+/uTvuMFzRz15cKCidoDqGdYyLo6NheSZsQlWR7Zphtxp6sm6fD5jtCgIA0kSLo0WE9bAby7gsMLQ2ZweE76fqTcjp0a0BOoMJLZn4KIwFtScTGJuArnSxNACITPhmSr9Yk4cihdEjCZCi7Zb5GpQhWpBNKPSU1ulJaQKNSpDLDqroirz4oC//H/cZMM+0OXN17t57PpMl6BgQU4L/rEP3WB1tGSw26zGgV1OAClmPDL9OkJxgSzBVDObknn++WM+8bFjNtPMXc/jt0c2+GbrqvUWvLa/TJc03zzUc5eHS/7jr71OlhNEjLQLUhoYgVOgobHAo+HJWYiRpKe4hk8kVXxn1TFsGmk5sKVgan0qJAltSqIQFFaScS00EcRHNqcztlXKjc3OQ61REAYdsVIhVaYQqguLpEgrPWVVvSsv5iWeChLe54P0hPHqgVqjRmO9WyS3tsDXhXItk2dnplDpC+HJBsbtlpNRmFzIDkWcF+cj/tJPnzwMjgVcvf56ozn9n/jyG/zT7z0DD9QDQ+gDQ7/qiZ3nnokAnUlnJmDdqH2ZoFbHK5y+lLj+vgZNMe0+MXnRyQ6oYDs/vlZ2RvDeuqwRIYVDTcxDD7hI2uWDIlCqIOaMgEti1KAE1FlZnwjHrzTmBoulsTgKytZ49XZBKyyWA9vJ+9y+Nfxg5skvzNStY9Uo1pii0SqAdh+nkvi+n13w4ZdPHvo4X5y7P3CbK9Zb8ObOjd/xe585N3iPSMylM4rH3PtJCmw2jg3KYvDdMouS+kDUAfJdMqHTfbiTdgsGCWgIIV12n3QPZHn30AKkdvVWX7AJjlQ4RbovcnHCnQUwDs6hwLUQnkzG9adBTZDqtLWyPYWDg6CcCtc+WNGDLtwLAg/j+U3wD18UzrZBDmFIipjy29vKf/h/3SR8B7Dx1gFZ8A4Fsy4yrGI3x4g9Ckn/+yJw1YelPYjTb8sbzk06Kn+3OjvquYPMf/A1T/LEqqczZd35cEg32q7RB0On+1tZOC2ELEqTXdw5QRIha6M2Ra0zZ3S3f46gRUhD7BLEuhTRXTGcv/PxNX/zI6e8sGl3168ufj+y+7Sv8505cW6Wfym1cPc83QOA58Ss2B+Fva/ElRuYPp1g1r76MXckusdHyMh3/cEv5Ju/7oO859kBscri1RPaDcPOtswfP2F65mlkPGU+WfPCi42Xpg1zVLY12G4KFrkn0llj7Da2KL2X+uxckF1aoVC7RNU6iNpkJ6uhJxGqNsIHPna24E//Ny9wJ+bd7+utJ4FefMWr1l9vZAB/7/0a0AyeNOFbPgDRBsrQZczJKs2FJNYNjt2RLNRaaJbRWGNZidr9tcYwfCOIJjgMkLZLb+2pTcJAmUEyDCRQoVliPhb0eIbDifG6sI1gMa6oW5iPl4xP30Y94UPtJvBrwWo33q1RwQNbjEDs4qyDJoFR0LOROFAG33Y2T8fTAafVBSoNsZnBQVqPHx5Wykue+IF/sMXnemnt/mHPT4/BrMtlCqMqX/ehD/C7nvsYBUVaIHmFTCfoQjs3MEaW1ji4c53t9Zs90MQHxpWQjW6i3JQWXaKhSDdNT0ZphfbbR+TnNiRRIpQiE6oZdSHlLVIHPDnVGxYgL66Ip2dUhdyCTXVajAy599AcM6INi0x4ImSmVgiJc4DTopssT/vzrgORqAFRrZsxWwdL66Sc8CR/7f9+CW3B/AjznXfD2PXOqN2iHLsUzP1k8XxyuGcACR3aLVyc9312wFeX66r1Fjxafw1AXqz4d79mxVGaSJaJ2JJVMV1R24aFdX/a8K6QEGm0VkiyQM2BLeqGnQVxqCAFj4GMEF4ZSDhB9hXoRLUuRaul4MdGnYGnK3nnR9pTC4Ohgo7ONnZjkSmlGmXasFgIFkGZE6q+W2BXUhJGabh0qc6kldIaizRiszDV1pOOmak+0Jh7aEWARWdxHLdASvCbm6f5qz93h2gPNvC+t65af73RnH7Ugb/6jYHXYIFRSk+wFanELkigesMsETVo4ogFgxoH424etbuqfPmjA3bg5ME5OnLSsnvurbeNg2WizI06gQ3BkPdm2F0KGB5ogzp0/+OUgoVBbUrzIA3dnFslwRZOXzZuvlxY5kyL0hM7l5l57oSKGAqWgjQobo3VDe3WNdlZN9CS2LwE4+c4c+vJiHMJDsR4pR7wbX/75E0Nfm+lQfc7qd7M2PUnv+oJnjnM3SapCWZCEqdOhi2dQXrgwPHGOTxUsjjS+vlKpdsYq/bvCjrekExJOCU6cabzigVToXpnh2YVFkBR0MlAe+rzLAZzX2Q+HBuLIQgLVtYZWIcJ3rsK6h2BmhB6MEIUQ4twcL0wvFeIhSEJKspWhf/n1wOfO0t+oCdGf/vPnvL8+hRC92SYe48jLR4ScX9AvaPALFWN8wnG3jPrnJ2106BeksZd5l+9lq21+1cuzG8uzHUeWPfMckzg/QeJ3/v5K778fQveez0Trkz0eHN1Z9/zHSfoHlxET39DpF+8xd5gNnj5OPiN45n//pdPeWVTqRfeb68t3d9+2LrIsNrfuBj+eM5y2zHcnLvHSXcG4vv3vIoD02cCzLpY9/PzEV3yT1yvfOsf+XK+4UsOOFzf5uZvTpwd3eC03WKeNvgaNhuliFOjAb2/BnVGc3q0a0MIRtkxCqPbsovCGEHTTOjELAf8fy86f+vDN/n53564TSa3+Vxy83bWuwHMeqPo8ft5P33JU9f5phu3WfsT/eRz7aTHMNtIa4LmSjvNSO4eDy0qEis8tp11mZcYJ1go9dXrsBR0uSblimAwbdima1hbI7ZiunmAxgYzJz07obIgfMP6TFnefoL54Cbp0Gl1SRsdFHITphpoa2haULySW9Csjx9WDIaZKIXtSjk4U9qoRDOSbCk1IR6EdvPxRKXIwIEI0YJhO/H84TP89V/7ZB+j4rXj4OuBg5eSWq9Yb8GjXRB237vEl33uAX/gizaAkLZKOmh4cybpKbxZR669cI2TZ1/tvggBi5QYByOHMvt07iuZPJFy60xCBC8ON1fokwWjQd6dr9vuLCw9eVdiRHUi5oLMS6pXFjcaocpZCYYIovaAFpUFOhZwZYpCNMjWPSICobY+KdsWUO3phS0cRIkaqA20XUrhrx5/Dn/9558nEV0u/Qh11frrnQtm7avDq+yWCl+/7l3E/Oyqq9Zb8Oj9pYAk4Vt+13N84OAEtKE0Bm+IjogqQqHRSBjKQEoVquBaGVmRdM28FiI7gyQiGqMGyABee8BKm7vXmtDnT1HwzYDeCdp7o/vVSAMyPgerZuiyEHTZEJEpTboM0fZWEAnRDeIG0hCR7oUrwtZnbEhImzEXZJs4A1ajsa4zJRQVw6WQajBIYu3Onab8zIsr/qePzBAPx3Db11Xrr4u9pfe5sguB//L3LYkykV2JEJIqqhX3bo7dNol56l6N40IwrViGceyLQUTi5CX6NiEkG/GYeep9kJdBLbBcgKhz+qqyOhTy6N0I2w0tjeMXFQ8jHwarG2XHeA68KWlUatvNeebEzV/f2X8cNGwpLG/08apMwvZEOHoKfNHZpvMkXV0xOJqEWoP1qVBfDFbPCme1X/AGdFNxT/zrP1R2C4UPboV7U90fg1kPV//+1z+LIozRaHR5XqpdebVa0NMpt8GmJJ48bJhClt01N53hOYgzRY8tsVAWBq+WLpFXE8QhIUh0v8fFLvAm038DJ7NTo1t4XB8aKTuSjCJB0DgYhCTK9RS85wbkKkRxSjX8ZkKtsHofcGKk54QmQjXn1Xnkt54Pzk4LhLBK8OoMf+Ynb+EXTN7hMm7xVtEi3lFglqme78Z9QSou/8D2iPnuf3cP2f7uuPTnfev8sYdZpjvX4j14W5G7INrr1TnQBq8jGbzwdvcMLuePXwD77gJ/dymhcgHNit1axL4lLl4sdpTv7kXhVRyYPtNg1r3VQUR9zf07Fevdv8N320k3PZYE0XX9FrsUHO1SQ6V2oz/p1oGEEaJYFPwzPJF/N4BZu9tvCELvt9n/PjUFv/OZa3zlNSdF0LQhTamqpNgwR/f/iXmF5i3gqNIHAKUbOGpCkyNS0AZabqASbGvg2wUxVKI4R09uO9uKJToPbDfCMCubG7eQ5KgvkCLUmBjUqWVJU8fMqA2SbRAWnQVDT6ArpWGpUAVyU1Dr6UEhNJlxBlQmLI9EOFZmUhJEjljYhu/++xDTmnIfwPdhwP2Lj1+13oJHuyDsLL2+sCGa+DO/+zrj4g4ju/tVUBc0weKOMa+EOW1QTQwMZCsUMoOdEbGiROux8yn3VJ0wXCpaHV8HLBumK0SdFjNBItqA6gTh3ehfMnVTYTmAF1SU4hWzkcpMZxQmqgepQlWlTYJYo4ahWhFPVCqqnWklNeESZG8gidaMAfgbv5b5hRceXlLxRnXV+uudD2ZdnbpqvQVvTX8JECb87i9+in/+g6eoJbQYKQVVtqgMmM87KwUlhaHWSATJKjEpTTJh2mU77QzBSGoIjdFHPAqTOkEiu1OrMOuM3FkQRzsmu/Q59AJobkTqF5bT3D10TZ1JCtGECWfA0QSCMgUknBWJDYGr0uq8YwUl8izYYmaIzE1mNPp8bfLO1rgWGTPjj/5YI/zh2VgX66r11+v11h7cum7Kd3+tIK54E0QrIs7pSaYVOHhqxjxz+2VhHJ0nnxFa60n1p2cZ1sJ73jeRck8wFBGm02B7W6gl8cTnwNGNoMyFZZI+XzdhXhu3PyGMuTE+bUzrYDppWCxZHTn5eqPUzPEnZ8QTJj1o5XO/CCbrCovNceXwhjK3QBQsFG+BDYJXiGaglSmc2hJegvDEfGtGnxTcDejzohLGv/HDTuC8meuAhwUjrlpvwac2dv3Z3/sspjtpafR0wQhwT6zGLnddZufkODgriWEIDld9rjwozOId3Eb6YmMYWFBmIWrFRDhI2kMiArJB0uCsCCbBtaFRs7LUPl5trYNpgvdAqQTLECjK9UUweCJOhdWhE0m59myllQWNwjqM518OjmdnE7DUnp4oJvxbP/EKpcJeUgivnZ+/lfqedxSYpT327xy02R+IcybWjlEUO/bVHlW6m8D3WqbW+d8X5YrnyFg3tb0vSHT+lNcCU/ey2d+uej0Q7uK+vOZ4XUDbzplp50ysfi9yufHOmWv7f6/gwPTZBma92+rdAma9+cosFyvqduY948Qf/bzu4BH033epgmsmIpH1BJsGWupsFPeBJDMFhaZkq3jqHn+DGtGMs3VlKX0ka8uJcXySed1I60LNM3Yt2MzOShNNrQNCrUtQmQ4Q2dC0j7+mzhwHWBz3hCgbUA9mrQxk3JWgEFZJZwk/MnKbaDFAVFQSIpUxFgy65g4r/tvfmNnM80Oxrh6mrlpvwaNfEIr0/6cAH0b+pS8+5EPP3UR9RZYJMQFxFscrplXBU086tJQQn1EddrHm3fNjPxVWXYKekXWgzjB/fGR83waSYa1LOZC+vNKoWFNSSsytIbcG5sMNYzJadH/K6Lal+M5XzqiILakUyuwkduxmdXyrzBq974pR2gaxI8JmpM0cxw2+72dvc1reWgD/qvXXYzDrs6euWm/Bm++vNxrzn35iyb/91Qdo3ZAz5J15u0nuC3wtEQkM51AzU2yYtsq4AqJgnlk0Ry1TW/cETZFwLRQdCdmQo0tvCsAt8KcmRI5Q3aImLGuQYiDqhpaWeGzw6EmxqBI+MXuQ8gHmBVWoYYgXhgbb7NAySKGpgCtylsjLGTPn1RYMdP9cRPHmnMxL/sJPrdk8AoP+qvXXw/TWAHzX7zzAaqWUzmiR6D6k4/XKwrrFzHxqnJ0I48oZV8LNm0GW4Kn3KmnR0BYkS9RoDIOj1Th+3mlTYjxqHKwyh0fBvBVe/SRICkwbN95nYIXNrOSA6VTY3gZtmQlnda2wXBlyKORlpYnTmpAtU48rcsgu/beDoaUIqkqtlXnbfbta7Vd3rQrrE2OxdLbaCFdCFcL5xPYp/tyPv9KP25s4xo/BrDdf3/51z7KQ6CnLGqgb0YKcg4UqTSrVFW3OZoIoSk7djkPFu73IXkHVBNFGFji04EBjFxvVvdkKwpiDKdiZxDvsfLfPxHeWS0FOimj350sBg3V1Dzczi1WjSEII5FAom6Bk5WQbbHfeywsC0eB7f7HwkVfOuh2Rn5NfLn3+tyOp8B0FZplo3OuX9SA20kUmkVwAuS5JeHar0REPAKS4/+ufA1/3vP+D9ufhWV13N3wYoOqNXvwiw2q/CnFpy3veYH9seiJLn+Cfe2dxtcEGeAxmfabrKvfXo4MNdxmmX3a04uuf6XK88CBsS7SREo2kAz5CbAK8ImZIdSK1PiFPeym2IqqUdQKWLBYbXBP1VZA0wbKgcojaLQZZUgZhXivkoLSKuKAe5Cg066bb3gwiI8WRoaKmbOeeNiZVEF3jsURbJQYlNoENA2KlLxoIJBHGFugAv3C64Md++wSt3XAXLo/fn+o56ar1Frw1YBb0/jLt9Pf3Hy35Y1+RsXxM1gVDbNDbB9y53kiWENmgZiT6uSa1wFJAU1Qbldx9HURwb50ttU2Uk4HxKQipwAwILRaoVaI5agPhE3qWcXPm1EgGpSpo0Dyw8D4Jx/pOS6OWu2cpZz/J6wa+dVbCBfWZ0hI/9+J1fuSjrzzKIXtgXbX+egxmffbUVesteOv7ywAblT/+lc/yvqdPuNYqLYSmQqaiMVCbc5CdbLpjJleWB5moiTFtqUUwzQytULWAL6nR5c4CEDOpQW0j87owPKm0aF1iTUaLcC0FhnEaM1IzRRpn2lhJUB22kWg2sfBMMhCMLIFG4yxAOsbA7IHhpLURCzBJbM0xL3hVqgo/+CsjP/6JmfBHC+S5av31ZnrrD30g8fUfNEQb7hm1iQAyHRRQlBdfENj5zR5cq4zL7kU7DpAs7SwejHHREAGtgpfE8Qvd0wwPSnWWh8KN92SqbkEcTcrsgu5S71GhnMF4vVFdoQbLZVdTbDsCQnYDq539nqBVIwXdcD6C1pRSnJgGSmvoENTm1I0wHihbAlehzo5m4Vt+uBvfv9kGeAxmvfl67lriW7/yCVyl+3m2xkFOxBTULIzWWVUqQYouZJAqzNIopY9BZkJKO3/HFlwDjC6RdpXupac91XAOGKMnGCLKOhohPeRpizBaZ+CDM9D9uWmGrZVhWdlUxZIzjsK2QZsNT8FZ6+9voRyo8Kd++pjTqbNCL6i4Ln32twPI2r3POxfM2te5lO4e6eC9v8q7yYd3oau7DKsL2128cc5YkrtyPnqCyEWg59KL7EGkC+973/197S6ePz8u7u+FlMaL+9xvXzZvv8hMkwsA1l2srG+/D6W+6NN00XdmLzc8v3jc/XdPGLyKA9NjMOszW+8GMOteT6z7jatmRmvtgdtkoIjyVBa+6f2HHG4r0VYUWSNqWApaq3i5hqZK5BPyNIAqkpQ2O02caMFykanpDBuWiM07uUVQFVIGJBE+k2Kk1JnwhKvC1rEhEGZMjBKOB5gMmKzZ1BVqQSHIJeNjgWpgkEMQMm3eMh5ukaKoCiHKUgsfObvOj37shBqXQaz7HYuLcswHHdfHnlkP+xr934juBRIBCxJf8OzIN3+VsJgb9ThTrs0UMbJWAmfQSiBoMqQKKRkmrS8W6cgcM9aMQY1paqhukZefJA5m0rUJj4Zo9+wQumeJhNKa015V/HrrkkQc1NAaSAQtDNfAvXtD1HCKBu4DEhWKodGIgJCRcOeXXj3if/mllx/1UL1uXbX+egxmffbUVesteOv6637nh2uLkW/7PU9xMNwmRTcxVgkyE4cxcju2aGRSU3QI8GA03VkxzBgDNZQ5KqKB0lBPNM8MXpEQ/HTEnzhBNAOGiJKbM6aJYMHUCjS4Y7sFJXGK9xCqpJXkAxoO1hjdCR1Yy86ofs7M4iwE9BRiCM6oeARPGPzszSP+q58/I/ZxKI94JK9afz1Kb33nP5n43BuQG5gaIZVWlVZhu66srgsRHeRajJ3Z0jzIuYIoIorPkEfv6XIh0JTJhSG60XxokAdjap15LCloTWglyMNu0VEEj4YimEGguAu6rdhB4s5vG2Xd32O8EaRrPan89GzBfOzk69BOnZPjgbqcOBAlP+vMrbvI/erpEd/zE7f3pjaX6o1IFW8GmLhqvQWP1l/f8XXPMGi/YBcJcoBIYE16QM2ydYCp9fnOgDLjmHTgyRtcM8EConoPATAwdXLoDgMJkOCsKmLOwoXQhmNsBKYGRwfOkSoWQQWmKdGKoyKkobHZKONhBz6jNCwGJmtMVake/K+/PvOTHzvZqbk+/SDWvt55YNbu9h472oMreo8x1mWQ6q7UcA/k7OsSsCRc+vWeM7b2X9IFWeP92GEPZI1dAKcu1Z7hxcUBo9/5mufHBQDrAnh3bmZ//mHvem3dd3suMLB2W1yWa/YnXpId3meScBUHpsdg1me23g1g1j33PRCceb2/L5bqwB95/4JnVhtaM8oceAsKM8PSKMeJaZMYUt6NWxPhhh0WOGiwDnwhWM7YGppUImtfmU490rl4JccIbHEfgEyNRh6CWiuZRniiWu7Rwz5TPFEz5OLoqAQZbU6EI9p6muaspANHorJMwcs8y//48VtsjmeQy9KvB0kM7/fYG7G2rlpvwVsPOOxlhwHdGHdY8M0fWvKP54Q/fQvH8OYshoSEYxa4GxGlm49qX2U2ASQQb0Rd0GzGwgivxK0DeM8aQWkBSDfQNVdMleIzvLJiunbGkEfcKq15z5hqmSqViG7sbdI9P0SE2R2pAxZbQp1Aeen0Kf67n3+Vs/pozIWHqavWX4/BrM+eumq9BW9vf6kADHzpF9zgj33hGSmMRmaMDUsT7ohix4IfOuYzGe3yLSkIjpQEUpgRRuuJl9GMSpdkp3lAaqUeTKgeUdgSAQc+0HIBz5S64QxgMGQC0crkYLIgU1jkoOHUGa6nkSmEiUKRwFwptTBmQybBZ2deVF6U63z/h0945aThD6P8eMi6av31VvXW93+9QRba1FAV1sfG4kZD6OFKq8FxUZYLwBu1GYIzDNKBUeteVuUsOLzWEwt9Vkjdo2iujiWhRgewyuQsV3ruluMWWAtMDDyYjsFnoUUiXXNscLY3G/V4QA4q5cyoVrn2nFJKP5cfn4GcZobDRlsVVGBdnuBP/+irhO+pGZfrgWqjXT0Gsx6tv/7iNzyD0oGoBUGis+JVlWmih+JooCFklNCKuRAIS7qlgmuAOAuFJ3OXyG4kCDdEghoC0ciSqDhZhFMNincT+aNkWILsMM3C7MFSQRfB8ZlybRVMdPBdmjOHUEKYK/yFDx9ze5o7FX43H9+rui7W2w1kwTsMzFLVuJ+s7zUsrAt+WdzjpwWvZTax+6LuNZe/5H0ld8Gt/fvJ+YtdePL5fgmxi8y9lzG2g6suM6fOga1+/0U22H6be4GqPXPq4gXupeNxz/7uX+iuufwbf6cPujC8igPTYzDrM1vvNjDrwmNv6Ad1v9si0i37ZeSJwfn9n3PIjWGNbAbYCjUtaKuXSaJIy6hmzuYJHUYkN9I0UH1mkBHsDrI9gnFDayNFJ8QXhNa+uEOgVWEA2TZskTgTZYGCzLQWzJawWjBvbMVYilHDQSouKxJO1qC5ktPEWBsxHrDE+K9/84yXpgkhOrARbwxKvRkj/Yt11XoL3lp2w756j/W0w6aKCYQY3/71C0ILSTLZ1hQH84FQJ7mTUsalICEkehgFcQaqeA2wkYRQNzNtobhXzJRMUDwjUQkaUhJpDtoyIckprWGacYdBG+sSiAThDTehFZAENAO68XzygZ/8uPIT/+D4rTg8D1VXrb8eg1mfPXXVegve3v46OrzOyekJ4NjigD/71Qc8udiwtAqz4dYDJFwMScpARVowpYbQyN7BqpY6U8pUwA2XIKpiZ4ppYCvOLwi2ORgmmKOy0BUIvCoTEqDVcCtUD9TAXBkEFKPQGGnAAdvYMkVnop4zylqlzInv/fnCx85kZw74aMmr99ZV66+3urf+0BcIv//zEq0qk1bUnVVO5CQ0qV0O35TwysEy41TUA83KfAZ5CLIBptTSWTM9oAeWh4F79wytk5HHzhQU6+ysaD3dsNx20lqRp42mhU11NAPVaMWZbhnDe4K5wTIHZkGZlbPobBvFiGiskvCH/9aj9c9jMOvR+usfeSLzrV/xBEqQRZl2SfMqurNTgAjFw0kSuAhLnJV3Assdb6xawsRZLeBgJys8bUbShkoPArAIyMLswtRgMnCBJDDMIKGoCJM3loe9LTcbZUzOaqHMwBSNoRivRvDnPnzG7e2G8Lt0fn/AXPzTAWT1XXiHgll7IOcSy+rixveAOXLh/ksSwUs41AWWEzsA6i4Wds6i2m93sS4DVnt6E+dg2Pk+3MPS6uvG9/8OLoJWcPfzXiBsveZ1dxteAMT6g3F+m3ME9UGyy3MQ8OKO7LZ7LDN8XA9Tl9mGD1fvVjDrnu3eNICzv8808dRS+ZdXB8S4xoaAMdGags7MG0fTIf1Iz6it8OYIE8IAZyNtuQapSDukpi2NoQML4STpq4++nSErmW52miUBwZbGUhVzEkEA2AAAIABJREFUobWGp4S3hqUKbcCsdv+JISAKS1/yd6fr/MwLL1Dnvprz8J5YguqAewH8TXloXbXegreDmXX3jCCX7odRlnzwuQV/8AtGFsuXSTbS3CEcxUjVqdoQFJEZswOESrYF2grNCsmNUGX9kmLXtwypRzxLA0301WRrxLyglIouC+aKW6M2IZHxqNQQpDmOgCkxOxIGOH/nt57kw594hVI/vQmtV62/HoNZnz111XoLPr39JSJ87o0jvuWrRlZ2QtkYi8WARUXSjDQlbKb4giQFlSAqmAU1RsgNL0FSZagD9Q7Y2FgeTmA9XSzC2EYiCFZS2ahy6jMrWzHXDeiKeXZSmmhVWEbDbElIIzlMONso5GRsKmSEJIkf+bjy4x+daeXtY5detf56O3vrP/89A2YBtXBwMKDWWeahiXBn6M4O50DUdBasriWyNkoLwoUWgmiQEp3dos6QMm12JDXEB84+oSQa6EApWw6fETQ5NfersZPtHiATcOXOS8ry6UYtjplyIMqpN5r3N5EQcOdvfnTF//bRs0c6Bo/BrEfvr+/5umcpOLN0tuf+ejtLZ5ZWh0EUj8ZKlBGoHmwCFsBChUWDMOFohE0JQoPNzqPtidzxgObKHM7tAuIG0kg50DC0guTARyWrU2fDS3B42FljJQIL44d+q/I3/v7NjkPE3Tn3g2xAPl1A1m4f3jlgVpcZ7qSC5wYfd/+5xKja1R6QIi7L8riw7SUJHnQ09D6vec7EuvcxXv/C/d7XiZ3J3l1m1t0tLr7OHujaP+oEet4wHVjae1vBBbBr9zm58IoXmcjBZVP8+yUZ7t/0QReXV3FgUpG4F6Tc1xvRbR/Xo9e7Bcx6WODlQcAV8MaAlxmfd5j5xmcSR7Wx9RG80sYNeMJiYJ4qOhrqQZNEPVkzLgdmC7w6KQ/MrEk+9jErKeY9vSSlhEVBRNlqZQgBGhGGSCHHNVynzh4LyFIICZoGv3V2wM/cPOXOVC/t970s09eTW76ZElkQsT1/javWW/D2TNovHnPVnT/ILvVSpRstiyif//Qh3/ChA45sw2E6o4VjmqnMNIFRncyig6LitGCXKNaQWyNzG7CjYwqJwQUfZkSUoEIY8rISTzRaP/MjYdTJYWxIJIoH1Eobn+Nv/8odfvUTa0KC7WdovL5q/fUYzPrsqavWW/CZ6y8x40ufHfkDHzriuXSHWYVsM/O8AKs0TyQrWB1waTQL8NzHvuYkr7Q7Rlpl0mqiqjKKsGDBmjUJpdQtW0uEKLYNJg0mmbAYKeLkqCw0U8JRX2AizHFKM2EqK37pZMX//Au3oDb6V38ZmH+U8+L96qr116ezt37gG0GsexVFOONCURxJynwirA6heWO1SGy33kkSKph2aVZr1q/pLCAS7Xln8VyQRseqcOsUxiyMC8GSME+VGj25rnkgySBgXTtj2d1IzUlJOJudMfVEvMkT3/rDlfBGfcNP9eB6s0DFVesteOv66zu/9mmOxFG1HSARFBeGcBYmLDqfjgyc0IGqawZDBMsEOWDdIEoHNDXovrgihDUGE+boj60LXLNgi5OSMpuQJVhY90q9MwljE55YCoXgW376mNvriYt2Q7t59P4YXAKz9hjNp7veUWDWnpl1UaJ3mWl19/49EHTR9wm4yzLax1py9wvZP34R+OE+IEbs7o/Yg0tvAGY9AAi5gLNdBs1e51DHhSecg1AXTZL3D1+QV3Kx6bh70XiRHXa+/bkIkvPn3M9v6/HAtHsOF3ltj17vZtDs3QJmXayLyaGfal00jD9/P7q6S1GezsaXPfEUX7gKTO5QNaGt0Yqikmlpi1cl1pm0qBSrqGa8KbMUCMNkQGzNEJltFRJKGxqNQoqMhpBaQTTTZEMWodmANdCxcjIf8aMvrnlpu8XpKYxyYWXnrZ6Uv15dtd6Ct3fSfhdflG5G6969aERR76w4Fxhl5Gu+4Igv+cCS63oLZEtJSvLuBZEYcCv9vOVOZiTaTH3pCH/mFFFHHRqBaINIxCwMCGebAY5mFg2aV6oFqRkbXfDRV5b89G8e8/JJ4Mz4/8/emwbJtmX1fb+19j4ns4Y79xt6nqChm6HBBgssA4a2jDHIOGzJCiMrZEFIxgZZshRyEA4ibGTssBS2Q/4gIQ9gBiMFLQPGQMhhg8B4kI1khm66+9ED3XQ3/eb77lRVmefsvZY/7JNZWXXrvnffHd7rqrd+Ee/dyqyTJ0+eXLX32v817PvYmv5BcNbsK8Sszx/Omm3B54d97XTC93zNBd44HxnoIA8tQ9m3SG7rnQqtCq4DM1Fk3IZrQrqwT9lSZl6ZScYtMXYDbReVLZZ1HxNhHAoF8JQRryCOjk6nHUUUr0t6em4x52eeWPLBJyu1GjBlYh1ZmDwczpp9vRq29cfepfwrXzRlZSmIC8s9Y77dxEhN0nbaxRAVxBXQaQMUA3X8yY7uDUalMOsTtVQWLlCdThIVY6YdjlPcWibO0FMWA2lbqVbAM9mcwY3ct1I0RvjOv2+UO9yVl7P+CDHrwdrXf/lNjzDiuLSMvXM4GQcTlsC2OjcmneMCcFGV7QSzJNTi7LuBCdkT1zAqjlelVqFTY6s3Fg5bkuiSc9Xb2r6TVtY4T85gYMtE7Qs/+I/2+OS15fr6jiWz3PFzvJLZWJucKjHrXg1nU+g6eXfAzSbqtwtlq8d3yvw6SZS67dwvUpp4fAA5sXk83DaRHW84f0SI20gbk/Xvb89KWwlex7/fVenjZibZMWU2Bqb74E6lpa9lzrqYJSKklCilHP/dS/bM2nx8t8cfeU6hZ8bb+55/8vHMubJPP2vNbCuVbB3LRSZ1StGR6kruK+JbuI9I3cHzDartMJORam1XxUEWra+HKcKAakJMyBhPsstvPXeLTy2NA0BtZPNrfbmN2+9wX28fu15CIDxrtgWvjJi17ikpcmiL0wSjJlhyTDqEyrYqF3aFf+2rH+NSWtD5CyRPWDI0bVFGx3xJVxP2dI+/7gDNjtO1MsSSGcpI2k5IhfHpGX6pIJ65ReJTV3t+9YnrXBsKKkZxx/2hr/XuirNmX58PYkPQOGu2BZ+f9vWVb+j4E1/WxjcrM8iCWaXLoJbp6CjLBXYzwZUl2zmTZMRlp41rXabUwqIYJCGhHCxHluIoUDXRt10vyFZ4vl7gd6+P/PKHKjfLwXr/E2ntoV+xz33W7OvVtK1e4ce/TdvOu6PQzwVcceq0sALNleowd8Glx8bC8qYy33F8VpA8NY73jFOxCpJAqjNTIalz7XkYR2X7ClQ1StXmh5VKkswoRqXSJeHp8RH+/b//9B2v+aQ17Enci2Bx1mwLHqx9/Uff+AgKzMSxCpeyoGqYJ9ydPRTcuJJgjqLm9ApjERbV2MlCHQTDkCzkTrlmRu9C7gxzZ5uEijO6sG8CfWHHhSrtfE8v4C/9H89R/fYKkBdbe8CrJ2KteE2IWQ+DVXP2403oN8saNw5uHBOejmZ9KasU4rUYdSzja72b4iS8bfbQkikVw8WOZF7dJpQdE+6ONg2T9RvenuV19BpiYHrledBZYJ9PHE9NPWv2tbKtuykTvM/3OXL+O4k97k7Xdbz30hZffF6Y7xW2Rxj7QkkAjkqhMifbEskJG4zkiaoZmS3bmHBQ6HJG0zbP5o5PHhgfuTZyY7FPrfXI9XRdRynlgX72e+kxdtZsCx5+meHx58FXCc5NzBKh0DY8Wc1bCnjqSbU5V68/J3zBY6/j7ZcHts4pO2Zs6R6zJzv0olDPDQxDwjSxbwvGco69mnn62cInn9/nE9cqyzJQXemkLQLcjhfevPqcNfv6fJ8XX0ucNduC02Ff7/uCOd/4tg7RSufS+kfWRL6xy+LiVbZVSQqjAZbIPVg1DrzSK2Td5npd4lYo5ow+55n9xO/dKPzGp4zr+wfgwiR1vGqcNfv6fLGtv/GNiTeeb/OlGYxj2+hm3mWWexW/2XYutCokNXbf7OROGepIGRNLg1nXzuUVkhgzYLim2Dml9kKpBRVhMUASYVtgb1npZplSnVKdX/7sNu//yK0j17ax+jvaL/pFCDGr8aDt6z//pkeZJWc+KQz7VGYIpcJeVXbNuZQNEWdble0Mt6ozAFskKk5KhlfnWRIzc/okzIXWEiQZNwbhogt97ywSXL0Bf/23b/CZmwPVbvOVj3/eE33CV1vIglMmZgVBEARBEARBEARBEATB3aCv9gUEQRAEQRAEQRAEQRAEwd0SYlYQBEEQBEEQBEEQBEFwaggxKwiCIAiCIAiCIAiCIDg1hJgVBEEQBEEQBEEQBEEQnBpCzAqCIAiCIAiCIAiCIAhODSFmBUEQBEEQBEEQBEEQBKeGELOCIAiCIAiCIAiCIAiCU0OIWUEQBEEQBEEQBEEQBMGpIcSsIAiCIAiCIAiCIAiC4NQQYlYQBEEQBEEQBEEQBEFwaggxKwiCIAiCIAiCIAiCIDg1hJgVBEEQBEEQBEEQBEEQnBpCzAqCIAiCIAiCIAiCIAhODSFmBUEQBEEQBEEQBEEQBKeGELOCIAiCIAiCIAiCIAiCU0OIWUEQBEEQBEEQBEEQBMGpIcSsIAiCIAiCIAiCIAiC4NQQYlYQBEEQBEEQBEEQBEFwaggxKwiCIAiCIAiCIAiCIDg1hJgVBEEQBEEQBEEQBEEQnBpCzAqCIAiCIAiCIAiCIAhODSFmBUEQBEEQBEEQBEEQBKeGELOCIAiCIAiCIAiCIAiCU0OIWUEQBEEQBEEQBEEQBMGpIcSsIAiCIAiCIAiCIAiC4NQQYlYQBEEQBEEQBEEQBEFwaggxKwiCIAiCIAiCIAiCIDg1hJgVBEEQBEEQBEEQBEEQnBpCzAqCIAiCIAiCIAiCIAhODSFm3SUi8r0i8o9FZCkiP/oSx/57IvKUiNwQkR8RkdkrdJnBKSXsK3hYiMhMRH5YRH5fRG6KyG+JyLe8yPFhX8FdE/YVPCzCtoKHjYhcFpGfFZG9yc6+4w7HiYj8NRF5fvrvr4mIvNLXG5wOYuwKHjYxdh0SYtbd8zngB4EfebGDROSbge8D3ge8FXgH8AMP/eqC007YV/CwyMBngG8ALgDfD7xfRN52/MCwr+AeCPsKHhZhW8HD5m8CA/AY8CeBHxKRLznhuD8H/MvAe4EvB/4o8G+9UhcZnDpi7AoeNjF2TYi7v9rXcKoQkR8E3uTu/+Ydfv93gE+5+38wPX4f8JPu/vgrd5XBaSXsK3glEJEPAD/g7j997Pmwr+C+CfsKHhZhW8GDQkR2gBeAL3X3j07P/QTwB+7+fceO/b+BH3X3/2Z6/F3An3X3r3mFLzs4pcTYFTwoYuw6SmRmPXi+BPjtjce/DTwmIldepesJzhZhX8F9ISKPAe8CPnTCr8O+gvsi7Ct4WIRtBQ+YdwFltRic+G2aLR3nJPs66bgguI0Yu4IHTIxdG4SY9eDZBa5vPF79fO5VuJbg7BH2FdwzItIBPwn8mLs/ccIhYV/BPRP2FTwswraCh8AucOPYc9c52WZOsq/ds9Z7JnjwxNgVPARi7NogxKwHzy3g/Mbj1c83X4VrCc4eYV/BPSEiCvwErcb+e+9wWNhXcE+EfQUPi7Ct4CFx3GaYHp9kMyfZ1y2PXi3BixBjV/CQiLFrgxCzHjwfojVZW/Fe4Gl3f/5Vup7gbBH2FbxspgjMD9MaRf6r7j7e4dCwr+BlE/YVPCzCtoKHyEeBLCJfuPHcezm5FOwk+zrpuCAAYuwKHioxdm0QYtZdIiJZROZAApKIzEUkn3DojwPfJSLvEZGLtB0sfvQVvNTgFBL2FTxkfgh4N/BH3f3gRY4L+wruhbCv4GERthU8FNx9D/gZ4K+KyI6I/GHg22mZNMf5ceAvicgbReQNwF8m7Ct4cWLsCh4KMXYdJcSsu+f7gQPa9qn/xvTz94vIW0Tkloi8BcDd/xfgrwO/Anwa+H3gP3x1Ljk4RYR9BQ8FEXkrbRverwCemuzploj8ybCv4H4J+woeFmFbwSvAvwNsAc8Afxf4t939QyLydSJya+O4/xr4eeCDwO8Avzg9FwS3EWNX8AoQY9eEnKGSySAIgiAIgiAIgiAIguCME5lZQRAEQRAEQRAEQRAEwakhxKwgCIIgCIIgCIIgCILg1BBiVhAEQRAEQRAEQRAEQXBqCDErCIIgCIIgCIIgCIIgODXkV/sCAETkrrrQK3LSa9lsYq8CX/SmXf74V11AvGLmFDOsCory6Ex57BxcOpeYpUpaZOqzS2RL6R/vMFMO/mCgu5Q48IFlFZ69aiz24eYSblYomkjzgtUK3pGoCEKpivhIKQk3pxel+EhxBTfMHXVlFGWkknBEhJQUNaUMFXdlrM5CnOVQmXdgDu6GSSJLYSd3dFJBhNFg6UaSwxvg5qQKo0J1+LEP3Ljr78Ldb7/Jp5y7ta8HwVaX2nvia2sVBJLylsszRB1xwEFVEIQk7Tmf7EERVNrrBUcF3EFFQNr5FKjmqApZBZv+BgQHlE4NodlOEqE6IE6aXve/fXLvlbolRzhr9vVK2ta98u7Lme9772UcsAQFY6zQZZgjuDhahZQFK45XISWHbHSqjFrAm91dEmEUyCKMOC4ZsUovQslCGpS6p8wvVjqH9/38c218dlj9Qax+dG/2DmA4ytGx3GkH3u0mJWfNtgCS6PrDOyAy/Ts969J+FhGM1RjQvitbjUGbx07zpSBtvPHb59AVIu2Y9fc1nXf13a3fbOM91s+d8JW5HB5+8otl/Uy79nai9Wfxdo4VOn2GI28/fR5W13146sN3OXYeNp43Dm3yyH1wx8zOlH3dy9iVNLc5JiW+9gt2+eP/zEXO90uqC6CYKVatfQ8uuFfElFoTLoL5yFCgLAWs0m13mAhSK6hixVBtYxE4OWWyKl5HVBURR1PCMBJCSmDW/vVaSSjMEt0oeC/8t792lV/94FXE/Y52Wbze9728X87i2PVKzY0CqCpvO9fz1ZeU7dkByZVkgjqQK1JhvrVNHQd66SlloOsLVmZ0ahwUY6iFvpuhSUk0e1uqY7UySwmSMtSKqONDh3cGyYEZVpdogkESOhplLzFuz/jfP7vkUzcqlQLVURx72Z/u/m/jWbOv+7Gtb/3C15OA5ILSfGhVqNLmBZv85aU7ZQRPzUdyl7YWM8fVcVfMDURRcZj8GVUlCZTqOIJLW5e6CF6dMhpd11azlXZe0earl+KIQEra5l5vc61Vw6Z1wGDOh3//qQd3M++Ts2ZbcEr8+ktbfPObL0HdA5mBjPRkvChFDXFD8oB6h6eCyAxLTRQY6fnowchnrxU+dmukLEbcDoBmYwC9C6P4eiW76a+LCGa2frz5u5M47l9uHrv63Z380Lu1r8+L3QxfzHBOErAOX8h6nBeBK1uJv/DNjwJgAmMxlmMlp4Sa8/qdbb74jSMZSGqMTxjCnPljHabO/rXrzTHybaSM7JdCMaO72LFP5ZmDyn6BG2VErGOshk2CQjFBRTCrdALJ2kUNViimuDjiOlmKUopRFbrJ+VaD1LXJcunOaEqXlGV1ioMWsHFEk7KT25Q4eDM0EZqc5kYBqlVcFTejF+W//8DNu/4uYmC6d7a6VaJjWyo24Ul53aUZO6mJUbJecMokUjWxSidRy7w9L9IW9zotrhzQaRGWgOpOlxSbfPQkbfHmk9CVdSWoTYMNkKRNmLjz0asDn7g2vBK35Qhnzb4+Hye9d17I/MWvukAWARGSgCyFpEZWxXCW6ghOmia3JIlZKiRPDGZggpiwNTNGdUwAEy5pZd+FGVCT4FUwc871GVdj5nD1Vge18qZzib/5xB7/w8dvrcXWk1gJFSuhtrpNfx+TiHCXzvxZsy0AVfVNwWklXq0+6aZYdWSqPP7cCY9X51q/ZHVOP/a64z8fE4hEJi/72Ne06ZxsfjObAtOhQrchYh4XvaZrdZ8Ez83PvvnZNq5p/fvjwS7kiD2tPutxCzsU/Q4vtL7GxayM8PjFbb7zm17POx5dNhFIwC1RHcZaSZ5wdzIJN2N0GN1wy6SqoCOlZmo1lss2583PddRquFc6MoMbCci5BXZSp00zoOJV0NwMNyel1JEudYh4C+50SlcSqROqFGxZKQtnvrXNMzLjr/zIhxApuAhyTFWo2F0L5w+aszh2vZR93WnxcvfnVzR1vH038YdeZyQb6U2pOpK6Gb0ouRZMbRpiKkk6enFyNaDDkuEiMHqrU0kFdyXlNt6MmnB1uqyUwYCMpgHzHoBuBsUy1ZZIKnjdYtwfqJaY7TiUxIEqT1zv+H//4CbL0cFfnpz1IDhr9nU/ftefevfrp6AHVGBEWJhQzFg6WJrmCANjmtq0+d/VWXvV5o5NQWZRmQLO03pODBVhHCf/vtMWTKxQRmtjm4K7UNwRUdoc461cai0atPehQk1ME1U7bmnw4U89eZ938v45a7YFnx9+vYjgmtmdJd50YYsvvbDLm/sFBacfOyy30KLIiMuISEJrQXWbZR3JWlmqAMbME6MYPQo6UOlJpEmUFYopn1wkPvjUHk/fWrC0oQWM3Kku7VrM1nZ51DGcnpkErc1/Nz/L8WNO+ryrY46d9/SKWZsC1vqDT47v8ZslkvmmLz3Hv/CeXZZmLBbOPsbMHXOjDMb2TPnCizMeP185lzN+cwlXZ+y+u6PbXdLNOtQzn/7IEvGRrcuZZz+x4PIbtlnuGwfPFYZl5Voxrld4oRgHPjnGKkg1qhqzecLMmrNdIXtmdBAZwZSxtM+hqhyUAp5IavQuLFDqlL1V3NDUnLos4IPTa8Jxbg7QUZnPHDehiFJojqRxqJiu7p06LMx5/4du3dV3EQPTvbGddWMR1n6YzTse381TpsRKoDrMcEjr7KsmSIqDKussLZU2UR6+hvXCTx1EDzMXdFqQKUxZXZOI4U3YbYJZG7igTdLLavzyp17ZDK2zZl+fD5Pem3czf+VrLpJ0ymIpimibeLw6WYQyCtu9t2wGhVGcwSCr4N7GrLk4vQsFR8TpFHyZ6WaF6oJ2sFWEm2acSy3jb3SnKJxLmULldSnzQnVu7Cnnx0zeKfzY7478+O9duy1DC2ieoqyyhARrxt+yEGmH2106/2fNtgCSqm/88bPKOIKjQoycMDeuWGVYHb/3fuwc6+OPXUMbVzbm4XbSSRnfeN0dnJET2RSwjolZqyyztai2Id6t32edXcbt92TjgxwRtlYPdEOoOibmbd674/fxtZ6Z9aN//q14rRhGHRNmSi0DZWwZWSVN84w4VqGKkgqMAmVRSGlGJ4aKYiKMFYY9o9uG1LWFHbWZQpcSqLXSARV6ERzDtX3nnSokx8dKzpM5Vm0ZD6bUyW5sMZJU6c6tcqUrqspvfq7yt37xs4zlMCvLFcTAsBcV3x8GZ3HsephzY5eV9zy6wzt2BnbqyJyEaaYwkHKP2pItSU26VicZdNLhInQ+kuiwVBEKiUwdBekyJgPJMzWNk09mLCRBgs4LY2nnUJpYof2I1xkAhUKfYXxuRt1VXPcZckcqguhA9Z5/8DnliecqWgfqA8i4ulvOmn3dj21917tfT1Fl6c6+w351ClAcqtHGIG2VEziUUklJkSRrgWvtxQuYt4V+0knUomVXrQNyZoiB9opNry+D0ffaAlTTPOYwBQcmnz5N84+3gKEpMAXExYzBYKiOm/Pp565xc39x3/f1XjhrtgWvnF8vsvKbmui0ElmTzHjXo5f4xjcUclHQgrkgohhCby14XK2gScCMJHN6HbHa/HsvC8a8jVIQbwk8nc4pVqgI5gMp9VQ3Oq0cWCJrRwEWI/zsx29x/WCB+wiA2WHw8k6ZWC8mUt2J4+c69WLWOn3tmDO6LofgqJNpAm853/PvfvPrsWKMPoI7y+IYQq3OWCrncs8XXRIuz53tOcgfVGbnd9h558j2jtGNRpop0vc8+2mog3BwY0GaKTtvLIyDM+wbi2Xh6l7mc08Vrg7O4AoqjLWgJDAnF5rjnVsqscI6M+ZgNLwqJs7gTkIn0c6ZIRy4s7BKdQUzirQM5uLClggijrlTNbE8MCQZZFAmxd+dcRLSxCEdhr0ZrPJ3f+fuRIsYmF4+Tchqt01xXIT5VsdjO2l6rmVYcUzsSrDOnlqXFU4px+LehC2R9d+ArjRdEdJ0vmZjh7TsrzYgqrdsrDZJ+npRmNeTZ1sE/sLH707ofBCcNft6NcSs1+8k/pOvvcyygnmiSsETJJxh6Wxvg5OotdmUquODspMdUcAgJadax95gzPspkxNnS4SxOKlz+uxkBDsQ+tm0yFRnaYK6sS3KQoylwjlVTCqPa89zxVgYvK3veeoaXJnDX/jNG/zDp/ePTlS++scPBY2NEjE4LCW7m8XlWbMt2CgzXAkwGwLPihctE7zTfdsQwVaPTwi2HbISvdZBHNYClKx+ccL7r04svnqDNj764Ze/FurWCe0bwtx6MGsh8EMfgI1zbL7fMftaBRhWprX6zJtZaSv/4khZ5XQNtiHgvdbFrB/+7jdSgVraAq3iUDLmhteutXQYjFIL1oOSERdSEtSFYWlYgmRtBpr3ylgyN67tMz+f6Ga5RX+L4lJb+Y+0EkJ1yOnwO89JUTFqbYvJpEaShFZFtxSTJdSOgxeWdOc6+pliGCqGqdBhpJRZkPiPf+ozfPaFJY4dzVTEqa9QFs1ZHLt2dnZ8f3//gZ2v+T6ZKzvw9Y/AXDusFGadMEepXUVKE7pIhpYmOM1rZlBHvZBTay8ilhl9oM89QmUcDOaKFkM04X0TwEyNvbFH5wvmlvAygzxSteI3O9KOM3pGtVCAPHbYniKXR/Bmn8sK1Qu5y8yTsr+AX/pMx0ev3pyGq2mMvM9MtRfjrNnXvfpd3/me1/NChQNrGVkFp7i3jKtmYNNc4VgBzFlNXTI53Dr1/XBadpW0VKpp/mmPHVrQWQVQ3BzM1hlapThJpznJpnMKVBNUfT3fNaHM8ek9oGUniziiwmJoecbVjYrw4U/UOtTsAAAgAElEQVQ+SbWHY0N34qzZFjw4v/7OQs5qvdfsbuZKVWNrd5d/8c27PNaPiEGnM8yMoStkhL4OLHJqWc50mI2Iakuq8cKWg3NAlR18aQydkV1xNVS6lpU1zshJyPmAhfVAQk3A2zpCuiVeO8QyDvzG1cSv//5zeB1YylR9tPq7gMnnWi9up6f8jqLXSwlep1rMSqJ+3EG/Eztz5Xv/yFuQ6vjSyH2hE6HodEO14rUyFGc7Zb7konB5V0h7RrqpXPlqZceNmx8b2X3kUXbfpkgHixeMxfM3sNFxU+ZvLMx2Ewe3CrdujoyeuP6s8ZkD44WDwkFVatXmwFVnHBNbyUidoSVRloIWY0nLXFgWNsrKhCyOo9Ta0tsp0v5FcYeFCGNpimrZ+KIFKNWoNSNuzPrDheDSnTr15VKUQlNUqxk/9eGDu/ouYmB6eWx1ujZdQbh8ac65NK3JpyXXaj3WnmkiFiJTttRq4TR9j5OI6TR7AacTXS/sVASpDrmVXoj4NGC0uv11xoEI/TS+VG8ZWVWgm96znb8p+qLCz37s7ktR74ezZl8P07a+6rEZf/rLd7l5kLi843htmZqjtfK+nKHrjHHq0VeqI503mXwqWXWbJhUTuux006peJnFURRnF1zYyV2esQsqVrEpOjlenHzPeOc6I+rR4yKBm7ItzOQsDynlxDqqycOdi7piLUReZvcF50ip/+lefP2myOpI9tBIqNsvJXqtilqoefqgNIWuz3PCkssC1RrUhVq3Fq41j19mkx88Ba2GxE+Vrv/B1vP1Sz865hOLMxXFNVBNyqmRJiChdbmUaqpWd3Tl7eyN7NwfMlOTGKEaHsjSnc8VSWzyMg/PBT73Ah5/Z5/mDcngDTvALNq/5xAXgplN17KnjVnTb69cBA27LWnsti1l/+8++GS3OaC17wQAvQvFWtuxTQxcRpZgzFKGOQjWn80KaC46SNePWypbFFKFiKtieoD6yfb6j2iQiaqVPCRUj4WjKJJ0yIRTU6iqYDaWNI9u7M8Z6gHvLmji45mztdpDBpQKtp01OgEwLwSLMzkG/K/zEL9/kf/3HV5FjnY1codaH11vrLI5dD3JuTCnxDW+Y81g/4BU0CZ1UOs1I6shSUBtwnOwyiaZt6d+LkluKH1oqqpV+DmNp5YNampdWB6f04DMnq0CpiGwz2AJPTi8dJi3Tr7ghNVHFKElRNfQm+N6Mbtcp48hyOce2HCkDdZhTqyHJ6VLGE7gv+cjeNv/gqeuM44uLpvcrdJ01+7pX2/rn3vE4+9b+nlugoi3OV76HTwkULeY3+UnTus1YBaxbDy1BWta4twz4lIXcSXtMG8O63AI6LduKVqeo4CqUwUmZpgO4cLgMXgVlWu8uWwVymDJfVVq5hbQMMKP11qrT2Fwxqjm/97nnubV4+K1Ezpptwe32dTcBwxfLWDpk5Z+DY2SU+e4W3/7Wx7iUD5BUSaXHc2miZhUQo+iIonQGI7R+WKkj2UDKTq5KMUFSZrSxZQQeZHxWW2AbY9Z5e3F2xDqKjFRvon0W8JSoo2D9gFjf+vulSs2FrgiLTvn1z+zym09eo463pl7emz7Vi5vB5r05KRvrTJQZrksp7sBKEf/6d1/mW79ku5XyuTFUbc3Wi6DZWnoola46jCMXM7x5DjtZ6RNceJPSD5XxqTlXvnKXK++Efp6xDnxp/ME/us54y5hf6Zl3A/NHhGv7hVvPVJZu3NqH33tu5JlbyoAgvhp8FJHUJtlqSK1ITuDKuIBhNJYyIgjJoVZItLR8cRisNVVOY4t2Zofl9P0lYM/qKnYMNNHeDBbFmQt0XctUq15wEpnWWHA0Qb1SPLGoxs/+7ktn4LwWBqYHRRahm+qWETh3bsalvjnRq1LZzbcWWm8rpr5YiVXNc8tYEFpUJosyupGmrKzESuc6TGde/cEIUyniemXLlFLazm+TaFFXmWHeysPSJIz5tMIt5vxPr0CG1lmzrwdpW1/xaM/3fPW5qdQlUa05K6O1cptEc6JxZRycrZnSTT0Xlg5CJXVNDE9JEKtUT6jCOBgpJ6CSrKXD55V4JK1lCDg9zU+qamQRevF1ZkRZKtJXEGdbM0kLdRpbHkvCLRd2BZYmLVsrGeclM8/w+88kLl2Af/YXn2csdSOrZqXOtAsxb6W4dkykea2KWUnUj2QRbd6XOyk1axHwWEP9jfNs4tN4lRw6cb76XY/wle+8gJUlMMPrgr5rmTfNeTaSQdEmUKlCqpnUGV3f2rXPdjpw49qNAgbD6HQowypn2Z1qRkpKr7C3hJ25UF0mWxcORuPTzx7wcx96tvUVOSbMcfhw/fEPs60OAwjHLO3wdVMQaP2cO6J6tERz49yvZTHrh/7MWxirgFeqKWaF6h1WC0jXRKziuNXmm4mSJIF7K60ZE4wDqRekS4h2QCWlDhnB08i4BxlnttsWhL0p2jlmFUnTAsAdMSd3GfMm8LtVVHLr/5ccKwVHSCmx/0JhfhkgI9rGxFV3yaQ9mmqz4ZSpAlvbjs6Ejz2d+Ks/+QTuGxt+r42htYJ4kJzFsetBzI2Ccm6mfOsberIWcgarhrrjNTPfLlSHvgKpjXmdg4nRISBtnus6watSqrDVF0QUTyt5omXQyFJbhUOXMHXUhDyHpRckw2wE66yJGQajTVk1CPVahkWmnne2pWMxK2geWNhIJx3mBU9CVsdG8JzADbHEUub84scGPvrc8m7u6T2JWmfNvu7Ftr7+HY8zTOK3+yQCTdlV0AT6VWVD41CkaD57yxDfbIJ9ZE6pTsotw30Vwe7a5Ipr82uKCbkCGUZzfATtZfLDfBLPZP3uVqDoqo2IHJmrVk3lV9Ug7i14UI1JjBeKG0MxfudTD69h/FmzLWhBROCIUHVf58sJH+uU0WJkUUpOfM2jF/i6R3qEkQNNdKliS4OtQk+HefOJ0IJWJ2uhyjZSB8iK1haQ6b1j1AETIUmHj5kyLpjnnqq1ld1LwbQw845aF5jOUVomNOqM2VGfGrN5giz4mLG8T5fAKGg6h9bCT35wwedu3KJOSRaHQ9LLu08nZXCdajEra/IXu453PLrNn/uGy6glOqkcDBW1rnmudUS7xGCVwStpqRSpbAFXXHnLmxLzW0bunX5Wkf1tXv9PZR55vEevKNplrIAs4cYfCLeu7zPbLaQDR/sFe2NhsVdYHmQ+d73wqacr10cYLa13nmi7zymdKuLKcmF0ubLqdrQsyv71gqtAnkQNFxZmLZMKoeo08NU2MC1qa3aKwAKbFFCn0n4nnlGXFu3pK50oSdruGm7O0pSsrfmqWkun/XsfCTHrQbLVpTa9qPLGK7PWrwrWomOaMqUAsrQSU/UmWIk3kapdX1vIJ1kJVG2KTFPacpIphdmcpNOKdJXaOf1ftPVDahO1M0urHQ6nKJNO72eAtD5KguMq63I0M+cXPnmL8hArK86afd2vbSWFC13Pf/a+C/QCy1HRXBhLEwVa34TVDnKAKWaGIczSoeM1WEEk47RdTnsVRjfMlF6Nsbbo8WqDAUVaj7YqpNw+glVAjD4pFUel9aPJk2tkLlgRJFUu7Rh9zuzvOSKVS6pcK3ApCdeqYKlwISW2SOyq8EJNHDwvvPVR4Yt++qkTHfLVjobHH7s3x+ylGsGfNduCo2LWib2wVs4Ex47Z8LJPbMY5HXOhU77lK97E4xc7kg6Y9FAdk6nZ5ySEq7UMvSptrhOp5OkcZqDVSXNl3ivatTIfqjIsjKFaG2Om63A33NrOUFkLQiZN/UGKK/MslFIQEubO1qx9rUtXPv70wM/95pPTZ5xqZg8/2G1C1Oq+HG9Af6SJ/PS6VUnrhoa65rUuZv1Xf+rNLaOqtgbvVcBqW9RbyhQbpoDe1CdGW1aB2MbizwQblDKOzHYU7UBromanL0pRoe4587mReiGpIiOMPpBzE+llFaQplSSCjY6kRKdNwN8vIzm3a3QTyl5lfjGDNLurTOIDQsqG16bUZ1qma1JFe0NmmSzCz//GTd7/a0+uvfXjlawPaifEszh23e/cKCJ82ZVtvuLyArOMibMNIEquincLRFLbyVugN5361RZ2cmrChSdm/TBVKis5Ox0VEpRpbumka4EgdW7uK/05R8Rahpc1AcLE6LMwprYjdLbEfnLkhuLXergEaT4yzka6etiTr1SlVoeUSFKaAZmSDZZa6SXhi0xaVH7q6jZPPD0gtgBuL6O+H86afd2Lbf3htz/O6Kvd4SffXGRq4A4wBYVZhZbbTNDmkVWT9vbbTXGp+fmyzuptWZ+AtgDktERgtbOhO0gxLCtWnVKc3K/WkS0jzM3aPJxXzebbDom2dgRl3bJyfZU6fSZfBciVWozBnGE0nl8MPPnM8/dx10/mrNkW3FnMupvyuRN7SUlb8xsO2vGOC7t82zt2mYtT5YBOEgMDkhO2aNViNbVKiuJLRDv6Im3H31RJS8G7Ea9pythTBgZmqSfLEqk72MGSsjVSPZGkR9Ky9QP0Js4aNgXzDPdWtg8dognzofnf4lQSSRJVBkQd00yyxNVymZ/6wNMcHNwEt8ke784U7pTNdtK64FSJWZvbj69Y7eD2ze99lG/7snMsvUA1lJFSpA0CDmYFM4XsUI2yD3UwLm0l3nBe2a2V3dREIhbGF//z21x8dIv+vCLbjkhH20oQWM5Z3FrC3ki5sWQ8WLI3LlgunMWQ+Mhnlzx1TVlUx6yjuK8jM1kU89J2pBsyuW+LTvGMS6WMiWFRKaW01OdsVBdGkzbA1pYJkQQKzqK2AS033Z3q0hq9u0+7A6WWylpbg0tNSvVCEkWsqb+gLK3QiTK68/eeCDHrQbE97VzYzToeO7fZ5H3KyhKmzL22Ek1Ci+4A0P54uynDarV7ySqa0qLG2lI/jXXWVdJptxSmBaROX7M04ctp4ggOnUgTSteL20MHSwU6WgZZmSJBbe5s7tPPffzhlRyeNft6ubaVRI88VhH+xh+5TJfaQJ61TXzjNMZJ2/IGWaV0Wm7bOYsznyLPo01ZdtVI+dDBglaS2DYWcIq1KOHKTgEokLODgVShz832qtcWeczTGCS+jhRqMq5cgDw6NxdwXo3qiWJwTuA5acLqpSSIKucFCsryxpyLF0d+7cnCd/+fL3B8V6fDckOOrhjbfX7J/jVnzbZgowR/YrNX1GYm0m3I7ZlZSAKMx3c63veeN3Fpt9Kl5gyJTiUV2nbdNRUGG0lGyw2VSq3NxgzotZVQOK28eblvdFuJ3DUnaSyFJAkXGNoWu62XSDUyQpLE2NSOaScoR7Ut/JIIas7oh1uezxJol9bjpRrc2E/8rX/4SYpvbni/0XtrfZM2fuaosPVS6CpAgL9mxaw/8bWX+EPv3MWqUGmiNqNTJTGaTb2tnGo6xVkckbaDtE3b1KfUFl8JMEvc2jMSI1tbSu671lheoEtzDm4MnNtJ5C0opTCWSnZaLyMvTeQyR0dDpEcTdD0sbIm03FKESrWE7DvdOWGUVhIkCmbSerhJwclIar2yNAuzvsfLiObWo6tg5K05v/rBW/z4L31m4660UkmdHHhzu+tdV0/iLI5d9+p3CdAl4dvfdZkLtj8FODLLus88dSiliQQ5I74kS8FQOldyylQbyQ7kSmZGlyvFDHVDE/S9UKpQxemm9iRiCZFK2RP0QvOdxeEg03z4MiCp+VUjoF1Ghop/JmNv7rC0hKVQpJBnmY7M0hfrMUdHwZIjbQsWbBjJKuQR7GCXYWufPC987OASP/PbL7Aw5z7M6TbOmn29XNt6z2MXOb89b1lL0npW1UloX/W9Wu1EKBvzxSpba/VmKlNPK19VNTBVTbQjyuitPUMWSJBXBYuq1NFJ3bT7vDsygvTCMBriQu4moW1aA4jJ1CvLWyB8So4o1t5PRNfXsH6decvKn9YObY3qjMUYzSkVntwbeeHqcw/gW5hu0xmzLTgUs07ipZqfy9SeAW8ik029GEUVp+fPfPkjXNElZCUzgCcMx5JDMXLJHGwvmZGougSfg4DakqQ9ohVfdFgqpNr6RS5TJksLrIgpqk69LnBeST4waNeyCnWBFW3JNyilKqLeSvC14nWL7BXLrV93M+uKpDz5QYagiB5gluiY8cGrW/zCE0/SWaVqs8FVWsaL3cPVvTpTDeDXmVlTY70E/OAfeydbDDy/qGRPpBm4tdKEVZp4KTCbVeoIYwGk9VBIFbb34KLDW94N/U1ldybsvAMefTxx8cqcfLE2CT0rWMU7kMGwF/YZriqL552hdxbLwkExnnxO+P8+MZIkM4phVcEVq4a50iVQEkOp693DZp2TUmrZNVPz0r0DRwdlLCMFY2GKu5DE6ExRhQFjrzikzIEbWqdGpNPerO5QZDVAJao7s84x0fX2mS5KMmv9AUzYd9gr8Isfe3FB6ywOTA9SzOpVSKlNKxcvztnJ7fk0iVarXClZiVSsUpdXO5ysygtbc/ZVzftKjFqJTWkSm1bjYtJWLujIJD45s27audLbrnRm06S8jvAwZU/I4cK36RnrxvDmU3NmXU2IPqn1wk8/hD5aZ82+7mRbIm1b+cNd2drYth60p+/ie77qAu99vKdai6p1ehiTXY5NIhVp5YIUx5Nho9D3wmq6TbQeDniLELbqHkHE8DptICBNhKjTeJ+kRbETq8bIipjR0RacDqRszcFLzYFa7YaZTei6wm4SqhpDaRPqvGRmwAsKIs4uglvicg+7bU8VPns1ce5yZSjCN/7PzxzfEK/dmiP36VCIfa1mZm0KU5ufUDkUto7cmulvWyeJ/W1XZrzvPY8zyzbtbCpoVopV5imhUqmljRniLUjUxiptWVRNsprafUzbh0+ZBj1KFYd9R3aElDJLKxwMxm6nPP74Nksr5G7G1mzJrD/H+UvOQYGnf+8GiwNn72Zl/2Ckm2U6MZZTf62srdH3Ksum76VlSWDspETVxLkLiRduGNu9MYyZ//TnPzplXBzekHWPrY37dJKlHOl/wZHkVwSor1Ex67/4199E8YxbRUxbdLi00ubWmD1TvVKbLw5oiy1qIndOdkdzZjmM6NgyofqZIWSsKnXf6WYV7RVVpSsGKbUFoRqYt63utQmWxVqjbrtV0As9Lo6aUWUa91xQFWot1JsJ3Wm/S1nb8+5TNEiwobZsLVVy7nAMpZKyYCRmcyElI6W24Lyx6PiL/90ncMqLjkYvN2PrLI5dL9fvauXliS+7MuPrHitkSQxmzDSBLCnmZMt0XUKXztA52MhOFopD7hWKIabTjuBOBqQq0hsZQ+qcbmdsfYVome5SmzmwBfK0wkUnZ2eQRFUwL+tsPk2tDUhZJvpnevxNS0ovLA+s9UsyR1DGATzXtjtwMVyag7WdMgd5JC0y/UGmXoRlGaadgaVlVueOj1+f8z9+YA/1youHcO5474+OgWfMvl6ubf3Tb328ZZO6tzYtvupJO811k7+Rpu3EfRr8ncO4Wi2txFRo51BauwbRVTAIrLa1KdJ627ZdCWF7K087JDL1um1RxTJWXKb+XFMgs21G39bB0770rFxIWYdtpK0/V499CoaLrtfHXqWVH07rZlQote0OXQye3Cvs3bjJweL+Nmk4a7YFJ9vXnfo9nfScTOv0VRsZne3wLW/Z4Z3nE4lKzpVaEqkrUCFLoqaCeGY5FrRPuCwhKT2CJ8PHjNJjskBKolghz4QkI1aUlFsgR63HdaRcL/isQ/uMywLXcaru6BFZMNeeA5+CU67o2KHdiHpmpOJaEBc62riMtL6RoitBtwMfqH4OHRb8X89m/p9PP8NY/bYM5pfK2Doubh373ekRs5Kor0ofVJwf+La3YgK7s9ZgeMQxr4zm4InqrZSm2ghTr4bikNzJOPvPjpzPPW97Mzx+xZhdTWhXufB25XWPKzvnZ8znhbw1KQUKuLB4bsBGZXGtQi8cjJWDAk+9MPDEJ5yrB8pYlMEMmZRNpy0YZ11ruqyqeIVhVJI4WZ2UlFoNkiBasdIhB0atwsILpQpmQp5KgCotkjSSGCaXaZS2kCjWRKpbo1OqQAfj2ISKrmsL0+ptF5eMMVbnXFaGWllI4v0ffnGB4rUyMN0r212Toh573ZyMrSP3UwCl9V6YJpOVoAHTDiS0A7NPopX6YRRoEqCEVc+t1X+tSaQAtQBT9l7b0aTVXq+EK9n4W14JVklkY/JuE3SahLU0KWVOy+BJ6lSYJsbW6+T9D1jQOmv2tbKtVf8E4IiwsNmsetWb6BDlJ/+l17HvRjWhmtFPqeKKMI6OJW3lxAYuRimAtkb+q0al4q2RbaWVCopYc+5XJaSqTaSglR2KGCqtYZ9O4qhPQkbyyS7cSVrJadVvrZXIJq10SdAFzHtwU2pqu7DuVpDs7DlkYEsc8cz5BDkLVoVnb2ZmKuxeqPzqJxJ/+Teevj21eCUiTOLqqszutSxmHbEppkl/lYG0cb+AKSsLvvvr30nOlbEouZvEztVGESKIGd55C6Ig1NrK1c3ajm/FbVWVTNcnhlrbDl8FZl2bY1bz3v5NSOeE2XbHreuGpko3Kzz6usyFR7bpZ0LeykhVZhcTyxsjzz05cv2ZPYZl4sbVAVWhUEESeeoZ6Kqor7JHW2Nb7RKqbX7d3oHiPbO+srvjXL2WQRK/8oHr/MrvPnV7ZpYcu49Hb9tadG6D+qZHJlSrZ8q+7mZe/Pp3neNbv+IyhSl7t0JKkFwZrPk7pRidGnjioFRm0jN4Rft2T0WVTgzVTM6JYQRZjnQV6Jw876Aqi4WRrbB1PtMPylYytOuwbRjGSpaCl9YzywTqNaOca4tPRDEfUe9wn4JDozEcQHeuRZxcW7PmZt8rgVgAWzvRJm3erLXSdz0ihqkz7xJ5TgsOphlXD+b8+b/9W9N5QW5THJp13a2odRbHrpfjd21vXeJgOOAb3iz8E/2AbQOjUSy1Bu5UxCuWeqo4sxHoK4PATFq2naU2TqSmf5JVUGnl8KkzkiW8juSt5rGt/ORkhqVWvSCDIqlrYtisUt0w63A1XKHThF8H9jpmj8BBuoV4QjQxurOtF7hVr2GlkkdppWTWNjnICLpnzEWpo3LwiMHgTSCWSkVAjIRSFX7907v80qdvInXVfPze3dizZl8vx7be+4YrbPW5+Q/e/OEj4/6qJ9XkyMsq3cqbIGHV1v5b7mSdeSOeWjB5nSklaCdTdn371wqUoQULEWdnN089btv8y+TnubQgEV3Lghdblbwf+uiryPYqiNn6ZLXrNuMwQi3Nd59WIYc781rr+eU4g8FYW5ubTz2zj9vAwcG9iVpnzbag2ddJwspL9c5aiVrrXD4XLp3f4TveeoX51i2qt/qbTpaoblEY6VRItaOqkXKhjqmVGbKgz3Oqgg5Oy5AaGMsOQoHakfp9su1CcpSRKi0A7bXHbwh1e0HqJzuQKTheFxhKlswwbaZh66Kg1rN0YEH1nqTWei5Ly8hiTHR9RzFwGdpOwl5hmZnNK59evo6/81ufYTkOLQhtx5yuY/fppOfOhJj13ree4zu+9jLZp921aiVPf5SlVMr/z967xti2ZfddvzHmnGutvXfVed33vd3tbnfbjpu8RCBxEkICAhkBIiYBgXmEOBgEKCLJN76gSBEgUBTBB76AEHIgiUwCihIkUIgEEgoBk4eC5MR27E7sdtv9uO9zqmrvteacY/BhzF117u17u9uOHbfP9ZTurXPq7KratdZcc475H/8HYGYkZUSqgnRjtUiSUODtLzn7JZGXzisTfPoFmN+E/ceFLMaD14Td3pimxDQFRd5x+lHohNlofXvGdo3HrfG5L5z4/BcL1zVod7UprTslKWIaqYQe3RgDzDopJ6wGTV0kaJ6SQlrh7tS1YRWkCM2jky090Xrg7G7K7J2KYKM71bqjWakm0I2tBUKKOTcOXqNrlHTQ3UVIJMwcJ7T6HeEH/9b117wXz+rC9AvxffY5IUl59dF0y5hSxgLnfsekGhLAsXSQx4H8bC6ZxmHznJKS9CwNOwO6sfDo8KTZz8K6WcgjJKSEOiJ8Jx2VtMst0yrLmRl0XiB4b5fARyfJI96XwWS43eSVsQjF1/3g3/6FA7SetfmVNLlz9nYa10zu5El3Xitf/Wt//6+95Ld/YkcVY+2Me2DhbeZCMcE0QJzWQYtxPGZyiYJXNbyK0I6i2JmRZSEFpGskg+md/9ppG2mtex9Al5BTAJze42ftNJIQFxFMDU8tiqEWZNaH9zuyFupVyBlVjJICXF0R1CMHKAE7TWRxSEZvBVF4483Myw/hcgff/qdev2MXPTXOvk8y2G3KR1NmqKr+9Nw61wXnEuFpKaFI+Kh973d9C/WJcf9hgFGehOwTYQAKReHUerA/k5Elg0VqYe8dl/A7UjGyCU1BtJEsk1xZiXS5pLBkYbrInN6pbFnHATKYfCbGwwcLaVe5d69QW0U18eDFhWUSPv+5I/2kfOmLR+raUFEysc8WJYy+05CupVjzNquUvVJruBMu+0RdoUzOwwvlaoOtJpZsWIW//hPX/Nm/+Qa8D1S49e+Sry617sqvW0Q1upIfQWbWf/ovfIIqIZEx4kCkkshyZjYIG05vTs6F3CLyXrMjOZGkBxjex4GOqEvEO0mVzWDZPIBvIBVYauGFl5XUJ/J2Yv/xXTCjxFhb5vM/+Q48aWyHmSadhkSDszjJ4rDYrbM9dnbP3UNlC5S/QVfHm92ZxfdgupoZvYePl8zhAYYRTJykpDS8BVWYciInKDvh+//zz3G12YcAWtxOoa8Haj2La9c3nAgGiGb++e+45FvLFadjx2eYEepoA+4EJklYMlaDvSnXupI8UUrCxv1ygZIBEuJCy5UHJEidnqIZfDGA+D4OT1NK1N7YLFG647NQa9RalhtNiOYPQn+9k62QX4s10HrBveLuNIHeC4t0jtYprhw3J6eM94Cj1JXlRqgPGzUNm4ctkaXzRML1VC2a6fPJ+JtPXuDP/MhbeJnmBKoAACAASURBVLUP3Ce/0fGsza+fS03/m7/1ZSCsWkSCPXUbFCdy50MrYekQdXB89AZgaNZQZEg09tzD8Ta5owmyDrnW2C7OjW31qMndYVsNRdkflGnSsbcZLkKrznbsMCmegtXVGe/RCbuRM2X+tn0+3mN30qS0ToSgpdGPGWuPCO8BK0ScdRjFdwvVz+e+dI21ACDW9YTZN84sfdbmFrx3fj0thftanll3IwqGjJD2F/z7v+pAvUlMlw3kBD3julHKitmCkqhqLLJhSejrPbysCEZJC6KN5gCd5AumNxG8YhlNjiZD+0JRZz3L/ptTjw29mFC3UfclqnUKhS5Od2XyDTc4qZC7Qla6bVh3PDldOqlfItJxOaEW1iE2gmBUo0mgW2WbAd8hfeKP/ZU30bay3fYDvxq4evravv9av++1v3zArN/5m1723/itO5LHAWyyRrMWD+CgAa8eRfY8aOyVTqOjTSlFePedynpKvPgq9Gp4N6YNXsrOo9eM+w+Fi1LQq8rFi5kpQ148wCY5U9Q71yfjy19y3vxy4kvHWN/W7vSuVAIASKnQzciuIS/TxrbpACEAM3qLTVU0PG567cG6csFWmCenuXBipFdoCo1+c9rWgwUxJB03zjga9vDZ6jA7geBL4rRF2uFVjQ5jKkLrfYArPRZegwnhv/uxX2Fm/XzGvkRYwMv3860nlnJOtJQR1Rsbx9lHQ4eX1Z3ccDCt5Gkt/hnJ5/Z7FgmpV85nM8jYIX2wqx4uiePmNDOWrLfphWHSzd3PY9DsRweH8TPiBo/Dg4NJvP8zi+xsAH+OCK7+C8fQetbml6r6Wb75NMNjNMgC2PqgEzPwp37ni2zubC0K3Zum4MGGcrOQ3BB+Hkjn5A6WcAnQyz1o8d47U1EYTAd3I5FuWRTne69y56+Fh/m/+ziwacJbR9TJFsbbU2oUT/SRIqWuqHSSQlEhdyEVZz05WpWUGjopsxn78YOTCI+tc5GUKzc+nhe+5J3tzYWXXmhoVb79z34AO+upcf63jywzC96TRPi0eflZUvwv/cZP8mDp3Jw665o5HCBreKhJErwXulTAKSkScvTMLLXhuWhOIaSoWcea4sEsUA/KivUWRuCeyGrsF+UT33HJT/7Ik+jWqdKtcjgsvP3kiJiQsjLNSsoG1Sl7RTPUG6NXY6vgm98C+jIWw1SEfYZTN7In1s1IpWC9w5RwVlIqpJQi0ZdKPWXcGrs5403RLZ4bQ3jzqvNf/99feC/9/X3g4NlfkPe8JJ7ojxqY9ZkX9/xrv+WF8HuxkK106SQpdDeSKJpynLRORs9EwpKGtMY9usRqwbArJaHEyUxNUW20TdAGxTfmknnpULioM3pckQbTVKGEjUNmpluHi0J6rnDMyk995THSlK22W38YNOMScrOLi8JpPZJToXWjmePewEuwKoDaezQJzZlKMDe6d0pRGj7YrCH1D2aGs0Nhdsqs5Jz503/pLf78D9350Azl/i2z8f3j/eDWs7h2faN1VymFP/hZxduOvr8imeInSFPGbQvFQfdYzyxBqiDBtpMuQCVnpYpjzSge883VmFJI4IsIrgFeL0k5rc7+ENL9lKOxUz1RjoYclJoibW5KIeXSBOtbQn1iLC+DTIAUxBLdNhBj8/DO7VvDswwwRPDukIJ5XV6fqLuV+YGwbk7KBZqg3al9xvUY8h4K7onqRqHxP/xE4Udf//pphx82nrX59XOp6X/Lp17mTLaKNT5q3lYD1AxDW8CDLOFD5icaoFO3MHwPX607EGnY5t42PnQ0rFOKZGBj2MuM8CU3oxscr+MsuOwS+72iEvXWcTX05OisSIJVwpP5bm+yIQm7vQhY8/F8hJTVJWq+rQ30apwtfJw9z9JK68LWe6x14pgF2PeTr5/YjlexaJlQ20br7Wte32dtbsFXM7Peb1D+fsmhnFkMjLpMF/71f/gez+fG8vaOnqKOSveEyoamHliCzHRfSe0CzR0cymmjquDLSioLQTYAEcX8BN3oN0aaZsRqgEnrjKRIFm7ZqLkyrRNFnyD3Zo5uZC8kV0SNJAlLlbolFKVJo0lHm3PKR4rNgEZtaIJkp5uAZ7LWCBdT5VQrqe1IFfphpRpkmSiS+CtvXfAXfvTvBvPVzifOu/FBrLdf9gbw/9m//EmXLtTe2Cus1rHuFLtjm4gGgDXhrJ1gs3gkbr31ZmPbCg+eyxSpmBpyHV4yPXX2O2fJzr1d59AS5WHncHD2c5Qbp9548x24PmbWLdHcqV1YHxs5Z1I2rk1ZTShD3mAdDrvwqDJ3bNVbM1QRiSJNjDDxCgmhQaSBbY7NjkkYwJsFGCUq2Fh8bDUmVzZ3rhscrdN7yIXchLmEP4V1I0dUBk+asbWQak5JYpEEtrpFNzQLf/7vXPFk+5oHx2dyYfp7+fp9SeQph9F70CHuZIW3e0tQS9O4fzJAq+TxEKdRTKXxb8FnDvZJEhmfl1td/BnMmrNwXB1R6D0Azl0J+VhOwWAwP8sJ/bYDU8a7ynJmCMWP64N9FeBLoC1nY/gpDe8lgvXlcJv+Yi78L3/3isfb31vU4bM2v54GG56WMQm3LYn4+/mAPA7LivAD3/MiWw/G3epOqwZN2C2wVQtvGRGSKTkZ1yZBMNEAuZOApGBaTTqMRS3mypkCn3KsF2fAVIWQNYtgEqmWJCjq1BaGpZlOG55bCUG9c57sszslD2n1oTPNmfUYXjpWHe3Cy4uwWTQJSFDN2GuiOnwsz7zeG+tpopjwyiP4g//nFf/j57+Ol5+c5++Hz79nbW7Be9MM3z9chO/7rm9BrLMsGXHn8RWUXSRSioYXoyoUzRzrOpIIB3MzQTEJL5EBnt52HM1RNcRAVFnXSiqZ1jtL1gGYCq++dmB+qHz5p05cvV2xbKSSqbWHF2CYJ9GtjW517K9izsU9BRO2tSMk2tZQjcOCoCw6Cp4k9IBBhjF3Qlah6kbKOQ4RkzCrclOdSYzeM32rmMFjg+KCmFMl87/98Ov82BtXd93r943zp95/yT9qBvD/8e/6OM0TrimY5y6495DmyWDv9h7Sg+J0UWRRSGFzbfTBfBhGuOPgRau4TLh3pDv5iTN15fJi4lFW9PqK/UVhuSzUL1c0Kely4vBwod1ckxeha0cW4UoKP/X2Sru5oqVlyAY7h8sZGmxXne6NukVIy+kkqKzkHP6DnjLdDJ2U3hzVRO8R5NMlxcF3yG2nFJJ+zsDWbJRcyLNQkvFnf+gxf+7/eouWYn4/3cEIwdA4AD3F4jqDWs/i2vX15peg5Ay/79fveW7dqJJIyTA2fJuYppU8EANtwSItKH2FnuMaTgVMerAGk9CrIYtQ1oRM7TZ8AHdSAkZqV8kCm1N2EwqctoYnsCfOdD/YwB3BbUdWoz6uyFsz/ikhXG07KRXchK6R8pmSUetGrU5RjX22Q/IarLG3EymHTa/WmVqOIfMpGqbyGsyf3mJfPuVOL8KpC8sk/NH/x2n15+eh9azNr2+0pv/sSw95eJgHrjMawwPdcZxmAdp0v/O7zQU0jeAdCPXCaBinkXrobsjwERKDkgjixVNNbDPCvxRHJZj0DAP6as561cii7O8VUoqavh07u6y0WUbA2WB2yd164u63Sffex2UQkPAfwT0YtGfZpHv4BTa78wJT8QC0Rn2/9bDyAXh3Nb74xXdGTRsHinU9YR9Sez1rcwu+mpn1DX2NQ0oJzTN/4Fc/R/Yae8jlNckdOWZO3lkuIh88+Q5LDfFIbkY6TmFKHTsarIbmieSOW49GNkaTEnL7uZGXmdYbOnWKhHel2wLJyGqUq4Xeb/D7jjUnSXgRRs0nqJbw9NOV1hRSxuUIfaKnwCaUAtzgrbDk8MlqDPazDSP5q8Z0v3OqoMz06YbSd/z01QU/+MM/i9d6u26Zv5ftBnzVn58ev6zArP/kd33cu0Axw6qSc8WJhzsRqX4NH6bY4auRNAPG61/s9O48/3Kha2WPUN912hLx9VNmUGXCjDE1KPsOyZg149rpohxXEK9YKzQzcldKUdYT5BIa44aSNZhUpUjQSluibvHegKAee3ja1D7s+kSCYeNgtSMb5Bk6wsmF1SIyGhKFRipKr3Ew1Z54vDU0J7oZ3ZW+dqYUh9BanephR+pjgd7WOBDM6iRNNHV6X6OLap0/+WOnD70Xz/rC9HMd+5zIS+GlC72V7t1+3/P/RjM/cdf9EQng6cypE4kNJEgxZzZWABB5CPaXDM3Cm2gZaZiO3AIX3SNpLEu8VgiK9JQiAMGGvMs8PIuyREfJTGgeAKcThu+iTpzNwnS8uVAtgA/8Ll44kvMCKNs6fO7tjb/xxq90CM/jPaknt0DhOaUy7qvBrSz1LEn97s9c8i/+AzvUha1Fxy3uXxx6ugUlXVN0d6dirC3ALMlG7XHvzzYJScKDDVMkWcgSx3opcgeyW5PbA7yZ0sWYZwGPw5x7pwAiGZcGOBmjb6MywphTGOTuLoOZdbpxbEvMqXNBJnmkibkYnYRqMAQzyqOc2LqwqvDkyxMvveocsvOpP/HGB0txnmK9CR9BMEvVbxMMn5pf3/Fo5nf8mhcxi7APbc7pZCxLijmDQw6/A8kJMRteHRFL0B1Kcrw3kDyYogFob72hJPAOXcbBPgc44aDuzIR/yMc+u6cZfOknb7h+u6ElWDFmwRI2dcwD/JpyYd02kgr7aWLZO/MlvP4zG92UWoNBEc+LM0+Fw954cq1YblwsibJM5CxsV2sk/FZnPhjWZ27WxuUh0W6MvoZfpIly3DoqTkkF83gWEvC///hj/t/PvxsX+j0N7w/uEH7UwKw/8rs/GUnRhD1CGwckTZ3txilMcAg2QpHYu5wASStOyTPiG6KFee4RNtF7HCS7I7bRa2K+gd0u8dKDzGURlg6zKPUmUbJxuunsXrhgmVbS9RF2GdmM63dOIImr2nmnd27uZ67HvC6z0nqGUybdE9BGXYXWHbGOJKGuwvb2hk4VUhh8DSiFMpyY8zSxWQ+G8mqUnJEs5CyxLotTlkqeE2UnTHPi9/4Xf4djs6+SHfpTxcPT/+YCrbdnam7B159fB4V/+zdfcrmduLkxDvsUzWE1picLPLqBFimDRQrVWjCVPbHmRurOTkIG7S6DUS5I6WQBa4k8dcyFXdKR2JUot1H0aaxp43C/OrIUqjRmUawUTn2DtwS93sH9lX6/kWTGfCOljNdKV0dsobWQ7IgKVhtVA4woq1CezNzICX2owbzPQtsgpYnNj1AT/ZQQyVg2uoKcBNsa2oRNhDfSQ/74j30l5uOHrFEfNp61vfEbrel/86deGg1nubUEMRmhPAjVjF6jBpcUzRIVGffxrIYY9hx6tpUBE0VHrebOUGgwFDVwTlvSHCxkVEKurNB67OWtOX01skOZlPmQkNXDuqFkfAqv1OrBbGndqRaNzLNqQrvT0x3jSp7utBOswj5+Vyfe+1RCRdSasw7frDY8W7tFzf/l687br79zqzLA4yyCOaft+J5r/KzNLbir6z8McPmgIaNd8Yd+/WvkssHBkR5sKRFBmtPXhlbQi47nEh58kkCvKXYAqZi3IDysjbJc4umKZHu6KT0ZJhvJCliC3AO09EzCyCKsfUNKIjelp0S+rtT0BM17NDtJMr0JXRvdEimBWmGzDU0WElPP9IAREHV6FYocERYGAjO8wyNKw97K6KUxDFBwXVFfcHW+cnOf//av/+Stp7P517+eP5/wivyNvOgXe6wY9DgwJ+1x4NI4WEdEvJJdQDqaM8mU9Wbj6rGQl4mXHsEwROD0xNg/SqhZaJLpuMUNPx095H2bYl24SY2cxmFLBesZEJaS0QJuggk8PoZJmkgYKOesrKfOqSWS1AjbzRqUZ7fQ4NdOFWEBbAiZuxlqHprorPQgLlBE8c3RFD5g29E5bcYyZY69M0/hG9BQvBlX1vCcoijMgpgwd+cEiAklw7ELW3NKjnRF0WnouZ+5decXdeQl8+LF6MCME7XcLvED3JJzfojcbnA6wAyR+KzI3ZUPjf74Wnd2OjokFoeCAJyM+zvl8TEYMfss9BaJbrsklBz3V3BO1UmiZDT8SRgR6B6ysjwYPmGx5qhG4AByl4Jo5iwpNvSOs1kU/knO3agATL79wfT3BGY9y+OO0TEWbe6kp7eJhsTHf+PX7Ti1eHXRkDF3BzRMid2DJVe36BSuXUfcBMwSqalMRMUVWThMs3NzMqQLUyGYXiRMFNzGfdSQVVhE5whO7wVhpJRIxnpFBqVdMLyHlMhyRAw3Cco7q1OagCdKMvYJdmpcbwGMZDKrd2YPWn9W41rggRZUjNPOWDH2XvifvvsFvucvfJDccHQYf47F+7M0fMwoAWYVvv8f+QSmcBIPHxl3qnXSDGXqWA+Pn/PMwCzMXwlZPWqxh2JkciQFQiR41R6FfILkgiXluFZSquSSEAsWFyK01nj3S5U0JXqF/WFiveqwCFOJ97CZR0ALsNXKVDJI53DfuXgu8eYXgw2DRW1mHpHjKRFpdCp86jsm1uuJtRnbdeO1z1zyxS8466ljvdNPSk2d3g2rmeuToZ5oXqMhZE6e4iGMOPNYm3/7Z+7x6Uf3+MH/7wu3z6rDLVOVp5hb+hHcN93D+W7thrrgreNdqZKYd2kAlxVxYW0dwUAnzI1pEoQjRqLWIyoTJpWsSkohBzRTaOHnKZOwaSenTJKYpxf3wctE9yN6c8P6lRMldfrrjbSfmR/ep0+dSzaON1Dfdi6tc5w7vQtujeViYW0rmiFNjm1OtYR0QfPG4cXM6XphfffI7iKK8ewOOgrtHvVTHWwIWeLZ6F5Ji+CSaFpi/T4ZrQv/ze//DH/mL7/Jn/+hN98jaRUjDtLv4f7JB7Iun+WhgKnyfb9+Zm7XNGBqM5WKJCU1UNnoWzSHwxOrMpd4QnNviEGeNRiX3WnZ2TVHp8Q6krzTzuhHZdoZ1Y2dFrpXNA2GvVbqTaFMjXQNWqCV0VYuM5mGfblwujGWVwQmAd3RsjKpk0y4PmXUOppS5FuKM+XENlQU5RqWrXA1GemB3p5zvBFsU7nBejQX86ONY1/JTSkk1rljc4rgF4z7/Q3+1V/zkB/44TdHat6vjK81lnymGNzZeHQHbKhaWlTLyy7jHlJT20DKYPMNXMg9zoJR5w/lRbdbv6oAukLOr9EJBI/9t7aObdEk6m7kJRhacw5JqkyCb05qMG/ONKVQ8mydlON4Xj2xApvF+9+2ztbGHMowDwNvZygqBiVLJdjbagw2P8xL5nTqdCLETITb0BdNGlJKc148OPfnh3z+p9+5JWRIIHssyw7rxlaf3XPAe+WDHw68uHsw7lCyL/yDn94xPXyT1hekZlTDq1S0k/ICOczS/Ymg90B1g7LDfU/XCq2Dz2iF7krlhqnucAyXjlBuAVPv12i+h8uKSCPljtuBjEFKqIHYRt7P5CcH6k7AM+aVkha6JSYa1gWXSPDFM0kLnoxkHZWJ2k6IOpNPmBa6r4iHV25oTDQY0SlkqzKC+hphd/Lw8Jhve/4RP/76W18l0/yFHN8UzKw//D0f97U53p2SYDKLB6ffGbuLgBfh5p1GXw2fJu5ddDzBZVLa487JIO0beUqYOK0RHRpvtBNszXl0EKoPaVcKRpWFTotao3ODxcStzVkb9D7RWmU3RwpFI+J5a+9BK5T4fuFt5LdeOe4JdSOPrmXtoT/NJZgwNhLCEOV6q7go0p2TKSgjRtUpBSpKb4Z02GokT1GUTkwgs9CAR/qTUj0SecwD0Esa10K08z9/buWqfvB9fxZR9p8PMysL7PYzL92LDfFsaH0n+Yk/6AC0fGwOSUaXRiG73sr1lMF2GuwKHQ/zmQJ/Pizl8/fUOzZKHl/bDXYjVOAsGSxn1spgYMWmDEsZijYYrx+UMeJAh0fHRjym/C3QBlSgOUzqIYO9BfHgenX2Uyzi//2Pfm1p2AeNZ21+pZT8fPh17vyxAji4O6j48FZD4OXLiT/6TzxibR03C106AUqszSglQIjexsaQ4r4WcayHPDUNlEw0QC9nzLlkbDVEPkUUd2giTCkS7eqqkVo5JKkuw8i0CNsWTL5usS4W8eENaCQxsjiVkECoGIYxq7PXaD4cUqKLcWMgW6aok1MfcnDnQMaTcdDEPRJHTTzujV0uXJbMn/vxxh/4y1956uqeXWcGtf4WJvzg8azNLYiAATzYk9/7Wz/O4gnJnUkTxx6GxiXB6V3j8n5BpdK6oqnfMvNAEGkEPzlMabOGtwcW3mt5wPGohhffALJOm90mWiZCPrHQMC+xL2dndWevncOjHYec+emfueZj337Ja99WePKucPPmyvHdShXh0XOJn/2pIx//7AVlpzx5Hf72D7+NEHvkaTVyKpA66s6UlQeXBdPOqx+/4MnjFbfE1ZOKrcK2bkjJeHV8dBqdAG9Rp3liHnZyvXbEFdewDHAqORWuHgv7ufNf/qUv3PqyvX+eiQi9f3TSDP/w7/rWEREfck0o1GSIKuo9wneI9QIXdimxigVbxSPIJqlSYqGKv1sG3ahrxY4pvE0dDvczu9y5zMJ3vnKJvN24eDhTbGPez5hkTm8+4fRG5fLeJfOi5EU4Xgurr6wmVFG++PoNr799Rc8wpczDRwvXWvHLiH+dyhSG25o4XVXwjqN4NdY1vHJygtMTpZ8aLXVm6ZCN2maYE2WBdessk0dFkKGIgBiKM5VMmaCURJmd7/1jfxe3FtcgLsUtK+vW+86h2keAmSUj1CYpv/833GMv10xJ6R12zdCcWWVFzVlkYr3psO9M5+agCMmd1JSeO6KwEHtgV+PoIDnsRcQdS5HMVauSNqPMCU8dz8JFFjYDXBGd6KxMEiEqednRTo3TFxvppYWSobUjeGYjWMsTSuMd2pZpxUlbsHVEjbrGWWJue256pdxzcu+sAskg1nMBL7TWIAUwsinQJ0y2W/uIaoono5rTjkIRobPjj/9I5Ss34YH4jYxnbW/8Rmr63/Kpl6MukqiubVg5uINkCSuWfG6SBaOUFpI7Hc9rTqPhWw08LGYkCykH0ypCBEJGLRpNZe8W4ToI8xLz+5aaX53DFM1knTTkrh0WF/r1xv2LwuWiaIc8xfkBEVyEKnC1Gk+Aqxpy1HqWSirj3Hrn2esSdV5Sjd/dodsA3QTW2gnnzGBkCSG3dBeOfbC03PiJnz3S64nRVQxQ76mGz83p+pmaW/A+xQUfBmZFPTqhyLTw737XPebNkdShbIhPKBnzlVxKKBbEkbrR39phdp/MDWobzQvlsJJOE3b/RNpJJBPqjuKGm0HOmBeSOLVck24WZCTsYgWVBe0rMlLznEz3I+7OPL/I6a2foS9CSfMAZ4144UzrJ7RM9AquHUkZ54RIpbOj12sKM1Ug+ZHaY1U2N0wcf32G5094C783sxMmJRpHvmEKb28v8AN/7YvQ17vN70PGz4eZpV//Jb/4w8wi3SaH18BN76PLEbR0t46ocXrSqCfhwaOJV54zlhIpJ/3tRjO4eJDQkqjNIqK+E4BYTyQRZimc2jm5Jphc9MaShUOGOWemntCm1KZIB3FFUo2JLI5h5BFxCsqUBJFObR0BJhHmXEiitBYLA5oimSn4MnSLjaq3MN6rtUMHNeLmEyCXDO8rTCke7DDPiiSnM7yxPGPNhnY67vnWK+4dTULJxtoLdcRZ1y589ycvfulu9i+TMS8TL17mwbK666VyPiCeDdM9FoQzG0uG5jCNV59ZACkNWaHKbYJgvrXNintZxv58BswcJ8X5EnGYNf6sDDP5AWRl4ZbqXLuHtNYjaW5KgrjcHtHWFpJDkfHz5Szfje/bx/deBkPo7M01p2CFXMyR5qkIv/c7f2UenWtJh+GZORgw/tSCfJ484+N/+FsPICH12kxZJVE9qO3z6I4VjTScbTCSOkJzw0Q4VUhBIg0gvg9KvBm1CYmQBhlhIIoFMXir432ZIq4kSbeNgrr5YOjFHucKXc9aGMVFie5TsLmyOBmhtYgfxwSrwuqCubJJp9kZQIfVjaMYbVytCrg12jGxbc7xWvkdz8/vKxjeq9NR0fG7fYSGO7/z173K9/22b2XOE00g9Yx7ZvLOIrGXVTFUjNYMRpyyanh56BkglzAaVmUArZEoJ7frhwaARArZzalRygitGIWYSsIpkJ1Hr82knEiuzIcdrRrVGkmUeadcXzf29xrLI3j1s8qv+8fvY6y8/JkDIsJbP32iLMqSDFUji7KbEnNxJlF2OJPAzVrZ38u8+cZGkY71jYfPTUxZMU2kLEwLlDjJooOB3FusrbX18GyyWN/C78vIFGjOsnSuj/Dv/aZP8S337yHvWe/Pt+GXvun393PU6MvRT4bnghcjTVGPbdXpvYdUQRLdnGO3YHNao3uA4LU3TlsLGXVz1DfWxyfWd2HdGsyJRy/sUN3YrHHdhTeOJ5YHcQCYDjOaYTfDq9/ykF/1D32MT37nnv1emWfj8OjE5YPOxQNjvr8yPYLpYwuHF/b4LvPWVWO77siNIJth10J6xyi+sdslsghFDJmF/aFQptjvpkvYvZC59/zE/MLM4eGei/vONPmQHyn06EyJJbZaQyaOsDaom3E8Vk6nyp/8Q5/m0y9Nt9f1aXmhOHz9I/mzNILZ8T2/6j4P5F1E4yC+1/DWS74OdosgqTFtEUSxSPhSqRpeQUoky4mDa8ijsiqHKXFgpMR1IfVg0syLw4VzUhDNpCNcu2IK7RTeaT0ZNTUkF6xf0z9fKfsLcjnS+pEyF8oMWVZKqiTpZFeyGPkIdEVaRZgoxdkzMbfMxb3KwZUuobwoKYAVUcI4Huh1eKmak6Qyp+Fd2FJ43XclbXuEkFSq3fC9n3mqA/kh4xeD/fDLZTzaz9H8Mok1a+tsq4HAvEssk+JDTnhrAWPgibCQSR51UIW2OZoTyyEx74VS4kTQbagvODek48zXzElZKbOE9FrDga3bYCgnoQFpM+Sm7KEfcAAAIABJREFUswCHRdll5fpJRbuzL4JdNXYi7BV2KuxVuD8rjzDud5jd2VswEpfqzEjI/1P4wqlASXGeXIqyZKHk0Xi1sH0QjElDEaKDnawJdkXJCkWVz7yyY3d5MTrjYVIug+rmz+gC5u63/32toQKeC//Ob3uNnSfyzsg9kY4Z7Y12vCGtHXlLaG9C//JEf/Mh2z6hL7yJvFjhlcb+lSMcHlHzxOlx4XTTwRSVGj9I+mCTbnStHOqE5i1Y8p4hKc4TNDeGO/dgTk2oztT6DpQFbXE2SFnJZQ5WvDRyWjC2AOIkkfKGeEH8QJLO5BckjYT15gc0tLNoEtQSmjpZZmquNDIWM5GFjNg9EokHyzX/yq99kay/OFX8N8XJQH2krlWgx4OXxMjJ0Szgyumq026Ul15K7KZYQJobnJwuwnKZ0OThpaWJFnYvkQoW9ARKGd4xCFMqw9Mog2jEtjK8rVDUQtYX4IGzFOiNkHOlBCiuzlo7reuIq4TqfpuIkaWTxPAe1OVuYV5fDU49usTHFjGpTeNAqylAqzQOtM2c3itbbcPc1Md79OGz5cwpk1DKQFqnqSBJ46CKkJboWF9vytaV2uyDbsOvjDEOu4mX75XByIpxPvTr+Fys5R7A1N0nOEsQ3QXR6GSL+u1LlACGlmxDiuWxmQyPKmGkiA1zbk3xtVm51bmfKcUlhdcDHkajThiiqgQ4lhghCUDtsDYJ/4ihqc/CbaBBJDRGnGx0XCLkYMqx0c2DO1YSEWE+fpd/67P3/v7clG/W4X7HvpIzOMm5gTU46k8XlokXLyfEolhSJ7T0ZmxSQ87ihgk0H2vX8GdwC5RSRO+YXyIjlfDs0qU065F2aE71QELdYl3rEqC2334MT8IRuIQjbBr33tyCLq9KShlIiAlikEyYEUoZZpIIR4e2jQbeJLTS2CImlkkTdchWb4C1NXoXrm+Mm8eZt1fD5s6scvt7Pa3RufUx+ojV5//mP/pJXn2QMemR0CsdtIf5JglNme5xr1o3pqxhKKrDs68b+5LAFe3CMhUmHfuLFOaSmDVYym017pe4v/s5c+/eTI5JQm9C25zttFJrZ6vwzldWtnWLQJQNTu+s3Dzu7F1492evgkW9FR5/sXLv4QP+1v/xLi99+gFznlgfO4cXD9THG5IKqSf6MGkoLiRtlJIREg/uC9fvGvXkXF11Hr/TWa83GpVHD0scJHE+8enMK88fmMrwk0uJ3pwTgapKyaASMmqM1Rq1hx/SPMPj08o/+9kH/J7v+tjt8/sRm24AvHh/inSrplgJHynrTt86vQXLSDXRPZqGWvJYr2INohPeWAY6nn+zzpPrjasbxTWxu7fjwYMS8ohUmOaZhvGVxxvslGk5UJaZlJ2DOofSSfaYKTcu7zd2+/DtM4FSQBo07ZR9RiZh97yxe0nY5cz1m53jF0+ktJL2ynYjyGNnV4HVKDeO3Bjz7ORyfj46tCHDToLliaSCFkUigC4SrnvDtdAMWlesV9butA59Ndqx80e+92NMOX8ocOXfFFX4L/5IDr/h4/f4zMUTthT1kVPpp05XJXlmMWPq0JoF62BVbtKoT0xYFkFyCwN+FXoCnaMumSUQfHcjzcqSM3tNIfeTTJmFngw9FFLrlNUpU0aXHmmbep/mgn8uUV66x/xiAzI5Jdpt/a34Gyfqz2z0Nw70d/aw5VAHPZ7hyUpfYQHq/gnd4Ulr4Jk8PHQ16UADQp6T5wRJkSnhxWnScVOaGk1j3S++MZtgFnYhiZWP34+ksw8bHzUA/unxbc/dpzcHiTUKhGVRliXmQ6SxjVTxW9bNne8aPRq8ZVGmXfhemYWM+KyEkDPbiqibWjcQZz8NrYYHczWpkmQ0KdPwCyxCnYQ2K94c3t14uE/cWxJvvRvBBTuFdmzsJ2WfhUWVqUcw2IMFLszZT4n5siBLoiUwCZlgqsLBlL1BbkGcAEgoYrCtjVY7vYXiI6mQs5LTuf6KZmpKQhb42P3Eg/uXiCucf+33SKafvXFbX38IKwuCKPB7vuslpvVNXNbY92TDr2bq2wtq93B5RN/t4IHA89e0F95C90e6VqpWfJvQskOmt8iv3XB4lJhOO+q1hOeWA64029C2knvDU5z7UjaSVZI5IpnWBLc8wKmOlmEHmYR8mFl6wtZrPDVMw5oizY7OoDLhNErOuO3G2TNSEHMyjJkyzcx6zr0/ktzIWelyovoNkxfENpJGN6zrhrBiFLp3PnHxLt/9qz8Wc+dDDN9/vuObYhsVj1Q+wRBtIM4G9BRRyE/erWw3Ew8uM9kMMWe9afgWBQWHFBIDnNY2aJA9KMZR0idq9fBrcME9sXZl9U4rPtILiUNZ6kjqTJMzERTyRTNFdTAXLA6ZMgC40dkugz7sosNzyG4ZNb07x0F7lqQUjVTE1dqIerUwsOxOs0Dw19axPlKBJMWBtgWDq+N0KTA6zQBCJ0mmeLzHhMXGjJPc0WRsDi5hzPwr44PHfs68dD+PGN47OeAdYhViJ0XuDjvOYD4wFvhY8JMoSlA+i55puQFGNYuEw6kIF0vitctETkLWoOKnJDy/UxTl3hybWR6MCpfQ4NceCYd9+CeoEgapCEniPSgSXUCCfv9wCeAhttvhozX+fjaZNw/wq+R4j8kZbK7oLE8JthZXwnC+7zsv/37fpm+e8dQed5YXB8V3/HmYwZ+JsofilC4Uh73AIUVRLmJIqN3pPd+m0aQcaanIAMskDnG1yZAhxD1QZKROxt3U5PgtM2ew7HDMw7uBpDTXkCeT4nuPBUvRYI61MPCWp9YLP3dVPPwZWncmCclNl05P6RaQcwTridrDaylJmJdahzV1OrCaMh0q06HSMf7UP/Vc/By/bf/d/ez34lsfiZG0h5n/eN4QZROluQ1psdNWJ6VMUqNZrBE25KutO9dbAzplCu6lagDeXVoElpycfhQuLzJrdixbyNSzQ3IkObkouykzz4VlShxywNnTroBC94a5crrZ6LXy4KWFV7/lPj/741c8en7Pj/+1N/iWz1zyN/7i2/z4X32dx2/d8PpPXnFatwizECNpMMWgM0mOdc0b643Sjp16U7l+OyEVbt5R3JWrxyuqG7NmTqtxOCi5KDkLh8lISdgtGfeGEMV7OlNQLSQCkwpLThHckhrPLcof+sdeG3THX8q7/0szft9vfQV6pB+7BP23eSSpiYS/T6czTRlhxXuLvaAJ63qk1kofjNDuDWudetM5XQeoeu+eUKZG7Y3Vw0y2HjvmzrtH46fefId+b6POnbRM+C48TusJtq3RELatc/2zG0oO1+ZLoe9AcsOXhjUlLQl9YcdLDxdKueStz21wdcVcQHbK8Si4BBjsE2iZydeGa6PMe0QNmuO1o2kda7gPuwHDU7Az3DtiQm9hLI4JvXXWBsetcjw5P/AHPslrz018EPjwUSnH7i2Jf/KVx3SFLGFCnUritCVcO6YezVxXvDg6Ke1k7NcSB/la6KOuSipMEnV+kUFFH8EjKREMkgH8Z2Q0sUEKMMFSHJkKy8OZ3pU5H6BUluSsO8EvnoBl3Ht4zNQNe+PE8vbCdJnJrybSiyfKo4pcNuZZmF6omGTymzPblzPbOxnXSCLsUkfoDhSM1CKJ3XOnD/bPVD3mW4eWBptehOSJSiOpsaOCKUkKv/tjzuVSfilv6TfvyBJKliFYWZazdYeP2jzUE+eGv4iFkkGFvoU3aJo0AHszukdIVx9qiNDlnFlO4QEI8Q/rSBo81/n4qHuac6ZMhw9VsKhaAS3KnODgAWK99aTz4H7hMiWOX1zJ5szJkc3ZFZjMQ96MI81IozGtqmgRlkNCdkKZhcNlIYuSmiOrUVr49E4q5CSkFKCqDKlhGk3USQhZr4J2eOmQePWVB7f+r+IfxGF+dsaZmfU06HLn+QQTzr1d4TkeD5ZvRY9C3zL5Uaa8cCQdKulwhczvghqmRGq0wuQLeTPmQ6f6CrohvdGLIZdC6SGV6LSwJOqK6gyUwQZ2smc6SrcbjIoXp4tzqhuegvIiFOZpj2rDdjOzX5C7kvNElh2JDAoqmZQLRienCKnQicG66hR1zDdUGkkXVDNJZrCOqAdDTBSRFPPo7I05kqRzd6oVfs39J6S0C7znF5DZ903hmfUf/dOvuHug2kU1wBYRppJ49ytHDvsLLg6nMB/tCrkjzSOR5gami1FzerCYZt3R3XCLYv24JuYMmivShdUdTSm8YyLYMFgvORKfqAyPjPDAMQ/t8HGFeT4fHJ3WjTSMkMQZmZPjwOWMyF5IppiGh1dzmCQOJeY+NMrgrqzjIIoI3QTcsG64CJtC7R5GuTinVck5wL7TycGEnDqpG5vqraG4eizAG43WMmJhwrqJ87/+xPGr7sWzpq0HvmHPrEPJvPrcAhLz4NbwfXyEAQ4Nw22XkBaChMm+nLsfdzJAITocUQQHOIQYDw/K1dF5/pC4n5wvXJ0TMI2LOXGsziuXyts35+Sa+F7dLORW5pQSb6qbAWFKejaeVKCIUwfgKUS0eLCw/A4EFYmuosT0VeLFdSQoGjC5jETDSChrwM0a83DK4fPlKnz+ceUvfv6r59TT41mbX1mTn312nmpYxd/PXZ0z5Q74r/6555l0SD+7oy3m2mM3uimJKOjxuL7eQw4hFlHKkiJtsDdBJxmaqoAm3eVWMpZLrAnmEjH0KCLG1pSigCR6l9vzurkPAM3HnB5z3Ts7dYyM4xSvtG5khXt7Y6eDio9wMsekIxoG3tMAPr3F5l2ko8Ccw7ONprz+Tua554xDyby7BcPhT/zoiR/4kbffe6EdEI3DxYcgDM/a3AL4/t/+qci2cbs1as2qUI2cMpudWK8z+4vw33B1pqFxVhzx8NbQLCEdJpJ6u0dCzaNHiSY9GEsn8B4+HC7OsiSOW0OaktzZHwpJ4Xizce/BzJN3N6Y5Lrk1oDWsK+2mkXbK/iJh1fDcEC2s3VmvHXMjZ0FNufdc5p23N2obTQKHOaVIKDOYlsFC1Ey9qaTJuHdZWCusp84yJZalcP24R9rZvQDmppRYT4CurHpgvToB4WnT+kh3TGP99GBo39x09geBLMwSc/pn3u386b/6hSDuf0TSDP+Df+bTiMDmUYhatzAmFmHrnUnj+VURSBpG/cNM+dwm0dHdd6C3RnvikCd2l3AxBwBfksAw67Y+ljKJGPLLrHzq+cYnX9vz6OFDdknRx5APURf1KtST8cb6mC89WfnytXM0Q3RCkqM3hu0y05IpOsGXrrCD8sbnGiqN+58opMP/z967xNqabfddvzHmnN/3rbVf59T7cX3rPk0MTmwgoECQkSMlAiRHCQELGYSCItEgSEj0MBISEhJSeiAhpUU7iBY0aEGDFhJpABIYmxvix325btWp89h7r7W+b845Bo0x1z51r8vGsnV9y6cyS0fn1D777L32WnPNOcZ//B8zzSb8/ki7VLBE7T2M2j3htwe4KURSubO1AGA6LSSWg4khHvLDkLLGe6kMX8FcUjSaM+Q5k6bM3/ovv0VtP5zc+sp7Zqnyn/xFMFeSBSiaA2sipx2bHpgkod7olpmK0atFQtWWSJsjr4EQ/lK7oliLhl5LFEdTKRxbp5tgKcB+4YxbOzkrVsMUftklbIkhzm6e8a1R8iX1O0/h3YJrgto5Pr0nywQXhWkxqEZBgtVimTvfmFKiVcFKx59WqmfS3jEU+0hQadibMXhIrsGmV7CmaIlwjn5SPCccp9IQl5EuHANL1QAcHOd07JDD03fJyt/9B4mn99sf+Fq8anfjH1TTX0yZn33/jQg+6bBb4kK0oWqR8XuMcyMNXESxbvTq5EnDLsLHAJk4x/IojnXUdeeU8pSDDSga8tBJJGSlmkaQTgCUqAz/rvCClhYA224Svn5duO5OthhufvTxxs1FYmkxlFpVeVGdY3N0l0iqPD80Tmbha5vghCNJcTv3BE4qik46AsdiSG6inLYo+lsYI9I79Br+N5qCkBGkDOe4DXuKHJLeu9X49ocjBdjh/nj3Su0tiP31o2ysM1aiGsPerz665t/8x5WaEroJ8mLG3zBE78mSaAYhLE1MogHsaEPIpOow56iLLXZmG7LClC/ADtSW0aeKXB6ZlwumaUE40KuOgDxjXiZqBckOLTxrc05Y6iRLIBtTuSQxUZJiteK9st0KXIOmCXSD1tlWsBR3mhN+l26Ge6LbieaJbtBU0X4EO3svb7STYlMMIEVtUB7BrbBVhwnM7xEvTGRa3fNf/O+3rKdnPyxbHeDhn1rPLOkdUApQPCKNl5Q4fLgha+FyquSa8WosapQhIy3dmUpiKULRzpJhSRmlolRwZzUwa5F8tAUWv5TEMryvCh4oZDB9AwhQqC18q7YeXlgqwj47fmL4XwmLetD7ghIRZZwFQi4SrKpFlK5xdIY3UbC3qtsDxC8SRn/LQOy7jXhMi4jejiM9gC5zD6bDIAq16jgNky2YV0lRZOihB5rcO9kSKjFBFIlo9X+0Xq6LlLh5PIdBn5w9pgb76gxKDa8sBjtqEI6DUjnGq5lPf/74N2O/ZOWBmnt7cF7fJW5X53fu/GGSM5dIPny8F54cOjdLekg4BNhlJbuzK8pVAXdjUmUmvscsDHPwaMZchaIS8i2DPlxoVYYg0gfbZ7QhMtiEaTC8ioQkycVCZiEBxi4l9nzt8XzNKnzt+os3JXwAq/z3IXGcN8NYr5dMciVZFLdVNIZ1RHMkHlNCHyw4x4IJ4HE+lZRAhTwFWD1S48dZ4sMEdIDrLkyLPaRanr8GopwN4w1g/F0fXoB9fC0b5n5RVG/0HruwjRjr/c7xk1JFqKbkDN4TmLKdYG3KTiClQFRVBMNpdA5uAdYR/ll31dm8cqLxKz8zkfiR+0vigYrIQ1jCF2H1LiQXJg+GZFKlWbB8LSpkXGPSfPaejELWSBJN0FQSkwrHY0ddSbtE2SUuroXDamx3YEcHD6+PSeD1y0xqnbSBSgSI9NOGW0XcaafO9VVhKcLlRcbFg9mnneZCmpR2atSTc3ih3D3vHF7UETCgbGuwoQ/PK94gkVAyUWNHUpg6vPFa4WJWxO3BC+fFi5C7nY1vT1ujYag62zPFV0eycXdy9lcz63EN5pA1Wtfx3HSMCFlpfXg6SewvMaGOPfbelfK3fuEDfsQP9pVdv/pL3xznggyAxilZqBbJkfTGZkbrnVPbWLeKWUckh/8acReeJ/b9WOM1Tpn9hTMPNmevynETajVOm9K7U8dYoJlzW4Vf+1D4X37txP/5f3+b7374Az588SFH7rjvKx8dPuHj9pzf/kHjBy/g5A1LOZoHLfg0B9sCobVKe1TIW+bmm1d0TRw/cu4/PqJF0JsZuZ9IfSOPQA3xjXw9k+8LOhI+UylUAdGZkjKTJDKK92AIuQ1vw+5svdPdqM1pzTi1eM+0tfNf//vf/CyC1iu7RIRfeHNPNQkdVJIAcyTkVpt1kkNtDZccPrFALwEs90tDSMhdcJCTB6jfVTh1w1OminPoFfXOlKOeTg5ZhKWUAPg7SFaWayGXQtaJKc2YKbokeLJySk5xRe825KmzX2by44VcoDaLYUoHtJFKMD8nM1KqWO3sfM9yGYz8Io38FujVxPJhoTxR5Jmyv4MsxpwtwK2qYfC81kg1b5HQKJKQkkLaSnjSbTXSHdUKafQ3/8ZXZz4nrdznYv3s+6+HyiBcEqib0Vajb46tRqsWLMoedXVtznbq2OZIDiJAt7PdBgy2waiPLH51Iv1Zo27vHkFiZmE104dXF4G9P7Chz4FQW3Xq8ARtzbjdOhdLsIqLCl96e+at1xfe/+oVX/7KFdcXhbcfZ64uMmnrbHcbj99cePR4ZneT4SIz7XLIIq8S++vM7nJCRNkOxuFZZb01Trcd2zpZo14rJTzASonBUd4plDCJzyIUF3LzUIuYUIZS5Kvv3RBeql+MexH4IfuLMl3wyz+T6TTkTrDDRH7ryCw9BtWmJC9kL4gIlUYjIbqQzHFbQvHghCJDMlPJqCS0BxIkSZkvd7Tbmf485IHSlZIysy64F6S3UAWZUXKnpEzJBWnQU6fZVQSttCNFV6Y8IUmYFifVe7J01JRZFrpWPEMjUamoZUydLoZJQnNGk4USQwuSDFGh9AtkqqhWIoo2fL2NKbzb9BTps8yoeQC80x1/8+cvmURHGuQfX26Y//gv8R9/iShlNPmn3pinxIvf7Uh33nszEGWTxlyU7BHrazl8DlIxrEbKn2n4EG3uQ5MD1p2pCErCayflYGKFFCPQdiMMJvsWEi8Z5nhnuZf1sC3OApLi76LNzEN/HWwZ8Zephu4hGbSUEZMBgAwKscTU3DzM1tyd3viUTolAdsOuNppaT5BG+o6F/KhoHjRWmDMP8kaIIq67UgfiydBvb5rRXtHyjy6/89qrMl1N7D/1lAT1eBBC4AGpOJuuy2DBZIk/5+HFckY1go0Vl2UagIYTxdV5Kv3aTrhbg9KcBd64Ug5bpK2cNmdKyv1qdMLfKhNMwpiaGC/WAay18O4a7N8H5mA8TsclgLTuITsTD9lIH1TrAA7CgBkJk/EiwSLsA8zLA8frgLkEJbuE4WV68DMS/t0/e81/8xt3PN++INqJM9D4KQbfeY5wlqOelz6ApDH1EgarbRRMKUWaDKbD72x8vSHxhCh8Sg7jdckxTZkKD5IEJUCFJGDZw+ydABxNwvhdVKhtJEQlpRoh0ZBgfyZiL2sPemETQc1xMVaCIVbdqTVkiFuFOTv9zHYdabDNndvNsaxYMrQmNHdaD5P4OprizTqSnEkzpwo9Gf/6Nx/x9771I+yseOp+j5/Wq7yaR8OD8BAsgEdqbVWQCtINV3vwT0s+gK0UBbdvndqdq0eFKSV6j7AVd+Ht9xaePau0u8apNqZZKbuJw6niJuxnWCsgUCbBOzx644LDfaR7Xb2dOH64YtvZy09RGnWDxjAyVqVa+NZgUMQGidlZT4YmaKNJLDr2aO482iu1Ntgrj0tmegeev4D17sB+2dGPJ9ZDOEiWJXFYQbqzX5TDrSC18uSTiKgOqa9QLVIdp1xwd2z47NRNIrlq9NuntXO5ZCTBjcJ/+Itf/wnvhD+ZlRz6YMcnCwYfamRN9M1IaaL3CJQo5DA4Lor2eC5nTXQRTi82ahUgM82Zy6sYj7gZmkJio4B3xb3GoEWF5g0dkmUR4aO7yrEqv/Ni43ozyg863Z2mnW6FkgpbFWTK5BR+IfPkWNII0WGj7Bbqptx/stJZufryntN3D+TDjPc7ZH/NMjVO9RG+3cbPPmfYGn0KyW1qmbZupNRx29i8kXOYZ+WccTOs9mDQiNC9M+VCSop1R3unZ8Fqxx3+41/+Kv/Zf/ubr7zEsAAlZX7hyyvtHnTpTEKwP91Bnb418h5KUcxbeErZqEfcuXbl/rKSm7L/WMNQ+93wlrUVwJiksKEIjSwtarcc7NVja0wyo6Vx2hS9ipq8qFKmQmszpT6hb8L8zo728SlSUW8In722ot44KSgZSRO9RxKxoNR5wrfKlOBFPzF3AgxIKSSKF8phD7tbwXZC98x0P1HvVioJtJKl0HeC3hmyKmTBL4kgJ5FIjV2dYhOWOiYt3kPdwW7JOQIvvhi34h+8lGHObnH/SRrBS+KET1kEZom97LcYAzqRICXEmCjq/fOnuUv4ilp4Sb1kogZ4H0Pk80ejJmwt/KiMAYb4GCCPOqrRSaLcb4ZdxR1UCEuGC3Pef3PHx88qzkY7GPsk7G8yv3vbufvowApsPZhYfZ8pOUVCeQsvuYt9xiW8wLbaWY/G+qKxWVhflH1C87AZSWCm9G5DzRF16jQlZIq+xUwQU2aBr7x3zW999/mf+Ov7J7E+KzzhzBpShV/5c9eQ72EVjIJeVrplmgBquCjeV1RKKGjahOcjIOQ20fcrUMjaR40nSD8E4INEDUSjzUem0ul3zvZ9EJ+x3KBX8iScZkH2xwC4k5CmylqdXHKoN9I9U7kmeaNtEyb3lLywzhvlfs/aD0yX15zWE0ve02hodnrb4brSeiPJhKpQbQvDeBwhIy0UZ70bab6IAXhqYAk3J8kdySdECqQVqxN5MqQX1DuX08o/89Mf8L/++m/RxPl0Wf+j7Kw/zPp8IBo2QAKBPCUOPxCWDO+8m+g6Upgkk8dhkahcaET0qnQmzeSkIxEEFlG0RVFfRMiamIrEBFtTGJV6+FepGlmjc99J0JpVlZyMRlCAY+KsGIFaH5pxWHtMkoCsaTSeASJs3mMAhdK6UT3MUNtoULPA5MpeC4s5C4OO7wMoc6H1znARo490gtQAS5RkFE2cLIyAAbbhJeaSg2Ux0hCF8CAI7X18repK3eDn35o+8+X4oi1ZCo93+sPTUvcHNh3wUtvrQ2cvTvpUHJHZoB17XHRTDpP0PDxGZACYbgEqusF3no3JjQRD5cUh4LC/8KVpJBTGhRjsrJCMNcKosXu8L3CwNC5bYHsAVOIDKmHgaDCABkCVJMLCWZIYgJSKoePrBknZEY30s7MEROIpiHTQFICZ24iaFmE1+Je+csk/9dbyY3/dPg/rzED4IUnq+P8AQV9Stv7pdydWbCQXCkWUZsJmzuzKhURBZB7efTkFK0vwh0JJUxRr0Qkmck4vH4yH4tDdoyvF2F8YIkpKMek1SdQeZ+H5vAqLZ6cN+K0TRc0WX5Lqsa9i+qjDZh5u7xLbkLX6rtG6RQoj4YHYvbGJ4qZ0gVU76xasxpZ6xJwDFYLO3oOZYQ5/++t7JH3GZfYFYjRAvM+6B7sufM+ELCnYfGPwUgW0x/03m6IGuQvb3Ua7ryQRrm/yGDB35nliusg8fjxz97ySW+PiUWKalbo1Ti9OHI89/FtsJBuacTo1rAkvnhzJWVnXlfpJI1+XOC8H6SJN0SSmFAwJEWdSyLlHIo4mppyY8jDdFkdNKCmF9IwGCnKVuXxtgYNxd2p89Dsn7j8+cLHLNFYevTWIk7GAAAAgAElEQVSRibu73Tem5iQ6d0fYjtFoeq1Y72TiTCwpBzvWLM5lc8QF2zqkAA+xkNH22kgazUhJ7Se8E3786y//7JtYjudJUx4MK0NcqactpDe9UreKVVgtUjNTi4B3NWfdjtw932hV0Sxc3AjLpQ4QMe670ym8Ta0GkuMukR4tStEJwVBNeFdIE80Txy3z0b3w4Z3xdM0c18wmsKVOHwPGhDEtPnwFDdFCrzt6C8NwWRQxQUtFrhf6euT5d1b0tILA/mJjnh8zaaZbpxelidC70qQiAxxJWijs0aMiNcaamsAnfZjeC7A153TawnzZnbbWYLk24xtvZf7O3/xpTF9dNrMI1JT5t//8NVtNcNrBJ4XukSSpkzKTuUgpQpU8aulK2HckJZjGwFIUuYD2mtHfdJbbRDp0UhZ2onjpiG74ACSKJBYJB9Fl3rF0qMfCvE+o5nGmGs6ETvccPu5IzszPNtoC6Y1MmibS7YqsTvPzgKhy4A5PGXJCZQtTbc94XZmvE5ISKhE+ISOsZydK2nUuxMm50a5W/B2D1zfy2x0eV8rcyG900jvgj0HN0BegHwvcZeqdY6dKPUY9UEpGs7JLyr/ywTWun5eG7ie3/sJX3w35b4vaVId3ViTxgqoBgmaNyyqDTgEWNvcHC4M5hQpBTB4UFqohx5PkD6nizeMMS+LBXB8pQCIxFUlZQNOQpsV7ooT5LTn5g73HqTlP1k6ZFUmgOSGz8t1v3fKd376lnhpvPJpZFF7cda52meubiSUrV1nY30zo6tTnNczjLxJzEqjgx0YZd/DVTeLxG4VHrxemKbPdNU7POsdnjePzxnpbw5/yrnE6dLw5u30EqojE49YEc05cFuEr79/8xF7rH+f6zCTDocixdMFbuyN62tHXG8rN4UE+LFpRdriHz6hTEWsoKyoz7o3a69iPivcZ8QCnwyS9BUguFdXhh6uJtKvILqHvG+nthL/j2BsTU5ooz3fYDybWJ3B8dkfp96RtoxdD2dG2W7Z2h6ct2OicmHYXpNcfoa3Q24G8t9B8o7gVcp5xoOQczLGyoDkRUG8e+1lIGHWFQieRmWwwa8WgT7hMLGIoM3lyqmc2VnAoDv/sOyukl/Yon4Eh/qHX58Iz6z//l99yAHXj/nninddnllK5qxVLhWI9InsNSM7VIrRbI9fEHR2ilh6shKDobT0msaQouIoox3Vo1nMwaFIOqonnoLZbhZwzvRkVh+Z0IbTQvVOBRRIna8im5MnANWQSY+MJwiZRADqAS9D0PCHmtNbp4bSN9gE4pUjYOLW4+FYJHw8nPs/FqV2oW3yHZVJWb0AYOHePQrtaeDo06yTNbL2SPaEeIIapUxEONYzXdinx3/+Dux96LV41bT3wB+rr91Pi3deWaNB1AA8SEpfzG0sefg2EwqPBAUODAB+gYWIYqYcXURnm/nhcdiIh3RBiCrLk8GNLEpJVEaHoACJxrmZlrcbWfJj5x2OawzLn4XEF48fZJX2Atkc44gPIqkPqCgMM8ZeeWOeBkomEbJAARdpgDM2jOK/j6RmWKVSL73O3GvtJMBFOzZmzsDpsm/P3vvXih57vV21/ZRmeWT/yU+mD9PClgeR/96+9hZuy9Y6Z8qwG9xIB7+FbpRD+RQ6zBIho44UUkTDyl/j7+J4xaQQQ6YgnUEWToqlSEuEzyGBZ9fwAkLQBrDKCLWo/+wdFiIG7scDYO3H2qCuTNt581DkeQ/Jnmwwfrtgg4s6pO00CjNMcIPokMBd4rSn71xo5JT789kR/tLK50npcnNrC8+jDW+ff+Z9+wFlie17+qaLzRz7+Su0tgH/rX/iKZw82pKgxS8IIKX5KSl8rvQrTLFwsY7JbMmKNXRFSEY4HY7qeuFTjsIUPJN748k9f8e1/eCCJU7cW82UzmkWcd0LYuqE9wOouTm3GlBNpAtvCsL1lY0qFKcNjVdYJ8i5x3+H59+/AIyRFPXhb51eu985mRFJOzzFNTx0VpTtcXAtvfu2Spx9unD5piAhvfyXx3W8by844PXXWdeyH1pmmYC2vlsI8dZ/oHv5/p2Njd5GiXkNZPabZ4lCbclo7r10XLIU8qWQgZVBlOzZInb/zP/7OK7W/fvRe/I/+6jeRrAFrP5wFgjdjPXl4c0yFIg1Nia112CpZc8Tea8atk+fEsjRSznRrg5kglKS0ZlGnScje69qZlwlSZaLAAO671pDwubMPJJJFFfPKfJ0w7+ScKDlj1slV0V2LyPDsIIq0HKyoZYfaSrdE/2QjXU+0deNwL/iTTr6qXL1zgSwJnTPt1FmPiePxlnmfqWvHKZyOwSAd1yJODApaA2tG9gBKG/HYXBq1hgfYlBOWnBllmoVlLugSZs1/++/+Pzy93V6pvQUgov4rf/4R7/IM9cw8G1mEdEr0g7LfCdor29yZ5/B2xT3qJuvMYwC8DMayFScNFcdShHqvUDvpKmEFIBjqqQslKx3DJQUYlXd0bcz7GTwHt72DzMr9bz+jzBPLTSFJYZMT6onebxFZ6HZE2gWHujEvFkyEmDZiPQKlkibkiePTMdgSwytS3BCLJriIkjc43RntQpmWSu2J1UCSQWM0m8TAyR3pGdFKrcr6tMBrDW+GSuZ0a+geusU+/59fKP/bd9fPZC2/anfj71fT/3Nffhs00vvypKGQGINe82ElY2cWiIw0cn+wQDiXcklD1n/2q23iERiSJfqyUY8hwuuXmWPt1C0ACpFgZxQ912ZRV+c8AI8kWD37d8VjEjP2SbnJwlceTbx3mal3lWXJlKJcXhduD53bQ+fFXaVn4XYND617c+zQOeyiPuw1TNt3u4Sci3wdP8dmNIj9iUTf67C2UISYhf9fwmmEPcX9oY1woSGh7GFHISUanr//66/WvQh8pmdWIoY8/8EvvI5+OKOvH8klgxxJrdPaxDQJSQzXE+KFVVemnhGWqFPyHZNPiE/0MQEXDLzifcbppBTMdfXgCPrdTLkEaytpySSd6X0NZYdmyuSoTTQ7YbqgHwl93bCbI3lf2C9XHKWhbszTJe5BgMm7C3yteDXS/UZ9PFOt0Xyl5B22gmWjtUZiorJhtqJECI+Ks1bYngv5tQZ1ortT/RB+5TKF92bbsKz0Bpp30MNKSQQ2g9/YXud/+Pu/gY9eebwCD2DinyrPrGSwqHH7VJnmhPuJu1ZxT5h1XMN4rGsn7ULiQoLNOr0adrBRgIYJjBDIehbIFpuwmbEUYSo9dMQruGloqt2BhGjE2otAQUlJyUOygYdgaLUW7IsMhxoeVp4aXfzBP2chUfBxGMamNAtQovfIWHTJtKSsSABcXQYDIyQ92nnJumpO3UAks2SoVul9pBZ6ACruZ3prD02rG1kyHQ9PG4lDS7ozacJ7gF5f5LUviUePlgBvxB5INDoYUQFEALxE6YWRWkg823mAYEmjidch3ctEguGkL1MIlQFgjUusDkZiEbiZE//Ym5n9FPmbN4vy5oVSe7BkVInYXITmw3ZCnKwB4k4aYHDSIZ0dj1+DwoG5DEaNDl+4mFjZ8NByEfL4ev4phpEOiaIKIxfUKRLAXvwOJOHUw7z+YpIH7bI5/I1vvtpJhzYoWMrLifxLiuwPR/rmlDm401S5G34JO1EKxpKMnfrwNjOyGD58tVTizDlT1VUE9ZBXqfcxReqoD/YqwcCxFo36ObHGPJ1pdSMRSoO1Z318n2AQmIN4D6+uQS03lKzKsji7KeRB0uSBIZQ9vmZxKC7sVJkts5mztY73KJiu95X3vwTveeZLN/BT1zPvXsV53VOAVL3Hn7/0iN/LxBpn7O/x1HpFV+7BChZVzJXNWwA0ON4t9oTBPGeuLjOXNxP7fYSnVIS1SSQwdWdDA1hfwmT2xYtGVmV3NfHOV6/ZL5nd1cQyG8tkuFm850scACULu6lQ1KnHTndh645tg7Vw70zvZvbvFp49PbE9P3JZCoKxn40yJ157dxrNVrBQIy1WB+uz05tAhzfemrEq3H20YvdhCdBqBy20k3H7kVPrsPG1Hgbl6rgU+qlSLdJ+rHXEnHlJYLB2Y+0VscECNKPW8AQx4r2kObx46mYcjxUTg57+oJfplVjNjFYrtRrrVjmsznrstC1MiJd9ZpkbuQSwqqlzcTExLSDSmHdwdS3sd07SjPXt4fVVeshb6cFy78F6T3Mkxk0IZMG8QXKSxeR3SoVqHjJnDQOFVkElGlWRjWVKMeixFMbdLWMr6ARM0OsRkzDXzjc7xDtalOVxxtjY7qDXSu9C3SpkJS2dXbqkSDDEJBnzDkqZ8Op464MZ3UhFKFOCqWOTU6YUwT0OmiJ5T5NGHahC7cp6cvwefIP/6t/7mZ/wK//jWe9dZT7ot2SfSaOmKCjLhbHcRHK5C5SnBU1Gzs6kTqZHUlsKBk3SM+igAbZ3R+sCS0OWhD0PRvFeJkRDbZE0hRdQ9vCqSXfMS0I1ZKFbDf++VDcWn7h6Y2GZwgw5q+A0cp6CsyyFnjeWeUerRk4gVhm2vKjA+uTI/bGhXOGfCOVFhLmkYcZbVJlcaElIN1CmCX06I2oUgpmqTLTkLxUVaaQw9tjru6uGPnVyy6GOK46tiX4wRDr/4oVzUb4Y9+JnrX/+K2+jKcCcaYq656UH7sve6lw6ZIWcXhpOmwm4vBzw6gCtcKSfbSAAj3u3eZhw3546tdnoDRwDSo5Bip49llL87gh1DR/SlOJrigq5KE0CmPr2i43ffLrx3U8qd3fx68Vd5bAZ1Z2thvTZxcM3sgh1ryxbSHWXJfq7dfMxS5cB5jlpCsbjujnrFgmyojCn+LVkZcnKXBKTRqL5cpGZdom0CNOS2F1llsscSpP11dRJfzrBMP7fQZyff/+C+ZON9OYLUoFuDamK5xlSQ9WpupG4wD3e06SE24ZIJ93H64YIIh2VBhS6FTJrDH56evh3vCjk64TLSkoTSSewI6KNtCSQgjWjWaX1ETbyUwt86QJvC/154fjklrKt7OZHmIU6TVNicieRKPOMPr6k3d8zaWZJl6gpmqIvEMm4HNnNl8zzRbxfkqMaCZkmt+Q2PFpz7CfyEvYikmi2Y+sSOA53SNpIuaOS8GR8ozzlvUeXvISn/2hn2OcCzJqS8PxjYS7CxXXlrjasR3pO1sRqFVOgBADTzKn3wirCsktMWcmbU6oxizCJ4D2adDGFJiRLgy0lIBu7JXx/OglpkTqROPtdxZOZzhJFFHEPOjHDyHg09807jYx7AFP33obXUGJ1ZyPkijJihyMBA0RH3KsLG0GZPyPlZ1RFO5x6ZzuB5o4U44ihPgzmRVk9zPyQEgaDruFVAiiGSUjbfEwRTMJvSTSxfgEK9N9v7YuSlsJOQfQMRoxL7FPvpTNIKOMvz3+vMozWE5w5UmdJX8rxYfMxweClBKeNoABVCemNQFF4+0Z590I4VriclJsifHzXQ26TwpTbhh/aA1NlPJ6zxBBRvvK4kBUmjcu4DRA2p/H4xbHx72r3mGI9/KzjZ9OXDLAiIYkUiQbYeOkVEGeyc5XjY93i5zIJgE2HKfRf/+b1j/vl/MmuwRQKPyNeThd+ZLJT6Wwi1CG32UmYzc6emDzSbZJ3dkmY8MFggEmUrAE0Zu2YWfiKMMCtBwlhTLfToBW6hkl8ayF3njWk1Q8ayOFtJSg5JTIhfZxEMA8pG8T+Uj8zKSLR9XCIM09X4VLH47Pwe8CdPFiyGWdrgqsxTc4/8YHxxusbqc3gxs3Vynuz8MGbynUmpqSTcXLjGDSvH36uR2H6x+Ij/yla5j08LMQIGnFCLaatnRbpMmbU3jhV48XzE+up04YvZBEPucFq2NYpiXidryZOdxXcKLLx2utDtlh7pIpJSO2TnqfWLYp9tUjgWTIp5WAtm3H/vHE4Vb7zO0eefOfE21+KMI3KKNjJYM7TjzfmXTRq0zQYfe6oNUoSpmzkIjz7ZAM63oXj/UZrDZPEb/7aIYx8DXqLn3FXQqqllmhb5eJCSXOmnzpewbuQzZg6sc/9zJyFIikKVTc6o9khwJQ2wDx3eZCTvMpLzOlNaBt4K0RInOBk8pxAwsMToraYU6J753jXuLxZKLmP+yMuGE1hQOwt7PS9RUqgieEu8TseRumWqKdGH41lyXGfJo1Qn/NwJmfBJdFcaU04bpmtgSwZlxyXEEaaEnWr1BZT7l4bzQ2ZDJUZnRa0dtJNwc159t0VWzdEMyUr8y6zvFNYfaYsMQLyAbbli2A8qoNQxtMSoQzqUcN1McQnbEu0ltjWYLD6JngTugh3GFuL1L5Xcf31b9ywaaFMwWIzUWqq9DWGQH3pcFmR1zvt+xFZ5KqIJkb5Tpw8PQzTB8iTkyLlSEbpc8P3HVlhbXFmJM2YxwAFNy4uMvPyKPxBfaLZys3lniUl2vcPTI8nunRquw2DbgdpleIheZ0QLnJhmjeudIeuoGtBZyenzno6cZF3TNcZ31fyWwU0oy/CS3VKmUSEOYlG/V24xx8Z9jxTdPjm9opKGXdbBMI44VPpyegZ5ErDD+6+kZJD2ZCLim1ObSu/9KXLh7rwC7dE2FbHNeoGdxCPBO8l6ainNCT7FnWw2ct6XsILBCHCSbbWH9QPJUUPKAwfWeL+AFi3TutRmc+FqJN7Hy/j8OsiWPZ1DV/neUlDuheD8Jxi7x8dPqrGt180DrPwW935EOGuw7F1Ts1glzjeN6QI86xIiSaidUM2Y54UT8FO6x6DeszJGkPxMinTnMMAX0IdgqZIrrXoV5Tw6S3EQL6k2MuaBnNNYJ4Ty8Wr30O6D/+1NPOLXzZOfcG00fsBYcVSxBiZRK1QvOAegHomoS0sD7IKniaECdMt0gBNQI9Mxak5j4CBCl6xreFXGyqdqjn6U6somVkuw3ZIT/H4VNBkWD8h9cTl4uzfXNi/fkEql9RnyuHwhJIi/EC601rDZYPJscnYldfo9y9APUBeTcwpM+UajC5rCImUCmhh9fDeXZZMTju0HClaUU3MacikxUm6UlRRyahkzBpuJQBm9qDGX/25S6YHoshnki7/f9fnAsz63Y87VZXddeTwlWWiuUXcc2/YML12yeScqEfnJB6eUWp4igK715GmY04pzqQGyYPqKR1RG0aAUZgdVqdgTBjFBUlOSYyNaaytsvUa/gk49KAMNzeSKCTFiYnvIeIt6JK4tWFqrIoYISvy0Fy7xhvDzIYBLZgE0l5RjiPK1cZURzUzTUJOQVmdhp+Rci66E9V6TBuHPA2CcbOOw3RFWIesaPMhG9LPaBS/IGtfEojy5kUUUJ8GsB48kAgGSBjBOzyE+Q7g64HFxfDJMKYSLKZEmDLKw6UXfjYhZQyz/iz+IAUsCvsi/B/fa3z9KpET/OIHhaOFIXIbrL8uwZAxjwlRFh1+cvF4NDkvmrGbhB5bP+SNAGZxKQ0ArQ3acHMfrCsoKkwqDx5aZfx8qpHWBB6eSA6LxmW3KEzqPJrjUsxyfo5eyhkV+GuvKENLz4w3fykpDLPpTx3JPqQpmqLpMaH1ABzvpCEYZsKuRJOfMHai7HNMxgzBUwChrUtIpz9lzpU0WHoqTkrQ3cL/THIAWyHyYRsT3u6KE75p5/AC4cwki32eB/DtPt4fA2NPwP290loPCWJyrtXZDyZqxiNJ1WBGwrwcxzq8d2U8WmBKsPupA3xvRvcNX5U3l8433ncuTPAUBq7Hbvz8Wxe/5zkPA/gf+0v7uVjTLJTN2FmcR3m8Hyd1iuaY2hNT1d5hLhmSstUer1l3ShEucmfJTklGM+NmyXg3RIxyOXFMsLuKIqxoYxZjLjl8a2hxhojRew8jWDw+Lp2lJLLBclWgKeud8d3f2rAm9OHPZvRg3VSn7BLWO97jDsxEkd1x0DAPtW5sm/HJRytqhnjBth6DGQifTQ05Uu1ON6Oa4RryCBFBi2MZVDt1C5k0baSEmTLC0thPCfE8hl3K1oP5Zm6xF3X821d4/erf+CZiDTTOkJRf+iWWAprs4Ux3j0Yt42x3DdGEWA8PUjxeW2svh3KasBrS5i6GtgDIUyrjjlSaNcjBaO7urCiiwUI/9QZJMenh29UMGaz6RKJzvnSCvWMk6tbRVMg6jOcBeqf1Fbno6G0lTYlpKmia6Gti/eTIUmQ0vJXtfkP1iMkl6i1izfFokHPUWD4mGGYW/m0ebPks8V7quQUAp5Fetlkws2oLkHVryukVDUvZ+x0zHe+dRQXtRq+wpUrVOhpnQbOxitC/J5SgS0Ko5UkKJiFnkiHVirRWwbLGoGfO2H2l9IQ0oSehESbwuu1x6WQz5jIFCKuJORVe/OAJq02kvVHIYBmpjb1XphyOoslKyF0bWK2kCfIk2LLD7xX7WHl0eMzaDpR5RczQbkyXRrmc6Z9Usq5Iima0W0OnRJsKKsb0qOInBxMkK22rdGNYBoB7SDMFj3vfEmij9hgkukd6sM9KXzJvT/e8OcsX5Xp8WD/z9iPW1UChlDQsPTyYdR6ARLxVo+8xNJyIJe6KeAue1Rkan6bBbvaBdiWRwWQS3n9ceOvxOXknimlzZ22jr/JgaYnHn33I+aKXA3MLgsRgf/XB8EuDjXjbnE/MuevOJ6fK00Pl119UXphzh3GahR8cOk+2zn11Npx+WdDm9OosUwwfty0O2zwpXWJw0Hr0f9M+kTwGY+ZjWJrDLuVhYOihwMgE6WRWRSXAN9UYcL/K6+yB6Jr4a3/uBr27oFytqM0gORQTyXCf0B7DjuQJV8HThtZChKCMmkTBbSNLeDyiHTxYuzsx5qzMeSJVR+7CMsI4sXNwbYPE0tF0j2OoJ7LMiDcSzlJmum3UVimlkPfK5XVi984FPEk8+fi7XC0lAvd8Q3LUQmhi/3jHtHsHvT9F/6tOKRNZ94iGUgQzRGZ2paA9AUa5mKnpQCfRbCa74lpCFjdUTuJhpURLuBVMOlUbIieydB61ytfef/f86X+k9bkAs3YXE2+/E7S25sPjqmTyEoXwNCvLJCwFTk+MfnBkl2g1EgMrsIrRslMbgOP1nEcBnhQ7H0TmTIP+mftIEhu66d6djsYmNUE1Js+bGy6Rkth9sJ+6hTzQ4oA4p5alMck8aMiuEGHSQvJP0T17pAGkwYIQ7+NAqyNJDKob66mhPabpajAP9ocMtoxamHZHJKxgCifioEQM7UTEuRgqIc9UiQYjiyFq/JUPvhhG3ee1z8Fqe+u1OYyrz3FCfgayfFx+n3pTOYic2XD+MK3Rh99t0EOdq0V5bZ/YF2FKcaH5p4ErAlB6Yx9gwiRxST45hJb9+8fOX/7azD4LjxZhNw3vLZEHKZtLMAs+zRSbsvDedWI7OffrKHQ0QIlZYVfSeKzx/ZQAbgsBWs15TF4EJlUu1MnAPsMeuEzCIsJeQhJmBnsNLwhVoYzpU9FgdIWMLX7ucV+/kgwtl08BV87wXfAHIPOc8qgSHj2zx2RvkqhedkRBhUeC2HR+nVNIOkU6axvsOVG6nU3ig5HlHnLpTLA9HSclfZA8m+n4nDiLgkwYG8eAHprCYAxqgF0aI6AB9PoIrwiwoSEQeRYUDw/Bg4UpubhwD6zmRABe5G6KgtP4J//MFghegfmysfvGxlyN7YmQq3Pj8OgCXIMRJOL8p39xH+DDp644/+PceH/alihpn2m1s3j47rjHZLSkMN1WSYh05gmgsZ42SomGqFwU9jeFR29kPAnXNxN44+5wQkxIKMePN178xoF2qigtaOcpMU+wTMr1fmJZJqYES8lMoswilAS7pQQAu1O8GdI7VAtGlAkmdTD6BO+JzTv3zyuQ6MQwp3qnu5KkD3ZhsGtsi0Kro7i1IeGO8yslRlpjivs3CVQZiazhTaieBiNW2S0BqrYW/pIxMIrCPac22Ng1JtIepvTmwmk1vNorTwTUZnjKMRzJOjw7Lf4bZ8GZejql8OG8fd6QlLi4yjyY72mEmSTVkN5LBw35QckjYXCwf5MEUyVlHc+vRIphJ1gpHnWPWB4hKiVCKgZI5h1IfQAehurIFcuCagp/Lj0PnSLcx1fh/tk9XApy6CSHmw8KV+9f8OJ3jbsf3LO1I71B2TkXj/cs15VyXcJ/FAvGYjLKrDG8ykLOJRpUjWRF0ZAi7QaDtqQ0QFsDrbTaac1Z18Z2ejXBrJQN8oZYG3UOY1gcNYxJ3CkVZ/eOkx8L7fsMcNTZ4i2NuzMTkjt3mEqmnsNqpgzq3LyTWApcrxNFM8tyQTpOpP2CTI8pO6f1YUeShONvP2PJN1x9uVA0kXRlnveYb8FKxsipIREXC3Ki9Mx9uweB0u6RtdLNuLt8zvSo4H1CaEw4eKLLgfmNGf9oQu8qiA3rksbskWesPZN3RjlOoQQpwZAtKSINfOzluRfUBCshz0kXSj9EbV8U5t5ZzKAYv/z1hfT5aO3+xNZlKYhCLqN/MqdJjKQNZyohO1UJZnJKAc5EL+VcTMrPfbB7AGc0v/SoDQwser+kYSPyvaeVT24DMBWJBNM2wKyt8SAHNA/mdG8xmMwp0hXPQ+hBRn8wHHeLxHvMOanw3Jwn1fm/nleerJ3feFH5f593vvWi8u1n8bFmRkkSicCXme3YhuRLsKpjMNSi71ShWqSiI5AGgUNb2EpkhV1RNA0AOSltSBFFAlyeij70Cg9D1Vd4Cc77N1f8WXNqrsjcELZgq8meDMx+H36fCSxVUj9QmjLnLTxqtwq9UpKTtIVF0Gjk1QGPYCijY887qVyQX4u9kMj0zcm6AEfMLnGboIFQEa0YwpxAvDJLQX2DvtG3A5SJpJn9u5nHV1/n+Xeec/fxU1QuEIufL4nSysr0yEjzG9RPKpNlWE8hq5ZESlB0JvVGtcq2VjxF0iVpQTUhskYwhm+IZ1qCYkpKNc7S0siTYqnSJfy+Zyl4UX7paxZyfeBH/cr+MOtzceJdXjnShiGedcwakkZCXFK0C96d9VDJzdClYK0R6Tf6QBHd2MKoroVsphHFSvRPccbPqI0AACAASURBVHn6uYgVoczDlCydWQnAOEzMB3XFwmMqlB1K18TRPOjhIlSETZWTO0eDgwnmfaS/CdWM5M4kwqIDMDgXdEC28LZSgUJGJJpKa3GgyiggmzjVg+paPLwYonXNuKcoooZEMZ390uQ8QRcmF3IWJoedBJMki9A8/34vyyu3Fo1p7muPl8E0CKPr8RS9BKlemmJxlgieX68zuyqJPAA1SWMfLkX5Sz81QQ9/tixnE/gwR5/G1FvEOdVo1tceIQPHLQzff+XndvyVPzPRgasMz1cbZt9nCuagbo6H6MOoUlX43vPO2oM9NQ2grAxda+xBxj4TlqQkCRAkB+qCm5MRZoLVtVNYPICTU49paDs/RwInnGrRiLh4PDcizCnCClTPiZrOrK8qmSbYTWdGlpxB0fMWGoeySgpmlYypMsJdtZAmd+GkzsHh2IUNi8AGEaqlmApaABY5RbpJ0BvG1nUPQMwiOdCHnEoHUEXPaIr0nGgwfUhkxsM8nxceH+8WyXlJdDBZR+qhBlMxIcyBUJEFpIW/XyIazHUMBg6dYTbqXI2JNqUje4Odki6d/tEuTEhVaN8v7N5oYZjrI2XO4Ofe2v8QePVHie3907pad1brSBasGZM7ZbDtWo/I7Zw7JZVITevKfslcXgnL5cIud3xtVAumyOlozJJpJ4PWASOXzOVbO8xgub7keNgwjHk3kbNi3qEbKmdmoTEnYc4pfDNOsAzj06kkcnJ2CtkTM0LtcOrBApVh6m0WijCzCEfp5oTQP76PSkxwJgP3Ns6xEEQLcI4/zhr3mnk0LZ0+AD7CE9JiL649zDRVM22rqNtgSEOXHIzEMZXvHo8FQgoSEqBX11/yV//Vb9A1oGsTAwtGLxRQfUguEs1hEOzO8W5DSegUr+HZLxACPOweQz48kVUDZCT8INVtePW1qN3wESrScHNkSsxqiHXIKfSJEv6pJckDc081gPVeDZVCtQF6V6OUQtJEX3uw2Yf3pNFJOnF8duK4duaruL/215mr9x/x0T88sX5U8WZgwuH2HrIgKVEeXVBKNKNdPawvko6GObpDw7HuNG8xlrRgwq//H3nv1mNblt15/cYYc661944418yqyqqsrku77LaNqpuLQcJSC6QWWFyEgG/AM0+IB95AfAS+AF8BXkH9gNQSCAEPpiUat9Rt0025yuWsPLeI2HutOecYPIy546S73RIlte1UeElHpTxxKmLH3mvNOeb/Gp0omXsXLV+n74MxoMXXYgz/537VvXMcAmEEjQPGUZ9RI3gBsywnFccQ9DKSFLtL4MsmJHMoltljQMGx6EDBSiqdYhmMWBi3A4vO6oF/eYe9UBpnSmkMr9wuC+vi+Nt72u48/96nSHd0fk7hZ5AT++iIKsONOgY6GiUAaSyxoLtS3oOw0J5pqgURujl9A+l5hgkTdt9YPivE+Rl2Z+jFKZfC6LlXmhqMBV8bnDuI0FyIc+CaZ4cYg6YDQrAK4gMlWJeKojQR9ulYGggilz+9CfgJXyMCKTl3pT8nSbzhSfxftoxnCPjYRNgzi08I+oC//5MZqm3kWUpigvrTsjgdEEI6MHqHa4BuWqYmgelwzewY5MwfkiTmCJCp5r8eOmwC3teYD5/N9D5B+z73y5Y8EeeeuXHdcs297IO9e+ZGenB8VRgXZ1kzI257CN6+6ezd8R6UYqgBnmqb8KDWLEdRMpPXmaUzkgCXkOt60ZjgS77uak9z7bpe17Pff/jjwvteqDc7EQ0038sRO0XSe7noikUw+mCw0EgVXCk5s6ueMBaM2xS9iJCBIgVhUKPT31T01Y6XB4gC0oCBRCU4Y3Gk6EbEoOrxEQgttub38gLeKejEMDZ87BQ6h/XE4dg4ffMV8ILtwxtKydKVCGcMxWVhfSHcfvYJ8rCzFM3yDlKVdyhwczihlrng9RQI68xmHmhdMU3CQknRRTdQ1oyb8IweqALmaT3soUTb0IB/7ze/jWD/hJrk/9/1tbgTZQx6BHU2qS1F6ftGkOHooSNZPC+gZO3ygLrmgW8ISBGaVCgpHx0dLCwP9ICFZx13ugLZe7YzhSaaPsQgNOvnp/pmaKqxtpEbiQjsfQbwmnIRuBvOpWXeBjhlJtCPGaxtpgyDbsHufdogAvExg3wtpYo9uGwjmegd1iUXIrc8WEYkeLUBm4KTQ+fOxwG/E4QqLoqETHubUCMwmcM7wYVgiOLzQfjLcJmQjAgz10pyU5IpoRG+2p6QG5eSoOcjyPWIEea/E4HXNwmmLhb84Lnxq98svL4x/tXvZLtXkOVKqZxJtud2MS4uc7MQjovw7CDcLMLnL43//e+d+e//wc5PH+CT42wWm/jIqpKNQBMkicmapMf9K/qVK3BV8mt5/J3gA2kZMYL1muM2f69wOAicLAFPB7qkuvFqveyR2UypevDZoJkbtkzm3CbAnGCO0EN4isdBgWnHy0kk5IoNffx8IBdaJ59jERg4u1iyeT4YQA9N9ed8P7dwejhFnVCnlulln0qJ4XNwk+t9nAy/iSYLZzMnwWakaTCrpj/eT8PTnmaaeQlXy2HVHMQEfbTS5kF01oKP/N1ad7rCPoTWnBsUC2gS7GHEJVn250s+S2jgS4dLRT4cOP7KGWWFOyVa8J0TvHwO2U2RQ9x/+dv/DKvhX4YrsjELjFETjHFmrmN4hu8vFYm0AGrVPOw05ciFPRQ9Ce8fGnZc2cNn0HagNXM/tvOFL/7gwt6cy7vZhmWFy9aQYnznVxYOx8I1qy9tHPny1IUxeiqrtNKbY1KopsRo+CipfpZkqUVTIWjimUMiAD3tsSODcffWcl0TaNJRVQapQCuS4GjvHaZiOiIzjWzAYpXrij0ibdhikmu2z2eoFs7Nuds7D+6ctzELUoThmTfWh9PpdNfMG5Gvxaj0Z3KpBhoNnaRM7imKRZ+zQ35OhieJ0hOAtIOy1GxO7T4Vy5rWuzLJniIDHwGkrcKYuZFWEBUcT+uVOlYMkwJjR3RKjyMoh0qxBMi6K1WTPGFkqYaopJJm7j19BN33jJUQIVTQqiw32TpnDXyXvHc/ZLv0kMbheUOb8uYf7URzeg+srrTzA30E4RcWu00QjzUXKXVsSXuQzSHBFEqpaDGGBmKVGjnsl4XMp8FQK4QYTxUnHSYECxJG9APoTvf3VDOaBmqee48JxfPekW8rvF04LcrRnJWA6DizgVuMhVSCF3HKcuJop1w/doEi9IfCs09eghuHcgOSB7tilUN9znhrvPirn1P7xic3LwkaojDGjtsZTBij4e3CwVaqrPiDU97B+lbwXwzuD8I4OHXJPKWIoFSwqriWLNaZFsDWz/jrndF34rYwjgpaqYfCLs6l7LA6oylxCZYC7RBYATxVgDleOO5pYcKEVpSxGVVH2r4sZ81g4VvP1r/oj//P7frhJ8+Ra2wCmmQdEySfjXEBsy16rlNfJacTgsq59urMYJKzgIpORdbH+XrM86B7un1SZSrcHo1SEog61Kvqiox1IRW/zGk8P1efDYIJiLYR2YBahdGCbaQqfw8nhqeSfoL/RRPgGp5k+O6OG+w72E3BL4N1EZ6/qJgJ9287b9/sSVj2kWcIydlPJVgOKe7YR0YRyCy2sglmyWPsxDxzXInbJ3hd7wkIQhZu3gv2/AHvTrZfKiY7xfYkYPxI6Jk+UmiiGiT8Xul9ZFZUbEQ4fVwYMWhdQAZVHvAO47KwvBjgQokdpaOz/M5tZ0jFLQvxnIVRHpBY0VERP+PsmY1sjoRhHixxi/kFYidaWt7XA9y8PvBwF9y//Rn5wwU8sOhJCKyKnD6h7TtrWTEqx6VAcuYc5YjpKRs6zTCtqCb5iSli6QQwrmTYQi0nrObz0Ici7BglM8KoqG78qu3YjDH45T+zr8HVY2ZkTBSckS026k51WErJw+DljK2Fvg3M82AvI9CZ4qEEbiDVWQ9CHc62BfsINslNxzRbuZbMjKWNYL8YrTk7ydSmkiaZkzFDtLc91TTD88DZRh4CC4pNxjqzHxIQWA1MR97UmnXhI5SOM8LoJpw9c60eItgsKIf0NWvNw2Byo8LFM6eik2IxHUGEsgPqyhcPnQ+XRkVZGCykP3tEWjiQYPc8wMRc7AVnkbR2/BtP3Gp4KspScnn65PXhMW/smiyQ+0w8gi85k8b8THnM1boyidevq8C7S1BF+Pat8Y/fd/7vnzZeS/C7P2/c1LQUqiawlIrAtJ9qzM1N4Xx23t45//m/f8vnPzb+pV9b+fyoVBPe7cFalWdLetRDJ2A0NyETzTrg+PjaCsJxplNue3CzKm3KmCup4lokvfCrpfRZ5/0SOJvD2TO/KQEwT9/8VPVcK+1NmANEtvDpZMIucwMfXwXDSMvIU7sy+4DHBshrntp1Lb6CLn/z+0t+XfIzSLuocYlUPOQgNRHIYThKH0qZKiqzVCqZaKovVanX5qNZNV1nFpuQnx0ij0GOIqngdJRcTcejyvASA3oq+vA8tLrP9dRTgXASIYaiU0mYSg2hiaQqdSiX0FQatmzTiXCWG2etkdXpeyVawcyIH9zh39/ZLkZ50fnyj1fW73a0CX/1tWeOSg+aOyUGN+Wf3qrsCQMM1+vgxsESxDyY0h4aOqvnNQTEOZ0cKdN+2nLgPT80PmzK+bzz6vWJTz5bKLRU8YVTDpkr0opwfFWpdaBbY3vfeP7yyM2pMBqMbfDzfzAYLW2Mp5NxOpW0C31I9cyLZ4WlKqFBMWHEYOszQ3IMFklVbGbDwd6CnQRD8MyL8575anHN0ZlZMaEJ1m49LeGhCXqlBwKYIIZo4IfCLpkfEhKZMwngI+vQS2GPzNQpi7KsC+7B5TxyL3DLmvK90UequnpkcHOMp3mv/Rf/8Q9noY3BbPSFSeJMsLFfGoxUiIQL+zajH1bNOUnGXNcSwDJVSs11yyOI6LP5y3BRzILeBqqVYtnkRVQYmmSjZQi4FH1UR2ytI9dJuCyUmbflA6LB3jpjBOJgYsSuaDdCDN8cCWFsCYxGhXJY8eG054a+b4yRERevfz3bmr78vTPRN6oG6hVpjXIw7NmOkrbVYvZIEISDqLJI5sOJO9UilQsBpRqL2FznOyFOb0FxofrTPBB6KFtsSMsSpAgFV5aIDPv1ZO6XTPbgsAhKo35vZ5wDK8ZxMbRo7l9FaALDNAneMXjmhWW2jdt6QlahHIMLoMcTLIJJpdgBt8r7n/+EV7/xV9D1TFPn7GeqHjKDyleWckORA3YH61vn/OWFuBdqPVJeF+S10L4Ny3xdC55gu2TjrBVFi9C9ETiFSgzBrBFqaO8QnbDO3vpsSk9rYbwYVEnwzzDsXADlciUuq6LsaS9XRdhY1kDelTl/5Lq3ysZ/9HmbGXZP89766vX6eKAs13KvnMX2nmS/Co8AVkSuacF0OUhahOMRt5jB5yosU46kmkRIhsfHDG2X6z/HRwJK257fYxvBb/3qLcdFU/lFDsI6P8PmmS0bZASESlLNRbPFuveA7mhNtZm7s40US0jJeBCSl6FEAp61JphqTCJTs4SqvsjcQTl3Pv9s5VvfWnj5YuHNH10e7wuRVKKtNsvNSs6OtSoimWWpluVsq0G9lhZJnm2e6t3lMyNZgF/7zsKuYItyKAa+IgNCKkjBRkdkw9yopWNSWB5t95epWroQ0tndUCkpcPDAL5XCQikp2kEH+BGXZyD1MQbJChTVJO7CKOozLiToM0x+3zKaIcQYIig7oQ1sQXxl3y+8f/+W3i7U2vjk2ycYB+7/8B5/+DnS72F0hmfL5eE1rC++zdLOlOoElRDHfWNIMtpVN0wGp6VSJ4G1mlLDWUudYoeClEHoTpWCUlNpa8bQe2RU5EGIpowDvHzxKl0uv+Rn9rWZ0JxkbQVh987ogyWyP9D3xjhDiUrMSu+QzBsYw6dUFxYrKRvWyRQWpR6UPgTvI5VOPuNrxVlWpRQoh5SV+FQuQaqhBsl2tymj90h1lXmhTQsDzIHOje55gHTNt1Ulgz3akHzdKmkpVGi7ExIMDfpVGeSSqHy2+aI2rRmW/m9FWEQzv2Z0siPKORbhVAxTx4fymOAlwVrqBLBmToFOOyUJAqoKp6/PbfBncqWcU7C1PrIMMTcRpu10/u2jrPRqvZK5iekEKh43uCTH0k4a8JO3g0MR/ugS/P69s+3Bm0vQUq2c3yuuD1yiOwlG5Yb6n/zWyu/+bw/81//tB/6rv33Ps1V4GMGhwGnJTbKQ7NChTM/6fG1MVUFMAFQ02KdN7bBkc5KQmRO754FXRdJ66wnShuTX0Zk5MIJzvwJwaS/cJyO6WoIgw3lc8q9AWgRczmCVqSCJtDhqKsGe2qXz2boCWvGVFfirqsdf+2xhI0GsPRx3ZQxPJvV6g/j8ujjdHLPZLDdBMFWwSEY7c7nSJqqS1pu+5+FTa7anEDC8IGpp45Fkd4O0EjbyRZdQGrCPBI8CwdWTpfxKEG/aZAV5lLsrlwGjG01HskYVlnVQVlhLbkkjBu9GZB7OaYNjQ0qgLx7QW+VgzqtPOrUGWgeHk1OO9RFytoD/5t98/ZdHjfWVa0Sbhx2IaIQ4l4vz7l7Y96BgLKWwZsAFqoKVyu2Lm8z4KIXdBx9+/oDLglTl2bOSAAX5DO8X57xBM2F9vvBwafSHncNNyefYMtNRhmae1Bj0h8HhlVKLIjaQaJhkMKxRpi0f1rVSF8kwUfuofCU6799eMn/NJ4lVAsEoRTm+yHsvuzcGa832zN6SHTadrcWRSueA3OM9yw9CNNVfmo3EgcDIBmGP7PvNAPwEBYsFoSOBvtkuZsAi/hhh8BSvanMm8gwkvrY2Zv5TZo1qKbnGedAvoFU5LAv73jDJlM8iyubB2AVl0FvmbWVRX6pJh2RhgASTPR5p44kAdUL6Y1NrTmmDa2iuzfxJQukxiHnc8AhCFJ929xG5h6llSYV4pMVaCyVsgvWC6oVoweLO2JKQmGWhvPi+4UP58JMHxmVgzenvhPbHd4x9sDw3/IOznCp1rfRpMVQFrFKqEFIYMXMqI2fBCOd4qMhRibDcU/ugzRy3p3aJdtQqZgOrDZFc04dmVmNmbWraujSzZMMqx6XT3h/pPWgjyYyikXthCbQWogS2HAmCBWWVaV8mKFZATwy5TDXJPaIbKp32XtE6KJFEMTg9AqRQnp8Y4sTbM23baZ8sxCdGv90ZtqUdegwiZpmFdNw0C5i0IZKEc+CsqyFT8r5GwUree1JsFnNkvpzbeHRy1BBG6UQDlc4omcl0QlMRHUlUDneIztFAdLCcBjaCNYQyBAll1eD7zw1/4plGv/7Zq48B76Q6XkgwyopONbhMdXDmV8WUPsi06d0cNBsyJcnCJGKTrCbg1a0lUKn5jD86JSQdNMsqHA6SCkNTnh1t2vMj7fMjZ6jPv7FgmmQS5Pf2SKeFx2wV3B07ZkMrc31jBm+n6WfmbQHLmjb4PrIh0T3Pq0Fw6Sl4OBwgDsr5TePls8ppEZ6/qtz/YstzjCbprCp0cawoRSSJAc33aaQIlj7S1r8uEyC8vudP8HocNUX5d18eKbcbHjtVg1VGzuzSCTohaZdjnuFDZltfFBCb9+eCj0FZM8dRogKNsnZ8KH0v2LoSfkRsI+iZE8m04rkRck8divcLbW/47kR6XZGqlFVhuVBEUBmEHNEyUhXPmITBc7bLTowgXHn2+jnl9XMu7w6M+4BLJ1TpbER0lnVn1JU4O4OGS0XqSqlBrSdGKyiFrTc6YKXS6FAOmbOlR5al5CylaxIYdEQM5Ui5v8VGw2+UXhJE/J0ff2sKRn65z+xrgWJogGm2wagqixbKqgzPKmhRxXdHl3y5ZlCKQMyMmBn0OdqWQNYYU2GVKPa6CDco7RyPmVnXgzez1c9N6CNAlDac1gOf9oUiQveReRIi7O7oEEaPDDseziZ5GLxESkJHwE4uslbzMC/hDE3U09WQMrNhJD3Yg0G33OiuFeEJunzMpWiRwaJmhohjFtxUzZbHkUx23hJBC6eNPQ9DJCATswlGJduF3Af9iZ8Rr/a4T2/Lo8TY5t9xtebJVTL7FdWW8FGpNb9SYDYTJhP76U3a79ZFeLUIf/+LnW8+K3x6FPaRSFefQ1YGoed9FhMIm7gn2uG/+4POlw+OmfB/ftEpCH/rRyu/9c2Sg7tkE4oqfOOU8k2biimTvJ9Vgt1jWtASTNi3PNQpUCxYFqWN64aXz1PuSZm3FoDV2briV7VRzDDLPBw8qsCuku6v3EMiTmOS6JIbZkRmOjy1K64Ww+vl8cj0fRV8+eGrBSXY/CobjwlIpmteyAaxIIf8cEXVqDJbxIYwmtBbAucRyiKOz/XLNLI2WSEYqOUwEpry93yxV2tgzHppYUxvuiEMVx58Zn9hj0NTmUD4YoGWDPmvy0Br2rxYU0VjCmL5pNg1AELIrJ3mdOl5knFgKPEgHH585vjrin9pTJE/ECzrZCw97WI/eP70K6D/tKtaoZrnoaQoZTHWotzYBKQt81720VMq3Af73cabLx+yAASj7Z22C+1+Q8N4+37QurFvgj/sbHe55hyPxnqCw7Hw8vNCO+9p/+nZbqqROUjnt531Ruf9A3sTvEPreSjzqz+ZzLTpnrlZoDAyB8xbHjoazlIGSx34SJB2WYW2F8pcWExSmTx0QJkB7j44755xAZ7gajr7FTejZpghbtAkc+0auT66pypSfLDgKa83x1RZSkFMKGVmOaiAWKpwntj17GiPatoIUtHm01ISaQFEBaehETxcRoadL8JgsBZhdCfCiNmCZbUjAcVqltKVQp80hqjQXYmohCtOx7RmxoymhNkR8JGZZlFwJ4GxEez7nFVC2ZslMeNCb/2RbIyYuX/SCEvln2hBRqr6bOtY6xBKRSjViFOhPATrAep8TTc/MNq7wpvfP3N5p8Qo7JdnvP/9xvhF4/iZQQxEhUOdmy9OLZ7ss6QiwyNtmGPMNXUVDofK0EAtQbOvyRj+z/1afEU2x2qhxJK2l545olos35+pvFOZ+98YXELo9xdWSyuye6p8mc26w/PzbgS9dFxTcVOGYVagrpPgKYzRUVk5xoHLz98jL1/QxkDlJg+gYSgnkMbY71jvDkRx7NOVPh6IJow+ZtlKTHCqUqrnZttgMUWHUaLkvisZ1FRDUG/smqS7TzDiWmAwIhIMjnSUXARwR49B3wIrwcAYrjAMdZ/nAZmznjFK0BbFHPaqhCmDJAj+nW+9Qp5oHtv1epatJ0nEymwQhDnPTyeLCGIfJ3u4zm0zGxnh5kb5W3/jBb/5vSOQeVCmGdr+5sGz0d6vGcR5hrq2SBs6bY3QW+d/+rvvadtgmmIwy3PAT7/YH+2KzJ/tkfZ7wonLoB4tAVhifsYzZoY8MJhE5lYBRFAIjuXaUj7TwsJZSt6emLCuSgvhyz/aqFV5fmOcjoW7L7bHGB4RwUpmV9pUYxlZalU1yVIImoPOZnQVeczufXLXBD9v9cTh5Y40g6jpsJJOsRUiASyXzt7TheViyLDMTLQN5Bq74tjlNIkjaDhlWSihoIO+D4J7unR2L+l+EU3izXfoA23PGEWRBZb1CLYSayFwxA3TgoriOMUyjD284MOyvbIcibhQysK2DWTs4I3nz4WbT56zvW28f/8FcjmzmGVZQSzUUwE/Yl4SJK4L2MJyc6JvlVIU0xtEFnoLYMFjZNYqQd92ShXOAlGEWk+wCf7ujC8DWT1dAwImhc/kHVV/+XXra7HSxQzhSR9zsm6xJ2hTDkrtgTqYdCzS/hKeNaejB+eHWY2slTHGHH47SG4s4R1Zsqa+mD4yfIulxz1caX2wqNBm/XIXn9YswSLVAQyjdWXfB6On7Yfh7COyDUhSMlxIu4LPIb73DHQOhP0sdM12pBpXRVaqySI0b/SAhtBc5yKS6pfug8dcnkjfbncFSbYmwYXcZFWUitGSSphgGJkfNr/n5kzVRvDb313+Au+AP+NLYH225Nl6vp1XpubqmZ/C4RyY0ss3WWGZ0uIMybuqn2yqcb58yOa14cHPHpytC//wF42f3udpLpBp0VO6k7awqV/tkdkitQj/4z/qnD2BqT++T3a6h/N3/mDnf/5Zf5QibyO99beLPAJu12YgkZmXhjyWIoR/NVMr8rAZaQU5VGZIvXBFpPZI+djsPmApGeKdWp9UcEEebouQXn9JFZhq/tvmgvrHxSXtUPkzn9rlVyDrioPOkHT+iU3+hy+EwLLZcoJcqrOlkET7ZA6pNmudWxd2BCuR2Xc4bmlNFR1py445tITiswAiujJahstKDCJiQrep4FMJlimtk6liKJbqhzrPVkI2ZK6HTAMsU4N30MhDbAQbka+HzF4TCSpBFKXbtIips1/gQxMu5zxcpjJnIC8yJLl860I/rdnko47MptWq+f62cO77NRvwqU5Pf/rVxPEohGYGwrokRvjspBSb5noZiClWsjwglkKtcDoV1upsXw7GFkQPqmXrVS3O7Uvl5vkCkc/serNQD8Zv/GtHDq8hNLj0zogcdMWU/sE5Pk8V2FVR0N0YnuTIGGlNFTNGD3oLvA0inK2l8ifItt7ACFf2rpz3oPVOyOD80Lk775RTZklubQLjDio1N85iYCm/B8FmPMA+U3a3GLSR+UkjnCGRRReppaT7SFxVljxMmNCG0N0pmkOqFWhNmU6gJ3f9Z//BD+aeOAmumee3j06XJP1iWpoDYAh1TRBVNZBqVAYyJG3FbrjqBNg7Wm2GuIMWT7uheAKvPji3YHi2Grn7x6bJofSRuS5XnEvMKGtlMaVLEDLnQAKrlb4P2j7Yz43tPIhhM2fI6Ftj0Blt4AR72/H3nVid/dJZTgVTRaLkGcbSGru8MKI5dR0cXjkvvwW3n628+6Lzi987E/dGBep6yjXaUvHaR7aLqUbOYzH1ywp+P/BLZpGF9zxoPFE2UXVmn0h+9mENquItKO87aD7GVZRTGAc1agkiKi8WpzpxnwAAIABJREFUJdpUBtZUvETJtqtVlcJsgibotmIjQ6zt4nhtUCdgTd7Tl3e/YDycuH29EqMxSqONnSAyL02PHMNo9x8oNzKJ9AVMkJoFSy5BLC3nqnFKwkoH4gvVgiE7IjXBJCqsqfhKgsmnKieIckBKVql4sk05OmhmbGXxcDaBeUkCPG4GXXMwaxhDgi4VGYUlguErh54ZTEWDUpTT+gZ5wv1Ox5nd+CiiAXpyE8QsvwqyqfkRiJrWiyvP6KI8bM6H+87f+bvv+b0/vOR5KT5GtWQ17mxGdMkZe+ZHVfvKTD8jJ5L0mcqtw1QvCwne9uA3v39KomYeOfbuxBnqqWYwO5JRDDLn+Pm7eTaY4Q4rsFieF1RSYSuTkBfyHvKR9urdnduXBY/g/GbHTHn+orIU5cMv9pzpw9ERj9mpyS0EdRF6z/XLLItBesjja1vq05vp4YplGb/91480LfiWlssxHsBv8HGhMDK0Q44UKxOkzg/er9looURVvDt2VFQq7oVqDXSgJWczO1UkUk1q19xKCVY5sJQTUfJAFeLAwOUOm5bGagdEB0PSr604u28YhRIpCur3Qrvr+EVo+45osGHsZ+Xh/sJ6DF5871PMX/PuZ/ds9284cMPB8hx5fHFEdJ+NhZ1ahVoai6wZeYFTqiRJMQPVak1y4bgesWHc7I3ysNPe31NU8WcFK7NQoBsaSg2IB/jRd77xS89cX4s7cSlQ1FJp0jUXnh4cFs062iYcb1MlFcPwIVPBAGVJz3CWnI48MAf5QPdsljFNzl/qPFQXo+Hc7cH2MLOvxOhEMrMAYoyAizvnMWjkgigxCFW2yFyhNsCH0SQPBC2cHWfHJsCUaozeg8sw+vqxkjqSGiBUeNgGdhQOJ+FQsj2xedA0QZQCMJnxmHaAs/THUG0X6KSNrDO4hl9UnwlRlgGJ15wjdaeEcqNZRf5J/Yv45P98LiuVFysJXk1A67oJJrg1VVpXUEv88b2a5AZEHvSvrMo8/0xARxkjFVeXHrSQudElwjEkNyG92golAR5VYfPgbnP+4M2gRfBuh0sPvjwPjlV5++BsDdbZbFlVqQY/++AT1Eil2EBQzwObKtyuE4QjGZusL8//BVgz1TsXDM1NqmpuWE6CtybCUSVbUEYyo0ZQIlVbu6dHfxszay6gnZ11yZDAuZyzz+ekP8EjoV5zm+LjYvqnHU2k1FReApeRCoTmOeyLOjqLHhQwc5YiCepP8KuUHJDUMhg0hiZYJRnKHjIZQE+5e2rlmcBmkgASjkbafMJ7qqmGswiPL76qsmjWNRPwzeeDb34nZqthPjdOqgqumWi7BtsE11ukFfKIUE1ZQlkK4MLf/t0gusBGWnoKYAPuB6fPL/Q7cJ1qs9EZJGA2SEXjoZZ/6s198rlZebJBtCcDZsKyBPd3TnSoi85MAsM9OJbKSoL0M7Yq90ALTqegnQVX41gFaYOlBrenvA/6XWc8CP/X/3LPT39PefnJc2RTODttG2gJOCkPrtyfnYcHZ7SUureRh9IW2Ua4t2TmrocKn0SAM9XBMWh7hpKOPth7MNxoLZVCpRl3Xw6QtOe3EC4jVQ3WE7wyM5oP9hi0cIo542HgLo/B9AzmfW/4VCIW0lq/VkPVUWawvEbWqIc/Kr6rZCDqU2wzjD4e15K01vgkPxR82g+H46JpnZgxCe4DmXloqOI9n1Qh2/lmDQ41BiIDHTu+GX0o2vMzbCOwUM5bMIbQOjjGNi3vjtNkECa46SRRYB8DhjDE6THoI8snMCMwllPFLQ9ytRY6we6Du581zm922odBp2KvKuur2RBLWlQJR63MPT+4vU318/3P9mzW687hAK/+SuXld45sbzr7TxsP/+8dqwvmGfugnnt7UUMk59X7D537L+H9F8L7Px6c74LLvXF5GDw8PD3VH4BOEC+uxJpk2+hFg/MNWFGkKcsoSaK5cLqt1Nqpv7Kif2jEtlJc6SKYD9rolGK4VnStaSvMii2KdnpURikcjsJaV5Zl4f4fPyDtlhc/ek6zwegC2xnpSqFTYlBrYX83OL484lFZyoIVZVkqRV4wpBLqMBYkjoTEbMxcCL1gcmREwb1npqQuFBYWE/AD2guxKrsK29g4D6Nrrl07zuiKb5E19xFgnXFOsrw7+BZAlikcFp+RK51DLbgLdrPTzagXf1Rgo4Pf+e7zP30geQLXjz//NAk8IUFJYrao8miNyzTEZPwiMgN2TDEAAp+9ShDCHc7jug8lKNY9XRWdnM2uNX75duZhoqXDOP8+NLNKJ5n78rbgPbg9JHJVDIY7//An51RqNkd257godpOeep/Za0ja5dtsj72eVTyE2B1b7ZGw1sj28VXyT5k5qniw7z7PxMHzV5Xji8r2pvHyeeWTTyqvXy48fLFxf+4JuES6OG40SfhV4LhkU/ta8gwuE2Gr5crgPsUr592//uIdFoOonqIWW7FyRqQkaB1g3lEbGAurQLCToVqJJMuDMmQl1PHNcR00Fs5d2fZDKojLoBVnpaCaRMzwnX1tbO2Bw7rQYksBSwh4nSKbB5AEJE81yfCqL1jGAXOjLJW1Vuy2oqdCPRrHZ4V6U6jrieVWKIuzDeVy/8DLbyq3n3+L/uGGD+/+iL1fGF7QQ0fOFfV7butIIY8Y5XjDw/09WpSqtxkwX1c0c2aAjG4wDZoJfhAOtytagwJEPKSaUAW/DHrbsdr5t773DPSXE9h8PU4CIvhojOE0HxjXkHbFJJUl4YN9DPZ9EJ5gjWmGSpqVDOQfwb4NWs9msDHI4EmxmQSoSFRac2LMRceUnZHgUcDdGDSmrHluAgHsrUIYfR7gEctBypWI2YAkwtDMrGpzsRyReQ1ekkGPiCl/zvpYJaWkRZQyQ29rnRLXGfAtTLZhvl1OSvdlWKY1zEHP3R9lzINUjo1pGhKHMi2KDpxHDo1DMpzwGjL5FK9PnheurWxTjfyoyIoJZAlfAbgmyGOkRU5IQPRqOUylE0BunMDjQU01ZrV70KdaIJm6K0MkH5sup+MKEe57cOlM1iM/6/vtWg0Ml5GbqthH9kkerYOpkuokuHZalBDNwMaSw1HIVGQhrHnrs8x77PpLBGkBigj6BKMePAP0u8+A6QnCCfle9kjgY3giGzZlZx/zwdKa6QZP7zjIfG8//qfM3L0/scVPoJl5aF6KUuTjOuPxMfvMJJV30cessoVzwGVPdczVkng0Tzm5zgBdfAbEJxFQZjh8FmrkGmKSgaRK5m9k5lpaSBeS6UvAyqYNN3j7dmG7H3jlsSo61YmeFbzT2hMzQE4sENEEUH1kZk4IPlIG6B3iDFwg3ljKt4+D/lZ49/+cGL8w6AmADncuI5+ZCPhPf/z8z+9z/ZpcJobGzuJ5b0VMUVTN9tv1WEBmu58IbTi2OKVCjIFYQRZHXCnPlpx6fSClsrw6cPvdA69/eOLZjdJ3x7eGv3X6hwtvf/IOLYY9M569GNzdD2IPfEvk2oqyrhWriqizeypftpkJopaghiIfGzYByGrxOhtO9x7ECNxbrsST/R5e8Ov+Kpmf1KaNNySIsWc7p+pkM0nrfh/sW34tj4CaQcsOS2Qe1ihO96B1pWu+qX6V9pNk0XS+oVJZeXrK5REJqmtNFQAC3cfjQdjEULNUJgyjkrbSEpoq5UgVZVkc6UofSQKJOLjSSYISnRmjeEYfkGreS+9plQq49IxfUFH2Do3cc5p3Opm7d750tq7QBRmWhwWZxQIt8E3Y3vdpu1fapTHedeReWV6eWF6diNcry+1CKQZqqYRvG6NlePwyZ7GlpFp1vS1YKPvDA304DE97+Oi8/EHh9NnKza3AcWV7bzz8ohGXQezO2J3zh047w3o4sL4uHF47N6+EwzPjdApevoLb26d5INQ1qOJIH8johAs6ssm3zD3LijBkn4RKY9v7VKcMjj8S7O2eitEqIBWVBVPhmR1nwPCCuOX32gf7aoiu9JF5DOXc0KVQvvWaLnBaj5RiZNTMBWJBqGw/e8Mw5UF2RBIGSfGy0+KO1lN5qhWi3FPrILRDUeowIjaWcMboabGPC9u+cz7n4axZp0nHSlCrTCfGVPR4lj7Zypz9AjGoVwLe/DH3yWuSm8LIbNS+gUAJo2p/zDiV5uw7/ODFzlMUZ31yc8hzT8hUpk/ilpw7y8y3smvS+zzPqeS8+o1XK3/jV0788LMDqrMJcoZkBddYEZlzdu67geAjTwvX4p1rYRiRwevh1/xn+PCQBPWXd53ehb452qE15xvPC/UgsOSZMkhCk7iqwubPRjJSR2K2jqdStlwJeIG1KNd+HI90S4zmaVnVzL/qkcVT3YPDC+Pu5xvPTpVSgxefrrS7wWXzBMaS0mc1oyDcWs6d6hldYWNc03meKk6KEPzw0wXxI6JQpM4MwI5Hw+LCQZXDJFNHF1wHg5LCmjEjkCLzZy02+mVgxxWxNps1G9R7pDgyBnjDxQk5E/JA6JrK9lHzM/Vgjx0XpcmRXpzjcmLxbBcWP3AoldAzdYFiTkRD1SkyEFsIXRFfUF8RbbTREa1ZGnZY2M7GsTjPPn0O743zhzss3iPeWW4P2PmId6FKktQ3NwekL6gsqF0oFMyNZUYgRVRGdJoXlpIVMU6fz6uzxA2XAW4G1ehVGVo44Lyov9zd9bUAs/qYoY4uqTZwz+a2HviDTkQ78GGYKioZrhhDp7KmZaheKOuSG9veI9tDzLLdYmSgcfeeTJEKPWT67Qs9Bk6iryMkH36HMYxLKHsMHsRpGA89n+RdhC6DIUKLeWCMDNYuKhCGq9EjQyabCE5aGRCmVDV/TyUzcYY7DUdiBg5OECvmwB2S55HTBGWuKq2s004mwjzfl5gqGicbye6ZQX4T0T9Y4JGKNBXlX//uU63znZlEEyT6mGV0bTDkT6zKjywImV32J5xkEwi7WhY199P8+lUWLB/5myBbA5sncBRAnT/gnJbitFTMRiSmFTCQqbaxtFIgHCxVWARUg2OB1ydLqbPCsSTKpnH1uGfeUZGsbD5ovpZrE2LEDPaebNLgY7hkmUDeOnHgm5mVZOS9H56/RzHhtkyATRLI4VFtG/iQtC16yraf2vUIhJJWT+Z98XjTkCrRhy3obVpPR2eEskiCpNehCSDm4OTTzhn2sVZ6EKkQJWie4ZAyJd/L/COTJUx5faIfwx3YKeoUB9qgzgyEop1rlXU15dr0aREcJ6N3f1cy+6HMhh00FYKaisHFbA5/mgAd2Si3z3cmANzZtyzjUM+sEe2D2HbanbG/C8qLgLLQHwK5KD7T6faeWQ2/8736ZHnAf9bVh1NkSTTYM+NwuPBwHxQ1fDS2S0fmVl4PSvcKKlQz7t/esT8IYx/sb3PDH67srVFHYF54+5MzeEdE2TY4j05oJcwyn6YqdvsKqYYtFaoih5kFJJ6HCbKdRlQ/7muPkvvrWhmzvStVhVvk75cDfAJ3Vhy1YMy8BUeSsPK81wllHz3Vr6JIUWxkJuUwwRmZ96FpDRq9Ex5sY2S+l3vuw4lL0H0g5CGwR6ps8VRABolmtRg0e3oh3aYJQHdpM/9FsFryfRkwfGTmoWiChJK5nlLz0JYa9twtbNFcH8ZAXB6VeM0tS21IMDaDg2GMtOTsMRiear7uQidw71nqBLRNaS3ooZRFOKww6iDKJA6zRhC3gR4Gy+1C64bfCfubwfLsQLkBqR1bwNbCsICS+/qQVIShaetvY892x5kJU2olBvgmX9lXIwNsh+b9ejyxsvHiswPHVythK+cPwfYwqEvh9NI4ngBtqXQblXBnaOZbXp4mzcNwz5ByicygA8SEg+acZKY4g6iFft8orJgv0AvGYGiw3ATb28yDCcuGtTFDlomSWXZCgtDjhsOz51SW3BOPK1/+/MzrH36b47pSeqHtWQRltRAhDDe8tczHO3aKVGo54ZEZSamoKVRLELy1DpEW6hgrNQZ9tgsqihWj25EmBVVlPVU8HNVB38ujAshjn6RmkgLdJW3Pni1lItBW8J20WFrOBB5KdUEr7D4oKDEGDaeR5LycwGrhKHDs5yQsn9j1o2+8zPnSM7PK5JrfOh0JATmI+uM+JMnEUdT47X/hOf/2v/yaf+U3bvnmi4Lmu57OhjlkJOGXA3OQwNV1HmOSznkG82nBS5JFJ1ksKmgD68GqZINwzf3wzUPHqrHOglb3oHef6zDTyZG/w7XhVyxnsKs2g0lMjjk8Nvd06Hg+Z6qTxHk852To/R7gR+Pdl41lLZgJty8X+tl5uB+pzKoTOFuEc0siqVgCZ8vBOFRYF8221id5GX/zRy8wKWgM8HN+zr6gcSTEMgs5NrD7nBccoMFsgXSc0s/YOmiWzonwu4xMsLxvy555bC4V1YoHlDiidqQBIo1NBmfNZz7GMdeTkkD8ZfS0G0un+Vv2GBmT04zwiuwL4cEqtwx/h1qfGbpOHy1nNVdCzrh01pMiHUx3nn32irI/490Xje1+43CYMUbnnh4T70icc+WxTkjBNcF3t0rzim6DdanZ2N572izDMpBehb1BsULnMkHkVIG3/Y6/9t1P+GVKn74Wd6KZ0Vo2cowpkS3VQJ3t0gkRemRD0pjKl3ChjZkHJGkZKJY2PC02s36yEcAjKDVl83uHNlIe6gI9RqLsllqEJmSoOxn+2orRxXATsk3CCIV3IyWrRWwGc0+3cpnDfab3MWTgUhjh2DwsqibKHmg2H2p6TGMGWcYc5JvnH4CKpV1i5i45maFz9VhnEfCAGGxc85pSISQRmOfPrBitRy50eVTA5m3wbHl6mx5cwavgq3WfV/zqqwyDXpmy3PsS0IGs0J0tkAYffezz316vIC16w6FoAhUm+ggenWqCUCZ5cDLSPpVLS/5/PWCtaYe5KnbSdnFVemXY9ye3yjeeGZeegYKryFSMzWwHEco8VJa5IFz3navVMoR5KEywxAiqKEfNd0invHmZ78UhgueWRGHOB3kojBAWlUcG8Bro2l1Y6jU/INmsp3b5Vxiyj3XHuRZEXO2rweGQGX53WwLOB80BI0LZdn2sfMaNHhMUnRI9welhqEOhZNCnzHYvMqDz+t8lroeFudaEZK4NOpu/nCJxjRxCxD4+AO4sE4yYi1gq7a6fW2QoPfOwdxThpDNfJJyNwSWcLfL+F5lh9pEho2MYv3gLY1diF/xeaB+Eh3egZSNqw58/cP/mhPcs0QgBSh5y+1w7/zK1Gm4Pnbt752Hv3G8Zany5j2y3vM0cvrY7+z4QTcVBXZXv/LUDEsZhWXK6LUaxwg/+xRM3N5oS9UNl7wq9MLzAQ2NZDDsWhMy/woze4Ms/ep9/Z5Gq5qSTs0nYhMOhpOI1mBXxGdyvEhRJ28RCKqhcP95SqxhiuQ/tLmx9sE/QtzHoESxcg8q/gvgm1YC6UJaSxRQDcM36aA1AkGIsKhws18PR+wzED7w72/nKIH5U2Tqp2HGHDcsD9BPMNXKYWTBGlwZIsvkl9xKfZThzO6AWoCv7VM9jpI1Q8z6oClaT1+8j2Htn73vmDTHVVgCWe5TUlDK4D859w8eYpJzxMFJ9XxelVPBwhkiqtGZxRrG0vIyR09CeDkTUOhyc5bZADcrh2ugclDxlZPbNMMyzndXIuS2sZMlOhheyFijulBFYmQHj7pS10PsOBMttR8YK0lkPhXpsHF86Ny+N5RSMfdAvO2soVcCjPapJkpjwv6A74M/2km7cC1NxMrMS+yQDI8FnAfCgvqxczp2gIcvKw2Rx4xk8vNlpKKVWxAqhUMvCiA1GRRl4L2xmyCqEQpED4/4DKitDBjtnejmnvb41pLdsuzRn6WeW10dWX3CXbJCVVCFqVDRKFlk0e8wkNQPTzujOIsYug10G476hd/d4uzCkZHYfzs4RRioTc/JLO6u7MULBOyUEMSEsyUu7CKyZDVdhbobZDLuPoGo2klet6FS6cgq2LxwXp69QK/zqp0+PpI45NFeBQxWMFBKYClcarE6QS1U+/hGIEfyvf+8Db3fnf/g/vmQfkdln11PBJPf0MSs3DwQhCTa6p+NmXPNoZbYRwlRURa4xm1NWRVbLz3USPD7n4e98o/KNV5XPXxtFJbO1FAqZXRXT6VAtgSQhrVmlCr3nyJaz4JVQ/2ipHAStZ5tsePDhrjHcWY05vwXdgvu3/bHU49UnC7E7b39xeZwxozmHmiB+UZKAnb/v1iIdSE/wUhFelE7rgVApx+eEG8P3zKu2gMjJmrEipApOYmC+Ew1WCUYURAY1NDEESmbD7gMvIwm56XRwb4gXRJ2ISkTDxxGqYSNPo673CaJ6pcegsdGnmGdIxT04b2dMM3fZ1ob9f9y9Ta9tW5Ke9UTEGHOutfc5597MyixXlgssW9jYgLBpIhC0QUKIFvwF/ghtOvwH2vAXcAO5YUq2sSyVTdkm6yMrb+a952OvNecYEUEjxto3bdFIJNuV7Jm6X3n255pzjREj4n2fN3aO8yMtjIzgjIlH0jXKnZQg0msvl43+/oLMjuqNd79t9O3KvE2O42T/+krznV2E1ioxeNsM3S7Lcl115pZGD0e3wVBIvM7CXqxC5qQdhl1mNV7nzvAkjzVgUOU/+PH1+0Lx17ln//oeh1//koiKnW3JZhU1GekF0tzhCMcfNpyWxVDIldb1KDwe5h6RVyhzUyvwuiYnUakjTfAyta/4USuPqtZ0p9JCStWQrkRUJIWoMkSYWimFm7KaYKXCEiuVCmGMjGKYrEUmpVgMMRNLK9vN4m/tkrBsip5BDjgmy47Gwi5Xo0QfdsKEGYMjZIH+pLzMYWUDK08cN+BGcPiyTWTZLmvRT1SMUJjrwNHfYGITFPS+kgS/L6S+hyXWPRKq+WhSyZKbVQpmBOyWr5+H1MdsvYr7kJqqeD4Eyg9GTDUikgImgvDdCS8z+RzV8JlRz5Jpfeakfpj7rAnISOWYlSqiCOcC93cTPh/wxx+DH15LgfD1dQHZvcCUTeoZijWh6pJIFPfrMal7qPdU4P2uXLI67wpcJcs3n/V7X7XSyo4oO8+5fucGvG/wy0/BV1fhgJrEP1h1sZpYIsgbjDP8vkD5voHMshiXXbXWItGO9+SyCXMmNy+uDxLsnaVjD5yazI4lZ5kT3JVuc4FGvWwEPJpZgj9EI1X/13q0fp6OgyaaNSxQlZIy5yqGxdckuAIith50MS69+AniBRu1gN4Cac7dvdSmwvLvKzdqEnltxr6VTVoX2F6BSzMs4W//Q+VPvpmMT0bchPsXZfz8Qv7Fg3EWePpPDufbnKQ5diQejlJpsf/tX/tRvZ6/cg/eMjfr/Qfh/ZPz1OpevnwczBHs141rF56vxvM7oR2OntX4jPvJL//grHh3r7jo61cbwwf//O9/YtwCCfjm//7Ed3/wkc8/G4zvJvuz0QkuCOJeQSZH0GIlJ1b/gu0SNFV+8DtGZjGHfE5agoSwiXHpytaqWGoKlkstpsaWTmbFSrgJRkVNSUJMqyFP1B6tqkxxaBWEcFJfUxxyFkz8PCdHJt4V27wUF8AIL9Xj4o5kBNqtImY0MVFux0CblOoDmBmcczLdy+p6OqdHNX3f2CVLPV4HN8U06KrsqWyrKS4UvJ8U9ufOl89O114Hbu2oG8OD0wejpFucPoBlbdVtWZt5TbM9Rx0IP5+DMYIjSs01ZnA/B8cZxEymS6n3okDxM5zpXom7UraZ4TUsECv1T85kHr2Uig1Uq1nWmxDnhPvJRoUZSHPkArIrJ0nTnRizBoBLBSN7MnLy8nFwu925H8W7Oc4TssEQxgH2IeDTQdud/bJx6Y2LKFsae096U1rCPAyrhbMSrlJ4am/v2YJqljZVMhpHwp7CtDoIF2wx6h5J4UX6syKHonGypZWDYL+iW2dq4HmScnDqhS9xInnBrjvYBX/5gl568UlNmPkdH//4I8+/99uYwXV7qtoO4ZwHPYRnh8unwbFfSHHCTrg4oQ2xjmpj2mCIM0zo11KUFmYhyWNy3CdzqfskFH3uyNOVbbtwfB4EQYwgxeFdY5e+hoq61D4rtU5lMeuKW+eq7FfFpjAFUjvaE+uONbiacn0y+q5kc6xX3blPXWD0pEe5MP7zH7+9ZtZjuPFQrYMsNXs1sqzJ6/i61O+FXXk4Mf7yTy78/h984a//5B0eC/iywp5MZKUI1j7J48yQdWawdV6QlMUOglyKOk2wKNV6u6xk6MXcKL5XNUKR5J/+8cmX09m3B7y9wnTEqiZX5PXcIvForilbzRxem1ywkhlZP59WGMXzUwUOzUx6q6Hi7YwaWq8/D5Lz00Spj/vtn1xpm/Inf3ojo4LOUoW+raFO1tl7HWmItykq5d27C5scmN0Lst++xbTYpGrOGEEBDCpIZqQXDuGAkR1aMrIx1Jjn07L0BKlfKkzOFPHGDCP1iogj8URvs7idiyuqwGYvpHyE3FFJMpXhjudk6nJbBXVWyJOwjc+a3PLgPgPnjtmOjydinBBCijOiGLcpk8yzGJk5iHFjyMntbNw/32ibY5dGfHKO775j+7qxf3uSn4PnNOjQfdAkMHMiHJPGdnZaa1xyYnJfLMnFqdwah97JQSUf6qBr0mxAnqgmX8Wd1n59mPdvxCng0SiIEIjGdoFtXwu5gXTFbRJLGbPLI1GnfvyydZXU95Uftex3BVaGHHA7hdODA7gv9sbD3xMZYI/mUaUOZCtZpkkV1c1KgfVeG82Ea2vsWotTU0GteAtoe22oVaZgEZp0HXxHBGKCY9yjimrW97lTxfiRBczOKJaE51JYmYE46EZftg6lYoCNZBOFUdycHvAstfFt2pYdctnMIkr9syrMegO90ZVpta1e1VS/oqgq22BthvpQEJEFb4/Hs7U4BLJ4ZFk2u7uvJERdm8nymelSIRUlZDU8qEhdeWys8n0q5c1lpaY8on+Fw6NieA1GZj1bj+edaqD++En49pZ8vQsfnqo42kzAq5kkq/GWj89airDHINjXHhc+AAAgAElEQVQpxlZDuC559HsrFc2zwEVYB536+HhV3FRzQ6j//vYsVlhqvT9+sCt9q0+ay/8vmSvh421dIg9VVG3yrIbnv3xZSlk5A/pmq+1ZwP6ustIHVzESsaDEQl+qKYfi2+lqYi3lUzG7Zll+Uui51EtRhVGQqFqtPTgW9VxlArnYD1pQ7Ktl8WjE0aDUfa3s2SnJcEWb8vRUxVoopEaJ3ZVSjdoEd45zNdW00qjCS/58jsbf+786P/vOGTeBszP+eeeXf/iez1+e+eNvrvzpN6OashPyAjJ1NWaT/+7fsccL/2/uJv85XiKGm8DVuD5ZpRlGpQQKsix1jXc/eibuJ3YarXXu56z0QA+aQNwG928dvy2+ZApxCuNLRXn3506UzBch2S+d8+Xk6dkqyZAqpIm6jwl8+2djMd6q0k8TzALp1QBpWgOe9AoeyCgLWWaj0XhuO0aphNu2VXPFVlIsIF4NqEkshmU17ofVx+2blaLRDAmYN0W0A1qNFOlYJqPeBa8K6r23tW4rJsXnzLOe30oJru8jjyZMZiUJv7GrbDRRa4bL695nVgwWTVBtq8gti5VoMir1pgDsVvZkmdX0vjHRtoHWYVM1l00HNLyYXFLAa8biuNyS6dSwb7X/Q+pvOeo+YRuI4Rjuwn3OV5u/Z+3Lc044FPogLjt5sTXcqfVRvA6FnidKpXp1Grgjew0WGsFuGzpquGAp2GZwFyQNtUvp2UPQtg7Soty/NIaWtTEtmJIMAWdWQ7dXwvRlg0sHcUNfvGxGb9F/D3iPArvLJDIQWtl4Z6+I9rYS4wBkL3uvGnsKoRu6v8ds4+sfJd2uWN9JKbVnSseuO0OdKaDNmK1h/YJ2wV8O3C70rwSn1fPoEI16sG93uj8xbdm8RBHpGEL4gXkNqwkjc7LbOxKvYInj5LyVbezpaauan4m2JVkHIg6enxsjIaTDqACPI0rxesRRWBUrqxhRtdJUCKs9/jgDRWmujDiBqsWSSvi93YXj9KV8U7o2YiS515qqWnXHRb/8eT0C/9ouXZbCqs/z+4E0yx1RMOESAGQ1koSyuU8P/u4/+sTHz5Oni/Jf/ae/xeWiD13WOq0tlrEJTZebRqpGO6PYw49GWi6mZ3jChLZlNcvloQZb9cv6eA/hfpY98fM9+NmnydaVFfnzqshvbSmyRLCm2OvAJ7juxcJaOo46yEcpx2YkMeHLvdhWTYqd+2C5ZtQhQBOuV0G8OFx7S4YH795viAsvX7wGpCPX54O1qnG71MC/69tcu/7W712ZLpypjDhKyZsDYa80Qn1GtBp8FpBDcRq6V+p7k149i3miOKl3KtV2Z7OG6EEyMQ02GXTpbG2UctMFszsXOiTMqUQaZ3zBpBIvQw5O35mzlUoQ8ByMOfEY5JjVJArjnsFNvmPqyctIbvOF6SctygY7b8ExB2SvEJy5nDpt0p52ejfebVeersnl5Ur/9IkmjafDOfudve1MbQv9VLbYFkL2o+rC3Gn2VPZuO+nZYYwKqmp1/hiWpCouiumO54lz8MPr8699z34jmlkhTu+GiDBjYqKcN2feavUQyl5nPch1slalbHc8mg6tDnazktOqLDLGATwkelnx2zw6+pEcXm/gcwrjXGwlM4aW1a8SDJTWhGsvflfug0sX+lYy92ZBW7II0YJc1iEzK6mMIH0Wl2EtwvhKLpPyw3dgkK+8q406YKoW9k+AoWWLDIFklJrMcyUZBpEQHpgtoKFUkt6U5FyKm0yIVIYUT+myOE76Bn31r5fm942s14bD+rPXtbiaNKV+KTD/OZYubn3eK1wTOPwxqVlqKa0FXpeySx8Ns/X/KcJYnJHH10+Kvf6IAU4earwCUD0SFbfFt7paNU4vBi+RfJm1Uf3V32r86bfO19fGD54e06DaLHMdyGQ16x4JKNXkqJejLXj9tmLu22rwGVnpKHzfBFVjTQuEXeHdbvz8Y/DU4T5yHYCW6us1PaY+397gI1Yy3Xyd5gNVADyYQdR9RZN9KUOR4NKEl3utZSmTremC0tbUTHNZ9FajXlTRlO8nYQvYoFL3tWvU4WCtH2g1wppJrSVibGY0jWUdjNdkyuLYFCRUtDYjz1LMkgsIutRn9zM4RvA9Ew62bZaaQwUZSjbwllgMJJay0Fq9R7rwaSr/+KeNP/xD48CZnsSL8P5vfebPPk7uLcmXiilX5/vmGrkaHf/Sg/Q266l1BUTZxFWSp+dWU+SRbLZsFFIH9nc/UOQejDPQLApIXxy/tiliyfEy8QwYcP+uUgDzWvavGY/gh+K7aVaYCVkq4sfaOZYqWik1c9NONyt7hwn90SxfHMm1HdJWM1tWFyIksdYws9dhgVFq6kdiEhRLC5RzOOoFoo2oNSXQ4vHZA0q+lmuFYJKZGK2i7BGOWQdBXxwtHs04QNv3AzKfiXtQ7ZPixL3NyxhVYdU0WJSIQchck5x4TWzV1rhehNvd6zC3hjuTQAzuRyBpzNPJqLbUeNiFM4Faw9pKng4R7h7cJtxvgymlxhJTQEltnDPwsexYM5EMXH1hEuo5alaN7jgTLpO+XYj7gc5qRsxD+PLdIOl4F5p11DdkJjkdfDJuznkfpDTu54mrUm+zpL2/kFGBFm0ObDgyIOZk5uQ8B3kc2FMjnzrjm1EHV6vn06XYYEc9kZyANid34bzlawPkrV1tGhLJ0AoEkeaYTtJO0kFC6VGQafezUrj75MtR9lOR4B4v5Ied2x+fzOxIe6ItpEhhR8C2K8QVt8BUeGdXjk/C849+BFH76MsYbP2JvA/kU5Jn59AXfN9oDzagVJoq3TikhuMpStgg5zfMrDRNue5sHxKic7RSJTZfNjRLXJzUFWIiypDBFOXgTn4caAs6EFrcPyLZe6Ml7CG0lagHCh0yqlncc0NdHsUVDcebQBO8BeSgWVmgjjucJD6T/gYb8UVxkTUsria8rEl1Uun1/Iqtr/0LQ13h9OQP/+TO//YPPvF3/9FnfMIjMKeMBMvquTA2r40pFbZmC9FQQ13zcj2QLEv044csHvTIXLV4Nd5n1JDGZzKO4OUevJyBZwX+rD7cq5rM1vnDVPEjuT43/uKPt1J4LVVWZvIf/Y13VROsOj9WapjPlSa8APDxquKps2jaGtSLVs1H8Nu/c2G+BK0pPkuJ1LVC1Wytt/X6vMGiHvgPf/crrEHDsLjUVFUVZ5BMlC+kn0xXQjpiTqlhDNNg6qAHXC/7sg1S98IPIk9adMSDEXdGCoIycxJeTTOVVkrU9ongQupJ4tyOyRgDySsmA/eJ6xcSGMueJ1Iqz/rfDZcD9ytY0Heh8cz9lny5C/c5kNbZUe7nF9xjCYOE0w+mH1gzTjvYn5657MmVdzxr47fHxlfqoJ2LJu6OqbBtxnY6ygU7hXy5c3z8xP38yHGUStWtMyVIBh53utTQXGOQ5og849n4Sz/69YN3fiMqtHC4j5L2PwokPgdxccQHGkpLRe4CY9XUyer61VPiftZiZVke+qg4SEU5xiiIqPvrAREgtBIH5szXhVHFGFJ8qcC5bAXB7qZYb/Rm7LrTm6FWyWSqG6KtoMgCWy8VjorALGCvhiGebCn0VvwvoSCpmbUx52qAeWpt9lKKlqR4MT0rpdFWo+AYs9QukQWLEKlu5+qWu9QUXym72APQncvL60tlBIpFvh5C3tpV8mJeG5qPhhRS05rHYXjxPlGyuC36veqqEnjz9UCXC2br+SscLZX1ej6eT15B8ixWEUAjCqa7pia6pkqPbaHLo0W2/r4UVjPhw678tb/QmSO5n3UA/f2fnvzWVfkbf8H46mI8NeVCTYTaapKVlF3ZlhR7M2GnWFcJ3FKYqctSU8mervIad2x1fsZE6jBrvD6z3ZLrXsmalywWxhFVUAS1sAILePq2rgcX69EglHrQ1j/r962J21Kg4tXoFOH5WbjdjTFKDq5Niy2FMKfV1EuraaGrMVm87GosaCrNqmEF9dzYmkT21ewqNtrAWiwll6xgn3wdBjSqWV9NEa+vQ76+T2KpuUTqGdWsZyCX+vDRdZCEvjlHuYzQVgrWVZlz3YNdax37+LHzRx58843x7Rl8Yzf+6Z84P/sFa12HLSkrjkhNO88Nk2B7TAMTQP9Fz+Ebu2QRYR/S/r3B+2viPhlnFKMBUO1oN7bniX5yTJVLK6t0inAOLx4jE/88GR+D7VloT/X1FWdvNTxyERzHo+DcEdBFkfAF3JViO0QNZWr0/b0StLdWRfiC0KsqubhnphU9/vjrkRxYathix1krmzxrrw6E72aW0m8NByRLZY3XwbDNQHRgy04vsw4sI5UzoqbnrHohWN+79muRJFRqeh5B+LI1qjDmI37j7V0zokCsqZg87J2s/a0RXvZCwdFXtQD4LUk6MZfaMwvLIFvQW2PfoV0a+640M7K8OjVAaVa2wWQlTK7JsnbGLCbcp/MOEQyKBTLCF4ytLKMqhplhfTW9UhmuXLYO1ksFvDAV3oRdOrlPQoq/+kgrpimzCdY3+lYN2ZFRh7u+Bgni2DNMiaWsh60bpo5pgcmbGLoH4+ZkDOTDht6rdgiymq5RzcK5DgtTrBiZqtxvf44Pwb/GSy0xN1o6puUEePBLjcZZkzyMXoo3U9yMyAm9rMsvOCOMlInNTsutVEjbhXEK6Rug3FN46ldC4WUedL9wfW6gUXV2DG7ffcN2a5whxA8ablL3W5VunTNv6Gb4FESvS00+CO/M6OTnQHqDDNwN12XZ2jqmvWxYUrXdWR7JckyIEstSergwXyoYKqUSEbMVz1IQXCh1liebbOQtMXXiYow4mSdoKttWP79qErPeg4FVcyvhukMbsO3wFjfIqqGqnjlGrKHwclFo1WVec6BXd0WhGWrdy4Q5ki+3yR/89I5HvNoI1arGMav9xgS6ag2FtPAMprKUx8VcVC17o2hhQNIr3CFZCqpHQ4yoIJQ1uE6qptaEMRcXN/N1SMkqI8dZiqp+Fc4Z3LwG1l5dPTLh9//hJ6bHqwKrralyJrzOoqJqOI/kdg9G5MLbFPi9bBjCbTrtqnz65uByaYvxXEmcQimuzfINPll1df+IRgkPPIKQO5k7smqV5ApN0e5secOkYVloB8QRB6bTdQdN4lDEirEYYSSD3jqmF8jk0MmIanSX86ethMIOTGJuZGxEOokzxp3jcHwKfn5gzAla+/k5K1zk7pMRirCRUqwvyQ33k20zLpdk7xsmyTQjTuM4bwwmlTlcmJoRJ7tNvn5SfnR9x/OZXC6NeE5+9/aOy7jhYyyEjdJPuHUHFY5zMN4PuEzQC0HtgT5PhJPq0Oz4qZg6XDo5DZMXRCd/5Ye/vkX6NyK11bMg1ULJI++fBvJs9Exag5jAACjY5/e8rJrKZQYRUjyF1qBVURZz2XLUGKM2LqwSHzIecOP60gs/wxmzihNrRDqoroZDddO3LNgsEigGeNl5BEghFoNm5iOFoixF3oJ9FctjOGYFgnykFTpLNruggyFJzqA80LXZjTUhH1ELTluNv1wLcEoCttLLCgA9ZXWFKYjfe4NDkvMMvNVK3yj1TLxRuXtSlool4ltWkvoz4Xu1kkAd2hFmSPnKN0UT7v4oCepzN6uEwghoWvY9oZ5jk2RTLS7WSmXCaspTqIilhqM2ucwF/19wxTML6j1SaRF1AJRia0Uq/8dPBxcVwssbryL84h78nX96si+1lWdJomOxbjILysuSLX8/AaoFq7PeTzwUYsVzQBfrOUsh1gVwwa3SMH/2JXl3VT6dpWI7uvCy0qtMS3aqj2nZG3y8HtbTR0N0vdVKpbmeOQS6GndxFq4WNDgHPF1BJBj30uqpgaliezWqO6+D2DpcaalELJXwWh+CUqL0BfdMKl1nruajiTJnkLnsMVo21CDIKWxduLbkHvAyFpx32cTOYWirJoCtRmjThxlIyh+vtd6JJC9nBR64KCEP9kPBoS/RGKfwbgs+WfBHf7bxs3/cuT6ffB4gP2/kZ6W9B20ld94A65XKs1+cjvHf/3s/5n/8e3+23pB1UH6b7Qbom5IeldikUYlgz4kdysun4OsnIVXImLDv9Pedl+OF82zMcC4X2CQIGlOSbdvhNrEfCgNBuNDsZGvLJlsjWzLrPphVxHmnFC1XVrqfF9ul0pvqmbHewJPjdPrFmO54LDZMglgry3HB/RCBttIDu9bH57KkFTKuNFGZyXsr5seDURIZryo90aSL0A6IXTlnYA16tpqIF0yEXJGrI4OmO/dbYldAOhKJtbIjqtVayEpcbLmsQG/smqF1D0mK3tiqNymQUSuLZQXmiAYtlTOlmhQZHNNp1rnjmJQVNc7B3A3mKAuGyko5CiyTDMWtmqKbGJ4nJn0lIzoncBmdUwMN4d3lkcxMPTdYNUaloPOB4FPYDQ4E80qLtmbEHOTNyWdDsngnksXAQhTLREYt1JsL3uq+qy0tczPCixX44Xd3vv2jk/e/J7h7MdZiAo1wp5myfbVx3EYl4e0gL0F/NvLu5FI/t16NjkwnpRT1/e0hjer6zqBVapVZJce0Zd2c22B7DBhlsjXnTCPFyKfAX4x8MnZ74pYvXH5n5/5HH3n+t75iRnKG0y9PGI20SX//FWEnTS6MX3zLscNFBoEwbnf4UgED/s4Qb3x7fllqnVIgSEDoTrrjvDDniVpgNGQmYwr2oaM04jwwEyY3GntZzXpwuq9aW+l7QN45j+LTSMKIJD8Iczo5lKcvZQ8SawSBbs6cCV2xHky9vQY1tVhg+wvMO5iu5otVXS/ZiBbEHWxXzhGVkngG2X8jjnn/Si8V4RzBvimBMM9g2ytQJ1ZTSmCp5NdwTn+lqZVAJl++OD/60Pjli2MLoVEJhlVvez7SC5e7g/p+IrHOE7WGdlFkq/Pb+9UI//lnJysolchceAgt+7yucKBY6s8u6Pk4Z0qtl2tfdQ/aZlW3LaX1N9+Oxfaqfan3ao49d+HjS7wiTHbhVbwxvKyLt7tjE9pew6jtWgzB8aUYlP2pMTx5/1Xndkl+8bM7X/94R7OSE50695wPVM8bvLofTBN6jY7pshe3SnqpxyUWiiNI6TR1IigsBILmzj0PPF4gkvBgS6tBGsbMJyKi7mke+KiT1xg7tE9IbEQ0ECe8VMxdqiN5jJPOxtGSPncgkVauNN067CfTV1AUSY5Kex55I9pWTjJ9YsYNkwszEjmTfoExGjM+Eu0DNOHagq/3nb/0/BU/Qhk/dOLzOz5/vmE/vnIbyr//y8bfv0zGfdJdufnJDOU8X8hro53OlxNEZvUmtHjByb4ONbA3Y+ZG5kT7jXMomgc/sv+fKbMquStIh/0u6FeC7YldqviophTFXZFiKGQKolSRpWDN2Le+VA0l78xMzlGR3HSpAhehW8mHp0h1wqXg2mNmSUo1EJy9K5toJfdEMSGannSbr550VrqWAKpREHkSoS2PdI06xevNr16HA7EGspIqVvu9uA+rmgQm66CS1fAzpH4eUTJmJRjmOnBkYpL0rJ8NCYaW7LotyaqH1xQKMGtESNkoq8f3Zq2Gv9q4qvskr0eTx2L82oRAa9GvUQTngNtc1XSWtQJWQbrsqkilqSwNFILwbz/XRMcMrl24Ll3ywzevUgZAz9VMpd6Mniw1TC2Uvn44sVI2HUdtcs+78LTV81lqslJijdV4eigoLiusrlNKgzosyuv36et31/U67VYNK9M6MNwfsmKBrS9pdauml4hwP5yoni9PUeqt6VmWpdClLlxTs7d3HqwGgPyq0y1fwwFf+ysBZ5TaxCkSj0+lL7VdpnLZs6a9ouiDKUMpXWSpotpqJuaE1qOmZC2LrSCloggPmlvBGHM1eTyWTJ6lwCq7aG/QW212L4cQo6YbjUC8IPJqsxSLIovNIETMWpMleHcVhAkS3CjL4nRgCseoAADbKs1nnMa+GBThinxq6AfnsJqWnrdEp7Flsk9ZkmXhuOd6hpKU4L/8y8Xo+v7SVxXcW7s0qrmJrojxcFozpA3GKBy6+ip6p6/AEuV+VBLgGCtFLhyTBHUiy1qwmZFyq0lZ1vfadU10J/RedrA5hPNMfFB2nNRaqGYgPhH32qdHwdLDFJ+VNhhSHBxrxZ3UxYY0M0wUMaOZEVrKMTMra0fUvX6oA+uvJYGX2sNjDZEOz1KDZqUQ5lJFJrJ4b7XOS1OswdYVa04TWetivXs96nAZAnjiUebCu8ibTJyLXEOzLKVVQWcTtYpr90xWVk6B+LNseSkNseRiAj5fWZOvh8gULlbKk+Cs8AlxcrmdDKE3Y2vGtlnZ80lMjCZl5QhxNJJjhQ9kxHpuSu2l2vA0SEM6DAxXxb0A7hGGR0d6DfnmFMY5F5epVRPgDOjCeQAm5HC2FFprtNUAMA10BtqD1oycS13kMNxB6pB5jmQOAU10qSb0yfDvAjLKpihliRUrC50iFST0Rhvx+X7Su7N9NuILSNaE7TXJMWVB/oM5yxI94sRR7DLZRYGz1AQmuJSVZboi/RnXidvEjzvaolRux2TcD2QXttZIh+aFjOjvnggZ3PwT1i5Ea0jfSbvguuFW9tg9fsyTPSG3Z85Pk9bf056WwiLvZL+DwWTjTjAkOX2UrUY7GQNXmF4wo1YjqaX+LAtPWnJ/guMJ5ntnPnnxeTcrrtfYyBNyJmgrpY0IOiEsmJ41xoqyFaoAKwWx5cKVzFWVvD2XIcOz6lK00B5dOU+YMxfQvdYUfRSflIDhMcjOzFfUx1fvjXeb8pOvd/7rv/mB/+Y//pr/7G++q3TBpdzlobgHMmOlCdb7tgGyCQ/m7ccJnz0p8s2jHizlcVOh77qyLOvPmyY+am8b8WDp1rlvzCylcq7xYeYaNEDfBDXjhx9sqa+ST/eq9chyF9XRUhc7K7nfZinen4W8KnJ5IAiE/kHZnze4R+1/Wcze3pSPf3YwRzBniTTKxSKva/pbu8KEjtEyuTSIaahcMMZ6CE6y3YnUSjaVSQ8hpGFM3F9qn9GqtUU6uYLapt2IvKNUSNzIrb6OdJIT4onMhrvjXv2EnMF5Ts4jyWGc4ejcED2Ak4wotiV3fCqZAyc5ovok56SSBiWAWXtsCiFK4qjVjYw8CL9yv98qJEM7P7KN33lSdkmusvP1h877/c7Xpnx1Fb425UdD+S2/cssvxL4xZTCZ4PV7N12prGJIbjRrXELwUEKTIUrkQSKMUPa24fYV8v/BIv0b0bJvaHUfh6DvE8/JODtzDHbse7aPWXXKIyikQR38yhc9ITsaTkgBTNPXodwT2koJWUmCESUhjaipv4oV7DiCjZVbv4ozJ0qe+pBH4yiTamGUTaN5kh4LXGql3BJoWQqvWMX1DceI1UUpCWh5arVYKFaTrGNUglJGjZWr3q6JeYF0y3rUllonBXQlwJQUUdioqfJ9qbt2/d5b3iQ45dGjSVzXROINXr/aWFApPpA8Ojjf71NVbGWBqzPLbrecFq8Jh/4r4HNPWVHby46xmpMfLsrvflD+2YsXMJ3azGxtUKZV+OtSiq3+OWMl/5XcXGhRahtRlgAlGZo8AV/uxVXLdU93avMeU7j2sqYNT55bMlZD88Vrg5MlVcuoCdP+UFZQqYXfzXpdIuDShNPrNbmY8LIayxnwZ5+CrStzbbohj2nNsidGrMWppvlvsWh/KLN0/fNRSPyKtr2UKXqUuiOL2ZMYzSbTq9HoErx7Ghy3RjwtJlEoqauLuoofSWVrjudK6VmHflFhMunWkJbgxm41JHBrxdrSkkj7rMZ+Li+sSkH6Kw56RZJbEGG1XiTsCCPq33VRhOIsm7aPAoFOKgFsb5XKFDwa5VpOQ03OoODHQ+hb2WSlK+bQxcgOx5mIBJlW33t37jeDp+Si1fCQpSep6+01Gh5XSilHehMsFI06xHy4wMeoqZWshrUhBI0RBbe2dIQ6uKuUKliy9svWd0bMAmCTmK9BTBqR1UiYdyey9ivtSoYwJrSt4pgza50K1nbpZcUihYmuLTRBO2bOmGUBpMFc/24kZ+hKuYEhzlU7U4ulplK2W1UFD1Si2FlqzAy2XL/zKAXWGQU/jsyypvmDn1I4A1mDjHQh1VejGJolvpSGSFkz652n6Jzc4zdi7vev9DIpC4wLQEmPTxzNSrUELVWJtQoUyWpo9p7cbrA/a3HVzopTDZ/s3mAGxxrPiBkZE/fEeifGwLSUW6FJj9K8qSXpTrCaVSTZhJZGoOwKmxhrNEjfBL8ncm3L0uzILHWgeK1rKUloJ24FzxZVwhUfA1rt8Vs0egR8WO8XrYGAli+/5K1aw78cN+7fTa6X56WGFGYeNbCRZM6BmFYjblmD7b2SnwXd6/kJWQE/UYpCyWoYv8XrKazYLV8nI5L2XWe+B3kOFqH7FdwdIcR5sPevOOPG1Gc4T9ivqFkdCveDiaKbkF3oWx26Npx+qfbA1OCLC8+X95znnf26ob+E7cM7pAnzPEi9MJm0RzBNTuhK8w3TZOTB/dML295hU6YcJE66QDZEdo44UVNieqlEtRczJjcmJ34KFp3MyXGWwtr6lTleKrWaxE0xV46XQC5eCdRutMXTpRlDHBulyMioQ/YWsGXjvlSrgwSJep4IRijTkuY1FCi949u6MpLedXGuWCwrFh8rOceqr+XhEOC1GcUq0YhyUvzODy78J/+28e/+1Xd8eKrAmn/y0xe++W7yR98Mvv1SI8hcSiSRslunJBJLHZdLDLCGbmTV+6HFERSJhXcornFqsbAyqtFQoi3FfQW7SL0nutVgurU6rDy+93ThfiRK8PNvV8K1PAb3qx71IESxhTjxAz6owQ6yKcFjPxT2vpjRTWjvGvE5iE+OPSs/+b0Lf/zPbtw/Dt7/cOfw5UWX4la+xUtwyAKve3N2/455dnJ7+Ewa6kJjR3yStpHtxELr/K9VN9lDqfB6zmyYd0ZOghP3YOCL5wwxhdaE+7zXwGbWMERn7bXkJA18QtvP2j9k2SDplbIAACAASURBVK11IP6+2OD2iTYNa4sDpwnYCuCByFvtUV7hOjKvNWZvVt/Hdva7827r/CX9wOXnd3i303QgW+f5vrFvO3sGn553fnL+nH+ww3zp5P0Lc+R6nm+kGx5HOdlCMJ2EF2uzWyvhTd6LzRlJp+yvOidqv37S729EhXbcJ+dI2l5duU6nebDRCQRNL2BiFkgvsjZHj8DPxbQQLfl3ZvmDZ71J1ZYN7HDIxpBKuljNbkRnAUQJIoVWOa40Cl4pEmXfQehUV6GromklOQ0pIC0Pm2Cyt4SMKp5loOmIT9SdnVKrxPIuRybu9TXqbpTPWaSaKw//t0ixbmL5AMyUropIo2UpFZIHm+eh7olX9U940KWixz0XfD7Lo+8KG6XYeouX/Mq/vMqPBSQfEby8sjQK77PSMkV43vVVkuyZvLsoX1/KVvXwkWkNHJcfH767B3/nTyYq9Rpva5OTtbkKQldZlsZqBCj131A2CV0yptUurY1QkoV/XjyHx3RH2VXppnSLSkz0akCUqlM4l+qiIzwbbMIr3P1dY9nZym1f1sVKNlx9Os5RjdOxpn1lxYT3F+XIYjQVw+QBC6/DzDmSveeKs357TYfg/6VJt1RCD/WQIOwmq2Kh1o3lL2654P8CTYzWZfncIbWeOZ/6Cn5XqQOXwmsB9TiQVzNglkTdkjkrPdBnga67WqkL0Yq1rmWKsKznRqKkzMuaKBJYE/oWSK8i6rIDWyAb7O8dLie5O7QkLZd1tZRSIVIA221wvSRt87JDRxK3ztMVWtiyadYaKJI8SQMES+WMel+2LTgn3KNSWt6unuFfvCSFLRULLQvzYgddLhsZoxrF6rhq2Y5jsGVNgFtXxhjMOYtLlZWY5eL4cPa9obvSGrA3znBElX3biJlcunHdeikATdEG20URtWX1b6+T5zHG2u9qD3ykDRcjx2GpnmwpBM0E3QxtVv8uDdVKlzvWAbGtpLEkXxP1Aq3UnHTiBFdbiugHNlIYlM3Vs57FOkQIYnD6XEnH1VgdVKy2h9ZrZLbWLpDIQnanLTDu27oyC0PwGOR4VkO5SVlfbA0tNGc1bzQgjb4brQnnUIZPtDU8nN4ap9XhOleS5vRqWmlrzHnySL6UVrypTZVtq/CRZoqI0ruwbZ3rdiFRtt5orVWAilLqPlPsYjBnHfayggSYAtLKenUunk5UwicJnk52RaWRY1nDVPCFlAgEo2okxiRFS93Xi7d13ttK/4K9t1LOJPTeK2FNFe2tDpatlW3xyYmXk+H314ZDb0vyJpV8+BavoZNbL95Y68n8weDijv2sI1Gtd5OsOn9QqW8CZr2UDJcdO5Ntd+xyYf/qyudvD+hWNYkPWoPuHWkP+z60rZFzgGzoXYGtGlMx2ZYqWXR+H6601qriXyp6HFzfPWPXDdN3FXefENmIcDxvJEucmpX4NmMyGRzxhYwOady3AVSNfxh4vqBeTKwpyj2iWGwmyLDX4aJk4hRD+In99axAA7SUXQcVmOC+lKSadTZ4JIdqoQxA3qQFf1/PgK9aM6nBby5OVeugvVL8VMtpsVvV4urQggrPyuB//wff8b/+vY9Mgp/+4uR/+l/+lL/9f37mm8/JtpU6q56ZwtqYVgJ1yxriaLNXC+OaD9Y+Z0JTq3VBqqZTLaXTbuUu0tdaruqxSsVeCa3rTLg1xXQN71bDQyVp67zYTNmavCZjVyp20lpjW4prd+Eiwn4Vtl61wk9+uPPUyoKZsUQfUQqx7Z3SnhR5SW5fgq9/uLFhzPsahmmNNO2Nrl2WSsidCKW5ofkjunSUjRxCPIY13Anp+CwxTWQQ09a9qSA5EeiRIE7KnZQXZh5MmaunsZTN4TgXznSa7uS506SBBzmT875zHhvzbshs5GEMv+NZ64yKoXly3SaXtpUKXY1kNVk5ieykgVivQZ08NIwHoc4ck3NMXm6TTzZ4967z/GOB/gwzyX4Becf+tIPtdIKv0nn/oyt/8cNWCdNuiNUAvlR8J12raWUt6CFlWSLZdOI+MJQzzmqsoagGahQa6te8fiOUWdK1FCjLDzzTUTOmT1QFpyx9BUCvuHizNe3PxumT1mEIXEUZo+Skl20lBLZGs/Kea1SD4YAVaVtAUiXZ1OqNrdS0RqVOpKZ0ibIaREG7syWHx2sSnEkwpSLob6logGbgrutwmKRGpUSJYRRYN9e4oC3VliTIEC7aeKEOeQ7M4ZgZoet3WJN2FcFl0tIQ/b6b3LWadpPFQ7I6yKQKeMWVnyF0DUQaEcl8e3sewOukI5fvvdoPuVQzDwBjscX6ayO4PurLGWthqk3n01HFxqYPi2opUlqsSF0LNJed78GcmktdxapHFtmx2EfJzAevqxpVaqWqeerK+w3uZ/J7PzB+9p0X/N+XlSaCzVaEr5YCYTOlK1ivobJn8QTUatMKhXsqxwze92pozcVeukW9/y6U2uNc9fb0CiX45T3YWx2U/+iT89vvlFsCM7Bd+eWoyOKHKuk+g21jLfyryfEGr1zKD1iQ48X1kUd1o8I//tngL74rG5Sk0HJiBnsooc4WyrBAm3O/Na5PNTXuKnU4zOKwSSzlHlUAdS3bIiRY1kZBMfBotZ5sKqSWIsxUyDa4vxi2jYLIUyo8IVBtdKIYNDPWJDGRXoOCkUvhI8I863eTVCalbGnNqfbFUo5B8QwtuEo1qO4fGx/eB/eEJzVeQio9TgTt8PkQ9gvMMzmFgrGugv27L532PvnL73f+yXf3P4e7/W/2slb3+4gKJOkpMJMhNZk+z6DLJKaDGtoTuwT3++T5fadta0BDgV7dK7VoUyHuNQ1mNTkvT40M4bwn7dKwrQZEkountaxkocVRyqymk6qBllLrTMHwVwVUiJYqoyV7s9rPwms1TSU0qpmWznmuqfeCsydBM0G8hjkzHBXlYsadWXD7HERstB7MDnNBe+d0HsEMKTB8ItlQ3crOLcIczrYbkVpMwzU5l6aVONW00oWGsL3BdJRIMJRMX4lddZgJrxXFa3TPmMGcN8iN00+69ErCimS8OPuT1n32YmmlNFLLUoA4SiPnRKz2Xcv1sQYnwqX3sqfqoGvDutC2jqSzbxU8wNxKZT8roGKK0lsdypov7aoouikikxgdetm6RGeFl1CpmXokroH0jbwHx+cTxOhPpQ5MaWCBuJFzDdaHorvRZyykg3Gek20X5lzPqgoeJ+6d8LJeIwY02qWkgXGvlLwhUVN1zYWieHtXprJLBXkcI9mvgj858v6Gfbcxvqp6w7MYHmeC+hdaKHoNYg72p2f8pbP/VsN+8jX95U/QsTFOuDTjajsvpuzzLCj6cbCpwVNn76C/+ER+eMZlcLoxs0D/GR2PUc2jmfh3J2IwutC/+iF+DPJM5v0zps8MuUO+0OWJ4At+XIm849UPA6m9vxhLs3AMp3CMBU0NmAXWxaIz/aRJuT4ykyZJuiBmeM4axO/CHJP2IuT7Uu1sIXyy4o5BEhsVc+5BzsVBtSDPpcZdHKi3doUsqxuFNjBY6vJq6uljov+4pLTczSBjNXxEX5uSH2/O//A//xGbwNcX42Kdbz6ea7hdaeRq671PNcJshR7V61vFTub36JFc5zOxJS6oH+T1nHG1qp/TS4bgGUuIUMPGtinnTI6o56Pc/8JmxVCzR6KnBzPrdw6WjdKFD18pnz8XK1VH0j9UA3l6hQX9/BfnMu6Dn5Ml/iIR5gjeXRrtnfLl0+D87Hz1g8Yvvjl4+kHnvvhwb5ElCYVm6HEh7Y7HJHTSJdAXgRbI0RhaDc4hX0rhPqqhFHZHYiz2Wi8+1LuAWZbgc/bi+ngjOdEwIkfxl9utbIJAcnDeIY+GDGNGKUR7dmxz3ECy0oi7nTRtaDPQgcqVmELkLE6uBOEd1YnGtur9zshSCmsm6X01k06eM/nB5R1//asnQhv2u4L/9MB+64n4gy/o3/gACHz+AfrLn/KT3/mAxOTm8E/GRzZPbisnOVsJdkoZRg1B4wWRJzImslhiT2mM1XMJDcSLGfbrXr8Rp8uuZbFzD45cvtDMkoVnvUHvIxkRSCRkvcndk5iDixTDYxc47lHRkFv5USOqeE6cRjEy0oMCuywJngi9U/YcZcV2sywKTnpwSAHehtSCMhIsfb2AgQTFSsgClloWfJs1uYnldS7uCwwtm59rTYdv4bRqcfESFeU8V3x4hmOtDiOlKpplndCVOpVldRPK3ugSZDi1JZYFqbhJgb567BPFuIiyRdmPzN9mUSWLifJgm71yVeB7ldNSMEE1vx58p6X+rE2vxnOrWbWYWJLsS8XVH/BuWewrofhTUpthkwoTMNahcClyHiqwR3OtUZPx0yu2d0v49rvgeXFMJqXSsmUfamvaPbMaWwmvLLCJ0NfUZk5dXvdq0EVWoWMII4WrlnoLSYbwqmCr1yWwVHYTfvkSS2kmnC/B05NyRG2ijzS9OZPLJkuvuFQAbxCapTysEvLKB3sklAI8WHi//8/uJEtlg7NJlgtqgT6jlY1AVLg+BfdTwWqFGgRYNcdbr3tRWtBcttU6hUvUpKypYOY0STYgCc6RdEl8TdK2i9NEX7lEnZq2ZekQSuFptfmYKDmraUWUJWuzUupZLOuuJtYHrBSgtsIMtOWKkK4p5O2zsu1Baq7mbXKRAiOn1sTrxbVizS0rcICaNDrJ5VoQyf/ir7xbqp+3fVn+P+S9W49kW3Lf94uItfbOzKrqPufMDDWckUhCtET4IgkwDAI2BAN68Zsf/DX9EfzoJ18AC9IDZZOEaA8lknM953R3Vebee0WEH2Jl9dDwwxDggKPSHjR6urpPVmXutdeK+Mf/cv89iFR2KgFXZ1LRuAm9rZWss3b01Hn83hNffFd5/mCY2vR3rK5r7IE04xjOOA5uz8Hzt3XmXq/COITYEzsVI0WaEVpsUcTwYPph1fl7HNWMuxeQFUkldmXtYaKKrYqnsaMc4rUjiLHrTPEVKsG314ApI3Avk/CUWk+dYsL0GUeuIhgG05diG7W2jyPZpkyaOfAhJitRBBNniyiVkyZIsasJ45bFzt6zCD6pgR+Q5vTz2+MtN6vnKrUkpJrF4GZKLJHJiANMlnlgrYwoGaairA8rt5t/Zn9Y+3yeTdm+R6BthqukIOJ0K4/UGsZVSlbrC6kzrRCm92MNHMMT36smKra+EJujqYgL28vOdhuwg8RSxX76ZLUvdSbNZpGlWKTZYLko68OZ00Mj3diuTuxBXKsWChnTc2ciFlNeSFDDxaNMn0dWLblvtX7Tyzg8ouStMZn1tES1kmqbTUa2vb21BTMFTrTi4k+CeEnHfV+R9wf9k6GeIEFaElrSpy2cbfuEScdlQ5aN8GDsycMXJ7YPzmLlDTj84LSUj81+DMZ2EDc4qaIvwbEF0hyPvZgRWdoFH4LEhbhCbs753Rc8fPHE6ekEDLJdySXo7xt5OurnaCvH4aALLAeyJDbKmsTdKWQL1JQtgsMDCaWJYkdJLsUSfMwe7T4Bm8l7A2SvAZSJIHsBfeMC8lI11KbJaTafsnXsVn1xDiFO4CclblahTjPNfbxBZhbJZCLlDHCKKQfWAode7RkqPbDdB44pvxT4FDOgZrJwR7F1vzmCH/1sBy/CQYFlWfW7Gupgp1YeZVogUyvOAybTpsTjlxhXs7afSpveACl599Mqr0qITK1k19k8DE9Cal+WybArsKuURHIH8nSm2DPJEVmv+fLiqFVf0tbyiM7pWedaLPjvf3fhn/3uGay8DkUFTeNhNYYHxwj6ovQHZft48PDUuF0DQ1ibkvobASH8rV/WBiOOAiE75WclSi41ZsMUa4lasGpjZBA2kL6zyCMiZzTPZBiHF/EmK6WN4i47nnv1mS2IsWCu5JiM6HHUhjAgjyzJz27040TbnBiXOh+pgYvSKu1QBI2VjHVqFxZ6U7Kdy/JGy1NSu2Btw6SVNYktSA6MYFUhvfHl0rD3C3YReACeVvJHIP9Uya8eQB/gL6/wD55IU94vxvtT+2zzQK3pzGJ0R5a81vVKixMpGyGjVE2Uf9dBsdeaJ66fsParD6x/I1ZiZjKOAo1aTgRPCjwQSvolVjrhYjzolG4JJy3DYk1BDwCDKQ8cPkVlWk24aDVqYtOLKMp47+6jtftBRhSjZZT/hlA/hx8lxymXkii2kwoRR00Go+xpFxTVipL26X9UnjolixxZVFgJq/fqWYlPGQwfeBb74rZX8kubm18NxquocinKXsqYco7avEYc5SNCbWqNYjQYWUw2Pm/GXRp9Ji9aoQ2gb9O7QZJXo1umv0WRK3/p3+j88yuIlfOzqwfNpoDTkJlcmfPflKH1qcDlV7PzqSycYEP5bQXBQ7tPhZj0Y14lYndwqdRZwpLJd0z4fhPeSbJMcKxJSTKUKpA9k9uYUlFJVi03tyOSlgUINKNSk1xgNhGWZUuxuyCRrLMZPSij8gHsDucGZxFmWBnjgC8uwvXZ6SflZUiZCVIJj7c9WRYp4I8y5BStg/KtXfn6e06fns+Ja798/et/fyuNusIqwiJGqrCqvNJj7Q78TSPmk860OKqZzymJjRnzXKFb93nf5/1hUNM9E6H1Cs1oBuMQek5/CQsYBcDZbNRy3q9uxVq0yX5oFjQL1qVAzGMTtk05rq0oxbXdQeg0nJdZcJUEzbSM7I9UcMVOwm1GYe+9BgwykdOmyfpQbCBVKW9AhS2UFYgwbrvxL75vnwFD4E2mC1DrSqfs8y5jOrR+74szdp+ycamuOZNtOKwNGc9cvwl8CDGcPJIHT8QOFlMijH0P9luwb+V793I7uF0LCPBIhvsEpDqpTlqt7chivZgqSGNMRrQnRSFXq2EUMpmpJYcQNaJpeYbQCyTJAtyKbeBorz9LGrHVgGhkgWfJPb3r7qcFB15ndgi+e/29lt9aWU5KFetS63wVI/ZEZUx5m7DLqBTi+9mQcLspw4uxeB3j73IZ/Foun75F6gU81b5TTXfO800ng06mebXkgEyatILTJXi8tLJ7kJkA5k7EgZD0bFMaO6V3GvcRWwXyWKsBTyvPPlNlsWJdFNDhSEtCB20dnLqhHuQeaBqqjjQ4Py6czytulVYYE7TImTwdCEvrr+tAZYYLRTAI8lBCB8t5raQq7YyPAzkSH8bLT64c2wFxbyidMYekuOP74PbBa/9sYF3wrPdcgwbHVEkzgp1jkxl3X5LJt3iZAT0IHZgnS6tmXm0QVB0TXqnPRJkESwuWtQyM930QswmCAtL7+iUWN1TOdR+ptZU+uJwuZdavhuUV+ybR9+/YN7jdDo7bjeWA7dML4/pMXD8Vs++rE74kLorkhcgDyTMQ07MmWds7TAd5BpekcaPFClahALUMnJBg90AORbysPraAqye5CXnVCaYLnvoqDQwXDklkaAVc+ayfCj/F8VdwmLnfn9adPGfJrJekUQoEoTx4w7We2bdXdpU3VFZtXjX0lL7PmroCigA+1zcixTZVZgouxUpXiVfAiozqCR16twrDocD56g+CtpascOnG0hvdPtd7dxC/Bkjzv5s/a5s+esMrJMc95yAguSzlW2UitKavEnvIV/ZeIrSprPFDpu3cZxCqN8WaIr0Cd8Z8rpRieGc4W+RUiRhfPHa+/TD4q28Hp6acT0ZjsuKnZcDIwE2Qk/EPfv8d6sLYErUadq3tbe5dY1RP7aZYnAi5MsQZ0hjjXOmYFBshd8HSGCTohucn3AsARzaSa4FZ5b4NWWtPJYq9HDtdYvaAC9fjqBCA47EGJ9Kr57eBPDpb60QMmgfgqFbAiceN4MAzEb3h6gxxjjyQOIjcUO90ERYJZKzge/0aXnK/PIixY3qwdkF6r4ftAvYH75AfnuHdGflo5J+/kL/VyR88IaqcVHl/apz7QuYN8ZwsfEHioDGIOMoIP7fyhA5lTaufn6AntDwBC2oX5G8gHvyNkBnmZBMMmIVnsG/C2oAsDgKhczMS1Pdpmqd8mgwVW0o7fu5SPgijGssUwaJ00p7JRZ3Dakr96SMsi3AbtcguWgfVGpWu1LQS4q4ySn7uc8eKKadyI9M4soque6KdajX2cgQ5J833aV63mhZXkVU3UCgEw0MhSgp0d75S6kBsc4JNOBJGhGJWr6Gpk/JZxdvIorJ3VUrwU5v1LlmMMjWIYMtg8ZKaNKvi6y1eCZ8T5oA71Zc5lcmspBi4J1MmpuW5cm4FdHa0ZKJZbJI5SsEowCtDWO5xu5OPdD+AjpFcU1ha8tFnwtw0N+t2Z2LByfQzoAD80JR3UmkUTZSQZO3C86giyycjSENYF5CIOQWqN3eypFHsjmPUFOjxC+HDs1MW5FNW2CeTwpMPWzGqgmKAKUVZblbTwp99cp7OsO3C8mDsArYHW8LuyuE1yWF6F4yJ7EVUgMJbuwTmAquP/Q6w/H8dnf7oJweLCa6ATIZNRk2vA+5UPwuhWyJNOVxQcc72WSpQaZXT20wqHS7nD6JiWHdIwWeCoWQtNcOx7hy7sSxZe9majBdBzjN5J2qSmWmzKKziuQtsc19qSzUgWHDWajzaAjT4+uvypJFN0XNF2jNlcV2VMYTzU/G+TJV4MVgPHONBGi8alSQqwsuL8PAO2lFr52QAylkherIO426+Xx/4G6zYqUnziGIFQxXQRhXP1hqHB+nB6azsB2X6mjuocPryxL7t3L7eEYzFhGNN1ocFWQzfnHU1sjvhGzGMwweXp1ZgwpRXM41vfcrD9miMoyDTSCGHl/djExbrwIFoSfVEE23FuCCzpB2uoAPRCk1xGXStliOl4aO8SY4s/7+RBYDse3Ba6qySgOvudIF9+o9EOtaMHD6N6QOxGhTto/489sZ2G1zW5OHUaVaprS3qNTJLxLunkmNAL/aY5Nsr2qNymnGPeb8rmUlGbWb3/6kqw3MyjpO+KPuo/ayJ1ddWuH57IBdDu7LOBDaPwBy0lyfV9uq5WFtD6rRWSGORQWh5lqkfnB+KmScMzIzVGhgcu6MLbMNZVeiTyUUGY1Ri4eY+fWus0nZbFNOQOqv7CuKtmI9n6KN857QlmcaQgT00GMntpzuXL1cWgY///sbzB+Oh99rvW3n3tCa4CbHXmpVwmhi71348ZA4XB7gu9GXKoSTeKg7PoaAxw2ha8mkTTq3Cm2wk42nQvlk5bEcDKnWtbEVaP6MtOY6Nlgux3JC2wmPHrp3beClg04z9578gnx6IX3zg8tzR7564/Ny4fiHQXsiXg2VfaOeqpVQaosoRB8lGhmFaYPXNb7Qjcd9rWDQSb41tfylgyJ2QQWoD28hh9AZbBvtWfUomjKM27OMmrJkMTWQINwEN49BgvSq7eLF7ROihDHP6R4hLgaqS07agC3rUmQ334SxcUnGEXcqU21MYOv8+yjKFt6i4mEPioFJOc7Ks7rLgPuvwnGBSwC+pH5LXBkB4tYUwkrUrt1tM+bPQrKTHP/he45tPwQ9XIx6NH3534bwq/+rfXnnekm2vZG8m+GhS9S86iZ3lGDnN4Usd0hc4XGeP+/k93f2z+gS/fA6X7z2gCyytBs/4BIgpRmB1tpPRJSADnm/JF++sekOKxZwEP/+w87u/febjp0nicOqszkRX4eUaLIvy/JKcz8LPP21cvrPw/OMb28eDfjbc3uDaAlouDN1p0fDYinHXFoKDtpQsPaORcpCWoMVWi90IOiovaC40G+xZnmkq4CPpshC+46wMgpZryYFVCkjKRqig7VbKGqmh9n6UUkKb400QTggbIY7oQNo6/fYqXKfTCX/G5ExXGNHZNcobe0BTwzFEOkMO1DoxDJcbp7Ujca7nZGlEK2+4tED+LOHnV/IrQ3/yTH5j5NMNHipJ9X078Yt44uDrGuzvrRQoqUWx0Z2QFSVIPzPshXMKYTDcGdLBDlo6ezz86vfs17Ya/gaXRrFEmMwDHBRHpTScjSpEjz0rLnMxLnZnItRkp1L8YBCTfSOvZrSSJc0Qg6Tin8cIvnoPH27FIrlmpcCdF5ARDC9Tdc/AIrmlYlmyoLsMLWJHbSkPGa+o8FShz6bgNcULKg1Ic9J/izVYiRNFUfUp10lkGmFWApBIScuUKWHKhuColmZZKM1rUuyaX5aa3RsIo3HNgTDZHPPh6lZ05ZHBOifZb/GahJnPf5CZ/DH5I8grHsEv/7PFpq/IPGA8ZoaaVJqh3F93Nn6LFthwT/G6A1tMNpUhyHSKvLPtZvAqTXTeFziZoAGPJ+E4aqp3XoSLlrfQDWVnOiXdk+iiWFrjSHSFZdJFWyYHZd7tkXx7S9SAUQaS+3zjTq3Hy1oAVPnO1Nr8tCcXSa5jmhUOWC7Cs9fPtodwHcEYwbJU4X4c1QDfcZoaXr69hhDgzr68y1jv64n7GshqhqdwhWvWAXWkoThDczbTPmWLle768iK8e/+Z7WdNZjrR/K4Ws0ATds/ZHAaxLdgKYJV0OOntnuWllumYtkoKPFP7LtVk3JMzdfrTFFdsJt0Rr0WWA8MNvyZtv2NJZRifc2K1f1S0J6eTcFyFlw+N09NWviJZCZdNjD1LYlkHrs7nRhk7yJQ0nTV5oSLul1aG8H8NG32je9fporx8uA8hKuHImJ9VE65SnnY52ZBmrdhUUdPa5dxZL8L1eWM8K+evOpjhXoVq647sAmZcvw0enyYDi2mKTLGl9r1Azj2Y4FbtRftwXBJT49xrHzRt9GbIBOFu6hVoMafbukgdghGECiJWSZmSaBohAaOGU90McuBu9CbctgNZWkliJzimI+gipFqd84eieyCt5BTpWgRGhW1zHtrAFiGjc6gV4CJSDWfCyFp7fcrADmqI9tYucXCCockyvUPJAiYFRaRYnRmJhuBaJtv7XoVwAfmT1aDKu4eFT9fBeanPKvMoNq4qvgvSlHZnGUidqaa1djIGYg3Jgth0MXIEy7m9MvI8Es3ZNBwCMSpXWst70oCYyW+eQAxsWYr55FksqsmCimv5thW7OhlbBB/svAAAIABJREFUmUbjTjMrH0tNXr49aGugp0S3wC6N/Vk4v4uS7GR5TkZMVowIxzhK2iijGCMixSbLxHqlL6YEu1W8+hu0YwOgXYNUeDkJNjp93WczXjv84QlfHvCNkWsBn02NUwjYDYszepqsvoeOXqtVPz1e2I+jkq6a8agrB9Mn6mnlO955fq8lUfmkmC1wcVIVl+SSSogwPPBcgYNj7DQ7ocNwTfaE8wwVuI1PpDdUK01c+8LhOycHi2CjgFIzIQaTmTPlYmj5Ph6BjwXyRs4AHsKJCyzTwDyygOTRGmOrtMS0AkE8HekwrnXQ2Z2hYxUMKVCF52RZdqlAi1Sd6Z5v61Kt91yWHbVPuyetlf8wOrlXsy9MaljX7izIzLqf3AMAig1626rOl5dgW5Wpzqcn/Df/6SP/6LdP/NM/eMflceV//j9+yv/6bz5WoJjAqdcw917lKrNHlRoAlpioekex6hUAdk9ayAxgKo+tHBB2V3AA1HkbU8oYVmn10uQ18f7uLWlNyb2G3ZjUWsuq7cr+Bo4YkI3/+y+vrH2azpNsR9V8YxQ4OI5imsZkKE4qG4Rw3By5/Oppc/8hXUOdPvOh0c7AsXDQUnLZoWUeysIhN3RJzDvSFjKeSTmBOJ6GRIVPpIBaTLuVzsgr1hT3ncwLyECl43qQqoyp3Ag2Is+YXMEuWE9oA9qGqdGygU3m4AHSc4qLhWYPKJUcOKQV2K6BqOJ6oNqmZ1spMI4QtnROUhZG2QKxAdGIpvCVkz89Efk1bRj8Q6tAoD9R/NuE3RG/ofkBzYaIoy3ZvNE5UBn4KIuCkUHK1+StQxtEKsrCqtVTkg8s9vFXvme/Ed3lNYObxwQWHFTQ1jg8iQEfPw7GbvST0ddJx1NBsaKJh6ChtElKs+mRlBMBV52pEUMwaRzbUbr2Vr4HiypPi1bDvRerIe8siwjChZaB5yhUfdI8VRXNQSdIcUyKUXNwgNhrQkpSzBthpgm6Y9PL4+7ZZJOeKlrU96LPJngVaYtMLy4NkGJemWh5gqCltxdhafU5GkFZw5VCtyusUrKzOgRgmT/bqdXEYONtVlWv3jrzMBHunkbVYJncH4TJcsm7Yfxn5kdyn7jUAeVRIIbkndlFNXpS3mgFDNbE5T4dEpFZmPMKehjFeDIpM++nteCDxeC6Z4UqtzqQquyqPTSloJJVhAdLcpQn0qVXcoZmUfBdy/9lT9iiQCunJjsqSlM4nIouJlm1JDYrFXGcAWeB9wZ+Td4tRb3d8vNB/eHmdJKHk5ZvzgiaVcOCFN3Z7zK8N3YFSUj+dWZQ3u/vbOpIXAa71lpoVgbCXUpu4QGHVAPmJhwRuAjLmrzc7pT4aSiqBVKalufWMaXY3Uqip2KcHspxVrVkL02TsxUrlAz8ZrW/jQk8aVYSmApk8dszi02anux5f20pmVBUTRPi5JRi+BDahGa1T+D+Ehgwno3tqL0wmnB+rHhxW4KLVCpQ5JSRT61v78W0yeblXZTle7ETbB4VVvHL+MLbwxoAeL5mnW+qOHf5xPQPa7XPbDejSScOwb280iQd0eS0GCHK8rgWg0TPU5YuLGsBSXpRZKlwEetGXzsyNdYRiYsRd9BHlaDMTYck2ZU0RVehNeNkBXYeUUDIQDlZY7FWMisthqncB1f5OkvGs6QLlne2ds3axpgT9UyWbtyO4NMWvBxJSKX0trl3SSRiwiHT60lLshFSLIn3y8H5ovSuWNdpij/Yj6ojboew3xzFSVN20fIL87cnM0yrhmWxVt6bMp3U4+5HOu9RzATmQ5AoAH6V2kts7nGRsFlyeTS2TwPPgYRSXhmg6yBJPtw2ymN0sJpWEnPolKTuFYrREskDNdAZsmOj9iLGTMaNwChPODkc2cvriskyK9bqmXu6NanokJqoTzANEo5AUhhWfkqHgI+BWXJsCtfEvuwzNU5491XDls62UyCd+0zLrD3bpUIuIg4iPwuaTGU+DwFa3mFNirHmx9/VCvj1Xn4GbVJR6y874lX/dJnp3wriwfkd9MNK0mqONAdt7HkjZSlVw6bIArIpsQZ8SI6bVxK4dc4siC68T+F6bqyrodl499Uj58cLl/Na+56UbMrFEWsEQU5vNY9qErfcUDnofWfESw2E+wZQvjkRSF64eWNIBZ5YGDqb/N2TOJSxGbsn4znZX5LrtpFD0EMrSVuFp60kz4ysEKZIXAexlI2EenmNwX0oq2gHbxBNyi9XAkfIQVms9M/ywiZ3/6i3dxX/QV7/f+vyChgdR7zWnAUp3s+cQrbUqoAoQkS+Dvp1WoKYTcaqJ60JP/8Y/NGfvvDnP75V8rcPvnkpxigxEyTbTFu91/tM6bVIqRUmM+xeKlY5HLOnEJj2EfXz3fvYGrybJdaEpZeb/PCq7UtNUmdjXypxeHgQBojiY+5vWQPGSOHp0ljEiJFIwHZMduhkQITn69CekSWRnqEg+0tyebCqRZu9egu+uUurBo6s58jSCshWRzmDBPQb3geyLAgdbYn7FfJEkwrrck/6KYuBrAac8Gw1MNwNd8XzoTzfciHFkFmLSxdCQZYFXZy2PhAPga6JNcp/0RpDGwsNBngeNBVkmpF6XCEOMjZMnLU5xvFKwMjwwjFIxriyxY5K48SZ3QIZkFsi14E+v6A9UQmaH/DVTupaXjU5aN+D/oOGPK5sz058vNKODQvlYlckFfNOx7HmWLuCndG1gyxkjAJsYiYs68B1/dVv2a9rLfxNLol6mLeAYwhHwD6Cj8+Oojy9ayxLMUlEc0I1E2BQo8tdW17Uy/QJJmRN78N93jzj+bZXZDJlJl/mY4nsg7PDo8lMt3M0KgnASPahtChkwDTpvRK/6oApJg1pZVDvFfeNR6GxqfRfKqq6GinTm0KUA+rQwqZJfMnFDJtx1fKadIFMcK7uNp7VZJwtUJsLU+6G4jpptJBh+D01b04jTIwRhcJnKov8RhD1fg1XTS4IJpuqHvQik+Qr+CCTQSV382qKieTBBLbqgbFJ+YUJZJlw3Nlz0x+K+Xrlz/FZelpyvfqexmdPBJs01N2nKewcyXSFJxVOkmwJz5ns00vhRNIpNsFZisLqCdsh7FNqSPBqAJ8U4HY/uPYsluHN6+A/JXy3C7+zCL9lwvdMuVBTxL/4UL5gPYTnrICEl5F8+5JcumBdK3Ets6Qg91Q9IEMmq+3tXTrn+3cspcDrfPWLAiZjS2iqrE25aAGqe3QkhWWCRF2MNlkOkNgCOYx9zDEkQXoVsPW69XVR5877QhIvpLV8SKz2K6dAeE3oc1SnUpIY0slCM6dkpta41q2ka7EXTIKTwtIrUv3UlK5Z8lippJ8UeTVCVRXEkr7UgAIJdBjxDB7GTiWsnqzW/lDlDhm0pdY21Db+kklLK1+4u0nqfwTXTF0m3csbg9qDWmgNTIBtd8bYiXBwIbIhS6epMca0sBKhX2B8M9C2IJJEqxRKUaFdjMcn5eVjhTekCpuXGfp1c45RjMtxOCKN3oLzIjx2eL/AitB7Y20ND8c98MPp6ZgcqApdjS6CzURMiJInOmTU2XN4xVUHcDsG+whShN1HJRCKYE3YDXTVAvuYaBUF0ANTGqczmU+5XYM4Bn1RbGnQ+jSvneb4qrU57oOmR0nKI2lRTDPPtzeBNpnDNnfEa9AVWUnR0ygBmYOO8PL87Jca8R8SqCWpBzBtDlRxUdaHhg8rnw9qgpKpJAePp/LgEFMOooBNcvpALlgmKYPeK3kwpfzZRKPS31qtQaL+G3JKiKZ3S1djNav9SgtQ3Y8bs6vE9wNFZ5pT0roRIUg3fKdkk1J77u2bDfti+kEmkMXSG3lw+7aMvyNBMESsYCupaX7Thd4aEaOAQqIG+VSq3SDJKJm4nf8u7v6v/9KUYm6LsF7KNqMdnfGixahUSsa1wrrBMhp9M3QPBg2n476R6iUNJBE2LBrtSVlZ0VvgTdFr8vdEaLHAMOxILl88YadOmLBF4qMxUtl8r3paDpTBImdaPhEeHHvh1onzYdvYfbKIj4bHIOVg+MGQK972sqOQsidxdzxq2DMqlakYhJmMA3RUnb8fAS4V8JNe3rvzTBNV4qghwp7OJrBLed5GxKtCQIfM9PECwYrwX09t7jGHsMKesx54Y9e94sr74JCqPX2mPIrA2OpeKLz2RHeSwF2tUXYgxRKMTHaHg0R6WdDoPDuHJ98+D/73P7vyiw8DLp0ffHXin//+mcelGE85ffF0hvuI8Nq/KcUEuwNXx+EFPvq9T6j9VadH6qKz37jPGOe9jygf5VZmvnWuLo1lMcbIV9Z0eU5WjSRavYM2WBfh7//2qXpIau9dTaePV31udRxOZtsirKdGSnnhNgveP7by/6KY0W/x6uOCUHWBIvQWLObo0RDfyRZga/VxWVYhEkK38rN2GpGNlF77vJypmKWjWJNj0OxcfzeBRtWDU08WGiadlh0/BUd3ZA3ydHBWh+ldamYsZlw6iCm9QW+PkEGGIbaVVxo1rD6kVDlmK21RjJWlLVQ4WbLYOx6XhW7Kt8fGcRuMTzdyc+TF4VOQzzc8D/JI/E835KffVt3kG5nJrskmO9Ia9riisuIvg/ggsA3CD1xPjNxJztV3iJN0NN9DrgVqxU7KQo9ffYj4G4FeXHdh7XAQLCnsW8nznh7AOWjeiXEQNmPGJZBw7iIYmVKbI6PkelrTE6QomxKln9m8Ci+Vks0ctzIWtWiIFMUyqGSf4cpRFQ+XBsulfLIyhNsoruYIsCwK3zIjyAeO0dBMXIWewuY+mQblOeFeU2gTwyjj1UNm1GzWlOA0e7XbZG/dWUSZQZTnKGuL8nSiir2uyvBAMmit4xHFyBk7l2ZzImAslYVI78I3R3IgrDL1jm/0yvupN+UuJJN++dkQnpwm7FP2GZOJpXOKKlPXzNS05zyYxiysZYJTq1Uqyn3aIxNRVKowT8qHSJu8HsZWsxAyCkgTpq0RtVnuwE+nN1WmcBI4NWgJ7/tMwmslCTl34fmWPHfh3Kqwaq0SVhqwaCUgHkN4bMkPMP7hJfn732vwpPAMbMGf/yz4sz35458e/PDJ+GZzrouy7cGna7JnMWiOAD+KAVhFWRUEGeXF5TXEf7Psmft1n/hLMnemv36tzdi3ohtXsoC/AnyCMqRAZWHMfS5ZHwbHtQwSH94ViF2x9iUnsyyT64xgmaYKqsmxC22FPISTwVUUsWSZMkAfwno2Nh8cm9DvQLjlZEoV09S1ALYuFBgek56fWZHFWawEkfLpsBSYLNEYziqlv42fw+UpGCqctwW/3DgOqfDeCNY0XrL2UY8EcU7ZCE2Ord7TlsljJos0Lne22puESD9fkWOCWIZQMd2VEuk4gp2DbTsYY2FZnNs+WNfG2ATpB5lKa0pKp3+pfPzZhv675Kvf6WSO8lEMsF2wteFf37i+rJzOtcft+6jIbw9EktZL8m8mnFsnY5BSSTSmgo8KcYkxUDV8HJAdtZx7YDKyLASqoYxZsAfXa7JaKwNl0YrC1rnutL6vY3P4FTQxchU+Xg/Wcyu/sDlyHOlYg+shHFswjuDhSWCxmSpUbGQzqbCX3TGcdlKGrCwJN0+uIyZz9+2ts/Ady85gFMMjoGOMHGXePU3UEef2nCznxrIU+z0iEG3zWS2wvAkFqIoWI8ecuBXjvVnxI+IV8HFEZ+rXZAQ0kt4qyVTMCkwXocsMDwlYPDlG+chwghyjgiG2OxtLyTg4WSOiQIChDR9eIJ0IHuWrNQBdatCUkcgt8H1nscYYg94SO1mdYUegppWo+VvK13+xocNJXUq2IUl4ImIMN7QNtm3QbEEz2UegS5scEMeymot0PkeWvrHriIRT3sstbhlY8xoCo+g2P4NQ7B349SCuoF8+0hnlNzsWmhr79gltC9lOnKXx7rce+fjxG87rAw9DeGiN/sk5f+/MLXaOFlzGxjszvvtuIej85NtPfHvrbJ+eieWBfT94/3Dm69sn0DKR19RqIsde+Lbf/W6Es61cR0z2TGOQHBlkBCad486QipIb5ohKLYyOxk5GAVF2P+NOxpiS3iW8kghH0LsUld6yksoUjs1rnU5VQIjQprWJSLEooyiCBTBMAFiQV2ntW7qCYoqHz5pcS8XTWj1hYkprydgLmMrJ/s05XM6o/gyoBL+ZDlyDHy3lw51hlbPfOim//dXCT67Oz/+vj1xH8GffDL58v6Cfdnw0Xm71PaofTXxEAdZFOmSLSbhIYVHYsogXiyXvnoymwbuz0jucrOq8P/+F87IzgS7KI3oOAD2LcZ8+U+upL5pVH9MXKTarlFeWCPzJ/3Ot99WqZw0vT2a0GFxNZiI6WXX9rXwT17WG69vNef+9hZ/9eGN5/I2AEP7WL283Gk6DSrmNoyyEJmOPaET6JNg0iLJSiJi2SJOQshikK+EbylOB0mOgHdiT3gowy7yiPOCxEZaEyew/D5o8MWKguiFjQVut0TU7oYl6Y+l15obfkKgx8DGs2H2tVFyPKGoNlQUROIYX+90C1cukCAk6Gs7Gj58/8C//LPivfucLkDMpA/n0gP3kmXi3YGcnlxX5UKnYt+cbf2XKp083+torQMiSZdkYcaknUEA3YX82OLJcO7URDiMH0Yx+OsMQnCvjb5D0+xuxErer8DHgtHS+vR08LInIQKRhTG+MxdAUxjiwXpOdIyGzvA/MZyoNRf22eQBlRPkLeSECy1rxl7eslCbC8FEHhYeQR7BYNXVI0sS5JqjXoq30mtpYRpaHSSIMmZQXUVSDIwLJRkb5ebhPPTQUnZScjKwy+bXpCxGT8oxEFVuS2ExzEqnGz13o3WDax+edto2UaW+W2V/9Ep5OUxebSdeaXty9QRDnsUnJ2cYbTTMsB99XHAumRC5lTvvudGO403ol73dLJmiVM32I+swpPKJJ0kWmB1rF5G6RZfSfADmnGLx6XE3CVBlPztdEKmK5N+UejnKdLK9bVPrJyOkRML+nifBolWKD1WFZyXHAInwazsdR5vAFslXdrFLS2fcG/8lJ+c9+vyFf9jILfUl4djDhHzwp7aeOv288j+RnZnzak22voIWaQRcIuzP9sRRGTIlm8R/nmr8bYb696/5kyy+919fr87Kqz6QZ7j6ZkUqnJHSZRUO/S4yPhDYL0vU82J87I5xFa3I2vFJCmhW4NApp5w59VzaiV3wyWoCtAl7eW8WKEZZW8qvXCVsGYwhH6JzcBSNrpmR3eZhA64FHTf98Pis2JaVSdApMSvptEXybgqtwPBu3y1FJs6KTZVaA2xjGZoHOBJ5IYUQUpXo+qatWos9+nzrepQNv9BqlJZiSg/JcTIVBgUfvn5Rf3ODTx+R7fw9slNdZZqC9oz05QsgcNDNOT8Ltpzc+/qLx+L7RcwP36S1iPHyn8+3PrrR2KmnE9KFKnGWpcsFnkmFmTMap0axBKpHO2JW+tmIG9pVSCcpcW0E6aHqdt1JphRE1/RwRdCu5ZJ2lSuQgHEKVsQutUR5PAhK1C21HhWnUcEIYshBDeNkcHQenNchc2NxIBpqj2FtHZxwF4I5WCVQM56OXj6HaZAj+6jXVf0CXVaS452Rm1/PUU1/TIUmdVghe3imRHJbkkQwJJuZeZ2OWv52n0CJIAzklJzeum7P0qY9neoRmJV32Ng88JrBqoEdJWGO2VVrdJWSxqRBHRBkvWf5aMaDXfqFir0Mjoc7K5WK8PB/0pQjrONDLhyuzZA17Cqs29mNwfBOcvlzZjqNAV1VEAo9KkF4fOp9+sXP+yiENNGkSiBZgHwPSOy8vVx4eqlHQmMwRMZJi4oq2YvG8wUvD0PQCHKzqIDLBKq1vLGV5gTrPx8BODc6D3F4YQ+lPC6rO8B3tD8Xe9WcGj9xuG+fLGRNDL8bDs9E/GIdvfHdRLsvKRQ07d1QdV+H77cyfPn/gT4+Ojo2zBft+VG2fTM+98guUWEkORDZsdHa90rYF2kbGShw7rsnSL7jf2PdRZ5EGPhvIDFhE2POo2ixq8HmQWLe5PsvzaUxf1rW1ad9QNVS0ArikKZt6yRkJYlBJYSb3vB8WWRm+F5hiUmfs7jNQ6m1d0y4Zsfr8GtO39LVqr6styrEXi9RmWI7nXfZbRunLtHipVNGc1jQF5nSr5MLHRbFV+Ue/d+H82Pnhlyf++N898z/8i9/if/vX3/Av/3ib/VSFeznTZ0rKFzlGBaGc2l0nUntsf/XlFX77uwuG8+5J+O//6wf+7Y92/uhHg/cXRTQ5xn1IOhlYyrQuKebd/JvqZbN6kdnmYFJfa1r7a0ilF2fUUFqzAtc06+sAEonvyflSfsrSlLE5bVH2qMHD84e3qZH23LE847oRUkPWyJ2DC+QGfSAeOAvEjUVsulQZRzhLm15SCV0d5aF6+nGAKI2VbAexd/piRHbIktlLSBFwbEC8A0nUHPKCtgPPjmhDCZp2TrawjQNyMq8A7GCNMy4HTQqQr0ThEym3UrR1QXSwIKieGHlFRAuP0BNJ8ldb8KOvB7/zGMjtDL/4Gv/+l9jPvsa/bdjDtXS5lwu3D9dSE4lyaWeu27csh7Cr0Vp5bEbu5FnobcdVGN6I2EA7hKB7chwJuSAvC8ex/8r37DcCzLpcnG0rVPvdY8Oao2GvyXwigmYh6733VymPZ5R0bD6cMk3FujYyfDaJVQTte9BPRlJFtIpgAWMf2KqMgPNShVgqZAY2tcYqlUJz6JgPeoFYRHkY9YBDp5lpChk6fSamjCJrkqLJpM7fWThlTO8+pW9Tbtkpg2WNWoQJ9b2mQe1pFUaOmnJHFQmqZYTfpApAoxDi1sv4O+7A3pR7iZSHxUi44pwUrm+VOjMBpHubP89+Rk7a7+R3SHxmUL3q3ieIxWQYSZmpoaa0nF+fEMKlC8e8l5nQp1yxvIqEm1eRIlkTjkuH3QHuwMFkHKgSWT5rV4RTJvtsNCB5MuEBOGn9bMdkijWpRj+mLwdaU/SXl+T7T4JkmcRvDt/r8AcX5ff+WYcvG/lcRSYyaiqogCfHp8HvLMb/QnIcBVT1RblN3yIf5esVUq9/n/CHVMjBSGY7Mu/DG7sy7wU5r34Mrx5t8NeALbej1pQKqTUFjASNycS7g9MU069LMrJBDPrJ+fitcnlSutVEKHMadc/iDOr7ZxRYRU4mghawJDJ/ztDXdX3kZ+CRVFSMPSGlzJItoUmgTZEItM1RJQWa7lJeNha1Blcz4hCW9WC/dsKSr/+is74bIILq4CWSc8KhwcAKLBApX4j5WZ5Rdqs1PVqSh9UAQ7KKhTvI8lYR0nmpNjwPPCoRMjRnGupM+dVOO92II5FYam1x914EtsT1wJD6rFvHvhuMb1/wdycMI7pMP4jEls77r4Jvfnzw8L6TMgBjWRc8Rg2AiFcQ0VHGOJAAFUMNTqcKukibia5DoU052zByDAZZjAuviabP1LcY1IRcZjJqs0psEiG8mhLxMpGuriDAYN93fD1XY7gFMQ5QYVGnXcq4PkfScGRRSFgC9ttRoLsMJAyXZBtVS4gWk/qQekbf3lVpqUOkinUcz4HpDLuJQKwm92LFegoPZARh1QCNrV5DFiartICdIxK82OBDnH5qxDMwdkIMmmP9hC5Mvh2IGpIBQxGdsuWjgkNcsuLqSSwDnYE1l0fDXRgvIL3O2qQaNpOGcNAWZcTgdIK8JXqq95rDwAZqHXehPQrbNrh9cvTqHI8Te8mZ8JW9ZKtdWd8n+0/6HFAFfmh5WW5eIQhieEtWPTFy0FolUZkWEIwKHsekd//droJf11W2wsqZAmAOouRMNfmbUizBRZFeTF/F2E5K8+D6dXL6zijWwy1ppyewE2uDnkmLFbVqsu2p88VW6cpnih1a2qgDLisqirDzjx9WPnx85OO2IX4jUU4mHLuw5yC5serC83bg4YwuuB7Awt4ncEmUcTPJGEcxo1NfDexpBfZuUuVUF2VvgTuvdWh4yW91Nq/W53C+PEHKkFwUk0GaTk9U2Mny2EU4DNpkoSLJFjttlZJ3j05E0tYahr61K6jBbBGKCkS6S+Pq3d6h7KTNdO04Em1CayWjVpFJILgrM+6D5kBpSASHV1ri954a/+0ffod/8vuPvHta0LPxz//JF/yP/9Nf0Xv5fR77qF4rpICCbpWEPhN1kQLPRWCx6meNUg8tJvx3f/jIf/GPn2h/0PF/8y2nxejrzr/6k43lObg8rPzoLzeYliev/r8idKrWXppw6cbH54PWhHNTPt4C/1zSszRFjqgQHwTCMa3Ap2X2LrejwL+nS4UlHBHI4bRlnscIpoq8QS9JAHHF+8DGibSXCoCQJ5CBWUfSSVGGbDTOr6EpwRXRhYhE9OU1BC41qE/bpvVMJ+nQDtIbYispjqSBDpqsJE5afb5NV5RORnntdSmvPwljl+ep6DlRJvJSA2ydfn7aSAdbOvCBrud6RqYnm2NEVqCG+z0RGkKNQfB//uJrvotweXbk/QnbrzBm2u/zRr478XMf/Pg9vLzsvBBc+0a2R2JvpN+w68aeB31dCYJQmx6GCtILeNcZknBJcge3jfPfYNDzG8E/tWYs3dkzOESohNsyjz0qH7zkeSFsTHNiJgBkbXoa1JtWMY4IQgJNLf+qI9FToe/igh/FF9n3A10KCOoGWSLq8umYE14XYfNid6UX6ikhqCchNsUfsOSc7qRwZCWStelx0qbnTArsODsVkXo3fxbJ8jZiGrTrnHRKskewD0easqiymmIoXSqS1yb7J6I+E8kCHCTvqYnFjin0//N4ucqwOgA0FaVxljdaVTHvDfWr1eCsJsrTz6hIdXcnNpmARDXsgeBShagmLGY1qJ8HRJ840O4FQDSFVetg6ApkzkOxJH4PvV6/vN0qcbBJHbTGnF5O4FMyuUU1U12SB1UWEdZpYJlWBu8V35scUbKNw2GZwNza4ONR7+0WwUHyh++U3/vPF/jBAucG9++7CXJWuCb7T50nMqV4AAAgAElEQVTvrsZ1JD2EYYI04XkER9Tz4Hem25yEZ0wQy+uQBaYE7f9fevcmLpkylSkPvXtmvV5zb/rjv7gSkyVV61ErTRLKLFiWwhPVimlpgkjJcdSCx0fh+Vvh43Pjek1GGO7F3jHKlyMDjl04rkr3O2OzfGFa1iHXiWLD5PTQ0vL1M6DjBYa0KuxMC/j3KGkZnwmoRaOWAkgjy+w9boEugR3lD/byycCCvijjJshaB5jAND72agqygFetrZChJUF7edbyuBnJhvPi8EwQckxG5RtdU/NydwSr9D7mM+QFJIQnnoPHS4MUtn2m7GawLsVYcpk7mlI09UzWhxPLJRk/D5bVSE/G7veHFFlKPrgdwWltE5yvv9+jJv5ksh/BtkFi0x/yl5LqEJiyGHIwXjbSY4JWSfpe0oiQ8nxBKzVPChQOBETY91Fr16wKaJRInVaHRcWPpvTlTBzBfhNyOGuHp4twutSedTmvSEuOPZGXajY/3urcFBLRxpHJ8w1UnC5eskq0En787a2zmJ6dqjKL7bqvxxHEZLeLzJRJq/1iBiKVma2A9AIT3W36PAL5S2mHkSwYOhxb4fR+4fIoLL0jzRF3WhR9wO71klXDN7PnZ9ELYKS2WrNRpsX78GJvnpTjeQfJ6fEXZByklJwivZjP2hW/7fTJ3BcxjqOkYkN2rr84WAz6d9c5XvrMKE4dhMIxwZixBy+fvORmfpAuc90Wk0LlPlgCJns37n6GKEmv50N/I8rwv/WrW60T18FVgpgqBdGyFTHJGSoQhAeLtPI5yx27LJwu4J8CwhDttNNCquO51wRbBsu58250vto7K8HlprSbw1YSvSpK5nrqHemP/Je/+xVfPS0cXdEWEMUAK02g8vJCnVNnoV0Xmp0ZeG2PuTIyOVxIV7ppHbqU12X8v9y9y69tWXbm9RtjzrnW3uece2+8MtNOJ5YfUKVyqrBcolS4gwRI1YAGQkI06EGbBqLFP0CPPjSQkHl0kSgJISEBDapcgF3CILuEXel0viofEXHf5+y915pzjEFjzH0iVdCwJdsZdZZ0I+LeOLFj773mmnOMb3yP4WkjopmaLiUHoOlxlPthKdCWDIsqV2a1QNPpb4ESXvEoqDU8HHtknUIripeUg/kVNA4ymXx3qq8McUxht0obXwrOwp/vNevMmP2PzB4wJAc5xgRTJ00rFHSaHI/hM6GcZLPP3mBMT1GVOVwWoZGeRj/4bOe//+3P+M/+u+/zd/7uj/ned97yv/xfr/nN3/iQP/7hRh8p89PIMKe0e7kqQPLpTzP2XIuiWTO3RTg24a/+6oG/8VdWlo8F+YVfZPnX/3k+/rf+Bn/rX/iIr37c2AZ8/7ONf/lvvuCf+8aaLLNZv4Ul4zNIgOthy2HTPoL7zYgS/JVfveO2KWsVvvkrd6ykWiOR2LQGGZG/9t1pDaTksNAtmautFkpE9soerCVYlqfnJQkgcZvWLWIsXnMwp6maSj5D+kFWGqV0hm24f0GKWNZOY4VaKe0ArumDXZRSkiyDGqEVpHPZ7zHfQQdiB4gLET0HveZUKkUGtRqradZO0giruC2oLFm370dwpVil6EjG2AjKuiDSKfWOzafP3uQxugc2kp1d2ppEGNU0jhfjxIHf/9yQ25ZeVrHTdwcZ7F45XTZOzyvv3g3ennfUEvArpaVvVwnspqK3DShYT9ue0lZU2kwCLkDBS8xwjBkyFX96A/gvxS73YM6ihWfPgtO988kLSXaHBurOpop6yuQWlzwgbSbuJBUhp/aaMgwn2HtOYm8O86Ec06QxBIqy7UmbJxwxmUbts3gxSRmPJmvh4NModzaoDWXDUR9JnUOJKKTFaU5OHLhMQ27VZIzBQKXSPbCeU24hm8JhQasNodNEeDcsCy51rM4m2TOlIhuL1Jt+YQyfki/TrJVSgjkZD+TG1UeirxLBbvn6N2WyOGQ8mpo/tSuuQM2k216bwpCYbLZpuD5JJ4+TGkmPoFJ4bB5VYAxn1TS9brP+aMz0yckY0DkYVE9ZTLvehGu9H+kRgqSx9UHTZ6rOVbZOumgFPPEADjWBrALU4gyfhu4kOFen7dmeSG8WUZIsBt2D+whuVfi5JfjwGwV+ecav/L0T/K0DLArPnfiDHUJYIlg+UX5NCp++c7773tl7Arf3pLTSSTbWNkE0nQ2NRQJ/PgfP7YmCDj5bHv1Cv5rMvZ+Sv10Bl//473zOf/7v3eE0Wu0Qhvb8/qRAnZK+Kuk9ts/kriBBnoezcPdsJOgeNRNMgcuumGXjuVSoB+fFTU4It/uWU0yE95FTYg4jw1haxst7CKU5C0bVwt0yGAjqmYb4/AYul1xP4QAJziJZxy8BVRqtDnxhSsJKMseGcvuhMfbKQaBrp1ITPKtpTIoIexg+39/Vd0xQbm6NcWqsh8H7EF4HHCx5jBWnXwHSpzd8BkAsUP9iHfXhWTRFTpYbQV0rh6Xz9vXGx5+stFawkazfUiUHOAISC1oC34CbA3o58eYHB26/dkBbRyTYu7AslQ+/tvLmx2fO7Sa9/RzMkiXRoyD71aNlUBRqSxaCW4KeRXIPuJKnhgv9HJlQYwEUtp6ydrP00sKntEEBT1azT4l9uCdr0VPe1qKkMbyDlsI+kmU87MLHz8HrmkyJVlEPOoObdaHr4NwdToaXL5ikMcgkoWHsCKVOWbdk4WdPUcrq+Zcm2RB3nXI6g3z6Esg5n2G5lfQs1RzfdfdHZkSh0Es2bW555oTMwZ/mORGzQRwkAHA9K6NkmqVqeqYqjkbFQtFwSqkQRqehw2hFGKOwaKHjtFLSTHdVYl3o7xy/EQ7NUCq22+Ngagjsn11osrKX9Hq79I7URj045a5wUwu+5NhrTNuFGXqe0sGWQ5rwrK/6Q3D8YEFrQcS4dK5RHJnoWgXvgaNkHmmBraNLZamSQ6iniWWxV2NxY2MqDjSHH6NnQ0jVVA5IcBBhuKIl0yYvF6dpZzk+Q2LgMTg/7KyHyn4xnt8FL26es77ZKUdBxOGfuUG+fQI9wIuKjA4NYl2QZrgo6lD6gV/7+gu2bxvvt3vQMYGNTt8b5RDsM9F8rBvRhaoHolzYTzv1OEETUu0gUtESmXraQEau771l/ac1vWzLCuqK40TVTMxUQbxQxBkM1iLETJJdPCXjiOBWqNWyD0KpXRhLsmaRgZcKI2XcvW2sk8Fho2NP0Qu3pM8sJqlQmgx5mazlpWQPWTXZUNfaO0oOnh/OwbLmwETInq8Wpgm/0KcPboRzOc0/ez14/WA8XIIf/OjC3YuFz1/t3C7K/b1z2ZzDjXK5+PThTTZ1RFDmnHyPlB/G7BdkwPFW+cpdhV//RSgD2c7E7Sfwjz+Dr33Ev/lvH/k3WuGHP9z5rd/6Hq/fjpRpC2ibskpP/1qVye6byiPfHR/C939wYkQWbL/3D98SpGKnlOyPlEhpnKdnm09eZXq05Tlu23g00U/yRPDsxZPU38NhY52Bb70YHsqKohQoO8M3mq7Z6+8xSTcDkYaWC/teUEsf2o6Bpt5KRXHfqVEZ0ag6OIlxqI0giL0jbCArTZRFG201go6PTAMIdUpxRByVZAKb9QTKaoMqqEErzxPwjwXv79F2h/eRQFrpFO4YPpJFJoGNFTdLCxlN4N7dib3zchn8z283PllWvhJHjMHRjzyszvv3G3/yomMLnM831PcXCjssQpeaIJoKezijOMghLZAuRthK7ANdztTygjMZpheafU4vd3/qW/alALPMgZJItlbn/YNwe9QsHiZVtEyPhQR+mJHhCRz4RBcDMBnsPf07lsWJKNQpGQuc0yl1ooeDsl3AJThM1hZuiMBBjfMOy0FhOGeCOqU7g8hUMCZTZeSXP5jTmZJ6Ykiz+u6GVFhM8Gg46U8iLaWNIsruxrEqwzoVOO/BWjL6vKV+aUohBMwyDlYcm5PsUvOArHMjV4RQQT2myW0CMFULwx2hsMxY9+bCNpQoU1r0BK/HWF6mrIs0omvT+DXPuRnhO8EXj0xxi+CxOhXJoiyL9QQ6m6RkeJDNvk4ZoUzWlk6Psnb17GKaNs7XOkRBa96z4/V1rxM4Td+gSrCUfFhbSaBDJYt9SONbLIG1d1e9O9nfbwa3JbhtwnkED+b8tecVvnnIU70q/OYN/FKDXeDdBi8NPh3INyqxZzMtmuy+JeDNPOCINNAPpvmv8CjtFVKCy8T3IPgzMEb/qbquccrA/LzTv+Gf+POzS3pNdbBepjTMcc0JdSdoASYp+eoWaGfeZ2E52EyqsfSxKZFynDZYQhCNydq8gp3C8W5jUJKNWArhO8OV80nxcxqsVwlKGMv0kKlTOjh9VelhaFO6QZWcMKlqPizuSCvcFmcfaapda+UyjPs3C88+HGyebMixDvCc7u3ZLyajVrPwtDnJ3BzEdTK1hPe78WLNOPOribhc2Q3h/98b8oSu0phnm6KSLCWRnALXMr9LgsONc34tPDwIL15ApuYmaGlhjL2g0ScLR3EbLLc3+Ohsn+4cvnaE2JHI8IChhfaicj5vhB5oNdi3NGQXcfbh6Ys199W9gwzLs6bnxLEPI2oyt4YH2zY4rPp4rzNROAEp6ZZm7JEgPfMzG0af4hFFKJEhLaYZhnJ91pxg2EAF9ljBZIYX5DS1JB8xpbO745oSHtVKEFwMZmwFocrumWi8k8BMjycIxrtBKQmo1LRVqAGjZJOOB2Pv4DXl9QOkpFeVekwOZ4I2JWKyl3UW7Q3CpzfNDBxxUO+EzsLd/VG2J+gEPJakUWAgJRs/iZRPlGSQjmEMqRxUCE+wykcQnpYRfj/wG6G1adYtQTcYn3ee//wCOKE5sa6yUKTi3glLK4dmgUkygsISEHEaqiNlkJLecB1n0WRPpo+tskyrC4mSLKyR7IkRTmuKXwxfaiZy+mTNPlHG8sEKXjx9RSM9ezpBrYqNoDSZ6yCQqvMpLwRHpL5n8zWDnsK53Te0HKm+ENK5KXesZ4ejcHuA1hq0ii2FkIWyN/zOkUMhVIg7ULf0hR0r7U1wy8LuymXvSC0stnAZr9F6k4Nsb0iZKb/ecVPkEPhujPA5UEl5YcBMG4RahW7GYRT6Eng3llKmz2CqR0wVlwx6cUnpdCmwaTIL1SINdRWKKVHGY7qnYPSaA/BaLHuiMdIyo0IdQrSShvbTsuKpXeXKOK7pR9UWnf6L8TiUFtIz+DpU1MmOtEjp4Rg57CkqaM2eLWadKmRfNQKWg4DB/mAUCp++6nz2aufF3U755Rs+e2togboI++YUTTJDrZm82zdnGKxreowWFcZII/9jSyXHt3+80X/7e7Rf/yoMBX8JP3+Ed2fitaOnC7/wzz7nl35+4WELLpfsI/c9vVDXmntg+vVmTywK1FwzD+dk+C+aIN02hz8peU17CxVLv7CiVJ9qEs2nskea6kvMJMUoKT88PVGZodxh7NMcv9EEhgTVe9oOyZEUiqZHGWG4G1UPwJog6TLoF6e0IGWwSxJwoiG+Y1PR0aSmFFA6Xcm90gdaAhuF2BcoJ9qaR7aqMPzAWjZMWspsa1BDaO2Q4SkabPvO4dCgnGl8CGx0Bqs0zJwhI60hdCdiIaJTSqMPY2jlIIaOgvWdbV0JF16Z8TYeuIlg6+85R9qQDG8MBbndkXiGvf2MpYKVldpWzqe3aKx0d6pviDSsdSiGrhUebvHtRFkekOU5HithOy//DEmsXwrIXilcPGn9x6NiIrx5gLcn581JMavJLJo+IOY2qdpB6PSfity0TlsWGtcmwAkum2eE94DDMYsK86AsymFGmu6XwekUPFyMc4cRwv3ZMS+PjKXeFbE8dDMOYJ6NV+poZAMKQGS0dwzPgyny8xUp1Eg66gqsoSnvk5SmeeJRhAQrgskku8uUvLnj0zSaK4U2UlaWCUMl6RKevyT7TRB9NDrVkka7w9OlJ3AiBuWJFlXXzxWzVJIr0jMvkescYkr7JA/LNKvN//Zq7n6VQSmJA5llA140NxkRSdNglQlG8cjUc0n5zJUJdpiGtjJlhik7/cLAcvDFIbwUoRSZzB1hm2+iSH6mGxUeLGaTmKyCPveB4fDWgkPAxyJ8cksiZT+yRBl+5wL/Z4ff2eH/2HJ89NHMBJ7NapyCDwPO5CGYkcdXWVPAZGH41PNL7t+PIOGYMryneKVKOPgiMZNH8PRxoUmCUk0LtQpycGrzND+eAQWtBVJTriUzEryUNDGti8+1KXTT6b1gDEtJ80p67S1TFjQ8gQGPZLeqOsLIpqsM1jvj9s44tEF04bKnVM1HsmiaTLRJIazkfimRshnyvjY1lpb7CQat5nfR+8Cs0PdkES1bhZpJT4oSkubdewq8kvUTCihDJuNBs1l+CBhF2TUeAWTzYB/xmCZ6/X6f4lVLnWlaYNMTREuh1foImKoHUldKCbaHndOZ6cmTybwZVz6Y4bwUCWpJ8+3lhbK0M+dP7+ndMDd6bmosx4W6At6TgdhyMGNCJufMMxfNtUnEPHOF3TLNMKasH1Ja8a4bFw82M/pIb6UxLH0W3DJBOKCL0AGXbMbyTBRGKZm6OX+v1+lDZA0gJWVgm5DnrldEVkQqFs62Kfsg17VWTISzpVwxKJSm1CJUJFPDIlOyfDw90LS1mudcd5acZmFlfk7N5tC9IDWtDxTDhoMJMUAmgOkmIMoiV7N4pcRAcHwCOREpw5LS6DhOwUOJljLmJE8o7sGwSwKXEkRxqIVSUxa4zzrRfQPJs7zVHByuS0Gqos8aFKG/Gzy8NLafdOQEx5+vDM8drEayZ7Tk/qWqBEFdFbmk95a7EyrJW/BOACUqBaFFoURKRkQEicLlIYN9NDIAps7vY4/AY7BPg3wEqJKsM8338BQvcyCEgyh1ilqiNIaQaV5TGqWqmKWkt7b0msFWBENksLYVvX1Gi0697NxsjdI3LuuAIrw4LHAMYoFSjHK4wU8GdgvPGnxwQG+ewe0B1hWWgTxbOPOeZTlw9+xrLOWOrTvH26/SKSkjkg7IY4K1elBVqa2w1IWlLAxJ9oXgtBl955oSe6oBDiWHzVyZshLJqigCYtQm2AJacuhunqmsNkp651aHsyJ+QCi4pB9vA4pls9y6UqftyVDHfWSaHpNB+8Qul/R5dASqsG820a0c9GZ5nJ/9yiZSz9o+pYdy1Shm7aYyy/0ZCiXKsKvqIFmd5aDo7mznDDV4977zo1c7ZsbeLX0C59mqouzdp/1E9gv7MNYi/O2/+QFfeZEkC0RpIvzix5XLHjlMvr/A5QLf+gl8fYUjxP1g+8MHfvGjA1WybgwBMgwPcxgdGMZlc06bJWARmSo6ybYJKLuwoKxC2pxI2hi8+HCdg7Ngw1OtAiyAuOFhqCRgNkirHD08zc3r1VBCa9bqu9KBRT2ZtlsnSPBKVDDfWLSyyBErHUrBrTNsQavjfQHyXAs2LAyvLX2vPMNAhnckKk0qLpGpg3pA1KmHgZYDboWmN5RSWHV6xUVFpVFL9gYehvhO8MCyroBivfJwesP5fJ7M9qx9IrlABDX9eydmEDOkZN+VbRjywcrhuOAqnNV5NwovGbyjcxLloQK1YGIojV426rMD9+874SeCQQ9hz+xCQmCMHdzw2PBxQo+deK7ALX4/kK3jCL/3vfs/9T37UoBZRYNGYQ9lc2c5wt2Nc3cDhwb9DC/fFc7nmoal7lzmJmEhbEPYRnB/gtPu3IdwugSXXth7ggC6JAPARKdMOCe23YwQR5fCeoBalBJKI9IM2ROgKp7TQZuHTTaTKTUbOBZprj5SUIv59DuJZG4VVXB/TJ4oIlAj0wtJJk8nm9Q6E0rShyZJ7s0TFFMEN300jK8qbJJTbZVsYEUU8cjEAtLvRlWy0AOI3NQRmdQ8p7jyVFPBbDLbrqCWzKZOIoEWQh69szJIJkGrq7m0MsElT8P4a/hSJQ+RnNrH48+BsFsyqEp6DXNbUr5hDocqTNIfNy1BCCefgyLBsST7SycgMRCKBqvOREsS7Lxq3FHhYR5Yh5Ig28hlyDLf1DCoK/zGM4HnhXhr8HWBg8LffgY/2pB/8AAfAGeHT0pKKS7B939svB7G9z3oJJNiJ3iIq8z3C++sIAGdyHM6C0Gy4H+SUp15XVNjIEHLn76uz1UgvH4YE9iC0JJgsgS1JBjmcy2hnobHEViKtZIOHFk015Lgams5+YdgrUHMxtOuPh7kmqqzgE4JbXoghSWg9uyFU7vy7mUaIWeRN+nkAvsIbFx9a6AWQ+cND0+4Ukv6E6rCthXefd64eWbESMNVnT44aVo6pkzHHxtZkfTcsvjCL3H3ZCmmeXiAwUFg1Qn0PUW2zD9xvd+T0WkeaKQJPgAyZRaejBgrwfPnCtJ5+2Zwf58/JMAaKfEJyyGI+3VCbWwm2IsDZemc3gVeWvrDhMOilLXSjo3eBdWWbGJNs073lAyGFYb59K5Mb5wEUwOPNH0+D+fUc81dPNgi6BJcwhmaBbZJYUPZnPRJm35awAxSiZwaxsAkUqpaCubK3nMQsC4COHUyOvI1nNNubGfH9wulGEODXYStJzIfASMs17PP/atc9/MMSHlql6qjFepaCcl9xHt+71ffCiAldNNQ2yOIfUcKCfwtldbSu9P3ZCJ5MBvNlF7FyPt7f8naJ3lYhkrWN9dkUrMM7VFpCVgNTY+4yP0stFCkUim0UHq3OfiJbLaGE+dOnAbVgvassn4Ay9caemuIQW2FCKXP5Fe1wGb6Jx5pyi7KtmVghUfMdGyZwRpkUIxPyrFB7OlhsiyOjfxzG0GRRE1rCKW0bCRG1iIhQr1ZiJrfyFO8xppMTnbHw1hU8LHPcCKonimiEnNPEcNHjjykdFQTzPEwwjb8UDm3TMMaa3o8Pl9qhp/cfoR87UP051aGD+Svf4ielfhOQXZgbfDBAkdJz4Yl2XaHVtnGjrGxHioaWw6XRp5xxZJNCELR46zXHdVME9bH4JUMTymlsGhg1ZFF0JKqB1myLhgSyJKeRK3kYCumGTgzHbaRPxua348r6CG4xANeJtu1ClaV/Qq0VaeXQIoSS8W10kqDkuvvqV25ZiYLKoTaNH2fhs9QnukXKtMsPUsoqkiC7aScLno2Az7T3rNqSqYNxGOyslmGHWkTWk2p7OXB+YM/Ps1e80qeyD5KroPtyNcWzZTevRv/4//2mldvk8VMBL/49ZV/8ddfZNrnqSOnHbYd3u/wuz+BfSC3jfXnP+DXfvWOD46NIpL7nWsOnDXr7WEzwbAH5z3BtJEbcg6KWrKkqVlDfXhTWDRBjfdvO8tMUz8uhUP7KYWJC/sFLsPpPuWY8GSHiL///fdgbwntWBs0PCXCBqUdUVmy/3enyF0mG4ZTvMAYWHXUjCKNugywinilaWGRlgnNUijrlrWzVLr2PGt0pkR7cp97XFAxXGHvAxtg1hjjhqXMfcMLpQSVwRJKyDM0HIlMRz+uB46xoJbhLmnV1BiWVWIy/msOP004bwnStpussYalu+1wZR+d+76jS6WHc3bhvN0TUdi94w1ECq0c2c9nhEpdatb3DrsJ3QY2FDch9IYt3hNmlFXQ2xWXI+Wy8I9fvv1T37MvxSnqkTHc4Q6R1uSmSfU+HoLDjfHihbEuzk/eVF69r5wv0C2N9nTJL+FwI9zewG0ttNXRNWZjmXT2rRtjGCbBZU8de1A49/SQukTMFLngTLBnx5UJcOQGZWZ4VC6mDMtY8UVKetZMUz+3ZPbIlZ1z9TFCaNMTYODE1GGJByOC3XMSrRpYSS8F9+Acxjk8C3gVnqnRIsGXEUGLMqfX8WjASy10LIUTMxkqadCBW3pu5WbkFCnc+xeAxJO75mRGJuAUEzyC6esxWVhXLk3ifAkY5OpJQGq5MpUiQZvrgKddpYWkGfwiCZTpZCw1Mg2kFmGVyMNNksli8zC9HrjCTJEK8h4F6ZljmbKV68/RSb7rIWxXcFcnvTjgwzXZCzLvc9VMK/mFrxTkr63IbYEH4BTwMr0X4gD84Q4fKvxwwA8cLs7pWeEPuvDK4P1sVngERYSdZIFdIr3a5jwS8sewkEcj6qd42Zx8XiVP1wYsn68J+syG7d//L3+QDUzTZD+pJDtAAfLZT8AypTlahZqUwclCScNYA3pk4dSm3NAik1P2kaCmRJrUquQzb0Z6EZmxTj+XpMIbdy86Lz5KCfP+MNFaVZaaU8Y2X0+vbCo19vuVywn6RdhHysPev1t4eKPcvtjQUdCusIzZBBQkjO6aU+mrMfIc14wgN8uZuOoCh+ocWj4Hi5bck4F1NgbX66kC8ZVs8EWUNZK5FFEejWQtnIZQXBm1cPy4sR42Tm/e8/lnxvtzEDU9VxpC7IZtyegrWWljwxiHldou3P/wwj4WhirbHkitUJzttGModZE5BEoPqzSC7wzrCQTMyyQ4bTubC2fbOW/G7sJpCH0Eew+2kb5wp80Z5vSRqUsmeQabxOOZViKN3VsoInMarHDa4fzg6Nh5dgCtC6UWrKS86LQP3t07+2nDRie00KVyMcH22USKZBorhe4xf6WPjkiwtJrKtyd2lSIoJa0KZriH1EKtIMXpnqO0wwI+jDBDLX2ssjYBiTIZfclicp3gowZVK00hwmhSOCxC+ExtS/pqmmRbNmROrq0rk8skGD5tal0Y+8ih4Z6NJiEp20vvAKQIeiwcbgo+Af0xWaz5nrKZHDEHXJ4DK/GKezKrtTR2zUUYPcA0GYQdmANKs4GgNIWtl5R6l0JIIXROk8IZoyIS1FIxg96FdqO0Fw09FMwGra78B//FP/jZLYK/wOvmDPFS8M9W/H2mcx2L0CQ9eVyylmgozSqrGzKC6Best1QhhNFtpHfbtiH1QBfj3ejs3XguggxgZOIrdx9QLifiWyfsgwO6NORTIx7uidcXeB2wF6ILf/3uwwlidLpthFc0KgdV1uWA1kLRkuu4JjuvICndNggdc0+B1kDVsr5zo3iy5GtxluKYOD8fGvoAACAASURBVFoUWQPagq/OhYGr4tFpZRpsI5kwh2RB2FKCHwscJAFRGY70oHRFTJC94KqoKWbZRJslkBHunOrtz3op/LlfQjbpEkGtCVyVFUpLJl2MNNR/7MNKsiVFnFqmhYLIDF3iWs2jIhm2ElNWQapbhMALXLqzWQ4gdRHWmjYji2aAl52N80Pgl2Qen/bg+fPGVz9cUBGWIiw1OC7ZIxYVXhyV/c2FeLVj33pL/Ml7+H/eIj96gIcN+Vd/hbgM/viPXvKdlzuffLxwXJVlLSw1FUfbg2cPOSwBCp3JhJ69yUDwKLw/p3R+j8Cr8LBlwMYyjd5tAnGxZ6DQVdnTJDiUHGyOHoxunB6c3p9m3fW7f/yKGivdAvcjY1M8So4Ho0xgdAE5Zm8TLWt3U9Sc1oPBYEiaKBaBpS50H/gYqKx5n+KQ7DitSDRKWaf5fKNoQ+WARCNGPt+igmqFakQzWj0S3ciYpIWlPKNLpUUCSkSl6SETgNeFtS3s7y5w6RTZUQyJwEbahowBjMKiStwcHgk2CRmUVP4U5+HhwqknGccGtKVx2Td6n0F37uido7ef8P6zdxDtmjUA0in1hi7TpoCR/95SMeZxRtpgfOi8Ob3/U9+zL0WJ1kW4eObWhvRkcITQEc4GXWwat8NHLzQLF03j0KWk+bGFZ7oHKScYURgWXAgsShrmadJSMwIXuitj5AN8HgnG9+kFUSKTL3Qi05mGk01WNq/ToJYJEmGzuAM0TZxrkCypEGSk7HAfAwVuIj1sspAGM6UyjcUJFnI07BKsFDQUsaAE3EcmGc6eOY3ICdBCkSnBsM5PE0RUYNWaNOmiiCpGRgzLbFTtiaJZSjwaziYucGWzzO8PHhlGj+DWnBo3YJGY9kA54dApKSya+vQmmvcbQDORcC0JQjRx1qs2MWSmHCbDRIFagRETAEtG1hcStZTcrPM9E5l2qXNSPWPDiBDWmokkFwsuLpynh5bPZ2i7GieMgC3gvc9xjMErh2/PiaQCbx1uBb4inFX5398bb9w5jwRcIyQR9esEbAJY+ZZ0sj5+CtTSa3rf01xfMG/FT9HWmb+fuajzh4KLBbVOmjwy/fxyFYb4TPZILw7m3iJM+YF88f16gJCHWBA5FenJHlhrblpLjQlkZcO+belP8igDLZlISdH0wBKnlY6Ksr1eWQmO6hSCJdK897YG0UHer4g7xZTFlDgv+EPFTvDskEzP5S6TCi2SulzMkJpScY1k1jDXj+OMzqOfEtOUckF5poF05a45L0jWBky5wLyeqoTV5AqKBtuUJYX4475VSsmtZTKCY0/52N3zBj44vRq8+Swb9z2m/0tA340xCm4pBfTh6M2RctjYPn0gSKlGH1BK5XDnnO47Tk3wlZRvJ/hqWKl0zSTiyzznkJwujoDdstgePuikz9dlGOc+6AaimmdvBIayWZ7DRt7bcU0DKzOBVlIueL53Fhkcjg2WShdlF0W6sJ0qYwskOqbJhtkQLn3gEQxJTxojJ+jdjVmuYiF0NzaHs8cjYP2ULg9PU/+sJoBsyILIJr44UoNSCm0RnPQlGurUyP3pChSZTW/PecyI1MkchKVVhuQ9vp5hI5TzNoeRKuzbAFdCFJ8Af1WSUkyyVFQlQXn1mQZtjAJ+sZluGJNtLZgXrubOXWrKCKcZTogzJNN/tShlSivdZ7plBKUPlAHmadBdpv+O5a+xO3KsRMC+pfG22yBIT8Q+EojtnuCcWX6Xm6Qhfr+elU+05gLoRRgfO9s3dlYJ+ucHTj33s5bUeBDo7uy6YVoZUTAKxYKiHXqwsBLdKeFEH8QOz7Ryp5XiDXaSbfMPXxGf78iLO+THF8of38O798S3Hoi3jnx6hMsKuyICD75xiRO7X3DT7D0wqhu+XbgqbhNQF5CUAokopTtugrIgpuwnIawCLX3SyJTqQdaTqwhLnR5E2mdYDtjIP6tWkT1IG5nsHWpADE+LiRGUS0sgpiRbgjLSs3chvdwiZf0MiM1ogJjzaf9StHl/rlfWlrN2cHA0twoyQVSbcOnTy45UN2yWzKnclpI5rEW4WIZBOTFrC39MnzfyOU4TdEmfWWf6l8njsDuxsIILLEdFWnpL2R68eTP48duedhxAH8JlAkUCfPtHG9/9rHO/Dwjn9Xfvie88EJ/ujB9tsHVowQ/+8DWfvzxz7sbw4KMXjVKFdRXqmv64KpoM2Q7eg+iefmyAlmBp6U34CHYCw5x9T19qCSFG9jJpYSLZt85af5EcAPRNOB6F93v//7k7//RfiR1oso/XnXYEt4FfjkkSMMP8AjFQ0alwTbrEZQm8QtGCcYQJZvfYCD+kV2AUZMk15J7nsIbSFqjVuWnC8C0BKa1oouVZp5Pn7NVU/fhsIfaWGAGWXrMqFIxE+ndUDoDPUBKljwsRBmGEBT7u2c8niIEsxtAB44SNzhgD1TzHVaHqksO9phQteO9ECEtbKaLpC6gZcrccjNuPPmB/9wD7W3TrcBJ4+Q7FiTLxHdWJZyhIw+m8vP+5P9OQ+kthAJ81ZUY/H/U6uUsqsgj4yHQhmNKs1Xk45TTRZpwuIWxT06sAJZlTgbB5CnUGCQBcvUNMPBHTELpmcRPu7NPLCJmJD1IgBlamzwNOUU0foJBJq5+viSOTYZWSP8CCndxQYMrT0Py5iClnmya2878xTwlOFebnCKiatH139sRmWFTZI/1owh0hF0V5NH5MUCYiC3Kfn8lnA2xzk2okIPMUL7/CCeHYlP6VCU4FMELTfJ3pw4N8cdiRIExO6ZMZczU4L5q+MRkqKo8MAiTliLvBWq4Tn7zPrSZANiIBqiZCXTL5cpmeCSUS9olp7lViJgcGLG2uaxeq+COI1Cc2VSTBt+5XUlCwGTxvcFNAP6hJn3KHe9I767sjf/9O4JnkD2+G785nAt+6OPd9AmKe03cpyQrsQJ+ctkCmf1Y8ysc8UaycdD3duj3XxmzsZH7ua73OXFPX69IzgWhIsExvI2RGOWuClUU9051mcECZkpcB4OnJFjITeDzN40s1oguhQR/KMqe6KgX3lBQVDUZXtMZkdmbT6SVYNFAv1OfO5aFzel3ZF2W52zg0xbvgodyOAs+MHWPAjHV2Tm8XdozbZ+nPBJVyE1n0F7BBypFqpnBWMQZf+B+1Jc3Kb0r6GNVI37imNaW8kym7qqCThfZUGVnXq4aQQzOf8q+cuHkkIHNlAzIBR3v08AmePQ/GxThfdk6XhRcvGuUmi3uPpKxHQK1p2t8vzvLsht5PnN4M1psEzi47sChyCrazcXNcONmFEoNRhZCS8vlIRnVR4bTnWm44257Jw+nvkQm++95B2mSNzntY8hmK8Mlynt8BzKCJDO4QVS4Dxg6HulMXkNrYPOjhjN2oY8ogZxLwME2gzMcEPq+hINNr06AVYcNpc07gXnFxqjtmX4pS6c/1KlrRavM5sixEEWoI5kaThMuLpsRmXYL9YiyLTglpJk26koXzBKc1IEZ69uy7cTg0ksenDMlUv34OLhuow7I4uiglEggqVSZ72qnpZjwB/Ol/I0q2s5phKmvFL4N2t8AMSUgStaOtoOrslp5d3T295WvWY30PtKQ1Q1hFxpb7qixQAilGhKUEQwoiaao9umMPHdHCfqn4MJY7ySRISWqEwJxHOQ1NP9RhXE7gPih64D/8rd/9Ga6Av9jrvgSLpTz9dNtpvdLeF+zVyl5PHL5eZ2iD0jjSu1Gac6BxUaGc72a66JkPbo4UDrSenrd3+5pgp+9wc4udAj0rvO34B+A3F+o5sG9vlFXw7w/ixpEy8H1Hy8qnp/dEdDxWpA6G5XBaagJWQTZkXpQazDosiFCs5kCGkinmoRke1S2DAOaxz40LXcCXrNlk1nYoGdhUk2Hk1bAKR4dGnpWjJOLlI2i15MDehQtABK6FYp4M5emnWUp64y53FeuGS/D3f7z/7BbBX9B1dZYNvZpwg/VkUImQYHhTtp4M9BzAzime5iskGCbYZtSjIuWL4B55BFtTdh0ymWDTdCsIxm64KrVeB0tOWws2i75alXV1+p79bezBXhMganr1CIR3D853PjU+qsLv/uGZT14Unh+Nrz6f0uT/9P/m09dGk+Bf+te+znf//kt+67POZ68z0EUny/Vmzc9YljRqV8mgntO7wRgJaF77Yy+FGMY2LH2cD9lbLqoUCWwEh5r5q7Uk0WHzVK/4xXn2vLAb/Ne/8z3+q5/NEvgLv/7oofLN53PQEwda2/DlQh9K24744cIwY1364wBFS2cZjdJWIi4JjsYyhzwKTFbStme9VDNes7WUoI9ZK3t0SruDkmDhGIN26NjWKLWxkiEjqo5ZsNw05MHoNYHu8IEFDB+UUlEs60g3yqHSN2G7DJZ65LL1qWxbME/yTWHwaGSvaf5vWmCsnF7fU1cYveCn4LScubMj5iON6xFKVfrJ2di5PRwoKwxdU10yGvtNwd52XCFuCnin65Lrt2Qgxt/7R9/9M7WMX44KLWbaYBEu5kiaxSRlPWJuMoKGozJYq7A35+29cHOXbKsiwaJQtdA9U2xayWnvnqvjytqllMD2pMtZCK45wRhM1slMo1FRVK+sK6VozDQKZU9Tq0cgi1kIpgeEYWPQ0kUcJH24ygSpdvKAD3E0hFM4a5mNsAQ9UlpWShpLVoFQYZjRNDApaW5LoOEsKCYpJzRP75mGzuhyn01PyQU9pwEqFZE0+xWpDBXkKcaeAEzWVcjV/0qAnAhXSblq16sXTzb8TBlPVeZ9TYZXzLVaybPup1PrigpthhSEptTrYkGbvlVVmS1ZpiCK52FcIj20kDn5YIYBTDN4jaCbpP+VTQaiJo190QSYtEZOeWcH2BQuI1kuBw1uNaVi7AE/SaRLGkQJ+NYF+YVG/KCDFaQnw+OPXsHvDeezARcSLPMJrgxynTqTlTX/WWCy/ubULKYwTYKfbH/Jt/0v8/opYEEmI+CRkHVlZ80K97/5uz/m3/nNT2ilZhOoyjYy1YbpY2oSOHlYdbP0yCMTNt0En8b/u8XjlNcjZYOjC7UJ557fe/q8BWoJKtZZJEtJIKFUIfo0XSgz0fUuKM+cvgVB43xxdM/GdrnpRDg1hHNAd+Fyv9DPwd1Xr2CB0R+g3A4iCrhQaiCerNVNck8SS7B53wrHo6c3VyLKDM1C8t00tFcJhgjiylL8ETB8qrsWkPfJnSgFppmwxUjPqpENu0X6WLQilOnl6JJFqN4IH64L+6Xz9lXw8FA53hVanealBK7pJxTAZauszxv7ZxuhN5R1sNvGi2c3mJ1597kjarmmluwazI2tKxcfJGVGMNtRF8aiHCRYlvw4IUG3RqmV0T3DC3IM/Bhg0s2QGWkuEZTWcDKth1J42IXt4ixiyKHNxjNl1JdNZgPSoRbc89zUSHZtj0KGsZDnt+Qgoj7u+VOKQtBJz6bhytCnt8pqGVAKMqZXn806w23WQbm+hpN+mxK0gxAGW7dMUJXKQQRTY8I3ebo+Nv6FbYPjoRDm9GK0IXQT+nAeHoTDKmCCi0MNJErKY5SUQRbow6il4kMQjBLCNpzjoaa/WxH62Cla0BnrPaxkSmEURNP7iiigRoyBRUvgK6Y8SwdG+ohuBUo4oGnQLgXRQYw8wfsppZEffaXQNXh4Jdw/DHRV2mK0pc3EzFzHLj6Z10IfoFS+MDt4mtexB3sFcfIMWDt+VEqcOI7K9sNB/UruDXUY3owoSjkX9POdvjjt644eDli7odXKqre8uGtIKMcdbKzodwalfw4I/NIt8Su31LiF70N80+H331FaA99gDLQG+9jwXRjRcMmxjMcdUQTxHQTccmh9DdfMKyg4S630keC3bXv6zjHAGkg2dI4xpKThe6Q8t1omEl9wbrWwLUJcFFandmMvQo2UEa0h+A5lUfoEd0OUHkZZCnFxnEbx9B8MedTxsG+Wnpuj8fL902TP4MlwR9KjWFSueDrdJ2jjUxEgkRJ5B3efFiI5IGyrsvfgRvLrG3MQHJKgk1zPBpJBXiRrnlIznVBLBuRoSbAyXPj4w8YnH1S2y+A7P7qgWjPcoIMs+ZoO3Fa4fwj+cNv58cuOEnz4xvirP7fw6fsLg5w9hxS+9enO//qffIu1pKLoUCVN4zV9lguZhJ21IZg5NrKnLU0wm4EAFXSMCdhNGbYEVYX9YtwclXVNX7A+lQQ1MnTq/hIc79JDaTzVePJ5/fa3XvLN37ilq9DCMlTGlVIF1zP7SSgHIfyIKIQ7OkBmwJpSKdRMRrXslESEfbxnmHJoC5dxodSV3aGgLDNxXIuADyKMKo5XcG80jqhviByRuuc6RfBi1LvG2E4cjrfJaDdllRUxY6k5JPTIQWipcD4LohfazQ3lUUbdQI0id3js1JLv38Op25H71z9iSGV5cSSGYqe33Hx4g1vuMRZgo2NhqN5BvGbfK1LvGNsJPQiXciF6oz1b2O6NcQE5VDxjdzATmir/6PWnf6Yk1i8FmOURbJDfRIEyBq0oYyT6sIjPGOhsCDWCw5pywX0IrWWz5qG8twSPzFKqszBQcfYJBFwcEMk0p6hUjDEy7n0IKZ+SnDzq9BtSL4gYl5ELZzOnBHRJk1ONOSeMbA7K/H8QisfUV3P108lkk+HJMthdWErJwmYSZoT08Ij5z2lebtAKdMd0pnOI01P/BpHG5CHTo8hzASrTbJ5IqWYkU3a4TUPuq0Gi05+oVGfO4SnBLLivjlcJMhznIWQjkCrYBEeH59+rCoOMtE0z7SnumlLSq5CsCTl9k3wsAdaSTLgrCOYlD7FVUg52BSKu72f0NPUXmSmZEeiU2O4R09B/0obn/V7WjHO9kD/rI9l9S+SLN1VuWwJsf/Dp4JvfEDgH8RDI50Z8VIifdPjlBRnBu1fO//R550968L0eE7BIfy7DpwZ/TigfqUfxyEIaE7UJSbrpNVHt05+8+5nc/7+MyycbjekHcm3sYD7DV9AT+B9+/8S/+68Ilw2ijjSNlNSrF1FEg25KK4Z50JrSLVNlRqS09epKFjN0oml6+e/heBHqACmTDo9iosk0QNL7BWVsleqVfVcQS1p+JA2doQmOiXLejIfL4OYgPL/p3Hfl0JSR6Cb91UKpna/+QkrJDIGxstyNZOQVWDUYVjjZZDrijHAKheFCbZ0SykYwUMScboosQXfFjso9Tq3JcBwl04x+qst4kpfhU+Kc1Ey3glTDRzZLEQlWZsBCgoDp2RaUUBZVujptWbhZDRsX7t8FKnWy54JyWLi7K9wcgkNLT6L2AVxevaMcb7h7sfCwdw63C+9ePrD1YFkVL8EIo0fhsl9YgZs6+PhWeP6isqyaw4CLwk2ySEeHy33n1Rt4WwbvTBlRYYBoZWCPjFREWKoQmmvWC2yn4Lxt3B2yQN9MOO+wbYaE0Wo8St969wQDNUNQXBIE3dJVOhtWhyGT0Tzp1T0E14qUwYiKuNGeIK00h2UpscRhn7JBcQFJ1sGINEEGZ4uglPweZQk2gTYCxJm5YuAV744umbjlTfK5nvI9BtBKSufXmSpYBI3AfT7Py1y/AqGOe6G0BL+KFtpSwJx1BSk56JFaiAdjvTPCSyZv4Yg0QgILpZQ0DQ8rU1I/A3NcUHWwZPiPeauFModDSh8JhG0Pg/O7zroqd19ZsQo+YP0A2oPgDUIL+w77OWVDHsHN88KwlsxshfPm/Ef/7e//TO77X9Y1iqRZvwYUT4WWGd4q9xqsXwF7aMSDomasd0f2auhxgV8MjlJ5Jo3352DIzr0qtl44Pwzu1gPdCtt2pn5lxZdAYoFnoC9PyQNcC/pOGa9P1NHwb3iu1bbwvfevuG+OPyiHsnLyQOs5a25dsXHKsBKtrJopmkVXZEuB65jeoWutXFq6LgFQnSqV8Ew53M2opVApKe9WxUUoDhdGArcDoqXnXP1/yXuXX9uyLL3rN8acc629zzn3EZFZlS4KG+zquEMHiQ4dWliINnTgf0C4Y0SHNkXbEhINg2TRwSCEASELQ8cvJJCNZZXKlOx6ZFaWIyMj4j7OOXuvteYcY9AYc5/IKgOqajgzubWkesSN+4i7H2uN+Y3v+32e7a4CGUOtY4rJKbyrKnem7IcndzMKm1+RopQM7rATVFIUfi93bP0PD1H+/8s1nNnAxstcZeGMnsUVhVx8IbcoZy548wiUqZpb+FI1z277Aa2lxKwzOXHDM96coSWy2a7AdGhl3LFIsG0ZSSwifP1u5+m5c67CqVWEmZYo+bv5TH08H8E2I35jNqx+/SR88bRTimLiOWf7gYdw9GBZsljMHF6KKF7Ojn4zrWY01oJq0A+nnkqy3jzdYmU2WZWSImCo8PB5xa4DVZmcN/jwONJpuir3D+nWCoL/9G/95k/xHf/pX+/fOXv9BVb7JueBIB1KlrG9ZTW0OnHJs5mKIKeMKbc45f1jCq1FO0UXegxc72nrjpcN9Up4CosFxWNDKJhVWgxo4H5Cm9BtY9gj51Wp9ow7L25qi0odB+LK8XSh6YL39EP74oRtrHWd7cI7tgnrXaGLcpIjXbG+oO1KqY3hTyz1nigLFGW7CJR3tM8+58MPH7n/zon3X7ynvoawQGMQJRmZl+tAF8VPB/Jxxe+fqXXlxIn9slPWSiyN4Vfqg0M88Pw+GyLrq0Etr/j+eE0c3/8j4UN+LsQstOTNlxzYtVQCRyQHpJvrw8PnYSvV5HIKnp5gaXmzMRK63clHi3swNDPBElkOnIyMwFxxzwGtasKU+5BUXd2y/aJMmoTMg2PMQ0XIdBX45ONMVVwDc+NuUbZtoOV2kJ2MI0m7Kp5AbIkkk9QXK+tNPHOOG3hQQIamTR7wKujIyKSKUETpWEaTIuM7MR1k6RiaFvnIA3a6afJ1lWlzVfKGVvXTPBgmc+jGbUqXVja65xel5jJ/gvyCYwRrzYdlm201Ci8OwjKFrbSOprsLSVedzT8v9ZxgATpwX4WrpY20lXwYXyMhjQtZDewBWhOKfN0mzHI20ZRIyOQxh/wx/1kj4zYVZtVv4Dol0HkjGBHo/M58GMLTj427ofSPhhq0wyAEfzQuJvyVrzpfbfAh4DI5ch4zqjpfMydZb0XnQ3W+HjYdcCnBkq818Otf7bxYlT7Va0bechDl97u1/uDfXZzlTrh+WKlYAuDVMpYyQe9EMt5SHI8pmGnC1H2K4/M92EcyGqpkpJkSMAo+IXDrUhiWWw+VYGyF1hS9G8mL8EDrFPVxqgVrEYoMeod2crxXvvmmwB08PjXGnv+Ndw+DcjK0QLHk+dWuWM3oOJN5OEhX4TZdj+LCogkCF1EIpUxnSJ0cvyGCFyhhhECN4NKdtdZP35UFFG+YDCqClIT392edbI+MZsryktADCUZaIbJZMNIpmkNrju+nEjTgsAzvje58+HFBfvHMPcnhChPaZ0L/eOXD1wv3nyvbYbz+THl678S9ckQhLDj2wS81+N4r5+7NwroEdw+nbMqrgm9gLRi9cBCc7zrnGnyvVD48Db7/ztm6TEdWcKviKCq45t/1oHLdBr2ne9VqY5hyuVrWPM9yjr37jILMSIk7Ugox4417ArqmlqGzgXEuDVDM0wWZA2alMBCNdGJ/YlerCbyXkt9NN8kNc9UErvcxp7KEAjOgD02pvhRqGFY7ule0pTvOCgiKHT4dEXNWiZwxCNi7M6xzamvOUKG5LCqgUdAQJNINP3o6aZA8cIoYRw9OS8E9WTa1FNyM8lDoTwftPg8eJk4rI93BMZ1Zkt8HqRB7hw169DkbpoNKi+JecM2ZSQAxSZHhtKCbcP7FgqtAh/RzKe1U2S4H5T6bm+Q+BbFw5fIYWHTsvrLUjH73T9zZQGjC8YWc6+fBOUssHNNKvElH5q6FcMdXMNuo7Yxe3vP4+oyuLePFduF4PoMMvtzeU05vef0LZ7p2VjOkOfbumYKiTTKuHPfo5ws8nNBtJ54e+dB2LrVzuBLrwcePTiwHa7zFysbhQqkNiQ5x4L1lA+qlwdpBG+pn1A+O6DTKbAPLRbVZztESC6cW08kzQPI5H6G0qrhl2yeQbCcHIt3XN8DFsExwyBDKIsl9gzyDjITIl5LRtpsDXDQh9YHyt7+wT9L/JzNFUaeglXSLOZsGLwKPzjkso8nycp7UqT+muJ3oERPYDmdZ8jWs+i2SRjVnk4yH5nLaPF1LxwjakggALJcpVeHoEzsy551W9IUDGRR8TObg/LuM+feoNXjqUDwbgqs6x2Dy0vh23iZ1q0aw1Pmeh6IlkQStCnYEg+D1Q+O6ZyvrMFjX7HbXiGmcyMTFZRv5Ag9n27LR83RXOObiK8+LWVj2qV8Rg7/x/Y/8679ciXBKcyTzxflGtYrzjJwK1S5wWXFz/NTSye0DjZx9C8tLdFXMKOWczyzvSGngTitKqBOzlEeYZXh+wY8VSqVEYL2hzbNdVwcxKiudfTh364ouDXxD7xrDLqwsHN3Rw4gYWC2sb41uadJxF5o2LmHUA1apGck9NYpUjo+Doz/z+fc+58MXg+Hv2N79SfS8Udc3XLsjMRK104Xwhg/HOfDS8L5l8VPsRFE0gvCOeSHKQsRB+8wYH1fsAvHQ+Wt/7zdQ85fF0h/m+rkQs9zzgSfzEG6WA1ahEjFyiCnCEjOkdfu5U9zajmkPBZYqnIBuRmmFFoFIxhSOcIrfxLGsh6+avJmIeBHAuqW9XCwPo4fbjCPAPm29Q0c6m25V6eRDR1UxC1QrWd7rk6stLy6bjoPNjLvKBDSnkCJF6BjuNSs0Bbzmlt18PrDCQMp0/BhKNu2NMe9yljfIGoJpyXY8zR8vmvbQqjq3AzMH7XmT/jSvPHS/NBCSinlFsoHk9u81fyws6CPjD0FkNMBvvzY/f0NmW4iAW7DMw/ctJigahCuHpOhkBGuD6x7zfZ9Cp6RAFJHviRHJ87DAejLktMyGu3AOE16f0jI89VEWyaaWBTg8XsoBliqsJQ+6gdLXygAAIABJREFUH7agbMlV+vWPwufVeTuMuirPI78nf//Hxj++Gr99TXvxs6ZgFT6lqRddd268IkVhmMOEfCsuGBl3ukUS7bp/sp+u2/Utv4hpS/+JO/FtipoC46/+t1/y5//N76Gn4HieEbKsNHyp0y04pUhaliO4dQlaVJbiHF44ldn2psGIFIcI54jK2gxGHuRtRn5ElHEV5JT8kB7JXMgDvWGF2RiXjgvz4JzYGq57QFT2j86IjhRlvQNZg33GkqoAXagno2oWa+TLIGk9FuVEoSo8xbfxJmoy6twN0uycArPnZ9/EkaHsRVilzAjaXBB8woNVyKBMLoZaQlzbMrgceT86TFmHUFpJF2QI6p4Ov7lNVk0QdX5vNSubW7CUBS3ZAvXQjfc/PuivCuUsk60m6EOFrXP90GivBa8r693O9ixozUHol6rzS98t3J0WlrtCW4X7h5bsBxH0fmCS96y1F64q6LUT60pbDJWND8/CN5fBs2RTo083rHmwjcq+D1rvrDUPeperE5mhQNXYE6ZFlVwqhQEqHBKUGclnsi6T65d8tvACKnTPuGHX4Dy3rJs5UGll5M/7xC7RoNlt+Sepmg9BbbYtz0YvCebrmS5bJ5lPlTyAe5sNmwBuTPMnSGH4hCkz3RQ6neLaOLzPFqeYsR59WRyaSQqbpWZduVRE0r2iEvPfpxAZlr59eqeeboJWQbTmKBQp1ies1ilHugTrSbFFqLXNZZ8hpeX9N2BcnHZX2bowLkZ7Xbi+G5TFcanTuerTESNsNggq2p1elJss2yrIG2HEwuN7eKSjy6coMfz+y2twHjDUWWvBLWOhuGECJka1wGpBq/M8nCA4yUrsF66nheJCs2TRCBW5djQK43uVH/mV+2cj3hR+QQq6P1P2EywDRiOOAl9e4FfO+BcX9LvG/lr5Ijo8NbboyWg7L2zXC9gzezhalRqW7i6/Q+LIZ9pdJbribpi8S/9TKBFGyIrRaSUX56FC6EgGjMBagu6VwwcRQT+SeSIetFU45r3aUv5Ew7MtvSQHSRUQzfICnecFy7lBuszvhuO1Qs9yhjiC3/rm+ZOcu7KHvrwkX27nHq3wkjUknc1ltr2r3JaNgntO87d7U/KNhdbS9XZeeVngLjXnoZjvzZhcXPeghVI16D0TCxldzPtiJdiHvzjARPJ9NIfwSJ5X+TZV5Hs6iY3bLD3dwzNNkwYPRTWxO2UWKJgpZU33aKJM8r/XRt7niHQuT3R4xi/nIpSSS6O+p5h1HNlUeB35WiznmMVpE38TGb/9i3/7t36ab/fP5hL4B//4a/7cP/d5sutiRWTHOc3FzwbRyJjrmeXeCV2Q4cTTjqtCFWSVXFiXyhjOUh3lynE15LSiekUwDl8prih3lHqk0DQWaklHnUah6Y5gVDkRQGyFOoze4Hxu1NIoAbsvWSyh91CcWgTvls2sRRgHWOk07hA1XDLOqG3lumWD4Lqv7NvOITuvXn2HbQRP737E2z/xHY7njyzfeT2Xg/l5HLYRHTQM9JxM8LOjHwx/ZRRJVmZpwWYHEis9BlJyftC3xvF85jgWvv7wgxRb/whv18+FmLUUcMnqdjyjBuqFEMvGjxCaBxsZ8wob2UohMg/M/rLJfX8ZnEtlWRtLOF0yQlOQGcdQqjuO5jCrSnFYi3KpeefQ0AQbzyp5QRAToiqLOjtTcZ/Mo5B0PIk7yg0MH1mXrql6G9kwQDjm0EqAZWzLQ5Ca9rMx28tEc0gidasp4glFC90n6F5v63jolvWrqwpbTLA8zuJwyKQ+zYNfKRm7KCIvrB0lslHgE7zi9iC7aQmS8T5hts3kz5q8R+FUg8Ng78HDkv6Pl183f7+TplSx1Hztd52ikuRrOVwoZX7BZEYCXXi1CpfDOSR4u0Ki+ZJ/xVSik08pnJu8OMWWlp/ZhyVB/8xIaxXomhHK5HopS2GKb8H7Dfo1D773i3Cs8GMEuQYf75SnEL78mMCc3+nBuwOeI+ehzfMA4hLfRlfnZ2ggE6x/ew1fLFnp+5sfTSP4hz86Pn0LzbyCW9NN/sMtfnj755tb6+/9oOerp0pdjX6pqDhCcvwilKHOCEOj4DiLJsi6abbzFBLeXCW3djaUw5WmKZy7Z9Qna3UVH5q1u/cHnZK8JIE6XV5SlHDHsASBhhAyWFR42vMg+Oozo7nN7WJW1bvUbE0chS2EUxQ6Bh6cS9ARTCPjOHJz3cDV0vWxlEz4NLLopHiwzCivSmERYVfn/TO8vndKyxbbfME/7Q9Wm6UQDhmZGxVfjFVSaEFGNsC5z0PVrdwCdskmukqnzGcU7snAKEnAtts9qxbi+co37yrLdeHh82RJqoMsydHb34OvjtxV2uWAq/J2FX7xbeH+XFiKsjRlPSnLKYCGiFPOZ5Dg6ELfnIhOfXtmPwyq8PpuRXXQlsrXz8H7a4K9IzKaYfvIZ5XCCEnnhA2kpOvaJJBSuJXGaoBXZQxLvmDMynFJt8ZgwpejzK/kgbIQkhw4F0+R3oNTNXbVtPx/YpdQcd0IlNKzcieK4TKoI9+DspYEJc/VHOTBuZHQ/1rynuJzGYcIGkJdBJOglPns9UKETR6pJv9qcka6JzTbB6jajKcrLgpm+WeYo6WmEFsS5N4sZyCZM9wIIczRc80vwMXpS8ld1uG0ki5GWwWxwKwwSroesyAn3Xses/9MK9et4vuV9c2CDiXGYP3uMivEU4zXbLDI514LLj348AHuH9IBsflNTA1ev2n0sfAXPvGIIUCLwMucnTVopWA+5jwmaClzWTMo3FHGBhfFloG9HmisOM5hgzftgeoKQzjujNEP7uM1v3dvLNesdn+txmk5qNZggH+8wlKRj8b12glXvuoHX4+PXLVSr/AcHWyjSsVL59QbZlu2UPrB67bgKNKUgw0lYf+hSo8ZnYygkPV07qdk0TmzPOCO4UeKLlEyGtehNecazlpATPNAWvN7aDUb5VqpDLNcPHvgu8/W4XxGIhlD27tRVnBPm1KJXEJ+GSeOuJKtBJ/eZZEHaSVnnDILb2LO2yqSwk7kQvrb5U5GgxOlfDsUaJ4PFFpVbEbz1rNM4UyI4VjLKKAD53Ohj5y/mgs3dpcT9AGbwVqDddH87UXmbJ9nxtPphoEAu2axQff8PSAjj2PEBNcXTJR240eTMVem4HbZjEUysSFutFLwG8yWoES8nEWDFFFdhWUO6rUExyWTRssph7E+3W6lZ3KjxBT0PlEczT99BaMHP+KO78qGcEBkIsC1U71k2ZJsFFGGNkrMZ+WpoqtRvWKPTqchD47oAqYIlcaRKTDuCHWkOjYars+IJDKkTrvJ6DttvOZ6MRZtyNIzNt8CfdVQA1rDxoFrAyxZuFYSSRFKqQvGnkkdrdSJHYkAiROt7ESt3C2Nj++N9z9+z/Kq8vDqLWHO9QdX2jlovnC8unJcHxDdEBX6GEBBPFE9fXSIhSIHUV5z9PeIrJTawA1lQYqgVmcCrRI8Ue/g//hdI/BsNf4jQLN+LsSsbShLyfrPdBnkl75FyRbAgI/hNBHulBdL7bAJow441RR83t6lrXOY8XjotzcGTehomdtrB1QbxZ1RYJ9mcQtFQ1F33A2pEwBZ5u/rJCh9DtcRwhExRTBJkYzgJLmN7gQq01llkXbiImkRFM//DpmD44xZ3qChobndAsd90p7CZqPxbEFBMR9piZXgiBzYy3Rk5WCYokOfvKcIz015pJBo7pQInj7BCl+YLDEmzD1u/LK0FavkF7pKuo9UUnxYmnCS4Dhys7rOl6ZNl51FsEp+rsYIVnKYXrmJZ/m5FU0BtrtQSgo/65IPhH13rjjrmk2SHVhVuSHXVHKLMwTuirCNwPbg3PL39EjIuxKYSFpJOxzmGTGM4LwInz+kM+fBhGMLLtX5SoAhfBzO2eBrC76xYAt47hAl3QojPJs3Nbf36rNefB4cb9FNIzlvtyvND8JvfzBi71zNGZ9swUBeFv7y3b1xsvTmHAp+X/7bwylLYVjHC7TV6FtGdbY9uG/j5TVMHlmKiW1+mNN+Pu8TQkKFdcZhp2VcJvvPCeRa0lHQNobBUpVSEqJseYrMmAOSBw2EbvnnfrikaFDfGi7OmcLmNyG+cK/OjjJIVylXRc954y2a4OftkDzwBXQCTKmaXKxwnWUccwAVx/QWvQaJ4OTZDoRk5XjttwbNT/uS+UyMl89RRqES0NepIpQwigeuiloQBYjJjoqA4owoqDuhhkfj2jO2nqyMLMEorxeWy2AcV374ewvrIqwPwqrQ1rmI2QweC/V+4dVD560Y8qHl9vHBWVbl9EpY1hOtGn46gzfCF8x25LSjIlxx5H2K3iWcRQqnony+wnbtPF8Hh5dcOI1kZg7NhrEhka2JBlIEWDl85PdiLgbSWWG4aR5eZpxHJO/1WShwO4AWRFKcCPHZ/GSIFp7NYRilfnrPxn/4xcG/9L0Fi+AoBpavQZXC0HytypxR+h5ozUIccUno8FzQSDHCazrsSYH7BqgJKckCLLnEW6TShHSRa279r9vgdB8s03Hllg9PDadJ8mFClD52llroeySXsmj+eZMxVLXgFbgocWfog1L35I7IUohuHB7UuiAK7paibwEfI2G3R/5+lEI9CXrp1DcrqPDNV4NX302+qUc6vVDoR8/XqqSIgClv3yZvRyTn2YjCEIMYtPZzMXb/M7+KNCKEUxEsdlp19pmMKCqUvdJsR6PSHwS5UzhHbtAs3UWLKlUKT7/7gfqLJ87feaCWV2gZfF0f0d1Q73zYT9xr5aSdX1zv8S8ekTf3nPTCeB581S+8+/rgqMaGc/hIYPdRObYLRzyy3L3GdWDPB/WsVD1x6UZhYD4ZhSUZVqoNesdlIH5C2bGjoOcURgrCGHdEjIzCWYVwmo10q0o+v80NfOCrMCyd1aunO+fAaVvBXztht4bydFxpEUYYh6TzKFqgQyAqnYOg8d/81k7BGD/pEP9UrhkpDMt5tzR9EbLi5vSMXFpDPhfgFjTM8pul5OLV/CYqzfTFdGvpFJPGcO7OBdVcLgW5cF4rnJry6lT45sOBeZoQFjLJUSKX2gvJp5K50SwTv5As2Zzfy6JcR9BHUF2JKvgeE2o/ScuWyQstWcSjJRMm6nkfvkbQSp5v3JMt6p7PQ+vJ8ooy66/mOWgLqDHX0jXnTbOcJbF03OtclFukGPgX/85v/1Tf6p/VlVjNzl/+G1/w5/+110yJJcVlS/ctUVitcVRFsPn6F7oEbQhDjPK6Jtu2GmGKFQiu7GOjtZX9Y6c0pZ5eEbETo2QRjeczQ1bjfPcKME6nNb//q9BKJaLTdOGIg75nQkNv5XNdULGM4teaZzltQJpmYgiIJeJDHIkzscPT08F3vtPYyxsEYd8HSuPKR17ff0YfA1nuMDvyed2NkHTOumQ0VYqC7tix4ydjPKde4gy265Va7vO/wSoWV0Z5IGqhl42/8+tfprIxz75/2Ovn4qnqauyWLVvObDTywYi8gY9wqqTqd3gq3kWhURnN6AeMlnqTjbwZuUCoUWvQtOXPt/kwIN0422ZcJGNltWpCQR2iQBSnRaObJfDPE76dbCVN4ep2E/BkJtQpIIQbpvICsg0SXuplOhMsIe7i+U6lCGDpeoEXlSBmapC5/cv8diEYLEXwIZhmVXQQ2XAoUOaGUSUdNITgPvLGOOmAVeUnYovK13vw13/4abaeZEPRjN+l7ohKngfhlgD7FtBt7qgoh2Rs0Lpji7IKM1oKCym4DhdWTcvuaw12zxy/MvP8McUvSaj7onN7I8LnD4Xnw9k2h0W5r+mESL4ayBzWT0U5BvMxDPtIsWvv4D2o010BwasKd6fcGCDKEnBYcF+UL90y1hWw7wk9vobwJM7FYXNh98zD9zl0pgOL+XmCUGXcxDJu++ZpjY58YNr8MRG4frjiEZ+8kPX/dP2kePWT///ts+Z4NuJYYEVYmjPGzV5eETXGKEgZSGQs2WZUOCbr4NayaTluMDzdfoqyWUIdxY123xMoO4eYvivllGDrI5JZmMGYPLQPMtpHKNercHrTcRMOUc4o54C95RBFQJNsT12Hci+FLZLjd3BrIswYeHHJJqHiyMjIc3dFzbEZp0bhYLBIY0i2Bx0u3NdglXTY1k8/pQPAGAWK0cglTA+BUHRadjUyBq8l43k2W3QylpLcIvMJ0S6Ce2VE4DawOfB0T5h7dYdVOK+KPW9cLoVtqzzcN94kox1ZlBGd5dI4v1Vqyffz+Kpz/3CiLo3TqeUD+e6MsdDfFfwa2C5YnDnaIOSKF6X3g4gCu2OPg20P1IwYwnWku9inMxkst5GS8VMruawanm6Fw5xVK+aW4PyoOU9EYFJzmA9L5zTBQaGE5WFAI9uIJKM9V5txjPkNu8WpP6Xrv/iff8B/+G/9ad6cs0zmshcKyrBctggp9qgotTg585YZccotvkq69lTSVVw9yybS8ZZCetMEf6sUCrBZimQZ3XAezvXWYZMMmOnuNclWw1NVxDOiHEEKWkPoB6zn/G/VMp0PHsid55Lx4pRFchPuWW5RSXFyzFlLbo76UhjdsxH0FKCF3Yx2qsSuPPXg7jV4SS6rAiMs2SCRjoei+TTUtmK+01rDXbOZEaeG4qp0/zSdMn/wkg/B+WyMc87WfWsoxumSy+LtdHB9CE5lIOxYGG4rWgbig25CPS3IV4PlT31GKYaWlbI/c3lzRxyd4hWNwcWf+dAHelTcoH12TzsN4lr4uF95Wg92HfQShJywbUeaYNdOyMLS3uCeAocsC09Pg9MrJ3ygVKQ4EtB7R3Uh/JglP47YoK4t0xWPk8Fbg9qM7TAWlEEuYrQWziLYEFwyylhtybYzM7qWxFaIMhTsdcbLi4Mujn0oHL/gnLdc9KwmeGsEG9ULV5wI+FjveOpP+T58gu7lGzrMLFvfc7zMVE1Ezth18kL1pfk75/FThT7bewtphri1jSbfL895wmRtLfnzMaGUjDqbBZcrCAMbztLSrGAu0zUvHN14dZcLm30Ep0aibSSXkr0noiTjjHl+vVjgw8AK5ZQLcSSNCtP3n8mIkWdS0ZzPVxU+e9N4/3FQJFE9CIwt+ci6vEQFJgpnmhhQrhMKH3OLfmPxlirsx0RQlCwks/gEhdH/lysiyR/RN7q8oepCmd/5KgsRO4iysVPKHWL5fHIblBqYHpQ4pTlOOzFRD6aW7uSHBxDn9JnjQ2nLge0GS5ZIUAbEmq+7d2qpRFkp1qk1P+tGpY9AakPD8R6I7ti+IjWbNls1DutIWV+QTiqGDWfvOQtSGqpBW4w3v7jQfUGQbPlFuDw9cXe6px8faa9eUToM9ukMvIJVTJ9J6TZwGkkET47gUk4cZQeU8FdEzdlNlo75ifUYHEOR+AwvX4DxIkT/Ya+fCzGr1YJ04Qijzahb0dxkKDHdUnmgPiLZMgFYyQOY70EfNVVQUUSVfXKoaoDEBO2FvIg8LsJ6Eg5PflVucIXSfCr6leHGLVygInQmpJGMfIUHB8ZSlMOdPZRG0KVg6og7g0kaVEsXT6SQ4ZaZapEbu8OoUtNxM/2uFkYNnTGS3BowDy7d0wYv8+ad96F5o1EIT1dIQvGFITpdX+TN2CdgPpwf9cZf/+GVT9bnENlUWedfLyTFIJ/241tT5kI++FXSQVLImIQA4wiWNSHrGjfny2RJFdiOSCeDZG2vSuJDSpmsNcuq8Z55DBrOU88N3f0aXHfHiuQwjXA4nDQ4r8JTh/1IR8JmghzfikNrUx7Oyv1sgFojD3pPDjaCVyVLAZ6K45IMmWMIo2R73kM4X3u6sXZSjBt+A7zHyyfCp0o+pu0sTR/5mTTJh/HUCl+idofkIfS5//EY3gFelPKf/EeRlx+fWGQA/oO//Hv8J//uL6OzvlwKjKtwXwY2MnrspBAhEfQIShTGcKqnbV5k0D09mlJqcgM1MHOWWiitZ2QLxYbNpkwHsSzGAIok9Pr25iX5JbeaHz8I6+uEKN/4bj4yJiEzpnVEMtfuFaQJ2xisNaNA+wj2KNRwipcUOUuks0vygJrVQfO7IY6TPy/t/eBRWQjWErMxVinLT77oc1D7BK9L75TR2D1Qdoo0hDErxAVTT9fAnptYkQJhyS4LslREFxDh7uQpLLhngUmkm6uJs1u6ekXAauH0yjmdgvcfN67PwcHC+pCtqaFBiY1415A3hXp2mhb0qugCURekN67XymUr1HdPtHOH1eDi7L+jXAe4phDQPw58H6gE5+J8OJQRgsRB1DxYEIpqisB75HN+eOS20WWC2pXDM5LYXdD5OuXAZbMtasLfY5ZexMQamDBUUG6u6Iq6M8hFEZ+iABHCf/xf/xZ/4d/+FV63E6UcWBRUnW7BMKesmq6QNiN4BLeNW7JXRkbtpOS8MwXUOuejkMgYKAlFP8y5XI2705J8F4ctJstTBqs2sr05IeGlTl6IOuea8b6CI4uiCMc1i4LaWima3Bv35H7pUrFwuqdzSyfQvSo5Zk/oOAH71VjOgpYKlHTKL40xHPVBDMHXYC2Kd4MSiQfTgpa83x5T+OvesUOyGS2yjr37LJMx51f/p3/0M3zTf3qXvHL2LrTHwnI4Qzv9Dvx1cN+S6yNRCXMOmWEu2VOEj4X23Ni/2uh/6sz9eI/pA/3ScTfKhx2vgdAZBiI9GwMpfNOuOM4vvFfKn3iLbc6lOc/HgVtwlJ26JNNWl4WID9S6oJKtrHVZuNMGRxBruojxE4UDryUdKsMIHchxn45VWSAMe1io205ZCjZGMixdeSXBViLvM0fOejcntNiOlMBNKCPLgLplDKxaeeFu7VUpxTh1p6vmzCCC1sGIjPLXnp/B/+HXH6mRi/hPUX4ot9lbbymGGfOd/5v5fNTJqRIH05yRr8dcXN9GnmCiHXK+n0isNBnExH6UvH9s10i1XQQbzr/4S2fePXb2Mdl4c+lYi7PcV7RkwUF4oksUqPFCP003l8DwYL86YZmwYAle3eV3pJYUybTcImGzaEoFDU1kjQrvny1/DkIJz8hhLYQ4ocoiZJlOFWzPcoGj+4tbrUz14GrOUhIzwXxGD49/arb943AJuej64IXPZKRgJEaoZAu5OzbuaBq4dMIfkKqM2CnyBpcdqXletFHQarQhuC4c20Y7tRTApFE90HWlAlEOpLwi6KgJVRqEUTwrBOJYiDKAhRE72m+faUHIRbgAu2U7uUbhaleiVApv2J4fUQ0eXhWuxdDDuLt/gxiYOV070sGODrFiTzvlVDiWyh4HTqHICfeDqmeQirkQbBm/5x2iZyIGdijRFPEVgFqU4Vcg3ZQS0EWpy8Hf/N2DyJ6WP/Jn7edCzOoBoxj0VICrTUU8hCOSvXCKyEG1ZcTGboyEqGhzeginCmOk5G6SG5Jhs85Upq3UB6apr5rlAb7wrfNp9HwNa8kveI3ZDBfp1hmRrhMPoARnBHz2LwnJh7GOR5mNXB0JQUtC/grZ0sN0jzU0Rac5nLfboTGyIvuZ3ALeuA6pFmf+3uI2YCegL8iIYSMHyJibeymwGC9OMZkCjPTgr/6u8e4ypjvpZ/P+/7O+/s/fe+Zf/uV74FvmFTKh/OQrMlOkkwySccPU/wQtylqDowdRhDctf9WY25SMZpGZ9MjGEUVopCAWIdzVtCjnzWY6YGaevRU4V+G6J6emKjy0FE8fN3j3mC13NYL1pNyfhVOdQqUnlwpLx+LQ4PkaKdytwpdpvmDfY4pUcLkaclJeE/zI4f0edIJ9utZ2ScdMKbkp9whMcoNl87MvpJHRpnNrfqRhvp5HBL/xO488HZ/gIfD/47o1Ct0umT+WOLEcYm7/+gfvOqc1489XE4pX6l0O3GrZRrdMzkHT/Iwahlsgyy1iOIsA1GbTTjalKkFxoyMsIpmTLxlnditUHQxLYb8VzfdbQMWp6pgJH98X1gfLza5kDHqhMUo6H1QTqrTHYKhyJiNIvQTXHliUjMSRB0YVT07WXFyM2XYFgks2tu4CDwhnYFdYtfDO0036GYr14FSzypqboPyp3rhIZ7LEQJvTpIJm7Aop2YQTmq25M+JFOCOCNpljhKOaDVt2US5ze1iKEGskj2jGrFRvW23HrUBTXn8XrHcePzxyeWysp8b5rCwPhSZGXDv9eqKsghfH9juO6wl/d/Dhg3C8e8fyWWG9q9Sl4q2zjAvHj3Y+/qDz8VmQVhgn5QjjccDHnjyZo2SbIXpzz0qC3kO4GJxewiOWzErTdJ3NRsKhhXBjj5HFB2i6XmGyLW677srBbDDW+YxF6VIyruLfLkI+tctF+NX/6jf5s//Ca/6df/W7uM5mv2HU2VCY390E/6oUTAS0Zvtcn8KqGXhG5IsGh3k62W9iIimSuyWoVlQZlhXwBRAXtDS2CTF2kXTle3LMiMJjODWc0IL2vGe01Th6RgZFYH8XjPmZ1utBOQmtFIhkCCLK6MGypBvs+uTcv1HWu4JIZNOe5N+/RLpa/RDOi3CY4sf0CE6ysttANVshF2l5yAyn1srjx1w63d1BO1d6T4bd18+fpgP+D16bOaLB43mwTJRIMN0oClm3I9gqLFZABoc7S61s/yTgraG/tMLY8OOepR/E3c4T8Los7GOnT09x0TecVHEOHs+F7xzKXhuP1+DY3zEeTkRdGNszui888kRdy2y6XFF5oI9rzuresWp4hdKTWRX9EdsXpDktKiMKfl3QZUPuCoNrOnTKji2ObJW4ZlTZUWwNFi+Mnny40zCeeqMuB/0uRS6AGiUXhqtCF47dGaum47AHLCutOyyJgCAclxW/XIjp1h0W/G5P4fbmaf3UrqIZWy45gOeuQX/inh7f/u27g4xkv97QHVXjBYuhiSamfLtzpHueAY38Nbdm1rrmvGsRfPfVwsevD2wEf+o7C6/eLvzg653H58F+ZLTaI/lUAZxFGd05IsXvm/gWISwt3Yvnia6JyAIocyCCpaU4t9SJmJiHmNq9QrxyAAAgAElEQVSEh4fKL70q/MbvXSGUpQJNc0HUHb+v6UQryQNLASvPJq3JFCEyimGRiaLDPQW7I/+u9VQIM/6zv/VbP903+md8OaAW/Of/6z/h3/83/gRGofkZYs9iLk33Uqdw0opxJJ87g8aENPKsmKBzEDatLGxIE0YJVquUEvlMpLPoORc4ki67kJi9hiN9T6rs/RnqCnYlRDCv1DYosWLW0ZLPIouei+Vx4vLhkWVtjNM3nB5OHKUxYqVFQ8/Ofuwsy0JEpUpl++obytLhBN6cbYFrH3AYiwtDKuadErOZ0AVh4Nowz0ZEl4r7gZWKdKWesyl764bOsgwreYr82r7L3/21v5/itP/+M+Uf5vq58M4byZopTbnsMy4YMWujlaYZW5HSMBoq+aEQQNSxcNycYxSW1pCayrL3eUgjgco9DHR5OQA5QYuSsNHpdKklbesjsrK8kBvKMWZtN5HKegRrZIvNESM3kfPvU2dtvHvCRIncF2TtONSZqxYR9jyeZk0nwR4xxTqZD9qM8Fj4i5gVIeCBkwNfRALphfw5HcEiq1rdHbMZSYp0rZ08OBl86JVvnv3ltfiUVfe/+8Pn/OvpbIaJ20aGCW2flcYTziiki47pZDCEdck65cctuNrMu0fC1ilw6fnQagh11rcWkdzYkIDr8Ny+7HOTm3tgZS3CUtPJchnw4yfny687jx8HLeCf/0z53tvCd+6yxeRwsJHCRZMcmp+vTh0pkD0rPBlcRv7PEckI+7gBLWOLX1luixxPoSumM4H8/h3zcxFTtErxOF+XERChL5HCOVPMWGLwGz+88vjHTMiCb8UVn6wjmCJWfBtn/fYK/qP/8vs4ZLXzkhufLIvIXzckxdE+3wON/M4jKXxmHEdAKt1KxqIshzlPQB97gM72rTFZeRk/m+UFfmvqEZomKP75SVnPhkiKIaogoXgNhgiHCMagk8683YyPHT4MZ4jNNstsCs3IWzqykiE2ZT0JRig2gaapv9Z0r2kuK3bIpQbOkzi7NUKFf7JNkXC+np+qoFWKo0sueYZ8y33yGHnPenluKWW2+Z00+T21Cq0otZAHeoXWjKV1mjr23Lleg2NjJhByuz/cccln6hiOibKelWVx9u3g6TG4XgPXCmtFitEfO9cfBU//yHn3axtf/fbB9uPndEV8NdjeGdeLs2/K4Q90zqx15e5u8PR04d2Hzof3ncu1ZyOrKq55mDBPJ/PmkVGcAWcNuiSbZE/7Ix4dmUIUMJ+XglMxamIBJDmTeygjUtjbI8WwwLKCPPIednOeBskz/NSuSGsVAL/+/SeetsJSSjYXRmVZhBrJyQoHn1ysGJEzl4CooqUikUuVdCg56jmzjG1kVCYcPJ3IwyanLwSzkQKHQEihlUqRgniK22HCQUe1UGWqaoP8dXtnP5xSKlA5dqHeB+t9sJ4L9SxZhtGD/ujobJ5qrcIB/dq5e5ONdNnuPN3IAVoq1+fBh0fDPHi8OKMMhgw2vkURCLMpzWcba2RrLIB3w0bBBml3xvlLf/N3fhZv9c/kSlGhUIbiIoneIKNTFukAcBkcR08RugufyRv4EehnStw12tWRx5xx98m99SPxGu6F0IN1PVFk8PHjN/D6jjoK+OBj2xjbB/a983i5YNWJJuz1wrIKywha2TA5OOwpnVZa8LIwpOBWMGsZwTndw+tBrcJuO4vuvHnbWV/fYVSaNVpdcE64nOiLE6vCK6G+rYgofQhSl5z3i6CnLO9YRkN74RxAddSEYkrZINbEB4gYOvm5g9kmbI66UOICI4hF6DX4fnkAm6xM+TSHenNAcomfpqGYy/iEQMacJzKBMedVTTdXuc1Y3FArOZu9LG4nysE8KJKFWZo7FPaAHkIt8O6x83EED28b3/mVe37zy40//SdXqsKppfNuUViasiyKVqhNsriLdJMVKVQRag3O5+RgtbWwnCtMvhUj0m0akSK6pdGBGT28bM4XH/NMrEUY6UnmGJJYEcnn2HDHRzYv2jyzZFN0niUPz+bs7umS7x10gZIHlxRZ/5hdcxeDhPM//l/ZMCjqk4vcGJ4FJFJKzhCa97SI+dqT97oSCyUKRRZMnrBeWMrKGrmp8+iYXakOFtecOHzDeiGi0G0jfGXbgmNTipzpH5RjZNW46kGNitBpUtifdy7XK5fHwY+//sjz89c8vH3N6WFF1hNDB43KWgaMg34p1LJwuHFuxvbFM+vnK/Lqcw5v2PWgtNReKoqXlq4rDbqvKZZKIYoieoZouUCdi8U2zwHjuqFqFCsUlolMOSEof+V/+818Ptjthf+j5S1+LpxZpRQOD5oEZxW0JAAyH36OjUErJd0yAh6FXRz1kkKPgS4GoslwKSAm9LhxYoQq4KYvEbuQxDQ2gYsP3LOloiJzMDaWKgy3KXLA4ZUiY4pjcFAInFULVxKWnBHFWRs9AbzOhPJZhwlgOyJjhTeLZzBZFJounCZMr2vMD5BwTBtsKcn3qDKreefzqgClaAJYUVwm9G9WbB9hLJZ11l8ewl/97euNo/jHwkL6v//wmX/llx+A3B6rpOBoM8sskp+LhYzUlfmwW0pKPBFwN7PnvadTy07JuhICXGlT4JIh6DIhgp4i2TZI/tp0fr1eNCOIwJfPzrYFS7EJ/k721at7zc/oVJBeVWWPjBS1kq7DgSCRbq73EfSS7qnNkldytRTuNs8hHLLF5NESxr2FzsbCrN89iOSeWIoqI3cMQP6c9PbFrA/O70u6ZHKo+OIaPF73n82b/DO+bqKw/AHX0MtX6w98x/7BjwZygiLK1gdCULUgZjiVRQb7bpSmFE2+nU5HXw4osz56eul9thwVne46h67KEMejUjBKC3zcSgLyM+rEjNDCMTJ+o20+nL2wBLn1dZ/OL8WmzdoDjhDaDVQ/o89IuhfDnbMUhtUESnsObXUOUBZCuzXSSi4fHKVLsFkWLZgoVwRR4y3CX/vdy+9/fT/Rod1rNpXWEEJy7+zxrfjeLYH4GTSdIdbJf8qBwGerLmw+WKRSZkvc0gTj4HpNJ8yyzIi1kH+OkBXxCNIqqsGijoRzeXY+bit+VyCc+3PQ951SnONd1tcXsp1pjML1MVherdmW93wgdiAno94VXlcox8FlCMfISPUWcCWr6OsUUgOI6ay6jABKtlGFEaTNvcxtutws7KIZqdcUg2+Hnoxpjmy5Ekk3pBZujVciOQ8Mvy2jPsE2wxlzCs1h/Vf/u3/Ev/fn/gxvXsPrVriMg3AoFA7zvL9MMHeTPN1ly236wlsRXCoWxhGds1Y46TwcKlpSQM82rPkuST4khwSLj3Sa3lATIZgbd+WMYPRuLMs6n0Ugi1DQLFvxzroqe3dOkhy1MZ0bUeH0UKhy4JLRwQXh/lzY3AjRBMOrJPxdU5AaEYQVRikMc5ZW6JYx1YRGpwPazWkox3RpS0mhpq5KDadbYU0PEr/2w8efzZv9M7juTbisOrEMQfUyHQq5hA5RbFRCD+5K0B7PHE875bMCpXB6ujDaSr2v1Fcrx9EhnLouxO5IOVBd2K6dpTQ4Hgh3Wn/kI2f2bUc9W920BHaFsp6TLmmdizhnXnGuGy6dEY62wugH2EC1IcsUxVUJO2FycLpfWf2ezXf6tqFS8NphnBHtgDNiAXYWq/SRDkQkWZDi6XYWVcQr1pyIQSuVPlIB8aMTmrNfuhQqhMGa35xaIpeJnhtXlcRTV23897/2/PIefKpLnotnQdMNecG8r2c8KZcYt3bB8BSR/HCkzWSBCD1umJd04NxSFuiMH8J0r+cPl3kOdJzdMq58rsJ2GI/Pg2XJOPbpvrI9dWRV6lo4dqNJJi62+X/DMs4YN/Hc87m11OQrC6AFTqveDhGTjzUh9SX/rjGCHsZHy+d005y3xkjMiNbkiWnetrkMZykpwLj5bJdNbvRNOZA52+sU/Zh85f/lH375036bf+ZXzHMNHvzGb37F9c/+GbQ7Uo1nD0os8x25UOWMyoKzQd0Rb/NYbVkYIQcRxhJnxDTdlz5IjtRKVUX0Cr6mrtHh/2bv7WIt27L7rt8Yc6619zmnqu69fW+3+yPtdhqMkf0QxSZBQSSKQgJKQImEgoSwEU+AAEcKyoeiiBfgIeQhliAoCBGJJCiAECEfRPFHUOLY2FbSdmwHt9vtdrfd3be773dVnTpn773WnGMMHsZc+1Rfdzfdiei+LmdJ91bVqXNOnb3XXHOO8R//j1qMiAyAaHHDPBfU07RdZ0GscWrObq2suwJdsXbNxf6KPinTrlHLfWopKBfAChjzXMCNXibMZ+bSORyNfbyLx6+8Rdxfcb1KCnK7QTQZsDARrqyyoGHE5uWmPX3/mIhYxuDaWZvSqlOaJLZxmoHOXEoG7vUJx/n06T7XT14G8RyywViPX31d/85gZplTyQZp2sPSUvIyanFKmfBQNEqizjLSJDQL73Bjkpqm3RaoZaJg0ZKpIbJNWVP7W0sanYJziKSJDxYpLsExPBO3AC8yIkqDSfpQzAhFoYUhzlMm63eT84hAdSQzak6AzWuyIQIYBaIHw//I6eYwmDIujo8NzmW7pblx9c2ILwLpedhlXHYCWVokpxCxeeJkE3KhwozyM4+Uv/HL6xcRkDfLnGf9+sjnbjIqfIAORaCqUIaRokSuObWMxN2kiHmIbI2esNsF+73QV3hyZBgDxngQIz2AeoJOGs59Ea4qXBZ4bq+EKq88Ml59ZDy+TuO+566UF+4pH3yh8M0vFl64l4yV7pnsIJERvH0J6hrU1blPInJLDdowlzdP4GySZIt1ghsLTktQ50zzuo1kG6wjCrg7w7wyX59ovubVUrLqG+gxACwnGTUOmZhCeha0EF7+3ONvyL19J1wRMdJGB9AymmVkS8t52+Yc8Esv36ZXWhVENBlQo+EzF+apUmWAogQuyYfLvV6oJa3bIx36k/rsYyqpwlQV1ZrM0C3BUHNf8yqYZtPfNU3fT8eCXhjHcLynt1pa9GaymbkOv61M2IlI1qFsvjCyeevE8PQb1eCI0naFWbJItMHtC+HMjkAHK3Ds2TPKlTo7UaYoSHF+/DOnZ7ZQ/6LLa0oOJJCayXxVyTCPUZRv7KEe+awHadbeBgjYIghzStRhuC80KZmiIimBL+LcnozDCm0RTkvleBQOfeLYEhgIBd0VbHaOU8Fk5XS9cnjiLLVysspyatR54eLdxv59xsWLnelqodhjTq+9yuGzjzjdHjgRHFWxaUKvZrjYs04TDxFOJUAMpWdq0JLpd8tqHAxuTbg14eDO0qF54eiOAa0FJ4NjT3/NxdIr0Hz4jMQ4TCWZbG5Od6OopMQs+SS4bwzpbCTSCP5ZvCIZ3ATiwZ/9gU/y+WvF1ahSsgguMKlmslxNgEgsJ/xDmZkNT+TKUww1pUenj9Q485S6CiRj0wsJ3TuuwbLECBERrCdrSwK0KNBgNPvjxMnmAEUE2tJZI4HQQDk14fJePitW8t51gYcPE5J0FZbimKeELGWV+T7UKOMsN3aXMF8GDad7w6PiOsBTnQCha9anlBxMiRjiJb0Ja+7pz13GYP6/I2bHX7frUd0xD1OUEKOHoSNC1WxTOqwUJuzTisst04eM+Z5TWqff3+FXhpRK1R11cvYX95imPa1A6BUy55qUurLaGxwW455ccKp5ftgu0FJZeq5b68n2cxdqzHR/QgwDcQ0B7wn2SyE9jaD1E2u7IWgpjxdntQPmK3nyOTKkR+YdD2PSTgvnECeYOoiBGl2OgDPFzGVTpHRKMSIK65JScrH0MaqaKauTVkp4siBaIRZlOSnGlP40kWBxceFThwtO/dlnxH/8C9epYsmWa0iqGIzaBKfSNgSkDGuPKvSWnC1n2GZEqhCUUcdGAjjdZXxeAkgWWSt7bAwwyKG246vz+U8fKKJczoV26tRZU9HQPIFMzWCMsoFvkkCS8rQ3rYxeT0CSLSrkvxuSZ7WNv3MpoILOOXQ2T7DNLNl4L764y3+3Bu95aZfgnCQzsnmCXnMZfkoMLkN4Kk1aZJ0QqfjIr4VPv3X4et3ed8w1THkGPhD8zz/5KlLAZY+qEVMHPRHskbqwxiE9SbUmBTUCkd34VcmsQ0F0Ra3homjtuAeNE8IlRZyIhopjA5hci+BFky2qwRorZkqjMNU9tnN6a5ivXD64QOaCywR6ReioZVhACx4XOHtWq5zWExflCuICHq8cb3+J+v4JqTtCCt6ddm2opuGR18DaQr8FkwJRM/jAMtQH0vqpS8HEqAGVOnqLwPcT6wrddxQxSgFE+f6PfIqRc35+vmKA1F/tJe+EhuAP/UsvhpDNTQX6KaNKSzhoSYBGhJN6mpiroB1qTWnd8Ta9hLKJgpxeD4mAZ7T4MjaOGWhj+p/0vmw6EyCybP4y2zxZWZKu+5FAJjWSrlogD+NIL4hFNE2XJZvJHUnrbBu0KyP41dPgEUYjEhvFdTASfHhCePoYVRnTlW1jjmxIsdz0LCwLShF2UpBIM82tylSUfXD2pfjvPn7M9+httz2ZakJ3e+YoDiK/Wnn7G5+f+cD9acj85OzLUsYaRBJQLQOUSP+P4GpOOVbVfIt3AoclfYuGVUeuu5BMxvFc12kKmZvKxZz+WbspDeM3U/lterdYnIurvebaWCSZfstIuxOEKYkxNBK4WoNBm96kZNAiOK2RrL6S0yANOJEH99EZ619YSYCrWTbLFimh9LHmgSHFGHP1zXNgM9MM+MgvPfyK9yLi2YpD+VJrq8idzIkBEusZjt7WR5yN4UWFv/7HP8T1W0GsTnSjW6DdcmIGlDCaBfdqetWo5r5iDpOOBEMFxQgRSlg2nWNFpto5KGK5T83CsghSCmUCicqsxu1tYVcaKj1TKyOYvFCqDRA+CEsWmEQCoBYQqnjPnUzLCE4QOPYEZCeUNZI5caFponsIZ0FYT5U6J7B/oZKHpoxQCy9cjqFAEzjeVi4eOP/2X38lWTlPXc/i3vUf/K4PxyR+TnZRAfE4y1Zb70yaDCXzNM3elUyWNIz9GHO5Oz2G2T4gNlhz5JknPuTVw4Ov2QDJIhM33YXVciVHEaoKz0njQcw8ODrPvyDMs3L5UmG/n5muClLSvLgfO605mHE6OrevLSyrsGrhNoJ1Dt5ag4fdebwGNxJUD04EUx/eE16GtMRZQ3H3waIGHdL6AKQ7UUa63ADyNEbEsyqTKiY+fEkk/ciGyFUkv7+GMEkyGoMYII3wk7/0+jO1viatG4HhqStfaynwJ//N35ipV9axJrjDGhvL3HOPkuEzqndefR5Zy6Qpg+V5OWqWUsdOGJYDP8l9q/egTiVNcAfeqCpIOFKHB444RXP4RCQr3olzwiVuCb557ndVle4NiuIjYXEnw/JBAvNk4hfJtOceQk8CGqUUwgpvvbUixXjXxR6/5/QY4T8b2CYJ7OkkY5CR9hgxnKlPJlSHWpU//n/8/Je9F8/auQhQpMb3/bbCrbf05qtOlYmwNdOd37jg4nbGXjgwvx8u55n62GhXwmkKhIk6wXFt7MrMvatLjkenlkB2eypKKTsk0q+hPzwy10teVOfRpcCUQ7n2mddp7YJ7H34Jt0ccFyAMYc/Sbyl+osg9Qo5IKL03lEKEJQg1zkH3Kb2KpI89RAElzICaA4dwoNAdltNKnQumE5NdU9hzYsU8kK5U86zly8zSlgx6GoXb4sLkcKoJLMgEu2XmtDhMDXHBNfCj0GthXo1H8yV/7h/dnAePcDdYf9bW18XFVYjAcw/u8cF7G/w8eimLs5cWfp7ZEKT9R0QmHUZs+34qWO7CIRjMrq12H+y3UXPJ2M+qpg9zLcq7X5gJM771Q/f59Cs3hBSOp86737Xj9//OD/CLv/yQj332yCufP2aCojmgg9WabFVzmDI8N0OgLGv5aUqZPZXh5zhM3EMpYQxyHhEp53IBd+FqEm7f7JT76fWcZ6XQzLMvKWPPkkw89+6jnhsBU5rySgX+6k+/zM3ypdnJz9ragru6fiP8j/YHYeY973ue7/lNl0Rx9p6SeI8FWkred0lvAZy1NWKGWipqBY8jfoL9ZZAus4Z5Zyd7RBqzFIKORK4NpgS21UvWZ5okne37hwtFCxEdj2Cqe0SFzsLEJVYckYrOe1Qcb07ERK9HLuYrfDGUyum1x9z/wIvcLEfCOlrAQvHHC/3whPKee/RVMhQlTtia9kW6u6DbgfCsv2a9YvEjrjM+Kb7eoOV5LLLvAGMql9xcN+ouWIA/9+Nv0m7fwrazf/S6W69k/tWtr3cEMwuSrt6CTG2ahKMZXeDoDRcykSZyYrKxag6e4+JORmcng2YUQpEshUyRyIJKS5qKQVLfifR1sEjPn6LCTGEVTzkNg7GiOUUiEmDafk4LZRXlFNDWnO5uXgB9AHCUROR7JBBAUaZxbwQo7oMVkyhsrZky1RmUBzIJJ4UTifATMVLJjN1UuSiFSYXV09mjqjALTFGYwplRilT+h08cc+MLeHp5bKDEZqf76+H65Ucr//CVY05zhol20pSfYquRB9lclVKEnQrrCqc+jNJXeHIK9rNwNSuXE5ksuFMeXAoP9sKDS+XBlfL+55T3PCh80wPlap8TGiWZTqsk+fNJcx6fHFa4J8PjKoInBkt3jpZzgrkKu+pjPaXnXCeTolZLEPVo+fnXp2TD6ABVmgu3nuBWGxXPlhx3JxvMV2/bm0A2h1lnxfkZ2+SQuX6E1/uvn/XzFa/Nx4mt+JCnKNxvuwZY/b/93YdMU5p566CzQ01WSQSGclELHlmybd83BotLtLGSBuoiycgRKWPv1AEQgbtiKKsVpCSzoQ9d/tJngoqX7fCWc1jFNsE017OUskuCTKWmzr1OnSbZKLoLvRdGxjUiOf0upYxwivQTVBHqlCyZi5Lf28RZTZlIWfhx8DGuXThJnhNvfx+f1ZWnFmCerF8PVnfCHI/gZHY2bU/ZbxblHjmtdU8AIrZ0w1HI94A+9nwpNc1KS/qreUkQSivITtnNBYrgmnItIrDFON0aD2+UV4+d19VZS+GI0G3iuBZuj8Lp4KxLrjkP5+TpuyfPK/qcsJbO4dT53G3w+tq5WTxjplvKZ4qVAcgrFtmgFK3UkqEGOgYK/lRxV2omFpaS63bzQVQE3Dh2w00wE5ob4Uof8TkJCAKkD52PMzn9KZ/BFSZvf4628jHVBX/5J77AXAKZSspUJmEqQVgHyYYqICe/kvWK9TxDkjiQTZNFektFgbb2ZCRk1ZrNtjniWde4Bl3aYMZZ7lmWxa3ZsHfoI/iCkRocafJsIslqkZTohBtFJ/aUDLfAUp4vnLv93oO2egJvAqLZ6ZrAwzdP7GvwwgsVm4zlFNATPBVP1nUW6Gku7+54KJNMyQTxYL/5+vjX88a+c64//ws53AlztCltdUJ2TLd7/F7QvvUGeXdHEOKR0O/NSAQ1yrjnxkXqjDmcDrAsBC2T10p61nRpEJYDl9azsV9Saj+VmasPvMTUF+y2UWSHlN3YNxeu6gVVUx4k4rjPA7gaBaEP+bYERsN0YdK0AFitY3LExTFOhDTMDSm3hK+UXaP7SokV9DL3aavghaiGTylt9uXIpErYWJsiTJOzNEMifXvpjvfOPDVUK60oqBAzzNLBC3/lEyvhX8wgfSeQFf7/uLZ96/HjW75w8LsadwDMkLV8KVljb31PDyH8qSHcxuSKZN7IuabNL9jY4VvHVlXHoC6ZW7t9pnG+9nBh6XBtzm4/8dt+60t87/d8Kx9698Rf/aHP8Ma18Vs+fI9/7pv3Qw2R53oOXZIxOE1J0Cia561JDhWmsg2kcgAao8YqCcuP5j+TCbvJ2GuER09Gmq/K1jYmc3uAV6fFWXsysXDQqsNHa8izg/x7jy8LZD3z16g1t1o+WHn1C69TqzBHx9WxcoPqnmlKK6MmStPOra+w26Glpr+UOEIZ1j9X9BhD6wLOSvOghdJ1IcpEaCViRzDh1TM5V9ITjjEImuqOUkqSJWqlm4AtVLlAirOvE0UqBKzNcDF0b6gFbXlCO1QOb73G/v07bhaj2YqrsXYjGqxPjugLO2pMFIHeV9wKosJUJ3q7HcMhoUjFOQ3p/0r4jJcrVu3JuZoU6o7FWyoyaiGmHXHzFuIbcSfXeQTn/77a6x0BZplAEWenMpockJFWk7nc+WB32ohzTqh9F2kiXIpwvWQ6l1saxtaiiZxPQikJd/clCIM9imqmBxaUqaQxbNHKGp6T74FKF4XAiRErn0QrT+RfYzB4lGmekuFTNLXGqqz516gbW0JFD1hiGPiZ0wbyv7lnmSWQNo1JYhl3tAQIngweMg0sNafB4p0IYyolG1sTqqSh5HMjMvu//fknrH5Xusr2PzkLln7dXYfm/OjLt2ikh1Z5Kg9UyCIckQx81pQQTjXNbw8npxJcTvn5WuA975p47/OFF66Ey10aL9eaySO+erISTs7plAj58eScDsF6dA7HoPcEMnwKjgEXU5LYmwdHg13NG7YY3PZE7peWE5lm6RPQCY4Oi8GTJZhqYYWUgZAMDWeAtECPYPH03Wqe5u4hepZ5xWiCt5jipEQPbtigKFs4qzm/8iuPvu738B15DTq3yFMb7ACtNmPp88hnXH/5I9fIZhBa0vtHa7KrSp2yaUNoKDaCHjwEJw/Ew6qDm5IHnoiyWIJgG1tPYrBlqLgp7oposiU04Hio1IuOyp2BvY/7v9oIRPBsRJPRkQwZWQtSfUz/fLz+ZMA4QshIJduCNkSH7wesLUAa1YPdeE2rK13S2LsNvyMfJvIN4eVr4+294deSevJr6ZqKZ6KhJMugRkqB+/CO2k57JcMBRIb/nQRiFRPHrNBD8Z6yYXwUDJJMzm5ONwjLBr2bZxJlTwl8s5QQFy/E8O0IjEWdJxG8Wjqff9J5fIDD2mlrY7npLMeV5bhwXBqn1Tk152aFR1b5vCuvivJaBG8dnMcn5dqCJSRlE72mEbnnnxmg/0JKKgP7V8oAACAASURBVGz4SeJGeGclPUNO4bQwFpJNHRJMWpg02AvM5Ne59zQy9zvQT1TPjZClq/BoFjTP4WfsGv3d3Z/Oe1J+9JOfO/Gn/savsFdnV4NJDEKYasmJ/WBPhoz/SRCaLEzrDjExlUIRgyFhqZMOaVR+TUSupugL6k4NkHG26WAVbqB9CJxaqjdK+EhZzaZykvTY8iIpZ2uGxrCYGKb1QsUj2c30oJpTq6BVqaFkKnXuhcsq1Ar3nlcEhSrsRoqdObik71F4pKG3KzES1Fo4RcoozDt050/8tS/Pynp2L+PnHzo3vMBMxapSpwKHTn8STPcXqjjNgnoNy+5EW480qURfMT/iJ6OfDO8JaoZ2uu9Yl05rb9L7G3BytCjTXKmrctMNPTwB3SMhtFKQXef0hcc0u2DSlaIXiFSkCFouCW24rXg5JItHV4quiPTzoDlQVPZIzFSxtLzx9OZzd8INGvTDHmU0n3WA4uGcwjDSF06o9FCadWoUpDlMsKjTpI806Sn7BxWUwsmCZUq/3T48kGLKJPaPHe/zheOacVJPbVXPqpfkmLwCwZsPb84NsIx+atuSktguZ/BJEu1KewTJ59Yi7WeabwmRWWslU0vOjBj3wX52CM96++a2sXjW4A8eTFyZcTUp//wH7/PiczO//3f9Bu49N/M7fsuLfOKVA5/49DE9T4sw7YX9PgdHZRoZ5wV2c2GucG9Ov2dzRwrsS/qS7moCxBrp9UgHW9MLKwNTsmd1z8Hg5nu1+Wc5yepyMi1z3SSVPejdU1po2QN5OK88Pn3j7vM3+NrOyDvpW0Jb/+DzxkpNySAXNDG87Ki1ZzEaSpV7qAbRK8TFGB4Z7Gb6qOtqmXPQKDOTThnm5Bcs1mhsoW+FiB0eje59MMUnJp3ATghO0ZTtT7vCWvdYmZBpT6cSCOtxQYsz6RX9uFLkivVNxfkC84sPaGvF4kDRgm295KMVFOruktPiNLvGWOitE77gsaJRM1yKxHHcdvks+oR6B1J2b6ZEDyJshNnNrM34X37qUQLGMrAVOOMSMvqor/Z6R4BZF0WpJaewF1KgglfHoiOaRsAhCl3oS6YsnVZnCWftw7g7hBsTppoR5Zt3UIs8LD0CrYUuzqG3fGAl0Xn3QkiyqYoEIpabWSirSzKpJLX/WgQzxuQmi+D0iLWx+BwXpWgyJpJuPt5mSTlHHZ5Wm9492FSBen5oVs97eowEy+wMICTLq4awC0GKUzXBuilgh3GFMItzVaBG8Gc/vpwfwvw5zucA2y/P7KH3VVxvnPqIu5VRoCeoJfidh9Y4FI89E8Iu9srlPp0iryR9/F55aHz+ofHo1jncGphwWgyq0CZl3im7nTDtlKjCqsKxJJvGZyFqNgRLz2bz4ck5RWRiocJhTaPco29a9vR0Sa8QOFgacPeQnF7X/NipOasFt+YM4lcmlkSy/lYYyYWM5JcEMkJSiuNjGpThCYNaTzaK2xr+mU/9UyBru2zQ/Ea/dr5EBuDA2LTftlPXWphrZZo0qcSSbCrEzgytpMXnvWiezIVC+iiZx5CTZfpmGkvmD9AjWQfieU9tYCFtxH+f1qBOntPKYBxoyiTJBhL1lBCJjol5Mg5CJWVAW1JVEVbbfpbc79wE05JF3Bifhk3pJ6fJmkCEJeKctiiDjRUIi20Jj4Gr8z/+7PWves+fVUBeSx1MY4ZhXd6gWdP1sYjS3Gju52Sn3iyL0iFpAad3Yx3PdSYWJWNu+x4eMUBpI7wk6G3JPs40waBZeqR5pDfXirCoc+qFzxwbv3Lb+fhD4zPXxhtr442D8/rBeO3QeP2kfOFQ+fSx87HHxqeunU/eBJ9bCk+s05vjVmjj+0c4bcjIIpJJuvZsNGIEuDgZIlAiKC5o+DktUwcwKh6sEnRJq4EiCQAXzXj3bf9aXDi2BCe2aazH3b83+7N3Pm4WB2lEfMce3UAtCVgW+M//95eh9hz6VB8s9nSTrLqBrRlcUYuwhhPuGckdAZpyT4kx1PPcX5IF4agU5t2e2dM3NcF4hpseg27hzOLM6ZdAd4cwoqWRvI85VL6mwhIZINTMhkQ+wGBXKjUcihCqlMGK9+i5D0UyWZdHxu6FyiqCF0NEWKWjS5rx0gdDvigiNc9JT0mqS9adg9qNvTPK7K/7NQR3/JmffAurgr8m9M8ocVT0fY1JBLOZeqscdh10ZnVoLJgGIs7aFprkGEf8kMNFtQzF0D1qYN5pS3pZnZbH9L2zLzvs1QNFgsuyZ//hD+BxS785UPWKYEm/FmBpt4SsmOxY+zhno9Jcc5gipFSnA9HS8D0EZ0KjUnRKOxQvNO8wOeiUZ1JMeY67E1Hze6kP2VvQVTlNI92wFbQLViVTffcr0Qrds2WWOmUyWinMUc92I53C3/zs4y/JYnhWmVnxRUN45+e/8GTUR5z9+87gFoOQQNa3FoEpeBsMrPO+B0QGVeT+H6w9U+1tyKh63+TonBnqgtCas56cn/nkgV9+deVnPv6Q+5eFLzxc+Y/+wIe4X4THby0p4RvWNceWFiXrsnnPJiN2WY02EmN1TgasaA4FZSsB8GHnILSeScHuY+g+wAH19Bws471qPZAy2P/TYMFW6Joy/ZOnVclKDhMJuJwKP/zxV7/Od/eddg3e91NN8w//9Cssen9YN1RKpCeWab5v1u+h1XKiVgIvBl7R2FF1R4nhLqkNmFMKHzMKqEzn1AGPlGSjmUaeBkaphV9bwyXVFFp2zFPBULROeGssa3r+rX1FS4fhEShyhd3cwPyY/b0PsK5Kj4aZ4N6YYkLUebI8YX5pRwtHOKH6PBEVYsKpmKSiztuGo8DqRkJY4NqJlrLJok7TQqeiWtGd89HrS9547eVxRg5lUGxqgn+Mu/RO2Oz+8G9/T0BQxmZkdGytaPXzZrwRPd084+MhaZpjq0r+FtwuSp2dCwHd/DGMlFhYapOFVOvdWgzTTvDhWxSRk4+dCGso4kKjjwJ3sKUkNc3NPSWI1hEpiW77qAUHyyfZX3m5O1LTD6sMemsZXhMT6X1kw8PILCmJSnpkuXlSTrWMDW1M5N2pUsllku/BPYMuyn/zC7cc316E61MJYDGMX7fiFcGeQd+ZL+Vr9KWu3/PNV2m0zZ2B5JDJs9eRXjKUUzr68rXDfjeaKs11WIDLklNitc3cOteCkrG+RYRuyT5ZB1PiuSmbdwsoHkOmGnRLvX54sCtp/m+RVOFOBgrI2GhvLdeKl/ycxfNn6UkEpA2QIH/v53j6zMLJBrHHnfGlkqaTMUA1SLmsaAJ/5vDTXwOQ9azp67/c2ioMM89RfdzR1+VcbJyvUXU9Pxf+wh/6EMvR8DU4Lo1Y85QoAd597F9G9UItKZHOsAlDIxPYVHXsdUrVBLtXNxhy5NadC/VkFIiwHpV2UvYPHA1nkpzn2PDrUsl1o2IUVxoVkfQp4aBM1WkDQDNJWn7rQpmC3pMhmy2mcOyDsRbJYFhRJGDuha7Bo9T6ZLWqWyqr8lINDkV5dCr80e//fDIExz62eZOZP3uIw3/yO785CgViJOr2lbJJtEabnAr4XGN9MI9ESP9GyXNvZRRZrpQaqOd0eGNW9ubUYYTsUYasXs6JgF1SorUxpzsM+XtQu6bksYBKRUp6kiiFFWPTLoQ3jp6hGUHKn8Xg4CNAYMjFykBZFrIB1JKgFJGFd/FcO92DSxUkJMNfxBNMCJKODwMwHQmQmwR2hLUUSZsBd1KO0p1GRQm0KDUS9GJIFf/+J998ptbXpDU2G7Xz5Dnt8L74GiDPt77vij/4L94nbIYQlmYDeNRRt+X7KmPSH2Ryb05bKx5OM2fWlIApaRNh3qia9MsiyqzOYsHu7OkS1FIBZx4MxTK2iZVsIlJKGuxL5dQbU82qS4uy9pG0qnefp1pZmnGhWZBTAnV462GmRz14vuC1DDA4QLIWLAL9ALZzzDoqBTRlJL0VtHaENMu0EIpOWDf+s7/58a94L561cxHuzsYCXKjyJ39bgkDT3KhNqDeCXM34pVN0hTY8i+aJKEFfhOnBTLs9pa8jO7ScKNMVFxd7+rLiLdOfp0sl5IpSj8RbLzA/5+xvDZNL5vfvMO34zYHrX7zl/re/F8U4nN5CouDhdFvwLpSSkuiC0XrDrTPpBead6DbkPE5EoZix+LAPCWc5Gfu5smJ0a1gU5rmyuDFJwawhEpysQDGsBVNR3BQ1Qz3Z1a0E3SZMVmrA6aTUVln3xixjb1an9wmh8cMvX/Ajr9wOr6dfNSMDnr31dXFxOWQD+fxvr/rq/j2+5UE++8GovXQwj4KUB8fmtyzgzrzT4W2bxf90/m6jH5VxdgCTyNh7Ug6YAV8xQAi4f1n5A//q+/nIz77Bt334Pn/w932IH/q/PsOP/dwjTkfjcHKu7k/8hpdmPvap2/Q5Gnr5vjrTpOznHC7sJkGnBNeOR4MhWS4qFEkPwb4GSzO6Cbud0FuyFJfFkYMjD2oG80xwagGFDPSxTAnukTXpcc1zMAcCyUur5CDnf/3Ip7/ivXjW1hZ8cV0vmxw+EoTeSMwqyvf87m/nffMpZe0Rw8/U0DWl8FoWwnZ57qjitlB1h+IpS+aSKsEkR6pPSK0Q65CKZhCcyEStDpb+kBoTEob6ipb7uDdAoKygO0Qm1LMW0r2AJenhap7pbeLJw2tif6DuLunaKFFxM0Km7DPbJcdXT9x/rxM2sywHdvuJtQceHUoHStpV9JleDhn0JDV75lIJ9kjJcJ6Y4oxruBR86fzk68FP/NTH6RJUz74hyGewb6KDMfH3X0ueWaHZ3K+SE/21VexMhhqNdGTD5JKTZRuTr8UNS9IWXYXLGZZTcLNmwWsWT6WypZ/QGuk3VAHCWV1xM7oHi5GymCiJ7pfkoajkQZtsnWDxNAL1MDp3KRdb1KqEZArd00eL6jCTzOZQSD+tCGE1w8mHpaiymydmTbBLJZgmGQBIT6ZQH4aBCDuMGoFG5SqEn75W/vTHjmcgKyevnKVOmeyYH9vSsIRnd4rz1V5/+zO3mfpnOb0pItShYx9hImMNJX157VDm/No22APLaPBOFlj3NM2OzecjAaLenGMPri04WpxTMFMmk9XIMUbTaGAaZ7prczgZ3Jizjs9JVgU8aUBkI+bjhoencfZiuSH3yNSzwT0c0reBpMPdWiDXhg/w6w4mkPM68q8RyPr1dAXDK8vz5NuewacBrbdfD9eAUiglgQYpmTCog+kZmlKbHrCKDXruoCQMUFJVSGjSaNahRzJciTywLBdvs6TNt1NKbOddJ3obls2RXln5nTmNYj188zaMpN0b6GBzTVLSV4ksIlXBWhksirFOgY0AskRKV8uQkq8aw88wZb1KBiPEWN+345k8WNo+v71i/1Upkc/ItauVGKBj9zakgUozMq7ZhaBCzFhESvDRkSKZkpM2Hmgn0OKY6xmYDoelCeI6pBNABMUVGfIGxlqjFBiSz2TnAF7PjC8LYemNU+s8OjUenxZuTp0np4Xr48phLfgpz3IzwdzokYEHN5ax5QuwiNC0jNyfO7nryUaSr28DrsLRk7l9og+24N062HwuLUnUyc6m4GYjoSr3XR2FVKnCrhgzOUywId/uPZOFn7UrRg/oT/1ZNh/FbX3I3e9/8ZVb/tT/+Uoy3Xwdjf2dgfJEUJ9iK+T5AaVUiuRQb1+ELkbv4wTSoOiUzN/quKb/owqcWkc0k3Ib4CiLB4s6IempVwMgg3hK5OG8lwo27CncESwTWLvjPtFM6N3TpL6nDLGdgrVn4/iul2ZKVQpKGX5tAFS4XVMGVhxUZrQoEs5eSoJboZSaksMtPObHP/WVQ1Ge9Ssgvf6Gcc90u6M+geVKsf3C2htiiuLp7dNWZImUBj45ogTHZqgYGldMTJyOnoM5nZkud6xSKb0TvIv1+g1KVNarYJbH3L6W339+7iWm993y8GOvIlaQ2A02qNG649ZpXjMdUSqqCRgs/ZbmB3bTPbwcsQ56FGJVpCvr9cp66OhOaKUzhVB3e7QqPZZh6ryeZTMimRKsPkx8wzmVoKtjg83ldaGG0kPZy4zUhVkCrGPqmBfowSvHyo++fhz1+zf4Rn89r8jhR4ILd+j77ZMbfuG1dQwvfLA9tiHzMG+f5Nz4hm5m0zG87Zx11MjbcLcMzylG7eKy7ZHJIPbhv+UGx9X4W3/7c9w8XvnIzz7mYz//Jr/p257ne/+db+Xd79kzTcqbb6383CduRrImLM0JhXmvzPvcg4qSnkIIv/F9F/zm73ief+1ffpF/5psveN9LO64uhHtXNTEMVcoEpzVtbNYe9CXwSQbD1c5eusuavfP7P3CZzGwVLNI2Z0t5d2S8Lnh0aF/Pu/qOvbZ63X0Q5POj/MW/8wlaF6IpeNoVuUzYPNPWQpXn8UlZq6ZHsVzS1oLoHuQBRRsqRpcLTmUiaIQPdnJZk82pHesTEjPRhfCOi9O84LKOnmAlfKKEInbKkIw5k3ydmVrucXjdONy+we6FTt1f5tOwVjwaEgXzDusFN69dU+7f0G1iPV6jV5WFRpMTIkLzGUMRpvSYjInOHtOK6Q7KjJSVHieIMmwBctiqUVkVfuRnPjneV2gaZzaX+Z3/65eG5b/89Y4AsyZR0gYr5UwglDokJ5qsqZThkVylMf03oJbUeCKMiO3g3pwTtZtTAkdrblO5EY1/s8sdpdJJhowDWrIctiyj09AxK3p65IPvmsbKoQGRRY+IMI3yuwzAIyVFkociDN8rchOJlMyopzm9iFAjvTnU7Wzym81fyhVVYCeFGsFOg0uCmUoxuO/KCx782OsrP/C5A8QYXMhITIy7hu9pJpZyZ2/4jPaDX9P1oy8fzsCfS+Q9HMwPF6dHcOxwbJERrZayPORO7tU8mVAx6JMHS4BgtZS8dhIp72djYaGMdCULOI6PewSniEwEG83VIXIaHZbf+2gJrB1GY9sRFh+xukGy+iI3isMA1EwgYvhikRIQR84Sw23tR8h4XrKZjGHmvZnJ/8N/CmR9xSs2VsLGhJQ7yOWcMpR/GACz8+/9159E5jq89zTvX0nGjWgaudtIKDw95U21utA8WLpjfSRuimAjZjmASXI/8yFNbasSYqwnAXqCaBjVdRRvhTYYLq6ZEJYm3Omp1Ft6tKGOhSGRgPvS8lUawmqZwuJiozEOOp7N6/AbsbHvW2SR2cg1PQ8GkEWuZwvl//6VE5tPDk+/l1/jwfdr5VLVZJlIS4YQM4igGFoKrRtLc069010JZ3iZQe8lE0l7Sum7FcLSjLl1iKa0daToitBd8VB6V1YJvA60Q/MMS8cXSV+zqPSmeOs5oJEhvZeUz4tv/pXpZeUmHMM4YSmdTn5hesCVlK4uBpOmjD/G0IdI8J+e70WmBwsj1Hz4HOrwALFETWNMScnkxc3Q2YkMkiFB1C3JCclmB0/fkqgBxSjqyEjOa+3ZOxyHc8LZb25LtAy9KwUk7phaktsD3/c3Pktnn6mZVqgDvBZxalXmMr7Ak8HrlqOSos4ksEMpNRPfzpJ2z/XXzCk9OLVC0Yk+ZIe6DQZViS40jJPn+UXk1y2uKZkna5/SlSkqUy3UYuzEUZZM/MIx76ya3qw9lMcPFx68a8IlQzIYP3dYeuycWqClELXgLSglrSlE4caCy4sMipHYwNJsDf/Wz7/2db2v77QryHr7+35i4erGad7oLwDVsCBZwB5ILbQomFRORTi+4VQc1Ym5TVmzcKDHiW4nQgrFJ26XheITa5nw3pivlEev3BCiXM+F/c3rPPnciXZ7oN7/JkRvefPjrzPvZzxWvCu17DPQQG7o3bBuqKQsSKWifsWyrqzXM+sxWGsjJsdLsH9pxnf5cGjssCnwDlULyp4gGV0qOyAopSSDVZ3WM4VsXhUbA/2uliMdN2pIrr8+UVBazQFlTMYyzfyljzaijz2Pr7X9+7V8ydkGIwaSt9UA1m55Y/HBOgJEhkxw9FORQ9rt/YqQ4ZvFnbesZP0yyF34kEVvm2WPVEr48P3zMSxqPXh8ct64Nq6vF/6nv/ZZ/sxf+CQ//GOv8q698r737hERzHJ/cJLjsDQ7g2OIIprel7/5u17ku//db+O7v/uf5bs+eMnyuHH/3Xu+8zvfzW//F15kmpUoaaEjmqmp4QHN8ZrMKgs4rZ3VttcbvPracTBrchCxhaVsvpk69q4f+OjnvwH39p17aXrk5xAogqmvfPS4x6YTolMOXSxwX6lXztpW7HZiNkHLCEpBcBoep/Rsc4HWEDsMiZ0SFDx22ff5DpG8eYIgmkz9yjwGgkaUJX+oYilHLRP9eEk8VPqr1xzeeoO4uqHMD+j9HhJT/pwqEBOqQrm95OYLB/TywHQ1sRyPlMs5Q1VQIva0nh5sFmnD0OWESku7gciUVrOVoOKyx6PTuqekMip48Nc/es2UI+nz83VHovhin6yvBaB/R4BZpumBEINpEpGyGpGUFBBQR1NVJL2NYIBDsvlkMLyy8obup4po4biQ3lKUNLIdn7u0zhr5byeIlhyqKqMB8J7QlMidgbLmQRRhZ9+HgOEzEzQ27xLO5bYghPsZqBvtLTqcUxNA6NksihBaMP1igEkR9gzzPx2TUBXuqXIlxotTYS6F//LjB/7ea3fmyIOXda5M7ySb489j+4+nmu1/esHf/eztedJlsT24WXCvLd+3jMZNWqR5MqjCkzm1MapWywbNQ+jDZNi4Y6kEEC7n2NfbDjIkQxVh4S4Jr3sW/c2CxYYHjMk5yWntTpQhWwxhBQ4dkGCNBL5cYfVk1CSbMMGI8+sDIsUf49c4+xYlMBtjsxFefuPwjbg1v2Yu36rLcQkJKm8m8MAAJ8bfj2fv8eLItAzfjXzOGclFKttzmkBpgUw9ZTPFdsKVKhnxrJLMGhHHeh8s1eFnFQ7FUQ2sB1oTpJyG98uxR/rHDTpVjWQbNJJi39yog7XXTTiiyapxTW/CKFmY4cM/S9P3KmTYZuZk1YGwoJGv1zUhdtdgqsEawayBF8XF+aFPXZ/fz+2dhWe3iB/tNKp5FnlpdNb0ubBskkRjSDkZBf7wVlOnNaijkNenIL8JY+k2bLjSJzIZA3m+RATNc2LW3bAhg4k2wIdTw90S6BgBwwxeVAJO6UtCVKLnPlUMZETOazjWjLCxn2oQFqzd2QHdIhl9KDWck9uZoe1hw8dm+Ji4ZTCKZvMr57FV+mtmUIWAj7NcgLCzia6g1AHCFY1hbp77dRVFS0f02UtzumMYbB/J5k0Gk22rJEKf/py8vu8HPsWPfeoxuwKlJnt9KvVcUNaSRL4q+SuSBXHfGKqez7CTgRciKdVHhKMG6JLDxOabmujMHFZN8GkNkgFtAJXT6qyeXiTp6+b0NdMryzBurzLRxtZctLL24LQGh2vj6v7EaemD4ZhS8IJQx/BoAop0qko2nOFIUVov1CDZhsaQjaU0yZ69ZfOPfT22wl987YK4Z7iOTcP9zCK3MKr2pD/0RpUJKIQqWgy3ldn2xFoyBdA7cGKSinbHlyPRjsjFRFkXvFfmWXl8EbxAo78FdT9x7wP3KfWatz7xiPVmIZrhx8b6eKbKDmv5HKzRWRrY7QxtxXpjuhB8cuAiAfk40vuE7irIFVI7JQq7Klk9RR8PU8VtIWwCE8KXtKsY576pZiKwC9IT0NWRWE7p+CE9hMsK6kJ05y99NBOMvzab5GfjOi2HXCebryE8VQQor795zWcej9oj4qyYyfo7nup9hFNzmsew2JBh3ZDfKbbBiGT96y6plghYLf/RGKjYlnsYQ1LVevDm9cKj287f/vuv8w9+7poPvvuSuWj2A5ZJgt1hngru0JrSuuEKf/R7v4N/69//DmoJ/t4PfpYf+cjrvHnrvPzJJ8Rh4Te864Lf853vQqTy3IM6iBPZC9gA5U7Nk8W9sa0ik3yPi7O2yCH34ljPnkUGu97j2a2p/kmuXA93IMtK8Hf+3i/w0cfPgdQEsKeaaZS6wy6CcmksJqxLMOkFumv0rtiUrGXVGariepFphsXp2hguM6g7QidEaH6ihyF+gTdHvOAURO5TJFB9gB4vOH3+Bl3eQOZHlJcmpgd7ImZav8HkCb01alhaKVhleTLRrx+ze+8Nu+f2EBeUXcdtwnomaIcudAWXxuqdNRxkh/GAIheo7oaCKYdFm62SaAFzit7y/Z96whc+/Wp6CG7PjnwxJpFXnglfCybxjvDM+k9/9zeFtSxAu2V6keo26U16pEg2bLtwRAp9HIJlS65wTzpoJKKuZIF/02E5dZ7bJ72teBAalCgsIwGQUfDmOzFugpZRJOVZVHQYlw4YMULOK7p7Mg2qpJ8R5ky1JFNsQAAuGT8SIZhZeg6RhqeTbubbdy1ad+cCoZa71ygizAhFjNmFHcKtB3/6504E/qvkS0//OeRuAjsg0PPvn14B/gzqKb5az6wvdf2+b7liEuie92tfJZmBIezUqYksUHTIWRT24z3d0v5E0l7IST+YLVK8e1AG9T6f6azyiyiTphSrezDJCAxwSamtj4kO6Zd1aJmGsgyjLxnrsEWMwnswwc6Mq2Q39IjB0gKIAYso/QwQjLWD3slOIv6JpIXPmr7+K60tHXuKRq4ZIp9DPaPL2zcZv0aOEgvKX/kTH+bmuuFrNuStO3tzrAVuefcnSU9BM8dN2NcEiOp47qcISk1D43mk8Rx7yqp2JaGHtkzsLhphSTXfS7BEMEklJFjDKZE+IW4ZRNFDsRUu56CIcWxKKcrqnVIq5ukbs9HvVQfDJzI9drHcuycttAB34USu52VMWxcPnhPnWgoXKqwliLXyh3/w819SojmAjmdqbQF87+/5lpgiQerummm33RMQUk1AMDx9o0qm+k3DE0qZKBjdjVkLS4da4zzfWJplYhZw7JFeIRJj4LPJn2Ww4xTCWDtUD6YqrCt4Sbl9D+f8KIjSI0H0MEYQyvCNk0wRhpx+u2WCnUsGBzSHJTAW9gAAIABJREFUixlwp0VOsEuRYbgcdywi2bzi8gMVPQN7qoN5NsbeFjlYQiWLssHq2hqUBpkmLEIfn7uT3FtLBFMxfuozNyz2bPlJbntXlXJmI8OoE77MrhZPfw4QminUf+T3vp9CTZsIy/ooRiVmLkwirJZMt9Ui05rdqTUIK8PLbEyACaoox2Pn8iKTmUUGSCrBLIM5StZcLun7ll42lYiGALWk/5korGumtjpBqYG39HdbTkE7GvefY6RBD8NvhaUNj9Xxopcx9NEilFZgzn+3ypD3evoWHsbIcq6VP/ZVphg+a+cifPHZuL24gvBgP/FHfutE+IGpVmrpTCQ7c4ggKMdC33XKpHQR5i5pvadpgC7TRFFlH5XWO/urS5Z1TdB5LbS3brF+wXMfuseqgrRr4qZwr96DD8wsp1uWX3qTfixcfNvzOaQpgt/c0k9HJtJuouwnQhPMlKIsS2Oqw3c3KuItWQc0pqrJchZLwJ3KCaNoHeyGCZFg6QtdYKKyhlEs/ZJKHSqOMXxAZ5wFloo/3KP7hUUauhP+7qv3+JFfvsEGY2N7k+Nt++N2PWvr6+11136+uJO9yJkyABJ8+JueQwcBQGAU54PJIektauYDXMyv0aH+KVmeM0mC00XvBh35+YAI+yE3LipMNd/7xWJ4c0Epym/9ze/iZ/7RI567VA5HG95/OYx2H8WhwDQr//q/8l7+je/+dn74L/4sv/Bq5z/8Y9/Ff/FHf5S3HhqlpsT2A++/x3tfqHzqlYWXHlQ+9UtPuFmd5ZQhFDqXVHzkO3FmmG0yuexDImWzKphlfxqDdfbXfurTX9W9eNbWFvzq9fXFoMrdA7ehBqrK/Rfu8x//jg9SpYOn915EssdVCmoLkVwbWk8LgzoV7u2dZkeImYoRYRSp55tmZtSqiOzQONBl4n4U1oPhTZKJJ41y6VxdzsS0RzqskUNsqTsknOYr7dio0z5xjLXSbo6oz8iDG/TiMkFfr9jSmHY17Sq8g8LaCj45hiF6ga8HbCpU2SXTixFCIHtCewb3EbgXbqYL/vwP/j+0ZQFLYkW8bd86ZzHI+X/AV49JvCOYWRGKl6TPdfGME40EciD9qjzyIOyebIDmGV+/TepE0i/DRzPUQ1kiuCjCxTzxaEkEwCKNt9tINopIeqUJdEmPIx9Rk1ETZUQkv/bMp8kmYvPEUdE0ynYB94wfHtBARMZm4neyiaqFaRRi03Cg3yQP+cw4kwcihUowDWbWpSg7Fe5H4XmZ+O9/4Yb/6qPHwZ/5/2ZYPe1/MdCxL8ZBv/G45jvu+uXHjdUyHaWUBHi658S5u+R6iTSXNMmPZ7JSGr6vT0UGJ4tAIZIdU0hj9zUSiHLP1BTHU2o4pteLw7HDyTyN28dk4IkFh56T76PFhqCNhMI8xFaSCWSSzWCQYO8mQ4wxUfL4f9l791jLr+u+77PW3r/fOefeeZIUJVGiLVpyjMR24jipa9dGkMZwYqVwk6JBWht9wEHdokWAvmK4DVIUBYo2DYwUCBLkYQR1UrRIYMNubdd2E7iJnIct2YplS7Ll6EWJkkjxMcOZ+zjn/Pbea/WPtX/nnjszFIcySZGX3H9wOHfu6+yzf3uv/V3fR0CroMzLZwbk5q4WHilmb477G+cr+bm86kWmd7DwDiALYp/59//yp8gjSFZMlUXqextRcBnh6xB0ewVJPf1L+hnoSEo9phmSGJsSVOdgQUDCaJuCEN0DccE0OpSiFXPFPaFJKDU84qr1FLNFyLSrBTixqY1d1IUPuAfDVSTirqMr6JTaafQi3dNQ2HYWkWgUoUGydqokFglcnZUoP/y+J19wb7uonlmaNczbLUfHt8cmFwWj4D3BT7vf0eDSO8/hizUJSE5hzJ96M6Z3X5UBb1BLyL9ChqG90nWS5vjeHh5DZSNkcUhQaoBMEHMfZJXZZ81xg6EDCYqg1qUVtaGdZToXLlPQB4OJ4MH0axJMNO0mtS6A+dme1JtK5vFKmjvNw6S+1PnZC0BOPFjUZwnGbS8hGNTnyPJgG+LOtrMKjw3e//hRf9Yu5qjeaJ35ttubQr0XQQt7dcMsS9z93cJg/S/+zOc5bZUxwUHuvp9pIPdLIO4kcTLK2CWeJKJmEqBLjKXXSeFnFubyMWJdZgtgPCQK1puAFvHmGMnDzUOJpqGZUDbdSc2CceWFqH2kcnpSuHQF0pAoYqimDuR2U/sqO3+1Ge9z876mGlbYSf6TgOSoARZJaG/SsoD9rnuA5Ufbwt/61bIzmPYa9h0zBNGqMHklp4Q1QapTtSOsPgZgVSNt9bSest5sON2c0KYJrAITpSjqle20JdWGuZKuJjayhmnFuLjC6tEH0TFTyhR3iGJUATlcUi6NDIdj1Paa0DHWxZAWCIZKRMybOLGJOjYJkuMZSilCI8Y24JsALhDDWoBcQupNiDFUJV2ZYQ2KGpuklGmkfe4a9syADaeUrSO3jI999kHe95nbId33vbnd26JeCySFV3NspjWb7ZpStmAdTHfDzfnUF29xu8RzGyMaF6FICOazd4KC4Z3Ndeb/WQ0mO/Ob3XZZfXwnwG13f7NeV2+se/2ZsG2wnYwP/tpz1Na4eVTCp9GF0oIoMQyJd7zrMBrPBfxW5SP/4DPcKsr3/cn3cPrRZ/hv/+Ov56EriakE+Pnpx4/4Fx++xbNPb/jYbx9xUoOFRTUkx35pHk32nLr8P3VShkEpFkAa0FoEwMxMs5nI8ea415BersfZJRJ3t+2N2/z1930KdaGxRbUbqjPQqFRdQcqUnEgHzurySGJifQyi13BpCCPYYaQESo5Yt6YUGSkC9eQS6Vnl9EbF2gauHTO8ZWJ84BJpeYXTlsEyGysdHErhrboxjp4UytHA6fMbts9vKOstttySHirIMAZbukJdN4YxsBd32XmN5zzhPmC2oKlhKZPSASaVmhtFKyZOSzdoMy4iK8D5Gz//cXy7QdpZkJh0QHkHMO9O2E6mmOuR+xz5ZXyHv+zxy5++zb/6rsuYW3gcDMbWjI15T5eLxZPU5mqCIYeBbCIeVqTLcEz6ZYgwP07CQW5Yy2wnGAbHbYhunlZGZGcOO6eSiErIcLp9e8JCu86cmnGWjgHd3AyhYuSUEI+Odu5srWJxzRwJr61iDU2RYNEsoq0H1YgON43EjN49zg5jCvrxCmflxs98ofC+ZyPm+q4Wqpxdkmcqbfh+zGDHPq7szOKxM0T0zbE/fuvmxBPHhT/0joM4GAiD6uqcWw3VgkGHRzqhOCx6giH9QKnEOtslajqUqXd3U0x/8wDJvL8vDXaR37OESBFO7AwAtV70l0BIOoAQ5o8YTBqgqnf5RfxKZ5JBmyEQ8V1UPcRzZ8guKbG58+FP3/rKvBGvwyHSkU3Z6zr04b2AkrNP3j2fALcnZ1gKtXrEb5tiApro6W0VXDsAEWyUgUhkJTlWMk271BA4nRQyPbktusdqifEwmFuC0cTRJowSbA1TI9H3RtKZWUBRfAiD9lI7hT/11+gBnE02R9VHTmvK2lPmYj27QKkJ0cYOElEN0IMWe7F6MI8k4cCTk++KiLsOuQu6d5WakBYX84zQtLHwTFMhudC0hueVC0ImaWcXtSiwVBPNC8UjQc4sRbx40zixWrABHOsAfFSxYk5KPSyigjQnpyhQWu3JShI+adLZTPPloPWblTmoN4pr9x+RzgqNwqN2UMA8wiwAJMG6NlY5fCGMaCSZWzAfvCG+0zXSOpu5OKw0Qjikefe/gcGdpmnn40UvQGvf0xCNGmJGcAg5ZnN44nblxu2TuzqFF3XMQSQGZEt9f5IdeLXP7r6z8eWu/OWfe5K3XM/8R9/xdi6lRq3QUJp4bwb2YAeN88p7e8VbJetAkhzyYoGpBasrcLCQf6astM7Wdyz2RonU56BQNKr2c84cTU6z2g2V+0W1BFC1XAonR4lx6eEL2EF/3IOx1WJf0n4mNhOyOkmMMQ1st400KCnF2mnuYMrgvvMM+6v/5IlX6Z177Y9dnekBaD11WrjZrvGg3g5wMDm0MNN2iVqniEUYiATLbqqVIZ0gPkI39U/AuJhZmiGTToxIO6Hkkey5N+pGptI4vH7AyedvwoNXWFy+Qj08RW4p49tTsHeKI7qkWkNkQZXbCLEmTE6BASxj0kgpZD6okdKCVkOqnXSJl4Jmx1aZtBVqDXDOvSEeflobqyAlmvbVaIOw3Ga2mwMWNyrbOsG1Qls0NAU488zxQ/z9zzwXoCwRxGG7ntjF9Y6839Gs0aY1wzAGiaA3J55+9oijS4e888qZS/BcRwSgFUxRJYB477U+Rr8P9qR5HFUo1hODe7KgedRWqFKqdzJGZ1wRjZOjbSOrhFrChYPBA4A6hWGhPPGZU1RhXCj/8Fdv4B+8wYjzsY8f8e/9m4/xoz/12zx9u7Ct/e4pzrVrmYzwwLWBj3zyqP+8zhjbXfiE422QN6yd2fl0sVAwIh2m1tOAzfmZD332K/L+vV5GpJTPjsJRVmzFqTc3nCRYWcY5xWRBSI2XRPr0EDVPj4CTxcBBKpyeGvhAOlSQLd6bxskHpqmhW8XkiGGZseVIHscIiJhWQKPaOvy8dMXaJ0RHyulIrRPlZINZZXEV8pjBhsBMdMJlZDJIaSBLxiYl5W2oKgSaTiiJap2844WUVlFHSqW6kXXAbUQ4DV9fH0nZKV7IDPz04xtsukX12K/m4X6+qko5UWuvP8/JyO5vvCaYWe//9CnjAFmVIcXDv0BZajco9x6XaplkUQiPHhuJ+kB2yN5YGAxujB6SiYUqlzFWKA8ujaxxwZdkpNRIrpQqrLsvQ0MRSQTHS0kWG0822RViAKm1HuXqXfMumDeyJmiOeu8i0h38RRlJ3SQVllkZxckpmFajwxLhiiuHAktRcgeuLqXEFRWuJWE04b//jQ3/+JnoyO+POT707Fib/wR8Ni9k97HZi2n3b2+OFxzHxfnZx08ietzjoqMEy6FaGFa7hG+QoQwafkbuvkufqx3kah6+VdVg21oAr0JP7QzWYXMiLbODAxVhkugMOcpJN85tKmwMJtd+LehfT7CzZsCkNeJC2S+ac1LLzATqPU/MpKcWhuObdRDZCe+cX38TyHpJw8w6EN8Brf2NWTpIOIPMd2Ezzm99YsMwJNKQ8BRFlkgOg37pKZUee+RCQw4jSSj9T7NGnUZKCR1+m7tJ5kxt4NZRwpSgQIuiJDY1upGn1SLZ1QyR7lmCU3BaDl8Z3KniLFIYjmun4M97YkqCSQ1pUWyYSNKQTicJNpZobyYEdb+4dZZP3JxdElWDGj97jc0eFm+EIW3CfQKCCSCuTITXQTMjkaIIl5idqTZS7zCnFIayMyBhVWklkrQCtFaqRvCbWYSWuAnqFe+gmJmxbY2skQxoBmKBkrcW7APFsN69S5J2HWEDcMFd6X2m8NLC2fT9rXbfvlnWqB2B3zajygzix/NTaoDuJsE0rXvrYEjBxm6E76RLNKeaQK0WoET/2WEREH5jFlbgiM5yMgeMp08JIGvuEr7BLokzW+sceCUd75v/vHM4PHOj8j//1BM8vc2QIu3QWmNMdClyB7C6RBpAc450Jqx3iIxFCnaTN+3NuJCkRhMoKpisGimKue+1kkkpdd+znlItiWbhr9Vc0SExDs60hc1mIi8EpFJsovaf4S0iNhIhTVrkzqC32JdxhcHDny311GNiHU8ozYIp+7nnt6/CO/XaH/FE+e7/mwew+Vd++SYbDUuFAD5D+t4qWBPMlEpmU52NBWi/rUptjpozWkVliQ0jk5fwjNSBOiRYJdQS4rCeCi0pnpWT6ZRU17Sbtzk9PuHao1exWxPjtMR9hSwHUo4GMzLF+ZgFq4WFXsYxki8RD0DWcNTGSKYToVWlbNZMySkulFIwq6RsNJtoGk3vQmWU2BfdnJQO0C+uqJ8bkJsn1LdvaG/bYouo+cpWuHF6jb/54efQ1s7SaO+a6TcHQCkTm+2azfZ0Z6Nxenybjz950hlbtmv6R+B0WIfEBdFJPQQjMKM456LG6fc9AvQvHvX/uhkbE4pZeNqas61xRzBvIEZzpTZhW53T0jiejFoFNJqW5gHcrteVYo1ajU11PvfMhr/0tz/GE1/Ycjp5+PN2IODp5zY8+cyaTz1+wgBYDRl0eHo5U/FdJ7V0Vrf7WdK2tX7JYPYQ481l9BLHrhT1UD54Gal+gJHD9yqPpDyQhgiYs1zDekMbyRN1yIyHyrAyTtcCsqDZAj/KTNMNxkNheT2zvH4JH1YBWrngntGxsakOecDkgONjYf1U4uSpDcfPP812fYS7s7gu6MEIjGhWfKhUvxxNao3U8TYZVY6RDC4jbhk80WxEVTByD9QBtVskLdFwNMVNEBlwH3A5ZALQzN/96PP89kc/E6xo2Elce9+sMxwDl6mt7TCKHeP09cbMAngbdI8WQdXwZLhnmjSsbwSpGwnPu4wCosF4qg6DKu41ZDgWprkmBUOZDK5Lo2WYaCAJtTAyHjyxLc6QuxORh0HtqHO8dCQ+pS5NrElIFeislioSjCwjDJUxskSy1JgU84qpk0jBNkAZJKSOi87IGPa02njEhB8mZZXhv/4XxxTYp1Ttkzh2H9+XGe57Zc1fA2cd1dbNev2O7/HmeOHx/3z6mPc+dokRZ+pdfnFna/PFPCSB3oHMOSZ+RqOLC4vkiAlNfOcf013fwvBd6b5vZ2by0GNLEabSSF165P13mJlU85qYTS7ny9y+RWjtn9e6F0gTdi33OdHQZ5ZQZ4Y9X4zPPHH7lZ7eCzn87OHs78+ZqaHTGQ/4zkdr/xn+Cz/+FD/8fQ/zjrcf4BLSZQU8db1980gV9PDJMnW8giRl0MqoSlFD3cBTl8sEg3WqIMva12gUdl0ByNqdWhJDCkZWqUbOORiEltFkFNMu926IhjdgMw1sThX3SG1xjYJPPC6yS4kIdvEw3UadrQXzamNd1uSZJLYzP8+SQGv3EuHcPF300Ui7uVuocXwqrBY1OnydCidBIUG8kj1M1AWhkGLOTLoUqwKCpUC1u0KP2pnELoaoUjwzNaeYQBGyNloHw60ZKRmlR96l1vcQC++sLdbTJ2MtRGiB4rah+BD7TOtrvK++TAB0kZhjLFJmPbVYs53dbG7d+0NDphiH/44s6C3AfTpztZTwNwmJYqw3ReJ1dzDGu8Rj1Eg5NFc+/sVTtqX0Sww9OfmNO6qf6U3C1DzA5znhELwnUO+ztZy/9vOfBoKd8APf+QjXByWbspaQgm57oMiQMrU5eGOpEQyxxRmbcLBMnExh7l8sIck58ADyB8KKohE+qUOevVNh8mgU5hax9EkVMaeiDAK3p8R0UrhyNVMmY7kURIK5uK3BDENDIpRw6hYykWqtBm2q5LEHL5j32rN76VCjxpPXTGn9mhm7UlSgkfn6q87gja1FQy+SbY2cHLeQW0mG5JHgjWQyBasGaeyAwhZXZ2AFNjFRkbJFhkw9ndhsDLVDNBsTG7Ku4NLE4XrLxq5xcjTx0NeMnHziGfydS8ZL1zG2JDEkV8paKduMaWGzXrMcl5S6DT8in6htiVBQMpXQN7fVArG5SVAjBdiGXt8DPpARyskl0vNrsijTco1fdzaXjSENFI+ufWsGMvDk6ZK/8+s3erPyjCwaoIbswMJ7DdXXBGfhKzY22/Xu/5cL4eNfuE1arPjqh8YuT+6ejqnLqppg0nULIphY974Nv78uiO7NogCJkoBhYUHSJaPq7JjFgR31pqZLnEslWFLea+658W0WQGibjJwDrC8eJu1OZ7cXRwfpFzxje9IoxZBm2Cp3+5sA2GuJu4B2xjwQtjcE2yz1cKH6puv7fY1dIMAdwIvg5IMDhpUxWMHawNScEce9RjNbRlKqO5IJo9NIjL5iM0EeTrCypUzCVoVh+WCQJXyD+hhfVwcKW9pmYHNaGXRDLYqujrDVSF6uSJJpehnWznY6QWUgmYTc0RPCAUmFIgPmE9hATo1RD6PhKIk2VBqKt0qSy1jaQMukVNnUy0iK1EIXJWdwT6QxMbWJD39R+Llf/ZeIVRpnNdSe0jfmTfYmcK5lYfcVsyfq/YzXhAG8iPif/tpLfM+7V9Si1NmB1A0s2CdKo5qiHmBRvMYuhNqh67ZDl2t3NJ2d9bfNOd4kZOGcejCtNi2YKGaCVZAEY+qUcWA0Q0kh4zALxo1B8fAW2ZiRO7p/xogCJS6OIvT/A0+Kt8aIoioM/fUlUVycS8SFY+URRawV/tePH/Pptc1zdHaB61iDcmaKe07DLXK2QDpQcr+XwDeCmd/vdPzJxy5RegGLh1mt0xPFOgg0m0dWi1Qa7ciheE936sCR9csXMstlwxuudZqzEMwsPMy7F7l3e4DCLEfsKETvMEXnczaZZ9fZjmwCwyRkSTMq3vDdWmoQbBmjsxZ4WaWFF219vdjaSnJWSM4yC4EzZtHuwnw2Ld73F4jo+Z/8ocfYTIVyCmN1ptLCe6qBt0Y2Cf+rpixypy8XZZHDjDlYKbFvJZwMnNzOrC7X8CIUZ5GhmNEmYVgEhbQZOwlZTjBtnXEpXWoGinHSjINBw6vBwURRDe+32ci94bG5EmzYDAzqrGt0staW+0Wmy7cJqpBmDS+vFGv4Z35zw8997Oa5PWw/HfKirS2AK2P2f/dbHuVmzfzErzyOWiT5/bHf+zBvPUgh0UHISak15JnJJRInazCrzKwbiM7eNOEjtWmx13igTiHbV4VqTBWwALKQ8LGKs1Sx5NQWBbC1zlnWOINjv9Pw2CKK7UifK0wWWmoDxIJtx8wq9QDBRAJ8a3QPSixMdz2AeAhF2f5I2pl9HkrYJLF/CmFoG8rCKO7XZtE48mCHJJSlOkWFj3zmZgeX7z0uWjjK7+RczJLu+tiOMSl7NWocbXztQyu+91sfppqwrQ2XgvgSqN0ctyGuYQyLMXSJobWGmZKGs0TrTKzvasaWkJJ6Cma/W5gmJA2AfFtrsAUHyJ6ZNsLmZM2lqwnJULfCMChZgmmjuZFFw7uIXjkZPX/VyGrIZkBXdCPcYDAnJdg5Kc7qJ26s+Su/+Ln7ns+LuHfdub5m7zQkUrr+4ntHttuJocFSMiZCLRUxpxzEfrJwQVI0YZIrmgxxZ5EOaUlYqDP5RJIVkxyz8muUCnpcaNOEvFXIBt4O8GzkoTGuBvyzjengCuMDBT3MTL/5HBXh8te+FVJi046xreJ1onFKa5lBFGMb4MViQT3akseEVBgQKolTOSG3xKYHEtTW2aaeSR7NJ20Ttr5EPdrA1YIP4RlpNTO1ho8ZswZNMUt8/mTg//zIaTQdYjneOdN7Ff69x0VbX7/Tmn61OABRHnjoEg8M0s3YwwR9SB0kh12w145849Jr/bAVSSkadSrQxHu9188xj+Y0LuQUZ1GS+Y5IZ7vsFNKIwpC0A5jOoCnWkM0Nzi5btN5w7kX93DQSd6QKZZR4hmRmkEVidaT3domieg+SitfZC37cnX/wm/e/b8WcXKy1BXevr/n+va8IkH7Hn8UV0b4Y+N5/59t5TJ6L25MYPgnVMquccJvAhJQ6wF0rbQuSnJwqvsgMDlsvSGlQBlpzhnFiyFc4unFElilSoZfC4lIN0HI7oDnk8Z4aS3cmG7C6pW6UdGlCGEAM9VXcO71QmzGkJdNmw3CoZDmk2CnFcve0TJikqDtxLC8Rq5FwnRJVjZFEZqCmgjTlaa7yv/30P9treskOUzHp4dceDcXk9PvovR/nYGzd3/p6zYBZAD/zbz9MqYarYy2u10YLbwR3pnAkxawFs8Ra+L14+KoIYZAd3iwtdJ2BcuHN2EwJG41bhKHfaTcfnZp0Q3dn0yc/YeCZhQVF9FAyScLcE+tGkQ4kIbXWfV2CPp8sLmx1RvbdUQ+Tv2aGYCw1kTCSOYMKB5oi6nwy/tFzlZ98cooDau/t2Xns7BDNPeYVexsuBMrZq8oXWij3Gm+EjenlGN/z2OHurcnSk+v6ZQq6lwHxXiSChaXmweiEM3ahAC4U6IyDed1HTLBilB4pn0LFGr5rHpBZsBXiT8R3aZ7WEU6bL4j99zK6t81ubqJon6FY7+DW7BnwiSeO2daXz8j2oq2vF1tbOrPcurn1LD2VHQYuu+d5fqx3w2PvGjXxf/y5R9meGjIVrCjbakgNQFwrWFF0LFiDlQpj9xmaI+SLRxpXdmOpwjQJeehAuTayasTKV0dzjgsh3enEg/mSxvjdM8G6CWNUZ+ySNG9Ka4lxDAlRddjSo+3nrqfFBaUg0IysyprOglCYYCdLawolO1d1ZNLGJVG+/8c/35lEd4+LtrYAkvb27x1DJIrv7/sDb2FMQxjPNjCJ9ElEaduCJAWpmCcmdbT1AHF1NhXAgilKY+GJSr+AGXFx7+L6qUbaJRp7yrqFN1ozp2kgWc0UNMBPs0g0lAZVe1LlHkBvZkgaIokz2j09KTj20ZByh2m8Jt+9aHfpHlf9sqEe3mFhvrWD5dWVKuE5qTrT2p2qwmDBbnQLGdlnn11ztClR0O/RR+6sjd4Es+4eqtplf1Gcyh2Ppivn0hEXo/BDf/Sdu7m1FsmoIdfqa6bLbcwbkBnc2FRhucoshqjT3CMRSbVLAyVA9tnn0VoE8QTzwaLDXDN1vebwUoYU3qgqzlRCpiokkELqN5RmGkwGiWckq5K1ImXER+8NViHlqMpVQ9qjOH/uJz75kubxIu5dd10Idx+PNfGvP3aJ7/7qYwRBW0jjpWj4fY6RDBe8wBqXIBGEEc0TuQ0cjCuMiclDyl7ESf0+4M86m6ly+OghohWdBJElw2VjYoHcWDOcZtpjlxgZOBhPefZTz6O3HyE9MlCvr0m1Yt6Y6oZxyNTSOpumhDwsOYMblgdSS7A5ZRqjdiu186U6W1kkh1z8iwfkzYSqsH4kZKitOToOmFWaCz5FvccI//STB/zTzx1Re122v0heysN70dbXy1XTr8YDLj1whbdgGvA9AAAgAElEQVQdzD5TEs8/Z/XYXKd5By8w72bpMPQ9ZN9PWWdX695ICVZXZ/N4BI51N50OhM/Sv+4P1+1oUupBGR2Akl4r5jSnLwrWPMy5JdilbdOQlXZj9/hZ3u0BlADTakdfzAS0q5E6UwuH//fXX5pf1kVbW3Dv9XWXtcXMtOu1wmxNncn8vm/+Kt77ddcp2li0SioratkgQ8PrAm+GtEIeKpoU1ZEmjUzGZI1apjUQWyNlZLM2xBrLRaUNI4tFYutrlpZwGWLtmuBWg+zDgHvDyUzrDbLIoW5g6E7gQcaoJby6xBptHKDbFZW6xj2CeSZVxKIBbZpxRpQtVYyURsw1wC9d8/99dsOvf+hzuE0RiOb9zrk3nb3MO/f3HU+nz2EvKWOd3uf6ek2BWT/yp97C77puNByrLZDjFoZ6bhE/P/WUt5kKWpqjFsVKM6dVCW+E3nmdC1wFNsUwFSZ3jgRud5Cg9s8PU9gohhPd00YqC48EnpVD8op7IiuYNTwlSoUsxphS2Lo5YI2ce8qTdc8vIGMgmZUYo4CaUAX+0w/c/pJU4Zio+OPuS+/5T3vR7/MlxhtlY3q5xnsfu4T2Q048OrjzAdYckGBsNQsPN5gPpqCLJ8LEeB5KfHz21RokDLtLZyYIQRm2DkKF+WeYpmpHuZvF4akiO6lWiLvi4JoBMYilYzMvqINc5vCZGxO3bp++7PN10dbX/TCzZvbkLFlWZEc5B3bMStm9l/vPd6CegvBjP/gYdVtZnzq1NqQ5o0HZxp4pFiDqwiM4Y+sNtR5wEY6hDAKbIzi4HNKxUcHN++8Yv4QY3cgxwAiSx99x3JzDnKgY695kGFQjHRPDTwaGVUNSRBNvXHEaqmGSiinZDVVlazCKs24DhdkXKwIRzJy/+oFbfPLGdN/vxUVbW9DBLIIhIndt/MT75cK3PnaN91xbIl5wGYOBSXiaiSja4v/NvXfD6OdrAI+zLH6WrGp2pPvYoCCtxR6jA80qm9rZKBZrdw6fwJysGiEWHoa8TiTFuUmXAkJ24aQX4fS9qfWN0XxOlwpfL2sWgIEH6ysaQt5nRXdFZutX3yRnwLGIICiTG6PGRbeIk0347adu96CXO6Z0/q+cMZlFhNbahVpfr8S5mDSd+WvBC/pxigijGt/zLe/gG64P4I2cR8y2NFcGjz0lK0Bc2oo5l7Iz1cxUhCqVKwcjSeoufOD0NGQ1MijZCp4HNlsnp8ZylVkuYg1AFO2a4PSkkocx5IGtRCqnh3dpwygeVgCph3AM1bGlI5ppHqbOYpEGZqIcT4U//1OfeknzdhH3rruYWQT4Wa17nylkV/6Db1zwdQ+ukUnwQRFrkDOtNVzn8KeQeyVVsodhsWhj0AWnZUJzXObFJjQ59QsDctBI1wYWbEnDJabbE7IUdLzMdPOIK5YCbHr4baTVKW2qtGz4jVv4TaHWA/RtI+NDS7xu2G6nLncv1GLUCQYdUdkiKSLoo75bMrHBZICNUp+ZGJJiqy1cylQa3hqURMut+81EcJQ64bvVhP/l/ZXm3Sraz3Ov7nys7hmKsv/5F2x9vRJ712pxhUfffonDPBMizhrPyswah8QcvBM2Mg7BeKIDtTPw5XFG0uv9mf2162LPUuscTZuc+6YZusMwaEc66yqqQFUPJZFLhGLMTWsL5heTkw6UYkadk4n3580j1MU6wyx1f9MI4jB+4TdeemjFRVtbcG9m1p1jDuCa36MZlEnzGtDEe7/r9/GPfuE3sFowDvkj3/4Ovu2dC6Q5sERkQ7PUSS8w2IjkNdQGbcH6pJHGNYvFiiQFWkZQtr5moKJtRbXbCAeEhKFEq0+H+HsV1sfHpJXGnilgMmDe0NTI2wXGBh8NadDoUkYUUw9VkEzRcDBFkyJhukTBmRaFocKP/Ubi449/DPW2I880PwODu3Bjns2z/8772g4UvHuO73d9vabALCXMg3/s+x/iwWUNQ7CmlMmj6MZChuiOlXjhxYOqNvWq+qRLBpUzkzFcSCZsm6FjJIPdMDhy2LQwTN6YsaDRfEC9oh3UWvRDYuXKNZQxCdUK2kEB1ziABj2bb3dl1IJ6oK00Ip2JMHxLXsl55G989DYfvN0iDWe+rHzJieI8i6N//u8EvLpzvBE2ppdzZIE/9q6DDgTQqegh5SqdHZckwKbcmVLa6b8iwV5xgsEjhCzM3CNKtz8Psxbf+sPuEmkqLuFJFDKIjoAToJb3S2N4ZsXLV7RLFsObCOhMCd/Rpxvw6Sc3HG9eGfPai7a+Xmxtye49PJMDz5LOqGn29407jM3vAC/+rz//bjbrStnCZlPxZugkjBjramR31GAEJidKr34R8GYMwHqbUDHyaLjBKtFBhzP51izTCul1sCBGUSrOchBqC//ANYArgxilKlNf464hn65unDZhHGKKQiZO+AQCBcWtsTVFk/PDv3SLjz17/+DVneOirS2AJOr7+/0Z0DkfBvGHAMvkfPc3PsyqSxuaOVvRAK8imykuPBLgdbNILmqdRbDSvreIM1r8JRgRHgxpUgDm7mxKIKczK3Q7py2as0qJbTePRwjvCKuUbtitHkmX224C3nPr+isWijsFI3lk+m5qDd/BpAwuTBjJ6Wycuy9xTouEnT2/JyPWZjXnE0+f0KzeVaDOMzo/h/vP45tg1ksb95Ihfonfg/c8vOD7v+0RUrggkcu8/YXksOK05ixS5rQzsZILTAU8sZXwukoLhxzAwIDz3LPO5WuR/inqeHVyAlSx5qQM0hKiIfOfL45I+JomCU9Mo4EFALYwoQ6Cpl6qS40kRm848J//+Mdf8nxdxL1rXl8vBLTsnngVfvgPj0yyZSEDf+v9zp/5g5GWai0aIUlTmKYT77sOqe8avfodMtu2jjComhhPV2wvT6jCMjcaA4ktpzcOyA9k8s0NJ0Njdagsnk8UDpEHrqCrm5AqrZyyvd0YnztgWw7RBw9YPLJGirBta7QZbBs6hgKEFiEpkbA5Mskan1bwVGN7eIJcFQbi84xKbSnYrFmxUhh0oKWGNuNoc50f/dWbPFnunrP7fWDvnPOLtr5eyb3rka96Gw8NPfPQwxYkTkh2DBxMwtCbWeYX901RCQbL7hof9X7q3WLvNV/gTGd8rkjs7EysXpOrageAw2d3DhJqFncCJb7XIHMT2sLfb6lM8++lAVjVGs0fVBFxpurzRJIEphIeJ+/78EtPMbxoawvuD8xix9TbY+0xg6DhV5ZcGESoGmtndOH3/MF386e+6iA89nQB6rgNuFcy4C5Mp454ZVhuQUecROrhSGaNRmEwsBZm8u4gPqK6wSxjUhAOUd9y+zYsD8MTThmpXkAbqkuYDEmNWkcWOVG1RAOUJRAS6VPfsNAl2M7+LazFtTFxlZ/40A2+8Ol/SXOj9WZk2NWczdRM4Di3VHZ0rL155myPmz/c7HUIZkEwGeZt4Hu/YcX3f9uKTBi0enNaE2qNKW0tTLBrNYrHw95KT66pkY41yyTUw3g2J2VjhVOUZ4GbJYzmq0dxP4qQWsgXZrrEYIkB40EZWEgJRNujOAoIHwYSLYSFZISVCgVj7GV6lrhU/tIXGz/yiVMmm0Vo9ztJe2+yv7wA1v54I2xMr8T4N951gBARvGFYHNyBvDMQFnL3rNHusWWdCtUk/EGmZgydvVU6wh/pD/Hm194ZglleeN4/oXWU21zDRBVhXyAoSPfTou8a0g/H8BkRhM/ebhw/f0KxN9fX/Yz7WVsiM8tTYO+CPD/DM2trliDq/Ll97Bgmmvh7P/go00Yo60YtjVSNsWlc+D2KI2mRhqkScmmhyw7VODkaWF6ewggbWGoUZCUsuBgExELimrX1341ICMMQcmcIhtn31IwDVTYN2qQsl41q8QxUhNMaskMcNh775ir68vylDzzPh7745YNXd46LtrYAVEPEtWteyI7dfs8RMlD4zt/9MJcHo7SZst39PFoFzYgYVpV1awwIWYyUhVEbU8uUUslDyLaUSGryBmh48m2moJ2LOo2BYiUYExIyodYMV+2SBkMkhdzLhe0e4ykhXTLdL6bubAD1CBgQd0oLIC6ndO75ceK11RZsvtQLqaxh5l1bNAVCZiF85unb/dx94ZP3zkvgvh/lmzLDL+tnBAPqRR7NWY4oLvzAH36Ex64NSAsmeyXCDUQTTgQVVIs9JEJPHQiQvrr3VE1onsjF8YV0WS6RNp1CDl0pLFOiuiFNcW00U0aJ+q9YYxQnSQZRqnTW31bJC8MHA9felY/zXs35z94Es4D7PBv7nweS+NO//0H+/q89Q3Unpcyf/ZYFDy3WWJcDFyKUKbuSUlyYXEL+CZmqW9QVuT2gkuGwQgpzbiXhsiatB0gLfF2w605aZhKK3t6gp0LTFfLwClspWia2dsr4fOLo6cIlPeD4YMHq7Q2fKu1ky3gJ6rTERsfKKc2chV3Gto2TW1tWD1W2aQsc0Fr8ftGQTLTJKGkiuZA1MbnyW89e5cc/+gzeYt9pdzIV9ubtpTy8F219vRp71wNXDnjHQ1eZwyGCreX9fhpgkewagL1O50ydMXvVqoZlwxwAMEsG5+in1hlcs5/WDDCJOKmfefTmp/crZ3NHpbszu5A7WDJtHV1oJFp3JqPMP2f+vRuUftbiZwyaj3z6GW4cb17yPF20tQUvkZnle+3F/mUzuKlK18PE98jNaUlI+TLf8+3v5hsOK9s0or0RkrYLihwzjsIw9DWE0FoDG1ANhRpMJBvwriJzd5wNIotdE9GloS1zsl4zDMZikQnTj5HqaygJz0YiWK7WEp5CWuiUkD6yRWyM800SmhpaBmzc8gtPZ37l/R/F60Rf3hH2BDswax9eEjkDtfpy3g3d+9xzE++vU5khsOvQxgVQaGq8baH8j++9zu9+GIo36tSCTdDALYArcJoJtRnVQZowNaBKmNZ63OIDFTfWLjzRhCMP+roZTDWFqZ+FgejUKkHqUxZivFUSSzVGNzYIS+mnTQp2mPTNaIkjMqDqHFflJx8/4ee+MMGOqMpdp9FdnRThHFPLd/yaV3a8ETamV2r80ccOz7yQADySTazLvuaOy/wZXfkV69bDE2uWJ3pnalmnn85FTRRw/dv3n3V2UAVAYqZIp0rPEsL5GpaIn9X2FmDt/OjHn95AKRyXM0bDyz0u2vq6n7WVRHeMvH22h/muz3G2ZmTfCp4dyDiPdz+Q+Z9+4B2UU2FaVwZzSjWkNKwRJrMI3heMdU8rmlOKMGTbJZkuJPyHZubYusHYC6OtOYP7zv9hTFEQZVWOKt17wfDeVADBp8SwNMQCzJ0A04ZqolXhr33wFr/65MsHXt05LtraAkiqPh8W5zpWd4Cj+2yieWQR/pXHrvHWQyGM1gU1wz1hakhPNNRsZIRBoUnFSkKTUm1OOsyARTKXKK06zQ004Rjqwro1FjJ01vIY/BpJNBOan3UmTQQ1x/raAagiEZW+M4N3GhmVyCCfaviQqJ6xXqMwistB6UW+dC+TeKqMBJxMxhM3TlBzWu+Y3jWX7F0S57ncA7GAl0R3f72MV+tchJj3/TCM/eGzFGevWycouPFd33Cd73rPVZDEQEijlZBeWQsW6GxgLKK9e505bc7RbeHqgyGh3a4nFqMytUTWWLMbYDkKtRjWNIJZPJL0wFmlsIBwg4MsbCpoSuCK58KYOpOvv8KUlL/zy0/yzz/10gNTLtraghdnZkGvXzoAL3SWsITXShXhWx8e+eNfV+OynoVFcSwnUi7QI+E9NVLKaDOEFadf2OAHDlecpTopKbRMHivNDD+5xHpzzOotl5BRGMioFFrbMgwJf2ZkLUtW1xS7kkitUqdTdCqsn3bGdSR76VudlA9wr7STFWV9hG0NlUZVgwMljWCp0SyjMmENam92ms0J2FGN/ej7D3hivSFZ2zUpK9xRD5zNGy+w799rXLT19WruXY8+fI3rl1dRJ7lHSAqz9+T+zVw4XCqlwOzoPkv5ZuWFdmlz629wm/WMFnLD+XyK50J6fe+d2dWb0b3wV5GuCAqGtTkwOTImti1q+KyKKkj3iHS6jL/LIrtPCWbwix9+6RJDuHhrC+4FZsH8JN6LuQ298cWcWn4G2sy4QITbBACmAkpGryb+m/f+XsRKNGpawmxiGB1rPQG1N3mqG24NJTCLrDC0YHT12BOSrRFdseYUaYJqYrN2FguPs6sHFCRRtltFxgllAdLwGgnjE0ZKmYlGYKlOmGEOuCdu+QF/+2d/BcoWHIqGHYkiPbzvzC96f/7cz+9fey3Dvbn0vZosvuh1C2adTwuYEXDf/X1mLLzzAP7MN1/iu39PgAHFCCNki2hyNNEqlCn8O6TH2petsBhi0p9y46nqHFkY0eISPiEesaqFMIsFZ8R4B5nrySMxSVssVGJDWVf4m7+15gM3tkwWKUlN7Eu0gDn3b+d8cvYeild7vBE2pldyfNe7LsXP7H/vgYfRZZnXcjRsqNbNIgnJYG09mUuC+QIRyZsQUCiVObRwzwx0liOGvtkJFkJSOjOrAw30TdW7LxFxYTOHx5+t+BSywlcSyIKLt77ul5kFeyBE79jN4OPsx3CvjX5mbe2PJMLf/a++BisNJqMVo00tKPA1nNGmGpxgcWcArAyoNsZsNA99vCAMLjsTZdFgdiGK4jvZGDl8lLAwZZ9qMAMjx66bbVf63mz80Ptu8fnjV3Yd3WtctLUFXWbIGbByzjdr/v8vsQL3v+7yYuBbH71EWggLCyZKcK+ii5sRao3uM/SYcHfwFP4J1sgagmYzmErDNdio1ecOsuyAJZEeN44z2ezpN3ftpPsFzkC90+amk81wa/iRNJv5qL2YVCX1/a8CYob3gIVizhdvnLCtUU753pydK67m+btjju61guZC601m1ss3vrQMcf+CPr/n/X3UxJ/4+ut8x+96kMQGfGZcKaU1BslsTwGpyIHSJCwqRtVu8BzpqGYS68ojPdPF4tJHJCKOEqB+pBIHy3X2wKwps6iJDz59ws9/6PM8fixIl7RW//L2vYu4d73Q+rpz+4rPpfsR9bq/7xVjB7X+rXdf5dveecpWGjkNqBZkEtIiUQ1cJkZZUtmQnruMXT1hm4RlAmmKSmWhiQK0m4aVhF8aSQcVUyelFWCgQhoSsIZSGJ4dScN1ToeJ5fIaU9tgPM/hQwPbo2PshoEZ25KxKxN5oaS0YFMbquBtxG0KgEoM80u4NpwtG1fGKfHTH1E++MwppSOjc/NxTnDdXxhzKbBPnN8Hs+71/8L9sxteL+MrtXc9fO0Sb3vwSjQmOZMCwpnH1pxgmBQQ3WtgO0MKxVA0bPrHNRBcTcEkjjDD8MTCwzN3ljJW8y51FOa4uDi/4+JfJkNyAo0UdYjAtDC+PLtHez/bhQCyfuljn4+E7C9jvBH2rrnM2q/FdwBMZ2j5XZf681+s80Kxjl920D6LYCI89FVv5T/81reQWialAW0FdacOjldwKuIZvNs9hFEHQgYJcD/SqhNuJVLSfcl0WkhpII81pPFOBFSMDTG6o3g0JpMpJRtiTpNESxGCt06ZH/mHn+Dk6CYDQf4pxH0gdVXHuYmaW7By9uF53SnRsFDt6roXeS9el55Z89glgPGluzrajfhUEirwnivB4HrkYAMilBZmoPTYUzOhrJ0xZao3nlTnC63xfE2UkvBJae4MCKSKdT3WKAPLNnGVxEMYaxv4J58v/Ozjt7hlfg6FvJ8uCey/yfEwzIa3X+nxRtiYXunx7Y8e0gOOenclmFllJ0mIh3roFFSj6+0lUh9CcMNchMyvATw2D/MZ/e8XRyG0ysCcYKgaHlvWvbXis4MNEb7dQX594mahbba4w8krDGTBxVtf9y0zRHqBHgXKzNKaPbS+VDG6M4ffO0j/+n/yTq4chlSBIqy3JRKhmlFqDYCzOdLCI6GdCgcHPatSlECflBVCMWdI3Uw0GWIDZsag3WtBYUgNb8pagqYuImzEEIf/7n23ePz5Vx+8unNctLUFoKL98b2jqbNfKPUxAze7NbQH4OyvUhHhykL5I49dwlOYyeJBQFcSUEPG4NLNYpXiRoYeQR6XqakC7mxRskdnOOXMtlWkN3NygwnpYReRjtj6TtR25143sO1dQ0fYevi/QZRZhTi/xRMpRyPJ5o00JW6fTDx7KwIr7gT+5kTX+bXfec7uX/r2/2Un7+0g15tg1ivwOwAqEd81G7PP41w64guAtpoybzmAP/HNj/J1D2TqSeFwWWAxUM0CDHCA8FsrEvWgkmnagvFjsSZHDRebWo2F0r1OCtkT5MQHPvU8//iTt/jk8xPYiLCNbvquSWQvKTl6f1zIvUvVX6ymvdeLno+5+QKvQFNlZfBn/7VrPLS4SWoJzxGTOnlhMQjZhbSF2zcTi4crhiGSWUjU9E0r7ktkarSjRDmYkG1muDoiQzzvngwdLjGqsJ02uK/JskSnE3Qr6CazHUdWb307rhtquU22xMkzJ9R8lXR1Ypo25NUhykRpgqnv/LKmrSO6xhE+9IUDfvo3nmeyGr6/cta8n8Es25uLeW72p/T8E3P+4/vzaffpO/N6Ga+Fvesb3/12hhRFfBoiWEL27q4zOB6+VUG6mAEqUWFqhrl0Bk/U7FnCxzbRz7Ee5oScedvOgBjEmRs/LoCw7TZALJ01i/HeEyKAecri95zZYWbwS7/55bGy4GLuXXdjEvM8n3+pc92w97af/z7AHoa129siZImzhlqCpQlND7n2rrfwx7/pEd4xbsgG2Sulg5G9HMctVGNCiiA6j7C55JmpGlkTW10DSjl1VBYMqyNULqPVmKzBOKJWEAacsJ9wTskc0LxSk/F4OeDn//lnOL35DK22HcvMibul9oCO1hmIbo4rDJ3dPOmed/mXOV7fYFZHmu91wbuzqLkneCSyo/SNmjjAePgQHr284DvfteDKpQWb1ji8Cs8hPD81mh5weuR84pljnr1ZON42jotxdFo5LbPWOYy896UK4nu/B362OOXs0hH/1v9yB1r7lWJgvdB4I2xMr8b46qsD77662CH38/DeXckqO418sdiI5tuX9Y83n7XuZ/r6M+BUz62cSItQXPxMq93BLDhbf+7B5Fq789RTJ9AZWq80I2v3+i/Y+rrftZVQbDYX7iwS6x2dffbpvkG87h2cd1GaRfjf/4tHyCljk7M+jXRDqrGtjVKjy60ePlUUJaWKqtOaMrgjGEuCcZAU8gx3eo90ntvjfb02cSaDv/CLt/jtG5XX2rhoawtCZniuI7jP1eZ8U2TeD+TcGXR2YJ67+Di4RE9uUPgDj17hgWUwGcJ/QXBrvbmjNA8DZrqMdSRx1Cpzyo0hmM6pmbHHmUC2Dn6Jgaf4/565PO9ZzSG700S734NQrWGikbLoLSTTczKxGuLKjdtrnttMAXjI2evaH+eArb2/v9DY/+cZBJPQNNL8TTDrlRxZ0guCVnBWUwUh4Q7gq5+dIfOPJKmRwte89YArC+UtVxc8cn3J1z54iBdISwPNUCbWZjAJt0z4xOdu88knT3nieMvtSXBvnXB4B4pwDxjhy2VlwcXcu+5XZrj/nu9vc2ffp18IPeSIDy6V//L3K2lh1GUitah5FuOA3Bg51sJw2DqLvXIoMDVBFkLbGpohPX9IvX4azZpTYbgSwuQsio2gsiItjFbj/VdzFppoFGxTkZMM28v4wytkWONamJ7eYHVAH77E0r/Ipj5IHU6hZGiK5C0iiaNN5v/+tRM+8uw6Xue8pXcZ2zy8z809rjfn/GX0Hp9z52xftPX1Wtq7vuk9j5CzMgxKm8IJNeXEkCTSfBtoku6bRT9LnOaK9zRpREjiO/ZOIkJ4OpFm17R2817NawRaOMzcftHeFCqgI0iXOVYTpMv6Z4lbc6crEXF3fuVjn/uyX/9FW1twD2aWfImXuGNm9c+lnw7zHd/P9rV5ZNnj6/XGo0m87+pR57Q08t1/6Bv5xrcJVyZlk9Zxx2sF5ZAsE97AWKOyxFr46ka50iLgh0yZCnkoJD3EZItUwbUiaUCtgB8gYpg4y6Yc68AHnlrzvg/8JgsrSCdglP3XFC+7p4+/PHP+wtN7gcCsF/ia+/p3uWPRnHWt5yWXYC5C5B7d7Xt+8/hjV868yBSKzJyY+aLw2h1vhI3p1Rp/6KsvBW0+9iomokMyJtmZArbefTTCX6vXNjgh8wkA6yxtkA6qCvRi7Yy94x5gVrUIG2izL83M8PH4uWt3nn7qZLcOT6ZXj1Vz0dbX/a4tFWVmYO7kUnMZci/Q/uz7n/9Geyejovy9H3yUVo3tWpBW8QLrWsNAtoUnVtkqK20dbBdwY5kFq86SMNf1DjD0f8ZVgsLs8D/8s9v8+jPldzhTr/y4aGsLzgzg4exsAs6BN/OaOkstjX+cwdLdF985zn3jkNa7wNsOBr7p0SssKIj1glmduvPLCpm+NAtPPhnYWCW7U1GygyWQFmtcJNG80XT24ZqN22O94ZG42GhUhIHwbcC7T5Y1qilH64mnj7ZRzHfQa3/szvn9l7dXVZ6bv/3P3zWxz6eO3jneZGa9OuOFJIh3emuZ+Isay58bfXGIBJCaPM7PliC1uz/vHDPsPsabYNb58WLrSzh7Xu+GBs+PtAPtYXBAlO/4qmt819cWlGPUIevA9vMKD4PlAp4ZqCSFhlFFyQrVMwdTZnOipAdOaC2TTwZslUArssw4RvPEmAdoLYy/B8AVScHCsfUt9PaI2DXsmpP+//buXTdqIADD6O9xNiErEiQKClqQeANehnfkFaiRKOgoKCgiiigSEuKSy9oeCtskIIqIAhhxTrmrtWRp5Z397Jk5nnJ+epr65W76g6N09y9y8fUy2exn7M+z3x/n+curvDr9mG5MpiVcDJkvZ3vdj/cqpvWE6/Vl7OfId5u/b6ZI/xlPHj3Mti/Luszzun+bft4MpS/zMux7SbqyTNNavvjTEmunOo/bSzdlHOdpiuvUxbi0YrAAAAFtSURBVGkZ932fYjinqXnJq+W6WJdj1KGmP1g2Glg+tz7JdT1OqBnG+f1pqnn99v1vn/f/cu26vqG4vrIW+Bs54Ya6jHPWJ5NKyboSw9IC1uPOv2nrbI2+m8cfm5rsui6bWlIPt7n34CjPnj7ONp9T6l5KHTN0u0y1pM+d9LnK0NWUsaRmWRu1n3Lxqc/BtqSWIXVXUvt5jb79bspUpgz1MGdjnxdvTnL27kNyuZt3NazzZj9/+7Z1UzELAAAAAG7j19vLAAAAAMA/SMwCAAAAoBliFgAAAADNELMAAAAAaIaYBQAAAEAzxCwAAAAAmiFmAQAAANAMMQsAAACAZohZAAAAADRDzAIAAACgGWIWAAAAAM0QswAAAABohpgFAAAAQDPELAAAAACaIWYBAAAA0AwxCwAAAIBmiFkAAAAANEPMAgAAAKAZYhYAAAAAzRCzAAAAAGiGmAUAAABAM8QsAAAAAJohZgEAAADQjG9qIy8kIWR1lgAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<Figure size 1224x1152 with 64 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"data.show_batch(rows=20, figsize=(17,16))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 1224x1152 with 64 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"data.show_batch(rows=20, figsize=(17,16))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Training (Transfer learning)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The Kaggle competition used the Cohen's quadratically weighted kappa so I have that here to compare. This is a better metric when dealing with imbalanced datasets like this one, and for measuring inter-rater agreement for categorical classification (the raters being the human-labeled dataset and the neural network predictions). Here is an implementation based on the scikit-learn's implementation, but converted to a pytorch tensor, as that is what fastai uses.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from sklearn.metrics import cohen_kappa_score\\n\",\n    \"def quadratic_kappa(y_hat, y):\\n\",\n    \"    return torch.tensor(cohen_kappa_score(torch.round(y_hat), y, weights='quadratic'),device='cuda:0')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Training:**\\n\",\n    \"\\n\",\n    \"We use transfer learning, where we retrain the last layers of a pretrained neural network. I use the ResNet50 architecture trained on the ImageNet dataset, which has been commonly used for pre-training applications in computer vision. Fastai makes it quite simple to create a model and train:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Downloading: \\\"https://download.pytorch.org/models/resnet50-19c8e357.pth\\\" to /home/gezi/.cache/torch/checkpoints/resnet50-19c8e357.pth\\n\",\n      \"100%|██████████| 102502400/102502400 [11:55<00:00, 143238.52it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"learn = cnn_learner(data, base_arch=models.resnet50, metrics = [quadratic_kappa])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\\n\",\n      \"Min numerical gradient: 9.12E-07\\n\",\n      \"Min loss divided by 10: 1.00E-02\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.lr_find()\\n\",\n    \"learn.recorder.plot(suggestion=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here we can see that the loss decreases fastest around `lr=1e-2` so that is what we will use to train:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: left;\\\">\\n\",\n       \"      <th>epoch</th>\\n\",\n       \"      <th>train_loss</th>\\n\",\n       \"      <th>valid_loss</th>\\n\",\n       \"      <th>quadratic_kappa</th>\\n\",\n       \"      <th>time</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.977892</td>\\n\",\n       \"      <td>0.565867</td>\\n\",\n       \"      <td>0.798735</td>\\n\",\n       \"      <td>02:33</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1.026150</td>\\n\",\n       \"      <td>0.352707</td>\\n\",\n       \"      <td>0.843969</td>\\n\",\n       \"      <td>02:25</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0.671787</td>\\n\",\n       \"      <td>0.306577</td>\\n\",\n       \"      <td>0.878116</td>\\n\",\n       \"      <td>02:30</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0.499545</td>\\n\",\n       \"      <td>0.302470</td>\\n\",\n       \"      <td>0.862413</td>\\n\",\n       \"      <td>02:30</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit_one_cycle(4,max_lr = 1e-2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAXwAAAEKCAYAAAARnO4WAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmcFPWd//HXp3t67ou5GGC4Qe57BA2CosaoUZHIGl2NUZPwi9nN5W4Sk2yiOdw1F+sRN4km6pooxsRzvY0XSiIIyiU3cg0MzAHMDHMf398f3YwDzAwDTE/1dL+fj0c/uru6uuvTNfCub3+r6lvmnENERKKfz+sCRESkZyjwRURihAJfRCRGKPBFRGKEAl9EJEYo8EVEYkRYA9/MMs3sr2a2wczWm9mZ4VyeiIh0LC7Mn38X8JJzbr6ZxQPJYV6eiIh0wMJ14pWZZQArgWFOZ3eJiHgunC38oUAp8KCZTQJWAF93zlW3ncnMFgALAFJSUqaNHj06jCWJiESXFStWlDnncrsybzhb+IXAu8BM59xSM7sLqHTO/aCj9xQWFrrly5eHpR4RkWhkZiucc4VdmTecO22LgCLn3NLQ878CU8O4PBER6UTYAt85txfYZWajQpPOA9aFa3kiItK5cB+l81XgkdAROh8BN4R5eSIi0oGwBr5zbiXQpb4lEYkejY2NFBUVUVdX53UpUSMxMZGCggICgcBJf0a4W/giEoOKiopIS0tjyJAhmJnX5fR6zjnKy8spKipi6NChJ/05GlpBRLpdXV0d2dnZCvtuYmZkZ2ef8i8mBb6IhIXCvnt1x/qMisC/+7XNvLWp1OsyREQiWlQE/u/e2spiBb6IhJSXlzN58mQmT55Mfn4+AwYMaH3e0NDQpc+44YYb2LhxY5gr7VlRsdM2KT6OmoZmr8sQkQiRnZ3NypUrAbjttttITU3l3//934+YxzmHcw6fr/1274MPPhj2OntaVLTwk+P91DY0eV2GiES4LVu2MHbsWK655hrGjRtHcXExCxYsoLCwkHHjxvHjH/+4dd6zzjqLlStX0tTURGZmJrfccguTJk3izDPPpKSkxMNvcfKiooWfHO9XC18kQv3o/z5k3Z7Kbv3Msf3TufXScSf13g0bNvDwww9TWBg8ReiOO+4gKyuLpqYm5syZw/z58xk7duwR76moqODss8/mjjvu4Oabb+aBBx7glltuOeXv0dOiooWfFO+ntlGBLyLHN3z48NawB1i0aBFTp05l6tSprF+/nnXrjh0BJikpiYsuugiAadOmsX379p4qt1uphS8iYXWyLfFwSUlJaX28efNm7rrrLpYtW0ZmZibXXnttu8e6x8fHtz72+/00NfXOLuToaOEHtNNWRE5cZWUlaWlppKenU1xczMsvv+x1SWEVNS187bQVkRM1depUxo4dy+jRoxk8eDAzZ870uqSwCtsFUE7GyV4A5ZYnVvP6hhKWff/8MFQlIidq/fr1jBkzxusyok576zVSLoDSY5Li/dSqS0dEpFNREfjJ8X5qGpuJpF8rIiKRJkoCP47mFkdDc4vXpYiIRKyoCPykgB9A3ToiIp2IisBPjg8Gvg7NFBHpWFQEfpICX0TkuKIi8JPjg6cTqEtHRADmzJlzzElUd955JzfddFOH70lNTQVgz549zJ8/v915zjnnHI536Pidd95JTU1N6/OLL76YgwcPdrX0sIqSwD/cwtfJVyICV199NY899tgR0x577DGuvvrq4763f//+/PWvfz3pZR8d+C+88AKZmZkn/XndKSoCv7VLRwOoiQgwf/58nn/++daLnWzfvp09e/YwZcoUzjvvPKZOncqECRN45plnjnnv9u3bGT9+PAC1tbVcddVVjBkzhnnz5lFbW9s630033dQ6rPKtt94KwN13382ePXuYM2cOc+bMAWDIkCGUlZUBsHDhQsaPH8/48eO58847W5c3ZswYvvSlLzFu3DguuOCCI5bTnaJmaAVQl45IRHrxFti7pns/M38CXHRHhy9nZWUxffp0XnzxRebOnctjjz3GlVdeSVJSEk899RTp6emUlZVxxhlncNlll3V4vdjf/OY3JCcns379elavXs3UqVNbX7v99tvJysqiubmZ8847j9WrV/O1r32NhQsX8sYbb5CTk3PEZ61YsYIHH3yQpUuX4pxjxowZnH322fTp04fNmzezaNEi7r//fq688kqeeOIJrr322u5ZV21ERQs/ORDcbmmnrYgc1rZb53B3jnOO733ve0ycOJHzzz+f3bt3s2/fvg4/Y/Hixa3BO3HiRCZOnNj62uOPP87UqVOZMmUKH374YbvDKrf1zjvvMG/ePFJSUkhNTeUzn/kMb7/9NgBDhw5l8uTJQHiHX46KFn5SawtfffgiEaeTlng4zZ07l29+85u8//771NTUMG3aNB566CFKS0tZsWIFgUCAIUOGtDsc8vFs27aNX/7yl7z33nv06dOH66+//qQ+57CEhITWx36/P2xdOtHRwtdhmSJylNTUVObMmcONN97YurO2oqKCvLw8AoEAb7zxBjt27Oj0M2bPns2jjz4KwNq1a1m9ejUQHFY5JSWFjIwM9u3bx4svvtj6nrS0NKqqqo75rFmzZvH0009TU1NDdXU1Tz31FLNmzequr9sl0dHCDyjwReRYV199NfPmzWvt2rnmmmu49NJLmTBhAoWFhYwePbrT9990003ccMMNjBkzhjFjxjBt2jQAJk2axJQpUxg9ejQDBw48YljlBQsWcOGFF9K/f3/eeOON1ulTp07l+uuvZ/r06QB88YtfZMqUKT169ayoGB4ZYPQPXuS6M4fwvYs1JKuI1zQ8cnic6vDIYW3hm9l2oApoBpq6WtTJSI6P03H4IiKd6IkunTnOubJwLyQpoOvaioh0Jip22sLhyxwq8EUiRSR1F0eD7lif4Q58B7xiZivMbEF7M5jZAjNbbmbLS0tLT3pByfFq4YtEisTERMrLyxX63cQ5R3l5OYmJiaf0OeHu0jnLObfbzPKAV81sg3NucdsZnHP3AfdBcKftyS5IlzkUiRwFBQUUFRVxKo04OVJiYiIFBQWn9BlhDXzn3O7QfYmZPQVMBxZ3/q6TkxwfR0nVyZ/4ICLdJxAIMHToUK/LkKOErUvHzFLMLO3wY+ACYG24lpekLh0RkU6Fs4XfF3gqNChRHPCoc+6lcC0sOaAuHRGRzoQt8J1zHwGTwvX5R9NOWxGRzkXNYZlJ8XFq4YuIdCJqAj853k9DcwtNzS1elyIiEpGiKvBBV70SEelI1AR+kq56JSLSqagJfI2JLyLSuagJ/KTWyxxqxEwRkfZETeCnJgQDv6pOgS8i0p6oCfyBWUkA7Nxf43ElIiKRKWoCf0BmEgG/sa2s2utSREQiUtQEfpzfx6CsZLaVKvBFRNoTNYEPMDQnVS18EZEORFXgD8tNYVt5NS0tuuiCiMjRoirwh+ak0NDUwp6KWq9LERGJOFEV+EOyUwDYXqYjdUREjhZVgT8sNxj428oOeVyJiEjkiarAz0tLIDnez0facSsicoyoCnwzY2hOio7UERFpR1QFPgR33H6kY/FFRI4RdYE/JDuF3QdrdSEUEZGjRF3gD8pKprnFsedgndeliIhElKgL/IFZyYAGURMROVrUBf6gbAW+iEh7oi7w89MTiff7FPgiIkeJusD3+4yCPknsUuCLiBwh6gIfgv34auGLiBwpKgN/kAJfROQYURv4FbWNVNQ0el2KiEjECHvgm5nfzD4ws+fCvazDDh+aueuAWvkiIof1RAv/68D6HlhOq0HtHIvvnONXr2zk0aU7e7IUEZGIERfODzezAuDTwO3AzeFcVlsDs5IAWLRsJ39Zvourpg+i+GAt97y+hYDfmDEsi+G5qT1VjohIRAhr4AN3At8G0jqawcwWAAsABg0a1C0LTUsMkJOawNuby8hMDvDGxlJ8BrNG5rBy10Fue/ZDHr5xOmbWLcsTEekNwhb4ZnYJUOKcW2Fm53Q0n3PuPuA+gMLCwm67GO39100DYFz/DO782yY+2HmQX//zVJ58v4gf/d863txUypxRed21OBGRiBfOFv5M4DIzuxhIBNLN7E/OuWvDuMxWUwb1aX387QtHtz6+9ozB3PXaZp75YLcCX0RiSth22jrnvuucK3DODQGuAl7vqbDvTMDv45Nj+vLa+hIamjSEsojEjqg8Dv94LhyfT1V9E0u2lnldiohIj+mRwHfOvemcu6QnltUVM0fkkJoQx8tr93pdiohIj4nJFn5iwM+c0Xm8sm6funVEJGbEZOADzJ9WwP7qBh5ZusPrUkREekTMBv7skTmcNSKHO/+2mYM1DV6XIyISdjEb+GbGf1wyhqq6Ru5+bYvX5YiIhF3MBj7A6Px05k0p4NFlOzhQrVa+iES3mA58gAWzh1HX2MKjyzSomohEt5gP/FH5acwamcNDf99OfVOz1+WIiIRNzAc+wJdmDaO0qp6bH1/FlpIqAKrqGrnugWU8/cFuj6sTEeke4R4ts1eYNTKHL589nIf+vo2X1u7ltkvH8u5H+1m8qZRVuw5yzqhcMpPjvS5TROSUqIVP8IidWy4azZLvnMs5p+Xyg2c+5Pk1xXy2cCBVdY3c87qO4hGR3k8t/DayUxO477pCFr66kcraJn502TjM4OF/bOeaGYMYpoumiEgvphb+Ufw+41ufGs1PLh+Pz2fcfMFpJAb8/PCZD3Gu24brFxHpcQr848hLS+RbnxrFO1vKeHbVHq/LERE5aQr8LrhmxmAmFmTw0+fXU1Hb6HU5IiInRYHfBX6fcfvlEyg/VM+vXtkIQElVncdViYicGO207aIJBRl87ozBPPzuDlYVVbBq10Funzeea2YM9ro0EZEuUQv/BPzbp0bRLz2Rsqp6JgzI4CfPrWs9UUtEJNJZJB15UlhY6JYvX+51GZ2qa2wmzmfsr2ngojvfJjs1nv+9cTr9MpK8Lk1EYpCZrXDOFXZlXrXwT1BiwE+c30deWiJ3Xz2F3QdqufSed1i+fb/XpYmIdEqBfwpmjsjhmX+dSVpigBsefI8Neyu9LklEpEMK/FM0Ii+NR744g+QEPzc8+B6Pv7eL7WXVXpclInIMBX436J+ZxAPXn05js+PbT6zm/IVvsXLXQa/LEhE5QpcC38yGm1lC6PE5ZvY1M8sMb2m9y7j+GSz73nn87ebZ5KUl8M0/r6SmocnrskREWnW1hf8E0GxmI4D7gIHAo2Grqpfy+YwReWn86srJbC+v5qfPr/e6JBGRVl0N/BbnXBMwD7jHOfctoF/4yurdzhyezYJZw3h06U7+tm6f1+WIiABdD/xGM7sa+DzwXGhaIDwlRYebLziNMf3S+c4Tqymtqve6HBGRLgf+DcCZwO3OuW1mNhT4Y/jK6v0S4vzcddVkKusa+fXrm70uR0Ska4HvnFvnnPuac26RmfUB0pxzP+vsPWaWaGbLzGyVmX1oZj/qlop7kdP6pjF38gAeX17EwZoGr8sRkRjX1aN03jSzdDPLAt4H7jezhcd5Wz1wrnNuEjAZuNDMzji1cnufL84aSm1jM48s3el1KSIS47rapZPhnKsEPgM87JybAZzf2Rtc0KHQ00DoFjkD9/SQ0fnpzD4tlweXbKe2odnrckQkhnU18OPMrB9wJR/vtD0uM/Ob2UqgBHjVObf0JGrs9b567gjKq+v58XPrvC5FRGJYVwP/x8DLwFbn3HtmNgw47p5I51yzc24yUABMN7PxR89jZgvMbLmZLS8tLT2R2nuN04dksWD2MBYt28lLa4u9LkdEYlSPDY9sZj8Eapxzv+xont4wPPLJamhqYf5v/86O8hpe/Pos+mdqOGUROXXdPjyymRWY2VNmVhK6PWFmBcd5T+7h4RfMLAn4JLChK8uLRvFxPu66agqNzS18888raW6Jud0ZIuKxrnbpPAg8C/QP3f4vNK0z/YA3zGw18B7BPvwu9/9Ho6E5Kfx47niWbtvPL17e6HU5IhJjunpN21znXNuAf8jMvtHZG5xzq4EpJ11ZlLpi6gDe33mA3761ldy0BL5w1lCvSxKRGNHVFn65mV0bOurGb2bXAuXhLCxamRk/mTuei8bn85Pn1vGqxtoRkR7S1cC/keAhmXuBYmA+cH2Yaop6fp/x35+dzPgB6fzb4yvZtb/G65JEJAZ0dWiFHc65y5xzuc65POfc5cAVYa4tqiUG/Nz7z1NxDr666AOamlu8LklEotypXPHq5m6rIkYNzk7hp/PGs3LXQR5Yss3rckQkyp1K4Fu3VRHDLpvUn0+O7cuvXtnENl0LV0TC6FQCXweSdwMz46eXjychzseX/7iCitpGr0sSkSjVaeCbWZWZVbZzqyJ4PL50g77pifzm2ml8VHaIL/3vcuoaNciaiHS/TgPfOZfmnEtv55bmnOvqMfzSBTNH5LDwysm8t2M/X1v0gc7EFZFudypdOtLNLp3Un1svGcsr6/bxH0+vpafGORKR2KBWeoS5fuZQSqrq+Z83t9I/I5GvnjfS65JEJEoo8CPQtz41ir2Vdfzq1U30y0xi/rROx6kTEekSdelEIDPjZ1dMZOaIbL731BpW7TrodUkiEgUU+BEq4Pfx66unkpuawE1/WkH5oXqvSxKRXk6BH8H6pMTzu89No7y6QcMviMgpU+BHuPEDMrh93gT+vrWcn70Us9ePEZFuoJ22vcD8aQWsLjrI/W9vo6GphR9cMpY4v7bVInJiFPi9xK2XjiMhzsf9b29jb2Ud/3PNNPw+DWckIl2nZmIv4fcZ3//0WP7j02N4+cN9/Pxlde+IyIlRC7+X+cJZQ9leXs3v3vqIMfnpXD5lgNcliUgvoRZ+L2Nm3HrpOE4f0ofvP7WG7RpSWUS6SIHfCwX8Pu66agpxfh9fXfQB9U0aXVNEjk+B30v1z0ziF/MnsmZ3BT98+kMNtCYix6XA78UuGJfPV88dwZ+X7+KP7+7wuhwRiXDaadvLffP801hfXMmtz35IVko8l0zUdWlEpH1q4fdyPp9xz9VTOX1wFt94bCWPLdtJiy6eIiLtUOBHgaR4P7+/vpBpg/twy5NruOq+d9lzsNbrskQkwijwo0R6YoBFXzqDn10xgXXFlVz26yW8v/OA12WJSARR4EcRn8/47OmDeOornyAlwc9Vv3uXJ1YUeV2WiESIsAW+mQ00szfMbJ2ZfWhmXw/XsuRII/um8fRXZjJtcB/+7S+ruPu1zV6XJCIRIJwt/Cbg35xzY4EzgH8xs7FhXJ600Sclnoe/MJ0rphaw8NVN3L/4I69LEhGPhe2wTOdcMVAcelxlZuuBAcC6cC1TjhTw+/j5/InUNTZz+wvrKa6o4zsXjSIhzu91aSLigR45Dt/MhgBTgKXtvLYAWAAwaNCgnignpvh9xn9/djI5qfE8sGQb735Uzj3/PIXhualelyYiPSzsO23NLBV4AviGc67y6Nedc/c55wqdc4W5ubnhLicmxcf5+NHc8fz+ukKKK2q55O53eHbVHq/LEpEeFtbAN7MAwbB/xDn3ZDiXJcd3/ti+vPj12UwYkMHXH/uAx9/b5XVJItKDwnmUjgF/ANY75xaGazlyYvIzEnn4C9OZNTKXbz+xmrtf26wzc0ViRDhb+DOBzwHnmtnK0O3iMC5Puigx4Of+66Yxb8oAFr66iQV/XEFlXaPXZYlImIXzKJ13AF10NUIlxPlZeOUkJhVk8NPn13P5r5fwu89NY2TfNK9LE5Ew0Zm2MczMuH7mUB754gwq65qYe+8SXlhT7HVZIhImCnxhxrBsnvvqWYzKT+Mrj7zPbc9+SF2jrqIlEm0U+AIEd+Y+tuAMbpg5hIf+vp1L73mHD/dUeF2WiHQjBb60Sojzc+ul43j4xulU1DZy+b1LuG/xVh3FIxIlFPhyjNmn5fLSN2Zz7ug8/vOFDVzz+6UaX18kCijwpV1ZKfH89tpp/Hz+RFYXHeSiu97mpbXaoSvSmynwpUNmxpWFA3n+a7MYnJ3Ml//0Pt99cjU1DU1elyYiJ0GBL8c1JCeFv375E9x0znAee28Xc3+9hB3l1V6XJSInSIEvXRIf5+M7F47mjzfOoPRQPXPvXcLTH+ymsbnF69JEpIsU+HJCzhqZw9NfmUl+eiLf+PNKzv75GyxatpMmBb9IxFPgywkbkpPCC1+bxR8+X0h+RiLffXIN5y18i0eX7tQJWyIRzJyLnGOsCwsL3fLly70uQ06Ac46/rS/hntc3s7qogty0BL5w1lCuPWMwqQk9cn0dkZhmZiucc4VdmleBL93BOcfft5bz27e28vbmMjKSAnxp1lC+NHuYLqkoEkYnEvhqgkm3MDNmjshh5ogcVhcd5O7XtvDLVzbx3OpifnbFRCYNzPS6RJGYpz586XYTCzL5/ecL+cPnC9lf3cDce5fwlUdWsLrooNelicQ0delIWFXVNXL/29v4w9sfUd3QzJRBmfxk7njGD8jwujSRqKA+fIk4lXWNPLmiiHvf3Mr+6gY+d8Zgrv/EEIbkpHhdmkivpsCXiFVR08h/vbiev64ooqnFMbEgg3NH5/GZKQUMyk72ujyRXkeBLxGvpLKOv6wo4rX1+/hg10Gcg7NPy+Ub549kyqA+Xpcn0mso8KVXKa6o5S/Li3jo79vZX93AmcOy+dyZg/nk2L4E/DquQKQzCnzplarrm/jjuzv44z92sPtgLXlpCVw1fRCfPX0gAzKTvC5PJCIp8KVXa25xvLmxhIf/sYPFm0uBYHfPVacP5NzRfYmPU6tf5DAFvkSNXftreHz5Lh5fvot9lfVkJgf49IR+zJsygGmD+2BmXpco4ikFvkSdpuYWFm8u5ekP9vDKur3UNbYwMCuJyycP4MrCgQzM0hE+EpsU+BLVDtU38fLavTy9cjdLtpQBwevwnjksmzOHZzNhQIZa/hIzNJaORLXUhDiumFbAFdMK2HOwlj+9u4Pn1xTz5sZgf3//jEQuGJfPuaPzGJSVTP/MJPX7i6AWvkSRskP1vLmxlJfW7uXtzaXUNwUvypIc72fWyBwKB2cxul8ao/LTyE1N0K8AiQoR0aVjZg8AlwAlzrnxXXmPAl+6S3V9Eyt3HaS4oo4Pdh7gzY2l7D5Y2/p63/QEPjE8h08Mz2bmiBz667BP6aUiJfBnA4eAhxX4Egn2VzewYW8l64ur+GDnAf6+tZz91Q0AjMxLZc7oPM45LZcWB+uKK+ibnsiEARkMy031uHKRjkVE4IcKGQI8p8CXSNTS4tiwt4p3tpTy1qZSlm3bT2Pzsf8fRvVN45Nj+zJjWBbTBvchOV67viRyKPBFTkJ1fRNLt5UT5/Mxrn86pYfqWfrRfp5bvYf3dx6kucUR5zMmFGQwe2Qu54zKZWJBJn6f9gWId3pV4JvZAmABwKBBg6bt2LEjbPWInKxD9U2s2HGAZdvKWbKlnFVFwQHf+iQHmDUyl1kjcxjXP4PheSm6pKP0qF4V+G2phS+9xYHqBt7eUsabG0tYvKmUskPBfQF+nzE0J4VRfdMYnZ/GpIGZTB6USXpiwOOKJVrpOHyRMOuTEs9lk/pz2aT+tLQ4tpQeYsPeKjbtrWLD3irW7K7g+TXFAJgFdwpPHpjJhIJMZo/MYXC2LvwiPS9sgW9mi4BzgBwzKwJudc79IVzLE/GKz2ec1jeN0/qmwaSPp1fVNbJqVwUrdhzg/Z0H+Nv6Eh5fXgTAiLxUzhuTx5nDsjmtbxrxcT4CPh8ZyfolIOGjE69Eeohzjp37a3h9QwmvrS9h6bbyY44KykmNZ1R+GqP6pjMqP5XR+emMyk8jMaD9AtK+iOnDP1EKfIklVXWNrNtTyeaSQ7Q4R11jM5v3HWLjvio27auirjF4prDfZ4zMS2XCgAwmFGQwrn8GY/ulkxSvjYCoD1+kV0hLDDBjWDYzhmUf81pzi2PX/hrWF1eydk8Fa3ZX8tqGEv6yItgl5PcZI3JTGT8gg/ED0hk/IIPhuan0SQ5oyAjpkFr4Ir2Ec47iijrW7K5gbei2ZnclZYfqW+dJS4xjSHYKg7OTGZwdHDiuf0YS+RmJ9MtIJCNJG4Rooxa+SBQys2CAZybxqXH5QHAjsK+ynnXFFWwrq2FHeTXby2tYs7uCF9fupbnlyAZdYsBHv4wk+qYnkJUST2ZyPH2SA+RnJDGwTxKDspIZ0CdJ5xJEKQW+SC9mZuRnJJKfkXjMa03NLZQeqqe4oo69FXWh+1qKK+rYV1nHpn2HOFjTwIGaxiM2DD6DQVnJjMhLZXhu6JaXyojcVB1F1Msp8EWiVJw/2Jrvl9H5SKAtLY6Sqnp2Hahh1/4atpdVs7W0mi0lh1i8qYyG5pbWeTOTA/TPSCIlwU9iwE92Sjw5qQnkpCWQk5pA3/QERuenk5uWEO6vJydBgS8S43y+j38lnD4k64jXmlscRQdq2FJyiK2lh9i5v4Y9B+uobWimsq6JbWXVlB2qbz2i6LC0xDhyUxMYkZfKuP4ZpCT4SYjzEfD7yElNYHB2MgOzknW4aQ9T4ItIh/w+Y3B2CoOzUzhvTN9253HOUd3QTPmhenYfrGXdnkp27a+h9FA96/ZU8sq6fR1+fn56IoOyk+mTHCDg9xHv95GSEMfQnBSG56UyLCeF/IxEAn5dsaw7KPBF5JSYGakJcaQmxDE4O4VPDM854vW6xmbqm1pobG6hoamFvZV17CyvYUd5DTv317BzfzXby2qCrze3UFHbSFVd0xGfkZkcCHYdpcaTnZpAemIcKfFx9E1PpG9GIvnpieSmJZCdGk9aQpyOROqAAj8WffAnMB+k5UNav+B9YmZw0BeRbpYY8B/RddM/M4mpg/p0OL9zjvLqBraWHGJraTUlVXWUHaqnrKqBstCvhqq6Jg7VNx7TlQQQ8Bt90xMZmZdKTmoCCQEf8X4/qQl++mcmkZYYwAxy0xIo6JNEXlpizAxxrcCPRa/fDlV7jpwWl3TkBuDo+/T+wft4Dfol4WVmodZ8QrsnpR3mnKOyrol9lcGjkMqr6yk/1EDZoQb2HKxl074q1hdX0RD6ZVHd0ER7px0F/Ea/jCQGZCaRkRQgNTGOgj5JDM5OZlBWCoOykslJjY+KXw068SoWNdTAob1QtReqiqGyOHhX6QHYAAAL+ElEQVRf1WZaVTE01hz73oT00IagvY1D/49fi9NRGhJZmpqD3Uk1Dc00h45MKjpQw+4DtRQdqGX3wVqq6hqprG1iX1XdERuH5Hg/g7KCJ7JlJgdIDPjxGfjNMDP8vuDNQtN8Zvh8RkKcj9SEOFIS4khN8JOeGCA9KUBaYhzpicH7uFPcP6ETr6Rz8cmQNSx464hzUF915AagdaMQut/5j+B9c8Ox70/KameD0OaXQlo/SMkDv/4JSs+I8/so6JPc+nxMv47nrWtspuhALbv2B09m27m/lp37q9lzsI6Ne6uob2qhxTmaWxwtztHS4mhx0OwcrnV61+p64qYzmTY46/gzdgP9b5P2mUFievCWe1rH8zkHtQegcs+RG4O29yXr4NA+cEf3txqk5nXwK6HNxiI5G3w6SkN6TmLAz4i8VEbknfwF7J1z1De1UF3fRHV9M5V1wZ3RVaH7w88HttkIhZsCX06NGSRnBW/5nVzYrKUZqkvb3yBU7YWK3VC0HGrKjn2vLw5S89v/laAdzxKhzKx1h3X2yW83upUCX3qGz/9xYHemqSH4a+CYjULoVr4Ftr8NdRXHvjcuseNfCW3vEyLkf59ID1PgS2SJi4fMgcFbZ46347l4FWx66SR2PLe5145niTIKfOmdTnjHcwf7GLq64zkxA/zxwZ3M/vjgzdfmcYfTA6FbPPgCRz73B0LT4jue7vOrm0q6jQJfoteJ7Hiu2d/x/oWqPXBwR3Cj0NwUvG9phObG0OOmjj/71L/EiW0gjtjAdGWD1B3T29moaSMVkRT4ImaQkh28dbbjuSPOtQn/NhuC5sYTmN7mtZZ25uvS9CZoqP54I9TccORG6ujp4WQ+IBT6reFvRz4++rWTes4Jzh8Jy2/nteRsuPFFwk2BL3KqzIL7HuLiva6k65wLHjnV3oagvV8xnW682tkgtTQfXhAfn8HkPl52l55zgvOH6zknOH8nzzt6LTGdnqDAF4lFZqHumTig544DF2/pbBYRkRihwBcRiREKfBGRGKHAFxGJEQp8EZEYocAXEYkRCnwRkRihwBcRiRERdYlDMysFdpzk23OAdgZTjziqs/v1llpVZ/fqLXVCeGsd7JzL7cqMERX4p8LMlnf1uo5eUp3dr7fUqjq7V2+pEyKnVnXpiIjECAW+iEiMiKbAv8/rArpIdXa/3lKr6uxevaVOiJBao6YPX0REOhdNLXwREemEAl9EJEb0+sA3swvNbKOZbTGzW7yu5zAzG2hmb5jZOjP70My+Hpp+m5ntNrOVodvFXtcKYGbbzWxNqKbloWlZZvaqmW0O3ffxuMZRbdbbSjOrNLNvRMo6NbMHzKzEzNa2mdbuOrSgu0P/bleb2VSP6/yFmW0I1fKUmWWGpg8xs9o26/a3HtfZ4d/azL4bWp8bzexTHtf55zY1bjezlaHpnq1PAJxzvfYG+IGtwDAgHlgFjPW6rlBt/YCpocdpwCZgLHAb8O9e19dOvduBnKOm/Ry4JfT4FuBnXtd51N9+LzA4UtYpMBuYCqw93joELgZeJHiB0zOApR7XeQEQF3r8szZ1Dmk7XwSsz3b/1qH/W6uABGBoKBf8XtV51Ou/An7o9fp0zvX6Fv50YItz7iPnXAPwGDDX45oAcM4VO+feDz2uAtYDA7yt6oTNBf439Ph/gcs9rOVo5wFbnXMne2Z2t3POLQb2HzW5o3U4F3jYBb0LZJpZP6/qdM694pxrCj19FyjoiVo608H67Mhc4DHnXL1zbhuwhWA+hF1ndZqZAVcCi3qiluPp7YE/ANjV5nkRERiqZjYEmAIsDU3619BP5we87iZpwwGvmNkKM1sQmtbXOVccerwX6OtNae26iiP/E0XiOoWO12Ek/9u9keCvj8OGmtkHZvaWmc3yqqg22vtbR+r6nAXsc85tbjPNs/XZ2wM/4plZKvAE8A3nXCXwG2A4MBkoJvhzLxKc5ZybClwE/IuZzW77ogv+Ho2IY3jNLB64DPhLaFKkrtMjRNI67IiZfR9oAh4JTSoGBjnnpgA3A4+aWbpX9dFL/tZtXM2RDRNP12dvD/zdwMA2zwtC0yKCmQUIhv0jzrknAZxz+5xzzc65FuB+euhn5/E453aH7kuApwjWte9wN0PovsS7Co9wEfC+c24fRO46DeloHUbcv10zux64BLgmtHEi1EVSHnq8gmDf+Gle1djJ3zoS12cc8Bngz4eneb0+e3vgvweMNLOhoVbfVcCzHtcEtPbd/QFY75xb2GZ6237aecDao9/b08wsxczSDj8muANvLcF1+fnQbJ8HnvGmwmMc0WqKxHXaRkfr8FngutDROmcAFW26fnqcmV0IfBu4zDlX02Z6rpn5Q4+HASOBj7ypstO/9bPAVWaWYGZDCda5rKfrO8r5wAbnXNHhCZ6vT6/2FnfXjeDRDpsIbim/73U9beo6i+DP99XAytDtYuCPwJrQ9GeBfhFQ6zCCRzisAj48vB6BbOA1YDPwNyArAmpNAcqBjDbTImKdEtwIFQONBPuQv9DROiR4dM69oX+3a4BCj+vcQrAP/PC/1d+G5r0i9G9iJfA+cKnHdXb4twa+H1qfG4GLvKwzNP0h4MtHzevZ+nTOaWgFEZFY0du7dEREpIsU+CIiMUKBLyISIxT4IiIxQoEvIhIjFPjSo8ysOTRK4Coze9/MPnGc+TPN7Ctd+Nw3zczzi0RHEjN7yMzme12HRA4FvvS0WufcZOfcJOC7wH8dZ/5M4LiB75XQ2ZQivYICX7yUDhyA4JhDZvZaqNW/xswOj3p6BzA89KvgF6F5vxOaZ5WZ3dHm8/7JzJaZ2abDg1KZmT801vt7oQG3/l9oej8zWxz63LXtDWIVGsf856FlLTOzEaHpD5nZb81sKfBzC455/3To8981s4ltvtODofevNrMrQtMvMLN/hL7rX0LjLWFmd1jw+gmrzeyXoWn/FKpvlZktPs53MjP7tQXHg/8bkNedfyzp/dQ6kZ6WZMGLQSQSvGbAuaHpdcA851ylmeUA75rZswTHkB/vnJsMYGYXERwKd4ZzrsbMstp8dpxzbroFL4pxK8FT279AcNiC080sAVhiZq8QHOPkZefc7aFT3ZM7qLfCOTfBzK4D7iQ41gwEx2r5hHOu2czuAT5wzl1uZucCDxMc3OsHh98fqr1P6Lv9B3C+c67azL4D3Gxm9xIcKmC0c85Z6AIkwA+BTznndreZ1tF3mgKMIjg2fF9gHfBAl/4qEhMU+NLTatuE95nAw2Y2nuBQA/9pwVE6WwgObdvecMznAw+60Hgvzrm245A/GbpfQfBCExAcF2him77sDILjl7wHPGDBAe6eds6t7KDeRW3u/7vN9L8455pDj88ieMo8zrnXzSzbgiMgnk9wfCdCrx0ws0sIBvKS4HBLxAP/ACoIbvT+YGbPAc+F3rYEeMjMHm/z/Tr6TrOBRaG69pjZ6x18J4lRCnzxjHPuH6EWby7BcYZygWnOuUYz207wV8CJqA/dN/Pxv20Dvuqce/nomUMbl08TDNSFzrmH2yuzg8fVJ1hb62KBV51zV7dTz3SCF3aZD/wrcK5z7stmNiNU5wozm9bRd7IIuVymRC714YtnzGw0wUsVlhNspZaEwn4OwUsXAlQRvETkYa8CN5hZcugz2nbptOdl4KZQSx4zO82Co4MOJnhhivuB3xO8RF17Ptvm/h8dzPM2cE3o888Bylzw2gevAv/S5vv2IXg1qZlt9gekhGpKJTgg3AvAN4FJodeHO+eWOud+CJQSHAK43e8ELAY+G+rj7wfMOc66kRijFr70tMN9+BBsqX4+1A/+CPB/ZrYGWA5sAHDOlZvZEgteIPpF59y3zGwysNzMGoAXgO91srzfE+zeed+CfSilBC8zeA7wLTNrBA4B13Xw/j5mtprgr4djWuUhtxHsHloN1PDxcMg/Be4N1d4M/Mg596QFx51fFOp/h2CffhXwjJklhtbLzaHXfmFmI0PTXiM4ounqDr7TUwT3iawDdtLxBkpilEbLFOlAqFup0DlX5nUtIt1BXToiIjFCLXwRkRihFr6ISIxQ4IuIxAgFvohIjFDgi4jECAW+iEiM+P/GeoP9REZNowAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.recorder.plot_losses()\\n\",\n    \"learn.recorder.plot_metrics()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\\n\",\n      \"Min numerical gradient: 1.00E-05\\n\",\n      \"Min loss divided by 10: 9.12E-08\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8XHW9//HXJ5OtaZOu6ZbuG6VAoVDaAsomaHGhIlwvoD/FrVcRN64LXH2gF/Xqxev1ehEX4LKoCEJRqVJtcaGsLV0pNN3SdEu6JF2SJm3TJDOf3x8zDUNI2rTJyZnJvJ+PxzyYc+Y7cz7fpMw753zP+R5zd0RERACywi5ARERSh0JBRERaKBRERKSFQkFERFooFEREpIVCQUREWigURESkhUJBRERaKBRERKRFdtgFnKxBgwb5mDFjwi5DRCStrFixYq+7F5+oXdqFwpgxY1i+fHnYZYiIpBUz29aRdjp8JCIiLRQKIiLSQqEgIiItFAoiItJCoSAiIi0UCiIi0kKhICIiLRQKIiIpLhZzvvt0Ka9X1ga+LYWCiEiKW7Z1P/c9v4WNe+oC35ZCQUQkxf1uZSUFuRFmnzk08G0pFEREUlhDU5SnX9vFVWcOoyA3+JmJAg0FM5ttZhvMrMzMbmvj9dFm9jczW2Nmz5rZiCDrERFJN4tK91B/tJlrzy3plu0FFgpmFgHuAa4CpgA3mNmUVs3+C/ilu08F7gS+F1Q9IiLp6MkVFQzvm8+scQO7ZXtB7inMAMrcvdzdG4HHgDmt2kwB/p54/o82XhcRyVhVBxt4flM115xbQlaWdcs2gwyFEmBH0nJFYl2yV4EPJJ5fAxSa2Vvi0MzmmtlyM1teXV0dSLEiIqnmqdU7iTlcM637jqyHPdD8ZeASM1sFXAJUAtHWjdz9Xnef7u7Ti4tPeI8IEZEe4cmVFZw9sh8TBvfptm0GGQqVwMik5RGJdS3cfae7f8DdpwFfT6yrCbAmEZG0sHZnLet313FdNw0wHxNkKCwDJprZWDPLBa4H5ic3MLNBZnashtuBBwKsR0QkbfxuZSU5EeO9U4d363YDCwV3bwZuARYC64DH3X2tmd1pZlcnml0KbDCzjcAQ4LtB1SMiki6aozGeWl3J5ZMH0793brduO9ArIdx9AbCg1bo7kp7PA+YFWYOISLp5blM1e+sbufbc7r90K+yBZhERaeXJlZX0L8jh0tMGd/u2FQoiIimk5nAjz5Tu4eqzh5Ob3f1f0QoFEZEU8vPF5TRFY9w4c3Qo21coiIikiJ01R3jwxS1cM62E04YWhlKDQkFEJEX8z1834g63XjkptBoUCiIiKWDjnjrmrajgIxeMZkT/gtDqUCiIiKSAu/6ynt552Xz2sgmh1qFQEBEJ2Stb9vPXdVV85tLx3X6xWmsKBRGRELk73//zOoYW5fOxC8eGXY5CQUQkTAvX7mHl9hq+dOVEeuVGwi5HoSAiEpbmaIy7Fq5nwuA+oUxp0RaFgohISB5Zup3y6kN8bfZksiOp8XWcGlWIiGSY/Yca+eGiDbxtwiCuOL375zhqj0JBRCQEP1i4gcONUb519RTMuuf+yx2hUBAR6WavVdTy2LLtfPTCMUwYHM50Fu1RKIiIdKNYzPnm/NcZ2DuPL1wxMexy3kKhICLSjX6/qpKV22v42uzTKMrPCbuct1AoiIh0k7qGJr7/l/WcM7JfypyC2lqgt+MUEZE33P33MvbWH+X+j0wnKyt1BpeTaU9BRKQbbN17iAde2MIHzxvJ2SP7hV1OuxQKIiLdYOHa3TTHnC9emXqDy8kUCiIi3WDplv2MK+7NsL69wi7luBQKIiIBi8acZVv2M3PswLBLOSGFgohIwNbtOkjd0WZmjRsQdiknFGgomNlsM9tgZmVmdlsbr48ys3+Y2SozW2Nm7w6yHhGRMCwp3weQ2XsKZhYB7gGuAqYAN5jZlFbNvgE87u7TgOuBnwZVj4hIWJZu2c/ogQUM7ZsfdiknFOSewgygzN3L3b0ReAyY06qNA0WJ532BnQHWIyLS7WIxZ9nW/cwcm/qHjiDYi9dKgB1JyxXAzFZtvgUsMrPPAb2BKwKsR0Sk223YU0fN4aa0OHQE4Q803wA85O4jgHcDvzKzt9RkZnPNbLmZLa+uru72IkVETtXSY+MJaTDIDMGGQiUwMml5RGJdsk8AjwO4+8tAPjCo9Qe5+73uPt3dpxcXFwdUrohI11tSvp+Sfr0Y0b8g7FI6JMhQWAZMNLOxZpZLfCB5fqs224F3AJjZ6cRDQbsCItIjuDuvbN2fNnsJEGAouHszcAuwEFhH/CyjtWZ2p5ldnWj2r8CnzOxV4FHgJnf3oGoSEelOm6rq2X+okVnj0mM8AQKeJdXdFwALWq27I+l5KXBRkDWIiITl2HjCrDQZZIbwB5pFRHqsJVv2M6xvPiMHpPZ8R8kUCiIiAXB3lpbHr08wS817J7RFoSAiEoDyvYfYW3+UmWk0ngAKBRGRQCwt3w+QNlcyH6NQEBEJwNIt+yguzGPsoN5hl3JSFAoiIl0sXccTQKEgItLltu8/zO6DDWk3ngAKBRGRLveP9VUAzEqz8QRQKIiIdKnmaIz/e3EL00b1Y8LgPmGXc9IUCiIiXWjB67vZsf8In75kfNqNJ4BCQUSky7g7P392M+OKe3Pl6UPCLueUKBRERLrI85v2UrrrIP9y8TiystJvLwEUCiIiXebnizczpCiP908rCbuUU6ZQEBHpAmsqanhp8z4+ftFY8rIjYZdzyhQKIiJd4BeLyynMz+bGmaPCLqVTFAoiIp20de8h/vz6Lj48azSF+Tlhl9MpCgURkU669/lysiNZfOyiMWGX0mkKBRGRTqiqa2DeigquPXcEgwvzwy6n0xQKIiKnKBZzvvnUWpqjMeZePC7scrqEQkFE5BTdtXADf359N7dfdXraTZHdHoWCiMgpePSV7fx88WY+PGsUn3z72LDL6TIKBRGRk/Tcxmq+8YfXuWRSMd963xlpOcdRexQKIiInYcPuOm5+ZCUTB/fhJzdOIzvSs75Ge1ZvREQCVFXXwMcfWkbvvAgPfuz8tL8moS3ZYRcgIpIu7v5bGXvrj/LkZy5kWN9eYZcTiED3FMxstpltMLMyM7utjdd/ZGarE4+NZlYTZD0iIqcqFnMWle7m8smDObOkb9jlBCawPQUziwD3AFcCFcAyM5vv7qXH2rj7l5Lafw6YFlQ9IiKd8VplLXsOHuWKNL1PQkcFuacwAyhz93J3bwQeA+Ycp/0NwKMB1iMicsqeKd1DJMu4fPLgsEsJVJChUALsSFquSKx7CzMbDYwF/t7O63PNbLmZLa+uru7yQkVETuSZ0j1MH92f/r1zwy4lUKly9tH1wDx3j7b1orvf6+7T3X16cXFxN5cmIplu+77DbNhTx5VTevahIwg2FCqBkUnLIxLr2nI9OnQkIilqUeluAN45ZWjIlQQvyFBYBkw0s7Fmlkv8i39+60ZmNhnoD7wcYC0iIqfsr+v2cNqQQkYNLAi7lMAFFgru3gzcAiwE1gGPu/taM7vTzK5Oano98Ji7e1C1iIicqprDjSzbeiAjDh1BwBevufsCYEGrdXe0Wv5WkDWIiHTG39dXEY15xoRCqgw0i4ikpGdK9zC4MI+zevAFa8kUCiIi7WhoirJ4YzVXTBlCVlbPmQn1eBQKIiLteHnzPg43RjPm0BEoFERE2rWodA+9cyNcOH5g2KV0G4WCiEgbYjHnr+v2cMlpxeRlR8Iup9soFERE2vBqRQ3VdUcz6tARKBRERNr0l7W7iWQZl53WsyfAa02hICLSSv3RZh57ZQeXTx5Mv4KePQFeawoFEZFWfrN0G7VHmvjsZRPCLqXbKRRERJI0NEW57/ktvG3CIM4Z2S/scrqdQkFEJMkTKyqorjvKzZeND7uUUHQoFMxsvJnlJZ5famafN7PMi1AR6dGaojF+sXgz00b144JxmXNtQrKO7ik8CUTNbAJwL/H7JPwmsKpERELwx1d3UnHgCJ+9dAJmmTGtRWsdDYVYYirsa4C73f0rwLDgyhIR6V6xmPPTZzczeWhhj78P8/F0NBSazOwG4KPAnxLrcoIpSUSk+y0q3UNZVT2fuXR8xkx+15aOhsLHgAuA77r7FjMbC/wquLJERLqPu/PTZ8sYPbCA95yV2QdBOnSTHXcvBT4PYGb9gUJ3/88gCxMR6S4vlO1lTUUt3//AWWRHMvukzI6effSsmRWZ2QBgJXCfmf13sKWJiHSP+57fwpCiPK45tyTsUkLX0Ujs6+4HgQ8Av3T3mcAVwZUlItI9Kg4c5vlN1Vx//qiMmg21PR0NhWwzGwZ8kDcGmkVE0t6TKyoBuO68ESFXkho6Ggp3AguBze6+zMzGAZuCK0tEJHixmPPEih1cNH4QIwcUhF1OSujoQPMTwBNJy+XAtUEVJSLSHV4u30fFgSN85V2nhV1KyujoQPMIM/u9mVUlHk+amfa1RCSt/XbZDorys3nXGUPDLiVldPTw0YPAfGB44vHHxDoRkbRUe7iJv6zdzfunlZCfowHmYzoaCsXu/qC7NyceDwHFJ3qTmc02sw1mVmZmt7XT5oNmVmpma81M8ymJSLd46tVKGptjfHD6yLBLSSkdGlMA9pnZh4FHE8s3APuO9wYziwD3AFcCFcAyM5ufuBDuWJuJwO3ARe5+wMwyd8IREelWjy/fwZRhRZxZ0jfsUlJKR/cUPk78dNTdwC7gOuCmE7xnBlDm7uXu3gg8Bsxp1eZTwD3ufgDA3as6WI+IyClbu7OW1ysP8s/nay+htQ6Fgrtvc/er3b3Y3Qe7+/s58dlHJcCOpOWKxLpkk4BJZvaimS0xs9kdrlxE5BQ9sbyC3Ows5pwzPOxSUk5nJvm4tQu2nw1MBC4lfkjqvrZu3mNmc81suZktr66u7oLNikimamiK8vtVlbzrjKH0K8gNu5yU05lQONHcspXEb8ZzzIjEumQVwHx3b3L3LcBG4iHxJu5+r7tPd/fpxcUnHN8WEWnXM6V7qD3SxD9rgLlNnQkFP8Hry4CJZjbWzHKB64mf1prsD8T3EjCzQcQPJ5V3oiYRkXY1RWPc/3w5Jf16ceH4zLzd5okc9+wjM6uj7S9/A3od773u3mxmtxCfHiMCPODua83sTmC5u89PvPZOMysFosBX3P24ZzWJiJyqHz2zkVcravnfG6Zl9I10jue4oeDuhZ35cHdfACxote6OpOdOfGyiK8YnRETa9fyman62eDPXnz+Sq8/WAHN7MvtuEiKSEarqGvjSb1czcXAfvvm+M8IuJ6V19OI1EZG0FIs5t/72VeqPNvObT82iV66mtDgehYKI9Gg/W7yZF8r28p/XnsWkIZ06Ip4RdPhIRHqsZVv388NFG7j67OGa46iDFAoi0iM1NEW59fHVjBxQwHevORMznW3UETp8JCI90sMvbWXH/iP8+hMzKczPCbuctKE9BRHpcfbVH+Unfy/j8smDedvEQWGXk1YUCiLS4/z4b5s43BTl3949OexS0o5CQUR6lLKqOh5Zup0bZ4xiwmCdbXSyFAoi0qN8b8F6CnIifPGKt8ytKR2gUBCRHuOFTXv52/oqbrl8AgP75IVdTlpSKIhIjxCNOd95upQR/Xvx0QvHhF1O2lIoiEiPMG/FDtbvruO2qyaTn6OpLE6VQkFE0l405vzPXzdx7qh+vOesYWGXk9YUCiKS9p7bVM2u2gbmXjxOVy53kkJBRNLevOUVDOidy+WTh4RdStpTKIhIWqs53MgzpXuYc85wcrP1ldZZ+gmKSFp7avVOGqMxrjtvRNil9AgKBRFJa/NWVDBlWBFnDO8bdik9gkJBRNLW+t0Hea2yln+arr2ErqJQEJG09cTyCnIixpxzSsIupcdQKIhIWmqKxvjDqkreMXkIA3rnhl1Oj6FQEJG09I/1Vew71KhDR11MoSAiaemJFRUUF+ZxyaTisEvpURQKIpJ29tYf5R/rq/jAtBKyI/oa60qB/jTNbLaZbTCzMjO7rY3XbzKzajNbnXh8Msh6RKRn+MOqSppjrmsTApAd1AebWQS4B7gSqACWmdl8dy9t1fS37n5LUHWISM8SizmPL9/B2SP7MXGI7qzW1YLcU5gBlLl7ubs3Ao8BcwLcnohkgHkrKti4p56bLhwddik9UpChUALsSFquSKxr7VozW2Nm88xsZFsfZGZzzWy5mS2vrq4OolYRSQMHDjXyvT+v4/wx/Zlztq5NCELYIzR/BMa4+1TgGeDhthq5+73uPt3dpxcX60wDkUx118L1HGxo5tvvP5OsLE2RHYQgQ6ESSP7Lf0RiXQt33+fuRxOL9wPnBViPiKSxldsP8OgrO/j4RWOYPLQo7HJ6rCBDYRkw0czGmlkucD0wP7mBmSXfIulqYF2A9YhImmqOxvjG719naFE+X7hiUtjl9GiBnX3k7s1mdguwEIgAD7j7WjO7E1ju7vOBz5vZ1UAzsB+4Kah6RCR9/WrJNkp3HeSnHzqXPnmBfW0JAYYCgLsvABa0WndH0vPbgduDrEFE0lvVwQZ+uGgjF08q5qozh4ZdTo8X9kCziMhxfefpdTRGY9x59Rm6/3I3UCiISMpavLGa+a/u5NOXjGfMoN5hl5MRFAoikpIOHW3m3373GuOLe/PZy8aHXU7G0IiNiKSkHy7aSGXNEZ749AXkZUfCLidjaE9BRFLOqu0HePClLfy/WaM5f8yAsMvJKAoFEUkpjc0xbnvyNYYW5fPV2aeFXU7G0eEjEUkpv1i8mQ176vi/j06nMD8n7HIyjvYURCRllFXVcfffy3jv1GG84/QhYZeTkRQKIpISYjHntidfo1duhG++74ywy8lYCgURSQmLN1azfNsBbr9qMsWFeWGXk7EUCiKSEh54cQuDC/P4wLm6xWaYFAoiErqyqjqe37SX/zdrNLnZ+loKk376IhK6B1/cSm52FjfOHBV2KRlPoSAioao93MTvVlYy5+zhDOyjsYSwKRREJFSPLdvOkaYoH7tobNilCAoFEQlRczTGL1/exsyxA5gyXLfYTAUKBREJzTOle6isOaK9hBSiUBCR0Dz44lZG9O/FlVN09XKqUCiISCher6zlla37+egFY4hk6Y5qqUKhICKhePDFrRTkRvjg+SPDLkWSaJZUEelWDU1RnlpdyR9f3ck/nz+Svr00E2oqUSiISLeoOdzII0u38+CLW9lbf5QzhhfxmUt1m81Uo1AQkcA0NEVZse0Az5Tu4fHlOzjcGOXiScX8y8XjuHD8QMw0lpBqFAoi0mUamqKs3H6AJZv3saR8P6t31NAYjZGdZVx99nA+dfE4Th+m6xFSWaChYGazgR8DEeB+d/9+O+2uBeYB57v78iBrEulp9tYfZWfNEZpjTjTmNEed5liMaMxxwN1xh5hDQW6EoX3zGdY3n4Lck/vfPxZzslqdJRSLOet2H+SFTXt5oWwvy7bup6EpRpbBmSV9+dhFY5g1biDTx/TXXdTSRGChYGYR4B7gSqACWGZm8929tFW7QuALwNKgahFJJdGYY/CWL9iTtWlPHb94rpynVlfSFPWTfn9hfjbD+uYzon8BEwf3YfzgPkwc3IcJg/uQE8li7c5aVm2vYfWO+KPiwBGys4z8nAh52Vnk50Q43NjMgcNNAEwc3Ifrzx/F2yYMYsa4ARQpBNJSkHsKM4Aydy8HMLPHgDlAaat23wb+E/hKgLWIhG5v/VF+/uxmfr10Gw1NMXIiRm4ki9zsrJbpoqMxiHn8L/6YO6MGFHDOyH5MG9Wfc0b2Y9yg3qzYfoBfLN7MX9dVkZ+TxYdmjuZtEwaRHTGys7KIZBnZESPLDDPi/wXMoP5oM3sONrC79ii7a4+w+2AD2/Yd5oWyvTQ2x1pqjWQZ0Vg8aIb3zeecUf34wLQSmmNOQ1OMo81RGprih4VmjB3ARRMGMbRvfhg/VuliQYZCCbAjabkCmJncwMzOBUa6+9NmplCQHunAoUZ+8Vw5D7+0laPNUeacU8LogQU0Nsc42hyjMfGA+N5DJAsiiQHYsup6nlq9k0eWbgegV06EI01R+hfk8MUrJvKRC8YwoHdup2uMxpwd+w+zqaqeTVV1HD4a5awRfZk2sh+Di/Rln0lCG2g2syzgv4GbOtB2LjAXYNQozbcu3Wt3bQP1R5vjX97R+Bd4czRGXk4WedkR8nMi5OdkkRvJ4mBDM7VHGqk53ETN4SY2VdXz6yXbONTYzPumDucLV0xkfHGfk9p+LOZsrq5n1fYaXqusZeKQPvzTeSPplRvpsj5Gsowxg3ozZlBvTTmR4YIMhUog+VLFEYl1xxQCZwLPJk5LGwrMN7OrWw82u/u9wL0A06dPP/mDpyKnwN359z+W8tBLWzv1OVedOZQvXjGJ04YWntL7s7KMiUMKmTikUFf/SuCCDIVlwEQzG0s8DK4Hbjz2orvXAoOOLZvZs8CXdfaRpIq7Fm7goZe2csOMUcwaN4C8xLH/vOwIkSzjaHOMhqYoDU1RjjbF9yIK87Pp2yuHfgW59OuVQ//eubpiV9JKYKHg7s1mdguwkPgpqQ+4+1ozuxNY7u7zg9q2SGfd848yfvbsZj40cxTfef+ZushKMkagYwruvgBY0GrdHe20vTTIWkQ66uGXtvKDhRu4ZloJ356jQJDMollS5c02b4abb4aiIsjKiv/35pvj63uAWMwp3XmQ+54r59t/KuU3S7ezfOt+ao/Ez7Wft6KCb85fyzunDOEH103t9LUEIulG01xksN21DSzdso8l5fvYW9/Irc2bOf1zH4empvgDoK4O7r8fHn4Y5s2Dq64Kt+hTsK/+KH9dt4cXyvbxUtle9h1qBCA3O+tN5+YPLsxjb/1R3j5xEHffOI3siP5mksyjUMgwZVX13P98OUvK97F132EgfmXruIN7GH33XGg++tY3HQuJ666DNWtgfHrMbJl8fcCRpiiDC/O4ZFIxF00YxEUTBjG4MI/KmiNsqqpj4556Nu6pIz8nwjfeczp52V13uqdIOlEoZJB1uw7yofuX0tgcY9a4AXx41mhmjRvI6cOK8Jtvxoge/wOamuBHP4Kf/KR7Ck6oOtjA3X8v40hTlFnjBjJr3ABG9C9ot33tkSbuf76cB17YwuGmKO+bOpx/uWQcU4YVvWV8YOSAAkYOKODyyTo3XwTA3NPrtP/p06f78uU6a/Vkrdt1kBvvW0JedoTH5s5izKDeb25QVBQ/VHQiRUVQWxtMka00R2M8/PI2fvTMRhqbYxTkRahJzLNT0q8Xs8YNpKRfPg2JU0OPNEY50hRl8cZq6hqaO319gEhPYmYr3H36idppTyEDlO48yIfuX0J+ToRHP9VGIADU13fos7yujnsXb47Pr5NlRCJZRMxa5us59gAYNbCA04cWMaJ/rzcN2FbVNfD8xr0s3ljNkvJ9DC7KY+bYgcwaN5AZYwbQtyCHpeX7uOOptWzYU8clk4r51tVnMHpAARur6liyeR9Lt+znHxuq2H+okfyc+ORs+dnxK4svGj+Iz71jAmcM79slPz+RTKI9hR4uORAemzuL0QPbCATo8J5CXW4BZ33p8ZOqoXduhNOGFjJ2UB/W7TpI6a6DAAzqk8sF4wdRXdfAyu01NDbHMIOxA3tTvvcQJf16ccf7pvDOKUPaPC302L9dnTIqcmLaUxBer6zlw/+3lIKcCI8eLxAAPvzh+FlGx846aktODgWfuInSO98Vn7s/6i1z+GclJnHLzsoiEonPsLll7yHW7zrI+t11rNt1kMUbqxhf3Ievzj6NiycWM2VYUcseRENTlFd31LB0y35WbDvAe6cO4zOXTjju/D4KA5Gupz2FHuoPqyq57XdrGFCQe+JAgPh1CFOnwuHD7bcpKEirs49E5A0d3VPQidg9TFM0xr//cS1f/O1qpo7ox1O3vO3EgQDxL/p58+Jf/Dmt5urJyYmvnzdPgSDSwykUepCqugY+dN9SHnxxKx+/aCyPfHImxYV5Hf+Aq66K7wnMnfvmK5rnzo2vT8ML10Tk5OjwUQppjsaIOS134WrLwYYmVm47wK7aBppjTixxTL8xGuPBF7dQe6SJ739gKu+fVtKNlYtIqtNAc5p5bmM1tz7+KrVHGhlf3IfThxUxeWghk4cVUdfQxLIt+1m29QDrdx8k1k6OjxlYwIM3zWDK8KLuLV5EegyFQsiaojF+uGgjP1+8mUlD+nDdeSPYsPsgL2/ex+9XvXFPol45Ec4d3Y/Pv2MiM8YMYGxxbyJZ1nLGT1YWFORmE9EEbiLSCRkXCrGYU1lzhLKqejZX13OkMcpHLxpDUX77N0JpjsZYtaOGSUMKT/qGKUcao/xuVQV98rI5d1R/RvTv1XIq5Y79h/n8Y6tYtb2GG2aM4pvvm0J+zhunYB441Mj63XX0yo1wxvAicjRBm4gELGNC4Q+rKrn3uXLK99bT0BR702tPrKjg7humcfbIfm95X3l1Pbc+/iqrd9SQEzEunljMe88exhWnD6HwOEESizl/WF3JXX/ZwO6DDS3rBxfmcd7o/kwY3IeHX9qKO/zkxmm8d+rwt3xG/965XDB+YCd6LSJycjImFHKzsyguzOOC8QOZMLgPEwb3YXxxH7bsrefzj67m2p+9xNdmT+YTbxtLVpbh7vxqyTb+Y8E68rIjfHvOGWzff5in1+zib+uryM3O4uKJxZw/pj9ThhdxxvC+DOidC8DS8n185+l1vFZZy9QRffnx9efQJz+bldsOsGLbAVZsP8CfX9/N2SP6cvcN5zJqYPuTu4mIdCedfQTUHG7kq/PWsKh0D5edVsyX33Ua3//zep7ftJdLJhVz13VTGVKUD8T3AFbtqOHpNbtYVLqbigNHWj5nWN98hhTls3pHDcP65vO12ZO5+uzhbd6opfZwE4X52bqJi4h0i46efaRQSHB3fvnyNr779DoaozF65UT4+ntO50MzRx13OoUDhxop3XWQtTtrKd15kPK9h7jy9CF88u3jjjtFg4hId1IonKLXK2t5bNl2Pvm2cW3PJioikoZ0ncIpOrOkL98pOSvsMkREQqFzHEVEpIVCQUREWigURESkhUJBRERaBBoKZjbbzDaYWZmZ3dbG6582s9fMbLVRr6jjAAAIMklEQVSZvWBmU4KsR0REji+wUDCzCHAPcBUwBbihjS/937j7We5+DnAX8N9B1SMiIicW5J7CDKDM3cvdvRF4DJiT3MDdDyYt9gbS66IJEZEeJsjrFEqAHUnLFcDM1o3M7LPArUAucHlbH2Rmc4G5AKNGjeryQkVEJC70i9fc/R7gHjO7EfgG8NE22twL3AtgZtVmti3xUl+gto2PbWt963XHW05+PgjY29H+nEB79Z5K2870vfW6VOt7R9rrd9+x9ZnS9/Ze62h/Wy+nW/870veJHarA3QN5ABcAC5OWbwduP077LKD2JLdxb0fXt153vOVWz5d34c+kzXpPpW1n+n6C/obe96D7n8m/+57a91Pp/wleS6v+n8rvvr1HkGMKy4CJZjbWzHKB64H5yQ3MLDm53gNsOslt/PEk1rded7zl9j63s07mc0/UtjN9b70u1frekfb63Xdsfab0vb3XTqa/6dz/U/ndtynQCfHM7N3A/wAR4AF3/66Z3Uk8heeb2Y+BK4Am4ABwi7uvDaygU2Bmy70Dk0j1RJncd8js/mdy3yGz+x/omIK7LwAWtFp3R9LzLwS5/S5yb9gFhCiT+w6Z3f9M7jtkcP/TbupsEREJjqa5EBGRFhkVCmb2gJlVmdnrp/De8xJTcpSZ2f9a0u3YzOxzZrbezNaa2V1dW3XXCKLvZvYtM6tMTFOyOjGGlJKC+t0nXv9XM3MzG9R1FXedgH733zazNYnf+yIzG971lXdeQH3/QeL/9zVm9nsz69f1lYcno0IBeAiYfYrv/RnwKeLn+k489jlmdhnxK7XPdvczgP/qfJmBeIgu7nvCj9z9nMRjQZvvTg0PEUD/zWwk8E5geyfrC9JDdH3ff+DuUz0+Rc2fgDvaeX/YHqLr+/4McKa7TwU2Ej/dvsfIqFBw9+eA/cnrzGy8mf3FzFaY2fNmNrn1+8xsGFDk7ks8PgjzS+D9iZc/A3zf3Y8mtlEVbC9OTUB9TxsB9v9HwFdJ4Slagui7p8kUNQH1fZG7NyeaLgFGBNuL7pVRodCOe4HPuft5wJeBn7bRpoT4NB3HVCTWAUwC3m5mS81ssZmdH2i1XauzfQe4JbEb/YCZ9Q+u1EB0qv9mNgeodPdXgy40AJ3+3ZvZd81sB/AhUndPoS1d8e/+mI8Df+7yCkMU+jQXYTKzPsCFwBNJh4nzTvJjsoEBwCzgfOBxMxvnKX5aVxf1/WfAt4n/lfht4IfE/ydJeZ3tv5kVAP9G/NBRWumi3z3u/nXg62Z2O3AL8M0uKzIgXdX3xGd9HWgGHuma6lJDRocC8T2lmsRx0RYWn/Z7RWJxPvEvv+RdxBFAZeJ5BfC7RAi8YmYx4vOmVAdZeBfodN/dfU/S++4jfmw5XXS2/+OBscCriS+XEcBKM5vh7rsDrr2zuuLffbJHiF+PlPKhQBf13cxuAt4LvCPV/wA8aV01v0e6PIAxwOtJyy8B/5R4bsQHjNt63yvE9waM+O7iuxPrPw3cmXg+ifjMsBZ2P7up78OS2nwJeCzsPnZn/1u12QoMCruP3fi7n5jU5nPAvLD72I19nw2UAsVh9y2Qn1fYBXTzP45HgV3Ep9WoAD5B/K+9vwCvJn7Rd7Tz3unA68Bm4CfHvviJT/n968RrK4HLw+5nN/b9V8BrwBrif10N667+pEL/W7VJ2VAI6Hf/ZGL9GuJz6pSE3c9u7HsZ8T/+VicePw+7n1350BXNIiLSQmcfiYhIC4WCiIi0UCiIiEgLhYKIiLRQKIiISAuFgqQ9M6vv5u3db2ZTuuizoomZRl83sz+eaMZNM+tnZjd3xbZF2qJTUiXtmVm9u/fpws/L9jcmPAtUcu1m9jCw0d2/e5z2Y4A/ufuZ3VGfZB7tKUiPZGbFZvakmS1LPC5KrJ9hZi+b2Soze8nMTkusv8nM5pvZ34G/mdmlZvasmc1LzJ3/SNJ8+s+a2fTE8/rExHCvmtkSMxuSWD8+sfyamX2ng3szL/PGZHt9zOxvZrYy8RlzEm2+D4xP7F38INH2K4k+rjGzf+/CH6NkIIWC9FQ/Jn6vh/OBa4H7E+vXA29392nEZ/b8j6T3nAtc5+6XJJanAV8EpgDjgIva2E5vYIm7nw08R3z+/WPb/7G7n8WbZ9tsU2LunXcQvzIcoAG4xt3PBS4DfpgIpduAzR6/f8VXzOydxOf6nwGcA5xnZhefaHsi7cn0CfGk57oCmJI0E2ZRYobMvsDDZjaR+OyuOUnvecbdk+fef8XdKwDMbDXxOXReaLWdRt6YCHAFcGXi+QW8cd+F39D+zZd6JT67BFhH/AYuEJ9v5z8SX/CxxOtD2nj/OxOPVYnlPsRD4rl2tidyXAoF6amygFnu3pC80sx+AvzD3a9JHJ9/NunlQ60+42jS8yht///S5G8MzLXX5niOuPs5iam4FwKfBf6X+D0KioHz3L3JzLYC+W2834DvufsvTnK7Im3S4SPpqRYRn70TADM7NlVyX96YAvmmALe/hPhhK4DrT9TY3Q8Dnwf+1cyyiddZlQiEy4DRiaZ1QGHSWxcCH0/sBWFmJWY2uIv6IBlIoSA9QYGZVSQ9biX+BTs9MfhaSnyKc4C7gO+Z2SqC3VP+InCrma0BJgC1J3qDu68iPuvoDcTvUTDdzF4DPkJ8LAR33we8mDiF9Qfuvoj44amXE23n8ebQEDkpOiVVJACJw0FH3N3N7HrgBnefc6L3iYRNYwoiwTgP+EnijKEa0uQ2pSLaUxARkRYaUxARkRYKBRERaaFQEBGRFgoFERFpoVAQEZEWCgUREWnx/wFJ2cjOUtzglAAAAABJRU5ErkJggg==\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.unfreeze()\\n\",\n    \"learn.lr_find()\\n\",\n    \"learn.recorder.plot(suggestion=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: left;\\\">\\n\",\n       \"      <th>epoch</th>\\n\",\n       \"      <th>train_loss</th>\\n\",\n       \"      <th>valid_loss</th>\\n\",\n       \"      <th>quadratic_kappa</th>\\n\",\n       \"      <th>time</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0.365195</td>\\n\",\n       \"      <td>0.293679</td>\\n\",\n       \"      <td>0.874796</td>\\n\",\n       \"      <td>02:29</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.376851</td>\\n\",\n       \"      <td>0.291651</td>\\n\",\n       \"      <td>0.884788</td>\\n\",\n       \"      <td>02:30</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>0.366559</td>\\n\",\n       \"      <td>0.301450</td>\\n\",\n       \"      <td>0.871333</td>\\n\",\n       \"      <td>02:25</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>0.331697</td>\\n\",\n       \"      <td>0.271382</td>\\n\",\n       \"      <td>0.886623</td>\\n\",\n       \"      <td>02:31</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>0.315341</td>\\n\",\n       \"      <td>0.255499</td>\\n\",\n       \"      <td>0.896156</td>\\n\",\n       \"      <td>02:30</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>0.295612</td>\\n\",\n       \"      <td>0.256294</td>\\n\",\n       \"      <td>0.899324</td>\\n\",\n       \"      <td>02:29</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit_one_cycle(6, max_lr=slice(1e-6,1e-3))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.recorder.plot_losses()\\n\",\n    \"learn.recorder.plot_metrics()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.export()\\n\",\n    \"learn.save('stage-2')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Let's evaluate our model:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"True\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"interp = ClassificationInterpretation.from_learner(learn)\\n\",\n    \"\\n\",\n    \"losses,idxs = interp.top_losses()\\n\",\n    \"\\n\",\n    \"len(data.valid_ds)==len(losses)==len(idxs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#interp.plot_confusion_matrix(figsize=(12,12), dpi=60)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Optimize the Metric\\n\",\n    \"\\n\",\n    \"Optimizing the quadratic kappa metric was an important part of the top solutions in the previous competition. Thankfully, @abhishek has already provided code to do this for us. We will use this to improve the score.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"valid_preds = learn.get_preds(ds_type=DatasetType.Valid)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"import os\\n\",\n    \"import scipy as sp\\n\",\n    \"from functools import partial\\n\",\n    \"from sklearn import metrics\\n\",\n    \"from collections import Counter\\n\",\n    \"import json\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class OptimizedRounder(object):\\n\",\n    \"    def __init__(self):\\n\",\n    \"        self.coef_ = 0\\n\",\n    \"\\n\",\n    \"    def _kappa_loss(self, coef, X, y):\\n\",\n    \"        X_p = np.copy(X)\\n\",\n    \"        for i, pred in enumerate(X_p):\\n\",\n    \"            if pred < coef[0]:\\n\",\n    \"                X_p[i] = 0\\n\",\n    \"            elif pred >= coef[0] and pred < coef[1]:\\n\",\n    \"                X_p[i] = 1\\n\",\n    \"            elif pred >= coef[1] and pred < coef[2]:\\n\",\n    \"                X_p[i] = 2\\n\",\n    \"            elif pred >= coef[2] and pred < coef[3]:\\n\",\n    \"                X_p[i] = 3\\n\",\n    \"            else:\\n\",\n    \"                X_p[i] = 4\\n\",\n    \"\\n\",\n    \"        ll = metrics.cohen_kappa_score(y, X_p, weights='quadratic')\\n\",\n    \"        return -ll\\n\",\n    \"\\n\",\n    \"    def fit(self, X, y):\\n\",\n    \"        loss_partial = partial(self._kappa_loss, X=X, y=y)\\n\",\n    \"        initial_coef = [0.5, 1.5, 2.5, 3.5]\\n\",\n    \"        self.coef_ = sp.optimize.minimize(loss_partial, initial_coef, method='nelder-mead')\\n\",\n    \"        print(-loss_partial(self.coef_['x']))\\n\",\n    \"\\n\",\n    \"    def predict(self, X, coef):\\n\",\n    \"        X_p = np.copy(X)\\n\",\n    \"        for i, pred in enumerate(X_p):\\n\",\n    \"            if pred < coef[0]:\\n\",\n    \"                X_p[i] = 0\\n\",\n    \"            elif pred >= coef[0] and pred < coef[1]:\\n\",\n    \"                X_p[i] = 1\\n\",\n    \"            elif pred >= coef[1] and pred < coef[2]:\\n\",\n    \"                X_p[i] = 2\\n\",\n    \"            elif pred >= coef[2] and pred < coef[3]:\\n\",\n    \"                X_p[i] = 3\\n\",\n    \"            else:\\n\",\n    \"                X_p[i] = 4\\n\",\n    \"        return X_p\\n\",\n    \"\\n\",\n    \"    def coefficients(self):\\n\",\n    \"        return self.coef_['x']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"0.9085164856079234\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"optR = OptimizedRounder()\\n\",\n    \"optR.fit(valid_preds[0],valid_preds[1])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[0.524648 1.566159 2.455142 3.276578]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"coefficients = optR.coefficients()\\n\",\n    \"print(coefficients)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## TTA\\n\",\n    \"\\n\",\n    \"Test-time augmentation, or TTA, is a commonly-used technique to provide a boost in your score, and is very simple to implement. Fastai already has TTA implemented, but it is not the best for all purposes, so I am redefining the fastai function and using my custom version.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from fastai.core import *\\n\",\n    \"from fastai.basic_data import *\\n\",\n    \"from fastai.basic_train import *\\n\",\n    \"from fastai.torch_core import *\\n\",\n    \"def _tta_only(learn:Learner, ds_type:DatasetType=DatasetType.Valid, num_pred:int=10) -> Iterator[List[Tensor]]:\\n\",\n    \"    \\\"Computes the outputs for several augmented inputs for TTA\\\"\\n\",\n    \"    dl = learn.dl(ds_type)\\n\",\n    \"    ds = dl.dataset\\n\",\n    \"    old = ds.tfms\\n\",\n    \"    aug_tfms = [o for o in learn.data.train_ds.tfms]\\n\",\n    \"    try:\\n\",\n    \"        pbar = master_bar(range(num_pred))\\n\",\n    \"        for i in pbar:\\n\",\n    \"            ds.tfms = aug_tfms\\n\",\n    \"            yield get_preds(learn.model, dl, pbar=pbar)[0]\\n\",\n    \"    finally: ds.tfms = old\\n\",\n    \"\\n\",\n    \"Learner.tta_only = _tta_only\\n\",\n    \"\\n\",\n    \"def _TTA(learn:Learner, beta:float=0, ds_type:DatasetType=DatasetType.Valid, num_pred:int=10, with_loss:bool=False) -> Tensors:\\n\",\n    \"    \\\"Applies TTA to predict on `ds_type` dataset.\\\"\\n\",\n    \"    preds,y = learn.get_preds(ds_type)\\n\",\n    \"    all_preds = list(learn.tta_only(ds_type=ds_type, num_pred=num_pred))\\n\",\n    \"    avg_preds = torch.stack(all_preds).mean(0)\\n\",\n    \"    if beta is None: return preds,avg_preds,y\\n\",\n    \"    else:            \\n\",\n    \"        final_preds = preds*beta + avg_preds*(1-beta)\\n\",\n    \"        if with_loss: \\n\",\n    \"            with NoneReduceOnCPU(learn.loss_func) as lf: loss = lf(final_preds, y)\\n\",\n    \"            return final_preds, y, loss\\n\",\n    \"        return final_preds, y\\n\",\n    \"\\n\",\n    \"Learner.TTA = _TTA\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Submission\\n\",\n    \"Let's now create a submission\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>id_code</th>\\n\",\n       \"      <th>diagnosis</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>0005cfc8afb6</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>003f0afdcd15</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>006efc72b638</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>00836aaacf06</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>009245722fa4</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"        id_code  diagnosis\\n\",\n       \"0  0005cfc8afb6          0\\n\",\n       \"1  003f0afdcd15          0\\n\",\n       \"2  006efc72b638          0\\n\",\n       \"3  00836aaacf06          0\\n\",\n       \"4  009245722fa4          0\"\n      ]\n     },\n     \"execution_count\": 32,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sample_df = pd.read_csv('../input/aptos2019-blindness-detection/sample_submission.csv')\\n\",\n    \"sample_df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.data.add_test(ImageList.from_df(sample_df,'../input/aptos2019-blindness-detection',folder='test_images',suffix='.png'))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"preds,y = learn.TTA(ds_type=DatasetType.Test)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"test_predictions = optR.predict(preds, coefficients)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>id_code</th>\\n\",\n       \"      <th>diagnosis</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>0005cfc8afb6</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>003f0afdcd15</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>006efc72b638</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>00836aaacf06</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>009245722fa4</td>\\n\",\n       \"      <td>2</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"        id_code  diagnosis\\n\",\n       \"0  0005cfc8afb6          1\\n\",\n       \"1  003f0afdcd15          2\\n\",\n       \"2  006efc72b638          2\\n\",\n       \"3  00836aaacf06          2\\n\",\n       \"4  009245722fa4          2\"\n      ]\n     },\n     \"execution_count\": 36,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"sample_df.diagnosis = test_predictions.astype(int)\\n\",\n    \"sample_df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"sample_df.to_csv('submission.csv',index=False)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 1\n}\n"
  },
  {
    "path": "projects/kaggle/blindness/other/keras_baseline.py",
    "content": "\n# coding: utf-8\n\n# ### Credits and references : The complete code is taken from [this kernel](https://www.kaggle.com/mathormad/aptos-resnet50-baseline).Changed the model,added some augmentations and retrained it.Thanks to the [Author of the kernel](https://www.kaggle.com/mathormad).\n\n# #### BEFORE YOU FORK, PLEASE SUPPORT AND UPVOTE THE CURRENT KERNEL AND ORIGINAL [RESNET50 STARTER KERNEL](https://www.kaggle.com/mathormad/aptos-resnet50-baseline)\n\n# # Introduction:\n# ## What is diabetic retinopathy?\n# #### Diabetic retinopathy is the most common form of diabetic eye disease. Diabetic retinopathy usually only affects people who have had diabetes (diagnosed or undiagnosed) for a significant number of years.\n# #### Retinopathy can affect all diabetics and becomes particularly dangerous, increasing the risk of blindness, if it is left untreated.\n# #### The risk of developing diabetic retinopathy is known to increase with age as well with less well controlled blood sugar and blood pressure level.\n# #### According to the NHS, 1,280 new cases of blindness caused by diabetic retinopathy are reported each year in England alone, while a further 4,200 people in the country are thought to be at risk of retinopathy-related vision loss.\n# #### All people with diabetes should have a dilated eye examination at least once every year to check for diabetic retinopathy.\n# ![](https://www.aoa.org/Images/public/Diabetic_Retinopathy.jpg)\n\n# In[ ]:\n\n\n# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.\n\n\n# In[ ]:\n\nimport gezi\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.models import Sequential, load_model\nfrom keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\nfrom keras.callbacks import ModelCheckpoint\nfrom keras import metrics\nfrom keras.optimizers import Adam \nfrom keras import backend as K\nimport keras\nfrom keras.models import Model\n\n\n# In[ ]:\n\n\nimport matplotlib.pyplot as plt\nimport skimage.io\nfrom skimage.transform import resize\nfrom imgaug import augmenters as iaa\nfrom tqdm import tqdm\nimport PIL\nfrom PIL import Image, ImageOps\nimport cv2\nfrom sklearn.utils import class_weight, shuffle\nfrom keras.losses import binary_crossentropy, categorical_crossentropy\n#from keras.applications.resnet50 import preprocess_input\nfrom keras.applications.densenet import DenseNet121,DenseNet169\nimport keras.backend as K\nimport tensorflow as tf\nfrom sklearn.metrics import f1_score, fbeta_score, cohen_kappa_score\nfrom keras.utils import Sequence\nfrom keras.utils import to_categorical\nfrom sklearn.model_selection import train_test_split\nimport imgaug as ia\n\nWORKERS = 2\nCHANNEL = 3\n\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nSIZE = 300\nNUM_CLASSES = 5\n\n\n# In[ ]:\n\n\ndf_train = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\ndf_test = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n\n\n# ### Visualising some sample pictures of different classes.\n\n# In[ ]:\n\n\ndef display_samples(df, columns=4, rows=3):\n    fig=plt.figure(figsize=(5*columns, 4*rows))\n\n    for i in range(columns*rows):\n        image_path = df.loc[i,'id_code']\n        image_id = df.loc[i,'diagnosis']\n        img = cv2.imread(f'../input/aptos2019-blindness-detection/train_images/{image_path}.png')\n        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n        \n        fig.add_subplot(rows, columns, i+1)\n        plt.title(image_id)\n        plt.imshow(img)\n    \n    plt.tight_layout()\n\ndisplay_samples(df_train)\n\n\n# In[ ]:\n\n\nx = df_train['id_code']\ny = df_train['diagnosis']\n\nx, y = shuffle(x, y, random_state=8)\ny.hist()\n\n\n# In[ ]:\n\n\ny = to_categorical(y, num_classes=NUM_CLASSES)\ntrain_x, valid_x, train_y, valid_y = train_test_split(x, y, test_size=0.15,\n                                                      stratify=y, random_state=8)\nprint(train_x.shape)\nprint(train_y.shape)\nprint(valid_x.shape)\nprint(valid_y.shape)\n\n\n# In[ ]:\n\n\nsometimes = lambda aug: iaa.Sometimes(0.5, aug)\nseq = iaa.Sequential(\n        [\n            # apply the following augmenters to most images\n            iaa.Fliplr(0.5), # horizontally flip 50% of all images\n            iaa.Flipud(0.2), # vertically flip 20% of all images\n            sometimes(iaa.Affine(\n                scale={\"x\": (0.9, 1.1), \"y\": (0.9, 1.1)}, # scale images to 80-120% of their size, individually per axis\n                translate_percent={\"x\": (-0.1, 0.1), \"y\": (-0.1, 0.1)}, # translate by -20 to +20 percent (per axis)\n                rotate=(-10, 10), # rotate by -45 to +45 degrees\n                shear=(-5, 5), # shear by -16 to +16 degrees\n                order=[0, 1], # use nearest neighbour or bilinear interpolation (fast)\n                cval=(0, 255), # if mode is constant, use a cval between 0 and 255\n                mode=ia.ALL # use any of scikit-image's warping modes (see 2nd image from the top for examples)\n            )),\n            # execute 0 to 5 of the following (less important) augmenters per image\n            # don't execute all of them, as that would often be way too strong\n            iaa.SomeOf((0, 5),\n                [\n                    sometimes(iaa.Superpixels(p_replace=(0, 1.0), n_segments=(20, 200))), # convert images into their superpixel representation\n                    iaa.OneOf([\n                        iaa.GaussianBlur((0, 1.0)), # blur images with a sigma between 0 and 3.0\n                        iaa.AverageBlur(k=(3, 5)), # blur image using local means with kernel sizes between 2 and 7\n                        iaa.MedianBlur(k=(3, 5)), # blur image using local medians with kernel sizes between 2 and 7\n                    ]),\n                    iaa.Sharpen(alpha=(0, 1.0), lightness=(0.9, 1.1)), # sharpen images\n                    iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)), # emboss images\n                    # search either for all edges or for directed edges,\n                    # blend the result with the original image using a blobby mask\n                    iaa.SimplexNoiseAlpha(iaa.OneOf([\n                        iaa.EdgeDetect(alpha=(0.5, 1.0)),\n                        iaa.DirectedEdgeDetect(alpha=(0.5, 1.0), direction=(0.0, 1.0)),\n                    ])),\n                    iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.01*255), per_channel=0.5), # add gaussian noise to images\n                    iaa.OneOf([\n                        iaa.Dropout((0.01, 0.05), per_channel=0.5), # randomly remove up to 10% of the pixels\n                        iaa.CoarseDropout((0.01, 0.03), size_percent=(0.01, 0.02), per_channel=0.2),\n                    ]),\n                    iaa.Invert(0.01, per_channel=True), # invert color channels\n                    iaa.Add((-2, 2), per_channel=0.5), # change brightness of images (by -10 to 10 of original value)\n                    iaa.AddToHueAndSaturation((-1, 1)), # change hue and saturation\n                    # either change the brightness of the whole image (sometimes\n                    # per channel) or change the brightness of subareas\n                    iaa.OneOf([\n                        iaa.Multiply((0.9, 1.1), per_channel=0.5),\n                        iaa.FrequencyNoiseAlpha(\n                            exponent=(-1, 0),\n                            first=iaa.Multiply((0.9, 1.1), per_channel=True),\n                            second=iaa.ContrastNormalization((0.9, 1.1))\n                        )\n                    ]),\n                    sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)), # move pixels locally around (with random strengths)\n                    sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05))), # sometimes move parts of the image around\n                    sometimes(iaa.PerspectiveTransform(scale=(0.01, 0.1)))\n                ],\n                random_order=True\n            )\n        ],\n        random_order=True)\n\n\n# In[ ]:\n\n\nclass My_Generator(Sequence):\n\n    def __init__(self, image_filenames, labels,\n                 batch_size, is_train=True,\n                 mix=False, augment=False):\n        self.image_filenames, self.labels = image_filenames, labels\n        self.batch_size = batch_size\n        self.is_train = is_train\n        self.is_augment = augment\n        if(self.is_train):\n            self.on_epoch_end()\n        self.is_mix = mix\n\n    def __len__(self):\n        return int(np.ceil(len(self.image_filenames) / float(self.batch_size)))\n\n    def __getitem__(self, idx):\n        batch_x = self.image_filenames[idx * self.batch_size:(idx + 1) * self.batch_size]\n        batch_y = self.labels[idx * self.batch_size:(idx + 1) * self.batch_size]\n\n        if(self.is_train):\n            return self.train_generate(batch_x, batch_y)\n        return self.valid_generate(batch_x, batch_y)\n\n    def on_epoch_end(self):\n        if(self.is_train):\n            self.image_filenames, self.labels = shuffle(self.image_filenames, self.labels)\n        else:\n            pass\n    \n    def mix_up(self, x, y):\n        lam = np.random.beta(0.2, 0.4)\n        ori_index = np.arange(int(len(x)))\n        index_array = np.arange(int(len(x)))\n        np.random.shuffle(index_array)        \n        \n        mixed_x = lam * x[ori_index] + (1 - lam) * x[index_array]\n        mixed_y = lam * y[ori_index] + (1 - lam) * y[index_array]\n        \n        return mixed_x, mixed_y\n\n    def train_generate(self, batch_x, batch_y):\n        batch_images = []\n        for (sample, label) in zip(batch_x, batch_y):\n            img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n            img = cv2.resize(img, (SIZE, SIZE))\n            if(self.is_augment):\n                img = seq.augment_image(img)\n            batch_images.append(img)\n        batch_images = np.array(batch_images, np.float32) / 255\n        batch_y = np.array(batch_y, np.float32)\n        if(self.is_mix):\n            batch_images, batch_y = self.mix_up(batch_images, batch_y)\n        return batch_images, batch_y\n\n    def valid_generate(self, batch_x, batch_y):\n        batch_images = []\n        for (sample, label) in zip(batch_x, batch_y):\n            img = cv2.imread('../input/aptos2019-blindness-detection/train_images/'+sample+'.png')\n            img = cv2.resize(img, (SIZE, SIZE))\n            batch_images.append(img)\n        batch_images = np.array(batch_images, np.float32) / 255\n        batch_y = np.array(batch_y, np.float32)\n        return batch_images, batch_y\n\n\n# In[ ]:\n\n\ndef create_model(input_shape, n_out):\n    input_tensor = Input(shape=input_shape)\n    base_model = DenseNet121(include_top=False,\n                   weights=None,\n                   input_tensor=input_tensor)\n    base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n    x = GlobalAveragePooling2D()(base_model.output)\n    x = Dropout(0.5)(x)\n    x = Dense(1024, activation='relu')(x)\n    x = Dropout(0.5)(x)\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n    model = Model(input_tensor, final_output) \n    return model\n\n\n# In[ ]:\n\n\n# create callbacks list\nfrom keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger)\n\nepochs = 30; batch_size = 32\ncheckpoint = ModelCheckpoint('../working/densenet_.h5', monitor='val_loss', verbose=1, \n                             save_best_only=True, mode='min', save_weights_only = True)\nreduceLROnPlat = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=4, \n                                   verbose=1, mode='auto', epsilon=0.0001)\nearly = EarlyStopping(monitor=\"val_loss\", \n                      mode=\"min\", \n                      patience=9)\n\ncsv_logger = CSVLogger(filename='../working/training_log.csv',\n                       separator=',',\n                       append=True)\n\ntrain_generator = My_Generator(train_x, train_y, 128, is_train=True)\ntrain_mixup = My_Generator(train_x, train_y, batch_size, is_train=True, mix=False, augment=True)\nvalid_generator = My_Generator(valid_x, valid_y, batch_size, is_train=False)\n\nmodel = create_model(\n    input_shape=(SIZE,SIZE,3), \n    n_out=NUM_CLASSES)\n\n\n# In[ ]:\n\n\n# reference link: https://www.kaggle.com/christofhenkel/weighted-kappa-loss-for-keras-tensorflow\ndef kappa_loss(y_true, y_pred, y_pow=2, eps=1e-12, N=5, bsize=32, name='kappa'):\n    \"\"\"A continuous differentiable approximation of discrete kappa loss.\n        Args:\n            y_pred: 2D tensor or array, [batch_size, num_classes]\n            y_true: 2D tensor or array,[batch_size, num_classes]\n            y_pow: int,  e.g. y_pow=2\n            N: typically num_classes of the model\n            bsize: batch_size of the training or validation ops\n            eps: a float, prevents divide by zero\n            name: Optional scope/name for op_scope.\n        Returns:\n            A tensor with the kappa loss.\"\"\"\n\n    with tf.name_scope(name):\n        y_true = tf.to_float(y_true)\n        repeat_op = tf.to_float(tf.tile(tf.reshape(tf.range(0, N), [N, 1]), [1, N]))\n        repeat_op_sq = tf.square((repeat_op - tf.transpose(repeat_op)))\n        weights = repeat_op_sq / tf.to_float((N - 1) ** 2)\n    \n        pred_ = y_pred ** y_pow\n        try:\n            pred_norm = pred_ / (eps + tf.reshape(tf.reduce_sum(pred_, 1), [-1, 1]))\n        except Exception:\n            pred_norm = pred_ / (eps + tf.reshape(tf.reduce_sum(pred_, 1), [bsize, 1]))\n    \n        hist_rater_a = tf.reduce_sum(pred_norm, 0)\n        hist_rater_b = tf.reduce_sum(y_true, 0)\n    \n        conf_mat = tf.matmul(tf.transpose(pred_norm), y_true)\n    \n        nom = tf.reduce_sum(weights * conf_mat)\n        denom = tf.reduce_sum(weights * tf.matmul(\n            tf.reshape(hist_rater_a, [N, 1]), tf.reshape(hist_rater_b, [1, N])) /\n                              tf.to_float(bsize))\n    \n        return nom*0.5 / (denom + eps) + categorical_crossentropy(y_true, y_pred)*0.5\n\n\n# In[ ]:\n\n\nfrom keras.callbacks import Callback\nclass QWKEvaluation(Callback):\n    def __init__(self, validation_data=(), batch_size=64, interval=1):\n        super(Callback, self).__init__()\n\n        self.interval = interval\n        self.batch_size = batch_size\n        self.valid_generator, self.y_val = validation_data\n        self.history = []\n\n    def on_epoch_end(self, epoch, logs={}):\n        if epoch % self.interval == 0:\n            y_pred = self.model.predict_generator(generator=self.valid_generator,\n                                                  steps=np.ceil(float(len(self.y_val)) / float(self.batch_size)),\n                                                  workers=1, use_multiprocessing=False,\n                                                  verbose=1)\n            def flatten(y):\n                return np.argmax(y, axis=1).reshape(-1)\n            \n            score = cohen_kappa_score(flatten(self.y_val),\n                                      flatten(y_pred),\n                                      labels=[0,1,2,3,4],\n                                      weights='quadratic')\n            print(\"\\n epoch: %d - QWK_score: %.6f \\n\" % (epoch+1, score))\n            self.history.append(score)\n            if score >= max(self.history):\n                print('saving checkpoint: ', score)\n                self.model.save('../working/densenet_bestqwk.h5')\n\nqwk = QWKEvaluation(validation_data=(valid_generator, valid_y),\n                    batch_size=batch_size, interval=1)\n\n\n# In[ ]:\n\n\n# warm up model\nfor layer in model.layers:\n    layer.trainable = False\n\nfor i in range(-3,0):\n    model.layers[i].trainable = True\n\nmodel.compile(\n    loss='categorical_crossentropy',\n    optimizer=Adam(1e-3))\n\nmodel.fit_generator(\n    train_generator,\n    steps_per_epoch=np.ceil(float(len(train_y)) / float(128)),\n    epochs=2,\n    workers=WORKERS, use_multiprocessing=True,\n    verbose=1,\n    callbacks=[qwk])\n\n\n# In[ ]:\n\n\n# train all layers\nfor layer in model.layers:\n    layer.trainable = True\ncallbacks_list = [checkpoint, csv_logger, reduceLROnPlat, early, qwk]\nmodel.compile(loss='categorical_crossentropy',\n            # loss=kappa_loss,\n            optimizer=Adam(lr=1e-4))\nmodel.fit_generator(\n    train_mixup,\n    steps_per_epoch=np.ceil(float(len(train_x)) / float(batch_size)),\n    validation_data=valid_generator,\n    validation_steps=np.ceil(float(len(valid_x)) / float(batch_size)),\n    epochs=epochs,\n    verbose=1,\n    workers=1, use_multiprocessing=False,\n    callbacks=callbacks_list)\n\n\n# In[ ]:\n\n\nsubmit = pd.read_csv('../input/aptos2019-blindness-detection/sample_submission.csv')\nmodel.load_weights('../working/densenet_bestqwk.h5')\npredicted = []\n\n\n# In[ ]:\n\n\n# reference:https://www.kaggle.com/CVxTz/cnn-starter-nasnet-mobile-0-9709-lb \nfor i, name in tqdm(enumerate(submit['id_code'])):\n    path = os.path.join('../input/aptos2019-blindness-detection/test_images/', name+'.png')\n    image = cv2.imread(path)\n    image = cv2.resize(image, (SIZE, SIZE))\n    X = np.array((image[np.newaxis])/255)\n    score_predict=((model.predict(X).ravel()*model.predict(X[:, ::-1, :, :]).ravel()*model.predict(X[:, ::-1, ::-1, :]).ravel()*model.predict(X[:, :, ::-1, :]).ravel())**0.25).tolist()\n    label_predict = np.argmax(score_predict)\n    predicted.append(str(label_predict))\n\n\n# In[ ]:\n\n\nsubmit['diagnosis'] = predicted\nsubmit.to_csv('submission.csv', index=False)\nsubmit.head()\n\n"
  },
  {
    "path": "projects/kaggle/blindness/other/training-mobilenet-v2-in-4-min.py",
    "content": "\"\"\"\nThis kernel takes about 12 min to run:\n\n* Image preprocessing: ~ 8 min\n* Model training: ~ 4 min\n\nSince MobileNet v2 has only 2.2M parameters, it trains faster than\nResNet-50 (26M) and ResNext-101 (84M); as a tradeoff, the potential \naccuracy becomes lower. We will finetune the pretrained ImageNet weights.\n\"\"\"\nimport os\nimport json\nimport math\n\nimport cv2\nimport numpy as np\nimport pandas as pd\nfrom keras import layers, optimizers\nfrom keras.applications import MobileNetV2\nfrom keras.callbacks import ModelCheckpoint\nfrom keras.models import Sequential\nfrom sklearn.model_selection import train_test_split \nfrom tqdm import tqdm\n\n\ndef pad_and_resize(image_path, pad=True, desired_size=224):\n    def get_pad_width(im, new_shape, is_rgb=True):\n        pad_diff = new_shape - im.shape[0], new_shape - im.shape[1]\n        t, b = math.floor(pad_diff[0]/2), math.ceil(pad_diff[0]/2)\n        l, r = math.floor(pad_diff[1]/2), math.ceil(pad_diff[1]/2)\n        if is_rgb:\n            pad_width = ((t,b), (l,r), (0, 0))\n        else:\n            pad_width = ((t,b), (l,r))\n        return pad_width\n        \n    img = cv2.imread(image_path)\n    \n    if pad:\n        pad_width = get_pad_width(img, max(img.shape))\n        padded = np.pad(img, pad_width=pad_width, mode='constant', constant_values=0)\n    else:\n        padded = img\n    \n    padded = cv2.cvtColor(padded, cv2.COLOR_BGR2RGB)\n    resized = cv2.resize(padded, (desired_size,)*2).astype('uint8')\n    \n    return resized\n\n\ndef build_model():\n    mobilenet = MobileNetV2(\n        weights='../input/mobilenet-v2-keras-weights/mobilenet_v2_weights_tf_dim_ordering_tf_kernels_1.0_224_no_top.h5',\n        include_top=False,\n        input_shape=(224,224,3)\n    )\n    model = Sequential()\n    model.add(mobilenet)\n    model.add(layers.GlobalAveragePooling2D())\n    model.add(layers.Dropout(0.5))\n    model.add(layers.Dense(5, activation='softmax'))\n    \n    model.compile(\n        loss='categorical_crossentropy',\n        optimizer=optimizers.Adam(lr=0.00002),\n        metrics=['accuracy']\n    )\n    \n    return model\n\n\n# Load Labels\ntrain_df = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')\ntest_df = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\n\n# Load Images\ntrain_resized_imgs = []\ntest_resized_imgs = []\n\nimport gezi\n\nt = gezi.Timer('loading train imgs')\nfor image_id in tqdm(train_df['id_code'], ascii=True):\n    img = pad_and_resize(f'../input/aptos2019-blindness-detection/train_images/{image_id}.png')\n    train_resized_imgs.append(img)\nt.print()\n\nt = gezi.Timer('loading test imgs')\nfor image_id in tqdm(test_df['id_code'], ascii=True):\n    img = pad_and_resize(f'../input/aptos2019-blindness-detection/test_images/{image_id}.png')\n    test_resized_imgs.append(img)\nt.print()\nx_test = np.stack(test_resized_imgs)\n\nprint('split data')\n# Split Data\nx_train, x_val, y_train, y_val = train_test_split(\n    np.stack(train_resized_imgs), \n    pd.get_dummies(train_df['diagnosis']).values, \n    test_size=0.1, \n    random_state=2019\n)\n\n# Train Model    \nmodel = build_model()\ncheckpoint = ModelCheckpoint('model.h5', save_best_only=True)\nhistory = model.fit(\n    x_train, y_train,\n    epochs=10,\n    batch_size=32,\n    verbose=2,\n    callbacks=[checkpoint],\n    validation_data=(x_val, y_val)\n)\n\n# Submission\nmodel.load_weights('model.h5')\ny_test = model.predict(x_test)\ntest_df['diagnosis'] = y_test.argmax(axis=1)\ntest_df.to_csv('submission.csv',index=False)\n"
  },
  {
    "path": "projects/kaggle/blindness/prepare/gen-records.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Read CIFAR-10 data from pickled numpy arrays and writes TFRecords.\n\nGenerates tf.train.Example protos and writes them to TFRecord files from the\npython version of the CIFAR-10 dataset downloaded from\nhttps://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport os\n\nimport tensorflow as tf\nimport glob\nimport cv2\nfrom tqdm import tqdm\nimport melt\nimport gezi\n\nNUM_FOLDS = 10\n\nimport pandas as pd\nm = {}\nl = pd.read_csv('../input/train.csv')\nfor i in range(len(l)):\n  m[l.id_code[i]] = l.diagnosis[i]\n\ndef convert_to_tfrecord(input_files, output_file):\n  \"\"\"Converts a file to TFRecords.\"\"\"\n  print('Generating %s' % output_file)\n  with tf.python_io.TFRecordWriter(output_file) as record_writer:\n    for input_file in tqdm(input_files, ascii=True):\n      id = os.path.basename(input_file)[:-4]\n      #img = cv2.imread(input_file)\n      img = melt.read_image(input_file)\n      # turn to channel first\n      #img = img.transpose(2,0,1)\n      if 'test' not in output_file:  \n        label = m[id]\n      else:\n        label = -1\n      example = tf.train.Example(features=tf.train.Features(\n          feature={\n              'id': melt.bytes_feature(id),\n              #'image': melt.bytes_feature(img.tobytes()),\n              'image': melt.bytes_feature(img),\n              'label': melt.int64_feature(label)\n          }))\n      record_writer.write(example.SerializeToString())\n\ndef main(data_dir):\n  input_dir = '../input'\n  \n  input_files = [f for f in glob.glob('%s/%s/*.png' % (input_dir, 'train_images')) if int(gezi.hash(os.path.basename(f)[:-4])) % NUM_FOLDS != 0]\n  print('train:', len(input_files))\n  output_file = os.path.join(data_dir, 'train.tfrecords')\n  convert_to_tfrecord(input_files, output_file)\n\n  input_files = [f for f in glob.glob('%s/%s/*.png' % (input_dir, 'train_images')) if int(gezi.hash(os.path.basename(f)[:-4])) % NUM_FOLDS == 0]\n  print('valid:', len(input_files))\n  output_file = os.path.join(data_dir, 'valid.tfrecords')\n  convert_to_tfrecord(input_files, output_file) \n\n  input_files = glob.glob('%s/%s/*.png' % (input_dir, 'test_images'))\n  output_file = os.path.join(data_dir, 'test.tfrecords')\n  convert_to_tfrecord(input_files, output_file) \n\n\nif __name__ == '__main__':\n  data_dir = '../input/tfrecords'\n  main(data_dir)\n"
  },
  {
    "path": "projects/kaggle/blindness/prepare/gen-records.sh",
    "content": "python gen-records.py\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('random_brightness', False, '')\nflags.DEFINE_bool('random_contrast', False, '')\nflags.DEFINE_bool('return_dict', False, '')\n\nHEIGHT = 224\nWIDTH = 224\nDEPTH = 3\n\n\nclass DataSet(object):\n\n  def __init__(self, data_dir, subset='train', use_distortion=True):\n    self.data_dir = data_dir\n    self.subset = subset\n    self.use_distortion = use_distortion\n\n  def get_filenames(self):\n    if self.subset in ['train', 'valid', 'test']:\n      return [os.path.join(self.data_dir, self.subset + '.tfrecords')]\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % self.subset)\n\n  def parser(self, serialized_example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    # Dimensions of the images in the CIFAR-10 dataset.\n    # See http://www.cs.toronto.edu/~kriz/cifar.html for a description of the\n    # input format.\n    features = tf.parse_single_example(\n        serialized_example,\n        features={\n            'id': tf.FixedLenFeature([], tf.string),\n            'image': tf.FixedLenFeature([], tf.string),\n            'label': tf.FixedLenFeature([], tf.int64),\n        })\n\n    image = features['image']\n    #image = tf.expand_dims(image, axis=-1)\n    print('--------------1', image)\n    #image = tf.decode_raw(image, tf.uint8)\n    image = tf.image.decode_png(image)\n    #image.set_shape([HEIGHT * WIDTH * DEPTH])\n    print('--------------2', image, image.shape)\n\n    #image = tf.cast(\n    #    tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n    #    tf.float32)\n    image = tf.cast(image, tf.float32)\n\n    label = tf.cast(features['label'], tf.int32)\n    id = features['id']\n\n    # Custom preprocessing.\n    image = self.preprocess(image)\n    if not FLAGS.return_dict:\n      return id, image, label\n    else:\n      return {'id': id, 'image': image}, label\n\n\n  def make_batch(self, batch_size, filenames=None, repeat=None, initializable=None):\n    \"\"\"Read the images and labels from 'filenames'.\"\"\"\n    filenames = filenames or self.get_filenames()\n    \n    if initializable is None:\n      initializable = self.subset != 'train'\n    \n    # Repeat infinitely.\n    dataset = tf.data.TFRecordDataset(filenames).repeat()\n\n    # Parse records.\n    dataset = dataset.map(\n        self.parser, num_parallel_calls=batch_size)\n\n    # Potentially shuffle records.\n    if self.subset == 'train':\n      min_queue_examples = int(\n          DataSet.num_examples_per_epoch(self.subset) * 0.4)\n      # Ensure that the capacity is sufficiently large to provide good random\n      # shuffling.\n      dataset = dataset.shuffle(buffer_size=min_queue_examples + 3 * batch_size)\n\n    # Batch it up.\n    dataset = dataset.batch(batch_size)\n\n    if not initializable:\n      iterator = dataset.make_one_shot_iterator()\n    else:\n      iterator = dataset.make_initializable_iterator()\n    self.iterator = iterator\n    return iterator\n\n  def preprocess(self, image):\n    \"\"\"Preprocess a single image in [height, width, depth] layout.\"\"\"\n    if self.subset == 'train' and self.use_distortion:\n      # Pad 4 pixels on each dimension of feature map, done in mini-batch\n      #... yes should do something like below.. but you will see with dataset.map.. not ok as summary without scope and finally graph has no these summaries\n      # refer to https://stackoverflow.com/questions/47345394/image-summaries-with-tensorflows-dataset-api  TODO FIXME\n      tf.summary.image('image', image)\n      #print('--------', image)\n      #image = tf.image.resize_image_with_crop_or_pad(image, 256, 256)\n      image = tf.image.resize_images(image, [256, 256], method=0)\n      image = tf.random_crop(image, [HEIGHT, WIDTH, DEPTH])\n      image = tf.image.random_flip_left_right(image)\n      if FLAGS.random_brightness:\n        image = tf.image.random_brightness(image,\n                                          max_delta=63)\n      if FLAGS.random_contrast:\n        distorted_image = tf.image.random_contrast(image,\n                                                  lower=0.2, \n                                                  upper=1.8)\n      tf.summary.image('image/distort', image)\n    else:\n      image = tf.image.resize_images(image, [HEIGHT, WIDTH], method=0)      \n\n    image = tf.cast(\n        tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n        tf.float32)\n\n    return image\n\n  @staticmethod\n  def num_examples_per_epoch(subset='train'):\n    if subset == 'train':\n      return 3295\n    elif subset == 'valid':\n      return 367\n    elif subset == 'test':\n      return 1928\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % subset)\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-12-07 15:19:16.505094\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn import metrics\nimport gezi\n\nnum_classes = 5\ndef evaluate(labels, logits, ids=None):\n  logits = logits[:, :num_classes]\n  predicts = np.argmax(logits, -1)\n  acc = np.mean(np.equal(predicts, labels))\n\n  probs = gezi.softmax(logits)\n  loss = metrics.log_loss(labels, probs)\n\n  kappa = metrics.cohen_kappa_score(labels, predicts)\n\n  vals = [loss, acc, kappa]\n  names = ['loss', 'acc', 'kappa']\n\n  return vals, names\n\ndef write(ids, labels, logits, ofile):\n  logits = logits[:, :num_classes]\n  df = pd.DataFrame()\n  df['id_code'] = ids\n  predicts = np.argmax(logits, -1)\n  df['diagnosis'] = predicts\n  if labels is not None: \n    df['label'] = labels\n  df= df.sort_values('id_code') \n  df.to_csv(ofile, index=False)\n\ndef valid_write(ids, labels, logits, ofile):\n  return write(ids, labels, logits, ofile)\n\ndef infer_write(ids, logits, ofile):\n  return write(ids, None, logits, ofile)\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-12-07 15:19:21.172303\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  weight_decay = 0.0002\n\n  loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=y_, labels=y)\n  loss = tf.reduce_mean(loss)\n\n  model_params = tf.trainable_variables()\n  loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n  return loss  \n\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/model.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Model class for Cifar10 Dataset.\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport model_base\n\nimport melt\n\n\nclass BaseModel(model_base.ResNet):\n\n  def __init__(self,\n               num_layers,\n               training,\n               batch_norm_decay,\n               batch_norm_epsilon,\n               data_format='channels_first'):\n    super(BaseModel, self).__init__(\n        training,\n        data_format,\n        batch_norm_decay,\n        batch_norm_epsilon\n    )\n    self.n = (num_layers - 2) // 6\n    # Add one in case label starts with 1. No impact if label starts with 0.\n    self.num_classes = 10 + 1\n    self.filters = [16, 16, 32, 64]\n    self.strides = [1, 2, 2]\n    \n  def init_predict(self, input_data_format='channels_last'):\n    #self.image_feed = tf.placeholder_with_default(tf.constant([test_image]), [None, ], name='image_feature')\n    self.image_feed =  tf.placeholder(tf.string, [None,], name='image')\n    tf.add_to_collection('feed', self.image_feed)\n    image = tf.map_fn(lambda img: melt.image.decode_image(img, image_format='png', dtype=tf.float32),\n                      self.image_feed, dtype=tf.float32)\n    self.predict(image)\n    tf.add_to_collection('classes', self.pred['classes'])\n    tf.add_to_collection('probabilities', self.pred['probabilities'])\n    tf.add_to_collection('logits', self.logits)\n    tf.add_to_collection('pre_logits', self.pre_logits)\n\n  def forward_pass(self, x, input_data_format='channels_last'):\n    # TODO.. without this forward var scope inference_fn will cause problem for self._conv as try to add conv 43.. FIMXE\n    with tf.variable_scope('forward', reuse=tf.AUTO_REUSE):\n      \"\"\"Build the core model within the graph.\"\"\"\n      if self._data_format != input_data_format:\n        if input_data_format == 'channels_last':\n          # Computation requires channels_first.\n          x = tf.transpose(x, [0, 3, 1, 2])\n        else:\n          # Computation requires channels_last.\n          x = tf.transpose(x, [0, 2, 3, 1])\n\n      # Image standardization.\n      x = x / 128 - 1\n\n      x = self._conv(x, 3, 16, 1)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      # Use basic (non-bottleneck) block and ResNet V1 (post-activation).\n      res_func = self._residual_v1\n\n      # 3 stages of block stacking.\n      for i in range(3):\n        with tf.name_scope('stage'):\n          for j in range(self.n):\n            if j == 0:\n              # First block in a stage, filters and strides may change.\n              x = res_func(x, 3, self.filters[i], self.filters[i + 1],\n                          self.strides[i])\n            else:\n              # Following blocks in a stage, constant filters and unit stride.\n              x = res_func(x, 3, self.filters[i + 1], self.filters[i + 1], 1)\n\n      x = self._global_avg_pool(x)\n      self.pre_logits = x \n      \n      x = self._fully_connected(x, self.num_classes)\n\n      self.logits = x\n\n      return x\n\n  def predict(self, x=None, input_data_format='channels_last'):\n    if x is not None:\n      self.forward_pass(x, input_data_format)\n    \n    logits = self.logits\n    pred = {\n      'classes': tf.to_int32(tf.argmax(input=logits, axis=1)),\n      'probabilities': tf.nn.softmax(logits)\n    }\n\n    self.pred = pred\n\n    return pred\n\nclass Model(tf.keras.Model):\n  def __init__(self):\n    super(Model, self).__init__()\n     \n    with tf.variable_scope('resnet', reuse=tf.AUTO_REUSE) as scope:\n      self.models = [None] * 2\n      data_format = 'channels_first'\n      num_layers = 44\n      batch_norm_decay = 0.997\n      batch_norm_epsilon = 1e-05\n      data_dir = './mount/data/cifar10/' \n      for i in range(2):\n        self.models[i] = BaseModel(\n                              num_layers,\n                              batch_norm_decay=batch_norm_decay,\n                              batch_norm_epsilon=batch_norm_epsilon,\n                              training=(i == 1),\n                              data_format=data_format)         \n  \n  def call(self, x, input_data_format='channels_last', training=False):\n    x = x['image']\n    model = self.models[int(training)]\n    return model.forward_pass(x, input_data_format)\n\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/model_base.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"ResNet model.\n\nRelated papers:\nhttps://arxiv.org/pdf/1603.05027v2.pdf\nhttps://arxiv.org/pdf/1512.03385v1.pdf\nhttps://arxiv.org/pdf/1605.07146v1.pdf\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\nclass ResNet(object):\n  \"\"\"ResNet model.\"\"\"\n\n  def __init__(self, training, data_format, batch_norm_decay, batch_norm_epsilon):\n    \"\"\"ResNet constructor.\n\n    Args:\n      training: if build training or inference model.\n      data_format: the data_format used during computation.\n                   one of 'channels_first' or 'channels_last'.\n    \"\"\"\n    self._batch_norm_decay = batch_norm_decay\n    self._batch_norm_epsilon = batch_norm_epsilon\n    self._training = training\n    assert data_format in ('channels_first', 'channels_last')\n    self._data_format = data_format\n\n  def forward_pass(self, x):\n    raise NotImplementedError(\n        'forward_pass() is implemented in ResNet sub classes')\n\n  def _residual_v1(self,\n                   x,\n                   kernel_size,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers, using Plan A for shortcut connection.\"\"\"\n\n    del activate_before_residual\n    with tf.name_scope('residual_v1') as name_scope:\n      orig_x = x\n\n      x = self._conv(x, kernel_size, out_filter, stride)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      x = self._conv(x, kernel_size, out_filter, 1)\n      x = self._batch_norm(x)\n\n      if in_filter != out_filter:\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        pad = (out_filter - in_filter) // 2\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = self._relu(tf.add(x, orig_x))\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _residual_v2(self,\n                   x,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers with preactivation, plan A shortcut.\"\"\"\n\n    with tf.name_scope('residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 3, out_filter, stride)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 3, out_filter, [1, 1, 1, 1])\n\n      if in_filter != out_filter:\n        pad = (out_filter - in_filter) // 2\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _bottleneck_residual_v2(self,\n                              x,\n                              in_filter,\n                              out_filter,\n                              stride,\n                              activate_before_residual=False):\n    \"\"\"Bottleneck residual unit with 3 sub layers, plan B shortcut.\"\"\"\n\n    with tf.name_scope('bottle_residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 1, out_filter // 4, stride, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      # pad when stride isn't unit\n      x = self._conv(x, 3, out_filter // 4, 1, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 1, out_filter, 1, is_atrous=True)\n\n      if in_filter != out_filter:\n        orig_x = self._conv(orig_x, 1, out_filter, stride, is_atrous=True)\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _conv(self, x, kernel_size, filters, strides, is_atrous=False):\n    \"\"\"Convolution.\"\"\"\n\n    padding = 'SAME'\n    if not is_atrous and strides > 1:\n      pad = kernel_size - 1\n      pad_beg = pad // 2\n      pad_end = pad - pad_beg\n      if self._data_format == 'channels_first':\n        x = tf.pad(x, [[0, 0], [0, 0], [pad_beg, pad_end], [pad_beg, pad_end]])\n      else:\n        x = tf.pad(x, [[0, 0], [pad_beg, pad_end], [pad_beg, pad_end], [0, 0]])\n      padding = 'VALID'\n    return tf.layers.conv2d(\n        inputs=x,\n        kernel_size=kernel_size,\n        filters=filters,\n        strides=strides,\n        padding=padding,\n        use_bias=False,\n        data_format=self._data_format)\n\n  def _batch_norm(self, x):\n    if self._data_format == 'channels_first':\n      data_format = 'NCHW'\n    else:\n      data_format = 'NHWC'\n    return tf.contrib.layers.batch_norm(\n        x,\n        decay=self._batch_norm_decay,\n        center=True,\n        scale=True,\n        epsilon=self._batch_norm_epsilon,\n        is_training=self._training,\n        fused=True,\n        data_format=data_format)\n\n  def _relu(self, x):\n    return tf.nn.relu(x)\n\n  def _fully_connected(self, x, out_dim):\n    with tf.name_scope('fully_connected') as name_scope:\n      x = tf.layers.dense(x, out_dim)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _avg_pool(self, x, pool_size, stride):\n    with tf.name_scope('avg_pool') as name_scope:\n      x = tf.layers.average_pooling2d(\n          x, pool_size, stride, 'SAME', data_format=self._data_format)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _global_avg_pool(self, x):\n    with tf.name_scope('global_avg_pool') as name_scope:\n      assert x.get_shape().ndims == 4\n      if self._data_format == 'channels_first':\n        x = tf.reduce_mean(x, [2, 3])\n      else:\n        x = tf.reduce_mean(x, [1, 2])\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/train/train.sh",
    "content": "data_dir='../input/tfrecords'\npython ./train.py \\\n    --model_dir=../input/model/tf/baseline \\\n    --train_input=$data_dir'/train.tfrecords,' \\\n    --valid_input=$data_dir'/valid.tfrecords,' \\\n    --test_input=$data_dir'/test.tfrecords,' \\\n    --variable_strategy=cpu \\\n    --batch_size=32 \\\n    --batch_size_per_gpu=1 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --interval_steps=0 \\\n    --eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=0 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=40 \\\n    --return_dict=1 \\\n"
  },
  {
    "path": "projects/kaggle/blindness/tf/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('model_dir', './mount/temp/cifar10/model/resnet', '')\nflags.DEFINE_string('algo', 'resnet', '')\n\nimport numpy as np\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom model import Model\nfrom dataset import DataSet\n\nfrom loss import criterion\nimport evaluate as ev\n\ndef get_dataset(subset):\n  data_dir = '../input/tfrecords/' \n  use_distortion = False\n  if subset == 'train':\n    use_distortion = True\n  return DataSet(data_dir, subset=subset, use_distortion=use_distortion) \n\n\n# TODO FIXME why 1gpu ok 2gpu fail ? train.py all ok... ai2018/sentiment/model.py bert is also all ok why here wrong ?\ndef main(_):\n  melt.apps.init()\n\n  model = Model()\n\n  logging.info(model)\n  fit = melt.apps.get_fit()\n\n  fit(get_dataset,\n      model,  \n      criterion,\n      eval_fn=ev.evaluate,\n      valid_write_fn=ev.valid_write,\n      infer_write_fn=ev.infer_write,\n      valid_suffix='.valid.csv',\n      infer_suffix='.infer.csv')   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/kaggle/blindness/tf2/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('random_brightness', False, '')\nflags.DEFINE_bool('random_contrast', False, '')\nflags.DEFINE_bool('return_dict', False, '')\n\nHEIGHT = 224\nWIDTH = 224\nDEPTH = 3\n\n\nclass DataSet(object):\n\n  def __init__(self, data_dir, subset='train', use_distortion=True):\n    self.data_dir = data_dir\n    self.subset = subset\n    self.use_distortion = use_distortion\n\n  def get_filenames(self):\n    if self.subset in ['train', 'valid', 'test']:\n      return [os.path.join(self.data_dir, self.subset + '.tfrecords')]\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % self.subset)\n\n  def parser(self, serialized_example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    # Dimensions of the images in the CIFAR-10 dataset.\n    # See http://www.cs.toronto.edu/~kriz/cifar.html for a description of the\n    # input format.\n    features = tf.parse_single_example(\n        serialized_example,\n        features={\n            'id': tf.FixedLenFeature([], tf.string),\n            'image': tf.FixedLenFeature([], tf.string),\n            'label': tf.FixedLenFeature([], tf.int64),\n        })\n\n    image = features['image']\n    #image = tf.expand_dims(image, axis=-1)\n    print('--------------1', image)\n    #image = tf.decode_raw(image, tf.uint8)\n    image = tf.image.decode_png(image)\n    #image.set_shape([HEIGHT * WIDTH * DEPTH])\n    print('--------------2', image, image.shape)\n\n    #image = tf.cast(\n    #    tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n    #    tf.float32)\n    image = tf.cast(image, tf.float32)\n\n    label = tf.cast(features['label'], tf.int32)\n    id = features['id']\n\n    # Custom preprocessing.\n    image = self.preprocess(image)\n\n    # if not FLAGS.return_dict:\n    #   return id, image, label\n    # else:\n    #   return {'id': id, 'image': image}, label\n\n    return image, label\n\n\n  def make_batch(self, batch_size, filenames=None, repeat=None, initializable=None):\n    \"\"\"Read the images and labels from 'filenames'.\"\"\"\n    filenames = filenames or self.get_filenames()\n    \n    if initializable is None:\n      initializable = self.subset != 'train'\n    \n    # Repeat infinitely.\n    dataset = tf.data.TFRecordDataset(filenames).repeat()\n\n    # Parse records.\n    dataset = dataset.map(\n        self.parser, num_parallel_calls=batch_size)\n\n    # Potentially shuffle records.\n    if self.subset == 'train':\n      min_queue_examples = int(\n          DataSet.num_examples_per_epoch(self.subset) * 0.4)\n      # Ensure that the capacity is sufficiently large to provide good random\n      # shuffling.\n      dataset = dataset.shuffle(buffer_size=min_queue_examples + 3 * batch_size)\n\n    # Batch it up.\n    dataset = dataset.batch(batch_size)\n    if not tf.executing_eagerly():\n      if not initializable:\n        iterator = dataset.make_one_shot_iterator()\n      else:\n        iterator = dataset.make_initializable_iterator()\n      self.iterator = iterator\n      return iterator\n    \n    return dataset\n\n  def preprocess(self, image):\n    \"\"\"Preprocess a single image in [height, width, depth] layout.\"\"\"\n    if self.subset == 'train' and self.use_distortion:\n      # Pad 4 pixels on each dimension of feature map, done in mini-batch\n      #... yes should do something like below.. but you will see with dataset.map.. not ok as summary without scope and finally graph has no these summaries\n      # refer to https://stackoverflow.com/questions/47345394/image-summaries-with-tensorflows-dataset-api  TODO FIXME\n      tf.summary.image('image', image)\n      #print('--------', image)\n      #image = tf.image.resize_image_with_crop_or_pad(image, 256, 256)\n      image = tf.image.resize_images(image, [256, 256], method=0)\n      image = tf.random_crop(image, [HEIGHT, WIDTH, DEPTH])\n      image = tf.image.random_flip_left_right(image)\n      if FLAGS.random_brightness:\n        image = tf.image.random_brightness(image,\n                                          max_delta=63)\n      if FLAGS.random_contrast:\n        distorted_image = tf.image.random_contrast(image,\n                                                  lower=0.2, \n                                                  upper=1.8)\n      tf.summary.image('image/distort', image)\n    else:\n      image = tf.image.resize_images(image, [HEIGHT, WIDTH], method=0)      \n\n    image = tf.cast(\n        tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n        tf.float32)\n\n    return image\n\n  @staticmethod\n  def num_examples_per_epoch(subset='train'):\n    if subset == 'train':\n      return 3295\n    elif subset == 'valid':\n      return 367\n    elif subset == 'test':\n      return 1928\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % subset)\n"
  },
  {
    "path": "projects/kaggle/blindness/tf2/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-12-07 15:19:16.505094\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn import metrics\nimport gezi\n\nnum_classes = 5\ndef evaluate(labels, logits, ids=None):\n  logits = logits[:, :num_classes]\n  predicts = np.argmax(logits, -1)\n  acc = np.mean(np.equal(predicts, labels))\n\n  probs = gezi.softmax(logits)\n  loss = metrics.log_loss(labels, probs)\n\n  kappa = metrics.cohen_kappa_score(labels, predicts)\n\n  vals = [loss, acc, kappa]\n  names = ['loss', 'acc', 'kappa']\n\n  return vals, names\n\ndef write(ids, labels, logits, ofile):\n  logits = logits[:, :num_classes]\n  df = pd.DataFrame()\n  df['id_code'] = ids\n  predicts = np.argmax(logits, -1)\n  df['diagnosis'] = predicts\n  if labels is not None: \n    df['label'] = labels\n  df= df.sort_values('id_code') \n  df.to_csv(ofile, index=False)\n\ndef valid_write(ids, labels, logits, ofile):\n  return write(ids, labels, logits, ofile)\n\ndef infer_write(ids, logits, ofile):\n  return write(ids, None, logits, ofile)\n"
  },
  {
    "path": "projects/kaggle/blindness/tf2/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-12-07 15:19:21.172303\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  #weight_decay = 0.0002\n\n  loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=y_, labels=y)\n  loss = tf.reduce_mean(loss)\n\n  #model_params = tf.trainable_variables()\n  #loss += weight_decay * tf.add_n(\n  #    [tf.nn.l2_loss(v) for v in model_params])\n  return loss  \n\n"
  },
  {
    "path": "projects/kaggle/blindness/tf2/model.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Model class for Cifar10 Dataset.\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\n\nimport melt\n\nimport tensorflow as tf\nfrom tensorflow import keras\n\n# from keras.applications.densenet import DenseNet121,DenseNet169\n# from keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n#                           BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\n\n# from keras.models import Model\n\nfrom tensorflow.keras.applications.densenet import DenseNet121,DenseNet169\nfrom tensorflow.keras.layers import (Activation, Dropout, Flatten, Dense, GlobalMaxPooling2D,\n                          BatchNormalization, Input, Conv2D, GlobalAveragePooling2D,concatenate,Concatenate)\n\nfrom tensorflow.keras.models import Model\n\ndef create_model(input_shape, n_out):\n  # TODO can we ignore input and output shape ? as for text might be undetermined length\n  input_tensor = Input(shape=input_shape)\n  base_model = DenseNet121(include_top=False,\n                  weights=None,\n                  input_tensor=input_tensor)\n  base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n  x = GlobalAveragePooling2D()(base_model.output)\n  x = Dropout(0.5)(x)\n  x = Dense(1024, activation='relu')(x)\n  x = Dropout(0.5)(x)\n  final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n  model = Model(input_tensor, final_output) \n  return model\n\n# class Model(tf.keras.Model):\n#   def __init__(self, input_shape, n_out):\n#     super(Model, self).__init__()\n#     self.model = create_model(input_shape, n_out)\n     \n#   def call(self, x, training=False):\n##    x = x['image']\n#     return model(x, training=training)\n\nclass Model(tf.keras.Model):\n  def __init__(self):\n    super(Model, self).__init__()\n    base_model = DenseNet121(include_top=False,\n                  weights=None,\n                  input_shape=(224, 224, 3),\n                  )\n    base_model.load_weights(\"../input/densenet-keras/DenseNet-BC-121-32-no-top.h5\")\n    self.model = base_model\n     \n  def call(self, x, training=False):\n    #x = x['image']\n    x = self.model(x)\n    x = GlobalAveragePooling2D()(x)\n    x = Dropout(0.5)(x)\n    x = Dense(1024, activation='relu')(x)\n    x = Dropout(0.5)(x)\n    n_out = 3\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)    \n    return final_output\n"
  },
  {
    "path": "projects/kaggle/blindness/tf2/train/train.sh",
    "content": "data_dir='../input/tfrecords'\npython ./train.py \\\n    --model_dir=../input/model/tf/baseline \\\n    --train_input=$data_dir'/train.tfrecords,' \\\n    --valid_input=$data_dir'/valid.tfrecords,' \\\n    --test_input=$data_dir'/test.tfrecords,' \\\n    --variable_strategy=cpu \\\n    --batch_size=32 \\\n    --batch_size_per_gpu=1 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --interval_steps=0 \\\n    --eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=0 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.001 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=40 \\\n    --return_dict=1 \\\n"
  },
  {
    "path": "projects/kaggle/blindness/tf2/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nfrom tensorflow import keras\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('model_dir', './mount/temp/cifar10/model/resnet', '')\nflags.DEFINE_string('algo', 'resnet', '')\n\nimport numpy as np\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\n#from model import create_model\nfrom model import Model \n\nfrom dataset import DataSet, HEIGHT, WIDTH\n\nfrom loss import criterion\nimport evaluate as ev\n\nNUM_CLASSES = 5\n\ndef get_dataset(subset):\n  data_dir = '../input/tfrecords/' \n  use_distortion = False\n  if subset == 'train':\n    use_distortion = True\n  return DataSet(data_dir, subset=subset, use_distortion=use_distortion) \n\n# TODO FIXME why 1gpu ok 2gpu fail ? train.py all ok... ai2018/sentiment/model.py bert is also all ok why here wrong ?\ndef main(_):\n  tf.enable_eager_execution()\n  melt.apps.init()\n\n  #model = create_model((HEIGHT,WIDTH,3), NUM_CLASSES)\n  #model = Model((HEIGHT,WIDTH,3), NUM_CLASSES)\n  model = Model()\n\n  #print(model.summary())\n\n  # # logging.info(model)\n  # fit = melt.apps.get_fit()\n\n  # fit(get_dataset,\n  #     model,  \n  #     criterion,\n  #     eval_fn=ev.evaluate,\n  #     valid_write_fn=ev.valid_write,\n  #     infer_write_fn=ev.infer_write,\n  #     valid_suffix='.valid.csv',\n  #     infer_suffix='.infer.csv',\n  #     #optimizer=keras.optimizers.Adam(lr=1e-4)\n  #     )   \n  \n  dt = get_dataset('train')\n  train_data = dt.make_batch(FLAGS.batch_size, ['../input/tfrecords/train.tfrecords'])\n  #train_data[0] = train_data[0]['image']\n  dt_valid = get_dataset('valid')\n  valid_data = dt_valid.make_batch(FLAGS.batch_size, ['../input/tfrecords/valid.tfrecords'])\n  #valid_data[0] = valid_data[0]['image']\n\n  model.compile(\n          loss='sparse_categorical_crossentropy',\n          optimizer=keras.optimizers.Adam(lr=1e-4),\n          #metrics=['accuracy'])\n  )\n\n  model.fit(\n            train_data,\n            steps_per_epoch=np.ceil(DataSet.num_examples_per_epoch('train') / FLAGS.batch_size),\n            validation_data=valid_data,\n            validation_steps=np.ceil(DataSet.num_examples_per_epoch('valid') / FLAGS.batch_size),\n            epochs=5)\n\n  # model.fit_generator(\n  #           train_data,\n  #           steps_per_epoch=np.ceil(DataSet.num_examples_per_epoch('train') / FLAGS.batch_size),\n  #           validation_data=valid_data,\n  #           validation_steps=np.ceil(DataSet.num_examples_per_epoch('valid') / FLAGS.batch_size),\n  #           epochs=5)\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/kaggle/cifar10/README.md",
    "content": "generate tfrecords  \n./baseline/tf/cifar10_estimator/gen-records.sh\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/.idea/KerasT.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"PYTHON_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\">\n    <content url=\"file://$MODULE_DIR$\" />\n    <orderEntry type=\"inheritedJdk\" />\n    <orderEntry type=\"sourceFolder\" forTests=\"false\" />\n  </component>\n  <component name=\"TestRunnerService\">\n    <option name=\"projectConfiguration\" value=\"Nosetests\" />\n    <option name=\"PROJECT_TEST_RUNNER\" value=\"Nosetests\" />\n  </component>\n</module>"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/.idea/inspectionProfiles/Project_Default.xml",
    "content": "<component name=\"InspectionProjectProfileManager\">\n  <profile version=\"1.0\">\n    <option name=\"myName\" value=\"Project Default\" />\n    <inspection_tool class=\"PyUnresolvedReferencesInspection\" enabled=\"false\" level=\"WARNING\" enabled_by_default=\"false\" />\n  </profile>\n</component>"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/.idea/misc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectRootManager\" version=\"2\" project-jdk-name=\"Python 3.5.2 (C:\\local\\Anaconda3-4.1.1-Windows-x86_64\\python.exe)\" project-jdk-type=\"Python SDK\" />\n</project>"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/.idea/modules.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n      <module fileurl=\"file://$PROJECT_DIR$/.idea/KerasT.iml\" filepath=\"$PROJECT_DIR$/.idea/KerasT.iml\" />\n    </modules>\n  </component>\n</project>"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/.idea/preferred-vcs.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"PreferredVcsStorage\">\n    <preferredVcsName>ApexVCS</preferredVcsName>\n  </component>\n</project>"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/.idea/vcs.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping directory=\"$PROJECT_DIR$\" vcs=\"Git\" />\n  </component>\n</project>"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/4layerCNN.py",
    "content": "\"\"\"\n\nKeras Cifar-10 Classification\n\n\"\"\"\n# IMPORT ALL MODULES\n\nimport os\nos.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\"\nos.environ[\"CUDA_VISIBLE_DEVICES\"] = \"\"\n\nimport melt\nimport time\nimport matplotlib.pyplot as plt\nimport numpy as np\nfrom keras.models import Sequential\nfrom keras.layers import Dense\nfrom keras.layers import Dropout\nfrom keras.layers import Flatten\nfrom keras.constraints import maxnorm\nfrom keras.optimizers import SGD\nfrom keras.layers import Activation\nfrom keras.layers.convolutional import Conv2D\nfrom keras.layers.convolutional import MaxPooling2D\nfrom keras.layers.normalization import BatchNormalization\nfrom keras.utils import np_utils\n#from keras_sequential_ascii import sequential_model_to_ascii_printout\nfrom keras import backend as K\nif K.backend()=='tensorflow':\n    K.set_image_dim_ordering(\"th\")\n\n# Import Tensorflow with multiprocessing for use 16 cores on plon.io\nimport tensorflow as tf\nimport multiprocessing as mp\n\ncore_num = mp.cpu_count()\nprint(core_num)\nconfig = tf.ConfigProto(\n    inter_op_parallelism_threads=core_num,\n    intra_op_parallelism_threads=core_num)\nsess = tf.Session(config=config)\n\n# Loading the CIFAR-10 datasets\nfrom keras.datasets import cifar10\n\n# Declare variables\n\nbatch_size = 32 # 32 examples in a mini-batch, smaller batch size means more updates in one epoch\nnum_classes = 10 #\nepochs = 200 # repeat 200 times\ndata_augmentation = True\n\n\n(x_train, y_train), (x_test, y_test) = cifar10.load_data() # x_train - training data(images), y_train - labels(digits)\nprint('x_train shape:', x_train.shape)\nprint(x_train.shape[0], 'train samples')\nprint(x_test.shape[0], 'test samples')\n\n# Here are the classes in the dataset, as well as 10 random images from each\n\nclass_names = ['airplane','automobile','bird','cat','deer',\n               'dog','frog','horse','ship','truck']\n\n# Print figure with 10 random images from each\n\nfig = plt.figure(figsize=(8,3))\nfor i in range(num_classes):\n    ax = fig.add_subplot(2, 5, 1 + i, xticks=[], yticks=[])\n    idx = np.where(y_train[:]==i)[0]\n    features_idx = x_train[idx,::]\n    img_num = np.random.randint(features_idx.shape[0])\n    im = np.transpose(features_idx[img_num,::],(1,2,0))\n    ax.set_title(class_names[i])\n    plt.imshow(im)\nplt.show()\n\n\n# Convert and pre-processing\n\ny_train = np_utils.to_categorical(y_train, num_classes)\ny_test = np_utils.to_categorical(y_test, num_classes)\nx_train = x_train.astype('float32')\nx_test = x_test.astype('float32')\nx_train  /= 255\nx_test /= 255\n\n# Define Model\n\ndef base_model():\n\n    model = Sequential()\n    model.add(Conv2D(32, (3, 3), padding='same', input_shape=x_train.shape[1:]))\n    model.add(Activation('relu'))\n    model.add(Conv2D(32,(3, 3)))\n    model.add(Activation('relu'))\n    model.add(MaxPooling2D(pool_size=(2, 2)))\n    model.add(Dropout(0.25))\n\n    model.add(Conv2D(64, (3, 3), padding='same'))\n    model.add(Activation('relu'))\n    model.add(Conv2D(64, (3,3)))\n    model.add(Activation('relu'))\n    model.add(MaxPooling2D(pool_size=(2, 2)))\n    model.add(Dropout(0.25))\n\n    model.add(Flatten())\n    model.add(Dense(512))\n    model.add(Activation('relu'))\n    model.add(Dropout(0.5))\n    model.add(Dense(num_classes))\n    model.add(Activation('softmax'))\n\n    sgd = SGD(lr = 0.1, decay=1e-6, nesterov=True)\n\n# Train model\n\n    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])\n    return model\ncnn_n = base_model()\ncnn_n.summary()\n\n# Vizualizing model structure\n\n#sequential_model_to_ascii_printout(cnn_n)\n\n# Fit model\n\ncnn = cnn_n.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test,y_test),shuffle=True)\n\n\n\n\n\n# Plots for training and testing process: loss and accuracy\n\nplt.figure(0)\nplt.plot(cnn.history['acc'],'r')\nplt.plot(cnn.history['val_acc'],'g')\nplt.xticks(np.arange(0, 11, 2.0))\nplt.rcParams['figure.figsize'] = (8, 6)\nplt.xlabel(\"Num of Epochs\")\nplt.ylabel(\"Accuracy\")\nplt.title(\"Training Accuracy vs Validation Accuracy\")\nplt.legend(['train','validation'])\n\nplt.figure(1)\nplt.plot(cnn.history['loss'],'r')\nplt.plot(cnn.history['val_loss'],'g')\nplt.xticks(np.arange(0, 11, 2.0))\nplt.rcParams['figure.figsize'] = (8, 6)\nplt.xlabel(\"Num of Epochs\")\nplt.ylabel(\"Loss\")\nplt.title(\"Training Loss vs Validation Loss\")\nplt.legend(['train','validation'])\nplt.show()\n\nscores = cnn_n.evaluate(x_test, y_test, verbose=0)\nprint(\"Accuracy: %.2f%%\" % (scores[1]*100))\n\n\n# Confusion matrix result\n\nfrom sklearn.metrics import classification_report, confusion_matrix\nY_pred = cnn_n.predict(x_test, verbose=2)\ny_pred = np.argmax(Y_pred, axis=1)\n\nfor ix in range(10):\n    print(ix, confusion_matrix(np.argmax(y_test,axis=1),y_pred)[ix].sum())\ncm = confusion_matrix(np.argmax(y_test,axis=1),y_pred)\nprint(cm)\n\n# Visualizing of confusion matrix\nimport seaborn as sn\nimport pandas  as pd\n\n\ndf_cm = pd.DataFrame(cm, range(10),\n                  range(10))\nplt.figure(figsize = (10,7))\nsn.set(font_scale=1.4)#for label size\nsn.heatmap(df_cm, annot=True,annot_kws={\"size\": 12})# font size\nplt.show()\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/6layerCNN.py",
    "content": "import os\nos.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\"\nos.environ[\"CUDA_VISIBLE_DEVICES\"] = \"\"\n\nimport time\nimport matplotlib.pyplot as plt\nimport numpy as np\nfrom keras.models import Sequential\nfrom keras.layers import Dense\nfrom keras.layers import Dropout\nfrom keras.layers import Flatten\nfrom keras.constraints import maxnorm\nfrom keras.optimizers import SGD\nfrom keras.layers import Activation\nfrom keras.layers.convolutional import Conv2D\nfrom keras.layers.convolutional import MaxPooling2D\nfrom keras.layers.normalization import BatchNormalization\nfrom keras.utils import np_utils\nfrom keras_sequential_ascii import sequential_model_to_ascii_printout\nfrom keras import backend as K\nif K.backend()=='tensorflow':\n    K.set_image_dim_ordering(\"th\")\n\n# Import Tensorflow with multiprocessing for use 16 cores on plon.io\nimport tensorflow as tf\nimport multiprocessing as mp\n\ncore_num = mp.cpu_count()\nprint(core_num)\nconfig = tf.ConfigProto(\n    inter_op_parallelism_threads=core_num,\n    intra_op_parallelism_threads=core_num)\nsess = tf.Session(config=config)\n\n# Loading the CIFAR-10 datasets\nfrom keras.datasets import cifar10\n\n# Declare variables\n\nbatch_size = 32 # 32 examples in a mini-batch, smaller batch size means more updates in one epoch\nnum_classes = 10 #\nepochs = 200 # repeat 200 times\ndata_augmentation = True\n\n\n(x_train, y_train), (x_test, y_test) = cifar10.load_data() # x_train - training data(images), y_train - labels(digits)\nprint('x_train shape:', x_train.shape)\nprint(x_train.shape[0], 'train samples')\nprint(x_test.shape[0], 'test samples')\n\n# Here are the classes in the dataset, as well as 10 random images from each\n\nclass_names = ['airplane','automobile','bird','cat','deer',\n               'dog','frog','horse','ship','truck']\n\n# Print figure with 10 random images from each\n\nfig = plt.figure(figsize=(8,3))\nfor i in range(num_classes):\n    ax = fig.add_subplot(2, 5, 1 + i, xticks=[], yticks=[])\n    idx = np.where(y_train[:]==i)[0]\n    features_idx = x_train[idx,::]\n    img_num = np.random.randint(features_idx.shape[0])\n    im = np.transpose(features_idx[img_num,::],(1,2,0))\n    ax.set_title(class_names[i])\n    plt.imshow(im)\nplt.show()\n\n\n# Convert and pre-processing\n\ny_train = np_utils.to_categorical(y_train, num_classes)\ny_test = np_utils.to_categorical(y_test, num_classes)\nx_train = x_train.astype('float32')\nx_test = x_test.astype('float32')\nx_train  /= 255\nx_test /= 255\n\n# Define Model\n\ndef base_model():\n    model = Sequential()\n\n    model.add(Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=x_train.shape[1:]))\n    model.add(Dropout(0.2))\n\n    model.add(Conv2D(32,(3,3),padding='same', activation='relu'))\n    model.add(MaxPooling2D(pool_size=(2,2)))\n\n    model.add(Conv2D(64,(3,3),padding='same',activation='relu'))\n    model.add(Dropout(0.2))\n\n    model.add(Conv2D(64,(3,3),padding='same',activation='relu'))\n    model.add(MaxPooling2D(pool_size=(2,2)))\n\n    model.add(Conv2D(128,(3,3),padding='same',activation='relu'))\n    model.add(Dropout(0.2))\n\n    model.add(Conv2D(128,(3,3),padding='same',activation='relu'))\n    model.add(MaxPooling2D(pool_size=(2,2)))\n\n    model.add(Flatten())\n    model.add(Dropout(0.2))\n    model.add(Dense(1024,activation='relu',kernel_constraint=maxnorm(3)))\n    model.add(Dropout(0.2))\n    model.add(Dense(num_classes, activation='softmax'))\n\n\n\n    sgd = SGD(lr=0.01, momentum=0.9, decay=1e-6, nesterov=False)\n\n# Train model\n\n    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])\n    return model\ncnn_n = base_model()\ncnn_n.summary()\n\n# Vizualizing model structure\n\nsequential_model_to_ascii_printout(cnn_n)\n\n# Fit model\n\ncnn = cnn_n.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test,y_test),shuffle=True)\n\n\n\n\n\n# Plots for training and testing process: loss and accuracy\n\nplt.figure(0)\nplt.plot(cnn.history['acc'],'r')\nplt.plot(cnn.history['val_acc'],'g')\nplt.xticks(np.arange(0, 11, 2.0))\nplt.rcParams['figure.figsize'] = (8, 6)\nplt.xlabel(\"Num of Epochs\")\nplt.ylabel(\"Accuracy\")\nplt.title(\"Training Accuracy vs Validation Accuracy\")\nplt.legend(['train','validation'])\n\n\nplt.figure(1)\nplt.plot(cnn.history['loss'],'r')\nplt.plot(cnn.history['val_loss'],'g')\nplt.xticks(np.arange(0, 11, 2.0))\nplt.rcParams['figure.figsize'] = (8, 6)\nplt.xlabel(\"Num of Epochs\")\nplt.ylabel(\"Loss\")\nplt.title(\"Training Loss vs Validation Loss\")\nplt.legend(['train','validation'])\n\n\nplt.show()\n\nscores = cnn_n.evaluate(x_test, y_test, verbose=0)\nprint(\"Accuracy: %.2f%%\" % (scores[1]*100))\n\n\n# Confusion matrix result\n\nfrom sklearn.metrics import classification_report, confusion_matrix\nY_pred = cnn_n.predict(x_test, verbose=2)\ny_pred = np.argmax(Y_pred, axis=1)\n\nfor ix in range(10):\n    print(ix, confusion_matrix(np.argmax(y_test,axis=1),y_pred)[ix].sum())\ncm = confusion_matrix(np.argmax(y_test,axis=1),y_pred)\nprint(cm)\n\n# Visualizing of confusion matrix\nimport seaborn as sn\nimport pandas  as pd\n\n\ndf_cm = pd.DataFrame(cm, range(10),\n                  range(10))\nplt.figure(figsize = (10,7))\nsn.set(font_scale=1.4)#for label size\nsn.heatmap(df_cm, annot=True,annot_kws={\"size\": 12})# font size\nplt.show()"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/ConfusionMatrixVisualization.py",
    "content": "import seaborn as sn\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\n# Simple example for array bellow\n\narray = [[736,  11,  54,  45,  30,  14,  15 ,  9,  61,  25],\n [ 10, 839,   6 , 38,   3  ,13,   7,   5 , 22,  57],\n [ 47 ,  2 ,566 , 96 ,145 , 65,  51 , 17 ,  7  , 4],\n [ 23  , 6  ,56 ,570  ,97 ,140,  57 , 29 , 12 , 10],\n [ 16  , 2  ,52 , 80 ,700 , 55,  25 , 64 ,  3 ,  3],\n [ 10 ,  1  ,64 ,211 , 59 ,582,  24 , 39 ,  6 ,  4],\n [  4 ,  3  ,42 ,114, 121 , 40, 650 , 13 ,  5 ,  8],\n [ 14 ,  1  ,40 ,57,  69 , 68 , 11 ,723 ,  3  ,14],\n [ 93 , 32  ,26 , 37,  16 , 15 ,  6 ,  2, 752 , 21],\n [ 34 , 83  , 8,  42 , 12  ,21,   6 , 21,  25 ,748]]\n\ndf_cm = pd.DataFrame(array, range(10),\n                  range(10))\nplt.figure(figsize = (10,7))\nsn.set(font_scale=1.4)#for label size\nsn.heatmap(df_cm, annot=True,annot_kws={\"size\": 12})# font size\nplt.show()\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/KerasT-master/README.md",
    "content": "# CIFAR-10 IMAGE CLASSIFICATION WITH KERAS CONVOLUTIONAL NEURAL NETWORK TUTORIAL\n\n## What is Keras?\n\n\"Keras is an open source neural network library written in Python and capable of running on top of either [TensorFlow](https://www.tensorflow.org/), [CNTK](https://github.com/Microsoft/CNTK) or [Theano](http://deeplearning.net/software/theano/). \n\nUse Keras if you need a deep learning libraty that:\n* Allows for easy and fast prototyping\n* Supports both convolutional networks and recurrent networks, as well as combinations of the two\n* Runs seamlessly on CPU and GPU\n\nKeras is compatible with Python 2.7-3.5\"[1].\n\nSince Semptember 2016, Keras is the second-fastest growing Deep Learning framework after Google's Tensorflow, and the third largest after Tensorflow and Caffe[2].\n\n## What is Deep Learning?\n\n\"Deep Learning is the application to learning tasks of artificial neural networks(ANNs) that contain more than one hidden layer. Deep learning is part of [Machine Learning](https://en.wikipedia.org/wiki/Machine_learning) methods based on learning data representations.\nLearning can be [supervised](https://en.wikipedia.org/wiki/Supervised_learning), parially supervised or [unsupervised](https://en.wikipedia.org/wiki/Unsupervised_learning)[3].\"\n\n## Project desciption\n\nSimple Youtube presentation what type of visualization is generated:\n\n## What will you learn?\n\n\n\n\nYou will learn:\n\n* What is Keras library and how to use it\n* What is Deep Learning\n* How to use ready datasets\n* What is Convolutional Neural Networks(CNN)\n* How to build step by step Convolutional Neural Networks(CNN)\n* What are differences in model results\n* What is supervised and unsupervised learning\n* Basics of Machine Learning\n* Introduction to Artificial Intelligence(AI)\n\n## Project structure\n\n* 4layerCNN.py - 4-layer Keras model\n* 6layerCNN.py - 6-layer Keras model\n* README.md - project description step by step\n\n## Convolutional neural network\n\n\n### 6-layer neural network\n\n#### Network Architecture\n\n```\nOPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n\n               Input   #####      3   32   32\n              Conv2D    \\|/  -------------------       896     0.0%\n                relu   #####     32   32   32\n             Dropout    | || -------------------         0     0.0%\n                       #####     32   32   32\n              Conv2D    \\|/  -------------------      9248     0.4%\n                relu   #####     32   32   32\n        MaxPooling2D   Y max -------------------         0     0.0%\n                       #####     32   16   16\n              Conv2D    \\|/  -------------------     18496     0.8%\n                relu   #####     64   16   16\n             Dropout    | || -------------------         0     0.0%\n                       #####     64   16   16\n              Conv2D    \\|/  -------------------     36928     1.5%\n                relu   #####     64   16   16\n        MaxPooling2D   Y max -------------------         0     0.0%\n                       #####     64    8    8\n              Conv2D    \\|/  -------------------     73856     3.1%\n                relu   #####    128    8    8\n             Dropout    | || -------------------         0     0.0%\n                       #####    128    8    8\n              Conv2D    \\|/  -------------------    147584     6.2%\n                relu   #####    128    8    8\n        MaxPooling2D   Y max -------------------         0     0.0%\n                       #####    128    4    4\n             Flatten   ||||| -------------------         0     0.0%\n                       #####        2048\n             Dropout    | || -------------------         0     0.0%\n                       #####        2048\n               Dense   XXXXX -------------------   2098176    87.6%\n                relu   #####        1024\n             Dropout    | || -------------------         0     0.0%\n                       #####        1024\n               Dense   XXXXX -------------------     10250     0.4%\n             softmax   #####          10\n```\n\n#### Model\n```\nmodel = Sequential()\n\n    model.add(Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=x_train.shape[1:]))\n    model.add(Dropout(0.2))\n\n    model.add(Conv2D(32,(3,3),padding='same', activation='relu'))\n    model.add(MaxPooling2D(pool_size=(2,2)))\n\n    model.add(Conv2D(64,(3,3),padding='same',activation='relu'))\n    model.add(Dropout(0.2))\n\n    model.add(Conv2D(64,(3,3),padding='same',activation='relu'))\n    model.add(MaxPooling2D(pool_size=(2,2)))\n\n    model.add(Conv2D(128,(3,3),padding='same',activation='relu'))\n    model.add(Dropout(0.2))\n\n    model.add(Conv2D(128,(3,3),padding='same',activation='relu'))\n    model.add(MaxPooling2D(pool_size=(2,2)))\n\n    model.add(Flatten())\n    model.add(Dropout(0.2))\n    model.add(Dense(1024,activation='relu',kernel_constraint=maxnorm(3)))\n    model.add(Dropout(0.2))\n    model.add(Dense(num_classes, activation='softmax'))\n\n\n\n    sgd = SGD(lr=0.01, momentum=0.9, decay=1e-6, nesterov=False)\n```\nTrain model:\n```\n    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])\n    return model\ncnn_n = base_model()\ncnn_n.summary()\n```\nFit model:\n```\ncnn = cnn_n.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test,y_test),shuffle=True)\n```\n#### Results\n\nAll results are for 50k iteration, learning rate=0.01. Neural networks have been trained at **16 cores and 16GB RAM** on [plon.io](https://plon.io/)\n\n* epochs = 10 **accuracy=75.61%**\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/59651c4b8c5c480001b146f1)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/59651c4b8c5c480001b146f3)\n\n**Confusion matrix result:**\n```\n[[806   9  39  13  28    4   7   9  61  24]\n [ 14 870   4  10   3    4   7   0  28  60]\n [ 69   1 628  64 122   36  44  19  13   4]\n [ 19   5  52 582 109   99  76  29  14  15]\n [ 13   2  44  46 761   27  38  62   6   1]\n [ 15   1  50 189  69  588  31  48   7   2]\n [  8   3  39  53  52   14 814   4  10   3]\n [ 15   3  31  45  63   29   5 795   2  12]\n [ 61  13   8  10  17    1   4   4 875   7]\n [ 23  52  11  10   7    7   5  12  31 842]]\n```\n\n**Confusion matrix vizualizing**\n\n![610](https://user-images.githubusercontent.com/11740059/28138320-a88b8e60-6750-11e7-9ec4-ac73ab40ccc7.png)\n\n\nTime of learning process: **1h 45min**\n\n\n* epochs = 20 **accuracy=75.31%**\n\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/59654ea78c5c480001b146f9)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/59654ea78c5c480001b146fb)\n\n**Confusion matrix result:**\n```\n[[810   5  30  22  14    2   9  10  60  38]\n [ 13 862   7   8   3    6   4   7  20  70]\n [ 85   2 626  67  84   44  44  27  12   9]\n [ 39   6  47 581  73  137  50  38  17  12]\n [ 22   1  52  87 744   34  22  64   2   2]\n [ 20   3  40 178  44  639  21  48   2   5]\n [ 12   3  42  55  67   16 782  10   7   6]\n [ 15   2  24  38  59   37   3 810   5   7]\n [ 79  14  10  19   6    4   8   5 827  28]\n [ 25  60   8   9   8    5   2  12  21 850]]\n```\n\n**Confusion matrix vizualizing**\n\n![620](https://user-images.githubusercontent.com/11740059/28138461-2445946a-6751-11e7-930c-13217c9a5e13.png)\n\n\nTime of learning process: **3h 40min**\n\n* epochs = 50 **accuracy=69.93%**\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/596e67fed81bbc0001085260)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/596e67ffd81bbc0001085262)\n\n**Confusion matrix result:**\n```\n[[760   5  72  32  11   6  12   7  67  28]\n [ 12 862  10  16   3   2  18   4  30  43]\n [ 55   1 712  67  44  35  47  20  11   8]\n [ 37   7 126 554  63  81  69  45  11   7]\n [ 23   2 125  86 622  27  36  69   8   2]\n [ 20   2 121 201  48 488  56  50   7   7]\n [ 16   7 101  65  28  27 734   8  10   4]\n [ 16   4  59  60  57  36   9 749   5   5]\n [107  13  30  32   3  10   8   6 770  21]\n [ 42 100   8  26   8   7   4  21  42 742]]\n ```\n **Confusion matrix vizualizing**\n \n![650](https://user-images.githubusercontent.com/11740059/28338609-cf818aa2-6c09-11e7-83c0-89efa60b7c5f.png)\n\n\nTime of learning process: **8h 10min**\n\n\n* epochs = 100 **accuracy=68.66%**\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/596f6b4bd81bbc0001085268)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/596f6b4bd81bbc000108526a)\n\n**Confusion matrix result:**\n\n```\n[[736  11  54  45  30  14  15   9  61  25]\n [ 10 839   6  38   3  13   7   5  22  57]\n [ 47   2 566  96 145  65  51  17   7   4]\n [ 23   6  56 570  97 140  57  29  12  10]\n [ 16   2  52  80 700  55  25  64   3   3]\n [ 10   1  64 211  59 582  24  39   6   4]\n [  4   3  42 114 121  40 650  13   5   8]\n [ 14   1  40  57  69  68  11 723   3  14]\n [ 93  32  26  37  16  15   6   2 752  21]\n [ 34  83   8  42  12  21   6  21  25 748]]\n```\n\n **Confusion matrix vizualizing**\n \n ![6100](https://user-images.githubusercontent.com/11740059/28372892-30861cfe-6ca1-11e7-9bbf-83fe0a995c2d.png)\n\n\nTime of learning process: **17h 10min**\n\n### 4-Layer neural network\n\n\n#### Network Architecture\n```\nOPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n\n               Input   #####      3   32   32\n              Conv2D    \\|/  -------------------       896     0.1%\n                relu   #####     32   32   32\n              Conv2D    \\|/  -------------------      9248     0.7%\n                relu   #####     32   30   30\n        MaxPooling2D   Y max -------------------         0     0.0%\n                       #####     32   15   15\n             Dropout    | || -------------------         0     0.0%\n                       #####     32   15   15\n              Conv2D    \\|/  -------------------     18496     1.5%\n                relu   #####     64   15   15\n              Conv2D    \\|/  -------------------     36928     3.0%\n                relu   #####     64   13   13\n        MaxPooling2D   Y max -------------------         0     0.0%\n                       #####     64    6    6\n             Dropout    | || -------------------         0     0.0%\n                       #####     64    6    6\n             Flatten   ||||| -------------------         0     0.0%\n                       #####        2304\n               Dense   XXXXX -------------------   1180160    94.3%\n                relu   #####         512\n             Dropout    | || -------------------         0     0.0%\n                       #####         512\n               Dense   XXXXX -------------------      5130     0.4%\n             softmax   #####          10\n```\n#### Model\n\n```\nmodel = Sequential()\n    model.add(Conv2D(32, (3, 3), padding='same', input_shape=x_train.shape[1:]))\n    model.add(Activation('relu'))\n    model.add(Conv2D(32,(3, 3)))\n    model.add(Activation('relu'))\n    model.add(MaxPooling2D(pool_size=(2, 2)))\n    model.add(Dropout(0.25))\n\n    model.add(Conv2D(64, (3, 3), padding='same'))\n    model.add(Activation('relu'))\n    model.add(Conv2D(64, (3,3)))\n    model.add(Activation('relu'))\n    model.add(MaxPooling2D(pool_size=(2, 2)))\n    model.add(Dropout(0.25))\n\n    model.add(Flatten())\n    model.add(Dense(512))\n    model.add(Activation('relu'))\n    model.add(Dropout(0.5))\n    model.add(Dense(num_classes))\n    model.add(Activation('softmax'))\n\n    sgd = SGD(lr = 0.1, decay=1e-6, nesterov=True)\n```\nTrain model:\n```\n    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])\n    return model\ncnn_n = base_model()\ncnn_n.summary()\n```\nFit model:\n```\ncnn = cnn_n.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test,y_test),shuffle=True)\n```\n\n#### Results\n\nAll results are for 50k iteration, learning rate=0.1. Neural networks have been trained at **16 cores and 16GB RAM** on [plon.io](https://plon.io/)\n\n* epochs = 10  **accuracy=71.29%**\n\n\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/5965fdac8c5c48000129f83f)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/5965fdac8c5c48000129f841)\n\n**Confusion matrix result:**\n\n```\n[[772   5  24  19  17   6  18  10  66  63]\n [ 14 637   1   4   3   7  19   2  38 275]\n [ 81   0 538  50  88  86  93  27  19  18]\n [ 20   1  52 468  60 180 143  33  13  30]\n [ 19   1  51  59 662  33  91  66  16   2]\n [ 12   0  34 135  37 664  53  41  11  13]\n [  7   0  23  29  26  13 885   2  10   5]\n [ 10   0  24  45  48  69  20 756   5  23]\n [ 74   4   3   9   4   6   8   4 854  34]\n [ 18   8   5  13   9   4  10   6  34 893]]\n```\n\n**Confusion matrix vizualizing**\n\n![410](https://user-images.githubusercontent.com/11740059/28138095-dd7402c0-674f-11e7-831d-907f59da2723.png)\n\nTime of learning process: **1h 10min**\n\n* epochs = 20 **accuracy=74.57%**\n\n\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/59639691c0265100013c2c80)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/59639691c0265100013c2c82)\n\n**Confusion matrix result:**\n\n```\n[[729  11  56  36  52    5  12  11  58  30]\n [  8 883   1  12   5    1  19   0  11  60]\n [ 40   3 545  88 152   54  71  35   7   5]\n [ 10   8  30 583 128  106  75  38  10  12]\n [  7   1  15  37 806    9  43  77   5   0]\n [  6   5  18 214  76  586  32  59   2   2]\n [  3   3  23  58  65    7 825  11   4   1]\n [  5   2  12  56  73   24  11 811   0   6]\n [ 39  30  11  18  18    5  11   5 847  16]\n [ 30  61   3  22   9    2   7   8  16 842]]\n```\n\n**Confusion matrix vizualizing**\n\n![420](https://user-images.githubusercontent.com/11740059/28138581-98f7c1c0-6751-11e7-8f87-0d513b29391b.png)\n\nTime of learning process: **2h 15min**\n\n* epochs = 50 **accuracy=75.32%**\n\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/5963e88fc0265100013c2c8c)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/5963e890c0265100013c2c8e)\n\n\n\n\nConfusion matrix result:\n\n```\n[[727   8  53  25  39    5   4  13  82   44]\n [  7 821   6  10   5    2   4   2  22  121]\n [ 46   0 652  66 107   43  40  30   9    7]\n [ 14   2  61 577 113  125  40  32  13   23]\n [  7   0  46  39 812   15  20  49   6    6]\n [  3   1  47 150  66  649  17  49   4   14]\n [  1   3  49  69  80   27 751   2   9    9]\n [  9   0  22  47  65   38   8 791   3   17]\n [ 32  19   8  21  15    1   6   8 859   31]\n [ 19  30   8  14   5    0   2   9  20 893]]\n```\n\n**Confusion matrix vizualizing**\n\n![450](https://user-images.githubusercontent.com/11740059/28140056-0d399676-6757-11e7-976d-29001be11799.png)\n\n\nTime of learning process: **5h 45min**\n\n\n* epochs = 100 **accuracy=67.06%**\n\n\n![Keras Training Accuracy vs Validation Accuracy](https://plon.io/files/5965cefa8c5c480001546c67)\n![Keras Training Loss vs Validation Loss](https://plon.io/files/5965cf3e8c5c480001546c69)\n\nTime of learning process: **11h 10min**\n\nConfusion matrix result:\n\n```\n[[599   5  74  98  55   14  12   9 117  17]\n [ 16 738  12  65   9   26   7   6  40  81]\n [ 31   0 523 168 136   86  33  14   9   0]\n [ 10   1  31 652  90  175  19  15   5   2]\n [  6   0  34 132 717   55  16  31   9   0]\n [  5   1  17 233  53  661  10  15   4   1]\n [  2   1  39 157 105   48 637   3   7   1]\n [  6   0  14  97 103   96   5 637   5   1]\n [ 41   7  28  84  19   18   6   4 783  10]\n [ 25  28   8  77  29   27   5  19  59 723]]\n\n```\n\n\n**Confusion matrix vizualizing**\n\n![4100](https://user-images.githubusercontent.com/11740059/28138980-e79bebf2-6752-11e7-9415-e45272435a9c.png)\n\n\n## Resources\n\n1. [Official Keras Documentation](https://keras.io/)\n2. [About Keras on Wikipedia](https://en.wikipedia.org/wiki/Keras)\n3. [About Deep Learning on Wikipedia](https://en.wikipedia.org/wiki/Deep_learning)\n4. [Tutorial by Dr. Jason Brownlee](http://machinelearningmastery.com/object-recognition-convolutional-neural-networks-keras-deep-learning-library/)\n5. [Tutorial by Parneet Kaur](http://parneetk.github.io/blog/cnn-cifar10/)\n6. [Tutorial by Giuseppe Bonaccorso](https://www.bonaccorso.eu/2016/08/06/cifar-10-image-classification-with-keras-convnet/)\n7. Open Source on GitHub\n\n\n## Grab the code or run project in online IDE\n* You can [download code from GitHub](https://github.com/simongeek/KerasT)\n* You can [run the project in your browser](https://plon.io/explore/keras-cifar-10-classification/m5UMC4nOeCFLM6yXN)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/.gitignore",
    "content": ".DS_Store\n__pycache__/\n*.log\n.ipynb_checkpoints\nimages/\n*.h5\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/README.md",
    "content": "# Hands-on Deep Learning\n\nCode for a tutorial series by [deepsense.ai](https://deepsense.ai/), on learning deep learning the practical way.\n\n* [Starting deep learning hands-on: image classification on CIFAR-10](https://blog.deepsense.ai/deep-learning-hands-on-image-classification/)\n* ...more coming soon!"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/aux/cifar100_meta",
    "content": "\u0002}q\u0001(U\u0010fine_label_namesq\u0002]q\u0003(U\u0005appleq\u0004U\raquarium_fishq\u0005U\u0004babyq\u0006U\u0004bearq\u0007U\u0006beaverq\bU\u0003bedq\tU\u0003beeq\nU\u0006beetleq\u000bU\u0007bicycleq\fU\u0006bottleq\rU\u0004bowlq\u000eU\u0003boyq\u000fU\u0006bridgeq\u0010U\u0003busq\u0011U\tbutterflyq\u0012U\u0005camelq\u0013U\u0003canq\u0014U\u0006castleq\u0015U\u000bcaterpillarq\u0016U\u0006cattleq\u0017U\u0005chairq\u0018U\nchimpanzeeq\u0019U\u0005clockq\u001aU\u0005cloudq\u001bU\tcockroachq\u001cU\u0005couchq\u001dU\u0004crabq\u001eU\tcrocodileq\u001fU\u0003cupq U\bdinosaurq!U\u0007dolphinq\"U\belephantq#U\bflatfishq$U\u0006forestq%U\u0003foxq&U\u0004girlq'U\u0007hamsterq(U\u0005houseq)U\bkangarooq*U\bkeyboardq+U\u0004lampq,U\nlawn_mowerq-U\u0007leopardq.U\u0004lionq/U\u0006lizardq0U\u0007lobsterq1U\u0003manq2U\nmaple_treeq3U\nmotorcycleq4U\bmountainq5U\u0005mouseq6U\bmushroomq7U\boak_treeq8U\u0006orangeq9U\u0006orchidq:U\u0005otterq;U\tpalm_treeq<U\u0004pearq=U\fpickup_truckq>U\tpine_treeq?U\u0005plainq@U\u0005plateqAU\u0005poppyqBU\tporcupineqCU\u0006possumqDU\u0006rabbitqEU\u0007raccoonqFU\u0003rayqGU\u0004roadqHU\u0006rocketqIU\u0004roseqJU\u0003seaqKU\u0004sealqLU\u0005sharkqMU\u0005shrewqNU\u0005skunkqOU\nskyscraperqPU\u0005snailqQU\u0005snakeqRU\u0006spiderqSU\bsquirrelqTU\tstreetcarqUU\tsunflowerqVU\fsweet_pepperqWU\u0005tableqXU\u0004tankqYU\ttelephoneqZU\ntelevisionq[U\u0005tigerq\\U\u0007tractorq]U\u0005trainq^U\u0005troutq_U\u0005tulipq`U\u0006turtleqaU\bwardrobeqbU\u0005whaleqcU\u000bwillow_treeqdU\u0004wolfqeU\u0005womanqfU\u0004wormqgeU\u0012coarse_label_namesqh]qi(U\u000faquatic_mammalsqjU\u0004fishqkU\u0007flowersqlU\u000ffood_containersqmU\u0014fruit_and_vegetablesqnU\u001chousehold_electrical_devicesqoU\u0013household_furnitureqpU\u0007insectsqqU\u0010large_carnivoresqrU\u001dlarge_man-made_outdoor_thingsqsU\u001clarge_natural_outdoor_scenesqtU\u001elarge_omnivores_and_herbivoresquU\u000emedium_mammalsqvU\u0018non-insect_invertebratesqwU\u0006peopleqxU\breptilesqyU\rsmall_mammalsqzU\u0005treesq{U\nvehicles_1q|U\nvehicles_2q}eu."
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/aux/cifar100_to_h5py.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"import pickle\\n\",\n    \"from keras import datasets\\n\",\n    \"import h5py\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"def unpickle(file):\\n\",\n    \"    with open(file, 'rb') as fo:\\n\",\n    \"        res = pickle.load(fo, encoding='bytes')\\n\",\n    \"    return res\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"meta = unpickle(\\\"cifar100_meta\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"dict_keys([b'fine_label_names', b'coarse_label_names'])\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"meta.keys()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"30\"\n      ]\n     },\n     \"execution_count\": 24,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"coarse_label_names = [s.decode('utf-8') for s in meta[b'coarse_label_names']]\\n\",\n    \"max([len(s) for s in coarse_label_names])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"13\"\n      ]\n     },\n     \"execution_count\": 25,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"fine_label_names = [s.decode('utf-8') for s in meta[b'fine_label_names']]\\n\",\n    \"max([len(s) for s in fine_label_names])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"array([b'aquatic_mammals', b'fish', b'flowers', b'food_containers',\\n\",\n       \"       b'fruit_and_vegetables', b'household_electrical_devices',\\n\",\n       \"       b'household_furniture', b'insects', b'large_carnivores',\\n\",\n       \"       b'large_man-made_outdoor_things', b'large_natural_outdoor_scenes',\\n\",\n       \"       b'large_omnivores_and_herbivores', b'medium_mammals',\\n\",\n       \"       b'non-insect_invertebrates', b'people', b'reptiles',\\n\",\n       \"       b'small_mammals', b'trees', b'vehicles_1', b'vehicles_2'], \\n\",\n       \"      dtype='|S30')\"\n      ]\n     },\n     \"execution_count\": 35,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"np.array(coarse_label_names, dtype='S30')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Downloading data from http://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz\\n\",\n      \"168755200/169001437 [============================>.] - ETA: 0s\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"(x_train, y_train), (x_test, y_test) = datasets.cifar100.load_data()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"f = h5py.File(\\\"cifar100.h5\\\")\\n\",\n    \"f.create_dataset('x_train', data=x_train)\\n\",\n    \"f.create_dataset('y_train', data=y_train)\\n\",\n    \"f.create_dataset('x_test', data=x_test)\\n\",\n    \"f.create_dataset('y_test', data=y_test)\\n\",\n    \"f.create_dataset('coarse_label_names', data=np.array(coarse_label_names, dtype='S30'))\\n\",\n    \"f.create_dataset('fine_label_names', data=np.array(fine_label_names, dtype='S13'))\\n\",\n    \"f.close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python [default]\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.5.3\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/aux/cifar10_to_h5py.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import numpy as np\\n\",\n    \"from keras import datasets\\n\",\n    \"import h5py\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"categories = [\\n\",\n    \"    'airplane',\\n\",\n    \"    'automobile',\\n\",\n    \"    'bird',\\n\",\n    \"    'cat',\\n\",\n    \"    'deer',\\n\",\n    \"    'dog',\\n\",\n    \"    'frog',\\n\",\n    \"    'horse',\\n\",\n    \"    'ship',\\n\",\n    \"    'truck']\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"(x_train, y_train), (x_test, y_test) = datasets.cifar10.load_data()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"f = h5py.File(\\\"cifar10.h5\\\")\\n\",\n    \"f.create_dataset('x_train', data=x_train)\\n\",\n    \"f.create_dataset('y_train', data=y_train)\\n\",\n    \"f.create_dataset('x_test', data=x_test)\\n\",\n    \"f.create_dataset('y_test', data=y_test)\\n\",\n    \"f.create_dataset('label_names', data=np.array(categories, dtype='S10'))\\n\",\n    \"f.close()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/cnn_adv.py",
    "content": "from keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom keras.layers import Conv2D, MaxPool2D, Dropout, BatchNormalization\nfrom helpers import NeptuneCallback, load_cifar10, model_summary\nfrom deepsense import neptune\n\nctx = neptune.Context()\nctx.tags.append('cnn')\nctx.tags.append('adv')\n\n# create neural network architecture\nmodel = Sequential()\n\nmodel.add(Conv2D(32, (3, 3), activation='relu', padding='same',\n                 input_shape=(32, 32, 3)))\nmodel.add(Conv2D(32, (1, 1), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(BatchNormalization())\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(64, (3, 3), activation='relu', padding='same'))\nmodel.add(Conv2D(64, (1, 1), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(BatchNormalization())\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(128, (3, 3), activation='relu', padding='same'))\nmodel.add(Conv2D(128, (1, 1), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(BatchNormalization())\nmodel.add(Dropout(0.25))\n\nmodel.add(Flatten())\nmodel.add(Dense(256, activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Dense(10))\nmodel.add(Activation('softmax'))\n\nmodel.compile(optimizer='adam',\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel_summary(model)\n\n# loading data\n(x_train, y_train), (x_test, y_test) = load_cifar10()\n\n# training\nmodel.fit(x_train, y_train,\n          epochs=100,\n          batch_size=128,\n          validation_data=(x_test, y_test),\n          verbose=2,\n          callbacks=[NeptuneCallback(x_test, y_test, images_per_epoch=20)])\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/cnn_fchollet.py",
    "content": "from keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom keras.layers import Conv2D, MaxPool2D, Dropout\nfrom keras import optimizers\nfrom helpers import NeptuneCallback, load_cifar10, model_summary\nfrom deepsense import neptune\n\nctx = neptune.Context()\nctx.tags.append('cnn')\nctx.tags.append('fchollet')\n\n# create neural network architecture\n\n# adapted from: https://github.com/fchollet/keras/blame/master/examples/cifar10_cnn.py\n\nmodel = Sequential()\n\nmodel.add(Conv2D(32, (3, 3), activation='relu', padding='same',\n                 input_shape=(32, 32, 3)))\nmodel.add(Conv2D(32, (3, 3), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(64, (3, 3), activation='relu', padding='same'))\nmodel.add(Conv2D(64, (3, 3), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(Dropout(0.25))\n\nmodel.add(Flatten())\nmodel.add(Dense(512, activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Dense(10))\nmodel.add(Activation('softmax'))\n\n# initiate RMSprop optimizer\nopt = optimizers.rmsprop(lr=0.0001, decay=1e-6)\n\nmodel.compile(optimizer=opt,\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel_summary(model)\n\n# loading data\n(x_train, y_train), (x_test, y_test) = load_cifar10()\n\n# training\nmodel.fit(x_train, y_train,\n          epochs=200,\n          batch_size=32,\n          validation_data=(x_test, y_test),\n          verbose=2,\n          callbacks=[NeptuneCallback(x_test, y_test, images_per_epoch=20)])\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/cnn_pkaur.py",
    "content": "from keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom keras.layers import Conv2D, MaxPool2D, Dropout\nfrom helpers import NeptuneCallback, load_cifar10, model_summary\nfrom deepsense import neptune\n\nctx = neptune.Context()\nctx.tags.append('cnn')\nctx.tags.append('pkaur')\n\n# create neural network architecture\n\n# adapted from http://parneetk.github.io/blog/cnn-cifar10/,\n#with permission: https://twitter.com/_parneetkaur/status/928004636728090625\n\nmodel = Sequential()\n\nmodel.add(Conv2D(48, (3, 3), activation='relu', padding='same',\n                 input_shape=(32, 32, 3)))\nmodel.add(Conv2D(48, (3, 3), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(96, (3, 3), activation='relu', padding='same'))\nmodel.add(Conv2D(96, (3, 3), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(Dropout(0.25))\n\nmodel.add(Conv2D(192, (3, 3), activation='relu', padding='same'))\nmodel.add(Conv2D(192, (3, 3), activation='relu'))\nmodel.add(MaxPool2D())\nmodel.add(Dropout(0.25))\n\nmodel.add(Flatten())\nmodel.add(Dense(512, activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Dense(256, activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Dense(10, activation='softmax'))\n\nmodel.compile(optimizer='adam',\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel_summary(model)\n\n# loading data\n(x_train, y_train), (x_test, y_test) = load_cifar10()\n\n# training\nmodel.fit(x_train, y_train,\n          epochs=200,\n          batch_size=128,\n          validation_data=(x_test, y_test),\n          verbose=2,\n          callbacks=[NeptuneCallback(x_test, y_test, images_per_epoch=20)])\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/cnn_simple.py",
    "content": "from keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom keras.layers import Conv2D, MaxPool2D, Dropout\nfrom helpers import NeptuneCallback, load_cifar10, model_summary\nfrom deepsense import neptune\n\nctx = neptune.Context()\nctx.tags.append('cnn')\n\n# create neural network architecture\nmodel = Sequential()\n\nmodel.add(Conv2D(32, (3, 3), activation='relu',\n                 input_shape=(32, 32, 3)))\nmodel.add(MaxPool2D())\n\nmodel.add(Conv2D(64, (3, 3), activation='relu'))\nmodel.add(MaxPool2D())\n\nmodel.add(Flatten())\nmodel.add(Dense(10))\nmodel.add(Activation('softmax'))\n\nmodel.compile(optimizer='adam',\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel_summary(model)\n\n# loading data\n(x_train, y_train), (x_test, y_test) = load_cifar10()\n\n# training\nmodel.fit(x_train, y_train,\n          epochs=20,\n          batch_size=32,\n          validation_data=(x_test, y_test),\n          verbose=2,\n          callbacks=[NeptuneCallback(x_test, y_test, images_per_epoch=20)])\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/drawings.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from keras_sequential_ascii import sequential_model_to_ascii_printout\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Using TensorFlow backend.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from keras.models import Sequential\\n\",\n    \"from keras.layers import Dense, Activation, Flatten\\n\",\n    \"from keras.layers import Conv2D, MaxPool2D, Dropout, BatchNormalization\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####        3072\\n\",\n      \"               Dense   XXXXX -------------------     30730   100.0%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"\\n\",\n    \"model.add(Flatten(input_shape=(32, 32, 3)))\\n\",\n    \"model.add(Dense(10))\\n\",\n    \"model.add(Activation('softmax'))\\n\",\n    \"\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"2\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"len(model.layers)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"30730\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"model.count_params()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####        3072\\n\",\n      \"               Dense   XXXXX -------------------    393344    95.7%\\n\",\n      \"             sigmoid   #####         128\\n\",\n      \"               Dense   XXXXX -------------------     16512     4.0%\\n\",\n      \"             sigmoid   #####         128\\n\",\n      \"               Dense   XXXXX -------------------      1290     0.3%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"\\n\",\n    \"model.add(Flatten(input_shape=(32, 32, 3)))\\n\",\n    \"model.add(Dense(128, activation='sigmoid'))\\n\",\n    \"model.add(Dense(128, activation='sigmoid'))\\n\",\n    \"model.add(Dense(10))\\n\",\n    \"model.add(Activation('softmax'))\\n\",\n    \"\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"              Conv2D    \\\\|/  -------------------       896     2.1%\\n\",\n      \"                relu   #####     30   30   32\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   32\\n\",\n      \"              Conv2D    \\\\|/  -------------------     18496    43.6%\\n\",\n      \"                relu   #####     13   13   64\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   64\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####        2304\\n\",\n      \"               Dense   XXXXX -------------------     23050    54.3%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(32, (3, 3), activation='relu',\\n\",\n    \"                 input_shape=(32, 32, 3)))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(64, (3, 3), activation='relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"\\n\",\n    \"model.add(Flatten())\\n\",\n    \"model.add(Dense(10))\\n\",\n    \"model.add(Activation('softmax'))\\n\",\n    \"\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"              Conv2D    \\\\|/  -------------------      1344     0.1%\\n\",\n      \"                relu   #####     32   32   48\\n\",\n      \"              Conv2D    \\\\|/  -------------------     20784     1.8%\\n\",\n      \"                relu   #####     30   30   48\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   48\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   48\\n\",\n      \"              Conv2D    \\\\|/  -------------------     41568     3.5%\\n\",\n      \"                relu   #####     15   15   96\\n\",\n      \"              Conv2D    \\\\|/  -------------------     83040     7.1%\\n\",\n      \"                relu   #####     13   13   96\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   96\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   96\\n\",\n      \"              Conv2D    \\\\|/  -------------------    166080    14.2%\\n\",\n      \"                relu   #####      6    6  192\\n\",\n      \"              Conv2D    \\\\|/  -------------------    331968    28.3%\\n\",\n      \"                relu   #####      4    4  192\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      2    2  192\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      2    2  192\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####         768\\n\",\n      \"               Dense   XXXXX -------------------    393728    33.6%\\n\",\n      \"                relu   #####         512\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####         512\\n\",\n      \"               Dense   XXXXX -------------------    131328    11.2%\\n\",\n      \"                relu   #####         256\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####         256\\n\",\n      \"               Dense   XXXXX -------------------      2570     0.2%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(48, (3, 3), padding='same', input_shape=(32, 32, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Conv2D(48, (3, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"model.add(Conv2D(96, (3, 3), padding='same'))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Conv2D(96, (3, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"model.add(Conv2D(192, (3, 3), padding='same'))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Conv2D(192, (3, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"model.add(Flatten())\\n\",\n    \"model.add(Dense(512))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Dropout(0.5))\\n\",\n    \"model.add(Dense(256))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Dropout(0.5))\\n\",\n    \"model.add(Dense(10, activation='softmax'))\\n\",\n    \"\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"              Conv2D    \\\\|/  -------------------       896     0.1%\\n\",\n      \"                relu   #####     32   32   32\\n\",\n      \"              Conv2D    \\\\|/  -------------------      9248     0.7%\\n\",\n      \"                relu   #####     30   30   32\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   32\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   32\\n\",\n      \"              Conv2D    \\\\|/  -------------------     18496     1.5%\\n\",\n      \"                relu   #####     15   15   64\\n\",\n      \"              Conv2D    \\\\|/  -------------------     36928     3.0%\\n\",\n      \"                relu   #####     13   13   64\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   64\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   64\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####        2304\\n\",\n      \"               Dense   XXXXX -------------------   1180160    94.3%\\n\",\n      \"                relu   #####         512\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####         512\\n\",\n      \"               Dense   XXXXX -------------------      5130     0.4%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(32, (3, 3), activation='relu', padding='same',\\n\",\n    \"                 input_shape=(32, 32, 3)))\\n\",\n    \"model.add(Conv2D(32, (3, 3), activation='relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))\\n\",\n    \"model.add(Conv2D(64, (3, 3), activation='relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"\\n\",\n    \"model.add(Flatten())\\n\",\n    \"model.add(Dense(512, activation='relu'))\\n\",\n    \"model.add(Dropout(0.5))\\n\",\n    \"model.add(Dense(10))\\n\",\n    \"model.add(Activation('softmax'))\\n\",\n    \"\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"              Conv2D    \\\\|/  -------------------      1344     0.1%\\n\",\n      \"                relu   #####     32   32   48\\n\",\n      \"              Conv2D    \\\\|/  -------------------     20784     1.8%\\n\",\n      \"                relu   #####     30   30   48\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   48\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####     15   15   48\\n\",\n      \"              Conv2D    \\\\|/  -------------------     41568     3.5%\\n\",\n      \"                relu   #####     15   15   96\\n\",\n      \"              Conv2D    \\\\|/  -------------------     83040     7.1%\\n\",\n      \"                relu   #####     13   13   96\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   96\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      6    6   96\\n\",\n      \"              Conv2D    \\\\|/  -------------------    166080    14.2%\\n\",\n      \"                relu   #####      6    6  192\\n\",\n      \"              Conv2D    \\\\|/  -------------------    331968    28.3%\\n\",\n      \"                relu   #####      4    4  192\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      2    2  192\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      2    2  192\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####         768\\n\",\n      \"               Dense   XXXXX -------------------    393728    33.6%\\n\",\n      \"                relu   #####         512\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####         512\\n\",\n      \"               Dense   XXXXX -------------------    131328    11.2%\\n\",\n      \"                relu   #####         256\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####         256\\n\",\n      \"               Dense   XXXXX -------------------      2570     0.2%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"model.add(Conv2D(48, (3, 3), padding='same', input_shape=(32, 32, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Conv2D(48, (3, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"model.add(Conv2D(96, (3, 3), padding='same'))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Conv2D(96, (3, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"model.add(Conv2D(192, (3, 3), padding='same'))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Conv2D(192, (3, 3)))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"model.add(Flatten())\\n\",\n    \"model.add(Dense(512))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Dropout(0.5))\\n\",\n    \"model.add(Dense(256))\\n\",\n    \"model.add(Activation('relu'))\\n\",\n    \"model.add(Dropout(0.5))\\n\",\n    \"model.add(Dense(10, activation='softmax'))\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"scrolled\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\\n\",\n      \"\\n\",\n      \"               Input   #####     32   32    3\\n\",\n      \"              Conv2D    \\\\|/  -------------------       896     0.1%\\n\",\n      \"                relu   #####     32   32   32\\n\",\n      \"              Conv2D    \\\\|/  -------------------      1056     0.2%\\n\",\n      \"                relu   #####     32   32   32\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####     16   16   32\\n\",\n      \"  BatchNormalization    μ|σ  -------------------       128     0.0%\\n\",\n      \"                       #####     16   16   32\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####     16   16   32\\n\",\n      \"              Conv2D    \\\\|/  -------------------     18496     2.9%\\n\",\n      \"                relu   #####     16   16   64\\n\",\n      \"              Conv2D    \\\\|/  -------------------      4160     0.6%\\n\",\n      \"                relu   #####     16   16   64\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      8    8   64\\n\",\n      \"  BatchNormalization    μ|σ  -------------------       256     0.0%\\n\",\n      \"                       #####      8    8   64\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      8    8   64\\n\",\n      \"              Conv2D    \\\\|/  -------------------     73856    11.5%\\n\",\n      \"                relu   #####      8    8  128\\n\",\n      \"              Conv2D    \\\\|/  -------------------     16512     2.6%\\n\",\n      \"                relu   #####      8    8  128\\n\",\n      \"        MaxPooling2D   Y max -------------------         0     0.0%\\n\",\n      \"                       #####      4    4  128\\n\",\n      \"  BatchNormalization    μ|σ  -------------------       512     0.1%\\n\",\n      \"                       #####      4    4  128\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####      4    4  128\\n\",\n      \"             Flatten   ||||| -------------------         0     0.0%\\n\",\n      \"                       #####        2048\\n\",\n      \"               Dense   XXXXX -------------------    524544    81.6%\\n\",\n      \"                relu   #####         256\\n\",\n      \"             Dropout    | || -------------------         0     0.0%\\n\",\n      \"                       #####         256\\n\",\n      \"               Dense   XXXXX -------------------      2570     0.4%\\n\",\n      \"             softmax   #####          10\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"model = Sequential()\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(32, (3, 3), activation='relu', padding='same',\\n\",\n    \"                 input_shape=(32, 32, 3)))\\n\",\n    \"model.add(Conv2D(32, (1, 1), activation='relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(BatchNormalization())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))\\n\",\n    \"model.add(Conv2D(64, (1, 1), activation='relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(BatchNormalization())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"\\n\",\n    \"model.add(Conv2D(128, (3, 3), activation='relu', padding='same'))\\n\",\n    \"model.add(Conv2D(128, (1, 1), activation='relu'))\\n\",\n    \"model.add(MaxPool2D())\\n\",\n    \"model.add(BatchNormalization())\\n\",\n    \"model.add(Dropout(0.25))\\n\",\n    \"\\n\",\n    \"model.add(Flatten())\\n\",\n    \"model.add(Dense(256, activation='relu'))\\n\",\n    \"model.add(Dropout(0.5))\\n\",\n    \"model.add(Dense(10))\\n\",\n    \"model.add(Activation('softmax'))\\n\",\n    \"\\n\",\n    \"sequential_model_to_ascii_printout(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/helpers.py",
    "content": "import h5py\nfrom keras import utils\nimport numpy as np\nfrom PIL import Image\nfrom keras.callbacks import Callback\nfrom deepsense import neptune\n\ndef load_cifar10(filepath=\"/public/cifar/cifar10.h5\"):\n    data = h5py.File(filepath, 'r')\n    x_train = data['x_train'].value\n    y_train = data['y_train'].value\n    x_test = data['x_test'].value\n    y_test = data['y_test'].value\n\n    x_train = x_train.astype('float32')\n    x_test = x_test.astype('float32')\n    x_train /= 255\n    x_test /= 255\n\n    y_train = utils.to_categorical(y_train, 10)\n    y_test = utils.to_categorical(y_test, 10)\n\n    print(\"CIFAR-10 data loaded from {}.\".format(filepath))\n\n    return (x_train, y_train), (x_test, y_test)\n\nctx = neptune.Context()\n\ndef array_2d_to_image(array, autorescale=True):\n    assert array.min() >= 0\n    assert len(array.shape) in [2, 3]\n    if array.max() <= 1 and autorescale:\n        array = 255 * array\n    array = array.astype('uint8')\n    return Image.fromarray(array)\n\ndef model_summary(model):\n    print(\"Model created successfully.\")\n    print(model.summary())\n    ctx.channel_send('n_layers', len(model.layers))\n    ctx.channel_send('n_parameters', model.count_params())\n\ncategories = [\n    'airplane',\n    'automobile',\n    'bird',\n    'cat',\n    'deer',\n    'dog',\n    'frog',\n    'horse',\n    'ship',\n    'truck']\n\nclass NeptuneCallback(Callback):\n    def __init__(self, x_test, y_test, images_per_epoch=-1):\n        self.epoch_id = 0\n        self.images_per_epoch = images_per_epoch\n        self.x_test = x_test\n        self.y_test = y_test\n\n    def on_epoch_end(self, epoch, logs={}):\n        self.epoch_id += 1\n\n        # logging numeric channels\n        ctx.channel_send('Log-loss training', self.epoch_id, logs['loss'])\n        ctx.channel_send('Log-loss validation', self.epoch_id, logs['val_loss'])\n        ctx.channel_send('Accuracy training', self.epoch_id, logs['acc'])\n        ctx.channel_send('Accuracy validation', self.epoch_id, logs['val_acc'])\n\n        # Predict the digits for images of the test set.\n        validation_predictions = self.model.predict_classes(self.x_test)\n        scores = self.model.predict(self.x_test)\n\n        # Identify the incorrectly classified images and send them to Neptune Dashboard.\n        image_per_epoch = 0\n        for index, (prediction, actual) in enumerate(zip(validation_predictions, self.y_test.argmax(axis=1))):\n            if prediction != actual:\n                if image_per_epoch == self.images_per_epoch:\n                    break\n                image_per_epoch += 1\n\n                ctx.channel_send('false_predictions', neptune.Image(\n                    name='[{}] {} X {} V'.format(self.epoch_id, categories[prediction], categories[actual]),\n                    description=\"\\n\".join([\n                        \"{:5.1f}% {} {}\".format(100 * score, categories[i], \"!!!\" if i == actual else \"\")\n                        for i, score in enumerate(scores[index])]),\n                    data=array_2d_to_image(self.x_test[index,:,:])))\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/lr.py",
    "content": "from keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom helpers import NeptuneCallback, load_cifar10, model_summary\nfrom deepsense import neptune\n\nctx = neptune.Context()\nctx.tags.append('logistic-regression')\n\n# create neural network architecture\nmodel = Sequential()\n\nmodel.add(Flatten(input_shape=(32, 32, 3)))\nmodel.add(Dense(10))\nmodel.add(Activation('softmax'))\n\nmodel.compile(optimizer='adam',\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel_summary(model)\n\n# loading data\n(x_train, y_train), (x_test, y_test) = load_cifar10()\n\n# training\nmodel.fit(x_train, y_train,\n          epochs=20,\n          batch_size=128,\n          validation_data=(x_test, y_test),\n          verbose=2,\n          callbacks=[NeptuneCallback(x_test, y_test, images_per_epoch=20)])\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/mlp.py",
    "content": "from keras.models import Sequential\nfrom keras.layers import Dense, Activation, Flatten\nfrom keras.layers import Dropout\nfrom helpers import NeptuneCallback, load_cifar10, model_summary\nfrom deepsense import neptune\n\nctx = neptune.Context()\nctx.tags.append('mlp')\n\n# create neural network architecture\nmodel = Sequential()\n\nmodel.add(Flatten(input_shape=(32, 32, 3)))\nmodel.add(Dense(128, activation='sigmoid'))\nmodel.add(Dense(128, activation='sigmoid'))\nmodel.add(Dense(10))\nmodel.add(Activation('softmax'))\n\nmodel.compile(optimizer='adam',\n              loss='categorical_crossentropy',\n              metrics=['accuracy'])\n\nmodel_summary(model)\n\n# loading data\n(x_train, y_train), (x_test, y_test) = load_cifar10()\n\n# training\nmodel.fit(x_train, y_train,\n          epochs=20,\n          batch_size=32,\n          validation_data=(x_test, y_test),\n          verbose=2,\n          callbacks=[NeptuneCallback(x_test, y_test, images_per_epoch=20)])\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/hands-on-deep-learning-master/cifar_image_classification/neptune.yaml",
    "content": "project-key: CIF\n\nname: CIFAR10 with DL\ndescription: From blog post \"Starting deep learning hands-on - image classification\" by deepsense.ai.\ntags: [cifar10]\n\nenvironment: keras-2.0-gpu-py3\nworker: gcp-gpu-medium\n\nexclude:\n  - aux\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/simple/cifar10.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cifar10.py\n#        \\author   chenghuige  \n#          \\date   2018-07-11 15:34:51.963932\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport melt\nimport os\nimport cv2\nimport numpy\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Activation\nfrom keras.layers import Conv2D, MaxPooling2D, Flatten, AveragePooling2D, BatchNormalization, advanced_activations\nfrom keras.layers import initializers\nfrom keras.optimizers import SGD, Adam\nfrom keras.utils import np_utils\nfrom keras.utils.vis_utils import plot_model\n \nimport gezi\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n        \nclasses_map = dict(zip(classes, range(len(classes))))\n\nprint('----------', classes_map)\n\nimport pandas as pd\nl = pd.read_csv('./mount/data/kaggle/cifar-10/trainLabels.csv')\nm = {}\nfor i in range(len(l)):\n  m[l.id[i]] = l.label[i]\n\ndef loadData(path='train'):\n  data = []\n  labels = []\n  #for i in range(10):\n  #dir1 = './'+path+'/'+str(i)\n  dir1 = './'+path+'/'\n  listImg = os.listdir(dir1)\n  for img in listImg:      \n    #print('img-----', img)  \n    imgIn = cv2.imread(dir1+'/'+img)\n    if imgIn.size != 3072: print('Img error')\n    data.append(imgIn)\n    #data.append([numpy.array(Image.open(dir+'/'+img))])\n    #labels.append(i)\n    #print path, i, 'is read'\n    labels.append(classes_map[m[int(gezi.strip_suffix(img, '.png'))]])\n  return data, labels\n\ndef loadTrainValid(path='train'):\n  train_data = []\n  train_labels = []\n  valid_data = []\n  valid_labels = []\n  #for i in range(10):\n  #dir1 = './'+path+'/'+str(i)\n  dir1 = './'+path+'/'\n  listImg = os.listdir(dir1)\n  for img in listImg:      \n    #print('img-----', img)  \n    imgIn = cv2.imread(dir1+'/'+img)\n    id = int(gezi.strip_suffix(img, '.png'))\n    if imgIn.size != 3072: print('Img error')\n    if id % 10 == 0:\n      data, labels = valid_data, valid_labels\n    else:\n      data, labels = train_data, train_labels\n    data.append(imgIn)\n    #data.append([numpy.array(Image.open(dir+'/'+img))])\n    #labels.append(i)\n    #print path, i, 'is read'\n    labels.append(classes_map[m[id]])\n  return train_data, train_labels, valid_data, valid_labels\n\n\ndef loadTest(path='test'):\n  data = []\n  dir1 = './'+path+'/'\n  listImg = os.listdir(dir1)\n  num_imgs = len(listImg)\n  for i in range(num_imgs):\n    imgIn = cv2.imread(dir1+'/'+'%d.png' % (i + 1))\n    if imgIn.size != 3072: print('Img error')\n    data.append(imgIn)\n  return data\n \n \n#trainData, trainLabels = loadData('train')\ntrainData, trainLabels, validData, validLabels = loadTrainValid()\n\ntestData = loadTest()\n\ndef preprocess(trainData, trainLabels=None):\n  if trainLabels is not None:\n    trainLabels = np_utils.to_categorical(trainLabels, 10)\n  trainData = numpy.reshape(trainData, (len(trainData), 32, 32,3))\n  trainData = trainData.astype(numpy.float32)\n  trainData -= numpy.mean(trainData, axis=0)\n  trainData /= numpy.std(trainData, axis=0)\n  if trainLabels is not None:\n    return trainData, trainLabels\n  else:\n    return trainData\n\nprint('---loading train')\ntrainData, trainLabels = preprocess(trainData, trainLabels)\nprint('num_train', len(trainData))\nprint('---loading valid')\nvalidData, validLabels = preprocess(validData, validLabels)\nprint('num_valid', len(validData))\nprint('---loading test')\ntestData = preprocess(testData)\nprint('num_test', len(testData))\n \n#print trainData[-1]\n \nmodel = Sequential()\nmodel.add(Conv2D(filters=32, kernel_size=(5,5), padding='same', input_shape=(32,32,3), data_format='channels_last', kernel_initializer=initializers.he_normal()))\nmodel.add(BatchNormalization(axis=-1, momentum=0.9, epsilon=1e-6))\nmodel.add(Activation(advanced_activations.LeakyReLU(alpha=0.2)))\nmodel.add(MaxPooling2D(pool_size=(2,2)))\n \nmodel.add(Conv2D(filters=32, kernel_size=(5,5), padding='same', data_format='channels_last', kernel_initializer=initializers.he_normal()))\nmodel.add(BatchNormalization(axis=-1, momentum=0.9, epsilon=1e-6))\nmodel.add(Activation(advanced_activations.LeakyReLU(alpha=0.2)))\nmodel.add(AveragePooling2D(pool_size=(2,2)))\n \nmodel.add(Conv2D(filters=64, kernel_size=(5,5), padding='same', data_format='channels_last', kernel_initializer=initializers.he_normal()))\nmodel.add(BatchNormalization(axis=-1, momentum=0.9, epsilon=1e-6))\nmodel.add(Activation(advanced_activations.LeakyReLU(alpha=0.2)))\nmodel.add(AveragePooling2D(pool_size=(2,2)))\n \nmodel.add(Flatten())\n \nmodel.add(Dense(1024, kernel_initializer=initializers.he_normal()))\nmodel.add(BatchNormalization(epsilon=1e-6))\nmodel.add(Activation(advanced_activations.LeakyReLU(alpha=0.2)))\n \nmodel.add(Dense(256, activation=advanced_activations.LeakyReLU(alpha=0.1), kernel_initializer=initializers.he_normal()))\nmodel.add(Dense(10, activation='softmax', kernel_initializer=initializers.he_normal()))\n \nadam = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8)\n\nmodel.summary()\n\nmodel.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])\nresult = model.fit(trainData, trainLabels, \n                   batch_size=256, \n                   epochs=20, \n                   verbose=1, \n                   shuffle=True,\n                   validation_data=(validData, validLabels))\n \nplot_model(model, to_file='model.png', show_shapes=True, show_layer_names=False)\n \nplt.figure()\nplt.plot(result.epoch, result.history['acc'], label='acc')\nplt.scatter(result.epoch, result.history['acc'], marker='*')\nplt.plot(result.epoch, result.history['val_acc'], label='val_acc')\nplt.scatter(result.epoch, result.history['val_acc'], marker='*')\nplt.legend(loc='right')\n#plt.show()\nplt.savefig('acc.png')\n\n\nresult = model.predict(testData, batch_size=256)\n\nresult = np.argmax(result, 1)\nresult = [classes[x] for x in result]\n\nresult_file = 'result.csv'\npredicts = pd.DataFrame()\npredicts['id'] = list(range(1, len(result) + 1))\npredicts['label'] = result\npredicts.to_csv(result_file, index=False)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/keras/simple/result.csv",
    "content": "id,label\n1,cat\n2,airplane\n3,automobile\n4,ship\n5,bird\n6,cat\n7,airplane\n8,dog\n9,horse\n10,dog\n11,bird\n12,cat\n13,deer\n14,cat\n15,dog\n16,airplane\n17,deer\n18,deer\n19,airplane\n20,dog\n21,airplane\n22,ship\n23,frog\n24,automobile\n25,horse\n26,truck\n27,automobile\n28,dog\n29,cat\n30,cat\n31,cat\n32,horse\n33,dog\n34,cat\n35,cat\n36,dog\n37,cat\n38,dog\n39,ship\n40,dog\n41,frog\n42,bird\n43,truck\n44,deer\n45,truck\n46,automobile\n47,deer\n48,bird\n49,airplane\n50,truck\n51,bird\n52,horse\n53,bird\n54,frog\n55,ship\n56,ship\n57,cat\n58,ship\n59,bird\n60,cat\n61,deer\n62,cat\n63,deer\n64,frog\n65,truck\n66,truck\n67,bird\n68,horse\n69,bird\n70,bird\n71,truck\n72,bird\n73,truck\n74,deer\n75,dog\n76,truck\n77,airplane\n78,cat\n79,horse\n80,dog\n81,frog\n82,deer\n83,airplane\n84,deer\n85,deer\n86,cat\n87,dog\n88,bird\n89,deer\n90,truck\n91,automobile\n92,airplane\n93,frog\n94,horse\n95,automobile\n96,frog\n97,deer\n98,bird\n99,truck\n100,bird\n101,deer\n102,airplane\n103,dog\n104,cat\n105,ship\n106,bird\n107,automobile\n108,bird\n109,frog\n110,frog\n111,horse\n112,bird\n113,deer\n114,airplane\n115,truck\n116,horse\n117,cat\n118,horse\n119,airplane\n120,frog\n121,deer\n122,truck\n123,horse\n124,bird\n125,ship\n126,cat\n127,airplane\n128,dog\n129,deer\n130,horse\n131,truck\n132,cat\n133,bird\n134,frog\n135,dog\n136,cat\n137,frog\n138,frog\n139,horse\n140,truck\n141,frog\n142,dog\n143,truck\n144,bird\n145,frog\n146,truck\n147,truck\n148,ship\n149,cat\n150,frog\n151,truck\n152,dog\n153,dog\n154,truck\n155,truck\n156,horse\n157,bird\n158,ship\n159,truck\n160,deer\n161,cat\n162,frog\n163,ship\n164,cat\n165,frog\n166,automobile\n167,frog\n168,dog\n169,cat\n170,frog\n171,bird\n172,frog\n173,automobile\n174,frog\n175,bird\n176,airplane\n177,cat\n178,automobile\n179,bird\n180,automobile\n181,frog\n182,truck\n183,deer\n184,horse\n185,ship\n186,dog\n187,ship\n188,truck\n189,cat\n190,bird\n191,automobile\n192,ship\n193,airplane\n194,bird\n195,truck\n196,deer\n197,automobile\n198,cat\n199,ship\n200,bird\n201,ship\n202,deer\n203,airplane\n204,cat\n205,airplane\n206,bird\n207,cat\n208,cat\n209,dog\n210,frog\n211,automobile\n212,deer\n213,dog\n214,frog\n215,cat\n216,truck\n217,dog\n218,bird\n219,dog\n220,automobile\n221,frog\n222,truck\n223,dog\n224,deer\n225,cat\n226,truck\n227,horse\n228,cat\n229,horse\n230,horse\n231,airplane\n232,bird\n233,dog\n234,cat\n235,horse\n236,frog\n237,deer\n238,deer\n239,truck\n240,airplane\n241,automobile\n242,cat\n243,bird\n244,cat\n245,cat\n246,deer\n247,frog\n248,truck\n249,horse\n250,ship\n251,bird\n252,airplane\n253,frog\n254,airplane\n255,cat\n256,deer\n257,cat\n258,ship\n259,deer\n260,airplane\n261,dog\n262,automobile\n263,horse\n264,horse\n265,frog\n266,frog\n267,cat\n268,bird\n269,bird\n270,automobile\n271,dog\n272,truck\n273,horse\n274,cat\n275,horse\n276,ship\n277,frog\n278,horse\n279,dog\n280,dog\n281,dog\n282,bird\n283,cat\n284,truck\n285,deer\n286,automobile\n287,ship\n288,truck\n289,cat\n290,deer\n291,automobile\n292,deer\n293,airplane\n294,cat\n295,truck\n296,frog\n297,dog\n298,dog\n299,ship\n300,truck\n301,frog\n302,cat\n303,frog\n304,ship\n305,frog\n306,automobile\n307,airplane\n308,horse\n309,cat\n310,deer\n311,automobile\n312,ship\n313,deer\n314,truck\n315,cat\n316,cat\n317,deer\n318,deer\n319,frog\n320,frog\n321,dog\n322,horse\n323,ship\n324,dog\n325,horse\n326,ship\n327,cat\n328,dog\n329,deer\n330,truck\n331,bird\n332,airplane\n333,bird\n334,bird\n335,deer\n336,deer\n337,dog\n338,truck\n339,deer\n340,ship\n341,ship\n342,frog\n343,deer\n344,bird\n345,cat\n346,automobile\n347,automobile\n348,horse\n349,cat\n350,truck\n351,bird\n352,truck\n353,bird\n354,dog\n355,airplane\n356,cat\n357,airplane\n358,bird\n359,bird\n360,dog\n361,horse\n362,airplane\n363,airplane\n364,airplane\n365,truck\n366,deer\n367,horse\n368,truck\n369,ship\n370,deer\n371,frog\n372,truck\n373,cat\n374,airplane\n375,truck\n376,airplane\n377,frog\n378,cat\n379,automobile\n380,dog\n381,truck\n382,airplane\n383,airplane\n384,ship\n385,cat\n386,cat\n387,ship\n388,dog\n389,bird\n390,deer\n391,frog\n392,deer\n393,bird\n394,frog\n395,frog\n396,bird\n397,frog\n398,deer\n399,cat\n400,horse\n401,airplane\n402,deer\n403,airplane\n404,automobile\n405,deer\n406,airplane\n407,truck\n408,truck\n409,bird\n410,bird\n411,horse\n412,deer\n413,ship\n414,airplane\n415,automobile\n416,frog\n417,cat\n418,deer\n419,bird\n420,dog\n421,frog\n422,automobile\n423,cat\n424,deer\n425,airplane\n426,ship\n427,cat\n428,bird\n429,automobile\n430,frog\n431,cat\n432,cat\n433,deer\n434,airplane\n435,truck\n436,deer\n437,automobile\n438,truck\n439,automobile\n440,dog\n441,airplane\n442,airplane\n443,horse\n444,cat\n445,ship\n446,dog\n447,horse\n448,horse\n449,airplane\n450,airplane\n451,deer\n452,frog\n453,airplane\n454,ship\n455,horse\n456,airplane\n457,deer\n458,cat\n459,bird\n460,truck\n461,deer\n462,automobile\n463,horse\n464,frog\n465,ship\n466,ship\n467,deer\n468,bird\n469,cat\n470,deer\n471,cat\n472,ship\n473,frog\n474,airplane\n475,cat\n476,cat\n477,horse\n478,horse\n479,dog\n480,deer\n481,dog\n482,ship\n483,cat\n484,automobile\n485,cat\n486,airplane\n487,frog\n488,horse\n489,ship\n490,deer\n491,truck\n492,frog\n493,frog\n494,cat\n495,automobile\n496,horse\n497,truck\n498,frog\n499,cat\n500,bird\n501,ship\n502,dog\n503,bird\n504,deer\n505,cat\n506,dog\n507,dog\n508,automobile\n509,cat\n510,automobile\n511,dog\n512,automobile\n513,frog\n514,deer\n515,airplane\n516,ship\n517,truck\n518,ship\n519,ship\n520,automobile\n521,frog\n522,dog\n523,horse\n524,truck\n525,frog\n526,deer\n527,airplane\n528,dog\n529,frog\n530,airplane\n531,dog\n532,frog\n533,bird\n534,deer\n535,horse\n536,dog\n537,airplane\n538,ship\n539,truck\n540,truck\n541,truck\n542,cat\n543,deer\n544,cat\n545,cat\n546,deer\n547,cat\n548,horse\n549,dog\n550,horse\n551,deer\n552,dog\n553,horse\n554,deer\n555,frog\n556,cat\n557,dog\n558,ship\n559,frog\n560,bird\n561,cat\n562,automobile\n563,frog\n564,cat\n565,airplane\n566,horse\n567,deer\n568,frog\n569,cat\n570,horse\n571,ship\n572,frog\n573,bird\n574,ship\n575,deer\n576,airplane\n577,truck\n578,frog\n579,ship\n580,deer\n581,frog\n582,frog\n583,frog\n584,truck\n585,automobile\n586,dog\n587,deer\n588,automobile\n589,airplane\n590,deer\n591,horse\n592,deer\n593,truck\n594,horse\n595,frog\n596,ship\n597,dog\n598,truck\n599,dog\n600,deer\n601,automobile\n602,deer\n603,automobile\n604,truck\n605,automobile\n606,horse\n607,bird\n608,horse\n609,horse\n610,truck\n611,deer\n612,cat\n613,automobile\n614,ship\n615,frog\n616,deer\n617,automobile\n618,deer\n619,horse\n620,deer\n621,frog\n622,deer\n623,cat\n624,cat\n625,cat\n626,truck\n627,cat\n628,horse\n629,horse\n630,dog\n631,airplane\n632,deer\n633,airplane\n634,horse\n635,horse\n636,ship\n637,deer\n638,frog\n639,airplane\n640,cat\n641,frog\n642,frog\n643,deer\n644,deer\n645,deer\n646,automobile\n647,cat\n648,horse\n649,frog\n650,airplane\n651,cat\n652,truck\n653,dog\n654,dog\n655,frog\n656,deer\n657,frog\n658,truck\n659,deer\n660,horse\n661,frog\n662,ship\n663,ship\n664,airplane\n665,automobile\n666,ship\n667,frog\n668,automobile\n669,frog\n670,cat\n671,cat\n672,bird\n673,frog\n674,airplane\n675,horse\n676,deer\n677,horse\n678,automobile\n679,horse\n680,dog\n681,deer\n682,dog\n683,airplane\n684,horse\n685,bird\n686,cat\n687,dog\n688,frog\n689,bird\n690,dog\n691,bird\n692,airplane\n693,deer\n694,truck\n695,automobile\n696,frog\n697,cat\n698,automobile\n699,ship\n700,frog\n701,horse\n702,cat\n703,truck\n704,cat\n705,deer\n706,dog\n707,frog\n708,horse\n709,bird\n710,deer\n711,frog\n712,automobile\n713,dog\n714,deer\n715,truck\n716,ship\n717,frog\n718,automobile\n719,cat\n720,dog\n721,truck\n722,dog\n723,cat\n724,dog\n725,airplane\n726,bird\n727,dog\n728,deer\n729,airplane\n730,deer\n731,truck\n732,cat\n733,truck\n734,bird\n735,bird\n736,automobile\n737,frog\n738,cat\n739,cat\n740,cat\n741,horse\n742,dog\n743,automobile\n744,cat\n745,deer\n746,deer\n747,deer\n748,horse\n749,dog\n750,dog\n751,automobile\n752,ship\n753,ship\n754,truck\n755,cat\n756,automobile\n757,dog\n758,deer\n759,frog\n760,ship\n761,truck\n762,dog\n763,deer\n764,dog\n765,airplane\n766,ship\n767,horse\n768,frog\n769,bird\n770,ship\n771,airplane\n772,horse\n773,cat\n774,dog\n775,deer\n776,truck\n777,airplane\n778,dog\n779,deer\n780,horse\n781,truck\n782,deer\n783,automobile\n784,truck\n785,frog\n786,bird\n787,cat\n788,bird\n789,truck\n790,cat\n791,bird\n792,deer\n793,cat\n794,frog\n795,horse\n796,airplane\n797,bird\n798,frog\n799,deer\n800,airplane\n801,frog\n802,deer\n803,dog\n804,cat\n805,airplane\n806,automobile\n807,frog\n808,deer\n809,bird\n810,frog\n811,truck\n812,horse\n813,bird\n814,dog\n815,horse\n816,truck\n817,cat\n818,cat\n819,cat\n820,deer\n821,cat\n822,horse\n823,airplane\n824,ship\n825,airplane\n826,airplane\n827,bird\n828,deer\n829,deer\n830,truck\n831,airplane\n832,cat\n833,deer\n834,ship\n835,truck\n836,deer\n837,truck\n838,deer\n839,dog\n840,bird\n841,horse\n842,deer\n843,dog\n844,automobile\n845,dog\n846,frog\n847,horse\n848,deer\n849,automobile\n850,automobile\n851,dog\n852,dog\n853,horse\n854,truck\n855,dog\n856,frog\n857,ship\n858,frog\n859,dog\n860,airplane\n861,automobile\n862,automobile\n863,deer\n864,airplane\n865,airplane\n866,dog\n867,deer\n868,dog\n869,airplane\n870,frog\n871,deer\n872,horse\n873,truck\n874,bird\n875,truck\n876,dog\n877,deer\n878,airplane\n879,frog\n880,ship\n881,deer\n882,frog\n883,frog\n884,dog\n885,frog\n886,dog\n887,dog\n888,dog\n889,horse\n890,cat\n891,bird\n892,frog\n893,ship\n894,automobile\n895,truck\n896,frog\n897,cat\n898,truck\n899,ship\n900,deer\n901,bird\n902,truck\n903,horse\n904,truck\n905,cat\n906,bird\n907,frog\n908,dog\n909,airplane\n910,bird\n911,dog\n912,frog\n913,deer\n914,truck\n915,truck\n916,ship\n917,bird\n918,dog\n919,dog\n920,dog\n921,cat\n922,dog\n923,airplane\n924,automobile\n925,deer\n926,automobile\n927,airplane\n928,cat\n929,automobile\n930,truck\n931,deer\n932,bird\n933,dog\n934,horse\n935,horse\n936,ship\n937,frog\n938,automobile\n939,automobile\n940,airplane\n941,bird\n942,truck\n943,truck\n944,airplane\n945,horse\n946,bird\n947,horse\n948,truck\n949,frog\n950,deer\n951,horse\n952,airplane\n953,dog\n954,cat\n955,cat\n956,truck\n957,frog\n958,deer\n959,dog\n960,airplane\n961,frog\n962,frog\n963,deer\n964,airplane\n965,dog\n966,deer\n967,cat\n968,frog\n969,automobile\n970,truck\n971,airplane\n972,ship\n973,bird\n974,frog\n975,deer\n976,deer\n977,horse\n978,deer\n979,truck\n980,cat\n981,horse\n982,deer\n983,ship\n984,deer\n985,airplane\n986,dog\n987,dog\n988,frog\n989,bird\n990,cat\n991,automobile\n992,ship\n993,deer\n994,bird\n995,deer\n996,cat\n997,truck\n998,ship\n999,horse\n1000,truck\n1001,bird\n1002,airplane\n1003,bird\n1004,cat\n1005,cat\n1006,dog\n1007,ship\n1008,automobile\n1009,automobile\n1010,cat\n1011,cat\n1012,deer\n1013,truck\n1014,airplane\n1015,frog\n1016,horse\n1017,ship\n1018,bird\n1019,cat\n1020,automobile\n1021,frog\n1022,frog\n1023,deer\n1024,truck\n1025,bird\n1026,cat\n1027,deer\n1028,bird\n1029,dog\n1030,dog\n1031,horse\n1032,deer\n1033,deer\n1034,cat\n1035,bird\n1036,deer\n1037,deer\n1038,truck\n1039,dog\n1040,airplane\n1041,cat\n1042,dog\n1043,dog\n1044,ship\n1045,cat\n1046,cat\n1047,ship\n1048,horse\n1049,cat\n1050,bird\n1051,dog\n1052,deer\n1053,dog\n1054,frog\n1055,bird\n1056,frog\n1057,frog\n1058,cat\n1059,bird\n1060,horse\n1061,frog\n1062,truck\n1063,truck\n1064,automobile\n1065,frog\n1066,truck\n1067,dog\n1068,horse\n1069,airplane\n1070,cat\n1071,frog\n1072,deer\n1073,horse\n1074,horse\n1075,cat\n1076,truck\n1077,dog\n1078,frog\n1079,truck\n1080,deer\n1081,deer\n1082,dog\n1083,deer\n1084,ship\n1085,ship\n1086,cat\n1087,horse\n1088,deer\n1089,bird\n1090,cat\n1091,automobile\n1092,ship\n1093,automobile\n1094,airplane\n1095,bird\n1096,truck\n1097,bird\n1098,frog\n1099,bird\n1100,truck\n1101,dog\n1102,airplane\n1103,frog\n1104,airplane\n1105,truck\n1106,truck\n1107,airplane\n1108,truck\n1109,truck\n1110,ship\n1111,dog\n1112,horse\n1113,cat\n1114,truck\n1115,deer\n1116,bird\n1117,truck\n1118,deer\n1119,airplane\n1120,cat\n1121,truck\n1122,dog\n1123,cat\n1124,ship\n1125,horse\n1126,ship\n1127,deer\n1128,frog\n1129,truck\n1130,cat\n1131,frog\n1132,frog\n1133,dog\n1134,frog\n1135,automobile\n1136,cat\n1137,frog\n1138,ship\n1139,horse\n1140,horse\n1141,frog\n1142,cat\n1143,horse\n1144,airplane\n1145,frog\n1146,deer\n1147,automobile\n1148,frog\n1149,truck\n1150,bird\n1151,bird\n1152,truck\n1153,bird\n1154,bird\n1155,horse\n1156,dog\n1157,dog\n1158,automobile\n1159,automobile\n1160,deer\n1161,cat\n1162,ship\n1163,airplane\n1164,frog\n1165,ship\n1166,airplane\n1167,truck\n1168,automobile\n1169,horse\n1170,truck\n1171,frog\n1172,truck\n1173,airplane\n1174,horse\n1175,ship\n1176,deer\n1177,deer\n1178,automobile\n1179,dog\n1180,cat\n1181,frog\n1182,horse\n1183,automobile\n1184,deer\n1185,automobile\n1186,frog\n1187,horse\n1188,deer\n1189,bird\n1190,dog\n1191,bird\n1192,dog\n1193,truck\n1194,cat\n1195,ship\n1196,ship\n1197,horse\n1198,deer\n1199,frog\n1200,dog\n1201,truck\n1202,bird\n1203,deer\n1204,truck\n1205,cat\n1206,dog\n1207,deer\n1208,horse\n1209,cat\n1210,frog\n1211,airplane\n1212,truck\n1213,truck\n1214,truck\n1215,ship\n1216,frog\n1217,dog\n1218,airplane\n1219,deer\n1220,automobile\n1221,deer\n1222,ship\n1223,dog\n1224,bird\n1225,truck\n1226,automobile\n1227,automobile\n1228,cat\n1229,automobile\n1230,frog\n1231,horse\n1232,deer\n1233,deer\n1234,automobile\n1235,automobile\n1236,frog\n1237,deer\n1238,dog\n1239,cat\n1240,deer\n1241,dog\n1242,deer\n1243,ship\n1244,airplane\n1245,ship\n1246,truck\n1247,horse\n1248,airplane\n1249,horse\n1250,truck\n1251,frog\n1252,horse\n1253,airplane\n1254,ship\n1255,ship\n1256,cat\n1257,cat\n1258,cat\n1259,ship\n1260,truck\n1261,deer\n1262,bird\n1263,deer\n1264,bird\n1265,truck\n1266,frog\n1267,cat\n1268,ship\n1269,truck\n1270,dog\n1271,deer\n1272,airplane\n1273,ship\n1274,deer\n1275,bird\n1276,frog\n1277,deer\n1278,horse\n1279,truck\n1280,frog\n1281,dog\n1282,ship\n1283,bird\n1284,dog\n1285,truck\n1286,horse\n1287,deer\n1288,horse\n1289,dog\n1290,frog\n1291,automobile\n1292,frog\n1293,deer\n1294,automobile\n1295,truck\n1296,deer\n1297,truck\n1298,horse\n1299,airplane\n1300,automobile\n1301,automobile\n1302,airplane\n1303,deer\n1304,frog\n1305,horse\n1306,frog\n1307,deer\n1308,airplane\n1309,airplane\n1310,frog\n1311,truck\n1312,dog\n1313,truck\n1314,frog\n1315,bird\n1316,automobile\n1317,dog\n1318,truck\n1319,horse\n1320,automobile\n1321,dog\n1322,frog\n1323,bird\n1324,cat\n1325,horse\n1326,bird\n1327,horse\n1328,dog\n1329,cat\n1330,airplane\n1331,automobile\n1332,ship\n1333,truck\n1334,truck\n1335,cat\n1336,deer\n1337,cat\n1338,cat\n1339,automobile\n1340,horse\n1341,automobile\n1342,frog\n1343,airplane\n1344,airplane\n1345,truck\n1346,truck\n1347,bird\n1348,bird\n1349,airplane\n1350,frog\n1351,dog\n1352,cat\n1353,bird\n1354,cat\n1355,deer\n1356,truck\n1357,horse\n1358,dog\n1359,dog\n1360,dog\n1361,dog\n1362,dog\n1363,deer\n1364,cat\n1365,deer\n1366,airplane\n1367,deer\n1368,cat\n1369,frog\n1370,truck\n1371,cat\n1372,deer\n1373,cat\n1374,dog\n1375,deer\n1376,bird\n1377,ship\n1378,horse\n1379,dog\n1380,cat\n1381,ship\n1382,truck\n1383,dog\n1384,cat\n1385,truck\n1386,deer\n1387,truck\n1388,bird\n1389,deer\n1390,dog\n1391,bird\n1392,frog\n1393,deer\n1394,ship\n1395,bird\n1396,horse\n1397,deer\n1398,truck\n1399,airplane\n1400,ship\n1401,truck\n1402,ship\n1403,deer\n1404,automobile\n1405,cat\n1406,horse\n1407,cat\n1408,bird\n1409,deer\n1410,dog\n1411,deer\n1412,truck\n1413,automobile\n1414,deer\n1415,truck\n1416,cat\n1417,ship\n1418,bird\n1419,horse\n1420,bird\n1421,truck\n1422,ship\n1423,frog\n1424,cat\n1425,airplane\n1426,frog\n1427,cat\n1428,deer\n1429,cat\n1430,cat\n1431,bird\n1432,automobile\n1433,truck\n1434,frog\n1435,automobile\n1436,bird\n1437,frog\n1438,horse\n1439,horse\n1440,truck\n1441,truck\n1442,bird\n1443,frog\n1444,deer\n1445,automobile\n1446,frog\n1447,frog\n1448,bird\n1449,truck\n1450,deer\n1451,airplane\n1452,ship\n1453,frog\n1454,deer\n1455,frog\n1456,deer\n1457,airplane\n1458,horse\n1459,ship\n1460,airplane\n1461,frog\n1462,ship\n1463,airplane\n1464,cat\n1465,bird\n1466,airplane\n1467,truck\n1468,deer\n1469,horse\n1470,cat\n1471,dog\n1472,bird\n1473,frog\n1474,bird\n1475,bird\n1476,horse\n1477,bird\n1478,truck\n1479,truck\n1480,deer\n1481,deer\n1482,cat\n1483,airplane\n1484,airplane\n1485,cat\n1486,cat\n1487,cat\n1488,cat\n1489,horse\n1490,horse\n1491,airplane\n1492,dog\n1493,dog\n1494,deer\n1495,frog\n1496,airplane\n1497,dog\n1498,truck\n1499,ship\n1500,cat\n1501,truck\n1502,bird\n1503,ship\n1504,truck\n1505,horse\n1506,bird\n1507,horse\n1508,cat\n1509,deer\n1510,horse\n1511,automobile\n1512,bird\n1513,deer\n1514,airplane\n1515,automobile\n1516,frog\n1517,truck\n1518,airplane\n1519,bird\n1520,airplane\n1521,automobile\n1522,ship\n1523,automobile\n1524,frog\n1525,airplane\n1526,cat\n1527,deer\n1528,bird\n1529,dog\n1530,deer\n1531,automobile\n1532,ship\n1533,deer\n1534,truck\n1535,deer\n1536,ship\n1537,frog\n1538,deer\n1539,ship\n1540,cat\n1541,ship\n1542,dog\n1543,airplane\n1544,deer\n1545,truck\n1546,frog\n1547,deer\n1548,dog\n1549,deer\n1550,deer\n1551,dog\n1552,truck\n1553,automobile\n1554,bird\n1555,bird\n1556,deer\n1557,bird\n1558,dog\n1559,automobile\n1560,deer\n1561,dog\n1562,deer\n1563,dog\n1564,cat\n1565,horse\n1566,deer\n1567,deer\n1568,cat\n1569,frog\n1570,frog\n1571,deer\n1572,horse\n1573,truck\n1574,truck\n1575,bird\n1576,ship\n1577,truck\n1578,airplane\n1579,automobile\n1580,cat\n1581,deer\n1582,bird\n1583,ship\n1584,frog\n1585,bird\n1586,airplane\n1587,automobile\n1588,frog\n1589,deer\n1590,frog\n1591,cat\n1592,dog\n1593,dog\n1594,cat\n1595,dog\n1596,automobile\n1597,horse\n1598,frog\n1599,cat\n1600,airplane\n1601,airplane\n1602,truck\n1603,dog\n1604,dog\n1605,cat\n1606,horse\n1607,ship\n1608,horse\n1609,cat\n1610,frog\n1611,deer\n1612,truck\n1613,dog\n1614,truck\n1615,bird\n1616,airplane\n1617,bird\n1618,bird\n1619,horse\n1620,cat\n1621,dog\n1622,frog\n1623,airplane\n1624,truck\n1625,truck\n1626,cat\n1627,dog\n1628,frog\n1629,deer\n1630,dog\n1631,airplane\n1632,airplane\n1633,airplane\n1634,deer\n1635,truck\n1636,airplane\n1637,truck\n1638,deer\n1639,frog\n1640,airplane\n1641,automobile\n1642,truck\n1643,cat\n1644,horse\n1645,truck\n1646,dog\n1647,truck\n1648,horse\n1649,cat\n1650,automobile\n1651,dog\n1652,deer\n1653,deer\n1654,cat\n1655,deer\n1656,bird\n1657,automobile\n1658,frog\n1659,airplane\n1660,deer\n1661,horse\n1662,truck\n1663,deer\n1664,ship\n1665,cat\n1666,ship\n1667,bird\n1668,ship\n1669,bird\n1670,automobile\n1671,truck\n1672,frog\n1673,deer\n1674,deer\n1675,truck\n1676,horse\n1677,frog\n1678,deer\n1679,deer\n1680,frog\n1681,airplane\n1682,ship\n1683,truck\n1684,airplane\n1685,frog\n1686,cat\n1687,airplane\n1688,airplane\n1689,ship\n1690,automobile\n1691,frog\n1692,dog\n1693,ship\n1694,horse\n1695,truck\n1696,deer\n1697,ship\n1698,automobile\n1699,ship\n1700,deer\n1701,automobile\n1702,automobile\n1703,airplane\n1704,dog\n1705,deer\n1706,bird\n1707,truck\n1708,dog\n1709,deer\n1710,truck\n1711,horse\n1712,deer\n1713,truck\n1714,cat\n1715,deer\n1716,deer\n1717,bird\n1718,horse\n1719,cat\n1720,automobile\n1721,frog\n1722,cat\n1723,cat\n1724,bird\n1725,frog\n1726,deer\n1727,frog\n1728,cat\n1729,cat\n1730,deer\n1731,truck\n1732,truck\n1733,horse\n1734,ship\n1735,cat\n1736,truck\n1737,cat\n1738,cat\n1739,bird\n1740,deer\n1741,ship\n1742,airplane\n1743,bird\n1744,cat\n1745,airplane\n1746,cat\n1747,truck\n1748,deer\n1749,frog\n1750,dog\n1751,automobile\n1752,ship\n1753,deer\n1754,automobile\n1755,frog\n1756,truck\n1757,truck\n1758,truck\n1759,ship\n1760,automobile\n1761,airplane\n1762,ship\n1763,deer\n1764,cat\n1765,frog\n1766,truck\n1767,cat\n1768,ship\n1769,automobile\n1770,cat\n1771,bird\n1772,truck\n1773,deer\n1774,deer\n1775,bird\n1776,ship\n1777,dog\n1778,cat\n1779,truck\n1780,dog\n1781,truck\n1782,bird\n1783,cat\n1784,frog\n1785,cat\n1786,truck\n1787,truck\n1788,frog\n1789,bird\n1790,cat\n1791,dog\n1792,truck\n1793,ship\n1794,truck\n1795,deer\n1796,frog\n1797,bird\n1798,airplane\n1799,dog\n1800,frog\n1801,cat\n1802,dog\n1803,bird\n1804,deer\n1805,automobile\n1806,cat\n1807,cat\n1808,truck\n1809,cat\n1810,deer\n1811,horse\n1812,horse\n1813,horse\n1814,horse\n1815,deer\n1816,deer\n1817,cat\n1818,airplane\n1819,bird\n1820,dog\n1821,cat\n1822,horse\n1823,bird\n1824,deer\n1825,horse\n1826,dog\n1827,airplane\n1828,bird\n1829,bird\n1830,automobile\n1831,truck\n1832,dog\n1833,airplane\n1834,truck\n1835,cat\n1836,cat\n1837,bird\n1838,horse\n1839,dog\n1840,deer\n1841,deer\n1842,deer\n1843,airplane\n1844,horse\n1845,dog\n1846,bird\n1847,dog\n1848,cat\n1849,deer\n1850,dog\n1851,truck\n1852,frog\n1853,automobile\n1854,ship\n1855,bird\n1856,dog\n1857,frog\n1858,horse\n1859,airplane\n1860,cat\n1861,horse\n1862,deer\n1863,dog\n1864,frog\n1865,cat\n1866,bird\n1867,airplane\n1868,cat\n1869,horse\n1870,horse\n1871,airplane\n1872,deer\n1873,bird\n1874,airplane\n1875,airplane\n1876,horse\n1877,ship\n1878,airplane\n1879,dog\n1880,automobile\n1881,deer\n1882,airplane\n1883,bird\n1884,frog\n1885,cat\n1886,bird\n1887,automobile\n1888,deer\n1889,horse\n1890,bird\n1891,deer\n1892,truck\n1893,automobile\n1894,frog\n1895,airplane\n1896,bird\n1897,dog\n1898,deer\n1899,truck\n1900,cat\n1901,cat\n1902,cat\n1903,airplane\n1904,ship\n1905,deer\n1906,airplane\n1907,truck\n1908,cat\n1909,truck\n1910,truck\n1911,cat\n1912,horse\n1913,automobile\n1914,cat\n1915,truck\n1916,horse\n1917,dog\n1918,bird\n1919,automobile\n1920,cat\n1921,dog\n1922,ship\n1923,automobile\n1924,dog\n1925,frog\n1926,airplane\n1927,automobile\n1928,frog\n1929,bird\n1930,bird\n1931,ship\n1932,airplane\n1933,truck\n1934,horse\n1935,ship\n1936,frog\n1937,ship\n1938,horse\n1939,truck\n1940,frog\n1941,dog\n1942,ship\n1943,frog\n1944,horse\n1945,cat\n1946,cat\n1947,ship\n1948,deer\n1949,frog\n1950,cat\n1951,truck\n1952,bird\n1953,dog\n1954,deer\n1955,horse\n1956,deer\n1957,frog\n1958,cat\n1959,dog\n1960,airplane\n1961,automobile\n1962,deer\n1963,dog\n1964,deer\n1965,truck\n1966,cat\n1967,truck\n1968,truck\n1969,automobile\n1970,truck\n1971,truck\n1972,deer\n1973,cat\n1974,ship\n1975,cat\n1976,airplane\n1977,bird\n1978,automobile\n1979,frog\n1980,airplane\n1981,ship\n1982,dog\n1983,truck\n1984,airplane\n1985,bird\n1986,cat\n1987,cat\n1988,deer\n1989,bird\n1990,deer\n1991,frog\n1992,dog\n1993,deer\n1994,truck\n1995,frog\n1996,horse\n1997,automobile\n1998,frog\n1999,frog\n2000,automobile\n2001,deer\n2002,deer\n2003,truck\n2004,deer\n2005,horse\n2006,horse\n2007,ship\n2008,horse\n2009,cat\n2010,automobile\n2011,deer\n2012,frog\n2013,horse\n2014,dog\n2015,cat\n2016,cat\n2017,cat\n2018,deer\n2019,ship\n2020,airplane\n2021,airplane\n2022,frog\n2023,deer\n2024,horse\n2025,deer\n2026,truck\n2027,bird\n2028,cat\n2029,airplane\n2030,horse\n2031,deer\n2032,bird\n2033,deer\n2034,deer\n2035,deer\n2036,ship\n2037,truck\n2038,dog\n2039,horse\n2040,bird\n2041,airplane\n2042,deer\n2043,deer\n2044,dog\n2045,deer\n2046,horse\n2047,cat\n2048,bird\n2049,deer\n2050,truck\n2051,dog\n2052,bird\n2053,cat\n2054,horse\n2055,bird\n2056,airplane\n2057,automobile\n2058,airplane\n2059,dog\n2060,ship\n2061,cat\n2062,frog\n2063,bird\n2064,bird\n2065,truck\n2066,truck\n2067,automobile\n2068,truck\n2069,cat\n2070,horse\n2071,dog\n2072,cat\n2073,deer\n2074,deer\n2075,airplane\n2076,airplane\n2077,ship\n2078,airplane\n2079,automobile\n2080,airplane\n2081,truck\n2082,airplane\n2083,frog\n2084,bird\n2085,dog\n2086,horse\n2087,frog\n2088,dog\n2089,truck\n2090,frog\n2091,bird\n2092,automobile\n2093,truck\n2094,deer\n2095,horse\n2096,automobile\n2097,truck\n2098,truck\n2099,bird\n2100,ship\n2101,horse\n2102,airplane\n2103,automobile\n2104,dog\n2105,airplane\n2106,ship\n2107,airplane\n2108,truck\n2109,automobile\n2110,frog\n2111,deer\n2112,horse\n2113,frog\n2114,cat\n2115,truck\n2116,frog\n2117,frog\n2118,frog\n2119,ship\n2120,dog\n2121,horse\n2122,automobile\n2123,dog\n2124,dog\n2125,truck\n2126,deer\n2127,ship\n2128,ship\n2129,ship\n2130,airplane\n2131,dog\n2132,horse\n2133,dog\n2134,horse\n2135,airplane\n2136,deer\n2137,deer\n2138,dog\n2139,bird\n2140,horse\n2141,deer\n2142,horse\n2143,frog\n2144,bird\n2145,automobile\n2146,frog\n2147,horse\n2148,cat\n2149,frog\n2150,truck\n2151,cat\n2152,cat\n2153,truck\n2154,airplane\n2155,ship\n2156,horse\n2157,horse\n2158,airplane\n2159,truck\n2160,dog\n2161,frog\n2162,automobile\n2163,ship\n2164,automobile\n2165,frog\n2166,frog\n2167,dog\n2168,cat\n2169,airplane\n2170,truck\n2171,ship\n2172,cat\n2173,horse\n2174,horse\n2175,dog\n2176,cat\n2177,frog\n2178,frog\n2179,truck\n2180,cat\n2181,frog\n2182,ship\n2183,horse\n2184,ship\n2185,bird\n2186,automobile\n2187,cat\n2188,truck\n2189,dog\n2190,frog\n2191,horse\n2192,cat\n2193,bird\n2194,automobile\n2195,cat\n2196,ship\n2197,horse\n2198,deer\n2199,airplane\n2200,cat\n2201,airplane\n2202,bird\n2203,dog\n2204,truck\n2205,horse\n2206,frog\n2207,truck\n2208,dog\n2209,airplane\n2210,frog\n2211,ship\n2212,airplane\n2213,deer\n2214,automobile\n2215,truck\n2216,ship\n2217,truck\n2218,automobile\n2219,horse\n2220,automobile\n2221,truck\n2222,automobile\n2223,truck\n2224,dog\n2225,cat\n2226,automobile\n2227,airplane\n2228,cat\n2229,cat\n2230,frog\n2231,airplane\n2232,cat\n2233,ship\n2234,airplane\n2235,bird\n2236,airplane\n2237,frog\n2238,frog\n2239,ship\n2240,horse\n2241,ship\n2242,cat\n2243,dog\n2244,horse\n2245,cat\n2246,horse\n2247,frog\n2248,automobile\n2249,automobile\n2250,dog\n2251,airplane\n2252,horse\n2253,dog\n2254,dog\n2255,truck\n2256,ship\n2257,cat\n2258,ship\n2259,airplane\n2260,frog\n2261,airplane\n2262,truck\n2263,horse\n2264,truck\n2265,bird\n2266,airplane\n2267,dog\n2268,horse\n2269,horse\n2270,frog\n2271,automobile\n2272,ship\n2273,automobile\n2274,deer\n2275,horse\n2276,horse\n2277,truck\n2278,ship\n2279,ship\n2280,horse\n2281,cat\n2282,cat\n2283,deer\n2284,frog\n2285,frog\n2286,airplane\n2287,truck\n2288,frog\n2289,ship\n2290,frog\n2291,dog\n2292,cat\n2293,horse\n2294,truck\n2295,dog\n2296,cat\n2297,airplane\n2298,airplane\n2299,ship\n2300,cat\n2301,frog\n2302,horse\n2303,cat\n2304,airplane\n2305,airplane\n2306,airplane\n2307,dog\n2308,deer\n2309,airplane\n2310,cat\n2311,airplane\n2312,frog\n2313,dog\n2314,ship\n2315,truck\n2316,ship\n2317,automobile\n2318,ship\n2319,frog\n2320,deer\n2321,deer\n2322,deer\n2323,frog\n2324,frog\n2325,bird\n2326,frog\n2327,frog\n2328,frog\n2329,dog\n2330,deer\n2331,cat\n2332,automobile\n2333,cat\n2334,truck\n2335,truck\n2336,bird\n2337,deer\n2338,cat\n2339,airplane\n2340,dog\n2341,bird\n2342,horse\n2343,truck\n2344,truck\n2345,airplane\n2346,frog\n2347,frog\n2348,truck\n2349,cat\n2350,cat\n2351,ship\n2352,frog\n2353,horse\n2354,deer\n2355,deer\n2356,ship\n2357,horse\n2358,horse\n2359,frog\n2360,airplane\n2361,deer\n2362,frog\n2363,truck\n2364,frog\n2365,airplane\n2366,truck\n2367,ship\n2368,automobile\n2369,truck\n2370,ship\n2371,horse\n2372,dog\n2373,ship\n2374,cat\n2375,bird\n2376,frog\n2377,automobile\n2378,ship\n2379,cat\n2380,truck\n2381,automobile\n2382,dog\n2383,truck\n2384,airplane\n2385,cat\n2386,airplane\n2387,cat\n2388,automobile\n2389,bird\n2390,deer\n2391,deer\n2392,automobile\n2393,truck\n2394,cat\n2395,deer\n2396,dog\n2397,deer\n2398,bird\n2399,cat\n2400,ship\n2401,automobile\n2402,bird\n2403,truck\n2404,dog\n2405,bird\n2406,frog\n2407,dog\n2408,truck\n2409,dog\n2410,frog\n2411,cat\n2412,ship\n2413,automobile\n2414,cat\n2415,automobile\n2416,bird\n2417,bird\n2418,frog\n2419,cat\n2420,dog\n2421,deer\n2422,deer\n2423,horse\n2424,dog\n2425,cat\n2426,bird\n2427,frog\n2428,bird\n2429,dog\n2430,deer\n2431,horse\n2432,truck\n2433,deer\n2434,bird\n2435,cat\n2436,horse\n2437,automobile\n2438,cat\n2439,truck\n2440,truck\n2441,airplane\n2442,cat\n2443,automobile\n2444,deer\n2445,airplane\n2446,automobile\n2447,truck\n2448,cat\n2449,deer\n2450,frog\n2451,horse\n2452,automobile\n2453,bird\n2454,deer\n2455,airplane\n2456,deer\n2457,horse\n2458,truck\n2459,frog\n2460,automobile\n2461,dog\n2462,truck\n2463,airplane\n2464,horse\n2465,frog\n2466,cat\n2467,deer\n2468,truck\n2469,bird\n2470,horse\n2471,bird\n2472,ship\n2473,deer\n2474,cat\n2475,horse\n2476,ship\n2477,deer\n2478,deer\n2479,cat\n2480,automobile\n2481,bird\n2482,cat\n2483,cat\n2484,bird\n2485,horse\n2486,bird\n2487,deer\n2488,deer\n2489,cat\n2490,ship\n2491,frog\n2492,ship\n2493,deer\n2494,airplane\n2495,automobile\n2496,horse\n2497,dog\n2498,horse\n2499,airplane\n2500,dog\n2501,cat\n2502,horse\n2503,bird\n2504,truck\n2505,deer\n2506,dog\n2507,cat\n2508,automobile\n2509,automobile\n2510,frog\n2511,automobile\n2512,automobile\n2513,deer\n2514,bird\n2515,frog\n2516,automobile\n2517,frog\n2518,dog\n2519,cat\n2520,frog\n2521,deer\n2522,cat\n2523,ship\n2524,deer\n2525,dog\n2526,airplane\n2527,truck\n2528,bird\n2529,deer\n2530,deer\n2531,automobile\n2532,ship\n2533,horse\n2534,automobile\n2535,frog\n2536,cat\n2537,deer\n2538,deer\n2539,cat\n2540,frog\n2541,airplane\n2542,airplane\n2543,horse\n2544,truck\n2545,dog\n2546,truck\n2547,automobile\n2548,frog\n2549,deer\n2550,airplane\n2551,horse\n2552,frog\n2553,deer\n2554,airplane\n2555,frog\n2556,ship\n2557,horse\n2558,frog\n2559,frog\n2560,deer\n2561,bird\n2562,deer\n2563,bird\n2564,truck\n2565,dog\n2566,cat\n2567,airplane\n2568,horse\n2569,automobile\n2570,deer\n2571,cat\n2572,dog\n2573,horse\n2574,dog\n2575,dog\n2576,dog\n2577,deer\n2578,cat\n2579,ship\n2580,deer\n2581,deer\n2582,horse\n2583,deer\n2584,airplane\n2585,dog\n2586,horse\n2587,cat\n2588,airplane\n2589,ship\n2590,deer\n2591,truck\n2592,cat\n2593,truck\n2594,truck\n2595,dog\n2596,horse\n2597,horse\n2598,airplane\n2599,dog\n2600,truck\n2601,cat\n2602,ship\n2603,automobile\n2604,dog\n2605,ship\n2606,truck\n2607,deer\n2608,frog\n2609,cat\n2610,deer\n2611,ship\n2612,horse\n2613,bird\n2614,dog\n2615,bird\n2616,dog\n2617,horse\n2618,deer\n2619,bird\n2620,horse\n2621,horse\n2622,ship\n2623,automobile\n2624,airplane\n2625,horse\n2626,bird\n2627,airplane\n2628,automobile\n2629,ship\n2630,frog\n2631,horse\n2632,automobile\n2633,cat\n2634,bird\n2635,truck\n2636,airplane\n2637,truck\n2638,dog\n2639,horse\n2640,cat\n2641,horse\n2642,ship\n2643,truck\n2644,deer\n2645,airplane\n2646,airplane\n2647,bird\n2648,deer\n2649,truck\n2650,ship\n2651,ship\n2652,dog\n2653,cat\n2654,frog\n2655,ship\n2656,cat\n2657,horse\n2658,cat\n2659,truck\n2660,horse\n2661,horse\n2662,frog\n2663,automobile\n2664,deer\n2665,horse\n2666,ship\n2667,automobile\n2668,cat\n2669,dog\n2670,truck\n2671,cat\n2672,frog\n2673,frog\n2674,cat\n2675,cat\n2676,frog\n2677,deer\n2678,automobile\n2679,airplane\n2680,bird\n2681,truck\n2682,automobile\n2683,bird\n2684,horse\n2685,dog\n2686,frog\n2687,airplane\n2688,automobile\n2689,deer\n2690,ship\n2691,ship\n2692,automobile\n2693,cat\n2694,deer\n2695,cat\n2696,dog\n2697,deer\n2698,automobile\n2699,dog\n2700,cat\n2701,bird\n2702,horse\n2703,bird\n2704,cat\n2705,deer\n2706,dog\n2707,frog\n2708,bird\n2709,truck\n2710,frog\n2711,frog\n2712,horse\n2713,automobile\n2714,deer\n2715,truck\n2716,dog\n2717,cat\n2718,frog\n2719,cat\n2720,airplane\n2721,deer\n2722,horse\n2723,dog\n2724,horse\n2725,truck\n2726,ship\n2727,dog\n2728,deer\n2729,cat\n2730,deer\n2731,deer\n2732,dog\n2733,cat\n2734,truck\n2735,truck\n2736,truck\n2737,dog\n2738,ship\n2739,airplane\n2740,deer\n2741,truck\n2742,deer\n2743,horse\n2744,frog\n2745,cat\n2746,ship\n2747,frog\n2748,frog\n2749,truck\n2750,truck\n2751,cat\n2752,deer\n2753,deer\n2754,airplane\n2755,automobile\n2756,dog\n2757,frog\n2758,horse\n2759,automobile\n2760,automobile\n2761,bird\n2762,ship\n2763,deer\n2764,truck\n2765,truck\n2766,truck\n2767,frog\n2768,bird\n2769,horse\n2770,truck\n2771,truck\n2772,bird\n2773,automobile\n2774,automobile\n2775,bird\n2776,cat\n2777,deer\n2778,bird\n2779,cat\n2780,truck\n2781,frog\n2782,ship\n2783,bird\n2784,ship\n2785,dog\n2786,deer\n2787,cat\n2788,truck\n2789,deer\n2790,truck\n2791,ship\n2792,bird\n2793,deer\n2794,cat\n2795,frog\n2796,dog\n2797,cat\n2798,horse\n2799,automobile\n2800,cat\n2801,cat\n2802,airplane\n2803,automobile\n2804,truck\n2805,ship\n2806,horse\n2807,bird\n2808,bird\n2809,cat\n2810,automobile\n2811,airplane\n2812,cat\n2813,deer\n2814,cat\n2815,horse\n2816,cat\n2817,automobile\n2818,truck\n2819,frog\n2820,automobile\n2821,frog\n2822,bird\n2823,ship\n2824,ship\n2825,deer\n2826,airplane\n2827,automobile\n2828,dog\n2829,truck\n2830,deer\n2831,deer\n2832,cat\n2833,cat\n2834,cat\n2835,truck\n2836,cat\n2837,bird\n2838,dog\n2839,truck\n2840,frog\n2841,automobile\n2842,cat\n2843,ship\n2844,cat\n2845,bird\n2846,deer\n2847,cat\n2848,frog\n2849,truck\n2850,deer\n2851,deer\n2852,deer\n2853,automobile\n2854,frog\n2855,deer\n2856,horse\n2857,dog\n2858,cat\n2859,truck\n2860,horse\n2861,truck\n2862,horse\n2863,horse\n2864,frog\n2865,deer\n2866,bird\n2867,deer\n2868,dog\n2869,horse\n2870,cat\n2871,automobile\n2872,airplane\n2873,horse\n2874,dog\n2875,frog\n2876,frog\n2877,frog\n2878,horse\n2879,cat\n2880,cat\n2881,ship\n2882,deer\n2883,deer\n2884,dog\n2885,horse\n2886,frog\n2887,deer\n2888,frog\n2889,ship\n2890,deer\n2891,deer\n2892,deer\n2893,frog\n2894,automobile\n2895,cat\n2896,deer\n2897,deer\n2898,frog\n2899,deer\n2900,dog\n2901,deer\n2902,truck\n2903,cat\n2904,deer\n2905,cat\n2906,cat\n2907,dog\n2908,airplane\n2909,ship\n2910,cat\n2911,airplane\n2912,deer\n2913,truck\n2914,horse\n2915,horse\n2916,airplane\n2917,dog\n2918,truck\n2919,deer\n2920,deer\n2921,automobile\n2922,horse\n2923,frog\n2924,bird\n2925,cat\n2926,truck\n2927,frog\n2928,airplane\n2929,bird\n2930,ship\n2931,dog\n2932,airplane\n2933,dog\n2934,deer\n2935,ship\n2936,cat\n2937,truck\n2938,cat\n2939,deer\n2940,bird\n2941,ship\n2942,deer\n2943,airplane\n2944,airplane\n2945,dog\n2946,cat\n2947,airplane\n2948,horse\n2949,horse\n2950,ship\n2951,deer\n2952,ship\n2953,frog\n2954,truck\n2955,dog\n2956,cat\n2957,airplane\n2958,truck\n2959,frog\n2960,horse\n2961,truck\n2962,truck\n2963,truck\n2964,automobile\n2965,airplane\n2966,automobile\n2967,airplane\n2968,truck\n2969,automobile\n2970,ship\n2971,frog\n2972,truck\n2973,cat\n2974,bird\n2975,dog\n2976,airplane\n2977,cat\n2978,horse\n2979,ship\n2980,frog\n2981,truck\n2982,bird\n2983,deer\n2984,horse\n2985,automobile\n2986,ship\n2987,dog\n2988,bird\n2989,horse\n2990,airplane\n2991,truck\n2992,bird\n2993,horse\n2994,cat\n2995,bird\n2996,frog\n2997,automobile\n2998,airplane\n2999,truck\n3000,truck\n3001,cat\n3002,deer\n3003,automobile\n3004,cat\n3005,horse\n3006,deer\n3007,cat\n3008,automobile\n3009,airplane\n3010,deer\n3011,ship\n3012,cat\n3013,frog\n3014,ship\n3015,cat\n3016,cat\n3017,ship\n3018,ship\n3019,frog\n3020,airplane\n3021,frog\n3022,horse\n3023,bird\n3024,deer\n3025,deer\n3026,frog\n3027,ship\n3028,dog\n3029,dog\n3030,airplane\n3031,airplane\n3032,deer\n3033,frog\n3034,bird\n3035,horse\n3036,automobile\n3037,cat\n3038,deer\n3039,automobile\n3040,cat\n3041,horse\n3042,cat\n3043,truck\n3044,horse\n3045,frog\n3046,horse\n3047,truck\n3048,airplane\n3049,airplane\n3050,dog\n3051,dog\n3052,frog\n3053,horse\n3054,truck\n3055,cat\n3056,truck\n3057,horse\n3058,horse\n3059,automobile\n3060,deer\n3061,truck\n3062,ship\n3063,truck\n3064,ship\n3065,dog\n3066,deer\n3067,truck\n3068,airplane\n3069,frog\n3070,horse\n3071,horse\n3072,cat\n3073,deer\n3074,bird\n3075,bird\n3076,airplane\n3077,horse\n3078,automobile\n3079,automobile\n3080,bird\n3081,cat\n3082,cat\n3083,ship\n3084,horse\n3085,horse\n3086,deer\n3087,truck\n3088,bird\n3089,airplane\n3090,ship\n3091,bird\n3092,frog\n3093,airplane\n3094,cat\n3095,airplane\n3096,truck\n3097,automobile\n3098,dog\n3099,frog\n3100,airplane\n3101,airplane\n3102,deer\n3103,dog\n3104,automobile\n3105,deer\n3106,bird\n3107,airplane\n3108,deer\n3109,dog\n3110,frog\n3111,airplane\n3112,airplane\n3113,automobile\n3114,truck\n3115,deer\n3116,dog\n3117,ship\n3118,horse\n3119,horse\n3120,deer\n3121,truck\n3122,deer\n3123,cat\n3124,cat\n3125,cat\n3126,dog\n3127,ship\n3128,ship\n3129,deer\n3130,cat\n3131,automobile\n3132,automobile\n3133,cat\n3134,airplane\n3135,automobile\n3136,cat\n3137,cat\n3138,deer\n3139,dog\n3140,dog\n3141,dog\n3142,deer\n3143,horse\n3144,cat\n3145,horse\n3146,cat\n3147,bird\n3148,cat\n3149,truck\n3150,airplane\n3151,deer\n3152,dog\n3153,automobile\n3154,deer\n3155,frog\n3156,deer\n3157,ship\n3158,airplane\n3159,ship\n3160,truck\n3161,airplane\n3162,bird\n3163,truck\n3164,airplane\n3165,frog\n3166,deer\n3167,deer\n3168,bird\n3169,cat\n3170,horse\n3171,frog\n3172,ship\n3173,frog\n3174,deer\n3175,automobile\n3176,deer\n3177,cat\n3178,truck\n3179,dog\n3180,horse\n3181,cat\n3182,deer\n3183,automobile\n3184,deer\n3185,automobile\n3186,frog\n3187,deer\n3188,horse\n3189,ship\n3190,ship\n3191,automobile\n3192,bird\n3193,dog\n3194,ship\n3195,truck\n3196,truck\n3197,deer\n3198,dog\n3199,dog\n3200,automobile\n3201,bird\n3202,automobile\n3203,airplane\n3204,deer\n3205,airplane\n3206,truck\n3207,airplane\n3208,frog\n3209,dog\n3210,deer\n3211,truck\n3212,cat\n3213,horse\n3214,truck\n3215,cat\n3216,bird\n3217,horse\n3218,airplane\n3219,frog\n3220,cat\n3221,deer\n3222,truck\n3223,cat\n3224,frog\n3225,deer\n3226,dog\n3227,truck\n3228,ship\n3229,bird\n3230,horse\n3231,dog\n3232,ship\n3233,horse\n3234,automobile\n3235,frog\n3236,automobile\n3237,airplane\n3238,cat\n3239,cat\n3240,truck\n3241,bird\n3242,automobile\n3243,dog\n3244,frog\n3245,automobile\n3246,cat\n3247,horse\n3248,airplane\n3249,dog\n3250,ship\n3251,cat\n3252,airplane\n3253,cat\n3254,frog\n3255,cat\n3256,automobile\n3257,deer\n3258,cat\n3259,deer\n3260,ship\n3261,bird\n3262,cat\n3263,automobile\n3264,frog\n3265,automobile\n3266,dog\n3267,frog\n3268,truck\n3269,truck\n3270,bird\n3271,deer\n3272,deer\n3273,truck\n3274,cat\n3275,truck\n3276,ship\n3277,bird\n3278,truck\n3279,deer\n3280,horse\n3281,frog\n3282,deer\n3283,frog\n3284,deer\n3285,bird\n3286,airplane\n3287,automobile\n3288,automobile\n3289,airplane\n3290,ship\n3291,ship\n3292,deer\n3293,truck\n3294,airplane\n3295,horse\n3296,frog\n3297,cat\n3298,ship\n3299,bird\n3300,cat\n3301,airplane\n3302,dog\n3303,automobile\n3304,dog\n3305,truck\n3306,automobile\n3307,truck\n3308,automobile\n3309,airplane\n3310,deer\n3311,truck\n3312,frog\n3313,truck\n3314,frog\n3315,bird\n3316,automobile\n3317,truck\n3318,bird\n3319,automobile\n3320,dog\n3321,ship\n3322,horse\n3323,bird\n3324,horse\n3325,airplane\n3326,truck\n3327,horse\n3328,automobile\n3329,dog\n3330,bird\n3331,horse\n3332,cat\n3333,deer\n3334,deer\n3335,frog\n3336,automobile\n3337,horse\n3338,frog\n3339,automobile\n3340,deer\n3341,bird\n3342,cat\n3343,cat\n3344,deer\n3345,frog\n3346,bird\n3347,airplane\n3348,cat\n3349,truck\n3350,deer\n3351,frog\n3352,deer\n3353,dog\n3354,horse\n3355,deer\n3356,bird\n3357,bird\n3358,dog\n3359,deer\n3360,dog\n3361,frog\n3362,automobile\n3363,cat\n3364,frog\n3365,cat\n3366,truck\n3367,cat\n3368,frog\n3369,horse\n3370,truck\n3371,cat\n3372,frog\n3373,truck\n3374,bird\n3375,frog\n3376,airplane\n3377,bird\n3378,horse\n3379,automobile\n3380,dog\n3381,frog\n3382,bird\n3383,cat\n3384,ship\n3385,horse\n3386,truck\n3387,automobile\n3388,horse\n3389,dog\n3390,frog\n3391,truck\n3392,dog\n3393,truck\n3394,horse\n3395,horse\n3396,dog\n3397,cat\n3398,automobile\n3399,dog\n3400,truck\n3401,frog\n3402,automobile\n3403,cat\n3404,automobile\n3405,horse\n3406,bird\n3407,bird\n3408,airplane\n3409,automobile\n3410,automobile\n3411,deer\n3412,truck\n3413,dog\n3414,deer\n3415,bird\n3416,truck\n3417,ship\n3418,cat\n3419,airplane\n3420,frog\n3421,truck\n3422,cat\n3423,deer\n3424,dog\n3425,truck\n3426,bird\n3427,airplane\n3428,frog\n3429,frog\n3430,horse\n3431,truck\n3432,horse\n3433,deer\n3434,airplane\n3435,deer\n3436,ship\n3437,frog\n3438,deer\n3439,truck\n3440,frog\n3441,horse\n3442,automobile\n3443,frog\n3444,cat\n3445,deer\n3446,dog\n3447,automobile\n3448,frog\n3449,cat\n3450,deer\n3451,deer\n3452,airplane\n3453,bird\n3454,horse\n3455,airplane\n3456,dog\n3457,ship\n3458,ship\n3459,cat\n3460,airplane\n3461,deer\n3462,deer\n3463,deer\n3464,ship\n3465,truck\n3466,cat\n3467,deer\n3468,cat\n3469,frog\n3470,airplane\n3471,dog\n3472,airplane\n3473,truck\n3474,cat\n3475,deer\n3476,dog\n3477,cat\n3478,ship\n3479,airplane\n3480,ship\n3481,dog\n3482,frog\n3483,airplane\n3484,automobile\n3485,automobile\n3486,truck\n3487,cat\n3488,ship\n3489,cat\n3490,airplane\n3491,deer\n3492,truck\n3493,truck\n3494,truck\n3495,deer\n3496,deer\n3497,ship\n3498,bird\n3499,dog\n3500,dog\n3501,bird\n3502,cat\n3503,cat\n3504,deer\n3505,automobile\n3506,deer\n3507,truck\n3508,truck\n3509,deer\n3510,ship\n3511,horse\n3512,deer\n3513,bird\n3514,dog\n3515,deer\n3516,horse\n3517,cat\n3518,deer\n3519,frog\n3520,bird\n3521,dog\n3522,frog\n3523,bird\n3524,cat\n3525,cat\n3526,frog\n3527,dog\n3528,frog\n3529,cat\n3530,airplane\n3531,dog\n3532,ship\n3533,frog\n3534,truck\n3535,cat\n3536,dog\n3537,cat\n3538,dog\n3539,truck\n3540,automobile\n3541,deer\n3542,truck\n3543,dog\n3544,airplane\n3545,airplane\n3546,ship\n3547,frog\n3548,dog\n3549,frog\n3550,deer\n3551,horse\n3552,deer\n3553,deer\n3554,ship\n3555,frog\n3556,dog\n3557,cat\n3558,cat\n3559,dog\n3560,bird\n3561,horse\n3562,truck\n3563,cat\n3564,cat\n3565,deer\n3566,dog\n3567,horse\n3568,bird\n3569,frog\n3570,bird\n3571,airplane\n3572,ship\n3573,truck\n3574,dog\n3575,horse\n3576,horse\n3577,cat\n3578,airplane\n3579,dog\n3580,truck\n3581,deer\n3582,frog\n3583,truck\n3584,frog\n3585,airplane\n3586,deer\n3587,automobile\n3588,airplane\n3589,horse\n3590,airplane\n3591,truck\n3592,cat\n3593,ship\n3594,dog\n3595,bird\n3596,ship\n3597,deer\n3598,cat\n3599,truck\n3600,dog\n3601,horse\n3602,deer\n3603,cat\n3604,cat\n3605,dog\n3606,airplane\n3607,dog\n3608,dog\n3609,cat\n3610,deer\n3611,automobile\n3612,cat\n3613,truck\n3614,frog\n3615,dog\n3616,cat\n3617,cat\n3618,cat\n3619,deer\n3620,horse\n3621,deer\n3622,frog\n3623,truck\n3624,airplane\n3625,deer\n3626,airplane\n3627,truck\n3628,bird\n3629,airplane\n3630,bird\n3631,ship\n3632,deer\n3633,frog\n3634,cat\n3635,bird\n3636,bird\n3637,airplane\n3638,ship\n3639,truck\n3640,bird\n3641,frog\n3642,automobile\n3643,airplane\n3644,truck\n3645,horse\n3646,bird\n3647,cat\n3648,deer\n3649,deer\n3650,horse\n3651,ship\n3652,cat\n3653,cat\n3654,frog\n3655,dog\n3656,dog\n3657,deer\n3658,horse\n3659,cat\n3660,deer\n3661,bird\n3662,airplane\n3663,truck\n3664,ship\n3665,cat\n3666,ship\n3667,cat\n3668,automobile\n3669,cat\n3670,airplane\n3671,dog\n3672,ship\n3673,deer\n3674,horse\n3675,automobile\n3676,deer\n3677,frog\n3678,frog\n3679,horse\n3680,horse\n3681,deer\n3682,dog\n3683,deer\n3684,truck\n3685,dog\n3686,truck\n3687,bird\n3688,frog\n3689,cat\n3690,horse\n3691,frog\n3692,frog\n3693,bird\n3694,horse\n3695,automobile\n3696,bird\n3697,truck\n3698,cat\n3699,dog\n3700,dog\n3701,cat\n3702,bird\n3703,frog\n3704,airplane\n3705,dog\n3706,deer\n3707,horse\n3708,ship\n3709,airplane\n3710,horse\n3711,airplane\n3712,horse\n3713,cat\n3714,dog\n3715,truck\n3716,deer\n3717,airplane\n3718,bird\n3719,cat\n3720,airplane\n3721,deer\n3722,cat\n3723,bird\n3724,cat\n3725,automobile\n3726,truck\n3727,horse\n3728,truck\n3729,frog\n3730,bird\n3731,truck\n3732,ship\n3733,automobile\n3734,cat\n3735,automobile\n3736,truck\n3737,automobile\n3738,cat\n3739,horse\n3740,frog\n3741,dog\n3742,deer\n3743,ship\n3744,cat\n3745,ship\n3746,automobile\n3747,bird\n3748,bird\n3749,cat\n3750,deer\n3751,airplane\n3752,cat\n3753,bird\n3754,frog\n3755,deer\n3756,dog\n3757,horse\n3758,bird\n3759,cat\n3760,frog\n3761,bird\n3762,horse\n3763,bird\n3764,deer\n3765,automobile\n3766,frog\n3767,frog\n3768,deer\n3769,ship\n3770,bird\n3771,ship\n3772,horse\n3773,horse\n3774,bird\n3775,frog\n3776,truck\n3777,airplane\n3778,deer\n3779,cat\n3780,cat\n3781,deer\n3782,ship\n3783,frog\n3784,frog\n3785,deer\n3786,deer\n3787,cat\n3788,truck\n3789,dog\n3790,truck\n3791,cat\n3792,ship\n3793,horse\n3794,ship\n3795,automobile\n3796,frog\n3797,automobile\n3798,deer\n3799,ship\n3800,automobile\n3801,horse\n3802,airplane\n3803,dog\n3804,frog\n3805,ship\n3806,deer\n3807,cat\n3808,horse\n3809,cat\n3810,horse\n3811,automobile\n3812,bird\n3813,frog\n3814,truck\n3815,bird\n3816,ship\n3817,airplane\n3818,horse\n3819,deer\n3820,frog\n3821,bird\n3822,frog\n3823,dog\n3824,deer\n3825,horse\n3826,horse\n3827,deer\n3828,dog\n3829,automobile\n3830,cat\n3831,frog\n3832,cat\n3833,horse\n3834,deer\n3835,cat\n3836,dog\n3837,automobile\n3838,bird\n3839,ship\n3840,cat\n3841,frog\n3842,dog\n3843,deer\n3844,horse\n3845,deer\n3846,dog\n3847,airplane\n3848,automobile\n3849,automobile\n3850,dog\n3851,dog\n3852,ship\n3853,deer\n3854,bird\n3855,cat\n3856,airplane\n3857,airplane\n3858,truck\n3859,cat\n3860,horse\n3861,airplane\n3862,cat\n3863,frog\n3864,truck\n3865,bird\n3866,airplane\n3867,frog\n3868,frog\n3869,ship\n3870,frog\n3871,deer\n3872,cat\n3873,truck\n3874,dog\n3875,frog\n3876,truck\n3877,truck\n3878,ship\n3879,bird\n3880,ship\n3881,cat\n3882,airplane\n3883,horse\n3884,horse\n3885,automobile\n3886,dog\n3887,airplane\n3888,automobile\n3889,dog\n3890,bird\n3891,truck\n3892,horse\n3893,bird\n3894,bird\n3895,cat\n3896,airplane\n3897,bird\n3898,deer\n3899,dog\n3900,deer\n3901,truck\n3902,bird\n3903,dog\n3904,airplane\n3905,frog\n3906,horse\n3907,deer\n3908,truck\n3909,deer\n3910,deer\n3911,ship\n3912,bird\n3913,ship\n3914,dog\n3915,deer\n3916,cat\n3917,cat\n3918,bird\n3919,bird\n3920,truck\n3921,horse\n3922,horse\n3923,deer\n3924,ship\n3925,deer\n3926,frog\n3927,deer\n3928,horse\n3929,frog\n3930,deer\n3931,airplane\n3932,truck\n3933,horse\n3934,horse\n3935,frog\n3936,dog\n3937,dog\n3938,dog\n3939,horse\n3940,frog\n3941,horse\n3942,cat\n3943,frog\n3944,automobile\n3945,ship\n3946,ship\n3947,ship\n3948,truck\n3949,dog\n3950,cat\n3951,truck\n3952,deer\n3953,cat\n3954,dog\n3955,automobile\n3956,bird\n3957,frog\n3958,airplane\n3959,automobile\n3960,automobile\n3961,dog\n3962,horse\n3963,truck\n3964,truck\n3965,ship\n3966,horse\n3967,dog\n3968,cat\n3969,dog\n3970,frog\n3971,dog\n3972,cat\n3973,deer\n3974,frog\n3975,bird\n3976,bird\n3977,frog\n3978,frog\n3979,frog\n3980,horse\n3981,truck\n3982,frog\n3983,automobile\n3984,truck\n3985,automobile\n3986,frog\n3987,frog\n3988,frog\n3989,truck\n3990,airplane\n3991,deer\n3992,dog\n3993,truck\n3994,horse\n3995,automobile\n3996,airplane\n3997,truck\n3998,horse\n3999,cat\n4000,truck\n4001,frog\n4002,truck\n4003,cat\n4004,horse\n4005,deer\n4006,bird\n4007,truck\n4008,bird\n4009,truck\n4010,truck\n4011,cat\n4012,airplane\n4013,frog\n4014,bird\n4015,deer\n4016,deer\n4017,truck\n4018,deer\n4019,truck\n4020,ship\n4021,bird\n4022,ship\n4023,horse\n4024,cat\n4025,airplane\n4026,deer\n4027,cat\n4028,deer\n4029,deer\n4030,deer\n4031,truck\n4032,deer\n4033,frog\n4034,deer\n4035,truck\n4036,automobile\n4037,frog\n4038,horse\n4039,horse\n4040,dog\n4041,horse\n4042,automobile\n4043,deer\n4044,airplane\n4045,deer\n4046,frog\n4047,cat\n4048,frog\n4049,dog\n4050,truck\n4051,ship\n4052,cat\n4053,truck\n4054,frog\n4055,bird\n4056,deer\n4057,airplane\n4058,bird\n4059,airplane\n4060,truck\n4061,bird\n4062,truck\n4063,ship\n4064,deer\n4065,frog\n4066,deer\n4067,frog\n4068,ship\n4069,ship\n4070,deer\n4071,automobile\n4072,dog\n4073,dog\n4074,horse\n4075,horse\n4076,bird\n4077,dog\n4078,bird\n4079,automobile\n4080,ship\n4081,ship\n4082,truck\n4083,cat\n4084,ship\n4085,cat\n4086,dog\n4087,frog\n4088,bird\n4089,horse\n4090,dog\n4091,dog\n4092,bird\n4093,truck\n4094,bird\n4095,frog\n4096,deer\n4097,airplane\n4098,airplane\n4099,deer\n4100,dog\n4101,dog\n4102,cat\n4103,airplane\n4104,truck\n4105,cat\n4106,cat\n4107,airplane\n4108,deer\n4109,bird\n4110,cat\n4111,frog\n4112,horse\n4113,truck\n4114,truck\n4115,dog\n4116,cat\n4117,ship\n4118,dog\n4119,cat\n4120,airplane\n4121,airplane\n4122,frog\n4123,cat\n4124,airplane\n4125,frog\n4126,truck\n4127,cat\n4128,cat\n4129,truck\n4130,horse\n4131,airplane\n4132,dog\n4133,frog\n4134,cat\n4135,frog\n4136,cat\n4137,cat\n4138,cat\n4139,deer\n4140,truck\n4141,airplane\n4142,horse\n4143,automobile\n4144,deer\n4145,automobile\n4146,truck\n4147,deer\n4148,frog\n4149,dog\n4150,cat\n4151,airplane\n4152,frog\n4153,automobile\n4154,frog\n4155,dog\n4156,airplane\n4157,bird\n4158,frog\n4159,truck\n4160,frog\n4161,horse\n4162,deer\n4163,automobile\n4164,deer\n4165,truck\n4166,truck\n4167,airplane\n4168,horse\n4169,cat\n4170,deer\n4171,frog\n4172,cat\n4173,bird\n4174,frog\n4175,dog\n4176,cat\n4177,deer\n4178,frog\n4179,bird\n4180,frog\n4181,horse\n4182,deer\n4183,dog\n4184,cat\n4185,ship\n4186,truck\n4187,horse\n4188,cat\n4189,deer\n4190,horse\n4191,cat\n4192,automobile\n4193,airplane\n4194,frog\n4195,dog\n4196,bird\n4197,horse\n4198,horse\n4199,truck\n4200,frog\n4201,frog\n4202,automobile\n4203,deer\n4204,automobile\n4205,truck\n4206,deer\n4207,deer\n4208,ship\n4209,bird\n4210,horse\n4211,ship\n4212,truck\n4213,cat\n4214,frog\n4215,bird\n4216,truck\n4217,cat\n4218,deer\n4219,ship\n4220,frog\n4221,cat\n4222,deer\n4223,cat\n4224,frog\n4225,ship\n4226,frog\n4227,truck\n4228,ship\n4229,ship\n4230,bird\n4231,bird\n4232,cat\n4233,airplane\n4234,deer\n4235,horse\n4236,airplane\n4237,cat\n4238,cat\n4239,cat\n4240,automobile\n4241,airplane\n4242,cat\n4243,cat\n4244,bird\n4245,ship\n4246,bird\n4247,automobile\n4248,airplane\n4249,deer\n4250,cat\n4251,bird\n4252,horse\n4253,truck\n4254,ship\n4255,automobile\n4256,airplane\n4257,deer\n4258,frog\n4259,truck\n4260,cat\n4261,deer\n4262,truck\n4263,deer\n4264,cat\n4265,truck\n4266,frog\n4267,bird\n4268,cat\n4269,horse\n4270,automobile\n4271,truck\n4272,airplane\n4273,deer\n4274,horse\n4275,cat\n4276,horse\n4277,horse\n4278,dog\n4279,dog\n4280,bird\n4281,frog\n4282,ship\n4283,truck\n4284,deer\n4285,cat\n4286,deer\n4287,cat\n4288,automobile\n4289,frog\n4290,frog\n4291,bird\n4292,deer\n4293,cat\n4294,frog\n4295,frog\n4296,cat\n4297,automobile\n4298,airplane\n4299,dog\n4300,dog\n4301,frog\n4302,bird\n4303,cat\n4304,frog\n4305,automobile\n4306,cat\n4307,bird\n4308,horse\n4309,truck\n4310,deer\n4311,cat\n4312,airplane\n4313,automobile\n4314,airplane\n4315,horse\n4316,horse\n4317,cat\n4318,ship\n4319,ship\n4320,cat\n4321,bird\n4322,deer\n4323,deer\n4324,airplane\n4325,automobile\n4326,automobile\n4327,dog\n4328,ship\n4329,cat\n4330,cat\n4331,frog\n4332,dog\n4333,truck\n4334,dog\n4335,dog\n4336,deer\n4337,dog\n4338,cat\n4339,horse\n4340,truck\n4341,airplane\n4342,truck\n4343,deer\n4344,ship\n4345,airplane\n4346,cat\n4347,truck\n4348,frog\n4349,deer\n4350,truck\n4351,cat\n4352,automobile\n4353,dog\n4354,truck\n4355,cat\n4356,deer\n4357,frog\n4358,horse\n4359,horse\n4360,horse\n4361,truck\n4362,deer\n4363,ship\n4364,deer\n4365,deer\n4366,deer\n4367,deer\n4368,dog\n4369,bird\n4370,ship\n4371,ship\n4372,cat\n4373,truck\n4374,cat\n4375,frog\n4376,ship\n4377,cat\n4378,deer\n4379,automobile\n4380,truck\n4381,deer\n4382,cat\n4383,cat\n4384,automobile\n4385,truck\n4386,frog\n4387,deer\n4388,horse\n4389,bird\n4390,deer\n4391,cat\n4392,cat\n4393,dog\n4394,bird\n4395,truck\n4396,horse\n4397,deer\n4398,bird\n4399,bird\n4400,cat\n4401,frog\n4402,cat\n4403,airplane\n4404,horse\n4405,cat\n4406,horse\n4407,dog\n4408,horse\n4409,bird\n4410,cat\n4411,deer\n4412,frog\n4413,dog\n4414,cat\n4415,airplane\n4416,cat\n4417,bird\n4418,automobile\n4419,frog\n4420,automobile\n4421,automobile\n4422,dog\n4423,ship\n4424,truck\n4425,bird\n4426,horse\n4427,frog\n4428,dog\n4429,deer\n4430,automobile\n4431,frog\n4432,cat\n4433,deer\n4434,bird\n4435,horse\n4436,airplane\n4437,dog\n4438,bird\n4439,ship\n4440,horse\n4441,dog\n4442,cat\n4443,cat\n4444,deer\n4445,automobile\n4446,ship\n4447,deer\n4448,automobile\n4449,frog\n4450,dog\n4451,cat\n4452,deer\n4453,deer\n4454,dog\n4455,automobile\n4456,dog\n4457,bird\n4458,deer\n4459,airplane\n4460,cat\n4461,truck\n4462,truck\n4463,airplane\n4464,airplane\n4465,deer\n4466,frog\n4467,deer\n4468,truck\n4469,cat\n4470,ship\n4471,dog\n4472,airplane\n4473,frog\n4474,automobile\n4475,cat\n4476,airplane\n4477,airplane\n4478,cat\n4479,ship\n4480,cat\n4481,frog\n4482,cat\n4483,dog\n4484,dog\n4485,bird\n4486,horse\n4487,truck\n4488,truck\n4489,truck\n4490,automobile\n4491,frog\n4492,frog\n4493,frog\n4494,dog\n4495,ship\n4496,deer\n4497,frog\n4498,airplane\n4499,cat\n4500,automobile\n4501,deer\n4502,cat\n4503,airplane\n4504,horse\n4505,ship\n4506,truck\n4507,frog\n4508,dog\n4509,airplane\n4510,dog\n4511,deer\n4512,truck\n4513,automobile\n4514,deer\n4515,bird\n4516,automobile\n4517,horse\n4518,dog\n4519,frog\n4520,deer\n4521,truck\n4522,cat\n4523,horse\n4524,frog\n4525,deer\n4526,deer\n4527,airplane\n4528,deer\n4529,truck\n4530,automobile\n4531,deer\n4532,deer\n4533,horse\n4534,airplane\n4535,ship\n4536,automobile\n4537,bird\n4538,frog\n4539,truck\n4540,automobile\n4541,deer\n4542,frog\n4543,cat\n4544,deer\n4545,dog\n4546,frog\n4547,bird\n4548,cat\n4549,frog\n4550,truck\n4551,frog\n4552,truck\n4553,automobile\n4554,truck\n4555,cat\n4556,deer\n4557,cat\n4558,frog\n4559,cat\n4560,frog\n4561,ship\n4562,airplane\n4563,horse\n4564,truck\n4565,horse\n4566,bird\n4567,dog\n4568,bird\n4569,dog\n4570,bird\n4571,deer\n4572,dog\n4573,automobile\n4574,frog\n4575,ship\n4576,airplane\n4577,airplane\n4578,truck\n4579,cat\n4580,ship\n4581,dog\n4582,frog\n4583,airplane\n4584,deer\n4585,bird\n4586,ship\n4587,airplane\n4588,horse\n4589,ship\n4590,deer\n4591,truck\n4592,frog\n4593,bird\n4594,frog\n4595,automobile\n4596,dog\n4597,deer\n4598,dog\n4599,deer\n4600,bird\n4601,dog\n4602,bird\n4603,truck\n4604,horse\n4605,deer\n4606,cat\n4607,ship\n4608,dog\n4609,automobile\n4610,airplane\n4611,deer\n4612,bird\n4613,frog\n4614,deer\n4615,horse\n4616,bird\n4617,cat\n4618,horse\n4619,horse\n4620,truck\n4621,ship\n4622,horse\n4623,frog\n4624,automobile\n4625,bird\n4626,deer\n4627,dog\n4628,frog\n4629,ship\n4630,deer\n4631,deer\n4632,cat\n4633,deer\n4634,airplane\n4635,horse\n4636,cat\n4637,deer\n4638,deer\n4639,automobile\n4640,automobile\n4641,dog\n4642,deer\n4643,dog\n4644,frog\n4645,dog\n4646,frog\n4647,frog\n4648,truck\n4649,truck\n4650,deer\n4651,dog\n4652,dog\n4653,ship\n4654,airplane\n4655,bird\n4656,deer\n4657,automobile\n4658,truck\n4659,horse\n4660,dog\n4661,frog\n4662,deer\n4663,deer\n4664,deer\n4665,frog\n4666,deer\n4667,ship\n4668,airplane\n4669,bird\n4670,airplane\n4671,dog\n4672,cat\n4673,dog\n4674,truck\n4675,frog\n4676,dog\n4677,bird\n4678,airplane\n4679,bird\n4680,ship\n4681,deer\n4682,ship\n4683,horse\n4684,horse\n4685,ship\n4686,airplane\n4687,cat\n4688,airplane\n4689,truck\n4690,automobile\n4691,cat\n4692,cat\n4693,truck\n4694,deer\n4695,deer\n4696,frog\n4697,airplane\n4698,cat\n4699,automobile\n4700,deer\n4701,bird\n4702,truck\n4703,airplane\n4704,horse\n4705,bird\n4706,horse\n4707,bird\n4708,airplane\n4709,deer\n4710,truck\n4711,airplane\n4712,airplane\n4713,frog\n4714,ship\n4715,truck\n4716,cat\n4717,cat\n4718,deer\n4719,airplane\n4720,cat\n4721,cat\n4722,bird\n4723,airplane\n4724,deer\n4725,dog\n4726,dog\n4727,automobile\n4728,automobile\n4729,deer\n4730,truck\n4731,deer\n4732,cat\n4733,truck\n4734,truck\n4735,frog\n4736,frog\n4737,frog\n4738,airplane\n4739,cat\n4740,horse\n4741,frog\n4742,ship\n4743,truck\n4744,automobile\n4745,deer\n4746,frog\n4747,bird\n4748,truck\n4749,airplane\n4750,dog\n4751,truck\n4752,truck\n4753,ship\n4754,airplane\n4755,airplane\n4756,airplane\n4757,automobile\n4758,airplane\n4759,deer\n4760,airplane\n4761,ship\n4762,bird\n4763,airplane\n4764,cat\n4765,bird\n4766,dog\n4767,ship\n4768,truck\n4769,automobile\n4770,airplane\n4771,deer\n4772,frog\n4773,ship\n4774,horse\n4775,cat\n4776,cat\n4777,truck\n4778,frog\n4779,airplane\n4780,frog\n4781,horse\n4782,dog\n4783,horse\n4784,automobile\n4785,deer\n4786,bird\n4787,ship\n4788,ship\n4789,bird\n4790,deer\n4791,cat\n4792,ship\n4793,horse\n4794,automobile\n4795,frog\n4796,frog\n4797,deer\n4798,frog\n4799,horse\n4800,horse\n4801,deer\n4802,deer\n4803,deer\n4804,frog\n4805,automobile\n4806,automobile\n4807,airplane\n4808,truck\n4809,airplane\n4810,horse\n4811,airplane\n4812,frog\n4813,dog\n4814,automobile\n4815,deer\n4816,horse\n4817,cat\n4818,cat\n4819,bird\n4820,ship\n4821,deer\n4822,horse\n4823,bird\n4824,frog\n4825,truck\n4826,frog\n4827,cat\n4828,airplane\n4829,bird\n4830,deer\n4831,cat\n4832,truck\n4833,airplane\n4834,deer\n4835,deer\n4836,bird\n4837,horse\n4838,cat\n4839,automobile\n4840,bird\n4841,deer\n4842,deer\n4843,deer\n4844,truck\n4845,cat\n4846,bird\n4847,automobile\n4848,dog\n4849,bird\n4850,dog\n4851,airplane\n4852,dog\n4853,deer\n4854,deer\n4855,airplane\n4856,deer\n4857,ship\n4858,airplane\n4859,bird\n4860,bird\n4861,deer\n4862,automobile\n4863,bird\n4864,cat\n4865,automobile\n4866,airplane\n4867,bird\n4868,deer\n4869,airplane\n4870,deer\n4871,truck\n4872,truck\n4873,cat\n4874,cat\n4875,cat\n4876,cat\n4877,ship\n4878,deer\n4879,cat\n4880,horse\n4881,bird\n4882,ship\n4883,dog\n4884,dog\n4885,ship\n4886,airplane\n4887,bird\n4888,horse\n4889,deer\n4890,cat\n4891,cat\n4892,frog\n4893,frog\n4894,cat\n4895,cat\n4896,ship\n4897,deer\n4898,frog\n4899,airplane\n4900,airplane\n4901,frog\n4902,horse\n4903,frog\n4904,horse\n4905,deer\n4906,bird\n4907,automobile\n4908,deer\n4909,deer\n4910,bird\n4911,deer\n4912,airplane\n4913,bird\n4914,truck\n4915,dog\n4916,bird\n4917,bird\n4918,truck\n4919,automobile\n4920,dog\n4921,airplane\n4922,deer\n4923,automobile\n4924,truck\n4925,bird\n4926,frog\n4927,deer\n4928,bird\n4929,automobile\n4930,airplane\n4931,automobile\n4932,cat\n4933,automobile\n4934,automobile\n4935,deer\n4936,truck\n4937,cat\n4938,truck\n4939,airplane\n4940,ship\n4941,cat\n4942,deer\n4943,dog\n4944,ship\n4945,airplane\n4946,deer\n4947,deer\n4948,automobile\n4949,bird\n4950,cat\n4951,dog\n4952,frog\n4953,bird\n4954,cat\n4955,truck\n4956,frog\n4957,truck\n4958,ship\n4959,deer\n4960,deer\n4961,cat\n4962,deer\n4963,bird\n4964,dog\n4965,airplane\n4966,airplane\n4967,dog\n4968,cat\n4969,ship\n4970,deer\n4971,deer\n4972,truck\n4973,automobile\n4974,automobile\n4975,truck\n4976,cat\n4977,bird\n4978,airplane\n4979,bird\n4980,deer\n4981,dog\n4982,deer\n4983,bird\n4984,bird\n4985,horse\n4986,bird\n4987,bird\n4988,airplane\n4989,deer\n4990,automobile\n4991,ship\n4992,dog\n4993,truck\n4994,automobile\n4995,deer\n4996,airplane\n4997,bird\n4998,dog\n4999,bird\n5000,deer\n5001,cat\n5002,ship\n5003,truck\n5004,deer\n5005,deer\n5006,deer\n5007,truck\n5008,cat\n5009,horse\n5010,frog\n5011,dog\n5012,deer\n5013,bird\n5014,dog\n5015,deer\n5016,dog\n5017,bird\n5018,truck\n5019,bird\n5020,cat\n5021,frog\n5022,horse\n5023,dog\n5024,truck\n5025,truck\n5026,bird\n5027,dog\n5028,horse\n5029,cat\n5030,horse\n5031,bird\n5032,deer\n5033,dog\n5034,cat\n5035,bird\n5036,truck\n5037,frog\n5038,cat\n5039,frog\n5040,truck\n5041,airplane\n5042,horse\n5043,ship\n5044,automobile\n5045,ship\n5046,dog\n5047,deer\n5048,truck\n5049,frog\n5050,frog\n5051,cat\n5052,deer\n5053,deer\n5054,ship\n5055,automobile\n5056,ship\n5057,horse\n5058,airplane\n5059,deer\n5060,horse\n5061,airplane\n5062,horse\n5063,dog\n5064,frog\n5065,frog\n5066,bird\n5067,ship\n5068,ship\n5069,cat\n5070,dog\n5071,deer\n5072,airplane\n5073,airplane\n5074,frog\n5075,cat\n5076,horse\n5077,deer\n5078,ship\n5079,deer\n5080,cat\n5081,cat\n5082,frog\n5083,dog\n5084,truck\n5085,deer\n5086,deer\n5087,deer\n5088,truck\n5089,deer\n5090,horse\n5091,horse\n5092,airplane\n5093,frog\n5094,deer\n5095,cat\n5096,cat\n5097,frog\n5098,ship\n5099,deer\n5100,airplane\n5101,truck\n5102,truck\n5103,cat\n5104,horse\n5105,truck\n5106,automobile\n5107,deer\n5108,frog\n5109,cat\n5110,dog\n5111,bird\n5112,bird\n5113,horse\n5114,truck\n5115,deer\n5116,bird\n5117,ship\n5118,automobile\n5119,bird\n5120,bird\n5121,truck\n5122,horse\n5123,horse\n5124,frog\n5125,cat\n5126,frog\n5127,cat\n5128,cat\n5129,airplane\n5130,truck\n5131,cat\n5132,airplane\n5133,frog\n5134,dog\n5135,truck\n5136,automobile\n5137,cat\n5138,airplane\n5139,truck\n5140,frog\n5141,bird\n5142,cat\n5143,cat\n5144,frog\n5145,dog\n5146,deer\n5147,dog\n5148,frog\n5149,airplane\n5150,frog\n5151,ship\n5152,ship\n5153,frog\n5154,horse\n5155,automobile\n5156,truck\n5157,dog\n5158,ship\n5159,cat\n5160,cat\n5161,automobile\n5162,frog\n5163,ship\n5164,dog\n5165,airplane\n5166,deer\n5167,deer\n5168,horse\n5169,truck\n5170,dog\n5171,automobile\n5172,truck\n5173,bird\n5174,cat\n5175,cat\n5176,dog\n5177,frog\n5178,truck\n5179,automobile\n5180,bird\n5181,bird\n5182,cat\n5183,frog\n5184,dog\n5185,dog\n5186,cat\n5187,cat\n5188,frog\n5189,ship\n5190,ship\n5191,cat\n5192,truck\n5193,frog\n5194,truck\n5195,cat\n5196,cat\n5197,dog\n5198,frog\n5199,deer\n5200,bird\n5201,airplane\n5202,ship\n5203,airplane\n5204,bird\n5205,dog\n5206,deer\n5207,horse\n5208,frog\n5209,dog\n5210,dog\n5211,ship\n5212,deer\n5213,ship\n5214,horse\n5215,airplane\n5216,deer\n5217,ship\n5218,automobile\n5219,truck\n5220,automobile\n5221,frog\n5222,cat\n5223,deer\n5224,dog\n5225,horse\n5226,frog\n5227,deer\n5228,truck\n5229,automobile\n5230,cat\n5231,horse\n5232,cat\n5233,deer\n5234,truck\n5235,ship\n5236,frog\n5237,cat\n5238,bird\n5239,bird\n5240,deer\n5241,automobile\n5242,cat\n5243,airplane\n5244,frog\n5245,frog\n5246,bird\n5247,frog\n5248,horse\n5249,cat\n5250,automobile\n5251,airplane\n5252,truck\n5253,bird\n5254,deer\n5255,truck\n5256,cat\n5257,frog\n5258,ship\n5259,cat\n5260,frog\n5261,truck\n5262,horse\n5263,airplane\n5264,deer\n5265,bird\n5266,frog\n5267,cat\n5268,airplane\n5269,dog\n5270,automobile\n5271,cat\n5272,bird\n5273,cat\n5274,horse\n5275,ship\n5276,deer\n5277,deer\n5278,frog\n5279,horse\n5280,airplane\n5281,deer\n5282,automobile\n5283,deer\n5284,cat\n5285,dog\n5286,ship\n5287,bird\n5288,ship\n5289,frog\n5290,cat\n5291,frog\n5292,dog\n5293,cat\n5294,deer\n5295,frog\n5296,airplane\n5297,cat\n5298,deer\n5299,deer\n5300,bird\n5301,ship\n5302,cat\n5303,dog\n5304,ship\n5305,cat\n5306,cat\n5307,bird\n5308,frog\n5309,cat\n5310,automobile\n5311,automobile\n5312,airplane\n5313,horse\n5314,truck\n5315,automobile\n5316,horse\n5317,truck\n5318,airplane\n5319,airplane\n5320,automobile\n5321,dog\n5322,cat\n5323,deer\n5324,dog\n5325,dog\n5326,frog\n5327,deer\n5328,cat\n5329,deer\n5330,frog\n5331,cat\n5332,frog\n5333,dog\n5334,bird\n5335,deer\n5336,frog\n5337,frog\n5338,cat\n5339,frog\n5340,airplane\n5341,deer\n5342,airplane\n5343,dog\n5344,horse\n5345,cat\n5346,dog\n5347,automobile\n5348,cat\n5349,deer\n5350,cat\n5351,frog\n5352,cat\n5353,dog\n5354,automobile\n5355,frog\n5356,automobile\n5357,deer\n5358,automobile\n5359,frog\n5360,ship\n5361,airplane\n5362,dog\n5363,airplane\n5364,cat\n5365,ship\n5366,automobile\n5367,automobile\n5368,dog\n5369,cat\n5370,deer\n5371,automobile\n5372,dog\n5373,automobile\n5374,truck\n5375,automobile\n5376,cat\n5377,frog\n5378,cat\n5379,cat\n5380,dog\n5381,horse\n5382,bird\n5383,automobile\n5384,bird\n5385,truck\n5386,ship\n5387,truck\n5388,deer\n5389,deer\n5390,automobile\n5391,airplane\n5392,airplane\n5393,automobile\n5394,bird\n5395,ship\n5396,airplane\n5397,cat\n5398,truck\n5399,deer\n5400,bird\n5401,horse\n5402,deer\n5403,deer\n5404,automobile\n5405,horse\n5406,cat\n5407,airplane\n5408,deer\n5409,airplane\n5410,bird\n5411,truck\n5412,deer\n5413,cat\n5414,deer\n5415,horse\n5416,horse\n5417,dog\n5418,ship\n5419,deer\n5420,horse\n5421,cat\n5422,truck\n5423,ship\n5424,bird\n5425,ship\n5426,cat\n5427,ship\n5428,frog\n5429,bird\n5430,bird\n5431,deer\n5432,cat\n5433,cat\n5434,bird\n5435,deer\n5436,horse\n5437,horse\n5438,bird\n5439,deer\n5440,deer\n5441,truck\n5442,cat\n5443,automobile\n5444,deer\n5445,dog\n5446,horse\n5447,cat\n5448,automobile\n5449,deer\n5450,cat\n5451,truck\n5452,dog\n5453,deer\n5454,frog\n5455,frog\n5456,airplane\n5457,bird\n5458,bird\n5459,automobile\n5460,cat\n5461,airplane\n5462,truck\n5463,automobile\n5464,cat\n5465,airplane\n5466,bird\n5467,cat\n5468,frog\n5469,truck\n5470,frog\n5471,automobile\n5472,airplane\n5473,automobile\n5474,dog\n5475,cat\n5476,airplane\n5477,deer\n5478,truck\n5479,automobile\n5480,cat\n5481,airplane\n5482,automobile\n5483,horse\n5484,cat\n5485,airplane\n5486,deer\n5487,frog\n5488,deer\n5489,dog\n5490,cat\n5491,deer\n5492,dog\n5493,dog\n5494,automobile\n5495,deer\n5496,automobile\n5497,cat\n5498,cat\n5499,deer\n5500,airplane\n5501,horse\n5502,ship\n5503,dog\n5504,automobile\n5505,cat\n5506,bird\n5507,frog\n5508,bird\n5509,airplane\n5510,deer\n5511,dog\n5512,deer\n5513,frog\n5514,frog\n5515,dog\n5516,horse\n5517,ship\n5518,deer\n5519,dog\n5520,dog\n5521,automobile\n5522,truck\n5523,frog\n5524,automobile\n5525,truck\n5526,bird\n5527,truck\n5528,ship\n5529,frog\n5530,airplane\n5531,airplane\n5532,ship\n5533,automobile\n5534,truck\n5535,automobile\n5536,deer\n5537,horse\n5538,truck\n5539,airplane\n5540,airplane\n5541,dog\n5542,cat\n5543,airplane\n5544,bird\n5545,automobile\n5546,cat\n5547,dog\n5548,deer\n5549,dog\n5550,frog\n5551,dog\n5552,cat\n5553,deer\n5554,horse\n5555,horse\n5556,horse\n5557,horse\n5558,truck\n5559,airplane\n5560,cat\n5561,ship\n5562,automobile\n5563,bird\n5564,frog\n5565,frog\n5566,truck\n5567,deer\n5568,deer\n5569,deer\n5570,frog\n5571,truck\n5572,cat\n5573,horse\n5574,cat\n5575,frog\n5576,cat\n5577,cat\n5578,bird\n5579,automobile\n5580,cat\n5581,dog\n5582,horse\n5583,truck\n5584,deer\n5585,ship\n5586,frog\n5587,airplane\n5588,deer\n5589,ship\n5590,cat\n5591,airplane\n5592,automobile\n5593,horse\n5594,cat\n5595,cat\n5596,dog\n5597,frog\n5598,frog\n5599,dog\n5600,horse\n5601,truck\n5602,cat\n5603,frog\n5604,automobile\n5605,ship\n5606,automobile\n5607,frog\n5608,cat\n5609,horse\n5610,deer\n5611,deer\n5612,truck\n5613,dog\n5614,cat\n5615,cat\n5616,cat\n5617,truck\n5618,dog\n5619,frog\n5620,deer\n5621,bird\n5622,cat\n5623,dog\n5624,ship\n5625,deer\n5626,airplane\n5627,cat\n5628,airplane\n5629,ship\n5630,horse\n5631,truck\n5632,airplane\n5633,airplane\n5634,deer\n5635,dog\n5636,dog\n5637,deer\n5638,horse\n5639,frog\n5640,cat\n5641,airplane\n5642,cat\n5643,deer\n5644,frog\n5645,dog\n5646,frog\n5647,automobile\n5648,truck\n5649,ship\n5650,horse\n5651,bird\n5652,dog\n5653,cat\n5654,airplane\n5655,automobile\n5656,automobile\n5657,deer\n5658,cat\n5659,cat\n5660,cat\n5661,airplane\n5662,bird\n5663,frog\n5664,airplane\n5665,cat\n5666,horse\n5667,bird\n5668,airplane\n5669,dog\n5670,deer\n5671,cat\n5672,deer\n5673,ship\n5674,frog\n5675,truck\n5676,cat\n5677,deer\n5678,airplane\n5679,cat\n5680,dog\n5681,cat\n5682,bird\n5683,horse\n5684,deer\n5685,ship\n5686,horse\n5687,truck\n5688,bird\n5689,frog\n5690,dog\n5691,cat\n5692,bird\n5693,bird\n5694,dog\n5695,frog\n5696,automobile\n5697,ship\n5698,airplane\n5699,deer\n5700,automobile\n5701,deer\n5702,deer\n5703,frog\n5704,cat\n5705,dog\n5706,ship\n5707,frog\n5708,automobile\n5709,deer\n5710,airplane\n5711,truck\n5712,horse\n5713,deer\n5714,horse\n5715,ship\n5716,deer\n5717,frog\n5718,deer\n5719,bird\n5720,bird\n5721,cat\n5722,truck\n5723,deer\n5724,frog\n5725,automobile\n5726,ship\n5727,dog\n5728,truck\n5729,horse\n5730,cat\n5731,bird\n5732,ship\n5733,truck\n5734,cat\n5735,truck\n5736,bird\n5737,cat\n5738,frog\n5739,automobile\n5740,airplane\n5741,bird\n5742,automobile\n5743,automobile\n5744,frog\n5745,deer\n5746,bird\n5747,automobile\n5748,bird\n5749,horse\n5750,bird\n5751,frog\n5752,ship\n5753,deer\n5754,dog\n5755,dog\n5756,frog\n5757,bird\n5758,dog\n5759,cat\n5760,dog\n5761,frog\n5762,horse\n5763,deer\n5764,cat\n5765,deer\n5766,automobile\n5767,dog\n5768,deer\n5769,cat\n5770,deer\n5771,airplane\n5772,truck\n5773,ship\n5774,bird\n5775,horse\n5776,ship\n5777,deer\n5778,horse\n5779,automobile\n5780,frog\n5781,cat\n5782,bird\n5783,horse\n5784,dog\n5785,frog\n5786,airplane\n5787,cat\n5788,dog\n5789,truck\n5790,deer\n5791,deer\n5792,cat\n5793,bird\n5794,horse\n5795,cat\n5796,frog\n5797,bird\n5798,ship\n5799,bird\n5800,airplane\n5801,bird\n5802,frog\n5803,horse\n5804,frog\n5805,airplane\n5806,airplane\n5807,horse\n5808,frog\n5809,cat\n5810,horse\n5811,airplane\n5812,cat\n5813,airplane\n5814,airplane\n5815,ship\n5816,automobile\n5817,deer\n5818,horse\n5819,airplane\n5820,airplane\n5821,horse\n5822,airplane\n5823,truck\n5824,airplane\n5825,truck\n5826,airplane\n5827,airplane\n5828,frog\n5829,frog\n5830,horse\n5831,ship\n5832,cat\n5833,bird\n5834,ship\n5835,dog\n5836,airplane\n5837,cat\n5838,cat\n5839,ship\n5840,truck\n5841,frog\n5842,airplane\n5843,cat\n5844,deer\n5845,dog\n5846,deer\n5847,truck\n5848,bird\n5849,automobile\n5850,bird\n5851,automobile\n5852,airplane\n5853,bird\n5854,automobile\n5855,deer\n5856,cat\n5857,truck\n5858,truck\n5859,cat\n5860,bird\n5861,cat\n5862,deer\n5863,airplane\n5864,cat\n5865,bird\n5866,airplane\n5867,truck\n5868,deer\n5869,bird\n5870,cat\n5871,horse\n5872,cat\n5873,ship\n5874,truck\n5875,dog\n5876,frog\n5877,dog\n5878,ship\n5879,horse\n5880,deer\n5881,frog\n5882,deer\n5883,automobile\n5884,horse\n5885,dog\n5886,dog\n5887,horse\n5888,horse\n5889,dog\n5890,cat\n5891,airplane\n5892,cat\n5893,horse\n5894,deer\n5895,frog\n5896,truck\n5897,frog\n5898,bird\n5899,automobile\n5900,frog\n5901,deer\n5902,deer\n5903,horse\n5904,frog\n5905,dog\n5906,dog\n5907,horse\n5908,ship\n5909,horse\n5910,bird\n5911,airplane\n5912,deer\n5913,cat\n5914,cat\n5915,frog\n5916,dog\n5917,frog\n5918,dog\n5919,automobile\n5920,bird\n5921,dog\n5922,frog\n5923,automobile\n5924,dog\n5925,dog\n5926,automobile\n5927,deer\n5928,frog\n5929,truck\n5930,bird\n5931,bird\n5932,deer\n5933,bird\n5934,deer\n5935,cat\n5936,deer\n5937,frog\n5938,horse\n5939,ship\n5940,cat\n5941,deer\n5942,dog\n5943,deer\n5944,deer\n5945,airplane\n5946,bird\n5947,airplane\n5948,horse\n5949,bird\n5950,automobile\n5951,airplane\n5952,bird\n5953,truck\n5954,airplane\n5955,dog\n5956,airplane\n5957,airplane\n5958,dog\n5959,dog\n5960,bird\n5961,dog\n5962,frog\n5963,frog\n5964,cat\n5965,deer\n5966,bird\n5967,cat\n5968,cat\n5969,deer\n5970,dog\n5971,deer\n5972,truck\n5973,truck\n5974,bird\n5975,deer\n5976,deer\n5977,deer\n5978,dog\n5979,truck\n5980,horse\n5981,airplane\n5982,horse\n5983,deer\n5984,horse\n5985,truck\n5986,ship\n5987,cat\n5988,deer\n5989,ship\n5990,frog\n5991,ship\n5992,dog\n5993,deer\n5994,automobile\n5995,deer\n5996,dog\n5997,deer\n5998,bird\n5999,cat\n6000,airplane\n6001,frog\n6002,cat\n6003,dog\n6004,horse\n6005,airplane\n6006,deer\n6007,dog\n6008,automobile\n6009,frog\n6010,bird\n6011,automobile\n6012,deer\n6013,airplane\n6014,frog\n6015,bird\n6016,dog\n6017,deer\n6018,automobile\n6019,dog\n6020,horse\n6021,truck\n6022,bird\n6023,deer\n6024,bird\n6025,airplane\n6026,horse\n6027,horse\n6028,dog\n6029,cat\n6030,cat\n6031,bird\n6032,truck\n6033,bird\n6034,truck\n6035,truck\n6036,truck\n6037,truck\n6038,cat\n6039,cat\n6040,airplane\n6041,bird\n6042,dog\n6043,airplane\n6044,truck\n6045,frog\n6046,ship\n6047,dog\n6048,truck\n6049,airplane\n6050,dog\n6051,bird\n6052,dog\n6053,cat\n6054,horse\n6055,ship\n6056,dog\n6057,frog\n6058,truck\n6059,horse\n6060,dog\n6061,truck\n6062,airplane\n6063,ship\n6064,dog\n6065,frog\n6066,truck\n6067,bird\n6068,deer\n6069,deer\n6070,cat\n6071,cat\n6072,ship\n6073,bird\n6074,deer\n6075,frog\n6076,cat\n6077,horse\n6078,airplane\n6079,deer\n6080,bird\n6081,airplane\n6082,cat\n6083,dog\n6084,ship\n6085,frog\n6086,truck\n6087,truck\n6088,dog\n6089,deer\n6090,frog\n6091,airplane\n6092,dog\n6093,bird\n6094,frog\n6095,deer\n6096,bird\n6097,frog\n6098,automobile\n6099,dog\n6100,airplane\n6101,ship\n6102,bird\n6103,bird\n6104,automobile\n6105,horse\n6106,dog\n6107,frog\n6108,airplane\n6109,cat\n6110,dog\n6111,deer\n6112,frog\n6113,deer\n6114,dog\n6115,horse\n6116,truck\n6117,cat\n6118,truck\n6119,horse\n6120,horse\n6121,cat\n6122,dog\n6123,ship\n6124,ship\n6125,cat\n6126,horse\n6127,cat\n6128,frog\n6129,truck\n6130,dog\n6131,airplane\n6132,frog\n6133,horse\n6134,deer\n6135,airplane\n6136,frog\n6137,frog\n6138,airplane\n6139,deer\n6140,frog\n6141,frog\n6142,ship\n6143,horse\n6144,deer\n6145,truck\n6146,dog\n6147,truck\n6148,frog\n6149,horse\n6150,cat\n6151,deer\n6152,truck\n6153,ship\n6154,bird\n6155,bird\n6156,ship\n6157,cat\n6158,bird\n6159,airplane\n6160,horse\n6161,frog\n6162,airplane\n6163,automobile\n6164,frog\n6165,truck\n6166,airplane\n6167,cat\n6168,bird\n6169,airplane\n6170,dog\n6171,dog\n6172,frog\n6173,frog\n6174,ship\n6175,frog\n6176,ship\n6177,airplane\n6178,deer\n6179,airplane\n6180,horse\n6181,automobile\n6182,frog\n6183,truck\n6184,bird\n6185,ship\n6186,deer\n6187,deer\n6188,dog\n6189,deer\n6190,horse\n6191,dog\n6192,deer\n6193,bird\n6194,ship\n6195,cat\n6196,deer\n6197,deer\n6198,dog\n6199,ship\n6200,cat\n6201,dog\n6202,airplane\n6203,cat\n6204,truck\n6205,dog\n6206,bird\n6207,bird\n6208,frog\n6209,truck\n6210,truck\n6211,cat\n6212,airplane\n6213,ship\n6214,frog\n6215,frog\n6216,cat\n6217,dog\n6218,deer\n6219,automobile\n6220,bird\n6221,ship\n6222,deer\n6223,deer\n6224,automobile\n6225,horse\n6226,cat\n6227,airplane\n6228,airplane\n6229,cat\n6230,dog\n6231,horse\n6232,deer\n6233,deer\n6234,dog\n6235,frog\n6236,deer\n6237,airplane\n6238,deer\n6239,horse\n6240,deer\n6241,airplane\n6242,bird\n6243,dog\n6244,frog\n6245,bird\n6246,automobile\n6247,truck\n6248,airplane\n6249,truck\n6250,airplane\n6251,automobile\n6252,ship\n6253,deer\n6254,truck\n6255,dog\n6256,dog\n6257,cat\n6258,deer\n6259,deer\n6260,cat\n6261,cat\n6262,cat\n6263,cat\n6264,cat\n6265,airplane\n6266,truck\n6267,deer\n6268,ship\n6269,truck\n6270,cat\n6271,horse\n6272,frog\n6273,dog\n6274,dog\n6275,bird\n6276,airplane\n6277,dog\n6278,frog\n6279,cat\n6280,frog\n6281,automobile\n6282,horse\n6283,bird\n6284,deer\n6285,automobile\n6286,deer\n6287,truck\n6288,deer\n6289,automobile\n6290,horse\n6291,cat\n6292,automobile\n6293,truck\n6294,horse\n6295,cat\n6296,cat\n6297,truck\n6298,cat\n6299,truck\n6300,ship\n6301,truck\n6302,cat\n6303,frog\n6304,dog\n6305,truck\n6306,cat\n6307,airplane\n6308,bird\n6309,automobile\n6310,deer\n6311,cat\n6312,truck\n6313,ship\n6314,cat\n6315,horse\n6316,truck\n6317,dog\n6318,horse\n6319,frog\n6320,frog\n6321,dog\n6322,airplane\n6323,dog\n6324,deer\n6325,truck\n6326,dog\n6327,horse\n6328,ship\n6329,cat\n6330,automobile\n6331,frog\n6332,horse\n6333,deer\n6334,horse\n6335,cat\n6336,ship\n6337,airplane\n6338,dog\n6339,frog\n6340,truck\n6341,truck\n6342,frog\n6343,frog\n6344,airplane\n6345,frog\n6346,automobile\n6347,truck\n6348,deer\n6349,truck\n6350,deer\n6351,airplane\n6352,cat\n6353,deer\n6354,deer\n6355,deer\n6356,deer\n6357,truck\n6358,dog\n6359,cat\n6360,cat\n6361,deer\n6362,horse\n6363,automobile\n6364,dog\n6365,automobile\n6366,bird\n6367,horse\n6368,truck\n6369,truck\n6370,automobile\n6371,bird\n6372,ship\n6373,ship\n6374,frog\n6375,airplane\n6376,deer\n6377,deer\n6378,truck\n6379,deer\n6380,truck\n6381,deer\n6382,deer\n6383,deer\n6384,frog\n6385,bird\n6386,bird\n6387,ship\n6388,automobile\n6389,cat\n6390,frog\n6391,ship\n6392,truck\n6393,horse\n6394,bird\n6395,dog\n6396,truck\n6397,horse\n6398,cat\n6399,truck\n6400,deer\n6401,ship\n6402,horse\n6403,cat\n6404,deer\n6405,ship\n6406,truck\n6407,horse\n6408,frog\n6409,dog\n6410,airplane\n6411,cat\n6412,cat\n6413,airplane\n6414,automobile\n6415,deer\n6416,cat\n6417,bird\n6418,ship\n6419,automobile\n6420,dog\n6421,ship\n6422,deer\n6423,horse\n6424,dog\n6425,dog\n6426,frog\n6427,automobile\n6428,cat\n6429,truck\n6430,bird\n6431,horse\n6432,automobile\n6433,horse\n6434,horse\n6435,frog\n6436,airplane\n6437,dog\n6438,deer\n6439,cat\n6440,airplane\n6441,frog\n6442,ship\n6443,deer\n6444,deer\n6445,ship\n6446,dog\n6447,horse\n6448,cat\n6449,deer\n6450,deer\n6451,frog\n6452,deer\n6453,frog\n6454,horse\n6455,automobile\n6456,automobile\n6457,dog\n6458,horse\n6459,truck\n6460,truck\n6461,dog\n6462,cat\n6463,frog\n6464,ship\n6465,truck\n6466,horse\n6467,cat\n6468,horse\n6469,horse\n6470,frog\n6471,deer\n6472,frog\n6473,cat\n6474,frog\n6475,dog\n6476,truck\n6477,airplane\n6478,airplane\n6479,automobile\n6480,frog\n6481,cat\n6482,cat\n6483,cat\n6484,bird\n6485,bird\n6486,airplane\n6487,dog\n6488,horse\n6489,airplane\n6490,airplane\n6491,truck\n6492,frog\n6493,bird\n6494,ship\n6495,frog\n6496,airplane\n6497,horse\n6498,airplane\n6499,truck\n6500,cat\n6501,bird\n6502,ship\n6503,truck\n6504,truck\n6505,truck\n6506,airplane\n6507,cat\n6508,bird\n6509,automobile\n6510,cat\n6511,airplane\n6512,deer\n6513,ship\n6514,airplane\n6515,automobile\n6516,truck\n6517,ship\n6518,frog\n6519,frog\n6520,ship\n6521,frog\n6522,horse\n6523,airplane\n6524,frog\n6525,frog\n6526,cat\n6527,horse\n6528,horse\n6529,automobile\n6530,horse\n6531,automobile\n6532,horse\n6533,bird\n6534,dog\n6535,bird\n6536,bird\n6537,deer\n6538,deer\n6539,truck\n6540,frog\n6541,airplane\n6542,deer\n6543,cat\n6544,frog\n6545,automobile\n6546,airplane\n6547,frog\n6548,ship\n6549,deer\n6550,frog\n6551,cat\n6552,frog\n6553,cat\n6554,cat\n6555,deer\n6556,truck\n6557,dog\n6558,cat\n6559,truck\n6560,ship\n6561,bird\n6562,cat\n6563,automobile\n6564,airplane\n6565,frog\n6566,automobile\n6567,frog\n6568,cat\n6569,truck\n6570,ship\n6571,frog\n6572,cat\n6573,bird\n6574,cat\n6575,cat\n6576,cat\n6577,cat\n6578,cat\n6579,airplane\n6580,frog\n6581,cat\n6582,bird\n6583,deer\n6584,dog\n6585,horse\n6586,airplane\n6587,deer\n6588,deer\n6589,dog\n6590,truck\n6591,truck\n6592,horse\n6593,dog\n6594,bird\n6595,deer\n6596,cat\n6597,dog\n6598,deer\n6599,frog\n6600,deer\n6601,cat\n6602,automobile\n6603,airplane\n6604,cat\n6605,dog\n6606,cat\n6607,bird\n6608,automobile\n6609,truck\n6610,bird\n6611,deer\n6612,horse\n6613,deer\n6614,horse\n6615,automobile\n6616,deer\n6617,automobile\n6618,cat\n6619,airplane\n6620,dog\n6621,airplane\n6622,cat\n6623,cat\n6624,bird\n6625,dog\n6626,dog\n6627,cat\n6628,truck\n6629,cat\n6630,dog\n6631,horse\n6632,horse\n6633,dog\n6634,frog\n6635,cat\n6636,truck\n6637,cat\n6638,frog\n6639,dog\n6640,truck\n6641,cat\n6642,automobile\n6643,dog\n6644,frog\n6645,bird\n6646,horse\n6647,automobile\n6648,horse\n6649,frog\n6650,truck\n6651,horse\n6652,ship\n6653,deer\n6654,dog\n6655,airplane\n6656,bird\n6657,cat\n6658,bird\n6659,automobile\n6660,bird\n6661,dog\n6662,horse\n6663,cat\n6664,cat\n6665,airplane\n6666,horse\n6667,automobile\n6668,truck\n6669,deer\n6670,automobile\n6671,deer\n6672,airplane\n6673,bird\n6674,frog\n6675,frog\n6676,cat\n6677,ship\n6678,deer\n6679,dog\n6680,truck\n6681,ship\n6682,deer\n6683,cat\n6684,deer\n6685,horse\n6686,frog\n6687,airplane\n6688,truck\n6689,truck\n6690,deer\n6691,ship\n6692,truck\n6693,airplane\n6694,ship\n6695,bird\n6696,cat\n6697,airplane\n6698,truck\n6699,cat\n6700,frog\n6701,cat\n6702,truck\n6703,deer\n6704,frog\n6705,cat\n6706,ship\n6707,deer\n6708,cat\n6709,truck\n6710,horse\n6711,dog\n6712,truck\n6713,deer\n6714,ship\n6715,ship\n6716,airplane\n6717,ship\n6718,cat\n6719,truck\n6720,cat\n6721,horse\n6722,automobile\n6723,deer\n6724,deer\n6725,bird\n6726,deer\n6727,automobile\n6728,airplane\n6729,cat\n6730,bird\n6731,dog\n6732,truck\n6733,truck\n6734,bird\n6735,frog\n6736,frog\n6737,frog\n6738,automobile\n6739,deer\n6740,deer\n6741,dog\n6742,cat\n6743,airplane\n6744,cat\n6745,frog\n6746,dog\n6747,horse\n6748,ship\n6749,horse\n6750,cat\n6751,truck\n6752,cat\n6753,cat\n6754,cat\n6755,truck\n6756,airplane\n6757,bird\n6758,truck\n6759,automobile\n6760,truck\n6761,bird\n6762,frog\n6763,cat\n6764,deer\n6765,ship\n6766,horse\n6767,bird\n6768,airplane\n6769,truck\n6770,bird\n6771,bird\n6772,cat\n6773,bird\n6774,cat\n6775,horse\n6776,horse\n6777,horse\n6778,ship\n6779,truck\n6780,ship\n6781,bird\n6782,dog\n6783,dog\n6784,deer\n6785,deer\n6786,automobile\n6787,ship\n6788,cat\n6789,ship\n6790,cat\n6791,dog\n6792,cat\n6793,dog\n6794,truck\n6795,dog\n6796,cat\n6797,cat\n6798,airplane\n6799,airplane\n6800,airplane\n6801,frog\n6802,automobile\n6803,truck\n6804,automobile\n6805,truck\n6806,ship\n6807,frog\n6808,cat\n6809,cat\n6810,truck\n6811,frog\n6812,dog\n6813,deer\n6814,airplane\n6815,dog\n6816,dog\n6817,airplane\n6818,ship\n6819,bird\n6820,ship\n6821,ship\n6822,deer\n6823,airplane\n6824,deer\n6825,dog\n6826,airplane\n6827,horse\n6828,bird\n6829,deer\n6830,automobile\n6831,frog\n6832,bird\n6833,cat\n6834,horse\n6835,airplane\n6836,airplane\n6837,ship\n6838,ship\n6839,bird\n6840,truck\n6841,dog\n6842,deer\n6843,deer\n6844,dog\n6845,airplane\n6846,ship\n6847,dog\n6848,frog\n6849,cat\n6850,automobile\n6851,horse\n6852,ship\n6853,frog\n6854,bird\n6855,dog\n6856,dog\n6857,truck\n6858,cat\n6859,cat\n6860,horse\n6861,bird\n6862,frog\n6863,truck\n6864,bird\n6865,frog\n6866,truck\n6867,truck\n6868,frog\n6869,frog\n6870,truck\n6871,ship\n6872,frog\n6873,ship\n6874,automobile\n6875,cat\n6876,bird\n6877,deer\n6878,deer\n6879,dog\n6880,cat\n6881,deer\n6882,cat\n6883,horse\n6884,truck\n6885,horse\n6886,cat\n6887,truck\n6888,bird\n6889,cat\n6890,ship\n6891,frog\n6892,deer\n6893,airplane\n6894,frog\n6895,horse\n6896,frog\n6897,cat\n6898,frog\n6899,cat\n6900,cat\n6901,ship\n6902,frog\n6903,airplane\n6904,deer\n6905,bird\n6906,airplane\n6907,cat\n6908,truck\n6909,ship\n6910,bird\n6911,dog\n6912,dog\n6913,horse\n6914,deer\n6915,cat\n6916,automobile\n6917,deer\n6918,truck\n6919,deer\n6920,deer\n6921,dog\n6922,frog\n6923,airplane\n6924,horse\n6925,airplane\n6926,horse\n6927,cat\n6928,cat\n6929,automobile\n6930,horse\n6931,deer\n6932,cat\n6933,dog\n6934,bird\n6935,cat\n6936,cat\n6937,truck\n6938,frog\n6939,deer\n6940,airplane\n6941,cat\n6942,deer\n6943,automobile\n6944,horse\n6945,truck\n6946,deer\n6947,frog\n6948,horse\n6949,airplane\n6950,deer\n6951,airplane\n6952,truck\n6953,frog\n6954,truck\n6955,bird\n6956,frog\n6957,ship\n6958,dog\n6959,frog\n6960,dog\n6961,ship\n6962,horse\n6963,deer\n6964,frog\n6965,deer\n6966,horse\n6967,bird\n6968,cat\n6969,cat\n6970,cat\n6971,bird\n6972,dog\n6973,cat\n6974,airplane\n6975,truck\n6976,frog\n6977,dog\n6978,truck\n6979,dog\n6980,automobile\n6981,ship\n6982,horse\n6983,ship\n6984,ship\n6985,deer\n6986,cat\n6987,ship\n6988,frog\n6989,horse\n6990,deer\n6991,ship\n6992,truck\n6993,airplane\n6994,automobile\n6995,horse\n6996,automobile\n6997,cat\n6998,cat\n6999,automobile\n7000,horse\n7001,bird\n7002,deer\n7003,bird\n7004,bird\n7005,cat\n7006,truck\n7007,deer\n7008,deer\n7009,airplane\n7010,dog\n7011,dog\n7012,frog\n7013,horse\n7014,ship\n7015,frog\n7016,deer\n7017,frog\n7018,dog\n7019,automobile\n7020,dog\n7021,bird\n7022,dog\n7023,ship\n7024,ship\n7025,cat\n7026,frog\n7027,cat\n7028,frog\n7029,cat\n7030,horse\n7031,automobile\n7032,automobile\n7033,dog\n7034,horse\n7035,horse\n7036,automobile\n7037,deer\n7038,cat\n7039,deer\n7040,automobile\n7041,deer\n7042,airplane\n7043,horse\n7044,truck\n7045,dog\n7046,dog\n7047,deer\n7048,deer\n7049,automobile\n7050,cat\n7051,deer\n7052,cat\n7053,frog\n7054,cat\n7055,ship\n7056,truck\n7057,cat\n7058,horse\n7059,deer\n7060,frog\n7061,dog\n7062,ship\n7063,ship\n7064,bird\n7065,automobile\n7066,dog\n7067,bird\n7068,frog\n7069,dog\n7070,horse\n7071,bird\n7072,horse\n7073,truck\n7074,deer\n7075,automobile\n7076,ship\n7077,horse\n7078,frog\n7079,ship\n7080,truck\n7081,cat\n7082,frog\n7083,frog\n7084,airplane\n7085,bird\n7086,dog\n7087,dog\n7088,truck\n7089,deer\n7090,horse\n7091,deer\n7092,frog\n7093,frog\n7094,truck\n7095,frog\n7096,truck\n7097,bird\n7098,truck\n7099,truck\n7100,truck\n7101,horse\n7102,airplane\n7103,ship\n7104,cat\n7105,frog\n7106,truck\n7107,cat\n7108,horse\n7109,automobile\n7110,deer\n7111,dog\n7112,frog\n7113,horse\n7114,dog\n7115,airplane\n7116,bird\n7117,frog\n7118,horse\n7119,ship\n7120,deer\n7121,bird\n7122,cat\n7123,deer\n7124,deer\n7125,cat\n7126,horse\n7127,frog\n7128,dog\n7129,frog\n7130,ship\n7131,frog\n7132,truck\n7133,automobile\n7134,deer\n7135,cat\n7136,automobile\n7137,bird\n7138,automobile\n7139,frog\n7140,ship\n7141,horse\n7142,dog\n7143,horse\n7144,truck\n7145,cat\n7146,frog\n7147,truck\n7148,frog\n7149,automobile\n7150,dog\n7151,frog\n7152,airplane\n7153,ship\n7154,cat\n7155,deer\n7156,dog\n7157,dog\n7158,deer\n7159,bird\n7160,truck\n7161,truck\n7162,cat\n7163,bird\n7164,frog\n7165,cat\n7166,dog\n7167,cat\n7168,dog\n7169,airplane\n7170,automobile\n7171,automobile\n7172,horse\n7173,ship\n7174,ship\n7175,airplane\n7176,cat\n7177,deer\n7178,automobile\n7179,cat\n7180,deer\n7181,dog\n7182,horse\n7183,deer\n7184,deer\n7185,dog\n7186,frog\n7187,dog\n7188,truck\n7189,dog\n7190,airplane\n7191,automobile\n7192,cat\n7193,deer\n7194,horse\n7195,truck\n7196,deer\n7197,airplane\n7198,horse\n7199,cat\n7200,bird\n7201,dog\n7202,dog\n7203,frog\n7204,ship\n7205,ship\n7206,deer\n7207,horse\n7208,automobile\n7209,frog\n7210,dog\n7211,frog\n7212,deer\n7213,truck\n7214,ship\n7215,deer\n7216,bird\n7217,cat\n7218,cat\n7219,automobile\n7220,dog\n7221,deer\n7222,dog\n7223,deer\n7224,dog\n7225,truck\n7226,cat\n7227,airplane\n7228,ship\n7229,frog\n7230,truck\n7231,automobile\n7232,cat\n7233,bird\n7234,horse\n7235,dog\n7236,ship\n7237,deer\n7238,airplane\n7239,horse\n7240,frog\n7241,ship\n7242,horse\n7243,cat\n7244,bird\n7245,dog\n7246,deer\n7247,automobile\n7248,deer\n7249,truck\n7250,deer\n7251,bird\n7252,automobile\n7253,bird\n7254,cat\n7255,frog\n7256,cat\n7257,deer\n7258,bird\n7259,bird\n7260,deer\n7261,truck\n7262,horse\n7263,deer\n7264,cat\n7265,truck\n7266,horse\n7267,automobile\n7268,dog\n7269,bird\n7270,airplane\n7271,cat\n7272,frog\n7273,bird\n7274,ship\n7275,truck\n7276,dog\n7277,truck\n7278,ship\n7279,cat\n7280,dog\n7281,bird\n7282,horse\n7283,truck\n7284,airplane\n7285,deer\n7286,frog\n7287,automobile\n7288,truck\n7289,cat\n7290,bird\n7291,ship\n7292,cat\n7293,airplane\n7294,cat\n7295,cat\n7296,cat\n7297,truck\n7298,truck\n7299,ship\n7300,airplane\n7301,cat\n7302,airplane\n7303,dog\n7304,dog\n7305,cat\n7306,deer\n7307,ship\n7308,cat\n7309,bird\n7310,dog\n7311,bird\n7312,truck\n7313,deer\n7314,airplane\n7315,truck\n7316,cat\n7317,ship\n7318,horse\n7319,deer\n7320,horse\n7321,cat\n7322,bird\n7323,frog\n7324,cat\n7325,cat\n7326,horse\n7327,dog\n7328,bird\n7329,horse\n7330,dog\n7331,cat\n7332,airplane\n7333,horse\n7334,ship\n7335,automobile\n7336,ship\n7337,deer\n7338,bird\n7339,cat\n7340,bird\n7341,deer\n7342,truck\n7343,horse\n7344,cat\n7345,cat\n7346,frog\n7347,ship\n7348,bird\n7349,cat\n7350,frog\n7351,frog\n7352,automobile\n7353,frog\n7354,bird\n7355,truck\n7356,airplane\n7357,automobile\n7358,cat\n7359,cat\n7360,horse\n7361,dog\n7362,dog\n7363,dog\n7364,deer\n7365,bird\n7366,cat\n7367,frog\n7368,deer\n7369,frog\n7370,deer\n7371,deer\n7372,automobile\n7373,horse\n7374,deer\n7375,horse\n7376,horse\n7377,truck\n7378,ship\n7379,automobile\n7380,airplane\n7381,airplane\n7382,frog\n7383,ship\n7384,truck\n7385,bird\n7386,cat\n7387,deer\n7388,truck\n7389,cat\n7390,deer\n7391,frog\n7392,truck\n7393,automobile\n7394,bird\n7395,ship\n7396,horse\n7397,cat\n7398,bird\n7399,airplane\n7400,dog\n7401,cat\n7402,cat\n7403,frog\n7404,frog\n7405,deer\n7406,airplane\n7407,airplane\n7408,bird\n7409,automobile\n7410,dog\n7411,ship\n7412,deer\n7413,cat\n7414,cat\n7415,truck\n7416,frog\n7417,horse\n7418,deer\n7419,dog\n7420,horse\n7421,cat\n7422,automobile\n7423,cat\n7424,automobile\n7425,cat\n7426,truck\n7427,deer\n7428,frog\n7429,deer\n7430,frog\n7431,frog\n7432,airplane\n7433,automobile\n7434,frog\n7435,frog\n7436,dog\n7437,dog\n7438,horse\n7439,airplane\n7440,horse\n7441,horse\n7442,cat\n7443,bird\n7444,ship\n7445,deer\n7446,truck\n7447,deer\n7448,horse\n7449,horse\n7450,dog\n7451,deer\n7452,automobile\n7453,airplane\n7454,cat\n7455,dog\n7456,dog\n7457,horse\n7458,ship\n7459,frog\n7460,dog\n7461,horse\n7462,frog\n7463,truck\n7464,ship\n7465,truck\n7466,cat\n7467,frog\n7468,frog\n7469,automobile\n7470,cat\n7471,bird\n7472,frog\n7473,cat\n7474,horse\n7475,deer\n7476,horse\n7477,truck\n7478,truck\n7479,deer\n7480,ship\n7481,airplane\n7482,automobile\n7483,bird\n7484,airplane\n7485,deer\n7486,truck\n7487,horse\n7488,dog\n7489,automobile\n7490,automobile\n7491,frog\n7492,deer\n7493,airplane\n7494,ship\n7495,bird\n7496,automobile\n7497,horse\n7498,ship\n7499,dog\n7500,cat\n7501,horse\n7502,horse\n7503,cat\n7504,bird\n7505,airplane\n7506,ship\n7507,dog\n7508,airplane\n7509,deer\n7510,bird\n7511,dog\n7512,dog\n7513,dog\n7514,cat\n7515,cat\n7516,frog\n7517,frog\n7518,cat\n7519,airplane\n7520,cat\n7521,deer\n7522,automobile\n7523,deer\n7524,frog\n7525,airplane\n7526,bird\n7527,cat\n7528,deer\n7529,dog\n7530,automobile\n7531,dog\n7532,ship\n7533,truck\n7534,frog\n7535,deer\n7536,dog\n7537,frog\n7538,bird\n7539,deer\n7540,dog\n7541,truck\n7542,ship\n7543,truck\n7544,horse\n7545,ship\n7546,bird\n7547,dog\n7548,cat\n7549,dog\n7550,bird\n7551,horse\n7552,frog\n7553,automobile\n7554,automobile\n7555,deer\n7556,frog\n7557,airplane\n7558,frog\n7559,airplane\n7560,deer\n7561,dog\n7562,ship\n7563,bird\n7564,airplane\n7565,cat\n7566,ship\n7567,cat\n7568,bird\n7569,truck\n7570,automobile\n7571,deer\n7572,bird\n7573,ship\n7574,dog\n7575,horse\n7576,cat\n7577,deer\n7578,bird\n7579,bird\n7580,automobile\n7581,automobile\n7582,automobile\n7583,truck\n7584,cat\n7585,frog\n7586,bird\n7587,frog\n7588,dog\n7589,frog\n7590,deer\n7591,frog\n7592,deer\n7593,bird\n7594,dog\n7595,ship\n7596,cat\n7597,bird\n7598,automobile\n7599,automobile\n7600,dog\n7601,deer\n7602,ship\n7603,dog\n7604,truck\n7605,automobile\n7606,deer\n7607,airplane\n7608,cat\n7609,truck\n7610,airplane\n7611,dog\n7612,dog\n7613,bird\n7614,deer\n7615,dog\n7616,truck\n7617,truck\n7618,frog\n7619,deer\n7620,truck\n7621,frog\n7622,cat\n7623,deer\n7624,airplane\n7625,frog\n7626,cat\n7627,airplane\n7628,automobile\n7629,frog\n7630,frog\n7631,automobile\n7632,frog\n7633,ship\n7634,deer\n7635,automobile\n7636,airplane\n7637,airplane\n7638,truck\n7639,cat\n7640,truck\n7641,airplane\n7642,ship\n7643,cat\n7644,bird\n7645,airplane\n7646,cat\n7647,airplane\n7648,deer\n7649,frog\n7650,frog\n7651,horse\n7652,truck\n7653,horse\n7654,deer\n7655,frog\n7656,airplane\n7657,airplane\n7658,deer\n7659,horse\n7660,horse\n7661,cat\n7662,frog\n7663,truck\n7664,cat\n7665,truck\n7666,horse\n7667,airplane\n7668,deer\n7669,dog\n7670,truck\n7671,bird\n7672,airplane\n7673,deer\n7674,dog\n7675,ship\n7676,ship\n7677,bird\n7678,truck\n7679,deer\n7680,frog\n7681,truck\n7682,horse\n7683,cat\n7684,airplane\n7685,frog\n7686,cat\n7687,airplane\n7688,deer\n7689,bird\n7690,automobile\n7691,airplane\n7692,deer\n7693,horse\n7694,automobile\n7695,frog\n7696,airplane\n7697,airplane\n7698,truck\n7699,automobile\n7700,truck\n7701,truck\n7702,frog\n7703,deer\n7704,airplane\n7705,truck\n7706,deer\n7707,bird\n7708,dog\n7709,ship\n7710,horse\n7711,dog\n7712,automobile\n7713,bird\n7714,cat\n7715,dog\n7716,deer\n7717,dog\n7718,airplane\n7719,truck\n7720,airplane\n7721,cat\n7722,airplane\n7723,cat\n7724,ship\n7725,truck\n7726,frog\n7727,ship\n7728,deer\n7729,automobile\n7730,cat\n7731,ship\n7732,airplane\n7733,deer\n7734,airplane\n7735,truck\n7736,dog\n7737,cat\n7738,truck\n7739,ship\n7740,bird\n7741,cat\n7742,cat\n7743,ship\n7744,frog\n7745,cat\n7746,frog\n7747,dog\n7748,cat\n7749,ship\n7750,bird\n7751,frog\n7752,automobile\n7753,bird\n7754,ship\n7755,airplane\n7756,dog\n7757,dog\n7758,deer\n7759,truck\n7760,bird\n7761,bird\n7762,cat\n7763,deer\n7764,cat\n7765,horse\n7766,airplane\n7767,cat\n7768,airplane\n7769,airplane\n7770,truck\n7771,dog\n7772,ship\n7773,frog\n7774,horse\n7775,frog\n7776,automobile\n7777,ship\n7778,frog\n7779,airplane\n7780,horse\n7781,truck\n7782,cat\n7783,deer\n7784,dog\n7785,ship\n7786,deer\n7787,truck\n7788,deer\n7789,truck\n7790,bird\n7791,bird\n7792,deer\n7793,dog\n7794,ship\n7795,deer\n7796,horse\n7797,ship\n7798,frog\n7799,frog\n7800,frog\n7801,horse\n7802,frog\n7803,horse\n7804,cat\n7805,dog\n7806,cat\n7807,cat\n7808,dog\n7809,automobile\n7810,bird\n7811,bird\n7812,dog\n7813,cat\n7814,dog\n7815,ship\n7816,automobile\n7817,deer\n7818,automobile\n7819,airplane\n7820,airplane\n7821,horse\n7822,airplane\n7823,horse\n7824,deer\n7825,cat\n7826,bird\n7827,airplane\n7828,horse\n7829,horse\n7830,ship\n7831,truck\n7832,automobile\n7833,deer\n7834,automobile\n7835,ship\n7836,dog\n7837,horse\n7838,truck\n7839,automobile\n7840,bird\n7841,deer\n7842,cat\n7843,airplane\n7844,cat\n7845,bird\n7846,airplane\n7847,airplane\n7848,dog\n7849,deer\n7850,dog\n7851,automobile\n7852,frog\n7853,ship\n7854,airplane\n7855,cat\n7856,bird\n7857,frog\n7858,horse\n7859,deer\n7860,automobile\n7861,airplane\n7862,ship\n7863,deer\n7864,truck\n7865,frog\n7866,frog\n7867,bird\n7868,automobile\n7869,automobile\n7870,deer\n7871,horse\n7872,bird\n7873,truck\n7874,dog\n7875,dog\n7876,truck\n7877,deer\n7878,ship\n7879,bird\n7880,airplane\n7881,frog\n7882,horse\n7883,horse\n7884,cat\n7885,deer\n7886,bird\n7887,frog\n7888,horse\n7889,airplane\n7890,cat\n7891,automobile\n7892,ship\n7893,deer\n7894,frog\n7895,airplane\n7896,horse\n7897,bird\n7898,horse\n7899,dog\n7900,bird\n7901,horse\n7902,truck\n7903,deer\n7904,bird\n7905,truck\n7906,frog\n7907,deer\n7908,truck\n7909,deer\n7910,ship\n7911,ship\n7912,frog\n7913,bird\n7914,ship\n7915,frog\n7916,automobile\n7917,automobile\n7918,frog\n7919,airplane\n7920,ship\n7921,automobile\n7922,horse\n7923,truck\n7924,cat\n7925,deer\n7926,horse\n7927,automobile\n7928,truck\n7929,dog\n7930,deer\n7931,horse\n7932,bird\n7933,ship\n7934,bird\n7935,automobile\n7936,frog\n7937,dog\n7938,automobile\n7939,airplane\n7940,deer\n7941,bird\n7942,deer\n7943,dog\n7944,ship\n7945,horse\n7946,automobile\n7947,frog\n7948,dog\n7949,bird\n7950,airplane\n7951,bird\n7952,ship\n7953,truck\n7954,bird\n7955,dog\n7956,ship\n7957,ship\n7958,deer\n7959,dog\n7960,deer\n7961,horse\n7962,frog\n7963,bird\n7964,airplane\n7965,deer\n7966,automobile\n7967,frog\n7968,cat\n7969,deer\n7970,truck\n7971,frog\n7972,deer\n7973,dog\n7974,cat\n7975,cat\n7976,deer\n7977,ship\n7978,cat\n7979,bird\n7980,deer\n7981,dog\n7982,ship\n7983,ship\n7984,truck\n7985,truck\n7986,truck\n7987,cat\n7988,cat\n7989,ship\n7990,ship\n7991,automobile\n7992,horse\n7993,deer\n7994,ship\n7995,automobile\n7996,horse\n7997,frog\n7998,dog\n7999,truck\n8000,cat\n8001,dog\n8002,truck\n8003,ship\n8004,frog\n8005,truck\n8006,dog\n8007,bird\n8008,deer\n8009,airplane\n8010,cat\n8011,dog\n8012,cat\n8013,automobile\n8014,automobile\n8015,frog\n8016,frog\n8017,cat\n8018,cat\n8019,automobile\n8020,cat\n8021,automobile\n8022,dog\n8023,dog\n8024,bird\n8025,deer\n8026,airplane\n8027,truck\n8028,ship\n8029,cat\n8030,airplane\n8031,automobile\n8032,airplane\n8033,dog\n8034,frog\n8035,deer\n8036,frog\n8037,truck\n8038,deer\n8039,bird\n8040,truck\n8041,horse\n8042,automobile\n8043,deer\n8044,truck\n8045,automobile\n8046,cat\n8047,cat\n8048,automobile\n8049,cat\n8050,truck\n8051,frog\n8052,cat\n8053,dog\n8054,cat\n8055,dog\n8056,dog\n8057,dog\n8058,automobile\n8059,truck\n8060,ship\n8061,airplane\n8062,truck\n8063,frog\n8064,ship\n8065,truck\n8066,cat\n8067,cat\n8068,frog\n8069,dog\n8070,frog\n8071,deer\n8072,cat\n8073,deer\n8074,bird\n8075,truck\n8076,truck\n8077,dog\n8078,ship\n8079,airplane\n8080,frog\n8081,cat\n8082,deer\n8083,truck\n8084,ship\n8085,airplane\n8086,deer\n8087,horse\n8088,automobile\n8089,truck\n8090,automobile\n8091,dog\n8092,bird\n8093,frog\n8094,dog\n8095,ship\n8096,dog\n8097,automobile\n8098,horse\n8099,deer\n8100,airplane\n8101,dog\n8102,ship\n8103,deer\n8104,airplane\n8105,ship\n8106,cat\n8107,deer\n8108,dog\n8109,ship\n8110,deer\n8111,deer\n8112,deer\n8113,bird\n8114,deer\n8115,cat\n8116,frog\n8117,ship\n8118,horse\n8119,horse\n8120,truck\n8121,dog\n8122,deer\n8123,automobile\n8124,bird\n8125,bird\n8126,airplane\n8127,frog\n8128,deer\n8129,airplane\n8130,bird\n8131,horse\n8132,airplane\n8133,truck\n8134,ship\n8135,cat\n8136,airplane\n8137,cat\n8138,truck\n8139,horse\n8140,cat\n8141,ship\n8142,bird\n8143,horse\n8144,deer\n8145,cat\n8146,deer\n8147,bird\n8148,deer\n8149,frog\n8150,frog\n8151,automobile\n8152,deer\n8153,deer\n8154,frog\n8155,horse\n8156,airplane\n8157,truck\n8158,ship\n8159,bird\n8160,bird\n8161,deer\n8162,dog\n8163,ship\n8164,cat\n8165,truck\n8166,airplane\n8167,automobile\n8168,bird\n8169,frog\n8170,truck\n8171,cat\n8172,cat\n8173,horse\n8174,bird\n8175,cat\n8176,bird\n8177,dog\n8178,horse\n8179,truck\n8180,automobile\n8181,bird\n8182,horse\n8183,bird\n8184,frog\n8185,cat\n8186,truck\n8187,dog\n8188,bird\n8189,cat\n8190,bird\n8191,truck\n8192,deer\n8193,deer\n8194,ship\n8195,truck\n8196,truck\n8197,frog\n8198,cat\n8199,truck\n8200,deer\n8201,airplane\n8202,ship\n8203,dog\n8204,cat\n8205,bird\n8206,airplane\n8207,dog\n8208,truck\n8209,airplane\n8210,cat\n8211,ship\n8212,cat\n8213,cat\n8214,cat\n8215,truck\n8216,dog\n8217,cat\n8218,frog\n8219,ship\n8220,bird\n8221,ship\n8222,deer\n8223,dog\n8224,airplane\n8225,cat\n8226,cat\n8227,automobile\n8228,dog\n8229,cat\n8230,frog\n8231,deer\n8232,dog\n8233,cat\n8234,dog\n8235,cat\n8236,deer\n8237,automobile\n8238,automobile\n8239,dog\n8240,truck\n8241,dog\n8242,automobile\n8243,deer\n8244,truck\n8245,dog\n8246,frog\n8247,bird\n8248,bird\n8249,horse\n8250,horse\n8251,horse\n8252,truck\n8253,horse\n8254,deer\n8255,ship\n8256,frog\n8257,cat\n8258,frog\n8259,dog\n8260,truck\n8261,cat\n8262,dog\n8263,automobile\n8264,airplane\n8265,deer\n8266,deer\n8267,deer\n8268,frog\n8269,automobile\n8270,automobile\n8271,frog\n8272,horse\n8273,frog\n8274,horse\n8275,bird\n8276,cat\n8277,bird\n8278,deer\n8279,airplane\n8280,dog\n8281,automobile\n8282,truck\n8283,bird\n8284,airplane\n8285,dog\n8286,horse\n8287,deer\n8288,deer\n8289,ship\n8290,dog\n8291,ship\n8292,horse\n8293,cat\n8294,airplane\n8295,frog\n8296,dog\n8297,deer\n8298,cat\n8299,horse\n8300,ship\n8301,truck\n8302,horse\n8303,horse\n8304,dog\n8305,airplane\n8306,horse\n8307,truck\n8308,frog\n8309,automobile\n8310,automobile\n8311,dog\n8312,automobile\n8313,frog\n8314,cat\n8315,deer\n8316,horse\n8317,horse\n8318,cat\n8319,deer\n8320,automobile\n8321,deer\n8322,frog\n8323,airplane\n8324,truck\n8325,airplane\n8326,bird\n8327,cat\n8328,deer\n8329,deer\n8330,bird\n8331,deer\n8332,deer\n8333,ship\n8334,dog\n8335,airplane\n8336,automobile\n8337,cat\n8338,dog\n8339,truck\n8340,deer\n8341,horse\n8342,ship\n8343,cat\n8344,truck\n8345,deer\n8346,frog\n8347,deer\n8348,ship\n8349,cat\n8350,truck\n8351,dog\n8352,ship\n8353,frog\n8354,frog\n8355,frog\n8356,horse\n8357,horse\n8358,automobile\n8359,airplane\n8360,dog\n8361,truck\n8362,horse\n8363,bird\n8364,automobile\n8365,truck\n8366,horse\n8367,cat\n8368,dog\n8369,truck\n8370,bird\n8371,bird\n8372,dog\n8373,horse\n8374,ship\n8375,cat\n8376,horse\n8377,truck\n8378,cat\n8379,airplane\n8380,horse\n8381,horse\n8382,dog\n8383,cat\n8384,deer\n8385,airplane\n8386,bird\n8387,bird\n8388,cat\n8389,deer\n8390,dog\n8391,airplane\n8392,deer\n8393,airplane\n8394,airplane\n8395,frog\n8396,deer\n8397,airplane\n8398,dog\n8399,automobile\n8400,horse\n8401,cat\n8402,bird\n8403,bird\n8404,deer\n8405,truck\n8406,airplane\n8407,dog\n8408,truck\n8409,automobile\n8410,horse\n8411,cat\n8412,dog\n8413,ship\n8414,horse\n8415,cat\n8416,dog\n8417,automobile\n8418,deer\n8419,airplane\n8420,ship\n8421,ship\n8422,automobile\n8423,bird\n8424,bird\n8425,automobile\n8426,cat\n8427,deer\n8428,airplane\n8429,frog\n8430,deer\n8431,automobile\n8432,truck\n8433,bird\n8434,truck\n8435,cat\n8436,truck\n8437,dog\n8438,truck\n8439,deer\n8440,horse\n8441,truck\n8442,frog\n8443,dog\n8444,cat\n8445,dog\n8446,frog\n8447,dog\n8448,frog\n8449,cat\n8450,horse\n8451,cat\n8452,airplane\n8453,horse\n8454,deer\n8455,horse\n8456,ship\n8457,deer\n8458,deer\n8459,bird\n8460,airplane\n8461,frog\n8462,cat\n8463,ship\n8464,horse\n8465,truck\n8466,bird\n8467,frog\n8468,airplane\n8469,frog\n8470,truck\n8471,frog\n8472,bird\n8473,cat\n8474,deer\n8475,deer\n8476,airplane\n8477,automobile\n8478,horse\n8479,dog\n8480,bird\n8481,deer\n8482,airplane\n8483,airplane\n8484,frog\n8485,ship\n8486,ship\n8487,cat\n8488,ship\n8489,ship\n8490,dog\n8491,cat\n8492,dog\n8493,truck\n8494,deer\n8495,dog\n8496,truck\n8497,deer\n8498,frog\n8499,frog\n8500,automobile\n8501,automobile\n8502,dog\n8503,dog\n8504,automobile\n8505,dog\n8506,truck\n8507,airplane\n8508,truck\n8509,bird\n8510,frog\n8511,deer\n8512,airplane\n8513,bird\n8514,deer\n8515,dog\n8516,dog\n8517,bird\n8518,frog\n8519,deer\n8520,ship\n8521,cat\n8522,truck\n8523,frog\n8524,frog\n8525,airplane\n8526,cat\n8527,truck\n8528,horse\n8529,bird\n8530,dog\n8531,truck\n8532,airplane\n8533,deer\n8534,truck\n8535,bird\n8536,cat\n8537,deer\n8538,truck\n8539,truck\n8540,cat\n8541,cat\n8542,frog\n8543,horse\n8544,horse\n8545,horse\n8546,airplane\n8547,automobile\n8548,frog\n8549,bird\n8550,automobile\n8551,frog\n8552,frog\n8553,airplane\n8554,horse\n8555,truck\n8556,horse\n8557,airplane\n8558,frog\n8559,dog\n8560,airplane\n8561,bird\n8562,cat\n8563,cat\n8564,cat\n8565,truck\n8566,horse\n8567,horse\n8568,horse\n8569,truck\n8570,horse\n8571,automobile\n8572,deer\n8573,horse\n8574,horse\n8575,truck\n8576,automobile\n8577,cat\n8578,deer\n8579,ship\n8580,deer\n8581,ship\n8582,frog\n8583,bird\n8584,truck\n8585,ship\n8586,truck\n8587,deer\n8588,truck\n8589,bird\n8590,automobile\n8591,deer\n8592,dog\n8593,frog\n8594,truck\n8595,cat\n8596,deer\n8597,cat\n8598,frog\n8599,deer\n8600,airplane\n8601,deer\n8602,ship\n8603,horse\n8604,automobile\n8605,cat\n8606,truck\n8607,bird\n8608,frog\n8609,frog\n8610,deer\n8611,cat\n8612,truck\n8613,bird\n8614,horse\n8615,frog\n8616,deer\n8617,deer\n8618,cat\n8619,automobile\n8620,bird\n8621,cat\n8622,bird\n8623,truck\n8624,horse\n8625,dog\n8626,truck\n8627,airplane\n8628,ship\n8629,ship\n8630,ship\n8631,deer\n8632,deer\n8633,bird\n8634,cat\n8635,truck\n8636,horse\n8637,ship\n8638,ship\n8639,dog\n8640,frog\n8641,cat\n8642,horse\n8643,cat\n8644,dog\n8645,deer\n8646,cat\n8647,dog\n8648,horse\n8649,dog\n8650,dog\n8651,deer\n8652,horse\n8653,deer\n8654,ship\n8655,cat\n8656,dog\n8657,bird\n8658,bird\n8659,deer\n8660,ship\n8661,bird\n8662,deer\n8663,airplane\n8664,bird\n8665,deer\n8666,deer\n8667,horse\n8668,automobile\n8669,dog\n8670,bird\n8671,airplane\n8672,bird\n8673,truck\n8674,dog\n8675,automobile\n8676,truck\n8677,frog\n8678,dog\n8679,truck\n8680,ship\n8681,cat\n8682,cat\n8683,deer\n8684,airplane\n8685,cat\n8686,bird\n8687,cat\n8688,frog\n8689,horse\n8690,frog\n8691,deer\n8692,dog\n8693,truck\n8694,cat\n8695,horse\n8696,truck\n8697,truck\n8698,cat\n8699,airplane\n8700,dog\n8701,truck\n8702,bird\n8703,bird\n8704,dog\n8705,automobile\n8706,bird\n8707,deer\n8708,airplane\n8709,airplane\n8710,automobile\n8711,cat\n8712,airplane\n8713,bird\n8714,dog\n8715,dog\n8716,ship\n8717,cat\n8718,frog\n8719,airplane\n8720,deer\n8721,automobile\n8722,cat\n8723,horse\n8724,truck\n8725,deer\n8726,dog\n8727,frog\n8728,bird\n8729,dog\n8730,ship\n8731,dog\n8732,ship\n8733,dog\n8734,cat\n8735,truck\n8736,frog\n8737,horse\n8738,automobile\n8739,ship\n8740,bird\n8741,deer\n8742,deer\n8743,airplane\n8744,horse\n8745,cat\n8746,dog\n8747,automobile\n8748,dog\n8749,bird\n8750,bird\n8751,truck\n8752,frog\n8753,bird\n8754,airplane\n8755,dog\n8756,cat\n8757,cat\n8758,bird\n8759,frog\n8760,deer\n8761,airplane\n8762,bird\n8763,bird\n8764,bird\n8765,truck\n8766,cat\n8767,deer\n8768,airplane\n8769,airplane\n8770,horse\n8771,truck\n8772,bird\n8773,dog\n8774,deer\n8775,airplane\n8776,ship\n8777,deer\n8778,airplane\n8779,automobile\n8780,automobile\n8781,horse\n8782,bird\n8783,ship\n8784,frog\n8785,truck\n8786,bird\n8787,cat\n8788,ship\n8789,dog\n8790,dog\n8791,deer\n8792,bird\n8793,cat\n8794,frog\n8795,bird\n8796,airplane\n8797,airplane\n8798,truck\n8799,deer\n8800,deer\n8801,truck\n8802,bird\n8803,airplane\n8804,deer\n8805,truck\n8806,cat\n8807,bird\n8808,truck\n8809,dog\n8810,deer\n8811,cat\n8812,automobile\n8813,cat\n8814,cat\n8815,deer\n8816,automobile\n8817,cat\n8818,dog\n8819,cat\n8820,bird\n8821,dog\n8822,horse\n8823,dog\n8824,automobile\n8825,automobile\n8826,frog\n8827,cat\n8828,truck\n8829,deer\n8830,dog\n8831,deer\n8832,automobile\n8833,bird\n8834,cat\n8835,deer\n8836,automobile\n8837,truck\n8838,cat\n8839,airplane\n8840,truck\n8841,ship\n8842,truck\n8843,truck\n8844,dog\n8845,cat\n8846,deer\n8847,dog\n8848,truck\n8849,dog\n8850,automobile\n8851,cat\n8852,airplane\n8853,deer\n8854,ship\n8855,horse\n8856,airplane\n8857,automobile\n8858,airplane\n8859,deer\n8860,cat\n8861,cat\n8862,cat\n8863,ship\n8864,ship\n8865,horse\n8866,bird\n8867,deer\n8868,deer\n8869,horse\n8870,automobile\n8871,horse\n8872,cat\n8873,airplane\n8874,automobile\n8875,deer\n8876,frog\n8877,bird\n8878,bird\n8879,bird\n8880,cat\n8881,cat\n8882,deer\n8883,airplane\n8884,frog\n8885,automobile\n8886,bird\n8887,cat\n8888,cat\n8889,cat\n8890,frog\n8891,cat\n8892,deer\n8893,cat\n8894,frog\n8895,dog\n8896,bird\n8897,ship\n8898,frog\n8899,airplane\n8900,frog\n8901,deer\n8902,bird\n8903,bird\n8904,cat\n8905,truck\n8906,horse\n8907,deer\n8908,ship\n8909,horse\n8910,dog\n8911,cat\n8912,automobile\n8913,deer\n8914,dog\n8915,frog\n8916,frog\n8917,dog\n8918,automobile\n8919,automobile\n8920,cat\n8921,airplane\n8922,dog\n8923,truck\n8924,truck\n8925,dog\n8926,deer\n8927,dog\n8928,deer\n8929,automobile\n8930,dog\n8931,deer\n8932,truck\n8933,ship\n8934,ship\n8935,frog\n8936,ship\n8937,dog\n8938,cat\n8939,deer\n8940,automobile\n8941,deer\n8942,airplane\n8943,automobile\n8944,airplane\n8945,frog\n8946,cat\n8947,truck\n8948,deer\n8949,automobile\n8950,frog\n8951,truck\n8952,cat\n8953,deer\n8954,dog\n8955,ship\n8956,truck\n8957,deer\n8958,cat\n8959,deer\n8960,truck\n8961,horse\n8962,cat\n8963,automobile\n8964,automobile\n8965,bird\n8966,dog\n8967,cat\n8968,airplane\n8969,truck\n8970,deer\n8971,horse\n8972,cat\n8973,cat\n8974,truck\n8975,deer\n8976,deer\n8977,ship\n8978,airplane\n8979,frog\n8980,horse\n8981,frog\n8982,truck\n8983,dog\n8984,bird\n8985,horse\n8986,truck\n8987,automobile\n8988,frog\n8989,frog\n8990,cat\n8991,deer\n8992,bird\n8993,dog\n8994,airplane\n8995,deer\n8996,bird\n8997,bird\n8998,truck\n8999,cat\n9000,truck\n9001,ship\n9002,frog\n9003,automobile\n9004,cat\n9005,dog\n9006,cat\n9007,ship\n9008,cat\n9009,truck\n9010,deer\n9011,horse\n9012,cat\n9013,bird\n9014,ship\n9015,deer\n9016,frog\n9017,ship\n9018,bird\n9019,airplane\n9020,cat\n9021,airplane\n9022,deer\n9023,frog\n9024,frog\n9025,automobile\n9026,deer\n9027,cat\n9028,deer\n9029,airplane\n9030,deer\n9031,bird\n9032,frog\n9033,truck\n9034,dog\n9035,cat\n9036,horse\n9037,automobile\n9038,airplane\n9039,ship\n9040,deer\n9041,automobile\n9042,frog\n9043,ship\n9044,automobile\n9045,bird\n9046,ship\n9047,automobile\n9048,truck\n9049,frog\n9050,cat\n9051,cat\n9052,truck\n9053,ship\n9054,frog\n9055,automobile\n9056,cat\n9057,cat\n9058,truck\n9059,dog\n9060,deer\n9061,truck\n9062,frog\n9063,bird\n9064,cat\n9065,ship\n9066,deer\n9067,airplane\n9068,horse\n9069,airplane\n9070,bird\n9071,horse\n9072,automobile\n9073,frog\n9074,horse\n9075,bird\n9076,ship\n9077,automobile\n9078,automobile\n9079,airplane\n9080,truck\n9081,frog\n9082,cat\n9083,ship\n9084,frog\n9085,cat\n9086,frog\n9087,dog\n9088,automobile\n9089,automobile\n9090,deer\n9091,deer\n9092,ship\n9093,dog\n9094,bird\n9095,truck\n9096,truck\n9097,deer\n9098,bird\n9099,automobile\n9100,bird\n9101,truck\n9102,dog\n9103,automobile\n9104,horse\n9105,ship\n9106,dog\n9107,horse\n9108,ship\n9109,ship\n9110,cat\n9111,dog\n9112,deer\n9113,horse\n9114,ship\n9115,ship\n9116,dog\n9117,bird\n9118,horse\n9119,ship\n9120,bird\n9121,automobile\n9122,automobile\n9123,horse\n9124,airplane\n9125,automobile\n9126,airplane\n9127,dog\n9128,airplane\n9129,dog\n9130,deer\n9131,bird\n9132,airplane\n9133,automobile\n9134,cat\n9135,bird\n9136,cat\n9137,cat\n9138,truck\n9139,frog\n9140,cat\n9141,cat\n9142,frog\n9143,airplane\n9144,automobile\n9145,deer\n9146,automobile\n9147,frog\n9148,dog\n9149,ship\n9150,automobile\n9151,dog\n9152,truck\n9153,airplane\n9154,truck\n9155,cat\n9156,horse\n9157,cat\n9158,dog\n9159,cat\n9160,deer\n9161,horse\n9162,bird\n9163,automobile\n9164,automobile\n9165,dog\n9166,dog\n9167,bird\n9168,cat\n9169,bird\n9170,frog\n9171,bird\n9172,deer\n9173,frog\n9174,cat\n9175,cat\n9176,cat\n9177,ship\n9178,automobile\n9179,cat\n9180,bird\n9181,frog\n9182,dog\n9183,automobile\n9184,ship\n9185,ship\n9186,bird\n9187,airplane\n9188,airplane\n9189,dog\n9190,deer\n9191,bird\n9192,cat\n9193,truck\n9194,dog\n9195,cat\n9196,truck\n9197,ship\n9198,ship\n9199,cat\n9200,airplane\n9201,cat\n9202,horse\n9203,dog\n9204,truck\n9205,deer\n9206,cat\n9207,automobile\n9208,frog\n9209,cat\n9210,cat\n9211,automobile\n9212,truck\n9213,truck\n9214,deer\n9215,deer\n9216,ship\n9217,automobile\n9218,ship\n9219,automobile\n9220,dog\n9221,horse\n9222,ship\n9223,frog\n9224,frog\n9225,bird\n9226,ship\n9227,automobile\n9228,frog\n9229,deer\n9230,ship\n9231,airplane\n9232,dog\n9233,truck\n9234,frog\n9235,truck\n9236,horse\n9237,airplane\n9238,cat\n9239,deer\n9240,frog\n9241,truck\n9242,airplane\n9243,horse\n9244,horse\n9245,horse\n9246,cat\n9247,dog\n9248,deer\n9249,cat\n9250,frog\n9251,ship\n9252,deer\n9253,ship\n9254,cat\n9255,frog\n9256,truck\n9257,airplane\n9258,truck\n9259,deer\n9260,horse\n9261,automobile\n9262,cat\n9263,airplane\n9264,deer\n9265,frog\n9266,airplane\n9267,airplane\n9268,automobile\n9269,cat\n9270,truck\n9271,airplane\n9272,bird\n9273,bird\n9274,airplane\n9275,truck\n9276,cat\n9277,horse\n9278,frog\n9279,truck\n9280,airplane\n9281,bird\n9282,truck\n9283,deer\n9284,deer\n9285,horse\n9286,bird\n9287,deer\n9288,frog\n9289,cat\n9290,ship\n9291,horse\n9292,frog\n9293,airplane\n9294,airplane\n9295,frog\n9296,frog\n9297,deer\n9298,bird\n9299,truck\n9300,horse\n9301,airplane\n9302,cat\n9303,horse\n9304,automobile\n9305,ship\n9306,automobile\n9307,deer\n9308,ship\n9309,bird\n9310,automobile\n9311,deer\n9312,truck\n9313,truck\n9314,truck\n9315,ship\n9316,horse\n9317,cat\n9318,deer\n9319,horse\n9320,cat\n9321,horse\n9322,frog\n9323,horse\n9324,automobile\n9325,dog\n9326,airplane\n9327,airplane\n9328,cat\n9329,ship\n9330,frog\n9331,dog\n9332,cat\n9333,airplane\n9334,truck\n9335,deer\n9336,deer\n9337,frog\n9338,bird\n9339,dog\n9340,airplane\n9341,dog\n9342,automobile\n9343,horse\n9344,dog\n9345,frog\n9346,cat\n9347,deer\n9348,ship\n9349,horse\n9350,bird\n9351,bird\n9352,ship\n9353,ship\n9354,frog\n9355,dog\n9356,deer\n9357,automobile\n9358,cat\n9359,airplane\n9360,frog\n9361,frog\n9362,horse\n9363,frog\n9364,truck\n9365,truck\n9366,airplane\n9367,horse\n9368,airplane\n9369,automobile\n9370,dog\n9371,bird\n9372,horse\n9373,automobile\n9374,deer\n9375,truck\n9376,cat\n9377,truck\n9378,dog\n9379,horse\n9380,cat\n9381,truck\n9382,horse\n9383,deer\n9384,cat\n9385,horse\n9386,bird\n9387,dog\n9388,frog\n9389,cat\n9390,frog\n9391,deer\n9392,cat\n9393,deer\n9394,frog\n9395,horse\n9396,frog\n9397,airplane\n9398,bird\n9399,cat\n9400,cat\n9401,dog\n9402,frog\n9403,cat\n9404,automobile\n9405,deer\n9406,ship\n9407,horse\n9408,automobile\n9409,deer\n9410,dog\n9411,airplane\n9412,dog\n9413,dog\n9414,frog\n9415,bird\n9416,bird\n9417,cat\n9418,dog\n9419,cat\n9420,automobile\n9421,cat\n9422,bird\n9423,horse\n9424,cat\n9425,bird\n9426,horse\n9427,airplane\n9428,airplane\n9429,automobile\n9430,automobile\n9431,frog\n9432,frog\n9433,truck\n9434,deer\n9435,dog\n9436,cat\n9437,dog\n9438,deer\n9439,deer\n9440,deer\n9441,deer\n9442,horse\n9443,truck\n9444,dog\n9445,deer\n9446,bird\n9447,horse\n9448,truck\n9449,frog\n9450,dog\n9451,dog\n9452,bird\n9453,truck\n9454,automobile\n9455,frog\n9456,dog\n9457,frog\n9458,truck\n9459,truck\n9460,automobile\n9461,airplane\n9462,truck\n9463,ship\n9464,truck\n9465,automobile\n9466,airplane\n9467,deer\n9468,deer\n9469,frog\n9470,truck\n9471,truck\n9472,frog\n9473,frog\n9474,bird\n9475,bird\n9476,horse\n9477,ship\n9478,bird\n9479,dog\n9480,truck\n9481,airplane\n9482,deer\n9483,dog\n9484,truck\n9485,dog\n9486,ship\n9487,bird\n9488,dog\n9489,dog\n9490,deer\n9491,ship\n9492,dog\n9493,airplane\n9494,deer\n9495,bird\n9496,frog\n9497,cat\n9498,bird\n9499,horse\n9500,deer\n9501,truck\n9502,bird\n9503,deer\n9504,bird\n9505,deer\n9506,dog\n9507,deer\n9508,horse\n9509,horse\n9510,airplane\n9511,dog\n9512,truck\n9513,airplane\n9514,ship\n9515,bird\n9516,frog\n9517,deer\n9518,bird\n9519,frog\n9520,dog\n9521,horse\n9522,truck\n9523,frog\n9524,bird\n9525,ship\n9526,frog\n9527,dog\n9528,automobile\n9529,ship\n9530,automobile\n9531,truck\n9532,frog\n9533,bird\n9534,horse\n9535,ship\n9536,dog\n9537,cat\n9538,frog\n9539,horse\n9540,frog\n9541,frog\n9542,airplane\n9543,deer\n9544,deer\n9545,dog\n9546,ship\n9547,cat\n9548,dog\n9549,deer\n9550,bird\n9551,ship\n9552,airplane\n9553,frog\n9554,horse\n9555,airplane\n9556,airplane\n9557,cat\n9558,automobile\n9559,cat\n9560,dog\n9561,bird\n9562,dog\n9563,horse\n9564,deer\n9565,bird\n9566,frog\n9567,deer\n9568,automobile\n9569,cat\n9570,airplane\n9571,deer\n9572,frog\n9573,ship\n9574,ship\n9575,dog\n9576,dog\n9577,cat\n9578,truck\n9579,cat\n9580,truck\n9581,frog\n9582,bird\n9583,automobile\n9584,airplane\n9585,dog\n9586,ship\n9587,truck\n9588,dog\n9589,frog\n9590,cat\n9591,truck\n9592,ship\n9593,frog\n9594,cat\n9595,cat\n9596,cat\n9597,deer\n9598,cat\n9599,ship\n9600,dog\n9601,cat\n9602,horse\n9603,ship\n9604,cat\n9605,airplane\n9606,horse\n9607,automobile\n9608,deer\n9609,frog\n9610,cat\n9611,frog\n9612,deer\n9613,horse\n9614,truck\n9615,ship\n9616,horse\n9617,truck\n9618,horse\n9619,deer\n9620,horse\n9621,horse\n9622,frog\n9623,automobile\n9624,truck\n9625,horse\n9626,truck\n9627,truck\n9628,truck\n9629,cat\n9630,frog\n9631,bird\n9632,dog\n9633,horse\n9634,frog\n9635,deer\n9636,bird\n9637,bird\n9638,deer\n9639,deer\n9640,dog\n9641,horse\n9642,airplane\n9643,airplane\n9644,cat\n9645,dog\n9646,deer\n9647,ship\n9648,bird\n9649,deer\n9650,frog\n9651,truck\n9652,deer\n9653,ship\n9654,cat\n9655,dog\n9656,automobile\n9657,frog\n9658,frog\n9659,airplane\n9660,truck\n9661,frog\n9662,bird\n9663,cat\n9664,dog\n9665,truck\n9666,ship\n9667,bird\n9668,dog\n9669,automobile\n9670,deer\n9671,airplane\n9672,bird\n9673,horse\n9674,truck\n9675,dog\n9676,ship\n9677,airplane\n9678,bird\n9679,airplane\n9680,frog\n9681,cat\n9682,frog\n9683,automobile\n9684,dog\n9685,horse\n9686,automobile\n9687,automobile\n9688,dog\n9689,frog\n9690,airplane\n9691,bird\n9692,deer\n9693,frog\n9694,horse\n9695,airplane\n9696,bird\n9697,truck\n9698,truck\n9699,deer\n9700,horse\n9701,deer\n9702,truck\n9703,automobile\n9704,deer\n9705,deer\n9706,deer\n9707,automobile\n9708,deer\n9709,automobile\n9710,dog\n9711,ship\n9712,frog\n9713,deer\n9714,bird\n9715,cat\n9716,cat\n9717,deer\n9718,horse\n9719,cat\n9720,airplane\n9721,dog\n9722,truck\n9723,deer\n9724,truck\n9725,airplane\n9726,truck\n9727,cat\n9728,truck\n9729,bird\n9730,frog\n9731,deer\n9732,truck\n9733,dog\n9734,dog\n9735,airplane\n9736,ship\n9737,deer\n9738,automobile\n9739,horse\n9740,dog\n9741,deer\n9742,bird\n9743,bird\n9744,frog\n9745,dog\n9746,horse\n9747,truck\n9748,horse\n9749,frog\n9750,bird\n9751,frog\n9752,truck\n9753,airplane\n9754,ship\n9755,deer\n9756,horse\n9757,dog\n9758,bird\n9759,bird\n9760,deer\n9761,frog\n9762,truck\n9763,dog\n9764,automobile\n9765,automobile\n9766,ship\n9767,ship\n9768,automobile\n9769,deer\n9770,frog\n9771,cat\n9772,dog\n9773,ship\n9774,dog\n9775,deer\n9776,automobile\n9777,cat\n9778,deer\n9779,deer\n9780,bird\n9781,truck\n9782,airplane\n9783,horse\n9784,frog\n9785,frog\n9786,truck\n9787,ship\n9788,ship\n9789,cat\n9790,horse\n9791,ship\n9792,horse\n9793,ship\n9794,ship\n9795,frog\n9796,ship\n9797,truck\n9798,frog\n9799,bird\n9800,dog\n9801,cat\n9802,dog\n9803,frog\n9804,deer\n9805,bird\n9806,bird\n9807,ship\n9808,deer\n9809,horse\n9810,ship\n9811,horse\n9812,frog\n9813,truck\n9814,deer\n9815,horse\n9816,dog\n9817,deer\n9818,bird\n9819,ship\n9820,automobile\n9821,frog\n9822,frog\n9823,airplane\n9824,cat\n9825,ship\n9826,deer\n9827,truck\n9828,deer\n9829,frog\n9830,frog\n9831,truck\n9832,dog\n9833,bird\n9834,cat\n9835,truck\n9836,automobile\n9837,frog\n9838,dog\n9839,deer\n9840,cat\n9841,truck\n9842,frog\n9843,deer\n9844,truck\n9845,frog\n9846,cat\n9847,cat\n9848,automobile\n9849,automobile\n9850,cat\n9851,horse\n9852,automobile\n9853,automobile\n9854,truck\n9855,horse\n9856,ship\n9857,horse\n9858,dog\n9859,ship\n9860,horse\n9861,bird\n9862,ship\n9863,ship\n9864,dog\n9865,frog\n9866,cat\n9867,cat\n9868,cat\n9869,automobile\n9870,dog\n9871,ship\n9872,automobile\n9873,automobile\n9874,bird\n9875,frog\n9876,dog\n9877,truck\n9878,frog\n9879,automobile\n9880,automobile\n9881,cat\n9882,frog\n9883,airplane\n9884,ship\n9885,truck\n9886,airplane\n9887,frog\n9888,truck\n9889,horse\n9890,truck\n9891,cat\n9892,automobile\n9893,horse\n9894,airplane\n9895,airplane\n9896,dog\n9897,cat\n9898,automobile\n9899,bird\n9900,truck\n9901,deer\n9902,airplane\n9903,deer\n9904,bird\n9905,deer\n9906,ship\n9907,bird\n9908,cat\n9909,ship\n9910,truck\n9911,horse\n9912,cat\n9913,automobile\n9914,truck\n9915,bird\n9916,automobile\n9917,cat\n9918,horse\n9919,cat\n9920,automobile\n9921,cat\n9922,cat\n9923,horse\n9924,truck\n9925,truck\n9926,deer\n9927,automobile\n9928,deer\n9929,airplane\n9930,horse\n9931,automobile\n9932,ship\n9933,cat\n9934,cat\n9935,automobile\n9936,ship\n9937,cat\n9938,automobile\n9939,truck\n9940,ship\n9941,automobile\n9942,ship\n9943,truck\n9944,cat\n9945,bird\n9946,bird\n9947,bird\n9948,cat\n9949,deer\n9950,truck\n9951,cat\n9952,frog\n9953,cat\n9954,bird\n9955,deer\n9956,frog\n9957,truck\n9958,truck\n9959,truck\n9960,horse\n9961,airplane\n9962,dog\n9963,dog\n9964,deer\n9965,horse\n9966,frog\n9967,deer\n9968,airplane\n9969,cat\n9970,truck\n9971,cat\n9972,automobile\n9973,ship\n9974,bird\n9975,deer\n9976,airplane\n9977,cat\n9978,cat\n9979,horse\n9980,ship\n9981,frog\n9982,cat\n9983,airplane\n9984,deer\n9985,frog\n9986,cat\n9987,automobile\n9988,automobile\n9989,deer\n9990,automobile\n9991,truck\n9992,cat\n9993,dog\n9994,bird\n9995,cat\n9996,truck\n9997,cat\n9998,cat\n9999,bird\n10000,frog\n10001,dog\n10002,ship\n10003,dog\n10004,airplane\n10005,truck\n10006,horse\n10007,horse\n10008,horse\n10009,deer\n10010,ship\n10011,dog\n10012,airplane\n10013,bird\n10014,bird\n10015,frog\n10016,deer\n10017,airplane\n10018,cat\n10019,automobile\n10020,deer\n10021,ship\n10022,airplane\n10023,airplane\n10024,dog\n10025,deer\n10026,cat\n10027,ship\n10028,horse\n10029,horse\n10030,automobile\n10031,deer\n10032,automobile\n10033,ship\n10034,airplane\n10035,cat\n10036,bird\n10037,airplane\n10038,deer\n10039,horse\n10040,frog\n10041,deer\n10042,deer\n10043,ship\n10044,airplane\n10045,automobile\n10046,deer\n10047,deer\n10048,frog\n10049,truck\n10050,automobile\n10051,dog\n10052,dog\n10053,airplane\n10054,airplane\n10055,automobile\n10056,ship\n10057,horse\n10058,airplane\n10059,deer\n10060,horse\n10061,automobile\n10062,automobile\n10063,horse\n10064,frog\n10065,ship\n10066,cat\n10067,airplane\n10068,dog\n10069,automobile\n10070,frog\n10071,frog\n10072,airplane\n10073,dog\n10074,deer\n10075,dog\n10076,bird\n10077,deer\n10078,frog\n10079,dog\n10080,automobile\n10081,automobile\n10082,deer\n10083,horse\n10084,cat\n10085,ship\n10086,ship\n10087,ship\n10088,frog\n10089,airplane\n10090,deer\n10091,cat\n10092,frog\n10093,dog\n10094,cat\n10095,bird\n10096,horse\n10097,dog\n10098,ship\n10099,frog\n10100,cat\n10101,dog\n10102,truck\n10103,cat\n10104,deer\n10105,deer\n10106,horse\n10107,truck\n10108,automobile\n10109,cat\n10110,cat\n10111,horse\n10112,ship\n10113,bird\n10114,horse\n10115,horse\n10116,ship\n10117,frog\n10118,cat\n10119,ship\n10120,dog\n10121,ship\n10122,frog\n10123,airplane\n10124,truck\n10125,automobile\n10126,horse\n10127,horse\n10128,ship\n10129,automobile\n10130,cat\n10131,cat\n10132,truck\n10133,frog\n10134,horse\n10135,bird\n10136,airplane\n10137,deer\n10138,truck\n10139,automobile\n10140,horse\n10141,automobile\n10142,truck\n10143,deer\n10144,truck\n10145,frog\n10146,cat\n10147,truck\n10148,automobile\n10149,bird\n10150,frog\n10151,airplane\n10152,truck\n10153,truck\n10154,airplane\n10155,deer\n10156,cat\n10157,airplane\n10158,airplane\n10159,horse\n10160,deer\n10161,airplane\n10162,deer\n10163,truck\n10164,frog\n10165,bird\n10166,dog\n10167,deer\n10168,ship\n10169,bird\n10170,dog\n10171,deer\n10172,deer\n10173,frog\n10174,frog\n10175,deer\n10176,frog\n10177,dog\n10178,horse\n10179,dog\n10180,dog\n10181,frog\n10182,deer\n10183,dog\n10184,bird\n10185,ship\n10186,truck\n10187,truck\n10188,airplane\n10189,dog\n10190,cat\n10191,truck\n10192,frog\n10193,dog\n10194,bird\n10195,frog\n10196,ship\n10197,cat\n10198,dog\n10199,automobile\n10200,dog\n10201,airplane\n10202,ship\n10203,frog\n10204,deer\n10205,frog\n10206,frog\n10207,ship\n10208,cat\n10209,cat\n10210,horse\n10211,ship\n10212,cat\n10213,frog\n10214,truck\n10215,deer\n10216,airplane\n10217,deer\n10218,ship\n10219,deer\n10220,ship\n10221,frog\n10222,horse\n10223,dog\n10224,ship\n10225,horse\n10226,deer\n10227,cat\n10228,ship\n10229,dog\n10230,deer\n10231,bird\n10232,deer\n10233,horse\n10234,deer\n10235,frog\n10236,dog\n10237,frog\n10238,cat\n10239,truck\n10240,truck\n10241,frog\n10242,cat\n10243,horse\n10244,truck\n10245,frog\n10246,horse\n10247,frog\n10248,dog\n10249,automobile\n10250,horse\n10251,automobile\n10252,airplane\n10253,truck\n10254,bird\n10255,horse\n10256,cat\n10257,dog\n10258,frog\n10259,deer\n10260,dog\n10261,airplane\n10262,cat\n10263,deer\n10264,deer\n10265,cat\n10266,bird\n10267,horse\n10268,ship\n10269,dog\n10270,frog\n10271,automobile\n10272,airplane\n10273,ship\n10274,automobile\n10275,dog\n10276,airplane\n10277,frog\n10278,horse\n10279,automobile\n10280,ship\n10281,truck\n10282,frog\n10283,dog\n10284,dog\n10285,cat\n10286,frog\n10287,horse\n10288,frog\n10289,bird\n10290,deer\n10291,cat\n10292,truck\n10293,dog\n10294,truck\n10295,cat\n10296,frog\n10297,dog\n10298,airplane\n10299,truck\n10300,ship\n10301,truck\n10302,deer\n10303,truck\n10304,ship\n10305,bird\n10306,airplane\n10307,deer\n10308,bird\n10309,bird\n10310,dog\n10311,cat\n10312,dog\n10313,dog\n10314,ship\n10315,automobile\n10316,cat\n10317,cat\n10318,airplane\n10319,airplane\n10320,cat\n10321,bird\n10322,frog\n10323,cat\n10324,horse\n10325,horse\n10326,cat\n10327,cat\n10328,ship\n10329,automobile\n10330,bird\n10331,dog\n10332,frog\n10333,cat\n10334,dog\n10335,bird\n10336,truck\n10337,airplane\n10338,bird\n10339,dog\n10340,bird\n10341,horse\n10342,deer\n10343,bird\n10344,deer\n10345,deer\n10346,horse\n10347,dog\n10348,bird\n10349,horse\n10350,automobile\n10351,dog\n10352,cat\n10353,truck\n10354,deer\n10355,frog\n10356,airplane\n10357,frog\n10358,frog\n10359,airplane\n10360,truck\n10361,deer\n10362,automobile\n10363,automobile\n10364,dog\n10365,bird\n10366,cat\n10367,automobile\n10368,dog\n10369,airplane\n10370,bird\n10371,ship\n10372,horse\n10373,deer\n10374,deer\n10375,dog\n10376,truck\n10377,frog\n10378,truck\n10379,deer\n10380,dog\n10381,ship\n10382,airplane\n10383,ship\n10384,horse\n10385,deer\n10386,dog\n10387,frog\n10388,airplane\n10389,deer\n10390,deer\n10391,ship\n10392,cat\n10393,bird\n10394,bird\n10395,bird\n10396,automobile\n10397,horse\n10398,ship\n10399,frog\n10400,truck\n10401,deer\n10402,automobile\n10403,dog\n10404,cat\n10405,deer\n10406,bird\n10407,deer\n10408,dog\n10409,dog\n10410,deer\n10411,bird\n10412,ship\n10413,airplane\n10414,frog\n10415,truck\n10416,frog\n10417,bird\n10418,frog\n10419,frog\n10420,cat\n10421,deer\n10422,dog\n10423,dog\n10424,airplane\n10425,airplane\n10426,automobile\n10427,cat\n10428,horse\n10429,horse\n10430,bird\n10431,ship\n10432,airplane\n10433,airplane\n10434,ship\n10435,cat\n10436,airplane\n10437,deer\n10438,cat\n10439,cat\n10440,airplane\n10441,dog\n10442,truck\n10443,dog\n10444,deer\n10445,bird\n10446,cat\n10447,horse\n10448,automobile\n10449,deer\n10450,cat\n10451,frog\n10452,cat\n10453,deer\n10454,bird\n10455,cat\n10456,horse\n10457,automobile\n10458,horse\n10459,truck\n10460,bird\n10461,frog\n10462,bird\n10463,deer\n10464,deer\n10465,deer\n10466,dog\n10467,airplane\n10468,cat\n10469,airplane\n10470,ship\n10471,cat\n10472,bird\n10473,cat\n10474,deer\n10475,frog\n10476,frog\n10477,frog\n10478,truck\n10479,frog\n10480,airplane\n10481,cat\n10482,truck\n10483,dog\n10484,dog\n10485,horse\n10486,cat\n10487,dog\n10488,truck\n10489,frog\n10490,dog\n10491,cat\n10492,cat\n10493,deer\n10494,truck\n10495,frog\n10496,airplane\n10497,deer\n10498,frog\n10499,bird\n10500,deer\n10501,dog\n10502,frog\n10503,frog\n10504,bird\n10505,frog\n10506,deer\n10507,frog\n10508,truck\n10509,frog\n10510,truck\n10511,automobile\n10512,frog\n10513,deer\n10514,horse\n10515,airplane\n10516,horse\n10517,automobile\n10518,deer\n10519,frog\n10520,truck\n10521,deer\n10522,bird\n10523,frog\n10524,deer\n10525,frog\n10526,deer\n10527,bird\n10528,frog\n10529,ship\n10530,dog\n10531,horse\n10532,airplane\n10533,deer\n10534,frog\n10535,truck\n10536,frog\n10537,truck\n10538,horse\n10539,deer\n10540,automobile\n10541,truck\n10542,airplane\n10543,ship\n10544,truck\n10545,frog\n10546,truck\n10547,deer\n10548,ship\n10549,deer\n10550,automobile\n10551,ship\n10552,airplane\n10553,ship\n10554,horse\n10555,bird\n10556,cat\n10557,airplane\n10558,ship\n10559,horse\n10560,airplane\n10561,dog\n10562,cat\n10563,cat\n10564,cat\n10565,frog\n10566,horse\n10567,bird\n10568,automobile\n10569,cat\n10570,deer\n10571,horse\n10572,deer\n10573,dog\n10574,dog\n10575,dog\n10576,automobile\n10577,horse\n10578,cat\n10579,ship\n10580,frog\n10581,frog\n10582,dog\n10583,frog\n10584,cat\n10585,truck\n10586,cat\n10587,dog\n10588,dog\n10589,deer\n10590,deer\n10591,dog\n10592,frog\n10593,deer\n10594,cat\n10595,airplane\n10596,truck\n10597,ship\n10598,truck\n10599,deer\n10600,cat\n10601,airplane\n10602,horse\n10603,dog\n10604,horse\n10605,deer\n10606,automobile\n10607,deer\n10608,deer\n10609,cat\n10610,dog\n10611,frog\n10612,bird\n10613,airplane\n10614,deer\n10615,cat\n10616,deer\n10617,horse\n10618,cat\n10619,frog\n10620,airplane\n10621,ship\n10622,truck\n10623,ship\n10624,frog\n10625,cat\n10626,truck\n10627,bird\n10628,frog\n10629,frog\n10630,horse\n10631,automobile\n10632,deer\n10633,frog\n10634,deer\n10635,frog\n10636,cat\n10637,dog\n10638,cat\n10639,dog\n10640,deer\n10641,ship\n10642,deer\n10643,airplane\n10644,automobile\n10645,deer\n10646,truck\n10647,truck\n10648,horse\n10649,cat\n10650,bird\n10651,horse\n10652,horse\n10653,airplane\n10654,ship\n10655,deer\n10656,truck\n10657,bird\n10658,dog\n10659,airplane\n10660,bird\n10661,frog\n10662,cat\n10663,horse\n10664,frog\n10665,airplane\n10666,truck\n10667,frog\n10668,deer\n10669,deer\n10670,cat\n10671,horse\n10672,deer\n10673,deer\n10674,automobile\n10675,truck\n10676,airplane\n10677,cat\n10678,frog\n10679,cat\n10680,frog\n10681,frog\n10682,cat\n10683,cat\n10684,deer\n10685,frog\n10686,cat\n10687,bird\n10688,airplane\n10689,dog\n10690,bird\n10691,truck\n10692,horse\n10693,frog\n10694,deer\n10695,deer\n10696,deer\n10697,bird\n10698,airplane\n10699,automobile\n10700,truck\n10701,horse\n10702,dog\n10703,airplane\n10704,deer\n10705,ship\n10706,frog\n10707,truck\n10708,horse\n10709,frog\n10710,frog\n10711,deer\n10712,dog\n10713,horse\n10714,frog\n10715,airplane\n10716,dog\n10717,truck\n10718,deer\n10719,truck\n10720,cat\n10721,truck\n10722,truck\n10723,frog\n10724,deer\n10725,deer\n10726,bird\n10727,bird\n10728,automobile\n10729,airplane\n10730,dog\n10731,deer\n10732,ship\n10733,ship\n10734,dog\n10735,deer\n10736,cat\n10737,deer\n10738,deer\n10739,horse\n10740,bird\n10741,cat\n10742,horse\n10743,deer\n10744,dog\n10745,truck\n10746,bird\n10747,frog\n10748,dog\n10749,bird\n10750,truck\n10751,deer\n10752,cat\n10753,automobile\n10754,deer\n10755,frog\n10756,truck\n10757,deer\n10758,truck\n10759,bird\n10760,frog\n10761,truck\n10762,deer\n10763,deer\n10764,horse\n10765,airplane\n10766,bird\n10767,deer\n10768,cat\n10769,dog\n10770,airplane\n10771,automobile\n10772,truck\n10773,truck\n10774,horse\n10775,cat\n10776,cat\n10777,dog\n10778,deer\n10779,automobile\n10780,truck\n10781,dog\n10782,cat\n10783,cat\n10784,cat\n10785,automobile\n10786,cat\n10787,cat\n10788,ship\n10789,deer\n10790,cat\n10791,horse\n10792,deer\n10793,dog\n10794,deer\n10795,horse\n10796,ship\n10797,bird\n10798,deer\n10799,cat\n10800,deer\n10801,cat\n10802,automobile\n10803,horse\n10804,airplane\n10805,dog\n10806,bird\n10807,dog\n10808,cat\n10809,ship\n10810,frog\n10811,cat\n10812,dog\n10813,frog\n10814,truck\n10815,horse\n10816,dog\n10817,truck\n10818,deer\n10819,horse\n10820,truck\n10821,horse\n10822,airplane\n10823,bird\n10824,deer\n10825,horse\n10826,automobile\n10827,horse\n10828,deer\n10829,truck\n10830,horse\n10831,horse\n10832,dog\n10833,airplane\n10834,deer\n10835,automobile\n10836,dog\n10837,frog\n10838,dog\n10839,deer\n10840,bird\n10841,dog\n10842,airplane\n10843,automobile\n10844,automobile\n10845,automobile\n10846,cat\n10847,frog\n10848,cat\n10849,bird\n10850,cat\n10851,dog\n10852,horse\n10853,truck\n10854,automobile\n10855,cat\n10856,bird\n10857,deer\n10858,truck\n10859,automobile\n10860,automobile\n10861,bird\n10862,cat\n10863,airplane\n10864,horse\n10865,bird\n10866,ship\n10867,deer\n10868,frog\n10869,automobile\n10870,cat\n10871,ship\n10872,dog\n10873,deer\n10874,airplane\n10875,frog\n10876,horse\n10877,frog\n10878,deer\n10879,bird\n10880,dog\n10881,cat\n10882,automobile\n10883,horse\n10884,cat\n10885,deer\n10886,truck\n10887,deer\n10888,ship\n10889,dog\n10890,dog\n10891,frog\n10892,cat\n10893,bird\n10894,bird\n10895,horse\n10896,ship\n10897,ship\n10898,bird\n10899,cat\n10900,horse\n10901,airplane\n10902,horse\n10903,cat\n10904,ship\n10905,horse\n10906,deer\n10907,airplane\n10908,deer\n10909,airplane\n10910,deer\n10911,dog\n10912,frog\n10913,deer\n10914,frog\n10915,ship\n10916,truck\n10917,truck\n10918,airplane\n10919,airplane\n10920,deer\n10921,truck\n10922,cat\n10923,cat\n10924,truck\n10925,dog\n10926,airplane\n10927,ship\n10928,deer\n10929,frog\n10930,deer\n10931,cat\n10932,horse\n10933,bird\n10934,dog\n10935,automobile\n10936,cat\n10937,deer\n10938,frog\n10939,horse\n10940,truck\n10941,horse\n10942,cat\n10943,bird\n10944,airplane\n10945,cat\n10946,airplane\n10947,deer\n10948,bird\n10949,cat\n10950,frog\n10951,frog\n10952,horse\n10953,cat\n10954,airplane\n10955,horse\n10956,deer\n10957,cat\n10958,airplane\n10959,horse\n10960,deer\n10961,frog\n10962,deer\n10963,ship\n10964,deer\n10965,dog\n10966,truck\n10967,deer\n10968,airplane\n10969,frog\n10970,cat\n10971,frog\n10972,frog\n10973,horse\n10974,deer\n10975,automobile\n10976,dog\n10977,airplane\n10978,automobile\n10979,airplane\n10980,ship\n10981,frog\n10982,airplane\n10983,frog\n10984,automobile\n10985,dog\n10986,truck\n10987,cat\n10988,horse\n10989,frog\n10990,bird\n10991,horse\n10992,deer\n10993,frog\n10994,deer\n10995,deer\n10996,airplane\n10997,deer\n10998,automobile\n10999,truck\n11000,automobile\n11001,dog\n11002,automobile\n11003,truck\n11004,airplane\n11005,bird\n11006,ship\n11007,bird\n11008,deer\n11009,deer\n11010,cat\n11011,deer\n11012,frog\n11013,ship\n11014,airplane\n11015,automobile\n11016,deer\n11017,bird\n11018,airplane\n11019,ship\n11020,horse\n11021,horse\n11022,bird\n11023,bird\n11024,ship\n11025,frog\n11026,frog\n11027,dog\n11028,deer\n11029,airplane\n11030,dog\n11031,truck\n11032,deer\n11033,bird\n11034,frog\n11035,dog\n11036,bird\n11037,deer\n11038,airplane\n11039,truck\n11040,dog\n11041,dog\n11042,cat\n11043,automobile\n11044,cat\n11045,deer\n11046,ship\n11047,dog\n11048,dog\n11049,horse\n11050,truck\n11051,frog\n11052,frog\n11053,automobile\n11054,bird\n11055,deer\n11056,dog\n11057,truck\n11058,deer\n11059,cat\n11060,automobile\n11061,deer\n11062,dog\n11063,truck\n11064,bird\n11065,cat\n11066,ship\n11067,cat\n11068,cat\n11069,dog\n11070,ship\n11071,horse\n11072,horse\n11073,ship\n11074,airplane\n11075,bird\n11076,automobile\n11077,cat\n11078,truck\n11079,deer\n11080,horse\n11081,bird\n11082,frog\n11083,horse\n11084,bird\n11085,dog\n11086,cat\n11087,frog\n11088,truck\n11089,cat\n11090,dog\n11091,deer\n11092,truck\n11093,deer\n11094,frog\n11095,frog\n11096,cat\n11097,deer\n11098,truck\n11099,airplane\n11100,airplane\n11101,dog\n11102,bird\n11103,frog\n11104,automobile\n11105,deer\n11106,frog\n11107,cat\n11108,cat\n11109,truck\n11110,ship\n11111,frog\n11112,dog\n11113,dog\n11114,truck\n11115,automobile\n11116,cat\n11117,cat\n11118,horse\n11119,truck\n11120,automobile\n11121,frog\n11122,truck\n11123,ship\n11124,truck\n11125,truck\n11126,airplane\n11127,airplane\n11128,ship\n11129,deer\n11130,cat\n11131,truck\n11132,truck\n11133,deer\n11134,deer\n11135,horse\n11136,dog\n11137,truck\n11138,ship\n11139,truck\n11140,bird\n11141,frog\n11142,bird\n11143,horse\n11144,ship\n11145,truck\n11146,deer\n11147,truck\n11148,automobile\n11149,automobile\n11150,deer\n11151,ship\n11152,automobile\n11153,deer\n11154,frog\n11155,horse\n11156,frog\n11157,dog\n11158,cat\n11159,truck\n11160,airplane\n11161,deer\n11162,automobile\n11163,deer\n11164,cat\n11165,truck\n11166,ship\n11167,dog\n11168,horse\n11169,cat\n11170,truck\n11171,horse\n11172,ship\n11173,ship\n11174,frog\n11175,horse\n11176,airplane\n11177,horse\n11178,dog\n11179,deer\n11180,dog\n11181,ship\n11182,ship\n11183,frog\n11184,cat\n11185,airplane\n11186,dog\n11187,airplane\n11188,horse\n11189,frog\n11190,airplane\n11191,deer\n11192,frog\n11193,cat\n11194,horse\n11195,deer\n11196,automobile\n11197,automobile\n11198,horse\n11199,truck\n11200,truck\n11201,truck\n11202,frog\n11203,truck\n11204,automobile\n11205,cat\n11206,cat\n11207,truck\n11208,automobile\n11209,deer\n11210,dog\n11211,truck\n11212,deer\n11213,horse\n11214,truck\n11215,deer\n11216,dog\n11217,deer\n11218,horse\n11219,frog\n11220,deer\n11221,airplane\n11222,cat\n11223,bird\n11224,deer\n11225,airplane\n11226,horse\n11227,frog\n11228,automobile\n11229,automobile\n11230,frog\n11231,frog\n11232,deer\n11233,frog\n11234,dog\n11235,dog\n11236,deer\n11237,bird\n11238,truck\n11239,ship\n11240,truck\n11241,dog\n11242,truck\n11243,truck\n11244,airplane\n11245,cat\n11246,cat\n11247,cat\n11248,deer\n11249,bird\n11250,bird\n11251,dog\n11252,bird\n11253,cat\n11254,cat\n11255,deer\n11256,deer\n11257,frog\n11258,ship\n11259,cat\n11260,truck\n11261,cat\n11262,horse\n11263,ship\n11264,frog\n11265,bird\n11266,horse\n11267,horse\n11268,horse\n11269,bird\n11270,dog\n11271,frog\n11272,deer\n11273,automobile\n11274,cat\n11275,frog\n11276,deer\n11277,frog\n11278,cat\n11279,dog\n11280,dog\n11281,deer\n11282,frog\n11283,truck\n11284,ship\n11285,bird\n11286,cat\n11287,deer\n11288,deer\n11289,frog\n11290,bird\n11291,dog\n11292,frog\n11293,cat\n11294,automobile\n11295,automobile\n11296,dog\n11297,deer\n11298,airplane\n11299,cat\n11300,cat\n11301,automobile\n11302,deer\n11303,dog\n11304,frog\n11305,truck\n11306,bird\n11307,bird\n11308,ship\n11309,deer\n11310,horse\n11311,truck\n11312,bird\n11313,bird\n11314,cat\n11315,bird\n11316,horse\n11317,ship\n11318,horse\n11319,deer\n11320,horse\n11321,truck\n11322,ship\n11323,ship\n11324,dog\n11325,horse\n11326,bird\n11327,airplane\n11328,bird\n11329,horse\n11330,ship\n11331,deer\n11332,deer\n11333,horse\n11334,frog\n11335,horse\n11336,deer\n11337,truck\n11338,truck\n11339,deer\n11340,automobile\n11341,airplane\n11342,deer\n11343,deer\n11344,ship\n11345,frog\n11346,horse\n11347,airplane\n11348,deer\n11349,automobile\n11350,frog\n11351,automobile\n11352,bird\n11353,truck\n11354,automobile\n11355,airplane\n11356,airplane\n11357,frog\n11358,frog\n11359,frog\n11360,airplane\n11361,dog\n11362,dog\n11363,horse\n11364,horse\n11365,truck\n11366,cat\n11367,truck\n11368,frog\n11369,cat\n11370,truck\n11371,airplane\n11372,ship\n11373,frog\n11374,airplane\n11375,truck\n11376,ship\n11377,automobile\n11378,deer\n11379,cat\n11380,deer\n11381,horse\n11382,truck\n11383,cat\n11384,ship\n11385,ship\n11386,dog\n11387,deer\n11388,bird\n11389,horse\n11390,frog\n11391,deer\n11392,dog\n11393,ship\n11394,deer\n11395,cat\n11396,automobile\n11397,dog\n11398,horse\n11399,dog\n11400,horse\n11401,bird\n11402,frog\n11403,horse\n11404,truck\n11405,frog\n11406,deer\n11407,ship\n11408,bird\n11409,ship\n11410,bird\n11411,ship\n11412,dog\n11413,horse\n11414,ship\n11415,dog\n11416,horse\n11417,bird\n11418,truck\n11419,horse\n11420,deer\n11421,deer\n11422,bird\n11423,bird\n11424,airplane\n11425,frog\n11426,truck\n11427,horse\n11428,frog\n11429,cat\n11430,truck\n11431,bird\n11432,dog\n11433,bird\n11434,truck\n11435,dog\n11436,horse\n11437,dog\n11438,bird\n11439,bird\n11440,horse\n11441,dog\n11442,dog\n11443,cat\n11444,deer\n11445,dog\n11446,dog\n11447,dog\n11448,cat\n11449,dog\n11450,automobile\n11451,dog\n11452,deer\n11453,horse\n11454,ship\n11455,airplane\n11456,truck\n11457,dog\n11458,dog\n11459,ship\n11460,frog\n11461,bird\n11462,deer\n11463,truck\n11464,ship\n11465,cat\n11466,frog\n11467,frog\n11468,dog\n11469,cat\n11470,cat\n11471,airplane\n11472,dog\n11473,bird\n11474,airplane\n11475,cat\n11476,cat\n11477,airplane\n11478,horse\n11479,truck\n11480,frog\n11481,cat\n11482,frog\n11483,frog\n11484,automobile\n11485,cat\n11486,automobile\n11487,truck\n11488,bird\n11489,ship\n11490,horse\n11491,truck\n11492,automobile\n11493,deer\n11494,cat\n11495,frog\n11496,ship\n11497,airplane\n11498,frog\n11499,deer\n11500,truck\n11501,dog\n11502,cat\n11503,frog\n11504,bird\n11505,horse\n11506,ship\n11507,bird\n11508,cat\n11509,cat\n11510,airplane\n11511,truck\n11512,deer\n11513,ship\n11514,ship\n11515,cat\n11516,truck\n11517,bird\n11518,truck\n11519,truck\n11520,dog\n11521,ship\n11522,truck\n11523,bird\n11524,ship\n11525,horse\n11526,cat\n11527,bird\n11528,airplane\n11529,deer\n11530,frog\n11531,cat\n11532,deer\n11533,airplane\n11534,ship\n11535,automobile\n11536,horse\n11537,automobile\n11538,frog\n11539,ship\n11540,bird\n11541,cat\n11542,frog\n11543,frog\n11544,ship\n11545,dog\n11546,deer\n11547,cat\n11548,airplane\n11549,deer\n11550,cat\n11551,dog\n11552,airplane\n11553,cat\n11554,cat\n11555,horse\n11556,deer\n11557,horse\n11558,ship\n11559,dog\n11560,ship\n11561,frog\n11562,horse\n11563,deer\n11564,dog\n11565,horse\n11566,truck\n11567,cat\n11568,horse\n11569,truck\n11570,horse\n11571,cat\n11572,ship\n11573,frog\n11574,airplane\n11575,horse\n11576,deer\n11577,deer\n11578,cat\n11579,dog\n11580,cat\n11581,cat\n11582,ship\n11583,horse\n11584,horse\n11585,frog\n11586,deer\n11587,deer\n11588,dog\n11589,deer\n11590,dog\n11591,truck\n11592,frog\n11593,cat\n11594,cat\n11595,ship\n11596,airplane\n11597,cat\n11598,cat\n11599,truck\n11600,deer\n11601,dog\n11602,dog\n11603,bird\n11604,ship\n11605,truck\n11606,frog\n11607,ship\n11608,bird\n11609,horse\n11610,bird\n11611,truck\n11612,ship\n11613,truck\n11614,truck\n11615,deer\n11616,truck\n11617,horse\n11618,truck\n11619,deer\n11620,truck\n11621,airplane\n11622,ship\n11623,dog\n11624,deer\n11625,automobile\n11626,truck\n11627,automobile\n11628,bird\n11629,ship\n11630,truck\n11631,airplane\n11632,horse\n11633,cat\n11634,frog\n11635,deer\n11636,ship\n11637,cat\n11638,deer\n11639,automobile\n11640,airplane\n11641,truck\n11642,deer\n11643,airplane\n11644,airplane\n11645,airplane\n11646,cat\n11647,automobile\n11648,truck\n11649,ship\n11650,cat\n11651,bird\n11652,bird\n11653,deer\n11654,truck\n11655,frog\n11656,dog\n11657,frog\n11658,horse\n11659,truck\n11660,bird\n11661,frog\n11662,cat\n11663,horse\n11664,ship\n11665,ship\n11666,deer\n11667,airplane\n11668,frog\n11669,bird\n11670,airplane\n11671,frog\n11672,cat\n11673,bird\n11674,dog\n11675,airplane\n11676,ship\n11677,airplane\n11678,airplane\n11679,airplane\n11680,cat\n11681,dog\n11682,cat\n11683,automobile\n11684,frog\n11685,deer\n11686,deer\n11687,horse\n11688,cat\n11689,automobile\n11690,airplane\n11691,dog\n11692,frog\n11693,dog\n11694,horse\n11695,frog\n11696,bird\n11697,frog\n11698,dog\n11699,frog\n11700,deer\n11701,ship\n11702,frog\n11703,dog\n11704,ship\n11705,deer\n11706,airplane\n11707,cat\n11708,dog\n11709,truck\n11710,dog\n11711,truck\n11712,dog\n11713,dog\n11714,deer\n11715,ship\n11716,horse\n11717,automobile\n11718,bird\n11719,cat\n11720,dog\n11721,dog\n11722,bird\n11723,cat\n11724,dog\n11725,deer\n11726,deer\n11727,dog\n11728,airplane\n11729,automobile\n11730,ship\n11731,truck\n11732,bird\n11733,cat\n11734,dog\n11735,dog\n11736,bird\n11737,frog\n11738,horse\n11739,ship\n11740,deer\n11741,dog\n11742,automobile\n11743,dog\n11744,horse\n11745,deer\n11746,bird\n11747,deer\n11748,truck\n11749,ship\n11750,horse\n11751,deer\n11752,dog\n11753,truck\n11754,airplane\n11755,horse\n11756,deer\n11757,airplane\n11758,automobile\n11759,cat\n11760,frog\n11761,horse\n11762,airplane\n11763,cat\n11764,airplane\n11765,bird\n11766,frog\n11767,ship\n11768,cat\n11769,ship\n11770,deer\n11771,truck\n11772,truck\n11773,automobile\n11774,deer\n11775,truck\n11776,horse\n11777,frog\n11778,frog\n11779,cat\n11780,truck\n11781,horse\n11782,automobile\n11783,dog\n11784,deer\n11785,airplane\n11786,horse\n11787,airplane\n11788,dog\n11789,cat\n11790,airplane\n11791,truck\n11792,ship\n11793,ship\n11794,deer\n11795,horse\n11796,truck\n11797,airplane\n11798,frog\n11799,automobile\n11800,bird\n11801,frog\n11802,bird\n11803,ship\n11804,truck\n11805,ship\n11806,horse\n11807,horse\n11808,bird\n11809,deer\n11810,automobile\n11811,ship\n11812,airplane\n11813,truck\n11814,bird\n11815,truck\n11816,ship\n11817,truck\n11818,cat\n11819,truck\n11820,frog\n11821,truck\n11822,ship\n11823,ship\n11824,horse\n11825,ship\n11826,dog\n11827,frog\n11828,frog\n11829,automobile\n11830,horse\n11831,ship\n11832,cat\n11833,dog\n11834,truck\n11835,cat\n11836,ship\n11837,deer\n11838,cat\n11839,airplane\n11840,dog\n11841,cat\n11842,horse\n11843,cat\n11844,cat\n11845,cat\n11846,frog\n11847,ship\n11848,bird\n11849,deer\n11850,airplane\n11851,horse\n11852,ship\n11853,cat\n11854,horse\n11855,airplane\n11856,airplane\n11857,deer\n11858,dog\n11859,dog\n11860,horse\n11861,truck\n11862,truck\n11863,ship\n11864,bird\n11865,horse\n11866,ship\n11867,frog\n11868,ship\n11869,bird\n11870,automobile\n11871,automobile\n11872,cat\n11873,airplane\n11874,frog\n11875,horse\n11876,dog\n11877,cat\n11878,airplane\n11879,cat\n11880,deer\n11881,frog\n11882,dog\n11883,automobile\n11884,automobile\n11885,bird\n11886,cat\n11887,ship\n11888,horse\n11889,frog\n11890,horse\n11891,cat\n11892,automobile\n11893,airplane\n11894,horse\n11895,airplane\n11896,dog\n11897,deer\n11898,frog\n11899,dog\n11900,horse\n11901,automobile\n11902,ship\n11903,frog\n11904,truck\n11905,deer\n11906,cat\n11907,cat\n11908,cat\n11909,airplane\n11910,truck\n11911,frog\n11912,cat\n11913,frog\n11914,deer\n11915,ship\n11916,frog\n11917,horse\n11918,dog\n11919,truck\n11920,truck\n11921,bird\n11922,truck\n11923,bird\n11924,airplane\n11925,ship\n11926,cat\n11927,horse\n11928,frog\n11929,bird\n11930,frog\n11931,bird\n11932,dog\n11933,ship\n11934,airplane\n11935,airplane\n11936,frog\n11937,bird\n11938,horse\n11939,ship\n11940,airplane\n11941,cat\n11942,frog\n11943,frog\n11944,truck\n11945,ship\n11946,airplane\n11947,truck\n11948,airplane\n11949,deer\n11950,automobile\n11951,dog\n11952,automobile\n11953,ship\n11954,automobile\n11955,automobile\n11956,horse\n11957,truck\n11958,bird\n11959,deer\n11960,automobile\n11961,frog\n11962,frog\n11963,dog\n11964,bird\n11965,truck\n11966,frog\n11967,cat\n11968,deer\n11969,horse\n11970,frog\n11971,airplane\n11972,automobile\n11973,ship\n11974,cat\n11975,frog\n11976,airplane\n11977,ship\n11978,deer\n11979,horse\n11980,frog\n11981,ship\n11982,airplane\n11983,cat\n11984,deer\n11985,bird\n11986,dog\n11987,ship\n11988,automobile\n11989,cat\n11990,deer\n11991,truck\n11992,airplane\n11993,cat\n11994,ship\n11995,deer\n11996,ship\n11997,cat\n11998,bird\n11999,truck\n12000,frog\n12001,dog\n12002,ship\n12003,airplane\n12004,airplane\n12005,cat\n12006,automobile\n12007,dog\n12008,automobile\n12009,horse\n12010,truck\n12011,ship\n12012,dog\n12013,deer\n12014,cat\n12015,bird\n12016,cat\n12017,dog\n12018,ship\n12019,truck\n12020,cat\n12021,deer\n12022,dog\n12023,airplane\n12024,truck\n12025,deer\n12026,deer\n12027,cat\n12028,horse\n12029,horse\n12030,ship\n12031,automobile\n12032,horse\n12033,airplane\n12034,dog\n12035,airplane\n12036,bird\n12037,horse\n12038,ship\n12039,frog\n12040,horse\n12041,automobile\n12042,dog\n12043,automobile\n12044,airplane\n12045,deer\n12046,frog\n12047,horse\n12048,deer\n12049,bird\n12050,cat\n12051,cat\n12052,airplane\n12053,cat\n12054,cat\n12055,dog\n12056,truck\n12057,dog\n12058,airplane\n12059,deer\n12060,truck\n12061,ship\n12062,deer\n12063,bird\n12064,ship\n12065,horse\n12066,airplane\n12067,truck\n12068,airplane\n12069,truck\n12070,deer\n12071,airplane\n12072,horse\n12073,truck\n12074,horse\n12075,deer\n12076,deer\n12077,dog\n12078,dog\n12079,airplane\n12080,horse\n12081,dog\n12082,ship\n12083,horse\n12084,automobile\n12085,horse\n12086,deer\n12087,airplane\n12088,automobile\n12089,airplane\n12090,dog\n12091,horse\n12092,deer\n12093,airplane\n12094,ship\n12095,horse\n12096,dog\n12097,truck\n12098,horse\n12099,ship\n12100,cat\n12101,automobile\n12102,bird\n12103,frog\n12104,cat\n12105,deer\n12106,airplane\n12107,ship\n12108,cat\n12109,frog\n12110,horse\n12111,bird\n12112,automobile\n12113,deer\n12114,frog\n12115,automobile\n12116,automobile\n12117,ship\n12118,dog\n12119,deer\n12120,horse\n12121,horse\n12122,airplane\n12123,dog\n12124,truck\n12125,ship\n12126,automobile\n12127,frog\n12128,frog\n12129,dog\n12130,deer\n12131,truck\n12132,automobile\n12133,automobile\n12134,deer\n12135,cat\n12136,deer\n12137,airplane\n12138,ship\n12139,cat\n12140,truck\n12141,ship\n12142,bird\n12143,ship\n12144,deer\n12145,dog\n12146,deer\n12147,deer\n12148,airplane\n12149,cat\n12150,frog\n12151,frog\n12152,truck\n12153,frog\n12154,deer\n12155,horse\n12156,bird\n12157,bird\n12158,airplane\n12159,deer\n12160,frog\n12161,cat\n12162,cat\n12163,ship\n12164,bird\n12165,deer\n12166,bird\n12167,bird\n12168,truck\n12169,frog\n12170,truck\n12171,bird\n12172,deer\n12173,cat\n12174,cat\n12175,deer\n12176,airplane\n12177,deer\n12178,horse\n12179,truck\n12180,bird\n12181,dog\n12182,horse\n12183,truck\n12184,automobile\n12185,airplane\n12186,deer\n12187,dog\n12188,cat\n12189,cat\n12190,automobile\n12191,frog\n12192,cat\n12193,dog\n12194,deer\n12195,cat\n12196,cat\n12197,dog\n12198,dog\n12199,frog\n12200,truck\n12201,airplane\n12202,deer\n12203,frog\n12204,horse\n12205,deer\n12206,ship\n12207,deer\n12208,cat\n12209,dog\n12210,automobile\n12211,deer\n12212,horse\n12213,frog\n12214,airplane\n12215,horse\n12216,truck\n12217,deer\n12218,dog\n12219,cat\n12220,deer\n12221,deer\n12222,bird\n12223,frog\n12224,horse\n12225,dog\n12226,ship\n12227,deer\n12228,dog\n12229,cat\n12230,deer\n12231,airplane\n12232,cat\n12233,dog\n12234,horse\n12235,airplane\n12236,deer\n12237,airplane\n12238,truck\n12239,bird\n12240,ship\n12241,frog\n12242,airplane\n12243,bird\n12244,deer\n12245,cat\n12246,airplane\n12247,frog\n12248,truck\n12249,airplane\n12250,frog\n12251,cat\n12252,frog\n12253,frog\n12254,bird\n12255,deer\n12256,horse\n12257,horse\n12258,airplane\n12259,frog\n12260,frog\n12261,frog\n12262,frog\n12263,automobile\n12264,bird\n12265,ship\n12266,frog\n12267,bird\n12268,cat\n12269,cat\n12270,automobile\n12271,frog\n12272,frog\n12273,deer\n12274,frog\n12275,cat\n12276,dog\n12277,airplane\n12278,deer\n12279,frog\n12280,dog\n12281,dog\n12282,cat\n12283,dog\n12284,ship\n12285,horse\n12286,ship\n12287,cat\n12288,deer\n12289,bird\n12290,cat\n12291,deer\n12292,cat\n12293,automobile\n12294,automobile\n12295,deer\n12296,deer\n12297,automobile\n12298,airplane\n12299,airplane\n12300,frog\n12301,truck\n12302,horse\n12303,ship\n12304,airplane\n12305,dog\n12306,truck\n12307,cat\n12308,truck\n12309,ship\n12310,dog\n12311,automobile\n12312,airplane\n12313,deer\n12314,cat\n12315,dog\n12316,deer\n12317,cat\n12318,ship\n12319,deer\n12320,automobile\n12321,dog\n12322,horse\n12323,automobile\n12324,bird\n12325,deer\n12326,cat\n12327,ship\n12328,cat\n12329,horse\n12330,dog\n12331,cat\n12332,horse\n12333,truck\n12334,ship\n12335,ship\n12336,deer\n12337,horse\n12338,horse\n12339,bird\n12340,deer\n12341,bird\n12342,cat\n12343,automobile\n12344,bird\n12345,deer\n12346,bird\n12347,frog\n12348,bird\n12349,cat\n12350,frog\n12351,bird\n12352,truck\n12353,automobile\n12354,automobile\n12355,horse\n12356,bird\n12357,horse\n12358,frog\n12359,airplane\n12360,truck\n12361,dog\n12362,dog\n12363,deer\n12364,dog\n12365,automobile\n12366,cat\n12367,automobile\n12368,dog\n12369,dog\n12370,horse\n12371,deer\n12372,truck\n12373,automobile\n12374,horse\n12375,bird\n12376,deer\n12377,ship\n12378,frog\n12379,deer\n12380,deer\n12381,frog\n12382,airplane\n12383,dog\n12384,truck\n12385,cat\n12386,deer\n12387,dog\n12388,frog\n12389,deer\n12390,deer\n12391,dog\n12392,airplane\n12393,truck\n12394,truck\n12395,deer\n12396,cat\n12397,cat\n12398,automobile\n12399,frog\n12400,automobile\n12401,cat\n12402,frog\n12403,airplane\n12404,horse\n12405,deer\n12406,airplane\n12407,cat\n12408,horse\n12409,horse\n12410,frog\n12411,frog\n12412,cat\n12413,frog\n12414,airplane\n12415,bird\n12416,cat\n12417,cat\n12418,horse\n12419,dog\n12420,bird\n12421,truck\n12422,dog\n12423,cat\n12424,truck\n12425,bird\n12426,bird\n12427,frog\n12428,dog\n12429,truck\n12430,horse\n12431,horse\n12432,truck\n12433,frog\n12434,automobile\n12435,horse\n12436,automobile\n12437,cat\n12438,truck\n12439,bird\n12440,horse\n12441,cat\n12442,dog\n12443,bird\n12444,bird\n12445,frog\n12446,automobile\n12447,dog\n12448,horse\n12449,ship\n12450,airplane\n12451,dog\n12452,bird\n12453,dog\n12454,horse\n12455,frog\n12456,truck\n12457,horse\n12458,cat\n12459,airplane\n12460,frog\n12461,truck\n12462,cat\n12463,truck\n12464,automobile\n12465,ship\n12466,ship\n12467,cat\n12468,deer\n12469,frog\n12470,ship\n12471,cat\n12472,deer\n12473,airplane\n12474,dog\n12475,frog\n12476,automobile\n12477,frog\n12478,bird\n12479,ship\n12480,automobile\n12481,cat\n12482,dog\n12483,cat\n12484,deer\n12485,horse\n12486,bird\n12487,dog\n12488,horse\n12489,truck\n12490,deer\n12491,deer\n12492,airplane\n12493,deer\n12494,frog\n12495,truck\n12496,deer\n12497,airplane\n12498,automobile\n12499,frog\n12500,deer\n12501,cat\n12502,dog\n12503,ship\n12504,airplane\n12505,truck\n12506,deer\n12507,truck\n12508,truck\n12509,frog\n12510,bird\n12511,dog\n12512,airplane\n12513,truck\n12514,bird\n12515,ship\n12516,airplane\n12517,airplane\n12518,airplane\n12519,ship\n12520,truck\n12521,ship\n12522,cat\n12523,automobile\n12524,automobile\n12525,deer\n12526,deer\n12527,cat\n12528,bird\n12529,dog\n12530,airplane\n12531,airplane\n12532,horse\n12533,ship\n12534,horse\n12535,deer\n12536,deer\n12537,horse\n12538,ship\n12539,frog\n12540,airplane\n12541,cat\n12542,automobile\n12543,truck\n12544,deer\n12545,ship\n12546,deer\n12547,dog\n12548,frog\n12549,ship\n12550,ship\n12551,truck\n12552,horse\n12553,dog\n12554,cat\n12555,deer\n12556,automobile\n12557,bird\n12558,deer\n12559,bird\n12560,horse\n12561,horse\n12562,airplane\n12563,automobile\n12564,cat\n12565,cat\n12566,dog\n12567,cat\n12568,cat\n12569,cat\n12570,frog\n12571,horse\n12572,dog\n12573,horse\n12574,truck\n12575,ship\n12576,automobile\n12577,cat\n12578,frog\n12579,ship\n12580,frog\n12581,frog\n12582,dog\n12583,truck\n12584,truck\n12585,deer\n12586,frog\n12587,bird\n12588,frog\n12589,horse\n12590,automobile\n12591,ship\n12592,cat\n12593,truck\n12594,deer\n12595,deer\n12596,airplane\n12597,horse\n12598,airplane\n12599,automobile\n12600,truck\n12601,cat\n12602,automobile\n12603,cat\n12604,deer\n12605,cat\n12606,cat\n12607,bird\n12608,bird\n12609,frog\n12610,cat\n12611,frog\n12612,dog\n12613,frog\n12614,cat\n12615,frog\n12616,frog\n12617,horse\n12618,deer\n12619,dog\n12620,frog\n12621,airplane\n12622,frog\n12623,cat\n12624,dog\n12625,automobile\n12626,dog\n12627,airplane\n12628,cat\n12629,ship\n12630,deer\n12631,cat\n12632,deer\n12633,horse\n12634,dog\n12635,airplane\n12636,cat\n12637,frog\n12638,cat\n12639,automobile\n12640,ship\n12641,frog\n12642,cat\n12643,airplane\n12644,airplane\n12645,frog\n12646,deer\n12647,dog\n12648,frog\n12649,horse\n12650,horse\n12651,deer\n12652,bird\n12653,automobile\n12654,truck\n12655,truck\n12656,cat\n12657,deer\n12658,ship\n12659,truck\n12660,truck\n12661,airplane\n12662,dog\n12663,bird\n12664,frog\n12665,cat\n12666,bird\n12667,truck\n12668,deer\n12669,bird\n12670,truck\n12671,ship\n12672,horse\n12673,cat\n12674,dog\n12675,horse\n12676,deer\n12677,airplane\n12678,airplane\n12679,automobile\n12680,deer\n12681,automobile\n12682,ship\n12683,ship\n12684,dog\n12685,truck\n12686,automobile\n12687,dog\n12688,airplane\n12689,cat\n12690,deer\n12691,automobile\n12692,horse\n12693,ship\n12694,cat\n12695,airplane\n12696,frog\n12697,horse\n12698,horse\n12699,truck\n12700,cat\n12701,cat\n12702,cat\n12703,deer\n12704,dog\n12705,truck\n12706,automobile\n12707,cat\n12708,deer\n12709,bird\n12710,bird\n12711,deer\n12712,bird\n12713,horse\n12714,dog\n12715,horse\n12716,truck\n12717,ship\n12718,horse\n12719,bird\n12720,automobile\n12721,deer\n12722,dog\n12723,cat\n12724,horse\n12725,dog\n12726,deer\n12727,bird\n12728,ship\n12729,dog\n12730,airplane\n12731,bird\n12732,ship\n12733,truck\n12734,deer\n12735,deer\n12736,automobile\n12737,automobile\n12738,deer\n12739,frog\n12740,bird\n12741,truck\n12742,automobile\n12743,dog\n12744,automobile\n12745,deer\n12746,frog\n12747,dog\n12748,deer\n12749,ship\n12750,airplane\n12751,truck\n12752,bird\n12753,truck\n12754,truck\n12755,horse\n12756,dog\n12757,ship\n12758,ship\n12759,deer\n12760,automobile\n12761,horse\n12762,cat\n12763,truck\n12764,automobile\n12765,frog\n12766,cat\n12767,deer\n12768,bird\n12769,truck\n12770,automobile\n12771,bird\n12772,cat\n12773,dog\n12774,dog\n12775,truck\n12776,dog\n12777,dog\n12778,cat\n12779,deer\n12780,airplane\n12781,horse\n12782,dog\n12783,dog\n12784,airplane\n12785,airplane\n12786,cat\n12787,deer\n12788,truck\n12789,horse\n12790,bird\n12791,cat\n12792,deer\n12793,airplane\n12794,dog\n12795,airplane\n12796,frog\n12797,dog\n12798,truck\n12799,cat\n12800,deer\n12801,dog\n12802,bird\n12803,horse\n12804,ship\n12805,deer\n12806,frog\n12807,bird\n12808,airplane\n12809,dog\n12810,deer\n12811,bird\n12812,cat\n12813,airplane\n12814,airplane\n12815,airplane\n12816,deer\n12817,truck\n12818,deer\n12819,deer\n12820,frog\n12821,cat\n12822,bird\n12823,ship\n12824,deer\n12825,cat\n12826,frog\n12827,deer\n12828,truck\n12829,frog\n12830,airplane\n12831,cat\n12832,truck\n12833,automobile\n12834,truck\n12835,cat\n12836,cat\n12837,automobile\n12838,automobile\n12839,cat\n12840,airplane\n12841,dog\n12842,truck\n12843,dog\n12844,frog\n12845,cat\n12846,dog\n12847,dog\n12848,deer\n12849,cat\n12850,deer\n12851,cat\n12852,frog\n12853,cat\n12854,airplane\n12855,deer\n12856,airplane\n12857,frog\n12858,frog\n12859,truck\n12860,bird\n12861,dog\n12862,cat\n12863,truck\n12864,automobile\n12865,ship\n12866,automobile\n12867,horse\n12868,dog\n12869,frog\n12870,cat\n12871,ship\n12872,automobile\n12873,dog\n12874,bird\n12875,cat\n12876,horse\n12877,automobile\n12878,automobile\n12879,ship\n12880,bird\n12881,airplane\n12882,automobile\n12883,airplane\n12884,frog\n12885,horse\n12886,deer\n12887,deer\n12888,bird\n12889,frog\n12890,deer\n12891,bird\n12892,truck\n12893,ship\n12894,cat\n12895,bird\n12896,airplane\n12897,airplane\n12898,deer\n12899,bird\n12900,deer\n12901,cat\n12902,dog\n12903,automobile\n12904,bird\n12905,frog\n12906,cat\n12907,bird\n12908,bird\n12909,ship\n12910,truck\n12911,truck\n12912,airplane\n12913,cat\n12914,frog\n12915,deer\n12916,horse\n12917,cat\n12918,deer\n12919,ship\n12920,ship\n12921,dog\n12922,ship\n12923,automobile\n12924,cat\n12925,truck\n12926,horse\n12927,cat\n12928,ship\n12929,truck\n12930,deer\n12931,cat\n12932,airplane\n12933,cat\n12934,horse\n12935,frog\n12936,frog\n12937,deer\n12938,bird\n12939,horse\n12940,cat\n12941,bird\n12942,bird\n12943,frog\n12944,dog\n12945,frog\n12946,truck\n12947,frog\n12948,dog\n12949,frog\n12950,cat\n12951,deer\n12952,bird\n12953,automobile\n12954,frog\n12955,automobile\n12956,bird\n12957,deer\n12958,deer\n12959,ship\n12960,cat\n12961,cat\n12962,frog\n12963,cat\n12964,frog\n12965,deer\n12966,cat\n12967,ship\n12968,dog\n12969,airplane\n12970,truck\n12971,horse\n12972,bird\n12973,automobile\n12974,frog\n12975,airplane\n12976,truck\n12977,dog\n12978,dog\n12979,deer\n12980,horse\n12981,cat\n12982,airplane\n12983,ship\n12984,horse\n12985,truck\n12986,dog\n12987,airplane\n12988,horse\n12989,airplane\n12990,automobile\n12991,dog\n12992,deer\n12993,bird\n12994,deer\n12995,cat\n12996,ship\n12997,airplane\n12998,bird\n12999,airplane\n13000,cat\n13001,cat\n13002,dog\n13003,automobile\n13004,dog\n13005,horse\n13006,bird\n13007,horse\n13008,truck\n13009,airplane\n13010,deer\n13011,deer\n13012,cat\n13013,airplane\n13014,ship\n13015,ship\n13016,ship\n13017,truck\n13018,cat\n13019,deer\n13020,cat\n13021,deer\n13022,ship\n13023,deer\n13024,bird\n13025,dog\n13026,dog\n13027,bird\n13028,automobile\n13029,bird\n13030,ship\n13031,horse\n13032,truck\n13033,automobile\n13034,automobile\n13035,cat\n13036,automobile\n13037,bird\n13038,cat\n13039,ship\n13040,horse\n13041,ship\n13042,deer\n13043,frog\n13044,frog\n13045,airplane\n13046,airplane\n13047,frog\n13048,frog\n13049,deer\n13050,deer\n13051,airplane\n13052,deer\n13053,horse\n13054,deer\n13055,frog\n13056,automobile\n13057,horse\n13058,deer\n13059,bird\n13060,bird\n13061,airplane\n13062,deer\n13063,frog\n13064,dog\n13065,dog\n13066,truck\n13067,cat\n13068,dog\n13069,bird\n13070,horse\n13071,bird\n13072,horse\n13073,frog\n13074,horse\n13075,horse\n13076,deer\n13077,dog\n13078,horse\n13079,frog\n13080,truck\n13081,truck\n13082,bird\n13083,horse\n13084,bird\n13085,cat\n13086,cat\n13087,automobile\n13088,frog\n13089,truck\n13090,cat\n13091,cat\n13092,dog\n13093,bird\n13094,truck\n13095,automobile\n13096,frog\n13097,airplane\n13098,truck\n13099,frog\n13100,airplane\n13101,cat\n13102,airplane\n13103,deer\n13104,ship\n13105,horse\n13106,airplane\n13107,dog\n13108,dog\n13109,dog\n13110,truck\n13111,cat\n13112,horse\n13113,airplane\n13114,bird\n13115,horse\n13116,cat\n13117,truck\n13118,deer\n13119,dog\n13120,cat\n13121,dog\n13122,airplane\n13123,deer\n13124,deer\n13125,frog\n13126,automobile\n13127,deer\n13128,truck\n13129,horse\n13130,cat\n13131,cat\n13132,cat\n13133,automobile\n13134,automobile\n13135,automobile\n13136,deer\n13137,airplane\n13138,deer\n13139,airplane\n13140,bird\n13141,bird\n13142,ship\n13143,bird\n13144,dog\n13145,airplane\n13146,truck\n13147,airplane\n13148,cat\n13149,dog\n13150,truck\n13151,automobile\n13152,cat\n13153,bird\n13154,deer\n13155,deer\n13156,automobile\n13157,cat\n13158,horse\n13159,cat\n13160,ship\n13161,automobile\n13162,airplane\n13163,automobile\n13164,horse\n13165,bird\n13166,dog\n13167,airplane\n13168,cat\n13169,horse\n13170,ship\n13171,deer\n13172,horse\n13173,horse\n13174,frog\n13175,airplane\n13176,dog\n13177,airplane\n13178,bird\n13179,bird\n13180,deer\n13181,truck\n13182,ship\n13183,deer\n13184,dog\n13185,truck\n13186,bird\n13187,deer\n13188,truck\n13189,cat\n13190,automobile\n13191,dog\n13192,ship\n13193,cat\n13194,deer\n13195,frog\n13196,automobile\n13197,automobile\n13198,horse\n13199,horse\n13200,horse\n13201,ship\n13202,frog\n13203,bird\n13204,truck\n13205,cat\n13206,dog\n13207,automobile\n13208,deer\n13209,dog\n13210,automobile\n13211,dog\n13212,bird\n13213,dog\n13214,frog\n13215,deer\n13216,deer\n13217,automobile\n13218,dog\n13219,cat\n13220,ship\n13221,truck\n13222,airplane\n13223,airplane\n13224,truck\n13225,deer\n13226,frog\n13227,airplane\n13228,dog\n13229,bird\n13230,ship\n13231,bird\n13232,bird\n13233,automobile\n13234,truck\n13235,frog\n13236,dog\n13237,ship\n13238,cat\n13239,airplane\n13240,truck\n13241,deer\n13242,truck\n13243,horse\n13244,automobile\n13245,frog\n13246,truck\n13247,dog\n13248,truck\n13249,frog\n13250,frog\n13251,truck\n13252,deer\n13253,automobile\n13254,ship\n13255,dog\n13256,deer\n13257,horse\n13258,deer\n13259,truck\n13260,deer\n13261,deer\n13262,deer\n13263,truck\n13264,airplane\n13265,dog\n13266,truck\n13267,truck\n13268,truck\n13269,cat\n13270,horse\n13271,truck\n13272,horse\n13273,airplane\n13274,ship\n13275,dog\n13276,airplane\n13277,horse\n13278,horse\n13279,cat\n13280,cat\n13281,truck\n13282,airplane\n13283,frog\n13284,cat\n13285,frog\n13286,horse\n13287,horse\n13288,automobile\n13289,deer\n13290,frog\n13291,airplane\n13292,deer\n13293,cat\n13294,deer\n13295,dog\n13296,horse\n13297,dog\n13298,airplane\n13299,automobile\n13300,deer\n13301,frog\n13302,airplane\n13303,airplane\n13304,frog\n13305,horse\n13306,cat\n13307,horse\n13308,ship\n13309,airplane\n13310,horse\n13311,deer\n13312,cat\n13313,bird\n13314,airplane\n13315,ship\n13316,deer\n13317,frog\n13318,cat\n13319,automobile\n13320,deer\n13321,truck\n13322,airplane\n13323,dog\n13324,bird\n13325,airplane\n13326,cat\n13327,frog\n13328,truck\n13329,dog\n13330,truck\n13331,cat\n13332,frog\n13333,airplane\n13334,airplane\n13335,cat\n13336,ship\n13337,dog\n13338,cat\n13339,horse\n13340,bird\n13341,deer\n13342,automobile\n13343,deer\n13344,truck\n13345,frog\n13346,horse\n13347,horse\n13348,deer\n13349,cat\n13350,airplane\n13351,airplane\n13352,ship\n13353,bird\n13354,truck\n13355,dog\n13356,deer\n13357,cat\n13358,cat\n13359,automobile\n13360,cat\n13361,truck\n13362,automobile\n13363,dog\n13364,ship\n13365,cat\n13366,bird\n13367,bird\n13368,bird\n13369,truck\n13370,deer\n13371,deer\n13372,automobile\n13373,horse\n13374,frog\n13375,airplane\n13376,cat\n13377,cat\n13378,bird\n13379,cat\n13380,horse\n13381,bird\n13382,horse\n13383,cat\n13384,horse\n13385,frog\n13386,bird\n13387,cat\n13388,deer\n13389,automobile\n13390,deer\n13391,cat\n13392,ship\n13393,cat\n13394,truck\n13395,automobile\n13396,dog\n13397,horse\n13398,truck\n13399,dog\n13400,horse\n13401,airplane\n13402,deer\n13403,airplane\n13404,dog\n13405,frog\n13406,deer\n13407,airplane\n13408,bird\n13409,deer\n13410,ship\n13411,horse\n13412,frog\n13413,cat\n13414,deer\n13415,airplane\n13416,cat\n13417,cat\n13418,deer\n13419,truck\n13420,cat\n13421,ship\n13422,automobile\n13423,horse\n13424,horse\n13425,airplane\n13426,bird\n13427,automobile\n13428,truck\n13429,horse\n13430,cat\n13431,dog\n13432,cat\n13433,deer\n13434,cat\n13435,truck\n13436,frog\n13437,deer\n13438,automobile\n13439,truck\n13440,airplane\n13441,airplane\n13442,cat\n13443,ship\n13444,frog\n13445,truck\n13446,automobile\n13447,horse\n13448,dog\n13449,ship\n13450,airplane\n13451,truck\n13452,ship\n13453,deer\n13454,cat\n13455,deer\n13456,deer\n13457,ship\n13458,frog\n13459,deer\n13460,frog\n13461,dog\n13462,cat\n13463,cat\n13464,deer\n13465,dog\n13466,cat\n13467,truck\n13468,deer\n13469,deer\n13470,automobile\n13471,airplane\n13472,frog\n13473,truck\n13474,cat\n13475,bird\n13476,ship\n13477,airplane\n13478,horse\n13479,cat\n13480,truck\n13481,deer\n13482,bird\n13483,deer\n13484,cat\n13485,airplane\n13486,bird\n13487,deer\n13488,ship\n13489,bird\n13490,horse\n13491,truck\n13492,cat\n13493,horse\n13494,frog\n13495,truck\n13496,truck\n13497,bird\n13498,frog\n13499,airplane\n13500,dog\n13501,bird\n13502,ship\n13503,horse\n13504,horse\n13505,airplane\n13506,cat\n13507,dog\n13508,deer\n13509,cat\n13510,cat\n13511,horse\n13512,dog\n13513,frog\n13514,horse\n13515,truck\n13516,ship\n13517,cat\n13518,frog\n13519,cat\n13520,deer\n13521,airplane\n13522,dog\n13523,horse\n13524,cat\n13525,airplane\n13526,airplane\n13527,bird\n13528,airplane\n13529,bird\n13530,horse\n13531,cat\n13532,airplane\n13533,automobile\n13534,truck\n13535,frog\n13536,deer\n13537,dog\n13538,frog\n13539,horse\n13540,airplane\n13541,truck\n13542,ship\n13543,cat\n13544,deer\n13545,truck\n13546,automobile\n13547,dog\n13548,automobile\n13549,truck\n13550,cat\n13551,cat\n13552,deer\n13553,deer\n13554,horse\n13555,bird\n13556,bird\n13557,horse\n13558,dog\n13559,horse\n13560,ship\n13561,truck\n13562,bird\n13563,ship\n13564,dog\n13565,dog\n13566,frog\n13567,ship\n13568,frog\n13569,cat\n13570,frog\n13571,cat\n13572,bird\n13573,airplane\n13574,horse\n13575,cat\n13576,horse\n13577,dog\n13578,ship\n13579,frog\n13580,deer\n13581,frog\n13582,cat\n13583,bird\n13584,deer\n13585,frog\n13586,airplane\n13587,deer\n13588,horse\n13589,deer\n13590,frog\n13591,truck\n13592,ship\n13593,horse\n13594,ship\n13595,horse\n13596,automobile\n13597,frog\n13598,frog\n13599,cat\n13600,deer\n13601,bird\n13602,cat\n13603,ship\n13604,dog\n13605,horse\n13606,horse\n13607,cat\n13608,bird\n13609,bird\n13610,ship\n13611,cat\n13612,frog\n13613,airplane\n13614,cat\n13615,frog\n13616,dog\n13617,ship\n13618,frog\n13619,dog\n13620,truck\n13621,airplane\n13622,horse\n13623,cat\n13624,airplane\n13625,bird\n13626,frog\n13627,cat\n13628,airplane\n13629,deer\n13630,dog\n13631,horse\n13632,bird\n13633,bird\n13634,automobile\n13635,dog\n13636,horse\n13637,dog\n13638,ship\n13639,ship\n13640,bird\n13641,truck\n13642,truck\n13643,horse\n13644,cat\n13645,horse\n13646,horse\n13647,frog\n13648,bird\n13649,dog\n13650,automobile\n13651,horse\n13652,frog\n13653,cat\n13654,deer\n13655,truck\n13656,ship\n13657,automobile\n13658,dog\n13659,deer\n13660,ship\n13661,airplane\n13662,cat\n13663,horse\n13664,cat\n13665,truck\n13666,cat\n13667,bird\n13668,frog\n13669,dog\n13670,automobile\n13671,truck\n13672,cat\n13673,truck\n13674,deer\n13675,deer\n13676,ship\n13677,deer\n13678,airplane\n13679,truck\n13680,frog\n13681,dog\n13682,truck\n13683,frog\n13684,ship\n13685,bird\n13686,automobile\n13687,truck\n13688,automobile\n13689,airplane\n13690,airplane\n13691,deer\n13692,truck\n13693,horse\n13694,frog\n13695,airplane\n13696,automobile\n13697,cat\n13698,horse\n13699,deer\n13700,horse\n13701,truck\n13702,deer\n13703,automobile\n13704,automobile\n13705,cat\n13706,horse\n13707,truck\n13708,cat\n13709,dog\n13710,cat\n13711,deer\n13712,ship\n13713,truck\n13714,bird\n13715,airplane\n13716,ship\n13717,automobile\n13718,cat\n13719,ship\n13720,horse\n13721,cat\n13722,cat\n13723,frog\n13724,deer\n13725,truck\n13726,ship\n13727,deer\n13728,cat\n13729,airplane\n13730,deer\n13731,horse\n13732,automobile\n13733,frog\n13734,cat\n13735,deer\n13736,dog\n13737,dog\n13738,deer\n13739,bird\n13740,airplane\n13741,truck\n13742,frog\n13743,truck\n13744,ship\n13745,dog\n13746,airplane\n13747,deer\n13748,bird\n13749,frog\n13750,deer\n13751,automobile\n13752,ship\n13753,cat\n13754,airplane\n13755,bird\n13756,deer\n13757,bird\n13758,automobile\n13759,horse\n13760,frog\n13761,truck\n13762,airplane\n13763,airplane\n13764,truck\n13765,frog\n13766,ship\n13767,frog\n13768,cat\n13769,truck\n13770,deer\n13771,horse\n13772,automobile\n13773,cat\n13774,frog\n13775,cat\n13776,frog\n13777,cat\n13778,deer\n13779,dog\n13780,dog\n13781,deer\n13782,dog\n13783,ship\n13784,ship\n13785,truck\n13786,airplane\n13787,dog\n13788,bird\n13789,airplane\n13790,truck\n13791,truck\n13792,airplane\n13793,automobile\n13794,cat\n13795,truck\n13796,cat\n13797,truck\n13798,deer\n13799,automobile\n13800,deer\n13801,cat\n13802,automobile\n13803,frog\n13804,cat\n13805,bird\n13806,horse\n13807,airplane\n13808,dog\n13809,frog\n13810,frog\n13811,automobile\n13812,truck\n13813,deer\n13814,deer\n13815,deer\n13816,cat\n13817,cat\n13818,dog\n13819,frog\n13820,deer\n13821,airplane\n13822,frog\n13823,truck\n13824,automobile\n13825,horse\n13826,frog\n13827,truck\n13828,deer\n13829,dog\n13830,truck\n13831,cat\n13832,frog\n13833,cat\n13834,deer\n13835,ship\n13836,automobile\n13837,automobile\n13838,cat\n13839,horse\n13840,horse\n13841,deer\n13842,horse\n13843,cat\n13844,bird\n13845,horse\n13846,deer\n13847,truck\n13848,bird\n13849,airplane\n13850,truck\n13851,automobile\n13852,dog\n13853,automobile\n13854,horse\n13855,truck\n13856,bird\n13857,deer\n13858,frog\n13859,ship\n13860,automobile\n13861,cat\n13862,cat\n13863,horse\n13864,dog\n13865,airplane\n13866,dog\n13867,cat\n13868,deer\n13869,bird\n13870,deer\n13871,airplane\n13872,cat\n13873,bird\n13874,automobile\n13875,bird\n13876,cat\n13877,cat\n13878,deer\n13879,automobile\n13880,cat\n13881,truck\n13882,frog\n13883,bird\n13884,dog\n13885,dog\n13886,horse\n13887,dog\n13888,ship\n13889,deer\n13890,cat\n13891,truck\n13892,airplane\n13893,cat\n13894,deer\n13895,deer\n13896,deer\n13897,cat\n13898,deer\n13899,automobile\n13900,truck\n13901,cat\n13902,deer\n13903,horse\n13904,frog\n13905,dog\n13906,frog\n13907,ship\n13908,horse\n13909,airplane\n13910,cat\n13911,dog\n13912,ship\n13913,bird\n13914,deer\n13915,frog\n13916,horse\n13917,airplane\n13918,truck\n13919,truck\n13920,cat\n13921,cat\n13922,bird\n13923,airplane\n13924,automobile\n13925,bird\n13926,ship\n13927,deer\n13928,automobile\n13929,dog\n13930,frog\n13931,dog\n13932,frog\n13933,cat\n13934,horse\n13935,automobile\n13936,frog\n13937,ship\n13938,truck\n13939,cat\n13940,horse\n13941,cat\n13942,dog\n13943,airplane\n13944,automobile\n13945,deer\n13946,cat\n13947,ship\n13948,ship\n13949,automobile\n13950,frog\n13951,truck\n13952,truck\n13953,frog\n13954,dog\n13955,truck\n13956,frog\n13957,deer\n13958,truck\n13959,dog\n13960,cat\n13961,horse\n13962,bird\n13963,cat\n13964,automobile\n13965,cat\n13966,horse\n13967,horse\n13968,airplane\n13969,truck\n13970,truck\n13971,deer\n13972,cat\n13973,deer\n13974,frog\n13975,truck\n13976,frog\n13977,truck\n13978,bird\n13979,automobile\n13980,horse\n13981,horse\n13982,truck\n13983,ship\n13984,automobile\n13985,cat\n13986,horse\n13987,cat\n13988,frog\n13989,frog\n13990,truck\n13991,horse\n13992,truck\n13993,airplane\n13994,frog\n13995,truck\n13996,cat\n13997,cat\n13998,airplane\n13999,deer\n14000,horse\n14001,automobile\n14002,dog\n14003,horse\n14004,dog\n14005,automobile\n14006,automobile\n14007,airplane\n14008,cat\n14009,frog\n14010,bird\n14011,cat\n14012,airplane\n14013,automobile\n14014,truck\n14015,deer\n14016,ship\n14017,cat\n14018,truck\n14019,airplane\n14020,ship\n14021,bird\n14022,dog\n14023,cat\n14024,horse\n14025,airplane\n14026,truck\n14027,automobile\n14028,deer\n14029,cat\n14030,truck\n14031,ship\n14032,truck\n14033,ship\n14034,frog\n14035,bird\n14036,airplane\n14037,deer\n14038,airplane\n14039,frog\n14040,deer\n14041,automobile\n14042,cat\n14043,frog\n14044,bird\n14045,truck\n14046,deer\n14047,deer\n14048,automobile\n14049,airplane\n14050,dog\n14051,horse\n14052,cat\n14053,dog\n14054,airplane\n14055,horse\n14056,automobile\n14057,dog\n14058,truck\n14059,ship\n14060,ship\n14061,dog\n14062,dog\n14063,horse\n14064,dog\n14065,bird\n14066,deer\n14067,bird\n14068,ship\n14069,automobile\n14070,cat\n14071,frog\n14072,truck\n14073,ship\n14074,airplane\n14075,bird\n14076,frog\n14077,airplane\n14078,horse\n14079,automobile\n14080,cat\n14081,bird\n14082,ship\n14083,cat\n14084,truck\n14085,airplane\n14086,dog\n14087,cat\n14088,horse\n14089,frog\n14090,ship\n14091,cat\n14092,cat\n14093,truck\n14094,cat\n14095,deer\n14096,truck\n14097,deer\n14098,automobile\n14099,airplane\n14100,horse\n14101,automobile\n14102,cat\n14103,cat\n14104,ship\n14105,ship\n14106,cat\n14107,truck\n14108,bird\n14109,horse\n14110,frog\n14111,horse\n14112,cat\n14113,horse\n14114,horse\n14115,truck\n14116,truck\n14117,deer\n14118,horse\n14119,deer\n14120,automobile\n14121,horse\n14122,ship\n14123,truck\n14124,frog\n14125,cat\n14126,frog\n14127,horse\n14128,dog\n14129,dog\n14130,horse\n14131,frog\n14132,dog\n14133,airplane\n14134,ship\n14135,dog\n14136,cat\n14137,deer\n14138,dog\n14139,horse\n14140,ship\n14141,bird\n14142,truck\n14143,deer\n14144,airplane\n14145,truck\n14146,frog\n14147,cat\n14148,bird\n14149,truck\n14150,horse\n14151,dog\n14152,truck\n14153,ship\n14154,cat\n14155,truck\n14156,truck\n14157,frog\n14158,deer\n14159,bird\n14160,bird\n14161,truck\n14162,cat\n14163,airplane\n14164,cat\n14165,airplane\n14166,ship\n14167,bird\n14168,automobile\n14169,cat\n14170,dog\n14171,cat\n14172,cat\n14173,automobile\n14174,horse\n14175,cat\n14176,truck\n14177,cat\n14178,bird\n14179,ship\n14180,deer\n14181,dog\n14182,cat\n14183,deer\n14184,deer\n14185,bird\n14186,truck\n14187,frog\n14188,frog\n14189,cat\n14190,airplane\n14191,deer\n14192,bird\n14193,airplane\n14194,cat\n14195,horse\n14196,cat\n14197,frog\n14198,horse\n14199,deer\n14200,automobile\n14201,ship\n14202,truck\n14203,dog\n14204,dog\n14205,automobile\n14206,frog\n14207,horse\n14208,deer\n14209,horse\n14210,horse\n14211,airplane\n14212,bird\n14213,frog\n14214,bird\n14215,horse\n14216,airplane\n14217,cat\n14218,dog\n14219,bird\n14220,cat\n14221,horse\n14222,cat\n14223,ship\n14224,truck\n14225,deer\n14226,ship\n14227,truck\n14228,ship\n14229,deer\n14230,horse\n14231,deer\n14232,ship\n14233,frog\n14234,truck\n14235,frog\n14236,deer\n14237,deer\n14238,truck\n14239,cat\n14240,ship\n14241,airplane\n14242,horse\n14243,dog\n14244,bird\n14245,dog\n14246,cat\n14247,horse\n14248,deer\n14249,dog\n14250,ship\n14251,truck\n14252,horse\n14253,bird\n14254,truck\n14255,ship\n14256,deer\n14257,cat\n14258,deer\n14259,frog\n14260,automobile\n14261,automobile\n14262,airplane\n14263,dog\n14264,ship\n14265,cat\n14266,cat\n14267,ship\n14268,ship\n14269,truck\n14270,bird\n14271,ship\n14272,deer\n14273,truck\n14274,dog\n14275,airplane\n14276,frog\n14277,cat\n14278,truck\n14279,truck\n14280,horse\n14281,deer\n14282,deer\n14283,cat\n14284,ship\n14285,automobile\n14286,cat\n14287,airplane\n14288,horse\n14289,cat\n14290,deer\n14291,cat\n14292,deer\n14293,horse\n14294,bird\n14295,airplane\n14296,cat\n14297,frog\n14298,cat\n14299,horse\n14300,horse\n14301,truck\n14302,dog\n14303,horse\n14304,airplane\n14305,bird\n14306,deer\n14307,dog\n14308,airplane\n14309,bird\n14310,horse\n14311,bird\n14312,frog\n14313,frog\n14314,deer\n14315,ship\n14316,cat\n14317,dog\n14318,horse\n14319,truck\n14320,bird\n14321,bird\n14322,ship\n14323,deer\n14324,ship\n14325,bird\n14326,automobile\n14327,cat\n14328,deer\n14329,automobile\n14330,dog\n14331,automobile\n14332,dog\n14333,horse\n14334,horse\n14335,truck\n14336,bird\n14337,cat\n14338,deer\n14339,deer\n14340,bird\n14341,dog\n14342,automobile\n14343,bird\n14344,truck\n14345,horse\n14346,truck\n14347,frog\n14348,frog\n14349,ship\n14350,cat\n14351,airplane\n14352,truck\n14353,automobile\n14354,horse\n14355,frog\n14356,ship\n14357,horse\n14358,horse\n14359,bird\n14360,frog\n14361,dog\n14362,frog\n14363,airplane\n14364,bird\n14365,ship\n14366,bird\n14367,cat\n14368,horse\n14369,dog\n14370,horse\n14371,bird\n14372,ship\n14373,dog\n14374,automobile\n14375,bird\n14376,frog\n14377,airplane\n14378,deer\n14379,bird\n14380,truck\n14381,airplane\n14382,cat\n14383,cat\n14384,airplane\n14385,truck\n14386,bird\n14387,horse\n14388,cat\n14389,deer\n14390,dog\n14391,horse\n14392,cat\n14393,bird\n14394,airplane\n14395,ship\n14396,truck\n14397,bird\n14398,deer\n14399,bird\n14400,deer\n14401,ship\n14402,frog\n14403,deer\n14404,ship\n14405,horse\n14406,dog\n14407,airplane\n14408,truck\n14409,airplane\n14410,ship\n14411,horse\n14412,deer\n14413,bird\n14414,bird\n14415,bird\n14416,bird\n14417,automobile\n14418,dog\n14419,dog\n14420,cat\n14421,deer\n14422,frog\n14423,frog\n14424,deer\n14425,truck\n14426,horse\n14427,deer\n14428,dog\n14429,horse\n14430,dog\n14431,deer\n14432,frog\n14433,deer\n14434,truck\n14435,dog\n14436,deer\n14437,horse\n14438,airplane\n14439,truck\n14440,automobile\n14441,ship\n14442,ship\n14443,automobile\n14444,frog\n14445,horse\n14446,bird\n14447,automobile\n14448,horse\n14449,frog\n14450,airplane\n14451,deer\n14452,frog\n14453,automobile\n14454,truck\n14455,ship\n14456,airplane\n14457,frog\n14458,frog\n14459,automobile\n14460,bird\n14461,truck\n14462,automobile\n14463,truck\n14464,ship\n14465,cat\n14466,ship\n14467,frog\n14468,cat\n14469,deer\n14470,cat\n14471,dog\n14472,deer\n14473,horse\n14474,deer\n14475,bird\n14476,dog\n14477,truck\n14478,truck\n14479,dog\n14480,dog\n14481,bird\n14482,cat\n14483,truck\n14484,airplane\n14485,automobile\n14486,truck\n14487,deer\n14488,cat\n14489,bird\n14490,dog\n14491,cat\n14492,frog\n14493,deer\n14494,cat\n14495,deer\n14496,truck\n14497,cat\n14498,horse\n14499,dog\n14500,airplane\n14501,horse\n14502,truck\n14503,automobile\n14504,frog\n14505,deer\n14506,airplane\n14507,deer\n14508,ship\n14509,cat\n14510,automobile\n14511,ship\n14512,ship\n14513,frog\n14514,ship\n14515,cat\n14516,dog\n14517,horse\n14518,dog\n14519,ship\n14520,truck\n14521,deer\n14522,dog\n14523,cat\n14524,cat\n14525,frog\n14526,truck\n14527,horse\n14528,deer\n14529,frog\n14530,frog\n14531,horse\n14532,truck\n14533,cat\n14534,airplane\n14535,deer\n14536,automobile\n14537,truck\n14538,ship\n14539,airplane\n14540,ship\n14541,dog\n14542,truck\n14543,airplane\n14544,truck\n14545,deer\n14546,dog\n14547,cat\n14548,truck\n14549,airplane\n14550,dog\n14551,airplane\n14552,ship\n14553,cat\n14554,cat\n14555,dog\n14556,ship\n14557,truck\n14558,bird\n14559,bird\n14560,cat\n14561,ship\n14562,ship\n14563,ship\n14564,bird\n14565,frog\n14566,automobile\n14567,frog\n14568,cat\n14569,frog\n14570,deer\n14571,cat\n14572,dog\n14573,frog\n14574,automobile\n14575,automobile\n14576,automobile\n14577,cat\n14578,cat\n14579,dog\n14580,bird\n14581,deer\n14582,cat\n14583,horse\n14584,ship\n14585,truck\n14586,frog\n14587,horse\n14588,bird\n14589,ship\n14590,frog\n14591,cat\n14592,dog\n14593,deer\n14594,bird\n14595,deer\n14596,ship\n14597,horse\n14598,bird\n14599,frog\n14600,cat\n14601,ship\n14602,ship\n14603,cat\n14604,bird\n14605,airplane\n14606,frog\n14607,dog\n14608,horse\n14609,truck\n14610,dog\n14611,horse\n14612,truck\n14613,frog\n14614,cat\n14615,horse\n14616,dog\n14617,horse\n14618,ship\n14619,horse\n14620,cat\n14621,automobile\n14622,truck\n14623,automobile\n14624,deer\n14625,deer\n14626,deer\n14627,horse\n14628,deer\n14629,cat\n14630,truck\n14631,airplane\n14632,cat\n14633,automobile\n14634,deer\n14635,bird\n14636,ship\n14637,horse\n14638,deer\n14639,ship\n14640,truck\n14641,cat\n14642,bird\n14643,frog\n14644,dog\n14645,frog\n14646,bird\n14647,bird\n14648,frog\n14649,frog\n14650,dog\n14651,dog\n14652,frog\n14653,horse\n14654,cat\n14655,automobile\n14656,cat\n14657,horse\n14658,frog\n14659,cat\n14660,automobile\n14661,automobile\n14662,dog\n14663,frog\n14664,airplane\n14665,dog\n14666,frog\n14667,deer\n14668,ship\n14669,airplane\n14670,ship\n14671,cat\n14672,horse\n14673,frog\n14674,airplane\n14675,frog\n14676,horse\n14677,truck\n14678,automobile\n14679,frog\n14680,cat\n14681,automobile\n14682,airplane\n14683,frog\n14684,frog\n14685,bird\n14686,cat\n14687,cat\n14688,ship\n14689,deer\n14690,frog\n14691,frog\n14692,bird\n14693,dog\n14694,cat\n14695,bird\n14696,bird\n14697,cat\n14698,dog\n14699,bird\n14700,deer\n14701,dog\n14702,horse\n14703,dog\n14704,horse\n14705,deer\n14706,horse\n14707,cat\n14708,deer\n14709,horse\n14710,truck\n14711,truck\n14712,dog\n14713,dog\n14714,frog\n14715,frog\n14716,airplane\n14717,airplane\n14718,horse\n14719,deer\n14720,ship\n14721,airplane\n14722,truck\n14723,cat\n14724,dog\n14725,deer\n14726,cat\n14727,airplane\n14728,ship\n14729,automobile\n14730,frog\n14731,frog\n14732,ship\n14733,ship\n14734,bird\n14735,dog\n14736,frog\n14737,airplane\n14738,truck\n14739,deer\n14740,ship\n14741,airplane\n14742,automobile\n14743,dog\n14744,bird\n14745,airplane\n14746,airplane\n14747,cat\n14748,ship\n14749,horse\n14750,ship\n14751,horse\n14752,ship\n14753,bird\n14754,deer\n14755,horse\n14756,ship\n14757,horse\n14758,bird\n14759,automobile\n14760,cat\n14761,frog\n14762,horse\n14763,bird\n14764,automobile\n14765,dog\n14766,deer\n14767,ship\n14768,deer\n14769,cat\n14770,ship\n14771,airplane\n14772,frog\n14773,ship\n14774,airplane\n14775,deer\n14776,ship\n14777,deer\n14778,cat\n14779,bird\n14780,horse\n14781,horse\n14782,frog\n14783,bird\n14784,dog\n14785,bird\n14786,dog\n14787,deer\n14788,frog\n14789,frog\n14790,automobile\n14791,truck\n14792,ship\n14793,ship\n14794,ship\n14795,dog\n14796,ship\n14797,deer\n14798,frog\n14799,truck\n14800,dog\n14801,dog\n14802,frog\n14803,dog\n14804,cat\n14805,airplane\n14806,bird\n14807,deer\n14808,cat\n14809,automobile\n14810,truck\n14811,deer\n14812,truck\n14813,bird\n14814,frog\n14815,dog\n14816,deer\n14817,deer\n14818,horse\n14819,truck\n14820,cat\n14821,truck\n14822,airplane\n14823,ship\n14824,automobile\n14825,frog\n14826,cat\n14827,cat\n14828,cat\n14829,ship\n14830,frog\n14831,ship\n14832,horse\n14833,airplane\n14834,bird\n14835,cat\n14836,frog\n14837,automobile\n14838,deer\n14839,automobile\n14840,frog\n14841,truck\n14842,airplane\n14843,dog\n14844,airplane\n14845,horse\n14846,cat\n14847,ship\n14848,airplane\n14849,horse\n14850,airplane\n14851,horse\n14852,horse\n14853,airplane\n14854,dog\n14855,horse\n14856,deer\n14857,truck\n14858,frog\n14859,airplane\n14860,automobile\n14861,bird\n14862,airplane\n14863,bird\n14864,airplane\n14865,deer\n14866,airplane\n14867,frog\n14868,cat\n14869,automobile\n14870,automobile\n14871,frog\n14872,bird\n14873,frog\n14874,deer\n14875,dog\n14876,deer\n14877,horse\n14878,bird\n14879,dog\n14880,automobile\n14881,bird\n14882,automobile\n14883,automobile\n14884,cat\n14885,cat\n14886,horse\n14887,dog\n14888,ship\n14889,bird\n14890,frog\n14891,deer\n14892,airplane\n14893,truck\n14894,automobile\n14895,frog\n14896,bird\n14897,ship\n14898,truck\n14899,dog\n14900,frog\n14901,cat\n14902,deer\n14903,horse\n14904,dog\n14905,cat\n14906,bird\n14907,automobile\n14908,frog\n14909,ship\n14910,horse\n14911,truck\n14912,automobile\n14913,horse\n14914,deer\n14915,ship\n14916,cat\n14917,horse\n14918,dog\n14919,airplane\n14920,cat\n14921,deer\n14922,dog\n14923,truck\n14924,airplane\n14925,truck\n14926,horse\n14927,horse\n14928,truck\n14929,ship\n14930,automobile\n14931,frog\n14932,deer\n14933,frog\n14934,frog\n14935,cat\n14936,bird\n14937,airplane\n14938,ship\n14939,horse\n14940,deer\n14941,airplane\n14942,dog\n14943,truck\n14944,automobile\n14945,dog\n14946,deer\n14947,bird\n14948,frog\n14949,truck\n14950,truck\n14951,horse\n14952,bird\n14953,airplane\n14954,horse\n14955,horse\n14956,dog\n14957,ship\n14958,truck\n14959,ship\n14960,cat\n14961,dog\n14962,dog\n14963,deer\n14964,cat\n14965,cat\n14966,horse\n14967,dog\n14968,cat\n14969,horse\n14970,deer\n14971,truck\n14972,frog\n14973,cat\n14974,bird\n14975,cat\n14976,dog\n14977,deer\n14978,dog\n14979,truck\n14980,frog\n14981,ship\n14982,automobile\n14983,dog\n14984,airplane\n14985,bird\n14986,ship\n14987,deer\n14988,cat\n14989,ship\n14990,deer\n14991,horse\n14992,ship\n14993,horse\n14994,automobile\n14995,truck\n14996,cat\n14997,ship\n14998,deer\n14999,frog\n15000,airplane\n15001,ship\n15002,deer\n15003,cat\n15004,ship\n15005,deer\n15006,deer\n15007,frog\n15008,horse\n15009,frog\n15010,frog\n15011,dog\n15012,horse\n15013,cat\n15014,horse\n15015,cat\n15016,deer\n15017,truck\n15018,dog\n15019,truck\n15020,ship\n15021,frog\n15022,frog\n15023,cat\n15024,horse\n15025,frog\n15026,frog\n15027,airplane\n15028,cat\n15029,truck\n15030,dog\n15031,airplane\n15032,airplane\n15033,cat\n15034,truck\n15035,deer\n15036,deer\n15037,airplane\n15038,cat\n15039,horse\n15040,truck\n15041,ship\n15042,dog\n15043,frog\n15044,airplane\n15045,automobile\n15046,cat\n15047,automobile\n15048,automobile\n15049,cat\n15050,cat\n15051,deer\n15052,automobile\n15053,automobile\n15054,airplane\n15055,cat\n15056,horse\n15057,deer\n15058,frog\n15059,automobile\n15060,frog\n15061,airplane\n15062,airplane\n15063,truck\n15064,dog\n15065,frog\n15066,bird\n15067,bird\n15068,dog\n15069,truck\n15070,frog\n15071,bird\n15072,automobile\n15073,dog\n15074,deer\n15075,bird\n15076,deer\n15077,cat\n15078,deer\n15079,frog\n15080,dog\n15081,frog\n15082,bird\n15083,frog\n15084,cat\n15085,automobile\n15086,bird\n15087,truck\n15088,horse\n15089,bird\n15090,frog\n15091,dog\n15092,automobile\n15093,dog\n15094,cat\n15095,bird\n15096,truck\n15097,deer\n15098,bird\n15099,deer\n15100,dog\n15101,automobile\n15102,horse\n15103,deer\n15104,ship\n15105,cat\n15106,truck\n15107,bird\n15108,airplane\n15109,bird\n15110,automobile\n15111,deer\n15112,cat\n15113,bird\n15114,frog\n15115,frog\n15116,horse\n15117,truck\n15118,airplane\n15119,frog\n15120,frog\n15121,automobile\n15122,ship\n15123,bird\n15124,airplane\n15125,deer\n15126,ship\n15127,ship\n15128,bird\n15129,airplane\n15130,bird\n15131,frog\n15132,deer\n15133,deer\n15134,ship\n15135,deer\n15136,airplane\n15137,bird\n15138,horse\n15139,truck\n15140,frog\n15141,bird\n15142,cat\n15143,bird\n15144,ship\n15145,deer\n15146,deer\n15147,deer\n15148,airplane\n15149,cat\n15150,dog\n15151,automobile\n15152,frog\n15153,automobile\n15154,airplane\n15155,truck\n15156,horse\n15157,airplane\n15158,bird\n15159,truck\n15160,cat\n15161,frog\n15162,horse\n15163,truck\n15164,dog\n15165,automobile\n15166,frog\n15167,deer\n15168,dog\n15169,frog\n15170,deer\n15171,frog\n15172,horse\n15173,ship\n15174,deer\n15175,truck\n15176,ship\n15177,deer\n15178,deer\n15179,truck\n15180,deer\n15181,frog\n15182,truck\n15183,ship\n15184,airplane\n15185,dog\n15186,truck\n15187,deer\n15188,cat\n15189,deer\n15190,bird\n15191,frog\n15192,horse\n15193,cat\n15194,deer\n15195,dog\n15196,frog\n15197,frog\n15198,deer\n15199,airplane\n15200,frog\n15201,truck\n15202,cat\n15203,airplane\n15204,ship\n15205,ship\n15206,frog\n15207,horse\n15208,automobile\n15209,frog\n15210,frog\n15211,dog\n15212,dog\n15213,ship\n15214,truck\n15215,deer\n15216,deer\n15217,frog\n15218,airplane\n15219,truck\n15220,airplane\n15221,dog\n15222,frog\n15223,truck\n15224,airplane\n15225,cat\n15226,cat\n15227,truck\n15228,horse\n15229,horse\n15230,bird\n15231,dog\n15232,cat\n15233,ship\n15234,truck\n15235,automobile\n15236,automobile\n15237,horse\n15238,deer\n15239,horse\n15240,ship\n15241,automobile\n15242,horse\n15243,dog\n15244,frog\n15245,bird\n15246,deer\n15247,ship\n15248,bird\n15249,cat\n15250,deer\n15251,airplane\n15252,truck\n15253,bird\n15254,horse\n15255,truck\n15256,deer\n15257,horse\n15258,airplane\n15259,deer\n15260,deer\n15261,ship\n15262,cat\n15263,frog\n15264,bird\n15265,deer\n15266,deer\n15267,automobile\n15268,horse\n15269,truck\n15270,bird\n15271,dog\n15272,truck\n15273,cat\n15274,cat\n15275,frog\n15276,airplane\n15277,truck\n15278,dog\n15279,deer\n15280,cat\n15281,cat\n15282,dog\n15283,cat\n15284,dog\n15285,automobile\n15286,frog\n15287,cat\n15288,cat\n15289,horse\n15290,cat\n15291,cat\n15292,dog\n15293,ship\n15294,truck\n15295,deer\n15296,horse\n15297,deer\n15298,deer\n15299,dog\n15300,cat\n15301,cat\n15302,truck\n15303,deer\n15304,frog\n15305,frog\n15306,cat\n15307,bird\n15308,cat\n15309,frog\n15310,cat\n15311,frog\n15312,airplane\n15313,truck\n15314,automobile\n15315,deer\n15316,truck\n15317,deer\n15318,deer\n15319,deer\n15320,cat\n15321,airplane\n15322,cat\n15323,cat\n15324,deer\n15325,bird\n15326,cat\n15327,dog\n15328,airplane\n15329,horse\n15330,frog\n15331,truck\n15332,ship\n15333,horse\n15334,dog\n15335,airplane\n15336,ship\n15337,cat\n15338,bird\n15339,bird\n15340,airplane\n15341,airplane\n15342,horse\n15343,airplane\n15344,cat\n15345,ship\n15346,bird\n15347,bird\n15348,airplane\n15349,ship\n15350,truck\n15351,frog\n15352,ship\n15353,truck\n15354,airplane\n15355,truck\n15356,truck\n15357,truck\n15358,horse\n15359,frog\n15360,automobile\n15361,bird\n15362,bird\n15363,horse\n15364,dog\n15365,dog\n15366,bird\n15367,bird\n15368,truck\n15369,truck\n15370,frog\n15371,cat\n15372,deer\n15373,bird\n15374,frog\n15375,horse\n15376,frog\n15377,automobile\n15378,cat\n15379,cat\n15380,airplane\n15381,automobile\n15382,airplane\n15383,frog\n15384,dog\n15385,frog\n15386,truck\n15387,cat\n15388,ship\n15389,bird\n15390,frog\n15391,bird\n15392,cat\n15393,horse\n15394,deer\n15395,horse\n15396,ship\n15397,airplane\n15398,automobile\n15399,cat\n15400,truck\n15401,cat\n15402,frog\n15403,automobile\n15404,frog\n15405,frog\n15406,truck\n15407,bird\n15408,deer\n15409,truck\n15410,truck\n15411,deer\n15412,airplane\n15413,frog\n15414,horse\n15415,bird\n15416,horse\n15417,dog\n15418,horse\n15419,bird\n15420,cat\n15421,bird\n15422,truck\n15423,truck\n15424,horse\n15425,deer\n15426,ship\n15427,deer\n15428,deer\n15429,deer\n15430,bird\n15431,horse\n15432,airplane\n15433,frog\n15434,bird\n15435,frog\n15436,deer\n15437,airplane\n15438,horse\n15439,cat\n15440,horse\n15441,ship\n15442,truck\n15443,deer\n15444,frog\n15445,horse\n15446,deer\n15447,bird\n15448,ship\n15449,ship\n15450,horse\n15451,dog\n15452,truck\n15453,frog\n15454,dog\n15455,truck\n15456,dog\n15457,frog\n15458,dog\n15459,cat\n15460,airplane\n15461,deer\n15462,deer\n15463,horse\n15464,deer\n15465,cat\n15466,truck\n15467,horse\n15468,deer\n15469,deer\n15470,automobile\n15471,truck\n15472,ship\n15473,frog\n15474,cat\n15475,ship\n15476,cat\n15477,automobile\n15478,ship\n15479,frog\n15480,cat\n15481,airplane\n15482,deer\n15483,deer\n15484,horse\n15485,frog\n15486,cat\n15487,frog\n15488,deer\n15489,ship\n15490,airplane\n15491,airplane\n15492,truck\n15493,frog\n15494,bird\n15495,dog\n15496,deer\n15497,frog\n15498,airplane\n15499,automobile\n15500,horse\n15501,frog\n15502,airplane\n15503,airplane\n15504,cat\n15505,deer\n15506,cat\n15507,bird\n15508,airplane\n15509,airplane\n15510,airplane\n15511,cat\n15512,cat\n15513,truck\n15514,frog\n15515,truck\n15516,truck\n15517,truck\n15518,horse\n15519,frog\n15520,frog\n15521,cat\n15522,dog\n15523,cat\n15524,airplane\n15525,frog\n15526,truck\n15527,deer\n15528,truck\n15529,truck\n15530,deer\n15531,automobile\n15532,deer\n15533,airplane\n15534,deer\n15535,dog\n15536,frog\n15537,frog\n15538,cat\n15539,bird\n15540,airplane\n15541,bird\n15542,horse\n15543,dog\n15544,truck\n15545,truck\n15546,frog\n15547,frog\n15548,bird\n15549,ship\n15550,dog\n15551,automobile\n15552,airplane\n15553,horse\n15554,cat\n15555,automobile\n15556,deer\n15557,horse\n15558,ship\n15559,horse\n15560,truck\n15561,airplane\n15562,dog\n15563,bird\n15564,automobile\n15565,truck\n15566,deer\n15567,airplane\n15568,deer\n15569,truck\n15570,truck\n15571,truck\n15572,dog\n15573,bird\n15574,airplane\n15575,frog\n15576,frog\n15577,airplane\n15578,deer\n15579,truck\n15580,automobile\n15581,horse\n15582,cat\n15583,cat\n15584,frog\n15585,frog\n15586,truck\n15587,deer\n15588,deer\n15589,bird\n15590,ship\n15591,bird\n15592,automobile\n15593,automobile\n15594,truck\n15595,truck\n15596,horse\n15597,cat\n15598,horse\n15599,airplane\n15600,cat\n15601,ship\n15602,horse\n15603,cat\n15604,horse\n15605,automobile\n15606,frog\n15607,deer\n15608,horse\n15609,deer\n15610,airplane\n15611,horse\n15612,cat\n15613,horse\n15614,dog\n15615,ship\n15616,dog\n15617,frog\n15618,airplane\n15619,dog\n15620,bird\n15621,frog\n15622,ship\n15623,bird\n15624,cat\n15625,dog\n15626,dog\n15627,bird\n15628,ship\n15629,truck\n15630,deer\n15631,dog\n15632,cat\n15633,dog\n15634,cat\n15635,cat\n15636,dog\n15637,automobile\n15638,horse\n15639,truck\n15640,dog\n15641,airplane\n15642,horse\n15643,cat\n15644,frog\n15645,ship\n15646,cat\n15647,ship\n15648,airplane\n15649,frog\n15650,bird\n15651,automobile\n15652,frog\n15653,cat\n15654,dog\n15655,bird\n15656,cat\n15657,bird\n15658,bird\n15659,automobile\n15660,deer\n15661,frog\n15662,automobile\n15663,truck\n15664,airplane\n15665,cat\n15666,cat\n15667,deer\n15668,cat\n15669,automobile\n15670,dog\n15671,airplane\n15672,airplane\n15673,airplane\n15674,cat\n15675,dog\n15676,horse\n15677,bird\n15678,airplane\n15679,cat\n15680,cat\n15681,cat\n15682,cat\n15683,truck\n15684,frog\n15685,frog\n15686,bird\n15687,horse\n15688,automobile\n15689,truck\n15690,bird\n15691,horse\n15692,dog\n15693,cat\n15694,truck\n15695,bird\n15696,cat\n15697,deer\n15698,ship\n15699,frog\n15700,ship\n15701,dog\n15702,cat\n15703,deer\n15704,bird\n15705,truck\n15706,deer\n15707,deer\n15708,bird\n15709,cat\n15710,automobile\n15711,frog\n15712,deer\n15713,automobile\n15714,horse\n15715,truck\n15716,truck\n15717,automobile\n15718,frog\n15719,dog\n15720,deer\n15721,deer\n15722,bird\n15723,airplane\n15724,horse\n15725,deer\n15726,deer\n15727,horse\n15728,frog\n15729,cat\n15730,automobile\n15731,cat\n15732,horse\n15733,frog\n15734,deer\n15735,deer\n15736,bird\n15737,frog\n15738,deer\n15739,cat\n15740,horse\n15741,cat\n15742,frog\n15743,cat\n15744,frog\n15745,cat\n15746,dog\n15747,truck\n15748,ship\n15749,cat\n15750,automobile\n15751,truck\n15752,dog\n15753,bird\n15754,horse\n15755,ship\n15756,deer\n15757,airplane\n15758,ship\n15759,cat\n15760,frog\n15761,frog\n15762,deer\n15763,airplane\n15764,truck\n15765,truck\n15766,dog\n15767,frog\n15768,deer\n15769,bird\n15770,airplane\n15771,bird\n15772,frog\n15773,truck\n15774,dog\n15775,cat\n15776,deer\n15777,truck\n15778,frog\n15779,deer\n15780,truck\n15781,cat\n15782,dog\n15783,airplane\n15784,deer\n15785,cat\n15786,horse\n15787,horse\n15788,airplane\n15789,dog\n15790,horse\n15791,dog\n15792,dog\n15793,dog\n15794,frog\n15795,ship\n15796,ship\n15797,bird\n15798,dog\n15799,bird\n15800,deer\n15801,ship\n15802,bird\n15803,cat\n15804,deer\n15805,truck\n15806,deer\n15807,frog\n15808,cat\n15809,deer\n15810,cat\n15811,horse\n15812,deer\n15813,deer\n15814,dog\n15815,frog\n15816,airplane\n15817,horse\n15818,truck\n15819,bird\n15820,deer\n15821,cat\n15822,cat\n15823,frog\n15824,dog\n15825,ship\n15826,dog\n15827,automobile\n15828,automobile\n15829,horse\n15830,dog\n15831,bird\n15832,cat\n15833,automobile\n15834,truck\n15835,bird\n15836,frog\n15837,cat\n15838,airplane\n15839,dog\n15840,truck\n15841,ship\n15842,truck\n15843,dog\n15844,bird\n15845,dog\n15846,horse\n15847,cat\n15848,airplane\n15849,automobile\n15850,ship\n15851,deer\n15852,deer\n15853,truck\n15854,airplane\n15855,cat\n15856,horse\n15857,cat\n15858,ship\n15859,bird\n15860,frog\n15861,frog\n15862,ship\n15863,cat\n15864,dog\n15865,horse\n15866,dog\n15867,deer\n15868,bird\n15869,airplane\n15870,bird\n15871,cat\n15872,bird\n15873,cat\n15874,airplane\n15875,airplane\n15876,deer\n15877,horse\n15878,ship\n15879,truck\n15880,deer\n15881,cat\n15882,frog\n15883,bird\n15884,frog\n15885,truck\n15886,ship\n15887,frog\n15888,cat\n15889,cat\n15890,frog\n15891,truck\n15892,cat\n15893,cat\n15894,deer\n15895,truck\n15896,deer\n15897,cat\n15898,frog\n15899,truck\n15900,truck\n15901,deer\n15902,truck\n15903,dog\n15904,deer\n15905,cat\n15906,truck\n15907,dog\n15908,cat\n15909,cat\n15910,dog\n15911,dog\n15912,automobile\n15913,deer\n15914,automobile\n15915,airplane\n15916,deer\n15917,horse\n15918,cat\n15919,automobile\n15920,bird\n15921,frog\n15922,horse\n15923,horse\n15924,bird\n15925,truck\n15926,frog\n15927,airplane\n15928,bird\n15929,frog\n15930,airplane\n15931,ship\n15932,ship\n15933,airplane\n15934,bird\n15935,cat\n15936,truck\n15937,frog\n15938,airplane\n15939,deer\n15940,airplane\n15941,horse\n15942,frog\n15943,ship\n15944,dog\n15945,horse\n15946,deer\n15947,truck\n15948,dog\n15949,horse\n15950,truck\n15951,deer\n15952,deer\n15953,bird\n15954,frog\n15955,horse\n15956,horse\n15957,automobile\n15958,cat\n15959,horse\n15960,horse\n15961,dog\n15962,deer\n15963,dog\n15964,frog\n15965,dog\n15966,deer\n15967,dog\n15968,ship\n15969,horse\n15970,airplane\n15971,automobile\n15972,bird\n15973,frog\n15974,frog\n15975,horse\n15976,airplane\n15977,frog\n15978,truck\n15979,bird\n15980,cat\n15981,cat\n15982,ship\n15983,airplane\n15984,cat\n15985,dog\n15986,ship\n15987,frog\n15988,truck\n15989,cat\n15990,horse\n15991,horse\n15992,ship\n15993,dog\n15994,frog\n15995,truck\n15996,bird\n15997,dog\n15998,ship\n15999,bird\n16000,horse\n16001,dog\n16002,dog\n16003,automobile\n16004,cat\n16005,truck\n16006,cat\n16007,ship\n16008,horse\n16009,cat\n16010,bird\n16011,automobile\n16012,dog\n16013,bird\n16014,dog\n16015,truck\n16016,truck\n16017,cat\n16018,cat\n16019,frog\n16020,truck\n16021,ship\n16022,frog\n16023,truck\n16024,ship\n16025,dog\n16026,deer\n16027,deer\n16028,frog\n16029,deer\n16030,cat\n16031,cat\n16032,frog\n16033,frog\n16034,horse\n16035,deer\n16036,frog\n16037,truck\n16038,frog\n16039,frog\n16040,dog\n16041,automobile\n16042,deer\n16043,dog\n16044,cat\n16045,deer\n16046,horse\n16047,airplane\n16048,truck\n16049,airplane\n16050,deer\n16051,truck\n16052,bird\n16053,truck\n16054,truck\n16055,automobile\n16056,dog\n16057,truck\n16058,dog\n16059,frog\n16060,ship\n16061,cat\n16062,ship\n16063,cat\n16064,deer\n16065,truck\n16066,deer\n16067,ship\n16068,truck\n16069,frog\n16070,deer\n16071,frog\n16072,deer\n16073,bird\n16074,frog\n16075,ship\n16076,automobile\n16077,automobile\n16078,bird\n16079,horse\n16080,ship\n16081,ship\n16082,frog\n16083,ship\n16084,cat\n16085,truck\n16086,horse\n16087,bird\n16088,frog\n16089,deer\n16090,truck\n16091,horse\n16092,frog\n16093,automobile\n16094,dog\n16095,bird\n16096,frog\n16097,frog\n16098,frog\n16099,horse\n16100,bird\n16101,dog\n16102,truck\n16103,frog\n16104,deer\n16105,deer\n16106,cat\n16107,deer\n16108,ship\n16109,truck\n16110,deer\n16111,frog\n16112,dog\n16113,cat\n16114,automobile\n16115,deer\n16116,horse\n16117,deer\n16118,cat\n16119,horse\n16120,dog\n16121,cat\n16122,cat\n16123,cat\n16124,frog\n16125,automobile\n16126,truck\n16127,deer\n16128,airplane\n16129,dog\n16130,airplane\n16131,ship\n16132,automobile\n16133,ship\n16134,truck\n16135,bird\n16136,cat\n16137,truck\n16138,deer\n16139,frog\n16140,automobile\n16141,dog\n16142,ship\n16143,frog\n16144,truck\n16145,automobile\n16146,deer\n16147,cat\n16148,deer\n16149,bird\n16150,truck\n16151,dog\n16152,truck\n16153,frog\n16154,dog\n16155,automobile\n16156,deer\n16157,ship\n16158,bird\n16159,horse\n16160,dog\n16161,deer\n16162,cat\n16163,airplane\n16164,automobile\n16165,deer\n16166,cat\n16167,bird\n16168,cat\n16169,deer\n16170,deer\n16171,deer\n16172,truck\n16173,deer\n16174,cat\n16175,ship\n16176,dog\n16177,dog\n16178,horse\n16179,deer\n16180,deer\n16181,truck\n16182,frog\n16183,bird\n16184,horse\n16185,bird\n16186,automobile\n16187,dog\n16188,horse\n16189,ship\n16190,ship\n16191,bird\n16192,ship\n16193,bird\n16194,deer\n16195,deer\n16196,airplane\n16197,dog\n16198,truck\n16199,airplane\n16200,deer\n16201,horse\n16202,horse\n16203,truck\n16204,cat\n16205,truck\n16206,deer\n16207,ship\n16208,horse\n16209,cat\n16210,automobile\n16211,bird\n16212,deer\n16213,horse\n16214,horse\n16215,deer\n16216,horse\n16217,horse\n16218,deer\n16219,truck\n16220,airplane\n16221,deer\n16222,deer\n16223,frog\n16224,deer\n16225,horse\n16226,ship\n16227,frog\n16228,airplane\n16229,dog\n16230,automobile\n16231,horse\n16232,ship\n16233,airplane\n16234,cat\n16235,dog\n16236,frog\n16237,airplane\n16238,deer\n16239,cat\n16240,ship\n16241,horse\n16242,bird\n16243,bird\n16244,frog\n16245,frog\n16246,cat\n16247,bird\n16248,truck\n16249,automobile\n16250,frog\n16251,cat\n16252,ship\n16253,bird\n16254,truck\n16255,horse\n16256,horse\n16257,airplane\n16258,horse\n16259,horse\n16260,dog\n16261,dog\n16262,bird\n16263,airplane\n16264,airplane\n16265,deer\n16266,deer\n16267,deer\n16268,dog\n16269,deer\n16270,truck\n16271,automobile\n16272,deer\n16273,automobile\n16274,automobile\n16275,deer\n16276,frog\n16277,deer\n16278,frog\n16279,ship\n16280,dog\n16281,truck\n16282,ship\n16283,automobile\n16284,frog\n16285,truck\n16286,airplane\n16287,automobile\n16288,frog\n16289,deer\n16290,deer\n16291,horse\n16292,airplane\n16293,cat\n16294,cat\n16295,bird\n16296,truck\n16297,bird\n16298,airplane\n16299,frog\n16300,automobile\n16301,deer\n16302,truck\n16303,truck\n16304,ship\n16305,automobile\n16306,cat\n16307,horse\n16308,bird\n16309,bird\n16310,automobile\n16311,truck\n16312,dog\n16313,ship\n16314,dog\n16315,bird\n16316,frog\n16317,deer\n16318,dog\n16319,airplane\n16320,bird\n16321,frog\n16322,horse\n16323,dog\n16324,truck\n16325,deer\n16326,horse\n16327,truck\n16328,frog\n16329,truck\n16330,frog\n16331,truck\n16332,cat\n16333,truck\n16334,dog\n16335,frog\n16336,deer\n16337,horse\n16338,bird\n16339,automobile\n16340,horse\n16341,truck\n16342,dog\n16343,cat\n16344,automobile\n16345,automobile\n16346,truck\n16347,deer\n16348,dog\n16349,horse\n16350,automobile\n16351,horse\n16352,deer\n16353,frog\n16354,automobile\n16355,automobile\n16356,ship\n16357,deer\n16358,horse\n16359,airplane\n16360,ship\n16361,dog\n16362,cat\n16363,dog\n16364,cat\n16365,bird\n16366,automobile\n16367,truck\n16368,horse\n16369,airplane\n16370,cat\n16371,cat\n16372,horse\n16373,frog\n16374,horse\n16375,truck\n16376,deer\n16377,frog\n16378,cat\n16379,cat\n16380,ship\n16381,dog\n16382,airplane\n16383,airplane\n16384,deer\n16385,airplane\n16386,deer\n16387,cat\n16388,dog\n16389,ship\n16390,frog\n16391,horse\n16392,cat\n16393,horse\n16394,frog\n16395,frog\n16396,frog\n16397,cat\n16398,deer\n16399,dog\n16400,horse\n16401,horse\n16402,dog\n16403,bird\n16404,deer\n16405,bird\n16406,horse\n16407,truck\n16408,frog\n16409,horse\n16410,deer\n16411,cat\n16412,automobile\n16413,frog\n16414,truck\n16415,dog\n16416,dog\n16417,cat\n16418,horse\n16419,cat\n16420,horse\n16421,truck\n16422,bird\n16423,bird\n16424,deer\n16425,horse\n16426,cat\n16427,airplane\n16428,cat\n16429,frog\n16430,deer\n16431,frog\n16432,dog\n16433,ship\n16434,airplane\n16435,deer\n16436,cat\n16437,cat\n16438,bird\n16439,cat\n16440,frog\n16441,cat\n16442,airplane\n16443,bird\n16444,horse\n16445,truck\n16446,cat\n16447,automobile\n16448,frog\n16449,airplane\n16450,horse\n16451,horse\n16452,cat\n16453,frog\n16454,dog\n16455,automobile\n16456,airplane\n16457,bird\n16458,cat\n16459,dog\n16460,deer\n16461,ship\n16462,cat\n16463,cat\n16464,truck\n16465,cat\n16466,cat\n16467,automobile\n16468,airplane\n16469,dog\n16470,frog\n16471,bird\n16472,airplane\n16473,ship\n16474,deer\n16475,horse\n16476,ship\n16477,cat\n16478,truck\n16479,frog\n16480,truck\n16481,frog\n16482,airplane\n16483,deer\n16484,truck\n16485,cat\n16486,horse\n16487,dog\n16488,dog\n16489,truck\n16490,cat\n16491,frog\n16492,deer\n16493,cat\n16494,deer\n16495,truck\n16496,cat\n16497,deer\n16498,frog\n16499,truck\n16500,frog\n16501,dog\n16502,frog\n16503,cat\n16504,frog\n16505,airplane\n16506,airplane\n16507,cat\n16508,ship\n16509,horse\n16510,cat\n16511,bird\n16512,truck\n16513,airplane\n16514,dog\n16515,deer\n16516,dog\n16517,automobile\n16518,deer\n16519,dog\n16520,horse\n16521,truck\n16522,horse\n16523,truck\n16524,deer\n16525,dog\n16526,cat\n16527,airplane\n16528,deer\n16529,deer\n16530,deer\n16531,cat\n16532,truck\n16533,automobile\n16534,dog\n16535,horse\n16536,horse\n16537,deer\n16538,airplane\n16539,airplane\n16540,frog\n16541,deer\n16542,truck\n16543,airplane\n16544,truck\n16545,automobile\n16546,frog\n16547,dog\n16548,horse\n16549,frog\n16550,truck\n16551,cat\n16552,deer\n16553,horse\n16554,frog\n16555,truck\n16556,dog\n16557,frog\n16558,bird\n16559,cat\n16560,deer\n16561,automobile\n16562,truck\n16563,dog\n16564,frog\n16565,cat\n16566,truck\n16567,cat\n16568,horse\n16569,frog\n16570,airplane\n16571,frog\n16572,cat\n16573,cat\n16574,cat\n16575,horse\n16576,truck\n16577,truck\n16578,ship\n16579,truck\n16580,deer\n16581,automobile\n16582,truck\n16583,horse\n16584,cat\n16585,cat\n16586,frog\n16587,bird\n16588,airplane\n16589,cat\n16590,dog\n16591,truck\n16592,cat\n16593,cat\n16594,airplane\n16595,automobile\n16596,ship\n16597,truck\n16598,horse\n16599,cat\n16600,horse\n16601,truck\n16602,truck\n16603,cat\n16604,cat\n16605,automobile\n16606,automobile\n16607,frog\n16608,dog\n16609,automobile\n16610,cat\n16611,deer\n16612,airplane\n16613,frog\n16614,ship\n16615,deer\n16616,horse\n16617,ship\n16618,deer\n16619,automobile\n16620,dog\n16621,deer\n16622,cat\n16623,cat\n16624,dog\n16625,bird\n16626,dog\n16627,horse\n16628,deer\n16629,automobile\n16630,horse\n16631,frog\n16632,ship\n16633,frog\n16634,truck\n16635,ship\n16636,frog\n16637,dog\n16638,cat\n16639,dog\n16640,airplane\n16641,frog\n16642,airplane\n16643,dog\n16644,bird\n16645,truck\n16646,frog\n16647,horse\n16648,deer\n16649,horse\n16650,truck\n16651,ship\n16652,ship\n16653,airplane\n16654,cat\n16655,automobile\n16656,horse\n16657,deer\n16658,truck\n16659,truck\n16660,deer\n16661,ship\n16662,horse\n16663,ship\n16664,airplane\n16665,airplane\n16666,truck\n16667,deer\n16668,airplane\n16669,deer\n16670,cat\n16671,dog\n16672,truck\n16673,cat\n16674,ship\n16675,airplane\n16676,ship\n16677,deer\n16678,airplane\n16679,airplane\n16680,truck\n16681,dog\n16682,dog\n16683,cat\n16684,dog\n16685,bird\n16686,truck\n16687,cat\n16688,cat\n16689,cat\n16690,automobile\n16691,airplane\n16692,ship\n16693,automobile\n16694,ship\n16695,frog\n16696,bird\n16697,horse\n16698,dog\n16699,automobile\n16700,frog\n16701,dog\n16702,truck\n16703,dog\n16704,ship\n16705,frog\n16706,ship\n16707,cat\n16708,automobile\n16709,bird\n16710,cat\n16711,ship\n16712,airplane\n16713,cat\n16714,dog\n16715,horse\n16716,deer\n16717,dog\n16718,horse\n16719,cat\n16720,truck\n16721,truck\n16722,deer\n16723,deer\n16724,airplane\n16725,dog\n16726,frog\n16727,bird\n16728,airplane\n16729,frog\n16730,frog\n16731,cat\n16732,bird\n16733,deer\n16734,deer\n16735,airplane\n16736,automobile\n16737,horse\n16738,truck\n16739,horse\n16740,frog\n16741,truck\n16742,deer\n16743,truck\n16744,ship\n16745,frog\n16746,horse\n16747,cat\n16748,deer\n16749,dog\n16750,frog\n16751,horse\n16752,airplane\n16753,horse\n16754,truck\n16755,bird\n16756,truck\n16757,frog\n16758,dog\n16759,horse\n16760,frog\n16761,dog\n16762,horse\n16763,dog\n16764,airplane\n16765,deer\n16766,ship\n16767,truck\n16768,horse\n16769,cat\n16770,frog\n16771,automobile\n16772,deer\n16773,frog\n16774,deer\n16775,truck\n16776,automobile\n16777,dog\n16778,airplane\n16779,airplane\n16780,bird\n16781,automobile\n16782,deer\n16783,ship\n16784,cat\n16785,frog\n16786,frog\n16787,bird\n16788,dog\n16789,deer\n16790,dog\n16791,frog\n16792,dog\n16793,airplane\n16794,dog\n16795,horse\n16796,horse\n16797,cat\n16798,horse\n16799,deer\n16800,cat\n16801,automobile\n16802,deer\n16803,frog\n16804,ship\n16805,cat\n16806,bird\n16807,automobile\n16808,cat\n16809,dog\n16810,dog\n16811,truck\n16812,ship\n16813,frog\n16814,cat\n16815,deer\n16816,deer\n16817,truck\n16818,cat\n16819,deer\n16820,cat\n16821,cat\n16822,cat\n16823,frog\n16824,truck\n16825,horse\n16826,cat\n16827,truck\n16828,bird\n16829,cat\n16830,horse\n16831,deer\n16832,truck\n16833,cat\n16834,dog\n16835,automobile\n16836,cat\n16837,deer\n16838,bird\n16839,truck\n16840,bird\n16841,deer\n16842,horse\n16843,dog\n16844,airplane\n16845,deer\n16846,ship\n16847,frog\n16848,airplane\n16849,frog\n16850,deer\n16851,deer\n16852,frog\n16853,ship\n16854,cat\n16855,truck\n16856,cat\n16857,dog\n16858,deer\n16859,cat\n16860,deer\n16861,truck\n16862,deer\n16863,horse\n16864,cat\n16865,horse\n16866,frog\n16867,bird\n16868,deer\n16869,horse\n16870,cat\n16871,dog\n16872,truck\n16873,truck\n16874,horse\n16875,dog\n16876,deer\n16877,cat\n16878,ship\n16879,deer\n16880,deer\n16881,horse\n16882,horse\n16883,horse\n16884,bird\n16885,automobile\n16886,ship\n16887,deer\n16888,deer\n16889,dog\n16890,deer\n16891,deer\n16892,deer\n16893,deer\n16894,frog\n16895,frog\n16896,truck\n16897,deer\n16898,bird\n16899,deer\n16900,horse\n16901,horse\n16902,airplane\n16903,truck\n16904,dog\n16905,horse\n16906,ship\n16907,horse\n16908,ship\n16909,cat\n16910,dog\n16911,truck\n16912,horse\n16913,frog\n16914,airplane\n16915,bird\n16916,cat\n16917,automobile\n16918,ship\n16919,cat\n16920,truck\n16921,automobile\n16922,horse\n16923,horse\n16924,cat\n16925,ship\n16926,frog\n16927,bird\n16928,frog\n16929,cat\n16930,truck\n16931,deer\n16932,deer\n16933,cat\n16934,deer\n16935,dog\n16936,dog\n16937,automobile\n16938,frog\n16939,deer\n16940,deer\n16941,horse\n16942,cat\n16943,automobile\n16944,horse\n16945,cat\n16946,cat\n16947,dog\n16948,cat\n16949,airplane\n16950,bird\n16951,dog\n16952,bird\n16953,frog\n16954,deer\n16955,deer\n16956,automobile\n16957,automobile\n16958,frog\n16959,automobile\n16960,truck\n16961,frog\n16962,automobile\n16963,horse\n16964,frog\n16965,frog\n16966,ship\n16967,airplane\n16968,cat\n16969,horse\n16970,truck\n16971,cat\n16972,deer\n16973,horse\n16974,truck\n16975,deer\n16976,deer\n16977,deer\n16978,cat\n16979,bird\n16980,dog\n16981,bird\n16982,truck\n16983,airplane\n16984,truck\n16985,dog\n16986,dog\n16987,horse\n16988,automobile\n16989,cat\n16990,ship\n16991,ship\n16992,cat\n16993,frog\n16994,cat\n16995,deer\n16996,horse\n16997,truck\n16998,horse\n16999,frog\n17000,horse\n17001,bird\n17002,horse\n17003,deer\n17004,frog\n17005,cat\n17006,ship\n17007,ship\n17008,truck\n17009,automobile\n17010,bird\n17011,truck\n17012,horse\n17013,cat\n17014,frog\n17015,dog\n17016,deer\n17017,deer\n17018,automobile\n17019,horse\n17020,frog\n17021,bird\n17022,truck\n17023,frog\n17024,cat\n17025,truck\n17026,deer\n17027,truck\n17028,bird\n17029,cat\n17030,bird\n17031,deer\n17032,automobile\n17033,deer\n17034,automobile\n17035,airplane\n17036,deer\n17037,ship\n17038,automobile\n17039,bird\n17040,ship\n17041,deer\n17042,frog\n17043,airplane\n17044,ship\n17045,airplane\n17046,cat\n17047,dog\n17048,cat\n17049,automobile\n17050,dog\n17051,deer\n17052,ship\n17053,truck\n17054,deer\n17055,frog\n17056,dog\n17057,automobile\n17058,cat\n17059,deer\n17060,ship\n17061,truck\n17062,bird\n17063,frog\n17064,dog\n17065,horse\n17066,truck\n17067,bird\n17068,bird\n17069,dog\n17070,truck\n17071,horse\n17072,truck\n17073,deer\n17074,frog\n17075,ship\n17076,horse\n17077,bird\n17078,airplane\n17079,deer\n17080,automobile\n17081,horse\n17082,truck\n17083,bird\n17084,truck\n17085,airplane\n17086,cat\n17087,truck\n17088,cat\n17089,airplane\n17090,airplane\n17091,automobile\n17092,deer\n17093,dog\n17094,dog\n17095,frog\n17096,truck\n17097,cat\n17098,deer\n17099,bird\n17100,bird\n17101,cat\n17102,ship\n17103,deer\n17104,airplane\n17105,deer\n17106,horse\n17107,frog\n17108,frog\n17109,truck\n17110,deer\n17111,bird\n17112,automobile\n17113,horse\n17114,frog\n17115,truck\n17116,truck\n17117,dog\n17118,airplane\n17119,airplane\n17120,cat\n17121,bird\n17122,horse\n17123,horse\n17124,cat\n17125,bird\n17126,airplane\n17127,truck\n17128,frog\n17129,automobile\n17130,ship\n17131,airplane\n17132,ship\n17133,ship\n17134,deer\n17135,ship\n17136,cat\n17137,deer\n17138,frog\n17139,dog\n17140,cat\n17141,truck\n17142,dog\n17143,deer\n17144,frog\n17145,ship\n17146,frog\n17147,truck\n17148,truck\n17149,automobile\n17150,airplane\n17151,frog\n17152,truck\n17153,automobile\n17154,automobile\n17155,airplane\n17156,ship\n17157,bird\n17158,ship\n17159,cat\n17160,horse\n17161,ship\n17162,deer\n17163,truck\n17164,cat\n17165,truck\n17166,frog\n17167,truck\n17168,deer\n17169,horse\n17170,ship\n17171,bird\n17172,frog\n17173,dog\n17174,automobile\n17175,truck\n17176,truck\n17177,ship\n17178,cat\n17179,truck\n17180,cat\n17181,truck\n17182,automobile\n17183,horse\n17184,frog\n17185,horse\n17186,frog\n17187,airplane\n17188,truck\n17189,ship\n17190,deer\n17191,truck\n17192,dog\n17193,cat\n17194,cat\n17195,frog\n17196,bird\n17197,airplane\n17198,airplane\n17199,truck\n17200,truck\n17201,horse\n17202,frog\n17203,deer\n17204,deer\n17205,bird\n17206,frog\n17207,cat\n17208,bird\n17209,deer\n17210,frog\n17211,dog\n17212,deer\n17213,cat\n17214,frog\n17215,frog\n17216,ship\n17217,dog\n17218,automobile\n17219,dog\n17220,dog\n17221,frog\n17222,airplane\n17223,automobile\n17224,horse\n17225,airplane\n17226,automobile\n17227,horse\n17228,bird\n17229,cat\n17230,frog\n17231,horse\n17232,truck\n17233,automobile\n17234,ship\n17235,frog\n17236,ship\n17237,cat\n17238,dog\n17239,dog\n17240,deer\n17241,bird\n17242,ship\n17243,airplane\n17244,deer\n17245,ship\n17246,frog\n17247,ship\n17248,deer\n17249,automobile\n17250,dog\n17251,cat\n17252,bird\n17253,cat\n17254,automobile\n17255,dog\n17256,frog\n17257,cat\n17258,dog\n17259,cat\n17260,frog\n17261,bird\n17262,deer\n17263,automobile\n17264,cat\n17265,bird\n17266,cat\n17267,ship\n17268,bird\n17269,deer\n17270,deer\n17271,ship\n17272,bird\n17273,dog\n17274,airplane\n17275,bird\n17276,automobile\n17277,deer\n17278,truck\n17279,frog\n17280,automobile\n17281,dog\n17282,ship\n17283,bird\n17284,cat\n17285,airplane\n17286,truck\n17287,cat\n17288,cat\n17289,dog\n17290,truck\n17291,deer\n17292,horse\n17293,bird\n17294,frog\n17295,horse\n17296,deer\n17297,dog\n17298,airplane\n17299,horse\n17300,dog\n17301,frog\n17302,frog\n17303,ship\n17304,ship\n17305,cat\n17306,bird\n17307,bird\n17308,airplane\n17309,airplane\n17310,automobile\n17311,cat\n17312,automobile\n17313,deer\n17314,truck\n17315,cat\n17316,horse\n17317,truck\n17318,airplane\n17319,cat\n17320,cat\n17321,dog\n17322,dog\n17323,frog\n17324,bird\n17325,cat\n17326,bird\n17327,automobile\n17328,deer\n17329,deer\n17330,ship\n17331,frog\n17332,deer\n17333,deer\n17334,dog\n17335,automobile\n17336,truck\n17337,ship\n17338,truck\n17339,ship\n17340,deer\n17341,truck\n17342,automobile\n17343,cat\n17344,cat\n17345,ship\n17346,deer\n17347,truck\n17348,ship\n17349,deer\n17350,cat\n17351,automobile\n17352,automobile\n17353,cat\n17354,deer\n17355,ship\n17356,airplane\n17357,airplane\n17358,bird\n17359,deer\n17360,cat\n17361,truck\n17362,deer\n17363,ship\n17364,dog\n17365,cat\n17366,ship\n17367,truck\n17368,frog\n17369,frog\n17370,deer\n17371,ship\n17372,bird\n17373,cat\n17374,truck\n17375,bird\n17376,cat\n17377,cat\n17378,truck\n17379,horse\n17380,truck\n17381,frog\n17382,airplane\n17383,bird\n17384,cat\n17385,dog\n17386,deer\n17387,frog\n17388,horse\n17389,automobile\n17390,truck\n17391,bird\n17392,frog\n17393,truck\n17394,horse\n17395,airplane\n17396,deer\n17397,deer\n17398,bird\n17399,frog\n17400,bird\n17401,cat\n17402,truck\n17403,cat\n17404,truck\n17405,dog\n17406,ship\n17407,dog\n17408,deer\n17409,truck\n17410,deer\n17411,bird\n17412,ship\n17413,dog\n17414,airplane\n17415,deer\n17416,airplane\n17417,dog\n17418,airplane\n17419,bird\n17420,bird\n17421,bird\n17422,ship\n17423,horse\n17424,frog\n17425,cat\n17426,automobile\n17427,airplane\n17428,airplane\n17429,horse\n17430,dog\n17431,bird\n17432,truck\n17433,truck\n17434,deer\n17435,frog\n17436,frog\n17437,cat\n17438,cat\n17439,dog\n17440,frog\n17441,automobile\n17442,truck\n17443,deer\n17444,deer\n17445,automobile\n17446,frog\n17447,deer\n17448,frog\n17449,airplane\n17450,ship\n17451,airplane\n17452,dog\n17453,horse\n17454,bird\n17455,horse\n17456,deer\n17457,horse\n17458,airplane\n17459,automobile\n17460,cat\n17461,ship\n17462,ship\n17463,deer\n17464,automobile\n17465,airplane\n17466,dog\n17467,truck\n17468,truck\n17469,bird\n17470,airplane\n17471,horse\n17472,bird\n17473,deer\n17474,bird\n17475,ship\n17476,ship\n17477,bird\n17478,airplane\n17479,airplane\n17480,horse\n17481,deer\n17482,frog\n17483,deer\n17484,horse\n17485,cat\n17486,cat\n17487,airplane\n17488,bird\n17489,cat\n17490,truck\n17491,frog\n17492,airplane\n17493,airplane\n17494,frog\n17495,automobile\n17496,dog\n17497,deer\n17498,truck\n17499,truck\n17500,automobile\n17501,frog\n17502,horse\n17503,frog\n17504,truck\n17505,truck\n17506,bird\n17507,dog\n17508,deer\n17509,truck\n17510,ship\n17511,deer\n17512,horse\n17513,dog\n17514,airplane\n17515,frog\n17516,automobile\n17517,frog\n17518,frog\n17519,deer\n17520,cat\n17521,truck\n17522,cat\n17523,dog\n17524,frog\n17525,ship\n17526,bird\n17527,bird\n17528,horse\n17529,horse\n17530,deer\n17531,cat\n17532,airplane\n17533,deer\n17534,frog\n17535,airplane\n17536,ship\n17537,dog\n17538,horse\n17539,horse\n17540,frog\n17541,truck\n17542,truck\n17543,airplane\n17544,bird\n17545,frog\n17546,bird\n17547,dog\n17548,truck\n17549,airplane\n17550,bird\n17551,deer\n17552,truck\n17553,cat\n17554,frog\n17555,airplane\n17556,horse\n17557,airplane\n17558,frog\n17559,dog\n17560,cat\n17561,deer\n17562,ship\n17563,deer\n17564,deer\n17565,deer\n17566,horse\n17567,frog\n17568,deer\n17569,frog\n17570,deer\n17571,horse\n17572,deer\n17573,horse\n17574,cat\n17575,dog\n17576,deer\n17577,deer\n17578,horse\n17579,truck\n17580,automobile\n17581,ship\n17582,bird\n17583,frog\n17584,dog\n17585,frog\n17586,ship\n17587,frog\n17588,deer\n17589,automobile\n17590,horse\n17591,horse\n17592,truck\n17593,ship\n17594,deer\n17595,truck\n17596,horse\n17597,bird\n17598,deer\n17599,horse\n17600,truck\n17601,bird\n17602,airplane\n17603,truck\n17604,deer\n17605,dog\n17606,automobile\n17607,frog\n17608,bird\n17609,ship\n17610,dog\n17611,cat\n17612,deer\n17613,ship\n17614,horse\n17615,horse\n17616,deer\n17617,deer\n17618,ship\n17619,truck\n17620,deer\n17621,truck\n17622,frog\n17623,cat\n17624,bird\n17625,truck\n17626,bird\n17627,cat\n17628,dog\n17629,cat\n17630,horse\n17631,dog\n17632,bird\n17633,airplane\n17634,airplane\n17635,automobile\n17636,ship\n17637,cat\n17638,deer\n17639,dog\n17640,dog\n17641,ship\n17642,airplane\n17643,deer\n17644,frog\n17645,airplane\n17646,deer\n17647,automobile\n17648,cat\n17649,airplane\n17650,truck\n17651,ship\n17652,frog\n17653,dog\n17654,ship\n17655,dog\n17656,truck\n17657,dog\n17658,truck\n17659,horse\n17660,automobile\n17661,horse\n17662,dog\n17663,automobile\n17664,cat\n17665,cat\n17666,airplane\n17667,bird\n17668,deer\n17669,deer\n17670,horse\n17671,cat\n17672,truck\n17673,horse\n17674,cat\n17675,automobile\n17676,dog\n17677,dog\n17678,frog\n17679,ship\n17680,airplane\n17681,dog\n17682,bird\n17683,ship\n17684,dog\n17685,ship\n17686,cat\n17687,ship\n17688,truck\n17689,truck\n17690,frog\n17691,deer\n17692,frog\n17693,deer\n17694,horse\n17695,frog\n17696,airplane\n17697,deer\n17698,deer\n17699,ship\n17700,cat\n17701,bird\n17702,ship\n17703,bird\n17704,truck\n17705,bird\n17706,frog\n17707,dog\n17708,truck\n17709,cat\n17710,truck\n17711,airplane\n17712,deer\n17713,automobile\n17714,deer\n17715,frog\n17716,horse\n17717,airplane\n17718,automobile\n17719,ship\n17720,automobile\n17721,ship\n17722,horse\n17723,deer\n17724,frog\n17725,deer\n17726,automobile\n17727,cat\n17728,dog\n17729,frog\n17730,deer\n17731,automobile\n17732,bird\n17733,airplane\n17734,frog\n17735,dog\n17736,truck\n17737,bird\n17738,airplane\n17739,ship\n17740,bird\n17741,truck\n17742,horse\n17743,truck\n17744,automobile\n17745,truck\n17746,truck\n17747,automobile\n17748,bird\n17749,dog\n17750,cat\n17751,deer\n17752,deer\n17753,bird\n17754,ship\n17755,cat\n17756,frog\n17757,horse\n17758,frog\n17759,dog\n17760,frog\n17761,airplane\n17762,truck\n17763,truck\n17764,dog\n17765,frog\n17766,ship\n17767,deer\n17768,truck\n17769,truck\n17770,deer\n17771,dog\n17772,ship\n17773,airplane\n17774,cat\n17775,airplane\n17776,automobile\n17777,airplane\n17778,bird\n17779,cat\n17780,deer\n17781,ship\n17782,dog\n17783,deer\n17784,horse\n17785,truck\n17786,frog\n17787,cat\n17788,cat\n17789,automobile\n17790,cat\n17791,deer\n17792,cat\n17793,cat\n17794,dog\n17795,cat\n17796,ship\n17797,ship\n17798,frog\n17799,frog\n17800,automobile\n17801,dog\n17802,frog\n17803,frog\n17804,bird\n17805,frog\n17806,dog\n17807,bird\n17808,deer\n17809,cat\n17810,horse\n17811,horse\n17812,bird\n17813,cat\n17814,horse\n17815,truck\n17816,truck\n17817,airplane\n17818,deer\n17819,cat\n17820,frog\n17821,frog\n17822,deer\n17823,truck\n17824,automobile\n17825,dog\n17826,dog\n17827,airplane\n17828,cat\n17829,bird\n17830,deer\n17831,automobile\n17832,automobile\n17833,bird\n17834,deer\n17835,airplane\n17836,truck\n17837,deer\n17838,truck\n17839,truck\n17840,ship\n17841,cat\n17842,deer\n17843,horse\n17844,truck\n17845,cat\n17846,cat\n17847,deer\n17848,cat\n17849,airplane\n17850,dog\n17851,cat\n17852,horse\n17853,truck\n17854,cat\n17855,dog\n17856,bird\n17857,cat\n17858,ship\n17859,dog\n17860,truck\n17861,horse\n17862,cat\n17863,dog\n17864,ship\n17865,cat\n17866,frog\n17867,deer\n17868,cat\n17869,cat\n17870,truck\n17871,frog\n17872,frog\n17873,airplane\n17874,dog\n17875,cat\n17876,airplane\n17877,ship\n17878,automobile\n17879,horse\n17880,bird\n17881,dog\n17882,frog\n17883,deer\n17884,cat\n17885,frog\n17886,bird\n17887,airplane\n17888,frog\n17889,cat\n17890,cat\n17891,cat\n17892,horse\n17893,cat\n17894,automobile\n17895,bird\n17896,dog\n17897,horse\n17898,frog\n17899,dog\n17900,ship\n17901,dog\n17902,deer\n17903,dog\n17904,truck\n17905,cat\n17906,cat\n17907,dog\n17908,dog\n17909,frog\n17910,airplane\n17911,ship\n17912,automobile\n17913,horse\n17914,deer\n17915,deer\n17916,frog\n17917,automobile\n17918,cat\n17919,airplane\n17920,airplane\n17921,automobile\n17922,cat\n17923,airplane\n17924,bird\n17925,cat\n17926,horse\n17927,airplane\n17928,ship\n17929,automobile\n17930,deer\n17931,frog\n17932,deer\n17933,airplane\n17934,horse\n17935,cat\n17936,deer\n17937,bird\n17938,ship\n17939,truck\n17940,horse\n17941,truck\n17942,horse\n17943,frog\n17944,bird\n17945,truck\n17946,bird\n17947,deer\n17948,ship\n17949,truck\n17950,ship\n17951,bird\n17952,frog\n17953,cat\n17954,horse\n17955,deer\n17956,ship\n17957,horse\n17958,frog\n17959,horse\n17960,deer\n17961,truck\n17962,automobile\n17963,cat\n17964,dog\n17965,ship\n17966,frog\n17967,dog\n17968,dog\n17969,bird\n17970,ship\n17971,ship\n17972,bird\n17973,cat\n17974,truck\n17975,bird\n17976,bird\n17977,automobile\n17978,deer\n17979,frog\n17980,cat\n17981,bird\n17982,deer\n17983,deer\n17984,deer\n17985,dog\n17986,airplane\n17987,truck\n17988,deer\n17989,cat\n17990,airplane\n17991,deer\n17992,ship\n17993,cat\n17994,frog\n17995,cat\n17996,truck\n17997,deer\n17998,deer\n17999,ship\n18000,airplane\n18001,ship\n18002,horse\n18003,bird\n18004,bird\n18005,airplane\n18006,frog\n18007,cat\n18008,cat\n18009,truck\n18010,bird\n18011,frog\n18012,truck\n18013,bird\n18014,airplane\n18015,horse\n18016,airplane\n18017,truck\n18018,truck\n18019,horse\n18020,airplane\n18021,bird\n18022,frog\n18023,horse\n18024,deer\n18025,automobile\n18026,frog\n18027,frog\n18028,cat\n18029,airplane\n18030,deer\n18031,truck\n18032,dog\n18033,airplane\n18034,airplane\n18035,cat\n18036,airplane\n18037,ship\n18038,truck\n18039,dog\n18040,cat\n18041,frog\n18042,ship\n18043,dog\n18044,airplane\n18045,cat\n18046,horse\n18047,cat\n18048,cat\n18049,dog\n18050,automobile\n18051,horse\n18052,deer\n18053,dog\n18054,deer\n18055,cat\n18056,bird\n18057,automobile\n18058,airplane\n18059,frog\n18060,horse\n18061,truck\n18062,cat\n18063,frog\n18064,deer\n18065,truck\n18066,cat\n18067,deer\n18068,airplane\n18069,airplane\n18070,dog\n18071,deer\n18072,automobile\n18073,ship\n18074,airplane\n18075,cat\n18076,dog\n18077,frog\n18078,frog\n18079,truck\n18080,bird\n18081,automobile\n18082,deer\n18083,frog\n18084,ship\n18085,deer\n18086,cat\n18087,cat\n18088,bird\n18089,automobile\n18090,bird\n18091,frog\n18092,frog\n18093,airplane\n18094,airplane\n18095,airplane\n18096,dog\n18097,horse\n18098,bird\n18099,dog\n18100,frog\n18101,truck\n18102,cat\n18103,cat\n18104,dog\n18105,frog\n18106,cat\n18107,frog\n18108,horse\n18109,deer\n18110,frog\n18111,horse\n18112,deer\n18113,cat\n18114,dog\n18115,cat\n18116,automobile\n18117,cat\n18118,horse\n18119,dog\n18120,deer\n18121,truck\n18122,automobile\n18123,ship\n18124,frog\n18125,cat\n18126,truck\n18127,horse\n18128,cat\n18129,bird\n18130,airplane\n18131,horse\n18132,bird\n18133,cat\n18134,dog\n18135,deer\n18136,automobile\n18137,dog\n18138,frog\n18139,dog\n18140,frog\n18141,airplane\n18142,frog\n18143,cat\n18144,horse\n18145,cat\n18146,cat\n18147,horse\n18148,frog\n18149,horse\n18150,dog\n18151,automobile\n18152,truck\n18153,ship\n18154,ship\n18155,horse\n18156,dog\n18157,cat\n18158,cat\n18159,frog\n18160,bird\n18161,frog\n18162,horse\n18163,truck\n18164,dog\n18165,frog\n18166,airplane\n18167,horse\n18168,frog\n18169,horse\n18170,deer\n18171,dog\n18172,horse\n18173,truck\n18174,airplane\n18175,ship\n18176,dog\n18177,deer\n18178,ship\n18179,deer\n18180,truck\n18181,airplane\n18182,airplane\n18183,frog\n18184,airplane\n18185,horse\n18186,horse\n18187,truck\n18188,airplane\n18189,deer\n18190,airplane\n18191,frog\n18192,deer\n18193,dog\n18194,dog\n18195,truck\n18196,deer\n18197,cat\n18198,cat\n18199,dog\n18200,ship\n18201,ship\n18202,frog\n18203,horse\n18204,automobile\n18205,horse\n18206,ship\n18207,cat\n18208,dog\n18209,frog\n18210,truck\n18211,airplane\n18212,ship\n18213,frog\n18214,ship\n18215,dog\n18216,deer\n18217,frog\n18218,airplane\n18219,dog\n18220,cat\n18221,cat\n18222,horse\n18223,frog\n18224,dog\n18225,truck\n18226,cat\n18227,cat\n18228,truck\n18229,truck\n18230,frog\n18231,automobile\n18232,automobile\n18233,cat\n18234,truck\n18235,automobile\n18236,dog\n18237,deer\n18238,deer\n18239,airplane\n18240,dog\n18241,bird\n18242,cat\n18243,dog\n18244,dog\n18245,truck\n18246,horse\n18247,automobile\n18248,deer\n18249,automobile\n18250,cat\n18251,bird\n18252,dog\n18253,bird\n18254,airplane\n18255,airplane\n18256,truck\n18257,cat\n18258,automobile\n18259,deer\n18260,ship\n18261,airplane\n18262,horse\n18263,truck\n18264,dog\n18265,horse\n18266,automobile\n18267,deer\n18268,horse\n18269,dog\n18270,frog\n18271,frog\n18272,bird\n18273,dog\n18274,automobile\n18275,deer\n18276,cat\n18277,airplane\n18278,bird\n18279,truck\n18280,dog\n18281,truck\n18282,dog\n18283,truck\n18284,ship\n18285,frog\n18286,airplane\n18287,bird\n18288,cat\n18289,cat\n18290,bird\n18291,frog\n18292,cat\n18293,cat\n18294,bird\n18295,cat\n18296,bird\n18297,dog\n18298,dog\n18299,cat\n18300,frog\n18301,bird\n18302,horse\n18303,dog\n18304,bird\n18305,cat\n18306,airplane\n18307,automobile\n18308,dog\n18309,horse\n18310,cat\n18311,deer\n18312,deer\n18313,deer\n18314,dog\n18315,airplane\n18316,airplane\n18317,ship\n18318,frog\n18319,automobile\n18320,truck\n18321,truck\n18322,cat\n18323,cat\n18324,truck\n18325,airplane\n18326,ship\n18327,horse\n18328,deer\n18329,bird\n18330,truck\n18331,dog\n18332,bird\n18333,cat\n18334,dog\n18335,horse\n18336,frog\n18337,ship\n18338,deer\n18339,cat\n18340,bird\n18341,ship\n18342,cat\n18343,dog\n18344,horse\n18345,cat\n18346,truck\n18347,cat\n18348,horse\n18349,truck\n18350,frog\n18351,deer\n18352,automobile\n18353,cat\n18354,frog\n18355,horse\n18356,frog\n18357,cat\n18358,deer\n18359,frog\n18360,airplane\n18361,ship\n18362,ship\n18363,deer\n18364,ship\n18365,deer\n18366,dog\n18367,deer\n18368,bird\n18369,frog\n18370,deer\n18371,cat\n18372,deer\n18373,airplane\n18374,ship\n18375,cat\n18376,frog\n18377,truck\n18378,dog\n18379,truck\n18380,airplane\n18381,truck\n18382,airplane\n18383,cat\n18384,cat\n18385,frog\n18386,dog\n18387,cat\n18388,dog\n18389,horse\n18390,horse\n18391,bird\n18392,dog\n18393,cat\n18394,horse\n18395,airplane\n18396,dog\n18397,deer\n18398,bird\n18399,frog\n18400,automobile\n18401,frog\n18402,cat\n18403,frog\n18404,frog\n18405,deer\n18406,ship\n18407,frog\n18408,dog\n18409,truck\n18410,airplane\n18411,deer\n18412,automobile\n18413,deer\n18414,deer\n18415,cat\n18416,airplane\n18417,automobile\n18418,deer\n18419,airplane\n18420,frog\n18421,horse\n18422,cat\n18423,horse\n18424,dog\n18425,truck\n18426,frog\n18427,bird\n18428,cat\n18429,ship\n18430,truck\n18431,cat\n18432,deer\n18433,deer\n18434,cat\n18435,cat\n18436,cat\n18437,deer\n18438,dog\n18439,bird\n18440,deer\n18441,bird\n18442,dog\n18443,truck\n18444,horse\n18445,airplane\n18446,dog\n18447,frog\n18448,truck\n18449,cat\n18450,truck\n18451,airplane\n18452,frog\n18453,truck\n18454,truck\n18455,dog\n18456,horse\n18457,dog\n18458,deer\n18459,automobile\n18460,airplane\n18461,cat\n18462,horse\n18463,cat\n18464,deer\n18465,dog\n18466,dog\n18467,bird\n18468,deer\n18469,ship\n18470,truck\n18471,frog\n18472,ship\n18473,ship\n18474,cat\n18475,dog\n18476,airplane\n18477,deer\n18478,dog\n18479,frog\n18480,deer\n18481,dog\n18482,bird\n18483,truck\n18484,bird\n18485,deer\n18486,horse\n18487,bird\n18488,frog\n18489,truck\n18490,deer\n18491,horse\n18492,cat\n18493,ship\n18494,cat\n18495,airplane\n18496,horse\n18497,dog\n18498,bird\n18499,frog\n18500,cat\n18501,cat\n18502,deer\n18503,airplane\n18504,airplane\n18505,ship\n18506,horse\n18507,dog\n18508,ship\n18509,frog\n18510,frog\n18511,frog\n18512,airplane\n18513,truck\n18514,bird\n18515,automobile\n18516,horse\n18517,deer\n18518,horse\n18519,horse\n18520,cat\n18521,airplane\n18522,airplane\n18523,deer\n18524,airplane\n18525,dog\n18526,deer\n18527,deer\n18528,truck\n18529,horse\n18530,bird\n18531,horse\n18532,ship\n18533,dog\n18534,deer\n18535,frog\n18536,cat\n18537,ship\n18538,horse\n18539,horse\n18540,ship\n18541,deer\n18542,bird\n18543,horse\n18544,ship\n18545,truck\n18546,deer\n18547,dog\n18548,horse\n18549,deer\n18550,deer\n18551,frog\n18552,frog\n18553,horse\n18554,cat\n18555,cat\n18556,frog\n18557,truck\n18558,ship\n18559,airplane\n18560,bird\n18561,dog\n18562,deer\n18563,cat\n18564,deer\n18565,ship\n18566,truck\n18567,cat\n18568,dog\n18569,horse\n18570,cat\n18571,deer\n18572,deer\n18573,cat\n18574,frog\n18575,frog\n18576,dog\n18577,airplane\n18578,cat\n18579,truck\n18580,frog\n18581,frog\n18582,airplane\n18583,cat\n18584,airplane\n18585,truck\n18586,cat\n18587,horse\n18588,cat\n18589,bird\n18590,automobile\n18591,airplane\n18592,horse\n18593,cat\n18594,dog\n18595,frog\n18596,horse\n18597,bird\n18598,ship\n18599,ship\n18600,deer\n18601,ship\n18602,bird\n18603,cat\n18604,bird\n18605,deer\n18606,frog\n18607,dog\n18608,deer\n18609,bird\n18610,cat\n18611,truck\n18612,dog\n18613,ship\n18614,deer\n18615,frog\n18616,deer\n18617,cat\n18618,ship\n18619,automobile\n18620,ship\n18621,horse\n18622,automobile\n18623,airplane\n18624,horse\n18625,cat\n18626,dog\n18627,dog\n18628,bird\n18629,bird\n18630,horse\n18631,truck\n18632,frog\n18633,frog\n18634,truck\n18635,ship\n18636,dog\n18637,dog\n18638,airplane\n18639,truck\n18640,automobile\n18641,deer\n18642,deer\n18643,frog\n18644,dog\n18645,frog\n18646,truck\n18647,horse\n18648,horse\n18649,frog\n18650,truck\n18651,cat\n18652,cat\n18653,bird\n18654,ship\n18655,horse\n18656,airplane\n18657,bird\n18658,deer\n18659,truck\n18660,dog\n18661,cat\n18662,truck\n18663,bird\n18664,deer\n18665,automobile\n18666,cat\n18667,truck\n18668,dog\n18669,automobile\n18670,horse\n18671,deer\n18672,cat\n18673,airplane\n18674,ship\n18675,automobile\n18676,cat\n18677,deer\n18678,truck\n18679,deer\n18680,bird\n18681,frog\n18682,automobile\n18683,automobile\n18684,airplane\n18685,horse\n18686,frog\n18687,frog\n18688,deer\n18689,cat\n18690,cat\n18691,deer\n18692,airplane\n18693,automobile\n18694,airplane\n18695,bird\n18696,truck\n18697,dog\n18698,horse\n18699,truck\n18700,automobile\n18701,frog\n18702,truck\n18703,horse\n18704,truck\n18705,dog\n18706,horse\n18707,automobile\n18708,cat\n18709,horse\n18710,deer\n18711,dog\n18712,ship\n18713,dog\n18714,bird\n18715,truck\n18716,deer\n18717,ship\n18718,frog\n18719,ship\n18720,ship\n18721,frog\n18722,cat\n18723,airplane\n18724,frog\n18725,ship\n18726,frog\n18727,automobile\n18728,cat\n18729,truck\n18730,cat\n18731,ship\n18732,frog\n18733,frog\n18734,dog\n18735,horse\n18736,deer\n18737,ship\n18738,deer\n18739,airplane\n18740,deer\n18741,cat\n18742,horse\n18743,frog\n18744,dog\n18745,truck\n18746,bird\n18747,truck\n18748,frog\n18749,horse\n18750,horse\n18751,ship\n18752,ship\n18753,airplane\n18754,ship\n18755,frog\n18756,bird\n18757,deer\n18758,frog\n18759,truck\n18760,horse\n18761,bird\n18762,deer\n18763,truck\n18764,frog\n18765,truck\n18766,cat\n18767,airplane\n18768,horse\n18769,bird\n18770,ship\n18771,dog\n18772,horse\n18773,ship\n18774,deer\n18775,dog\n18776,ship\n18777,ship\n18778,cat\n18779,ship\n18780,deer\n18781,cat\n18782,horse\n18783,airplane\n18784,bird\n18785,ship\n18786,truck\n18787,airplane\n18788,truck\n18789,deer\n18790,ship\n18791,horse\n18792,dog\n18793,horse\n18794,truck\n18795,horse\n18796,cat\n18797,bird\n18798,airplane\n18799,frog\n18800,dog\n18801,truck\n18802,frog\n18803,cat\n18804,truck\n18805,frog\n18806,automobile\n18807,truck\n18808,bird\n18809,ship\n18810,frog\n18811,dog\n18812,deer\n18813,bird\n18814,deer\n18815,bird\n18816,deer\n18817,automobile\n18818,frog\n18819,airplane\n18820,deer\n18821,airplane\n18822,airplane\n18823,cat\n18824,bird\n18825,cat\n18826,dog\n18827,dog\n18828,dog\n18829,horse\n18830,horse\n18831,airplane\n18832,deer\n18833,airplane\n18834,dog\n18835,frog\n18836,dog\n18837,cat\n18838,cat\n18839,airplane\n18840,truck\n18841,dog\n18842,automobile\n18843,airplane\n18844,cat\n18845,ship\n18846,horse\n18847,horse\n18848,dog\n18849,bird\n18850,truck\n18851,airplane\n18852,deer\n18853,deer\n18854,airplane\n18855,deer\n18856,ship\n18857,horse\n18858,deer\n18859,airplane\n18860,frog\n18861,horse\n18862,ship\n18863,airplane\n18864,frog\n18865,deer\n18866,cat\n18867,truck\n18868,ship\n18869,deer\n18870,ship\n18871,dog\n18872,dog\n18873,ship\n18874,airplane\n18875,airplane\n18876,cat\n18877,automobile\n18878,dog\n18879,horse\n18880,cat\n18881,airplane\n18882,bird\n18883,truck\n18884,deer\n18885,deer\n18886,deer\n18887,deer\n18888,cat\n18889,dog\n18890,airplane\n18891,deer\n18892,cat\n18893,frog\n18894,deer\n18895,ship\n18896,ship\n18897,horse\n18898,cat\n18899,dog\n18900,deer\n18901,bird\n18902,dog\n18903,truck\n18904,airplane\n18905,horse\n18906,airplane\n18907,cat\n18908,frog\n18909,deer\n18910,airplane\n18911,deer\n18912,bird\n18913,deer\n18914,frog\n18915,cat\n18916,truck\n18917,automobile\n18918,airplane\n18919,cat\n18920,deer\n18921,truck\n18922,cat\n18923,automobile\n18924,automobile\n18925,dog\n18926,bird\n18927,cat\n18928,dog\n18929,truck\n18930,deer\n18931,dog\n18932,frog\n18933,ship\n18934,dog\n18935,ship\n18936,horse\n18937,airplane\n18938,deer\n18939,automobile\n18940,airplane\n18941,truck\n18942,deer\n18943,deer\n18944,horse\n18945,bird\n18946,cat\n18947,cat\n18948,dog\n18949,airplane\n18950,cat\n18951,airplane\n18952,cat\n18953,horse\n18954,airplane\n18955,airplane\n18956,airplane\n18957,cat\n18958,horse\n18959,automobile\n18960,dog\n18961,airplane\n18962,ship\n18963,horse\n18964,dog\n18965,horse\n18966,cat\n18967,bird\n18968,dog\n18969,airplane\n18970,deer\n18971,horse\n18972,airplane\n18973,cat\n18974,dog\n18975,horse\n18976,ship\n18977,dog\n18978,dog\n18979,truck\n18980,cat\n18981,bird\n18982,horse\n18983,deer\n18984,airplane\n18985,frog\n18986,cat\n18987,bird\n18988,horse\n18989,frog\n18990,airplane\n18991,airplane\n18992,airplane\n18993,deer\n18994,bird\n18995,truck\n18996,truck\n18997,airplane\n18998,truck\n18999,automobile\n19000,horse\n19001,horse\n19002,airplane\n19003,truck\n19004,automobile\n19005,horse\n19006,deer\n19007,automobile\n19008,frog\n19009,cat\n19010,cat\n19011,frog\n19012,cat\n19013,dog\n19014,cat\n19015,deer\n19016,cat\n19017,truck\n19018,cat\n19019,deer\n19020,horse\n19021,airplane\n19022,deer\n19023,bird\n19024,horse\n19025,dog\n19026,dog\n19027,cat\n19028,bird\n19029,dog\n19030,ship\n19031,dog\n19032,bird\n19033,cat\n19034,frog\n19035,truck\n19036,airplane\n19037,airplane\n19038,truck\n19039,deer\n19040,cat\n19041,bird\n19042,cat\n19043,frog\n19044,cat\n19045,deer\n19046,truck\n19047,frog\n19048,frog\n19049,bird\n19050,dog\n19051,frog\n19052,dog\n19053,airplane\n19054,frog\n19055,bird\n19056,deer\n19057,dog\n19058,cat\n19059,horse\n19060,automobile\n19061,bird\n19062,dog\n19063,ship\n19064,frog\n19065,dog\n19066,frog\n19067,airplane\n19068,dog\n19069,truck\n19070,cat\n19071,horse\n19072,airplane\n19073,ship\n19074,cat\n19075,truck\n19076,deer\n19077,bird\n19078,truck\n19079,cat\n19080,deer\n19081,dog\n19082,automobile\n19083,airplane\n19084,deer\n19085,ship\n19086,airplane\n19087,cat\n19088,cat\n19089,truck\n19090,ship\n19091,deer\n19092,ship\n19093,deer\n19094,ship\n19095,cat\n19096,deer\n19097,deer\n19098,ship\n19099,airplane\n19100,ship\n19101,frog\n19102,cat\n19103,deer\n19104,ship\n19105,cat\n19106,truck\n19107,deer\n19108,automobile\n19109,frog\n19110,dog\n19111,dog\n19112,deer\n19113,truck\n19114,ship\n19115,cat\n19116,deer\n19117,deer\n19118,truck\n19119,truck\n19120,horse\n19121,horse\n19122,frog\n19123,horse\n19124,cat\n19125,cat\n19126,bird\n19127,truck\n19128,ship\n19129,bird\n19130,cat\n19131,deer\n19132,truck\n19133,dog\n19134,cat\n19135,automobile\n19136,deer\n19137,ship\n19138,bird\n19139,dog\n19140,frog\n19141,bird\n19142,frog\n19143,automobile\n19144,frog\n19145,bird\n19146,dog\n19147,automobile\n19148,cat\n19149,cat\n19150,deer\n19151,cat\n19152,deer\n19153,truck\n19154,truck\n19155,dog\n19156,frog\n19157,truck\n19158,automobile\n19159,automobile\n19160,horse\n19161,airplane\n19162,horse\n19163,dog\n19164,truck\n19165,airplane\n19166,deer\n19167,deer\n19168,bird\n19169,truck\n19170,horse\n19171,truck\n19172,ship\n19173,ship\n19174,deer\n19175,cat\n19176,frog\n19177,bird\n19178,deer\n19179,airplane\n19180,automobile\n19181,deer\n19182,airplane\n19183,automobile\n19184,ship\n19185,horse\n19186,truck\n19187,deer\n19188,deer\n19189,truck\n19190,dog\n19191,dog\n19192,bird\n19193,deer\n19194,truck\n19195,ship\n19196,cat\n19197,cat\n19198,bird\n19199,frog\n19200,bird\n19201,ship\n19202,cat\n19203,bird\n19204,airplane\n19205,truck\n19206,truck\n19207,cat\n19208,deer\n19209,airplane\n19210,deer\n19211,deer\n19212,cat\n19213,dog\n19214,dog\n19215,deer\n19216,deer\n19217,deer\n19218,deer\n19219,airplane\n19220,automobile\n19221,airplane\n19222,deer\n19223,cat\n19224,ship\n19225,airplane\n19226,frog\n19227,ship\n19228,frog\n19229,frog\n19230,frog\n19231,deer\n19232,ship\n19233,horse\n19234,deer\n19235,dog\n19236,cat\n19237,horse\n19238,cat\n19239,horse\n19240,horse\n19241,deer\n19242,dog\n19243,frog\n19244,cat\n19245,deer\n19246,bird\n19247,airplane\n19248,truck\n19249,truck\n19250,deer\n19251,horse\n19252,cat\n19253,horse\n19254,dog\n19255,ship\n19256,frog\n19257,horse\n19258,bird\n19259,airplane\n19260,bird\n19261,bird\n19262,ship\n19263,bird\n19264,deer\n19265,dog\n19266,cat\n19267,cat\n19268,automobile\n19269,ship\n19270,airplane\n19271,deer\n19272,frog\n19273,frog\n19274,cat\n19275,automobile\n19276,frog\n19277,automobile\n19278,frog\n19279,dog\n19280,bird\n19281,dog\n19282,frog\n19283,cat\n19284,horse\n19285,truck\n19286,truck\n19287,dog\n19288,cat\n19289,ship\n19290,frog\n19291,airplane\n19292,dog\n19293,frog\n19294,truck\n19295,bird\n19296,horse\n19297,bird\n19298,cat\n19299,deer\n19300,automobile\n19301,dog\n19302,horse\n19303,cat\n19304,truck\n19305,frog\n19306,cat\n19307,dog\n19308,frog\n19309,truck\n19310,ship\n19311,frog\n19312,ship\n19313,cat\n19314,dog\n19315,deer\n19316,truck\n19317,cat\n19318,frog\n19319,dog\n19320,bird\n19321,horse\n19322,bird\n19323,deer\n19324,frog\n19325,dog\n19326,deer\n19327,deer\n19328,automobile\n19329,deer\n19330,frog\n19331,cat\n19332,horse\n19333,cat\n19334,automobile\n19335,frog\n19336,ship\n19337,truck\n19338,deer\n19339,automobile\n19340,truck\n19341,horse\n19342,frog\n19343,cat\n19344,automobile\n19345,truck\n19346,bird\n19347,truck\n19348,bird\n19349,dog\n19350,cat\n19351,truck\n19352,airplane\n19353,airplane\n19354,automobile\n19355,dog\n19356,cat\n19357,horse\n19358,deer\n19359,deer\n19360,frog\n19361,deer\n19362,deer\n19363,truck\n19364,horse\n19365,horse\n19366,deer\n19367,deer\n19368,frog\n19369,cat\n19370,dog\n19371,cat\n19372,cat\n19373,cat\n19374,horse\n19375,dog\n19376,cat\n19377,bird\n19378,bird\n19379,dog\n19380,cat\n19381,dog\n19382,frog\n19383,cat\n19384,deer\n19385,automobile\n19386,cat\n19387,frog\n19388,truck\n19389,frog\n19390,horse\n19391,dog\n19392,truck\n19393,ship\n19394,bird\n19395,ship\n19396,cat\n19397,deer\n19398,deer\n19399,deer\n19400,dog\n19401,automobile\n19402,bird\n19403,ship\n19404,automobile\n19405,frog\n19406,cat\n19407,truck\n19408,horse\n19409,cat\n19410,ship\n19411,airplane\n19412,horse\n19413,frog\n19414,bird\n19415,dog\n19416,bird\n19417,deer\n19418,horse\n19419,horse\n19420,dog\n19421,horse\n19422,bird\n19423,horse\n19424,horse\n19425,ship\n19426,cat\n19427,ship\n19428,cat\n19429,bird\n19430,frog\n19431,dog\n19432,dog\n19433,dog\n19434,frog\n19435,truck\n19436,bird\n19437,automobile\n19438,dog\n19439,deer\n19440,dog\n19441,truck\n19442,truck\n19443,airplane\n19444,ship\n19445,bird\n19446,ship\n19447,bird\n19448,cat\n19449,cat\n19450,cat\n19451,bird\n19452,cat\n19453,horse\n19454,automobile\n19455,deer\n19456,dog\n19457,cat\n19458,truck\n19459,truck\n19460,ship\n19461,airplane\n19462,horse\n19463,automobile\n19464,frog\n19465,dog\n19466,truck\n19467,cat\n19468,dog\n19469,truck\n19470,deer\n19471,dog\n19472,cat\n19473,bird\n19474,automobile\n19475,ship\n19476,bird\n19477,automobile\n19478,airplane\n19479,deer\n19480,deer\n19481,frog\n19482,ship\n19483,deer\n19484,cat\n19485,deer\n19486,cat\n19487,horse\n19488,cat\n19489,frog\n19490,frog\n19491,deer\n19492,ship\n19493,horse\n19494,bird\n19495,dog\n19496,horse\n19497,airplane\n19498,deer\n19499,deer\n19500,deer\n19501,bird\n19502,cat\n19503,dog\n19504,bird\n19505,frog\n19506,frog\n19507,truck\n19508,deer\n19509,dog\n19510,cat\n19511,cat\n19512,frog\n19513,bird\n19514,deer\n19515,bird\n19516,frog\n19517,automobile\n19518,deer\n19519,cat\n19520,ship\n19521,airplane\n19522,cat\n19523,dog\n19524,frog\n19525,deer\n19526,ship\n19527,truck\n19528,dog\n19529,ship\n19530,deer\n19531,dog\n19532,deer\n19533,cat\n19534,truck\n19535,deer\n19536,ship\n19537,deer\n19538,dog\n19539,airplane\n19540,dog\n19541,ship\n19542,deer\n19543,truck\n19544,horse\n19545,ship\n19546,deer\n19547,airplane\n19548,dog\n19549,bird\n19550,dog\n19551,dog\n19552,deer\n19553,cat\n19554,frog\n19555,airplane\n19556,frog\n19557,dog\n19558,horse\n19559,cat\n19560,dog\n19561,automobile\n19562,truck\n19563,deer\n19564,automobile\n19565,frog\n19566,automobile\n19567,truck\n19568,deer\n19569,truck\n19570,automobile\n19571,automobile\n19572,airplane\n19573,deer\n19574,truck\n19575,dog\n19576,dog\n19577,cat\n19578,dog\n19579,truck\n19580,automobile\n19581,airplane\n19582,frog\n19583,airplane\n19584,cat\n19585,deer\n19586,bird\n19587,deer\n19588,airplane\n19589,truck\n19590,horse\n19591,bird\n19592,truck\n19593,truck\n19594,deer\n19595,horse\n19596,dog\n19597,deer\n19598,dog\n19599,automobile\n19600,horse\n19601,truck\n19602,truck\n19603,ship\n19604,deer\n19605,horse\n19606,dog\n19607,cat\n19608,ship\n19609,deer\n19610,truck\n19611,frog\n19612,airplane\n19613,deer\n19614,ship\n19615,frog\n19616,deer\n19617,deer\n19618,bird\n19619,bird\n19620,ship\n19621,frog\n19622,frog\n19623,truck\n19624,dog\n19625,cat\n19626,automobile\n19627,airplane\n19628,ship\n19629,ship\n19630,airplane\n19631,airplane\n19632,cat\n19633,cat\n19634,cat\n19635,automobile\n19636,cat\n19637,deer\n19638,truck\n19639,horse\n19640,deer\n19641,truck\n19642,dog\n19643,ship\n19644,frog\n19645,frog\n19646,airplane\n19647,cat\n19648,frog\n19649,frog\n19650,cat\n19651,frog\n19652,dog\n19653,automobile\n19654,truck\n19655,automobile\n19656,dog\n19657,frog\n19658,bird\n19659,cat\n19660,cat\n19661,deer\n19662,cat\n19663,frog\n19664,horse\n19665,dog\n19666,truck\n19667,truck\n19668,deer\n19669,bird\n19670,ship\n19671,frog\n19672,frog\n19673,airplane\n19674,deer\n19675,dog\n19676,horse\n19677,deer\n19678,horse\n19679,truck\n19680,dog\n19681,deer\n19682,airplane\n19683,frog\n19684,ship\n19685,frog\n19686,horse\n19687,truck\n19688,dog\n19689,horse\n19690,deer\n19691,ship\n19692,automobile\n19693,automobile\n19694,cat\n19695,truck\n19696,dog\n19697,cat\n19698,ship\n19699,dog\n19700,deer\n19701,frog\n19702,airplane\n19703,airplane\n19704,truck\n19705,airplane\n19706,bird\n19707,cat\n19708,frog\n19709,deer\n19710,ship\n19711,cat\n19712,deer\n19713,automobile\n19714,ship\n19715,bird\n19716,ship\n19717,dog\n19718,cat\n19719,deer\n19720,horse\n19721,bird\n19722,automobile\n19723,ship\n19724,cat\n19725,dog\n19726,ship\n19727,cat\n19728,dog\n19729,cat\n19730,horse\n19731,dog\n19732,airplane\n19733,cat\n19734,horse\n19735,truck\n19736,cat\n19737,cat\n19738,bird\n19739,bird\n19740,frog\n19741,frog\n19742,ship\n19743,automobile\n19744,truck\n19745,frog\n19746,airplane\n19747,truck\n19748,deer\n19749,ship\n19750,truck\n19751,horse\n19752,horse\n19753,truck\n19754,automobile\n19755,ship\n19756,frog\n19757,frog\n19758,truck\n19759,truck\n19760,truck\n19761,frog\n19762,truck\n19763,cat\n19764,horse\n19765,deer\n19766,cat\n19767,horse\n19768,frog\n19769,deer\n19770,truck\n19771,airplane\n19772,dog\n19773,bird\n19774,ship\n19775,deer\n19776,horse\n19777,truck\n19778,airplane\n19779,horse\n19780,deer\n19781,cat\n19782,cat\n19783,horse\n19784,airplane\n19785,truck\n19786,ship\n19787,cat\n19788,deer\n19789,horse\n19790,automobile\n19791,deer\n19792,airplane\n19793,deer\n19794,frog\n19795,horse\n19796,bird\n19797,automobile\n19798,horse\n19799,frog\n19800,frog\n19801,truck\n19802,frog\n19803,cat\n19804,bird\n19805,automobile\n19806,truck\n19807,horse\n19808,dog\n19809,deer\n19810,airplane\n19811,frog\n19812,cat\n19813,dog\n19814,automobile\n19815,deer\n19816,cat\n19817,bird\n19818,horse\n19819,cat\n19820,horse\n19821,truck\n19822,cat\n19823,dog\n19824,frog\n19825,airplane\n19826,automobile\n19827,truck\n19828,dog\n19829,airplane\n19830,dog\n19831,truck\n19832,horse\n19833,horse\n19834,frog\n19835,truck\n19836,deer\n19837,deer\n19838,ship\n19839,frog\n19840,bird\n19841,bird\n19842,dog\n19843,deer\n19844,deer\n19845,cat\n19846,horse\n19847,deer\n19848,dog\n19849,deer\n19850,horse\n19851,dog\n19852,ship\n19853,dog\n19854,horse\n19855,frog\n19856,airplane\n19857,truck\n19858,frog\n19859,truck\n19860,cat\n19861,ship\n19862,horse\n19863,deer\n19864,cat\n19865,deer\n19866,truck\n19867,cat\n19868,ship\n19869,ship\n19870,ship\n19871,frog\n19872,horse\n19873,frog\n19874,horse\n19875,dog\n19876,truck\n19877,cat\n19878,bird\n19879,deer\n19880,automobile\n19881,cat\n19882,bird\n19883,deer\n19884,dog\n19885,airplane\n19886,ship\n19887,automobile\n19888,cat\n19889,dog\n19890,frog\n19891,truck\n19892,deer\n19893,bird\n19894,bird\n19895,cat\n19896,frog\n19897,frog\n19898,airplane\n19899,ship\n19900,frog\n19901,deer\n19902,truck\n19903,dog\n19904,horse\n19905,bird\n19906,cat\n19907,cat\n19908,deer\n19909,truck\n19910,ship\n19911,frog\n19912,ship\n19913,truck\n19914,horse\n19915,horse\n19916,ship\n19917,ship\n19918,cat\n19919,cat\n19920,deer\n19921,automobile\n19922,bird\n19923,ship\n19924,bird\n19925,cat\n19926,frog\n19927,deer\n19928,ship\n19929,frog\n19930,truck\n19931,horse\n19932,automobile\n19933,horse\n19934,frog\n19935,truck\n19936,ship\n19937,automobile\n19938,frog\n19939,truck\n19940,deer\n19941,dog\n19942,ship\n19943,deer\n19944,bird\n19945,bird\n19946,frog\n19947,airplane\n19948,horse\n19949,automobile\n19950,deer\n19951,dog\n19952,frog\n19953,bird\n19954,airplane\n19955,ship\n19956,bird\n19957,frog\n19958,deer\n19959,frog\n19960,cat\n19961,dog\n19962,cat\n19963,truck\n19964,ship\n19965,automobile\n19966,airplane\n19967,ship\n19968,dog\n19969,frog\n19970,deer\n19971,truck\n19972,frog\n19973,frog\n19974,horse\n19975,horse\n19976,frog\n19977,dog\n19978,horse\n19979,automobile\n19980,frog\n19981,horse\n19982,bird\n19983,airplane\n19984,frog\n19985,truck\n19986,airplane\n19987,dog\n19988,deer\n19989,truck\n19990,cat\n19991,ship\n19992,ship\n19993,frog\n19994,dog\n19995,horse\n19996,deer\n19997,truck\n19998,horse\n19999,bird\n20000,truck\n20001,deer\n20002,cat\n20003,bird\n20004,horse\n20005,cat\n20006,dog\n20007,deer\n20008,truck\n20009,deer\n20010,cat\n20011,ship\n20012,frog\n20013,automobile\n20014,dog\n20015,frog\n20016,automobile\n20017,bird\n20018,horse\n20019,bird\n20020,frog\n20021,cat\n20022,cat\n20023,cat\n20024,dog\n20025,airplane\n20026,ship\n20027,airplane\n20028,deer\n20029,horse\n20030,automobile\n20031,deer\n20032,horse\n20033,horse\n20034,bird\n20035,deer\n20036,automobile\n20037,deer\n20038,dog\n20039,ship\n20040,truck\n20041,bird\n20042,bird\n20043,cat\n20044,truck\n20045,bird\n20046,deer\n20047,dog\n20048,frog\n20049,ship\n20050,automobile\n20051,frog\n20052,deer\n20053,horse\n20054,ship\n20055,dog\n20056,ship\n20057,horse\n20058,dog\n20059,truck\n20060,dog\n20061,horse\n20062,cat\n20063,bird\n20064,frog\n20065,truck\n20066,frog\n20067,truck\n20068,deer\n20069,horse\n20070,dog\n20071,deer\n20072,airplane\n20073,bird\n20074,truck\n20075,deer\n20076,cat\n20077,truck\n20078,automobile\n20079,truck\n20080,horse\n20081,automobile\n20082,frog\n20083,truck\n20084,automobile\n20085,dog\n20086,deer\n20087,airplane\n20088,airplane\n20089,ship\n20090,airplane\n20091,deer\n20092,dog\n20093,truck\n20094,cat\n20095,cat\n20096,truck\n20097,dog\n20098,ship\n20099,automobile\n20100,frog\n20101,airplane\n20102,airplane\n20103,airplane\n20104,horse\n20105,cat\n20106,frog\n20107,airplane\n20108,deer\n20109,ship\n20110,dog\n20111,cat\n20112,cat\n20113,dog\n20114,dog\n20115,airplane\n20116,dog\n20117,frog\n20118,bird\n20119,automobile\n20120,dog\n20121,automobile\n20122,horse\n20123,cat\n20124,airplane\n20125,truck\n20126,bird\n20127,horse\n20128,horse\n20129,deer\n20130,airplane\n20131,truck\n20132,airplane\n20133,bird\n20134,airplane\n20135,cat\n20136,frog\n20137,frog\n20138,truck\n20139,dog\n20140,frog\n20141,horse\n20142,bird\n20143,bird\n20144,cat\n20145,frog\n20146,cat\n20147,frog\n20148,airplane\n20149,ship\n20150,airplane\n20151,truck\n20152,dog\n20153,airplane\n20154,horse\n20155,cat\n20156,frog\n20157,cat\n20158,automobile\n20159,truck\n20160,frog\n20161,frog\n20162,frog\n20163,ship\n20164,truck\n20165,horse\n20166,bird\n20167,ship\n20168,dog\n20169,frog\n20170,deer\n20171,dog\n20172,airplane\n20173,airplane\n20174,bird\n20175,cat\n20176,ship\n20177,deer\n20178,frog\n20179,automobile\n20180,dog\n20181,cat\n20182,airplane\n20183,deer\n20184,bird\n20185,frog\n20186,frog\n20187,dog\n20188,cat\n20189,deer\n20190,dog\n20191,cat\n20192,deer\n20193,frog\n20194,cat\n20195,deer\n20196,frog\n20197,deer\n20198,truck\n20199,automobile\n20200,bird\n20201,truck\n20202,bird\n20203,horse\n20204,cat\n20205,dog\n20206,dog\n20207,airplane\n20208,ship\n20209,deer\n20210,horse\n20211,dog\n20212,frog\n20213,truck\n20214,dog\n20215,dog\n20216,dog\n20217,cat\n20218,airplane\n20219,automobile\n20220,airplane\n20221,dog\n20222,dog\n20223,frog\n20224,truck\n20225,truck\n20226,truck\n20227,deer\n20228,deer\n20229,ship\n20230,bird\n20231,cat\n20232,dog\n20233,cat\n20234,bird\n20235,ship\n20236,airplane\n20237,horse\n20238,deer\n20239,deer\n20240,frog\n20241,ship\n20242,deer\n20243,truck\n20244,dog\n20245,cat\n20246,ship\n20247,truck\n20248,horse\n20249,horse\n20250,airplane\n20251,bird\n20252,ship\n20253,horse\n20254,automobile\n20255,ship\n20256,deer\n20257,frog\n20258,dog\n20259,horse\n20260,horse\n20261,airplane\n20262,frog\n20263,deer\n20264,truck\n20265,horse\n20266,automobile\n20267,airplane\n20268,bird\n20269,bird\n20270,cat\n20271,ship\n20272,cat\n20273,dog\n20274,deer\n20275,cat\n20276,horse\n20277,truck\n20278,automobile\n20279,ship\n20280,bird\n20281,cat\n20282,dog\n20283,deer\n20284,deer\n20285,bird\n20286,truck\n20287,deer\n20288,automobile\n20289,ship\n20290,airplane\n20291,deer\n20292,truck\n20293,cat\n20294,horse\n20295,cat\n20296,airplane\n20297,dog\n20298,deer\n20299,dog\n20300,airplane\n20301,truck\n20302,ship\n20303,cat\n20304,dog\n20305,dog\n20306,cat\n20307,ship\n20308,cat\n20309,bird\n20310,ship\n20311,automobile\n20312,ship\n20313,deer\n20314,automobile\n20315,bird\n20316,deer\n20317,cat\n20318,horse\n20319,deer\n20320,bird\n20321,frog\n20322,frog\n20323,cat\n20324,cat\n20325,cat\n20326,deer\n20327,cat\n20328,ship\n20329,cat\n20330,deer\n20331,truck\n20332,dog\n20333,dog\n20334,cat\n20335,frog\n20336,ship\n20337,bird\n20338,cat\n20339,horse\n20340,dog\n20341,dog\n20342,frog\n20343,dog\n20344,bird\n20345,deer\n20346,frog\n20347,cat\n20348,frog\n20349,airplane\n20350,cat\n20351,frog\n20352,horse\n20353,automobile\n20354,truck\n20355,dog\n20356,automobile\n20357,horse\n20358,deer\n20359,cat\n20360,bird\n20361,frog\n20362,deer\n20363,cat\n20364,airplane\n20365,automobile\n20366,bird\n20367,airplane\n20368,truck\n20369,bird\n20370,frog\n20371,deer\n20372,horse\n20373,dog\n20374,ship\n20375,ship\n20376,airplane\n20377,frog\n20378,automobile\n20379,deer\n20380,dog\n20381,dog\n20382,automobile\n20383,automobile\n20384,deer\n20385,airplane\n20386,cat\n20387,automobile\n20388,cat\n20389,frog\n20390,airplane\n20391,bird\n20392,frog\n20393,ship\n20394,cat\n20395,horse\n20396,bird\n20397,truck\n20398,bird\n20399,deer\n20400,cat\n20401,truck\n20402,deer\n20403,dog\n20404,deer\n20405,frog\n20406,automobile\n20407,ship\n20408,automobile\n20409,truck\n20410,deer\n20411,dog\n20412,bird\n20413,frog\n20414,horse\n20415,frog\n20416,bird\n20417,automobile\n20418,cat\n20419,ship\n20420,cat\n20421,horse\n20422,deer\n20423,frog\n20424,cat\n20425,horse\n20426,frog\n20427,truck\n20428,dog\n20429,frog\n20430,cat\n20431,bird\n20432,dog\n20433,airplane\n20434,frog\n20435,automobile\n20436,automobile\n20437,cat\n20438,frog\n20439,automobile\n20440,frog\n20441,horse\n20442,bird\n20443,automobile\n20444,frog\n20445,deer\n20446,airplane\n20447,cat\n20448,cat\n20449,dog\n20450,ship\n20451,horse\n20452,deer\n20453,frog\n20454,deer\n20455,cat\n20456,deer\n20457,dog\n20458,horse\n20459,ship\n20460,cat\n20461,truck\n20462,truck\n20463,dog\n20464,bird\n20465,dog\n20466,cat\n20467,airplane\n20468,dog\n20469,bird\n20470,ship\n20471,horse\n20472,ship\n20473,dog\n20474,cat\n20475,truck\n20476,cat\n20477,frog\n20478,deer\n20479,deer\n20480,dog\n20481,truck\n20482,horse\n20483,frog\n20484,frog\n20485,frog\n20486,cat\n20487,frog\n20488,dog\n20489,deer\n20490,frog\n20491,horse\n20492,deer\n20493,automobile\n20494,dog\n20495,horse\n20496,frog\n20497,cat\n20498,automobile\n20499,bird\n20500,cat\n20501,cat\n20502,frog\n20503,truck\n20504,ship\n20505,ship\n20506,frog\n20507,truck\n20508,dog\n20509,deer\n20510,truck\n20511,airplane\n20512,deer\n20513,cat\n20514,truck\n20515,truck\n20516,ship\n20517,cat\n20518,cat\n20519,ship\n20520,cat\n20521,bird\n20522,horse\n20523,cat\n20524,bird\n20525,truck\n20526,truck\n20527,ship\n20528,frog\n20529,horse\n20530,deer\n20531,bird\n20532,deer\n20533,bird\n20534,horse\n20535,cat\n20536,dog\n20537,bird\n20538,cat\n20539,automobile\n20540,cat\n20541,dog\n20542,ship\n20543,dog\n20544,deer\n20545,bird\n20546,frog\n20547,deer\n20548,deer\n20549,dog\n20550,cat\n20551,automobile\n20552,horse\n20553,ship\n20554,airplane\n20555,truck\n20556,cat\n20557,dog\n20558,cat\n20559,deer\n20560,deer\n20561,cat\n20562,truck\n20563,ship\n20564,bird\n20565,truck\n20566,deer\n20567,dog\n20568,automobile\n20569,airplane\n20570,horse\n20571,dog\n20572,frog\n20573,cat\n20574,truck\n20575,frog\n20576,airplane\n20577,frog\n20578,dog\n20579,automobile\n20580,ship\n20581,horse\n20582,truck\n20583,bird\n20584,automobile\n20585,automobile\n20586,airplane\n20587,dog\n20588,ship\n20589,truck\n20590,airplane\n20591,deer\n20592,automobile\n20593,cat\n20594,cat\n20595,cat\n20596,airplane\n20597,bird\n20598,deer\n20599,ship\n20600,cat\n20601,horse\n20602,airplane\n20603,deer\n20604,dog\n20605,horse\n20606,horse\n20607,deer\n20608,truck\n20609,cat\n20610,cat\n20611,automobile\n20612,cat\n20613,airplane\n20614,truck\n20615,deer\n20616,truck\n20617,dog\n20618,deer\n20619,bird\n20620,ship\n20621,horse\n20622,bird\n20623,cat\n20624,dog\n20625,deer\n20626,airplane\n20627,automobile\n20628,truck\n20629,truck\n20630,airplane\n20631,horse\n20632,cat\n20633,airplane\n20634,bird\n20635,automobile\n20636,cat\n20637,truck\n20638,airplane\n20639,horse\n20640,cat\n20641,ship\n20642,cat\n20643,deer\n20644,bird\n20645,deer\n20646,bird\n20647,cat\n20648,frog\n20649,automobile\n20650,bird\n20651,frog\n20652,frog\n20653,cat\n20654,airplane\n20655,dog\n20656,automobile\n20657,horse\n20658,frog\n20659,cat\n20660,truck\n20661,frog\n20662,cat\n20663,frog\n20664,truck\n20665,truck\n20666,cat\n20667,automobile\n20668,frog\n20669,dog\n20670,bird\n20671,horse\n20672,frog\n20673,bird\n20674,bird\n20675,airplane\n20676,frog\n20677,bird\n20678,truck\n20679,horse\n20680,ship\n20681,deer\n20682,dog\n20683,deer\n20684,bird\n20685,cat\n20686,deer\n20687,airplane\n20688,horse\n20689,ship\n20690,automobile\n20691,horse\n20692,deer\n20693,truck\n20694,horse\n20695,deer\n20696,truck\n20697,cat\n20698,bird\n20699,horse\n20700,deer\n20701,truck\n20702,bird\n20703,deer\n20704,frog\n20705,bird\n20706,horse\n20707,deer\n20708,cat\n20709,deer\n20710,frog\n20711,dog\n20712,automobile\n20713,ship\n20714,frog\n20715,truck\n20716,dog\n20717,deer\n20718,frog\n20719,dog\n20720,dog\n20721,airplane\n20722,frog\n20723,airplane\n20724,horse\n20725,deer\n20726,deer\n20727,truck\n20728,automobile\n20729,deer\n20730,dog\n20731,airplane\n20732,airplane\n20733,cat\n20734,ship\n20735,frog\n20736,truck\n20737,automobile\n20738,dog\n20739,cat\n20740,truck\n20741,deer\n20742,deer\n20743,truck\n20744,dog\n20745,truck\n20746,automobile\n20747,bird\n20748,frog\n20749,airplane\n20750,horse\n20751,dog\n20752,frog\n20753,horse\n20754,cat\n20755,ship\n20756,deer\n20757,truck\n20758,horse\n20759,airplane\n20760,automobile\n20761,airplane\n20762,automobile\n20763,deer\n20764,dog\n20765,cat\n20766,horse\n20767,airplane\n20768,dog\n20769,truck\n20770,deer\n20771,frog\n20772,truck\n20773,automobile\n20774,bird\n20775,deer\n20776,horse\n20777,airplane\n20778,frog\n20779,dog\n20780,bird\n20781,bird\n20782,airplane\n20783,frog\n20784,frog\n20785,cat\n20786,horse\n20787,dog\n20788,deer\n20789,frog\n20790,horse\n20791,bird\n20792,bird\n20793,cat\n20794,deer\n20795,cat\n20796,deer\n20797,cat\n20798,horse\n20799,dog\n20800,dog\n20801,truck\n20802,truck\n20803,truck\n20804,bird\n20805,frog\n20806,deer\n20807,horse\n20808,bird\n20809,cat\n20810,ship\n20811,cat\n20812,horse\n20813,bird\n20814,dog\n20815,frog\n20816,frog\n20817,dog\n20818,cat\n20819,airplane\n20820,deer\n20821,bird\n20822,truck\n20823,dog\n20824,deer\n20825,cat\n20826,bird\n20827,automobile\n20828,automobile\n20829,horse\n20830,dog\n20831,deer\n20832,horse\n20833,airplane\n20834,frog\n20835,automobile\n20836,deer\n20837,frog\n20838,deer\n20839,ship\n20840,deer\n20841,airplane\n20842,dog\n20843,dog\n20844,deer\n20845,bird\n20846,truck\n20847,truck\n20848,horse\n20849,dog\n20850,cat\n20851,frog\n20852,bird\n20853,airplane\n20854,airplane\n20855,airplane\n20856,truck\n20857,frog\n20858,bird\n20859,horse\n20860,truck\n20861,horse\n20862,horse\n20863,horse\n20864,cat\n20865,truck\n20866,deer\n20867,cat\n20868,horse\n20869,dog\n20870,bird\n20871,bird\n20872,cat\n20873,frog\n20874,ship\n20875,deer\n20876,truck\n20877,deer\n20878,truck\n20879,airplane\n20880,bird\n20881,cat\n20882,bird\n20883,horse\n20884,bird\n20885,cat\n20886,cat\n20887,cat\n20888,horse\n20889,horse\n20890,automobile\n20891,ship\n20892,deer\n20893,deer\n20894,cat\n20895,truck\n20896,deer\n20897,bird\n20898,truck\n20899,automobile\n20900,deer\n20901,frog\n20902,deer\n20903,horse\n20904,horse\n20905,ship\n20906,airplane\n20907,deer\n20908,cat\n20909,frog\n20910,automobile\n20911,automobile\n20912,deer\n20913,dog\n20914,cat\n20915,cat\n20916,horse\n20917,cat\n20918,cat\n20919,dog\n20920,frog\n20921,cat\n20922,deer\n20923,cat\n20924,truck\n20925,deer\n20926,bird\n20927,deer\n20928,ship\n20929,ship\n20930,deer\n20931,ship\n20932,cat\n20933,truck\n20934,cat\n20935,dog\n20936,airplane\n20937,automobile\n20938,frog\n20939,bird\n20940,automobile\n20941,dog\n20942,truck\n20943,deer\n20944,horse\n20945,horse\n20946,airplane\n20947,ship\n20948,airplane\n20949,airplane\n20950,dog\n20951,horse\n20952,ship\n20953,cat\n20954,horse\n20955,truck\n20956,bird\n20957,automobile\n20958,dog\n20959,deer\n20960,cat\n20961,truck\n20962,airplane\n20963,cat\n20964,airplane\n20965,deer\n20966,deer\n20967,truck\n20968,truck\n20969,bird\n20970,automobile\n20971,bird\n20972,horse\n20973,deer\n20974,dog\n20975,ship\n20976,horse\n20977,truck\n20978,dog\n20979,bird\n20980,frog\n20981,deer\n20982,dog\n20983,cat\n20984,ship\n20985,dog\n20986,ship\n20987,cat\n20988,horse\n20989,horse\n20990,frog\n20991,dog\n20992,cat\n20993,deer\n20994,deer\n20995,ship\n20996,horse\n20997,automobile\n20998,truck\n20999,automobile\n21000,truck\n21001,frog\n21002,cat\n21003,deer\n21004,automobile\n21005,horse\n21006,deer\n21007,deer\n21008,frog\n21009,automobile\n21010,deer\n21011,horse\n21012,horse\n21013,horse\n21014,cat\n21015,dog\n21016,bird\n21017,frog\n21018,automobile\n21019,deer\n21020,truck\n21021,automobile\n21022,bird\n21023,airplane\n21024,deer\n21025,truck\n21026,deer\n21027,airplane\n21028,deer\n21029,dog\n21030,cat\n21031,frog\n21032,frog\n21033,airplane\n21034,ship\n21035,frog\n21036,dog\n21037,airplane\n21038,airplane\n21039,frog\n21040,ship\n21041,automobile\n21042,automobile\n21043,deer\n21044,horse\n21045,dog\n21046,bird\n21047,cat\n21048,dog\n21049,dog\n21050,dog\n21051,frog\n21052,truck\n21053,truck\n21054,truck\n21055,automobile\n21056,frog\n21057,dog\n21058,airplane\n21059,frog\n21060,bird\n21061,cat\n21062,ship\n21063,truck\n21064,automobile\n21065,automobile\n21066,horse\n21067,cat\n21068,bird\n21069,deer\n21070,dog\n21071,dog\n21072,bird\n21073,truck\n21074,bird\n21075,ship\n21076,dog\n21077,bird\n21078,truck\n21079,frog\n21080,cat\n21081,dog\n21082,deer\n21083,deer\n21084,automobile\n21085,dog\n21086,automobile\n21087,ship\n21088,truck\n21089,truck\n21090,airplane\n21091,deer\n21092,frog\n21093,frog\n21094,truck\n21095,deer\n21096,bird\n21097,frog\n21098,truck\n21099,bird\n21100,deer\n21101,truck\n21102,horse\n21103,horse\n21104,deer\n21105,deer\n21106,horse\n21107,ship\n21108,airplane\n21109,airplane\n21110,bird\n21111,ship\n21112,automobile\n21113,truck\n21114,cat\n21115,airplane\n21116,deer\n21117,airplane\n21118,horse\n21119,truck\n21120,airplane\n21121,truck\n21122,deer\n21123,horse\n21124,cat\n21125,deer\n21126,truck\n21127,deer\n21128,automobile\n21129,cat\n21130,frog\n21131,truck\n21132,dog\n21133,cat\n21134,deer\n21135,truck\n21136,ship\n21137,bird\n21138,dog\n21139,airplane\n21140,horse\n21141,cat\n21142,horse\n21143,frog\n21144,horse\n21145,ship\n21146,frog\n21147,airplane\n21148,dog\n21149,ship\n21150,dog\n21151,airplane\n21152,dog\n21153,horse\n21154,frog\n21155,automobile\n21156,truck\n21157,truck\n21158,frog\n21159,ship\n21160,deer\n21161,cat\n21162,cat\n21163,frog\n21164,automobile\n21165,deer\n21166,bird\n21167,dog\n21168,cat\n21169,horse\n21170,deer\n21171,deer\n21172,truck\n21173,automobile\n21174,deer\n21175,dog\n21176,truck\n21177,dog\n21178,dog\n21179,cat\n21180,ship\n21181,cat\n21182,automobile\n21183,ship\n21184,truck\n21185,dog\n21186,airplane\n21187,deer\n21188,truck\n21189,truck\n21190,horse\n21191,deer\n21192,dog\n21193,dog\n21194,cat\n21195,deer\n21196,frog\n21197,horse\n21198,airplane\n21199,airplane\n21200,cat\n21201,frog\n21202,ship\n21203,cat\n21204,frog\n21205,cat\n21206,dog\n21207,dog\n21208,truck\n21209,frog\n21210,airplane\n21211,dog\n21212,horse\n21213,dog\n21214,truck\n21215,deer\n21216,ship\n21217,truck\n21218,automobile\n21219,truck\n21220,cat\n21221,automobile\n21222,truck\n21223,automobile\n21224,bird\n21225,cat\n21226,automobile\n21227,cat\n21228,frog\n21229,cat\n21230,frog\n21231,deer\n21232,automobile\n21233,horse\n21234,dog\n21235,truck\n21236,cat\n21237,truck\n21238,cat\n21239,horse\n21240,dog\n21241,truck\n21242,deer\n21243,truck\n21244,dog\n21245,dog\n21246,truck\n21247,bird\n21248,dog\n21249,bird\n21250,deer\n21251,dog\n21252,cat\n21253,horse\n21254,deer\n21255,bird\n21256,bird\n21257,cat\n21258,dog\n21259,ship\n21260,automobile\n21261,horse\n21262,cat\n21263,deer\n21264,frog\n21265,deer\n21266,frog\n21267,horse\n21268,airplane\n21269,ship\n21270,deer\n21271,dog\n21272,horse\n21273,frog\n21274,cat\n21275,cat\n21276,ship\n21277,horse\n21278,automobile\n21279,ship\n21280,airplane\n21281,truck\n21282,truck\n21283,bird\n21284,deer\n21285,ship\n21286,automobile\n21287,automobile\n21288,dog\n21289,deer\n21290,frog\n21291,truck\n21292,deer\n21293,frog\n21294,ship\n21295,airplane\n21296,dog\n21297,truck\n21298,dog\n21299,airplane\n21300,deer\n21301,frog\n21302,bird\n21303,automobile\n21304,airplane\n21305,cat\n21306,frog\n21307,automobile\n21308,dog\n21309,airplane\n21310,ship\n21311,frog\n21312,bird\n21313,automobile\n21314,bird\n21315,horse\n21316,airplane\n21317,frog\n21318,ship\n21319,horse\n21320,ship\n21321,ship\n21322,dog\n21323,automobile\n21324,cat\n21325,frog\n21326,bird\n21327,frog\n21328,deer\n21329,cat\n21330,truck\n21331,deer\n21332,dog\n21333,truck\n21334,frog\n21335,horse\n21336,cat\n21337,truck\n21338,deer\n21339,airplane\n21340,dog\n21341,dog\n21342,frog\n21343,cat\n21344,cat\n21345,airplane\n21346,dog\n21347,dog\n21348,deer\n21349,bird\n21350,airplane\n21351,bird\n21352,automobile\n21353,dog\n21354,cat\n21355,horse\n21356,cat\n21357,deer\n21358,deer\n21359,automobile\n21360,bird\n21361,horse\n21362,ship\n21363,bird\n21364,horse\n21365,dog\n21366,truck\n21367,automobile\n21368,frog\n21369,deer\n21370,airplane\n21371,automobile\n21372,truck\n21373,cat\n21374,horse\n21375,horse\n21376,bird\n21377,deer\n21378,automobile\n21379,horse\n21380,bird\n21381,bird\n21382,horse\n21383,bird\n21384,automobile\n21385,cat\n21386,horse\n21387,bird\n21388,frog\n21389,frog\n21390,frog\n21391,airplane\n21392,frog\n21393,ship\n21394,truck\n21395,cat\n21396,frog\n21397,dog\n21398,airplane\n21399,horse\n21400,frog\n21401,automobile\n21402,truck\n21403,horse\n21404,truck\n21405,truck\n21406,dog\n21407,bird\n21408,horse\n21409,truck\n21410,frog\n21411,truck\n21412,bird\n21413,frog\n21414,automobile\n21415,truck\n21416,truck\n21417,frog\n21418,frog\n21419,bird\n21420,airplane\n21421,dog\n21422,bird\n21423,automobile\n21424,truck\n21425,bird\n21426,ship\n21427,truck\n21428,deer\n21429,ship\n21430,cat\n21431,horse\n21432,frog\n21433,truck\n21434,horse\n21435,deer\n21436,dog\n21437,deer\n21438,cat\n21439,airplane\n21440,truck\n21441,horse\n21442,frog\n21443,bird\n21444,truck\n21445,airplane\n21446,frog\n21447,cat\n21448,frog\n21449,deer\n21450,dog\n21451,bird\n21452,dog\n21453,frog\n21454,horse\n21455,frog\n21456,dog\n21457,frog\n21458,cat\n21459,ship\n21460,dog\n21461,airplane\n21462,automobile\n21463,bird\n21464,dog\n21465,cat\n21466,bird\n21467,dog\n21468,automobile\n21469,frog\n21470,horse\n21471,bird\n21472,airplane\n21473,frog\n21474,frog\n21475,ship\n21476,frog\n21477,airplane\n21478,horse\n21479,bird\n21480,bird\n21481,frog\n21482,bird\n21483,frog\n21484,horse\n21485,frog\n21486,automobile\n21487,ship\n21488,automobile\n21489,cat\n21490,truck\n21491,truck\n21492,horse\n21493,cat\n21494,horse\n21495,cat\n21496,truck\n21497,bird\n21498,truck\n21499,ship\n21500,bird\n21501,deer\n21502,airplane\n21503,airplane\n21504,bird\n21505,airplane\n21506,truck\n21507,deer\n21508,horse\n21509,dog\n21510,frog\n21511,horse\n21512,ship\n21513,airplane\n21514,deer\n21515,dog\n21516,deer\n21517,truck\n21518,horse\n21519,cat\n21520,frog\n21521,frog\n21522,bird\n21523,automobile\n21524,ship\n21525,deer\n21526,truck\n21527,ship\n21528,bird\n21529,dog\n21530,dog\n21531,bird\n21532,horse\n21533,truck\n21534,ship\n21535,truck\n21536,automobile\n21537,cat\n21538,frog\n21539,deer\n21540,bird\n21541,horse\n21542,deer\n21543,ship\n21544,dog\n21545,truck\n21546,cat\n21547,truck\n21548,deer\n21549,truck\n21550,ship\n21551,deer\n21552,automobile\n21553,truck\n21554,airplane\n21555,deer\n21556,horse\n21557,frog\n21558,frog\n21559,cat\n21560,cat\n21561,bird\n21562,airplane\n21563,bird\n21564,horse\n21565,deer\n21566,cat\n21567,bird\n21568,frog\n21569,frog\n21570,truck\n21571,dog\n21572,ship\n21573,dog\n21574,deer\n21575,horse\n21576,deer\n21577,airplane\n21578,deer\n21579,airplane\n21580,horse\n21581,deer\n21582,dog\n21583,frog\n21584,cat\n21585,horse\n21586,automobile\n21587,deer\n21588,dog\n21589,horse\n21590,dog\n21591,frog\n21592,frog\n21593,airplane\n21594,dog\n21595,frog\n21596,dog\n21597,ship\n21598,frog\n21599,cat\n21600,bird\n21601,cat\n21602,truck\n21603,deer\n21604,deer\n21605,automobile\n21606,frog\n21607,horse\n21608,deer\n21609,bird\n21610,cat\n21611,airplane\n21612,deer\n21613,ship\n21614,cat\n21615,cat\n21616,cat\n21617,truck\n21618,frog\n21619,airplane\n21620,cat\n21621,horse\n21622,deer\n21623,horse\n21624,truck\n21625,ship\n21626,automobile\n21627,frog\n21628,deer\n21629,frog\n21630,horse\n21631,deer\n21632,deer\n21633,cat\n21634,automobile\n21635,cat\n21636,cat\n21637,cat\n21638,dog\n21639,deer\n21640,cat\n21641,automobile\n21642,ship\n21643,cat\n21644,dog\n21645,truck\n21646,dog\n21647,frog\n21648,bird\n21649,truck\n21650,deer\n21651,deer\n21652,horse\n21653,horse\n21654,horse\n21655,ship\n21656,truck\n21657,cat\n21658,frog\n21659,airplane\n21660,horse\n21661,airplane\n21662,horse\n21663,deer\n21664,deer\n21665,frog\n21666,horse\n21667,truck\n21668,horse\n21669,frog\n21670,frog\n21671,ship\n21672,deer\n21673,truck\n21674,ship\n21675,automobile\n21676,frog\n21677,truck\n21678,truck\n21679,dog\n21680,dog\n21681,airplane\n21682,frog\n21683,dog\n21684,dog\n21685,dog\n21686,cat\n21687,horse\n21688,bird\n21689,truck\n21690,automobile\n21691,dog\n21692,cat\n21693,airplane\n21694,dog\n21695,cat\n21696,deer\n21697,bird\n21698,airplane\n21699,horse\n21700,ship\n21701,bird\n21702,cat\n21703,horse\n21704,truck\n21705,horse\n21706,automobile\n21707,truck\n21708,frog\n21709,horse\n21710,deer\n21711,bird\n21712,cat\n21713,airplane\n21714,dog\n21715,bird\n21716,airplane\n21717,horse\n21718,truck\n21719,ship\n21720,truck\n21721,deer\n21722,dog\n21723,dog\n21724,frog\n21725,cat\n21726,bird\n21727,dog\n21728,airplane\n21729,deer\n21730,ship\n21731,deer\n21732,deer\n21733,deer\n21734,bird\n21735,deer\n21736,cat\n21737,bird\n21738,truck\n21739,ship\n21740,airplane\n21741,truck\n21742,deer\n21743,airplane\n21744,frog\n21745,truck\n21746,frog\n21747,automobile\n21748,dog\n21749,frog\n21750,frog\n21751,truck\n21752,ship\n21753,ship\n21754,deer\n21755,airplane\n21756,bird\n21757,airplane\n21758,deer\n21759,ship\n21760,cat\n21761,horse\n21762,frog\n21763,deer\n21764,dog\n21765,ship\n21766,horse\n21767,dog\n21768,cat\n21769,deer\n21770,horse\n21771,deer\n21772,horse\n21773,frog\n21774,bird\n21775,airplane\n21776,bird\n21777,airplane\n21778,ship\n21779,ship\n21780,cat\n21781,deer\n21782,bird\n21783,frog\n21784,airplane\n21785,truck\n21786,cat\n21787,horse\n21788,ship\n21789,bird\n21790,automobile\n21791,dog\n21792,deer\n21793,cat\n21794,dog\n21795,frog\n21796,horse\n21797,frog\n21798,deer\n21799,truck\n21800,bird\n21801,truck\n21802,bird\n21803,truck\n21804,airplane\n21805,frog\n21806,dog\n21807,cat\n21808,automobile\n21809,dog\n21810,deer\n21811,truck\n21812,ship\n21813,bird\n21814,automobile\n21815,truck\n21816,dog\n21817,bird\n21818,frog\n21819,horse\n21820,ship\n21821,dog\n21822,cat\n21823,truck\n21824,truck\n21825,frog\n21826,airplane\n21827,deer\n21828,bird\n21829,truck\n21830,frog\n21831,horse\n21832,cat\n21833,airplane\n21834,automobile\n21835,bird\n21836,dog\n21837,frog\n21838,cat\n21839,cat\n21840,automobile\n21841,airplane\n21842,deer\n21843,airplane\n21844,horse\n21845,ship\n21846,deer\n21847,frog\n21848,dog\n21849,cat\n21850,deer\n21851,frog\n21852,bird\n21853,deer\n21854,deer\n21855,cat\n21856,bird\n21857,truck\n21858,truck\n21859,frog\n21860,cat\n21861,bird\n21862,cat\n21863,deer\n21864,deer\n21865,ship\n21866,frog\n21867,horse\n21868,truck\n21869,dog\n21870,bird\n21871,truck\n21872,bird\n21873,frog\n21874,dog\n21875,cat\n21876,dog\n21877,airplane\n21878,dog\n21879,truck\n21880,dog\n21881,horse\n21882,frog\n21883,truck\n21884,deer\n21885,deer\n21886,cat\n21887,dog\n21888,cat\n21889,automobile\n21890,bird\n21891,truck\n21892,cat\n21893,airplane\n21894,truck\n21895,truck\n21896,airplane\n21897,dog\n21898,frog\n21899,deer\n21900,frog\n21901,ship\n21902,cat\n21903,ship\n21904,truck\n21905,cat\n21906,frog\n21907,truck\n21908,horse\n21909,truck\n21910,automobile\n21911,deer\n21912,frog\n21913,cat\n21914,deer\n21915,dog\n21916,deer\n21917,deer\n21918,ship\n21919,frog\n21920,frog\n21921,automobile\n21922,frog\n21923,dog\n21924,truck\n21925,bird\n21926,ship\n21927,cat\n21928,truck\n21929,airplane\n21930,frog\n21931,deer\n21932,ship\n21933,truck\n21934,cat\n21935,frog\n21936,ship\n21937,truck\n21938,deer\n21939,frog\n21940,automobile\n21941,bird\n21942,deer\n21943,ship\n21944,airplane\n21945,dog\n21946,airplane\n21947,bird\n21948,deer\n21949,airplane\n21950,bird\n21951,truck\n21952,horse\n21953,cat\n21954,truck\n21955,frog\n21956,automobile\n21957,truck\n21958,deer\n21959,cat\n21960,deer\n21961,truck\n21962,cat\n21963,airplane\n21964,horse\n21965,cat\n21966,ship\n21967,dog\n21968,airplane\n21969,deer\n21970,frog\n21971,automobile\n21972,bird\n21973,ship\n21974,dog\n21975,ship\n21976,truck\n21977,airplane\n21978,bird\n21979,cat\n21980,deer\n21981,airplane\n21982,cat\n21983,truck\n21984,automobile\n21985,deer\n21986,automobile\n21987,cat\n21988,bird\n21989,ship\n21990,deer\n21991,cat\n21992,truck\n21993,frog\n21994,ship\n21995,automobile\n21996,bird\n21997,truck\n21998,deer\n21999,airplane\n22000,deer\n22001,deer\n22002,cat\n22003,automobile\n22004,frog\n22005,truck\n22006,bird\n22007,dog\n22008,automobile\n22009,horse\n22010,cat\n22011,dog\n22012,ship\n22013,bird\n22014,airplane\n22015,dog\n22016,horse\n22017,cat\n22018,ship\n22019,bird\n22020,frog\n22021,ship\n22022,dog\n22023,airplane\n22024,horse\n22025,bird\n22026,automobile\n22027,horse\n22028,truck\n22029,dog\n22030,bird\n22031,deer\n22032,frog\n22033,dog\n22034,deer\n22035,airplane\n22036,cat\n22037,airplane\n22038,airplane\n22039,frog\n22040,dog\n22041,ship\n22042,airplane\n22043,ship\n22044,frog\n22045,automobile\n22046,dog\n22047,bird\n22048,frog\n22049,cat\n22050,bird\n22051,cat\n22052,truck\n22053,airplane\n22054,dog\n22055,deer\n22056,dog\n22057,frog\n22058,deer\n22059,airplane\n22060,cat\n22061,dog\n22062,cat\n22063,ship\n22064,deer\n22065,truck\n22066,frog\n22067,automobile\n22068,airplane\n22069,frog\n22070,automobile\n22071,cat\n22072,bird\n22073,bird\n22074,airplane\n22075,horse\n22076,deer\n22077,deer\n22078,cat\n22079,ship\n22080,truck\n22081,frog\n22082,ship\n22083,frog\n22084,truck\n22085,dog\n22086,ship\n22087,bird\n22088,horse\n22089,dog\n22090,frog\n22091,airplane\n22092,horse\n22093,cat\n22094,truck\n22095,bird\n22096,dog\n22097,truck\n22098,dog\n22099,dog\n22100,dog\n22101,automobile\n22102,frog\n22103,airplane\n22104,horse\n22105,automobile\n22106,frog\n22107,truck\n22108,airplane\n22109,bird\n22110,cat\n22111,horse\n22112,frog\n22113,deer\n22114,horse\n22115,airplane\n22116,automobile\n22117,airplane\n22118,dog\n22119,airplane\n22120,truck\n22121,deer\n22122,frog\n22123,bird\n22124,bird\n22125,truck\n22126,bird\n22127,airplane\n22128,dog\n22129,automobile\n22130,airplane\n22131,ship\n22132,ship\n22133,ship\n22134,airplane\n22135,airplane\n22136,dog\n22137,bird\n22138,dog\n22139,truck\n22140,cat\n22141,bird\n22142,deer\n22143,cat\n22144,deer\n22145,airplane\n22146,frog\n22147,deer\n22148,deer\n22149,truck\n22150,horse\n22151,deer\n22152,deer\n22153,dog\n22154,horse\n22155,dog\n22156,bird\n22157,truck\n22158,truck\n22159,airplane\n22160,bird\n22161,cat\n22162,frog\n22163,frog\n22164,bird\n22165,truck\n22166,bird\n22167,frog\n22168,dog\n22169,bird\n22170,frog\n22171,frog\n22172,frog\n22173,frog\n22174,truck\n22175,deer\n22176,horse\n22177,deer\n22178,bird\n22179,bird\n22180,deer\n22181,cat\n22182,dog\n22183,ship\n22184,truck\n22185,deer\n22186,bird\n22187,frog\n22188,ship\n22189,cat\n22190,truck\n22191,deer\n22192,truck\n22193,cat\n22194,airplane\n22195,dog\n22196,cat\n22197,deer\n22198,horse\n22199,automobile\n22200,horse\n22201,truck\n22202,automobile\n22203,frog\n22204,horse\n22205,bird\n22206,airplane\n22207,frog\n22208,cat\n22209,deer\n22210,dog\n22211,cat\n22212,frog\n22213,deer\n22214,ship\n22215,dog\n22216,deer\n22217,frog\n22218,ship\n22219,cat\n22220,deer\n22221,dog\n22222,frog\n22223,cat\n22224,truck\n22225,frog\n22226,truck\n22227,ship\n22228,truck\n22229,deer\n22230,cat\n22231,bird\n22232,airplane\n22233,airplane\n22234,ship\n22235,airplane\n22236,ship\n22237,cat\n22238,truck\n22239,cat\n22240,cat\n22241,deer\n22242,deer\n22243,frog\n22244,frog\n22245,airplane\n22246,cat\n22247,frog\n22248,deer\n22249,horse\n22250,dog\n22251,dog\n22252,deer\n22253,ship\n22254,deer\n22255,truck\n22256,frog\n22257,ship\n22258,horse\n22259,automobile\n22260,horse\n22261,truck\n22262,automobile\n22263,horse\n22264,truck\n22265,bird\n22266,automobile\n22267,horse\n22268,truck\n22269,frog\n22270,dog\n22271,cat\n22272,dog\n22273,airplane\n22274,airplane\n22275,cat\n22276,truck\n22277,deer\n22278,ship\n22279,dog\n22280,frog\n22281,horse\n22282,frog\n22283,truck\n22284,dog\n22285,horse\n22286,ship\n22287,cat\n22288,deer\n22289,frog\n22290,frog\n22291,truck\n22292,bird\n22293,deer\n22294,dog\n22295,cat\n22296,frog\n22297,truck\n22298,deer\n22299,bird\n22300,truck\n22301,cat\n22302,deer\n22303,cat\n22304,horse\n22305,deer\n22306,deer\n22307,frog\n22308,truck\n22309,bird\n22310,frog\n22311,airplane\n22312,cat\n22313,bird\n22314,ship\n22315,airplane\n22316,ship\n22317,cat\n22318,deer\n22319,bird\n22320,truck\n22321,cat\n22322,automobile\n22323,dog\n22324,truck\n22325,cat\n22326,bird\n22327,cat\n22328,airplane\n22329,deer\n22330,bird\n22331,ship\n22332,deer\n22333,cat\n22334,bird\n22335,bird\n22336,frog\n22337,deer\n22338,frog\n22339,dog\n22340,frog\n22341,horse\n22342,horse\n22343,dog\n22344,deer\n22345,deer\n22346,truck\n22347,frog\n22348,bird\n22349,cat\n22350,deer\n22351,deer\n22352,cat\n22353,horse\n22354,dog\n22355,frog\n22356,cat\n22357,dog\n22358,automobile\n22359,frog\n22360,deer\n22361,truck\n22362,horse\n22363,truck\n22364,ship\n22365,ship\n22366,horse\n22367,automobile\n22368,automobile\n22369,cat\n22370,frog\n22371,ship\n22372,ship\n22373,ship\n22374,frog\n22375,dog\n22376,cat\n22377,deer\n22378,airplane\n22379,dog\n22380,cat\n22381,deer\n22382,deer\n22383,cat\n22384,automobile\n22385,ship\n22386,bird\n22387,ship\n22388,frog\n22389,airplane\n22390,cat\n22391,truck\n22392,automobile\n22393,frog\n22394,truck\n22395,dog\n22396,cat\n22397,truck\n22398,frog\n22399,horse\n22400,bird\n22401,cat\n22402,cat\n22403,horse\n22404,cat\n22405,frog\n22406,cat\n22407,dog\n22408,frog\n22409,bird\n22410,horse\n22411,deer\n22412,deer\n22413,deer\n22414,ship\n22415,cat\n22416,bird\n22417,truck\n22418,ship\n22419,truck\n22420,cat\n22421,airplane\n22422,truck\n22423,frog\n22424,automobile\n22425,bird\n22426,ship\n22427,bird\n22428,automobile\n22429,cat\n22430,airplane\n22431,dog\n22432,bird\n22433,bird\n22434,horse\n22435,ship\n22436,cat\n22437,horse\n22438,horse\n22439,deer\n22440,horse\n22441,dog\n22442,frog\n22443,horse\n22444,horse\n22445,deer\n22446,airplane\n22447,bird\n22448,cat\n22449,truck\n22450,airplane\n22451,automobile\n22452,truck\n22453,horse\n22454,automobile\n22455,ship\n22456,airplane\n22457,cat\n22458,deer\n22459,automobile\n22460,airplane\n22461,ship\n22462,horse\n22463,horse\n22464,airplane\n22465,cat\n22466,deer\n22467,airplane\n22468,horse\n22469,frog\n22470,airplane\n22471,truck\n22472,automobile\n22473,deer\n22474,truck\n22475,truck\n22476,automobile\n22477,cat\n22478,automobile\n22479,frog\n22480,automobile\n22481,deer\n22482,deer\n22483,cat\n22484,deer\n22485,cat\n22486,bird\n22487,dog\n22488,dog\n22489,dog\n22490,truck\n22491,truck\n22492,bird\n22493,truck\n22494,deer\n22495,truck\n22496,dog\n22497,truck\n22498,cat\n22499,bird\n22500,truck\n22501,truck\n22502,automobile\n22503,airplane\n22504,frog\n22505,truck\n22506,deer\n22507,frog\n22508,deer\n22509,horse\n22510,frog\n22511,cat\n22512,dog\n22513,automobile\n22514,bird\n22515,cat\n22516,ship\n22517,horse\n22518,dog\n22519,horse\n22520,horse\n22521,truck\n22522,horse\n22523,bird\n22524,horse\n22525,ship\n22526,cat\n22527,deer\n22528,deer\n22529,cat\n22530,truck\n22531,automobile\n22532,airplane\n22533,horse\n22534,truck\n22535,deer\n22536,truck\n22537,horse\n22538,dog\n22539,airplane\n22540,frog\n22541,airplane\n22542,dog\n22543,deer\n22544,truck\n22545,truck\n22546,dog\n22547,cat\n22548,cat\n22549,truck\n22550,automobile\n22551,dog\n22552,horse\n22553,deer\n22554,dog\n22555,horse\n22556,automobile\n22557,deer\n22558,airplane\n22559,dog\n22560,cat\n22561,truck\n22562,automobile\n22563,bird\n22564,frog\n22565,frog\n22566,cat\n22567,cat\n22568,dog\n22569,airplane\n22570,frog\n22571,deer\n22572,deer\n22573,deer\n22574,cat\n22575,frog\n22576,frog\n22577,airplane\n22578,frog\n22579,airplane\n22580,bird\n22581,deer\n22582,dog\n22583,horse\n22584,automobile\n22585,bird\n22586,bird\n22587,cat\n22588,cat\n22589,deer\n22590,frog\n22591,automobile\n22592,cat\n22593,cat\n22594,bird\n22595,deer\n22596,dog\n22597,deer\n22598,truck\n22599,horse\n22600,cat\n22601,frog\n22602,frog\n22603,frog\n22604,deer\n22605,cat\n22606,truck\n22607,deer\n22608,automobile\n22609,cat\n22610,cat\n22611,truck\n22612,deer\n22613,airplane\n22614,frog\n22615,truck\n22616,frog\n22617,airplane\n22618,bird\n22619,frog\n22620,bird\n22621,deer\n22622,airplane\n22623,cat\n22624,frog\n22625,dog\n22626,automobile\n22627,dog\n22628,cat\n22629,truck\n22630,airplane\n22631,frog\n22632,ship\n22633,deer\n22634,cat\n22635,bird\n22636,truck\n22637,truck\n22638,automobile\n22639,truck\n22640,deer\n22641,frog\n22642,frog\n22643,bird\n22644,deer\n22645,cat\n22646,deer\n22647,airplane\n22648,dog\n22649,horse\n22650,airplane\n22651,automobile\n22652,horse\n22653,frog\n22654,deer\n22655,deer\n22656,airplane\n22657,automobile\n22658,automobile\n22659,cat\n22660,frog\n22661,automobile\n22662,ship\n22663,horse\n22664,dog\n22665,bird\n22666,bird\n22667,automobile\n22668,truck\n22669,automobile\n22670,bird\n22671,truck\n22672,cat\n22673,frog\n22674,ship\n22675,deer\n22676,frog\n22677,dog\n22678,horse\n22679,truck\n22680,cat\n22681,frog\n22682,dog\n22683,truck\n22684,dog\n22685,frog\n22686,frog\n22687,bird\n22688,cat\n22689,truck\n22690,cat\n22691,truck\n22692,frog\n22693,dog\n22694,airplane\n22695,dog\n22696,deer\n22697,frog\n22698,horse\n22699,truck\n22700,horse\n22701,frog\n22702,truck\n22703,automobile\n22704,bird\n22705,frog\n22706,cat\n22707,horse\n22708,automobile\n22709,cat\n22710,deer\n22711,deer\n22712,cat\n22713,frog\n22714,cat\n22715,automobile\n22716,airplane\n22717,cat\n22718,frog\n22719,deer\n22720,deer\n22721,airplane\n22722,bird\n22723,automobile\n22724,frog\n22725,deer\n22726,ship\n22727,ship\n22728,horse\n22729,horse\n22730,truck\n22731,cat\n22732,cat\n22733,bird\n22734,ship\n22735,horse\n22736,deer\n22737,airplane\n22738,airplane\n22739,frog\n22740,airplane\n22741,airplane\n22742,ship\n22743,frog\n22744,truck\n22745,dog\n22746,truck\n22747,deer\n22748,automobile\n22749,horse\n22750,deer\n22751,automobile\n22752,deer\n22753,ship\n22754,cat\n22755,cat\n22756,truck\n22757,deer\n22758,deer\n22759,deer\n22760,horse\n22761,deer\n22762,horse\n22763,horse\n22764,bird\n22765,horse\n22766,truck\n22767,truck\n22768,frog\n22769,ship\n22770,airplane\n22771,dog\n22772,automobile\n22773,airplane\n22774,cat\n22775,truck\n22776,dog\n22777,airplane\n22778,ship\n22779,deer\n22780,cat\n22781,cat\n22782,deer\n22783,horse\n22784,deer\n22785,dog\n22786,ship\n22787,automobile\n22788,frog\n22789,frog\n22790,dog\n22791,deer\n22792,airplane\n22793,cat\n22794,frog\n22795,truck\n22796,airplane\n22797,dog\n22798,dog\n22799,cat\n22800,deer\n22801,deer\n22802,horse\n22803,cat\n22804,cat\n22805,airplane\n22806,automobile\n22807,automobile\n22808,deer\n22809,frog\n22810,bird\n22811,deer\n22812,ship\n22813,dog\n22814,frog\n22815,truck\n22816,dog\n22817,bird\n22818,frog\n22819,automobile\n22820,horse\n22821,truck\n22822,frog\n22823,dog\n22824,horse\n22825,cat\n22826,cat\n22827,bird\n22828,ship\n22829,dog\n22830,dog\n22831,dog\n22832,bird\n22833,frog\n22834,deer\n22835,frog\n22836,cat\n22837,deer\n22838,cat\n22839,truck\n22840,horse\n22841,automobile\n22842,cat\n22843,frog\n22844,frog\n22845,airplane\n22846,ship\n22847,airplane\n22848,airplane\n22849,cat\n22850,automobile\n22851,cat\n22852,cat\n22853,ship\n22854,deer\n22855,deer\n22856,dog\n22857,deer\n22858,ship\n22859,cat\n22860,dog\n22861,airplane\n22862,cat\n22863,dog\n22864,horse\n22865,frog\n22866,airplane\n22867,cat\n22868,deer\n22869,frog\n22870,truck\n22871,ship\n22872,truck\n22873,cat\n22874,automobile\n22875,frog\n22876,dog\n22877,deer\n22878,bird\n22879,cat\n22880,bird\n22881,bird\n22882,deer\n22883,frog\n22884,horse\n22885,cat\n22886,frog\n22887,dog\n22888,automobile\n22889,automobile\n22890,bird\n22891,horse\n22892,frog\n22893,automobile\n22894,frog\n22895,bird\n22896,horse\n22897,frog\n22898,automobile\n22899,cat\n22900,deer\n22901,airplane\n22902,dog\n22903,frog\n22904,horse\n22905,frog\n22906,frog\n22907,airplane\n22908,dog\n22909,frog\n22910,bird\n22911,cat\n22912,cat\n22913,frog\n22914,ship\n22915,frog\n22916,truck\n22917,deer\n22918,dog\n22919,deer\n22920,deer\n22921,ship\n22922,horse\n22923,cat\n22924,horse\n22925,airplane\n22926,cat\n22927,cat\n22928,airplane\n22929,frog\n22930,truck\n22931,cat\n22932,airplane\n22933,dog\n22934,deer\n22935,frog\n22936,deer\n22937,ship\n22938,frog\n22939,deer\n22940,dog\n22941,cat\n22942,ship\n22943,deer\n22944,deer\n22945,frog\n22946,deer\n22947,ship\n22948,horse\n22949,dog\n22950,deer\n22951,deer\n22952,dog\n22953,horse\n22954,dog\n22955,truck\n22956,frog\n22957,horse\n22958,dog\n22959,automobile\n22960,frog\n22961,frog\n22962,dog\n22963,frog\n22964,truck\n22965,airplane\n22966,bird\n22967,truck\n22968,automobile\n22969,dog\n22970,frog\n22971,deer\n22972,deer\n22973,bird\n22974,airplane\n22975,cat\n22976,dog\n22977,bird\n22978,truck\n22979,dog\n22980,bird\n22981,frog\n22982,airplane\n22983,airplane\n22984,truck\n22985,airplane\n22986,dog\n22987,cat\n22988,frog\n22989,cat\n22990,dog\n22991,bird\n22992,horse\n22993,truck\n22994,bird\n22995,cat\n22996,cat\n22997,ship\n22998,deer\n22999,cat\n23000,airplane\n23001,automobile\n23002,ship\n23003,automobile\n23004,automobile\n23005,bird\n23006,bird\n23007,cat\n23008,frog\n23009,deer\n23010,dog\n23011,deer\n23012,frog\n23013,horse\n23014,horse\n23015,truck\n23016,deer\n23017,deer\n23018,deer\n23019,ship\n23020,cat\n23021,deer\n23022,automobile\n23023,bird\n23024,bird\n23025,cat\n23026,frog\n23027,airplane\n23028,truck\n23029,frog\n23030,horse\n23031,truck\n23032,automobile\n23033,frog\n23034,ship\n23035,cat\n23036,horse\n23037,ship\n23038,deer\n23039,deer\n23040,dog\n23041,dog\n23042,horse\n23043,automobile\n23044,cat\n23045,dog\n23046,dog\n23047,ship\n23048,dog\n23049,horse\n23050,dog\n23051,dog\n23052,automobile\n23053,airplane\n23054,deer\n23055,deer\n23056,dog\n23057,cat\n23058,dog\n23059,automobile\n23060,deer\n23061,deer\n23062,truck\n23063,ship\n23064,dog\n23065,truck\n23066,deer\n23067,frog\n23068,dog\n23069,deer\n23070,airplane\n23071,frog\n23072,frog\n23073,dog\n23074,cat\n23075,ship\n23076,ship\n23077,ship\n23078,bird\n23079,deer\n23080,automobile\n23081,automobile\n23082,bird\n23083,truck\n23084,deer\n23085,horse\n23086,deer\n23087,dog\n23088,dog\n23089,ship\n23090,automobile\n23091,truck\n23092,deer\n23093,deer\n23094,dog\n23095,horse\n23096,dog\n23097,deer\n23098,truck\n23099,airplane\n23100,dog\n23101,ship\n23102,dog\n23103,bird\n23104,automobile\n23105,cat\n23106,cat\n23107,dog\n23108,frog\n23109,airplane\n23110,ship\n23111,airplane\n23112,horse\n23113,horse\n23114,automobile\n23115,cat\n23116,deer\n23117,frog\n23118,bird\n23119,dog\n23120,automobile\n23121,dog\n23122,dog\n23123,horse\n23124,truck\n23125,deer\n23126,cat\n23127,airplane\n23128,bird\n23129,deer\n23130,cat\n23131,ship\n23132,dog\n23133,bird\n23134,automobile\n23135,bird\n23136,cat\n23137,dog\n23138,cat\n23139,bird\n23140,dog\n23141,truck\n23142,horse\n23143,deer\n23144,cat\n23145,cat\n23146,frog\n23147,cat\n23148,cat\n23149,horse\n23150,bird\n23151,bird\n23152,deer\n23153,frog\n23154,automobile\n23155,ship\n23156,automobile\n23157,bird\n23158,deer\n23159,automobile\n23160,dog\n23161,deer\n23162,automobile\n23163,ship\n23164,deer\n23165,cat\n23166,bird\n23167,airplane\n23168,truck\n23169,ship\n23170,deer\n23171,deer\n23172,deer\n23173,dog\n23174,airplane\n23175,automobile\n23176,deer\n23177,frog\n23178,frog\n23179,deer\n23180,frog\n23181,cat\n23182,truck\n23183,automobile\n23184,bird\n23185,cat\n23186,deer\n23187,deer\n23188,cat\n23189,frog\n23190,dog\n23191,frog\n23192,truck\n23193,automobile\n23194,frog\n23195,automobile\n23196,ship\n23197,deer\n23198,deer\n23199,truck\n23200,bird\n23201,frog\n23202,truck\n23203,deer\n23204,automobile\n23205,truck\n23206,airplane\n23207,cat\n23208,deer\n23209,deer\n23210,frog\n23211,horse\n23212,cat\n23213,dog\n23214,cat\n23215,airplane\n23216,dog\n23217,cat\n23218,cat\n23219,bird\n23220,bird\n23221,dog\n23222,cat\n23223,cat\n23224,bird\n23225,deer\n23226,airplane\n23227,bird\n23228,truck\n23229,dog\n23230,automobile\n23231,ship\n23232,horse\n23233,frog\n23234,automobile\n23235,ship\n23236,ship\n23237,frog\n23238,deer\n23239,bird\n23240,ship\n23241,airplane\n23242,horse\n23243,truck\n23244,dog\n23245,deer\n23246,deer\n23247,frog\n23248,dog\n23249,dog\n23250,horse\n23251,ship\n23252,ship\n23253,truck\n23254,deer\n23255,cat\n23256,bird\n23257,horse\n23258,airplane\n23259,horse\n23260,cat\n23261,cat\n23262,bird\n23263,bird\n23264,deer\n23265,airplane\n23266,truck\n23267,airplane\n23268,cat\n23269,automobile\n23270,automobile\n23271,deer\n23272,automobile\n23273,automobile\n23274,dog\n23275,cat\n23276,deer\n23277,airplane\n23278,ship\n23279,bird\n23280,truck\n23281,horse\n23282,dog\n23283,horse\n23284,dog\n23285,dog\n23286,frog\n23287,cat\n23288,frog\n23289,horse\n23290,dog\n23291,deer\n23292,deer\n23293,cat\n23294,cat\n23295,horse\n23296,horse\n23297,automobile\n23298,cat\n23299,dog\n23300,dog\n23301,frog\n23302,cat\n23303,dog\n23304,deer\n23305,cat\n23306,frog\n23307,dog\n23308,bird\n23309,frog\n23310,bird\n23311,bird\n23312,automobile\n23313,cat\n23314,deer\n23315,ship\n23316,ship\n23317,dog\n23318,deer\n23319,cat\n23320,frog\n23321,airplane\n23322,ship\n23323,frog\n23324,truck\n23325,horse\n23326,truck\n23327,deer\n23328,cat\n23329,airplane\n23330,truck\n23331,airplane\n23332,deer\n23333,ship\n23334,cat\n23335,deer\n23336,dog\n23337,frog\n23338,deer\n23339,cat\n23340,airplane\n23341,dog\n23342,deer\n23343,truck\n23344,dog\n23345,airplane\n23346,bird\n23347,dog\n23348,horse\n23349,dog\n23350,horse\n23351,dog\n23352,airplane\n23353,cat\n23354,bird\n23355,cat\n23356,cat\n23357,frog\n23358,bird\n23359,cat\n23360,frog\n23361,horse\n23362,deer\n23363,automobile\n23364,cat\n23365,horse\n23366,frog\n23367,frog\n23368,truck\n23369,frog\n23370,ship\n23371,cat\n23372,ship\n23373,cat\n23374,cat\n23375,dog\n23376,cat\n23377,truck\n23378,frog\n23379,deer\n23380,truck\n23381,deer\n23382,frog\n23383,automobile\n23384,ship\n23385,cat\n23386,automobile\n23387,deer\n23388,deer\n23389,airplane\n23390,frog\n23391,bird\n23392,dog\n23393,airplane\n23394,bird\n23395,horse\n23396,airplane\n23397,deer\n23398,bird\n23399,automobile\n23400,cat\n23401,deer\n23402,ship\n23403,dog\n23404,airplane\n23405,truck\n23406,dog\n23407,truck\n23408,cat\n23409,cat\n23410,frog\n23411,frog\n23412,truck\n23413,automobile\n23414,deer\n23415,bird\n23416,cat\n23417,frog\n23418,horse\n23419,deer\n23420,frog\n23421,dog\n23422,horse\n23423,automobile\n23424,deer\n23425,deer\n23426,dog\n23427,automobile\n23428,automobile\n23429,deer\n23430,horse\n23431,bird\n23432,cat\n23433,dog\n23434,automobile\n23435,cat\n23436,deer\n23437,ship\n23438,ship\n23439,ship\n23440,airplane\n23441,frog\n23442,dog\n23443,cat\n23444,cat\n23445,dog\n23446,bird\n23447,frog\n23448,frog\n23449,deer\n23450,dog\n23451,cat\n23452,dog\n23453,deer\n23454,cat\n23455,bird\n23456,frog\n23457,airplane\n23458,cat\n23459,ship\n23460,frog\n23461,truck\n23462,deer\n23463,deer\n23464,horse\n23465,deer\n23466,deer\n23467,cat\n23468,frog\n23469,airplane\n23470,bird\n23471,frog\n23472,dog\n23473,dog\n23474,deer\n23475,deer\n23476,cat\n23477,horse\n23478,truck\n23479,deer\n23480,deer\n23481,ship\n23482,dog\n23483,horse\n23484,cat\n23485,truck\n23486,dog\n23487,cat\n23488,horse\n23489,cat\n23490,ship\n23491,horse\n23492,deer\n23493,bird\n23494,deer\n23495,horse\n23496,truck\n23497,frog\n23498,bird\n23499,frog\n23500,airplane\n23501,deer\n23502,cat\n23503,airplane\n23504,ship\n23505,airplane\n23506,frog\n23507,airplane\n23508,deer\n23509,horse\n23510,deer\n23511,dog\n23512,cat\n23513,frog\n23514,dog\n23515,horse\n23516,deer\n23517,deer\n23518,truck\n23519,truck\n23520,truck\n23521,truck\n23522,cat\n23523,airplane\n23524,airplane\n23525,deer\n23526,bird\n23527,truck\n23528,automobile\n23529,bird\n23530,horse\n23531,horse\n23532,horse\n23533,cat\n23534,dog\n23535,frog\n23536,airplane\n23537,cat\n23538,cat\n23539,dog\n23540,truck\n23541,airplane\n23542,horse\n23543,truck\n23544,frog\n23545,frog\n23546,airplane\n23547,truck\n23548,cat\n23549,cat\n23550,dog\n23551,truck\n23552,dog\n23553,bird\n23554,automobile\n23555,dog\n23556,airplane\n23557,dog\n23558,deer\n23559,automobile\n23560,frog\n23561,truck\n23562,bird\n23563,horse\n23564,ship\n23565,deer\n23566,dog\n23567,bird\n23568,dog\n23569,ship\n23570,bird\n23571,horse\n23572,frog\n23573,horse\n23574,ship\n23575,deer\n23576,cat\n23577,ship\n23578,cat\n23579,dog\n23580,truck\n23581,truck\n23582,horse\n23583,truck\n23584,automobile\n23585,horse\n23586,deer\n23587,frog\n23588,ship\n23589,truck\n23590,dog\n23591,truck\n23592,automobile\n23593,airplane\n23594,dog\n23595,deer\n23596,truck\n23597,airplane\n23598,horse\n23599,frog\n23600,horse\n23601,frog\n23602,bird\n23603,frog\n23604,horse\n23605,horse\n23606,deer\n23607,airplane\n23608,frog\n23609,frog\n23610,ship\n23611,bird\n23612,deer\n23613,cat\n23614,dog\n23615,horse\n23616,ship\n23617,truck\n23618,deer\n23619,cat\n23620,ship\n23621,airplane\n23622,cat\n23623,cat\n23624,truck\n23625,bird\n23626,ship\n23627,dog\n23628,ship\n23629,horse\n23630,ship\n23631,horse\n23632,cat\n23633,airplane\n23634,dog\n23635,ship\n23636,cat\n23637,deer\n23638,dog\n23639,truck\n23640,bird\n23641,ship\n23642,frog\n23643,deer\n23644,bird\n23645,frog\n23646,truck\n23647,horse\n23648,bird\n23649,horse\n23650,dog\n23651,bird\n23652,dog\n23653,bird\n23654,ship\n23655,automobile\n23656,truck\n23657,bird\n23658,airplane\n23659,frog\n23660,truck\n23661,frog\n23662,deer\n23663,frog\n23664,truck\n23665,cat\n23666,horse\n23667,horse\n23668,airplane\n23669,automobile\n23670,cat\n23671,frog\n23672,frog\n23673,truck\n23674,truck\n23675,bird\n23676,airplane\n23677,dog\n23678,dog\n23679,automobile\n23680,airplane\n23681,deer\n23682,deer\n23683,deer\n23684,cat\n23685,deer\n23686,deer\n23687,automobile\n23688,deer\n23689,frog\n23690,cat\n23691,deer\n23692,airplane\n23693,horse\n23694,frog\n23695,bird\n23696,ship\n23697,horse\n23698,airplane\n23699,horse\n23700,dog\n23701,ship\n23702,deer\n23703,ship\n23704,automobile\n23705,truck\n23706,bird\n23707,bird\n23708,airplane\n23709,deer\n23710,frog\n23711,deer\n23712,frog\n23713,frog\n23714,frog\n23715,deer\n23716,cat\n23717,deer\n23718,bird\n23719,cat\n23720,horse\n23721,dog\n23722,truck\n23723,frog\n23724,ship\n23725,airplane\n23726,frog\n23727,ship\n23728,frog\n23729,frog\n23730,truck\n23731,bird\n23732,ship\n23733,cat\n23734,truck\n23735,automobile\n23736,ship\n23737,airplane\n23738,frog\n23739,horse\n23740,deer\n23741,horse\n23742,horse\n23743,dog\n23744,horse\n23745,ship\n23746,cat\n23747,frog\n23748,ship\n23749,bird\n23750,deer\n23751,automobile\n23752,automobile\n23753,cat\n23754,horse\n23755,truck\n23756,bird\n23757,automobile\n23758,bird\n23759,automobile\n23760,frog\n23761,deer\n23762,dog\n23763,truck\n23764,bird\n23765,ship\n23766,horse\n23767,ship\n23768,dog\n23769,horse\n23770,cat\n23771,bird\n23772,dog\n23773,cat\n23774,horse\n23775,automobile\n23776,frog\n23777,bird\n23778,truck\n23779,cat\n23780,truck\n23781,truck\n23782,airplane\n23783,frog\n23784,ship\n23785,frog\n23786,deer\n23787,ship\n23788,automobile\n23789,dog\n23790,cat\n23791,automobile\n23792,bird\n23793,cat\n23794,horse\n23795,dog\n23796,ship\n23797,horse\n23798,frog\n23799,cat\n23800,dog\n23801,frog\n23802,cat\n23803,truck\n23804,bird\n23805,cat\n23806,airplane\n23807,ship\n23808,dog\n23809,automobile\n23810,automobile\n23811,frog\n23812,horse\n23813,cat\n23814,bird\n23815,truck\n23816,frog\n23817,airplane\n23818,frog\n23819,dog\n23820,truck\n23821,automobile\n23822,cat\n23823,truck\n23824,automobile\n23825,dog\n23826,truck\n23827,ship\n23828,ship\n23829,deer\n23830,horse\n23831,airplane\n23832,truck\n23833,dog\n23834,cat\n23835,horse\n23836,horse\n23837,frog\n23838,automobile\n23839,truck\n23840,bird\n23841,frog\n23842,airplane\n23843,ship\n23844,horse\n23845,horse\n23846,airplane\n23847,ship\n23848,cat\n23849,ship\n23850,horse\n23851,truck\n23852,cat\n23853,deer\n23854,deer\n23855,automobile\n23856,cat\n23857,dog\n23858,cat\n23859,cat\n23860,truck\n23861,ship\n23862,deer\n23863,truck\n23864,truck\n23865,cat\n23866,truck\n23867,horse\n23868,airplane\n23869,truck\n23870,airplane\n23871,truck\n23872,bird\n23873,frog\n23874,deer\n23875,airplane\n23876,airplane\n23877,deer\n23878,horse\n23879,horse\n23880,dog\n23881,cat\n23882,horse\n23883,bird\n23884,deer\n23885,horse\n23886,deer\n23887,horse\n23888,horse\n23889,truck\n23890,cat\n23891,truck\n23892,dog\n23893,truck\n23894,deer\n23895,automobile\n23896,ship\n23897,truck\n23898,automobile\n23899,bird\n23900,ship\n23901,frog\n23902,deer\n23903,airplane\n23904,ship\n23905,cat\n23906,deer\n23907,airplane\n23908,frog\n23909,cat\n23910,truck\n23911,horse\n23912,airplane\n23913,deer\n23914,airplane\n23915,dog\n23916,deer\n23917,dog\n23918,deer\n23919,deer\n23920,cat\n23921,truck\n23922,bird\n23923,truck\n23924,horse\n23925,truck\n23926,truck\n23927,truck\n23928,dog\n23929,automobile\n23930,cat\n23931,cat\n23932,airplane\n23933,deer\n23934,bird\n23935,cat\n23936,airplane\n23937,cat\n23938,dog\n23939,dog\n23940,ship\n23941,bird\n23942,ship\n23943,truck\n23944,dog\n23945,deer\n23946,horse\n23947,automobile\n23948,dog\n23949,dog\n23950,automobile\n23951,cat\n23952,deer\n23953,truck\n23954,ship\n23955,airplane\n23956,cat\n23957,cat\n23958,horse\n23959,ship\n23960,deer\n23961,cat\n23962,cat\n23963,truck\n23964,deer\n23965,dog\n23966,airplane\n23967,cat\n23968,deer\n23969,frog\n23970,deer\n23971,horse\n23972,cat\n23973,ship\n23974,cat\n23975,truck\n23976,truck\n23977,automobile\n23978,ship\n23979,bird\n23980,truck\n23981,airplane\n23982,cat\n23983,deer\n23984,bird\n23985,truck\n23986,ship\n23987,frog\n23988,frog\n23989,cat\n23990,dog\n23991,ship\n23992,horse\n23993,cat\n23994,truck\n23995,airplane\n23996,automobile\n23997,deer\n23998,cat\n23999,horse\n24000,cat\n24001,truck\n24002,airplane\n24003,truck\n24004,airplane\n24005,deer\n24006,dog\n24007,horse\n24008,frog\n24009,deer\n24010,truck\n24011,deer\n24012,horse\n24013,airplane\n24014,bird\n24015,dog\n24016,frog\n24017,ship\n24018,automobile\n24019,cat\n24020,bird\n24021,horse\n24022,deer\n24023,frog\n24024,deer\n24025,bird\n24026,frog\n24027,frog\n24028,cat\n24029,automobile\n24030,frog\n24031,frog\n24032,bird\n24033,frog\n24034,truck\n24035,horse\n24036,automobile\n24037,automobile\n24038,horse\n24039,ship\n24040,ship\n24041,airplane\n24042,cat\n24043,cat\n24044,airplane\n24045,cat\n24046,automobile\n24047,horse\n24048,automobile\n24049,airplane\n24050,frog\n24051,truck\n24052,frog\n24053,automobile\n24054,bird\n24055,bird\n24056,bird\n24057,bird\n24058,frog\n24059,deer\n24060,cat\n24061,cat\n24062,deer\n24063,cat\n24064,horse\n24065,automobile\n24066,deer\n24067,frog\n24068,horse\n24069,cat\n24070,horse\n24071,truck\n24072,deer\n24073,horse\n24074,horse\n24075,ship\n24076,horse\n24077,truck\n24078,ship\n24079,bird\n24080,cat\n24081,bird\n24082,truck\n24083,truck\n24084,truck\n24085,ship\n24086,truck\n24087,ship\n24088,automobile\n24089,airplane\n24090,bird\n24091,deer\n24092,frog\n24093,ship\n24094,cat\n24095,cat\n24096,deer\n24097,automobile\n24098,truck\n24099,deer\n24100,automobile\n24101,cat\n24102,frog\n24103,deer\n24104,bird\n24105,cat\n24106,automobile\n24107,dog\n24108,horse\n24109,dog\n24110,deer\n24111,frog\n24112,truck\n24113,airplane\n24114,ship\n24115,horse\n24116,frog\n24117,frog\n24118,frog\n24119,horse\n24120,bird\n24121,deer\n24122,deer\n24123,deer\n24124,cat\n24125,horse\n24126,truck\n24127,airplane\n24128,horse\n24129,cat\n24130,frog\n24131,airplane\n24132,truck\n24133,truck\n24134,automobile\n24135,frog\n24136,cat\n24137,bird\n24138,deer\n24139,frog\n24140,automobile\n24141,ship\n24142,automobile\n24143,dog\n24144,deer\n24145,truck\n24146,dog\n24147,automobile\n24148,airplane\n24149,ship\n24150,truck\n24151,dog\n24152,automobile\n24153,cat\n24154,dog\n24155,horse\n24156,frog\n24157,horse\n24158,automobile\n24159,ship\n24160,horse\n24161,frog\n24162,dog\n24163,ship\n24164,cat\n24165,deer\n24166,cat\n24167,cat\n24168,cat\n24169,deer\n24170,deer\n24171,airplane\n24172,truck\n24173,airplane\n24174,cat\n24175,dog\n24176,ship\n24177,truck\n24178,bird\n24179,frog\n24180,dog\n24181,ship\n24182,frog\n24183,cat\n24184,truck\n24185,ship\n24186,dog\n24187,cat\n24188,frog\n24189,truck\n24190,frog\n24191,dog\n24192,bird\n24193,ship\n24194,automobile\n24195,horse\n24196,ship\n24197,deer\n24198,dog\n24199,ship\n24200,truck\n24201,horse\n24202,bird\n24203,ship\n24204,horse\n24205,cat\n24206,bird\n24207,cat\n24208,bird\n24209,cat\n24210,airplane\n24211,bird\n24212,deer\n24213,airplane\n24214,horse\n24215,airplane\n24216,ship\n24217,deer\n24218,deer\n24219,cat\n24220,dog\n24221,frog\n24222,deer\n24223,deer\n24224,airplane\n24225,deer\n24226,airplane\n24227,deer\n24228,cat\n24229,dog\n24230,airplane\n24231,ship\n24232,dog\n24233,truck\n24234,airplane\n24235,bird\n24236,horse\n24237,cat\n24238,deer\n24239,automobile\n24240,deer\n24241,ship\n24242,dog\n24243,deer\n24244,airplane\n24245,frog\n24246,dog\n24247,deer\n24248,cat\n24249,deer\n24250,frog\n24251,cat\n24252,horse\n24253,deer\n24254,bird\n24255,automobile\n24256,frog\n24257,dog\n24258,frog\n24259,ship\n24260,bird\n24261,automobile\n24262,airplane\n24263,truck\n24264,airplane\n24265,cat\n24266,automobile\n24267,deer\n24268,cat\n24269,cat\n24270,deer\n24271,truck\n24272,airplane\n24273,cat\n24274,frog\n24275,ship\n24276,truck\n24277,ship\n24278,cat\n24279,horse\n24280,deer\n24281,bird\n24282,bird\n24283,dog\n24284,airplane\n24285,cat\n24286,airplane\n24287,deer\n24288,frog\n24289,cat\n24290,bird\n24291,cat\n24292,deer\n24293,automobile\n24294,airplane\n24295,bird\n24296,cat\n24297,frog\n24298,automobile\n24299,cat\n24300,airplane\n24301,horse\n24302,airplane\n24303,truck\n24304,ship\n24305,horse\n24306,truck\n24307,frog\n24308,ship\n24309,dog\n24310,frog\n24311,horse\n24312,truck\n24313,automobile\n24314,cat\n24315,dog\n24316,dog\n24317,dog\n24318,ship\n24319,horse\n24320,deer\n24321,dog\n24322,frog\n24323,deer\n24324,automobile\n24325,frog\n24326,bird\n24327,frog\n24328,truck\n24329,airplane\n24330,truck\n24331,deer\n24332,ship\n24333,cat\n24334,cat\n24335,cat\n24336,ship\n24337,deer\n24338,ship\n24339,cat\n24340,cat\n24341,truck\n24342,frog\n24343,ship\n24344,frog\n24345,bird\n24346,frog\n24347,automobile\n24348,dog\n24349,cat\n24350,cat\n24351,deer\n24352,airplane\n24353,frog\n24354,airplane\n24355,ship\n24356,dog\n24357,truck\n24358,ship\n24359,horse\n24360,horse\n24361,deer\n24362,airplane\n24363,automobile\n24364,deer\n24365,frog\n24366,frog\n24367,frog\n24368,horse\n24369,frog\n24370,airplane\n24371,dog\n24372,deer\n24373,bird\n24374,dog\n24375,cat\n24376,airplane\n24377,airplane\n24378,ship\n24379,automobile\n24380,truck\n24381,cat\n24382,bird\n24383,automobile\n24384,dog\n24385,truck\n24386,cat\n24387,deer\n24388,airplane\n24389,deer\n24390,dog\n24391,airplane\n24392,ship\n24393,truck\n24394,deer\n24395,cat\n24396,deer\n24397,truck\n24398,truck\n24399,ship\n24400,horse\n24401,deer\n24402,bird\n24403,cat\n24404,airplane\n24405,deer\n24406,dog\n24407,deer\n24408,airplane\n24409,cat\n24410,dog\n24411,bird\n24412,horse\n24413,deer\n24414,frog\n24415,deer\n24416,bird\n24417,frog\n24418,horse\n24419,dog\n24420,cat\n24421,frog\n24422,ship\n24423,cat\n24424,deer\n24425,frog\n24426,horse\n24427,frog\n24428,airplane\n24429,bird\n24430,bird\n24431,bird\n24432,deer\n24433,airplane\n24434,cat\n24435,airplane\n24436,cat\n24437,truck\n24438,frog\n24439,truck\n24440,truck\n24441,cat\n24442,airplane\n24443,horse\n24444,cat\n24445,airplane\n24446,ship\n24447,dog\n24448,frog\n24449,horse\n24450,cat\n24451,automobile\n24452,cat\n24453,dog\n24454,deer\n24455,deer\n24456,truck\n24457,dog\n24458,truck\n24459,horse\n24460,deer\n24461,automobile\n24462,dog\n24463,truck\n24464,bird\n24465,cat\n24466,airplane\n24467,horse\n24468,horse\n24469,bird\n24470,airplane\n24471,cat\n24472,horse\n24473,bird\n24474,cat\n24475,frog\n24476,frog\n24477,truck\n24478,cat\n24479,frog\n24480,frog\n24481,deer\n24482,cat\n24483,dog\n24484,truck\n24485,automobile\n24486,deer\n24487,automobile\n24488,horse\n24489,automobile\n24490,horse\n24491,truck\n24492,dog\n24493,automobile\n24494,ship\n24495,cat\n24496,dog\n24497,dog\n24498,frog\n24499,bird\n24500,dog\n24501,cat\n24502,dog\n24503,truck\n24504,horse\n24505,dog\n24506,cat\n24507,bird\n24508,dog\n24509,ship\n24510,bird\n24511,horse\n24512,frog\n24513,airplane\n24514,bird\n24515,airplane\n24516,truck\n24517,horse\n24518,bird\n24519,frog\n24520,dog\n24521,truck\n24522,deer\n24523,dog\n24524,dog\n24525,deer\n24526,deer\n24527,deer\n24528,cat\n24529,bird\n24530,deer\n24531,horse\n24532,automobile\n24533,horse\n24534,dog\n24535,cat\n24536,bird\n24537,dog\n24538,airplane\n24539,airplane\n24540,bird\n24541,dog\n24542,bird\n24543,bird\n24544,automobile\n24545,cat\n24546,truck\n24547,horse\n24548,deer\n24549,cat\n24550,bird\n24551,bird\n24552,horse\n24553,deer\n24554,ship\n24555,ship\n24556,frog\n24557,cat\n24558,automobile\n24559,dog\n24560,dog\n24561,horse\n24562,cat\n24563,deer\n24564,truck\n24565,deer\n24566,dog\n24567,automobile\n24568,bird\n24569,ship\n24570,cat\n24571,cat\n24572,cat\n24573,bird\n24574,cat\n24575,cat\n24576,deer\n24577,horse\n24578,ship\n24579,truck\n24580,bird\n24581,automobile\n24582,truck\n24583,deer\n24584,ship\n24585,truck\n24586,cat\n24587,deer\n24588,ship\n24589,truck\n24590,dog\n24591,deer\n24592,dog\n24593,cat\n24594,bird\n24595,truck\n24596,automobile\n24597,bird\n24598,bird\n24599,airplane\n24600,cat\n24601,deer\n24602,frog\n24603,deer\n24604,horse\n24605,dog\n24606,truck\n24607,frog\n24608,frog\n24609,horse\n24610,automobile\n24611,horse\n24612,dog\n24613,airplane\n24614,horse\n24615,airplane\n24616,ship\n24617,truck\n24618,bird\n24619,deer\n24620,frog\n24621,airplane\n24622,horse\n24623,horse\n24624,airplane\n24625,dog\n24626,cat\n24627,truck\n24628,cat\n24629,airplane\n24630,bird\n24631,airplane\n24632,truck\n24633,cat\n24634,frog\n24635,frog\n24636,frog\n24637,cat\n24638,dog\n24639,bird\n24640,cat\n24641,cat\n24642,ship\n24643,ship\n24644,deer\n24645,cat\n24646,deer\n24647,automobile\n24648,frog\n24649,bird\n24650,deer\n24651,deer\n24652,truck\n24653,dog\n24654,deer\n24655,horse\n24656,deer\n24657,truck\n24658,deer\n24659,deer\n24660,ship\n24661,horse\n24662,horse\n24663,dog\n24664,dog\n24665,deer\n24666,horse\n24667,deer\n24668,frog\n24669,bird\n24670,frog\n24671,truck\n24672,airplane\n24673,cat\n24674,frog\n24675,deer\n24676,bird\n24677,bird\n24678,deer\n24679,deer\n24680,horse\n24681,horse\n24682,bird\n24683,truck\n24684,frog\n24685,airplane\n24686,bird\n24687,deer\n24688,airplane\n24689,airplane\n24690,deer\n24691,deer\n24692,cat\n24693,horse\n24694,truck\n24695,automobile\n24696,horse\n24697,bird\n24698,cat\n24699,cat\n24700,deer\n24701,cat\n24702,airplane\n24703,ship\n24704,ship\n24705,truck\n24706,bird\n24707,horse\n24708,dog\n24709,airplane\n24710,dog\n24711,horse\n24712,bird\n24713,frog\n24714,horse\n24715,dog\n24716,deer\n24717,truck\n24718,ship\n24719,automobile\n24720,horse\n24721,bird\n24722,dog\n24723,cat\n24724,cat\n24725,deer\n24726,cat\n24727,dog\n24728,horse\n24729,truck\n24730,ship\n24731,bird\n24732,automobile\n24733,automobile\n24734,automobile\n24735,truck\n24736,truck\n24737,dog\n24738,bird\n24739,horse\n24740,deer\n24741,dog\n24742,frog\n24743,ship\n24744,frog\n24745,truck\n24746,ship\n24747,deer\n24748,horse\n24749,dog\n24750,bird\n24751,airplane\n24752,truck\n24753,deer\n24754,dog\n24755,horse\n24756,truck\n24757,bird\n24758,ship\n24759,airplane\n24760,bird\n24761,cat\n24762,cat\n24763,deer\n24764,dog\n24765,truck\n24766,deer\n24767,deer\n24768,cat\n24769,ship\n24770,truck\n24771,bird\n24772,cat\n24773,frog\n24774,cat\n24775,ship\n24776,automobile\n24777,ship\n24778,bird\n24779,cat\n24780,cat\n24781,horse\n24782,bird\n24783,dog\n24784,deer\n24785,truck\n24786,ship\n24787,truck\n24788,horse\n24789,horse\n24790,cat\n24791,deer\n24792,frog\n24793,airplane\n24794,horse\n24795,ship\n24796,frog\n24797,cat\n24798,bird\n24799,cat\n24800,horse\n24801,cat\n24802,automobile\n24803,horse\n24804,frog\n24805,frog\n24806,frog\n24807,dog\n24808,deer\n24809,cat\n24810,airplane\n24811,dog\n24812,bird\n24813,truck\n24814,cat\n24815,frog\n24816,truck\n24817,frog\n24818,airplane\n24819,airplane\n24820,deer\n24821,bird\n24822,horse\n24823,deer\n24824,dog\n24825,horse\n24826,truck\n24827,bird\n24828,dog\n24829,deer\n24830,ship\n24831,automobile\n24832,airplane\n24833,horse\n24834,ship\n24835,bird\n24836,dog\n24837,dog\n24838,horse\n24839,horse\n24840,truck\n24841,frog\n24842,bird\n24843,horse\n24844,airplane\n24845,dog\n24846,deer\n24847,deer\n24848,airplane\n24849,deer\n24850,frog\n24851,automobile\n24852,horse\n24853,horse\n24854,bird\n24855,ship\n24856,horse\n24857,cat\n24858,frog\n24859,airplane\n24860,dog\n24861,cat\n24862,cat\n24863,automobile\n24864,ship\n24865,horse\n24866,automobile\n24867,deer\n24868,deer\n24869,bird\n24870,truck\n24871,horse\n24872,automobile\n24873,deer\n24874,horse\n24875,bird\n24876,automobile\n24877,airplane\n24878,horse\n24879,cat\n24880,ship\n24881,horse\n24882,horse\n24883,frog\n24884,ship\n24885,ship\n24886,horse\n24887,dog\n24888,bird\n24889,truck\n24890,cat\n24891,truck\n24892,bird\n24893,dog\n24894,airplane\n24895,deer\n24896,ship\n24897,horse\n24898,airplane\n24899,deer\n24900,airplane\n24901,horse\n24902,bird\n24903,cat\n24904,airplane\n24905,frog\n24906,frog\n24907,airplane\n24908,automobile\n24909,ship\n24910,deer\n24911,dog\n24912,automobile\n24913,cat\n24914,cat\n24915,deer\n24916,automobile\n24917,truck\n24918,bird\n24919,deer\n24920,automobile\n24921,cat\n24922,airplane\n24923,bird\n24924,dog\n24925,horse\n24926,bird\n24927,frog\n24928,automobile\n24929,airplane\n24930,cat\n24931,deer\n24932,airplane\n24933,cat\n24934,bird\n24935,dog\n24936,truck\n24937,deer\n24938,cat\n24939,bird\n24940,truck\n24941,deer\n24942,deer\n24943,bird\n24944,deer\n24945,dog\n24946,cat\n24947,ship\n24948,airplane\n24949,airplane\n24950,bird\n24951,horse\n24952,frog\n24953,cat\n24954,bird\n24955,dog\n24956,dog\n24957,frog\n24958,deer\n24959,dog\n24960,bird\n24961,frog\n24962,ship\n24963,truck\n24964,cat\n24965,bird\n24966,cat\n24967,airplane\n24968,truck\n24969,frog\n24970,ship\n24971,cat\n24972,cat\n24973,airplane\n24974,deer\n24975,frog\n24976,dog\n24977,cat\n24978,cat\n24979,automobile\n24980,automobile\n24981,truck\n24982,bird\n24983,cat\n24984,dog\n24985,truck\n24986,dog\n24987,truck\n24988,deer\n24989,dog\n24990,deer\n24991,airplane\n24992,deer\n24993,cat\n24994,ship\n24995,horse\n24996,deer\n24997,cat\n24998,frog\n24999,bird\n25000,deer\n25001,cat\n25002,deer\n25003,ship\n25004,truck\n25005,cat\n25006,dog\n25007,frog\n25008,frog\n25009,cat\n25010,cat\n25011,dog\n25012,frog\n25013,bird\n25014,deer\n25015,truck\n25016,cat\n25017,truck\n25018,automobile\n25019,dog\n25020,truck\n25021,bird\n25022,horse\n25023,truck\n25024,dog\n25025,deer\n25026,deer\n25027,ship\n25028,airplane\n25029,cat\n25030,dog\n25031,dog\n25032,bird\n25033,deer\n25034,bird\n25035,horse\n25036,bird\n25037,bird\n25038,truck\n25039,horse\n25040,deer\n25041,truck\n25042,frog\n25043,dog\n25044,cat\n25045,frog\n25046,automobile\n25047,ship\n25048,horse\n25049,horse\n25050,horse\n25051,frog\n25052,dog\n25053,deer\n25054,airplane\n25055,truck\n25056,horse\n25057,ship\n25058,deer\n25059,ship\n25060,horse\n25061,horse\n25062,deer\n25063,deer\n25064,bird\n25065,cat\n25066,bird\n25067,bird\n25068,bird\n25069,bird\n25070,frog\n25071,truck\n25072,cat\n25073,frog\n25074,dog\n25075,cat\n25076,horse\n25077,automobile\n25078,automobile\n25079,dog\n25080,deer\n25081,horse\n25082,horse\n25083,cat\n25084,cat\n25085,truck\n25086,cat\n25087,dog\n25088,deer\n25089,airplane\n25090,frog\n25091,cat\n25092,cat\n25093,dog\n25094,automobile\n25095,airplane\n25096,airplane\n25097,horse\n25098,ship\n25099,ship\n25100,horse\n25101,frog\n25102,airplane\n25103,ship\n25104,automobile\n25105,horse\n25106,dog\n25107,cat\n25108,horse\n25109,dog\n25110,deer\n25111,dog\n25112,frog\n25113,dog\n25114,cat\n25115,deer\n25116,airplane\n25117,horse\n25118,horse\n25119,ship\n25120,airplane\n25121,truck\n25122,deer\n25123,bird\n25124,truck\n25125,dog\n25126,horse\n25127,ship\n25128,truck\n25129,cat\n25130,frog\n25131,frog\n25132,ship\n25133,bird\n25134,truck\n25135,truck\n25136,ship\n25137,horse\n25138,truck\n25139,deer\n25140,frog\n25141,deer\n25142,airplane\n25143,deer\n25144,truck\n25145,frog\n25146,automobile\n25147,horse\n25148,deer\n25149,ship\n25150,cat\n25151,horse\n25152,deer\n25153,frog\n25154,airplane\n25155,truck\n25156,frog\n25157,automobile\n25158,truck\n25159,frog\n25160,deer\n25161,dog\n25162,bird\n25163,horse\n25164,truck\n25165,truck\n25166,deer\n25167,truck\n25168,airplane\n25169,airplane\n25170,ship\n25171,dog\n25172,dog\n25173,dog\n25174,cat\n25175,frog\n25176,dog\n25177,dog\n25178,bird\n25179,cat\n25180,airplane\n25181,bird\n25182,bird\n25183,ship\n25184,deer\n25185,bird\n25186,bird\n25187,dog\n25188,frog\n25189,ship\n25190,deer\n25191,bird\n25192,ship\n25193,bird\n25194,ship\n25195,frog\n25196,cat\n25197,horse\n25198,deer\n25199,deer\n25200,horse\n25201,automobile\n25202,truck\n25203,cat\n25204,bird\n25205,truck\n25206,ship\n25207,frog\n25208,deer\n25209,cat\n25210,bird\n25211,dog\n25212,horse\n25213,bird\n25214,horse\n25215,horse\n25216,dog\n25217,frog\n25218,frog\n25219,horse\n25220,ship\n25221,horse\n25222,automobile\n25223,cat\n25224,ship\n25225,cat\n25226,airplane\n25227,frog\n25228,deer\n25229,deer\n25230,airplane\n25231,bird\n25232,cat\n25233,cat\n25234,dog\n25235,frog\n25236,truck\n25237,horse\n25238,frog\n25239,horse\n25240,airplane\n25241,frog\n25242,deer\n25243,truck\n25244,cat\n25245,cat\n25246,cat\n25247,truck\n25248,deer\n25249,cat\n25250,truck\n25251,truck\n25252,bird\n25253,horse\n25254,bird\n25255,horse\n25256,bird\n25257,airplane\n25258,automobile\n25259,frog\n25260,frog\n25261,ship\n25262,frog\n25263,frog\n25264,automobile\n25265,horse\n25266,truck\n25267,frog\n25268,bird\n25269,bird\n25270,cat\n25271,airplane\n25272,automobile\n25273,bird\n25274,airplane\n25275,bird\n25276,cat\n25277,deer\n25278,frog\n25279,cat\n25280,cat\n25281,frog\n25282,dog\n25283,frog\n25284,dog\n25285,cat\n25286,horse\n25287,cat\n25288,dog\n25289,truck\n25290,deer\n25291,automobile\n25292,frog\n25293,airplane\n25294,cat\n25295,ship\n25296,dog\n25297,dog\n25298,dog\n25299,airplane\n25300,dog\n25301,dog\n25302,airplane\n25303,frog\n25304,bird\n25305,dog\n25306,deer\n25307,truck\n25308,deer\n25309,dog\n25310,dog\n25311,dog\n25312,dog\n25313,dog\n25314,airplane\n25315,truck\n25316,deer\n25317,cat\n25318,automobile\n25319,frog\n25320,frog\n25321,truck\n25322,dog\n25323,cat\n25324,cat\n25325,horse\n25326,truck\n25327,truck\n25328,horse\n25329,deer\n25330,dog\n25331,bird\n25332,airplane\n25333,horse\n25334,truck\n25335,horse\n25336,horse\n25337,dog\n25338,deer\n25339,airplane\n25340,airplane\n25341,truck\n25342,truck\n25343,airplane\n25344,horse\n25345,bird\n25346,truck\n25347,airplane\n25348,dog\n25349,bird\n25350,deer\n25351,cat\n25352,cat\n25353,dog\n25354,cat\n25355,dog\n25356,deer\n25357,deer\n25358,dog\n25359,airplane\n25360,truck\n25361,horse\n25362,cat\n25363,cat\n25364,cat\n25365,ship\n25366,bird\n25367,truck\n25368,automobile\n25369,frog\n25370,airplane\n25371,cat\n25372,deer\n25373,dog\n25374,airplane\n25375,horse\n25376,deer\n25377,frog\n25378,dog\n25379,ship\n25380,automobile\n25381,airplane\n25382,ship\n25383,deer\n25384,cat\n25385,bird\n25386,ship\n25387,automobile\n25388,horse\n25389,ship\n25390,cat\n25391,ship\n25392,automobile\n25393,horse\n25394,deer\n25395,airplane\n25396,frog\n25397,dog\n25398,truck\n25399,horse\n25400,truck\n25401,ship\n25402,horse\n25403,deer\n25404,truck\n25405,cat\n25406,dog\n25407,cat\n25408,ship\n25409,cat\n25410,airplane\n25411,bird\n25412,dog\n25413,automobile\n25414,frog\n25415,truck\n25416,dog\n25417,deer\n25418,horse\n25419,bird\n25420,airplane\n25421,dog\n25422,automobile\n25423,bird\n25424,truck\n25425,truck\n25426,frog\n25427,automobile\n25428,cat\n25429,truck\n25430,truck\n25431,frog\n25432,truck\n25433,airplane\n25434,horse\n25435,truck\n25436,cat\n25437,bird\n25438,airplane\n25439,frog\n25440,cat\n25441,frog\n25442,bird\n25443,horse\n25444,cat\n25445,cat\n25446,airplane\n25447,airplane\n25448,truck\n25449,cat\n25450,airplane\n25451,truck\n25452,horse\n25453,bird\n25454,deer\n25455,cat\n25456,airplane\n25457,horse\n25458,dog\n25459,truck\n25460,cat\n25461,dog\n25462,frog\n25463,ship\n25464,airplane\n25465,airplane\n25466,deer\n25467,cat\n25468,truck\n25469,cat\n25470,frog\n25471,truck\n25472,truck\n25473,ship\n25474,deer\n25475,dog\n25476,airplane\n25477,airplane\n25478,airplane\n25479,deer\n25480,dog\n25481,horse\n25482,cat\n25483,airplane\n25484,frog\n25485,automobile\n25486,cat\n25487,automobile\n25488,automobile\n25489,cat\n25490,deer\n25491,dog\n25492,deer\n25493,automobile\n25494,airplane\n25495,dog\n25496,ship\n25497,ship\n25498,horse\n25499,dog\n25500,frog\n25501,ship\n25502,cat\n25503,deer\n25504,ship\n25505,dog\n25506,truck\n25507,airplane\n25508,dog\n25509,horse\n25510,horse\n25511,bird\n25512,horse\n25513,truck\n25514,cat\n25515,horse\n25516,frog\n25517,ship\n25518,airplane\n25519,dog\n25520,dog\n25521,deer\n25522,cat\n25523,frog\n25524,frog\n25525,dog\n25526,automobile\n25527,dog\n25528,horse\n25529,truck\n25530,deer\n25531,dog\n25532,airplane\n25533,horse\n25534,truck\n25535,frog\n25536,ship\n25537,airplane\n25538,deer\n25539,horse\n25540,ship\n25541,dog\n25542,dog\n25543,horse\n25544,frog\n25545,automobile\n25546,bird\n25547,cat\n25548,truck\n25549,bird\n25550,horse\n25551,automobile\n25552,ship\n25553,cat\n25554,truck\n25555,deer\n25556,frog\n25557,automobile\n25558,cat\n25559,bird\n25560,frog\n25561,bird\n25562,deer\n25563,horse\n25564,deer\n25565,frog\n25566,horse\n25567,bird\n25568,truck\n25569,cat\n25570,horse\n25571,bird\n25572,horse\n25573,deer\n25574,truck\n25575,airplane\n25576,airplane\n25577,deer\n25578,automobile\n25579,deer\n25580,frog\n25581,frog\n25582,deer\n25583,airplane\n25584,bird\n25585,bird\n25586,dog\n25587,airplane\n25588,airplane\n25589,cat\n25590,ship\n25591,truck\n25592,frog\n25593,automobile\n25594,dog\n25595,airplane\n25596,ship\n25597,ship\n25598,truck\n25599,truck\n25600,airplane\n25601,automobile\n25602,ship\n25603,bird\n25604,ship\n25605,cat\n25606,cat\n25607,automobile\n25608,automobile\n25609,truck\n25610,ship\n25611,deer\n25612,automobile\n25613,automobile\n25614,truck\n25615,airplane\n25616,automobile\n25617,frog\n25618,deer\n25619,truck\n25620,cat\n25621,truck\n25622,cat\n25623,deer\n25624,frog\n25625,ship\n25626,truck\n25627,airplane\n25628,airplane\n25629,deer\n25630,deer\n25631,truck\n25632,truck\n25633,horse\n25634,ship\n25635,deer\n25636,cat\n25637,cat\n25638,deer\n25639,automobile\n25640,dog\n25641,dog\n25642,dog\n25643,truck\n25644,bird\n25645,horse\n25646,ship\n25647,frog\n25648,automobile\n25649,deer\n25650,horse\n25651,airplane\n25652,airplane\n25653,truck\n25654,cat\n25655,automobile\n25656,airplane\n25657,cat\n25658,dog\n25659,deer\n25660,deer\n25661,dog\n25662,dog\n25663,dog\n25664,bird\n25665,deer\n25666,ship\n25667,cat\n25668,frog\n25669,frog\n25670,dog\n25671,bird\n25672,cat\n25673,deer\n25674,bird\n25675,ship\n25676,deer\n25677,bird\n25678,automobile\n25679,cat\n25680,truck\n25681,deer\n25682,horse\n25683,bird\n25684,dog\n25685,deer\n25686,frog\n25687,cat\n25688,cat\n25689,truck\n25690,dog\n25691,bird\n25692,deer\n25693,dog\n25694,deer\n25695,dog\n25696,truck\n25697,bird\n25698,horse\n25699,bird\n25700,horse\n25701,truck\n25702,ship\n25703,deer\n25704,truck\n25705,truck\n25706,bird\n25707,truck\n25708,bird\n25709,deer\n25710,horse\n25711,ship\n25712,deer\n25713,horse\n25714,deer\n25715,cat\n25716,dog\n25717,cat\n25718,automobile\n25719,cat\n25720,cat\n25721,frog\n25722,horse\n25723,ship\n25724,ship\n25725,horse\n25726,bird\n25727,truck\n25728,deer\n25729,deer\n25730,horse\n25731,deer\n25732,dog\n25733,automobile\n25734,frog\n25735,bird\n25736,horse\n25737,airplane\n25738,truck\n25739,deer\n25740,ship\n25741,ship\n25742,cat\n25743,bird\n25744,horse\n25745,dog\n25746,airplane\n25747,bird\n25748,truck\n25749,dog\n25750,cat\n25751,ship\n25752,cat\n25753,airplane\n25754,bird\n25755,airplane\n25756,airplane\n25757,automobile\n25758,cat\n25759,bird\n25760,frog\n25761,truck\n25762,truck\n25763,airplane\n25764,deer\n25765,deer\n25766,dog\n25767,frog\n25768,bird\n25769,bird\n25770,deer\n25771,horse\n25772,frog\n25773,cat\n25774,airplane\n25775,bird\n25776,truck\n25777,truck\n25778,frog\n25779,dog\n25780,cat\n25781,deer\n25782,cat\n25783,dog\n25784,automobile\n25785,dog\n25786,dog\n25787,bird\n25788,cat\n25789,frog\n25790,bird\n25791,deer\n25792,ship\n25793,bird\n25794,airplane\n25795,automobile\n25796,ship\n25797,cat\n25798,frog\n25799,cat\n25800,automobile\n25801,cat\n25802,frog\n25803,horse\n25804,horse\n25805,truck\n25806,dog\n25807,horse\n25808,deer\n25809,horse\n25810,deer\n25811,deer\n25812,deer\n25813,frog\n25814,dog\n25815,ship\n25816,bird\n25817,cat\n25818,horse\n25819,deer\n25820,dog\n25821,bird\n25822,bird\n25823,cat\n25824,airplane\n25825,horse\n25826,automobile\n25827,truck\n25828,deer\n25829,cat\n25830,airplane\n25831,dog\n25832,truck\n25833,truck\n25834,deer\n25835,truck\n25836,truck\n25837,cat\n25838,truck\n25839,deer\n25840,automobile\n25841,frog\n25842,dog\n25843,deer\n25844,deer\n25845,cat\n25846,ship\n25847,airplane\n25848,horse\n25849,automobile\n25850,cat\n25851,bird\n25852,horse\n25853,ship\n25854,deer\n25855,cat\n25856,bird\n25857,airplane\n25858,cat\n25859,bird\n25860,ship\n25861,horse\n25862,cat\n25863,cat\n25864,deer\n25865,airplane\n25866,ship\n25867,dog\n25868,horse\n25869,deer\n25870,frog\n25871,automobile\n25872,truck\n25873,bird\n25874,frog\n25875,automobile\n25876,ship\n25877,deer\n25878,deer\n25879,truck\n25880,bird\n25881,airplane\n25882,cat\n25883,frog\n25884,deer\n25885,frog\n25886,frog\n25887,ship\n25888,airplane\n25889,ship\n25890,automobile\n25891,frog\n25892,truck\n25893,frog\n25894,ship\n25895,automobile\n25896,ship\n25897,dog\n25898,horse\n25899,ship\n25900,bird\n25901,bird\n25902,truck\n25903,automobile\n25904,frog\n25905,truck\n25906,dog\n25907,cat\n25908,frog\n25909,bird\n25910,deer\n25911,truck\n25912,ship\n25913,deer\n25914,deer\n25915,deer\n25916,airplane\n25917,cat\n25918,frog\n25919,truck\n25920,automobile\n25921,truck\n25922,airplane\n25923,bird\n25924,bird\n25925,airplane\n25926,cat\n25927,dog\n25928,frog\n25929,bird\n25930,frog\n25931,bird\n25932,deer\n25933,bird\n25934,deer\n25935,deer\n25936,truck\n25937,dog\n25938,cat\n25939,ship\n25940,frog\n25941,truck\n25942,bird\n25943,automobile\n25944,deer\n25945,bird\n25946,airplane\n25947,truck\n25948,ship\n25949,bird\n25950,automobile\n25951,truck\n25952,deer\n25953,automobile\n25954,cat\n25955,horse\n25956,airplane\n25957,frog\n25958,automobile\n25959,automobile\n25960,horse\n25961,dog\n25962,truck\n25963,horse\n25964,truck\n25965,cat\n25966,dog\n25967,truck\n25968,airplane\n25969,airplane\n25970,dog\n25971,frog\n25972,airplane\n25973,ship\n25974,horse\n25975,cat\n25976,frog\n25977,bird\n25978,deer\n25979,frog\n25980,deer\n25981,truck\n25982,automobile\n25983,airplane\n25984,deer\n25985,frog\n25986,dog\n25987,dog\n25988,dog\n25989,automobile\n25990,dog\n25991,deer\n25992,automobile\n25993,dog\n25994,horse\n25995,horse\n25996,cat\n25997,deer\n25998,frog\n25999,frog\n26000,cat\n26001,deer\n26002,frog\n26003,airplane\n26004,airplane\n26005,cat\n26006,dog\n26007,bird\n26008,cat\n26009,cat\n26010,truck\n26011,frog\n26012,horse\n26013,ship\n26014,airplane\n26015,truck\n26016,cat\n26017,airplane\n26018,dog\n26019,airplane\n26020,cat\n26021,truck\n26022,ship\n26023,horse\n26024,frog\n26025,airplane\n26026,truck\n26027,deer\n26028,airplane\n26029,ship\n26030,horse\n26031,dog\n26032,cat\n26033,frog\n26034,dog\n26035,truck\n26036,deer\n26037,truck\n26038,automobile\n26039,frog\n26040,cat\n26041,horse\n26042,horse\n26043,airplane\n26044,bird\n26045,frog\n26046,frog\n26047,bird\n26048,deer\n26049,bird\n26050,horse\n26051,frog\n26052,dog\n26053,bird\n26054,frog\n26055,airplane\n26056,bird\n26057,horse\n26058,frog\n26059,deer\n26060,deer\n26061,bird\n26062,automobile\n26063,horse\n26064,ship\n26065,dog\n26066,truck\n26067,deer\n26068,cat\n26069,bird\n26070,airplane\n26071,horse\n26072,deer\n26073,truck\n26074,truck\n26075,dog\n26076,frog\n26077,deer\n26078,frog\n26079,airplane\n26080,automobile\n26081,ship\n26082,cat\n26083,dog\n26084,cat\n26085,cat\n26086,horse\n26087,automobile\n26088,ship\n26089,truck\n26090,truck\n26091,frog\n26092,cat\n26093,bird\n26094,frog\n26095,frog\n26096,bird\n26097,ship\n26098,ship\n26099,deer\n26100,frog\n26101,automobile\n26102,dog\n26103,bird\n26104,horse\n26105,frog\n26106,ship\n26107,truck\n26108,frog\n26109,cat\n26110,deer\n26111,bird\n26112,frog\n26113,cat\n26114,horse\n26115,automobile\n26116,frog\n26117,frog\n26118,truck\n26119,bird\n26120,bird\n26121,cat\n26122,bird\n26123,cat\n26124,automobile\n26125,truck\n26126,dog\n26127,bird\n26128,dog\n26129,deer\n26130,automobile\n26131,automobile\n26132,cat\n26133,ship\n26134,frog\n26135,dog\n26136,dog\n26137,deer\n26138,frog\n26139,ship\n26140,truck\n26141,automobile\n26142,horse\n26143,bird\n26144,automobile\n26145,deer\n26146,airplane\n26147,horse\n26148,horse\n26149,cat\n26150,horse\n26151,deer\n26152,airplane\n26153,automobile\n26154,bird\n26155,truck\n26156,automobile\n26157,bird\n26158,dog\n26159,bird\n26160,frog\n26161,airplane\n26162,truck\n26163,dog\n26164,cat\n26165,frog\n26166,dog\n26167,bird\n26168,cat\n26169,cat\n26170,cat\n26171,automobile\n26172,dog\n26173,airplane\n26174,horse\n26175,deer\n26176,bird\n26177,airplane\n26178,frog\n26179,bird\n26180,frog\n26181,horse\n26182,dog\n26183,automobile\n26184,dog\n26185,dog\n26186,cat\n26187,airplane\n26188,bird\n26189,deer\n26190,ship\n26191,airplane\n26192,cat\n26193,frog\n26194,automobile\n26195,ship\n26196,dog\n26197,horse\n26198,dog\n26199,deer\n26200,deer\n26201,airplane\n26202,automobile\n26203,truck\n26204,ship\n26205,cat\n26206,airplane\n26207,dog\n26208,cat\n26209,deer\n26210,truck\n26211,cat\n26212,cat\n26213,truck\n26214,truck\n26215,dog\n26216,deer\n26217,cat\n26218,truck\n26219,dog\n26220,deer\n26221,airplane\n26222,frog\n26223,truck\n26224,airplane\n26225,cat\n26226,truck\n26227,truck\n26228,ship\n26229,dog\n26230,truck\n26231,truck\n26232,automobile\n26233,frog\n26234,horse\n26235,dog\n26236,automobile\n26237,airplane\n26238,horse\n26239,horse\n26240,airplane\n26241,airplane\n26242,ship\n26243,deer\n26244,ship\n26245,truck\n26246,deer\n26247,deer\n26248,ship\n26249,truck\n26250,airplane\n26251,bird\n26252,deer\n26253,cat\n26254,bird\n26255,horse\n26256,deer\n26257,deer\n26258,dog\n26259,cat\n26260,airplane\n26261,horse\n26262,ship\n26263,horse\n26264,deer\n26265,ship\n26266,airplane\n26267,dog\n26268,airplane\n26269,horse\n26270,bird\n26271,dog\n26272,truck\n26273,ship\n26274,automobile\n26275,automobile\n26276,deer\n26277,deer\n26278,cat\n26279,dog\n26280,airplane\n26281,frog\n26282,cat\n26283,cat\n26284,cat\n26285,dog\n26286,automobile\n26287,deer\n26288,cat\n26289,bird\n26290,cat\n26291,deer\n26292,deer\n26293,horse\n26294,cat\n26295,deer\n26296,automobile\n26297,frog\n26298,dog\n26299,dog\n26300,truck\n26301,cat\n26302,automobile\n26303,ship\n26304,dog\n26305,cat\n26306,airplane\n26307,truck\n26308,truck\n26309,deer\n26310,cat\n26311,frog\n26312,dog\n26313,deer\n26314,airplane\n26315,deer\n26316,horse\n26317,ship\n26318,dog\n26319,cat\n26320,horse\n26321,frog\n26322,deer\n26323,cat\n26324,bird\n26325,bird\n26326,airplane\n26327,ship\n26328,horse\n26329,deer\n26330,cat\n26331,truck\n26332,bird\n26333,deer\n26334,truck\n26335,cat\n26336,bird\n26337,bird\n26338,automobile\n26339,dog\n26340,ship\n26341,cat\n26342,airplane\n26343,truck\n26344,ship\n26345,frog\n26346,frog\n26347,dog\n26348,ship\n26349,dog\n26350,dog\n26351,airplane\n26352,deer\n26353,airplane\n26354,frog\n26355,cat\n26356,ship\n26357,dog\n26358,dog\n26359,deer\n26360,horse\n26361,truck\n26362,automobile\n26363,dog\n26364,truck\n26365,automobile\n26366,cat\n26367,deer\n26368,frog\n26369,dog\n26370,frog\n26371,horse\n26372,horse\n26373,frog\n26374,airplane\n26375,automobile\n26376,airplane\n26377,automobile\n26378,airplane\n26379,deer\n26380,truck\n26381,deer\n26382,ship\n26383,automobile\n26384,cat\n26385,truck\n26386,truck\n26387,horse\n26388,frog\n26389,frog\n26390,dog\n26391,cat\n26392,horse\n26393,horse\n26394,ship\n26395,cat\n26396,frog\n26397,automobile\n26398,ship\n26399,ship\n26400,deer\n26401,deer\n26402,automobile\n26403,horse\n26404,cat\n26405,ship\n26406,dog\n26407,deer\n26408,horse\n26409,automobile\n26410,deer\n26411,airplane\n26412,airplane\n26413,automobile\n26414,deer\n26415,frog\n26416,frog\n26417,horse\n26418,frog\n26419,cat\n26420,deer\n26421,dog\n26422,frog\n26423,frog\n26424,airplane\n26425,truck\n26426,deer\n26427,bird\n26428,frog\n26429,dog\n26430,bird\n26431,dog\n26432,ship\n26433,frog\n26434,truck\n26435,automobile\n26436,truck\n26437,automobile\n26438,cat\n26439,deer\n26440,ship\n26441,truck\n26442,airplane\n26443,dog\n26444,cat\n26445,truck\n26446,deer\n26447,dog\n26448,ship\n26449,ship\n26450,deer\n26451,ship\n26452,deer\n26453,airplane\n26454,deer\n26455,deer\n26456,frog\n26457,cat\n26458,horse\n26459,deer\n26460,bird\n26461,cat\n26462,cat\n26463,deer\n26464,truck\n26465,frog\n26466,horse\n26467,bird\n26468,deer\n26469,ship\n26470,ship\n26471,deer\n26472,horse\n26473,bird\n26474,airplane\n26475,automobile\n26476,airplane\n26477,deer\n26478,dog\n26479,deer\n26480,deer\n26481,ship\n26482,truck\n26483,horse\n26484,automobile\n26485,bird\n26486,cat\n26487,frog\n26488,truck\n26489,horse\n26490,airplane\n26491,airplane\n26492,cat\n26493,airplane\n26494,truck\n26495,deer\n26496,horse\n26497,ship\n26498,horse\n26499,dog\n26500,truck\n26501,automobile\n26502,deer\n26503,deer\n26504,dog\n26505,horse\n26506,frog\n26507,dog\n26508,ship\n26509,dog\n26510,truck\n26511,cat\n26512,truck\n26513,horse\n26514,frog\n26515,airplane\n26516,dog\n26517,dog\n26518,cat\n26519,ship\n26520,truck\n26521,deer\n26522,airplane\n26523,deer\n26524,truck\n26525,deer\n26526,frog\n26527,frog\n26528,dog\n26529,automobile\n26530,airplane\n26531,deer\n26532,truck\n26533,horse\n26534,frog\n26535,bird\n26536,cat\n26537,automobile\n26538,frog\n26539,bird\n26540,deer\n26541,frog\n26542,frog\n26543,cat\n26544,deer\n26545,dog\n26546,truck\n26547,airplane\n26548,cat\n26549,ship\n26550,horse\n26551,deer\n26552,bird\n26553,cat\n26554,deer\n26555,bird\n26556,bird\n26557,horse\n26558,truck\n26559,horse\n26560,horse\n26561,airplane\n26562,automobile\n26563,dog\n26564,cat\n26565,airplane\n26566,horse\n26567,bird\n26568,frog\n26569,automobile\n26570,airplane\n26571,automobile\n26572,ship\n26573,automobile\n26574,horse\n26575,truck\n26576,airplane\n26577,horse\n26578,truck\n26579,dog\n26580,frog\n26581,cat\n26582,deer\n26583,bird\n26584,cat\n26585,ship\n26586,deer\n26587,deer\n26588,dog\n26589,automobile\n26590,frog\n26591,cat\n26592,bird\n26593,airplane\n26594,frog\n26595,cat\n26596,truck\n26597,airplane\n26598,dog\n26599,frog\n26600,automobile\n26601,horse\n26602,frog\n26603,ship\n26604,horse\n26605,truck\n26606,cat\n26607,truck\n26608,bird\n26609,truck\n26610,truck\n26611,horse\n26612,dog\n26613,horse\n26614,horse\n26615,deer\n26616,frog\n26617,ship\n26618,airplane\n26619,bird\n26620,deer\n26621,airplane\n26622,truck\n26623,horse\n26624,automobile\n26625,truck\n26626,cat\n26627,deer\n26628,frog\n26629,deer\n26630,frog\n26631,bird\n26632,dog\n26633,airplane\n26634,cat\n26635,horse\n26636,deer\n26637,airplane\n26638,frog\n26639,dog\n26640,ship\n26641,ship\n26642,frog\n26643,automobile\n26644,truck\n26645,dog\n26646,cat\n26647,deer\n26648,horse\n26649,horse\n26650,horse\n26651,deer\n26652,deer\n26653,dog\n26654,deer\n26655,automobile\n26656,ship\n26657,horse\n26658,frog\n26659,bird\n26660,dog\n26661,ship\n26662,deer\n26663,airplane\n26664,ship\n26665,truck\n26666,ship\n26667,airplane\n26668,bird\n26669,airplane\n26670,ship\n26671,truck\n26672,deer\n26673,bird\n26674,cat\n26675,horse\n26676,horse\n26677,frog\n26678,frog\n26679,horse\n26680,automobile\n26681,dog\n26682,deer\n26683,airplane\n26684,ship\n26685,frog\n26686,airplane\n26687,dog\n26688,dog\n26689,horse\n26690,frog\n26691,airplane\n26692,bird\n26693,deer\n26694,deer\n26695,airplane\n26696,deer\n26697,cat\n26698,frog\n26699,cat\n26700,ship\n26701,automobile\n26702,ship\n26703,dog\n26704,cat\n26705,deer\n26706,cat\n26707,frog\n26708,airplane\n26709,deer\n26710,cat\n26711,cat\n26712,truck\n26713,deer\n26714,deer\n26715,cat\n26716,frog\n26717,truck\n26718,truck\n26719,ship\n26720,deer\n26721,cat\n26722,deer\n26723,airplane\n26724,cat\n26725,horse\n26726,frog\n26727,deer\n26728,bird\n26729,frog\n26730,cat\n26731,cat\n26732,frog\n26733,deer\n26734,truck\n26735,automobile\n26736,ship\n26737,deer\n26738,deer\n26739,dog\n26740,deer\n26741,airplane\n26742,deer\n26743,bird\n26744,ship\n26745,airplane\n26746,truck\n26747,airplane\n26748,truck\n26749,dog\n26750,bird\n26751,automobile\n26752,horse\n26753,cat\n26754,airplane\n26755,automobile\n26756,cat\n26757,truck\n26758,horse\n26759,truck\n26760,bird\n26761,automobile\n26762,airplane\n26763,cat\n26764,dog\n26765,ship\n26766,horse\n26767,horse\n26768,horse\n26769,dog\n26770,cat\n26771,truck\n26772,bird\n26773,truck\n26774,dog\n26775,bird\n26776,airplane\n26777,horse\n26778,truck\n26779,dog\n26780,deer\n26781,truck\n26782,airplane\n26783,ship\n26784,truck\n26785,truck\n26786,ship\n26787,frog\n26788,airplane\n26789,truck\n26790,truck\n26791,cat\n26792,deer\n26793,automobile\n26794,dog\n26795,automobile\n26796,bird\n26797,truck\n26798,ship\n26799,deer\n26800,horse\n26801,frog\n26802,horse\n26803,cat\n26804,frog\n26805,dog\n26806,ship\n26807,dog\n26808,dog\n26809,truck\n26810,frog\n26811,deer\n26812,dog\n26813,deer\n26814,deer\n26815,bird\n26816,frog\n26817,ship\n26818,dog\n26819,frog\n26820,deer\n26821,deer\n26822,dog\n26823,horse\n26824,horse\n26825,horse\n26826,dog\n26827,ship\n26828,automobile\n26829,deer\n26830,horse\n26831,deer\n26832,dog\n26833,truck\n26834,cat\n26835,airplane\n26836,frog\n26837,deer\n26838,cat\n26839,frog\n26840,horse\n26841,horse\n26842,ship\n26843,frog\n26844,bird\n26845,deer\n26846,dog\n26847,deer\n26848,cat\n26849,frog\n26850,dog\n26851,deer\n26852,automobile\n26853,frog\n26854,bird\n26855,truck\n26856,truck\n26857,frog\n26858,airplane\n26859,cat\n26860,horse\n26861,frog\n26862,ship\n26863,truck\n26864,horse\n26865,ship\n26866,dog\n26867,truck\n26868,truck\n26869,automobile\n26870,airplane\n26871,deer\n26872,cat\n26873,airplane\n26874,frog\n26875,cat\n26876,truck\n26877,airplane\n26878,dog\n26879,horse\n26880,cat\n26881,deer\n26882,bird\n26883,deer\n26884,automobile\n26885,bird\n26886,frog\n26887,deer\n26888,bird\n26889,bird\n26890,cat\n26891,bird\n26892,ship\n26893,horse\n26894,deer\n26895,deer\n26896,horse\n26897,airplane\n26898,truck\n26899,airplane\n26900,automobile\n26901,ship\n26902,ship\n26903,truck\n26904,horse\n26905,automobile\n26906,airplane\n26907,cat\n26908,frog\n26909,frog\n26910,frog\n26911,horse\n26912,truck\n26913,truck\n26914,cat\n26915,truck\n26916,deer\n26917,ship\n26918,horse\n26919,truck\n26920,dog\n26921,ship\n26922,horse\n26923,automobile\n26924,truck\n26925,cat\n26926,cat\n26927,cat\n26928,ship\n26929,cat\n26930,bird\n26931,airplane\n26932,bird\n26933,airplane\n26934,ship\n26935,bird\n26936,airplane\n26937,truck\n26938,automobile\n26939,bird\n26940,bird\n26941,cat\n26942,horse\n26943,deer\n26944,ship\n26945,frog\n26946,dog\n26947,ship\n26948,deer\n26949,airplane\n26950,deer\n26951,bird\n26952,bird\n26953,horse\n26954,cat\n26955,deer\n26956,ship\n26957,horse\n26958,deer\n26959,deer\n26960,airplane\n26961,ship\n26962,bird\n26963,frog\n26964,dog\n26965,bird\n26966,bird\n26967,ship\n26968,cat\n26969,cat\n26970,frog\n26971,deer\n26972,ship\n26973,frog\n26974,truck\n26975,dog\n26976,dog\n26977,truck\n26978,bird\n26979,dog\n26980,horse\n26981,cat\n26982,deer\n26983,automobile\n26984,horse\n26985,deer\n26986,cat\n26987,truck\n26988,cat\n26989,airplane\n26990,cat\n26991,airplane\n26992,ship\n26993,ship\n26994,truck\n26995,dog\n26996,dog\n26997,truck\n26998,deer\n26999,airplane\n27000,airplane\n27001,frog\n27002,dog\n27003,frog\n27004,cat\n27005,ship\n27006,horse\n27007,deer\n27008,cat\n27009,truck\n27010,automobile\n27011,ship\n27012,deer\n27013,frog\n27014,bird\n27015,deer\n27016,cat\n27017,cat\n27018,automobile\n27019,frog\n27020,horse\n27021,deer\n27022,automobile\n27023,cat\n27024,truck\n27025,truck\n27026,deer\n27027,frog\n27028,dog\n27029,dog\n27030,truck\n27031,ship\n27032,bird\n27033,bird\n27034,frog\n27035,airplane\n27036,dog\n27037,automobile\n27038,deer\n27039,frog\n27040,automobile\n27041,deer\n27042,bird\n27043,dog\n27044,automobile\n27045,deer\n27046,airplane\n27047,airplane\n27048,dog\n27049,deer\n27050,cat\n27051,horse\n27052,cat\n27053,cat\n27054,dog\n27055,cat\n27056,airplane\n27057,frog\n27058,horse\n27059,horse\n27060,deer\n27061,truck\n27062,horse\n27063,frog\n27064,horse\n27065,dog\n27066,airplane\n27067,frog\n27068,frog\n27069,automobile\n27070,airplane\n27071,frog\n27072,ship\n27073,ship\n27074,airplane\n27075,frog\n27076,deer\n27077,horse\n27078,truck\n27079,horse\n27080,deer\n27081,dog\n27082,horse\n27083,dog\n27084,horse\n27085,bird\n27086,automobile\n27087,automobile\n27088,cat\n27089,automobile\n27090,frog\n27091,dog\n27092,truck\n27093,horse\n27094,truck\n27095,frog\n27096,dog\n27097,cat\n27098,truck\n27099,airplane\n27100,ship\n27101,airplane\n27102,automobile\n27103,truck\n27104,bird\n27105,automobile\n27106,ship\n27107,truck\n27108,truck\n27109,ship\n27110,airplane\n27111,deer\n27112,automobile\n27113,dog\n27114,truck\n27115,dog\n27116,truck\n27117,airplane\n27118,deer\n27119,horse\n27120,deer\n27121,airplane\n27122,dog\n27123,truck\n27124,horse\n27125,deer\n27126,frog\n27127,dog\n27128,frog\n27129,airplane\n27130,truck\n27131,deer\n27132,horse\n27133,truck\n27134,frog\n27135,horse\n27136,horse\n27137,cat\n27138,dog\n27139,truck\n27140,deer\n27141,deer\n27142,truck\n27143,automobile\n27144,dog\n27145,airplane\n27146,truck\n27147,dog\n27148,airplane\n27149,cat\n27150,deer\n27151,deer\n27152,cat\n27153,bird\n27154,deer\n27155,bird\n27156,automobile\n27157,ship\n27158,ship\n27159,frog\n27160,truck\n27161,deer\n27162,truck\n27163,ship\n27164,cat\n27165,airplane\n27166,deer\n27167,ship\n27168,deer\n27169,truck\n27170,dog\n27171,frog\n27172,airplane\n27173,bird\n27174,cat\n27175,truck\n27176,horse\n27177,horse\n27178,cat\n27179,dog\n27180,ship\n27181,cat\n27182,horse\n27183,bird\n27184,deer\n27185,truck\n27186,cat\n27187,frog\n27188,ship\n27189,truck\n27190,airplane\n27191,bird\n27192,dog\n27193,cat\n27194,bird\n27195,ship\n27196,ship\n27197,truck\n27198,dog\n27199,cat\n27200,frog\n27201,airplane\n27202,frog\n27203,ship\n27204,cat\n27205,frog\n27206,frog\n27207,truck\n27208,bird\n27209,automobile\n27210,ship\n27211,truck\n27212,automobile\n27213,cat\n27214,automobile\n27215,truck\n27216,deer\n27217,horse\n27218,dog\n27219,deer\n27220,dog\n27221,cat\n27222,truck\n27223,dog\n27224,dog\n27225,deer\n27226,horse\n27227,cat\n27228,horse\n27229,frog\n27230,truck\n27231,cat\n27232,automobile\n27233,airplane\n27234,truck\n27235,airplane\n27236,automobile\n27237,truck\n27238,deer\n27239,ship\n27240,frog\n27241,dog\n27242,truck\n27243,airplane\n27244,cat\n27245,cat\n27246,dog\n27247,deer\n27248,automobile\n27249,horse\n27250,dog\n27251,dog\n27252,truck\n27253,bird\n27254,ship\n27255,automobile\n27256,bird\n27257,deer\n27258,airplane\n27259,truck\n27260,airplane\n27261,dog\n27262,truck\n27263,horse\n27264,dog\n27265,cat\n27266,automobile\n27267,deer\n27268,frog\n27269,cat\n27270,deer\n27271,truck\n27272,truck\n27273,dog\n27274,cat\n27275,truck\n27276,airplane\n27277,dog\n27278,truck\n27279,ship\n27280,ship\n27281,truck\n27282,cat\n27283,dog\n27284,horse\n27285,cat\n27286,ship\n27287,automobile\n27288,truck\n27289,airplane\n27290,cat\n27291,horse\n27292,horse\n27293,airplane\n27294,ship\n27295,automobile\n27296,truck\n27297,horse\n27298,bird\n27299,truck\n27300,frog\n27301,truck\n27302,cat\n27303,truck\n27304,ship\n27305,cat\n27306,horse\n27307,airplane\n27308,deer\n27309,frog\n27310,ship\n27311,frog\n27312,horse\n27313,truck\n27314,horse\n27315,dog\n27316,frog\n27317,truck\n27318,truck\n27319,dog\n27320,horse\n27321,frog\n27322,frog\n27323,cat\n27324,truck\n27325,frog\n27326,dog\n27327,cat\n27328,truck\n27329,deer\n27330,automobile\n27331,frog\n27332,truck\n27333,deer\n27334,frog\n27335,dog\n27336,frog\n27337,cat\n27338,deer\n27339,deer\n27340,automobile\n27341,deer\n27342,horse\n27343,cat\n27344,bird\n27345,cat\n27346,airplane\n27347,horse\n27348,bird\n27349,deer\n27350,dog\n27351,deer\n27352,dog\n27353,frog\n27354,bird\n27355,automobile\n27356,automobile\n27357,frog\n27358,dog\n27359,cat\n27360,truck\n27361,deer\n27362,truck\n27363,ship\n27364,deer\n27365,dog\n27366,frog\n27367,horse\n27368,dog\n27369,truck\n27370,frog\n27371,bird\n27372,dog\n27373,truck\n27374,horse\n27375,horse\n27376,cat\n27377,cat\n27378,truck\n27379,truck\n27380,bird\n27381,deer\n27382,bird\n27383,deer\n27384,frog\n27385,horse\n27386,cat\n27387,truck\n27388,truck\n27389,deer\n27390,cat\n27391,dog\n27392,ship\n27393,horse\n27394,airplane\n27395,ship\n27396,dog\n27397,airplane\n27398,deer\n27399,dog\n27400,frog\n27401,bird\n27402,bird\n27403,bird\n27404,automobile\n27405,frog\n27406,dog\n27407,automobile\n27408,deer\n27409,horse\n27410,frog\n27411,bird\n27412,ship\n27413,cat\n27414,horse\n27415,ship\n27416,deer\n27417,ship\n27418,cat\n27419,deer\n27420,automobile\n27421,horse\n27422,frog\n27423,frog\n27424,ship\n27425,cat\n27426,bird\n27427,cat\n27428,dog\n27429,bird\n27430,airplane\n27431,cat\n27432,bird\n27433,dog\n27434,bird\n27435,deer\n27436,frog\n27437,airplane\n27438,cat\n27439,airplane\n27440,ship\n27441,cat\n27442,deer\n27443,airplane\n27444,cat\n27445,dog\n27446,airplane\n27447,truck\n27448,deer\n27449,automobile\n27450,frog\n27451,airplane\n27452,horse\n27453,bird\n27454,dog\n27455,frog\n27456,airplane\n27457,truck\n27458,frog\n27459,bird\n27460,horse\n27461,frog\n27462,cat\n27463,deer\n27464,cat\n27465,dog\n27466,horse\n27467,truck\n27468,ship\n27469,frog\n27470,dog\n27471,bird\n27472,automobile\n27473,dog\n27474,ship\n27475,dog\n27476,dog\n27477,automobile\n27478,dog\n27479,cat\n27480,truck\n27481,frog\n27482,cat\n27483,deer\n27484,ship\n27485,bird\n27486,frog\n27487,frog\n27488,ship\n27489,ship\n27490,horse\n27491,cat\n27492,horse\n27493,cat\n27494,dog\n27495,automobile\n27496,truck\n27497,ship\n27498,truck\n27499,truck\n27500,truck\n27501,bird\n27502,frog\n27503,airplane\n27504,ship\n27505,ship\n27506,deer\n27507,truck\n27508,bird\n27509,bird\n27510,deer\n27511,bird\n27512,airplane\n27513,automobile\n27514,truck\n27515,deer\n27516,cat\n27517,frog\n27518,frog\n27519,bird\n27520,bird\n27521,ship\n27522,airplane\n27523,frog\n27524,deer\n27525,airplane\n27526,airplane\n27527,cat\n27528,horse\n27529,bird\n27530,truck\n27531,cat\n27532,airplane\n27533,frog\n27534,truck\n27535,dog\n27536,deer\n27537,dog\n27538,bird\n27539,cat\n27540,deer\n27541,deer\n27542,deer\n27543,automobile\n27544,deer\n27545,deer\n27546,frog\n27547,bird\n27548,horse\n27549,bird\n27550,truck\n27551,truck\n27552,horse\n27553,bird\n27554,bird\n27555,deer\n27556,horse\n27557,deer\n27558,dog\n27559,truck\n27560,automobile\n27561,deer\n27562,horse\n27563,automobile\n27564,deer\n27565,ship\n27566,deer\n27567,cat\n27568,deer\n27569,cat\n27570,horse\n27571,frog\n27572,cat\n27573,deer\n27574,dog\n27575,deer\n27576,cat\n27577,dog\n27578,ship\n27579,bird\n27580,bird\n27581,truck\n27582,deer\n27583,cat\n27584,bird\n27585,dog\n27586,bird\n27587,bird\n27588,cat\n27589,truck\n27590,frog\n27591,dog\n27592,airplane\n27593,cat\n27594,frog\n27595,frog\n27596,ship\n27597,airplane\n27598,frog\n27599,deer\n27600,ship\n27601,frog\n27602,horse\n27603,deer\n27604,horse\n27605,automobile\n27606,cat\n27607,cat\n27608,frog\n27609,dog\n27610,truck\n27611,bird\n27612,automobile\n27613,truck\n27614,cat\n27615,deer\n27616,frog\n27617,deer\n27618,cat\n27619,airplane\n27620,automobile\n27621,bird\n27622,bird\n27623,bird\n27624,dog\n27625,truck\n27626,cat\n27627,deer\n27628,frog\n27629,bird\n27630,dog\n27631,horse\n27632,dog\n27633,dog\n27634,ship\n27635,cat\n27636,cat\n27637,truck\n27638,cat\n27639,cat\n27640,airplane\n27641,deer\n27642,ship\n27643,horse\n27644,dog\n27645,frog\n27646,bird\n27647,cat\n27648,frog\n27649,bird\n27650,deer\n27651,deer\n27652,deer\n27653,cat\n27654,bird\n27655,cat\n27656,automobile\n27657,horse\n27658,horse\n27659,frog\n27660,deer\n27661,ship\n27662,ship\n27663,deer\n27664,cat\n27665,bird\n27666,automobile\n27667,deer\n27668,ship\n27669,dog\n27670,deer\n27671,deer\n27672,horse\n27673,frog\n27674,cat\n27675,airplane\n27676,deer\n27677,ship\n27678,cat\n27679,horse\n27680,frog\n27681,bird\n27682,truck\n27683,cat\n27684,truck\n27685,truck\n27686,horse\n27687,frog\n27688,dog\n27689,cat\n27690,bird\n27691,frog\n27692,bird\n27693,dog\n27694,dog\n27695,frog\n27696,truck\n27697,deer\n27698,dog\n27699,bird\n27700,airplane\n27701,automobile\n27702,deer\n27703,deer\n27704,truck\n27705,cat\n27706,airplane\n27707,frog\n27708,frog\n27709,cat\n27710,dog\n27711,airplane\n27712,cat\n27713,dog\n27714,cat\n27715,automobile\n27716,deer\n27717,horse\n27718,dog\n27719,automobile\n27720,deer\n27721,bird\n27722,deer\n27723,horse\n27724,cat\n27725,automobile\n27726,cat\n27727,deer\n27728,deer\n27729,airplane\n27730,dog\n27731,dog\n27732,frog\n27733,truck\n27734,frog\n27735,dog\n27736,frog\n27737,frog\n27738,deer\n27739,horse\n27740,bird\n27741,bird\n27742,deer\n27743,dog\n27744,dog\n27745,automobile\n27746,dog\n27747,frog\n27748,dog\n27749,deer\n27750,frog\n27751,automobile\n27752,airplane\n27753,truck\n27754,frog\n27755,dog\n27756,dog\n27757,cat\n27758,truck\n27759,dog\n27760,horse\n27761,ship\n27762,bird\n27763,airplane\n27764,deer\n27765,deer\n27766,airplane\n27767,dog\n27768,ship\n27769,cat\n27770,frog\n27771,truck\n27772,cat\n27773,frog\n27774,airplane\n27775,ship\n27776,automobile\n27777,horse\n27778,dog\n27779,airplane\n27780,deer\n27781,cat\n27782,deer\n27783,frog\n27784,dog\n27785,truck\n27786,frog\n27787,airplane\n27788,frog\n27789,ship\n27790,airplane\n27791,automobile\n27792,deer\n27793,automobile\n27794,cat\n27795,horse\n27796,bird\n27797,deer\n27798,horse\n27799,cat\n27800,deer\n27801,frog\n27802,dog\n27803,frog\n27804,bird\n27805,frog\n27806,horse\n27807,truck\n27808,deer\n27809,frog\n27810,deer\n27811,frog\n27812,horse\n27813,frog\n27814,cat\n27815,ship\n27816,horse\n27817,dog\n27818,ship\n27819,truck\n27820,frog\n27821,dog\n27822,cat\n27823,horse\n27824,automobile\n27825,deer\n27826,frog\n27827,frog\n27828,deer\n27829,frog\n27830,truck\n27831,airplane\n27832,deer\n27833,dog\n27834,airplane\n27835,deer\n27836,automobile\n27837,airplane\n27838,cat\n27839,deer\n27840,deer\n27841,cat\n27842,cat\n27843,automobile\n27844,horse\n27845,truck\n27846,dog\n27847,bird\n27848,deer\n27849,cat\n27850,deer\n27851,dog\n27852,bird\n27853,automobile\n27854,ship\n27855,dog\n27856,airplane\n27857,dog\n27858,frog\n27859,truck\n27860,airplane\n27861,ship\n27862,airplane\n27863,deer\n27864,frog\n27865,frog\n27866,airplane\n27867,dog\n27868,horse\n27869,truck\n27870,bird\n27871,ship\n27872,ship\n27873,bird\n27874,ship\n27875,dog\n27876,bird\n27877,airplane\n27878,truck\n27879,deer\n27880,cat\n27881,cat\n27882,deer\n27883,airplane\n27884,cat\n27885,truck\n27886,horse\n27887,deer\n27888,automobile\n27889,airplane\n27890,frog\n27891,bird\n27892,ship\n27893,dog\n27894,automobile\n27895,frog\n27896,cat\n27897,cat\n27898,cat\n27899,deer\n27900,horse\n27901,truck\n27902,horse\n27903,cat\n27904,dog\n27905,airplane\n27906,dog\n27907,horse\n27908,dog\n27909,frog\n27910,cat\n27911,airplane\n27912,truck\n27913,frog\n27914,dog\n27915,airplane\n27916,truck\n27917,cat\n27918,cat\n27919,bird\n27920,airplane\n27921,deer\n27922,deer\n27923,horse\n27924,truck\n27925,deer\n27926,deer\n27927,horse\n27928,deer\n27929,ship\n27930,bird\n27931,horse\n27932,automobile\n27933,cat\n27934,truck\n27935,truck\n27936,ship\n27937,deer\n27938,horse\n27939,automobile\n27940,automobile\n27941,automobile\n27942,horse\n27943,deer\n27944,deer\n27945,deer\n27946,truck\n27947,deer\n27948,horse\n27949,truck\n27950,ship\n27951,dog\n27952,deer\n27953,truck\n27954,truck\n27955,deer\n27956,airplane\n27957,cat\n27958,automobile\n27959,truck\n27960,deer\n27961,frog\n27962,truck\n27963,horse\n27964,automobile\n27965,deer\n27966,truck\n27967,bird\n27968,automobile\n27969,deer\n27970,airplane\n27971,airplane\n27972,cat\n27973,frog\n27974,horse\n27975,bird\n27976,cat\n27977,ship\n27978,bird\n27979,ship\n27980,dog\n27981,truck\n27982,dog\n27983,bird\n27984,cat\n27985,horse\n27986,ship\n27987,automobile\n27988,deer\n27989,bird\n27990,horse\n27991,dog\n27992,deer\n27993,frog\n27994,dog\n27995,bird\n27996,dog\n27997,deer\n27998,deer\n27999,frog\n28000,dog\n28001,automobile\n28002,truck\n28003,airplane\n28004,truck\n28005,dog\n28006,airplane\n28007,cat\n28008,deer\n28009,cat\n28010,cat\n28011,ship\n28012,airplane\n28013,cat\n28014,cat\n28015,bird\n28016,frog\n28017,cat\n28018,dog\n28019,deer\n28020,automobile\n28021,frog\n28022,automobile\n28023,truck\n28024,deer\n28025,dog\n28026,frog\n28027,airplane\n28028,deer\n28029,airplane\n28030,dog\n28031,ship\n28032,deer\n28033,cat\n28034,truck\n28035,dog\n28036,truck\n28037,horse\n28038,cat\n28039,dog\n28040,truck\n28041,cat\n28042,cat\n28043,frog\n28044,truck\n28045,airplane\n28046,horse\n28047,ship\n28048,deer\n28049,airplane\n28050,horse\n28051,deer\n28052,cat\n28053,horse\n28054,bird\n28055,horse\n28056,ship\n28057,cat\n28058,frog\n28059,cat\n28060,frog\n28061,dog\n28062,ship\n28063,truck\n28064,cat\n28065,ship\n28066,truck\n28067,frog\n28068,airplane\n28069,horse\n28070,automobile\n28071,horse\n28072,airplane\n28073,cat\n28074,cat\n28075,dog\n28076,deer\n28077,deer\n28078,cat\n28079,ship\n28080,cat\n28081,deer\n28082,airplane\n28083,airplane\n28084,truck\n28085,truck\n28086,deer\n28087,bird\n28088,truck\n28089,cat\n28090,airplane\n28091,horse\n28092,cat\n28093,bird\n28094,horse\n28095,deer\n28096,frog\n28097,frog\n28098,deer\n28099,truck\n28100,dog\n28101,horse\n28102,automobile\n28103,cat\n28104,dog\n28105,airplane\n28106,horse\n28107,ship\n28108,frog\n28109,deer\n28110,deer\n28111,horse\n28112,airplane\n28113,bird\n28114,ship\n28115,cat\n28116,dog\n28117,ship\n28118,bird\n28119,horse\n28120,cat\n28121,cat\n28122,airplane\n28123,ship\n28124,dog\n28125,deer\n28126,dog\n28127,cat\n28128,horse\n28129,truck\n28130,cat\n28131,deer\n28132,cat\n28133,cat\n28134,truck\n28135,frog\n28136,frog\n28137,ship\n28138,horse\n28139,frog\n28140,horse\n28141,airplane\n28142,bird\n28143,deer\n28144,ship\n28145,frog\n28146,dog\n28147,deer\n28148,airplane\n28149,truck\n28150,dog\n28151,bird\n28152,cat\n28153,frog\n28154,frog\n28155,truck\n28156,cat\n28157,deer\n28158,deer\n28159,airplane\n28160,horse\n28161,cat\n28162,cat\n28163,airplane\n28164,automobile\n28165,bird\n28166,dog\n28167,bird\n28168,dog\n28169,cat\n28170,frog\n28171,truck\n28172,ship\n28173,deer\n28174,bird\n28175,automobile\n28176,airplane\n28177,dog\n28178,dog\n28179,horse\n28180,deer\n28181,automobile\n28182,cat\n28183,airplane\n28184,bird\n28185,truck\n28186,airplane\n28187,airplane\n28188,truck\n28189,truck\n28190,bird\n28191,airplane\n28192,airplane\n28193,ship\n28194,truck\n28195,truck\n28196,truck\n28197,deer\n28198,bird\n28199,truck\n28200,horse\n28201,dog\n28202,frog\n28203,bird\n28204,horse\n28205,frog\n28206,truck\n28207,truck\n28208,deer\n28209,truck\n28210,truck\n28211,cat\n28212,cat\n28213,deer\n28214,frog\n28215,truck\n28216,bird\n28217,deer\n28218,truck\n28219,cat\n28220,truck\n28221,cat\n28222,truck\n28223,horse\n28224,horse\n28225,cat\n28226,truck\n28227,frog\n28228,horse\n28229,truck\n28230,deer\n28231,deer\n28232,dog\n28233,truck\n28234,ship\n28235,cat\n28236,bird\n28237,automobile\n28238,deer\n28239,frog\n28240,airplane\n28241,automobile\n28242,deer\n28243,dog\n28244,cat\n28245,ship\n28246,cat\n28247,truck\n28248,frog\n28249,deer\n28250,automobile\n28251,cat\n28252,automobile\n28253,cat\n28254,automobile\n28255,deer\n28256,deer\n28257,truck\n28258,truck\n28259,cat\n28260,dog\n28261,dog\n28262,horse\n28263,airplane\n28264,airplane\n28265,dog\n28266,truck\n28267,frog\n28268,dog\n28269,ship\n28270,automobile\n28271,airplane\n28272,deer\n28273,frog\n28274,frog\n28275,ship\n28276,truck\n28277,deer\n28278,airplane\n28279,cat\n28280,truck\n28281,deer\n28282,bird\n28283,airplane\n28284,truck\n28285,truck\n28286,frog\n28287,automobile\n28288,ship\n28289,automobile\n28290,deer\n28291,dog\n28292,dog\n28293,deer\n28294,frog\n28295,frog\n28296,airplane\n28297,truck\n28298,truck\n28299,automobile\n28300,bird\n28301,cat\n28302,airplane\n28303,ship\n28304,frog\n28305,deer\n28306,ship\n28307,deer\n28308,ship\n28309,cat\n28310,dog\n28311,airplane\n28312,cat\n28313,airplane\n28314,bird\n28315,airplane\n28316,cat\n28317,horse\n28318,horse\n28319,dog\n28320,cat\n28321,horse\n28322,frog\n28323,cat\n28324,cat\n28325,bird\n28326,deer\n28327,truck\n28328,bird\n28329,bird\n28330,dog\n28331,dog\n28332,automobile\n28333,deer\n28334,automobile\n28335,airplane\n28336,frog\n28337,cat\n28338,frog\n28339,truck\n28340,horse\n28341,dog\n28342,ship\n28343,frog\n28344,deer\n28345,deer\n28346,horse\n28347,dog\n28348,cat\n28349,airplane\n28350,airplane\n28351,airplane\n28352,frog\n28353,frog\n28354,truck\n28355,automobile\n28356,frog\n28357,deer\n28358,truck\n28359,truck\n28360,horse\n28361,deer\n28362,airplane\n28363,deer\n28364,bird\n28365,truck\n28366,truck\n28367,deer\n28368,deer\n28369,frog\n28370,deer\n28371,frog\n28372,airplane\n28373,bird\n28374,cat\n28375,automobile\n28376,truck\n28377,frog\n28378,truck\n28379,airplane\n28380,bird\n28381,frog\n28382,horse\n28383,automobile\n28384,truck\n28385,cat\n28386,truck\n28387,dog\n28388,horse\n28389,horse\n28390,ship\n28391,cat\n28392,dog\n28393,deer\n28394,airplane\n28395,automobile\n28396,bird\n28397,airplane\n28398,horse\n28399,dog\n28400,dog\n28401,horse\n28402,horse\n28403,truck\n28404,truck\n28405,airplane\n28406,frog\n28407,cat\n28408,cat\n28409,frog\n28410,dog\n28411,truck\n28412,dog\n28413,frog\n28414,deer\n28415,truck\n28416,dog\n28417,ship\n28418,ship\n28419,ship\n28420,ship\n28421,airplane\n28422,dog\n28423,deer\n28424,deer\n28425,deer\n28426,dog\n28427,frog\n28428,automobile\n28429,deer\n28430,deer\n28431,dog\n28432,bird\n28433,cat\n28434,bird\n28435,ship\n28436,automobile\n28437,automobile\n28438,deer\n28439,horse\n28440,dog\n28441,horse\n28442,bird\n28443,horse\n28444,cat\n28445,horse\n28446,frog\n28447,cat\n28448,bird\n28449,horse\n28450,truck\n28451,cat\n28452,ship\n28453,deer\n28454,dog\n28455,dog\n28456,airplane\n28457,deer\n28458,deer\n28459,horse\n28460,ship\n28461,bird\n28462,horse\n28463,dog\n28464,ship\n28465,airplane\n28466,frog\n28467,frog\n28468,airplane\n28469,deer\n28470,airplane\n28471,horse\n28472,automobile\n28473,cat\n28474,airplane\n28475,cat\n28476,frog\n28477,bird\n28478,dog\n28479,deer\n28480,bird\n28481,frog\n28482,deer\n28483,frog\n28484,truck\n28485,frog\n28486,horse\n28487,dog\n28488,airplane\n28489,airplane\n28490,frog\n28491,dog\n28492,automobile\n28493,ship\n28494,airplane\n28495,cat\n28496,frog\n28497,cat\n28498,deer\n28499,automobile\n28500,deer\n28501,horse\n28502,ship\n28503,cat\n28504,truck\n28505,deer\n28506,cat\n28507,deer\n28508,deer\n28509,frog\n28510,deer\n28511,airplane\n28512,dog\n28513,cat\n28514,deer\n28515,airplane\n28516,dog\n28517,cat\n28518,dog\n28519,automobile\n28520,deer\n28521,dog\n28522,automobile\n28523,dog\n28524,airplane\n28525,horse\n28526,deer\n28527,cat\n28528,automobile\n28529,dog\n28530,bird\n28531,deer\n28532,truck\n28533,automobile\n28534,truck\n28535,automobile\n28536,bird\n28537,frog\n28538,deer\n28539,deer\n28540,frog\n28541,cat\n28542,bird\n28543,frog\n28544,airplane\n28545,dog\n28546,deer\n28547,frog\n28548,cat\n28549,automobile\n28550,cat\n28551,truck\n28552,horse\n28553,dog\n28554,ship\n28555,bird\n28556,deer\n28557,airplane\n28558,cat\n28559,truck\n28560,frog\n28561,horse\n28562,dog\n28563,dog\n28564,frog\n28565,ship\n28566,cat\n28567,cat\n28568,truck\n28569,cat\n28570,automobile\n28571,cat\n28572,dog\n28573,frog\n28574,truck\n28575,automobile\n28576,bird\n28577,ship\n28578,dog\n28579,airplane\n28580,truck\n28581,airplane\n28582,airplane\n28583,automobile\n28584,truck\n28585,horse\n28586,bird\n28587,horse\n28588,horse\n28589,airplane\n28590,cat\n28591,dog\n28592,frog\n28593,deer\n28594,bird\n28595,bird\n28596,dog\n28597,ship\n28598,bird\n28599,cat\n28600,frog\n28601,dog\n28602,horse\n28603,dog\n28604,deer\n28605,deer\n28606,truck\n28607,horse\n28608,dog\n28609,bird\n28610,frog\n28611,dog\n28612,automobile\n28613,frog\n28614,deer\n28615,dog\n28616,ship\n28617,dog\n28618,dog\n28619,cat\n28620,cat\n28621,automobile\n28622,truck\n28623,automobile\n28624,frog\n28625,bird\n28626,cat\n28627,airplane\n28628,deer\n28629,dog\n28630,deer\n28631,deer\n28632,ship\n28633,bird\n28634,frog\n28635,airplane\n28636,truck\n28637,horse\n28638,deer\n28639,cat\n28640,frog\n28641,dog\n28642,ship\n28643,truck\n28644,truck\n28645,cat\n28646,frog\n28647,ship\n28648,dog\n28649,airplane\n28650,cat\n28651,truck\n28652,frog\n28653,airplane\n28654,bird\n28655,automobile\n28656,automobile\n28657,deer\n28658,deer\n28659,automobile\n28660,ship\n28661,dog\n28662,automobile\n28663,truck\n28664,deer\n28665,dog\n28666,frog\n28667,bird\n28668,automobile\n28669,automobile\n28670,truck\n28671,cat\n28672,horse\n28673,cat\n28674,frog\n28675,automobile\n28676,horse\n28677,deer\n28678,horse\n28679,truck\n28680,ship\n28681,cat\n28682,dog\n28683,bird\n28684,horse\n28685,airplane\n28686,deer\n28687,truck\n28688,airplane\n28689,truck\n28690,horse\n28691,truck\n28692,truck\n28693,truck\n28694,deer\n28695,bird\n28696,bird\n28697,truck\n28698,dog\n28699,dog\n28700,automobile\n28701,dog\n28702,truck\n28703,frog\n28704,frog\n28705,horse\n28706,frog\n28707,horse\n28708,horse\n28709,cat\n28710,cat\n28711,ship\n28712,bird\n28713,bird\n28714,frog\n28715,bird\n28716,deer\n28717,frog\n28718,ship\n28719,frog\n28720,deer\n28721,airplane\n28722,ship\n28723,cat\n28724,dog\n28725,horse\n28726,cat\n28727,frog\n28728,deer\n28729,truck\n28730,automobile\n28731,horse\n28732,ship\n28733,horse\n28734,cat\n28735,ship\n28736,dog\n28737,cat\n28738,automobile\n28739,frog\n28740,bird\n28741,dog\n28742,cat\n28743,deer\n28744,airplane\n28745,horse\n28746,truck\n28747,frog\n28748,dog\n28749,dog\n28750,cat\n28751,frog\n28752,truck\n28753,cat\n28754,horse\n28755,bird\n28756,ship\n28757,ship\n28758,truck\n28759,dog\n28760,horse\n28761,bird\n28762,bird\n28763,airplane\n28764,frog\n28765,cat\n28766,frog\n28767,horse\n28768,ship\n28769,ship\n28770,ship\n28771,horse\n28772,truck\n28773,deer\n28774,cat\n28775,bird\n28776,frog\n28777,bird\n28778,horse\n28779,deer\n28780,ship\n28781,cat\n28782,automobile\n28783,dog\n28784,truck\n28785,deer\n28786,frog\n28787,dog\n28788,airplane\n28789,bird\n28790,frog\n28791,frog\n28792,cat\n28793,cat\n28794,frog\n28795,dog\n28796,truck\n28797,truck\n28798,bird\n28799,horse\n28800,horse\n28801,frog\n28802,automobile\n28803,frog\n28804,cat\n28805,automobile\n28806,frog\n28807,frog\n28808,deer\n28809,deer\n28810,horse\n28811,horse\n28812,airplane\n28813,bird\n28814,dog\n28815,cat\n28816,bird\n28817,ship\n28818,ship\n28819,horse\n28820,horse\n28821,bird\n28822,truck\n28823,cat\n28824,frog\n28825,automobile\n28826,airplane\n28827,automobile\n28828,frog\n28829,bird\n28830,automobile\n28831,cat\n28832,deer\n28833,airplane\n28834,ship\n28835,airplane\n28836,airplane\n28837,dog\n28838,deer\n28839,dog\n28840,ship\n28841,deer\n28842,cat\n28843,cat\n28844,automobile\n28845,truck\n28846,frog\n28847,cat\n28848,cat\n28849,automobile\n28850,bird\n28851,bird\n28852,deer\n28853,deer\n28854,deer\n28855,deer\n28856,truck\n28857,cat\n28858,frog\n28859,bird\n28860,deer\n28861,horse\n28862,frog\n28863,dog\n28864,bird\n28865,frog\n28866,frog\n28867,truck\n28868,truck\n28869,horse\n28870,deer\n28871,cat\n28872,frog\n28873,bird\n28874,frog\n28875,ship\n28876,horse\n28877,dog\n28878,frog\n28879,cat\n28880,frog\n28881,automobile\n28882,bird\n28883,ship\n28884,truck\n28885,airplane\n28886,cat\n28887,frog\n28888,frog\n28889,airplane\n28890,automobile\n28891,ship\n28892,truck\n28893,horse\n28894,airplane\n28895,dog\n28896,truck\n28897,ship\n28898,truck\n28899,cat\n28900,cat\n28901,automobile\n28902,truck\n28903,truck\n28904,truck\n28905,truck\n28906,cat\n28907,deer\n28908,dog\n28909,airplane\n28910,truck\n28911,cat\n28912,cat\n28913,frog\n28914,cat\n28915,cat\n28916,truck\n28917,truck\n28918,dog\n28919,deer\n28920,horse\n28921,automobile\n28922,truck\n28923,cat\n28924,airplane\n28925,cat\n28926,automobile\n28927,horse\n28928,frog\n28929,cat\n28930,airplane\n28931,deer\n28932,frog\n28933,airplane\n28934,airplane\n28935,cat\n28936,ship\n28937,truck\n28938,frog\n28939,bird\n28940,deer\n28941,cat\n28942,automobile\n28943,cat\n28944,truck\n28945,horse\n28946,deer\n28947,horse\n28948,bird\n28949,cat\n28950,truck\n28951,truck\n28952,frog\n28953,ship\n28954,dog\n28955,frog\n28956,truck\n28957,ship\n28958,ship\n28959,frog\n28960,deer\n28961,deer\n28962,frog\n28963,deer\n28964,cat\n28965,deer\n28966,frog\n28967,truck\n28968,airplane\n28969,dog\n28970,deer\n28971,ship\n28972,horse\n28973,deer\n28974,truck\n28975,horse\n28976,ship\n28977,airplane\n28978,cat\n28979,dog\n28980,airplane\n28981,airplane\n28982,frog\n28983,dog\n28984,ship\n28985,frog\n28986,dog\n28987,horse\n28988,ship\n28989,deer\n28990,deer\n28991,dog\n28992,deer\n28993,ship\n28994,bird\n28995,deer\n28996,ship\n28997,horse\n28998,deer\n28999,deer\n29000,truck\n29001,frog\n29002,dog\n29003,deer\n29004,cat\n29005,deer\n29006,deer\n29007,ship\n29008,horse\n29009,frog\n29010,horse\n29011,dog\n29012,truck\n29013,horse\n29014,dog\n29015,ship\n29016,frog\n29017,horse\n29018,cat\n29019,truck\n29020,frog\n29021,bird\n29022,horse\n29023,truck\n29024,dog\n29025,deer\n29026,bird\n29027,automobile\n29028,ship\n29029,horse\n29030,horse\n29031,dog\n29032,deer\n29033,cat\n29034,frog\n29035,horse\n29036,airplane\n29037,cat\n29038,cat\n29039,bird\n29040,frog\n29041,cat\n29042,truck\n29043,dog\n29044,bird\n29045,cat\n29046,cat\n29047,automobile\n29048,deer\n29049,truck\n29050,automobile\n29051,frog\n29052,horse\n29053,dog\n29054,automobile\n29055,ship\n29056,deer\n29057,truck\n29058,ship\n29059,deer\n29060,ship\n29061,horse\n29062,bird\n29063,ship\n29064,cat\n29065,deer\n29066,horse\n29067,deer\n29068,bird\n29069,truck\n29070,dog\n29071,ship\n29072,truck\n29073,truck\n29074,truck\n29075,ship\n29076,cat\n29077,cat\n29078,automobile\n29079,cat\n29080,deer\n29081,frog\n29082,dog\n29083,frog\n29084,deer\n29085,dog\n29086,truck\n29087,airplane\n29088,dog\n29089,cat\n29090,deer\n29091,deer\n29092,automobile\n29093,dog\n29094,frog\n29095,bird\n29096,automobile\n29097,horse\n29098,deer\n29099,horse\n29100,frog\n29101,truck\n29102,deer\n29103,bird\n29104,dog\n29105,airplane\n29106,deer\n29107,automobile\n29108,frog\n29109,bird\n29110,bird\n29111,deer\n29112,cat\n29113,automobile\n29114,horse\n29115,cat\n29116,horse\n29117,ship\n29118,frog\n29119,airplane\n29120,cat\n29121,airplane\n29122,horse\n29123,horse\n29124,truck\n29125,truck\n29126,airplane\n29127,airplane\n29128,airplane\n29129,truck\n29130,frog\n29131,truck\n29132,dog\n29133,horse\n29134,deer\n29135,deer\n29136,automobile\n29137,cat\n29138,airplane\n29139,dog\n29140,cat\n29141,truck\n29142,cat\n29143,dog\n29144,deer\n29145,truck\n29146,dog\n29147,frog\n29148,deer\n29149,ship\n29150,truck\n29151,deer\n29152,deer\n29153,cat\n29154,cat\n29155,automobile\n29156,frog\n29157,horse\n29158,horse\n29159,truck\n29160,airplane\n29161,deer\n29162,deer\n29163,ship\n29164,cat\n29165,bird\n29166,truck\n29167,airplane\n29168,dog\n29169,airplane\n29170,cat\n29171,airplane\n29172,horse\n29173,truck\n29174,ship\n29175,horse\n29176,airplane\n29177,truck\n29178,automobile\n29179,truck\n29180,cat\n29181,bird\n29182,cat\n29183,automobile\n29184,deer\n29185,horse\n29186,frog\n29187,cat\n29188,ship\n29189,deer\n29190,frog\n29191,automobile\n29192,frog\n29193,truck\n29194,cat\n29195,horse\n29196,automobile\n29197,deer\n29198,bird\n29199,horse\n29200,frog\n29201,truck\n29202,horse\n29203,frog\n29204,horse\n29205,automobile\n29206,deer\n29207,airplane\n29208,truck\n29209,horse\n29210,cat\n29211,bird\n29212,truck\n29213,ship\n29214,horse\n29215,dog\n29216,truck\n29217,airplane\n29218,bird\n29219,bird\n29220,frog\n29221,frog\n29222,horse\n29223,frog\n29224,cat\n29225,automobile\n29226,ship\n29227,frog\n29228,cat\n29229,ship\n29230,dog\n29231,deer\n29232,deer\n29233,bird\n29234,deer\n29235,bird\n29236,frog\n29237,cat\n29238,horse\n29239,deer\n29240,dog\n29241,airplane\n29242,bird\n29243,deer\n29244,frog\n29245,airplane\n29246,ship\n29247,cat\n29248,horse\n29249,dog\n29250,horse\n29251,dog\n29252,truck\n29253,automobile\n29254,bird\n29255,ship\n29256,cat\n29257,bird\n29258,deer\n29259,airplane\n29260,frog\n29261,airplane\n29262,bird\n29263,bird\n29264,dog\n29265,cat\n29266,dog\n29267,airplane\n29268,horse\n29269,bird\n29270,ship\n29271,deer\n29272,frog\n29273,cat\n29274,cat\n29275,frog\n29276,ship\n29277,truck\n29278,horse\n29279,deer\n29280,cat\n29281,ship\n29282,ship\n29283,horse\n29284,bird\n29285,truck\n29286,frog\n29287,truck\n29288,frog\n29289,cat\n29290,truck\n29291,cat\n29292,horse\n29293,deer\n29294,dog\n29295,horse\n29296,truck\n29297,horse\n29298,cat\n29299,bird\n29300,cat\n29301,truck\n29302,cat\n29303,deer\n29304,truck\n29305,frog\n29306,truck\n29307,frog\n29308,deer\n29309,deer\n29310,horse\n29311,frog\n29312,bird\n29313,automobile\n29314,automobile\n29315,dog\n29316,ship\n29317,horse\n29318,bird\n29319,cat\n29320,deer\n29321,deer\n29322,automobile\n29323,truck\n29324,truck\n29325,bird\n29326,deer\n29327,truck\n29328,cat\n29329,frog\n29330,horse\n29331,frog\n29332,automobile\n29333,frog\n29334,bird\n29335,airplane\n29336,truck\n29337,frog\n29338,automobile\n29339,cat\n29340,horse\n29341,deer\n29342,ship\n29343,dog\n29344,dog\n29345,ship\n29346,cat\n29347,airplane\n29348,deer\n29349,truck\n29350,frog\n29351,deer\n29352,bird\n29353,horse\n29354,airplane\n29355,automobile\n29356,airplane\n29357,airplane\n29358,cat\n29359,horse\n29360,bird\n29361,bird\n29362,dog\n29363,deer\n29364,truck\n29365,truck\n29366,truck\n29367,frog\n29368,cat\n29369,dog\n29370,frog\n29371,deer\n29372,horse\n29373,ship\n29374,truck\n29375,horse\n29376,deer\n29377,dog\n29378,frog\n29379,bird\n29380,horse\n29381,dog\n29382,truck\n29383,truck\n29384,dog\n29385,airplane\n29386,automobile\n29387,cat\n29388,dog\n29389,cat\n29390,cat\n29391,deer\n29392,cat\n29393,frog\n29394,airplane\n29395,cat\n29396,deer\n29397,truck\n29398,ship\n29399,frog\n29400,deer\n29401,frog\n29402,ship\n29403,dog\n29404,bird\n29405,ship\n29406,deer\n29407,automobile\n29408,truck\n29409,cat\n29410,automobile\n29411,bird\n29412,cat\n29413,frog\n29414,deer\n29415,bird\n29416,truck\n29417,cat\n29418,frog\n29419,deer\n29420,deer\n29421,frog\n29422,frog\n29423,airplane\n29424,frog\n29425,dog\n29426,frog\n29427,deer\n29428,frog\n29429,frog\n29430,frog\n29431,bird\n29432,automobile\n29433,airplane\n29434,ship\n29435,ship\n29436,deer\n29437,bird\n29438,deer\n29439,airplane\n29440,bird\n29441,truck\n29442,frog\n29443,dog\n29444,truck\n29445,deer\n29446,deer\n29447,airplane\n29448,frog\n29449,cat\n29450,truck\n29451,truck\n29452,ship\n29453,automobile\n29454,automobile\n29455,deer\n29456,frog\n29457,frog\n29458,truck\n29459,horse\n29460,bird\n29461,dog\n29462,cat\n29463,dog\n29464,deer\n29465,automobile\n29466,cat\n29467,deer\n29468,frog\n29469,bird\n29470,automobile\n29471,bird\n29472,cat\n29473,automobile\n29474,deer\n29475,ship\n29476,dog\n29477,ship\n29478,horse\n29479,deer\n29480,truck\n29481,ship\n29482,truck\n29483,dog\n29484,airplane\n29485,automobile\n29486,ship\n29487,dog\n29488,dog\n29489,deer\n29490,dog\n29491,cat\n29492,airplane\n29493,truck\n29494,frog\n29495,truck\n29496,dog\n29497,horse\n29498,airplane\n29499,deer\n29500,ship\n29501,airplane\n29502,horse\n29503,horse\n29504,horse\n29505,automobile\n29506,deer\n29507,truck\n29508,frog\n29509,bird\n29510,frog\n29511,horse\n29512,deer\n29513,airplane\n29514,dog\n29515,dog\n29516,truck\n29517,airplane\n29518,automobile\n29519,dog\n29520,dog\n29521,horse\n29522,cat\n29523,dog\n29524,ship\n29525,horse\n29526,airplane\n29527,dog\n29528,bird\n29529,bird\n29530,dog\n29531,dog\n29532,ship\n29533,dog\n29534,dog\n29535,cat\n29536,airplane\n29537,dog\n29538,airplane\n29539,dog\n29540,bird\n29541,cat\n29542,deer\n29543,ship\n29544,frog\n29545,frog\n29546,automobile\n29547,cat\n29548,horse\n29549,airplane\n29550,frog\n29551,bird\n29552,bird\n29553,bird\n29554,bird\n29555,ship\n29556,deer\n29557,truck\n29558,frog\n29559,automobile\n29560,horse\n29561,ship\n29562,cat\n29563,ship\n29564,truck\n29565,horse\n29566,airplane\n29567,horse\n29568,ship\n29569,truck\n29570,bird\n29571,frog\n29572,dog\n29573,bird\n29574,cat\n29575,bird\n29576,frog\n29577,automobile\n29578,frog\n29579,bird\n29580,truck\n29581,horse\n29582,horse\n29583,frog\n29584,dog\n29585,dog\n29586,cat\n29587,truck\n29588,dog\n29589,cat\n29590,frog\n29591,frog\n29592,ship\n29593,airplane\n29594,dog\n29595,horse\n29596,automobile\n29597,cat\n29598,truck\n29599,ship\n29600,bird\n29601,deer\n29602,cat\n29603,deer\n29604,truck\n29605,dog\n29606,deer\n29607,bird\n29608,automobile\n29609,cat\n29610,truck\n29611,dog\n29612,horse\n29613,bird\n29614,horse\n29615,cat\n29616,frog\n29617,cat\n29618,dog\n29619,frog\n29620,truck\n29621,automobile\n29622,dog\n29623,cat\n29624,truck\n29625,cat\n29626,cat\n29627,deer\n29628,airplane\n29629,dog\n29630,cat\n29631,airplane\n29632,dog\n29633,deer\n29634,truck\n29635,horse\n29636,dog\n29637,bird\n29638,automobile\n29639,bird\n29640,cat\n29641,frog\n29642,frog\n29643,airplane\n29644,deer\n29645,frog\n29646,automobile\n29647,ship\n29648,frog\n29649,cat\n29650,cat\n29651,deer\n29652,horse\n29653,truck\n29654,deer\n29655,deer\n29656,truck\n29657,frog\n29658,cat\n29659,bird\n29660,frog\n29661,airplane\n29662,dog\n29663,frog\n29664,truck\n29665,ship\n29666,bird\n29667,airplane\n29668,deer\n29669,bird\n29670,bird\n29671,ship\n29672,truck\n29673,ship\n29674,airplane\n29675,bird\n29676,truck\n29677,ship\n29678,frog\n29679,ship\n29680,ship\n29681,ship\n29682,cat\n29683,truck\n29684,dog\n29685,airplane\n29686,deer\n29687,ship\n29688,ship\n29689,cat\n29690,cat\n29691,truck\n29692,deer\n29693,deer\n29694,frog\n29695,cat\n29696,truck\n29697,bird\n29698,dog\n29699,dog\n29700,deer\n29701,horse\n29702,cat\n29703,horse\n29704,frog\n29705,airplane\n29706,cat\n29707,cat\n29708,deer\n29709,airplane\n29710,deer\n29711,airplane\n29712,horse\n29713,truck\n29714,deer\n29715,horse\n29716,automobile\n29717,automobile\n29718,horse\n29719,airplane\n29720,airplane\n29721,frog\n29722,automobile\n29723,horse\n29724,deer\n29725,cat\n29726,dog\n29727,horse\n29728,truck\n29729,truck\n29730,frog\n29731,ship\n29732,dog\n29733,deer\n29734,frog\n29735,deer\n29736,ship\n29737,dog\n29738,horse\n29739,cat\n29740,horse\n29741,airplane\n29742,ship\n29743,cat\n29744,deer\n29745,deer\n29746,automobile\n29747,frog\n29748,cat\n29749,dog\n29750,horse\n29751,frog\n29752,dog\n29753,dog\n29754,deer\n29755,frog\n29756,truck\n29757,truck\n29758,truck\n29759,deer\n29760,airplane\n29761,automobile\n29762,ship\n29763,deer\n29764,airplane\n29765,frog\n29766,ship\n29767,bird\n29768,truck\n29769,horse\n29770,airplane\n29771,airplane\n29772,deer\n29773,dog\n29774,airplane\n29775,bird\n29776,cat\n29777,cat\n29778,airplane\n29779,dog\n29780,deer\n29781,bird\n29782,cat\n29783,dog\n29784,dog\n29785,truck\n29786,cat\n29787,airplane\n29788,truck\n29789,truck\n29790,automobile\n29791,deer\n29792,horse\n29793,horse\n29794,deer\n29795,horse\n29796,frog\n29797,cat\n29798,cat\n29799,truck\n29800,bird\n29801,truck\n29802,dog\n29803,bird\n29804,deer\n29805,deer\n29806,frog\n29807,deer\n29808,deer\n29809,ship\n29810,deer\n29811,automobile\n29812,deer\n29813,horse\n29814,dog\n29815,ship\n29816,airplane\n29817,dog\n29818,horse\n29819,cat\n29820,truck\n29821,ship\n29822,automobile\n29823,deer\n29824,airplane\n29825,airplane\n29826,frog\n29827,truck\n29828,automobile\n29829,truck\n29830,bird\n29831,deer\n29832,truck\n29833,cat\n29834,deer\n29835,truck\n29836,deer\n29837,frog\n29838,cat\n29839,automobile\n29840,cat\n29841,cat\n29842,truck\n29843,frog\n29844,airplane\n29845,airplane\n29846,deer\n29847,dog\n29848,bird\n29849,horse\n29850,truck\n29851,dog\n29852,horse\n29853,frog\n29854,cat\n29855,horse\n29856,bird\n29857,deer\n29858,ship\n29859,frog\n29860,truck\n29861,airplane\n29862,truck\n29863,horse\n29864,deer\n29865,cat\n29866,deer\n29867,bird\n29868,frog\n29869,airplane\n29870,ship\n29871,deer\n29872,deer\n29873,horse\n29874,cat\n29875,bird\n29876,deer\n29877,bird\n29878,frog\n29879,cat\n29880,airplane\n29881,bird\n29882,truck\n29883,deer\n29884,frog\n29885,dog\n29886,horse\n29887,deer\n29888,cat\n29889,frog\n29890,dog\n29891,bird\n29892,truck\n29893,frog\n29894,truck\n29895,truck\n29896,ship\n29897,truck\n29898,frog\n29899,automobile\n29900,cat\n29901,frog\n29902,frog\n29903,airplane\n29904,airplane\n29905,airplane\n29906,horse\n29907,airplane\n29908,horse\n29909,cat\n29910,frog\n29911,cat\n29912,deer\n29913,truck\n29914,bird\n29915,automobile\n29916,cat\n29917,cat\n29918,horse\n29919,bird\n29920,airplane\n29921,horse\n29922,deer\n29923,cat\n29924,dog\n29925,truck\n29926,automobile\n29927,frog\n29928,deer\n29929,cat\n29930,ship\n29931,deer\n29932,horse\n29933,automobile\n29934,bird\n29935,frog\n29936,frog\n29937,airplane\n29938,horse\n29939,ship\n29940,truck\n29941,deer\n29942,horse\n29943,bird\n29944,frog\n29945,airplane\n29946,frog\n29947,cat\n29948,cat\n29949,truck\n29950,cat\n29951,airplane\n29952,automobile\n29953,bird\n29954,automobile\n29955,dog\n29956,deer\n29957,truck\n29958,bird\n29959,deer\n29960,frog\n29961,frog\n29962,dog\n29963,bird\n29964,airplane\n29965,cat\n29966,frog\n29967,airplane\n29968,truck\n29969,deer\n29970,frog\n29971,deer\n29972,dog\n29973,cat\n29974,ship\n29975,frog\n29976,automobile\n29977,deer\n29978,dog\n29979,dog\n29980,automobile\n29981,cat\n29982,airplane\n29983,horse\n29984,deer\n29985,cat\n29986,cat\n29987,automobile\n29988,cat\n29989,automobile\n29990,dog\n29991,truck\n29992,horse\n29993,horse\n29994,deer\n29995,horse\n29996,dog\n29997,airplane\n29998,dog\n29999,automobile\n30000,airplane\n30001,airplane\n30002,horse\n30003,bird\n30004,dog\n30005,dog\n30006,airplane\n30007,bird\n30008,bird\n30009,frog\n30010,frog\n30011,cat\n30012,bird\n30013,automobile\n30014,cat\n30015,dog\n30016,dog\n30017,horse\n30018,cat\n30019,airplane\n30020,truck\n30021,truck\n30022,frog\n30023,deer\n30024,airplane\n30025,cat\n30026,dog\n30027,deer\n30028,cat\n30029,automobile\n30030,ship\n30031,airplane\n30032,airplane\n30033,dog\n30034,truck\n30035,airplane\n30036,deer\n30037,dog\n30038,frog\n30039,truck\n30040,truck\n30041,automobile\n30042,truck\n30043,frog\n30044,automobile\n30045,bird\n30046,airplane\n30047,automobile\n30048,deer\n30049,cat\n30050,airplane\n30051,deer\n30052,frog\n30053,deer\n30054,frog\n30055,cat\n30056,horse\n30057,truck\n30058,automobile\n30059,automobile\n30060,dog\n30061,automobile\n30062,ship\n30063,cat\n30064,bird\n30065,frog\n30066,deer\n30067,bird\n30068,deer\n30069,frog\n30070,frog\n30071,bird\n30072,cat\n30073,ship\n30074,deer\n30075,cat\n30076,dog\n30077,dog\n30078,airplane\n30079,frog\n30080,frog\n30081,bird\n30082,cat\n30083,deer\n30084,deer\n30085,bird\n30086,deer\n30087,cat\n30088,deer\n30089,cat\n30090,cat\n30091,airplane\n30092,airplane\n30093,automobile\n30094,automobile\n30095,dog\n30096,frog\n30097,cat\n30098,airplane\n30099,deer\n30100,frog\n30101,bird\n30102,truck\n30103,ship\n30104,bird\n30105,truck\n30106,ship\n30107,ship\n30108,cat\n30109,horse\n30110,automobile\n30111,cat\n30112,horse\n30113,cat\n30114,dog\n30115,truck\n30116,deer\n30117,bird\n30118,airplane\n30119,cat\n30120,dog\n30121,automobile\n30122,ship\n30123,deer\n30124,bird\n30125,deer\n30126,airplane\n30127,dog\n30128,ship\n30129,bird\n30130,airplane\n30131,bird\n30132,ship\n30133,horse\n30134,dog\n30135,ship\n30136,bird\n30137,truck\n30138,automobile\n30139,horse\n30140,bird\n30141,frog\n30142,deer\n30143,cat\n30144,frog\n30145,bird\n30146,bird\n30147,frog\n30148,airplane\n30149,truck\n30150,frog\n30151,deer\n30152,horse\n30153,deer\n30154,dog\n30155,horse\n30156,airplane\n30157,automobile\n30158,airplane\n30159,bird\n30160,airplane\n30161,ship\n30162,frog\n30163,ship\n30164,cat\n30165,deer\n30166,automobile\n30167,bird\n30168,frog\n30169,ship\n30170,truck\n30171,deer\n30172,automobile\n30173,frog\n30174,truck\n30175,dog\n30176,bird\n30177,dog\n30178,dog\n30179,horse\n30180,frog\n30181,frog\n30182,deer\n30183,cat\n30184,deer\n30185,frog\n30186,dog\n30187,deer\n30188,deer\n30189,ship\n30190,cat\n30191,ship\n30192,cat\n30193,automobile\n30194,bird\n30195,truck\n30196,automobile\n30197,dog\n30198,dog\n30199,bird\n30200,frog\n30201,dog\n30202,bird\n30203,airplane\n30204,cat\n30205,dog\n30206,truck\n30207,deer\n30208,dog\n30209,deer\n30210,bird\n30211,frog\n30212,deer\n30213,deer\n30214,frog\n30215,ship\n30216,frog\n30217,ship\n30218,bird\n30219,deer\n30220,deer\n30221,deer\n30222,horse\n30223,dog\n30224,frog\n30225,horse\n30226,truck\n30227,truck\n30228,deer\n30229,frog\n30230,deer\n30231,automobile\n30232,bird\n30233,airplane\n30234,ship\n30235,frog\n30236,automobile\n30237,ship\n30238,ship\n30239,truck\n30240,ship\n30241,truck\n30242,bird\n30243,deer\n30244,deer\n30245,deer\n30246,horse\n30247,cat\n30248,frog\n30249,ship\n30250,airplane\n30251,airplane\n30252,horse\n30253,ship\n30254,cat\n30255,automobile\n30256,frog\n30257,ship\n30258,frog\n30259,cat\n30260,dog\n30261,truck\n30262,deer\n30263,bird\n30264,dog\n30265,truck\n30266,frog\n30267,bird\n30268,truck\n30269,cat\n30270,dog\n30271,horse\n30272,ship\n30273,automobile\n30274,bird\n30275,dog\n30276,ship\n30277,ship\n30278,cat\n30279,deer\n30280,dog\n30281,horse\n30282,automobile\n30283,frog\n30284,dog\n30285,deer\n30286,frog\n30287,cat\n30288,ship\n30289,frog\n30290,bird\n30291,ship\n30292,dog\n30293,truck\n30294,truck\n30295,cat\n30296,deer\n30297,airplane\n30298,cat\n30299,dog\n30300,automobile\n30301,dog\n30302,dog\n30303,deer\n30304,horse\n30305,deer\n30306,airplane\n30307,deer\n30308,airplane\n30309,ship\n30310,bird\n30311,truck\n30312,bird\n30313,automobile\n30314,ship\n30315,automobile\n30316,automobile\n30317,horse\n30318,truck\n30319,cat\n30320,horse\n30321,cat\n30322,cat\n30323,dog\n30324,dog\n30325,deer\n30326,dog\n30327,ship\n30328,dog\n30329,cat\n30330,deer\n30331,frog\n30332,deer\n30333,cat\n30334,dog\n30335,bird\n30336,automobile\n30337,frog\n30338,deer\n30339,cat\n30340,cat\n30341,ship\n30342,cat\n30343,cat\n30344,horse\n30345,airplane\n30346,deer\n30347,frog\n30348,automobile\n30349,automobile\n30350,truck\n30351,airplane\n30352,dog\n30353,airplane\n30354,frog\n30355,bird\n30356,deer\n30357,ship\n30358,frog\n30359,airplane\n30360,horse\n30361,deer\n30362,horse\n30363,dog\n30364,ship\n30365,airplane\n30366,deer\n30367,ship\n30368,automobile\n30369,bird\n30370,airplane\n30371,cat\n30372,bird\n30373,bird\n30374,frog\n30375,ship\n30376,ship\n30377,ship\n30378,automobile\n30379,automobile\n30380,automobile\n30381,deer\n30382,ship\n30383,horse\n30384,deer\n30385,ship\n30386,airplane\n30387,ship\n30388,automobile\n30389,airplane\n30390,bird\n30391,cat\n30392,automobile\n30393,truck\n30394,ship\n30395,frog\n30396,cat\n30397,dog\n30398,automobile\n30399,bird\n30400,cat\n30401,dog\n30402,truck\n30403,cat\n30404,cat\n30405,frog\n30406,deer\n30407,cat\n30408,deer\n30409,airplane\n30410,cat\n30411,horse\n30412,deer\n30413,deer\n30414,dog\n30415,airplane\n30416,deer\n30417,automobile\n30418,bird\n30419,truck\n30420,airplane\n30421,dog\n30422,dog\n30423,cat\n30424,airplane\n30425,airplane\n30426,airplane\n30427,frog\n30428,bird\n30429,truck\n30430,frog\n30431,ship\n30432,automobile\n30433,truck\n30434,airplane\n30435,automobile\n30436,ship\n30437,deer\n30438,cat\n30439,truck\n30440,dog\n30441,deer\n30442,dog\n30443,airplane\n30444,ship\n30445,cat\n30446,airplane\n30447,bird\n30448,deer\n30449,ship\n30450,airplane\n30451,ship\n30452,airplane\n30453,frog\n30454,frog\n30455,airplane\n30456,truck\n30457,deer\n30458,horse\n30459,ship\n30460,deer\n30461,airplane\n30462,bird\n30463,deer\n30464,truck\n30465,bird\n30466,automobile\n30467,truck\n30468,automobile\n30469,truck\n30470,horse\n30471,bird\n30472,horse\n30473,bird\n30474,cat\n30475,frog\n30476,airplane\n30477,deer\n30478,cat\n30479,bird\n30480,truck\n30481,truck\n30482,cat\n30483,deer\n30484,bird\n30485,frog\n30486,horse\n30487,airplane\n30488,horse\n30489,bird\n30490,automobile\n30491,automobile\n30492,frog\n30493,deer\n30494,airplane\n30495,truck\n30496,deer\n30497,cat\n30498,dog\n30499,dog\n30500,automobile\n30501,bird\n30502,deer\n30503,horse\n30504,frog\n30505,ship\n30506,ship\n30507,bird\n30508,truck\n30509,dog\n30510,airplane\n30511,deer\n30512,truck\n30513,airplane\n30514,horse\n30515,deer\n30516,ship\n30517,deer\n30518,truck\n30519,deer\n30520,airplane\n30521,bird\n30522,deer\n30523,ship\n30524,dog\n30525,dog\n30526,airplane\n30527,deer\n30528,frog\n30529,frog\n30530,airplane\n30531,truck\n30532,horse\n30533,dog\n30534,truck\n30535,dog\n30536,truck\n30537,ship\n30538,dog\n30539,horse\n30540,airplane\n30541,airplane\n30542,truck\n30543,frog\n30544,bird\n30545,automobile\n30546,horse\n30547,bird\n30548,dog\n30549,truck\n30550,cat\n30551,cat\n30552,horse\n30553,bird\n30554,frog\n30555,truck\n30556,horse\n30557,horse\n30558,ship\n30559,dog\n30560,cat\n30561,automobile\n30562,truck\n30563,bird\n30564,frog\n30565,horse\n30566,dog\n30567,automobile\n30568,automobile\n30569,horse\n30570,cat\n30571,cat\n30572,airplane\n30573,bird\n30574,airplane\n30575,dog\n30576,airplane\n30577,airplane\n30578,bird\n30579,deer\n30580,deer\n30581,automobile\n30582,dog\n30583,truck\n30584,truck\n30585,dog\n30586,frog\n30587,cat\n30588,dog\n30589,frog\n30590,deer\n30591,ship\n30592,cat\n30593,cat\n30594,cat\n30595,horse\n30596,horse\n30597,airplane\n30598,frog\n30599,bird\n30600,dog\n30601,airplane\n30602,automobile\n30603,bird\n30604,horse\n30605,deer\n30606,deer\n30607,truck\n30608,dog\n30609,bird\n30610,automobile\n30611,airplane\n30612,dog\n30613,cat\n30614,automobile\n30615,deer\n30616,dog\n30617,ship\n30618,cat\n30619,dog\n30620,cat\n30621,frog\n30622,frog\n30623,deer\n30624,cat\n30625,deer\n30626,truck\n30627,bird\n30628,horse\n30629,airplane\n30630,truck\n30631,automobile\n30632,cat\n30633,bird\n30634,airplane\n30635,frog\n30636,horse\n30637,airplane\n30638,bird\n30639,deer\n30640,frog\n30641,deer\n30642,deer\n30643,horse\n30644,deer\n30645,automobile\n30646,truck\n30647,horse\n30648,horse\n30649,horse\n30650,automobile\n30651,cat\n30652,frog\n30653,cat\n30654,ship\n30655,airplane\n30656,cat\n30657,bird\n30658,ship\n30659,deer\n30660,dog\n30661,bird\n30662,dog\n30663,dog\n30664,cat\n30665,airplane\n30666,cat\n30667,truck\n30668,deer\n30669,ship\n30670,horse\n30671,frog\n30672,frog\n30673,deer\n30674,cat\n30675,frog\n30676,bird\n30677,bird\n30678,airplane\n30679,truck\n30680,horse\n30681,ship\n30682,automobile\n30683,truck\n30684,truck\n30685,deer\n30686,ship\n30687,automobile\n30688,dog\n30689,horse\n30690,dog\n30691,deer\n30692,deer\n30693,airplane\n30694,automobile\n30695,deer\n30696,deer\n30697,horse\n30698,dog\n30699,airplane\n30700,truck\n30701,dog\n30702,frog\n30703,frog\n30704,airplane\n30705,horse\n30706,dog\n30707,bird\n30708,deer\n30709,deer\n30710,deer\n30711,dog\n30712,dog\n30713,truck\n30714,airplane\n30715,deer\n30716,automobile\n30717,frog\n30718,truck\n30719,cat\n30720,deer\n30721,truck\n30722,truck\n30723,bird\n30724,ship\n30725,frog\n30726,truck\n30727,airplane\n30728,dog\n30729,horse\n30730,ship\n30731,truck\n30732,airplane\n30733,truck\n30734,deer\n30735,frog\n30736,bird\n30737,bird\n30738,automobile\n30739,bird\n30740,deer\n30741,ship\n30742,cat\n30743,frog\n30744,horse\n30745,airplane\n30746,deer\n30747,dog\n30748,truck\n30749,automobile\n30750,cat\n30751,frog\n30752,bird\n30753,ship\n30754,automobile\n30755,airplane\n30756,cat\n30757,deer\n30758,airplane\n30759,airplane\n30760,cat\n30761,horse\n30762,deer\n30763,truck\n30764,horse\n30765,airplane\n30766,deer\n30767,airplane\n30768,airplane\n30769,truck\n30770,horse\n30771,horse\n30772,ship\n30773,truck\n30774,truck\n30775,dog\n30776,dog\n30777,airplane\n30778,truck\n30779,horse\n30780,dog\n30781,frog\n30782,frog\n30783,dog\n30784,horse\n30785,ship\n30786,dog\n30787,deer\n30788,bird\n30789,deer\n30790,cat\n30791,cat\n30792,cat\n30793,automobile\n30794,deer\n30795,airplane\n30796,cat\n30797,deer\n30798,bird\n30799,deer\n30800,frog\n30801,deer\n30802,deer\n30803,automobile\n30804,dog\n30805,deer\n30806,truck\n30807,deer\n30808,deer\n30809,deer\n30810,horse\n30811,horse\n30812,dog\n30813,deer\n30814,automobile\n30815,ship\n30816,deer\n30817,automobile\n30818,frog\n30819,dog\n30820,truck\n30821,ship\n30822,cat\n30823,horse\n30824,dog\n30825,deer\n30826,truck\n30827,deer\n30828,deer\n30829,truck\n30830,frog\n30831,deer\n30832,automobile\n30833,bird\n30834,airplane\n30835,horse\n30836,deer\n30837,ship\n30838,bird\n30839,frog\n30840,airplane\n30841,cat\n30842,truck\n30843,cat\n30844,dog\n30845,truck\n30846,frog\n30847,deer\n30848,frog\n30849,horse\n30850,frog\n30851,horse\n30852,horse\n30853,cat\n30854,ship\n30855,truck\n30856,ship\n30857,horse\n30858,ship\n30859,ship\n30860,deer\n30861,cat\n30862,cat\n30863,bird\n30864,automobile\n30865,cat\n30866,cat\n30867,deer\n30868,ship\n30869,automobile\n30870,ship\n30871,ship\n30872,airplane\n30873,ship\n30874,deer\n30875,frog\n30876,frog\n30877,deer\n30878,frog\n30879,truck\n30880,deer\n30881,horse\n30882,deer\n30883,cat\n30884,airplane\n30885,deer\n30886,ship\n30887,horse\n30888,bird\n30889,deer\n30890,cat\n30891,dog\n30892,frog\n30893,ship\n30894,truck\n30895,bird\n30896,horse\n30897,truck\n30898,cat\n30899,dog\n30900,deer\n30901,truck\n30902,airplane\n30903,cat\n30904,cat\n30905,ship\n30906,bird\n30907,dog\n30908,airplane\n30909,frog\n30910,automobile\n30911,frog\n30912,horse\n30913,bird\n30914,dog\n30915,truck\n30916,cat\n30917,frog\n30918,deer\n30919,horse\n30920,horse\n30921,airplane\n30922,ship\n30923,horse\n30924,truck\n30925,cat\n30926,frog\n30927,frog\n30928,deer\n30929,airplane\n30930,cat\n30931,ship\n30932,frog\n30933,ship\n30934,deer\n30935,dog\n30936,airplane\n30937,airplane\n30938,bird\n30939,truck\n30940,dog\n30941,frog\n30942,frog\n30943,dog\n30944,airplane\n30945,bird\n30946,deer\n30947,ship\n30948,cat\n30949,cat\n30950,truck\n30951,frog\n30952,ship\n30953,dog\n30954,dog\n30955,truck\n30956,deer\n30957,deer\n30958,truck\n30959,cat\n30960,cat\n30961,deer\n30962,horse\n30963,horse\n30964,cat\n30965,horse\n30966,automobile\n30967,ship\n30968,automobile\n30969,cat\n30970,dog\n30971,deer\n30972,bird\n30973,ship\n30974,ship\n30975,ship\n30976,cat\n30977,truck\n30978,cat\n30979,deer\n30980,automobile\n30981,frog\n30982,airplane\n30983,airplane\n30984,truck\n30985,cat\n30986,frog\n30987,automobile\n30988,frog\n30989,frog\n30990,ship\n30991,automobile\n30992,frog\n30993,deer\n30994,automobile\n30995,cat\n30996,truck\n30997,frog\n30998,cat\n30999,automobile\n31000,truck\n31001,automobile\n31002,dog\n31003,bird\n31004,horse\n31005,airplane\n31006,airplane\n31007,ship\n31008,truck\n31009,deer\n31010,frog\n31011,deer\n31012,deer\n31013,automobile\n31014,frog\n31015,deer\n31016,bird\n31017,deer\n31018,automobile\n31019,deer\n31020,bird\n31021,airplane\n31022,dog\n31023,frog\n31024,automobile\n31025,ship\n31026,automobile\n31027,cat\n31028,bird\n31029,ship\n31030,dog\n31031,deer\n31032,cat\n31033,bird\n31034,horse\n31035,frog\n31036,horse\n31037,truck\n31038,bird\n31039,deer\n31040,truck\n31041,cat\n31042,bird\n31043,airplane\n31044,cat\n31045,truck\n31046,dog\n31047,cat\n31048,deer\n31049,airplane\n31050,frog\n31051,horse\n31052,cat\n31053,frog\n31054,bird\n31055,deer\n31056,bird\n31057,truck\n31058,frog\n31059,automobile\n31060,bird\n31061,bird\n31062,horse\n31063,horse\n31064,ship\n31065,cat\n31066,truck\n31067,deer\n31068,frog\n31069,airplane\n31070,cat\n31071,frog\n31072,frog\n31073,deer\n31074,ship\n31075,airplane\n31076,deer\n31077,ship\n31078,bird\n31079,deer\n31080,bird\n31081,ship\n31082,dog\n31083,ship\n31084,deer\n31085,bird\n31086,truck\n31087,cat\n31088,ship\n31089,frog\n31090,frog\n31091,dog\n31092,dog\n31093,horse\n31094,automobile\n31095,horse\n31096,cat\n31097,bird\n31098,automobile\n31099,frog\n31100,automobile\n31101,frog\n31102,truck\n31103,horse\n31104,deer\n31105,cat\n31106,bird\n31107,dog\n31108,ship\n31109,frog\n31110,dog\n31111,bird\n31112,bird\n31113,truck\n31114,horse\n31115,frog\n31116,airplane\n31117,cat\n31118,frog\n31119,truck\n31120,bird\n31121,automobile\n31122,cat\n31123,truck\n31124,cat\n31125,deer\n31126,cat\n31127,cat\n31128,cat\n31129,automobile\n31130,ship\n31131,automobile\n31132,automobile\n31133,frog\n31134,deer\n31135,airplane\n31136,deer\n31137,truck\n31138,deer\n31139,truck\n31140,truck\n31141,bird\n31142,deer\n31143,automobile\n31144,deer\n31145,cat\n31146,deer\n31147,deer\n31148,cat\n31149,cat\n31150,truck\n31151,deer\n31152,bird\n31153,deer\n31154,deer\n31155,dog\n31156,dog\n31157,airplane\n31158,deer\n31159,dog\n31160,deer\n31161,dog\n31162,dog\n31163,truck\n31164,dog\n31165,truck\n31166,horse\n31167,horse\n31168,ship\n31169,cat\n31170,automobile\n31171,frog\n31172,deer\n31173,airplane\n31174,frog\n31175,bird\n31176,cat\n31177,dog\n31178,dog\n31179,cat\n31180,dog\n31181,deer\n31182,airplane\n31183,bird\n31184,automobile\n31185,ship\n31186,cat\n31187,horse\n31188,frog\n31189,cat\n31190,deer\n31191,truck\n31192,frog\n31193,horse\n31194,bird\n31195,airplane\n31196,bird\n31197,deer\n31198,frog\n31199,deer\n31200,bird\n31201,truck\n31202,truck\n31203,bird\n31204,frog\n31205,truck\n31206,horse\n31207,dog\n31208,truck\n31209,frog\n31210,deer\n31211,ship\n31212,automobile\n31213,automobile\n31214,airplane\n31215,ship\n31216,ship\n31217,airplane\n31218,airplane\n31219,truck\n31220,airplane\n31221,ship\n31222,bird\n31223,frog\n31224,bird\n31225,dog\n31226,cat\n31227,automobile\n31228,automobile\n31229,automobile\n31230,deer\n31231,horse\n31232,cat\n31233,truck\n31234,deer\n31235,frog\n31236,ship\n31237,bird\n31238,bird\n31239,dog\n31240,frog\n31241,bird\n31242,truck\n31243,truck\n31244,dog\n31245,cat\n31246,automobile\n31247,dog\n31248,truck\n31249,dog\n31250,truck\n31251,automobile\n31252,frog\n31253,cat\n31254,truck\n31255,airplane\n31256,ship\n31257,truck\n31258,deer\n31259,airplane\n31260,dog\n31261,bird\n31262,dog\n31263,cat\n31264,cat\n31265,dog\n31266,truck\n31267,automobile\n31268,deer\n31269,truck\n31270,frog\n31271,airplane\n31272,ship\n31273,frog\n31274,deer\n31275,ship\n31276,airplane\n31277,airplane\n31278,frog\n31279,horse\n31280,airplane\n31281,deer\n31282,automobile\n31283,deer\n31284,horse\n31285,dog\n31286,dog\n31287,horse\n31288,truck\n31289,horse\n31290,cat\n31291,dog\n31292,bird\n31293,automobile\n31294,truck\n31295,bird\n31296,bird\n31297,dog\n31298,dog\n31299,dog\n31300,frog\n31301,ship\n31302,automobile\n31303,truck\n31304,horse\n31305,bird\n31306,deer\n31307,truck\n31308,cat\n31309,frog\n31310,frog\n31311,deer\n31312,ship\n31313,dog\n31314,dog\n31315,cat\n31316,ship\n31317,deer\n31318,airplane\n31319,truck\n31320,dog\n31321,cat\n31322,dog\n31323,cat\n31324,deer\n31325,automobile\n31326,cat\n31327,deer\n31328,truck\n31329,truck\n31330,airplane\n31331,frog\n31332,airplane\n31333,deer\n31334,frog\n31335,cat\n31336,deer\n31337,cat\n31338,truck\n31339,cat\n31340,deer\n31341,bird\n31342,truck\n31343,cat\n31344,ship\n31345,bird\n31346,truck\n31347,deer\n31348,airplane\n31349,deer\n31350,deer\n31351,frog\n31352,airplane\n31353,dog\n31354,horse\n31355,bird\n31356,cat\n31357,airplane\n31358,horse\n31359,truck\n31360,automobile\n31361,automobile\n31362,frog\n31363,deer\n31364,bird\n31365,dog\n31366,deer\n31367,automobile\n31368,deer\n31369,horse\n31370,horse\n31371,automobile\n31372,horse\n31373,cat\n31374,ship\n31375,frog\n31376,deer\n31377,automobile\n31378,deer\n31379,dog\n31380,cat\n31381,horse\n31382,cat\n31383,airplane\n31384,airplane\n31385,deer\n31386,frog\n31387,frog\n31388,cat\n31389,airplane\n31390,cat\n31391,bird\n31392,airplane\n31393,cat\n31394,truck\n31395,automobile\n31396,deer\n31397,bird\n31398,bird\n31399,truck\n31400,deer\n31401,deer\n31402,horse\n31403,airplane\n31404,truck\n31405,ship\n31406,automobile\n31407,ship\n31408,cat\n31409,deer\n31410,automobile\n31411,airplane\n31412,frog\n31413,bird\n31414,frog\n31415,automobile\n31416,frog\n31417,deer\n31418,bird\n31419,ship\n31420,frog\n31421,horse\n31422,cat\n31423,cat\n31424,truck\n31425,frog\n31426,automobile\n31427,dog\n31428,airplane\n31429,cat\n31430,automobile\n31431,ship\n31432,dog\n31433,deer\n31434,frog\n31435,dog\n31436,bird\n31437,deer\n31438,truck\n31439,ship\n31440,cat\n31441,dog\n31442,automobile\n31443,automobile\n31444,airplane\n31445,cat\n31446,deer\n31447,dog\n31448,deer\n31449,dog\n31450,dog\n31451,frog\n31452,horse\n31453,bird\n31454,deer\n31455,airplane\n31456,frog\n31457,deer\n31458,horse\n31459,dog\n31460,deer\n31461,ship\n31462,cat\n31463,cat\n31464,horse\n31465,frog\n31466,frog\n31467,frog\n31468,bird\n31469,cat\n31470,airplane\n31471,truck\n31472,frog\n31473,frog\n31474,dog\n31475,ship\n31476,truck\n31477,truck\n31478,deer\n31479,automobile\n31480,frog\n31481,dog\n31482,dog\n31483,bird\n31484,frog\n31485,truck\n31486,deer\n31487,airplane\n31488,bird\n31489,horse\n31490,horse\n31491,bird\n31492,frog\n31493,ship\n31494,cat\n31495,frog\n31496,automobile\n31497,truck\n31498,truck\n31499,dog\n31500,bird\n31501,ship\n31502,automobile\n31503,automobile\n31504,dog\n31505,bird\n31506,automobile\n31507,cat\n31508,truck\n31509,airplane\n31510,airplane\n31511,frog\n31512,deer\n31513,bird\n31514,deer\n31515,truck\n31516,dog\n31517,cat\n31518,airplane\n31519,cat\n31520,frog\n31521,horse\n31522,cat\n31523,bird\n31524,dog\n31525,airplane\n31526,horse\n31527,airplane\n31528,horse\n31529,frog\n31530,horse\n31531,cat\n31532,frog\n31533,frog\n31534,frog\n31535,bird\n31536,airplane\n31537,dog\n31538,horse\n31539,bird\n31540,ship\n31541,dog\n31542,dog\n31543,frog\n31544,airplane\n31545,airplane\n31546,truck\n31547,cat\n31548,truck\n31549,horse\n31550,truck\n31551,automobile\n31552,airplane\n31553,bird\n31554,frog\n31555,dog\n31556,deer\n31557,dog\n31558,horse\n31559,deer\n31560,cat\n31561,cat\n31562,truck\n31563,ship\n31564,deer\n31565,dog\n31566,horse\n31567,frog\n31568,frog\n31569,frog\n31570,airplane\n31571,ship\n31572,dog\n31573,frog\n31574,automobile\n31575,ship\n31576,horse\n31577,horse\n31578,automobile\n31579,bird\n31580,cat\n31581,horse\n31582,bird\n31583,deer\n31584,ship\n31585,horse\n31586,cat\n31587,dog\n31588,dog\n31589,dog\n31590,cat\n31591,ship\n31592,cat\n31593,frog\n31594,cat\n31595,ship\n31596,cat\n31597,frog\n31598,deer\n31599,truck\n31600,automobile\n31601,bird\n31602,ship\n31603,horse\n31604,cat\n31605,cat\n31606,truck\n31607,automobile\n31608,cat\n31609,ship\n31610,ship\n31611,frog\n31612,ship\n31613,horse\n31614,horse\n31615,dog\n31616,dog\n31617,truck\n31618,dog\n31619,bird\n31620,truck\n31621,cat\n31622,airplane\n31623,bird\n31624,dog\n31625,airplane\n31626,automobile\n31627,frog\n31628,cat\n31629,deer\n31630,airplane\n31631,dog\n31632,frog\n31633,dog\n31634,frog\n31635,airplane\n31636,bird\n31637,cat\n31638,ship\n31639,deer\n31640,automobile\n31641,cat\n31642,horse\n31643,bird\n31644,horse\n31645,ship\n31646,cat\n31647,cat\n31648,deer\n31649,frog\n31650,deer\n31651,automobile\n31652,dog\n31653,automobile\n31654,frog\n31655,cat\n31656,deer\n31657,dog\n31658,ship\n31659,deer\n31660,ship\n31661,cat\n31662,dog\n31663,airplane\n31664,dog\n31665,horse\n31666,deer\n31667,cat\n31668,automobile\n31669,bird\n31670,deer\n31671,truck\n31672,cat\n31673,airplane\n31674,frog\n31675,frog\n31676,automobile\n31677,deer\n31678,ship\n31679,deer\n31680,deer\n31681,cat\n31682,cat\n31683,cat\n31684,automobile\n31685,horse\n31686,bird\n31687,horse\n31688,automobile\n31689,automobile\n31690,frog\n31691,ship\n31692,dog\n31693,truck\n31694,frog\n31695,horse\n31696,airplane\n31697,truck\n31698,automobile\n31699,ship\n31700,truck\n31701,cat\n31702,ship\n31703,airplane\n31704,bird\n31705,horse\n31706,deer\n31707,airplane\n31708,frog\n31709,dog\n31710,bird\n31711,cat\n31712,dog\n31713,cat\n31714,cat\n31715,cat\n31716,deer\n31717,deer\n31718,frog\n31719,truck\n31720,frog\n31721,bird\n31722,frog\n31723,deer\n31724,frog\n31725,automobile\n31726,deer\n31727,bird\n31728,cat\n31729,airplane\n31730,frog\n31731,dog\n31732,cat\n31733,frog\n31734,dog\n31735,cat\n31736,cat\n31737,dog\n31738,cat\n31739,automobile\n31740,cat\n31741,airplane\n31742,cat\n31743,horse\n31744,airplane\n31745,frog\n31746,deer\n31747,automobile\n31748,dog\n31749,deer\n31750,ship\n31751,dog\n31752,deer\n31753,airplane\n31754,cat\n31755,dog\n31756,truck\n31757,dog\n31758,bird\n31759,horse\n31760,truck\n31761,deer\n31762,deer\n31763,cat\n31764,frog\n31765,truck\n31766,cat\n31767,dog\n31768,deer\n31769,cat\n31770,bird\n31771,deer\n31772,frog\n31773,truck\n31774,deer\n31775,dog\n31776,dog\n31777,bird\n31778,dog\n31779,dog\n31780,ship\n31781,cat\n31782,bird\n31783,cat\n31784,bird\n31785,cat\n31786,airplane\n31787,airplane\n31788,truck\n31789,truck\n31790,cat\n31791,automobile\n31792,deer\n31793,truck\n31794,ship\n31795,ship\n31796,deer\n31797,deer\n31798,deer\n31799,truck\n31800,dog\n31801,deer\n31802,cat\n31803,dog\n31804,frog\n31805,ship\n31806,ship\n31807,deer\n31808,frog\n31809,cat\n31810,dog\n31811,horse\n31812,bird\n31813,frog\n31814,frog\n31815,horse\n31816,bird\n31817,ship\n31818,truck\n31819,cat\n31820,automobile\n31821,deer\n31822,automobile\n31823,automobile\n31824,dog\n31825,cat\n31826,horse\n31827,dog\n31828,deer\n31829,truck\n31830,horse\n31831,deer\n31832,cat\n31833,ship\n31834,frog\n31835,horse\n31836,cat\n31837,truck\n31838,deer\n31839,cat\n31840,automobile\n31841,deer\n31842,truck\n31843,deer\n31844,cat\n31845,frog\n31846,bird\n31847,ship\n31848,frog\n31849,ship\n31850,truck\n31851,dog\n31852,deer\n31853,bird\n31854,cat\n31855,truck\n31856,ship\n31857,truck\n31858,automobile\n31859,truck\n31860,airplane\n31861,frog\n31862,horse\n31863,dog\n31864,truck\n31865,cat\n31866,horse\n31867,deer\n31868,horse\n31869,ship\n31870,ship\n31871,airplane\n31872,airplane\n31873,cat\n31874,bird\n31875,deer\n31876,horse\n31877,airplane\n31878,horse\n31879,automobile\n31880,dog\n31881,automobile\n31882,ship\n31883,cat\n31884,truck\n31885,ship\n31886,dog\n31887,dog\n31888,deer\n31889,cat\n31890,dog\n31891,frog\n31892,deer\n31893,airplane\n31894,dog\n31895,airplane\n31896,automobile\n31897,cat\n31898,horse\n31899,frog\n31900,truck\n31901,bird\n31902,bird\n31903,dog\n31904,ship\n31905,automobile\n31906,deer\n31907,airplane\n31908,deer\n31909,truck\n31910,deer\n31911,dog\n31912,airplane\n31913,ship\n31914,deer\n31915,truck\n31916,cat\n31917,ship\n31918,frog\n31919,dog\n31920,cat\n31921,truck\n31922,ship\n31923,automobile\n31924,airplane\n31925,frog\n31926,truck\n31927,cat\n31928,deer\n31929,truck\n31930,dog\n31931,frog\n31932,deer\n31933,automobile\n31934,dog\n31935,cat\n31936,deer\n31937,bird\n31938,deer\n31939,cat\n31940,cat\n31941,frog\n31942,deer\n31943,airplane\n31944,airplane\n31945,truck\n31946,deer\n31947,airplane\n31948,airplane\n31949,deer\n31950,airplane\n31951,frog\n31952,dog\n31953,dog\n31954,airplane\n31955,deer\n31956,horse\n31957,dog\n31958,truck\n31959,bird\n31960,deer\n31961,automobile\n31962,deer\n31963,automobile\n31964,deer\n31965,frog\n31966,deer\n31967,ship\n31968,truck\n31969,bird\n31970,airplane\n31971,frog\n31972,horse\n31973,cat\n31974,dog\n31975,automobile\n31976,bird\n31977,bird\n31978,frog\n31979,horse\n31980,automobile\n31981,dog\n31982,bird\n31983,ship\n31984,cat\n31985,airplane\n31986,cat\n31987,bird\n31988,airplane\n31989,truck\n31990,dog\n31991,frog\n31992,airplane\n31993,deer\n31994,truck\n31995,horse\n31996,airplane\n31997,frog\n31998,horse\n31999,deer\n32000,truck\n32001,truck\n32002,deer\n32003,ship\n32004,cat\n32005,frog\n32006,dog\n32007,ship\n32008,deer\n32009,frog\n32010,frog\n32011,horse\n32012,horse\n32013,frog\n32014,horse\n32015,deer\n32016,bird\n32017,airplane\n32018,cat\n32019,cat\n32020,bird\n32021,truck\n32022,ship\n32023,dog\n32024,automobile\n32025,cat\n32026,deer\n32027,cat\n32028,frog\n32029,deer\n32030,ship\n32031,deer\n32032,frog\n32033,deer\n32034,horse\n32035,ship\n32036,deer\n32037,bird\n32038,frog\n32039,bird\n32040,frog\n32041,dog\n32042,deer\n32043,ship\n32044,deer\n32045,cat\n32046,frog\n32047,dog\n32048,bird\n32049,horse\n32050,horse\n32051,ship\n32052,frog\n32053,airplane\n32054,ship\n32055,automobile\n32056,frog\n32057,ship\n32058,airplane\n32059,deer\n32060,frog\n32061,airplane\n32062,truck\n32063,frog\n32064,frog\n32065,deer\n32066,airplane\n32067,cat\n32068,bird\n32069,dog\n32070,bird\n32071,airplane\n32072,deer\n32073,horse\n32074,bird\n32075,cat\n32076,truck\n32077,bird\n32078,deer\n32079,truck\n32080,frog\n32081,truck\n32082,frog\n32083,frog\n32084,airplane\n32085,horse\n32086,horse\n32087,cat\n32088,cat\n32089,horse\n32090,deer\n32091,automobile\n32092,deer\n32093,frog\n32094,truck\n32095,cat\n32096,frog\n32097,deer\n32098,automobile\n32099,airplane\n32100,ship\n32101,frog\n32102,bird\n32103,horse\n32104,frog\n32105,horse\n32106,horse\n32107,deer\n32108,dog\n32109,frog\n32110,automobile\n32111,dog\n32112,horse\n32113,frog\n32114,deer\n32115,bird\n32116,dog\n32117,frog\n32118,cat\n32119,deer\n32120,cat\n32121,ship\n32122,dog\n32123,deer\n32124,ship\n32125,cat\n32126,horse\n32127,ship\n32128,bird\n32129,automobile\n32130,frog\n32131,cat\n32132,deer\n32133,bird\n32134,cat\n32135,horse\n32136,cat\n32137,cat\n32138,automobile\n32139,truck\n32140,horse\n32141,bird\n32142,cat\n32143,truck\n32144,frog\n32145,deer\n32146,horse\n32147,dog\n32148,bird\n32149,bird\n32150,horse\n32151,airplane\n32152,truck\n32153,bird\n32154,frog\n32155,horse\n32156,ship\n32157,cat\n32158,automobile\n32159,automobile\n32160,automobile\n32161,airplane\n32162,bird\n32163,ship\n32164,automobile\n32165,truck\n32166,ship\n32167,truck\n32168,airplane\n32169,truck\n32170,airplane\n32171,bird\n32172,ship\n32173,automobile\n32174,frog\n32175,ship\n32176,deer\n32177,horse\n32178,deer\n32179,truck\n32180,deer\n32181,automobile\n32182,deer\n32183,horse\n32184,horse\n32185,deer\n32186,deer\n32187,truck\n32188,dog\n32189,dog\n32190,frog\n32191,deer\n32192,cat\n32193,dog\n32194,frog\n32195,airplane\n32196,cat\n32197,truck\n32198,cat\n32199,truck\n32200,bird\n32201,airplane\n32202,airplane\n32203,dog\n32204,truck\n32205,ship\n32206,frog\n32207,truck\n32208,frog\n32209,bird\n32210,airplane\n32211,cat\n32212,airplane\n32213,cat\n32214,horse\n32215,ship\n32216,deer\n32217,dog\n32218,airplane\n32219,cat\n32220,ship\n32221,dog\n32222,deer\n32223,bird\n32224,airplane\n32225,dog\n32226,airplane\n32227,frog\n32228,airplane\n32229,dog\n32230,cat\n32231,horse\n32232,dog\n32233,ship\n32234,ship\n32235,deer\n32236,ship\n32237,cat\n32238,bird\n32239,horse\n32240,ship\n32241,dog\n32242,ship\n32243,cat\n32244,deer\n32245,airplane\n32246,airplane\n32247,frog\n32248,bird\n32249,frog\n32250,horse\n32251,truck\n32252,airplane\n32253,ship\n32254,airplane\n32255,deer\n32256,cat\n32257,deer\n32258,horse\n32259,bird\n32260,truck\n32261,dog\n32262,deer\n32263,ship\n32264,horse\n32265,deer\n32266,horse\n32267,cat\n32268,frog\n32269,deer\n32270,cat\n32271,automobile\n32272,ship\n32273,automobile\n32274,deer\n32275,automobile\n32276,horse\n32277,dog\n32278,bird\n32279,truck\n32280,bird\n32281,cat\n32282,bird\n32283,truck\n32284,deer\n32285,bird\n32286,bird\n32287,airplane\n32288,cat\n32289,ship\n32290,bird\n32291,bird\n32292,horse\n32293,dog\n32294,automobile\n32295,horse\n32296,airplane\n32297,dog\n32298,cat\n32299,ship\n32300,cat\n32301,automobile\n32302,deer\n32303,frog\n32304,airplane\n32305,dog\n32306,airplane\n32307,deer\n32308,truck\n32309,cat\n32310,ship\n32311,automobile\n32312,bird\n32313,bird\n32314,horse\n32315,horse\n32316,dog\n32317,bird\n32318,automobile\n32319,bird\n32320,dog\n32321,frog\n32322,cat\n32323,bird\n32324,dog\n32325,horse\n32326,cat\n32327,deer\n32328,dog\n32329,frog\n32330,horse\n32331,cat\n32332,frog\n32333,frog\n32334,automobile\n32335,airplane\n32336,automobile\n32337,truck\n32338,horse\n32339,horse\n32340,dog\n32341,horse\n32342,frog\n32343,horse\n32344,truck\n32345,automobile\n32346,bird\n32347,deer\n32348,truck\n32349,horse\n32350,cat\n32351,ship\n32352,frog\n32353,ship\n32354,horse\n32355,deer\n32356,deer\n32357,ship\n32358,truck\n32359,cat\n32360,horse\n32361,airplane\n32362,cat\n32363,bird\n32364,automobile\n32365,truck\n32366,bird\n32367,bird\n32368,deer\n32369,airplane\n32370,bird\n32371,cat\n32372,cat\n32373,truck\n32374,truck\n32375,dog\n32376,ship\n32377,bird\n32378,truck\n32379,horse\n32380,deer\n32381,automobile\n32382,dog\n32383,ship\n32384,dog\n32385,cat\n32386,cat\n32387,cat\n32388,truck\n32389,automobile\n32390,airplane\n32391,cat\n32392,automobile\n32393,truck\n32394,frog\n32395,cat\n32396,airplane\n32397,bird\n32398,automobile\n32399,horse\n32400,truck\n32401,deer\n32402,cat\n32403,cat\n32404,automobile\n32405,dog\n32406,frog\n32407,cat\n32408,cat\n32409,deer\n32410,cat\n32411,deer\n32412,automobile\n32413,frog\n32414,truck\n32415,dog\n32416,ship\n32417,ship\n32418,frog\n32419,deer\n32420,cat\n32421,cat\n32422,bird\n32423,frog\n32424,deer\n32425,bird\n32426,dog\n32427,cat\n32428,dog\n32429,dog\n32430,frog\n32431,automobile\n32432,dog\n32433,dog\n32434,cat\n32435,frog\n32436,frog\n32437,automobile\n32438,frog\n32439,automobile\n32440,airplane\n32441,cat\n32442,ship\n32443,dog\n32444,horse\n32445,frog\n32446,cat\n32447,automobile\n32448,dog\n32449,truck\n32450,dog\n32451,horse\n32452,dog\n32453,truck\n32454,dog\n32455,truck\n32456,ship\n32457,dog\n32458,deer\n32459,airplane\n32460,frog\n32461,truck\n32462,automobile\n32463,deer\n32464,frog\n32465,ship\n32466,dog\n32467,airplane\n32468,airplane\n32469,airplane\n32470,ship\n32471,dog\n32472,dog\n32473,horse\n32474,cat\n32475,cat\n32476,frog\n32477,automobile\n32478,deer\n32479,bird\n32480,cat\n32481,airplane\n32482,cat\n32483,cat\n32484,ship\n32485,airplane\n32486,deer\n32487,dog\n32488,horse\n32489,airplane\n32490,cat\n32491,truck\n32492,cat\n32493,ship\n32494,cat\n32495,cat\n32496,frog\n32497,truck\n32498,cat\n32499,truck\n32500,frog\n32501,automobile\n32502,automobile\n32503,airplane\n32504,deer\n32505,horse\n32506,deer\n32507,frog\n32508,automobile\n32509,deer\n32510,automobile\n32511,bird\n32512,truck\n32513,dog\n32514,cat\n32515,airplane\n32516,ship\n32517,cat\n32518,deer\n32519,dog\n32520,truck\n32521,bird\n32522,deer\n32523,truck\n32524,airplane\n32525,deer\n32526,airplane\n32527,cat\n32528,bird\n32529,horse\n32530,deer\n32531,ship\n32532,ship\n32533,bird\n32534,airplane\n32535,ship\n32536,automobile\n32537,cat\n32538,dog\n32539,airplane\n32540,dog\n32541,deer\n32542,bird\n32543,truck\n32544,deer\n32545,bird\n32546,dog\n32547,deer\n32548,cat\n32549,automobile\n32550,deer\n32551,ship\n32552,deer\n32553,ship\n32554,airplane\n32555,truck\n32556,cat\n32557,automobile\n32558,frog\n32559,ship\n32560,bird\n32561,horse\n32562,airplane\n32563,cat\n32564,dog\n32565,cat\n32566,frog\n32567,airplane\n32568,horse\n32569,ship\n32570,airplane\n32571,airplane\n32572,truck\n32573,cat\n32574,cat\n32575,airplane\n32576,frog\n32577,ship\n32578,automobile\n32579,deer\n32580,dog\n32581,airplane\n32582,dog\n32583,cat\n32584,horse\n32585,ship\n32586,airplane\n32587,dog\n32588,frog\n32589,frog\n32590,deer\n32591,automobile\n32592,dog\n32593,ship\n32594,cat\n32595,deer\n32596,cat\n32597,airplane\n32598,deer\n32599,horse\n32600,airplane\n32601,automobile\n32602,dog\n32603,frog\n32604,frog\n32605,frog\n32606,ship\n32607,deer\n32608,deer\n32609,airplane\n32610,ship\n32611,cat\n32612,frog\n32613,frog\n32614,dog\n32615,frog\n32616,truck\n32617,ship\n32618,cat\n32619,dog\n32620,bird\n32621,ship\n32622,airplane\n32623,ship\n32624,automobile\n32625,ship\n32626,truck\n32627,horse\n32628,deer\n32629,bird\n32630,deer\n32631,dog\n32632,truck\n32633,automobile\n32634,cat\n32635,bird\n32636,cat\n32637,deer\n32638,automobile\n32639,ship\n32640,bird\n32641,horse\n32642,deer\n32643,deer\n32644,deer\n32645,horse\n32646,ship\n32647,cat\n32648,ship\n32649,horse\n32650,frog\n32651,deer\n32652,truck\n32653,truck\n32654,deer\n32655,deer\n32656,automobile\n32657,cat\n32658,deer\n32659,frog\n32660,horse\n32661,frog\n32662,horse\n32663,truck\n32664,ship\n32665,truck\n32666,cat\n32667,ship\n32668,horse\n32669,airplane\n32670,dog\n32671,bird\n32672,bird\n32673,horse\n32674,horse\n32675,ship\n32676,cat\n32677,truck\n32678,bird\n32679,automobile\n32680,frog\n32681,truck\n32682,horse\n32683,frog\n32684,bird\n32685,ship\n32686,cat\n32687,automobile\n32688,dog\n32689,ship\n32690,dog\n32691,truck\n32692,horse\n32693,truck\n32694,ship\n32695,cat\n32696,deer\n32697,deer\n32698,cat\n32699,cat\n32700,horse\n32701,ship\n32702,dog\n32703,bird\n32704,dog\n32705,truck\n32706,deer\n32707,frog\n32708,horse\n32709,automobile\n32710,cat\n32711,bird\n32712,automobile\n32713,horse\n32714,dog\n32715,cat\n32716,automobile\n32717,airplane\n32718,dog\n32719,automobile\n32720,cat\n32721,frog\n32722,deer\n32723,bird\n32724,truck\n32725,horse\n32726,bird\n32727,dog\n32728,frog\n32729,deer\n32730,bird\n32731,frog\n32732,bird\n32733,horse\n32734,frog\n32735,automobile\n32736,cat\n32737,airplane\n32738,deer\n32739,frog\n32740,ship\n32741,truck\n32742,deer\n32743,deer\n32744,bird\n32745,cat\n32746,airplane\n32747,bird\n32748,horse\n32749,deer\n32750,dog\n32751,automobile\n32752,horse\n32753,horse\n32754,ship\n32755,cat\n32756,ship\n32757,deer\n32758,cat\n32759,automobile\n32760,truck\n32761,dog\n32762,dog\n32763,horse\n32764,ship\n32765,dog\n32766,automobile\n32767,truck\n32768,airplane\n32769,ship\n32770,cat\n32771,automobile\n32772,deer\n32773,deer\n32774,airplane\n32775,cat\n32776,deer\n32777,horse\n32778,deer\n32779,bird\n32780,cat\n32781,cat\n32782,frog\n32783,deer\n32784,horse\n32785,horse\n32786,automobile\n32787,frog\n32788,bird\n32789,dog\n32790,bird\n32791,truck\n32792,ship\n32793,frog\n32794,frog\n32795,frog\n32796,airplane\n32797,deer\n32798,truck\n32799,deer\n32800,deer\n32801,airplane\n32802,truck\n32803,deer\n32804,horse\n32805,dog\n32806,frog\n32807,bird\n32808,truck\n32809,deer\n32810,dog\n32811,ship\n32812,horse\n32813,truck\n32814,bird\n32815,automobile\n32816,truck\n32817,horse\n32818,cat\n32819,airplane\n32820,cat\n32821,automobile\n32822,deer\n32823,deer\n32824,truck\n32825,frog\n32826,truck\n32827,automobile\n32828,dog\n32829,bird\n32830,ship\n32831,deer\n32832,bird\n32833,deer\n32834,airplane\n32835,bird\n32836,truck\n32837,automobile\n32838,bird\n32839,bird\n32840,airplane\n32841,automobile\n32842,airplane\n32843,ship\n32844,cat\n32845,frog\n32846,truck\n32847,truck\n32848,automobile\n32849,airplane\n32850,cat\n32851,automobile\n32852,airplane\n32853,cat\n32854,deer\n32855,deer\n32856,bird\n32857,automobile\n32858,dog\n32859,dog\n32860,airplane\n32861,truck\n32862,airplane\n32863,airplane\n32864,ship\n32865,airplane\n32866,cat\n32867,dog\n32868,automobile\n32869,dog\n32870,frog\n32871,truck\n32872,horse\n32873,horse\n32874,airplane\n32875,dog\n32876,dog\n32877,cat\n32878,cat\n32879,deer\n32880,deer\n32881,truck\n32882,deer\n32883,horse\n32884,ship\n32885,cat\n32886,cat\n32887,airplane\n32888,deer\n32889,horse\n32890,frog\n32891,dog\n32892,automobile\n32893,cat\n32894,dog\n32895,frog\n32896,deer\n32897,dog\n32898,cat\n32899,truck\n32900,automobile\n32901,cat\n32902,truck\n32903,ship\n32904,horse\n32905,horse\n32906,bird\n32907,cat\n32908,deer\n32909,frog\n32910,frog\n32911,truck\n32912,bird\n32913,cat\n32914,cat\n32915,bird\n32916,truck\n32917,frog\n32918,dog\n32919,ship\n32920,automobile\n32921,airplane\n32922,automobile\n32923,dog\n32924,dog\n32925,ship\n32926,frog\n32927,horse\n32928,airplane\n32929,frog\n32930,ship\n32931,frog\n32932,deer\n32933,horse\n32934,deer\n32935,deer\n32936,airplane\n32937,horse\n32938,deer\n32939,deer\n32940,deer\n32941,bird\n32942,automobile\n32943,dog\n32944,dog\n32945,deer\n32946,automobile\n32947,frog\n32948,airplane\n32949,frog\n32950,cat\n32951,truck\n32952,frog\n32953,frog\n32954,ship\n32955,bird\n32956,ship\n32957,cat\n32958,frog\n32959,horse\n32960,frog\n32961,deer\n32962,bird\n32963,truck\n32964,bird\n32965,dog\n32966,cat\n32967,bird\n32968,airplane\n32969,cat\n32970,dog\n32971,truck\n32972,frog\n32973,deer\n32974,bird\n32975,frog\n32976,cat\n32977,bird\n32978,dog\n32979,cat\n32980,horse\n32981,cat\n32982,cat\n32983,bird\n32984,truck\n32985,frog\n32986,automobile\n32987,bird\n32988,truck\n32989,dog\n32990,cat\n32991,dog\n32992,bird\n32993,deer\n32994,deer\n32995,truck\n32996,dog\n32997,dog\n32998,truck\n32999,frog\n33000,cat\n33001,airplane\n33002,dog\n33003,dog\n33004,airplane\n33005,bird\n33006,dog\n33007,airplane\n33008,horse\n33009,dog\n33010,truck\n33011,bird\n33012,cat\n33013,frog\n33014,bird\n33015,frog\n33016,bird\n33017,deer\n33018,cat\n33019,airplane\n33020,truck\n33021,cat\n33022,ship\n33023,deer\n33024,bird\n33025,cat\n33026,dog\n33027,automobile\n33028,horse\n33029,airplane\n33030,dog\n33031,automobile\n33032,horse\n33033,frog\n33034,deer\n33035,dog\n33036,airplane\n33037,dog\n33038,frog\n33039,cat\n33040,frog\n33041,automobile\n33042,truck\n33043,ship\n33044,deer\n33045,deer\n33046,truck\n33047,dog\n33048,truck\n33049,deer\n33050,frog\n33051,deer\n33052,horse\n33053,ship\n33054,ship\n33055,frog\n33056,airplane\n33057,horse\n33058,ship\n33059,automobile\n33060,dog\n33061,dog\n33062,frog\n33063,deer\n33064,deer\n33065,ship\n33066,truck\n33067,cat\n33068,frog\n33069,deer\n33070,cat\n33071,airplane\n33072,horse\n33073,horse\n33074,automobile\n33075,horse\n33076,automobile\n33077,truck\n33078,deer\n33079,frog\n33080,automobile\n33081,airplane\n33082,bird\n33083,automobile\n33084,cat\n33085,bird\n33086,dog\n33087,airplane\n33088,ship\n33089,automobile\n33090,bird\n33091,horse\n33092,frog\n33093,ship\n33094,deer\n33095,truck\n33096,deer\n33097,automobile\n33098,airplane\n33099,airplane\n33100,horse\n33101,bird\n33102,frog\n33103,airplane\n33104,dog\n33105,truck\n33106,horse\n33107,cat\n33108,cat\n33109,dog\n33110,deer\n33111,deer\n33112,frog\n33113,automobile\n33114,ship\n33115,automobile\n33116,deer\n33117,bird\n33118,automobile\n33119,truck\n33120,cat\n33121,deer\n33122,dog\n33123,horse\n33124,airplane\n33125,truck\n33126,horse\n33127,truck\n33128,deer\n33129,deer\n33130,deer\n33131,deer\n33132,deer\n33133,bird\n33134,ship\n33135,truck\n33136,deer\n33137,automobile\n33138,frog\n33139,cat\n33140,bird\n33141,dog\n33142,truck\n33143,airplane\n33144,ship\n33145,bird\n33146,dog\n33147,airplane\n33148,dog\n33149,horse\n33150,dog\n33151,horse\n33152,airplane\n33153,frog\n33154,automobile\n33155,dog\n33156,truck\n33157,airplane\n33158,dog\n33159,dog\n33160,cat\n33161,ship\n33162,frog\n33163,airplane\n33164,frog\n33165,horse\n33166,bird\n33167,frog\n33168,frog\n33169,horse\n33170,truck\n33171,cat\n33172,deer\n33173,airplane\n33174,deer\n33175,horse\n33176,deer\n33177,ship\n33178,deer\n33179,deer\n33180,bird\n33181,deer\n33182,truck\n33183,frog\n33184,frog\n33185,horse\n33186,automobile\n33187,cat\n33188,horse\n33189,airplane\n33190,cat\n33191,automobile\n33192,cat\n33193,deer\n33194,ship\n33195,ship\n33196,airplane\n33197,deer\n33198,airplane\n33199,frog\n33200,dog\n33201,airplane\n33202,automobile\n33203,horse\n33204,bird\n33205,horse\n33206,frog\n33207,bird\n33208,automobile\n33209,cat\n33210,bird\n33211,airplane\n33212,frog\n33213,cat\n33214,automobile\n33215,truck\n33216,frog\n33217,deer\n33218,truck\n33219,truck\n33220,deer\n33221,automobile\n33222,truck\n33223,dog\n33224,deer\n33225,bird\n33226,truck\n33227,deer\n33228,dog\n33229,deer\n33230,cat\n33231,cat\n33232,automobile\n33233,cat\n33234,cat\n33235,deer\n33236,bird\n33237,airplane\n33238,cat\n33239,horse\n33240,dog\n33241,automobile\n33242,truck\n33243,horse\n33244,ship\n33245,deer\n33246,frog\n33247,cat\n33248,dog\n33249,ship\n33250,automobile\n33251,dog\n33252,bird\n33253,automobile\n33254,horse\n33255,ship\n33256,ship\n33257,horse\n33258,cat\n33259,ship\n33260,ship\n33261,horse\n33262,cat\n33263,frog\n33264,airplane\n33265,airplane\n33266,deer\n33267,frog\n33268,deer\n33269,automobile\n33270,cat\n33271,dog\n33272,automobile\n33273,ship\n33274,frog\n33275,dog\n33276,deer\n33277,automobile\n33278,truck\n33279,frog\n33280,deer\n33281,cat\n33282,deer\n33283,ship\n33284,bird\n33285,horse\n33286,horse\n33287,airplane\n33288,ship\n33289,cat\n33290,cat\n33291,frog\n33292,ship\n33293,cat\n33294,airplane\n33295,automobile\n33296,deer\n33297,horse\n33298,truck\n33299,horse\n33300,ship\n33301,deer\n33302,deer\n33303,frog\n33304,deer\n33305,ship\n33306,bird\n33307,bird\n33308,cat\n33309,bird\n33310,frog\n33311,frog\n33312,cat\n33313,deer\n33314,horse\n33315,truck\n33316,dog\n33317,horse\n33318,airplane\n33319,bird\n33320,deer\n33321,frog\n33322,airplane\n33323,cat\n33324,automobile\n33325,cat\n33326,frog\n33327,automobile\n33328,ship\n33329,dog\n33330,automobile\n33331,horse\n33332,airplane\n33333,cat\n33334,horse\n33335,cat\n33336,deer\n33337,ship\n33338,airplane\n33339,cat\n33340,automobile\n33341,airplane\n33342,ship\n33343,truck\n33344,horse\n33345,cat\n33346,truck\n33347,automobile\n33348,ship\n33349,cat\n33350,truck\n33351,bird\n33352,truck\n33353,bird\n33354,bird\n33355,deer\n33356,cat\n33357,automobile\n33358,ship\n33359,truck\n33360,horse\n33361,cat\n33362,truck\n33363,cat\n33364,cat\n33365,deer\n33366,horse\n33367,ship\n33368,truck\n33369,airplane\n33370,frog\n33371,deer\n33372,horse\n33373,dog\n33374,dog\n33375,deer\n33376,dog\n33377,frog\n33378,deer\n33379,automobile\n33380,deer\n33381,truck\n33382,deer\n33383,deer\n33384,cat\n33385,deer\n33386,airplane\n33387,cat\n33388,horse\n33389,deer\n33390,horse\n33391,deer\n33392,bird\n33393,cat\n33394,ship\n33395,dog\n33396,ship\n33397,airplane\n33398,cat\n33399,automobile\n33400,cat\n33401,frog\n33402,airplane\n33403,truck\n33404,horse\n33405,horse\n33406,deer\n33407,truck\n33408,cat\n33409,deer\n33410,bird\n33411,bird\n33412,deer\n33413,horse\n33414,truck\n33415,cat\n33416,truck\n33417,cat\n33418,dog\n33419,frog\n33420,airplane\n33421,dog\n33422,bird\n33423,cat\n33424,cat\n33425,airplane\n33426,ship\n33427,deer\n33428,airplane\n33429,dog\n33430,bird\n33431,airplane\n33432,truck\n33433,dog\n33434,dog\n33435,cat\n33436,ship\n33437,horse\n33438,automobile\n33439,automobile\n33440,cat\n33441,truck\n33442,truck\n33443,truck\n33444,deer\n33445,airplane\n33446,deer\n33447,bird\n33448,automobile\n33449,automobile\n33450,deer\n33451,horse\n33452,cat\n33453,horse\n33454,automobile\n33455,cat\n33456,ship\n33457,cat\n33458,horse\n33459,frog\n33460,ship\n33461,airplane\n33462,ship\n33463,cat\n33464,ship\n33465,dog\n33466,horse\n33467,truck\n33468,bird\n33469,cat\n33470,horse\n33471,horse\n33472,truck\n33473,bird\n33474,automobile\n33475,truck\n33476,cat\n33477,truck\n33478,airplane\n33479,airplane\n33480,ship\n33481,deer\n33482,truck\n33483,dog\n33484,deer\n33485,bird\n33486,deer\n33487,automobile\n33488,bird\n33489,truck\n33490,dog\n33491,ship\n33492,truck\n33493,frog\n33494,bird\n33495,bird\n33496,deer\n33497,horse\n33498,truck\n33499,deer\n33500,frog\n33501,automobile\n33502,airplane\n33503,horse\n33504,automobile\n33505,cat\n33506,deer\n33507,deer\n33508,dog\n33509,horse\n33510,deer\n33511,automobile\n33512,cat\n33513,horse\n33514,automobile\n33515,truck\n33516,truck\n33517,cat\n33518,cat\n33519,horse\n33520,bird\n33521,cat\n33522,ship\n33523,cat\n33524,cat\n33525,cat\n33526,cat\n33527,frog\n33528,horse\n33529,dog\n33530,frog\n33531,bird\n33532,horse\n33533,ship\n33534,ship\n33535,truck\n33536,frog\n33537,cat\n33538,deer\n33539,airplane\n33540,deer\n33541,horse\n33542,frog\n33543,ship\n33544,cat\n33545,bird\n33546,bird\n33547,horse\n33548,bird\n33549,ship\n33550,cat\n33551,horse\n33552,deer\n33553,dog\n33554,cat\n33555,deer\n33556,truck\n33557,dog\n33558,deer\n33559,cat\n33560,dog\n33561,ship\n33562,horse\n33563,deer\n33564,automobile\n33565,bird\n33566,deer\n33567,cat\n33568,bird\n33569,airplane\n33570,airplane\n33571,automobile\n33572,frog\n33573,deer\n33574,deer\n33575,horse\n33576,horse\n33577,frog\n33578,horse\n33579,airplane\n33580,airplane\n33581,cat\n33582,truck\n33583,deer\n33584,frog\n33585,automobile\n33586,cat\n33587,bird\n33588,cat\n33589,horse\n33590,deer\n33591,airplane\n33592,bird\n33593,truck\n33594,truck\n33595,frog\n33596,frog\n33597,ship\n33598,frog\n33599,dog\n33600,truck\n33601,airplane\n33602,frog\n33603,dog\n33604,automobile\n33605,automobile\n33606,deer\n33607,ship\n33608,deer\n33609,truck\n33610,automobile\n33611,ship\n33612,deer\n33613,frog\n33614,deer\n33615,horse\n33616,truck\n33617,deer\n33618,airplane\n33619,frog\n33620,ship\n33621,ship\n33622,horse\n33623,deer\n33624,horse\n33625,frog\n33626,dog\n33627,horse\n33628,bird\n33629,frog\n33630,horse\n33631,frog\n33632,dog\n33633,deer\n33634,horse\n33635,dog\n33636,automobile\n33637,cat\n33638,ship\n33639,dog\n33640,deer\n33641,automobile\n33642,airplane\n33643,cat\n33644,horse\n33645,truck\n33646,ship\n33647,truck\n33648,deer\n33649,bird\n33650,dog\n33651,dog\n33652,horse\n33653,horse\n33654,ship\n33655,truck\n33656,automobile\n33657,dog\n33658,dog\n33659,frog\n33660,frog\n33661,truck\n33662,deer\n33663,ship\n33664,ship\n33665,ship\n33666,airplane\n33667,deer\n33668,truck\n33669,frog\n33670,deer\n33671,deer\n33672,airplane\n33673,automobile\n33674,dog\n33675,horse\n33676,dog\n33677,dog\n33678,airplane\n33679,automobile\n33680,truck\n33681,dog\n33682,automobile\n33683,automobile\n33684,ship\n33685,cat\n33686,frog\n33687,cat\n33688,dog\n33689,bird\n33690,bird\n33691,truck\n33692,deer\n33693,frog\n33694,airplane\n33695,dog\n33696,frog\n33697,cat\n33698,frog\n33699,airplane\n33700,horse\n33701,ship\n33702,horse\n33703,bird\n33704,horse\n33705,dog\n33706,deer\n33707,frog\n33708,airplane\n33709,frog\n33710,airplane\n33711,airplane\n33712,airplane\n33713,truck\n33714,frog\n33715,deer\n33716,truck\n33717,truck\n33718,truck\n33719,bird\n33720,horse\n33721,truck\n33722,ship\n33723,deer\n33724,cat\n33725,horse\n33726,bird\n33727,deer\n33728,truck\n33729,deer\n33730,bird\n33731,cat\n33732,bird\n33733,cat\n33734,bird\n33735,airplane\n33736,cat\n33737,frog\n33738,automobile\n33739,automobile\n33740,dog\n33741,airplane\n33742,airplane\n33743,automobile\n33744,cat\n33745,automobile\n33746,horse\n33747,automobile\n33748,cat\n33749,deer\n33750,dog\n33751,dog\n33752,horse\n33753,bird\n33754,dog\n33755,automobile\n33756,dog\n33757,ship\n33758,truck\n33759,cat\n33760,deer\n33761,cat\n33762,frog\n33763,bird\n33764,ship\n33765,airplane\n33766,horse\n33767,cat\n33768,bird\n33769,frog\n33770,dog\n33771,truck\n33772,ship\n33773,frog\n33774,truck\n33775,cat\n33776,deer\n33777,airplane\n33778,ship\n33779,deer\n33780,cat\n33781,dog\n33782,airplane\n33783,ship\n33784,cat\n33785,truck\n33786,bird\n33787,bird\n33788,frog\n33789,ship\n33790,horse\n33791,ship\n33792,dog\n33793,bird\n33794,bird\n33795,deer\n33796,airplane\n33797,dog\n33798,ship\n33799,airplane\n33800,truck\n33801,horse\n33802,airplane\n33803,horse\n33804,bird\n33805,frog\n33806,horse\n33807,dog\n33808,dog\n33809,bird\n33810,cat\n33811,horse\n33812,cat\n33813,frog\n33814,ship\n33815,horse\n33816,deer\n33817,automobile\n33818,cat\n33819,deer\n33820,cat\n33821,ship\n33822,cat\n33823,frog\n33824,deer\n33825,horse\n33826,airplane\n33827,dog\n33828,airplane\n33829,dog\n33830,dog\n33831,frog\n33832,automobile\n33833,airplane\n33834,horse\n33835,cat\n33836,deer\n33837,deer\n33838,automobile\n33839,bird\n33840,horse\n33841,horse\n33842,horse\n33843,horse\n33844,airplane\n33845,airplane\n33846,dog\n33847,bird\n33848,frog\n33849,truck\n33850,deer\n33851,bird\n33852,truck\n33853,deer\n33854,ship\n33855,truck\n33856,bird\n33857,horse\n33858,truck\n33859,truck\n33860,automobile\n33861,deer\n33862,bird\n33863,truck\n33864,horse\n33865,automobile\n33866,dog\n33867,ship\n33868,automobile\n33869,cat\n33870,bird\n33871,deer\n33872,deer\n33873,bird\n33874,frog\n33875,deer\n33876,frog\n33877,bird\n33878,dog\n33879,truck\n33880,airplane\n33881,dog\n33882,horse\n33883,automobile\n33884,airplane\n33885,deer\n33886,ship\n33887,frog\n33888,truck\n33889,horse\n33890,deer\n33891,horse\n33892,cat\n33893,cat\n33894,dog\n33895,airplane\n33896,cat\n33897,bird\n33898,ship\n33899,horse\n33900,cat\n33901,frog\n33902,horse\n33903,deer\n33904,cat\n33905,airplane\n33906,airplane\n33907,deer\n33908,automobile\n33909,horse\n33910,cat\n33911,automobile\n33912,ship\n33913,deer\n33914,cat\n33915,dog\n33916,dog\n33917,cat\n33918,truck\n33919,deer\n33920,automobile\n33921,ship\n33922,frog\n33923,ship\n33924,cat\n33925,horse\n33926,dog\n33927,cat\n33928,bird\n33929,ship\n33930,ship\n33931,dog\n33932,cat\n33933,cat\n33934,dog\n33935,truck\n33936,automobile\n33937,cat\n33938,dog\n33939,airplane\n33940,horse\n33941,deer\n33942,cat\n33943,horse\n33944,dog\n33945,deer\n33946,frog\n33947,deer\n33948,horse\n33949,cat\n33950,dog\n33951,airplane\n33952,truck\n33953,bird\n33954,dog\n33955,horse\n33956,bird\n33957,airplane\n33958,ship\n33959,ship\n33960,deer\n33961,deer\n33962,dog\n33963,dog\n33964,frog\n33965,cat\n33966,airplane\n33967,truck\n33968,cat\n33969,dog\n33970,bird\n33971,cat\n33972,ship\n33973,frog\n33974,deer\n33975,ship\n33976,dog\n33977,bird\n33978,airplane\n33979,dog\n33980,truck\n33981,frog\n33982,airplane\n33983,frog\n33984,airplane\n33985,cat\n33986,bird\n33987,automobile\n33988,automobile\n33989,automobile\n33990,ship\n33991,dog\n33992,cat\n33993,dog\n33994,automobile\n33995,horse\n33996,airplane\n33997,deer\n33998,ship\n33999,horse\n34000,truck\n34001,deer\n34002,truck\n34003,cat\n34004,airplane\n34005,frog\n34006,airplane\n34007,dog\n34008,automobile\n34009,truck\n34010,horse\n34011,deer\n34012,dog\n34013,automobile\n34014,cat\n34015,deer\n34016,horse\n34017,airplane\n34018,deer\n34019,airplane\n34020,cat\n34021,automobile\n34022,truck\n34023,ship\n34024,dog\n34025,bird\n34026,ship\n34027,dog\n34028,airplane\n34029,airplane\n34030,automobile\n34031,horse\n34032,truck\n34033,dog\n34034,truck\n34035,ship\n34036,deer\n34037,automobile\n34038,frog\n34039,deer\n34040,automobile\n34041,deer\n34042,ship\n34043,horse\n34044,ship\n34045,dog\n34046,truck\n34047,cat\n34048,bird\n34049,frog\n34050,airplane\n34051,horse\n34052,bird\n34053,truck\n34054,deer\n34055,horse\n34056,deer\n34057,truck\n34058,cat\n34059,horse\n34060,airplane\n34061,dog\n34062,dog\n34063,deer\n34064,dog\n34065,ship\n34066,automobile\n34067,cat\n34068,truck\n34069,dog\n34070,bird\n34071,dog\n34072,frog\n34073,automobile\n34074,airplane\n34075,truck\n34076,horse\n34077,airplane\n34078,deer\n34079,ship\n34080,dog\n34081,cat\n34082,frog\n34083,frog\n34084,cat\n34085,deer\n34086,airplane\n34087,frog\n34088,horse\n34089,truck\n34090,frog\n34091,horse\n34092,bird\n34093,automobile\n34094,automobile\n34095,cat\n34096,airplane\n34097,dog\n34098,truck\n34099,airplane\n34100,truck\n34101,frog\n34102,truck\n34103,frog\n34104,airplane\n34105,ship\n34106,truck\n34107,airplane\n34108,truck\n34109,bird\n34110,bird\n34111,deer\n34112,bird\n34113,truck\n34114,deer\n34115,truck\n34116,cat\n34117,horse\n34118,cat\n34119,horse\n34120,deer\n34121,ship\n34122,truck\n34123,cat\n34124,frog\n34125,truck\n34126,cat\n34127,airplane\n34128,cat\n34129,cat\n34130,truck\n34131,airplane\n34132,cat\n34133,horse\n34134,frog\n34135,deer\n34136,deer\n34137,bird\n34138,truck\n34139,dog\n34140,truck\n34141,cat\n34142,cat\n34143,horse\n34144,bird\n34145,horse\n34146,frog\n34147,deer\n34148,frog\n34149,automobile\n34150,frog\n34151,cat\n34152,airplane\n34153,automobile\n34154,deer\n34155,deer\n34156,ship\n34157,truck\n34158,bird\n34159,ship\n34160,ship\n34161,bird\n34162,frog\n34163,truck\n34164,deer\n34165,frog\n34166,deer\n34167,horse\n34168,horse\n34169,bird\n34170,dog\n34171,dog\n34172,cat\n34173,ship\n34174,automobile\n34175,deer\n34176,truck\n34177,cat\n34178,bird\n34179,frog\n34180,cat\n34181,frog\n34182,ship\n34183,dog\n34184,dog\n34185,dog\n34186,cat\n34187,bird\n34188,airplane\n34189,dog\n34190,horse\n34191,cat\n34192,deer\n34193,bird\n34194,dog\n34195,horse\n34196,cat\n34197,dog\n34198,ship\n34199,dog\n34200,deer\n34201,deer\n34202,airplane\n34203,airplane\n34204,dog\n34205,deer\n34206,truck\n34207,truck\n34208,deer\n34209,cat\n34210,frog\n34211,airplane\n34212,bird\n34213,deer\n34214,cat\n34215,deer\n34216,bird\n34217,airplane\n34218,dog\n34219,deer\n34220,cat\n34221,cat\n34222,airplane\n34223,deer\n34224,deer\n34225,horse\n34226,automobile\n34227,frog\n34228,automobile\n34229,truck\n34230,horse\n34231,cat\n34232,cat\n34233,cat\n34234,truck\n34235,dog\n34236,deer\n34237,deer\n34238,horse\n34239,frog\n34240,cat\n34241,dog\n34242,bird\n34243,frog\n34244,truck\n34245,deer\n34246,cat\n34247,airplane\n34248,deer\n34249,truck\n34250,deer\n34251,automobile\n34252,automobile\n34253,automobile\n34254,ship\n34255,horse\n34256,cat\n34257,ship\n34258,airplane\n34259,bird\n34260,dog\n34261,deer\n34262,airplane\n34263,ship\n34264,bird\n34265,truck\n34266,frog\n34267,frog\n34268,deer\n34269,truck\n34270,horse\n34271,truck\n34272,truck\n34273,deer\n34274,truck\n34275,bird\n34276,dog\n34277,ship\n34278,ship\n34279,ship\n34280,airplane\n34281,ship\n34282,horse\n34283,airplane\n34284,dog\n34285,airplane\n34286,ship\n34287,frog\n34288,truck\n34289,airplane\n34290,airplane\n34291,ship\n34292,dog\n34293,airplane\n34294,cat\n34295,horse\n34296,ship\n34297,dog\n34298,bird\n34299,deer\n34300,horse\n34301,deer\n34302,airplane\n34303,deer\n34304,automobile\n34305,cat\n34306,dog\n34307,bird\n34308,bird\n34309,frog\n34310,ship\n34311,cat\n34312,ship\n34313,frog\n34314,airplane\n34315,airplane\n34316,bird\n34317,horse\n34318,automobile\n34319,horse\n34320,horse\n34321,cat\n34322,cat\n34323,ship\n34324,truck\n34325,horse\n34326,airplane\n34327,truck\n34328,deer\n34329,horse\n34330,bird\n34331,bird\n34332,bird\n34333,bird\n34334,airplane\n34335,deer\n34336,dog\n34337,dog\n34338,dog\n34339,ship\n34340,deer\n34341,bird\n34342,deer\n34343,horse\n34344,horse\n34345,truck\n34346,deer\n34347,deer\n34348,truck\n34349,horse\n34350,cat\n34351,dog\n34352,bird\n34353,truck\n34354,automobile\n34355,cat\n34356,deer\n34357,truck\n34358,horse\n34359,horse\n34360,horse\n34361,truck\n34362,cat\n34363,ship\n34364,cat\n34365,bird\n34366,bird\n34367,dog\n34368,frog\n34369,cat\n34370,cat\n34371,airplane\n34372,frog\n34373,deer\n34374,horse\n34375,automobile\n34376,truck\n34377,airplane\n34378,truck\n34379,horse\n34380,dog\n34381,cat\n34382,airplane\n34383,frog\n34384,cat\n34385,frog\n34386,airplane\n34387,airplane\n34388,cat\n34389,truck\n34390,bird\n34391,dog\n34392,cat\n34393,ship\n34394,frog\n34395,ship\n34396,cat\n34397,cat\n34398,ship\n34399,horse\n34400,truck\n34401,dog\n34402,truck\n34403,bird\n34404,deer\n34405,deer\n34406,deer\n34407,bird\n34408,frog\n34409,deer\n34410,truck\n34411,frog\n34412,automobile\n34413,ship\n34414,ship\n34415,frog\n34416,ship\n34417,cat\n34418,frog\n34419,deer\n34420,bird\n34421,airplane\n34422,deer\n34423,deer\n34424,ship\n34425,deer\n34426,truck\n34427,horse\n34428,truck\n34429,bird\n34430,frog\n34431,deer\n34432,ship\n34433,horse\n34434,cat\n34435,truck\n34436,truck\n34437,horse\n34438,ship\n34439,bird\n34440,deer\n34441,ship\n34442,deer\n34443,frog\n34444,ship\n34445,airplane\n34446,automobile\n34447,horse\n34448,dog\n34449,truck\n34450,bird\n34451,deer\n34452,cat\n34453,truck\n34454,automobile\n34455,bird\n34456,bird\n34457,ship\n34458,frog\n34459,bird\n34460,bird\n34461,cat\n34462,horse\n34463,dog\n34464,bird\n34465,cat\n34466,dog\n34467,airplane\n34468,deer\n34469,ship\n34470,ship\n34471,deer\n34472,dog\n34473,bird\n34474,ship\n34475,ship\n34476,deer\n34477,frog\n34478,deer\n34479,deer\n34480,frog\n34481,airplane\n34482,frog\n34483,airplane\n34484,cat\n34485,cat\n34486,dog\n34487,frog\n34488,airplane\n34489,bird\n34490,automobile\n34491,airplane\n34492,truck\n34493,ship\n34494,bird\n34495,bird\n34496,cat\n34497,cat\n34498,deer\n34499,bird\n34500,airplane\n34501,cat\n34502,deer\n34503,cat\n34504,horse\n34505,truck\n34506,horse\n34507,deer\n34508,bird\n34509,truck\n34510,horse\n34511,automobile\n34512,deer\n34513,ship\n34514,bird\n34515,deer\n34516,deer\n34517,automobile\n34518,frog\n34519,automobile\n34520,dog\n34521,deer\n34522,bird\n34523,deer\n34524,dog\n34525,horse\n34526,dog\n34527,deer\n34528,deer\n34529,horse\n34530,horse\n34531,frog\n34532,automobile\n34533,frog\n34534,ship\n34535,bird\n34536,truck\n34537,frog\n34538,deer\n34539,horse\n34540,deer\n34541,bird\n34542,deer\n34543,deer\n34544,automobile\n34545,truck\n34546,bird\n34547,cat\n34548,truck\n34549,horse\n34550,frog\n34551,automobile\n34552,dog\n34553,bird\n34554,horse\n34555,deer\n34556,truck\n34557,dog\n34558,airplane\n34559,cat\n34560,deer\n34561,dog\n34562,frog\n34563,cat\n34564,deer\n34565,deer\n34566,cat\n34567,deer\n34568,horse\n34569,horse\n34570,truck\n34571,airplane\n34572,dog\n34573,bird\n34574,deer\n34575,cat\n34576,deer\n34577,ship\n34578,frog\n34579,cat\n34580,horse\n34581,deer\n34582,dog\n34583,airplane\n34584,cat\n34585,bird\n34586,dog\n34587,airplane\n34588,bird\n34589,automobile\n34590,deer\n34591,cat\n34592,frog\n34593,frog\n34594,airplane\n34595,truck\n34596,truck\n34597,horse\n34598,horse\n34599,deer\n34600,bird\n34601,airplane\n34602,bird\n34603,cat\n34604,automobile\n34605,automobile\n34606,automobile\n34607,frog\n34608,horse\n34609,automobile\n34610,cat\n34611,bird\n34612,airplane\n34613,deer\n34614,dog\n34615,truck\n34616,deer\n34617,bird\n34618,bird\n34619,airplane\n34620,cat\n34621,truck\n34622,frog\n34623,ship\n34624,horse\n34625,dog\n34626,truck\n34627,cat\n34628,cat\n34629,deer\n34630,automobile\n34631,frog\n34632,automobile\n34633,ship\n34634,ship\n34635,cat\n34636,frog\n34637,truck\n34638,automobile\n34639,frog\n34640,ship\n34641,automobile\n34642,deer\n34643,deer\n34644,cat\n34645,horse\n34646,frog\n34647,ship\n34648,cat\n34649,dog\n34650,horse\n34651,horse\n34652,cat\n34653,airplane\n34654,frog\n34655,frog\n34656,truck\n34657,ship\n34658,frog\n34659,frog\n34660,frog\n34661,ship\n34662,dog\n34663,truck\n34664,frog\n34665,airplane\n34666,bird\n34667,frog\n34668,airplane\n34669,bird\n34670,horse\n34671,truck\n34672,horse\n34673,truck\n34674,cat\n34675,truck\n34676,truck\n34677,cat\n34678,frog\n34679,ship\n34680,bird\n34681,frog\n34682,cat\n34683,horse\n34684,bird\n34685,cat\n34686,horse\n34687,dog\n34688,dog\n34689,ship\n34690,horse\n34691,airplane\n34692,frog\n34693,deer\n34694,bird\n34695,cat\n34696,dog\n34697,cat\n34698,ship\n34699,automobile\n34700,truck\n34701,deer\n34702,ship\n34703,automobile\n34704,deer\n34705,truck\n34706,deer\n34707,frog\n34708,dog\n34709,horse\n34710,truck\n34711,horse\n34712,bird\n34713,cat\n34714,bird\n34715,deer\n34716,bird\n34717,cat\n34718,deer\n34719,cat\n34720,cat\n34721,bird\n34722,frog\n34723,truck\n34724,automobile\n34725,deer\n34726,frog\n34727,dog\n34728,cat\n34729,dog\n34730,airplane\n34731,truck\n34732,frog\n34733,bird\n34734,truck\n34735,horse\n34736,horse\n34737,dog\n34738,dog\n34739,dog\n34740,deer\n34741,deer\n34742,automobile\n34743,dog\n34744,horse\n34745,frog\n34746,airplane\n34747,bird\n34748,truck\n34749,bird\n34750,bird\n34751,airplane\n34752,bird\n34753,automobile\n34754,dog\n34755,dog\n34756,cat\n34757,deer\n34758,cat\n34759,ship\n34760,ship\n34761,automobile\n34762,deer\n34763,airplane\n34764,airplane\n34765,truck\n34766,deer\n34767,horse\n34768,ship\n34769,truck\n34770,ship\n34771,bird\n34772,cat\n34773,deer\n34774,bird\n34775,bird\n34776,automobile\n34777,dog\n34778,frog\n34779,cat\n34780,ship\n34781,horse\n34782,frog\n34783,frog\n34784,automobile\n34785,deer\n34786,deer\n34787,deer\n34788,cat\n34789,deer\n34790,horse\n34791,automobile\n34792,frog\n34793,truck\n34794,deer\n34795,truck\n34796,truck\n34797,frog\n34798,horse\n34799,cat\n34800,deer\n34801,horse\n34802,horse\n34803,airplane\n34804,horse\n34805,bird\n34806,frog\n34807,ship\n34808,dog\n34809,deer\n34810,automobile\n34811,dog\n34812,ship\n34813,deer\n34814,airplane\n34815,bird\n34816,frog\n34817,bird\n34818,cat\n34819,airplane\n34820,automobile\n34821,airplane\n34822,automobile\n34823,truck\n34824,frog\n34825,frog\n34826,ship\n34827,airplane\n34828,cat\n34829,truck\n34830,cat\n34831,frog\n34832,deer\n34833,horse\n34834,truck\n34835,automobile\n34836,airplane\n34837,deer\n34838,truck\n34839,deer\n34840,airplane\n34841,frog\n34842,bird\n34843,truck\n34844,truck\n34845,ship\n34846,deer\n34847,airplane\n34848,frog\n34849,deer\n34850,frog\n34851,airplane\n34852,horse\n34853,cat\n34854,airplane\n34855,bird\n34856,ship\n34857,ship\n34858,cat\n34859,dog\n34860,deer\n34861,bird\n34862,horse\n34863,frog\n34864,bird\n34865,automobile\n34866,dog\n34867,cat\n34868,cat\n34869,truck\n34870,airplane\n34871,cat\n34872,horse\n34873,bird\n34874,horse\n34875,airplane\n34876,dog\n34877,truck\n34878,cat\n34879,truck\n34880,deer\n34881,automobile\n34882,frog\n34883,frog\n34884,frog\n34885,cat\n34886,cat\n34887,airplane\n34888,cat\n34889,automobile\n34890,ship\n34891,deer\n34892,cat\n34893,dog\n34894,deer\n34895,cat\n34896,frog\n34897,automobile\n34898,dog\n34899,truck\n34900,cat\n34901,cat\n34902,airplane\n34903,airplane\n34904,frog\n34905,frog\n34906,horse\n34907,deer\n34908,dog\n34909,cat\n34910,ship\n34911,bird\n34912,dog\n34913,frog\n34914,airplane\n34915,truck\n34916,airplane\n34917,bird\n34918,airplane\n34919,ship\n34920,ship\n34921,truck\n34922,cat\n34923,horse\n34924,cat\n34925,cat\n34926,truck\n34927,bird\n34928,bird\n34929,airplane\n34930,deer\n34931,dog\n34932,dog\n34933,cat\n34934,bird\n34935,frog\n34936,automobile\n34937,deer\n34938,airplane\n34939,dog\n34940,deer\n34941,automobile\n34942,deer\n34943,ship\n34944,bird\n34945,truck\n34946,deer\n34947,airplane\n34948,frog\n34949,dog\n34950,dog\n34951,automobile\n34952,frog\n34953,frog\n34954,bird\n34955,frog\n34956,horse\n34957,cat\n34958,ship\n34959,cat\n34960,deer\n34961,frog\n34962,dog\n34963,bird\n34964,frog\n34965,cat\n34966,horse\n34967,cat\n34968,airplane\n34969,dog\n34970,cat\n34971,cat\n34972,ship\n34973,deer\n34974,frog\n34975,frog\n34976,automobile\n34977,airplane\n34978,cat\n34979,frog\n34980,automobile\n34981,horse\n34982,truck\n34983,automobile\n34984,deer\n34985,frog\n34986,truck\n34987,ship\n34988,airplane\n34989,cat\n34990,frog\n34991,dog\n34992,dog\n34993,dog\n34994,frog\n34995,truck\n34996,frog\n34997,deer\n34998,horse\n34999,ship\n35000,airplane\n35001,truck\n35002,airplane\n35003,cat\n35004,deer\n35005,bird\n35006,ship\n35007,deer\n35008,deer\n35009,truck\n35010,bird\n35011,truck\n35012,frog\n35013,automobile\n35014,frog\n35015,truck\n35016,truck\n35017,cat\n35018,truck\n35019,cat\n35020,dog\n35021,automobile\n35022,dog\n35023,cat\n35024,ship\n35025,cat\n35026,frog\n35027,truck\n35028,horse\n35029,deer\n35030,frog\n35031,deer\n35032,truck\n35033,ship\n35034,automobile\n35035,horse\n35036,deer\n35037,dog\n35038,frog\n35039,horse\n35040,deer\n35041,ship\n35042,ship\n35043,horse\n35044,automobile\n35045,deer\n35046,dog\n35047,frog\n35048,bird\n35049,cat\n35050,deer\n35051,ship\n35052,bird\n35053,cat\n35054,cat\n35055,bird\n35056,dog\n35057,airplane\n35058,horse\n35059,truck\n35060,automobile\n35061,deer\n35062,deer\n35063,dog\n35064,deer\n35065,automobile\n35066,dog\n35067,deer\n35068,cat\n35069,dog\n35070,airplane\n35071,truck\n35072,automobile\n35073,truck\n35074,dog\n35075,airplane\n35076,dog\n35077,frog\n35078,horse\n35079,airplane\n35080,deer\n35081,cat\n35082,airplane\n35083,automobile\n35084,horse\n35085,airplane\n35086,automobile\n35087,bird\n35088,dog\n35089,bird\n35090,frog\n35091,automobile\n35092,cat\n35093,airplane\n35094,deer\n35095,bird\n35096,ship\n35097,deer\n35098,bird\n35099,horse\n35100,deer\n35101,horse\n35102,automobile\n35103,cat\n35104,deer\n35105,truck\n35106,automobile\n35107,dog\n35108,frog\n35109,automobile\n35110,frog\n35111,truck\n35112,airplane\n35113,horse\n35114,cat\n35115,bird\n35116,dog\n35117,frog\n35118,airplane\n35119,frog\n35120,frog\n35121,dog\n35122,truck\n35123,airplane\n35124,cat\n35125,bird\n35126,bird\n35127,ship\n35128,airplane\n35129,airplane\n35130,airplane\n35131,deer\n35132,dog\n35133,automobile\n35134,ship\n35135,horse\n35136,cat\n35137,dog\n35138,truck\n35139,truck\n35140,automobile\n35141,frog\n35142,deer\n35143,bird\n35144,airplane\n35145,truck\n35146,cat\n35147,frog\n35148,dog\n35149,cat\n35150,cat\n35151,bird\n35152,deer\n35153,horse\n35154,truck\n35155,airplane\n35156,deer\n35157,truck\n35158,bird\n35159,cat\n35160,horse\n35161,horse\n35162,cat\n35163,truck\n35164,cat\n35165,truck\n35166,truck\n35167,dog\n35168,automobile\n35169,bird\n35170,cat\n35171,cat\n35172,airplane\n35173,automobile\n35174,truck\n35175,truck\n35176,ship\n35177,cat\n35178,deer\n35179,dog\n35180,airplane\n35181,ship\n35182,deer\n35183,cat\n35184,truck\n35185,cat\n35186,deer\n35187,ship\n35188,truck\n35189,airplane\n35190,frog\n35191,truck\n35192,deer\n35193,cat\n35194,cat\n35195,dog\n35196,cat\n35197,cat\n35198,cat\n35199,bird\n35200,cat\n35201,horse\n35202,cat\n35203,cat\n35204,airplane\n35205,truck\n35206,automobile\n35207,airplane\n35208,cat\n35209,truck\n35210,frog\n35211,deer\n35212,truck\n35213,dog\n35214,bird\n35215,automobile\n35216,truck\n35217,truck\n35218,ship\n35219,ship\n35220,dog\n35221,deer\n35222,deer\n35223,truck\n35224,frog\n35225,deer\n35226,automobile\n35227,cat\n35228,automobile\n35229,deer\n35230,automobile\n35231,airplane\n35232,ship\n35233,dog\n35234,dog\n35235,cat\n35236,truck\n35237,dog\n35238,cat\n35239,horse\n35240,deer\n35241,ship\n35242,bird\n35243,ship\n35244,bird\n35245,frog\n35246,bird\n35247,automobile\n35248,frog\n35249,cat\n35250,automobile\n35251,ship\n35252,deer\n35253,deer\n35254,truck\n35255,horse\n35256,cat\n35257,airplane\n35258,ship\n35259,horse\n35260,deer\n35261,deer\n35262,frog\n35263,frog\n35264,horse\n35265,deer\n35266,dog\n35267,frog\n35268,deer\n35269,truck\n35270,bird\n35271,deer\n35272,cat\n35273,ship\n35274,cat\n35275,horse\n35276,cat\n35277,truck\n35278,horse\n35279,airplane\n35280,deer\n35281,frog\n35282,automobile\n35283,cat\n35284,bird\n35285,cat\n35286,automobile\n35287,cat\n35288,cat\n35289,frog\n35290,deer\n35291,cat\n35292,truck\n35293,bird\n35294,automobile\n35295,truck\n35296,cat\n35297,cat\n35298,deer\n35299,horse\n35300,truck\n35301,horse\n35302,airplane\n35303,deer\n35304,cat\n35305,airplane\n35306,dog\n35307,frog\n35308,horse\n35309,deer\n35310,airplane\n35311,cat\n35312,bird\n35313,deer\n35314,frog\n35315,dog\n35316,cat\n35317,truck\n35318,frog\n35319,ship\n35320,truck\n35321,cat\n35322,frog\n35323,bird\n35324,truck\n35325,deer\n35326,truck\n35327,truck\n35328,horse\n35329,deer\n35330,frog\n35331,dog\n35332,deer\n35333,dog\n35334,ship\n35335,deer\n35336,ship\n35337,horse\n35338,dog\n35339,cat\n35340,bird\n35341,frog\n35342,automobile\n35343,dog\n35344,deer\n35345,dog\n35346,bird\n35347,automobile\n35348,deer\n35349,truck\n35350,bird\n35351,bird\n35352,bird\n35353,deer\n35354,truck\n35355,bird\n35356,airplane\n35357,bird\n35358,airplane\n35359,airplane\n35360,truck\n35361,cat\n35362,deer\n35363,airplane\n35364,dog\n35365,bird\n35366,frog\n35367,airplane\n35368,cat\n35369,cat\n35370,horse\n35371,dog\n35372,cat\n35373,deer\n35374,cat\n35375,bird\n35376,airplane\n35377,bird\n35378,dog\n35379,truck\n35380,truck\n35381,deer\n35382,ship\n35383,frog\n35384,truck\n35385,ship\n35386,airplane\n35387,bird\n35388,deer\n35389,truck\n35390,cat\n35391,dog\n35392,dog\n35393,truck\n35394,ship\n35395,cat\n35396,truck\n35397,automobile\n35398,deer\n35399,deer\n35400,automobile\n35401,truck\n35402,truck\n35403,automobile\n35404,horse\n35405,cat\n35406,frog\n35407,deer\n35408,deer\n35409,horse\n35410,horse\n35411,cat\n35412,automobile\n35413,dog\n35414,truck\n35415,cat\n35416,bird\n35417,truck\n35418,automobile\n35419,frog\n35420,deer\n35421,horse\n35422,cat\n35423,cat\n35424,frog\n35425,dog\n35426,horse\n35427,cat\n35428,automobile\n35429,dog\n35430,automobile\n35431,deer\n35432,truck\n35433,ship\n35434,automobile\n35435,cat\n35436,ship\n35437,truck\n35438,deer\n35439,airplane\n35440,truck\n35441,airplane\n35442,dog\n35443,truck\n35444,frog\n35445,deer\n35446,cat\n35447,dog\n35448,bird\n35449,bird\n35450,frog\n35451,airplane\n35452,deer\n35453,horse\n35454,bird\n35455,cat\n35456,ship\n35457,ship\n35458,truck\n35459,horse\n35460,deer\n35461,ship\n35462,truck\n35463,horse\n35464,truck\n35465,horse\n35466,deer\n35467,horse\n35468,horse\n35469,automobile\n35470,bird\n35471,deer\n35472,deer\n35473,automobile\n35474,deer\n35475,frog\n35476,frog\n35477,ship\n35478,truck\n35479,deer\n35480,bird\n35481,cat\n35482,bird\n35483,frog\n35484,truck\n35485,airplane\n35486,deer\n35487,automobile\n35488,truck\n35489,airplane\n35490,truck\n35491,ship\n35492,dog\n35493,bird\n35494,ship\n35495,truck\n35496,deer\n35497,frog\n35498,cat\n35499,dog\n35500,bird\n35501,truck\n35502,truck\n35503,truck\n35504,automobile\n35505,frog\n35506,dog\n35507,airplane\n35508,automobile\n35509,frog\n35510,frog\n35511,bird\n35512,ship\n35513,ship\n35514,airplane\n35515,ship\n35516,cat\n35517,airplane\n35518,cat\n35519,cat\n35520,dog\n35521,automobile\n35522,deer\n35523,ship\n35524,airplane\n35525,frog\n35526,bird\n35527,truck\n35528,ship\n35529,bird\n35530,cat\n35531,airplane\n35532,deer\n35533,deer\n35534,automobile\n35535,airplane\n35536,deer\n35537,airplane\n35538,frog\n35539,cat\n35540,dog\n35541,ship\n35542,dog\n35543,automobile\n35544,airplane\n35545,cat\n35546,truck\n35547,dog\n35548,cat\n35549,ship\n35550,frog\n35551,airplane\n35552,ship\n35553,dog\n35554,bird\n35555,automobile\n35556,truck\n35557,truck\n35558,ship\n35559,truck\n35560,truck\n35561,deer\n35562,cat\n35563,airplane\n35564,horse\n35565,deer\n35566,frog\n35567,horse\n35568,horse\n35569,deer\n35570,ship\n35571,horse\n35572,bird\n35573,truck\n35574,cat\n35575,truck\n35576,airplane\n35577,dog\n35578,horse\n35579,bird\n35580,automobile\n35581,dog\n35582,ship\n35583,dog\n35584,cat\n35585,automobile\n35586,truck\n35587,cat\n35588,truck\n35589,truck\n35590,truck\n35591,ship\n35592,bird\n35593,dog\n35594,airplane\n35595,cat\n35596,ship\n35597,horse\n35598,dog\n35599,airplane\n35600,ship\n35601,airplane\n35602,automobile\n35603,bird\n35604,horse\n35605,frog\n35606,ship\n35607,airplane\n35608,airplane\n35609,airplane\n35610,truck\n35611,airplane\n35612,cat\n35613,airplane\n35614,dog\n35615,automobile\n35616,cat\n35617,dog\n35618,truck\n35619,horse\n35620,ship\n35621,cat\n35622,horse\n35623,truck\n35624,airplane\n35625,deer\n35626,bird\n35627,airplane\n35628,ship\n35629,dog\n35630,cat\n35631,frog\n35632,ship\n35633,deer\n35634,horse\n35635,horse\n35636,bird\n35637,deer\n35638,cat\n35639,dog\n35640,automobile\n35641,frog\n35642,deer\n35643,ship\n35644,horse\n35645,bird\n35646,dog\n35647,airplane\n35648,automobile\n35649,dog\n35650,horse\n35651,deer\n35652,deer\n35653,truck\n35654,frog\n35655,horse\n35656,automobile\n35657,dog\n35658,cat\n35659,dog\n35660,automobile\n35661,ship\n35662,deer\n35663,frog\n35664,dog\n35665,deer\n35666,dog\n35667,dog\n35668,automobile\n35669,dog\n35670,cat\n35671,airplane\n35672,horse\n35673,truck\n35674,frog\n35675,truck\n35676,ship\n35677,deer\n35678,horse\n35679,automobile\n35680,automobile\n35681,truck\n35682,truck\n35683,deer\n35684,bird\n35685,airplane\n35686,bird\n35687,deer\n35688,truck\n35689,airplane\n35690,horse\n35691,cat\n35692,frog\n35693,automobile\n35694,ship\n35695,frog\n35696,automobile\n35697,horse\n35698,bird\n35699,dog\n35700,cat\n35701,deer\n35702,dog\n35703,horse\n35704,frog\n35705,cat\n35706,deer\n35707,cat\n35708,frog\n35709,truck\n35710,dog\n35711,deer\n35712,dog\n35713,truck\n35714,truck\n35715,dog\n35716,frog\n35717,ship\n35718,cat\n35719,dog\n35720,deer\n35721,horse\n35722,deer\n35723,cat\n35724,frog\n35725,deer\n35726,truck\n35727,frog\n35728,truck\n35729,truck\n35730,deer\n35731,horse\n35732,cat\n35733,dog\n35734,deer\n35735,horse\n35736,deer\n35737,automobile\n35738,airplane\n35739,bird\n35740,cat\n35741,deer\n35742,truck\n35743,frog\n35744,dog\n35745,truck\n35746,airplane\n35747,deer\n35748,deer\n35749,bird\n35750,airplane\n35751,horse\n35752,bird\n35753,horse\n35754,airplane\n35755,deer\n35756,frog\n35757,frog\n35758,bird\n35759,cat\n35760,truck\n35761,cat\n35762,truck\n35763,truck\n35764,automobile\n35765,frog\n35766,ship\n35767,cat\n35768,horse\n35769,cat\n35770,deer\n35771,deer\n35772,ship\n35773,deer\n35774,truck\n35775,automobile\n35776,dog\n35777,cat\n35778,dog\n35779,horse\n35780,bird\n35781,deer\n35782,bird\n35783,automobile\n35784,truck\n35785,ship\n35786,bird\n35787,ship\n35788,horse\n35789,ship\n35790,cat\n35791,frog\n35792,dog\n35793,dog\n35794,deer\n35795,deer\n35796,frog\n35797,horse\n35798,cat\n35799,frog\n35800,deer\n35801,deer\n35802,truck\n35803,ship\n35804,frog\n35805,airplane\n35806,automobile\n35807,frog\n35808,deer\n35809,cat\n35810,truck\n35811,truck\n35812,cat\n35813,truck\n35814,airplane\n35815,automobile\n35816,dog\n35817,cat\n35818,automobile\n35819,automobile\n35820,frog\n35821,frog\n35822,cat\n35823,bird\n35824,frog\n35825,automobile\n35826,deer\n35827,frog\n35828,bird\n35829,ship\n35830,truck\n35831,bird\n35832,frog\n35833,frog\n35834,truck\n35835,dog\n35836,ship\n35837,horse\n35838,cat\n35839,frog\n35840,cat\n35841,deer\n35842,horse\n35843,ship\n35844,deer\n35845,cat\n35846,cat\n35847,frog\n35848,deer\n35849,frog\n35850,automobile\n35851,truck\n35852,truck\n35853,frog\n35854,bird\n35855,truck\n35856,ship\n35857,bird\n35858,automobile\n35859,dog\n35860,cat\n35861,frog\n35862,truck\n35863,ship\n35864,cat\n35865,dog\n35866,horse\n35867,ship\n35868,dog\n35869,dog\n35870,dog\n35871,cat\n35872,automobile\n35873,horse\n35874,bird\n35875,ship\n35876,truck\n35877,frog\n35878,dog\n35879,ship\n35880,dog\n35881,frog\n35882,truck\n35883,ship\n35884,dog\n35885,deer\n35886,deer\n35887,automobile\n35888,airplane\n35889,automobile\n35890,truck\n35891,dog\n35892,frog\n35893,dog\n35894,cat\n35895,frog\n35896,deer\n35897,horse\n35898,ship\n35899,deer\n35900,frog\n35901,truck\n35902,cat\n35903,truck\n35904,horse\n35905,frog\n35906,ship\n35907,cat\n35908,dog\n35909,deer\n35910,dog\n35911,automobile\n35912,truck\n35913,cat\n35914,automobile\n35915,automobile\n35916,horse\n35917,automobile\n35918,bird\n35919,deer\n35920,deer\n35921,deer\n35922,dog\n35923,bird\n35924,airplane\n35925,frog\n35926,ship\n35927,deer\n35928,deer\n35929,truck\n35930,truck\n35931,cat\n35932,deer\n35933,airplane\n35934,frog\n35935,automobile\n35936,automobile\n35937,automobile\n35938,airplane\n35939,ship\n35940,automobile\n35941,truck\n35942,bird\n35943,automobile\n35944,horse\n35945,truck\n35946,airplane\n35947,ship\n35948,automobile\n35949,dog\n35950,bird\n35951,truck\n35952,automobile\n35953,bird\n35954,dog\n35955,deer\n35956,horse\n35957,dog\n35958,cat\n35959,dog\n35960,horse\n35961,ship\n35962,truck\n35963,ship\n35964,ship\n35965,horse\n35966,ship\n35967,bird\n35968,dog\n35969,frog\n35970,deer\n35971,automobile\n35972,ship\n35973,cat\n35974,frog\n35975,cat\n35976,frog\n35977,ship\n35978,ship\n35979,bird\n35980,deer\n35981,frog\n35982,horse\n35983,frog\n35984,deer\n35985,bird\n35986,automobile\n35987,ship\n35988,truck\n35989,deer\n35990,dog\n35991,ship\n35992,automobile\n35993,horse\n35994,deer\n35995,frog\n35996,deer\n35997,dog\n35998,cat\n35999,airplane\n36000,deer\n36001,bird\n36002,frog\n36003,dog\n36004,frog\n36005,automobile\n36006,truck\n36007,cat\n36008,dog\n36009,ship\n36010,truck\n36011,deer\n36012,deer\n36013,frog\n36014,cat\n36015,bird\n36016,bird\n36017,horse\n36018,deer\n36019,dog\n36020,cat\n36021,cat\n36022,airplane\n36023,deer\n36024,airplane\n36025,cat\n36026,frog\n36027,deer\n36028,truck\n36029,horse\n36030,truck\n36031,truck\n36032,frog\n36033,frog\n36034,deer\n36035,horse\n36036,dog\n36037,deer\n36038,dog\n36039,horse\n36040,bird\n36041,frog\n36042,deer\n36043,deer\n36044,deer\n36045,airplane\n36046,truck\n36047,ship\n36048,horse\n36049,deer\n36050,cat\n36051,bird\n36052,ship\n36053,ship\n36054,airplane\n36055,dog\n36056,airplane\n36057,automobile\n36058,automobile\n36059,cat\n36060,airplane\n36061,cat\n36062,dog\n36063,truck\n36064,cat\n36065,bird\n36066,ship\n36067,truck\n36068,frog\n36069,cat\n36070,horse\n36071,cat\n36072,truck\n36073,dog\n36074,deer\n36075,horse\n36076,ship\n36077,horse\n36078,deer\n36079,frog\n36080,airplane\n36081,frog\n36082,ship\n36083,truck\n36084,deer\n36085,frog\n36086,cat\n36087,horse\n36088,bird\n36089,ship\n36090,frog\n36091,dog\n36092,bird\n36093,cat\n36094,bird\n36095,horse\n36096,bird\n36097,bird\n36098,ship\n36099,ship\n36100,cat\n36101,ship\n36102,airplane\n36103,bird\n36104,horse\n36105,deer\n36106,automobile\n36107,cat\n36108,bird\n36109,truck\n36110,automobile\n36111,truck\n36112,deer\n36113,bird\n36114,cat\n36115,dog\n36116,automobile\n36117,frog\n36118,bird\n36119,ship\n36120,truck\n36121,deer\n36122,bird\n36123,truck\n36124,deer\n36125,dog\n36126,horse\n36127,cat\n36128,truck\n36129,cat\n36130,deer\n36131,ship\n36132,cat\n36133,deer\n36134,bird\n36135,bird\n36136,ship\n36137,deer\n36138,frog\n36139,airplane\n36140,frog\n36141,frog\n36142,horse\n36143,dog\n36144,cat\n36145,cat\n36146,horse\n36147,dog\n36148,bird\n36149,frog\n36150,truck\n36151,automobile\n36152,bird\n36153,truck\n36154,cat\n36155,airplane\n36156,automobile\n36157,frog\n36158,deer\n36159,horse\n36160,cat\n36161,automobile\n36162,automobile\n36163,bird\n36164,airplane\n36165,airplane\n36166,ship\n36167,bird\n36168,deer\n36169,deer\n36170,deer\n36171,dog\n36172,ship\n36173,frog\n36174,ship\n36175,airplane\n36176,deer\n36177,dog\n36178,cat\n36179,deer\n36180,dog\n36181,deer\n36182,ship\n36183,ship\n36184,bird\n36185,cat\n36186,deer\n36187,truck\n36188,bird\n36189,cat\n36190,airplane\n36191,frog\n36192,cat\n36193,dog\n36194,horse\n36195,airplane\n36196,truck\n36197,truck\n36198,truck\n36199,frog\n36200,frog\n36201,deer\n36202,deer\n36203,automobile\n36204,truck\n36205,truck\n36206,frog\n36207,airplane\n36208,deer\n36209,horse\n36210,cat\n36211,bird\n36212,deer\n36213,dog\n36214,automobile\n36215,ship\n36216,ship\n36217,bird\n36218,ship\n36219,automobile\n36220,truck\n36221,cat\n36222,horse\n36223,airplane\n36224,deer\n36225,cat\n36226,automobile\n36227,airplane\n36228,dog\n36229,bird\n36230,automobile\n36231,horse\n36232,bird\n36233,airplane\n36234,deer\n36235,ship\n36236,horse\n36237,automobile\n36238,airplane\n36239,frog\n36240,bird\n36241,frog\n36242,horse\n36243,truck\n36244,deer\n36245,bird\n36246,airplane\n36247,dog\n36248,frog\n36249,bird\n36250,dog\n36251,ship\n36252,automobile\n36253,horse\n36254,frog\n36255,deer\n36256,frog\n36257,dog\n36258,truck\n36259,deer\n36260,cat\n36261,horse\n36262,frog\n36263,truck\n36264,airplane\n36265,deer\n36266,deer\n36267,truck\n36268,truck\n36269,cat\n36270,cat\n36271,frog\n36272,bird\n36273,airplane\n36274,automobile\n36275,ship\n36276,deer\n36277,automobile\n36278,cat\n36279,horse\n36280,cat\n36281,horse\n36282,frog\n36283,automobile\n36284,deer\n36285,dog\n36286,deer\n36287,dog\n36288,frog\n36289,truck\n36290,horse\n36291,ship\n36292,dog\n36293,horse\n36294,ship\n36295,automobile\n36296,frog\n36297,truck\n36298,airplane\n36299,automobile\n36300,cat\n36301,deer\n36302,deer\n36303,deer\n36304,ship\n36305,horse\n36306,cat\n36307,horse\n36308,cat\n36309,automobile\n36310,bird\n36311,ship\n36312,truck\n36313,airplane\n36314,deer\n36315,frog\n36316,ship\n36317,cat\n36318,cat\n36319,automobile\n36320,bird\n36321,dog\n36322,bird\n36323,cat\n36324,cat\n36325,horse\n36326,automobile\n36327,airplane\n36328,frog\n36329,frog\n36330,horse\n36331,truck\n36332,horse\n36333,automobile\n36334,frog\n36335,truck\n36336,airplane\n36337,automobile\n36338,frog\n36339,airplane\n36340,cat\n36341,cat\n36342,bird\n36343,dog\n36344,cat\n36345,dog\n36346,deer\n36347,frog\n36348,frog\n36349,deer\n36350,truck\n36351,dog\n36352,dog\n36353,automobile\n36354,dog\n36355,cat\n36356,dog\n36357,airplane\n36358,dog\n36359,truck\n36360,automobile\n36361,horse\n36362,cat\n36363,horse\n36364,airplane\n36365,horse\n36366,horse\n36367,dog\n36368,ship\n36369,dog\n36370,cat\n36371,automobile\n36372,cat\n36373,deer\n36374,cat\n36375,truck\n36376,truck\n36377,horse\n36378,dog\n36379,airplane\n36380,automobile\n36381,airplane\n36382,deer\n36383,truck\n36384,horse\n36385,deer\n36386,deer\n36387,deer\n36388,horse\n36389,cat\n36390,dog\n36391,frog\n36392,deer\n36393,frog\n36394,dog\n36395,bird\n36396,cat\n36397,bird\n36398,frog\n36399,dog\n36400,truck\n36401,bird\n36402,airplane\n36403,ship\n36404,truck\n36405,bird\n36406,ship\n36407,dog\n36408,airplane\n36409,ship\n36410,deer\n36411,airplane\n36412,horse\n36413,truck\n36414,cat\n36415,dog\n36416,deer\n36417,ship\n36418,truck\n36419,cat\n36420,deer\n36421,airplane\n36422,horse\n36423,frog\n36424,ship\n36425,truck\n36426,deer\n36427,horse\n36428,deer\n36429,truck\n36430,cat\n36431,frog\n36432,frog\n36433,ship\n36434,frog\n36435,deer\n36436,ship\n36437,horse\n36438,frog\n36439,ship\n36440,truck\n36441,airplane\n36442,truck\n36443,deer\n36444,bird\n36445,bird\n36446,cat\n36447,dog\n36448,frog\n36449,deer\n36450,frog\n36451,frog\n36452,deer\n36453,frog\n36454,frog\n36455,cat\n36456,frog\n36457,airplane\n36458,airplane\n36459,horse\n36460,cat\n36461,horse\n36462,deer\n36463,deer\n36464,airplane\n36465,ship\n36466,dog\n36467,horse\n36468,truck\n36469,airplane\n36470,bird\n36471,automobile\n36472,cat\n36473,cat\n36474,dog\n36475,ship\n36476,frog\n36477,cat\n36478,cat\n36479,frog\n36480,horse\n36481,automobile\n36482,bird\n36483,frog\n36484,cat\n36485,ship\n36486,deer\n36487,bird\n36488,truck\n36489,truck\n36490,deer\n36491,horse\n36492,horse\n36493,ship\n36494,airplane\n36495,cat\n36496,cat\n36497,bird\n36498,truck\n36499,frog\n36500,bird\n36501,deer\n36502,deer\n36503,deer\n36504,airplane\n36505,cat\n36506,automobile\n36507,deer\n36508,truck\n36509,truck\n36510,bird\n36511,deer\n36512,bird\n36513,bird\n36514,automobile\n36515,bird\n36516,truck\n36517,cat\n36518,deer\n36519,horse\n36520,truck\n36521,truck\n36522,frog\n36523,horse\n36524,deer\n36525,truck\n36526,ship\n36527,truck\n36528,deer\n36529,deer\n36530,horse\n36531,deer\n36532,frog\n36533,dog\n36534,bird\n36535,truck\n36536,cat\n36537,bird\n36538,deer\n36539,deer\n36540,deer\n36541,truck\n36542,deer\n36543,frog\n36544,truck\n36545,deer\n36546,horse\n36547,automobile\n36548,horse\n36549,deer\n36550,cat\n36551,frog\n36552,bird\n36553,automobile\n36554,frog\n36555,dog\n36556,deer\n36557,ship\n36558,ship\n36559,frog\n36560,horse\n36561,airplane\n36562,airplane\n36563,horse\n36564,cat\n36565,airplane\n36566,dog\n36567,deer\n36568,truck\n36569,bird\n36570,dog\n36571,bird\n36572,deer\n36573,horse\n36574,airplane\n36575,bird\n36576,deer\n36577,dog\n36578,deer\n36579,automobile\n36580,ship\n36581,bird\n36582,truck\n36583,ship\n36584,truck\n36585,deer\n36586,deer\n36587,truck\n36588,airplane\n36589,truck\n36590,ship\n36591,dog\n36592,bird\n36593,dog\n36594,frog\n36595,horse\n36596,deer\n36597,automobile\n36598,horse\n36599,dog\n36600,dog\n36601,bird\n36602,automobile\n36603,ship\n36604,bird\n36605,cat\n36606,truck\n36607,ship\n36608,deer\n36609,deer\n36610,airplane\n36611,frog\n36612,airplane\n36613,automobile\n36614,dog\n36615,horse\n36616,ship\n36617,cat\n36618,cat\n36619,airplane\n36620,horse\n36621,deer\n36622,cat\n36623,airplane\n36624,ship\n36625,cat\n36626,cat\n36627,cat\n36628,dog\n36629,dog\n36630,truck\n36631,automobile\n36632,bird\n36633,truck\n36634,truck\n36635,deer\n36636,automobile\n36637,dog\n36638,airplane\n36639,deer\n36640,dog\n36641,frog\n36642,truck\n36643,deer\n36644,frog\n36645,dog\n36646,bird\n36647,cat\n36648,horse\n36649,deer\n36650,automobile\n36651,deer\n36652,cat\n36653,truck\n36654,deer\n36655,automobile\n36656,automobile\n36657,frog\n36658,ship\n36659,truck\n36660,deer\n36661,deer\n36662,deer\n36663,truck\n36664,ship\n36665,deer\n36666,horse\n36667,deer\n36668,deer\n36669,truck\n36670,airplane\n36671,truck\n36672,deer\n36673,deer\n36674,frog\n36675,frog\n36676,cat\n36677,cat\n36678,truck\n36679,dog\n36680,airplane\n36681,horse\n36682,deer\n36683,airplane\n36684,bird\n36685,truck\n36686,cat\n36687,bird\n36688,ship\n36689,horse\n36690,frog\n36691,deer\n36692,frog\n36693,dog\n36694,bird\n36695,dog\n36696,ship\n36697,bird\n36698,ship\n36699,bird\n36700,dog\n36701,airplane\n36702,cat\n36703,dog\n36704,ship\n36705,ship\n36706,cat\n36707,ship\n36708,horse\n36709,truck\n36710,cat\n36711,dog\n36712,automobile\n36713,frog\n36714,frog\n36715,frog\n36716,horse\n36717,horse\n36718,dog\n36719,bird\n36720,frog\n36721,horse\n36722,cat\n36723,frog\n36724,automobile\n36725,ship\n36726,dog\n36727,horse\n36728,frog\n36729,deer\n36730,truck\n36731,horse\n36732,truck\n36733,cat\n36734,bird\n36735,frog\n36736,airplane\n36737,ship\n36738,truck\n36739,ship\n36740,dog\n36741,frog\n36742,airplane\n36743,frog\n36744,airplane\n36745,horse\n36746,truck\n36747,airplane\n36748,airplane\n36749,cat\n36750,bird\n36751,frog\n36752,truck\n36753,airplane\n36754,dog\n36755,truck\n36756,deer\n36757,bird\n36758,bird\n36759,frog\n36760,frog\n36761,deer\n36762,bird\n36763,horse\n36764,horse\n36765,dog\n36766,deer\n36767,deer\n36768,cat\n36769,truck\n36770,deer\n36771,horse\n36772,truck\n36773,frog\n36774,automobile\n36775,deer\n36776,bird\n36777,deer\n36778,frog\n36779,ship\n36780,dog\n36781,frog\n36782,ship\n36783,frog\n36784,airplane\n36785,horse\n36786,automobile\n36787,truck\n36788,ship\n36789,cat\n36790,frog\n36791,airplane\n36792,dog\n36793,dog\n36794,airplane\n36795,deer\n36796,truck\n36797,frog\n36798,bird\n36799,truck\n36800,deer\n36801,horse\n36802,truck\n36803,truck\n36804,dog\n36805,cat\n36806,airplane\n36807,bird\n36808,horse\n36809,frog\n36810,horse\n36811,truck\n36812,cat\n36813,dog\n36814,deer\n36815,ship\n36816,horse\n36817,bird\n36818,dog\n36819,cat\n36820,truck\n36821,airplane\n36822,bird\n36823,airplane\n36824,frog\n36825,cat\n36826,dog\n36827,horse\n36828,cat\n36829,ship\n36830,cat\n36831,automobile\n36832,truck\n36833,automobile\n36834,ship\n36835,automobile\n36836,dog\n36837,dog\n36838,bird\n36839,automobile\n36840,horse\n36841,frog\n36842,truck\n36843,horse\n36844,dog\n36845,frog\n36846,dog\n36847,ship\n36848,truck\n36849,frog\n36850,truck\n36851,frog\n36852,truck\n36853,deer\n36854,frog\n36855,deer\n36856,dog\n36857,airplane\n36858,frog\n36859,dog\n36860,frog\n36861,deer\n36862,bird\n36863,automobile\n36864,dog\n36865,deer\n36866,cat\n36867,deer\n36868,automobile\n36869,deer\n36870,dog\n36871,dog\n36872,bird\n36873,frog\n36874,deer\n36875,deer\n36876,deer\n36877,cat\n36878,frog\n36879,cat\n36880,bird\n36881,ship\n36882,frog\n36883,frog\n36884,airplane\n36885,deer\n36886,truck\n36887,airplane\n36888,deer\n36889,frog\n36890,ship\n36891,airplane\n36892,deer\n36893,cat\n36894,truck\n36895,dog\n36896,truck\n36897,truck\n36898,automobile\n36899,deer\n36900,truck\n36901,airplane\n36902,frog\n36903,truck\n36904,truck\n36905,truck\n36906,airplane\n36907,cat\n36908,horse\n36909,frog\n36910,frog\n36911,frog\n36912,dog\n36913,cat\n36914,ship\n36915,dog\n36916,deer\n36917,cat\n36918,deer\n36919,truck\n36920,ship\n36921,ship\n36922,deer\n36923,airplane\n36924,airplane\n36925,horse\n36926,automobile\n36927,frog\n36928,deer\n36929,frog\n36930,truck\n36931,horse\n36932,dog\n36933,bird\n36934,horse\n36935,cat\n36936,cat\n36937,frog\n36938,frog\n36939,airplane\n36940,deer\n36941,frog\n36942,cat\n36943,frog\n36944,cat\n36945,cat\n36946,deer\n36947,bird\n36948,deer\n36949,bird\n36950,ship\n36951,ship\n36952,deer\n36953,frog\n36954,bird\n36955,dog\n36956,deer\n36957,deer\n36958,bird\n36959,dog\n36960,cat\n36961,deer\n36962,cat\n36963,dog\n36964,horse\n36965,dog\n36966,automobile\n36967,ship\n36968,dog\n36969,deer\n36970,bird\n36971,horse\n36972,cat\n36973,automobile\n36974,truck\n36975,horse\n36976,frog\n36977,horse\n36978,deer\n36979,automobile\n36980,ship\n36981,airplane\n36982,automobile\n36983,bird\n36984,truck\n36985,airplane\n36986,truck\n36987,dog\n36988,bird\n36989,frog\n36990,frog\n36991,cat\n36992,cat\n36993,automobile\n36994,dog\n36995,airplane\n36996,frog\n36997,ship\n36998,ship\n36999,automobile\n37000,airplane\n37001,dog\n37002,truck\n37003,deer\n37004,cat\n37005,deer\n37006,cat\n37007,bird\n37008,frog\n37009,frog\n37010,bird\n37011,bird\n37012,frog\n37013,automobile\n37014,cat\n37015,cat\n37016,ship\n37017,ship\n37018,airplane\n37019,automobile\n37020,dog\n37021,cat\n37022,bird\n37023,truck\n37024,airplane\n37025,automobile\n37026,frog\n37027,automobile\n37028,truck\n37029,automobile\n37030,dog\n37031,automobile\n37032,truck\n37033,frog\n37034,dog\n37035,deer\n37036,frog\n37037,truck\n37038,frog\n37039,deer\n37040,frog\n37041,frog\n37042,truck\n37043,airplane\n37044,deer\n37045,airplane\n37046,automobile\n37047,airplane\n37048,deer\n37049,cat\n37050,cat\n37051,cat\n37052,ship\n37053,dog\n37054,truck\n37055,deer\n37056,cat\n37057,dog\n37058,dog\n37059,ship\n37060,truck\n37061,deer\n37062,horse\n37063,cat\n37064,horse\n37065,deer\n37066,automobile\n37067,deer\n37068,cat\n37069,frog\n37070,deer\n37071,deer\n37072,cat\n37073,truck\n37074,horse\n37075,cat\n37076,frog\n37077,frog\n37078,ship\n37079,airplane\n37080,truck\n37081,horse\n37082,bird\n37083,truck\n37084,deer\n37085,ship\n37086,horse\n37087,cat\n37088,ship\n37089,dog\n37090,cat\n37091,ship\n37092,airplane\n37093,bird\n37094,airplane\n37095,horse\n37096,airplane\n37097,frog\n37098,cat\n37099,truck\n37100,truck\n37101,horse\n37102,deer\n37103,cat\n37104,horse\n37105,deer\n37106,dog\n37107,dog\n37108,ship\n37109,automobile\n37110,deer\n37111,automobile\n37112,automobile\n37113,ship\n37114,frog\n37115,ship\n37116,automobile\n37117,dog\n37118,cat\n37119,dog\n37120,horse\n37121,bird\n37122,dog\n37123,frog\n37124,horse\n37125,deer\n37126,deer\n37127,truck\n37128,deer\n37129,dog\n37130,frog\n37131,bird\n37132,horse\n37133,dog\n37134,cat\n37135,ship\n37136,cat\n37137,dog\n37138,cat\n37139,horse\n37140,dog\n37141,frog\n37142,bird\n37143,dog\n37144,deer\n37145,deer\n37146,truck\n37147,automobile\n37148,cat\n37149,airplane\n37150,bird\n37151,frog\n37152,frog\n37153,deer\n37154,truck\n37155,cat\n37156,bird\n37157,deer\n37158,truck\n37159,cat\n37160,automobile\n37161,truck\n37162,deer\n37163,deer\n37164,automobile\n37165,cat\n37166,ship\n37167,cat\n37168,ship\n37169,horse\n37170,automobile\n37171,cat\n37172,bird\n37173,dog\n37174,airplane\n37175,automobile\n37176,airplane\n37177,airplane\n37178,airplane\n37179,cat\n37180,deer\n37181,deer\n37182,ship\n37183,bird\n37184,bird\n37185,automobile\n37186,airplane\n37187,deer\n37188,deer\n37189,automobile\n37190,deer\n37191,deer\n37192,frog\n37193,airplane\n37194,ship\n37195,ship\n37196,deer\n37197,deer\n37198,deer\n37199,cat\n37200,deer\n37201,cat\n37202,automobile\n37203,dog\n37204,dog\n37205,truck\n37206,bird\n37207,deer\n37208,deer\n37209,frog\n37210,truck\n37211,dog\n37212,dog\n37213,dog\n37214,dog\n37215,frog\n37216,ship\n37217,ship\n37218,horse\n37219,deer\n37220,automobile\n37221,ship\n37222,cat\n37223,horse\n37224,ship\n37225,dog\n37226,deer\n37227,dog\n37228,deer\n37229,frog\n37230,dog\n37231,truck\n37232,dog\n37233,frog\n37234,automobile\n37235,automobile\n37236,deer\n37237,deer\n37238,deer\n37239,frog\n37240,truck\n37241,frog\n37242,frog\n37243,bird\n37244,bird\n37245,ship\n37246,truck\n37247,automobile\n37248,bird\n37249,frog\n37250,bird\n37251,dog\n37252,deer\n37253,ship\n37254,horse\n37255,deer\n37256,cat\n37257,dog\n37258,deer\n37259,deer\n37260,horse\n37261,frog\n37262,truck\n37263,bird\n37264,deer\n37265,bird\n37266,bird\n37267,automobile\n37268,cat\n37269,cat\n37270,cat\n37271,truck\n37272,dog\n37273,airplane\n37274,deer\n37275,cat\n37276,airplane\n37277,airplane\n37278,truck\n37279,deer\n37280,frog\n37281,frog\n37282,truck\n37283,truck\n37284,dog\n37285,frog\n37286,frog\n37287,frog\n37288,deer\n37289,cat\n37290,bird\n37291,deer\n37292,bird\n37293,airplane\n37294,deer\n37295,automobile\n37296,deer\n37297,dog\n37298,airplane\n37299,dog\n37300,deer\n37301,bird\n37302,bird\n37303,dog\n37304,automobile\n37305,deer\n37306,bird\n37307,frog\n37308,automobile\n37309,airplane\n37310,cat\n37311,deer\n37312,automobile\n37313,cat\n37314,frog\n37315,cat\n37316,deer\n37317,deer\n37318,truck\n37319,frog\n37320,deer\n37321,cat\n37322,cat\n37323,deer\n37324,ship\n37325,horse\n37326,dog\n37327,bird\n37328,cat\n37329,automobile\n37330,bird\n37331,dog\n37332,frog\n37333,bird\n37334,cat\n37335,cat\n37336,frog\n37337,frog\n37338,bird\n37339,bird\n37340,bird\n37341,ship\n37342,ship\n37343,frog\n37344,truck\n37345,deer\n37346,airplane\n37347,bird\n37348,frog\n37349,horse\n37350,cat\n37351,frog\n37352,deer\n37353,horse\n37354,truck\n37355,cat\n37356,airplane\n37357,automobile\n37358,horse\n37359,airplane\n37360,deer\n37361,frog\n37362,frog\n37363,deer\n37364,horse\n37365,frog\n37366,cat\n37367,frog\n37368,cat\n37369,truck\n37370,frog\n37371,horse\n37372,horse\n37373,airplane\n37374,frog\n37375,frog\n37376,truck\n37377,bird\n37378,frog\n37379,deer\n37380,ship\n37381,dog\n37382,deer\n37383,truck\n37384,cat\n37385,ship\n37386,truck\n37387,dog\n37388,bird\n37389,frog\n37390,horse\n37391,deer\n37392,airplane\n37393,frog\n37394,deer\n37395,truck\n37396,frog\n37397,dog\n37398,ship\n37399,dog\n37400,cat\n37401,dog\n37402,frog\n37403,deer\n37404,frog\n37405,airplane\n37406,frog\n37407,cat\n37408,dog\n37409,ship\n37410,automobile\n37411,horse\n37412,dog\n37413,airplane\n37414,cat\n37415,truck\n37416,deer\n37417,automobile\n37418,bird\n37419,ship\n37420,automobile\n37421,ship\n37422,frog\n37423,truck\n37424,bird\n37425,truck\n37426,dog\n37427,deer\n37428,cat\n37429,dog\n37430,cat\n37431,deer\n37432,cat\n37433,truck\n37434,deer\n37435,frog\n37436,truck\n37437,bird\n37438,truck\n37439,cat\n37440,deer\n37441,horse\n37442,ship\n37443,horse\n37444,dog\n37445,horse\n37446,truck\n37447,bird\n37448,ship\n37449,dog\n37450,truck\n37451,dog\n37452,cat\n37453,airplane\n37454,truck\n37455,truck\n37456,deer\n37457,airplane\n37458,airplane\n37459,horse\n37460,truck\n37461,dog\n37462,truck\n37463,airplane\n37464,cat\n37465,automobile\n37466,cat\n37467,ship\n37468,automobile\n37469,deer\n37470,dog\n37471,cat\n37472,cat\n37473,frog\n37474,cat\n37475,deer\n37476,deer\n37477,bird\n37478,automobile\n37479,airplane\n37480,dog\n37481,ship\n37482,dog\n37483,frog\n37484,cat\n37485,frog\n37486,airplane\n37487,airplane\n37488,deer\n37489,deer\n37490,deer\n37491,airplane\n37492,frog\n37493,truck\n37494,deer\n37495,cat\n37496,deer\n37497,truck\n37498,deer\n37499,truck\n37500,truck\n37501,bird\n37502,ship\n37503,frog\n37504,cat\n37505,bird\n37506,horse\n37507,automobile\n37508,frog\n37509,horse\n37510,dog\n37511,ship\n37512,bird\n37513,truck\n37514,truck\n37515,frog\n37516,deer\n37517,cat\n37518,horse\n37519,truck\n37520,horse\n37521,deer\n37522,truck\n37523,cat\n37524,deer\n37525,dog\n37526,frog\n37527,horse\n37528,truck\n37529,horse\n37530,frog\n37531,truck\n37532,bird\n37533,dog\n37534,dog\n37535,ship\n37536,frog\n37537,horse\n37538,airplane\n37539,bird\n37540,deer\n37541,horse\n37542,deer\n37543,automobile\n37544,horse\n37545,deer\n37546,automobile\n37547,airplane\n37548,horse\n37549,cat\n37550,cat\n37551,truck\n37552,airplane\n37553,dog\n37554,cat\n37555,deer\n37556,ship\n37557,ship\n37558,cat\n37559,frog\n37560,airplane\n37561,cat\n37562,bird\n37563,airplane\n37564,truck\n37565,bird\n37566,truck\n37567,bird\n37568,cat\n37569,bird\n37570,deer\n37571,dog\n37572,deer\n37573,frog\n37574,airplane\n37575,deer\n37576,bird\n37577,cat\n37578,deer\n37579,bird\n37580,bird\n37581,ship\n37582,deer\n37583,bird\n37584,truck\n37585,frog\n37586,ship\n37587,frog\n37588,cat\n37589,deer\n37590,cat\n37591,automobile\n37592,dog\n37593,truck\n37594,ship\n37595,frog\n37596,deer\n37597,deer\n37598,automobile\n37599,horse\n37600,airplane\n37601,cat\n37602,deer\n37603,cat\n37604,dog\n37605,cat\n37606,automobile\n37607,horse\n37608,cat\n37609,deer\n37610,deer\n37611,frog\n37612,airplane\n37613,dog\n37614,cat\n37615,automobile\n37616,frog\n37617,deer\n37618,bird\n37619,deer\n37620,cat\n37621,truck\n37622,cat\n37623,cat\n37624,airplane\n37625,cat\n37626,airplane\n37627,bird\n37628,dog\n37629,airplane\n37630,automobile\n37631,bird\n37632,truck\n37633,frog\n37634,deer\n37635,airplane\n37636,horse\n37637,bird\n37638,truck\n37639,airplane\n37640,bird\n37641,cat\n37642,deer\n37643,dog\n37644,cat\n37645,frog\n37646,frog\n37647,deer\n37648,ship\n37649,ship\n37650,horse\n37651,airplane\n37652,ship\n37653,ship\n37654,airplane\n37655,truck\n37656,deer\n37657,deer\n37658,dog\n37659,bird\n37660,cat\n37661,horse\n37662,truck\n37663,horse\n37664,cat\n37665,airplane\n37666,cat\n37667,truck\n37668,airplane\n37669,bird\n37670,truck\n37671,cat\n37672,cat\n37673,deer\n37674,horse\n37675,frog\n37676,bird\n37677,deer\n37678,ship\n37679,dog\n37680,automobile\n37681,truck\n37682,deer\n37683,bird\n37684,bird\n37685,airplane\n37686,airplane\n37687,airplane\n37688,horse\n37689,cat\n37690,dog\n37691,truck\n37692,bird\n37693,ship\n37694,ship\n37695,automobile\n37696,airplane\n37697,cat\n37698,deer\n37699,horse\n37700,cat\n37701,deer\n37702,automobile\n37703,truck\n37704,horse\n37705,deer\n37706,bird\n37707,cat\n37708,automobile\n37709,dog\n37710,ship\n37711,cat\n37712,automobile\n37713,dog\n37714,bird\n37715,cat\n37716,ship\n37717,truck\n37718,automobile\n37719,automobile\n37720,ship\n37721,bird\n37722,ship\n37723,ship\n37724,bird\n37725,deer\n37726,cat\n37727,airplane\n37728,deer\n37729,ship\n37730,ship\n37731,truck\n37732,bird\n37733,ship\n37734,frog\n37735,truck\n37736,dog\n37737,frog\n37738,truck\n37739,horse\n37740,dog\n37741,truck\n37742,airplane\n37743,deer\n37744,frog\n37745,frog\n37746,automobile\n37747,horse\n37748,cat\n37749,bird\n37750,truck\n37751,dog\n37752,cat\n37753,horse\n37754,dog\n37755,dog\n37756,ship\n37757,bird\n37758,truck\n37759,frog\n37760,cat\n37761,truck\n37762,cat\n37763,frog\n37764,frog\n37765,horse\n37766,automobile\n37767,frog\n37768,ship\n37769,dog\n37770,bird\n37771,automobile\n37772,airplane\n37773,dog\n37774,horse\n37775,truck\n37776,ship\n37777,cat\n37778,cat\n37779,cat\n37780,deer\n37781,deer\n37782,cat\n37783,truck\n37784,truck\n37785,bird\n37786,dog\n37787,frog\n37788,dog\n37789,frog\n37790,frog\n37791,airplane\n37792,deer\n37793,deer\n37794,cat\n37795,ship\n37796,horse\n37797,deer\n37798,truck\n37799,bird\n37800,dog\n37801,cat\n37802,horse\n37803,frog\n37804,truck\n37805,cat\n37806,airplane\n37807,frog\n37808,cat\n37809,ship\n37810,dog\n37811,airplane\n37812,deer\n37813,truck\n37814,horse\n37815,deer\n37816,horse\n37817,airplane\n37818,airplane\n37819,horse\n37820,bird\n37821,frog\n37822,dog\n37823,cat\n37824,deer\n37825,airplane\n37826,horse\n37827,ship\n37828,truck\n37829,deer\n37830,horse\n37831,dog\n37832,ship\n37833,truck\n37834,frog\n37835,automobile\n37836,automobile\n37837,dog\n37838,ship\n37839,horse\n37840,truck\n37841,bird\n37842,truck\n37843,bird\n37844,airplane\n37845,deer\n37846,cat\n37847,dog\n37848,cat\n37849,deer\n37850,automobile\n37851,deer\n37852,airplane\n37853,dog\n37854,cat\n37855,deer\n37856,bird\n37857,deer\n37858,horse\n37859,deer\n37860,ship\n37861,automobile\n37862,cat\n37863,truck\n37864,deer\n37865,airplane\n37866,frog\n37867,dog\n37868,deer\n37869,cat\n37870,airplane\n37871,frog\n37872,deer\n37873,horse\n37874,automobile\n37875,horse\n37876,deer\n37877,automobile\n37878,dog\n37879,truck\n37880,automobile\n37881,dog\n37882,cat\n37883,dog\n37884,ship\n37885,dog\n37886,cat\n37887,deer\n37888,ship\n37889,frog\n37890,airplane\n37891,frog\n37892,cat\n37893,deer\n37894,airplane\n37895,bird\n37896,ship\n37897,dog\n37898,horse\n37899,truck\n37900,truck\n37901,truck\n37902,dog\n37903,airplane\n37904,cat\n37905,cat\n37906,bird\n37907,deer\n37908,deer\n37909,deer\n37910,deer\n37911,bird\n37912,frog\n37913,cat\n37914,horse\n37915,airplane\n37916,bird\n37917,cat\n37918,frog\n37919,dog\n37920,bird\n37921,dog\n37922,ship\n37923,ship\n37924,ship\n37925,deer\n37926,dog\n37927,airplane\n37928,bird\n37929,frog\n37930,deer\n37931,frog\n37932,cat\n37933,airplane\n37934,ship\n37935,cat\n37936,airplane\n37937,truck\n37938,dog\n37939,frog\n37940,airplane\n37941,bird\n37942,truck\n37943,horse\n37944,truck\n37945,truck\n37946,frog\n37947,frog\n37948,cat\n37949,truck\n37950,horse\n37951,truck\n37952,truck\n37953,frog\n37954,deer\n37955,deer\n37956,deer\n37957,deer\n37958,cat\n37959,bird\n37960,automobile\n37961,cat\n37962,frog\n37963,cat\n37964,airplane\n37965,deer\n37966,dog\n37967,dog\n37968,truck\n37969,bird\n37970,dog\n37971,deer\n37972,bird\n37973,dog\n37974,automobile\n37975,deer\n37976,cat\n37977,frog\n37978,airplane\n37979,deer\n37980,airplane\n37981,deer\n37982,ship\n37983,automobile\n37984,truck\n37985,airplane\n37986,truck\n37987,frog\n37988,cat\n37989,cat\n37990,deer\n37991,cat\n37992,deer\n37993,frog\n37994,truck\n37995,automobile\n37996,dog\n37997,cat\n37998,horse\n37999,truck\n38000,bird\n38001,horse\n38002,dog\n38003,airplane\n38004,bird\n38005,cat\n38006,bird\n38007,deer\n38008,horse\n38009,horse\n38010,cat\n38011,airplane\n38012,frog\n38013,bird\n38014,cat\n38015,cat\n38016,truck\n38017,automobile\n38018,airplane\n38019,bird\n38020,deer\n38021,dog\n38022,ship\n38023,airplane\n38024,automobile\n38025,truck\n38026,cat\n38027,ship\n38028,dog\n38029,horse\n38030,automobile\n38031,airplane\n38032,horse\n38033,automobile\n38034,horse\n38035,automobile\n38036,deer\n38037,airplane\n38038,deer\n38039,frog\n38040,deer\n38041,frog\n38042,horse\n38043,automobile\n38044,airplane\n38045,bird\n38046,cat\n38047,airplane\n38048,cat\n38049,cat\n38050,bird\n38051,cat\n38052,cat\n38053,bird\n38054,cat\n38055,ship\n38056,ship\n38057,deer\n38058,frog\n38059,dog\n38060,frog\n38061,cat\n38062,horse\n38063,cat\n38064,truck\n38065,dog\n38066,dog\n38067,cat\n38068,ship\n38069,dog\n38070,deer\n38071,frog\n38072,airplane\n38073,bird\n38074,frog\n38075,deer\n38076,frog\n38077,truck\n38078,deer\n38079,cat\n38080,bird\n38081,truck\n38082,horse\n38083,cat\n38084,airplane\n38085,deer\n38086,deer\n38087,frog\n38088,deer\n38089,bird\n38090,ship\n38091,dog\n38092,airplane\n38093,cat\n38094,deer\n38095,truck\n38096,truck\n38097,bird\n38098,frog\n38099,dog\n38100,cat\n38101,cat\n38102,cat\n38103,ship\n38104,deer\n38105,frog\n38106,automobile\n38107,deer\n38108,cat\n38109,truck\n38110,horse\n38111,bird\n38112,dog\n38113,dog\n38114,deer\n38115,dog\n38116,automobile\n38117,bird\n38118,deer\n38119,cat\n38120,bird\n38121,truck\n38122,automobile\n38123,bird\n38124,deer\n38125,automobile\n38126,ship\n38127,frog\n38128,airplane\n38129,airplane\n38130,horse\n38131,bird\n38132,ship\n38133,truck\n38134,cat\n38135,dog\n38136,deer\n38137,airplane\n38138,ship\n38139,cat\n38140,ship\n38141,ship\n38142,bird\n38143,deer\n38144,dog\n38145,dog\n38146,truck\n38147,frog\n38148,cat\n38149,truck\n38150,dog\n38151,automobile\n38152,dog\n38153,dog\n38154,frog\n38155,horse\n38156,cat\n38157,dog\n38158,truck\n38159,bird\n38160,dog\n38161,deer\n38162,cat\n38163,cat\n38164,ship\n38165,frog\n38166,deer\n38167,airplane\n38168,deer\n38169,deer\n38170,deer\n38171,automobile\n38172,cat\n38173,ship\n38174,truck\n38175,truck\n38176,deer\n38177,dog\n38178,dog\n38179,dog\n38180,automobile\n38181,deer\n38182,horse\n38183,cat\n38184,ship\n38185,airplane\n38186,frog\n38187,airplane\n38188,cat\n38189,bird\n38190,truck\n38191,dog\n38192,bird\n38193,airplane\n38194,cat\n38195,cat\n38196,cat\n38197,ship\n38198,dog\n38199,bird\n38200,cat\n38201,truck\n38202,automobile\n38203,cat\n38204,bird\n38205,cat\n38206,dog\n38207,frog\n38208,deer\n38209,deer\n38210,deer\n38211,truck\n38212,truck\n38213,ship\n38214,truck\n38215,automobile\n38216,dog\n38217,dog\n38218,dog\n38219,airplane\n38220,truck\n38221,bird\n38222,frog\n38223,airplane\n38224,airplane\n38225,frog\n38226,cat\n38227,bird\n38228,dog\n38229,deer\n38230,automobile\n38231,frog\n38232,dog\n38233,bird\n38234,horse\n38235,airplane\n38236,horse\n38237,horse\n38238,frog\n38239,horse\n38240,truck\n38241,deer\n38242,airplane\n38243,automobile\n38244,cat\n38245,deer\n38246,horse\n38247,bird\n38248,truck\n38249,horse\n38250,cat\n38251,cat\n38252,automobile\n38253,cat\n38254,frog\n38255,bird\n38256,truck\n38257,automobile\n38258,truck\n38259,truck\n38260,airplane\n38261,frog\n38262,ship\n38263,bird\n38264,automobile\n38265,dog\n38266,truck\n38267,automobile\n38268,deer\n38269,deer\n38270,cat\n38271,bird\n38272,frog\n38273,airplane\n38274,ship\n38275,truck\n38276,automobile\n38277,ship\n38278,airplane\n38279,airplane\n38280,horse\n38281,cat\n38282,bird\n38283,airplane\n38284,frog\n38285,horse\n38286,truck\n38287,frog\n38288,cat\n38289,automobile\n38290,horse\n38291,automobile\n38292,horse\n38293,horse\n38294,airplane\n38295,horse\n38296,cat\n38297,truck\n38298,cat\n38299,dog\n38300,deer\n38301,cat\n38302,frog\n38303,bird\n38304,cat\n38305,airplane\n38306,deer\n38307,deer\n38308,horse\n38309,dog\n38310,automobile\n38311,dog\n38312,deer\n38313,dog\n38314,frog\n38315,frog\n38316,cat\n38317,airplane\n38318,deer\n38319,truck\n38320,ship\n38321,ship\n38322,frog\n38323,deer\n38324,frog\n38325,horse\n38326,frog\n38327,deer\n38328,airplane\n38329,bird\n38330,truck\n38331,horse\n38332,bird\n38333,horse\n38334,dog\n38335,airplane\n38336,horse\n38337,automobile\n38338,truck\n38339,frog\n38340,deer\n38341,frog\n38342,ship\n38343,deer\n38344,ship\n38345,airplane\n38346,truck\n38347,airplane\n38348,horse\n38349,cat\n38350,deer\n38351,dog\n38352,bird\n38353,horse\n38354,cat\n38355,dog\n38356,dog\n38357,airplane\n38358,bird\n38359,dog\n38360,cat\n38361,frog\n38362,bird\n38363,horse\n38364,deer\n38365,dog\n38366,cat\n38367,deer\n38368,deer\n38369,ship\n38370,deer\n38371,ship\n38372,dog\n38373,airplane\n38374,automobile\n38375,automobile\n38376,deer\n38377,deer\n38378,truck\n38379,deer\n38380,frog\n38381,frog\n38382,truck\n38383,bird\n38384,frog\n38385,airplane\n38386,automobile\n38387,deer\n38388,bird\n38389,dog\n38390,ship\n38391,dog\n38392,cat\n38393,horse\n38394,deer\n38395,frog\n38396,dog\n38397,frog\n38398,frog\n38399,horse\n38400,bird\n38401,ship\n38402,deer\n38403,cat\n38404,dog\n38405,horse\n38406,horse\n38407,dog\n38408,frog\n38409,bird\n38410,horse\n38411,dog\n38412,cat\n38413,deer\n38414,truck\n38415,frog\n38416,cat\n38417,frog\n38418,cat\n38419,truck\n38420,deer\n38421,deer\n38422,ship\n38423,cat\n38424,bird\n38425,bird\n38426,ship\n38427,cat\n38428,dog\n38429,dog\n38430,ship\n38431,frog\n38432,dog\n38433,cat\n38434,automobile\n38435,deer\n38436,ship\n38437,frog\n38438,frog\n38439,horse\n38440,truck\n38441,truck\n38442,airplane\n38443,deer\n38444,automobile\n38445,deer\n38446,deer\n38447,horse\n38448,truck\n38449,truck\n38450,horse\n38451,truck\n38452,horse\n38453,deer\n38454,horse\n38455,airplane\n38456,truck\n38457,dog\n38458,horse\n38459,cat\n38460,deer\n38461,airplane\n38462,deer\n38463,dog\n38464,horse\n38465,truck\n38466,truck\n38467,deer\n38468,cat\n38469,automobile\n38470,bird\n38471,airplane\n38472,airplane\n38473,ship\n38474,deer\n38475,horse\n38476,ship\n38477,ship\n38478,horse\n38479,ship\n38480,frog\n38481,deer\n38482,ship\n38483,dog\n38484,horse\n38485,frog\n38486,dog\n38487,dog\n38488,truck\n38489,ship\n38490,deer\n38491,automobile\n38492,deer\n38493,dog\n38494,airplane\n38495,airplane\n38496,cat\n38497,deer\n38498,horse\n38499,dog\n38500,deer\n38501,frog\n38502,truck\n38503,ship\n38504,truck\n38505,cat\n38506,airplane\n38507,cat\n38508,frog\n38509,horse\n38510,horse\n38511,airplane\n38512,deer\n38513,deer\n38514,ship\n38515,deer\n38516,cat\n38517,horse\n38518,truck\n38519,deer\n38520,dog\n38521,horse\n38522,ship\n38523,automobile\n38524,deer\n38525,truck\n38526,horse\n38527,bird\n38528,frog\n38529,ship\n38530,frog\n38531,cat\n38532,horse\n38533,bird\n38534,truck\n38535,truck\n38536,horse\n38537,dog\n38538,airplane\n38539,ship\n38540,horse\n38541,frog\n38542,deer\n38543,airplane\n38544,horse\n38545,truck\n38546,airplane\n38547,horse\n38548,frog\n38549,airplane\n38550,horse\n38551,dog\n38552,bird\n38553,frog\n38554,dog\n38555,automobile\n38556,dog\n38557,airplane\n38558,frog\n38559,airplane\n38560,frog\n38561,truck\n38562,bird\n38563,bird\n38564,dog\n38565,dog\n38566,airplane\n38567,airplane\n38568,deer\n38569,bird\n38570,dog\n38571,cat\n38572,cat\n38573,automobile\n38574,frog\n38575,horse\n38576,dog\n38577,airplane\n38578,deer\n38579,airplane\n38580,deer\n38581,horse\n38582,cat\n38583,cat\n38584,cat\n38585,frog\n38586,airplane\n38587,dog\n38588,deer\n38589,horse\n38590,frog\n38591,deer\n38592,automobile\n38593,frog\n38594,horse\n38595,bird\n38596,deer\n38597,deer\n38598,frog\n38599,frog\n38600,automobile\n38601,deer\n38602,truck\n38603,deer\n38604,horse\n38605,bird\n38606,airplane\n38607,automobile\n38608,ship\n38609,horse\n38610,deer\n38611,bird\n38612,cat\n38613,dog\n38614,cat\n38615,dog\n38616,airplane\n38617,frog\n38618,truck\n38619,bird\n38620,automobile\n38621,horse\n38622,cat\n38623,frog\n38624,ship\n38625,horse\n38626,horse\n38627,frog\n38628,cat\n38629,truck\n38630,ship\n38631,airplane\n38632,horse\n38633,deer\n38634,deer\n38635,ship\n38636,ship\n38637,horse\n38638,airplane\n38639,deer\n38640,airplane\n38641,horse\n38642,cat\n38643,frog\n38644,ship\n38645,truck\n38646,truck\n38647,deer\n38648,truck\n38649,cat\n38650,frog\n38651,dog\n38652,bird\n38653,bird\n38654,cat\n38655,dog\n38656,truck\n38657,horse\n38658,frog\n38659,deer\n38660,frog\n38661,truck\n38662,automobile\n38663,dog\n38664,deer\n38665,cat\n38666,truck\n38667,cat\n38668,frog\n38669,automobile\n38670,truck\n38671,bird\n38672,truck\n38673,bird\n38674,automobile\n38675,automobile\n38676,cat\n38677,frog\n38678,cat\n38679,deer\n38680,bird\n38681,bird\n38682,truck\n38683,bird\n38684,bird\n38685,truck\n38686,cat\n38687,cat\n38688,dog\n38689,automobile\n38690,horse\n38691,cat\n38692,airplane\n38693,dog\n38694,automobile\n38695,deer\n38696,deer\n38697,frog\n38698,bird\n38699,truck\n38700,horse\n38701,automobile\n38702,bird\n38703,frog\n38704,automobile\n38705,bird\n38706,frog\n38707,airplane\n38708,airplane\n38709,airplane\n38710,ship\n38711,cat\n38712,dog\n38713,ship\n38714,frog\n38715,frog\n38716,truck\n38717,frog\n38718,cat\n38719,bird\n38720,airplane\n38721,deer\n38722,cat\n38723,frog\n38724,horse\n38725,deer\n38726,bird\n38727,deer\n38728,cat\n38729,frog\n38730,dog\n38731,bird\n38732,deer\n38733,airplane\n38734,cat\n38735,ship\n38736,bird\n38737,deer\n38738,deer\n38739,deer\n38740,frog\n38741,cat\n38742,automobile\n38743,airplane\n38744,airplane\n38745,dog\n38746,cat\n38747,automobile\n38748,frog\n38749,frog\n38750,cat\n38751,frog\n38752,horse\n38753,dog\n38754,cat\n38755,dog\n38756,airplane\n38757,frog\n38758,automobile\n38759,airplane\n38760,deer\n38761,truck\n38762,airplane\n38763,horse\n38764,frog\n38765,frog\n38766,cat\n38767,dog\n38768,cat\n38769,cat\n38770,cat\n38771,dog\n38772,dog\n38773,horse\n38774,bird\n38775,cat\n38776,deer\n38777,ship\n38778,deer\n38779,deer\n38780,airplane\n38781,deer\n38782,truck\n38783,automobile\n38784,automobile\n38785,horse\n38786,ship\n38787,cat\n38788,truck\n38789,frog\n38790,horse\n38791,deer\n38792,dog\n38793,dog\n38794,dog\n38795,automobile\n38796,automobile\n38797,automobile\n38798,cat\n38799,airplane\n38800,frog\n38801,horse\n38802,ship\n38803,deer\n38804,cat\n38805,ship\n38806,deer\n38807,airplane\n38808,frog\n38809,cat\n38810,dog\n38811,frog\n38812,horse\n38813,deer\n38814,truck\n38815,deer\n38816,airplane\n38817,horse\n38818,truck\n38819,truck\n38820,cat\n38821,horse\n38822,frog\n38823,cat\n38824,deer\n38825,airplane\n38826,frog\n38827,bird\n38828,bird\n38829,deer\n38830,bird\n38831,dog\n38832,cat\n38833,automobile\n38834,automobile\n38835,truck\n38836,horse\n38837,frog\n38838,dog\n38839,deer\n38840,deer\n38841,frog\n38842,cat\n38843,airplane\n38844,bird\n38845,cat\n38846,bird\n38847,cat\n38848,cat\n38849,ship\n38850,truck\n38851,frog\n38852,deer\n38853,frog\n38854,bird\n38855,dog\n38856,bird\n38857,truck\n38858,deer\n38859,ship\n38860,cat\n38861,deer\n38862,dog\n38863,deer\n38864,dog\n38865,deer\n38866,bird\n38867,horse\n38868,automobile\n38869,automobile\n38870,horse\n38871,ship\n38872,frog\n38873,automobile\n38874,airplane\n38875,frog\n38876,deer\n38877,automobile\n38878,dog\n38879,cat\n38880,cat\n38881,deer\n38882,airplane\n38883,frog\n38884,frog\n38885,horse\n38886,cat\n38887,horse\n38888,horse\n38889,ship\n38890,airplane\n38891,deer\n38892,frog\n38893,deer\n38894,horse\n38895,truck\n38896,ship\n38897,dog\n38898,dog\n38899,cat\n38900,deer\n38901,cat\n38902,ship\n38903,horse\n38904,truck\n38905,airplane\n38906,dog\n38907,horse\n38908,truck\n38909,cat\n38910,deer\n38911,ship\n38912,truck\n38913,truck\n38914,automobile\n38915,truck\n38916,cat\n38917,cat\n38918,horse\n38919,horse\n38920,horse\n38921,deer\n38922,frog\n38923,frog\n38924,horse\n38925,ship\n38926,automobile\n38927,cat\n38928,deer\n38929,automobile\n38930,deer\n38931,deer\n38932,deer\n38933,deer\n38934,truck\n38935,frog\n38936,dog\n38937,airplane\n38938,deer\n38939,cat\n38940,frog\n38941,truck\n38942,frog\n38943,frog\n38944,cat\n38945,deer\n38946,frog\n38947,ship\n38948,frog\n38949,deer\n38950,frog\n38951,truck\n38952,bird\n38953,cat\n38954,frog\n38955,horse\n38956,ship\n38957,deer\n38958,truck\n38959,deer\n38960,ship\n38961,horse\n38962,cat\n38963,dog\n38964,cat\n38965,automobile\n38966,frog\n38967,airplane\n38968,ship\n38969,horse\n38970,frog\n38971,automobile\n38972,truck\n38973,horse\n38974,airplane\n38975,ship\n38976,ship\n38977,airplane\n38978,cat\n38979,bird\n38980,cat\n38981,frog\n38982,bird\n38983,automobile\n38984,truck\n38985,deer\n38986,automobile\n38987,dog\n38988,frog\n38989,horse\n38990,bird\n38991,automobile\n38992,truck\n38993,bird\n38994,horse\n38995,truck\n38996,frog\n38997,automobile\n38998,ship\n38999,airplane\n39000,horse\n39001,ship\n39002,bird\n39003,dog\n39004,deer\n39005,truck\n39006,cat\n39007,airplane\n39008,truck\n39009,airplane\n39010,dog\n39011,frog\n39012,dog\n39013,frog\n39014,bird\n39015,deer\n39016,truck\n39017,dog\n39018,horse\n39019,deer\n39020,cat\n39021,horse\n39022,deer\n39023,automobile\n39024,cat\n39025,truck\n39026,deer\n39027,cat\n39028,deer\n39029,truck\n39030,horse\n39031,deer\n39032,frog\n39033,deer\n39034,horse\n39035,frog\n39036,dog\n39037,cat\n39038,frog\n39039,truck\n39040,horse\n39041,bird\n39042,frog\n39043,bird\n39044,deer\n39045,dog\n39046,frog\n39047,cat\n39048,cat\n39049,airplane\n39050,frog\n39051,bird\n39052,airplane\n39053,horse\n39054,truck\n39055,cat\n39056,frog\n39057,cat\n39058,horse\n39059,bird\n39060,cat\n39061,frog\n39062,ship\n39063,horse\n39064,cat\n39065,horse\n39066,frog\n39067,cat\n39068,truck\n39069,automobile\n39070,horse\n39071,horse\n39072,bird\n39073,horse\n39074,automobile\n39075,automobile\n39076,cat\n39077,automobile\n39078,frog\n39079,deer\n39080,horse\n39081,truck\n39082,dog\n39083,automobile\n39084,automobile\n39085,dog\n39086,ship\n39087,frog\n39088,automobile\n39089,deer\n39090,truck\n39091,frog\n39092,frog\n39093,bird\n39094,bird\n39095,frog\n39096,deer\n39097,truck\n39098,bird\n39099,ship\n39100,deer\n39101,bird\n39102,deer\n39103,airplane\n39104,frog\n39105,horse\n39106,deer\n39107,truck\n39108,bird\n39109,truck\n39110,deer\n39111,cat\n39112,frog\n39113,cat\n39114,frog\n39115,dog\n39116,truck\n39117,automobile\n39118,dog\n39119,cat\n39120,horse\n39121,ship\n39122,bird\n39123,truck\n39124,airplane\n39125,airplane\n39126,airplane\n39127,bird\n39128,bird\n39129,ship\n39130,airplane\n39131,deer\n39132,cat\n39133,dog\n39134,frog\n39135,deer\n39136,deer\n39137,truck\n39138,cat\n39139,frog\n39140,truck\n39141,bird\n39142,deer\n39143,frog\n39144,truck\n39145,ship\n39146,deer\n39147,ship\n39148,cat\n39149,automobile\n39150,dog\n39151,frog\n39152,dog\n39153,dog\n39154,cat\n39155,cat\n39156,airplane\n39157,dog\n39158,horse\n39159,cat\n39160,horse\n39161,cat\n39162,cat\n39163,deer\n39164,ship\n39165,cat\n39166,ship\n39167,bird\n39168,frog\n39169,horse\n39170,ship\n39171,frog\n39172,airplane\n39173,frog\n39174,cat\n39175,airplane\n39176,horse\n39177,horse\n39178,airplane\n39179,ship\n39180,bird\n39181,ship\n39182,frog\n39183,deer\n39184,horse\n39185,horse\n39186,ship\n39187,truck\n39188,horse\n39189,deer\n39190,dog\n39191,cat\n39192,deer\n39193,truck\n39194,cat\n39195,horse\n39196,deer\n39197,deer\n39198,ship\n39199,frog\n39200,truck\n39201,cat\n39202,bird\n39203,cat\n39204,dog\n39205,cat\n39206,dog\n39207,ship\n39208,automobile\n39209,automobile\n39210,bird\n39211,bird\n39212,truck\n39213,cat\n39214,dog\n39215,airplane\n39216,dog\n39217,ship\n39218,cat\n39219,dog\n39220,cat\n39221,ship\n39222,frog\n39223,frog\n39224,ship\n39225,horse\n39226,ship\n39227,horse\n39228,deer\n39229,cat\n39230,dog\n39231,deer\n39232,bird\n39233,cat\n39234,deer\n39235,cat\n39236,dog\n39237,cat\n39238,truck\n39239,truck\n39240,cat\n39241,airplane\n39242,horse\n39243,dog\n39244,frog\n39245,deer\n39246,truck\n39247,horse\n39248,airplane\n39249,dog\n39250,deer\n39251,truck\n39252,truck\n39253,truck\n39254,airplane\n39255,frog\n39256,frog\n39257,ship\n39258,ship\n39259,bird\n39260,horse\n39261,deer\n39262,automobile\n39263,bird\n39264,truck\n39265,airplane\n39266,frog\n39267,deer\n39268,deer\n39269,ship\n39270,cat\n39271,deer\n39272,horse\n39273,dog\n39274,ship\n39275,horse\n39276,airplane\n39277,truck\n39278,truck\n39279,frog\n39280,ship\n39281,bird\n39282,cat\n39283,frog\n39284,horse\n39285,cat\n39286,deer\n39287,truck\n39288,frog\n39289,truck\n39290,airplane\n39291,cat\n39292,horse\n39293,automobile\n39294,bird\n39295,deer\n39296,automobile\n39297,deer\n39298,cat\n39299,automobile\n39300,ship\n39301,deer\n39302,cat\n39303,cat\n39304,deer\n39305,bird\n39306,bird\n39307,dog\n39308,bird\n39309,airplane\n39310,frog\n39311,deer\n39312,frog\n39313,frog\n39314,cat\n39315,dog\n39316,horse\n39317,frog\n39318,automobile\n39319,frog\n39320,bird\n39321,ship\n39322,ship\n39323,airplane\n39324,frog\n39325,frog\n39326,airplane\n39327,horse\n39328,frog\n39329,deer\n39330,ship\n39331,cat\n39332,ship\n39333,airplane\n39334,airplane\n39335,airplane\n39336,ship\n39337,frog\n39338,horse\n39339,ship\n39340,deer\n39341,truck\n39342,deer\n39343,deer\n39344,bird\n39345,cat\n39346,frog\n39347,ship\n39348,truck\n39349,dog\n39350,ship\n39351,deer\n39352,frog\n39353,cat\n39354,cat\n39355,deer\n39356,dog\n39357,horse\n39358,horse\n39359,cat\n39360,bird\n39361,bird\n39362,cat\n39363,ship\n39364,cat\n39365,horse\n39366,automobile\n39367,truck\n39368,cat\n39369,truck\n39370,dog\n39371,automobile\n39372,cat\n39373,deer\n39374,horse\n39375,truck\n39376,frog\n39377,airplane\n39378,airplane\n39379,airplane\n39380,dog\n39381,dog\n39382,frog\n39383,frog\n39384,truck\n39385,automobile\n39386,dog\n39387,horse\n39388,cat\n39389,deer\n39390,ship\n39391,frog\n39392,ship\n39393,horse\n39394,cat\n39395,frog\n39396,airplane\n39397,dog\n39398,cat\n39399,bird\n39400,frog\n39401,dog\n39402,bird\n39403,truck\n39404,frog\n39405,automobile\n39406,airplane\n39407,deer\n39408,deer\n39409,cat\n39410,frog\n39411,cat\n39412,dog\n39413,deer\n39414,ship\n39415,airplane\n39416,truck\n39417,frog\n39418,frog\n39419,frog\n39420,truck\n39421,deer\n39422,cat\n39423,truck\n39424,bird\n39425,deer\n39426,frog\n39427,bird\n39428,truck\n39429,automobile\n39430,truck\n39431,truck\n39432,truck\n39433,bird\n39434,truck\n39435,bird\n39436,frog\n39437,truck\n39438,ship\n39439,frog\n39440,bird\n39441,dog\n39442,horse\n39443,automobile\n39444,truck\n39445,frog\n39446,cat\n39447,deer\n39448,ship\n39449,automobile\n39450,frog\n39451,frog\n39452,automobile\n39453,frog\n39454,frog\n39455,truck\n39456,cat\n39457,cat\n39458,deer\n39459,dog\n39460,deer\n39461,cat\n39462,deer\n39463,horse\n39464,ship\n39465,truck\n39466,airplane\n39467,dog\n39468,truck\n39469,airplane\n39470,deer\n39471,dog\n39472,airplane\n39473,deer\n39474,frog\n39475,horse\n39476,automobile\n39477,automobile\n39478,horse\n39479,automobile\n39480,truck\n39481,horse\n39482,deer\n39483,automobile\n39484,truck\n39485,cat\n39486,deer\n39487,cat\n39488,frog\n39489,frog\n39490,frog\n39491,dog\n39492,frog\n39493,truck\n39494,truck\n39495,dog\n39496,frog\n39497,deer\n39498,dog\n39499,ship\n39500,airplane\n39501,deer\n39502,cat\n39503,cat\n39504,horse\n39505,automobile\n39506,dog\n39507,cat\n39508,cat\n39509,frog\n39510,airplane\n39511,deer\n39512,truck\n39513,dog\n39514,airplane\n39515,frog\n39516,automobile\n39517,cat\n39518,ship\n39519,truck\n39520,bird\n39521,horse\n39522,frog\n39523,cat\n39524,frog\n39525,truck\n39526,deer\n39527,frog\n39528,bird\n39529,bird\n39530,cat\n39531,cat\n39532,truck\n39533,cat\n39534,bird\n39535,cat\n39536,frog\n39537,dog\n39538,frog\n39539,deer\n39540,horse\n39541,ship\n39542,dog\n39543,ship\n39544,horse\n39545,frog\n39546,deer\n39547,automobile\n39548,dog\n39549,cat\n39550,dog\n39551,cat\n39552,airplane\n39553,bird\n39554,dog\n39555,dog\n39556,cat\n39557,frog\n39558,deer\n39559,deer\n39560,horse\n39561,dog\n39562,truck\n39563,frog\n39564,horse\n39565,bird\n39566,bird\n39567,bird\n39568,cat\n39569,airplane\n39570,deer\n39571,cat\n39572,bird\n39573,dog\n39574,horse\n39575,dog\n39576,deer\n39577,bird\n39578,deer\n39579,truck\n39580,cat\n39581,horse\n39582,truck\n39583,automobile\n39584,deer\n39585,frog\n39586,ship\n39587,bird\n39588,deer\n39589,airplane\n39590,truck\n39591,cat\n39592,dog\n39593,bird\n39594,horse\n39595,frog\n39596,bird\n39597,truck\n39598,truck\n39599,horse\n39600,truck\n39601,truck\n39602,deer\n39603,airplane\n39604,truck\n39605,automobile\n39606,frog\n39607,automobile\n39608,frog\n39609,bird\n39610,dog\n39611,ship\n39612,cat\n39613,airplane\n39614,deer\n39615,dog\n39616,frog\n39617,airplane\n39618,cat\n39619,airplane\n39620,airplane\n39621,airplane\n39622,dog\n39623,deer\n39624,bird\n39625,cat\n39626,deer\n39627,automobile\n39628,cat\n39629,frog\n39630,truck\n39631,dog\n39632,automobile\n39633,frog\n39634,truck\n39635,bird\n39636,cat\n39637,ship\n39638,dog\n39639,ship\n39640,deer\n39641,cat\n39642,airplane\n39643,ship\n39644,airplane\n39645,bird\n39646,dog\n39647,truck\n39648,dog\n39649,airplane\n39650,ship\n39651,frog\n39652,deer\n39653,cat\n39654,bird\n39655,cat\n39656,horse\n39657,deer\n39658,truck\n39659,dog\n39660,ship\n39661,frog\n39662,automobile\n39663,bird\n39664,frog\n39665,dog\n39666,dog\n39667,bird\n39668,horse\n39669,frog\n39670,bird\n39671,bird\n39672,horse\n39673,deer\n39674,bird\n39675,horse\n39676,horse\n39677,ship\n39678,horse\n39679,automobile\n39680,cat\n39681,frog\n39682,ship\n39683,truck\n39684,ship\n39685,cat\n39686,deer\n39687,cat\n39688,ship\n39689,ship\n39690,airplane\n39691,frog\n39692,automobile\n39693,frog\n39694,airplane\n39695,frog\n39696,horse\n39697,deer\n39698,truck\n39699,ship\n39700,airplane\n39701,cat\n39702,deer\n39703,truck\n39704,airplane\n39705,horse\n39706,ship\n39707,bird\n39708,automobile\n39709,dog\n39710,truck\n39711,dog\n39712,cat\n39713,frog\n39714,frog\n39715,airplane\n39716,bird\n39717,ship\n39718,dog\n39719,airplane\n39720,airplane\n39721,bird\n39722,bird\n39723,deer\n39724,airplane\n39725,cat\n39726,dog\n39727,ship\n39728,bird\n39729,bird\n39730,cat\n39731,deer\n39732,horse\n39733,cat\n39734,automobile\n39735,cat\n39736,truck\n39737,truck\n39738,cat\n39739,horse\n39740,horse\n39741,airplane\n39742,automobile\n39743,cat\n39744,frog\n39745,cat\n39746,deer\n39747,deer\n39748,dog\n39749,dog\n39750,bird\n39751,bird\n39752,cat\n39753,airplane\n39754,horse\n39755,horse\n39756,deer\n39757,horse\n39758,cat\n39759,deer\n39760,cat\n39761,cat\n39762,automobile\n39763,truck\n39764,bird\n39765,cat\n39766,deer\n39767,airplane\n39768,automobile\n39769,automobile\n39770,dog\n39771,airplane\n39772,bird\n39773,dog\n39774,airplane\n39775,cat\n39776,frog\n39777,truck\n39778,automobile\n39779,frog\n39780,bird\n39781,deer\n39782,truck\n39783,frog\n39784,truck\n39785,deer\n39786,truck\n39787,dog\n39788,truck\n39789,airplane\n39790,cat\n39791,cat\n39792,automobile\n39793,cat\n39794,horse\n39795,automobile\n39796,truck\n39797,frog\n39798,airplane\n39799,horse\n39800,deer\n39801,frog\n39802,horse\n39803,frog\n39804,cat\n39805,dog\n39806,airplane\n39807,cat\n39808,truck\n39809,airplane\n39810,airplane\n39811,frog\n39812,horse\n39813,cat\n39814,airplane\n39815,horse\n39816,deer\n39817,dog\n39818,frog\n39819,bird\n39820,deer\n39821,automobile\n39822,airplane\n39823,deer\n39824,bird\n39825,bird\n39826,deer\n39827,airplane\n39828,automobile\n39829,ship\n39830,deer\n39831,cat\n39832,airplane\n39833,truck\n39834,deer\n39835,deer\n39836,automobile\n39837,automobile\n39838,bird\n39839,cat\n39840,frog\n39841,dog\n39842,bird\n39843,horse\n39844,deer\n39845,automobile\n39846,truck\n39847,frog\n39848,airplane\n39849,deer\n39850,ship\n39851,cat\n39852,frog\n39853,airplane\n39854,cat\n39855,truck\n39856,cat\n39857,automobile\n39858,truck\n39859,dog\n39860,truck\n39861,cat\n39862,horse\n39863,deer\n39864,cat\n39865,horse\n39866,airplane\n39867,airplane\n39868,bird\n39869,cat\n39870,automobile\n39871,automobile\n39872,dog\n39873,frog\n39874,frog\n39875,truck\n39876,ship\n39877,frog\n39878,ship\n39879,deer\n39880,dog\n39881,bird\n39882,automobile\n39883,dog\n39884,deer\n39885,dog\n39886,horse\n39887,truck\n39888,cat\n39889,airplane\n39890,bird\n39891,dog\n39892,cat\n39893,ship\n39894,automobile\n39895,deer\n39896,frog\n39897,dog\n39898,deer\n39899,bird\n39900,cat\n39901,truck\n39902,frog\n39903,frog\n39904,airplane\n39905,bird\n39906,bird\n39907,automobile\n39908,deer\n39909,airplane\n39910,dog\n39911,horse\n39912,airplane\n39913,dog\n39914,cat\n39915,truck\n39916,deer\n39917,horse\n39918,automobile\n39919,bird\n39920,horse\n39921,ship\n39922,cat\n39923,airplane\n39924,airplane\n39925,truck\n39926,airplane\n39927,frog\n39928,frog\n39929,truck\n39930,cat\n39931,frog\n39932,frog\n39933,frog\n39934,deer\n39935,airplane\n39936,horse\n39937,ship\n39938,ship\n39939,deer\n39940,frog\n39941,cat\n39942,horse\n39943,cat\n39944,truck\n39945,cat\n39946,bird\n39947,airplane\n39948,frog\n39949,horse\n39950,automobile\n39951,ship\n39952,horse\n39953,truck\n39954,truck\n39955,airplane\n39956,frog\n39957,ship\n39958,deer\n39959,cat\n39960,ship\n39961,horse\n39962,cat\n39963,horse\n39964,deer\n39965,cat\n39966,cat\n39967,bird\n39968,deer\n39969,dog\n39970,frog\n39971,bird\n39972,deer\n39973,cat\n39974,cat\n39975,deer\n39976,horse\n39977,frog\n39978,horse\n39979,ship\n39980,frog\n39981,cat\n39982,cat\n39983,truck\n39984,cat\n39985,cat\n39986,truck\n39987,cat\n39988,ship\n39989,cat\n39990,bird\n39991,truck\n39992,deer\n39993,airplane\n39994,dog\n39995,ship\n39996,cat\n39997,horse\n39998,horse\n39999,automobile\n40000,automobile\n40001,truck\n40002,horse\n40003,automobile\n40004,automobile\n40005,automobile\n40006,cat\n40007,bird\n40008,cat\n40009,dog\n40010,deer\n40011,airplane\n40012,deer\n40013,bird\n40014,deer\n40015,airplane\n40016,airplane\n40017,cat\n40018,bird\n40019,airplane\n40020,truck\n40021,deer\n40022,ship\n40023,deer\n40024,horse\n40025,horse\n40026,frog\n40027,cat\n40028,dog\n40029,horse\n40030,horse\n40031,cat\n40032,airplane\n40033,dog\n40034,deer\n40035,truck\n40036,ship\n40037,ship\n40038,ship\n40039,bird\n40040,airplane\n40041,ship\n40042,dog\n40043,dog\n40044,airplane\n40045,bird\n40046,frog\n40047,horse\n40048,frog\n40049,horse\n40050,dog\n40051,cat\n40052,airplane\n40053,horse\n40054,bird\n40055,bird\n40056,deer\n40057,ship\n40058,frog\n40059,bird\n40060,frog\n40061,cat\n40062,deer\n40063,ship\n40064,truck\n40065,truck\n40066,frog\n40067,automobile\n40068,cat\n40069,cat\n40070,deer\n40071,airplane\n40072,airplane\n40073,dog\n40074,dog\n40075,truck\n40076,horse\n40077,automobile\n40078,bird\n40079,airplane\n40080,deer\n40081,cat\n40082,cat\n40083,deer\n40084,bird\n40085,horse\n40086,horse\n40087,bird\n40088,dog\n40089,cat\n40090,airplane\n40091,cat\n40092,automobile\n40093,truck\n40094,deer\n40095,deer\n40096,frog\n40097,cat\n40098,deer\n40099,truck\n40100,cat\n40101,airplane\n40102,dog\n40103,cat\n40104,bird\n40105,frog\n40106,airplane\n40107,dog\n40108,bird\n40109,ship\n40110,bird\n40111,horse\n40112,automobile\n40113,truck\n40114,frog\n40115,automobile\n40116,airplane\n40117,dog\n40118,cat\n40119,dog\n40120,dog\n40121,cat\n40122,horse\n40123,horse\n40124,ship\n40125,automobile\n40126,deer\n40127,automobile\n40128,dog\n40129,deer\n40130,frog\n40131,truck\n40132,deer\n40133,deer\n40134,frog\n40135,cat\n40136,cat\n40137,cat\n40138,dog\n40139,horse\n40140,cat\n40141,truck\n40142,frog\n40143,truck\n40144,deer\n40145,truck\n40146,dog\n40147,horse\n40148,bird\n40149,automobile\n40150,frog\n40151,automobile\n40152,dog\n40153,frog\n40154,cat\n40155,deer\n40156,deer\n40157,dog\n40158,ship\n40159,frog\n40160,truck\n40161,airplane\n40162,frog\n40163,cat\n40164,airplane\n40165,cat\n40166,cat\n40167,automobile\n40168,deer\n40169,bird\n40170,bird\n40171,dog\n40172,frog\n40173,horse\n40174,cat\n40175,deer\n40176,deer\n40177,bird\n40178,cat\n40179,dog\n40180,truck\n40181,truck\n40182,truck\n40183,ship\n40184,bird\n40185,deer\n40186,frog\n40187,ship\n40188,dog\n40189,airplane\n40190,truck\n40191,bird\n40192,horse\n40193,automobile\n40194,ship\n40195,dog\n40196,horse\n40197,airplane\n40198,cat\n40199,bird\n40200,deer\n40201,horse\n40202,dog\n40203,truck\n40204,ship\n40205,horse\n40206,dog\n40207,truck\n40208,cat\n40209,dog\n40210,frog\n40211,dog\n40212,frog\n40213,bird\n40214,ship\n40215,cat\n40216,dog\n40217,dog\n40218,deer\n40219,cat\n40220,horse\n40221,dog\n40222,deer\n40223,ship\n40224,cat\n40225,deer\n40226,automobile\n40227,dog\n40228,ship\n40229,deer\n40230,truck\n40231,cat\n40232,bird\n40233,frog\n40234,deer\n40235,frog\n40236,airplane\n40237,ship\n40238,horse\n40239,ship\n40240,frog\n40241,automobile\n40242,truck\n40243,horse\n40244,ship\n40245,automobile\n40246,truck\n40247,automobile\n40248,horse\n40249,bird\n40250,automobile\n40251,frog\n40252,horse\n40253,cat\n40254,horse\n40255,truck\n40256,ship\n40257,truck\n40258,automobile\n40259,truck\n40260,bird\n40261,dog\n40262,cat\n40263,horse\n40264,frog\n40265,deer\n40266,automobile\n40267,dog\n40268,frog\n40269,automobile\n40270,bird\n40271,airplane\n40272,dog\n40273,cat\n40274,cat\n40275,horse\n40276,frog\n40277,ship\n40278,frog\n40279,bird\n40280,horse\n40281,bird\n40282,dog\n40283,cat\n40284,truck\n40285,frog\n40286,truck\n40287,automobile\n40288,bird\n40289,deer\n40290,frog\n40291,deer\n40292,deer\n40293,horse\n40294,airplane\n40295,horse\n40296,truck\n40297,frog\n40298,truck\n40299,cat\n40300,horse\n40301,frog\n40302,airplane\n40303,airplane\n40304,bird\n40305,cat\n40306,airplane\n40307,bird\n40308,deer\n40309,cat\n40310,frog\n40311,deer\n40312,cat\n40313,deer\n40314,cat\n40315,cat\n40316,frog\n40317,airplane\n40318,dog\n40319,airplane\n40320,cat\n40321,automobile\n40322,deer\n40323,cat\n40324,bird\n40325,truck\n40326,dog\n40327,cat\n40328,cat\n40329,bird\n40330,ship\n40331,cat\n40332,horse\n40333,horse\n40334,airplane\n40335,truck\n40336,bird\n40337,frog\n40338,truck\n40339,automobile\n40340,bird\n40341,dog\n40342,truck\n40343,ship\n40344,airplane\n40345,truck\n40346,ship\n40347,deer\n40348,frog\n40349,dog\n40350,dog\n40351,bird\n40352,dog\n40353,bird\n40354,bird\n40355,dog\n40356,cat\n40357,ship\n40358,ship\n40359,dog\n40360,cat\n40361,cat\n40362,automobile\n40363,airplane\n40364,dog\n40365,automobile\n40366,truck\n40367,airplane\n40368,horse\n40369,ship\n40370,cat\n40371,bird\n40372,frog\n40373,airplane\n40374,dog\n40375,horse\n40376,automobile\n40377,airplane\n40378,frog\n40379,truck\n40380,dog\n40381,cat\n40382,frog\n40383,ship\n40384,ship\n40385,horse\n40386,frog\n40387,truck\n40388,horse\n40389,bird\n40390,ship\n40391,deer\n40392,ship\n40393,deer\n40394,airplane\n40395,horse\n40396,cat\n40397,deer\n40398,cat\n40399,frog\n40400,frog\n40401,horse\n40402,automobile\n40403,dog\n40404,bird\n40405,horse\n40406,dog\n40407,horse\n40408,truck\n40409,automobile\n40410,frog\n40411,horse\n40412,truck\n40413,truck\n40414,airplane\n40415,deer\n40416,automobile\n40417,horse\n40418,frog\n40419,horse\n40420,dog\n40421,dog\n40422,deer\n40423,bird\n40424,airplane\n40425,horse\n40426,automobile\n40427,truck\n40428,truck\n40429,frog\n40430,deer\n40431,dog\n40432,airplane\n40433,deer\n40434,deer\n40435,bird\n40436,cat\n40437,frog\n40438,ship\n40439,bird\n40440,deer\n40441,frog\n40442,dog\n40443,cat\n40444,deer\n40445,cat\n40446,automobile\n40447,automobile\n40448,dog\n40449,ship\n40450,cat\n40451,truck\n40452,horse\n40453,automobile\n40454,cat\n40455,bird\n40456,ship\n40457,cat\n40458,bird\n40459,horse\n40460,automobile\n40461,bird\n40462,horse\n40463,bird\n40464,dog\n40465,ship\n40466,bird\n40467,deer\n40468,horse\n40469,cat\n40470,frog\n40471,cat\n40472,cat\n40473,deer\n40474,frog\n40475,truck\n40476,dog\n40477,airplane\n40478,airplane\n40479,deer\n40480,deer\n40481,horse\n40482,horse\n40483,cat\n40484,dog\n40485,deer\n40486,frog\n40487,airplane\n40488,truck\n40489,truck\n40490,truck\n40491,bird\n40492,automobile\n40493,horse\n40494,automobile\n40495,airplane\n40496,horse\n40497,bird\n40498,deer\n40499,bird\n40500,bird\n40501,horse\n40502,cat\n40503,ship\n40504,cat\n40505,bird\n40506,deer\n40507,frog\n40508,deer\n40509,airplane\n40510,deer\n40511,frog\n40512,horse\n40513,horse\n40514,frog\n40515,deer\n40516,truck\n40517,horse\n40518,deer\n40519,deer\n40520,cat\n40521,dog\n40522,horse\n40523,airplane\n40524,airplane\n40525,deer\n40526,cat\n40527,horse\n40528,automobile\n40529,cat\n40530,truck\n40531,cat\n40532,dog\n40533,ship\n40534,cat\n40535,frog\n40536,deer\n40537,frog\n40538,deer\n40539,ship\n40540,horse\n40541,deer\n40542,frog\n40543,dog\n40544,horse\n40545,truck\n40546,frog\n40547,frog\n40548,automobile\n40549,ship\n40550,deer\n40551,ship\n40552,truck\n40553,deer\n40554,cat\n40555,cat\n40556,airplane\n40557,bird\n40558,horse\n40559,deer\n40560,truck\n40561,horse\n40562,dog\n40563,bird\n40564,deer\n40565,automobile\n40566,automobile\n40567,horse\n40568,cat\n40569,frog\n40570,airplane\n40571,bird\n40572,bird\n40573,truck\n40574,dog\n40575,cat\n40576,bird\n40577,deer\n40578,ship\n40579,deer\n40580,deer\n40581,ship\n40582,cat\n40583,horse\n40584,ship\n40585,truck\n40586,dog\n40587,truck\n40588,frog\n40589,airplane\n40590,automobile\n40591,frog\n40592,horse\n40593,ship\n40594,airplane\n40595,truck\n40596,deer\n40597,dog\n40598,automobile\n40599,airplane\n40600,frog\n40601,cat\n40602,ship\n40603,dog\n40604,deer\n40605,deer\n40606,ship\n40607,airplane\n40608,frog\n40609,airplane\n40610,frog\n40611,airplane\n40612,cat\n40613,horse\n40614,truck\n40615,airplane\n40616,deer\n40617,frog\n40618,automobile\n40619,frog\n40620,automobile\n40621,cat\n40622,bird\n40623,bird\n40624,ship\n40625,truck\n40626,deer\n40627,dog\n40628,airplane\n40629,deer\n40630,truck\n40631,deer\n40632,dog\n40633,deer\n40634,truck\n40635,truck\n40636,ship\n40637,truck\n40638,bird\n40639,truck\n40640,ship\n40641,dog\n40642,cat\n40643,airplane\n40644,automobile\n40645,cat\n40646,bird\n40647,ship\n40648,horse\n40649,automobile\n40650,automobile\n40651,truck\n40652,airplane\n40653,deer\n40654,frog\n40655,truck\n40656,bird\n40657,bird\n40658,bird\n40659,ship\n40660,horse\n40661,deer\n40662,airplane\n40663,dog\n40664,horse\n40665,automobile\n40666,deer\n40667,deer\n40668,dog\n40669,automobile\n40670,ship\n40671,truck\n40672,truck\n40673,frog\n40674,frog\n40675,frog\n40676,automobile\n40677,ship\n40678,deer\n40679,ship\n40680,airplane\n40681,airplane\n40682,dog\n40683,truck\n40684,truck\n40685,bird\n40686,horse\n40687,automobile\n40688,horse\n40689,truck\n40690,horse\n40691,truck\n40692,horse\n40693,airplane\n40694,horse\n40695,deer\n40696,ship\n40697,bird\n40698,bird\n40699,deer\n40700,bird\n40701,automobile\n40702,airplane\n40703,deer\n40704,cat\n40705,cat\n40706,cat\n40707,deer\n40708,dog\n40709,automobile\n40710,deer\n40711,airplane\n40712,dog\n40713,deer\n40714,ship\n40715,dog\n40716,horse\n40717,bird\n40718,dog\n40719,automobile\n40720,dog\n40721,horse\n40722,deer\n40723,deer\n40724,frog\n40725,cat\n40726,airplane\n40727,deer\n40728,deer\n40729,deer\n40730,frog\n40731,frog\n40732,deer\n40733,horse\n40734,frog\n40735,ship\n40736,ship\n40737,ship\n40738,ship\n40739,cat\n40740,horse\n40741,truck\n40742,horse\n40743,deer\n40744,bird\n40745,dog\n40746,bird\n40747,dog\n40748,bird\n40749,truck\n40750,cat\n40751,deer\n40752,dog\n40753,deer\n40754,automobile\n40755,deer\n40756,horse\n40757,horse\n40758,dog\n40759,automobile\n40760,frog\n40761,automobile\n40762,truck\n40763,bird\n40764,automobile\n40765,automobile\n40766,frog\n40767,bird\n40768,airplane\n40769,cat\n40770,deer\n40771,airplane\n40772,ship\n40773,truck\n40774,airplane\n40775,truck\n40776,automobile\n40777,dog\n40778,deer\n40779,deer\n40780,truck\n40781,deer\n40782,airplane\n40783,horse\n40784,ship\n40785,truck\n40786,bird\n40787,airplane\n40788,airplane\n40789,frog\n40790,truck\n40791,airplane\n40792,horse\n40793,cat\n40794,deer\n40795,deer\n40796,horse\n40797,cat\n40798,deer\n40799,truck\n40800,cat\n40801,ship\n40802,automobile\n40803,horse\n40804,frog\n40805,horse\n40806,cat\n40807,truck\n40808,truck\n40809,ship\n40810,horse\n40811,cat\n40812,automobile\n40813,truck\n40814,ship\n40815,automobile\n40816,frog\n40817,frog\n40818,cat\n40819,bird\n40820,automobile\n40821,deer\n40822,horse\n40823,truck\n40824,frog\n40825,airplane\n40826,airplane\n40827,truck\n40828,deer\n40829,automobile\n40830,frog\n40831,airplane\n40832,dog\n40833,cat\n40834,airplane\n40835,automobile\n40836,deer\n40837,horse\n40838,automobile\n40839,truck\n40840,ship\n40841,dog\n40842,deer\n40843,bird\n40844,cat\n40845,dog\n40846,ship\n40847,frog\n40848,deer\n40849,airplane\n40850,bird\n40851,bird\n40852,frog\n40853,automobile\n40854,frog\n40855,truck\n40856,cat\n40857,airplane\n40858,cat\n40859,frog\n40860,ship\n40861,horse\n40862,deer\n40863,dog\n40864,horse\n40865,automobile\n40866,bird\n40867,automobile\n40868,truck\n40869,truck\n40870,deer\n40871,cat\n40872,automobile\n40873,frog\n40874,deer\n40875,horse\n40876,dog\n40877,cat\n40878,frog\n40879,horse\n40880,horse\n40881,bird\n40882,deer\n40883,deer\n40884,cat\n40885,airplane\n40886,deer\n40887,horse\n40888,cat\n40889,dog\n40890,airplane\n40891,horse\n40892,deer\n40893,truck\n40894,deer\n40895,bird\n40896,bird\n40897,truck\n40898,dog\n40899,deer\n40900,deer\n40901,dog\n40902,cat\n40903,horse\n40904,bird\n40905,horse\n40906,deer\n40907,bird\n40908,deer\n40909,truck\n40910,bird\n40911,dog\n40912,automobile\n40913,truck\n40914,airplane\n40915,horse\n40916,ship\n40917,truck\n40918,bird\n40919,dog\n40920,bird\n40921,cat\n40922,dog\n40923,airplane\n40924,airplane\n40925,frog\n40926,frog\n40927,cat\n40928,cat\n40929,frog\n40930,truck\n40931,dog\n40932,cat\n40933,deer\n40934,cat\n40935,ship\n40936,dog\n40937,ship\n40938,frog\n40939,truck\n40940,frog\n40941,deer\n40942,dog\n40943,frog\n40944,frog\n40945,truck\n40946,truck\n40947,deer\n40948,deer\n40949,airplane\n40950,truck\n40951,deer\n40952,airplane\n40953,cat\n40954,truck\n40955,airplane\n40956,airplane\n40957,deer\n40958,ship\n40959,deer\n40960,truck\n40961,ship\n40962,dog\n40963,truck\n40964,dog\n40965,frog\n40966,bird\n40967,automobile\n40968,deer\n40969,bird\n40970,deer\n40971,horse\n40972,bird\n40973,deer\n40974,frog\n40975,airplane\n40976,automobile\n40977,airplane\n40978,truck\n40979,dog\n40980,frog\n40981,deer\n40982,truck\n40983,frog\n40984,frog\n40985,automobile\n40986,truck\n40987,ship\n40988,automobile\n40989,airplane\n40990,automobile\n40991,cat\n40992,airplane\n40993,truck\n40994,automobile\n40995,horse\n40996,frog\n40997,horse\n40998,bird\n40999,deer\n41000,bird\n41001,airplane\n41002,cat\n41003,frog\n41004,horse\n41005,airplane\n41006,ship\n41007,dog\n41008,deer\n41009,ship\n41010,truck\n41011,dog\n41012,ship\n41013,dog\n41014,deer\n41015,dog\n41016,horse\n41017,airplane\n41018,cat\n41019,truck\n41020,airplane\n41021,ship\n41022,truck\n41023,dog\n41024,ship\n41025,ship\n41026,deer\n41027,frog\n41028,deer\n41029,horse\n41030,cat\n41031,frog\n41032,dog\n41033,bird\n41034,dog\n41035,cat\n41036,cat\n41037,dog\n41038,ship\n41039,dog\n41040,airplane\n41041,cat\n41042,ship\n41043,bird\n41044,ship\n41045,automobile\n41046,truck\n41047,frog\n41048,cat\n41049,dog\n41050,dog\n41051,truck\n41052,deer\n41053,truck\n41054,horse\n41055,automobile\n41056,ship\n41057,truck\n41058,truck\n41059,horse\n41060,dog\n41061,dog\n41062,ship\n41063,frog\n41064,frog\n41065,deer\n41066,automobile\n41067,truck\n41068,cat\n41069,dog\n41070,frog\n41071,bird\n41072,horse\n41073,frog\n41074,automobile\n41075,automobile\n41076,automobile\n41077,ship\n41078,cat\n41079,frog\n41080,bird\n41081,airplane\n41082,ship\n41083,truck\n41084,ship\n41085,bird\n41086,deer\n41087,airplane\n41088,deer\n41089,horse\n41090,deer\n41091,cat\n41092,horse\n41093,ship\n41094,frog\n41095,truck\n41096,cat\n41097,horse\n41098,airplane\n41099,ship\n41100,airplane\n41101,dog\n41102,deer\n41103,bird\n41104,truck\n41105,truck\n41106,dog\n41107,cat\n41108,deer\n41109,deer\n41110,cat\n41111,airplane\n41112,truck\n41113,cat\n41114,dog\n41115,ship\n41116,bird\n41117,horse\n41118,bird\n41119,dog\n41120,truck\n41121,deer\n41122,airplane\n41123,automobile\n41124,deer\n41125,automobile\n41126,automobile\n41127,airplane\n41128,cat\n41129,deer\n41130,automobile\n41131,automobile\n41132,ship\n41133,horse\n41134,deer\n41135,deer\n41136,cat\n41137,bird\n41138,automobile\n41139,truck\n41140,ship\n41141,frog\n41142,truck\n41143,horse\n41144,dog\n41145,dog\n41146,ship\n41147,truck\n41148,truck\n41149,automobile\n41150,ship\n41151,ship\n41152,dog\n41153,deer\n41154,dog\n41155,frog\n41156,frog\n41157,horse\n41158,deer\n41159,horse\n41160,frog\n41161,bird\n41162,airplane\n41163,truck\n41164,ship\n41165,dog\n41166,dog\n41167,deer\n41168,dog\n41169,cat\n41170,dog\n41171,dog\n41172,deer\n41173,truck\n41174,horse\n41175,deer\n41176,cat\n41177,deer\n41178,automobile\n41179,deer\n41180,frog\n41181,dog\n41182,cat\n41183,deer\n41184,bird\n41185,bird\n41186,horse\n41187,dog\n41188,cat\n41189,bird\n41190,automobile\n41191,deer\n41192,truck\n41193,ship\n41194,automobile\n41195,automobile\n41196,cat\n41197,bird\n41198,horse\n41199,bird\n41200,frog\n41201,cat\n41202,ship\n41203,truck\n41204,airplane\n41205,cat\n41206,frog\n41207,horse\n41208,truck\n41209,dog\n41210,airplane\n41211,dog\n41212,bird\n41213,bird\n41214,dog\n41215,cat\n41216,airplane\n41217,airplane\n41218,deer\n41219,deer\n41220,cat\n41221,cat\n41222,ship\n41223,dog\n41224,airplane\n41225,truck\n41226,bird\n41227,cat\n41228,deer\n41229,deer\n41230,dog\n41231,cat\n41232,horse\n41233,airplane\n41234,frog\n41235,truck\n41236,truck\n41237,cat\n41238,horse\n41239,dog\n41240,deer\n41241,horse\n41242,horse\n41243,ship\n41244,horse\n41245,dog\n41246,airplane\n41247,deer\n41248,cat\n41249,truck\n41250,ship\n41251,deer\n41252,cat\n41253,dog\n41254,frog\n41255,horse\n41256,automobile\n41257,horse\n41258,deer\n41259,truck\n41260,cat\n41261,automobile\n41262,truck\n41263,ship\n41264,airplane\n41265,cat\n41266,truck\n41267,truck\n41268,bird\n41269,ship\n41270,deer\n41271,cat\n41272,deer\n41273,horse\n41274,cat\n41275,frog\n41276,bird\n41277,deer\n41278,truck\n41279,bird\n41280,frog\n41281,ship\n41282,airplane\n41283,bird\n41284,horse\n41285,ship\n41286,ship\n41287,truck\n41288,frog\n41289,deer\n41290,frog\n41291,truck\n41292,ship\n41293,deer\n41294,deer\n41295,horse\n41296,frog\n41297,ship\n41298,automobile\n41299,truck\n41300,airplane\n41301,cat\n41302,frog\n41303,frog\n41304,truck\n41305,horse\n41306,deer\n41307,airplane\n41308,horse\n41309,horse\n41310,ship\n41311,deer\n41312,deer\n41313,bird\n41314,truck\n41315,frog\n41316,deer\n41317,cat\n41318,deer\n41319,bird\n41320,bird\n41321,truck\n41322,bird\n41323,cat\n41324,horse\n41325,ship\n41326,horse\n41327,cat\n41328,truck\n41329,ship\n41330,horse\n41331,cat\n41332,ship\n41333,truck\n41334,ship\n41335,bird\n41336,frog\n41337,automobile\n41338,airplane\n41339,dog\n41340,deer\n41341,bird\n41342,cat\n41343,ship\n41344,dog\n41345,cat\n41346,horse\n41347,bird\n41348,frog\n41349,truck\n41350,airplane\n41351,dog\n41352,dog\n41353,deer\n41354,frog\n41355,frog\n41356,ship\n41357,horse\n41358,horse\n41359,automobile\n41360,airplane\n41361,automobile\n41362,deer\n41363,dog\n41364,ship\n41365,frog\n41366,deer\n41367,truck\n41368,horse\n41369,airplane\n41370,automobile\n41371,ship\n41372,bird\n41373,frog\n41374,ship\n41375,frog\n41376,automobile\n41377,frog\n41378,deer\n41379,bird\n41380,bird\n41381,automobile\n41382,truck\n41383,truck\n41384,deer\n41385,horse\n41386,airplane\n41387,dog\n41388,frog\n41389,deer\n41390,horse\n41391,horse\n41392,airplane\n41393,automobile\n41394,ship\n41395,truck\n41396,bird\n41397,bird\n41398,frog\n41399,truck\n41400,ship\n41401,deer\n41402,ship\n41403,horse\n41404,automobile\n41405,horse\n41406,bird\n41407,ship\n41408,deer\n41409,bird\n41410,horse\n41411,cat\n41412,bird\n41413,deer\n41414,horse\n41415,horse\n41416,dog\n41417,dog\n41418,truck\n41419,bird\n41420,automobile\n41421,airplane\n41422,airplane\n41423,frog\n41424,ship\n41425,airplane\n41426,automobile\n41427,truck\n41428,airplane\n41429,dog\n41430,frog\n41431,deer\n41432,automobile\n41433,bird\n41434,airplane\n41435,cat\n41436,horse\n41437,airplane\n41438,horse\n41439,truck\n41440,airplane\n41441,bird\n41442,cat\n41443,cat\n41444,ship\n41445,horse\n41446,automobile\n41447,ship\n41448,cat\n41449,horse\n41450,ship\n41451,truck\n41452,airplane\n41453,dog\n41454,frog\n41455,airplane\n41456,frog\n41457,deer\n41458,frog\n41459,ship\n41460,ship\n41461,cat\n41462,airplane\n41463,dog\n41464,deer\n41465,automobile\n41466,truck\n41467,horse\n41468,deer\n41469,truck\n41470,ship\n41471,cat\n41472,dog\n41473,cat\n41474,airplane\n41475,truck\n41476,ship\n41477,automobile\n41478,automobile\n41479,dog\n41480,truck\n41481,horse\n41482,ship\n41483,airplane\n41484,cat\n41485,airplane\n41486,horse\n41487,automobile\n41488,truck\n41489,horse\n41490,deer\n41491,cat\n41492,truck\n41493,dog\n41494,truck\n41495,deer\n41496,cat\n41497,airplane\n41498,cat\n41499,deer\n41500,truck\n41501,horse\n41502,airplane\n41503,cat\n41504,dog\n41505,cat\n41506,ship\n41507,dog\n41508,ship\n41509,bird\n41510,ship\n41511,truck\n41512,frog\n41513,dog\n41514,dog\n41515,dog\n41516,bird\n41517,horse\n41518,airplane\n41519,ship\n41520,dog\n41521,truck\n41522,airplane\n41523,deer\n41524,deer\n41525,deer\n41526,frog\n41527,frog\n41528,truck\n41529,horse\n41530,airplane\n41531,dog\n41532,dog\n41533,horse\n41534,ship\n41535,automobile\n41536,horse\n41537,airplane\n41538,deer\n41539,airplane\n41540,deer\n41541,horse\n41542,deer\n41543,automobile\n41544,cat\n41545,deer\n41546,horse\n41547,frog\n41548,deer\n41549,bird\n41550,horse\n41551,frog\n41552,bird\n41553,frog\n41554,truck\n41555,dog\n41556,dog\n41557,airplane\n41558,deer\n41559,horse\n41560,automobile\n41561,frog\n41562,automobile\n41563,truck\n41564,frog\n41565,automobile\n41566,truck\n41567,frog\n41568,cat\n41569,deer\n41570,cat\n41571,dog\n41572,truck\n41573,frog\n41574,airplane\n41575,deer\n41576,truck\n41577,cat\n41578,bird\n41579,dog\n41580,bird\n41581,airplane\n41582,deer\n41583,ship\n41584,dog\n41585,airplane\n41586,deer\n41587,truck\n41588,deer\n41589,truck\n41590,airplane\n41591,cat\n41592,horse\n41593,ship\n41594,ship\n41595,bird\n41596,automobile\n41597,frog\n41598,dog\n41599,bird\n41600,frog\n41601,bird\n41602,deer\n41603,automobile\n41604,deer\n41605,truck\n41606,frog\n41607,frog\n41608,airplane\n41609,automobile\n41610,dog\n41611,horse\n41612,truck\n41613,frog\n41614,truck\n41615,automobile\n41616,horse\n41617,dog\n41618,dog\n41619,bird\n41620,deer\n41621,truck\n41622,frog\n41623,deer\n41624,cat\n41625,bird\n41626,dog\n41627,cat\n41628,horse\n41629,cat\n41630,horse\n41631,frog\n41632,dog\n41633,deer\n41634,bird\n41635,horse\n41636,ship\n41637,ship\n41638,automobile\n41639,automobile\n41640,automobile\n41641,cat\n41642,truck\n41643,bird\n41644,horse\n41645,ship\n41646,cat\n41647,bird\n41648,ship\n41649,deer\n41650,bird\n41651,cat\n41652,frog\n41653,truck\n41654,truck\n41655,cat\n41656,bird\n41657,cat\n41658,ship\n41659,horse\n41660,airplane\n41661,dog\n41662,truck\n41663,truck\n41664,airplane\n41665,ship\n41666,dog\n41667,airplane\n41668,ship\n41669,deer\n41670,dog\n41671,airplane\n41672,horse\n41673,horse\n41674,cat\n41675,deer\n41676,truck\n41677,truck\n41678,horse\n41679,horse\n41680,cat\n41681,deer\n41682,frog\n41683,automobile\n41684,cat\n41685,automobile\n41686,frog\n41687,truck\n41688,horse\n41689,deer\n41690,deer\n41691,airplane\n41692,deer\n41693,truck\n41694,cat\n41695,truck\n41696,automobile\n41697,dog\n41698,automobile\n41699,airplane\n41700,airplane\n41701,frog\n41702,truck\n41703,airplane\n41704,frog\n41705,automobile\n41706,frog\n41707,cat\n41708,automobile\n41709,ship\n41710,frog\n41711,frog\n41712,cat\n41713,truck\n41714,frog\n41715,deer\n41716,dog\n41717,horse\n41718,horse\n41719,cat\n41720,dog\n41721,frog\n41722,automobile\n41723,bird\n41724,cat\n41725,truck\n41726,frog\n41727,dog\n41728,cat\n41729,automobile\n41730,airplane\n41731,frog\n41732,cat\n41733,ship\n41734,automobile\n41735,deer\n41736,bird\n41737,dog\n41738,bird\n41739,truck\n41740,ship\n41741,bird\n41742,truck\n41743,cat\n41744,airplane\n41745,bird\n41746,bird\n41747,airplane\n41748,deer\n41749,frog\n41750,airplane\n41751,frog\n41752,truck\n41753,deer\n41754,frog\n41755,deer\n41756,airplane\n41757,horse\n41758,frog\n41759,deer\n41760,dog\n41761,truck\n41762,deer\n41763,dog\n41764,frog\n41765,ship\n41766,cat\n41767,truck\n41768,horse\n41769,deer\n41770,bird\n41771,truck\n41772,ship\n41773,horse\n41774,horse\n41775,deer\n41776,frog\n41777,airplane\n41778,ship\n41779,airplane\n41780,bird\n41781,airplane\n41782,ship\n41783,frog\n41784,frog\n41785,horse\n41786,automobile\n41787,cat\n41788,deer\n41789,frog\n41790,bird\n41791,airplane\n41792,deer\n41793,ship\n41794,bird\n41795,deer\n41796,horse\n41797,deer\n41798,airplane\n41799,dog\n41800,frog\n41801,frog\n41802,bird\n41803,cat\n41804,deer\n41805,deer\n41806,frog\n41807,deer\n41808,bird\n41809,deer\n41810,deer\n41811,automobile\n41812,automobile\n41813,cat\n41814,deer\n41815,bird\n41816,ship\n41817,cat\n41818,dog\n41819,cat\n41820,ship\n41821,cat\n41822,frog\n41823,dog\n41824,cat\n41825,cat\n41826,bird\n41827,deer\n41828,deer\n41829,automobile\n41830,deer\n41831,horse\n41832,airplane\n41833,deer\n41834,deer\n41835,dog\n41836,deer\n41837,airplane\n41838,frog\n41839,frog\n41840,horse\n41841,deer\n41842,ship\n41843,frog\n41844,deer\n41845,ship\n41846,frog\n41847,truck\n41848,dog\n41849,dog\n41850,dog\n41851,deer\n41852,truck\n41853,truck\n41854,truck\n41855,dog\n41856,truck\n41857,airplane\n41858,cat\n41859,ship\n41860,bird\n41861,frog\n41862,cat\n41863,horse\n41864,horse\n41865,cat\n41866,frog\n41867,ship\n41868,deer\n41869,cat\n41870,truck\n41871,airplane\n41872,dog\n41873,automobile\n41874,ship\n41875,frog\n41876,deer\n41877,bird\n41878,airplane\n41879,cat\n41880,horse\n41881,dog\n41882,dog\n41883,cat\n41884,cat\n41885,deer\n41886,deer\n41887,truck\n41888,ship\n41889,frog\n41890,ship\n41891,truck\n41892,frog\n41893,horse\n41894,deer\n41895,deer\n41896,cat\n41897,frog\n41898,ship\n41899,horse\n41900,cat\n41901,dog\n41902,airplane\n41903,cat\n41904,truck\n41905,cat\n41906,truck\n41907,horse\n41908,dog\n41909,automobile\n41910,deer\n41911,bird\n41912,ship\n41913,frog\n41914,cat\n41915,automobile\n41916,automobile\n41917,dog\n41918,airplane\n41919,truck\n41920,horse\n41921,cat\n41922,airplane\n41923,automobile\n41924,frog\n41925,frog\n41926,frog\n41927,airplane\n41928,cat\n41929,truck\n41930,dog\n41931,airplane\n41932,deer\n41933,ship\n41934,deer\n41935,deer\n41936,dog\n41937,bird\n41938,truck\n41939,cat\n41940,horse\n41941,deer\n41942,frog\n41943,airplane\n41944,cat\n41945,ship\n41946,automobile\n41947,airplane\n41948,truck\n41949,horse\n41950,deer\n41951,frog\n41952,ship\n41953,automobile\n41954,ship\n41955,horse\n41956,horse\n41957,dog\n41958,horse\n41959,frog\n41960,deer\n41961,dog\n41962,airplane\n41963,airplane\n41964,bird\n41965,airplane\n41966,ship\n41967,automobile\n41968,bird\n41969,deer\n41970,bird\n41971,ship\n41972,automobile\n41973,frog\n41974,truck\n41975,ship\n41976,deer\n41977,truck\n41978,cat\n41979,deer\n41980,airplane\n41981,ship\n41982,horse\n41983,bird\n41984,deer\n41985,bird\n41986,airplane\n41987,deer\n41988,ship\n41989,ship\n41990,dog\n41991,dog\n41992,dog\n41993,cat\n41994,deer\n41995,truck\n41996,cat\n41997,deer\n41998,dog\n41999,deer\n42000,deer\n42001,horse\n42002,airplane\n42003,deer\n42004,horse\n42005,dog\n42006,airplane\n42007,cat\n42008,cat\n42009,airplane\n42010,deer\n42011,dog\n42012,deer\n42013,dog\n42014,deer\n42015,truck\n42016,airplane\n42017,airplane\n42018,dog\n42019,frog\n42020,automobile\n42021,dog\n42022,bird\n42023,deer\n42024,deer\n42025,deer\n42026,truck\n42027,bird\n42028,deer\n42029,horse\n42030,dog\n42031,cat\n42032,horse\n42033,automobile\n42034,airplane\n42035,cat\n42036,cat\n42037,automobile\n42038,horse\n42039,automobile\n42040,cat\n42041,airplane\n42042,truck\n42043,horse\n42044,deer\n42045,frog\n42046,cat\n42047,dog\n42048,bird\n42049,dog\n42050,frog\n42051,cat\n42052,deer\n42053,cat\n42054,airplane\n42055,frog\n42056,automobile\n42057,dog\n42058,frog\n42059,cat\n42060,automobile\n42061,automobile\n42062,horse\n42063,cat\n42064,cat\n42065,horse\n42066,airplane\n42067,truck\n42068,horse\n42069,deer\n42070,deer\n42071,deer\n42072,cat\n42073,truck\n42074,dog\n42075,airplane\n42076,airplane\n42077,horse\n42078,ship\n42079,truck\n42080,automobile\n42081,horse\n42082,deer\n42083,airplane\n42084,cat\n42085,truck\n42086,airplane\n42087,ship\n42088,truck\n42089,deer\n42090,automobile\n42091,horse\n42092,automobile\n42093,frog\n42094,dog\n42095,ship\n42096,cat\n42097,automobile\n42098,deer\n42099,horse\n42100,truck\n42101,horse\n42102,cat\n42103,bird\n42104,truck\n42105,deer\n42106,deer\n42107,cat\n42108,airplane\n42109,bird\n42110,horse\n42111,automobile\n42112,dog\n42113,deer\n42114,truck\n42115,frog\n42116,deer\n42117,dog\n42118,deer\n42119,truck\n42120,frog\n42121,horse\n42122,deer\n42123,cat\n42124,deer\n42125,deer\n42126,deer\n42127,deer\n42128,deer\n42129,dog\n42130,truck\n42131,truck\n42132,dog\n42133,dog\n42134,automobile\n42135,airplane\n42136,dog\n42137,bird\n42138,bird\n42139,horse\n42140,airplane\n42141,frog\n42142,airplane\n42143,cat\n42144,ship\n42145,deer\n42146,truck\n42147,dog\n42148,truck\n42149,bird\n42150,cat\n42151,airplane\n42152,airplane\n42153,horse\n42154,dog\n42155,frog\n42156,bird\n42157,horse\n42158,airplane\n42159,bird\n42160,dog\n42161,dog\n42162,dog\n42163,dog\n42164,deer\n42165,deer\n42166,horse\n42167,airplane\n42168,ship\n42169,bird\n42170,horse\n42171,ship\n42172,dog\n42173,cat\n42174,ship\n42175,bird\n42176,dog\n42177,horse\n42178,dog\n42179,dog\n42180,airplane\n42181,horse\n42182,airplane\n42183,frog\n42184,cat\n42185,horse\n42186,ship\n42187,ship\n42188,horse\n42189,truck\n42190,frog\n42191,truck\n42192,automobile\n42193,cat\n42194,truck\n42195,ship\n42196,horse\n42197,truck\n42198,automobile\n42199,deer\n42200,cat\n42201,deer\n42202,bird\n42203,bird\n42204,deer\n42205,dog\n42206,dog\n42207,horse\n42208,dog\n42209,cat\n42210,truck\n42211,cat\n42212,truck\n42213,bird\n42214,truck\n42215,horse\n42216,deer\n42217,deer\n42218,deer\n42219,dog\n42220,deer\n42221,automobile\n42222,horse\n42223,truck\n42224,bird\n42225,cat\n42226,cat\n42227,ship\n42228,truck\n42229,automobile\n42230,frog\n42231,automobile\n42232,deer\n42233,automobile\n42234,horse\n42235,ship\n42236,truck\n42237,cat\n42238,automobile\n42239,horse\n42240,bird\n42241,frog\n42242,deer\n42243,truck\n42244,horse\n42245,cat\n42246,ship\n42247,deer\n42248,ship\n42249,ship\n42250,frog\n42251,cat\n42252,ship\n42253,cat\n42254,deer\n42255,cat\n42256,bird\n42257,cat\n42258,cat\n42259,ship\n42260,horse\n42261,frog\n42262,deer\n42263,dog\n42264,frog\n42265,frog\n42266,dog\n42267,deer\n42268,cat\n42269,dog\n42270,horse\n42271,cat\n42272,deer\n42273,truck\n42274,airplane\n42275,cat\n42276,ship\n42277,deer\n42278,automobile\n42279,horse\n42280,bird\n42281,bird\n42282,automobile\n42283,cat\n42284,horse\n42285,truck\n42286,horse\n42287,frog\n42288,cat\n42289,truck\n42290,automobile\n42291,airplane\n42292,bird\n42293,bird\n42294,horse\n42295,frog\n42296,frog\n42297,ship\n42298,horse\n42299,truck\n42300,cat\n42301,automobile\n42302,frog\n42303,truck\n42304,bird\n42305,horse\n42306,cat\n42307,cat\n42308,dog\n42309,ship\n42310,cat\n42311,ship\n42312,deer\n42313,dog\n42314,automobile\n42315,deer\n42316,deer\n42317,deer\n42318,truck\n42319,cat\n42320,bird\n42321,horse\n42322,frog\n42323,ship\n42324,automobile\n42325,bird\n42326,frog\n42327,automobile\n42328,horse\n42329,horse\n42330,bird\n42331,dog\n42332,horse\n42333,dog\n42334,horse\n42335,frog\n42336,horse\n42337,dog\n42338,deer\n42339,frog\n42340,bird\n42341,truck\n42342,bird\n42343,deer\n42344,airplane\n42345,dog\n42346,deer\n42347,automobile\n42348,dog\n42349,cat\n42350,deer\n42351,ship\n42352,truck\n42353,bird\n42354,deer\n42355,ship\n42356,cat\n42357,deer\n42358,dog\n42359,bird\n42360,airplane\n42361,frog\n42362,airplane\n42363,frog\n42364,airplane\n42365,deer\n42366,dog\n42367,horse\n42368,horse\n42369,frog\n42370,dog\n42371,ship\n42372,automobile\n42373,automobile\n42374,deer\n42375,airplane\n42376,airplane\n42377,bird\n42378,frog\n42379,airplane\n42380,cat\n42381,airplane\n42382,truck\n42383,frog\n42384,horse\n42385,frog\n42386,truck\n42387,cat\n42388,cat\n42389,deer\n42390,airplane\n42391,truck\n42392,cat\n42393,ship\n42394,frog\n42395,cat\n42396,frog\n42397,cat\n42398,ship\n42399,deer\n42400,airplane\n42401,airplane\n42402,horse\n42403,ship\n42404,automobile\n42405,frog\n42406,bird\n42407,deer\n42408,cat\n42409,dog\n42410,ship\n42411,frog\n42412,automobile\n42413,dog\n42414,automobile\n42415,frog\n42416,ship\n42417,bird\n42418,truck\n42419,horse\n42420,frog\n42421,automobile\n42422,frog\n42423,frog\n42424,bird\n42425,airplane\n42426,dog\n42427,airplane\n42428,dog\n42429,deer\n42430,dog\n42431,ship\n42432,deer\n42433,automobile\n42434,ship\n42435,ship\n42436,deer\n42437,cat\n42438,cat\n42439,frog\n42440,automobile\n42441,truck\n42442,deer\n42443,automobile\n42444,cat\n42445,deer\n42446,truck\n42447,automobile\n42448,frog\n42449,bird\n42450,airplane\n42451,cat\n42452,truck\n42453,dog\n42454,bird\n42455,deer\n42456,automobile\n42457,ship\n42458,dog\n42459,deer\n42460,truck\n42461,deer\n42462,cat\n42463,deer\n42464,truck\n42465,cat\n42466,ship\n42467,truck\n42468,airplane\n42469,airplane\n42470,horse\n42471,frog\n42472,deer\n42473,automobile\n42474,bird\n42475,airplane\n42476,truck\n42477,deer\n42478,cat\n42479,bird\n42480,cat\n42481,bird\n42482,dog\n42483,dog\n42484,dog\n42485,dog\n42486,cat\n42487,deer\n42488,dog\n42489,deer\n42490,truck\n42491,deer\n42492,frog\n42493,deer\n42494,deer\n42495,airplane\n42496,airplane\n42497,frog\n42498,automobile\n42499,bird\n42500,deer\n42501,ship\n42502,deer\n42503,automobile\n42504,bird\n42505,airplane\n42506,horse\n42507,dog\n42508,cat\n42509,deer\n42510,cat\n42511,automobile\n42512,frog\n42513,deer\n42514,dog\n42515,deer\n42516,airplane\n42517,cat\n42518,frog\n42519,dog\n42520,bird\n42521,deer\n42522,dog\n42523,frog\n42524,frog\n42525,deer\n42526,airplane\n42527,truck\n42528,cat\n42529,horse\n42530,cat\n42531,cat\n42532,cat\n42533,airplane\n42534,frog\n42535,deer\n42536,ship\n42537,bird\n42538,frog\n42539,horse\n42540,truck\n42541,truck\n42542,ship\n42543,cat\n42544,bird\n42545,dog\n42546,frog\n42547,truck\n42548,bird\n42549,deer\n42550,deer\n42551,frog\n42552,deer\n42553,bird\n42554,dog\n42555,ship\n42556,airplane\n42557,frog\n42558,airplane\n42559,dog\n42560,cat\n42561,cat\n42562,frog\n42563,deer\n42564,bird\n42565,cat\n42566,dog\n42567,airplane\n42568,ship\n42569,deer\n42570,horse\n42571,bird\n42572,truck\n42573,bird\n42574,dog\n42575,cat\n42576,cat\n42577,truck\n42578,dog\n42579,cat\n42580,dog\n42581,cat\n42582,truck\n42583,cat\n42584,deer\n42585,deer\n42586,ship\n42587,automobile\n42588,horse\n42589,dog\n42590,horse\n42591,bird\n42592,deer\n42593,bird\n42594,dog\n42595,ship\n42596,airplane\n42597,automobile\n42598,bird\n42599,dog\n42600,horse\n42601,cat\n42602,dog\n42603,frog\n42604,frog\n42605,airplane\n42606,horse\n42607,dog\n42608,airplane\n42609,ship\n42610,truck\n42611,airplane\n42612,cat\n42613,cat\n42614,truck\n42615,dog\n42616,horse\n42617,deer\n42618,horse\n42619,ship\n42620,deer\n42621,dog\n42622,dog\n42623,automobile\n42624,airplane\n42625,automobile\n42626,airplane\n42627,frog\n42628,frog\n42629,airplane\n42630,airplane\n42631,cat\n42632,airplane\n42633,frog\n42634,cat\n42635,truck\n42636,automobile\n42637,cat\n42638,bird\n42639,dog\n42640,frog\n42641,truck\n42642,airplane\n42643,frog\n42644,deer\n42645,deer\n42646,deer\n42647,bird\n42648,frog\n42649,truck\n42650,deer\n42651,frog\n42652,truck\n42653,horse\n42654,airplane\n42655,airplane\n42656,dog\n42657,ship\n42658,truck\n42659,cat\n42660,cat\n42661,deer\n42662,frog\n42663,ship\n42664,airplane\n42665,ship\n42666,ship\n42667,horse\n42668,deer\n42669,dog\n42670,bird\n42671,truck\n42672,frog\n42673,truck\n42674,automobile\n42675,deer\n42676,ship\n42677,truck\n42678,bird\n42679,bird\n42680,horse\n42681,dog\n42682,frog\n42683,deer\n42684,dog\n42685,dog\n42686,dog\n42687,cat\n42688,truck\n42689,deer\n42690,deer\n42691,deer\n42692,ship\n42693,deer\n42694,frog\n42695,cat\n42696,deer\n42697,dog\n42698,truck\n42699,ship\n42700,frog\n42701,bird\n42702,horse\n42703,truck\n42704,bird\n42705,ship\n42706,dog\n42707,bird\n42708,airplane\n42709,frog\n42710,cat\n42711,horse\n42712,bird\n42713,automobile\n42714,dog\n42715,cat\n42716,airplane\n42717,truck\n42718,deer\n42719,cat\n42720,cat\n42721,cat\n42722,deer\n42723,automobile\n42724,cat\n42725,cat\n42726,frog\n42727,ship\n42728,truck\n42729,horse\n42730,ship\n42731,bird\n42732,ship\n42733,frog\n42734,frog\n42735,deer\n42736,airplane\n42737,automobile\n42738,automobile\n42739,ship\n42740,bird\n42741,cat\n42742,truck\n42743,frog\n42744,cat\n42745,cat\n42746,horse\n42747,cat\n42748,cat\n42749,dog\n42750,ship\n42751,truck\n42752,dog\n42753,truck\n42754,airplane\n42755,ship\n42756,cat\n42757,horse\n42758,frog\n42759,automobile\n42760,dog\n42761,dog\n42762,deer\n42763,deer\n42764,deer\n42765,deer\n42766,automobile\n42767,horse\n42768,horse\n42769,frog\n42770,dog\n42771,cat\n42772,frog\n42773,deer\n42774,truck\n42775,deer\n42776,bird\n42777,truck\n42778,horse\n42779,cat\n42780,bird\n42781,bird\n42782,horse\n42783,dog\n42784,frog\n42785,dog\n42786,frog\n42787,horse\n42788,frog\n42789,automobile\n42790,airplane\n42791,frog\n42792,bird\n42793,cat\n42794,bird\n42795,frog\n42796,airplane\n42797,frog\n42798,frog\n42799,dog\n42800,frog\n42801,dog\n42802,deer\n42803,dog\n42804,truck\n42805,bird\n42806,bird\n42807,frog\n42808,frog\n42809,truck\n42810,frog\n42811,truck\n42812,truck\n42813,deer\n42814,dog\n42815,bird\n42816,frog\n42817,truck\n42818,ship\n42819,dog\n42820,horse\n42821,truck\n42822,frog\n42823,frog\n42824,truck\n42825,truck\n42826,dog\n42827,truck\n42828,frog\n42829,dog\n42830,dog\n42831,truck\n42832,bird\n42833,frog\n42834,deer\n42835,cat\n42836,bird\n42837,frog\n42838,bird\n42839,dog\n42840,airplane\n42841,airplane\n42842,dog\n42843,bird\n42844,automobile\n42845,deer\n42846,automobile\n42847,frog\n42848,dog\n42849,truck\n42850,horse\n42851,automobile\n42852,horse\n42853,frog\n42854,deer\n42855,dog\n42856,ship\n42857,deer\n42858,airplane\n42859,ship\n42860,deer\n42861,deer\n42862,horse\n42863,airplane\n42864,dog\n42865,cat\n42866,horse\n42867,horse\n42868,airplane\n42869,bird\n42870,deer\n42871,horse\n42872,cat\n42873,ship\n42874,truck\n42875,frog\n42876,horse\n42877,frog\n42878,cat\n42879,deer\n42880,airplane\n42881,dog\n42882,bird\n42883,dog\n42884,airplane\n42885,deer\n42886,horse\n42887,ship\n42888,dog\n42889,ship\n42890,dog\n42891,frog\n42892,frog\n42893,frog\n42894,ship\n42895,truck\n42896,truck\n42897,bird\n42898,ship\n42899,cat\n42900,automobile\n42901,horse\n42902,truck\n42903,frog\n42904,bird\n42905,dog\n42906,cat\n42907,dog\n42908,ship\n42909,cat\n42910,cat\n42911,deer\n42912,bird\n42913,airplane\n42914,airplane\n42915,cat\n42916,cat\n42917,frog\n42918,automobile\n42919,bird\n42920,frog\n42921,deer\n42922,deer\n42923,dog\n42924,ship\n42925,dog\n42926,cat\n42927,dog\n42928,cat\n42929,bird\n42930,truck\n42931,automobile\n42932,dog\n42933,dog\n42934,ship\n42935,airplane\n42936,bird\n42937,frog\n42938,deer\n42939,deer\n42940,frog\n42941,dog\n42942,cat\n42943,automobile\n42944,frog\n42945,cat\n42946,dog\n42947,frog\n42948,deer\n42949,cat\n42950,bird\n42951,truck\n42952,dog\n42953,airplane\n42954,cat\n42955,horse\n42956,truck\n42957,horse\n42958,truck\n42959,deer\n42960,cat\n42961,frog\n42962,dog\n42963,bird\n42964,cat\n42965,truck\n42966,frog\n42967,ship\n42968,frog\n42969,ship\n42970,truck\n42971,cat\n42972,deer\n42973,deer\n42974,cat\n42975,horse\n42976,ship\n42977,cat\n42978,bird\n42979,horse\n42980,horse\n42981,frog\n42982,bird\n42983,deer\n42984,cat\n42985,dog\n42986,dog\n42987,truck\n42988,cat\n42989,cat\n42990,frog\n42991,dog\n42992,dog\n42993,truck\n42994,dog\n42995,airplane\n42996,horse\n42997,cat\n42998,frog\n42999,cat\n43000,truck\n43001,frog\n43002,deer\n43003,airplane\n43004,deer\n43005,cat\n43006,truck\n43007,airplane\n43008,deer\n43009,truck\n43010,frog\n43011,frog\n43012,deer\n43013,dog\n43014,horse\n43015,dog\n43016,deer\n43017,airplane\n43018,bird\n43019,cat\n43020,frog\n43021,truck\n43022,cat\n43023,horse\n43024,automobile\n43025,bird\n43026,horse\n43027,dog\n43028,cat\n43029,dog\n43030,frog\n43031,deer\n43032,cat\n43033,deer\n43034,bird\n43035,ship\n43036,deer\n43037,cat\n43038,deer\n43039,frog\n43040,deer\n43041,deer\n43042,dog\n43043,dog\n43044,deer\n43045,horse\n43046,dog\n43047,deer\n43048,automobile\n43049,ship\n43050,frog\n43051,airplane\n43052,truck\n43053,cat\n43054,deer\n43055,cat\n43056,automobile\n43057,frog\n43058,deer\n43059,automobile\n43060,cat\n43061,airplane\n43062,cat\n43063,frog\n43064,horse\n43065,frog\n43066,horse\n43067,dog\n43068,horse\n43069,truck\n43070,ship\n43071,dog\n43072,ship\n43073,deer\n43074,airplane\n43075,ship\n43076,automobile\n43077,truck\n43078,horse\n43079,ship\n43080,cat\n43081,automobile\n43082,horse\n43083,airplane\n43084,deer\n43085,cat\n43086,cat\n43087,dog\n43088,frog\n43089,cat\n43090,dog\n43091,cat\n43092,airplane\n43093,deer\n43094,horse\n43095,bird\n43096,cat\n43097,horse\n43098,bird\n43099,deer\n43100,horse\n43101,truck\n43102,airplane\n43103,horse\n43104,horse\n43105,bird\n43106,horse\n43107,truck\n43108,frog\n43109,deer\n43110,truck\n43111,frog\n43112,bird\n43113,frog\n43114,frog\n43115,bird\n43116,ship\n43117,dog\n43118,automobile\n43119,airplane\n43120,airplane\n43121,deer\n43122,deer\n43123,truck\n43124,airplane\n43125,deer\n43126,automobile\n43127,deer\n43128,truck\n43129,truck\n43130,cat\n43131,truck\n43132,frog\n43133,bird\n43134,ship\n43135,frog\n43136,truck\n43137,cat\n43138,dog\n43139,truck\n43140,bird\n43141,deer\n43142,airplane\n43143,deer\n43144,bird\n43145,ship\n43146,ship\n43147,truck\n43148,deer\n43149,bird\n43150,deer\n43151,airplane\n43152,bird\n43153,automobile\n43154,frog\n43155,automobile\n43156,horse\n43157,cat\n43158,frog\n43159,frog\n43160,truck\n43161,airplane\n43162,deer\n43163,deer\n43164,dog\n43165,deer\n43166,dog\n43167,frog\n43168,dog\n43169,automobile\n43170,ship\n43171,cat\n43172,frog\n43173,horse\n43174,cat\n43175,truck\n43176,bird\n43177,bird\n43178,frog\n43179,deer\n43180,truck\n43181,airplane\n43182,cat\n43183,cat\n43184,ship\n43185,cat\n43186,dog\n43187,horse\n43188,cat\n43189,dog\n43190,cat\n43191,deer\n43192,frog\n43193,deer\n43194,truck\n43195,airplane\n43196,ship\n43197,automobile\n43198,automobile\n43199,ship\n43200,automobile\n43201,ship\n43202,ship\n43203,deer\n43204,ship\n43205,horse\n43206,frog\n43207,airplane\n43208,airplane\n43209,dog\n43210,automobile\n43211,cat\n43212,frog\n43213,horse\n43214,automobile\n43215,ship\n43216,airplane\n43217,deer\n43218,truck\n43219,airplane\n43220,cat\n43221,dog\n43222,cat\n43223,bird\n43224,deer\n43225,dog\n43226,truck\n43227,cat\n43228,cat\n43229,cat\n43230,airplane\n43231,automobile\n43232,horse\n43233,cat\n43234,dog\n43235,frog\n43236,bird\n43237,airplane\n43238,truck\n43239,horse\n43240,deer\n43241,bird\n43242,deer\n43243,cat\n43244,frog\n43245,deer\n43246,automobile\n43247,frog\n43248,airplane\n43249,deer\n43250,cat\n43251,truck\n43252,deer\n43253,cat\n43254,ship\n43255,horse\n43256,cat\n43257,dog\n43258,deer\n43259,frog\n43260,horse\n43261,horse\n43262,automobile\n43263,cat\n43264,deer\n43265,deer\n43266,deer\n43267,frog\n43268,deer\n43269,horse\n43270,truck\n43271,automobile\n43272,bird\n43273,airplane\n43274,truck\n43275,deer\n43276,horse\n43277,bird\n43278,ship\n43279,horse\n43280,ship\n43281,ship\n43282,frog\n43283,ship\n43284,bird\n43285,bird\n43286,bird\n43287,cat\n43288,bird\n43289,ship\n43290,dog\n43291,dog\n43292,truck\n43293,truck\n43294,ship\n43295,deer\n43296,ship\n43297,ship\n43298,truck\n43299,horse\n43300,deer\n43301,frog\n43302,airplane\n43303,airplane\n43304,dog\n43305,bird\n43306,dog\n43307,cat\n43308,dog\n43309,cat\n43310,ship\n43311,ship\n43312,ship\n43313,dog\n43314,dog\n43315,automobile\n43316,cat\n43317,dog\n43318,airplane\n43319,deer\n43320,airplane\n43321,truck\n43322,cat\n43323,airplane\n43324,frog\n43325,frog\n43326,deer\n43327,cat\n43328,dog\n43329,truck\n43330,dog\n43331,frog\n43332,horse\n43333,cat\n43334,ship\n43335,truck\n43336,ship\n43337,horse\n43338,frog\n43339,dog\n43340,ship\n43341,dog\n43342,cat\n43343,dog\n43344,frog\n43345,bird\n43346,deer\n43347,airplane\n43348,frog\n43349,truck\n43350,deer\n43351,truck\n43352,ship\n43353,horse\n43354,dog\n43355,airplane\n43356,automobile\n43357,bird\n43358,bird\n43359,airplane\n43360,truck\n43361,ship\n43362,cat\n43363,cat\n43364,deer\n43365,cat\n43366,deer\n43367,dog\n43368,truck\n43369,cat\n43370,horse\n43371,ship\n43372,deer\n43373,automobile\n43374,horse\n43375,frog\n43376,deer\n43377,deer\n43378,cat\n43379,bird\n43380,truck\n43381,truck\n43382,ship\n43383,dog\n43384,frog\n43385,truck\n43386,airplane\n43387,automobile\n43388,frog\n43389,truck\n43390,horse\n43391,airplane\n43392,ship\n43393,dog\n43394,frog\n43395,automobile\n43396,automobile\n43397,truck\n43398,horse\n43399,automobile\n43400,cat\n43401,airplane\n43402,bird\n43403,ship\n43404,frog\n43405,cat\n43406,dog\n43407,horse\n43408,horse\n43409,ship\n43410,bird\n43411,ship\n43412,deer\n43413,ship\n43414,bird\n43415,cat\n43416,bird\n43417,truck\n43418,horse\n43419,airplane\n43420,truck\n43421,horse\n43422,horse\n43423,automobile\n43424,truck\n43425,cat\n43426,dog\n43427,cat\n43428,deer\n43429,ship\n43430,truck\n43431,frog\n43432,cat\n43433,deer\n43434,truck\n43435,dog\n43436,frog\n43437,airplane\n43438,deer\n43439,airplane\n43440,ship\n43441,ship\n43442,frog\n43443,horse\n43444,bird\n43445,frog\n43446,airplane\n43447,horse\n43448,airplane\n43449,dog\n43450,frog\n43451,deer\n43452,bird\n43453,bird\n43454,frog\n43455,automobile\n43456,frog\n43457,dog\n43458,airplane\n43459,ship\n43460,airplane\n43461,cat\n43462,horse\n43463,ship\n43464,horse\n43465,cat\n43466,frog\n43467,deer\n43468,frog\n43469,truck\n43470,deer\n43471,cat\n43472,ship\n43473,cat\n43474,deer\n43475,dog\n43476,horse\n43477,deer\n43478,bird\n43479,deer\n43480,horse\n43481,dog\n43482,bird\n43483,automobile\n43484,deer\n43485,cat\n43486,dog\n43487,airplane\n43488,bird\n43489,cat\n43490,bird\n43491,airplane\n43492,airplane\n43493,deer\n43494,frog\n43495,horse\n43496,frog\n43497,bird\n43498,dog\n43499,horse\n43500,frog\n43501,cat\n43502,truck\n43503,bird\n43504,deer\n43505,airplane\n43506,bird\n43507,bird\n43508,ship\n43509,cat\n43510,cat\n43511,airplane\n43512,airplane\n43513,horse\n43514,frog\n43515,dog\n43516,deer\n43517,dog\n43518,frog\n43519,horse\n43520,ship\n43521,deer\n43522,dog\n43523,cat\n43524,automobile\n43525,horse\n43526,automobile\n43527,cat\n43528,ship\n43529,dog\n43530,cat\n43531,airplane\n43532,airplane\n43533,bird\n43534,frog\n43535,dog\n43536,cat\n43537,truck\n43538,ship\n43539,frog\n43540,frog\n43541,ship\n43542,ship\n43543,truck\n43544,bird\n43545,truck\n43546,automobile\n43547,truck\n43548,deer\n43549,frog\n43550,truck\n43551,deer\n43552,airplane\n43553,dog\n43554,airplane\n43555,deer\n43556,dog\n43557,bird\n43558,airplane\n43559,ship\n43560,deer\n43561,cat\n43562,automobile\n43563,deer\n43564,deer\n43565,automobile\n43566,cat\n43567,cat\n43568,automobile\n43569,horse\n43570,truck\n43571,deer\n43572,cat\n43573,automobile\n43574,cat\n43575,airplane\n43576,cat\n43577,cat\n43578,truck\n43579,airplane\n43580,dog\n43581,dog\n43582,deer\n43583,horse\n43584,airplane\n43585,frog\n43586,cat\n43587,airplane\n43588,deer\n43589,deer\n43590,ship\n43591,cat\n43592,deer\n43593,ship\n43594,bird\n43595,deer\n43596,automobile\n43597,cat\n43598,cat\n43599,truck\n43600,horse\n43601,deer\n43602,dog\n43603,dog\n43604,cat\n43605,automobile\n43606,truck\n43607,dog\n43608,truck\n43609,dog\n43610,ship\n43611,cat\n43612,horse\n43613,automobile\n43614,frog\n43615,frog\n43616,frog\n43617,dog\n43618,frog\n43619,truck\n43620,airplane\n43621,bird\n43622,frog\n43623,dog\n43624,bird\n43625,frog\n43626,automobile\n43627,airplane\n43628,automobile\n43629,automobile\n43630,truck\n43631,truck\n43632,deer\n43633,automobile\n43634,automobile\n43635,truck\n43636,cat\n43637,bird\n43638,bird\n43639,cat\n43640,deer\n43641,deer\n43642,cat\n43643,dog\n43644,truck\n43645,dog\n43646,horse\n43647,bird\n43648,frog\n43649,frog\n43650,horse\n43651,deer\n43652,frog\n43653,airplane\n43654,cat\n43655,frog\n43656,truck\n43657,cat\n43658,airplane\n43659,frog\n43660,cat\n43661,cat\n43662,deer\n43663,frog\n43664,cat\n43665,ship\n43666,automobile\n43667,deer\n43668,automobile\n43669,airplane\n43670,horse\n43671,cat\n43672,automobile\n43673,cat\n43674,automobile\n43675,frog\n43676,ship\n43677,airplane\n43678,horse\n43679,truck\n43680,truck\n43681,cat\n43682,deer\n43683,automobile\n43684,frog\n43685,truck\n43686,horse\n43687,ship\n43688,truck\n43689,cat\n43690,cat\n43691,cat\n43692,bird\n43693,horse\n43694,cat\n43695,dog\n43696,bird\n43697,horse\n43698,horse\n43699,cat\n43700,truck\n43701,dog\n43702,cat\n43703,automobile\n43704,deer\n43705,deer\n43706,bird\n43707,frog\n43708,dog\n43709,deer\n43710,cat\n43711,dog\n43712,truck\n43713,ship\n43714,automobile\n43715,frog\n43716,ship\n43717,truck\n43718,deer\n43719,cat\n43720,airplane\n43721,horse\n43722,airplane\n43723,bird\n43724,automobile\n43725,horse\n43726,cat\n43727,airplane\n43728,bird\n43729,dog\n43730,bird\n43731,ship\n43732,cat\n43733,horse\n43734,horse\n43735,truck\n43736,deer\n43737,dog\n43738,deer\n43739,bird\n43740,truck\n43741,bird\n43742,dog\n43743,frog\n43744,dog\n43745,bird\n43746,truck\n43747,airplane\n43748,dog\n43749,deer\n43750,truck\n43751,deer\n43752,ship\n43753,airplane\n43754,truck\n43755,cat\n43756,dog\n43757,frog\n43758,airplane\n43759,dog\n43760,ship\n43761,horse\n43762,airplane\n43763,dog\n43764,horse\n43765,bird\n43766,ship\n43767,cat\n43768,frog\n43769,dog\n43770,airplane\n43771,cat\n43772,ship\n43773,deer\n43774,bird\n43775,horse\n43776,ship\n43777,ship\n43778,truck\n43779,frog\n43780,horse\n43781,ship\n43782,dog\n43783,cat\n43784,automobile\n43785,bird\n43786,cat\n43787,airplane\n43788,dog\n43789,horse\n43790,airplane\n43791,dog\n43792,cat\n43793,truck\n43794,cat\n43795,truck\n43796,ship\n43797,truck\n43798,bird\n43799,airplane\n43800,ship\n43801,bird\n43802,deer\n43803,truck\n43804,cat\n43805,airplane\n43806,bird\n43807,deer\n43808,truck\n43809,dog\n43810,truck\n43811,ship\n43812,truck\n43813,frog\n43814,automobile\n43815,deer\n43816,horse\n43817,truck\n43818,truck\n43819,automobile\n43820,horse\n43821,truck\n43822,ship\n43823,dog\n43824,cat\n43825,airplane\n43826,cat\n43827,deer\n43828,deer\n43829,cat\n43830,cat\n43831,airplane\n43832,bird\n43833,automobile\n43834,frog\n43835,deer\n43836,airplane\n43837,truck\n43838,automobile\n43839,cat\n43840,ship\n43841,dog\n43842,cat\n43843,dog\n43844,deer\n43845,deer\n43846,truck\n43847,dog\n43848,dog\n43849,frog\n43850,deer\n43851,cat\n43852,frog\n43853,horse\n43854,airplane\n43855,truck\n43856,horse\n43857,cat\n43858,automobile\n43859,horse\n43860,dog\n43861,deer\n43862,cat\n43863,dog\n43864,frog\n43865,automobile\n43866,deer\n43867,truck\n43868,automobile\n43869,ship\n43870,truck\n43871,airplane\n43872,deer\n43873,cat\n43874,cat\n43875,airplane\n43876,horse\n43877,ship\n43878,truck\n43879,horse\n43880,truck\n43881,cat\n43882,deer\n43883,horse\n43884,truck\n43885,automobile\n43886,cat\n43887,frog\n43888,frog\n43889,cat\n43890,deer\n43891,ship\n43892,frog\n43893,airplane\n43894,dog\n43895,deer\n43896,horse\n43897,horse\n43898,horse\n43899,cat\n43900,dog\n43901,airplane\n43902,cat\n43903,dog\n43904,ship\n43905,automobile\n43906,deer\n43907,dog\n43908,deer\n43909,ship\n43910,deer\n43911,horse\n43912,deer\n43913,bird\n43914,ship\n43915,bird\n43916,airplane\n43917,ship\n43918,cat\n43919,cat\n43920,deer\n43921,bird\n43922,truck\n43923,cat\n43924,automobile\n43925,dog\n43926,ship\n43927,airplane\n43928,bird\n43929,deer\n43930,horse\n43931,frog\n43932,truck\n43933,cat\n43934,frog\n43935,deer\n43936,horse\n43937,truck\n43938,bird\n43939,deer\n43940,horse\n43941,deer\n43942,automobile\n43943,bird\n43944,airplane\n43945,airplane\n43946,ship\n43947,automobile\n43948,horse\n43949,frog\n43950,deer\n43951,cat\n43952,deer\n43953,truck\n43954,automobile\n43955,frog\n43956,bird\n43957,bird\n43958,deer\n43959,cat\n43960,truck\n43961,truck\n43962,truck\n43963,deer\n43964,cat\n43965,cat\n43966,deer\n43967,automobile\n43968,horse\n43969,dog\n43970,cat\n43971,bird\n43972,horse\n43973,truck\n43974,automobile\n43975,deer\n43976,cat\n43977,horse\n43978,cat\n43979,horse\n43980,truck\n43981,cat\n43982,deer\n43983,bird\n43984,horse\n43985,bird\n43986,truck\n43987,automobile\n43988,airplane\n43989,horse\n43990,automobile\n43991,frog\n43992,horse\n43993,airplane\n43994,airplane\n43995,dog\n43996,frog\n43997,frog\n43998,cat\n43999,cat\n44000,airplane\n44001,horse\n44002,automobile\n44003,ship\n44004,cat\n44005,automobile\n44006,frog\n44007,cat\n44008,truck\n44009,cat\n44010,dog\n44011,truck\n44012,ship\n44013,horse\n44014,cat\n44015,airplane\n44016,deer\n44017,automobile\n44018,truck\n44019,ship\n44020,deer\n44021,ship\n44022,frog\n44023,cat\n44024,deer\n44025,automobile\n44026,ship\n44027,frog\n44028,airplane\n44029,airplane\n44030,bird\n44031,cat\n44032,cat\n44033,automobile\n44034,airplane\n44035,truck\n44036,bird\n44037,ship\n44038,frog\n44039,cat\n44040,truck\n44041,automobile\n44042,cat\n44043,deer\n44044,dog\n44045,automobile\n44046,truck\n44047,deer\n44048,ship\n44049,deer\n44050,horse\n44051,deer\n44052,dog\n44053,deer\n44054,cat\n44055,truck\n44056,bird\n44057,truck\n44058,automobile\n44059,frog\n44060,automobile\n44061,truck\n44062,frog\n44063,automobile\n44064,dog\n44065,ship\n44066,horse\n44067,dog\n44068,deer\n44069,airplane\n44070,cat\n44071,ship\n44072,dog\n44073,frog\n44074,cat\n44075,ship\n44076,dog\n44077,deer\n44078,automobile\n44079,horse\n44080,ship\n44081,cat\n44082,airplane\n44083,deer\n44084,frog\n44085,truck\n44086,cat\n44087,ship\n44088,truck\n44089,truck\n44090,deer\n44091,dog\n44092,truck\n44093,truck\n44094,deer\n44095,ship\n44096,automobile\n44097,ship\n44098,bird\n44099,deer\n44100,horse\n44101,horse\n44102,truck\n44103,cat\n44104,airplane\n44105,automobile\n44106,truck\n44107,bird\n44108,truck\n44109,dog\n44110,airplane\n44111,deer\n44112,deer\n44113,automobile\n44114,frog\n44115,frog\n44116,airplane\n44117,truck\n44118,dog\n44119,automobile\n44120,ship\n44121,cat\n44122,airplane\n44123,bird\n44124,horse\n44125,dog\n44126,dog\n44127,frog\n44128,dog\n44129,dog\n44130,ship\n44131,airplane\n44132,cat\n44133,horse\n44134,automobile\n44135,airplane\n44136,dog\n44137,frog\n44138,frog\n44139,cat\n44140,deer\n44141,frog\n44142,cat\n44143,dog\n44144,bird\n44145,horse\n44146,truck\n44147,frog\n44148,airplane\n44149,frog\n44150,truck\n44151,truck\n44152,automobile\n44153,horse\n44154,airplane\n44155,automobile\n44156,deer\n44157,bird\n44158,dog\n44159,truck\n44160,horse\n44161,frog\n44162,cat\n44163,airplane\n44164,deer\n44165,ship\n44166,airplane\n44167,automobile\n44168,truck\n44169,bird\n44170,deer\n44171,ship\n44172,frog\n44173,dog\n44174,horse\n44175,bird\n44176,truck\n44177,ship\n44178,dog\n44179,dog\n44180,cat\n44181,dog\n44182,airplane\n44183,automobile\n44184,ship\n44185,dog\n44186,deer\n44187,automobile\n44188,ship\n44189,ship\n44190,deer\n44191,cat\n44192,cat\n44193,cat\n44194,dog\n44195,frog\n44196,automobile\n44197,deer\n44198,cat\n44199,dog\n44200,cat\n44201,truck\n44202,frog\n44203,dog\n44204,frog\n44205,bird\n44206,frog\n44207,deer\n44208,ship\n44209,automobile\n44210,bird\n44211,frog\n44212,ship\n44213,truck\n44214,automobile\n44215,deer\n44216,cat\n44217,horse\n44218,bird\n44219,ship\n44220,frog\n44221,horse\n44222,dog\n44223,dog\n44224,dog\n44225,bird\n44226,cat\n44227,dog\n44228,cat\n44229,cat\n44230,ship\n44231,frog\n44232,truck\n44233,cat\n44234,truck\n44235,cat\n44236,bird\n44237,airplane\n44238,cat\n44239,truck\n44240,cat\n44241,horse\n44242,truck\n44243,deer\n44244,ship\n44245,ship\n44246,bird\n44247,bird\n44248,airplane\n44249,airplane\n44250,ship\n44251,deer\n44252,truck\n44253,cat\n44254,bird\n44255,frog\n44256,frog\n44257,airplane\n44258,horse\n44259,airplane\n44260,airplane\n44261,dog\n44262,ship\n44263,deer\n44264,cat\n44265,cat\n44266,deer\n44267,dog\n44268,dog\n44269,cat\n44270,bird\n44271,automobile\n44272,cat\n44273,ship\n44274,cat\n44275,frog\n44276,bird\n44277,deer\n44278,cat\n44279,horse\n44280,bird\n44281,truck\n44282,frog\n44283,dog\n44284,truck\n44285,frog\n44286,cat\n44287,automobile\n44288,bird\n44289,bird\n44290,automobile\n44291,bird\n44292,cat\n44293,dog\n44294,frog\n44295,frog\n44296,frog\n44297,horse\n44298,cat\n44299,automobile\n44300,truck\n44301,deer\n44302,bird\n44303,truck\n44304,horse\n44305,horse\n44306,horse\n44307,airplane\n44308,cat\n44309,ship\n44310,truck\n44311,deer\n44312,automobile\n44313,ship\n44314,bird\n44315,dog\n44316,horse\n44317,ship\n44318,bird\n44319,ship\n44320,airplane\n44321,dog\n44322,ship\n44323,cat\n44324,deer\n44325,cat\n44326,airplane\n44327,airplane\n44328,truck\n44329,frog\n44330,frog\n44331,dog\n44332,cat\n44333,frog\n44334,cat\n44335,cat\n44336,bird\n44337,deer\n44338,truck\n44339,ship\n44340,frog\n44341,ship\n44342,truck\n44343,deer\n44344,dog\n44345,frog\n44346,bird\n44347,bird\n44348,cat\n44349,deer\n44350,frog\n44351,deer\n44352,bird\n44353,cat\n44354,bird\n44355,horse\n44356,cat\n44357,horse\n44358,truck\n44359,cat\n44360,horse\n44361,horse\n44362,frog\n44363,deer\n44364,truck\n44365,deer\n44366,horse\n44367,cat\n44368,bird\n44369,deer\n44370,frog\n44371,frog\n44372,airplane\n44373,frog\n44374,dog\n44375,ship\n44376,deer\n44377,deer\n44378,ship\n44379,frog\n44380,truck\n44381,horse\n44382,truck\n44383,frog\n44384,truck\n44385,ship\n44386,deer\n44387,dog\n44388,horse\n44389,frog\n44390,horse\n44391,bird\n44392,horse\n44393,dog\n44394,frog\n44395,horse\n44396,dog\n44397,cat\n44398,frog\n44399,cat\n44400,bird\n44401,deer\n44402,cat\n44403,horse\n44404,cat\n44405,automobile\n44406,dog\n44407,airplane\n44408,ship\n44409,bird\n44410,horse\n44411,dog\n44412,airplane\n44413,horse\n44414,airplane\n44415,deer\n44416,cat\n44417,cat\n44418,truck\n44419,ship\n44420,horse\n44421,bird\n44422,ship\n44423,automobile\n44424,cat\n44425,ship\n44426,truck\n44427,bird\n44428,cat\n44429,truck\n44430,frog\n44431,automobile\n44432,bird\n44433,cat\n44434,dog\n44435,airplane\n44436,cat\n44437,truck\n44438,airplane\n44439,ship\n44440,dog\n44441,bird\n44442,truck\n44443,cat\n44444,truck\n44445,deer\n44446,horse\n44447,frog\n44448,deer\n44449,truck\n44450,horse\n44451,horse\n44452,bird\n44453,frog\n44454,deer\n44455,truck\n44456,ship\n44457,frog\n44458,dog\n44459,automobile\n44460,cat\n44461,deer\n44462,airplane\n44463,frog\n44464,dog\n44465,horse\n44466,airplane\n44467,airplane\n44468,automobile\n44469,frog\n44470,dog\n44471,dog\n44472,dog\n44473,airplane\n44474,horse\n44475,airplane\n44476,frog\n44477,deer\n44478,airplane\n44479,cat\n44480,dog\n44481,horse\n44482,dog\n44483,cat\n44484,frog\n44485,dog\n44486,airplane\n44487,airplane\n44488,horse\n44489,dog\n44490,cat\n44491,deer\n44492,deer\n44493,cat\n44494,cat\n44495,truck\n44496,cat\n44497,cat\n44498,dog\n44499,ship\n44500,cat\n44501,bird\n44502,horse\n44503,deer\n44504,horse\n44505,airplane\n44506,bird\n44507,bird\n44508,bird\n44509,frog\n44510,automobile\n44511,deer\n44512,frog\n44513,ship\n44514,cat\n44515,deer\n44516,truck\n44517,horse\n44518,frog\n44519,dog\n44520,ship\n44521,ship\n44522,deer\n44523,deer\n44524,dog\n44525,truck\n44526,airplane\n44527,automobile\n44528,deer\n44529,truck\n44530,frog\n44531,automobile\n44532,deer\n44533,automobile\n44534,horse\n44535,truck\n44536,bird\n44537,ship\n44538,horse\n44539,deer\n44540,cat\n44541,frog\n44542,horse\n44543,ship\n44544,cat\n44545,frog\n44546,cat\n44547,truck\n44548,deer\n44549,ship\n44550,automobile\n44551,dog\n44552,automobile\n44553,airplane\n44554,dog\n44555,truck\n44556,airplane\n44557,deer\n44558,cat\n44559,truck\n44560,bird\n44561,cat\n44562,deer\n44563,frog\n44564,airplane\n44565,cat\n44566,bird\n44567,automobile\n44568,cat\n44569,ship\n44570,deer\n44571,bird\n44572,truck\n44573,truck\n44574,horse\n44575,frog\n44576,dog\n44577,frog\n44578,truck\n44579,ship\n44580,ship\n44581,cat\n44582,bird\n44583,airplane\n44584,airplane\n44585,cat\n44586,cat\n44587,dog\n44588,frog\n44589,dog\n44590,bird\n44591,dog\n44592,bird\n44593,horse\n44594,deer\n44595,horse\n44596,truck\n44597,bird\n44598,deer\n44599,airplane\n44600,airplane\n44601,ship\n44602,truck\n44603,ship\n44604,deer\n44605,deer\n44606,frog\n44607,bird\n44608,automobile\n44609,automobile\n44610,frog\n44611,automobile\n44612,dog\n44613,truck\n44614,airplane\n44615,truck\n44616,cat\n44617,deer\n44618,airplane\n44619,deer\n44620,automobile\n44621,horse\n44622,truck\n44623,frog\n44624,deer\n44625,ship\n44626,horse\n44627,horse\n44628,bird\n44629,dog\n44630,deer\n44631,deer\n44632,airplane\n44633,deer\n44634,airplane\n44635,airplane\n44636,airplane\n44637,truck\n44638,horse\n44639,dog\n44640,frog\n44641,horse\n44642,truck\n44643,bird\n44644,automobile\n44645,airplane\n44646,bird\n44647,bird\n44648,cat\n44649,automobile\n44650,truck\n44651,truck\n44652,deer\n44653,truck\n44654,frog\n44655,airplane\n44656,truck\n44657,deer\n44658,frog\n44659,dog\n44660,airplane\n44661,dog\n44662,cat\n44663,airplane\n44664,ship\n44665,horse\n44666,dog\n44667,dog\n44668,truck\n44669,frog\n44670,airplane\n44671,bird\n44672,truck\n44673,deer\n44674,deer\n44675,deer\n44676,truck\n44677,automobile\n44678,dog\n44679,cat\n44680,frog\n44681,bird\n44682,airplane\n44683,deer\n44684,deer\n44685,cat\n44686,deer\n44687,frog\n44688,horse\n44689,dog\n44690,airplane\n44691,automobile\n44692,automobile\n44693,deer\n44694,deer\n44695,deer\n44696,horse\n44697,dog\n44698,cat\n44699,cat\n44700,frog\n44701,ship\n44702,deer\n44703,deer\n44704,horse\n44705,truck\n44706,deer\n44707,frog\n44708,dog\n44709,bird\n44710,dog\n44711,horse\n44712,truck\n44713,horse\n44714,deer\n44715,deer\n44716,ship\n44717,cat\n44718,deer\n44719,deer\n44720,deer\n44721,bird\n44722,horse\n44723,deer\n44724,cat\n44725,cat\n44726,horse\n44727,dog\n44728,deer\n44729,frog\n44730,dog\n44731,dog\n44732,frog\n44733,cat\n44734,ship\n44735,cat\n44736,frog\n44737,ship\n44738,dog\n44739,truck\n44740,truck\n44741,ship\n44742,frog\n44743,frog\n44744,frog\n44745,automobile\n44746,cat\n44747,cat\n44748,ship\n44749,deer\n44750,deer\n44751,automobile\n44752,ship\n44753,frog\n44754,truck\n44755,frog\n44756,deer\n44757,ship\n44758,automobile\n44759,cat\n44760,truck\n44761,dog\n44762,deer\n44763,frog\n44764,horse\n44765,automobile\n44766,dog\n44767,frog\n44768,automobile\n44769,dog\n44770,horse\n44771,deer\n44772,deer\n44773,ship\n44774,automobile\n44775,automobile\n44776,dog\n44777,automobile\n44778,horse\n44779,deer\n44780,bird\n44781,horse\n44782,frog\n44783,truck\n44784,bird\n44785,ship\n44786,cat\n44787,bird\n44788,deer\n44789,cat\n44790,dog\n44791,deer\n44792,automobile\n44793,airplane\n44794,cat\n44795,frog\n44796,deer\n44797,bird\n44798,airplane\n44799,bird\n44800,dog\n44801,deer\n44802,cat\n44803,ship\n44804,frog\n44805,airplane\n44806,bird\n44807,frog\n44808,truck\n44809,truck\n44810,airplane\n44811,cat\n44812,frog\n44813,horse\n44814,deer\n44815,ship\n44816,bird\n44817,truck\n44818,deer\n44819,automobile\n44820,frog\n44821,bird\n44822,dog\n44823,airplane\n44824,truck\n44825,ship\n44826,airplane\n44827,deer\n44828,frog\n44829,cat\n44830,airplane\n44831,ship\n44832,deer\n44833,deer\n44834,bird\n44835,deer\n44836,truck\n44837,frog\n44838,cat\n44839,bird\n44840,frog\n44841,ship\n44842,deer\n44843,horse\n44844,horse\n44845,bird\n44846,truck\n44847,deer\n44848,ship\n44849,frog\n44850,ship\n44851,dog\n44852,automobile\n44853,ship\n44854,cat\n44855,airplane\n44856,truck\n44857,automobile\n44858,truck\n44859,deer\n44860,airplane\n44861,dog\n44862,airplane\n44863,horse\n44864,truck\n44865,cat\n44866,ship\n44867,dog\n44868,airplane\n44869,frog\n44870,truck\n44871,bird\n44872,dog\n44873,truck\n44874,automobile\n44875,cat\n44876,deer\n44877,truck\n44878,truck\n44879,deer\n44880,cat\n44881,horse\n44882,deer\n44883,horse\n44884,dog\n44885,truck\n44886,ship\n44887,cat\n44888,ship\n44889,horse\n44890,frog\n44891,deer\n44892,cat\n44893,deer\n44894,bird\n44895,dog\n44896,deer\n44897,cat\n44898,bird\n44899,horse\n44900,automobile\n44901,airplane\n44902,cat\n44903,truck\n44904,dog\n44905,cat\n44906,airplane\n44907,automobile\n44908,dog\n44909,ship\n44910,truck\n44911,frog\n44912,cat\n44913,dog\n44914,deer\n44915,frog\n44916,ship\n44917,bird\n44918,deer\n44919,truck\n44920,horse\n44921,deer\n44922,frog\n44923,ship\n44924,deer\n44925,cat\n44926,dog\n44927,deer\n44928,bird\n44929,deer\n44930,deer\n44931,airplane\n44932,ship\n44933,deer\n44934,horse\n44935,truck\n44936,deer\n44937,automobile\n44938,airplane\n44939,dog\n44940,bird\n44941,ship\n44942,deer\n44943,dog\n44944,automobile\n44945,deer\n44946,deer\n44947,bird\n44948,frog\n44949,horse\n44950,bird\n44951,deer\n44952,deer\n44953,truck\n44954,truck\n44955,ship\n44956,ship\n44957,horse\n44958,automobile\n44959,frog\n44960,automobile\n44961,cat\n44962,deer\n44963,ship\n44964,horse\n44965,cat\n44966,automobile\n44967,bird\n44968,horse\n44969,horse\n44970,ship\n44971,cat\n44972,truck\n44973,bird\n44974,truck\n44975,dog\n44976,horse\n44977,truck\n44978,truck\n44979,bird\n44980,automobile\n44981,frog\n44982,cat\n44983,deer\n44984,horse\n44985,deer\n44986,automobile\n44987,automobile\n44988,horse\n44989,cat\n44990,horse\n44991,horse\n44992,airplane\n44993,cat\n44994,bird\n44995,frog\n44996,cat\n44997,frog\n44998,frog\n44999,horse\n45000,dog\n45001,bird\n45002,horse\n45003,dog\n45004,deer\n45005,automobile\n45006,airplane\n45007,truck\n45008,bird\n45009,bird\n45010,deer\n45011,airplane\n45012,cat\n45013,bird\n45014,airplane\n45015,truck\n45016,deer\n45017,dog\n45018,deer\n45019,horse\n45020,frog\n45021,bird\n45022,deer\n45023,automobile\n45024,frog\n45025,bird\n45026,deer\n45027,frog\n45028,truck\n45029,truck\n45030,cat\n45031,horse\n45032,horse\n45033,bird\n45034,frog\n45035,bird\n45036,horse\n45037,bird\n45038,dog\n45039,frog\n45040,bird\n45041,frog\n45042,cat\n45043,automobile\n45044,horse\n45045,deer\n45046,cat\n45047,deer\n45048,dog\n45049,truck\n45050,cat\n45051,deer\n45052,airplane\n45053,frog\n45054,dog\n45055,horse\n45056,deer\n45057,truck\n45058,cat\n45059,frog\n45060,bird\n45061,frog\n45062,bird\n45063,ship\n45064,truck\n45065,dog\n45066,horse\n45067,bird\n45068,deer\n45069,bird\n45070,frog\n45071,ship\n45072,horse\n45073,ship\n45074,bird\n45075,airplane\n45076,airplane\n45077,horse\n45078,truck\n45079,horse\n45080,horse\n45081,deer\n45082,airplane\n45083,cat\n45084,frog\n45085,cat\n45086,deer\n45087,horse\n45088,cat\n45089,deer\n45090,frog\n45091,automobile\n45092,horse\n45093,dog\n45094,dog\n45095,cat\n45096,truck\n45097,deer\n45098,automobile\n45099,ship\n45100,horse\n45101,cat\n45102,frog\n45103,horse\n45104,horse\n45105,bird\n45106,deer\n45107,ship\n45108,automobile\n45109,deer\n45110,cat\n45111,airplane\n45112,automobile\n45113,deer\n45114,ship\n45115,frog\n45116,cat\n45117,bird\n45118,frog\n45119,frog\n45120,frog\n45121,dog\n45122,automobile\n45123,airplane\n45124,dog\n45125,truck\n45126,deer\n45127,cat\n45128,airplane\n45129,automobile\n45130,airplane\n45131,automobile\n45132,deer\n45133,bird\n45134,horse\n45135,deer\n45136,cat\n45137,dog\n45138,bird\n45139,cat\n45140,airplane\n45141,dog\n45142,dog\n45143,frog\n45144,airplane\n45145,horse\n45146,airplane\n45147,cat\n45148,airplane\n45149,truck\n45150,dog\n45151,truck\n45152,truck\n45153,deer\n45154,dog\n45155,deer\n45156,truck\n45157,ship\n45158,ship\n45159,ship\n45160,airplane\n45161,bird\n45162,frog\n45163,bird\n45164,horse\n45165,cat\n45166,horse\n45167,ship\n45168,frog\n45169,deer\n45170,bird\n45171,frog\n45172,frog\n45173,automobile\n45174,ship\n45175,deer\n45176,horse\n45177,horse\n45178,frog\n45179,bird\n45180,deer\n45181,deer\n45182,bird\n45183,airplane\n45184,frog\n45185,ship\n45186,cat\n45187,frog\n45188,cat\n45189,cat\n45190,deer\n45191,truck\n45192,horse\n45193,cat\n45194,frog\n45195,airplane\n45196,ship\n45197,cat\n45198,cat\n45199,dog\n45200,airplane\n45201,frog\n45202,airplane\n45203,dog\n45204,automobile\n45205,truck\n45206,cat\n45207,frog\n45208,bird\n45209,frog\n45210,dog\n45211,cat\n45212,horse\n45213,dog\n45214,ship\n45215,automobile\n45216,cat\n45217,truck\n45218,frog\n45219,automobile\n45220,dog\n45221,bird\n45222,deer\n45223,deer\n45224,deer\n45225,dog\n45226,automobile\n45227,cat\n45228,cat\n45229,horse\n45230,cat\n45231,cat\n45232,ship\n45233,bird\n45234,bird\n45235,automobile\n45236,automobile\n45237,horse\n45238,ship\n45239,ship\n45240,cat\n45241,dog\n45242,dog\n45243,frog\n45244,deer\n45245,automobile\n45246,cat\n45247,cat\n45248,automobile\n45249,frog\n45250,cat\n45251,dog\n45252,ship\n45253,dog\n45254,cat\n45255,airplane\n45256,horse\n45257,bird\n45258,horse\n45259,horse\n45260,deer\n45261,deer\n45262,cat\n45263,deer\n45264,dog\n45265,dog\n45266,bird\n45267,ship\n45268,dog\n45269,truck\n45270,dog\n45271,cat\n45272,dog\n45273,frog\n45274,bird\n45275,ship\n45276,bird\n45277,deer\n45278,truck\n45279,automobile\n45280,cat\n45281,frog\n45282,deer\n45283,airplane\n45284,cat\n45285,horse\n45286,truck\n45287,automobile\n45288,frog\n45289,airplane\n45290,dog\n45291,deer\n45292,deer\n45293,automobile\n45294,cat\n45295,airplane\n45296,deer\n45297,truck\n45298,truck\n45299,truck\n45300,ship\n45301,cat\n45302,deer\n45303,dog\n45304,dog\n45305,dog\n45306,deer\n45307,airplane\n45308,cat\n45309,horse\n45310,dog\n45311,airplane\n45312,truck\n45313,truck\n45314,deer\n45315,truck\n45316,airplane\n45317,automobile\n45318,deer\n45319,truck\n45320,automobile\n45321,airplane\n45322,automobile\n45323,cat\n45324,airplane\n45325,airplane\n45326,deer\n45327,dog\n45328,truck\n45329,cat\n45330,cat\n45331,ship\n45332,ship\n45333,deer\n45334,automobile\n45335,airplane\n45336,airplane\n45337,deer\n45338,dog\n45339,deer\n45340,frog\n45341,horse\n45342,frog\n45343,bird\n45344,cat\n45345,ship\n45346,bird\n45347,bird\n45348,automobile\n45349,airplane\n45350,bird\n45351,deer\n45352,truck\n45353,automobile\n45354,deer\n45355,deer\n45356,dog\n45357,cat\n45358,truck\n45359,cat\n45360,ship\n45361,bird\n45362,automobile\n45363,airplane\n45364,cat\n45365,horse\n45366,deer\n45367,deer\n45368,horse\n45369,deer\n45370,automobile\n45371,automobile\n45372,automobile\n45373,cat\n45374,cat\n45375,ship\n45376,dog\n45377,cat\n45378,automobile\n45379,airplane\n45380,cat\n45381,bird\n45382,truck\n45383,deer\n45384,cat\n45385,ship\n45386,deer\n45387,frog\n45388,deer\n45389,automobile\n45390,horse\n45391,dog\n45392,horse\n45393,frog\n45394,truck\n45395,deer\n45396,ship\n45397,cat\n45398,ship\n45399,bird\n45400,airplane\n45401,cat\n45402,frog\n45403,bird\n45404,horse\n45405,cat\n45406,truck\n45407,ship\n45408,dog\n45409,frog\n45410,truck\n45411,airplane\n45412,cat\n45413,ship\n45414,frog\n45415,deer\n45416,bird\n45417,dog\n45418,airplane\n45419,dog\n45420,horse\n45421,automobile\n45422,airplane\n45423,deer\n45424,truck\n45425,ship\n45426,horse\n45427,deer\n45428,bird\n45429,ship\n45430,cat\n45431,horse\n45432,dog\n45433,frog\n45434,ship\n45435,bird\n45436,airplane\n45437,deer\n45438,dog\n45439,deer\n45440,truck\n45441,dog\n45442,truck\n45443,frog\n45444,deer\n45445,dog\n45446,truck\n45447,ship\n45448,cat\n45449,frog\n45450,frog\n45451,ship\n45452,truck\n45453,dog\n45454,airplane\n45455,bird\n45456,cat\n45457,horse\n45458,frog\n45459,cat\n45460,truck\n45461,bird\n45462,frog\n45463,bird\n45464,bird\n45465,ship\n45466,automobile\n45467,horse\n45468,deer\n45469,dog\n45470,automobile\n45471,cat\n45472,deer\n45473,cat\n45474,cat\n45475,truck\n45476,cat\n45477,horse\n45478,frog\n45479,bird\n45480,deer\n45481,deer\n45482,ship\n45483,truck\n45484,bird\n45485,horse\n45486,bird\n45487,bird\n45488,airplane\n45489,bird\n45490,truck\n45491,truck\n45492,deer\n45493,ship\n45494,bird\n45495,automobile\n45496,airplane\n45497,airplane\n45498,ship\n45499,airplane\n45500,dog\n45501,deer\n45502,frog\n45503,truck\n45504,automobile\n45505,airplane\n45506,horse\n45507,automobile\n45508,truck\n45509,deer\n45510,ship\n45511,automobile\n45512,truck\n45513,dog\n45514,bird\n45515,automobile\n45516,ship\n45517,ship\n45518,deer\n45519,automobile\n45520,dog\n45521,frog\n45522,bird\n45523,ship\n45524,bird\n45525,dog\n45526,airplane\n45527,bird\n45528,truck\n45529,deer\n45530,ship\n45531,truck\n45532,airplane\n45533,frog\n45534,truck\n45535,deer\n45536,automobile\n45537,truck\n45538,cat\n45539,deer\n45540,deer\n45541,cat\n45542,deer\n45543,horse\n45544,automobile\n45545,airplane\n45546,frog\n45547,horse\n45548,ship\n45549,cat\n45550,truck\n45551,horse\n45552,ship\n45553,ship\n45554,horse\n45555,deer\n45556,horse\n45557,automobile\n45558,airplane\n45559,dog\n45560,horse\n45561,deer\n45562,airplane\n45563,ship\n45564,horse\n45565,dog\n45566,bird\n45567,frog\n45568,truck\n45569,automobile\n45570,deer\n45571,deer\n45572,ship\n45573,deer\n45574,horse\n45575,frog\n45576,horse\n45577,airplane\n45578,truck\n45579,deer\n45580,cat\n45581,dog\n45582,airplane\n45583,automobile\n45584,automobile\n45585,dog\n45586,airplane\n45587,deer\n45588,truck\n45589,dog\n45590,horse\n45591,horse\n45592,airplane\n45593,deer\n45594,cat\n45595,bird\n45596,deer\n45597,bird\n45598,cat\n45599,cat\n45600,truck\n45601,deer\n45602,truck\n45603,airplane\n45604,truck\n45605,horse\n45606,horse\n45607,frog\n45608,airplane\n45609,deer\n45610,deer\n45611,horse\n45612,bird\n45613,bird\n45614,truck\n45615,deer\n45616,truck\n45617,cat\n45618,deer\n45619,dog\n45620,automobile\n45621,cat\n45622,frog\n45623,dog\n45624,automobile\n45625,frog\n45626,ship\n45627,deer\n45628,deer\n45629,truck\n45630,ship\n45631,horse\n45632,dog\n45633,frog\n45634,airplane\n45635,airplane\n45636,cat\n45637,dog\n45638,cat\n45639,bird\n45640,ship\n45641,bird\n45642,deer\n45643,airplane\n45644,automobile\n45645,bird\n45646,truck\n45647,cat\n45648,truck\n45649,automobile\n45650,horse\n45651,dog\n45652,deer\n45653,truck\n45654,cat\n45655,frog\n45656,dog\n45657,bird\n45658,automobile\n45659,dog\n45660,airplane\n45661,automobile\n45662,horse\n45663,frog\n45664,bird\n45665,ship\n45666,airplane\n45667,airplane\n45668,airplane\n45669,ship\n45670,frog\n45671,deer\n45672,cat\n45673,cat\n45674,airplane\n45675,bird\n45676,cat\n45677,frog\n45678,cat\n45679,deer\n45680,frog\n45681,dog\n45682,truck\n45683,airplane\n45684,dog\n45685,truck\n45686,ship\n45687,deer\n45688,horse\n45689,truck\n45690,bird\n45691,horse\n45692,cat\n45693,airplane\n45694,deer\n45695,dog\n45696,deer\n45697,automobile\n45698,airplane\n45699,cat\n45700,horse\n45701,dog\n45702,ship\n45703,dog\n45704,truck\n45705,horse\n45706,truck\n45707,ship\n45708,cat\n45709,dog\n45710,cat\n45711,horse\n45712,cat\n45713,horse\n45714,dog\n45715,dog\n45716,frog\n45717,automobile\n45718,automobile\n45719,cat\n45720,frog\n45721,cat\n45722,cat\n45723,bird\n45724,ship\n45725,horse\n45726,truck\n45727,ship\n45728,horse\n45729,frog\n45730,horse\n45731,dog\n45732,horse\n45733,horse\n45734,truck\n45735,bird\n45736,frog\n45737,truck\n45738,dog\n45739,horse\n45740,frog\n45741,frog\n45742,ship\n45743,ship\n45744,truck\n45745,deer\n45746,horse\n45747,deer\n45748,airplane\n45749,truck\n45750,automobile\n45751,airplane\n45752,airplane\n45753,dog\n45754,deer\n45755,horse\n45756,automobile\n45757,ship\n45758,cat\n45759,airplane\n45760,bird\n45761,dog\n45762,cat\n45763,airplane\n45764,horse\n45765,ship\n45766,ship\n45767,automobile\n45768,truck\n45769,frog\n45770,airplane\n45771,deer\n45772,ship\n45773,cat\n45774,automobile\n45775,airplane\n45776,airplane\n45777,cat\n45778,truck\n45779,deer\n45780,deer\n45781,deer\n45782,horse\n45783,truck\n45784,ship\n45785,dog\n45786,dog\n45787,bird\n45788,ship\n45789,deer\n45790,dog\n45791,horse\n45792,dog\n45793,automobile\n45794,deer\n45795,truck\n45796,deer\n45797,cat\n45798,truck\n45799,ship\n45800,frog\n45801,dog\n45802,frog\n45803,frog\n45804,ship\n45805,ship\n45806,dog\n45807,airplane\n45808,frog\n45809,airplane\n45810,horse\n45811,ship\n45812,frog\n45813,deer\n45814,truck\n45815,deer\n45816,deer\n45817,horse\n45818,cat\n45819,truck\n45820,dog\n45821,dog\n45822,frog\n45823,deer\n45824,ship\n45825,truck\n45826,deer\n45827,horse\n45828,horse\n45829,dog\n45830,deer\n45831,deer\n45832,frog\n45833,cat\n45834,deer\n45835,automobile\n45836,airplane\n45837,cat\n45838,dog\n45839,frog\n45840,truck\n45841,dog\n45842,bird\n45843,frog\n45844,horse\n45845,airplane\n45846,ship\n45847,automobile\n45848,deer\n45849,airplane\n45850,truck\n45851,dog\n45852,deer\n45853,ship\n45854,deer\n45855,ship\n45856,bird\n45857,truck\n45858,deer\n45859,ship\n45860,deer\n45861,frog\n45862,frog\n45863,deer\n45864,deer\n45865,frog\n45866,automobile\n45867,cat\n45868,bird\n45869,frog\n45870,bird\n45871,deer\n45872,bird\n45873,airplane\n45874,deer\n45875,truck\n45876,bird\n45877,bird\n45878,cat\n45879,cat\n45880,dog\n45881,deer\n45882,cat\n45883,frog\n45884,airplane\n45885,cat\n45886,automobile\n45887,airplane\n45888,airplane\n45889,frog\n45890,frog\n45891,cat\n45892,ship\n45893,airplane\n45894,automobile\n45895,truck\n45896,horse\n45897,cat\n45898,deer\n45899,cat\n45900,frog\n45901,bird\n45902,cat\n45903,cat\n45904,frog\n45905,airplane\n45906,frog\n45907,airplane\n45908,frog\n45909,automobile\n45910,airplane\n45911,horse\n45912,ship\n45913,cat\n45914,truck\n45915,cat\n45916,dog\n45917,ship\n45918,airplane\n45919,cat\n45920,deer\n45921,dog\n45922,ship\n45923,ship\n45924,deer\n45925,cat\n45926,horse\n45927,deer\n45928,ship\n45929,truck\n45930,deer\n45931,airplane\n45932,cat\n45933,cat\n45934,frog\n45935,dog\n45936,bird\n45937,ship\n45938,cat\n45939,bird\n45940,bird\n45941,airplane\n45942,cat\n45943,bird\n45944,bird\n45945,automobile\n45946,bird\n45947,cat\n45948,horse\n45949,ship\n45950,dog\n45951,bird\n45952,airplane\n45953,truck\n45954,cat\n45955,frog\n45956,truck\n45957,ship\n45958,dog\n45959,ship\n45960,cat\n45961,ship\n45962,cat\n45963,cat\n45964,airplane\n45965,airplane\n45966,bird\n45967,truck\n45968,airplane\n45969,airplane\n45970,truck\n45971,frog\n45972,ship\n45973,ship\n45974,ship\n45975,deer\n45976,truck\n45977,truck\n45978,airplane\n45979,cat\n45980,airplane\n45981,frog\n45982,horse\n45983,ship\n45984,cat\n45985,airplane\n45986,frog\n45987,truck\n45988,bird\n45989,dog\n45990,truck\n45991,airplane\n45992,dog\n45993,automobile\n45994,truck\n45995,automobile\n45996,frog\n45997,cat\n45998,bird\n45999,horse\n46000,horse\n46001,truck\n46002,deer\n46003,frog\n46004,frog\n46005,deer\n46006,dog\n46007,cat\n46008,airplane\n46009,dog\n46010,dog\n46011,deer\n46012,truck\n46013,bird\n46014,cat\n46015,truck\n46016,airplane\n46017,automobile\n46018,bird\n46019,dog\n46020,dog\n46021,deer\n46022,frog\n46023,automobile\n46024,ship\n46025,frog\n46026,bird\n46027,airplane\n46028,bird\n46029,ship\n46030,frog\n46031,automobile\n46032,truck\n46033,automobile\n46034,automobile\n46035,frog\n46036,bird\n46037,deer\n46038,frog\n46039,bird\n46040,frog\n46041,dog\n46042,ship\n46043,truck\n46044,truck\n46045,truck\n46046,cat\n46047,bird\n46048,dog\n46049,cat\n46050,bird\n46051,cat\n46052,cat\n46053,deer\n46054,bird\n46055,frog\n46056,bird\n46057,ship\n46058,horse\n46059,horse\n46060,horse\n46061,cat\n46062,airplane\n46063,dog\n46064,dog\n46065,bird\n46066,truck\n46067,dog\n46068,ship\n46069,airplane\n46070,frog\n46071,cat\n46072,frog\n46073,frog\n46074,truck\n46075,bird\n46076,frog\n46077,bird\n46078,frog\n46079,cat\n46080,automobile\n46081,truck\n46082,truck\n46083,frog\n46084,cat\n46085,truck\n46086,airplane\n46087,horse\n46088,horse\n46089,bird\n46090,frog\n46091,cat\n46092,truck\n46093,horse\n46094,automobile\n46095,airplane\n46096,ship\n46097,frog\n46098,ship\n46099,deer\n46100,truck\n46101,frog\n46102,truck\n46103,cat\n46104,automobile\n46105,ship\n46106,frog\n46107,frog\n46108,bird\n46109,dog\n46110,deer\n46111,dog\n46112,cat\n46113,horse\n46114,deer\n46115,truck\n46116,frog\n46117,frog\n46118,dog\n46119,airplane\n46120,frog\n46121,cat\n46122,truck\n46123,horse\n46124,truck\n46125,dog\n46126,truck\n46127,airplane\n46128,horse\n46129,dog\n46130,airplane\n46131,ship\n46132,dog\n46133,frog\n46134,cat\n46135,deer\n46136,ship\n46137,frog\n46138,automobile\n46139,bird\n46140,airplane\n46141,ship\n46142,deer\n46143,deer\n46144,dog\n46145,deer\n46146,truck\n46147,deer\n46148,frog\n46149,dog\n46150,airplane\n46151,truck\n46152,deer\n46153,deer\n46154,cat\n46155,ship\n46156,dog\n46157,airplane\n46158,dog\n46159,automobile\n46160,bird\n46161,cat\n46162,ship\n46163,truck\n46164,bird\n46165,frog\n46166,deer\n46167,deer\n46168,dog\n46169,dog\n46170,automobile\n46171,truck\n46172,automobile\n46173,airplane\n46174,bird\n46175,automobile\n46176,deer\n46177,deer\n46178,automobile\n46179,horse\n46180,dog\n46181,airplane\n46182,automobile\n46183,frog\n46184,horse\n46185,cat\n46186,horse\n46187,cat\n46188,deer\n46189,deer\n46190,ship\n46191,deer\n46192,ship\n46193,ship\n46194,deer\n46195,truck\n46196,airplane\n46197,airplane\n46198,cat\n46199,horse\n46200,horse\n46201,bird\n46202,airplane\n46203,ship\n46204,dog\n46205,cat\n46206,deer\n46207,frog\n46208,ship\n46209,frog\n46210,deer\n46211,deer\n46212,truck\n46213,truck\n46214,horse\n46215,dog\n46216,truck\n46217,ship\n46218,truck\n46219,bird\n46220,cat\n46221,bird\n46222,airplane\n46223,deer\n46224,automobile\n46225,frog\n46226,horse\n46227,automobile\n46228,frog\n46229,horse\n46230,dog\n46231,airplane\n46232,horse\n46233,airplane\n46234,frog\n46235,automobile\n46236,ship\n46237,ship\n46238,dog\n46239,automobile\n46240,deer\n46241,automobile\n46242,cat\n46243,frog\n46244,dog\n46245,bird\n46246,cat\n46247,airplane\n46248,deer\n46249,dog\n46250,dog\n46251,dog\n46252,frog\n46253,deer\n46254,automobile\n46255,frog\n46256,automobile\n46257,ship\n46258,dog\n46259,dog\n46260,automobile\n46261,frog\n46262,frog\n46263,ship\n46264,deer\n46265,dog\n46266,deer\n46267,truck\n46268,cat\n46269,deer\n46270,truck\n46271,truck\n46272,cat\n46273,cat\n46274,automobile\n46275,ship\n46276,bird\n46277,frog\n46278,dog\n46279,airplane\n46280,deer\n46281,deer\n46282,truck\n46283,frog\n46284,bird\n46285,truck\n46286,horse\n46287,horse\n46288,truck\n46289,automobile\n46290,dog\n46291,airplane\n46292,horse\n46293,bird\n46294,frog\n46295,cat\n46296,deer\n46297,cat\n46298,automobile\n46299,frog\n46300,truck\n46301,truck\n46302,airplane\n46303,truck\n46304,truck\n46305,truck\n46306,deer\n46307,bird\n46308,ship\n46309,truck\n46310,ship\n46311,deer\n46312,frog\n46313,deer\n46314,airplane\n46315,truck\n46316,dog\n46317,deer\n46318,deer\n46319,cat\n46320,horse\n46321,cat\n46322,ship\n46323,frog\n46324,bird\n46325,deer\n46326,deer\n46327,truck\n46328,truck\n46329,dog\n46330,frog\n46331,horse\n46332,deer\n46333,deer\n46334,bird\n46335,frog\n46336,airplane\n46337,horse\n46338,dog\n46339,horse\n46340,frog\n46341,deer\n46342,deer\n46343,dog\n46344,horse\n46345,deer\n46346,cat\n46347,airplane\n46348,deer\n46349,dog\n46350,dog\n46351,dog\n46352,deer\n46353,airplane\n46354,airplane\n46355,horse\n46356,frog\n46357,bird\n46358,frog\n46359,deer\n46360,cat\n46361,horse\n46362,dog\n46363,cat\n46364,horse\n46365,bird\n46366,frog\n46367,truck\n46368,deer\n46369,deer\n46370,automobile\n46371,automobile\n46372,truck\n46373,horse\n46374,deer\n46375,airplane\n46376,deer\n46377,horse\n46378,horse\n46379,truck\n46380,cat\n46381,dog\n46382,deer\n46383,cat\n46384,dog\n46385,ship\n46386,truck\n46387,horse\n46388,frog\n46389,airplane\n46390,deer\n46391,deer\n46392,cat\n46393,dog\n46394,truck\n46395,bird\n46396,automobile\n46397,airplane\n46398,cat\n46399,cat\n46400,ship\n46401,cat\n46402,frog\n46403,bird\n46404,deer\n46405,cat\n46406,ship\n46407,frog\n46408,dog\n46409,bird\n46410,dog\n46411,dog\n46412,truck\n46413,ship\n46414,airplane\n46415,dog\n46416,deer\n46417,ship\n46418,frog\n46419,horse\n46420,deer\n46421,ship\n46422,truck\n46423,cat\n46424,ship\n46425,truck\n46426,deer\n46427,ship\n46428,ship\n46429,horse\n46430,frog\n46431,airplane\n46432,frog\n46433,horse\n46434,ship\n46435,dog\n46436,bird\n46437,horse\n46438,cat\n46439,airplane\n46440,airplane\n46441,dog\n46442,automobile\n46443,cat\n46444,dog\n46445,horse\n46446,horse\n46447,cat\n46448,ship\n46449,frog\n46450,deer\n46451,deer\n46452,truck\n46453,dog\n46454,dog\n46455,truck\n46456,cat\n46457,bird\n46458,deer\n46459,deer\n46460,dog\n46461,horse\n46462,deer\n46463,horse\n46464,ship\n46465,cat\n46466,airplane\n46467,dog\n46468,horse\n46469,bird\n46470,ship\n46471,bird\n46472,airplane\n46473,frog\n46474,frog\n46475,deer\n46476,frog\n46477,ship\n46478,horse\n46479,deer\n46480,frog\n46481,automobile\n46482,frog\n46483,horse\n46484,deer\n46485,horse\n46486,bird\n46487,airplane\n46488,deer\n46489,frog\n46490,ship\n46491,automobile\n46492,dog\n46493,airplane\n46494,dog\n46495,truck\n46496,automobile\n46497,dog\n46498,deer\n46499,automobile\n46500,ship\n46501,horse\n46502,bird\n46503,cat\n46504,ship\n46505,automobile\n46506,deer\n46507,horse\n46508,bird\n46509,frog\n46510,automobile\n46511,cat\n46512,truck\n46513,ship\n46514,dog\n46515,truck\n46516,truck\n46517,cat\n46518,horse\n46519,frog\n46520,frog\n46521,dog\n46522,deer\n46523,deer\n46524,deer\n46525,cat\n46526,automobile\n46527,airplane\n46528,automobile\n46529,bird\n46530,deer\n46531,frog\n46532,ship\n46533,frog\n46534,bird\n46535,ship\n46536,dog\n46537,airplane\n46538,dog\n46539,horse\n46540,deer\n46541,frog\n46542,airplane\n46543,frog\n46544,frog\n46545,frog\n46546,airplane\n46547,automobile\n46548,horse\n46549,frog\n46550,bird\n46551,airplane\n46552,truck\n46553,horse\n46554,deer\n46555,airplane\n46556,deer\n46557,bird\n46558,ship\n46559,deer\n46560,ship\n46561,cat\n46562,deer\n46563,bird\n46564,ship\n46565,horse\n46566,deer\n46567,dog\n46568,automobile\n46569,truck\n46570,horse\n46571,deer\n46572,frog\n46573,frog\n46574,cat\n46575,bird\n46576,dog\n46577,ship\n46578,airplane\n46579,frog\n46580,frog\n46581,bird\n46582,dog\n46583,cat\n46584,frog\n46585,ship\n46586,horse\n46587,airplane\n46588,dog\n46589,automobile\n46590,ship\n46591,automobile\n46592,ship\n46593,truck\n46594,automobile\n46595,horse\n46596,deer\n46597,deer\n46598,ship\n46599,dog\n46600,truck\n46601,airplane\n46602,ship\n46603,cat\n46604,frog\n46605,horse\n46606,frog\n46607,cat\n46608,cat\n46609,deer\n46610,ship\n46611,horse\n46612,airplane\n46613,bird\n46614,bird\n46615,dog\n46616,frog\n46617,airplane\n46618,dog\n46619,cat\n46620,frog\n46621,automobile\n46622,dog\n46623,automobile\n46624,deer\n46625,frog\n46626,frog\n46627,automobile\n46628,bird\n46629,bird\n46630,cat\n46631,deer\n46632,frog\n46633,truck\n46634,automobile\n46635,airplane\n46636,deer\n46637,automobile\n46638,airplane\n46639,dog\n46640,horse\n46641,frog\n46642,cat\n46643,deer\n46644,frog\n46645,deer\n46646,cat\n46647,truck\n46648,deer\n46649,deer\n46650,cat\n46651,cat\n46652,airplane\n46653,dog\n46654,airplane\n46655,dog\n46656,cat\n46657,cat\n46658,truck\n46659,airplane\n46660,airplane\n46661,bird\n46662,bird\n46663,cat\n46664,airplane\n46665,deer\n46666,truck\n46667,horse\n46668,dog\n46669,frog\n46670,cat\n46671,cat\n46672,airplane\n46673,bird\n46674,airplane\n46675,cat\n46676,frog\n46677,horse\n46678,deer\n46679,airplane\n46680,frog\n46681,truck\n46682,horse\n46683,deer\n46684,horse\n46685,frog\n46686,horse\n46687,bird\n46688,truck\n46689,bird\n46690,airplane\n46691,bird\n46692,deer\n46693,deer\n46694,frog\n46695,airplane\n46696,cat\n46697,frog\n46698,truck\n46699,horse\n46700,bird\n46701,bird\n46702,airplane\n46703,dog\n46704,deer\n46705,truck\n46706,truck\n46707,bird\n46708,airplane\n46709,frog\n46710,horse\n46711,dog\n46712,airplane\n46713,ship\n46714,deer\n46715,cat\n46716,horse\n46717,cat\n46718,ship\n46719,cat\n46720,frog\n46721,bird\n46722,horse\n46723,truck\n46724,deer\n46725,airplane\n46726,frog\n46727,airplane\n46728,bird\n46729,automobile\n46730,airplane\n46731,horse\n46732,truck\n46733,automobile\n46734,bird\n46735,dog\n46736,airplane\n46737,horse\n46738,horse\n46739,bird\n46740,cat\n46741,deer\n46742,dog\n46743,cat\n46744,automobile\n46745,ship\n46746,automobile\n46747,automobile\n46748,ship\n46749,bird\n46750,horse\n46751,truck\n46752,bird\n46753,deer\n46754,truck\n46755,bird\n46756,automobile\n46757,truck\n46758,ship\n46759,truck\n46760,dog\n46761,truck\n46762,frog\n46763,truck\n46764,ship\n46765,frog\n46766,horse\n46767,airplane\n46768,dog\n46769,deer\n46770,horse\n46771,bird\n46772,automobile\n46773,deer\n46774,deer\n46775,cat\n46776,cat\n46777,bird\n46778,deer\n46779,cat\n46780,frog\n46781,cat\n46782,cat\n46783,airplane\n46784,frog\n46785,deer\n46786,ship\n46787,frog\n46788,horse\n46789,deer\n46790,frog\n46791,ship\n46792,truck\n46793,ship\n46794,truck\n46795,cat\n46796,frog\n46797,cat\n46798,automobile\n46799,dog\n46800,ship\n46801,deer\n46802,deer\n46803,ship\n46804,truck\n46805,horse\n46806,bird\n46807,dog\n46808,airplane\n46809,deer\n46810,bird\n46811,cat\n46812,cat\n46813,truck\n46814,automobile\n46815,truck\n46816,deer\n46817,truck\n46818,cat\n46819,truck\n46820,truck\n46821,cat\n46822,airplane\n46823,deer\n46824,ship\n46825,bird\n46826,horse\n46827,bird\n46828,automobile\n46829,automobile\n46830,airplane\n46831,dog\n46832,truck\n46833,frog\n46834,cat\n46835,dog\n46836,cat\n46837,frog\n46838,frog\n46839,airplane\n46840,truck\n46841,cat\n46842,truck\n46843,deer\n46844,automobile\n46845,bird\n46846,dog\n46847,bird\n46848,frog\n46849,truck\n46850,bird\n46851,ship\n46852,ship\n46853,dog\n46854,airplane\n46855,bird\n46856,deer\n46857,automobile\n46858,horse\n46859,truck\n46860,airplane\n46861,cat\n46862,cat\n46863,cat\n46864,horse\n46865,frog\n46866,bird\n46867,horse\n46868,horse\n46869,deer\n46870,cat\n46871,ship\n46872,dog\n46873,bird\n46874,dog\n46875,dog\n46876,airplane\n46877,deer\n46878,truck\n46879,airplane\n46880,cat\n46881,horse\n46882,frog\n46883,cat\n46884,bird\n46885,cat\n46886,deer\n46887,truck\n46888,airplane\n46889,truck\n46890,cat\n46891,truck\n46892,airplane\n46893,deer\n46894,deer\n46895,cat\n46896,truck\n46897,truck\n46898,deer\n46899,ship\n46900,deer\n46901,dog\n46902,automobile\n46903,ship\n46904,automobile\n46905,dog\n46906,truck\n46907,truck\n46908,deer\n46909,cat\n46910,bird\n46911,truck\n46912,automobile\n46913,dog\n46914,truck\n46915,bird\n46916,deer\n46917,frog\n46918,dog\n46919,ship\n46920,deer\n46921,automobile\n46922,deer\n46923,deer\n46924,cat\n46925,dog\n46926,deer\n46927,cat\n46928,automobile\n46929,dog\n46930,airplane\n46931,deer\n46932,horse\n46933,horse\n46934,ship\n46935,bird\n46936,automobile\n46937,deer\n46938,dog\n46939,dog\n46940,horse\n46941,cat\n46942,cat\n46943,horse\n46944,dog\n46945,cat\n46946,cat\n46947,deer\n46948,deer\n46949,deer\n46950,airplane\n46951,deer\n46952,dog\n46953,airplane\n46954,dog\n46955,bird\n46956,cat\n46957,bird\n46958,airplane\n46959,cat\n46960,dog\n46961,cat\n46962,deer\n46963,deer\n46964,frog\n46965,dog\n46966,automobile\n46967,frog\n46968,cat\n46969,horse\n46970,cat\n46971,cat\n46972,bird\n46973,automobile\n46974,frog\n46975,truck\n46976,frog\n46977,frog\n46978,truck\n46979,airplane\n46980,dog\n46981,dog\n46982,truck\n46983,airplane\n46984,deer\n46985,ship\n46986,truck\n46987,deer\n46988,frog\n46989,automobile\n46990,frog\n46991,dog\n46992,airplane\n46993,ship\n46994,cat\n46995,truck\n46996,deer\n46997,cat\n46998,cat\n46999,truck\n47000,deer\n47001,airplane\n47002,bird\n47003,automobile\n47004,automobile\n47005,frog\n47006,dog\n47007,horse\n47008,ship\n47009,frog\n47010,horse\n47011,ship\n47012,automobile\n47013,truck\n47014,ship\n47015,horse\n47016,ship\n47017,deer\n47018,cat\n47019,truck\n47020,frog\n47021,dog\n47022,cat\n47023,ship\n47024,dog\n47025,truck\n47026,cat\n47027,truck\n47028,airplane\n47029,dog\n47030,ship\n47031,bird\n47032,truck\n47033,dog\n47034,bird\n47035,ship\n47036,ship\n47037,dog\n47038,bird\n47039,airplane\n47040,automobile\n47041,automobile\n47042,ship\n47043,cat\n47044,bird\n47045,dog\n47046,truck\n47047,ship\n47048,horse\n47049,airplane\n47050,ship\n47051,truck\n47052,frog\n47053,cat\n47054,cat\n47055,cat\n47056,dog\n47057,horse\n47058,ship\n47059,frog\n47060,automobile\n47061,frog\n47062,airplane\n47063,cat\n47064,deer\n47065,airplane\n47066,bird\n47067,airplane\n47068,frog\n47069,automobile\n47070,cat\n47071,dog\n47072,deer\n47073,ship\n47074,deer\n47075,deer\n47076,dog\n47077,cat\n47078,horse\n47079,airplane\n47080,dog\n47081,bird\n47082,bird\n47083,cat\n47084,frog\n47085,dog\n47086,bird\n47087,ship\n47088,cat\n47089,truck\n47090,horse\n47091,deer\n47092,bird\n47093,bird\n47094,dog\n47095,airplane\n47096,cat\n47097,airplane\n47098,deer\n47099,cat\n47100,bird\n47101,horse\n47102,horse\n47103,cat\n47104,dog\n47105,horse\n47106,horse\n47107,cat\n47108,frog\n47109,bird\n47110,airplane\n47111,automobile\n47112,bird\n47113,deer\n47114,airplane\n47115,automobile\n47116,automobile\n47117,bird\n47118,automobile\n47119,airplane\n47120,truck\n47121,deer\n47122,horse\n47123,airplane\n47124,deer\n47125,dog\n47126,frog\n47127,truck\n47128,airplane\n47129,automobile\n47130,frog\n47131,frog\n47132,frog\n47133,airplane\n47134,bird\n47135,frog\n47136,cat\n47137,ship\n47138,cat\n47139,truck\n47140,frog\n47141,dog\n47142,deer\n47143,horse\n47144,deer\n47145,frog\n47146,airplane\n47147,truck\n47148,dog\n47149,dog\n47150,truck\n47151,automobile\n47152,deer\n47153,cat\n47154,automobile\n47155,deer\n47156,automobile\n47157,ship\n47158,ship\n47159,cat\n47160,frog\n47161,dog\n47162,automobile\n47163,airplane\n47164,truck\n47165,deer\n47166,cat\n47167,deer\n47168,cat\n47169,horse\n47170,truck\n47171,dog\n47172,truck\n47173,deer\n47174,horse\n47175,frog\n47176,airplane\n47177,ship\n47178,truck\n47179,frog\n47180,ship\n47181,cat\n47182,ship\n47183,horse\n47184,truck\n47185,deer\n47186,frog\n47187,horse\n47188,dog\n47189,ship\n47190,cat\n47191,frog\n47192,dog\n47193,cat\n47194,dog\n47195,truck\n47196,airplane\n47197,airplane\n47198,ship\n47199,bird\n47200,deer\n47201,dog\n47202,horse\n47203,ship\n47204,deer\n47205,bird\n47206,deer\n47207,truck\n47208,automobile\n47209,dog\n47210,automobile\n47211,cat\n47212,bird\n47213,airplane\n47214,frog\n47215,truck\n47216,dog\n47217,dog\n47218,dog\n47219,automobile\n47220,bird\n47221,automobile\n47222,bird\n47223,dog\n47224,cat\n47225,truck\n47226,ship\n47227,frog\n47228,dog\n47229,ship\n47230,frog\n47231,deer\n47232,dog\n47233,truck\n47234,truck\n47235,deer\n47236,dog\n47237,deer\n47238,deer\n47239,frog\n47240,cat\n47241,cat\n47242,dog\n47243,cat\n47244,ship\n47245,automobile\n47246,bird\n47247,bird\n47248,horse\n47249,deer\n47250,automobile\n47251,horse\n47252,deer\n47253,automobile\n47254,horse\n47255,cat\n47256,horse\n47257,horse\n47258,horse\n47259,cat\n47260,frog\n47261,truck\n47262,dog\n47263,truck\n47264,deer\n47265,cat\n47266,cat\n47267,horse\n47268,airplane\n47269,dog\n47270,ship\n47271,dog\n47272,cat\n47273,dog\n47274,horse\n47275,cat\n47276,cat\n47277,cat\n47278,horse\n47279,deer\n47280,automobile\n47281,dog\n47282,truck\n47283,deer\n47284,airplane\n47285,horse\n47286,dog\n47287,airplane\n47288,truck\n47289,truck\n47290,frog\n47291,deer\n47292,ship\n47293,automobile\n47294,automobile\n47295,bird\n47296,frog\n47297,truck\n47298,cat\n47299,horse\n47300,cat\n47301,ship\n47302,cat\n47303,deer\n47304,ship\n47305,dog\n47306,dog\n47307,airplane\n47308,airplane\n47309,truck\n47310,horse\n47311,horse\n47312,cat\n47313,cat\n47314,deer\n47315,bird\n47316,truck\n47317,horse\n47318,dog\n47319,deer\n47320,frog\n47321,cat\n47322,horse\n47323,dog\n47324,truck\n47325,cat\n47326,bird\n47327,truck\n47328,truck\n47329,truck\n47330,truck\n47331,dog\n47332,bird\n47333,truck\n47334,cat\n47335,cat\n47336,frog\n47337,deer\n47338,horse\n47339,frog\n47340,horse\n47341,ship\n47342,automobile\n47343,dog\n47344,automobile\n47345,airplane\n47346,dog\n47347,bird\n47348,automobile\n47349,deer\n47350,truck\n47351,dog\n47352,cat\n47353,deer\n47354,horse\n47355,cat\n47356,deer\n47357,frog\n47358,dog\n47359,airplane\n47360,horse\n47361,airplane\n47362,cat\n47363,horse\n47364,dog\n47365,dog\n47366,frog\n47367,deer\n47368,airplane\n47369,truck\n47370,bird\n47371,bird\n47372,dog\n47373,cat\n47374,truck\n47375,airplane\n47376,airplane\n47377,cat\n47378,bird\n47379,cat\n47380,automobile\n47381,airplane\n47382,frog\n47383,cat\n47384,cat\n47385,dog\n47386,frog\n47387,ship\n47388,truck\n47389,airplane\n47390,truck\n47391,frog\n47392,dog\n47393,dog\n47394,horse\n47395,bird\n47396,horse\n47397,deer\n47398,automobile\n47399,deer\n47400,frog\n47401,bird\n47402,cat\n47403,deer\n47404,ship\n47405,truck\n47406,truck\n47407,deer\n47408,dog\n47409,cat\n47410,airplane\n47411,deer\n47412,frog\n47413,dog\n47414,cat\n47415,airplane\n47416,deer\n47417,dog\n47418,airplane\n47419,ship\n47420,airplane\n47421,horse\n47422,airplane\n47423,horse\n47424,deer\n47425,dog\n47426,cat\n47427,horse\n47428,cat\n47429,ship\n47430,truck\n47431,deer\n47432,bird\n47433,horse\n47434,horse\n47435,dog\n47436,deer\n47437,airplane\n47438,bird\n47439,bird\n47440,truck\n47441,cat\n47442,horse\n47443,truck\n47444,frog\n47445,frog\n47446,horse\n47447,automobile\n47448,cat\n47449,dog\n47450,deer\n47451,ship\n47452,airplane\n47453,horse\n47454,horse\n47455,dog\n47456,frog\n47457,truck\n47458,dog\n47459,airplane\n47460,bird\n47461,cat\n47462,cat\n47463,cat\n47464,deer\n47465,cat\n47466,airplane\n47467,bird\n47468,bird\n47469,ship\n47470,cat\n47471,airplane\n47472,frog\n47473,horse\n47474,frog\n47475,deer\n47476,horse\n47477,bird\n47478,dog\n47479,ship\n47480,bird\n47481,frog\n47482,bird\n47483,frog\n47484,automobile\n47485,ship\n47486,horse\n47487,bird\n47488,airplane\n47489,frog\n47490,horse\n47491,ship\n47492,airplane\n47493,ship\n47494,truck\n47495,airplane\n47496,automobile\n47497,dog\n47498,truck\n47499,dog\n47500,deer\n47501,ship\n47502,bird\n47503,airplane\n47504,airplane\n47505,deer\n47506,dog\n47507,bird\n47508,automobile\n47509,frog\n47510,deer\n47511,truck\n47512,dog\n47513,automobile\n47514,cat\n47515,bird\n47516,airplane\n47517,deer\n47518,cat\n47519,frog\n47520,deer\n47521,deer\n47522,cat\n47523,deer\n47524,deer\n47525,frog\n47526,airplane\n47527,dog\n47528,deer\n47529,cat\n47530,airplane\n47531,ship\n47532,frog\n47533,airplane\n47534,truck\n47535,airplane\n47536,frog\n47537,frog\n47538,ship\n47539,truck\n47540,bird\n47541,deer\n47542,deer\n47543,ship\n47544,horse\n47545,frog\n47546,deer\n47547,ship\n47548,cat\n47549,automobile\n47550,cat\n47551,ship\n47552,deer\n47553,airplane\n47554,deer\n47555,cat\n47556,horse\n47557,cat\n47558,truck\n47559,dog\n47560,airplane\n47561,cat\n47562,dog\n47563,cat\n47564,frog\n47565,horse\n47566,deer\n47567,automobile\n47568,truck\n47569,horse\n47570,horse\n47571,deer\n47572,cat\n47573,truck\n47574,cat\n47575,frog\n47576,deer\n47577,deer\n47578,ship\n47579,bird\n47580,deer\n47581,truck\n47582,truck\n47583,truck\n47584,airplane\n47585,cat\n47586,deer\n47587,deer\n47588,horse\n47589,cat\n47590,truck\n47591,ship\n47592,airplane\n47593,frog\n47594,frog\n47595,truck\n47596,ship\n47597,truck\n47598,ship\n47599,cat\n47600,deer\n47601,cat\n47602,automobile\n47603,bird\n47604,automobile\n47605,bird\n47606,truck\n47607,bird\n47608,dog\n47609,truck\n47610,ship\n47611,dog\n47612,cat\n47613,frog\n47614,truck\n47615,cat\n47616,automobile\n47617,frog\n47618,frog\n47619,deer\n47620,deer\n47621,deer\n47622,dog\n47623,ship\n47624,cat\n47625,deer\n47626,dog\n47627,bird\n47628,horse\n47629,automobile\n47630,dog\n47631,frog\n47632,airplane\n47633,truck\n47634,deer\n47635,truck\n47636,deer\n47637,cat\n47638,truck\n47639,deer\n47640,airplane\n47641,bird\n47642,horse\n47643,automobile\n47644,horse\n47645,deer\n47646,ship\n47647,truck\n47648,cat\n47649,ship\n47650,horse\n47651,cat\n47652,ship\n47653,truck\n47654,truck\n47655,deer\n47656,truck\n47657,airplane\n47658,bird\n47659,deer\n47660,dog\n47661,cat\n47662,dog\n47663,ship\n47664,deer\n47665,airplane\n47666,automobile\n47667,cat\n47668,truck\n47669,deer\n47670,deer\n47671,bird\n47672,ship\n47673,cat\n47674,truck\n47675,airplane\n47676,horse\n47677,dog\n47678,deer\n47679,dog\n47680,horse\n47681,airplane\n47682,cat\n47683,airplane\n47684,frog\n47685,bird\n47686,horse\n47687,automobile\n47688,ship\n47689,dog\n47690,deer\n47691,airplane\n47692,deer\n47693,horse\n47694,bird\n47695,frog\n47696,frog\n47697,horse\n47698,horse\n47699,horse\n47700,frog\n47701,deer\n47702,deer\n47703,ship\n47704,bird\n47705,dog\n47706,ship\n47707,ship\n47708,truck\n47709,truck\n47710,truck\n47711,ship\n47712,ship\n47713,horse\n47714,deer\n47715,ship\n47716,ship\n47717,frog\n47718,deer\n47719,automobile\n47720,bird\n47721,truck\n47722,dog\n47723,horse\n47724,automobile\n47725,automobile\n47726,deer\n47727,frog\n47728,cat\n47729,frog\n47730,frog\n47731,horse\n47732,automobile\n47733,airplane\n47734,dog\n47735,bird\n47736,truck\n47737,cat\n47738,deer\n47739,dog\n47740,horse\n47741,frog\n47742,automobile\n47743,truck\n47744,cat\n47745,deer\n47746,ship\n47747,deer\n47748,frog\n47749,automobile\n47750,deer\n47751,airplane\n47752,deer\n47753,cat\n47754,ship\n47755,bird\n47756,cat\n47757,automobile\n47758,horse\n47759,cat\n47760,ship\n47761,dog\n47762,bird\n47763,airplane\n47764,horse\n47765,dog\n47766,frog\n47767,frog\n47768,frog\n47769,dog\n47770,cat\n47771,ship\n47772,deer\n47773,dog\n47774,automobile\n47775,cat\n47776,automobile\n47777,cat\n47778,frog\n47779,frog\n47780,deer\n47781,bird\n47782,bird\n47783,airplane\n47784,truck\n47785,ship\n47786,airplane\n47787,bird\n47788,cat\n47789,dog\n47790,deer\n47791,automobile\n47792,cat\n47793,horse\n47794,truck\n47795,airplane\n47796,automobile\n47797,ship\n47798,automobile\n47799,automobile\n47800,frog\n47801,truck\n47802,truck\n47803,ship\n47804,cat\n47805,bird\n47806,frog\n47807,horse\n47808,frog\n47809,frog\n47810,frog\n47811,cat\n47812,dog\n47813,truck\n47814,cat\n47815,frog\n47816,cat\n47817,truck\n47818,deer\n47819,bird\n47820,cat\n47821,deer\n47822,ship\n47823,automobile\n47824,truck\n47825,airplane\n47826,deer\n47827,ship\n47828,cat\n47829,horse\n47830,deer\n47831,ship\n47832,frog\n47833,ship\n47834,ship\n47835,frog\n47836,bird\n47837,bird\n47838,truck\n47839,cat\n47840,bird\n47841,ship\n47842,airplane\n47843,deer\n47844,dog\n47845,cat\n47846,deer\n47847,cat\n47848,frog\n47849,horse\n47850,cat\n47851,horse\n47852,ship\n47853,frog\n47854,automobile\n47855,frog\n47856,ship\n47857,cat\n47858,ship\n47859,deer\n47860,truck\n47861,cat\n47862,truck\n47863,frog\n47864,automobile\n47865,bird\n47866,deer\n47867,bird\n47868,dog\n47869,truck\n47870,frog\n47871,frog\n47872,dog\n47873,ship\n47874,cat\n47875,truck\n47876,airplane\n47877,airplane\n47878,airplane\n47879,deer\n47880,truck\n47881,deer\n47882,cat\n47883,horse\n47884,deer\n47885,horse\n47886,bird\n47887,deer\n47888,ship\n47889,horse\n47890,truck\n47891,bird\n47892,bird\n47893,airplane\n47894,truck\n47895,cat\n47896,dog\n47897,frog\n47898,bird\n47899,ship\n47900,airplane\n47901,truck\n47902,dog\n47903,deer\n47904,truck\n47905,frog\n47906,bird\n47907,frog\n47908,cat\n47909,deer\n47910,frog\n47911,airplane\n47912,cat\n47913,cat\n47914,automobile\n47915,deer\n47916,truck\n47917,frog\n47918,airplane\n47919,ship\n47920,horse\n47921,ship\n47922,dog\n47923,airplane\n47924,frog\n47925,dog\n47926,frog\n47927,ship\n47928,deer\n47929,bird\n47930,automobile\n47931,airplane\n47932,cat\n47933,horse\n47934,truck\n47935,cat\n47936,automobile\n47937,cat\n47938,deer\n47939,horse\n47940,ship\n47941,bird\n47942,cat\n47943,cat\n47944,ship\n47945,frog\n47946,horse\n47947,deer\n47948,bird\n47949,dog\n47950,dog\n47951,deer\n47952,automobile\n47953,automobile\n47954,cat\n47955,deer\n47956,horse\n47957,ship\n47958,horse\n47959,truck\n47960,horse\n47961,frog\n47962,automobile\n47963,ship\n47964,cat\n47965,dog\n47966,frog\n47967,cat\n47968,truck\n47969,dog\n47970,deer\n47971,deer\n47972,deer\n47973,deer\n47974,frog\n47975,airplane\n47976,frog\n47977,deer\n47978,automobile\n47979,automobile\n47980,automobile\n47981,cat\n47982,bird\n47983,ship\n47984,automobile\n47985,deer\n47986,automobile\n47987,bird\n47988,horse\n47989,horse\n47990,horse\n47991,horse\n47992,cat\n47993,frog\n47994,cat\n47995,truck\n47996,cat\n47997,cat\n47998,ship\n47999,cat\n48000,deer\n48001,ship\n48002,automobile\n48003,cat\n48004,truck\n48005,horse\n48006,bird\n48007,frog\n48008,frog\n48009,truck\n48010,deer\n48011,cat\n48012,dog\n48013,airplane\n48014,cat\n48015,horse\n48016,frog\n48017,frog\n48018,frog\n48019,truck\n48020,ship\n48021,bird\n48022,dog\n48023,deer\n48024,dog\n48025,airplane\n48026,ship\n48027,truck\n48028,frog\n48029,cat\n48030,ship\n48031,bird\n48032,deer\n48033,airplane\n48034,cat\n48035,horse\n48036,truck\n48037,cat\n48038,truck\n48039,frog\n48040,frog\n48041,cat\n48042,airplane\n48043,dog\n48044,ship\n48045,dog\n48046,dog\n48047,dog\n48048,deer\n48049,horse\n48050,bird\n48051,bird\n48052,deer\n48053,truck\n48054,dog\n48055,deer\n48056,automobile\n48057,horse\n48058,truck\n48059,dog\n48060,automobile\n48061,bird\n48062,ship\n48063,frog\n48064,horse\n48065,truck\n48066,deer\n48067,frog\n48068,cat\n48069,ship\n48070,frog\n48071,automobile\n48072,bird\n48073,horse\n48074,horse\n48075,ship\n48076,dog\n48077,dog\n48078,frog\n48079,horse\n48080,dog\n48081,dog\n48082,automobile\n48083,truck\n48084,bird\n48085,truck\n48086,dog\n48087,automobile\n48088,truck\n48089,truck\n48090,cat\n48091,truck\n48092,ship\n48093,bird\n48094,airplane\n48095,frog\n48096,bird\n48097,cat\n48098,horse\n48099,truck\n48100,frog\n48101,truck\n48102,cat\n48103,dog\n48104,automobile\n48105,dog\n48106,frog\n48107,bird\n48108,frog\n48109,bird\n48110,automobile\n48111,automobile\n48112,ship\n48113,deer\n48114,airplane\n48115,dog\n48116,bird\n48117,deer\n48118,truck\n48119,horse\n48120,deer\n48121,airplane\n48122,airplane\n48123,dog\n48124,cat\n48125,cat\n48126,horse\n48127,truck\n48128,airplane\n48129,dog\n48130,ship\n48131,dog\n48132,automobile\n48133,frog\n48134,frog\n48135,deer\n48136,dog\n48137,frog\n48138,cat\n48139,ship\n48140,truck\n48141,airplane\n48142,horse\n48143,dog\n48144,horse\n48145,automobile\n48146,airplane\n48147,automobile\n48148,truck\n48149,truck\n48150,deer\n48151,frog\n48152,cat\n48153,bird\n48154,horse\n48155,airplane\n48156,airplane\n48157,ship\n48158,deer\n48159,ship\n48160,horse\n48161,truck\n48162,horse\n48163,frog\n48164,airplane\n48165,truck\n48166,frog\n48167,deer\n48168,cat\n48169,automobile\n48170,deer\n48171,frog\n48172,automobile\n48173,frog\n48174,deer\n48175,dog\n48176,deer\n48177,frog\n48178,truck\n48179,truck\n48180,airplane\n48181,ship\n48182,airplane\n48183,dog\n48184,automobile\n48185,horse\n48186,truck\n48187,bird\n48188,automobile\n48189,deer\n48190,dog\n48191,airplane\n48192,deer\n48193,deer\n48194,automobile\n48195,truck\n48196,frog\n48197,automobile\n48198,frog\n48199,dog\n48200,frog\n48201,deer\n48202,frog\n48203,deer\n48204,deer\n48205,ship\n48206,bird\n48207,deer\n48208,airplane\n48209,cat\n48210,ship\n48211,dog\n48212,bird\n48213,frog\n48214,dog\n48215,dog\n48216,horse\n48217,truck\n48218,deer\n48219,deer\n48220,deer\n48221,frog\n48222,horse\n48223,ship\n48224,ship\n48225,truck\n48226,airplane\n48227,horse\n48228,ship\n48229,cat\n48230,frog\n48231,truck\n48232,airplane\n48233,airplane\n48234,dog\n48235,deer\n48236,truck\n48237,bird\n48238,airplane\n48239,deer\n48240,dog\n48241,airplane\n48242,dog\n48243,truck\n48244,frog\n48245,automobile\n48246,truck\n48247,ship\n48248,cat\n48249,cat\n48250,truck\n48251,frog\n48252,truck\n48253,truck\n48254,ship\n48255,frog\n48256,airplane\n48257,bird\n48258,truck\n48259,bird\n48260,bird\n48261,automobile\n48262,dog\n48263,airplane\n48264,cat\n48265,dog\n48266,airplane\n48267,frog\n48268,horse\n48269,frog\n48270,cat\n48271,horse\n48272,horse\n48273,bird\n48274,dog\n48275,cat\n48276,dog\n48277,horse\n48278,bird\n48279,bird\n48280,dog\n48281,truck\n48282,ship\n48283,bird\n48284,dog\n48285,truck\n48286,cat\n48287,airplane\n48288,dog\n48289,automobile\n48290,horse\n48291,deer\n48292,deer\n48293,dog\n48294,horse\n48295,automobile\n48296,airplane\n48297,deer\n48298,truck\n48299,cat\n48300,dog\n48301,frog\n48302,ship\n48303,frog\n48304,frog\n48305,cat\n48306,horse\n48307,bird\n48308,airplane\n48309,ship\n48310,airplane\n48311,ship\n48312,airplane\n48313,bird\n48314,truck\n48315,bird\n48316,frog\n48317,bird\n48318,automobile\n48319,ship\n48320,frog\n48321,bird\n48322,frog\n48323,airplane\n48324,dog\n48325,ship\n48326,truck\n48327,ship\n48328,dog\n48329,airplane\n48330,deer\n48331,truck\n48332,frog\n48333,dog\n48334,cat\n48335,cat\n48336,deer\n48337,frog\n48338,bird\n48339,automobile\n48340,bird\n48341,cat\n48342,airplane\n48343,frog\n48344,automobile\n48345,airplane\n48346,bird\n48347,truck\n48348,automobile\n48349,cat\n48350,deer\n48351,cat\n48352,cat\n48353,dog\n48354,bird\n48355,frog\n48356,deer\n48357,horse\n48358,ship\n48359,horse\n48360,cat\n48361,horse\n48362,frog\n48363,frog\n48364,bird\n48365,horse\n48366,ship\n48367,frog\n48368,automobile\n48369,frog\n48370,dog\n48371,deer\n48372,horse\n48373,frog\n48374,frog\n48375,ship\n48376,dog\n48377,horse\n48378,cat\n48379,cat\n48380,deer\n48381,frog\n48382,horse\n48383,deer\n48384,deer\n48385,airplane\n48386,truck\n48387,cat\n48388,frog\n48389,airplane\n48390,horse\n48391,deer\n48392,deer\n48393,ship\n48394,horse\n48395,cat\n48396,deer\n48397,automobile\n48398,truck\n48399,cat\n48400,cat\n48401,automobile\n48402,truck\n48403,cat\n48404,ship\n48405,deer\n48406,bird\n48407,deer\n48408,cat\n48409,airplane\n48410,cat\n48411,deer\n48412,airplane\n48413,deer\n48414,airplane\n48415,deer\n48416,airplane\n48417,frog\n48418,bird\n48419,bird\n48420,ship\n48421,horse\n48422,automobile\n48423,airplane\n48424,airplane\n48425,truck\n48426,cat\n48427,cat\n48428,deer\n48429,frog\n48430,ship\n48431,bird\n48432,horse\n48433,horse\n48434,truck\n48435,cat\n48436,ship\n48437,frog\n48438,truck\n48439,bird\n48440,truck\n48441,cat\n48442,cat\n48443,deer\n48444,airplane\n48445,cat\n48446,deer\n48447,airplane\n48448,frog\n48449,ship\n48450,cat\n48451,cat\n48452,cat\n48453,cat\n48454,dog\n48455,truck\n48456,cat\n48457,dog\n48458,automobile\n48459,dog\n48460,cat\n48461,horse\n48462,automobile\n48463,cat\n48464,airplane\n48465,automobile\n48466,horse\n48467,cat\n48468,truck\n48469,dog\n48470,truck\n48471,cat\n48472,deer\n48473,automobile\n48474,bird\n48475,airplane\n48476,frog\n48477,automobile\n48478,cat\n48479,bird\n48480,dog\n48481,cat\n48482,truck\n48483,frog\n48484,ship\n48485,truck\n48486,horse\n48487,bird\n48488,airplane\n48489,horse\n48490,cat\n48491,truck\n48492,truck\n48493,bird\n48494,automobile\n48495,horse\n48496,frog\n48497,deer\n48498,horse\n48499,truck\n48500,deer\n48501,dog\n48502,bird\n48503,ship\n48504,dog\n48505,automobile\n48506,cat\n48507,bird\n48508,automobile\n48509,dog\n48510,bird\n48511,horse\n48512,deer\n48513,frog\n48514,horse\n48515,dog\n48516,airplane\n48517,bird\n48518,deer\n48519,airplane\n48520,bird\n48521,cat\n48522,dog\n48523,truck\n48524,automobile\n48525,frog\n48526,cat\n48527,deer\n48528,ship\n48529,airplane\n48530,truck\n48531,cat\n48532,deer\n48533,truck\n48534,cat\n48535,automobile\n48536,automobile\n48537,ship\n48538,horse\n48539,ship\n48540,bird\n48541,bird\n48542,ship\n48543,deer\n48544,horse\n48545,cat\n48546,deer\n48547,ship\n48548,ship\n48549,automobile\n48550,cat\n48551,frog\n48552,deer\n48553,cat\n48554,ship\n48555,cat\n48556,automobile\n48557,truck\n48558,truck\n48559,automobile\n48560,deer\n48561,deer\n48562,truck\n48563,airplane\n48564,automobile\n48565,deer\n48566,frog\n48567,dog\n48568,frog\n48569,bird\n48570,bird\n48571,cat\n48572,truck\n48573,deer\n48574,truck\n48575,dog\n48576,horse\n48577,frog\n48578,airplane\n48579,horse\n48580,cat\n48581,cat\n48582,automobile\n48583,deer\n48584,airplane\n48585,dog\n48586,airplane\n48587,dog\n48588,cat\n48589,horse\n48590,cat\n48591,truck\n48592,truck\n48593,deer\n48594,airplane\n48595,horse\n48596,dog\n48597,horse\n48598,dog\n48599,airplane\n48600,truck\n48601,frog\n48602,truck\n48603,frog\n48604,cat\n48605,deer\n48606,deer\n48607,bird\n48608,dog\n48609,horse\n48610,frog\n48611,airplane\n48612,frog\n48613,airplane\n48614,frog\n48615,ship\n48616,cat\n48617,frog\n48618,airplane\n48619,airplane\n48620,truck\n48621,truck\n48622,frog\n48623,cat\n48624,dog\n48625,frog\n48626,deer\n48627,horse\n48628,deer\n48629,ship\n48630,bird\n48631,dog\n48632,horse\n48633,truck\n48634,airplane\n48635,deer\n48636,automobile\n48637,frog\n48638,horse\n48639,cat\n48640,ship\n48641,dog\n48642,cat\n48643,airplane\n48644,truck\n48645,frog\n48646,bird\n48647,deer\n48648,bird\n48649,airplane\n48650,bird\n48651,cat\n48652,cat\n48653,cat\n48654,frog\n48655,ship\n48656,cat\n48657,dog\n48658,airplane\n48659,airplane\n48660,deer\n48661,frog\n48662,deer\n48663,frog\n48664,cat\n48665,frog\n48666,airplane\n48667,ship\n48668,deer\n48669,bird\n48670,dog\n48671,deer\n48672,deer\n48673,airplane\n48674,deer\n48675,horse\n48676,frog\n48677,frog\n48678,cat\n48679,ship\n48680,automobile\n48681,truck\n48682,bird\n48683,dog\n48684,airplane\n48685,deer\n48686,frog\n48687,frog\n48688,cat\n48689,ship\n48690,cat\n48691,airplane\n48692,deer\n48693,automobile\n48694,dog\n48695,frog\n48696,cat\n48697,truck\n48698,dog\n48699,truck\n48700,truck\n48701,truck\n48702,bird\n48703,horse\n48704,frog\n48705,horse\n48706,truck\n48707,horse\n48708,frog\n48709,cat\n48710,horse\n48711,cat\n48712,cat\n48713,frog\n48714,bird\n48715,cat\n48716,cat\n48717,cat\n48718,bird\n48719,bird\n48720,truck\n48721,deer\n48722,horse\n48723,airplane\n48724,ship\n48725,frog\n48726,horse\n48727,automobile\n48728,cat\n48729,horse\n48730,airplane\n48731,cat\n48732,frog\n48733,frog\n48734,ship\n48735,deer\n48736,automobile\n48737,horse\n48738,cat\n48739,truck\n48740,automobile\n48741,airplane\n48742,bird\n48743,airplane\n48744,deer\n48745,truck\n48746,dog\n48747,truck\n48748,dog\n48749,frog\n48750,frog\n48751,deer\n48752,frog\n48753,cat\n48754,deer\n48755,frog\n48756,airplane\n48757,truck\n48758,deer\n48759,frog\n48760,horse\n48761,horse\n48762,truck\n48763,frog\n48764,truck\n48765,ship\n48766,horse\n48767,deer\n48768,deer\n48769,ship\n48770,truck\n48771,airplane\n48772,cat\n48773,airplane\n48774,cat\n48775,bird\n48776,airplane\n48777,truck\n48778,horse\n48779,airplane\n48780,deer\n48781,automobile\n48782,deer\n48783,dog\n48784,bird\n48785,deer\n48786,dog\n48787,automobile\n48788,dog\n48789,automobile\n48790,truck\n48791,dog\n48792,cat\n48793,frog\n48794,automobile\n48795,bird\n48796,airplane\n48797,truck\n48798,deer\n48799,ship\n48800,deer\n48801,bird\n48802,deer\n48803,truck\n48804,cat\n48805,truck\n48806,cat\n48807,truck\n48808,dog\n48809,frog\n48810,automobile\n48811,ship\n48812,horse\n48813,horse\n48814,bird\n48815,automobile\n48816,horse\n48817,automobile\n48818,horse\n48819,cat\n48820,airplane\n48821,frog\n48822,horse\n48823,truck\n48824,cat\n48825,bird\n48826,ship\n48827,horse\n48828,horse\n48829,horse\n48830,frog\n48831,horse\n48832,truck\n48833,deer\n48834,deer\n48835,dog\n48836,cat\n48837,airplane\n48838,deer\n48839,truck\n48840,deer\n48841,cat\n48842,cat\n48843,deer\n48844,automobile\n48845,cat\n48846,dog\n48847,cat\n48848,deer\n48849,truck\n48850,cat\n48851,bird\n48852,ship\n48853,dog\n48854,bird\n48855,frog\n48856,dog\n48857,automobile\n48858,truck\n48859,frog\n48860,bird\n48861,dog\n48862,bird\n48863,truck\n48864,truck\n48865,cat\n48866,bird\n48867,ship\n48868,deer\n48869,dog\n48870,deer\n48871,frog\n48872,ship\n48873,bird\n48874,ship\n48875,bird\n48876,horse\n48877,horse\n48878,deer\n48879,dog\n48880,airplane\n48881,ship\n48882,frog\n48883,dog\n48884,deer\n48885,horse\n48886,horse\n48887,bird\n48888,bird\n48889,ship\n48890,airplane\n48891,airplane\n48892,truck\n48893,deer\n48894,frog\n48895,truck\n48896,ship\n48897,dog\n48898,bird\n48899,dog\n48900,truck\n48901,truck\n48902,bird\n48903,dog\n48904,horse\n48905,deer\n48906,bird\n48907,automobile\n48908,horse\n48909,truck\n48910,bird\n48911,cat\n48912,cat\n48913,frog\n48914,dog\n48915,cat\n48916,frog\n48917,horse\n48918,dog\n48919,horse\n48920,frog\n48921,horse\n48922,bird\n48923,deer\n48924,cat\n48925,ship\n48926,horse\n48927,automobile\n48928,horse\n48929,deer\n48930,cat\n48931,truck\n48932,airplane\n48933,cat\n48934,truck\n48935,airplane\n48936,cat\n48937,frog\n48938,automobile\n48939,cat\n48940,truck\n48941,ship\n48942,truck\n48943,deer\n48944,horse\n48945,horse\n48946,airplane\n48947,dog\n48948,bird\n48949,frog\n48950,frog\n48951,dog\n48952,deer\n48953,cat\n48954,dog\n48955,bird\n48956,bird\n48957,dog\n48958,dog\n48959,horse\n48960,bird\n48961,dog\n48962,airplane\n48963,deer\n48964,dog\n48965,dog\n48966,truck\n48967,dog\n48968,bird\n48969,cat\n48970,horse\n48971,frog\n48972,frog\n48973,ship\n48974,dog\n48975,deer\n48976,deer\n48977,bird\n48978,ship\n48979,dog\n48980,truck\n48981,truck\n48982,airplane\n48983,truck\n48984,dog\n48985,bird\n48986,horse\n48987,automobile\n48988,frog\n48989,ship\n48990,automobile\n48991,dog\n48992,horse\n48993,dog\n48994,airplane\n48995,dog\n48996,dog\n48997,dog\n48998,truck\n48999,airplane\n49000,airplane\n49001,frog\n49002,deer\n49003,automobile\n49004,horse\n49005,bird\n49006,deer\n49007,deer\n49008,automobile\n49009,dog\n49010,dog\n49011,cat\n49012,automobile\n49013,automobile\n49014,bird\n49015,automobile\n49016,truck\n49017,frog\n49018,cat\n49019,bird\n49020,frog\n49021,airplane\n49022,automobile\n49023,ship\n49024,bird\n49025,bird\n49026,dog\n49027,automobile\n49028,deer\n49029,ship\n49030,automobile\n49031,cat\n49032,horse\n49033,bird\n49034,ship\n49035,truck\n49036,truck\n49037,deer\n49038,bird\n49039,dog\n49040,automobile\n49041,cat\n49042,truck\n49043,ship\n49044,ship\n49045,dog\n49046,cat\n49047,frog\n49048,bird\n49049,deer\n49050,automobile\n49051,truck\n49052,truck\n49053,ship\n49054,frog\n49055,airplane\n49056,airplane\n49057,deer\n49058,deer\n49059,automobile\n49060,cat\n49061,frog\n49062,cat\n49063,horse\n49064,dog\n49065,deer\n49066,bird\n49067,frog\n49068,horse\n49069,frog\n49070,dog\n49071,bird\n49072,horse\n49073,ship\n49074,deer\n49075,cat\n49076,bird\n49077,cat\n49078,bird\n49079,automobile\n49080,deer\n49081,airplane\n49082,bird\n49083,cat\n49084,cat\n49085,cat\n49086,dog\n49087,ship\n49088,cat\n49089,dog\n49090,deer\n49091,truck\n49092,horse\n49093,dog\n49094,airplane\n49095,deer\n49096,deer\n49097,frog\n49098,bird\n49099,dog\n49100,dog\n49101,dog\n49102,dog\n49103,automobile\n49104,bird\n49105,airplane\n49106,deer\n49107,automobile\n49108,deer\n49109,automobile\n49110,truck\n49111,cat\n49112,ship\n49113,horse\n49114,cat\n49115,frog\n49116,deer\n49117,dog\n49118,horse\n49119,deer\n49120,airplane\n49121,truck\n49122,deer\n49123,frog\n49124,bird\n49125,dog\n49126,horse\n49127,truck\n49128,truck\n49129,frog\n49130,bird\n49131,automobile\n49132,cat\n49133,bird\n49134,automobile\n49135,deer\n49136,automobile\n49137,bird\n49138,frog\n49139,airplane\n49140,cat\n49141,automobile\n49142,dog\n49143,automobile\n49144,dog\n49145,ship\n49146,cat\n49147,bird\n49148,automobile\n49149,frog\n49150,automobile\n49151,horse\n49152,deer\n49153,bird\n49154,ship\n49155,frog\n49156,cat\n49157,airplane\n49158,cat\n49159,frog\n49160,deer\n49161,bird\n49162,deer\n49163,bird\n49164,automobile\n49165,horse\n49166,frog\n49167,ship\n49168,frog\n49169,dog\n49170,deer\n49171,horse\n49172,airplane\n49173,frog\n49174,automobile\n49175,bird\n49176,horse\n49177,ship\n49178,horse\n49179,deer\n49180,truck\n49181,truck\n49182,cat\n49183,ship\n49184,automobile\n49185,dog\n49186,deer\n49187,dog\n49188,bird\n49189,automobile\n49190,deer\n49191,dog\n49192,automobile\n49193,frog\n49194,horse\n49195,cat\n49196,dog\n49197,airplane\n49198,cat\n49199,frog\n49200,dog\n49201,bird\n49202,bird\n49203,frog\n49204,ship\n49205,ship\n49206,dog\n49207,cat\n49208,deer\n49209,cat\n49210,bird\n49211,horse\n49212,airplane\n49213,horse\n49214,deer\n49215,frog\n49216,horse\n49217,dog\n49218,cat\n49219,dog\n49220,dog\n49221,airplane\n49222,deer\n49223,ship\n49224,horse\n49225,truck\n49226,frog\n49227,cat\n49228,frog\n49229,cat\n49230,horse\n49231,automobile\n49232,frog\n49233,frog\n49234,cat\n49235,airplane\n49236,frog\n49237,cat\n49238,cat\n49239,frog\n49240,horse\n49241,ship\n49242,cat\n49243,horse\n49244,dog\n49245,deer\n49246,automobile\n49247,horse\n49248,airplane\n49249,deer\n49250,truck\n49251,frog\n49252,bird\n49253,automobile\n49254,truck\n49255,truck\n49256,frog\n49257,truck\n49258,deer\n49259,bird\n49260,airplane\n49261,truck\n49262,frog\n49263,bird\n49264,cat\n49265,ship\n49266,airplane\n49267,cat\n49268,deer\n49269,airplane\n49270,dog\n49271,airplane\n49272,airplane\n49273,truck\n49274,horse\n49275,ship\n49276,bird\n49277,bird\n49278,cat\n49279,horse\n49280,automobile\n49281,airplane\n49282,bird\n49283,truck\n49284,automobile\n49285,cat\n49286,ship\n49287,ship\n49288,bird\n49289,ship\n49290,deer\n49291,truck\n49292,airplane\n49293,cat\n49294,cat\n49295,cat\n49296,ship\n49297,automobile\n49298,horse\n49299,ship\n49300,automobile\n49301,ship\n49302,cat\n49303,bird\n49304,cat\n49305,cat\n49306,deer\n49307,airplane\n49308,cat\n49309,airplane\n49310,airplane\n49311,frog\n49312,cat\n49313,frog\n49314,bird\n49315,horse\n49316,frog\n49317,truck\n49318,bird\n49319,truck\n49320,deer\n49321,cat\n49322,airplane\n49323,airplane\n49324,deer\n49325,cat\n49326,dog\n49327,cat\n49328,truck\n49329,frog\n49330,deer\n49331,cat\n49332,cat\n49333,truck\n49334,bird\n49335,truck\n49336,frog\n49337,cat\n49338,cat\n49339,deer\n49340,truck\n49341,dog\n49342,deer\n49343,cat\n49344,frog\n49345,cat\n49346,airplane\n49347,horse\n49348,deer\n49349,deer\n49350,dog\n49351,horse\n49352,horse\n49353,dog\n49354,cat\n49355,truck\n49356,cat\n49357,bird\n49358,cat\n49359,ship\n49360,deer\n49361,cat\n49362,airplane\n49363,deer\n49364,deer\n49365,bird\n49366,deer\n49367,frog\n49368,automobile\n49369,deer\n49370,truck\n49371,ship\n49372,deer\n49373,dog\n49374,cat\n49375,deer\n49376,cat\n49377,deer\n49378,cat\n49379,cat\n49380,ship\n49381,truck\n49382,airplane\n49383,truck\n49384,truck\n49385,ship\n49386,ship\n49387,truck\n49388,horse\n49389,dog\n49390,frog\n49391,automobile\n49392,ship\n49393,ship\n49394,automobile\n49395,dog\n49396,frog\n49397,dog\n49398,ship\n49399,truck\n49400,cat\n49401,dog\n49402,dog\n49403,truck\n49404,bird\n49405,horse\n49406,frog\n49407,frog\n49408,cat\n49409,cat\n49410,dog\n49411,horse\n49412,ship\n49413,airplane\n49414,automobile\n49415,frog\n49416,cat\n49417,automobile\n49418,dog\n49419,automobile\n49420,ship\n49421,bird\n49422,frog\n49423,deer\n49424,horse\n49425,airplane\n49426,frog\n49427,ship\n49428,frog\n49429,airplane\n49430,dog\n49431,bird\n49432,automobile\n49433,frog\n49434,dog\n49435,deer\n49436,truck\n49437,deer\n49438,truck\n49439,airplane\n49440,airplane\n49441,airplane\n49442,dog\n49443,airplane\n49444,frog\n49445,dog\n49446,horse\n49447,airplane\n49448,airplane\n49449,deer\n49450,frog\n49451,cat\n49452,truck\n49453,dog\n49454,deer\n49455,airplane\n49456,frog\n49457,bird\n49458,horse\n49459,horse\n49460,dog\n49461,cat\n49462,deer\n49463,truck\n49464,truck\n49465,airplane\n49466,truck\n49467,dog\n49468,truck\n49469,bird\n49470,ship\n49471,horse\n49472,cat\n49473,bird\n49474,dog\n49475,ship\n49476,cat\n49477,truck\n49478,cat\n49479,dog\n49480,horse\n49481,deer\n49482,ship\n49483,deer\n49484,airplane\n49485,cat\n49486,dog\n49487,deer\n49488,deer\n49489,automobile\n49490,deer\n49491,dog\n49492,cat\n49493,dog\n49494,bird\n49495,truck\n49496,frog\n49497,truck\n49498,frog\n49499,airplane\n49500,horse\n49501,deer\n49502,ship\n49503,deer\n49504,truck\n49505,truck\n49506,bird\n49507,horse\n49508,horse\n49509,ship\n49510,deer\n49511,airplane\n49512,frog\n49513,ship\n49514,horse\n49515,ship\n49516,dog\n49517,horse\n49518,ship\n49519,frog\n49520,truck\n49521,horse\n49522,cat\n49523,horse\n49524,dog\n49525,ship\n49526,deer\n49527,ship\n49528,frog\n49529,deer\n49530,dog\n49531,horse\n49532,truck\n49533,dog\n49534,truck\n49535,airplane\n49536,cat\n49537,truck\n49538,bird\n49539,frog\n49540,truck\n49541,airplane\n49542,automobile\n49543,horse\n49544,deer\n49545,cat\n49546,airplane\n49547,automobile\n49548,ship\n49549,deer\n49550,ship\n49551,automobile\n49552,frog\n49553,horse\n49554,bird\n49555,cat\n49556,deer\n49557,cat\n49558,horse\n49559,automobile\n49560,horse\n49561,truck\n49562,deer\n49563,bird\n49564,cat\n49565,frog\n49566,truck\n49567,cat\n49568,ship\n49569,automobile\n49570,bird\n49571,truck\n49572,cat\n49573,frog\n49574,frog\n49575,deer\n49576,cat\n49577,truck\n49578,horse\n49579,bird\n49580,cat\n49581,deer\n49582,horse\n49583,frog\n49584,ship\n49585,dog\n49586,cat\n49587,ship\n49588,cat\n49589,bird\n49590,horse\n49591,bird\n49592,frog\n49593,truck\n49594,ship\n49595,airplane\n49596,deer\n49597,frog\n49598,deer\n49599,deer\n49600,automobile\n49601,frog\n49602,automobile\n49603,cat\n49604,automobile\n49605,dog\n49606,frog\n49607,deer\n49608,frog\n49609,cat\n49610,dog\n49611,cat\n49612,horse\n49613,horse\n49614,frog\n49615,truck\n49616,deer\n49617,bird\n49618,frog\n49619,frog\n49620,dog\n49621,automobile\n49622,deer\n49623,ship\n49624,deer\n49625,deer\n49626,ship\n49627,cat\n49628,dog\n49629,horse\n49630,horse\n49631,cat\n49632,deer\n49633,bird\n49634,dog\n49635,truck\n49636,airplane\n49637,bird\n49638,automobile\n49639,cat\n49640,horse\n49641,frog\n49642,horse\n49643,ship\n49644,deer\n49645,dog\n49646,bird\n49647,airplane\n49648,airplane\n49649,horse\n49650,airplane\n49651,horse\n49652,automobile\n49653,automobile\n49654,automobile\n49655,frog\n49656,truck\n49657,deer\n49658,frog\n49659,truck\n49660,automobile\n49661,bird\n49662,airplane\n49663,bird\n49664,airplane\n49665,automobile\n49666,airplane\n49667,airplane\n49668,bird\n49669,airplane\n49670,horse\n49671,dog\n49672,horse\n49673,airplane\n49674,horse\n49675,cat\n49676,automobile\n49677,horse\n49678,horse\n49679,cat\n49680,deer\n49681,deer\n49682,truck\n49683,horse\n49684,bird\n49685,frog\n49686,dog\n49687,deer\n49688,deer\n49689,cat\n49690,deer\n49691,dog\n49692,frog\n49693,frog\n49694,frog\n49695,frog\n49696,deer\n49697,ship\n49698,dog\n49699,ship\n49700,dog\n49701,dog\n49702,airplane\n49703,dog\n49704,cat\n49705,dog\n49706,cat\n49707,horse\n49708,truck\n49709,dog\n49710,airplane\n49711,dog\n49712,automobile\n49713,truck\n49714,ship\n49715,deer\n49716,cat\n49717,truck\n49718,deer\n49719,automobile\n49720,deer\n49721,truck\n49722,dog\n49723,ship\n49724,airplane\n49725,ship\n49726,frog\n49727,dog\n49728,airplane\n49729,bird\n49730,horse\n49731,cat\n49732,horse\n49733,cat\n49734,frog\n49735,cat\n49736,deer\n49737,bird\n49738,bird\n49739,cat\n49740,automobile\n49741,ship\n49742,frog\n49743,frog\n49744,truck\n49745,frog\n49746,truck\n49747,ship\n49748,dog\n49749,ship\n49750,dog\n49751,airplane\n49752,airplane\n49753,truck\n49754,deer\n49755,dog\n49756,horse\n49757,bird\n49758,truck\n49759,deer\n49760,ship\n49761,automobile\n49762,ship\n49763,bird\n49764,frog\n49765,truck\n49766,horse\n49767,automobile\n49768,airplane\n49769,deer\n49770,airplane\n49771,dog\n49772,automobile\n49773,horse\n49774,bird\n49775,horse\n49776,automobile\n49777,truck\n49778,automobile\n49779,deer\n49780,dog\n49781,bird\n49782,cat\n49783,cat\n49784,deer\n49785,automobile\n49786,truck\n49787,deer\n49788,ship\n49789,deer\n49790,cat\n49791,horse\n49792,deer\n49793,truck\n49794,bird\n49795,frog\n49796,automobile\n49797,ship\n49798,deer\n49799,truck\n49800,automobile\n49801,horse\n49802,truck\n49803,airplane\n49804,cat\n49805,dog\n49806,frog\n49807,ship\n49808,airplane\n49809,truck\n49810,deer\n49811,deer\n49812,airplane\n49813,frog\n49814,airplane\n49815,dog\n49816,automobile\n49817,cat\n49818,horse\n49819,cat\n49820,dog\n49821,frog\n49822,ship\n49823,dog\n49824,deer\n49825,bird\n49826,bird\n49827,bird\n49828,automobile\n49829,truck\n49830,truck\n49831,ship\n49832,cat\n49833,airplane\n49834,airplane\n49835,automobile\n49836,frog\n49837,dog\n49838,dog\n49839,airplane\n49840,airplane\n49841,horse\n49842,deer\n49843,horse\n49844,truck\n49845,truck\n49846,deer\n49847,dog\n49848,deer\n49849,deer\n49850,truck\n49851,truck\n49852,airplane\n49853,frog\n49854,cat\n49855,frog\n49856,cat\n49857,cat\n49858,dog\n49859,deer\n49860,frog\n49861,frog\n49862,automobile\n49863,truck\n49864,truck\n49865,automobile\n49866,bird\n49867,cat\n49868,ship\n49869,dog\n49870,truck\n49871,deer\n49872,airplane\n49873,ship\n49874,ship\n49875,airplane\n49876,dog\n49877,dog\n49878,automobile\n49879,frog\n49880,bird\n49881,cat\n49882,airplane\n49883,horse\n49884,horse\n49885,cat\n49886,horse\n49887,ship\n49888,bird\n49889,deer\n49890,airplane\n49891,cat\n49892,automobile\n49893,automobile\n49894,cat\n49895,frog\n49896,automobile\n49897,truck\n49898,airplane\n49899,dog\n49900,frog\n49901,frog\n49902,horse\n49903,dog\n49904,dog\n49905,horse\n49906,airplane\n49907,bird\n49908,frog\n49909,automobile\n49910,automobile\n49911,truck\n49912,cat\n49913,automobile\n49914,dog\n49915,dog\n49916,frog\n49917,horse\n49918,dog\n49919,truck\n49920,cat\n49921,truck\n49922,bird\n49923,deer\n49924,automobile\n49925,cat\n49926,airplane\n49927,bird\n49928,deer\n49929,airplane\n49930,horse\n49931,airplane\n49932,truck\n49933,truck\n49934,frog\n49935,cat\n49936,horse\n49937,frog\n49938,truck\n49939,frog\n49940,cat\n49941,cat\n49942,automobile\n49943,airplane\n49944,bird\n49945,airplane\n49946,bird\n49947,truck\n49948,ship\n49949,automobile\n49950,deer\n49951,airplane\n49952,airplane\n49953,ship\n49954,deer\n49955,horse\n49956,cat\n49957,deer\n49958,frog\n49959,deer\n49960,automobile\n49961,automobile\n49962,cat\n49963,ship\n49964,automobile\n49965,frog\n49966,deer\n49967,deer\n49968,truck\n49969,horse\n49970,automobile\n49971,deer\n49972,cat\n49973,bird\n49974,cat\n49975,deer\n49976,horse\n49977,deer\n49978,airplane\n49979,ship\n49980,bird\n49981,cat\n49982,automobile\n49983,dog\n49984,truck\n49985,airplane\n49986,dog\n49987,deer\n49988,bird\n49989,ship\n49990,frog\n49991,truck\n49992,deer\n49993,airplane\n49994,airplane\n49995,truck\n49996,airplane\n49997,deer\n49998,ship\n49999,truck\n50000,airplane\n50001,bird\n50002,cat\n50003,deer\n50004,frog\n50005,frog\n50006,frog\n50007,horse\n50008,ship\n50009,airplane\n50010,deer\n50011,automobile\n50012,airplane\n50013,airplane\n50014,cat\n50015,dog\n50016,bird\n50017,horse\n50018,ship\n50019,deer\n50020,truck\n50021,horse\n50022,frog\n50023,ship\n50024,ship\n50025,deer\n50026,automobile\n50027,cat\n50028,bird\n50029,truck\n50030,cat\n50031,horse\n50032,deer\n50033,deer\n50034,ship\n50035,cat\n50036,dog\n50037,ship\n50038,frog\n50039,dog\n50040,deer\n50041,horse\n50042,deer\n50043,automobile\n50044,truck\n50045,bird\n50046,frog\n50047,truck\n50048,deer\n50049,automobile\n50050,bird\n50051,truck\n50052,cat\n50053,airplane\n50054,airplane\n50055,truck\n50056,horse\n50057,deer\n50058,horse\n50059,dog\n50060,dog\n50061,deer\n50062,dog\n50063,dog\n50064,cat\n50065,deer\n50066,cat\n50067,horse\n50068,frog\n50069,truck\n50070,airplane\n50071,deer\n50072,horse\n50073,airplane\n50074,dog\n50075,ship\n50076,frog\n50077,horse\n50078,ship\n50079,dog\n50080,bird\n50081,automobile\n50082,deer\n50083,deer\n50084,cat\n50085,cat\n50086,bird\n50087,deer\n50088,bird\n50089,deer\n50090,airplane\n50091,airplane\n50092,cat\n50093,horse\n50094,bird\n50095,deer\n50096,ship\n50097,automobile\n50098,frog\n50099,automobile\n50100,cat\n50101,ship\n50102,frog\n50103,horse\n50104,dog\n50105,deer\n50106,horse\n50107,truck\n50108,deer\n50109,bird\n50110,frog\n50111,truck\n50112,cat\n50113,horse\n50114,dog\n50115,airplane\n50116,ship\n50117,frog\n50118,dog\n50119,ship\n50120,cat\n50121,cat\n50122,cat\n50123,automobile\n50124,airplane\n50125,frog\n50126,cat\n50127,frog\n50128,cat\n50129,automobile\n50130,dog\n50131,automobile\n50132,truck\n50133,cat\n50134,deer\n50135,deer\n50136,automobile\n50137,dog\n50138,ship\n50139,cat\n50140,bird\n50141,truck\n50142,deer\n50143,horse\n50144,deer\n50145,deer\n50146,truck\n50147,bird\n50148,bird\n50149,frog\n50150,frog\n50151,cat\n50152,cat\n50153,airplane\n50154,cat\n50155,deer\n50156,horse\n50157,automobile\n50158,truck\n50159,automobile\n50160,deer\n50161,airplane\n50162,horse\n50163,deer\n50164,deer\n50165,ship\n50166,dog\n50167,bird\n50168,dog\n50169,frog\n50170,dog\n50171,truck\n50172,frog\n50173,frog\n50174,dog\n50175,deer\n50176,frog\n50177,truck\n50178,airplane\n50179,deer\n50180,bird\n50181,truck\n50182,cat\n50183,deer\n50184,deer\n50185,horse\n50186,deer\n50187,airplane\n50188,dog\n50189,truck\n50190,frog\n50191,airplane\n50192,deer\n50193,automobile\n50194,automobile\n50195,deer\n50196,deer\n50197,dog\n50198,truck\n50199,cat\n50200,ship\n50201,dog\n50202,bird\n50203,automobile\n50204,frog\n50205,dog\n50206,truck\n50207,deer\n50208,deer\n50209,airplane\n50210,bird\n50211,horse\n50212,frog\n50213,airplane\n50214,horse\n50215,airplane\n50216,deer\n50217,cat\n50218,bird\n50219,deer\n50220,truck\n50221,cat\n50222,ship\n50223,dog\n50224,bird\n50225,truck\n50226,truck\n50227,airplane\n50228,horse\n50229,ship\n50230,horse\n50231,airplane\n50232,deer\n50233,deer\n50234,cat\n50235,cat\n50236,dog\n50237,deer\n50238,cat\n50239,truck\n50240,cat\n50241,horse\n50242,bird\n50243,ship\n50244,truck\n50245,deer\n50246,frog\n50247,cat\n50248,horse\n50249,dog\n50250,truck\n50251,ship\n50252,cat\n50253,deer\n50254,airplane\n50255,horse\n50256,cat\n50257,dog\n50258,cat\n50259,ship\n50260,cat\n50261,truck\n50262,ship\n50263,airplane\n50264,deer\n50265,airplane\n50266,deer\n50267,truck\n50268,airplane\n50269,airplane\n50270,horse\n50271,truck\n50272,frog\n50273,bird\n50274,frog\n50275,bird\n50276,deer\n50277,deer\n50278,bird\n50279,dog\n50280,deer\n50281,frog\n50282,automobile\n50283,cat\n50284,truck\n50285,automobile\n50286,airplane\n50287,truck\n50288,cat\n50289,truck\n50290,deer\n50291,automobile\n50292,deer\n50293,horse\n50294,horse\n50295,dog\n50296,deer\n50297,airplane\n50298,bird\n50299,automobile\n50300,horse\n50301,truck\n50302,horse\n50303,ship\n50304,bird\n50305,deer\n50306,dog\n50307,truck\n50308,horse\n50309,truck\n50310,cat\n50311,ship\n50312,frog\n50313,frog\n50314,frog\n50315,deer\n50316,cat\n50317,ship\n50318,airplane\n50319,airplane\n50320,cat\n50321,ship\n50322,dog\n50323,airplane\n50324,cat\n50325,deer\n50326,deer\n50327,frog\n50328,airplane\n50329,frog\n50330,deer\n50331,dog\n50332,bird\n50333,frog\n50334,bird\n50335,horse\n50336,frog\n50337,ship\n50338,deer\n50339,bird\n50340,horse\n50341,deer\n50342,cat\n50343,horse\n50344,deer\n50345,frog\n50346,dog\n50347,dog\n50348,ship\n50349,cat\n50350,horse\n50351,dog\n50352,ship\n50353,cat\n50354,horse\n50355,deer\n50356,automobile\n50357,automobile\n50358,truck\n50359,cat\n50360,frog\n50361,dog\n50362,dog\n50363,bird\n50364,truck\n50365,horse\n50366,ship\n50367,horse\n50368,truck\n50369,dog\n50370,airplane\n50371,dog\n50372,truck\n50373,automobile\n50374,dog\n50375,ship\n50376,frog\n50377,horse\n50378,ship\n50379,deer\n50380,automobile\n50381,horse\n50382,deer\n50383,horse\n50384,truck\n50385,horse\n50386,bird\n50387,automobile\n50388,frog\n50389,ship\n50390,airplane\n50391,horse\n50392,ship\n50393,bird\n50394,truck\n50395,deer\n50396,dog\n50397,truck\n50398,airplane\n50399,deer\n50400,deer\n50401,dog\n50402,dog\n50403,airplane\n50404,truck\n50405,ship\n50406,deer\n50407,horse\n50408,cat\n50409,cat\n50410,frog\n50411,truck\n50412,dog\n50413,truck\n50414,automobile\n50415,cat\n50416,airplane\n50417,dog\n50418,deer\n50419,automobile\n50420,horse\n50421,cat\n50422,deer\n50423,deer\n50424,cat\n50425,cat\n50426,deer\n50427,deer\n50428,frog\n50429,frog\n50430,ship\n50431,horse\n50432,dog\n50433,airplane\n50434,dog\n50435,ship\n50436,ship\n50437,dog\n50438,horse\n50439,dog\n50440,automobile\n50441,truck\n50442,deer\n50443,truck\n50444,airplane\n50445,cat\n50446,ship\n50447,frog\n50448,truck\n50449,horse\n50450,airplane\n50451,frog\n50452,dog\n50453,frog\n50454,deer\n50455,frog\n50456,cat\n50457,ship\n50458,cat\n50459,frog\n50460,deer\n50461,cat\n50462,deer\n50463,automobile\n50464,automobile\n50465,frog\n50466,ship\n50467,deer\n50468,horse\n50469,dog\n50470,frog\n50471,frog\n50472,cat\n50473,deer\n50474,cat\n50475,bird\n50476,truck\n50477,frog\n50478,frog\n50479,deer\n50480,airplane\n50481,frog\n50482,ship\n50483,dog\n50484,dog\n50485,automobile\n50486,frog\n50487,deer\n50488,deer\n50489,bird\n50490,cat\n50491,deer\n50492,bird\n50493,deer\n50494,automobile\n50495,truck\n50496,truck\n50497,horse\n50498,ship\n50499,horse\n50500,airplane\n50501,deer\n50502,truck\n50503,ship\n50504,ship\n50505,ship\n50506,dog\n50507,airplane\n50508,deer\n50509,horse\n50510,dog\n50511,cat\n50512,cat\n50513,deer\n50514,ship\n50515,automobile\n50516,dog\n50517,dog\n50518,bird\n50519,dog\n50520,dog\n50521,airplane\n50522,truck\n50523,automobile\n50524,truck\n50525,horse\n50526,cat\n50527,truck\n50528,cat\n50529,bird\n50530,dog\n50531,horse\n50532,dog\n50533,frog\n50534,deer\n50535,truck\n50536,deer\n50537,frog\n50538,deer\n50539,truck\n50540,horse\n50541,truck\n50542,horse\n50543,truck\n50544,deer\n50545,frog\n50546,truck\n50547,bird\n50548,frog\n50549,deer\n50550,dog\n50551,frog\n50552,bird\n50553,deer\n50554,airplane\n50555,deer\n50556,cat\n50557,truck\n50558,deer\n50559,bird\n50560,truck\n50561,horse\n50562,bird\n50563,deer\n50564,deer\n50565,cat\n50566,automobile\n50567,truck\n50568,horse\n50569,dog\n50570,bird\n50571,deer\n50572,airplane\n50573,frog\n50574,frog\n50575,deer\n50576,frog\n50577,automobile\n50578,dog\n50579,frog\n50580,truck\n50581,airplane\n50582,bird\n50583,horse\n50584,frog\n50585,truck\n50586,dog\n50587,deer\n50588,horse\n50589,dog\n50590,deer\n50591,dog\n50592,bird\n50593,bird\n50594,deer\n50595,dog\n50596,frog\n50597,ship\n50598,frog\n50599,airplane\n50600,automobile\n50601,truck\n50602,frog\n50603,ship\n50604,ship\n50605,airplane\n50606,airplane\n50607,airplane\n50608,airplane\n50609,truck\n50610,cat\n50611,frog\n50612,bird\n50613,ship\n50614,ship\n50615,bird\n50616,cat\n50617,dog\n50618,cat\n50619,ship\n50620,ship\n50621,ship\n50622,ship\n50623,ship\n50624,automobile\n50625,automobile\n50626,horse\n50627,frog\n50628,truck\n50629,cat\n50630,ship\n50631,frog\n50632,ship\n50633,cat\n50634,horse\n50635,horse\n50636,dog\n50637,horse\n50638,deer\n50639,truck\n50640,truck\n50641,frog\n50642,frog\n50643,deer\n50644,dog\n50645,automobile\n50646,frog\n50647,airplane\n50648,automobile\n50649,deer\n50650,horse\n50651,frog\n50652,truck\n50653,truck\n50654,automobile\n50655,airplane\n50656,airplane\n50657,ship\n50658,deer\n50659,deer\n50660,automobile\n50661,frog\n50662,dog\n50663,bird\n50664,cat\n50665,ship\n50666,truck\n50667,ship\n50668,automobile\n50669,cat\n50670,cat\n50671,cat\n50672,automobile\n50673,automobile\n50674,ship\n50675,cat\n50676,truck\n50677,frog\n50678,deer\n50679,horse\n50680,frog\n50681,automobile\n50682,deer\n50683,airplane\n50684,bird\n50685,cat\n50686,truck\n50687,frog\n50688,truck\n50689,bird\n50690,horse\n50691,automobile\n50692,deer\n50693,dog\n50694,dog\n50695,automobile\n50696,bird\n50697,cat\n50698,automobile\n50699,airplane\n50700,horse\n50701,horse\n50702,dog\n50703,ship\n50704,horse\n50705,automobile\n50706,ship\n50707,cat\n50708,ship\n50709,airplane\n50710,dog\n50711,truck\n50712,horse\n50713,airplane\n50714,automobile\n50715,cat\n50716,horse\n50717,cat\n50718,cat\n50719,cat\n50720,frog\n50721,horse\n50722,deer\n50723,automobile\n50724,cat\n50725,dog\n50726,deer\n50727,horse\n50728,frog\n50729,horse\n50730,cat\n50731,deer\n50732,deer\n50733,frog\n50734,dog\n50735,automobile\n50736,bird\n50737,frog\n50738,truck\n50739,bird\n50740,frog\n50741,automobile\n50742,ship\n50743,dog\n50744,dog\n50745,frog\n50746,airplane\n50747,airplane\n50748,dog\n50749,dog\n50750,dog\n50751,truck\n50752,ship\n50753,deer\n50754,dog\n50755,airplane\n50756,cat\n50757,cat\n50758,automobile\n50759,dog\n50760,cat\n50761,automobile\n50762,dog\n50763,ship\n50764,horse\n50765,ship\n50766,cat\n50767,airplane\n50768,airplane\n50769,frog\n50770,deer\n50771,deer\n50772,deer\n50773,airplane\n50774,dog\n50775,airplane\n50776,cat\n50777,bird\n50778,horse\n50779,deer\n50780,deer\n50781,cat\n50782,truck\n50783,truck\n50784,airplane\n50785,frog\n50786,bird\n50787,bird\n50788,ship\n50789,dog\n50790,cat\n50791,frog\n50792,ship\n50793,deer\n50794,airplane\n50795,truck\n50796,dog\n50797,deer\n50798,cat\n50799,airplane\n50800,frog\n50801,dog\n50802,dog\n50803,horse\n50804,cat\n50805,frog\n50806,frog\n50807,airplane\n50808,ship\n50809,bird\n50810,airplane\n50811,deer\n50812,truck\n50813,deer\n50814,automobile\n50815,dog\n50816,horse\n50817,horse\n50818,ship\n50819,truck\n50820,cat\n50821,horse\n50822,automobile\n50823,ship\n50824,airplane\n50825,cat\n50826,bird\n50827,truck\n50828,cat\n50829,truck\n50830,deer\n50831,horse\n50832,bird\n50833,cat\n50834,cat\n50835,cat\n50836,cat\n50837,cat\n50838,bird\n50839,automobile\n50840,ship\n50841,airplane\n50842,frog\n50843,truck\n50844,horse\n50845,airplane\n50846,truck\n50847,ship\n50848,ship\n50849,airplane\n50850,ship\n50851,airplane\n50852,deer\n50853,deer\n50854,frog\n50855,truck\n50856,airplane\n50857,horse\n50858,deer\n50859,automobile\n50860,truck\n50861,deer\n50862,dog\n50863,frog\n50864,frog\n50865,cat\n50866,frog\n50867,automobile\n50868,deer\n50869,frog\n50870,bird\n50871,dog\n50872,airplane\n50873,cat\n50874,truck\n50875,dog\n50876,dog\n50877,bird\n50878,automobile\n50879,deer\n50880,frog\n50881,automobile\n50882,bird\n50883,deer\n50884,horse\n50885,cat\n50886,cat\n50887,frog\n50888,airplane\n50889,frog\n50890,dog\n50891,bird\n50892,horse\n50893,ship\n50894,deer\n50895,airplane\n50896,cat\n50897,ship\n50898,bird\n50899,deer\n50900,horse\n50901,truck\n50902,automobile\n50903,deer\n50904,deer\n50905,deer\n50906,automobile\n50907,bird\n50908,deer\n50909,bird\n50910,horse\n50911,deer\n50912,truck\n50913,cat\n50914,automobile\n50915,cat\n50916,dog\n50917,airplane\n50918,cat\n50919,ship\n50920,bird\n50921,horse\n50922,deer\n50923,horse\n50924,cat\n50925,horse\n50926,dog\n50927,ship\n50928,frog\n50929,frog\n50930,truck\n50931,airplane\n50932,horse\n50933,truck\n50934,airplane\n50935,airplane\n50936,frog\n50937,airplane\n50938,dog\n50939,ship\n50940,truck\n50941,deer\n50942,cat\n50943,frog\n50944,bird\n50945,deer\n50946,cat\n50947,ship\n50948,deer\n50949,horse\n50950,airplane\n50951,deer\n50952,cat\n50953,deer\n50954,cat\n50955,deer\n50956,truck\n50957,dog\n50958,truck\n50959,dog\n50960,cat\n50961,ship\n50962,truck\n50963,truck\n50964,frog\n50965,bird\n50966,frog\n50967,ship\n50968,truck\n50969,ship\n50970,dog\n50971,automobile\n50972,deer\n50973,airplane\n50974,automobile\n50975,dog\n50976,deer\n50977,horse\n50978,bird\n50979,truck\n50980,deer\n50981,frog\n50982,dog\n50983,truck\n50984,automobile\n50985,cat\n50986,horse\n50987,truck\n50988,horse\n50989,deer\n50990,deer\n50991,deer\n50992,deer\n50993,dog\n50994,airplane\n50995,horse\n50996,truck\n50997,bird\n50998,horse\n50999,bird\n51000,bird\n51001,horse\n51002,horse\n51003,automobile\n51004,bird\n51005,airplane\n51006,frog\n51007,truck\n51008,horse\n51009,bird\n51010,horse\n51011,frog\n51012,truck\n51013,truck\n51014,dog\n51015,deer\n51016,automobile\n51017,cat\n51018,ship\n51019,dog\n51020,dog\n51021,dog\n51022,bird\n51023,truck\n51024,dog\n51025,automobile\n51026,automobile\n51027,dog\n51028,frog\n51029,deer\n51030,frog\n51031,automobile\n51032,airplane\n51033,frog\n51034,cat\n51035,frog\n51036,truck\n51037,dog\n51038,automobile\n51039,frog\n51040,deer\n51041,cat\n51042,deer\n51043,frog\n51044,frog\n51045,cat\n51046,airplane\n51047,deer\n51048,frog\n51049,bird\n51050,deer\n51051,airplane\n51052,horse\n51053,ship\n51054,deer\n51055,horse\n51056,airplane\n51057,frog\n51058,airplane\n51059,airplane\n51060,cat\n51061,dog\n51062,ship\n51063,airplane\n51064,airplane\n51065,airplane\n51066,frog\n51067,truck\n51068,frog\n51069,truck\n51070,deer\n51071,frog\n51072,dog\n51073,dog\n51074,bird\n51075,frog\n51076,automobile\n51077,cat\n51078,frog\n51079,horse\n51080,airplane\n51081,truck\n51082,truck\n51083,dog\n51084,truck\n51085,cat\n51086,deer\n51087,airplane\n51088,dog\n51089,airplane\n51090,dog\n51091,truck\n51092,airplane\n51093,horse\n51094,bird\n51095,ship\n51096,dog\n51097,deer\n51098,dog\n51099,bird\n51100,dog\n51101,horse\n51102,deer\n51103,automobile\n51104,deer\n51105,automobile\n51106,ship\n51107,cat\n51108,truck\n51109,horse\n51110,ship\n51111,truck\n51112,ship\n51113,deer\n51114,deer\n51115,horse\n51116,dog\n51117,bird\n51118,ship\n51119,deer\n51120,frog\n51121,dog\n51122,truck\n51123,automobile\n51124,dog\n51125,deer\n51126,airplane\n51127,cat\n51128,horse\n51129,automobile\n51130,frog\n51131,frog\n51132,ship\n51133,frog\n51134,bird\n51135,airplane\n51136,deer\n51137,ship\n51138,airplane\n51139,frog\n51140,truck\n51141,frog\n51142,cat\n51143,truck\n51144,frog\n51145,airplane\n51146,frog\n51147,horse\n51148,bird\n51149,ship\n51150,airplane\n51151,automobile\n51152,dog\n51153,dog\n51154,deer\n51155,automobile\n51156,airplane\n51157,cat\n51158,truck\n51159,truck\n51160,airplane\n51161,airplane\n51162,horse\n51163,horse\n51164,bird\n51165,frog\n51166,truck\n51167,deer\n51168,deer\n51169,truck\n51170,horse\n51171,horse\n51172,airplane\n51173,dog\n51174,horse\n51175,cat\n51176,dog\n51177,frog\n51178,cat\n51179,airplane\n51180,cat\n51181,horse\n51182,airplane\n51183,dog\n51184,ship\n51185,horse\n51186,frog\n51187,automobile\n51188,bird\n51189,frog\n51190,deer\n51191,truck\n51192,ship\n51193,deer\n51194,automobile\n51195,truck\n51196,deer\n51197,automobile\n51198,truck\n51199,dog\n51200,frog\n51201,bird\n51202,cat\n51203,cat\n51204,horse\n51205,automobile\n51206,bird\n51207,cat\n51208,automobile\n51209,airplane\n51210,automobile\n51211,ship\n51212,dog\n51213,dog\n51214,automobile\n51215,dog\n51216,dog\n51217,horse\n51218,deer\n51219,airplane\n51220,ship\n51221,cat\n51222,frog\n51223,truck\n51224,deer\n51225,frog\n51226,dog\n51227,cat\n51228,frog\n51229,horse\n51230,dog\n51231,deer\n51232,dog\n51233,deer\n51234,airplane\n51235,truck\n51236,frog\n51237,cat\n51238,ship\n51239,bird\n51240,horse\n51241,ship\n51242,ship\n51243,truck\n51244,frog\n51245,truck\n51246,ship\n51247,frog\n51248,truck\n51249,horse\n51250,bird\n51251,ship\n51252,automobile\n51253,deer\n51254,horse\n51255,cat\n51256,truck\n51257,bird\n51258,truck\n51259,frog\n51260,deer\n51261,horse\n51262,horse\n51263,cat\n51264,cat\n51265,ship\n51266,airplane\n51267,airplane\n51268,truck\n51269,airplane\n51270,truck\n51271,cat\n51272,frog\n51273,ship\n51274,horse\n51275,cat\n51276,horse\n51277,deer\n51278,dog\n51279,horse\n51280,truck\n51281,truck\n51282,horse\n51283,deer\n51284,horse\n51285,truck\n51286,bird\n51287,deer\n51288,horse\n51289,dog\n51290,horse\n51291,truck\n51292,airplane\n51293,ship\n51294,airplane\n51295,cat\n51296,ship\n51297,horse\n51298,airplane\n51299,horse\n51300,horse\n51301,dog\n51302,horse\n51303,truck\n51304,dog\n51305,dog\n51306,ship\n51307,dog\n51308,horse\n51309,bird\n51310,truck\n51311,truck\n51312,cat\n51313,deer\n51314,airplane\n51315,dog\n51316,frog\n51317,frog\n51318,airplane\n51319,deer\n51320,automobile\n51321,bird\n51322,truck\n51323,horse\n51324,deer\n51325,deer\n51326,truck\n51327,horse\n51328,deer\n51329,bird\n51330,bird\n51331,truck\n51332,automobile\n51333,dog\n51334,horse\n51335,truck\n51336,airplane\n51337,truck\n51338,bird\n51339,cat\n51340,truck\n51341,frog\n51342,dog\n51343,horse\n51344,truck\n51345,frog\n51346,automobile\n51347,bird\n51348,cat\n51349,dog\n51350,frog\n51351,dog\n51352,airplane\n51353,deer\n51354,deer\n51355,bird\n51356,dog\n51357,deer\n51358,frog\n51359,truck\n51360,horse\n51361,frog\n51362,frog\n51363,cat\n51364,frog\n51365,bird\n51366,automobile\n51367,deer\n51368,dog\n51369,cat\n51370,deer\n51371,frog\n51372,airplane\n51373,ship\n51374,truck\n51375,horse\n51376,dog\n51377,truck\n51378,truck\n51379,dog\n51380,frog\n51381,horse\n51382,frog\n51383,truck\n51384,automobile\n51385,deer\n51386,horse\n51387,deer\n51388,frog\n51389,cat\n51390,bird\n51391,bird\n51392,automobile\n51393,frog\n51394,ship\n51395,horse\n51396,dog\n51397,deer\n51398,ship\n51399,frog\n51400,deer\n51401,deer\n51402,truck\n51403,deer\n51404,dog\n51405,truck\n51406,airplane\n51407,frog\n51408,ship\n51409,automobile\n51410,automobile\n51411,airplane\n51412,deer\n51413,truck\n51414,ship\n51415,frog\n51416,dog\n51417,frog\n51418,horse\n51419,frog\n51420,dog\n51421,automobile\n51422,airplane\n51423,deer\n51424,deer\n51425,deer\n51426,automobile\n51427,frog\n51428,cat\n51429,deer\n51430,airplane\n51431,airplane\n51432,dog\n51433,horse\n51434,horse\n51435,dog\n51436,ship\n51437,truck\n51438,cat\n51439,horse\n51440,deer\n51441,ship\n51442,frog\n51443,deer\n51444,horse\n51445,automobile\n51446,dog\n51447,frog\n51448,horse\n51449,deer\n51450,deer\n51451,automobile\n51452,airplane\n51453,horse\n51454,airplane\n51455,dog\n51456,frog\n51457,dog\n51458,automobile\n51459,cat\n51460,cat\n51461,ship\n51462,frog\n51463,deer\n51464,cat\n51465,automobile\n51466,frog\n51467,deer\n51468,horse\n51469,airplane\n51470,airplane\n51471,ship\n51472,cat\n51473,cat\n51474,frog\n51475,bird\n51476,frog\n51477,ship\n51478,frog\n51479,horse\n51480,truck\n51481,dog\n51482,frog\n51483,truck\n51484,deer\n51485,horse\n51486,horse\n51487,deer\n51488,cat\n51489,deer\n51490,cat\n51491,cat\n51492,frog\n51493,frog\n51494,cat\n51495,deer\n51496,cat\n51497,horse\n51498,dog\n51499,deer\n51500,truck\n51501,dog\n51502,deer\n51503,ship\n51504,automobile\n51505,deer\n51506,truck\n51507,airplane\n51508,automobile\n51509,deer\n51510,frog\n51511,deer\n51512,horse\n51513,frog\n51514,deer\n51515,horse\n51516,airplane\n51517,horse\n51518,horse\n51519,cat\n51520,horse\n51521,ship\n51522,ship\n51523,airplane\n51524,airplane\n51525,horse\n51526,frog\n51527,horse\n51528,dog\n51529,deer\n51530,frog\n51531,horse\n51532,horse\n51533,frog\n51534,frog\n51535,deer\n51536,truck\n51537,cat\n51538,deer\n51539,ship\n51540,truck\n51541,deer\n51542,bird\n51543,deer\n51544,frog\n51545,frog\n51546,truck\n51547,deer\n51548,deer\n51549,bird\n51550,cat\n51551,deer\n51552,ship\n51553,automobile\n51554,bird\n51555,automobile\n51556,horse\n51557,cat\n51558,dog\n51559,automobile\n51560,dog\n51561,automobile\n51562,bird\n51563,frog\n51564,horse\n51565,horse\n51566,truck\n51567,frog\n51568,airplane\n51569,frog\n51570,frog\n51571,dog\n51572,truck\n51573,deer\n51574,deer\n51575,deer\n51576,automobile\n51577,deer\n51578,frog\n51579,horse\n51580,cat\n51581,truck\n51582,bird\n51583,truck\n51584,bird\n51585,truck\n51586,bird\n51587,frog\n51588,bird\n51589,bird\n51590,horse\n51591,dog\n51592,frog\n51593,dog\n51594,bird\n51595,airplane\n51596,bird\n51597,airplane\n51598,frog\n51599,horse\n51600,cat\n51601,truck\n51602,horse\n51603,dog\n51604,airplane\n51605,horse\n51606,bird\n51607,cat\n51608,airplane\n51609,cat\n51610,airplane\n51611,automobile\n51612,bird\n51613,airplane\n51614,automobile\n51615,cat\n51616,cat\n51617,airplane\n51618,cat\n51619,automobile\n51620,dog\n51621,frog\n51622,truck\n51623,bird\n51624,frog\n51625,frog\n51626,truck\n51627,deer\n51628,truck\n51629,frog\n51630,frog\n51631,cat\n51632,airplane\n51633,dog\n51634,cat\n51635,cat\n51636,deer\n51637,automobile\n51638,bird\n51639,bird\n51640,bird\n51641,airplane\n51642,horse\n51643,deer\n51644,cat\n51645,frog\n51646,truck\n51647,horse\n51648,dog\n51649,horse\n51650,bird\n51651,frog\n51652,horse\n51653,truck\n51654,truck\n51655,horse\n51656,dog\n51657,deer\n51658,deer\n51659,truck\n51660,ship\n51661,truck\n51662,truck\n51663,cat\n51664,horse\n51665,deer\n51666,automobile\n51667,bird\n51668,truck\n51669,cat\n51670,deer\n51671,bird\n51672,automobile\n51673,frog\n51674,cat\n51675,truck\n51676,airplane\n51677,horse\n51678,frog\n51679,cat\n51680,frog\n51681,dog\n51682,automobile\n51683,airplane\n51684,cat\n51685,dog\n51686,airplane\n51687,truck\n51688,bird\n51689,deer\n51690,ship\n51691,cat\n51692,truck\n51693,deer\n51694,bird\n51695,cat\n51696,dog\n51697,dog\n51698,ship\n51699,frog\n51700,bird\n51701,truck\n51702,dog\n51703,horse\n51704,horse\n51705,bird\n51706,frog\n51707,deer\n51708,bird\n51709,frog\n51710,deer\n51711,truck\n51712,automobile\n51713,truck\n51714,frog\n51715,frog\n51716,dog\n51717,cat\n51718,ship\n51719,dog\n51720,dog\n51721,dog\n51722,horse\n51723,bird\n51724,automobile\n51725,cat\n51726,frog\n51727,deer\n51728,truck\n51729,automobile\n51730,frog\n51731,horse\n51732,bird\n51733,frog\n51734,deer\n51735,frog\n51736,airplane\n51737,cat\n51738,deer\n51739,frog\n51740,frog\n51741,ship\n51742,bird\n51743,deer\n51744,cat\n51745,bird\n51746,dog\n51747,deer\n51748,truck\n51749,ship\n51750,ship\n51751,truck\n51752,cat\n51753,truck\n51754,cat\n51755,automobile\n51756,truck\n51757,dog\n51758,ship\n51759,dog\n51760,cat\n51761,deer\n51762,truck\n51763,truck\n51764,airplane\n51765,truck\n51766,deer\n51767,automobile\n51768,truck\n51769,dog\n51770,deer\n51771,horse\n51772,deer\n51773,dog\n51774,cat\n51775,horse\n51776,frog\n51777,frog\n51778,deer\n51779,cat\n51780,deer\n51781,ship\n51782,dog\n51783,airplane\n51784,deer\n51785,deer\n51786,horse\n51787,cat\n51788,dog\n51789,ship\n51790,airplane\n51791,deer\n51792,horse\n51793,automobile\n51794,ship\n51795,ship\n51796,cat\n51797,dog\n51798,dog\n51799,cat\n51800,airplane\n51801,automobile\n51802,ship\n51803,bird\n51804,cat\n51805,cat\n51806,bird\n51807,cat\n51808,frog\n51809,frog\n51810,cat\n51811,airplane\n51812,dog\n51813,airplane\n51814,bird\n51815,truck\n51816,truck\n51817,ship\n51818,bird\n51819,horse\n51820,ship\n51821,dog\n51822,horse\n51823,bird\n51824,cat\n51825,deer\n51826,bird\n51827,bird\n51828,cat\n51829,automobile\n51830,frog\n51831,ship\n51832,horse\n51833,automobile\n51834,truck\n51835,bird\n51836,airplane\n51837,truck\n51838,deer\n51839,bird\n51840,truck\n51841,cat\n51842,bird\n51843,automobile\n51844,ship\n51845,dog\n51846,bird\n51847,dog\n51848,airplane\n51849,bird\n51850,deer\n51851,deer\n51852,frog\n51853,dog\n51854,automobile\n51855,horse\n51856,truck\n51857,airplane\n51858,dog\n51859,deer\n51860,horse\n51861,dog\n51862,automobile\n51863,frog\n51864,frog\n51865,airplane\n51866,cat\n51867,ship\n51868,truck\n51869,deer\n51870,horse\n51871,airplane\n51872,dog\n51873,cat\n51874,horse\n51875,dog\n51876,truck\n51877,deer\n51878,dog\n51879,dog\n51880,frog\n51881,horse\n51882,truck\n51883,frog\n51884,automobile\n51885,dog\n51886,truck\n51887,airplane\n51888,cat\n51889,bird\n51890,horse\n51891,frog\n51892,deer\n51893,bird\n51894,airplane\n51895,deer\n51896,horse\n51897,frog\n51898,ship\n51899,cat\n51900,cat\n51901,airplane\n51902,automobile\n51903,ship\n51904,frog\n51905,truck\n51906,ship\n51907,horse\n51908,truck\n51909,bird\n51910,ship\n51911,automobile\n51912,frog\n51913,truck\n51914,horse\n51915,bird\n51916,bird\n51917,ship\n51918,horse\n51919,bird\n51920,ship\n51921,airplane\n51922,deer\n51923,cat\n51924,cat\n51925,horse\n51926,frog\n51927,frog\n51928,airplane\n51929,cat\n51930,frog\n51931,cat\n51932,ship\n51933,bird\n51934,horse\n51935,deer\n51936,frog\n51937,cat\n51938,cat\n51939,cat\n51940,cat\n51941,horse\n51942,dog\n51943,deer\n51944,dog\n51945,deer\n51946,deer\n51947,dog\n51948,frog\n51949,bird\n51950,frog\n51951,dog\n51952,cat\n51953,deer\n51954,bird\n51955,truck\n51956,airplane\n51957,horse\n51958,horse\n51959,ship\n51960,deer\n51961,horse\n51962,automobile\n51963,airplane\n51964,truck\n51965,airplane\n51966,deer\n51967,deer\n51968,bird\n51969,ship\n51970,ship\n51971,frog\n51972,horse\n51973,horse\n51974,deer\n51975,deer\n51976,ship\n51977,deer\n51978,dog\n51979,airplane\n51980,cat\n51981,cat\n51982,horse\n51983,cat\n51984,frog\n51985,cat\n51986,dog\n51987,cat\n51988,cat\n51989,dog\n51990,bird\n51991,bird\n51992,cat\n51993,cat\n51994,horse\n51995,automobile\n51996,bird\n51997,truck\n51998,ship\n51999,horse\n52000,bird\n52001,deer\n52002,cat\n52003,frog\n52004,airplane\n52005,automobile\n52006,cat\n52007,frog\n52008,horse\n52009,frog\n52010,dog\n52011,dog\n52012,bird\n52013,airplane\n52014,dog\n52015,truck\n52016,cat\n52017,frog\n52018,cat\n52019,cat\n52020,deer\n52021,truck\n52022,automobile\n52023,ship\n52024,airplane\n52025,horse\n52026,cat\n52027,frog\n52028,deer\n52029,ship\n52030,airplane\n52031,frog\n52032,truck\n52033,cat\n52034,airplane\n52035,frog\n52036,truck\n52037,airplane\n52038,truck\n52039,ship\n52040,cat\n52041,frog\n52042,ship\n52043,cat\n52044,dog\n52045,dog\n52046,bird\n52047,deer\n52048,automobile\n52049,automobile\n52050,frog\n52051,cat\n52052,bird\n52053,bird\n52054,frog\n52055,truck\n52056,bird\n52057,automobile\n52058,horse\n52059,cat\n52060,ship\n52061,deer\n52062,frog\n52063,airplane\n52064,cat\n52065,airplane\n52066,cat\n52067,cat\n52068,deer\n52069,horse\n52070,bird\n52071,cat\n52072,dog\n52073,automobile\n52074,truck\n52075,truck\n52076,bird\n52077,truck\n52078,deer\n52079,deer\n52080,automobile\n52081,frog\n52082,airplane\n52083,dog\n52084,ship\n52085,horse\n52086,cat\n52087,cat\n52088,cat\n52089,automobile\n52090,horse\n52091,airplane\n52092,frog\n52093,airplane\n52094,dog\n52095,deer\n52096,deer\n52097,ship\n52098,frog\n52099,horse\n52100,frog\n52101,frog\n52102,deer\n52103,automobile\n52104,automobile\n52105,frog\n52106,cat\n52107,dog\n52108,frog\n52109,ship\n52110,deer\n52111,horse\n52112,horse\n52113,frog\n52114,truck\n52115,truck\n52116,truck\n52117,truck\n52118,cat\n52119,ship\n52120,deer\n52121,deer\n52122,airplane\n52123,deer\n52124,deer\n52125,truck\n52126,bird\n52127,ship\n52128,automobile\n52129,frog\n52130,horse\n52131,truck\n52132,cat\n52133,truck\n52134,dog\n52135,deer\n52136,automobile\n52137,ship\n52138,cat\n52139,bird\n52140,airplane\n52141,bird\n52142,deer\n52143,frog\n52144,bird\n52145,dog\n52146,truck\n52147,frog\n52148,automobile\n52149,cat\n52150,deer\n52151,ship\n52152,bird\n52153,dog\n52154,frog\n52155,ship\n52156,frog\n52157,truck\n52158,truck\n52159,cat\n52160,bird\n52161,dog\n52162,cat\n52163,frog\n52164,bird\n52165,truck\n52166,deer\n52167,truck\n52168,truck\n52169,cat\n52170,airplane\n52171,truck\n52172,automobile\n52173,horse\n52174,cat\n52175,cat\n52176,horse\n52177,truck\n52178,ship\n52179,airplane\n52180,frog\n52181,horse\n52182,truck\n52183,bird\n52184,cat\n52185,ship\n52186,deer\n52187,ship\n52188,ship\n52189,horse\n52190,cat\n52191,horse\n52192,truck\n52193,frog\n52194,truck\n52195,truck\n52196,automobile\n52197,ship\n52198,automobile\n52199,airplane\n52200,bird\n52201,ship\n52202,frog\n52203,deer\n52204,horse\n52205,cat\n52206,frog\n52207,frog\n52208,truck\n52209,deer\n52210,cat\n52211,cat\n52212,cat\n52213,ship\n52214,cat\n52215,bird\n52216,automobile\n52217,frog\n52218,ship\n52219,ship\n52220,dog\n52221,bird\n52222,cat\n52223,bird\n52224,truck\n52225,truck\n52226,bird\n52227,ship\n52228,truck\n52229,truck\n52230,automobile\n52231,automobile\n52232,deer\n52233,airplane\n52234,frog\n52235,cat\n52236,truck\n52237,dog\n52238,dog\n52239,cat\n52240,cat\n52241,ship\n52242,truck\n52243,deer\n52244,deer\n52245,cat\n52246,deer\n52247,truck\n52248,dog\n52249,cat\n52250,horse\n52251,horse\n52252,airplane\n52253,bird\n52254,cat\n52255,airplane\n52256,cat\n52257,dog\n52258,automobile\n52259,dog\n52260,truck\n52261,dog\n52262,horse\n52263,automobile\n52264,horse\n52265,cat\n52266,airplane\n52267,ship\n52268,ship\n52269,horse\n52270,cat\n52271,deer\n52272,cat\n52273,deer\n52274,airplane\n52275,ship\n52276,dog\n52277,frog\n52278,truck\n52279,deer\n52280,frog\n52281,frog\n52282,truck\n52283,ship\n52284,dog\n52285,ship\n52286,dog\n52287,truck\n52288,airplane\n52289,truck\n52290,truck\n52291,horse\n52292,deer\n52293,automobile\n52294,airplane\n52295,cat\n52296,deer\n52297,bird\n52298,bird\n52299,horse\n52300,ship\n52301,horse\n52302,dog\n52303,automobile\n52304,dog\n52305,deer\n52306,automobile\n52307,deer\n52308,dog\n52309,frog\n52310,deer\n52311,airplane\n52312,bird\n52313,cat\n52314,frog\n52315,airplane\n52316,automobile\n52317,cat\n52318,bird\n52319,bird\n52320,truck\n52321,dog\n52322,automobile\n52323,bird\n52324,cat\n52325,airplane\n52326,cat\n52327,dog\n52328,airplane\n52329,truck\n52330,deer\n52331,frog\n52332,cat\n52333,bird\n52334,frog\n52335,airplane\n52336,bird\n52337,dog\n52338,deer\n52339,frog\n52340,horse\n52341,horse\n52342,frog\n52343,deer\n52344,bird\n52345,dog\n52346,cat\n52347,airplane\n52348,frog\n52349,truck\n52350,dog\n52351,frog\n52352,deer\n52353,dog\n52354,cat\n52355,deer\n52356,ship\n52357,frog\n52358,bird\n52359,horse\n52360,dog\n52361,bird\n52362,cat\n52363,ship\n52364,cat\n52365,truck\n52366,cat\n52367,cat\n52368,bird\n52369,automobile\n52370,ship\n52371,cat\n52372,cat\n52373,bird\n52374,truck\n52375,deer\n52376,deer\n52377,frog\n52378,horse\n52379,ship\n52380,ship\n52381,dog\n52382,ship\n52383,truck\n52384,deer\n52385,deer\n52386,truck\n52387,deer\n52388,deer\n52389,truck\n52390,ship\n52391,automobile\n52392,cat\n52393,airplane\n52394,airplane\n52395,airplane\n52396,deer\n52397,truck\n52398,automobile\n52399,frog\n52400,dog\n52401,frog\n52402,truck\n52403,frog\n52404,cat\n52405,truck\n52406,horse\n52407,frog\n52408,airplane\n52409,dog\n52410,automobile\n52411,truck\n52412,horse\n52413,dog\n52414,dog\n52415,truck\n52416,automobile\n52417,dog\n52418,ship\n52419,deer\n52420,ship\n52421,automobile\n52422,frog\n52423,frog\n52424,frog\n52425,deer\n52426,frog\n52427,bird\n52428,cat\n52429,cat\n52430,horse\n52431,bird\n52432,dog\n52433,cat\n52434,cat\n52435,automobile\n52436,bird\n52437,truck\n52438,ship\n52439,deer\n52440,horse\n52441,deer\n52442,dog\n52443,truck\n52444,bird\n52445,automobile\n52446,truck\n52447,deer\n52448,cat\n52449,horse\n52450,airplane\n52451,deer\n52452,bird\n52453,cat\n52454,airplane\n52455,truck\n52456,cat\n52457,ship\n52458,ship\n52459,cat\n52460,airplane\n52461,airplane\n52462,automobile\n52463,truck\n52464,cat\n52465,automobile\n52466,dog\n52467,bird\n52468,horse\n52469,cat\n52470,deer\n52471,ship\n52472,truck\n52473,ship\n52474,dog\n52475,airplane\n52476,frog\n52477,cat\n52478,frog\n52479,bird\n52480,deer\n52481,frog\n52482,ship\n52483,deer\n52484,horse\n52485,deer\n52486,ship\n52487,dog\n52488,deer\n52489,airplane\n52490,automobile\n52491,deer\n52492,horse\n52493,airplane\n52494,horse\n52495,deer\n52496,deer\n52497,cat\n52498,cat\n52499,dog\n52500,airplane\n52501,frog\n52502,horse\n52503,horse\n52504,frog\n52505,automobile\n52506,automobile\n52507,bird\n52508,cat\n52509,bird\n52510,automobile\n52511,dog\n52512,automobile\n52513,horse\n52514,deer\n52515,airplane\n52516,deer\n52517,deer\n52518,deer\n52519,frog\n52520,cat\n52521,automobile\n52522,horse\n52523,dog\n52524,cat\n52525,frog\n52526,truck\n52527,airplane\n52528,truck\n52529,dog\n52530,ship\n52531,dog\n52532,dog\n52533,automobile\n52534,airplane\n52535,deer\n52536,truck\n52537,deer\n52538,airplane\n52539,airplane\n52540,truck\n52541,ship\n52542,airplane\n52543,horse\n52544,bird\n52545,deer\n52546,ship\n52547,automobile\n52548,automobile\n52549,horse\n52550,dog\n52551,frog\n52552,truck\n52553,frog\n52554,cat\n52555,horse\n52556,frog\n52557,truck\n52558,deer\n52559,horse\n52560,bird\n52561,deer\n52562,frog\n52563,dog\n52564,horse\n52565,dog\n52566,ship\n52567,deer\n52568,dog\n52569,deer\n52570,deer\n52571,frog\n52572,dog\n52573,automobile\n52574,bird\n52575,frog\n52576,automobile\n52577,frog\n52578,truck\n52579,deer\n52580,dog\n52581,bird\n52582,ship\n52583,deer\n52584,truck\n52585,horse\n52586,ship\n52587,deer\n52588,ship\n52589,frog\n52590,truck\n52591,frog\n52592,automobile\n52593,frog\n52594,horse\n52595,airplane\n52596,airplane\n52597,truck\n52598,airplane\n52599,airplane\n52600,deer\n52601,bird\n52602,frog\n52603,deer\n52604,bird\n52605,deer\n52606,truck\n52607,truck\n52608,cat\n52609,frog\n52610,bird\n52611,cat\n52612,cat\n52613,automobile\n52614,frog\n52615,cat\n52616,deer\n52617,dog\n52618,truck\n52619,cat\n52620,ship\n52621,dog\n52622,airplane\n52623,cat\n52624,frog\n52625,truck\n52626,ship\n52627,truck\n52628,frog\n52629,cat\n52630,cat\n52631,cat\n52632,deer\n52633,deer\n52634,cat\n52635,deer\n52636,truck\n52637,bird\n52638,cat\n52639,frog\n52640,cat\n52641,frog\n52642,cat\n52643,frog\n52644,truck\n52645,automobile\n52646,frog\n52647,automobile\n52648,frog\n52649,cat\n52650,bird\n52651,ship\n52652,ship\n52653,automobile\n52654,horse\n52655,truck\n52656,airplane\n52657,automobile\n52658,dog\n52659,ship\n52660,dog\n52661,deer\n52662,bird\n52663,bird\n52664,bird\n52665,cat\n52666,frog\n52667,deer\n52668,ship\n52669,truck\n52670,dog\n52671,frog\n52672,cat\n52673,horse\n52674,cat\n52675,ship\n52676,deer\n52677,automobile\n52678,deer\n52679,bird\n52680,deer\n52681,dog\n52682,automobile\n52683,bird\n52684,cat\n52685,frog\n52686,truck\n52687,dog\n52688,ship\n52689,frog\n52690,ship\n52691,truck\n52692,bird\n52693,deer\n52694,truck\n52695,automobile\n52696,cat\n52697,cat\n52698,dog\n52699,truck\n52700,ship\n52701,airplane\n52702,automobile\n52703,cat\n52704,ship\n52705,frog\n52706,ship\n52707,ship\n52708,deer\n52709,dog\n52710,cat\n52711,horse\n52712,airplane\n52713,frog\n52714,bird\n52715,cat\n52716,cat\n52717,frog\n52718,frog\n52719,frog\n52720,horse\n52721,deer\n52722,dog\n52723,dog\n52724,cat\n52725,bird\n52726,ship\n52727,deer\n52728,dog\n52729,deer\n52730,frog\n52731,airplane\n52732,airplane\n52733,deer\n52734,frog\n52735,bird\n52736,automobile\n52737,bird\n52738,bird\n52739,horse\n52740,truck\n52741,frog\n52742,truck\n52743,ship\n52744,automobile\n52745,ship\n52746,airplane\n52747,ship\n52748,frog\n52749,deer\n52750,frog\n52751,dog\n52752,deer\n52753,dog\n52754,cat\n52755,frog\n52756,bird\n52757,deer\n52758,deer\n52759,bird\n52760,airplane\n52761,cat\n52762,bird\n52763,dog\n52764,airplane\n52765,bird\n52766,frog\n52767,bird\n52768,deer\n52769,automobile\n52770,airplane\n52771,airplane\n52772,frog\n52773,automobile\n52774,ship\n52775,deer\n52776,cat\n52777,cat\n52778,bird\n52779,dog\n52780,airplane\n52781,dog\n52782,horse\n52783,automobile\n52784,cat\n52785,airplane\n52786,airplane\n52787,deer\n52788,frog\n52789,truck\n52790,automobile\n52791,ship\n52792,bird\n52793,airplane\n52794,automobile\n52795,airplane\n52796,frog\n52797,cat\n52798,automobile\n52799,bird\n52800,truck\n52801,dog\n52802,horse\n52803,airplane\n52804,cat\n52805,deer\n52806,cat\n52807,cat\n52808,frog\n52809,cat\n52810,horse\n52811,truck\n52812,bird\n52813,frog\n52814,deer\n52815,bird\n52816,cat\n52817,automobile\n52818,deer\n52819,dog\n52820,ship\n52821,automobile\n52822,truck\n52823,frog\n52824,deer\n52825,frog\n52826,automobile\n52827,cat\n52828,deer\n52829,ship\n52830,ship\n52831,ship\n52832,bird\n52833,deer\n52834,automobile\n52835,airplane\n52836,cat\n52837,cat\n52838,ship\n52839,frog\n52840,frog\n52841,airplane\n52842,deer\n52843,bird\n52844,ship\n52845,airplane\n52846,cat\n52847,frog\n52848,bird\n52849,truck\n52850,horse\n52851,airplane\n52852,ship\n52853,horse\n52854,horse\n52855,horse\n52856,frog\n52857,frog\n52858,truck\n52859,automobile\n52860,truck\n52861,deer\n52862,horse\n52863,bird\n52864,frog\n52865,ship\n52866,frog\n52867,automobile\n52868,cat\n52869,airplane\n52870,automobile\n52871,cat\n52872,frog\n52873,deer\n52874,horse\n52875,deer\n52876,ship\n52877,airplane\n52878,bird\n52879,deer\n52880,cat\n52881,cat\n52882,dog\n52883,truck\n52884,deer\n52885,automobile\n52886,cat\n52887,horse\n52888,frog\n52889,truck\n52890,truck\n52891,airplane\n52892,frog\n52893,automobile\n52894,frog\n52895,cat\n52896,horse\n52897,ship\n52898,ship\n52899,truck\n52900,truck\n52901,airplane\n52902,frog\n52903,truck\n52904,horse\n52905,airplane\n52906,cat\n52907,cat\n52908,truck\n52909,bird\n52910,bird\n52911,horse\n52912,deer\n52913,ship\n52914,frog\n52915,automobile\n52916,horse\n52917,cat\n52918,dog\n52919,bird\n52920,frog\n52921,dog\n52922,truck\n52923,cat\n52924,cat\n52925,horse\n52926,cat\n52927,ship\n52928,deer\n52929,deer\n52930,dog\n52931,bird\n52932,truck\n52933,bird\n52934,deer\n52935,airplane\n52936,ship\n52937,dog\n52938,horse\n52939,horse\n52940,horse\n52941,cat\n52942,cat\n52943,deer\n52944,truck\n52945,horse\n52946,deer\n52947,dog\n52948,cat\n52949,truck\n52950,deer\n52951,ship\n52952,horse\n52953,dog\n52954,dog\n52955,dog\n52956,ship\n52957,automobile\n52958,horse\n52959,frog\n52960,deer\n52961,ship\n52962,dog\n52963,frog\n52964,dog\n52965,automobile\n52966,frog\n52967,horse\n52968,horse\n52969,ship\n52970,frog\n52971,cat\n52972,cat\n52973,dog\n52974,truck\n52975,truck\n52976,cat\n52977,dog\n52978,deer\n52979,bird\n52980,frog\n52981,automobile\n52982,cat\n52983,deer\n52984,deer\n52985,horse\n52986,dog\n52987,deer\n52988,bird\n52989,cat\n52990,deer\n52991,horse\n52992,horse\n52993,deer\n52994,airplane\n52995,airplane\n52996,cat\n52997,cat\n52998,horse\n52999,automobile\n53000,cat\n53001,automobile\n53002,frog\n53003,bird\n53004,ship\n53005,cat\n53006,deer\n53007,horse\n53008,cat\n53009,frog\n53010,horse\n53011,frog\n53012,frog\n53013,cat\n53014,truck\n53015,dog\n53016,deer\n53017,airplane\n53018,horse\n53019,cat\n53020,automobile\n53021,deer\n53022,cat\n53023,cat\n53024,airplane\n53025,horse\n53026,truck\n53027,dog\n53028,dog\n53029,airplane\n53030,frog\n53031,truck\n53032,horse\n53033,deer\n53034,truck\n53035,dog\n53036,automobile\n53037,frog\n53038,airplane\n53039,truck\n53040,deer\n53041,automobile\n53042,dog\n53043,airplane\n53044,cat\n53045,deer\n53046,airplane\n53047,frog\n53048,cat\n53049,horse\n53050,truck\n53051,ship\n53052,truck\n53053,airplane\n53054,cat\n53055,deer\n53056,dog\n53057,truck\n53058,airplane\n53059,ship\n53060,ship\n53061,frog\n53062,automobile\n53063,cat\n53064,ship\n53065,deer\n53066,deer\n53067,deer\n53068,deer\n53069,deer\n53070,horse\n53071,bird\n53072,ship\n53073,cat\n53074,dog\n53075,cat\n53076,horse\n53077,cat\n53078,bird\n53079,frog\n53080,bird\n53081,horse\n53082,deer\n53083,frog\n53084,automobile\n53085,horse\n53086,automobile\n53087,deer\n53088,bird\n53089,bird\n53090,cat\n53091,dog\n53092,cat\n53093,airplane\n53094,airplane\n53095,dog\n53096,truck\n53097,cat\n53098,dog\n53099,bird\n53100,bird\n53101,dog\n53102,truck\n53103,truck\n53104,bird\n53105,frog\n53106,frog\n53107,airplane\n53108,cat\n53109,truck\n53110,truck\n53111,frog\n53112,airplane\n53113,ship\n53114,airplane\n53115,bird\n53116,cat\n53117,cat\n53118,bird\n53119,cat\n53120,frog\n53121,automobile\n53122,airplane\n53123,cat\n53124,cat\n53125,ship\n53126,bird\n53127,cat\n53128,frog\n53129,truck\n53130,frog\n53131,bird\n53132,deer\n53133,frog\n53134,automobile\n53135,cat\n53136,airplane\n53137,truck\n53138,frog\n53139,dog\n53140,frog\n53141,cat\n53142,automobile\n53143,frog\n53144,airplane\n53145,horse\n53146,deer\n53147,truck\n53148,automobile\n53149,deer\n53150,ship\n53151,deer\n53152,frog\n53153,horse\n53154,bird\n53155,cat\n53156,cat\n53157,deer\n53158,deer\n53159,frog\n53160,dog\n53161,ship\n53162,horse\n53163,bird\n53164,ship\n53165,automobile\n53166,deer\n53167,truck\n53168,ship\n53169,deer\n53170,ship\n53171,frog\n53172,bird\n53173,automobile\n53174,deer\n53175,cat\n53176,dog\n53177,truck\n53178,horse\n53179,frog\n53180,ship\n53181,deer\n53182,cat\n53183,horse\n53184,ship\n53185,frog\n53186,ship\n53187,deer\n53188,horse\n53189,automobile\n53190,horse\n53191,cat\n53192,horse\n53193,frog\n53194,airplane\n53195,dog\n53196,cat\n53197,deer\n53198,cat\n53199,truck\n53200,horse\n53201,horse\n53202,frog\n53203,airplane\n53204,frog\n53205,deer\n53206,frog\n53207,deer\n53208,frog\n53209,deer\n53210,dog\n53211,dog\n53212,cat\n53213,truck\n53214,airplane\n53215,ship\n53216,deer\n53217,cat\n53218,dog\n53219,bird\n53220,automobile\n53221,cat\n53222,airplane\n53223,horse\n53224,automobile\n53225,frog\n53226,cat\n53227,dog\n53228,deer\n53229,deer\n53230,cat\n53231,bird\n53232,automobile\n53233,cat\n53234,dog\n53235,frog\n53236,truck\n53237,deer\n53238,automobile\n53239,deer\n53240,ship\n53241,horse\n53242,horse\n53243,deer\n53244,cat\n53245,automobile\n53246,horse\n53247,deer\n53248,deer\n53249,cat\n53250,dog\n53251,frog\n53252,cat\n53253,horse\n53254,dog\n53255,horse\n53256,cat\n53257,automobile\n53258,truck\n53259,cat\n53260,bird\n53261,deer\n53262,ship\n53263,truck\n53264,bird\n53265,horse\n53266,airplane\n53267,airplane\n53268,bird\n53269,airplane\n53270,horse\n53271,horse\n53272,airplane\n53273,dog\n53274,automobile\n53275,deer\n53276,automobile\n53277,cat\n53278,dog\n53279,ship\n53280,cat\n53281,horse\n53282,horse\n53283,frog\n53284,dog\n53285,ship\n53286,cat\n53287,bird\n53288,horse\n53289,ship\n53290,dog\n53291,cat\n53292,dog\n53293,cat\n53294,dog\n53295,cat\n53296,bird\n53297,horse\n53298,cat\n53299,deer\n53300,airplane\n53301,truck\n53302,ship\n53303,truck\n53304,truck\n53305,deer\n53306,truck\n53307,deer\n53308,automobile\n53309,cat\n53310,bird\n53311,automobile\n53312,truck\n53313,automobile\n53314,ship\n53315,automobile\n53316,ship\n53317,deer\n53318,automobile\n53319,frog\n53320,frog\n53321,automobile\n53322,dog\n53323,automobile\n53324,cat\n53325,deer\n53326,automobile\n53327,truck\n53328,ship\n53329,cat\n53330,dog\n53331,automobile\n53332,cat\n53333,cat\n53334,cat\n53335,bird\n53336,truck\n53337,deer\n53338,automobile\n53339,cat\n53340,frog\n53341,frog\n53342,airplane\n53343,frog\n53344,cat\n53345,truck\n53346,truck\n53347,horse\n53348,deer\n53349,truck\n53350,horse\n53351,truck\n53352,bird\n53353,ship\n53354,horse\n53355,airplane\n53356,cat\n53357,truck\n53358,automobile\n53359,automobile\n53360,dog\n53361,bird\n53362,cat\n53363,frog\n53364,bird\n53365,cat\n53366,ship\n53367,frog\n53368,cat\n53369,airplane\n53370,ship\n53371,automobile\n53372,airplane\n53373,truck\n53374,cat\n53375,horse\n53376,horse\n53377,truck\n53378,deer\n53379,ship\n53380,frog\n53381,bird\n53382,horse\n53383,cat\n53384,horse\n53385,deer\n53386,automobile\n53387,horse\n53388,horse\n53389,horse\n53390,automobile\n53391,cat\n53392,ship\n53393,dog\n53394,horse\n53395,frog\n53396,cat\n53397,ship\n53398,cat\n53399,cat\n53400,cat\n53401,automobile\n53402,automobile\n53403,frog\n53404,bird\n53405,automobile\n53406,truck\n53407,automobile\n53408,cat\n53409,truck\n53410,deer\n53411,airplane\n53412,dog\n53413,horse\n53414,frog\n53415,bird\n53416,ship\n53417,dog\n53418,deer\n53419,automobile\n53420,cat\n53421,truck\n53422,truck\n53423,dog\n53424,deer\n53425,cat\n53426,automobile\n53427,automobile\n53428,airplane\n53429,frog\n53430,truck\n53431,deer\n53432,bird\n53433,deer\n53434,deer\n53435,truck\n53436,ship\n53437,frog\n53438,frog\n53439,airplane\n53440,dog\n53441,bird\n53442,bird\n53443,truck\n53444,truck\n53445,truck\n53446,ship\n53447,airplane\n53448,truck\n53449,deer\n53450,ship\n53451,automobile\n53452,ship\n53453,horse\n53454,cat\n53455,ship\n53456,frog\n53457,airplane\n53458,deer\n53459,bird\n53460,frog\n53461,ship\n53462,cat\n53463,cat\n53464,bird\n53465,deer\n53466,automobile\n53467,bird\n53468,automobile\n53469,deer\n53470,deer\n53471,truck\n53472,deer\n53473,airplane\n53474,truck\n53475,deer\n53476,frog\n53477,airplane\n53478,cat\n53479,frog\n53480,deer\n53481,cat\n53482,truck\n53483,bird\n53484,truck\n53485,bird\n53486,horse\n53487,airplane\n53488,truck\n53489,airplane\n53490,horse\n53491,airplane\n53492,frog\n53493,bird\n53494,frog\n53495,cat\n53496,bird\n53497,horse\n53498,deer\n53499,deer\n53500,deer\n53501,frog\n53502,deer\n53503,truck\n53504,airplane\n53505,airplane\n53506,truck\n53507,cat\n53508,bird\n53509,horse\n53510,deer\n53511,ship\n53512,horse\n53513,bird\n53514,cat\n53515,automobile\n53516,ship\n53517,deer\n53518,deer\n53519,horse\n53520,horse\n53521,frog\n53522,deer\n53523,airplane\n53524,frog\n53525,cat\n53526,deer\n53527,horse\n53528,ship\n53529,frog\n53530,dog\n53531,dog\n53532,bird\n53533,bird\n53534,frog\n53535,truck\n53536,frog\n53537,automobile\n53538,dog\n53539,frog\n53540,deer\n53541,ship\n53542,bird\n53543,deer\n53544,automobile\n53545,ship\n53546,truck\n53547,truck\n53548,truck\n53549,frog\n53550,horse\n53551,horse\n53552,frog\n53553,dog\n53554,cat\n53555,frog\n53556,ship\n53557,deer\n53558,truck\n53559,dog\n53560,frog\n53561,truck\n53562,frog\n53563,bird\n53564,bird\n53565,bird\n53566,cat\n53567,cat\n53568,deer\n53569,dog\n53570,cat\n53571,automobile\n53572,dog\n53573,truck\n53574,deer\n53575,truck\n53576,cat\n53577,frog\n53578,deer\n53579,horse\n53580,dog\n53581,frog\n53582,bird\n53583,ship\n53584,cat\n53585,deer\n53586,truck\n53587,deer\n53588,bird\n53589,truck\n53590,horse\n53591,horse\n53592,ship\n53593,horse\n53594,ship\n53595,deer\n53596,dog\n53597,automobile\n53598,bird\n53599,bird\n53600,truck\n53601,truck\n53602,airplane\n53603,truck\n53604,truck\n53605,cat\n53606,automobile\n53607,ship\n53608,truck\n53609,bird\n53610,frog\n53611,bird\n53612,dog\n53613,frog\n53614,frog\n53615,cat\n53616,horse\n53617,airplane\n53618,frog\n53619,bird\n53620,horse\n53621,frog\n53622,truck\n53623,bird\n53624,dog\n53625,airplane\n53626,bird\n53627,ship\n53628,automobile\n53629,deer\n53630,cat\n53631,bird\n53632,horse\n53633,bird\n53634,horse\n53635,airplane\n53636,automobile\n53637,deer\n53638,deer\n53639,dog\n53640,cat\n53641,dog\n53642,ship\n53643,ship\n53644,cat\n53645,frog\n53646,horse\n53647,cat\n53648,horse\n53649,ship\n53650,dog\n53651,bird\n53652,automobile\n53653,truck\n53654,horse\n53655,airplane\n53656,horse\n53657,deer\n53658,bird\n53659,dog\n53660,truck\n53661,bird\n53662,cat\n53663,automobile\n53664,ship\n53665,deer\n53666,horse\n53667,ship\n53668,ship\n53669,dog\n53670,ship\n53671,dog\n53672,deer\n53673,truck\n53674,ship\n53675,deer\n53676,bird\n53677,frog\n53678,bird\n53679,bird\n53680,cat\n53681,airplane\n53682,ship\n53683,frog\n53684,horse\n53685,frog\n53686,ship\n53687,automobile\n53688,bird\n53689,bird\n53690,truck\n53691,cat\n53692,frog\n53693,horse\n53694,cat\n53695,deer\n53696,frog\n53697,frog\n53698,dog\n53699,dog\n53700,bird\n53701,bird\n53702,dog\n53703,frog\n53704,airplane\n53705,ship\n53706,automobile\n53707,deer\n53708,bird\n53709,airplane\n53710,frog\n53711,frog\n53712,frog\n53713,deer\n53714,frog\n53715,airplane\n53716,cat\n53717,deer\n53718,cat\n53719,bird\n53720,bird\n53721,cat\n53722,frog\n53723,truck\n53724,horse\n53725,dog\n53726,horse\n53727,truck\n53728,ship\n53729,cat\n53730,frog\n53731,horse\n53732,dog\n53733,automobile\n53734,ship\n53735,deer\n53736,truck\n53737,airplane\n53738,airplane\n53739,horse\n53740,bird\n53741,automobile\n53742,bird\n53743,truck\n53744,airplane\n53745,automobile\n53746,bird\n53747,cat\n53748,cat\n53749,bird\n53750,horse\n53751,frog\n53752,airplane\n53753,cat\n53754,ship\n53755,ship\n53756,deer\n53757,automobile\n53758,deer\n53759,deer\n53760,dog\n53761,ship\n53762,dog\n53763,frog\n53764,deer\n53765,deer\n53766,horse\n53767,cat\n53768,automobile\n53769,deer\n53770,dog\n53771,frog\n53772,deer\n53773,frog\n53774,ship\n53775,ship\n53776,dog\n53777,truck\n53778,automobile\n53779,bird\n53780,truck\n53781,truck\n53782,horse\n53783,deer\n53784,automobile\n53785,dog\n53786,cat\n53787,airplane\n53788,cat\n53789,dog\n53790,ship\n53791,dog\n53792,ship\n53793,bird\n53794,horse\n53795,airplane\n53796,frog\n53797,automobile\n53798,dog\n53799,deer\n53800,bird\n53801,frog\n53802,dog\n53803,dog\n53804,truck\n53805,frog\n53806,truck\n53807,truck\n53808,frog\n53809,frog\n53810,truck\n53811,truck\n53812,bird\n53813,frog\n53814,horse\n53815,dog\n53816,airplane\n53817,airplane\n53818,bird\n53819,bird\n53820,deer\n53821,truck\n53822,cat\n53823,cat\n53824,cat\n53825,cat\n53826,dog\n53827,frog\n53828,cat\n53829,airplane\n53830,frog\n53831,automobile\n53832,airplane\n53833,dog\n53834,dog\n53835,ship\n53836,truck\n53837,deer\n53838,deer\n53839,frog\n53840,ship\n53841,horse\n53842,bird\n53843,ship\n53844,ship\n53845,ship\n53846,deer\n53847,horse\n53848,deer\n53849,cat\n53850,frog\n53851,dog\n53852,deer\n53853,deer\n53854,deer\n53855,ship\n53856,ship\n53857,cat\n53858,dog\n53859,horse\n53860,horse\n53861,airplane\n53862,truck\n53863,deer\n53864,frog\n53865,deer\n53866,automobile\n53867,bird\n53868,deer\n53869,automobile\n53870,cat\n53871,frog\n53872,automobile\n53873,horse\n53874,frog\n53875,truck\n53876,frog\n53877,automobile\n53878,ship\n53879,bird\n53880,airplane\n53881,automobile\n53882,truck\n53883,frog\n53884,cat\n53885,bird\n53886,deer\n53887,frog\n53888,automobile\n53889,dog\n53890,dog\n53891,frog\n53892,airplane\n53893,truck\n53894,dog\n53895,deer\n53896,truck\n53897,frog\n53898,airplane\n53899,bird\n53900,dog\n53901,ship\n53902,deer\n53903,frog\n53904,ship\n53905,bird\n53906,bird\n53907,horse\n53908,frog\n53909,automobile\n53910,dog\n53911,bird\n53912,frog\n53913,deer\n53914,frog\n53915,dog\n53916,bird\n53917,ship\n53918,frog\n53919,bird\n53920,bird\n53921,horse\n53922,dog\n53923,deer\n53924,cat\n53925,truck\n53926,dog\n53927,airplane\n53928,airplane\n53929,deer\n53930,deer\n53931,truck\n53932,dog\n53933,deer\n53934,cat\n53935,deer\n53936,deer\n53937,dog\n53938,deer\n53939,ship\n53940,horse\n53941,bird\n53942,airplane\n53943,truck\n53944,cat\n53945,bird\n53946,truck\n53947,ship\n53948,frog\n53949,deer\n53950,horse\n53951,cat\n53952,bird\n53953,airplane\n53954,dog\n53955,frog\n53956,deer\n53957,deer\n53958,cat\n53959,deer\n53960,dog\n53961,automobile\n53962,cat\n53963,bird\n53964,dog\n53965,deer\n53966,airplane\n53967,horse\n53968,airplane\n53969,ship\n53970,truck\n53971,airplane\n53972,horse\n53973,frog\n53974,deer\n53975,dog\n53976,cat\n53977,cat\n53978,ship\n53979,automobile\n53980,airplane\n53981,airplane\n53982,frog\n53983,ship\n53984,deer\n53985,horse\n53986,deer\n53987,airplane\n53988,dog\n53989,cat\n53990,dog\n53991,dog\n53992,deer\n53993,horse\n53994,airplane\n53995,bird\n53996,truck\n53997,ship\n53998,truck\n53999,deer\n54000,frog\n54001,bird\n54002,cat\n54003,truck\n54004,deer\n54005,dog\n54006,horse\n54007,ship\n54008,deer\n54009,deer\n54010,airplane\n54011,frog\n54012,cat\n54013,bird\n54014,dog\n54015,deer\n54016,cat\n54017,automobile\n54018,truck\n54019,dog\n54020,truck\n54021,dog\n54022,deer\n54023,frog\n54024,cat\n54025,automobile\n54026,deer\n54027,automobile\n54028,airplane\n54029,truck\n54030,cat\n54031,airplane\n54032,airplane\n54033,automobile\n54034,dog\n54035,frog\n54036,ship\n54037,horse\n54038,airplane\n54039,cat\n54040,cat\n54041,ship\n54042,cat\n54043,ship\n54044,truck\n54045,horse\n54046,frog\n54047,bird\n54048,frog\n54049,horse\n54050,airplane\n54051,truck\n54052,truck\n54053,deer\n54054,truck\n54055,horse\n54056,frog\n54057,dog\n54058,cat\n54059,bird\n54060,dog\n54061,cat\n54062,cat\n54063,airplane\n54064,cat\n54065,horse\n54066,cat\n54067,ship\n54068,deer\n54069,automobile\n54070,ship\n54071,truck\n54072,truck\n54073,ship\n54074,truck\n54075,horse\n54076,ship\n54077,ship\n54078,cat\n54079,frog\n54080,bird\n54081,horse\n54082,cat\n54083,deer\n54084,deer\n54085,dog\n54086,deer\n54087,truck\n54088,bird\n54089,frog\n54090,cat\n54091,deer\n54092,horse\n54093,airplane\n54094,dog\n54095,ship\n54096,truck\n54097,automobile\n54098,frog\n54099,bird\n54100,dog\n54101,bird\n54102,frog\n54103,airplane\n54104,frog\n54105,cat\n54106,frog\n54107,deer\n54108,truck\n54109,dog\n54110,cat\n54111,ship\n54112,deer\n54113,frog\n54114,cat\n54115,ship\n54116,automobile\n54117,ship\n54118,deer\n54119,cat\n54120,ship\n54121,automobile\n54122,frog\n54123,cat\n54124,horse\n54125,horse\n54126,automobile\n54127,automobile\n54128,truck\n54129,ship\n54130,dog\n54131,horse\n54132,dog\n54133,deer\n54134,cat\n54135,frog\n54136,dog\n54137,airplane\n54138,bird\n54139,dog\n54140,deer\n54141,automobile\n54142,truck\n54143,cat\n54144,deer\n54145,frog\n54146,dog\n54147,airplane\n54148,deer\n54149,dog\n54150,frog\n54151,frog\n54152,horse\n54153,frog\n54154,cat\n54155,horse\n54156,dog\n54157,horse\n54158,ship\n54159,cat\n54160,frog\n54161,dog\n54162,bird\n54163,horse\n54164,deer\n54165,bird\n54166,frog\n54167,automobile\n54168,ship\n54169,truck\n54170,airplane\n54171,deer\n54172,frog\n54173,frog\n54174,deer\n54175,airplane\n54176,cat\n54177,frog\n54178,airplane\n54179,ship\n54180,cat\n54181,truck\n54182,deer\n54183,bird\n54184,truck\n54185,bird\n54186,horse\n54187,ship\n54188,deer\n54189,frog\n54190,frog\n54191,dog\n54192,deer\n54193,deer\n54194,frog\n54195,deer\n54196,cat\n54197,truck\n54198,automobile\n54199,airplane\n54200,dog\n54201,truck\n54202,ship\n54203,deer\n54204,ship\n54205,airplane\n54206,automobile\n54207,cat\n54208,frog\n54209,automobile\n54210,cat\n54211,bird\n54212,horse\n54213,cat\n54214,frog\n54215,horse\n54216,frog\n54217,truck\n54218,deer\n54219,cat\n54220,airplane\n54221,frog\n54222,bird\n54223,airplane\n54224,frog\n54225,dog\n54226,dog\n54227,horse\n54228,deer\n54229,cat\n54230,airplane\n54231,automobile\n54232,cat\n54233,airplane\n54234,bird\n54235,cat\n54236,deer\n54237,truck\n54238,automobile\n54239,frog\n54240,cat\n54241,deer\n54242,dog\n54243,deer\n54244,ship\n54245,bird\n54246,frog\n54247,deer\n54248,frog\n54249,truck\n54250,airplane\n54251,frog\n54252,cat\n54253,truck\n54254,horse\n54255,dog\n54256,automobile\n54257,bird\n54258,airplane\n54259,cat\n54260,frog\n54261,bird\n54262,truck\n54263,frog\n54264,dog\n54265,truck\n54266,bird\n54267,bird\n54268,deer\n54269,deer\n54270,ship\n54271,horse\n54272,deer\n54273,ship\n54274,frog\n54275,horse\n54276,frog\n54277,automobile\n54278,airplane\n54279,automobile\n54280,deer\n54281,bird\n54282,dog\n54283,ship\n54284,ship\n54285,horse\n54286,dog\n54287,bird\n54288,deer\n54289,frog\n54290,ship\n54291,cat\n54292,truck\n54293,ship\n54294,frog\n54295,airplane\n54296,horse\n54297,deer\n54298,dog\n54299,cat\n54300,ship\n54301,truck\n54302,cat\n54303,ship\n54304,cat\n54305,dog\n54306,cat\n54307,cat\n54308,automobile\n54309,frog\n54310,dog\n54311,bird\n54312,truck\n54313,deer\n54314,airplane\n54315,ship\n54316,deer\n54317,airplane\n54318,cat\n54319,truck\n54320,frog\n54321,frog\n54322,bird\n54323,airplane\n54324,horse\n54325,deer\n54326,frog\n54327,truck\n54328,airplane\n54329,automobile\n54330,deer\n54331,cat\n54332,frog\n54333,bird\n54334,horse\n54335,truck\n54336,ship\n54337,dog\n54338,ship\n54339,cat\n54340,bird\n54341,automobile\n54342,horse\n54343,horse\n54344,airplane\n54345,cat\n54346,cat\n54347,deer\n54348,bird\n54349,airplane\n54350,cat\n54351,frog\n54352,horse\n54353,bird\n54354,automobile\n54355,frog\n54356,truck\n54357,dog\n54358,horse\n54359,bird\n54360,airplane\n54361,ship\n54362,bird\n54363,cat\n54364,ship\n54365,dog\n54366,cat\n54367,dog\n54368,airplane\n54369,bird\n54370,truck\n54371,airplane\n54372,dog\n54373,bird\n54374,frog\n54375,cat\n54376,deer\n54377,cat\n54378,deer\n54379,airplane\n54380,ship\n54381,cat\n54382,truck\n54383,airplane\n54384,truck\n54385,deer\n54386,deer\n54387,ship\n54388,bird\n54389,automobile\n54390,deer\n54391,bird\n54392,cat\n54393,horse\n54394,cat\n54395,bird\n54396,ship\n54397,airplane\n54398,bird\n54399,deer\n54400,cat\n54401,cat\n54402,airplane\n54403,airplane\n54404,deer\n54405,bird\n54406,frog\n54407,dog\n54408,automobile\n54409,automobile\n54410,cat\n54411,cat\n54412,ship\n54413,ship\n54414,deer\n54415,ship\n54416,frog\n54417,airplane\n54418,cat\n54419,truck\n54420,horse\n54421,automobile\n54422,ship\n54423,frog\n54424,ship\n54425,deer\n54426,cat\n54427,automobile\n54428,frog\n54429,frog\n54430,automobile\n54431,truck\n54432,cat\n54433,airplane\n54434,automobile\n54435,frog\n54436,horse\n54437,automobile\n54438,bird\n54439,deer\n54440,automobile\n54441,cat\n54442,ship\n54443,frog\n54444,airplane\n54445,dog\n54446,deer\n54447,bird\n54448,ship\n54449,cat\n54450,deer\n54451,cat\n54452,horse\n54453,frog\n54454,deer\n54455,frog\n54456,airplane\n54457,truck\n54458,frog\n54459,frog\n54460,frog\n54461,ship\n54462,ship\n54463,dog\n54464,cat\n54465,airplane\n54466,cat\n54467,ship\n54468,airplane\n54469,dog\n54470,horse\n54471,frog\n54472,airplane\n54473,truck\n54474,airplane\n54475,frog\n54476,cat\n54477,airplane\n54478,truck\n54479,cat\n54480,deer\n54481,automobile\n54482,automobile\n54483,deer\n54484,deer\n54485,horse\n54486,ship\n54487,bird\n54488,horse\n54489,horse\n54490,airplane\n54491,bird\n54492,horse\n54493,automobile\n54494,cat\n54495,horse\n54496,bird\n54497,cat\n54498,automobile\n54499,truck\n54500,deer\n54501,frog\n54502,automobile\n54503,ship\n54504,horse\n54505,horse\n54506,frog\n54507,dog\n54508,automobile\n54509,automobile\n54510,ship\n54511,automobile\n54512,automobile\n54513,truck\n54514,horse\n54515,deer\n54516,ship\n54517,cat\n54518,dog\n54519,frog\n54520,automobile\n54521,automobile\n54522,automobile\n54523,dog\n54524,bird\n54525,dog\n54526,ship\n54527,airplane\n54528,frog\n54529,truck\n54530,cat\n54531,frog\n54532,cat\n54533,dog\n54534,airplane\n54535,dog\n54536,bird\n54537,dog\n54538,frog\n54539,deer\n54540,bird\n54541,bird\n54542,bird\n54543,airplane\n54544,dog\n54545,frog\n54546,horse\n54547,truck\n54548,cat\n54549,dog\n54550,dog\n54551,truck\n54552,deer\n54553,bird\n54554,deer\n54555,airplane\n54556,dog\n54557,frog\n54558,horse\n54559,truck\n54560,dog\n54561,cat\n54562,automobile\n54563,airplane\n54564,horse\n54565,airplane\n54566,ship\n54567,horse\n54568,frog\n54569,ship\n54570,automobile\n54571,cat\n54572,deer\n54573,dog\n54574,frog\n54575,dog\n54576,ship\n54577,dog\n54578,deer\n54579,frog\n54580,frog\n54581,automobile\n54582,truck\n54583,frog\n54584,frog\n54585,deer\n54586,cat\n54587,automobile\n54588,dog\n54589,truck\n54590,dog\n54591,dog\n54592,dog\n54593,dog\n54594,truck\n54595,bird\n54596,cat\n54597,automobile\n54598,ship\n54599,horse\n54600,truck\n54601,truck\n54602,dog\n54603,bird\n54604,dog\n54605,bird\n54606,cat\n54607,frog\n54608,deer\n54609,airplane\n54610,airplane\n54611,dog\n54612,automobile\n54613,dog\n54614,automobile\n54615,automobile\n54616,dog\n54617,frog\n54618,frog\n54619,deer\n54620,airplane\n54621,ship\n54622,cat\n54623,airplane\n54624,ship\n54625,truck\n54626,bird\n54627,cat\n54628,cat\n54629,cat\n54630,deer\n54631,deer\n54632,airplane\n54633,frog\n54634,deer\n54635,horse\n54636,deer\n54637,horse\n54638,bird\n54639,bird\n54640,deer\n54641,truck\n54642,airplane\n54643,dog\n54644,frog\n54645,deer\n54646,ship\n54647,deer\n54648,cat\n54649,ship\n54650,bird\n54651,automobile\n54652,frog\n54653,deer\n54654,deer\n54655,dog\n54656,frog\n54657,deer\n54658,horse\n54659,deer\n54660,truck\n54661,deer\n54662,frog\n54663,truck\n54664,automobile\n54665,bird\n54666,frog\n54667,frog\n54668,frog\n54669,truck\n54670,dog\n54671,truck\n54672,cat\n54673,automobile\n54674,dog\n54675,automobile\n54676,horse\n54677,cat\n54678,truck\n54679,horse\n54680,frog\n54681,dog\n54682,airplane\n54683,bird\n54684,truck\n54685,truck\n54686,deer\n54687,truck\n54688,bird\n54689,ship\n54690,ship\n54691,dog\n54692,airplane\n54693,ship\n54694,horse\n54695,frog\n54696,horse\n54697,truck\n54698,cat\n54699,truck\n54700,horse\n54701,frog\n54702,horse\n54703,cat\n54704,frog\n54705,dog\n54706,automobile\n54707,truck\n54708,deer\n54709,deer\n54710,ship\n54711,automobile\n54712,cat\n54713,horse\n54714,dog\n54715,bird\n54716,bird\n54717,cat\n54718,automobile\n54719,deer\n54720,ship\n54721,dog\n54722,deer\n54723,frog\n54724,dog\n54725,cat\n54726,airplane\n54727,bird\n54728,horse\n54729,horse\n54730,dog\n54731,dog\n54732,horse\n54733,automobile\n54734,deer\n54735,truck\n54736,deer\n54737,frog\n54738,deer\n54739,bird\n54740,airplane\n54741,cat\n54742,dog\n54743,ship\n54744,frog\n54745,bird\n54746,dog\n54747,horse\n54748,deer\n54749,frog\n54750,deer\n54751,ship\n54752,cat\n54753,automobile\n54754,airplane\n54755,frog\n54756,deer\n54757,truck\n54758,deer\n54759,ship\n54760,dog\n54761,deer\n54762,dog\n54763,dog\n54764,cat\n54765,horse\n54766,truck\n54767,frog\n54768,airplane\n54769,bird\n54770,automobile\n54771,dog\n54772,truck\n54773,truck\n54774,dog\n54775,frog\n54776,frog\n54777,horse\n54778,cat\n54779,truck\n54780,dog\n54781,deer\n54782,frog\n54783,deer\n54784,dog\n54785,automobile\n54786,truck\n54787,frog\n54788,cat\n54789,frog\n54790,horse\n54791,cat\n54792,frog\n54793,airplane\n54794,deer\n54795,ship\n54796,truck\n54797,automobile\n54798,horse\n54799,truck\n54800,deer\n54801,frog\n54802,dog\n54803,dog\n54804,cat\n54805,deer\n54806,frog\n54807,automobile\n54808,deer\n54809,horse\n54810,cat\n54811,ship\n54812,deer\n54813,airplane\n54814,bird\n54815,cat\n54816,automobile\n54817,horse\n54818,cat\n54819,automobile\n54820,deer\n54821,cat\n54822,ship\n54823,truck\n54824,bird\n54825,airplane\n54826,deer\n54827,ship\n54828,dog\n54829,bird\n54830,bird\n54831,horse\n54832,frog\n54833,horse\n54834,automobile\n54835,cat\n54836,ship\n54837,truck\n54838,deer\n54839,truck\n54840,horse\n54841,automobile\n54842,deer\n54843,horse\n54844,cat\n54845,automobile\n54846,cat\n54847,cat\n54848,cat\n54849,airplane\n54850,ship\n54851,horse\n54852,frog\n54853,bird\n54854,frog\n54855,ship\n54856,automobile\n54857,truck\n54858,dog\n54859,horse\n54860,frog\n54861,horse\n54862,cat\n54863,truck\n54864,frog\n54865,frog\n54866,cat\n54867,truck\n54868,deer\n54869,frog\n54870,truck\n54871,automobile\n54872,airplane\n54873,automobile\n54874,bird\n54875,cat\n54876,truck\n54877,cat\n54878,dog\n54879,deer\n54880,deer\n54881,truck\n54882,automobile\n54883,ship\n54884,deer\n54885,frog\n54886,dog\n54887,automobile\n54888,horse\n54889,frog\n54890,truck\n54891,horse\n54892,bird\n54893,horse\n54894,horse\n54895,ship\n54896,cat\n54897,dog\n54898,horse\n54899,frog\n54900,ship\n54901,ship\n54902,deer\n54903,horse\n54904,horse\n54905,frog\n54906,dog\n54907,cat\n54908,deer\n54909,airplane\n54910,cat\n54911,automobile\n54912,frog\n54913,horse\n54914,ship\n54915,deer\n54916,automobile\n54917,airplane\n54918,horse\n54919,bird\n54920,automobile\n54921,dog\n54922,automobile\n54923,cat\n54924,dog\n54925,bird\n54926,cat\n54927,airplane\n54928,truck\n54929,horse\n54930,frog\n54931,deer\n54932,cat\n54933,dog\n54934,deer\n54935,frog\n54936,automobile\n54937,automobile\n54938,horse\n54939,automobile\n54940,frog\n54941,automobile\n54942,dog\n54943,frog\n54944,truck\n54945,frog\n54946,automobile\n54947,cat\n54948,airplane\n54949,dog\n54950,frog\n54951,deer\n54952,dog\n54953,airplane\n54954,bird\n54955,bird\n54956,deer\n54957,cat\n54958,frog\n54959,bird\n54960,ship\n54961,frog\n54962,cat\n54963,truck\n54964,deer\n54965,airplane\n54966,deer\n54967,cat\n54968,airplane\n54969,frog\n54970,bird\n54971,deer\n54972,frog\n54973,dog\n54974,ship\n54975,horse\n54976,horse\n54977,deer\n54978,dog\n54979,airplane\n54980,deer\n54981,ship\n54982,dog\n54983,frog\n54984,airplane\n54985,cat\n54986,ship\n54987,deer\n54988,bird\n54989,automobile\n54990,frog\n54991,dog\n54992,horse\n54993,horse\n54994,truck\n54995,bird\n54996,cat\n54997,truck\n54998,deer\n54999,airplane\n55000,cat\n55001,horse\n55002,bird\n55003,automobile\n55004,cat\n55005,deer\n55006,dog\n55007,bird\n55008,cat\n55009,dog\n55010,deer\n55011,ship\n55012,cat\n55013,automobile\n55014,dog\n55015,truck\n55016,automobile\n55017,cat\n55018,deer\n55019,ship\n55020,cat\n55021,frog\n55022,cat\n55023,bird\n55024,frog\n55025,automobile\n55026,horse\n55027,bird\n55028,bird\n55029,cat\n55030,dog\n55031,deer\n55032,airplane\n55033,cat\n55034,bird\n55035,cat\n55036,bird\n55037,bird\n55038,frog\n55039,dog\n55040,deer\n55041,bird\n55042,horse\n55043,cat\n55044,cat\n55045,automobile\n55046,cat\n55047,deer\n55048,dog\n55049,horse\n55050,truck\n55051,dog\n55052,cat\n55053,cat\n55054,horse\n55055,horse\n55056,frog\n55057,cat\n55058,ship\n55059,cat\n55060,truck\n55061,airplane\n55062,deer\n55063,ship\n55064,truck\n55065,horse\n55066,truck\n55067,cat\n55068,deer\n55069,cat\n55070,bird\n55071,deer\n55072,truck\n55073,frog\n55074,frog\n55075,ship\n55076,bird\n55077,dog\n55078,horse\n55079,bird\n55080,truck\n55081,dog\n55082,cat\n55083,truck\n55084,ship\n55085,ship\n55086,airplane\n55087,dog\n55088,horse\n55089,cat\n55090,dog\n55091,truck\n55092,dog\n55093,frog\n55094,horse\n55095,ship\n55096,truck\n55097,truck\n55098,automobile\n55099,deer\n55100,automobile\n55101,dog\n55102,bird\n55103,cat\n55104,dog\n55105,cat\n55106,deer\n55107,dog\n55108,deer\n55109,dog\n55110,airplane\n55111,cat\n55112,cat\n55113,truck\n55114,truck\n55115,cat\n55116,automobile\n55117,automobile\n55118,automobile\n55119,bird\n55120,dog\n55121,cat\n55122,dog\n55123,deer\n55124,dog\n55125,truck\n55126,airplane\n55127,ship\n55128,bird\n55129,frog\n55130,bird\n55131,truck\n55132,cat\n55133,bird\n55134,frog\n55135,truck\n55136,automobile\n55137,cat\n55138,frog\n55139,airplane\n55140,frog\n55141,ship\n55142,cat\n55143,frog\n55144,automobile\n55145,deer\n55146,deer\n55147,deer\n55148,horse\n55149,cat\n55150,ship\n55151,airplane\n55152,ship\n55153,cat\n55154,horse\n55155,deer\n55156,bird\n55157,deer\n55158,dog\n55159,cat\n55160,cat\n55161,deer\n55162,airplane\n55163,truck\n55164,automobile\n55165,truck\n55166,automobile\n55167,deer\n55168,frog\n55169,cat\n55170,dog\n55171,ship\n55172,airplane\n55173,truck\n55174,cat\n55175,deer\n55176,frog\n55177,cat\n55178,frog\n55179,airplane\n55180,cat\n55181,frog\n55182,ship\n55183,deer\n55184,cat\n55185,cat\n55186,horse\n55187,frog\n55188,automobile\n55189,frog\n55190,truck\n55191,dog\n55192,airplane\n55193,airplane\n55194,truck\n55195,automobile\n55196,deer\n55197,dog\n55198,truck\n55199,bird\n55200,deer\n55201,cat\n55202,deer\n55203,cat\n55204,horse\n55205,horse\n55206,ship\n55207,cat\n55208,deer\n55209,bird\n55210,truck\n55211,horse\n55212,dog\n55213,airplane\n55214,airplane\n55215,bird\n55216,dog\n55217,dog\n55218,airplane\n55219,horse\n55220,bird\n55221,frog\n55222,dog\n55223,horse\n55224,bird\n55225,deer\n55226,frog\n55227,truck\n55228,truck\n55229,frog\n55230,cat\n55231,airplane\n55232,automobile\n55233,ship\n55234,frog\n55235,airplane\n55236,dog\n55237,bird\n55238,deer\n55239,bird\n55240,automobile\n55241,dog\n55242,airplane\n55243,airplane\n55244,bird\n55245,ship\n55246,horse\n55247,airplane\n55248,cat\n55249,frog\n55250,airplane\n55251,horse\n55252,cat\n55253,automobile\n55254,deer\n55255,automobile\n55256,bird\n55257,bird\n55258,bird\n55259,dog\n55260,frog\n55261,ship\n55262,deer\n55263,deer\n55264,deer\n55265,deer\n55266,horse\n55267,cat\n55268,airplane\n55269,ship\n55270,frog\n55271,truck\n55272,bird\n55273,dog\n55274,ship\n55275,cat\n55276,frog\n55277,cat\n55278,deer\n55279,dog\n55280,truck\n55281,bird\n55282,deer\n55283,bird\n55284,horse\n55285,deer\n55286,truck\n55287,dog\n55288,horse\n55289,ship\n55290,deer\n55291,dog\n55292,horse\n55293,automobile\n55294,ship\n55295,bird\n55296,airplane\n55297,ship\n55298,bird\n55299,dog\n55300,dog\n55301,bird\n55302,truck\n55303,airplane\n55304,cat\n55305,cat\n55306,cat\n55307,bird\n55308,truck\n55309,truck\n55310,automobile\n55311,bird\n55312,horse\n55313,ship\n55314,ship\n55315,airplane\n55316,frog\n55317,deer\n55318,frog\n55319,cat\n55320,horse\n55321,horse\n55322,horse\n55323,automobile\n55324,cat\n55325,ship\n55326,truck\n55327,automobile\n55328,deer\n55329,deer\n55330,bird\n55331,bird\n55332,dog\n55333,airplane\n55334,cat\n55335,bird\n55336,deer\n55337,automobile\n55338,ship\n55339,automobile\n55340,horse\n55341,bird\n55342,cat\n55343,automobile\n55344,ship\n55345,horse\n55346,airplane\n55347,deer\n55348,automobile\n55349,airplane\n55350,ship\n55351,horse\n55352,automobile\n55353,dog\n55354,deer\n55355,cat\n55356,ship\n55357,truck\n55358,horse\n55359,deer\n55360,bird\n55361,ship\n55362,frog\n55363,dog\n55364,ship\n55365,frog\n55366,cat\n55367,truck\n55368,deer\n55369,truck\n55370,automobile\n55371,automobile\n55372,truck\n55373,cat\n55374,frog\n55375,frog\n55376,automobile\n55377,automobile\n55378,ship\n55379,cat\n55380,cat\n55381,horse\n55382,horse\n55383,truck\n55384,frog\n55385,dog\n55386,dog\n55387,deer\n55388,cat\n55389,dog\n55390,deer\n55391,deer\n55392,airplane\n55393,dog\n55394,dog\n55395,frog\n55396,automobile\n55397,cat\n55398,truck\n55399,deer\n55400,frog\n55401,cat\n55402,deer\n55403,automobile\n55404,dog\n55405,truck\n55406,truck\n55407,horse\n55408,frog\n55409,deer\n55410,deer\n55411,cat\n55412,frog\n55413,ship\n55414,cat\n55415,horse\n55416,horse\n55417,automobile\n55418,deer\n55419,bird\n55420,ship\n55421,truck\n55422,truck\n55423,horse\n55424,bird\n55425,frog\n55426,deer\n55427,airplane\n55428,cat\n55429,deer\n55430,cat\n55431,bird\n55432,horse\n55433,deer\n55434,dog\n55435,truck\n55436,airplane\n55437,ship\n55438,truck\n55439,automobile\n55440,deer\n55441,dog\n55442,dog\n55443,ship\n55444,dog\n55445,frog\n55446,dog\n55447,cat\n55448,frog\n55449,horse\n55450,frog\n55451,automobile\n55452,deer\n55453,cat\n55454,deer\n55455,horse\n55456,ship\n55457,airplane\n55458,cat\n55459,frog\n55460,deer\n55461,truck\n55462,airplane\n55463,truck\n55464,automobile\n55465,horse\n55466,dog\n55467,deer\n55468,deer\n55469,horse\n55470,cat\n55471,ship\n55472,dog\n55473,deer\n55474,ship\n55475,automobile\n55476,ship\n55477,automobile\n55478,bird\n55479,cat\n55480,horse\n55481,truck\n55482,dog\n55483,truck\n55484,deer\n55485,automobile\n55486,airplane\n55487,cat\n55488,automobile\n55489,cat\n55490,frog\n55491,horse\n55492,truck\n55493,cat\n55494,ship\n55495,frog\n55496,deer\n55497,bird\n55498,cat\n55499,truck\n55500,truck\n55501,automobile\n55502,dog\n55503,dog\n55504,dog\n55505,truck\n55506,deer\n55507,cat\n55508,horse\n55509,bird\n55510,ship\n55511,horse\n55512,airplane\n55513,cat\n55514,deer\n55515,automobile\n55516,deer\n55517,frog\n55518,frog\n55519,ship\n55520,dog\n55521,deer\n55522,frog\n55523,bird\n55524,bird\n55525,frog\n55526,dog\n55527,automobile\n55528,bird\n55529,airplane\n55530,cat\n55531,frog\n55532,deer\n55533,cat\n55534,cat\n55535,cat\n55536,horse\n55537,airplane\n55538,cat\n55539,ship\n55540,frog\n55541,horse\n55542,frog\n55543,bird\n55544,airplane\n55545,bird\n55546,dog\n55547,horse\n55548,bird\n55549,cat\n55550,cat\n55551,frog\n55552,horse\n55553,deer\n55554,deer\n55555,deer\n55556,bird\n55557,cat\n55558,dog\n55559,truck\n55560,cat\n55561,bird\n55562,cat\n55563,automobile\n55564,deer\n55565,automobile\n55566,airplane\n55567,cat\n55568,ship\n55569,dog\n55570,automobile\n55571,truck\n55572,horse\n55573,airplane\n55574,ship\n55575,dog\n55576,cat\n55577,bird\n55578,ship\n55579,airplane\n55580,bird\n55581,horse\n55582,truck\n55583,frog\n55584,automobile\n55585,cat\n55586,frog\n55587,ship\n55588,automobile\n55589,cat\n55590,cat\n55591,truck\n55592,cat\n55593,cat\n55594,airplane\n55595,automobile\n55596,deer\n55597,frog\n55598,automobile\n55599,frog\n55600,frog\n55601,horse\n55602,horse\n55603,frog\n55604,ship\n55605,cat\n55606,deer\n55607,horse\n55608,dog\n55609,cat\n55610,frog\n55611,bird\n55612,cat\n55613,frog\n55614,frog\n55615,dog\n55616,automobile\n55617,truck\n55618,deer\n55619,automobile\n55620,truck\n55621,airplane\n55622,horse\n55623,frog\n55624,dog\n55625,cat\n55626,frog\n55627,airplane\n55628,cat\n55629,cat\n55630,cat\n55631,airplane\n55632,truck\n55633,automobile\n55634,frog\n55635,bird\n55636,ship\n55637,frog\n55638,bird\n55639,airplane\n55640,truck\n55641,truck\n55642,ship\n55643,horse\n55644,airplane\n55645,automobile\n55646,frog\n55647,deer\n55648,deer\n55649,ship\n55650,deer\n55651,deer\n55652,cat\n55653,deer\n55654,automobile\n55655,truck\n55656,horse\n55657,horse\n55658,dog\n55659,frog\n55660,deer\n55661,airplane\n55662,bird\n55663,cat\n55664,frog\n55665,ship\n55666,dog\n55667,dog\n55668,ship\n55669,dog\n55670,frog\n55671,horse\n55672,frog\n55673,deer\n55674,dog\n55675,automobile\n55676,ship\n55677,frog\n55678,truck\n55679,truck\n55680,truck\n55681,cat\n55682,deer\n55683,cat\n55684,deer\n55685,truck\n55686,frog\n55687,deer\n55688,cat\n55689,automobile\n55690,frog\n55691,automobile\n55692,cat\n55693,frog\n55694,automobile\n55695,cat\n55696,automobile\n55697,airplane\n55698,deer\n55699,dog\n55700,dog\n55701,airplane\n55702,truck\n55703,dog\n55704,horse\n55705,frog\n55706,cat\n55707,deer\n55708,deer\n55709,deer\n55710,frog\n55711,airplane\n55712,bird\n55713,automobile\n55714,automobile\n55715,frog\n55716,bird\n55717,bird\n55718,airplane\n55719,bird\n55720,automobile\n55721,frog\n55722,truck\n55723,dog\n55724,deer\n55725,dog\n55726,frog\n55727,deer\n55728,cat\n55729,horse\n55730,frog\n55731,dog\n55732,cat\n55733,frog\n55734,airplane\n55735,deer\n55736,dog\n55737,cat\n55738,cat\n55739,automobile\n55740,horse\n55741,truck\n55742,dog\n55743,horse\n55744,ship\n55745,ship\n55746,frog\n55747,deer\n55748,bird\n55749,deer\n55750,ship\n55751,cat\n55752,dog\n55753,deer\n55754,bird\n55755,bird\n55756,deer\n55757,automobile\n55758,horse\n55759,cat\n55760,truck\n55761,frog\n55762,bird\n55763,ship\n55764,cat\n55765,cat\n55766,airplane\n55767,deer\n55768,airplane\n55769,ship\n55770,frog\n55771,cat\n55772,bird\n55773,cat\n55774,frog\n55775,bird\n55776,dog\n55777,ship\n55778,ship\n55779,ship\n55780,cat\n55781,bird\n55782,ship\n55783,horse\n55784,deer\n55785,dog\n55786,frog\n55787,frog\n55788,airplane\n55789,bird\n55790,deer\n55791,ship\n55792,ship\n55793,truck\n55794,deer\n55795,cat\n55796,truck\n55797,cat\n55798,frog\n55799,deer\n55800,deer\n55801,deer\n55802,bird\n55803,automobile\n55804,cat\n55805,truck\n55806,horse\n55807,airplane\n55808,horse\n55809,truck\n55810,deer\n55811,ship\n55812,deer\n55813,cat\n55814,frog\n55815,dog\n55816,cat\n55817,frog\n55818,cat\n55819,frog\n55820,horse\n55821,truck\n55822,ship\n55823,bird\n55824,airplane\n55825,dog\n55826,ship\n55827,cat\n55828,cat\n55829,ship\n55830,dog\n55831,deer\n55832,airplane\n55833,horse\n55834,dog\n55835,ship\n55836,airplane\n55837,airplane\n55838,deer\n55839,bird\n55840,airplane\n55841,frog\n55842,bird\n55843,horse\n55844,bird\n55845,frog\n55846,bird\n55847,horse\n55848,cat\n55849,ship\n55850,automobile\n55851,bird\n55852,bird\n55853,deer\n55854,dog\n55855,airplane\n55856,airplane\n55857,frog\n55858,truck\n55859,automobile\n55860,airplane\n55861,frog\n55862,deer\n55863,cat\n55864,frog\n55865,truck\n55866,dog\n55867,airplane\n55868,airplane\n55869,bird\n55870,horse\n55871,frog\n55872,deer\n55873,automobile\n55874,cat\n55875,deer\n55876,dog\n55877,truck\n55878,airplane\n55879,bird\n55880,truck\n55881,deer\n55882,frog\n55883,ship\n55884,ship\n55885,horse\n55886,deer\n55887,frog\n55888,horse\n55889,frog\n55890,horse\n55891,truck\n55892,automobile\n55893,bird\n55894,automobile\n55895,deer\n55896,deer\n55897,airplane\n55898,bird\n55899,frog\n55900,bird\n55901,frog\n55902,deer\n55903,deer\n55904,truck\n55905,deer\n55906,deer\n55907,bird\n55908,deer\n55909,airplane\n55910,cat\n55911,ship\n55912,frog\n55913,airplane\n55914,automobile\n55915,frog\n55916,cat\n55917,deer\n55918,truck\n55919,dog\n55920,frog\n55921,deer\n55922,cat\n55923,dog\n55924,dog\n55925,automobile\n55926,horse\n55927,frog\n55928,airplane\n55929,frog\n55930,automobile\n55931,automobile\n55932,truck\n55933,cat\n55934,cat\n55935,bird\n55936,truck\n55937,ship\n55938,cat\n55939,airplane\n55940,horse\n55941,airplane\n55942,frog\n55943,cat\n55944,ship\n55945,cat\n55946,frog\n55947,deer\n55948,automobile\n55949,truck\n55950,automobile\n55951,ship\n55952,truck\n55953,cat\n55954,cat\n55955,ship\n55956,bird\n55957,airplane\n55958,cat\n55959,airplane\n55960,deer\n55961,truck\n55962,horse\n55963,dog\n55964,truck\n55965,ship\n55966,cat\n55967,airplane\n55968,horse\n55969,deer\n55970,deer\n55971,deer\n55972,truck\n55973,truck\n55974,frog\n55975,truck\n55976,airplane\n55977,horse\n55978,airplane\n55979,deer\n55980,cat\n55981,airplane\n55982,cat\n55983,cat\n55984,ship\n55985,dog\n55986,cat\n55987,deer\n55988,deer\n55989,airplane\n55990,airplane\n55991,cat\n55992,frog\n55993,bird\n55994,horse\n55995,cat\n55996,automobile\n55997,bird\n55998,horse\n55999,deer\n56000,horse\n56001,horse\n56002,airplane\n56003,airplane\n56004,frog\n56005,horse\n56006,deer\n56007,cat\n56008,horse\n56009,ship\n56010,automobile\n56011,frog\n56012,frog\n56013,ship\n56014,automobile\n56015,automobile\n56016,dog\n56017,frog\n56018,frog\n56019,deer\n56020,truck\n56021,automobile\n56022,cat\n56023,dog\n56024,truck\n56025,horse\n56026,deer\n56027,deer\n56028,ship\n56029,airplane\n56030,bird\n56031,frog\n56032,automobile\n56033,truck\n56034,horse\n56035,frog\n56036,bird\n56037,cat\n56038,bird\n56039,airplane\n56040,deer\n56041,frog\n56042,bird\n56043,cat\n56044,horse\n56045,automobile\n56046,cat\n56047,truck\n56048,ship\n56049,automobile\n56050,truck\n56051,cat\n56052,cat\n56053,deer\n56054,horse\n56055,deer\n56056,deer\n56057,cat\n56058,dog\n56059,bird\n56060,dog\n56061,ship\n56062,horse\n56063,airplane\n56064,truck\n56065,truck\n56066,truck\n56067,ship\n56068,frog\n56069,ship\n56070,frog\n56071,dog\n56072,automobile\n56073,frog\n56074,frog\n56075,truck\n56076,dog\n56077,horse\n56078,frog\n56079,dog\n56080,automobile\n56081,frog\n56082,bird\n56083,truck\n56084,truck\n56085,deer\n56086,truck\n56087,ship\n56088,dog\n56089,ship\n56090,cat\n56091,horse\n56092,automobile\n56093,deer\n56094,horse\n56095,bird\n56096,horse\n56097,horse\n56098,airplane\n56099,airplane\n56100,bird\n56101,frog\n56102,truck\n56103,airplane\n56104,horse\n56105,truck\n56106,ship\n56107,deer\n56108,truck\n56109,airplane\n56110,truck\n56111,ship\n56112,horse\n56113,automobile\n56114,dog\n56115,frog\n56116,frog\n56117,airplane\n56118,automobile\n56119,truck\n56120,deer\n56121,ship\n56122,dog\n56123,deer\n56124,bird\n56125,deer\n56126,dog\n56127,cat\n56128,truck\n56129,deer\n56130,ship\n56131,dog\n56132,horse\n56133,ship\n56134,airplane\n56135,frog\n56136,airplane\n56137,horse\n56138,truck\n56139,cat\n56140,automobile\n56141,dog\n56142,deer\n56143,bird\n56144,deer\n56145,deer\n56146,horse\n56147,horse\n56148,cat\n56149,cat\n56150,dog\n56151,bird\n56152,dog\n56153,frog\n56154,airplane\n56155,cat\n56156,deer\n56157,deer\n56158,automobile\n56159,bird\n56160,frog\n56161,dog\n56162,horse\n56163,bird\n56164,truck\n56165,airplane\n56166,cat\n56167,ship\n56168,dog\n56169,airplane\n56170,cat\n56171,cat\n56172,frog\n56173,cat\n56174,cat\n56175,dog\n56176,bird\n56177,ship\n56178,bird\n56179,deer\n56180,frog\n56181,deer\n56182,horse\n56183,ship\n56184,airplane\n56185,truck\n56186,truck\n56187,ship\n56188,ship\n56189,dog\n56190,deer\n56191,dog\n56192,horse\n56193,deer\n56194,frog\n56195,cat\n56196,frog\n56197,dog\n56198,horse\n56199,cat\n56200,bird\n56201,cat\n56202,horse\n56203,deer\n56204,cat\n56205,truck\n56206,dog\n56207,truck\n56208,frog\n56209,frog\n56210,bird\n56211,deer\n56212,cat\n56213,bird\n56214,airplane\n56215,truck\n56216,airplane\n56217,automobile\n56218,truck\n56219,dog\n56220,cat\n56221,bird\n56222,horse\n56223,airplane\n56224,deer\n56225,automobile\n56226,bird\n56227,horse\n56228,cat\n56229,automobile\n56230,cat\n56231,frog\n56232,frog\n56233,ship\n56234,horse\n56235,horse\n56236,deer\n56237,truck\n56238,deer\n56239,dog\n56240,truck\n56241,ship\n56242,frog\n56243,truck\n56244,cat\n56245,automobile\n56246,cat\n56247,horse\n56248,airplane\n56249,frog\n56250,dog\n56251,horse\n56252,deer\n56253,deer\n56254,bird\n56255,bird\n56256,truck\n56257,deer\n56258,frog\n56259,horse\n56260,automobile\n56261,cat\n56262,deer\n56263,automobile\n56264,ship\n56265,frog\n56266,ship\n56267,dog\n56268,frog\n56269,frog\n56270,deer\n56271,horse\n56272,dog\n56273,bird\n56274,deer\n56275,dog\n56276,ship\n56277,cat\n56278,deer\n56279,automobile\n56280,dog\n56281,frog\n56282,bird\n56283,deer\n56284,ship\n56285,frog\n56286,ship\n56287,ship\n56288,deer\n56289,ship\n56290,cat\n56291,truck\n56292,deer\n56293,automobile\n56294,truck\n56295,airplane\n56296,airplane\n56297,ship\n56298,frog\n56299,deer\n56300,dog\n56301,cat\n56302,bird\n56303,truck\n56304,deer\n56305,dog\n56306,frog\n56307,frog\n56308,automobile\n56309,bird\n56310,dog\n56311,bird\n56312,deer\n56313,dog\n56314,deer\n56315,cat\n56316,automobile\n56317,frog\n56318,frog\n56319,frog\n56320,dog\n56321,frog\n56322,bird\n56323,dog\n56324,truck\n56325,deer\n56326,cat\n56327,bird\n56328,truck\n56329,deer\n56330,dog\n56331,frog\n56332,frog\n56333,deer\n56334,cat\n56335,deer\n56336,bird\n56337,dog\n56338,truck\n56339,ship\n56340,truck\n56341,automobile\n56342,frog\n56343,deer\n56344,bird\n56345,horse\n56346,cat\n56347,automobile\n56348,frog\n56349,bird\n56350,truck\n56351,deer\n56352,cat\n56353,horse\n56354,frog\n56355,deer\n56356,bird\n56357,airplane\n56358,automobile\n56359,dog\n56360,bird\n56361,airplane\n56362,automobile\n56363,cat\n56364,automobile\n56365,horse\n56366,bird\n56367,airplane\n56368,truck\n56369,frog\n56370,deer\n56371,bird\n56372,cat\n56373,deer\n56374,cat\n56375,horse\n56376,horse\n56377,truck\n56378,deer\n56379,deer\n56380,dog\n56381,dog\n56382,cat\n56383,horse\n56384,frog\n56385,frog\n56386,ship\n56387,bird\n56388,truck\n56389,horse\n56390,cat\n56391,bird\n56392,truck\n56393,automobile\n56394,airplane\n56395,horse\n56396,bird\n56397,deer\n56398,cat\n56399,truck\n56400,dog\n56401,truck\n56402,airplane\n56403,truck\n56404,ship\n56405,automobile\n56406,airplane\n56407,cat\n56408,horse\n56409,deer\n56410,horse\n56411,deer\n56412,cat\n56413,cat\n56414,cat\n56415,frog\n56416,deer\n56417,bird\n56418,horse\n56419,ship\n56420,automobile\n56421,cat\n56422,cat\n56423,automobile\n56424,dog\n56425,bird\n56426,bird\n56427,frog\n56428,horse\n56429,bird\n56430,cat\n56431,frog\n56432,bird\n56433,deer\n56434,dog\n56435,dog\n56436,cat\n56437,cat\n56438,frog\n56439,dog\n56440,truck\n56441,frog\n56442,dog\n56443,airplane\n56444,bird\n56445,frog\n56446,deer\n56447,horse\n56448,airplane\n56449,dog\n56450,truck\n56451,deer\n56452,deer\n56453,deer\n56454,deer\n56455,ship\n56456,dog\n56457,deer\n56458,cat\n56459,deer\n56460,automobile\n56461,horse\n56462,deer\n56463,automobile\n56464,bird\n56465,deer\n56466,ship\n56467,frog\n56468,automobile\n56469,automobile\n56470,deer\n56471,cat\n56472,horse\n56473,cat\n56474,frog\n56475,deer\n56476,frog\n56477,horse\n56478,horse\n56479,horse\n56480,dog\n56481,dog\n56482,airplane\n56483,frog\n56484,truck\n56485,dog\n56486,dog\n56487,horse\n56488,automobile\n56489,automobile\n56490,deer\n56491,frog\n56492,horse\n56493,airplane\n56494,bird\n56495,dog\n56496,bird\n56497,horse\n56498,ship\n56499,truck\n56500,ship\n56501,cat\n56502,automobile\n56503,cat\n56504,deer\n56505,truck\n56506,deer\n56507,airplane\n56508,ship\n56509,dog\n56510,deer\n56511,cat\n56512,dog\n56513,deer\n56514,truck\n56515,frog\n56516,cat\n56517,bird\n56518,deer\n56519,deer\n56520,frog\n56521,dog\n56522,truck\n56523,bird\n56524,deer\n56525,deer\n56526,bird\n56527,ship\n56528,dog\n56529,automobile\n56530,frog\n56531,automobile\n56532,horse\n56533,deer\n56534,bird\n56535,frog\n56536,frog\n56537,deer\n56538,dog\n56539,truck\n56540,cat\n56541,dog\n56542,deer\n56543,frog\n56544,cat\n56545,horse\n56546,truck\n56547,horse\n56548,ship\n56549,truck\n56550,frog\n56551,deer\n56552,automobile\n56553,ship\n56554,frog\n56555,horse\n56556,cat\n56557,cat\n56558,truck\n56559,airplane\n56560,cat\n56561,horse\n56562,ship\n56563,frog\n56564,airplane\n56565,ship\n56566,deer\n56567,dog\n56568,automobile\n56569,dog\n56570,frog\n56571,deer\n56572,automobile\n56573,airplane\n56574,bird\n56575,deer\n56576,deer\n56577,deer\n56578,bird\n56579,ship\n56580,automobile\n56581,airplane\n56582,cat\n56583,deer\n56584,horse\n56585,airplane\n56586,deer\n56587,airplane\n56588,ship\n56589,horse\n56590,frog\n56591,horse\n56592,frog\n56593,airplane\n56594,bird\n56595,dog\n56596,horse\n56597,frog\n56598,frog\n56599,truck\n56600,cat\n56601,truck\n56602,cat\n56603,deer\n56604,truck\n56605,deer\n56606,horse\n56607,ship\n56608,airplane\n56609,dog\n56610,deer\n56611,truck\n56612,bird\n56613,horse\n56614,cat\n56615,deer\n56616,horse\n56617,cat\n56618,deer\n56619,bird\n56620,horse\n56621,frog\n56622,automobile\n56623,bird\n56624,deer\n56625,cat\n56626,truck\n56627,horse\n56628,ship\n56629,airplane\n56630,horse\n56631,cat\n56632,deer\n56633,airplane\n56634,bird\n56635,frog\n56636,frog\n56637,cat\n56638,horse\n56639,deer\n56640,deer\n56641,frog\n56642,ship\n56643,deer\n56644,cat\n56645,cat\n56646,horse\n56647,dog\n56648,automobile\n56649,ship\n56650,airplane\n56651,deer\n56652,cat\n56653,deer\n56654,automobile\n56655,dog\n56656,ship\n56657,frog\n56658,dog\n56659,airplane\n56660,cat\n56661,airplane\n56662,cat\n56663,bird\n56664,deer\n56665,frog\n56666,horse\n56667,airplane\n56668,deer\n56669,cat\n56670,ship\n56671,ship\n56672,deer\n56673,horse\n56674,airplane\n56675,horse\n56676,truck\n56677,dog\n56678,automobile\n56679,truck\n56680,airplane\n56681,airplane\n56682,truck\n56683,frog\n56684,automobile\n56685,ship\n56686,horse\n56687,cat\n56688,frog\n56689,frog\n56690,bird\n56691,airplane\n56692,ship\n56693,ship\n56694,ship\n56695,dog\n56696,dog\n56697,horse\n56698,airplane\n56699,deer\n56700,automobile\n56701,bird\n56702,bird\n56703,horse\n56704,frog\n56705,cat\n56706,bird\n56707,automobile\n56708,ship\n56709,dog\n56710,automobile\n56711,airplane\n56712,automobile\n56713,dog\n56714,ship\n56715,horse\n56716,bird\n56717,airplane\n56718,automobile\n56719,dog\n56720,airplane\n56721,automobile\n56722,dog\n56723,deer\n56724,cat\n56725,frog\n56726,frog\n56727,airplane\n56728,cat\n56729,deer\n56730,dog\n56731,deer\n56732,bird\n56733,bird\n56734,frog\n56735,horse\n56736,ship\n56737,horse\n56738,airplane\n56739,horse\n56740,airplane\n56741,deer\n56742,horse\n56743,dog\n56744,airplane\n56745,ship\n56746,dog\n56747,automobile\n56748,bird\n56749,truck\n56750,airplane\n56751,bird\n56752,ship\n56753,horse\n56754,airplane\n56755,airplane\n56756,dog\n56757,ship\n56758,ship\n56759,cat\n56760,ship\n56761,horse\n56762,truck\n56763,truck\n56764,automobile\n56765,automobile\n56766,truck\n56767,horse\n56768,frog\n56769,horse\n56770,automobile\n56771,cat\n56772,ship\n56773,truck\n56774,dog\n56775,airplane\n56776,deer\n56777,ship\n56778,ship\n56779,automobile\n56780,automobile\n56781,horse\n56782,cat\n56783,ship\n56784,automobile\n56785,bird\n56786,truck\n56787,dog\n56788,dog\n56789,bird\n56790,frog\n56791,frog\n56792,dog\n56793,cat\n56794,dog\n56795,frog\n56796,horse\n56797,bird\n56798,truck\n56799,truck\n56800,cat\n56801,deer\n56802,dog\n56803,frog\n56804,truck\n56805,deer\n56806,dog\n56807,ship\n56808,dog\n56809,ship\n56810,horse\n56811,truck\n56812,airplane\n56813,ship\n56814,automobile\n56815,cat\n56816,automobile\n56817,frog\n56818,bird\n56819,cat\n56820,airplane\n56821,truck\n56822,cat\n56823,cat\n56824,frog\n56825,deer\n56826,cat\n56827,deer\n56828,deer\n56829,frog\n56830,ship\n56831,automobile\n56832,cat\n56833,dog\n56834,deer\n56835,dog\n56836,airplane\n56837,cat\n56838,horse\n56839,dog\n56840,dog\n56841,ship\n56842,cat\n56843,horse\n56844,horse\n56845,horse\n56846,dog\n56847,dog\n56848,bird\n56849,frog\n56850,automobile\n56851,airplane\n56852,frog\n56853,ship\n56854,horse\n56855,airplane\n56856,dog\n56857,frog\n56858,cat\n56859,cat\n56860,dog\n56861,ship\n56862,deer\n56863,frog\n56864,horse\n56865,deer\n56866,ship\n56867,horse\n56868,automobile\n56869,cat\n56870,airplane\n56871,cat\n56872,truck\n56873,cat\n56874,cat\n56875,bird\n56876,bird\n56877,cat\n56878,deer\n56879,deer\n56880,frog\n56881,dog\n56882,bird\n56883,truck\n56884,frog\n56885,automobile\n56886,bird\n56887,deer\n56888,dog\n56889,deer\n56890,cat\n56891,deer\n56892,airplane\n56893,cat\n56894,horse\n56895,cat\n56896,horse\n56897,cat\n56898,airplane\n56899,horse\n56900,ship\n56901,ship\n56902,horse\n56903,automobile\n56904,ship\n56905,automobile\n56906,frog\n56907,airplane\n56908,dog\n56909,deer\n56910,frog\n56911,ship\n56912,deer\n56913,bird\n56914,dog\n56915,frog\n56916,deer\n56917,bird\n56918,bird\n56919,deer\n56920,cat\n56921,truck\n56922,bird\n56923,deer\n56924,bird\n56925,frog\n56926,cat\n56927,airplane\n56928,horse\n56929,automobile\n56930,cat\n56931,cat\n56932,automobile\n56933,bird\n56934,cat\n56935,deer\n56936,truck\n56937,frog\n56938,bird\n56939,frog\n56940,dog\n56941,dog\n56942,truck\n56943,cat\n56944,truck\n56945,deer\n56946,ship\n56947,truck\n56948,cat\n56949,ship\n56950,dog\n56951,dog\n56952,ship\n56953,dog\n56954,bird\n56955,horse\n56956,ship\n56957,frog\n56958,deer\n56959,deer\n56960,truck\n56961,ship\n56962,cat\n56963,bird\n56964,dog\n56965,truck\n56966,cat\n56967,horse\n56968,frog\n56969,cat\n56970,dog\n56971,frog\n56972,bird\n56973,ship\n56974,airplane\n56975,frog\n56976,truck\n56977,frog\n56978,cat\n56979,truck\n56980,bird\n56981,bird\n56982,ship\n56983,deer\n56984,truck\n56985,ship\n56986,automobile\n56987,truck\n56988,horse\n56989,truck\n56990,airplane\n56991,cat\n56992,ship\n56993,cat\n56994,cat\n56995,frog\n56996,truck\n56997,horse\n56998,automobile\n56999,airplane\n57000,truck\n57001,dog\n57002,truck\n57003,truck\n57004,automobile\n57005,dog\n57006,cat\n57007,bird\n57008,cat\n57009,frog\n57010,automobile\n57011,deer\n57012,truck\n57013,airplane\n57014,cat\n57015,deer\n57016,frog\n57017,deer\n57018,bird\n57019,horse\n57020,cat\n57021,deer\n57022,truck\n57023,automobile\n57024,horse\n57025,cat\n57026,horse\n57027,cat\n57028,truck\n57029,deer\n57030,deer\n57031,deer\n57032,bird\n57033,deer\n57034,ship\n57035,airplane\n57036,truck\n57037,truck\n57038,horse\n57039,cat\n57040,horse\n57041,deer\n57042,cat\n57043,deer\n57044,deer\n57045,truck\n57046,airplane\n57047,truck\n57048,bird\n57049,bird\n57050,truck\n57051,horse\n57052,cat\n57053,ship\n57054,frog\n57055,truck\n57056,bird\n57057,airplane\n57058,ship\n57059,horse\n57060,deer\n57061,dog\n57062,deer\n57063,frog\n57064,ship\n57065,deer\n57066,cat\n57067,dog\n57068,airplane\n57069,ship\n57070,airplane\n57071,automobile\n57072,dog\n57073,ship\n57074,bird\n57075,bird\n57076,dog\n57077,dog\n57078,horse\n57079,automobile\n57080,automobile\n57081,truck\n57082,automobile\n57083,cat\n57084,automobile\n57085,dog\n57086,horse\n57087,horse\n57088,ship\n57089,dog\n57090,truck\n57091,dog\n57092,frog\n57093,truck\n57094,automobile\n57095,ship\n57096,cat\n57097,frog\n57098,frog\n57099,ship\n57100,horse\n57101,deer\n57102,automobile\n57103,frog\n57104,airplane\n57105,bird\n57106,deer\n57107,truck\n57108,cat\n57109,bird\n57110,cat\n57111,frog\n57112,deer\n57113,cat\n57114,dog\n57115,bird\n57116,truck\n57117,deer\n57118,ship\n57119,bird\n57120,horse\n57121,deer\n57122,dog\n57123,frog\n57124,airplane\n57125,dog\n57126,dog\n57127,frog\n57128,truck\n57129,truck\n57130,dog\n57131,bird\n57132,bird\n57133,truck\n57134,cat\n57135,dog\n57136,ship\n57137,bird\n57138,dog\n57139,automobile\n57140,automobile\n57141,frog\n57142,automobile\n57143,horse\n57144,ship\n57145,airplane\n57146,frog\n57147,truck\n57148,airplane\n57149,truck\n57150,dog\n57151,frog\n57152,cat\n57153,frog\n57154,deer\n57155,airplane\n57156,dog\n57157,airplane\n57158,ship\n57159,truck\n57160,frog\n57161,dog\n57162,dog\n57163,airplane\n57164,bird\n57165,horse\n57166,frog\n57167,ship\n57168,cat\n57169,truck\n57170,deer\n57171,dog\n57172,horse\n57173,horse\n57174,dog\n57175,truck\n57176,airplane\n57177,bird\n57178,frog\n57179,automobile\n57180,deer\n57181,horse\n57182,truck\n57183,truck\n57184,truck\n57185,airplane\n57186,truck\n57187,bird\n57188,frog\n57189,deer\n57190,cat\n57191,frog\n57192,deer\n57193,horse\n57194,dog\n57195,frog\n57196,truck\n57197,airplane\n57198,frog\n57199,frog\n57200,ship\n57201,frog\n57202,automobile\n57203,frog\n57204,ship\n57205,truck\n57206,airplane\n57207,bird\n57208,airplane\n57209,cat\n57210,deer\n57211,frog\n57212,cat\n57213,deer\n57214,frog\n57215,dog\n57216,deer\n57217,horse\n57218,bird\n57219,airplane\n57220,cat\n57221,deer\n57222,deer\n57223,dog\n57224,cat\n57225,frog\n57226,truck\n57227,automobile\n57228,deer\n57229,ship\n57230,ship\n57231,automobile\n57232,bird\n57233,frog\n57234,deer\n57235,airplane\n57236,ship\n57237,truck\n57238,cat\n57239,truck\n57240,bird\n57241,frog\n57242,bird\n57243,deer\n57244,automobile\n57245,cat\n57246,truck\n57247,frog\n57248,truck\n57249,truck\n57250,deer\n57251,ship\n57252,frog\n57253,airplane\n57254,frog\n57255,cat\n57256,deer\n57257,deer\n57258,automobile\n57259,ship\n57260,cat\n57261,frog\n57262,ship\n57263,ship\n57264,frog\n57265,frog\n57266,airplane\n57267,truck\n57268,truck\n57269,ship\n57270,dog\n57271,cat\n57272,truck\n57273,dog\n57274,deer\n57275,cat\n57276,truck\n57277,frog\n57278,frog\n57279,frog\n57280,cat\n57281,horse\n57282,horse\n57283,dog\n57284,deer\n57285,dog\n57286,bird\n57287,deer\n57288,airplane\n57289,ship\n57290,bird\n57291,frog\n57292,horse\n57293,cat\n57294,truck\n57295,cat\n57296,cat\n57297,deer\n57298,frog\n57299,frog\n57300,truck\n57301,horse\n57302,bird\n57303,frog\n57304,deer\n57305,frog\n57306,horse\n57307,dog\n57308,airplane\n57309,dog\n57310,automobile\n57311,ship\n57312,frog\n57313,cat\n57314,dog\n57315,horse\n57316,deer\n57317,deer\n57318,automobile\n57319,ship\n57320,dog\n57321,deer\n57322,horse\n57323,automobile\n57324,deer\n57325,horse\n57326,ship\n57327,truck\n57328,airplane\n57329,truck\n57330,truck\n57331,deer\n57332,frog\n57333,cat\n57334,airplane\n57335,deer\n57336,automobile\n57337,horse\n57338,dog\n57339,cat\n57340,automobile\n57341,bird\n57342,bird\n57343,automobile\n57344,frog\n57345,airplane\n57346,horse\n57347,horse\n57348,airplane\n57349,frog\n57350,ship\n57351,airplane\n57352,bird\n57353,ship\n57354,deer\n57355,ship\n57356,ship\n57357,automobile\n57358,deer\n57359,frog\n57360,deer\n57361,cat\n57362,cat\n57363,dog\n57364,cat\n57365,ship\n57366,cat\n57367,cat\n57368,dog\n57369,airplane\n57370,cat\n57371,truck\n57372,frog\n57373,dog\n57374,deer\n57375,deer\n57376,deer\n57377,bird\n57378,cat\n57379,ship\n57380,cat\n57381,bird\n57382,bird\n57383,bird\n57384,automobile\n57385,cat\n57386,bird\n57387,horse\n57388,cat\n57389,truck\n57390,automobile\n57391,frog\n57392,ship\n57393,frog\n57394,bird\n57395,dog\n57396,cat\n57397,dog\n57398,truck\n57399,deer\n57400,deer\n57401,airplane\n57402,airplane\n57403,bird\n57404,bird\n57405,deer\n57406,truck\n57407,deer\n57408,bird\n57409,dog\n57410,frog\n57411,ship\n57412,frog\n57413,truck\n57414,frog\n57415,cat\n57416,truck\n57417,ship\n57418,cat\n57419,bird\n57420,frog\n57421,bird\n57422,bird\n57423,frog\n57424,bird\n57425,horse\n57426,deer\n57427,deer\n57428,cat\n57429,cat\n57430,frog\n57431,ship\n57432,horse\n57433,dog\n57434,deer\n57435,frog\n57436,deer\n57437,deer\n57438,deer\n57439,deer\n57440,frog\n57441,deer\n57442,cat\n57443,automobile\n57444,horse\n57445,truck\n57446,cat\n57447,bird\n57448,automobile\n57449,airplane\n57450,truck\n57451,ship\n57452,truck\n57453,dog\n57454,ship\n57455,truck\n57456,dog\n57457,dog\n57458,bird\n57459,ship\n57460,automobile\n57461,frog\n57462,airplane\n57463,airplane\n57464,horse\n57465,airplane\n57466,cat\n57467,frog\n57468,cat\n57469,deer\n57470,bird\n57471,ship\n57472,bird\n57473,cat\n57474,airplane\n57475,truck\n57476,cat\n57477,dog\n57478,frog\n57479,deer\n57480,ship\n57481,frog\n57482,bird\n57483,frog\n57484,horse\n57485,deer\n57486,deer\n57487,horse\n57488,dog\n57489,cat\n57490,horse\n57491,automobile\n57492,horse\n57493,horse\n57494,automobile\n57495,horse\n57496,automobile\n57497,truck\n57498,ship\n57499,automobile\n57500,frog\n57501,horse\n57502,ship\n57503,horse\n57504,horse\n57505,frog\n57506,automobile\n57507,dog\n57508,truck\n57509,horse\n57510,ship\n57511,automobile\n57512,automobile\n57513,horse\n57514,frog\n57515,deer\n57516,cat\n57517,ship\n57518,dog\n57519,deer\n57520,horse\n57521,bird\n57522,ship\n57523,cat\n57524,cat\n57525,deer\n57526,automobile\n57527,truck\n57528,dog\n57529,airplane\n57530,dog\n57531,frog\n57532,truck\n57533,cat\n57534,horse\n57535,cat\n57536,truck\n57537,bird\n57538,automobile\n57539,frog\n57540,deer\n57541,horse\n57542,ship\n57543,bird\n57544,deer\n57545,ship\n57546,automobile\n57547,deer\n57548,frog\n57549,dog\n57550,horse\n57551,horse\n57552,airplane\n57553,frog\n57554,frog\n57555,ship\n57556,horse\n57557,ship\n57558,airplane\n57559,airplane\n57560,dog\n57561,deer\n57562,cat\n57563,dog\n57564,truck\n57565,truck\n57566,airplane\n57567,truck\n57568,automobile\n57569,dog\n57570,bird\n57571,deer\n57572,cat\n57573,truck\n57574,cat\n57575,bird\n57576,bird\n57577,cat\n57578,bird\n57579,bird\n57580,dog\n57581,horse\n57582,truck\n57583,truck\n57584,truck\n57585,ship\n57586,deer\n57587,dog\n57588,truck\n57589,cat\n57590,truck\n57591,deer\n57592,cat\n57593,cat\n57594,ship\n57595,horse\n57596,cat\n57597,cat\n57598,truck\n57599,dog\n57600,frog\n57601,deer\n57602,ship\n57603,automobile\n57604,cat\n57605,truck\n57606,cat\n57607,deer\n57608,deer\n57609,frog\n57610,dog\n57611,horse\n57612,ship\n57613,airplane\n57614,frog\n57615,frog\n57616,frog\n57617,bird\n57618,ship\n57619,bird\n57620,horse\n57621,horse\n57622,frog\n57623,deer\n57624,airplane\n57625,truck\n57626,ship\n57627,deer\n57628,frog\n57629,cat\n57630,airplane\n57631,deer\n57632,ship\n57633,bird\n57634,cat\n57635,automobile\n57636,deer\n57637,automobile\n57638,dog\n57639,dog\n57640,deer\n57641,dog\n57642,bird\n57643,frog\n57644,frog\n57645,dog\n57646,airplane\n57647,cat\n57648,horse\n57649,bird\n57650,truck\n57651,horse\n57652,deer\n57653,airplane\n57654,deer\n57655,dog\n57656,deer\n57657,automobile\n57658,frog\n57659,truck\n57660,horse\n57661,deer\n57662,bird\n57663,bird\n57664,deer\n57665,cat\n57666,dog\n57667,truck\n57668,automobile\n57669,bird\n57670,cat\n57671,airplane\n57672,automobile\n57673,deer\n57674,truck\n57675,cat\n57676,deer\n57677,airplane\n57678,cat\n57679,frog\n57680,airplane\n57681,frog\n57682,bird\n57683,automobile\n57684,cat\n57685,airplane\n57686,truck\n57687,horse\n57688,frog\n57689,ship\n57690,automobile\n57691,airplane\n57692,deer\n57693,horse\n57694,dog\n57695,deer\n57696,dog\n57697,automobile\n57698,cat\n57699,frog\n57700,dog\n57701,cat\n57702,horse\n57703,automobile\n57704,cat\n57705,airplane\n57706,truck\n57707,truck\n57708,truck\n57709,airplane\n57710,dog\n57711,truck\n57712,deer\n57713,cat\n57714,dog\n57715,bird\n57716,bird\n57717,dog\n57718,deer\n57719,horse\n57720,truck\n57721,cat\n57722,cat\n57723,dog\n57724,automobile\n57725,truck\n57726,cat\n57727,automobile\n57728,cat\n57729,truck\n57730,deer\n57731,airplane\n57732,horse\n57733,deer\n57734,cat\n57735,cat\n57736,cat\n57737,ship\n57738,ship\n57739,airplane\n57740,bird\n57741,truck\n57742,airplane\n57743,deer\n57744,ship\n57745,cat\n57746,ship\n57747,dog\n57748,deer\n57749,automobile\n57750,horse\n57751,airplane\n57752,ship\n57753,ship\n57754,truck\n57755,dog\n57756,horse\n57757,deer\n57758,airplane\n57759,dog\n57760,frog\n57761,truck\n57762,frog\n57763,bird\n57764,ship\n57765,deer\n57766,airplane\n57767,frog\n57768,cat\n57769,cat\n57770,deer\n57771,frog\n57772,truck\n57773,airplane\n57774,automobile\n57775,truck\n57776,ship\n57777,deer\n57778,deer\n57779,cat\n57780,deer\n57781,dog\n57782,dog\n57783,bird\n57784,horse\n57785,cat\n57786,airplane\n57787,frog\n57788,dog\n57789,dog\n57790,ship\n57791,cat\n57792,horse\n57793,frog\n57794,cat\n57795,deer\n57796,airplane\n57797,cat\n57798,truck\n57799,dog\n57800,cat\n57801,cat\n57802,dog\n57803,airplane\n57804,truck\n57805,truck\n57806,frog\n57807,deer\n57808,airplane\n57809,horse\n57810,dog\n57811,cat\n57812,horse\n57813,automobile\n57814,deer\n57815,ship\n57816,ship\n57817,automobile\n57818,bird\n57819,frog\n57820,horse\n57821,ship\n57822,bird\n57823,automobile\n57824,truck\n57825,horse\n57826,bird\n57827,dog\n57828,cat\n57829,truck\n57830,automobile\n57831,airplane\n57832,horse\n57833,frog\n57834,deer\n57835,deer\n57836,horse\n57837,deer\n57838,truck\n57839,horse\n57840,frog\n57841,airplane\n57842,cat\n57843,horse\n57844,truck\n57845,horse\n57846,dog\n57847,frog\n57848,dog\n57849,bird\n57850,bird\n57851,truck\n57852,truck\n57853,dog\n57854,horse\n57855,ship\n57856,frog\n57857,automobile\n57858,horse\n57859,horse\n57860,frog\n57861,frog\n57862,horse\n57863,bird\n57864,cat\n57865,airplane\n57866,dog\n57867,automobile\n57868,ship\n57869,frog\n57870,bird\n57871,deer\n57872,horse\n57873,ship\n57874,deer\n57875,airplane\n57876,cat\n57877,dog\n57878,cat\n57879,horse\n57880,frog\n57881,airplane\n57882,horse\n57883,deer\n57884,frog\n57885,automobile\n57886,frog\n57887,cat\n57888,cat\n57889,dog\n57890,dog\n57891,cat\n57892,deer\n57893,deer\n57894,bird\n57895,ship\n57896,deer\n57897,bird\n57898,bird\n57899,airplane\n57900,horse\n57901,cat\n57902,airplane\n57903,frog\n57904,dog\n57905,deer\n57906,bird\n57907,bird\n57908,dog\n57909,frog\n57910,automobile\n57911,truck\n57912,horse\n57913,dog\n57914,cat\n57915,ship\n57916,truck\n57917,frog\n57918,frog\n57919,cat\n57920,automobile\n57921,airplane\n57922,horse\n57923,cat\n57924,ship\n57925,airplane\n57926,dog\n57927,dog\n57928,deer\n57929,bird\n57930,frog\n57931,cat\n57932,deer\n57933,dog\n57934,airplane\n57935,horse\n57936,cat\n57937,ship\n57938,automobile\n57939,bird\n57940,frog\n57941,frog\n57942,bird\n57943,truck\n57944,truck\n57945,airplane\n57946,frog\n57947,deer\n57948,frog\n57949,automobile\n57950,ship\n57951,ship\n57952,bird\n57953,airplane\n57954,bird\n57955,cat\n57956,cat\n57957,truck\n57958,truck\n57959,airplane\n57960,truck\n57961,horse\n57962,dog\n57963,automobile\n57964,airplane\n57965,dog\n57966,deer\n57967,airplane\n57968,frog\n57969,deer\n57970,bird\n57971,automobile\n57972,cat\n57973,deer\n57974,frog\n57975,horse\n57976,dog\n57977,airplane\n57978,deer\n57979,airplane\n57980,deer\n57981,dog\n57982,horse\n57983,deer\n57984,horse\n57985,dog\n57986,dog\n57987,truck\n57988,truck\n57989,truck\n57990,automobile\n57991,horse\n57992,ship\n57993,cat\n57994,bird\n57995,truck\n57996,deer\n57997,airplane\n57998,deer\n57999,deer\n58000,cat\n58001,dog\n58002,horse\n58003,dog\n58004,bird\n58005,truck\n58006,truck\n58007,dog\n58008,frog\n58009,horse\n58010,deer\n58011,deer\n58012,bird\n58013,ship\n58014,ship\n58015,frog\n58016,airplane\n58017,deer\n58018,truck\n58019,automobile\n58020,airplane\n58021,horse\n58022,airplane\n58023,airplane\n58024,cat\n58025,bird\n58026,ship\n58027,truck\n58028,dog\n58029,deer\n58030,deer\n58031,deer\n58032,frog\n58033,horse\n58034,automobile\n58035,frog\n58036,deer\n58037,dog\n58038,horse\n58039,truck\n58040,ship\n58041,truck\n58042,automobile\n58043,horse\n58044,truck\n58045,horse\n58046,bird\n58047,automobile\n58048,horse\n58049,bird\n58050,truck\n58051,truck\n58052,bird\n58053,horse\n58054,deer\n58055,automobile\n58056,horse\n58057,dog\n58058,horse\n58059,automobile\n58060,ship\n58061,cat\n58062,deer\n58063,truck\n58064,frog\n58065,bird\n58066,airplane\n58067,truck\n58068,horse\n58069,deer\n58070,ship\n58071,automobile\n58072,frog\n58073,dog\n58074,dog\n58075,ship\n58076,truck\n58077,cat\n58078,ship\n58079,horse\n58080,cat\n58081,dog\n58082,truck\n58083,frog\n58084,bird\n58085,truck\n58086,cat\n58087,dog\n58088,deer\n58089,horse\n58090,deer\n58091,deer\n58092,truck\n58093,truck\n58094,ship\n58095,ship\n58096,frog\n58097,bird\n58098,deer\n58099,frog\n58100,dog\n58101,airplane\n58102,truck\n58103,truck\n58104,cat\n58105,automobile\n58106,ship\n58107,deer\n58108,dog\n58109,ship\n58110,airplane\n58111,bird\n58112,frog\n58113,deer\n58114,horse\n58115,ship\n58116,frog\n58117,dog\n58118,deer\n58119,deer\n58120,truck\n58121,dog\n58122,horse\n58123,cat\n58124,frog\n58125,truck\n58126,dog\n58127,dog\n58128,deer\n58129,dog\n58130,dog\n58131,frog\n58132,automobile\n58133,deer\n58134,truck\n58135,airplane\n58136,ship\n58137,cat\n58138,frog\n58139,ship\n58140,dog\n58141,bird\n58142,bird\n58143,deer\n58144,cat\n58145,dog\n58146,frog\n58147,deer\n58148,frog\n58149,deer\n58150,deer\n58151,airplane\n58152,cat\n58153,frog\n58154,bird\n58155,deer\n58156,automobile\n58157,airplane\n58158,dog\n58159,automobile\n58160,dog\n58161,horse\n58162,deer\n58163,deer\n58164,ship\n58165,ship\n58166,deer\n58167,horse\n58168,frog\n58169,frog\n58170,automobile\n58171,dog\n58172,deer\n58173,frog\n58174,cat\n58175,cat\n58176,horse\n58177,dog\n58178,cat\n58179,bird\n58180,automobile\n58181,airplane\n58182,dog\n58183,truck\n58184,truck\n58185,truck\n58186,frog\n58187,ship\n58188,ship\n58189,deer\n58190,deer\n58191,dog\n58192,horse\n58193,airplane\n58194,deer\n58195,truck\n58196,truck\n58197,deer\n58198,deer\n58199,truck\n58200,automobile\n58201,dog\n58202,dog\n58203,dog\n58204,airplane\n58205,cat\n58206,truck\n58207,automobile\n58208,dog\n58209,truck\n58210,ship\n58211,cat\n58212,dog\n58213,frog\n58214,automobile\n58215,bird\n58216,frog\n58217,deer\n58218,truck\n58219,horse\n58220,horse\n58221,bird\n58222,horse\n58223,frog\n58224,frog\n58225,deer\n58226,deer\n58227,deer\n58228,automobile\n58229,airplane\n58230,ship\n58231,dog\n58232,bird\n58233,airplane\n58234,dog\n58235,frog\n58236,cat\n58237,ship\n58238,bird\n58239,frog\n58240,frog\n58241,deer\n58242,dog\n58243,frog\n58244,cat\n58245,automobile\n58246,frog\n58247,frog\n58248,horse\n58249,bird\n58250,cat\n58251,frog\n58252,horse\n58253,deer\n58254,deer\n58255,deer\n58256,deer\n58257,bird\n58258,ship\n58259,horse\n58260,frog\n58261,deer\n58262,bird\n58263,deer\n58264,truck\n58265,cat\n58266,horse\n58267,dog\n58268,truck\n58269,deer\n58270,airplane\n58271,deer\n58272,airplane\n58273,truck\n58274,frog\n58275,horse\n58276,deer\n58277,deer\n58278,deer\n58279,dog\n58280,automobile\n58281,truck\n58282,cat\n58283,dog\n58284,deer\n58285,frog\n58286,airplane\n58287,deer\n58288,airplane\n58289,truck\n58290,horse\n58291,ship\n58292,dog\n58293,airplane\n58294,dog\n58295,truck\n58296,dog\n58297,airplane\n58298,horse\n58299,frog\n58300,dog\n58301,cat\n58302,horse\n58303,automobile\n58304,truck\n58305,airplane\n58306,cat\n58307,cat\n58308,dog\n58309,horse\n58310,bird\n58311,dog\n58312,dog\n58313,truck\n58314,truck\n58315,horse\n58316,airplane\n58317,horse\n58318,ship\n58319,horse\n58320,airplane\n58321,deer\n58322,ship\n58323,truck\n58324,deer\n58325,truck\n58326,dog\n58327,automobile\n58328,bird\n58329,airplane\n58330,deer\n58331,truck\n58332,automobile\n58333,horse\n58334,truck\n58335,airplane\n58336,horse\n58337,cat\n58338,airplane\n58339,cat\n58340,deer\n58341,automobile\n58342,horse\n58343,deer\n58344,ship\n58345,deer\n58346,dog\n58347,airplane\n58348,deer\n58349,cat\n58350,dog\n58351,airplane\n58352,cat\n58353,cat\n58354,deer\n58355,deer\n58356,horse\n58357,truck\n58358,ship\n58359,automobile\n58360,cat\n58361,frog\n58362,cat\n58363,airplane\n58364,bird\n58365,cat\n58366,ship\n58367,cat\n58368,truck\n58369,truck\n58370,airplane\n58371,horse\n58372,ship\n58373,cat\n58374,dog\n58375,cat\n58376,deer\n58377,truck\n58378,dog\n58379,frog\n58380,frog\n58381,frog\n58382,horse\n58383,cat\n58384,horse\n58385,horse\n58386,airplane\n58387,deer\n58388,ship\n58389,ship\n58390,bird\n58391,dog\n58392,bird\n58393,bird\n58394,truck\n58395,airplane\n58396,frog\n58397,cat\n58398,horse\n58399,automobile\n58400,frog\n58401,deer\n58402,cat\n58403,deer\n58404,frog\n58405,dog\n58406,cat\n58407,cat\n58408,airplane\n58409,frog\n58410,automobile\n58411,dog\n58412,frog\n58413,deer\n58414,frog\n58415,bird\n58416,truck\n58417,airplane\n58418,deer\n58419,frog\n58420,deer\n58421,automobile\n58422,deer\n58423,frog\n58424,deer\n58425,horse\n58426,ship\n58427,airplane\n58428,cat\n58429,dog\n58430,cat\n58431,dog\n58432,frog\n58433,ship\n58434,frog\n58435,bird\n58436,bird\n58437,horse\n58438,horse\n58439,automobile\n58440,deer\n58441,deer\n58442,dog\n58443,truck\n58444,dog\n58445,dog\n58446,frog\n58447,ship\n58448,deer\n58449,truck\n58450,ship\n58451,ship\n58452,automobile\n58453,deer\n58454,horse\n58455,deer\n58456,cat\n58457,deer\n58458,frog\n58459,airplane\n58460,bird\n58461,frog\n58462,truck\n58463,deer\n58464,truck\n58465,truck\n58466,frog\n58467,bird\n58468,dog\n58469,dog\n58470,ship\n58471,airplane\n58472,deer\n58473,dog\n58474,truck\n58475,bird\n58476,cat\n58477,horse\n58478,frog\n58479,deer\n58480,ship\n58481,cat\n58482,frog\n58483,truck\n58484,frog\n58485,automobile\n58486,ship\n58487,bird\n58488,deer\n58489,ship\n58490,cat\n58491,horse\n58492,truck\n58493,deer\n58494,cat\n58495,cat\n58496,truck\n58497,frog\n58498,cat\n58499,cat\n58500,deer\n58501,automobile\n58502,cat\n58503,cat\n58504,dog\n58505,frog\n58506,truck\n58507,cat\n58508,bird\n58509,horse\n58510,truck\n58511,truck\n58512,frog\n58513,frog\n58514,deer\n58515,bird\n58516,truck\n58517,horse\n58518,bird\n58519,airplane\n58520,dog\n58521,deer\n58522,airplane\n58523,automobile\n58524,automobile\n58525,automobile\n58526,deer\n58527,frog\n58528,dog\n58529,deer\n58530,bird\n58531,ship\n58532,ship\n58533,bird\n58534,airplane\n58535,cat\n58536,airplane\n58537,truck\n58538,ship\n58539,deer\n58540,deer\n58541,deer\n58542,deer\n58543,horse\n58544,deer\n58545,automobile\n58546,ship\n58547,truck\n58548,deer\n58549,horse\n58550,frog\n58551,horse\n58552,dog\n58553,bird\n58554,dog\n58555,bird\n58556,truck\n58557,automobile\n58558,truck\n58559,cat\n58560,horse\n58561,cat\n58562,automobile\n58563,horse\n58564,truck\n58565,dog\n58566,truck\n58567,ship\n58568,deer\n58569,airplane\n58570,cat\n58571,frog\n58572,deer\n58573,ship\n58574,truck\n58575,cat\n58576,cat\n58577,frog\n58578,dog\n58579,ship\n58580,bird\n58581,horse\n58582,dog\n58583,horse\n58584,horse\n58585,deer\n58586,ship\n58587,frog\n58588,cat\n58589,truck\n58590,frog\n58591,dog\n58592,truck\n58593,ship\n58594,bird\n58595,airplane\n58596,dog\n58597,bird\n58598,horse\n58599,horse\n58600,deer\n58601,frog\n58602,frog\n58603,deer\n58604,truck\n58605,deer\n58606,truck\n58607,deer\n58608,frog\n58609,bird\n58610,automobile\n58611,deer\n58612,automobile\n58613,frog\n58614,bird\n58615,bird\n58616,truck\n58617,airplane\n58618,bird\n58619,airplane\n58620,frog\n58621,airplane\n58622,cat\n58623,deer\n58624,dog\n58625,bird\n58626,deer\n58627,airplane\n58628,automobile\n58629,bird\n58630,cat\n58631,deer\n58632,bird\n58633,truck\n58634,deer\n58635,horse\n58636,ship\n58637,airplane\n58638,horse\n58639,truck\n58640,truck\n58641,bird\n58642,ship\n58643,truck\n58644,bird\n58645,cat\n58646,frog\n58647,cat\n58648,automobile\n58649,airplane\n58650,cat\n58651,deer\n58652,ship\n58653,truck\n58654,ship\n58655,deer\n58656,bird\n58657,frog\n58658,frog\n58659,deer\n58660,cat\n58661,truck\n58662,frog\n58663,frog\n58664,cat\n58665,bird\n58666,deer\n58667,cat\n58668,automobile\n58669,airplane\n58670,horse\n58671,cat\n58672,cat\n58673,dog\n58674,airplane\n58675,cat\n58676,horse\n58677,bird\n58678,dog\n58679,truck\n58680,ship\n58681,automobile\n58682,dog\n58683,truck\n58684,ship\n58685,deer\n58686,airplane\n58687,cat\n58688,horse\n58689,bird\n58690,deer\n58691,dog\n58692,horse\n58693,airplane\n58694,cat\n58695,deer\n58696,cat\n58697,deer\n58698,horse\n58699,automobile\n58700,deer\n58701,airplane\n58702,truck\n58703,cat\n58704,deer\n58705,deer\n58706,ship\n58707,airplane\n58708,dog\n58709,deer\n58710,automobile\n58711,frog\n58712,bird\n58713,cat\n58714,automobile\n58715,airplane\n58716,truck\n58717,dog\n58718,horse\n58719,automobile\n58720,dog\n58721,horse\n58722,cat\n58723,bird\n58724,bird\n58725,airplane\n58726,truck\n58727,deer\n58728,deer\n58729,ship\n58730,truck\n58731,truck\n58732,truck\n58733,airplane\n58734,truck\n58735,cat\n58736,horse\n58737,cat\n58738,truck\n58739,airplane\n58740,deer\n58741,frog\n58742,bird\n58743,automobile\n58744,horse\n58745,horse\n58746,bird\n58747,automobile\n58748,automobile\n58749,frog\n58750,deer\n58751,cat\n58752,automobile\n58753,cat\n58754,deer\n58755,truck\n58756,horse\n58757,truck\n58758,airplane\n58759,bird\n58760,airplane\n58761,deer\n58762,frog\n58763,frog\n58764,airplane\n58765,deer\n58766,horse\n58767,cat\n58768,cat\n58769,ship\n58770,frog\n58771,cat\n58772,dog\n58773,deer\n58774,deer\n58775,ship\n58776,ship\n58777,horse\n58778,airplane\n58779,truck\n58780,truck\n58781,cat\n58782,horse\n58783,airplane\n58784,cat\n58785,ship\n58786,truck\n58787,dog\n58788,airplane\n58789,frog\n58790,truck\n58791,bird\n58792,deer\n58793,ship\n58794,bird\n58795,cat\n58796,frog\n58797,dog\n58798,horse\n58799,frog\n58800,frog\n58801,frog\n58802,frog\n58803,cat\n58804,horse\n58805,horse\n58806,frog\n58807,automobile\n58808,truck\n58809,truck\n58810,airplane\n58811,truck\n58812,frog\n58813,truck\n58814,dog\n58815,deer\n58816,dog\n58817,automobile\n58818,airplane\n58819,cat\n58820,dog\n58821,frog\n58822,cat\n58823,ship\n58824,ship\n58825,dog\n58826,deer\n58827,truck\n58828,airplane\n58829,truck\n58830,airplane\n58831,truck\n58832,automobile\n58833,horse\n58834,bird\n58835,cat\n58836,dog\n58837,frog\n58838,cat\n58839,frog\n58840,cat\n58841,cat\n58842,ship\n58843,deer\n58844,bird\n58845,deer\n58846,cat\n58847,ship\n58848,dog\n58849,deer\n58850,frog\n58851,automobile\n58852,dog\n58853,deer\n58854,deer\n58855,ship\n58856,ship\n58857,deer\n58858,truck\n58859,frog\n58860,automobile\n58861,cat\n58862,deer\n58863,horse\n58864,cat\n58865,airplane\n58866,frog\n58867,cat\n58868,bird\n58869,frog\n58870,bird\n58871,horse\n58872,automobile\n58873,dog\n58874,automobile\n58875,cat\n58876,deer\n58877,deer\n58878,ship\n58879,airplane\n58880,airplane\n58881,frog\n58882,ship\n58883,truck\n58884,cat\n58885,automobile\n58886,horse\n58887,cat\n58888,ship\n58889,automobile\n58890,airplane\n58891,airplane\n58892,dog\n58893,frog\n58894,dog\n58895,automobile\n58896,cat\n58897,airplane\n58898,horse\n58899,cat\n58900,airplane\n58901,deer\n58902,automobile\n58903,frog\n58904,truck\n58905,bird\n58906,airplane\n58907,truck\n58908,dog\n58909,horse\n58910,frog\n58911,frog\n58912,truck\n58913,horse\n58914,deer\n58915,bird\n58916,frog\n58917,frog\n58918,ship\n58919,cat\n58920,dog\n58921,deer\n58922,frog\n58923,cat\n58924,cat\n58925,deer\n58926,airplane\n58927,bird\n58928,bird\n58929,cat\n58930,horse\n58931,frog\n58932,airplane\n58933,deer\n58934,truck\n58935,frog\n58936,deer\n58937,dog\n58938,dog\n58939,horse\n58940,deer\n58941,horse\n58942,dog\n58943,dog\n58944,deer\n58945,frog\n58946,frog\n58947,cat\n58948,cat\n58949,dog\n58950,horse\n58951,dog\n58952,automobile\n58953,bird\n58954,bird\n58955,dog\n58956,horse\n58957,truck\n58958,frog\n58959,horse\n58960,cat\n58961,truck\n58962,dog\n58963,bird\n58964,frog\n58965,cat\n58966,horse\n58967,deer\n58968,horse\n58969,airplane\n58970,dog\n58971,deer\n58972,dog\n58973,truck\n58974,cat\n58975,horse\n58976,automobile\n58977,truck\n58978,cat\n58979,truck\n58980,truck\n58981,frog\n58982,truck\n58983,deer\n58984,cat\n58985,horse\n58986,automobile\n58987,airplane\n58988,truck\n58989,ship\n58990,truck\n58991,airplane\n58992,deer\n58993,frog\n58994,dog\n58995,frog\n58996,deer\n58997,frog\n58998,horse\n58999,cat\n59000,deer\n59001,airplane\n59002,dog\n59003,frog\n59004,cat\n59005,bird\n59006,ship\n59007,cat\n59008,cat\n59009,frog\n59010,truck\n59011,automobile\n59012,deer\n59013,airplane\n59014,horse\n59015,cat\n59016,deer\n59017,frog\n59018,deer\n59019,dog\n59020,ship\n59021,airplane\n59022,cat\n59023,truck\n59024,deer\n59025,airplane\n59026,bird\n59027,cat\n59028,airplane\n59029,airplane\n59030,frog\n59031,frog\n59032,bird\n59033,ship\n59034,horse\n59035,ship\n59036,ship\n59037,automobile\n59038,automobile\n59039,automobile\n59040,deer\n59041,frog\n59042,frog\n59043,cat\n59044,automobile\n59045,frog\n59046,airplane\n59047,horse\n59048,horse\n59049,dog\n59050,deer\n59051,dog\n59052,deer\n59053,dog\n59054,airplane\n59055,frog\n59056,truck\n59057,deer\n59058,dog\n59059,ship\n59060,truck\n59061,truck\n59062,cat\n59063,automobile\n59064,dog\n59065,frog\n59066,airplane\n59067,airplane\n59068,truck\n59069,deer\n59070,truck\n59071,truck\n59072,horse\n59073,ship\n59074,truck\n59075,frog\n59076,airplane\n59077,automobile\n59078,frog\n59079,bird\n59080,horse\n59081,cat\n59082,deer\n59083,dog\n59084,airplane\n59085,bird\n59086,airplane\n59087,truck\n59088,dog\n59089,ship\n59090,frog\n59091,automobile\n59092,horse\n59093,deer\n59094,airplane\n59095,bird\n59096,dog\n59097,ship\n59098,automobile\n59099,frog\n59100,truck\n59101,ship\n59102,deer\n59103,bird\n59104,airplane\n59105,airplane\n59106,airplane\n59107,truck\n59108,deer\n59109,frog\n59110,frog\n59111,ship\n59112,deer\n59113,ship\n59114,frog\n59115,truck\n59116,deer\n59117,horse\n59118,ship\n59119,automobile\n59120,horse\n59121,deer\n59122,ship\n59123,frog\n59124,cat\n59125,automobile\n59126,dog\n59127,frog\n59128,frog\n59129,airplane\n59130,bird\n59131,frog\n59132,deer\n59133,cat\n59134,truck\n59135,frog\n59136,bird\n59137,dog\n59138,bird\n59139,ship\n59140,horse\n59141,automobile\n59142,horse\n59143,truck\n59144,dog\n59145,deer\n59146,cat\n59147,bird\n59148,airplane\n59149,truck\n59150,cat\n59151,truck\n59152,dog\n59153,truck\n59154,horse\n59155,frog\n59156,automobile\n59157,frog\n59158,bird\n59159,deer\n59160,airplane\n59161,truck\n59162,airplane\n59163,frog\n59164,truck\n59165,cat\n59166,horse\n59167,bird\n59168,automobile\n59169,cat\n59170,airplane\n59171,truck\n59172,airplane\n59173,airplane\n59174,bird\n59175,automobile\n59176,horse\n59177,automobile\n59178,deer\n59179,ship\n59180,horse\n59181,truck\n59182,horse\n59183,dog\n59184,horse\n59185,deer\n59186,horse\n59187,ship\n59188,dog\n59189,bird\n59190,ship\n59191,ship\n59192,truck\n59193,cat\n59194,deer\n59195,dog\n59196,airplane\n59197,dog\n59198,dog\n59199,bird\n59200,truck\n59201,truck\n59202,dog\n59203,horse\n59204,automobile\n59205,dog\n59206,airplane\n59207,horse\n59208,automobile\n59209,automobile\n59210,frog\n59211,dog\n59212,automobile\n59213,deer\n59214,frog\n59215,ship\n59216,truck\n59217,airplane\n59218,airplane\n59219,frog\n59220,airplane\n59221,airplane\n59222,truck\n59223,bird\n59224,airplane\n59225,truck\n59226,automobile\n59227,truck\n59228,airplane\n59229,frog\n59230,dog\n59231,airplane\n59232,cat\n59233,bird\n59234,cat\n59235,truck\n59236,cat\n59237,dog\n59238,airplane\n59239,horse\n59240,deer\n59241,frog\n59242,dog\n59243,truck\n59244,ship\n59245,frog\n59246,airplane\n59247,ship\n59248,airplane\n59249,deer\n59250,deer\n59251,horse\n59252,airplane\n59253,ship\n59254,frog\n59255,ship\n59256,horse\n59257,dog\n59258,automobile\n59259,ship\n59260,dog\n59261,dog\n59262,automobile\n59263,dog\n59264,dog\n59265,cat\n59266,automobile\n59267,frog\n59268,frog\n59269,airplane\n59270,deer\n59271,deer\n59272,bird\n59273,automobile\n59274,automobile\n59275,dog\n59276,truck\n59277,frog\n59278,frog\n59279,bird\n59280,horse\n59281,bird\n59282,frog\n59283,ship\n59284,cat\n59285,cat\n59286,cat\n59287,deer\n59288,truck\n59289,deer\n59290,automobile\n59291,bird\n59292,automobile\n59293,horse\n59294,deer\n59295,deer\n59296,ship\n59297,cat\n59298,frog\n59299,frog\n59300,cat\n59301,deer\n59302,truck\n59303,truck\n59304,airplane\n59305,cat\n59306,bird\n59307,cat\n59308,deer\n59309,dog\n59310,truck\n59311,ship\n59312,truck\n59313,cat\n59314,airplane\n59315,deer\n59316,cat\n59317,truck\n59318,dog\n59319,truck\n59320,cat\n59321,frog\n59322,frog\n59323,automobile\n59324,bird\n59325,horse\n59326,deer\n59327,deer\n59328,deer\n59329,frog\n59330,dog\n59331,frog\n59332,airplane\n59333,frog\n59334,ship\n59335,automobile\n59336,dog\n59337,bird\n59338,horse\n59339,ship\n59340,bird\n59341,truck\n59342,ship\n59343,airplane\n59344,frog\n59345,bird\n59346,airplane\n59347,airplane\n59348,bird\n59349,cat\n59350,cat\n59351,cat\n59352,automobile\n59353,frog\n59354,deer\n59355,frog\n59356,cat\n59357,cat\n59358,frog\n59359,cat\n59360,horse\n59361,airplane\n59362,frog\n59363,cat\n59364,deer\n59365,frog\n59366,cat\n59367,automobile\n59368,airplane\n59369,bird\n59370,airplane\n59371,dog\n59372,deer\n59373,truck\n59374,truck\n59375,horse\n59376,dog\n59377,cat\n59378,airplane\n59379,frog\n59380,cat\n59381,deer\n59382,cat\n59383,frog\n59384,frog\n59385,automobile\n59386,ship\n59387,dog\n59388,airplane\n59389,deer\n59390,horse\n59391,ship\n59392,dog\n59393,dog\n59394,dog\n59395,bird\n59396,deer\n59397,airplane\n59398,cat\n59399,frog\n59400,truck\n59401,frog\n59402,horse\n59403,horse\n59404,bird\n59405,cat\n59406,frog\n59407,deer\n59408,ship\n59409,cat\n59410,frog\n59411,ship\n59412,bird\n59413,cat\n59414,bird\n59415,cat\n59416,frog\n59417,deer\n59418,cat\n59419,airplane\n59420,truck\n59421,automobile\n59422,dog\n59423,ship\n59424,automobile\n59425,dog\n59426,truck\n59427,bird\n59428,truck\n59429,bird\n59430,frog\n59431,cat\n59432,bird\n59433,airplane\n59434,cat\n59435,horse\n59436,dog\n59437,horse\n59438,cat\n59439,dog\n59440,bird\n59441,deer\n59442,cat\n59443,ship\n59444,deer\n59445,cat\n59446,deer\n59447,automobile\n59448,horse\n59449,cat\n59450,ship\n59451,bird\n59452,airplane\n59453,deer\n59454,cat\n59455,automobile\n59456,ship\n59457,deer\n59458,automobile\n59459,deer\n59460,ship\n59461,cat\n59462,cat\n59463,deer\n59464,truck\n59465,dog\n59466,dog\n59467,dog\n59468,cat\n59469,deer\n59470,dog\n59471,deer\n59472,truck\n59473,ship\n59474,deer\n59475,bird\n59476,horse\n59477,airplane\n59478,deer\n59479,bird\n59480,frog\n59481,horse\n59482,dog\n59483,deer\n59484,bird\n59485,bird\n59486,dog\n59487,airplane\n59488,deer\n59489,automobile\n59490,frog\n59491,dog\n59492,cat\n59493,truck\n59494,cat\n59495,truck\n59496,frog\n59497,dog\n59498,truck\n59499,frog\n59500,airplane\n59501,frog\n59502,deer\n59503,dog\n59504,bird\n59505,dog\n59506,deer\n59507,bird\n59508,deer\n59509,dog\n59510,truck\n59511,truck\n59512,dog\n59513,deer\n59514,airplane\n59515,deer\n59516,bird\n59517,cat\n59518,cat\n59519,deer\n59520,horse\n59521,horse\n59522,automobile\n59523,airplane\n59524,automobile\n59525,bird\n59526,cat\n59527,airplane\n59528,frog\n59529,deer\n59530,airplane\n59531,cat\n59532,cat\n59533,cat\n59534,deer\n59535,dog\n59536,horse\n59537,bird\n59538,cat\n59539,frog\n59540,cat\n59541,horse\n59542,ship\n59543,truck\n59544,truck\n59545,cat\n59546,horse\n59547,dog\n59548,deer\n59549,cat\n59550,deer\n59551,horse\n59552,cat\n59553,automobile\n59554,deer\n59555,cat\n59556,bird\n59557,horse\n59558,cat\n59559,frog\n59560,automobile\n59561,deer\n59562,automobile\n59563,truck\n59564,ship\n59565,horse\n59566,horse\n59567,horse\n59568,frog\n59569,dog\n59570,frog\n59571,horse\n59572,horse\n59573,airplane\n59574,cat\n59575,ship\n59576,deer\n59577,ship\n59578,frog\n59579,truck\n59580,truck\n59581,ship\n59582,dog\n59583,frog\n59584,airplane\n59585,automobile\n59586,deer\n59587,frog\n59588,dog\n59589,truck\n59590,frog\n59591,ship\n59592,dog\n59593,truck\n59594,truck\n59595,dog\n59596,dog\n59597,ship\n59598,cat\n59599,cat\n59600,horse\n59601,frog\n59602,dog\n59603,horse\n59604,deer\n59605,frog\n59606,ship\n59607,ship\n59608,deer\n59609,truck\n59610,truck\n59611,cat\n59612,ship\n59613,airplane\n59614,dog\n59615,ship\n59616,airplane\n59617,truck\n59618,airplane\n59619,automobile\n59620,frog\n59621,ship\n59622,bird\n59623,deer\n59624,deer\n59625,horse\n59626,frog\n59627,deer\n59628,airplane\n59629,bird\n59630,deer\n59631,airplane\n59632,bird\n59633,truck\n59634,dog\n59635,horse\n59636,automobile\n59637,ship\n59638,truck\n59639,horse\n59640,dog\n59641,cat\n59642,frog\n59643,cat\n59644,bird\n59645,horse\n59646,horse\n59647,deer\n59648,truck\n59649,ship\n59650,frog\n59651,frog\n59652,frog\n59653,dog\n59654,deer\n59655,airplane\n59656,cat\n59657,frog\n59658,deer\n59659,frog\n59660,automobile\n59661,dog\n59662,airplane\n59663,dog\n59664,frog\n59665,horse\n59666,ship\n59667,frog\n59668,ship\n59669,dog\n59670,deer\n59671,cat\n59672,bird\n59673,deer\n59674,bird\n59675,automobile\n59676,cat\n59677,deer\n59678,automobile\n59679,cat\n59680,airplane\n59681,bird\n59682,bird\n59683,horse\n59684,airplane\n59685,dog\n59686,deer\n59687,airplane\n59688,truck\n59689,bird\n59690,truck\n59691,deer\n59692,truck\n59693,cat\n59694,horse\n59695,cat\n59696,bird\n59697,automobile\n59698,airplane\n59699,dog\n59700,ship\n59701,horse\n59702,deer\n59703,dog\n59704,dog\n59705,deer\n59706,truck\n59707,ship\n59708,ship\n59709,deer\n59710,truck\n59711,horse\n59712,frog\n59713,bird\n59714,bird\n59715,truck\n59716,automobile\n59717,cat\n59718,airplane\n59719,automobile\n59720,dog\n59721,dog\n59722,truck\n59723,dog\n59724,cat\n59725,automobile\n59726,horse\n59727,cat\n59728,truck\n59729,ship\n59730,dog\n59731,deer\n59732,deer\n59733,cat\n59734,cat\n59735,airplane\n59736,deer\n59737,ship\n59738,ship\n59739,frog\n59740,truck\n59741,horse\n59742,truck\n59743,dog\n59744,bird\n59745,ship\n59746,deer\n59747,deer\n59748,dog\n59749,truck\n59750,bird\n59751,dog\n59752,truck\n59753,airplane\n59754,airplane\n59755,deer\n59756,bird\n59757,cat\n59758,bird\n59759,dog\n59760,deer\n59761,dog\n59762,deer\n59763,cat\n59764,deer\n59765,deer\n59766,truck\n59767,deer\n59768,cat\n59769,cat\n59770,automobile\n59771,dog\n59772,deer\n59773,frog\n59774,frog\n59775,cat\n59776,truck\n59777,automobile\n59778,frog\n59779,dog\n59780,frog\n59781,frog\n59782,truck\n59783,automobile\n59784,frog\n59785,bird\n59786,deer\n59787,deer\n59788,bird\n59789,ship\n59790,ship\n59791,dog\n59792,frog\n59793,bird\n59794,cat\n59795,automobile\n59796,deer\n59797,cat\n59798,ship\n59799,truck\n59800,truck\n59801,horse\n59802,cat\n59803,airplane\n59804,bird\n59805,bird\n59806,cat\n59807,truck\n59808,horse\n59809,ship\n59810,truck\n59811,deer\n59812,ship\n59813,frog\n59814,cat\n59815,truck\n59816,frog\n59817,deer\n59818,ship\n59819,dog\n59820,frog\n59821,frog\n59822,automobile\n59823,truck\n59824,deer\n59825,ship\n59826,ship\n59827,deer\n59828,airplane\n59829,frog\n59830,frog\n59831,frog\n59832,horse\n59833,airplane\n59834,truck\n59835,cat\n59836,horse\n59837,cat\n59838,horse\n59839,airplane\n59840,airplane\n59841,truck\n59842,cat\n59843,frog\n59844,airplane\n59845,dog\n59846,dog\n59847,ship\n59848,frog\n59849,dog\n59850,deer\n59851,airplane\n59852,cat\n59853,deer\n59854,dog\n59855,frog\n59856,cat\n59857,truck\n59858,bird\n59859,automobile\n59860,deer\n59861,bird\n59862,dog\n59863,frog\n59864,dog\n59865,ship\n59866,dog\n59867,deer\n59868,cat\n59869,frog\n59870,horse\n59871,automobile\n59872,deer\n59873,frog\n59874,automobile\n59875,ship\n59876,dog\n59877,deer\n59878,truck\n59879,bird\n59880,deer\n59881,frog\n59882,deer\n59883,airplane\n59884,automobile\n59885,ship\n59886,deer\n59887,horse\n59888,ship\n59889,horse\n59890,frog\n59891,frog\n59892,frog\n59893,automobile\n59894,cat\n59895,truck\n59896,bird\n59897,ship\n59898,airplane\n59899,deer\n59900,truck\n59901,dog\n59902,frog\n59903,cat\n59904,deer\n59905,dog\n59906,dog\n59907,automobile\n59908,dog\n59909,ship\n59910,cat\n59911,automobile\n59912,truck\n59913,automobile\n59914,truck\n59915,bird\n59916,deer\n59917,deer\n59918,truck\n59919,dog\n59920,ship\n59921,frog\n59922,cat\n59923,cat\n59924,cat\n59925,cat\n59926,bird\n59927,frog\n59928,airplane\n59929,dog\n59930,ship\n59931,horse\n59932,automobile\n59933,truck\n59934,horse\n59935,truck\n59936,horse\n59937,airplane\n59938,horse\n59939,truck\n59940,automobile\n59941,deer\n59942,frog\n59943,airplane\n59944,frog\n59945,truck\n59946,ship\n59947,airplane\n59948,dog\n59949,bird\n59950,horse\n59951,dog\n59952,ship\n59953,cat\n59954,truck\n59955,automobile\n59956,bird\n59957,ship\n59958,bird\n59959,ship\n59960,frog\n59961,deer\n59962,deer\n59963,cat\n59964,airplane\n59965,cat\n59966,deer\n59967,truck\n59968,deer\n59969,bird\n59970,automobile\n59971,bird\n59972,truck\n59973,ship\n59974,truck\n59975,ship\n59976,frog\n59977,deer\n59978,dog\n59979,truck\n59980,automobile\n59981,frog\n59982,truck\n59983,deer\n59984,airplane\n59985,frog\n59986,horse\n59987,truck\n59988,truck\n59989,frog\n59990,deer\n59991,deer\n59992,cat\n59993,automobile\n59994,frog\n59995,truck\n59996,truck\n59997,bird\n59998,truck\n59999,cat\n60000,truck\n60001,deer\n60002,dog\n60003,automobile\n60004,frog\n60005,automobile\n60006,dog\n60007,frog\n60008,automobile\n60009,horse\n60010,frog\n60011,ship\n60012,deer\n60013,horse\n60014,dog\n60015,horse\n60016,automobile\n60017,bird\n60018,frog\n60019,deer\n60020,deer\n60021,bird\n60022,airplane\n60023,automobile\n60024,dog\n60025,horse\n60026,truck\n60027,deer\n60028,dog\n60029,frog\n60030,horse\n60031,automobile\n60032,airplane\n60033,deer\n60034,dog\n60035,airplane\n60036,cat\n60037,truck\n60038,cat\n60039,frog\n60040,deer\n60041,cat\n60042,ship\n60043,frog\n60044,ship\n60045,dog\n60046,ship\n60047,automobile\n60048,frog\n60049,truck\n60050,airplane\n60051,deer\n60052,ship\n60053,deer\n60054,frog\n60055,airplane\n60056,ship\n60057,truck\n60058,deer\n60059,cat\n60060,horse\n60061,ship\n60062,deer\n60063,cat\n60064,cat\n60065,horse\n60066,airplane\n60067,cat\n60068,dog\n60069,cat\n60070,horse\n60071,truck\n60072,frog\n60073,horse\n60074,automobile\n60075,dog\n60076,cat\n60077,cat\n60078,frog\n60079,deer\n60080,frog\n60081,dog\n60082,frog\n60083,deer\n60084,frog\n60085,cat\n60086,cat\n60087,horse\n60088,frog\n60089,cat\n60090,cat\n60091,horse\n60092,truck\n60093,bird\n60094,dog\n60095,cat\n60096,cat\n60097,airplane\n60098,frog\n60099,deer\n60100,airplane\n60101,deer\n60102,dog\n60103,deer\n60104,frog\n60105,cat\n60106,cat\n60107,truck\n60108,cat\n60109,cat\n60110,dog\n60111,frog\n60112,deer\n60113,dog\n60114,ship\n60115,truck\n60116,bird\n60117,ship\n60118,automobile\n60119,frog\n60120,bird\n60121,airplane\n60122,automobile\n60123,cat\n60124,cat\n60125,frog\n60126,frog\n60127,cat\n60128,frog\n60129,cat\n60130,bird\n60131,bird\n60132,deer\n60133,airplane\n60134,deer\n60135,ship\n60136,horse\n60137,truck\n60138,deer\n60139,deer\n60140,airplane\n60141,frog\n60142,deer\n60143,frog\n60144,deer\n60145,dog\n60146,truck\n60147,airplane\n60148,ship\n60149,frog\n60150,truck\n60151,cat\n60152,airplane\n60153,frog\n60154,frog\n60155,bird\n60156,ship\n60157,frog\n60158,horse\n60159,truck\n60160,truck\n60161,cat\n60162,deer\n60163,airplane\n60164,dog\n60165,automobile\n60166,dog\n60167,frog\n60168,cat\n60169,horse\n60170,automobile\n60171,deer\n60172,airplane\n60173,airplane\n60174,ship\n60175,frog\n60176,deer\n60177,deer\n60178,bird\n60179,frog\n60180,horse\n60181,frog\n60182,ship\n60183,deer\n60184,horse\n60185,truck\n60186,bird\n60187,automobile\n60188,deer\n60189,dog\n60190,cat\n60191,dog\n60192,deer\n60193,truck\n60194,frog\n60195,automobile\n60196,deer\n60197,ship\n60198,deer\n60199,airplane\n60200,truck\n60201,dog\n60202,airplane\n60203,bird\n60204,bird\n60205,dog\n60206,frog\n60207,bird\n60208,bird\n60209,automobile\n60210,airplane\n60211,automobile\n60212,ship\n60213,airplane\n60214,deer\n60215,automobile\n60216,automobile\n60217,truck\n60218,horse\n60219,horse\n60220,bird\n60221,cat\n60222,frog\n60223,truck\n60224,deer\n60225,airplane\n60226,dog\n60227,cat\n60228,cat\n60229,cat\n60230,airplane\n60231,cat\n60232,airplane\n60233,truck\n60234,bird\n60235,ship\n60236,cat\n60237,dog\n60238,ship\n60239,frog\n60240,bird\n60241,cat\n60242,frog\n60243,horse\n60244,cat\n60245,deer\n60246,ship\n60247,dog\n60248,truck\n60249,cat\n60250,airplane\n60251,bird\n60252,bird\n60253,airplane\n60254,horse\n60255,cat\n60256,cat\n60257,bird\n60258,ship\n60259,deer\n60260,dog\n60261,automobile\n60262,cat\n60263,frog\n60264,horse\n60265,automobile\n60266,frog\n60267,cat\n60268,truck\n60269,dog\n60270,frog\n60271,frog\n60272,bird\n60273,ship\n60274,truck\n60275,airplane\n60276,bird\n60277,cat\n60278,deer\n60279,ship\n60280,automobile\n60281,dog\n60282,automobile\n60283,truck\n60284,ship\n60285,ship\n60286,automobile\n60287,automobile\n60288,bird\n60289,frog\n60290,deer\n60291,airplane\n60292,dog\n60293,airplane\n60294,deer\n60295,deer\n60296,horse\n60297,cat\n60298,truck\n60299,truck\n60300,cat\n60301,dog\n60302,truck\n60303,deer\n60304,deer\n60305,cat\n60306,frog\n60307,cat\n60308,dog\n60309,horse\n60310,airplane\n60311,dog\n60312,frog\n60313,frog\n60314,deer\n60315,deer\n60316,cat\n60317,dog\n60318,horse\n60319,horse\n60320,airplane\n60321,frog\n60322,frog\n60323,automobile\n60324,ship\n60325,automobile\n60326,ship\n60327,frog\n60328,frog\n60329,bird\n60330,deer\n60331,deer\n60332,automobile\n60333,bird\n60334,frog\n60335,deer\n60336,bird\n60337,airplane\n60338,deer\n60339,airplane\n60340,horse\n60341,deer\n60342,frog\n60343,ship\n60344,cat\n60345,cat\n60346,deer\n60347,frog\n60348,bird\n60349,dog\n60350,frog\n60351,horse\n60352,deer\n60353,frog\n60354,airplane\n60355,deer\n60356,frog\n60357,truck\n60358,airplane\n60359,cat\n60360,cat\n60361,frog\n60362,frog\n60363,horse\n60364,truck\n60365,cat\n60366,ship\n60367,cat\n60368,truck\n60369,dog\n60370,cat\n60371,deer\n60372,cat\n60373,ship\n60374,deer\n60375,truck\n60376,bird\n60377,truck\n60378,deer\n60379,deer\n60380,airplane\n60381,truck\n60382,cat\n60383,truck\n60384,ship\n60385,deer\n60386,dog\n60387,frog\n60388,frog\n60389,dog\n60390,horse\n60391,airplane\n60392,ship\n60393,truck\n60394,ship\n60395,horse\n60396,automobile\n60397,deer\n60398,frog\n60399,bird\n60400,airplane\n60401,frog\n60402,deer\n60403,ship\n60404,cat\n60405,horse\n60406,horse\n60407,bird\n60408,truck\n60409,bird\n60410,frog\n60411,horse\n60412,horse\n60413,cat\n60414,truck\n60415,cat\n60416,truck\n60417,dog\n60418,bird\n60419,deer\n60420,deer\n60421,ship\n60422,dog\n60423,airplane\n60424,airplane\n60425,automobile\n60426,dog\n60427,frog\n60428,deer\n60429,airplane\n60430,dog\n60431,bird\n60432,airplane\n60433,cat\n60434,cat\n60435,frog\n60436,truck\n60437,frog\n60438,ship\n60439,dog\n60440,bird\n60441,dog\n60442,bird\n60443,airplane\n60444,airplane\n60445,automobile\n60446,airplane\n60447,horse\n60448,ship\n60449,horse\n60450,ship\n60451,dog\n60452,frog\n60453,cat\n60454,airplane\n60455,deer\n60456,cat\n60457,dog\n60458,automobile\n60459,airplane\n60460,dog\n60461,ship\n60462,horse\n60463,automobile\n60464,ship\n60465,truck\n60466,cat\n60467,cat\n60468,horse\n60469,horse\n60470,deer\n60471,truck\n60472,bird\n60473,cat\n60474,horse\n60475,horse\n60476,ship\n60477,frog\n60478,deer\n60479,bird\n60480,dog\n60481,frog\n60482,airplane\n60483,airplane\n60484,deer\n60485,frog\n60486,truck\n60487,dog\n60488,cat\n60489,dog\n60490,deer\n60491,ship\n60492,horse\n60493,bird\n60494,frog\n60495,automobile\n60496,cat\n60497,ship\n60498,bird\n60499,ship\n60500,airplane\n60501,dog\n60502,automobile\n60503,truck\n60504,ship\n60505,dog\n60506,airplane\n60507,dog\n60508,deer\n60509,deer\n60510,cat\n60511,automobile\n60512,cat\n60513,truck\n60514,dog\n60515,ship\n60516,cat\n60517,automobile\n60518,horse\n60519,truck\n60520,horse\n60521,deer\n60522,bird\n60523,frog\n60524,cat\n60525,airplane\n60526,frog\n60527,truck\n60528,deer\n60529,cat\n60530,cat\n60531,deer\n60532,deer\n60533,cat\n60534,ship\n60535,truck\n60536,airplane\n60537,frog\n60538,automobile\n60539,automobile\n60540,frog\n60541,automobile\n60542,airplane\n60543,truck\n60544,automobile\n60545,deer\n60546,deer\n60547,airplane\n60548,cat\n60549,cat\n60550,deer\n60551,airplane\n60552,truck\n60553,frog\n60554,bird\n60555,airplane\n60556,deer\n60557,dog\n60558,dog\n60559,horse\n60560,airplane\n60561,truck\n60562,truck\n60563,cat\n60564,truck\n60565,frog\n60566,frog\n60567,truck\n60568,bird\n60569,cat\n60570,frog\n60571,deer\n60572,truck\n60573,truck\n60574,cat\n60575,deer\n60576,bird\n60577,ship\n60578,automobile\n60579,truck\n60580,horse\n60581,frog\n60582,dog\n60583,deer\n60584,horse\n60585,cat\n60586,deer\n60587,ship\n60588,frog\n60589,horse\n60590,deer\n60591,ship\n60592,frog\n60593,truck\n60594,bird\n60595,frog\n60596,frog\n60597,cat\n60598,deer\n60599,ship\n60600,truck\n60601,automobile\n60602,cat\n60603,ship\n60604,ship\n60605,ship\n60606,cat\n60607,truck\n60608,bird\n60609,airplane\n60610,bird\n60611,frog\n60612,cat\n60613,frog\n60614,deer\n60615,frog\n60616,frog\n60617,truck\n60618,cat\n60619,ship\n60620,dog\n60621,cat\n60622,ship\n60623,cat\n60624,ship\n60625,cat\n60626,bird\n60627,horse\n60628,dog\n60629,truck\n60630,deer\n60631,automobile\n60632,automobile\n60633,airplane\n60634,dog\n60635,cat\n60636,frog\n60637,deer\n60638,dog\n60639,horse\n60640,dog\n60641,horse\n60642,automobile\n60643,airplane\n60644,airplane\n60645,dog\n60646,frog\n60647,deer\n60648,frog\n60649,dog\n60650,cat\n60651,dog\n60652,ship\n60653,dog\n60654,frog\n60655,frog\n60656,automobile\n60657,frog\n60658,frog\n60659,horse\n60660,horse\n60661,ship\n60662,horse\n60663,dog\n60664,ship\n60665,truck\n60666,deer\n60667,cat\n60668,frog\n60669,dog\n60670,dog\n60671,ship\n60672,cat\n60673,automobile\n60674,ship\n60675,truck\n60676,horse\n60677,frog\n60678,truck\n60679,frog\n60680,cat\n60681,bird\n60682,horse\n60683,cat\n60684,airplane\n60685,bird\n60686,automobile\n60687,horse\n60688,ship\n60689,airplane\n60690,ship\n60691,truck\n60692,ship\n60693,ship\n60694,truck\n60695,frog\n60696,deer\n60697,deer\n60698,automobile\n60699,bird\n60700,ship\n60701,deer\n60702,ship\n60703,bird\n60704,frog\n60705,frog\n60706,frog\n60707,cat\n60708,bird\n60709,bird\n60710,dog\n60711,bird\n60712,dog\n60713,bird\n60714,truck\n60715,horse\n60716,cat\n60717,truck\n60718,bird\n60719,truck\n60720,horse\n60721,frog\n60722,cat\n60723,horse\n60724,deer\n60725,frog\n60726,airplane\n60727,horse\n60728,automobile\n60729,frog\n60730,ship\n60731,horse\n60732,deer\n60733,horse\n60734,frog\n60735,cat\n60736,deer\n60737,deer\n60738,airplane\n60739,frog\n60740,bird\n60741,cat\n60742,cat\n60743,airplane\n60744,deer\n60745,truck\n60746,bird\n60747,truck\n60748,cat\n60749,automobile\n60750,horse\n60751,deer\n60752,ship\n60753,dog\n60754,cat\n60755,cat\n60756,ship\n60757,dog\n60758,horse\n60759,truck\n60760,airplane\n60761,frog\n60762,horse\n60763,truck\n60764,automobile\n60765,bird\n60766,deer\n60767,automobile\n60768,horse\n60769,cat\n60770,dog\n60771,deer\n60772,frog\n60773,truck\n60774,ship\n60775,truck\n60776,dog\n60777,frog\n60778,ship\n60779,airplane\n60780,horse\n60781,automobile\n60782,cat\n60783,frog\n60784,deer\n60785,automobile\n60786,dog\n60787,frog\n60788,horse\n60789,deer\n60790,frog\n60791,airplane\n60792,cat\n60793,truck\n60794,deer\n60795,dog\n60796,frog\n60797,frog\n60798,deer\n60799,deer\n60800,bird\n60801,dog\n60802,dog\n60803,cat\n60804,deer\n60805,horse\n60806,truck\n60807,frog\n60808,frog\n60809,bird\n60810,cat\n60811,horse\n60812,cat\n60813,cat\n60814,bird\n60815,truck\n60816,dog\n60817,horse\n60818,horse\n60819,deer\n60820,airplane\n60821,frog\n60822,ship\n60823,airplane\n60824,ship\n60825,deer\n60826,dog\n60827,dog\n60828,bird\n60829,truck\n60830,ship\n60831,dog\n60832,bird\n60833,horse\n60834,airplane\n60835,automobile\n60836,airplane\n60837,cat\n60838,ship\n60839,horse\n60840,airplane\n60841,horse\n60842,frog\n60843,dog\n60844,deer\n60845,horse\n60846,horse\n60847,bird\n60848,automobile\n60849,airplane\n60850,cat\n60851,dog\n60852,dog\n60853,ship\n60854,bird\n60855,horse\n60856,cat\n60857,truck\n60858,deer\n60859,automobile\n60860,bird\n60861,airplane\n60862,frog\n60863,truck\n60864,horse\n60865,ship\n60866,dog\n60867,frog\n60868,dog\n60869,cat\n60870,bird\n60871,horse\n60872,truck\n60873,frog\n60874,deer\n60875,truck\n60876,frog\n60877,cat\n60878,horse\n60879,ship\n60880,bird\n60881,cat\n60882,automobile\n60883,cat\n60884,dog\n60885,cat\n60886,dog\n60887,dog\n60888,deer\n60889,bird\n60890,deer\n60891,deer\n60892,truck\n60893,cat\n60894,airplane\n60895,automobile\n60896,cat\n60897,dog\n60898,cat\n60899,airplane\n60900,ship\n60901,truck\n60902,horse\n60903,frog\n60904,ship\n60905,dog\n60906,airplane\n60907,ship\n60908,cat\n60909,truck\n60910,bird\n60911,frog\n60912,dog\n60913,airplane\n60914,bird\n60915,cat\n60916,truck\n60917,deer\n60918,frog\n60919,horse\n60920,deer\n60921,cat\n60922,frog\n60923,dog\n60924,automobile\n60925,cat\n60926,horse\n60927,airplane\n60928,automobile\n60929,frog\n60930,truck\n60931,airplane\n60932,frog\n60933,deer\n60934,ship\n60935,truck\n60936,horse\n60937,truck\n60938,horse\n60939,truck\n60940,truck\n60941,ship\n60942,horse\n60943,automobile\n60944,cat\n60945,horse\n60946,dog\n60947,frog\n60948,cat\n60949,horse\n60950,dog\n60951,frog\n60952,deer\n60953,deer\n60954,horse\n60955,dog\n60956,bird\n60957,bird\n60958,horse\n60959,cat\n60960,bird\n60961,automobile\n60962,airplane\n60963,automobile\n60964,cat\n60965,horse\n60966,deer\n60967,frog\n60968,ship\n60969,airplane\n60970,bird\n60971,frog\n60972,bird\n60973,automobile\n60974,frog\n60975,deer\n60976,frog\n60977,truck\n60978,deer\n60979,airplane\n60980,deer\n60981,airplane\n60982,horse\n60983,bird\n60984,cat\n60985,dog\n60986,cat\n60987,horse\n60988,automobile\n60989,bird\n60990,bird\n60991,airplane\n60992,airplane\n60993,dog\n60994,automobile\n60995,ship\n60996,dog\n60997,frog\n60998,deer\n60999,airplane\n61000,airplane\n61001,airplane\n61002,deer\n61003,horse\n61004,automobile\n61005,frog\n61006,horse\n61007,deer\n61008,bird\n61009,dog\n61010,truck\n61011,deer\n61012,airplane\n61013,airplane\n61014,cat\n61015,deer\n61016,cat\n61017,dog\n61018,frog\n61019,cat\n61020,horse\n61021,airplane\n61022,cat\n61023,dog\n61024,automobile\n61025,ship\n61026,frog\n61027,cat\n61028,airplane\n61029,horse\n61030,cat\n61031,ship\n61032,bird\n61033,dog\n61034,cat\n61035,cat\n61036,truck\n61037,dog\n61038,cat\n61039,airplane\n61040,frog\n61041,bird\n61042,automobile\n61043,horse\n61044,ship\n61045,horse\n61046,deer\n61047,deer\n61048,bird\n61049,frog\n61050,bird\n61051,airplane\n61052,bird\n61053,truck\n61054,automobile\n61055,deer\n61056,airplane\n61057,truck\n61058,ship\n61059,automobile\n61060,airplane\n61061,bird\n61062,dog\n61063,cat\n61064,airplane\n61065,deer\n61066,ship\n61067,ship\n61068,frog\n61069,airplane\n61070,ship\n61071,cat\n61072,airplane\n61073,ship\n61074,ship\n61075,deer\n61076,cat\n61077,bird\n61078,airplane\n61079,dog\n61080,dog\n61081,dog\n61082,deer\n61083,bird\n61084,frog\n61085,cat\n61086,airplane\n61087,horse\n61088,frog\n61089,horse\n61090,frog\n61091,cat\n61092,cat\n61093,airplane\n61094,frog\n61095,cat\n61096,bird\n61097,deer\n61098,horse\n61099,bird\n61100,deer\n61101,bird\n61102,truck\n61103,dog\n61104,deer\n61105,frog\n61106,truck\n61107,deer\n61108,frog\n61109,bird\n61110,cat\n61111,deer\n61112,horse\n61113,ship\n61114,frog\n61115,frog\n61116,airplane\n61117,horse\n61118,deer\n61119,bird\n61120,frog\n61121,automobile\n61122,airplane\n61123,deer\n61124,cat\n61125,horse\n61126,deer\n61127,dog\n61128,deer\n61129,deer\n61130,bird\n61131,airplane\n61132,deer\n61133,dog\n61134,horse\n61135,horse\n61136,automobile\n61137,truck\n61138,bird\n61139,truck\n61140,deer\n61141,truck\n61142,cat\n61143,bird\n61144,frog\n61145,automobile\n61146,frog\n61147,dog\n61148,automobile\n61149,truck\n61150,deer\n61151,airplane\n61152,deer\n61153,deer\n61154,bird\n61155,truck\n61156,bird\n61157,cat\n61158,airplane\n61159,frog\n61160,ship\n61161,cat\n61162,dog\n61163,bird\n61164,bird\n61165,ship\n61166,dog\n61167,dog\n61168,horse\n61169,truck\n61170,cat\n61171,cat\n61172,cat\n61173,deer\n61174,cat\n61175,deer\n61176,horse\n61177,airplane\n61178,frog\n61179,cat\n61180,horse\n61181,truck\n61182,bird\n61183,truck\n61184,frog\n61185,frog\n61186,automobile\n61187,frog\n61188,automobile\n61189,frog\n61190,truck\n61191,horse\n61192,frog\n61193,ship\n61194,frog\n61195,frog\n61196,dog\n61197,horse\n61198,deer\n61199,ship\n61200,bird\n61201,airplane\n61202,bird\n61203,truck\n61204,airplane\n61205,automobile\n61206,cat\n61207,cat\n61208,bird\n61209,bird\n61210,dog\n61211,airplane\n61212,truck\n61213,airplane\n61214,truck\n61215,cat\n61216,dog\n61217,frog\n61218,cat\n61219,truck\n61220,automobile\n61221,cat\n61222,ship\n61223,bird\n61224,dog\n61225,dog\n61226,airplane\n61227,frog\n61228,airplane\n61229,bird\n61230,airplane\n61231,automobile\n61232,frog\n61233,horse\n61234,truck\n61235,dog\n61236,ship\n61237,bird\n61238,deer\n61239,automobile\n61240,dog\n61241,horse\n61242,airplane\n61243,cat\n61244,airplane\n61245,truck\n61246,dog\n61247,deer\n61248,ship\n61249,horse\n61250,dog\n61251,ship\n61252,horse\n61253,horse\n61254,automobile\n61255,truck\n61256,cat\n61257,airplane\n61258,frog\n61259,airplane\n61260,horse\n61261,dog\n61262,bird\n61263,automobile\n61264,horse\n61265,deer\n61266,deer\n61267,cat\n61268,dog\n61269,automobile\n61270,deer\n61271,airplane\n61272,frog\n61273,truck\n61274,dog\n61275,bird\n61276,ship\n61277,cat\n61278,horse\n61279,frog\n61280,airplane\n61281,truck\n61282,deer\n61283,frog\n61284,frog\n61285,horse\n61286,dog\n61287,cat\n61288,automobile\n61289,horse\n61290,airplane\n61291,airplane\n61292,airplane\n61293,cat\n61294,truck\n61295,airplane\n61296,automobile\n61297,ship\n61298,horse\n61299,dog\n61300,deer\n61301,cat\n61302,airplane\n61303,truck\n61304,cat\n61305,ship\n61306,truck\n61307,automobile\n61308,bird\n61309,bird\n61310,dog\n61311,cat\n61312,cat\n61313,airplane\n61314,automobile\n61315,horse\n61316,ship\n61317,horse\n61318,bird\n61319,frog\n61320,deer\n61321,frog\n61322,horse\n61323,frog\n61324,automobile\n61325,frog\n61326,truck\n61327,horse\n61328,airplane\n61329,frog\n61330,frog\n61331,ship\n61332,cat\n61333,cat\n61334,frog\n61335,frog\n61336,ship\n61337,truck\n61338,bird\n61339,ship\n61340,horse\n61341,truck\n61342,truck\n61343,truck\n61344,deer\n61345,deer\n61346,bird\n61347,ship\n61348,bird\n61349,frog\n61350,deer\n61351,bird\n61352,deer\n61353,cat\n61354,cat\n61355,automobile\n61356,truck\n61357,frog\n61358,dog\n61359,deer\n61360,dog\n61361,dog\n61362,deer\n61363,cat\n61364,frog\n61365,airplane\n61366,truck\n61367,deer\n61368,cat\n61369,truck\n61370,airplane\n61371,dog\n61372,frog\n61373,dog\n61374,dog\n61375,cat\n61376,truck\n61377,bird\n61378,bird\n61379,deer\n61380,deer\n61381,dog\n61382,bird\n61383,bird\n61384,dog\n61385,airplane\n61386,horse\n61387,cat\n61388,truck\n61389,ship\n61390,horse\n61391,cat\n61392,truck\n61393,deer\n61394,bird\n61395,truck\n61396,horse\n61397,automobile\n61398,automobile\n61399,dog\n61400,dog\n61401,horse\n61402,frog\n61403,deer\n61404,horse\n61405,truck\n61406,deer\n61407,dog\n61408,cat\n61409,deer\n61410,automobile\n61411,airplane\n61412,horse\n61413,cat\n61414,frog\n61415,cat\n61416,frog\n61417,ship\n61418,bird\n61419,cat\n61420,ship\n61421,horse\n61422,horse\n61423,airplane\n61424,cat\n61425,frog\n61426,ship\n61427,truck\n61428,truck\n61429,frog\n61430,deer\n61431,bird\n61432,cat\n61433,airplane\n61434,frog\n61435,dog\n61436,cat\n61437,bird\n61438,airplane\n61439,horse\n61440,truck\n61441,truck\n61442,bird\n61443,bird\n61444,frog\n61445,horse\n61446,automobile\n61447,bird\n61448,cat\n61449,deer\n61450,cat\n61451,frog\n61452,deer\n61453,ship\n61454,cat\n61455,cat\n61456,airplane\n61457,horse\n61458,airplane\n61459,automobile\n61460,cat\n61461,airplane\n61462,deer\n61463,deer\n61464,deer\n61465,truck\n61466,frog\n61467,cat\n61468,airplane\n61469,deer\n61470,automobile\n61471,bird\n61472,horse\n61473,deer\n61474,dog\n61475,cat\n61476,cat\n61477,airplane\n61478,deer\n61479,dog\n61480,bird\n61481,deer\n61482,automobile\n61483,airplane\n61484,horse\n61485,horse\n61486,horse\n61487,automobile\n61488,cat\n61489,airplane\n61490,horse\n61491,dog\n61492,cat\n61493,dog\n61494,cat\n61495,deer\n61496,automobile\n61497,airplane\n61498,deer\n61499,ship\n61500,dog\n61501,ship\n61502,dog\n61503,bird\n61504,bird\n61505,cat\n61506,frog\n61507,automobile\n61508,deer\n61509,bird\n61510,cat\n61511,truck\n61512,automobile\n61513,horse\n61514,airplane\n61515,horse\n61516,deer\n61517,ship\n61518,truck\n61519,airplane\n61520,frog\n61521,truck\n61522,airplane\n61523,frog\n61524,dog\n61525,dog\n61526,dog\n61527,deer\n61528,truck\n61529,horse\n61530,automobile\n61531,airplane\n61532,dog\n61533,airplane\n61534,cat\n61535,ship\n61536,airplane\n61537,frog\n61538,cat\n61539,ship\n61540,automobile\n61541,deer\n61542,cat\n61543,frog\n61544,automobile\n61545,deer\n61546,dog\n61547,ship\n61548,truck\n61549,dog\n61550,cat\n61551,frog\n61552,ship\n61553,airplane\n61554,truck\n61555,deer\n61556,deer\n61557,dog\n61558,dog\n61559,deer\n61560,dog\n61561,bird\n61562,cat\n61563,frog\n61564,frog\n61565,automobile\n61566,automobile\n61567,truck\n61568,deer\n61569,frog\n61570,cat\n61571,automobile\n61572,ship\n61573,deer\n61574,dog\n61575,dog\n61576,cat\n61577,horse\n61578,frog\n61579,cat\n61580,horse\n61581,deer\n61582,cat\n61583,deer\n61584,cat\n61585,ship\n61586,bird\n61587,deer\n61588,dog\n61589,truck\n61590,bird\n61591,truck\n61592,frog\n61593,deer\n61594,deer\n61595,bird\n61596,cat\n61597,airplane\n61598,automobile\n61599,airplane\n61600,airplane\n61601,ship\n61602,truck\n61603,frog\n61604,bird\n61605,dog\n61606,dog\n61607,cat\n61608,horse\n61609,truck\n61610,frog\n61611,frog\n61612,automobile\n61613,horse\n61614,frog\n61615,cat\n61616,airplane\n61617,dog\n61618,ship\n61619,dog\n61620,horse\n61621,automobile\n61622,frog\n61623,truck\n61624,cat\n61625,deer\n61626,deer\n61627,deer\n61628,ship\n61629,deer\n61630,frog\n61631,automobile\n61632,cat\n61633,cat\n61634,ship\n61635,bird\n61636,frog\n61637,truck\n61638,bird\n61639,truck\n61640,deer\n61641,truck\n61642,bird\n61643,frog\n61644,ship\n61645,truck\n61646,frog\n61647,horse\n61648,cat\n61649,deer\n61650,frog\n61651,frog\n61652,deer\n61653,cat\n61654,airplane\n61655,truck\n61656,bird\n61657,frog\n61658,bird\n61659,airplane\n61660,cat\n61661,truck\n61662,horse\n61663,deer\n61664,automobile\n61665,frog\n61666,ship\n61667,truck\n61668,cat\n61669,dog\n61670,frog\n61671,truck\n61672,cat\n61673,ship\n61674,airplane\n61675,airplane\n61676,dog\n61677,truck\n61678,ship\n61679,dog\n61680,airplane\n61681,dog\n61682,ship\n61683,deer\n61684,deer\n61685,bird\n61686,frog\n61687,deer\n61688,truck\n61689,deer\n61690,bird\n61691,bird\n61692,truck\n61693,deer\n61694,airplane\n61695,ship\n61696,airplane\n61697,bird\n61698,dog\n61699,ship\n61700,ship\n61701,cat\n61702,automobile\n61703,dog\n61704,automobile\n61705,cat\n61706,dog\n61707,truck\n61708,cat\n61709,airplane\n61710,cat\n61711,horse\n61712,truck\n61713,automobile\n61714,deer\n61715,horse\n61716,frog\n61717,cat\n61718,dog\n61719,dog\n61720,dog\n61721,truck\n61722,frog\n61723,deer\n61724,airplane\n61725,ship\n61726,truck\n61727,frog\n61728,deer\n61729,horse\n61730,airplane\n61731,truck\n61732,frog\n61733,dog\n61734,truck\n61735,airplane\n61736,cat\n61737,horse\n61738,bird\n61739,airplane\n61740,deer\n61741,deer\n61742,horse\n61743,automobile\n61744,cat\n61745,deer\n61746,frog\n61747,dog\n61748,ship\n61749,dog\n61750,deer\n61751,deer\n61752,truck\n61753,deer\n61754,truck\n61755,frog\n61756,airplane\n61757,frog\n61758,airplane\n61759,automobile\n61760,ship\n61761,deer\n61762,cat\n61763,frog\n61764,bird\n61765,automobile\n61766,truck\n61767,ship\n61768,automobile\n61769,horse\n61770,automobile\n61771,dog\n61772,airplane\n61773,cat\n61774,cat\n61775,dog\n61776,airplane\n61777,horse\n61778,truck\n61779,horse\n61780,horse\n61781,horse\n61782,dog\n61783,truck\n61784,dog\n61785,ship\n61786,deer\n61787,deer\n61788,dog\n61789,frog\n61790,frog\n61791,dog\n61792,deer\n61793,frog\n61794,truck\n61795,ship\n61796,automobile\n61797,horse\n61798,airplane\n61799,horse\n61800,ship\n61801,bird\n61802,deer\n61803,cat\n61804,frog\n61805,dog\n61806,truck\n61807,truck\n61808,deer\n61809,truck\n61810,automobile\n61811,deer\n61812,frog\n61813,ship\n61814,bird\n61815,horse\n61816,deer\n61817,frog\n61818,cat\n61819,cat\n61820,dog\n61821,horse\n61822,deer\n61823,automobile\n61824,truck\n61825,deer\n61826,frog\n61827,frog\n61828,horse\n61829,cat\n61830,deer\n61831,dog\n61832,frog\n61833,bird\n61834,airplane\n61835,frog\n61836,cat\n61837,automobile\n61838,frog\n61839,airplane\n61840,frog\n61841,horse\n61842,cat\n61843,automobile\n61844,bird\n61845,automobile\n61846,airplane\n61847,ship\n61848,cat\n61849,dog\n61850,truck\n61851,truck\n61852,automobile\n61853,horse\n61854,airplane\n61855,cat\n61856,frog\n61857,truck\n61858,bird\n61859,deer\n61860,ship\n61861,ship\n61862,truck\n61863,cat\n61864,automobile\n61865,deer\n61866,bird\n61867,cat\n61868,dog\n61869,deer\n61870,automobile\n61871,deer\n61872,deer\n61873,automobile\n61874,deer\n61875,bird\n61876,automobile\n61877,frog\n61878,dog\n61879,automobile\n61880,automobile\n61881,dog\n61882,cat\n61883,airplane\n61884,cat\n61885,deer\n61886,dog\n61887,frog\n61888,truck\n61889,dog\n61890,cat\n61891,dog\n61892,bird\n61893,ship\n61894,bird\n61895,automobile\n61896,deer\n61897,dog\n61898,cat\n61899,airplane\n61900,automobile\n61901,bird\n61902,deer\n61903,cat\n61904,dog\n61905,airplane\n61906,cat\n61907,ship\n61908,horse\n61909,cat\n61910,dog\n61911,dog\n61912,deer\n61913,horse\n61914,horse\n61915,deer\n61916,frog\n61917,truck\n61918,dog\n61919,bird\n61920,ship\n61921,dog\n61922,dog\n61923,deer\n61924,bird\n61925,truck\n61926,horse\n61927,ship\n61928,horse\n61929,ship\n61930,cat\n61931,automobile\n61932,ship\n61933,truck\n61934,dog\n61935,cat\n61936,bird\n61937,frog\n61938,airplane\n61939,dog\n61940,truck\n61941,bird\n61942,truck\n61943,airplane\n61944,truck\n61945,airplane\n61946,dog\n61947,horse\n61948,truck\n61949,cat\n61950,cat\n61951,airplane\n61952,frog\n61953,automobile\n61954,ship\n61955,ship\n61956,ship\n61957,frog\n61958,truck\n61959,deer\n61960,frog\n61961,bird\n61962,frog\n61963,dog\n61964,deer\n61965,cat\n61966,ship\n61967,horse\n61968,frog\n61969,dog\n61970,truck\n61971,horse\n61972,deer\n61973,horse\n61974,horse\n61975,horse\n61976,frog\n61977,dog\n61978,cat\n61979,ship\n61980,deer\n61981,automobile\n61982,cat\n61983,airplane\n61984,ship\n61985,truck\n61986,truck\n61987,horse\n61988,truck\n61989,horse\n61990,dog\n61991,horse\n61992,ship\n61993,cat\n61994,deer\n61995,deer\n61996,cat\n61997,dog\n61998,bird\n61999,cat\n62000,ship\n62001,truck\n62002,cat\n62003,dog\n62004,dog\n62005,horse\n62006,airplane\n62007,truck\n62008,truck\n62009,truck\n62010,horse\n62011,dog\n62012,horse\n62013,horse\n62014,ship\n62015,deer\n62016,automobile\n62017,truck\n62018,frog\n62019,cat\n62020,horse\n62021,bird\n62022,bird\n62023,ship\n62024,frog\n62025,dog\n62026,airplane\n62027,bird\n62028,ship\n62029,bird\n62030,airplane\n62031,deer\n62032,truck\n62033,dog\n62034,ship\n62035,deer\n62036,airplane\n62037,deer\n62038,frog\n62039,bird\n62040,dog\n62041,horse\n62042,deer\n62043,horse\n62044,horse\n62045,frog\n62046,ship\n62047,frog\n62048,cat\n62049,deer\n62050,automobile\n62051,frog\n62052,ship\n62053,deer\n62054,deer\n62055,bird\n62056,dog\n62057,frog\n62058,frog\n62059,deer\n62060,dog\n62061,airplane\n62062,dog\n62063,truck\n62064,airplane\n62065,deer\n62066,deer\n62067,ship\n62068,frog\n62069,bird\n62070,dog\n62071,dog\n62072,bird\n62073,deer\n62074,dog\n62075,bird\n62076,cat\n62077,truck\n62078,cat\n62079,bird\n62080,truck\n62081,deer\n62082,deer\n62083,horse\n62084,horse\n62085,horse\n62086,frog\n62087,ship\n62088,bird\n62089,ship\n62090,dog\n62091,truck\n62092,ship\n62093,airplane\n62094,bird\n62095,automobile\n62096,bird\n62097,cat\n62098,automobile\n62099,deer\n62100,deer\n62101,ship\n62102,deer\n62103,cat\n62104,bird\n62105,truck\n62106,airplane\n62107,airplane\n62108,deer\n62109,bird\n62110,cat\n62111,ship\n62112,deer\n62113,horse\n62114,deer\n62115,ship\n62116,automobile\n62117,cat\n62118,truck\n62119,horse\n62120,truck\n62121,truck\n62122,ship\n62123,dog\n62124,truck\n62125,airplane\n62126,ship\n62127,ship\n62128,truck\n62129,deer\n62130,automobile\n62131,deer\n62132,airplane\n62133,truck\n62134,deer\n62135,cat\n62136,airplane\n62137,frog\n62138,airplane\n62139,cat\n62140,ship\n62141,deer\n62142,truck\n62143,automobile\n62144,frog\n62145,truck\n62146,dog\n62147,cat\n62148,cat\n62149,cat\n62150,horse\n62151,airplane\n62152,horse\n62153,automobile\n62154,cat\n62155,deer\n62156,ship\n62157,truck\n62158,bird\n62159,deer\n62160,bird\n62161,deer\n62162,cat\n62163,deer\n62164,horse\n62165,automobile\n62166,frog\n62167,horse\n62168,frog\n62169,cat\n62170,deer\n62171,dog\n62172,deer\n62173,automobile\n62174,horse\n62175,truck\n62176,deer\n62177,truck\n62178,bird\n62179,ship\n62180,ship\n62181,deer\n62182,frog\n62183,cat\n62184,frog\n62185,dog\n62186,airplane\n62187,horse\n62188,bird\n62189,truck\n62190,cat\n62191,airplane\n62192,deer\n62193,deer\n62194,ship\n62195,cat\n62196,deer\n62197,dog\n62198,bird\n62199,truck\n62200,automobile\n62201,ship\n62202,deer\n62203,frog\n62204,deer\n62205,airplane\n62206,frog\n62207,cat\n62208,cat\n62209,truck\n62210,horse\n62211,airplane\n62212,truck\n62213,automobile\n62214,cat\n62215,bird\n62216,cat\n62217,automobile\n62218,dog\n62219,truck\n62220,truck\n62221,airplane\n62222,frog\n62223,cat\n62224,truck\n62225,horse\n62226,horse\n62227,airplane\n62228,deer\n62229,bird\n62230,ship\n62231,automobile\n62232,deer\n62233,truck\n62234,frog\n62235,ship\n62236,airplane\n62237,dog\n62238,horse\n62239,frog\n62240,truck\n62241,ship\n62242,truck\n62243,cat\n62244,deer\n62245,cat\n62246,ship\n62247,bird\n62248,dog\n62249,horse\n62250,ship\n62251,cat\n62252,frog\n62253,frog\n62254,horse\n62255,cat\n62256,airplane\n62257,cat\n62258,ship\n62259,automobile\n62260,frog\n62261,frog\n62262,dog\n62263,cat\n62264,dog\n62265,deer\n62266,cat\n62267,ship\n62268,automobile\n62269,frog\n62270,bird\n62271,dog\n62272,automobile\n62273,ship\n62274,automobile\n62275,frog\n62276,dog\n62277,bird\n62278,frog\n62279,cat\n62280,airplane\n62281,bird\n62282,dog\n62283,ship\n62284,deer\n62285,deer\n62286,deer\n62287,frog\n62288,frog\n62289,truck\n62290,truck\n62291,airplane\n62292,horse\n62293,deer\n62294,truck\n62295,bird\n62296,airplane\n62297,cat\n62298,horse\n62299,dog\n62300,frog\n62301,airplane\n62302,ship\n62303,automobile\n62304,ship\n62305,cat\n62306,cat\n62307,dog\n62308,bird\n62309,truck\n62310,frog\n62311,bird\n62312,dog\n62313,airplane\n62314,automobile\n62315,frog\n62316,frog\n62317,cat\n62318,horse\n62319,frog\n62320,airplane\n62321,airplane\n62322,horse\n62323,truck\n62324,bird\n62325,frog\n62326,automobile\n62327,airplane\n62328,deer\n62329,truck\n62330,deer\n62331,cat\n62332,frog\n62333,truck\n62334,airplane\n62335,horse\n62336,automobile\n62337,bird\n62338,ship\n62339,dog\n62340,frog\n62341,truck\n62342,dog\n62343,truck\n62344,bird\n62345,ship\n62346,bird\n62347,frog\n62348,airplane\n62349,dog\n62350,bird\n62351,cat\n62352,horse\n62353,airplane\n62354,airplane\n62355,truck\n62356,cat\n62357,bird\n62358,deer\n62359,deer\n62360,cat\n62361,deer\n62362,frog\n62363,truck\n62364,frog\n62365,frog\n62366,cat\n62367,automobile\n62368,airplane\n62369,deer\n62370,horse\n62371,deer\n62372,frog\n62373,frog\n62374,cat\n62375,frog\n62376,dog\n62377,dog\n62378,cat\n62379,bird\n62380,deer\n62381,bird\n62382,frog\n62383,ship\n62384,deer\n62385,truck\n62386,frog\n62387,frog\n62388,ship\n62389,bird\n62390,horse\n62391,dog\n62392,cat\n62393,bird\n62394,horse\n62395,bird\n62396,truck\n62397,airplane\n62398,deer\n62399,deer\n62400,frog\n62401,airplane\n62402,airplane\n62403,cat\n62404,horse\n62405,deer\n62406,truck\n62407,dog\n62408,horse\n62409,horse\n62410,ship\n62411,cat\n62412,horse\n62413,airplane\n62414,horse\n62415,deer\n62416,deer\n62417,cat\n62418,frog\n62419,horse\n62420,airplane\n62421,automobile\n62422,automobile\n62423,frog\n62424,cat\n62425,dog\n62426,truck\n62427,airplane\n62428,truck\n62429,dog\n62430,frog\n62431,airplane\n62432,automobile\n62433,deer\n62434,deer\n62435,cat\n62436,cat\n62437,truck\n62438,deer\n62439,cat\n62440,truck\n62441,ship\n62442,truck\n62443,airplane\n62444,horse\n62445,horse\n62446,airplane\n62447,frog\n62448,truck\n62449,cat\n62450,cat\n62451,airplane\n62452,airplane\n62453,automobile\n62454,truck\n62455,horse\n62456,cat\n62457,horse\n62458,horse\n62459,frog\n62460,automobile\n62461,airplane\n62462,deer\n62463,truck\n62464,frog\n62465,ship\n62466,bird\n62467,cat\n62468,frog\n62469,horse\n62470,frog\n62471,deer\n62472,horse\n62473,bird\n62474,horse\n62475,bird\n62476,horse\n62477,deer\n62478,cat\n62479,airplane\n62480,deer\n62481,dog\n62482,truck\n62483,ship\n62484,ship\n62485,cat\n62486,cat\n62487,horse\n62488,deer\n62489,cat\n62490,deer\n62491,deer\n62492,dog\n62493,ship\n62494,frog\n62495,airplane\n62496,deer\n62497,ship\n62498,dog\n62499,airplane\n62500,deer\n62501,ship\n62502,truck\n62503,cat\n62504,airplane\n62505,frog\n62506,cat\n62507,cat\n62508,deer\n62509,horse\n62510,cat\n62511,deer\n62512,cat\n62513,ship\n62514,cat\n62515,deer\n62516,dog\n62517,airplane\n62518,airplane\n62519,truck\n62520,deer\n62521,deer\n62522,horse\n62523,frog\n62524,dog\n62525,dog\n62526,truck\n62527,dog\n62528,dog\n62529,automobile\n62530,frog\n62531,bird\n62532,airplane\n62533,dog\n62534,ship\n62535,dog\n62536,deer\n62537,cat\n62538,deer\n62539,cat\n62540,cat\n62541,frog\n62542,horse\n62543,horse\n62544,horse\n62545,dog\n62546,deer\n62547,cat\n62548,frog\n62549,ship\n62550,horse\n62551,ship\n62552,truck\n62553,dog\n62554,deer\n62555,automobile\n62556,bird\n62557,cat\n62558,airplane\n62559,horse\n62560,deer\n62561,truck\n62562,bird\n62563,horse\n62564,horse\n62565,frog\n62566,horse\n62567,cat\n62568,airplane\n62569,cat\n62570,ship\n62571,deer\n62572,airplane\n62573,automobile\n62574,airplane\n62575,deer\n62576,frog\n62577,cat\n62578,ship\n62579,cat\n62580,deer\n62581,dog\n62582,bird\n62583,ship\n62584,deer\n62585,dog\n62586,horse\n62587,airplane\n62588,horse\n62589,deer\n62590,airplane\n62591,dog\n62592,airplane\n62593,automobile\n62594,ship\n62595,dog\n62596,deer\n62597,frog\n62598,bird\n62599,cat\n62600,dog\n62601,horse\n62602,airplane\n62603,cat\n62604,dog\n62605,truck\n62606,frog\n62607,dog\n62608,cat\n62609,deer\n62610,truck\n62611,cat\n62612,truck\n62613,airplane\n62614,deer\n62615,cat\n62616,truck\n62617,bird\n62618,automobile\n62619,automobile\n62620,horse\n62621,dog\n62622,airplane\n62623,bird\n62624,cat\n62625,dog\n62626,frog\n62627,frog\n62628,dog\n62629,horse\n62630,deer\n62631,deer\n62632,airplane\n62633,automobile\n62634,dog\n62635,airplane\n62636,cat\n62637,frog\n62638,ship\n62639,cat\n62640,horse\n62641,horse\n62642,frog\n62643,truck\n62644,airplane\n62645,automobile\n62646,deer\n62647,bird\n62648,truck\n62649,frog\n62650,airplane\n62651,frog\n62652,deer\n62653,truck\n62654,airplane\n62655,ship\n62656,truck\n62657,dog\n62658,ship\n62659,horse\n62660,cat\n62661,airplane\n62662,deer\n62663,horse\n62664,cat\n62665,truck\n62666,ship\n62667,truck\n62668,ship\n62669,truck\n62670,horse\n62671,horse\n62672,cat\n62673,cat\n62674,deer\n62675,ship\n62676,ship\n62677,frog\n62678,horse\n62679,ship\n62680,automobile\n62681,airplane\n62682,frog\n62683,deer\n62684,truck\n62685,cat\n62686,airplane\n62687,cat\n62688,ship\n62689,horse\n62690,ship\n62691,frog\n62692,truck\n62693,truck\n62694,frog\n62695,deer\n62696,deer\n62697,airplane\n62698,ship\n62699,ship\n62700,truck\n62701,bird\n62702,frog\n62703,truck\n62704,cat\n62705,airplane\n62706,cat\n62707,horse\n62708,cat\n62709,ship\n62710,cat\n62711,deer\n62712,deer\n62713,frog\n62714,frog\n62715,deer\n62716,ship\n62717,airplane\n62718,horse\n62719,ship\n62720,cat\n62721,deer\n62722,horse\n62723,deer\n62724,deer\n62725,horse\n62726,truck\n62727,deer\n62728,airplane\n62729,ship\n62730,dog\n62731,horse\n62732,horse\n62733,dog\n62734,frog\n62735,dog\n62736,airplane\n62737,airplane\n62738,horse\n62739,bird\n62740,cat\n62741,automobile\n62742,dog\n62743,truck\n62744,deer\n62745,automobile\n62746,frog\n62747,dog\n62748,dog\n62749,horse\n62750,deer\n62751,frog\n62752,truck\n62753,bird\n62754,automobile\n62755,truck\n62756,automobile\n62757,airplane\n62758,truck\n62759,frog\n62760,deer\n62761,bird\n62762,truck\n62763,frog\n62764,truck\n62765,dog\n62766,cat\n62767,deer\n62768,airplane\n62769,ship\n62770,truck\n62771,automobile\n62772,cat\n62773,automobile\n62774,deer\n62775,dog\n62776,automobile\n62777,frog\n62778,dog\n62779,airplane\n62780,horse\n62781,truck\n62782,deer\n62783,cat\n62784,deer\n62785,ship\n62786,truck\n62787,cat\n62788,dog\n62789,airplane\n62790,airplane\n62791,automobile\n62792,truck\n62793,cat\n62794,ship\n62795,frog\n62796,truck\n62797,cat\n62798,automobile\n62799,airplane\n62800,deer\n62801,ship\n62802,ship\n62803,airplane\n62804,deer\n62805,cat\n62806,airplane\n62807,bird\n62808,truck\n62809,deer\n62810,dog\n62811,frog\n62812,cat\n62813,dog\n62814,automobile\n62815,frog\n62816,frog\n62817,truck\n62818,dog\n62819,dog\n62820,frog\n62821,deer\n62822,deer\n62823,airplane\n62824,dog\n62825,deer\n62826,deer\n62827,horse\n62828,frog\n62829,cat\n62830,ship\n62831,dog\n62832,frog\n62833,automobile\n62834,ship\n62835,airplane\n62836,cat\n62837,deer\n62838,airplane\n62839,truck\n62840,dog\n62841,truck\n62842,horse\n62843,ship\n62844,dog\n62845,truck\n62846,truck\n62847,horse\n62848,deer\n62849,ship\n62850,automobile\n62851,horse\n62852,cat\n62853,frog\n62854,cat\n62855,truck\n62856,dog\n62857,deer\n62858,cat\n62859,deer\n62860,ship\n62861,cat\n62862,truck\n62863,airplane\n62864,bird\n62865,horse\n62866,frog\n62867,deer\n62868,horse\n62869,ship\n62870,bird\n62871,deer\n62872,truck\n62873,frog\n62874,automobile\n62875,frog\n62876,ship\n62877,deer\n62878,deer\n62879,truck\n62880,ship\n62881,frog\n62882,frog\n62883,cat\n62884,truck\n62885,horse\n62886,horse\n62887,horse\n62888,deer\n62889,deer\n62890,bird\n62891,cat\n62892,cat\n62893,deer\n62894,frog\n62895,cat\n62896,ship\n62897,dog\n62898,frog\n62899,truck\n62900,deer\n62901,ship\n62902,cat\n62903,cat\n62904,deer\n62905,ship\n62906,ship\n62907,cat\n62908,cat\n62909,airplane\n62910,horse\n62911,deer\n62912,dog\n62913,cat\n62914,deer\n62915,deer\n62916,truck\n62917,dog\n62918,horse\n62919,cat\n62920,deer\n62921,frog\n62922,deer\n62923,bird\n62924,cat\n62925,dog\n62926,deer\n62927,automobile\n62928,cat\n62929,bird\n62930,airplane\n62931,dog\n62932,airplane\n62933,deer\n62934,deer\n62935,horse\n62936,automobile\n62937,dog\n62938,bird\n62939,cat\n62940,dog\n62941,dog\n62942,truck\n62943,bird\n62944,frog\n62945,deer\n62946,ship\n62947,frog\n62948,truck\n62949,horse\n62950,deer\n62951,frog\n62952,airplane\n62953,bird\n62954,bird\n62955,horse\n62956,bird\n62957,cat\n62958,dog\n62959,frog\n62960,frog\n62961,cat\n62962,airplane\n62963,deer\n62964,deer\n62965,cat\n62966,airplane\n62967,cat\n62968,horse\n62969,dog\n62970,dog\n62971,automobile\n62972,dog\n62973,dog\n62974,truck\n62975,automobile\n62976,truck\n62977,frog\n62978,airplane\n62979,frog\n62980,airplane\n62981,horse\n62982,deer\n62983,cat\n62984,truck\n62985,airplane\n62986,cat\n62987,truck\n62988,ship\n62989,ship\n62990,dog\n62991,ship\n62992,airplane\n62993,bird\n62994,automobile\n62995,automobile\n62996,automobile\n62997,horse\n62998,bird\n62999,frog\n63000,ship\n63001,ship\n63002,bird\n63003,bird\n63004,frog\n63005,airplane\n63006,cat\n63007,frog\n63008,automobile\n63009,dog\n63010,dog\n63011,frog\n63012,cat\n63013,airplane\n63014,airplane\n63015,truck\n63016,frog\n63017,dog\n63018,deer\n63019,dog\n63020,ship\n63021,ship\n63022,ship\n63023,deer\n63024,cat\n63025,airplane\n63026,horse\n63027,deer\n63028,automobile\n63029,automobile\n63030,deer\n63031,ship\n63032,truck\n63033,automobile\n63034,dog\n63035,deer\n63036,truck\n63037,cat\n63038,cat\n63039,truck\n63040,airplane\n63041,dog\n63042,truck\n63043,automobile\n63044,automobile\n63045,frog\n63046,ship\n63047,ship\n63048,horse\n63049,horse\n63050,dog\n63051,ship\n63052,airplane\n63053,ship\n63054,dog\n63055,frog\n63056,cat\n63057,deer\n63058,cat\n63059,ship\n63060,deer\n63061,bird\n63062,dog\n63063,ship\n63064,cat\n63065,cat\n63066,horse\n63067,frog\n63068,deer\n63069,truck\n63070,cat\n63071,bird\n63072,dog\n63073,dog\n63074,deer\n63075,airplane\n63076,automobile\n63077,horse\n63078,horse\n63079,cat\n63080,horse\n63081,truck\n63082,dog\n63083,deer\n63084,deer\n63085,cat\n63086,cat\n63087,frog\n63088,truck\n63089,ship\n63090,cat\n63091,cat\n63092,deer\n63093,deer\n63094,truck\n63095,frog\n63096,frog\n63097,horse\n63098,cat\n63099,airplane\n63100,bird\n63101,automobile\n63102,airplane\n63103,frog\n63104,truck\n63105,ship\n63106,frog\n63107,cat\n63108,frog\n63109,bird\n63110,frog\n63111,bird\n63112,frog\n63113,frog\n63114,deer\n63115,ship\n63116,cat\n63117,dog\n63118,deer\n63119,bird\n63120,cat\n63121,deer\n63122,cat\n63123,truck\n63124,truck\n63125,truck\n63126,ship\n63127,ship\n63128,truck\n63129,dog\n63130,dog\n63131,frog\n63132,cat\n63133,cat\n63134,cat\n63135,cat\n63136,truck\n63137,frog\n63138,deer\n63139,horse\n63140,horse\n63141,dog\n63142,ship\n63143,cat\n63144,dog\n63145,automobile\n63146,truck\n63147,horse\n63148,dog\n63149,deer\n63150,frog\n63151,frog\n63152,truck\n63153,dog\n63154,bird\n63155,bird\n63156,frog\n63157,dog\n63158,automobile\n63159,deer\n63160,dog\n63161,dog\n63162,cat\n63163,deer\n63164,deer\n63165,bird\n63166,deer\n63167,ship\n63168,deer\n63169,dog\n63170,horse\n63171,deer\n63172,horse\n63173,truck\n63174,horse\n63175,deer\n63176,cat\n63177,airplane\n63178,truck\n63179,horse\n63180,deer\n63181,horse\n63182,frog\n63183,cat\n63184,horse\n63185,deer\n63186,dog\n63187,truck\n63188,cat\n63189,cat\n63190,horse\n63191,frog\n63192,truck\n63193,airplane\n63194,frog\n63195,frog\n63196,deer\n63197,dog\n63198,airplane\n63199,dog\n63200,horse\n63201,cat\n63202,truck\n63203,dog\n63204,dog\n63205,bird\n63206,cat\n63207,automobile\n63208,dog\n63209,airplane\n63210,frog\n63211,deer\n63212,frog\n63213,truck\n63214,horse\n63215,cat\n63216,dog\n63217,frog\n63218,cat\n63219,cat\n63220,truck\n63221,cat\n63222,airplane\n63223,airplane\n63224,truck\n63225,automobile\n63226,truck\n63227,dog\n63228,dog\n63229,dog\n63230,deer\n63231,dog\n63232,deer\n63233,deer\n63234,deer\n63235,airplane\n63236,airplane\n63237,frog\n63238,dog\n63239,automobile\n63240,cat\n63241,dog\n63242,truck\n63243,horse\n63244,cat\n63245,truck\n63246,cat\n63247,ship\n63248,truck\n63249,deer\n63250,horse\n63251,frog\n63252,bird\n63253,truck\n63254,truck\n63255,dog\n63256,dog\n63257,horse\n63258,cat\n63259,cat\n63260,cat\n63261,ship\n63262,frog\n63263,frog\n63264,bird\n63265,horse\n63266,ship\n63267,truck\n63268,ship\n63269,deer\n63270,ship\n63271,ship\n63272,bird\n63273,truck\n63274,cat\n63275,horse\n63276,frog\n63277,dog\n63278,cat\n63279,airplane\n63280,deer\n63281,cat\n63282,cat\n63283,airplane\n63284,cat\n63285,frog\n63286,horse\n63287,deer\n63288,deer\n63289,airplane\n63290,truck\n63291,cat\n63292,cat\n63293,ship\n63294,ship\n63295,cat\n63296,cat\n63297,horse\n63298,ship\n63299,frog\n63300,airplane\n63301,automobile\n63302,horse\n63303,horse\n63304,truck\n63305,airplane\n63306,deer\n63307,frog\n63308,automobile\n63309,truck\n63310,frog\n63311,truck\n63312,deer\n63313,deer\n63314,deer\n63315,deer\n63316,truck\n63317,frog\n63318,dog\n63319,deer\n63320,airplane\n63321,deer\n63322,cat\n63323,horse\n63324,truck\n63325,cat\n63326,horse\n63327,dog\n63328,ship\n63329,truck\n63330,dog\n63331,frog\n63332,cat\n63333,deer\n63334,truck\n63335,deer\n63336,frog\n63337,dog\n63338,horse\n63339,horse\n63340,bird\n63341,deer\n63342,frog\n63343,horse\n63344,automobile\n63345,cat\n63346,ship\n63347,deer\n63348,truck\n63349,frog\n63350,cat\n63351,truck\n63352,deer\n63353,deer\n63354,frog\n63355,dog\n63356,dog\n63357,truck\n63358,dog\n63359,cat\n63360,frog\n63361,cat\n63362,airplane\n63363,airplane\n63364,cat\n63365,bird\n63366,dog\n63367,cat\n63368,horse\n63369,airplane\n63370,airplane\n63371,dog\n63372,truck\n63373,frog\n63374,cat\n63375,truck\n63376,frog\n63377,cat\n63378,frog\n63379,truck\n63380,dog\n63381,automobile\n63382,deer\n63383,bird\n63384,airplane\n63385,ship\n63386,horse\n63387,ship\n63388,deer\n63389,bird\n63390,frog\n63391,deer\n63392,dog\n63393,cat\n63394,deer\n63395,truck\n63396,deer\n63397,automobile\n63398,ship\n63399,dog\n63400,automobile\n63401,ship\n63402,horse\n63403,cat\n63404,frog\n63405,deer\n63406,ship\n63407,cat\n63408,automobile\n63409,truck\n63410,cat\n63411,cat\n63412,truck\n63413,cat\n63414,airplane\n63415,deer\n63416,horse\n63417,dog\n63418,frog\n63419,ship\n63420,horse\n63421,automobile\n63422,truck\n63423,dog\n63424,ship\n63425,bird\n63426,dog\n63427,bird\n63428,airplane\n63429,cat\n63430,ship\n63431,frog\n63432,airplane\n63433,dog\n63434,dog\n63435,deer\n63436,horse\n63437,frog\n63438,frog\n63439,dog\n63440,truck\n63441,truck\n63442,deer\n63443,frog\n63444,automobile\n63445,horse\n63446,horse\n63447,ship\n63448,horse\n63449,automobile\n63450,frog\n63451,airplane\n63452,cat\n63453,cat\n63454,cat\n63455,horse\n63456,frog\n63457,airplane\n63458,ship\n63459,truck\n63460,automobile\n63461,ship\n63462,deer\n63463,automobile\n63464,frog\n63465,cat\n63466,bird\n63467,airplane\n63468,ship\n63469,deer\n63470,dog\n63471,deer\n63472,airplane\n63473,bird\n63474,airplane\n63475,dog\n63476,dog\n63477,dog\n63478,dog\n63479,horse\n63480,dog\n63481,deer\n63482,deer\n63483,horse\n63484,ship\n63485,truck\n63486,horse\n63487,bird\n63488,horse\n63489,frog\n63490,ship\n63491,frog\n63492,airplane\n63493,deer\n63494,cat\n63495,deer\n63496,bird\n63497,airplane\n63498,ship\n63499,horse\n63500,automobile\n63501,horse\n63502,automobile\n63503,frog\n63504,cat\n63505,airplane\n63506,deer\n63507,airplane\n63508,deer\n63509,airplane\n63510,horse\n63511,frog\n63512,airplane\n63513,truck\n63514,cat\n63515,dog\n63516,airplane\n63517,frog\n63518,bird\n63519,dog\n63520,bird\n63521,dog\n63522,frog\n63523,bird\n63524,dog\n63525,frog\n63526,truck\n63527,truck\n63528,bird\n63529,dog\n63530,dog\n63531,automobile\n63532,deer\n63533,deer\n63534,cat\n63535,deer\n63536,dog\n63537,deer\n63538,cat\n63539,automobile\n63540,cat\n63541,ship\n63542,frog\n63543,bird\n63544,cat\n63545,cat\n63546,bird\n63547,ship\n63548,truck\n63549,dog\n63550,dog\n63551,automobile\n63552,frog\n63553,frog\n63554,dog\n63555,cat\n63556,frog\n63557,frog\n63558,ship\n63559,bird\n63560,ship\n63561,cat\n63562,truck\n63563,bird\n63564,bird\n63565,deer\n63566,dog\n63567,deer\n63568,frog\n63569,ship\n63570,deer\n63571,ship\n63572,ship\n63573,truck\n63574,deer\n63575,airplane\n63576,ship\n63577,horse\n63578,bird\n63579,cat\n63580,dog\n63581,automobile\n63582,ship\n63583,deer\n63584,truck\n63585,dog\n63586,deer\n63587,ship\n63588,cat\n63589,truck\n63590,automobile\n63591,deer\n63592,horse\n63593,dog\n63594,deer\n63595,bird\n63596,deer\n63597,deer\n63598,frog\n63599,dog\n63600,truck\n63601,bird\n63602,dog\n63603,ship\n63604,frog\n63605,dog\n63606,cat\n63607,dog\n63608,airplane\n63609,ship\n63610,frog\n63611,truck\n63612,bird\n63613,cat\n63614,cat\n63615,frog\n63616,automobile\n63617,horse\n63618,horse\n63619,bird\n63620,bird\n63621,ship\n63622,bird\n63623,ship\n63624,horse\n63625,cat\n63626,deer\n63627,deer\n63628,deer\n63629,deer\n63630,frog\n63631,bird\n63632,cat\n63633,horse\n63634,frog\n63635,cat\n63636,bird\n63637,dog\n63638,frog\n63639,dog\n63640,cat\n63641,cat\n63642,horse\n63643,truck\n63644,deer\n63645,deer\n63646,cat\n63647,automobile\n63648,horse\n63649,airplane\n63650,ship\n63651,dog\n63652,bird\n63653,truck\n63654,airplane\n63655,truck\n63656,cat\n63657,airplane\n63658,ship\n63659,cat\n63660,ship\n63661,airplane\n63662,deer\n63663,dog\n63664,ship\n63665,cat\n63666,truck\n63667,frog\n63668,frog\n63669,dog\n63670,truck\n63671,dog\n63672,horse\n63673,dog\n63674,cat\n63675,frog\n63676,bird\n63677,truck\n63678,deer\n63679,frog\n63680,bird\n63681,horse\n63682,horse\n63683,deer\n63684,dog\n63685,dog\n63686,deer\n63687,airplane\n63688,cat\n63689,airplane\n63690,automobile\n63691,cat\n63692,horse\n63693,horse\n63694,horse\n63695,truck\n63696,automobile\n63697,frog\n63698,cat\n63699,horse\n63700,automobile\n63701,automobile\n63702,cat\n63703,truck\n63704,truck\n63705,deer\n63706,automobile\n63707,horse\n63708,frog\n63709,dog\n63710,deer\n63711,dog\n63712,airplane\n63713,horse\n63714,airplane\n63715,bird\n63716,dog\n63717,dog\n63718,frog\n63719,bird\n63720,ship\n63721,dog\n63722,dog\n63723,horse\n63724,deer\n63725,deer\n63726,cat\n63727,frog\n63728,deer\n63729,deer\n63730,dog\n63731,truck\n63732,horse\n63733,cat\n63734,bird\n63735,automobile\n63736,dog\n63737,horse\n63738,airplane\n63739,truck\n63740,truck\n63741,horse\n63742,cat\n63743,frog\n63744,airplane\n63745,bird\n63746,dog\n63747,dog\n63748,ship\n63749,airplane\n63750,cat\n63751,automobile\n63752,truck\n63753,ship\n63754,airplane\n63755,cat\n63756,dog\n63757,airplane\n63758,airplane\n63759,cat\n63760,cat\n63761,frog\n63762,cat\n63763,truck\n63764,bird\n63765,dog\n63766,deer\n63767,truck\n63768,airplane\n63769,bird\n63770,horse\n63771,cat\n63772,cat\n63773,deer\n63774,ship\n63775,dog\n63776,deer\n63777,airplane\n63778,horse\n63779,ship\n63780,airplane\n63781,cat\n63782,airplane\n63783,airplane\n63784,frog\n63785,frog\n63786,cat\n63787,cat\n63788,deer\n63789,horse\n63790,bird\n63791,ship\n63792,horse\n63793,airplane\n63794,cat\n63795,dog\n63796,airplane\n63797,dog\n63798,deer\n63799,horse\n63800,airplane\n63801,ship\n63802,cat\n63803,dog\n63804,dog\n63805,truck\n63806,deer\n63807,dog\n63808,frog\n63809,dog\n63810,frog\n63811,dog\n63812,dog\n63813,horse\n63814,cat\n63815,truck\n63816,automobile\n63817,cat\n63818,airplane\n63819,ship\n63820,cat\n63821,automobile\n63822,dog\n63823,ship\n63824,frog\n63825,automobile\n63826,horse\n63827,deer\n63828,truck\n63829,ship\n63830,frog\n63831,bird\n63832,horse\n63833,dog\n63834,ship\n63835,cat\n63836,cat\n63837,truck\n63838,deer\n63839,truck\n63840,deer\n63841,automobile\n63842,ship\n63843,bird\n63844,dog\n63845,cat\n63846,dog\n63847,dog\n63848,airplane\n63849,deer\n63850,automobile\n63851,truck\n63852,dog\n63853,frog\n63854,airplane\n63855,deer\n63856,horse\n63857,deer\n63858,frog\n63859,automobile\n63860,airplane\n63861,cat\n63862,ship\n63863,deer\n63864,bird\n63865,airplane\n63866,dog\n63867,frog\n63868,horse\n63869,cat\n63870,deer\n63871,deer\n63872,bird\n63873,dog\n63874,frog\n63875,airplane\n63876,dog\n63877,deer\n63878,cat\n63879,horse\n63880,horse\n63881,frog\n63882,deer\n63883,cat\n63884,deer\n63885,dog\n63886,bird\n63887,deer\n63888,cat\n63889,ship\n63890,deer\n63891,horse\n63892,dog\n63893,airplane\n63894,cat\n63895,deer\n63896,horse\n63897,bird\n63898,bird\n63899,deer\n63900,cat\n63901,automobile\n63902,ship\n63903,airplane\n63904,frog\n63905,dog\n63906,frog\n63907,dog\n63908,ship\n63909,bird\n63910,frog\n63911,truck\n63912,horse\n63913,frog\n63914,automobile\n63915,dog\n63916,deer\n63917,truck\n63918,truck\n63919,dog\n63920,automobile\n63921,deer\n63922,truck\n63923,dog\n63924,bird\n63925,horse\n63926,cat\n63927,automobile\n63928,truck\n63929,truck\n63930,frog\n63931,horse\n63932,bird\n63933,deer\n63934,airplane\n63935,frog\n63936,airplane\n63937,truck\n63938,bird\n63939,frog\n63940,ship\n63941,frog\n63942,automobile\n63943,deer\n63944,truck\n63945,frog\n63946,dog\n63947,deer\n63948,ship\n63949,deer\n63950,frog\n63951,automobile\n63952,ship\n63953,airplane\n63954,cat\n63955,horse\n63956,dog\n63957,frog\n63958,horse\n63959,frog\n63960,ship\n63961,cat\n63962,truck\n63963,deer\n63964,frog\n63965,dog\n63966,deer\n63967,horse\n63968,truck\n63969,dog\n63970,deer\n63971,cat\n63972,ship\n63973,horse\n63974,dog\n63975,bird\n63976,cat\n63977,horse\n63978,frog\n63979,deer\n63980,deer\n63981,airplane\n63982,ship\n63983,deer\n63984,automobile\n63985,cat\n63986,cat\n63987,ship\n63988,dog\n63989,cat\n63990,cat\n63991,airplane\n63992,dog\n63993,horse\n63994,truck\n63995,frog\n63996,cat\n63997,frog\n63998,deer\n63999,cat\n64000,cat\n64001,bird\n64002,cat\n64003,dog\n64004,bird\n64005,truck\n64006,deer\n64007,frog\n64008,frog\n64009,horse\n64010,truck\n64011,cat\n64012,airplane\n64013,frog\n64014,ship\n64015,airplane\n64016,deer\n64017,cat\n64018,airplane\n64019,cat\n64020,dog\n64021,cat\n64022,bird\n64023,horse\n64024,deer\n64025,dog\n64026,bird\n64027,frog\n64028,airplane\n64029,ship\n64030,truck\n64031,ship\n64032,dog\n64033,frog\n64034,dog\n64035,automobile\n64036,dog\n64037,horse\n64038,bird\n64039,dog\n64040,dog\n64041,cat\n64042,horse\n64043,deer\n64044,bird\n64045,bird\n64046,deer\n64047,cat\n64048,frog\n64049,deer\n64050,bird\n64051,truck\n64052,dog\n64053,horse\n64054,truck\n64055,deer\n64056,horse\n64057,automobile\n64058,frog\n64059,automobile\n64060,dog\n64061,cat\n64062,horse\n64063,deer\n64064,truck\n64065,dog\n64066,frog\n64067,cat\n64068,deer\n64069,horse\n64070,dog\n64071,deer\n64072,truck\n64073,dog\n64074,cat\n64075,truck\n64076,deer\n64077,horse\n64078,frog\n64079,ship\n64080,frog\n64081,deer\n64082,automobile\n64083,horse\n64084,truck\n64085,frog\n64086,airplane\n64087,ship\n64088,frog\n64089,deer\n64090,frog\n64091,cat\n64092,deer\n64093,truck\n64094,airplane\n64095,deer\n64096,bird\n64097,dog\n64098,cat\n64099,dog\n64100,cat\n64101,frog\n64102,horse\n64103,deer\n64104,bird\n64105,dog\n64106,dog\n64107,horse\n64108,frog\n64109,deer\n64110,frog\n64111,truck\n64112,ship\n64113,frog\n64114,automobile\n64115,deer\n64116,truck\n64117,cat\n64118,deer\n64119,automobile\n64120,frog\n64121,airplane\n64122,automobile\n64123,horse\n64124,frog\n64125,cat\n64126,airplane\n64127,airplane\n64128,bird\n64129,dog\n64130,dog\n64131,truck\n64132,truck\n64133,frog\n64134,automobile\n64135,dog\n64136,deer\n64137,truck\n64138,truck\n64139,frog\n64140,cat\n64141,frog\n64142,horse\n64143,dog\n64144,cat\n64145,cat\n64146,automobile\n64147,deer\n64148,automobile\n64149,deer\n64150,frog\n64151,bird\n64152,dog\n64153,truck\n64154,horse\n64155,dog\n64156,frog\n64157,airplane\n64158,cat\n64159,dog\n64160,truck\n64161,cat\n64162,deer\n64163,bird\n64164,frog\n64165,automobile\n64166,automobile\n64167,truck\n64168,airplane\n64169,ship\n64170,deer\n64171,deer\n64172,airplane\n64173,horse\n64174,cat\n64175,bird\n64176,bird\n64177,cat\n64178,ship\n64179,airplane\n64180,dog\n64181,cat\n64182,cat\n64183,dog\n64184,dog\n64185,ship\n64186,truck\n64187,ship\n64188,ship\n64189,ship\n64190,deer\n64191,frog\n64192,dog\n64193,horse\n64194,ship\n64195,horse\n64196,deer\n64197,bird\n64198,frog\n64199,airplane\n64200,deer\n64201,ship\n64202,cat\n64203,cat\n64204,bird\n64205,deer\n64206,automobile\n64207,truck\n64208,frog\n64209,cat\n64210,truck\n64211,airplane\n64212,airplane\n64213,horse\n64214,truck\n64215,ship\n64216,airplane\n64217,horse\n64218,deer\n64219,airplane\n64220,cat\n64221,deer\n64222,dog\n64223,airplane\n64224,cat\n64225,airplane\n64226,airplane\n64227,cat\n64228,truck\n64229,truck\n64230,dog\n64231,ship\n64232,frog\n64233,deer\n64234,airplane\n64235,frog\n64236,airplane\n64237,deer\n64238,bird\n64239,dog\n64240,cat\n64241,frog\n64242,dog\n64243,truck\n64244,dog\n64245,deer\n64246,dog\n64247,ship\n64248,airplane\n64249,frog\n64250,cat\n64251,frog\n64252,frog\n64253,horse\n64254,truck\n64255,airplane\n64256,deer\n64257,bird\n64258,dog\n64259,automobile\n64260,automobile\n64261,deer\n64262,frog\n64263,bird\n64264,ship\n64265,ship\n64266,frog\n64267,frog\n64268,horse\n64269,frog\n64270,cat\n64271,ship\n64272,ship\n64273,airplane\n64274,bird\n64275,automobile\n64276,cat\n64277,horse\n64278,dog\n64279,deer\n64280,dog\n64281,frog\n64282,cat\n64283,airplane\n64284,frog\n64285,automobile\n64286,ship\n64287,bird\n64288,bird\n64289,automobile\n64290,cat\n64291,automobile\n64292,deer\n64293,horse\n64294,frog\n64295,horse\n64296,cat\n64297,truck\n64298,dog\n64299,horse\n64300,dog\n64301,automobile\n64302,dog\n64303,cat\n64304,frog\n64305,ship\n64306,ship\n64307,dog\n64308,ship\n64309,cat\n64310,airplane\n64311,dog\n64312,deer\n64313,truck\n64314,horse\n64315,cat\n64316,horse\n64317,bird\n64318,horse\n64319,deer\n64320,bird\n64321,automobile\n64322,deer\n64323,cat\n64324,dog\n64325,ship\n64326,frog\n64327,dog\n64328,dog\n64329,deer\n64330,horse\n64331,cat\n64332,truck\n64333,ship\n64334,automobile\n64335,dog\n64336,deer\n64337,cat\n64338,ship\n64339,cat\n64340,cat\n64341,deer\n64342,deer\n64343,automobile\n64344,bird\n64345,airplane\n64346,frog\n64347,cat\n64348,deer\n64349,ship\n64350,bird\n64351,automobile\n64352,deer\n64353,bird\n64354,frog\n64355,frog\n64356,horse\n64357,horse\n64358,bird\n64359,truck\n64360,frog\n64361,truck\n64362,automobile\n64363,dog\n64364,bird\n64365,cat\n64366,frog\n64367,truck\n64368,deer\n64369,cat\n64370,cat\n64371,truck\n64372,cat\n64373,truck\n64374,horse\n64375,truck\n64376,cat\n64377,cat\n64378,truck\n64379,dog\n64380,ship\n64381,bird\n64382,dog\n64383,cat\n64384,truck\n64385,bird\n64386,cat\n64387,bird\n64388,ship\n64389,cat\n64390,cat\n64391,ship\n64392,horse\n64393,frog\n64394,ship\n64395,cat\n64396,airplane\n64397,deer\n64398,frog\n64399,truck\n64400,airplane\n64401,cat\n64402,airplane\n64403,cat\n64404,frog\n64405,automobile\n64406,deer\n64407,cat\n64408,dog\n64409,frog\n64410,ship\n64411,automobile\n64412,cat\n64413,frog\n64414,deer\n64415,frog\n64416,frog\n64417,truck\n64418,truck\n64419,bird\n64420,bird\n64421,deer\n64422,dog\n64423,horse\n64424,cat\n64425,truck\n64426,automobile\n64427,dog\n64428,airplane\n64429,deer\n64430,dog\n64431,airplane\n64432,frog\n64433,deer\n64434,airplane\n64435,bird\n64436,truck\n64437,horse\n64438,horse\n64439,truck\n64440,frog\n64441,cat\n64442,truck\n64443,airplane\n64444,dog\n64445,ship\n64446,horse\n64447,truck\n64448,automobile\n64449,truck\n64450,bird\n64451,frog\n64452,deer\n64453,truck\n64454,cat\n64455,horse\n64456,deer\n64457,ship\n64458,truck\n64459,truck\n64460,frog\n64461,frog\n64462,truck\n64463,ship\n64464,cat\n64465,horse\n64466,ship\n64467,frog\n64468,automobile\n64469,frog\n64470,deer\n64471,automobile\n64472,bird\n64473,cat\n64474,bird\n64475,ship\n64476,frog\n64477,frog\n64478,ship\n64479,airplane\n64480,horse\n64481,automobile\n64482,airplane\n64483,bird\n64484,horse\n64485,frog\n64486,truck\n64487,horse\n64488,deer\n64489,dog\n64490,horse\n64491,frog\n64492,horse\n64493,deer\n64494,ship\n64495,frog\n64496,horse\n64497,dog\n64498,frog\n64499,horse\n64500,automobile\n64501,cat\n64502,deer\n64503,bird\n64504,deer\n64505,automobile\n64506,bird\n64507,airplane\n64508,cat\n64509,truck\n64510,dog\n64511,bird\n64512,automobile\n64513,bird\n64514,dog\n64515,automobile\n64516,dog\n64517,cat\n64518,deer\n64519,automobile\n64520,automobile\n64521,cat\n64522,automobile\n64523,automobile\n64524,deer\n64525,dog\n64526,automobile\n64527,dog\n64528,deer\n64529,frog\n64530,truck\n64531,automobile\n64532,airplane\n64533,bird\n64534,ship\n64535,horse\n64536,truck\n64537,horse\n64538,horse\n64539,frog\n64540,bird\n64541,deer\n64542,deer\n64543,frog\n64544,bird\n64545,dog\n64546,cat\n64547,cat\n64548,dog\n64549,deer\n64550,dog\n64551,ship\n64552,dog\n64553,horse\n64554,frog\n64555,ship\n64556,truck\n64557,dog\n64558,deer\n64559,airplane\n64560,dog\n64561,truck\n64562,ship\n64563,deer\n64564,horse\n64565,bird\n64566,frog\n64567,airplane\n64568,airplane\n64569,frog\n64570,deer\n64571,cat\n64572,ship\n64573,airplane\n64574,cat\n64575,deer\n64576,ship\n64577,dog\n64578,cat\n64579,bird\n64580,frog\n64581,truck\n64582,automobile\n64583,cat\n64584,cat\n64585,horse\n64586,ship\n64587,truck\n64588,horse\n64589,frog\n64590,frog\n64591,airplane\n64592,deer\n64593,horse\n64594,ship\n64595,automobile\n64596,airplane\n64597,deer\n64598,truck\n64599,automobile\n64600,deer\n64601,dog\n64602,airplane\n64603,bird\n64604,horse\n64605,bird\n64606,truck\n64607,deer\n64608,dog\n64609,truck\n64610,ship\n64611,airplane\n64612,frog\n64613,frog\n64614,ship\n64615,truck\n64616,dog\n64617,frog\n64618,bird\n64619,airplane\n64620,deer\n64621,truck\n64622,dog\n64623,truck\n64624,truck\n64625,dog\n64626,horse\n64627,dog\n64628,deer\n64629,dog\n64630,automobile\n64631,dog\n64632,truck\n64633,dog\n64634,truck\n64635,dog\n64636,truck\n64637,ship\n64638,ship\n64639,automobile\n64640,cat\n64641,deer\n64642,airplane\n64643,cat\n64644,cat\n64645,cat\n64646,airplane\n64647,automobile\n64648,airplane\n64649,bird\n64650,truck\n64651,frog\n64652,deer\n64653,bird\n64654,frog\n64655,cat\n64656,bird\n64657,airplane\n64658,bird\n64659,cat\n64660,truck\n64661,frog\n64662,airplane\n64663,truck\n64664,horse\n64665,truck\n64666,cat\n64667,automobile\n64668,deer\n64669,cat\n64670,airplane\n64671,cat\n64672,airplane\n64673,horse\n64674,dog\n64675,dog\n64676,automobile\n64677,ship\n64678,frog\n64679,truck\n64680,truck\n64681,frog\n64682,cat\n64683,truck\n64684,automobile\n64685,frog\n64686,deer\n64687,airplane\n64688,truck\n64689,airplane\n64690,truck\n64691,dog\n64692,dog\n64693,deer\n64694,deer\n64695,deer\n64696,bird\n64697,deer\n64698,automobile\n64699,horse\n64700,dog\n64701,airplane\n64702,cat\n64703,truck\n64704,horse\n64705,cat\n64706,bird\n64707,dog\n64708,cat\n64709,bird\n64710,deer\n64711,cat\n64712,automobile\n64713,truck\n64714,bird\n64715,deer\n64716,automobile\n64717,frog\n64718,airplane\n64719,bird\n64720,frog\n64721,dog\n64722,bird\n64723,ship\n64724,deer\n64725,bird\n64726,cat\n64727,ship\n64728,bird\n64729,frog\n64730,ship\n64731,deer\n64732,dog\n64733,automobile\n64734,bird\n64735,bird\n64736,deer\n64737,deer\n64738,bird\n64739,horse\n64740,ship\n64741,bird\n64742,truck\n64743,frog\n64744,ship\n64745,truck\n64746,automobile\n64747,dog\n64748,truck\n64749,horse\n64750,cat\n64751,dog\n64752,horse\n64753,airplane\n64754,frog\n64755,deer\n64756,truck\n64757,truck\n64758,ship\n64759,frog\n64760,truck\n64761,frog\n64762,truck\n64763,cat\n64764,bird\n64765,frog\n64766,airplane\n64767,automobile\n64768,cat\n64769,ship\n64770,ship\n64771,bird\n64772,cat\n64773,frog\n64774,truck\n64775,deer\n64776,deer\n64777,deer\n64778,deer\n64779,horse\n64780,ship\n64781,bird\n64782,deer\n64783,horse\n64784,bird\n64785,horse\n64786,horse\n64787,horse\n64788,frog\n64789,automobile\n64790,automobile\n64791,frog\n64792,ship\n64793,ship\n64794,airplane\n64795,bird\n64796,airplane\n64797,dog\n64798,deer\n64799,dog\n64800,frog\n64801,deer\n64802,horse\n64803,cat\n64804,airplane\n64805,frog\n64806,airplane\n64807,cat\n64808,frog\n64809,frog\n64810,deer\n64811,deer\n64812,horse\n64813,cat\n64814,truck\n64815,airplane\n64816,airplane\n64817,horse\n64818,truck\n64819,bird\n64820,automobile\n64821,cat\n64822,horse\n64823,horse\n64824,frog\n64825,horse\n64826,cat\n64827,bird\n64828,frog\n64829,dog\n64830,airplane\n64831,bird\n64832,ship\n64833,truck\n64834,ship\n64835,bird\n64836,cat\n64837,frog\n64838,airplane\n64839,bird\n64840,airplane\n64841,cat\n64842,deer\n64843,automobile\n64844,horse\n64845,bird\n64846,deer\n64847,deer\n64848,frog\n64849,cat\n64850,airplane\n64851,horse\n64852,ship\n64853,dog\n64854,airplane\n64855,deer\n64856,horse\n64857,dog\n64858,cat\n64859,cat\n64860,cat\n64861,deer\n64862,deer\n64863,deer\n64864,airplane\n64865,truck\n64866,frog\n64867,deer\n64868,deer\n64869,deer\n64870,airplane\n64871,horse\n64872,ship\n64873,ship\n64874,airplane\n64875,frog\n64876,deer\n64877,cat\n64878,ship\n64879,airplane\n64880,ship\n64881,deer\n64882,cat\n64883,automobile\n64884,frog\n64885,frog\n64886,frog\n64887,dog\n64888,deer\n64889,ship\n64890,bird\n64891,cat\n64892,automobile\n64893,airplane\n64894,cat\n64895,truck\n64896,truck\n64897,airplane\n64898,automobile\n64899,horse\n64900,cat\n64901,airplane\n64902,ship\n64903,dog\n64904,cat\n64905,deer\n64906,deer\n64907,truck\n64908,dog\n64909,ship\n64910,frog\n64911,frog\n64912,dog\n64913,bird\n64914,deer\n64915,frog\n64916,horse\n64917,frog\n64918,bird\n64919,deer\n64920,truck\n64921,cat\n64922,frog\n64923,bird\n64924,airplane\n64925,ship\n64926,deer\n64927,frog\n64928,deer\n64929,bird\n64930,automobile\n64931,frog\n64932,automobile\n64933,automobile\n64934,cat\n64935,ship\n64936,frog\n64937,cat\n64938,frog\n64939,automobile\n64940,truck\n64941,dog\n64942,frog\n64943,truck\n64944,horse\n64945,dog\n64946,ship\n64947,truck\n64948,cat\n64949,cat\n64950,horse\n64951,bird\n64952,cat\n64953,airplane\n64954,frog\n64955,automobile\n64956,frog\n64957,cat\n64958,truck\n64959,frog\n64960,truck\n64961,horse\n64962,cat\n64963,ship\n64964,deer\n64965,truck\n64966,ship\n64967,automobile\n64968,deer\n64969,airplane\n64970,automobile\n64971,deer\n64972,cat\n64973,truck\n64974,horse\n64975,airplane\n64976,dog\n64977,bird\n64978,cat\n64979,bird\n64980,frog\n64981,frog\n64982,horse\n64983,dog\n64984,deer\n64985,bird\n64986,dog\n64987,horse\n64988,airplane\n64989,deer\n64990,frog\n64991,bird\n64992,bird\n64993,automobile\n64994,deer\n64995,airplane\n64996,airplane\n64997,dog\n64998,frog\n64999,deer\n65000,cat\n65001,airplane\n65002,deer\n65003,dog\n65004,bird\n65005,truck\n65006,cat\n65007,dog\n65008,frog\n65009,dog\n65010,automobile\n65011,cat\n65012,ship\n65013,dog\n65014,dog\n65015,cat\n65016,truck\n65017,horse\n65018,airplane\n65019,deer\n65020,bird\n65021,horse\n65022,truck\n65023,bird\n65024,horse\n65025,airplane\n65026,ship\n65027,airplane\n65028,frog\n65029,airplane\n65030,deer\n65031,frog\n65032,frog\n65033,airplane\n65034,frog\n65035,truck\n65036,automobile\n65037,horse\n65038,cat\n65039,truck\n65040,frog\n65041,truck\n65042,cat\n65043,cat\n65044,deer\n65045,cat\n65046,automobile\n65047,truck\n65048,automobile\n65049,cat\n65050,deer\n65051,cat\n65052,deer\n65053,horse\n65054,automobile\n65055,frog\n65056,horse\n65057,deer\n65058,ship\n65059,dog\n65060,ship\n65061,automobile\n65062,bird\n65063,airplane\n65064,frog\n65065,ship\n65066,dog\n65067,dog\n65068,cat\n65069,truck\n65070,deer\n65071,horse\n65072,airplane\n65073,bird\n65074,bird\n65075,deer\n65076,cat\n65077,dog\n65078,deer\n65079,frog\n65080,dog\n65081,airplane\n65082,deer\n65083,frog\n65084,truck\n65085,frog\n65086,frog\n65087,horse\n65088,truck\n65089,ship\n65090,ship\n65091,bird\n65092,dog\n65093,deer\n65094,automobile\n65095,truck\n65096,horse\n65097,bird\n65098,frog\n65099,truck\n65100,truck\n65101,horse\n65102,cat\n65103,truck\n65104,airplane\n65105,airplane\n65106,bird\n65107,deer\n65108,automobile\n65109,deer\n65110,airplane\n65111,airplane\n65112,bird\n65113,deer\n65114,ship\n65115,dog\n65116,automobile\n65117,horse\n65118,truck\n65119,bird\n65120,airplane\n65121,airplane\n65122,bird\n65123,automobile\n65124,automobile\n65125,cat\n65126,bird\n65127,bird\n65128,frog\n65129,truck\n65130,truck\n65131,frog\n65132,cat\n65133,dog\n65134,cat\n65135,automobile\n65136,cat\n65137,airplane\n65138,horse\n65139,ship\n65140,truck\n65141,airplane\n65142,automobile\n65143,automobile\n65144,horse\n65145,deer\n65146,truck\n65147,automobile\n65148,frog\n65149,cat\n65150,airplane\n65151,automobile\n65152,frog\n65153,truck\n65154,bird\n65155,deer\n65156,bird\n65157,frog\n65158,deer\n65159,deer\n65160,airplane\n65161,truck\n65162,frog\n65163,ship\n65164,ship\n65165,airplane\n65166,cat\n65167,frog\n65168,horse\n65169,deer\n65170,cat\n65171,airplane\n65172,frog\n65173,dog\n65174,truck\n65175,bird\n65176,cat\n65177,horse\n65178,ship\n65179,dog\n65180,frog\n65181,deer\n65182,automobile\n65183,frog\n65184,airplane\n65185,automobile\n65186,truck\n65187,dog\n65188,bird\n65189,frog\n65190,deer\n65191,dog\n65192,bird\n65193,deer\n65194,automobile\n65195,cat\n65196,ship\n65197,dog\n65198,dog\n65199,deer\n65200,dog\n65201,automobile\n65202,horse\n65203,deer\n65204,frog\n65205,frog\n65206,cat\n65207,bird\n65208,dog\n65209,automobile\n65210,cat\n65211,cat\n65212,horse\n65213,cat\n65214,horse\n65215,automobile\n65216,cat\n65217,frog\n65218,dog\n65219,automobile\n65220,airplane\n65221,dog\n65222,deer\n65223,automobile\n65224,frog\n65225,cat\n65226,airplane\n65227,cat\n65228,automobile\n65229,horse\n65230,ship\n65231,airplane\n65232,deer\n65233,dog\n65234,frog\n65235,airplane\n65236,dog\n65237,deer\n65238,bird\n65239,dog\n65240,cat\n65241,cat\n65242,frog\n65243,deer\n65244,horse\n65245,ship\n65246,dog\n65247,bird\n65248,truck\n65249,automobile\n65250,frog\n65251,truck\n65252,deer\n65253,cat\n65254,horse\n65255,deer\n65256,deer\n65257,cat\n65258,deer\n65259,ship\n65260,horse\n65261,airplane\n65262,horse\n65263,dog\n65264,bird\n65265,deer\n65266,deer\n65267,ship\n65268,automobile\n65269,horse\n65270,horse\n65271,deer\n65272,airplane\n65273,deer\n65274,dog\n65275,bird\n65276,cat\n65277,bird\n65278,dog\n65279,airplane\n65280,horse\n65281,frog\n65282,bird\n65283,dog\n65284,airplane\n65285,deer\n65286,horse\n65287,airplane\n65288,dog\n65289,bird\n65290,frog\n65291,automobile\n65292,dog\n65293,deer\n65294,cat\n65295,cat\n65296,airplane\n65297,truck\n65298,airplane\n65299,ship\n65300,horse\n65301,airplane\n65302,dog\n65303,cat\n65304,truck\n65305,truck\n65306,bird\n65307,truck\n65308,horse\n65309,frog\n65310,ship\n65311,horse\n65312,frog\n65313,frog\n65314,horse\n65315,cat\n65316,automobile\n65317,truck\n65318,deer\n65319,cat\n65320,frog\n65321,horse\n65322,ship\n65323,truck\n65324,dog\n65325,ship\n65326,cat\n65327,dog\n65328,truck\n65329,automobile\n65330,cat\n65331,bird\n65332,automobile\n65333,automobile\n65334,deer\n65335,bird\n65336,dog\n65337,cat\n65338,cat\n65339,automobile\n65340,airplane\n65341,horse\n65342,dog\n65343,bird\n65344,horse\n65345,automobile\n65346,airplane\n65347,ship\n65348,airplane\n65349,deer\n65350,cat\n65351,horse\n65352,frog\n65353,dog\n65354,frog\n65355,cat\n65356,truck\n65357,frog\n65358,cat\n65359,bird\n65360,cat\n65361,horse\n65362,cat\n65363,dog\n65364,truck\n65365,frog\n65366,frog\n65367,truck\n65368,cat\n65369,bird\n65370,dog\n65371,airplane\n65372,dog\n65373,cat\n65374,horse\n65375,truck\n65376,automobile\n65377,airplane\n65378,dog\n65379,cat\n65380,horse\n65381,frog\n65382,dog\n65383,dog\n65384,cat\n65385,horse\n65386,frog\n65387,cat\n65388,ship\n65389,automobile\n65390,automobile\n65391,deer\n65392,bird\n65393,cat\n65394,horse\n65395,deer\n65396,deer\n65397,frog\n65398,dog\n65399,deer\n65400,ship\n65401,deer\n65402,ship\n65403,deer\n65404,bird\n65405,truck\n65406,airplane\n65407,automobile\n65408,frog\n65409,bird\n65410,bird\n65411,truck\n65412,deer\n65413,airplane\n65414,horse\n65415,deer\n65416,automobile\n65417,cat\n65418,automobile\n65419,truck\n65420,airplane\n65421,cat\n65422,dog\n65423,cat\n65424,airplane\n65425,truck\n65426,cat\n65427,ship\n65428,cat\n65429,horse\n65430,truck\n65431,automobile\n65432,dog\n65433,bird\n65434,bird\n65435,truck\n65436,truck\n65437,truck\n65438,airplane\n65439,bird\n65440,automobile\n65441,cat\n65442,deer\n65443,automobile\n65444,automobile\n65445,deer\n65446,cat\n65447,horse\n65448,cat\n65449,ship\n65450,frog\n65451,truck\n65452,cat\n65453,frog\n65454,airplane\n65455,deer\n65456,ship\n65457,horse\n65458,ship\n65459,frog\n65460,horse\n65461,truck\n65462,truck\n65463,ship\n65464,deer\n65465,ship\n65466,ship\n65467,frog\n65468,bird\n65469,frog\n65470,dog\n65471,horse\n65472,bird\n65473,frog\n65474,dog\n65475,horse\n65476,frog\n65477,airplane\n65478,ship\n65479,airplane\n65480,dog\n65481,deer\n65482,cat\n65483,frog\n65484,automobile\n65485,cat\n65486,automobile\n65487,automobile\n65488,dog\n65489,cat\n65490,ship\n65491,deer\n65492,deer\n65493,frog\n65494,airplane\n65495,truck\n65496,horse\n65497,ship\n65498,bird\n65499,cat\n65500,deer\n65501,ship\n65502,automobile\n65503,airplane\n65504,frog\n65505,truck\n65506,frog\n65507,horse\n65508,automobile\n65509,deer\n65510,cat\n65511,horse\n65512,deer\n65513,airplane\n65514,horse\n65515,airplane\n65516,horse\n65517,truck\n65518,deer\n65519,truck\n65520,bird\n65521,ship\n65522,ship\n65523,ship\n65524,frog\n65525,deer\n65526,ship\n65527,bird\n65528,deer\n65529,automobile\n65530,airplane\n65531,ship\n65532,horse\n65533,automobile\n65534,horse\n65535,bird\n65536,ship\n65537,automobile\n65538,deer\n65539,dog\n65540,bird\n65541,airplane\n65542,truck\n65543,truck\n65544,deer\n65545,airplane\n65546,deer\n65547,bird\n65548,ship\n65549,ship\n65550,frog\n65551,cat\n65552,dog\n65553,airplane\n65554,cat\n65555,truck\n65556,dog\n65557,bird\n65558,deer\n65559,bird\n65560,horse\n65561,horse\n65562,airplane\n65563,deer\n65564,airplane\n65565,airplane\n65566,automobile\n65567,horse\n65568,deer\n65569,cat\n65570,automobile\n65571,truck\n65572,ship\n65573,deer\n65574,airplane\n65575,cat\n65576,automobile\n65577,frog\n65578,deer\n65579,deer\n65580,dog\n65581,bird\n65582,automobile\n65583,frog\n65584,deer\n65585,truck\n65586,deer\n65587,horse\n65588,automobile\n65589,cat\n65590,bird\n65591,truck\n65592,deer\n65593,deer\n65594,bird\n65595,truck\n65596,dog\n65597,deer\n65598,deer\n65599,deer\n65600,deer\n65601,bird\n65602,frog\n65603,ship\n65604,ship\n65605,deer\n65606,horse\n65607,airplane\n65608,cat\n65609,frog\n65610,dog\n65611,deer\n65612,airplane\n65613,airplane\n65614,bird\n65615,horse\n65616,dog\n65617,cat\n65618,horse\n65619,automobile\n65620,airplane\n65621,cat\n65622,airplane\n65623,dog\n65624,deer\n65625,cat\n65626,airplane\n65627,automobile\n65628,automobile\n65629,ship\n65630,horse\n65631,cat\n65632,automobile\n65633,horse\n65634,cat\n65635,ship\n65636,automobile\n65637,cat\n65638,cat\n65639,deer\n65640,airplane\n65641,bird\n65642,frog\n65643,frog\n65644,airplane\n65645,frog\n65646,deer\n65647,bird\n65648,frog\n65649,cat\n65650,deer\n65651,airplane\n65652,automobile\n65653,automobile\n65654,horse\n65655,truck\n65656,cat\n65657,frog\n65658,horse\n65659,airplane\n65660,ship\n65661,truck\n65662,ship\n65663,cat\n65664,dog\n65665,bird\n65666,dog\n65667,truck\n65668,automobile\n65669,deer\n65670,cat\n65671,bird\n65672,airplane\n65673,cat\n65674,deer\n65675,dog\n65676,automobile\n65677,airplane\n65678,horse\n65679,airplane\n65680,horse\n65681,truck\n65682,cat\n65683,truck\n65684,cat\n65685,automobile\n65686,truck\n65687,automobile\n65688,deer\n65689,frog\n65690,horse\n65691,horse\n65692,cat\n65693,ship\n65694,frog\n65695,deer\n65696,bird\n65697,bird\n65698,deer\n65699,horse\n65700,horse\n65701,horse\n65702,airplane\n65703,horse\n65704,truck\n65705,ship\n65706,automobile\n65707,airplane\n65708,truck\n65709,frog\n65710,cat\n65711,dog\n65712,ship\n65713,deer\n65714,airplane\n65715,deer\n65716,truck\n65717,cat\n65718,frog\n65719,cat\n65720,cat\n65721,automobile\n65722,deer\n65723,frog\n65724,ship\n65725,automobile\n65726,automobile\n65727,horse\n65728,frog\n65729,deer\n65730,bird\n65731,truck\n65732,dog\n65733,airplane\n65734,deer\n65735,automobile\n65736,horse\n65737,automobile\n65738,dog\n65739,deer\n65740,automobile\n65741,ship\n65742,airplane\n65743,cat\n65744,airplane\n65745,horse\n65746,bird\n65747,deer\n65748,ship\n65749,deer\n65750,dog\n65751,deer\n65752,bird\n65753,bird\n65754,dog\n65755,bird\n65756,frog\n65757,dog\n65758,horse\n65759,automobile\n65760,ship\n65761,bird\n65762,horse\n65763,dog\n65764,cat\n65765,dog\n65766,bird\n65767,bird\n65768,bird\n65769,airplane\n65770,frog\n65771,deer\n65772,bird\n65773,automobile\n65774,deer\n65775,frog\n65776,automobile\n65777,automobile\n65778,cat\n65779,truck\n65780,deer\n65781,cat\n65782,horse\n65783,deer\n65784,truck\n65785,cat\n65786,truck\n65787,dog\n65788,truck\n65789,truck\n65790,airplane\n65791,automobile\n65792,dog\n65793,frog\n65794,dog\n65795,bird\n65796,automobile\n65797,bird\n65798,automobile\n65799,deer\n65800,airplane\n65801,bird\n65802,cat\n65803,cat\n65804,horse\n65805,cat\n65806,cat\n65807,cat\n65808,automobile\n65809,horse\n65810,truck\n65811,deer\n65812,ship\n65813,ship\n65814,ship\n65815,cat\n65816,deer\n65817,bird\n65818,bird\n65819,automobile\n65820,truck\n65821,truck\n65822,bird\n65823,airplane\n65824,cat\n65825,dog\n65826,dog\n65827,deer\n65828,truck\n65829,horse\n65830,automobile\n65831,dog\n65832,horse\n65833,ship\n65834,ship\n65835,deer\n65836,deer\n65837,bird\n65838,frog\n65839,ship\n65840,cat\n65841,cat\n65842,automobile\n65843,deer\n65844,bird\n65845,dog\n65846,truck\n65847,truck\n65848,ship\n65849,deer\n65850,deer\n65851,deer\n65852,deer\n65853,cat\n65854,frog\n65855,frog\n65856,ship\n65857,horse\n65858,ship\n65859,cat\n65860,bird\n65861,truck\n65862,ship\n65863,truck\n65864,truck\n65865,deer\n65866,deer\n65867,ship\n65868,horse\n65869,cat\n65870,cat\n65871,airplane\n65872,ship\n65873,truck\n65874,frog\n65875,truck\n65876,frog\n65877,truck\n65878,horse\n65879,truck\n65880,ship\n65881,dog\n65882,dog\n65883,airplane\n65884,cat\n65885,cat\n65886,deer\n65887,dog\n65888,horse\n65889,deer\n65890,airplane\n65891,frog\n65892,horse\n65893,airplane\n65894,truck\n65895,truck\n65896,deer\n65897,automobile\n65898,ship\n65899,cat\n65900,dog\n65901,frog\n65902,bird\n65903,truck\n65904,truck\n65905,frog\n65906,truck\n65907,deer\n65908,dog\n65909,deer\n65910,truck\n65911,cat\n65912,dog\n65913,deer\n65914,frog\n65915,deer\n65916,automobile\n65917,cat\n65918,dog\n65919,cat\n65920,ship\n65921,bird\n65922,deer\n65923,airplane\n65924,cat\n65925,dog\n65926,dog\n65927,frog\n65928,truck\n65929,deer\n65930,cat\n65931,cat\n65932,cat\n65933,cat\n65934,truck\n65935,airplane\n65936,ship\n65937,truck\n65938,bird\n65939,deer\n65940,bird\n65941,deer\n65942,cat\n65943,truck\n65944,cat\n65945,ship\n65946,dog\n65947,truck\n65948,airplane\n65949,ship\n65950,truck\n65951,frog\n65952,bird\n65953,deer\n65954,ship\n65955,deer\n65956,airplane\n65957,bird\n65958,airplane\n65959,dog\n65960,cat\n65961,deer\n65962,dog\n65963,cat\n65964,horse\n65965,truck\n65966,frog\n65967,ship\n65968,truck\n65969,deer\n65970,ship\n65971,frog\n65972,dog\n65973,ship\n65974,dog\n65975,frog\n65976,deer\n65977,cat\n65978,deer\n65979,bird\n65980,deer\n65981,dog\n65982,cat\n65983,deer\n65984,bird\n65985,automobile\n65986,horse\n65987,automobile\n65988,cat\n65989,frog\n65990,ship\n65991,dog\n65992,frog\n65993,frog\n65994,cat\n65995,horse\n65996,cat\n65997,truck\n65998,dog\n65999,truck\n66000,truck\n66001,dog\n66002,ship\n66003,bird\n66004,bird\n66005,airplane\n66006,cat\n66007,automobile\n66008,frog\n66009,cat\n66010,dog\n66011,bird\n66012,truck\n66013,cat\n66014,frog\n66015,horse\n66016,airplane\n66017,airplane\n66018,bird\n66019,airplane\n66020,ship\n66021,dog\n66022,airplane\n66023,truck\n66024,deer\n66025,frog\n66026,deer\n66027,bird\n66028,bird\n66029,truck\n66030,frog\n66031,bird\n66032,ship\n66033,dog\n66034,ship\n66035,cat\n66036,airplane\n66037,automobile\n66038,cat\n66039,deer\n66040,deer\n66041,horse\n66042,automobile\n66043,dog\n66044,dog\n66045,ship\n66046,deer\n66047,truck\n66048,deer\n66049,bird\n66050,dog\n66051,ship\n66052,horse\n66053,truck\n66054,horse\n66055,cat\n66056,ship\n66057,deer\n66058,deer\n66059,dog\n66060,horse\n66061,horse\n66062,cat\n66063,deer\n66064,automobile\n66065,bird\n66066,cat\n66067,ship\n66068,airplane\n66069,airplane\n66070,frog\n66071,truck\n66072,horse\n66073,dog\n66074,automobile\n66075,cat\n66076,automobile\n66077,horse\n66078,frog\n66079,cat\n66080,ship\n66081,dog\n66082,horse\n66083,dog\n66084,horse\n66085,airplane\n66086,deer\n66087,truck\n66088,horse\n66089,frog\n66090,automobile\n66091,dog\n66092,deer\n66093,bird\n66094,dog\n66095,bird\n66096,cat\n66097,frog\n66098,truck\n66099,truck\n66100,dog\n66101,truck\n66102,airplane\n66103,deer\n66104,deer\n66105,cat\n66106,truck\n66107,ship\n66108,truck\n66109,dog\n66110,bird\n66111,cat\n66112,cat\n66113,bird\n66114,truck\n66115,dog\n66116,cat\n66117,bird\n66118,airplane\n66119,frog\n66120,automobile\n66121,bird\n66122,bird\n66123,truck\n66124,deer\n66125,horse\n66126,horse\n66127,ship\n66128,dog\n66129,deer\n66130,automobile\n66131,cat\n66132,horse\n66133,truck\n66134,airplane\n66135,truck\n66136,airplane\n66137,bird\n66138,automobile\n66139,frog\n66140,horse\n66141,bird\n66142,automobile\n66143,airplane\n66144,bird\n66145,dog\n66146,airplane\n66147,horse\n66148,bird\n66149,airplane\n66150,deer\n66151,airplane\n66152,frog\n66153,cat\n66154,truck\n66155,cat\n66156,frog\n66157,deer\n66158,deer\n66159,bird\n66160,frog\n66161,cat\n66162,airplane\n66163,cat\n66164,frog\n66165,bird\n66166,cat\n66167,dog\n66168,frog\n66169,cat\n66170,frog\n66171,deer\n66172,horse\n66173,deer\n66174,dog\n66175,frog\n66176,deer\n66177,frog\n66178,cat\n66179,truck\n66180,cat\n66181,ship\n66182,truck\n66183,cat\n66184,automobile\n66185,ship\n66186,truck\n66187,airplane\n66188,truck\n66189,deer\n66190,horse\n66191,bird\n66192,cat\n66193,frog\n66194,automobile\n66195,dog\n66196,cat\n66197,cat\n66198,deer\n66199,truck\n66200,deer\n66201,cat\n66202,truck\n66203,deer\n66204,horse\n66205,truck\n66206,deer\n66207,frog\n66208,deer\n66209,horse\n66210,bird\n66211,horse\n66212,automobile\n66213,deer\n66214,truck\n66215,horse\n66216,cat\n66217,deer\n66218,truck\n66219,dog\n66220,cat\n66221,deer\n66222,truck\n66223,horse\n66224,cat\n66225,cat\n66226,bird\n66227,frog\n66228,deer\n66229,cat\n66230,frog\n66231,truck\n66232,ship\n66233,bird\n66234,cat\n66235,frog\n66236,frog\n66237,ship\n66238,automobile\n66239,truck\n66240,dog\n66241,cat\n66242,deer\n66243,truck\n66244,cat\n66245,ship\n66246,airplane\n66247,cat\n66248,airplane\n66249,deer\n66250,airplane\n66251,deer\n66252,dog\n66253,cat\n66254,cat\n66255,deer\n66256,horse\n66257,automobile\n66258,ship\n66259,bird\n66260,deer\n66261,deer\n66262,cat\n66263,truck\n66264,cat\n66265,truck\n66266,deer\n66267,frog\n66268,airplane\n66269,dog\n66270,cat\n66271,truck\n66272,horse\n66273,airplane\n66274,airplane\n66275,frog\n66276,frog\n66277,truck\n66278,dog\n66279,airplane\n66280,airplane\n66281,deer\n66282,cat\n66283,dog\n66284,ship\n66285,dog\n66286,deer\n66287,bird\n66288,deer\n66289,cat\n66290,frog\n66291,frog\n66292,horse\n66293,ship\n66294,airplane\n66295,frog\n66296,airplane\n66297,dog\n66298,truck\n66299,deer\n66300,bird\n66301,dog\n66302,horse\n66303,airplane\n66304,bird\n66305,bird\n66306,bird\n66307,deer\n66308,airplane\n66309,bird\n66310,deer\n66311,cat\n66312,cat\n66313,deer\n66314,automobile\n66315,deer\n66316,deer\n66317,dog\n66318,dog\n66319,deer\n66320,ship\n66321,dog\n66322,cat\n66323,truck\n66324,deer\n66325,airplane\n66326,dog\n66327,frog\n66328,dog\n66329,airplane\n66330,deer\n66331,airplane\n66332,bird\n66333,frog\n66334,airplane\n66335,truck\n66336,ship\n66337,cat\n66338,dog\n66339,ship\n66340,cat\n66341,dog\n66342,deer\n66343,horse\n66344,cat\n66345,dog\n66346,frog\n66347,deer\n66348,bird\n66349,frog\n66350,truck\n66351,frog\n66352,deer\n66353,horse\n66354,horse\n66355,airplane\n66356,deer\n66357,cat\n66358,airplane\n66359,dog\n66360,dog\n66361,ship\n66362,deer\n66363,cat\n66364,bird\n66365,ship\n66366,frog\n66367,truck\n66368,deer\n66369,truck\n66370,deer\n66371,automobile\n66372,dog\n66373,dog\n66374,airplane\n66375,automobile\n66376,horse\n66377,truck\n66378,bird\n66379,horse\n66380,cat\n66381,dog\n66382,horse\n66383,cat\n66384,horse\n66385,truck\n66386,deer\n66387,deer\n66388,frog\n66389,truck\n66390,cat\n66391,frog\n66392,airplane\n66393,frog\n66394,automobile\n66395,frog\n66396,airplane\n66397,cat\n66398,frog\n66399,bird\n66400,frog\n66401,bird\n66402,dog\n66403,truck\n66404,deer\n66405,dog\n66406,airplane\n66407,airplane\n66408,ship\n66409,bird\n66410,cat\n66411,bird\n66412,truck\n66413,truck\n66414,truck\n66415,truck\n66416,ship\n66417,deer\n66418,truck\n66419,dog\n66420,deer\n66421,bird\n66422,frog\n66423,dog\n66424,bird\n66425,horse\n66426,cat\n66427,horse\n66428,ship\n66429,dog\n66430,airplane\n66431,dog\n66432,ship\n66433,ship\n66434,dog\n66435,horse\n66436,deer\n66437,airplane\n66438,frog\n66439,automobile\n66440,truck\n66441,truck\n66442,deer\n66443,ship\n66444,automobile\n66445,horse\n66446,ship\n66447,ship\n66448,deer\n66449,deer\n66450,ship\n66451,automobile\n66452,cat\n66453,cat\n66454,automobile\n66455,dog\n66456,deer\n66457,ship\n66458,deer\n66459,automobile\n66460,bird\n66461,airplane\n66462,deer\n66463,automobile\n66464,airplane\n66465,horse\n66466,frog\n66467,truck\n66468,frog\n66469,horse\n66470,airplane\n66471,cat\n66472,ship\n66473,horse\n66474,ship\n66475,bird\n66476,automobile\n66477,bird\n66478,ship\n66479,horse\n66480,cat\n66481,deer\n66482,airplane\n66483,truck\n66484,ship\n66485,dog\n66486,frog\n66487,bird\n66488,ship\n66489,cat\n66490,dog\n66491,cat\n66492,airplane\n66493,cat\n66494,bird\n66495,frog\n66496,deer\n66497,ship\n66498,automobile\n66499,airplane\n66500,automobile\n66501,bird\n66502,cat\n66503,truck\n66504,deer\n66505,ship\n66506,ship\n66507,deer\n66508,bird\n66509,automobile\n66510,horse\n66511,airplane\n66512,dog\n66513,horse\n66514,deer\n66515,cat\n66516,cat\n66517,ship\n66518,horse\n66519,ship\n66520,horse\n66521,horse\n66522,automobile\n66523,deer\n66524,airplane\n66525,cat\n66526,ship\n66527,bird\n66528,deer\n66529,dog\n66530,dog\n66531,automobile\n66532,automobile\n66533,horse\n66534,cat\n66535,airplane\n66536,cat\n66537,cat\n66538,automobile\n66539,ship\n66540,bird\n66541,airplane\n66542,horse\n66543,dog\n66544,truck\n66545,truck\n66546,frog\n66547,automobile\n66548,deer\n66549,deer\n66550,dog\n66551,bird\n66552,horse\n66553,cat\n66554,dog\n66555,ship\n66556,horse\n66557,dog\n66558,bird\n66559,dog\n66560,truck\n66561,automobile\n66562,deer\n66563,cat\n66564,frog\n66565,deer\n66566,truck\n66567,airplane\n66568,dog\n66569,deer\n66570,ship\n66571,truck\n66572,frog\n66573,cat\n66574,cat\n66575,truck\n66576,horse\n66577,dog\n66578,frog\n66579,horse\n66580,dog\n66581,airplane\n66582,airplane\n66583,horse\n66584,deer\n66585,automobile\n66586,truck\n66587,deer\n66588,truck\n66589,deer\n66590,truck\n66591,cat\n66592,bird\n66593,horse\n66594,bird\n66595,deer\n66596,deer\n66597,frog\n66598,ship\n66599,horse\n66600,bird\n66601,deer\n66602,airplane\n66603,automobile\n66604,cat\n66605,deer\n66606,bird\n66607,truck\n66608,dog\n66609,ship\n66610,deer\n66611,horse\n66612,cat\n66613,truck\n66614,cat\n66615,frog\n66616,horse\n66617,dog\n66618,dog\n66619,airplane\n66620,automobile\n66621,horse\n66622,ship\n66623,frog\n66624,automobile\n66625,truck\n66626,horse\n66627,deer\n66628,cat\n66629,deer\n66630,frog\n66631,automobile\n66632,frog\n66633,airplane\n66634,bird\n66635,dog\n66636,cat\n66637,deer\n66638,horse\n66639,truck\n66640,deer\n66641,bird\n66642,deer\n66643,airplane\n66644,bird\n66645,horse\n66646,truck\n66647,bird\n66648,frog\n66649,cat\n66650,horse\n66651,dog\n66652,dog\n66653,horse\n66654,ship\n66655,bird\n66656,frog\n66657,airplane\n66658,frog\n66659,airplane\n66660,airplane\n66661,dog\n66662,dog\n66663,deer\n66664,truck\n66665,frog\n66666,frog\n66667,deer\n66668,truck\n66669,frog\n66670,automobile\n66671,airplane\n66672,horse\n66673,dog\n66674,automobile\n66675,cat\n66676,frog\n66677,truck\n66678,dog\n66679,frog\n66680,dog\n66681,airplane\n66682,ship\n66683,cat\n66684,horse\n66685,cat\n66686,dog\n66687,horse\n66688,truck\n66689,cat\n66690,airplane\n66691,truck\n66692,deer\n66693,airplane\n66694,horse\n66695,dog\n66696,dog\n66697,horse\n66698,deer\n66699,cat\n66700,deer\n66701,ship\n66702,horse\n66703,airplane\n66704,cat\n66705,airplane\n66706,bird\n66707,ship\n66708,frog\n66709,ship\n66710,cat\n66711,cat\n66712,bird\n66713,cat\n66714,dog\n66715,cat\n66716,deer\n66717,deer\n66718,deer\n66719,deer\n66720,airplane\n66721,deer\n66722,horse\n66723,truck\n66724,ship\n66725,frog\n66726,frog\n66727,airplane\n66728,dog\n66729,cat\n66730,deer\n66731,frog\n66732,cat\n66733,deer\n66734,automobile\n66735,cat\n66736,deer\n66737,truck\n66738,deer\n66739,horse\n66740,truck\n66741,frog\n66742,deer\n66743,truck\n66744,cat\n66745,cat\n66746,deer\n66747,frog\n66748,cat\n66749,cat\n66750,deer\n66751,truck\n66752,deer\n66753,dog\n66754,dog\n66755,frog\n66756,deer\n66757,airplane\n66758,airplane\n66759,bird\n66760,horse\n66761,airplane\n66762,airplane\n66763,cat\n66764,ship\n66765,ship\n66766,ship\n66767,airplane\n66768,truck\n66769,cat\n66770,bird\n66771,frog\n66772,deer\n66773,cat\n66774,bird\n66775,deer\n66776,airplane\n66777,dog\n66778,frog\n66779,cat\n66780,horse\n66781,bird\n66782,truck\n66783,dog\n66784,dog\n66785,truck\n66786,airplane\n66787,bird\n66788,cat\n66789,frog\n66790,cat\n66791,cat\n66792,cat\n66793,cat\n66794,ship\n66795,bird\n66796,dog\n66797,frog\n66798,bird\n66799,frog\n66800,horse\n66801,airplane\n66802,frog\n66803,truck\n66804,horse\n66805,truck\n66806,horse\n66807,horse\n66808,frog\n66809,truck\n66810,horse\n66811,airplane\n66812,automobile\n66813,dog\n66814,airplane\n66815,ship\n66816,deer\n66817,airplane\n66818,frog\n66819,cat\n66820,ship\n66821,frog\n66822,cat\n66823,deer\n66824,deer\n66825,deer\n66826,ship\n66827,dog\n66828,cat\n66829,automobile\n66830,automobile\n66831,cat\n66832,dog\n66833,truck\n66834,frog\n66835,deer\n66836,deer\n66837,deer\n66838,ship\n66839,bird\n66840,dog\n66841,deer\n66842,ship\n66843,ship\n66844,frog\n66845,ship\n66846,horse\n66847,frog\n66848,frog\n66849,truck\n66850,automobile\n66851,bird\n66852,ship\n66853,deer\n66854,dog\n66855,ship\n66856,automobile\n66857,ship\n66858,cat\n66859,cat\n66860,deer\n66861,cat\n66862,frog\n66863,dog\n66864,bird\n66865,truck\n66866,automobile\n66867,deer\n66868,automobile\n66869,ship\n66870,ship\n66871,dog\n66872,deer\n66873,deer\n66874,horse\n66875,frog\n66876,dog\n66877,cat\n66878,cat\n66879,deer\n66880,automobile\n66881,bird\n66882,airplane\n66883,deer\n66884,truck\n66885,ship\n66886,bird\n66887,airplane\n66888,cat\n66889,cat\n66890,frog\n66891,bird\n66892,frog\n66893,horse\n66894,horse\n66895,ship\n66896,frog\n66897,deer\n66898,horse\n66899,deer\n66900,frog\n66901,truck\n66902,cat\n66903,airplane\n66904,deer\n66905,deer\n66906,truck\n66907,frog\n66908,truck\n66909,truck\n66910,automobile\n66911,horse\n66912,deer\n66913,horse\n66914,cat\n66915,bird\n66916,horse\n66917,ship\n66918,deer\n66919,automobile\n66920,deer\n66921,dog\n66922,deer\n66923,ship\n66924,cat\n66925,airplane\n66926,bird\n66927,cat\n66928,airplane\n66929,bird\n66930,dog\n66931,airplane\n66932,frog\n66933,deer\n66934,deer\n66935,airplane\n66936,truck\n66937,cat\n66938,cat\n66939,deer\n66940,truck\n66941,airplane\n66942,horse\n66943,bird\n66944,airplane\n66945,bird\n66946,deer\n66947,cat\n66948,cat\n66949,frog\n66950,cat\n66951,truck\n66952,ship\n66953,dog\n66954,ship\n66955,truck\n66956,bird\n66957,cat\n66958,horse\n66959,horse\n66960,dog\n66961,automobile\n66962,deer\n66963,automobile\n66964,cat\n66965,ship\n66966,deer\n66967,cat\n66968,airplane\n66969,dog\n66970,airplane\n66971,deer\n66972,dog\n66973,bird\n66974,cat\n66975,cat\n66976,automobile\n66977,ship\n66978,dog\n66979,deer\n66980,airplane\n66981,bird\n66982,truck\n66983,airplane\n66984,bird\n66985,ship\n66986,ship\n66987,automobile\n66988,automobile\n66989,deer\n66990,ship\n66991,airplane\n66992,deer\n66993,dog\n66994,dog\n66995,frog\n66996,truck\n66997,cat\n66998,frog\n66999,deer\n67000,dog\n67001,deer\n67002,truck\n67003,ship\n67004,dog\n67005,cat\n67006,horse\n67007,automobile\n67008,airplane\n67009,dog\n67010,truck\n67011,airplane\n67012,horse\n67013,frog\n67014,automobile\n67015,truck\n67016,airplane\n67017,truck\n67018,horse\n67019,truck\n67020,truck\n67021,airplane\n67022,bird\n67023,bird\n67024,airplane\n67025,horse\n67026,cat\n67027,airplane\n67028,airplane\n67029,ship\n67030,dog\n67031,ship\n67032,cat\n67033,ship\n67034,cat\n67035,ship\n67036,dog\n67037,frog\n67038,dog\n67039,ship\n67040,bird\n67041,cat\n67042,frog\n67043,horse\n67044,ship\n67045,cat\n67046,cat\n67047,frog\n67048,deer\n67049,bird\n67050,cat\n67051,frog\n67052,cat\n67053,horse\n67054,truck\n67055,ship\n67056,truck\n67057,deer\n67058,dog\n67059,frog\n67060,truck\n67061,airplane\n67062,frog\n67063,ship\n67064,dog\n67065,horse\n67066,dog\n67067,bird\n67068,deer\n67069,bird\n67070,cat\n67071,dog\n67072,horse\n67073,ship\n67074,deer\n67075,truck\n67076,deer\n67077,horse\n67078,deer\n67079,deer\n67080,cat\n67081,dog\n67082,truck\n67083,frog\n67084,frog\n67085,dog\n67086,airplane\n67087,automobile\n67088,frog\n67089,frog\n67090,truck\n67091,airplane\n67092,horse\n67093,ship\n67094,deer\n67095,ship\n67096,truck\n67097,cat\n67098,cat\n67099,bird\n67100,airplane\n67101,deer\n67102,airplane\n67103,deer\n67104,bird\n67105,cat\n67106,automobile\n67107,airplane\n67108,cat\n67109,frog\n67110,truck\n67111,truck\n67112,frog\n67113,horse\n67114,frog\n67115,frog\n67116,automobile\n67117,automobile\n67118,deer\n67119,horse\n67120,bird\n67121,bird\n67122,dog\n67123,dog\n67124,dog\n67125,frog\n67126,bird\n67127,deer\n67128,airplane\n67129,automobile\n67130,truck\n67131,dog\n67132,deer\n67133,truck\n67134,deer\n67135,bird\n67136,dog\n67137,truck\n67138,ship\n67139,truck\n67140,frog\n67141,cat\n67142,automobile\n67143,truck\n67144,frog\n67145,dog\n67146,automobile\n67147,automobile\n67148,deer\n67149,truck\n67150,automobile\n67151,frog\n67152,deer\n67153,horse\n67154,frog\n67155,dog\n67156,cat\n67157,horse\n67158,airplane\n67159,automobile\n67160,cat\n67161,dog\n67162,cat\n67163,deer\n67164,deer\n67165,ship\n67166,truck\n67167,truck\n67168,automobile\n67169,ship\n67170,airplane\n67171,ship\n67172,horse\n67173,truck\n67174,deer\n67175,ship\n67176,horse\n67177,deer\n67178,frog\n67179,horse\n67180,deer\n67181,horse\n67182,horse\n67183,airplane\n67184,ship\n67185,airplane\n67186,truck\n67187,dog\n67188,horse\n67189,deer\n67190,dog\n67191,ship\n67192,deer\n67193,airplane\n67194,cat\n67195,bird\n67196,frog\n67197,frog\n67198,dog\n67199,cat\n67200,dog\n67201,deer\n67202,frog\n67203,frog\n67204,deer\n67205,cat\n67206,horse\n67207,dog\n67208,frog\n67209,frog\n67210,frog\n67211,automobile\n67212,deer\n67213,horse\n67214,cat\n67215,deer\n67216,deer\n67217,airplane\n67218,bird\n67219,deer\n67220,dog\n67221,cat\n67222,automobile\n67223,bird\n67224,dog\n67225,dog\n67226,ship\n67227,bird\n67228,bird\n67229,airplane\n67230,dog\n67231,truck\n67232,cat\n67233,deer\n67234,dog\n67235,ship\n67236,truck\n67237,airplane\n67238,automobile\n67239,deer\n67240,deer\n67241,deer\n67242,horse\n67243,frog\n67244,deer\n67245,bird\n67246,ship\n67247,deer\n67248,truck\n67249,horse\n67250,deer\n67251,airplane\n67252,dog\n67253,horse\n67254,truck\n67255,airplane\n67256,automobile\n67257,deer\n67258,horse\n67259,airplane\n67260,frog\n67261,automobile\n67262,ship\n67263,cat\n67264,truck\n67265,bird\n67266,horse\n67267,automobile\n67268,airplane\n67269,deer\n67270,bird\n67271,truck\n67272,cat\n67273,horse\n67274,bird\n67275,bird\n67276,dog\n67277,dog\n67278,deer\n67279,deer\n67280,horse\n67281,frog\n67282,deer\n67283,horse\n67284,frog\n67285,frog\n67286,bird\n67287,horse\n67288,airplane\n67289,dog\n67290,horse\n67291,truck\n67292,cat\n67293,bird\n67294,horse\n67295,ship\n67296,frog\n67297,truck\n67298,truck\n67299,horse\n67300,frog\n67301,dog\n67302,frog\n67303,automobile\n67304,deer\n67305,horse\n67306,ship\n67307,frog\n67308,ship\n67309,airplane\n67310,frog\n67311,truck\n67312,frog\n67313,airplane\n67314,frog\n67315,automobile\n67316,cat\n67317,ship\n67318,cat\n67319,truck\n67320,truck\n67321,airplane\n67322,cat\n67323,truck\n67324,bird\n67325,truck\n67326,ship\n67327,deer\n67328,truck\n67329,ship\n67330,deer\n67331,cat\n67332,cat\n67333,horse\n67334,cat\n67335,truck\n67336,automobile\n67337,truck\n67338,deer\n67339,horse\n67340,airplane\n67341,deer\n67342,deer\n67343,cat\n67344,cat\n67345,airplane\n67346,dog\n67347,horse\n67348,frog\n67349,deer\n67350,horse\n67351,ship\n67352,dog\n67353,cat\n67354,deer\n67355,bird\n67356,frog\n67357,truck\n67358,airplane\n67359,automobile\n67360,automobile\n67361,bird\n67362,ship\n67363,horse\n67364,frog\n67365,horse\n67366,truck\n67367,truck\n67368,frog\n67369,cat\n67370,horse\n67371,airplane\n67372,frog\n67373,horse\n67374,dog\n67375,airplane\n67376,dog\n67377,cat\n67378,frog\n67379,truck\n67380,ship\n67381,automobile\n67382,frog\n67383,deer\n67384,ship\n67385,airplane\n67386,horse\n67387,deer\n67388,dog\n67389,frog\n67390,airplane\n67391,ship\n67392,ship\n67393,ship\n67394,deer\n67395,cat\n67396,frog\n67397,frog\n67398,automobile\n67399,frog\n67400,bird\n67401,cat\n67402,frog\n67403,horse\n67404,cat\n67405,automobile\n67406,truck\n67407,airplane\n67408,airplane\n67409,automobile\n67410,automobile\n67411,cat\n67412,ship\n67413,deer\n67414,frog\n67415,dog\n67416,truck\n67417,bird\n67418,deer\n67419,horse\n67420,airplane\n67421,frog\n67422,airplane\n67423,cat\n67424,automobile\n67425,deer\n67426,automobile\n67427,truck\n67428,horse\n67429,cat\n67430,bird\n67431,horse\n67432,airplane\n67433,cat\n67434,dog\n67435,bird\n67436,deer\n67437,automobile\n67438,automobile\n67439,airplane\n67440,airplane\n67441,deer\n67442,deer\n67443,automobile\n67444,automobile\n67445,horse\n67446,cat\n67447,automobile\n67448,truck\n67449,frog\n67450,deer\n67451,airplane\n67452,horse\n67453,bird\n67454,automobile\n67455,ship\n67456,bird\n67457,cat\n67458,cat\n67459,deer\n67460,horse\n67461,automobile\n67462,ship\n67463,deer\n67464,cat\n67465,truck\n67466,deer\n67467,ship\n67468,airplane\n67469,deer\n67470,ship\n67471,truck\n67472,horse\n67473,airplane\n67474,truck\n67475,dog\n67476,cat\n67477,bird\n67478,dog\n67479,bird\n67480,truck\n67481,truck\n67482,horse\n67483,frog\n67484,dog\n67485,airplane\n67486,truck\n67487,cat\n67488,bird\n67489,dog\n67490,ship\n67491,frog\n67492,automobile\n67493,deer\n67494,truck\n67495,airplane\n67496,deer\n67497,frog\n67498,cat\n67499,deer\n67500,ship\n67501,bird\n67502,deer\n67503,deer\n67504,bird\n67505,horse\n67506,airplane\n67507,automobile\n67508,automobile\n67509,dog\n67510,cat\n67511,deer\n67512,deer\n67513,deer\n67514,bird\n67515,automobile\n67516,deer\n67517,automobile\n67518,horse\n67519,deer\n67520,automobile\n67521,truck\n67522,deer\n67523,bird\n67524,ship\n67525,bird\n67526,frog\n67527,automobile\n67528,truck\n67529,dog\n67530,cat\n67531,airplane\n67532,dog\n67533,truck\n67534,dog\n67535,dog\n67536,dog\n67537,automobile\n67538,cat\n67539,deer\n67540,cat\n67541,horse\n67542,frog\n67543,truck\n67544,horse\n67545,dog\n67546,horse\n67547,automobile\n67548,ship\n67549,truck\n67550,cat\n67551,airplane\n67552,airplane\n67553,truck\n67554,deer\n67555,frog\n67556,dog\n67557,frog\n67558,automobile\n67559,deer\n67560,airplane\n67561,ship\n67562,cat\n67563,deer\n67564,deer\n67565,automobile\n67566,cat\n67567,ship\n67568,truck\n67569,truck\n67570,truck\n67571,deer\n67572,cat\n67573,horse\n67574,cat\n67575,horse\n67576,airplane\n67577,airplane\n67578,deer\n67579,frog\n67580,ship\n67581,truck\n67582,automobile\n67583,cat\n67584,ship\n67585,horse\n67586,frog\n67587,bird\n67588,airplane\n67589,truck\n67590,automobile\n67591,automobile\n67592,cat\n67593,frog\n67594,truck\n67595,frog\n67596,cat\n67597,frog\n67598,airplane\n67599,deer\n67600,airplane\n67601,dog\n67602,truck\n67603,truck\n67604,dog\n67605,cat\n67606,deer\n67607,truck\n67608,cat\n67609,dog\n67610,ship\n67611,truck\n67612,cat\n67613,truck\n67614,deer\n67615,bird\n67616,airplane\n67617,bird\n67618,cat\n67619,automobile\n67620,truck\n67621,cat\n67622,ship\n67623,truck\n67624,bird\n67625,frog\n67626,airplane\n67627,ship\n67628,deer\n67629,airplane\n67630,truck\n67631,ship\n67632,deer\n67633,truck\n67634,ship\n67635,cat\n67636,truck\n67637,dog\n67638,dog\n67639,bird\n67640,horse\n67641,deer\n67642,dog\n67643,dog\n67644,automobile\n67645,ship\n67646,dog\n67647,dog\n67648,bird\n67649,deer\n67650,deer\n67651,truck\n67652,bird\n67653,bird\n67654,horse\n67655,deer\n67656,deer\n67657,deer\n67658,frog\n67659,deer\n67660,truck\n67661,deer\n67662,airplane\n67663,bird\n67664,dog\n67665,dog\n67666,truck\n67667,airplane\n67668,airplane\n67669,deer\n67670,horse\n67671,cat\n67672,frog\n67673,airplane\n67674,bird\n67675,dog\n67676,frog\n67677,ship\n67678,deer\n67679,truck\n67680,cat\n67681,automobile\n67682,automobile\n67683,frog\n67684,horse\n67685,bird\n67686,bird\n67687,horse\n67688,horse\n67689,deer\n67690,horse\n67691,automobile\n67692,bird\n67693,horse\n67694,dog\n67695,bird\n67696,automobile\n67697,ship\n67698,deer\n67699,frog\n67700,dog\n67701,dog\n67702,deer\n67703,airplane\n67704,dog\n67705,automobile\n67706,frog\n67707,deer\n67708,truck\n67709,truck\n67710,horse\n67711,deer\n67712,cat\n67713,cat\n67714,deer\n67715,automobile\n67716,horse\n67717,truck\n67718,airplane\n67719,dog\n67720,deer\n67721,ship\n67722,dog\n67723,bird\n67724,cat\n67725,dog\n67726,airplane\n67727,truck\n67728,truck\n67729,horse\n67730,frog\n67731,truck\n67732,frog\n67733,cat\n67734,cat\n67735,frog\n67736,horse\n67737,bird\n67738,airplane\n67739,dog\n67740,automobile\n67741,ship\n67742,horse\n67743,cat\n67744,deer\n67745,airplane\n67746,bird\n67747,frog\n67748,cat\n67749,frog\n67750,frog\n67751,truck\n67752,truck\n67753,ship\n67754,cat\n67755,ship\n67756,cat\n67757,frog\n67758,truck\n67759,horse\n67760,truck\n67761,dog\n67762,frog\n67763,ship\n67764,ship\n67765,airplane\n67766,deer\n67767,deer\n67768,bird\n67769,truck\n67770,cat\n67771,ship\n67772,frog\n67773,ship\n67774,deer\n67775,airplane\n67776,truck\n67777,horse\n67778,bird\n67779,deer\n67780,cat\n67781,frog\n67782,horse\n67783,dog\n67784,ship\n67785,deer\n67786,ship\n67787,deer\n67788,deer\n67789,cat\n67790,deer\n67791,truck\n67792,ship\n67793,ship\n67794,automobile\n67795,cat\n67796,deer\n67797,bird\n67798,cat\n67799,deer\n67800,airplane\n67801,cat\n67802,cat\n67803,deer\n67804,horse\n67805,horse\n67806,horse\n67807,automobile\n67808,horse\n67809,cat\n67810,automobile\n67811,ship\n67812,deer\n67813,cat\n67814,deer\n67815,truck\n67816,truck\n67817,dog\n67818,frog\n67819,cat\n67820,deer\n67821,horse\n67822,automobile\n67823,dog\n67824,automobile\n67825,dog\n67826,airplane\n67827,airplane\n67828,ship\n67829,horse\n67830,dog\n67831,dog\n67832,cat\n67833,horse\n67834,ship\n67835,bird\n67836,ship\n67837,bird\n67838,cat\n67839,cat\n67840,horse\n67841,horse\n67842,airplane\n67843,cat\n67844,frog\n67845,ship\n67846,ship\n67847,automobile\n67848,deer\n67849,truck\n67850,ship\n67851,airplane\n67852,frog\n67853,cat\n67854,dog\n67855,frog\n67856,truck\n67857,cat\n67858,deer\n67859,horse\n67860,horse\n67861,truck\n67862,dog\n67863,deer\n67864,airplane\n67865,bird\n67866,bird\n67867,cat\n67868,dog\n67869,airplane\n67870,dog\n67871,deer\n67872,automobile\n67873,dog\n67874,airplane\n67875,ship\n67876,horse\n67877,deer\n67878,truck\n67879,truck\n67880,cat\n67881,ship\n67882,ship\n67883,airplane\n67884,ship\n67885,horse\n67886,cat\n67887,deer\n67888,dog\n67889,airplane\n67890,ship\n67891,horse\n67892,frog\n67893,airplane\n67894,cat\n67895,ship\n67896,bird\n67897,automobile\n67898,airplane\n67899,truck\n67900,cat\n67901,ship\n67902,horse\n67903,ship\n67904,deer\n67905,frog\n67906,bird\n67907,automobile\n67908,bird\n67909,truck\n67910,cat\n67911,frog\n67912,dog\n67913,bird\n67914,truck\n67915,bird\n67916,deer\n67917,cat\n67918,bird\n67919,horse\n67920,bird\n67921,frog\n67922,bird\n67923,cat\n67924,dog\n67925,cat\n67926,ship\n67927,frog\n67928,bird\n67929,truck\n67930,frog\n67931,cat\n67932,airplane\n67933,bird\n67934,horse\n67935,truck\n67936,dog\n67937,deer\n67938,airplane\n67939,cat\n67940,airplane\n67941,frog\n67942,dog\n67943,cat\n67944,truck\n67945,horse\n67946,deer\n67947,deer\n67948,deer\n67949,automobile\n67950,horse\n67951,airplane\n67952,dog\n67953,automobile\n67954,dog\n67955,dog\n67956,frog\n67957,cat\n67958,ship\n67959,truck\n67960,bird\n67961,deer\n67962,deer\n67963,frog\n67964,cat\n67965,bird\n67966,ship\n67967,bird\n67968,horse\n67969,dog\n67970,deer\n67971,ship\n67972,dog\n67973,horse\n67974,automobile\n67975,truck\n67976,horse\n67977,airplane\n67978,deer\n67979,cat\n67980,dog\n67981,dog\n67982,deer\n67983,horse\n67984,frog\n67985,frog\n67986,frog\n67987,deer\n67988,ship\n67989,horse\n67990,bird\n67991,horse\n67992,cat\n67993,deer\n67994,deer\n67995,cat\n67996,ship\n67997,truck\n67998,dog\n67999,horse\n68000,deer\n68001,ship\n68002,truck\n68003,truck\n68004,truck\n68005,airplane\n68006,bird\n68007,frog\n68008,truck\n68009,airplane\n68010,bird\n68011,deer\n68012,horse\n68013,truck\n68014,ship\n68015,airplane\n68016,automobile\n68017,automobile\n68018,deer\n68019,horse\n68020,dog\n68021,horse\n68022,ship\n68023,airplane\n68024,dog\n68025,airplane\n68026,frog\n68027,deer\n68028,dog\n68029,frog\n68030,automobile\n68031,deer\n68032,deer\n68033,cat\n68034,cat\n68035,frog\n68036,truck\n68037,horse\n68038,truck\n68039,dog\n68040,deer\n68041,dog\n68042,airplane\n68043,ship\n68044,dog\n68045,truck\n68046,ship\n68047,dog\n68048,cat\n68049,cat\n68050,horse\n68051,dog\n68052,cat\n68053,frog\n68054,deer\n68055,cat\n68056,deer\n68057,dog\n68058,cat\n68059,deer\n68060,automobile\n68061,dog\n68062,deer\n68063,airplane\n68064,horse\n68065,ship\n68066,frog\n68067,ship\n68068,deer\n68069,horse\n68070,bird\n68071,ship\n68072,horse\n68073,bird\n68074,deer\n68075,horse\n68076,cat\n68077,bird\n68078,deer\n68079,frog\n68080,truck\n68081,bird\n68082,frog\n68083,airplane\n68084,deer\n68085,bird\n68086,horse\n68087,ship\n68088,automobile\n68089,dog\n68090,dog\n68091,ship\n68092,dog\n68093,horse\n68094,horse\n68095,deer\n68096,deer\n68097,dog\n68098,deer\n68099,deer\n68100,frog\n68101,cat\n68102,airplane\n68103,cat\n68104,ship\n68105,truck\n68106,cat\n68107,bird\n68108,truck\n68109,bird\n68110,ship\n68111,dog\n68112,cat\n68113,bird\n68114,frog\n68115,automobile\n68116,bird\n68117,airplane\n68118,airplane\n68119,airplane\n68120,truck\n68121,dog\n68122,airplane\n68123,cat\n68124,bird\n68125,cat\n68126,automobile\n68127,dog\n68128,dog\n68129,horse\n68130,frog\n68131,deer\n68132,truck\n68133,deer\n68134,cat\n68135,deer\n68136,frog\n68137,deer\n68138,truck\n68139,bird\n68140,bird\n68141,deer\n68142,cat\n68143,ship\n68144,deer\n68145,deer\n68146,cat\n68147,deer\n68148,bird\n68149,dog\n68150,frog\n68151,deer\n68152,cat\n68153,bird\n68154,frog\n68155,truck\n68156,ship\n68157,truck\n68158,horse\n68159,deer\n68160,automobile\n68161,airplane\n68162,truck\n68163,bird\n68164,bird\n68165,airplane\n68166,horse\n68167,cat\n68168,bird\n68169,frog\n68170,ship\n68171,truck\n68172,truck\n68173,dog\n68174,automobile\n68175,horse\n68176,cat\n68177,cat\n68178,airplane\n68179,cat\n68180,frog\n68181,airplane\n68182,truck\n68183,truck\n68184,dog\n68185,frog\n68186,automobile\n68187,deer\n68188,deer\n68189,frog\n68190,deer\n68191,cat\n68192,cat\n68193,ship\n68194,ship\n68195,ship\n68196,frog\n68197,ship\n68198,cat\n68199,ship\n68200,deer\n68201,truck\n68202,cat\n68203,airplane\n68204,dog\n68205,deer\n68206,airplane\n68207,dog\n68208,dog\n68209,horse\n68210,cat\n68211,horse\n68212,dog\n68213,frog\n68214,dog\n68215,frog\n68216,ship\n68217,deer\n68218,deer\n68219,bird\n68220,airplane\n68221,airplane\n68222,deer\n68223,dog\n68224,bird\n68225,truck\n68226,automobile\n68227,deer\n68228,dog\n68229,deer\n68230,dog\n68231,horse\n68232,deer\n68233,frog\n68234,frog\n68235,airplane\n68236,deer\n68237,cat\n68238,frog\n68239,automobile\n68240,dog\n68241,frog\n68242,cat\n68243,automobile\n68244,horse\n68245,dog\n68246,airplane\n68247,cat\n68248,frog\n68249,cat\n68250,cat\n68251,horse\n68252,airplane\n68253,airplane\n68254,horse\n68255,frog\n68256,ship\n68257,frog\n68258,cat\n68259,dog\n68260,dog\n68261,airplane\n68262,dog\n68263,dog\n68264,frog\n68265,deer\n68266,bird\n68267,deer\n68268,cat\n68269,dog\n68270,truck\n68271,airplane\n68272,truck\n68273,frog\n68274,automobile\n68275,automobile\n68276,bird\n68277,dog\n68278,bird\n68279,automobile\n68280,frog\n68281,dog\n68282,bird\n68283,deer\n68284,ship\n68285,ship\n68286,ship\n68287,deer\n68288,horse\n68289,deer\n68290,dog\n68291,truck\n68292,truck\n68293,horse\n68294,bird\n68295,deer\n68296,dog\n68297,ship\n68298,cat\n68299,dog\n68300,automobile\n68301,deer\n68302,dog\n68303,truck\n68304,deer\n68305,cat\n68306,horse\n68307,cat\n68308,frog\n68309,bird\n68310,horse\n68311,ship\n68312,horse\n68313,truck\n68314,dog\n68315,cat\n68316,ship\n68317,airplane\n68318,ship\n68319,deer\n68320,bird\n68321,truck\n68322,horse\n68323,airplane\n68324,horse\n68325,truck\n68326,cat\n68327,automobile\n68328,airplane\n68329,dog\n68330,cat\n68331,truck\n68332,deer\n68333,airplane\n68334,deer\n68335,dog\n68336,frog\n68337,truck\n68338,deer\n68339,automobile\n68340,ship\n68341,bird\n68342,cat\n68343,ship\n68344,deer\n68345,bird\n68346,deer\n68347,dog\n68348,bird\n68349,deer\n68350,horse\n68351,horse\n68352,frog\n68353,horse\n68354,bird\n68355,horse\n68356,frog\n68357,deer\n68358,ship\n68359,automobile\n68360,frog\n68361,bird\n68362,airplane\n68363,truck\n68364,automobile\n68365,cat\n68366,dog\n68367,cat\n68368,dog\n68369,frog\n68370,bird\n68371,bird\n68372,deer\n68373,dog\n68374,deer\n68375,cat\n68376,airplane\n68377,deer\n68378,cat\n68379,dog\n68380,dog\n68381,dog\n68382,truck\n68383,dog\n68384,cat\n68385,deer\n68386,frog\n68387,horse\n68388,deer\n68389,frog\n68390,automobile\n68391,airplane\n68392,dog\n68393,dog\n68394,bird\n68395,automobile\n68396,cat\n68397,deer\n68398,airplane\n68399,deer\n68400,frog\n68401,deer\n68402,cat\n68403,cat\n68404,horse\n68405,deer\n68406,truck\n68407,frog\n68408,automobile\n68409,cat\n68410,bird\n68411,deer\n68412,deer\n68413,frog\n68414,cat\n68415,horse\n68416,airplane\n68417,airplane\n68418,frog\n68419,deer\n68420,bird\n68421,cat\n68422,truck\n68423,automobile\n68424,ship\n68425,automobile\n68426,horse\n68427,deer\n68428,truck\n68429,ship\n68430,bird\n68431,ship\n68432,cat\n68433,airplane\n68434,automobile\n68435,automobile\n68436,horse\n68437,automobile\n68438,ship\n68439,horse\n68440,frog\n68441,deer\n68442,frog\n68443,dog\n68444,dog\n68445,truck\n68446,cat\n68447,deer\n68448,airplane\n68449,ship\n68450,horse\n68451,cat\n68452,cat\n68453,airplane\n68454,horse\n68455,automobile\n68456,deer\n68457,ship\n68458,horse\n68459,truck\n68460,deer\n68461,dog\n68462,automobile\n68463,dog\n68464,deer\n68465,cat\n68466,truck\n68467,bird\n68468,dog\n68469,frog\n68470,cat\n68471,dog\n68472,horse\n68473,ship\n68474,airplane\n68475,dog\n68476,automobile\n68477,truck\n68478,dog\n68479,ship\n68480,truck\n68481,cat\n68482,automobile\n68483,dog\n68484,frog\n68485,airplane\n68486,automobile\n68487,dog\n68488,ship\n68489,dog\n68490,bird\n68491,bird\n68492,automobile\n68493,automobile\n68494,frog\n68495,airplane\n68496,airplane\n68497,cat\n68498,cat\n68499,automobile\n68500,dog\n68501,bird\n68502,horse\n68503,deer\n68504,truck\n68505,cat\n68506,deer\n68507,ship\n68508,bird\n68509,airplane\n68510,airplane\n68511,dog\n68512,frog\n68513,deer\n68514,frog\n68515,deer\n68516,cat\n68517,horse\n68518,frog\n68519,truck\n68520,frog\n68521,dog\n68522,frog\n68523,frog\n68524,bird\n68525,dog\n68526,dog\n68527,truck\n68528,dog\n68529,ship\n68530,automobile\n68531,truck\n68532,bird\n68533,truck\n68534,horse\n68535,cat\n68536,bird\n68537,frog\n68538,horse\n68539,deer\n68540,automobile\n68541,horse\n68542,cat\n68543,truck\n68544,dog\n68545,truck\n68546,airplane\n68547,dog\n68548,bird\n68549,cat\n68550,ship\n68551,airplane\n68552,truck\n68553,deer\n68554,bird\n68555,airplane\n68556,ship\n68557,frog\n68558,frog\n68559,ship\n68560,frog\n68561,truck\n68562,airplane\n68563,airplane\n68564,frog\n68565,truck\n68566,deer\n68567,deer\n68568,bird\n68569,frog\n68570,truck\n68571,cat\n68572,horse\n68573,automobile\n68574,automobile\n68575,cat\n68576,ship\n68577,ship\n68578,bird\n68579,horse\n68580,ship\n68581,bird\n68582,airplane\n68583,cat\n68584,bird\n68585,deer\n68586,automobile\n68587,cat\n68588,airplane\n68589,dog\n68590,cat\n68591,cat\n68592,frog\n68593,cat\n68594,cat\n68595,automobile\n68596,truck\n68597,dog\n68598,horse\n68599,automobile\n68600,cat\n68601,truck\n68602,bird\n68603,deer\n68604,ship\n68605,dog\n68606,frog\n68607,dog\n68608,truck\n68609,deer\n68610,deer\n68611,automobile\n68612,truck\n68613,automobile\n68614,frog\n68615,automobile\n68616,ship\n68617,bird\n68618,truck\n68619,frog\n68620,automobile\n68621,horse\n68622,deer\n68623,automobile\n68624,ship\n68625,bird\n68626,airplane\n68627,dog\n68628,cat\n68629,bird\n68630,dog\n68631,cat\n68632,ship\n68633,dog\n68634,horse\n68635,airplane\n68636,deer\n68637,airplane\n68638,automobile\n68639,truck\n68640,cat\n68641,frog\n68642,bird\n68643,cat\n68644,truck\n68645,truck\n68646,deer\n68647,horse\n68648,bird\n68649,deer\n68650,deer\n68651,automobile\n68652,cat\n68653,frog\n68654,horse\n68655,airplane\n68656,horse\n68657,automobile\n68658,automobile\n68659,automobile\n68660,cat\n68661,cat\n68662,airplane\n68663,ship\n68664,deer\n68665,deer\n68666,horse\n68667,dog\n68668,airplane\n68669,truck\n68670,horse\n68671,bird\n68672,deer\n68673,frog\n68674,automobile\n68675,deer\n68676,cat\n68677,frog\n68678,automobile\n68679,ship\n68680,frog\n68681,frog\n68682,bird\n68683,deer\n68684,bird\n68685,frog\n68686,airplane\n68687,cat\n68688,airplane\n68689,truck\n68690,dog\n68691,truck\n68692,deer\n68693,ship\n68694,bird\n68695,frog\n68696,horse\n68697,truck\n68698,airplane\n68699,automobile\n68700,frog\n68701,dog\n68702,cat\n68703,bird\n68704,truck\n68705,cat\n68706,ship\n68707,cat\n68708,automobile\n68709,truck\n68710,automobile\n68711,frog\n68712,cat\n68713,deer\n68714,bird\n68715,deer\n68716,dog\n68717,deer\n68718,frog\n68719,cat\n68720,deer\n68721,truck\n68722,truck\n68723,horse\n68724,ship\n68725,airplane\n68726,automobile\n68727,automobile\n68728,bird\n68729,frog\n68730,horse\n68731,ship\n68732,frog\n68733,dog\n68734,airplane\n68735,airplane\n68736,bird\n68737,deer\n68738,deer\n68739,horse\n68740,cat\n68741,deer\n68742,deer\n68743,ship\n68744,cat\n68745,dog\n68746,bird\n68747,truck\n68748,dog\n68749,horse\n68750,dog\n68751,frog\n68752,dog\n68753,automobile\n68754,horse\n68755,deer\n68756,automobile\n68757,truck\n68758,bird\n68759,horse\n68760,cat\n68761,frog\n68762,dog\n68763,automobile\n68764,cat\n68765,cat\n68766,truck\n68767,dog\n68768,truck\n68769,cat\n68770,dog\n68771,horse\n68772,horse\n68773,automobile\n68774,dog\n68775,horse\n68776,deer\n68777,truck\n68778,dog\n68779,airplane\n68780,cat\n68781,horse\n68782,deer\n68783,bird\n68784,frog\n68785,cat\n68786,cat\n68787,truck\n68788,airplane\n68789,frog\n68790,airplane\n68791,airplane\n68792,airplane\n68793,automobile\n68794,ship\n68795,ship\n68796,truck\n68797,cat\n68798,bird\n68799,cat\n68800,automobile\n68801,horse\n68802,cat\n68803,cat\n68804,cat\n68805,horse\n68806,automobile\n68807,dog\n68808,dog\n68809,deer\n68810,cat\n68811,horse\n68812,frog\n68813,cat\n68814,deer\n68815,cat\n68816,deer\n68817,airplane\n68818,deer\n68819,bird\n68820,airplane\n68821,frog\n68822,horse\n68823,truck\n68824,frog\n68825,ship\n68826,airplane\n68827,bird\n68828,deer\n68829,horse\n68830,deer\n68831,cat\n68832,automobile\n68833,frog\n68834,dog\n68835,deer\n68836,truck\n68837,automobile\n68838,bird\n68839,horse\n68840,deer\n68841,horse\n68842,bird\n68843,cat\n68844,truck\n68845,dog\n68846,dog\n68847,cat\n68848,bird\n68849,dog\n68850,cat\n68851,bird\n68852,cat\n68853,dog\n68854,horse\n68855,horse\n68856,airplane\n68857,bird\n68858,frog\n68859,horse\n68860,dog\n68861,airplane\n68862,dog\n68863,cat\n68864,ship\n68865,dog\n68866,cat\n68867,dog\n68868,bird\n68869,cat\n68870,cat\n68871,deer\n68872,dog\n68873,frog\n68874,airplane\n68875,airplane\n68876,bird\n68877,bird\n68878,automobile\n68879,deer\n68880,airplane\n68881,cat\n68882,deer\n68883,ship\n68884,dog\n68885,cat\n68886,truck\n68887,horse\n68888,truck\n68889,frog\n68890,cat\n68891,truck\n68892,dog\n68893,truck\n68894,deer\n68895,horse\n68896,frog\n68897,automobile\n68898,deer\n68899,bird\n68900,automobile\n68901,bird\n68902,cat\n68903,airplane\n68904,deer\n68905,airplane\n68906,airplane\n68907,ship\n68908,frog\n68909,cat\n68910,cat\n68911,dog\n68912,bird\n68913,deer\n68914,ship\n68915,cat\n68916,truck\n68917,horse\n68918,bird\n68919,horse\n68920,truck\n68921,ship\n68922,truck\n68923,ship\n68924,horse\n68925,horse\n68926,horse\n68927,cat\n68928,deer\n68929,cat\n68930,cat\n68931,deer\n68932,airplane\n68933,deer\n68934,bird\n68935,deer\n68936,dog\n68937,deer\n68938,cat\n68939,automobile\n68940,truck\n68941,airplane\n68942,ship\n68943,bird\n68944,truck\n68945,horse\n68946,airplane\n68947,truck\n68948,frog\n68949,horse\n68950,truck\n68951,bird\n68952,truck\n68953,bird\n68954,deer\n68955,automobile\n68956,automobile\n68957,automobile\n68958,ship\n68959,automobile\n68960,airplane\n68961,truck\n68962,ship\n68963,cat\n68964,airplane\n68965,automobile\n68966,ship\n68967,frog\n68968,dog\n68969,dog\n68970,ship\n68971,cat\n68972,deer\n68973,cat\n68974,dog\n68975,cat\n68976,horse\n68977,horse\n68978,ship\n68979,airplane\n68980,cat\n68981,cat\n68982,horse\n68983,bird\n68984,frog\n68985,deer\n68986,automobile\n68987,airplane\n68988,cat\n68989,dog\n68990,airplane\n68991,airplane\n68992,truck\n68993,truck\n68994,cat\n68995,automobile\n68996,bird\n68997,bird\n68998,horse\n68999,bird\n69000,frog\n69001,truck\n69002,horse\n69003,frog\n69004,ship\n69005,cat\n69006,automobile\n69007,horse\n69008,deer\n69009,dog\n69010,ship\n69011,airplane\n69012,ship\n69013,cat\n69014,dog\n69015,frog\n69016,frog\n69017,bird\n69018,deer\n69019,deer\n69020,truck\n69021,cat\n69022,dog\n69023,truck\n69024,deer\n69025,deer\n69026,deer\n69027,cat\n69028,cat\n69029,deer\n69030,cat\n69031,deer\n69032,ship\n69033,frog\n69034,airplane\n69035,horse\n69036,frog\n69037,horse\n69038,deer\n69039,ship\n69040,dog\n69041,truck\n69042,truck\n69043,cat\n69044,horse\n69045,dog\n69046,dog\n69047,deer\n69048,cat\n69049,airplane\n69050,dog\n69051,horse\n69052,ship\n69053,bird\n69054,airplane\n69055,automobile\n69056,frog\n69057,dog\n69058,ship\n69059,truck\n69060,cat\n69061,dog\n69062,truck\n69063,automobile\n69064,deer\n69065,dog\n69066,bird\n69067,horse\n69068,cat\n69069,bird\n69070,cat\n69071,cat\n69072,cat\n69073,cat\n69074,frog\n69075,deer\n69076,cat\n69077,dog\n69078,dog\n69079,deer\n69080,dog\n69081,bird\n69082,airplane\n69083,airplane\n69084,bird\n69085,deer\n69086,airplane\n69087,cat\n69088,automobile\n69089,deer\n69090,dog\n69091,cat\n69092,horse\n69093,horse\n69094,cat\n69095,deer\n69096,frog\n69097,deer\n69098,airplane\n69099,dog\n69100,horse\n69101,truck\n69102,bird\n69103,cat\n69104,bird\n69105,truck\n69106,ship\n69107,cat\n69108,ship\n69109,frog\n69110,automobile\n69111,frog\n69112,ship\n69113,automobile\n69114,dog\n69115,bird\n69116,truck\n69117,dog\n69118,airplane\n69119,airplane\n69120,truck\n69121,ship\n69122,airplane\n69123,cat\n69124,horse\n69125,truck\n69126,horse\n69127,horse\n69128,ship\n69129,bird\n69130,deer\n69131,automobile\n69132,cat\n69133,truck\n69134,bird\n69135,ship\n69136,truck\n69137,bird\n69138,airplane\n69139,deer\n69140,dog\n69141,deer\n69142,frog\n69143,cat\n69144,automobile\n69145,airplane\n69146,dog\n69147,horse\n69148,horse\n69149,airplane\n69150,cat\n69151,dog\n69152,cat\n69153,frog\n69154,airplane\n69155,deer\n69156,horse\n69157,airplane\n69158,deer\n69159,frog\n69160,automobile\n69161,frog\n69162,bird\n69163,deer\n69164,deer\n69165,dog\n69166,deer\n69167,bird\n69168,deer\n69169,ship\n69170,deer\n69171,cat\n69172,dog\n69173,dog\n69174,airplane\n69175,dog\n69176,deer\n69177,truck\n69178,horse\n69179,cat\n69180,bird\n69181,horse\n69182,automobile\n69183,truck\n69184,dog\n69185,cat\n69186,automobile\n69187,airplane\n69188,airplane\n69189,dog\n69190,horse\n69191,bird\n69192,cat\n69193,frog\n69194,truck\n69195,deer\n69196,frog\n69197,dog\n69198,bird\n69199,airplane\n69200,frog\n69201,truck\n69202,truck\n69203,deer\n69204,ship\n69205,airplane\n69206,truck\n69207,ship\n69208,automobile\n69209,cat\n69210,truck\n69211,automobile\n69212,frog\n69213,deer\n69214,cat\n69215,truck\n69216,horse\n69217,dog\n69218,dog\n69219,deer\n69220,frog\n69221,horse\n69222,cat\n69223,cat\n69224,frog\n69225,dog\n69226,bird\n69227,airplane\n69228,horse\n69229,frog\n69230,cat\n69231,automobile\n69232,deer\n69233,deer\n69234,deer\n69235,deer\n69236,cat\n69237,dog\n69238,cat\n69239,deer\n69240,dog\n69241,airplane\n69242,automobile\n69243,frog\n69244,deer\n69245,deer\n69246,automobile\n69247,truck\n69248,bird\n69249,frog\n69250,bird\n69251,ship\n69252,cat\n69253,truck\n69254,dog\n69255,truck\n69256,dog\n69257,deer\n69258,truck\n69259,frog\n69260,bird\n69261,automobile\n69262,automobile\n69263,bird\n69264,truck\n69265,dog\n69266,bird\n69267,airplane\n69268,cat\n69269,cat\n69270,frog\n69271,ship\n69272,cat\n69273,horse\n69274,automobile\n69275,horse\n69276,deer\n69277,frog\n69278,horse\n69279,dog\n69280,automobile\n69281,airplane\n69282,truck\n69283,cat\n69284,dog\n69285,bird\n69286,deer\n69287,frog\n69288,cat\n69289,airplane\n69290,ship\n69291,automobile\n69292,airplane\n69293,deer\n69294,dog\n69295,airplane\n69296,deer\n69297,bird\n69298,frog\n69299,ship\n69300,deer\n69301,ship\n69302,deer\n69303,bird\n69304,automobile\n69305,automobile\n69306,dog\n69307,bird\n69308,horse\n69309,frog\n69310,airplane\n69311,truck\n69312,truck\n69313,deer\n69314,cat\n69315,dog\n69316,deer\n69317,horse\n69318,horse\n69319,horse\n69320,ship\n69321,airplane\n69322,cat\n69323,automobile\n69324,dog\n69325,cat\n69326,airplane\n69327,dog\n69328,deer\n69329,cat\n69330,automobile\n69331,automobile\n69332,airplane\n69333,dog\n69334,bird\n69335,airplane\n69336,airplane\n69337,frog\n69338,airplane\n69339,airplane\n69340,frog\n69341,bird\n69342,dog\n69343,truck\n69344,cat\n69345,cat\n69346,truck\n69347,dog\n69348,frog\n69349,bird\n69350,truck\n69351,airplane\n69352,cat\n69353,automobile\n69354,cat\n69355,ship\n69356,ship\n69357,cat\n69358,automobile\n69359,dog\n69360,airplane\n69361,horse\n69362,cat\n69363,cat\n69364,dog\n69365,bird\n69366,ship\n69367,truck\n69368,frog\n69369,cat\n69370,automobile\n69371,deer\n69372,deer\n69373,truck\n69374,dog\n69375,frog\n69376,frog\n69377,deer\n69378,truck\n69379,cat\n69380,automobile\n69381,airplane\n69382,cat\n69383,cat\n69384,deer\n69385,ship\n69386,bird\n69387,deer\n69388,bird\n69389,cat\n69390,frog\n69391,frog\n69392,dog\n69393,horse\n69394,dog\n69395,deer\n69396,airplane\n69397,airplane\n69398,frog\n69399,airplane\n69400,bird\n69401,truck\n69402,horse\n69403,frog\n69404,bird\n69405,frog\n69406,truck\n69407,truck\n69408,ship\n69409,bird\n69410,automobile\n69411,ship\n69412,frog\n69413,cat\n69414,horse\n69415,truck\n69416,frog\n69417,deer\n69418,deer\n69419,dog\n69420,frog\n69421,dog\n69422,bird\n69423,ship\n69424,cat\n69425,truck\n69426,deer\n69427,deer\n69428,bird\n69429,deer\n69430,cat\n69431,dog\n69432,deer\n69433,dog\n69434,airplane\n69435,cat\n69436,deer\n69437,deer\n69438,deer\n69439,ship\n69440,ship\n69441,truck\n69442,truck\n69443,dog\n69444,dog\n69445,cat\n69446,frog\n69447,cat\n69448,bird\n69449,deer\n69450,airplane\n69451,frog\n69452,deer\n69453,truck\n69454,automobile\n69455,cat\n69456,truck\n69457,truck\n69458,frog\n69459,airplane\n69460,airplane\n69461,cat\n69462,deer\n69463,frog\n69464,horse\n69465,horse\n69466,deer\n69467,automobile\n69468,horse\n69469,truck\n69470,airplane\n69471,frog\n69472,deer\n69473,automobile\n69474,cat\n69475,cat\n69476,deer\n69477,ship\n69478,cat\n69479,cat\n69480,horse\n69481,bird\n69482,truck\n69483,horse\n69484,truck\n69485,dog\n69486,frog\n69487,dog\n69488,automobile\n69489,truck\n69490,ship\n69491,ship\n69492,bird\n69493,airplane\n69494,cat\n69495,deer\n69496,automobile\n69497,airplane\n69498,cat\n69499,frog\n69500,ship\n69501,ship\n69502,automobile\n69503,truck\n69504,bird\n69505,frog\n69506,bird\n69507,bird\n69508,cat\n69509,truck\n69510,frog\n69511,deer\n69512,deer\n69513,bird\n69514,automobile\n69515,cat\n69516,ship\n69517,cat\n69518,dog\n69519,deer\n69520,horse\n69521,truck\n69522,dog\n69523,truck\n69524,cat\n69525,deer\n69526,airplane\n69527,airplane\n69528,truck\n69529,horse\n69530,automobile\n69531,automobile\n69532,airplane\n69533,horse\n69534,bird\n69535,cat\n69536,deer\n69537,truck\n69538,cat\n69539,deer\n69540,dog\n69541,deer\n69542,truck\n69543,automobile\n69544,deer\n69545,horse\n69546,frog\n69547,truck\n69548,deer\n69549,frog\n69550,deer\n69551,bird\n69552,cat\n69553,horse\n69554,dog\n69555,dog\n69556,cat\n69557,automobile\n69558,truck\n69559,deer\n69560,truck\n69561,horse\n69562,cat\n69563,bird\n69564,cat\n69565,dog\n69566,deer\n69567,ship\n69568,dog\n69569,deer\n69570,airplane\n69571,deer\n69572,frog\n69573,truck\n69574,dog\n69575,bird\n69576,truck\n69577,truck\n69578,truck\n69579,automobile\n69580,dog\n69581,deer\n69582,truck\n69583,truck\n69584,horse\n69585,deer\n69586,deer\n69587,automobile\n69588,dog\n69589,cat\n69590,frog\n69591,deer\n69592,cat\n69593,deer\n69594,frog\n69595,bird\n69596,cat\n69597,cat\n69598,horse\n69599,truck\n69600,dog\n69601,dog\n69602,cat\n69603,automobile\n69604,airplane\n69605,deer\n69606,ship\n69607,truck\n69608,truck\n69609,truck\n69610,horse\n69611,ship\n69612,automobile\n69613,automobile\n69614,dog\n69615,deer\n69616,bird\n69617,airplane\n69618,cat\n69619,horse\n69620,truck\n69621,automobile\n69622,airplane\n69623,dog\n69624,ship\n69625,ship\n69626,truck\n69627,frog\n69628,horse\n69629,truck\n69630,dog\n69631,cat\n69632,ship\n69633,dog\n69634,airplane\n69635,cat\n69636,dog\n69637,frog\n69638,cat\n69639,ship\n69640,horse\n69641,truck\n69642,horse\n69643,horse\n69644,bird\n69645,frog\n69646,airplane\n69647,truck\n69648,frog\n69649,dog\n69650,cat\n69651,frog\n69652,airplane\n69653,bird\n69654,horse\n69655,dog\n69656,deer\n69657,ship\n69658,frog\n69659,dog\n69660,frog\n69661,automobile\n69662,ship\n69663,truck\n69664,cat\n69665,cat\n69666,bird\n69667,cat\n69668,dog\n69669,ship\n69670,frog\n69671,horse\n69672,truck\n69673,cat\n69674,ship\n69675,cat\n69676,frog\n69677,ship\n69678,cat\n69679,deer\n69680,frog\n69681,airplane\n69682,automobile\n69683,dog\n69684,bird\n69685,dog\n69686,ship\n69687,truck\n69688,airplane\n69689,deer\n69690,deer\n69691,deer\n69692,deer\n69693,horse\n69694,frog\n69695,frog\n69696,truck\n69697,ship\n69698,cat\n69699,dog\n69700,cat\n69701,truck\n69702,cat\n69703,airplane\n69704,horse\n69705,deer\n69706,cat\n69707,ship\n69708,cat\n69709,frog\n69710,horse\n69711,cat\n69712,frog\n69713,deer\n69714,horse\n69715,cat\n69716,ship\n69717,truck\n69718,truck\n69719,truck\n69720,truck\n69721,truck\n69722,bird\n69723,deer\n69724,truck\n69725,cat\n69726,truck\n69727,truck\n69728,frog\n69729,frog\n69730,ship\n69731,cat\n69732,deer\n69733,deer\n69734,ship\n69735,airplane\n69736,cat\n69737,dog\n69738,frog\n69739,truck\n69740,dog\n69741,dog\n69742,truck\n69743,horse\n69744,automobile\n69745,dog\n69746,frog\n69747,airplane\n69748,frog\n69749,deer\n69750,truck\n69751,truck\n69752,ship\n69753,deer\n69754,deer\n69755,dog\n69756,frog\n69757,ship\n69758,dog\n69759,frog\n69760,ship\n69761,ship\n69762,cat\n69763,horse\n69764,truck\n69765,cat\n69766,deer\n69767,airplane\n69768,automobile\n69769,deer\n69770,cat\n69771,automobile\n69772,truck\n69773,frog\n69774,cat\n69775,deer\n69776,bird\n69777,frog\n69778,horse\n69779,cat\n69780,truck\n69781,airplane\n69782,cat\n69783,airplane\n69784,dog\n69785,frog\n69786,truck\n69787,deer\n69788,deer\n69789,horse\n69790,frog\n69791,dog\n69792,deer\n69793,airplane\n69794,bird\n69795,bird\n69796,ship\n69797,horse\n69798,airplane\n69799,dog\n69800,cat\n69801,deer\n69802,deer\n69803,deer\n69804,cat\n69805,truck\n69806,automobile\n69807,deer\n69808,cat\n69809,horse\n69810,horse\n69811,frog\n69812,cat\n69813,cat\n69814,deer\n69815,frog\n69816,frog\n69817,bird\n69818,cat\n69819,truck\n69820,truck\n69821,frog\n69822,automobile\n69823,airplane\n69824,dog\n69825,deer\n69826,cat\n69827,truck\n69828,cat\n69829,truck\n69830,airplane\n69831,cat\n69832,bird\n69833,airplane\n69834,cat\n69835,dog\n69836,dog\n69837,ship\n69838,dog\n69839,deer\n69840,dog\n69841,dog\n69842,dog\n69843,ship\n69844,ship\n69845,ship\n69846,ship\n69847,cat\n69848,cat\n69849,ship\n69850,bird\n69851,airplane\n69852,cat\n69853,bird\n69854,horse\n69855,ship\n69856,frog\n69857,horse\n69858,truck\n69859,frog\n69860,airplane\n69861,airplane\n69862,dog\n69863,horse\n69864,bird\n69865,truck\n69866,dog\n69867,airplane\n69868,truck\n69869,airplane\n69870,horse\n69871,airplane\n69872,frog\n69873,cat\n69874,deer\n69875,ship\n69876,ship\n69877,cat\n69878,cat\n69879,bird\n69880,frog\n69881,dog\n69882,bird\n69883,truck\n69884,automobile\n69885,airplane\n69886,horse\n69887,deer\n69888,cat\n69889,deer\n69890,truck\n69891,dog\n69892,frog\n69893,frog\n69894,ship\n69895,dog\n69896,frog\n69897,ship\n69898,cat\n69899,bird\n69900,automobile\n69901,horse\n69902,automobile\n69903,truck\n69904,dog\n69905,deer\n69906,cat\n69907,truck\n69908,airplane\n69909,cat\n69910,automobile\n69911,airplane\n69912,airplane\n69913,automobile\n69914,cat\n69915,frog\n69916,truck\n69917,cat\n69918,deer\n69919,truck\n69920,bird\n69921,airplane\n69922,bird\n69923,airplane\n69924,deer\n69925,frog\n69926,frog\n69927,automobile\n69928,automobile\n69929,truck\n69930,cat\n69931,bird\n69932,ship\n69933,frog\n69934,deer\n69935,horse\n69936,automobile\n69937,airplane\n69938,deer\n69939,truck\n69940,cat\n69941,truck\n69942,bird\n69943,bird\n69944,airplane\n69945,ship\n69946,automobile\n69947,truck\n69948,dog\n69949,cat\n69950,cat\n69951,cat\n69952,cat\n69953,frog\n69954,deer\n69955,frog\n69956,truck\n69957,truck\n69958,cat\n69959,truck\n69960,cat\n69961,horse\n69962,horse\n69963,cat\n69964,dog\n69965,automobile\n69966,airplane\n69967,frog\n69968,ship\n69969,ship\n69970,horse\n69971,cat\n69972,airplane\n69973,automobile\n69974,horse\n69975,frog\n69976,cat\n69977,automobile\n69978,horse\n69979,ship\n69980,truck\n69981,cat\n69982,ship\n69983,frog\n69984,frog\n69985,ship\n69986,automobile\n69987,bird\n69988,deer\n69989,dog\n69990,deer\n69991,truck\n69992,bird\n69993,frog\n69994,frog\n69995,bird\n69996,cat\n69997,cat\n69998,deer\n69999,frog\n70000,frog\n70001,deer\n70002,automobile\n70003,ship\n70004,ship\n70005,bird\n70006,horse\n70007,automobile\n70008,deer\n70009,dog\n70010,cat\n70011,cat\n70012,frog\n70013,airplane\n70014,deer\n70015,cat\n70016,dog\n70017,truck\n70018,deer\n70019,frog\n70020,cat\n70021,bird\n70022,bird\n70023,frog\n70024,truck\n70025,frog\n70026,deer\n70027,frog\n70028,deer\n70029,airplane\n70030,frog\n70031,deer\n70032,airplane\n70033,dog\n70034,truck\n70035,dog\n70036,cat\n70037,cat\n70038,truck\n70039,ship\n70040,ship\n70041,horse\n70042,truck\n70043,automobile\n70044,airplane\n70045,deer\n70046,deer\n70047,horse\n70048,deer\n70049,horse\n70050,frog\n70051,horse\n70052,frog\n70053,automobile\n70054,truck\n70055,deer\n70056,truck\n70057,deer\n70058,bird\n70059,bird\n70060,ship\n70061,frog\n70062,deer\n70063,cat\n70064,cat\n70065,dog\n70066,deer\n70067,truck\n70068,deer\n70069,truck\n70070,deer\n70071,bird\n70072,truck\n70073,bird\n70074,truck\n70075,airplane\n70076,bird\n70077,automobile\n70078,dog\n70079,dog\n70080,cat\n70081,frog\n70082,airplane\n70083,deer\n70084,airplane\n70085,frog\n70086,horse\n70087,automobile\n70088,airplane\n70089,deer\n70090,truck\n70091,cat\n70092,cat\n70093,dog\n70094,truck\n70095,cat\n70096,airplane\n70097,cat\n70098,dog\n70099,airplane\n70100,dog\n70101,horse\n70102,airplane\n70103,bird\n70104,automobile\n70105,airplane\n70106,frog\n70107,dog\n70108,truck\n70109,automobile\n70110,bird\n70111,deer\n70112,deer\n70113,dog\n70114,automobile\n70115,ship\n70116,truck\n70117,truck\n70118,bird\n70119,automobile\n70120,horse\n70121,automobile\n70122,truck\n70123,deer\n70124,cat\n70125,automobile\n70126,frog\n70127,dog\n70128,horse\n70129,truck\n70130,airplane\n70131,frog\n70132,frog\n70133,cat\n70134,automobile\n70135,cat\n70136,truck\n70137,dog\n70138,frog\n70139,truck\n70140,ship\n70141,deer\n70142,frog\n70143,horse\n70144,truck\n70145,cat\n70146,ship\n70147,bird\n70148,ship\n70149,horse\n70150,deer\n70151,cat\n70152,frog\n70153,frog\n70154,bird\n70155,dog\n70156,truck\n70157,cat\n70158,frog\n70159,bird\n70160,truck\n70161,cat\n70162,dog\n70163,deer\n70164,bird\n70165,ship\n70166,deer\n70167,horse\n70168,truck\n70169,dog\n70170,automobile\n70171,cat\n70172,frog\n70173,airplane\n70174,truck\n70175,cat\n70176,dog\n70177,frog\n70178,frog\n70179,horse\n70180,dog\n70181,horse\n70182,automobile\n70183,deer\n70184,horse\n70185,ship\n70186,dog\n70187,cat\n70188,bird\n70189,cat\n70190,frog\n70191,ship\n70192,airplane\n70193,truck\n70194,dog\n70195,airplane\n70196,ship\n70197,frog\n70198,cat\n70199,deer\n70200,dog\n70201,cat\n70202,deer\n70203,dog\n70204,deer\n70205,dog\n70206,bird\n70207,cat\n70208,horse\n70209,dog\n70210,dog\n70211,deer\n70212,frog\n70213,deer\n70214,automobile\n70215,deer\n70216,bird\n70217,cat\n70218,horse\n70219,dog\n70220,horse\n70221,airplane\n70222,cat\n70223,bird\n70224,deer\n70225,deer\n70226,cat\n70227,dog\n70228,bird\n70229,airplane\n70230,frog\n70231,deer\n70232,dog\n70233,ship\n70234,frog\n70235,bird\n70236,truck\n70237,deer\n70238,deer\n70239,horse\n70240,horse\n70241,dog\n70242,dog\n70243,deer\n70244,frog\n70245,automobile\n70246,dog\n70247,horse\n70248,automobile\n70249,automobile\n70250,ship\n70251,deer\n70252,cat\n70253,automobile\n70254,truck\n70255,frog\n70256,airplane\n70257,dog\n70258,horse\n70259,automobile\n70260,automobile\n70261,horse\n70262,deer\n70263,automobile\n70264,automobile\n70265,automobile\n70266,dog\n70267,deer\n70268,bird\n70269,ship\n70270,ship\n70271,airplane\n70272,dog\n70273,cat\n70274,automobile\n70275,horse\n70276,frog\n70277,bird\n70278,frog\n70279,automobile\n70280,cat\n70281,dog\n70282,bird\n70283,airplane\n70284,deer\n70285,airplane\n70286,cat\n70287,cat\n70288,airplane\n70289,dog\n70290,dog\n70291,ship\n70292,cat\n70293,horse\n70294,automobile\n70295,airplane\n70296,frog\n70297,frog\n70298,horse\n70299,deer\n70300,airplane\n70301,dog\n70302,truck\n70303,deer\n70304,truck\n70305,bird\n70306,deer\n70307,frog\n70308,frog\n70309,ship\n70310,dog\n70311,ship\n70312,ship\n70313,horse\n70314,deer\n70315,bird\n70316,truck\n70317,dog\n70318,cat\n70319,automobile\n70320,airplane\n70321,deer\n70322,ship\n70323,frog\n70324,frog\n70325,ship\n70326,automobile\n70327,cat\n70328,deer\n70329,ship\n70330,horse\n70331,ship\n70332,airplane\n70333,frog\n70334,ship\n70335,truck\n70336,automobile\n70337,ship\n70338,horse\n70339,horse\n70340,horse\n70341,horse\n70342,frog\n70343,frog\n70344,ship\n70345,truck\n70346,ship\n70347,frog\n70348,deer\n70349,cat\n70350,frog\n70351,horse\n70352,airplane\n70353,airplane\n70354,truck\n70355,airplane\n70356,dog\n70357,horse\n70358,horse\n70359,cat\n70360,automobile\n70361,cat\n70362,automobile\n70363,airplane\n70364,airplane\n70365,dog\n70366,bird\n70367,ship\n70368,cat\n70369,horse\n70370,cat\n70371,cat\n70372,bird\n70373,horse\n70374,truck\n70375,automobile\n70376,automobile\n70377,cat\n70378,dog\n70379,frog\n70380,ship\n70381,cat\n70382,cat\n70383,truck\n70384,cat\n70385,frog\n70386,cat\n70387,deer\n70388,ship\n70389,cat\n70390,bird\n70391,airplane\n70392,cat\n70393,ship\n70394,cat\n70395,truck\n70396,bird\n70397,bird\n70398,automobile\n70399,truck\n70400,dog\n70401,deer\n70402,deer\n70403,horse\n70404,automobile\n70405,airplane\n70406,bird\n70407,bird\n70408,truck\n70409,ship\n70410,bird\n70411,cat\n70412,bird\n70413,truck\n70414,frog\n70415,cat\n70416,frog\n70417,ship\n70418,cat\n70419,truck\n70420,truck\n70421,automobile\n70422,ship\n70423,frog\n70424,truck\n70425,ship\n70426,automobile\n70427,horse\n70428,truck\n70429,frog\n70430,truck\n70431,ship\n70432,horse\n70433,truck\n70434,automobile\n70435,deer\n70436,frog\n70437,frog\n70438,ship\n70439,airplane\n70440,cat\n70441,dog\n70442,truck\n70443,frog\n70444,bird\n70445,cat\n70446,horse\n70447,airplane\n70448,ship\n70449,cat\n70450,truck\n70451,truck\n70452,automobile\n70453,frog\n70454,deer\n70455,automobile\n70456,truck\n70457,frog\n70458,airplane\n70459,cat\n70460,deer\n70461,deer\n70462,frog\n70463,dog\n70464,truck\n70465,automobile\n70466,cat\n70467,horse\n70468,bird\n70469,airplane\n70470,frog\n70471,airplane\n70472,frog\n70473,automobile\n70474,horse\n70475,automobile\n70476,frog\n70477,horse\n70478,frog\n70479,dog\n70480,cat\n70481,horse\n70482,truck\n70483,cat\n70484,ship\n70485,cat\n70486,bird\n70487,horse\n70488,dog\n70489,bird\n70490,frog\n70491,frog\n70492,deer\n70493,deer\n70494,deer\n70495,dog\n70496,truck\n70497,deer\n70498,automobile\n70499,cat\n70500,bird\n70501,horse\n70502,frog\n70503,horse\n70504,cat\n70505,bird\n70506,truck\n70507,truck\n70508,dog\n70509,deer\n70510,truck\n70511,dog\n70512,cat\n70513,cat\n70514,horse\n70515,deer\n70516,airplane\n70517,deer\n70518,ship\n70519,frog\n70520,frog\n70521,frog\n70522,dog\n70523,deer\n70524,deer\n70525,truck\n70526,deer\n70527,cat\n70528,automobile\n70529,deer\n70530,deer\n70531,automobile\n70532,automobile\n70533,frog\n70534,truck\n70535,airplane\n70536,deer\n70537,ship\n70538,deer\n70539,deer\n70540,frog\n70541,horse\n70542,ship\n70543,deer\n70544,cat\n70545,cat\n70546,deer\n70547,frog\n70548,automobile\n70549,bird\n70550,frog\n70551,cat\n70552,deer\n70553,truck\n70554,horse\n70555,bird\n70556,dog\n70557,cat\n70558,automobile\n70559,frog\n70560,dog\n70561,automobile\n70562,frog\n70563,ship\n70564,horse\n70565,horse\n70566,horse\n70567,frog\n70568,bird\n70569,deer\n70570,airplane\n70571,horse\n70572,frog\n70573,airplane\n70574,horse\n70575,automobile\n70576,automobile\n70577,cat\n70578,automobile\n70579,bird\n70580,cat\n70581,horse\n70582,dog\n70583,ship\n70584,deer\n70585,bird\n70586,dog\n70587,bird\n70588,frog\n70589,bird\n70590,deer\n70591,automobile\n70592,cat\n70593,horse\n70594,horse\n70595,airplane\n70596,frog\n70597,cat\n70598,deer\n70599,automobile\n70600,truck\n70601,dog\n70602,ship\n70603,airplane\n70604,dog\n70605,truck\n70606,frog\n70607,automobile\n70608,frog\n70609,frog\n70610,horse\n70611,frog\n70612,horse\n70613,frog\n70614,automobile\n70615,ship\n70616,airplane\n70617,deer\n70618,deer\n70619,truck\n70620,dog\n70621,ship\n70622,ship\n70623,horse\n70624,frog\n70625,cat\n70626,automobile\n70627,horse\n70628,ship\n70629,cat\n70630,cat\n70631,dog\n70632,deer\n70633,truck\n70634,ship\n70635,dog\n70636,deer\n70637,truck\n70638,airplane\n70639,dog\n70640,ship\n70641,airplane\n70642,deer\n70643,bird\n70644,deer\n70645,deer\n70646,ship\n70647,cat\n70648,cat\n70649,dog\n70650,horse\n70651,frog\n70652,truck\n70653,deer\n70654,cat\n70655,automobile\n70656,horse\n70657,automobile\n70658,cat\n70659,bird\n70660,dog\n70661,ship\n70662,ship\n70663,frog\n70664,cat\n70665,deer\n70666,frog\n70667,airplane\n70668,automobile\n70669,ship\n70670,bird\n70671,bird\n70672,horse\n70673,deer\n70674,bird\n70675,horse\n70676,bird\n70677,automobile\n70678,horse\n70679,deer\n70680,truck\n70681,dog\n70682,frog\n70683,deer\n70684,deer\n70685,frog\n70686,automobile\n70687,frog\n70688,deer\n70689,dog\n70690,deer\n70691,bird\n70692,truck\n70693,bird\n70694,dog\n70695,ship\n70696,truck\n70697,horse\n70698,deer\n70699,horse\n70700,frog\n70701,dog\n70702,horse\n70703,dog\n70704,frog\n70705,automobile\n70706,truck\n70707,ship\n70708,frog\n70709,deer\n70710,deer\n70711,frog\n70712,frog\n70713,truck\n70714,dog\n70715,deer\n70716,truck\n70717,deer\n70718,frog\n70719,dog\n70720,frog\n70721,truck\n70722,frog\n70723,ship\n70724,automobile\n70725,horse\n70726,horse\n70727,airplane\n70728,cat\n70729,bird\n70730,deer\n70731,truck\n70732,automobile\n70733,ship\n70734,dog\n70735,cat\n70736,dog\n70737,dog\n70738,airplane\n70739,truck\n70740,horse\n70741,automobile\n70742,frog\n70743,ship\n70744,deer\n70745,ship\n70746,dog\n70747,deer\n70748,ship\n70749,frog\n70750,cat\n70751,deer\n70752,dog\n70753,horse\n70754,deer\n70755,dog\n70756,truck\n70757,cat\n70758,horse\n70759,ship\n70760,bird\n70761,frog\n70762,deer\n70763,truck\n70764,cat\n70765,ship\n70766,airplane\n70767,automobile\n70768,dog\n70769,cat\n70770,deer\n70771,dog\n70772,frog\n70773,bird\n70774,deer\n70775,deer\n70776,truck\n70777,bird\n70778,deer\n70779,horse\n70780,deer\n70781,truck\n70782,airplane\n70783,cat\n70784,deer\n70785,airplane\n70786,horse\n70787,horse\n70788,truck\n70789,airplane\n70790,frog\n70791,deer\n70792,cat\n70793,truck\n70794,cat\n70795,cat\n70796,horse\n70797,cat\n70798,horse\n70799,dog\n70800,bird\n70801,automobile\n70802,horse\n70803,airplane\n70804,horse\n70805,deer\n70806,horse\n70807,cat\n70808,frog\n70809,dog\n70810,cat\n70811,cat\n70812,dog\n70813,airplane\n70814,bird\n70815,horse\n70816,deer\n70817,airplane\n70818,deer\n70819,dog\n70820,bird\n70821,airplane\n70822,frog\n70823,cat\n70824,ship\n70825,dog\n70826,automobile\n70827,deer\n70828,cat\n70829,frog\n70830,deer\n70831,cat\n70832,cat\n70833,airplane\n70834,cat\n70835,airplane\n70836,truck\n70837,cat\n70838,frog\n70839,ship\n70840,bird\n70841,frog\n70842,cat\n70843,dog\n70844,ship\n70845,frog\n70846,automobile\n70847,cat\n70848,truck\n70849,bird\n70850,cat\n70851,truck\n70852,automobile\n70853,deer\n70854,cat\n70855,horse\n70856,bird\n70857,ship\n70858,bird\n70859,airplane\n70860,automobile\n70861,deer\n70862,ship\n70863,truck\n70864,truck\n70865,airplane\n70866,dog\n70867,ship\n70868,bird\n70869,truck\n70870,frog\n70871,bird\n70872,cat\n70873,airplane\n70874,truck\n70875,truck\n70876,airplane\n70877,deer\n70878,deer\n70879,dog\n70880,ship\n70881,horse\n70882,cat\n70883,ship\n70884,airplane\n70885,deer\n70886,automobile\n70887,bird\n70888,deer\n70889,cat\n70890,automobile\n70891,dog\n70892,automobile\n70893,airplane\n70894,truck\n70895,dog\n70896,bird\n70897,cat\n70898,cat\n70899,automobile\n70900,truck\n70901,horse\n70902,bird\n70903,dog\n70904,automobile\n70905,frog\n70906,horse\n70907,horse\n70908,deer\n70909,ship\n70910,cat\n70911,automobile\n70912,deer\n70913,horse\n70914,frog\n70915,frog\n70916,frog\n70917,horse\n70918,horse\n70919,automobile\n70920,ship\n70921,automobile\n70922,cat\n70923,deer\n70924,airplane\n70925,frog\n70926,frog\n70927,ship\n70928,horse\n70929,dog\n70930,automobile\n70931,dog\n70932,dog\n70933,dog\n70934,deer\n70935,horse\n70936,automobile\n70937,frog\n70938,horse\n70939,bird\n70940,bird\n70941,truck\n70942,automobile\n70943,cat\n70944,frog\n70945,deer\n70946,bird\n70947,frog\n70948,airplane\n70949,ship\n70950,dog\n70951,truck\n70952,cat\n70953,deer\n70954,bird\n70955,ship\n70956,airplane\n70957,horse\n70958,deer\n70959,truck\n70960,cat\n70961,automobile\n70962,dog\n70963,cat\n70964,horse\n70965,dog\n70966,cat\n70967,ship\n70968,cat\n70969,automobile\n70970,frog\n70971,frog\n70972,airplane\n70973,truck\n70974,deer\n70975,cat\n70976,truck\n70977,deer\n70978,deer\n70979,frog\n70980,truck\n70981,cat\n70982,dog\n70983,deer\n70984,deer\n70985,ship\n70986,cat\n70987,airplane\n70988,horse\n70989,dog\n70990,horse\n70991,cat\n70992,cat\n70993,ship\n70994,deer\n70995,horse\n70996,horse\n70997,automobile\n70998,truck\n70999,cat\n71000,dog\n71001,frog\n71002,ship\n71003,horse\n71004,deer\n71005,dog\n71006,horse\n71007,bird\n71008,airplane\n71009,cat\n71010,airplane\n71011,dog\n71012,bird\n71013,truck\n71014,airplane\n71015,deer\n71016,dog\n71017,airplane\n71018,deer\n71019,airplane\n71020,dog\n71021,cat\n71022,truck\n71023,bird\n71024,cat\n71025,airplane\n71026,truck\n71027,cat\n71028,ship\n71029,truck\n71030,frog\n71031,bird\n71032,dog\n71033,ship\n71034,horse\n71035,dog\n71036,horse\n71037,deer\n71038,truck\n71039,frog\n71040,airplane\n71041,deer\n71042,automobile\n71043,dog\n71044,horse\n71045,frog\n71046,bird\n71047,ship\n71048,bird\n71049,cat\n71050,airplane\n71051,horse\n71052,airplane\n71053,deer\n71054,frog\n71055,dog\n71056,bird\n71057,cat\n71058,deer\n71059,frog\n71060,airplane\n71061,frog\n71062,frog\n71063,automobile\n71064,ship\n71065,cat\n71066,truck\n71067,truck\n71068,automobile\n71069,ship\n71070,horse\n71071,frog\n71072,dog\n71073,bird\n71074,horse\n71075,dog\n71076,frog\n71077,cat\n71078,cat\n71079,deer\n71080,dog\n71081,cat\n71082,cat\n71083,automobile\n71084,dog\n71085,truck\n71086,airplane\n71087,dog\n71088,truck\n71089,cat\n71090,frog\n71091,airplane\n71092,dog\n71093,truck\n71094,horse\n71095,bird\n71096,deer\n71097,deer\n71098,bird\n71099,deer\n71100,dog\n71101,airplane\n71102,frog\n71103,cat\n71104,horse\n71105,deer\n71106,ship\n71107,frog\n71108,ship\n71109,deer\n71110,deer\n71111,frog\n71112,deer\n71113,bird\n71114,automobile\n71115,truck\n71116,bird\n71117,ship\n71118,automobile\n71119,bird\n71120,automobile\n71121,frog\n71122,deer\n71123,deer\n71124,frog\n71125,truck\n71126,cat\n71127,cat\n71128,ship\n71129,automobile\n71130,frog\n71131,cat\n71132,cat\n71133,deer\n71134,ship\n71135,frog\n71136,truck\n71137,frog\n71138,frog\n71139,frog\n71140,bird\n71141,dog\n71142,dog\n71143,ship\n71144,ship\n71145,truck\n71146,deer\n71147,cat\n71148,dog\n71149,deer\n71150,airplane\n71151,deer\n71152,airplane\n71153,airplane\n71154,airplane\n71155,bird\n71156,truck\n71157,ship\n71158,deer\n71159,bird\n71160,truck\n71161,frog\n71162,horse\n71163,bird\n71164,cat\n71165,cat\n71166,bird\n71167,automobile\n71168,ship\n71169,frog\n71170,truck\n71171,horse\n71172,deer\n71173,frog\n71174,ship\n71175,deer\n71176,bird\n71177,ship\n71178,frog\n71179,bird\n71180,airplane\n71181,bird\n71182,truck\n71183,dog\n71184,horse\n71185,bird\n71186,dog\n71187,bird\n71188,cat\n71189,truck\n71190,horse\n71191,deer\n71192,airplane\n71193,dog\n71194,dog\n71195,deer\n71196,airplane\n71197,deer\n71198,deer\n71199,ship\n71200,truck\n71201,truck\n71202,airplane\n71203,frog\n71204,airplane\n71205,airplane\n71206,ship\n71207,horse\n71208,cat\n71209,airplane\n71210,airplane\n71211,frog\n71212,truck\n71213,airplane\n71214,deer\n71215,frog\n71216,automobile\n71217,automobile\n71218,deer\n71219,airplane\n71220,deer\n71221,airplane\n71222,cat\n71223,ship\n71224,dog\n71225,ship\n71226,automobile\n71227,truck\n71228,cat\n71229,deer\n71230,airplane\n71231,deer\n71232,frog\n71233,deer\n71234,deer\n71235,bird\n71236,cat\n71237,ship\n71238,airplane\n71239,deer\n71240,bird\n71241,automobile\n71242,dog\n71243,bird\n71244,bird\n71245,truck\n71246,deer\n71247,horse\n71248,truck\n71249,bird\n71250,bird\n71251,cat\n71252,deer\n71253,truck\n71254,deer\n71255,cat\n71256,deer\n71257,airplane\n71258,automobile\n71259,cat\n71260,truck\n71261,ship\n71262,ship\n71263,bird\n71264,frog\n71265,deer\n71266,automobile\n71267,automobile\n71268,frog\n71269,frog\n71270,airplane\n71271,deer\n71272,dog\n71273,airplane\n71274,truck\n71275,cat\n71276,automobile\n71277,deer\n71278,bird\n71279,cat\n71280,deer\n71281,dog\n71282,ship\n71283,deer\n71284,ship\n71285,airplane\n71286,airplane\n71287,deer\n71288,cat\n71289,truck\n71290,horse\n71291,bird\n71292,automobile\n71293,automobile\n71294,bird\n71295,bird\n71296,truck\n71297,horse\n71298,truck\n71299,deer\n71300,ship\n71301,deer\n71302,horse\n71303,automobile\n71304,frog\n71305,cat\n71306,airplane\n71307,cat\n71308,deer\n71309,horse\n71310,horse\n71311,automobile\n71312,deer\n71313,bird\n71314,bird\n71315,deer\n71316,cat\n71317,automobile\n71318,cat\n71319,horse\n71320,horse\n71321,dog\n71322,bird\n71323,cat\n71324,horse\n71325,deer\n71326,cat\n71327,deer\n71328,airplane\n71329,deer\n71330,truck\n71331,airplane\n71332,frog\n71333,automobile\n71334,horse\n71335,frog\n71336,airplane\n71337,dog\n71338,truck\n71339,cat\n71340,automobile\n71341,airplane\n71342,dog\n71343,airplane\n71344,ship\n71345,deer\n71346,frog\n71347,deer\n71348,bird\n71349,horse\n71350,truck\n71351,cat\n71352,automobile\n71353,dog\n71354,truck\n71355,deer\n71356,cat\n71357,bird\n71358,cat\n71359,deer\n71360,truck\n71361,truck\n71362,truck\n71363,cat\n71364,horse\n71365,ship\n71366,deer\n71367,truck\n71368,airplane\n71369,deer\n71370,deer\n71371,cat\n71372,horse\n71373,cat\n71374,horse\n71375,bird\n71376,automobile\n71377,deer\n71378,horse\n71379,horse\n71380,cat\n71381,deer\n71382,truck\n71383,deer\n71384,horse\n71385,airplane\n71386,deer\n71387,truck\n71388,ship\n71389,truck\n71390,automobile\n71391,airplane\n71392,truck\n71393,frog\n71394,bird\n71395,airplane\n71396,bird\n71397,frog\n71398,deer\n71399,truck\n71400,truck\n71401,airplane\n71402,truck\n71403,frog\n71404,cat\n71405,frog\n71406,cat\n71407,automobile\n71408,airplane\n71409,frog\n71410,airplane\n71411,ship\n71412,deer\n71413,horse\n71414,dog\n71415,cat\n71416,ship\n71417,airplane\n71418,airplane\n71419,airplane\n71420,cat\n71421,frog\n71422,deer\n71423,cat\n71424,cat\n71425,frog\n71426,deer\n71427,automobile\n71428,deer\n71429,truck\n71430,truck\n71431,ship\n71432,horse\n71433,airplane\n71434,airplane\n71435,cat\n71436,cat\n71437,bird\n71438,bird\n71439,horse\n71440,cat\n71441,deer\n71442,dog\n71443,deer\n71444,truck\n71445,cat\n71446,horse\n71447,truck\n71448,airplane\n71449,truck\n71450,dog\n71451,frog\n71452,cat\n71453,deer\n71454,cat\n71455,truck\n71456,truck\n71457,frog\n71458,truck\n71459,truck\n71460,dog\n71461,automobile\n71462,deer\n71463,horse\n71464,cat\n71465,truck\n71466,deer\n71467,cat\n71468,deer\n71469,bird\n71470,cat\n71471,dog\n71472,cat\n71473,horse\n71474,automobile\n71475,horse\n71476,deer\n71477,frog\n71478,bird\n71479,cat\n71480,dog\n71481,ship\n71482,frog\n71483,dog\n71484,airplane\n71485,dog\n71486,automobile\n71487,horse\n71488,deer\n71489,truck\n71490,frog\n71491,cat\n71492,airplane\n71493,bird\n71494,cat\n71495,deer\n71496,truck\n71497,bird\n71498,frog\n71499,horse\n71500,cat\n71501,truck\n71502,airplane\n71503,bird\n71504,automobile\n71505,truck\n71506,bird\n71507,frog\n71508,automobile\n71509,automobile\n71510,cat\n71511,truck\n71512,bird\n71513,bird\n71514,horse\n71515,ship\n71516,horse\n71517,automobile\n71518,automobile\n71519,dog\n71520,airplane\n71521,automobile\n71522,airplane\n71523,deer\n71524,frog\n71525,frog\n71526,truck\n71527,dog\n71528,bird\n71529,deer\n71530,bird\n71531,airplane\n71532,ship\n71533,automobile\n71534,truck\n71535,cat\n71536,cat\n71537,airplane\n71538,bird\n71539,cat\n71540,cat\n71541,horse\n71542,dog\n71543,ship\n71544,airplane\n71545,truck\n71546,automobile\n71547,frog\n71548,bird\n71549,bird\n71550,airplane\n71551,automobile\n71552,deer\n71553,cat\n71554,automobile\n71555,horse\n71556,truck\n71557,automobile\n71558,horse\n71559,automobile\n71560,automobile\n71561,dog\n71562,truck\n71563,dog\n71564,frog\n71565,horse\n71566,deer\n71567,deer\n71568,frog\n71569,frog\n71570,cat\n71571,dog\n71572,dog\n71573,frog\n71574,dog\n71575,cat\n71576,airplane\n71577,airplane\n71578,cat\n71579,airplane\n71580,truck\n71581,frog\n71582,truck\n71583,ship\n71584,bird\n71585,bird\n71586,frog\n71587,truck\n71588,ship\n71589,bird\n71590,dog\n71591,dog\n71592,dog\n71593,cat\n71594,deer\n71595,dog\n71596,truck\n71597,bird\n71598,deer\n71599,cat\n71600,automobile\n71601,dog\n71602,frog\n71603,airplane\n71604,bird\n71605,truck\n71606,automobile\n71607,cat\n71608,bird\n71609,airplane\n71610,cat\n71611,automobile\n71612,airplane\n71613,cat\n71614,horse\n71615,bird\n71616,automobile\n71617,cat\n71618,frog\n71619,truck\n71620,airplane\n71621,deer\n71622,cat\n71623,ship\n71624,cat\n71625,deer\n71626,bird\n71627,horse\n71628,dog\n71629,airplane\n71630,dog\n71631,deer\n71632,deer\n71633,dog\n71634,truck\n71635,airplane\n71636,truck\n71637,deer\n71638,bird\n71639,frog\n71640,frog\n71641,horse\n71642,bird\n71643,bird\n71644,deer\n71645,horse\n71646,automobile\n71647,deer\n71648,truck\n71649,bird\n71650,frog\n71651,truck\n71652,dog\n71653,horse\n71654,airplane\n71655,horse\n71656,dog\n71657,dog\n71658,airplane\n71659,airplane\n71660,deer\n71661,frog\n71662,truck\n71663,cat\n71664,dog\n71665,deer\n71666,cat\n71667,bird\n71668,cat\n71669,dog\n71670,airplane\n71671,automobile\n71672,bird\n71673,automobile\n71674,automobile\n71675,frog\n71676,ship\n71677,ship\n71678,automobile\n71679,automobile\n71680,bird\n71681,deer\n71682,ship\n71683,truck\n71684,deer\n71685,dog\n71686,horse\n71687,cat\n71688,frog\n71689,bird\n71690,deer\n71691,ship\n71692,deer\n71693,dog\n71694,bird\n71695,airplane\n71696,horse\n71697,cat\n71698,ship\n71699,deer\n71700,frog\n71701,ship\n71702,dog\n71703,frog\n71704,airplane\n71705,airplane\n71706,horse\n71707,cat\n71708,horse\n71709,deer\n71710,truck\n71711,truck\n71712,bird\n71713,deer\n71714,frog\n71715,cat\n71716,horse\n71717,deer\n71718,airplane\n71719,airplane\n71720,dog\n71721,ship\n71722,frog\n71723,frog\n71724,cat\n71725,ship\n71726,deer\n71727,deer\n71728,deer\n71729,horse\n71730,deer\n71731,cat\n71732,bird\n71733,dog\n71734,cat\n71735,cat\n71736,dog\n71737,horse\n71738,deer\n71739,automobile\n71740,dog\n71741,bird\n71742,cat\n71743,deer\n71744,frog\n71745,frog\n71746,bird\n71747,deer\n71748,deer\n71749,ship\n71750,airplane\n71751,cat\n71752,frog\n71753,truck\n71754,deer\n71755,bird\n71756,airplane\n71757,bird\n71758,automobile\n71759,deer\n71760,dog\n71761,dog\n71762,automobile\n71763,deer\n71764,truck\n71765,dog\n71766,automobile\n71767,dog\n71768,horse\n71769,dog\n71770,ship\n71771,dog\n71772,automobile\n71773,horse\n71774,automobile\n71775,airplane\n71776,truck\n71777,dog\n71778,cat\n71779,airplane\n71780,cat\n71781,ship\n71782,deer\n71783,truck\n71784,frog\n71785,airplane\n71786,deer\n71787,cat\n71788,truck\n71789,truck\n71790,dog\n71791,horse\n71792,deer\n71793,deer\n71794,cat\n71795,frog\n71796,automobile\n71797,truck\n71798,ship\n71799,airplane\n71800,cat\n71801,horse\n71802,frog\n71803,truck\n71804,truck\n71805,cat\n71806,bird\n71807,dog\n71808,cat\n71809,frog\n71810,bird\n71811,automobile\n71812,dog\n71813,ship\n71814,deer\n71815,cat\n71816,airplane\n71817,horse\n71818,cat\n71819,automobile\n71820,deer\n71821,truck\n71822,bird\n71823,dog\n71824,horse\n71825,horse\n71826,cat\n71827,dog\n71828,dog\n71829,truck\n71830,deer\n71831,deer\n71832,automobile\n71833,truck\n71834,deer\n71835,deer\n71836,truck\n71837,cat\n71838,deer\n71839,cat\n71840,ship\n71841,frog\n71842,deer\n71843,frog\n71844,airplane\n71845,truck\n71846,frog\n71847,deer\n71848,horse\n71849,deer\n71850,frog\n71851,automobile\n71852,horse\n71853,deer\n71854,cat\n71855,truck\n71856,bird\n71857,airplane\n71858,airplane\n71859,frog\n71860,airplane\n71861,frog\n71862,horse\n71863,bird\n71864,frog\n71865,dog\n71866,truck\n71867,frog\n71868,deer\n71869,frog\n71870,bird\n71871,cat\n71872,ship\n71873,deer\n71874,airplane\n71875,frog\n71876,ship\n71877,bird\n71878,dog\n71879,deer\n71880,horse\n71881,horse\n71882,frog\n71883,cat\n71884,deer\n71885,airplane\n71886,truck\n71887,deer\n71888,cat\n71889,frog\n71890,bird\n71891,frog\n71892,truck\n71893,deer\n71894,truck\n71895,frog\n71896,ship\n71897,deer\n71898,deer\n71899,dog\n71900,ship\n71901,airplane\n71902,deer\n71903,deer\n71904,cat\n71905,cat\n71906,deer\n71907,cat\n71908,ship\n71909,dog\n71910,cat\n71911,dog\n71912,bird\n71913,cat\n71914,horse\n71915,automobile\n71916,deer\n71917,deer\n71918,deer\n71919,frog\n71920,frog\n71921,bird\n71922,cat\n71923,dog\n71924,truck\n71925,airplane\n71926,deer\n71927,truck\n71928,dog\n71929,truck\n71930,dog\n71931,cat\n71932,truck\n71933,cat\n71934,frog\n71935,bird\n71936,horse\n71937,horse\n71938,deer\n71939,bird\n71940,deer\n71941,frog\n71942,horse\n71943,cat\n71944,bird\n71945,airplane\n71946,dog\n71947,bird\n71948,dog\n71949,bird\n71950,horse\n71951,truck\n71952,dog\n71953,automobile\n71954,airplane\n71955,truck\n71956,frog\n71957,ship\n71958,deer\n71959,cat\n71960,bird\n71961,deer\n71962,truck\n71963,ship\n71964,horse\n71965,frog\n71966,bird\n71967,dog\n71968,truck\n71969,deer\n71970,ship\n71971,cat\n71972,frog\n71973,horse\n71974,dog\n71975,automobile\n71976,ship\n71977,truck\n71978,dog\n71979,deer\n71980,automobile\n71981,ship\n71982,ship\n71983,horse\n71984,horse\n71985,deer\n71986,airplane\n71987,dog\n71988,bird\n71989,deer\n71990,frog\n71991,cat\n71992,cat\n71993,cat\n71994,cat\n71995,frog\n71996,deer\n71997,bird\n71998,horse\n71999,truck\n72000,deer\n72001,automobile\n72002,automobile\n72003,deer\n72004,deer\n72005,cat\n72006,dog\n72007,horse\n72008,horse\n72009,dog\n72010,airplane\n72011,truck\n72012,frog\n72013,bird\n72014,automobile\n72015,dog\n72016,cat\n72017,airplane\n72018,horse\n72019,airplane\n72020,bird\n72021,deer\n72022,truck\n72023,airplane\n72024,bird\n72025,dog\n72026,deer\n72027,deer\n72028,frog\n72029,bird\n72030,bird\n72031,dog\n72032,cat\n72033,deer\n72034,horse\n72035,truck\n72036,frog\n72037,dog\n72038,cat\n72039,cat\n72040,dog\n72041,bird\n72042,truck\n72043,bird\n72044,airplane\n72045,airplane\n72046,ship\n72047,deer\n72048,ship\n72049,deer\n72050,frog\n72051,truck\n72052,bird\n72053,ship\n72054,dog\n72055,ship\n72056,dog\n72057,deer\n72058,airplane\n72059,ship\n72060,dog\n72061,deer\n72062,deer\n72063,horse\n72064,bird\n72065,frog\n72066,deer\n72067,dog\n72068,truck\n72069,airplane\n72070,deer\n72071,bird\n72072,truck\n72073,cat\n72074,dog\n72075,dog\n72076,cat\n72077,frog\n72078,cat\n72079,cat\n72080,airplane\n72081,cat\n72082,bird\n72083,ship\n72084,bird\n72085,automobile\n72086,truck\n72087,dog\n72088,automobile\n72089,automobile\n72090,automobile\n72091,automobile\n72092,cat\n72093,dog\n72094,automobile\n72095,automobile\n72096,deer\n72097,dog\n72098,cat\n72099,deer\n72100,deer\n72101,truck\n72102,deer\n72103,dog\n72104,frog\n72105,frog\n72106,dog\n72107,cat\n72108,horse\n72109,frog\n72110,frog\n72111,ship\n72112,dog\n72113,horse\n72114,horse\n72115,ship\n72116,bird\n72117,truck\n72118,deer\n72119,cat\n72120,deer\n72121,horse\n72122,deer\n72123,ship\n72124,cat\n72125,horse\n72126,dog\n72127,deer\n72128,bird\n72129,deer\n72130,horse\n72131,automobile\n72132,airplane\n72133,frog\n72134,horse\n72135,ship\n72136,deer\n72137,deer\n72138,deer\n72139,dog\n72140,ship\n72141,frog\n72142,automobile\n72143,frog\n72144,deer\n72145,horse\n72146,bird\n72147,deer\n72148,dog\n72149,dog\n72150,cat\n72151,bird\n72152,cat\n72153,truck\n72154,deer\n72155,automobile\n72156,ship\n72157,horse\n72158,deer\n72159,ship\n72160,deer\n72161,bird\n72162,deer\n72163,horse\n72164,deer\n72165,truck\n72166,truck\n72167,deer\n72168,truck\n72169,airplane\n72170,deer\n72171,deer\n72172,frog\n72173,airplane\n72174,airplane\n72175,automobile\n72176,horse\n72177,ship\n72178,frog\n72179,deer\n72180,airplane\n72181,horse\n72182,bird\n72183,ship\n72184,bird\n72185,frog\n72186,deer\n72187,airplane\n72188,bird\n72189,automobile\n72190,deer\n72191,bird\n72192,deer\n72193,automobile\n72194,ship\n72195,deer\n72196,dog\n72197,horse\n72198,cat\n72199,deer\n72200,dog\n72201,bird\n72202,dog\n72203,deer\n72204,horse\n72205,truck\n72206,ship\n72207,airplane\n72208,truck\n72209,horse\n72210,deer\n72211,dog\n72212,automobile\n72213,horse\n72214,automobile\n72215,automobile\n72216,truck\n72217,frog\n72218,frog\n72219,horse\n72220,dog\n72221,horse\n72222,dog\n72223,cat\n72224,cat\n72225,frog\n72226,airplane\n72227,cat\n72228,dog\n72229,deer\n72230,automobile\n72231,automobile\n72232,horse\n72233,frog\n72234,deer\n72235,truck\n72236,cat\n72237,airplane\n72238,automobile\n72239,dog\n72240,bird\n72241,frog\n72242,deer\n72243,frog\n72244,bird\n72245,frog\n72246,deer\n72247,horse\n72248,automobile\n72249,bird\n72250,automobile\n72251,frog\n72252,deer\n72253,horse\n72254,horse\n72255,cat\n72256,deer\n72257,truck\n72258,airplane\n72259,deer\n72260,cat\n72261,truck\n72262,automobile\n72263,frog\n72264,deer\n72265,airplane\n72266,frog\n72267,deer\n72268,frog\n72269,airplane\n72270,airplane\n72271,truck\n72272,deer\n72273,automobile\n72274,frog\n72275,horse\n72276,dog\n72277,frog\n72278,cat\n72279,horse\n72280,deer\n72281,dog\n72282,cat\n72283,truck\n72284,deer\n72285,deer\n72286,truck\n72287,cat\n72288,deer\n72289,ship\n72290,frog\n72291,automobile\n72292,bird\n72293,truck\n72294,horse\n72295,dog\n72296,cat\n72297,horse\n72298,dog\n72299,horse\n72300,frog\n72301,cat\n72302,horse\n72303,horse\n72304,truck\n72305,frog\n72306,deer\n72307,bird\n72308,horse\n72309,bird\n72310,airplane\n72311,deer\n72312,automobile\n72313,ship\n72314,horse\n72315,deer\n72316,ship\n72317,deer\n72318,cat\n72319,ship\n72320,frog\n72321,automobile\n72322,dog\n72323,deer\n72324,deer\n72325,truck\n72326,bird\n72327,cat\n72328,ship\n72329,horse\n72330,deer\n72331,frog\n72332,deer\n72333,deer\n72334,frog\n72335,horse\n72336,horse\n72337,airplane\n72338,truck\n72339,frog\n72340,frog\n72341,airplane\n72342,ship\n72343,cat\n72344,ship\n72345,ship\n72346,truck\n72347,airplane\n72348,airplane\n72349,cat\n72350,cat\n72351,deer\n72352,frog\n72353,frog\n72354,deer\n72355,deer\n72356,truck\n72357,truck\n72358,airplane\n72359,ship\n72360,ship\n72361,dog\n72362,dog\n72363,dog\n72364,truck\n72365,truck\n72366,frog\n72367,truck\n72368,deer\n72369,dog\n72370,cat\n72371,frog\n72372,truck\n72373,frog\n72374,frog\n72375,deer\n72376,dog\n72377,deer\n72378,frog\n72379,truck\n72380,horse\n72381,bird\n72382,dog\n72383,horse\n72384,dog\n72385,cat\n72386,deer\n72387,truck\n72388,dog\n72389,horse\n72390,ship\n72391,horse\n72392,cat\n72393,truck\n72394,dog\n72395,truck\n72396,dog\n72397,horse\n72398,dog\n72399,frog\n72400,truck\n72401,bird\n72402,dog\n72403,frog\n72404,deer\n72405,automobile\n72406,dog\n72407,airplane\n72408,truck\n72409,dog\n72410,deer\n72411,cat\n72412,ship\n72413,ship\n72414,frog\n72415,ship\n72416,cat\n72417,deer\n72418,dog\n72419,cat\n72420,truck\n72421,horse\n72422,truck\n72423,dog\n72424,ship\n72425,airplane\n72426,deer\n72427,deer\n72428,cat\n72429,bird\n72430,frog\n72431,cat\n72432,frog\n72433,deer\n72434,deer\n72435,truck\n72436,truck\n72437,dog\n72438,ship\n72439,truck\n72440,truck\n72441,frog\n72442,deer\n72443,bird\n72444,dog\n72445,horse\n72446,bird\n72447,deer\n72448,dog\n72449,cat\n72450,dog\n72451,frog\n72452,automobile\n72453,ship\n72454,dog\n72455,deer\n72456,truck\n72457,airplane\n72458,frog\n72459,dog\n72460,automobile\n72461,frog\n72462,deer\n72463,horse\n72464,automobile\n72465,frog\n72466,cat\n72467,truck\n72468,deer\n72469,airplane\n72470,deer\n72471,deer\n72472,horse\n72473,cat\n72474,ship\n72475,frog\n72476,deer\n72477,automobile\n72478,cat\n72479,frog\n72480,ship\n72481,horse\n72482,bird\n72483,truck\n72484,airplane\n72485,frog\n72486,truck\n72487,frog\n72488,frog\n72489,bird\n72490,truck\n72491,deer\n72492,cat\n72493,dog\n72494,automobile\n72495,deer\n72496,ship\n72497,frog\n72498,dog\n72499,bird\n72500,airplane\n72501,airplane\n72502,cat\n72503,horse\n72504,truck\n72505,truck\n72506,horse\n72507,frog\n72508,ship\n72509,dog\n72510,automobile\n72511,bird\n72512,horse\n72513,automobile\n72514,bird\n72515,airplane\n72516,frog\n72517,airplane\n72518,truck\n72519,ship\n72520,ship\n72521,frog\n72522,frog\n72523,airplane\n72524,truck\n72525,frog\n72526,bird\n72527,ship\n72528,dog\n72529,truck\n72530,automobile\n72531,airplane\n72532,frog\n72533,airplane\n72534,airplane\n72535,deer\n72536,bird\n72537,cat\n72538,bird\n72539,deer\n72540,deer\n72541,truck\n72542,deer\n72543,dog\n72544,truck\n72545,deer\n72546,horse\n72547,dog\n72548,bird\n72549,horse\n72550,deer\n72551,frog\n72552,cat\n72553,bird\n72554,automobile\n72555,ship\n72556,ship\n72557,horse\n72558,airplane\n72559,dog\n72560,automobile\n72561,automobile\n72562,deer\n72563,automobile\n72564,bird\n72565,horse\n72566,cat\n72567,cat\n72568,horse\n72569,bird\n72570,bird\n72571,deer\n72572,horse\n72573,cat\n72574,bird\n72575,cat\n72576,cat\n72577,dog\n72578,automobile\n72579,truck\n72580,horse\n72581,ship\n72582,deer\n72583,deer\n72584,frog\n72585,airplane\n72586,cat\n72587,horse\n72588,bird\n72589,automobile\n72590,airplane\n72591,dog\n72592,dog\n72593,ship\n72594,truck\n72595,frog\n72596,deer\n72597,frog\n72598,deer\n72599,airplane\n72600,dog\n72601,truck\n72602,horse\n72603,deer\n72604,airplane\n72605,cat\n72606,automobile\n72607,frog\n72608,ship\n72609,dog\n72610,frog\n72611,automobile\n72612,dog\n72613,cat\n72614,automobile\n72615,cat\n72616,dog\n72617,truck\n72618,airplane\n72619,deer\n72620,dog\n72621,cat\n72622,ship\n72623,airplane\n72624,airplane\n72625,horse\n72626,deer\n72627,truck\n72628,cat\n72629,dog\n72630,cat\n72631,horse\n72632,airplane\n72633,horse\n72634,deer\n72635,frog\n72636,frog\n72637,deer\n72638,frog\n72639,frog\n72640,cat\n72641,deer\n72642,ship\n72643,bird\n72644,frog\n72645,ship\n72646,truck\n72647,bird\n72648,horse\n72649,truck\n72650,cat\n72651,cat\n72652,bird\n72653,dog\n72654,horse\n72655,truck\n72656,dog\n72657,deer\n72658,frog\n72659,truck\n72660,dog\n72661,deer\n72662,cat\n72663,cat\n72664,bird\n72665,deer\n72666,ship\n72667,airplane\n72668,dog\n72669,horse\n72670,cat\n72671,cat\n72672,truck\n72673,ship\n72674,truck\n72675,truck\n72676,horse\n72677,ship\n72678,deer\n72679,bird\n72680,frog\n72681,airplane\n72682,deer\n72683,automobile\n72684,automobile\n72685,airplane\n72686,dog\n72687,truck\n72688,ship\n72689,cat\n72690,automobile\n72691,dog\n72692,deer\n72693,truck\n72694,automobile\n72695,airplane\n72696,horse\n72697,deer\n72698,airplane\n72699,truck\n72700,airplane\n72701,deer\n72702,automobile\n72703,dog\n72704,airplane\n72705,cat\n72706,airplane\n72707,ship\n72708,airplane\n72709,dog\n72710,airplane\n72711,airplane\n72712,ship\n72713,deer\n72714,horse\n72715,deer\n72716,deer\n72717,horse\n72718,frog\n72719,cat\n72720,truck\n72721,cat\n72722,horse\n72723,ship\n72724,dog\n72725,ship\n72726,bird\n72727,horse\n72728,frog\n72729,ship\n72730,truck\n72731,airplane\n72732,cat\n72733,bird\n72734,frog\n72735,dog\n72736,horse\n72737,bird\n72738,deer\n72739,automobile\n72740,cat\n72741,cat\n72742,automobile\n72743,truck\n72744,ship\n72745,horse\n72746,deer\n72747,frog\n72748,frog\n72749,ship\n72750,automobile\n72751,airplane\n72752,truck\n72753,airplane\n72754,frog\n72755,frog\n72756,horse\n72757,frog\n72758,bird\n72759,airplane\n72760,truck\n72761,bird\n72762,dog\n72763,bird\n72764,bird\n72765,horse\n72766,ship\n72767,airplane\n72768,automobile\n72769,truck\n72770,cat\n72771,horse\n72772,horse\n72773,dog\n72774,dog\n72775,airplane\n72776,bird\n72777,truck\n72778,truck\n72779,deer\n72780,dog\n72781,airplane\n72782,bird\n72783,deer\n72784,cat\n72785,bird\n72786,cat\n72787,deer\n72788,ship\n72789,cat\n72790,horse\n72791,dog\n72792,truck\n72793,horse\n72794,deer\n72795,horse\n72796,deer\n72797,deer\n72798,frog\n72799,deer\n72800,cat\n72801,deer\n72802,automobile\n72803,deer\n72804,horse\n72805,deer\n72806,truck\n72807,frog\n72808,deer\n72809,dog\n72810,frog\n72811,cat\n72812,deer\n72813,cat\n72814,deer\n72815,automobile\n72816,cat\n72817,airplane\n72818,frog\n72819,frog\n72820,airplane\n72821,dog\n72822,deer\n72823,airplane\n72824,deer\n72825,truck\n72826,horse\n72827,bird\n72828,automobile\n72829,truck\n72830,dog\n72831,airplane\n72832,cat\n72833,truck\n72834,airplane\n72835,cat\n72836,cat\n72837,deer\n72838,dog\n72839,dog\n72840,bird\n72841,truck\n72842,bird\n72843,deer\n72844,frog\n72845,bird\n72846,ship\n72847,truck\n72848,truck\n72849,bird\n72850,airplane\n72851,truck\n72852,cat\n72853,cat\n72854,deer\n72855,deer\n72856,deer\n72857,frog\n72858,deer\n72859,truck\n72860,airplane\n72861,automobile\n72862,truck\n72863,frog\n72864,dog\n72865,dog\n72866,cat\n72867,deer\n72868,dog\n72869,horse\n72870,deer\n72871,truck\n72872,cat\n72873,dog\n72874,dog\n72875,cat\n72876,deer\n72877,frog\n72878,automobile\n72879,deer\n72880,frog\n72881,frog\n72882,truck\n72883,airplane\n72884,bird\n72885,frog\n72886,dog\n72887,dog\n72888,ship\n72889,horse\n72890,deer\n72891,cat\n72892,automobile\n72893,horse\n72894,cat\n72895,truck\n72896,truck\n72897,horse\n72898,horse\n72899,truck\n72900,automobile\n72901,dog\n72902,bird\n72903,cat\n72904,bird\n72905,ship\n72906,frog\n72907,airplane\n72908,cat\n72909,airplane\n72910,bird\n72911,airplane\n72912,frog\n72913,dog\n72914,automobile\n72915,frog\n72916,bird\n72917,ship\n72918,cat\n72919,ship\n72920,bird\n72921,airplane\n72922,bird\n72923,cat\n72924,truck\n72925,cat\n72926,deer\n72927,frog\n72928,frog\n72929,cat\n72930,deer\n72931,truck\n72932,truck\n72933,truck\n72934,deer\n72935,horse\n72936,ship\n72937,airplane\n72938,dog\n72939,frog\n72940,bird\n72941,dog\n72942,dog\n72943,frog\n72944,cat\n72945,truck\n72946,frog\n72947,deer\n72948,bird\n72949,bird\n72950,airplane\n72951,horse\n72952,truck\n72953,ship\n72954,truck\n72955,horse\n72956,deer\n72957,dog\n72958,airplane\n72959,horse\n72960,horse\n72961,bird\n72962,ship\n72963,deer\n72964,truck\n72965,frog\n72966,truck\n72967,ship\n72968,horse\n72969,truck\n72970,frog\n72971,deer\n72972,airplane\n72973,deer\n72974,deer\n72975,horse\n72976,truck\n72977,truck\n72978,frog\n72979,deer\n72980,deer\n72981,deer\n72982,frog\n72983,truck\n72984,cat\n72985,automobile\n72986,horse\n72987,deer\n72988,ship\n72989,frog\n72990,ship\n72991,ship\n72992,dog\n72993,deer\n72994,frog\n72995,ship\n72996,frog\n72997,deer\n72998,dog\n72999,automobile\n73000,truck\n73001,ship\n73002,horse\n73003,automobile\n73004,deer\n73005,cat\n73006,frog\n73007,cat\n73008,bird\n73009,truck\n73010,dog\n73011,cat\n73012,deer\n73013,cat\n73014,deer\n73015,truck\n73016,horse\n73017,dog\n73018,deer\n73019,horse\n73020,deer\n73021,airplane\n73022,deer\n73023,dog\n73024,deer\n73025,ship\n73026,deer\n73027,truck\n73028,frog\n73029,deer\n73030,frog\n73031,cat\n73032,ship\n73033,cat\n73034,horse\n73035,deer\n73036,deer\n73037,deer\n73038,deer\n73039,truck\n73040,frog\n73041,horse\n73042,horse\n73043,horse\n73044,automobile\n73045,airplane\n73046,frog\n73047,horse\n73048,frog\n73049,automobile\n73050,dog\n73051,frog\n73052,cat\n73053,cat\n73054,truck\n73055,deer\n73056,horse\n73057,truck\n73058,horse\n73059,truck\n73060,frog\n73061,bird\n73062,deer\n73063,dog\n73064,airplane\n73065,dog\n73066,dog\n73067,horse\n73068,horse\n73069,deer\n73070,cat\n73071,dog\n73072,dog\n73073,automobile\n73074,airplane\n73075,truck\n73076,horse\n73077,airplane\n73078,ship\n73079,frog\n73080,automobile\n73081,dog\n73082,cat\n73083,bird\n73084,airplane\n73085,deer\n73086,ship\n73087,horse\n73088,airplane\n73089,airplane\n73090,deer\n73091,cat\n73092,frog\n73093,cat\n73094,truck\n73095,dog\n73096,deer\n73097,deer\n73098,horse\n73099,deer\n73100,frog\n73101,cat\n73102,truck\n73103,deer\n73104,airplane\n73105,cat\n73106,automobile\n73107,deer\n73108,horse\n73109,airplane\n73110,deer\n73111,dog\n73112,cat\n73113,cat\n73114,frog\n73115,horse\n73116,deer\n73117,airplane\n73118,deer\n73119,truck\n73120,frog\n73121,ship\n73122,cat\n73123,airplane\n73124,dog\n73125,deer\n73126,cat\n73127,deer\n73128,truck\n73129,truck\n73130,horse\n73131,airplane\n73132,horse\n73133,dog\n73134,frog\n73135,bird\n73136,truck\n73137,bird\n73138,automobile\n73139,horse\n73140,airplane\n73141,cat\n73142,airplane\n73143,horse\n73144,bird\n73145,frog\n73146,bird\n73147,dog\n73148,airplane\n73149,deer\n73150,dog\n73151,frog\n73152,bird\n73153,ship\n73154,horse\n73155,dog\n73156,automobile\n73157,bird\n73158,dog\n73159,deer\n73160,dog\n73161,deer\n73162,bird\n73163,truck\n73164,automobile\n73165,cat\n73166,ship\n73167,airplane\n73168,ship\n73169,automobile\n73170,frog\n73171,horse\n73172,bird\n73173,automobile\n73174,deer\n73175,cat\n73176,deer\n73177,dog\n73178,horse\n73179,airplane\n73180,airplane\n73181,horse\n73182,bird\n73183,frog\n73184,cat\n73185,frog\n73186,airplane\n73187,dog\n73188,deer\n73189,airplane\n73190,frog\n73191,airplane\n73192,deer\n73193,automobile\n73194,deer\n73195,deer\n73196,deer\n73197,cat\n73198,truck\n73199,cat\n73200,truck\n73201,frog\n73202,automobile\n73203,automobile\n73204,bird\n73205,deer\n73206,cat\n73207,ship\n73208,bird\n73209,deer\n73210,automobile\n73211,cat\n73212,deer\n73213,frog\n73214,cat\n73215,deer\n73216,ship\n73217,dog\n73218,dog\n73219,horse\n73220,airplane\n73221,deer\n73222,cat\n73223,ship\n73224,horse\n73225,horse\n73226,frog\n73227,bird\n73228,dog\n73229,dog\n73230,frog\n73231,frog\n73232,bird\n73233,horse\n73234,deer\n73235,deer\n73236,cat\n73237,bird\n73238,cat\n73239,bird\n73240,deer\n73241,frog\n73242,dog\n73243,dog\n73244,airplane\n73245,cat\n73246,horse\n73247,dog\n73248,dog\n73249,frog\n73250,deer\n73251,deer\n73252,horse\n73253,ship\n73254,horse\n73255,automobile\n73256,deer\n73257,airplane\n73258,bird\n73259,dog\n73260,deer\n73261,bird\n73262,automobile\n73263,horse\n73264,cat\n73265,frog\n73266,truck\n73267,truck\n73268,cat\n73269,cat\n73270,bird\n73271,dog\n73272,horse\n73273,truck\n73274,ship\n73275,cat\n73276,dog\n73277,bird\n73278,deer\n73279,ship\n73280,cat\n73281,dog\n73282,deer\n73283,deer\n73284,deer\n73285,deer\n73286,truck\n73287,automobile\n73288,horse\n73289,airplane\n73290,frog\n73291,truck\n73292,airplane\n73293,dog\n73294,airplane\n73295,dog\n73296,frog\n73297,automobile\n73298,cat\n73299,dog\n73300,cat\n73301,bird\n73302,automobile\n73303,truck\n73304,dog\n73305,automobile\n73306,bird\n73307,cat\n73308,cat\n73309,ship\n73310,automobile\n73311,dog\n73312,dog\n73313,dog\n73314,truck\n73315,airplane\n73316,horse\n73317,deer\n73318,dog\n73319,deer\n73320,dog\n73321,frog\n73322,cat\n73323,frog\n73324,truck\n73325,bird\n73326,deer\n73327,frog\n73328,dog\n73329,dog\n73330,airplane\n73331,dog\n73332,deer\n73333,cat\n73334,deer\n73335,deer\n73336,truck\n73337,dog\n73338,airplane\n73339,truck\n73340,airplane\n73341,horse\n73342,cat\n73343,ship\n73344,cat\n73345,horse\n73346,frog\n73347,automobile\n73348,dog\n73349,deer\n73350,bird\n73351,deer\n73352,cat\n73353,frog\n73354,cat\n73355,frog\n73356,automobile\n73357,frog\n73358,airplane\n73359,frog\n73360,horse\n73361,dog\n73362,cat\n73363,cat\n73364,deer\n73365,frog\n73366,deer\n73367,frog\n73368,deer\n73369,deer\n73370,deer\n73371,horse\n73372,frog\n73373,dog\n73374,horse\n73375,ship\n73376,airplane\n73377,dog\n73378,bird\n73379,deer\n73380,frog\n73381,cat\n73382,airplane\n73383,dog\n73384,automobile\n73385,cat\n73386,dog\n73387,bird\n73388,airplane\n73389,truck\n73390,horse\n73391,dog\n73392,dog\n73393,bird\n73394,horse\n73395,ship\n73396,cat\n73397,automobile\n73398,frog\n73399,deer\n73400,ship\n73401,frog\n73402,horse\n73403,bird\n73404,frog\n73405,bird\n73406,airplane\n73407,frog\n73408,deer\n73409,airplane\n73410,truck\n73411,automobile\n73412,dog\n73413,frog\n73414,truck\n73415,automobile\n73416,cat\n73417,dog\n73418,bird\n73419,horse\n73420,horse\n73421,automobile\n73422,bird\n73423,deer\n73424,horse\n73425,automobile\n73426,cat\n73427,ship\n73428,cat\n73429,cat\n73430,frog\n73431,frog\n73432,cat\n73433,cat\n73434,cat\n73435,cat\n73436,ship\n73437,airplane\n73438,truck\n73439,cat\n73440,bird\n73441,airplane\n73442,horse\n73443,deer\n73444,bird\n73445,horse\n73446,bird\n73447,automobile\n73448,horse\n73449,deer\n73450,truck\n73451,automobile\n73452,horse\n73453,airplane\n73454,deer\n73455,automobile\n73456,frog\n73457,airplane\n73458,horse\n73459,dog\n73460,deer\n73461,cat\n73462,deer\n73463,bird\n73464,frog\n73465,cat\n73466,automobile\n73467,frog\n73468,airplane\n73469,frog\n73470,horse\n73471,truck\n73472,horse\n73473,horse\n73474,dog\n73475,cat\n73476,cat\n73477,cat\n73478,bird\n73479,truck\n73480,ship\n73481,horse\n73482,frog\n73483,frog\n73484,frog\n73485,bird\n73486,cat\n73487,horse\n73488,deer\n73489,deer\n73490,dog\n73491,automobile\n73492,horse\n73493,truck\n73494,cat\n73495,deer\n73496,deer\n73497,frog\n73498,deer\n73499,horse\n73500,horse\n73501,dog\n73502,automobile\n73503,truck\n73504,airplane\n73505,bird\n73506,dog\n73507,horse\n73508,automobile\n73509,deer\n73510,deer\n73511,automobile\n73512,truck\n73513,dog\n73514,dog\n73515,dog\n73516,cat\n73517,ship\n73518,automobile\n73519,dog\n73520,deer\n73521,bird\n73522,airplane\n73523,automobile\n73524,airplane\n73525,automobile\n73526,deer\n73527,bird\n73528,cat\n73529,deer\n73530,truck\n73531,deer\n73532,cat\n73533,cat\n73534,horse\n73535,dog\n73536,dog\n73537,bird\n73538,cat\n73539,frog\n73540,cat\n73541,deer\n73542,automobile\n73543,automobile\n73544,bird\n73545,dog\n73546,truck\n73547,bird\n73548,horse\n73549,airplane\n73550,airplane\n73551,truck\n73552,truck\n73553,truck\n73554,truck\n73555,automobile\n73556,truck\n73557,airplane\n73558,airplane\n73559,dog\n73560,airplane\n73561,deer\n73562,automobile\n73563,truck\n73564,deer\n73565,truck\n73566,frog\n73567,dog\n73568,truck\n73569,horse\n73570,ship\n73571,frog\n73572,automobile\n73573,truck\n73574,deer\n73575,horse\n73576,truck\n73577,truck\n73578,frog\n73579,ship\n73580,frog\n73581,airplane\n73582,cat\n73583,truck\n73584,automobile\n73585,frog\n73586,horse\n73587,deer\n73588,frog\n73589,truck\n73590,frog\n73591,horse\n73592,cat\n73593,ship\n73594,frog\n73595,frog\n73596,deer\n73597,cat\n73598,dog\n73599,deer\n73600,cat\n73601,dog\n73602,dog\n73603,automobile\n73604,frog\n73605,horse\n73606,automobile\n73607,horse\n73608,horse\n73609,horse\n73610,ship\n73611,truck\n73612,bird\n73613,horse\n73614,airplane\n73615,automobile\n73616,frog\n73617,deer\n73618,cat\n73619,frog\n73620,deer\n73621,ship\n73622,ship\n73623,cat\n73624,horse\n73625,airplane\n73626,ship\n73627,horse\n73628,automobile\n73629,ship\n73630,dog\n73631,deer\n73632,automobile\n73633,truck\n73634,automobile\n73635,dog\n73636,dog\n73637,frog\n73638,bird\n73639,horse\n73640,truck\n73641,cat\n73642,airplane\n73643,frog\n73644,truck\n73645,automobile\n73646,dog\n73647,horse\n73648,horse\n73649,frog\n73650,truck\n73651,dog\n73652,airplane\n73653,automobile\n73654,automobile\n73655,automobile\n73656,cat\n73657,frog\n73658,truck\n73659,airplane\n73660,horse\n73661,truck\n73662,deer\n73663,frog\n73664,deer\n73665,cat\n73666,horse\n73667,bird\n73668,horse\n73669,deer\n73670,horse\n73671,dog\n73672,frog\n73673,truck\n73674,deer\n73675,airplane\n73676,dog\n73677,truck\n73678,cat\n73679,dog\n73680,dog\n73681,bird\n73682,dog\n73683,cat\n73684,frog\n73685,frog\n73686,deer\n73687,automobile\n73688,deer\n73689,airplane\n73690,cat\n73691,cat\n73692,frog\n73693,airplane\n73694,horse\n73695,dog\n73696,cat\n73697,horse\n73698,ship\n73699,truck\n73700,automobile\n73701,automobile\n73702,horse\n73703,airplane\n73704,deer\n73705,airplane\n73706,ship\n73707,cat\n73708,ship\n73709,cat\n73710,truck\n73711,truck\n73712,cat\n73713,airplane\n73714,horse\n73715,frog\n73716,frog\n73717,deer\n73718,truck\n73719,cat\n73720,automobile\n73721,deer\n73722,horse\n73723,frog\n73724,frog\n73725,deer\n73726,ship\n73727,airplane\n73728,frog\n73729,deer\n73730,bird\n73731,frog\n73732,automobile\n73733,frog\n73734,airplane\n73735,deer\n73736,bird\n73737,airplane\n73738,airplane\n73739,deer\n73740,automobile\n73741,frog\n73742,truck\n73743,dog\n73744,dog\n73745,cat\n73746,frog\n73747,automobile\n73748,cat\n73749,deer\n73750,bird\n73751,horse\n73752,frog\n73753,dog\n73754,dog\n73755,frog\n73756,bird\n73757,truck\n73758,ship\n73759,cat\n73760,horse\n73761,truck\n73762,dog\n73763,deer\n73764,ship\n73765,cat\n73766,frog\n73767,truck\n73768,ship\n73769,airplane\n73770,deer\n73771,cat\n73772,ship\n73773,frog\n73774,deer\n73775,deer\n73776,automobile\n73777,ship\n73778,deer\n73779,frog\n73780,automobile\n73781,horse\n73782,airplane\n73783,horse\n73784,cat\n73785,dog\n73786,dog\n73787,airplane\n73788,dog\n73789,ship\n73790,deer\n73791,truck\n73792,automobile\n73793,ship\n73794,frog\n73795,deer\n73796,airplane\n73797,frog\n73798,truck\n73799,dog\n73800,cat\n73801,ship\n73802,cat\n73803,horse\n73804,deer\n73805,bird\n73806,truck\n73807,dog\n73808,deer\n73809,cat\n73810,airplane\n73811,automobile\n73812,truck\n73813,cat\n73814,dog\n73815,bird\n73816,cat\n73817,ship\n73818,dog\n73819,horse\n73820,truck\n73821,bird\n73822,frog\n73823,cat\n73824,airplane\n73825,dog\n73826,dog\n73827,truck\n73828,deer\n73829,ship\n73830,dog\n73831,airplane\n73832,dog\n73833,horse\n73834,deer\n73835,airplane\n73836,horse\n73837,deer\n73838,cat\n73839,cat\n73840,dog\n73841,truck\n73842,truck\n73843,frog\n73844,truck\n73845,cat\n73846,frog\n73847,truck\n73848,automobile\n73849,horse\n73850,frog\n73851,frog\n73852,frog\n73853,airplane\n73854,dog\n73855,deer\n73856,horse\n73857,frog\n73858,airplane\n73859,ship\n73860,dog\n73861,ship\n73862,cat\n73863,frog\n73864,truck\n73865,horse\n73866,frog\n73867,ship\n73868,ship\n73869,automobile\n73870,bird\n73871,ship\n73872,bird\n73873,dog\n73874,dog\n73875,ship\n73876,truck\n73877,cat\n73878,truck\n73879,horse\n73880,ship\n73881,cat\n73882,bird\n73883,airplane\n73884,dog\n73885,dog\n73886,truck\n73887,cat\n73888,frog\n73889,deer\n73890,deer\n73891,truck\n73892,bird\n73893,ship\n73894,ship\n73895,dog\n73896,bird\n73897,deer\n73898,frog\n73899,frog\n73900,dog\n73901,cat\n73902,cat\n73903,truck\n73904,truck\n73905,ship\n73906,deer\n73907,cat\n73908,airplane\n73909,truck\n73910,deer\n73911,horse\n73912,frog\n73913,frog\n73914,cat\n73915,bird\n73916,frog\n73917,ship\n73918,ship\n73919,deer\n73920,dog\n73921,truck\n73922,cat\n73923,deer\n73924,dog\n73925,frog\n73926,deer\n73927,cat\n73928,cat\n73929,cat\n73930,horse\n73931,ship\n73932,truck\n73933,deer\n73934,deer\n73935,truck\n73936,deer\n73937,ship\n73938,ship\n73939,cat\n73940,bird\n73941,automobile\n73942,frog\n73943,frog\n73944,horse\n73945,airplane\n73946,horse\n73947,ship\n73948,frog\n73949,frog\n73950,frog\n73951,bird\n73952,bird\n73953,automobile\n73954,airplane\n73955,bird\n73956,cat\n73957,truck\n73958,frog\n73959,truck\n73960,ship\n73961,deer\n73962,truck\n73963,bird\n73964,deer\n73965,cat\n73966,ship\n73967,airplane\n73968,airplane\n73969,frog\n73970,dog\n73971,horse\n73972,deer\n73973,dog\n73974,deer\n73975,dog\n73976,airplane\n73977,deer\n73978,bird\n73979,ship\n73980,ship\n73981,ship\n73982,airplane\n73983,truck\n73984,deer\n73985,dog\n73986,cat\n73987,bird\n73988,cat\n73989,deer\n73990,dog\n73991,airplane\n73992,frog\n73993,bird\n73994,automobile\n73995,deer\n73996,bird\n73997,automobile\n73998,automobile\n73999,deer\n74000,cat\n74001,ship\n74002,bird\n74003,cat\n74004,deer\n74005,truck\n74006,cat\n74007,cat\n74008,horse\n74009,bird\n74010,automobile\n74011,dog\n74012,ship\n74013,dog\n74014,cat\n74015,ship\n74016,cat\n74017,airplane\n74018,horse\n74019,deer\n74020,truck\n74021,dog\n74022,deer\n74023,deer\n74024,cat\n74025,frog\n74026,dog\n74027,cat\n74028,truck\n74029,airplane\n74030,deer\n74031,dog\n74032,truck\n74033,truck\n74034,horse\n74035,dog\n74036,horse\n74037,frog\n74038,ship\n74039,deer\n74040,automobile\n74041,truck\n74042,cat\n74043,frog\n74044,dog\n74045,automobile\n74046,truck\n74047,deer\n74048,automobile\n74049,airplane\n74050,dog\n74051,frog\n74052,dog\n74053,truck\n74054,cat\n74055,automobile\n74056,cat\n74057,airplane\n74058,dog\n74059,dog\n74060,bird\n74061,frog\n74062,dog\n74063,deer\n74064,deer\n74065,bird\n74066,frog\n74067,bird\n74068,cat\n74069,horse\n74070,deer\n74071,airplane\n74072,deer\n74073,frog\n74074,dog\n74075,cat\n74076,deer\n74077,frog\n74078,cat\n74079,bird\n74080,ship\n74081,deer\n74082,bird\n74083,frog\n74084,automobile\n74085,cat\n74086,dog\n74087,ship\n74088,airplane\n74089,airplane\n74090,cat\n74091,ship\n74092,frog\n74093,deer\n74094,frog\n74095,truck\n74096,deer\n74097,horse\n74098,bird\n74099,bird\n74100,automobile\n74101,deer\n74102,frog\n74103,airplane\n74104,bird\n74105,dog\n74106,airplane\n74107,truck\n74108,truck\n74109,automobile\n74110,deer\n74111,bird\n74112,dog\n74113,deer\n74114,automobile\n74115,automobile\n74116,airplane\n74117,bird\n74118,frog\n74119,bird\n74120,cat\n74121,horse\n74122,cat\n74123,dog\n74124,truck\n74125,frog\n74126,automobile\n74127,automobile\n74128,deer\n74129,horse\n74130,dog\n74131,dog\n74132,truck\n74133,deer\n74134,ship\n74135,horse\n74136,cat\n74137,airplane\n74138,deer\n74139,ship\n74140,cat\n74141,truck\n74142,ship\n74143,automobile\n74144,automobile\n74145,cat\n74146,ship\n74147,frog\n74148,truck\n74149,dog\n74150,deer\n74151,cat\n74152,deer\n74153,frog\n74154,airplane\n74155,bird\n74156,dog\n74157,airplane\n74158,deer\n74159,deer\n74160,cat\n74161,frog\n74162,horse\n74163,airplane\n74164,deer\n74165,airplane\n74166,truck\n74167,ship\n74168,automobile\n74169,deer\n74170,automobile\n74171,horse\n74172,deer\n74173,frog\n74174,frog\n74175,horse\n74176,truck\n74177,horse\n74178,bird\n74179,automobile\n74180,automobile\n74181,deer\n74182,cat\n74183,cat\n74184,deer\n74185,frog\n74186,cat\n74187,frog\n74188,cat\n74189,horse\n74190,frog\n74191,cat\n74192,cat\n74193,dog\n74194,horse\n74195,ship\n74196,truck\n74197,ship\n74198,cat\n74199,frog\n74200,dog\n74201,horse\n74202,frog\n74203,cat\n74204,ship\n74205,cat\n74206,deer\n74207,bird\n74208,dog\n74209,deer\n74210,truck\n74211,frog\n74212,airplane\n74213,bird\n74214,automobile\n74215,dog\n74216,deer\n74217,deer\n74218,ship\n74219,horse\n74220,frog\n74221,bird\n74222,ship\n74223,cat\n74224,automobile\n74225,deer\n74226,cat\n74227,deer\n74228,dog\n74229,deer\n74230,dog\n74231,dog\n74232,horse\n74233,bird\n74234,bird\n74235,frog\n74236,airplane\n74237,deer\n74238,cat\n74239,airplane\n74240,frog\n74241,horse\n74242,ship\n74243,truck\n74244,horse\n74245,frog\n74246,cat\n74247,horse\n74248,frog\n74249,horse\n74250,airplane\n74251,frog\n74252,bird\n74253,truck\n74254,truck\n74255,cat\n74256,airplane\n74257,horse\n74258,automobile\n74259,deer\n74260,automobile\n74261,frog\n74262,horse\n74263,frog\n74264,bird\n74265,frog\n74266,automobile\n74267,deer\n74268,cat\n74269,cat\n74270,dog\n74271,ship\n74272,dog\n74273,deer\n74274,bird\n74275,airplane\n74276,dog\n74277,truck\n74278,frog\n74279,ship\n74280,truck\n74281,cat\n74282,bird\n74283,cat\n74284,dog\n74285,deer\n74286,ship\n74287,frog\n74288,horse\n74289,truck\n74290,dog\n74291,frog\n74292,frog\n74293,airplane\n74294,frog\n74295,frog\n74296,frog\n74297,ship\n74298,truck\n74299,airplane\n74300,cat\n74301,ship\n74302,bird\n74303,ship\n74304,horse\n74305,cat\n74306,cat\n74307,frog\n74308,dog\n74309,automobile\n74310,cat\n74311,horse\n74312,truck\n74313,bird\n74314,dog\n74315,truck\n74316,ship\n74317,frog\n74318,airplane\n74319,dog\n74320,bird\n74321,automobile\n74322,automobile\n74323,deer\n74324,deer\n74325,deer\n74326,bird\n74327,deer\n74328,cat\n74329,dog\n74330,airplane\n74331,airplane\n74332,ship\n74333,frog\n74334,airplane\n74335,truck\n74336,truck\n74337,automobile\n74338,horse\n74339,dog\n74340,cat\n74341,frog\n74342,horse\n74343,horse\n74344,ship\n74345,ship\n74346,automobile\n74347,ship\n74348,truck\n74349,horse\n74350,automobile\n74351,automobile\n74352,deer\n74353,horse\n74354,ship\n74355,cat\n74356,cat\n74357,frog\n74358,airplane\n74359,cat\n74360,truck\n74361,frog\n74362,deer\n74363,cat\n74364,dog\n74365,dog\n74366,frog\n74367,deer\n74368,truck\n74369,truck\n74370,frog\n74371,bird\n74372,cat\n74373,truck\n74374,frog\n74375,ship\n74376,dog\n74377,ship\n74378,cat\n74379,cat\n74380,dog\n74381,truck\n74382,horse\n74383,horse\n74384,dog\n74385,airplane\n74386,ship\n74387,truck\n74388,cat\n74389,truck\n74390,deer\n74391,truck\n74392,cat\n74393,dog\n74394,frog\n74395,cat\n74396,horse\n74397,ship\n74398,dog\n74399,dog\n74400,cat\n74401,frog\n74402,truck\n74403,dog\n74404,frog\n74405,dog\n74406,truck\n74407,deer\n74408,automobile\n74409,frog\n74410,truck\n74411,deer\n74412,cat\n74413,truck\n74414,truck\n74415,frog\n74416,frog\n74417,airplane\n74418,deer\n74419,dog\n74420,airplane\n74421,horse\n74422,dog\n74423,dog\n74424,cat\n74425,dog\n74426,cat\n74427,frog\n74428,cat\n74429,deer\n74430,bird\n74431,deer\n74432,deer\n74433,frog\n74434,truck\n74435,automobile\n74436,ship\n74437,truck\n74438,deer\n74439,deer\n74440,frog\n74441,horse\n74442,dog\n74443,cat\n74444,dog\n74445,truck\n74446,dog\n74447,truck\n74448,automobile\n74449,horse\n74450,deer\n74451,bird\n74452,deer\n74453,ship\n74454,deer\n74455,deer\n74456,dog\n74457,ship\n74458,frog\n74459,deer\n74460,cat\n74461,frog\n74462,truck\n74463,dog\n74464,horse\n74465,deer\n74466,bird\n74467,cat\n74468,deer\n74469,airplane\n74470,dog\n74471,deer\n74472,dog\n74473,truck\n74474,truck\n74475,automobile\n74476,deer\n74477,truck\n74478,horse\n74479,deer\n74480,airplane\n74481,cat\n74482,horse\n74483,frog\n74484,horse\n74485,bird\n74486,horse\n74487,truck\n74488,deer\n74489,horse\n74490,deer\n74491,dog\n74492,ship\n74493,ship\n74494,frog\n74495,frog\n74496,dog\n74497,ship\n74498,dog\n74499,deer\n74500,airplane\n74501,ship\n74502,cat\n74503,automobile\n74504,cat\n74505,ship\n74506,ship\n74507,ship\n74508,cat\n74509,ship\n74510,airplane\n74511,horse\n74512,deer\n74513,frog\n74514,frog\n74515,airplane\n74516,ship\n74517,cat\n74518,cat\n74519,deer\n74520,horse\n74521,cat\n74522,deer\n74523,deer\n74524,frog\n74525,dog\n74526,deer\n74527,cat\n74528,frog\n74529,airplane\n74530,bird\n74531,frog\n74532,ship\n74533,automobile\n74534,frog\n74535,automobile\n74536,deer\n74537,automobile\n74538,cat\n74539,frog\n74540,frog\n74541,dog\n74542,dog\n74543,frog\n74544,airplane\n74545,truck\n74546,frog\n74547,ship\n74548,truck\n74549,truck\n74550,dog\n74551,automobile\n74552,airplane\n74553,dog\n74554,bird\n74555,deer\n74556,deer\n74557,ship\n74558,ship\n74559,frog\n74560,deer\n74561,airplane\n74562,ship\n74563,airplane\n74564,truck\n74565,horse\n74566,dog\n74567,frog\n74568,horse\n74569,cat\n74570,truck\n74571,dog\n74572,deer\n74573,cat\n74574,cat\n74575,frog\n74576,horse\n74577,dog\n74578,deer\n74579,truck\n74580,automobile\n74581,deer\n74582,automobile\n74583,cat\n74584,deer\n74585,ship\n74586,bird\n74587,cat\n74588,ship\n74589,bird\n74590,deer\n74591,truck\n74592,frog\n74593,dog\n74594,deer\n74595,deer\n74596,cat\n74597,frog\n74598,airplane\n74599,airplane\n74600,ship\n74601,airplane\n74602,frog\n74603,frog\n74604,deer\n74605,dog\n74606,airplane\n74607,automobile\n74608,deer\n74609,truck\n74610,dog\n74611,automobile\n74612,dog\n74613,horse\n74614,truck\n74615,dog\n74616,bird\n74617,automobile\n74618,truck\n74619,deer\n74620,truck\n74621,airplane\n74622,cat\n74623,bird\n74624,airplane\n74625,automobile\n74626,cat\n74627,frog\n74628,cat\n74629,dog\n74630,deer\n74631,automobile\n74632,frog\n74633,ship\n74634,automobile\n74635,truck\n74636,cat\n74637,bird\n74638,cat\n74639,truck\n74640,airplane\n74641,automobile\n74642,ship\n74643,dog\n74644,cat\n74645,automobile\n74646,cat\n74647,automobile\n74648,ship\n74649,deer\n74650,dog\n74651,deer\n74652,horse\n74653,cat\n74654,frog\n74655,deer\n74656,cat\n74657,ship\n74658,dog\n74659,horse\n74660,cat\n74661,cat\n74662,airplane\n74663,cat\n74664,bird\n74665,frog\n74666,ship\n74667,deer\n74668,truck\n74669,deer\n74670,horse\n74671,cat\n74672,horse\n74673,ship\n74674,cat\n74675,deer\n74676,deer\n74677,truck\n74678,ship\n74679,cat\n74680,deer\n74681,truck\n74682,horse\n74683,truck\n74684,airplane\n74685,truck\n74686,truck\n74687,dog\n74688,deer\n74689,dog\n74690,ship\n74691,bird\n74692,ship\n74693,frog\n74694,frog\n74695,deer\n74696,deer\n74697,automobile\n74698,ship\n74699,cat\n74700,frog\n74701,ship\n74702,bird\n74703,bird\n74704,frog\n74705,airplane\n74706,frog\n74707,bird\n74708,deer\n74709,deer\n74710,dog\n74711,airplane\n74712,dog\n74713,bird\n74714,airplane\n74715,truck\n74716,cat\n74717,frog\n74718,truck\n74719,horse\n74720,ship\n74721,airplane\n74722,cat\n74723,deer\n74724,ship\n74725,deer\n74726,horse\n74727,truck\n74728,truck\n74729,dog\n74730,airplane\n74731,deer\n74732,ship\n74733,bird\n74734,cat\n74735,frog\n74736,cat\n74737,bird\n74738,horse\n74739,automobile\n74740,deer\n74741,frog\n74742,airplane\n74743,truck\n74744,cat\n74745,horse\n74746,deer\n74747,bird\n74748,ship\n74749,dog\n74750,ship\n74751,cat\n74752,deer\n74753,truck\n74754,truck\n74755,frog\n74756,bird\n74757,frog\n74758,automobile\n74759,frog\n74760,horse\n74761,automobile\n74762,automobile\n74763,automobile\n74764,horse\n74765,truck\n74766,deer\n74767,airplane\n74768,deer\n74769,deer\n74770,bird\n74771,cat\n74772,truck\n74773,frog\n74774,frog\n74775,airplane\n74776,airplane\n74777,horse\n74778,horse\n74779,ship\n74780,truck\n74781,frog\n74782,truck\n74783,dog\n74784,ship\n74785,airplane\n74786,ship\n74787,cat\n74788,cat\n74789,frog\n74790,dog\n74791,cat\n74792,frog\n74793,deer\n74794,frog\n74795,dog\n74796,horse\n74797,cat\n74798,cat\n74799,frog\n74800,ship\n74801,dog\n74802,deer\n74803,frog\n74804,bird\n74805,truck\n74806,frog\n74807,dog\n74808,automobile\n74809,frog\n74810,automobile\n74811,airplane\n74812,airplane\n74813,deer\n74814,deer\n74815,ship\n74816,deer\n74817,deer\n74818,airplane\n74819,horse\n74820,deer\n74821,horse\n74822,automobile\n74823,dog\n74824,dog\n74825,horse\n74826,dog\n74827,cat\n74828,airplane\n74829,automobile\n74830,bird\n74831,deer\n74832,horse\n74833,dog\n74834,ship\n74835,cat\n74836,dog\n74837,truck\n74838,horse\n74839,dog\n74840,bird\n74841,deer\n74842,cat\n74843,cat\n74844,frog\n74845,ship\n74846,ship\n74847,airplane\n74848,cat\n74849,horse\n74850,cat\n74851,cat\n74852,bird\n74853,horse\n74854,cat\n74855,cat\n74856,bird\n74857,cat\n74858,cat\n74859,deer\n74860,horse\n74861,ship\n74862,cat\n74863,airplane\n74864,horse\n74865,bird\n74866,cat\n74867,deer\n74868,bird\n74869,truck\n74870,horse\n74871,dog\n74872,ship\n74873,bird\n74874,airplane\n74875,deer\n74876,deer\n74877,cat\n74878,deer\n74879,automobile\n74880,deer\n74881,truck\n74882,dog\n74883,deer\n74884,truck\n74885,airplane\n74886,ship\n74887,dog\n74888,dog\n74889,deer\n74890,automobile\n74891,dog\n74892,bird\n74893,bird\n74894,dog\n74895,ship\n74896,ship\n74897,cat\n74898,dog\n74899,truck\n74900,cat\n74901,dog\n74902,airplane\n74903,dog\n74904,deer\n74905,bird\n74906,dog\n74907,ship\n74908,horse\n74909,airplane\n74910,automobile\n74911,truck\n74912,horse\n74913,dog\n74914,horse\n74915,airplane\n74916,bird\n74917,ship\n74918,frog\n74919,truck\n74920,horse\n74921,horse\n74922,cat\n74923,cat\n74924,horse\n74925,airplane\n74926,deer\n74927,bird\n74928,ship\n74929,deer\n74930,truck\n74931,ship\n74932,automobile\n74933,cat\n74934,truck\n74935,ship\n74936,cat\n74937,deer\n74938,horse\n74939,deer\n74940,truck\n74941,airplane\n74942,dog\n74943,dog\n74944,bird\n74945,deer\n74946,horse\n74947,truck\n74948,frog\n74949,cat\n74950,cat\n74951,deer\n74952,dog\n74953,bird\n74954,horse\n74955,dog\n74956,deer\n74957,cat\n74958,airplane\n74959,frog\n74960,truck\n74961,airplane\n74962,truck\n74963,horse\n74964,bird\n74965,truck\n74966,bird\n74967,truck\n74968,cat\n74969,bird\n74970,frog\n74971,horse\n74972,bird\n74973,cat\n74974,cat\n74975,deer\n74976,cat\n74977,cat\n74978,dog\n74979,deer\n74980,frog\n74981,ship\n74982,deer\n74983,horse\n74984,ship\n74985,cat\n74986,truck\n74987,frog\n74988,dog\n74989,automobile\n74990,cat\n74991,dog\n74992,frog\n74993,deer\n74994,horse\n74995,dog\n74996,bird\n74997,deer\n74998,cat\n74999,frog\n75000,bird\n75001,dog\n75002,bird\n75003,deer\n75004,deer\n75005,dog\n75006,automobile\n75007,deer\n75008,automobile\n75009,ship\n75010,ship\n75011,bird\n75012,truck\n75013,frog\n75014,deer\n75015,airplane\n75016,truck\n75017,airplane\n75018,truck\n75019,deer\n75020,automobile\n75021,automobile\n75022,deer\n75023,truck\n75024,dog\n75025,dog\n75026,dog\n75027,bird\n75028,dog\n75029,dog\n75030,truck\n75031,airplane\n75032,airplane\n75033,cat\n75034,frog\n75035,deer\n75036,dog\n75037,horse\n75038,airplane\n75039,dog\n75040,cat\n75041,horse\n75042,airplane\n75043,frog\n75044,ship\n75045,automobile\n75046,cat\n75047,truck\n75048,bird\n75049,deer\n75050,automobile\n75051,ship\n75052,horse\n75053,ship\n75054,horse\n75055,bird\n75056,cat\n75057,truck\n75058,dog\n75059,dog\n75060,dog\n75061,truck\n75062,bird\n75063,horse\n75064,horse\n75065,deer\n75066,frog\n75067,bird\n75068,frog\n75069,cat\n75070,frog\n75071,bird\n75072,frog\n75073,cat\n75074,frog\n75075,cat\n75076,ship\n75077,truck\n75078,truck\n75079,deer\n75080,truck\n75081,airplane\n75082,truck\n75083,dog\n75084,deer\n75085,truck\n75086,airplane\n75087,airplane\n75088,dog\n75089,cat\n75090,deer\n75091,dog\n75092,bird\n75093,cat\n75094,truck\n75095,cat\n75096,frog\n75097,frog\n75098,horse\n75099,cat\n75100,frog\n75101,truck\n75102,cat\n75103,dog\n75104,ship\n75105,airplane\n75106,deer\n75107,deer\n75108,dog\n75109,cat\n75110,bird\n75111,airplane\n75112,frog\n75113,frog\n75114,cat\n75115,horse\n75116,deer\n75117,cat\n75118,ship\n75119,frog\n75120,deer\n75121,dog\n75122,ship\n75123,ship\n75124,deer\n75125,truck\n75126,cat\n75127,dog\n75128,deer\n75129,truck\n75130,automobile\n75131,horse\n75132,bird\n75133,cat\n75134,horse\n75135,cat\n75136,airplane\n75137,automobile\n75138,frog\n75139,airplane\n75140,frog\n75141,cat\n75142,airplane\n75143,airplane\n75144,truck\n75145,deer\n75146,cat\n75147,dog\n75148,automobile\n75149,dog\n75150,cat\n75151,truck\n75152,airplane\n75153,dog\n75154,automobile\n75155,ship\n75156,frog\n75157,frog\n75158,cat\n75159,automobile\n75160,ship\n75161,frog\n75162,ship\n75163,cat\n75164,ship\n75165,deer\n75166,cat\n75167,frog\n75168,truck\n75169,airplane\n75170,frog\n75171,ship\n75172,deer\n75173,cat\n75174,automobile\n75175,cat\n75176,dog\n75177,horse\n75178,dog\n75179,ship\n75180,horse\n75181,truck\n75182,cat\n75183,frog\n75184,automobile\n75185,ship\n75186,automobile\n75187,frog\n75188,horse\n75189,dog\n75190,bird\n75191,bird\n75192,deer\n75193,ship\n75194,frog\n75195,automobile\n75196,ship\n75197,airplane\n75198,cat\n75199,automobile\n75200,horse\n75201,bird\n75202,frog\n75203,airplane\n75204,deer\n75205,deer\n75206,deer\n75207,dog\n75208,cat\n75209,cat\n75210,ship\n75211,deer\n75212,cat\n75213,deer\n75214,cat\n75215,bird\n75216,horse\n75217,horse\n75218,cat\n75219,dog\n75220,deer\n75221,frog\n75222,airplane\n75223,bird\n75224,horse\n75225,frog\n75226,truck\n75227,cat\n75228,automobile\n75229,deer\n75230,cat\n75231,frog\n75232,ship\n75233,deer\n75234,dog\n75235,dog\n75236,horse\n75237,ship\n75238,horse\n75239,deer\n75240,cat\n75241,horse\n75242,horse\n75243,cat\n75244,airplane\n75245,cat\n75246,cat\n75247,deer\n75248,truck\n75249,ship\n75250,frog\n75251,cat\n75252,cat\n75253,bird\n75254,ship\n75255,bird\n75256,dog\n75257,truck\n75258,dog\n75259,airplane\n75260,deer\n75261,cat\n75262,cat\n75263,cat\n75264,airplane\n75265,deer\n75266,cat\n75267,bird\n75268,frog\n75269,deer\n75270,cat\n75271,airplane\n75272,dog\n75273,dog\n75274,cat\n75275,horse\n75276,ship\n75277,frog\n75278,automobile\n75279,dog\n75280,cat\n75281,dog\n75282,deer\n75283,frog\n75284,ship\n75285,frog\n75286,truck\n75287,frog\n75288,frog\n75289,dog\n75290,bird\n75291,bird\n75292,airplane\n75293,bird\n75294,horse\n75295,truck\n75296,dog\n75297,bird\n75298,truck\n75299,horse\n75300,truck\n75301,airplane\n75302,bird\n75303,cat\n75304,dog\n75305,airplane\n75306,cat\n75307,deer\n75308,truck\n75309,airplane\n75310,dog\n75311,airplane\n75312,cat\n75313,airplane\n75314,ship\n75315,bird\n75316,deer\n75317,cat\n75318,dog\n75319,truck\n75320,automobile\n75321,cat\n75322,truck\n75323,automobile\n75324,ship\n75325,frog\n75326,cat\n75327,dog\n75328,dog\n75329,airplane\n75330,ship\n75331,frog\n75332,dog\n75333,automobile\n75334,cat\n75335,deer\n75336,deer\n75337,dog\n75338,truck\n75339,dog\n75340,deer\n75341,deer\n75342,cat\n75343,frog\n75344,automobile\n75345,deer\n75346,bird\n75347,frog\n75348,horse\n75349,horse\n75350,dog\n75351,dog\n75352,truck\n75353,bird\n75354,automobile\n75355,truck\n75356,dog\n75357,bird\n75358,frog\n75359,cat\n75360,frog\n75361,deer\n75362,deer\n75363,ship\n75364,deer\n75365,horse\n75366,frog\n75367,truck\n75368,airplane\n75369,bird\n75370,automobile\n75371,cat\n75372,truck\n75373,dog\n75374,bird\n75375,truck\n75376,truck\n75377,dog\n75378,automobile\n75379,cat\n75380,cat\n75381,ship\n75382,automobile\n75383,ship\n75384,frog\n75385,dog\n75386,frog\n75387,frog\n75388,bird\n75389,truck\n75390,deer\n75391,automobile\n75392,truck\n75393,cat\n75394,ship\n75395,deer\n75396,horse\n75397,automobile\n75398,truck\n75399,ship\n75400,bird\n75401,deer\n75402,ship\n75403,dog\n75404,horse\n75405,truck\n75406,truck\n75407,deer\n75408,ship\n75409,dog\n75410,dog\n75411,bird\n75412,bird\n75413,deer\n75414,frog\n75415,bird\n75416,airplane\n75417,truck\n75418,ship\n75419,cat\n75420,automobile\n75421,horse\n75422,airplane\n75423,deer\n75424,cat\n75425,dog\n75426,ship\n75427,truck\n75428,cat\n75429,airplane\n75430,cat\n75431,ship\n75432,deer\n75433,dog\n75434,dog\n75435,dog\n75436,horse\n75437,cat\n75438,deer\n75439,truck\n75440,cat\n75441,horse\n75442,truck\n75443,deer\n75444,bird\n75445,airplane\n75446,frog\n75447,dog\n75448,frog\n75449,deer\n75450,automobile\n75451,bird\n75452,horse\n75453,airplane\n75454,bird\n75455,ship\n75456,deer\n75457,airplane\n75458,truck\n75459,deer\n75460,ship\n75461,automobile\n75462,dog\n75463,ship\n75464,truck\n75465,cat\n75466,deer\n75467,bird\n75468,horse\n75469,horse\n75470,dog\n75471,cat\n75472,cat\n75473,cat\n75474,horse\n75475,deer\n75476,truck\n75477,truck\n75478,deer\n75479,dog\n75480,cat\n75481,cat\n75482,ship\n75483,truck\n75484,horse\n75485,truck\n75486,cat\n75487,bird\n75488,bird\n75489,cat\n75490,cat\n75491,bird\n75492,deer\n75493,horse\n75494,frog\n75495,truck\n75496,horse\n75497,deer\n75498,dog\n75499,frog\n75500,horse\n75501,automobile\n75502,truck\n75503,horse\n75504,horse\n75505,airplane\n75506,cat\n75507,deer\n75508,frog\n75509,airplane\n75510,dog\n75511,ship\n75512,airplane\n75513,horse\n75514,truck\n75515,truck\n75516,ship\n75517,frog\n75518,horse\n75519,horse\n75520,truck\n75521,bird\n75522,truck\n75523,bird\n75524,dog\n75525,horse\n75526,frog\n75527,frog\n75528,cat\n75529,deer\n75530,cat\n75531,deer\n75532,ship\n75533,automobile\n75534,horse\n75535,truck\n75536,dog\n75537,deer\n75538,bird\n75539,frog\n75540,ship\n75541,cat\n75542,bird\n75543,ship\n75544,bird\n75545,automobile\n75546,airplane\n75547,automobile\n75548,bird\n75549,ship\n75550,airplane\n75551,cat\n75552,cat\n75553,frog\n75554,truck\n75555,ship\n75556,ship\n75557,ship\n75558,cat\n75559,frog\n75560,truck\n75561,bird\n75562,deer\n75563,ship\n75564,ship\n75565,airplane\n75566,dog\n75567,automobile\n75568,truck\n75569,airplane\n75570,airplane\n75571,deer\n75572,deer\n75573,cat\n75574,truck\n75575,frog\n75576,horse\n75577,deer\n75578,frog\n75579,bird\n75580,bird\n75581,truck\n75582,frog\n75583,truck\n75584,cat\n75585,deer\n75586,automobile\n75587,cat\n75588,airplane\n75589,ship\n75590,airplane\n75591,deer\n75592,deer\n75593,horse\n75594,ship\n75595,dog\n75596,ship\n75597,frog\n75598,bird\n75599,cat\n75600,cat\n75601,frog\n75602,ship\n75603,horse\n75604,dog\n75605,cat\n75606,dog\n75607,bird\n75608,frog\n75609,airplane\n75610,airplane\n75611,frog\n75612,airplane\n75613,horse\n75614,bird\n75615,ship\n75616,deer\n75617,deer\n75618,dog\n75619,horse\n75620,airplane\n75621,frog\n75622,ship\n75623,frog\n75624,truck\n75625,bird\n75626,horse\n75627,truck\n75628,horse\n75629,horse\n75630,bird\n75631,dog\n75632,truck\n75633,deer\n75634,frog\n75635,cat\n75636,dog\n75637,ship\n75638,bird\n75639,bird\n75640,horse\n75641,ship\n75642,deer\n75643,automobile\n75644,frog\n75645,airplane\n75646,bird\n75647,deer\n75648,frog\n75649,deer\n75650,deer\n75651,ship\n75652,automobile\n75653,frog\n75654,deer\n75655,truck\n75656,dog\n75657,automobile\n75658,ship\n75659,horse\n75660,cat\n75661,frog\n75662,frog\n75663,horse\n75664,dog\n75665,truck\n75666,deer\n75667,cat\n75668,deer\n75669,deer\n75670,deer\n75671,deer\n75672,deer\n75673,bird\n75674,horse\n75675,bird\n75676,automobile\n75677,cat\n75678,cat\n75679,horse\n75680,frog\n75681,ship\n75682,ship\n75683,cat\n75684,frog\n75685,truck\n75686,frog\n75687,truck\n75688,truck\n75689,bird\n75690,dog\n75691,airplane\n75692,cat\n75693,cat\n75694,truck\n75695,bird\n75696,truck\n75697,cat\n75698,ship\n75699,truck\n75700,deer\n75701,truck\n75702,automobile\n75703,ship\n75704,deer\n75705,cat\n75706,bird\n75707,dog\n75708,airplane\n75709,horse\n75710,dog\n75711,truck\n75712,truck\n75713,cat\n75714,bird\n75715,bird\n75716,cat\n75717,truck\n75718,bird\n75719,cat\n75720,ship\n75721,dog\n75722,bird\n75723,deer\n75724,frog\n75725,bird\n75726,cat\n75727,frog\n75728,airplane\n75729,deer\n75730,ship\n75731,deer\n75732,deer\n75733,automobile\n75734,bird\n75735,cat\n75736,cat\n75737,bird\n75738,deer\n75739,airplane\n75740,automobile\n75741,truck\n75742,dog\n75743,dog\n75744,dog\n75745,horse\n75746,truck\n75747,automobile\n75748,airplane\n75749,bird\n75750,deer\n75751,frog\n75752,frog\n75753,airplane\n75754,ship\n75755,truck\n75756,cat\n75757,cat\n75758,truck\n75759,frog\n75760,horse\n75761,automobile\n75762,truck\n75763,truck\n75764,frog\n75765,ship\n75766,automobile\n75767,frog\n75768,automobile\n75769,dog\n75770,ship\n75771,horse\n75772,ship\n75773,dog\n75774,truck\n75775,deer\n75776,cat\n75777,cat\n75778,frog\n75779,dog\n75780,cat\n75781,cat\n75782,cat\n75783,cat\n75784,deer\n75785,bird\n75786,ship\n75787,automobile\n75788,cat\n75789,airplane\n75790,ship\n75791,cat\n75792,airplane\n75793,bird\n75794,deer\n75795,automobile\n75796,ship\n75797,cat\n75798,bird\n75799,ship\n75800,airplane\n75801,deer\n75802,automobile\n75803,cat\n75804,frog\n75805,ship\n75806,airplane\n75807,dog\n75808,bird\n75809,cat\n75810,horse\n75811,dog\n75812,horse\n75813,cat\n75814,truck\n75815,horse\n75816,truck\n75817,deer\n75818,bird\n75819,ship\n75820,ship\n75821,deer\n75822,horse\n75823,horse\n75824,airplane\n75825,cat\n75826,deer\n75827,airplane\n75828,cat\n75829,ship\n75830,deer\n75831,bird\n75832,horse\n75833,frog\n75834,cat\n75835,automobile\n75836,cat\n75837,ship\n75838,horse\n75839,frog\n75840,ship\n75841,horse\n75842,truck\n75843,airplane\n75844,truck\n75845,frog\n75846,truck\n75847,truck\n75848,airplane\n75849,deer\n75850,truck\n75851,horse\n75852,truck\n75853,airplane\n75854,cat\n75855,bird\n75856,deer\n75857,deer\n75858,ship\n75859,deer\n75860,bird\n75861,dog\n75862,dog\n75863,ship\n75864,ship\n75865,horse\n75866,frog\n75867,deer\n75868,airplane\n75869,cat\n75870,ship\n75871,bird\n75872,cat\n75873,ship\n75874,dog\n75875,truck\n75876,airplane\n75877,frog\n75878,truck\n75879,automobile\n75880,dog\n75881,bird\n75882,automobile\n75883,horse\n75884,ship\n75885,ship\n75886,truck\n75887,dog\n75888,bird\n75889,dog\n75890,airplane\n75891,airplane\n75892,automobile\n75893,deer\n75894,horse\n75895,truck\n75896,bird\n75897,horse\n75898,dog\n75899,ship\n75900,horse\n75901,dog\n75902,airplane\n75903,deer\n75904,deer\n75905,bird\n75906,cat\n75907,ship\n75908,cat\n75909,frog\n75910,dog\n75911,dog\n75912,truck\n75913,automobile\n75914,horse\n75915,bird\n75916,frog\n75917,deer\n75918,dog\n75919,ship\n75920,automobile\n75921,airplane\n75922,cat\n75923,truck\n75924,bird\n75925,frog\n75926,dog\n75927,bird\n75928,ship\n75929,ship\n75930,horse\n75931,dog\n75932,airplane\n75933,bird\n75934,cat\n75935,ship\n75936,cat\n75937,automobile\n75938,dog\n75939,frog\n75940,horse\n75941,horse\n75942,horse\n75943,truck\n75944,dog\n75945,truck\n75946,dog\n75947,cat\n75948,bird\n75949,truck\n75950,automobile\n75951,automobile\n75952,frog\n75953,cat\n75954,ship\n75955,frog\n75956,automobile\n75957,dog\n75958,automobile\n75959,bird\n75960,cat\n75961,automobile\n75962,ship\n75963,bird\n75964,ship\n75965,deer\n75966,cat\n75967,cat\n75968,ship\n75969,frog\n75970,horse\n75971,automobile\n75972,bird\n75973,automobile\n75974,ship\n75975,cat\n75976,frog\n75977,deer\n75978,bird\n75979,truck\n75980,bird\n75981,dog\n75982,deer\n75983,ship\n75984,deer\n75985,truck\n75986,bird\n75987,frog\n75988,truck\n75989,frog\n75990,frog\n75991,automobile\n75992,ship\n75993,truck\n75994,bird\n75995,deer\n75996,cat\n75997,bird\n75998,airplane\n75999,frog\n76000,frog\n76001,truck\n76002,dog\n76003,ship\n76004,truck\n76005,airplane\n76006,automobile\n76007,frog\n76008,truck\n76009,frog\n76010,frog\n76011,automobile\n76012,dog\n76013,dog\n76014,deer\n76015,dog\n76016,truck\n76017,deer\n76018,frog\n76019,airplane\n76020,cat\n76021,deer\n76022,automobile\n76023,horse\n76024,ship\n76025,cat\n76026,automobile\n76027,airplane\n76028,deer\n76029,ship\n76030,bird\n76031,dog\n76032,bird\n76033,airplane\n76034,bird\n76035,dog\n76036,frog\n76037,cat\n76038,horse\n76039,truck\n76040,truck\n76041,ship\n76042,truck\n76043,dog\n76044,deer\n76045,horse\n76046,cat\n76047,airplane\n76048,horse\n76049,deer\n76050,bird\n76051,cat\n76052,bird\n76053,dog\n76054,deer\n76055,ship\n76056,truck\n76057,horse\n76058,airplane\n76059,frog\n76060,deer\n76061,frog\n76062,horse\n76063,frog\n76064,frog\n76065,ship\n76066,dog\n76067,cat\n76068,dog\n76069,cat\n76070,cat\n76071,horse\n76072,automobile\n76073,frog\n76074,truck\n76075,dog\n76076,deer\n76077,truck\n76078,horse\n76079,airplane\n76080,automobile\n76081,horse\n76082,cat\n76083,horse\n76084,cat\n76085,truck\n76086,frog\n76087,frog\n76088,horse\n76089,horse\n76090,deer\n76091,ship\n76092,frog\n76093,airplane\n76094,dog\n76095,deer\n76096,dog\n76097,airplane\n76098,bird\n76099,ship\n76100,frog\n76101,cat\n76102,airplane\n76103,cat\n76104,bird\n76105,airplane\n76106,deer\n76107,ship\n76108,dog\n76109,airplane\n76110,horse\n76111,ship\n76112,dog\n76113,dog\n76114,ship\n76115,frog\n76116,cat\n76117,deer\n76118,dog\n76119,truck\n76120,ship\n76121,cat\n76122,frog\n76123,bird\n76124,truck\n76125,bird\n76126,frog\n76127,ship\n76128,horse\n76129,automobile\n76130,cat\n76131,cat\n76132,deer\n76133,frog\n76134,dog\n76135,frog\n76136,dog\n76137,dog\n76138,ship\n76139,bird\n76140,horse\n76141,frog\n76142,bird\n76143,airplane\n76144,dog\n76145,frog\n76146,ship\n76147,airplane\n76148,truck\n76149,airplane\n76150,ship\n76151,airplane\n76152,bird\n76153,frog\n76154,frog\n76155,bird\n76156,dog\n76157,cat\n76158,cat\n76159,ship\n76160,truck\n76161,bird\n76162,deer\n76163,deer\n76164,cat\n76165,bird\n76166,cat\n76167,deer\n76168,automobile\n76169,automobile\n76170,cat\n76171,deer\n76172,truck\n76173,truck\n76174,deer\n76175,frog\n76176,deer\n76177,bird\n76178,ship\n76179,cat\n76180,bird\n76181,deer\n76182,horse\n76183,deer\n76184,cat\n76185,horse\n76186,deer\n76187,truck\n76188,cat\n76189,horse\n76190,horse\n76191,airplane\n76192,airplane\n76193,bird\n76194,horse\n76195,ship\n76196,frog\n76197,cat\n76198,airplane\n76199,dog\n76200,deer\n76201,cat\n76202,automobile\n76203,truck\n76204,deer\n76205,cat\n76206,ship\n76207,frog\n76208,frog\n76209,dog\n76210,automobile\n76211,airplane\n76212,ship\n76213,cat\n76214,frog\n76215,dog\n76216,automobile\n76217,dog\n76218,cat\n76219,dog\n76220,truck\n76221,dog\n76222,dog\n76223,deer\n76224,deer\n76225,bird\n76226,frog\n76227,horse\n76228,truck\n76229,frog\n76230,automobile\n76231,horse\n76232,horse\n76233,cat\n76234,horse\n76235,automobile\n76236,dog\n76237,frog\n76238,cat\n76239,bird\n76240,frog\n76241,deer\n76242,bird\n76243,frog\n76244,cat\n76245,frog\n76246,frog\n76247,cat\n76248,deer\n76249,truck\n76250,horse\n76251,cat\n76252,cat\n76253,cat\n76254,cat\n76255,deer\n76256,dog\n76257,deer\n76258,truck\n76259,ship\n76260,airplane\n76261,ship\n76262,airplane\n76263,frog\n76264,bird\n76265,ship\n76266,cat\n76267,airplane\n76268,frog\n76269,deer\n76270,horse\n76271,automobile\n76272,cat\n76273,airplane\n76274,bird\n76275,truck\n76276,deer\n76277,bird\n76278,bird\n76279,automobile\n76280,bird\n76281,bird\n76282,frog\n76283,ship\n76284,horse\n76285,airplane\n76286,automobile\n76287,cat\n76288,truck\n76289,cat\n76290,airplane\n76291,frog\n76292,bird\n76293,cat\n76294,bird\n76295,deer\n76296,cat\n76297,deer\n76298,deer\n76299,cat\n76300,dog\n76301,frog\n76302,automobile\n76303,cat\n76304,dog\n76305,ship\n76306,deer\n76307,cat\n76308,dog\n76309,truck\n76310,automobile\n76311,automobile\n76312,automobile\n76313,bird\n76314,deer\n76315,airplane\n76316,cat\n76317,truck\n76318,horse\n76319,truck\n76320,horse\n76321,bird\n76322,cat\n76323,truck\n76324,truck\n76325,ship\n76326,truck\n76327,frog\n76328,deer\n76329,frog\n76330,horse\n76331,cat\n76332,deer\n76333,frog\n76334,deer\n76335,frog\n76336,cat\n76337,cat\n76338,frog\n76339,deer\n76340,truck\n76341,horse\n76342,dog\n76343,frog\n76344,automobile\n76345,airplane\n76346,cat\n76347,deer\n76348,cat\n76349,deer\n76350,ship\n76351,deer\n76352,deer\n76353,horse\n76354,automobile\n76355,frog\n76356,automobile\n76357,horse\n76358,airplane\n76359,deer\n76360,bird\n76361,deer\n76362,truck\n76363,automobile\n76364,cat\n76365,dog\n76366,deer\n76367,deer\n76368,airplane\n76369,deer\n76370,automobile\n76371,cat\n76372,deer\n76373,bird\n76374,ship\n76375,frog\n76376,cat\n76377,airplane\n76378,automobile\n76379,cat\n76380,horse\n76381,deer\n76382,horse\n76383,ship\n76384,cat\n76385,deer\n76386,dog\n76387,deer\n76388,cat\n76389,automobile\n76390,frog\n76391,bird\n76392,frog\n76393,deer\n76394,horse\n76395,deer\n76396,airplane\n76397,frog\n76398,frog\n76399,horse\n76400,ship\n76401,horse\n76402,ship\n76403,truck\n76404,horse\n76405,bird\n76406,truck\n76407,cat\n76408,dog\n76409,airplane\n76410,frog\n76411,horse\n76412,horse\n76413,deer\n76414,deer\n76415,cat\n76416,truck\n76417,automobile\n76418,cat\n76419,frog\n76420,bird\n76421,bird\n76422,ship\n76423,deer\n76424,truck\n76425,cat\n76426,dog\n76427,deer\n76428,frog\n76429,horse\n76430,ship\n76431,frog\n76432,dog\n76433,horse\n76434,dog\n76435,horse\n76436,automobile\n76437,dog\n76438,airplane\n76439,bird\n76440,automobile\n76441,ship\n76442,deer\n76443,deer\n76444,deer\n76445,dog\n76446,airplane\n76447,airplane\n76448,ship\n76449,airplane\n76450,truck\n76451,airplane\n76452,horse\n76453,truck\n76454,cat\n76455,automobile\n76456,automobile\n76457,airplane\n76458,frog\n76459,truck\n76460,cat\n76461,frog\n76462,ship\n76463,airplane\n76464,dog\n76465,frog\n76466,frog\n76467,bird\n76468,dog\n76469,cat\n76470,airplane\n76471,cat\n76472,horse\n76473,cat\n76474,truck\n76475,horse\n76476,frog\n76477,truck\n76478,horse\n76479,dog\n76480,cat\n76481,ship\n76482,airplane\n76483,horse\n76484,cat\n76485,cat\n76486,ship\n76487,frog\n76488,automobile\n76489,horse\n76490,ship\n76491,deer\n76492,ship\n76493,truck\n76494,frog\n76495,airplane\n76496,bird\n76497,ship\n76498,ship\n76499,truck\n76500,dog\n76501,dog\n76502,ship\n76503,horse\n76504,truck\n76505,cat\n76506,deer\n76507,truck\n76508,truck\n76509,truck\n76510,cat\n76511,ship\n76512,airplane\n76513,truck\n76514,airplane\n76515,airplane\n76516,frog\n76517,truck\n76518,frog\n76519,deer\n76520,airplane\n76521,deer\n76522,bird\n76523,deer\n76524,horse\n76525,bird\n76526,dog\n76527,deer\n76528,deer\n76529,deer\n76530,dog\n76531,dog\n76532,truck\n76533,automobile\n76534,ship\n76535,automobile\n76536,truck\n76537,cat\n76538,truck\n76539,dog\n76540,cat\n76541,truck\n76542,horse\n76543,deer\n76544,ship\n76545,cat\n76546,deer\n76547,bird\n76548,horse\n76549,airplane\n76550,dog\n76551,deer\n76552,automobile\n76553,truck\n76554,frog\n76555,ship\n76556,frog\n76557,bird\n76558,ship\n76559,ship\n76560,airplane\n76561,deer\n76562,frog\n76563,truck\n76564,truck\n76565,deer\n76566,dog\n76567,frog\n76568,deer\n76569,cat\n76570,frog\n76571,ship\n76572,automobile\n76573,airplane\n76574,deer\n76575,dog\n76576,frog\n76577,deer\n76578,deer\n76579,dog\n76580,deer\n76581,automobile\n76582,frog\n76583,dog\n76584,deer\n76585,bird\n76586,ship\n76587,deer\n76588,ship\n76589,bird\n76590,deer\n76591,dog\n76592,deer\n76593,airplane\n76594,automobile\n76595,cat\n76596,automobile\n76597,bird\n76598,cat\n76599,deer\n76600,truck\n76601,frog\n76602,truck\n76603,ship\n76604,horse\n76605,airplane\n76606,cat\n76607,automobile\n76608,ship\n76609,horse\n76610,horse\n76611,deer\n76612,deer\n76613,ship\n76614,horse\n76615,airplane\n76616,ship\n76617,bird\n76618,cat\n76619,bird\n76620,airplane\n76621,deer\n76622,deer\n76623,cat\n76624,deer\n76625,dog\n76626,dog\n76627,deer\n76628,automobile\n76629,deer\n76630,airplane\n76631,cat\n76632,automobile\n76633,dog\n76634,cat\n76635,automobile\n76636,deer\n76637,deer\n76638,dog\n76639,bird\n76640,truck\n76641,dog\n76642,truck\n76643,automobile\n76644,deer\n76645,cat\n76646,automobile\n76647,deer\n76648,airplane\n76649,frog\n76650,cat\n76651,frog\n76652,frog\n76653,frog\n76654,deer\n76655,truck\n76656,airplane\n76657,bird\n76658,cat\n76659,airplane\n76660,horse\n76661,automobile\n76662,frog\n76663,dog\n76664,horse\n76665,automobile\n76666,deer\n76667,deer\n76668,dog\n76669,dog\n76670,airplane\n76671,horse\n76672,dog\n76673,ship\n76674,dog\n76675,ship\n76676,automobile\n76677,deer\n76678,deer\n76679,deer\n76680,deer\n76681,bird\n76682,deer\n76683,truck\n76684,cat\n76685,deer\n76686,frog\n76687,horse\n76688,bird\n76689,deer\n76690,deer\n76691,frog\n76692,cat\n76693,airplane\n76694,truck\n76695,bird\n76696,frog\n76697,dog\n76698,cat\n76699,deer\n76700,deer\n76701,dog\n76702,airplane\n76703,frog\n76704,frog\n76705,automobile\n76706,dog\n76707,frog\n76708,dog\n76709,truck\n76710,deer\n76711,horse\n76712,frog\n76713,cat\n76714,dog\n76715,ship\n76716,frog\n76717,cat\n76718,frog\n76719,airplane\n76720,deer\n76721,ship\n76722,truck\n76723,automobile\n76724,dog\n76725,ship\n76726,automobile\n76727,dog\n76728,cat\n76729,horse\n76730,cat\n76731,cat\n76732,automobile\n76733,cat\n76734,frog\n76735,ship\n76736,frog\n76737,deer\n76738,frog\n76739,automobile\n76740,airplane\n76741,cat\n76742,truck\n76743,horse\n76744,cat\n76745,airplane\n76746,airplane\n76747,dog\n76748,truck\n76749,airplane\n76750,cat\n76751,truck\n76752,cat\n76753,truck\n76754,deer\n76755,ship\n76756,ship\n76757,frog\n76758,deer\n76759,automobile\n76760,dog\n76761,airplane\n76762,cat\n76763,horse\n76764,cat\n76765,ship\n76766,cat\n76767,truck\n76768,frog\n76769,automobile\n76770,bird\n76771,cat\n76772,horse\n76773,cat\n76774,dog\n76775,bird\n76776,dog\n76777,truck\n76778,horse\n76779,cat\n76780,automobile\n76781,ship\n76782,frog\n76783,bird\n76784,automobile\n76785,airplane\n76786,deer\n76787,bird\n76788,ship\n76789,truck\n76790,deer\n76791,automobile\n76792,ship\n76793,bird\n76794,truck\n76795,truck\n76796,cat\n76797,horse\n76798,airplane\n76799,deer\n76800,truck\n76801,dog\n76802,deer\n76803,cat\n76804,cat\n76805,dog\n76806,deer\n76807,ship\n76808,automobile\n76809,frog\n76810,dog\n76811,horse\n76812,bird\n76813,cat\n76814,ship\n76815,bird\n76816,dog\n76817,automobile\n76818,horse\n76819,horse\n76820,cat\n76821,horse\n76822,horse\n76823,bird\n76824,dog\n76825,automobile\n76826,frog\n76827,bird\n76828,ship\n76829,cat\n76830,bird\n76831,truck\n76832,dog\n76833,airplane\n76834,automobile\n76835,frog\n76836,horse\n76837,deer\n76838,ship\n76839,cat\n76840,truck\n76841,ship\n76842,frog\n76843,deer\n76844,frog\n76845,bird\n76846,horse\n76847,truck\n76848,frog\n76849,deer\n76850,dog\n76851,deer\n76852,deer\n76853,cat\n76854,cat\n76855,horse\n76856,airplane\n76857,ship\n76858,truck\n76859,frog\n76860,frog\n76861,deer\n76862,cat\n76863,ship\n76864,truck\n76865,truck\n76866,deer\n76867,truck\n76868,cat\n76869,truck\n76870,horse\n76871,automobile\n76872,airplane\n76873,dog\n76874,airplane\n76875,bird\n76876,bird\n76877,frog\n76878,frog\n76879,airplane\n76880,frog\n76881,truck\n76882,deer\n76883,horse\n76884,deer\n76885,cat\n76886,dog\n76887,airplane\n76888,dog\n76889,deer\n76890,ship\n76891,airplane\n76892,dog\n76893,cat\n76894,truck\n76895,automobile\n76896,airplane\n76897,frog\n76898,truck\n76899,automobile\n76900,horse\n76901,deer\n76902,frog\n76903,airplane\n76904,horse\n76905,cat\n76906,truck\n76907,ship\n76908,ship\n76909,horse\n76910,frog\n76911,cat\n76912,cat\n76913,deer\n76914,deer\n76915,horse\n76916,frog\n76917,airplane\n76918,frog\n76919,dog\n76920,deer\n76921,airplane\n76922,frog\n76923,cat\n76924,bird\n76925,cat\n76926,automobile\n76927,truck\n76928,automobile\n76929,horse\n76930,truck\n76931,automobile\n76932,frog\n76933,cat\n76934,truck\n76935,cat\n76936,horse\n76937,bird\n76938,frog\n76939,airplane\n76940,airplane\n76941,ship\n76942,ship\n76943,ship\n76944,bird\n76945,dog\n76946,dog\n76947,bird\n76948,cat\n76949,cat\n76950,automobile\n76951,cat\n76952,cat\n76953,cat\n76954,airplane\n76955,truck\n76956,truck\n76957,airplane\n76958,frog\n76959,truck\n76960,horse\n76961,truck\n76962,airplane\n76963,deer\n76964,bird\n76965,airplane\n76966,dog\n76967,horse\n76968,bird\n76969,horse\n76970,frog\n76971,deer\n76972,airplane\n76973,truck\n76974,bird\n76975,airplane\n76976,bird\n76977,bird\n76978,bird\n76979,deer\n76980,truck\n76981,cat\n76982,ship\n76983,bird\n76984,truck\n76985,deer\n76986,cat\n76987,bird\n76988,truck\n76989,dog\n76990,airplane\n76991,dog\n76992,ship\n76993,airplane\n76994,deer\n76995,horse\n76996,automobile\n76997,frog\n76998,ship\n76999,horse\n77000,ship\n77001,bird\n77002,airplane\n77003,dog\n77004,cat\n77005,frog\n77006,bird\n77007,frog\n77008,bird\n77009,dog\n77010,dog\n77011,dog\n77012,ship\n77013,cat\n77014,deer\n77015,deer\n77016,airplane\n77017,deer\n77018,automobile\n77019,cat\n77020,cat\n77021,airplane\n77022,dog\n77023,bird\n77024,truck\n77025,deer\n77026,truck\n77027,ship\n77028,frog\n77029,frog\n77030,dog\n77031,frog\n77032,deer\n77033,truck\n77034,automobile\n77035,bird\n77036,cat\n77037,cat\n77038,deer\n77039,deer\n77040,cat\n77041,cat\n77042,dog\n77043,deer\n77044,dog\n77045,dog\n77046,cat\n77047,deer\n77048,cat\n77049,cat\n77050,cat\n77051,dog\n77052,frog\n77053,frog\n77054,dog\n77055,horse\n77056,dog\n77057,horse\n77058,deer\n77059,ship\n77060,bird\n77061,horse\n77062,ship\n77063,truck\n77064,cat\n77065,airplane\n77066,deer\n77067,truck\n77068,frog\n77069,dog\n77070,frog\n77071,ship\n77072,bird\n77073,ship\n77074,cat\n77075,deer\n77076,airplane\n77077,dog\n77078,airplane\n77079,dog\n77080,dog\n77081,horse\n77082,truck\n77083,truck\n77084,horse\n77085,dog\n77086,deer\n77087,airplane\n77088,airplane\n77089,truck\n77090,horse\n77091,frog\n77092,automobile\n77093,deer\n77094,cat\n77095,automobile\n77096,cat\n77097,airplane\n77098,airplane\n77099,frog\n77100,ship\n77101,airplane\n77102,automobile\n77103,airplane\n77104,frog\n77105,dog\n77106,dog\n77107,dog\n77108,frog\n77109,bird\n77110,cat\n77111,automobile\n77112,cat\n77113,frog\n77114,horse\n77115,frog\n77116,automobile\n77117,truck\n77118,ship\n77119,airplane\n77120,truck\n77121,bird\n77122,frog\n77123,ship\n77124,truck\n77125,ship\n77126,cat\n77127,cat\n77128,frog\n77129,deer\n77130,bird\n77131,truck\n77132,bird\n77133,cat\n77134,airplane\n77135,cat\n77136,bird\n77137,airplane\n77138,truck\n77139,frog\n77140,cat\n77141,horse\n77142,deer\n77143,automobile\n77144,dog\n77145,cat\n77146,airplane\n77147,dog\n77148,truck\n77149,dog\n77150,deer\n77151,cat\n77152,horse\n77153,dog\n77154,horse\n77155,deer\n77156,truck\n77157,truck\n77158,bird\n77159,ship\n77160,frog\n77161,dog\n77162,deer\n77163,frog\n77164,cat\n77165,automobile\n77166,deer\n77167,horse\n77168,truck\n77169,ship\n77170,airplane\n77171,deer\n77172,horse\n77173,frog\n77174,truck\n77175,truck\n77176,ship\n77177,cat\n77178,airplane\n77179,horse\n77180,ship\n77181,deer\n77182,airplane\n77183,cat\n77184,ship\n77185,cat\n77186,deer\n77187,ship\n77188,deer\n77189,deer\n77190,cat\n77191,dog\n77192,bird\n77193,dog\n77194,ship\n77195,truck\n77196,deer\n77197,automobile\n77198,airplane\n77199,truck\n77200,automobile\n77201,dog\n77202,cat\n77203,automobile\n77204,cat\n77205,frog\n77206,dog\n77207,ship\n77208,horse\n77209,airplane\n77210,cat\n77211,airplane\n77212,ship\n77213,dog\n77214,airplane\n77215,ship\n77216,cat\n77217,ship\n77218,ship\n77219,horse\n77220,deer\n77221,deer\n77222,frog\n77223,truck\n77224,truck\n77225,horse\n77226,bird\n77227,cat\n77228,deer\n77229,airplane\n77230,ship\n77231,frog\n77232,automobile\n77233,frog\n77234,cat\n77235,truck\n77236,bird\n77237,ship\n77238,dog\n77239,bird\n77240,deer\n77241,cat\n77242,airplane\n77243,frog\n77244,deer\n77245,frog\n77246,automobile\n77247,cat\n77248,deer\n77249,horse\n77250,ship\n77251,automobile\n77252,truck\n77253,dog\n77254,deer\n77255,automobile\n77256,dog\n77257,deer\n77258,cat\n77259,cat\n77260,frog\n77261,horse\n77262,dog\n77263,ship\n77264,truck\n77265,deer\n77266,bird\n77267,cat\n77268,ship\n77269,horse\n77270,horse\n77271,frog\n77272,ship\n77273,automobile\n77274,cat\n77275,horse\n77276,dog\n77277,frog\n77278,cat\n77279,cat\n77280,cat\n77281,truck\n77282,truck\n77283,ship\n77284,dog\n77285,cat\n77286,horse\n77287,bird\n77288,bird\n77289,cat\n77290,horse\n77291,horse\n77292,cat\n77293,truck\n77294,frog\n77295,deer\n77296,dog\n77297,horse\n77298,frog\n77299,horse\n77300,dog\n77301,truck\n77302,airplane\n77303,bird\n77304,cat\n77305,airplane\n77306,cat\n77307,cat\n77308,frog\n77309,dog\n77310,truck\n77311,automobile\n77312,deer\n77313,cat\n77314,automobile\n77315,deer\n77316,dog\n77317,frog\n77318,ship\n77319,horse\n77320,dog\n77321,deer\n77322,horse\n77323,cat\n77324,bird\n77325,dog\n77326,frog\n77327,deer\n77328,cat\n77329,deer\n77330,airplane\n77331,ship\n77332,airplane\n77333,truck\n77334,bird\n77335,automobile\n77336,truck\n77337,airplane\n77338,cat\n77339,dog\n77340,ship\n77341,truck\n77342,bird\n77343,airplane\n77344,dog\n77345,dog\n77346,frog\n77347,cat\n77348,automobile\n77349,bird\n77350,horse\n77351,cat\n77352,airplane\n77353,frog\n77354,deer\n77355,truck\n77356,frog\n77357,horse\n77358,ship\n77359,frog\n77360,horse\n77361,automobile\n77362,ship\n77363,frog\n77364,cat\n77365,horse\n77366,ship\n77367,automobile\n77368,ship\n77369,cat\n77370,cat\n77371,frog\n77372,horse\n77373,bird\n77374,bird\n77375,automobile\n77376,airplane\n77377,horse\n77378,ship\n77379,cat\n77380,horse\n77381,frog\n77382,horse\n77383,cat\n77384,automobile\n77385,cat\n77386,horse\n77387,dog\n77388,frog\n77389,ship\n77390,deer\n77391,ship\n77392,dog\n77393,dog\n77394,truck\n77395,ship\n77396,bird\n77397,truck\n77398,cat\n77399,frog\n77400,bird\n77401,bird\n77402,airplane\n77403,bird\n77404,airplane\n77405,frog\n77406,cat\n77407,dog\n77408,dog\n77409,horse\n77410,cat\n77411,deer\n77412,frog\n77413,airplane\n77414,automobile\n77415,bird\n77416,frog\n77417,ship\n77418,automobile\n77419,truck\n77420,bird\n77421,airplane\n77422,truck\n77423,horse\n77424,airplane\n77425,truck\n77426,dog\n77427,truck\n77428,truck\n77429,frog\n77430,automobile\n77431,bird\n77432,frog\n77433,airplane\n77434,frog\n77435,deer\n77436,cat\n77437,bird\n77438,deer\n77439,truck\n77440,frog\n77441,deer\n77442,horse\n77443,frog\n77444,horse\n77445,dog\n77446,cat\n77447,truck\n77448,frog\n77449,bird\n77450,frog\n77451,truck\n77452,cat\n77453,horse\n77454,deer\n77455,airplane\n77456,deer\n77457,horse\n77458,horse\n77459,automobile\n77460,deer\n77461,dog\n77462,automobile\n77463,bird\n77464,ship\n77465,ship\n77466,horse\n77467,cat\n77468,cat\n77469,airplane\n77470,automobile\n77471,cat\n77472,airplane\n77473,ship\n77474,bird\n77475,deer\n77476,truck\n77477,dog\n77478,automobile\n77479,dog\n77480,truck\n77481,truck\n77482,frog\n77483,frog\n77484,ship\n77485,cat\n77486,frog\n77487,truck\n77488,automobile\n77489,horse\n77490,bird\n77491,cat\n77492,frog\n77493,horse\n77494,dog\n77495,cat\n77496,deer\n77497,ship\n77498,deer\n77499,airplane\n77500,truck\n77501,airplane\n77502,airplane\n77503,automobile\n77504,bird\n77505,dog\n77506,frog\n77507,frog\n77508,horse\n77509,dog\n77510,dog\n77511,horse\n77512,ship\n77513,automobile\n77514,horse\n77515,cat\n77516,airplane\n77517,truck\n77518,truck\n77519,frog\n77520,truck\n77521,automobile\n77522,dog\n77523,truck\n77524,truck\n77525,truck\n77526,cat\n77527,cat\n77528,deer\n77529,automobile\n77530,cat\n77531,frog\n77532,deer\n77533,cat\n77534,horse\n77535,truck\n77536,cat\n77537,ship\n77538,frog\n77539,automobile\n77540,frog\n77541,dog\n77542,dog\n77543,cat\n77544,ship\n77545,ship\n77546,bird\n77547,ship\n77548,deer\n77549,cat\n77550,bird\n77551,automobile\n77552,cat\n77553,airplane\n77554,bird\n77555,airplane\n77556,cat\n77557,dog\n77558,frog\n77559,dog\n77560,automobile\n77561,horse\n77562,frog\n77563,horse\n77564,truck\n77565,horse\n77566,automobile\n77567,automobile\n77568,deer\n77569,automobile\n77570,airplane\n77571,bird\n77572,cat\n77573,deer\n77574,truck\n77575,deer\n77576,airplane\n77577,automobile\n77578,cat\n77579,deer\n77580,cat\n77581,airplane\n77582,truck\n77583,deer\n77584,deer\n77585,deer\n77586,truck\n77587,deer\n77588,bird\n77589,automobile\n77590,horse\n77591,airplane\n77592,bird\n77593,frog\n77594,bird\n77595,airplane\n77596,horse\n77597,cat\n77598,deer\n77599,automobile\n77600,ship\n77601,truck\n77602,automobile\n77603,bird\n77604,deer\n77605,cat\n77606,frog\n77607,deer\n77608,bird\n77609,cat\n77610,automobile\n77611,deer\n77612,frog\n77613,ship\n77614,truck\n77615,ship\n77616,dog\n77617,frog\n77618,deer\n77619,bird\n77620,dog\n77621,ship\n77622,deer\n77623,dog\n77624,bird\n77625,bird\n77626,dog\n77627,automobile\n77628,deer\n77629,ship\n77630,automobile\n77631,horse\n77632,deer\n77633,truck\n77634,deer\n77635,airplane\n77636,bird\n77637,bird\n77638,frog\n77639,automobile\n77640,cat\n77641,automobile\n77642,frog\n77643,airplane\n77644,bird\n77645,dog\n77646,horse\n77647,automobile\n77648,cat\n77649,truck\n77650,cat\n77651,horse\n77652,frog\n77653,deer\n77654,horse\n77655,truck\n77656,truck\n77657,dog\n77658,truck\n77659,truck\n77660,automobile\n77661,cat\n77662,horse\n77663,dog\n77664,ship\n77665,truck\n77666,horse\n77667,cat\n77668,airplane\n77669,cat\n77670,cat\n77671,deer\n77672,truck\n77673,airplane\n77674,frog\n77675,horse\n77676,cat\n77677,bird\n77678,truck\n77679,frog\n77680,automobile\n77681,cat\n77682,deer\n77683,deer\n77684,deer\n77685,dog\n77686,dog\n77687,horse\n77688,airplane\n77689,cat\n77690,cat\n77691,truck\n77692,deer\n77693,truck\n77694,automobile\n77695,horse\n77696,truck\n77697,airplane\n77698,cat\n77699,truck\n77700,ship\n77701,cat\n77702,bird\n77703,dog\n77704,cat\n77705,horse\n77706,airplane\n77707,frog\n77708,horse\n77709,frog\n77710,cat\n77711,frog\n77712,cat\n77713,bird\n77714,horse\n77715,frog\n77716,cat\n77717,truck\n77718,dog\n77719,bird\n77720,deer\n77721,horse\n77722,ship\n77723,truck\n77724,cat\n77725,frog\n77726,truck\n77727,airplane\n77728,frog\n77729,bird\n77730,dog\n77731,frog\n77732,truck\n77733,ship\n77734,deer\n77735,truck\n77736,bird\n77737,dog\n77738,ship\n77739,cat\n77740,deer\n77741,bird\n77742,ship\n77743,cat\n77744,ship\n77745,horse\n77746,automobile\n77747,airplane\n77748,frog\n77749,horse\n77750,bird\n77751,airplane\n77752,cat\n77753,dog\n77754,ship\n77755,cat\n77756,bird\n77757,dog\n77758,deer\n77759,horse\n77760,cat\n77761,bird\n77762,airplane\n77763,dog\n77764,deer\n77765,cat\n77766,truck\n77767,dog\n77768,airplane\n77769,bird\n77770,ship\n77771,dog\n77772,cat\n77773,ship\n77774,deer\n77775,dog\n77776,frog\n77777,dog\n77778,automobile\n77779,deer\n77780,truck\n77781,ship\n77782,cat\n77783,bird\n77784,airplane\n77785,dog\n77786,horse\n77787,ship\n77788,deer\n77789,frog\n77790,truck\n77791,dog\n77792,deer\n77793,bird\n77794,deer\n77795,deer\n77796,truck\n77797,automobile\n77798,cat\n77799,cat\n77800,horse\n77801,frog\n77802,horse\n77803,deer\n77804,cat\n77805,dog\n77806,horse\n77807,deer\n77808,airplane\n77809,deer\n77810,cat\n77811,automobile\n77812,bird\n77813,horse\n77814,automobile\n77815,bird\n77816,frog\n77817,ship\n77818,cat\n77819,automobile\n77820,deer\n77821,deer\n77822,cat\n77823,dog\n77824,bird\n77825,bird\n77826,truck\n77827,bird\n77828,deer\n77829,dog\n77830,frog\n77831,cat\n77832,airplane\n77833,cat\n77834,automobile\n77835,frog\n77836,ship\n77837,bird\n77838,airplane\n77839,bird\n77840,truck\n77841,cat\n77842,ship\n77843,airplane\n77844,automobile\n77845,airplane\n77846,automobile\n77847,deer\n77848,automobile\n77849,bird\n77850,dog\n77851,cat\n77852,frog\n77853,ship\n77854,cat\n77855,truck\n77856,truck\n77857,ship\n77858,truck\n77859,ship\n77860,truck\n77861,frog\n77862,airplane\n77863,deer\n77864,frog\n77865,horse\n77866,bird\n77867,airplane\n77868,airplane\n77869,deer\n77870,horse\n77871,dog\n77872,cat\n77873,dog\n77874,deer\n77875,frog\n77876,deer\n77877,deer\n77878,airplane\n77879,bird\n77880,bird\n77881,cat\n77882,ship\n77883,dog\n77884,airplane\n77885,horse\n77886,horse\n77887,automobile\n77888,frog\n77889,cat\n77890,frog\n77891,deer\n77892,ship\n77893,horse\n77894,airplane\n77895,ship\n77896,cat\n77897,truck\n77898,cat\n77899,bird\n77900,cat\n77901,cat\n77902,automobile\n77903,dog\n77904,bird\n77905,bird\n77906,bird\n77907,ship\n77908,dog\n77909,horse\n77910,frog\n77911,airplane\n77912,dog\n77913,ship\n77914,cat\n77915,frog\n77916,frog\n77917,cat\n77918,frog\n77919,bird\n77920,cat\n77921,bird\n77922,frog\n77923,airplane\n77924,deer\n77925,horse\n77926,deer\n77927,deer\n77928,ship\n77929,ship\n77930,deer\n77931,bird\n77932,truck\n77933,dog\n77934,dog\n77935,cat\n77936,ship\n77937,frog\n77938,horse\n77939,ship\n77940,truck\n77941,deer\n77942,cat\n77943,deer\n77944,dog\n77945,dog\n77946,cat\n77947,frog\n77948,dog\n77949,deer\n77950,cat\n77951,cat\n77952,deer\n77953,frog\n77954,deer\n77955,deer\n77956,cat\n77957,airplane\n77958,ship\n77959,truck\n77960,frog\n77961,automobile\n77962,deer\n77963,horse\n77964,deer\n77965,automobile\n77966,ship\n77967,frog\n77968,cat\n77969,frog\n77970,horse\n77971,airplane\n77972,deer\n77973,airplane\n77974,cat\n77975,truck\n77976,dog\n77977,truck\n77978,dog\n77979,airplane\n77980,automobile\n77981,ship\n77982,truck\n77983,ship\n77984,automobile\n77985,frog\n77986,deer\n77987,airplane\n77988,deer\n77989,automobile\n77990,deer\n77991,ship\n77992,cat\n77993,bird\n77994,frog\n77995,bird\n77996,deer\n77997,automobile\n77998,deer\n77999,automobile\n78000,automobile\n78001,deer\n78002,frog\n78003,dog\n78004,airplane\n78005,automobile\n78006,deer\n78007,dog\n78008,cat\n78009,bird\n78010,deer\n78011,deer\n78012,dog\n78013,automobile\n78014,cat\n78015,frog\n78016,automobile\n78017,cat\n78018,ship\n78019,frog\n78020,bird\n78021,dog\n78022,cat\n78023,ship\n78024,cat\n78025,horse\n78026,truck\n78027,cat\n78028,deer\n78029,truck\n78030,cat\n78031,truck\n78032,deer\n78033,bird\n78034,cat\n78035,bird\n78036,airplane\n78037,frog\n78038,horse\n78039,dog\n78040,airplane\n78041,frog\n78042,dog\n78043,horse\n78044,automobile\n78045,frog\n78046,cat\n78047,cat\n78048,deer\n78049,truck\n78050,dog\n78051,automobile\n78052,frog\n78053,frog\n78054,deer\n78055,airplane\n78056,ship\n78057,airplane\n78058,airplane\n78059,airplane\n78060,cat\n78061,airplane\n78062,deer\n78063,ship\n78064,ship\n78065,truck\n78066,bird\n78067,ship\n78068,deer\n78069,deer\n78070,deer\n78071,automobile\n78072,ship\n78073,frog\n78074,dog\n78075,bird\n78076,bird\n78077,horse\n78078,deer\n78079,frog\n78080,dog\n78081,dog\n78082,frog\n78083,automobile\n78084,truck\n78085,deer\n78086,deer\n78087,bird\n78088,deer\n78089,deer\n78090,bird\n78091,dog\n78092,frog\n78093,dog\n78094,horse\n78095,cat\n78096,truck\n78097,deer\n78098,deer\n78099,ship\n78100,truck\n78101,ship\n78102,horse\n78103,bird\n78104,truck\n78105,horse\n78106,airplane\n78107,deer\n78108,frog\n78109,cat\n78110,dog\n78111,frog\n78112,cat\n78113,truck\n78114,automobile\n78115,dog\n78116,cat\n78117,bird\n78118,cat\n78119,airplane\n78120,deer\n78121,dog\n78122,ship\n78123,dog\n78124,cat\n78125,bird\n78126,deer\n78127,ship\n78128,frog\n78129,deer\n78130,cat\n78131,truck\n78132,horse\n78133,airplane\n78134,airplane\n78135,cat\n78136,dog\n78137,dog\n78138,truck\n78139,deer\n78140,cat\n78141,automobile\n78142,frog\n78143,airplane\n78144,truck\n78145,ship\n78146,automobile\n78147,truck\n78148,horse\n78149,ship\n78150,ship\n78151,airplane\n78152,cat\n78153,airplane\n78154,ship\n78155,horse\n78156,frog\n78157,cat\n78158,automobile\n78159,ship\n78160,cat\n78161,frog\n78162,horse\n78163,bird\n78164,cat\n78165,bird\n78166,deer\n78167,truck\n78168,bird\n78169,deer\n78170,frog\n78171,cat\n78172,airplane\n78173,truck\n78174,deer\n78175,automobile\n78176,airplane\n78177,truck\n78178,automobile\n78179,frog\n78180,truck\n78181,dog\n78182,ship\n78183,ship\n78184,deer\n78185,automobile\n78186,cat\n78187,deer\n78188,deer\n78189,cat\n78190,ship\n78191,truck\n78192,automobile\n78193,automobile\n78194,dog\n78195,dog\n78196,deer\n78197,airplane\n78198,airplane\n78199,dog\n78200,deer\n78201,ship\n78202,horse\n78203,deer\n78204,cat\n78205,deer\n78206,cat\n78207,automobile\n78208,horse\n78209,truck\n78210,airplane\n78211,bird\n78212,automobile\n78213,dog\n78214,dog\n78215,deer\n78216,horse\n78217,cat\n78218,cat\n78219,deer\n78220,cat\n78221,deer\n78222,airplane\n78223,dog\n78224,horse\n78225,bird\n78226,airplane\n78227,automobile\n78228,cat\n78229,cat\n78230,dog\n78231,bird\n78232,airplane\n78233,horse\n78234,cat\n78235,ship\n78236,cat\n78237,cat\n78238,bird\n78239,truck\n78240,cat\n78241,horse\n78242,bird\n78243,frog\n78244,cat\n78245,truck\n78246,automobile\n78247,deer\n78248,truck\n78249,airplane\n78250,deer\n78251,bird\n78252,bird\n78253,dog\n78254,bird\n78255,deer\n78256,horse\n78257,frog\n78258,deer\n78259,dog\n78260,dog\n78261,bird\n78262,automobile\n78263,horse\n78264,horse\n78265,airplane\n78266,deer\n78267,ship\n78268,airplane\n78269,truck\n78270,frog\n78271,horse\n78272,cat\n78273,deer\n78274,cat\n78275,frog\n78276,horse\n78277,cat\n78278,airplane\n78279,frog\n78280,deer\n78281,truck\n78282,deer\n78283,ship\n78284,deer\n78285,airplane\n78286,ship\n78287,cat\n78288,dog\n78289,cat\n78290,horse\n78291,horse\n78292,airplane\n78293,bird\n78294,automobile\n78295,frog\n78296,deer\n78297,cat\n78298,automobile\n78299,ship\n78300,horse\n78301,airplane\n78302,deer\n78303,cat\n78304,horse\n78305,cat\n78306,dog\n78307,frog\n78308,bird\n78309,airplane\n78310,horse\n78311,cat\n78312,deer\n78313,bird\n78314,deer\n78315,cat\n78316,horse\n78317,truck\n78318,horse\n78319,truck\n78320,truck\n78321,truck\n78322,airplane\n78323,deer\n78324,frog\n78325,bird\n78326,frog\n78327,dog\n78328,frog\n78329,ship\n78330,frog\n78331,ship\n78332,automobile\n78333,dog\n78334,cat\n78335,cat\n78336,horse\n78337,truck\n78338,cat\n78339,airplane\n78340,horse\n78341,bird\n78342,frog\n78343,cat\n78344,deer\n78345,bird\n78346,cat\n78347,bird\n78348,horse\n78349,frog\n78350,bird\n78351,horse\n78352,horse\n78353,ship\n78354,deer\n78355,dog\n78356,frog\n78357,horse\n78358,frog\n78359,truck\n78360,automobile\n78361,deer\n78362,ship\n78363,ship\n78364,truck\n78365,truck\n78366,frog\n78367,bird\n78368,dog\n78369,horse\n78370,deer\n78371,dog\n78372,dog\n78373,cat\n78374,dog\n78375,horse\n78376,frog\n78377,ship\n78378,bird\n78379,deer\n78380,ship\n78381,ship\n78382,frog\n78383,frog\n78384,cat\n78385,truck\n78386,deer\n78387,cat\n78388,bird\n78389,frog\n78390,cat\n78391,airplane\n78392,ship\n78393,automobile\n78394,truck\n78395,frog\n78396,horse\n78397,cat\n78398,truck\n78399,automobile\n78400,cat\n78401,cat\n78402,deer\n78403,frog\n78404,airplane\n78405,deer\n78406,dog\n78407,ship\n78408,airplane\n78409,bird\n78410,deer\n78411,deer\n78412,truck\n78413,truck\n78414,dog\n78415,frog\n78416,frog\n78417,airplane\n78418,truck\n78419,ship\n78420,truck\n78421,deer\n78422,dog\n78423,automobile\n78424,cat\n78425,airplane\n78426,horse\n78427,bird\n78428,airplane\n78429,automobile\n78430,dog\n78431,automobile\n78432,airplane\n78433,cat\n78434,deer\n78435,ship\n78436,truck\n78437,horse\n78438,bird\n78439,cat\n78440,cat\n78441,deer\n78442,bird\n78443,automobile\n78444,truck\n78445,horse\n78446,automobile\n78447,cat\n78448,deer\n78449,truck\n78450,deer\n78451,deer\n78452,truck\n78453,automobile\n78454,dog\n78455,frog\n78456,frog\n78457,horse\n78458,cat\n78459,horse\n78460,automobile\n78461,automobile\n78462,truck\n78463,horse\n78464,truck\n78465,automobile\n78466,bird\n78467,dog\n78468,truck\n78469,horse\n78470,truck\n78471,cat\n78472,cat\n78473,ship\n78474,ship\n78475,deer\n78476,ship\n78477,bird\n78478,airplane\n78479,bird\n78480,frog\n78481,bird\n78482,bird\n78483,bird\n78484,frog\n78485,airplane\n78486,airplane\n78487,frog\n78488,dog\n78489,deer\n78490,cat\n78491,cat\n78492,bird\n78493,cat\n78494,ship\n78495,horse\n78496,frog\n78497,truck\n78498,airplane\n78499,frog\n78500,airplane\n78501,deer\n78502,deer\n78503,cat\n78504,bird\n78505,deer\n78506,cat\n78507,deer\n78508,automobile\n78509,bird\n78510,cat\n78511,airplane\n78512,truck\n78513,cat\n78514,deer\n78515,frog\n78516,cat\n78517,deer\n78518,truck\n78519,airplane\n78520,bird\n78521,frog\n78522,deer\n78523,deer\n78524,ship\n78525,frog\n78526,truck\n78527,dog\n78528,truck\n78529,horse\n78530,dog\n78531,frog\n78532,truck\n78533,cat\n78534,horse\n78535,ship\n78536,ship\n78537,cat\n78538,airplane\n78539,automobile\n78540,truck\n78541,dog\n78542,truck\n78543,ship\n78544,cat\n78545,truck\n78546,airplane\n78547,dog\n78548,truck\n78549,airplane\n78550,deer\n78551,airplane\n78552,bird\n78553,dog\n78554,horse\n78555,truck\n78556,frog\n78557,frog\n78558,cat\n78559,airplane\n78560,deer\n78561,deer\n78562,cat\n78563,truck\n78564,truck\n78565,dog\n78566,airplane\n78567,bird\n78568,cat\n78569,frog\n78570,cat\n78571,deer\n78572,cat\n78573,frog\n78574,ship\n78575,ship\n78576,airplane\n78577,automobile\n78578,deer\n78579,deer\n78580,horse\n78581,bird\n78582,deer\n78583,ship\n78584,dog\n78585,frog\n78586,airplane\n78587,bird\n78588,deer\n78589,horse\n78590,airplane\n78591,horse\n78592,deer\n78593,truck\n78594,ship\n78595,truck\n78596,truck\n78597,cat\n78598,frog\n78599,horse\n78600,cat\n78601,dog\n78602,deer\n78603,cat\n78604,frog\n78605,horse\n78606,frog\n78607,cat\n78608,ship\n78609,horse\n78610,truck\n78611,deer\n78612,automobile\n78613,bird\n78614,cat\n78615,dog\n78616,automobile\n78617,cat\n78618,ship\n78619,cat\n78620,horse\n78621,deer\n78622,frog\n78623,deer\n78624,cat\n78625,truck\n78626,frog\n78627,truck\n78628,ship\n78629,horse\n78630,deer\n78631,horse\n78632,deer\n78633,airplane\n78634,ship\n78635,frog\n78636,dog\n78637,ship\n78638,truck\n78639,ship\n78640,horse\n78641,bird\n78642,truck\n78643,truck\n78644,ship\n78645,dog\n78646,dog\n78647,dog\n78648,automobile\n78649,truck\n78650,deer\n78651,airplane\n78652,dog\n78653,truck\n78654,horse\n78655,airplane\n78656,cat\n78657,horse\n78658,automobile\n78659,frog\n78660,automobile\n78661,ship\n78662,frog\n78663,ship\n78664,truck\n78665,bird\n78666,ship\n78667,dog\n78668,deer\n78669,cat\n78670,truck\n78671,truck\n78672,cat\n78673,ship\n78674,airplane\n78675,cat\n78676,truck\n78677,cat\n78678,truck\n78679,dog\n78680,cat\n78681,horse\n78682,horse\n78683,deer\n78684,horse\n78685,deer\n78686,ship\n78687,ship\n78688,airplane\n78689,deer\n78690,truck\n78691,ship\n78692,truck\n78693,truck\n78694,dog\n78695,frog\n78696,deer\n78697,deer\n78698,cat\n78699,dog\n78700,frog\n78701,frog\n78702,airplane\n78703,frog\n78704,deer\n78705,frog\n78706,deer\n78707,dog\n78708,horse\n78709,bird\n78710,deer\n78711,ship\n78712,dog\n78713,deer\n78714,deer\n78715,ship\n78716,airplane\n78717,airplane\n78718,ship\n78719,deer\n78720,deer\n78721,airplane\n78722,bird\n78723,airplane\n78724,airplane\n78725,frog\n78726,cat\n78727,cat\n78728,horse\n78729,ship\n78730,dog\n78731,horse\n78732,truck\n78733,dog\n78734,truck\n78735,dog\n78736,cat\n78737,truck\n78738,cat\n78739,bird\n78740,frog\n78741,automobile\n78742,horse\n78743,cat\n78744,deer\n78745,horse\n78746,frog\n78747,airplane\n78748,truck\n78749,dog\n78750,truck\n78751,frog\n78752,bird\n78753,automobile\n78754,truck\n78755,ship\n78756,dog\n78757,ship\n78758,frog\n78759,cat\n78760,frog\n78761,frog\n78762,automobile\n78763,dog\n78764,automobile\n78765,airplane\n78766,deer\n78767,truck\n78768,cat\n78769,bird\n78770,automobile\n78771,automobile\n78772,airplane\n78773,truck\n78774,cat\n78775,dog\n78776,ship\n78777,ship\n78778,bird\n78779,deer\n78780,frog\n78781,automobile\n78782,deer\n78783,deer\n78784,truck\n78785,cat\n78786,frog\n78787,bird\n78788,dog\n78789,dog\n78790,bird\n78791,frog\n78792,frog\n78793,horse\n78794,dog\n78795,truck\n78796,deer\n78797,horse\n78798,cat\n78799,dog\n78800,cat\n78801,cat\n78802,deer\n78803,frog\n78804,bird\n78805,dog\n78806,frog\n78807,automobile\n78808,deer\n78809,deer\n78810,cat\n78811,horse\n78812,horse\n78813,frog\n78814,cat\n78815,dog\n78816,automobile\n78817,ship\n78818,automobile\n78819,deer\n78820,deer\n78821,bird\n78822,bird\n78823,frog\n78824,ship\n78825,truck\n78826,ship\n78827,truck\n78828,cat\n78829,ship\n78830,ship\n78831,truck\n78832,deer\n78833,automobile\n78834,airplane\n78835,dog\n78836,cat\n78837,cat\n78838,bird\n78839,dog\n78840,dog\n78841,cat\n78842,dog\n78843,frog\n78844,cat\n78845,frog\n78846,ship\n78847,deer\n78848,bird\n78849,automobile\n78850,cat\n78851,deer\n78852,ship\n78853,ship\n78854,truck\n78855,deer\n78856,bird\n78857,frog\n78858,cat\n78859,dog\n78860,airplane\n78861,ship\n78862,cat\n78863,automobile\n78864,ship\n78865,bird\n78866,airplane\n78867,automobile\n78868,truck\n78869,dog\n78870,cat\n78871,truck\n78872,deer\n78873,dog\n78874,ship\n78875,bird\n78876,bird\n78877,cat\n78878,cat\n78879,frog\n78880,automobile\n78881,airplane\n78882,bird\n78883,truck\n78884,bird\n78885,dog\n78886,truck\n78887,dog\n78888,automobile\n78889,dog\n78890,horse\n78891,truck\n78892,automobile\n78893,ship\n78894,cat\n78895,horse\n78896,ship\n78897,truck\n78898,airplane\n78899,dog\n78900,deer\n78901,deer\n78902,automobile\n78903,ship\n78904,frog\n78905,ship\n78906,cat\n78907,airplane\n78908,cat\n78909,horse\n78910,horse\n78911,frog\n78912,ship\n78913,bird\n78914,airplane\n78915,deer\n78916,truck\n78917,truck\n78918,frog\n78919,dog\n78920,dog\n78921,frog\n78922,bird\n78923,bird\n78924,dog\n78925,truck\n78926,dog\n78927,frog\n78928,bird\n78929,cat\n78930,cat\n78931,airplane\n78932,deer\n78933,automobile\n78934,deer\n78935,deer\n78936,deer\n78937,automobile\n78938,frog\n78939,automobile\n78940,airplane\n78941,airplane\n78942,airplane\n78943,deer\n78944,bird\n78945,truck\n78946,deer\n78947,cat\n78948,automobile\n78949,ship\n78950,ship\n78951,bird\n78952,horse\n78953,cat\n78954,horse\n78955,cat\n78956,bird\n78957,ship\n78958,cat\n78959,cat\n78960,frog\n78961,bird\n78962,cat\n78963,frog\n78964,dog\n78965,cat\n78966,automobile\n78967,cat\n78968,deer\n78969,cat\n78970,dog\n78971,horse\n78972,automobile\n78973,dog\n78974,frog\n78975,bird\n78976,airplane\n78977,bird\n78978,horse\n78979,dog\n78980,automobile\n78981,truck\n78982,truck\n78983,ship\n78984,dog\n78985,cat\n78986,horse\n78987,bird\n78988,bird\n78989,horse\n78990,truck\n78991,deer\n78992,bird\n78993,deer\n78994,deer\n78995,dog\n78996,automobile\n78997,automobile\n78998,truck\n78999,ship\n79000,ship\n79001,frog\n79002,bird\n79003,airplane\n79004,cat\n79005,truck\n79006,deer\n79007,automobile\n79008,truck\n79009,airplane\n79010,airplane\n79011,automobile\n79012,ship\n79013,deer\n79014,deer\n79015,bird\n79016,dog\n79017,horse\n79018,deer\n79019,bird\n79020,horse\n79021,truck\n79022,truck\n79023,ship\n79024,truck\n79025,truck\n79026,dog\n79027,automobile\n79028,deer\n79029,truck\n79030,frog\n79031,deer\n79032,cat\n79033,bird\n79034,airplane\n79035,automobile\n79036,frog\n79037,cat\n79038,frog\n79039,truck\n79040,deer\n79041,deer\n79042,airplane\n79043,dog\n79044,truck\n79045,deer\n79046,airplane\n79047,cat\n79048,deer\n79049,horse\n79050,airplane\n79051,ship\n79052,ship\n79053,deer\n79054,frog\n79055,truck\n79056,cat\n79057,truck\n79058,frog\n79059,cat\n79060,frog\n79061,frog\n79062,frog\n79063,airplane\n79064,bird\n79065,ship\n79066,automobile\n79067,automobile\n79068,bird\n79069,dog\n79070,cat\n79071,airplane\n79072,airplane\n79073,dog\n79074,bird\n79075,deer\n79076,deer\n79077,bird\n79078,truck\n79079,ship\n79080,dog\n79081,deer\n79082,cat\n79083,deer\n79084,dog\n79085,dog\n79086,frog\n79087,horse\n79088,cat\n79089,ship\n79090,cat\n79091,ship\n79092,frog\n79093,cat\n79094,deer\n79095,bird\n79096,cat\n79097,airplane\n79098,truck\n79099,automobile\n79100,bird\n79101,bird\n79102,frog\n79103,ship\n79104,horse\n79105,horse\n79106,bird\n79107,frog\n79108,deer\n79109,dog\n79110,airplane\n79111,cat\n79112,cat\n79113,frog\n79114,automobile\n79115,automobile\n79116,deer\n79117,deer\n79118,automobile\n79119,dog\n79120,truck\n79121,truck\n79122,automobile\n79123,airplane\n79124,dog\n79125,ship\n79126,deer\n79127,dog\n79128,frog\n79129,ship\n79130,ship\n79131,horse\n79132,frog\n79133,cat\n79134,airplane\n79135,truck\n79136,cat\n79137,horse\n79138,dog\n79139,horse\n79140,bird\n79141,deer\n79142,bird\n79143,dog\n79144,airplane\n79145,bird\n79146,truck\n79147,horse\n79148,bird\n79149,bird\n79150,frog\n79151,ship\n79152,horse\n79153,horse\n79154,frog\n79155,truck\n79156,dog\n79157,horse\n79158,airplane\n79159,truck\n79160,dog\n79161,automobile\n79162,automobile\n79163,deer\n79164,horse\n79165,airplane\n79166,frog\n79167,automobile\n79168,horse\n79169,bird\n79170,deer\n79171,horse\n79172,dog\n79173,deer\n79174,automobile\n79175,truck\n79176,dog\n79177,cat\n79178,deer\n79179,bird\n79180,bird\n79181,automobile\n79182,truck\n79183,ship\n79184,truck\n79185,automobile\n79186,automobile\n79187,cat\n79188,bird\n79189,truck\n79190,truck\n79191,deer\n79192,frog\n79193,truck\n79194,deer\n79195,airplane\n79196,cat\n79197,frog\n79198,airplane\n79199,dog\n79200,dog\n79201,frog\n79202,deer\n79203,automobile\n79204,horse\n79205,dog\n79206,horse\n79207,cat\n79208,truck\n79209,horse\n79210,deer\n79211,horse\n79212,cat\n79213,frog\n79214,airplane\n79215,deer\n79216,automobile\n79217,cat\n79218,deer\n79219,frog\n79220,deer\n79221,frog\n79222,deer\n79223,horse\n79224,cat\n79225,airplane\n79226,deer\n79227,airplane\n79228,cat\n79229,bird\n79230,deer\n79231,airplane\n79232,cat\n79233,dog\n79234,dog\n79235,deer\n79236,dog\n79237,airplane\n79238,dog\n79239,dog\n79240,frog\n79241,cat\n79242,truck\n79243,airplane\n79244,frog\n79245,truck\n79246,truck\n79247,automobile\n79248,truck\n79249,cat\n79250,dog\n79251,truck\n79252,frog\n79253,deer\n79254,cat\n79255,airplane\n79256,deer\n79257,ship\n79258,airplane\n79259,deer\n79260,cat\n79261,truck\n79262,horse\n79263,automobile\n79264,cat\n79265,dog\n79266,ship\n79267,deer\n79268,cat\n79269,horse\n79270,automobile\n79271,airplane\n79272,deer\n79273,automobile\n79274,cat\n79275,dog\n79276,bird\n79277,cat\n79278,automobile\n79279,truck\n79280,cat\n79281,cat\n79282,deer\n79283,dog\n79284,truck\n79285,ship\n79286,automobile\n79287,cat\n79288,horse\n79289,frog\n79290,horse\n79291,ship\n79292,cat\n79293,bird\n79294,dog\n79295,cat\n79296,frog\n79297,deer\n79298,bird\n79299,bird\n79300,deer\n79301,cat\n79302,ship\n79303,automobile\n79304,horse\n79305,cat\n79306,frog\n79307,automobile\n79308,frog\n79309,ship\n79310,deer\n79311,ship\n79312,cat\n79313,bird\n79314,ship\n79315,ship\n79316,horse\n79317,deer\n79318,airplane\n79319,horse\n79320,frog\n79321,automobile\n79322,horse\n79323,ship\n79324,ship\n79325,truck\n79326,truck\n79327,ship\n79328,airplane\n79329,horse\n79330,horse\n79331,horse\n79332,ship\n79333,automobile\n79334,horse\n79335,ship\n79336,deer\n79337,cat\n79338,cat\n79339,frog\n79340,bird\n79341,truck\n79342,cat\n79343,bird\n79344,truck\n79345,cat\n79346,airplane\n79347,frog\n79348,ship\n79349,frog\n79350,deer\n79351,airplane\n79352,dog\n79353,truck\n79354,bird\n79355,frog\n79356,airplane\n79357,bird\n79358,cat\n79359,ship\n79360,bird\n79361,truck\n79362,cat\n79363,frog\n79364,ship\n79365,truck\n79366,automobile\n79367,dog\n79368,airplane\n79369,cat\n79370,truck\n79371,truck\n79372,bird\n79373,frog\n79374,truck\n79375,truck\n79376,truck\n79377,dog\n79378,frog\n79379,airplane\n79380,frog\n79381,truck\n79382,truck\n79383,deer\n79384,airplane\n79385,bird\n79386,cat\n79387,airplane\n79388,cat\n79389,airplane\n79390,deer\n79391,dog\n79392,deer\n79393,automobile\n79394,automobile\n79395,airplane\n79396,dog\n79397,truck\n79398,frog\n79399,deer\n79400,horse\n79401,deer\n79402,automobile\n79403,bird\n79404,automobile\n79405,horse\n79406,frog\n79407,truck\n79408,deer\n79409,automobile\n79410,horse\n79411,deer\n79412,airplane\n79413,horse\n79414,horse\n79415,frog\n79416,automobile\n79417,dog\n79418,horse\n79419,deer\n79420,horse\n79421,dog\n79422,bird\n79423,cat\n79424,deer\n79425,deer\n79426,bird\n79427,bird\n79428,truck\n79429,ship\n79430,automobile\n79431,dog\n79432,horse\n79433,ship\n79434,cat\n79435,cat\n79436,frog\n79437,cat\n79438,deer\n79439,ship\n79440,deer\n79441,frog\n79442,automobile\n79443,cat\n79444,cat\n79445,truck\n79446,truck\n79447,truck\n79448,truck\n79449,truck\n79450,dog\n79451,horse\n79452,bird\n79453,ship\n79454,deer\n79455,horse\n79456,deer\n79457,truck\n79458,cat\n79459,dog\n79460,cat\n79461,ship\n79462,dog\n79463,dog\n79464,ship\n79465,deer\n79466,deer\n79467,cat\n79468,frog\n79469,ship\n79470,frog\n79471,deer\n79472,dog\n79473,airplane\n79474,dog\n79475,automobile\n79476,airplane\n79477,horse\n79478,frog\n79479,airplane\n79480,ship\n79481,bird\n79482,bird\n79483,ship\n79484,airplane\n79485,deer\n79486,deer\n79487,horse\n79488,bird\n79489,truck\n79490,deer\n79491,bird\n79492,airplane\n79493,dog\n79494,dog\n79495,deer\n79496,truck\n79497,dog\n79498,automobile\n79499,truck\n79500,cat\n79501,deer\n79502,frog\n79503,bird\n79504,automobile\n79505,airplane\n79506,automobile\n79507,deer\n79508,horse\n79509,ship\n79510,cat\n79511,dog\n79512,bird\n79513,bird\n79514,horse\n79515,automobile\n79516,airplane\n79517,cat\n79518,horse\n79519,dog\n79520,deer\n79521,dog\n79522,automobile\n79523,cat\n79524,dog\n79525,deer\n79526,frog\n79527,dog\n79528,cat\n79529,deer\n79530,deer\n79531,deer\n79532,bird\n79533,deer\n79534,bird\n79535,dog\n79536,horse\n79537,horse\n79538,airplane\n79539,horse\n79540,ship\n79541,horse\n79542,frog\n79543,frog\n79544,frog\n79545,dog\n79546,frog\n79547,cat\n79548,bird\n79549,horse\n79550,cat\n79551,dog\n79552,airplane\n79553,horse\n79554,ship\n79555,cat\n79556,airplane\n79557,ship\n79558,bird\n79559,deer\n79560,dog\n79561,automobile\n79562,ship\n79563,horse\n79564,deer\n79565,frog\n79566,deer\n79567,bird\n79568,frog\n79569,dog\n79570,frog\n79571,horse\n79572,airplane\n79573,truck\n79574,deer\n79575,ship\n79576,cat\n79577,deer\n79578,airplane\n79579,ship\n79580,truck\n79581,bird\n79582,bird\n79583,horse\n79584,truck\n79585,cat\n79586,deer\n79587,bird\n79588,cat\n79589,frog\n79590,horse\n79591,bird\n79592,dog\n79593,airplane\n79594,bird\n79595,deer\n79596,deer\n79597,deer\n79598,cat\n79599,bird\n79600,frog\n79601,frog\n79602,truck\n79603,truck\n79604,frog\n79605,dog\n79606,ship\n79607,airplane\n79608,frog\n79609,automobile\n79610,ship\n79611,deer\n79612,dog\n79613,airplane\n79614,horse\n79615,horse\n79616,deer\n79617,airplane\n79618,cat\n79619,ship\n79620,bird\n79621,horse\n79622,deer\n79623,bird\n79624,dog\n79625,dog\n79626,deer\n79627,frog\n79628,automobile\n79629,cat\n79630,horse\n79631,cat\n79632,frog\n79633,ship\n79634,ship\n79635,frog\n79636,truck\n79637,automobile\n79638,airplane\n79639,horse\n79640,bird\n79641,cat\n79642,ship\n79643,deer\n79644,airplane\n79645,frog\n79646,deer\n79647,airplane\n79648,dog\n79649,truck\n79650,airplane\n79651,frog\n79652,automobile\n79653,ship\n79654,cat\n79655,truck\n79656,horse\n79657,deer\n79658,frog\n79659,deer\n79660,dog\n79661,truck\n79662,frog\n79663,frog\n79664,dog\n79665,bird\n79666,automobile\n79667,ship\n79668,frog\n79669,automobile\n79670,deer\n79671,deer\n79672,ship\n79673,ship\n79674,dog\n79675,truck\n79676,cat\n79677,bird\n79678,truck\n79679,airplane\n79680,ship\n79681,ship\n79682,cat\n79683,automobile\n79684,ship\n79685,deer\n79686,cat\n79687,airplane\n79688,dog\n79689,horse\n79690,deer\n79691,truck\n79692,cat\n79693,dog\n79694,frog\n79695,airplane\n79696,horse\n79697,cat\n79698,deer\n79699,deer\n79700,dog\n79701,ship\n79702,truck\n79703,horse\n79704,truck\n79705,cat\n79706,dog\n79707,cat\n79708,automobile\n79709,cat\n79710,airplane\n79711,dog\n79712,frog\n79713,cat\n79714,bird\n79715,dog\n79716,ship\n79717,frog\n79718,automobile\n79719,deer\n79720,horse\n79721,airplane\n79722,airplane\n79723,bird\n79724,truck\n79725,bird\n79726,dog\n79727,bird\n79728,deer\n79729,deer\n79730,frog\n79731,truck\n79732,frog\n79733,truck\n79734,deer\n79735,horse\n79736,airplane\n79737,deer\n79738,truck\n79739,automobile\n79740,dog\n79741,horse\n79742,bird\n79743,automobile\n79744,bird\n79745,automobile\n79746,frog\n79747,ship\n79748,truck\n79749,cat\n79750,dog\n79751,dog\n79752,frog\n79753,truck\n79754,bird\n79755,truck\n79756,bird\n79757,horse\n79758,bird\n79759,ship\n79760,ship\n79761,cat\n79762,cat\n79763,dog\n79764,airplane\n79765,frog\n79766,ship\n79767,ship\n79768,truck\n79769,dog\n79770,truck\n79771,airplane\n79772,dog\n79773,cat\n79774,deer\n79775,deer\n79776,frog\n79777,frog\n79778,cat\n79779,cat\n79780,bird\n79781,dog\n79782,frog\n79783,truck\n79784,dog\n79785,cat\n79786,truck\n79787,dog\n79788,dog\n79789,deer\n79790,automobile\n79791,horse\n79792,bird\n79793,frog\n79794,deer\n79795,deer\n79796,cat\n79797,dog\n79798,truck\n79799,automobile\n79800,automobile\n79801,ship\n79802,airplane\n79803,cat\n79804,ship\n79805,cat\n79806,dog\n79807,truck\n79808,airplane\n79809,horse\n79810,truck\n79811,airplane\n79812,automobile\n79813,deer\n79814,ship\n79815,frog\n79816,deer\n79817,dog\n79818,frog\n79819,deer\n79820,horse\n79821,airplane\n79822,bird\n79823,truck\n79824,dog\n79825,airplane\n79826,ship\n79827,deer\n79828,deer\n79829,deer\n79830,ship\n79831,horse\n79832,automobile\n79833,airplane\n79834,automobile\n79835,horse\n79836,frog\n79837,horse\n79838,dog\n79839,truck\n79840,automobile\n79841,ship\n79842,truck\n79843,automobile\n79844,airplane\n79845,ship\n79846,dog\n79847,ship\n79848,deer\n79849,cat\n79850,cat\n79851,ship\n79852,deer\n79853,dog\n79854,airplane\n79855,cat\n79856,ship\n79857,automobile\n79858,dog\n79859,frog\n79860,truck\n79861,deer\n79862,horse\n79863,airplane\n79864,frog\n79865,horse\n79866,cat\n79867,frog\n79868,automobile\n79869,cat\n79870,bird\n79871,automobile\n79872,truck\n79873,ship\n79874,truck\n79875,dog\n79876,frog\n79877,deer\n79878,truck\n79879,horse\n79880,truck\n79881,cat\n79882,airplane\n79883,cat\n79884,deer\n79885,dog\n79886,deer\n79887,deer\n79888,bird\n79889,deer\n79890,frog\n79891,dog\n79892,ship\n79893,truck\n79894,dog\n79895,automobile\n79896,ship\n79897,frog\n79898,bird\n79899,bird\n79900,airplane\n79901,deer\n79902,airplane\n79903,deer\n79904,deer\n79905,truck\n79906,horse\n79907,truck\n79908,airplane\n79909,airplane\n79910,airplane\n79911,automobile\n79912,truck\n79913,cat\n79914,truck\n79915,bird\n79916,automobile\n79917,frog\n79918,truck\n79919,ship\n79920,truck\n79921,airplane\n79922,cat\n79923,truck\n79924,bird\n79925,bird\n79926,frog\n79927,ship\n79928,horse\n79929,dog\n79930,dog\n79931,truck\n79932,dog\n79933,deer\n79934,frog\n79935,horse\n79936,ship\n79937,frog\n79938,horse\n79939,ship\n79940,cat\n79941,dog\n79942,horse\n79943,frog\n79944,bird\n79945,frog\n79946,cat\n79947,bird\n79948,deer\n79949,bird\n79950,bird\n79951,frog\n79952,truck\n79953,frog\n79954,ship\n79955,cat\n79956,horse\n79957,deer\n79958,bird\n79959,deer\n79960,dog\n79961,ship\n79962,frog\n79963,bird\n79964,cat\n79965,horse\n79966,truck\n79967,frog\n79968,cat\n79969,deer\n79970,deer\n79971,bird\n79972,truck\n79973,horse\n79974,deer\n79975,dog\n79976,deer\n79977,dog\n79978,bird\n79979,frog\n79980,airplane\n79981,airplane\n79982,dog\n79983,airplane\n79984,deer\n79985,horse\n79986,ship\n79987,deer\n79988,dog\n79989,deer\n79990,truck\n79991,airplane\n79992,automobile\n79993,bird\n79994,horse\n79995,airplane\n79996,automobile\n79997,automobile\n79998,airplane\n79999,truck\n80000,horse\n80001,truck\n80002,cat\n80003,truck\n80004,dog\n80005,bird\n80006,horse\n80007,ship\n80008,deer\n80009,truck\n80010,bird\n80011,deer\n80012,automobile\n80013,bird\n80014,frog\n80015,cat\n80016,airplane\n80017,dog\n80018,horse\n80019,horse\n80020,dog\n80021,automobile\n80022,deer\n80023,deer\n80024,dog\n80025,automobile\n80026,ship\n80027,airplane\n80028,horse\n80029,airplane\n80030,cat\n80031,deer\n80032,bird\n80033,truck\n80034,horse\n80035,automobile\n80036,dog\n80037,horse\n80038,horse\n80039,truck\n80040,frog\n80041,truck\n80042,deer\n80043,deer\n80044,ship\n80045,airplane\n80046,deer\n80047,truck\n80048,airplane\n80049,cat\n80050,automobile\n80051,cat\n80052,frog\n80053,automobile\n80054,frog\n80055,automobile\n80056,frog\n80057,deer\n80058,dog\n80059,bird\n80060,bird\n80061,automobile\n80062,ship\n80063,bird\n80064,dog\n80065,dog\n80066,deer\n80067,cat\n80068,truck\n80069,frog\n80070,dog\n80071,bird\n80072,truck\n80073,truck\n80074,deer\n80075,truck\n80076,dog\n80077,airplane\n80078,bird\n80079,dog\n80080,bird\n80081,cat\n80082,horse\n80083,bird\n80084,frog\n80085,airplane\n80086,horse\n80087,truck\n80088,horse\n80089,dog\n80090,dog\n80091,bird\n80092,airplane\n80093,automobile\n80094,ship\n80095,deer\n80096,bird\n80097,horse\n80098,frog\n80099,bird\n80100,horse\n80101,dog\n80102,automobile\n80103,dog\n80104,airplane\n80105,bird\n80106,bird\n80107,dog\n80108,cat\n80109,deer\n80110,frog\n80111,ship\n80112,deer\n80113,automobile\n80114,bird\n80115,automobile\n80116,dog\n80117,ship\n80118,airplane\n80119,frog\n80120,ship\n80121,truck\n80122,frog\n80123,cat\n80124,truck\n80125,frog\n80126,airplane\n80127,bird\n80128,deer\n80129,dog\n80130,frog\n80131,bird\n80132,frog\n80133,horse\n80134,truck\n80135,cat\n80136,horse\n80137,deer\n80138,automobile\n80139,automobile\n80140,deer\n80141,automobile\n80142,deer\n80143,airplane\n80144,automobile\n80145,cat\n80146,cat\n80147,bird\n80148,truck\n80149,horse\n80150,dog\n80151,horse\n80152,dog\n80153,cat\n80154,frog\n80155,bird\n80156,deer\n80157,deer\n80158,ship\n80159,truck\n80160,horse\n80161,deer\n80162,deer\n80163,horse\n80164,cat\n80165,bird\n80166,frog\n80167,frog\n80168,dog\n80169,horse\n80170,bird\n80171,truck\n80172,truck\n80173,bird\n80174,horse\n80175,truck\n80176,horse\n80177,truck\n80178,airplane\n80179,dog\n80180,airplane\n80181,automobile\n80182,ship\n80183,cat\n80184,deer\n80185,truck\n80186,cat\n80187,truck\n80188,deer\n80189,horse\n80190,airplane\n80191,frog\n80192,dog\n80193,deer\n80194,deer\n80195,ship\n80196,bird\n80197,airplane\n80198,airplane\n80199,cat\n80200,frog\n80201,horse\n80202,deer\n80203,cat\n80204,truck\n80205,automobile\n80206,ship\n80207,deer\n80208,frog\n80209,automobile\n80210,horse\n80211,truck\n80212,airplane\n80213,dog\n80214,ship\n80215,truck\n80216,ship\n80217,horse\n80218,dog\n80219,ship\n80220,automobile\n80221,ship\n80222,cat\n80223,ship\n80224,airplane\n80225,automobile\n80226,frog\n80227,automobile\n80228,horse\n80229,dog\n80230,frog\n80231,airplane\n80232,automobile\n80233,horse\n80234,ship\n80235,airplane\n80236,automobile\n80237,cat\n80238,deer\n80239,dog\n80240,truck\n80241,horse\n80242,bird\n80243,deer\n80244,automobile\n80245,deer\n80246,dog\n80247,truck\n80248,airplane\n80249,cat\n80250,cat\n80251,cat\n80252,bird\n80253,truck\n80254,frog\n80255,dog\n80256,dog\n80257,deer\n80258,frog\n80259,frog\n80260,truck\n80261,cat\n80262,cat\n80263,bird\n80264,horse\n80265,frog\n80266,deer\n80267,frog\n80268,airplane\n80269,frog\n80270,ship\n80271,deer\n80272,bird\n80273,deer\n80274,automobile\n80275,automobile\n80276,automobile\n80277,airplane\n80278,deer\n80279,frog\n80280,cat\n80281,bird\n80282,deer\n80283,cat\n80284,ship\n80285,airplane\n80286,bird\n80287,automobile\n80288,truck\n80289,dog\n80290,horse\n80291,ship\n80292,cat\n80293,ship\n80294,automobile\n80295,bird\n80296,bird\n80297,cat\n80298,cat\n80299,bird\n80300,cat\n80301,deer\n80302,horse\n80303,cat\n80304,bird\n80305,deer\n80306,frog\n80307,horse\n80308,automobile\n80309,deer\n80310,automobile\n80311,truck\n80312,dog\n80313,cat\n80314,airplane\n80315,deer\n80316,cat\n80317,frog\n80318,bird\n80319,truck\n80320,frog\n80321,airplane\n80322,deer\n80323,ship\n80324,dog\n80325,horse\n80326,airplane\n80327,horse\n80328,bird\n80329,airplane\n80330,bird\n80331,truck\n80332,automobile\n80333,truck\n80334,dog\n80335,deer\n80336,ship\n80337,dog\n80338,cat\n80339,automobile\n80340,ship\n80341,deer\n80342,frog\n80343,deer\n80344,ship\n80345,horse\n80346,horse\n80347,deer\n80348,frog\n80349,deer\n80350,dog\n80351,airplane\n80352,horse\n80353,frog\n80354,deer\n80355,dog\n80356,deer\n80357,ship\n80358,horse\n80359,bird\n80360,truck\n80361,frog\n80362,deer\n80363,dog\n80364,frog\n80365,deer\n80366,cat\n80367,cat\n80368,bird\n80369,frog\n80370,horse\n80371,deer\n80372,cat\n80373,dog\n80374,deer\n80375,bird\n80376,bird\n80377,dog\n80378,dog\n80379,truck\n80380,cat\n80381,horse\n80382,truck\n80383,deer\n80384,horse\n80385,frog\n80386,dog\n80387,deer\n80388,frog\n80389,deer\n80390,airplane\n80391,truck\n80392,deer\n80393,deer\n80394,bird\n80395,horse\n80396,airplane\n80397,cat\n80398,truck\n80399,cat\n80400,ship\n80401,dog\n80402,airplane\n80403,cat\n80404,cat\n80405,horse\n80406,bird\n80407,truck\n80408,automobile\n80409,cat\n80410,automobile\n80411,bird\n80412,frog\n80413,automobile\n80414,truck\n80415,ship\n80416,frog\n80417,bird\n80418,dog\n80419,truck\n80420,automobile\n80421,automobile\n80422,cat\n80423,deer\n80424,airplane\n80425,cat\n80426,frog\n80427,dog\n80428,deer\n80429,truck\n80430,cat\n80431,automobile\n80432,deer\n80433,airplane\n80434,horse\n80435,truck\n80436,frog\n80437,horse\n80438,horse\n80439,frog\n80440,truck\n80441,dog\n80442,truck\n80443,deer\n80444,airplane\n80445,deer\n80446,frog\n80447,automobile\n80448,horse\n80449,ship\n80450,ship\n80451,dog\n80452,ship\n80453,ship\n80454,deer\n80455,cat\n80456,deer\n80457,automobile\n80458,deer\n80459,truck\n80460,cat\n80461,bird\n80462,deer\n80463,frog\n80464,automobile\n80465,cat\n80466,cat\n80467,frog\n80468,truck\n80469,airplane\n80470,cat\n80471,horse\n80472,dog\n80473,airplane\n80474,dog\n80475,frog\n80476,frog\n80477,truck\n80478,frog\n80479,truck\n80480,truck\n80481,bird\n80482,truck\n80483,dog\n80484,deer\n80485,automobile\n80486,horse\n80487,horse\n80488,automobile\n80489,frog\n80490,cat\n80491,airplane\n80492,cat\n80493,truck\n80494,horse\n80495,cat\n80496,bird\n80497,ship\n80498,frog\n80499,cat\n80500,ship\n80501,deer\n80502,horse\n80503,automobile\n80504,frog\n80505,truck\n80506,automobile\n80507,deer\n80508,horse\n80509,airplane\n80510,ship\n80511,cat\n80512,horse\n80513,bird\n80514,truck\n80515,bird\n80516,ship\n80517,truck\n80518,deer\n80519,cat\n80520,truck\n80521,truck\n80522,deer\n80523,horse\n80524,dog\n80525,dog\n80526,deer\n80527,bird\n80528,automobile\n80529,cat\n80530,automobile\n80531,truck\n80532,bird\n80533,automobile\n80534,deer\n80535,cat\n80536,dog\n80537,horse\n80538,airplane\n80539,horse\n80540,truck\n80541,dog\n80542,frog\n80543,airplane\n80544,airplane\n80545,horse\n80546,deer\n80547,truck\n80548,horse\n80549,frog\n80550,ship\n80551,cat\n80552,deer\n80553,cat\n80554,automobile\n80555,dog\n80556,truck\n80557,bird\n80558,dog\n80559,frog\n80560,deer\n80561,deer\n80562,ship\n80563,frog\n80564,deer\n80565,cat\n80566,dog\n80567,truck\n80568,frog\n80569,bird\n80570,cat\n80571,dog\n80572,bird\n80573,bird\n80574,airplane\n80575,truck\n80576,cat\n80577,bird\n80578,dog\n80579,ship\n80580,dog\n80581,cat\n80582,dog\n80583,deer\n80584,frog\n80585,ship\n80586,dog\n80587,bird\n80588,airplane\n80589,deer\n80590,ship\n80591,cat\n80592,cat\n80593,cat\n80594,airplane\n80595,frog\n80596,horse\n80597,deer\n80598,cat\n80599,ship\n80600,dog\n80601,deer\n80602,truck\n80603,dog\n80604,frog\n80605,ship\n80606,truck\n80607,automobile\n80608,airplane\n80609,automobile\n80610,cat\n80611,deer\n80612,cat\n80613,deer\n80614,deer\n80615,bird\n80616,ship\n80617,frog\n80618,bird\n80619,ship\n80620,frog\n80621,frog\n80622,bird\n80623,automobile\n80624,truck\n80625,cat\n80626,bird\n80627,airplane\n80628,dog\n80629,cat\n80630,dog\n80631,cat\n80632,deer\n80633,airplane\n80634,truck\n80635,frog\n80636,ship\n80637,airplane\n80638,bird\n80639,cat\n80640,airplane\n80641,frog\n80642,horse\n80643,horse\n80644,automobile\n80645,deer\n80646,automobile\n80647,cat\n80648,frog\n80649,ship\n80650,frog\n80651,cat\n80652,bird\n80653,frog\n80654,dog\n80655,horse\n80656,ship\n80657,ship\n80658,frog\n80659,cat\n80660,frog\n80661,bird\n80662,truck\n80663,dog\n80664,cat\n80665,deer\n80666,frog\n80667,frog\n80668,deer\n80669,deer\n80670,airplane\n80671,dog\n80672,cat\n80673,truck\n80674,frog\n80675,horse\n80676,deer\n80677,deer\n80678,truck\n80679,frog\n80680,cat\n80681,horse\n80682,airplane\n80683,airplane\n80684,horse\n80685,bird\n80686,horse\n80687,truck\n80688,cat\n80689,dog\n80690,truck\n80691,airplane\n80692,frog\n80693,bird\n80694,frog\n80695,bird\n80696,dog\n80697,horse\n80698,horse\n80699,dog\n80700,cat\n80701,dog\n80702,cat\n80703,automobile\n80704,horse\n80705,truck\n80706,ship\n80707,automobile\n80708,horse\n80709,cat\n80710,deer\n80711,bird\n80712,frog\n80713,truck\n80714,frog\n80715,truck\n80716,automobile\n80717,frog\n80718,ship\n80719,ship\n80720,cat\n80721,frog\n80722,ship\n80723,dog\n80724,ship\n80725,cat\n80726,bird\n80727,cat\n80728,bird\n80729,frog\n80730,horse\n80731,deer\n80732,cat\n80733,cat\n80734,frog\n80735,horse\n80736,airplane\n80737,truck\n80738,deer\n80739,cat\n80740,dog\n80741,deer\n80742,horse\n80743,airplane\n80744,airplane\n80745,bird\n80746,frog\n80747,dog\n80748,ship\n80749,deer\n80750,deer\n80751,deer\n80752,dog\n80753,truck\n80754,horse\n80755,truck\n80756,deer\n80757,cat\n80758,automobile\n80759,automobile\n80760,automobile\n80761,deer\n80762,truck\n80763,ship\n80764,truck\n80765,airplane\n80766,horse\n80767,cat\n80768,truck\n80769,deer\n80770,automobile\n80771,truck\n80772,horse\n80773,frog\n80774,cat\n80775,frog\n80776,cat\n80777,deer\n80778,bird\n80779,frog\n80780,cat\n80781,automobile\n80782,frog\n80783,truck\n80784,truck\n80785,cat\n80786,truck\n80787,frog\n80788,truck\n80789,ship\n80790,dog\n80791,automobile\n80792,horse\n80793,bird\n80794,bird\n80795,dog\n80796,bird\n80797,ship\n80798,dog\n80799,automobile\n80800,cat\n80801,airplane\n80802,dog\n80803,bird\n80804,dog\n80805,dog\n80806,deer\n80807,airplane\n80808,deer\n80809,horse\n80810,airplane\n80811,dog\n80812,horse\n80813,horse\n80814,automobile\n80815,cat\n80816,deer\n80817,airplane\n80818,deer\n80819,ship\n80820,bird\n80821,airplane\n80822,cat\n80823,truck\n80824,cat\n80825,deer\n80826,deer\n80827,ship\n80828,frog\n80829,deer\n80830,ship\n80831,frog\n80832,deer\n80833,deer\n80834,cat\n80835,ship\n80836,airplane\n80837,airplane\n80838,dog\n80839,automobile\n80840,automobile\n80841,frog\n80842,ship\n80843,bird\n80844,dog\n80845,automobile\n80846,truck\n80847,horse\n80848,airplane\n80849,ship\n80850,cat\n80851,airplane\n80852,cat\n80853,ship\n80854,bird\n80855,truck\n80856,automobile\n80857,deer\n80858,truck\n80859,deer\n80860,cat\n80861,automobile\n80862,ship\n80863,deer\n80864,ship\n80865,frog\n80866,cat\n80867,airplane\n80868,cat\n80869,airplane\n80870,frog\n80871,cat\n80872,airplane\n80873,cat\n80874,automobile\n80875,frog\n80876,dog\n80877,automobile\n80878,horse\n80879,dog\n80880,automobile\n80881,cat\n80882,cat\n80883,deer\n80884,horse\n80885,airplane\n80886,ship\n80887,ship\n80888,deer\n80889,frog\n80890,ship\n80891,horse\n80892,bird\n80893,deer\n80894,cat\n80895,frog\n80896,airplane\n80897,dog\n80898,ship\n80899,bird\n80900,horse\n80901,ship\n80902,deer\n80903,airplane\n80904,bird\n80905,airplane\n80906,frog\n80907,bird\n80908,bird\n80909,automobile\n80910,cat\n80911,truck\n80912,cat\n80913,frog\n80914,bird\n80915,ship\n80916,ship\n80917,deer\n80918,dog\n80919,deer\n80920,ship\n80921,horse\n80922,dog\n80923,deer\n80924,deer\n80925,horse\n80926,bird\n80927,deer\n80928,truck\n80929,bird\n80930,deer\n80931,cat\n80932,horse\n80933,cat\n80934,truck\n80935,frog\n80936,deer\n80937,dog\n80938,automobile\n80939,horse\n80940,dog\n80941,frog\n80942,cat\n80943,deer\n80944,airplane\n80945,horse\n80946,truck\n80947,cat\n80948,cat\n80949,truck\n80950,horse\n80951,dog\n80952,airplane\n80953,airplane\n80954,dog\n80955,truck\n80956,frog\n80957,frog\n80958,airplane\n80959,deer\n80960,cat\n80961,automobile\n80962,dog\n80963,bird\n80964,automobile\n80965,automobile\n80966,frog\n80967,automobile\n80968,truck\n80969,bird\n80970,deer\n80971,frog\n80972,truck\n80973,truck\n80974,deer\n80975,cat\n80976,frog\n80977,dog\n80978,truck\n80979,cat\n80980,ship\n80981,truck\n80982,horse\n80983,truck\n80984,ship\n80985,truck\n80986,airplane\n80987,deer\n80988,frog\n80989,bird\n80990,automobile\n80991,cat\n80992,horse\n80993,cat\n80994,truck\n80995,frog\n80996,horse\n80997,airplane\n80998,horse\n80999,dog\n81000,truck\n81001,frog\n81002,bird\n81003,horse\n81004,frog\n81005,dog\n81006,deer\n81007,automobile\n81008,deer\n81009,horse\n81010,dog\n81011,truck\n81012,ship\n81013,frog\n81014,truck\n81015,bird\n81016,automobile\n81017,automobile\n81018,deer\n81019,cat\n81020,frog\n81021,cat\n81022,cat\n81023,ship\n81024,deer\n81025,airplane\n81026,deer\n81027,truck\n81028,automobile\n81029,bird\n81030,airplane\n81031,frog\n81032,deer\n81033,airplane\n81034,frog\n81035,deer\n81036,airplane\n81037,airplane\n81038,ship\n81039,bird\n81040,cat\n81041,bird\n81042,bird\n81043,airplane\n81044,frog\n81045,deer\n81046,truck\n81047,cat\n81048,frog\n81049,ship\n81050,truck\n81051,truck\n81052,truck\n81053,cat\n81054,frog\n81055,deer\n81056,frog\n81057,truck\n81058,truck\n81059,frog\n81060,cat\n81061,truck\n81062,cat\n81063,truck\n81064,airplane\n81065,bird\n81066,dog\n81067,ship\n81068,deer\n81069,bird\n81070,deer\n81071,truck\n81072,frog\n81073,truck\n81074,deer\n81075,truck\n81076,deer\n81077,truck\n81078,truck\n81079,deer\n81080,truck\n81081,deer\n81082,horse\n81083,bird\n81084,cat\n81085,horse\n81086,ship\n81087,bird\n81088,bird\n81089,automobile\n81090,frog\n81091,deer\n81092,automobile\n81093,deer\n81094,frog\n81095,ship\n81096,cat\n81097,truck\n81098,cat\n81099,deer\n81100,deer\n81101,truck\n81102,dog\n81103,cat\n81104,deer\n81105,horse\n81106,ship\n81107,horse\n81108,cat\n81109,bird\n81110,cat\n81111,horse\n81112,automobile\n81113,automobile\n81114,deer\n81115,truck\n81116,airplane\n81117,deer\n81118,truck\n81119,ship\n81120,truck\n81121,cat\n81122,cat\n81123,dog\n81124,airplane\n81125,bird\n81126,airplane\n81127,automobile\n81128,ship\n81129,cat\n81130,bird\n81131,ship\n81132,truck\n81133,ship\n81134,frog\n81135,ship\n81136,cat\n81137,bird\n81138,dog\n81139,frog\n81140,frog\n81141,bird\n81142,truck\n81143,dog\n81144,deer\n81145,cat\n81146,deer\n81147,ship\n81148,cat\n81149,horse\n81150,airplane\n81151,dog\n81152,deer\n81153,horse\n81154,airplane\n81155,bird\n81156,bird\n81157,automobile\n81158,ship\n81159,frog\n81160,truck\n81161,dog\n81162,airplane\n81163,automobile\n81164,ship\n81165,dog\n81166,deer\n81167,dog\n81168,dog\n81169,airplane\n81170,ship\n81171,airplane\n81172,frog\n81173,frog\n81174,dog\n81175,dog\n81176,ship\n81177,bird\n81178,airplane\n81179,deer\n81180,truck\n81181,dog\n81182,deer\n81183,cat\n81184,cat\n81185,horse\n81186,frog\n81187,deer\n81188,ship\n81189,dog\n81190,dog\n81191,dog\n81192,automobile\n81193,airplane\n81194,ship\n81195,bird\n81196,ship\n81197,dog\n81198,truck\n81199,airplane\n81200,dog\n81201,cat\n81202,bird\n81203,cat\n81204,airplane\n81205,horse\n81206,deer\n81207,frog\n81208,cat\n81209,deer\n81210,deer\n81211,deer\n81212,frog\n81213,cat\n81214,frog\n81215,cat\n81216,cat\n81217,frog\n81218,ship\n81219,deer\n81220,ship\n81221,horse\n81222,automobile\n81223,airplane\n81224,truck\n81225,bird\n81226,automobile\n81227,ship\n81228,bird\n81229,bird\n81230,cat\n81231,dog\n81232,horse\n81233,airplane\n81234,deer\n81235,frog\n81236,bird\n81237,bird\n81238,airplane\n81239,dog\n81240,cat\n81241,dog\n81242,horse\n81243,truck\n81244,cat\n81245,airplane\n81246,truck\n81247,cat\n81248,ship\n81249,cat\n81250,cat\n81251,horse\n81252,truck\n81253,frog\n81254,frog\n81255,frog\n81256,airplane\n81257,frog\n81258,automobile\n81259,bird\n81260,deer\n81261,deer\n81262,deer\n81263,truck\n81264,horse\n81265,airplane\n81266,cat\n81267,dog\n81268,horse\n81269,bird\n81270,bird\n81271,bird\n81272,horse\n81273,deer\n81274,airplane\n81275,frog\n81276,deer\n81277,horse\n81278,automobile\n81279,truck\n81280,ship\n81281,deer\n81282,ship\n81283,cat\n81284,truck\n81285,airplane\n81286,truck\n81287,horse\n81288,dog\n81289,bird\n81290,cat\n81291,deer\n81292,deer\n81293,truck\n81294,airplane\n81295,bird\n81296,cat\n81297,deer\n81298,bird\n81299,horse\n81300,dog\n81301,ship\n81302,dog\n81303,truck\n81304,deer\n81305,dog\n81306,ship\n81307,cat\n81308,deer\n81309,frog\n81310,deer\n81311,horse\n81312,truck\n81313,bird\n81314,ship\n81315,automobile\n81316,truck\n81317,deer\n81318,airplane\n81319,dog\n81320,ship\n81321,frog\n81322,airplane\n81323,cat\n81324,frog\n81325,horse\n81326,frog\n81327,frog\n81328,deer\n81329,horse\n81330,frog\n81331,truck\n81332,frog\n81333,deer\n81334,frog\n81335,dog\n81336,deer\n81337,ship\n81338,ship\n81339,ship\n81340,dog\n81341,bird\n81342,truck\n81343,horse\n81344,truck\n81345,ship\n81346,frog\n81347,airplane\n81348,frog\n81349,dog\n81350,deer\n81351,airplane\n81352,frog\n81353,deer\n81354,deer\n81355,cat\n81356,frog\n81357,deer\n81358,airplane\n81359,bird\n81360,dog\n81361,ship\n81362,bird\n81363,frog\n81364,dog\n81365,cat\n81366,deer\n81367,dog\n81368,dog\n81369,cat\n81370,cat\n81371,automobile\n81372,cat\n81373,horse\n81374,automobile\n81375,automobile\n81376,truck\n81377,truck\n81378,bird\n81379,airplane\n81380,bird\n81381,horse\n81382,bird\n81383,cat\n81384,frog\n81385,deer\n81386,truck\n81387,dog\n81388,dog\n81389,dog\n81390,dog\n81391,deer\n81392,automobile\n81393,frog\n81394,cat\n81395,cat\n81396,airplane\n81397,airplane\n81398,ship\n81399,truck\n81400,cat\n81401,deer\n81402,truck\n81403,deer\n81404,airplane\n81405,truck\n81406,frog\n81407,frog\n81408,airplane\n81409,deer\n81410,deer\n81411,truck\n81412,cat\n81413,airplane\n81414,cat\n81415,dog\n81416,dog\n81417,deer\n81418,cat\n81419,dog\n81420,horse\n81421,cat\n81422,ship\n81423,frog\n81424,horse\n81425,ship\n81426,airplane\n81427,cat\n81428,truck\n81429,automobile\n81430,frog\n81431,truck\n81432,bird\n81433,deer\n81434,horse\n81435,deer\n81436,cat\n81437,airplane\n81438,frog\n81439,cat\n81440,truck\n81441,frog\n81442,dog\n81443,horse\n81444,dog\n81445,dog\n81446,cat\n81447,frog\n81448,deer\n81449,ship\n81450,horse\n81451,deer\n81452,horse\n81453,deer\n81454,dog\n81455,deer\n81456,truck\n81457,deer\n81458,ship\n81459,dog\n81460,automobile\n81461,horse\n81462,bird\n81463,airplane\n81464,bird\n81465,airplane\n81466,cat\n81467,frog\n81468,ship\n81469,truck\n81470,deer\n81471,frog\n81472,bird\n81473,dog\n81474,bird\n81475,ship\n81476,deer\n81477,horse\n81478,bird\n81479,dog\n81480,frog\n81481,automobile\n81482,deer\n81483,truck\n81484,ship\n81485,frog\n81486,ship\n81487,automobile\n81488,truck\n81489,frog\n81490,dog\n81491,deer\n81492,automobile\n81493,truck\n81494,deer\n81495,bird\n81496,frog\n81497,deer\n81498,bird\n81499,automobile\n81500,deer\n81501,frog\n81502,dog\n81503,truck\n81504,horse\n81505,ship\n81506,ship\n81507,frog\n81508,dog\n81509,truck\n81510,automobile\n81511,bird\n81512,dog\n81513,bird\n81514,truck\n81515,truck\n81516,truck\n81517,frog\n81518,bird\n81519,horse\n81520,cat\n81521,bird\n81522,horse\n81523,dog\n81524,horse\n81525,truck\n81526,dog\n81527,frog\n81528,deer\n81529,bird\n81530,deer\n81531,cat\n81532,truck\n81533,truck\n81534,frog\n81535,frog\n81536,truck\n81537,cat\n81538,deer\n81539,automobile\n81540,horse\n81541,ship\n81542,cat\n81543,airplane\n81544,frog\n81545,horse\n81546,airplane\n81547,dog\n81548,deer\n81549,cat\n81550,cat\n81551,airplane\n81552,horse\n81553,frog\n81554,airplane\n81555,deer\n81556,truck\n81557,airplane\n81558,deer\n81559,horse\n81560,cat\n81561,cat\n81562,cat\n81563,dog\n81564,horse\n81565,horse\n81566,horse\n81567,frog\n81568,cat\n81569,bird\n81570,bird\n81571,airplane\n81572,deer\n81573,cat\n81574,truck\n81575,frog\n81576,airplane\n81577,airplane\n81578,deer\n81579,truck\n81580,truck\n81581,cat\n81582,dog\n81583,truck\n81584,truck\n81585,horse\n81586,horse\n81587,ship\n81588,dog\n81589,dog\n81590,deer\n81591,ship\n81592,deer\n81593,dog\n81594,bird\n81595,bird\n81596,cat\n81597,deer\n81598,horse\n81599,truck\n81600,automobile\n81601,deer\n81602,cat\n81603,frog\n81604,deer\n81605,deer\n81606,dog\n81607,dog\n81608,bird\n81609,ship\n81610,frog\n81611,deer\n81612,horse\n81613,frog\n81614,ship\n81615,dog\n81616,cat\n81617,frog\n81618,ship\n81619,truck\n81620,dog\n81621,airplane\n81622,automobile\n81623,ship\n81624,horse\n81625,cat\n81626,bird\n81627,horse\n81628,truck\n81629,ship\n81630,bird\n81631,ship\n81632,horse\n81633,cat\n81634,ship\n81635,truck\n81636,dog\n81637,automobile\n81638,frog\n81639,cat\n81640,cat\n81641,horse\n81642,bird\n81643,airplane\n81644,bird\n81645,dog\n81646,frog\n81647,truck\n81648,ship\n81649,horse\n81650,truck\n81651,dog\n81652,deer\n81653,frog\n81654,truck\n81655,automobile\n81656,truck\n81657,airplane\n81658,bird\n81659,cat\n81660,cat\n81661,dog\n81662,ship\n81663,horse\n81664,automobile\n81665,horse\n81666,ship\n81667,airplane\n81668,cat\n81669,truck\n81670,truck\n81671,cat\n81672,cat\n81673,frog\n81674,cat\n81675,dog\n81676,deer\n81677,frog\n81678,bird\n81679,frog\n81680,cat\n81681,truck\n81682,ship\n81683,bird\n81684,ship\n81685,cat\n81686,cat\n81687,airplane\n81688,automobile\n81689,bird\n81690,dog\n81691,cat\n81692,airplane\n81693,truck\n81694,dog\n81695,cat\n81696,horse\n81697,bird\n81698,truck\n81699,cat\n81700,cat\n81701,dog\n81702,ship\n81703,truck\n81704,cat\n81705,cat\n81706,dog\n81707,frog\n81708,dog\n81709,deer\n81710,horse\n81711,bird\n81712,ship\n81713,deer\n81714,cat\n81715,bird\n81716,automobile\n81717,bird\n81718,horse\n81719,frog\n81720,automobile\n81721,cat\n81722,automobile\n81723,ship\n81724,cat\n81725,bird\n81726,cat\n81727,frog\n81728,bird\n81729,dog\n81730,frog\n81731,airplane\n81732,deer\n81733,frog\n81734,deer\n81735,horse\n81736,bird\n81737,dog\n81738,airplane\n81739,frog\n81740,dog\n81741,cat\n81742,airplane\n81743,horse\n81744,bird\n81745,horse\n81746,frog\n81747,cat\n81748,bird\n81749,cat\n81750,frog\n81751,frog\n81752,airplane\n81753,ship\n81754,truck\n81755,deer\n81756,automobile\n81757,horse\n81758,deer\n81759,ship\n81760,dog\n81761,horse\n81762,cat\n81763,frog\n81764,cat\n81765,deer\n81766,deer\n81767,deer\n81768,deer\n81769,truck\n81770,deer\n81771,automobile\n81772,ship\n81773,cat\n81774,automobile\n81775,horse\n81776,deer\n81777,airplane\n81778,cat\n81779,dog\n81780,dog\n81781,frog\n81782,airplane\n81783,horse\n81784,deer\n81785,cat\n81786,frog\n81787,cat\n81788,cat\n81789,bird\n81790,dog\n81791,frog\n81792,horse\n81793,truck\n81794,frog\n81795,frog\n81796,airplane\n81797,bird\n81798,deer\n81799,automobile\n81800,deer\n81801,ship\n81802,frog\n81803,dog\n81804,frog\n81805,ship\n81806,airplane\n81807,airplane\n81808,bird\n81809,airplane\n81810,deer\n81811,ship\n81812,deer\n81813,bird\n81814,horse\n81815,deer\n81816,ship\n81817,dog\n81818,dog\n81819,truck\n81820,cat\n81821,ship\n81822,cat\n81823,cat\n81824,dog\n81825,dog\n81826,deer\n81827,cat\n81828,dog\n81829,cat\n81830,horse\n81831,airplane\n81832,ship\n81833,bird\n81834,bird\n81835,truck\n81836,horse\n81837,cat\n81838,frog\n81839,horse\n81840,horse\n81841,frog\n81842,frog\n81843,frog\n81844,frog\n81845,deer\n81846,truck\n81847,ship\n81848,deer\n81849,airplane\n81850,frog\n81851,cat\n81852,airplane\n81853,horse\n81854,cat\n81855,automobile\n81856,airplane\n81857,deer\n81858,automobile\n81859,airplane\n81860,frog\n81861,automobile\n81862,bird\n81863,ship\n81864,bird\n81865,automobile\n81866,deer\n81867,deer\n81868,airplane\n81869,ship\n81870,bird\n81871,automobile\n81872,bird\n81873,deer\n81874,frog\n81875,horse\n81876,airplane\n81877,truck\n81878,cat\n81879,dog\n81880,deer\n81881,truck\n81882,automobile\n81883,dog\n81884,deer\n81885,horse\n81886,horse\n81887,dog\n81888,bird\n81889,deer\n81890,truck\n81891,horse\n81892,truck\n81893,dog\n81894,deer\n81895,frog\n81896,horse\n81897,cat\n81898,automobile\n81899,cat\n81900,ship\n81901,ship\n81902,airplane\n81903,deer\n81904,frog\n81905,airplane\n81906,frog\n81907,airplane\n81908,airplane\n81909,cat\n81910,dog\n81911,deer\n81912,horse\n81913,airplane\n81914,cat\n81915,horse\n81916,horse\n81917,deer\n81918,cat\n81919,horse\n81920,cat\n81921,ship\n81922,deer\n81923,truck\n81924,cat\n81925,deer\n81926,truck\n81927,deer\n81928,horse\n81929,frog\n81930,horse\n81931,automobile\n81932,truck\n81933,deer\n81934,ship\n81935,truck\n81936,frog\n81937,truck\n81938,dog\n81939,horse\n81940,truck\n81941,cat\n81942,airplane\n81943,automobile\n81944,dog\n81945,horse\n81946,cat\n81947,frog\n81948,horse\n81949,truck\n81950,cat\n81951,cat\n81952,cat\n81953,cat\n81954,horse\n81955,horse\n81956,bird\n81957,ship\n81958,deer\n81959,cat\n81960,cat\n81961,cat\n81962,automobile\n81963,deer\n81964,bird\n81965,automobile\n81966,dog\n81967,horse\n81968,deer\n81969,dog\n81970,horse\n81971,horse\n81972,deer\n81973,dog\n81974,cat\n81975,ship\n81976,airplane\n81977,frog\n81978,ship\n81979,truck\n81980,dog\n81981,automobile\n81982,truck\n81983,truck\n81984,cat\n81985,frog\n81986,cat\n81987,horse\n81988,frog\n81989,automobile\n81990,cat\n81991,truck\n81992,bird\n81993,airplane\n81994,cat\n81995,dog\n81996,deer\n81997,truck\n81998,horse\n81999,ship\n82000,dog\n82001,deer\n82002,airplane\n82003,ship\n82004,bird\n82005,deer\n82006,cat\n82007,dog\n82008,cat\n82009,ship\n82010,ship\n82011,cat\n82012,horse\n82013,deer\n82014,frog\n82015,cat\n82016,dog\n82017,frog\n82018,cat\n82019,horse\n82020,automobile\n82021,deer\n82022,frog\n82023,deer\n82024,cat\n82025,frog\n82026,truck\n82027,deer\n82028,automobile\n82029,horse\n82030,truck\n82031,automobile\n82032,deer\n82033,truck\n82034,cat\n82035,cat\n82036,automobile\n82037,automobile\n82038,horse\n82039,deer\n82040,truck\n82041,horse\n82042,airplane\n82043,bird\n82044,truck\n82045,frog\n82046,ship\n82047,cat\n82048,cat\n82049,frog\n82050,deer\n82051,airplane\n82052,cat\n82053,deer\n82054,airplane\n82055,frog\n82056,horse\n82057,truck\n82058,truck\n82059,horse\n82060,frog\n82061,truck\n82062,dog\n82063,dog\n82064,cat\n82065,ship\n82066,cat\n82067,deer\n82068,ship\n82069,dog\n82070,truck\n82071,deer\n82072,deer\n82073,bird\n82074,truck\n82075,bird\n82076,frog\n82077,airplane\n82078,automobile\n82079,airplane\n82080,deer\n82081,frog\n82082,automobile\n82083,bird\n82084,truck\n82085,horse\n82086,deer\n82087,automobile\n82088,bird\n82089,truck\n82090,deer\n82091,deer\n82092,deer\n82093,bird\n82094,deer\n82095,frog\n82096,airplane\n82097,horse\n82098,frog\n82099,horse\n82100,frog\n82101,airplane\n82102,truck\n82103,truck\n82104,truck\n82105,ship\n82106,truck\n82107,automobile\n82108,bird\n82109,cat\n82110,dog\n82111,horse\n82112,truck\n82113,cat\n82114,ship\n82115,frog\n82116,cat\n82117,cat\n82118,airplane\n82119,cat\n82120,airplane\n82121,dog\n82122,horse\n82123,frog\n82124,dog\n82125,cat\n82126,truck\n82127,cat\n82128,truck\n82129,frog\n82130,automobile\n82131,deer\n82132,dog\n82133,cat\n82134,cat\n82135,ship\n82136,frog\n82137,automobile\n82138,dog\n82139,horse\n82140,ship\n82141,bird\n82142,deer\n82143,ship\n82144,bird\n82145,ship\n82146,airplane\n82147,frog\n82148,bird\n82149,frog\n82150,truck\n82151,automobile\n82152,airplane\n82153,horse\n82154,horse\n82155,horse\n82156,dog\n82157,cat\n82158,cat\n82159,frog\n82160,deer\n82161,frog\n82162,ship\n82163,automobile\n82164,horse\n82165,deer\n82166,ship\n82167,cat\n82168,frog\n82169,airplane\n82170,airplane\n82171,frog\n82172,airplane\n82173,horse\n82174,deer\n82175,frog\n82176,bird\n82177,bird\n82178,horse\n82179,bird\n82180,cat\n82181,airplane\n82182,dog\n82183,ship\n82184,dog\n82185,horse\n82186,airplane\n82187,horse\n82188,bird\n82189,automobile\n82190,frog\n82191,truck\n82192,truck\n82193,ship\n82194,horse\n82195,frog\n82196,airplane\n82197,automobile\n82198,bird\n82199,dog\n82200,deer\n82201,dog\n82202,dog\n82203,airplane\n82204,frog\n82205,frog\n82206,ship\n82207,dog\n82208,horse\n82209,ship\n82210,bird\n82211,airplane\n82212,deer\n82213,cat\n82214,cat\n82215,automobile\n82216,bird\n82217,deer\n82218,dog\n82219,cat\n82220,airplane\n82221,dog\n82222,ship\n82223,cat\n82224,dog\n82225,automobile\n82226,deer\n82227,dog\n82228,bird\n82229,truck\n82230,truck\n82231,truck\n82232,bird\n82233,cat\n82234,ship\n82235,airplane\n82236,cat\n82237,airplane\n82238,ship\n82239,ship\n82240,cat\n82241,horse\n82242,bird\n82243,cat\n82244,deer\n82245,truck\n82246,ship\n82247,cat\n82248,airplane\n82249,dog\n82250,truck\n82251,airplane\n82252,truck\n82253,deer\n82254,truck\n82255,deer\n82256,automobile\n82257,horse\n82258,truck\n82259,horse\n82260,automobile\n82261,cat\n82262,cat\n82263,frog\n82264,truck\n82265,airplane\n82266,bird\n82267,frog\n82268,ship\n82269,cat\n82270,airplane\n82271,airplane\n82272,truck\n82273,ship\n82274,deer\n82275,horse\n82276,deer\n82277,deer\n82278,cat\n82279,frog\n82280,deer\n82281,horse\n82282,bird\n82283,airplane\n82284,frog\n82285,bird\n82286,automobile\n82287,truck\n82288,automobile\n82289,airplane\n82290,frog\n82291,airplane\n82292,cat\n82293,dog\n82294,truck\n82295,truck\n82296,dog\n82297,deer\n82298,bird\n82299,bird\n82300,dog\n82301,frog\n82302,cat\n82303,truck\n82304,deer\n82305,airplane\n82306,frog\n82307,horse\n82308,ship\n82309,ship\n82310,frog\n82311,cat\n82312,bird\n82313,truck\n82314,cat\n82315,automobile\n82316,deer\n82317,truck\n82318,horse\n82319,frog\n82320,horse\n82321,cat\n82322,horse\n82323,bird\n82324,bird\n82325,bird\n82326,horse\n82327,cat\n82328,dog\n82329,deer\n82330,cat\n82331,frog\n82332,deer\n82333,ship\n82334,dog\n82335,frog\n82336,bird\n82337,automobile\n82338,truck\n82339,horse\n82340,truck\n82341,deer\n82342,frog\n82343,deer\n82344,automobile\n82345,ship\n82346,bird\n82347,deer\n82348,deer\n82349,ship\n82350,frog\n82351,frog\n82352,cat\n82353,airplane\n82354,ship\n82355,dog\n82356,dog\n82357,horse\n82358,truck\n82359,ship\n82360,airplane\n82361,deer\n82362,automobile\n82363,bird\n82364,dog\n82365,airplane\n82366,truck\n82367,automobile\n82368,dog\n82369,airplane\n82370,cat\n82371,truck\n82372,airplane\n82373,airplane\n82374,dog\n82375,deer\n82376,cat\n82377,horse\n82378,cat\n82379,frog\n82380,automobile\n82381,airplane\n82382,bird\n82383,horse\n82384,cat\n82385,deer\n82386,dog\n82387,cat\n82388,cat\n82389,ship\n82390,frog\n82391,cat\n82392,ship\n82393,bird\n82394,cat\n82395,frog\n82396,dog\n82397,automobile\n82398,bird\n82399,truck\n82400,frog\n82401,horse\n82402,ship\n82403,automobile\n82404,frog\n82405,bird\n82406,cat\n82407,ship\n82408,deer\n82409,ship\n82410,horse\n82411,dog\n82412,dog\n82413,automobile\n82414,deer\n82415,cat\n82416,airplane\n82417,automobile\n82418,deer\n82419,frog\n82420,horse\n82421,cat\n82422,cat\n82423,horse\n82424,bird\n82425,truck\n82426,cat\n82427,frog\n82428,dog\n82429,horse\n82430,dog\n82431,dog\n82432,ship\n82433,truck\n82434,airplane\n82435,deer\n82436,cat\n82437,airplane\n82438,bird\n82439,deer\n82440,cat\n82441,deer\n82442,cat\n82443,airplane\n82444,bird\n82445,automobile\n82446,bird\n82447,ship\n82448,cat\n82449,ship\n82450,deer\n82451,ship\n82452,horse\n82453,frog\n82454,bird\n82455,horse\n82456,horse\n82457,truck\n82458,cat\n82459,frog\n82460,airplane\n82461,dog\n82462,horse\n82463,dog\n82464,cat\n82465,horse\n82466,cat\n82467,frog\n82468,cat\n82469,frog\n82470,horse\n82471,bird\n82472,airplane\n82473,dog\n82474,airplane\n82475,airplane\n82476,bird\n82477,ship\n82478,deer\n82479,frog\n82480,airplane\n82481,frog\n82482,dog\n82483,horse\n82484,bird\n82485,airplane\n82486,dog\n82487,truck\n82488,frog\n82489,truck\n82490,frog\n82491,deer\n82492,truck\n82493,horse\n82494,deer\n82495,automobile\n82496,dog\n82497,cat\n82498,automobile\n82499,frog\n82500,cat\n82501,cat\n82502,bird\n82503,ship\n82504,horse\n82505,frog\n82506,frog\n82507,frog\n82508,bird\n82509,cat\n82510,airplane\n82511,truck\n82512,cat\n82513,frog\n82514,automobile\n82515,ship\n82516,deer\n82517,truck\n82518,deer\n82519,ship\n82520,dog\n82521,airplane\n82522,deer\n82523,horse\n82524,airplane\n82525,bird\n82526,deer\n82527,frog\n82528,bird\n82529,deer\n82530,dog\n82531,cat\n82532,truck\n82533,frog\n82534,frog\n82535,cat\n82536,cat\n82537,dog\n82538,dog\n82539,frog\n82540,cat\n82541,ship\n82542,frog\n82543,frog\n82544,airplane\n82545,automobile\n82546,frog\n82547,frog\n82548,truck\n82549,horse\n82550,airplane\n82551,deer\n82552,frog\n82553,bird\n82554,deer\n82555,dog\n82556,bird\n82557,ship\n82558,bird\n82559,horse\n82560,truck\n82561,cat\n82562,truck\n82563,horse\n82564,dog\n82565,automobile\n82566,airplane\n82567,dog\n82568,deer\n82569,deer\n82570,deer\n82571,truck\n82572,frog\n82573,dog\n82574,bird\n82575,dog\n82576,dog\n82577,truck\n82578,bird\n82579,truck\n82580,airplane\n82581,deer\n82582,frog\n82583,dog\n82584,frog\n82585,cat\n82586,deer\n82587,bird\n82588,cat\n82589,frog\n82590,dog\n82591,cat\n82592,dog\n82593,horse\n82594,dog\n82595,deer\n82596,horse\n82597,bird\n82598,frog\n82599,frog\n82600,cat\n82601,dog\n82602,frog\n82603,cat\n82604,deer\n82605,bird\n82606,dog\n82607,frog\n82608,horse\n82609,bird\n82610,bird\n82611,ship\n82612,deer\n82613,frog\n82614,truck\n82615,horse\n82616,automobile\n82617,deer\n82618,deer\n82619,frog\n82620,horse\n82621,horse\n82622,cat\n82623,deer\n82624,frog\n82625,truck\n82626,truck\n82627,automobile\n82628,deer\n82629,deer\n82630,truck\n82631,airplane\n82632,airplane\n82633,truck\n82634,bird\n82635,airplane\n82636,deer\n82637,cat\n82638,frog\n82639,ship\n82640,cat\n82641,truck\n82642,deer\n82643,cat\n82644,ship\n82645,cat\n82646,cat\n82647,ship\n82648,frog\n82649,deer\n82650,dog\n82651,airplane\n82652,truck\n82653,frog\n82654,automobile\n82655,automobile\n82656,automobile\n82657,frog\n82658,deer\n82659,airplane\n82660,cat\n82661,bird\n82662,airplane\n82663,frog\n82664,cat\n82665,horse\n82666,dog\n82667,airplane\n82668,bird\n82669,horse\n82670,automobile\n82671,horse\n82672,airplane\n82673,airplane\n82674,ship\n82675,truck\n82676,ship\n82677,automobile\n82678,truck\n82679,cat\n82680,cat\n82681,frog\n82682,cat\n82683,frog\n82684,cat\n82685,dog\n82686,frog\n82687,frog\n82688,deer\n82689,deer\n82690,bird\n82691,dog\n82692,horse\n82693,bird\n82694,automobile\n82695,dog\n82696,frog\n82697,ship\n82698,ship\n82699,horse\n82700,ship\n82701,ship\n82702,horse\n82703,airplane\n82704,truck\n82705,deer\n82706,frog\n82707,deer\n82708,ship\n82709,dog\n82710,frog\n82711,frog\n82712,automobile\n82713,deer\n82714,frog\n82715,bird\n82716,automobile\n82717,cat\n82718,dog\n82719,dog\n82720,truck\n82721,cat\n82722,bird\n82723,cat\n82724,automobile\n82725,airplane\n82726,truck\n82727,cat\n82728,horse\n82729,frog\n82730,frog\n82731,deer\n82732,dog\n82733,frog\n82734,automobile\n82735,frog\n82736,dog\n82737,dog\n82738,deer\n82739,frog\n82740,airplane\n82741,horse\n82742,bird\n82743,deer\n82744,horse\n82745,frog\n82746,ship\n82747,frog\n82748,deer\n82749,automobile\n82750,truck\n82751,deer\n82752,cat\n82753,bird\n82754,ship\n82755,truck\n82756,frog\n82757,ship\n82758,dog\n82759,airplane\n82760,deer\n82761,frog\n82762,horse\n82763,dog\n82764,airplane\n82765,automobile\n82766,frog\n82767,cat\n82768,ship\n82769,frog\n82770,airplane\n82771,automobile\n82772,cat\n82773,dog\n82774,dog\n82775,deer\n82776,cat\n82777,deer\n82778,cat\n82779,deer\n82780,truck\n82781,cat\n82782,deer\n82783,frog\n82784,cat\n82785,frog\n82786,bird\n82787,cat\n82788,horse\n82789,frog\n82790,bird\n82791,frog\n82792,cat\n82793,truck\n82794,airplane\n82795,bird\n82796,horse\n82797,bird\n82798,deer\n82799,bird\n82800,ship\n82801,cat\n82802,bird\n82803,truck\n82804,ship\n82805,ship\n82806,horse\n82807,frog\n82808,deer\n82809,frog\n82810,frog\n82811,dog\n82812,cat\n82813,bird\n82814,ship\n82815,airplane\n82816,automobile\n82817,airplane\n82818,ship\n82819,airplane\n82820,dog\n82821,dog\n82822,deer\n82823,deer\n82824,dog\n82825,ship\n82826,dog\n82827,dog\n82828,deer\n82829,automobile\n82830,ship\n82831,airplane\n82832,frog\n82833,deer\n82834,airplane\n82835,airplane\n82836,airplane\n82837,dog\n82838,airplane\n82839,airplane\n82840,airplane\n82841,frog\n82842,bird\n82843,automobile\n82844,airplane\n82845,deer\n82846,truck\n82847,dog\n82848,bird\n82849,cat\n82850,deer\n82851,automobile\n82852,bird\n82853,horse\n82854,bird\n82855,truck\n82856,dog\n82857,dog\n82858,deer\n82859,bird\n82860,cat\n82861,deer\n82862,dog\n82863,cat\n82864,airplane\n82865,dog\n82866,cat\n82867,deer\n82868,horse\n82869,cat\n82870,frog\n82871,deer\n82872,horse\n82873,cat\n82874,horse\n82875,deer\n82876,frog\n82877,deer\n82878,cat\n82879,dog\n82880,ship\n82881,ship\n82882,cat\n82883,dog\n82884,deer\n82885,ship\n82886,cat\n82887,deer\n82888,truck\n82889,automobile\n82890,cat\n82891,automobile\n82892,cat\n82893,truck\n82894,bird\n82895,deer\n82896,bird\n82897,frog\n82898,deer\n82899,truck\n82900,deer\n82901,automobile\n82902,dog\n82903,dog\n82904,bird\n82905,dog\n82906,airplane\n82907,ship\n82908,ship\n82909,deer\n82910,automobile\n82911,deer\n82912,airplane\n82913,frog\n82914,automobile\n82915,frog\n82916,dog\n82917,truck\n82918,cat\n82919,frog\n82920,frog\n82921,truck\n82922,horse\n82923,truck\n82924,truck\n82925,deer\n82926,ship\n82927,horse\n82928,ship\n82929,airplane\n82930,deer\n82931,airplane\n82932,airplane\n82933,automobile\n82934,deer\n82935,automobile\n82936,horse\n82937,frog\n82938,deer\n82939,automobile\n82940,airplane\n82941,ship\n82942,bird\n82943,automobile\n82944,cat\n82945,frog\n82946,horse\n82947,horse\n82948,truck\n82949,cat\n82950,cat\n82951,automobile\n82952,frog\n82953,truck\n82954,frog\n82955,dog\n82956,dog\n82957,ship\n82958,horse\n82959,bird\n82960,horse\n82961,truck\n82962,cat\n82963,cat\n82964,frog\n82965,bird\n82966,horse\n82967,frog\n82968,ship\n82969,deer\n82970,deer\n82971,automobile\n82972,dog\n82973,frog\n82974,airplane\n82975,airplane\n82976,horse\n82977,automobile\n82978,truck\n82979,frog\n82980,horse\n82981,cat\n82982,bird\n82983,truck\n82984,bird\n82985,deer\n82986,horse\n82987,truck\n82988,horse\n82989,airplane\n82990,dog\n82991,bird\n82992,dog\n82993,dog\n82994,bird\n82995,deer\n82996,frog\n82997,dog\n82998,horse\n82999,horse\n83000,ship\n83001,dog\n83002,frog\n83003,dog\n83004,ship\n83005,frog\n83006,dog\n83007,bird\n83008,horse\n83009,horse\n83010,ship\n83011,cat\n83012,cat\n83013,cat\n83014,deer\n83015,deer\n83016,dog\n83017,truck\n83018,cat\n83019,frog\n83020,horse\n83021,deer\n83022,airplane\n83023,bird\n83024,bird\n83025,cat\n83026,ship\n83027,deer\n83028,frog\n83029,truck\n83030,truck\n83031,deer\n83032,deer\n83033,bird\n83034,dog\n83035,airplane\n83036,cat\n83037,cat\n83038,truck\n83039,bird\n83040,frog\n83041,airplane\n83042,frog\n83043,cat\n83044,truck\n83045,automobile\n83046,ship\n83047,truck\n83048,cat\n83049,ship\n83050,ship\n83051,frog\n83052,bird\n83053,cat\n83054,cat\n83055,automobile\n83056,frog\n83057,ship\n83058,bird\n83059,automobile\n83060,cat\n83061,bird\n83062,horse\n83063,automobile\n83064,cat\n83065,ship\n83066,frog\n83067,truck\n83068,ship\n83069,horse\n83070,ship\n83071,deer\n83072,ship\n83073,bird\n83074,frog\n83075,truck\n83076,dog\n83077,deer\n83078,airplane\n83079,truck\n83080,deer\n83081,ship\n83082,truck\n83083,horse\n83084,dog\n83085,ship\n83086,bird\n83087,frog\n83088,deer\n83089,airplane\n83090,deer\n83091,ship\n83092,automobile\n83093,horse\n83094,deer\n83095,dog\n83096,bird\n83097,airplane\n83098,automobile\n83099,cat\n83100,truck\n83101,airplane\n83102,bird\n83103,bird\n83104,deer\n83105,dog\n83106,dog\n83107,cat\n83108,deer\n83109,truck\n83110,dog\n83111,ship\n83112,deer\n83113,truck\n83114,automobile\n83115,bird\n83116,cat\n83117,truck\n83118,deer\n83119,cat\n83120,truck\n83121,dog\n83122,deer\n83123,cat\n83124,bird\n83125,ship\n83126,airplane\n83127,ship\n83128,truck\n83129,ship\n83130,horse\n83131,automobile\n83132,truck\n83133,dog\n83134,deer\n83135,cat\n83136,horse\n83137,horse\n83138,cat\n83139,frog\n83140,horse\n83141,dog\n83142,truck\n83143,ship\n83144,dog\n83145,automobile\n83146,bird\n83147,cat\n83148,frog\n83149,frog\n83150,cat\n83151,frog\n83152,bird\n83153,bird\n83154,frog\n83155,airplane\n83156,ship\n83157,horse\n83158,cat\n83159,dog\n83160,deer\n83161,cat\n83162,bird\n83163,truck\n83164,frog\n83165,deer\n83166,deer\n83167,cat\n83168,truck\n83169,bird\n83170,deer\n83171,deer\n83172,dog\n83173,deer\n83174,dog\n83175,dog\n83176,dog\n83177,horse\n83178,horse\n83179,dog\n83180,truck\n83181,ship\n83182,deer\n83183,frog\n83184,deer\n83185,truck\n83186,deer\n83187,airplane\n83188,cat\n83189,deer\n83190,deer\n83191,truck\n83192,ship\n83193,airplane\n83194,automobile\n83195,truck\n83196,bird\n83197,truck\n83198,horse\n83199,truck\n83200,airplane\n83201,horse\n83202,bird\n83203,airplane\n83204,ship\n83205,dog\n83206,ship\n83207,horse\n83208,ship\n83209,airplane\n83210,dog\n83211,deer\n83212,frog\n83213,airplane\n83214,airplane\n83215,bird\n83216,deer\n83217,horse\n83218,cat\n83219,airplane\n83220,cat\n83221,ship\n83222,cat\n83223,truck\n83224,cat\n83225,deer\n83226,automobile\n83227,cat\n83228,ship\n83229,deer\n83230,deer\n83231,ship\n83232,horse\n83233,deer\n83234,truck\n83235,truck\n83236,truck\n83237,deer\n83238,dog\n83239,frog\n83240,truck\n83241,cat\n83242,airplane\n83243,deer\n83244,dog\n83245,deer\n83246,bird\n83247,horse\n83248,ship\n83249,dog\n83250,bird\n83251,airplane\n83252,dog\n83253,dog\n83254,cat\n83255,airplane\n83256,dog\n83257,frog\n83258,cat\n83259,cat\n83260,cat\n83261,automobile\n83262,bird\n83263,ship\n83264,deer\n83265,horse\n83266,bird\n83267,bird\n83268,ship\n83269,truck\n83270,frog\n83271,frog\n83272,bird\n83273,cat\n83274,automobile\n83275,ship\n83276,truck\n83277,dog\n83278,deer\n83279,frog\n83280,airplane\n83281,horse\n83282,cat\n83283,deer\n83284,cat\n83285,bird\n83286,bird\n83287,deer\n83288,truck\n83289,automobile\n83290,bird\n83291,horse\n83292,dog\n83293,truck\n83294,automobile\n83295,dog\n83296,cat\n83297,frog\n83298,airplane\n83299,truck\n83300,truck\n83301,horse\n83302,deer\n83303,ship\n83304,ship\n83305,deer\n83306,truck\n83307,deer\n83308,automobile\n83309,airplane\n83310,horse\n83311,airplane\n83312,deer\n83313,bird\n83314,cat\n83315,deer\n83316,deer\n83317,cat\n83318,truck\n83319,cat\n83320,horse\n83321,horse\n83322,frog\n83323,cat\n83324,automobile\n83325,horse\n83326,cat\n83327,frog\n83328,frog\n83329,airplane\n83330,frog\n83331,dog\n83332,bird\n83333,deer\n83334,dog\n83335,bird\n83336,ship\n83337,automobile\n83338,airplane\n83339,frog\n83340,automobile\n83341,dog\n83342,bird\n83343,deer\n83344,truck\n83345,horse\n83346,deer\n83347,ship\n83348,truck\n83349,frog\n83350,automobile\n83351,horse\n83352,bird\n83353,cat\n83354,automobile\n83355,bird\n83356,ship\n83357,cat\n83358,truck\n83359,automobile\n83360,horse\n83361,dog\n83362,frog\n83363,cat\n83364,ship\n83365,cat\n83366,frog\n83367,truck\n83368,cat\n83369,ship\n83370,airplane\n83371,horse\n83372,bird\n83373,airplane\n83374,ship\n83375,dog\n83376,dog\n83377,frog\n83378,ship\n83379,cat\n83380,dog\n83381,dog\n83382,horse\n83383,truck\n83384,deer\n83385,deer\n83386,cat\n83387,deer\n83388,horse\n83389,deer\n83390,deer\n83391,airplane\n83392,dog\n83393,ship\n83394,truck\n83395,bird\n83396,cat\n83397,automobile\n83398,horse\n83399,truck\n83400,deer\n83401,truck\n83402,cat\n83403,bird\n83404,cat\n83405,horse\n83406,automobile\n83407,automobile\n83408,cat\n83409,frog\n83410,automobile\n83411,deer\n83412,automobile\n83413,frog\n83414,frog\n83415,frog\n83416,truck\n83417,dog\n83418,truck\n83419,horse\n83420,ship\n83421,dog\n83422,bird\n83423,horse\n83424,cat\n83425,dog\n83426,truck\n83427,automobile\n83428,cat\n83429,ship\n83430,cat\n83431,horse\n83432,deer\n83433,cat\n83434,dog\n83435,dog\n83436,deer\n83437,cat\n83438,ship\n83439,truck\n83440,truck\n83441,horse\n83442,deer\n83443,cat\n83444,automobile\n83445,truck\n83446,dog\n83447,deer\n83448,airplane\n83449,cat\n83450,ship\n83451,deer\n83452,bird\n83453,truck\n83454,cat\n83455,horse\n83456,deer\n83457,deer\n83458,bird\n83459,dog\n83460,cat\n83461,automobile\n83462,horse\n83463,cat\n83464,frog\n83465,deer\n83466,truck\n83467,deer\n83468,truck\n83469,truck\n83470,frog\n83471,dog\n83472,truck\n83473,truck\n83474,cat\n83475,truck\n83476,automobile\n83477,bird\n83478,deer\n83479,frog\n83480,truck\n83481,airplane\n83482,truck\n83483,airplane\n83484,bird\n83485,cat\n83486,cat\n83487,cat\n83488,airplane\n83489,automobile\n83490,deer\n83491,truck\n83492,bird\n83493,horse\n83494,horse\n83495,bird\n83496,cat\n83497,airplane\n83498,automobile\n83499,dog\n83500,airplane\n83501,deer\n83502,truck\n83503,deer\n83504,cat\n83505,cat\n83506,airplane\n83507,dog\n83508,horse\n83509,airplane\n83510,automobile\n83511,horse\n83512,frog\n83513,ship\n83514,dog\n83515,truck\n83516,bird\n83517,dog\n83518,truck\n83519,horse\n83520,horse\n83521,deer\n83522,dog\n83523,deer\n83524,dog\n83525,ship\n83526,dog\n83527,ship\n83528,deer\n83529,deer\n83530,frog\n83531,ship\n83532,horse\n83533,frog\n83534,bird\n83535,ship\n83536,airplane\n83537,cat\n83538,deer\n83539,bird\n83540,ship\n83541,truck\n83542,automobile\n83543,airplane\n83544,dog\n83545,automobile\n83546,bird\n83547,ship\n83548,ship\n83549,automobile\n83550,truck\n83551,deer\n83552,deer\n83553,frog\n83554,cat\n83555,dog\n83556,dog\n83557,deer\n83558,bird\n83559,airplane\n83560,horse\n83561,truck\n83562,ship\n83563,ship\n83564,cat\n83565,ship\n83566,cat\n83567,dog\n83568,deer\n83569,deer\n83570,bird\n83571,dog\n83572,bird\n83573,cat\n83574,cat\n83575,frog\n83576,horse\n83577,airplane\n83578,dog\n83579,truck\n83580,automobile\n83581,horse\n83582,horse\n83583,automobile\n83584,frog\n83585,automobile\n83586,bird\n83587,deer\n83588,frog\n83589,cat\n83590,deer\n83591,cat\n83592,cat\n83593,truck\n83594,automobile\n83595,ship\n83596,horse\n83597,frog\n83598,horse\n83599,horse\n83600,automobile\n83601,horse\n83602,airplane\n83603,dog\n83604,airplane\n83605,dog\n83606,bird\n83607,cat\n83608,airplane\n83609,ship\n83610,airplane\n83611,bird\n83612,ship\n83613,automobile\n83614,ship\n83615,deer\n83616,automobile\n83617,horse\n83618,ship\n83619,ship\n83620,truck\n83621,cat\n83622,deer\n83623,cat\n83624,deer\n83625,frog\n83626,airplane\n83627,deer\n83628,bird\n83629,frog\n83630,ship\n83631,truck\n83632,frog\n83633,bird\n83634,frog\n83635,truck\n83636,airplane\n83637,cat\n83638,dog\n83639,cat\n83640,deer\n83641,cat\n83642,automobile\n83643,deer\n83644,horse\n83645,dog\n83646,ship\n83647,airplane\n83648,deer\n83649,automobile\n83650,frog\n83651,cat\n83652,bird\n83653,horse\n83654,automobile\n83655,airplane\n83656,ship\n83657,ship\n83658,truck\n83659,truck\n83660,dog\n83661,deer\n83662,truck\n83663,ship\n83664,airplane\n83665,truck\n83666,frog\n83667,deer\n83668,automobile\n83669,deer\n83670,truck\n83671,frog\n83672,frog\n83673,deer\n83674,dog\n83675,ship\n83676,airplane\n83677,airplane\n83678,cat\n83679,truck\n83680,dog\n83681,airplane\n83682,dog\n83683,dog\n83684,bird\n83685,bird\n83686,automobile\n83687,horse\n83688,automobile\n83689,horse\n83690,frog\n83691,deer\n83692,ship\n83693,cat\n83694,deer\n83695,automobile\n83696,ship\n83697,automobile\n83698,horse\n83699,deer\n83700,bird\n83701,frog\n83702,cat\n83703,horse\n83704,cat\n83705,truck\n83706,frog\n83707,automobile\n83708,bird\n83709,frog\n83710,dog\n83711,frog\n83712,airplane\n83713,frog\n83714,horse\n83715,frog\n83716,automobile\n83717,truck\n83718,horse\n83719,cat\n83720,horse\n83721,frog\n83722,horse\n83723,bird\n83724,horse\n83725,deer\n83726,airplane\n83727,cat\n83728,frog\n83729,cat\n83730,dog\n83731,bird\n83732,dog\n83733,truck\n83734,deer\n83735,cat\n83736,truck\n83737,deer\n83738,truck\n83739,deer\n83740,frog\n83741,truck\n83742,airplane\n83743,cat\n83744,frog\n83745,cat\n83746,dog\n83747,horse\n83748,horse\n83749,dog\n83750,deer\n83751,automobile\n83752,cat\n83753,automobile\n83754,truck\n83755,horse\n83756,frog\n83757,frog\n83758,bird\n83759,truck\n83760,bird\n83761,airplane\n83762,horse\n83763,horse\n83764,bird\n83765,bird\n83766,frog\n83767,cat\n83768,deer\n83769,truck\n83770,automobile\n83771,dog\n83772,truck\n83773,truck\n83774,bird\n83775,frog\n83776,automobile\n83777,dog\n83778,truck\n83779,truck\n83780,automobile\n83781,horse\n83782,deer\n83783,automobile\n83784,automobile\n83785,airplane\n83786,truck\n83787,deer\n83788,deer\n83789,airplane\n83790,ship\n83791,dog\n83792,airplane\n83793,cat\n83794,frog\n83795,automobile\n83796,dog\n83797,deer\n83798,automobile\n83799,bird\n83800,ship\n83801,airplane\n83802,deer\n83803,cat\n83804,frog\n83805,cat\n83806,horse\n83807,automobile\n83808,frog\n83809,frog\n83810,deer\n83811,frog\n83812,bird\n83813,automobile\n83814,horse\n83815,automobile\n83816,frog\n83817,horse\n83818,airplane\n83819,horse\n83820,ship\n83821,automobile\n83822,frog\n83823,frog\n83824,horse\n83825,airplane\n83826,cat\n83827,deer\n83828,truck\n83829,cat\n83830,truck\n83831,cat\n83832,truck\n83833,frog\n83834,truck\n83835,deer\n83836,ship\n83837,automobile\n83838,dog\n83839,dog\n83840,deer\n83841,deer\n83842,truck\n83843,airplane\n83844,cat\n83845,horse\n83846,cat\n83847,frog\n83848,dog\n83849,truck\n83850,automobile\n83851,deer\n83852,truck\n83853,ship\n83854,frog\n83855,dog\n83856,cat\n83857,horse\n83858,bird\n83859,cat\n83860,airplane\n83861,cat\n83862,airplane\n83863,truck\n83864,bird\n83865,cat\n83866,dog\n83867,cat\n83868,cat\n83869,automobile\n83870,deer\n83871,deer\n83872,frog\n83873,truck\n83874,cat\n83875,airplane\n83876,ship\n83877,deer\n83878,ship\n83879,truck\n83880,frog\n83881,automobile\n83882,ship\n83883,dog\n83884,frog\n83885,airplane\n83886,automobile\n83887,deer\n83888,frog\n83889,automobile\n83890,truck\n83891,frog\n83892,ship\n83893,frog\n83894,deer\n83895,airplane\n83896,cat\n83897,deer\n83898,deer\n83899,cat\n83900,horse\n83901,truck\n83902,frog\n83903,deer\n83904,dog\n83905,truck\n83906,frog\n83907,dog\n83908,horse\n83909,dog\n83910,horse\n83911,automobile\n83912,deer\n83913,deer\n83914,dog\n83915,dog\n83916,cat\n83917,dog\n83918,deer\n83919,deer\n83920,cat\n83921,cat\n83922,truck\n83923,deer\n83924,truck\n83925,ship\n83926,deer\n83927,bird\n83928,frog\n83929,ship\n83930,horse\n83931,bird\n83932,dog\n83933,deer\n83934,airplane\n83935,cat\n83936,dog\n83937,horse\n83938,frog\n83939,bird\n83940,frog\n83941,truck\n83942,dog\n83943,cat\n83944,deer\n83945,deer\n83946,automobile\n83947,airplane\n83948,frog\n83949,deer\n83950,cat\n83951,frog\n83952,ship\n83953,frog\n83954,frog\n83955,bird\n83956,bird\n83957,dog\n83958,airplane\n83959,dog\n83960,truck\n83961,dog\n83962,horse\n83963,ship\n83964,frog\n83965,deer\n83966,cat\n83967,ship\n83968,bird\n83969,ship\n83970,dog\n83971,cat\n83972,airplane\n83973,dog\n83974,frog\n83975,frog\n83976,frog\n83977,deer\n83978,deer\n83979,frog\n83980,dog\n83981,automobile\n83982,cat\n83983,cat\n83984,ship\n83985,horse\n83986,bird\n83987,airplane\n83988,horse\n83989,truck\n83990,cat\n83991,bird\n83992,dog\n83993,truck\n83994,cat\n83995,deer\n83996,truck\n83997,truck\n83998,automobile\n83999,ship\n84000,horse\n84001,bird\n84002,bird\n84003,horse\n84004,horse\n84005,airplane\n84006,airplane\n84007,bird\n84008,truck\n84009,deer\n84010,automobile\n84011,airplane\n84012,dog\n84013,horse\n84014,deer\n84015,airplane\n84016,cat\n84017,truck\n84018,horse\n84019,frog\n84020,airplane\n84021,automobile\n84022,ship\n84023,bird\n84024,cat\n84025,cat\n84026,ship\n84027,truck\n84028,cat\n84029,ship\n84030,deer\n84031,frog\n84032,frog\n84033,bird\n84034,horse\n84035,deer\n84036,dog\n84037,deer\n84038,deer\n84039,truck\n84040,bird\n84041,truck\n84042,dog\n84043,cat\n84044,deer\n84045,automobile\n84046,cat\n84047,deer\n84048,dog\n84049,cat\n84050,frog\n84051,airplane\n84052,deer\n84053,cat\n84054,horse\n84055,dog\n84056,deer\n84057,airplane\n84058,frog\n84059,ship\n84060,cat\n84061,ship\n84062,automobile\n84063,deer\n84064,frog\n84065,cat\n84066,cat\n84067,frog\n84068,frog\n84069,automobile\n84070,automobile\n84071,airplane\n84072,deer\n84073,bird\n84074,frog\n84075,bird\n84076,dog\n84077,dog\n84078,bird\n84079,frog\n84080,frog\n84081,ship\n84082,horse\n84083,airplane\n84084,deer\n84085,cat\n84086,deer\n84087,automobile\n84088,airplane\n84089,bird\n84090,cat\n84091,dog\n84092,automobile\n84093,ship\n84094,cat\n84095,frog\n84096,cat\n84097,truck\n84098,cat\n84099,dog\n84100,cat\n84101,frog\n84102,bird\n84103,dog\n84104,dog\n84105,automobile\n84106,deer\n84107,dog\n84108,airplane\n84109,airplane\n84110,frog\n84111,dog\n84112,deer\n84113,deer\n84114,cat\n84115,bird\n84116,truck\n84117,horse\n84118,deer\n84119,bird\n84120,ship\n84121,dog\n84122,airplane\n84123,cat\n84124,horse\n84125,airplane\n84126,dog\n84127,horse\n84128,dog\n84129,dog\n84130,horse\n84131,dog\n84132,bird\n84133,frog\n84134,dog\n84135,automobile\n84136,automobile\n84137,airplane\n84138,frog\n84139,cat\n84140,horse\n84141,deer\n84142,truck\n84143,ship\n84144,horse\n84145,automobile\n84146,truck\n84147,airplane\n84148,horse\n84149,automobile\n84150,ship\n84151,truck\n84152,bird\n84153,ship\n84154,frog\n84155,cat\n84156,truck\n84157,deer\n84158,deer\n84159,airplane\n84160,deer\n84161,dog\n84162,deer\n84163,dog\n84164,automobile\n84165,airplane\n84166,frog\n84167,truck\n84168,dog\n84169,deer\n84170,frog\n84171,cat\n84172,automobile\n84173,deer\n84174,dog\n84175,truck\n84176,airplane\n84177,airplane\n84178,horse\n84179,bird\n84180,dog\n84181,cat\n84182,horse\n84183,horse\n84184,automobile\n84185,frog\n84186,truck\n84187,dog\n84188,automobile\n84189,automobile\n84190,ship\n84191,dog\n84192,airplane\n84193,horse\n84194,horse\n84195,airplane\n84196,bird\n84197,dog\n84198,deer\n84199,horse\n84200,horse\n84201,frog\n84202,deer\n84203,ship\n84204,frog\n84205,horse\n84206,deer\n84207,dog\n84208,ship\n84209,dog\n84210,frog\n84211,cat\n84212,cat\n84213,truck\n84214,frog\n84215,truck\n84216,frog\n84217,truck\n84218,airplane\n84219,truck\n84220,dog\n84221,horse\n84222,horse\n84223,cat\n84224,bird\n84225,frog\n84226,dog\n84227,dog\n84228,deer\n84229,cat\n84230,bird\n84231,bird\n84232,airplane\n84233,cat\n84234,bird\n84235,ship\n84236,deer\n84237,bird\n84238,airplane\n84239,frog\n84240,frog\n84241,automobile\n84242,bird\n84243,frog\n84244,automobile\n84245,frog\n84246,deer\n84247,truck\n84248,cat\n84249,deer\n84250,bird\n84251,ship\n84252,cat\n84253,horse\n84254,deer\n84255,ship\n84256,dog\n84257,ship\n84258,horse\n84259,truck\n84260,bird\n84261,airplane\n84262,automobile\n84263,cat\n84264,dog\n84265,frog\n84266,horse\n84267,horse\n84268,truck\n84269,dog\n84270,dog\n84271,deer\n84272,cat\n84273,deer\n84274,truck\n84275,cat\n84276,frog\n84277,frog\n84278,dog\n84279,automobile\n84280,frog\n84281,dog\n84282,cat\n84283,airplane\n84284,airplane\n84285,frog\n84286,bird\n84287,horse\n84288,truck\n84289,dog\n84290,ship\n84291,cat\n84292,horse\n84293,deer\n84294,horse\n84295,frog\n84296,frog\n84297,airplane\n84298,cat\n84299,bird\n84300,automobile\n84301,airplane\n84302,truck\n84303,bird\n84304,cat\n84305,airplane\n84306,frog\n84307,deer\n84308,bird\n84309,ship\n84310,cat\n84311,ship\n84312,ship\n84313,horse\n84314,cat\n84315,airplane\n84316,dog\n84317,bird\n84318,horse\n84319,bird\n84320,dog\n84321,frog\n84322,ship\n84323,dog\n84324,deer\n84325,horse\n84326,bird\n84327,frog\n84328,frog\n84329,cat\n84330,ship\n84331,automobile\n84332,frog\n84333,horse\n84334,airplane\n84335,truck\n84336,dog\n84337,horse\n84338,frog\n84339,cat\n84340,frog\n84341,automobile\n84342,deer\n84343,deer\n84344,cat\n84345,automobile\n84346,bird\n84347,cat\n84348,bird\n84349,cat\n84350,deer\n84351,bird\n84352,cat\n84353,deer\n84354,bird\n84355,dog\n84356,horse\n84357,bird\n84358,cat\n84359,dog\n84360,horse\n84361,ship\n84362,dog\n84363,cat\n84364,dog\n84365,cat\n84366,cat\n84367,truck\n84368,ship\n84369,truck\n84370,bird\n84371,deer\n84372,horse\n84373,frog\n84374,ship\n84375,cat\n84376,deer\n84377,airplane\n84378,horse\n84379,frog\n84380,automobile\n84381,frog\n84382,truck\n84383,dog\n84384,dog\n84385,horse\n84386,dog\n84387,deer\n84388,dog\n84389,deer\n84390,airplane\n84391,ship\n84392,automobile\n84393,frog\n84394,frog\n84395,frog\n84396,horse\n84397,deer\n84398,cat\n84399,frog\n84400,deer\n84401,truck\n84402,bird\n84403,deer\n84404,cat\n84405,airplane\n84406,dog\n84407,horse\n84408,airplane\n84409,dog\n84410,deer\n84411,cat\n84412,bird\n84413,ship\n84414,cat\n84415,frog\n84416,ship\n84417,frog\n84418,dog\n84419,cat\n84420,ship\n84421,airplane\n84422,deer\n84423,deer\n84424,truck\n84425,deer\n84426,automobile\n84427,horse\n84428,airplane\n84429,frog\n84430,dog\n84431,truck\n84432,airplane\n84433,truck\n84434,bird\n84435,bird\n84436,cat\n84437,horse\n84438,horse\n84439,deer\n84440,bird\n84441,bird\n84442,horse\n84443,automobile\n84444,airplane\n84445,cat\n84446,frog\n84447,frog\n84448,bird\n84449,bird\n84450,truck\n84451,cat\n84452,cat\n84453,ship\n84454,frog\n84455,truck\n84456,dog\n84457,airplane\n84458,horse\n84459,frog\n84460,automobile\n84461,dog\n84462,bird\n84463,frog\n84464,airplane\n84465,airplane\n84466,horse\n84467,ship\n84468,cat\n84469,ship\n84470,dog\n84471,bird\n84472,dog\n84473,cat\n84474,cat\n84475,frog\n84476,automobile\n84477,horse\n84478,deer\n84479,automobile\n84480,cat\n84481,ship\n84482,cat\n84483,dog\n84484,ship\n84485,automobile\n84486,deer\n84487,ship\n84488,dog\n84489,truck\n84490,ship\n84491,cat\n84492,bird\n84493,truck\n84494,cat\n84495,cat\n84496,cat\n84497,horse\n84498,bird\n84499,airplane\n84500,horse\n84501,cat\n84502,dog\n84503,truck\n84504,frog\n84505,ship\n84506,deer\n84507,deer\n84508,frog\n84509,deer\n84510,truck\n84511,ship\n84512,horse\n84513,cat\n84514,dog\n84515,ship\n84516,horse\n84517,horse\n84518,bird\n84519,ship\n84520,truck\n84521,deer\n84522,deer\n84523,frog\n84524,truck\n84525,automobile\n84526,horse\n84527,truck\n84528,airplane\n84529,truck\n84530,dog\n84531,truck\n84532,horse\n84533,horse\n84534,deer\n84535,deer\n84536,cat\n84537,horse\n84538,ship\n84539,frog\n84540,ship\n84541,cat\n84542,airplane\n84543,airplane\n84544,airplane\n84545,deer\n84546,bird\n84547,bird\n84548,frog\n84549,ship\n84550,ship\n84551,cat\n84552,frog\n84553,dog\n84554,frog\n84555,frog\n84556,deer\n84557,frog\n84558,dog\n84559,cat\n84560,truck\n84561,bird\n84562,ship\n84563,horse\n84564,dog\n84565,bird\n84566,deer\n84567,dog\n84568,deer\n84569,deer\n84570,frog\n84571,frog\n84572,cat\n84573,bird\n84574,bird\n84575,horse\n84576,frog\n84577,bird\n84578,cat\n84579,automobile\n84580,bird\n84581,cat\n84582,deer\n84583,automobile\n84584,frog\n84585,ship\n84586,cat\n84587,airplane\n84588,deer\n84589,automobile\n84590,dog\n84591,deer\n84592,dog\n84593,deer\n84594,cat\n84595,frog\n84596,deer\n84597,dog\n84598,dog\n84599,truck\n84600,truck\n84601,deer\n84602,ship\n84603,airplane\n84604,automobile\n84605,deer\n84606,deer\n84607,horse\n84608,automobile\n84609,airplane\n84610,cat\n84611,frog\n84612,horse\n84613,automobile\n84614,frog\n84615,frog\n84616,deer\n84617,automobile\n84618,dog\n84619,ship\n84620,horse\n84621,deer\n84622,horse\n84623,ship\n84624,deer\n84625,ship\n84626,horse\n84627,frog\n84628,deer\n84629,horse\n84630,deer\n84631,cat\n84632,deer\n84633,automobile\n84634,frog\n84635,horse\n84636,dog\n84637,airplane\n84638,bird\n84639,cat\n84640,truck\n84641,deer\n84642,deer\n84643,horse\n84644,airplane\n84645,deer\n84646,automobile\n84647,bird\n84648,horse\n84649,dog\n84650,cat\n84651,truck\n84652,cat\n84653,horse\n84654,horse\n84655,frog\n84656,horse\n84657,cat\n84658,horse\n84659,horse\n84660,frog\n84661,cat\n84662,horse\n84663,cat\n84664,frog\n84665,frog\n84666,cat\n84667,deer\n84668,deer\n84669,truck\n84670,frog\n84671,frog\n84672,cat\n84673,automobile\n84674,truck\n84675,truck\n84676,frog\n84677,truck\n84678,cat\n84679,automobile\n84680,automobile\n84681,airplane\n84682,horse\n84683,deer\n84684,horse\n84685,ship\n84686,automobile\n84687,cat\n84688,automobile\n84689,truck\n84690,cat\n84691,airplane\n84692,cat\n84693,cat\n84694,dog\n84695,cat\n84696,horse\n84697,bird\n84698,frog\n84699,horse\n84700,horse\n84701,automobile\n84702,cat\n84703,bird\n84704,truck\n84705,automobile\n84706,horse\n84707,truck\n84708,truck\n84709,automobile\n84710,horse\n84711,truck\n84712,bird\n84713,frog\n84714,bird\n84715,deer\n84716,ship\n84717,ship\n84718,horse\n84719,frog\n84720,ship\n84721,airplane\n84722,automobile\n84723,bird\n84724,bird\n84725,cat\n84726,ship\n84727,truck\n84728,ship\n84729,deer\n84730,deer\n84731,deer\n84732,airplane\n84733,frog\n84734,bird\n84735,truck\n84736,ship\n84737,truck\n84738,deer\n84739,automobile\n84740,ship\n84741,cat\n84742,ship\n84743,airplane\n84744,bird\n84745,cat\n84746,deer\n84747,ship\n84748,dog\n84749,frog\n84750,ship\n84751,airplane\n84752,frog\n84753,horse\n84754,deer\n84755,truck\n84756,deer\n84757,horse\n84758,ship\n84759,automobile\n84760,cat\n84761,ship\n84762,dog\n84763,frog\n84764,horse\n84765,automobile\n84766,frog\n84767,horse\n84768,cat\n84769,automobile\n84770,bird\n84771,deer\n84772,truck\n84773,truck\n84774,bird\n84775,cat\n84776,airplane\n84777,airplane\n84778,airplane\n84779,dog\n84780,cat\n84781,truck\n84782,automobile\n84783,bird\n84784,deer\n84785,cat\n84786,dog\n84787,cat\n84788,frog\n84789,deer\n84790,bird\n84791,bird\n84792,bird\n84793,bird\n84794,airplane\n84795,bird\n84796,cat\n84797,automobile\n84798,dog\n84799,ship\n84800,frog\n84801,cat\n84802,frog\n84803,bird\n84804,frog\n84805,frog\n84806,horse\n84807,automobile\n84808,deer\n84809,ship\n84810,ship\n84811,cat\n84812,bird\n84813,deer\n84814,truck\n84815,truck\n84816,deer\n84817,airplane\n84818,ship\n84819,bird\n84820,horse\n84821,bird\n84822,automobile\n84823,cat\n84824,truck\n84825,frog\n84826,frog\n84827,horse\n84828,airplane\n84829,airplane\n84830,frog\n84831,truck\n84832,deer\n84833,deer\n84834,ship\n84835,ship\n84836,cat\n84837,deer\n84838,horse\n84839,deer\n84840,airplane\n84841,bird\n84842,ship\n84843,ship\n84844,deer\n84845,cat\n84846,deer\n84847,bird\n84848,airplane\n84849,airplane\n84850,ship\n84851,frog\n84852,deer\n84853,airplane\n84854,dog\n84855,truck\n84856,horse\n84857,automobile\n84858,deer\n84859,deer\n84860,deer\n84861,airplane\n84862,dog\n84863,bird\n84864,automobile\n84865,horse\n84866,automobile\n84867,frog\n84868,frog\n84869,horse\n84870,truck\n84871,horse\n84872,cat\n84873,horse\n84874,automobile\n84875,cat\n84876,automobile\n84877,dog\n84878,cat\n84879,cat\n84880,automobile\n84881,cat\n84882,cat\n84883,deer\n84884,truck\n84885,truck\n84886,bird\n84887,airplane\n84888,automobile\n84889,bird\n84890,horse\n84891,ship\n84892,truck\n84893,deer\n84894,horse\n84895,dog\n84896,ship\n84897,automobile\n84898,automobile\n84899,airplane\n84900,cat\n84901,frog\n84902,frog\n84903,horse\n84904,deer\n84905,dog\n84906,ship\n84907,horse\n84908,automobile\n84909,bird\n84910,dog\n84911,truck\n84912,deer\n84913,bird\n84914,deer\n84915,horse\n84916,automobile\n84917,automobile\n84918,ship\n84919,deer\n84920,airplane\n84921,automobile\n84922,deer\n84923,airplane\n84924,ship\n84925,automobile\n84926,bird\n84927,airplane\n84928,cat\n84929,cat\n84930,deer\n84931,ship\n84932,frog\n84933,deer\n84934,horse\n84935,dog\n84936,bird\n84937,horse\n84938,horse\n84939,airplane\n84940,horse\n84941,deer\n84942,frog\n84943,frog\n84944,ship\n84945,deer\n84946,cat\n84947,horse\n84948,truck\n84949,frog\n84950,airplane\n84951,frog\n84952,airplane\n84953,truck\n84954,cat\n84955,cat\n84956,cat\n84957,horse\n84958,horse\n84959,truck\n84960,frog\n84961,ship\n84962,frog\n84963,deer\n84964,cat\n84965,bird\n84966,deer\n84967,deer\n84968,bird\n84969,frog\n84970,cat\n84971,deer\n84972,cat\n84973,frog\n84974,truck\n84975,horse\n84976,deer\n84977,airplane\n84978,deer\n84979,automobile\n84980,truck\n84981,automobile\n84982,automobile\n84983,deer\n84984,automobile\n84985,automobile\n84986,airplane\n84987,dog\n84988,deer\n84989,ship\n84990,dog\n84991,deer\n84992,frog\n84993,airplane\n84994,truck\n84995,dog\n84996,deer\n84997,deer\n84998,horse\n84999,frog\n85000,cat\n85001,automobile\n85002,horse\n85003,deer\n85004,cat\n85005,ship\n85006,automobile\n85007,deer\n85008,dog\n85009,cat\n85010,automobile\n85011,frog\n85012,ship\n85013,automobile\n85014,dog\n85015,deer\n85016,deer\n85017,truck\n85018,dog\n85019,bird\n85020,automobile\n85021,truck\n85022,horse\n85023,airplane\n85024,frog\n85025,dog\n85026,deer\n85027,deer\n85028,deer\n85029,dog\n85030,frog\n85031,frog\n85032,horse\n85033,truck\n85034,dog\n85035,dog\n85036,automobile\n85037,bird\n85038,dog\n85039,deer\n85040,automobile\n85041,deer\n85042,deer\n85043,ship\n85044,cat\n85045,truck\n85046,ship\n85047,airplane\n85048,horse\n85049,dog\n85050,deer\n85051,horse\n85052,ship\n85053,ship\n85054,ship\n85055,cat\n85056,deer\n85057,bird\n85058,dog\n85059,cat\n85060,cat\n85061,airplane\n85062,horse\n85063,horse\n85064,automobile\n85065,truck\n85066,dog\n85067,automobile\n85068,deer\n85069,horse\n85070,frog\n85071,deer\n85072,airplane\n85073,cat\n85074,automobile\n85075,deer\n85076,dog\n85077,deer\n85078,frog\n85079,truck\n85080,dog\n85081,truck\n85082,truck\n85083,truck\n85084,ship\n85085,frog\n85086,bird\n85087,deer\n85088,cat\n85089,truck\n85090,bird\n85091,truck\n85092,automobile\n85093,truck\n85094,truck\n85095,frog\n85096,dog\n85097,automobile\n85098,cat\n85099,deer\n85100,cat\n85101,truck\n85102,horse\n85103,airplane\n85104,frog\n85105,cat\n85106,cat\n85107,cat\n85108,frog\n85109,cat\n85110,cat\n85111,deer\n85112,cat\n85113,airplane\n85114,automobile\n85115,dog\n85116,cat\n85117,frog\n85118,dog\n85119,horse\n85120,cat\n85121,horse\n85122,ship\n85123,bird\n85124,cat\n85125,bird\n85126,bird\n85127,cat\n85128,horse\n85129,deer\n85130,cat\n85131,truck\n85132,horse\n85133,automobile\n85134,truck\n85135,bird\n85136,bird\n85137,deer\n85138,ship\n85139,deer\n85140,cat\n85141,cat\n85142,dog\n85143,ship\n85144,automobile\n85145,horse\n85146,cat\n85147,horse\n85148,truck\n85149,dog\n85150,frog\n85151,ship\n85152,frog\n85153,truck\n85154,frog\n85155,bird\n85156,horse\n85157,dog\n85158,cat\n85159,automobile\n85160,frog\n85161,cat\n85162,airplane\n85163,ship\n85164,frog\n85165,horse\n85166,deer\n85167,bird\n85168,ship\n85169,cat\n85170,cat\n85171,automobile\n85172,bird\n85173,dog\n85174,truck\n85175,ship\n85176,automobile\n85177,dog\n85178,cat\n85179,frog\n85180,bird\n85181,cat\n85182,bird\n85183,frog\n85184,cat\n85185,horse\n85186,frog\n85187,horse\n85188,airplane\n85189,ship\n85190,frog\n85191,frog\n85192,horse\n85193,bird\n85194,cat\n85195,frog\n85196,airplane\n85197,cat\n85198,cat\n85199,airplane\n85200,dog\n85201,dog\n85202,automobile\n85203,cat\n85204,deer\n85205,bird\n85206,horse\n85207,bird\n85208,cat\n85209,deer\n85210,deer\n85211,frog\n85212,deer\n85213,ship\n85214,truck\n85215,horse\n85216,frog\n85217,cat\n85218,ship\n85219,bird\n85220,dog\n85221,horse\n85222,deer\n85223,ship\n85224,ship\n85225,cat\n85226,deer\n85227,deer\n85228,truck\n85229,dog\n85230,horse\n85231,bird\n85232,dog\n85233,deer\n85234,dog\n85235,frog\n85236,airplane\n85237,frog\n85238,bird\n85239,ship\n85240,truck\n85241,horse\n85242,horse\n85243,frog\n85244,cat\n85245,automobile\n85246,cat\n85247,dog\n85248,horse\n85249,truck\n85250,dog\n85251,bird\n85252,automobile\n85253,horse\n85254,ship\n85255,ship\n85256,truck\n85257,deer\n85258,ship\n85259,frog\n85260,horse\n85261,dog\n85262,deer\n85263,frog\n85264,truck\n85265,truck\n85266,deer\n85267,cat\n85268,deer\n85269,frog\n85270,cat\n85271,cat\n85272,deer\n85273,frog\n85274,deer\n85275,frog\n85276,deer\n85277,cat\n85278,deer\n85279,cat\n85280,dog\n85281,ship\n85282,deer\n85283,bird\n85284,ship\n85285,ship\n85286,bird\n85287,dog\n85288,bird\n85289,dog\n85290,frog\n85291,frog\n85292,airplane\n85293,deer\n85294,dog\n85295,airplane\n85296,dog\n85297,frog\n85298,deer\n85299,horse\n85300,cat\n85301,bird\n85302,horse\n85303,frog\n85304,automobile\n85305,deer\n85306,frog\n85307,bird\n85308,horse\n85309,horse\n85310,automobile\n85311,deer\n85312,horse\n85313,cat\n85314,dog\n85315,bird\n85316,truck\n85317,horse\n85318,deer\n85319,horse\n85320,dog\n85321,horse\n85322,airplane\n85323,airplane\n85324,frog\n85325,truck\n85326,frog\n85327,bird\n85328,bird\n85329,airplane\n85330,airplane\n85331,horse\n85332,bird\n85333,dog\n85334,frog\n85335,airplane\n85336,truck\n85337,cat\n85338,frog\n85339,truck\n85340,frog\n85341,horse\n85342,dog\n85343,deer\n85344,deer\n85345,ship\n85346,deer\n85347,truck\n85348,truck\n85349,horse\n85350,horse\n85351,truck\n85352,dog\n85353,airplane\n85354,bird\n85355,horse\n85356,truck\n85357,deer\n85358,deer\n85359,bird\n85360,truck\n85361,airplane\n85362,frog\n85363,airplane\n85364,cat\n85365,horse\n85366,automobile\n85367,bird\n85368,dog\n85369,horse\n85370,automobile\n85371,airplane\n85372,horse\n85373,ship\n85374,automobile\n85375,truck\n85376,frog\n85377,horse\n85378,horse\n85379,airplane\n85380,airplane\n85381,ship\n85382,bird\n85383,frog\n85384,ship\n85385,airplane\n85386,dog\n85387,dog\n85388,ship\n85389,frog\n85390,ship\n85391,frog\n85392,cat\n85393,frog\n85394,frog\n85395,airplane\n85396,frog\n85397,airplane\n85398,horse\n85399,ship\n85400,airplane\n85401,truck\n85402,dog\n85403,frog\n85404,airplane\n85405,truck\n85406,deer\n85407,deer\n85408,automobile\n85409,bird\n85410,frog\n85411,truck\n85412,cat\n85413,ship\n85414,automobile\n85415,cat\n85416,deer\n85417,bird\n85418,bird\n85419,ship\n85420,bird\n85421,ship\n85422,deer\n85423,deer\n85424,truck\n85425,truck\n85426,cat\n85427,deer\n85428,automobile\n85429,truck\n85430,truck\n85431,frog\n85432,bird\n85433,truck\n85434,frog\n85435,automobile\n85436,bird\n85437,airplane\n85438,automobile\n85439,frog\n85440,horse\n85441,deer\n85442,horse\n85443,deer\n85444,ship\n85445,airplane\n85446,automobile\n85447,ship\n85448,airplane\n85449,bird\n85450,cat\n85451,deer\n85452,deer\n85453,deer\n85454,frog\n85455,deer\n85456,deer\n85457,dog\n85458,deer\n85459,dog\n85460,deer\n85461,cat\n85462,deer\n85463,deer\n85464,automobile\n85465,deer\n85466,airplane\n85467,deer\n85468,deer\n85469,frog\n85470,cat\n85471,horse\n85472,cat\n85473,horse\n85474,deer\n85475,airplane\n85476,automobile\n85477,airplane\n85478,deer\n85479,airplane\n85480,bird\n85481,bird\n85482,deer\n85483,deer\n85484,truck\n85485,deer\n85486,frog\n85487,deer\n85488,cat\n85489,cat\n85490,cat\n85491,frog\n85492,horse\n85493,dog\n85494,truck\n85495,truck\n85496,cat\n85497,airplane\n85498,bird\n85499,dog\n85500,truck\n85501,cat\n85502,horse\n85503,horse\n85504,dog\n85505,deer\n85506,deer\n85507,horse\n85508,horse\n85509,automobile\n85510,deer\n85511,automobile\n85512,horse\n85513,deer\n85514,ship\n85515,deer\n85516,airplane\n85517,frog\n85518,bird\n85519,ship\n85520,cat\n85521,deer\n85522,dog\n85523,bird\n85524,dog\n85525,airplane\n85526,automobile\n85527,cat\n85528,ship\n85529,deer\n85530,cat\n85531,airplane\n85532,deer\n85533,frog\n85534,frog\n85535,truck\n85536,automobile\n85537,truck\n85538,truck\n85539,deer\n85540,ship\n85541,dog\n85542,airplane\n85543,frog\n85544,frog\n85545,cat\n85546,horse\n85547,horse\n85548,bird\n85549,horse\n85550,automobile\n85551,automobile\n85552,cat\n85553,ship\n85554,cat\n85555,cat\n85556,airplane\n85557,deer\n85558,bird\n85559,cat\n85560,dog\n85561,automobile\n85562,frog\n85563,bird\n85564,cat\n85565,deer\n85566,dog\n85567,ship\n85568,frog\n85569,automobile\n85570,truck\n85571,bird\n85572,frog\n85573,truck\n85574,dog\n85575,truck\n85576,dog\n85577,deer\n85578,frog\n85579,cat\n85580,cat\n85581,airplane\n85582,automobile\n85583,cat\n85584,dog\n85585,dog\n85586,deer\n85587,horse\n85588,truck\n85589,bird\n85590,frog\n85591,cat\n85592,frog\n85593,deer\n85594,deer\n85595,cat\n85596,frog\n85597,deer\n85598,automobile\n85599,cat\n85600,bird\n85601,horse\n85602,dog\n85603,dog\n85604,frog\n85605,cat\n85606,cat\n85607,cat\n85608,automobile\n85609,cat\n85610,cat\n85611,frog\n85612,dog\n85613,frog\n85614,frog\n85615,cat\n85616,automobile\n85617,horse\n85618,truck\n85619,frog\n85620,airplane\n85621,horse\n85622,airplane\n85623,truck\n85624,ship\n85625,cat\n85626,cat\n85627,deer\n85628,bird\n85629,ship\n85630,deer\n85631,automobile\n85632,horse\n85633,automobile\n85634,deer\n85635,airplane\n85636,deer\n85637,deer\n85638,horse\n85639,truck\n85640,airplane\n85641,horse\n85642,ship\n85643,airplane\n85644,cat\n85645,ship\n85646,deer\n85647,dog\n85648,dog\n85649,frog\n85650,cat\n85651,bird\n85652,ship\n85653,deer\n85654,ship\n85655,dog\n85656,airplane\n85657,truck\n85658,truck\n85659,airplane\n85660,dog\n85661,cat\n85662,horse\n85663,dog\n85664,deer\n85665,bird\n85666,bird\n85667,airplane\n85668,automobile\n85669,truck\n85670,cat\n85671,airplane\n85672,frog\n85673,horse\n85674,automobile\n85675,cat\n85676,horse\n85677,cat\n85678,airplane\n85679,truck\n85680,frog\n85681,dog\n85682,frog\n85683,frog\n85684,deer\n85685,deer\n85686,truck\n85687,dog\n85688,horse\n85689,ship\n85690,cat\n85691,cat\n85692,cat\n85693,dog\n85694,horse\n85695,frog\n85696,deer\n85697,frog\n85698,frog\n85699,dog\n85700,ship\n85701,frog\n85702,airplane\n85703,automobile\n85704,frog\n85705,cat\n85706,automobile\n85707,dog\n85708,truck\n85709,deer\n85710,airplane\n85711,dog\n85712,dog\n85713,deer\n85714,frog\n85715,automobile\n85716,deer\n85717,cat\n85718,bird\n85719,ship\n85720,cat\n85721,automobile\n85722,automobile\n85723,dog\n85724,horse\n85725,dog\n85726,airplane\n85727,frog\n85728,cat\n85729,deer\n85730,frog\n85731,cat\n85732,horse\n85733,horse\n85734,truck\n85735,cat\n85736,ship\n85737,ship\n85738,automobile\n85739,horse\n85740,cat\n85741,deer\n85742,cat\n85743,deer\n85744,airplane\n85745,horse\n85746,automobile\n85747,horse\n85748,automobile\n85749,deer\n85750,truck\n85751,frog\n85752,horse\n85753,frog\n85754,deer\n85755,automobile\n85756,automobile\n85757,automobile\n85758,cat\n85759,bird\n85760,bird\n85761,truck\n85762,frog\n85763,dog\n85764,ship\n85765,frog\n85766,ship\n85767,frog\n85768,horse\n85769,automobile\n85770,cat\n85771,frog\n85772,frog\n85773,truck\n85774,automobile\n85775,frog\n85776,ship\n85777,cat\n85778,deer\n85779,frog\n85780,cat\n85781,cat\n85782,bird\n85783,dog\n85784,cat\n85785,airplane\n85786,dog\n85787,horse\n85788,horse\n85789,deer\n85790,airplane\n85791,cat\n85792,truck\n85793,horse\n85794,cat\n85795,deer\n85796,horse\n85797,dog\n85798,deer\n85799,frog\n85800,automobile\n85801,truck\n85802,deer\n85803,airplane\n85804,automobile\n85805,ship\n85806,truck\n85807,truck\n85808,cat\n85809,airplane\n85810,truck\n85811,horse\n85812,truck\n85813,bird\n85814,dog\n85815,dog\n85816,truck\n85817,ship\n85818,dog\n85819,deer\n85820,cat\n85821,deer\n85822,automobile\n85823,dog\n85824,cat\n85825,frog\n85826,horse\n85827,dog\n85828,horse\n85829,horse\n85830,cat\n85831,dog\n85832,horse\n85833,frog\n85834,frog\n85835,truck\n85836,deer\n85837,deer\n85838,frog\n85839,deer\n85840,deer\n85841,ship\n85842,truck\n85843,frog\n85844,truck\n85845,dog\n85846,airplane\n85847,frog\n85848,frog\n85849,automobile\n85850,airplane\n85851,ship\n85852,automobile\n85853,ship\n85854,bird\n85855,truck\n85856,horse\n85857,dog\n85858,ship\n85859,truck\n85860,bird\n85861,deer\n85862,frog\n85863,automobile\n85864,automobile\n85865,truck\n85866,truck\n85867,frog\n85868,truck\n85869,dog\n85870,automobile\n85871,automobile\n85872,cat\n85873,frog\n85874,automobile\n85875,truck\n85876,cat\n85877,bird\n85878,deer\n85879,deer\n85880,truck\n85881,deer\n85882,cat\n85883,deer\n85884,deer\n85885,cat\n85886,cat\n85887,frog\n85888,dog\n85889,cat\n85890,dog\n85891,bird\n85892,deer\n85893,deer\n85894,automobile\n85895,truck\n85896,horse\n85897,dog\n85898,horse\n85899,automobile\n85900,dog\n85901,truck\n85902,frog\n85903,truck\n85904,automobile\n85905,bird\n85906,airplane\n85907,ship\n85908,deer\n85909,frog\n85910,frog\n85911,truck\n85912,bird\n85913,frog\n85914,cat\n85915,automobile\n85916,dog\n85917,dog\n85918,deer\n85919,deer\n85920,truck\n85921,deer\n85922,ship\n85923,truck\n85924,truck\n85925,deer\n85926,deer\n85927,bird\n85928,cat\n85929,horse\n85930,deer\n85931,cat\n85932,airplane\n85933,cat\n85934,cat\n85935,truck\n85936,dog\n85937,truck\n85938,cat\n85939,cat\n85940,bird\n85941,deer\n85942,automobile\n85943,frog\n85944,airplane\n85945,cat\n85946,frog\n85947,cat\n85948,dog\n85949,airplane\n85950,frog\n85951,deer\n85952,deer\n85953,horse\n85954,horse\n85955,bird\n85956,automobile\n85957,automobile\n85958,bird\n85959,deer\n85960,truck\n85961,cat\n85962,cat\n85963,frog\n85964,airplane\n85965,cat\n85966,airplane\n85967,ship\n85968,dog\n85969,automobile\n85970,truck\n85971,cat\n85972,dog\n85973,bird\n85974,truck\n85975,horse\n85976,bird\n85977,bird\n85978,bird\n85979,bird\n85980,frog\n85981,frog\n85982,ship\n85983,deer\n85984,cat\n85985,cat\n85986,deer\n85987,automobile\n85988,dog\n85989,frog\n85990,cat\n85991,automobile\n85992,truck\n85993,ship\n85994,horse\n85995,airplane\n85996,truck\n85997,truck\n85998,truck\n85999,cat\n86000,ship\n86001,cat\n86002,airplane\n86003,deer\n86004,cat\n86005,dog\n86006,deer\n86007,truck\n86008,truck\n86009,dog\n86010,automobile\n86011,ship\n86012,truck\n86013,truck\n86014,horse\n86015,cat\n86016,horse\n86017,truck\n86018,truck\n86019,automobile\n86020,automobile\n86021,airplane\n86022,truck\n86023,bird\n86024,horse\n86025,ship\n86026,frog\n86027,dog\n86028,truck\n86029,dog\n86030,cat\n86031,truck\n86032,truck\n86033,dog\n86034,airplane\n86035,horse\n86036,airplane\n86037,ship\n86038,horse\n86039,truck\n86040,frog\n86041,dog\n86042,cat\n86043,bird\n86044,bird\n86045,frog\n86046,deer\n86047,airplane\n86048,cat\n86049,deer\n86050,cat\n86051,truck\n86052,automobile\n86053,truck\n86054,ship\n86055,automobile\n86056,automobile\n86057,ship\n86058,deer\n86059,cat\n86060,truck\n86061,frog\n86062,truck\n86063,truck\n86064,dog\n86065,frog\n86066,horse\n86067,bird\n86068,truck\n86069,frog\n86070,airplane\n86071,frog\n86072,deer\n86073,bird\n86074,frog\n86075,frog\n86076,automobile\n86077,airplane\n86078,airplane\n86079,dog\n86080,truck\n86081,horse\n86082,frog\n86083,cat\n86084,cat\n86085,truck\n86086,dog\n86087,cat\n86088,deer\n86089,ship\n86090,cat\n86091,horse\n86092,ship\n86093,deer\n86094,automobile\n86095,airplane\n86096,bird\n86097,cat\n86098,bird\n86099,bird\n86100,truck\n86101,deer\n86102,cat\n86103,horse\n86104,airplane\n86105,bird\n86106,dog\n86107,cat\n86108,frog\n86109,deer\n86110,ship\n86111,cat\n86112,cat\n86113,ship\n86114,automobile\n86115,cat\n86116,frog\n86117,horse\n86118,cat\n86119,airplane\n86120,bird\n86121,dog\n86122,truck\n86123,deer\n86124,ship\n86125,automobile\n86126,cat\n86127,airplane\n86128,cat\n86129,ship\n86130,cat\n86131,truck\n86132,ship\n86133,frog\n86134,deer\n86135,truck\n86136,frog\n86137,bird\n86138,cat\n86139,ship\n86140,bird\n86141,automobile\n86142,cat\n86143,airplane\n86144,dog\n86145,horse\n86146,ship\n86147,dog\n86148,dog\n86149,frog\n86150,truck\n86151,deer\n86152,deer\n86153,frog\n86154,horse\n86155,cat\n86156,frog\n86157,deer\n86158,truck\n86159,airplane\n86160,dog\n86161,frog\n86162,bird\n86163,airplane\n86164,dog\n86165,airplane\n86166,ship\n86167,deer\n86168,bird\n86169,airplane\n86170,airplane\n86171,horse\n86172,truck\n86173,frog\n86174,automobile\n86175,automobile\n86176,deer\n86177,truck\n86178,bird\n86179,cat\n86180,airplane\n86181,automobile\n86182,cat\n86183,deer\n86184,bird\n86185,ship\n86186,automobile\n86187,cat\n86188,cat\n86189,airplane\n86190,automobile\n86191,bird\n86192,automobile\n86193,ship\n86194,cat\n86195,truck\n86196,frog\n86197,bird\n86198,dog\n86199,automobile\n86200,automobile\n86201,horse\n86202,truck\n86203,frog\n86204,frog\n86205,ship\n86206,deer\n86207,bird\n86208,airplane\n86209,truck\n86210,cat\n86211,dog\n86212,frog\n86213,horse\n86214,dog\n86215,truck\n86216,truck\n86217,dog\n86218,truck\n86219,deer\n86220,dog\n86221,deer\n86222,cat\n86223,airplane\n86224,airplane\n86225,horse\n86226,truck\n86227,automobile\n86228,ship\n86229,dog\n86230,deer\n86231,frog\n86232,dog\n86233,dog\n86234,bird\n86235,cat\n86236,dog\n86237,deer\n86238,bird\n86239,airplane\n86240,horse\n86241,frog\n86242,truck\n86243,cat\n86244,dog\n86245,truck\n86246,cat\n86247,ship\n86248,deer\n86249,frog\n86250,cat\n86251,dog\n86252,horse\n86253,automobile\n86254,bird\n86255,airplane\n86256,horse\n86257,dog\n86258,cat\n86259,bird\n86260,frog\n86261,deer\n86262,bird\n86263,truck\n86264,airplane\n86265,truck\n86266,truck\n86267,cat\n86268,truck\n86269,horse\n86270,cat\n86271,deer\n86272,frog\n86273,ship\n86274,cat\n86275,truck\n86276,frog\n86277,deer\n86278,airplane\n86279,frog\n86280,automobile\n86281,horse\n86282,airplane\n86283,ship\n86284,dog\n86285,automobile\n86286,automobile\n86287,airplane\n86288,truck\n86289,ship\n86290,dog\n86291,horse\n86292,cat\n86293,ship\n86294,cat\n86295,bird\n86296,bird\n86297,cat\n86298,horse\n86299,truck\n86300,dog\n86301,dog\n86302,bird\n86303,horse\n86304,horse\n86305,truck\n86306,frog\n86307,deer\n86308,deer\n86309,horse\n86310,airplane\n86311,bird\n86312,horse\n86313,frog\n86314,dog\n86315,frog\n86316,cat\n86317,bird\n86318,deer\n86319,deer\n86320,deer\n86321,cat\n86322,bird\n86323,cat\n86324,truck\n86325,deer\n86326,horse\n86327,dog\n86328,frog\n86329,cat\n86330,dog\n86331,truck\n86332,frog\n86333,automobile\n86334,horse\n86335,dog\n86336,deer\n86337,ship\n86338,cat\n86339,airplane\n86340,dog\n86341,horse\n86342,dog\n86343,cat\n86344,horse\n86345,airplane\n86346,horse\n86347,ship\n86348,cat\n86349,deer\n86350,deer\n86351,truck\n86352,ship\n86353,automobile\n86354,horse\n86355,bird\n86356,airplane\n86357,horse\n86358,truck\n86359,cat\n86360,cat\n86361,deer\n86362,automobile\n86363,bird\n86364,automobile\n86365,horse\n86366,deer\n86367,cat\n86368,cat\n86369,cat\n86370,deer\n86371,deer\n86372,dog\n86373,truck\n86374,horse\n86375,bird\n86376,bird\n86377,cat\n86378,bird\n86379,deer\n86380,truck\n86381,cat\n86382,deer\n86383,deer\n86384,horse\n86385,airplane\n86386,cat\n86387,deer\n86388,ship\n86389,cat\n86390,dog\n86391,ship\n86392,truck\n86393,cat\n86394,horse\n86395,deer\n86396,automobile\n86397,dog\n86398,frog\n86399,automobile\n86400,frog\n86401,dog\n86402,truck\n86403,dog\n86404,bird\n86405,truck\n86406,horse\n86407,dog\n86408,cat\n86409,truck\n86410,airplane\n86411,deer\n86412,automobile\n86413,cat\n86414,truck\n86415,horse\n86416,horse\n86417,frog\n86418,automobile\n86419,airplane\n86420,deer\n86421,cat\n86422,bird\n86423,horse\n86424,bird\n86425,frog\n86426,automobile\n86427,deer\n86428,horse\n86429,cat\n86430,frog\n86431,deer\n86432,airplane\n86433,deer\n86434,dog\n86435,horse\n86436,cat\n86437,dog\n86438,horse\n86439,dog\n86440,truck\n86441,airplane\n86442,deer\n86443,ship\n86444,bird\n86445,dog\n86446,truck\n86447,automobile\n86448,cat\n86449,dog\n86450,bird\n86451,cat\n86452,horse\n86453,ship\n86454,dog\n86455,bird\n86456,deer\n86457,frog\n86458,cat\n86459,deer\n86460,dog\n86461,horse\n86462,dog\n86463,bird\n86464,cat\n86465,automobile\n86466,cat\n86467,airplane\n86468,cat\n86469,ship\n86470,bird\n86471,deer\n86472,dog\n86473,truck\n86474,dog\n86475,dog\n86476,airplane\n86477,airplane\n86478,horse\n86479,frog\n86480,truck\n86481,frog\n86482,horse\n86483,frog\n86484,bird\n86485,automobile\n86486,frog\n86487,horse\n86488,airplane\n86489,ship\n86490,deer\n86491,automobile\n86492,ship\n86493,truck\n86494,horse\n86495,dog\n86496,ship\n86497,ship\n86498,horse\n86499,automobile\n86500,horse\n86501,bird\n86502,dog\n86503,deer\n86504,airplane\n86505,cat\n86506,airplane\n86507,ship\n86508,deer\n86509,truck\n86510,truck\n86511,cat\n86512,bird\n86513,frog\n86514,deer\n86515,frog\n86516,truck\n86517,ship\n86518,truck\n86519,deer\n86520,deer\n86521,airplane\n86522,frog\n86523,cat\n86524,automobile\n86525,frog\n86526,airplane\n86527,ship\n86528,cat\n86529,horse\n86530,cat\n86531,bird\n86532,airplane\n86533,frog\n86534,bird\n86535,automobile\n86536,truck\n86537,bird\n86538,deer\n86539,deer\n86540,horse\n86541,frog\n86542,dog\n86543,dog\n86544,horse\n86545,frog\n86546,dog\n86547,deer\n86548,bird\n86549,truck\n86550,deer\n86551,frog\n86552,deer\n86553,deer\n86554,automobile\n86555,dog\n86556,automobile\n86557,deer\n86558,frog\n86559,cat\n86560,cat\n86561,cat\n86562,cat\n86563,dog\n86564,dog\n86565,ship\n86566,automobile\n86567,airplane\n86568,airplane\n86569,horse\n86570,deer\n86571,deer\n86572,truck\n86573,dog\n86574,dog\n86575,dog\n86576,frog\n86577,dog\n86578,cat\n86579,cat\n86580,automobile\n86581,frog\n86582,dog\n86583,cat\n86584,frog\n86585,cat\n86586,airplane\n86587,automobile\n86588,airplane\n86589,dog\n86590,frog\n86591,truck\n86592,bird\n86593,frog\n86594,truck\n86595,frog\n86596,horse\n86597,ship\n86598,deer\n86599,truck\n86600,automobile\n86601,deer\n86602,deer\n86603,truck\n86604,cat\n86605,cat\n86606,frog\n86607,bird\n86608,truck\n86609,automobile\n86610,cat\n86611,bird\n86612,deer\n86613,airplane\n86614,automobile\n86615,automobile\n86616,frog\n86617,ship\n86618,deer\n86619,dog\n86620,dog\n86621,dog\n86622,frog\n86623,ship\n86624,dog\n86625,ship\n86626,truck\n86627,automobile\n86628,dog\n86629,deer\n86630,dog\n86631,truck\n86632,dog\n86633,cat\n86634,truck\n86635,bird\n86636,cat\n86637,bird\n86638,cat\n86639,dog\n86640,frog\n86641,dog\n86642,horse\n86643,ship\n86644,horse\n86645,dog\n86646,deer\n86647,deer\n86648,bird\n86649,truck\n86650,truck\n86651,dog\n86652,frog\n86653,deer\n86654,frog\n86655,ship\n86656,automobile\n86657,automobile\n86658,automobile\n86659,bird\n86660,ship\n86661,cat\n86662,deer\n86663,deer\n86664,automobile\n86665,airplane\n86666,bird\n86667,cat\n86668,airplane\n86669,horse\n86670,truck\n86671,frog\n86672,cat\n86673,dog\n86674,bird\n86675,deer\n86676,truck\n86677,airplane\n86678,frog\n86679,dog\n86680,bird\n86681,horse\n86682,deer\n86683,frog\n86684,cat\n86685,frog\n86686,bird\n86687,frog\n86688,automobile\n86689,frog\n86690,automobile\n86691,deer\n86692,frog\n86693,bird\n86694,airplane\n86695,bird\n86696,cat\n86697,automobile\n86698,automobile\n86699,frog\n86700,horse\n86701,deer\n86702,deer\n86703,automobile\n86704,truck\n86705,truck\n86706,bird\n86707,deer\n86708,deer\n86709,ship\n86710,ship\n86711,horse\n86712,frog\n86713,ship\n86714,automobile\n86715,horse\n86716,bird\n86717,bird\n86718,horse\n86719,cat\n86720,deer\n86721,truck\n86722,automobile\n86723,ship\n86724,airplane\n86725,horse\n86726,bird\n86727,ship\n86728,dog\n86729,airplane\n86730,frog\n86731,ship\n86732,deer\n86733,automobile\n86734,cat\n86735,truck\n86736,automobile\n86737,deer\n86738,horse\n86739,dog\n86740,deer\n86741,cat\n86742,dog\n86743,deer\n86744,frog\n86745,airplane\n86746,deer\n86747,bird\n86748,deer\n86749,truck\n86750,automobile\n86751,truck\n86752,truck\n86753,frog\n86754,deer\n86755,truck\n86756,dog\n86757,automobile\n86758,cat\n86759,frog\n86760,truck\n86761,cat\n86762,truck\n86763,dog\n86764,horse\n86765,frog\n86766,truck\n86767,frog\n86768,frog\n86769,frog\n86770,truck\n86771,cat\n86772,frog\n86773,horse\n86774,ship\n86775,horse\n86776,airplane\n86777,deer\n86778,horse\n86779,cat\n86780,dog\n86781,frog\n86782,bird\n86783,dog\n86784,airplane\n86785,ship\n86786,cat\n86787,cat\n86788,ship\n86789,airplane\n86790,airplane\n86791,cat\n86792,cat\n86793,ship\n86794,bird\n86795,deer\n86796,truck\n86797,automobile\n86798,dog\n86799,airplane\n86800,ship\n86801,frog\n86802,dog\n86803,cat\n86804,airplane\n86805,frog\n86806,frog\n86807,cat\n86808,ship\n86809,bird\n86810,truck\n86811,dog\n86812,truck\n86813,airplane\n86814,frog\n86815,cat\n86816,dog\n86817,automobile\n86818,deer\n86819,deer\n86820,airplane\n86821,horse\n86822,deer\n86823,dog\n86824,ship\n86825,ship\n86826,deer\n86827,cat\n86828,deer\n86829,airplane\n86830,deer\n86831,horse\n86832,frog\n86833,frog\n86834,automobile\n86835,truck\n86836,deer\n86837,ship\n86838,automobile\n86839,frog\n86840,bird\n86841,truck\n86842,truck\n86843,bird\n86844,deer\n86845,dog\n86846,frog\n86847,deer\n86848,automobile\n86849,deer\n86850,deer\n86851,frog\n86852,cat\n86853,automobile\n86854,airplane\n86855,truck\n86856,bird\n86857,cat\n86858,truck\n86859,horse\n86860,deer\n86861,cat\n86862,dog\n86863,frog\n86864,deer\n86865,automobile\n86866,dog\n86867,dog\n86868,frog\n86869,frog\n86870,horse\n86871,horse\n86872,bird\n86873,truck\n86874,bird\n86875,cat\n86876,horse\n86877,cat\n86878,dog\n86879,deer\n86880,ship\n86881,deer\n86882,frog\n86883,bird\n86884,frog\n86885,automobile\n86886,cat\n86887,frog\n86888,dog\n86889,automobile\n86890,deer\n86891,deer\n86892,dog\n86893,ship\n86894,horse\n86895,ship\n86896,airplane\n86897,horse\n86898,frog\n86899,bird\n86900,dog\n86901,truck\n86902,dog\n86903,dog\n86904,cat\n86905,airplane\n86906,automobile\n86907,cat\n86908,ship\n86909,ship\n86910,deer\n86911,ship\n86912,ship\n86913,cat\n86914,horse\n86915,bird\n86916,ship\n86917,frog\n86918,bird\n86919,truck\n86920,airplane\n86921,frog\n86922,frog\n86923,dog\n86924,ship\n86925,horse\n86926,horse\n86927,truck\n86928,cat\n86929,horse\n86930,horse\n86931,truck\n86932,truck\n86933,automobile\n86934,truck\n86935,frog\n86936,automobile\n86937,airplane\n86938,truck\n86939,frog\n86940,frog\n86941,dog\n86942,horse\n86943,bird\n86944,dog\n86945,dog\n86946,frog\n86947,ship\n86948,automobile\n86949,deer\n86950,automobile\n86951,ship\n86952,horse\n86953,truck\n86954,bird\n86955,airplane\n86956,airplane\n86957,dog\n86958,dog\n86959,horse\n86960,dog\n86961,ship\n86962,frog\n86963,truck\n86964,frog\n86965,dog\n86966,deer\n86967,deer\n86968,horse\n86969,frog\n86970,horse\n86971,automobile\n86972,automobile\n86973,frog\n86974,dog\n86975,horse\n86976,deer\n86977,bird\n86978,bird\n86979,horse\n86980,automobile\n86981,dog\n86982,truck\n86983,cat\n86984,frog\n86985,frog\n86986,deer\n86987,ship\n86988,deer\n86989,dog\n86990,automobile\n86991,automobile\n86992,truck\n86993,airplane\n86994,cat\n86995,cat\n86996,airplane\n86997,horse\n86998,automobile\n86999,bird\n87000,truck\n87001,dog\n87002,frog\n87003,ship\n87004,dog\n87005,truck\n87006,ship\n87007,truck\n87008,deer\n87009,truck\n87010,ship\n87011,cat\n87012,horse\n87013,cat\n87014,frog\n87015,horse\n87016,dog\n87017,horse\n87018,frog\n87019,cat\n87020,cat\n87021,frog\n87022,bird\n87023,horse\n87024,horse\n87025,cat\n87026,ship\n87027,deer\n87028,bird\n87029,truck\n87030,cat\n87031,ship\n87032,horse\n87033,horse\n87034,frog\n87035,bird\n87036,frog\n87037,cat\n87038,cat\n87039,cat\n87040,deer\n87041,cat\n87042,automobile\n87043,horse\n87044,cat\n87045,truck\n87046,cat\n87047,automobile\n87048,frog\n87049,truck\n87050,truck\n87051,cat\n87052,deer\n87053,cat\n87054,dog\n87055,truck\n87056,cat\n87057,frog\n87058,deer\n87059,bird\n87060,deer\n87061,airplane\n87062,cat\n87063,airplane\n87064,dog\n87065,airplane\n87066,dog\n87067,bird\n87068,dog\n87069,frog\n87070,bird\n87071,bird\n87072,frog\n87073,dog\n87074,dog\n87075,horse\n87076,bird\n87077,cat\n87078,frog\n87079,bird\n87080,ship\n87081,ship\n87082,airplane\n87083,cat\n87084,dog\n87085,horse\n87086,deer\n87087,bird\n87088,frog\n87089,cat\n87090,deer\n87091,cat\n87092,frog\n87093,airplane\n87094,horse\n87095,bird\n87096,dog\n87097,automobile\n87098,frog\n87099,automobile\n87100,cat\n87101,truck\n87102,dog\n87103,deer\n87104,bird\n87105,truck\n87106,frog\n87107,cat\n87108,deer\n87109,truck\n87110,cat\n87111,bird\n87112,airplane\n87113,ship\n87114,horse\n87115,cat\n87116,truck\n87117,horse\n87118,deer\n87119,airplane\n87120,truck\n87121,frog\n87122,cat\n87123,deer\n87124,frog\n87125,dog\n87126,deer\n87127,ship\n87128,deer\n87129,frog\n87130,dog\n87131,ship\n87132,truck\n87133,deer\n87134,bird\n87135,deer\n87136,frog\n87137,deer\n87138,automobile\n87139,truck\n87140,horse\n87141,bird\n87142,airplane\n87143,ship\n87144,automobile\n87145,cat\n87146,truck\n87147,cat\n87148,cat\n87149,automobile\n87150,truck\n87151,cat\n87152,truck\n87153,deer\n87154,airplane\n87155,truck\n87156,truck\n87157,horse\n87158,ship\n87159,airplane\n87160,automobile\n87161,cat\n87162,ship\n87163,cat\n87164,deer\n87165,bird\n87166,bird\n87167,deer\n87168,deer\n87169,airplane\n87170,airplane\n87171,cat\n87172,horse\n87173,cat\n87174,ship\n87175,frog\n87176,deer\n87177,deer\n87178,ship\n87179,frog\n87180,horse\n87181,automobile\n87182,frog\n87183,dog\n87184,frog\n87185,dog\n87186,automobile\n87187,deer\n87188,frog\n87189,frog\n87190,frog\n87191,horse\n87192,bird\n87193,deer\n87194,airplane\n87195,frog\n87196,dog\n87197,dog\n87198,automobile\n87199,truck\n87200,cat\n87201,deer\n87202,truck\n87203,deer\n87204,automobile\n87205,horse\n87206,dog\n87207,deer\n87208,deer\n87209,dog\n87210,dog\n87211,cat\n87212,deer\n87213,truck\n87214,dog\n87215,frog\n87216,deer\n87217,frog\n87218,bird\n87219,deer\n87220,frog\n87221,ship\n87222,deer\n87223,frog\n87224,airplane\n87225,truck\n87226,frog\n87227,horse\n87228,cat\n87229,frog\n87230,bird\n87231,frog\n87232,ship\n87233,airplane\n87234,dog\n87235,truck\n87236,airplane\n87237,airplane\n87238,ship\n87239,frog\n87240,cat\n87241,automobile\n87242,deer\n87243,frog\n87244,cat\n87245,ship\n87246,dog\n87247,truck\n87248,airplane\n87249,cat\n87250,deer\n87251,truck\n87252,deer\n87253,horse\n87254,cat\n87255,airplane\n87256,airplane\n87257,cat\n87258,frog\n87259,frog\n87260,horse\n87261,ship\n87262,cat\n87263,frog\n87264,deer\n87265,frog\n87266,cat\n87267,cat\n87268,automobile\n87269,deer\n87270,truck\n87271,frog\n87272,truck\n87273,deer\n87274,frog\n87275,ship\n87276,frog\n87277,cat\n87278,dog\n87279,airplane\n87280,bird\n87281,horse\n87282,horse\n87283,horse\n87284,ship\n87285,deer\n87286,horse\n87287,truck\n87288,horse\n87289,dog\n87290,bird\n87291,frog\n87292,frog\n87293,deer\n87294,cat\n87295,deer\n87296,bird\n87297,frog\n87298,horse\n87299,cat\n87300,bird\n87301,cat\n87302,dog\n87303,automobile\n87304,frog\n87305,deer\n87306,frog\n87307,dog\n87308,bird\n87309,dog\n87310,ship\n87311,truck\n87312,bird\n87313,ship\n87314,truck\n87315,automobile\n87316,ship\n87317,cat\n87318,horse\n87319,bird\n87320,frog\n87321,truck\n87322,cat\n87323,dog\n87324,cat\n87325,airplane\n87326,airplane\n87327,truck\n87328,horse\n87329,deer\n87330,cat\n87331,frog\n87332,horse\n87333,horse\n87334,deer\n87335,automobile\n87336,ship\n87337,cat\n87338,frog\n87339,bird\n87340,horse\n87341,truck\n87342,cat\n87343,cat\n87344,deer\n87345,frog\n87346,cat\n87347,automobile\n87348,bird\n87349,truck\n87350,frog\n87351,cat\n87352,frog\n87353,cat\n87354,automobile\n87355,ship\n87356,bird\n87357,ship\n87358,deer\n87359,horse\n87360,bird\n87361,deer\n87362,airplane\n87363,cat\n87364,ship\n87365,cat\n87366,automobile\n87367,horse\n87368,airplane\n87369,ship\n87370,cat\n87371,deer\n87372,airplane\n87373,horse\n87374,frog\n87375,airplane\n87376,cat\n87377,horse\n87378,horse\n87379,airplane\n87380,dog\n87381,frog\n87382,deer\n87383,deer\n87384,deer\n87385,bird\n87386,cat\n87387,frog\n87388,frog\n87389,bird\n87390,deer\n87391,airplane\n87392,bird\n87393,deer\n87394,ship\n87395,truck\n87396,frog\n87397,airplane\n87398,cat\n87399,cat\n87400,frog\n87401,cat\n87402,automobile\n87403,bird\n87404,truck\n87405,truck\n87406,bird\n87407,automobile\n87408,airplane\n87409,airplane\n87410,cat\n87411,airplane\n87412,deer\n87413,dog\n87414,bird\n87415,ship\n87416,deer\n87417,cat\n87418,airplane\n87419,horse\n87420,frog\n87421,ship\n87422,deer\n87423,deer\n87424,bird\n87425,horse\n87426,deer\n87427,cat\n87428,frog\n87429,bird\n87430,ship\n87431,deer\n87432,deer\n87433,frog\n87434,cat\n87435,ship\n87436,ship\n87437,deer\n87438,dog\n87439,deer\n87440,frog\n87441,bird\n87442,dog\n87443,deer\n87444,deer\n87445,frog\n87446,cat\n87447,deer\n87448,ship\n87449,bird\n87450,dog\n87451,deer\n87452,automobile\n87453,bird\n87454,ship\n87455,cat\n87456,deer\n87457,ship\n87458,bird\n87459,airplane\n87460,ship\n87461,cat\n87462,truck\n87463,dog\n87464,deer\n87465,deer\n87466,airplane\n87467,automobile\n87468,deer\n87469,frog\n87470,automobile\n87471,cat\n87472,cat\n87473,deer\n87474,cat\n87475,truck\n87476,dog\n87477,dog\n87478,cat\n87479,truck\n87480,cat\n87481,deer\n87482,truck\n87483,frog\n87484,deer\n87485,dog\n87486,bird\n87487,airplane\n87488,frog\n87489,dog\n87490,dog\n87491,truck\n87492,frog\n87493,horse\n87494,bird\n87495,cat\n87496,airplane\n87497,deer\n87498,airplane\n87499,truck\n87500,truck\n87501,deer\n87502,deer\n87503,deer\n87504,airplane\n87505,bird\n87506,cat\n87507,ship\n87508,automobile\n87509,ship\n87510,horse\n87511,horse\n87512,dog\n87513,frog\n87514,frog\n87515,bird\n87516,deer\n87517,cat\n87518,bird\n87519,dog\n87520,dog\n87521,ship\n87522,cat\n87523,deer\n87524,airplane\n87525,dog\n87526,deer\n87527,cat\n87528,ship\n87529,horse\n87530,dog\n87531,bird\n87532,dog\n87533,horse\n87534,airplane\n87535,frog\n87536,dog\n87537,cat\n87538,frog\n87539,cat\n87540,automobile\n87541,cat\n87542,horse\n87543,cat\n87544,automobile\n87545,dog\n87546,frog\n87547,truck\n87548,automobile\n87549,frog\n87550,truck\n87551,dog\n87552,deer\n87553,airplane\n87554,airplane\n87555,deer\n87556,bird\n87557,dog\n87558,cat\n87559,airplane\n87560,dog\n87561,truck\n87562,horse\n87563,ship\n87564,deer\n87565,frog\n87566,cat\n87567,dog\n87568,deer\n87569,frog\n87570,dog\n87571,horse\n87572,automobile\n87573,bird\n87574,truck\n87575,horse\n87576,automobile\n87577,horse\n87578,cat\n87579,horse\n87580,dog\n87581,dog\n87582,deer\n87583,horse\n87584,cat\n87585,deer\n87586,dog\n87587,truck\n87588,horse\n87589,horse\n87590,automobile\n87591,dog\n87592,automobile\n87593,dog\n87594,cat\n87595,cat\n87596,horse\n87597,dog\n87598,bird\n87599,deer\n87600,ship\n87601,horse\n87602,cat\n87603,deer\n87604,truck\n87605,deer\n87606,bird\n87607,horse\n87608,ship\n87609,deer\n87610,horse\n87611,deer\n87612,horse\n87613,dog\n87614,airplane\n87615,horse\n87616,automobile\n87617,frog\n87618,cat\n87619,deer\n87620,truck\n87621,bird\n87622,horse\n87623,deer\n87624,dog\n87625,truck\n87626,truck\n87627,deer\n87628,dog\n87629,automobile\n87630,truck\n87631,ship\n87632,horse\n87633,cat\n87634,horse\n87635,truck\n87636,horse\n87637,frog\n87638,airplane\n87639,ship\n87640,dog\n87641,automobile\n87642,ship\n87643,frog\n87644,cat\n87645,dog\n87646,automobile\n87647,automobile\n87648,frog\n87649,deer\n87650,airplane\n87651,truck\n87652,cat\n87653,cat\n87654,deer\n87655,truck\n87656,frog\n87657,deer\n87658,ship\n87659,automobile\n87660,frog\n87661,truck\n87662,dog\n87663,automobile\n87664,cat\n87665,deer\n87666,automobile\n87667,deer\n87668,horse\n87669,dog\n87670,cat\n87671,deer\n87672,frog\n87673,ship\n87674,deer\n87675,dog\n87676,deer\n87677,horse\n87678,deer\n87679,bird\n87680,frog\n87681,deer\n87682,frog\n87683,truck\n87684,truck\n87685,dog\n87686,dog\n87687,cat\n87688,airplane\n87689,cat\n87690,truck\n87691,cat\n87692,dog\n87693,dog\n87694,truck\n87695,dog\n87696,truck\n87697,horse\n87698,cat\n87699,ship\n87700,truck\n87701,deer\n87702,frog\n87703,dog\n87704,deer\n87705,cat\n87706,bird\n87707,dog\n87708,cat\n87709,deer\n87710,airplane\n87711,deer\n87712,frog\n87713,bird\n87714,cat\n87715,airplane\n87716,deer\n87717,deer\n87718,frog\n87719,automobile\n87720,dog\n87721,bird\n87722,horse\n87723,ship\n87724,dog\n87725,airplane\n87726,deer\n87727,bird\n87728,cat\n87729,horse\n87730,deer\n87731,automobile\n87732,frog\n87733,automobile\n87734,deer\n87735,ship\n87736,truck\n87737,ship\n87738,horse\n87739,bird\n87740,cat\n87741,ship\n87742,deer\n87743,frog\n87744,horse\n87745,horse\n87746,automobile\n87747,bird\n87748,cat\n87749,deer\n87750,dog\n87751,horse\n87752,horse\n87753,bird\n87754,frog\n87755,deer\n87756,automobile\n87757,cat\n87758,ship\n87759,horse\n87760,airplane\n87761,deer\n87762,deer\n87763,deer\n87764,truck\n87765,dog\n87766,bird\n87767,cat\n87768,truck\n87769,bird\n87770,ship\n87771,automobile\n87772,cat\n87773,airplane\n87774,bird\n87775,frog\n87776,cat\n87777,dog\n87778,bird\n87779,automobile\n87780,truck\n87781,horse\n87782,horse\n87783,deer\n87784,automobile\n87785,truck\n87786,deer\n87787,airplane\n87788,cat\n87789,frog\n87790,ship\n87791,deer\n87792,dog\n87793,deer\n87794,automobile\n87795,deer\n87796,frog\n87797,airplane\n87798,airplane\n87799,deer\n87800,cat\n87801,deer\n87802,dog\n87803,bird\n87804,deer\n87805,bird\n87806,bird\n87807,airplane\n87808,truck\n87809,automobile\n87810,airplane\n87811,deer\n87812,dog\n87813,cat\n87814,bird\n87815,horse\n87816,truck\n87817,truck\n87818,deer\n87819,dog\n87820,airplane\n87821,horse\n87822,horse\n87823,deer\n87824,deer\n87825,horse\n87826,horse\n87827,airplane\n87828,deer\n87829,automobile\n87830,truck\n87831,truck\n87832,frog\n87833,deer\n87834,truck\n87835,horse\n87836,cat\n87837,deer\n87838,cat\n87839,cat\n87840,deer\n87841,deer\n87842,bird\n87843,truck\n87844,truck\n87845,deer\n87846,frog\n87847,truck\n87848,automobile\n87849,cat\n87850,bird\n87851,truck\n87852,frog\n87853,deer\n87854,deer\n87855,ship\n87856,bird\n87857,frog\n87858,automobile\n87859,horse\n87860,automobile\n87861,horse\n87862,airplane\n87863,automobile\n87864,dog\n87865,deer\n87866,cat\n87867,deer\n87868,dog\n87869,frog\n87870,ship\n87871,ship\n87872,truck\n87873,deer\n87874,cat\n87875,truck\n87876,cat\n87877,ship\n87878,truck\n87879,dog\n87880,automobile\n87881,frog\n87882,frog\n87883,deer\n87884,dog\n87885,truck\n87886,automobile\n87887,cat\n87888,truck\n87889,ship\n87890,bird\n87891,bird\n87892,deer\n87893,ship\n87894,deer\n87895,cat\n87896,cat\n87897,deer\n87898,truck\n87899,cat\n87900,cat\n87901,truck\n87902,dog\n87903,deer\n87904,frog\n87905,horse\n87906,dog\n87907,automobile\n87908,automobile\n87909,cat\n87910,deer\n87911,deer\n87912,dog\n87913,horse\n87914,deer\n87915,deer\n87916,frog\n87917,dog\n87918,horse\n87919,deer\n87920,cat\n87921,dog\n87922,automobile\n87923,horse\n87924,cat\n87925,horse\n87926,deer\n87927,automobile\n87928,horse\n87929,ship\n87930,ship\n87931,bird\n87932,cat\n87933,automobile\n87934,automobile\n87935,dog\n87936,airplane\n87937,dog\n87938,deer\n87939,automobile\n87940,deer\n87941,dog\n87942,airplane\n87943,deer\n87944,deer\n87945,cat\n87946,dog\n87947,frog\n87948,dog\n87949,ship\n87950,truck\n87951,ship\n87952,ship\n87953,bird\n87954,frog\n87955,bird\n87956,cat\n87957,automobile\n87958,truck\n87959,airplane\n87960,ship\n87961,cat\n87962,horse\n87963,dog\n87964,dog\n87965,airplane\n87966,frog\n87967,cat\n87968,truck\n87969,ship\n87970,deer\n87971,dog\n87972,bird\n87973,ship\n87974,deer\n87975,deer\n87976,deer\n87977,horse\n87978,bird\n87979,dog\n87980,deer\n87981,dog\n87982,ship\n87983,cat\n87984,horse\n87985,frog\n87986,automobile\n87987,bird\n87988,deer\n87989,truck\n87990,deer\n87991,deer\n87992,frog\n87993,dog\n87994,airplane\n87995,ship\n87996,deer\n87997,truck\n87998,automobile\n87999,horse\n88000,bird\n88001,bird\n88002,ship\n88003,cat\n88004,horse\n88005,cat\n88006,truck\n88007,bird\n88008,automobile\n88009,horse\n88010,horse\n88011,truck\n88012,horse\n88013,horse\n88014,cat\n88015,bird\n88016,cat\n88017,cat\n88018,horse\n88019,frog\n88020,bird\n88021,horse\n88022,ship\n88023,deer\n88024,ship\n88025,bird\n88026,automobile\n88027,deer\n88028,dog\n88029,airplane\n88030,cat\n88031,frog\n88032,truck\n88033,bird\n88034,cat\n88035,deer\n88036,deer\n88037,horse\n88038,truck\n88039,automobile\n88040,cat\n88041,cat\n88042,airplane\n88043,deer\n88044,horse\n88045,airplane\n88046,automobile\n88047,deer\n88048,bird\n88049,horse\n88050,cat\n88051,airplane\n88052,dog\n88053,deer\n88054,deer\n88055,dog\n88056,truck\n88057,airplane\n88058,cat\n88059,dog\n88060,dog\n88061,horse\n88062,bird\n88063,automobile\n88064,frog\n88065,frog\n88066,dog\n88067,cat\n88068,truck\n88069,frog\n88070,deer\n88071,deer\n88072,deer\n88073,cat\n88074,dog\n88075,deer\n88076,frog\n88077,truck\n88078,frog\n88079,horse\n88080,truck\n88081,deer\n88082,frog\n88083,airplane\n88084,deer\n88085,truck\n88086,horse\n88087,airplane\n88088,truck\n88089,horse\n88090,deer\n88091,frog\n88092,cat\n88093,deer\n88094,horse\n88095,horse\n88096,frog\n88097,frog\n88098,frog\n88099,dog\n88100,cat\n88101,dog\n88102,ship\n88103,automobile\n88104,deer\n88105,horse\n88106,deer\n88107,cat\n88108,cat\n88109,horse\n88110,frog\n88111,ship\n88112,cat\n88113,frog\n88114,truck\n88115,deer\n88116,cat\n88117,airplane\n88118,deer\n88119,dog\n88120,dog\n88121,frog\n88122,bird\n88123,automobile\n88124,deer\n88125,frog\n88126,automobile\n88127,airplane\n88128,cat\n88129,dog\n88130,airplane\n88131,deer\n88132,cat\n88133,cat\n88134,airplane\n88135,cat\n88136,dog\n88137,cat\n88138,cat\n88139,bird\n88140,automobile\n88141,dog\n88142,airplane\n88143,dog\n88144,deer\n88145,truck\n88146,ship\n88147,dog\n88148,airplane\n88149,cat\n88150,automobile\n88151,cat\n88152,frog\n88153,deer\n88154,frog\n88155,deer\n88156,horse\n88157,ship\n88158,frog\n88159,frog\n88160,automobile\n88161,cat\n88162,truck\n88163,cat\n88164,cat\n88165,deer\n88166,automobile\n88167,cat\n88168,frog\n88169,deer\n88170,cat\n88171,automobile\n88172,frog\n88173,ship\n88174,deer\n88175,ship\n88176,deer\n88177,dog\n88178,dog\n88179,cat\n88180,ship\n88181,truck\n88182,dog\n88183,frog\n88184,deer\n88185,frog\n88186,horse\n88187,truck\n88188,airplane\n88189,dog\n88190,truck\n88191,frog\n88192,ship\n88193,dog\n88194,cat\n88195,horse\n88196,deer\n88197,deer\n88198,dog\n88199,bird\n88200,deer\n88201,airplane\n88202,ship\n88203,truck\n88204,frog\n88205,frog\n88206,frog\n88207,truck\n88208,deer\n88209,truck\n88210,deer\n88211,cat\n88212,dog\n88213,frog\n88214,automobile\n88215,deer\n88216,truck\n88217,cat\n88218,truck\n88219,truck\n88220,ship\n88221,frog\n88222,truck\n88223,ship\n88224,cat\n88225,horse\n88226,truck\n88227,deer\n88228,deer\n88229,dog\n88230,horse\n88231,truck\n88232,deer\n88233,dog\n88234,cat\n88235,cat\n88236,bird\n88237,bird\n88238,dog\n88239,frog\n88240,airplane\n88241,deer\n88242,cat\n88243,frog\n88244,airplane\n88245,airplane\n88246,cat\n88247,truck\n88248,bird\n88249,dog\n88250,cat\n88251,bird\n88252,deer\n88253,deer\n88254,dog\n88255,bird\n88256,dog\n88257,truck\n88258,deer\n88259,automobile\n88260,airplane\n88261,airplane\n88262,deer\n88263,truck\n88264,deer\n88265,horse\n88266,bird\n88267,airplane\n88268,ship\n88269,horse\n88270,horse\n88271,airplane\n88272,frog\n88273,airplane\n88274,deer\n88275,frog\n88276,airplane\n88277,automobile\n88278,frog\n88279,frog\n88280,horse\n88281,automobile\n88282,dog\n88283,frog\n88284,frog\n88285,deer\n88286,dog\n88287,bird\n88288,ship\n88289,truck\n88290,bird\n88291,cat\n88292,horse\n88293,frog\n88294,airplane\n88295,bird\n88296,automobile\n88297,cat\n88298,frog\n88299,horse\n88300,deer\n88301,deer\n88302,cat\n88303,automobile\n88304,truck\n88305,frog\n88306,deer\n88307,ship\n88308,frog\n88309,deer\n88310,horse\n88311,horse\n88312,cat\n88313,frog\n88314,dog\n88315,frog\n88316,cat\n88317,bird\n88318,airplane\n88319,truck\n88320,bird\n88321,truck\n88322,truck\n88323,automobile\n88324,ship\n88325,airplane\n88326,automobile\n88327,deer\n88328,automobile\n88329,ship\n88330,deer\n88331,horse\n88332,horse\n88333,frog\n88334,ship\n88335,deer\n88336,truck\n88337,truck\n88338,cat\n88339,automobile\n88340,deer\n88341,deer\n88342,truck\n88343,frog\n88344,ship\n88345,ship\n88346,automobile\n88347,bird\n88348,cat\n88349,airplane\n88350,frog\n88351,airplane\n88352,cat\n88353,frog\n88354,airplane\n88355,frog\n88356,cat\n88357,bird\n88358,automobile\n88359,cat\n88360,deer\n88361,cat\n88362,automobile\n88363,ship\n88364,dog\n88365,deer\n88366,cat\n88367,deer\n88368,truck\n88369,automobile\n88370,frog\n88371,horse\n88372,frog\n88373,frog\n88374,horse\n88375,horse\n88376,airplane\n88377,ship\n88378,deer\n88379,deer\n88380,deer\n88381,dog\n88382,truck\n88383,automobile\n88384,ship\n88385,airplane\n88386,dog\n88387,horse\n88388,cat\n88389,dog\n88390,deer\n88391,dog\n88392,deer\n88393,cat\n88394,airplane\n88395,ship\n88396,frog\n88397,cat\n88398,truck\n88399,deer\n88400,ship\n88401,horse\n88402,bird\n88403,airplane\n88404,cat\n88405,dog\n88406,truck\n88407,cat\n88408,deer\n88409,airplane\n88410,dog\n88411,frog\n88412,horse\n88413,ship\n88414,cat\n88415,deer\n88416,dog\n88417,airplane\n88418,automobile\n88419,bird\n88420,automobile\n88421,dog\n88422,cat\n88423,deer\n88424,cat\n88425,horse\n88426,cat\n88427,cat\n88428,airplane\n88429,truck\n88430,cat\n88431,bird\n88432,frog\n88433,deer\n88434,dog\n88435,truck\n88436,frog\n88437,dog\n88438,cat\n88439,airplane\n88440,cat\n88441,cat\n88442,dog\n88443,bird\n88444,airplane\n88445,deer\n88446,cat\n88447,bird\n88448,truck\n88449,deer\n88450,airplane\n88451,dog\n88452,deer\n88453,cat\n88454,frog\n88455,airplane\n88456,cat\n88457,bird\n88458,dog\n88459,airplane\n88460,bird\n88461,frog\n88462,truck\n88463,automobile\n88464,ship\n88465,dog\n88466,dog\n88467,dog\n88468,frog\n88469,airplane\n88470,frog\n88471,bird\n88472,frog\n88473,automobile\n88474,cat\n88475,airplane\n88476,cat\n88477,ship\n88478,frog\n88479,cat\n88480,automobile\n88481,dog\n88482,dog\n88483,truck\n88484,frog\n88485,bird\n88486,cat\n88487,bird\n88488,cat\n88489,ship\n88490,horse\n88491,automobile\n88492,deer\n88493,cat\n88494,deer\n88495,horse\n88496,horse\n88497,frog\n88498,dog\n88499,ship\n88500,frog\n88501,frog\n88502,dog\n88503,horse\n88504,frog\n88505,horse\n88506,cat\n88507,horse\n88508,automobile\n88509,frog\n88510,cat\n88511,horse\n88512,truck\n88513,cat\n88514,truck\n88515,airplane\n88516,airplane\n88517,deer\n88518,frog\n88519,bird\n88520,frog\n88521,frog\n88522,automobile\n88523,cat\n88524,bird\n88525,automobile\n88526,airplane\n88527,frog\n88528,deer\n88529,dog\n88530,cat\n88531,bird\n88532,automobile\n88533,deer\n88534,deer\n88535,horse\n88536,cat\n88537,cat\n88538,frog\n88539,cat\n88540,frog\n88541,ship\n88542,frog\n88543,deer\n88544,ship\n88545,automobile\n88546,truck\n88547,horse\n88548,frog\n88549,bird\n88550,airplane\n88551,truck\n88552,truck\n88553,truck\n88554,horse\n88555,cat\n88556,cat\n88557,truck\n88558,truck\n88559,dog\n88560,dog\n88561,cat\n88562,cat\n88563,deer\n88564,frog\n88565,truck\n88566,truck\n88567,ship\n88568,deer\n88569,horse\n88570,dog\n88571,truck\n88572,bird\n88573,automobile\n88574,airplane\n88575,airplane\n88576,airplane\n88577,horse\n88578,airplane\n88579,truck\n88580,airplane\n88581,deer\n88582,deer\n88583,automobile\n88584,frog\n88585,cat\n88586,airplane\n88587,bird\n88588,airplane\n88589,horse\n88590,cat\n88591,deer\n88592,airplane\n88593,ship\n88594,dog\n88595,dog\n88596,airplane\n88597,bird\n88598,bird\n88599,bird\n88600,horse\n88601,ship\n88602,frog\n88603,bird\n88604,deer\n88605,cat\n88606,horse\n88607,horse\n88608,cat\n88609,cat\n88610,horse\n88611,horse\n88612,frog\n88613,ship\n88614,cat\n88615,truck\n88616,ship\n88617,cat\n88618,deer\n88619,airplane\n88620,bird\n88621,deer\n88622,cat\n88623,ship\n88624,truck\n88625,dog\n88626,bird\n88627,deer\n88628,bird\n88629,cat\n88630,cat\n88631,automobile\n88632,deer\n88633,horse\n88634,frog\n88635,dog\n88636,deer\n88637,airplane\n88638,dog\n88639,deer\n88640,ship\n88641,cat\n88642,horse\n88643,cat\n88644,automobile\n88645,truck\n88646,bird\n88647,bird\n88648,dog\n88649,bird\n88650,deer\n88651,deer\n88652,frog\n88653,frog\n88654,dog\n88655,bird\n88656,horse\n88657,frog\n88658,truck\n88659,horse\n88660,bird\n88661,dog\n88662,truck\n88663,cat\n88664,airplane\n88665,deer\n88666,bird\n88667,cat\n88668,ship\n88669,bird\n88670,automobile\n88671,bird\n88672,cat\n88673,airplane\n88674,deer\n88675,truck\n88676,cat\n88677,automobile\n88678,cat\n88679,airplane\n88680,cat\n88681,horse\n88682,deer\n88683,cat\n88684,horse\n88685,horse\n88686,truck\n88687,bird\n88688,ship\n88689,bird\n88690,deer\n88691,horse\n88692,automobile\n88693,truck\n88694,deer\n88695,frog\n88696,bird\n88697,bird\n88698,horse\n88699,horse\n88700,airplane\n88701,bird\n88702,deer\n88703,deer\n88704,bird\n88705,airplane\n88706,deer\n88707,cat\n88708,frog\n88709,airplane\n88710,truck\n88711,truck\n88712,automobile\n88713,airplane\n88714,horse\n88715,ship\n88716,bird\n88717,deer\n88718,ship\n88719,ship\n88720,airplane\n88721,truck\n88722,bird\n88723,deer\n88724,cat\n88725,deer\n88726,deer\n88727,deer\n88728,dog\n88729,cat\n88730,ship\n88731,ship\n88732,dog\n88733,airplane\n88734,frog\n88735,bird\n88736,bird\n88737,deer\n88738,truck\n88739,deer\n88740,bird\n88741,airplane\n88742,automobile\n88743,ship\n88744,deer\n88745,truck\n88746,automobile\n88747,truck\n88748,frog\n88749,horse\n88750,cat\n88751,deer\n88752,dog\n88753,cat\n88754,frog\n88755,bird\n88756,ship\n88757,truck\n88758,cat\n88759,horse\n88760,cat\n88761,truck\n88762,automobile\n88763,automobile\n88764,frog\n88765,frog\n88766,cat\n88767,truck\n88768,dog\n88769,truck\n88770,automobile\n88771,airplane\n88772,frog\n88773,dog\n88774,airplane\n88775,bird\n88776,truck\n88777,frog\n88778,deer\n88779,automobile\n88780,cat\n88781,ship\n88782,automobile\n88783,deer\n88784,bird\n88785,bird\n88786,frog\n88787,horse\n88788,ship\n88789,cat\n88790,horse\n88791,horse\n88792,automobile\n88793,frog\n88794,cat\n88795,ship\n88796,frog\n88797,deer\n88798,horse\n88799,airplane\n88800,truck\n88801,airplane\n88802,horse\n88803,frog\n88804,deer\n88805,cat\n88806,bird\n88807,bird\n88808,horse\n88809,cat\n88810,airplane\n88811,dog\n88812,deer\n88813,cat\n88814,ship\n88815,truck\n88816,ship\n88817,deer\n88818,horse\n88819,dog\n88820,airplane\n88821,automobile\n88822,truck\n88823,truck\n88824,horse\n88825,horse\n88826,truck\n88827,dog\n88828,cat\n88829,ship\n88830,frog\n88831,deer\n88832,frog\n88833,truck\n88834,deer\n88835,bird\n88836,horse\n88837,bird\n88838,cat\n88839,horse\n88840,ship\n88841,dog\n88842,frog\n88843,cat\n88844,airplane\n88845,horse\n88846,horse\n88847,dog\n88848,truck\n88849,dog\n88850,frog\n88851,cat\n88852,horse\n88853,cat\n88854,cat\n88855,truck\n88856,automobile\n88857,truck\n88858,cat\n88859,deer\n88860,cat\n88861,deer\n88862,frog\n88863,deer\n88864,deer\n88865,horse\n88866,deer\n88867,truck\n88868,horse\n88869,dog\n88870,airplane\n88871,ship\n88872,cat\n88873,cat\n88874,deer\n88875,frog\n88876,cat\n88877,airplane\n88878,truck\n88879,automobile\n88880,frog\n88881,cat\n88882,airplane\n88883,airplane\n88884,dog\n88885,ship\n88886,deer\n88887,deer\n88888,ship\n88889,airplane\n88890,cat\n88891,horse\n88892,dog\n88893,deer\n88894,ship\n88895,airplane\n88896,ship\n88897,frog\n88898,ship\n88899,horse\n88900,cat\n88901,deer\n88902,bird\n88903,horse\n88904,truck\n88905,airplane\n88906,dog\n88907,airplane\n88908,cat\n88909,ship\n88910,truck\n88911,cat\n88912,frog\n88913,dog\n88914,ship\n88915,horse\n88916,bird\n88917,ship\n88918,airplane\n88919,dog\n88920,truck\n88921,cat\n88922,deer\n88923,truck\n88924,deer\n88925,deer\n88926,cat\n88927,frog\n88928,horse\n88929,horse\n88930,horse\n88931,frog\n88932,dog\n88933,truck\n88934,dog\n88935,cat\n88936,ship\n88937,horse\n88938,truck\n88939,frog\n88940,frog\n88941,airplane\n88942,dog\n88943,truck\n88944,frog\n88945,cat\n88946,ship\n88947,bird\n88948,frog\n88949,dog\n88950,bird\n88951,truck\n88952,airplane\n88953,cat\n88954,frog\n88955,deer\n88956,frog\n88957,ship\n88958,automobile\n88959,automobile\n88960,frog\n88961,deer\n88962,truck\n88963,ship\n88964,airplane\n88965,frog\n88966,dog\n88967,airplane\n88968,deer\n88969,deer\n88970,frog\n88971,ship\n88972,deer\n88973,horse\n88974,cat\n88975,bird\n88976,deer\n88977,ship\n88978,cat\n88979,truck\n88980,airplane\n88981,deer\n88982,dog\n88983,bird\n88984,cat\n88985,ship\n88986,bird\n88987,deer\n88988,deer\n88989,truck\n88990,frog\n88991,dog\n88992,dog\n88993,truck\n88994,cat\n88995,frog\n88996,cat\n88997,cat\n88998,truck\n88999,automobile\n89000,truck\n89001,automobile\n89002,bird\n89003,cat\n89004,airplane\n89005,airplane\n89006,automobile\n89007,truck\n89008,dog\n89009,truck\n89010,ship\n89011,frog\n89012,bird\n89013,ship\n89014,frog\n89015,dog\n89016,dog\n89017,dog\n89018,frog\n89019,automobile\n89020,airplane\n89021,truck\n89022,bird\n89023,frog\n89024,ship\n89025,horse\n89026,frog\n89027,airplane\n89028,cat\n89029,bird\n89030,deer\n89031,cat\n89032,automobile\n89033,ship\n89034,ship\n89035,bird\n89036,deer\n89037,truck\n89038,truck\n89039,dog\n89040,dog\n89041,airplane\n89042,automobile\n89043,horse\n89044,frog\n89045,bird\n89046,horse\n89047,horse\n89048,cat\n89049,deer\n89050,frog\n89051,deer\n89052,bird\n89053,frog\n89054,cat\n89055,bird\n89056,horse\n89057,ship\n89058,bird\n89059,dog\n89060,truck\n89061,horse\n89062,truck\n89063,frog\n89064,cat\n89065,bird\n89066,ship\n89067,dog\n89068,cat\n89069,airplane\n89070,dog\n89071,dog\n89072,frog\n89073,dog\n89074,horse\n89075,dog\n89076,deer\n89077,dog\n89078,bird\n89079,deer\n89080,frog\n89081,truck\n89082,cat\n89083,cat\n89084,ship\n89085,dog\n89086,dog\n89087,frog\n89088,truck\n89089,dog\n89090,frog\n89091,frog\n89092,cat\n89093,airplane\n89094,horse\n89095,automobile\n89096,automobile\n89097,deer\n89098,deer\n89099,truck\n89100,deer\n89101,deer\n89102,frog\n89103,cat\n89104,airplane\n89105,truck\n89106,deer\n89107,airplane\n89108,automobile\n89109,horse\n89110,cat\n89111,cat\n89112,ship\n89113,frog\n89114,ship\n89115,automobile\n89116,deer\n89117,ship\n89118,horse\n89119,bird\n89120,airplane\n89121,frog\n89122,truck\n89123,automobile\n89124,cat\n89125,deer\n89126,airplane\n89127,dog\n89128,ship\n89129,deer\n89130,ship\n89131,airplane\n89132,ship\n89133,frog\n89134,horse\n89135,airplane\n89136,horse\n89137,cat\n89138,automobile\n89139,frog\n89140,cat\n89141,bird\n89142,dog\n89143,dog\n89144,automobile\n89145,truck\n89146,horse\n89147,deer\n89148,cat\n89149,ship\n89150,cat\n89151,bird\n89152,ship\n89153,dog\n89154,deer\n89155,deer\n89156,cat\n89157,frog\n89158,horse\n89159,deer\n89160,truck\n89161,airplane\n89162,cat\n89163,automobile\n89164,bird\n89165,dog\n89166,cat\n89167,dog\n89168,horse\n89169,deer\n89170,dog\n89171,deer\n89172,ship\n89173,cat\n89174,frog\n89175,frog\n89176,dog\n89177,dog\n89178,horse\n89179,truck\n89180,dog\n89181,deer\n89182,frog\n89183,ship\n89184,cat\n89185,ship\n89186,truck\n89187,frog\n89188,dog\n89189,automobile\n89190,bird\n89191,cat\n89192,dog\n89193,truck\n89194,horse\n89195,cat\n89196,dog\n89197,frog\n89198,deer\n89199,horse\n89200,cat\n89201,bird\n89202,dog\n89203,frog\n89204,truck\n89205,deer\n89206,horse\n89207,truck\n89208,horse\n89209,cat\n89210,truck\n89211,ship\n89212,truck\n89213,frog\n89214,horse\n89215,truck\n89216,cat\n89217,automobile\n89218,automobile\n89219,truck\n89220,deer\n89221,deer\n89222,frog\n89223,dog\n89224,dog\n89225,bird\n89226,bird\n89227,frog\n89228,frog\n89229,dog\n89230,bird\n89231,deer\n89232,horse\n89233,airplane\n89234,deer\n89235,cat\n89236,airplane\n89237,dog\n89238,ship\n89239,deer\n89240,cat\n89241,dog\n89242,horse\n89243,automobile\n89244,dog\n89245,deer\n89246,dog\n89247,horse\n89248,dog\n89249,bird\n89250,airplane\n89251,automobile\n89252,automobile\n89253,deer\n89254,horse\n89255,truck\n89256,frog\n89257,frog\n89258,deer\n89259,cat\n89260,horse\n89261,cat\n89262,dog\n89263,horse\n89264,cat\n89265,airplane\n89266,cat\n89267,truck\n89268,deer\n89269,frog\n89270,cat\n89271,bird\n89272,bird\n89273,ship\n89274,automobile\n89275,deer\n89276,horse\n89277,deer\n89278,dog\n89279,cat\n89280,dog\n89281,cat\n89282,cat\n89283,truck\n89284,automobile\n89285,cat\n89286,cat\n89287,ship\n89288,cat\n89289,horse\n89290,dog\n89291,horse\n89292,frog\n89293,bird\n89294,truck\n89295,frog\n89296,cat\n89297,ship\n89298,deer\n89299,frog\n89300,dog\n89301,frog\n89302,truck\n89303,airplane\n89304,bird\n89305,bird\n89306,horse\n89307,deer\n89308,dog\n89309,bird\n89310,horse\n89311,truck\n89312,deer\n89313,frog\n89314,airplane\n89315,truck\n89316,truck\n89317,frog\n89318,cat\n89319,dog\n89320,ship\n89321,truck\n89322,ship\n89323,horse\n89324,deer\n89325,dog\n89326,horse\n89327,cat\n89328,frog\n89329,airplane\n89330,dog\n89331,cat\n89332,cat\n89333,bird\n89334,dog\n89335,bird\n89336,truck\n89337,dog\n89338,automobile\n89339,dog\n89340,truck\n89341,frog\n89342,automobile\n89343,deer\n89344,horse\n89345,cat\n89346,horse\n89347,dog\n89348,frog\n89349,dog\n89350,airplane\n89351,frog\n89352,automobile\n89353,airplane\n89354,bird\n89355,horse\n89356,frog\n89357,cat\n89358,bird\n89359,dog\n89360,deer\n89361,airplane\n89362,horse\n89363,truck\n89364,frog\n89365,truck\n89366,deer\n89367,cat\n89368,horse\n89369,airplane\n89370,dog\n89371,dog\n89372,ship\n89373,horse\n89374,cat\n89375,frog\n89376,cat\n89377,horse\n89378,frog\n89379,automobile\n89380,deer\n89381,frog\n89382,truck\n89383,dog\n89384,horse\n89385,ship\n89386,horse\n89387,ship\n89388,ship\n89389,airplane\n89390,bird\n89391,dog\n89392,frog\n89393,cat\n89394,deer\n89395,horse\n89396,deer\n89397,deer\n89398,horse\n89399,cat\n89400,deer\n89401,horse\n89402,horse\n89403,bird\n89404,frog\n89405,frog\n89406,frog\n89407,frog\n89408,automobile\n89409,deer\n89410,horse\n89411,horse\n89412,deer\n89413,deer\n89414,deer\n89415,bird\n89416,automobile\n89417,dog\n89418,frog\n89419,cat\n89420,frog\n89421,bird\n89422,cat\n89423,deer\n89424,automobile\n89425,deer\n89426,dog\n89427,bird\n89428,horse\n89429,airplane\n89430,deer\n89431,truck\n89432,deer\n89433,bird\n89434,airplane\n89435,deer\n89436,automobile\n89437,bird\n89438,frog\n89439,deer\n89440,ship\n89441,cat\n89442,deer\n89443,automobile\n89444,airplane\n89445,horse\n89446,cat\n89447,deer\n89448,truck\n89449,bird\n89450,horse\n89451,ship\n89452,frog\n89453,deer\n89454,deer\n89455,automobile\n89456,frog\n89457,cat\n89458,deer\n89459,cat\n89460,dog\n89461,bird\n89462,automobile\n89463,deer\n89464,automobile\n89465,bird\n89466,airplane\n89467,horse\n89468,dog\n89469,ship\n89470,airplane\n89471,frog\n89472,frog\n89473,ship\n89474,horse\n89475,cat\n89476,dog\n89477,deer\n89478,automobile\n89479,airplane\n89480,ship\n89481,airplane\n89482,frog\n89483,cat\n89484,truck\n89485,bird\n89486,ship\n89487,ship\n89488,truck\n89489,deer\n89490,dog\n89491,deer\n89492,dog\n89493,ship\n89494,horse\n89495,cat\n89496,frog\n89497,ship\n89498,truck\n89499,dog\n89500,frog\n89501,deer\n89502,cat\n89503,cat\n89504,ship\n89505,automobile\n89506,airplane\n89507,horse\n89508,bird\n89509,truck\n89510,horse\n89511,automobile\n89512,cat\n89513,automobile\n89514,automobile\n89515,horse\n89516,truck\n89517,airplane\n89518,dog\n89519,truck\n89520,ship\n89521,horse\n89522,frog\n89523,deer\n89524,automobile\n89525,dog\n89526,deer\n89527,ship\n89528,deer\n89529,frog\n89530,deer\n89531,deer\n89532,deer\n89533,deer\n89534,ship\n89535,cat\n89536,frog\n89537,frog\n89538,deer\n89539,horse\n89540,dog\n89541,airplane\n89542,dog\n89543,automobile\n89544,cat\n89545,cat\n89546,frog\n89547,deer\n89548,deer\n89549,dog\n89550,horse\n89551,cat\n89552,cat\n89553,cat\n89554,automobile\n89555,horse\n89556,deer\n89557,airplane\n89558,bird\n89559,cat\n89560,ship\n89561,truck\n89562,dog\n89563,horse\n89564,deer\n89565,ship\n89566,frog\n89567,deer\n89568,bird\n89569,dog\n89570,bird\n89571,dog\n89572,horse\n89573,deer\n89574,horse\n89575,airplane\n89576,truck\n89577,cat\n89578,automobile\n89579,automobile\n89580,bird\n89581,deer\n89582,deer\n89583,ship\n89584,frog\n89585,cat\n89586,bird\n89587,deer\n89588,ship\n89589,airplane\n89590,cat\n89591,dog\n89592,frog\n89593,ship\n89594,horse\n89595,horse\n89596,frog\n89597,dog\n89598,airplane\n89599,truck\n89600,horse\n89601,deer\n89602,deer\n89603,ship\n89604,truck\n89605,horse\n89606,deer\n89607,horse\n89608,automobile\n89609,cat\n89610,deer\n89611,dog\n89612,ship\n89613,airplane\n89614,horse\n89615,deer\n89616,frog\n89617,horse\n89618,ship\n89619,frog\n89620,deer\n89621,automobile\n89622,horse\n89623,ship\n89624,truck\n89625,truck\n89626,bird\n89627,horse\n89628,frog\n89629,cat\n89630,ship\n89631,airplane\n89632,dog\n89633,bird\n89634,cat\n89635,frog\n89636,deer\n89637,airplane\n89638,cat\n89639,dog\n89640,cat\n89641,automobile\n89642,bird\n89643,dog\n89644,deer\n89645,truck\n89646,ship\n89647,automobile\n89648,airplane\n89649,horse\n89650,frog\n89651,frog\n89652,ship\n89653,deer\n89654,bird\n89655,deer\n89656,horse\n89657,frog\n89658,horse\n89659,cat\n89660,cat\n89661,cat\n89662,deer\n89663,cat\n89664,horse\n89665,frog\n89666,truck\n89667,ship\n89668,deer\n89669,horse\n89670,cat\n89671,automobile\n89672,frog\n89673,airplane\n89674,deer\n89675,automobile\n89676,ship\n89677,ship\n89678,automobile\n89679,deer\n89680,cat\n89681,airplane\n89682,frog\n89683,cat\n89684,bird\n89685,frog\n89686,bird\n89687,automobile\n89688,bird\n89689,cat\n89690,truck\n89691,airplane\n89692,truck\n89693,airplane\n89694,airplane\n89695,frog\n89696,cat\n89697,dog\n89698,airplane\n89699,ship\n89700,automobile\n89701,bird\n89702,truck\n89703,frog\n89704,deer\n89705,horse\n89706,bird\n89707,bird\n89708,dog\n89709,dog\n89710,frog\n89711,cat\n89712,horse\n89713,frog\n89714,deer\n89715,automobile\n89716,truck\n89717,deer\n89718,horse\n89719,cat\n89720,deer\n89721,horse\n89722,automobile\n89723,truck\n89724,frog\n89725,truck\n89726,cat\n89727,deer\n89728,dog\n89729,horse\n89730,cat\n89731,ship\n89732,bird\n89733,frog\n89734,frog\n89735,cat\n89736,cat\n89737,airplane\n89738,ship\n89739,deer\n89740,ship\n89741,horse\n89742,horse\n89743,bird\n89744,ship\n89745,truck\n89746,dog\n89747,dog\n89748,horse\n89749,automobile\n89750,bird\n89751,horse\n89752,automobile\n89753,deer\n89754,deer\n89755,frog\n89756,cat\n89757,cat\n89758,airplane\n89759,bird\n89760,ship\n89761,cat\n89762,truck\n89763,deer\n89764,frog\n89765,automobile\n89766,truck\n89767,frog\n89768,cat\n89769,ship\n89770,truck\n89771,dog\n89772,automobile\n89773,automobile\n89774,automobile\n89775,deer\n89776,dog\n89777,truck\n89778,truck\n89779,cat\n89780,horse\n89781,bird\n89782,truck\n89783,frog\n89784,truck\n89785,dog\n89786,cat\n89787,frog\n89788,dog\n89789,airplane\n89790,deer\n89791,dog\n89792,dog\n89793,frog\n89794,truck\n89795,deer\n89796,cat\n89797,truck\n89798,dog\n89799,deer\n89800,ship\n89801,deer\n89802,horse\n89803,horse\n89804,horse\n89805,automobile\n89806,automobile\n89807,bird\n89808,deer\n89809,truck\n89810,deer\n89811,cat\n89812,deer\n89813,cat\n89814,airplane\n89815,horse\n89816,cat\n89817,dog\n89818,truck\n89819,deer\n89820,bird\n89821,deer\n89822,bird\n89823,ship\n89824,deer\n89825,horse\n89826,airplane\n89827,cat\n89828,truck\n89829,frog\n89830,ship\n89831,frog\n89832,cat\n89833,deer\n89834,dog\n89835,deer\n89836,bird\n89837,dog\n89838,truck\n89839,automobile\n89840,truck\n89841,ship\n89842,automobile\n89843,ship\n89844,cat\n89845,dog\n89846,bird\n89847,deer\n89848,deer\n89849,horse\n89850,horse\n89851,cat\n89852,dog\n89853,horse\n89854,cat\n89855,dog\n89856,deer\n89857,cat\n89858,deer\n89859,truck\n89860,dog\n89861,airplane\n89862,deer\n89863,dog\n89864,airplane\n89865,frog\n89866,deer\n89867,frog\n89868,truck\n89869,deer\n89870,ship\n89871,horse\n89872,horse\n89873,deer\n89874,deer\n89875,truck\n89876,automobile\n89877,horse\n89878,frog\n89879,frog\n89880,bird\n89881,automobile\n89882,ship\n89883,cat\n89884,truck\n89885,bird\n89886,airplane\n89887,deer\n89888,automobile\n89889,automobile\n89890,truck\n89891,ship\n89892,bird\n89893,deer\n89894,ship\n89895,cat\n89896,cat\n89897,airplane\n89898,frog\n89899,airplane\n89900,truck\n89901,ship\n89902,cat\n89903,deer\n89904,deer\n89905,frog\n89906,deer\n89907,frog\n89908,truck\n89909,truck\n89910,ship\n89911,horse\n89912,frog\n89913,dog\n89914,deer\n89915,dog\n89916,truck\n89917,horse\n89918,airplane\n89919,cat\n89920,bird\n89921,bird\n89922,dog\n89923,frog\n89924,cat\n89925,deer\n89926,dog\n89927,cat\n89928,ship\n89929,ship\n89930,airplane\n89931,horse\n89932,cat\n89933,deer\n89934,deer\n89935,frog\n89936,dog\n89937,ship\n89938,truck\n89939,dog\n89940,bird\n89941,cat\n89942,dog\n89943,cat\n89944,airplane\n89945,cat\n89946,cat\n89947,dog\n89948,cat\n89949,dog\n89950,cat\n89951,horse\n89952,automobile\n89953,dog\n89954,frog\n89955,dog\n89956,dog\n89957,airplane\n89958,horse\n89959,frog\n89960,truck\n89961,automobile\n89962,frog\n89963,horse\n89964,airplane\n89965,airplane\n89966,cat\n89967,automobile\n89968,ship\n89969,dog\n89970,dog\n89971,automobile\n89972,dog\n89973,horse\n89974,horse\n89975,ship\n89976,truck\n89977,ship\n89978,automobile\n89979,truck\n89980,dog\n89981,cat\n89982,cat\n89983,automobile\n89984,cat\n89985,ship\n89986,cat\n89987,airplane\n89988,deer\n89989,deer\n89990,horse\n89991,automobile\n89992,dog\n89993,ship\n89994,dog\n89995,ship\n89996,bird\n89997,cat\n89998,automobile\n89999,truck\n90000,cat\n90001,deer\n90002,truck\n90003,truck\n90004,dog\n90005,truck\n90006,horse\n90007,frog\n90008,dog\n90009,automobile\n90010,automobile\n90011,deer\n90012,bird\n90013,automobile\n90014,dog\n90015,cat\n90016,automobile\n90017,deer\n90018,deer\n90019,ship\n90020,automobile\n90021,ship\n90022,truck\n90023,cat\n90024,bird\n90025,dog\n90026,cat\n90027,ship\n90028,dog\n90029,dog\n90030,automobile\n90031,automobile\n90032,automobile\n90033,horse\n90034,automobile\n90035,deer\n90036,frog\n90037,frog\n90038,deer\n90039,airplane\n90040,cat\n90041,cat\n90042,truck\n90043,bird\n90044,bird\n90045,frog\n90046,truck\n90047,bird\n90048,dog\n90049,automobile\n90050,automobile\n90051,cat\n90052,cat\n90053,truck\n90054,frog\n90055,ship\n90056,automobile\n90057,frog\n90058,horse\n90059,bird\n90060,frog\n90061,truck\n90062,cat\n90063,deer\n90064,truck\n90065,frog\n90066,airplane\n90067,automobile\n90068,bird\n90069,cat\n90070,deer\n90071,dog\n90072,dog\n90073,cat\n90074,dog\n90075,airplane\n90076,deer\n90077,frog\n90078,horse\n90079,ship\n90080,bird\n90081,bird\n90082,cat\n90083,cat\n90084,bird\n90085,horse\n90086,cat\n90087,bird\n90088,truck\n90089,airplane\n90090,automobile\n90091,frog\n90092,horse\n90093,ship\n90094,dog\n90095,frog\n90096,ship\n90097,dog\n90098,cat\n90099,dog\n90100,dog\n90101,deer\n90102,automobile\n90103,bird\n90104,deer\n90105,automobile\n90106,dog\n90107,dog\n90108,truck\n90109,truck\n90110,dog\n90111,deer\n90112,cat\n90113,cat\n90114,dog\n90115,truck\n90116,dog\n90117,automobile\n90118,horse\n90119,automobile\n90120,cat\n90121,dog\n90122,frog\n90123,automobile\n90124,dog\n90125,airplane\n90126,automobile\n90127,dog\n90128,automobile\n90129,deer\n90130,automobile\n90131,frog\n90132,frog\n90133,truck\n90134,airplane\n90135,frog\n90136,frog\n90137,deer\n90138,cat\n90139,deer\n90140,airplane\n90141,automobile\n90142,bird\n90143,dog\n90144,frog\n90145,cat\n90146,deer\n90147,bird\n90148,ship\n90149,ship\n90150,cat\n90151,ship\n90152,deer\n90153,frog\n90154,truck\n90155,ship\n90156,ship\n90157,dog\n90158,bird\n90159,dog\n90160,dog\n90161,bird\n90162,truck\n90163,dog\n90164,automobile\n90165,dog\n90166,deer\n90167,dog\n90168,dog\n90169,truck\n90170,deer\n90171,deer\n90172,horse\n90173,ship\n90174,dog\n90175,cat\n90176,automobile\n90177,cat\n90178,dog\n90179,deer\n90180,deer\n90181,ship\n90182,frog\n90183,dog\n90184,dog\n90185,frog\n90186,deer\n90187,truck\n90188,ship\n90189,automobile\n90190,deer\n90191,frog\n90192,ship\n90193,airplane\n90194,cat\n90195,truck\n90196,truck\n90197,cat\n90198,bird\n90199,cat\n90200,ship\n90201,truck\n90202,ship\n90203,horse\n90204,cat\n90205,horse\n90206,cat\n90207,cat\n90208,ship\n90209,airplane\n90210,automobile\n90211,ship\n90212,dog\n90213,cat\n90214,airplane\n90215,cat\n90216,deer\n90217,truck\n90218,deer\n90219,truck\n90220,frog\n90221,cat\n90222,horse\n90223,horse\n90224,truck\n90225,deer\n90226,airplane\n90227,truck\n90228,dog\n90229,dog\n90230,dog\n90231,truck\n90232,horse\n90233,dog\n90234,cat\n90235,cat\n90236,frog\n90237,dog\n90238,deer\n90239,dog\n90240,truck\n90241,ship\n90242,airplane\n90243,horse\n90244,cat\n90245,dog\n90246,deer\n90247,deer\n90248,automobile\n90249,dog\n90250,dog\n90251,horse\n90252,horse\n90253,airplane\n90254,horse\n90255,dog\n90256,truck\n90257,deer\n90258,truck\n90259,cat\n90260,truck\n90261,dog\n90262,truck\n90263,ship\n90264,dog\n90265,horse\n90266,dog\n90267,dog\n90268,horse\n90269,deer\n90270,bird\n90271,ship\n90272,truck\n90273,cat\n90274,frog\n90275,deer\n90276,dog\n90277,horse\n90278,ship\n90279,deer\n90280,cat\n90281,airplane\n90282,horse\n90283,cat\n90284,deer\n90285,frog\n90286,deer\n90287,bird\n90288,horse\n90289,airplane\n90290,dog\n90291,ship\n90292,dog\n90293,horse\n90294,cat\n90295,airplane\n90296,bird\n90297,deer\n90298,frog\n90299,airplane\n90300,dog\n90301,deer\n90302,truck\n90303,deer\n90304,cat\n90305,ship\n90306,ship\n90307,truck\n90308,airplane\n90309,frog\n90310,ship\n90311,dog\n90312,deer\n90313,truck\n90314,airplane\n90315,deer\n90316,automobile\n90317,frog\n90318,deer\n90319,automobile\n90320,ship\n90321,bird\n90322,ship\n90323,frog\n90324,deer\n90325,airplane\n90326,cat\n90327,airplane\n90328,airplane\n90329,deer\n90330,airplane\n90331,bird\n90332,cat\n90333,dog\n90334,deer\n90335,cat\n90336,bird\n90337,cat\n90338,automobile\n90339,cat\n90340,bird\n90341,truck\n90342,cat\n90343,horse\n90344,ship\n90345,frog\n90346,dog\n90347,deer\n90348,frog\n90349,ship\n90350,cat\n90351,cat\n90352,deer\n90353,ship\n90354,horse\n90355,cat\n90356,cat\n90357,deer\n90358,horse\n90359,cat\n90360,bird\n90361,truck\n90362,cat\n90363,horse\n90364,horse\n90365,truck\n90366,truck\n90367,frog\n90368,truck\n90369,cat\n90370,deer\n90371,cat\n90372,frog\n90373,cat\n90374,truck\n90375,deer\n90376,frog\n90377,cat\n90378,deer\n90379,truck\n90380,horse\n90381,dog\n90382,horse\n90383,frog\n90384,frog\n90385,horse\n90386,horse\n90387,dog\n90388,deer\n90389,horse\n90390,bird\n90391,dog\n90392,cat\n90393,deer\n90394,truck\n90395,automobile\n90396,horse\n90397,airplane\n90398,frog\n90399,ship\n90400,deer\n90401,dog\n90402,truck\n90403,automobile\n90404,deer\n90405,truck\n90406,horse\n90407,deer\n90408,horse\n90409,bird\n90410,cat\n90411,cat\n90412,dog\n90413,frog\n90414,dog\n90415,truck\n90416,bird\n90417,horse\n90418,truck\n90419,automobile\n90420,dog\n90421,frog\n90422,ship\n90423,deer\n90424,airplane\n90425,bird\n90426,dog\n90427,frog\n90428,deer\n90429,automobile\n90430,automobile\n90431,truck\n90432,ship\n90433,frog\n90434,ship\n90435,truck\n90436,automobile\n90437,airplane\n90438,cat\n90439,truck\n90440,frog\n90441,dog\n90442,bird\n90443,bird\n90444,horse\n90445,horse\n90446,ship\n90447,truck\n90448,airplane\n90449,automobile\n90450,airplane\n90451,ship\n90452,dog\n90453,deer\n90454,frog\n90455,deer\n90456,deer\n90457,deer\n90458,truck\n90459,bird\n90460,cat\n90461,bird\n90462,deer\n90463,truck\n90464,automobile\n90465,cat\n90466,frog\n90467,deer\n90468,deer\n90469,horse\n90470,bird\n90471,cat\n90472,bird\n90473,frog\n90474,ship\n90475,automobile\n90476,airplane\n90477,horse\n90478,truck\n90479,deer\n90480,deer\n90481,frog\n90482,airplane\n90483,horse\n90484,ship\n90485,deer\n90486,cat\n90487,cat\n90488,airplane\n90489,deer\n90490,frog\n90491,airplane\n90492,truck\n90493,truck\n90494,frog\n90495,airplane\n90496,cat\n90497,truck\n90498,horse\n90499,cat\n90500,bird\n90501,dog\n90502,truck\n90503,frog\n90504,deer\n90505,bird\n90506,cat\n90507,frog\n90508,bird\n90509,airplane\n90510,horse\n90511,deer\n90512,automobile\n90513,cat\n90514,deer\n90515,automobile\n90516,horse\n90517,truck\n90518,cat\n90519,airplane\n90520,deer\n90521,deer\n90522,truck\n90523,ship\n90524,bird\n90525,ship\n90526,deer\n90527,frog\n90528,dog\n90529,automobile\n90530,truck\n90531,deer\n90532,deer\n90533,frog\n90534,frog\n90535,truck\n90536,deer\n90537,deer\n90538,frog\n90539,frog\n90540,automobile\n90541,horse\n90542,airplane\n90543,frog\n90544,airplane\n90545,truck\n90546,frog\n90547,horse\n90548,deer\n90549,frog\n90550,deer\n90551,frog\n90552,frog\n90553,cat\n90554,automobile\n90555,horse\n90556,frog\n90557,deer\n90558,frog\n90559,truck\n90560,horse\n90561,dog\n90562,horse\n90563,bird\n90564,dog\n90565,airplane\n90566,dog\n90567,bird\n90568,deer\n90569,horse\n90570,frog\n90571,airplane\n90572,cat\n90573,horse\n90574,airplane\n90575,bird\n90576,ship\n90577,cat\n90578,airplane\n90579,horse\n90580,truck\n90581,ship\n90582,deer\n90583,deer\n90584,bird\n90585,horse\n90586,horse\n90587,deer\n90588,ship\n90589,dog\n90590,truck\n90591,bird\n90592,deer\n90593,dog\n90594,bird\n90595,dog\n90596,horse\n90597,airplane\n90598,deer\n90599,horse\n90600,cat\n90601,automobile\n90602,airplane\n90603,frog\n90604,dog\n90605,deer\n90606,frog\n90607,truck\n90608,truck\n90609,cat\n90610,airplane\n90611,horse\n90612,frog\n90613,horse\n90614,deer\n90615,deer\n90616,dog\n90617,dog\n90618,bird\n90619,cat\n90620,deer\n90621,frog\n90622,cat\n90623,horse\n90624,dog\n90625,bird\n90626,cat\n90627,deer\n90628,ship\n90629,deer\n90630,automobile\n90631,automobile\n90632,cat\n90633,truck\n90634,truck\n90635,truck\n90636,automobile\n90637,automobile\n90638,ship\n90639,truck\n90640,horse\n90641,horse\n90642,truck\n90643,truck\n90644,frog\n90645,cat\n90646,horse\n90647,airplane\n90648,truck\n90649,bird\n90650,cat\n90651,frog\n90652,deer\n90653,deer\n90654,bird\n90655,dog\n90656,bird\n90657,deer\n90658,bird\n90659,dog\n90660,horse\n90661,ship\n90662,cat\n90663,ship\n90664,cat\n90665,truck\n90666,airplane\n90667,bird\n90668,deer\n90669,deer\n90670,horse\n90671,ship\n90672,truck\n90673,airplane\n90674,frog\n90675,cat\n90676,horse\n90677,airplane\n90678,horse\n90679,ship\n90680,cat\n90681,bird\n90682,bird\n90683,cat\n90684,frog\n90685,deer\n90686,frog\n90687,automobile\n90688,ship\n90689,truck\n90690,deer\n90691,cat\n90692,dog\n90693,deer\n90694,truck\n90695,bird\n90696,dog\n90697,frog\n90698,automobile\n90699,bird\n90700,ship\n90701,deer\n90702,dog\n90703,airplane\n90704,bird\n90705,deer\n90706,airplane\n90707,automobile\n90708,airplane\n90709,ship\n90710,bird\n90711,truck\n90712,deer\n90713,truck\n90714,automobile\n90715,frog\n90716,airplane\n90717,ship\n90718,automobile\n90719,automobile\n90720,frog\n90721,ship\n90722,cat\n90723,horse\n90724,deer\n90725,truck\n90726,cat\n90727,dog\n90728,automobile\n90729,cat\n90730,deer\n90731,automobile\n90732,airplane\n90733,horse\n90734,automobile\n90735,deer\n90736,frog\n90737,truck\n90738,automobile\n90739,frog\n90740,ship\n90741,frog\n90742,frog\n90743,dog\n90744,ship\n90745,automobile\n90746,automobile\n90747,truck\n90748,truck\n90749,dog\n90750,frog\n90751,truck\n90752,cat\n90753,dog\n90754,horse\n90755,deer\n90756,automobile\n90757,frog\n90758,truck\n90759,dog\n90760,ship\n90761,cat\n90762,deer\n90763,horse\n90764,horse\n90765,frog\n90766,ship\n90767,deer\n90768,dog\n90769,airplane\n90770,deer\n90771,frog\n90772,deer\n90773,truck\n90774,horse\n90775,frog\n90776,frog\n90777,cat\n90778,ship\n90779,truck\n90780,deer\n90781,dog\n90782,dog\n90783,frog\n90784,dog\n90785,bird\n90786,ship\n90787,dog\n90788,frog\n90789,cat\n90790,dog\n90791,cat\n90792,deer\n90793,dog\n90794,deer\n90795,frog\n90796,automobile\n90797,bird\n90798,deer\n90799,ship\n90800,frog\n90801,automobile\n90802,deer\n90803,dog\n90804,deer\n90805,ship\n90806,airplane\n90807,automobile\n90808,deer\n90809,bird\n90810,cat\n90811,dog\n90812,horse\n90813,horse\n90814,ship\n90815,deer\n90816,bird\n90817,bird\n90818,frog\n90819,horse\n90820,airplane\n90821,truck\n90822,horse\n90823,deer\n90824,deer\n90825,automobile\n90826,cat\n90827,frog\n90828,cat\n90829,dog\n90830,truck\n90831,automobile\n90832,automobile\n90833,bird\n90834,deer\n90835,horse\n90836,deer\n90837,ship\n90838,horse\n90839,ship\n90840,cat\n90841,deer\n90842,automobile\n90843,deer\n90844,airplane\n90845,deer\n90846,deer\n90847,bird\n90848,cat\n90849,cat\n90850,ship\n90851,dog\n90852,dog\n90853,truck\n90854,deer\n90855,frog\n90856,automobile\n90857,ship\n90858,frog\n90859,truck\n90860,bird\n90861,automobile\n90862,automobile\n90863,frog\n90864,truck\n90865,ship\n90866,automobile\n90867,truck\n90868,deer\n90869,deer\n90870,truck\n90871,ship\n90872,cat\n90873,frog\n90874,deer\n90875,airplane\n90876,dog\n90877,airplane\n90878,deer\n90879,airplane\n90880,truck\n90881,horse\n90882,airplane\n90883,horse\n90884,deer\n90885,frog\n90886,cat\n90887,deer\n90888,truck\n90889,frog\n90890,deer\n90891,airplane\n90892,airplane\n90893,dog\n90894,frog\n90895,automobile\n90896,deer\n90897,cat\n90898,bird\n90899,deer\n90900,dog\n90901,truck\n90902,truck\n90903,horse\n90904,horse\n90905,dog\n90906,ship\n90907,ship\n90908,truck\n90909,bird\n90910,deer\n90911,frog\n90912,automobile\n90913,airplane\n90914,automobile\n90915,frog\n90916,cat\n90917,horse\n90918,cat\n90919,deer\n90920,ship\n90921,frog\n90922,dog\n90923,cat\n90924,deer\n90925,truck\n90926,dog\n90927,bird\n90928,deer\n90929,ship\n90930,ship\n90931,ship\n90932,truck\n90933,cat\n90934,deer\n90935,deer\n90936,horse\n90937,horse\n90938,ship\n90939,deer\n90940,deer\n90941,truck\n90942,bird\n90943,horse\n90944,ship\n90945,cat\n90946,ship\n90947,cat\n90948,frog\n90949,truck\n90950,ship\n90951,cat\n90952,ship\n90953,truck\n90954,bird\n90955,frog\n90956,dog\n90957,horse\n90958,bird\n90959,deer\n90960,deer\n90961,airplane\n90962,cat\n90963,dog\n90964,frog\n90965,horse\n90966,ship\n90967,cat\n90968,dog\n90969,bird\n90970,deer\n90971,horse\n90972,horse\n90973,bird\n90974,deer\n90975,dog\n90976,deer\n90977,deer\n90978,horse\n90979,airplane\n90980,bird\n90981,bird\n90982,frog\n90983,horse\n90984,deer\n90985,frog\n90986,horse\n90987,airplane\n90988,cat\n90989,cat\n90990,deer\n90991,ship\n90992,dog\n90993,ship\n90994,deer\n90995,bird\n90996,bird\n90997,ship\n90998,frog\n90999,truck\n91000,bird\n91001,frog\n91002,dog\n91003,ship\n91004,truck\n91005,cat\n91006,bird\n91007,cat\n91008,automobile\n91009,dog\n91010,airplane\n91011,airplane\n91012,horse\n91013,cat\n91014,ship\n91015,dog\n91016,frog\n91017,horse\n91018,deer\n91019,deer\n91020,deer\n91021,bird\n91022,airplane\n91023,bird\n91024,bird\n91025,cat\n91026,deer\n91027,deer\n91028,frog\n91029,bird\n91030,deer\n91031,ship\n91032,automobile\n91033,ship\n91034,ship\n91035,dog\n91036,cat\n91037,automobile\n91038,deer\n91039,airplane\n91040,dog\n91041,frog\n91042,ship\n91043,frog\n91044,horse\n91045,frog\n91046,airplane\n91047,truck\n91048,dog\n91049,airplane\n91050,ship\n91051,truck\n91052,airplane\n91053,deer\n91054,truck\n91055,deer\n91056,bird\n91057,ship\n91058,cat\n91059,airplane\n91060,ship\n91061,horse\n91062,horse\n91063,cat\n91064,airplane\n91065,frog\n91066,deer\n91067,deer\n91068,bird\n91069,frog\n91070,truck\n91071,cat\n91072,dog\n91073,horse\n91074,deer\n91075,cat\n91076,bird\n91077,automobile\n91078,automobile\n91079,airplane\n91080,ship\n91081,horse\n91082,airplane\n91083,horse\n91084,deer\n91085,deer\n91086,deer\n91087,ship\n91088,horse\n91089,bird\n91090,bird\n91091,dog\n91092,cat\n91093,airplane\n91094,airplane\n91095,bird\n91096,automobile\n91097,frog\n91098,cat\n91099,cat\n91100,truck\n91101,automobile\n91102,deer\n91103,horse\n91104,dog\n91105,horse\n91106,truck\n91107,frog\n91108,airplane\n91109,airplane\n91110,deer\n91111,deer\n91112,airplane\n91113,truck\n91114,bird\n91115,dog\n91116,cat\n91117,dog\n91118,horse\n91119,cat\n91120,deer\n91121,deer\n91122,deer\n91123,deer\n91124,automobile\n91125,horse\n91126,truck\n91127,cat\n91128,automobile\n91129,deer\n91130,deer\n91131,cat\n91132,cat\n91133,frog\n91134,frog\n91135,bird\n91136,dog\n91137,bird\n91138,frog\n91139,cat\n91140,airplane\n91141,truck\n91142,truck\n91143,dog\n91144,dog\n91145,dog\n91146,horse\n91147,cat\n91148,frog\n91149,horse\n91150,horse\n91151,deer\n91152,deer\n91153,bird\n91154,truck\n91155,deer\n91156,cat\n91157,horse\n91158,dog\n91159,ship\n91160,airplane\n91161,truck\n91162,frog\n91163,ship\n91164,airplane\n91165,dog\n91166,deer\n91167,cat\n91168,horse\n91169,deer\n91170,frog\n91171,automobile\n91172,airplane\n91173,frog\n91174,deer\n91175,horse\n91176,deer\n91177,truck\n91178,dog\n91179,horse\n91180,deer\n91181,dog\n91182,frog\n91183,truck\n91184,dog\n91185,truck\n91186,horse\n91187,ship\n91188,deer\n91189,airplane\n91190,bird\n91191,cat\n91192,bird\n91193,deer\n91194,deer\n91195,frog\n91196,airplane\n91197,ship\n91198,deer\n91199,deer\n91200,automobile\n91201,dog\n91202,automobile\n91203,dog\n91204,deer\n91205,cat\n91206,frog\n91207,dog\n91208,airplane\n91209,bird\n91210,airplane\n91211,automobile\n91212,dog\n91213,bird\n91214,cat\n91215,frog\n91216,cat\n91217,deer\n91218,ship\n91219,ship\n91220,bird\n91221,deer\n91222,deer\n91223,airplane\n91224,horse\n91225,truck\n91226,deer\n91227,frog\n91228,cat\n91229,airplane\n91230,airplane\n91231,horse\n91232,deer\n91233,cat\n91234,horse\n91235,horse\n91236,airplane\n91237,horse\n91238,frog\n91239,horse\n91240,horse\n91241,truck\n91242,bird\n91243,dog\n91244,automobile\n91245,cat\n91246,bird\n91247,airplane\n91248,airplane\n91249,dog\n91250,deer\n91251,truck\n91252,airplane\n91253,truck\n91254,frog\n91255,automobile\n91256,cat\n91257,truck\n91258,airplane\n91259,cat\n91260,horse\n91261,ship\n91262,truck\n91263,truck\n91264,airplane\n91265,truck\n91266,airplane\n91267,frog\n91268,deer\n91269,deer\n91270,dog\n91271,truck\n91272,dog\n91273,deer\n91274,deer\n91275,truck\n91276,frog\n91277,truck\n91278,frog\n91279,ship\n91280,frog\n91281,truck\n91282,truck\n91283,horse\n91284,automobile\n91285,cat\n91286,truck\n91287,deer\n91288,cat\n91289,bird\n91290,cat\n91291,cat\n91292,cat\n91293,cat\n91294,cat\n91295,bird\n91296,cat\n91297,airplane\n91298,deer\n91299,dog\n91300,bird\n91301,truck\n91302,horse\n91303,deer\n91304,frog\n91305,horse\n91306,frog\n91307,horse\n91308,deer\n91309,airplane\n91310,ship\n91311,automobile\n91312,horse\n91313,horse\n91314,truck\n91315,cat\n91316,automobile\n91317,horse\n91318,truck\n91319,cat\n91320,truck\n91321,ship\n91322,cat\n91323,automobile\n91324,truck\n91325,truck\n91326,deer\n91327,automobile\n91328,deer\n91329,truck\n91330,bird\n91331,deer\n91332,ship\n91333,deer\n91334,automobile\n91335,dog\n91336,automobile\n91337,automobile\n91338,cat\n91339,frog\n91340,dog\n91341,automobile\n91342,truck\n91343,automobile\n91344,airplane\n91345,frog\n91346,truck\n91347,truck\n91348,deer\n91349,dog\n91350,truck\n91351,automobile\n91352,cat\n91353,horse\n91354,ship\n91355,horse\n91356,deer\n91357,cat\n91358,horse\n91359,frog\n91360,automobile\n91361,deer\n91362,deer\n91363,truck\n91364,cat\n91365,truck\n91366,ship\n91367,frog\n91368,truck\n91369,cat\n91370,frog\n91371,deer\n91372,truck\n91373,deer\n91374,deer\n91375,deer\n91376,frog\n91377,airplane\n91378,deer\n91379,deer\n91380,airplane\n91381,horse\n91382,frog\n91383,deer\n91384,ship\n91385,bird\n91386,deer\n91387,horse\n91388,frog\n91389,ship\n91390,automobile\n91391,truck\n91392,truck\n91393,deer\n91394,deer\n91395,horse\n91396,dog\n91397,truck\n91398,bird\n91399,deer\n91400,dog\n91401,deer\n91402,ship\n91403,deer\n91404,automobile\n91405,truck\n91406,frog\n91407,ship\n91408,automobile\n91409,airplane\n91410,frog\n91411,automobile\n91412,airplane\n91413,automobile\n91414,frog\n91415,frog\n91416,automobile\n91417,truck\n91418,truck\n91419,automobile\n91420,ship\n91421,bird\n91422,frog\n91423,truck\n91424,truck\n91425,deer\n91426,frog\n91427,bird\n91428,horse\n91429,frog\n91430,cat\n91431,deer\n91432,truck\n91433,cat\n91434,automobile\n91435,horse\n91436,cat\n91437,truck\n91438,deer\n91439,truck\n91440,bird\n91441,truck\n91442,deer\n91443,deer\n91444,dog\n91445,horse\n91446,truck\n91447,horse\n91448,deer\n91449,automobile\n91450,dog\n91451,ship\n91452,ship\n91453,frog\n91454,dog\n91455,dog\n91456,automobile\n91457,deer\n91458,ship\n91459,truck\n91460,automobile\n91461,cat\n91462,deer\n91463,dog\n91464,bird\n91465,deer\n91466,deer\n91467,ship\n91468,frog\n91469,automobile\n91470,bird\n91471,ship\n91472,automobile\n91473,truck\n91474,cat\n91475,automobile\n91476,frog\n91477,frog\n91478,bird\n91479,ship\n91480,cat\n91481,horse\n91482,deer\n91483,frog\n91484,horse\n91485,ship\n91486,dog\n91487,horse\n91488,horse\n91489,frog\n91490,cat\n91491,ship\n91492,truck\n91493,airplane\n91494,bird\n91495,frog\n91496,truck\n91497,deer\n91498,bird\n91499,frog\n91500,cat\n91501,ship\n91502,dog\n91503,cat\n91504,horse\n91505,dog\n91506,ship\n91507,frog\n91508,ship\n91509,dog\n91510,automobile\n91511,ship\n91512,truck\n91513,deer\n91514,bird\n91515,cat\n91516,bird\n91517,truck\n91518,cat\n91519,frog\n91520,truck\n91521,airplane\n91522,dog\n91523,airplane\n91524,bird\n91525,frog\n91526,cat\n91527,automobile\n91528,airplane\n91529,automobile\n91530,dog\n91531,ship\n91532,dog\n91533,cat\n91534,dog\n91535,cat\n91536,deer\n91537,frog\n91538,cat\n91539,deer\n91540,horse\n91541,automobile\n91542,dog\n91543,ship\n91544,deer\n91545,deer\n91546,bird\n91547,horse\n91548,cat\n91549,horse\n91550,dog\n91551,bird\n91552,frog\n91553,truck\n91554,truck\n91555,airplane\n91556,frog\n91557,dog\n91558,ship\n91559,airplane\n91560,airplane\n91561,deer\n91562,bird\n91563,ship\n91564,deer\n91565,airplane\n91566,airplane\n91567,deer\n91568,ship\n91569,deer\n91570,automobile\n91571,frog\n91572,deer\n91573,airplane\n91574,airplane\n91575,frog\n91576,ship\n91577,automobile\n91578,dog\n91579,truck\n91580,automobile\n91581,truck\n91582,deer\n91583,truck\n91584,deer\n91585,cat\n91586,automobile\n91587,cat\n91588,deer\n91589,deer\n91590,frog\n91591,automobile\n91592,bird\n91593,ship\n91594,dog\n91595,cat\n91596,bird\n91597,ship\n91598,deer\n91599,bird\n91600,cat\n91601,bird\n91602,bird\n91603,horse\n91604,automobile\n91605,airplane\n91606,deer\n91607,frog\n91608,truck\n91609,bird\n91610,horse\n91611,automobile\n91612,cat\n91613,ship\n91614,deer\n91615,airplane\n91616,truck\n91617,deer\n91618,bird\n91619,airplane\n91620,dog\n91621,airplane\n91622,dog\n91623,truck\n91624,horse\n91625,dog\n91626,airplane\n91627,cat\n91628,deer\n91629,truck\n91630,horse\n91631,airplane\n91632,horse\n91633,dog\n91634,truck\n91635,cat\n91636,truck\n91637,horse\n91638,cat\n91639,bird\n91640,airplane\n91641,deer\n91642,dog\n91643,cat\n91644,cat\n91645,truck\n91646,ship\n91647,truck\n91648,deer\n91649,truck\n91650,dog\n91651,horse\n91652,horse\n91653,deer\n91654,deer\n91655,truck\n91656,airplane\n91657,deer\n91658,bird\n91659,truck\n91660,dog\n91661,automobile\n91662,ship\n91663,deer\n91664,deer\n91665,bird\n91666,deer\n91667,deer\n91668,horse\n91669,truck\n91670,frog\n91671,dog\n91672,airplane\n91673,automobile\n91674,airplane\n91675,frog\n91676,dog\n91677,horse\n91678,frog\n91679,dog\n91680,airplane\n91681,frog\n91682,deer\n91683,automobile\n91684,deer\n91685,deer\n91686,horse\n91687,cat\n91688,dog\n91689,dog\n91690,deer\n91691,airplane\n91692,deer\n91693,automobile\n91694,dog\n91695,ship\n91696,cat\n91697,automobile\n91698,automobile\n91699,dog\n91700,cat\n91701,frog\n91702,deer\n91703,ship\n91704,horse\n91705,airplane\n91706,cat\n91707,cat\n91708,deer\n91709,cat\n91710,airplane\n91711,airplane\n91712,airplane\n91713,horse\n91714,deer\n91715,dog\n91716,deer\n91717,cat\n91718,truck\n91719,truck\n91720,bird\n91721,cat\n91722,truck\n91723,horse\n91724,bird\n91725,dog\n91726,horse\n91727,truck\n91728,automobile\n91729,airplane\n91730,deer\n91731,ship\n91732,dog\n91733,cat\n91734,cat\n91735,bird\n91736,automobile\n91737,ship\n91738,ship\n91739,bird\n91740,bird\n91741,airplane\n91742,ship\n91743,ship\n91744,cat\n91745,cat\n91746,frog\n91747,deer\n91748,frog\n91749,deer\n91750,dog\n91751,airplane\n91752,bird\n91753,cat\n91754,dog\n91755,deer\n91756,truck\n91757,frog\n91758,dog\n91759,frog\n91760,automobile\n91761,truck\n91762,bird\n91763,airplane\n91764,automobile\n91765,ship\n91766,bird\n91767,deer\n91768,automobile\n91769,bird\n91770,airplane\n91771,frog\n91772,bird\n91773,airplane\n91774,automobile\n91775,truck\n91776,truck\n91777,truck\n91778,ship\n91779,frog\n91780,frog\n91781,bird\n91782,cat\n91783,deer\n91784,automobile\n91785,frog\n91786,deer\n91787,ship\n91788,truck\n91789,truck\n91790,horse\n91791,ship\n91792,automobile\n91793,horse\n91794,deer\n91795,frog\n91796,airplane\n91797,frog\n91798,truck\n91799,deer\n91800,horse\n91801,dog\n91802,dog\n91803,truck\n91804,frog\n91805,airplane\n91806,deer\n91807,truck\n91808,frog\n91809,ship\n91810,cat\n91811,horse\n91812,frog\n91813,bird\n91814,frog\n91815,deer\n91816,automobile\n91817,cat\n91818,ship\n91819,truck\n91820,bird\n91821,automobile\n91822,deer\n91823,cat\n91824,deer\n91825,cat\n91826,frog\n91827,deer\n91828,deer\n91829,frog\n91830,deer\n91831,automobile\n91832,airplane\n91833,dog\n91834,dog\n91835,horse\n91836,truck\n91837,horse\n91838,bird\n91839,dog\n91840,bird\n91841,truck\n91842,ship\n91843,horse\n91844,ship\n91845,cat\n91846,cat\n91847,truck\n91848,truck\n91849,ship\n91850,truck\n91851,dog\n91852,truck\n91853,airplane\n91854,horse\n91855,deer\n91856,horse\n91857,frog\n91858,frog\n91859,deer\n91860,cat\n91861,cat\n91862,ship\n91863,truck\n91864,ship\n91865,truck\n91866,cat\n91867,truck\n91868,horse\n91869,cat\n91870,automobile\n91871,cat\n91872,cat\n91873,horse\n91874,bird\n91875,bird\n91876,horse\n91877,cat\n91878,dog\n91879,dog\n91880,deer\n91881,ship\n91882,airplane\n91883,ship\n91884,automobile\n91885,horse\n91886,cat\n91887,frog\n91888,airplane\n91889,cat\n91890,frog\n91891,bird\n91892,ship\n91893,airplane\n91894,automobile\n91895,airplane\n91896,horse\n91897,bird\n91898,truck\n91899,cat\n91900,deer\n91901,cat\n91902,frog\n91903,horse\n91904,bird\n91905,dog\n91906,automobile\n91907,cat\n91908,deer\n91909,bird\n91910,airplane\n91911,deer\n91912,deer\n91913,deer\n91914,airplane\n91915,cat\n91916,bird\n91917,bird\n91918,cat\n91919,ship\n91920,airplane\n91921,truck\n91922,automobile\n91923,deer\n91924,automobile\n91925,horse\n91926,truck\n91927,frog\n91928,bird\n91929,deer\n91930,deer\n91931,horse\n91932,deer\n91933,ship\n91934,deer\n91935,airplane\n91936,dog\n91937,cat\n91938,bird\n91939,cat\n91940,frog\n91941,truck\n91942,dog\n91943,automobile\n91944,deer\n91945,deer\n91946,ship\n91947,deer\n91948,airplane\n91949,bird\n91950,frog\n91951,horse\n91952,dog\n91953,airplane\n91954,frog\n91955,horse\n91956,deer\n91957,cat\n91958,dog\n91959,cat\n91960,horse\n91961,ship\n91962,bird\n91963,airplane\n91964,truck\n91965,deer\n91966,deer\n91967,deer\n91968,frog\n91969,frog\n91970,frog\n91971,deer\n91972,ship\n91973,deer\n91974,cat\n91975,truck\n91976,deer\n91977,dog\n91978,cat\n91979,cat\n91980,dog\n91981,frog\n91982,horse\n91983,dog\n91984,dog\n91985,truck\n91986,ship\n91987,horse\n91988,bird\n91989,cat\n91990,deer\n91991,airplane\n91992,horse\n91993,airplane\n91994,frog\n91995,frog\n91996,airplane\n91997,bird\n91998,airplane\n91999,ship\n92000,bird\n92001,frog\n92002,frog\n92003,automobile\n92004,frog\n92005,cat\n92006,dog\n92007,cat\n92008,dog\n92009,automobile\n92010,frog\n92011,frog\n92012,cat\n92013,horse\n92014,cat\n92015,ship\n92016,truck\n92017,bird\n92018,deer\n92019,airplane\n92020,cat\n92021,horse\n92022,cat\n92023,cat\n92024,truck\n92025,horse\n92026,truck\n92027,deer\n92028,automobile\n92029,ship\n92030,horse\n92031,dog\n92032,dog\n92033,cat\n92034,ship\n92035,bird\n92036,dog\n92037,frog\n92038,frog\n92039,deer\n92040,dog\n92041,horse\n92042,ship\n92043,ship\n92044,cat\n92045,truck\n92046,airplane\n92047,deer\n92048,deer\n92049,dog\n92050,bird\n92051,bird\n92052,deer\n92053,automobile\n92054,airplane\n92055,cat\n92056,truck\n92057,cat\n92058,frog\n92059,cat\n92060,dog\n92061,dog\n92062,airplane\n92063,truck\n92064,deer\n92065,deer\n92066,cat\n92067,bird\n92068,ship\n92069,bird\n92070,cat\n92071,deer\n92072,airplane\n92073,cat\n92074,deer\n92075,frog\n92076,bird\n92077,truck\n92078,frog\n92079,dog\n92080,deer\n92081,frog\n92082,frog\n92083,cat\n92084,bird\n92085,horse\n92086,deer\n92087,horse\n92088,airplane\n92089,ship\n92090,cat\n92091,frog\n92092,truck\n92093,dog\n92094,airplane\n92095,deer\n92096,deer\n92097,dog\n92098,airplane\n92099,cat\n92100,automobile\n92101,ship\n92102,deer\n92103,bird\n92104,dog\n92105,ship\n92106,cat\n92107,horse\n92108,automobile\n92109,deer\n92110,airplane\n92111,cat\n92112,frog\n92113,bird\n92114,bird\n92115,frog\n92116,airplane\n92117,automobile\n92118,horse\n92119,frog\n92120,ship\n92121,horse\n92122,dog\n92123,deer\n92124,deer\n92125,deer\n92126,automobile\n92127,frog\n92128,airplane\n92129,horse\n92130,ship\n92131,cat\n92132,cat\n92133,cat\n92134,truck\n92135,deer\n92136,deer\n92137,deer\n92138,cat\n92139,cat\n92140,cat\n92141,truck\n92142,ship\n92143,horse\n92144,bird\n92145,airplane\n92146,truck\n92147,horse\n92148,horse\n92149,airplane\n92150,cat\n92151,dog\n92152,ship\n92153,deer\n92154,dog\n92155,bird\n92156,deer\n92157,frog\n92158,dog\n92159,horse\n92160,frog\n92161,deer\n92162,ship\n92163,bird\n92164,bird\n92165,ship\n92166,ship\n92167,dog\n92168,airplane\n92169,airplane\n92170,deer\n92171,frog\n92172,automobile\n92173,deer\n92174,cat\n92175,deer\n92176,frog\n92177,automobile\n92178,deer\n92179,deer\n92180,dog\n92181,frog\n92182,deer\n92183,cat\n92184,horse\n92185,ship\n92186,deer\n92187,deer\n92188,deer\n92189,dog\n92190,dog\n92191,automobile\n92192,dog\n92193,dog\n92194,frog\n92195,frog\n92196,cat\n92197,truck\n92198,deer\n92199,airplane\n92200,deer\n92201,dog\n92202,dog\n92203,truck\n92204,frog\n92205,cat\n92206,deer\n92207,automobile\n92208,automobile\n92209,cat\n92210,airplane\n92211,deer\n92212,frog\n92213,deer\n92214,deer\n92215,horse\n92216,frog\n92217,deer\n92218,bird\n92219,automobile\n92220,airplane\n92221,dog\n92222,cat\n92223,cat\n92224,bird\n92225,bird\n92226,frog\n92227,ship\n92228,deer\n92229,horse\n92230,dog\n92231,ship\n92232,deer\n92233,frog\n92234,ship\n92235,deer\n92236,cat\n92237,cat\n92238,dog\n92239,dog\n92240,frog\n92241,cat\n92242,ship\n92243,dog\n92244,cat\n92245,horse\n92246,cat\n92247,automobile\n92248,dog\n92249,frog\n92250,frog\n92251,ship\n92252,automobile\n92253,airplane\n92254,cat\n92255,horse\n92256,airplane\n92257,frog\n92258,ship\n92259,deer\n92260,bird\n92261,bird\n92262,deer\n92263,airplane\n92264,automobile\n92265,ship\n92266,automobile\n92267,dog\n92268,automobile\n92269,frog\n92270,airplane\n92271,dog\n92272,bird\n92273,horse\n92274,deer\n92275,dog\n92276,bird\n92277,truck\n92278,airplane\n92279,frog\n92280,bird\n92281,dog\n92282,cat\n92283,airplane\n92284,cat\n92285,frog\n92286,frog\n92287,cat\n92288,cat\n92289,automobile\n92290,frog\n92291,truck\n92292,deer\n92293,frog\n92294,deer\n92295,ship\n92296,cat\n92297,horse\n92298,airplane\n92299,ship\n92300,frog\n92301,horse\n92302,cat\n92303,horse\n92304,frog\n92305,frog\n92306,horse\n92307,frog\n92308,airplane\n92309,airplane\n92310,cat\n92311,ship\n92312,airplane\n92313,bird\n92314,bird\n92315,bird\n92316,automobile\n92317,deer\n92318,frog\n92319,bird\n92320,automobile\n92321,cat\n92322,airplane\n92323,dog\n92324,horse\n92325,horse\n92326,deer\n92327,frog\n92328,cat\n92329,dog\n92330,horse\n92331,deer\n92332,airplane\n92333,frog\n92334,cat\n92335,dog\n92336,frog\n92337,dog\n92338,truck\n92339,dog\n92340,deer\n92341,cat\n92342,cat\n92343,frog\n92344,horse\n92345,frog\n92346,dog\n92347,automobile\n92348,frog\n92349,airplane\n92350,dog\n92351,horse\n92352,deer\n92353,ship\n92354,automobile\n92355,frog\n92356,dog\n92357,bird\n92358,cat\n92359,horse\n92360,truck\n92361,cat\n92362,automobile\n92363,cat\n92364,automobile\n92365,deer\n92366,truck\n92367,deer\n92368,cat\n92369,dog\n92370,dog\n92371,horse\n92372,cat\n92373,airplane\n92374,ship\n92375,truck\n92376,truck\n92377,bird\n92378,automobile\n92379,deer\n92380,truck\n92381,deer\n92382,truck\n92383,cat\n92384,dog\n92385,frog\n92386,airplane\n92387,cat\n92388,airplane\n92389,horse\n92390,cat\n92391,ship\n92392,horse\n92393,frog\n92394,automobile\n92395,dog\n92396,automobile\n92397,horse\n92398,ship\n92399,cat\n92400,automobile\n92401,frog\n92402,truck\n92403,ship\n92404,deer\n92405,ship\n92406,frog\n92407,bird\n92408,horse\n92409,dog\n92410,deer\n92411,frog\n92412,frog\n92413,truck\n92414,automobile\n92415,truck\n92416,deer\n92417,automobile\n92418,frog\n92419,bird\n92420,airplane\n92421,horse\n92422,airplane\n92423,deer\n92424,automobile\n92425,ship\n92426,frog\n92427,airplane\n92428,ship\n92429,bird\n92430,horse\n92431,frog\n92432,deer\n92433,cat\n92434,automobile\n92435,horse\n92436,bird\n92437,bird\n92438,truck\n92439,deer\n92440,airplane\n92441,truck\n92442,ship\n92443,deer\n92444,ship\n92445,deer\n92446,deer\n92447,dog\n92448,cat\n92449,ship\n92450,airplane\n92451,deer\n92452,automobile\n92453,cat\n92454,horse\n92455,horse\n92456,truck\n92457,ship\n92458,bird\n92459,horse\n92460,truck\n92461,deer\n92462,horse\n92463,frog\n92464,automobile\n92465,cat\n92466,truck\n92467,frog\n92468,deer\n92469,bird\n92470,cat\n92471,airplane\n92472,automobile\n92473,cat\n92474,dog\n92475,dog\n92476,horse\n92477,automobile\n92478,dog\n92479,cat\n92480,cat\n92481,automobile\n92482,airplane\n92483,horse\n92484,automobile\n92485,automobile\n92486,cat\n92487,cat\n92488,frog\n92489,automobile\n92490,ship\n92491,airplane\n92492,airplane\n92493,truck\n92494,cat\n92495,bird\n92496,frog\n92497,bird\n92498,automobile\n92499,truck\n92500,dog\n92501,cat\n92502,ship\n92503,frog\n92504,horse\n92505,frog\n92506,deer\n92507,dog\n92508,deer\n92509,truck\n92510,deer\n92511,automobile\n92512,cat\n92513,truck\n92514,bird\n92515,bird\n92516,horse\n92517,frog\n92518,cat\n92519,deer\n92520,horse\n92521,truck\n92522,automobile\n92523,deer\n92524,horse\n92525,dog\n92526,bird\n92527,automobile\n92528,cat\n92529,frog\n92530,dog\n92531,ship\n92532,ship\n92533,truck\n92534,frog\n92535,horse\n92536,automobile\n92537,ship\n92538,frog\n92539,cat\n92540,dog\n92541,truck\n92542,cat\n92543,frog\n92544,frog\n92545,horse\n92546,bird\n92547,deer\n92548,cat\n92549,bird\n92550,automobile\n92551,airplane\n92552,cat\n92553,horse\n92554,deer\n92555,cat\n92556,truck\n92557,frog\n92558,frog\n92559,automobile\n92560,truck\n92561,deer\n92562,frog\n92563,ship\n92564,cat\n92565,cat\n92566,truck\n92567,ship\n92568,ship\n92569,airplane\n92570,airplane\n92571,frog\n92572,bird\n92573,cat\n92574,ship\n92575,dog\n92576,dog\n92577,deer\n92578,airplane\n92579,dog\n92580,cat\n92581,airplane\n92582,horse\n92583,truck\n92584,horse\n92585,horse\n92586,cat\n92587,frog\n92588,automobile\n92589,deer\n92590,bird\n92591,cat\n92592,automobile\n92593,frog\n92594,horse\n92595,truck\n92596,ship\n92597,airplane\n92598,bird\n92599,airplane\n92600,airplane\n92601,truck\n92602,frog\n92603,cat\n92604,ship\n92605,bird\n92606,frog\n92607,deer\n92608,truck\n92609,dog\n92610,horse\n92611,horse\n92612,dog\n92613,dog\n92614,dog\n92615,deer\n92616,automobile\n92617,horse\n92618,airplane\n92619,frog\n92620,cat\n92621,frog\n92622,cat\n92623,airplane\n92624,automobile\n92625,airplane\n92626,deer\n92627,cat\n92628,frog\n92629,dog\n92630,automobile\n92631,horse\n92632,deer\n92633,automobile\n92634,horse\n92635,ship\n92636,ship\n92637,frog\n92638,airplane\n92639,airplane\n92640,frog\n92641,airplane\n92642,deer\n92643,horse\n92644,airplane\n92645,deer\n92646,automobile\n92647,frog\n92648,automobile\n92649,dog\n92650,dog\n92651,deer\n92652,airplane\n92653,deer\n92654,truck\n92655,frog\n92656,frog\n92657,bird\n92658,frog\n92659,ship\n92660,cat\n92661,cat\n92662,airplane\n92663,cat\n92664,bird\n92665,cat\n92666,deer\n92667,cat\n92668,cat\n92669,ship\n92670,cat\n92671,truck\n92672,airplane\n92673,airplane\n92674,deer\n92675,deer\n92676,cat\n92677,airplane\n92678,truck\n92679,ship\n92680,horse\n92681,frog\n92682,deer\n92683,bird\n92684,automobile\n92685,dog\n92686,frog\n92687,ship\n92688,ship\n92689,dog\n92690,ship\n92691,deer\n92692,dog\n92693,cat\n92694,truck\n92695,truck\n92696,airplane\n92697,horse\n92698,cat\n92699,automobile\n92700,truck\n92701,truck\n92702,frog\n92703,deer\n92704,frog\n92705,cat\n92706,airplane\n92707,dog\n92708,deer\n92709,frog\n92710,cat\n92711,airplane\n92712,frog\n92713,cat\n92714,bird\n92715,frog\n92716,frog\n92717,airplane\n92718,truck\n92719,ship\n92720,horse\n92721,ship\n92722,frog\n92723,airplane\n92724,airplane\n92725,deer\n92726,airplane\n92727,dog\n92728,cat\n92729,truck\n92730,automobile\n92731,ship\n92732,horse\n92733,cat\n92734,deer\n92735,dog\n92736,bird\n92737,cat\n92738,bird\n92739,automobile\n92740,automobile\n92741,ship\n92742,horse\n92743,airplane\n92744,ship\n92745,horse\n92746,cat\n92747,airplane\n92748,ship\n92749,frog\n92750,automobile\n92751,airplane\n92752,deer\n92753,airplane\n92754,cat\n92755,dog\n92756,deer\n92757,frog\n92758,airplane\n92759,ship\n92760,ship\n92761,frog\n92762,horse\n92763,cat\n92764,bird\n92765,dog\n92766,truck\n92767,truck\n92768,horse\n92769,cat\n92770,truck\n92771,bird\n92772,ship\n92773,dog\n92774,ship\n92775,frog\n92776,deer\n92777,deer\n92778,airplane\n92779,truck\n92780,ship\n92781,frog\n92782,frog\n92783,frog\n92784,automobile\n92785,frog\n92786,bird\n92787,deer\n92788,cat\n92789,bird\n92790,airplane\n92791,dog\n92792,frog\n92793,truck\n92794,frog\n92795,ship\n92796,airplane\n92797,truck\n92798,ship\n92799,cat\n92800,truck\n92801,frog\n92802,truck\n92803,bird\n92804,truck\n92805,cat\n92806,dog\n92807,truck\n92808,deer\n92809,bird\n92810,dog\n92811,horse\n92812,truck\n92813,frog\n92814,horse\n92815,automobile\n92816,airplane\n92817,bird\n92818,cat\n92819,airplane\n92820,dog\n92821,deer\n92822,dog\n92823,horse\n92824,horse\n92825,dog\n92826,dog\n92827,bird\n92828,automobile\n92829,deer\n92830,horse\n92831,bird\n92832,horse\n92833,frog\n92834,truck\n92835,automobile\n92836,bird\n92837,dog\n92838,horse\n92839,ship\n92840,cat\n92841,deer\n92842,horse\n92843,dog\n92844,deer\n92845,dog\n92846,deer\n92847,dog\n92848,ship\n92849,airplane\n92850,frog\n92851,cat\n92852,ship\n92853,automobile\n92854,ship\n92855,automobile\n92856,dog\n92857,truck\n92858,airplane\n92859,horse\n92860,dog\n92861,dog\n92862,airplane\n92863,ship\n92864,deer\n92865,frog\n92866,dog\n92867,cat\n92868,automobile\n92869,airplane\n92870,deer\n92871,truck\n92872,cat\n92873,truck\n92874,horse\n92875,dog\n92876,frog\n92877,truck\n92878,airplane\n92879,ship\n92880,horse\n92881,cat\n92882,frog\n92883,bird\n92884,bird\n92885,truck\n92886,ship\n92887,truck\n92888,horse\n92889,cat\n92890,frog\n92891,airplane\n92892,cat\n92893,dog\n92894,automobile\n92895,airplane\n92896,deer\n92897,bird\n92898,deer\n92899,dog\n92900,dog\n92901,deer\n92902,dog\n92903,dog\n92904,truck\n92905,bird\n92906,cat\n92907,airplane\n92908,truck\n92909,dog\n92910,cat\n92911,cat\n92912,truck\n92913,deer\n92914,automobile\n92915,truck\n92916,deer\n92917,deer\n92918,cat\n92919,cat\n92920,ship\n92921,truck\n92922,deer\n92923,airplane\n92924,dog\n92925,deer\n92926,dog\n92927,airplane\n92928,automobile\n92929,deer\n92930,airplane\n92931,deer\n92932,dog\n92933,airplane\n92934,frog\n92935,horse\n92936,dog\n92937,bird\n92938,dog\n92939,frog\n92940,cat\n92941,bird\n92942,deer\n92943,cat\n92944,cat\n92945,frog\n92946,automobile\n92947,cat\n92948,automobile\n92949,cat\n92950,ship\n92951,dog\n92952,bird\n92953,deer\n92954,airplane\n92955,bird\n92956,ship\n92957,frog\n92958,horse\n92959,cat\n92960,dog\n92961,dog\n92962,airplane\n92963,cat\n92964,bird\n92965,ship\n92966,ship\n92967,truck\n92968,horse\n92969,frog\n92970,frog\n92971,cat\n92972,horse\n92973,bird\n92974,horse\n92975,horse\n92976,bird\n92977,frog\n92978,dog\n92979,truck\n92980,deer\n92981,ship\n92982,cat\n92983,frog\n92984,bird\n92985,automobile\n92986,dog\n92987,bird\n92988,horse\n92989,horse\n92990,truck\n92991,automobile\n92992,cat\n92993,cat\n92994,frog\n92995,automobile\n92996,automobile\n92997,truck\n92998,cat\n92999,airplane\n93000,cat\n93001,horse\n93002,cat\n93003,dog\n93004,dog\n93005,automobile\n93006,deer\n93007,automobile\n93008,cat\n93009,automobile\n93010,frog\n93011,truck\n93012,deer\n93013,automobile\n93014,horse\n93015,airplane\n93016,truck\n93017,truck\n93018,cat\n93019,frog\n93020,bird\n93021,ship\n93022,deer\n93023,airplane\n93024,deer\n93025,horse\n93026,frog\n93027,cat\n93028,bird\n93029,bird\n93030,horse\n93031,cat\n93032,truck\n93033,deer\n93034,cat\n93035,dog\n93036,cat\n93037,cat\n93038,frog\n93039,dog\n93040,cat\n93041,cat\n93042,cat\n93043,horse\n93044,dog\n93045,deer\n93046,truck\n93047,cat\n93048,dog\n93049,frog\n93050,ship\n93051,horse\n93052,bird\n93053,deer\n93054,cat\n93055,dog\n93056,ship\n93057,dog\n93058,deer\n93059,cat\n93060,ship\n93061,ship\n93062,frog\n93063,horse\n93064,airplane\n93065,ship\n93066,airplane\n93067,horse\n93068,deer\n93069,deer\n93070,cat\n93071,airplane\n93072,deer\n93073,bird\n93074,deer\n93075,deer\n93076,horse\n93077,airplane\n93078,horse\n93079,horse\n93080,bird\n93081,ship\n93082,automobile\n93083,automobile\n93084,airplane\n93085,ship\n93086,ship\n93087,automobile\n93088,automobile\n93089,horse\n93090,automobile\n93091,dog\n93092,cat\n93093,bird\n93094,cat\n93095,frog\n93096,horse\n93097,dog\n93098,cat\n93099,truck\n93100,airplane\n93101,truck\n93102,cat\n93103,truck\n93104,deer\n93105,airplane\n93106,frog\n93107,automobile\n93108,bird\n93109,truck\n93110,airplane\n93111,ship\n93112,truck\n93113,cat\n93114,cat\n93115,dog\n93116,deer\n93117,horse\n93118,bird\n93119,automobile\n93120,frog\n93121,ship\n93122,deer\n93123,truck\n93124,deer\n93125,truck\n93126,airplane\n93127,frog\n93128,bird\n93129,cat\n93130,dog\n93131,frog\n93132,cat\n93133,truck\n93134,cat\n93135,deer\n93136,frog\n93137,deer\n93138,horse\n93139,airplane\n93140,truck\n93141,airplane\n93142,airplane\n93143,airplane\n93144,cat\n93145,ship\n93146,automobile\n93147,truck\n93148,automobile\n93149,ship\n93150,dog\n93151,cat\n93152,ship\n93153,frog\n93154,truck\n93155,truck\n93156,airplane\n93157,dog\n93158,dog\n93159,automobile\n93160,dog\n93161,airplane\n93162,ship\n93163,dog\n93164,deer\n93165,bird\n93166,cat\n93167,cat\n93168,bird\n93169,cat\n93170,dog\n93171,bird\n93172,airplane\n93173,cat\n93174,bird\n93175,cat\n93176,truck\n93177,ship\n93178,cat\n93179,cat\n93180,horse\n93181,bird\n93182,automobile\n93183,cat\n93184,frog\n93185,cat\n93186,frog\n93187,airplane\n93188,cat\n93189,airplane\n93190,ship\n93191,horse\n93192,cat\n93193,deer\n93194,bird\n93195,horse\n93196,cat\n93197,cat\n93198,airplane\n93199,airplane\n93200,truck\n93201,dog\n93202,bird\n93203,cat\n93204,truck\n93205,dog\n93206,deer\n93207,truck\n93208,deer\n93209,deer\n93210,dog\n93211,airplane\n93212,cat\n93213,horse\n93214,automobile\n93215,deer\n93216,cat\n93217,bird\n93218,airplane\n93219,horse\n93220,truck\n93221,dog\n93222,dog\n93223,deer\n93224,deer\n93225,dog\n93226,ship\n93227,cat\n93228,cat\n93229,cat\n93230,dog\n93231,airplane\n93232,deer\n93233,cat\n93234,dog\n93235,ship\n93236,dog\n93237,dog\n93238,automobile\n93239,dog\n93240,cat\n93241,frog\n93242,cat\n93243,horse\n93244,truck\n93245,automobile\n93246,automobile\n93247,cat\n93248,bird\n93249,ship\n93250,automobile\n93251,horse\n93252,frog\n93253,bird\n93254,deer\n93255,truck\n93256,horse\n93257,deer\n93258,horse\n93259,dog\n93260,frog\n93261,airplane\n93262,deer\n93263,automobile\n93264,bird\n93265,automobile\n93266,ship\n93267,frog\n93268,deer\n93269,horse\n93270,horse\n93271,deer\n93272,cat\n93273,horse\n93274,ship\n93275,dog\n93276,deer\n93277,horse\n93278,frog\n93279,ship\n93280,automobile\n93281,truck\n93282,airplane\n93283,cat\n93284,ship\n93285,cat\n93286,deer\n93287,automobile\n93288,ship\n93289,truck\n93290,ship\n93291,airplane\n93292,frog\n93293,dog\n93294,airplane\n93295,truck\n93296,automobile\n93297,truck\n93298,deer\n93299,airplane\n93300,frog\n93301,deer\n93302,truck\n93303,airplane\n93304,horse\n93305,deer\n93306,airplane\n93307,deer\n93308,deer\n93309,deer\n93310,dog\n93311,dog\n93312,bird\n93313,truck\n93314,bird\n93315,horse\n93316,cat\n93317,cat\n93318,bird\n93319,dog\n93320,frog\n93321,horse\n93322,cat\n93323,deer\n93324,truck\n93325,deer\n93326,cat\n93327,horse\n93328,horse\n93329,ship\n93330,truck\n93331,frog\n93332,automobile\n93333,frog\n93334,cat\n93335,ship\n93336,truck\n93337,horse\n93338,bird\n93339,automobile\n93340,deer\n93341,airplane\n93342,cat\n93343,automobile\n93344,horse\n93345,ship\n93346,automobile\n93347,deer\n93348,frog\n93349,automobile\n93350,dog\n93351,cat\n93352,ship\n93353,cat\n93354,ship\n93355,horse\n93356,dog\n93357,truck\n93358,bird\n93359,truck\n93360,bird\n93361,frog\n93362,truck\n93363,dog\n93364,truck\n93365,dog\n93366,ship\n93367,airplane\n93368,airplane\n93369,airplane\n93370,cat\n93371,frog\n93372,horse\n93373,truck\n93374,bird\n93375,dog\n93376,frog\n93377,truck\n93378,horse\n93379,truck\n93380,dog\n93381,truck\n93382,truck\n93383,dog\n93384,ship\n93385,ship\n93386,airplane\n93387,dog\n93388,airplane\n93389,frog\n93390,airplane\n93391,horse\n93392,deer\n93393,bird\n93394,automobile\n93395,ship\n93396,airplane\n93397,deer\n93398,cat\n93399,truck\n93400,deer\n93401,deer\n93402,truck\n93403,bird\n93404,deer\n93405,automobile\n93406,deer\n93407,deer\n93408,frog\n93409,deer\n93410,frog\n93411,ship\n93412,airplane\n93413,automobile\n93414,ship\n93415,deer\n93416,cat\n93417,cat\n93418,ship\n93419,airplane\n93420,dog\n93421,truck\n93422,ship\n93423,ship\n93424,automobile\n93425,horse\n93426,cat\n93427,bird\n93428,horse\n93429,cat\n93430,deer\n93431,cat\n93432,deer\n93433,horse\n93434,automobile\n93435,truck\n93436,cat\n93437,automobile\n93438,horse\n93439,dog\n93440,airplane\n93441,frog\n93442,airplane\n93443,deer\n93444,deer\n93445,bird\n93446,cat\n93447,airplane\n93448,truck\n93449,dog\n93450,ship\n93451,dog\n93452,frog\n93453,horse\n93454,cat\n93455,deer\n93456,ship\n93457,bird\n93458,cat\n93459,cat\n93460,deer\n93461,frog\n93462,cat\n93463,airplane\n93464,automobile\n93465,deer\n93466,ship\n93467,cat\n93468,deer\n93469,dog\n93470,airplane\n93471,truck\n93472,dog\n93473,airplane\n93474,automobile\n93475,cat\n93476,horse\n93477,horse\n93478,horse\n93479,deer\n93480,frog\n93481,deer\n93482,cat\n93483,cat\n93484,bird\n93485,cat\n93486,horse\n93487,ship\n93488,cat\n93489,truck\n93490,cat\n93491,horse\n93492,dog\n93493,frog\n93494,truck\n93495,cat\n93496,airplane\n93497,frog\n93498,cat\n93499,airplane\n93500,bird\n93501,horse\n93502,automobile\n93503,automobile\n93504,deer\n93505,cat\n93506,cat\n93507,truck\n93508,horse\n93509,truck\n93510,dog\n93511,horse\n93512,airplane\n93513,frog\n93514,deer\n93515,bird\n93516,bird\n93517,frog\n93518,truck\n93519,bird\n93520,truck\n93521,dog\n93522,airplane\n93523,bird\n93524,bird\n93525,deer\n93526,horse\n93527,automobile\n93528,automobile\n93529,frog\n93530,deer\n93531,horse\n93532,bird\n93533,dog\n93534,bird\n93535,bird\n93536,bird\n93537,ship\n93538,airplane\n93539,ship\n93540,automobile\n93541,deer\n93542,automobile\n93543,dog\n93544,automobile\n93545,airplane\n93546,frog\n93547,truck\n93548,truck\n93549,frog\n93550,truck\n93551,truck\n93552,frog\n93553,cat\n93554,automobile\n93555,deer\n93556,cat\n93557,airplane\n93558,truck\n93559,ship\n93560,deer\n93561,airplane\n93562,horse\n93563,automobile\n93564,horse\n93565,ship\n93566,ship\n93567,horse\n93568,airplane\n93569,dog\n93570,frog\n93571,ship\n93572,deer\n93573,deer\n93574,horse\n93575,airplane\n93576,cat\n93577,deer\n93578,horse\n93579,bird\n93580,frog\n93581,horse\n93582,horse\n93583,frog\n93584,frog\n93585,deer\n93586,bird\n93587,truck\n93588,cat\n93589,cat\n93590,truck\n93591,dog\n93592,cat\n93593,bird\n93594,truck\n93595,frog\n93596,frog\n93597,truck\n93598,horse\n93599,deer\n93600,frog\n93601,bird\n93602,ship\n93603,cat\n93604,dog\n93605,truck\n93606,truck\n93607,airplane\n93608,dog\n93609,dog\n93610,automobile\n93611,bird\n93612,frog\n93613,truck\n93614,airplane\n93615,truck\n93616,cat\n93617,airplane\n93618,horse\n93619,deer\n93620,ship\n93621,frog\n93622,deer\n93623,dog\n93624,ship\n93625,airplane\n93626,bird\n93627,deer\n93628,cat\n93629,bird\n93630,frog\n93631,airplane\n93632,deer\n93633,frog\n93634,cat\n93635,automobile\n93636,automobile\n93637,ship\n93638,dog\n93639,bird\n93640,truck\n93641,horse\n93642,deer\n93643,deer\n93644,deer\n93645,bird\n93646,cat\n93647,cat\n93648,automobile\n93649,ship\n93650,frog\n93651,dog\n93652,dog\n93653,dog\n93654,cat\n93655,horse\n93656,truck\n93657,cat\n93658,horse\n93659,dog\n93660,horse\n93661,dog\n93662,airplane\n93663,cat\n93664,cat\n93665,horse\n93666,dog\n93667,deer\n93668,cat\n93669,automobile\n93670,deer\n93671,cat\n93672,frog\n93673,ship\n93674,automobile\n93675,automobile\n93676,airplane\n93677,horse\n93678,ship\n93679,cat\n93680,cat\n93681,bird\n93682,frog\n93683,bird\n93684,cat\n93685,ship\n93686,ship\n93687,automobile\n93688,frog\n93689,frog\n93690,truck\n93691,ship\n93692,truck\n93693,cat\n93694,deer\n93695,ship\n93696,deer\n93697,dog\n93698,horse\n93699,cat\n93700,deer\n93701,frog\n93702,cat\n93703,bird\n93704,horse\n93705,dog\n93706,horse\n93707,airplane\n93708,frog\n93709,frog\n93710,cat\n93711,airplane\n93712,deer\n93713,automobile\n93714,deer\n93715,horse\n93716,automobile\n93717,frog\n93718,dog\n93719,horse\n93720,frog\n93721,deer\n93722,ship\n93723,dog\n93724,frog\n93725,airplane\n93726,frog\n93727,horse\n93728,frog\n93729,truck\n93730,dog\n93731,cat\n93732,dog\n93733,bird\n93734,automobile\n93735,ship\n93736,cat\n93737,ship\n93738,automobile\n93739,deer\n93740,horse\n93741,frog\n93742,cat\n93743,bird\n93744,truck\n93745,deer\n93746,cat\n93747,automobile\n93748,deer\n93749,airplane\n93750,automobile\n93751,deer\n93752,airplane\n93753,deer\n93754,automobile\n93755,truck\n93756,dog\n93757,bird\n93758,deer\n93759,airplane\n93760,frog\n93761,cat\n93762,ship\n93763,ship\n93764,deer\n93765,horse\n93766,automobile\n93767,truck\n93768,horse\n93769,cat\n93770,horse\n93771,airplane\n93772,horse\n93773,ship\n93774,deer\n93775,deer\n93776,deer\n93777,cat\n93778,cat\n93779,dog\n93780,ship\n93781,truck\n93782,frog\n93783,frog\n93784,airplane\n93785,frog\n93786,bird\n93787,automobile\n93788,horse\n93789,frog\n93790,automobile\n93791,ship\n93792,truck\n93793,automobile\n93794,cat\n93795,frog\n93796,automobile\n93797,truck\n93798,truck\n93799,cat\n93800,frog\n93801,truck\n93802,airplane\n93803,cat\n93804,deer\n93805,automobile\n93806,frog\n93807,cat\n93808,airplane\n93809,horse\n93810,truck\n93811,dog\n93812,horse\n93813,truck\n93814,airplane\n93815,automobile\n93816,automobile\n93817,airplane\n93818,dog\n93819,deer\n93820,ship\n93821,bird\n93822,cat\n93823,frog\n93824,frog\n93825,truck\n93826,horse\n93827,ship\n93828,automobile\n93829,truck\n93830,truck\n93831,cat\n93832,bird\n93833,ship\n93834,horse\n93835,ship\n93836,truck\n93837,cat\n93838,frog\n93839,automobile\n93840,horse\n93841,deer\n93842,frog\n93843,airplane\n93844,automobile\n93845,ship\n93846,automobile\n93847,truck\n93848,dog\n93849,deer\n93850,dog\n93851,deer\n93852,frog\n93853,truck\n93854,bird\n93855,cat\n93856,airplane\n93857,ship\n93858,ship\n93859,ship\n93860,ship\n93861,ship\n93862,ship\n93863,cat\n93864,truck\n93865,frog\n93866,automobile\n93867,bird\n93868,bird\n93869,truck\n93870,deer\n93871,deer\n93872,frog\n93873,dog\n93874,truck\n93875,truck\n93876,bird\n93877,deer\n93878,frog\n93879,cat\n93880,ship\n93881,deer\n93882,automobile\n93883,truck\n93884,truck\n93885,deer\n93886,cat\n93887,cat\n93888,airplane\n93889,cat\n93890,deer\n93891,automobile\n93892,ship\n93893,horse\n93894,dog\n93895,automobile\n93896,frog\n93897,truck\n93898,deer\n93899,bird\n93900,frog\n93901,horse\n93902,cat\n93903,horse\n93904,automobile\n93905,deer\n93906,horse\n93907,dog\n93908,ship\n93909,automobile\n93910,bird\n93911,frog\n93912,airplane\n93913,dog\n93914,bird\n93915,airplane\n93916,deer\n93917,ship\n93918,bird\n93919,bird\n93920,dog\n93921,bird\n93922,frog\n93923,cat\n93924,deer\n93925,ship\n93926,deer\n93927,cat\n93928,deer\n93929,truck\n93930,ship\n93931,automobile\n93932,horse\n93933,deer\n93934,frog\n93935,horse\n93936,horse\n93937,bird\n93938,truck\n93939,horse\n93940,deer\n93941,automobile\n93942,automobile\n93943,ship\n93944,frog\n93945,dog\n93946,airplane\n93947,airplane\n93948,truck\n93949,bird\n93950,truck\n93951,frog\n93952,ship\n93953,dog\n93954,frog\n93955,deer\n93956,deer\n93957,frog\n93958,automobile\n93959,frog\n93960,automobile\n93961,bird\n93962,frog\n93963,automobile\n93964,deer\n93965,cat\n93966,bird\n93967,airplane\n93968,deer\n93969,horse\n93970,ship\n93971,deer\n93972,airplane\n93973,automobile\n93974,cat\n93975,airplane\n93976,airplane\n93977,deer\n93978,frog\n93979,truck\n93980,cat\n93981,horse\n93982,cat\n93983,horse\n93984,horse\n93985,cat\n93986,deer\n93987,bird\n93988,dog\n93989,cat\n93990,bird\n93991,automobile\n93992,truck\n93993,ship\n93994,deer\n93995,frog\n93996,deer\n93997,truck\n93998,airplane\n93999,ship\n94000,cat\n94001,dog\n94002,cat\n94003,cat\n94004,frog\n94005,truck\n94006,deer\n94007,airplane\n94008,frog\n94009,frog\n94010,dog\n94011,bird\n94012,ship\n94013,frog\n94014,bird\n94015,deer\n94016,bird\n94017,cat\n94018,frog\n94019,cat\n94020,cat\n94021,dog\n94022,ship\n94023,dog\n94024,cat\n94025,airplane\n94026,frog\n94027,truck\n94028,truck\n94029,ship\n94030,cat\n94031,deer\n94032,dog\n94033,automobile\n94034,frog\n94035,automobile\n94036,dog\n94037,deer\n94038,frog\n94039,automobile\n94040,automobile\n94041,horse\n94042,horse\n94043,truck\n94044,dog\n94045,cat\n94046,cat\n94047,cat\n94048,automobile\n94049,airplane\n94050,automobile\n94051,airplane\n94052,dog\n94053,ship\n94054,truck\n94055,bird\n94056,cat\n94057,frog\n94058,airplane\n94059,truck\n94060,airplane\n94061,truck\n94062,truck\n94063,ship\n94064,cat\n94065,truck\n94066,bird\n94067,airplane\n94068,frog\n94069,airplane\n94070,frog\n94071,deer\n94072,dog\n94073,horse\n94074,automobile\n94075,automobile\n94076,horse\n94077,cat\n94078,truck\n94079,deer\n94080,deer\n94081,bird\n94082,automobile\n94083,bird\n94084,cat\n94085,airplane\n94086,airplane\n94087,airplane\n94088,airplane\n94089,dog\n94090,frog\n94091,airplane\n94092,airplane\n94093,cat\n94094,automobile\n94095,cat\n94096,airplane\n94097,cat\n94098,horse\n94099,bird\n94100,cat\n94101,deer\n94102,ship\n94103,automobile\n94104,automobile\n94105,deer\n94106,frog\n94107,bird\n94108,cat\n94109,ship\n94110,horse\n94111,deer\n94112,automobile\n94113,cat\n94114,truck\n94115,deer\n94116,deer\n94117,truck\n94118,horse\n94119,automobile\n94120,deer\n94121,horse\n94122,cat\n94123,cat\n94124,cat\n94125,frog\n94126,horse\n94127,truck\n94128,automobile\n94129,frog\n94130,truck\n94131,frog\n94132,deer\n94133,truck\n94134,deer\n94135,bird\n94136,dog\n94137,truck\n94138,frog\n94139,deer\n94140,deer\n94141,airplane\n94142,bird\n94143,frog\n94144,deer\n94145,horse\n94146,airplane\n94147,ship\n94148,frog\n94149,dog\n94150,cat\n94151,deer\n94152,ship\n94153,airplane\n94154,ship\n94155,truck\n94156,cat\n94157,frog\n94158,horse\n94159,deer\n94160,deer\n94161,dog\n94162,deer\n94163,horse\n94164,frog\n94165,deer\n94166,frog\n94167,cat\n94168,airplane\n94169,airplane\n94170,cat\n94171,horse\n94172,bird\n94173,horse\n94174,deer\n94175,dog\n94176,horse\n94177,cat\n94178,deer\n94179,truck\n94180,bird\n94181,automobile\n94182,bird\n94183,truck\n94184,bird\n94185,cat\n94186,bird\n94187,cat\n94188,frog\n94189,deer\n94190,deer\n94191,cat\n94192,cat\n94193,deer\n94194,truck\n94195,ship\n94196,dog\n94197,automobile\n94198,bird\n94199,horse\n94200,truck\n94201,frog\n94202,bird\n94203,horse\n94204,dog\n94205,frog\n94206,horse\n94207,frog\n94208,ship\n94209,cat\n94210,deer\n94211,truck\n94212,deer\n94213,deer\n94214,ship\n94215,cat\n94216,airplane\n94217,dog\n94218,cat\n94219,deer\n94220,frog\n94221,automobile\n94222,cat\n94223,ship\n94224,horse\n94225,horse\n94226,ship\n94227,cat\n94228,bird\n94229,cat\n94230,frog\n94231,automobile\n94232,deer\n94233,frog\n94234,dog\n94235,cat\n94236,airplane\n94237,bird\n94238,deer\n94239,cat\n94240,cat\n94241,bird\n94242,airplane\n94243,ship\n94244,horse\n94245,deer\n94246,cat\n94247,dog\n94248,truck\n94249,deer\n94250,dog\n94251,horse\n94252,automobile\n94253,ship\n94254,frog\n94255,cat\n94256,cat\n94257,airplane\n94258,frog\n94259,cat\n94260,horse\n94261,dog\n94262,deer\n94263,airplane\n94264,truck\n94265,dog\n94266,horse\n94267,deer\n94268,truck\n94269,dog\n94270,bird\n94271,deer\n94272,automobile\n94273,ship\n94274,dog\n94275,deer\n94276,bird\n94277,horse\n94278,deer\n94279,deer\n94280,bird\n94281,airplane\n94282,automobile\n94283,automobile\n94284,truck\n94285,truck\n94286,cat\n94287,airplane\n94288,cat\n94289,ship\n94290,deer\n94291,horse\n94292,automobile\n94293,deer\n94294,horse\n94295,bird\n94296,horse\n94297,ship\n94298,bird\n94299,frog\n94300,frog\n94301,automobile\n94302,bird\n94303,frog\n94304,ship\n94305,bird\n94306,truck\n94307,horse\n94308,horse\n94309,deer\n94310,frog\n94311,truck\n94312,airplane\n94313,deer\n94314,deer\n94315,dog\n94316,truck\n94317,frog\n94318,ship\n94319,ship\n94320,bird\n94321,ship\n94322,automobile\n94323,bird\n94324,cat\n94325,bird\n94326,automobile\n94327,frog\n94328,ship\n94329,dog\n94330,ship\n94331,truck\n94332,frog\n94333,horse\n94334,airplane\n94335,airplane\n94336,cat\n94337,ship\n94338,airplane\n94339,airplane\n94340,deer\n94341,deer\n94342,dog\n94343,frog\n94344,airplane\n94345,bird\n94346,frog\n94347,cat\n94348,deer\n94349,bird\n94350,truck\n94351,airplane\n94352,airplane\n94353,deer\n94354,cat\n94355,frog\n94356,ship\n94357,dog\n94358,automobile\n94359,dog\n94360,truck\n94361,horse\n94362,cat\n94363,frog\n94364,airplane\n94365,frog\n94366,horse\n94367,cat\n94368,horse\n94369,truck\n94370,dog\n94371,frog\n94372,automobile\n94373,airplane\n94374,bird\n94375,bird\n94376,deer\n94377,cat\n94378,horse\n94379,horse\n94380,cat\n94381,ship\n94382,deer\n94383,deer\n94384,deer\n94385,cat\n94386,truck\n94387,truck\n94388,horse\n94389,frog\n94390,automobile\n94391,deer\n94392,cat\n94393,cat\n94394,automobile\n94395,dog\n94396,dog\n94397,cat\n94398,truck\n94399,cat\n94400,bird\n94401,frog\n94402,deer\n94403,cat\n94404,cat\n94405,frog\n94406,horse\n94407,deer\n94408,bird\n94409,airplane\n94410,cat\n94411,bird\n94412,ship\n94413,cat\n94414,cat\n94415,deer\n94416,dog\n94417,horse\n94418,truck\n94419,cat\n94420,cat\n94421,dog\n94422,horse\n94423,truck\n94424,dog\n94425,dog\n94426,dog\n94427,cat\n94428,airplane\n94429,airplane\n94430,deer\n94431,frog\n94432,frog\n94433,frog\n94434,truck\n94435,automobile\n94436,truck\n94437,ship\n94438,cat\n94439,deer\n94440,cat\n94441,deer\n94442,frog\n94443,deer\n94444,automobile\n94445,deer\n94446,frog\n94447,cat\n94448,truck\n94449,ship\n94450,cat\n94451,horse\n94452,airplane\n94453,airplane\n94454,dog\n94455,ship\n94456,deer\n94457,airplane\n94458,deer\n94459,airplane\n94460,bird\n94461,ship\n94462,frog\n94463,dog\n94464,cat\n94465,dog\n94466,deer\n94467,airplane\n94468,deer\n94469,ship\n94470,bird\n94471,dog\n94472,horse\n94473,truck\n94474,horse\n94475,deer\n94476,ship\n94477,ship\n94478,cat\n94479,truck\n94480,frog\n94481,ship\n94482,airplane\n94483,bird\n94484,deer\n94485,ship\n94486,deer\n94487,deer\n94488,truck\n94489,horse\n94490,deer\n94491,bird\n94492,deer\n94493,automobile\n94494,frog\n94495,frog\n94496,dog\n94497,horse\n94498,dog\n94499,airplane\n94500,deer\n94501,automobile\n94502,truck\n94503,ship\n94504,dog\n94505,bird\n94506,frog\n94507,bird\n94508,automobile\n94509,truck\n94510,bird\n94511,cat\n94512,airplane\n94513,deer\n94514,bird\n94515,truck\n94516,deer\n94517,deer\n94518,cat\n94519,horse\n94520,truck\n94521,automobile\n94522,truck\n94523,deer\n94524,airplane\n94525,dog\n94526,truck\n94527,cat\n94528,truck\n94529,frog\n94530,cat\n94531,deer\n94532,horse\n94533,ship\n94534,deer\n94535,deer\n94536,automobile\n94537,frog\n94538,dog\n94539,airplane\n94540,horse\n94541,frog\n94542,cat\n94543,horse\n94544,horse\n94545,automobile\n94546,dog\n94547,truck\n94548,deer\n94549,deer\n94550,cat\n94551,automobile\n94552,cat\n94553,frog\n94554,truck\n94555,frog\n94556,cat\n94557,dog\n94558,truck\n94559,bird\n94560,deer\n94561,airplane\n94562,bird\n94563,deer\n94564,cat\n94565,deer\n94566,cat\n94567,airplane\n94568,automobile\n94569,deer\n94570,cat\n94571,bird\n94572,truck\n94573,horse\n94574,cat\n94575,ship\n94576,cat\n94577,truck\n94578,horse\n94579,truck\n94580,bird\n94581,truck\n94582,deer\n94583,truck\n94584,dog\n94585,truck\n94586,ship\n94587,ship\n94588,dog\n94589,automobile\n94590,dog\n94591,dog\n94592,automobile\n94593,airplane\n94594,cat\n94595,frog\n94596,horse\n94597,bird\n94598,truck\n94599,ship\n94600,truck\n94601,cat\n94602,frog\n94603,deer\n94604,airplane\n94605,airplane\n94606,truck\n94607,truck\n94608,bird\n94609,deer\n94610,horse\n94611,deer\n94612,airplane\n94613,bird\n94614,horse\n94615,deer\n94616,frog\n94617,deer\n94618,airplane\n94619,frog\n94620,cat\n94621,frog\n94622,automobile\n94623,dog\n94624,truck\n94625,bird\n94626,cat\n94627,dog\n94628,bird\n94629,truck\n94630,truck\n94631,truck\n94632,bird\n94633,deer\n94634,truck\n94635,horse\n94636,frog\n94637,deer\n94638,deer\n94639,frog\n94640,dog\n94641,dog\n94642,cat\n94643,bird\n94644,bird\n94645,cat\n94646,airplane\n94647,ship\n94648,automobile\n94649,frog\n94650,frog\n94651,airplane\n94652,bird\n94653,automobile\n94654,horse\n94655,dog\n94656,deer\n94657,frog\n94658,deer\n94659,horse\n94660,cat\n94661,deer\n94662,horse\n94663,cat\n94664,ship\n94665,dog\n94666,airplane\n94667,truck\n94668,truck\n94669,cat\n94670,dog\n94671,frog\n94672,frog\n94673,deer\n94674,airplane\n94675,horse\n94676,dog\n94677,frog\n94678,horse\n94679,dog\n94680,truck\n94681,cat\n94682,horse\n94683,dog\n94684,deer\n94685,airplane\n94686,truck\n94687,truck\n94688,dog\n94689,cat\n94690,horse\n94691,ship\n94692,cat\n94693,ship\n94694,horse\n94695,frog\n94696,cat\n94697,automobile\n94698,ship\n94699,ship\n94700,bird\n94701,deer\n94702,airplane\n94703,frog\n94704,cat\n94705,horse\n94706,dog\n94707,dog\n94708,truck\n94709,ship\n94710,automobile\n94711,truck\n94712,cat\n94713,bird\n94714,bird\n94715,frog\n94716,airplane\n94717,bird\n94718,deer\n94719,dog\n94720,ship\n94721,truck\n94722,cat\n94723,cat\n94724,automobile\n94725,truck\n94726,bird\n94727,truck\n94728,cat\n94729,dog\n94730,deer\n94731,ship\n94732,deer\n94733,cat\n94734,horse\n94735,deer\n94736,truck\n94737,truck\n94738,airplane\n94739,deer\n94740,horse\n94741,truck\n94742,airplane\n94743,cat\n94744,bird\n94745,ship\n94746,cat\n94747,cat\n94748,dog\n94749,deer\n94750,ship\n94751,automobile\n94752,airplane\n94753,bird\n94754,bird\n94755,bird\n94756,cat\n94757,dog\n94758,ship\n94759,automobile\n94760,automobile\n94761,cat\n94762,horse\n94763,dog\n94764,horse\n94765,truck\n94766,bird\n94767,ship\n94768,deer\n94769,cat\n94770,cat\n94771,deer\n94772,dog\n94773,deer\n94774,horse\n94775,frog\n94776,dog\n94777,deer\n94778,horse\n94779,bird\n94780,truck\n94781,horse\n94782,ship\n94783,frog\n94784,cat\n94785,cat\n94786,cat\n94787,horse\n94788,cat\n94789,bird\n94790,deer\n94791,cat\n94792,ship\n94793,horse\n94794,horse\n94795,truck\n94796,cat\n94797,cat\n94798,dog\n94799,frog\n94800,truck\n94801,truck\n94802,dog\n94803,airplane\n94804,dog\n94805,bird\n94806,ship\n94807,deer\n94808,frog\n94809,cat\n94810,horse\n94811,ship\n94812,bird\n94813,ship\n94814,deer\n94815,automobile\n94816,automobile\n94817,ship\n94818,bird\n94819,cat\n94820,deer\n94821,ship\n94822,frog\n94823,frog\n94824,frog\n94825,horse\n94826,automobile\n94827,truck\n94828,horse\n94829,airplane\n94830,ship\n94831,frog\n94832,deer\n94833,deer\n94834,bird\n94835,automobile\n94836,automobile\n94837,cat\n94838,airplane\n94839,deer\n94840,automobile\n94841,automobile\n94842,horse\n94843,bird\n94844,frog\n94845,bird\n94846,ship\n94847,bird\n94848,deer\n94849,cat\n94850,deer\n94851,frog\n94852,dog\n94853,truck\n94854,ship\n94855,bird\n94856,truck\n94857,deer\n94858,frog\n94859,truck\n94860,cat\n94861,ship\n94862,bird\n94863,cat\n94864,automobile\n94865,truck\n94866,cat\n94867,frog\n94868,airplane\n94869,cat\n94870,deer\n94871,airplane\n94872,dog\n94873,automobile\n94874,horse\n94875,deer\n94876,horse\n94877,truck\n94878,cat\n94879,cat\n94880,bird\n94881,bird\n94882,ship\n94883,airplane\n94884,frog\n94885,truck\n94886,horse\n94887,horse\n94888,deer\n94889,cat\n94890,airplane\n94891,cat\n94892,deer\n94893,ship\n94894,bird\n94895,cat\n94896,bird\n94897,cat\n94898,cat\n94899,deer\n94900,cat\n94901,horse\n94902,bird\n94903,frog\n94904,horse\n94905,horse\n94906,dog\n94907,horse\n94908,ship\n94909,frog\n94910,automobile\n94911,ship\n94912,dog\n94913,automobile\n94914,bird\n94915,deer\n94916,dog\n94917,automobile\n94918,cat\n94919,bird\n94920,bird\n94921,deer\n94922,ship\n94923,airplane\n94924,automobile\n94925,airplane\n94926,dog\n94927,frog\n94928,truck\n94929,deer\n94930,airplane\n94931,bird\n94932,cat\n94933,ship\n94934,deer\n94935,frog\n94936,truck\n94937,automobile\n94938,truck\n94939,cat\n94940,ship\n94941,bird\n94942,bird\n94943,dog\n94944,truck\n94945,horse\n94946,airplane\n94947,truck\n94948,truck\n94949,frog\n94950,bird\n94951,frog\n94952,deer\n94953,cat\n94954,automobile\n94955,automobile\n94956,truck\n94957,horse\n94958,automobile\n94959,truck\n94960,deer\n94961,ship\n94962,automobile\n94963,automobile\n94964,airplane\n94965,truck\n94966,frog\n94967,airplane\n94968,bird\n94969,dog\n94970,cat\n94971,horse\n94972,airplane\n94973,cat\n94974,bird\n94975,cat\n94976,horse\n94977,cat\n94978,ship\n94979,frog\n94980,horse\n94981,deer\n94982,ship\n94983,cat\n94984,frog\n94985,truck\n94986,automobile\n94987,ship\n94988,frog\n94989,deer\n94990,horse\n94991,bird\n94992,cat\n94993,truck\n94994,dog\n94995,ship\n94996,cat\n94997,horse\n94998,frog\n94999,frog\n95000,cat\n95001,automobile\n95002,ship\n95003,horse\n95004,ship\n95005,cat\n95006,cat\n95007,truck\n95008,dog\n95009,horse\n95010,deer\n95011,airplane\n95012,bird\n95013,dog\n95014,deer\n95015,cat\n95016,ship\n95017,truck\n95018,cat\n95019,frog\n95020,automobile\n95021,ship\n95022,bird\n95023,dog\n95024,truck\n95025,bird\n95026,cat\n95027,airplane\n95028,truck\n95029,horse\n95030,frog\n95031,airplane\n95032,deer\n95033,ship\n95034,horse\n95035,deer\n95036,horse\n95037,horse\n95038,airplane\n95039,automobile\n95040,cat\n95041,dog\n95042,cat\n95043,dog\n95044,deer\n95045,truck\n95046,horse\n95047,horse\n95048,deer\n95049,truck\n95050,frog\n95051,airplane\n95052,cat\n95053,deer\n95054,frog\n95055,ship\n95056,truck\n95057,cat\n95058,frog\n95059,bird\n95060,horse\n95061,horse\n95062,frog\n95063,frog\n95064,deer\n95065,airplane\n95066,truck\n95067,airplane\n95068,dog\n95069,cat\n95070,airplane\n95071,horse\n95072,automobile\n95073,horse\n95074,dog\n95075,airplane\n95076,frog\n95077,truck\n95078,cat\n95079,truck\n95080,airplane\n95081,frog\n95082,deer\n95083,deer\n95084,bird\n95085,cat\n95086,horse\n95087,automobile\n95088,deer\n95089,airplane\n95090,automobile\n95091,truck\n95092,airplane\n95093,cat\n95094,cat\n95095,bird\n95096,automobile\n95097,cat\n95098,bird\n95099,ship\n95100,horse\n95101,cat\n95102,bird\n95103,deer\n95104,cat\n95105,ship\n95106,bird\n95107,ship\n95108,bird\n95109,horse\n95110,ship\n95111,ship\n95112,horse\n95113,bird\n95114,frog\n95115,cat\n95116,cat\n95117,cat\n95118,frog\n95119,bird\n95120,deer\n95121,dog\n95122,ship\n95123,frog\n95124,ship\n95125,deer\n95126,deer\n95127,deer\n95128,deer\n95129,cat\n95130,horse\n95131,bird\n95132,truck\n95133,automobile\n95134,bird\n95135,frog\n95136,ship\n95137,truck\n95138,cat\n95139,horse\n95140,dog\n95141,automobile\n95142,truck\n95143,airplane\n95144,horse\n95145,cat\n95146,airplane\n95147,deer\n95148,cat\n95149,airplane\n95150,automobile\n95151,truck\n95152,ship\n95153,deer\n95154,deer\n95155,frog\n95156,dog\n95157,horse\n95158,bird\n95159,dog\n95160,automobile\n95161,airplane\n95162,frog\n95163,automobile\n95164,airplane\n95165,deer\n95166,automobile\n95167,automobile\n95168,cat\n95169,dog\n95170,truck\n95171,airplane\n95172,truck\n95173,horse\n95174,automobile\n95175,frog\n95176,airplane\n95177,truck\n95178,bird\n95179,ship\n95180,automobile\n95181,airplane\n95182,horse\n95183,horse\n95184,automobile\n95185,ship\n95186,truck\n95187,automobile\n95188,deer\n95189,dog\n95190,ship\n95191,automobile\n95192,dog\n95193,frog\n95194,airplane\n95195,frog\n95196,deer\n95197,cat\n95198,cat\n95199,frog\n95200,horse\n95201,bird\n95202,airplane\n95203,bird\n95204,deer\n95205,automobile\n95206,automobile\n95207,deer\n95208,ship\n95209,dog\n95210,truck\n95211,cat\n95212,truck\n95213,frog\n95214,cat\n95215,dog\n95216,automobile\n95217,deer\n95218,frog\n95219,airplane\n95220,horse\n95221,truck\n95222,frog\n95223,horse\n95224,automobile\n95225,ship\n95226,ship\n95227,dog\n95228,deer\n95229,ship\n95230,frog\n95231,cat\n95232,bird\n95233,airplane\n95234,airplane\n95235,frog\n95236,automobile\n95237,ship\n95238,cat\n95239,horse\n95240,bird\n95241,cat\n95242,dog\n95243,bird\n95244,cat\n95245,ship\n95246,bird\n95247,cat\n95248,dog\n95249,dog\n95250,horse\n95251,bird\n95252,horse\n95253,deer\n95254,horse\n95255,deer\n95256,truck\n95257,dog\n95258,cat\n95259,truck\n95260,deer\n95261,bird\n95262,dog\n95263,truck\n95264,automobile\n95265,dog\n95266,automobile\n95267,airplane\n95268,cat\n95269,bird\n95270,bird\n95271,airplane\n95272,deer\n95273,bird\n95274,cat\n95275,automobile\n95276,cat\n95277,automobile\n95278,truck\n95279,dog\n95280,horse\n95281,ship\n95282,horse\n95283,truck\n95284,dog\n95285,truck\n95286,horse\n95287,dog\n95288,deer\n95289,airplane\n95290,deer\n95291,dog\n95292,cat\n95293,airplane\n95294,dog\n95295,ship\n95296,horse\n95297,dog\n95298,dog\n95299,frog\n95300,automobile\n95301,ship\n95302,bird\n95303,deer\n95304,bird\n95305,airplane\n95306,automobile\n95307,dog\n95308,dog\n95309,cat\n95310,cat\n95311,cat\n95312,airplane\n95313,ship\n95314,frog\n95315,cat\n95316,deer\n95317,truck\n95318,deer\n95319,cat\n95320,horse\n95321,deer\n95322,deer\n95323,automobile\n95324,bird\n95325,deer\n95326,deer\n95327,horse\n95328,horse\n95329,truck\n95330,cat\n95331,frog\n95332,horse\n95333,cat\n95334,deer\n95335,automobile\n95336,horse\n95337,frog\n95338,frog\n95339,cat\n95340,truck\n95341,deer\n95342,ship\n95343,bird\n95344,truck\n95345,airplane\n95346,bird\n95347,dog\n95348,airplane\n95349,truck\n95350,cat\n95351,dog\n95352,frog\n95353,cat\n95354,cat\n95355,truck\n95356,airplane\n95357,deer\n95358,cat\n95359,ship\n95360,deer\n95361,frog\n95362,deer\n95363,deer\n95364,frog\n95365,airplane\n95366,horse\n95367,airplane\n95368,frog\n95369,cat\n95370,cat\n95371,airplane\n95372,truck\n95373,truck\n95374,deer\n95375,horse\n95376,deer\n95377,horse\n95378,automobile\n95379,horse\n95380,truck\n95381,bird\n95382,frog\n95383,deer\n95384,dog\n95385,bird\n95386,cat\n95387,airplane\n95388,frog\n95389,cat\n95390,cat\n95391,deer\n95392,deer\n95393,cat\n95394,horse\n95395,frog\n95396,automobile\n95397,ship\n95398,truck\n95399,ship\n95400,deer\n95401,airplane\n95402,dog\n95403,truck\n95404,cat\n95405,bird\n95406,frog\n95407,horse\n95408,deer\n95409,dog\n95410,frog\n95411,deer\n95412,airplane\n95413,truck\n95414,airplane\n95415,dog\n95416,dog\n95417,airplane\n95418,frog\n95419,horse\n95420,ship\n95421,deer\n95422,frog\n95423,horse\n95424,deer\n95425,bird\n95426,ship\n95427,bird\n95428,truck\n95429,horse\n95430,truck\n95431,airplane\n95432,truck\n95433,automobile\n95434,dog\n95435,cat\n95436,truck\n95437,airplane\n95438,horse\n95439,frog\n95440,ship\n95441,ship\n95442,bird\n95443,horse\n95444,automobile\n95445,automobile\n95446,bird\n95447,dog\n95448,ship\n95449,airplane\n95450,horse\n95451,cat\n95452,frog\n95453,frog\n95454,cat\n95455,cat\n95456,dog\n95457,frog\n95458,deer\n95459,horse\n95460,cat\n95461,truck\n95462,horse\n95463,dog\n95464,dog\n95465,dog\n95466,cat\n95467,horse\n95468,horse\n95469,cat\n95470,airplane\n95471,ship\n95472,truck\n95473,cat\n95474,horse\n95475,automobile\n95476,airplane\n95477,truck\n95478,horse\n95479,horse\n95480,bird\n95481,cat\n95482,dog\n95483,cat\n95484,truck\n95485,cat\n95486,automobile\n95487,bird\n95488,cat\n95489,cat\n95490,frog\n95491,deer\n95492,frog\n95493,truck\n95494,automobile\n95495,dog\n95496,ship\n95497,automobile\n95498,dog\n95499,cat\n95500,frog\n95501,truck\n95502,deer\n95503,cat\n95504,dog\n95505,cat\n95506,cat\n95507,deer\n95508,horse\n95509,truck\n95510,deer\n95511,truck\n95512,bird\n95513,deer\n95514,deer\n95515,airplane\n95516,cat\n95517,cat\n95518,truck\n95519,cat\n95520,cat\n95521,frog\n95522,airplane\n95523,ship\n95524,truck\n95525,horse\n95526,dog\n95527,cat\n95528,dog\n95529,dog\n95530,frog\n95531,truck\n95532,airplane\n95533,automobile\n95534,frog\n95535,ship\n95536,airplane\n95537,dog\n95538,cat\n95539,airplane\n95540,truck\n95541,horse\n95542,cat\n95543,truck\n95544,horse\n95545,truck\n95546,airplane\n95547,frog\n95548,cat\n95549,cat\n95550,airplane\n95551,dog\n95552,truck\n95553,cat\n95554,airplane\n95555,horse\n95556,dog\n95557,truck\n95558,truck\n95559,truck\n95560,truck\n95561,airplane\n95562,bird\n95563,deer\n95564,automobile\n95565,dog\n95566,deer\n95567,deer\n95568,automobile\n95569,deer\n95570,frog\n95571,automobile\n95572,horse\n95573,truck\n95574,truck\n95575,horse\n95576,horse\n95577,airplane\n95578,dog\n95579,automobile\n95580,horse\n95581,ship\n95582,deer\n95583,ship\n95584,bird\n95585,bird\n95586,truck\n95587,ship\n95588,automobile\n95589,frog\n95590,deer\n95591,frog\n95592,bird\n95593,dog\n95594,ship\n95595,airplane\n95596,deer\n95597,frog\n95598,cat\n95599,frog\n95600,ship\n95601,airplane\n95602,bird\n95603,bird\n95604,frog\n95605,frog\n95606,cat\n95607,cat\n95608,deer\n95609,frog\n95610,horse\n95611,horse\n95612,horse\n95613,cat\n95614,dog\n95615,frog\n95616,deer\n95617,ship\n95618,airplane\n95619,deer\n95620,cat\n95621,truck\n95622,automobile\n95623,ship\n95624,bird\n95625,bird\n95626,bird\n95627,bird\n95628,cat\n95629,frog\n95630,dog\n95631,bird\n95632,frog\n95633,horse\n95634,cat\n95635,airplane\n95636,cat\n95637,frog\n95638,horse\n95639,automobile\n95640,deer\n95641,automobile\n95642,deer\n95643,cat\n95644,bird\n95645,cat\n95646,cat\n95647,airplane\n95648,frog\n95649,horse\n95650,bird\n95651,dog\n95652,ship\n95653,airplane\n95654,deer\n95655,truck\n95656,truck\n95657,horse\n95658,cat\n95659,horse\n95660,deer\n95661,automobile\n95662,dog\n95663,deer\n95664,airplane\n95665,ship\n95666,truck\n95667,ship\n95668,truck\n95669,deer\n95670,bird\n95671,dog\n95672,deer\n95673,horse\n95674,deer\n95675,dog\n95676,dog\n95677,truck\n95678,bird\n95679,truck\n95680,horse\n95681,airplane\n95682,truck\n95683,deer\n95684,truck\n95685,ship\n95686,airplane\n95687,frog\n95688,horse\n95689,bird\n95690,frog\n95691,automobile\n95692,deer\n95693,airplane\n95694,deer\n95695,dog\n95696,cat\n95697,automobile\n95698,frog\n95699,frog\n95700,airplane\n95701,horse\n95702,truck\n95703,truck\n95704,bird\n95705,bird\n95706,dog\n95707,truck\n95708,automobile\n95709,deer\n95710,truck\n95711,cat\n95712,airplane\n95713,deer\n95714,frog\n95715,deer\n95716,deer\n95717,dog\n95718,deer\n95719,automobile\n95720,cat\n95721,ship\n95722,cat\n95723,truck\n95724,truck\n95725,airplane\n95726,deer\n95727,dog\n95728,truck\n95729,cat\n95730,cat\n95731,frog\n95732,frog\n95733,cat\n95734,truck\n95735,horse\n95736,deer\n95737,horse\n95738,bird\n95739,horse\n95740,dog\n95741,cat\n95742,horse\n95743,cat\n95744,truck\n95745,truck\n95746,horse\n95747,bird\n95748,cat\n95749,frog\n95750,cat\n95751,cat\n95752,truck\n95753,ship\n95754,cat\n95755,airplane\n95756,cat\n95757,deer\n95758,deer\n95759,dog\n95760,ship\n95761,frog\n95762,airplane\n95763,cat\n95764,deer\n95765,deer\n95766,cat\n95767,deer\n95768,cat\n95769,cat\n95770,horse\n95771,automobile\n95772,airplane\n95773,deer\n95774,ship\n95775,cat\n95776,airplane\n95777,ship\n95778,cat\n95779,deer\n95780,bird\n95781,cat\n95782,dog\n95783,truck\n95784,automobile\n95785,horse\n95786,dog\n95787,deer\n95788,airplane\n95789,horse\n95790,ship\n95791,frog\n95792,automobile\n95793,horse\n95794,deer\n95795,dog\n95796,automobile\n95797,frog\n95798,dog\n95799,deer\n95800,automobile\n95801,frog\n95802,dog\n95803,dog\n95804,bird\n95805,frog\n95806,cat\n95807,bird\n95808,cat\n95809,truck\n95810,dog\n95811,frog\n95812,horse\n95813,deer\n95814,bird\n95815,airplane\n95816,deer\n95817,ship\n95818,frog\n95819,dog\n95820,horse\n95821,cat\n95822,airplane\n95823,airplane\n95824,cat\n95825,cat\n95826,bird\n95827,horse\n95828,frog\n95829,frog\n95830,deer\n95831,bird\n95832,dog\n95833,horse\n95834,frog\n95835,airplane\n95836,horse\n95837,frog\n95838,truck\n95839,truck\n95840,airplane\n95841,truck\n95842,truck\n95843,automobile\n95844,airplane\n95845,cat\n95846,frog\n95847,airplane\n95848,cat\n95849,bird\n95850,horse\n95851,cat\n95852,frog\n95853,ship\n95854,airplane\n95855,horse\n95856,horse\n95857,cat\n95858,bird\n95859,frog\n95860,airplane\n95861,automobile\n95862,bird\n95863,deer\n95864,dog\n95865,automobile\n95866,frog\n95867,frog\n95868,cat\n95869,bird\n95870,airplane\n95871,deer\n95872,airplane\n95873,dog\n95874,cat\n95875,dog\n95876,cat\n95877,deer\n95878,horse\n95879,frog\n95880,dog\n95881,deer\n95882,horse\n95883,truck\n95884,cat\n95885,airplane\n95886,dog\n95887,airplane\n95888,frog\n95889,cat\n95890,truck\n95891,dog\n95892,deer\n95893,deer\n95894,truck\n95895,bird\n95896,ship\n95897,bird\n95898,bird\n95899,frog\n95900,dog\n95901,airplane\n95902,truck\n95903,frog\n95904,bird\n95905,airplane\n95906,dog\n95907,bird\n95908,deer\n95909,cat\n95910,ship\n95911,airplane\n95912,horse\n95913,horse\n95914,deer\n95915,dog\n95916,dog\n95917,frog\n95918,dog\n95919,automobile\n95920,bird\n95921,truck\n95922,horse\n95923,frog\n95924,cat\n95925,deer\n95926,frog\n95927,deer\n95928,frog\n95929,horse\n95930,airplane\n95931,frog\n95932,ship\n95933,horse\n95934,truck\n95935,airplane\n95936,automobile\n95937,airplane\n95938,bird\n95939,automobile\n95940,horse\n95941,automobile\n95942,horse\n95943,truck\n95944,deer\n95945,cat\n95946,deer\n95947,automobile\n95948,automobile\n95949,dog\n95950,deer\n95951,frog\n95952,horse\n95953,bird\n95954,horse\n95955,ship\n95956,deer\n95957,frog\n95958,truck\n95959,dog\n95960,frog\n95961,airplane\n95962,airplane\n95963,airplane\n95964,automobile\n95965,bird\n95966,automobile\n95967,frog\n95968,dog\n95969,ship\n95970,deer\n95971,dog\n95972,dog\n95973,horse\n95974,cat\n95975,cat\n95976,deer\n95977,bird\n95978,horse\n95979,dog\n95980,airplane\n95981,truck\n95982,horse\n95983,horse\n95984,cat\n95985,frog\n95986,cat\n95987,truck\n95988,airplane\n95989,cat\n95990,dog\n95991,cat\n95992,deer\n95993,horse\n95994,deer\n95995,airplane\n95996,cat\n95997,frog\n95998,cat\n95999,dog\n96000,frog\n96001,cat\n96002,automobile\n96003,deer\n96004,airplane\n96005,cat\n96006,truck\n96007,deer\n96008,truck\n96009,airplane\n96010,deer\n96011,truck\n96012,ship\n96013,deer\n96014,automobile\n96015,deer\n96016,frog\n96017,airplane\n96018,dog\n96019,truck\n96020,cat\n96021,automobile\n96022,bird\n96023,truck\n96024,cat\n96025,deer\n96026,deer\n96027,deer\n96028,airplane\n96029,deer\n96030,deer\n96031,deer\n96032,frog\n96033,horse\n96034,airplane\n96035,frog\n96036,ship\n96037,truck\n96038,bird\n96039,truck\n96040,automobile\n96041,cat\n96042,horse\n96043,deer\n96044,ship\n96045,bird\n96046,cat\n96047,bird\n96048,horse\n96049,deer\n96050,horse\n96051,ship\n96052,airplane\n96053,ship\n96054,deer\n96055,truck\n96056,truck\n96057,deer\n96058,cat\n96059,automobile\n96060,bird\n96061,horse\n96062,frog\n96063,truck\n96064,dog\n96065,cat\n96066,horse\n96067,dog\n96068,truck\n96069,ship\n96070,ship\n96071,deer\n96072,truck\n96073,dog\n96074,dog\n96075,airplane\n96076,cat\n96077,frog\n96078,deer\n96079,frog\n96080,deer\n96081,automobile\n96082,deer\n96083,dog\n96084,truck\n96085,cat\n96086,truck\n96087,cat\n96088,frog\n96089,dog\n96090,dog\n96091,deer\n96092,dog\n96093,automobile\n96094,dog\n96095,dog\n96096,cat\n96097,bird\n96098,horse\n96099,deer\n96100,horse\n96101,bird\n96102,airplane\n96103,frog\n96104,frog\n96105,horse\n96106,automobile\n96107,airplane\n96108,bird\n96109,dog\n96110,frog\n96111,horse\n96112,bird\n96113,dog\n96114,truck\n96115,deer\n96116,dog\n96117,cat\n96118,truck\n96119,dog\n96120,frog\n96121,automobile\n96122,cat\n96123,deer\n96124,cat\n96125,ship\n96126,horse\n96127,bird\n96128,truck\n96129,bird\n96130,dog\n96131,automobile\n96132,dog\n96133,automobile\n96134,bird\n96135,bird\n96136,airplane\n96137,deer\n96138,automobile\n96139,frog\n96140,cat\n96141,ship\n96142,truck\n96143,ship\n96144,deer\n96145,deer\n96146,ship\n96147,cat\n96148,automobile\n96149,dog\n96150,airplane\n96151,frog\n96152,horse\n96153,deer\n96154,dog\n96155,ship\n96156,dog\n96157,bird\n96158,cat\n96159,cat\n96160,bird\n96161,dog\n96162,frog\n96163,truck\n96164,horse\n96165,deer\n96166,horse\n96167,deer\n96168,frog\n96169,ship\n96170,automobile\n96171,truck\n96172,cat\n96173,cat\n96174,frog\n96175,airplane\n96176,bird\n96177,bird\n96178,deer\n96179,truck\n96180,airplane\n96181,cat\n96182,horse\n96183,truck\n96184,truck\n96185,dog\n96186,deer\n96187,airplane\n96188,truck\n96189,cat\n96190,cat\n96191,truck\n96192,frog\n96193,dog\n96194,ship\n96195,truck\n96196,frog\n96197,airplane\n96198,deer\n96199,truck\n96200,horse\n96201,truck\n96202,dog\n96203,cat\n96204,bird\n96205,airplane\n96206,cat\n96207,cat\n96208,airplane\n96209,dog\n96210,bird\n96211,deer\n96212,dog\n96213,dog\n96214,dog\n96215,cat\n96216,airplane\n96217,dog\n96218,bird\n96219,truck\n96220,cat\n96221,frog\n96222,bird\n96223,bird\n96224,horse\n96225,dog\n96226,ship\n96227,airplane\n96228,dog\n96229,dog\n96230,bird\n96231,dog\n96232,bird\n96233,bird\n96234,bird\n96235,deer\n96236,frog\n96237,ship\n96238,deer\n96239,bird\n96240,bird\n96241,dog\n96242,automobile\n96243,frog\n96244,deer\n96245,bird\n96246,airplane\n96247,horse\n96248,bird\n96249,deer\n96250,deer\n96251,dog\n96252,bird\n96253,cat\n96254,automobile\n96255,dog\n96256,truck\n96257,airplane\n96258,automobile\n96259,automobile\n96260,deer\n96261,deer\n96262,bird\n96263,horse\n96264,truck\n96265,deer\n96266,bird\n96267,deer\n96268,dog\n96269,cat\n96270,bird\n96271,horse\n96272,ship\n96273,frog\n96274,cat\n96275,truck\n96276,truck\n96277,bird\n96278,horse\n96279,cat\n96280,cat\n96281,ship\n96282,dog\n96283,bird\n96284,airplane\n96285,ship\n96286,automobile\n96287,dog\n96288,ship\n96289,bird\n96290,frog\n96291,deer\n96292,airplane\n96293,cat\n96294,frog\n96295,dog\n96296,cat\n96297,airplane\n96298,frog\n96299,frog\n96300,dog\n96301,airplane\n96302,ship\n96303,deer\n96304,ship\n96305,airplane\n96306,truck\n96307,airplane\n96308,bird\n96309,frog\n96310,airplane\n96311,truck\n96312,frog\n96313,dog\n96314,ship\n96315,deer\n96316,ship\n96317,ship\n96318,horse\n96319,bird\n96320,cat\n96321,ship\n96322,ship\n96323,horse\n96324,deer\n96325,ship\n96326,deer\n96327,airplane\n96328,deer\n96329,frog\n96330,truck\n96331,ship\n96332,cat\n96333,cat\n96334,airplane\n96335,ship\n96336,automobile\n96337,cat\n96338,frog\n96339,frog\n96340,dog\n96341,cat\n96342,truck\n96343,airplane\n96344,cat\n96345,cat\n96346,deer\n96347,ship\n96348,frog\n96349,deer\n96350,horse\n96351,frog\n96352,automobile\n96353,deer\n96354,frog\n96355,frog\n96356,dog\n96357,truck\n96358,airplane\n96359,truck\n96360,deer\n96361,frog\n96362,airplane\n96363,horse\n96364,ship\n96365,truck\n96366,cat\n96367,airplane\n96368,dog\n96369,horse\n96370,cat\n96371,dog\n96372,ship\n96373,truck\n96374,frog\n96375,frog\n96376,truck\n96377,bird\n96378,truck\n96379,bird\n96380,deer\n96381,deer\n96382,deer\n96383,deer\n96384,deer\n96385,deer\n96386,frog\n96387,cat\n96388,cat\n96389,bird\n96390,automobile\n96391,ship\n96392,cat\n96393,ship\n96394,bird\n96395,ship\n96396,horse\n96397,automobile\n96398,deer\n96399,frog\n96400,cat\n96401,dog\n96402,ship\n96403,frog\n96404,deer\n96405,airplane\n96406,truck\n96407,horse\n96408,airplane\n96409,truck\n96410,horse\n96411,ship\n96412,airplane\n96413,bird\n96414,truck\n96415,airplane\n96416,cat\n96417,bird\n96418,cat\n96419,airplane\n96420,bird\n96421,frog\n96422,airplane\n96423,ship\n96424,ship\n96425,horse\n96426,cat\n96427,ship\n96428,bird\n96429,frog\n96430,bird\n96431,deer\n96432,frog\n96433,truck\n96434,horse\n96435,automobile\n96436,airplane\n96437,deer\n96438,truck\n96439,automobile\n96440,truck\n96441,bird\n96442,automobile\n96443,automobile\n96444,ship\n96445,horse\n96446,horse\n96447,cat\n96448,truck\n96449,automobile\n96450,truck\n96451,truck\n96452,airplane\n96453,bird\n96454,truck\n96455,horse\n96456,truck\n96457,frog\n96458,dog\n96459,automobile\n96460,frog\n96461,frog\n96462,automobile\n96463,horse\n96464,truck\n96465,dog\n96466,deer\n96467,bird\n96468,frog\n96469,ship\n96470,airplane\n96471,horse\n96472,deer\n96473,cat\n96474,cat\n96475,dog\n96476,truck\n96477,dog\n96478,automobile\n96479,horse\n96480,horse\n96481,airplane\n96482,cat\n96483,automobile\n96484,cat\n96485,frog\n96486,truck\n96487,cat\n96488,frog\n96489,horse\n96490,automobile\n96491,automobile\n96492,automobile\n96493,truck\n96494,ship\n96495,bird\n96496,frog\n96497,horse\n96498,bird\n96499,bird\n96500,cat\n96501,airplane\n96502,frog\n96503,deer\n96504,truck\n96505,ship\n96506,deer\n96507,cat\n96508,cat\n96509,bird\n96510,truck\n96511,airplane\n96512,horse\n96513,cat\n96514,cat\n96515,automobile\n96516,truck\n96517,ship\n96518,airplane\n96519,dog\n96520,dog\n96521,horse\n96522,dog\n96523,bird\n96524,deer\n96525,dog\n96526,horse\n96527,deer\n96528,automobile\n96529,dog\n96530,truck\n96531,deer\n96532,cat\n96533,truck\n96534,deer\n96535,dog\n96536,cat\n96537,bird\n96538,ship\n96539,horse\n96540,bird\n96541,horse\n96542,cat\n96543,deer\n96544,cat\n96545,frog\n96546,truck\n96547,deer\n96548,cat\n96549,bird\n96550,frog\n96551,dog\n96552,automobile\n96553,truck\n96554,frog\n96555,bird\n96556,dog\n96557,ship\n96558,automobile\n96559,cat\n96560,airplane\n96561,truck\n96562,deer\n96563,cat\n96564,dog\n96565,deer\n96566,horse\n96567,automobile\n96568,dog\n96569,truck\n96570,frog\n96571,airplane\n96572,truck\n96573,truck\n96574,frog\n96575,cat\n96576,horse\n96577,automobile\n96578,ship\n96579,cat\n96580,horse\n96581,horse\n96582,truck\n96583,dog\n96584,deer\n96585,truck\n96586,deer\n96587,frog\n96588,airplane\n96589,deer\n96590,dog\n96591,airplane\n96592,automobile\n96593,horse\n96594,frog\n96595,bird\n96596,frog\n96597,horse\n96598,frog\n96599,airplane\n96600,cat\n96601,dog\n96602,truck\n96603,deer\n96604,cat\n96605,cat\n96606,automobile\n96607,horse\n96608,cat\n96609,bird\n96610,horse\n96611,frog\n96612,automobile\n96613,dog\n96614,truck\n96615,truck\n96616,dog\n96617,airplane\n96618,dog\n96619,ship\n96620,automobile\n96621,frog\n96622,cat\n96623,truck\n96624,deer\n96625,deer\n96626,bird\n96627,automobile\n96628,cat\n96629,horse\n96630,frog\n96631,airplane\n96632,horse\n96633,bird\n96634,cat\n96635,bird\n96636,cat\n96637,truck\n96638,deer\n96639,frog\n96640,dog\n96641,truck\n96642,automobile\n96643,ship\n96644,automobile\n96645,horse\n96646,deer\n96647,bird\n96648,truck\n96649,automobile\n96650,truck\n96651,deer\n96652,frog\n96653,truck\n96654,dog\n96655,deer\n96656,automobile\n96657,deer\n96658,cat\n96659,dog\n96660,frog\n96661,deer\n96662,automobile\n96663,airplane\n96664,cat\n96665,bird\n96666,ship\n96667,deer\n96668,truck\n96669,truck\n96670,ship\n96671,dog\n96672,truck\n96673,deer\n96674,automobile\n96675,dog\n96676,horse\n96677,airplane\n96678,ship\n96679,deer\n96680,horse\n96681,frog\n96682,frog\n96683,ship\n96684,ship\n96685,horse\n96686,deer\n96687,dog\n96688,deer\n96689,automobile\n96690,truck\n96691,ship\n96692,deer\n96693,dog\n96694,frog\n96695,dog\n96696,bird\n96697,automobile\n96698,airplane\n96699,bird\n96700,cat\n96701,cat\n96702,automobile\n96703,horse\n96704,automobile\n96705,cat\n96706,truck\n96707,ship\n96708,truck\n96709,dog\n96710,horse\n96711,ship\n96712,deer\n96713,truck\n96714,ship\n96715,truck\n96716,ship\n96717,ship\n96718,truck\n96719,automobile\n96720,deer\n96721,bird\n96722,truck\n96723,deer\n96724,dog\n96725,deer\n96726,airplane\n96727,truck\n96728,dog\n96729,cat\n96730,ship\n96731,cat\n96732,frog\n96733,frog\n96734,cat\n96735,airplane\n96736,ship\n96737,frog\n96738,cat\n96739,cat\n96740,bird\n96741,deer\n96742,truck\n96743,ship\n96744,dog\n96745,cat\n96746,ship\n96747,frog\n96748,frog\n96749,airplane\n96750,deer\n96751,automobile\n96752,automobile\n96753,dog\n96754,deer\n96755,airplane\n96756,cat\n96757,truck\n96758,cat\n96759,deer\n96760,deer\n96761,deer\n96762,deer\n96763,frog\n96764,ship\n96765,horse\n96766,dog\n96767,horse\n96768,airplane\n96769,cat\n96770,dog\n96771,frog\n96772,ship\n96773,dog\n96774,ship\n96775,frog\n96776,dog\n96777,frog\n96778,deer\n96779,automobile\n96780,dog\n96781,bird\n96782,truck\n96783,deer\n96784,automobile\n96785,automobile\n96786,airplane\n96787,airplane\n96788,horse\n96789,frog\n96790,frog\n96791,frog\n96792,truck\n96793,ship\n96794,ship\n96795,automobile\n96796,bird\n96797,cat\n96798,dog\n96799,cat\n96800,ship\n96801,truck\n96802,horse\n96803,cat\n96804,truck\n96805,ship\n96806,frog\n96807,deer\n96808,horse\n96809,bird\n96810,airplane\n96811,deer\n96812,truck\n96813,deer\n96814,deer\n96815,dog\n96816,truck\n96817,cat\n96818,frog\n96819,cat\n96820,dog\n96821,deer\n96822,dog\n96823,truck\n96824,airplane\n96825,airplane\n96826,truck\n96827,airplane\n96828,horse\n96829,ship\n96830,airplane\n96831,cat\n96832,frog\n96833,deer\n96834,dog\n96835,frog\n96836,horse\n96837,dog\n96838,airplane\n96839,truck\n96840,truck\n96841,cat\n96842,bird\n96843,cat\n96844,airplane\n96845,cat\n96846,cat\n96847,dog\n96848,ship\n96849,bird\n96850,cat\n96851,truck\n96852,truck\n96853,truck\n96854,bird\n96855,deer\n96856,cat\n96857,cat\n96858,cat\n96859,frog\n96860,frog\n96861,horse\n96862,truck\n96863,dog\n96864,airplane\n96865,cat\n96866,deer\n96867,airplane\n96868,bird\n96869,frog\n96870,cat\n96871,bird\n96872,cat\n96873,frog\n96874,ship\n96875,frog\n96876,truck\n96877,deer\n96878,frog\n96879,automobile\n96880,ship\n96881,bird\n96882,frog\n96883,bird\n96884,dog\n96885,dog\n96886,dog\n96887,bird\n96888,frog\n96889,frog\n96890,frog\n96891,airplane\n96892,frog\n96893,frog\n96894,truck\n96895,automobile\n96896,cat\n96897,horse\n96898,frog\n96899,truck\n96900,airplane\n96901,frog\n96902,truck\n96903,airplane\n96904,automobile\n96905,bird\n96906,frog\n96907,truck\n96908,cat\n96909,bird\n96910,ship\n96911,cat\n96912,frog\n96913,frog\n96914,truck\n96915,automobile\n96916,horse\n96917,frog\n96918,bird\n96919,ship\n96920,dog\n96921,horse\n96922,truck\n96923,truck\n96924,cat\n96925,deer\n96926,deer\n96927,automobile\n96928,frog\n96929,horse\n96930,ship\n96931,dog\n96932,ship\n96933,dog\n96934,automobile\n96935,cat\n96936,ship\n96937,frog\n96938,ship\n96939,automobile\n96940,frog\n96941,horse\n96942,frog\n96943,deer\n96944,truck\n96945,truck\n96946,frog\n96947,ship\n96948,truck\n96949,cat\n96950,ship\n96951,cat\n96952,deer\n96953,horse\n96954,automobile\n96955,dog\n96956,frog\n96957,automobile\n96958,dog\n96959,horse\n96960,cat\n96961,truck\n96962,ship\n96963,deer\n96964,ship\n96965,bird\n96966,bird\n96967,truck\n96968,airplane\n96969,truck\n96970,airplane\n96971,airplane\n96972,automobile\n96973,ship\n96974,bird\n96975,dog\n96976,ship\n96977,airplane\n96978,bird\n96979,ship\n96980,deer\n96981,deer\n96982,airplane\n96983,bird\n96984,ship\n96985,frog\n96986,deer\n96987,deer\n96988,deer\n96989,deer\n96990,frog\n96991,automobile\n96992,automobile\n96993,deer\n96994,ship\n96995,horse\n96996,frog\n96997,ship\n96998,deer\n96999,horse\n97000,truck\n97001,deer\n97002,horse\n97003,deer\n97004,airplane\n97005,horse\n97006,deer\n97007,airplane\n97008,truck\n97009,bird\n97010,ship\n97011,bird\n97012,horse\n97013,dog\n97014,bird\n97015,deer\n97016,bird\n97017,horse\n97018,frog\n97019,bird\n97020,frog\n97021,cat\n97022,deer\n97023,automobile\n97024,truck\n97025,bird\n97026,dog\n97027,dog\n97028,automobile\n97029,cat\n97030,horse\n97031,cat\n97032,deer\n97033,cat\n97034,dog\n97035,horse\n97036,airplane\n97037,dog\n97038,cat\n97039,dog\n97040,automobile\n97041,dog\n97042,horse\n97043,truck\n97044,automobile\n97045,bird\n97046,frog\n97047,airplane\n97048,ship\n97049,cat\n97050,airplane\n97051,dog\n97052,bird\n97053,cat\n97054,dog\n97055,cat\n97056,frog\n97057,horse\n97058,airplane\n97059,truck\n97060,airplane\n97061,cat\n97062,cat\n97063,dog\n97064,dog\n97065,dog\n97066,bird\n97067,dog\n97068,horse\n97069,airplane\n97070,deer\n97071,horse\n97072,airplane\n97073,ship\n97074,deer\n97075,horse\n97076,cat\n97077,automobile\n97078,automobile\n97079,deer\n97080,bird\n97081,bird\n97082,frog\n97083,cat\n97084,frog\n97085,airplane\n97086,automobile\n97087,truck\n97088,dog\n97089,horse\n97090,horse\n97091,horse\n97092,automobile\n97093,airplane\n97094,bird\n97095,bird\n97096,automobile\n97097,ship\n97098,dog\n97099,cat\n97100,airplane\n97101,dog\n97102,frog\n97103,cat\n97104,deer\n97105,frog\n97106,truck\n97107,bird\n97108,deer\n97109,frog\n97110,horse\n97111,dog\n97112,frog\n97113,deer\n97114,truck\n97115,airplane\n97116,frog\n97117,deer\n97118,automobile\n97119,dog\n97120,frog\n97121,deer\n97122,deer\n97123,cat\n97124,dog\n97125,airplane\n97126,bird\n97127,ship\n97128,cat\n97129,frog\n97130,cat\n97131,bird\n97132,dog\n97133,frog\n97134,automobile\n97135,cat\n97136,horse\n97137,horse\n97138,deer\n97139,horse\n97140,bird\n97141,truck\n97142,deer\n97143,bird\n97144,automobile\n97145,truck\n97146,truck\n97147,cat\n97148,cat\n97149,airplane\n97150,deer\n97151,automobile\n97152,horse\n97153,horse\n97154,cat\n97155,frog\n97156,bird\n97157,dog\n97158,dog\n97159,ship\n97160,horse\n97161,horse\n97162,airplane\n97163,frog\n97164,deer\n97165,airplane\n97166,dog\n97167,frog\n97168,truck\n97169,bird\n97170,bird\n97171,truck\n97172,airplane\n97173,airplane\n97174,deer\n97175,ship\n97176,dog\n97177,truck\n97178,cat\n97179,deer\n97180,ship\n97181,airplane\n97182,bird\n97183,deer\n97184,cat\n97185,frog\n97186,ship\n97187,ship\n97188,ship\n97189,ship\n97190,deer\n97191,dog\n97192,deer\n97193,deer\n97194,horse\n97195,bird\n97196,cat\n97197,ship\n97198,frog\n97199,airplane\n97200,bird\n97201,horse\n97202,dog\n97203,truck\n97204,deer\n97205,cat\n97206,ship\n97207,frog\n97208,airplane\n97209,truck\n97210,truck\n97211,truck\n97212,automobile\n97213,bird\n97214,ship\n97215,frog\n97216,cat\n97217,deer\n97218,horse\n97219,cat\n97220,horse\n97221,cat\n97222,airplane\n97223,truck\n97224,bird\n97225,horse\n97226,bird\n97227,frog\n97228,airplane\n97229,cat\n97230,deer\n97231,deer\n97232,automobile\n97233,ship\n97234,truck\n97235,frog\n97236,frog\n97237,dog\n97238,horse\n97239,frog\n97240,ship\n97241,cat\n97242,ship\n97243,deer\n97244,truck\n97245,truck\n97246,bird\n97247,deer\n97248,airplane\n97249,automobile\n97250,deer\n97251,deer\n97252,bird\n97253,dog\n97254,cat\n97255,horse\n97256,frog\n97257,airplane\n97258,deer\n97259,ship\n97260,deer\n97261,cat\n97262,deer\n97263,truck\n97264,cat\n97265,airplane\n97266,frog\n97267,cat\n97268,frog\n97269,cat\n97270,horse\n97271,frog\n97272,airplane\n97273,bird\n97274,deer\n97275,truck\n97276,dog\n97277,dog\n97278,frog\n97279,frog\n97280,ship\n97281,frog\n97282,cat\n97283,bird\n97284,frog\n97285,ship\n97286,deer\n97287,airplane\n97288,bird\n97289,dog\n97290,truck\n97291,ship\n97292,frog\n97293,dog\n97294,automobile\n97295,automobile\n97296,automobile\n97297,automobile\n97298,deer\n97299,truck\n97300,dog\n97301,bird\n97302,dog\n97303,truck\n97304,frog\n97305,dog\n97306,bird\n97307,dog\n97308,truck\n97309,cat\n97310,cat\n97311,truck\n97312,truck\n97313,horse\n97314,cat\n97315,truck\n97316,cat\n97317,ship\n97318,ship\n97319,bird\n97320,cat\n97321,automobile\n97322,cat\n97323,deer\n97324,cat\n97325,bird\n97326,frog\n97327,cat\n97328,airplane\n97329,airplane\n97330,cat\n97331,deer\n97332,frog\n97333,deer\n97334,horse\n97335,cat\n97336,automobile\n97337,automobile\n97338,ship\n97339,truck\n97340,dog\n97341,automobile\n97342,truck\n97343,horse\n97344,bird\n97345,frog\n97346,cat\n97347,dog\n97348,airplane\n97349,automobile\n97350,bird\n97351,frog\n97352,automobile\n97353,frog\n97354,automobile\n97355,dog\n97356,dog\n97357,bird\n97358,deer\n97359,dog\n97360,cat\n97361,automobile\n97362,truck\n97363,deer\n97364,automobile\n97365,cat\n97366,truck\n97367,truck\n97368,deer\n97369,cat\n97370,cat\n97371,bird\n97372,airplane\n97373,truck\n97374,horse\n97375,frog\n97376,airplane\n97377,airplane\n97378,cat\n97379,horse\n97380,bird\n97381,airplane\n97382,frog\n97383,deer\n97384,bird\n97385,dog\n97386,automobile\n97387,frog\n97388,dog\n97389,frog\n97390,cat\n97391,bird\n97392,frog\n97393,dog\n97394,automobile\n97395,frog\n97396,bird\n97397,dog\n97398,dog\n97399,ship\n97400,automobile\n97401,bird\n97402,cat\n97403,ship\n97404,deer\n97405,horse\n97406,horse\n97407,cat\n97408,truck\n97409,deer\n97410,deer\n97411,bird\n97412,bird\n97413,deer\n97414,horse\n97415,automobile\n97416,airplane\n97417,cat\n97418,deer\n97419,dog\n97420,airplane\n97421,dog\n97422,airplane\n97423,dog\n97424,horse\n97425,dog\n97426,ship\n97427,truck\n97428,cat\n97429,airplane\n97430,automobile\n97431,frog\n97432,frog\n97433,deer\n97434,deer\n97435,truck\n97436,horse\n97437,automobile\n97438,deer\n97439,horse\n97440,frog\n97441,automobile\n97442,horse\n97443,horse\n97444,frog\n97445,airplane\n97446,airplane\n97447,truck\n97448,truck\n97449,ship\n97450,dog\n97451,cat\n97452,dog\n97453,bird\n97454,automobile\n97455,truck\n97456,frog\n97457,deer\n97458,frog\n97459,cat\n97460,truck\n97461,ship\n97462,ship\n97463,bird\n97464,automobile\n97465,cat\n97466,ship\n97467,bird\n97468,dog\n97469,deer\n97470,dog\n97471,deer\n97472,frog\n97473,cat\n97474,frog\n97475,automobile\n97476,bird\n97477,frog\n97478,cat\n97479,bird\n97480,dog\n97481,deer\n97482,cat\n97483,cat\n97484,frog\n97485,frog\n97486,horse\n97487,ship\n97488,bird\n97489,automobile\n97490,bird\n97491,bird\n97492,deer\n97493,deer\n97494,horse\n97495,bird\n97496,frog\n97497,horse\n97498,dog\n97499,frog\n97500,frog\n97501,horse\n97502,dog\n97503,deer\n97504,truck\n97505,ship\n97506,truck\n97507,cat\n97508,deer\n97509,dog\n97510,ship\n97511,airplane\n97512,bird\n97513,cat\n97514,airplane\n97515,automobile\n97516,truck\n97517,horse\n97518,cat\n97519,deer\n97520,frog\n97521,cat\n97522,dog\n97523,bird\n97524,airplane\n97525,cat\n97526,airplane\n97527,dog\n97528,dog\n97529,cat\n97530,cat\n97531,deer\n97532,bird\n97533,airplane\n97534,horse\n97535,truck\n97536,bird\n97537,deer\n97538,horse\n97539,airplane\n97540,dog\n97541,cat\n97542,truck\n97543,deer\n97544,automobile\n97545,horse\n97546,ship\n97547,frog\n97548,cat\n97549,bird\n97550,bird\n97551,dog\n97552,truck\n97553,bird\n97554,frog\n97555,frog\n97556,frog\n97557,airplane\n97558,deer\n97559,horse\n97560,deer\n97561,deer\n97562,ship\n97563,truck\n97564,bird\n97565,deer\n97566,bird\n97567,frog\n97568,frog\n97569,automobile\n97570,horse\n97571,ship\n97572,horse\n97573,ship\n97574,automobile\n97575,horse\n97576,frog\n97577,truck\n97578,horse\n97579,deer\n97580,bird\n97581,truck\n97582,frog\n97583,horse\n97584,ship\n97585,automobile\n97586,deer\n97587,cat\n97588,ship\n97589,airplane\n97590,deer\n97591,deer\n97592,automobile\n97593,deer\n97594,horse\n97595,cat\n97596,deer\n97597,frog\n97598,bird\n97599,frog\n97600,cat\n97601,cat\n97602,frog\n97603,frog\n97604,truck\n97605,truck\n97606,ship\n97607,truck\n97608,bird\n97609,cat\n97610,frog\n97611,cat\n97612,truck\n97613,frog\n97614,truck\n97615,automobile\n97616,bird\n97617,airplane\n97618,airplane\n97619,airplane\n97620,cat\n97621,airplane\n97622,airplane\n97623,deer\n97624,bird\n97625,bird\n97626,horse\n97627,horse\n97628,deer\n97629,automobile\n97630,horse\n97631,truck\n97632,truck\n97633,ship\n97634,ship\n97635,automobile\n97636,automobile\n97637,truck\n97638,bird\n97639,horse\n97640,cat\n97641,horse\n97642,cat\n97643,airplane\n97644,bird\n97645,frog\n97646,deer\n97647,cat\n97648,cat\n97649,cat\n97650,truck\n97651,bird\n97652,automobile\n97653,truck\n97654,ship\n97655,cat\n97656,deer\n97657,deer\n97658,deer\n97659,bird\n97660,automobile\n97661,frog\n97662,airplane\n97663,frog\n97664,airplane\n97665,cat\n97666,cat\n97667,automobile\n97668,deer\n97669,horse\n97670,deer\n97671,truck\n97672,ship\n97673,ship\n97674,cat\n97675,horse\n97676,deer\n97677,airplane\n97678,bird\n97679,horse\n97680,cat\n97681,frog\n97682,cat\n97683,deer\n97684,bird\n97685,bird\n97686,truck\n97687,deer\n97688,cat\n97689,dog\n97690,truck\n97691,truck\n97692,cat\n97693,dog\n97694,horse\n97695,ship\n97696,cat\n97697,deer\n97698,cat\n97699,cat\n97700,horse\n97701,dog\n97702,frog\n97703,horse\n97704,horse\n97705,deer\n97706,ship\n97707,horse\n97708,bird\n97709,horse\n97710,airplane\n97711,horse\n97712,cat\n97713,truck\n97714,deer\n97715,dog\n97716,automobile\n97717,dog\n97718,dog\n97719,ship\n97720,dog\n97721,truck\n97722,airplane\n97723,cat\n97724,cat\n97725,cat\n97726,airplane\n97727,horse\n97728,ship\n97729,airplane\n97730,frog\n97731,dog\n97732,horse\n97733,airplane\n97734,bird\n97735,bird\n97736,airplane\n97737,deer\n97738,truck\n97739,dog\n97740,dog\n97741,deer\n97742,bird\n97743,frog\n97744,airplane\n97745,cat\n97746,deer\n97747,ship\n97748,dog\n97749,automobile\n97750,frog\n97751,airplane\n97752,dog\n97753,truck\n97754,cat\n97755,ship\n97756,frog\n97757,ship\n97758,horse\n97759,bird\n97760,dog\n97761,cat\n97762,horse\n97763,airplane\n97764,frog\n97765,horse\n97766,cat\n97767,deer\n97768,frog\n97769,deer\n97770,ship\n97771,frog\n97772,cat\n97773,dog\n97774,airplane\n97775,deer\n97776,horse\n97777,airplane\n97778,cat\n97779,dog\n97780,frog\n97781,frog\n97782,airplane\n97783,frog\n97784,ship\n97785,horse\n97786,dog\n97787,horse\n97788,horse\n97789,automobile\n97790,cat\n97791,horse\n97792,automobile\n97793,automobile\n97794,frog\n97795,dog\n97796,dog\n97797,truck\n97798,frog\n97799,horse\n97800,airplane\n97801,horse\n97802,automobile\n97803,dog\n97804,ship\n97805,horse\n97806,cat\n97807,bird\n97808,deer\n97809,airplane\n97810,automobile\n97811,cat\n97812,dog\n97813,truck\n97814,bird\n97815,frog\n97816,ship\n97817,frog\n97818,truck\n97819,ship\n97820,truck\n97821,dog\n97822,automobile\n97823,deer\n97824,dog\n97825,bird\n97826,truck\n97827,deer\n97828,deer\n97829,cat\n97830,cat\n97831,airplane\n97832,truck\n97833,deer\n97834,truck\n97835,deer\n97836,frog\n97837,ship\n97838,airplane\n97839,airplane\n97840,ship\n97841,cat\n97842,dog\n97843,truck\n97844,deer\n97845,frog\n97846,airplane\n97847,dog\n97848,frog\n97849,cat\n97850,dog\n97851,frog\n97852,dog\n97853,bird\n97854,deer\n97855,automobile\n97856,deer\n97857,bird\n97858,bird\n97859,dog\n97860,cat\n97861,deer\n97862,bird\n97863,horse\n97864,deer\n97865,deer\n97866,cat\n97867,dog\n97868,cat\n97869,dog\n97870,automobile\n97871,dog\n97872,horse\n97873,horse\n97874,horse\n97875,bird\n97876,frog\n97877,truck\n97878,truck\n97879,ship\n97880,frog\n97881,airplane\n97882,truck\n97883,bird\n97884,bird\n97885,truck\n97886,deer\n97887,cat\n97888,truck\n97889,automobile\n97890,dog\n97891,ship\n97892,automobile\n97893,deer\n97894,truck\n97895,ship\n97896,deer\n97897,cat\n97898,truck\n97899,horse\n97900,airplane\n97901,cat\n97902,frog\n97903,automobile\n97904,deer\n97905,cat\n97906,horse\n97907,automobile\n97908,deer\n97909,frog\n97910,deer\n97911,automobile\n97912,frog\n97913,truck\n97914,frog\n97915,truck\n97916,airplane\n97917,airplane\n97918,bird\n97919,deer\n97920,cat\n97921,truck\n97922,dog\n97923,truck\n97924,horse\n97925,bird\n97926,deer\n97927,ship\n97928,frog\n97929,cat\n97930,truck\n97931,cat\n97932,dog\n97933,dog\n97934,ship\n97935,cat\n97936,deer\n97937,cat\n97938,bird\n97939,horse\n97940,bird\n97941,dog\n97942,horse\n97943,truck\n97944,cat\n97945,horse\n97946,dog\n97947,frog\n97948,truck\n97949,frog\n97950,automobile\n97951,horse\n97952,horse\n97953,bird\n97954,frog\n97955,horse\n97956,frog\n97957,cat\n97958,deer\n97959,deer\n97960,airplane\n97961,horse\n97962,dog\n97963,frog\n97964,airplane\n97965,dog\n97966,truck\n97967,cat\n97968,horse\n97969,airplane\n97970,truck\n97971,dog\n97972,horse\n97973,truck\n97974,deer\n97975,horse\n97976,dog\n97977,deer\n97978,dog\n97979,truck\n97980,deer\n97981,frog\n97982,cat\n97983,dog\n97984,horse\n97985,frog\n97986,ship\n97987,horse\n97988,bird\n97989,cat\n97990,frog\n97991,dog\n97992,automobile\n97993,bird\n97994,horse\n97995,frog\n97996,horse\n97997,dog\n97998,ship\n97999,deer\n98000,horse\n98001,cat\n98002,deer\n98003,deer\n98004,cat\n98005,deer\n98006,horse\n98007,airplane\n98008,truck\n98009,truck\n98010,deer\n98011,bird\n98012,automobile\n98013,automobile\n98014,deer\n98015,bird\n98016,deer\n98017,ship\n98018,cat\n98019,bird\n98020,cat\n98021,deer\n98022,frog\n98023,automobile\n98024,deer\n98025,dog\n98026,dog\n98027,ship\n98028,cat\n98029,airplane\n98030,deer\n98031,truck\n98032,deer\n98033,bird\n98034,dog\n98035,cat\n98036,bird\n98037,automobile\n98038,ship\n98039,truck\n98040,deer\n98041,frog\n98042,horse\n98043,airplane\n98044,dog\n98045,automobile\n98046,frog\n98047,bird\n98048,deer\n98049,horse\n98050,horse\n98051,ship\n98052,bird\n98053,truck\n98054,automobile\n98055,horse\n98056,frog\n98057,automobile\n98058,airplane\n98059,deer\n98060,frog\n98061,bird\n98062,airplane\n98063,ship\n98064,cat\n98065,ship\n98066,dog\n98067,ship\n98068,automobile\n98069,dog\n98070,automobile\n98071,horse\n98072,dog\n98073,ship\n98074,ship\n98075,horse\n98076,truck\n98077,automobile\n98078,airplane\n98079,bird\n98080,cat\n98081,ship\n98082,airplane\n98083,truck\n98084,bird\n98085,deer\n98086,horse\n98087,dog\n98088,cat\n98089,airplane\n98090,bird\n98091,bird\n98092,horse\n98093,bird\n98094,frog\n98095,truck\n98096,truck\n98097,frog\n98098,cat\n98099,frog\n98100,ship\n98101,ship\n98102,cat\n98103,cat\n98104,deer\n98105,deer\n98106,frog\n98107,cat\n98108,cat\n98109,frog\n98110,bird\n98111,airplane\n98112,deer\n98113,truck\n98114,dog\n98115,cat\n98116,cat\n98117,dog\n98118,frog\n98119,horse\n98120,frog\n98121,deer\n98122,horse\n98123,automobile\n98124,frog\n98125,ship\n98126,cat\n98127,truck\n98128,automobile\n98129,horse\n98130,frog\n98131,truck\n98132,cat\n98133,cat\n98134,deer\n98135,horse\n98136,deer\n98137,ship\n98138,truck\n98139,bird\n98140,bird\n98141,bird\n98142,dog\n98143,dog\n98144,horse\n98145,horse\n98146,frog\n98147,airplane\n98148,truck\n98149,deer\n98150,cat\n98151,dog\n98152,deer\n98153,airplane\n98154,dog\n98155,frog\n98156,deer\n98157,cat\n98158,deer\n98159,automobile\n98160,automobile\n98161,horse\n98162,dog\n98163,cat\n98164,deer\n98165,cat\n98166,automobile\n98167,truck\n98168,dog\n98169,truck\n98170,automobile\n98171,bird\n98172,deer\n98173,horse\n98174,horse\n98175,deer\n98176,truck\n98177,deer\n98178,cat\n98179,airplane\n98180,horse\n98181,automobile\n98182,automobile\n98183,bird\n98184,ship\n98185,frog\n98186,automobile\n98187,cat\n98188,airplane\n98189,frog\n98190,deer\n98191,ship\n98192,deer\n98193,frog\n98194,ship\n98195,cat\n98196,horse\n98197,dog\n98198,truck\n98199,horse\n98200,automobile\n98201,frog\n98202,frog\n98203,horse\n98204,deer\n98205,deer\n98206,truck\n98207,frog\n98208,cat\n98209,ship\n98210,ship\n98211,horse\n98212,cat\n98213,truck\n98214,horse\n98215,cat\n98216,horse\n98217,frog\n98218,ship\n98219,bird\n98220,dog\n98221,dog\n98222,deer\n98223,truck\n98224,airplane\n98225,truck\n98226,truck\n98227,deer\n98228,horse\n98229,truck\n98230,deer\n98231,truck\n98232,dog\n98233,dog\n98234,horse\n98235,truck\n98236,truck\n98237,cat\n98238,frog\n98239,cat\n98240,ship\n98241,horse\n98242,airplane\n98243,ship\n98244,cat\n98245,cat\n98246,ship\n98247,truck\n98248,cat\n98249,automobile\n98250,horse\n98251,deer\n98252,deer\n98253,deer\n98254,dog\n98255,ship\n98256,dog\n98257,ship\n98258,deer\n98259,ship\n98260,automobile\n98261,bird\n98262,cat\n98263,cat\n98264,airplane\n98265,cat\n98266,dog\n98267,dog\n98268,deer\n98269,automobile\n98270,bird\n98271,cat\n98272,cat\n98273,deer\n98274,airplane\n98275,ship\n98276,frog\n98277,ship\n98278,truck\n98279,ship\n98280,deer\n98281,cat\n98282,bird\n98283,frog\n98284,dog\n98285,ship\n98286,horse\n98287,deer\n98288,airplane\n98289,airplane\n98290,ship\n98291,cat\n98292,automobile\n98293,automobile\n98294,ship\n98295,ship\n98296,cat\n98297,cat\n98298,ship\n98299,dog\n98300,cat\n98301,horse\n98302,truck\n98303,frog\n98304,airplane\n98305,automobile\n98306,ship\n98307,bird\n98308,cat\n98309,deer\n98310,truck\n98311,frog\n98312,frog\n98313,cat\n98314,truck\n98315,dog\n98316,ship\n98317,airplane\n98318,deer\n98319,deer\n98320,truck\n98321,dog\n98322,truck\n98323,automobile\n98324,bird\n98325,dog\n98326,ship\n98327,cat\n98328,deer\n98329,horse\n98330,automobile\n98331,horse\n98332,bird\n98333,ship\n98334,ship\n98335,ship\n98336,ship\n98337,dog\n98338,airplane\n98339,dog\n98340,airplane\n98341,bird\n98342,airplane\n98343,deer\n98344,frog\n98345,frog\n98346,airplane\n98347,deer\n98348,cat\n98349,bird\n98350,dog\n98351,bird\n98352,airplane\n98353,bird\n98354,frog\n98355,deer\n98356,frog\n98357,dog\n98358,ship\n98359,automobile\n98360,deer\n98361,frog\n98362,airplane\n98363,airplane\n98364,cat\n98365,dog\n98366,ship\n98367,truck\n98368,cat\n98369,dog\n98370,deer\n98371,deer\n98372,frog\n98373,airplane\n98374,frog\n98375,automobile\n98376,horse\n98377,bird\n98378,cat\n98379,frog\n98380,cat\n98381,frog\n98382,deer\n98383,truck\n98384,truck\n98385,cat\n98386,dog\n98387,deer\n98388,horse\n98389,cat\n98390,dog\n98391,dog\n98392,deer\n98393,frog\n98394,bird\n98395,deer\n98396,truck\n98397,truck\n98398,ship\n98399,cat\n98400,ship\n98401,bird\n98402,airplane\n98403,truck\n98404,airplane\n98405,cat\n98406,frog\n98407,horse\n98408,frog\n98409,frog\n98410,deer\n98411,deer\n98412,dog\n98413,horse\n98414,ship\n98415,bird\n98416,airplane\n98417,frog\n98418,bird\n98419,ship\n98420,cat\n98421,ship\n98422,automobile\n98423,cat\n98424,airplane\n98425,horse\n98426,deer\n98427,horse\n98428,deer\n98429,truck\n98430,cat\n98431,airplane\n98432,horse\n98433,ship\n98434,truck\n98435,frog\n98436,horse\n98437,deer\n98438,ship\n98439,horse\n98440,frog\n98441,cat\n98442,deer\n98443,deer\n98444,deer\n98445,ship\n98446,airplane\n98447,ship\n98448,cat\n98449,dog\n98450,truck\n98451,ship\n98452,cat\n98453,cat\n98454,automobile\n98455,frog\n98456,automobile\n98457,dog\n98458,frog\n98459,deer\n98460,airplane\n98461,airplane\n98462,deer\n98463,deer\n98464,cat\n98465,airplane\n98466,cat\n98467,dog\n98468,cat\n98469,frog\n98470,deer\n98471,cat\n98472,bird\n98473,frog\n98474,ship\n98475,bird\n98476,automobile\n98477,horse\n98478,deer\n98479,bird\n98480,deer\n98481,deer\n98482,airplane\n98483,cat\n98484,automobile\n98485,cat\n98486,deer\n98487,deer\n98488,cat\n98489,truck\n98490,truck\n98491,bird\n98492,deer\n98493,frog\n98494,frog\n98495,frog\n98496,bird\n98497,horse\n98498,horse\n98499,dog\n98500,bird\n98501,ship\n98502,horse\n98503,cat\n98504,frog\n98505,cat\n98506,cat\n98507,truck\n98508,horse\n98509,bird\n98510,bird\n98511,airplane\n98512,airplane\n98513,dog\n98514,truck\n98515,horse\n98516,horse\n98517,truck\n98518,bird\n98519,bird\n98520,automobile\n98521,deer\n98522,deer\n98523,deer\n98524,bird\n98525,horse\n98526,bird\n98527,ship\n98528,bird\n98529,dog\n98530,dog\n98531,deer\n98532,ship\n98533,frog\n98534,cat\n98535,bird\n98536,ship\n98537,airplane\n98538,automobile\n98539,truck\n98540,frog\n98541,airplane\n98542,truck\n98543,deer\n98544,ship\n98545,truck\n98546,cat\n98547,deer\n98548,dog\n98549,bird\n98550,truck\n98551,automobile\n98552,ship\n98553,automobile\n98554,horse\n98555,dog\n98556,automobile\n98557,truck\n98558,cat\n98559,bird\n98560,bird\n98561,ship\n98562,truck\n98563,deer\n98564,horse\n98565,airplane\n98566,frog\n98567,cat\n98568,ship\n98569,deer\n98570,airplane\n98571,ship\n98572,dog\n98573,cat\n98574,dog\n98575,horse\n98576,dog\n98577,bird\n98578,dog\n98579,airplane\n98580,dog\n98581,frog\n98582,airplane\n98583,airplane\n98584,cat\n98585,deer\n98586,horse\n98587,bird\n98588,truck\n98589,truck\n98590,horse\n98591,ship\n98592,airplane\n98593,truck\n98594,frog\n98595,frog\n98596,frog\n98597,automobile\n98598,airplane\n98599,ship\n98600,dog\n98601,truck\n98602,bird\n98603,airplane\n98604,automobile\n98605,truck\n98606,automobile\n98607,frog\n98608,deer\n98609,frog\n98610,frog\n98611,ship\n98612,horse\n98613,cat\n98614,truck\n98615,airplane\n98616,airplane\n98617,frog\n98618,deer\n98619,horse\n98620,dog\n98621,horse\n98622,deer\n98623,automobile\n98624,truck\n98625,deer\n98626,dog\n98627,bird\n98628,dog\n98629,frog\n98630,automobile\n98631,cat\n98632,deer\n98633,dog\n98634,frog\n98635,horse\n98636,horse\n98637,cat\n98638,automobile\n98639,cat\n98640,bird\n98641,frog\n98642,frog\n98643,cat\n98644,automobile\n98645,horse\n98646,airplane\n98647,deer\n98648,deer\n98649,deer\n98650,dog\n98651,truck\n98652,cat\n98653,deer\n98654,frog\n98655,ship\n98656,cat\n98657,ship\n98658,bird\n98659,cat\n98660,dog\n98661,deer\n98662,cat\n98663,truck\n98664,bird\n98665,horse\n98666,ship\n98667,bird\n98668,truck\n98669,deer\n98670,frog\n98671,dog\n98672,horse\n98673,ship\n98674,frog\n98675,truck\n98676,deer\n98677,ship\n98678,horse\n98679,frog\n98680,truck\n98681,cat\n98682,airplane\n98683,horse\n98684,automobile\n98685,ship\n98686,truck\n98687,dog\n98688,horse\n98689,ship\n98690,dog\n98691,deer\n98692,cat\n98693,dog\n98694,airplane\n98695,frog\n98696,horse\n98697,cat\n98698,ship\n98699,dog\n98700,automobile\n98701,automobile\n98702,truck\n98703,airplane\n98704,frog\n98705,automobile\n98706,frog\n98707,bird\n98708,ship\n98709,airplane\n98710,cat\n98711,truck\n98712,ship\n98713,dog\n98714,deer\n98715,ship\n98716,ship\n98717,horse\n98718,cat\n98719,ship\n98720,dog\n98721,deer\n98722,cat\n98723,cat\n98724,bird\n98725,frog\n98726,dog\n98727,dog\n98728,truck\n98729,frog\n98730,automobile\n98731,cat\n98732,dog\n98733,cat\n98734,frog\n98735,deer\n98736,deer\n98737,truck\n98738,airplane\n98739,dog\n98740,cat\n98741,frog\n98742,ship\n98743,cat\n98744,cat\n98745,dog\n98746,ship\n98747,frog\n98748,automobile\n98749,deer\n98750,ship\n98751,deer\n98752,frog\n98753,deer\n98754,ship\n98755,truck\n98756,cat\n98757,truck\n98758,airplane\n98759,cat\n98760,cat\n98761,horse\n98762,dog\n98763,truck\n98764,deer\n98765,horse\n98766,dog\n98767,horse\n98768,airplane\n98769,horse\n98770,dog\n98771,automobile\n98772,frog\n98773,deer\n98774,cat\n98775,horse\n98776,frog\n98777,automobile\n98778,airplane\n98779,airplane\n98780,horse\n98781,frog\n98782,truck\n98783,dog\n98784,deer\n98785,cat\n98786,frog\n98787,airplane\n98788,truck\n98789,cat\n98790,cat\n98791,bird\n98792,frog\n98793,bird\n98794,truck\n98795,horse\n98796,truck\n98797,dog\n98798,cat\n98799,bird\n98800,dog\n98801,ship\n98802,airplane\n98803,dog\n98804,automobile\n98805,cat\n98806,horse\n98807,deer\n98808,deer\n98809,airplane\n98810,cat\n98811,deer\n98812,frog\n98813,automobile\n98814,ship\n98815,truck\n98816,frog\n98817,deer\n98818,truck\n98819,horse\n98820,ship\n98821,cat\n98822,deer\n98823,truck\n98824,airplane\n98825,bird\n98826,bird\n98827,deer\n98828,cat\n98829,cat\n98830,dog\n98831,truck\n98832,airplane\n98833,horse\n98834,frog\n98835,cat\n98836,dog\n98837,dog\n98838,deer\n98839,dog\n98840,automobile\n98841,dog\n98842,bird\n98843,dog\n98844,dog\n98845,dog\n98846,cat\n98847,frog\n98848,cat\n98849,cat\n98850,deer\n98851,dog\n98852,cat\n98853,horse\n98854,automobile\n98855,deer\n98856,dog\n98857,frog\n98858,horse\n98859,truck\n98860,dog\n98861,truck\n98862,truck\n98863,truck\n98864,frog\n98865,cat\n98866,cat\n98867,dog\n98868,automobile\n98869,cat\n98870,frog\n98871,bird\n98872,bird\n98873,bird\n98874,ship\n98875,cat\n98876,dog\n98877,truck\n98878,airplane\n98879,cat\n98880,bird\n98881,bird\n98882,deer\n98883,horse\n98884,airplane\n98885,cat\n98886,frog\n98887,airplane\n98888,cat\n98889,frog\n98890,dog\n98891,deer\n98892,truck\n98893,horse\n98894,truck\n98895,cat\n98896,frog\n98897,automobile\n98898,frog\n98899,truck\n98900,deer\n98901,frog\n98902,bird\n98903,automobile\n98904,ship\n98905,dog\n98906,cat\n98907,deer\n98908,horse\n98909,cat\n98910,cat\n98911,horse\n98912,airplane\n98913,horse\n98914,automobile\n98915,cat\n98916,ship\n98917,cat\n98918,dog\n98919,truck\n98920,frog\n98921,frog\n98922,horse\n98923,truck\n98924,dog\n98925,horse\n98926,airplane\n98927,cat\n98928,airplane\n98929,horse\n98930,truck\n98931,cat\n98932,ship\n98933,frog\n98934,ship\n98935,deer\n98936,ship\n98937,horse\n98938,dog\n98939,automobile\n98940,cat\n98941,deer\n98942,dog\n98943,ship\n98944,dog\n98945,dog\n98946,truck\n98947,dog\n98948,deer\n98949,cat\n98950,cat\n98951,cat\n98952,horse\n98953,dog\n98954,dog\n98955,truck\n98956,deer\n98957,automobile\n98958,airplane\n98959,frog\n98960,cat\n98961,airplane\n98962,ship\n98963,deer\n98964,deer\n98965,ship\n98966,frog\n98967,horse\n98968,bird\n98969,frog\n98970,bird\n98971,automobile\n98972,dog\n98973,horse\n98974,bird\n98975,airplane\n98976,airplane\n98977,horse\n98978,bird\n98979,ship\n98980,deer\n98981,horse\n98982,frog\n98983,dog\n98984,airplane\n98985,frog\n98986,dog\n98987,airplane\n98988,cat\n98989,cat\n98990,bird\n98991,airplane\n98992,deer\n98993,airplane\n98994,airplane\n98995,cat\n98996,airplane\n98997,ship\n98998,horse\n98999,ship\n99000,deer\n99001,bird\n99002,ship\n99003,automobile\n99004,truck\n99005,truck\n99006,deer\n99007,cat\n99008,dog\n99009,truck\n99010,automobile\n99011,automobile\n99012,horse\n99013,ship\n99014,cat\n99015,deer\n99016,truck\n99017,horse\n99018,ship\n99019,truck\n99020,dog\n99021,bird\n99022,truck\n99023,deer\n99024,dog\n99025,deer\n99026,dog\n99027,cat\n99028,airplane\n99029,horse\n99030,deer\n99031,deer\n99032,airplane\n99033,truck\n99034,automobile\n99035,deer\n99036,deer\n99037,automobile\n99038,truck\n99039,deer\n99040,deer\n99041,ship\n99042,horse\n99043,cat\n99044,automobile\n99045,frog\n99046,dog\n99047,horse\n99048,frog\n99049,cat\n99050,automobile\n99051,dog\n99052,bird\n99053,deer\n99054,dog\n99055,horse\n99056,cat\n99057,frog\n99058,bird\n99059,cat\n99060,dog\n99061,ship\n99062,airplane\n99063,automobile\n99064,bird\n99065,airplane\n99066,truck\n99067,deer\n99068,automobile\n99069,dog\n99070,ship\n99071,automobile\n99072,ship\n99073,frog\n99074,ship\n99075,horse\n99076,cat\n99077,deer\n99078,ship\n99079,horse\n99080,bird\n99081,dog\n99082,frog\n99083,airplane\n99084,horse\n99085,airplane\n99086,bird\n99087,ship\n99088,bird\n99089,frog\n99090,dog\n99091,deer\n99092,bird\n99093,airplane\n99094,deer\n99095,dog\n99096,dog\n99097,horse\n99098,ship\n99099,frog\n99100,frog\n99101,bird\n99102,dog\n99103,truck\n99104,horse\n99105,horse\n99106,automobile\n99107,frog\n99108,airplane\n99109,airplane\n99110,bird\n99111,dog\n99112,frog\n99113,bird\n99114,airplane\n99115,ship\n99116,cat\n99117,frog\n99118,horse\n99119,deer\n99120,airplane\n99121,cat\n99122,frog\n99123,automobile\n99124,airplane\n99125,deer\n99126,bird\n99127,bird\n99128,truck\n99129,frog\n99130,cat\n99131,deer\n99132,bird\n99133,frog\n99134,airplane\n99135,ship\n99136,cat\n99137,ship\n99138,ship\n99139,frog\n99140,truck\n99141,airplane\n99142,truck\n99143,dog\n99144,deer\n99145,bird\n99146,bird\n99147,truck\n99148,deer\n99149,dog\n99150,truck\n99151,deer\n99152,automobile\n99153,truck\n99154,dog\n99155,deer\n99156,deer\n99157,truck\n99158,cat\n99159,airplane\n99160,frog\n99161,dog\n99162,cat\n99163,truck\n99164,cat\n99165,cat\n99166,frog\n99167,automobile\n99168,automobile\n99169,deer\n99170,cat\n99171,frog\n99172,dog\n99173,airplane\n99174,ship\n99175,ship\n99176,dog\n99177,airplane\n99178,automobile\n99179,bird\n99180,deer\n99181,bird\n99182,frog\n99183,deer\n99184,airplane\n99185,deer\n99186,bird\n99187,ship\n99188,automobile\n99189,ship\n99190,dog\n99191,frog\n99192,truck\n99193,truck\n99194,truck\n99195,frog\n99196,horse\n99197,bird\n99198,deer\n99199,bird\n99200,cat\n99201,dog\n99202,dog\n99203,horse\n99204,dog\n99205,horse\n99206,dog\n99207,ship\n99208,deer\n99209,frog\n99210,automobile\n99211,deer\n99212,truck\n99213,cat\n99214,cat\n99215,horse\n99216,cat\n99217,deer\n99218,truck\n99219,airplane\n99220,automobile\n99221,truck\n99222,horse\n99223,cat\n99224,frog\n99225,automobile\n99226,cat\n99227,automobile\n99228,ship\n99229,deer\n99230,ship\n99231,airplane\n99232,airplane\n99233,cat\n99234,ship\n99235,airplane\n99236,truck\n99237,deer\n99238,horse\n99239,dog\n99240,ship\n99241,frog\n99242,cat\n99243,ship\n99244,horse\n99245,bird\n99246,bird\n99247,deer\n99248,cat\n99249,truck\n99250,frog\n99251,cat\n99252,cat\n99253,dog\n99254,airplane\n99255,airplane\n99256,truck\n99257,deer\n99258,bird\n99259,cat\n99260,frog\n99261,frog\n99262,truck\n99263,airplane\n99264,cat\n99265,dog\n99266,cat\n99267,deer\n99268,deer\n99269,bird\n99270,cat\n99271,airplane\n99272,airplane\n99273,automobile\n99274,dog\n99275,automobile\n99276,truck\n99277,automobile\n99278,ship\n99279,truck\n99280,dog\n99281,cat\n99282,ship\n99283,frog\n99284,cat\n99285,airplane\n99286,cat\n99287,deer\n99288,frog\n99289,cat\n99290,horse\n99291,airplane\n99292,bird\n99293,frog\n99294,ship\n99295,ship\n99296,automobile\n99297,frog\n99298,ship\n99299,frog\n99300,horse\n99301,bird\n99302,deer\n99303,frog\n99304,deer\n99305,airplane\n99306,ship\n99307,dog\n99308,truck\n99309,ship\n99310,truck\n99311,deer\n99312,deer\n99313,frog\n99314,cat\n99315,cat\n99316,horse\n99317,frog\n99318,dog\n99319,frog\n99320,bird\n99321,frog\n99322,dog\n99323,bird\n99324,bird\n99325,automobile\n99326,frog\n99327,automobile\n99328,airplane\n99329,deer\n99330,ship\n99331,airplane\n99332,cat\n99333,cat\n99334,automobile\n99335,bird\n99336,deer\n99337,horse\n99338,frog\n99339,horse\n99340,cat\n99341,cat\n99342,cat\n99343,airplane\n99344,horse\n99345,bird\n99346,airplane\n99347,horse\n99348,truck\n99349,deer\n99350,cat\n99351,frog\n99352,horse\n99353,airplane\n99354,horse\n99355,ship\n99356,cat\n99357,frog\n99358,bird\n99359,frog\n99360,horse\n99361,frog\n99362,airplane\n99363,deer\n99364,horse\n99365,dog\n99366,deer\n99367,airplane\n99368,dog\n99369,dog\n99370,cat\n99371,horse\n99372,dog\n99373,airplane\n99374,cat\n99375,ship\n99376,frog\n99377,airplane\n99378,bird\n99379,bird\n99380,bird\n99381,frog\n99382,dog\n99383,bird\n99384,bird\n99385,cat\n99386,automobile\n99387,deer\n99388,dog\n99389,cat\n99390,cat\n99391,frog\n99392,bird\n99393,horse\n99394,frog\n99395,deer\n99396,deer\n99397,dog\n99398,dog\n99399,truck\n99400,cat\n99401,deer\n99402,frog\n99403,cat\n99404,ship\n99405,ship\n99406,truck\n99407,horse\n99408,deer\n99409,dog\n99410,horse\n99411,truck\n99412,horse\n99413,cat\n99414,automobile\n99415,deer\n99416,ship\n99417,cat\n99418,dog\n99419,truck\n99420,bird\n99421,dog\n99422,airplane\n99423,cat\n99424,cat\n99425,cat\n99426,automobile\n99427,cat\n99428,truck\n99429,bird\n99430,airplane\n99431,ship\n99432,airplane\n99433,automobile\n99434,deer\n99435,deer\n99436,airplane\n99437,truck\n99438,bird\n99439,ship\n99440,bird\n99441,horse\n99442,cat\n99443,ship\n99444,frog\n99445,dog\n99446,cat\n99447,truck\n99448,cat\n99449,horse\n99450,dog\n99451,ship\n99452,truck\n99453,airplane\n99454,deer\n99455,truck\n99456,truck\n99457,deer\n99458,airplane\n99459,automobile\n99460,truck\n99461,airplane\n99462,deer\n99463,cat\n99464,truck\n99465,deer\n99466,deer\n99467,horse\n99468,truck\n99469,ship\n99470,dog\n99471,deer\n99472,cat\n99473,frog\n99474,truck\n99475,automobile\n99476,truck\n99477,ship\n99478,truck\n99479,deer\n99480,ship\n99481,automobile\n99482,deer\n99483,deer\n99484,deer\n99485,deer\n99486,frog\n99487,horse\n99488,ship\n99489,bird\n99490,automobile\n99491,ship\n99492,ship\n99493,deer\n99494,truck\n99495,horse\n99496,frog\n99497,truck\n99498,bird\n99499,airplane\n99500,automobile\n99501,airplane\n99502,deer\n99503,dog\n99504,truck\n99505,airplane\n99506,dog\n99507,truck\n99508,dog\n99509,bird\n99510,airplane\n99511,deer\n99512,deer\n99513,horse\n99514,truck\n99515,airplane\n99516,automobile\n99517,airplane\n99518,airplane\n99519,bird\n99520,deer\n99521,dog\n99522,deer\n99523,frog\n99524,cat\n99525,bird\n99526,automobile\n99527,ship\n99528,deer\n99529,bird\n99530,bird\n99531,truck\n99532,dog\n99533,truck\n99534,truck\n99535,bird\n99536,truck\n99537,deer\n99538,automobile\n99539,bird\n99540,airplane\n99541,cat\n99542,dog\n99543,airplane\n99544,bird\n99545,ship\n99546,dog\n99547,dog\n99548,frog\n99549,cat\n99550,bird\n99551,bird\n99552,horse\n99553,cat\n99554,automobile\n99555,dog\n99556,airplane\n99557,truck\n99558,frog\n99559,cat\n99560,ship\n99561,dog\n99562,frog\n99563,ship\n99564,ship\n99565,cat\n99566,cat\n99567,horse\n99568,automobile\n99569,cat\n99570,automobile\n99571,deer\n99572,cat\n99573,frog\n99574,automobile\n99575,airplane\n99576,horse\n99577,frog\n99578,dog\n99579,bird\n99580,dog\n99581,airplane\n99582,airplane\n99583,frog\n99584,ship\n99585,deer\n99586,horse\n99587,horse\n99588,automobile\n99589,deer\n99590,airplane\n99591,dog\n99592,frog\n99593,horse\n99594,bird\n99595,frog\n99596,cat\n99597,truck\n99598,ship\n99599,horse\n99600,automobile\n99601,deer\n99602,bird\n99603,ship\n99604,cat\n99605,cat\n99606,horse\n99607,cat\n99608,truck\n99609,deer\n99610,deer\n99611,bird\n99612,cat\n99613,deer\n99614,truck\n99615,frog\n99616,truck\n99617,horse\n99618,frog\n99619,truck\n99620,bird\n99621,automobile\n99622,dog\n99623,frog\n99624,horse\n99625,truck\n99626,horse\n99627,cat\n99628,deer\n99629,deer\n99630,truck\n99631,frog\n99632,automobile\n99633,dog\n99634,airplane\n99635,cat\n99636,airplane\n99637,deer\n99638,dog\n99639,horse\n99640,airplane\n99641,bird\n99642,cat\n99643,cat\n99644,deer\n99645,deer\n99646,bird\n99647,deer\n99648,deer\n99649,ship\n99650,automobile\n99651,horse\n99652,dog\n99653,horse\n99654,truck\n99655,truck\n99656,truck\n99657,ship\n99658,ship\n99659,ship\n99660,airplane\n99661,cat\n99662,deer\n99663,automobile\n99664,truck\n99665,ship\n99666,horse\n99667,horse\n99668,deer\n99669,truck\n99670,bird\n99671,horse\n99672,horse\n99673,truck\n99674,bird\n99675,airplane\n99676,bird\n99677,airplane\n99678,dog\n99679,bird\n99680,frog\n99681,automobile\n99682,ship\n99683,horse\n99684,dog\n99685,airplane\n99686,frog\n99687,dog\n99688,horse\n99689,automobile\n99690,airplane\n99691,dog\n99692,truck\n99693,cat\n99694,automobile\n99695,deer\n99696,truck\n99697,cat\n99698,dog\n99699,dog\n99700,airplane\n99701,airplane\n99702,airplane\n99703,deer\n99704,dog\n99705,automobile\n99706,bird\n99707,frog\n99708,dog\n99709,truck\n99710,frog\n99711,airplane\n99712,cat\n99713,bird\n99714,airplane\n99715,horse\n99716,bird\n99717,deer\n99718,ship\n99719,automobile\n99720,deer\n99721,cat\n99722,horse\n99723,airplane\n99724,airplane\n99725,truck\n99726,airplane\n99727,truck\n99728,truck\n99729,frog\n99730,dog\n99731,ship\n99732,frog\n99733,horse\n99734,cat\n99735,cat\n99736,cat\n99737,horse\n99738,deer\n99739,frog\n99740,frog\n99741,horse\n99742,horse\n99743,truck\n99744,airplane\n99745,horse\n99746,horse\n99747,ship\n99748,automobile\n99749,dog\n99750,deer\n99751,bird\n99752,bird\n99753,automobile\n99754,truck\n99755,dog\n99756,cat\n99757,cat\n99758,horse\n99759,horse\n99760,cat\n99761,ship\n99762,truck\n99763,ship\n99764,airplane\n99765,frog\n99766,automobile\n99767,deer\n99768,automobile\n99769,deer\n99770,airplane\n99771,ship\n99772,dog\n99773,deer\n99774,automobile\n99775,truck\n99776,truck\n99777,horse\n99778,deer\n99779,bird\n99780,automobile\n99781,cat\n99782,truck\n99783,ship\n99784,frog\n99785,airplane\n99786,deer\n99787,deer\n99788,automobile\n99789,truck\n99790,ship\n99791,horse\n99792,airplane\n99793,deer\n99794,horse\n99795,frog\n99796,bird\n99797,truck\n99798,dog\n99799,automobile\n99800,dog\n99801,deer\n99802,deer\n99803,horse\n99804,horse\n99805,deer\n99806,deer\n99807,deer\n99808,deer\n99809,frog\n99810,bird\n99811,truck\n99812,bird\n99813,truck\n99814,automobile\n99815,cat\n99816,automobile\n99817,cat\n99818,ship\n99819,cat\n99820,deer\n99821,dog\n99822,truck\n99823,automobile\n99824,horse\n99825,horse\n99826,horse\n99827,cat\n99828,frog\n99829,bird\n99830,airplane\n99831,deer\n99832,ship\n99833,airplane\n99834,horse\n99835,cat\n99836,automobile\n99837,ship\n99838,cat\n99839,automobile\n99840,horse\n99841,deer\n99842,ship\n99843,dog\n99844,bird\n99845,automobile\n99846,frog\n99847,automobile\n99848,dog\n99849,deer\n99850,bird\n99851,ship\n99852,bird\n99853,frog\n99854,deer\n99855,automobile\n99856,cat\n99857,dog\n99858,airplane\n99859,frog\n99860,truck\n99861,truck\n99862,truck\n99863,automobile\n99864,horse\n99865,automobile\n99866,horse\n99867,deer\n99868,bird\n99869,dog\n99870,truck\n99871,automobile\n99872,cat\n99873,cat\n99874,truck\n99875,airplane\n99876,deer\n99877,airplane\n99878,bird\n99879,deer\n99880,ship\n99881,ship\n99882,frog\n99883,truck\n99884,deer\n99885,bird\n99886,frog\n99887,horse\n99888,cat\n99889,horse\n99890,frog\n99891,deer\n99892,horse\n99893,deer\n99894,deer\n99895,ship\n99896,ship\n99897,ship\n99898,dog\n99899,horse\n99900,horse\n99901,deer\n99902,frog\n99903,automobile\n99904,cat\n99905,automobile\n99906,truck\n99907,automobile\n99908,ship\n99909,dog\n99910,airplane\n99911,frog\n99912,dog\n99913,ship\n99914,airplane\n99915,airplane\n99916,ship\n99917,horse\n99918,dog\n99919,cat\n99920,deer\n99921,bird\n99922,horse\n99923,dog\n99924,deer\n99925,dog\n99926,horse\n99927,deer\n99928,bird\n99929,horse\n99930,airplane\n99931,cat\n99932,ship\n99933,deer\n99934,airplane\n99935,frog\n99936,ship\n99937,dog\n99938,airplane\n99939,frog\n99940,cat\n99941,deer\n99942,dog\n99943,frog\n99944,frog\n99945,cat\n99946,automobile\n99947,horse\n99948,deer\n99949,ship\n99950,bird\n99951,frog\n99952,frog\n99953,bird\n99954,frog\n99955,cat\n99956,frog\n99957,dog\n99958,frog\n99959,bird\n99960,airplane\n99961,dog\n99962,cat\n99963,automobile\n99964,dog\n99965,truck\n99966,airplane\n99967,horse\n99968,horse\n99969,cat\n99970,deer\n99971,frog\n99972,dog\n99973,automobile\n99974,dog\n99975,airplane\n99976,ship\n99977,cat\n99978,truck\n99979,dog\n99980,airplane\n99981,bird\n99982,frog\n99983,deer\n99984,cat\n99985,bird\n99986,cat\n99987,cat\n99988,deer\n99989,cat\n99990,cat\n99991,frog\n99992,horse\n99993,frog\n99994,truck\n99995,cat\n99996,cat\n99997,dog\n99998,dog\n99999,deer\n100000,bird\n100001,deer\n100002,deer\n100003,deer\n100004,automobile\n100005,frog\n100006,automobile\n100007,cat\n100008,airplane\n100009,truck\n100010,horse\n100011,cat\n100012,truck\n100013,airplane\n100014,cat\n100015,ship\n100016,deer\n100017,automobile\n100018,truck\n100019,cat\n100020,cat\n100021,bird\n100022,ship\n100023,automobile\n100024,automobile\n100025,truck\n100026,deer\n100027,frog\n100028,automobile\n100029,cat\n100030,dog\n100031,frog\n100032,bird\n100033,frog\n100034,airplane\n100035,deer\n100036,cat\n100037,deer\n100038,dog\n100039,bird\n100040,bird\n100041,deer\n100042,dog\n100043,dog\n100044,ship\n100045,dog\n100046,deer\n100047,cat\n100048,frog\n100049,bird\n100050,cat\n100051,cat\n100052,deer\n100053,truck\n100054,automobile\n100055,truck\n100056,dog\n100057,cat\n100058,frog\n100059,bird\n100060,deer\n100061,ship\n100062,horse\n100063,ship\n100064,deer\n100065,airplane\n100066,ship\n100067,cat\n100068,truck\n100069,horse\n100070,ship\n100071,automobile\n100072,bird\n100073,dog\n100074,frog\n100075,horse\n100076,automobile\n100077,cat\n100078,dog\n100079,frog\n100080,ship\n100081,airplane\n100082,dog\n100083,automobile\n100084,cat\n100085,frog\n100086,automobile\n100087,deer\n100088,horse\n100089,frog\n100090,automobile\n100091,cat\n100092,cat\n100093,frog\n100094,bird\n100095,airplane\n100096,cat\n100097,cat\n100098,frog\n100099,truck\n100100,dog\n100101,horse\n100102,truck\n100103,automobile\n100104,airplane\n100105,bird\n100106,cat\n100107,cat\n100108,cat\n100109,airplane\n100110,airplane\n100111,automobile\n100112,cat\n100113,cat\n100114,frog\n100115,dog\n100116,automobile\n100117,airplane\n100118,dog\n100119,bird\n100120,dog\n100121,deer\n100122,ship\n100123,bird\n100124,deer\n100125,truck\n100126,cat\n100127,cat\n100128,deer\n100129,truck\n100130,dog\n100131,airplane\n100132,frog\n100133,deer\n100134,cat\n100135,cat\n100136,dog\n100137,bird\n100138,frog\n100139,airplane\n100140,airplane\n100141,automobile\n100142,dog\n100143,frog\n100144,ship\n100145,dog\n100146,truck\n100147,ship\n100148,frog\n100149,deer\n100150,automobile\n100151,frog\n100152,deer\n100153,deer\n100154,truck\n100155,deer\n100156,airplane\n100157,horse\n100158,deer\n100159,ship\n100160,cat\n100161,dog\n100162,airplane\n100163,deer\n100164,cat\n100165,dog\n100166,cat\n100167,automobile\n100168,deer\n100169,ship\n100170,horse\n100171,cat\n100172,truck\n100173,truck\n100174,airplane\n100175,ship\n100176,dog\n100177,cat\n100178,bird\n100179,automobile\n100180,truck\n100181,truck\n100182,horse\n100183,deer\n100184,dog\n100185,deer\n100186,cat\n100187,airplane\n100188,airplane\n100189,ship\n100190,deer\n100191,truck\n100192,airplane\n100193,bird\n100194,frog\n100195,frog\n100196,cat\n100197,dog\n100198,horse\n100199,bird\n100200,dog\n100201,ship\n100202,ship\n100203,frog\n100204,cat\n100205,bird\n100206,cat\n100207,deer\n100208,dog\n100209,dog\n100210,cat\n100211,frog\n100212,airplane\n100213,cat\n100214,dog\n100215,frog\n100216,truck\n100217,truck\n100218,deer\n100219,ship\n100220,bird\n100221,horse\n100222,truck\n100223,automobile\n100224,truck\n100225,deer\n100226,frog\n100227,cat\n100228,dog\n100229,dog\n100230,dog\n100231,cat\n100232,deer\n100233,airplane\n100234,airplane\n100235,dog\n100236,airplane\n100237,truck\n100238,deer\n100239,deer\n100240,airplane\n100241,cat\n100242,airplane\n100243,truck\n100244,frog\n100245,frog\n100246,cat\n100247,frog\n100248,truck\n100249,bird\n100250,airplane\n100251,deer\n100252,airplane\n100253,dog\n100254,truck\n100255,ship\n100256,airplane\n100257,airplane\n100258,frog\n100259,bird\n100260,bird\n100261,cat\n100262,truck\n100263,automobile\n100264,airplane\n100265,deer\n100266,ship\n100267,airplane\n100268,truck\n100269,bird\n100270,frog\n100271,dog\n100272,airplane\n100273,deer\n100274,truck\n100275,truck\n100276,bird\n100277,frog\n100278,cat\n100279,dog\n100280,frog\n100281,truck\n100282,airplane\n100283,deer\n100284,dog\n100285,automobile\n100286,ship\n100287,airplane\n100288,automobile\n100289,deer\n100290,truck\n100291,truck\n100292,truck\n100293,airplane\n100294,ship\n100295,deer\n100296,horse\n100297,cat\n100298,cat\n100299,ship\n100300,horse\n100301,frog\n100302,deer\n100303,cat\n100304,horse\n100305,ship\n100306,dog\n100307,truck\n100308,frog\n100309,truck\n100310,deer\n100311,frog\n100312,deer\n100313,ship\n100314,automobile\n100315,truck\n100316,frog\n100317,deer\n100318,truck\n100319,cat\n100320,deer\n100321,dog\n100322,frog\n100323,horse\n100324,horse\n100325,cat\n100326,truck\n100327,frog\n100328,frog\n100329,cat\n100330,ship\n100331,cat\n100332,airplane\n100333,deer\n100334,automobile\n100335,automobile\n100336,ship\n100337,bird\n100338,cat\n100339,deer\n100340,automobile\n100341,cat\n100342,horse\n100343,dog\n100344,automobile\n100345,bird\n100346,dog\n100347,frog\n100348,automobile\n100349,deer\n100350,deer\n100351,frog\n100352,bird\n100353,frog\n100354,deer\n100355,airplane\n100356,truck\n100357,frog\n100358,airplane\n100359,deer\n100360,truck\n100361,truck\n100362,deer\n100363,horse\n100364,deer\n100365,horse\n100366,horse\n100367,bird\n100368,horse\n100369,airplane\n100370,cat\n100371,truck\n100372,frog\n100373,ship\n100374,cat\n100375,automobile\n100376,automobile\n100377,cat\n100378,deer\n100379,truck\n100380,cat\n100381,horse\n100382,deer\n100383,frog\n100384,cat\n100385,truck\n100386,truck\n100387,truck\n100388,cat\n100389,horse\n100390,airplane\n100391,frog\n100392,frog\n100393,cat\n100394,airplane\n100395,deer\n100396,airplane\n100397,ship\n100398,horse\n100399,frog\n100400,airplane\n100401,airplane\n100402,truck\n100403,frog\n100404,deer\n100405,ship\n100406,bird\n100407,deer\n100408,truck\n100409,cat\n100410,frog\n100411,truck\n100412,bird\n100413,horse\n100414,bird\n100415,deer\n100416,truck\n100417,ship\n100418,frog\n100419,bird\n100420,truck\n100421,horse\n100422,cat\n100423,frog\n100424,cat\n100425,deer\n100426,ship\n100427,deer\n100428,automobile\n100429,ship\n100430,cat\n100431,frog\n100432,automobile\n100433,truck\n100434,ship\n100435,airplane\n100436,horse\n100437,ship\n100438,ship\n100439,deer\n100440,airplane\n100441,deer\n100442,dog\n100443,deer\n100444,horse\n100445,automobile\n100446,airplane\n100447,deer\n100448,airplane\n100449,truck\n100450,horse\n100451,bird\n100452,frog\n100453,bird\n100454,horse\n100455,airplane\n100456,deer\n100457,truck\n100458,deer\n100459,bird\n100460,ship\n100461,cat\n100462,deer\n100463,dog\n100464,truck\n100465,dog\n100466,bird\n100467,horse\n100468,cat\n100469,truck\n100470,bird\n100471,ship\n100472,truck\n100473,bird\n100474,horse\n100475,deer\n100476,ship\n100477,deer\n100478,automobile\n100479,cat\n100480,horse\n100481,deer\n100482,dog\n100483,airplane\n100484,automobile\n100485,dog\n100486,horse\n100487,deer\n100488,frog\n100489,cat\n100490,automobile\n100491,deer\n100492,cat\n100493,cat\n100494,frog\n100495,cat\n100496,airplane\n100497,cat\n100498,cat\n100499,frog\n100500,airplane\n100501,horse\n100502,truck\n100503,ship\n100504,cat\n100505,cat\n100506,cat\n100507,cat\n100508,airplane\n100509,dog\n100510,cat\n100511,dog\n100512,cat\n100513,cat\n100514,ship\n100515,airplane\n100516,deer\n100517,frog\n100518,frog\n100519,ship\n100520,deer\n100521,airplane\n100522,deer\n100523,truck\n100524,cat\n100525,airplane\n100526,automobile\n100527,horse\n100528,dog\n100529,horse\n100530,cat\n100531,ship\n100532,ship\n100533,bird\n100534,frog\n100535,truck\n100536,dog\n100537,airplane\n100538,ship\n100539,bird\n100540,ship\n100541,dog\n100542,cat\n100543,airplane\n100544,dog\n100545,dog\n100546,automobile\n100547,ship\n100548,cat\n100549,deer\n100550,cat\n100551,deer\n100552,cat\n100553,horse\n100554,deer\n100555,bird\n100556,deer\n100557,airplane\n100558,horse\n100559,dog\n100560,frog\n100561,automobile\n100562,cat\n100563,horse\n100564,truck\n100565,bird\n100566,airplane\n100567,frog\n100568,ship\n100569,deer\n100570,deer\n100571,automobile\n100572,truck\n100573,frog\n100574,airplane\n100575,ship\n100576,dog\n100577,frog\n100578,frog\n100579,frog\n100580,deer\n100581,horse\n100582,horse\n100583,deer\n100584,ship\n100585,dog\n100586,frog\n100587,airplane\n100588,automobile\n100589,ship\n100590,cat\n100591,deer\n100592,automobile\n100593,automobile\n100594,truck\n100595,dog\n100596,airplane\n100597,deer\n100598,bird\n100599,deer\n100600,horse\n100601,frog\n100602,cat\n100603,horse\n100604,airplane\n100605,bird\n100606,horse\n100607,frog\n100608,ship\n100609,truck\n100610,dog\n100611,cat\n100612,cat\n100613,ship\n100614,automobile\n100615,automobile\n100616,deer\n100617,truck\n100618,truck\n100619,frog\n100620,deer\n100621,horse\n100622,truck\n100623,airplane\n100624,airplane\n100625,automobile\n100626,dog\n100627,frog\n100628,cat\n100629,truck\n100630,horse\n100631,deer\n100632,airplane\n100633,truck\n100634,automobile\n100635,dog\n100636,airplane\n100637,truck\n100638,horse\n100639,cat\n100640,truck\n100641,deer\n100642,cat\n100643,cat\n100644,airplane\n100645,cat\n100646,frog\n100647,dog\n100648,frog\n100649,automobile\n100650,ship\n100651,dog\n100652,ship\n100653,horse\n100654,dog\n100655,dog\n100656,airplane\n100657,cat\n100658,horse\n100659,bird\n100660,frog\n100661,cat\n100662,bird\n100663,airplane\n100664,frog\n100665,deer\n100666,cat\n100667,cat\n100668,horse\n100669,cat\n100670,ship\n100671,frog\n100672,frog\n100673,horse\n100674,deer\n100675,frog\n100676,horse\n100677,frog\n100678,bird\n100679,dog\n100680,bird\n100681,dog\n100682,deer\n100683,frog\n100684,frog\n100685,truck\n100686,truck\n100687,frog\n100688,truck\n100689,airplane\n100690,frog\n100691,horse\n100692,truck\n100693,cat\n100694,deer\n100695,frog\n100696,cat\n100697,ship\n100698,cat\n100699,frog\n100700,cat\n100701,cat\n100702,airplane\n100703,cat\n100704,airplane\n100705,cat\n100706,dog\n100707,dog\n100708,horse\n100709,cat\n100710,deer\n100711,automobile\n100712,dog\n100713,cat\n100714,frog\n100715,bird\n100716,horse\n100717,truck\n100718,horse\n100719,deer\n100720,airplane\n100721,ship\n100722,airplane\n100723,frog\n100724,frog\n100725,frog\n100726,truck\n100727,automobile\n100728,frog\n100729,deer\n100730,airplane\n100731,dog\n100732,horse\n100733,dog\n100734,automobile\n100735,frog\n100736,cat\n100737,deer\n100738,frog\n100739,automobile\n100740,dog\n100741,dog\n100742,bird\n100743,deer\n100744,automobile\n100745,ship\n100746,bird\n100747,truck\n100748,automobile\n100749,cat\n100750,cat\n100751,ship\n100752,cat\n100753,airplane\n100754,cat\n100755,automobile\n100756,dog\n100757,horse\n100758,cat\n100759,frog\n100760,airplane\n100761,dog\n100762,deer\n100763,bird\n100764,dog\n100765,dog\n100766,truck\n100767,truck\n100768,deer\n100769,dog\n100770,dog\n100771,ship\n100772,ship\n100773,deer\n100774,deer\n100775,dog\n100776,bird\n100777,bird\n100778,truck\n100779,ship\n100780,horse\n100781,dog\n100782,horse\n100783,truck\n100784,ship\n100785,deer\n100786,bird\n100787,bird\n100788,frog\n100789,horse\n100790,bird\n100791,frog\n100792,frog\n100793,automobile\n100794,truck\n100795,deer\n100796,ship\n100797,dog\n100798,truck\n100799,dog\n100800,ship\n100801,frog\n100802,bird\n100803,deer\n100804,bird\n100805,deer\n100806,horse\n100807,frog\n100808,deer\n100809,frog\n100810,cat\n100811,truck\n100812,airplane\n100813,airplane\n100814,frog\n100815,deer\n100816,dog\n100817,dog\n100818,automobile\n100819,cat\n100820,dog\n100821,airplane\n100822,truck\n100823,bird\n100824,frog\n100825,horse\n100826,bird\n100827,cat\n100828,dog\n100829,dog\n100830,horse\n100831,cat\n100832,frog\n100833,dog\n100834,deer\n100835,dog\n100836,dog\n100837,cat\n100838,airplane\n100839,ship\n100840,truck\n100841,deer\n100842,bird\n100843,horse\n100844,dog\n100845,airplane\n100846,airplane\n100847,frog\n100848,frog\n100849,bird\n100850,frog\n100851,airplane\n100852,bird\n100853,dog\n100854,truck\n100855,deer\n100856,dog\n100857,cat\n100858,ship\n100859,deer\n100860,bird\n100861,bird\n100862,deer\n100863,frog\n100864,cat\n100865,horse\n100866,deer\n100867,horse\n100868,horse\n100869,truck\n100870,truck\n100871,horse\n100872,horse\n100873,cat\n100874,airplane\n100875,horse\n100876,cat\n100877,cat\n100878,deer\n100879,truck\n100880,deer\n100881,cat\n100882,automobile\n100883,truck\n100884,frog\n100885,cat\n100886,deer\n100887,cat\n100888,ship\n100889,automobile\n100890,deer\n100891,cat\n100892,cat\n100893,automobile\n100894,frog\n100895,cat\n100896,cat\n100897,cat\n100898,bird\n100899,truck\n100900,ship\n100901,dog\n100902,dog\n100903,frog\n100904,bird\n100905,bird\n100906,bird\n100907,truck\n100908,bird\n100909,bird\n100910,airplane\n100911,frog\n100912,bird\n100913,bird\n100914,dog\n100915,dog\n100916,cat\n100917,truck\n100918,bird\n100919,dog\n100920,horse\n100921,horse\n100922,ship\n100923,airplane\n100924,bird\n100925,cat\n100926,airplane\n100927,cat\n100928,cat\n100929,ship\n100930,frog\n100931,cat\n100932,truck\n100933,ship\n100934,airplane\n100935,bird\n100936,horse\n100937,horse\n100938,automobile\n100939,horse\n100940,horse\n100941,automobile\n100942,horse\n100943,automobile\n100944,automobile\n100945,truck\n100946,truck\n100947,cat\n100948,deer\n100949,airplane\n100950,airplane\n100951,automobile\n100952,automobile\n100953,airplane\n100954,airplane\n100955,bird\n100956,frog\n100957,horse\n100958,frog\n100959,frog\n100960,horse\n100961,frog\n100962,cat\n100963,truck\n100964,deer\n100965,airplane\n100966,deer\n100967,frog\n100968,ship\n100969,horse\n100970,ship\n100971,ship\n100972,dog\n100973,bird\n100974,bird\n100975,cat\n100976,ship\n100977,frog\n100978,automobile\n100979,automobile\n100980,truck\n100981,airplane\n100982,truck\n100983,bird\n100984,horse\n100985,automobile\n100986,deer\n100987,automobile\n100988,bird\n100989,horse\n100990,deer\n100991,ship\n100992,truck\n100993,bird\n100994,automobile\n100995,truck\n100996,bird\n100997,dog\n100998,horse\n100999,airplane\n101000,dog\n101001,bird\n101002,truck\n101003,automobile\n101004,bird\n101005,horse\n101006,automobile\n101007,dog\n101008,bird\n101009,deer\n101010,ship\n101011,bird\n101012,horse\n101013,bird\n101014,horse\n101015,bird\n101016,ship\n101017,truck\n101018,horse\n101019,bird\n101020,dog\n101021,automobile\n101022,truck\n101023,cat\n101024,deer\n101025,bird\n101026,horse\n101027,airplane\n101028,dog\n101029,truck\n101030,dog\n101031,airplane\n101032,cat\n101033,deer\n101034,horse\n101035,truck\n101036,bird\n101037,deer\n101038,dog\n101039,bird\n101040,cat\n101041,truck\n101042,cat\n101043,automobile\n101044,dog\n101045,truck\n101046,cat\n101047,truck\n101048,horse\n101049,deer\n101050,bird\n101051,dog\n101052,frog\n101053,bird\n101054,dog\n101055,deer\n101056,bird\n101057,airplane\n101058,dog\n101059,cat\n101060,truck\n101061,frog\n101062,frog\n101063,deer\n101064,deer\n101065,bird\n101066,cat\n101067,cat\n101068,ship\n101069,airplane\n101070,bird\n101071,cat\n101072,truck\n101073,frog\n101074,frog\n101075,truck\n101076,airplane\n101077,truck\n101078,frog\n101079,horse\n101080,cat\n101081,frog\n101082,deer\n101083,truck\n101084,frog\n101085,deer\n101086,cat\n101087,frog\n101088,frog\n101089,frog\n101090,horse\n101091,ship\n101092,dog\n101093,bird\n101094,cat\n101095,frog\n101096,dog\n101097,cat\n101098,dog\n101099,ship\n101100,automobile\n101101,automobile\n101102,dog\n101103,truck\n101104,horse\n101105,airplane\n101106,ship\n101107,cat\n101108,dog\n101109,ship\n101110,frog\n101111,cat\n101112,frog\n101113,horse\n101114,frog\n101115,horse\n101116,horse\n101117,frog\n101118,airplane\n101119,ship\n101120,truck\n101121,deer\n101122,bird\n101123,horse\n101124,cat\n101125,frog\n101126,horse\n101127,automobile\n101128,deer\n101129,bird\n101130,bird\n101131,dog\n101132,dog\n101133,bird\n101134,frog\n101135,dog\n101136,truck\n101137,truck\n101138,frog\n101139,cat\n101140,airplane\n101141,dog\n101142,cat\n101143,horse\n101144,dog\n101145,ship\n101146,dog\n101147,dog\n101148,deer\n101149,deer\n101150,cat\n101151,cat\n101152,airplane\n101153,frog\n101154,automobile\n101155,frog\n101156,bird\n101157,dog\n101158,truck\n101159,horse\n101160,deer\n101161,airplane\n101162,ship\n101163,ship\n101164,deer\n101165,truck\n101166,deer\n101167,frog\n101168,truck\n101169,automobile\n101170,dog\n101171,automobile\n101172,truck\n101173,deer\n101174,frog\n101175,deer\n101176,deer\n101177,dog\n101178,truck\n101179,cat\n101180,ship\n101181,deer\n101182,cat\n101183,horse\n101184,ship\n101185,cat\n101186,ship\n101187,automobile\n101188,frog\n101189,bird\n101190,truck\n101191,cat\n101192,bird\n101193,cat\n101194,truck\n101195,airplane\n101196,dog\n101197,ship\n101198,deer\n101199,dog\n101200,truck\n101201,truck\n101202,ship\n101203,cat\n101204,ship\n101205,airplane\n101206,horse\n101207,deer\n101208,airplane\n101209,cat\n101210,dog\n101211,airplane\n101212,truck\n101213,automobile\n101214,bird\n101215,dog\n101216,truck\n101217,truck\n101218,frog\n101219,cat\n101220,frog\n101221,airplane\n101222,deer\n101223,truck\n101224,airplane\n101225,ship\n101226,deer\n101227,bird\n101228,deer\n101229,deer\n101230,dog\n101231,truck\n101232,truck\n101233,frog\n101234,truck\n101235,frog\n101236,deer\n101237,frog\n101238,cat\n101239,bird\n101240,deer\n101241,dog\n101242,ship\n101243,horse\n101244,dog\n101245,frog\n101246,deer\n101247,dog\n101248,deer\n101249,deer\n101250,cat\n101251,cat\n101252,deer\n101253,cat\n101254,ship\n101255,airplane\n101256,automobile\n101257,cat\n101258,automobile\n101259,dog\n101260,horse\n101261,bird\n101262,frog\n101263,cat\n101264,dog\n101265,frog\n101266,frog\n101267,frog\n101268,horse\n101269,truck\n101270,cat\n101271,horse\n101272,airplane\n101273,bird\n101274,truck\n101275,automobile\n101276,dog\n101277,cat\n101278,cat\n101279,bird\n101280,truck\n101281,deer\n101282,airplane\n101283,frog\n101284,airplane\n101285,truck\n101286,bird\n101287,frog\n101288,dog\n101289,dog\n101290,frog\n101291,truck\n101292,bird\n101293,horse\n101294,cat\n101295,deer\n101296,deer\n101297,cat\n101298,horse\n101299,bird\n101300,dog\n101301,frog\n101302,frog\n101303,bird\n101304,airplane\n101305,cat\n101306,ship\n101307,cat\n101308,deer\n101309,bird\n101310,dog\n101311,truck\n101312,cat\n101313,ship\n101314,ship\n101315,horse\n101316,airplane\n101317,cat\n101318,automobile\n101319,deer\n101320,truck\n101321,deer\n101322,automobile\n101323,deer\n101324,deer\n101325,airplane\n101326,cat\n101327,dog\n101328,ship\n101329,frog\n101330,cat\n101331,automobile\n101332,dog\n101333,cat\n101334,cat\n101335,ship\n101336,frog\n101337,deer\n101338,bird\n101339,cat\n101340,automobile\n101341,deer\n101342,cat\n101343,cat\n101344,deer\n101345,automobile\n101346,horse\n101347,ship\n101348,ship\n101349,dog\n101350,bird\n101351,truck\n101352,dog\n101353,deer\n101354,deer\n101355,airplane\n101356,bird\n101357,ship\n101358,truck\n101359,cat\n101360,dog\n101361,dog\n101362,deer\n101363,dog\n101364,cat\n101365,cat\n101366,truck\n101367,frog\n101368,cat\n101369,airplane\n101370,cat\n101371,airplane\n101372,dog\n101373,ship\n101374,cat\n101375,ship\n101376,truck\n101377,airplane\n101378,ship\n101379,dog\n101380,cat\n101381,cat\n101382,ship\n101383,cat\n101384,deer\n101385,cat\n101386,bird\n101387,frog\n101388,deer\n101389,ship\n101390,deer\n101391,automobile\n101392,deer\n101393,truck\n101394,deer\n101395,cat\n101396,horse\n101397,ship\n101398,cat\n101399,deer\n101400,airplane\n101401,bird\n101402,cat\n101403,cat\n101404,deer\n101405,horse\n101406,dog\n101407,ship\n101408,horse\n101409,deer\n101410,ship\n101411,frog\n101412,airplane\n101413,automobile\n101414,dog\n101415,dog\n101416,cat\n101417,horse\n101418,horse\n101419,ship\n101420,automobile\n101421,truck\n101422,cat\n101423,cat\n101424,automobile\n101425,dog\n101426,horse\n101427,deer\n101428,bird\n101429,bird\n101430,airplane\n101431,frog\n101432,dog\n101433,truck\n101434,deer\n101435,truck\n101436,horse\n101437,bird\n101438,airplane\n101439,cat\n101440,automobile\n101441,airplane\n101442,cat\n101443,ship\n101444,frog\n101445,cat\n101446,truck\n101447,ship\n101448,ship\n101449,ship\n101450,cat\n101451,truck\n101452,dog\n101453,airplane\n101454,frog\n101455,horse\n101456,automobile\n101457,ship\n101458,ship\n101459,cat\n101460,automobile\n101461,deer\n101462,ship\n101463,automobile\n101464,bird\n101465,horse\n101466,deer\n101467,cat\n101468,cat\n101469,cat\n101470,truck\n101471,deer\n101472,frog\n101473,airplane\n101474,horse\n101475,dog\n101476,ship\n101477,ship\n101478,bird\n101479,cat\n101480,frog\n101481,ship\n101482,cat\n101483,frog\n101484,cat\n101485,dog\n101486,dog\n101487,ship\n101488,horse\n101489,frog\n101490,bird\n101491,airplane\n101492,dog\n101493,deer\n101494,horse\n101495,cat\n101496,cat\n101497,deer\n101498,airplane\n101499,deer\n101500,deer\n101501,ship\n101502,dog\n101503,horse\n101504,airplane\n101505,automobile\n101506,frog\n101507,bird\n101508,truck\n101509,dog\n101510,horse\n101511,frog\n101512,truck\n101513,cat\n101514,dog\n101515,bird\n101516,horse\n101517,horse\n101518,frog\n101519,frog\n101520,ship\n101521,horse\n101522,airplane\n101523,ship\n101524,horse\n101525,truck\n101526,frog\n101527,frog\n101528,dog\n101529,cat\n101530,deer\n101531,automobile\n101532,automobile\n101533,deer\n101534,deer\n101535,truck\n101536,frog\n101537,cat\n101538,automobile\n101539,deer\n101540,deer\n101541,truck\n101542,ship\n101543,airplane\n101544,automobile\n101545,automobile\n101546,automobile\n101547,dog\n101548,dog\n101549,truck\n101550,deer\n101551,deer\n101552,dog\n101553,horse\n101554,ship\n101555,deer\n101556,frog\n101557,deer\n101558,airplane\n101559,airplane\n101560,truck\n101561,frog\n101562,frog\n101563,truck\n101564,cat\n101565,automobile\n101566,frog\n101567,cat\n101568,automobile\n101569,bird\n101570,dog\n101571,deer\n101572,deer\n101573,bird\n101574,airplane\n101575,cat\n101576,cat\n101577,airplane\n101578,bird\n101579,deer\n101580,truck\n101581,dog\n101582,deer\n101583,truck\n101584,automobile\n101585,frog\n101586,deer\n101587,frog\n101588,deer\n101589,cat\n101590,automobile\n101591,horse\n101592,airplane\n101593,truck\n101594,truck\n101595,cat\n101596,frog\n101597,airplane\n101598,cat\n101599,bird\n101600,cat\n101601,truck\n101602,bird\n101603,dog\n101604,frog\n101605,dog\n101606,ship\n101607,deer\n101608,frog\n101609,frog\n101610,automobile\n101611,frog\n101612,ship\n101613,bird\n101614,deer\n101615,ship\n101616,frog\n101617,ship\n101618,horse\n101619,airplane\n101620,dog\n101621,truck\n101622,deer\n101623,cat\n101624,ship\n101625,airplane\n101626,frog\n101627,dog\n101628,truck\n101629,truck\n101630,ship\n101631,airplane\n101632,airplane\n101633,horse\n101634,truck\n101635,automobile\n101636,horse\n101637,deer\n101638,bird\n101639,bird\n101640,frog\n101641,horse\n101642,automobile\n101643,bird\n101644,cat\n101645,airplane\n101646,truck\n101647,automobile\n101648,airplane\n101649,airplane\n101650,truck\n101651,airplane\n101652,airplane\n101653,cat\n101654,truck\n101655,automobile\n101656,ship\n101657,horse\n101658,horse\n101659,dog\n101660,automobile\n101661,dog\n101662,dog\n101663,horse\n101664,dog\n101665,airplane\n101666,frog\n101667,truck\n101668,dog\n101669,frog\n101670,deer\n101671,frog\n101672,airplane\n101673,deer\n101674,cat\n101675,truck\n101676,deer\n101677,deer\n101678,bird\n101679,bird\n101680,dog\n101681,dog\n101682,ship\n101683,automobile\n101684,ship\n101685,airplane\n101686,frog\n101687,frog\n101688,horse\n101689,automobile\n101690,automobile\n101691,frog\n101692,horse\n101693,ship\n101694,automobile\n101695,truck\n101696,frog\n101697,bird\n101698,cat\n101699,deer\n101700,dog\n101701,deer\n101702,automobile\n101703,frog\n101704,deer\n101705,dog\n101706,horse\n101707,truck\n101708,cat\n101709,automobile\n101710,cat\n101711,ship\n101712,deer\n101713,truck\n101714,horse\n101715,bird\n101716,horse\n101717,cat\n101718,bird\n101719,horse\n101720,bird\n101721,horse\n101722,cat\n101723,dog\n101724,dog\n101725,ship\n101726,airplane\n101727,cat\n101728,cat\n101729,truck\n101730,airplane\n101731,truck\n101732,deer\n101733,ship\n101734,dog\n101735,dog\n101736,automobile\n101737,automobile\n101738,bird\n101739,horse\n101740,truck\n101741,frog\n101742,bird\n101743,cat\n101744,dog\n101745,airplane\n101746,automobile\n101747,deer\n101748,cat\n101749,automobile\n101750,deer\n101751,frog\n101752,cat\n101753,automobile\n101754,airplane\n101755,bird\n101756,airplane\n101757,horse\n101758,ship\n101759,cat\n101760,dog\n101761,cat\n101762,frog\n101763,horse\n101764,truck\n101765,horse\n101766,truck\n101767,deer\n101768,ship\n101769,horse\n101770,cat\n101771,deer\n101772,deer\n101773,automobile\n101774,deer\n101775,airplane\n101776,truck\n101777,bird\n101778,ship\n101779,bird\n101780,airplane\n101781,bird\n101782,ship\n101783,truck\n101784,deer\n101785,horse\n101786,truck\n101787,automobile\n101788,truck\n101789,horse\n101790,frog\n101791,cat\n101792,truck\n101793,horse\n101794,deer\n101795,airplane\n101796,deer\n101797,cat\n101798,deer\n101799,horse\n101800,ship\n101801,dog\n101802,airplane\n101803,horse\n101804,frog\n101805,bird\n101806,dog\n101807,truck\n101808,ship\n101809,truck\n101810,truck\n101811,deer\n101812,automobile\n101813,truck\n101814,deer\n101815,dog\n101816,frog\n101817,horse\n101818,airplane\n101819,dog\n101820,cat\n101821,ship\n101822,deer\n101823,frog\n101824,truck\n101825,horse\n101826,automobile\n101827,bird\n101828,airplane\n101829,dog\n101830,deer\n101831,deer\n101832,automobile\n101833,airplane\n101834,airplane\n101835,dog\n101836,truck\n101837,cat\n101838,dog\n101839,horse\n101840,horse\n101841,truck\n101842,truck\n101843,frog\n101844,cat\n101845,frog\n101846,ship\n101847,automobile\n101848,truck\n101849,ship\n101850,cat\n101851,frog\n101852,horse\n101853,frog\n101854,cat\n101855,deer\n101856,dog\n101857,airplane\n101858,bird\n101859,truck\n101860,frog\n101861,dog\n101862,deer\n101863,horse\n101864,airplane\n101865,cat\n101866,truck\n101867,dog\n101868,bird\n101869,airplane\n101870,deer\n101871,frog\n101872,frog\n101873,bird\n101874,deer\n101875,truck\n101876,airplane\n101877,dog\n101878,truck\n101879,bird\n101880,dog\n101881,cat\n101882,deer\n101883,airplane\n101884,automobile\n101885,bird\n101886,airplane\n101887,truck\n101888,cat\n101889,deer\n101890,deer\n101891,airplane\n101892,ship\n101893,automobile\n101894,truck\n101895,frog\n101896,frog\n101897,frog\n101898,frog\n101899,cat\n101900,deer\n101901,ship\n101902,horse\n101903,horse\n101904,truck\n101905,automobile\n101906,ship\n101907,bird\n101908,frog\n101909,deer\n101910,frog\n101911,horse\n101912,dog\n101913,truck\n101914,cat\n101915,cat\n101916,airplane\n101917,dog\n101918,bird\n101919,deer\n101920,deer\n101921,ship\n101922,dog\n101923,bird\n101924,automobile\n101925,horse\n101926,cat\n101927,frog\n101928,truck\n101929,ship\n101930,dog\n101931,horse\n101932,cat\n101933,automobile\n101934,truck\n101935,horse\n101936,airplane\n101937,automobile\n101938,bird\n101939,automobile\n101940,ship\n101941,automobile\n101942,automobile\n101943,horse\n101944,truck\n101945,automobile\n101946,truck\n101947,horse\n101948,deer\n101949,frog\n101950,cat\n101951,automobile\n101952,frog\n101953,ship\n101954,airplane\n101955,automobile\n101956,dog\n101957,deer\n101958,horse\n101959,truck\n101960,dog\n101961,deer\n101962,cat\n101963,ship\n101964,ship\n101965,dog\n101966,cat\n101967,automobile\n101968,cat\n101969,bird\n101970,dog\n101971,automobile\n101972,deer\n101973,cat\n101974,deer\n101975,cat\n101976,deer\n101977,frog\n101978,horse\n101979,airplane\n101980,cat\n101981,frog\n101982,horse\n101983,deer\n101984,automobile\n101985,dog\n101986,cat\n101987,deer\n101988,cat\n101989,cat\n101990,deer\n101991,airplane\n101992,automobile\n101993,ship\n101994,horse\n101995,horse\n101996,dog\n101997,dog\n101998,automobile\n101999,dog\n102000,ship\n102001,cat\n102002,cat\n102003,deer\n102004,automobile\n102005,automobile\n102006,cat\n102007,frog\n102008,frog\n102009,bird\n102010,dog\n102011,ship\n102012,deer\n102013,cat\n102014,frog\n102015,deer\n102016,frog\n102017,horse\n102018,horse\n102019,deer\n102020,deer\n102021,horse\n102022,cat\n102023,automobile\n102024,frog\n102025,deer\n102026,horse\n102027,automobile\n102028,dog\n102029,truck\n102030,frog\n102031,automobile\n102032,frog\n102033,cat\n102034,dog\n102035,dog\n102036,airplane\n102037,automobile\n102038,truck\n102039,truck\n102040,dog\n102041,horse\n102042,truck\n102043,automobile\n102044,horse\n102045,bird\n102046,cat\n102047,truck\n102048,airplane\n102049,dog\n102050,cat\n102051,cat\n102052,automobile\n102053,dog\n102054,truck\n102055,ship\n102056,deer\n102057,horse\n102058,truck\n102059,dog\n102060,frog\n102061,bird\n102062,cat\n102063,airplane\n102064,deer\n102065,deer\n102066,deer\n102067,frog\n102068,truck\n102069,airplane\n102070,dog\n102071,horse\n102072,horse\n102073,automobile\n102074,dog\n102075,cat\n102076,deer\n102077,truck\n102078,bird\n102079,cat\n102080,frog\n102081,bird\n102082,deer\n102083,cat\n102084,deer\n102085,cat\n102086,truck\n102087,frog\n102088,dog\n102089,airplane\n102090,horse\n102091,frog\n102092,cat\n102093,deer\n102094,truck\n102095,ship\n102096,dog\n102097,automobile\n102098,deer\n102099,frog\n102100,truck\n102101,cat\n102102,cat\n102103,automobile\n102104,dog\n102105,automobile\n102106,bird\n102107,dog\n102108,automobile\n102109,bird\n102110,dog\n102111,frog\n102112,cat\n102113,deer\n102114,bird\n102115,frog\n102116,horse\n102117,horse\n102118,cat\n102119,bird\n102120,deer\n102121,frog\n102122,dog\n102123,frog\n102124,dog\n102125,cat\n102126,truck\n102127,ship\n102128,truck\n102129,frog\n102130,airplane\n102131,cat\n102132,cat\n102133,frog\n102134,airplane\n102135,bird\n102136,deer\n102137,deer\n102138,deer\n102139,frog\n102140,bird\n102141,cat\n102142,dog\n102143,truck\n102144,airplane\n102145,airplane\n102146,frog\n102147,airplane\n102148,horse\n102149,automobile\n102150,automobile\n102151,horse\n102152,horse\n102153,airplane\n102154,deer\n102155,truck\n102156,deer\n102157,truck\n102158,frog\n102159,deer\n102160,frog\n102161,deer\n102162,bird\n102163,ship\n102164,bird\n102165,truck\n102166,bird\n102167,deer\n102168,horse\n102169,horse\n102170,truck\n102171,cat\n102172,automobile\n102173,airplane\n102174,automobile\n102175,dog\n102176,cat\n102177,cat\n102178,bird\n102179,horse\n102180,cat\n102181,automobile\n102182,frog\n102183,bird\n102184,truck\n102185,frog\n102186,bird\n102187,cat\n102188,truck\n102189,automobile\n102190,dog\n102191,deer\n102192,horse\n102193,cat\n102194,automobile\n102195,deer\n102196,cat\n102197,deer\n102198,frog\n102199,deer\n102200,deer\n102201,ship\n102202,horse\n102203,dog\n102204,airplane\n102205,frog\n102206,deer\n102207,ship\n102208,cat\n102209,automobile\n102210,automobile\n102211,cat\n102212,dog\n102213,frog\n102214,truck\n102215,deer\n102216,automobile\n102217,airplane\n102218,frog\n102219,frog\n102220,deer\n102221,ship\n102222,automobile\n102223,truck\n102224,bird\n102225,bird\n102226,frog\n102227,cat\n102228,automobile\n102229,cat\n102230,ship\n102231,truck\n102232,frog\n102233,frog\n102234,cat\n102235,cat\n102236,bird\n102237,dog\n102238,dog\n102239,bird\n102240,bird\n102241,cat\n102242,deer\n102243,dog\n102244,cat\n102245,cat\n102246,frog\n102247,airplane\n102248,airplane\n102249,deer\n102250,deer\n102251,deer\n102252,automobile\n102253,frog\n102254,automobile\n102255,frog\n102256,bird\n102257,automobile\n102258,deer\n102259,truck\n102260,horse\n102261,truck\n102262,dog\n102263,dog\n102264,dog\n102265,ship\n102266,frog\n102267,airplane\n102268,dog\n102269,airplane\n102270,bird\n102271,bird\n102272,airplane\n102273,frog\n102274,frog\n102275,airplane\n102276,bird\n102277,ship\n102278,cat\n102279,bird\n102280,deer\n102281,bird\n102282,ship\n102283,deer\n102284,truck\n102285,cat\n102286,dog\n102287,cat\n102288,cat\n102289,cat\n102290,dog\n102291,automobile\n102292,truck\n102293,automobile\n102294,automobile\n102295,dog\n102296,ship\n102297,horse\n102298,truck\n102299,frog\n102300,bird\n102301,dog\n102302,ship\n102303,cat\n102304,bird\n102305,frog\n102306,truck\n102307,airplane\n102308,automobile\n102309,horse\n102310,bird\n102311,dog\n102312,frog\n102313,bird\n102314,ship\n102315,truck\n102316,cat\n102317,deer\n102318,horse\n102319,deer\n102320,dog\n102321,cat\n102322,cat\n102323,horse\n102324,ship\n102325,bird\n102326,airplane\n102327,bird\n102328,truck\n102329,truck\n102330,airplane\n102331,horse\n102332,automobile\n102333,frog\n102334,truck\n102335,ship\n102336,truck\n102337,truck\n102338,bird\n102339,deer\n102340,airplane\n102341,truck\n102342,automobile\n102343,frog\n102344,airplane\n102345,automobile\n102346,cat\n102347,truck\n102348,horse\n102349,ship\n102350,horse\n102351,ship\n102352,deer\n102353,bird\n102354,ship\n102355,ship\n102356,dog\n102357,deer\n102358,ship\n102359,dog\n102360,deer\n102361,ship\n102362,airplane\n102363,cat\n102364,ship\n102365,cat\n102366,ship\n102367,airplane\n102368,dog\n102369,deer\n102370,horse\n102371,truck\n102372,ship\n102373,cat\n102374,automobile\n102375,ship\n102376,dog\n102377,frog\n102378,airplane\n102379,frog\n102380,automobile\n102381,ship\n102382,frog\n102383,frog\n102384,airplane\n102385,bird\n102386,automobile\n102387,deer\n102388,automobile\n102389,ship\n102390,truck\n102391,horse\n102392,deer\n102393,cat\n102394,truck\n102395,horse\n102396,truck\n102397,deer\n102398,ship\n102399,bird\n102400,deer\n102401,cat\n102402,airplane\n102403,frog\n102404,frog\n102405,deer\n102406,horse\n102407,bird\n102408,dog\n102409,deer\n102410,truck\n102411,truck\n102412,cat\n102413,cat\n102414,cat\n102415,dog\n102416,horse\n102417,deer\n102418,cat\n102419,airplane\n102420,deer\n102421,automobile\n102422,truck\n102423,dog\n102424,deer\n102425,cat\n102426,truck\n102427,airplane\n102428,deer\n102429,horse\n102430,ship\n102431,airplane\n102432,dog\n102433,cat\n102434,frog\n102435,deer\n102436,bird\n102437,frog\n102438,cat\n102439,deer\n102440,airplane\n102441,airplane\n102442,frog\n102443,ship\n102444,ship\n102445,deer\n102446,ship\n102447,frog\n102448,cat\n102449,deer\n102450,dog\n102451,deer\n102452,truck\n102453,dog\n102454,deer\n102455,ship\n102456,truck\n102457,truck\n102458,ship\n102459,bird\n102460,truck\n102461,bird\n102462,frog\n102463,frog\n102464,automobile\n102465,cat\n102466,dog\n102467,bird\n102468,bird\n102469,cat\n102470,deer\n102471,horse\n102472,dog\n102473,frog\n102474,cat\n102475,ship\n102476,dog\n102477,horse\n102478,frog\n102479,automobile\n102480,deer\n102481,cat\n102482,cat\n102483,ship\n102484,bird\n102485,airplane\n102486,airplane\n102487,horse\n102488,cat\n102489,deer\n102490,dog\n102491,bird\n102492,cat\n102493,horse\n102494,ship\n102495,horse\n102496,horse\n102497,horse\n102498,deer\n102499,cat\n102500,deer\n102501,deer\n102502,frog\n102503,horse\n102504,frog\n102505,horse\n102506,bird\n102507,cat\n102508,cat\n102509,bird\n102510,cat\n102511,deer\n102512,deer\n102513,airplane\n102514,truck\n102515,frog\n102516,bird\n102517,bird\n102518,cat\n102519,automobile\n102520,automobile\n102521,cat\n102522,bird\n102523,horse\n102524,airplane\n102525,airplane\n102526,automobile\n102527,ship\n102528,horse\n102529,frog\n102530,dog\n102531,frog\n102532,truck\n102533,ship\n102534,airplane\n102535,airplane\n102536,truck\n102537,ship\n102538,frog\n102539,deer\n102540,dog\n102541,cat\n102542,dog\n102543,cat\n102544,frog\n102545,deer\n102546,dog\n102547,deer\n102548,automobile\n102549,deer\n102550,airplane\n102551,truck\n102552,truck\n102553,ship\n102554,deer\n102555,airplane\n102556,deer\n102557,truck\n102558,truck\n102559,airplane\n102560,frog\n102561,deer\n102562,cat\n102563,cat\n102564,ship\n102565,dog\n102566,truck\n102567,frog\n102568,cat\n102569,truck\n102570,truck\n102571,horse\n102572,frog\n102573,automobile\n102574,deer\n102575,airplane\n102576,frog\n102577,dog\n102578,deer\n102579,dog\n102580,ship\n102581,dog\n102582,truck\n102583,ship\n102584,cat\n102585,bird\n102586,dog\n102587,cat\n102588,dog\n102589,automobile\n102590,deer\n102591,horse\n102592,frog\n102593,ship\n102594,truck\n102595,dog\n102596,deer\n102597,dog\n102598,deer\n102599,ship\n102600,bird\n102601,ship\n102602,truck\n102603,automobile\n102604,dog\n102605,frog\n102606,cat\n102607,automobile\n102608,bird\n102609,automobile\n102610,truck\n102611,truck\n102612,bird\n102613,horse\n102614,dog\n102615,deer\n102616,bird\n102617,ship\n102618,airplane\n102619,horse\n102620,airplane\n102621,ship\n102622,horse\n102623,truck\n102624,horse\n102625,airplane\n102626,ship\n102627,frog\n102628,bird\n102629,frog\n102630,automobile\n102631,cat\n102632,cat\n102633,ship\n102634,deer\n102635,cat\n102636,truck\n102637,cat\n102638,cat\n102639,truck\n102640,deer\n102641,deer\n102642,automobile\n102643,cat\n102644,ship\n102645,frog\n102646,airplane\n102647,truck\n102648,truck\n102649,airplane\n102650,ship\n102651,frog\n102652,cat\n102653,cat\n102654,cat\n102655,dog\n102656,bird\n102657,horse\n102658,frog\n102659,dog\n102660,truck\n102661,frog\n102662,truck\n102663,dog\n102664,cat\n102665,cat\n102666,frog\n102667,cat\n102668,deer\n102669,automobile\n102670,cat\n102671,horse\n102672,truck\n102673,deer\n102674,cat\n102675,cat\n102676,frog\n102677,dog\n102678,dog\n102679,horse\n102680,cat\n102681,deer\n102682,horse\n102683,horse\n102684,bird\n102685,truck\n102686,truck\n102687,airplane\n102688,frog\n102689,airplane\n102690,frog\n102691,airplane\n102692,horse\n102693,cat\n102694,frog\n102695,ship\n102696,frog\n102697,horse\n102698,deer\n102699,deer\n102700,cat\n102701,horse\n102702,horse\n102703,deer\n102704,dog\n102705,bird\n102706,cat\n102707,cat\n102708,truck\n102709,frog\n102710,airplane\n102711,cat\n102712,dog\n102713,airplane\n102714,truck\n102715,frog\n102716,cat\n102717,dog\n102718,cat\n102719,deer\n102720,truck\n102721,horse\n102722,deer\n102723,automobile\n102724,bird\n102725,horse\n102726,truck\n102727,deer\n102728,airplane\n102729,automobile\n102730,airplane\n102731,cat\n102732,horse\n102733,bird\n102734,cat\n102735,cat\n102736,deer\n102737,cat\n102738,cat\n102739,frog\n102740,cat\n102741,frog\n102742,horse\n102743,truck\n102744,frog\n102745,automobile\n102746,frog\n102747,frog\n102748,frog\n102749,bird\n102750,ship\n102751,dog\n102752,frog\n102753,deer\n102754,truck\n102755,cat\n102756,truck\n102757,truck\n102758,deer\n102759,frog\n102760,truck\n102761,deer\n102762,dog\n102763,horse\n102764,deer\n102765,bird\n102766,horse\n102767,horse\n102768,bird\n102769,airplane\n102770,dog\n102771,dog\n102772,horse\n102773,truck\n102774,automobile\n102775,ship\n102776,airplane\n102777,automobile\n102778,dog\n102779,bird\n102780,deer\n102781,cat\n102782,bird\n102783,ship\n102784,ship\n102785,cat\n102786,bird\n102787,truck\n102788,bird\n102789,frog\n102790,truck\n102791,deer\n102792,dog\n102793,truck\n102794,horse\n102795,frog\n102796,bird\n102797,frog\n102798,airplane\n102799,automobile\n102800,horse\n102801,horse\n102802,automobile\n102803,truck\n102804,automobile\n102805,ship\n102806,frog\n102807,bird\n102808,deer\n102809,horse\n102810,dog\n102811,cat\n102812,dog\n102813,horse\n102814,horse\n102815,cat\n102816,truck\n102817,truck\n102818,dog\n102819,cat\n102820,deer\n102821,deer\n102822,truck\n102823,ship\n102824,bird\n102825,ship\n102826,deer\n102827,automobile\n102828,deer\n102829,cat\n102830,horse\n102831,dog\n102832,deer\n102833,automobile\n102834,truck\n102835,dog\n102836,deer\n102837,deer\n102838,ship\n102839,bird\n102840,airplane\n102841,airplane\n102842,dog\n102843,truck\n102844,bird\n102845,truck\n102846,bird\n102847,truck\n102848,horse\n102849,dog\n102850,bird\n102851,airplane\n102852,deer\n102853,cat\n102854,ship\n102855,automobile\n102856,bird\n102857,deer\n102858,airplane\n102859,bird\n102860,deer\n102861,frog\n102862,deer\n102863,airplane\n102864,truck\n102865,automobile\n102866,bird\n102867,ship\n102868,ship\n102869,bird\n102870,deer\n102871,frog\n102872,dog\n102873,automobile\n102874,dog\n102875,cat\n102876,frog\n102877,dog\n102878,airplane\n102879,deer\n102880,dog\n102881,airplane\n102882,deer\n102883,ship\n102884,airplane\n102885,deer\n102886,ship\n102887,deer\n102888,cat\n102889,dog\n102890,deer\n102891,frog\n102892,automobile\n102893,ship\n102894,truck\n102895,cat\n102896,cat\n102897,truck\n102898,airplane\n102899,airplane\n102900,airplane\n102901,frog\n102902,airplane\n102903,airplane\n102904,dog\n102905,dog\n102906,ship\n102907,frog\n102908,airplane\n102909,horse\n102910,deer\n102911,dog\n102912,airplane\n102913,airplane\n102914,deer\n102915,deer\n102916,ship\n102917,airplane\n102918,ship\n102919,horse\n102920,dog\n102921,bird\n102922,deer\n102923,horse\n102924,frog\n102925,ship\n102926,bird\n102927,cat\n102928,bird\n102929,ship\n102930,bird\n102931,truck\n102932,automobile\n102933,ship\n102934,airplane\n102935,cat\n102936,truck\n102937,horse\n102938,horse\n102939,ship\n102940,cat\n102941,cat\n102942,frog\n102943,ship\n102944,deer\n102945,cat\n102946,truck\n102947,bird\n102948,truck\n102949,dog\n102950,ship\n102951,cat\n102952,truck\n102953,automobile\n102954,dog\n102955,horse\n102956,frog\n102957,horse\n102958,frog\n102959,frog\n102960,cat\n102961,ship\n102962,horse\n102963,bird\n102964,dog\n102965,cat\n102966,dog\n102967,deer\n102968,truck\n102969,horse\n102970,ship\n102971,truck\n102972,bird\n102973,horse\n102974,frog\n102975,cat\n102976,deer\n102977,frog\n102978,horse\n102979,truck\n102980,deer\n102981,airplane\n102982,horse\n102983,deer\n102984,truck\n102985,truck\n102986,automobile\n102987,deer\n102988,dog\n102989,deer\n102990,ship\n102991,bird\n102992,bird\n102993,truck\n102994,cat\n102995,cat\n102996,dog\n102997,horse\n102998,deer\n102999,deer\n103000,automobile\n103001,truck\n103002,deer\n103003,ship\n103004,airplane\n103005,dog\n103006,frog\n103007,bird\n103008,deer\n103009,frog\n103010,bird\n103011,ship\n103012,deer\n103013,horse\n103014,automobile\n103015,truck\n103016,cat\n103017,airplane\n103018,frog\n103019,horse\n103020,ship\n103021,truck\n103022,airplane\n103023,automobile\n103024,dog\n103025,truck\n103026,automobile\n103027,airplane\n103028,ship\n103029,dog\n103030,frog\n103031,dog\n103032,frog\n103033,horse\n103034,truck\n103035,horse\n103036,horse\n103037,truck\n103038,truck\n103039,horse\n103040,airplane\n103041,ship\n103042,dog\n103043,cat\n103044,cat\n103045,frog\n103046,cat\n103047,truck\n103048,horse\n103049,horse\n103050,truck\n103051,truck\n103052,horse\n103053,bird\n103054,frog\n103055,bird\n103056,cat\n103057,cat\n103058,dog\n103059,frog\n103060,automobile\n103061,deer\n103062,airplane\n103063,deer\n103064,cat\n103065,cat\n103066,frog\n103067,frog\n103068,ship\n103069,frog\n103070,bird\n103071,ship\n103072,airplane\n103073,deer\n103074,cat\n103075,truck\n103076,dog\n103077,automobile\n103078,frog\n103079,airplane\n103080,ship\n103081,cat\n103082,ship\n103083,automobile\n103084,airplane\n103085,deer\n103086,frog\n103087,ship\n103088,cat\n103089,airplane\n103090,deer\n103091,ship\n103092,cat\n103093,cat\n103094,cat\n103095,ship\n103096,dog\n103097,cat\n103098,truck\n103099,automobile\n103100,automobile\n103101,truck\n103102,cat\n103103,automobile\n103104,airplane\n103105,cat\n103106,frog\n103107,deer\n103108,horse\n103109,airplane\n103110,airplane\n103111,deer\n103112,truck\n103113,deer\n103114,truck\n103115,ship\n103116,deer\n103117,horse\n103118,cat\n103119,dog\n103120,frog\n103121,automobile\n103122,truck\n103123,truck\n103124,frog\n103125,dog\n103126,truck\n103127,deer\n103128,deer\n103129,deer\n103130,bird\n103131,deer\n103132,dog\n103133,automobile\n103134,deer\n103135,horse\n103136,cat\n103137,ship\n103138,cat\n103139,airplane\n103140,frog\n103141,frog\n103142,airplane\n103143,dog\n103144,truck\n103145,dog\n103146,cat\n103147,bird\n103148,truck\n103149,frog\n103150,deer\n103151,dog\n103152,truck\n103153,ship\n103154,airplane\n103155,horse\n103156,dog\n103157,cat\n103158,dog\n103159,bird\n103160,dog\n103161,bird\n103162,deer\n103163,deer\n103164,cat\n103165,ship\n103166,truck\n103167,dog\n103168,frog\n103169,truck\n103170,truck\n103171,deer\n103172,automobile\n103173,frog\n103174,bird\n103175,bird\n103176,truck\n103177,deer\n103178,ship\n103179,deer\n103180,deer\n103181,ship\n103182,cat\n103183,airplane\n103184,deer\n103185,frog\n103186,horse\n103187,truck\n103188,frog\n103189,cat\n103190,airplane\n103191,truck\n103192,automobile\n103193,bird\n103194,bird\n103195,deer\n103196,ship\n103197,ship\n103198,airplane\n103199,deer\n103200,ship\n103201,automobile\n103202,cat\n103203,truck\n103204,ship\n103205,ship\n103206,ship\n103207,dog\n103208,ship\n103209,cat\n103210,truck\n103211,truck\n103212,ship\n103213,dog\n103214,frog\n103215,horse\n103216,horse\n103217,ship\n103218,truck\n103219,truck\n103220,deer\n103221,automobile\n103222,bird\n103223,bird\n103224,ship\n103225,bird\n103226,truck\n103227,deer\n103228,horse\n103229,dog\n103230,frog\n103231,frog\n103232,ship\n103233,dog\n103234,deer\n103235,cat\n103236,deer\n103237,horse\n103238,bird\n103239,frog\n103240,truck\n103241,cat\n103242,automobile\n103243,truck\n103244,dog\n103245,airplane\n103246,truck\n103247,dog\n103248,automobile\n103249,truck\n103250,ship\n103251,horse\n103252,frog\n103253,automobile\n103254,cat\n103255,bird\n103256,horse\n103257,airplane\n103258,deer\n103259,horse\n103260,bird\n103261,horse\n103262,airplane\n103263,dog\n103264,cat\n103265,cat\n103266,ship\n103267,bird\n103268,cat\n103269,airplane\n103270,cat\n103271,automobile\n103272,dog\n103273,frog\n103274,truck\n103275,automobile\n103276,horse\n103277,ship\n103278,bird\n103279,horse\n103280,horse\n103281,deer\n103282,cat\n103283,frog\n103284,truck\n103285,horse\n103286,cat\n103287,horse\n103288,cat\n103289,horse\n103290,horse\n103291,cat\n103292,automobile\n103293,dog\n103294,deer\n103295,automobile\n103296,bird\n103297,cat\n103298,cat\n103299,frog\n103300,ship\n103301,frog\n103302,automobile\n103303,ship\n103304,airplane\n103305,horse\n103306,ship\n103307,horse\n103308,airplane\n103309,truck\n103310,cat\n103311,dog\n103312,dog\n103313,frog\n103314,dog\n103315,frog\n103316,deer\n103317,horse\n103318,dog\n103319,truck\n103320,cat\n103321,frog\n103322,horse\n103323,horse\n103324,bird\n103325,truck\n103326,dog\n103327,automobile\n103328,cat\n103329,deer\n103330,frog\n103331,deer\n103332,dog\n103333,cat\n103334,airplane\n103335,frog\n103336,airplane\n103337,cat\n103338,bird\n103339,cat\n103340,automobile\n103341,deer\n103342,truck\n103343,truck\n103344,ship\n103345,truck\n103346,deer\n103347,dog\n103348,dog\n103349,dog\n103350,deer\n103351,dog\n103352,horse\n103353,deer\n103354,ship\n103355,bird\n103356,bird\n103357,automobile\n103358,horse\n103359,bird\n103360,dog\n103361,cat\n103362,airplane\n103363,frog\n103364,truck\n103365,dog\n103366,automobile\n103367,frog\n103368,deer\n103369,truck\n103370,cat\n103371,frog\n103372,truck\n103373,truck\n103374,cat\n103375,deer\n103376,airplane\n103377,bird\n103378,cat\n103379,cat\n103380,cat\n103381,cat\n103382,ship\n103383,bird\n103384,dog\n103385,horse\n103386,deer\n103387,truck\n103388,ship\n103389,deer\n103390,deer\n103391,horse\n103392,frog\n103393,cat\n103394,frog\n103395,deer\n103396,cat\n103397,truck\n103398,dog\n103399,horse\n103400,automobile\n103401,deer\n103402,airplane\n103403,automobile\n103404,airplane\n103405,bird\n103406,ship\n103407,dog\n103408,ship\n103409,dog\n103410,bird\n103411,deer\n103412,dog\n103413,horse\n103414,automobile\n103415,dog\n103416,dog\n103417,automobile\n103418,deer\n103419,truck\n103420,deer\n103421,deer\n103422,dog\n103423,cat\n103424,truck\n103425,automobile\n103426,airplane\n103427,cat\n103428,ship\n103429,frog\n103430,ship\n103431,cat\n103432,automobile\n103433,airplane\n103434,dog\n103435,dog\n103436,dog\n103437,dog\n103438,deer\n103439,horse\n103440,deer\n103441,automobile\n103442,deer\n103443,bird\n103444,truck\n103445,dog\n103446,deer\n103447,horse\n103448,cat\n103449,cat\n103450,dog\n103451,frog\n103452,truck\n103453,deer\n103454,cat\n103455,deer\n103456,dog\n103457,cat\n103458,dog\n103459,frog\n103460,airplane\n103461,frog\n103462,deer\n103463,automobile\n103464,dog\n103465,cat\n103466,frog\n103467,deer\n103468,horse\n103469,cat\n103470,automobile\n103471,deer\n103472,cat\n103473,bird\n103474,ship\n103475,frog\n103476,truck\n103477,deer\n103478,airplane\n103479,deer\n103480,frog\n103481,frog\n103482,dog\n103483,airplane\n103484,frog\n103485,automobile\n103486,frog\n103487,frog\n103488,cat\n103489,bird\n103490,horse\n103491,automobile\n103492,deer\n103493,cat\n103494,cat\n103495,bird\n103496,airplane\n103497,ship\n103498,bird\n103499,airplane\n103500,horse\n103501,cat\n103502,deer\n103503,automobile\n103504,automobile\n103505,deer\n103506,ship\n103507,ship\n103508,horse\n103509,deer\n103510,truck\n103511,deer\n103512,airplane\n103513,ship\n103514,dog\n103515,ship\n103516,truck\n103517,bird\n103518,automobile\n103519,horse\n103520,horse\n103521,frog\n103522,cat\n103523,deer\n103524,airplane\n103525,automobile\n103526,truck\n103527,automobile\n103528,horse\n103529,truck\n103530,ship\n103531,airplane\n103532,truck\n103533,cat\n103534,truck\n103535,cat\n103536,frog\n103537,airplane\n103538,horse\n103539,horse\n103540,horse\n103541,bird\n103542,airplane\n103543,cat\n103544,deer\n103545,bird\n103546,horse\n103547,horse\n103548,cat\n103549,airplane\n103550,automobile\n103551,horse\n103552,airplane\n103553,dog\n103554,frog\n103555,frog\n103556,ship\n103557,ship\n103558,truck\n103559,deer\n103560,dog\n103561,deer\n103562,dog\n103563,cat\n103564,ship\n103565,deer\n103566,horse\n103567,horse\n103568,frog\n103569,cat\n103570,cat\n103571,automobile\n103572,cat\n103573,deer\n103574,ship\n103575,airplane\n103576,dog\n103577,bird\n103578,bird\n103579,airplane\n103580,bird\n103581,ship\n103582,horse\n103583,cat\n103584,frog\n103585,airplane\n103586,dog\n103587,horse\n103588,horse\n103589,deer\n103590,dog\n103591,cat\n103592,cat\n103593,bird\n103594,horse\n103595,cat\n103596,cat\n103597,truck\n103598,cat\n103599,frog\n103600,horse\n103601,automobile\n103602,deer\n103603,frog\n103604,horse\n103605,deer\n103606,ship\n103607,dog\n103608,frog\n103609,cat\n103610,cat\n103611,frog\n103612,truck\n103613,frog\n103614,bird\n103615,cat\n103616,frog\n103617,automobile\n103618,deer\n103619,truck\n103620,ship\n103621,truck\n103622,deer\n103623,ship\n103624,horse\n103625,dog\n103626,deer\n103627,deer\n103628,airplane\n103629,airplane\n103630,truck\n103631,horse\n103632,airplane\n103633,cat\n103634,horse\n103635,deer\n103636,automobile\n103637,horse\n103638,deer\n103639,horse\n103640,dog\n103641,automobile\n103642,cat\n103643,truck\n103644,dog\n103645,bird\n103646,frog\n103647,horse\n103648,automobile\n103649,horse\n103650,frog\n103651,airplane\n103652,cat\n103653,airplane\n103654,bird\n103655,deer\n103656,ship\n103657,dog\n103658,cat\n103659,automobile\n103660,ship\n103661,bird\n103662,ship\n103663,dog\n103664,airplane\n103665,horse\n103666,deer\n103667,airplane\n103668,deer\n103669,cat\n103670,frog\n103671,horse\n103672,dog\n103673,deer\n103674,airplane\n103675,truck\n103676,bird\n103677,airplane\n103678,truck\n103679,deer\n103680,dog\n103681,dog\n103682,frog\n103683,horse\n103684,ship\n103685,airplane\n103686,cat\n103687,bird\n103688,bird\n103689,frog\n103690,automobile\n103691,automobile\n103692,airplane\n103693,automobile\n103694,dog\n103695,automobile\n103696,airplane\n103697,truck\n103698,dog\n103699,truck\n103700,horse\n103701,deer\n103702,horse\n103703,deer\n103704,cat\n103705,ship\n103706,cat\n103707,cat\n103708,airplane\n103709,airplane\n103710,cat\n103711,cat\n103712,dog\n103713,dog\n103714,bird\n103715,dog\n103716,dog\n103717,frog\n103718,horse\n103719,frog\n103720,deer\n103721,dog\n103722,airplane\n103723,truck\n103724,frog\n103725,frog\n103726,frog\n103727,bird\n103728,dog\n103729,deer\n103730,horse\n103731,horse\n103732,deer\n103733,deer\n103734,automobile\n103735,automobile\n103736,bird\n103737,ship\n103738,cat\n103739,frog\n103740,dog\n103741,bird\n103742,truck\n103743,deer\n103744,bird\n103745,cat\n103746,bird\n103747,ship\n103748,cat\n103749,cat\n103750,deer\n103751,cat\n103752,deer\n103753,frog\n103754,cat\n103755,cat\n103756,deer\n103757,airplane\n103758,cat\n103759,airplane\n103760,automobile\n103761,ship\n103762,airplane\n103763,truck\n103764,airplane\n103765,deer\n103766,frog\n103767,frog\n103768,truck\n103769,airplane\n103770,bird\n103771,deer\n103772,horse\n103773,deer\n103774,ship\n103775,automobile\n103776,truck\n103777,bird\n103778,deer\n103779,ship\n103780,cat\n103781,deer\n103782,deer\n103783,deer\n103784,ship\n103785,dog\n103786,deer\n103787,deer\n103788,deer\n103789,dog\n103790,cat\n103791,bird\n103792,frog\n103793,truck\n103794,cat\n103795,horse\n103796,deer\n103797,ship\n103798,truck\n103799,airplane\n103800,cat\n103801,airplane\n103802,deer\n103803,airplane\n103804,dog\n103805,horse\n103806,deer\n103807,dog\n103808,automobile\n103809,truck\n103810,dog\n103811,bird\n103812,cat\n103813,bird\n103814,automobile\n103815,cat\n103816,cat\n103817,cat\n103818,cat\n103819,dog\n103820,frog\n103821,airplane\n103822,airplane\n103823,deer\n103824,cat\n103825,frog\n103826,ship\n103827,automobile\n103828,dog\n103829,bird\n103830,horse\n103831,cat\n103832,deer\n103833,truck\n103834,airplane\n103835,horse\n103836,bird\n103837,deer\n103838,cat\n103839,cat\n103840,horse\n103841,deer\n103842,airplane\n103843,truck\n103844,airplane\n103845,bird\n103846,automobile\n103847,deer\n103848,horse\n103849,cat\n103850,bird\n103851,dog\n103852,automobile\n103853,horse\n103854,bird\n103855,bird\n103856,bird\n103857,deer\n103858,cat\n103859,airplane\n103860,deer\n103861,cat\n103862,frog\n103863,frog\n103864,truck\n103865,horse\n103866,deer\n103867,dog\n103868,horse\n103869,ship\n103870,dog\n103871,automobile\n103872,dog\n103873,cat\n103874,horse\n103875,truck\n103876,bird\n103877,horse\n103878,cat\n103879,airplane\n103880,deer\n103881,bird\n103882,automobile\n103883,horse\n103884,truck\n103885,cat\n103886,ship\n103887,horse\n103888,deer\n103889,airplane\n103890,automobile\n103891,cat\n103892,horse\n103893,dog\n103894,automobile\n103895,cat\n103896,cat\n103897,truck\n103898,horse\n103899,cat\n103900,truck\n103901,dog\n103902,bird\n103903,dog\n103904,automobile\n103905,automobile\n103906,horse\n103907,ship\n103908,airplane\n103909,truck\n103910,deer\n103911,dog\n103912,horse\n103913,deer\n103914,ship\n103915,horse\n103916,cat\n103917,frog\n103918,airplane\n103919,automobile\n103920,deer\n103921,deer\n103922,ship\n103923,deer\n103924,dog\n103925,deer\n103926,ship\n103927,dog\n103928,airplane\n103929,bird\n103930,dog\n103931,dog\n103932,frog\n103933,dog\n103934,dog\n103935,airplane\n103936,ship\n103937,airplane\n103938,airplane\n103939,truck\n103940,frog\n103941,ship\n103942,horse\n103943,frog\n103944,ship\n103945,frog\n103946,airplane\n103947,frog\n103948,dog\n103949,ship\n103950,cat\n103951,truck\n103952,deer\n103953,truck\n103954,ship\n103955,cat\n103956,dog\n103957,ship\n103958,cat\n103959,horse\n103960,airplane\n103961,cat\n103962,cat\n103963,deer\n103964,dog\n103965,bird\n103966,cat\n103967,ship\n103968,dog\n103969,deer\n103970,deer\n103971,automobile\n103972,automobile\n103973,horse\n103974,cat\n103975,deer\n103976,truck\n103977,frog\n103978,frog\n103979,horse\n103980,dog\n103981,cat\n103982,dog\n103983,deer\n103984,dog\n103985,automobile\n103986,dog\n103987,automobile\n103988,frog\n103989,horse\n103990,dog\n103991,cat\n103992,automobile\n103993,horse\n103994,automobile\n103995,cat\n103996,automobile\n103997,bird\n103998,cat\n103999,dog\n104000,ship\n104001,dog\n104002,cat\n104003,truck\n104004,cat\n104005,airplane\n104006,automobile\n104007,dog\n104008,automobile\n104009,ship\n104010,airplane\n104011,dog\n104012,truck\n104013,bird\n104014,bird\n104015,dog\n104016,frog\n104017,deer\n104018,bird\n104019,truck\n104020,cat\n104021,dog\n104022,dog\n104023,deer\n104024,horse\n104025,horse\n104026,deer\n104027,horse\n104028,cat\n104029,truck\n104030,ship\n104031,bird\n104032,cat\n104033,frog\n104034,truck\n104035,cat\n104036,cat\n104037,frog\n104038,bird\n104039,truck\n104040,horse\n104041,bird\n104042,bird\n104043,truck\n104044,bird\n104045,frog\n104046,deer\n104047,ship\n104048,bird\n104049,truck\n104050,dog\n104051,horse\n104052,dog\n104053,horse\n104054,airplane\n104055,deer\n104056,horse\n104057,bird\n104058,dog\n104059,cat\n104060,deer\n104061,airplane\n104062,dog\n104063,truck\n104064,truck\n104065,ship\n104066,frog\n104067,truck\n104068,deer\n104069,bird\n104070,truck\n104071,cat\n104072,dog\n104073,horse\n104074,bird\n104075,ship\n104076,frog\n104077,cat\n104078,ship\n104079,deer\n104080,frog\n104081,truck\n104082,bird\n104083,cat\n104084,airplane\n104085,frog\n104086,dog\n104087,frog\n104088,airplane\n104089,deer\n104090,horse\n104091,bird\n104092,horse\n104093,horse\n104094,horse\n104095,deer\n104096,bird\n104097,deer\n104098,cat\n104099,cat\n104100,automobile\n104101,dog\n104102,truck\n104103,deer\n104104,automobile\n104105,horse\n104106,dog\n104107,airplane\n104108,dog\n104109,deer\n104110,dog\n104111,bird\n104112,deer\n104113,automobile\n104114,dog\n104115,frog\n104116,deer\n104117,ship\n104118,deer\n104119,dog\n104120,deer\n104121,dog\n104122,horse\n104123,dog\n104124,truck\n104125,truck\n104126,deer\n104127,truck\n104128,frog\n104129,frog\n104130,ship\n104131,horse\n104132,cat\n104133,dog\n104134,airplane\n104135,automobile\n104136,truck\n104137,deer\n104138,ship\n104139,deer\n104140,cat\n104141,deer\n104142,horse\n104143,airplane\n104144,cat\n104145,bird\n104146,cat\n104147,automobile\n104148,cat\n104149,deer\n104150,bird\n104151,frog\n104152,airplane\n104153,frog\n104154,dog\n104155,deer\n104156,automobile\n104157,horse\n104158,horse\n104159,deer\n104160,frog\n104161,ship\n104162,deer\n104163,truck\n104164,dog\n104165,horse\n104166,automobile\n104167,automobile\n104168,cat\n104169,dog\n104170,dog\n104171,ship\n104172,cat\n104173,horse\n104174,cat\n104175,automobile\n104176,airplane\n104177,bird\n104178,cat\n104179,deer\n104180,deer\n104181,bird\n104182,automobile\n104183,bird\n104184,truck\n104185,frog\n104186,automobile\n104187,dog\n104188,frog\n104189,automobile\n104190,horse\n104191,frog\n104192,frog\n104193,deer\n104194,bird\n104195,frog\n104196,dog\n104197,horse\n104198,horse\n104199,ship\n104200,frog\n104201,cat\n104202,frog\n104203,automobile\n104204,ship\n104205,cat\n104206,cat\n104207,frog\n104208,ship\n104209,automobile\n104210,dog\n104211,bird\n104212,frog\n104213,cat\n104214,dog\n104215,cat\n104216,truck\n104217,automobile\n104218,cat\n104219,dog\n104220,horse\n104221,automobile\n104222,dog\n104223,horse\n104224,dog\n104225,frog\n104226,dog\n104227,dog\n104228,cat\n104229,ship\n104230,cat\n104231,automobile\n104232,cat\n104233,cat\n104234,deer\n104235,airplane\n104236,bird\n104237,truck\n104238,truck\n104239,cat\n104240,deer\n104241,ship\n104242,deer\n104243,truck\n104244,truck\n104245,airplane\n104246,airplane\n104247,dog\n104248,bird\n104249,bird\n104250,truck\n104251,cat\n104252,bird\n104253,horse\n104254,dog\n104255,airplane\n104256,frog\n104257,frog\n104258,horse\n104259,truck\n104260,dog\n104261,horse\n104262,automobile\n104263,horse\n104264,truck\n104265,airplane\n104266,cat\n104267,ship\n104268,cat\n104269,truck\n104270,automobile\n104271,dog\n104272,frog\n104273,deer\n104274,truck\n104275,ship\n104276,ship\n104277,deer\n104278,truck\n104279,frog\n104280,deer\n104281,bird\n104282,bird\n104283,dog\n104284,cat\n104285,automobile\n104286,ship\n104287,dog\n104288,ship\n104289,deer\n104290,deer\n104291,deer\n104292,automobile\n104293,horse\n104294,deer\n104295,deer\n104296,cat\n104297,bird\n104298,deer\n104299,horse\n104300,deer\n104301,ship\n104302,dog\n104303,cat\n104304,dog\n104305,automobile\n104306,dog\n104307,horse\n104308,cat\n104309,frog\n104310,deer\n104311,deer\n104312,bird\n104313,bird\n104314,dog\n104315,ship\n104316,dog\n104317,horse\n104318,bird\n104319,truck\n104320,frog\n104321,airplane\n104322,ship\n104323,ship\n104324,bird\n104325,horse\n104326,deer\n104327,airplane\n104328,frog\n104329,cat\n104330,airplane\n104331,cat\n104332,automobile\n104333,bird\n104334,cat\n104335,truck\n104336,horse\n104337,automobile\n104338,bird\n104339,frog\n104340,bird\n104341,airplane\n104342,airplane\n104343,ship\n104344,frog\n104345,truck\n104346,cat\n104347,airplane\n104348,automobile\n104349,truck\n104350,truck\n104351,cat\n104352,truck\n104353,truck\n104354,cat\n104355,dog\n104356,airplane\n104357,horse\n104358,frog\n104359,dog\n104360,dog\n104361,frog\n104362,automobile\n104363,cat\n104364,bird\n104365,deer\n104366,deer\n104367,truck\n104368,deer\n104369,cat\n104370,horse\n104371,frog\n104372,cat\n104373,deer\n104374,bird\n104375,truck\n104376,dog\n104377,ship\n104378,horse\n104379,ship\n104380,frog\n104381,cat\n104382,dog\n104383,dog\n104384,frog\n104385,bird\n104386,bird\n104387,ship\n104388,cat\n104389,truck\n104390,bird\n104391,airplane\n104392,ship\n104393,ship\n104394,truck\n104395,cat\n104396,cat\n104397,airplane\n104398,airplane\n104399,automobile\n104400,cat\n104401,dog\n104402,cat\n104403,horse\n104404,deer\n104405,horse\n104406,horse\n104407,cat\n104408,cat\n104409,cat\n104410,ship\n104411,horse\n104412,ship\n104413,cat\n104414,cat\n104415,horse\n104416,frog\n104417,cat\n104418,dog\n104419,ship\n104420,deer\n104421,ship\n104422,cat\n104423,cat\n104424,horse\n104425,cat\n104426,dog\n104427,ship\n104428,frog\n104429,dog\n104430,deer\n104431,cat\n104432,deer\n104433,bird\n104434,deer\n104435,cat\n104436,horse\n104437,airplane\n104438,bird\n104439,deer\n104440,frog\n104441,airplane\n104442,deer\n104443,cat\n104444,automobile\n104445,deer\n104446,automobile\n104447,cat\n104448,truck\n104449,horse\n104450,dog\n104451,ship\n104452,automobile\n104453,ship\n104454,dog\n104455,horse\n104456,bird\n104457,airplane\n104458,deer\n104459,dog\n104460,horse\n104461,automobile\n104462,deer\n104463,deer\n104464,dog\n104465,bird\n104466,airplane\n104467,automobile\n104468,automobile\n104469,ship\n104470,dog\n104471,automobile\n104472,dog\n104473,frog\n104474,truck\n104475,automobile\n104476,cat\n104477,dog\n104478,automobile\n104479,deer\n104480,ship\n104481,frog\n104482,airplane\n104483,deer\n104484,deer\n104485,frog\n104486,dog\n104487,ship\n104488,cat\n104489,deer\n104490,dog\n104491,dog\n104492,dog\n104493,frog\n104494,deer\n104495,deer\n104496,deer\n104497,bird\n104498,horse\n104499,horse\n104500,deer\n104501,deer\n104502,deer\n104503,ship\n104504,truck\n104505,truck\n104506,horse\n104507,cat\n104508,frog\n104509,truck\n104510,airplane\n104511,frog\n104512,frog\n104513,deer\n104514,cat\n104515,cat\n104516,automobile\n104517,frog\n104518,cat\n104519,deer\n104520,frog\n104521,ship\n104522,frog\n104523,horse\n104524,horse\n104525,airplane\n104526,bird\n104527,automobile\n104528,dog\n104529,deer\n104530,frog\n104531,bird\n104532,automobile\n104533,frog\n104534,frog\n104535,truck\n104536,cat\n104537,automobile\n104538,cat\n104539,truck\n104540,cat\n104541,truck\n104542,bird\n104543,dog\n104544,dog\n104545,airplane\n104546,truck\n104547,horse\n104548,automobile\n104549,frog\n104550,ship\n104551,truck\n104552,airplane\n104553,bird\n104554,cat\n104555,dog\n104556,airplane\n104557,automobile\n104558,dog\n104559,cat\n104560,deer\n104561,automobile\n104562,horse\n104563,truck\n104564,cat\n104565,cat\n104566,cat\n104567,cat\n104568,bird\n104569,cat\n104570,deer\n104571,truck\n104572,automobile\n104573,frog\n104574,ship\n104575,bird\n104576,dog\n104577,frog\n104578,dog\n104579,bird\n104580,horse\n104581,airplane\n104582,truck\n104583,cat\n104584,cat\n104585,bird\n104586,bird\n104587,bird\n104588,bird\n104589,frog\n104590,truck\n104591,deer\n104592,horse\n104593,airplane\n104594,cat\n104595,automobile\n104596,frog\n104597,truck\n104598,ship\n104599,truck\n104600,frog\n104601,deer\n104602,automobile\n104603,deer\n104604,airplane\n104605,dog\n104606,bird\n104607,ship\n104608,deer\n104609,ship\n104610,airplane\n104611,ship\n104612,frog\n104613,airplane\n104614,dog\n104615,cat\n104616,automobile\n104617,dog\n104618,automobile\n104619,dog\n104620,bird\n104621,airplane\n104622,truck\n104623,dog\n104624,cat\n104625,horse\n104626,ship\n104627,cat\n104628,frog\n104629,ship\n104630,deer\n104631,automobile\n104632,truck\n104633,bird\n104634,truck\n104635,frog\n104636,horse\n104637,cat\n104638,airplane\n104639,deer\n104640,bird\n104641,automobile\n104642,truck\n104643,truck\n104644,airplane\n104645,cat\n104646,automobile\n104647,cat\n104648,automobile\n104649,bird\n104650,ship\n104651,deer\n104652,airplane\n104653,airplane\n104654,dog\n104655,deer\n104656,truck\n104657,frog\n104658,automobile\n104659,horse\n104660,cat\n104661,horse\n104662,truck\n104663,deer\n104664,bird\n104665,cat\n104666,dog\n104667,cat\n104668,bird\n104669,frog\n104670,frog\n104671,truck\n104672,dog\n104673,dog\n104674,frog\n104675,truck\n104676,deer\n104677,deer\n104678,airplane\n104679,bird\n104680,frog\n104681,airplane\n104682,deer\n104683,truck\n104684,dog\n104685,bird\n104686,deer\n104687,truck\n104688,deer\n104689,airplane\n104690,cat\n104691,automobile\n104692,frog\n104693,deer\n104694,cat\n104695,bird\n104696,cat\n104697,cat\n104698,dog\n104699,cat\n104700,bird\n104701,horse\n104702,frog\n104703,truck\n104704,ship\n104705,horse\n104706,ship\n104707,cat\n104708,automobile\n104709,automobile\n104710,frog\n104711,cat\n104712,automobile\n104713,horse\n104714,frog\n104715,airplane\n104716,ship\n104717,truck\n104718,deer\n104719,horse\n104720,dog\n104721,bird\n104722,ship\n104723,deer\n104724,airplane\n104725,deer\n104726,frog\n104727,cat\n104728,ship\n104729,dog\n104730,automobile\n104731,airplane\n104732,deer\n104733,frog\n104734,truck\n104735,truck\n104736,dog\n104737,cat\n104738,truck\n104739,frog\n104740,truck\n104741,horse\n104742,horse\n104743,bird\n104744,horse\n104745,dog\n104746,deer\n104747,airplane\n104748,airplane\n104749,bird\n104750,truck\n104751,horse\n104752,bird\n104753,truck\n104754,dog\n104755,bird\n104756,ship\n104757,airplane\n104758,frog\n104759,frog\n104760,deer\n104761,dog\n104762,deer\n104763,automobile\n104764,dog\n104765,automobile\n104766,cat\n104767,truck\n104768,frog\n104769,cat\n104770,truck\n104771,cat\n104772,truck\n104773,deer\n104774,truck\n104775,truck\n104776,truck\n104777,deer\n104778,dog\n104779,frog\n104780,cat\n104781,bird\n104782,deer\n104783,bird\n104784,cat\n104785,dog\n104786,ship\n104787,frog\n104788,automobile\n104789,bird\n104790,deer\n104791,cat\n104792,bird\n104793,bird\n104794,truck\n104795,cat\n104796,bird\n104797,truck\n104798,bird\n104799,airplane\n104800,truck\n104801,frog\n104802,horse\n104803,truck\n104804,dog\n104805,truck\n104806,deer\n104807,deer\n104808,ship\n104809,frog\n104810,truck\n104811,frog\n104812,horse\n104813,airplane\n104814,dog\n104815,truck\n104816,dog\n104817,dog\n104818,automobile\n104819,bird\n104820,deer\n104821,bird\n104822,cat\n104823,deer\n104824,frog\n104825,automobile\n104826,automobile\n104827,horse\n104828,deer\n104829,automobile\n104830,truck\n104831,cat\n104832,automobile\n104833,truck\n104834,frog\n104835,horse\n104836,ship\n104837,deer\n104838,deer\n104839,airplane\n104840,cat\n104841,airplane\n104842,deer\n104843,bird\n104844,bird\n104845,horse\n104846,automobile\n104847,frog\n104848,dog\n104849,bird\n104850,airplane\n104851,airplane\n104852,automobile\n104853,horse\n104854,cat\n104855,horse\n104856,deer\n104857,deer\n104858,dog\n104859,frog\n104860,frog\n104861,cat\n104862,truck\n104863,truck\n104864,truck\n104865,deer\n104866,dog\n104867,ship\n104868,horse\n104869,deer\n104870,truck\n104871,bird\n104872,automobile\n104873,horse\n104874,frog\n104875,cat\n104876,deer\n104877,deer\n104878,deer\n104879,deer\n104880,truck\n104881,bird\n104882,deer\n104883,dog\n104884,dog\n104885,frog\n104886,bird\n104887,horse\n104888,bird\n104889,dog\n104890,horse\n104891,cat\n104892,dog\n104893,automobile\n104894,cat\n104895,cat\n104896,truck\n104897,cat\n104898,bird\n104899,frog\n104900,automobile\n104901,automobile\n104902,truck\n104903,deer\n104904,deer\n104905,horse\n104906,cat\n104907,frog\n104908,ship\n104909,dog\n104910,dog\n104911,truck\n104912,automobile\n104913,airplane\n104914,deer\n104915,cat\n104916,deer\n104917,horse\n104918,deer\n104919,horse\n104920,automobile\n104921,cat\n104922,dog\n104923,deer\n104924,airplane\n104925,horse\n104926,frog\n104927,deer\n104928,horse\n104929,ship\n104930,truck\n104931,frog\n104932,truck\n104933,horse\n104934,dog\n104935,automobile\n104936,airplane\n104937,truck\n104938,deer\n104939,dog\n104940,bird\n104941,cat\n104942,truck\n104943,truck\n104944,frog\n104945,airplane\n104946,frog\n104947,frog\n104948,bird\n104949,ship\n104950,cat\n104951,airplane\n104952,truck\n104953,horse\n104954,airplane\n104955,airplane\n104956,automobile\n104957,deer\n104958,cat\n104959,airplane\n104960,deer\n104961,bird\n104962,airplane\n104963,frog\n104964,frog\n104965,frog\n104966,frog\n104967,airplane\n104968,truck\n104969,deer\n104970,frog\n104971,airplane\n104972,truck\n104973,cat\n104974,ship\n104975,airplane\n104976,ship\n104977,bird\n104978,truck\n104979,frog\n104980,truck\n104981,deer\n104982,airplane\n104983,airplane\n104984,frog\n104985,horse\n104986,bird\n104987,ship\n104988,cat\n104989,bird\n104990,dog\n104991,deer\n104992,horse\n104993,frog\n104994,automobile\n104995,truck\n104996,dog\n104997,frog\n104998,bird\n104999,dog\n105000,frog\n105001,truck\n105002,dog\n105003,bird\n105004,horse\n105005,horse\n105006,frog\n105007,truck\n105008,cat\n105009,frog\n105010,deer\n105011,dog\n105012,horse\n105013,dog\n105014,deer\n105015,deer\n105016,frog\n105017,deer\n105018,frog\n105019,cat\n105020,cat\n105021,ship\n105022,dog\n105023,deer\n105024,airplane\n105025,cat\n105026,deer\n105027,horse\n105028,horse\n105029,horse\n105030,cat\n105031,deer\n105032,airplane\n105033,automobile\n105034,cat\n105035,horse\n105036,horse\n105037,airplane\n105038,frog\n105039,dog\n105040,frog\n105041,horse\n105042,ship\n105043,deer\n105044,horse\n105045,truck\n105046,frog\n105047,cat\n105048,cat\n105049,airplane\n105050,automobile\n105051,bird\n105052,bird\n105053,bird\n105054,frog\n105055,frog\n105056,deer\n105057,frog\n105058,ship\n105059,deer\n105060,bird\n105061,cat\n105062,deer\n105063,frog\n105064,horse\n105065,horse\n105066,frog\n105067,cat\n105068,truck\n105069,truck\n105070,automobile\n105071,ship\n105072,bird\n105073,cat\n105074,airplane\n105075,ship\n105076,deer\n105077,dog\n105078,frog\n105079,horse\n105080,automobile\n105081,horse\n105082,deer\n105083,truck\n105084,ship\n105085,frog\n105086,truck\n105087,cat\n105088,deer\n105089,truck\n105090,frog\n105091,airplane\n105092,truck\n105093,bird\n105094,automobile\n105095,dog\n105096,truck\n105097,cat\n105098,bird\n105099,ship\n105100,dog\n105101,frog\n105102,deer\n105103,dog\n105104,truck\n105105,deer\n105106,deer\n105107,truck\n105108,dog\n105109,deer\n105110,deer\n105111,ship\n105112,truck\n105113,automobile\n105114,dog\n105115,dog\n105116,truck\n105117,bird\n105118,automobile\n105119,horse\n105120,truck\n105121,frog\n105122,deer\n105123,truck\n105124,truck\n105125,automobile\n105126,bird\n105127,cat\n105128,horse\n105129,cat\n105130,cat\n105131,cat\n105132,deer\n105133,frog\n105134,horse\n105135,truck\n105136,truck\n105137,horse\n105138,truck\n105139,automobile\n105140,horse\n105141,automobile\n105142,frog\n105143,truck\n105144,horse\n105145,bird\n105146,horse\n105147,truck\n105148,automobile\n105149,truck\n105150,dog\n105151,cat\n105152,bird\n105153,dog\n105154,truck\n105155,horse\n105156,frog\n105157,horse\n105158,cat\n105159,frog\n105160,deer\n105161,ship\n105162,automobile\n105163,cat\n105164,automobile\n105165,automobile\n105166,dog\n105167,deer\n105168,deer\n105169,dog\n105170,deer\n105171,bird\n105172,cat\n105173,horse\n105174,airplane\n105175,automobile\n105176,ship\n105177,dog\n105178,cat\n105179,deer\n105180,frog\n105181,dog\n105182,airplane\n105183,bird\n105184,bird\n105185,cat\n105186,bird\n105187,dog\n105188,deer\n105189,automobile\n105190,truck\n105191,ship\n105192,deer\n105193,deer\n105194,bird\n105195,cat\n105196,horse\n105197,frog\n105198,bird\n105199,bird\n105200,horse\n105201,bird\n105202,dog\n105203,dog\n105204,dog\n105205,automobile\n105206,airplane\n105207,horse\n105208,deer\n105209,cat\n105210,bird\n105211,deer\n105212,frog\n105213,airplane\n105214,truck\n105215,automobile\n105216,deer\n105217,cat\n105218,automobile\n105219,ship\n105220,ship\n105221,deer\n105222,cat\n105223,dog\n105224,automobile\n105225,truck\n105226,ship\n105227,deer\n105228,frog\n105229,cat\n105230,horse\n105231,automobile\n105232,truck\n105233,cat\n105234,cat\n105235,horse\n105236,frog\n105237,bird\n105238,frog\n105239,deer\n105240,deer\n105241,bird\n105242,cat\n105243,deer\n105244,frog\n105245,ship\n105246,deer\n105247,ship\n105248,cat\n105249,airplane\n105250,dog\n105251,bird\n105252,deer\n105253,bird\n105254,ship\n105255,horse\n105256,deer\n105257,bird\n105258,truck\n105259,truck\n105260,deer\n105261,deer\n105262,frog\n105263,frog\n105264,horse\n105265,automobile\n105266,ship\n105267,ship\n105268,cat\n105269,truck\n105270,automobile\n105271,ship\n105272,deer\n105273,deer\n105274,deer\n105275,frog\n105276,frog\n105277,bird\n105278,truck\n105279,dog\n105280,automobile\n105281,cat\n105282,deer\n105283,cat\n105284,horse\n105285,cat\n105286,ship\n105287,cat\n105288,airplane\n105289,frog\n105290,deer\n105291,cat\n105292,horse\n105293,dog\n105294,deer\n105295,truck\n105296,ship\n105297,dog\n105298,bird\n105299,truck\n105300,dog\n105301,deer\n105302,deer\n105303,ship\n105304,truck\n105305,frog\n105306,automobile\n105307,deer\n105308,dog\n105309,horse\n105310,bird\n105311,automobile\n105312,cat\n105313,deer\n105314,deer\n105315,deer\n105316,horse\n105317,frog\n105318,ship\n105319,bird\n105320,cat\n105321,horse\n105322,truck\n105323,truck\n105324,cat\n105325,frog\n105326,ship\n105327,truck\n105328,truck\n105329,horse\n105330,deer\n105331,deer\n105332,dog\n105333,bird\n105334,deer\n105335,automobile\n105336,bird\n105337,ship\n105338,frog\n105339,bird\n105340,ship\n105341,airplane\n105342,deer\n105343,truck\n105344,cat\n105345,horse\n105346,truck\n105347,horse\n105348,dog\n105349,deer\n105350,truck\n105351,dog\n105352,truck\n105353,airplane\n105354,dog\n105355,ship\n105356,truck\n105357,cat\n105358,cat\n105359,cat\n105360,airplane\n105361,horse\n105362,dog\n105363,truck\n105364,automobile\n105365,deer\n105366,dog\n105367,cat\n105368,airplane\n105369,horse\n105370,cat\n105371,dog\n105372,horse\n105373,deer\n105374,frog\n105375,truck\n105376,cat\n105377,dog\n105378,deer\n105379,bird\n105380,cat\n105381,ship\n105382,frog\n105383,truck\n105384,deer\n105385,bird\n105386,bird\n105387,airplane\n105388,frog\n105389,bird\n105390,deer\n105391,truck\n105392,frog\n105393,airplane\n105394,deer\n105395,deer\n105396,airplane\n105397,deer\n105398,ship\n105399,cat\n105400,ship\n105401,airplane\n105402,bird\n105403,horse\n105404,automobile\n105405,truck\n105406,frog\n105407,automobile\n105408,ship\n105409,horse\n105410,deer\n105411,bird\n105412,horse\n105413,automobile\n105414,deer\n105415,deer\n105416,deer\n105417,cat\n105418,dog\n105419,truck\n105420,bird\n105421,frog\n105422,deer\n105423,cat\n105424,horse\n105425,truck\n105426,dog\n105427,frog\n105428,frog\n105429,truck\n105430,cat\n105431,horse\n105432,frog\n105433,cat\n105434,truck\n105435,cat\n105436,truck\n105437,deer\n105438,horse\n105439,frog\n105440,dog\n105441,ship\n105442,dog\n105443,bird\n105444,ship\n105445,truck\n105446,ship\n105447,cat\n105448,dog\n105449,frog\n105450,truck\n105451,airplane\n105452,bird\n105453,frog\n105454,airplane\n105455,horse\n105456,ship\n105457,frog\n105458,horse\n105459,horse\n105460,frog\n105461,airplane\n105462,automobile\n105463,airplane\n105464,ship\n105465,dog\n105466,cat\n105467,bird\n105468,airplane\n105469,frog\n105470,cat\n105471,truck\n105472,automobile\n105473,bird\n105474,bird\n105475,dog\n105476,dog\n105477,cat\n105478,cat\n105479,bird\n105480,frog\n105481,ship\n105482,cat\n105483,cat\n105484,automobile\n105485,automobile\n105486,truck\n105487,deer\n105488,frog\n105489,deer\n105490,deer\n105491,ship\n105492,deer\n105493,frog\n105494,cat\n105495,automobile\n105496,dog\n105497,cat\n105498,bird\n105499,cat\n105500,bird\n105501,dog\n105502,ship\n105503,frog\n105504,truck\n105505,deer\n105506,deer\n105507,horse\n105508,frog\n105509,horse\n105510,airplane\n105511,horse\n105512,horse\n105513,bird\n105514,airplane\n105515,truck\n105516,automobile\n105517,airplane\n105518,bird\n105519,truck\n105520,frog\n105521,horse\n105522,dog\n105523,airplane\n105524,frog\n105525,airplane\n105526,ship\n105527,cat\n105528,airplane\n105529,deer\n105530,ship\n105531,deer\n105532,dog\n105533,cat\n105534,ship\n105535,cat\n105536,deer\n105537,deer\n105538,ship\n105539,horse\n105540,horse\n105541,truck\n105542,deer\n105543,horse\n105544,dog\n105545,cat\n105546,horse\n105547,deer\n105548,cat\n105549,cat\n105550,automobile\n105551,cat\n105552,automobile\n105553,cat\n105554,ship\n105555,bird\n105556,ship\n105557,airplane\n105558,deer\n105559,frog\n105560,deer\n105561,bird\n105562,bird\n105563,truck\n105564,cat\n105565,airplane\n105566,deer\n105567,airplane\n105568,deer\n105569,cat\n105570,cat\n105571,ship\n105572,dog\n105573,truck\n105574,truck\n105575,cat\n105576,horse\n105577,truck\n105578,dog\n105579,cat\n105580,airplane\n105581,deer\n105582,airplane\n105583,bird\n105584,cat\n105585,ship\n105586,ship\n105587,automobile\n105588,automobile\n105589,deer\n105590,ship\n105591,frog\n105592,cat\n105593,automobile\n105594,truck\n105595,ship\n105596,truck\n105597,cat\n105598,ship\n105599,deer\n105600,cat\n105601,frog\n105602,truck\n105603,frog\n105604,cat\n105605,frog\n105606,bird\n105607,horse\n105608,automobile\n105609,ship\n105610,frog\n105611,bird\n105612,ship\n105613,deer\n105614,deer\n105615,truck\n105616,ship\n105617,deer\n105618,frog\n105619,airplane\n105620,airplane\n105621,frog\n105622,horse\n105623,ship\n105624,ship\n105625,truck\n105626,ship\n105627,dog\n105628,truck\n105629,bird\n105630,bird\n105631,frog\n105632,dog\n105633,cat\n105634,cat\n105635,truck\n105636,cat\n105637,cat\n105638,cat\n105639,airplane\n105640,deer\n105641,truck\n105642,deer\n105643,cat\n105644,frog\n105645,deer\n105646,frog\n105647,truck\n105648,automobile\n105649,bird\n105650,airplane\n105651,deer\n105652,airplane\n105653,dog\n105654,automobile\n105655,truck\n105656,horse\n105657,dog\n105658,horse\n105659,ship\n105660,cat\n105661,cat\n105662,frog\n105663,deer\n105664,bird\n105665,bird\n105666,bird\n105667,dog\n105668,truck\n105669,deer\n105670,cat\n105671,cat\n105672,ship\n105673,truck\n105674,frog\n105675,deer\n105676,automobile\n105677,bird\n105678,truck\n105679,airplane\n105680,truck\n105681,ship\n105682,dog\n105683,horse\n105684,frog\n105685,automobile\n105686,frog\n105687,frog\n105688,cat\n105689,dog\n105690,truck\n105691,ship\n105692,frog\n105693,bird\n105694,cat\n105695,dog\n105696,bird\n105697,ship\n105698,frog\n105699,cat\n105700,truck\n105701,dog\n105702,truck\n105703,cat\n105704,deer\n105705,frog\n105706,bird\n105707,frog\n105708,dog\n105709,cat\n105710,truck\n105711,deer\n105712,horse\n105713,frog\n105714,frog\n105715,truck\n105716,ship\n105717,deer\n105718,ship\n105719,bird\n105720,automobile\n105721,airplane\n105722,automobile\n105723,bird\n105724,dog\n105725,cat\n105726,airplane\n105727,cat\n105728,horse\n105729,dog\n105730,deer\n105731,airplane\n105732,cat\n105733,cat\n105734,deer\n105735,bird\n105736,ship\n105737,cat\n105738,cat\n105739,deer\n105740,dog\n105741,ship\n105742,automobile\n105743,deer\n105744,frog\n105745,airplane\n105746,truck\n105747,bird\n105748,cat\n105749,frog\n105750,ship\n105751,frog\n105752,bird\n105753,airplane\n105754,frog\n105755,frog\n105756,bird\n105757,dog\n105758,deer\n105759,ship\n105760,bird\n105761,automobile\n105762,cat\n105763,automobile\n105764,dog\n105765,deer\n105766,cat\n105767,frog\n105768,dog\n105769,horse\n105770,bird\n105771,frog\n105772,cat\n105773,horse\n105774,dog\n105775,truck\n105776,airplane\n105777,truck\n105778,automobile\n105779,dog\n105780,horse\n105781,frog\n105782,ship\n105783,deer\n105784,truck\n105785,dog\n105786,dog\n105787,horse\n105788,airplane\n105789,airplane\n105790,automobile\n105791,ship\n105792,cat\n105793,truck\n105794,truck\n105795,deer\n105796,cat\n105797,deer\n105798,cat\n105799,cat\n105800,dog\n105801,truck\n105802,frog\n105803,truck\n105804,horse\n105805,horse\n105806,truck\n105807,cat\n105808,truck\n105809,horse\n105810,truck\n105811,truck\n105812,automobile\n105813,cat\n105814,deer\n105815,frog\n105816,automobile\n105817,automobile\n105818,automobile\n105819,cat\n105820,ship\n105821,ship\n105822,airplane\n105823,truck\n105824,frog\n105825,automobile\n105826,automobile\n105827,bird\n105828,horse\n105829,ship\n105830,dog\n105831,frog\n105832,airplane\n105833,bird\n105834,truck\n105835,truck\n105836,bird\n105837,frog\n105838,deer\n105839,airplane\n105840,horse\n105841,frog\n105842,bird\n105843,ship\n105844,dog\n105845,truck\n105846,cat\n105847,ship\n105848,airplane\n105849,bird\n105850,dog\n105851,ship\n105852,frog\n105853,deer\n105854,airplane\n105855,frog\n105856,dog\n105857,truck\n105858,horse\n105859,ship\n105860,automobile\n105861,cat\n105862,airplane\n105863,cat\n105864,cat\n105865,cat\n105866,airplane\n105867,airplane\n105868,ship\n105869,ship\n105870,airplane\n105871,truck\n105872,frog\n105873,frog\n105874,automobile\n105875,ship\n105876,horse\n105877,automobile\n105878,cat\n105879,cat\n105880,bird\n105881,airplane\n105882,airplane\n105883,deer\n105884,bird\n105885,bird\n105886,deer\n105887,airplane\n105888,automobile\n105889,cat\n105890,frog\n105891,automobile\n105892,bird\n105893,dog\n105894,deer\n105895,cat\n105896,frog\n105897,horse\n105898,airplane\n105899,horse\n105900,dog\n105901,dog\n105902,deer\n105903,dog\n105904,dog\n105905,truck\n105906,cat\n105907,horse\n105908,automobile\n105909,frog\n105910,ship\n105911,horse\n105912,deer\n105913,horse\n105914,bird\n105915,ship\n105916,horse\n105917,dog\n105918,deer\n105919,deer\n105920,airplane\n105921,truck\n105922,cat\n105923,horse\n105924,cat\n105925,horse\n105926,airplane\n105927,airplane\n105928,dog\n105929,deer\n105930,ship\n105931,automobile\n105932,cat\n105933,deer\n105934,dog\n105935,horse\n105936,horse\n105937,deer\n105938,bird\n105939,horse\n105940,cat\n105941,frog\n105942,cat\n105943,ship\n105944,ship\n105945,automobile\n105946,cat\n105947,deer\n105948,cat\n105949,cat\n105950,cat\n105951,automobile\n105952,deer\n105953,horse\n105954,cat\n105955,frog\n105956,deer\n105957,truck\n105958,ship\n105959,airplane\n105960,truck\n105961,automobile\n105962,airplane\n105963,deer\n105964,dog\n105965,frog\n105966,dog\n105967,frog\n105968,automobile\n105969,frog\n105970,ship\n105971,bird\n105972,frog\n105973,airplane\n105974,cat\n105975,dog\n105976,horse\n105977,cat\n105978,horse\n105979,cat\n105980,frog\n105981,airplane\n105982,cat\n105983,dog\n105984,ship\n105985,airplane\n105986,dog\n105987,ship\n105988,frog\n105989,horse\n105990,automobile\n105991,horse\n105992,ship\n105993,dog\n105994,dog\n105995,horse\n105996,frog\n105997,dog\n105998,ship\n105999,frog\n106000,bird\n106001,cat\n106002,automobile\n106003,dog\n106004,airplane\n106005,frog\n106006,frog\n106007,truck\n106008,airplane\n106009,cat\n106010,bird\n106011,cat\n106012,cat\n106013,bird\n106014,frog\n106015,deer\n106016,dog\n106017,automobile\n106018,frog\n106019,airplane\n106020,dog\n106021,automobile\n106022,dog\n106023,cat\n106024,deer\n106025,frog\n106026,frog\n106027,airplane\n106028,truck\n106029,horse\n106030,ship\n106031,truck\n106032,deer\n106033,horse\n106034,frog\n106035,deer\n106036,deer\n106037,cat\n106038,bird\n106039,frog\n106040,horse\n106041,frog\n106042,frog\n106043,deer\n106044,airplane\n106045,automobile\n106046,ship\n106047,deer\n106048,deer\n106049,deer\n106050,automobile\n106051,horse\n106052,bird\n106053,frog\n106054,deer\n106055,bird\n106056,truck\n106057,automobile\n106058,horse\n106059,bird\n106060,bird\n106061,truck\n106062,horse\n106063,truck\n106064,dog\n106065,dog\n106066,truck\n106067,frog\n106068,deer\n106069,frog\n106070,automobile\n106071,ship\n106072,dog\n106073,horse\n106074,truck\n106075,deer\n106076,truck\n106077,deer\n106078,airplane\n106079,bird\n106080,dog\n106081,ship\n106082,bird\n106083,airplane\n106084,automobile\n106085,automobile\n106086,truck\n106087,deer\n106088,cat\n106089,automobile\n106090,horse\n106091,horse\n106092,truck\n106093,deer\n106094,bird\n106095,horse\n106096,deer\n106097,deer\n106098,deer\n106099,frog\n106100,dog\n106101,deer\n106102,ship\n106103,cat\n106104,horse\n106105,airplane\n106106,automobile\n106107,ship\n106108,dog\n106109,horse\n106110,dog\n106111,horse\n106112,bird\n106113,dog\n106114,horse\n106115,truck\n106116,bird\n106117,dog\n106118,automobile\n106119,truck\n106120,truck\n106121,deer\n106122,deer\n106123,dog\n106124,cat\n106125,cat\n106126,deer\n106127,automobile\n106128,deer\n106129,bird\n106130,bird\n106131,ship\n106132,dog\n106133,bird\n106134,automobile\n106135,horse\n106136,horse\n106137,cat\n106138,airplane\n106139,deer\n106140,dog\n106141,ship\n106142,horse\n106143,truck\n106144,deer\n106145,truck\n106146,bird\n106147,cat\n106148,truck\n106149,airplane\n106150,automobile\n106151,deer\n106152,airplane\n106153,frog\n106154,automobile\n106155,dog\n106156,bird\n106157,dog\n106158,ship\n106159,horse\n106160,frog\n106161,automobile\n106162,deer\n106163,automobile\n106164,truck\n106165,cat\n106166,frog\n106167,airplane\n106168,bird\n106169,dog\n106170,frog\n106171,bird\n106172,horse\n106173,airplane\n106174,dog\n106175,frog\n106176,ship\n106177,dog\n106178,horse\n106179,dog\n106180,cat\n106181,horse\n106182,airplane\n106183,frog\n106184,truck\n106185,truck\n106186,deer\n106187,ship\n106188,ship\n106189,ship\n106190,horse\n106191,airplane\n106192,cat\n106193,airplane\n106194,deer\n106195,automobile\n106196,cat\n106197,cat\n106198,frog\n106199,automobile\n106200,cat\n106201,cat\n106202,deer\n106203,cat\n106204,truck\n106205,dog\n106206,bird\n106207,ship\n106208,bird\n106209,dog\n106210,horse\n106211,frog\n106212,airplane\n106213,frog\n106214,ship\n106215,dog\n106216,horse\n106217,cat\n106218,horse\n106219,horse\n106220,automobile\n106221,ship\n106222,deer\n106223,airplane\n106224,dog\n106225,deer\n106226,deer\n106227,dog\n106228,ship\n106229,airplane\n106230,automobile\n106231,frog\n106232,cat\n106233,airplane\n106234,ship\n106235,airplane\n106236,deer\n106237,horse\n106238,frog\n106239,truck\n106240,cat\n106241,cat\n106242,dog\n106243,horse\n106244,ship\n106245,ship\n106246,deer\n106247,cat\n106248,cat\n106249,frog\n106250,frog\n106251,horse\n106252,dog\n106253,horse\n106254,cat\n106255,deer\n106256,truck\n106257,airplane\n106258,cat\n106259,frog\n106260,ship\n106261,bird\n106262,cat\n106263,cat\n106264,frog\n106265,bird\n106266,dog\n106267,bird\n106268,bird\n106269,ship\n106270,deer\n106271,cat\n106272,frog\n106273,automobile\n106274,frog\n106275,cat\n106276,truck\n106277,bird\n106278,cat\n106279,horse\n106280,deer\n106281,cat\n106282,ship\n106283,frog\n106284,airplane\n106285,cat\n106286,frog\n106287,cat\n106288,truck\n106289,truck\n106290,deer\n106291,frog\n106292,cat\n106293,dog\n106294,automobile\n106295,ship\n106296,bird\n106297,deer\n106298,bird\n106299,frog\n106300,cat\n106301,frog\n106302,ship\n106303,dog\n106304,dog\n106305,frog\n106306,frog\n106307,truck\n106308,deer\n106309,horse\n106310,frog\n106311,airplane\n106312,cat\n106313,bird\n106314,deer\n106315,deer\n106316,airplane\n106317,deer\n106318,frog\n106319,ship\n106320,dog\n106321,dog\n106322,dog\n106323,deer\n106324,automobile\n106325,horse\n106326,deer\n106327,truck\n106328,airplane\n106329,dog\n106330,horse\n106331,frog\n106332,frog\n106333,dog\n106334,frog\n106335,truck\n106336,dog\n106337,ship\n106338,frog\n106339,ship\n106340,deer\n106341,frog\n106342,frog\n106343,truck\n106344,truck\n106345,airplane\n106346,horse\n106347,cat\n106348,cat\n106349,deer\n106350,deer\n106351,bird\n106352,truck\n106353,frog\n106354,deer\n106355,deer\n106356,bird\n106357,deer\n106358,cat\n106359,automobile\n106360,frog\n106361,frog\n106362,horse\n106363,ship\n106364,deer\n106365,dog\n106366,dog\n106367,bird\n106368,ship\n106369,frog\n106370,dog\n106371,cat\n106372,truck\n106373,truck\n106374,dog\n106375,horse\n106376,horse\n106377,ship\n106378,deer\n106379,deer\n106380,cat\n106381,deer\n106382,frog\n106383,deer\n106384,cat\n106385,cat\n106386,automobile\n106387,truck\n106388,ship\n106389,bird\n106390,horse\n106391,cat\n106392,bird\n106393,horse\n106394,airplane\n106395,bird\n106396,bird\n106397,dog\n106398,dog\n106399,bird\n106400,horse\n106401,automobile\n106402,airplane\n106403,deer\n106404,horse\n106405,truck\n106406,dog\n106407,cat\n106408,dog\n106409,frog\n106410,deer\n106411,dog\n106412,ship\n106413,horse\n106414,ship\n106415,deer\n106416,automobile\n106417,automobile\n106418,deer\n106419,cat\n106420,truck\n106421,deer\n106422,horse\n106423,airplane\n106424,frog\n106425,deer\n106426,horse\n106427,dog\n106428,truck\n106429,ship\n106430,bird\n106431,automobile\n106432,automobile\n106433,truck\n106434,truck\n106435,cat\n106436,deer\n106437,frog\n106438,truck\n106439,cat\n106440,cat\n106441,frog\n106442,airplane\n106443,horse\n106444,airplane\n106445,deer\n106446,deer\n106447,horse\n106448,truck\n106449,horse\n106450,automobile\n106451,horse\n106452,deer\n106453,bird\n106454,deer\n106455,frog\n106456,deer\n106457,dog\n106458,horse\n106459,automobile\n106460,truck\n106461,dog\n106462,horse\n106463,cat\n106464,truck\n106465,dog\n106466,deer\n106467,deer\n106468,dog\n106469,ship\n106470,horse\n106471,dog\n106472,truck\n106473,frog\n106474,ship\n106475,deer\n106476,frog\n106477,truck\n106478,bird\n106479,cat\n106480,automobile\n106481,horse\n106482,automobile\n106483,deer\n106484,frog\n106485,automobile\n106486,bird\n106487,dog\n106488,truck\n106489,deer\n106490,automobile\n106491,horse\n106492,cat\n106493,bird\n106494,bird\n106495,truck\n106496,horse\n106497,cat\n106498,airplane\n106499,horse\n106500,frog\n106501,dog\n106502,frog\n106503,horse\n106504,automobile\n106505,cat\n106506,ship\n106507,ship\n106508,deer\n106509,automobile\n106510,truck\n106511,automobile\n106512,frog\n106513,horse\n106514,cat\n106515,ship\n106516,automobile\n106517,deer\n106518,deer\n106519,frog\n106520,bird\n106521,horse\n106522,automobile\n106523,deer\n106524,cat\n106525,airplane\n106526,deer\n106527,dog\n106528,truck\n106529,deer\n106530,truck\n106531,deer\n106532,dog\n106533,cat\n106534,frog\n106535,truck\n106536,automobile\n106537,cat\n106538,frog\n106539,cat\n106540,cat\n106541,frog\n106542,horse\n106543,deer\n106544,ship\n106545,truck\n106546,dog\n106547,automobile\n106548,deer\n106549,truck\n106550,truck\n106551,frog\n106552,deer\n106553,cat\n106554,truck\n106555,frog\n106556,frog\n106557,ship\n106558,horse\n106559,ship\n106560,horse\n106561,horse\n106562,cat\n106563,cat\n106564,cat\n106565,deer\n106566,cat\n106567,horse\n106568,cat\n106569,frog\n106570,horse\n106571,horse\n106572,frog\n106573,deer\n106574,ship\n106575,airplane\n106576,deer\n106577,deer\n106578,airplane\n106579,ship\n106580,cat\n106581,deer\n106582,cat\n106583,deer\n106584,truck\n106585,frog\n106586,automobile\n106587,cat\n106588,cat\n106589,deer\n106590,cat\n106591,horse\n106592,airplane\n106593,deer\n106594,bird\n106595,truck\n106596,truck\n106597,horse\n106598,frog\n106599,ship\n106600,bird\n106601,deer\n106602,cat\n106603,airplane\n106604,automobile\n106605,ship\n106606,automobile\n106607,ship\n106608,truck\n106609,bird\n106610,dog\n106611,dog\n106612,bird\n106613,horse\n106614,bird\n106615,cat\n106616,cat\n106617,ship\n106618,deer\n106619,frog\n106620,horse\n106621,automobile\n106622,dog\n106623,dog\n106624,horse\n106625,cat\n106626,cat\n106627,cat\n106628,cat\n106629,truck\n106630,horse\n106631,truck\n106632,horse\n106633,dog\n106634,cat\n106635,truck\n106636,airplane\n106637,horse\n106638,deer\n106639,truck\n106640,automobile\n106641,frog\n106642,automobile\n106643,automobile\n106644,deer\n106645,automobile\n106646,automobile\n106647,frog\n106648,horse\n106649,horse\n106650,deer\n106651,ship\n106652,automobile\n106653,horse\n106654,horse\n106655,ship\n106656,airplane\n106657,bird\n106658,bird\n106659,frog\n106660,bird\n106661,ship\n106662,bird\n106663,ship\n106664,horse\n106665,horse\n106666,truck\n106667,bird\n106668,ship\n106669,automobile\n106670,deer\n106671,frog\n106672,cat\n106673,deer\n106674,ship\n106675,cat\n106676,truck\n106677,deer\n106678,airplane\n106679,dog\n106680,dog\n106681,cat\n106682,truck\n106683,cat\n106684,horse\n106685,bird\n106686,frog\n106687,horse\n106688,frog\n106689,deer\n106690,horse\n106691,airplane\n106692,bird\n106693,deer\n106694,bird\n106695,bird\n106696,bird\n106697,airplane\n106698,horse\n106699,deer\n106700,horse\n106701,horse\n106702,dog\n106703,airplane\n106704,frog\n106705,deer\n106706,truck\n106707,dog\n106708,truck\n106709,automobile\n106710,bird\n106711,cat\n106712,dog\n106713,horse\n106714,truck\n106715,frog\n106716,deer\n106717,truck\n106718,frog\n106719,ship\n106720,cat\n106721,dog\n106722,cat\n106723,automobile\n106724,deer\n106725,bird\n106726,cat\n106727,truck\n106728,automobile\n106729,dog\n106730,cat\n106731,frog\n106732,cat\n106733,deer\n106734,deer\n106735,frog\n106736,airplane\n106737,automobile\n106738,airplane\n106739,truck\n106740,ship\n106741,frog\n106742,horse\n106743,deer\n106744,dog\n106745,deer\n106746,cat\n106747,bird\n106748,truck\n106749,frog\n106750,truck\n106751,bird\n106752,truck\n106753,ship\n106754,cat\n106755,truck\n106756,deer\n106757,bird\n106758,cat\n106759,airplane\n106760,frog\n106761,airplane\n106762,truck\n106763,cat\n106764,truck\n106765,horse\n106766,truck\n106767,automobile\n106768,cat\n106769,bird\n106770,automobile\n106771,automobile\n106772,dog\n106773,deer\n106774,deer\n106775,deer\n106776,truck\n106777,truck\n106778,truck\n106779,truck\n106780,ship\n106781,dog\n106782,dog\n106783,truck\n106784,deer\n106785,cat\n106786,ship\n106787,cat\n106788,airplane\n106789,bird\n106790,airplane\n106791,airplane\n106792,deer\n106793,bird\n106794,ship\n106795,horse\n106796,cat\n106797,cat\n106798,horse\n106799,automobile\n106800,cat\n106801,ship\n106802,frog\n106803,horse\n106804,dog\n106805,dog\n106806,frog\n106807,airplane\n106808,bird\n106809,cat\n106810,frog\n106811,frog\n106812,truck\n106813,deer\n106814,ship\n106815,cat\n106816,airplane\n106817,cat\n106818,ship\n106819,horse\n106820,frog\n106821,dog\n106822,deer\n106823,airplane\n106824,cat\n106825,cat\n106826,airplane\n106827,truck\n106828,frog\n106829,bird\n106830,horse\n106831,dog\n106832,deer\n106833,automobile\n106834,deer\n106835,ship\n106836,bird\n106837,frog\n106838,deer\n106839,bird\n106840,deer\n106841,deer\n106842,deer\n106843,frog\n106844,cat\n106845,frog\n106846,horse\n106847,frog\n106848,automobile\n106849,bird\n106850,bird\n106851,bird\n106852,frog\n106853,ship\n106854,frog\n106855,ship\n106856,cat\n106857,horse\n106858,frog\n106859,deer\n106860,cat\n106861,ship\n106862,horse\n106863,automobile\n106864,cat\n106865,ship\n106866,truck\n106867,frog\n106868,dog\n106869,cat\n106870,ship\n106871,frog\n106872,horse\n106873,frog\n106874,horse\n106875,horse\n106876,dog\n106877,bird\n106878,deer\n106879,dog\n106880,airplane\n106881,bird\n106882,frog\n106883,horse\n106884,frog\n106885,truck\n106886,truck\n106887,frog\n106888,deer\n106889,airplane\n106890,truck\n106891,deer\n106892,cat\n106893,truck\n106894,deer\n106895,ship\n106896,dog\n106897,frog\n106898,automobile\n106899,truck\n106900,deer\n106901,frog\n106902,dog\n106903,cat\n106904,airplane\n106905,automobile\n106906,airplane\n106907,automobile\n106908,cat\n106909,cat\n106910,deer\n106911,airplane\n106912,horse\n106913,dog\n106914,cat\n106915,bird\n106916,frog\n106917,deer\n106918,dog\n106919,truck\n106920,dog\n106921,deer\n106922,deer\n106923,bird\n106924,automobile\n106925,dog\n106926,bird\n106927,frog\n106928,deer\n106929,horse\n106930,dog\n106931,dog\n106932,automobile\n106933,frog\n106934,frog\n106935,frog\n106936,bird\n106937,frog\n106938,frog\n106939,airplane\n106940,horse\n106941,truck\n106942,cat\n106943,bird\n106944,ship\n106945,cat\n106946,horse\n106947,dog\n106948,horse\n106949,airplane\n106950,dog\n106951,frog\n106952,automobile\n106953,frog\n106954,bird\n106955,cat\n106956,ship\n106957,frog\n106958,deer\n106959,truck\n106960,dog\n106961,deer\n106962,airplane\n106963,frog\n106964,horse\n106965,deer\n106966,horse\n106967,deer\n106968,bird\n106969,deer\n106970,deer\n106971,bird\n106972,airplane\n106973,ship\n106974,deer\n106975,deer\n106976,airplane\n106977,frog\n106978,cat\n106979,ship\n106980,cat\n106981,bird\n106982,airplane\n106983,airplane\n106984,frog\n106985,deer\n106986,automobile\n106987,airplane\n106988,truck\n106989,cat\n106990,deer\n106991,dog\n106992,cat\n106993,dog\n106994,airplane\n106995,automobile\n106996,frog\n106997,frog\n106998,deer\n106999,ship\n107000,cat\n107001,ship\n107002,frog\n107003,frog\n107004,deer\n107005,cat\n107006,horse\n107007,truck\n107008,deer\n107009,frog\n107010,airplane\n107011,airplane\n107012,cat\n107013,dog\n107014,truck\n107015,ship\n107016,truck\n107017,frog\n107018,ship\n107019,deer\n107020,airplane\n107021,ship\n107022,cat\n107023,cat\n107024,bird\n107025,airplane\n107026,ship\n107027,truck\n107028,dog\n107029,horse\n107030,dog\n107031,truck\n107032,bird\n107033,horse\n107034,frog\n107035,cat\n107036,frog\n107037,automobile\n107038,bird\n107039,airplane\n107040,airplane\n107041,cat\n107042,dog\n107043,frog\n107044,dog\n107045,deer\n107046,airplane\n107047,truck\n107048,airplane\n107049,deer\n107050,frog\n107051,automobile\n107052,dog\n107053,horse\n107054,dog\n107055,truck\n107056,deer\n107057,ship\n107058,ship\n107059,truck\n107060,dog\n107061,airplane\n107062,frog\n107063,deer\n107064,deer\n107065,cat\n107066,horse\n107067,bird\n107068,deer\n107069,horse\n107070,horse\n107071,truck\n107072,cat\n107073,deer\n107074,deer\n107075,ship\n107076,cat\n107077,deer\n107078,frog\n107079,cat\n107080,horse\n107081,deer\n107082,dog\n107083,dog\n107084,ship\n107085,frog\n107086,truck\n107087,dog\n107088,truck\n107089,dog\n107090,airplane\n107091,truck\n107092,airplane\n107093,deer\n107094,truck\n107095,frog\n107096,horse\n107097,bird\n107098,ship\n107099,airplane\n107100,truck\n107101,horse\n107102,bird\n107103,ship\n107104,deer\n107105,horse\n107106,ship\n107107,bird\n107108,truck\n107109,truck\n107110,ship\n107111,cat\n107112,truck\n107113,truck\n107114,automobile\n107115,airplane\n107116,horse\n107117,ship\n107118,truck\n107119,airplane\n107120,dog\n107121,dog\n107122,frog\n107123,truck\n107124,bird\n107125,frog\n107126,horse\n107127,frog\n107128,horse\n107129,frog\n107130,horse\n107131,cat\n107132,horse\n107133,ship\n107134,dog\n107135,automobile\n107136,dog\n107137,bird\n107138,horse\n107139,deer\n107140,cat\n107141,deer\n107142,truck\n107143,truck\n107144,truck\n107145,airplane\n107146,deer\n107147,truck\n107148,truck\n107149,cat\n107150,horse\n107151,automobile\n107152,horse\n107153,horse\n107154,truck\n107155,dog\n107156,dog\n107157,truck\n107158,dog\n107159,deer\n107160,cat\n107161,bird\n107162,truck\n107163,ship\n107164,truck\n107165,horse\n107166,ship\n107167,cat\n107168,deer\n107169,dog\n107170,airplane\n107171,ship\n107172,truck\n107173,cat\n107174,truck\n107175,automobile\n107176,cat\n107177,ship\n107178,truck\n107179,dog\n107180,airplane\n107181,frog\n107182,deer\n107183,frog\n107184,cat\n107185,cat\n107186,dog\n107187,airplane\n107188,ship\n107189,automobile\n107190,airplane\n107191,automobile\n107192,airplane\n107193,dog\n107194,automobile\n107195,truck\n107196,deer\n107197,airplane\n107198,airplane\n107199,airplane\n107200,frog\n107201,cat\n107202,frog\n107203,bird\n107204,horse\n107205,ship\n107206,automobile\n107207,truck\n107208,truck\n107209,deer\n107210,ship\n107211,frog\n107212,truck\n107213,cat\n107214,dog\n107215,horse\n107216,horse\n107217,frog\n107218,horse\n107219,dog\n107220,cat\n107221,cat\n107222,automobile\n107223,cat\n107224,dog\n107225,dog\n107226,truck\n107227,horse\n107228,frog\n107229,cat\n107230,dog\n107231,automobile\n107232,frog\n107233,airplane\n107234,frog\n107235,cat\n107236,truck\n107237,bird\n107238,cat\n107239,cat\n107240,automobile\n107241,truck\n107242,cat\n107243,deer\n107244,deer\n107245,bird\n107246,dog\n107247,truck\n107248,ship\n107249,cat\n107250,bird\n107251,cat\n107252,automobile\n107253,deer\n107254,deer\n107255,truck\n107256,cat\n107257,deer\n107258,airplane\n107259,deer\n107260,truck\n107261,cat\n107262,ship\n107263,deer\n107264,ship\n107265,dog\n107266,deer\n107267,automobile\n107268,frog\n107269,airplane\n107270,cat\n107271,deer\n107272,dog\n107273,automobile\n107274,deer\n107275,cat\n107276,deer\n107277,truck\n107278,ship\n107279,frog\n107280,deer\n107281,cat\n107282,ship\n107283,frog\n107284,airplane\n107285,truck\n107286,frog\n107287,ship\n107288,bird\n107289,cat\n107290,cat\n107291,cat\n107292,ship\n107293,dog\n107294,cat\n107295,ship\n107296,horse\n107297,bird\n107298,frog\n107299,frog\n107300,bird\n107301,cat\n107302,horse\n107303,horse\n107304,airplane\n107305,deer\n107306,frog\n107307,frog\n107308,frog\n107309,bird\n107310,dog\n107311,ship\n107312,ship\n107313,automobile\n107314,cat\n107315,dog\n107316,automobile\n107317,ship\n107318,automobile\n107319,ship\n107320,frog\n107321,ship\n107322,truck\n107323,cat\n107324,deer\n107325,truck\n107326,dog\n107327,automobile\n107328,truck\n107329,horse\n107330,deer\n107331,frog\n107332,frog\n107333,automobile\n107334,truck\n107335,airplane\n107336,deer\n107337,frog\n107338,truck\n107339,truck\n107340,automobile\n107341,automobile\n107342,truck\n107343,truck\n107344,deer\n107345,cat\n107346,frog\n107347,ship\n107348,airplane\n107349,dog\n107350,horse\n107351,truck\n107352,cat\n107353,horse\n107354,deer\n107355,automobile\n107356,ship\n107357,automobile\n107358,airplane\n107359,horse\n107360,frog\n107361,dog\n107362,bird\n107363,bird\n107364,truck\n107365,deer\n107366,frog\n107367,dog\n107368,frog\n107369,deer\n107370,cat\n107371,cat\n107372,deer\n107373,deer\n107374,bird\n107375,cat\n107376,horse\n107377,deer\n107378,truck\n107379,frog\n107380,bird\n107381,deer\n107382,horse\n107383,horse\n107384,frog\n107385,deer\n107386,airplane\n107387,bird\n107388,ship\n107389,cat\n107390,frog\n107391,cat\n107392,bird\n107393,ship\n107394,dog\n107395,frog\n107396,cat\n107397,cat\n107398,dog\n107399,cat\n107400,deer\n107401,horse\n107402,deer\n107403,airplane\n107404,horse\n107405,frog\n107406,airplane\n107407,deer\n107408,automobile\n107409,cat\n107410,deer\n107411,ship\n107412,dog\n107413,cat\n107414,bird\n107415,bird\n107416,truck\n107417,cat\n107418,bird\n107419,automobile\n107420,horse\n107421,automobile\n107422,dog\n107423,dog\n107424,dog\n107425,dog\n107426,deer\n107427,deer\n107428,truck\n107429,horse\n107430,horse\n107431,ship\n107432,airplane\n107433,truck\n107434,frog\n107435,frog\n107436,cat\n107437,truck\n107438,horse\n107439,truck\n107440,truck\n107441,cat\n107442,dog\n107443,bird\n107444,deer\n107445,cat\n107446,frog\n107447,airplane\n107448,horse\n107449,truck\n107450,ship\n107451,cat\n107452,deer\n107453,airplane\n107454,automobile\n107455,horse\n107456,frog\n107457,ship\n107458,horse\n107459,truck\n107460,cat\n107461,frog\n107462,airplane\n107463,frog\n107464,airplane\n107465,automobile\n107466,frog\n107467,deer\n107468,cat\n107469,cat\n107470,horse\n107471,airplane\n107472,frog\n107473,truck\n107474,ship\n107475,deer\n107476,ship\n107477,cat\n107478,frog\n107479,horse\n107480,automobile\n107481,ship\n107482,truck\n107483,cat\n107484,airplane\n107485,airplane\n107486,automobile\n107487,horse\n107488,automobile\n107489,airplane\n107490,ship\n107491,frog\n107492,cat\n107493,deer\n107494,ship\n107495,cat\n107496,cat\n107497,dog\n107498,deer\n107499,dog\n107500,deer\n107501,frog\n107502,truck\n107503,airplane\n107504,deer\n107505,dog\n107506,frog\n107507,frog\n107508,cat\n107509,dog\n107510,horse\n107511,deer\n107512,deer\n107513,ship\n107514,ship\n107515,automobile\n107516,horse\n107517,horse\n107518,truck\n107519,truck\n107520,horse\n107521,truck\n107522,deer\n107523,horse\n107524,dog\n107525,truck\n107526,horse\n107527,bird\n107528,truck\n107529,horse\n107530,ship\n107531,bird\n107532,dog\n107533,automobile\n107534,cat\n107535,ship\n107536,truck\n107537,airplane\n107538,cat\n107539,cat\n107540,horse\n107541,bird\n107542,airplane\n107543,ship\n107544,automobile\n107545,cat\n107546,frog\n107547,frog\n107548,frog\n107549,cat\n107550,cat\n107551,frog\n107552,dog\n107553,dog\n107554,dog\n107555,truck\n107556,cat\n107557,cat\n107558,automobile\n107559,frog\n107560,truck\n107561,frog\n107562,truck\n107563,airplane\n107564,ship\n107565,deer\n107566,dog\n107567,truck\n107568,deer\n107569,deer\n107570,dog\n107571,deer\n107572,bird\n107573,ship\n107574,dog\n107575,dog\n107576,deer\n107577,frog\n107578,truck\n107579,horse\n107580,automobile\n107581,deer\n107582,frog\n107583,deer\n107584,frog\n107585,horse\n107586,deer\n107587,dog\n107588,truck\n107589,airplane\n107590,deer\n107591,dog\n107592,cat\n107593,cat\n107594,deer\n107595,truck\n107596,dog\n107597,deer\n107598,truck\n107599,truck\n107600,deer\n107601,bird\n107602,truck\n107603,truck\n107604,cat\n107605,airplane\n107606,dog\n107607,horse\n107608,ship\n107609,automobile\n107610,deer\n107611,frog\n107612,bird\n107613,dog\n107614,truck\n107615,deer\n107616,truck\n107617,dog\n107618,ship\n107619,cat\n107620,frog\n107621,deer\n107622,airplane\n107623,frog\n107624,horse\n107625,ship\n107626,automobile\n107627,horse\n107628,horse\n107629,airplane\n107630,horse\n107631,cat\n107632,cat\n107633,truck\n107634,ship\n107635,frog\n107636,dog\n107637,dog\n107638,horse\n107639,dog\n107640,horse\n107641,airplane\n107642,cat\n107643,ship\n107644,frog\n107645,dog\n107646,truck\n107647,horse\n107648,cat\n107649,airplane\n107650,airplane\n107651,cat\n107652,airplane\n107653,automobile\n107654,horse\n107655,airplane\n107656,ship\n107657,frog\n107658,airplane\n107659,deer\n107660,airplane\n107661,airplane\n107662,dog\n107663,frog\n107664,deer\n107665,ship\n107666,ship\n107667,horse\n107668,ship\n107669,ship\n107670,frog\n107671,automobile\n107672,horse\n107673,frog\n107674,deer\n107675,airplane\n107676,horse\n107677,cat\n107678,frog\n107679,bird\n107680,automobile\n107681,dog\n107682,deer\n107683,dog\n107684,deer\n107685,cat\n107686,automobile\n107687,ship\n107688,truck\n107689,horse\n107690,horse\n107691,deer\n107692,deer\n107693,deer\n107694,ship\n107695,bird\n107696,horse\n107697,dog\n107698,truck\n107699,cat\n107700,horse\n107701,deer\n107702,automobile\n107703,cat\n107704,airplane\n107705,frog\n107706,ship\n107707,cat\n107708,truck\n107709,horse\n107710,horse\n107711,truck\n107712,deer\n107713,cat\n107714,deer\n107715,cat\n107716,automobile\n107717,horse\n107718,frog\n107719,cat\n107720,horse\n107721,truck\n107722,horse\n107723,deer\n107724,airplane\n107725,truck\n107726,truck\n107727,automobile\n107728,deer\n107729,cat\n107730,dog\n107731,dog\n107732,ship\n107733,deer\n107734,airplane\n107735,cat\n107736,bird\n107737,airplane\n107738,deer\n107739,bird\n107740,deer\n107741,airplane\n107742,airplane\n107743,airplane\n107744,horse\n107745,frog\n107746,dog\n107747,dog\n107748,automobile\n107749,deer\n107750,airplane\n107751,cat\n107752,cat\n107753,dog\n107754,bird\n107755,ship\n107756,bird\n107757,dog\n107758,ship\n107759,horse\n107760,bird\n107761,ship\n107762,cat\n107763,dog\n107764,dog\n107765,automobile\n107766,automobile\n107767,frog\n107768,cat\n107769,ship\n107770,dog\n107771,deer\n107772,frog\n107773,frog\n107774,ship\n107775,bird\n107776,truck\n107777,dog\n107778,truck\n107779,truck\n107780,dog\n107781,truck\n107782,airplane\n107783,deer\n107784,horse\n107785,deer\n107786,ship\n107787,ship\n107788,automobile\n107789,airplane\n107790,truck\n107791,bird\n107792,frog\n107793,dog\n107794,cat\n107795,bird\n107796,frog\n107797,airplane\n107798,truck\n107799,airplane\n107800,ship\n107801,deer\n107802,automobile\n107803,truck\n107804,ship\n107805,deer\n107806,frog\n107807,ship\n107808,cat\n107809,ship\n107810,airplane\n107811,truck\n107812,deer\n107813,dog\n107814,airplane\n107815,bird\n107816,cat\n107817,horse\n107818,ship\n107819,truck\n107820,truck\n107821,horse\n107822,frog\n107823,automobile\n107824,frog\n107825,horse\n107826,ship\n107827,cat\n107828,frog\n107829,bird\n107830,deer\n107831,automobile\n107832,airplane\n107833,bird\n107834,bird\n107835,deer\n107836,truck\n107837,dog\n107838,truck\n107839,cat\n107840,deer\n107841,bird\n107842,dog\n107843,truck\n107844,ship\n107845,deer\n107846,automobile\n107847,deer\n107848,deer\n107849,frog\n107850,deer\n107851,horse\n107852,truck\n107853,frog\n107854,cat\n107855,frog\n107856,cat\n107857,cat\n107858,cat\n107859,dog\n107860,deer\n107861,airplane\n107862,truck\n107863,airplane\n107864,automobile\n107865,ship\n107866,deer\n107867,bird\n107868,bird\n107869,frog\n107870,airplane\n107871,horse\n107872,bird\n107873,bird\n107874,ship\n107875,horse\n107876,truck\n107877,deer\n107878,ship\n107879,automobile\n107880,airplane\n107881,frog\n107882,bird\n107883,truck\n107884,frog\n107885,deer\n107886,dog\n107887,ship\n107888,frog\n107889,frog\n107890,cat\n107891,frog\n107892,truck\n107893,deer\n107894,horse\n107895,frog\n107896,horse\n107897,cat\n107898,truck\n107899,deer\n107900,dog\n107901,bird\n107902,horse\n107903,horse\n107904,horse\n107905,bird\n107906,ship\n107907,frog\n107908,frog\n107909,deer\n107910,airplane\n107911,horse\n107912,horse\n107913,dog\n107914,cat\n107915,cat\n107916,dog\n107917,truck\n107918,truck\n107919,truck\n107920,airplane\n107921,dog\n107922,frog\n107923,deer\n107924,truck\n107925,truck\n107926,truck\n107927,ship\n107928,cat\n107929,truck\n107930,frog\n107931,cat\n107932,bird\n107933,truck\n107934,dog\n107935,automobile\n107936,frog\n107937,bird\n107938,frog\n107939,dog\n107940,ship\n107941,truck\n107942,cat\n107943,cat\n107944,horse\n107945,automobile\n107946,deer\n107947,ship\n107948,automobile\n107949,deer\n107950,truck\n107951,horse\n107952,deer\n107953,truck\n107954,frog\n107955,deer\n107956,deer\n107957,bird\n107958,ship\n107959,deer\n107960,frog\n107961,truck\n107962,frog\n107963,ship\n107964,horse\n107965,dog\n107966,horse\n107967,horse\n107968,automobile\n107969,dog\n107970,truck\n107971,frog\n107972,dog\n107973,dog\n107974,horse\n107975,dog\n107976,truck\n107977,horse\n107978,deer\n107979,frog\n107980,ship\n107981,truck\n107982,ship\n107983,ship\n107984,automobile\n107985,automobile\n107986,automobile\n107987,cat\n107988,cat\n107989,horse\n107990,bird\n107991,bird\n107992,cat\n107993,deer\n107994,airplane\n107995,frog\n107996,airplane\n107997,cat\n107998,airplane\n107999,airplane\n108000,ship\n108001,airplane\n108002,airplane\n108003,truck\n108004,deer\n108005,horse\n108006,deer\n108007,dog\n108008,deer\n108009,airplane\n108010,ship\n108011,truck\n108012,cat\n108013,deer\n108014,deer\n108015,dog\n108016,dog\n108017,horse\n108018,deer\n108019,deer\n108020,ship\n108021,deer\n108022,bird\n108023,frog\n108024,dog\n108025,truck\n108026,cat\n108027,automobile\n108028,cat\n108029,cat\n108030,dog\n108031,ship\n108032,frog\n108033,ship\n108034,truck\n108035,deer\n108036,frog\n108037,frog\n108038,dog\n108039,horse\n108040,deer\n108041,horse\n108042,deer\n108043,deer\n108044,ship\n108045,bird\n108046,bird\n108047,dog\n108048,truck\n108049,ship\n108050,bird\n108051,bird\n108052,frog\n108053,dog\n108054,dog\n108055,deer\n108056,deer\n108057,truck\n108058,horse\n108059,ship\n108060,truck\n108061,bird\n108062,deer\n108063,airplane\n108064,horse\n108065,frog\n108066,automobile\n108067,frog\n108068,automobile\n108069,deer\n108070,horse\n108071,dog\n108072,bird\n108073,bird\n108074,truck\n108075,ship\n108076,deer\n108077,horse\n108078,deer\n108079,frog\n108080,deer\n108081,airplane\n108082,cat\n108083,dog\n108084,horse\n108085,ship\n108086,bird\n108087,frog\n108088,cat\n108089,deer\n108090,automobile\n108091,airplane\n108092,ship\n108093,dog\n108094,dog\n108095,dog\n108096,deer\n108097,cat\n108098,cat\n108099,dog\n108100,ship\n108101,frog\n108102,airplane\n108103,ship\n108104,ship\n108105,deer\n108106,ship\n108107,dog\n108108,ship\n108109,bird\n108110,frog\n108111,truck\n108112,deer\n108113,cat\n108114,cat\n108115,bird\n108116,cat\n108117,bird\n108118,bird\n108119,bird\n108120,dog\n108121,automobile\n108122,ship\n108123,truck\n108124,frog\n108125,deer\n108126,deer\n108127,horse\n108128,truck\n108129,bird\n108130,horse\n108131,ship\n108132,deer\n108133,bird\n108134,cat\n108135,deer\n108136,truck\n108137,frog\n108138,cat\n108139,dog\n108140,airplane\n108141,deer\n108142,deer\n108143,truck\n108144,ship\n108145,ship\n108146,cat\n108147,truck\n108148,bird\n108149,horse\n108150,cat\n108151,airplane\n108152,cat\n108153,deer\n108154,horse\n108155,bird\n108156,horse\n108157,deer\n108158,bird\n108159,airplane\n108160,automobile\n108161,cat\n108162,truck\n108163,truck\n108164,automobile\n108165,truck\n108166,ship\n108167,automobile\n108168,automobile\n108169,automobile\n108170,frog\n108171,frog\n108172,frog\n108173,truck\n108174,bird\n108175,frog\n108176,cat\n108177,deer\n108178,deer\n108179,dog\n108180,dog\n108181,cat\n108182,ship\n108183,bird\n108184,bird\n108185,truck\n108186,bird\n108187,horse\n108188,deer\n108189,dog\n108190,deer\n108191,cat\n108192,frog\n108193,airplane\n108194,cat\n108195,frog\n108196,deer\n108197,horse\n108198,deer\n108199,bird\n108200,deer\n108201,cat\n108202,dog\n108203,dog\n108204,cat\n108205,automobile\n108206,truck\n108207,cat\n108208,dog\n108209,deer\n108210,airplane\n108211,cat\n108212,bird\n108213,deer\n108214,dog\n108215,ship\n108216,automobile\n108217,airplane\n108218,truck\n108219,bird\n108220,deer\n108221,deer\n108222,ship\n108223,dog\n108224,frog\n108225,bird\n108226,ship\n108227,cat\n108228,bird\n108229,deer\n108230,ship\n108231,dog\n108232,automobile\n108233,airplane\n108234,deer\n108235,automobile\n108236,cat\n108237,deer\n108238,ship\n108239,cat\n108240,automobile\n108241,automobile\n108242,cat\n108243,cat\n108244,truck\n108245,horse\n108246,cat\n108247,horse\n108248,cat\n108249,ship\n108250,horse\n108251,dog\n108252,truck\n108253,deer\n108254,airplane\n108255,frog\n108256,dog\n108257,dog\n108258,deer\n108259,airplane\n108260,cat\n108261,truck\n108262,deer\n108263,dog\n108264,deer\n108265,dog\n108266,horse\n108267,airplane\n108268,cat\n108269,bird\n108270,cat\n108271,cat\n108272,automobile\n108273,cat\n108274,airplane\n108275,bird\n108276,airplane\n108277,airplane\n108278,horse\n108279,automobile\n108280,bird\n108281,cat\n108282,bird\n108283,horse\n108284,horse\n108285,bird\n108286,ship\n108287,truck\n108288,truck\n108289,dog\n108290,bird\n108291,deer\n108292,truck\n108293,deer\n108294,frog\n108295,horse\n108296,dog\n108297,cat\n108298,bird\n108299,bird\n108300,bird\n108301,dog\n108302,cat\n108303,deer\n108304,bird\n108305,dog\n108306,truck\n108307,bird\n108308,cat\n108309,airplane\n108310,automobile\n108311,bird\n108312,ship\n108313,horse\n108314,bird\n108315,ship\n108316,horse\n108317,frog\n108318,ship\n108319,frog\n108320,cat\n108321,cat\n108322,dog\n108323,ship\n108324,dog\n108325,frog\n108326,frog\n108327,deer\n108328,truck\n108329,airplane\n108330,horse\n108331,automobile\n108332,truck\n108333,automobile\n108334,automobile\n108335,dog\n108336,horse\n108337,cat\n108338,cat\n108339,automobile\n108340,bird\n108341,truck\n108342,cat\n108343,truck\n108344,horse\n108345,automobile\n108346,dog\n108347,horse\n108348,frog\n108349,frog\n108350,ship\n108351,dog\n108352,ship\n108353,cat\n108354,horse\n108355,frog\n108356,deer\n108357,horse\n108358,horse\n108359,ship\n108360,deer\n108361,truck\n108362,airplane\n108363,bird\n108364,cat\n108365,horse\n108366,frog\n108367,horse\n108368,deer\n108369,deer\n108370,airplane\n108371,frog\n108372,truck\n108373,horse\n108374,deer\n108375,cat\n108376,dog\n108377,horse\n108378,horse\n108379,bird\n108380,cat\n108381,truck\n108382,frog\n108383,bird\n108384,airplane\n108385,ship\n108386,ship\n108387,cat\n108388,truck\n108389,dog\n108390,deer\n108391,horse\n108392,dog\n108393,dog\n108394,cat\n108395,automobile\n108396,automobile\n108397,automobile\n108398,ship\n108399,dog\n108400,dog\n108401,automobile\n108402,truck\n108403,truck\n108404,deer\n108405,horse\n108406,frog\n108407,airplane\n108408,frog\n108409,truck\n108410,ship\n108411,cat\n108412,truck\n108413,airplane\n108414,truck\n108415,deer\n108416,airplane\n108417,bird\n108418,dog\n108419,deer\n108420,frog\n108421,dog\n108422,deer\n108423,deer\n108424,dog\n108425,cat\n108426,horse\n108427,deer\n108428,cat\n108429,airplane\n108430,automobile\n108431,automobile\n108432,ship\n108433,bird\n108434,deer\n108435,horse\n108436,cat\n108437,cat\n108438,truck\n108439,airplane\n108440,horse\n108441,cat\n108442,ship\n108443,dog\n108444,bird\n108445,dog\n108446,cat\n108447,bird\n108448,dog\n108449,ship\n108450,frog\n108451,truck\n108452,truck\n108453,horse\n108454,horse\n108455,cat\n108456,airplane\n108457,automobile\n108458,truck\n108459,dog\n108460,airplane\n108461,bird\n108462,cat\n108463,frog\n108464,deer\n108465,automobile\n108466,deer\n108467,deer\n108468,horse\n108469,deer\n108470,airplane\n108471,truck\n108472,frog\n108473,cat\n108474,horse\n108475,horse\n108476,airplane\n108477,bird\n108478,ship\n108479,automobile\n108480,deer\n108481,bird\n108482,ship\n108483,horse\n108484,bird\n108485,deer\n108486,horse\n108487,cat\n108488,airplane\n108489,dog\n108490,bird\n108491,frog\n108492,deer\n108493,truck\n108494,ship\n108495,dog\n108496,automobile\n108497,bird\n108498,ship\n108499,truck\n108500,frog\n108501,cat\n108502,ship\n108503,deer\n108504,horse\n108505,frog\n108506,frog\n108507,horse\n108508,dog\n108509,deer\n108510,bird\n108511,cat\n108512,airplane\n108513,cat\n108514,frog\n108515,truck\n108516,horse\n108517,frog\n108518,cat\n108519,deer\n108520,truck\n108521,airplane\n108522,frog\n108523,ship\n108524,frog\n108525,frog\n108526,deer\n108527,horse\n108528,cat\n108529,deer\n108530,ship\n108531,deer\n108532,horse\n108533,automobile\n108534,horse\n108535,deer\n108536,bird\n108537,frog\n108538,ship\n108539,airplane\n108540,frog\n108541,deer\n108542,cat\n108543,cat\n108544,truck\n108545,ship\n108546,cat\n108547,ship\n108548,automobile\n108549,cat\n108550,frog\n108551,frog\n108552,frog\n108553,dog\n108554,horse\n108555,dog\n108556,cat\n108557,deer\n108558,deer\n108559,bird\n108560,cat\n108561,cat\n108562,horse\n108563,truck\n108564,bird\n108565,dog\n108566,deer\n108567,dog\n108568,airplane\n108569,frog\n108570,horse\n108571,truck\n108572,truck\n108573,frog\n108574,cat\n108575,frog\n108576,automobile\n108577,bird\n108578,automobile\n108579,ship\n108580,frog\n108581,bird\n108582,automobile\n108583,cat\n108584,deer\n108585,airplane\n108586,ship\n108587,airplane\n108588,dog\n108589,horse\n108590,frog\n108591,deer\n108592,horse\n108593,deer\n108594,bird\n108595,dog\n108596,horse\n108597,truck\n108598,automobile\n108599,frog\n108600,horse\n108601,cat\n108602,horse\n108603,airplane\n108604,dog\n108605,deer\n108606,airplane\n108607,bird\n108608,dog\n108609,dog\n108610,deer\n108611,cat\n108612,dog\n108613,deer\n108614,automobile\n108615,cat\n108616,deer\n108617,truck\n108618,bird\n108619,bird\n108620,deer\n108621,horse\n108622,dog\n108623,truck\n108624,dog\n108625,airplane\n108626,truck\n108627,deer\n108628,deer\n108629,dog\n108630,truck\n108631,airplane\n108632,bird\n108633,truck\n108634,horse\n108635,deer\n108636,cat\n108637,deer\n108638,frog\n108639,truck\n108640,frog\n108641,dog\n108642,truck\n108643,frog\n108644,frog\n108645,frog\n108646,frog\n108647,airplane\n108648,automobile\n108649,cat\n108650,ship\n108651,deer\n108652,frog\n108653,bird\n108654,cat\n108655,ship\n108656,truck\n108657,dog\n108658,truck\n108659,cat\n108660,automobile\n108661,bird\n108662,ship\n108663,ship\n108664,cat\n108665,airplane\n108666,automobile\n108667,automobile\n108668,ship\n108669,dog\n108670,automobile\n108671,truck\n108672,frog\n108673,cat\n108674,cat\n108675,ship\n108676,airplane\n108677,ship\n108678,cat\n108679,frog\n108680,airplane\n108681,ship\n108682,bird\n108683,frog\n108684,frog\n108685,deer\n108686,truck\n108687,truck\n108688,dog\n108689,dog\n108690,dog\n108691,horse\n108692,ship\n108693,cat\n108694,airplane\n108695,airplane\n108696,airplane\n108697,deer\n108698,cat\n108699,deer\n108700,deer\n108701,deer\n108702,airplane\n108703,deer\n108704,truck\n108705,truck\n108706,airplane\n108707,deer\n108708,automobile\n108709,truck\n108710,frog\n108711,dog\n108712,ship\n108713,ship\n108714,automobile\n108715,dog\n108716,frog\n108717,dog\n108718,horse\n108719,cat\n108720,ship\n108721,bird\n108722,ship\n108723,dog\n108724,truck\n108725,ship\n108726,cat\n108727,truck\n108728,automobile\n108729,truck\n108730,automobile\n108731,truck\n108732,dog\n108733,horse\n108734,deer\n108735,airplane\n108736,horse\n108737,cat\n108738,deer\n108739,automobile\n108740,cat\n108741,cat\n108742,deer\n108743,bird\n108744,cat\n108745,cat\n108746,dog\n108747,automobile\n108748,deer\n108749,frog\n108750,automobile\n108751,frog\n108752,airplane\n108753,frog\n108754,airplane\n108755,frog\n108756,truck\n108757,bird\n108758,truck\n108759,frog\n108760,bird\n108761,deer\n108762,frog\n108763,ship\n108764,horse\n108765,frog\n108766,automobile\n108767,ship\n108768,frog\n108769,deer\n108770,ship\n108771,automobile\n108772,truck\n108773,frog\n108774,deer\n108775,ship\n108776,horse\n108777,truck\n108778,truck\n108779,cat\n108780,airplane\n108781,deer\n108782,frog\n108783,frog\n108784,automobile\n108785,cat\n108786,dog\n108787,cat\n108788,dog\n108789,cat\n108790,frog\n108791,automobile\n108792,deer\n108793,cat\n108794,horse\n108795,horse\n108796,airplane\n108797,cat\n108798,cat\n108799,airplane\n108800,airplane\n108801,cat\n108802,frog\n108803,deer\n108804,dog\n108805,airplane\n108806,deer\n108807,automobile\n108808,deer\n108809,cat\n108810,automobile\n108811,frog\n108812,truck\n108813,dog\n108814,airplane\n108815,dog\n108816,deer\n108817,deer\n108818,bird\n108819,ship\n108820,truck\n108821,airplane\n108822,frog\n108823,deer\n108824,horse\n108825,bird\n108826,airplane\n108827,truck\n108828,dog\n108829,cat\n108830,bird\n108831,bird\n108832,frog\n108833,cat\n108834,horse\n108835,truck\n108836,automobile\n108837,bird\n108838,bird\n108839,horse\n108840,deer\n108841,horse\n108842,truck\n108843,ship\n108844,horse\n108845,dog\n108846,horse\n108847,deer\n108848,truck\n108849,automobile\n108850,truck\n108851,truck\n108852,dog\n108853,airplane\n108854,dog\n108855,airplane\n108856,cat\n108857,airplane\n108858,truck\n108859,deer\n108860,bird\n108861,cat\n108862,frog\n108863,truck\n108864,dog\n108865,dog\n108866,cat\n108867,dog\n108868,frog\n108869,automobile\n108870,dog\n108871,cat\n108872,horse\n108873,bird\n108874,automobile\n108875,truck\n108876,deer\n108877,horse\n108878,truck\n108879,deer\n108880,airplane\n108881,deer\n108882,cat\n108883,airplane\n108884,horse\n108885,airplane\n108886,deer\n108887,dog\n108888,dog\n108889,horse\n108890,ship\n108891,bird\n108892,frog\n108893,automobile\n108894,bird\n108895,horse\n108896,ship\n108897,horse\n108898,truck\n108899,frog\n108900,deer\n108901,automobile\n108902,ship\n108903,truck\n108904,airplane\n108905,ship\n108906,bird\n108907,ship\n108908,horse\n108909,frog\n108910,cat\n108911,ship\n108912,bird\n108913,deer\n108914,frog\n108915,dog\n108916,deer\n108917,ship\n108918,truck\n108919,ship\n108920,ship\n108921,airplane\n108922,airplane\n108923,horse\n108924,truck\n108925,automobile\n108926,cat\n108927,ship\n108928,cat\n108929,truck\n108930,ship\n108931,airplane\n108932,frog\n108933,ship\n108934,airplane\n108935,deer\n108936,truck\n108937,airplane\n108938,cat\n108939,airplane\n108940,dog\n108941,cat\n108942,ship\n108943,bird\n108944,truck\n108945,deer\n108946,deer\n108947,horse\n108948,cat\n108949,ship\n108950,horse\n108951,deer\n108952,frog\n108953,bird\n108954,bird\n108955,cat\n108956,bird\n108957,automobile\n108958,dog\n108959,horse\n108960,cat\n108961,ship\n108962,truck\n108963,ship\n108964,ship\n108965,truck\n108966,frog\n108967,horse\n108968,airplane\n108969,cat\n108970,airplane\n108971,horse\n108972,frog\n108973,deer\n108974,truck\n108975,horse\n108976,horse\n108977,cat\n108978,cat\n108979,deer\n108980,automobile\n108981,dog\n108982,cat\n108983,frog\n108984,bird\n108985,dog\n108986,cat\n108987,bird\n108988,cat\n108989,cat\n108990,deer\n108991,cat\n108992,truck\n108993,truck\n108994,frog\n108995,automobile\n108996,deer\n108997,dog\n108998,truck\n108999,deer\n109000,truck\n109001,dog\n109002,horse\n109003,dog\n109004,cat\n109005,dog\n109006,horse\n109007,dog\n109008,deer\n109009,ship\n109010,frog\n109011,deer\n109012,truck\n109013,frog\n109014,truck\n109015,deer\n109016,bird\n109017,dog\n109018,deer\n109019,dog\n109020,bird\n109021,deer\n109022,airplane\n109023,cat\n109024,dog\n109025,cat\n109026,automobile\n109027,automobile\n109028,airplane\n109029,airplane\n109030,frog\n109031,airplane\n109032,deer\n109033,cat\n109034,dog\n109035,airplane\n109036,deer\n109037,ship\n109038,deer\n109039,frog\n109040,truck\n109041,frog\n109042,bird\n109043,ship\n109044,deer\n109045,automobile\n109046,cat\n109047,cat\n109048,frog\n109049,deer\n109050,horse\n109051,truck\n109052,automobile\n109053,truck\n109054,bird\n109055,truck\n109056,ship\n109057,bird\n109058,cat\n109059,horse\n109060,bird\n109061,frog\n109062,deer\n109063,cat\n109064,automobile\n109065,deer\n109066,cat\n109067,cat\n109068,airplane\n109069,truck\n109070,cat\n109071,frog\n109072,deer\n109073,truck\n109074,truck\n109075,horse\n109076,frog\n109077,ship\n109078,automobile\n109079,dog\n109080,airplane\n109081,horse\n109082,truck\n109083,cat\n109084,deer\n109085,deer\n109086,deer\n109087,airplane\n109088,deer\n109089,truck\n109090,cat\n109091,bird\n109092,truck\n109093,deer\n109094,airplane\n109095,horse\n109096,truck\n109097,airplane\n109098,dog\n109099,horse\n109100,bird\n109101,airplane\n109102,horse\n109103,frog\n109104,cat\n109105,deer\n109106,cat\n109107,bird\n109108,deer\n109109,ship\n109110,frog\n109111,deer\n109112,deer\n109113,cat\n109114,automobile\n109115,cat\n109116,cat\n109117,bird\n109118,cat\n109119,horse\n109120,horse\n109121,dog\n109122,frog\n109123,ship\n109124,dog\n109125,airplane\n109126,deer\n109127,truck\n109128,deer\n109129,automobile\n109130,deer\n109131,deer\n109132,deer\n109133,airplane\n109134,airplane\n109135,ship\n109136,frog\n109137,deer\n109138,deer\n109139,truck\n109140,cat\n109141,deer\n109142,ship\n109143,airplane\n109144,deer\n109145,dog\n109146,airplane\n109147,automobile\n109148,airplane\n109149,frog\n109150,cat\n109151,cat\n109152,airplane\n109153,frog\n109154,truck\n109155,deer\n109156,cat\n109157,truck\n109158,frog\n109159,automobile\n109160,cat\n109161,bird\n109162,deer\n109163,frog\n109164,frog\n109165,ship\n109166,bird\n109167,airplane\n109168,deer\n109169,ship\n109170,deer\n109171,horse\n109172,frog\n109173,frog\n109174,bird\n109175,dog\n109176,truck\n109177,dog\n109178,airplane\n109179,truck\n109180,deer\n109181,dog\n109182,dog\n109183,cat\n109184,ship\n109185,frog\n109186,deer\n109187,horse\n109188,ship\n109189,cat\n109190,bird\n109191,truck\n109192,bird\n109193,frog\n109194,horse\n109195,deer\n109196,ship\n109197,frog\n109198,airplane\n109199,airplane\n109200,automobile\n109201,automobile\n109202,horse\n109203,automobile\n109204,cat\n109205,cat\n109206,frog\n109207,deer\n109208,automobile\n109209,frog\n109210,airplane\n109211,ship\n109212,truck\n109213,ship\n109214,cat\n109215,ship\n109216,deer\n109217,ship\n109218,airplane\n109219,horse\n109220,frog\n109221,cat\n109222,frog\n109223,bird\n109224,truck\n109225,horse\n109226,automobile\n109227,bird\n109228,airplane\n109229,airplane\n109230,airplane\n109231,dog\n109232,deer\n109233,truck\n109234,horse\n109235,dog\n109236,airplane\n109237,cat\n109238,airplane\n109239,dog\n109240,horse\n109241,airplane\n109242,bird\n109243,bird\n109244,truck\n109245,deer\n109246,truck\n109247,bird\n109248,deer\n109249,dog\n109250,deer\n109251,deer\n109252,horse\n109253,ship\n109254,dog\n109255,ship\n109256,bird\n109257,dog\n109258,automobile\n109259,deer\n109260,automobile\n109261,deer\n109262,airplane\n109263,dog\n109264,deer\n109265,cat\n109266,frog\n109267,cat\n109268,bird\n109269,cat\n109270,horse\n109271,cat\n109272,ship\n109273,deer\n109274,deer\n109275,horse\n109276,truck\n109277,truck\n109278,horse\n109279,automobile\n109280,deer\n109281,automobile\n109282,horse\n109283,frog\n109284,airplane\n109285,automobile\n109286,deer\n109287,deer\n109288,deer\n109289,cat\n109290,deer\n109291,cat\n109292,automobile\n109293,frog\n109294,dog\n109295,deer\n109296,horse\n109297,airplane\n109298,cat\n109299,horse\n109300,deer\n109301,truck\n109302,airplane\n109303,cat\n109304,frog\n109305,bird\n109306,deer\n109307,deer\n109308,airplane\n109309,cat\n109310,deer\n109311,horse\n109312,cat\n109313,deer\n109314,ship\n109315,dog\n109316,ship\n109317,dog\n109318,cat\n109319,truck\n109320,cat\n109321,dog\n109322,bird\n109323,deer\n109324,truck\n109325,cat\n109326,horse\n109327,truck\n109328,airplane\n109329,horse\n109330,ship\n109331,deer\n109332,ship\n109333,deer\n109334,automobile\n109335,frog\n109336,truck\n109337,cat\n109338,ship\n109339,truck\n109340,horse\n109341,dog\n109342,automobile\n109343,dog\n109344,dog\n109345,cat\n109346,automobile\n109347,deer\n109348,bird\n109349,airplane\n109350,truck\n109351,bird\n109352,horse\n109353,truck\n109354,truck\n109355,ship\n109356,cat\n109357,ship\n109358,deer\n109359,cat\n109360,bird\n109361,frog\n109362,deer\n109363,frog\n109364,dog\n109365,automobile\n109366,bird\n109367,airplane\n109368,dog\n109369,automobile\n109370,frog\n109371,cat\n109372,deer\n109373,cat\n109374,horse\n109375,horse\n109376,dog\n109377,bird\n109378,automobile\n109379,automobile\n109380,ship\n109381,dog\n109382,airplane\n109383,airplane\n109384,cat\n109385,deer\n109386,automobile\n109387,horse\n109388,horse\n109389,horse\n109390,dog\n109391,deer\n109392,truck\n109393,frog\n109394,dog\n109395,deer\n109396,automobile\n109397,frog\n109398,frog\n109399,truck\n109400,airplane\n109401,deer\n109402,horse\n109403,horse\n109404,truck\n109405,bird\n109406,ship\n109407,truck\n109408,truck\n109409,airplane\n109410,dog\n109411,bird\n109412,deer\n109413,horse\n109414,deer\n109415,dog\n109416,cat\n109417,cat\n109418,bird\n109419,horse\n109420,frog\n109421,truck\n109422,truck\n109423,horse\n109424,cat\n109425,dog\n109426,cat\n109427,bird\n109428,truck\n109429,dog\n109430,dog\n109431,ship\n109432,horse\n109433,dog\n109434,frog\n109435,cat\n109436,deer\n109437,bird\n109438,deer\n109439,deer\n109440,deer\n109441,frog\n109442,cat\n109443,ship\n109444,cat\n109445,cat\n109446,airplane\n109447,frog\n109448,automobile\n109449,cat\n109450,automobile\n109451,frog\n109452,cat\n109453,automobile\n109454,frog\n109455,ship\n109456,truck\n109457,cat\n109458,airplane\n109459,deer\n109460,frog\n109461,frog\n109462,truck\n109463,dog\n109464,automobile\n109465,deer\n109466,horse\n109467,airplane\n109468,cat\n109469,ship\n109470,ship\n109471,bird\n109472,truck\n109473,cat\n109474,truck\n109475,deer\n109476,bird\n109477,horse\n109478,ship\n109479,frog\n109480,deer\n109481,frog\n109482,truck\n109483,airplane\n109484,horse\n109485,frog\n109486,bird\n109487,truck\n109488,frog\n109489,frog\n109490,cat\n109491,automobile\n109492,dog\n109493,airplane\n109494,deer\n109495,frog\n109496,ship\n109497,horse\n109498,cat\n109499,horse\n109500,deer\n109501,cat\n109502,dog\n109503,airplane\n109504,horse\n109505,truck\n109506,horse\n109507,horse\n109508,ship\n109509,cat\n109510,frog\n109511,cat\n109512,truck\n109513,airplane\n109514,cat\n109515,cat\n109516,cat\n109517,frog\n109518,cat\n109519,truck\n109520,frog\n109521,cat\n109522,frog\n109523,dog\n109524,automobile\n109525,automobile\n109526,horse\n109527,dog\n109528,ship\n109529,cat\n109530,deer\n109531,dog\n109532,ship\n109533,deer\n109534,airplane\n109535,deer\n109536,ship\n109537,cat\n109538,dog\n109539,cat\n109540,horse\n109541,cat\n109542,deer\n109543,bird\n109544,deer\n109545,ship\n109546,horse\n109547,truck\n109548,frog\n109549,airplane\n109550,deer\n109551,automobile\n109552,airplane\n109553,automobile\n109554,automobile\n109555,deer\n109556,cat\n109557,frog\n109558,airplane\n109559,frog\n109560,bird\n109561,frog\n109562,ship\n109563,dog\n109564,deer\n109565,frog\n109566,truck\n109567,frog\n109568,automobile\n109569,deer\n109570,deer\n109571,truck\n109572,automobile\n109573,cat\n109574,bird\n109575,truck\n109576,deer\n109577,cat\n109578,deer\n109579,ship\n109580,airplane\n109581,truck\n109582,frog\n109583,cat\n109584,horse\n109585,cat\n109586,airplane\n109587,dog\n109588,airplane\n109589,horse\n109590,bird\n109591,cat\n109592,dog\n109593,cat\n109594,dog\n109595,frog\n109596,frog\n109597,frog\n109598,truck\n109599,deer\n109600,dog\n109601,airplane\n109602,bird\n109603,automobile\n109604,cat\n109605,airplane\n109606,airplane\n109607,deer\n109608,dog\n109609,truck\n109610,ship\n109611,deer\n109612,deer\n109613,dog\n109614,dog\n109615,horse\n109616,dog\n109617,bird\n109618,bird\n109619,cat\n109620,automobile\n109621,dog\n109622,dog\n109623,cat\n109624,automobile\n109625,dog\n109626,frog\n109627,cat\n109628,ship\n109629,deer\n109630,deer\n109631,horse\n109632,automobile\n109633,automobile\n109634,airplane\n109635,horse\n109636,truck\n109637,automobile\n109638,horse\n109639,airplane\n109640,airplane\n109641,bird\n109642,airplane\n109643,ship\n109644,truck\n109645,deer\n109646,bird\n109647,ship\n109648,truck\n109649,deer\n109650,bird\n109651,airplane\n109652,cat\n109653,cat\n109654,ship\n109655,airplane\n109656,truck\n109657,airplane\n109658,ship\n109659,bird\n109660,deer\n109661,airplane\n109662,bird\n109663,horse\n109664,frog\n109665,frog\n109666,automobile\n109667,bird\n109668,cat\n109669,truck\n109670,dog\n109671,frog\n109672,airplane\n109673,automobile\n109674,deer\n109675,ship\n109676,horse\n109677,cat\n109678,bird\n109679,horse\n109680,airplane\n109681,frog\n109682,bird\n109683,automobile\n109684,bird\n109685,horse\n109686,cat\n109687,cat\n109688,bird\n109689,cat\n109690,horse\n109691,bird\n109692,automobile\n109693,frog\n109694,cat\n109695,ship\n109696,truck\n109697,cat\n109698,horse\n109699,deer\n109700,frog\n109701,ship\n109702,bird\n109703,truck\n109704,ship\n109705,ship\n109706,airplane\n109707,deer\n109708,frog\n109709,cat\n109710,dog\n109711,truck\n109712,automobile\n109713,ship\n109714,cat\n109715,deer\n109716,horse\n109717,airplane\n109718,cat\n109719,frog\n109720,horse\n109721,frog\n109722,frog\n109723,frog\n109724,cat\n109725,automobile\n109726,airplane\n109727,ship\n109728,deer\n109729,airplane\n109730,deer\n109731,horse\n109732,dog\n109733,horse\n109734,cat\n109735,frog\n109736,deer\n109737,bird\n109738,dog\n109739,cat\n109740,deer\n109741,deer\n109742,ship\n109743,dog\n109744,horse\n109745,truck\n109746,cat\n109747,airplane\n109748,deer\n109749,bird\n109750,deer\n109751,frog\n109752,cat\n109753,deer\n109754,airplane\n109755,automobile\n109756,automobile\n109757,bird\n109758,automobile\n109759,airplane\n109760,deer\n109761,ship\n109762,frog\n109763,cat\n109764,truck\n109765,automobile\n109766,ship\n109767,dog\n109768,cat\n109769,automobile\n109770,deer\n109771,cat\n109772,horse\n109773,automobile\n109774,truck\n109775,cat\n109776,airplane\n109777,frog\n109778,dog\n109779,dog\n109780,deer\n109781,dog\n109782,frog\n109783,dog\n109784,ship\n109785,horse\n109786,dog\n109787,frog\n109788,truck\n109789,deer\n109790,bird\n109791,horse\n109792,ship\n109793,ship\n109794,frog\n109795,horse\n109796,dog\n109797,deer\n109798,airplane\n109799,dog\n109800,frog\n109801,dog\n109802,truck\n109803,dog\n109804,deer\n109805,cat\n109806,dog\n109807,dog\n109808,cat\n109809,airplane\n109810,frog\n109811,horse\n109812,horse\n109813,deer\n109814,frog\n109815,truck\n109816,dog\n109817,airplane\n109818,cat\n109819,horse\n109820,truck\n109821,truck\n109822,airplane\n109823,deer\n109824,ship\n109825,ship\n109826,airplane\n109827,airplane\n109828,automobile\n109829,ship\n109830,truck\n109831,ship\n109832,automobile\n109833,frog\n109834,cat\n109835,truck\n109836,bird\n109837,ship\n109838,deer\n109839,frog\n109840,bird\n109841,bird\n109842,frog\n109843,cat\n109844,cat\n109845,deer\n109846,frog\n109847,deer\n109848,automobile\n109849,ship\n109850,automobile\n109851,ship\n109852,cat\n109853,ship\n109854,frog\n109855,airplane\n109856,truck\n109857,truck\n109858,bird\n109859,dog\n109860,airplane\n109861,horse\n109862,truck\n109863,bird\n109864,cat\n109865,frog\n109866,deer\n109867,bird\n109868,horse\n109869,deer\n109870,frog\n109871,horse\n109872,automobile\n109873,truck\n109874,cat\n109875,automobile\n109876,dog\n109877,cat\n109878,deer\n109879,cat\n109880,frog\n109881,frog\n109882,deer\n109883,truck\n109884,horse\n109885,cat\n109886,deer\n109887,dog\n109888,dog\n109889,bird\n109890,ship\n109891,automobile\n109892,truck\n109893,ship\n109894,frog\n109895,dog\n109896,bird\n109897,cat\n109898,bird\n109899,cat\n109900,horse\n109901,dog\n109902,automobile\n109903,horse\n109904,frog\n109905,cat\n109906,cat\n109907,truck\n109908,cat\n109909,horse\n109910,truck\n109911,ship\n109912,frog\n109913,ship\n109914,bird\n109915,frog\n109916,bird\n109917,deer\n109918,automobile\n109919,bird\n109920,horse\n109921,horse\n109922,cat\n109923,bird\n109924,ship\n109925,cat\n109926,cat\n109927,bird\n109928,dog\n109929,deer\n109930,deer\n109931,deer\n109932,airplane\n109933,frog\n109934,horse\n109935,frog\n109936,frog\n109937,airplane\n109938,deer\n109939,cat\n109940,truck\n109941,deer\n109942,dog\n109943,cat\n109944,deer\n109945,horse\n109946,horse\n109947,dog\n109948,automobile\n109949,truck\n109950,airplane\n109951,bird\n109952,bird\n109953,cat\n109954,truck\n109955,frog\n109956,frog\n109957,deer\n109958,airplane\n109959,airplane\n109960,airplane\n109961,frog\n109962,cat\n109963,airplane\n109964,cat\n109965,deer\n109966,deer\n109967,cat\n109968,dog\n109969,bird\n109970,frog\n109971,truck\n109972,dog\n109973,airplane\n109974,frog\n109975,airplane\n109976,truck\n109977,bird\n109978,deer\n109979,frog\n109980,ship\n109981,bird\n109982,airplane\n109983,deer\n109984,deer\n109985,cat\n109986,airplane\n109987,truck\n109988,frog\n109989,frog\n109990,frog\n109991,frog\n109992,ship\n109993,truck\n109994,deer\n109995,airplane\n109996,horse\n109997,dog\n109998,deer\n109999,airplane\n110000,deer\n110001,cat\n110002,deer\n110003,bird\n110004,airplane\n110005,cat\n110006,frog\n110007,truck\n110008,horse\n110009,frog\n110010,deer\n110011,dog\n110012,truck\n110013,ship\n110014,automobile\n110015,frog\n110016,frog\n110017,frog\n110018,deer\n110019,deer\n110020,ship\n110021,deer\n110022,cat\n110023,frog\n110024,dog\n110025,ship\n110026,cat\n110027,dog\n110028,horse\n110029,automobile\n110030,bird\n110031,frog\n110032,bird\n110033,frog\n110034,ship\n110035,cat\n110036,deer\n110037,deer\n110038,bird\n110039,cat\n110040,bird\n110041,bird\n110042,dog\n110043,frog\n110044,deer\n110045,dog\n110046,automobile\n110047,deer\n110048,dog\n110049,truck\n110050,dog\n110051,automobile\n110052,dog\n110053,deer\n110054,automobile\n110055,truck\n110056,automobile\n110057,ship\n110058,cat\n110059,airplane\n110060,horse\n110061,ship\n110062,horse\n110063,cat\n110064,horse\n110065,horse\n110066,automobile\n110067,cat\n110068,dog\n110069,cat\n110070,cat\n110071,cat\n110072,deer\n110073,dog\n110074,deer\n110075,horse\n110076,frog\n110077,frog\n110078,automobile\n110079,frog\n110080,airplane\n110081,bird\n110082,cat\n110083,dog\n110084,ship\n110085,truck\n110086,horse\n110087,dog\n110088,cat\n110089,frog\n110090,dog\n110091,automobile\n110092,ship\n110093,deer\n110094,ship\n110095,airplane\n110096,cat\n110097,horse\n110098,ship\n110099,airplane\n110100,bird\n110101,frog\n110102,automobile\n110103,deer\n110104,truck\n110105,horse\n110106,horse\n110107,deer\n110108,dog\n110109,dog\n110110,dog\n110111,ship\n110112,deer\n110113,airplane\n110114,truck\n110115,cat\n110116,dog\n110117,airplane\n110118,ship\n110119,automobile\n110120,truck\n110121,bird\n110122,automobile\n110123,cat\n110124,horse\n110125,deer\n110126,bird\n110127,deer\n110128,airplane\n110129,horse\n110130,airplane\n110131,cat\n110132,truck\n110133,automobile\n110134,horse\n110135,frog\n110136,automobile\n110137,airplane\n110138,truck\n110139,deer\n110140,bird\n110141,truck\n110142,frog\n110143,frog\n110144,dog\n110145,bird\n110146,frog\n110147,deer\n110148,ship\n110149,deer\n110150,deer\n110151,truck\n110152,airplane\n110153,truck\n110154,frog\n110155,bird\n110156,ship\n110157,cat\n110158,deer\n110159,horse\n110160,automobile\n110161,frog\n110162,horse\n110163,cat\n110164,deer\n110165,airplane\n110166,dog\n110167,bird\n110168,deer\n110169,horse\n110170,frog\n110171,automobile\n110172,cat\n110173,truck\n110174,deer\n110175,automobile\n110176,airplane\n110177,bird\n110178,ship\n110179,automobile\n110180,dog\n110181,bird\n110182,automobile\n110183,dog\n110184,cat\n110185,deer\n110186,deer\n110187,deer\n110188,ship\n110189,frog\n110190,bird\n110191,deer\n110192,dog\n110193,ship\n110194,ship\n110195,cat\n110196,automobile\n110197,deer\n110198,dog\n110199,ship\n110200,ship\n110201,horse\n110202,horse\n110203,automobile\n110204,frog\n110205,deer\n110206,ship\n110207,automobile\n110208,automobile\n110209,frog\n110210,horse\n110211,truck\n110212,airplane\n110213,automobile\n110214,truck\n110215,deer\n110216,deer\n110217,cat\n110218,frog\n110219,automobile\n110220,ship\n110221,deer\n110222,ship\n110223,bird\n110224,dog\n110225,truck\n110226,bird\n110227,cat\n110228,automobile\n110229,frog\n110230,automobile\n110231,frog\n110232,frog\n110233,airplane\n110234,airplane\n110235,deer\n110236,dog\n110237,bird\n110238,dog\n110239,deer\n110240,cat\n110241,dog\n110242,dog\n110243,cat\n110244,horse\n110245,frog\n110246,deer\n110247,bird\n110248,automobile\n110249,automobile\n110250,horse\n110251,frog\n110252,cat\n110253,deer\n110254,horse\n110255,truck\n110256,automobile\n110257,cat\n110258,bird\n110259,truck\n110260,dog\n110261,frog\n110262,deer\n110263,deer\n110264,truck\n110265,deer\n110266,cat\n110267,deer\n110268,frog\n110269,frog\n110270,truck\n110271,cat\n110272,bird\n110273,horse\n110274,bird\n110275,truck\n110276,cat\n110277,cat\n110278,truck\n110279,bird\n110280,deer\n110281,dog\n110282,frog\n110283,bird\n110284,bird\n110285,truck\n110286,horse\n110287,automobile\n110288,deer\n110289,truck\n110290,bird\n110291,truck\n110292,automobile\n110293,deer\n110294,bird\n110295,deer\n110296,automobile\n110297,truck\n110298,ship\n110299,ship\n110300,deer\n110301,cat\n110302,ship\n110303,frog\n110304,ship\n110305,truck\n110306,truck\n110307,cat\n110308,bird\n110309,frog\n110310,bird\n110311,frog\n110312,bird\n110313,truck\n110314,cat\n110315,cat\n110316,cat\n110317,bird\n110318,cat\n110319,horse\n110320,cat\n110321,cat\n110322,frog\n110323,bird\n110324,bird\n110325,frog\n110326,dog\n110327,cat\n110328,ship\n110329,dog\n110330,bird\n110331,deer\n110332,cat\n110333,cat\n110334,frog\n110335,deer\n110336,deer\n110337,cat\n110338,horse\n110339,deer\n110340,cat\n110341,cat\n110342,automobile\n110343,deer\n110344,dog\n110345,cat\n110346,bird\n110347,frog\n110348,deer\n110349,dog\n110350,deer\n110351,bird\n110352,frog\n110353,dog\n110354,airplane\n110355,deer\n110356,dog\n110357,frog\n110358,automobile\n110359,airplane\n110360,frog\n110361,dog\n110362,automobile\n110363,bird\n110364,automobile\n110365,bird\n110366,frog\n110367,frog\n110368,automobile\n110369,horse\n110370,frog\n110371,automobile\n110372,truck\n110373,frog\n110374,cat\n110375,frog\n110376,bird\n110377,bird\n110378,cat\n110379,cat\n110380,automobile\n110381,cat\n110382,dog\n110383,ship\n110384,deer\n110385,automobile\n110386,deer\n110387,dog\n110388,frog\n110389,bird\n110390,cat\n110391,dog\n110392,frog\n110393,airplane\n110394,deer\n110395,dog\n110396,cat\n110397,horse\n110398,ship\n110399,frog\n110400,automobile\n110401,deer\n110402,frog\n110403,bird\n110404,horse\n110405,deer\n110406,truck\n110407,cat\n110408,airplane\n110409,automobile\n110410,airplane\n110411,airplane\n110412,cat\n110413,deer\n110414,deer\n110415,truck\n110416,truck\n110417,horse\n110418,horse\n110419,deer\n110420,truck\n110421,deer\n110422,ship\n110423,frog\n110424,truck\n110425,ship\n110426,automobile\n110427,truck\n110428,frog\n110429,truck\n110430,cat\n110431,horse\n110432,cat\n110433,airplane\n110434,automobile\n110435,dog\n110436,horse\n110437,truck\n110438,ship\n110439,frog\n110440,airplane\n110441,horse\n110442,deer\n110443,ship\n110444,dog\n110445,horse\n110446,cat\n110447,automobile\n110448,cat\n110449,cat\n110450,frog\n110451,bird\n110452,airplane\n110453,automobile\n110454,airplane\n110455,bird\n110456,cat\n110457,airplane\n110458,deer\n110459,airplane\n110460,cat\n110461,cat\n110462,ship\n110463,cat\n110464,airplane\n110465,bird\n110466,bird\n110467,frog\n110468,ship\n110469,cat\n110470,automobile\n110471,automobile\n110472,deer\n110473,cat\n110474,airplane\n110475,horse\n110476,horse\n110477,truck\n110478,frog\n110479,frog\n110480,dog\n110481,truck\n110482,dog\n110483,airplane\n110484,horse\n110485,automobile\n110486,ship\n110487,ship\n110488,truck\n110489,dog\n110490,deer\n110491,airplane\n110492,automobile\n110493,cat\n110494,dog\n110495,cat\n110496,bird\n110497,deer\n110498,cat\n110499,dog\n110500,automobile\n110501,deer\n110502,frog\n110503,deer\n110504,deer\n110505,deer\n110506,cat\n110507,truck\n110508,horse\n110509,horse\n110510,airplane\n110511,ship\n110512,bird\n110513,bird\n110514,cat\n110515,dog\n110516,airplane\n110517,frog\n110518,frog\n110519,cat\n110520,ship\n110521,horse\n110522,bird\n110523,cat\n110524,ship\n110525,ship\n110526,automobile\n110527,airplane\n110528,airplane\n110529,deer\n110530,horse\n110531,ship\n110532,dog\n110533,deer\n110534,bird\n110535,truck\n110536,automobile\n110537,deer\n110538,deer\n110539,deer\n110540,cat\n110541,truck\n110542,cat\n110543,dog\n110544,cat\n110545,frog\n110546,bird\n110547,ship\n110548,horse\n110549,horse\n110550,truck\n110551,frog\n110552,bird\n110553,horse\n110554,automobile\n110555,dog\n110556,bird\n110557,frog\n110558,cat\n110559,horse\n110560,deer\n110561,horse\n110562,deer\n110563,frog\n110564,truck\n110565,airplane\n110566,automobile\n110567,bird\n110568,bird\n110569,deer\n110570,cat\n110571,automobile\n110572,bird\n110573,cat\n110574,cat\n110575,ship\n110576,truck\n110577,horse\n110578,cat\n110579,dog\n110580,truck\n110581,frog\n110582,ship\n110583,cat\n110584,deer\n110585,ship\n110586,horse\n110587,truck\n110588,airplane\n110589,cat\n110590,airplane\n110591,bird\n110592,truck\n110593,ship\n110594,deer\n110595,bird\n110596,horse\n110597,cat\n110598,automobile\n110599,bird\n110600,dog\n110601,automobile\n110602,cat\n110603,deer\n110604,dog\n110605,automobile\n110606,frog\n110607,automobile\n110608,deer\n110609,dog\n110610,airplane\n110611,cat\n110612,horse\n110613,bird\n110614,frog\n110615,frog\n110616,deer\n110617,automobile\n110618,frog\n110619,automobile\n110620,frog\n110621,truck\n110622,dog\n110623,truck\n110624,automobile\n110625,deer\n110626,automobile\n110627,truck\n110628,frog\n110629,dog\n110630,ship\n110631,frog\n110632,deer\n110633,cat\n110634,truck\n110635,truck\n110636,frog\n110637,bird\n110638,horse\n110639,ship\n110640,truck\n110641,ship\n110642,dog\n110643,truck\n110644,horse\n110645,frog\n110646,airplane\n110647,ship\n110648,ship\n110649,frog\n110650,automobile\n110651,ship\n110652,ship\n110653,horse\n110654,deer\n110655,frog\n110656,cat\n110657,horse\n110658,cat\n110659,dog\n110660,cat\n110661,deer\n110662,cat\n110663,deer\n110664,cat\n110665,dog\n110666,airplane\n110667,deer\n110668,deer\n110669,cat\n110670,truck\n110671,automobile\n110672,automobile\n110673,cat\n110674,bird\n110675,deer\n110676,airplane\n110677,frog\n110678,frog\n110679,dog\n110680,automobile\n110681,frog\n110682,bird\n110683,cat\n110684,truck\n110685,bird\n110686,dog\n110687,airplane\n110688,dog\n110689,bird\n110690,cat\n110691,ship\n110692,deer\n110693,frog\n110694,deer\n110695,frog\n110696,ship\n110697,truck\n110698,cat\n110699,horse\n110700,horse\n110701,truck\n110702,deer\n110703,frog\n110704,deer\n110705,bird\n110706,airplane\n110707,deer\n110708,dog\n110709,ship\n110710,dog\n110711,cat\n110712,deer\n110713,airplane\n110714,horse\n110715,automobile\n110716,frog\n110717,deer\n110718,deer\n110719,automobile\n110720,horse\n110721,cat\n110722,deer\n110723,deer\n110724,dog\n110725,automobile\n110726,ship\n110727,bird\n110728,dog\n110729,ship\n110730,cat\n110731,bird\n110732,dog\n110733,horse\n110734,truck\n110735,ship\n110736,cat\n110737,deer\n110738,dog\n110739,ship\n110740,automobile\n110741,frog\n110742,cat\n110743,airplane\n110744,deer\n110745,deer\n110746,frog\n110747,bird\n110748,bird\n110749,frog\n110750,truck\n110751,horse\n110752,deer\n110753,airplane\n110754,deer\n110755,cat\n110756,deer\n110757,deer\n110758,frog\n110759,automobile\n110760,ship\n110761,cat\n110762,deer\n110763,ship\n110764,ship\n110765,cat\n110766,horse\n110767,deer\n110768,deer\n110769,airplane\n110770,horse\n110771,deer\n110772,automobile\n110773,cat\n110774,airplane\n110775,airplane\n110776,deer\n110777,ship\n110778,cat\n110779,deer\n110780,bird\n110781,airplane\n110782,dog\n110783,bird\n110784,truck\n110785,deer\n110786,dog\n110787,truck\n110788,bird\n110789,cat\n110790,horse\n110791,horse\n110792,truck\n110793,horse\n110794,cat\n110795,cat\n110796,airplane\n110797,horse\n110798,frog\n110799,deer\n110800,bird\n110801,airplane\n110802,dog\n110803,frog\n110804,ship\n110805,frog\n110806,truck\n110807,cat\n110808,horse\n110809,truck\n110810,dog\n110811,cat\n110812,cat\n110813,cat\n110814,deer\n110815,cat\n110816,ship\n110817,horse\n110818,deer\n110819,dog\n110820,cat\n110821,bird\n110822,deer\n110823,dog\n110824,dog\n110825,dog\n110826,horse\n110827,automobile\n110828,cat\n110829,bird\n110830,bird\n110831,bird\n110832,automobile\n110833,truck\n110834,deer\n110835,horse\n110836,dog\n110837,cat\n110838,cat\n110839,airplane\n110840,horse\n110841,cat\n110842,horse\n110843,horse\n110844,truck\n110845,automobile\n110846,airplane\n110847,ship\n110848,dog\n110849,automobile\n110850,bird\n110851,truck\n110852,dog\n110853,airplane\n110854,deer\n110855,airplane\n110856,bird\n110857,automobile\n110858,dog\n110859,bird\n110860,dog\n110861,automobile\n110862,dog\n110863,ship\n110864,horse\n110865,ship\n110866,bird\n110867,ship\n110868,truck\n110869,dog\n110870,horse\n110871,horse\n110872,cat\n110873,bird\n110874,airplane\n110875,bird\n110876,cat\n110877,horse\n110878,deer\n110879,horse\n110880,frog\n110881,cat\n110882,ship\n110883,bird\n110884,cat\n110885,dog\n110886,frog\n110887,bird\n110888,truck\n110889,horse\n110890,airplane\n110891,automobile\n110892,deer\n110893,bird\n110894,airplane\n110895,truck\n110896,truck\n110897,frog\n110898,airplane\n110899,ship\n110900,cat\n110901,truck\n110902,frog\n110903,frog\n110904,dog\n110905,frog\n110906,truck\n110907,bird\n110908,truck\n110909,airplane\n110910,bird\n110911,frog\n110912,horse\n110913,airplane\n110914,frog\n110915,frog\n110916,airplane\n110917,dog\n110918,dog\n110919,airplane\n110920,frog\n110921,truck\n110922,ship\n110923,frog\n110924,truck\n110925,dog\n110926,automobile\n110927,airplane\n110928,horse\n110929,cat\n110930,automobile\n110931,airplane\n110932,horse\n110933,frog\n110934,frog\n110935,truck\n110936,automobile\n110937,cat\n110938,deer\n110939,bird\n110940,dog\n110941,dog\n110942,automobile\n110943,deer\n110944,deer\n110945,truck\n110946,truck\n110947,automobile\n110948,ship\n110949,cat\n110950,truck\n110951,cat\n110952,deer\n110953,horse\n110954,bird\n110955,ship\n110956,dog\n110957,automobile\n110958,automobile\n110959,automobile\n110960,bird\n110961,airplane\n110962,dog\n110963,truck\n110964,cat\n110965,deer\n110966,truck\n110967,truck\n110968,deer\n110969,ship\n110970,truck\n110971,frog\n110972,horse\n110973,airplane\n110974,ship\n110975,dog\n110976,cat\n110977,deer\n110978,airplane\n110979,dog\n110980,frog\n110981,deer\n110982,truck\n110983,cat\n110984,ship\n110985,deer\n110986,cat\n110987,cat\n110988,dog\n110989,ship\n110990,dog\n110991,frog\n110992,truck\n110993,ship\n110994,automobile\n110995,deer\n110996,automobile\n110997,deer\n110998,dog\n110999,dog\n111000,truck\n111001,automobile\n111002,frog\n111003,ship\n111004,airplane\n111005,truck\n111006,horse\n111007,deer\n111008,frog\n111009,deer\n111010,automobile\n111011,ship\n111012,ship\n111013,truck\n111014,horse\n111015,cat\n111016,ship\n111017,ship\n111018,cat\n111019,cat\n111020,airplane\n111021,bird\n111022,truck\n111023,cat\n111024,truck\n111025,cat\n111026,deer\n111027,frog\n111028,cat\n111029,horse\n111030,airplane\n111031,automobile\n111032,dog\n111033,airplane\n111034,frog\n111035,cat\n111036,dog\n111037,bird\n111038,deer\n111039,airplane\n111040,deer\n111041,horse\n111042,truck\n111043,ship\n111044,horse\n111045,horse\n111046,cat\n111047,deer\n111048,cat\n111049,automobile\n111050,airplane\n111051,ship\n111052,cat\n111053,truck\n111054,frog\n111055,deer\n111056,cat\n111057,ship\n111058,ship\n111059,horse\n111060,bird\n111061,airplane\n111062,airplane\n111063,automobile\n111064,bird\n111065,dog\n111066,dog\n111067,truck\n111068,automobile\n111069,airplane\n111070,bird\n111071,cat\n111072,truck\n111073,bird\n111074,airplane\n111075,airplane\n111076,deer\n111077,cat\n111078,cat\n111079,ship\n111080,deer\n111081,bird\n111082,deer\n111083,frog\n111084,deer\n111085,deer\n111086,airplane\n111087,truck\n111088,cat\n111089,airplane\n111090,bird\n111091,truck\n111092,dog\n111093,frog\n111094,deer\n111095,cat\n111096,cat\n111097,horse\n111098,deer\n111099,truck\n111100,ship\n111101,bird\n111102,dog\n111103,horse\n111104,bird\n111105,deer\n111106,ship\n111107,truck\n111108,airplane\n111109,bird\n111110,cat\n111111,frog\n111112,horse\n111113,automobile\n111114,frog\n111115,dog\n111116,frog\n111117,deer\n111118,cat\n111119,truck\n111120,horse\n111121,automobile\n111122,dog\n111123,truck\n111124,deer\n111125,deer\n111126,frog\n111127,truck\n111128,bird\n111129,truck\n111130,cat\n111131,horse\n111132,dog\n111133,frog\n111134,cat\n111135,automobile\n111136,deer\n111137,horse\n111138,frog\n111139,ship\n111140,deer\n111141,frog\n111142,cat\n111143,deer\n111144,airplane\n111145,ship\n111146,dog\n111147,deer\n111148,frog\n111149,dog\n111150,ship\n111151,horse\n111152,horse\n111153,dog\n111154,cat\n111155,frog\n111156,deer\n111157,cat\n111158,horse\n111159,bird\n111160,cat\n111161,bird\n111162,cat\n111163,dog\n111164,bird\n111165,ship\n111166,horse\n111167,dog\n111168,ship\n111169,ship\n111170,dog\n111171,truck\n111172,bird\n111173,automobile\n111174,deer\n111175,dog\n111176,deer\n111177,truck\n111178,truck\n111179,ship\n111180,horse\n111181,airplane\n111182,ship\n111183,horse\n111184,truck\n111185,bird\n111186,cat\n111187,bird\n111188,deer\n111189,ship\n111190,truck\n111191,frog\n111192,airplane\n111193,frog\n111194,frog\n111195,frog\n111196,deer\n111197,frog\n111198,bird\n111199,deer\n111200,frog\n111201,airplane\n111202,deer\n111203,cat\n111204,frog\n111205,airplane\n111206,airplane\n111207,deer\n111208,bird\n111209,cat\n111210,truck\n111211,cat\n111212,truck\n111213,truck\n111214,ship\n111215,horse\n111216,truck\n111217,frog\n111218,airplane\n111219,airplane\n111220,cat\n111221,horse\n111222,ship\n111223,cat\n111224,deer\n111225,frog\n111226,frog\n111227,deer\n111228,cat\n111229,frog\n111230,deer\n111231,deer\n111232,horse\n111233,truck\n111234,deer\n111235,frog\n111236,dog\n111237,horse\n111238,deer\n111239,cat\n111240,horse\n111241,frog\n111242,deer\n111243,bird\n111244,truck\n111245,deer\n111246,dog\n111247,deer\n111248,deer\n111249,cat\n111250,deer\n111251,deer\n111252,automobile\n111253,ship\n111254,horse\n111255,dog\n111256,horse\n111257,frog\n111258,bird\n111259,dog\n111260,automobile\n111261,deer\n111262,automobile\n111263,frog\n111264,automobile\n111265,deer\n111266,ship\n111267,ship\n111268,frog\n111269,horse\n111270,deer\n111271,dog\n111272,deer\n111273,horse\n111274,airplane\n111275,deer\n111276,cat\n111277,frog\n111278,cat\n111279,automobile\n111280,automobile\n111281,cat\n111282,ship\n111283,deer\n111284,airplane\n111285,truck\n111286,airplane\n111287,frog\n111288,horse\n111289,horse\n111290,ship\n111291,cat\n111292,horse\n111293,deer\n111294,deer\n111295,ship\n111296,automobile\n111297,frog\n111298,automobile\n111299,ship\n111300,deer\n111301,bird\n111302,dog\n111303,deer\n111304,frog\n111305,frog\n111306,airplane\n111307,airplane\n111308,ship\n111309,ship\n111310,frog\n111311,deer\n111312,truck\n111313,dog\n111314,frog\n111315,automobile\n111316,cat\n111317,cat\n111318,airplane\n111319,dog\n111320,deer\n111321,airplane\n111322,horse\n111323,ship\n111324,deer\n111325,deer\n111326,deer\n111327,cat\n111328,automobile\n111329,bird\n111330,airplane\n111331,cat\n111332,truck\n111333,deer\n111334,dog\n111335,frog\n111336,cat\n111337,horse\n111338,deer\n111339,bird\n111340,airplane\n111341,horse\n111342,deer\n111343,ship\n111344,frog\n111345,frog\n111346,truck\n111347,horse\n111348,deer\n111349,airplane\n111350,deer\n111351,deer\n111352,cat\n111353,frog\n111354,truck\n111355,cat\n111356,horse\n111357,cat\n111358,airplane\n111359,bird\n111360,bird\n111361,deer\n111362,truck\n111363,cat\n111364,bird\n111365,bird\n111366,frog\n111367,automobile\n111368,bird\n111369,horse\n111370,deer\n111371,deer\n111372,horse\n111373,cat\n111374,frog\n111375,frog\n111376,cat\n111377,deer\n111378,airplane\n111379,deer\n111380,cat\n111381,ship\n111382,dog\n111383,ship\n111384,horse\n111385,deer\n111386,horse\n111387,deer\n111388,deer\n111389,bird\n111390,horse\n111391,ship\n111392,airplane\n111393,cat\n111394,truck\n111395,truck\n111396,bird\n111397,automobile\n111398,deer\n111399,airplane\n111400,ship\n111401,frog\n111402,horse\n111403,automobile\n111404,deer\n111405,bird\n111406,cat\n111407,deer\n111408,dog\n111409,ship\n111410,dog\n111411,deer\n111412,bird\n111413,airplane\n111414,bird\n111415,ship\n111416,airplane\n111417,horse\n111418,deer\n111419,truck\n111420,dog\n111421,dog\n111422,truck\n111423,truck\n111424,airplane\n111425,automobile\n111426,deer\n111427,horse\n111428,dog\n111429,deer\n111430,horse\n111431,airplane\n111432,airplane\n111433,bird\n111434,deer\n111435,dog\n111436,bird\n111437,horse\n111438,dog\n111439,truck\n111440,dog\n111441,airplane\n111442,dog\n111443,deer\n111444,cat\n111445,ship\n111446,deer\n111447,dog\n111448,horse\n111449,cat\n111450,truck\n111451,deer\n111452,dog\n111453,cat\n111454,cat\n111455,cat\n111456,airplane\n111457,cat\n111458,frog\n111459,horse\n111460,automobile\n111461,deer\n111462,dog\n111463,cat\n111464,truck\n111465,airplane\n111466,frog\n111467,automobile\n111468,airplane\n111469,automobile\n111470,frog\n111471,dog\n111472,automobile\n111473,deer\n111474,deer\n111475,airplane\n111476,cat\n111477,frog\n111478,horse\n111479,deer\n111480,bird\n111481,cat\n111482,cat\n111483,cat\n111484,truck\n111485,frog\n111486,cat\n111487,dog\n111488,frog\n111489,dog\n111490,airplane\n111491,dog\n111492,cat\n111493,bird\n111494,cat\n111495,bird\n111496,truck\n111497,deer\n111498,cat\n111499,deer\n111500,airplane\n111501,automobile\n111502,dog\n111503,deer\n111504,bird\n111505,dog\n111506,truck\n111507,airplane\n111508,deer\n111509,ship\n111510,deer\n111511,horse\n111512,deer\n111513,automobile\n111514,frog\n111515,truck\n111516,frog\n111517,deer\n111518,deer\n111519,airplane\n111520,deer\n111521,truck\n111522,automobile\n111523,deer\n111524,cat\n111525,cat\n111526,cat\n111527,deer\n111528,bird\n111529,dog\n111530,frog\n111531,truck\n111532,cat\n111533,horse\n111534,horse\n111535,deer\n111536,cat\n111537,truck\n111538,deer\n111539,deer\n111540,bird\n111541,horse\n111542,frog\n111543,frog\n111544,bird\n111545,bird\n111546,dog\n111547,truck\n111548,deer\n111549,horse\n111550,dog\n111551,deer\n111552,airplane\n111553,dog\n111554,cat\n111555,frog\n111556,frog\n111557,horse\n111558,truck\n111559,horse\n111560,automobile\n111561,frog\n111562,automobile\n111563,deer\n111564,cat\n111565,airplane\n111566,automobile\n111567,horse\n111568,deer\n111569,bird\n111570,airplane\n111571,deer\n111572,dog\n111573,cat\n111574,deer\n111575,frog\n111576,ship\n111577,horse\n111578,bird\n111579,automobile\n111580,cat\n111581,frog\n111582,dog\n111583,frog\n111584,automobile\n111585,dog\n111586,bird\n111587,automobile\n111588,horse\n111589,automobile\n111590,frog\n111591,dog\n111592,frog\n111593,automobile\n111594,cat\n111595,ship\n111596,truck\n111597,frog\n111598,cat\n111599,automobile\n111600,horse\n111601,horse\n111602,frog\n111603,bird\n111604,dog\n111605,ship\n111606,bird\n111607,deer\n111608,horse\n111609,cat\n111610,automobile\n111611,horse\n111612,truck\n111613,deer\n111614,frog\n111615,deer\n111616,dog\n111617,cat\n111618,ship\n111619,dog\n111620,airplane\n111621,truck\n111622,cat\n111623,deer\n111624,horse\n111625,ship\n111626,automobile\n111627,frog\n111628,cat\n111629,airplane\n111630,horse\n111631,airplane\n111632,airplane\n111633,dog\n111634,frog\n111635,bird\n111636,dog\n111637,bird\n111638,truck\n111639,horse\n111640,frog\n111641,cat\n111642,deer\n111643,dog\n111644,airplane\n111645,deer\n111646,airplane\n111647,deer\n111648,deer\n111649,ship\n111650,cat\n111651,deer\n111652,truck\n111653,dog\n111654,frog\n111655,truck\n111656,automobile\n111657,frog\n111658,frog\n111659,airplane\n111660,airplane\n111661,bird\n111662,deer\n111663,deer\n111664,airplane\n111665,ship\n111666,frog\n111667,cat\n111668,automobile\n111669,cat\n111670,airplane\n111671,airplane\n111672,frog\n111673,ship\n111674,truck\n111675,truck\n111676,airplane\n111677,automobile\n111678,truck\n111679,truck\n111680,frog\n111681,truck\n111682,bird\n111683,horse\n111684,airplane\n111685,deer\n111686,truck\n111687,horse\n111688,ship\n111689,automobile\n111690,automobile\n111691,cat\n111692,deer\n111693,dog\n111694,deer\n111695,ship\n111696,ship\n111697,deer\n111698,frog\n111699,dog\n111700,truck\n111701,automobile\n111702,dog\n111703,cat\n111704,frog\n111705,deer\n111706,automobile\n111707,dog\n111708,horse\n111709,cat\n111710,cat\n111711,frog\n111712,frog\n111713,truck\n111714,cat\n111715,deer\n111716,frog\n111717,ship\n111718,cat\n111719,deer\n111720,deer\n111721,deer\n111722,dog\n111723,frog\n111724,dog\n111725,bird\n111726,horse\n111727,ship\n111728,truck\n111729,cat\n111730,dog\n111731,airplane\n111732,cat\n111733,deer\n111734,bird\n111735,airplane\n111736,ship\n111737,dog\n111738,dog\n111739,ship\n111740,cat\n111741,horse\n111742,truck\n111743,cat\n111744,frog\n111745,deer\n111746,ship\n111747,cat\n111748,airplane\n111749,automobile\n111750,ship\n111751,ship\n111752,cat\n111753,dog\n111754,automobile\n111755,bird\n111756,airplane\n111757,ship\n111758,horse\n111759,dog\n111760,dog\n111761,airplane\n111762,dog\n111763,frog\n111764,deer\n111765,horse\n111766,bird\n111767,deer\n111768,truck\n111769,bird\n111770,deer\n111771,frog\n111772,ship\n111773,frog\n111774,cat\n111775,frog\n111776,truck\n111777,bird\n111778,horse\n111779,truck\n111780,deer\n111781,cat\n111782,dog\n111783,deer\n111784,frog\n111785,cat\n111786,airplane\n111787,deer\n111788,airplane\n111789,deer\n111790,dog\n111791,frog\n111792,truck\n111793,frog\n111794,dog\n111795,dog\n111796,airplane\n111797,cat\n111798,cat\n111799,deer\n111800,airplane\n111801,bird\n111802,bird\n111803,horse\n111804,truck\n111805,airplane\n111806,dog\n111807,automobile\n111808,deer\n111809,bird\n111810,cat\n111811,frog\n111812,airplane\n111813,truck\n111814,automobile\n111815,dog\n111816,ship\n111817,dog\n111818,frog\n111819,airplane\n111820,bird\n111821,horse\n111822,ship\n111823,frog\n111824,dog\n111825,cat\n111826,frog\n111827,ship\n111828,frog\n111829,truck\n111830,dog\n111831,dog\n111832,cat\n111833,dog\n111834,ship\n111835,ship\n111836,ship\n111837,deer\n111838,deer\n111839,ship\n111840,horse\n111841,frog\n111842,ship\n111843,dog\n111844,horse\n111845,automobile\n111846,cat\n111847,cat\n111848,dog\n111849,cat\n111850,deer\n111851,deer\n111852,frog\n111853,deer\n111854,automobile\n111855,bird\n111856,bird\n111857,frog\n111858,ship\n111859,deer\n111860,cat\n111861,deer\n111862,frog\n111863,frog\n111864,cat\n111865,bird\n111866,truck\n111867,ship\n111868,automobile\n111869,automobile\n111870,automobile\n111871,bird\n111872,deer\n111873,horse\n111874,dog\n111875,horse\n111876,frog\n111877,horse\n111878,cat\n111879,frog\n111880,horse\n111881,truck\n111882,ship\n111883,frog\n111884,horse\n111885,deer\n111886,airplane\n111887,frog\n111888,frog\n111889,deer\n111890,truck\n111891,airplane\n111892,deer\n111893,bird\n111894,automobile\n111895,deer\n111896,airplane\n111897,dog\n111898,horse\n111899,deer\n111900,dog\n111901,bird\n111902,bird\n111903,cat\n111904,deer\n111905,horse\n111906,cat\n111907,frog\n111908,horse\n111909,truck\n111910,airplane\n111911,dog\n111912,bird\n111913,automobile\n111914,ship\n111915,frog\n111916,truck\n111917,deer\n111918,airplane\n111919,deer\n111920,deer\n111921,frog\n111922,cat\n111923,frog\n111924,dog\n111925,automobile\n111926,automobile\n111927,ship\n111928,cat\n111929,cat\n111930,frog\n111931,cat\n111932,truck\n111933,airplane\n111934,airplane\n111935,bird\n111936,dog\n111937,bird\n111938,truck\n111939,bird\n111940,truck\n111941,deer\n111942,horse\n111943,deer\n111944,dog\n111945,cat\n111946,deer\n111947,ship\n111948,dog\n111949,airplane\n111950,truck\n111951,horse\n111952,truck\n111953,dog\n111954,ship\n111955,cat\n111956,deer\n111957,horse\n111958,bird\n111959,truck\n111960,truck\n111961,ship\n111962,deer\n111963,automobile\n111964,cat\n111965,dog\n111966,cat\n111967,bird\n111968,cat\n111969,horse\n111970,ship\n111971,deer\n111972,deer\n111973,horse\n111974,ship\n111975,ship\n111976,airplane\n111977,automobile\n111978,deer\n111979,deer\n111980,dog\n111981,frog\n111982,bird\n111983,truck\n111984,horse\n111985,airplane\n111986,deer\n111987,truck\n111988,horse\n111989,horse\n111990,truck\n111991,cat\n111992,cat\n111993,cat\n111994,cat\n111995,ship\n111996,airplane\n111997,frog\n111998,truck\n111999,frog\n112000,truck\n112001,ship\n112002,airplane\n112003,deer\n112004,truck\n112005,cat\n112006,truck\n112007,truck\n112008,deer\n112009,cat\n112010,cat\n112011,truck\n112012,automobile\n112013,horse\n112014,cat\n112015,airplane\n112016,automobile\n112017,bird\n112018,bird\n112019,deer\n112020,frog\n112021,frog\n112022,airplane\n112023,deer\n112024,dog\n112025,frog\n112026,automobile\n112027,frog\n112028,bird\n112029,frog\n112030,cat\n112031,frog\n112032,dog\n112033,cat\n112034,automobile\n112035,deer\n112036,deer\n112037,bird\n112038,dog\n112039,frog\n112040,ship\n112041,ship\n112042,bird\n112043,bird\n112044,airplane\n112045,frog\n112046,airplane\n112047,cat\n112048,frog\n112049,frog\n112050,frog\n112051,horse\n112052,dog\n112053,bird\n112054,horse\n112055,truck\n112056,automobile\n112057,horse\n112058,frog\n112059,dog\n112060,horse\n112061,dog\n112062,deer\n112063,ship\n112064,automobile\n112065,automobile\n112066,cat\n112067,frog\n112068,frog\n112069,airplane\n112070,truck\n112071,automobile\n112072,automobile\n112073,airplane\n112074,horse\n112075,cat\n112076,ship\n112077,ship\n112078,dog\n112079,dog\n112080,dog\n112081,deer\n112082,frog\n112083,bird\n112084,frog\n112085,frog\n112086,cat\n112087,truck\n112088,dog\n112089,bird\n112090,frog\n112091,airplane\n112092,cat\n112093,dog\n112094,frog\n112095,cat\n112096,cat\n112097,truck\n112098,bird\n112099,ship\n112100,truck\n112101,airplane\n112102,truck\n112103,bird\n112104,airplane\n112105,airplane\n112106,frog\n112107,truck\n112108,automobile\n112109,truck\n112110,cat\n112111,dog\n112112,bird\n112113,frog\n112114,deer\n112115,deer\n112116,truck\n112117,frog\n112118,truck\n112119,bird\n112120,cat\n112121,cat\n112122,cat\n112123,dog\n112124,dog\n112125,deer\n112126,cat\n112127,deer\n112128,frog\n112129,ship\n112130,deer\n112131,deer\n112132,horse\n112133,bird\n112134,truck\n112135,deer\n112136,truck\n112137,airplane\n112138,cat\n112139,automobile\n112140,truck\n112141,cat\n112142,dog\n112143,dog\n112144,bird\n112145,truck\n112146,truck\n112147,deer\n112148,bird\n112149,truck\n112150,deer\n112151,bird\n112152,deer\n112153,cat\n112154,automobile\n112155,dog\n112156,dog\n112157,bird\n112158,airplane\n112159,frog\n112160,truck\n112161,frog\n112162,bird\n112163,deer\n112164,truck\n112165,automobile\n112166,dog\n112167,cat\n112168,deer\n112169,deer\n112170,frog\n112171,horse\n112172,frog\n112173,ship\n112174,horse\n112175,automobile\n112176,deer\n112177,deer\n112178,frog\n112179,dog\n112180,deer\n112181,dog\n112182,deer\n112183,cat\n112184,dog\n112185,cat\n112186,dog\n112187,ship\n112188,deer\n112189,automobile\n112190,dog\n112191,frog\n112192,airplane\n112193,airplane\n112194,automobile\n112195,frog\n112196,deer\n112197,cat\n112198,horse\n112199,truck\n112200,frog\n112201,cat\n112202,dog\n112203,horse\n112204,dog\n112205,automobile\n112206,ship\n112207,frog\n112208,frog\n112209,cat\n112210,automobile\n112211,airplane\n112212,frog\n112213,truck\n112214,automobile\n112215,truck\n112216,ship\n112217,truck\n112218,cat\n112219,dog\n112220,cat\n112221,airplane\n112222,dog\n112223,cat\n112224,horse\n112225,truck\n112226,frog\n112227,horse\n112228,bird\n112229,deer\n112230,horse\n112231,horse\n112232,deer\n112233,cat\n112234,automobile\n112235,dog\n112236,truck\n112237,bird\n112238,automobile\n112239,deer\n112240,ship\n112241,airplane\n112242,truck\n112243,horse\n112244,frog\n112245,airplane\n112246,truck\n112247,ship\n112248,dog\n112249,deer\n112250,cat\n112251,dog\n112252,ship\n112253,frog\n112254,deer\n112255,horse\n112256,horse\n112257,deer\n112258,deer\n112259,frog\n112260,deer\n112261,bird\n112262,bird\n112263,airplane\n112264,automobile\n112265,ship\n112266,truck\n112267,airplane\n112268,horse\n112269,frog\n112270,frog\n112271,deer\n112272,dog\n112273,airplane\n112274,deer\n112275,bird\n112276,airplane\n112277,airplane\n112278,horse\n112279,cat\n112280,automobile\n112281,deer\n112282,bird\n112283,cat\n112284,cat\n112285,frog\n112286,deer\n112287,airplane\n112288,truck\n112289,ship\n112290,truck\n112291,frog\n112292,cat\n112293,deer\n112294,horse\n112295,frog\n112296,horse\n112297,airplane\n112298,deer\n112299,truck\n112300,airplane\n112301,frog\n112302,cat\n112303,automobile\n112304,dog\n112305,horse\n112306,bird\n112307,ship\n112308,frog\n112309,frog\n112310,deer\n112311,airplane\n112312,dog\n112313,cat\n112314,truck\n112315,horse\n112316,bird\n112317,deer\n112318,horse\n112319,ship\n112320,frog\n112321,frog\n112322,cat\n112323,deer\n112324,truck\n112325,truck\n112326,frog\n112327,bird\n112328,bird\n112329,airplane\n112330,airplane\n112331,frog\n112332,cat\n112333,bird\n112334,truck\n112335,cat\n112336,automobile\n112337,truck\n112338,cat\n112339,deer\n112340,frog\n112341,ship\n112342,horse\n112343,dog\n112344,automobile\n112345,deer\n112346,deer\n112347,airplane\n112348,frog\n112349,bird\n112350,truck\n112351,deer\n112352,frog\n112353,ship\n112354,frog\n112355,dog\n112356,cat\n112357,frog\n112358,deer\n112359,cat\n112360,automobile\n112361,dog\n112362,deer\n112363,cat\n112364,deer\n112365,bird\n112366,airplane\n112367,airplane\n112368,ship\n112369,deer\n112370,airplane\n112371,horse\n112372,dog\n112373,bird\n112374,ship\n112375,cat\n112376,airplane\n112377,horse\n112378,ship\n112379,bird\n112380,frog\n112381,deer\n112382,airplane\n112383,ship\n112384,airplane\n112385,deer\n112386,ship\n112387,frog\n112388,horse\n112389,dog\n112390,cat\n112391,frog\n112392,dog\n112393,truck\n112394,bird\n112395,airplane\n112396,truck\n112397,ship\n112398,deer\n112399,ship\n112400,airplane\n112401,horse\n112402,dog\n112403,truck\n112404,deer\n112405,airplane\n112406,airplane\n112407,automobile\n112408,automobile\n112409,dog\n112410,truck\n112411,ship\n112412,bird\n112413,frog\n112414,cat\n112415,frog\n112416,bird\n112417,horse\n112418,frog\n112419,dog\n112420,deer\n112421,deer\n112422,dog\n112423,truck\n112424,truck\n112425,truck\n112426,ship\n112427,horse\n112428,cat\n112429,frog\n112430,truck\n112431,cat\n112432,horse\n112433,automobile\n112434,cat\n112435,cat\n112436,frog\n112437,bird\n112438,deer\n112439,deer\n112440,horse\n112441,deer\n112442,deer\n112443,horse\n112444,ship\n112445,bird\n112446,dog\n112447,truck\n112448,deer\n112449,frog\n112450,deer\n112451,truck\n112452,deer\n112453,automobile\n112454,horse\n112455,frog\n112456,automobile\n112457,horse\n112458,cat\n112459,ship\n112460,airplane\n112461,horse\n112462,truck\n112463,deer\n112464,automobile\n112465,cat\n112466,deer\n112467,dog\n112468,bird\n112469,truck\n112470,bird\n112471,horse\n112472,airplane\n112473,ship\n112474,deer\n112475,dog\n112476,horse\n112477,airplane\n112478,deer\n112479,airplane\n112480,truck\n112481,automobile\n112482,ship\n112483,bird\n112484,cat\n112485,ship\n112486,airplane\n112487,frog\n112488,bird\n112489,deer\n112490,deer\n112491,frog\n112492,truck\n112493,deer\n112494,dog\n112495,truck\n112496,deer\n112497,deer\n112498,bird\n112499,frog\n112500,truck\n112501,cat\n112502,cat\n112503,ship\n112504,bird\n112505,horse\n112506,bird\n112507,deer\n112508,horse\n112509,deer\n112510,bird\n112511,cat\n112512,airplane\n112513,airplane\n112514,cat\n112515,airplane\n112516,bird\n112517,airplane\n112518,bird\n112519,frog\n112520,ship\n112521,frog\n112522,horse\n112523,truck\n112524,frog\n112525,deer\n112526,bird\n112527,frog\n112528,bird\n112529,automobile\n112530,cat\n112531,ship\n112532,frog\n112533,bird\n112534,ship\n112535,deer\n112536,deer\n112537,cat\n112538,bird\n112539,cat\n112540,dog\n112541,deer\n112542,ship\n112543,deer\n112544,cat\n112545,frog\n112546,horse\n112547,frog\n112548,truck\n112549,cat\n112550,automobile\n112551,deer\n112552,cat\n112553,deer\n112554,frog\n112555,truck\n112556,airplane\n112557,automobile\n112558,airplane\n112559,airplane\n112560,frog\n112561,ship\n112562,truck\n112563,truck\n112564,horse\n112565,frog\n112566,cat\n112567,horse\n112568,truck\n112569,dog\n112570,airplane\n112571,horse\n112572,bird\n112573,dog\n112574,frog\n112575,automobile\n112576,automobile\n112577,dog\n112578,automobile\n112579,truck\n112580,frog\n112581,airplane\n112582,frog\n112583,truck\n112584,horse\n112585,dog\n112586,bird\n112587,bird\n112588,deer\n112589,deer\n112590,cat\n112591,cat\n112592,frog\n112593,ship\n112594,cat\n112595,deer\n112596,frog\n112597,automobile\n112598,horse\n112599,horse\n112600,horse\n112601,airplane\n112602,deer\n112603,airplane\n112604,cat\n112605,ship\n112606,airplane\n112607,deer\n112608,horse\n112609,deer\n112610,dog\n112611,dog\n112612,truck\n112613,cat\n112614,horse\n112615,deer\n112616,automobile\n112617,ship\n112618,dog\n112619,cat\n112620,horse\n112621,bird\n112622,deer\n112623,horse\n112624,deer\n112625,cat\n112626,automobile\n112627,deer\n112628,frog\n112629,dog\n112630,dog\n112631,deer\n112632,automobile\n112633,deer\n112634,deer\n112635,bird\n112636,ship\n112637,cat\n112638,horse\n112639,frog\n112640,deer\n112641,deer\n112642,deer\n112643,bird\n112644,truck\n112645,horse\n112646,automobile\n112647,automobile\n112648,deer\n112649,frog\n112650,truck\n112651,truck\n112652,dog\n112653,frog\n112654,ship\n112655,horse\n112656,cat\n112657,dog\n112658,dog\n112659,automobile\n112660,dog\n112661,deer\n112662,horse\n112663,horse\n112664,bird\n112665,cat\n112666,truck\n112667,bird\n112668,deer\n112669,ship\n112670,airplane\n112671,dog\n112672,ship\n112673,ship\n112674,cat\n112675,airplane\n112676,dog\n112677,automobile\n112678,deer\n112679,cat\n112680,horse\n112681,deer\n112682,frog\n112683,dog\n112684,deer\n112685,airplane\n112686,horse\n112687,ship\n112688,bird\n112689,deer\n112690,bird\n112691,ship\n112692,horse\n112693,automobile\n112694,airplane\n112695,horse\n112696,truck\n112697,cat\n112698,bird\n112699,dog\n112700,cat\n112701,frog\n112702,frog\n112703,truck\n112704,dog\n112705,bird\n112706,truck\n112707,truck\n112708,cat\n112709,airplane\n112710,automobile\n112711,airplane\n112712,frog\n112713,automobile\n112714,truck\n112715,truck\n112716,deer\n112717,cat\n112718,truck\n112719,dog\n112720,deer\n112721,automobile\n112722,deer\n112723,bird\n112724,truck\n112725,truck\n112726,truck\n112727,deer\n112728,deer\n112729,truck\n112730,deer\n112731,deer\n112732,bird\n112733,truck\n112734,deer\n112735,truck\n112736,bird\n112737,airplane\n112738,bird\n112739,ship\n112740,frog\n112741,cat\n112742,automobile\n112743,ship\n112744,bird\n112745,cat\n112746,horse\n112747,horse\n112748,frog\n112749,deer\n112750,deer\n112751,automobile\n112752,cat\n112753,ship\n112754,bird\n112755,truck\n112756,cat\n112757,frog\n112758,deer\n112759,airplane\n112760,horse\n112761,deer\n112762,deer\n112763,cat\n112764,ship\n112765,bird\n112766,dog\n112767,frog\n112768,truck\n112769,automobile\n112770,frog\n112771,airplane\n112772,dog\n112773,horse\n112774,deer\n112775,ship\n112776,ship\n112777,frog\n112778,airplane\n112779,deer\n112780,automobile\n112781,truck\n112782,dog\n112783,frog\n112784,frog\n112785,dog\n112786,frog\n112787,horse\n112788,horse\n112789,horse\n112790,frog\n112791,airplane\n112792,deer\n112793,cat\n112794,frog\n112795,cat\n112796,automobile\n112797,cat\n112798,frog\n112799,truck\n112800,truck\n112801,bird\n112802,dog\n112803,airplane\n112804,cat\n112805,airplane\n112806,automobile\n112807,cat\n112808,bird\n112809,dog\n112810,airplane\n112811,truck\n112812,cat\n112813,frog\n112814,cat\n112815,cat\n112816,automobile\n112817,dog\n112818,truck\n112819,cat\n112820,automobile\n112821,dog\n112822,ship\n112823,dog\n112824,dog\n112825,frog\n112826,frog\n112827,ship\n112828,cat\n112829,ship\n112830,cat\n112831,automobile\n112832,ship\n112833,cat\n112834,automobile\n112835,airplane\n112836,truck\n112837,deer\n112838,frog\n112839,airplane\n112840,truck\n112841,horse\n112842,cat\n112843,truck\n112844,cat\n112845,cat\n112846,cat\n112847,horse\n112848,horse\n112849,horse\n112850,bird\n112851,deer\n112852,horse\n112853,horse\n112854,airplane\n112855,automobile\n112856,frog\n112857,horse\n112858,frog\n112859,automobile\n112860,automobile\n112861,horse\n112862,horse\n112863,dog\n112864,dog\n112865,horse\n112866,bird\n112867,cat\n112868,truck\n112869,bird\n112870,cat\n112871,truck\n112872,truck\n112873,dog\n112874,cat\n112875,bird\n112876,frog\n112877,cat\n112878,automobile\n112879,cat\n112880,deer\n112881,frog\n112882,cat\n112883,airplane\n112884,cat\n112885,airplane\n112886,ship\n112887,truck\n112888,truck\n112889,airplane\n112890,deer\n112891,horse\n112892,deer\n112893,deer\n112894,horse\n112895,frog\n112896,truck\n112897,dog\n112898,deer\n112899,horse\n112900,frog\n112901,truck\n112902,truck\n112903,truck\n112904,frog\n112905,deer\n112906,cat\n112907,airplane\n112908,truck\n112909,bird\n112910,ship\n112911,deer\n112912,cat\n112913,airplane\n112914,ship\n112915,dog\n112916,cat\n112917,cat\n112918,bird\n112919,airplane\n112920,frog\n112921,deer\n112922,cat\n112923,horse\n112924,deer\n112925,deer\n112926,dog\n112927,dog\n112928,deer\n112929,cat\n112930,truck\n112931,airplane\n112932,frog\n112933,deer\n112934,truck\n112935,truck\n112936,dog\n112937,frog\n112938,truck\n112939,ship\n112940,cat\n112941,cat\n112942,ship\n112943,deer\n112944,ship\n112945,dog\n112946,automobile\n112947,cat\n112948,dog\n112949,deer\n112950,automobile\n112951,cat\n112952,bird\n112953,deer\n112954,cat\n112955,frog\n112956,deer\n112957,bird\n112958,frog\n112959,automobile\n112960,dog\n112961,dog\n112962,cat\n112963,cat\n112964,airplane\n112965,frog\n112966,truck\n112967,airplane\n112968,cat\n112969,bird\n112970,horse\n112971,horse\n112972,cat\n112973,airplane\n112974,bird\n112975,bird\n112976,bird\n112977,cat\n112978,cat\n112979,ship\n112980,automobile\n112981,frog\n112982,truck\n112983,dog\n112984,bird\n112985,truck\n112986,automobile\n112987,airplane\n112988,deer\n112989,airplane\n112990,frog\n112991,cat\n112992,deer\n112993,airplane\n112994,deer\n112995,ship\n112996,automobile\n112997,frog\n112998,automobile\n112999,frog\n113000,frog\n113001,frog\n113002,bird\n113003,truck\n113004,horse\n113005,truck\n113006,ship\n113007,truck\n113008,bird\n113009,ship\n113010,ship\n113011,deer\n113012,bird\n113013,frog\n113014,bird\n113015,truck\n113016,airplane\n113017,ship\n113018,cat\n113019,deer\n113020,cat\n113021,deer\n113022,bird\n113023,frog\n113024,dog\n113025,ship\n113026,airplane\n113027,cat\n113028,ship\n113029,ship\n113030,airplane\n113031,frog\n113032,horse\n113033,cat\n113034,dog\n113035,frog\n113036,ship\n113037,cat\n113038,horse\n113039,airplane\n113040,automobile\n113041,frog\n113042,truck\n113043,horse\n113044,frog\n113045,cat\n113046,frog\n113047,deer\n113048,dog\n113049,horse\n113050,horse\n113051,ship\n113052,deer\n113053,automobile\n113054,cat\n113055,bird\n113056,bird\n113057,bird\n113058,horse\n113059,airplane\n113060,truck\n113061,automobile\n113062,deer\n113063,frog\n113064,cat\n113065,automobile\n113066,dog\n113067,frog\n113068,bird\n113069,frog\n113070,cat\n113071,deer\n113072,frog\n113073,ship\n113074,cat\n113075,truck\n113076,dog\n113077,ship\n113078,ship\n113079,frog\n113080,cat\n113081,cat\n113082,cat\n113083,cat\n113084,frog\n113085,truck\n113086,ship\n113087,cat\n113088,bird\n113089,airplane\n113090,cat\n113091,dog\n113092,airplane\n113093,cat\n113094,deer\n113095,horse\n113096,frog\n113097,frog\n113098,airplane\n113099,ship\n113100,horse\n113101,horse\n113102,cat\n113103,deer\n113104,frog\n113105,airplane\n113106,deer\n113107,airplane\n113108,dog\n113109,frog\n113110,deer\n113111,ship\n113112,airplane\n113113,ship\n113114,automobile\n113115,cat\n113116,horse\n113117,airplane\n113118,truck\n113119,ship\n113120,frog\n113121,cat\n113122,bird\n113123,automobile\n113124,dog\n113125,dog\n113126,truck\n113127,horse\n113128,deer\n113129,ship\n113130,cat\n113131,truck\n113132,deer\n113133,deer\n113134,ship\n113135,horse\n113136,truck\n113137,cat\n113138,dog\n113139,truck\n113140,airplane\n113141,truck\n113142,ship\n113143,horse\n113144,dog\n113145,cat\n113146,truck\n113147,ship\n113148,airplane\n113149,dog\n113150,airplane\n113151,automobile\n113152,automobile\n113153,automobile\n113154,horse\n113155,bird\n113156,dog\n113157,bird\n113158,cat\n113159,truck\n113160,ship\n113161,deer\n113162,cat\n113163,cat\n113164,airplane\n113165,frog\n113166,dog\n113167,truck\n113168,automobile\n113169,cat\n113170,frog\n113171,truck\n113172,cat\n113173,bird\n113174,dog\n113175,truck\n113176,cat\n113177,horse\n113178,bird\n113179,bird\n113180,horse\n113181,deer\n113182,deer\n113183,frog\n113184,frog\n113185,truck\n113186,airplane\n113187,dog\n113188,frog\n113189,airplane\n113190,cat\n113191,frog\n113192,cat\n113193,ship\n113194,frog\n113195,ship\n113196,cat\n113197,deer\n113198,deer\n113199,cat\n113200,dog\n113201,horse\n113202,deer\n113203,horse\n113204,airplane\n113205,airplane\n113206,airplane\n113207,deer\n113208,truck\n113209,cat\n113210,automobile\n113211,truck\n113212,deer\n113213,airplane\n113214,frog\n113215,ship\n113216,frog\n113217,frog\n113218,bird\n113219,dog\n113220,bird\n113221,horse\n113222,automobile\n113223,cat\n113224,horse\n113225,ship\n113226,frog\n113227,deer\n113228,deer\n113229,deer\n113230,frog\n113231,cat\n113232,truck\n113233,cat\n113234,truck\n113235,dog\n113236,cat\n113237,frog\n113238,horse\n113239,automobile\n113240,ship\n113241,deer\n113242,deer\n113243,cat\n113244,deer\n113245,dog\n113246,deer\n113247,dog\n113248,bird\n113249,horse\n113250,horse\n113251,horse\n113252,truck\n113253,frog\n113254,ship\n113255,cat\n113256,truck\n113257,cat\n113258,airplane\n113259,horse\n113260,bird\n113261,dog\n113262,truck\n113263,horse\n113264,deer\n113265,deer\n113266,truck\n113267,deer\n113268,cat\n113269,truck\n113270,cat\n113271,deer\n113272,bird\n113273,dog\n113274,automobile\n113275,automobile\n113276,dog\n113277,automobile\n113278,cat\n113279,ship\n113280,cat\n113281,cat\n113282,deer\n113283,truck\n113284,cat\n113285,frog\n113286,truck\n113287,deer\n113288,horse\n113289,dog\n113290,horse\n113291,bird\n113292,horse\n113293,frog\n113294,automobile\n113295,automobile\n113296,horse\n113297,frog\n113298,cat\n113299,dog\n113300,dog\n113301,deer\n113302,automobile\n113303,automobile\n113304,deer\n113305,cat\n113306,horse\n113307,ship\n113308,airplane\n113309,airplane\n113310,horse\n113311,airplane\n113312,horse\n113313,dog\n113314,cat\n113315,airplane\n113316,cat\n113317,automobile\n113318,deer\n113319,deer\n113320,airplane\n113321,horse\n113322,cat\n113323,frog\n113324,horse\n113325,truck\n113326,ship\n113327,frog\n113328,horse\n113329,airplane\n113330,cat\n113331,bird\n113332,bird\n113333,bird\n113334,horse\n113335,cat\n113336,horse\n113337,airplane\n113338,bird\n113339,dog\n113340,ship\n113341,airplane\n113342,airplane\n113343,dog\n113344,deer\n113345,cat\n113346,truck\n113347,truck\n113348,cat\n113349,deer\n113350,horse\n113351,cat\n113352,horse\n113353,deer\n113354,deer\n113355,horse\n113356,horse\n113357,deer\n113358,automobile\n113359,cat\n113360,airplane\n113361,airplane\n113362,airplane\n113363,airplane\n113364,bird\n113365,automobile\n113366,airplane\n113367,deer\n113368,horse\n113369,deer\n113370,cat\n113371,cat\n113372,truck\n113373,dog\n113374,automobile\n113375,truck\n113376,deer\n113377,cat\n113378,truck\n113379,cat\n113380,horse\n113381,deer\n113382,airplane\n113383,bird\n113384,automobile\n113385,dog\n113386,cat\n113387,cat\n113388,cat\n113389,ship\n113390,airplane\n113391,airplane\n113392,bird\n113393,ship\n113394,frog\n113395,cat\n113396,automobile\n113397,frog\n113398,dog\n113399,automobile\n113400,dog\n113401,airplane\n113402,airplane\n113403,ship\n113404,bird\n113405,cat\n113406,ship\n113407,automobile\n113408,frog\n113409,horse\n113410,airplane\n113411,truck\n113412,truck\n113413,horse\n113414,horse\n113415,deer\n113416,cat\n113417,airplane\n113418,deer\n113419,truck\n113420,horse\n113421,ship\n113422,truck\n113423,ship\n113424,truck\n113425,dog\n113426,truck\n113427,bird\n113428,cat\n113429,cat\n113430,frog\n113431,truck\n113432,frog\n113433,truck\n113434,truck\n113435,dog\n113436,bird\n113437,frog\n113438,deer\n113439,deer\n113440,cat\n113441,cat\n113442,horse\n113443,deer\n113444,dog\n113445,airplane\n113446,dog\n113447,truck\n113448,cat\n113449,airplane\n113450,cat\n113451,horse\n113452,horse\n113453,frog\n113454,airplane\n113455,ship\n113456,cat\n113457,cat\n113458,cat\n113459,frog\n113460,frog\n113461,bird\n113462,cat\n113463,airplane\n113464,automobile\n113465,frog\n113466,cat\n113467,ship\n113468,frog\n113469,automobile\n113470,cat\n113471,dog\n113472,frog\n113473,horse\n113474,truck\n113475,deer\n113476,frog\n113477,bird\n113478,bird\n113479,frog\n113480,ship\n113481,deer\n113482,cat\n113483,truck\n113484,ship\n113485,dog\n113486,cat\n113487,dog\n113488,deer\n113489,ship\n113490,cat\n113491,deer\n113492,horse\n113493,bird\n113494,deer\n113495,cat\n113496,bird\n113497,automobile\n113498,dog\n113499,ship\n113500,cat\n113501,dog\n113502,frog\n113503,frog\n113504,deer\n113505,deer\n113506,ship\n113507,horse\n113508,frog\n113509,deer\n113510,cat\n113511,deer\n113512,cat\n113513,automobile\n113514,ship\n113515,cat\n113516,deer\n113517,dog\n113518,ship\n113519,cat\n113520,frog\n113521,cat\n113522,ship\n113523,ship\n113524,bird\n113525,frog\n113526,dog\n113527,deer\n113528,ship\n113529,horse\n113530,horse\n113531,truck\n113532,cat\n113533,automobile\n113534,automobile\n113535,dog\n113536,cat\n113537,deer\n113538,deer\n113539,cat\n113540,ship\n113541,dog\n113542,horse\n113543,automobile\n113544,frog\n113545,bird\n113546,automobile\n113547,bird\n113548,frog\n113549,airplane\n113550,ship\n113551,ship\n113552,bird\n113553,cat\n113554,bird\n113555,automobile\n113556,airplane\n113557,dog\n113558,airplane\n113559,deer\n113560,frog\n113561,cat\n113562,ship\n113563,automobile\n113564,bird\n113565,bird\n113566,ship\n113567,horse\n113568,dog\n113569,automobile\n113570,airplane\n113571,horse\n113572,deer\n113573,deer\n113574,horse\n113575,airplane\n113576,airplane\n113577,automobile\n113578,airplane\n113579,truck\n113580,deer\n113581,ship\n113582,ship\n113583,ship\n113584,deer\n113585,deer\n113586,cat\n113587,frog\n113588,horse\n113589,deer\n113590,deer\n113591,bird\n113592,truck\n113593,ship\n113594,ship\n113595,deer\n113596,horse\n113597,frog\n113598,cat\n113599,dog\n113600,deer\n113601,dog\n113602,frog\n113603,automobile\n113604,frog\n113605,airplane\n113606,automobile\n113607,airplane\n113608,ship\n113609,dog\n113610,truck\n113611,truck\n113612,bird\n113613,automobile\n113614,ship\n113615,frog\n113616,frog\n113617,truck\n113618,deer\n113619,deer\n113620,bird\n113621,frog\n113622,horse\n113623,horse\n113624,horse\n113625,horse\n113626,dog\n113627,deer\n113628,frog\n113629,frog\n113630,ship\n113631,frog\n113632,cat\n113633,ship\n113634,frog\n113635,frog\n113636,horse\n113637,deer\n113638,deer\n113639,ship\n113640,dog\n113641,truck\n113642,dog\n113643,truck\n113644,cat\n113645,frog\n113646,horse\n113647,ship\n113648,horse\n113649,horse\n113650,airplane\n113651,dog\n113652,bird\n113653,horse\n113654,deer\n113655,cat\n113656,ship\n113657,ship\n113658,airplane\n113659,cat\n113660,airplane\n113661,ship\n113662,ship\n113663,truck\n113664,automobile\n113665,bird\n113666,deer\n113667,truck\n113668,airplane\n113669,deer\n113670,cat\n113671,horse\n113672,horse\n113673,airplane\n113674,horse\n113675,airplane\n113676,dog\n113677,deer\n113678,airplane\n113679,deer\n113680,automobile\n113681,horse\n113682,horse\n113683,airplane\n113684,deer\n113685,dog\n113686,horse\n113687,bird\n113688,truck\n113689,dog\n113690,frog\n113691,dog\n113692,deer\n113693,truck\n113694,bird\n113695,frog\n113696,frog\n113697,ship\n113698,deer\n113699,dog\n113700,automobile\n113701,frog\n113702,airplane\n113703,horse\n113704,deer\n113705,frog\n113706,automobile\n113707,dog\n113708,truck\n113709,cat\n113710,bird\n113711,ship\n113712,dog\n113713,airplane\n113714,automobile\n113715,truck\n113716,truck\n113717,cat\n113718,airplane\n113719,cat\n113720,horse\n113721,bird\n113722,bird\n113723,dog\n113724,bird\n113725,frog\n113726,horse\n113727,ship\n113728,truck\n113729,frog\n113730,deer\n113731,frog\n113732,deer\n113733,bird\n113734,cat\n113735,airplane\n113736,frog\n113737,deer\n113738,dog\n113739,truck\n113740,dog\n113741,deer\n113742,frog\n113743,ship\n113744,dog\n113745,dog\n113746,cat\n113747,frog\n113748,frog\n113749,deer\n113750,bird\n113751,horse\n113752,horse\n113753,ship\n113754,horse\n113755,deer\n113756,dog\n113757,dog\n113758,dog\n113759,cat\n113760,ship\n113761,horse\n113762,deer\n113763,cat\n113764,cat\n113765,horse\n113766,deer\n113767,automobile\n113768,automobile\n113769,bird\n113770,dog\n113771,bird\n113772,cat\n113773,cat\n113774,ship\n113775,ship\n113776,deer\n113777,horse\n113778,ship\n113779,bird\n113780,ship\n113781,frog\n113782,deer\n113783,ship\n113784,frog\n113785,frog\n113786,frog\n113787,frog\n113788,airplane\n113789,cat\n113790,dog\n113791,cat\n113792,dog\n113793,frog\n113794,deer\n113795,automobile\n113796,truck\n113797,dog\n113798,deer\n113799,ship\n113800,bird\n113801,truck\n113802,cat\n113803,horse\n113804,frog\n113805,automobile\n113806,deer\n113807,deer\n113808,dog\n113809,cat\n113810,ship\n113811,cat\n113812,horse\n113813,horse\n113814,dog\n113815,ship\n113816,frog\n113817,horse\n113818,deer\n113819,deer\n113820,frog\n113821,cat\n113822,truck\n113823,frog\n113824,truck\n113825,deer\n113826,automobile\n113827,deer\n113828,horse\n113829,dog\n113830,horse\n113831,cat\n113832,deer\n113833,horse\n113834,cat\n113835,ship\n113836,ship\n113837,horse\n113838,deer\n113839,ship\n113840,deer\n113841,ship\n113842,deer\n113843,cat\n113844,truck\n113845,cat\n113846,horse\n113847,ship\n113848,airplane\n113849,horse\n113850,cat\n113851,deer\n113852,cat\n113853,truck\n113854,truck\n113855,horse\n113856,horse\n113857,airplane\n113858,dog\n113859,airplane\n113860,horse\n113861,deer\n113862,deer\n113863,dog\n113864,truck\n113865,truck\n113866,truck\n113867,automobile\n113868,airplane\n113869,frog\n113870,cat\n113871,ship\n113872,bird\n113873,automobile\n113874,bird\n113875,deer\n113876,airplane\n113877,cat\n113878,frog\n113879,deer\n113880,deer\n113881,truck\n113882,truck\n113883,cat\n113884,dog\n113885,ship\n113886,automobile\n113887,frog\n113888,airplane\n113889,airplane\n113890,cat\n113891,automobile\n113892,bird\n113893,dog\n113894,ship\n113895,bird\n113896,bird\n113897,dog\n113898,airplane\n113899,truck\n113900,truck\n113901,ship\n113902,deer\n113903,deer\n113904,frog\n113905,dog\n113906,deer\n113907,cat\n113908,cat\n113909,bird\n113910,airplane\n113911,bird\n113912,deer\n113913,ship\n113914,ship\n113915,automobile\n113916,horse\n113917,airplane\n113918,cat\n113919,automobile\n113920,frog\n113921,truck\n113922,dog\n113923,ship\n113924,cat\n113925,ship\n113926,horse\n113927,truck\n113928,cat\n113929,horse\n113930,deer\n113931,airplane\n113932,horse\n113933,dog\n113934,cat\n113935,truck\n113936,bird\n113937,cat\n113938,deer\n113939,cat\n113940,frog\n113941,ship\n113942,automobile\n113943,dog\n113944,truck\n113945,horse\n113946,deer\n113947,cat\n113948,truck\n113949,truck\n113950,bird\n113951,bird\n113952,truck\n113953,deer\n113954,bird\n113955,cat\n113956,dog\n113957,ship\n113958,bird\n113959,airplane\n113960,dog\n113961,deer\n113962,cat\n113963,cat\n113964,horse\n113965,truck\n113966,cat\n113967,deer\n113968,dog\n113969,frog\n113970,deer\n113971,ship\n113972,frog\n113973,horse\n113974,ship\n113975,cat\n113976,deer\n113977,frog\n113978,cat\n113979,deer\n113980,automobile\n113981,deer\n113982,deer\n113983,cat\n113984,dog\n113985,airplane\n113986,frog\n113987,horse\n113988,bird\n113989,airplane\n113990,cat\n113991,cat\n113992,dog\n113993,cat\n113994,airplane\n113995,automobile\n113996,dog\n113997,deer\n113998,horse\n113999,airplane\n114000,cat\n114001,horse\n114002,bird\n114003,deer\n114004,deer\n114005,horse\n114006,automobile\n114007,deer\n114008,ship\n114009,cat\n114010,deer\n114011,bird\n114012,dog\n114013,truck\n114014,ship\n114015,frog\n114016,automobile\n114017,dog\n114018,truck\n114019,cat\n114020,cat\n114021,ship\n114022,airplane\n114023,horse\n114024,cat\n114025,frog\n114026,automobile\n114027,truck\n114028,deer\n114029,ship\n114030,dog\n114031,cat\n114032,ship\n114033,dog\n114034,airplane\n114035,ship\n114036,bird\n114037,cat\n114038,horse\n114039,horse\n114040,bird\n114041,frog\n114042,truck\n114043,truck\n114044,cat\n114045,frog\n114046,frog\n114047,airplane\n114048,ship\n114049,horse\n114050,dog\n114051,airplane\n114052,ship\n114053,deer\n114054,airplane\n114055,horse\n114056,frog\n114057,truck\n114058,airplane\n114059,airplane\n114060,dog\n114061,frog\n114062,cat\n114063,deer\n114064,automobile\n114065,airplane\n114066,dog\n114067,cat\n114068,deer\n114069,airplane\n114070,dog\n114071,cat\n114072,automobile\n114073,deer\n114074,frog\n114075,deer\n114076,bird\n114077,deer\n114078,bird\n114079,cat\n114080,ship\n114081,frog\n114082,dog\n114083,automobile\n114084,deer\n114085,cat\n114086,truck\n114087,dog\n114088,airplane\n114089,bird\n114090,airplane\n114091,automobile\n114092,airplane\n114093,frog\n114094,ship\n114095,truck\n114096,airplane\n114097,truck\n114098,dog\n114099,cat\n114100,cat\n114101,horse\n114102,dog\n114103,deer\n114104,airplane\n114105,cat\n114106,dog\n114107,automobile\n114108,truck\n114109,frog\n114110,deer\n114111,automobile\n114112,bird\n114113,airplane\n114114,cat\n114115,cat\n114116,frog\n114117,truck\n114118,truck\n114119,cat\n114120,bird\n114121,frog\n114122,automobile\n114123,frog\n114124,deer\n114125,deer\n114126,frog\n114127,horse\n114128,truck\n114129,truck\n114130,automobile\n114131,bird\n114132,deer\n114133,truck\n114134,dog\n114135,truck\n114136,cat\n114137,airplane\n114138,ship\n114139,cat\n114140,bird\n114141,airplane\n114142,deer\n114143,deer\n114144,automobile\n114145,ship\n114146,ship\n114147,bird\n114148,horse\n114149,deer\n114150,deer\n114151,truck\n114152,frog\n114153,cat\n114154,ship\n114155,frog\n114156,automobile\n114157,ship\n114158,cat\n114159,bird\n114160,dog\n114161,frog\n114162,horse\n114163,cat\n114164,bird\n114165,frog\n114166,cat\n114167,bird\n114168,dog\n114169,truck\n114170,ship\n114171,deer\n114172,automobile\n114173,bird\n114174,deer\n114175,cat\n114176,frog\n114177,deer\n114178,truck\n114179,frog\n114180,horse\n114181,ship\n114182,truck\n114183,ship\n114184,horse\n114185,dog\n114186,automobile\n114187,dog\n114188,deer\n114189,dog\n114190,cat\n114191,ship\n114192,truck\n114193,deer\n114194,dog\n114195,cat\n114196,bird\n114197,deer\n114198,automobile\n114199,truck\n114200,horse\n114201,deer\n114202,automobile\n114203,horse\n114204,automobile\n114205,bird\n114206,horse\n114207,cat\n114208,airplane\n114209,cat\n114210,truck\n114211,ship\n114212,bird\n114213,dog\n114214,horse\n114215,cat\n114216,frog\n114217,cat\n114218,bird\n114219,truck\n114220,bird\n114221,horse\n114222,horse\n114223,deer\n114224,frog\n114225,cat\n114226,ship\n114227,ship\n114228,deer\n114229,ship\n114230,truck\n114231,dog\n114232,automobile\n114233,airplane\n114234,dog\n114235,automobile\n114236,cat\n114237,bird\n114238,deer\n114239,dog\n114240,ship\n114241,cat\n114242,truck\n114243,frog\n114244,ship\n114245,ship\n114246,dog\n114247,dog\n114248,truck\n114249,ship\n114250,ship\n114251,bird\n114252,horse\n114253,ship\n114254,dog\n114255,horse\n114256,ship\n114257,ship\n114258,automobile\n114259,airplane\n114260,frog\n114261,deer\n114262,dog\n114263,truck\n114264,truck\n114265,airplane\n114266,cat\n114267,airplane\n114268,cat\n114269,frog\n114270,ship\n114271,deer\n114272,horse\n114273,deer\n114274,frog\n114275,frog\n114276,dog\n114277,ship\n114278,ship\n114279,horse\n114280,automobile\n114281,cat\n114282,cat\n114283,horse\n114284,automobile\n114285,airplane\n114286,bird\n114287,frog\n114288,ship\n114289,truck\n114290,horse\n114291,airplane\n114292,automobile\n114293,dog\n114294,truck\n114295,automobile\n114296,horse\n114297,ship\n114298,cat\n114299,dog\n114300,deer\n114301,airplane\n114302,truck\n114303,frog\n114304,cat\n114305,cat\n114306,deer\n114307,cat\n114308,deer\n114309,horse\n114310,horse\n114311,horse\n114312,frog\n114313,ship\n114314,deer\n114315,cat\n114316,airplane\n114317,bird\n114318,cat\n114319,truck\n114320,automobile\n114321,automobile\n114322,deer\n114323,horse\n114324,dog\n114325,bird\n114326,truck\n114327,airplane\n114328,truck\n114329,frog\n114330,horse\n114331,horse\n114332,truck\n114333,horse\n114334,deer\n114335,frog\n114336,deer\n114337,cat\n114338,deer\n114339,truck\n114340,deer\n114341,deer\n114342,automobile\n114343,ship\n114344,frog\n114345,frog\n114346,dog\n114347,dog\n114348,bird\n114349,bird\n114350,horse\n114351,cat\n114352,frog\n114353,frog\n114354,bird\n114355,frog\n114356,dog\n114357,deer\n114358,frog\n114359,automobile\n114360,airplane\n114361,ship\n114362,horse\n114363,frog\n114364,dog\n114365,horse\n114366,airplane\n114367,airplane\n114368,cat\n114369,truck\n114370,automobile\n114371,deer\n114372,truck\n114373,ship\n114374,ship\n114375,truck\n114376,horse\n114377,truck\n114378,deer\n114379,cat\n114380,deer\n114381,deer\n114382,ship\n114383,bird\n114384,truck\n114385,deer\n114386,truck\n114387,cat\n114388,ship\n114389,airplane\n114390,airplane\n114391,frog\n114392,frog\n114393,horse\n114394,deer\n114395,horse\n114396,frog\n114397,ship\n114398,deer\n114399,airplane\n114400,truck\n114401,cat\n114402,horse\n114403,deer\n114404,deer\n114405,frog\n114406,horse\n114407,automobile\n114408,bird\n114409,bird\n114410,truck\n114411,ship\n114412,horse\n114413,horse\n114414,airplane\n114415,truck\n114416,dog\n114417,dog\n114418,airplane\n114419,cat\n114420,deer\n114421,bird\n114422,dog\n114423,truck\n114424,cat\n114425,cat\n114426,dog\n114427,cat\n114428,frog\n114429,deer\n114430,horse\n114431,bird\n114432,cat\n114433,cat\n114434,cat\n114435,cat\n114436,truck\n114437,frog\n114438,horse\n114439,bird\n114440,automobile\n114441,cat\n114442,frog\n114443,bird\n114444,truck\n114445,dog\n114446,frog\n114447,frog\n114448,deer\n114449,deer\n114450,ship\n114451,frog\n114452,ship\n114453,automobile\n114454,dog\n114455,frog\n114456,airplane\n114457,frog\n114458,truck\n114459,deer\n114460,truck\n114461,horse\n114462,automobile\n114463,frog\n114464,dog\n114465,cat\n114466,dog\n114467,deer\n114468,dog\n114469,truck\n114470,ship\n114471,ship\n114472,dog\n114473,frog\n114474,horse\n114475,cat\n114476,airplane\n114477,cat\n114478,dog\n114479,horse\n114480,bird\n114481,cat\n114482,frog\n114483,airplane\n114484,dog\n114485,automobile\n114486,cat\n114487,automobile\n114488,dog\n114489,frog\n114490,horse\n114491,truck\n114492,dog\n114493,truck\n114494,truck\n114495,airplane\n114496,deer\n114497,frog\n114498,deer\n114499,deer\n114500,bird\n114501,bird\n114502,cat\n114503,airplane\n114504,dog\n114505,truck\n114506,bird\n114507,dog\n114508,airplane\n114509,cat\n114510,horse\n114511,cat\n114512,dog\n114513,deer\n114514,automobile\n114515,frog\n114516,deer\n114517,truck\n114518,deer\n114519,deer\n114520,frog\n114521,airplane\n114522,airplane\n114523,dog\n114524,truck\n114525,cat\n114526,horse\n114527,horse\n114528,bird\n114529,truck\n114530,automobile\n114531,airplane\n114532,automobile\n114533,deer\n114534,truck\n114535,truck\n114536,cat\n114537,bird\n114538,airplane\n114539,horse\n114540,frog\n114541,automobile\n114542,truck\n114543,deer\n114544,airplane\n114545,frog\n114546,horse\n114547,dog\n114548,automobile\n114549,frog\n114550,ship\n114551,horse\n114552,horse\n114553,airplane\n114554,airplane\n114555,cat\n114556,bird\n114557,horse\n114558,horse\n114559,deer\n114560,horse\n114561,deer\n114562,ship\n114563,truck\n114564,ship\n114565,dog\n114566,airplane\n114567,horse\n114568,truck\n114569,frog\n114570,bird\n114571,truck\n114572,frog\n114573,dog\n114574,ship\n114575,truck\n114576,airplane\n114577,ship\n114578,bird\n114579,dog\n114580,airplane\n114581,airplane\n114582,deer\n114583,deer\n114584,frog\n114585,cat\n114586,cat\n114587,dog\n114588,truck\n114589,cat\n114590,deer\n114591,truck\n114592,airplane\n114593,horse\n114594,deer\n114595,cat\n114596,ship\n114597,airplane\n114598,airplane\n114599,deer\n114600,cat\n114601,ship\n114602,deer\n114603,cat\n114604,ship\n114605,cat\n114606,automobile\n114607,truck\n114608,truck\n114609,truck\n114610,ship\n114611,truck\n114612,deer\n114613,automobile\n114614,deer\n114615,deer\n114616,airplane\n114617,dog\n114618,automobile\n114619,cat\n114620,cat\n114621,deer\n114622,horse\n114623,cat\n114624,cat\n114625,cat\n114626,deer\n114627,bird\n114628,ship\n114629,horse\n114630,automobile\n114631,horse\n114632,bird\n114633,cat\n114634,deer\n114635,airplane\n114636,cat\n114637,airplane\n114638,ship\n114639,dog\n114640,horse\n114641,truck\n114642,horse\n114643,airplane\n114644,truck\n114645,cat\n114646,dog\n114647,automobile\n114648,cat\n114649,automobile\n114650,bird\n114651,automobile\n114652,deer\n114653,dog\n114654,truck\n114655,automobile\n114656,automobile\n114657,cat\n114658,horse\n114659,automobile\n114660,deer\n114661,automobile\n114662,deer\n114663,frog\n114664,automobile\n114665,ship\n114666,automobile\n114667,ship\n114668,frog\n114669,dog\n114670,bird\n114671,automobile\n114672,deer\n114673,deer\n114674,truck\n114675,dog\n114676,deer\n114677,cat\n114678,truck\n114679,cat\n114680,horse\n114681,frog\n114682,frog\n114683,truck\n114684,deer\n114685,dog\n114686,deer\n114687,airplane\n114688,airplane\n114689,deer\n114690,frog\n114691,horse\n114692,cat\n114693,cat\n114694,bird\n114695,cat\n114696,airplane\n114697,automobile\n114698,deer\n114699,automobile\n114700,deer\n114701,bird\n114702,airplane\n114703,ship\n114704,airplane\n114705,bird\n114706,ship\n114707,ship\n114708,deer\n114709,frog\n114710,automobile\n114711,bird\n114712,deer\n114713,cat\n114714,horse\n114715,ship\n114716,deer\n114717,automobile\n114718,frog\n114719,deer\n114720,deer\n114721,bird\n114722,dog\n114723,airplane\n114724,dog\n114725,cat\n114726,deer\n114727,frog\n114728,dog\n114729,frog\n114730,dog\n114731,cat\n114732,truck\n114733,truck\n114734,frog\n114735,dog\n114736,deer\n114737,deer\n114738,airplane\n114739,truck\n114740,bird\n114741,airplane\n114742,frog\n114743,horse\n114744,deer\n114745,bird\n114746,cat\n114747,automobile\n114748,frog\n114749,deer\n114750,airplane\n114751,horse\n114752,truck\n114753,deer\n114754,dog\n114755,cat\n114756,frog\n114757,deer\n114758,deer\n114759,airplane\n114760,horse\n114761,truck\n114762,deer\n114763,cat\n114764,dog\n114765,dog\n114766,airplane\n114767,ship\n114768,automobile\n114769,airplane\n114770,horse\n114771,dog\n114772,dog\n114773,frog\n114774,bird\n114775,bird\n114776,truck\n114777,frog\n114778,bird\n114779,dog\n114780,ship\n114781,deer\n114782,automobile\n114783,automobile\n114784,frog\n114785,deer\n114786,dog\n114787,airplane\n114788,deer\n114789,bird\n114790,bird\n114791,dog\n114792,truck\n114793,deer\n114794,cat\n114795,cat\n114796,deer\n114797,deer\n114798,horse\n114799,bird\n114800,horse\n114801,cat\n114802,automobile\n114803,frog\n114804,deer\n114805,bird\n114806,deer\n114807,deer\n114808,horse\n114809,deer\n114810,ship\n114811,airplane\n114812,dog\n114813,airplane\n114814,dog\n114815,cat\n114816,bird\n114817,dog\n114818,dog\n114819,automobile\n114820,deer\n114821,frog\n114822,deer\n114823,deer\n114824,deer\n114825,horse\n114826,frog\n114827,airplane\n114828,frog\n114829,horse\n114830,ship\n114831,airplane\n114832,airplane\n114833,frog\n114834,cat\n114835,cat\n114836,horse\n114837,deer\n114838,cat\n114839,airplane\n114840,cat\n114841,airplane\n114842,deer\n114843,frog\n114844,frog\n114845,cat\n114846,dog\n114847,horse\n114848,automobile\n114849,bird\n114850,ship\n114851,bird\n114852,automobile\n114853,airplane\n114854,cat\n114855,cat\n114856,dog\n114857,cat\n114858,bird\n114859,cat\n114860,automobile\n114861,frog\n114862,bird\n114863,automobile\n114864,cat\n114865,horse\n114866,deer\n114867,dog\n114868,deer\n114869,deer\n114870,frog\n114871,horse\n114872,truck\n114873,horse\n114874,bird\n114875,airplane\n114876,bird\n114877,airplane\n114878,deer\n114879,cat\n114880,deer\n114881,dog\n114882,bird\n114883,deer\n114884,bird\n114885,deer\n114886,horse\n114887,airplane\n114888,bird\n114889,deer\n114890,truck\n114891,bird\n114892,deer\n114893,airplane\n114894,frog\n114895,bird\n114896,frog\n114897,ship\n114898,ship\n114899,truck\n114900,bird\n114901,cat\n114902,automobile\n114903,cat\n114904,cat\n114905,dog\n114906,cat\n114907,cat\n114908,dog\n114909,ship\n114910,deer\n114911,dog\n114912,frog\n114913,deer\n114914,airplane\n114915,cat\n114916,dog\n114917,frog\n114918,truck\n114919,dog\n114920,deer\n114921,truck\n114922,frog\n114923,truck\n114924,dog\n114925,automobile\n114926,bird\n114927,cat\n114928,truck\n114929,cat\n114930,dog\n114931,ship\n114932,truck\n114933,frog\n114934,ship\n114935,truck\n114936,automobile\n114937,deer\n114938,cat\n114939,frog\n114940,deer\n114941,frog\n114942,deer\n114943,ship\n114944,deer\n114945,truck\n114946,frog\n114947,cat\n114948,ship\n114949,dog\n114950,truck\n114951,bird\n114952,cat\n114953,truck\n114954,horse\n114955,automobile\n114956,ship\n114957,horse\n114958,dog\n114959,frog\n114960,airplane\n114961,horse\n114962,dog\n114963,airplane\n114964,cat\n114965,dog\n114966,ship\n114967,truck\n114968,ship\n114969,cat\n114970,bird\n114971,bird\n114972,bird\n114973,horse\n114974,frog\n114975,airplane\n114976,deer\n114977,deer\n114978,cat\n114979,dog\n114980,deer\n114981,cat\n114982,bird\n114983,ship\n114984,automobile\n114985,cat\n114986,automobile\n114987,ship\n114988,ship\n114989,ship\n114990,dog\n114991,cat\n114992,airplane\n114993,airplane\n114994,deer\n114995,deer\n114996,deer\n114997,dog\n114998,airplane\n114999,horse\n115000,dog\n115001,deer\n115002,deer\n115003,frog\n115004,bird\n115005,truck\n115006,frog\n115007,dog\n115008,airplane\n115009,frog\n115010,automobile\n115011,frog\n115012,cat\n115013,ship\n115014,frog\n115015,truck\n115016,cat\n115017,ship\n115018,dog\n115019,deer\n115020,truck\n115021,airplane\n115022,cat\n115023,automobile\n115024,bird\n115025,ship\n115026,horse\n115027,horse\n115028,ship\n115029,cat\n115030,truck\n115031,horse\n115032,frog\n115033,frog\n115034,cat\n115035,airplane\n115036,frog\n115037,cat\n115038,horse\n115039,bird\n115040,ship\n115041,frog\n115042,automobile\n115043,automobile\n115044,cat\n115045,truck\n115046,automobile\n115047,truck\n115048,horse\n115049,deer\n115050,bird\n115051,automobile\n115052,deer\n115053,cat\n115054,deer\n115055,dog\n115056,deer\n115057,airplane\n115058,truck\n115059,frog\n115060,deer\n115061,truck\n115062,deer\n115063,automobile\n115064,bird\n115065,truck\n115066,bird\n115067,horse\n115068,cat\n115069,cat\n115070,automobile\n115071,cat\n115072,frog\n115073,horse\n115074,airplane\n115075,dog\n115076,bird\n115077,deer\n115078,airplane\n115079,frog\n115080,bird\n115081,horse\n115082,cat\n115083,airplane\n115084,cat\n115085,airplane\n115086,truck\n115087,cat\n115088,frog\n115089,cat\n115090,horse\n115091,frog\n115092,truck\n115093,bird\n115094,automobile\n115095,cat\n115096,frog\n115097,ship\n115098,deer\n115099,airplane\n115100,deer\n115101,deer\n115102,frog\n115103,horse\n115104,deer\n115105,frog\n115106,airplane\n115107,frog\n115108,ship\n115109,dog\n115110,automobile\n115111,airplane\n115112,deer\n115113,cat\n115114,deer\n115115,bird\n115116,horse\n115117,ship\n115118,truck\n115119,bird\n115120,truck\n115121,airplane\n115122,frog\n115123,ship\n115124,dog\n115125,cat\n115126,horse\n115127,cat\n115128,frog\n115129,ship\n115130,cat\n115131,horse\n115132,frog\n115133,frog\n115134,bird\n115135,bird\n115136,deer\n115137,deer\n115138,truck\n115139,deer\n115140,frog\n115141,cat\n115142,deer\n115143,cat\n115144,deer\n115145,frog\n115146,deer\n115147,deer\n115148,frog\n115149,cat\n115150,frog\n115151,cat\n115152,horse\n115153,deer\n115154,truck\n115155,automobile\n115156,ship\n115157,dog\n115158,cat\n115159,cat\n115160,cat\n115161,deer\n115162,deer\n115163,deer\n115164,deer\n115165,frog\n115166,airplane\n115167,dog\n115168,horse\n115169,ship\n115170,cat\n115171,deer\n115172,cat\n115173,frog\n115174,dog\n115175,horse\n115176,bird\n115177,ship\n115178,horse\n115179,truck\n115180,airplane\n115181,ship\n115182,automobile\n115183,truck\n115184,truck\n115185,automobile\n115186,deer\n115187,cat\n115188,bird\n115189,dog\n115190,dog\n115191,truck\n115192,frog\n115193,truck\n115194,airplane\n115195,cat\n115196,frog\n115197,bird\n115198,deer\n115199,deer\n115200,automobile\n115201,dog\n115202,bird\n115203,deer\n115204,truck\n115205,airplane\n115206,bird\n115207,dog\n115208,dog\n115209,truck\n115210,cat\n115211,deer\n115212,automobile\n115213,cat\n115214,airplane\n115215,frog\n115216,frog\n115217,truck\n115218,dog\n115219,frog\n115220,horse\n115221,cat\n115222,airplane\n115223,airplane\n115224,deer\n115225,deer\n115226,automobile\n115227,bird\n115228,dog\n115229,dog\n115230,deer\n115231,bird\n115232,frog\n115233,bird\n115234,dog\n115235,airplane\n115236,cat\n115237,airplane\n115238,frog\n115239,bird\n115240,horse\n115241,dog\n115242,bird\n115243,airplane\n115244,bird\n115245,frog\n115246,airplane\n115247,deer\n115248,automobile\n115249,bird\n115250,dog\n115251,automobile\n115252,deer\n115253,frog\n115254,automobile\n115255,airplane\n115256,dog\n115257,cat\n115258,truck\n115259,dog\n115260,automobile\n115261,frog\n115262,airplane\n115263,frog\n115264,cat\n115265,ship\n115266,airplane\n115267,automobile\n115268,dog\n115269,dog\n115270,bird\n115271,cat\n115272,truck\n115273,ship\n115274,bird\n115275,deer\n115276,frog\n115277,dog\n115278,ship\n115279,deer\n115280,airplane\n115281,frog\n115282,airplane\n115283,horse\n115284,cat\n115285,frog\n115286,bird\n115287,dog\n115288,horse\n115289,ship\n115290,horse\n115291,airplane\n115292,dog\n115293,bird\n115294,bird\n115295,truck\n115296,deer\n115297,horse\n115298,cat\n115299,cat\n115300,dog\n115301,dog\n115302,airplane\n115303,airplane\n115304,truck\n115305,deer\n115306,airplane\n115307,frog\n115308,airplane\n115309,horse\n115310,cat\n115311,automobile\n115312,truck\n115313,cat\n115314,bird\n115315,bird\n115316,ship\n115317,dog\n115318,ship\n115319,ship\n115320,horse\n115321,dog\n115322,bird\n115323,automobile\n115324,dog\n115325,truck\n115326,horse\n115327,deer\n115328,truck\n115329,dog\n115330,automobile\n115331,bird\n115332,dog\n115333,ship\n115334,cat\n115335,deer\n115336,cat\n115337,automobile\n115338,cat\n115339,airplane\n115340,cat\n115341,truck\n115342,cat\n115343,deer\n115344,cat\n115345,deer\n115346,automobile\n115347,ship\n115348,horse\n115349,horse\n115350,truck\n115351,cat\n115352,cat\n115353,ship\n115354,airplane\n115355,truck\n115356,ship\n115357,airplane\n115358,airplane\n115359,truck\n115360,horse\n115361,cat\n115362,ship\n115363,horse\n115364,deer\n115365,airplane\n115366,truck\n115367,automobile\n115368,automobile\n115369,cat\n115370,ship\n115371,ship\n115372,ship\n115373,automobile\n115374,deer\n115375,dog\n115376,dog\n115377,automobile\n115378,ship\n115379,cat\n115380,truck\n115381,truck\n115382,horse\n115383,dog\n115384,truck\n115385,frog\n115386,deer\n115387,dog\n115388,frog\n115389,horse\n115390,dog\n115391,deer\n115392,airplane\n115393,automobile\n115394,ship\n115395,ship\n115396,truck\n115397,frog\n115398,ship\n115399,cat\n115400,bird\n115401,frog\n115402,truck\n115403,deer\n115404,deer\n115405,deer\n115406,dog\n115407,truck\n115408,frog\n115409,airplane\n115410,airplane\n115411,truck\n115412,ship\n115413,truck\n115414,truck\n115415,truck\n115416,deer\n115417,automobile\n115418,frog\n115419,frog\n115420,frog\n115421,cat\n115422,airplane\n115423,horse\n115424,cat\n115425,cat\n115426,bird\n115427,airplane\n115428,automobile\n115429,horse\n115430,horse\n115431,ship\n115432,cat\n115433,automobile\n115434,cat\n115435,automobile\n115436,automobile\n115437,frog\n115438,deer\n115439,horse\n115440,horse\n115441,deer\n115442,horse\n115443,truck\n115444,ship\n115445,ship\n115446,automobile\n115447,truck\n115448,horse\n115449,cat\n115450,automobile\n115451,frog\n115452,frog\n115453,bird\n115454,cat\n115455,cat\n115456,dog\n115457,bird\n115458,ship\n115459,truck\n115460,truck\n115461,frog\n115462,ship\n115463,horse\n115464,horse\n115465,cat\n115466,deer\n115467,deer\n115468,ship\n115469,truck\n115470,dog\n115471,horse\n115472,frog\n115473,truck\n115474,airplane\n115475,deer\n115476,automobile\n115477,truck\n115478,deer\n115479,automobile\n115480,ship\n115481,automobile\n115482,airplane\n115483,automobile\n115484,truck\n115485,frog\n115486,deer\n115487,dog\n115488,horse\n115489,airplane\n115490,horse\n115491,bird\n115492,truck\n115493,automobile\n115494,automobile\n115495,horse\n115496,ship\n115497,dog\n115498,cat\n115499,truck\n115500,cat\n115501,airplane\n115502,truck\n115503,deer\n115504,airplane\n115505,automobile\n115506,frog\n115507,automobile\n115508,dog\n115509,automobile\n115510,cat\n115511,deer\n115512,cat\n115513,bird\n115514,frog\n115515,deer\n115516,deer\n115517,ship\n115518,dog\n115519,horse\n115520,dog\n115521,automobile\n115522,truck\n115523,horse\n115524,deer\n115525,cat\n115526,truck\n115527,deer\n115528,horse\n115529,frog\n115530,horse\n115531,dog\n115532,ship\n115533,automobile\n115534,bird\n115535,bird\n115536,truck\n115537,ship\n115538,deer\n115539,deer\n115540,cat\n115541,automobile\n115542,frog\n115543,deer\n115544,automobile\n115545,horse\n115546,cat\n115547,cat\n115548,frog\n115549,deer\n115550,cat\n115551,cat\n115552,bird\n115553,deer\n115554,truck\n115555,cat\n115556,cat\n115557,frog\n115558,dog\n115559,frog\n115560,truck\n115561,frog\n115562,cat\n115563,airplane\n115564,automobile\n115565,cat\n115566,bird\n115567,frog\n115568,horse\n115569,ship\n115570,ship\n115571,airplane\n115572,horse\n115573,ship\n115574,truck\n115575,dog\n115576,airplane\n115577,deer\n115578,truck\n115579,dog\n115580,truck\n115581,automobile\n115582,frog\n115583,ship\n115584,frog\n115585,horse\n115586,cat\n115587,dog\n115588,cat\n115589,deer\n115590,horse\n115591,dog\n115592,airplane\n115593,truck\n115594,bird\n115595,deer\n115596,dog\n115597,truck\n115598,cat\n115599,truck\n115600,cat\n115601,dog\n115602,automobile\n115603,cat\n115604,frog\n115605,deer\n115606,horse\n115607,truck\n115608,ship\n115609,frog\n115610,deer\n115611,dog\n115612,ship\n115613,deer\n115614,horse\n115615,deer\n115616,bird\n115617,automobile\n115618,bird\n115619,frog\n115620,automobile\n115621,deer\n115622,truck\n115623,ship\n115624,deer\n115625,airplane\n115626,ship\n115627,truck\n115628,horse\n115629,cat\n115630,truck\n115631,deer\n115632,cat\n115633,cat\n115634,frog\n115635,truck\n115636,ship\n115637,cat\n115638,horse\n115639,frog\n115640,automobile\n115641,deer\n115642,dog\n115643,cat\n115644,bird\n115645,deer\n115646,airplane\n115647,deer\n115648,truck\n115649,truck\n115650,ship\n115651,frog\n115652,dog\n115653,horse\n115654,deer\n115655,automobile\n115656,deer\n115657,dog\n115658,cat\n115659,ship\n115660,bird\n115661,horse\n115662,frog\n115663,deer\n115664,truck\n115665,horse\n115666,ship\n115667,airplane\n115668,truck\n115669,deer\n115670,frog\n115671,deer\n115672,cat\n115673,dog\n115674,bird\n115675,airplane\n115676,ship\n115677,frog\n115678,truck\n115679,frog\n115680,dog\n115681,airplane\n115682,deer\n115683,airplane\n115684,horse\n115685,deer\n115686,airplane\n115687,cat\n115688,deer\n115689,ship\n115690,horse\n115691,ship\n115692,truck\n115693,cat\n115694,airplane\n115695,cat\n115696,bird\n115697,airplane\n115698,cat\n115699,dog\n115700,frog\n115701,frog\n115702,dog\n115703,automobile\n115704,frog\n115705,frog\n115706,automobile\n115707,truck\n115708,ship\n115709,dog\n115710,deer\n115711,ship\n115712,frog\n115713,deer\n115714,truck\n115715,dog\n115716,horse\n115717,cat\n115718,cat\n115719,airplane\n115720,deer\n115721,cat\n115722,truck\n115723,deer\n115724,automobile\n115725,truck\n115726,airplane\n115727,ship\n115728,cat\n115729,airplane\n115730,bird\n115731,horse\n115732,cat\n115733,airplane\n115734,cat\n115735,truck\n115736,bird\n115737,horse\n115738,ship\n115739,cat\n115740,ship\n115741,frog\n115742,airplane\n115743,dog\n115744,frog\n115745,dog\n115746,airplane\n115747,deer\n115748,deer\n115749,dog\n115750,ship\n115751,cat\n115752,dog\n115753,bird\n115754,truck\n115755,bird\n115756,automobile\n115757,airplane\n115758,frog\n115759,automobile\n115760,ship\n115761,ship\n115762,deer\n115763,truck\n115764,frog\n115765,deer\n115766,frog\n115767,cat\n115768,deer\n115769,dog\n115770,bird\n115771,dog\n115772,deer\n115773,cat\n115774,frog\n115775,bird\n115776,ship\n115777,automobile\n115778,deer\n115779,deer\n115780,ship\n115781,cat\n115782,cat\n115783,cat\n115784,dog\n115785,automobile\n115786,dog\n115787,airplane\n115788,deer\n115789,horse\n115790,cat\n115791,deer\n115792,ship\n115793,automobile\n115794,automobile\n115795,deer\n115796,deer\n115797,automobile\n115798,frog\n115799,truck\n115800,automobile\n115801,deer\n115802,horse\n115803,cat\n115804,frog\n115805,airplane\n115806,horse\n115807,automobile\n115808,deer\n115809,cat\n115810,automobile\n115811,ship\n115812,truck\n115813,dog\n115814,airplane\n115815,cat\n115816,automobile\n115817,deer\n115818,deer\n115819,horse\n115820,horse\n115821,truck\n115822,ship\n115823,truck\n115824,ship\n115825,ship\n115826,ship\n115827,truck\n115828,frog\n115829,truck\n115830,frog\n115831,automobile\n115832,truck\n115833,deer\n115834,airplane\n115835,dog\n115836,airplane\n115837,bird\n115838,cat\n115839,ship\n115840,ship\n115841,horse\n115842,cat\n115843,automobile\n115844,deer\n115845,ship\n115846,dog\n115847,bird\n115848,bird\n115849,automobile\n115850,deer\n115851,horse\n115852,dog\n115853,deer\n115854,bird\n115855,horse\n115856,cat\n115857,deer\n115858,horse\n115859,dog\n115860,frog\n115861,frog\n115862,dog\n115863,dog\n115864,dog\n115865,airplane\n115866,dog\n115867,ship\n115868,truck\n115869,ship\n115870,ship\n115871,truck\n115872,bird\n115873,bird\n115874,deer\n115875,bird\n115876,dog\n115877,bird\n115878,deer\n115879,deer\n115880,truck\n115881,airplane\n115882,deer\n115883,dog\n115884,cat\n115885,frog\n115886,cat\n115887,bird\n115888,cat\n115889,ship\n115890,ship\n115891,deer\n115892,ship\n115893,horse\n115894,automobile\n115895,airplane\n115896,ship\n115897,cat\n115898,airplane\n115899,frog\n115900,cat\n115901,truck\n115902,cat\n115903,cat\n115904,frog\n115905,deer\n115906,horse\n115907,truck\n115908,ship\n115909,frog\n115910,deer\n115911,frog\n115912,bird\n115913,automobile\n115914,ship\n115915,cat\n115916,truck\n115917,bird\n115918,automobile\n115919,ship\n115920,frog\n115921,deer\n115922,ship\n115923,dog\n115924,dog\n115925,deer\n115926,ship\n115927,cat\n115928,frog\n115929,airplane\n115930,airplane\n115931,automobile\n115932,cat\n115933,dog\n115934,truck\n115935,deer\n115936,horse\n115937,ship\n115938,dog\n115939,dog\n115940,cat\n115941,dog\n115942,horse\n115943,airplane\n115944,cat\n115945,deer\n115946,truck\n115947,dog\n115948,cat\n115949,horse\n115950,automobile\n115951,horse\n115952,cat\n115953,truck\n115954,bird\n115955,horse\n115956,deer\n115957,truck\n115958,airplane\n115959,dog\n115960,frog\n115961,dog\n115962,bird\n115963,deer\n115964,deer\n115965,cat\n115966,horse\n115967,airplane\n115968,ship\n115969,truck\n115970,dog\n115971,deer\n115972,dog\n115973,deer\n115974,horse\n115975,frog\n115976,ship\n115977,ship\n115978,horse\n115979,automobile\n115980,truck\n115981,truck\n115982,airplane\n115983,truck\n115984,bird\n115985,deer\n115986,deer\n115987,bird\n115988,dog\n115989,ship\n115990,horse\n115991,cat\n115992,deer\n115993,airplane\n115994,airplane\n115995,cat\n115996,dog\n115997,horse\n115998,deer\n115999,truck\n116000,deer\n116001,airplane\n116002,automobile\n116003,cat\n116004,dog\n116005,deer\n116006,ship\n116007,deer\n116008,cat\n116009,airplane\n116010,deer\n116011,airplane\n116012,bird\n116013,deer\n116014,deer\n116015,dog\n116016,frog\n116017,deer\n116018,dog\n116019,frog\n116020,frog\n116021,bird\n116022,horse\n116023,frog\n116024,frog\n116025,bird\n116026,deer\n116027,automobile\n116028,frog\n116029,horse\n116030,horse\n116031,truck\n116032,horse\n116033,horse\n116034,cat\n116035,deer\n116036,truck\n116037,deer\n116038,horse\n116039,cat\n116040,dog\n116041,automobile\n116042,cat\n116043,deer\n116044,dog\n116045,airplane\n116046,frog\n116047,truck\n116048,automobile\n116049,automobile\n116050,frog\n116051,deer\n116052,automobile\n116053,bird\n116054,frog\n116055,dog\n116056,deer\n116057,deer\n116058,horse\n116059,frog\n116060,cat\n116061,dog\n116062,bird\n116063,ship\n116064,dog\n116065,frog\n116066,deer\n116067,automobile\n116068,deer\n116069,dog\n116070,ship\n116071,frog\n116072,bird\n116073,deer\n116074,horse\n116075,frog\n116076,dog\n116077,frog\n116078,horse\n116079,airplane\n116080,dog\n116081,airplane\n116082,truck\n116083,automobile\n116084,dog\n116085,cat\n116086,automobile\n116087,frog\n116088,airplane\n116089,dog\n116090,automobile\n116091,horse\n116092,horse\n116093,deer\n116094,dog\n116095,deer\n116096,dog\n116097,deer\n116098,automobile\n116099,airplane\n116100,ship\n116101,ship\n116102,horse\n116103,bird\n116104,cat\n116105,cat\n116106,bird\n116107,airplane\n116108,truck\n116109,frog\n116110,airplane\n116111,frog\n116112,bird\n116113,automobile\n116114,automobile\n116115,frog\n116116,cat\n116117,cat\n116118,frog\n116119,horse\n116120,truck\n116121,frog\n116122,deer\n116123,automobile\n116124,frog\n116125,dog\n116126,horse\n116127,ship\n116128,ship\n116129,frog\n116130,deer\n116131,bird\n116132,truck\n116133,cat\n116134,horse\n116135,deer\n116136,ship\n116137,truck\n116138,truck\n116139,frog\n116140,deer\n116141,ship\n116142,dog\n116143,horse\n116144,truck\n116145,frog\n116146,automobile\n116147,truck\n116148,airplane\n116149,automobile\n116150,frog\n116151,airplane\n116152,airplane\n116153,truck\n116154,dog\n116155,ship\n116156,bird\n116157,ship\n116158,dog\n116159,airplane\n116160,deer\n116161,cat\n116162,deer\n116163,horse\n116164,truck\n116165,horse\n116166,bird\n116167,horse\n116168,automobile\n116169,ship\n116170,horse\n116171,deer\n116172,airplane\n116173,ship\n116174,airplane\n116175,bird\n116176,truck\n116177,cat\n116178,truck\n116179,horse\n116180,cat\n116181,horse\n116182,horse\n116183,automobile\n116184,frog\n116185,cat\n116186,automobile\n116187,automobile\n116188,truck\n116189,frog\n116190,airplane\n116191,ship\n116192,frog\n116193,dog\n116194,ship\n116195,cat\n116196,deer\n116197,horse\n116198,dog\n116199,airplane\n116200,automobile\n116201,automobile\n116202,airplane\n116203,cat\n116204,dog\n116205,frog\n116206,truck\n116207,cat\n116208,dog\n116209,deer\n116210,deer\n116211,bird\n116212,frog\n116213,deer\n116214,ship\n116215,horse\n116216,airplane\n116217,automobile\n116218,deer\n116219,frog\n116220,bird\n116221,cat\n116222,cat\n116223,frog\n116224,ship\n116225,horse\n116226,truck\n116227,deer\n116228,horse\n116229,automobile\n116230,dog\n116231,horse\n116232,ship\n116233,ship\n116234,ship\n116235,deer\n116236,ship\n116237,bird\n116238,ship\n116239,truck\n116240,horse\n116241,automobile\n116242,frog\n116243,truck\n116244,cat\n116245,airplane\n116246,deer\n116247,automobile\n116248,automobile\n116249,frog\n116250,horse\n116251,ship\n116252,frog\n116253,airplane\n116254,horse\n116255,bird\n116256,dog\n116257,automobile\n116258,airplane\n116259,automobile\n116260,deer\n116261,airplane\n116262,automobile\n116263,airplane\n116264,deer\n116265,automobile\n116266,horse\n116267,automobile\n116268,cat\n116269,frog\n116270,frog\n116271,frog\n116272,dog\n116273,deer\n116274,cat\n116275,automobile\n116276,automobile\n116277,deer\n116278,airplane\n116279,airplane\n116280,ship\n116281,bird\n116282,bird\n116283,airplane\n116284,ship\n116285,airplane\n116286,deer\n116287,cat\n116288,frog\n116289,cat\n116290,automobile\n116291,ship\n116292,cat\n116293,deer\n116294,truck\n116295,airplane\n116296,deer\n116297,dog\n116298,deer\n116299,frog\n116300,dog\n116301,bird\n116302,frog\n116303,horse\n116304,truck\n116305,airplane\n116306,dog\n116307,dog\n116308,truck\n116309,airplane\n116310,dog\n116311,bird\n116312,automobile\n116313,frog\n116314,airplane\n116315,dog\n116316,airplane\n116317,dog\n116318,cat\n116319,automobile\n116320,bird\n116321,horse\n116322,horse\n116323,bird\n116324,automobile\n116325,truck\n116326,deer\n116327,airplane\n116328,deer\n116329,ship\n116330,horse\n116331,dog\n116332,frog\n116333,horse\n116334,horse\n116335,deer\n116336,ship\n116337,automobile\n116338,bird\n116339,bird\n116340,frog\n116341,cat\n116342,cat\n116343,bird\n116344,dog\n116345,horse\n116346,airplane\n116347,frog\n116348,automobile\n116349,cat\n116350,horse\n116351,truck\n116352,airplane\n116353,ship\n116354,frog\n116355,ship\n116356,horse\n116357,airplane\n116358,frog\n116359,deer\n116360,horse\n116361,truck\n116362,horse\n116363,deer\n116364,airplane\n116365,frog\n116366,horse\n116367,cat\n116368,deer\n116369,dog\n116370,bird\n116371,bird\n116372,truck\n116373,airplane\n116374,deer\n116375,deer\n116376,automobile\n116377,ship\n116378,deer\n116379,deer\n116380,truck\n116381,frog\n116382,cat\n116383,airplane\n116384,horse\n116385,automobile\n116386,ship\n116387,dog\n116388,dog\n116389,truck\n116390,ship\n116391,truck\n116392,airplane\n116393,deer\n116394,deer\n116395,frog\n116396,bird\n116397,frog\n116398,ship\n116399,truck\n116400,ship\n116401,horse\n116402,dog\n116403,cat\n116404,horse\n116405,cat\n116406,cat\n116407,truck\n116408,frog\n116409,truck\n116410,bird\n116411,dog\n116412,deer\n116413,frog\n116414,airplane\n116415,bird\n116416,automobile\n116417,airplane\n116418,airplane\n116419,truck\n116420,horse\n116421,truck\n116422,deer\n116423,truck\n116424,airplane\n116425,ship\n116426,bird\n116427,dog\n116428,deer\n116429,airplane\n116430,bird\n116431,cat\n116432,frog\n116433,ship\n116434,airplane\n116435,airplane\n116436,frog\n116437,frog\n116438,truck\n116439,deer\n116440,deer\n116441,horse\n116442,dog\n116443,airplane\n116444,bird\n116445,deer\n116446,frog\n116447,airplane\n116448,bird\n116449,frog\n116450,frog\n116451,horse\n116452,airplane\n116453,airplane\n116454,bird\n116455,cat\n116456,frog\n116457,frog\n116458,deer\n116459,horse\n116460,airplane\n116461,ship\n116462,automobile\n116463,truck\n116464,automobile\n116465,truck\n116466,dog\n116467,frog\n116468,cat\n116469,deer\n116470,deer\n116471,deer\n116472,automobile\n116473,frog\n116474,bird\n116475,bird\n116476,truck\n116477,deer\n116478,truck\n116479,horse\n116480,dog\n116481,cat\n116482,deer\n116483,cat\n116484,cat\n116485,horse\n116486,cat\n116487,deer\n116488,frog\n116489,deer\n116490,truck\n116491,airplane\n116492,automobile\n116493,deer\n116494,cat\n116495,horse\n116496,cat\n116497,deer\n116498,automobile\n116499,cat\n116500,automobile\n116501,deer\n116502,cat\n116503,ship\n116504,ship\n116505,deer\n116506,frog\n116507,frog\n116508,deer\n116509,horse\n116510,cat\n116511,deer\n116512,deer\n116513,truck\n116514,dog\n116515,truck\n116516,cat\n116517,frog\n116518,dog\n116519,cat\n116520,cat\n116521,bird\n116522,bird\n116523,ship\n116524,deer\n116525,bird\n116526,horse\n116527,automobile\n116528,frog\n116529,dog\n116530,dog\n116531,cat\n116532,deer\n116533,deer\n116534,deer\n116535,airplane\n116536,airplane\n116537,ship\n116538,airplane\n116539,cat\n116540,cat\n116541,cat\n116542,frog\n116543,airplane\n116544,deer\n116545,horse\n116546,bird\n116547,dog\n116548,cat\n116549,automobile\n116550,airplane\n116551,deer\n116552,bird\n116553,truck\n116554,airplane\n116555,ship\n116556,truck\n116557,deer\n116558,dog\n116559,dog\n116560,frog\n116561,automobile\n116562,airplane\n116563,dog\n116564,horse\n116565,horse\n116566,truck\n116567,dog\n116568,bird\n116569,bird\n116570,bird\n116571,horse\n116572,automobile\n116573,truck\n116574,deer\n116575,airplane\n116576,dog\n116577,ship\n116578,ship\n116579,automobile\n116580,cat\n116581,dog\n116582,cat\n116583,ship\n116584,horse\n116585,frog\n116586,dog\n116587,frog\n116588,deer\n116589,frog\n116590,dog\n116591,cat\n116592,frog\n116593,horse\n116594,dog\n116595,frog\n116596,deer\n116597,bird\n116598,truck\n116599,frog\n116600,dog\n116601,cat\n116602,deer\n116603,automobile\n116604,ship\n116605,ship\n116606,automobile\n116607,ship\n116608,ship\n116609,deer\n116610,truck\n116611,truck\n116612,frog\n116613,horse\n116614,cat\n116615,dog\n116616,deer\n116617,frog\n116618,cat\n116619,bird\n116620,bird\n116621,dog\n116622,ship\n116623,deer\n116624,dog\n116625,bird\n116626,frog\n116627,cat\n116628,cat\n116629,automobile\n116630,dog\n116631,truck\n116632,frog\n116633,horse\n116634,bird\n116635,frog\n116636,deer\n116637,automobile\n116638,deer\n116639,horse\n116640,deer\n116641,truck\n116642,deer\n116643,dog\n116644,cat\n116645,cat\n116646,truck\n116647,automobile\n116648,cat\n116649,automobile\n116650,frog\n116651,bird\n116652,cat\n116653,ship\n116654,cat\n116655,frog\n116656,automobile\n116657,cat\n116658,cat\n116659,bird\n116660,cat\n116661,frog\n116662,automobile\n116663,cat\n116664,horse\n116665,deer\n116666,cat\n116667,frog\n116668,truck\n116669,deer\n116670,cat\n116671,cat\n116672,truck\n116673,ship\n116674,horse\n116675,deer\n116676,frog\n116677,frog\n116678,automobile\n116679,truck\n116680,dog\n116681,dog\n116682,dog\n116683,frog\n116684,airplane\n116685,truck\n116686,deer\n116687,dog\n116688,bird\n116689,truck\n116690,ship\n116691,ship\n116692,cat\n116693,airplane\n116694,truck\n116695,deer\n116696,deer\n116697,truck\n116698,automobile\n116699,frog\n116700,cat\n116701,deer\n116702,truck\n116703,deer\n116704,horse\n116705,truck\n116706,bird\n116707,truck\n116708,horse\n116709,horse\n116710,deer\n116711,deer\n116712,airplane\n116713,cat\n116714,dog\n116715,ship\n116716,deer\n116717,cat\n116718,cat\n116719,dog\n116720,deer\n116721,automobile\n116722,airplane\n116723,bird\n116724,frog\n116725,deer\n116726,bird\n116727,airplane\n116728,deer\n116729,deer\n116730,bird\n116731,truck\n116732,dog\n116733,frog\n116734,cat\n116735,deer\n116736,airplane\n116737,deer\n116738,ship\n116739,airplane\n116740,horse\n116741,frog\n116742,horse\n116743,bird\n116744,automobile\n116745,horse\n116746,ship\n116747,ship\n116748,automobile\n116749,automobile\n116750,dog\n116751,frog\n116752,bird\n116753,horse\n116754,deer\n116755,frog\n116756,bird\n116757,dog\n116758,cat\n116759,bird\n116760,cat\n116761,bird\n116762,truck\n116763,automobile\n116764,deer\n116765,horse\n116766,deer\n116767,truck\n116768,truck\n116769,deer\n116770,cat\n116771,ship\n116772,horse\n116773,horse\n116774,cat\n116775,ship\n116776,bird\n116777,deer\n116778,automobile\n116779,deer\n116780,bird\n116781,cat\n116782,dog\n116783,dog\n116784,cat\n116785,frog\n116786,airplane\n116787,airplane\n116788,horse\n116789,automobile\n116790,bird\n116791,deer\n116792,deer\n116793,airplane\n116794,truck\n116795,dog\n116796,dog\n116797,dog\n116798,horse\n116799,bird\n116800,airplane\n116801,frog\n116802,deer\n116803,frog\n116804,truck\n116805,horse\n116806,frog\n116807,truck\n116808,deer\n116809,dog\n116810,airplane\n116811,bird\n116812,truck\n116813,deer\n116814,automobile\n116815,cat\n116816,cat\n116817,horse\n116818,truck\n116819,deer\n116820,bird\n116821,bird\n116822,airplane\n116823,deer\n116824,horse\n116825,cat\n116826,airplane\n116827,airplane\n116828,automobile\n116829,cat\n116830,deer\n116831,truck\n116832,cat\n116833,deer\n116834,horse\n116835,frog\n116836,truck\n116837,airplane\n116838,frog\n116839,ship\n116840,automobile\n116841,dog\n116842,horse\n116843,truck\n116844,cat\n116845,automobile\n116846,truck\n116847,airplane\n116848,truck\n116849,airplane\n116850,dog\n116851,bird\n116852,deer\n116853,cat\n116854,ship\n116855,deer\n116856,cat\n116857,cat\n116858,horse\n116859,cat\n116860,frog\n116861,deer\n116862,truck\n116863,horse\n116864,ship\n116865,horse\n116866,dog\n116867,cat\n116868,dog\n116869,deer\n116870,bird\n116871,automobile\n116872,dog\n116873,airplane\n116874,deer\n116875,dog\n116876,deer\n116877,automobile\n116878,deer\n116879,cat\n116880,bird\n116881,cat\n116882,airplane\n116883,deer\n116884,horse\n116885,ship\n116886,airplane\n116887,frog\n116888,frog\n116889,frog\n116890,ship\n116891,airplane\n116892,automobile\n116893,cat\n116894,ship\n116895,automobile\n116896,frog\n116897,dog\n116898,frog\n116899,deer\n116900,cat\n116901,frog\n116902,cat\n116903,frog\n116904,ship\n116905,dog\n116906,automobile\n116907,airplane\n116908,cat\n116909,automobile\n116910,airplane\n116911,deer\n116912,horse\n116913,horse\n116914,deer\n116915,bird\n116916,truck\n116917,bird\n116918,horse\n116919,automobile\n116920,frog\n116921,airplane\n116922,cat\n116923,horse\n116924,ship\n116925,horse\n116926,ship\n116927,airplane\n116928,horse\n116929,deer\n116930,bird\n116931,bird\n116932,ship\n116933,dog\n116934,cat\n116935,bird\n116936,deer\n116937,bird\n116938,airplane\n116939,automobile\n116940,automobile\n116941,airplane\n116942,truck\n116943,frog\n116944,horse\n116945,deer\n116946,truck\n116947,truck\n116948,deer\n116949,deer\n116950,horse\n116951,cat\n116952,frog\n116953,cat\n116954,airplane\n116955,deer\n116956,airplane\n116957,bird\n116958,automobile\n116959,ship\n116960,cat\n116961,deer\n116962,truck\n116963,automobile\n116964,frog\n116965,cat\n116966,airplane\n116967,truck\n116968,bird\n116969,horse\n116970,truck\n116971,horse\n116972,ship\n116973,dog\n116974,ship\n116975,horse\n116976,bird\n116977,dog\n116978,truck\n116979,airplane\n116980,bird\n116981,cat\n116982,bird\n116983,ship\n116984,airplane\n116985,truck\n116986,cat\n116987,frog\n116988,cat\n116989,airplane\n116990,horse\n116991,horse\n116992,truck\n116993,cat\n116994,dog\n116995,deer\n116996,deer\n116997,frog\n116998,dog\n116999,cat\n117000,bird\n117001,automobile\n117002,horse\n117003,truck\n117004,cat\n117005,airplane\n117006,truck\n117007,cat\n117008,deer\n117009,airplane\n117010,deer\n117011,ship\n117012,cat\n117013,dog\n117014,horse\n117015,ship\n117016,cat\n117017,frog\n117018,dog\n117019,deer\n117020,truck\n117021,dog\n117022,deer\n117023,airplane\n117024,horse\n117025,deer\n117026,truck\n117027,dog\n117028,airplane\n117029,airplane\n117030,frog\n117031,dog\n117032,airplane\n117033,dog\n117034,deer\n117035,horse\n117036,horse\n117037,deer\n117038,frog\n117039,dog\n117040,automobile\n117041,ship\n117042,automobile\n117043,frog\n117044,airplane\n117045,cat\n117046,airplane\n117047,deer\n117048,airplane\n117049,ship\n117050,frog\n117051,deer\n117052,automobile\n117053,bird\n117054,horse\n117055,cat\n117056,airplane\n117057,frog\n117058,horse\n117059,dog\n117060,bird\n117061,horse\n117062,cat\n117063,bird\n117064,ship\n117065,deer\n117066,truck\n117067,horse\n117068,ship\n117069,truck\n117070,horse\n117071,automobile\n117072,frog\n117073,truck\n117074,ship\n117075,horse\n117076,deer\n117077,bird\n117078,cat\n117079,frog\n117080,automobile\n117081,ship\n117082,dog\n117083,truck\n117084,frog\n117085,bird\n117086,automobile\n117087,airplane\n117088,cat\n117089,frog\n117090,horse\n117091,deer\n117092,truck\n117093,truck\n117094,deer\n117095,ship\n117096,frog\n117097,deer\n117098,bird\n117099,airplane\n117100,horse\n117101,bird\n117102,deer\n117103,deer\n117104,deer\n117105,dog\n117106,horse\n117107,dog\n117108,ship\n117109,horse\n117110,automobile\n117111,cat\n117112,cat\n117113,airplane\n117114,frog\n117115,bird\n117116,bird\n117117,truck\n117118,truck\n117119,truck\n117120,dog\n117121,deer\n117122,deer\n117123,cat\n117124,deer\n117125,ship\n117126,truck\n117127,frog\n117128,frog\n117129,dog\n117130,frog\n117131,airplane\n117132,airplane\n117133,truck\n117134,deer\n117135,bird\n117136,ship\n117137,airplane\n117138,cat\n117139,airplane\n117140,dog\n117141,ship\n117142,deer\n117143,horse\n117144,frog\n117145,ship\n117146,ship\n117147,truck\n117148,truck\n117149,dog\n117150,dog\n117151,frog\n117152,horse\n117153,horse\n117154,deer\n117155,truck\n117156,horse\n117157,dog\n117158,horse\n117159,cat\n117160,airplane\n117161,bird\n117162,dog\n117163,dog\n117164,dog\n117165,ship\n117166,dog\n117167,bird\n117168,cat\n117169,truck\n117170,bird\n117171,deer\n117172,frog\n117173,cat\n117174,frog\n117175,horse\n117176,automobile\n117177,dog\n117178,airplane\n117179,cat\n117180,ship\n117181,deer\n117182,truck\n117183,bird\n117184,ship\n117185,cat\n117186,ship\n117187,dog\n117188,automobile\n117189,dog\n117190,dog\n117191,frog\n117192,frog\n117193,frog\n117194,frog\n117195,dog\n117196,frog\n117197,airplane\n117198,ship\n117199,horse\n117200,deer\n117201,frog\n117202,bird\n117203,deer\n117204,truck\n117205,cat\n117206,ship\n117207,frog\n117208,automobile\n117209,airplane\n117210,automobile\n117211,cat\n117212,dog\n117213,automobile\n117214,deer\n117215,cat\n117216,ship\n117217,cat\n117218,bird\n117219,frog\n117220,bird\n117221,cat\n117222,horse\n117223,truck\n117224,deer\n117225,deer\n117226,deer\n117227,horse\n117228,horse\n117229,dog\n117230,ship\n117231,frog\n117232,horse\n117233,bird\n117234,cat\n117235,cat\n117236,automobile\n117237,cat\n117238,truck\n117239,dog\n117240,horse\n117241,airplane\n117242,cat\n117243,cat\n117244,horse\n117245,cat\n117246,deer\n117247,horse\n117248,airplane\n117249,truck\n117250,deer\n117251,automobile\n117252,bird\n117253,ship\n117254,cat\n117255,bird\n117256,dog\n117257,cat\n117258,deer\n117259,deer\n117260,horse\n117261,frog\n117262,truck\n117263,horse\n117264,truck\n117265,truck\n117266,ship\n117267,dog\n117268,dog\n117269,bird\n117270,cat\n117271,horse\n117272,horse\n117273,truck\n117274,dog\n117275,truck\n117276,frog\n117277,deer\n117278,automobile\n117279,deer\n117280,automobile\n117281,frog\n117282,horse\n117283,airplane\n117284,cat\n117285,horse\n117286,cat\n117287,dog\n117288,airplane\n117289,bird\n117290,deer\n117291,cat\n117292,bird\n117293,deer\n117294,truck\n117295,ship\n117296,horse\n117297,cat\n117298,airplane\n117299,ship\n117300,airplane\n117301,cat\n117302,bird\n117303,cat\n117304,automobile\n117305,frog\n117306,bird\n117307,cat\n117308,cat\n117309,automobile\n117310,automobile\n117311,automobile\n117312,bird\n117313,deer\n117314,deer\n117315,cat\n117316,frog\n117317,truck\n117318,dog\n117319,frog\n117320,horse\n117321,airplane\n117322,deer\n117323,deer\n117324,horse\n117325,automobile\n117326,truck\n117327,automobile\n117328,airplane\n117329,deer\n117330,truck\n117331,truck\n117332,horse\n117333,ship\n117334,automobile\n117335,frog\n117336,bird\n117337,ship\n117338,airplane\n117339,horse\n117340,truck\n117341,automobile\n117342,truck\n117343,deer\n117344,cat\n117345,ship\n117346,dog\n117347,deer\n117348,frog\n117349,deer\n117350,ship\n117351,cat\n117352,frog\n117353,truck\n117354,truck\n117355,ship\n117356,airplane\n117357,automobile\n117358,truck\n117359,deer\n117360,airplane\n117361,ship\n117362,airplane\n117363,ship\n117364,automobile\n117365,truck\n117366,truck\n117367,deer\n117368,bird\n117369,bird\n117370,truck\n117371,ship\n117372,truck\n117373,ship\n117374,automobile\n117375,airplane\n117376,cat\n117377,airplane\n117378,ship\n117379,frog\n117380,deer\n117381,truck\n117382,frog\n117383,dog\n117384,cat\n117385,automobile\n117386,truck\n117387,airplane\n117388,bird\n117389,automobile\n117390,horse\n117391,frog\n117392,airplane\n117393,automobile\n117394,bird\n117395,horse\n117396,bird\n117397,dog\n117398,truck\n117399,horse\n117400,frog\n117401,deer\n117402,airplane\n117403,automobile\n117404,cat\n117405,cat\n117406,deer\n117407,bird\n117408,deer\n117409,dog\n117410,deer\n117411,truck\n117412,bird\n117413,horse\n117414,bird\n117415,horse\n117416,deer\n117417,frog\n117418,dog\n117419,horse\n117420,cat\n117421,cat\n117422,frog\n117423,dog\n117424,ship\n117425,bird\n117426,frog\n117427,airplane\n117428,deer\n117429,automobile\n117430,bird\n117431,cat\n117432,ship\n117433,dog\n117434,automobile\n117435,bird\n117436,automobile\n117437,bird\n117438,frog\n117439,frog\n117440,dog\n117441,deer\n117442,truck\n117443,truck\n117444,automobile\n117445,bird\n117446,dog\n117447,bird\n117448,automobile\n117449,dog\n117450,truck\n117451,bird\n117452,horse\n117453,airplane\n117454,ship\n117455,deer\n117456,cat\n117457,dog\n117458,truck\n117459,frog\n117460,truck\n117461,automobile\n117462,deer\n117463,cat\n117464,automobile\n117465,deer\n117466,frog\n117467,airplane\n117468,bird\n117469,dog\n117470,truck\n117471,deer\n117472,dog\n117473,deer\n117474,bird\n117475,deer\n117476,airplane\n117477,truck\n117478,frog\n117479,dog\n117480,automobile\n117481,automobile\n117482,ship\n117483,deer\n117484,automobile\n117485,automobile\n117486,airplane\n117487,horse\n117488,truck\n117489,bird\n117490,horse\n117491,automobile\n117492,dog\n117493,cat\n117494,cat\n117495,horse\n117496,frog\n117497,airplane\n117498,automobile\n117499,frog\n117500,horse\n117501,cat\n117502,deer\n117503,cat\n117504,frog\n117505,frog\n117506,horse\n117507,ship\n117508,deer\n117509,cat\n117510,frog\n117511,horse\n117512,frog\n117513,bird\n117514,truck\n117515,frog\n117516,automobile\n117517,dog\n117518,dog\n117519,ship\n117520,frog\n117521,horse\n117522,airplane\n117523,truck\n117524,ship\n117525,deer\n117526,ship\n117527,frog\n117528,bird\n117529,bird\n117530,dog\n117531,truck\n117532,cat\n117533,horse\n117534,bird\n117535,frog\n117536,cat\n117537,dog\n117538,dog\n117539,dog\n117540,deer\n117541,horse\n117542,airplane\n117543,dog\n117544,cat\n117545,truck\n117546,truck\n117547,dog\n117548,deer\n117549,truck\n117550,dog\n117551,cat\n117552,cat\n117553,airplane\n117554,frog\n117555,bird\n117556,dog\n117557,truck\n117558,deer\n117559,deer\n117560,truck\n117561,horse\n117562,truck\n117563,horse\n117564,truck\n117565,airplane\n117566,cat\n117567,airplane\n117568,bird\n117569,automobile\n117570,truck\n117571,horse\n117572,deer\n117573,frog\n117574,bird\n117575,cat\n117576,frog\n117577,deer\n117578,deer\n117579,frog\n117580,truck\n117581,horse\n117582,ship\n117583,airplane\n117584,ship\n117585,frog\n117586,cat\n117587,truck\n117588,horse\n117589,ship\n117590,bird\n117591,cat\n117592,airplane\n117593,bird\n117594,deer\n117595,airplane\n117596,frog\n117597,ship\n117598,truck\n117599,deer\n117600,automobile\n117601,ship\n117602,deer\n117603,airplane\n117604,automobile\n117605,horse\n117606,automobile\n117607,automobile\n117608,airplane\n117609,dog\n117610,airplane\n117611,airplane\n117612,horse\n117613,dog\n117614,airplane\n117615,automobile\n117616,truck\n117617,automobile\n117618,automobile\n117619,truck\n117620,truck\n117621,cat\n117622,truck\n117623,truck\n117624,truck\n117625,deer\n117626,cat\n117627,deer\n117628,deer\n117629,truck\n117630,frog\n117631,cat\n117632,cat\n117633,deer\n117634,ship\n117635,airplane\n117636,bird\n117637,frog\n117638,horse\n117639,airplane\n117640,airplane\n117641,truck\n117642,ship\n117643,truck\n117644,frog\n117645,ship\n117646,automobile\n117647,frog\n117648,deer\n117649,cat\n117650,automobile\n117651,dog\n117652,truck\n117653,automobile\n117654,airplane\n117655,airplane\n117656,airplane\n117657,cat\n117658,automobile\n117659,frog\n117660,cat\n117661,dog\n117662,dog\n117663,dog\n117664,dog\n117665,horse\n117666,deer\n117667,deer\n117668,cat\n117669,truck\n117670,automobile\n117671,frog\n117672,ship\n117673,automobile\n117674,airplane\n117675,dog\n117676,deer\n117677,bird\n117678,airplane\n117679,ship\n117680,ship\n117681,automobile\n117682,horse\n117683,dog\n117684,deer\n117685,airplane\n117686,truck\n117687,deer\n117688,bird\n117689,bird\n117690,frog\n117691,deer\n117692,ship\n117693,deer\n117694,cat\n117695,truck\n117696,cat\n117697,deer\n117698,deer\n117699,frog\n117700,dog\n117701,deer\n117702,dog\n117703,cat\n117704,dog\n117705,deer\n117706,horse\n117707,frog\n117708,cat\n117709,truck\n117710,truck\n117711,bird\n117712,horse\n117713,frog\n117714,dog\n117715,horse\n117716,frog\n117717,horse\n117718,truck\n117719,deer\n117720,airplane\n117721,deer\n117722,automobile\n117723,bird\n117724,automobile\n117725,cat\n117726,deer\n117727,ship\n117728,cat\n117729,frog\n117730,airplane\n117731,ship\n117732,bird\n117733,cat\n117734,truck\n117735,bird\n117736,deer\n117737,cat\n117738,frog\n117739,airplane\n117740,truck\n117741,ship\n117742,airplane\n117743,dog\n117744,cat\n117745,cat\n117746,automobile\n117747,frog\n117748,automobile\n117749,deer\n117750,dog\n117751,ship\n117752,deer\n117753,cat\n117754,bird\n117755,frog\n117756,truck\n117757,frog\n117758,horse\n117759,deer\n117760,deer\n117761,ship\n117762,airplane\n117763,truck\n117764,deer\n117765,automobile\n117766,deer\n117767,frog\n117768,bird\n117769,deer\n117770,horse\n117771,dog\n117772,deer\n117773,dog\n117774,frog\n117775,truck\n117776,truck\n117777,cat\n117778,airplane\n117779,airplane\n117780,dog\n117781,dog\n117782,deer\n117783,horse\n117784,truck\n117785,horse\n117786,automobile\n117787,truck\n117788,cat\n117789,horse\n117790,frog\n117791,deer\n117792,ship\n117793,dog\n117794,automobile\n117795,dog\n117796,automobile\n117797,deer\n117798,dog\n117799,deer\n117800,frog\n117801,deer\n117802,frog\n117803,ship\n117804,deer\n117805,truck\n117806,bird\n117807,deer\n117808,horse\n117809,dog\n117810,dog\n117811,horse\n117812,horse\n117813,deer\n117814,cat\n117815,truck\n117816,frog\n117817,bird\n117818,frog\n117819,deer\n117820,horse\n117821,airplane\n117822,airplane\n117823,bird\n117824,bird\n117825,airplane\n117826,ship\n117827,automobile\n117828,bird\n117829,airplane\n117830,dog\n117831,bird\n117832,deer\n117833,deer\n117834,dog\n117835,dog\n117836,horse\n117837,truck\n117838,horse\n117839,deer\n117840,deer\n117841,truck\n117842,bird\n117843,ship\n117844,deer\n117845,deer\n117846,dog\n117847,automobile\n117848,truck\n117849,horse\n117850,airplane\n117851,bird\n117852,frog\n117853,frog\n117854,ship\n117855,ship\n117856,airplane\n117857,bird\n117858,automobile\n117859,cat\n117860,frog\n117861,airplane\n117862,bird\n117863,airplane\n117864,bird\n117865,cat\n117866,airplane\n117867,truck\n117868,cat\n117869,deer\n117870,airplane\n117871,airplane\n117872,cat\n117873,airplane\n117874,cat\n117875,horse\n117876,bird\n117877,truck\n117878,frog\n117879,cat\n117880,cat\n117881,frog\n117882,truck\n117883,cat\n117884,deer\n117885,dog\n117886,deer\n117887,frog\n117888,bird\n117889,cat\n117890,horse\n117891,deer\n117892,dog\n117893,dog\n117894,ship\n117895,ship\n117896,truck\n117897,deer\n117898,truck\n117899,cat\n117900,deer\n117901,bird\n117902,truck\n117903,dog\n117904,cat\n117905,dog\n117906,truck\n117907,bird\n117908,cat\n117909,horse\n117910,frog\n117911,frog\n117912,truck\n117913,frog\n117914,cat\n117915,horse\n117916,truck\n117917,dog\n117918,bird\n117919,frog\n117920,airplane\n117921,automobile\n117922,bird\n117923,automobile\n117924,truck\n117925,ship\n117926,deer\n117927,bird\n117928,frog\n117929,cat\n117930,truck\n117931,automobile\n117932,truck\n117933,airplane\n117934,horse\n117935,deer\n117936,ship\n117937,dog\n117938,cat\n117939,frog\n117940,truck\n117941,horse\n117942,automobile\n117943,frog\n117944,cat\n117945,bird\n117946,truck\n117947,cat\n117948,cat\n117949,frog\n117950,deer\n117951,deer\n117952,deer\n117953,deer\n117954,bird\n117955,automobile\n117956,truck\n117957,truck\n117958,automobile\n117959,cat\n117960,deer\n117961,ship\n117962,deer\n117963,cat\n117964,deer\n117965,dog\n117966,cat\n117967,deer\n117968,truck\n117969,automobile\n117970,airplane\n117971,dog\n117972,dog\n117973,bird\n117974,bird\n117975,frog\n117976,frog\n117977,cat\n117978,bird\n117979,cat\n117980,airplane\n117981,frog\n117982,cat\n117983,cat\n117984,deer\n117985,deer\n117986,horse\n117987,ship\n117988,dog\n117989,frog\n117990,airplane\n117991,cat\n117992,dog\n117993,cat\n117994,dog\n117995,ship\n117996,truck\n117997,truck\n117998,ship\n117999,cat\n118000,ship\n118001,truck\n118002,automobile\n118003,airplane\n118004,ship\n118005,deer\n118006,automobile\n118007,deer\n118008,deer\n118009,dog\n118010,airplane\n118011,airplane\n118012,cat\n118013,bird\n118014,automobile\n118015,dog\n118016,airplane\n118017,frog\n118018,truck\n118019,cat\n118020,ship\n118021,cat\n118022,automobile\n118023,dog\n118024,cat\n118025,dog\n118026,deer\n118027,cat\n118028,bird\n118029,dog\n118030,automobile\n118031,automobile\n118032,frog\n118033,dog\n118034,dog\n118035,truck\n118036,bird\n118037,bird\n118038,cat\n118039,ship\n118040,airplane\n118041,bird\n118042,deer\n118043,horse\n118044,horse\n118045,automobile\n118046,deer\n118047,cat\n118048,deer\n118049,dog\n118050,dog\n118051,cat\n118052,frog\n118053,ship\n118054,ship\n118055,deer\n118056,cat\n118057,cat\n118058,cat\n118059,deer\n118060,airplane\n118061,automobile\n118062,horse\n118063,frog\n118064,dog\n118065,bird\n118066,airplane\n118067,airplane\n118068,horse\n118069,dog\n118070,truck\n118071,bird\n118072,airplane\n118073,horse\n118074,deer\n118075,cat\n118076,truck\n118077,airplane\n118078,cat\n118079,frog\n118080,truck\n118081,cat\n118082,horse\n118083,cat\n118084,cat\n118085,airplane\n118086,cat\n118087,airplane\n118088,truck\n118089,truck\n118090,cat\n118091,cat\n118092,horse\n118093,deer\n118094,dog\n118095,frog\n118096,dog\n118097,horse\n118098,cat\n118099,horse\n118100,horse\n118101,deer\n118102,truck\n118103,horse\n118104,horse\n118105,truck\n118106,cat\n118107,deer\n118108,airplane\n118109,frog\n118110,bird\n118111,airplane\n118112,cat\n118113,ship\n118114,horse\n118115,automobile\n118116,horse\n118117,truck\n118118,dog\n118119,bird\n118120,airplane\n118121,horse\n118122,truck\n118123,bird\n118124,frog\n118125,ship\n118126,truck\n118127,horse\n118128,frog\n118129,bird\n118130,truck\n118131,ship\n118132,frog\n118133,horse\n118134,airplane\n118135,airplane\n118136,dog\n118137,cat\n118138,cat\n118139,cat\n118140,frog\n118141,dog\n118142,horse\n118143,deer\n118144,airplane\n118145,truck\n118146,dog\n118147,bird\n118148,bird\n118149,deer\n118150,cat\n118151,bird\n118152,horse\n118153,deer\n118154,cat\n118155,cat\n118156,bird\n118157,automobile\n118158,horse\n118159,frog\n118160,cat\n118161,deer\n118162,automobile\n118163,ship\n118164,frog\n118165,cat\n118166,truck\n118167,dog\n118168,cat\n118169,truck\n118170,horse\n118171,ship\n118172,airplane\n118173,horse\n118174,bird\n118175,airplane\n118176,horse\n118177,dog\n118178,deer\n118179,truck\n118180,frog\n118181,bird\n118182,truck\n118183,cat\n118184,airplane\n118185,deer\n118186,horse\n118187,deer\n118188,horse\n118189,deer\n118190,truck\n118191,cat\n118192,airplane\n118193,automobile\n118194,dog\n118195,airplane\n118196,horse\n118197,truck\n118198,cat\n118199,airplane\n118200,automobile\n118201,frog\n118202,cat\n118203,deer\n118204,dog\n118205,airplane\n118206,bird\n118207,dog\n118208,airplane\n118209,truck\n118210,airplane\n118211,bird\n118212,cat\n118213,deer\n118214,deer\n118215,dog\n118216,frog\n118217,bird\n118218,truck\n118219,truck\n118220,cat\n118221,dog\n118222,frog\n118223,bird\n118224,cat\n118225,automobile\n118226,deer\n118227,deer\n118228,horse\n118229,airplane\n118230,frog\n118231,deer\n118232,airplane\n118233,horse\n118234,cat\n118235,deer\n118236,cat\n118237,bird\n118238,frog\n118239,horse\n118240,horse\n118241,truck\n118242,horse\n118243,horse\n118244,cat\n118245,automobile\n118246,frog\n118247,horse\n118248,cat\n118249,automobile\n118250,cat\n118251,frog\n118252,truck\n118253,deer\n118254,airplane\n118255,dog\n118256,airplane\n118257,horse\n118258,ship\n118259,horse\n118260,ship\n118261,ship\n118262,frog\n118263,automobile\n118264,cat\n118265,ship\n118266,ship\n118267,deer\n118268,truck\n118269,cat\n118270,deer\n118271,cat\n118272,dog\n118273,frog\n118274,horse\n118275,deer\n118276,frog\n118277,truck\n118278,truck\n118279,frog\n118280,cat\n118281,truck\n118282,airplane\n118283,deer\n118284,truck\n118285,bird\n118286,dog\n118287,dog\n118288,airplane\n118289,airplane\n118290,ship\n118291,frog\n118292,cat\n118293,bird\n118294,automobile\n118295,horse\n118296,frog\n118297,deer\n118298,dog\n118299,dog\n118300,dog\n118301,airplane\n118302,truck\n118303,deer\n118304,frog\n118305,deer\n118306,bird\n118307,deer\n118308,automobile\n118309,bird\n118310,dog\n118311,dog\n118312,cat\n118313,deer\n118314,frog\n118315,automobile\n118316,ship\n118317,ship\n118318,airplane\n118319,automobile\n118320,dog\n118321,truck\n118322,frog\n118323,ship\n118324,truck\n118325,airplane\n118326,frog\n118327,bird\n118328,dog\n118329,deer\n118330,cat\n118331,dog\n118332,cat\n118333,airplane\n118334,deer\n118335,automobile\n118336,frog\n118337,deer\n118338,cat\n118339,deer\n118340,horse\n118341,cat\n118342,horse\n118343,airplane\n118344,bird\n118345,dog\n118346,frog\n118347,frog\n118348,frog\n118349,frog\n118350,truck\n118351,deer\n118352,frog\n118353,ship\n118354,dog\n118355,bird\n118356,bird\n118357,bird\n118358,frog\n118359,deer\n118360,ship\n118361,automobile\n118362,deer\n118363,frog\n118364,deer\n118365,bird\n118366,airplane\n118367,bird\n118368,frog\n118369,horse\n118370,truck\n118371,airplane\n118372,cat\n118373,deer\n118374,horse\n118375,cat\n118376,frog\n118377,airplane\n118378,bird\n118379,airplane\n118380,cat\n118381,airplane\n118382,dog\n118383,automobile\n118384,truck\n118385,cat\n118386,frog\n118387,cat\n118388,frog\n118389,bird\n118390,ship\n118391,ship\n118392,cat\n118393,cat\n118394,cat\n118395,horse\n118396,cat\n118397,automobile\n118398,horse\n118399,cat\n118400,airplane\n118401,ship\n118402,automobile\n118403,cat\n118404,deer\n118405,automobile\n118406,dog\n118407,dog\n118408,automobile\n118409,horse\n118410,frog\n118411,frog\n118412,deer\n118413,bird\n118414,bird\n118415,dog\n118416,ship\n118417,horse\n118418,horse\n118419,frog\n118420,bird\n118421,airplane\n118422,horse\n118423,airplane\n118424,automobile\n118425,ship\n118426,cat\n118427,ship\n118428,automobile\n118429,ship\n118430,frog\n118431,ship\n118432,ship\n118433,bird\n118434,ship\n118435,dog\n118436,frog\n118437,truck\n118438,bird\n118439,cat\n118440,deer\n118441,horse\n118442,truck\n118443,ship\n118444,airplane\n118445,truck\n118446,truck\n118447,bird\n118448,truck\n118449,cat\n118450,airplane\n118451,dog\n118452,truck\n118453,frog\n118454,frog\n118455,truck\n118456,deer\n118457,frog\n118458,airplane\n118459,truck\n118460,ship\n118461,ship\n118462,dog\n118463,cat\n118464,ship\n118465,automobile\n118466,deer\n118467,frog\n118468,airplane\n118469,frog\n118470,horse\n118471,ship\n118472,frog\n118473,airplane\n118474,deer\n118475,ship\n118476,truck\n118477,deer\n118478,deer\n118479,truck\n118480,cat\n118481,ship\n118482,automobile\n118483,ship\n118484,frog\n118485,bird\n118486,horse\n118487,airplane\n118488,bird\n118489,airplane\n118490,bird\n118491,frog\n118492,ship\n118493,deer\n118494,ship\n118495,bird\n118496,airplane\n118497,automobile\n118498,dog\n118499,ship\n118500,truck\n118501,cat\n118502,dog\n118503,cat\n118504,truck\n118505,automobile\n118506,ship\n118507,cat\n118508,horse\n118509,dog\n118510,dog\n118511,deer\n118512,truck\n118513,cat\n118514,cat\n118515,ship\n118516,dog\n118517,cat\n118518,dog\n118519,truck\n118520,frog\n118521,frog\n118522,deer\n118523,truck\n118524,horse\n118525,deer\n118526,ship\n118527,deer\n118528,horse\n118529,airplane\n118530,truck\n118531,truck\n118532,airplane\n118533,airplane\n118534,horse\n118535,horse\n118536,cat\n118537,automobile\n118538,cat\n118539,dog\n118540,airplane\n118541,truck\n118542,bird\n118543,truck\n118544,bird\n118545,bird\n118546,cat\n118547,deer\n118548,cat\n118549,horse\n118550,truck\n118551,airplane\n118552,cat\n118553,horse\n118554,bird\n118555,truck\n118556,airplane\n118557,truck\n118558,truck\n118559,truck\n118560,dog\n118561,ship\n118562,automobile\n118563,truck\n118564,cat\n118565,dog\n118566,frog\n118567,bird\n118568,bird\n118569,bird\n118570,cat\n118571,deer\n118572,truck\n118573,automobile\n118574,airplane\n118575,horse\n118576,deer\n118577,automobile\n118578,horse\n118579,automobile\n118580,frog\n118581,dog\n118582,ship\n118583,cat\n118584,dog\n118585,dog\n118586,truck\n118587,dog\n118588,truck\n118589,deer\n118590,horse\n118591,horse\n118592,truck\n118593,dog\n118594,airplane\n118595,ship\n118596,deer\n118597,automobile\n118598,frog\n118599,horse\n118600,cat\n118601,dog\n118602,airplane\n118603,cat\n118604,frog\n118605,horse\n118606,frog\n118607,truck\n118608,dog\n118609,dog\n118610,dog\n118611,truck\n118612,dog\n118613,cat\n118614,dog\n118615,cat\n118616,frog\n118617,truck\n118618,frog\n118619,dog\n118620,frog\n118621,dog\n118622,automobile\n118623,cat\n118624,cat\n118625,deer\n118626,truck\n118627,horse\n118628,deer\n118629,cat\n118630,cat\n118631,bird\n118632,deer\n118633,horse\n118634,truck\n118635,airplane\n118636,truck\n118637,dog\n118638,deer\n118639,airplane\n118640,ship\n118641,airplane\n118642,frog\n118643,automobile\n118644,bird\n118645,airplane\n118646,bird\n118647,truck\n118648,dog\n118649,dog\n118650,ship\n118651,frog\n118652,automobile\n118653,cat\n118654,horse\n118655,dog\n118656,deer\n118657,cat\n118658,truck\n118659,airplane\n118660,bird\n118661,bird\n118662,deer\n118663,ship\n118664,cat\n118665,airplane\n118666,deer\n118667,horse\n118668,dog\n118669,horse\n118670,horse\n118671,deer\n118672,cat\n118673,airplane\n118674,dog\n118675,ship\n118676,automobile\n118677,cat\n118678,ship\n118679,dog\n118680,frog\n118681,bird\n118682,ship\n118683,automobile\n118684,horse\n118685,automobile\n118686,dog\n118687,truck\n118688,cat\n118689,airplane\n118690,horse\n118691,bird\n118692,bird\n118693,dog\n118694,dog\n118695,bird\n118696,truck\n118697,airplane\n118698,ship\n118699,cat\n118700,deer\n118701,truck\n118702,automobile\n118703,ship\n118704,horse\n118705,deer\n118706,bird\n118707,bird\n118708,truck\n118709,deer\n118710,deer\n118711,bird\n118712,cat\n118713,bird\n118714,deer\n118715,airplane\n118716,airplane\n118717,airplane\n118718,airplane\n118719,deer\n118720,cat\n118721,truck\n118722,horse\n118723,truck\n118724,deer\n118725,bird\n118726,truck\n118727,airplane\n118728,dog\n118729,deer\n118730,truck\n118731,horse\n118732,cat\n118733,horse\n118734,ship\n118735,automobile\n118736,ship\n118737,automobile\n118738,frog\n118739,frog\n118740,frog\n118741,cat\n118742,cat\n118743,horse\n118744,horse\n118745,dog\n118746,frog\n118747,dog\n118748,truck\n118749,ship\n118750,frog\n118751,airplane\n118752,ship\n118753,deer\n118754,bird\n118755,ship\n118756,ship\n118757,horse\n118758,horse\n118759,deer\n118760,horse\n118761,airplane\n118762,cat\n118763,cat\n118764,ship\n118765,truck\n118766,horse\n118767,bird\n118768,dog\n118769,automobile\n118770,bird\n118771,airplane\n118772,truck\n118773,frog\n118774,frog\n118775,dog\n118776,automobile\n118777,airplane\n118778,deer\n118779,automobile\n118780,automobile\n118781,automobile\n118782,automobile\n118783,bird\n118784,airplane\n118785,frog\n118786,airplane\n118787,cat\n118788,horse\n118789,ship\n118790,airplane\n118791,horse\n118792,ship\n118793,airplane\n118794,horse\n118795,airplane\n118796,truck\n118797,horse\n118798,cat\n118799,automobile\n118800,dog\n118801,cat\n118802,dog\n118803,horse\n118804,automobile\n118805,cat\n118806,cat\n118807,automobile\n118808,cat\n118809,airplane\n118810,frog\n118811,truck\n118812,automobile\n118813,cat\n118814,airplane\n118815,truck\n118816,ship\n118817,cat\n118818,frog\n118819,frog\n118820,cat\n118821,frog\n118822,deer\n118823,horse\n118824,horse\n118825,cat\n118826,frog\n118827,ship\n118828,frog\n118829,airplane\n118830,airplane\n118831,deer\n118832,deer\n118833,frog\n118834,deer\n118835,airplane\n118836,deer\n118837,dog\n118838,ship\n118839,deer\n118840,deer\n118841,automobile\n118842,truck\n118843,dog\n118844,deer\n118845,frog\n118846,automobile\n118847,truck\n118848,cat\n118849,dog\n118850,airplane\n118851,truck\n118852,ship\n118853,automobile\n118854,deer\n118855,dog\n118856,frog\n118857,deer\n118858,automobile\n118859,truck\n118860,bird\n118861,bird\n118862,horse\n118863,frog\n118864,frog\n118865,frog\n118866,truck\n118867,cat\n118868,cat\n118869,bird\n118870,horse\n118871,dog\n118872,deer\n118873,truck\n118874,horse\n118875,frog\n118876,bird\n118877,horse\n118878,automobile\n118879,deer\n118880,deer\n118881,truck\n118882,cat\n118883,cat\n118884,cat\n118885,truck\n118886,airplane\n118887,frog\n118888,bird\n118889,automobile\n118890,deer\n118891,bird\n118892,horse\n118893,truck\n118894,deer\n118895,dog\n118896,dog\n118897,dog\n118898,deer\n118899,ship\n118900,cat\n118901,frog\n118902,frog\n118903,deer\n118904,truck\n118905,cat\n118906,automobile\n118907,deer\n118908,cat\n118909,frog\n118910,ship\n118911,truck\n118912,ship\n118913,ship\n118914,airplane\n118915,truck\n118916,ship\n118917,airplane\n118918,dog\n118919,deer\n118920,truck\n118921,cat\n118922,truck\n118923,automobile\n118924,bird\n118925,truck\n118926,deer\n118927,cat\n118928,horse\n118929,frog\n118930,frog\n118931,airplane\n118932,truck\n118933,truck\n118934,cat\n118935,truck\n118936,truck\n118937,dog\n118938,bird\n118939,truck\n118940,cat\n118941,horse\n118942,automobile\n118943,truck\n118944,ship\n118945,ship\n118946,dog\n118947,dog\n118948,horse\n118949,airplane\n118950,ship\n118951,cat\n118952,truck\n118953,horse\n118954,horse\n118955,frog\n118956,ship\n118957,cat\n118958,horse\n118959,frog\n118960,bird\n118961,bird\n118962,cat\n118963,horse\n118964,dog\n118965,automobile\n118966,ship\n118967,frog\n118968,deer\n118969,automobile\n118970,ship\n118971,horse\n118972,deer\n118973,ship\n118974,airplane\n118975,truck\n118976,horse\n118977,frog\n118978,dog\n118979,frog\n118980,deer\n118981,deer\n118982,ship\n118983,bird\n118984,deer\n118985,dog\n118986,bird\n118987,frog\n118988,deer\n118989,frog\n118990,truck\n118991,cat\n118992,truck\n118993,horse\n118994,frog\n118995,deer\n118996,horse\n118997,truck\n118998,frog\n118999,dog\n119000,airplane\n119001,deer\n119002,frog\n119003,cat\n119004,horse\n119005,truck\n119006,bird\n119007,ship\n119008,automobile\n119009,automobile\n119010,dog\n119011,cat\n119012,cat\n119013,ship\n119014,automobile\n119015,truck\n119016,airplane\n119017,dog\n119018,cat\n119019,deer\n119020,cat\n119021,truck\n119022,bird\n119023,frog\n119024,airplane\n119025,automobile\n119026,truck\n119027,automobile\n119028,truck\n119029,deer\n119030,truck\n119031,automobile\n119032,automobile\n119033,truck\n119034,frog\n119035,dog\n119036,frog\n119037,ship\n119038,cat\n119039,dog\n119040,dog\n119041,bird\n119042,horse\n119043,horse\n119044,truck\n119045,bird\n119046,cat\n119047,truck\n119048,frog\n119049,truck\n119050,truck\n119051,truck\n119052,truck\n119053,truck\n119054,cat\n119055,deer\n119056,deer\n119057,deer\n119058,horse\n119059,airplane\n119060,horse\n119061,ship\n119062,cat\n119063,cat\n119064,automobile\n119065,automobile\n119066,dog\n119067,cat\n119068,airplane\n119069,frog\n119070,frog\n119071,cat\n119072,bird\n119073,ship\n119074,automobile\n119075,ship\n119076,dog\n119077,deer\n119078,truck\n119079,cat\n119080,horse\n119081,horse\n119082,automobile\n119083,frog\n119084,frog\n119085,ship\n119086,deer\n119087,airplane\n119088,frog\n119089,automobile\n119090,horse\n119091,airplane\n119092,truck\n119093,horse\n119094,deer\n119095,frog\n119096,truck\n119097,airplane\n119098,horse\n119099,deer\n119100,horse\n119101,frog\n119102,automobile\n119103,ship\n119104,automobile\n119105,automobile\n119106,airplane\n119107,truck\n119108,automobile\n119109,deer\n119110,frog\n119111,frog\n119112,frog\n119113,horse\n119114,airplane\n119115,horse\n119116,automobile\n119117,dog\n119118,dog\n119119,deer\n119120,frog\n119121,bird\n119122,dog\n119123,automobile\n119124,ship\n119125,deer\n119126,deer\n119127,deer\n119128,automobile\n119129,airplane\n119130,airplane\n119131,ship\n119132,airplane\n119133,cat\n119134,dog\n119135,cat\n119136,frog\n119137,frog\n119138,deer\n119139,horse\n119140,frog\n119141,dog\n119142,automobile\n119143,automobile\n119144,airplane\n119145,cat\n119146,cat\n119147,airplane\n119148,bird\n119149,frog\n119150,bird\n119151,dog\n119152,bird\n119153,deer\n119154,horse\n119155,horse\n119156,frog\n119157,dog\n119158,cat\n119159,ship\n119160,cat\n119161,bird\n119162,bird\n119163,deer\n119164,automobile\n119165,frog\n119166,automobile\n119167,deer\n119168,airplane\n119169,dog\n119170,truck\n119171,horse\n119172,cat\n119173,bird\n119174,truck\n119175,deer\n119176,bird\n119177,bird\n119178,deer\n119179,frog\n119180,deer\n119181,dog\n119182,dog\n119183,dog\n119184,deer\n119185,airplane\n119186,deer\n119187,deer\n119188,deer\n119189,truck\n119190,frog\n119191,airplane\n119192,truck\n119193,horse\n119194,cat\n119195,deer\n119196,ship\n119197,horse\n119198,cat\n119199,ship\n119200,frog\n119201,frog\n119202,deer\n119203,bird\n119204,dog\n119205,frog\n119206,frog\n119207,airplane\n119208,frog\n119209,truck\n119210,dog\n119211,dog\n119212,automobile\n119213,airplane\n119214,deer\n119215,horse\n119216,truck\n119217,bird\n119218,airplane\n119219,airplane\n119220,dog\n119221,horse\n119222,dog\n119223,airplane\n119224,truck\n119225,deer\n119226,bird\n119227,deer\n119228,dog\n119229,airplane\n119230,truck\n119231,horse\n119232,deer\n119233,truck\n119234,truck\n119235,airplane\n119236,bird\n119237,frog\n119238,deer\n119239,ship\n119240,cat\n119241,deer\n119242,deer\n119243,deer\n119244,truck\n119245,truck\n119246,airplane\n119247,bird\n119248,dog\n119249,deer\n119250,ship\n119251,ship\n119252,truck\n119253,deer\n119254,bird\n119255,airplane\n119256,airplane\n119257,deer\n119258,deer\n119259,airplane\n119260,dog\n119261,ship\n119262,dog\n119263,ship\n119264,automobile\n119265,truck\n119266,frog\n119267,dog\n119268,ship\n119269,automobile\n119270,deer\n119271,ship\n119272,frog\n119273,horse\n119274,dog\n119275,truck\n119276,deer\n119277,ship\n119278,cat\n119279,deer\n119280,cat\n119281,bird\n119282,bird\n119283,ship\n119284,cat\n119285,truck\n119286,deer\n119287,ship\n119288,deer\n119289,deer\n119290,cat\n119291,ship\n119292,airplane\n119293,horse\n119294,truck\n119295,airplane\n119296,airplane\n119297,horse\n119298,dog\n119299,horse\n119300,frog\n119301,dog\n119302,frog\n119303,deer\n119304,airplane\n119305,cat\n119306,dog\n119307,truck\n119308,ship\n119309,cat\n119310,automobile\n119311,deer\n119312,dog\n119313,dog\n119314,dog\n119315,truck\n119316,horse\n119317,automobile\n119318,deer\n119319,truck\n119320,bird\n119321,frog\n119322,bird\n119323,deer\n119324,truck\n119325,frog\n119326,dog\n119327,airplane\n119328,truck\n119329,dog\n119330,dog\n119331,frog\n119332,frog\n119333,deer\n119334,truck\n119335,automobile\n119336,cat\n119337,deer\n119338,truck\n119339,dog\n119340,ship\n119341,automobile\n119342,automobile\n119343,horse\n119344,airplane\n119345,deer\n119346,deer\n119347,cat\n119348,horse\n119349,dog\n119350,cat\n119351,deer\n119352,cat\n119353,deer\n119354,dog\n119355,horse\n119356,automobile\n119357,deer\n119358,ship\n119359,airplane\n119360,deer\n119361,deer\n119362,bird\n119363,deer\n119364,bird\n119365,dog\n119366,airplane\n119367,truck\n119368,dog\n119369,automobile\n119370,airplane\n119371,cat\n119372,bird\n119373,dog\n119374,cat\n119375,truck\n119376,ship\n119377,deer\n119378,truck\n119379,cat\n119380,bird\n119381,deer\n119382,bird\n119383,dog\n119384,frog\n119385,deer\n119386,airplane\n119387,deer\n119388,horse\n119389,frog\n119390,deer\n119391,cat\n119392,dog\n119393,truck\n119394,airplane\n119395,deer\n119396,cat\n119397,deer\n119398,automobile\n119399,truck\n119400,bird\n119401,bird\n119402,cat\n119403,horse\n119404,airplane\n119405,truck\n119406,dog\n119407,truck\n119408,airplane\n119409,automobile\n119410,dog\n119411,dog\n119412,horse\n119413,cat\n119414,horse\n119415,truck\n119416,truck\n119417,airplane\n119418,deer\n119419,horse\n119420,horse\n119421,horse\n119422,bird\n119423,truck\n119424,frog\n119425,airplane\n119426,ship\n119427,horse\n119428,bird\n119429,deer\n119430,horse\n119431,cat\n119432,horse\n119433,truck\n119434,horse\n119435,automobile\n119436,cat\n119437,deer\n119438,truck\n119439,automobile\n119440,horse\n119441,ship\n119442,frog\n119443,horse\n119444,bird\n119445,horse\n119446,truck\n119447,cat\n119448,bird\n119449,cat\n119450,automobile\n119451,horse\n119452,horse\n119453,cat\n119454,airplane\n119455,ship\n119456,dog\n119457,horse\n119458,dog\n119459,bird\n119460,cat\n119461,airplane\n119462,bird\n119463,automobile\n119464,frog\n119465,truck\n119466,airplane\n119467,cat\n119468,cat\n119469,truck\n119470,airplane\n119471,cat\n119472,horse\n119473,ship\n119474,automobile\n119475,bird\n119476,automobile\n119477,frog\n119478,frog\n119479,frog\n119480,frog\n119481,bird\n119482,frog\n119483,frog\n119484,airplane\n119485,dog\n119486,truck\n119487,horse\n119488,dog\n119489,deer\n119490,ship\n119491,horse\n119492,automobile\n119493,ship\n119494,frog\n119495,horse\n119496,dog\n119497,cat\n119498,dog\n119499,automobile\n119500,horse\n119501,frog\n119502,horse\n119503,truck\n119504,dog\n119505,truck\n119506,cat\n119507,truck\n119508,truck\n119509,bird\n119510,ship\n119511,truck\n119512,bird\n119513,cat\n119514,ship\n119515,cat\n119516,truck\n119517,airplane\n119518,bird\n119519,horse\n119520,truck\n119521,horse\n119522,bird\n119523,bird\n119524,frog\n119525,airplane\n119526,truck\n119527,horse\n119528,bird\n119529,frog\n119530,cat\n119531,ship\n119532,bird\n119533,ship\n119534,cat\n119535,dog\n119536,cat\n119537,dog\n119538,horse\n119539,truck\n119540,cat\n119541,horse\n119542,cat\n119543,horse\n119544,automobile\n119545,cat\n119546,horse\n119547,bird\n119548,airplane\n119549,frog\n119550,cat\n119551,horse\n119552,truck\n119553,horse\n119554,horse\n119555,horse\n119556,airplane\n119557,dog\n119558,ship\n119559,horse\n119560,cat\n119561,frog\n119562,truck\n119563,deer\n119564,deer\n119565,frog\n119566,frog\n119567,dog\n119568,cat\n119569,airplane\n119570,automobile\n119571,airplane\n119572,frog\n119573,frog\n119574,automobile\n119575,cat\n119576,frog\n119577,frog\n119578,automobile\n119579,deer\n119580,frog\n119581,frog\n119582,bird\n119583,truck\n119584,dog\n119585,frog\n119586,cat\n119587,airplane\n119588,dog\n119589,dog\n119590,bird\n119591,dog\n119592,automobile\n119593,horse\n119594,airplane\n119595,ship\n119596,deer\n119597,deer\n119598,horse\n119599,truck\n119600,ship\n119601,frog\n119602,bird\n119603,horse\n119604,cat\n119605,cat\n119606,horse\n119607,airplane\n119608,cat\n119609,airplane\n119610,dog\n119611,ship\n119612,cat\n119613,airplane\n119614,ship\n119615,cat\n119616,deer\n119617,frog\n119618,cat\n119619,truck\n119620,truck\n119621,dog\n119622,airplane\n119623,ship\n119624,ship\n119625,dog\n119626,dog\n119627,deer\n119628,horse\n119629,frog\n119630,deer\n119631,frog\n119632,deer\n119633,bird\n119634,deer\n119635,truck\n119636,frog\n119637,cat\n119638,truck\n119639,horse\n119640,truck\n119641,bird\n119642,truck\n119643,horse\n119644,dog\n119645,automobile\n119646,automobile\n119647,horse\n119648,automobile\n119649,dog\n119650,frog\n119651,dog\n119652,cat\n119653,frog\n119654,dog\n119655,airplane\n119656,frog\n119657,truck\n119658,horse\n119659,frog\n119660,automobile\n119661,automobile\n119662,deer\n119663,horse\n119664,cat\n119665,horse\n119666,cat\n119667,truck\n119668,dog\n119669,deer\n119670,airplane\n119671,ship\n119672,airplane\n119673,airplane\n119674,cat\n119675,deer\n119676,frog\n119677,bird\n119678,automobile\n119679,deer\n119680,automobile\n119681,bird\n119682,dog\n119683,frog\n119684,bird\n119685,horse\n119686,dog\n119687,truck\n119688,cat\n119689,frog\n119690,frog\n119691,truck\n119692,dog\n119693,deer\n119694,frog\n119695,ship\n119696,dog\n119697,dog\n119698,deer\n119699,truck\n119700,truck\n119701,cat\n119702,airplane\n119703,dog\n119704,bird\n119705,ship\n119706,horse\n119707,horse\n119708,dog\n119709,ship\n119710,airplane\n119711,automobile\n119712,bird\n119713,dog\n119714,ship\n119715,cat\n119716,frog\n119717,deer\n119718,frog\n119719,bird\n119720,frog\n119721,dog\n119722,frog\n119723,horse\n119724,automobile\n119725,dog\n119726,dog\n119727,frog\n119728,frog\n119729,ship\n119730,frog\n119731,cat\n119732,dog\n119733,bird\n119734,horse\n119735,deer\n119736,deer\n119737,airplane\n119738,cat\n119739,dog\n119740,truck\n119741,cat\n119742,truck\n119743,ship\n119744,airplane\n119745,truck\n119746,truck\n119747,frog\n119748,deer\n119749,automobile\n119750,bird\n119751,deer\n119752,cat\n119753,bird\n119754,bird\n119755,truck\n119756,dog\n119757,deer\n119758,airplane\n119759,frog\n119760,frog\n119761,truck\n119762,deer\n119763,truck\n119764,deer\n119765,frog\n119766,frog\n119767,cat\n119768,airplane\n119769,cat\n119770,truck\n119771,bird\n119772,horse\n119773,frog\n119774,airplane\n119775,airplane\n119776,horse\n119777,frog\n119778,airplane\n119779,bird\n119780,ship\n119781,frog\n119782,truck\n119783,dog\n119784,frog\n119785,bird\n119786,dog\n119787,ship\n119788,frog\n119789,deer\n119790,truck\n119791,dog\n119792,dog\n119793,truck\n119794,automobile\n119795,automobile\n119796,airplane\n119797,automobile\n119798,automobile\n119799,airplane\n119800,dog\n119801,dog\n119802,deer\n119803,bird\n119804,cat\n119805,cat\n119806,bird\n119807,ship\n119808,ship\n119809,frog\n119810,ship\n119811,cat\n119812,ship\n119813,bird\n119814,deer\n119815,cat\n119816,horse\n119817,automobile\n119818,cat\n119819,horse\n119820,bird\n119821,deer\n119822,cat\n119823,dog\n119824,airplane\n119825,horse\n119826,deer\n119827,airplane\n119828,airplane\n119829,frog\n119830,horse\n119831,horse\n119832,bird\n119833,automobile\n119834,dog\n119835,ship\n119836,automobile\n119837,dog\n119838,deer\n119839,dog\n119840,horse\n119841,ship\n119842,frog\n119843,dog\n119844,truck\n119845,airplane\n119846,horse\n119847,cat\n119848,bird\n119849,deer\n119850,frog\n119851,bird\n119852,deer\n119853,airplane\n119854,bird\n119855,ship\n119856,horse\n119857,horse\n119858,deer\n119859,bird\n119860,frog\n119861,bird\n119862,frog\n119863,horse\n119864,cat\n119865,frog\n119866,airplane\n119867,deer\n119868,deer\n119869,bird\n119870,frog\n119871,horse\n119872,frog\n119873,dog\n119874,dog\n119875,ship\n119876,deer\n119877,truck\n119878,deer\n119879,automobile\n119880,truck\n119881,deer\n119882,airplane\n119883,bird\n119884,dog\n119885,truck\n119886,horse\n119887,deer\n119888,frog\n119889,deer\n119890,dog\n119891,horse\n119892,airplane\n119893,cat\n119894,ship\n119895,bird\n119896,bird\n119897,ship\n119898,deer\n119899,dog\n119900,ship\n119901,deer\n119902,airplane\n119903,dog\n119904,cat\n119905,truck\n119906,dog\n119907,dog\n119908,frog\n119909,ship\n119910,ship\n119911,frog\n119912,truck\n119913,horse\n119914,horse\n119915,deer\n119916,deer\n119917,dog\n119918,ship\n119919,deer\n119920,frog\n119921,deer\n119922,cat\n119923,horse\n119924,horse\n119925,cat\n119926,frog\n119927,truck\n119928,dog\n119929,cat\n119930,cat\n119931,horse\n119932,cat\n119933,cat\n119934,truck\n119935,deer\n119936,airplane\n119937,deer\n119938,bird\n119939,ship\n119940,truck\n119941,cat\n119942,deer\n119943,cat\n119944,dog\n119945,airplane\n119946,dog\n119947,truck\n119948,frog\n119949,frog\n119950,airplane\n119951,automobile\n119952,airplane\n119953,cat\n119954,automobile\n119955,frog\n119956,frog\n119957,ship\n119958,dog\n119959,deer\n119960,automobile\n119961,dog\n119962,dog\n119963,airplane\n119964,ship\n119965,airplane\n119966,truck\n119967,frog\n119968,airplane\n119969,deer\n119970,cat\n119971,automobile\n119972,dog\n119973,frog\n119974,automobile\n119975,truck\n119976,dog\n119977,frog\n119978,cat\n119979,bird\n119980,frog\n119981,ship\n119982,cat\n119983,truck\n119984,truck\n119985,horse\n119986,cat\n119987,cat\n119988,frog\n119989,airplane\n119990,dog\n119991,bird\n119992,deer\n119993,bird\n119994,dog\n119995,ship\n119996,deer\n119997,deer\n119998,bird\n119999,truck\n120000,deer\n120001,automobile\n120002,automobile\n120003,cat\n120004,truck\n120005,bird\n120006,cat\n120007,bird\n120008,truck\n120009,deer\n120010,deer\n120011,cat\n120012,dog\n120013,automobile\n120014,airplane\n120015,airplane\n120016,horse\n120017,truck\n120018,truck\n120019,frog\n120020,cat\n120021,bird\n120022,horse\n120023,airplane\n120024,dog\n120025,deer\n120026,automobile\n120027,frog\n120028,frog\n120029,truck\n120030,truck\n120031,airplane\n120032,deer\n120033,automobile\n120034,cat\n120035,truck\n120036,cat\n120037,horse\n120038,bird\n120039,deer\n120040,truck\n120041,frog\n120042,dog\n120043,cat\n120044,deer\n120045,ship\n120046,cat\n120047,airplane\n120048,cat\n120049,automobile\n120050,dog\n120051,airplane\n120052,bird\n120053,dog\n120054,truck\n120055,dog\n120056,deer\n120057,truck\n120058,frog\n120059,truck\n120060,cat\n120061,deer\n120062,airplane\n120063,deer\n120064,truck\n120065,automobile\n120066,frog\n120067,dog\n120068,deer\n120069,ship\n120070,dog\n120071,airplane\n120072,deer\n120073,cat\n120074,airplane\n120075,deer\n120076,dog\n120077,truck\n120078,horse\n120079,frog\n120080,horse\n120081,bird\n120082,cat\n120083,airplane\n120084,dog\n120085,cat\n120086,cat\n120087,dog\n120088,deer\n120089,ship\n120090,ship\n120091,frog\n120092,frog\n120093,frog\n120094,truck\n120095,bird\n120096,frog\n120097,cat\n120098,truck\n120099,frog\n120100,truck\n120101,automobile\n120102,bird\n120103,ship\n120104,bird\n120105,airplane\n120106,deer\n120107,frog\n120108,truck\n120109,deer\n120110,deer\n120111,cat\n120112,dog\n120113,bird\n120114,horse\n120115,deer\n120116,frog\n120117,airplane\n120118,cat\n120119,automobile\n120120,deer\n120121,automobile\n120122,ship\n120123,deer\n120124,bird\n120125,horse\n120126,deer\n120127,truck\n120128,dog\n120129,bird\n120130,airplane\n120131,dog\n120132,deer\n120133,horse\n120134,cat\n120135,frog\n120136,horse\n120137,cat\n120138,frog\n120139,deer\n120140,frog\n120141,deer\n120142,frog\n120143,airplane\n120144,airplane\n120145,cat\n120146,deer\n120147,ship\n120148,automobile\n120149,cat\n120150,frog\n120151,horse\n120152,ship\n120153,cat\n120154,horse\n120155,deer\n120156,cat\n120157,cat\n120158,frog\n120159,deer\n120160,dog\n120161,deer\n120162,bird\n120163,horse\n120164,frog\n120165,deer\n120166,bird\n120167,automobile\n120168,deer\n120169,cat\n120170,dog\n120171,cat\n120172,cat\n120173,truck\n120174,truck\n120175,deer\n120176,frog\n120177,dog\n120178,automobile\n120179,truck\n120180,automobile\n120181,cat\n120182,dog\n120183,horse\n120184,cat\n120185,dog\n120186,automobile\n120187,dog\n120188,dog\n120189,frog\n120190,automobile\n120191,horse\n120192,truck\n120193,bird\n120194,frog\n120195,deer\n120196,bird\n120197,airplane\n120198,frog\n120199,horse\n120200,automobile\n120201,bird\n120202,automobile\n120203,horse\n120204,automobile\n120205,truck\n120206,dog\n120207,bird\n120208,frog\n120209,cat\n120210,deer\n120211,truck\n120212,frog\n120213,frog\n120214,dog\n120215,deer\n120216,deer\n120217,airplane\n120218,dog\n120219,bird\n120220,truck\n120221,frog\n120222,ship\n120223,truck\n120224,frog\n120225,airplane\n120226,airplane\n120227,automobile\n120228,cat\n120229,horse\n120230,bird\n120231,truck\n120232,bird\n120233,automobile\n120234,deer\n120235,cat\n120236,frog\n120237,cat\n120238,truck\n120239,ship\n120240,deer\n120241,deer\n120242,dog\n120243,horse\n120244,ship\n120245,airplane\n120246,cat\n120247,frog\n120248,frog\n120249,airplane\n120250,ship\n120251,airplane\n120252,cat\n120253,horse\n120254,bird\n120255,cat\n120256,deer\n120257,cat\n120258,horse\n120259,truck\n120260,dog\n120261,automobile\n120262,deer\n120263,bird\n120264,cat\n120265,dog\n120266,cat\n120267,horse\n120268,truck\n120269,ship\n120270,dog\n120271,truck\n120272,ship\n120273,dog\n120274,cat\n120275,ship\n120276,airplane\n120277,truck\n120278,truck\n120279,airplane\n120280,ship\n120281,frog\n120282,automobile\n120283,horse\n120284,deer\n120285,cat\n120286,ship\n120287,frog\n120288,dog\n120289,bird\n120290,frog\n120291,bird\n120292,cat\n120293,truck\n120294,airplane\n120295,dog\n120296,horse\n120297,cat\n120298,frog\n120299,airplane\n120300,frog\n120301,ship\n120302,bird\n120303,airplane\n120304,bird\n120305,truck\n120306,deer\n120307,airplane\n120308,truck\n120309,cat\n120310,truck\n120311,truck\n120312,cat\n120313,horse\n120314,airplane\n120315,truck\n120316,ship\n120317,truck\n120318,frog\n120319,dog\n120320,automobile\n120321,ship\n120322,truck\n120323,bird\n120324,ship\n120325,deer\n120326,deer\n120327,ship\n120328,dog\n120329,airplane\n120330,frog\n120331,deer\n120332,airplane\n120333,bird\n120334,cat\n120335,truck\n120336,automobile\n120337,horse\n120338,dog\n120339,deer\n120340,deer\n120341,cat\n120342,cat\n120343,cat\n120344,cat\n120345,dog\n120346,airplane\n120347,automobile\n120348,horse\n120349,automobile\n120350,airplane\n120351,deer\n120352,cat\n120353,frog\n120354,frog\n120355,automobile\n120356,deer\n120357,horse\n120358,truck\n120359,horse\n120360,airplane\n120361,airplane\n120362,horse\n120363,deer\n120364,horse\n120365,dog\n120366,frog\n120367,cat\n120368,cat\n120369,ship\n120370,horse\n120371,cat\n120372,automobile\n120373,horse\n120374,cat\n120375,dog\n120376,truck\n120377,cat\n120378,frog\n120379,airplane\n120380,bird\n120381,horse\n120382,truck\n120383,dog\n120384,ship\n120385,deer\n120386,cat\n120387,horse\n120388,horse\n120389,deer\n120390,cat\n120391,dog\n120392,cat\n120393,dog\n120394,dog\n120395,airplane\n120396,dog\n120397,airplane\n120398,deer\n120399,cat\n120400,deer\n120401,airplane\n120402,automobile\n120403,deer\n120404,truck\n120405,cat\n120406,truck\n120407,ship\n120408,bird\n120409,frog\n120410,automobile\n120411,horse\n120412,airplane\n120413,airplane\n120414,ship\n120415,horse\n120416,cat\n120417,airplane\n120418,horse\n120419,ship\n120420,deer\n120421,truck\n120422,automobile\n120423,ship\n120424,horse\n120425,cat\n120426,deer\n120427,dog\n120428,truck\n120429,bird\n120430,cat\n120431,truck\n120432,truck\n120433,deer\n120434,automobile\n120435,automobile\n120436,horse\n120437,ship\n120438,frog\n120439,frog\n120440,frog\n120441,truck\n120442,deer\n120443,frog\n120444,bird\n120445,deer\n120446,dog\n120447,dog\n120448,cat\n120449,frog\n120450,dog\n120451,automobile\n120452,automobile\n120453,frog\n120454,ship\n120455,truck\n120456,cat\n120457,deer\n120458,cat\n120459,cat\n120460,dog\n120461,horse\n120462,dog\n120463,cat\n120464,horse\n120465,dog\n120466,horse\n120467,airplane\n120468,dog\n120469,deer\n120470,ship\n120471,horse\n120472,horse\n120473,frog\n120474,airplane\n120475,airplane\n120476,frog\n120477,horse\n120478,cat\n120479,bird\n120480,dog\n120481,automobile\n120482,deer\n120483,airplane\n120484,truck\n120485,truck\n120486,horse\n120487,automobile\n120488,cat\n120489,bird\n120490,airplane\n120491,ship\n120492,dog\n120493,frog\n120494,bird\n120495,dog\n120496,cat\n120497,ship\n120498,bird\n120499,truck\n120500,frog\n120501,cat\n120502,frog\n120503,ship\n120504,bird\n120505,frog\n120506,deer\n120507,deer\n120508,ship\n120509,cat\n120510,cat\n120511,frog\n120512,bird\n120513,dog\n120514,frog\n120515,horse\n120516,truck\n120517,ship\n120518,cat\n120519,automobile\n120520,truck\n120521,cat\n120522,frog\n120523,airplane\n120524,truck\n120525,horse\n120526,dog\n120527,dog\n120528,bird\n120529,frog\n120530,truck\n120531,deer\n120532,frog\n120533,airplane\n120534,cat\n120535,dog\n120536,bird\n120537,horse\n120538,automobile\n120539,frog\n120540,cat\n120541,automobile\n120542,automobile\n120543,deer\n120544,deer\n120545,deer\n120546,automobile\n120547,cat\n120548,airplane\n120549,cat\n120550,deer\n120551,deer\n120552,airplane\n120553,airplane\n120554,automobile\n120555,automobile\n120556,ship\n120557,dog\n120558,airplane\n120559,dog\n120560,frog\n120561,deer\n120562,horse\n120563,dog\n120564,airplane\n120565,airplane\n120566,cat\n120567,cat\n120568,dog\n120569,cat\n120570,ship\n120571,dog\n120572,truck\n120573,truck\n120574,deer\n120575,ship\n120576,cat\n120577,deer\n120578,frog\n120579,frog\n120580,dog\n120581,truck\n120582,horse\n120583,cat\n120584,automobile\n120585,truck\n120586,dog\n120587,dog\n120588,deer\n120589,horse\n120590,deer\n120591,truck\n120592,bird\n120593,cat\n120594,automobile\n120595,horse\n120596,dog\n120597,deer\n120598,ship\n120599,frog\n120600,bird\n120601,dog\n120602,bird\n120603,dog\n120604,cat\n120605,airplane\n120606,deer\n120607,frog\n120608,airplane\n120609,automobile\n120610,horse\n120611,airplane\n120612,dog\n120613,frog\n120614,cat\n120615,deer\n120616,truck\n120617,truck\n120618,horse\n120619,horse\n120620,deer\n120621,deer\n120622,dog\n120623,deer\n120624,cat\n120625,dog\n120626,automobile\n120627,cat\n120628,frog\n120629,frog\n120630,cat\n120631,cat\n120632,automobile\n120633,cat\n120634,cat\n120635,ship\n120636,truck\n120637,automobile\n120638,airplane\n120639,cat\n120640,frog\n120641,dog\n120642,frog\n120643,frog\n120644,automobile\n120645,dog\n120646,truck\n120647,automobile\n120648,automobile\n120649,frog\n120650,horse\n120651,automobile\n120652,deer\n120653,deer\n120654,deer\n120655,bird\n120656,horse\n120657,truck\n120658,horse\n120659,cat\n120660,dog\n120661,frog\n120662,automobile\n120663,dog\n120664,cat\n120665,frog\n120666,automobile\n120667,bird\n120668,deer\n120669,dog\n120670,horse\n120671,airplane\n120672,dog\n120673,horse\n120674,cat\n120675,ship\n120676,ship\n120677,truck\n120678,cat\n120679,deer\n120680,deer\n120681,bird\n120682,truck\n120683,bird\n120684,truck\n120685,dog\n120686,ship\n120687,cat\n120688,airplane\n120689,dog\n120690,cat\n120691,deer\n120692,frog\n120693,frog\n120694,automobile\n120695,deer\n120696,dog\n120697,cat\n120698,automobile\n120699,truck\n120700,truck\n120701,airplane\n120702,frog\n120703,horse\n120704,bird\n120705,automobile\n120706,truck\n120707,bird\n120708,airplane\n120709,ship\n120710,horse\n120711,truck\n120712,truck\n120713,frog\n120714,horse\n120715,dog\n120716,airplane\n120717,ship\n120718,truck\n120719,dog\n120720,truck\n120721,cat\n120722,bird\n120723,cat\n120724,dog\n120725,dog\n120726,airplane\n120727,horse\n120728,airplane\n120729,dog\n120730,truck\n120731,dog\n120732,deer\n120733,cat\n120734,deer\n120735,airplane\n120736,airplane\n120737,dog\n120738,frog\n120739,truck\n120740,horse\n120741,ship\n120742,cat\n120743,cat\n120744,automobile\n120745,bird\n120746,truck\n120747,dog\n120748,horse\n120749,cat\n120750,frog\n120751,horse\n120752,dog\n120753,truck\n120754,deer\n120755,truck\n120756,deer\n120757,frog\n120758,airplane\n120759,truck\n120760,deer\n120761,cat\n120762,bird\n120763,horse\n120764,airplane\n120765,cat\n120766,automobile\n120767,dog\n120768,dog\n120769,deer\n120770,horse\n120771,airplane\n120772,bird\n120773,frog\n120774,frog\n120775,airplane\n120776,deer\n120777,deer\n120778,airplane\n120779,horse\n120780,ship\n120781,cat\n120782,truck\n120783,truck\n120784,airplane\n120785,ship\n120786,cat\n120787,cat\n120788,deer\n120789,automobile\n120790,deer\n120791,airplane\n120792,ship\n120793,airplane\n120794,deer\n120795,bird\n120796,bird\n120797,deer\n120798,deer\n120799,truck\n120800,deer\n120801,horse\n120802,dog\n120803,ship\n120804,bird\n120805,truck\n120806,ship\n120807,truck\n120808,deer\n120809,horse\n120810,cat\n120811,horse\n120812,ship\n120813,automobile\n120814,deer\n120815,ship\n120816,truck\n120817,frog\n120818,deer\n120819,cat\n120820,cat\n120821,truck\n120822,horse\n120823,frog\n120824,frog\n120825,dog\n120826,horse\n120827,automobile\n120828,automobile\n120829,ship\n120830,ship\n120831,automobile\n120832,dog\n120833,cat\n120834,horse\n120835,bird\n120836,frog\n120837,automobile\n120838,ship\n120839,bird\n120840,automobile\n120841,cat\n120842,cat\n120843,automobile\n120844,deer\n120845,bird\n120846,dog\n120847,automobile\n120848,airplane\n120849,deer\n120850,dog\n120851,dog\n120852,airplane\n120853,airplane\n120854,dog\n120855,horse\n120856,frog\n120857,bird\n120858,frog\n120859,horse\n120860,cat\n120861,truck\n120862,airplane\n120863,automobile\n120864,automobile\n120865,cat\n120866,dog\n120867,frog\n120868,ship\n120869,ship\n120870,dog\n120871,airplane\n120872,deer\n120873,cat\n120874,frog\n120875,cat\n120876,deer\n120877,frog\n120878,ship\n120879,frog\n120880,ship\n120881,ship\n120882,dog\n120883,frog\n120884,bird\n120885,ship\n120886,cat\n120887,truck\n120888,cat\n120889,horse\n120890,automobile\n120891,dog\n120892,dog\n120893,ship\n120894,cat\n120895,airplane\n120896,airplane\n120897,frog\n120898,cat\n120899,horse\n120900,deer\n120901,horse\n120902,frog\n120903,bird\n120904,ship\n120905,dog\n120906,dog\n120907,ship\n120908,frog\n120909,frog\n120910,cat\n120911,horse\n120912,cat\n120913,bird\n120914,bird\n120915,deer\n120916,horse\n120917,dog\n120918,dog\n120919,dog\n120920,airplane\n120921,dog\n120922,frog\n120923,deer\n120924,truck\n120925,cat\n120926,deer\n120927,cat\n120928,dog\n120929,ship\n120930,truck\n120931,frog\n120932,frog\n120933,truck\n120934,cat\n120935,frog\n120936,bird\n120937,bird\n120938,horse\n120939,airplane\n120940,automobile\n120941,truck\n120942,cat\n120943,frog\n120944,horse\n120945,cat\n120946,airplane\n120947,ship\n120948,frog\n120949,bird\n120950,dog\n120951,cat\n120952,dog\n120953,cat\n120954,bird\n120955,horse\n120956,deer\n120957,horse\n120958,horse\n120959,cat\n120960,frog\n120961,deer\n120962,deer\n120963,ship\n120964,dog\n120965,deer\n120966,bird\n120967,dog\n120968,airplane\n120969,bird\n120970,bird\n120971,ship\n120972,frog\n120973,airplane\n120974,airplane\n120975,deer\n120976,truck\n120977,frog\n120978,airplane\n120979,frog\n120980,ship\n120981,frog\n120982,deer\n120983,ship\n120984,frog\n120985,ship\n120986,automobile\n120987,horse\n120988,frog\n120989,truck\n120990,deer\n120991,frog\n120992,cat\n120993,cat\n120994,dog\n120995,airplane\n120996,automobile\n120997,deer\n120998,bird\n120999,frog\n121000,truck\n121001,frog\n121002,dog\n121003,frog\n121004,horse\n121005,cat\n121006,dog\n121007,truck\n121008,ship\n121009,horse\n121010,automobile\n121011,deer\n121012,truck\n121013,bird\n121014,frog\n121015,dog\n121016,bird\n121017,deer\n121018,airplane\n121019,airplane\n121020,horse\n121021,truck\n121022,ship\n121023,airplane\n121024,dog\n121025,cat\n121026,ship\n121027,deer\n121028,dog\n121029,horse\n121030,horse\n121031,airplane\n121032,horse\n121033,horse\n121034,truck\n121035,ship\n121036,frog\n121037,deer\n121038,cat\n121039,ship\n121040,horse\n121041,automobile\n121042,bird\n121043,frog\n121044,dog\n121045,airplane\n121046,airplane\n121047,deer\n121048,truck\n121049,truck\n121050,dog\n121051,dog\n121052,airplane\n121053,dog\n121054,airplane\n121055,ship\n121056,bird\n121057,bird\n121058,truck\n121059,truck\n121060,airplane\n121061,frog\n121062,horse\n121063,cat\n121064,ship\n121065,automobile\n121066,horse\n121067,bird\n121068,truck\n121069,deer\n121070,frog\n121071,deer\n121072,truck\n121073,frog\n121074,frog\n121075,deer\n121076,airplane\n121077,frog\n121078,frog\n121079,frog\n121080,horse\n121081,cat\n121082,horse\n121083,airplane\n121084,dog\n121085,cat\n121086,bird\n121087,bird\n121088,deer\n121089,cat\n121090,horse\n121091,dog\n121092,bird\n121093,bird\n121094,ship\n121095,automobile\n121096,deer\n121097,ship\n121098,horse\n121099,frog\n121100,cat\n121101,ship\n121102,bird\n121103,airplane\n121104,ship\n121105,automobile\n121106,automobile\n121107,horse\n121108,truck\n121109,frog\n121110,frog\n121111,cat\n121112,horse\n121113,deer\n121114,airplane\n121115,airplane\n121116,dog\n121117,truck\n121118,deer\n121119,truck\n121120,truck\n121121,frog\n121122,automobile\n121123,truck\n121124,airplane\n121125,truck\n121126,truck\n121127,ship\n121128,horse\n121129,bird\n121130,horse\n121131,horse\n121132,frog\n121133,cat\n121134,truck\n121135,horse\n121136,airplane\n121137,airplane\n121138,ship\n121139,frog\n121140,horse\n121141,truck\n121142,deer\n121143,cat\n121144,cat\n121145,horse\n121146,dog\n121147,truck\n121148,frog\n121149,dog\n121150,ship\n121151,cat\n121152,truck\n121153,airplane\n121154,dog\n121155,frog\n121156,dog\n121157,truck\n121158,airplane\n121159,bird\n121160,truck\n121161,airplane\n121162,ship\n121163,ship\n121164,horse\n121165,bird\n121166,cat\n121167,truck\n121168,dog\n121169,dog\n121170,airplane\n121171,automobile\n121172,truck\n121173,frog\n121174,frog\n121175,ship\n121176,deer\n121177,deer\n121178,ship\n121179,bird\n121180,deer\n121181,deer\n121182,deer\n121183,bird\n121184,truck\n121185,bird\n121186,truck\n121187,cat\n121188,frog\n121189,dog\n121190,dog\n121191,horse\n121192,bird\n121193,frog\n121194,deer\n121195,dog\n121196,truck\n121197,dog\n121198,automobile\n121199,frog\n121200,cat\n121201,truck\n121202,deer\n121203,bird\n121204,deer\n121205,deer\n121206,truck\n121207,dog\n121208,ship\n121209,deer\n121210,dog\n121211,dog\n121212,deer\n121213,ship\n121214,truck\n121215,deer\n121216,dog\n121217,cat\n121218,bird\n121219,ship\n121220,bird\n121221,dog\n121222,horse\n121223,truck\n121224,airplane\n121225,airplane\n121226,frog\n121227,deer\n121228,ship\n121229,cat\n121230,bird\n121231,cat\n121232,automobile\n121233,airplane\n121234,cat\n121235,airplane\n121236,bird\n121237,bird\n121238,airplane\n121239,cat\n121240,frog\n121241,automobile\n121242,deer\n121243,dog\n121244,horse\n121245,cat\n121246,truck\n121247,frog\n121248,frog\n121249,cat\n121250,horse\n121251,airplane\n121252,truck\n121253,ship\n121254,frog\n121255,deer\n121256,truck\n121257,deer\n121258,deer\n121259,truck\n121260,dog\n121261,bird\n121262,airplane\n121263,truck\n121264,automobile\n121265,cat\n121266,frog\n121267,cat\n121268,cat\n121269,automobile\n121270,horse\n121271,truck\n121272,deer\n121273,truck\n121274,truck\n121275,horse\n121276,ship\n121277,horse\n121278,deer\n121279,cat\n121280,airplane\n121281,ship\n121282,ship\n121283,cat\n121284,deer\n121285,airplane\n121286,frog\n121287,dog\n121288,deer\n121289,ship\n121290,airplane\n121291,cat\n121292,frog\n121293,dog\n121294,ship\n121295,airplane\n121296,bird\n121297,deer\n121298,deer\n121299,deer\n121300,airplane\n121301,airplane\n121302,cat\n121303,automobile\n121304,cat\n121305,cat\n121306,deer\n121307,dog\n121308,truck\n121309,frog\n121310,truck\n121311,horse\n121312,deer\n121313,frog\n121314,truck\n121315,dog\n121316,automobile\n121317,ship\n121318,cat\n121319,cat\n121320,ship\n121321,cat\n121322,automobile\n121323,dog\n121324,deer\n121325,cat\n121326,truck\n121327,dog\n121328,frog\n121329,ship\n121330,airplane\n121331,truck\n121332,frog\n121333,truck\n121334,dog\n121335,frog\n121336,ship\n121337,bird\n121338,automobile\n121339,ship\n121340,frog\n121341,cat\n121342,bird\n121343,automobile\n121344,cat\n121345,truck\n121346,deer\n121347,dog\n121348,bird\n121349,cat\n121350,deer\n121351,horse\n121352,cat\n121353,truck\n121354,automobile\n121355,dog\n121356,automobile\n121357,horse\n121358,airplane\n121359,horse\n121360,ship\n121361,truck\n121362,frog\n121363,frog\n121364,cat\n121365,deer\n121366,deer\n121367,truck\n121368,cat\n121369,dog\n121370,bird\n121371,cat\n121372,horse\n121373,deer\n121374,cat\n121375,truck\n121376,truck\n121377,airplane\n121378,frog\n121379,dog\n121380,cat\n121381,automobile\n121382,truck\n121383,frog\n121384,cat\n121385,deer\n121386,cat\n121387,deer\n121388,ship\n121389,dog\n121390,cat\n121391,bird\n121392,frog\n121393,frog\n121394,deer\n121395,horse\n121396,airplane\n121397,airplane\n121398,truck\n121399,horse\n121400,frog\n121401,ship\n121402,deer\n121403,deer\n121404,bird\n121405,frog\n121406,bird\n121407,deer\n121408,ship\n121409,cat\n121410,bird\n121411,dog\n121412,deer\n121413,frog\n121414,truck\n121415,frog\n121416,horse\n121417,airplane\n121418,deer\n121419,airplane\n121420,frog\n121421,airplane\n121422,ship\n121423,ship\n121424,cat\n121425,horse\n121426,horse\n121427,bird\n121428,dog\n121429,deer\n121430,deer\n121431,frog\n121432,ship\n121433,frog\n121434,horse\n121435,bird\n121436,horse\n121437,truck\n121438,ship\n121439,ship\n121440,bird\n121441,truck\n121442,dog\n121443,ship\n121444,horse\n121445,frog\n121446,cat\n121447,frog\n121448,horse\n121449,deer\n121450,automobile\n121451,dog\n121452,frog\n121453,horse\n121454,cat\n121455,frog\n121456,dog\n121457,dog\n121458,cat\n121459,deer\n121460,deer\n121461,bird\n121462,frog\n121463,frog\n121464,cat\n121465,cat\n121466,horse\n121467,cat\n121468,bird\n121469,truck\n121470,horse\n121471,frog\n121472,cat\n121473,ship\n121474,bird\n121475,bird\n121476,deer\n121477,horse\n121478,frog\n121479,truck\n121480,deer\n121481,bird\n121482,horse\n121483,dog\n121484,deer\n121485,cat\n121486,truck\n121487,truck\n121488,horse\n121489,airplane\n121490,ship\n121491,horse\n121492,horse\n121493,airplane\n121494,cat\n121495,dog\n121496,dog\n121497,automobile\n121498,bird\n121499,cat\n121500,bird\n121501,frog\n121502,dog\n121503,ship\n121504,horse\n121505,truck\n121506,ship\n121507,bird\n121508,cat\n121509,horse\n121510,deer\n121511,cat\n121512,deer\n121513,horse\n121514,bird\n121515,truck\n121516,deer\n121517,automobile\n121518,ship\n121519,deer\n121520,airplane\n121521,frog\n121522,deer\n121523,horse\n121524,horse\n121525,bird\n121526,bird\n121527,frog\n121528,deer\n121529,deer\n121530,ship\n121531,bird\n121532,automobile\n121533,truck\n121534,frog\n121535,bird\n121536,ship\n121537,cat\n121538,horse\n121539,truck\n121540,cat\n121541,cat\n121542,cat\n121543,frog\n121544,truck\n121545,truck\n121546,airplane\n121547,airplane\n121548,cat\n121549,dog\n121550,deer\n121551,ship\n121552,deer\n121553,bird\n121554,frog\n121555,cat\n121556,horse\n121557,frog\n121558,frog\n121559,cat\n121560,ship\n121561,dog\n121562,ship\n121563,truck\n121564,truck\n121565,truck\n121566,deer\n121567,deer\n121568,airplane\n121569,horse\n121570,frog\n121571,cat\n121572,bird\n121573,cat\n121574,dog\n121575,horse\n121576,deer\n121577,horse\n121578,dog\n121579,airplane\n121580,automobile\n121581,dog\n121582,frog\n121583,airplane\n121584,deer\n121585,frog\n121586,bird\n121587,deer\n121588,horse\n121589,bird\n121590,airplane\n121591,dog\n121592,horse\n121593,cat\n121594,horse\n121595,cat\n121596,bird\n121597,dog\n121598,ship\n121599,airplane\n121600,frog\n121601,horse\n121602,airplane\n121603,cat\n121604,cat\n121605,truck\n121606,frog\n121607,cat\n121608,deer\n121609,ship\n121610,cat\n121611,frog\n121612,dog\n121613,dog\n121614,automobile\n121615,truck\n121616,bird\n121617,deer\n121618,horse\n121619,airplane\n121620,dog\n121621,automobile\n121622,ship\n121623,automobile\n121624,horse\n121625,ship\n121626,airplane\n121627,truck\n121628,airplane\n121629,frog\n121630,deer\n121631,cat\n121632,frog\n121633,ship\n121634,deer\n121635,automobile\n121636,deer\n121637,truck\n121638,cat\n121639,airplane\n121640,airplane\n121641,truck\n121642,airplane\n121643,bird\n121644,cat\n121645,frog\n121646,ship\n121647,frog\n121648,truck\n121649,cat\n121650,cat\n121651,airplane\n121652,automobile\n121653,frog\n121654,horse\n121655,truck\n121656,automobile\n121657,deer\n121658,dog\n121659,frog\n121660,automobile\n121661,automobile\n121662,bird\n121663,automobile\n121664,deer\n121665,truck\n121666,deer\n121667,airplane\n121668,dog\n121669,frog\n121670,bird\n121671,cat\n121672,airplane\n121673,truck\n121674,truck\n121675,bird\n121676,bird\n121677,dog\n121678,automobile\n121679,ship\n121680,bird\n121681,airplane\n121682,cat\n121683,cat\n121684,bird\n121685,frog\n121686,truck\n121687,horse\n121688,horse\n121689,dog\n121690,ship\n121691,cat\n121692,truck\n121693,cat\n121694,cat\n121695,bird\n121696,automobile\n121697,truck\n121698,dog\n121699,ship\n121700,automobile\n121701,dog\n121702,deer\n121703,truck\n121704,horse\n121705,horse\n121706,deer\n121707,cat\n121708,frog\n121709,ship\n121710,airplane\n121711,truck\n121712,bird\n121713,ship\n121714,horse\n121715,horse\n121716,deer\n121717,automobile\n121718,deer\n121719,deer\n121720,automobile\n121721,cat\n121722,cat\n121723,deer\n121724,frog\n121725,cat\n121726,deer\n121727,horse\n121728,cat\n121729,truck\n121730,cat\n121731,deer\n121732,frog\n121733,deer\n121734,deer\n121735,frog\n121736,airplane\n121737,cat\n121738,bird\n121739,horse\n121740,truck\n121741,frog\n121742,airplane\n121743,truck\n121744,truck\n121745,dog\n121746,cat\n121747,frog\n121748,dog\n121749,frog\n121750,cat\n121751,horse\n121752,automobile\n121753,truck\n121754,horse\n121755,automobile\n121756,dog\n121757,dog\n121758,bird\n121759,ship\n121760,cat\n121761,cat\n121762,automobile\n121763,horse\n121764,cat\n121765,cat\n121766,horse\n121767,deer\n121768,horse\n121769,horse\n121770,automobile\n121771,cat\n121772,dog\n121773,deer\n121774,dog\n121775,dog\n121776,cat\n121777,deer\n121778,truck\n121779,horse\n121780,cat\n121781,ship\n121782,bird\n121783,truck\n121784,automobile\n121785,cat\n121786,dog\n121787,cat\n121788,airplane\n121789,ship\n121790,deer\n121791,dog\n121792,airplane\n121793,truck\n121794,truck\n121795,truck\n121796,frog\n121797,horse\n121798,horse\n121799,frog\n121800,horse\n121801,airplane\n121802,truck\n121803,cat\n121804,dog\n121805,horse\n121806,deer\n121807,truck\n121808,bird\n121809,bird\n121810,bird\n121811,horse\n121812,airplane\n121813,truck\n121814,ship\n121815,airplane\n121816,deer\n121817,cat\n121818,airplane\n121819,dog\n121820,automobile\n121821,airplane\n121822,truck\n121823,deer\n121824,automobile\n121825,cat\n121826,deer\n121827,cat\n121828,horse\n121829,truck\n121830,airplane\n121831,deer\n121832,bird\n121833,airplane\n121834,truck\n121835,frog\n121836,horse\n121837,cat\n121838,bird\n121839,deer\n121840,ship\n121841,dog\n121842,automobile\n121843,horse\n121844,deer\n121845,cat\n121846,frog\n121847,dog\n121848,airplane\n121849,bird\n121850,truck\n121851,dog\n121852,bird\n121853,ship\n121854,bird\n121855,automobile\n121856,dog\n121857,airplane\n121858,airplane\n121859,dog\n121860,deer\n121861,ship\n121862,bird\n121863,dog\n121864,deer\n121865,dog\n121866,deer\n121867,frog\n121868,cat\n121869,cat\n121870,airplane\n121871,bird\n121872,truck\n121873,horse\n121874,cat\n121875,deer\n121876,cat\n121877,truck\n121878,deer\n121879,cat\n121880,dog\n121881,horse\n121882,horse\n121883,dog\n121884,dog\n121885,truck\n121886,bird\n121887,frog\n121888,bird\n121889,deer\n121890,truck\n121891,truck\n121892,bird\n121893,deer\n121894,bird\n121895,deer\n121896,dog\n121897,truck\n121898,dog\n121899,deer\n121900,deer\n121901,cat\n121902,dog\n121903,dog\n121904,deer\n121905,dog\n121906,cat\n121907,horse\n121908,cat\n121909,deer\n121910,airplane\n121911,airplane\n121912,bird\n121913,dog\n121914,truck\n121915,ship\n121916,deer\n121917,deer\n121918,ship\n121919,deer\n121920,airplane\n121921,truck\n121922,deer\n121923,cat\n121924,truck\n121925,dog\n121926,automobile\n121927,bird\n121928,ship\n121929,truck\n121930,bird\n121931,cat\n121932,cat\n121933,dog\n121934,cat\n121935,ship\n121936,cat\n121937,frog\n121938,airplane\n121939,cat\n121940,frog\n121941,deer\n121942,dog\n121943,dog\n121944,truck\n121945,truck\n121946,deer\n121947,automobile\n121948,bird\n121949,frog\n121950,ship\n121951,dog\n121952,horse\n121953,cat\n121954,deer\n121955,frog\n121956,cat\n121957,truck\n121958,dog\n121959,deer\n121960,truck\n121961,deer\n121962,horse\n121963,truck\n121964,deer\n121965,truck\n121966,cat\n121967,truck\n121968,automobile\n121969,dog\n121970,horse\n121971,bird\n121972,truck\n121973,bird\n121974,horse\n121975,truck\n121976,horse\n121977,airplane\n121978,dog\n121979,cat\n121980,cat\n121981,deer\n121982,ship\n121983,automobile\n121984,frog\n121985,deer\n121986,automobile\n121987,dog\n121988,airplane\n121989,cat\n121990,truck\n121991,dog\n121992,deer\n121993,horse\n121994,frog\n121995,bird\n121996,automobile\n121997,frog\n121998,cat\n121999,dog\n122000,cat\n122001,truck\n122002,truck\n122003,airplane\n122004,dog\n122005,cat\n122006,automobile\n122007,cat\n122008,frog\n122009,automobile\n122010,airplane\n122011,airplane\n122012,horse\n122013,automobile\n122014,horse\n122015,automobile\n122016,airplane\n122017,bird\n122018,deer\n122019,deer\n122020,frog\n122021,frog\n122022,cat\n122023,bird\n122024,ship\n122025,frog\n122026,frog\n122027,automobile\n122028,dog\n122029,cat\n122030,cat\n122031,ship\n122032,deer\n122033,frog\n122034,cat\n122035,frog\n122036,dog\n122037,bird\n122038,frog\n122039,automobile\n122040,horse\n122041,ship\n122042,deer\n122043,deer\n122044,bird\n122045,cat\n122046,frog\n122047,cat\n122048,bird\n122049,deer\n122050,deer\n122051,bird\n122052,cat\n122053,cat\n122054,dog\n122055,dog\n122056,ship\n122057,airplane\n122058,dog\n122059,dog\n122060,truck\n122061,airplane\n122062,deer\n122063,airplane\n122064,horse\n122065,ship\n122066,airplane\n122067,deer\n122068,frog\n122069,automobile\n122070,frog\n122071,horse\n122072,dog\n122073,deer\n122074,dog\n122075,deer\n122076,airplane\n122077,truck\n122078,frog\n122079,cat\n122080,cat\n122081,cat\n122082,cat\n122083,deer\n122084,airplane\n122085,dog\n122086,truck\n122087,dog\n122088,dog\n122089,truck\n122090,cat\n122091,truck\n122092,dog\n122093,cat\n122094,airplane\n122095,truck\n122096,automobile\n122097,cat\n122098,horse\n122099,deer\n122100,airplane\n122101,dog\n122102,cat\n122103,cat\n122104,frog\n122105,deer\n122106,deer\n122107,airplane\n122108,cat\n122109,horse\n122110,horse\n122111,bird\n122112,ship\n122113,ship\n122114,dog\n122115,cat\n122116,frog\n122117,automobile\n122118,deer\n122119,horse\n122120,deer\n122121,deer\n122122,ship\n122123,deer\n122124,automobile\n122125,cat\n122126,automobile\n122127,truck\n122128,airplane\n122129,automobile\n122130,truck\n122131,airplane\n122132,deer\n122133,deer\n122134,horse\n122135,bird\n122136,horse\n122137,ship\n122138,ship\n122139,cat\n122140,dog\n122141,automobile\n122142,ship\n122143,ship\n122144,automobile\n122145,bird\n122146,airplane\n122147,ship\n122148,dog\n122149,cat\n122150,automobile\n122151,airplane\n122152,truck\n122153,frog\n122154,ship\n122155,bird\n122156,truck\n122157,bird\n122158,cat\n122159,frog\n122160,bird\n122161,horse\n122162,horse\n122163,deer\n122164,cat\n122165,dog\n122166,frog\n122167,bird\n122168,frog\n122169,deer\n122170,bird\n122171,deer\n122172,dog\n122173,ship\n122174,horse\n122175,bird\n122176,truck\n122177,dog\n122178,truck\n122179,bird\n122180,automobile\n122181,ship\n122182,dog\n122183,deer\n122184,deer\n122185,frog\n122186,horse\n122187,dog\n122188,horse\n122189,airplane\n122190,frog\n122191,deer\n122192,bird\n122193,frog\n122194,horse\n122195,airplane\n122196,frog\n122197,airplane\n122198,bird\n122199,cat\n122200,bird\n122201,cat\n122202,truck\n122203,dog\n122204,truck\n122205,cat\n122206,frog\n122207,dog\n122208,dog\n122209,deer\n122210,automobile\n122211,airplane\n122212,deer\n122213,frog\n122214,truck\n122215,dog\n122216,dog\n122217,airplane\n122218,dog\n122219,deer\n122220,frog\n122221,deer\n122222,automobile\n122223,truck\n122224,truck\n122225,automobile\n122226,horse\n122227,airplane\n122228,automobile\n122229,horse\n122230,ship\n122231,airplane\n122232,dog\n122233,horse\n122234,airplane\n122235,frog\n122236,automobile\n122237,deer\n122238,frog\n122239,deer\n122240,truck\n122241,airplane\n122242,dog\n122243,horse\n122244,bird\n122245,frog\n122246,airplane\n122247,automobile\n122248,truck\n122249,bird\n122250,deer\n122251,dog\n122252,frog\n122253,airplane\n122254,horse\n122255,frog\n122256,horse\n122257,cat\n122258,horse\n122259,cat\n122260,airplane\n122261,dog\n122262,frog\n122263,dog\n122264,dog\n122265,dog\n122266,automobile\n122267,bird\n122268,truck\n122269,bird\n122270,dog\n122271,truck\n122272,deer\n122273,frog\n122274,frog\n122275,automobile\n122276,frog\n122277,airplane\n122278,cat\n122279,horse\n122280,truck\n122281,ship\n122282,frog\n122283,dog\n122284,truck\n122285,dog\n122286,deer\n122287,dog\n122288,automobile\n122289,cat\n122290,frog\n122291,dog\n122292,horse\n122293,deer\n122294,frog\n122295,deer\n122296,automobile\n122297,bird\n122298,bird\n122299,bird\n122300,cat\n122301,deer\n122302,frog\n122303,deer\n122304,frog\n122305,frog\n122306,dog\n122307,frog\n122308,dog\n122309,truck\n122310,deer\n122311,deer\n122312,cat\n122313,deer\n122314,cat\n122315,frog\n122316,dog\n122317,airplane\n122318,automobile\n122319,deer\n122320,horse\n122321,deer\n122322,dog\n122323,deer\n122324,automobile\n122325,deer\n122326,dog\n122327,ship\n122328,frog\n122329,horse\n122330,cat\n122331,bird\n122332,bird\n122333,truck\n122334,deer\n122335,horse\n122336,dog\n122337,frog\n122338,cat\n122339,cat\n122340,ship\n122341,deer\n122342,deer\n122343,airplane\n122344,frog\n122345,deer\n122346,truck\n122347,frog\n122348,cat\n122349,frog\n122350,ship\n122351,truck\n122352,ship\n122353,cat\n122354,dog\n122355,ship\n122356,dog\n122357,airplane\n122358,airplane\n122359,truck\n122360,deer\n122361,deer\n122362,dog\n122363,airplane\n122364,cat\n122365,horse\n122366,frog\n122367,automobile\n122368,airplane\n122369,airplane\n122370,cat\n122371,dog\n122372,bird\n122373,truck\n122374,frog\n122375,dog\n122376,airplane\n122377,horse\n122378,airplane\n122379,bird\n122380,truck\n122381,bird\n122382,cat\n122383,cat\n122384,ship\n122385,deer\n122386,truck\n122387,cat\n122388,automobile\n122389,deer\n122390,deer\n122391,cat\n122392,horse\n122393,cat\n122394,bird\n122395,airplane\n122396,cat\n122397,dog\n122398,airplane\n122399,horse\n122400,horse\n122401,horse\n122402,cat\n122403,bird\n122404,deer\n122405,deer\n122406,frog\n122407,horse\n122408,deer\n122409,deer\n122410,automobile\n122411,horse\n122412,deer\n122413,automobile\n122414,deer\n122415,automobile\n122416,deer\n122417,bird\n122418,cat\n122419,dog\n122420,dog\n122421,horse\n122422,frog\n122423,dog\n122424,cat\n122425,truck\n122426,cat\n122427,ship\n122428,frog\n122429,ship\n122430,ship\n122431,horse\n122432,bird\n122433,frog\n122434,dog\n122435,airplane\n122436,horse\n122437,bird\n122438,ship\n122439,deer\n122440,frog\n122441,deer\n122442,bird\n122443,cat\n122444,automobile\n122445,cat\n122446,cat\n122447,airplane\n122448,truck\n122449,frog\n122450,truck\n122451,airplane\n122452,truck\n122453,frog\n122454,deer\n122455,frog\n122456,cat\n122457,dog\n122458,bird\n122459,dog\n122460,ship\n122461,dog\n122462,airplane\n122463,bird\n122464,airplane\n122465,ship\n122466,deer\n122467,frog\n122468,dog\n122469,airplane\n122470,airplane\n122471,bird\n122472,cat\n122473,frog\n122474,truck\n122475,truck\n122476,horse\n122477,ship\n122478,dog\n122479,airplane\n122480,deer\n122481,airplane\n122482,ship\n122483,bird\n122484,frog\n122485,horse\n122486,frog\n122487,deer\n122488,dog\n122489,dog\n122490,bird\n122491,bird\n122492,deer\n122493,dog\n122494,airplane\n122495,dog\n122496,dog\n122497,truck\n122498,truck\n122499,bird\n122500,airplane\n122501,ship\n122502,truck\n122503,frog\n122504,deer\n122505,horse\n122506,bird\n122507,airplane\n122508,deer\n122509,dog\n122510,cat\n122511,cat\n122512,frog\n122513,truck\n122514,deer\n122515,deer\n122516,cat\n122517,airplane\n122518,bird\n122519,deer\n122520,bird\n122521,bird\n122522,bird\n122523,ship\n122524,deer\n122525,truck\n122526,deer\n122527,airplane\n122528,truck\n122529,truck\n122530,frog\n122531,cat\n122532,frog\n122533,dog\n122534,cat\n122535,airplane\n122536,cat\n122537,automobile\n122538,truck\n122539,truck\n122540,horse\n122541,airplane\n122542,cat\n122543,ship\n122544,cat\n122545,airplane\n122546,bird\n122547,horse\n122548,deer\n122549,truck\n122550,horse\n122551,deer\n122552,horse\n122553,frog\n122554,automobile\n122555,automobile\n122556,horse\n122557,deer\n122558,automobile\n122559,cat\n122560,airplane\n122561,truck\n122562,truck\n122563,bird\n122564,automobile\n122565,truck\n122566,ship\n122567,horse\n122568,airplane\n122569,airplane\n122570,truck\n122571,cat\n122572,ship\n122573,cat\n122574,ship\n122575,frog\n122576,bird\n122577,airplane\n122578,airplane\n122579,airplane\n122580,deer\n122581,truck\n122582,dog\n122583,dog\n122584,bird\n122585,horse\n122586,frog\n122587,frog\n122588,truck\n122589,airplane\n122590,ship\n122591,cat\n122592,dog\n122593,frog\n122594,cat\n122595,ship\n122596,dog\n122597,truck\n122598,horse\n122599,cat\n122600,truck\n122601,horse\n122602,deer\n122603,bird\n122604,truck\n122605,truck\n122606,dog\n122607,deer\n122608,truck\n122609,horse\n122610,cat\n122611,horse\n122612,airplane\n122613,frog\n122614,ship\n122615,airplane\n122616,horse\n122617,ship\n122618,truck\n122619,deer\n122620,airplane\n122621,deer\n122622,frog\n122623,frog\n122624,dog\n122625,horse\n122626,horse\n122627,truck\n122628,cat\n122629,deer\n122630,deer\n122631,horse\n122632,dog\n122633,dog\n122634,deer\n122635,ship\n122636,horse\n122637,horse\n122638,truck\n122639,automobile\n122640,dog\n122641,cat\n122642,dog\n122643,truck\n122644,bird\n122645,dog\n122646,airplane\n122647,horse\n122648,bird\n122649,truck\n122650,horse\n122651,automobile\n122652,cat\n122653,bird\n122654,airplane\n122655,frog\n122656,horse\n122657,cat\n122658,truck\n122659,deer\n122660,deer\n122661,cat\n122662,truck\n122663,automobile\n122664,horse\n122665,ship\n122666,horse\n122667,cat\n122668,deer\n122669,truck\n122670,dog\n122671,horse\n122672,horse\n122673,horse\n122674,airplane\n122675,dog\n122676,truck\n122677,horse\n122678,deer\n122679,bird\n122680,horse\n122681,frog\n122682,airplane\n122683,truck\n122684,bird\n122685,deer\n122686,dog\n122687,dog\n122688,automobile\n122689,deer\n122690,cat\n122691,airplane\n122692,cat\n122693,deer\n122694,ship\n122695,dog\n122696,automobile\n122697,automobile\n122698,truck\n122699,dog\n122700,cat\n122701,ship\n122702,automobile\n122703,cat\n122704,cat\n122705,cat\n122706,frog\n122707,horse\n122708,frog\n122709,cat\n122710,ship\n122711,deer\n122712,dog\n122713,truck\n122714,automobile\n122715,frog\n122716,deer\n122717,dog\n122718,bird\n122719,frog\n122720,automobile\n122721,bird\n122722,airplane\n122723,cat\n122724,dog\n122725,bird\n122726,bird\n122727,ship\n122728,bird\n122729,deer\n122730,deer\n122731,truck\n122732,dog\n122733,frog\n122734,automobile\n122735,horse\n122736,horse\n122737,frog\n122738,cat\n122739,frog\n122740,truck\n122741,horse\n122742,cat\n122743,frog\n122744,airplane\n122745,automobile\n122746,bird\n122747,airplane\n122748,deer\n122749,deer\n122750,frog\n122751,bird\n122752,dog\n122753,horse\n122754,horse\n122755,deer\n122756,ship\n122757,dog\n122758,bird\n122759,deer\n122760,bird\n122761,dog\n122762,horse\n122763,truck\n122764,dog\n122765,deer\n122766,deer\n122767,frog\n122768,truck\n122769,frog\n122770,cat\n122771,horse\n122772,deer\n122773,dog\n122774,dog\n122775,horse\n122776,dog\n122777,frog\n122778,truck\n122779,ship\n122780,bird\n122781,cat\n122782,cat\n122783,ship\n122784,frog\n122785,dog\n122786,frog\n122787,bird\n122788,ship\n122789,ship\n122790,truck\n122791,automobile\n122792,automobile\n122793,deer\n122794,bird\n122795,airplane\n122796,truck\n122797,frog\n122798,cat\n122799,bird\n122800,deer\n122801,truck\n122802,horse\n122803,deer\n122804,automobile\n122805,horse\n122806,truck\n122807,cat\n122808,deer\n122809,deer\n122810,bird\n122811,automobile\n122812,cat\n122813,airplane\n122814,horse\n122815,deer\n122816,dog\n122817,bird\n122818,frog\n122819,deer\n122820,ship\n122821,deer\n122822,airplane\n122823,bird\n122824,bird\n122825,cat\n122826,cat\n122827,deer\n122828,airplane\n122829,airplane\n122830,bird\n122831,ship\n122832,frog\n122833,truck\n122834,horse\n122835,frog\n122836,automobile\n122837,truck\n122838,airplane\n122839,airplane\n122840,frog\n122841,bird\n122842,truck\n122843,bird\n122844,airplane\n122845,cat\n122846,cat\n122847,frog\n122848,horse\n122849,ship\n122850,dog\n122851,bird\n122852,cat\n122853,frog\n122854,deer\n122855,airplane\n122856,automobile\n122857,ship\n122858,horse\n122859,dog\n122860,cat\n122861,cat\n122862,bird\n122863,airplane\n122864,truck\n122865,horse\n122866,ship\n122867,truck\n122868,deer\n122869,frog\n122870,truck\n122871,bird\n122872,deer\n122873,truck\n122874,frog\n122875,frog\n122876,frog\n122877,cat\n122878,ship\n122879,automobile\n122880,frog\n122881,cat\n122882,truck\n122883,automobile\n122884,dog\n122885,dog\n122886,airplane\n122887,airplane\n122888,airplane\n122889,cat\n122890,bird\n122891,airplane\n122892,cat\n122893,bird\n122894,truck\n122895,automobile\n122896,dog\n122897,deer\n122898,cat\n122899,horse\n122900,dog\n122901,ship\n122902,frog\n122903,dog\n122904,frog\n122905,ship\n122906,deer\n122907,truck\n122908,cat\n122909,deer\n122910,frog\n122911,truck\n122912,cat\n122913,ship\n122914,automobile\n122915,cat\n122916,cat\n122917,bird\n122918,truck\n122919,truck\n122920,bird\n122921,cat\n122922,horse\n122923,frog\n122924,truck\n122925,deer\n122926,deer\n122927,horse\n122928,bird\n122929,frog\n122930,ship\n122931,cat\n122932,truck\n122933,dog\n122934,horse\n122935,ship\n122936,cat\n122937,truck\n122938,automobile\n122939,truck\n122940,ship\n122941,ship\n122942,automobile\n122943,frog\n122944,horse\n122945,cat\n122946,deer\n122947,frog\n122948,frog\n122949,truck\n122950,airplane\n122951,deer\n122952,automobile\n122953,deer\n122954,bird\n122955,airplane\n122956,deer\n122957,horse\n122958,horse\n122959,dog\n122960,deer\n122961,truck\n122962,ship\n122963,deer\n122964,frog\n122965,automobile\n122966,ship\n122967,frog\n122968,automobile\n122969,bird\n122970,deer\n122971,cat\n122972,automobile\n122973,bird\n122974,automobile\n122975,truck\n122976,ship\n122977,cat\n122978,frog\n122979,frog\n122980,bird\n122981,cat\n122982,bird\n122983,automobile\n122984,dog\n122985,bird\n122986,deer\n122987,bird\n122988,frog\n122989,deer\n122990,airplane\n122991,frog\n122992,cat\n122993,bird\n122994,deer\n122995,deer\n122996,ship\n122997,frog\n122998,cat\n122999,bird\n123000,airplane\n123001,horse\n123002,dog\n123003,horse\n123004,automobile\n123005,deer\n123006,bird\n123007,cat\n123008,automobile\n123009,deer\n123010,dog\n123011,bird\n123012,bird\n123013,cat\n123014,cat\n123015,horse\n123016,airplane\n123017,ship\n123018,cat\n123019,horse\n123020,truck\n123021,horse\n123022,deer\n123023,automobile\n123024,cat\n123025,frog\n123026,horse\n123027,frog\n123028,bird\n123029,horse\n123030,ship\n123031,truck\n123032,airplane\n123033,truck\n123034,cat\n123035,cat\n123036,deer\n123037,frog\n123038,frog\n123039,frog\n123040,truck\n123041,horse\n123042,airplane\n123043,cat\n123044,bird\n123045,dog\n123046,cat\n123047,dog\n123048,cat\n123049,dog\n123050,deer\n123051,dog\n123052,automobile\n123053,cat\n123054,bird\n123055,ship\n123056,automobile\n123057,dog\n123058,truck\n123059,bird\n123060,truck\n123061,frog\n123062,dog\n123063,cat\n123064,airplane\n123065,truck\n123066,ship\n123067,deer\n123068,frog\n123069,bird\n123070,dog\n123071,cat\n123072,bird\n123073,dog\n123074,deer\n123075,frog\n123076,deer\n123077,deer\n123078,dog\n123079,horse\n123080,horse\n123081,cat\n123082,airplane\n123083,truck\n123084,automobile\n123085,frog\n123086,airplane\n123087,cat\n123088,truck\n123089,airplane\n123090,ship\n123091,automobile\n123092,truck\n123093,ship\n123094,airplane\n123095,bird\n123096,ship\n123097,airplane\n123098,ship\n123099,horse\n123100,ship\n123101,cat\n123102,horse\n123103,dog\n123104,horse\n123105,cat\n123106,deer\n123107,frog\n123108,deer\n123109,dog\n123110,bird\n123111,truck\n123112,bird\n123113,automobile\n123114,cat\n123115,ship\n123116,cat\n123117,truck\n123118,cat\n123119,bird\n123120,automobile\n123121,truck\n123122,cat\n123123,truck\n123124,ship\n123125,truck\n123126,deer\n123127,dog\n123128,automobile\n123129,horse\n123130,cat\n123131,cat\n123132,dog\n123133,deer\n123134,cat\n123135,automobile\n123136,truck\n123137,airplane\n123138,airplane\n123139,dog\n123140,automobile\n123141,truck\n123142,frog\n123143,dog\n123144,automobile\n123145,ship\n123146,truck\n123147,truck\n123148,airplane\n123149,frog\n123150,horse\n123151,ship\n123152,airplane\n123153,truck\n123154,truck\n123155,dog\n123156,deer\n123157,bird\n123158,deer\n123159,horse\n123160,airplane\n123161,deer\n123162,truck\n123163,cat\n123164,horse\n123165,horse\n123166,ship\n123167,bird\n123168,horse\n123169,deer\n123170,deer\n123171,dog\n123172,horse\n123173,dog\n123174,dog\n123175,bird\n123176,automobile\n123177,airplane\n123178,airplane\n123179,cat\n123180,dog\n123181,frog\n123182,ship\n123183,ship\n123184,deer\n123185,automobile\n123186,horse\n123187,airplane\n123188,automobile\n123189,deer\n123190,truck\n123191,horse\n123192,dog\n123193,cat\n123194,horse\n123195,horse\n123196,dog\n123197,deer\n123198,automobile\n123199,bird\n123200,automobile\n123201,frog\n123202,deer\n123203,truck\n123204,bird\n123205,airplane\n123206,ship\n123207,bird\n123208,horse\n123209,deer\n123210,dog\n123211,frog\n123212,bird\n123213,cat\n123214,cat\n123215,cat\n123216,dog\n123217,bird\n123218,ship\n123219,ship\n123220,dog\n123221,bird\n123222,bird\n123223,cat\n123224,automobile\n123225,cat\n123226,ship\n123227,deer\n123228,cat\n123229,deer\n123230,truck\n123231,ship\n123232,deer\n123233,cat\n123234,dog\n123235,airplane\n123236,deer\n123237,truck\n123238,horse\n123239,truck\n123240,deer\n123241,bird\n123242,cat\n123243,deer\n123244,airplane\n123245,cat\n123246,bird\n123247,automobile\n123248,truck\n123249,cat\n123250,dog\n123251,deer\n123252,cat\n123253,frog\n123254,deer\n123255,dog\n123256,bird\n123257,automobile\n123258,automobile\n123259,frog\n123260,bird\n123261,ship\n123262,ship\n123263,airplane\n123264,deer\n123265,deer\n123266,dog\n123267,frog\n123268,frog\n123269,automobile\n123270,automobile\n123271,horse\n123272,frog\n123273,ship\n123274,truck\n123275,deer\n123276,truck\n123277,cat\n123278,automobile\n123279,airplane\n123280,cat\n123281,deer\n123282,airplane\n123283,airplane\n123284,dog\n123285,automobile\n123286,dog\n123287,frog\n123288,horse\n123289,dog\n123290,airplane\n123291,horse\n123292,dog\n123293,dog\n123294,deer\n123295,cat\n123296,automobile\n123297,deer\n123298,truck\n123299,automobile\n123300,ship\n123301,ship\n123302,deer\n123303,horse\n123304,bird\n123305,bird\n123306,cat\n123307,truck\n123308,bird\n123309,cat\n123310,truck\n123311,dog\n123312,truck\n123313,airplane\n123314,bird\n123315,deer\n123316,deer\n123317,cat\n123318,airplane\n123319,automobile\n123320,deer\n123321,frog\n123322,bird\n123323,cat\n123324,truck\n123325,bird\n123326,truck\n123327,frog\n123328,bird\n123329,truck\n123330,frog\n123331,truck\n123332,cat\n123333,cat\n123334,frog\n123335,truck\n123336,ship\n123337,ship\n123338,airplane\n123339,dog\n123340,frog\n123341,ship\n123342,frog\n123343,truck\n123344,horse\n123345,truck\n123346,frog\n123347,airplane\n123348,horse\n123349,bird\n123350,deer\n123351,horse\n123352,automobile\n123353,horse\n123354,cat\n123355,ship\n123356,airplane\n123357,deer\n123358,horse\n123359,horse\n123360,deer\n123361,bird\n123362,deer\n123363,deer\n123364,automobile\n123365,frog\n123366,truck\n123367,airplane\n123368,horse\n123369,cat\n123370,dog\n123371,automobile\n123372,automobile\n123373,cat\n123374,dog\n123375,airplane\n123376,truck\n123377,ship\n123378,dog\n123379,automobile\n123380,horse\n123381,cat\n123382,frog\n123383,airplane\n123384,deer\n123385,deer\n123386,deer\n123387,airplane\n123388,ship\n123389,deer\n123390,airplane\n123391,cat\n123392,deer\n123393,automobile\n123394,cat\n123395,automobile\n123396,deer\n123397,ship\n123398,dog\n123399,airplane\n123400,deer\n123401,deer\n123402,bird\n123403,airplane\n123404,dog\n123405,dog\n123406,truck\n123407,truck\n123408,airplane\n123409,truck\n123410,ship\n123411,frog\n123412,bird\n123413,bird\n123414,dog\n123415,dog\n123416,bird\n123417,cat\n123418,deer\n123419,truck\n123420,automobile\n123421,truck\n123422,cat\n123423,dog\n123424,airplane\n123425,airplane\n123426,cat\n123427,cat\n123428,frog\n123429,cat\n123430,ship\n123431,dog\n123432,airplane\n123433,dog\n123434,cat\n123435,deer\n123436,dog\n123437,airplane\n123438,cat\n123439,automobile\n123440,bird\n123441,frog\n123442,horse\n123443,bird\n123444,truck\n123445,deer\n123446,truck\n123447,frog\n123448,frog\n123449,automobile\n123450,bird\n123451,deer\n123452,frog\n123453,ship\n123454,frog\n123455,horse\n123456,airplane\n123457,horse\n123458,horse\n123459,airplane\n123460,frog\n123461,horse\n123462,automobile\n123463,cat\n123464,automobile\n123465,automobile\n123466,deer\n123467,truck\n123468,frog\n123469,horse\n123470,deer\n123471,frog\n123472,truck\n123473,horse\n123474,horse\n123475,bird\n123476,truck\n123477,ship\n123478,cat\n123479,cat\n123480,truck\n123481,truck\n123482,bird\n123483,frog\n123484,cat\n123485,horse\n123486,deer\n123487,deer\n123488,automobile\n123489,automobile\n123490,dog\n123491,dog\n123492,bird\n123493,airplane\n123494,deer\n123495,ship\n123496,dog\n123497,frog\n123498,deer\n123499,bird\n123500,cat\n123501,frog\n123502,deer\n123503,truck\n123504,dog\n123505,automobile\n123506,bird\n123507,truck\n123508,automobile\n123509,ship\n123510,ship\n123511,truck\n123512,deer\n123513,dog\n123514,automobile\n123515,ship\n123516,truck\n123517,frog\n123518,truck\n123519,ship\n123520,automobile\n123521,deer\n123522,deer\n123523,deer\n123524,frog\n123525,dog\n123526,deer\n123527,dog\n123528,automobile\n123529,frog\n123530,bird\n123531,airplane\n123532,frog\n123533,frog\n123534,horse\n123535,truck\n123536,dog\n123537,cat\n123538,deer\n123539,deer\n123540,dog\n123541,deer\n123542,truck\n123543,automobile\n123544,frog\n123545,ship\n123546,bird\n123547,horse\n123548,deer\n123549,ship\n123550,ship\n123551,deer\n123552,truck\n123553,ship\n123554,truck\n123555,cat\n123556,cat\n123557,truck\n123558,bird\n123559,frog\n123560,cat\n123561,dog\n123562,cat\n123563,bird\n123564,automobile\n123565,deer\n123566,cat\n123567,cat\n123568,frog\n123569,airplane\n123570,bird\n123571,truck\n123572,airplane\n123573,bird\n123574,deer\n123575,bird\n123576,automobile\n123577,frog\n123578,dog\n123579,deer\n123580,truck\n123581,bird\n123582,horse\n123583,truck\n123584,deer\n123585,automobile\n123586,cat\n123587,automobile\n123588,horse\n123589,cat\n123590,airplane\n123591,frog\n123592,ship\n123593,frog\n123594,bird\n123595,bird\n123596,truck\n123597,airplane\n123598,frog\n123599,frog\n123600,cat\n123601,deer\n123602,ship\n123603,automobile\n123604,cat\n123605,truck\n123606,dog\n123607,dog\n123608,bird\n123609,automobile\n123610,cat\n123611,dog\n123612,cat\n123613,bird\n123614,airplane\n123615,frog\n123616,frog\n123617,ship\n123618,deer\n123619,cat\n123620,truck\n123621,bird\n123622,frog\n123623,ship\n123624,deer\n123625,cat\n123626,dog\n123627,ship\n123628,ship\n123629,deer\n123630,dog\n123631,dog\n123632,bird\n123633,ship\n123634,airplane\n123635,deer\n123636,ship\n123637,horse\n123638,frog\n123639,dog\n123640,cat\n123641,truck\n123642,dog\n123643,horse\n123644,horse\n123645,ship\n123646,cat\n123647,dog\n123648,truck\n123649,cat\n123650,horse\n123651,frog\n123652,cat\n123653,deer\n123654,deer\n123655,automobile\n123656,deer\n123657,horse\n123658,deer\n123659,dog\n123660,cat\n123661,automobile\n123662,automobile\n123663,bird\n123664,airplane\n123665,airplane\n123666,deer\n123667,frog\n123668,cat\n123669,bird\n123670,dog\n123671,dog\n123672,cat\n123673,ship\n123674,frog\n123675,ship\n123676,truck\n123677,cat\n123678,bird\n123679,truck\n123680,airplane\n123681,truck\n123682,cat\n123683,frog\n123684,automobile\n123685,dog\n123686,deer\n123687,deer\n123688,deer\n123689,cat\n123690,ship\n123691,automobile\n123692,dog\n123693,cat\n123694,truck\n123695,deer\n123696,bird\n123697,deer\n123698,ship\n123699,deer\n123700,truck\n123701,airplane\n123702,dog\n123703,cat\n123704,cat\n123705,cat\n123706,horse\n123707,bird\n123708,deer\n123709,automobile\n123710,horse\n123711,cat\n123712,bird\n123713,deer\n123714,automobile\n123715,dog\n123716,deer\n123717,horse\n123718,deer\n123719,deer\n123720,deer\n123721,deer\n123722,bird\n123723,deer\n123724,truck\n123725,cat\n123726,bird\n123727,bird\n123728,horse\n123729,truck\n123730,airplane\n123731,automobile\n123732,airplane\n123733,deer\n123734,frog\n123735,deer\n123736,ship\n123737,deer\n123738,truck\n123739,cat\n123740,truck\n123741,airplane\n123742,horse\n123743,deer\n123744,automobile\n123745,horse\n123746,dog\n123747,deer\n123748,automobile\n123749,ship\n123750,cat\n123751,frog\n123752,horse\n123753,frog\n123754,deer\n123755,deer\n123756,dog\n123757,automobile\n123758,frog\n123759,truck\n123760,airplane\n123761,frog\n123762,automobile\n123763,dog\n123764,dog\n123765,dog\n123766,ship\n123767,dog\n123768,automobile\n123769,cat\n123770,frog\n123771,truck\n123772,truck\n123773,deer\n123774,frog\n123775,horse\n123776,airplane\n123777,truck\n123778,cat\n123779,bird\n123780,airplane\n123781,automobile\n123782,airplane\n123783,frog\n123784,bird\n123785,deer\n123786,cat\n123787,ship\n123788,bird\n123789,frog\n123790,deer\n123791,airplane\n123792,airplane\n123793,truck\n123794,cat\n123795,airplane\n123796,truck\n123797,ship\n123798,automobile\n123799,airplane\n123800,frog\n123801,bird\n123802,dog\n123803,dog\n123804,dog\n123805,dog\n123806,automobile\n123807,truck\n123808,truck\n123809,frog\n123810,frog\n123811,bird\n123812,bird\n123813,cat\n123814,horse\n123815,bird\n123816,dog\n123817,horse\n123818,horse\n123819,deer\n123820,horse\n123821,frog\n123822,airplane\n123823,horse\n123824,horse\n123825,airplane\n123826,airplane\n123827,frog\n123828,dog\n123829,ship\n123830,truck\n123831,deer\n123832,automobile\n123833,bird\n123834,deer\n123835,bird\n123836,cat\n123837,airplane\n123838,deer\n123839,cat\n123840,airplane\n123841,horse\n123842,frog\n123843,airplane\n123844,truck\n123845,airplane\n123846,frog\n123847,truck\n123848,automobile\n123849,cat\n123850,cat\n123851,ship\n123852,dog\n123853,airplane\n123854,ship\n123855,dog\n123856,frog\n123857,frog\n123858,cat\n123859,automobile\n123860,bird\n123861,dog\n123862,cat\n123863,horse\n123864,airplane\n123865,bird\n123866,dog\n123867,airplane\n123868,frog\n123869,automobile\n123870,bird\n123871,ship\n123872,automobile\n123873,cat\n123874,truck\n123875,bird\n123876,deer\n123877,automobile\n123878,horse\n123879,truck\n123880,cat\n123881,deer\n123882,deer\n123883,cat\n123884,horse\n123885,truck\n123886,horse\n123887,cat\n123888,dog\n123889,bird\n123890,deer\n123891,airplane\n123892,bird\n123893,horse\n123894,deer\n123895,horse\n123896,bird\n123897,horse\n123898,deer\n123899,automobile\n123900,airplane\n123901,cat\n123902,deer\n123903,dog\n123904,bird\n123905,dog\n123906,ship\n123907,cat\n123908,frog\n123909,airplane\n123910,automobile\n123911,deer\n123912,horse\n123913,deer\n123914,cat\n123915,automobile\n123916,airplane\n123917,airplane\n123918,deer\n123919,horse\n123920,truck\n123921,frog\n123922,deer\n123923,automobile\n123924,frog\n123925,dog\n123926,dog\n123927,truck\n123928,cat\n123929,airplane\n123930,dog\n123931,deer\n123932,deer\n123933,dog\n123934,dog\n123935,horse\n123936,dog\n123937,airplane\n123938,dog\n123939,deer\n123940,deer\n123941,automobile\n123942,dog\n123943,dog\n123944,deer\n123945,frog\n123946,ship\n123947,ship\n123948,automobile\n123949,bird\n123950,horse\n123951,horse\n123952,deer\n123953,frog\n123954,bird\n123955,bird\n123956,horse\n123957,dog\n123958,truck\n123959,truck\n123960,truck\n123961,automobile\n123962,cat\n123963,frog\n123964,dog\n123965,cat\n123966,cat\n123967,airplane\n123968,horse\n123969,ship\n123970,deer\n123971,truck\n123972,cat\n123973,horse\n123974,deer\n123975,airplane\n123976,airplane\n123977,airplane\n123978,truck\n123979,frog\n123980,bird\n123981,dog\n123982,automobile\n123983,frog\n123984,airplane\n123985,bird\n123986,dog\n123987,deer\n123988,deer\n123989,cat\n123990,horse\n123991,bird\n123992,deer\n123993,horse\n123994,horse\n123995,dog\n123996,horse\n123997,horse\n123998,bird\n123999,truck\n124000,deer\n124001,deer\n124002,horse\n124003,horse\n124004,cat\n124005,deer\n124006,truck\n124007,bird\n124008,airplane\n124009,horse\n124010,frog\n124011,cat\n124012,airplane\n124013,truck\n124014,truck\n124015,frog\n124016,ship\n124017,deer\n124018,bird\n124019,cat\n124020,truck\n124021,deer\n124022,bird\n124023,deer\n124024,truck\n124025,frog\n124026,deer\n124027,dog\n124028,deer\n124029,automobile\n124030,automobile\n124031,truck\n124032,cat\n124033,horse\n124034,frog\n124035,horse\n124036,horse\n124037,horse\n124038,frog\n124039,truck\n124040,cat\n124041,ship\n124042,cat\n124043,deer\n124044,cat\n124045,airplane\n124046,airplane\n124047,frog\n124048,truck\n124049,ship\n124050,horse\n124051,ship\n124052,deer\n124053,cat\n124054,airplane\n124055,automobile\n124056,truck\n124057,bird\n124058,frog\n124059,dog\n124060,deer\n124061,frog\n124062,ship\n124063,truck\n124064,truck\n124065,deer\n124066,cat\n124067,automobile\n124068,dog\n124069,truck\n124070,deer\n124071,frog\n124072,bird\n124073,frog\n124074,truck\n124075,frog\n124076,frog\n124077,horse\n124078,bird\n124079,bird\n124080,deer\n124081,deer\n124082,horse\n124083,dog\n124084,dog\n124085,cat\n124086,deer\n124087,dog\n124088,deer\n124089,horse\n124090,truck\n124091,dog\n124092,automobile\n124093,airplane\n124094,deer\n124095,deer\n124096,dog\n124097,automobile\n124098,truck\n124099,cat\n124100,cat\n124101,deer\n124102,automobile\n124103,frog\n124104,dog\n124105,bird\n124106,dog\n124107,bird\n124108,deer\n124109,cat\n124110,ship\n124111,ship\n124112,deer\n124113,bird\n124114,cat\n124115,airplane\n124116,truck\n124117,cat\n124118,frog\n124119,frog\n124120,deer\n124121,deer\n124122,cat\n124123,cat\n124124,cat\n124125,airplane\n124126,bird\n124127,automobile\n124128,dog\n124129,automobile\n124130,airplane\n124131,deer\n124132,bird\n124133,truck\n124134,frog\n124135,truck\n124136,deer\n124137,bird\n124138,automobile\n124139,deer\n124140,airplane\n124141,cat\n124142,truck\n124143,horse\n124144,dog\n124145,deer\n124146,truck\n124147,bird\n124148,cat\n124149,horse\n124150,deer\n124151,horse\n124152,bird\n124153,cat\n124154,airplane\n124155,frog\n124156,airplane\n124157,cat\n124158,cat\n124159,bird\n124160,dog\n124161,cat\n124162,airplane\n124163,deer\n124164,frog\n124165,automobile\n124166,frog\n124167,deer\n124168,cat\n124169,frog\n124170,automobile\n124171,ship\n124172,frog\n124173,truck\n124174,automobile\n124175,deer\n124176,cat\n124177,automobile\n124178,bird\n124179,automobile\n124180,automobile\n124181,bird\n124182,deer\n124183,frog\n124184,frog\n124185,dog\n124186,dog\n124187,frog\n124188,horse\n124189,cat\n124190,dog\n124191,cat\n124192,dog\n124193,airplane\n124194,deer\n124195,truck\n124196,horse\n124197,cat\n124198,automobile\n124199,dog\n124200,frog\n124201,deer\n124202,deer\n124203,dog\n124204,cat\n124205,truck\n124206,cat\n124207,cat\n124208,cat\n124209,bird\n124210,frog\n124211,dog\n124212,automobile\n124213,ship\n124214,frog\n124215,truck\n124216,truck\n124217,bird\n124218,bird\n124219,frog\n124220,frog\n124221,truck\n124222,airplane\n124223,automobile\n124224,truck\n124225,frog\n124226,truck\n124227,frog\n124228,frog\n124229,horse\n124230,bird\n124231,dog\n124232,truck\n124233,ship\n124234,deer\n124235,frog\n124236,truck\n124237,dog\n124238,deer\n124239,airplane\n124240,automobile\n124241,horse\n124242,deer\n124243,deer\n124244,deer\n124245,frog\n124246,bird\n124247,deer\n124248,automobile\n124249,automobile\n124250,cat\n124251,ship\n124252,deer\n124253,deer\n124254,dog\n124255,frog\n124256,frog\n124257,truck\n124258,deer\n124259,horse\n124260,cat\n124261,dog\n124262,truck\n124263,truck\n124264,deer\n124265,horse\n124266,horse\n124267,automobile\n124268,cat\n124269,airplane\n124270,truck\n124271,deer\n124272,airplane\n124273,deer\n124274,airplane\n124275,truck\n124276,horse\n124277,truck\n124278,cat\n124279,airplane\n124280,horse\n124281,bird\n124282,truck\n124283,truck\n124284,automobile\n124285,cat\n124286,frog\n124287,horse\n124288,frog\n124289,deer\n124290,horse\n124291,horse\n124292,deer\n124293,truck\n124294,automobile\n124295,dog\n124296,bird\n124297,ship\n124298,airplane\n124299,deer\n124300,cat\n124301,dog\n124302,truck\n124303,cat\n124304,cat\n124305,dog\n124306,deer\n124307,automobile\n124308,dog\n124309,automobile\n124310,frog\n124311,dog\n124312,cat\n124313,frog\n124314,horse\n124315,horse\n124316,ship\n124317,horse\n124318,ship\n124319,deer\n124320,frog\n124321,truck\n124322,frog\n124323,cat\n124324,horse\n124325,deer\n124326,truck\n124327,deer\n124328,dog\n124329,horse\n124330,horse\n124331,deer\n124332,dog\n124333,airplane\n124334,cat\n124335,cat\n124336,ship\n124337,frog\n124338,deer\n124339,automobile\n124340,frog\n124341,airplane\n124342,horse\n124343,automobile\n124344,horse\n124345,cat\n124346,automobile\n124347,airplane\n124348,bird\n124349,automobile\n124350,ship\n124351,airplane\n124352,deer\n124353,automobile\n124354,horse\n124355,deer\n124356,ship\n124357,ship\n124358,frog\n124359,horse\n124360,dog\n124361,truck\n124362,cat\n124363,deer\n124364,horse\n124365,bird\n124366,deer\n124367,dog\n124368,airplane\n124369,automobile\n124370,deer\n124371,deer\n124372,airplane\n124373,airplane\n124374,ship\n124375,ship\n124376,cat\n124377,truck\n124378,frog\n124379,truck\n124380,automobile\n124381,horse\n124382,airplane\n124383,truck\n124384,airplane\n124385,airplane\n124386,truck\n124387,automobile\n124388,truck\n124389,airplane\n124390,frog\n124391,deer\n124392,ship\n124393,cat\n124394,deer\n124395,automobile\n124396,bird\n124397,horse\n124398,automobile\n124399,cat\n124400,bird\n124401,horse\n124402,horse\n124403,bird\n124404,cat\n124405,bird\n124406,deer\n124407,deer\n124408,deer\n124409,cat\n124410,airplane\n124411,frog\n124412,bird\n124413,deer\n124414,horse\n124415,ship\n124416,automobile\n124417,frog\n124418,horse\n124419,dog\n124420,dog\n124421,dog\n124422,bird\n124423,bird\n124424,dog\n124425,dog\n124426,bird\n124427,automobile\n124428,cat\n124429,bird\n124430,truck\n124431,horse\n124432,airplane\n124433,frog\n124434,horse\n124435,frog\n124436,deer\n124437,deer\n124438,truck\n124439,cat\n124440,ship\n124441,frog\n124442,deer\n124443,dog\n124444,airplane\n124445,cat\n124446,truck\n124447,frog\n124448,airplane\n124449,automobile\n124450,frog\n124451,deer\n124452,airplane\n124453,deer\n124454,airplane\n124455,horse\n124456,frog\n124457,frog\n124458,horse\n124459,frog\n124460,truck\n124461,dog\n124462,horse\n124463,horse\n124464,cat\n124465,ship\n124466,dog\n124467,automobile\n124468,dog\n124469,dog\n124470,airplane\n124471,cat\n124472,horse\n124473,cat\n124474,cat\n124475,deer\n124476,frog\n124477,frog\n124478,dog\n124479,ship\n124480,horse\n124481,airplane\n124482,horse\n124483,automobile\n124484,horse\n124485,dog\n124486,truck\n124487,dog\n124488,ship\n124489,deer\n124490,truck\n124491,horse\n124492,cat\n124493,cat\n124494,airplane\n124495,automobile\n124496,deer\n124497,airplane\n124498,automobile\n124499,horse\n124500,frog\n124501,bird\n124502,airplane\n124503,frog\n124504,automobile\n124505,frog\n124506,bird\n124507,cat\n124508,dog\n124509,airplane\n124510,frog\n124511,bird\n124512,dog\n124513,ship\n124514,dog\n124515,cat\n124516,deer\n124517,frog\n124518,deer\n124519,cat\n124520,truck\n124521,ship\n124522,deer\n124523,deer\n124524,horse\n124525,cat\n124526,cat\n124527,frog\n124528,cat\n124529,cat\n124530,frog\n124531,deer\n124532,deer\n124533,horse\n124534,cat\n124535,dog\n124536,dog\n124537,frog\n124538,dog\n124539,ship\n124540,truck\n124541,cat\n124542,horse\n124543,airplane\n124544,dog\n124545,deer\n124546,deer\n124547,truck\n124548,cat\n124549,cat\n124550,airplane\n124551,frog\n124552,deer\n124553,deer\n124554,deer\n124555,bird\n124556,dog\n124557,truck\n124558,frog\n124559,truck\n124560,cat\n124561,cat\n124562,airplane\n124563,automobile\n124564,cat\n124565,dog\n124566,horse\n124567,airplane\n124568,cat\n124569,horse\n124570,cat\n124571,airplane\n124572,ship\n124573,cat\n124574,frog\n124575,airplane\n124576,dog\n124577,airplane\n124578,deer\n124579,automobile\n124580,frog\n124581,frog\n124582,deer\n124583,cat\n124584,truck\n124585,cat\n124586,cat\n124587,truck\n124588,truck\n124589,ship\n124590,deer\n124591,airplane\n124592,truck\n124593,ship\n124594,ship\n124595,automobile\n124596,ship\n124597,truck\n124598,deer\n124599,deer\n124600,bird\n124601,dog\n124602,ship\n124603,cat\n124604,automobile\n124605,automobile\n124606,cat\n124607,horse\n124608,automobile\n124609,cat\n124610,truck\n124611,bird\n124612,bird\n124613,cat\n124614,deer\n124615,airplane\n124616,airplane\n124617,bird\n124618,ship\n124619,deer\n124620,deer\n124621,deer\n124622,horse\n124623,dog\n124624,cat\n124625,truck\n124626,deer\n124627,dog\n124628,cat\n124629,frog\n124630,truck\n124631,deer\n124632,bird\n124633,cat\n124634,frog\n124635,automobile\n124636,horse\n124637,frog\n124638,cat\n124639,truck\n124640,cat\n124641,cat\n124642,horse\n124643,frog\n124644,horse\n124645,deer\n124646,ship\n124647,dog\n124648,truck\n124649,airplane\n124650,ship\n124651,dog\n124652,airplane\n124653,horse\n124654,deer\n124655,dog\n124656,cat\n124657,bird\n124658,horse\n124659,deer\n124660,dog\n124661,deer\n124662,truck\n124663,airplane\n124664,dog\n124665,horse\n124666,frog\n124667,bird\n124668,airplane\n124669,dog\n124670,dog\n124671,frog\n124672,cat\n124673,airplane\n124674,horse\n124675,cat\n124676,truck\n124677,horse\n124678,frog\n124679,ship\n124680,horse\n124681,horse\n124682,airplane\n124683,horse\n124684,cat\n124685,frog\n124686,truck\n124687,bird\n124688,horse\n124689,dog\n124690,airplane\n124691,ship\n124692,automobile\n124693,airplane\n124694,bird\n124695,dog\n124696,deer\n124697,truck\n124698,airplane\n124699,bird\n124700,automobile\n124701,automobile\n124702,frog\n124703,airplane\n124704,automobile\n124705,horse\n124706,airplane\n124707,truck\n124708,airplane\n124709,cat\n124710,automobile\n124711,airplane\n124712,truck\n124713,cat\n124714,horse\n124715,deer\n124716,bird\n124717,truck\n124718,ship\n124719,deer\n124720,horse\n124721,ship\n124722,truck\n124723,frog\n124724,automobile\n124725,deer\n124726,bird\n124727,frog\n124728,dog\n124729,ship\n124730,deer\n124731,ship\n124732,cat\n124733,deer\n124734,horse\n124735,truck\n124736,cat\n124737,airplane\n124738,truck\n124739,deer\n124740,automobile\n124741,frog\n124742,ship\n124743,ship\n124744,horse\n124745,frog\n124746,ship\n124747,cat\n124748,dog\n124749,cat\n124750,frog\n124751,automobile\n124752,cat\n124753,horse\n124754,truck\n124755,airplane\n124756,dog\n124757,horse\n124758,deer\n124759,truck\n124760,airplane\n124761,horse\n124762,dog\n124763,truck\n124764,dog\n124765,deer\n124766,truck\n124767,horse\n124768,bird\n124769,bird\n124770,cat\n124771,ship\n124772,dog\n124773,horse\n124774,truck\n124775,ship\n124776,automobile\n124777,truck\n124778,airplane\n124779,airplane\n124780,dog\n124781,automobile\n124782,truck\n124783,airplane\n124784,automobile\n124785,airplane\n124786,frog\n124787,frog\n124788,horse\n124789,horse\n124790,deer\n124791,deer\n124792,horse\n124793,automobile\n124794,truck\n124795,truck\n124796,automobile\n124797,bird\n124798,frog\n124799,deer\n124800,dog\n124801,cat\n124802,deer\n124803,frog\n124804,truck\n124805,deer\n124806,dog\n124807,frog\n124808,ship\n124809,truck\n124810,truck\n124811,deer\n124812,airplane\n124813,airplane\n124814,horse\n124815,horse\n124816,horse\n124817,truck\n124818,frog\n124819,deer\n124820,horse\n124821,truck\n124822,frog\n124823,dog\n124824,horse\n124825,horse\n124826,cat\n124827,bird\n124828,dog\n124829,ship\n124830,truck\n124831,frog\n124832,ship\n124833,automobile\n124834,airplane\n124835,horse\n124836,airplane\n124837,dog\n124838,bird\n124839,truck\n124840,bird\n124841,cat\n124842,frog\n124843,bird\n124844,frog\n124845,horse\n124846,deer\n124847,frog\n124848,deer\n124849,cat\n124850,ship\n124851,cat\n124852,dog\n124853,dog\n124854,bird\n124855,truck\n124856,cat\n124857,deer\n124858,automobile\n124859,frog\n124860,dog\n124861,ship\n124862,cat\n124863,cat\n124864,cat\n124865,deer\n124866,cat\n124867,automobile\n124868,airplane\n124869,dog\n124870,dog\n124871,bird\n124872,cat\n124873,cat\n124874,dog\n124875,airplane\n124876,ship\n124877,bird\n124878,frog\n124879,horse\n124880,dog\n124881,bird\n124882,deer\n124883,dog\n124884,truck\n124885,frog\n124886,bird\n124887,bird\n124888,cat\n124889,frog\n124890,frog\n124891,airplane\n124892,cat\n124893,automobile\n124894,dog\n124895,dog\n124896,frog\n124897,deer\n124898,airplane\n124899,frog\n124900,airplane\n124901,frog\n124902,horse\n124903,truck\n124904,ship\n124905,horse\n124906,deer\n124907,truck\n124908,dog\n124909,airplane\n124910,frog\n124911,dog\n124912,airplane\n124913,truck\n124914,automobile\n124915,ship\n124916,deer\n124917,dog\n124918,ship\n124919,airplane\n124920,bird\n124921,deer\n124922,deer\n124923,bird\n124924,cat\n124925,deer\n124926,airplane\n124927,frog\n124928,deer\n124929,cat\n124930,frog\n124931,airplane\n124932,frog\n124933,dog\n124934,truck\n124935,frog\n124936,frog\n124937,airplane\n124938,airplane\n124939,truck\n124940,frog\n124941,frog\n124942,dog\n124943,bird\n124944,automobile\n124945,deer\n124946,ship\n124947,dog\n124948,dog\n124949,bird\n124950,deer\n124951,ship\n124952,dog\n124953,horse\n124954,ship\n124955,horse\n124956,dog\n124957,frog\n124958,dog\n124959,dog\n124960,bird\n124961,cat\n124962,cat\n124963,bird\n124964,airplane\n124965,deer\n124966,deer\n124967,ship\n124968,bird\n124969,bird\n124970,ship\n124971,airplane\n124972,frog\n124973,deer\n124974,cat\n124975,ship\n124976,truck\n124977,deer\n124978,automobile\n124979,frog\n124980,truck\n124981,airplane\n124982,automobile\n124983,cat\n124984,airplane\n124985,cat\n124986,deer\n124987,truck\n124988,dog\n124989,frog\n124990,dog\n124991,truck\n124992,deer\n124993,ship\n124994,frog\n124995,cat\n124996,ship\n124997,airplane\n124998,dog\n124999,automobile\n125000,cat\n125001,airplane\n125002,dog\n125003,truck\n125004,dog\n125005,cat\n125006,truck\n125007,automobile\n125008,ship\n125009,truck\n125010,bird\n125011,cat\n125012,horse\n125013,horse\n125014,airplane\n125015,deer\n125016,frog\n125017,deer\n125018,frog\n125019,deer\n125020,dog\n125021,horse\n125022,frog\n125023,automobile\n125024,ship\n125025,horse\n125026,cat\n125027,deer\n125028,horse\n125029,airplane\n125030,frog\n125031,truck\n125032,truck\n125033,dog\n125034,horse\n125035,cat\n125036,deer\n125037,deer\n125038,bird\n125039,dog\n125040,deer\n125041,frog\n125042,bird\n125043,cat\n125044,deer\n125045,cat\n125046,frog\n125047,frog\n125048,bird\n125049,ship\n125050,dog\n125051,horse\n125052,cat\n125053,truck\n125054,truck\n125055,cat\n125056,airplane\n125057,ship\n125058,truck\n125059,truck\n125060,deer\n125061,dog\n125062,truck\n125063,deer\n125064,ship\n125065,truck\n125066,horse\n125067,cat\n125068,ship\n125069,bird\n125070,truck\n125071,bird\n125072,frog\n125073,dog\n125074,cat\n125075,frog\n125076,horse\n125077,bird\n125078,deer\n125079,truck\n125080,dog\n125081,deer\n125082,cat\n125083,airplane\n125084,bird\n125085,truck\n125086,horse\n125087,ship\n125088,truck\n125089,deer\n125090,frog\n125091,truck\n125092,truck\n125093,frog\n125094,frog\n125095,bird\n125096,deer\n125097,frog\n125098,deer\n125099,airplane\n125100,frog\n125101,ship\n125102,cat\n125103,dog\n125104,deer\n125105,ship\n125106,airplane\n125107,automobile\n125108,frog\n125109,deer\n125110,bird\n125111,airplane\n125112,cat\n125113,horse\n125114,cat\n125115,horse\n125116,dog\n125117,horse\n125118,dog\n125119,truck\n125120,dog\n125121,cat\n125122,automobile\n125123,horse\n125124,airplane\n125125,automobile\n125126,bird\n125127,deer\n125128,frog\n125129,truck\n125130,frog\n125131,frog\n125132,dog\n125133,frog\n125134,frog\n125135,frog\n125136,truck\n125137,frog\n125138,dog\n125139,dog\n125140,ship\n125141,truck\n125142,bird\n125143,dog\n125144,bird\n125145,bird\n125146,deer\n125147,ship\n125148,truck\n125149,airplane\n125150,ship\n125151,ship\n125152,deer\n125153,truck\n125154,deer\n125155,ship\n125156,automobile\n125157,automobile\n125158,automobile\n125159,deer\n125160,horse\n125161,deer\n125162,ship\n125163,frog\n125164,bird\n125165,deer\n125166,horse\n125167,frog\n125168,deer\n125169,bird\n125170,deer\n125171,frog\n125172,deer\n125173,deer\n125174,automobile\n125175,automobile\n125176,dog\n125177,deer\n125178,airplane\n125179,ship\n125180,deer\n125181,cat\n125182,cat\n125183,deer\n125184,airplane\n125185,horse\n125186,automobile\n125187,frog\n125188,dog\n125189,airplane\n125190,cat\n125191,cat\n125192,bird\n125193,airplane\n125194,frog\n125195,automobile\n125196,deer\n125197,airplane\n125198,cat\n125199,horse\n125200,automobile\n125201,truck\n125202,automobile\n125203,cat\n125204,dog\n125205,cat\n125206,dog\n125207,deer\n125208,airplane\n125209,bird\n125210,cat\n125211,dog\n125212,cat\n125213,frog\n125214,horse\n125215,frog\n125216,frog\n125217,ship\n125218,bird\n125219,frog\n125220,bird\n125221,dog\n125222,bird\n125223,truck\n125224,frog\n125225,airplane\n125226,ship\n125227,horse\n125228,bird\n125229,deer\n125230,deer\n125231,automobile\n125232,horse\n125233,airplane\n125234,cat\n125235,frog\n125236,airplane\n125237,cat\n125238,dog\n125239,ship\n125240,ship\n125241,deer\n125242,horse\n125243,bird\n125244,deer\n125245,frog\n125246,dog\n125247,horse\n125248,deer\n125249,cat\n125250,bird\n125251,dog\n125252,dog\n125253,frog\n125254,bird\n125255,horse\n125256,deer\n125257,deer\n125258,frog\n125259,deer\n125260,automobile\n125261,bird\n125262,cat\n125263,truck\n125264,cat\n125265,horse\n125266,dog\n125267,ship\n125268,horse\n125269,dog\n125270,dog\n125271,frog\n125272,automobile\n125273,horse\n125274,automobile\n125275,ship\n125276,deer\n125277,frog\n125278,cat\n125279,deer\n125280,truck\n125281,horse\n125282,cat\n125283,dog\n125284,dog\n125285,horse\n125286,cat\n125287,cat\n125288,dog\n125289,airplane\n125290,horse\n125291,deer\n125292,airplane\n125293,horse\n125294,deer\n125295,dog\n125296,deer\n125297,frog\n125298,cat\n125299,frog\n125300,truck\n125301,cat\n125302,cat\n125303,deer\n125304,truck\n125305,deer\n125306,bird\n125307,ship\n125308,dog\n125309,dog\n125310,cat\n125311,truck\n125312,ship\n125313,dog\n125314,dog\n125315,truck\n125316,airplane\n125317,cat\n125318,bird\n125319,airplane\n125320,horse\n125321,automobile\n125322,horse\n125323,frog\n125324,ship\n125325,bird\n125326,cat\n125327,automobile\n125328,dog\n125329,frog\n125330,frog\n125331,cat\n125332,horse\n125333,truck\n125334,frog\n125335,automobile\n125336,truck\n125337,airplane\n125338,deer\n125339,horse\n125340,dog\n125341,airplane\n125342,deer\n125343,deer\n125344,cat\n125345,dog\n125346,automobile\n125347,automobile\n125348,horse\n125349,ship\n125350,bird\n125351,ship\n125352,ship\n125353,automobile\n125354,automobile\n125355,airplane\n125356,truck\n125357,bird\n125358,cat\n125359,truck\n125360,dog\n125361,dog\n125362,airplane\n125363,cat\n125364,cat\n125365,bird\n125366,truck\n125367,frog\n125368,deer\n125369,ship\n125370,deer\n125371,bird\n125372,deer\n125373,horse\n125374,deer\n125375,airplane\n125376,frog\n125377,airplane\n125378,deer\n125379,cat\n125380,bird\n125381,ship\n125382,automobile\n125383,automobile\n125384,dog\n125385,dog\n125386,airplane\n125387,deer\n125388,automobile\n125389,dog\n125390,frog\n125391,automobile\n125392,bird\n125393,automobile\n125394,truck\n125395,cat\n125396,frog\n125397,deer\n125398,deer\n125399,ship\n125400,truck\n125401,automobile\n125402,horse\n125403,cat\n125404,airplane\n125405,bird\n125406,horse\n125407,frog\n125408,cat\n125409,horse\n125410,airplane\n125411,dog\n125412,airplane\n125413,horse\n125414,bird\n125415,truck\n125416,truck\n125417,frog\n125418,cat\n125419,dog\n125420,airplane\n125421,ship\n125422,airplane\n125423,deer\n125424,deer\n125425,frog\n125426,deer\n125427,cat\n125428,dog\n125429,horse\n125430,cat\n125431,dog\n125432,ship\n125433,ship\n125434,cat\n125435,deer\n125436,ship\n125437,cat\n125438,automobile\n125439,automobile\n125440,automobile\n125441,horse\n125442,deer\n125443,horse\n125444,ship\n125445,truck\n125446,horse\n125447,bird\n125448,dog\n125449,airplane\n125450,automobile\n125451,dog\n125452,airplane\n125453,bird\n125454,dog\n125455,cat\n125456,ship\n125457,cat\n125458,truck\n125459,dog\n125460,cat\n125461,frog\n125462,horse\n125463,airplane\n125464,cat\n125465,ship\n125466,cat\n125467,dog\n125468,cat\n125469,truck\n125470,bird\n125471,bird\n125472,frog\n125473,bird\n125474,truck\n125475,horse\n125476,bird\n125477,bird\n125478,frog\n125479,dog\n125480,cat\n125481,frog\n125482,truck\n125483,bird\n125484,airplane\n125485,airplane\n125486,deer\n125487,automobile\n125488,deer\n125489,dog\n125490,horse\n125491,ship\n125492,dog\n125493,cat\n125494,cat\n125495,airplane\n125496,horse\n125497,horse\n125498,ship\n125499,frog\n125500,ship\n125501,ship\n125502,cat\n125503,ship\n125504,truck\n125505,ship\n125506,airplane\n125507,cat\n125508,cat\n125509,truck\n125510,horse\n125511,dog\n125512,dog\n125513,airplane\n125514,truck\n125515,airplane\n125516,cat\n125517,airplane\n125518,ship\n125519,deer\n125520,truck\n125521,dog\n125522,horse\n125523,truck\n125524,automobile\n125525,deer\n125526,deer\n125527,dog\n125528,deer\n125529,bird\n125530,horse\n125531,airplane\n125532,truck\n125533,horse\n125534,frog\n125535,truck\n125536,deer\n125537,deer\n125538,horse\n125539,bird\n125540,bird\n125541,deer\n125542,frog\n125543,automobile\n125544,automobile\n125545,dog\n125546,horse\n125547,cat\n125548,bird\n125549,truck\n125550,truck\n125551,deer\n125552,frog\n125553,horse\n125554,cat\n125555,frog\n125556,frog\n125557,bird\n125558,dog\n125559,bird\n125560,cat\n125561,frog\n125562,cat\n125563,ship\n125564,dog\n125565,cat\n125566,automobile\n125567,dog\n125568,ship\n125569,ship\n125570,automobile\n125571,dog\n125572,cat\n125573,cat\n125574,airplane\n125575,airplane\n125576,horse\n125577,frog\n125578,truck\n125579,ship\n125580,deer\n125581,truck\n125582,bird\n125583,ship\n125584,bird\n125585,ship\n125586,horse\n125587,deer\n125588,horse\n125589,cat\n125590,truck\n125591,ship\n125592,deer\n125593,frog\n125594,horse\n125595,frog\n125596,horse\n125597,cat\n125598,truck\n125599,dog\n125600,cat\n125601,ship\n125602,cat\n125603,automobile\n125604,deer\n125605,bird\n125606,automobile\n125607,bird\n125608,frog\n125609,deer\n125610,horse\n125611,bird\n125612,horse\n125613,dog\n125614,deer\n125615,deer\n125616,horse\n125617,dog\n125618,truck\n125619,horse\n125620,truck\n125621,ship\n125622,airplane\n125623,deer\n125624,deer\n125625,cat\n125626,ship\n125627,airplane\n125628,airplane\n125629,truck\n125630,airplane\n125631,dog\n125632,automobile\n125633,truck\n125634,deer\n125635,bird\n125636,frog\n125637,deer\n125638,automobile\n125639,frog\n125640,bird\n125641,frog\n125642,cat\n125643,cat\n125644,deer\n125645,dog\n125646,automobile\n125647,bird\n125648,truck\n125649,truck\n125650,cat\n125651,deer\n125652,truck\n125653,frog\n125654,cat\n125655,frog\n125656,frog\n125657,airplane\n125658,deer\n125659,horse\n125660,bird\n125661,automobile\n125662,frog\n125663,ship\n125664,cat\n125665,airplane\n125666,horse\n125667,bird\n125668,deer\n125669,dog\n125670,deer\n125671,truck\n125672,dog\n125673,truck\n125674,airplane\n125675,truck\n125676,frog\n125677,dog\n125678,cat\n125679,automobile\n125680,truck\n125681,cat\n125682,airplane\n125683,ship\n125684,bird\n125685,cat\n125686,dog\n125687,frog\n125688,cat\n125689,deer\n125690,dog\n125691,bird\n125692,deer\n125693,bird\n125694,deer\n125695,airplane\n125696,horse\n125697,cat\n125698,dog\n125699,cat\n125700,automobile\n125701,horse\n125702,frog\n125703,deer\n125704,automobile\n125705,horse\n125706,frog\n125707,cat\n125708,horse\n125709,frog\n125710,deer\n125711,horse\n125712,horse\n125713,cat\n125714,bird\n125715,frog\n125716,airplane\n125717,bird\n125718,frog\n125719,truck\n125720,bird\n125721,horse\n125722,cat\n125723,truck\n125724,truck\n125725,deer\n125726,airplane\n125727,truck\n125728,ship\n125729,deer\n125730,frog\n125731,cat\n125732,cat\n125733,frog\n125734,horse\n125735,truck\n125736,dog\n125737,deer\n125738,cat\n125739,bird\n125740,cat\n125741,truck\n125742,dog\n125743,deer\n125744,bird\n125745,truck\n125746,deer\n125747,dog\n125748,cat\n125749,frog\n125750,ship\n125751,cat\n125752,ship\n125753,horse\n125754,automobile\n125755,ship\n125756,bird\n125757,horse\n125758,dog\n125759,horse\n125760,airplane\n125761,cat\n125762,horse\n125763,bird\n125764,deer\n125765,dog\n125766,truck\n125767,truck\n125768,automobile\n125769,deer\n125770,frog\n125771,ship\n125772,deer\n125773,cat\n125774,dog\n125775,airplane\n125776,automobile\n125777,airplane\n125778,airplane\n125779,truck\n125780,dog\n125781,cat\n125782,ship\n125783,truck\n125784,cat\n125785,deer\n125786,truck\n125787,ship\n125788,cat\n125789,dog\n125790,deer\n125791,horse\n125792,ship\n125793,cat\n125794,cat\n125795,deer\n125796,truck\n125797,ship\n125798,bird\n125799,truck\n125800,airplane\n125801,deer\n125802,automobile\n125803,cat\n125804,bird\n125805,frog\n125806,dog\n125807,ship\n125808,frog\n125809,truck\n125810,truck\n125811,airplane\n125812,truck\n125813,deer\n125814,cat\n125815,truck\n125816,horse\n125817,automobile\n125818,deer\n125819,airplane\n125820,bird\n125821,automobile\n125822,cat\n125823,horse\n125824,cat\n125825,automobile\n125826,automobile\n125827,deer\n125828,bird\n125829,dog\n125830,automobile\n125831,horse\n125832,frog\n125833,ship\n125834,dog\n125835,dog\n125836,truck\n125837,frog\n125838,cat\n125839,cat\n125840,horse\n125841,truck\n125842,frog\n125843,ship\n125844,truck\n125845,deer\n125846,bird\n125847,cat\n125848,dog\n125849,bird\n125850,frog\n125851,truck\n125852,frog\n125853,deer\n125854,bird\n125855,cat\n125856,airplane\n125857,dog\n125858,automobile\n125859,cat\n125860,cat\n125861,deer\n125862,frog\n125863,cat\n125864,horse\n125865,horse\n125866,frog\n125867,deer\n125868,dog\n125869,cat\n125870,bird\n125871,ship\n125872,frog\n125873,horse\n125874,bird\n125875,airplane\n125876,deer\n125877,cat\n125878,automobile\n125879,cat\n125880,deer\n125881,dog\n125882,truck\n125883,truck\n125884,frog\n125885,frog\n125886,automobile\n125887,bird\n125888,horse\n125889,truck\n125890,truck\n125891,cat\n125892,horse\n125893,bird\n125894,deer\n125895,ship\n125896,airplane\n125897,ship\n125898,cat\n125899,automobile\n125900,truck\n125901,horse\n125902,bird\n125903,cat\n125904,frog\n125905,bird\n125906,truck\n125907,horse\n125908,truck\n125909,deer\n125910,deer\n125911,deer\n125912,dog\n125913,dog\n125914,deer\n125915,truck\n125916,truck\n125917,cat\n125918,cat\n125919,bird\n125920,cat\n125921,dog\n125922,truck\n125923,airplane\n125924,frog\n125925,automobile\n125926,truck\n125927,bird\n125928,deer\n125929,deer\n125930,bird\n125931,deer\n125932,automobile\n125933,deer\n125934,truck\n125935,dog\n125936,deer\n125937,deer\n125938,cat\n125939,horse\n125940,dog\n125941,frog\n125942,truck\n125943,deer\n125944,ship\n125945,bird\n125946,bird\n125947,airplane\n125948,automobile\n125949,ship\n125950,automobile\n125951,bird\n125952,horse\n125953,frog\n125954,dog\n125955,frog\n125956,dog\n125957,cat\n125958,deer\n125959,horse\n125960,dog\n125961,horse\n125962,automobile\n125963,frog\n125964,ship\n125965,deer\n125966,truck\n125967,truck\n125968,deer\n125969,deer\n125970,ship\n125971,frog\n125972,automobile\n125973,frog\n125974,truck\n125975,truck\n125976,horse\n125977,dog\n125978,deer\n125979,frog\n125980,dog\n125981,bird\n125982,bird\n125983,bird\n125984,deer\n125985,frog\n125986,deer\n125987,deer\n125988,ship\n125989,automobile\n125990,truck\n125991,dog\n125992,frog\n125993,dog\n125994,deer\n125995,bird\n125996,bird\n125997,ship\n125998,airplane\n125999,deer\n126000,frog\n126001,automobile\n126002,horse\n126003,dog\n126004,truck\n126005,cat\n126006,frog\n126007,frog\n126008,airplane\n126009,frog\n126010,airplane\n126011,horse\n126012,truck\n126013,horse\n126014,deer\n126015,deer\n126016,cat\n126017,bird\n126018,horse\n126019,horse\n126020,dog\n126021,airplane\n126022,horse\n126023,airplane\n126024,deer\n126025,bird\n126026,bird\n126027,automobile\n126028,airplane\n126029,dog\n126030,truck\n126031,horse\n126032,cat\n126033,deer\n126034,ship\n126035,cat\n126036,deer\n126037,deer\n126038,truck\n126039,dog\n126040,horse\n126041,cat\n126042,airplane\n126043,airplane\n126044,cat\n126045,deer\n126046,cat\n126047,cat\n126048,dog\n126049,truck\n126050,horse\n126051,deer\n126052,bird\n126053,automobile\n126054,cat\n126055,automobile\n126056,frog\n126057,frog\n126058,cat\n126059,truck\n126060,dog\n126061,cat\n126062,frog\n126063,ship\n126064,cat\n126065,frog\n126066,dog\n126067,horse\n126068,automobile\n126069,truck\n126070,bird\n126071,deer\n126072,horse\n126073,bird\n126074,automobile\n126075,truck\n126076,frog\n126077,horse\n126078,ship\n126079,bird\n126080,ship\n126081,deer\n126082,ship\n126083,horse\n126084,cat\n126085,frog\n126086,airplane\n126087,automobile\n126088,cat\n126089,horse\n126090,bird\n126091,frog\n126092,horse\n126093,deer\n126094,cat\n126095,horse\n126096,dog\n126097,cat\n126098,ship\n126099,deer\n126100,airplane\n126101,cat\n126102,deer\n126103,deer\n126104,automobile\n126105,cat\n126106,automobile\n126107,automobile\n126108,ship\n126109,ship\n126110,bird\n126111,frog\n126112,airplane\n126113,bird\n126114,frog\n126115,deer\n126116,horse\n126117,truck\n126118,dog\n126119,horse\n126120,truck\n126121,dog\n126122,horse\n126123,horse\n126124,ship\n126125,airplane\n126126,deer\n126127,cat\n126128,horse\n126129,deer\n126130,frog\n126131,horse\n126132,truck\n126133,airplane\n126134,deer\n126135,automobile\n126136,frog\n126137,horse\n126138,truck\n126139,automobile\n126140,airplane\n126141,dog\n126142,cat\n126143,bird\n126144,frog\n126145,horse\n126146,horse\n126147,deer\n126148,horse\n126149,truck\n126150,ship\n126151,truck\n126152,deer\n126153,frog\n126154,truck\n126155,bird\n126156,deer\n126157,truck\n126158,dog\n126159,cat\n126160,truck\n126161,dog\n126162,ship\n126163,airplane\n126164,dog\n126165,deer\n126166,airplane\n126167,bird\n126168,truck\n126169,airplane\n126170,frog\n126171,frog\n126172,ship\n126173,deer\n126174,frog\n126175,truck\n126176,frog\n126177,deer\n126178,frog\n126179,cat\n126180,frog\n126181,automobile\n126182,cat\n126183,dog\n126184,ship\n126185,cat\n126186,horse\n126187,deer\n126188,cat\n126189,cat\n126190,frog\n126191,automobile\n126192,ship\n126193,bird\n126194,deer\n126195,ship\n126196,deer\n126197,cat\n126198,bird\n126199,bird\n126200,truck\n126201,horse\n126202,cat\n126203,deer\n126204,automobile\n126205,bird\n126206,bird\n126207,dog\n126208,ship\n126209,cat\n126210,horse\n126211,cat\n126212,airplane\n126213,horse\n126214,automobile\n126215,airplane\n126216,truck\n126217,frog\n126218,bird\n126219,deer\n126220,frog\n126221,airplane\n126222,deer\n126223,dog\n126224,deer\n126225,automobile\n126226,deer\n126227,airplane\n126228,automobile\n126229,horse\n126230,bird\n126231,horse\n126232,deer\n126233,automobile\n126234,airplane\n126235,horse\n126236,dog\n126237,bird\n126238,deer\n126239,truck\n126240,deer\n126241,cat\n126242,automobile\n126243,ship\n126244,deer\n126245,dog\n126246,horse\n126247,frog\n126248,bird\n126249,truck\n126250,dog\n126251,deer\n126252,deer\n126253,horse\n126254,cat\n126255,bird\n126256,truck\n126257,dog\n126258,frog\n126259,automobile\n126260,frog\n126261,truck\n126262,deer\n126263,airplane\n126264,automobile\n126265,horse\n126266,cat\n126267,airplane\n126268,deer\n126269,cat\n126270,cat\n126271,frog\n126272,truck\n126273,deer\n126274,cat\n126275,airplane\n126276,cat\n126277,ship\n126278,frog\n126279,horse\n126280,frog\n126281,horse\n126282,bird\n126283,cat\n126284,airplane\n126285,bird\n126286,cat\n126287,cat\n126288,automobile\n126289,frog\n126290,cat\n126291,frog\n126292,automobile\n126293,automobile\n126294,frog\n126295,dog\n126296,deer\n126297,cat\n126298,truck\n126299,airplane\n126300,ship\n126301,bird\n126302,ship\n126303,truck\n126304,bird\n126305,deer\n126306,automobile\n126307,ship\n126308,ship\n126309,truck\n126310,dog\n126311,dog\n126312,deer\n126313,truck\n126314,truck\n126315,frog\n126316,airplane\n126317,horse\n126318,bird\n126319,bird\n126320,deer\n126321,horse\n126322,deer\n126323,horse\n126324,frog\n126325,dog\n126326,automobile\n126327,airplane\n126328,deer\n126329,truck\n126330,dog\n126331,deer\n126332,truck\n126333,horse\n126334,bird\n126335,bird\n126336,horse\n126337,deer\n126338,horse\n126339,frog\n126340,truck\n126341,bird\n126342,horse\n126343,ship\n126344,ship\n126345,truck\n126346,bird\n126347,truck\n126348,ship\n126349,cat\n126350,truck\n126351,bird\n126352,deer\n126353,cat\n126354,frog\n126355,deer\n126356,truck\n126357,frog\n126358,airplane\n126359,bird\n126360,ship\n126361,dog\n126362,horse\n126363,airplane\n126364,airplane\n126365,deer\n126366,frog\n126367,ship\n126368,horse\n126369,frog\n126370,dog\n126371,frog\n126372,cat\n126373,deer\n126374,deer\n126375,airplane\n126376,dog\n126377,deer\n126378,horse\n126379,horse\n126380,ship\n126381,bird\n126382,deer\n126383,cat\n126384,cat\n126385,cat\n126386,deer\n126387,cat\n126388,deer\n126389,ship\n126390,airplane\n126391,bird\n126392,cat\n126393,horse\n126394,automobile\n126395,dog\n126396,bird\n126397,ship\n126398,airplane\n126399,automobile\n126400,cat\n126401,horse\n126402,truck\n126403,truck\n126404,bird\n126405,truck\n126406,bird\n126407,ship\n126408,truck\n126409,cat\n126410,frog\n126411,bird\n126412,airplane\n126413,airplane\n126414,truck\n126415,ship\n126416,cat\n126417,frog\n126418,dog\n126419,deer\n126420,deer\n126421,bird\n126422,horse\n126423,cat\n126424,automobile\n126425,dog\n126426,horse\n126427,horse\n126428,deer\n126429,ship\n126430,horse\n126431,airplane\n126432,horse\n126433,automobile\n126434,cat\n126435,truck\n126436,horse\n126437,cat\n126438,cat\n126439,bird\n126440,frog\n126441,truck\n126442,frog\n126443,frog\n126444,frog\n126445,frog\n126446,cat\n126447,deer\n126448,horse\n126449,truck\n126450,ship\n126451,dog\n126452,ship\n126453,deer\n126454,cat\n126455,horse\n126456,deer\n126457,ship\n126458,bird\n126459,frog\n126460,frog\n126461,bird\n126462,dog\n126463,cat\n126464,frog\n126465,deer\n126466,deer\n126467,deer\n126468,ship\n126469,airplane\n126470,automobile\n126471,deer\n126472,deer\n126473,truck\n126474,dog\n126475,cat\n126476,truck\n126477,truck\n126478,automobile\n126479,cat\n126480,deer\n126481,deer\n126482,bird\n126483,frog\n126484,horse\n126485,truck\n126486,deer\n126487,deer\n126488,truck\n126489,ship\n126490,frog\n126491,cat\n126492,deer\n126493,ship\n126494,frog\n126495,deer\n126496,cat\n126497,truck\n126498,frog\n126499,bird\n126500,frog\n126501,airplane\n126502,horse\n126503,ship\n126504,bird\n126505,cat\n126506,dog\n126507,truck\n126508,frog\n126509,deer\n126510,cat\n126511,deer\n126512,bird\n126513,truck\n126514,cat\n126515,bird\n126516,cat\n126517,ship\n126518,truck\n126519,truck\n126520,truck\n126521,cat\n126522,truck\n126523,airplane\n126524,frog\n126525,dog\n126526,airplane\n126527,truck\n126528,frog\n126529,dog\n126530,truck\n126531,automobile\n126532,dog\n126533,cat\n126534,ship\n126535,cat\n126536,truck\n126537,frog\n126538,automobile\n126539,frog\n126540,cat\n126541,cat\n126542,automobile\n126543,frog\n126544,dog\n126545,horse\n126546,deer\n126547,dog\n126548,deer\n126549,bird\n126550,cat\n126551,ship\n126552,deer\n126553,airplane\n126554,deer\n126555,airplane\n126556,deer\n126557,dog\n126558,dog\n126559,horse\n126560,automobile\n126561,frog\n126562,dog\n126563,automobile\n126564,airplane\n126565,frog\n126566,deer\n126567,truck\n126568,truck\n126569,deer\n126570,frog\n126571,deer\n126572,cat\n126573,cat\n126574,dog\n126575,horse\n126576,deer\n126577,cat\n126578,dog\n126579,ship\n126580,bird\n126581,cat\n126582,truck\n126583,horse\n126584,airplane\n126585,deer\n126586,dog\n126587,dog\n126588,automobile\n126589,dog\n126590,truck\n126591,bird\n126592,cat\n126593,bird\n126594,horse\n126595,frog\n126596,deer\n126597,ship\n126598,airplane\n126599,dog\n126600,frog\n126601,cat\n126602,automobile\n126603,automobile\n126604,cat\n126605,automobile\n126606,deer\n126607,horse\n126608,horse\n126609,frog\n126610,dog\n126611,truck\n126612,airplane\n126613,truck\n126614,cat\n126615,bird\n126616,dog\n126617,ship\n126618,cat\n126619,bird\n126620,cat\n126621,truck\n126622,deer\n126623,dog\n126624,deer\n126625,automobile\n126626,frog\n126627,bird\n126628,truck\n126629,bird\n126630,truck\n126631,dog\n126632,airplane\n126633,truck\n126634,frog\n126635,deer\n126636,truck\n126637,ship\n126638,frog\n126639,truck\n126640,bird\n126641,bird\n126642,bird\n126643,frog\n126644,cat\n126645,automobile\n126646,automobile\n126647,airplane\n126648,cat\n126649,ship\n126650,airplane\n126651,truck\n126652,bird\n126653,airplane\n126654,horse\n126655,frog\n126656,dog\n126657,ship\n126658,dog\n126659,dog\n126660,frog\n126661,bird\n126662,deer\n126663,airplane\n126664,dog\n126665,cat\n126666,dog\n126667,truck\n126668,truck\n126669,horse\n126670,cat\n126671,cat\n126672,truck\n126673,cat\n126674,airplane\n126675,deer\n126676,dog\n126677,cat\n126678,deer\n126679,dog\n126680,cat\n126681,ship\n126682,dog\n126683,airplane\n126684,automobile\n126685,dog\n126686,frog\n126687,truck\n126688,bird\n126689,ship\n126690,horse\n126691,horse\n126692,dog\n126693,deer\n126694,ship\n126695,truck\n126696,ship\n126697,deer\n126698,airplane\n126699,horse\n126700,deer\n126701,deer\n126702,frog\n126703,frog\n126704,automobile\n126705,dog\n126706,cat\n126707,automobile\n126708,deer\n126709,deer\n126710,truck\n126711,automobile\n126712,truck\n126713,truck\n126714,dog\n126715,automobile\n126716,deer\n126717,ship\n126718,frog\n126719,truck\n126720,truck\n126721,frog\n126722,automobile\n126723,airplane\n126724,deer\n126725,frog\n126726,cat\n126727,truck\n126728,cat\n126729,deer\n126730,automobile\n126731,dog\n126732,deer\n126733,cat\n126734,cat\n126735,dog\n126736,deer\n126737,frog\n126738,dog\n126739,truck\n126740,deer\n126741,airplane\n126742,horse\n126743,airplane\n126744,airplane\n126745,frog\n126746,frog\n126747,ship\n126748,airplane\n126749,automobile\n126750,deer\n126751,dog\n126752,dog\n126753,airplane\n126754,ship\n126755,horse\n126756,frog\n126757,airplane\n126758,horse\n126759,airplane\n126760,truck\n126761,deer\n126762,frog\n126763,cat\n126764,automobile\n126765,bird\n126766,bird\n126767,frog\n126768,cat\n126769,ship\n126770,ship\n126771,deer\n126772,airplane\n126773,horse\n126774,cat\n126775,bird\n126776,truck\n126777,cat\n126778,ship\n126779,automobile\n126780,frog\n126781,dog\n126782,frog\n126783,frog\n126784,frog\n126785,automobile\n126786,truck\n126787,cat\n126788,cat\n126789,truck\n126790,bird\n126791,deer\n126792,truck\n126793,airplane\n126794,automobile\n126795,bird\n126796,deer\n126797,horse\n126798,horse\n126799,truck\n126800,ship\n126801,deer\n126802,horse\n126803,deer\n126804,cat\n126805,frog\n126806,bird\n126807,airplane\n126808,horse\n126809,dog\n126810,ship\n126811,dog\n126812,truck\n126813,automobile\n126814,cat\n126815,cat\n126816,deer\n126817,automobile\n126818,cat\n126819,truck\n126820,bird\n126821,dog\n126822,ship\n126823,cat\n126824,truck\n126825,automobile\n126826,automobile\n126827,cat\n126828,deer\n126829,airplane\n126830,frog\n126831,airplane\n126832,cat\n126833,bird\n126834,bird\n126835,truck\n126836,truck\n126837,cat\n126838,horse\n126839,cat\n126840,truck\n126841,horse\n126842,ship\n126843,frog\n126844,cat\n126845,airplane\n126846,deer\n126847,frog\n126848,truck\n126849,cat\n126850,bird\n126851,frog\n126852,cat\n126853,ship\n126854,truck\n126855,bird\n126856,automobile\n126857,bird\n126858,bird\n126859,frog\n126860,deer\n126861,cat\n126862,horse\n126863,frog\n126864,automobile\n126865,truck\n126866,automobile\n126867,horse\n126868,truck\n126869,bird\n126870,truck\n126871,bird\n126872,truck\n126873,dog\n126874,frog\n126875,cat\n126876,airplane\n126877,horse\n126878,automobile\n126879,truck\n126880,bird\n126881,horse\n126882,ship\n126883,deer\n126884,ship\n126885,truck\n126886,bird\n126887,bird\n126888,airplane\n126889,cat\n126890,bird\n126891,dog\n126892,dog\n126893,frog\n126894,dog\n126895,dog\n126896,deer\n126897,airplane\n126898,frog\n126899,deer\n126900,frog\n126901,ship\n126902,automobile\n126903,horse\n126904,deer\n126905,automobile\n126906,ship\n126907,dog\n126908,automobile\n126909,deer\n126910,truck\n126911,ship\n126912,cat\n126913,truck\n126914,automobile\n126915,cat\n126916,deer\n126917,airplane\n126918,dog\n126919,airplane\n126920,airplane\n126921,automobile\n126922,bird\n126923,cat\n126924,horse\n126925,truck\n126926,cat\n126927,deer\n126928,horse\n126929,automobile\n126930,ship\n126931,airplane\n126932,bird\n126933,cat\n126934,deer\n126935,airplane\n126936,horse\n126937,bird\n126938,frog\n126939,truck\n126940,deer\n126941,frog\n126942,airplane\n126943,cat\n126944,dog\n126945,horse\n126946,cat\n126947,horse\n126948,cat\n126949,cat\n126950,ship\n126951,horse\n126952,deer\n126953,ship\n126954,airplane\n126955,cat\n126956,bird\n126957,ship\n126958,deer\n126959,cat\n126960,frog\n126961,truck\n126962,cat\n126963,dog\n126964,airplane\n126965,cat\n126966,horse\n126967,truck\n126968,deer\n126969,deer\n126970,cat\n126971,ship\n126972,airplane\n126973,frog\n126974,horse\n126975,cat\n126976,deer\n126977,bird\n126978,automobile\n126979,ship\n126980,airplane\n126981,bird\n126982,deer\n126983,deer\n126984,ship\n126985,dog\n126986,truck\n126987,frog\n126988,airplane\n126989,ship\n126990,ship\n126991,deer\n126992,deer\n126993,frog\n126994,dog\n126995,bird\n126996,cat\n126997,deer\n126998,ship\n126999,dog\n127000,frog\n127001,ship\n127002,frog\n127003,frog\n127004,horse\n127005,bird\n127006,truck\n127007,cat\n127008,truck\n127009,cat\n127010,dog\n127011,ship\n127012,cat\n127013,cat\n127014,dog\n127015,frog\n127016,horse\n127017,cat\n127018,automobile\n127019,automobile\n127020,cat\n127021,frog\n127022,cat\n127023,airplane\n127024,airplane\n127025,airplane\n127026,automobile\n127027,frog\n127028,ship\n127029,cat\n127030,horse\n127031,ship\n127032,deer\n127033,cat\n127034,automobile\n127035,deer\n127036,frog\n127037,deer\n127038,bird\n127039,cat\n127040,ship\n127041,frog\n127042,truck\n127043,bird\n127044,deer\n127045,airplane\n127046,deer\n127047,truck\n127048,deer\n127049,airplane\n127050,truck\n127051,truck\n127052,cat\n127053,cat\n127054,bird\n127055,ship\n127056,deer\n127057,truck\n127058,truck\n127059,dog\n127060,cat\n127061,bird\n127062,bird\n127063,cat\n127064,cat\n127065,dog\n127066,frog\n127067,cat\n127068,bird\n127069,ship\n127070,deer\n127071,ship\n127072,cat\n127073,bird\n127074,deer\n127075,automobile\n127076,cat\n127077,horse\n127078,airplane\n127079,automobile\n127080,deer\n127081,bird\n127082,truck\n127083,truck\n127084,automobile\n127085,airplane\n127086,automobile\n127087,truck\n127088,horse\n127089,deer\n127090,cat\n127091,cat\n127092,ship\n127093,horse\n127094,frog\n127095,deer\n127096,cat\n127097,airplane\n127098,cat\n127099,airplane\n127100,deer\n127101,ship\n127102,frog\n127103,deer\n127104,horse\n127105,dog\n127106,dog\n127107,bird\n127108,cat\n127109,truck\n127110,automobile\n127111,deer\n127112,frog\n127113,horse\n127114,bird\n127115,dog\n127116,deer\n127117,truck\n127118,dog\n127119,airplane\n127120,cat\n127121,cat\n127122,frog\n127123,frog\n127124,ship\n127125,automobile\n127126,frog\n127127,cat\n127128,ship\n127129,dog\n127130,airplane\n127131,cat\n127132,ship\n127133,bird\n127134,deer\n127135,ship\n127136,airplane\n127137,cat\n127138,automobile\n127139,cat\n127140,cat\n127141,deer\n127142,deer\n127143,horse\n127144,automobile\n127145,horse\n127146,cat\n127147,horse\n127148,horse\n127149,airplane\n127150,cat\n127151,truck\n127152,deer\n127153,horse\n127154,cat\n127155,deer\n127156,dog\n127157,ship\n127158,frog\n127159,truck\n127160,cat\n127161,ship\n127162,deer\n127163,airplane\n127164,cat\n127165,bird\n127166,cat\n127167,cat\n127168,bird\n127169,automobile\n127170,cat\n127171,dog\n127172,deer\n127173,ship\n127174,deer\n127175,ship\n127176,deer\n127177,frog\n127178,dog\n127179,airplane\n127180,frog\n127181,cat\n127182,airplane\n127183,frog\n127184,cat\n127185,dog\n127186,cat\n127187,airplane\n127188,ship\n127189,truck\n127190,airplane\n127191,truck\n127192,ship\n127193,bird\n127194,frog\n127195,ship\n127196,cat\n127197,cat\n127198,horse\n127199,ship\n127200,deer\n127201,airplane\n127202,truck\n127203,frog\n127204,truck\n127205,dog\n127206,truck\n127207,bird\n127208,bird\n127209,truck\n127210,ship\n127211,frog\n127212,deer\n127213,airplane\n127214,ship\n127215,frog\n127216,deer\n127217,airplane\n127218,frog\n127219,dog\n127220,deer\n127221,cat\n127222,bird\n127223,airplane\n127224,frog\n127225,horse\n127226,deer\n127227,horse\n127228,ship\n127229,ship\n127230,bird\n127231,deer\n127232,truck\n127233,horse\n127234,deer\n127235,frog\n127236,frog\n127237,truck\n127238,cat\n127239,bird\n127240,dog\n127241,dog\n127242,bird\n127243,frog\n127244,bird\n127245,truck\n127246,deer\n127247,automobile\n127248,airplane\n127249,bird\n127250,frog\n127251,horse\n127252,bird\n127253,automobile\n127254,cat\n127255,dog\n127256,deer\n127257,automobile\n127258,frog\n127259,dog\n127260,bird\n127261,cat\n127262,horse\n127263,dog\n127264,cat\n127265,airplane\n127266,airplane\n127267,airplane\n127268,dog\n127269,automobile\n127270,cat\n127271,cat\n127272,airplane\n127273,automobile\n127274,airplane\n127275,truck\n127276,frog\n127277,truck\n127278,bird\n127279,cat\n127280,truck\n127281,frog\n127282,truck\n127283,frog\n127284,cat\n127285,horse\n127286,truck\n127287,dog\n127288,frog\n127289,dog\n127290,cat\n127291,deer\n127292,horse\n127293,deer\n127294,cat\n127295,dog\n127296,bird\n127297,cat\n127298,truck\n127299,horse\n127300,ship\n127301,cat\n127302,truck\n127303,deer\n127304,airplane\n127305,cat\n127306,airplane\n127307,dog\n127308,deer\n127309,ship\n127310,horse\n127311,ship\n127312,ship\n127313,deer\n127314,cat\n127315,horse\n127316,bird\n127317,deer\n127318,cat\n127319,cat\n127320,deer\n127321,ship\n127322,airplane\n127323,deer\n127324,cat\n127325,airplane\n127326,dog\n127327,automobile\n127328,horse\n127329,airplane\n127330,dog\n127331,automobile\n127332,frog\n127333,bird\n127334,frog\n127335,automobile\n127336,truck\n127337,airplane\n127338,horse\n127339,horse\n127340,ship\n127341,horse\n127342,horse\n127343,truck\n127344,horse\n127345,cat\n127346,cat\n127347,frog\n127348,automobile\n127349,horse\n127350,bird\n127351,frog\n127352,ship\n127353,bird\n127354,deer\n127355,bird\n127356,frog\n127357,deer\n127358,cat\n127359,ship\n127360,bird\n127361,airplane\n127362,frog\n127363,deer\n127364,deer\n127365,cat\n127366,airplane\n127367,cat\n127368,dog\n127369,bird\n127370,bird\n127371,horse\n127372,truck\n127373,dog\n127374,horse\n127375,truck\n127376,dog\n127377,cat\n127378,frog\n127379,deer\n127380,frog\n127381,truck\n127382,bird\n127383,bird\n127384,ship\n127385,truck\n127386,cat\n127387,truck\n127388,airplane\n127389,cat\n127390,deer\n127391,frog\n127392,dog\n127393,airplane\n127394,horse\n127395,frog\n127396,frog\n127397,automobile\n127398,deer\n127399,truck\n127400,truck\n127401,automobile\n127402,deer\n127403,cat\n127404,frog\n127405,truck\n127406,automobile\n127407,cat\n127408,truck\n127409,airplane\n127410,truck\n127411,airplane\n127412,truck\n127413,truck\n127414,dog\n127415,deer\n127416,cat\n127417,bird\n127418,frog\n127419,automobile\n127420,dog\n127421,horse\n127422,bird\n127423,automobile\n127424,deer\n127425,deer\n127426,horse\n127427,dog\n127428,horse\n127429,airplane\n127430,bird\n127431,frog\n127432,cat\n127433,automobile\n127434,automobile\n127435,frog\n127436,horse\n127437,truck\n127438,ship\n127439,deer\n127440,automobile\n127441,airplane\n127442,bird\n127443,deer\n127444,ship\n127445,frog\n127446,horse\n127447,cat\n127448,ship\n127449,horse\n127450,cat\n127451,truck\n127452,frog\n127453,frog\n127454,automobile\n127455,bird\n127456,deer\n127457,deer\n127458,horse\n127459,truck\n127460,deer\n127461,horse\n127462,dog\n127463,truck\n127464,frog\n127465,cat\n127466,bird\n127467,cat\n127468,deer\n127469,cat\n127470,deer\n127471,ship\n127472,frog\n127473,automobile\n127474,automobile\n127475,ship\n127476,dog\n127477,deer\n127478,automobile\n127479,horse\n127480,ship\n127481,truck\n127482,frog\n127483,airplane\n127484,cat\n127485,horse\n127486,frog\n127487,airplane\n127488,deer\n127489,bird\n127490,deer\n127491,bird\n127492,cat\n127493,ship\n127494,ship\n127495,cat\n127496,frog\n127497,cat\n127498,cat\n127499,deer\n127500,truck\n127501,cat\n127502,cat\n127503,airplane\n127504,truck\n127505,ship\n127506,cat\n127507,deer\n127508,automobile\n127509,frog\n127510,ship\n127511,ship\n127512,bird\n127513,horse\n127514,truck\n127515,ship\n127516,cat\n127517,horse\n127518,truck\n127519,horse\n127520,frog\n127521,cat\n127522,horse\n127523,airplane\n127524,ship\n127525,dog\n127526,truck\n127527,horse\n127528,truck\n127529,automobile\n127530,horse\n127531,automobile\n127532,automobile\n127533,cat\n127534,bird\n127535,cat\n127536,automobile\n127537,frog\n127538,horse\n127539,cat\n127540,dog\n127541,ship\n127542,airplane\n127543,frog\n127544,ship\n127545,dog\n127546,frog\n127547,deer\n127548,deer\n127549,frog\n127550,bird\n127551,truck\n127552,truck\n127553,deer\n127554,ship\n127555,ship\n127556,dog\n127557,truck\n127558,cat\n127559,deer\n127560,bird\n127561,automobile\n127562,horse\n127563,horse\n127564,frog\n127565,horse\n127566,dog\n127567,horse\n127568,cat\n127569,cat\n127570,deer\n127571,automobile\n127572,cat\n127573,deer\n127574,airplane\n127575,dog\n127576,deer\n127577,airplane\n127578,dog\n127579,horse\n127580,frog\n127581,cat\n127582,automobile\n127583,cat\n127584,frog\n127585,deer\n127586,bird\n127587,deer\n127588,frog\n127589,airplane\n127590,cat\n127591,truck\n127592,horse\n127593,cat\n127594,ship\n127595,airplane\n127596,airplane\n127597,airplane\n127598,truck\n127599,truck\n127600,deer\n127601,bird\n127602,cat\n127603,frog\n127604,bird\n127605,bird\n127606,deer\n127607,automobile\n127608,truck\n127609,dog\n127610,horse\n127611,dog\n127612,cat\n127613,truck\n127614,horse\n127615,frog\n127616,frog\n127617,truck\n127618,bird\n127619,automobile\n127620,truck\n127621,airplane\n127622,automobile\n127623,airplane\n127624,airplane\n127625,deer\n127626,frog\n127627,deer\n127628,frog\n127629,horse\n127630,cat\n127631,dog\n127632,frog\n127633,cat\n127634,cat\n127635,airplane\n127636,bird\n127637,horse\n127638,horse\n127639,truck\n127640,bird\n127641,deer\n127642,airplane\n127643,truck\n127644,bird\n127645,truck\n127646,deer\n127647,dog\n127648,frog\n127649,dog\n127650,frog\n127651,automobile\n127652,bird\n127653,dog\n127654,bird\n127655,frog\n127656,ship\n127657,deer\n127658,deer\n127659,bird\n127660,dog\n127661,cat\n127662,dog\n127663,ship\n127664,cat\n127665,dog\n127666,ship\n127667,cat\n127668,deer\n127669,cat\n127670,deer\n127671,cat\n127672,airplane\n127673,deer\n127674,cat\n127675,deer\n127676,cat\n127677,frog\n127678,airplane\n127679,truck\n127680,airplane\n127681,truck\n127682,dog\n127683,truck\n127684,ship\n127685,horse\n127686,automobile\n127687,automobile\n127688,automobile\n127689,bird\n127690,frog\n127691,cat\n127692,truck\n127693,dog\n127694,cat\n127695,dog\n127696,deer\n127697,bird\n127698,deer\n127699,frog\n127700,dog\n127701,automobile\n127702,automobile\n127703,ship\n127704,deer\n127705,airplane\n127706,cat\n127707,truck\n127708,horse\n127709,airplane\n127710,cat\n127711,dog\n127712,frog\n127713,truck\n127714,bird\n127715,airplane\n127716,dog\n127717,automobile\n127718,horse\n127719,cat\n127720,cat\n127721,horse\n127722,frog\n127723,airplane\n127724,ship\n127725,cat\n127726,cat\n127727,automobile\n127728,frog\n127729,truck\n127730,horse\n127731,dog\n127732,truck\n127733,deer\n127734,dog\n127735,truck\n127736,bird\n127737,horse\n127738,cat\n127739,ship\n127740,deer\n127741,cat\n127742,horse\n127743,automobile\n127744,airplane\n127745,cat\n127746,frog\n127747,cat\n127748,ship\n127749,ship\n127750,horse\n127751,airplane\n127752,airplane\n127753,cat\n127754,automobile\n127755,cat\n127756,cat\n127757,deer\n127758,bird\n127759,airplane\n127760,bird\n127761,airplane\n127762,cat\n127763,truck\n127764,horse\n127765,deer\n127766,cat\n127767,frog\n127768,deer\n127769,frog\n127770,automobile\n127771,horse\n127772,bird\n127773,truck\n127774,bird\n127775,frog\n127776,frog\n127777,bird\n127778,dog\n127779,ship\n127780,automobile\n127781,ship\n127782,horse\n127783,deer\n127784,ship\n127785,ship\n127786,cat\n127787,cat\n127788,deer\n127789,truck\n127790,bird\n127791,cat\n127792,truck\n127793,deer\n127794,bird\n127795,automobile\n127796,airplane\n127797,airplane\n127798,cat\n127799,cat\n127800,automobile\n127801,cat\n127802,automobile\n127803,frog\n127804,ship\n127805,dog\n127806,horse\n127807,deer\n127808,bird\n127809,ship\n127810,dog\n127811,frog\n127812,ship\n127813,cat\n127814,deer\n127815,dog\n127816,bird\n127817,deer\n127818,cat\n127819,deer\n127820,bird\n127821,deer\n127822,automobile\n127823,airplane\n127824,frog\n127825,deer\n127826,airplane\n127827,frog\n127828,automobile\n127829,airplane\n127830,cat\n127831,horse\n127832,automobile\n127833,airplane\n127834,frog\n127835,frog\n127836,automobile\n127837,frog\n127838,truck\n127839,horse\n127840,frog\n127841,dog\n127842,ship\n127843,horse\n127844,ship\n127845,deer\n127846,deer\n127847,cat\n127848,deer\n127849,frog\n127850,bird\n127851,deer\n127852,cat\n127853,bird\n127854,truck\n127855,frog\n127856,airplane\n127857,airplane\n127858,dog\n127859,airplane\n127860,horse\n127861,horse\n127862,bird\n127863,airplane\n127864,airplane\n127865,frog\n127866,dog\n127867,automobile\n127868,automobile\n127869,bird\n127870,bird\n127871,ship\n127872,cat\n127873,bird\n127874,cat\n127875,horse\n127876,bird\n127877,cat\n127878,dog\n127879,horse\n127880,airplane\n127881,bird\n127882,deer\n127883,deer\n127884,horse\n127885,airplane\n127886,frog\n127887,deer\n127888,horse\n127889,horse\n127890,frog\n127891,dog\n127892,cat\n127893,deer\n127894,dog\n127895,bird\n127896,frog\n127897,cat\n127898,truck\n127899,airplane\n127900,cat\n127901,airplane\n127902,dog\n127903,dog\n127904,horse\n127905,truck\n127906,automobile\n127907,frog\n127908,frog\n127909,truck\n127910,frog\n127911,deer\n127912,dog\n127913,horse\n127914,cat\n127915,horse\n127916,ship\n127917,airplane\n127918,frog\n127919,dog\n127920,deer\n127921,bird\n127922,bird\n127923,dog\n127924,ship\n127925,automobile\n127926,truck\n127927,ship\n127928,cat\n127929,ship\n127930,truck\n127931,cat\n127932,frog\n127933,dog\n127934,airplane\n127935,ship\n127936,dog\n127937,automobile\n127938,deer\n127939,frog\n127940,dog\n127941,automobile\n127942,dog\n127943,deer\n127944,deer\n127945,airplane\n127946,frog\n127947,deer\n127948,deer\n127949,frog\n127950,dog\n127951,horse\n127952,frog\n127953,cat\n127954,ship\n127955,automobile\n127956,truck\n127957,dog\n127958,airplane\n127959,deer\n127960,bird\n127961,airplane\n127962,horse\n127963,dog\n127964,deer\n127965,frog\n127966,automobile\n127967,cat\n127968,cat\n127969,automobile\n127970,deer\n127971,frog\n127972,horse\n127973,bird\n127974,truck\n127975,frog\n127976,bird\n127977,deer\n127978,dog\n127979,cat\n127980,ship\n127981,cat\n127982,dog\n127983,bird\n127984,frog\n127985,ship\n127986,frog\n127987,ship\n127988,frog\n127989,frog\n127990,frog\n127991,ship\n127992,frog\n127993,cat\n127994,horse\n127995,ship\n127996,cat\n127997,deer\n127998,truck\n127999,cat\n128000,truck\n128001,automobile\n128002,ship\n128003,ship\n128004,horse\n128005,automobile\n128006,cat\n128007,truck\n128008,dog\n128009,truck\n128010,dog\n128011,frog\n128012,dog\n128013,dog\n128014,horse\n128015,cat\n128016,truck\n128017,frog\n128018,dog\n128019,frog\n128020,automobile\n128021,truck\n128022,dog\n128023,dog\n128024,bird\n128025,airplane\n128026,truck\n128027,frog\n128028,airplane\n128029,horse\n128030,airplane\n128031,deer\n128032,frog\n128033,cat\n128034,cat\n128035,truck\n128036,deer\n128037,deer\n128038,deer\n128039,truck\n128040,cat\n128041,cat\n128042,ship\n128043,automobile\n128044,horse\n128045,horse\n128046,cat\n128047,truck\n128048,cat\n128049,bird\n128050,cat\n128051,frog\n128052,cat\n128053,deer\n128054,airplane\n128055,automobile\n128056,cat\n128057,deer\n128058,truck\n128059,deer\n128060,deer\n128061,dog\n128062,automobile\n128063,horse\n128064,bird\n128065,cat\n128066,dog\n128067,ship\n128068,frog\n128069,airplane\n128070,horse\n128071,airplane\n128072,airplane\n128073,automobile\n128074,airplane\n128075,horse\n128076,dog\n128077,frog\n128078,automobile\n128079,cat\n128080,cat\n128081,bird\n128082,horse\n128083,cat\n128084,automobile\n128085,cat\n128086,cat\n128087,automobile\n128088,truck\n128089,cat\n128090,frog\n128091,frog\n128092,frog\n128093,truck\n128094,deer\n128095,cat\n128096,frog\n128097,cat\n128098,ship\n128099,cat\n128100,horse\n128101,ship\n128102,horse\n128103,airplane\n128104,deer\n128105,airplane\n128106,ship\n128107,bird\n128108,bird\n128109,horse\n128110,automobile\n128111,deer\n128112,dog\n128113,deer\n128114,deer\n128115,cat\n128116,cat\n128117,bird\n128118,bird\n128119,cat\n128120,dog\n128121,deer\n128122,frog\n128123,frog\n128124,airplane\n128125,truck\n128126,deer\n128127,cat\n128128,deer\n128129,frog\n128130,ship\n128131,frog\n128132,airplane\n128133,dog\n128134,airplane\n128135,cat\n128136,bird\n128137,deer\n128138,horse\n128139,automobile\n128140,bird\n128141,ship\n128142,cat\n128143,cat\n128144,cat\n128145,truck\n128146,airplane\n128147,automobile\n128148,dog\n128149,cat\n128150,automobile\n128151,dog\n128152,airplane\n128153,frog\n128154,ship\n128155,cat\n128156,horse\n128157,automobile\n128158,frog\n128159,cat\n128160,cat\n128161,horse\n128162,automobile\n128163,truck\n128164,truck\n128165,cat\n128166,bird\n128167,dog\n128168,airplane\n128169,deer\n128170,deer\n128171,truck\n128172,truck\n128173,bird\n128174,automobile\n128175,dog\n128176,deer\n128177,deer\n128178,bird\n128179,airplane\n128180,dog\n128181,airplane\n128182,dog\n128183,truck\n128184,airplane\n128185,ship\n128186,airplane\n128187,deer\n128188,bird\n128189,ship\n128190,deer\n128191,deer\n128192,cat\n128193,airplane\n128194,bird\n128195,automobile\n128196,frog\n128197,bird\n128198,bird\n128199,automobile\n128200,dog\n128201,truck\n128202,cat\n128203,frog\n128204,bird\n128205,bird\n128206,bird\n128207,frog\n128208,airplane\n128209,ship\n128210,horse\n128211,automobile\n128212,ship\n128213,truck\n128214,deer\n128215,truck\n128216,truck\n128217,truck\n128218,automobile\n128219,frog\n128220,frog\n128221,deer\n128222,deer\n128223,horse\n128224,cat\n128225,frog\n128226,airplane\n128227,frog\n128228,ship\n128229,frog\n128230,deer\n128231,deer\n128232,deer\n128233,horse\n128234,frog\n128235,deer\n128236,frog\n128237,ship\n128238,frog\n128239,dog\n128240,dog\n128241,horse\n128242,deer\n128243,horse\n128244,cat\n128245,truck\n128246,airplane\n128247,cat\n128248,bird\n128249,cat\n128250,deer\n128251,cat\n128252,automobile\n128253,truck\n128254,frog\n128255,airplane\n128256,frog\n128257,truck\n128258,dog\n128259,automobile\n128260,truck\n128261,airplane\n128262,automobile\n128263,dog\n128264,horse\n128265,cat\n128266,frog\n128267,frog\n128268,deer\n128269,ship\n128270,cat\n128271,deer\n128272,frog\n128273,airplane\n128274,horse\n128275,bird\n128276,horse\n128277,deer\n128278,cat\n128279,cat\n128280,frog\n128281,ship\n128282,horse\n128283,cat\n128284,automobile\n128285,deer\n128286,ship\n128287,horse\n128288,cat\n128289,automobile\n128290,truck\n128291,frog\n128292,ship\n128293,deer\n128294,frog\n128295,bird\n128296,bird\n128297,cat\n128298,deer\n128299,horse\n128300,airplane\n128301,horse\n128302,deer\n128303,horse\n128304,dog\n128305,truck\n128306,cat\n128307,truck\n128308,airplane\n128309,truck\n128310,deer\n128311,frog\n128312,frog\n128313,deer\n128314,frog\n128315,bird\n128316,frog\n128317,automobile\n128318,automobile\n128319,truck\n128320,bird\n128321,dog\n128322,frog\n128323,dog\n128324,cat\n128325,automobile\n128326,horse\n128327,ship\n128328,cat\n128329,dog\n128330,truck\n128331,truck\n128332,bird\n128333,horse\n128334,truck\n128335,dog\n128336,dog\n128337,truck\n128338,dog\n128339,dog\n128340,frog\n128341,dog\n128342,horse\n128343,cat\n128344,cat\n128345,deer\n128346,ship\n128347,cat\n128348,dog\n128349,bird\n128350,horse\n128351,frog\n128352,bird\n128353,cat\n128354,automobile\n128355,airplane\n128356,cat\n128357,ship\n128358,bird\n128359,horse\n128360,bird\n128361,airplane\n128362,deer\n128363,truck\n128364,truck\n128365,horse\n128366,deer\n128367,truck\n128368,horse\n128369,deer\n128370,ship\n128371,deer\n128372,horse\n128373,truck\n128374,dog\n128375,truck\n128376,automobile\n128377,frog\n128378,truck\n128379,airplane\n128380,horse\n128381,truck\n128382,deer\n128383,dog\n128384,truck\n128385,bird\n128386,bird\n128387,deer\n128388,deer\n128389,truck\n128390,dog\n128391,airplane\n128392,deer\n128393,automobile\n128394,deer\n128395,cat\n128396,truck\n128397,deer\n128398,bird\n128399,automobile\n128400,deer\n128401,horse\n128402,frog\n128403,truck\n128404,ship\n128405,airplane\n128406,horse\n128407,automobile\n128408,truck\n128409,frog\n128410,truck\n128411,automobile\n128412,ship\n128413,deer\n128414,truck\n128415,ship\n128416,bird\n128417,cat\n128418,deer\n128419,cat\n128420,horse\n128421,ship\n128422,ship\n128423,horse\n128424,airplane\n128425,frog\n128426,deer\n128427,horse\n128428,dog\n128429,cat\n128430,truck\n128431,automobile\n128432,frog\n128433,frog\n128434,airplane\n128435,airplane\n128436,deer\n128437,dog\n128438,deer\n128439,bird\n128440,truck\n128441,bird\n128442,cat\n128443,horse\n128444,horse\n128445,cat\n128446,frog\n128447,deer\n128448,truck\n128449,ship\n128450,truck\n128451,ship\n128452,frog\n128453,bird\n128454,dog\n128455,cat\n128456,horse\n128457,horse\n128458,cat\n128459,airplane\n128460,dog\n128461,airplane\n128462,horse\n128463,frog\n128464,dog\n128465,horse\n128466,cat\n128467,automobile\n128468,cat\n128469,ship\n128470,deer\n128471,dog\n128472,automobile\n128473,horse\n128474,truck\n128475,deer\n128476,airplane\n128477,airplane\n128478,deer\n128479,deer\n128480,frog\n128481,dog\n128482,frog\n128483,horse\n128484,bird\n128485,ship\n128486,deer\n128487,bird\n128488,bird\n128489,bird\n128490,dog\n128491,airplane\n128492,deer\n128493,airplane\n128494,bird\n128495,deer\n128496,cat\n128497,airplane\n128498,cat\n128499,cat\n128500,airplane\n128501,deer\n128502,deer\n128503,horse\n128504,deer\n128505,airplane\n128506,airplane\n128507,truck\n128508,airplane\n128509,horse\n128510,bird\n128511,truck\n128512,horse\n128513,frog\n128514,horse\n128515,truck\n128516,horse\n128517,dog\n128518,cat\n128519,airplane\n128520,deer\n128521,deer\n128522,dog\n128523,bird\n128524,ship\n128525,deer\n128526,horse\n128527,ship\n128528,frog\n128529,deer\n128530,deer\n128531,bird\n128532,horse\n128533,cat\n128534,truck\n128535,ship\n128536,bird\n128537,cat\n128538,airplane\n128539,deer\n128540,automobile\n128541,ship\n128542,truck\n128543,airplane\n128544,truck\n128545,cat\n128546,frog\n128547,frog\n128548,truck\n128549,automobile\n128550,dog\n128551,frog\n128552,automobile\n128553,frog\n128554,horse\n128555,cat\n128556,bird\n128557,horse\n128558,truck\n128559,truck\n128560,automobile\n128561,horse\n128562,dog\n128563,dog\n128564,horse\n128565,frog\n128566,deer\n128567,horse\n128568,frog\n128569,deer\n128570,horse\n128571,truck\n128572,frog\n128573,truck\n128574,ship\n128575,automobile\n128576,deer\n128577,ship\n128578,truck\n128579,cat\n128580,horse\n128581,horse\n128582,bird\n128583,cat\n128584,cat\n128585,automobile\n128586,frog\n128587,deer\n128588,deer\n128589,horse\n128590,truck\n128591,bird\n128592,airplane\n128593,automobile\n128594,dog\n128595,horse\n128596,bird\n128597,dog\n128598,frog\n128599,cat\n128600,cat\n128601,ship\n128602,airplane\n128603,dog\n128604,dog\n128605,frog\n128606,airplane\n128607,cat\n128608,automobile\n128609,bird\n128610,ship\n128611,frog\n128612,frog\n128613,dog\n128614,deer\n128615,ship\n128616,deer\n128617,airplane\n128618,truck\n128619,cat\n128620,deer\n128621,automobile\n128622,cat\n128623,frog\n128624,frog\n128625,truck\n128626,cat\n128627,cat\n128628,frog\n128629,frog\n128630,deer\n128631,truck\n128632,deer\n128633,frog\n128634,frog\n128635,cat\n128636,automobile\n128637,deer\n128638,horse\n128639,ship\n128640,cat\n128641,ship\n128642,airplane\n128643,dog\n128644,airplane\n128645,cat\n128646,airplane\n128647,frog\n128648,cat\n128649,cat\n128650,cat\n128651,ship\n128652,airplane\n128653,deer\n128654,truck\n128655,horse\n128656,dog\n128657,horse\n128658,truck\n128659,frog\n128660,dog\n128661,deer\n128662,bird\n128663,dog\n128664,cat\n128665,ship\n128666,ship\n128667,cat\n128668,deer\n128669,deer\n128670,deer\n128671,bird\n128672,deer\n128673,cat\n128674,ship\n128675,frog\n128676,truck\n128677,dog\n128678,deer\n128679,horse\n128680,ship\n128681,airplane\n128682,truck\n128683,truck\n128684,ship\n128685,dog\n128686,airplane\n128687,frog\n128688,bird\n128689,ship\n128690,frog\n128691,ship\n128692,airplane\n128693,cat\n128694,cat\n128695,frog\n128696,automobile\n128697,deer\n128698,horse\n128699,airplane\n128700,truck\n128701,airplane\n128702,horse\n128703,frog\n128704,deer\n128705,deer\n128706,truck\n128707,horse\n128708,deer\n128709,deer\n128710,dog\n128711,horse\n128712,automobile\n128713,cat\n128714,frog\n128715,horse\n128716,ship\n128717,cat\n128718,horse\n128719,bird\n128720,frog\n128721,airplane\n128722,frog\n128723,airplane\n128724,frog\n128725,truck\n128726,truck\n128727,bird\n128728,dog\n128729,bird\n128730,frog\n128731,dog\n128732,dog\n128733,frog\n128734,deer\n128735,horse\n128736,cat\n128737,cat\n128738,horse\n128739,bird\n128740,truck\n128741,airplane\n128742,airplane\n128743,frog\n128744,truck\n128745,bird\n128746,truck\n128747,deer\n128748,horse\n128749,truck\n128750,dog\n128751,automobile\n128752,automobile\n128753,dog\n128754,horse\n128755,cat\n128756,dog\n128757,horse\n128758,frog\n128759,truck\n128760,bird\n128761,automobile\n128762,cat\n128763,bird\n128764,airplane\n128765,deer\n128766,horse\n128767,bird\n128768,frog\n128769,cat\n128770,deer\n128771,airplane\n128772,horse\n128773,truck\n128774,cat\n128775,deer\n128776,airplane\n128777,cat\n128778,automobile\n128779,bird\n128780,dog\n128781,bird\n128782,frog\n128783,airplane\n128784,horse\n128785,airplane\n128786,cat\n128787,cat\n128788,ship\n128789,truck\n128790,airplane\n128791,truck\n128792,bird\n128793,bird\n128794,dog\n128795,frog\n128796,ship\n128797,dog\n128798,horse\n128799,deer\n128800,bird\n128801,bird\n128802,ship\n128803,bird\n128804,dog\n128805,bird\n128806,automobile\n128807,dog\n128808,airplane\n128809,airplane\n128810,ship\n128811,horse\n128812,frog\n128813,truck\n128814,dog\n128815,truck\n128816,airplane\n128817,cat\n128818,cat\n128819,deer\n128820,dog\n128821,cat\n128822,ship\n128823,bird\n128824,frog\n128825,truck\n128826,automobile\n128827,deer\n128828,bird\n128829,cat\n128830,deer\n128831,bird\n128832,automobile\n128833,dog\n128834,bird\n128835,frog\n128836,bird\n128837,truck\n128838,dog\n128839,cat\n128840,cat\n128841,dog\n128842,ship\n128843,truck\n128844,automobile\n128845,bird\n128846,airplane\n128847,dog\n128848,dog\n128849,automobile\n128850,dog\n128851,deer\n128852,horse\n128853,cat\n128854,airplane\n128855,dog\n128856,horse\n128857,automobile\n128858,bird\n128859,airplane\n128860,ship\n128861,ship\n128862,dog\n128863,deer\n128864,horse\n128865,horse\n128866,airplane\n128867,deer\n128868,truck\n128869,truck\n128870,frog\n128871,frog\n128872,airplane\n128873,deer\n128874,deer\n128875,airplane\n128876,bird\n128877,frog\n128878,dog\n128879,automobile\n128880,ship\n128881,deer\n128882,bird\n128883,dog\n128884,deer\n128885,truck\n128886,frog\n128887,deer\n128888,ship\n128889,dog\n128890,bird\n128891,deer\n128892,automobile\n128893,dog\n128894,ship\n128895,ship\n128896,ship\n128897,airplane\n128898,airplane\n128899,ship\n128900,deer\n128901,airplane\n128902,ship\n128903,frog\n128904,cat\n128905,frog\n128906,bird\n128907,deer\n128908,frog\n128909,dog\n128910,automobile\n128911,frog\n128912,dog\n128913,bird\n128914,ship\n128915,horse\n128916,airplane\n128917,horse\n128918,frog\n128919,truck\n128920,deer\n128921,deer\n128922,truck\n128923,cat\n128924,truck\n128925,airplane\n128926,truck\n128927,airplane\n128928,bird\n128929,truck\n128930,bird\n128931,dog\n128932,horse\n128933,truck\n128934,ship\n128935,ship\n128936,cat\n128937,airplane\n128938,airplane\n128939,deer\n128940,ship\n128941,dog\n128942,cat\n128943,dog\n128944,frog\n128945,deer\n128946,truck\n128947,ship\n128948,deer\n128949,horse\n128950,horse\n128951,ship\n128952,horse\n128953,truck\n128954,frog\n128955,horse\n128956,truck\n128957,ship\n128958,frog\n128959,frog\n128960,horse\n128961,truck\n128962,frog\n128963,cat\n128964,deer\n128965,bird\n128966,automobile\n128967,cat\n128968,frog\n128969,frog\n128970,frog\n128971,cat\n128972,cat\n128973,airplane\n128974,deer\n128975,ship\n128976,deer\n128977,automobile\n128978,truck\n128979,truck\n128980,horse\n128981,deer\n128982,horse\n128983,airplane\n128984,dog\n128985,frog\n128986,deer\n128987,truck\n128988,dog\n128989,horse\n128990,automobile\n128991,airplane\n128992,dog\n128993,deer\n128994,bird\n128995,automobile\n128996,airplane\n128997,deer\n128998,horse\n128999,automobile\n129000,frog\n129001,horse\n129002,horse\n129003,frog\n129004,horse\n129005,cat\n129006,horse\n129007,bird\n129008,truck\n129009,bird\n129010,cat\n129011,horse\n129012,truck\n129013,airplane\n129014,cat\n129015,cat\n129016,ship\n129017,frog\n129018,airplane\n129019,bird\n129020,truck\n129021,truck\n129022,automobile\n129023,truck\n129024,deer\n129025,bird\n129026,bird\n129027,truck\n129028,airplane\n129029,deer\n129030,cat\n129031,deer\n129032,automobile\n129033,deer\n129034,ship\n129035,horse\n129036,ship\n129037,airplane\n129038,horse\n129039,cat\n129040,deer\n129041,truck\n129042,dog\n129043,cat\n129044,deer\n129045,frog\n129046,airplane\n129047,ship\n129048,horse\n129049,truck\n129050,ship\n129051,cat\n129052,airplane\n129053,frog\n129054,deer\n129055,ship\n129056,ship\n129057,deer\n129058,truck\n129059,bird\n129060,airplane\n129061,cat\n129062,horse\n129063,airplane\n129064,airplane\n129065,deer\n129066,airplane\n129067,truck\n129068,airplane\n129069,truck\n129070,airplane\n129071,truck\n129072,cat\n129073,frog\n129074,truck\n129075,horse\n129076,airplane\n129077,airplane\n129078,bird\n129079,cat\n129080,cat\n129081,automobile\n129082,ship\n129083,dog\n129084,frog\n129085,deer\n129086,airplane\n129087,airplane\n129088,deer\n129089,dog\n129090,airplane\n129091,truck\n129092,ship\n129093,ship\n129094,automobile\n129095,truck\n129096,airplane\n129097,airplane\n129098,horse\n129099,horse\n129100,airplane\n129101,cat\n129102,truck\n129103,airplane\n129104,frog\n129105,deer\n129106,airplane\n129107,truck\n129108,automobile\n129109,dog\n129110,deer\n129111,cat\n129112,truck\n129113,cat\n129114,truck\n129115,deer\n129116,deer\n129117,frog\n129118,horse\n129119,cat\n129120,airplane\n129121,dog\n129122,deer\n129123,automobile\n129124,ship\n129125,ship\n129126,truck\n129127,horse\n129128,deer\n129129,deer\n129130,frog\n129131,horse\n129132,horse\n129133,deer\n129134,deer\n129135,horse\n129136,deer\n129137,truck\n129138,truck\n129139,cat\n129140,cat\n129141,deer\n129142,deer\n129143,dog\n129144,automobile\n129145,cat\n129146,bird\n129147,ship\n129148,automobile\n129149,frog\n129150,truck\n129151,truck\n129152,ship\n129153,deer\n129154,automobile\n129155,dog\n129156,frog\n129157,frog\n129158,deer\n129159,frog\n129160,automobile\n129161,truck\n129162,frog\n129163,airplane\n129164,airplane\n129165,deer\n129166,bird\n129167,deer\n129168,horse\n129169,frog\n129170,ship\n129171,ship\n129172,frog\n129173,automobile\n129174,truck\n129175,deer\n129176,frog\n129177,truck\n129178,dog\n129179,cat\n129180,cat\n129181,frog\n129182,horse\n129183,horse\n129184,frog\n129185,ship\n129186,cat\n129187,horse\n129188,deer\n129189,bird\n129190,automobile\n129191,horse\n129192,deer\n129193,bird\n129194,horse\n129195,deer\n129196,frog\n129197,truck\n129198,cat\n129199,cat\n129200,dog\n129201,deer\n129202,cat\n129203,frog\n129204,horse\n129205,dog\n129206,horse\n129207,horse\n129208,cat\n129209,automobile\n129210,deer\n129211,airplane\n129212,frog\n129213,airplane\n129214,airplane\n129215,dog\n129216,bird\n129217,truck\n129218,cat\n129219,airplane\n129220,frog\n129221,cat\n129222,airplane\n129223,deer\n129224,horse\n129225,frog\n129226,ship\n129227,dog\n129228,automobile\n129229,truck\n129230,airplane\n129231,airplane\n129232,frog\n129233,cat\n129234,cat\n129235,frog\n129236,ship\n129237,deer\n129238,dog\n129239,airplane\n129240,truck\n129241,truck\n129242,bird\n129243,cat\n129244,frog\n129245,bird\n129246,ship\n129247,cat\n129248,bird\n129249,frog\n129250,frog\n129251,bird\n129252,deer\n129253,bird\n129254,horse\n129255,cat\n129256,horse\n129257,truck\n129258,deer\n129259,ship\n129260,dog\n129261,frog\n129262,horse\n129263,truck\n129264,deer\n129265,deer\n129266,truck\n129267,dog\n129268,frog\n129269,ship\n129270,dog\n129271,cat\n129272,airplane\n129273,dog\n129274,deer\n129275,dog\n129276,bird\n129277,truck\n129278,automobile\n129279,dog\n129280,bird\n129281,cat\n129282,cat\n129283,frog\n129284,frog\n129285,cat\n129286,bird\n129287,horse\n129288,truck\n129289,automobile\n129290,truck\n129291,dog\n129292,truck\n129293,frog\n129294,deer\n129295,truck\n129296,horse\n129297,cat\n129298,airplane\n129299,deer\n129300,deer\n129301,cat\n129302,frog\n129303,ship\n129304,deer\n129305,horse\n129306,truck\n129307,frog\n129308,cat\n129309,bird\n129310,bird\n129311,frog\n129312,airplane\n129313,frog\n129314,deer\n129315,truck\n129316,frog\n129317,truck\n129318,truck\n129319,bird\n129320,bird\n129321,airplane\n129322,truck\n129323,dog\n129324,automobile\n129325,frog\n129326,truck\n129327,truck\n129328,frog\n129329,bird\n129330,deer\n129331,deer\n129332,frog\n129333,bird\n129334,airplane\n129335,airplane\n129336,dog\n129337,frog\n129338,dog\n129339,bird\n129340,bird\n129341,ship\n129342,bird\n129343,airplane\n129344,deer\n129345,deer\n129346,truck\n129347,truck\n129348,bird\n129349,deer\n129350,deer\n129351,horse\n129352,horse\n129353,bird\n129354,cat\n129355,cat\n129356,airplane\n129357,dog\n129358,automobile\n129359,deer\n129360,deer\n129361,deer\n129362,ship\n129363,truck\n129364,bird\n129365,dog\n129366,bird\n129367,deer\n129368,deer\n129369,bird\n129370,ship\n129371,automobile\n129372,frog\n129373,horse\n129374,bird\n129375,bird\n129376,truck\n129377,ship\n129378,dog\n129379,bird\n129380,automobile\n129381,truck\n129382,deer\n129383,dog\n129384,deer\n129385,frog\n129386,truck\n129387,dog\n129388,deer\n129389,deer\n129390,truck\n129391,cat\n129392,cat\n129393,horse\n129394,cat\n129395,cat\n129396,cat\n129397,frog\n129398,deer\n129399,deer\n129400,frog\n129401,horse\n129402,airplane\n129403,airplane\n129404,cat\n129405,deer\n129406,airplane\n129407,airplane\n129408,truck\n129409,airplane\n129410,horse\n129411,truck\n129412,ship\n129413,bird\n129414,truck\n129415,cat\n129416,deer\n129417,dog\n129418,cat\n129419,ship\n129420,frog\n129421,deer\n129422,automobile\n129423,ship\n129424,airplane\n129425,deer\n129426,horse\n129427,frog\n129428,dog\n129429,cat\n129430,truck\n129431,dog\n129432,cat\n129433,dog\n129434,dog\n129435,horse\n129436,frog\n129437,horse\n129438,cat\n129439,cat\n129440,ship\n129441,dog\n129442,bird\n129443,frog\n129444,truck\n129445,bird\n129446,deer\n129447,airplane\n129448,dog\n129449,cat\n129450,deer\n129451,cat\n129452,horse\n129453,deer\n129454,dog\n129455,dog\n129456,dog\n129457,airplane\n129458,deer\n129459,deer\n129460,deer\n129461,horse\n129462,bird\n129463,bird\n129464,deer\n129465,bird\n129466,bird\n129467,truck\n129468,automobile\n129469,cat\n129470,frog\n129471,airplane\n129472,dog\n129473,bird\n129474,airplane\n129475,deer\n129476,dog\n129477,dog\n129478,automobile\n129479,ship\n129480,airplane\n129481,automobile\n129482,frog\n129483,cat\n129484,horse\n129485,cat\n129486,deer\n129487,frog\n129488,cat\n129489,ship\n129490,dog\n129491,dog\n129492,airplane\n129493,cat\n129494,frog\n129495,bird\n129496,deer\n129497,cat\n129498,deer\n129499,truck\n129500,ship\n129501,ship\n129502,horse\n129503,horse\n129504,horse\n129505,cat\n129506,automobile\n129507,cat\n129508,automobile\n129509,cat\n129510,deer\n129511,frog\n129512,ship\n129513,airplane\n129514,airplane\n129515,cat\n129516,frog\n129517,airplane\n129518,frog\n129519,ship\n129520,frog\n129521,truck\n129522,truck\n129523,bird\n129524,dog\n129525,airplane\n129526,cat\n129527,horse\n129528,bird\n129529,truck\n129530,truck\n129531,ship\n129532,airplane\n129533,cat\n129534,airplane\n129535,airplane\n129536,dog\n129537,cat\n129538,ship\n129539,truck\n129540,deer\n129541,ship\n129542,horse\n129543,bird\n129544,airplane\n129545,dog\n129546,frog\n129547,bird\n129548,cat\n129549,dog\n129550,ship\n129551,deer\n129552,bird\n129553,dog\n129554,ship\n129555,deer\n129556,bird\n129557,truck\n129558,horse\n129559,frog\n129560,truck\n129561,frog\n129562,horse\n129563,automobile\n129564,deer\n129565,deer\n129566,dog\n129567,ship\n129568,cat\n129569,frog\n129570,frog\n129571,horse\n129572,truck\n129573,horse\n129574,deer\n129575,deer\n129576,cat\n129577,dog\n129578,deer\n129579,automobile\n129580,automobile\n129581,frog\n129582,deer\n129583,dog\n129584,cat\n129585,cat\n129586,bird\n129587,truck\n129588,horse\n129589,cat\n129590,ship\n129591,automobile\n129592,cat\n129593,horse\n129594,ship\n129595,dog\n129596,bird\n129597,dog\n129598,truck\n129599,airplane\n129600,frog\n129601,bird\n129602,ship\n129603,horse\n129604,bird\n129605,cat\n129606,bird\n129607,ship\n129608,deer\n129609,cat\n129610,automobile\n129611,horse\n129612,deer\n129613,bird\n129614,deer\n129615,truck\n129616,bird\n129617,airplane\n129618,airplane\n129619,airplane\n129620,horse\n129621,horse\n129622,dog\n129623,horse\n129624,ship\n129625,deer\n129626,automobile\n129627,dog\n129628,dog\n129629,truck\n129630,airplane\n129631,automobile\n129632,deer\n129633,horse\n129634,ship\n129635,truck\n129636,ship\n129637,frog\n129638,bird\n129639,cat\n129640,deer\n129641,frog\n129642,automobile\n129643,cat\n129644,horse\n129645,ship\n129646,ship\n129647,deer\n129648,cat\n129649,dog\n129650,horse\n129651,horse\n129652,bird\n129653,dog\n129654,dog\n129655,airplane\n129656,frog\n129657,horse\n129658,ship\n129659,cat\n129660,dog\n129661,cat\n129662,horse\n129663,airplane\n129664,dog\n129665,ship\n129666,dog\n129667,truck\n129668,dog\n129669,bird\n129670,horse\n129671,horse\n129672,dog\n129673,bird\n129674,dog\n129675,bird\n129676,ship\n129677,frog\n129678,horse\n129679,cat\n129680,dog\n129681,cat\n129682,bird\n129683,airplane\n129684,truck\n129685,deer\n129686,cat\n129687,cat\n129688,dog\n129689,cat\n129690,horse\n129691,frog\n129692,ship\n129693,bird\n129694,cat\n129695,horse\n129696,airplane\n129697,frog\n129698,dog\n129699,horse\n129700,dog\n129701,horse\n129702,bird\n129703,truck\n129704,deer\n129705,horse\n129706,bird\n129707,truck\n129708,dog\n129709,dog\n129710,airplane\n129711,bird\n129712,airplane\n129713,dog\n129714,bird\n129715,truck\n129716,cat\n129717,truck\n129718,cat\n129719,bird\n129720,truck\n129721,cat\n129722,bird\n129723,airplane\n129724,deer\n129725,deer\n129726,truck\n129727,automobile\n129728,airplane\n129729,truck\n129730,cat\n129731,automobile\n129732,cat\n129733,horse\n129734,dog\n129735,dog\n129736,horse\n129737,bird\n129738,dog\n129739,deer\n129740,dog\n129741,dog\n129742,deer\n129743,frog\n129744,ship\n129745,frog\n129746,bird\n129747,deer\n129748,frog\n129749,dog\n129750,truck\n129751,frog\n129752,frog\n129753,ship\n129754,dog\n129755,truck\n129756,truck\n129757,truck\n129758,deer\n129759,truck\n129760,bird\n129761,bird\n129762,airplane\n129763,cat\n129764,cat\n129765,deer\n129766,deer\n129767,airplane\n129768,bird\n129769,deer\n129770,horse\n129771,bird\n129772,ship\n129773,automobile\n129774,automobile\n129775,frog\n129776,frog\n129777,deer\n129778,deer\n129779,truck\n129780,frog\n129781,truck\n129782,airplane\n129783,ship\n129784,truck\n129785,frog\n129786,ship\n129787,deer\n129788,deer\n129789,dog\n129790,truck\n129791,deer\n129792,automobile\n129793,frog\n129794,deer\n129795,truck\n129796,truck\n129797,cat\n129798,frog\n129799,deer\n129800,dog\n129801,airplane\n129802,deer\n129803,airplane\n129804,truck\n129805,deer\n129806,automobile\n129807,horse\n129808,frog\n129809,dog\n129810,ship\n129811,truck\n129812,frog\n129813,horse\n129814,dog\n129815,truck\n129816,frog\n129817,ship\n129818,deer\n129819,horse\n129820,cat\n129821,frog\n129822,deer\n129823,automobile\n129824,cat\n129825,horse\n129826,frog\n129827,frog\n129828,airplane\n129829,bird\n129830,bird\n129831,dog\n129832,cat\n129833,cat\n129834,horse\n129835,bird\n129836,airplane\n129837,deer\n129838,automobile\n129839,cat\n129840,dog\n129841,truck\n129842,airplane\n129843,cat\n129844,horse\n129845,frog\n129846,cat\n129847,automobile\n129848,truck\n129849,horse\n129850,deer\n129851,frog\n129852,deer\n129853,deer\n129854,airplane\n129855,deer\n129856,bird\n129857,airplane\n129858,truck\n129859,ship\n129860,bird\n129861,horse\n129862,horse\n129863,truck\n129864,frog\n129865,horse\n129866,deer\n129867,truck\n129868,dog\n129869,dog\n129870,cat\n129871,truck\n129872,airplane\n129873,ship\n129874,bird\n129875,truck\n129876,dog\n129877,ship\n129878,cat\n129879,automobile\n129880,airplane\n129881,dog\n129882,airplane\n129883,frog\n129884,bird\n129885,airplane\n129886,automobile\n129887,airplane\n129888,deer\n129889,deer\n129890,ship\n129891,dog\n129892,truck\n129893,cat\n129894,airplane\n129895,ship\n129896,cat\n129897,truck\n129898,deer\n129899,truck\n129900,dog\n129901,cat\n129902,frog\n129903,horse\n129904,deer\n129905,deer\n129906,airplane\n129907,bird\n129908,frog\n129909,horse\n129910,horse\n129911,cat\n129912,horse\n129913,dog\n129914,dog\n129915,dog\n129916,horse\n129917,deer\n129918,cat\n129919,horse\n129920,truck\n129921,bird\n129922,deer\n129923,ship\n129924,truck\n129925,ship\n129926,dog\n129927,dog\n129928,frog\n129929,cat\n129930,truck\n129931,cat\n129932,airplane\n129933,cat\n129934,frog\n129935,frog\n129936,bird\n129937,frog\n129938,bird\n129939,truck\n129940,horse\n129941,ship\n129942,truck\n129943,dog\n129944,cat\n129945,truck\n129946,horse\n129947,dog\n129948,dog\n129949,dog\n129950,truck\n129951,deer\n129952,dog\n129953,horse\n129954,dog\n129955,deer\n129956,dog\n129957,truck\n129958,truck\n129959,dog\n129960,dog\n129961,deer\n129962,frog\n129963,bird\n129964,cat\n129965,cat\n129966,automobile\n129967,horse\n129968,bird\n129969,deer\n129970,ship\n129971,truck\n129972,automobile\n129973,dog\n129974,cat\n129975,cat\n129976,bird\n129977,truck\n129978,automobile\n129979,frog\n129980,automobile\n129981,frog\n129982,horse\n129983,dog\n129984,dog\n129985,bird\n129986,dog\n129987,airplane\n129988,ship\n129989,dog\n129990,automobile\n129991,automobile\n129992,bird\n129993,deer\n129994,automobile\n129995,frog\n129996,frog\n129997,frog\n129998,dog\n129999,frog\n130000,horse\n130001,automobile\n130002,horse\n130003,airplane\n130004,airplane\n130005,deer\n130006,cat\n130007,bird\n130008,bird\n130009,automobile\n130010,bird\n130011,dog\n130012,airplane\n130013,truck\n130014,automobile\n130015,dog\n130016,airplane\n130017,ship\n130018,truck\n130019,bird\n130020,truck\n130021,automobile\n130022,ship\n130023,dog\n130024,truck\n130025,truck\n130026,deer\n130027,cat\n130028,bird\n130029,airplane\n130030,frog\n130031,automobile\n130032,frog\n130033,bird\n130034,horse\n130035,bird\n130036,frog\n130037,frog\n130038,cat\n130039,deer\n130040,frog\n130041,frog\n130042,dog\n130043,deer\n130044,frog\n130045,automobile\n130046,bird\n130047,frog\n130048,horse\n130049,truck\n130050,horse\n130051,deer\n130052,horse\n130053,bird\n130054,cat\n130055,truck\n130056,truck\n130057,airplane\n130058,truck\n130059,truck\n130060,airplane\n130061,dog\n130062,bird\n130063,bird\n130064,truck\n130065,deer\n130066,horse\n130067,truck\n130068,dog\n130069,cat\n130070,horse\n130071,horse\n130072,ship\n130073,bird\n130074,ship\n130075,deer\n130076,airplane\n130077,dog\n130078,cat\n130079,truck\n130080,airplane\n130081,deer\n130082,dog\n130083,ship\n130084,bird\n130085,truck\n130086,deer\n130087,deer\n130088,ship\n130089,airplane\n130090,dog\n130091,horse\n130092,ship\n130093,bird\n130094,horse\n130095,horse\n130096,deer\n130097,truck\n130098,automobile\n130099,airplane\n130100,airplane\n130101,bird\n130102,bird\n130103,deer\n130104,frog\n130105,cat\n130106,cat\n130107,ship\n130108,horse\n130109,bird\n130110,dog\n130111,bird\n130112,deer\n130113,truck\n130114,airplane\n130115,ship\n130116,cat\n130117,truck\n130118,deer\n130119,cat\n130120,airplane\n130121,horse\n130122,ship\n130123,frog\n130124,dog\n130125,airplane\n130126,bird\n130127,truck\n130128,truck\n130129,deer\n130130,deer\n130131,ship\n130132,automobile\n130133,dog\n130134,airplane\n130135,deer\n130136,dog\n130137,bird\n130138,automobile\n130139,dog\n130140,dog\n130141,ship\n130142,frog\n130143,frog\n130144,bird\n130145,automobile\n130146,automobile\n130147,cat\n130148,deer\n130149,deer\n130150,deer\n130151,deer\n130152,cat\n130153,cat\n130154,horse\n130155,dog\n130156,deer\n130157,truck\n130158,airplane\n130159,deer\n130160,frog\n130161,cat\n130162,truck\n130163,airplane\n130164,horse\n130165,truck\n130166,airplane\n130167,horse\n130168,horse\n130169,dog\n130170,automobile\n130171,dog\n130172,bird\n130173,dog\n130174,frog\n130175,dog\n130176,cat\n130177,horse\n130178,ship\n130179,cat\n130180,bird\n130181,cat\n130182,cat\n130183,frog\n130184,dog\n130185,ship\n130186,dog\n130187,cat\n130188,ship\n130189,cat\n130190,dog\n130191,dog\n130192,deer\n130193,deer\n130194,truck\n130195,dog\n130196,deer\n130197,truck\n130198,airplane\n130199,automobile\n130200,airplane\n130201,frog\n130202,dog\n130203,bird\n130204,bird\n130205,truck\n130206,dog\n130207,dog\n130208,horse\n130209,frog\n130210,ship\n130211,truck\n130212,deer\n130213,cat\n130214,dog\n130215,bird\n130216,ship\n130217,truck\n130218,bird\n130219,horse\n130220,cat\n130221,bird\n130222,ship\n130223,dog\n130224,dog\n130225,ship\n130226,horse\n130227,cat\n130228,cat\n130229,dog\n130230,dog\n130231,ship\n130232,deer\n130233,horse\n130234,cat\n130235,ship\n130236,cat\n130237,horse\n130238,truck\n130239,dog\n130240,ship\n130241,horse\n130242,deer\n130243,dog\n130244,airplane\n130245,bird\n130246,deer\n130247,frog\n130248,cat\n130249,horse\n130250,dog\n130251,horse\n130252,truck\n130253,cat\n130254,horse\n130255,ship\n130256,truck\n130257,automobile\n130258,automobile\n130259,truck\n130260,frog\n130261,bird\n130262,deer\n130263,frog\n130264,ship\n130265,automobile\n130266,cat\n130267,deer\n130268,dog\n130269,frog\n130270,deer\n130271,dog\n130272,dog\n130273,deer\n130274,automobile\n130275,frog\n130276,cat\n130277,cat\n130278,truck\n130279,deer\n130280,horse\n130281,cat\n130282,dog\n130283,airplane\n130284,cat\n130285,truck\n130286,deer\n130287,automobile\n130288,truck\n130289,dog\n130290,frog\n130291,deer\n130292,ship\n130293,truck\n130294,ship\n130295,bird\n130296,ship\n130297,frog\n130298,cat\n130299,automobile\n130300,horse\n130301,frog\n130302,cat\n130303,automobile\n130304,cat\n130305,airplane\n130306,dog\n130307,frog\n130308,truck\n130309,frog\n130310,cat\n130311,cat\n130312,ship\n130313,automobile\n130314,truck\n130315,bird\n130316,horse\n130317,ship\n130318,cat\n130319,cat\n130320,frog\n130321,horse\n130322,frog\n130323,truck\n130324,horse\n130325,automobile\n130326,frog\n130327,frog\n130328,dog\n130329,ship\n130330,dog\n130331,cat\n130332,deer\n130333,truck\n130334,ship\n130335,airplane\n130336,dog\n130337,cat\n130338,truck\n130339,truck\n130340,bird\n130341,deer\n130342,bird\n130343,dog\n130344,bird\n130345,truck\n130346,frog\n130347,horse\n130348,truck\n130349,frog\n130350,horse\n130351,ship\n130352,deer\n130353,bird\n130354,cat\n130355,deer\n130356,airplane\n130357,frog\n130358,dog\n130359,dog\n130360,truck\n130361,frog\n130362,automobile\n130363,bird\n130364,airplane\n130365,frog\n130366,cat\n130367,deer\n130368,horse\n130369,truck\n130370,airplane\n130371,automobile\n130372,horse\n130373,bird\n130374,ship\n130375,deer\n130376,horse\n130377,cat\n130378,cat\n130379,airplane\n130380,ship\n130381,deer\n130382,airplane\n130383,cat\n130384,automobile\n130385,horse\n130386,cat\n130387,bird\n130388,cat\n130389,airplane\n130390,truck\n130391,bird\n130392,bird\n130393,frog\n130394,deer\n130395,airplane\n130396,deer\n130397,dog\n130398,dog\n130399,deer\n130400,automobile\n130401,airplane\n130402,frog\n130403,airplane\n130404,cat\n130405,deer\n130406,cat\n130407,horse\n130408,bird\n130409,truck\n130410,automobile\n130411,horse\n130412,truck\n130413,deer\n130414,truck\n130415,cat\n130416,ship\n130417,airplane\n130418,cat\n130419,ship\n130420,deer\n130421,ship\n130422,deer\n130423,bird\n130424,truck\n130425,truck\n130426,bird\n130427,bird\n130428,frog\n130429,bird\n130430,cat\n130431,deer\n130432,horse\n130433,cat\n130434,deer\n130435,automobile\n130436,cat\n130437,dog\n130438,automobile\n130439,horse\n130440,ship\n130441,airplane\n130442,truck\n130443,horse\n130444,dog\n130445,ship\n130446,horse\n130447,airplane\n130448,airplane\n130449,truck\n130450,bird\n130451,cat\n130452,frog\n130453,deer\n130454,dog\n130455,ship\n130456,deer\n130457,deer\n130458,truck\n130459,automobile\n130460,cat\n130461,automobile\n130462,dog\n130463,automobile\n130464,frog\n130465,ship\n130466,dog\n130467,dog\n130468,cat\n130469,airplane\n130470,ship\n130471,bird\n130472,frog\n130473,frog\n130474,cat\n130475,ship\n130476,frog\n130477,deer\n130478,horse\n130479,automobile\n130480,dog\n130481,airplane\n130482,truck\n130483,ship\n130484,horse\n130485,horse\n130486,bird\n130487,ship\n130488,automobile\n130489,frog\n130490,cat\n130491,horse\n130492,cat\n130493,bird\n130494,horse\n130495,airplane\n130496,ship\n130497,deer\n130498,truck\n130499,frog\n130500,dog\n130501,ship\n130502,frog\n130503,cat\n130504,truck\n130505,horse\n130506,ship\n130507,frog\n130508,deer\n130509,frog\n130510,automobile\n130511,deer\n130512,cat\n130513,ship\n130514,frog\n130515,bird\n130516,cat\n130517,cat\n130518,ship\n130519,horse\n130520,airplane\n130521,dog\n130522,deer\n130523,deer\n130524,bird\n130525,cat\n130526,cat\n130527,truck\n130528,cat\n130529,deer\n130530,cat\n130531,cat\n130532,truck\n130533,cat\n130534,truck\n130535,cat\n130536,cat\n130537,ship\n130538,deer\n130539,airplane\n130540,automobile\n130541,frog\n130542,bird\n130543,frog\n130544,frog\n130545,ship\n130546,horse\n130547,frog\n130548,cat\n130549,frog\n130550,automobile\n130551,deer\n130552,dog\n130553,frog\n130554,airplane\n130555,horse\n130556,bird\n130557,horse\n130558,frog\n130559,deer\n130560,bird\n130561,horse\n130562,bird\n130563,dog\n130564,ship\n130565,truck\n130566,horse\n130567,automobile\n130568,automobile\n130569,truck\n130570,horse\n130571,horse\n130572,ship\n130573,deer\n130574,airplane\n130575,deer\n130576,truck\n130577,frog\n130578,deer\n130579,frog\n130580,automobile\n130581,airplane\n130582,bird\n130583,bird\n130584,cat\n130585,bird\n130586,truck\n130587,airplane\n130588,frog\n130589,horse\n130590,dog\n130591,dog\n130592,bird\n130593,cat\n130594,ship\n130595,horse\n130596,automobile\n130597,deer\n130598,bird\n130599,cat\n130600,cat\n130601,deer\n130602,truck\n130603,airplane\n130604,frog\n130605,cat\n130606,deer\n130607,ship\n130608,automobile\n130609,deer\n130610,airplane\n130611,airplane\n130612,cat\n130613,dog\n130614,automobile\n130615,airplane\n130616,dog\n130617,frog\n130618,automobile\n130619,automobile\n130620,airplane\n130621,deer\n130622,deer\n130623,bird\n130624,frog\n130625,truck\n130626,cat\n130627,cat\n130628,frog\n130629,frog\n130630,ship\n130631,truck\n130632,cat\n130633,deer\n130634,frog\n130635,deer\n130636,horse\n130637,bird\n130638,deer\n130639,frog\n130640,deer\n130641,ship\n130642,cat\n130643,deer\n130644,bird\n130645,deer\n130646,airplane\n130647,frog\n130648,deer\n130649,horse\n130650,deer\n130651,bird\n130652,airplane\n130653,cat\n130654,bird\n130655,cat\n130656,deer\n130657,horse\n130658,truck\n130659,airplane\n130660,airplane\n130661,truck\n130662,truck\n130663,horse\n130664,deer\n130665,automobile\n130666,deer\n130667,truck\n130668,frog\n130669,ship\n130670,bird\n130671,truck\n130672,cat\n130673,truck\n130674,truck\n130675,airplane\n130676,ship\n130677,ship\n130678,automobile\n130679,bird\n130680,cat\n130681,ship\n130682,horse\n130683,horse\n130684,airplane\n130685,truck\n130686,dog\n130687,deer\n130688,deer\n130689,frog\n130690,cat\n130691,airplane\n130692,deer\n130693,dog\n130694,bird\n130695,airplane\n130696,frog\n130697,ship\n130698,airplane\n130699,truck\n130700,dog\n130701,bird\n130702,ship\n130703,frog\n130704,airplane\n130705,truck\n130706,deer\n130707,deer\n130708,deer\n130709,airplane\n130710,frog\n130711,truck\n130712,frog\n130713,deer\n130714,dog\n130715,airplane\n130716,dog\n130717,frog\n130718,truck\n130719,cat\n130720,deer\n130721,ship\n130722,deer\n130723,cat\n130724,automobile\n130725,dog\n130726,bird\n130727,truck\n130728,horse\n130729,dog\n130730,airplane\n130731,horse\n130732,ship\n130733,truck\n130734,cat\n130735,airplane\n130736,dog\n130737,frog\n130738,dog\n130739,bird\n130740,frog\n130741,frog\n130742,automobile\n130743,frog\n130744,horse\n130745,dog\n130746,horse\n130747,automobile\n130748,dog\n130749,deer\n130750,automobile\n130751,automobile\n130752,airplane\n130753,dog\n130754,frog\n130755,automobile\n130756,bird\n130757,horse\n130758,truck\n130759,deer\n130760,ship\n130761,ship\n130762,airplane\n130763,ship\n130764,bird\n130765,frog\n130766,dog\n130767,deer\n130768,deer\n130769,bird\n130770,truck\n130771,deer\n130772,frog\n130773,truck\n130774,ship\n130775,dog\n130776,frog\n130777,bird\n130778,horse\n130779,truck\n130780,truck\n130781,dog\n130782,deer\n130783,deer\n130784,frog\n130785,truck\n130786,automobile\n130787,cat\n130788,ship\n130789,airplane\n130790,airplane\n130791,airplane\n130792,airplane\n130793,airplane\n130794,horse\n130795,truck\n130796,automobile\n130797,cat\n130798,automobile\n130799,automobile\n130800,deer\n130801,cat\n130802,frog\n130803,automobile\n130804,cat\n130805,airplane\n130806,cat\n130807,ship\n130808,dog\n130809,horse\n130810,ship\n130811,ship\n130812,automobile\n130813,frog\n130814,frog\n130815,airplane\n130816,frog\n130817,airplane\n130818,deer\n130819,frog\n130820,deer\n130821,dog\n130822,airplane\n130823,dog\n130824,bird\n130825,dog\n130826,bird\n130827,dog\n130828,airplane\n130829,deer\n130830,truck\n130831,deer\n130832,cat\n130833,truck\n130834,cat\n130835,frog\n130836,ship\n130837,automobile\n130838,cat\n130839,bird\n130840,automobile\n130841,airplane\n130842,bird\n130843,ship\n130844,horse\n130845,deer\n130846,truck\n130847,frog\n130848,frog\n130849,frog\n130850,airplane\n130851,frog\n130852,dog\n130853,ship\n130854,cat\n130855,frog\n130856,ship\n130857,frog\n130858,truck\n130859,frog\n130860,dog\n130861,dog\n130862,truck\n130863,ship\n130864,truck\n130865,deer\n130866,dog\n130867,airplane\n130868,dog\n130869,ship\n130870,bird\n130871,truck\n130872,deer\n130873,ship\n130874,dog\n130875,frog\n130876,automobile\n130877,cat\n130878,horse\n130879,frog\n130880,frog\n130881,deer\n130882,airplane\n130883,bird\n130884,dog\n130885,ship\n130886,airplane\n130887,horse\n130888,deer\n130889,truck\n130890,cat\n130891,cat\n130892,horse\n130893,frog\n130894,deer\n130895,airplane\n130896,bird\n130897,cat\n130898,bird\n130899,bird\n130900,horse\n130901,cat\n130902,dog\n130903,horse\n130904,ship\n130905,frog\n130906,frog\n130907,airplane\n130908,bird\n130909,cat\n130910,cat\n130911,bird\n130912,airplane\n130913,cat\n130914,cat\n130915,horse\n130916,deer\n130917,horse\n130918,automobile\n130919,dog\n130920,deer\n130921,cat\n130922,bird\n130923,truck\n130924,truck\n130925,frog\n130926,cat\n130927,cat\n130928,truck\n130929,ship\n130930,horse\n130931,truck\n130932,cat\n130933,bird\n130934,automobile\n130935,cat\n130936,frog\n130937,bird\n130938,horse\n130939,automobile\n130940,ship\n130941,deer\n130942,ship\n130943,truck\n130944,airplane\n130945,ship\n130946,dog\n130947,bird\n130948,truck\n130949,deer\n130950,deer\n130951,horse\n130952,frog\n130953,frog\n130954,bird\n130955,ship\n130956,deer\n130957,frog\n130958,airplane\n130959,frog\n130960,deer\n130961,horse\n130962,airplane\n130963,deer\n130964,dog\n130965,frog\n130966,frog\n130967,horse\n130968,automobile\n130969,truck\n130970,frog\n130971,airplane\n130972,dog\n130973,cat\n130974,bird\n130975,deer\n130976,ship\n130977,dog\n130978,horse\n130979,dog\n130980,ship\n130981,cat\n130982,cat\n130983,horse\n130984,dog\n130985,dog\n130986,automobile\n130987,truck\n130988,cat\n130989,truck\n130990,horse\n130991,frog\n130992,horse\n130993,deer\n130994,dog\n130995,ship\n130996,ship\n130997,frog\n130998,deer\n130999,deer\n131000,deer\n131001,horse\n131002,automobile\n131003,horse\n131004,deer\n131005,bird\n131006,truck\n131007,ship\n131008,automobile\n131009,dog\n131010,deer\n131011,airplane\n131012,cat\n131013,frog\n131014,ship\n131015,airplane\n131016,ship\n131017,airplane\n131018,deer\n131019,frog\n131020,ship\n131021,deer\n131022,airplane\n131023,deer\n131024,cat\n131025,truck\n131026,dog\n131027,ship\n131028,frog\n131029,bird\n131030,frog\n131031,dog\n131032,frog\n131033,frog\n131034,airplane\n131035,truck\n131036,deer\n131037,deer\n131038,deer\n131039,horse\n131040,automobile\n131041,bird\n131042,cat\n131043,bird\n131044,truck\n131045,bird\n131046,deer\n131047,truck\n131048,truck\n131049,frog\n131050,airplane\n131051,deer\n131052,frog\n131053,dog\n131054,automobile\n131055,dog\n131056,horse\n131057,horse\n131058,frog\n131059,cat\n131060,frog\n131061,deer\n131062,deer\n131063,airplane\n131064,automobile\n131065,automobile\n131066,truck\n131067,deer\n131068,deer\n131069,frog\n131070,airplane\n131071,dog\n131072,ship\n131073,frog\n131074,airplane\n131075,deer\n131076,automobile\n131077,deer\n131078,cat\n131079,dog\n131080,bird\n131081,bird\n131082,truck\n131083,bird\n131084,frog\n131085,dog\n131086,dog\n131087,deer\n131088,automobile\n131089,cat\n131090,dog\n131091,horse\n131092,dog\n131093,horse\n131094,dog\n131095,truck\n131096,dog\n131097,airplane\n131098,bird\n131099,bird\n131100,airplane\n131101,dog\n131102,ship\n131103,deer\n131104,bird\n131105,frog\n131106,airplane\n131107,deer\n131108,automobile\n131109,cat\n131110,horse\n131111,horse\n131112,cat\n131113,bird\n131114,cat\n131115,bird\n131116,frog\n131117,ship\n131118,airplane\n131119,dog\n131120,ship\n131121,cat\n131122,horse\n131123,horse\n131124,dog\n131125,bird\n131126,ship\n131127,deer\n131128,truck\n131129,cat\n131130,frog\n131131,truck\n131132,cat\n131133,truck\n131134,frog\n131135,dog\n131136,automobile\n131137,ship\n131138,truck\n131139,automobile\n131140,airplane\n131141,deer\n131142,cat\n131143,automobile\n131144,airplane\n131145,dog\n131146,dog\n131147,deer\n131148,horse\n131149,dog\n131150,airplane\n131151,dog\n131152,ship\n131153,airplane\n131154,airplane\n131155,horse\n131156,bird\n131157,frog\n131158,truck\n131159,bird\n131160,truck\n131161,ship\n131162,deer\n131163,deer\n131164,deer\n131165,dog\n131166,airplane\n131167,airplane\n131168,truck\n131169,airplane\n131170,deer\n131171,horse\n131172,dog\n131173,frog\n131174,dog\n131175,airplane\n131176,automobile\n131177,deer\n131178,horse\n131179,bird\n131180,deer\n131181,dog\n131182,cat\n131183,horse\n131184,horse\n131185,frog\n131186,airplane\n131187,cat\n131188,horse\n131189,automobile\n131190,truck\n131191,cat\n131192,dog\n131193,dog\n131194,deer\n131195,horse\n131196,frog\n131197,bird\n131198,cat\n131199,frog\n131200,frog\n131201,bird\n131202,horse\n131203,dog\n131204,horse\n131205,airplane\n131206,airplane\n131207,frog\n131208,horse\n131209,frog\n131210,cat\n131211,dog\n131212,truck\n131213,truck\n131214,dog\n131215,dog\n131216,horse\n131217,automobile\n131218,truck\n131219,deer\n131220,horse\n131221,truck\n131222,dog\n131223,deer\n131224,bird\n131225,truck\n131226,cat\n131227,horse\n131228,frog\n131229,bird\n131230,bird\n131231,airplane\n131232,bird\n131233,cat\n131234,frog\n131235,bird\n131236,ship\n131237,deer\n131238,airplane\n131239,ship\n131240,cat\n131241,horse\n131242,frog\n131243,automobile\n131244,ship\n131245,ship\n131246,deer\n131247,deer\n131248,cat\n131249,cat\n131250,horse\n131251,airplane\n131252,horse\n131253,truck\n131254,frog\n131255,ship\n131256,deer\n131257,automobile\n131258,frog\n131259,bird\n131260,cat\n131261,frog\n131262,bird\n131263,cat\n131264,frog\n131265,frog\n131266,frog\n131267,bird\n131268,cat\n131269,deer\n131270,bird\n131271,frog\n131272,horse\n131273,cat\n131274,ship\n131275,frog\n131276,frog\n131277,dog\n131278,dog\n131279,truck\n131280,horse\n131281,bird\n131282,automobile\n131283,automobile\n131284,truck\n131285,automobile\n131286,dog\n131287,frog\n131288,ship\n131289,deer\n131290,horse\n131291,bird\n131292,frog\n131293,ship\n131294,truck\n131295,dog\n131296,truck\n131297,truck\n131298,truck\n131299,deer\n131300,truck\n131301,frog\n131302,automobile\n131303,horse\n131304,bird\n131305,truck\n131306,cat\n131307,dog\n131308,frog\n131309,deer\n131310,airplane\n131311,truck\n131312,cat\n131313,horse\n131314,ship\n131315,bird\n131316,automobile\n131317,cat\n131318,horse\n131319,horse\n131320,airplane\n131321,deer\n131322,horse\n131323,frog\n131324,frog\n131325,airplane\n131326,truck\n131327,deer\n131328,truck\n131329,bird\n131330,truck\n131331,horse\n131332,dog\n131333,dog\n131334,dog\n131335,dog\n131336,automobile\n131337,airplane\n131338,deer\n131339,horse\n131340,deer\n131341,frog\n131342,dog\n131343,deer\n131344,truck\n131345,frog\n131346,frog\n131347,truck\n131348,horse\n131349,horse\n131350,truck\n131351,bird\n131352,cat\n131353,bird\n131354,frog\n131355,ship\n131356,dog\n131357,airplane\n131358,bird\n131359,cat\n131360,dog\n131361,horse\n131362,deer\n131363,cat\n131364,cat\n131365,horse\n131366,deer\n131367,truck\n131368,airplane\n131369,truck\n131370,bird\n131371,bird\n131372,cat\n131373,airplane\n131374,horse\n131375,horse\n131376,airplane\n131377,deer\n131378,truck\n131379,cat\n131380,cat\n131381,airplane\n131382,frog\n131383,airplane\n131384,ship\n131385,horse\n131386,airplane\n131387,horse\n131388,horse\n131389,cat\n131390,airplane\n131391,cat\n131392,deer\n131393,frog\n131394,dog\n131395,horse\n131396,dog\n131397,airplane\n131398,deer\n131399,frog\n131400,cat\n131401,dog\n131402,frog\n131403,dog\n131404,bird\n131405,deer\n131406,dog\n131407,dog\n131408,frog\n131409,truck\n131410,cat\n131411,dog\n131412,horse\n131413,truck\n131414,cat\n131415,cat\n131416,deer\n131417,bird\n131418,deer\n131419,automobile\n131420,automobile\n131421,frog\n131422,cat\n131423,horse\n131424,horse\n131425,bird\n131426,truck\n131427,deer\n131428,frog\n131429,ship\n131430,horse\n131431,ship\n131432,ship\n131433,cat\n131434,horse\n131435,airplane\n131436,dog\n131437,horse\n131438,dog\n131439,frog\n131440,cat\n131441,frog\n131442,automobile\n131443,automobile\n131444,automobile\n131445,cat\n131446,frog\n131447,automobile\n131448,truck\n131449,horse\n131450,automobile\n131451,truck\n131452,cat\n131453,horse\n131454,bird\n131455,ship\n131456,automobile\n131457,ship\n131458,deer\n131459,dog\n131460,horse\n131461,horse\n131462,deer\n131463,horse\n131464,dog\n131465,deer\n131466,bird\n131467,deer\n131468,cat\n131469,cat\n131470,frog\n131471,cat\n131472,horse\n131473,airplane\n131474,dog\n131475,horse\n131476,truck\n131477,cat\n131478,dog\n131479,frog\n131480,deer\n131481,frog\n131482,cat\n131483,horse\n131484,bird\n131485,cat\n131486,horse\n131487,truck\n131488,ship\n131489,horse\n131490,ship\n131491,bird\n131492,deer\n131493,deer\n131494,horse\n131495,horse\n131496,airplane\n131497,truck\n131498,truck\n131499,cat\n131500,frog\n131501,dog\n131502,deer\n131503,cat\n131504,deer\n131505,airplane\n131506,bird\n131507,frog\n131508,truck\n131509,frog\n131510,frog\n131511,deer\n131512,ship\n131513,airplane\n131514,truck\n131515,deer\n131516,ship\n131517,truck\n131518,airplane\n131519,deer\n131520,frog\n131521,ship\n131522,cat\n131523,truck\n131524,deer\n131525,dog\n131526,ship\n131527,horse\n131528,deer\n131529,truck\n131530,ship\n131531,dog\n131532,bird\n131533,truck\n131534,truck\n131535,cat\n131536,bird\n131537,deer\n131538,cat\n131539,truck\n131540,dog\n131541,frog\n131542,frog\n131543,truck\n131544,truck\n131545,airplane\n131546,deer\n131547,truck\n131548,horse\n131549,truck\n131550,deer\n131551,truck\n131552,bird\n131553,ship\n131554,deer\n131555,airplane\n131556,automobile\n131557,dog\n131558,ship\n131559,ship\n131560,automobile\n131561,frog\n131562,automobile\n131563,horse\n131564,frog\n131565,dog\n131566,airplane\n131567,horse\n131568,truck\n131569,deer\n131570,ship\n131571,frog\n131572,deer\n131573,frog\n131574,automobile\n131575,cat\n131576,truck\n131577,deer\n131578,deer\n131579,automobile\n131580,horse\n131581,cat\n131582,cat\n131583,frog\n131584,airplane\n131585,dog\n131586,deer\n131587,horse\n131588,deer\n131589,automobile\n131590,ship\n131591,dog\n131592,cat\n131593,deer\n131594,dog\n131595,frog\n131596,deer\n131597,horse\n131598,truck\n131599,frog\n131600,bird\n131601,deer\n131602,deer\n131603,dog\n131604,horse\n131605,cat\n131606,ship\n131607,ship\n131608,deer\n131609,frog\n131610,bird\n131611,cat\n131612,dog\n131613,dog\n131614,automobile\n131615,frog\n131616,deer\n131617,truck\n131618,deer\n131619,automobile\n131620,cat\n131621,horse\n131622,cat\n131623,deer\n131624,airplane\n131625,dog\n131626,horse\n131627,truck\n131628,automobile\n131629,truck\n131630,deer\n131631,dog\n131632,truck\n131633,dog\n131634,bird\n131635,bird\n131636,ship\n131637,deer\n131638,airplane\n131639,ship\n131640,cat\n131641,cat\n131642,horse\n131643,frog\n131644,ship\n131645,truck\n131646,horse\n131647,frog\n131648,truck\n131649,truck\n131650,horse\n131651,automobile\n131652,cat\n131653,airplane\n131654,deer\n131655,deer\n131656,horse\n131657,deer\n131658,deer\n131659,airplane\n131660,dog\n131661,truck\n131662,dog\n131663,cat\n131664,cat\n131665,cat\n131666,truck\n131667,deer\n131668,deer\n131669,deer\n131670,airplane\n131671,horse\n131672,deer\n131673,frog\n131674,deer\n131675,frog\n131676,deer\n131677,dog\n131678,dog\n131679,horse\n131680,frog\n131681,airplane\n131682,horse\n131683,cat\n131684,horse\n131685,truck\n131686,cat\n131687,cat\n131688,deer\n131689,airplane\n131690,horse\n131691,dog\n131692,bird\n131693,airplane\n131694,frog\n131695,cat\n131696,ship\n131697,cat\n131698,truck\n131699,ship\n131700,frog\n131701,bird\n131702,truck\n131703,ship\n131704,frog\n131705,bird\n131706,truck\n131707,deer\n131708,airplane\n131709,horse\n131710,truck\n131711,bird\n131712,deer\n131713,bird\n131714,bird\n131715,bird\n131716,dog\n131717,truck\n131718,airplane\n131719,truck\n131720,bird\n131721,cat\n131722,airplane\n131723,frog\n131724,cat\n131725,frog\n131726,deer\n131727,deer\n131728,deer\n131729,cat\n131730,truck\n131731,frog\n131732,cat\n131733,truck\n131734,airplane\n131735,cat\n131736,horse\n131737,ship\n131738,cat\n131739,frog\n131740,cat\n131741,horse\n131742,bird\n131743,truck\n131744,automobile\n131745,bird\n131746,cat\n131747,deer\n131748,deer\n131749,horse\n131750,bird\n131751,cat\n131752,truck\n131753,deer\n131754,truck\n131755,truck\n131756,deer\n131757,deer\n131758,cat\n131759,airplane\n131760,frog\n131761,bird\n131762,deer\n131763,automobile\n131764,horse\n131765,truck\n131766,airplane\n131767,cat\n131768,frog\n131769,frog\n131770,ship\n131771,deer\n131772,ship\n131773,bird\n131774,deer\n131775,dog\n131776,horse\n131777,deer\n131778,truck\n131779,airplane\n131780,ship\n131781,dog\n131782,ship\n131783,deer\n131784,horse\n131785,bird\n131786,frog\n131787,bird\n131788,dog\n131789,airplane\n131790,bird\n131791,horse\n131792,frog\n131793,airplane\n131794,frog\n131795,cat\n131796,automobile\n131797,dog\n131798,cat\n131799,airplane\n131800,bird\n131801,deer\n131802,airplane\n131803,dog\n131804,cat\n131805,airplane\n131806,frog\n131807,deer\n131808,deer\n131809,ship\n131810,bird\n131811,ship\n131812,truck\n131813,horse\n131814,airplane\n131815,bird\n131816,deer\n131817,deer\n131818,frog\n131819,dog\n131820,cat\n131821,airplane\n131822,automobile\n131823,deer\n131824,dog\n131825,dog\n131826,deer\n131827,deer\n131828,bird\n131829,deer\n131830,deer\n131831,bird\n131832,ship\n131833,truck\n131834,truck\n131835,deer\n131836,deer\n131837,deer\n131838,frog\n131839,bird\n131840,deer\n131841,deer\n131842,cat\n131843,horse\n131844,deer\n131845,cat\n131846,dog\n131847,automobile\n131848,ship\n131849,truck\n131850,dog\n131851,truck\n131852,truck\n131853,cat\n131854,cat\n131855,bird\n131856,deer\n131857,horse\n131858,cat\n131859,automobile\n131860,airplane\n131861,dog\n131862,horse\n131863,bird\n131864,bird\n131865,dog\n131866,deer\n131867,deer\n131868,dog\n131869,dog\n131870,dog\n131871,ship\n131872,horse\n131873,deer\n131874,automobile\n131875,bird\n131876,frog\n131877,deer\n131878,deer\n131879,deer\n131880,deer\n131881,deer\n131882,horse\n131883,deer\n131884,dog\n131885,deer\n131886,airplane\n131887,deer\n131888,bird\n131889,cat\n131890,dog\n131891,bird\n131892,truck\n131893,ship\n131894,truck\n131895,airplane\n131896,cat\n131897,airplane\n131898,deer\n131899,frog\n131900,deer\n131901,truck\n131902,automobile\n131903,deer\n131904,dog\n131905,cat\n131906,airplane\n131907,deer\n131908,automobile\n131909,airplane\n131910,deer\n131911,frog\n131912,deer\n131913,ship\n131914,airplane\n131915,bird\n131916,cat\n131917,airplane\n131918,dog\n131919,automobile\n131920,ship\n131921,deer\n131922,airplane\n131923,cat\n131924,truck\n131925,airplane\n131926,deer\n131927,bird\n131928,frog\n131929,cat\n131930,horse\n131931,deer\n131932,horse\n131933,frog\n131934,deer\n131935,cat\n131936,ship\n131937,automobile\n131938,cat\n131939,ship\n131940,frog\n131941,cat\n131942,truck\n131943,frog\n131944,cat\n131945,truck\n131946,ship\n131947,frog\n131948,automobile\n131949,airplane\n131950,horse\n131951,frog\n131952,airplane\n131953,airplane\n131954,airplane\n131955,horse\n131956,frog\n131957,deer\n131958,ship\n131959,truck\n131960,ship\n131961,ship\n131962,horse\n131963,deer\n131964,airplane\n131965,cat\n131966,airplane\n131967,dog\n131968,truck\n131969,dog\n131970,frog\n131971,ship\n131972,bird\n131973,frog\n131974,bird\n131975,cat\n131976,bird\n131977,automobile\n131978,truck\n131979,horse\n131980,frog\n131981,dog\n131982,airplane\n131983,cat\n131984,cat\n131985,horse\n131986,horse\n131987,cat\n131988,cat\n131989,automobile\n131990,airplane\n131991,deer\n131992,horse\n131993,truck\n131994,deer\n131995,ship\n131996,bird\n131997,dog\n131998,airplane\n131999,bird\n132000,frog\n132001,horse\n132002,horse\n132003,deer\n132004,frog\n132005,automobile\n132006,bird\n132007,cat\n132008,deer\n132009,dog\n132010,horse\n132011,horse\n132012,frog\n132013,ship\n132014,airplane\n132015,dog\n132016,horse\n132017,truck\n132018,bird\n132019,deer\n132020,frog\n132021,deer\n132022,deer\n132023,deer\n132024,cat\n132025,cat\n132026,deer\n132027,cat\n132028,cat\n132029,dog\n132030,truck\n132031,automobile\n132032,dog\n132033,frog\n132034,ship\n132035,cat\n132036,automobile\n132037,frog\n132038,cat\n132039,airplane\n132040,truck\n132041,deer\n132042,frog\n132043,deer\n132044,ship\n132045,ship\n132046,automobile\n132047,dog\n132048,frog\n132049,frog\n132050,automobile\n132051,cat\n132052,dog\n132053,automobile\n132054,ship\n132055,ship\n132056,horse\n132057,cat\n132058,truck\n132059,truck\n132060,bird\n132061,horse\n132062,horse\n132063,deer\n132064,horse\n132065,truck\n132066,airplane\n132067,frog\n132068,truck\n132069,deer\n132070,truck\n132071,truck\n132072,automobile\n132073,dog\n132074,automobile\n132075,horse\n132076,deer\n132077,horse\n132078,deer\n132079,frog\n132080,horse\n132081,cat\n132082,bird\n132083,bird\n132084,truck\n132085,bird\n132086,horse\n132087,horse\n132088,cat\n132089,truck\n132090,bird\n132091,bird\n132092,cat\n132093,horse\n132094,truck\n132095,airplane\n132096,deer\n132097,airplane\n132098,deer\n132099,ship\n132100,ship\n132101,frog\n132102,ship\n132103,ship\n132104,deer\n132105,deer\n132106,bird\n132107,deer\n132108,truck\n132109,dog\n132110,truck\n132111,horse\n132112,truck\n132113,deer\n132114,truck\n132115,dog\n132116,cat\n132117,airplane\n132118,bird\n132119,airplane\n132120,horse\n132121,airplane\n132122,bird\n132123,airplane\n132124,ship\n132125,truck\n132126,dog\n132127,truck\n132128,frog\n132129,truck\n132130,airplane\n132131,truck\n132132,airplane\n132133,truck\n132134,frog\n132135,truck\n132136,automobile\n132137,ship\n132138,ship\n132139,cat\n132140,deer\n132141,horse\n132142,truck\n132143,horse\n132144,bird\n132145,cat\n132146,deer\n132147,bird\n132148,dog\n132149,deer\n132150,automobile\n132151,cat\n132152,horse\n132153,dog\n132154,cat\n132155,airplane\n132156,horse\n132157,ship\n132158,dog\n132159,frog\n132160,deer\n132161,ship\n132162,frog\n132163,dog\n132164,deer\n132165,frog\n132166,deer\n132167,deer\n132168,dog\n132169,frog\n132170,cat\n132171,frog\n132172,airplane\n132173,truck\n132174,truck\n132175,ship\n132176,frog\n132177,deer\n132178,airplane\n132179,frog\n132180,deer\n132181,cat\n132182,cat\n132183,deer\n132184,automobile\n132185,deer\n132186,bird\n132187,horse\n132188,cat\n132189,horse\n132190,cat\n132191,truck\n132192,airplane\n132193,cat\n132194,airplane\n132195,deer\n132196,cat\n132197,bird\n132198,automobile\n132199,ship\n132200,frog\n132201,automobile\n132202,cat\n132203,bird\n132204,deer\n132205,dog\n132206,bird\n132207,truck\n132208,deer\n132209,ship\n132210,cat\n132211,dog\n132212,deer\n132213,frog\n132214,ship\n132215,frog\n132216,airplane\n132217,deer\n132218,frog\n132219,bird\n132220,automobile\n132221,cat\n132222,dog\n132223,bird\n132224,deer\n132225,frog\n132226,frog\n132227,truck\n132228,cat\n132229,horse\n132230,dog\n132231,bird\n132232,automobile\n132233,frog\n132234,bird\n132235,horse\n132236,dog\n132237,airplane\n132238,horse\n132239,airplane\n132240,truck\n132241,frog\n132242,deer\n132243,deer\n132244,dog\n132245,deer\n132246,ship\n132247,deer\n132248,bird\n132249,frog\n132250,horse\n132251,ship\n132252,horse\n132253,cat\n132254,truck\n132255,ship\n132256,dog\n132257,bird\n132258,automobile\n132259,horse\n132260,deer\n132261,ship\n132262,truck\n132263,dog\n132264,frog\n132265,bird\n132266,bird\n132267,bird\n132268,horse\n132269,deer\n132270,dog\n132271,horse\n132272,automobile\n132273,airplane\n132274,truck\n132275,deer\n132276,ship\n132277,truck\n132278,cat\n132279,dog\n132280,airplane\n132281,frog\n132282,horse\n132283,automobile\n132284,deer\n132285,horse\n132286,cat\n132287,horse\n132288,bird\n132289,bird\n132290,truck\n132291,dog\n132292,frog\n132293,frog\n132294,cat\n132295,dog\n132296,dog\n132297,frog\n132298,deer\n132299,truck\n132300,dog\n132301,bird\n132302,dog\n132303,airplane\n132304,automobile\n132305,cat\n132306,airplane\n132307,horse\n132308,horse\n132309,frog\n132310,deer\n132311,ship\n132312,dog\n132313,truck\n132314,airplane\n132315,deer\n132316,cat\n132317,bird\n132318,ship\n132319,horse\n132320,dog\n132321,cat\n132322,bird\n132323,airplane\n132324,bird\n132325,bird\n132326,deer\n132327,truck\n132328,deer\n132329,horse\n132330,truck\n132331,automobile\n132332,deer\n132333,deer\n132334,frog\n132335,airplane\n132336,horse\n132337,truck\n132338,ship\n132339,automobile\n132340,deer\n132341,frog\n132342,airplane\n132343,horse\n132344,deer\n132345,ship\n132346,cat\n132347,bird\n132348,frog\n132349,frog\n132350,horse\n132351,automobile\n132352,horse\n132353,truck\n132354,cat\n132355,bird\n132356,horse\n132357,cat\n132358,airplane\n132359,deer\n132360,horse\n132361,airplane\n132362,horse\n132363,airplane\n132364,truck\n132365,ship\n132366,cat\n132367,dog\n132368,truck\n132369,horse\n132370,truck\n132371,dog\n132372,frog\n132373,truck\n132374,horse\n132375,deer\n132376,bird\n132377,ship\n132378,deer\n132379,bird\n132380,truck\n132381,truck\n132382,cat\n132383,automobile\n132384,deer\n132385,truck\n132386,deer\n132387,dog\n132388,deer\n132389,automobile\n132390,cat\n132391,bird\n132392,ship\n132393,truck\n132394,airplane\n132395,dog\n132396,dog\n132397,airplane\n132398,truck\n132399,truck\n132400,truck\n132401,frog\n132402,airplane\n132403,dog\n132404,cat\n132405,ship\n132406,bird\n132407,bird\n132408,deer\n132409,deer\n132410,truck\n132411,deer\n132412,truck\n132413,deer\n132414,frog\n132415,frog\n132416,airplane\n132417,automobile\n132418,cat\n132419,cat\n132420,horse\n132421,frog\n132422,deer\n132423,automobile\n132424,deer\n132425,bird\n132426,frog\n132427,horse\n132428,horse\n132429,cat\n132430,dog\n132431,ship\n132432,deer\n132433,automobile\n132434,cat\n132435,truck\n132436,bird\n132437,truck\n132438,truck\n132439,deer\n132440,automobile\n132441,horse\n132442,dog\n132443,cat\n132444,dog\n132445,deer\n132446,cat\n132447,deer\n132448,airplane\n132449,horse\n132450,dog\n132451,truck\n132452,airplane\n132453,airplane\n132454,automobile\n132455,cat\n132456,horse\n132457,airplane\n132458,cat\n132459,airplane\n132460,deer\n132461,cat\n132462,cat\n132463,cat\n132464,airplane\n132465,cat\n132466,ship\n132467,cat\n132468,deer\n132469,cat\n132470,horse\n132471,deer\n132472,horse\n132473,bird\n132474,bird\n132475,frog\n132476,dog\n132477,bird\n132478,truck\n132479,dog\n132480,deer\n132481,automobile\n132482,automobile\n132483,horse\n132484,horse\n132485,airplane\n132486,bird\n132487,deer\n132488,automobile\n132489,frog\n132490,ship\n132491,cat\n132492,bird\n132493,horse\n132494,truck\n132495,truck\n132496,deer\n132497,bird\n132498,deer\n132499,horse\n132500,frog\n132501,dog\n132502,truck\n132503,deer\n132504,automobile\n132505,bird\n132506,dog\n132507,ship\n132508,ship\n132509,frog\n132510,cat\n132511,airplane\n132512,truck\n132513,horse\n132514,truck\n132515,dog\n132516,ship\n132517,cat\n132518,deer\n132519,dog\n132520,truck\n132521,horse\n132522,deer\n132523,bird\n132524,cat\n132525,truck\n132526,cat\n132527,horse\n132528,truck\n132529,frog\n132530,cat\n132531,ship\n132532,bird\n132533,airplane\n132534,bird\n132535,frog\n132536,airplane\n132537,deer\n132538,airplane\n132539,horse\n132540,frog\n132541,dog\n132542,automobile\n132543,dog\n132544,cat\n132545,airplane\n132546,frog\n132547,horse\n132548,cat\n132549,truck\n132550,deer\n132551,airplane\n132552,bird\n132553,frog\n132554,bird\n132555,automobile\n132556,horse\n132557,airplane\n132558,bird\n132559,dog\n132560,frog\n132561,bird\n132562,automobile\n132563,cat\n132564,truck\n132565,deer\n132566,deer\n132567,frog\n132568,dog\n132569,ship\n132570,frog\n132571,horse\n132572,dog\n132573,ship\n132574,automobile\n132575,bird\n132576,cat\n132577,ship\n132578,ship\n132579,truck\n132580,truck\n132581,deer\n132582,ship\n132583,cat\n132584,automobile\n132585,bird\n132586,bird\n132587,horse\n132588,horse\n132589,ship\n132590,horse\n132591,horse\n132592,cat\n132593,ship\n132594,deer\n132595,horse\n132596,cat\n132597,dog\n132598,bird\n132599,airplane\n132600,cat\n132601,bird\n132602,airplane\n132603,ship\n132604,truck\n132605,automobile\n132606,airplane\n132607,automobile\n132608,truck\n132609,airplane\n132610,ship\n132611,truck\n132612,dog\n132613,dog\n132614,deer\n132615,airplane\n132616,dog\n132617,ship\n132618,bird\n132619,deer\n132620,horse\n132621,cat\n132622,horse\n132623,frog\n132624,ship\n132625,dog\n132626,airplane\n132627,dog\n132628,bird\n132629,deer\n132630,truck\n132631,airplane\n132632,bird\n132633,horse\n132634,airplane\n132635,dog\n132636,bird\n132637,horse\n132638,deer\n132639,ship\n132640,deer\n132641,truck\n132642,truck\n132643,bird\n132644,cat\n132645,frog\n132646,ship\n132647,dog\n132648,bird\n132649,cat\n132650,truck\n132651,deer\n132652,ship\n132653,cat\n132654,bird\n132655,deer\n132656,dog\n132657,horse\n132658,cat\n132659,automobile\n132660,dog\n132661,horse\n132662,frog\n132663,frog\n132664,truck\n132665,ship\n132666,horse\n132667,dog\n132668,cat\n132669,bird\n132670,airplane\n132671,bird\n132672,dog\n132673,horse\n132674,truck\n132675,truck\n132676,ship\n132677,dog\n132678,deer\n132679,dog\n132680,frog\n132681,bird\n132682,ship\n132683,airplane\n132684,bird\n132685,airplane\n132686,frog\n132687,cat\n132688,cat\n132689,automobile\n132690,truck\n132691,automobile\n132692,frog\n132693,ship\n132694,horse\n132695,automobile\n132696,dog\n132697,airplane\n132698,cat\n132699,truck\n132700,airplane\n132701,deer\n132702,dog\n132703,bird\n132704,automobile\n132705,deer\n132706,cat\n132707,horse\n132708,horse\n132709,horse\n132710,deer\n132711,bird\n132712,airplane\n132713,horse\n132714,horse\n132715,frog\n132716,bird\n132717,deer\n132718,automobile\n132719,cat\n132720,airplane\n132721,deer\n132722,deer\n132723,truck\n132724,dog\n132725,frog\n132726,dog\n132727,dog\n132728,cat\n132729,frog\n132730,frog\n132731,airplane\n132732,automobile\n132733,horse\n132734,truck\n132735,cat\n132736,bird\n132737,truck\n132738,horse\n132739,horse\n132740,deer\n132741,bird\n132742,bird\n132743,dog\n132744,frog\n132745,ship\n132746,truck\n132747,bird\n132748,ship\n132749,frog\n132750,cat\n132751,deer\n132752,horse\n132753,bird\n132754,ship\n132755,frog\n132756,horse\n132757,dog\n132758,deer\n132759,frog\n132760,deer\n132761,deer\n132762,truck\n132763,cat\n132764,bird\n132765,airplane\n132766,automobile\n132767,ship\n132768,truck\n132769,truck\n132770,truck\n132771,cat\n132772,cat\n132773,automobile\n132774,dog\n132775,bird\n132776,frog\n132777,airplane\n132778,deer\n132779,airplane\n132780,horse\n132781,deer\n132782,cat\n132783,bird\n132784,airplane\n132785,automobile\n132786,airplane\n132787,airplane\n132788,airplane\n132789,dog\n132790,deer\n132791,cat\n132792,deer\n132793,ship\n132794,automobile\n132795,bird\n132796,horse\n132797,cat\n132798,frog\n132799,dog\n132800,horse\n132801,airplane\n132802,bird\n132803,ship\n132804,ship\n132805,truck\n132806,horse\n132807,airplane\n132808,ship\n132809,truck\n132810,automobile\n132811,airplane\n132812,cat\n132813,airplane\n132814,frog\n132815,truck\n132816,cat\n132817,frog\n132818,truck\n132819,deer\n132820,truck\n132821,bird\n132822,airplane\n132823,cat\n132824,dog\n132825,bird\n132826,frog\n132827,dog\n132828,cat\n132829,frog\n132830,cat\n132831,cat\n132832,ship\n132833,ship\n132834,cat\n132835,frog\n132836,frog\n132837,truck\n132838,bird\n132839,truck\n132840,cat\n132841,bird\n132842,truck\n132843,automobile\n132844,airplane\n132845,bird\n132846,bird\n132847,frog\n132848,horse\n132849,airplane\n132850,horse\n132851,deer\n132852,cat\n132853,truck\n132854,automobile\n132855,deer\n132856,deer\n132857,ship\n132858,ship\n132859,airplane\n132860,truck\n132861,cat\n132862,cat\n132863,deer\n132864,bird\n132865,ship\n132866,frog\n132867,truck\n132868,automobile\n132869,frog\n132870,bird\n132871,dog\n132872,frog\n132873,dog\n132874,automobile\n132875,ship\n132876,automobile\n132877,dog\n132878,dog\n132879,truck\n132880,airplane\n132881,truck\n132882,deer\n132883,horse\n132884,truck\n132885,horse\n132886,ship\n132887,horse\n132888,automobile\n132889,truck\n132890,bird\n132891,dog\n132892,truck\n132893,cat\n132894,airplane\n132895,deer\n132896,frog\n132897,cat\n132898,airplane\n132899,dog\n132900,ship\n132901,truck\n132902,cat\n132903,cat\n132904,deer\n132905,automobile\n132906,ship\n132907,horse\n132908,horse\n132909,deer\n132910,bird\n132911,frog\n132912,automobile\n132913,cat\n132914,dog\n132915,deer\n132916,ship\n132917,deer\n132918,dog\n132919,frog\n132920,ship\n132921,deer\n132922,dog\n132923,ship\n132924,cat\n132925,deer\n132926,airplane\n132927,deer\n132928,cat\n132929,dog\n132930,dog\n132931,horse\n132932,ship\n132933,airplane\n132934,ship\n132935,bird\n132936,dog\n132937,ship\n132938,bird\n132939,ship\n132940,cat\n132941,cat\n132942,cat\n132943,horse\n132944,bird\n132945,dog\n132946,bird\n132947,deer\n132948,airplane\n132949,horse\n132950,automobile\n132951,cat\n132952,cat\n132953,cat\n132954,dog\n132955,horse\n132956,cat\n132957,cat\n132958,truck\n132959,dog\n132960,truck\n132961,dog\n132962,automobile\n132963,cat\n132964,frog\n132965,horse\n132966,cat\n132967,frog\n132968,deer\n132969,horse\n132970,deer\n132971,ship\n132972,dog\n132973,frog\n132974,truck\n132975,ship\n132976,airplane\n132977,deer\n132978,deer\n132979,dog\n132980,frog\n132981,deer\n132982,cat\n132983,dog\n132984,horse\n132985,horse\n132986,bird\n132987,deer\n132988,dog\n132989,horse\n132990,bird\n132991,deer\n132992,airplane\n132993,truck\n132994,bird\n132995,airplane\n132996,deer\n132997,cat\n132998,truck\n132999,dog\n133000,automobile\n133001,horse\n133002,frog\n133003,airplane\n133004,airplane\n133005,deer\n133006,truck\n133007,horse\n133008,automobile\n133009,deer\n133010,truck\n133011,deer\n133012,ship\n133013,cat\n133014,ship\n133015,frog\n133016,cat\n133017,truck\n133018,ship\n133019,automobile\n133020,truck\n133021,cat\n133022,ship\n133023,deer\n133024,deer\n133025,dog\n133026,airplane\n133027,dog\n133028,cat\n133029,bird\n133030,frog\n133031,cat\n133032,truck\n133033,deer\n133034,cat\n133035,frog\n133036,cat\n133037,horse\n133038,automobile\n133039,dog\n133040,deer\n133041,cat\n133042,bird\n133043,cat\n133044,deer\n133045,bird\n133046,dog\n133047,dog\n133048,deer\n133049,truck\n133050,bird\n133051,airplane\n133052,automobile\n133053,frog\n133054,ship\n133055,cat\n133056,bird\n133057,bird\n133058,airplane\n133059,horse\n133060,ship\n133061,deer\n133062,truck\n133063,frog\n133064,horse\n133065,ship\n133066,cat\n133067,horse\n133068,cat\n133069,truck\n133070,horse\n133071,automobile\n133072,deer\n133073,automobile\n133074,horse\n133075,cat\n133076,bird\n133077,ship\n133078,dog\n133079,ship\n133080,automobile\n133081,truck\n133082,ship\n133083,automobile\n133084,horse\n133085,dog\n133086,frog\n133087,cat\n133088,bird\n133089,dog\n133090,truck\n133091,truck\n133092,dog\n133093,truck\n133094,truck\n133095,bird\n133096,bird\n133097,dog\n133098,truck\n133099,automobile\n133100,cat\n133101,dog\n133102,dog\n133103,deer\n133104,horse\n133105,ship\n133106,bird\n133107,dog\n133108,cat\n133109,airplane\n133110,cat\n133111,horse\n133112,horse\n133113,horse\n133114,cat\n133115,airplane\n133116,frog\n133117,dog\n133118,cat\n133119,bird\n133120,cat\n133121,automobile\n133122,deer\n133123,dog\n133124,airplane\n133125,dog\n133126,dog\n133127,truck\n133128,truck\n133129,bird\n133130,horse\n133131,cat\n133132,ship\n133133,deer\n133134,automobile\n133135,ship\n133136,truck\n133137,cat\n133138,bird\n133139,airplane\n133140,automobile\n133141,frog\n133142,airplane\n133143,cat\n133144,horse\n133145,dog\n133146,dog\n133147,cat\n133148,airplane\n133149,deer\n133150,dog\n133151,deer\n133152,dog\n133153,airplane\n133154,cat\n133155,airplane\n133156,airplane\n133157,bird\n133158,horse\n133159,airplane\n133160,dog\n133161,airplane\n133162,airplane\n133163,automobile\n133164,deer\n133165,truck\n133166,horse\n133167,airplane\n133168,deer\n133169,bird\n133170,bird\n133171,truck\n133172,bird\n133173,truck\n133174,horse\n133175,frog\n133176,bird\n133177,deer\n133178,frog\n133179,dog\n133180,horse\n133181,frog\n133182,bird\n133183,truck\n133184,frog\n133185,frog\n133186,horse\n133187,ship\n133188,cat\n133189,truck\n133190,ship\n133191,horse\n133192,frog\n133193,horse\n133194,truck\n133195,automobile\n133196,horse\n133197,bird\n133198,airplane\n133199,dog\n133200,frog\n133201,deer\n133202,horse\n133203,cat\n133204,truck\n133205,bird\n133206,airplane\n133207,bird\n133208,horse\n133209,frog\n133210,bird\n133211,ship\n133212,horse\n133213,horse\n133214,deer\n133215,dog\n133216,truck\n133217,bird\n133218,bird\n133219,automobile\n133220,bird\n133221,bird\n133222,cat\n133223,dog\n133224,cat\n133225,airplane\n133226,dog\n133227,frog\n133228,horse\n133229,truck\n133230,truck\n133231,deer\n133232,deer\n133233,cat\n133234,ship\n133235,deer\n133236,dog\n133237,deer\n133238,dog\n133239,ship\n133240,frog\n133241,bird\n133242,ship\n133243,truck\n133244,airplane\n133245,ship\n133246,frog\n133247,deer\n133248,cat\n133249,truck\n133250,dog\n133251,cat\n133252,cat\n133253,cat\n133254,automobile\n133255,cat\n133256,frog\n133257,dog\n133258,truck\n133259,airplane\n133260,bird\n133261,cat\n133262,truck\n133263,bird\n133264,bird\n133265,truck\n133266,deer\n133267,airplane\n133268,dog\n133269,frog\n133270,ship\n133271,deer\n133272,frog\n133273,deer\n133274,deer\n133275,ship\n133276,airplane\n133277,deer\n133278,airplane\n133279,frog\n133280,horse\n133281,deer\n133282,cat\n133283,dog\n133284,dog\n133285,horse\n133286,dog\n133287,dog\n133288,dog\n133289,truck\n133290,airplane\n133291,automobile\n133292,deer\n133293,ship\n133294,automobile\n133295,frog\n133296,dog\n133297,deer\n133298,horse\n133299,ship\n133300,bird\n133301,cat\n133302,ship\n133303,horse\n133304,automobile\n133305,frog\n133306,ship\n133307,truck\n133308,horse\n133309,bird\n133310,airplane\n133311,deer\n133312,automobile\n133313,dog\n133314,automobile\n133315,automobile\n133316,frog\n133317,ship\n133318,frog\n133319,deer\n133320,bird\n133321,deer\n133322,dog\n133323,dog\n133324,horse\n133325,ship\n133326,horse\n133327,dog\n133328,frog\n133329,automobile\n133330,frog\n133331,dog\n133332,horse\n133333,airplane\n133334,automobile\n133335,ship\n133336,automobile\n133337,ship\n133338,deer\n133339,cat\n133340,ship\n133341,bird\n133342,automobile\n133343,frog\n133344,automobile\n133345,cat\n133346,ship\n133347,cat\n133348,deer\n133349,truck\n133350,bird\n133351,automobile\n133352,cat\n133353,cat\n133354,horse\n133355,ship\n133356,horse\n133357,truck\n133358,deer\n133359,cat\n133360,horse\n133361,truck\n133362,dog\n133363,dog\n133364,airplane\n133365,deer\n133366,truck\n133367,airplane\n133368,truck\n133369,automobile\n133370,dog\n133371,ship\n133372,frog\n133373,horse\n133374,deer\n133375,frog\n133376,ship\n133377,automobile\n133378,deer\n133379,cat\n133380,dog\n133381,automobile\n133382,truck\n133383,bird\n133384,ship\n133385,deer\n133386,cat\n133387,ship\n133388,bird\n133389,frog\n133390,cat\n133391,bird\n133392,horse\n133393,cat\n133394,deer\n133395,airplane\n133396,truck\n133397,truck\n133398,ship\n133399,ship\n133400,bird\n133401,horse\n133402,cat\n133403,airplane\n133404,automobile\n133405,automobile\n133406,bird\n133407,truck\n133408,truck\n133409,frog\n133410,dog\n133411,bird\n133412,deer\n133413,airplane\n133414,dog\n133415,frog\n133416,bird\n133417,automobile\n133418,automobile\n133419,bird\n133420,bird\n133421,ship\n133422,ship\n133423,deer\n133424,dog\n133425,dog\n133426,bird\n133427,horse\n133428,frog\n133429,airplane\n133430,horse\n133431,ship\n133432,horse\n133433,horse\n133434,airplane\n133435,cat\n133436,automobile\n133437,deer\n133438,frog\n133439,frog\n133440,cat\n133441,airplane\n133442,ship\n133443,dog\n133444,bird\n133445,truck\n133446,truck\n133447,cat\n133448,airplane\n133449,bird\n133450,frog\n133451,dog\n133452,dog\n133453,truck\n133454,airplane\n133455,cat\n133456,deer\n133457,deer\n133458,automobile\n133459,cat\n133460,horse\n133461,truck\n133462,frog\n133463,truck\n133464,truck\n133465,frog\n133466,horse\n133467,deer\n133468,truck\n133469,ship\n133470,cat\n133471,bird\n133472,dog\n133473,horse\n133474,truck\n133475,deer\n133476,ship\n133477,airplane\n133478,truck\n133479,bird\n133480,truck\n133481,truck\n133482,horse\n133483,truck\n133484,ship\n133485,ship\n133486,dog\n133487,cat\n133488,ship\n133489,cat\n133490,deer\n133491,airplane\n133492,dog\n133493,ship\n133494,cat\n133495,bird\n133496,cat\n133497,bird\n133498,horse\n133499,automobile\n133500,cat\n133501,cat\n133502,airplane\n133503,ship\n133504,deer\n133505,dog\n133506,cat\n133507,deer\n133508,cat\n133509,frog\n133510,horse\n133511,bird\n133512,cat\n133513,truck\n133514,truck\n133515,airplane\n133516,deer\n133517,dog\n133518,cat\n133519,bird\n133520,automobile\n133521,frog\n133522,horse\n133523,deer\n133524,deer\n133525,horse\n133526,deer\n133527,ship\n133528,dog\n133529,deer\n133530,cat\n133531,cat\n133532,bird\n133533,deer\n133534,frog\n133535,horse\n133536,dog\n133537,horse\n133538,cat\n133539,airplane\n133540,deer\n133541,cat\n133542,deer\n133543,deer\n133544,horse\n133545,cat\n133546,cat\n133547,bird\n133548,cat\n133549,dog\n133550,frog\n133551,deer\n133552,frog\n133553,airplane\n133554,dog\n133555,airplane\n133556,dog\n133557,airplane\n133558,automobile\n133559,horse\n133560,automobile\n133561,dog\n133562,dog\n133563,deer\n133564,airplane\n133565,dog\n133566,truck\n133567,deer\n133568,truck\n133569,truck\n133570,ship\n133571,horse\n133572,automobile\n133573,ship\n133574,frog\n133575,airplane\n133576,ship\n133577,dog\n133578,dog\n133579,frog\n133580,airplane\n133581,airplane\n133582,dog\n133583,airplane\n133584,truck\n133585,airplane\n133586,horse\n133587,airplane\n133588,deer\n133589,deer\n133590,airplane\n133591,ship\n133592,ship\n133593,frog\n133594,horse\n133595,deer\n133596,ship\n133597,horse\n133598,cat\n133599,dog\n133600,automobile\n133601,frog\n133602,horse\n133603,frog\n133604,airplane\n133605,deer\n133606,dog\n133607,deer\n133608,bird\n133609,horse\n133610,automobile\n133611,truck\n133612,airplane\n133613,bird\n133614,bird\n133615,truck\n133616,dog\n133617,dog\n133618,ship\n133619,cat\n133620,frog\n133621,airplane\n133622,frog\n133623,horse\n133624,truck\n133625,horse\n133626,dog\n133627,bird\n133628,dog\n133629,deer\n133630,bird\n133631,airplane\n133632,frog\n133633,truck\n133634,deer\n133635,cat\n133636,cat\n133637,bird\n133638,frog\n133639,deer\n133640,frog\n133641,cat\n133642,frog\n133643,frog\n133644,bird\n133645,cat\n133646,cat\n133647,frog\n133648,automobile\n133649,frog\n133650,truck\n133651,cat\n133652,automobile\n133653,dog\n133654,bird\n133655,truck\n133656,bird\n133657,cat\n133658,deer\n133659,truck\n133660,cat\n133661,deer\n133662,cat\n133663,deer\n133664,cat\n133665,cat\n133666,automobile\n133667,frog\n133668,deer\n133669,dog\n133670,dog\n133671,dog\n133672,horse\n133673,ship\n133674,horse\n133675,deer\n133676,frog\n133677,deer\n133678,truck\n133679,frog\n133680,dog\n133681,bird\n133682,automobile\n133683,ship\n133684,automobile\n133685,ship\n133686,bird\n133687,cat\n133688,dog\n133689,truck\n133690,airplane\n133691,ship\n133692,frog\n133693,frog\n133694,bird\n133695,truck\n133696,deer\n133697,bird\n133698,frog\n133699,frog\n133700,cat\n133701,airplane\n133702,automobile\n133703,frog\n133704,ship\n133705,airplane\n133706,cat\n133707,dog\n133708,bird\n133709,cat\n133710,cat\n133711,deer\n133712,dog\n133713,cat\n133714,automobile\n133715,truck\n133716,dog\n133717,bird\n133718,dog\n133719,deer\n133720,cat\n133721,dog\n133722,cat\n133723,airplane\n133724,deer\n133725,cat\n133726,cat\n133727,bird\n133728,ship\n133729,airplane\n133730,ship\n133731,airplane\n133732,bird\n133733,ship\n133734,ship\n133735,deer\n133736,truck\n133737,cat\n133738,airplane\n133739,cat\n133740,deer\n133741,airplane\n133742,cat\n133743,deer\n133744,cat\n133745,frog\n133746,frog\n133747,dog\n133748,deer\n133749,ship\n133750,airplane\n133751,airplane\n133752,cat\n133753,deer\n133754,cat\n133755,cat\n133756,airplane\n133757,cat\n133758,frog\n133759,deer\n133760,dog\n133761,cat\n133762,cat\n133763,airplane\n133764,automobile\n133765,bird\n133766,deer\n133767,horse\n133768,ship\n133769,automobile\n133770,cat\n133771,cat\n133772,frog\n133773,ship\n133774,automobile\n133775,deer\n133776,bird\n133777,airplane\n133778,frog\n133779,deer\n133780,deer\n133781,dog\n133782,frog\n133783,frog\n133784,truck\n133785,deer\n133786,frog\n133787,cat\n133788,ship\n133789,deer\n133790,cat\n133791,bird\n133792,airplane\n133793,airplane\n133794,dog\n133795,airplane\n133796,dog\n133797,cat\n133798,horse\n133799,airplane\n133800,bird\n133801,frog\n133802,deer\n133803,horse\n133804,cat\n133805,deer\n133806,frog\n133807,truck\n133808,ship\n133809,cat\n133810,deer\n133811,horse\n133812,frog\n133813,cat\n133814,dog\n133815,ship\n133816,truck\n133817,deer\n133818,deer\n133819,cat\n133820,deer\n133821,airplane\n133822,ship\n133823,automobile\n133824,cat\n133825,cat\n133826,airplane\n133827,horse\n133828,dog\n133829,truck\n133830,airplane\n133831,ship\n133832,deer\n133833,cat\n133834,horse\n133835,deer\n133836,deer\n133837,ship\n133838,automobile\n133839,horse\n133840,bird\n133841,cat\n133842,frog\n133843,deer\n133844,dog\n133845,truck\n133846,ship\n133847,automobile\n133848,dog\n133849,bird\n133850,bird\n133851,dog\n133852,cat\n133853,frog\n133854,cat\n133855,horse\n133856,airplane\n133857,ship\n133858,bird\n133859,ship\n133860,truck\n133861,ship\n133862,deer\n133863,airplane\n133864,deer\n133865,frog\n133866,ship\n133867,frog\n133868,cat\n133869,dog\n133870,horse\n133871,frog\n133872,truck\n133873,automobile\n133874,dog\n133875,truck\n133876,automobile\n133877,frog\n133878,automobile\n133879,horse\n133880,horse\n133881,automobile\n133882,frog\n133883,cat\n133884,cat\n133885,truck\n133886,airplane\n133887,bird\n133888,frog\n133889,automobile\n133890,bird\n133891,deer\n133892,frog\n133893,bird\n133894,dog\n133895,dog\n133896,truck\n133897,horse\n133898,bird\n133899,automobile\n133900,airplane\n133901,automobile\n133902,frog\n133903,cat\n133904,truck\n133905,horse\n133906,automobile\n133907,airplane\n133908,deer\n133909,automobile\n133910,cat\n133911,ship\n133912,horse\n133913,dog\n133914,frog\n133915,deer\n133916,horse\n133917,dog\n133918,ship\n133919,truck\n133920,ship\n133921,automobile\n133922,frog\n133923,cat\n133924,dog\n133925,automobile\n133926,dog\n133927,cat\n133928,deer\n133929,deer\n133930,truck\n133931,frog\n133932,cat\n133933,deer\n133934,deer\n133935,deer\n133936,deer\n133937,ship\n133938,cat\n133939,cat\n133940,cat\n133941,bird\n133942,horse\n133943,truck\n133944,cat\n133945,horse\n133946,cat\n133947,frog\n133948,automobile\n133949,frog\n133950,airplane\n133951,bird\n133952,airplane\n133953,truck\n133954,cat\n133955,airplane\n133956,frog\n133957,horse\n133958,frog\n133959,horse\n133960,horse\n133961,bird\n133962,bird\n133963,deer\n133964,cat\n133965,deer\n133966,horse\n133967,automobile\n133968,dog\n133969,frog\n133970,horse\n133971,ship\n133972,truck\n133973,truck\n133974,truck\n133975,truck\n133976,bird\n133977,airplane\n133978,deer\n133979,frog\n133980,bird\n133981,cat\n133982,cat\n133983,bird\n133984,bird\n133985,ship\n133986,horse\n133987,dog\n133988,truck\n133989,airplane\n133990,cat\n133991,frog\n133992,truck\n133993,ship\n133994,bird\n133995,ship\n133996,dog\n133997,deer\n133998,cat\n133999,horse\n134000,dog\n134001,truck\n134002,deer\n134003,airplane\n134004,truck\n134005,airplane\n134006,cat\n134007,dog\n134008,automobile\n134009,ship\n134010,bird\n134011,dog\n134012,horse\n134013,truck\n134014,truck\n134015,deer\n134016,automobile\n134017,horse\n134018,frog\n134019,deer\n134020,automobile\n134021,ship\n134022,cat\n134023,ship\n134024,automobile\n134025,deer\n134026,airplane\n134027,ship\n134028,cat\n134029,airplane\n134030,deer\n134031,frog\n134032,dog\n134033,cat\n134034,deer\n134035,cat\n134036,dog\n134037,cat\n134038,airplane\n134039,airplane\n134040,bird\n134041,truck\n134042,horse\n134043,horse\n134044,ship\n134045,horse\n134046,airplane\n134047,cat\n134048,ship\n134049,frog\n134050,airplane\n134051,horse\n134052,airplane\n134053,dog\n134054,airplane\n134055,cat\n134056,deer\n134057,dog\n134058,cat\n134059,bird\n134060,automobile\n134061,horse\n134062,horse\n134063,airplane\n134064,dog\n134065,deer\n134066,airplane\n134067,cat\n134068,deer\n134069,dog\n134070,automobile\n134071,airplane\n134072,deer\n134073,airplane\n134074,airplane\n134075,horse\n134076,airplane\n134077,deer\n134078,deer\n134079,truck\n134080,horse\n134081,bird\n134082,dog\n134083,truck\n134084,cat\n134085,deer\n134086,deer\n134087,dog\n134088,dog\n134089,cat\n134090,airplane\n134091,deer\n134092,bird\n134093,dog\n134094,deer\n134095,deer\n134096,ship\n134097,ship\n134098,truck\n134099,dog\n134100,horse\n134101,cat\n134102,frog\n134103,ship\n134104,frog\n134105,deer\n134106,bird\n134107,horse\n134108,deer\n134109,frog\n134110,truck\n134111,frog\n134112,truck\n134113,frog\n134114,horse\n134115,frog\n134116,cat\n134117,bird\n134118,truck\n134119,horse\n134120,cat\n134121,cat\n134122,ship\n134123,dog\n134124,truck\n134125,dog\n134126,airplane\n134127,cat\n134128,deer\n134129,bird\n134130,bird\n134131,dog\n134132,cat\n134133,ship\n134134,deer\n134135,horse\n134136,frog\n134137,cat\n134138,cat\n134139,horse\n134140,bird\n134141,horse\n134142,dog\n134143,cat\n134144,airplane\n134145,ship\n134146,cat\n134147,frog\n134148,cat\n134149,airplane\n134150,dog\n134151,horse\n134152,ship\n134153,airplane\n134154,truck\n134155,automobile\n134156,horse\n134157,truck\n134158,dog\n134159,deer\n134160,truck\n134161,frog\n134162,truck\n134163,airplane\n134164,cat\n134165,horse\n134166,airplane\n134167,frog\n134168,bird\n134169,airplane\n134170,truck\n134171,airplane\n134172,dog\n134173,airplane\n134174,horse\n134175,horse\n134176,deer\n134177,dog\n134178,truck\n134179,ship\n134180,deer\n134181,dog\n134182,airplane\n134183,dog\n134184,truck\n134185,truck\n134186,horse\n134187,cat\n134188,automobile\n134189,frog\n134190,frog\n134191,dog\n134192,deer\n134193,cat\n134194,horse\n134195,horse\n134196,deer\n134197,dog\n134198,bird\n134199,cat\n134200,deer\n134201,dog\n134202,frog\n134203,cat\n134204,frog\n134205,horse\n134206,airplane\n134207,cat\n134208,deer\n134209,cat\n134210,horse\n134211,ship\n134212,horse\n134213,automobile\n134214,cat\n134215,dog\n134216,airplane\n134217,truck\n134218,dog\n134219,automobile\n134220,horse\n134221,ship\n134222,truck\n134223,airplane\n134224,deer\n134225,cat\n134226,airplane\n134227,frog\n134228,automobile\n134229,cat\n134230,ship\n134231,truck\n134232,frog\n134233,frog\n134234,airplane\n134235,cat\n134236,frog\n134237,automobile\n134238,ship\n134239,dog\n134240,cat\n134241,bird\n134242,truck\n134243,deer\n134244,airplane\n134245,horse\n134246,deer\n134247,airplane\n134248,truck\n134249,dog\n134250,dog\n134251,truck\n134252,cat\n134253,horse\n134254,deer\n134255,deer\n134256,bird\n134257,horse\n134258,airplane\n134259,automobile\n134260,deer\n134261,dog\n134262,automobile\n134263,airplane\n134264,dog\n134265,dog\n134266,deer\n134267,deer\n134268,ship\n134269,airplane\n134270,automobile\n134271,frog\n134272,truck\n134273,cat\n134274,frog\n134275,bird\n134276,horse\n134277,deer\n134278,automobile\n134279,airplane\n134280,automobile\n134281,cat\n134282,deer\n134283,dog\n134284,ship\n134285,deer\n134286,frog\n134287,frog\n134288,deer\n134289,ship\n134290,dog\n134291,automobile\n134292,frog\n134293,horse\n134294,deer\n134295,truck\n134296,cat\n134297,horse\n134298,automobile\n134299,automobile\n134300,horse\n134301,airplane\n134302,truck\n134303,horse\n134304,bird\n134305,cat\n134306,dog\n134307,airplane\n134308,frog\n134309,ship\n134310,bird\n134311,dog\n134312,airplane\n134313,dog\n134314,ship\n134315,cat\n134316,bird\n134317,airplane\n134318,automobile\n134319,dog\n134320,deer\n134321,frog\n134322,truck\n134323,airplane\n134324,automobile\n134325,dog\n134326,dog\n134327,automobile\n134328,airplane\n134329,deer\n134330,truck\n134331,ship\n134332,cat\n134333,bird\n134334,frog\n134335,bird\n134336,airplane\n134337,deer\n134338,bird\n134339,airplane\n134340,cat\n134341,airplane\n134342,airplane\n134343,airplane\n134344,deer\n134345,ship\n134346,deer\n134347,deer\n134348,dog\n134349,frog\n134350,deer\n134351,automobile\n134352,frog\n134353,deer\n134354,dog\n134355,deer\n134356,dog\n134357,horse\n134358,horse\n134359,truck\n134360,cat\n134361,horse\n134362,automobile\n134363,dog\n134364,bird\n134365,dog\n134366,truck\n134367,airplane\n134368,airplane\n134369,dog\n134370,deer\n134371,dog\n134372,deer\n134373,frog\n134374,automobile\n134375,ship\n134376,truck\n134377,truck\n134378,horse\n134379,cat\n134380,horse\n134381,truck\n134382,automobile\n134383,truck\n134384,airplane\n134385,automobile\n134386,bird\n134387,automobile\n134388,deer\n134389,bird\n134390,airplane\n134391,bird\n134392,truck\n134393,frog\n134394,deer\n134395,truck\n134396,deer\n134397,frog\n134398,ship\n134399,automobile\n134400,deer\n134401,airplane\n134402,bird\n134403,frog\n134404,deer\n134405,ship\n134406,bird\n134407,cat\n134408,truck\n134409,horse\n134410,ship\n134411,ship\n134412,horse\n134413,truck\n134414,airplane\n134415,dog\n134416,bird\n134417,ship\n134418,frog\n134419,cat\n134420,ship\n134421,truck\n134422,airplane\n134423,deer\n134424,dog\n134425,horse\n134426,cat\n134427,deer\n134428,frog\n134429,airplane\n134430,deer\n134431,frog\n134432,frog\n134433,bird\n134434,horse\n134435,airplane\n134436,automobile\n134437,cat\n134438,deer\n134439,truck\n134440,horse\n134441,truck\n134442,bird\n134443,bird\n134444,cat\n134445,bird\n134446,horse\n134447,airplane\n134448,frog\n134449,frog\n134450,horse\n134451,cat\n134452,truck\n134453,deer\n134454,deer\n134455,truck\n134456,automobile\n134457,airplane\n134458,frog\n134459,horse\n134460,dog\n134461,airplane\n134462,ship\n134463,frog\n134464,cat\n134465,truck\n134466,airplane\n134467,bird\n134468,frog\n134469,bird\n134470,truck\n134471,deer\n134472,deer\n134473,horse\n134474,dog\n134475,truck\n134476,horse\n134477,cat\n134478,dog\n134479,deer\n134480,frog\n134481,frog\n134482,horse\n134483,frog\n134484,automobile\n134485,ship\n134486,horse\n134487,deer\n134488,frog\n134489,truck\n134490,airplane\n134491,cat\n134492,deer\n134493,cat\n134494,airplane\n134495,bird\n134496,cat\n134497,deer\n134498,deer\n134499,dog\n134500,automobile\n134501,cat\n134502,dog\n134503,deer\n134504,ship\n134505,deer\n134506,horse\n134507,ship\n134508,dog\n134509,deer\n134510,cat\n134511,automobile\n134512,cat\n134513,horse\n134514,truck\n134515,dog\n134516,horse\n134517,frog\n134518,airplane\n134519,automobile\n134520,cat\n134521,deer\n134522,deer\n134523,cat\n134524,cat\n134525,airplane\n134526,airplane\n134527,cat\n134528,airplane\n134529,deer\n134530,ship\n134531,ship\n134532,dog\n134533,frog\n134534,frog\n134535,horse\n134536,deer\n134537,frog\n134538,horse\n134539,truck\n134540,dog\n134541,truck\n134542,automobile\n134543,dog\n134544,automobile\n134545,bird\n134546,ship\n134547,cat\n134548,truck\n134549,dog\n134550,truck\n134551,ship\n134552,airplane\n134553,truck\n134554,horse\n134555,deer\n134556,horse\n134557,dog\n134558,frog\n134559,ship\n134560,frog\n134561,dog\n134562,cat\n134563,airplane\n134564,bird\n134565,ship\n134566,bird\n134567,ship\n134568,deer\n134569,cat\n134570,horse\n134571,airplane\n134572,frog\n134573,deer\n134574,ship\n134575,frog\n134576,airplane\n134577,truck\n134578,horse\n134579,ship\n134580,horse\n134581,horse\n134582,truck\n134583,airplane\n134584,deer\n134585,dog\n134586,truck\n134587,automobile\n134588,truck\n134589,cat\n134590,dog\n134591,automobile\n134592,cat\n134593,deer\n134594,frog\n134595,ship\n134596,frog\n134597,airplane\n134598,cat\n134599,ship\n134600,bird\n134601,horse\n134602,frog\n134603,horse\n134604,airplane\n134605,frog\n134606,horse\n134607,bird\n134608,airplane\n134609,bird\n134610,bird\n134611,frog\n134612,bird\n134613,bird\n134614,ship\n134615,horse\n134616,bird\n134617,cat\n134618,deer\n134619,cat\n134620,automobile\n134621,truck\n134622,cat\n134623,frog\n134624,ship\n134625,automobile\n134626,automobile\n134627,deer\n134628,deer\n134629,truck\n134630,frog\n134631,cat\n134632,deer\n134633,bird\n134634,automobile\n134635,frog\n134636,frog\n134637,truck\n134638,frog\n134639,bird\n134640,horse\n134641,deer\n134642,frog\n134643,deer\n134644,ship\n134645,deer\n134646,horse\n134647,frog\n134648,airplane\n134649,ship\n134650,automobile\n134651,truck\n134652,frog\n134653,ship\n134654,truck\n134655,deer\n134656,cat\n134657,bird\n134658,horse\n134659,cat\n134660,dog\n134661,deer\n134662,cat\n134663,bird\n134664,ship\n134665,airplane\n134666,cat\n134667,truck\n134668,cat\n134669,deer\n134670,horse\n134671,frog\n134672,ship\n134673,dog\n134674,bird\n134675,deer\n134676,bird\n134677,bird\n134678,automobile\n134679,frog\n134680,airplane\n134681,bird\n134682,horse\n134683,cat\n134684,automobile\n134685,airplane\n134686,ship\n134687,cat\n134688,deer\n134689,frog\n134690,deer\n134691,dog\n134692,cat\n134693,airplane\n134694,dog\n134695,dog\n134696,deer\n134697,dog\n134698,truck\n134699,truck\n134700,deer\n134701,dog\n134702,truck\n134703,automobile\n134704,horse\n134705,frog\n134706,cat\n134707,frog\n134708,cat\n134709,bird\n134710,horse\n134711,dog\n134712,deer\n134713,cat\n134714,airplane\n134715,deer\n134716,dog\n134717,dog\n134718,bird\n134719,truck\n134720,automobile\n134721,dog\n134722,frog\n134723,horse\n134724,deer\n134725,frog\n134726,frog\n134727,bird\n134728,dog\n134729,dog\n134730,automobile\n134731,ship\n134732,bird\n134733,dog\n134734,airplane\n134735,bird\n134736,truck\n134737,dog\n134738,truck\n134739,airplane\n134740,horse\n134741,truck\n134742,frog\n134743,cat\n134744,ship\n134745,deer\n134746,ship\n134747,dog\n134748,dog\n134749,bird\n134750,dog\n134751,deer\n134752,dog\n134753,frog\n134754,deer\n134755,truck\n134756,dog\n134757,ship\n134758,horse\n134759,cat\n134760,frog\n134761,cat\n134762,frog\n134763,horse\n134764,frog\n134765,bird\n134766,deer\n134767,bird\n134768,deer\n134769,dog\n134770,cat\n134771,cat\n134772,airplane\n134773,bird\n134774,ship\n134775,deer\n134776,cat\n134777,automobile\n134778,dog\n134779,frog\n134780,airplane\n134781,horse\n134782,ship\n134783,cat\n134784,truck\n134785,deer\n134786,horse\n134787,dog\n134788,airplane\n134789,cat\n134790,frog\n134791,cat\n134792,automobile\n134793,truck\n134794,cat\n134795,dog\n134796,truck\n134797,horse\n134798,airplane\n134799,deer\n134800,truck\n134801,airplane\n134802,automobile\n134803,horse\n134804,ship\n134805,horse\n134806,cat\n134807,deer\n134808,deer\n134809,truck\n134810,airplane\n134811,dog\n134812,ship\n134813,deer\n134814,frog\n134815,cat\n134816,automobile\n134817,deer\n134818,dog\n134819,dog\n134820,airplane\n134821,deer\n134822,deer\n134823,dog\n134824,truck\n134825,horse\n134826,frog\n134827,deer\n134828,dog\n134829,frog\n134830,automobile\n134831,deer\n134832,dog\n134833,cat\n134834,truck\n134835,frog\n134836,truck\n134837,frog\n134838,deer\n134839,airplane\n134840,bird\n134841,dog\n134842,truck\n134843,ship\n134844,dog\n134845,cat\n134846,frog\n134847,automobile\n134848,ship\n134849,cat\n134850,horse\n134851,automobile\n134852,cat\n134853,deer\n134854,horse\n134855,frog\n134856,bird\n134857,horse\n134858,automobile\n134859,airplane\n134860,automobile\n134861,ship\n134862,deer\n134863,cat\n134864,ship\n134865,bird\n134866,airplane\n134867,bird\n134868,airplane\n134869,airplane\n134870,ship\n134871,ship\n134872,bird\n134873,deer\n134874,deer\n134875,cat\n134876,deer\n134877,dog\n134878,deer\n134879,cat\n134880,bird\n134881,ship\n134882,dog\n134883,deer\n134884,bird\n134885,frog\n134886,cat\n134887,frog\n134888,cat\n134889,horse\n134890,bird\n134891,cat\n134892,airplane\n134893,horse\n134894,airplane\n134895,bird\n134896,frog\n134897,dog\n134898,deer\n134899,deer\n134900,horse\n134901,cat\n134902,deer\n134903,frog\n134904,airplane\n134905,cat\n134906,deer\n134907,airplane\n134908,airplane\n134909,deer\n134910,ship\n134911,airplane\n134912,frog\n134913,bird\n134914,dog\n134915,frog\n134916,automobile\n134917,airplane\n134918,ship\n134919,cat\n134920,deer\n134921,ship\n134922,truck\n134923,cat\n134924,cat\n134925,cat\n134926,truck\n134927,dog\n134928,dog\n134929,automobile\n134930,dog\n134931,horse\n134932,dog\n134933,bird\n134934,truck\n134935,deer\n134936,bird\n134937,frog\n134938,automobile\n134939,deer\n134940,frog\n134941,deer\n134942,ship\n134943,frog\n134944,deer\n134945,automobile\n134946,dog\n134947,truck\n134948,automobile\n134949,automobile\n134950,truck\n134951,ship\n134952,cat\n134953,deer\n134954,deer\n134955,truck\n134956,truck\n134957,bird\n134958,cat\n134959,automobile\n134960,deer\n134961,automobile\n134962,automobile\n134963,deer\n134964,truck\n134965,truck\n134966,deer\n134967,deer\n134968,deer\n134969,deer\n134970,truck\n134971,frog\n134972,ship\n134973,ship\n134974,horse\n134975,automobile\n134976,truck\n134977,dog\n134978,frog\n134979,truck\n134980,truck\n134981,dog\n134982,dog\n134983,horse\n134984,ship\n134985,truck\n134986,frog\n134987,deer\n134988,deer\n134989,deer\n134990,cat\n134991,airplane\n134992,deer\n134993,cat\n134994,airplane\n134995,deer\n134996,cat\n134997,airplane\n134998,deer\n134999,ship\n135000,horse\n135001,deer\n135002,dog\n135003,bird\n135004,ship\n135005,airplane\n135006,truck\n135007,frog\n135008,dog\n135009,cat\n135010,truck\n135011,horse\n135012,deer\n135013,deer\n135014,ship\n135015,cat\n135016,cat\n135017,bird\n135018,bird\n135019,deer\n135020,truck\n135021,dog\n135022,dog\n135023,truck\n135024,deer\n135025,bird\n135026,ship\n135027,deer\n135028,cat\n135029,truck\n135030,truck\n135031,cat\n135032,deer\n135033,truck\n135034,frog\n135035,truck\n135036,truck\n135037,truck\n135038,truck\n135039,bird\n135040,frog\n135041,dog\n135042,frog\n135043,deer\n135044,frog\n135045,ship\n135046,ship\n135047,cat\n135048,truck\n135049,frog\n135050,automobile\n135051,automobile\n135052,ship\n135053,airplane\n135054,cat\n135055,cat\n135056,bird\n135057,airplane\n135058,cat\n135059,frog\n135060,truck\n135061,automobile\n135062,deer\n135063,automobile\n135064,deer\n135065,frog\n135066,truck\n135067,horse\n135068,dog\n135069,horse\n135070,dog\n135071,frog\n135072,dog\n135073,horse\n135074,ship\n135075,bird\n135076,dog\n135077,bird\n135078,cat\n135079,deer\n135080,ship\n135081,deer\n135082,airplane\n135083,frog\n135084,automobile\n135085,bird\n135086,dog\n135087,cat\n135088,dog\n135089,truck\n135090,frog\n135091,dog\n135092,deer\n135093,horse\n135094,cat\n135095,frog\n135096,horse\n135097,cat\n135098,airplane\n135099,automobile\n135100,automobile\n135101,cat\n135102,cat\n135103,dog\n135104,frog\n135105,truck\n135106,horse\n135107,truck\n135108,dog\n135109,truck\n135110,ship\n135111,deer\n135112,airplane\n135113,bird\n135114,truck\n135115,deer\n135116,dog\n135117,bird\n135118,ship\n135119,cat\n135120,frog\n135121,cat\n135122,frog\n135123,cat\n135124,dog\n135125,frog\n135126,airplane\n135127,frog\n135128,truck\n135129,ship\n135130,cat\n135131,automobile\n135132,automobile\n135133,bird\n135134,truck\n135135,dog\n135136,dog\n135137,cat\n135138,ship\n135139,dog\n135140,automobile\n135141,bird\n135142,cat\n135143,truck\n135144,cat\n135145,bird\n135146,deer\n135147,deer\n135148,deer\n135149,frog\n135150,ship\n135151,dog\n135152,cat\n135153,automobile\n135154,dog\n135155,deer\n135156,dog\n135157,horse\n135158,horse\n135159,dog\n135160,bird\n135161,cat\n135162,cat\n135163,deer\n135164,dog\n135165,truck\n135166,frog\n135167,horse\n135168,bird\n135169,deer\n135170,dog\n135171,cat\n135172,frog\n135173,deer\n135174,dog\n135175,cat\n135176,dog\n135177,horse\n135178,truck\n135179,bird\n135180,dog\n135181,truck\n135182,ship\n135183,airplane\n135184,airplane\n135185,airplane\n135186,automobile\n135187,airplane\n135188,horse\n135189,dog\n135190,automobile\n135191,deer\n135192,frog\n135193,ship\n135194,truck\n135195,frog\n135196,dog\n135197,cat\n135198,bird\n135199,horse\n135200,deer\n135201,truck\n135202,truck\n135203,airplane\n135204,cat\n135205,deer\n135206,cat\n135207,frog\n135208,ship\n135209,cat\n135210,dog\n135211,horse\n135212,ship\n135213,frog\n135214,airplane\n135215,frog\n135216,frog\n135217,truck\n135218,cat\n135219,bird\n135220,truck\n135221,automobile\n135222,bird\n135223,frog\n135224,frog\n135225,bird\n135226,ship\n135227,truck\n135228,airplane\n135229,automobile\n135230,airplane\n135231,cat\n135232,automobile\n135233,truck\n135234,horse\n135235,automobile\n135236,deer\n135237,deer\n135238,frog\n135239,truck\n135240,frog\n135241,airplane\n135242,airplane\n135243,frog\n135244,ship\n135245,horse\n135246,truck\n135247,horse\n135248,cat\n135249,frog\n135250,deer\n135251,bird\n135252,cat\n135253,frog\n135254,deer\n135255,bird\n135256,horse\n135257,cat\n135258,horse\n135259,deer\n135260,dog\n135261,frog\n135262,horse\n135263,deer\n135264,cat\n135265,truck\n135266,frog\n135267,airplane\n135268,truck\n135269,bird\n135270,frog\n135271,ship\n135272,deer\n135273,truck\n135274,bird\n135275,cat\n135276,automobile\n135277,frog\n135278,deer\n135279,truck\n135280,automobile\n135281,cat\n135282,cat\n135283,airplane\n135284,deer\n135285,deer\n135286,truck\n135287,cat\n135288,cat\n135289,deer\n135290,dog\n135291,automobile\n135292,bird\n135293,frog\n135294,frog\n135295,deer\n135296,horse\n135297,cat\n135298,cat\n135299,bird\n135300,cat\n135301,ship\n135302,deer\n135303,ship\n135304,truck\n135305,horse\n135306,truck\n135307,deer\n135308,automobile\n135309,truck\n135310,cat\n135311,deer\n135312,airplane\n135313,bird\n135314,cat\n135315,frog\n135316,dog\n135317,ship\n135318,ship\n135319,dog\n135320,frog\n135321,ship\n135322,automobile\n135323,frog\n135324,cat\n135325,truck\n135326,deer\n135327,dog\n135328,airplane\n135329,cat\n135330,cat\n135331,deer\n135332,frog\n135333,frog\n135334,frog\n135335,ship\n135336,airplane\n135337,cat\n135338,truck\n135339,bird\n135340,ship\n135341,truck\n135342,automobile\n135343,airplane\n135344,deer\n135345,frog\n135346,dog\n135347,bird\n135348,ship\n135349,horse\n135350,airplane\n135351,automobile\n135352,dog\n135353,cat\n135354,deer\n135355,frog\n135356,dog\n135357,automobile\n135358,truck\n135359,automobile\n135360,dog\n135361,deer\n135362,truck\n135363,deer\n135364,bird\n135365,ship\n135366,deer\n135367,automobile\n135368,bird\n135369,horse\n135370,dog\n135371,cat\n135372,bird\n135373,airplane\n135374,dog\n135375,cat\n135376,ship\n135377,deer\n135378,cat\n135379,frog\n135380,truck\n135381,frog\n135382,deer\n135383,truck\n135384,bird\n135385,dog\n135386,automobile\n135387,deer\n135388,horse\n135389,cat\n135390,frog\n135391,truck\n135392,frog\n135393,horse\n135394,cat\n135395,frog\n135396,automobile\n135397,truck\n135398,bird\n135399,automobile\n135400,deer\n135401,horse\n135402,deer\n135403,frog\n135404,dog\n135405,airplane\n135406,airplane\n135407,truck\n135408,deer\n135409,horse\n135410,cat\n135411,horse\n135412,truck\n135413,cat\n135414,airplane\n135415,bird\n135416,cat\n135417,airplane\n135418,airplane\n135419,bird\n135420,airplane\n135421,frog\n135422,frog\n135423,bird\n135424,frog\n135425,airplane\n135426,airplane\n135427,dog\n135428,cat\n135429,truck\n135430,frog\n135431,truck\n135432,horse\n135433,bird\n135434,bird\n135435,frog\n135436,ship\n135437,frog\n135438,truck\n135439,automobile\n135440,airplane\n135441,dog\n135442,frog\n135443,ship\n135444,airplane\n135445,cat\n135446,truck\n135447,cat\n135448,truck\n135449,airplane\n135450,truck\n135451,ship\n135452,bird\n135453,dog\n135454,airplane\n135455,automobile\n135456,truck\n135457,truck\n135458,cat\n135459,frog\n135460,cat\n135461,dog\n135462,truck\n135463,frog\n135464,frog\n135465,automobile\n135466,deer\n135467,dog\n135468,cat\n135469,horse\n135470,bird\n135471,horse\n135472,deer\n135473,frog\n135474,frog\n135475,bird\n135476,cat\n135477,cat\n135478,frog\n135479,bird\n135480,dog\n135481,airplane\n135482,dog\n135483,automobile\n135484,truck\n135485,deer\n135486,truck\n135487,frog\n135488,horse\n135489,cat\n135490,cat\n135491,deer\n135492,airplane\n135493,frog\n135494,automobile\n135495,bird\n135496,airplane\n135497,horse\n135498,dog\n135499,airplane\n135500,cat\n135501,truck\n135502,horse\n135503,cat\n135504,frog\n135505,airplane\n135506,truck\n135507,frog\n135508,frog\n135509,frog\n135510,automobile\n135511,automobile\n135512,bird\n135513,bird\n135514,deer\n135515,deer\n135516,cat\n135517,automobile\n135518,automobile\n135519,deer\n135520,dog\n135521,cat\n135522,truck\n135523,cat\n135524,deer\n135525,cat\n135526,airplane\n135527,airplane\n135528,automobile\n135529,cat\n135530,cat\n135531,deer\n135532,bird\n135533,ship\n135534,automobile\n135535,deer\n135536,frog\n135537,frog\n135538,automobile\n135539,truck\n135540,ship\n135541,bird\n135542,ship\n135543,deer\n135544,cat\n135545,deer\n135546,horse\n135547,cat\n135548,horse\n135549,cat\n135550,truck\n135551,horse\n135552,airplane\n135553,airplane\n135554,deer\n135555,bird\n135556,cat\n135557,dog\n135558,cat\n135559,automobile\n135560,frog\n135561,truck\n135562,automobile\n135563,truck\n135564,bird\n135565,horse\n135566,bird\n135567,deer\n135568,deer\n135569,frog\n135570,truck\n135571,automobile\n135572,cat\n135573,airplane\n135574,automobile\n135575,truck\n135576,frog\n135577,frog\n135578,truck\n135579,cat\n135580,cat\n135581,dog\n135582,cat\n135583,automobile\n135584,horse\n135585,horse\n135586,dog\n135587,ship\n135588,airplane\n135589,deer\n135590,frog\n135591,dog\n135592,dog\n135593,truck\n135594,horse\n135595,cat\n135596,truck\n135597,frog\n135598,truck\n135599,frog\n135600,frog\n135601,dog\n135602,frog\n135603,deer\n135604,deer\n135605,automobile\n135606,horse\n135607,dog\n135608,cat\n135609,airplane\n135610,cat\n135611,cat\n135612,dog\n135613,dog\n135614,deer\n135615,airplane\n135616,ship\n135617,cat\n135618,cat\n135619,airplane\n135620,ship\n135621,dog\n135622,dog\n135623,dog\n135624,automobile\n135625,airplane\n135626,ship\n135627,deer\n135628,cat\n135629,dog\n135630,cat\n135631,ship\n135632,automobile\n135633,truck\n135634,deer\n135635,bird\n135636,automobile\n135637,automobile\n135638,truck\n135639,bird\n135640,airplane\n135641,automobile\n135642,airplane\n135643,cat\n135644,dog\n135645,cat\n135646,frog\n135647,cat\n135648,airplane\n135649,frog\n135650,dog\n135651,cat\n135652,truck\n135653,truck\n135654,deer\n135655,dog\n135656,cat\n135657,truck\n135658,deer\n135659,cat\n135660,ship\n135661,cat\n135662,deer\n135663,truck\n135664,cat\n135665,airplane\n135666,cat\n135667,deer\n135668,cat\n135669,cat\n135670,cat\n135671,frog\n135672,cat\n135673,truck\n135674,dog\n135675,cat\n135676,horse\n135677,cat\n135678,deer\n135679,ship\n135680,frog\n135681,deer\n135682,airplane\n135683,truck\n135684,airplane\n135685,deer\n135686,cat\n135687,automobile\n135688,cat\n135689,truck\n135690,deer\n135691,horse\n135692,ship\n135693,automobile\n135694,truck\n135695,dog\n135696,dog\n135697,dog\n135698,dog\n135699,cat\n135700,horse\n135701,bird\n135702,deer\n135703,ship\n135704,dog\n135705,truck\n135706,cat\n135707,truck\n135708,frog\n135709,truck\n135710,automobile\n135711,horse\n135712,truck\n135713,deer\n135714,truck\n135715,automobile\n135716,truck\n135717,automobile\n135718,deer\n135719,airplane\n135720,bird\n135721,automobile\n135722,truck\n135723,ship\n135724,deer\n135725,frog\n135726,deer\n135727,cat\n135728,airplane\n135729,cat\n135730,airplane\n135731,deer\n135732,truck\n135733,bird\n135734,bird\n135735,ship\n135736,cat\n135737,horse\n135738,truck\n135739,horse\n135740,truck\n135741,dog\n135742,deer\n135743,frog\n135744,dog\n135745,airplane\n135746,horse\n135747,ship\n135748,automobile\n135749,automobile\n135750,frog\n135751,cat\n135752,deer\n135753,cat\n135754,frog\n135755,frog\n135756,horse\n135757,horse\n135758,deer\n135759,automobile\n135760,automobile\n135761,dog\n135762,automobile\n135763,cat\n135764,truck\n135765,deer\n135766,truck\n135767,bird\n135768,airplane\n135769,cat\n135770,dog\n135771,dog\n135772,deer\n135773,cat\n135774,dog\n135775,truck\n135776,bird\n135777,frog\n135778,cat\n135779,deer\n135780,frog\n135781,cat\n135782,truck\n135783,cat\n135784,dog\n135785,airplane\n135786,frog\n135787,deer\n135788,dog\n135789,dog\n135790,horse\n135791,cat\n135792,bird\n135793,horse\n135794,frog\n135795,bird\n135796,airplane\n135797,deer\n135798,airplane\n135799,bird\n135800,horse\n135801,ship\n135802,deer\n135803,cat\n135804,automobile\n135805,dog\n135806,frog\n135807,ship\n135808,deer\n135809,dog\n135810,dog\n135811,automobile\n135812,deer\n135813,horse\n135814,bird\n135815,truck\n135816,truck\n135817,automobile\n135818,airplane\n135819,ship\n135820,airplane\n135821,ship\n135822,dog\n135823,dog\n135824,bird\n135825,airplane\n135826,horse\n135827,frog\n135828,bird\n135829,bird\n135830,deer\n135831,cat\n135832,frog\n135833,ship\n135834,frog\n135835,deer\n135836,frog\n135837,cat\n135838,automobile\n135839,automobile\n135840,horse\n135841,ship\n135842,airplane\n135843,deer\n135844,ship\n135845,truck\n135846,automobile\n135847,cat\n135848,cat\n135849,cat\n135850,ship\n135851,deer\n135852,bird\n135853,deer\n135854,deer\n135855,automobile\n135856,deer\n135857,cat\n135858,airplane\n135859,horse\n135860,cat\n135861,automobile\n135862,truck\n135863,dog\n135864,truck\n135865,truck\n135866,frog\n135867,dog\n135868,ship\n135869,truck\n135870,bird\n135871,deer\n135872,cat\n135873,airplane\n135874,frog\n135875,cat\n135876,cat\n135877,deer\n135878,frog\n135879,frog\n135880,horse\n135881,automobile\n135882,cat\n135883,airplane\n135884,deer\n135885,ship\n135886,bird\n135887,deer\n135888,cat\n135889,automobile\n135890,deer\n135891,bird\n135892,deer\n135893,frog\n135894,cat\n135895,cat\n135896,truck\n135897,frog\n135898,dog\n135899,ship\n135900,cat\n135901,cat\n135902,horse\n135903,truck\n135904,deer\n135905,dog\n135906,dog\n135907,frog\n135908,deer\n135909,ship\n135910,frog\n135911,deer\n135912,dog\n135913,frog\n135914,ship\n135915,airplane\n135916,deer\n135917,dog\n135918,deer\n135919,frog\n135920,deer\n135921,automobile\n135922,deer\n135923,cat\n135924,deer\n135925,ship\n135926,deer\n135927,deer\n135928,cat\n135929,frog\n135930,airplane\n135931,frog\n135932,ship\n135933,airplane\n135934,bird\n135935,cat\n135936,horse\n135937,horse\n135938,cat\n135939,bird\n135940,deer\n135941,airplane\n135942,cat\n135943,cat\n135944,deer\n135945,frog\n135946,truck\n135947,frog\n135948,frog\n135949,airplane\n135950,dog\n135951,cat\n135952,deer\n135953,deer\n135954,airplane\n135955,frog\n135956,horse\n135957,cat\n135958,frog\n135959,airplane\n135960,cat\n135961,cat\n135962,deer\n135963,frog\n135964,automobile\n135965,deer\n135966,dog\n135967,dog\n135968,ship\n135969,dog\n135970,dog\n135971,automobile\n135972,horse\n135973,truck\n135974,frog\n135975,airplane\n135976,automobile\n135977,deer\n135978,cat\n135979,automobile\n135980,airplane\n135981,horse\n135982,horse\n135983,dog\n135984,deer\n135985,deer\n135986,cat\n135987,truck\n135988,dog\n135989,cat\n135990,truck\n135991,truck\n135992,airplane\n135993,ship\n135994,horse\n135995,deer\n135996,frog\n135997,deer\n135998,frog\n135999,horse\n136000,ship\n136001,horse\n136002,bird\n136003,automobile\n136004,cat\n136005,cat\n136006,truck\n136007,truck\n136008,cat\n136009,bird\n136010,frog\n136011,bird\n136012,dog\n136013,airplane\n136014,horse\n136015,airplane\n136016,horse\n136017,bird\n136018,cat\n136019,truck\n136020,airplane\n136021,ship\n136022,airplane\n136023,deer\n136024,frog\n136025,truck\n136026,truck\n136027,frog\n136028,bird\n136029,truck\n136030,horse\n136031,dog\n136032,horse\n136033,deer\n136034,frog\n136035,cat\n136036,airplane\n136037,truck\n136038,bird\n136039,deer\n136040,horse\n136041,bird\n136042,truck\n136043,ship\n136044,horse\n136045,automobile\n136046,bird\n136047,dog\n136048,truck\n136049,cat\n136050,horse\n136051,bird\n136052,horse\n136053,dog\n136054,deer\n136055,horse\n136056,bird\n136057,cat\n136058,truck\n136059,frog\n136060,cat\n136061,ship\n136062,bird\n136063,ship\n136064,dog\n136065,frog\n136066,dog\n136067,dog\n136068,bird\n136069,truck\n136070,dog\n136071,airplane\n136072,ship\n136073,airplane\n136074,deer\n136075,dog\n136076,dog\n136077,airplane\n136078,horse\n136079,cat\n136080,cat\n136081,horse\n136082,automobile\n136083,automobile\n136084,airplane\n136085,ship\n136086,frog\n136087,truck\n136088,cat\n136089,frog\n136090,airplane\n136091,bird\n136092,ship\n136093,cat\n136094,airplane\n136095,airplane\n136096,airplane\n136097,bird\n136098,dog\n136099,truck\n136100,automobile\n136101,ship\n136102,frog\n136103,frog\n136104,cat\n136105,deer\n136106,ship\n136107,cat\n136108,truck\n136109,horse\n136110,frog\n136111,truck\n136112,horse\n136113,dog\n136114,airplane\n136115,automobile\n136116,frog\n136117,truck\n136118,dog\n136119,automobile\n136120,horse\n136121,frog\n136122,dog\n136123,frog\n136124,ship\n136125,automobile\n136126,horse\n136127,deer\n136128,ship\n136129,ship\n136130,frog\n136131,bird\n136132,dog\n136133,airplane\n136134,bird\n136135,airplane\n136136,deer\n136137,dog\n136138,deer\n136139,dog\n136140,deer\n136141,deer\n136142,bird\n136143,ship\n136144,frog\n136145,cat\n136146,ship\n136147,deer\n136148,automobile\n136149,deer\n136150,dog\n136151,bird\n136152,deer\n136153,truck\n136154,cat\n136155,bird\n136156,dog\n136157,deer\n136158,dog\n136159,horse\n136160,ship\n136161,ship\n136162,horse\n136163,deer\n136164,bird\n136165,ship\n136166,automobile\n136167,frog\n136168,frog\n136169,automobile\n136170,dog\n136171,deer\n136172,airplane\n136173,truck\n136174,truck\n136175,bird\n136176,bird\n136177,horse\n136178,deer\n136179,deer\n136180,horse\n136181,ship\n136182,automobile\n136183,bird\n136184,dog\n136185,dog\n136186,frog\n136187,frog\n136188,horse\n136189,ship\n136190,truck\n136191,horse\n136192,frog\n136193,automobile\n136194,truck\n136195,horse\n136196,deer\n136197,dog\n136198,dog\n136199,ship\n136200,cat\n136201,automobile\n136202,deer\n136203,deer\n136204,frog\n136205,deer\n136206,airplane\n136207,deer\n136208,bird\n136209,deer\n136210,cat\n136211,truck\n136212,deer\n136213,bird\n136214,horse\n136215,cat\n136216,automobile\n136217,airplane\n136218,airplane\n136219,deer\n136220,airplane\n136221,frog\n136222,dog\n136223,bird\n136224,cat\n136225,deer\n136226,cat\n136227,ship\n136228,deer\n136229,cat\n136230,ship\n136231,airplane\n136232,automobile\n136233,cat\n136234,ship\n136235,cat\n136236,dog\n136237,bird\n136238,horse\n136239,automobile\n136240,ship\n136241,truck\n136242,dog\n136243,deer\n136244,deer\n136245,airplane\n136246,bird\n136247,truck\n136248,dog\n136249,deer\n136250,truck\n136251,dog\n136252,airplane\n136253,airplane\n136254,horse\n136255,automobile\n136256,truck\n136257,frog\n136258,dog\n136259,frog\n136260,truck\n136261,deer\n136262,dog\n136263,dog\n136264,horse\n136265,frog\n136266,automobile\n136267,horse\n136268,frog\n136269,dog\n136270,horse\n136271,deer\n136272,frog\n136273,truck\n136274,ship\n136275,bird\n136276,cat\n136277,cat\n136278,ship\n136279,truck\n136280,deer\n136281,horse\n136282,bird\n136283,bird\n136284,airplane\n136285,ship\n136286,bird\n136287,cat\n136288,horse\n136289,cat\n136290,dog\n136291,dog\n136292,bird\n136293,deer\n136294,truck\n136295,cat\n136296,ship\n136297,horse\n136298,frog\n136299,automobile\n136300,dog\n136301,bird\n136302,truck\n136303,frog\n136304,automobile\n136305,automobile\n136306,bird\n136307,automobile\n136308,deer\n136309,horse\n136310,automobile\n136311,ship\n136312,automobile\n136313,cat\n136314,dog\n136315,deer\n136316,cat\n136317,ship\n136318,airplane\n136319,airplane\n136320,frog\n136321,automobile\n136322,airplane\n136323,frog\n136324,truck\n136325,deer\n136326,ship\n136327,cat\n136328,ship\n136329,truck\n136330,cat\n136331,deer\n136332,deer\n136333,dog\n136334,cat\n136335,automobile\n136336,frog\n136337,dog\n136338,airplane\n136339,bird\n136340,airplane\n136341,cat\n136342,truck\n136343,deer\n136344,ship\n136345,deer\n136346,truck\n136347,frog\n136348,automobile\n136349,truck\n136350,frog\n136351,horse\n136352,frog\n136353,truck\n136354,airplane\n136355,airplane\n136356,frog\n136357,dog\n136358,dog\n136359,horse\n136360,horse\n136361,frog\n136362,deer\n136363,airplane\n136364,deer\n136365,automobile\n136366,dog\n136367,cat\n136368,frog\n136369,dog\n136370,automobile\n136371,bird\n136372,ship\n136373,automobile\n136374,bird\n136375,automobile\n136376,frog\n136377,truck\n136378,deer\n136379,ship\n136380,bird\n136381,bird\n136382,airplane\n136383,airplane\n136384,ship\n136385,airplane\n136386,cat\n136387,dog\n136388,airplane\n136389,automobile\n136390,horse\n136391,dog\n136392,automobile\n136393,dog\n136394,frog\n136395,airplane\n136396,cat\n136397,airplane\n136398,ship\n136399,deer\n136400,cat\n136401,truck\n136402,frog\n136403,ship\n136404,airplane\n136405,deer\n136406,cat\n136407,airplane\n136408,horse\n136409,automobile\n136410,deer\n136411,ship\n136412,deer\n136413,truck\n136414,truck\n136415,truck\n136416,frog\n136417,airplane\n136418,ship\n136419,ship\n136420,automobile\n136421,truck\n136422,truck\n136423,cat\n136424,truck\n136425,frog\n136426,deer\n136427,bird\n136428,truck\n136429,ship\n136430,dog\n136431,deer\n136432,truck\n136433,automobile\n136434,truck\n136435,horse\n136436,airplane\n136437,ship\n136438,deer\n136439,horse\n136440,frog\n136441,frog\n136442,ship\n136443,cat\n136444,automobile\n136445,truck\n136446,truck\n136447,truck\n136448,airplane\n136449,dog\n136450,truck\n136451,dog\n136452,frog\n136453,deer\n136454,cat\n136455,deer\n136456,dog\n136457,deer\n136458,ship\n136459,airplane\n136460,ship\n136461,frog\n136462,airplane\n136463,horse\n136464,airplane\n136465,horse\n136466,cat\n136467,frog\n136468,dog\n136469,horse\n136470,truck\n136471,frog\n136472,bird\n136473,frog\n136474,horse\n136475,frog\n136476,ship\n136477,airplane\n136478,horse\n136479,bird\n136480,horse\n136481,truck\n136482,horse\n136483,bird\n136484,bird\n136485,frog\n136486,automobile\n136487,bird\n136488,deer\n136489,deer\n136490,bird\n136491,bird\n136492,airplane\n136493,truck\n136494,cat\n136495,bird\n136496,bird\n136497,cat\n136498,dog\n136499,cat\n136500,airplane\n136501,deer\n136502,frog\n136503,dog\n136504,deer\n136505,deer\n136506,bird\n136507,horse\n136508,deer\n136509,cat\n136510,cat\n136511,frog\n136512,dog\n136513,frog\n136514,cat\n136515,airplane\n136516,frog\n136517,cat\n136518,airplane\n136519,automobile\n136520,automobile\n136521,horse\n136522,dog\n136523,automobile\n136524,cat\n136525,bird\n136526,deer\n136527,deer\n136528,frog\n136529,automobile\n136530,cat\n136531,bird\n136532,truck\n136533,horse\n136534,frog\n136535,frog\n136536,horse\n136537,ship\n136538,frog\n136539,automobile\n136540,truck\n136541,cat\n136542,automobile\n136543,bird\n136544,deer\n136545,truck\n136546,truck\n136547,frog\n136548,cat\n136549,bird\n136550,automobile\n136551,frog\n136552,truck\n136553,deer\n136554,cat\n136555,deer\n136556,airplane\n136557,deer\n136558,cat\n136559,frog\n136560,truck\n136561,truck\n136562,dog\n136563,deer\n136564,ship\n136565,dog\n136566,bird\n136567,automobile\n136568,airplane\n136569,cat\n136570,truck\n136571,frog\n136572,truck\n136573,frog\n136574,automobile\n136575,truck\n136576,cat\n136577,dog\n136578,bird\n136579,bird\n136580,cat\n136581,deer\n136582,deer\n136583,truck\n136584,frog\n136585,deer\n136586,automobile\n136587,ship\n136588,frog\n136589,dog\n136590,ship\n136591,cat\n136592,deer\n136593,truck\n136594,bird\n136595,horse\n136596,truck\n136597,horse\n136598,deer\n136599,airplane\n136600,dog\n136601,dog\n136602,ship\n136603,cat\n136604,dog\n136605,dog\n136606,airplane\n136607,frog\n136608,cat\n136609,automobile\n136610,truck\n136611,cat\n136612,deer\n136613,truck\n136614,deer\n136615,horse\n136616,dog\n136617,bird\n136618,horse\n136619,bird\n136620,frog\n136621,truck\n136622,airplane\n136623,bird\n136624,horse\n136625,cat\n136626,dog\n136627,deer\n136628,dog\n136629,airplane\n136630,truck\n136631,airplane\n136632,bird\n136633,deer\n136634,bird\n136635,truck\n136636,airplane\n136637,horse\n136638,cat\n136639,airplane\n136640,cat\n136641,frog\n136642,airplane\n136643,bird\n136644,bird\n136645,dog\n136646,truck\n136647,ship\n136648,horse\n136649,dog\n136650,dog\n136651,cat\n136652,airplane\n136653,truck\n136654,cat\n136655,horse\n136656,cat\n136657,airplane\n136658,frog\n136659,automobile\n136660,cat\n136661,horse\n136662,deer\n136663,deer\n136664,bird\n136665,deer\n136666,deer\n136667,horse\n136668,frog\n136669,airplane\n136670,truck\n136671,horse\n136672,airplane\n136673,deer\n136674,ship\n136675,frog\n136676,bird\n136677,truck\n136678,deer\n136679,truck\n136680,ship\n136681,truck\n136682,truck\n136683,bird\n136684,airplane\n136685,horse\n136686,airplane\n136687,frog\n136688,cat\n136689,truck\n136690,horse\n136691,ship\n136692,truck\n136693,truck\n136694,cat\n136695,dog\n136696,dog\n136697,ship\n136698,deer\n136699,dog\n136700,automobile\n136701,automobile\n136702,cat\n136703,deer\n136704,frog\n136705,dog\n136706,airplane\n136707,truck\n136708,truck\n136709,truck\n136710,cat\n136711,deer\n136712,cat\n136713,ship\n136714,deer\n136715,automobile\n136716,dog\n136717,frog\n136718,automobile\n136719,ship\n136720,deer\n136721,bird\n136722,bird\n136723,deer\n136724,truck\n136725,ship\n136726,cat\n136727,deer\n136728,frog\n136729,dog\n136730,deer\n136731,dog\n136732,frog\n136733,cat\n136734,horse\n136735,deer\n136736,ship\n136737,horse\n136738,cat\n136739,deer\n136740,deer\n136741,airplane\n136742,truck\n136743,truck\n136744,dog\n136745,truck\n136746,ship\n136747,deer\n136748,deer\n136749,cat\n136750,airplane\n136751,deer\n136752,bird\n136753,cat\n136754,ship\n136755,horse\n136756,cat\n136757,cat\n136758,airplane\n136759,airplane\n136760,truck\n136761,truck\n136762,deer\n136763,cat\n136764,dog\n136765,cat\n136766,deer\n136767,frog\n136768,bird\n136769,frog\n136770,dog\n136771,deer\n136772,cat\n136773,cat\n136774,cat\n136775,truck\n136776,bird\n136777,cat\n136778,deer\n136779,airplane\n136780,automobile\n136781,cat\n136782,bird\n136783,automobile\n136784,deer\n136785,truck\n136786,dog\n136787,dog\n136788,dog\n136789,horse\n136790,airplane\n136791,deer\n136792,deer\n136793,ship\n136794,deer\n136795,deer\n136796,ship\n136797,airplane\n136798,frog\n136799,dog\n136800,airplane\n136801,truck\n136802,horse\n136803,airplane\n136804,truck\n136805,automobile\n136806,frog\n136807,cat\n136808,airplane\n136809,bird\n136810,frog\n136811,ship\n136812,truck\n136813,dog\n136814,cat\n136815,truck\n136816,airplane\n136817,horse\n136818,dog\n136819,frog\n136820,ship\n136821,cat\n136822,truck\n136823,airplane\n136824,deer\n136825,bird\n136826,frog\n136827,automobile\n136828,ship\n136829,frog\n136830,frog\n136831,frog\n136832,cat\n136833,bird\n136834,deer\n136835,automobile\n136836,frog\n136837,bird\n136838,deer\n136839,horse\n136840,truck\n136841,dog\n136842,cat\n136843,horse\n136844,automobile\n136845,automobile\n136846,deer\n136847,bird\n136848,bird\n136849,bird\n136850,dog\n136851,truck\n136852,automobile\n136853,deer\n136854,cat\n136855,cat\n136856,dog\n136857,automobile\n136858,automobile\n136859,horse\n136860,truck\n136861,horse\n136862,ship\n136863,cat\n136864,ship\n136865,truck\n136866,frog\n136867,frog\n136868,dog\n136869,ship\n136870,cat\n136871,ship\n136872,dog\n136873,deer\n136874,ship\n136875,cat\n136876,truck\n136877,frog\n136878,cat\n136879,dog\n136880,deer\n136881,cat\n136882,deer\n136883,deer\n136884,dog\n136885,bird\n136886,dog\n136887,horse\n136888,ship\n136889,automobile\n136890,horse\n136891,deer\n136892,truck\n136893,truck\n136894,deer\n136895,bird\n136896,horse\n136897,horse\n136898,horse\n136899,dog\n136900,bird\n136901,cat\n136902,cat\n136903,dog\n136904,ship\n136905,deer\n136906,horse\n136907,horse\n136908,deer\n136909,cat\n136910,dog\n136911,deer\n136912,truck\n136913,airplane\n136914,ship\n136915,deer\n136916,cat\n136917,truck\n136918,frog\n136919,automobile\n136920,dog\n136921,dog\n136922,ship\n136923,cat\n136924,dog\n136925,automobile\n136926,ship\n136927,horse\n136928,automobile\n136929,frog\n136930,frog\n136931,deer\n136932,cat\n136933,ship\n136934,bird\n136935,deer\n136936,deer\n136937,truck\n136938,ship\n136939,truck\n136940,ship\n136941,bird\n136942,frog\n136943,automobile\n136944,bird\n136945,deer\n136946,horse\n136947,dog\n136948,bird\n136949,frog\n136950,automobile\n136951,horse\n136952,deer\n136953,deer\n136954,bird\n136955,bird\n136956,dog\n136957,truck\n136958,frog\n136959,airplane\n136960,frog\n136961,horse\n136962,airplane\n136963,frog\n136964,bird\n136965,frog\n136966,frog\n136967,frog\n136968,dog\n136969,frog\n136970,cat\n136971,deer\n136972,horse\n136973,horse\n136974,truck\n136975,automobile\n136976,horse\n136977,deer\n136978,bird\n136979,truck\n136980,automobile\n136981,deer\n136982,cat\n136983,horse\n136984,airplane\n136985,deer\n136986,horse\n136987,automobile\n136988,dog\n136989,airplane\n136990,truck\n136991,ship\n136992,cat\n136993,bird\n136994,horse\n136995,bird\n136996,horse\n136997,cat\n136998,truck\n136999,cat\n137000,airplane\n137001,horse\n137002,cat\n137003,dog\n137004,deer\n137005,dog\n137006,frog\n137007,dog\n137008,cat\n137009,horse\n137010,horse\n137011,horse\n137012,frog\n137013,cat\n137014,cat\n137015,truck\n137016,dog\n137017,airplane\n137018,dog\n137019,cat\n137020,automobile\n137021,cat\n137022,deer\n137023,frog\n137024,ship\n137025,deer\n137026,horse\n137027,automobile\n137028,frog\n137029,ship\n137030,horse\n137031,truck\n137032,truck\n137033,horse\n137034,cat\n137035,truck\n137036,frog\n137037,dog\n137038,horse\n137039,deer\n137040,frog\n137041,deer\n137042,truck\n137043,deer\n137044,deer\n137045,automobile\n137046,airplane\n137047,automobile\n137048,horse\n137049,bird\n137050,horse\n137051,dog\n137052,ship\n137053,deer\n137054,ship\n137055,cat\n137056,airplane\n137057,dog\n137058,truck\n137059,deer\n137060,truck\n137061,cat\n137062,dog\n137063,truck\n137064,automobile\n137065,bird\n137066,horse\n137067,dog\n137068,horse\n137069,frog\n137070,cat\n137071,cat\n137072,automobile\n137073,deer\n137074,deer\n137075,cat\n137076,cat\n137077,frog\n137078,cat\n137079,automobile\n137080,frog\n137081,airplane\n137082,bird\n137083,cat\n137084,automobile\n137085,deer\n137086,automobile\n137087,dog\n137088,bird\n137089,deer\n137090,truck\n137091,airplane\n137092,ship\n137093,airplane\n137094,horse\n137095,bird\n137096,horse\n137097,automobile\n137098,horse\n137099,bird\n137100,horse\n137101,ship\n137102,horse\n137103,automobile\n137104,truck\n137105,truck\n137106,cat\n137107,dog\n137108,deer\n137109,deer\n137110,ship\n137111,frog\n137112,bird\n137113,deer\n137114,horse\n137115,cat\n137116,horse\n137117,automobile\n137118,automobile\n137119,airplane\n137120,deer\n137121,cat\n137122,dog\n137123,bird\n137124,cat\n137125,cat\n137126,dog\n137127,horse\n137128,ship\n137129,cat\n137130,ship\n137131,horse\n137132,horse\n137133,truck\n137134,frog\n137135,automobile\n137136,frog\n137137,horse\n137138,bird\n137139,frog\n137140,dog\n137141,airplane\n137142,deer\n137143,deer\n137144,cat\n137145,cat\n137146,dog\n137147,cat\n137148,truck\n137149,automobile\n137150,deer\n137151,airplane\n137152,deer\n137153,frog\n137154,deer\n137155,airplane\n137156,bird\n137157,deer\n137158,ship\n137159,truck\n137160,deer\n137161,dog\n137162,airplane\n137163,dog\n137164,airplane\n137165,automobile\n137166,cat\n137167,bird\n137168,deer\n137169,dog\n137170,horse\n137171,cat\n137172,cat\n137173,frog\n137174,truck\n137175,bird\n137176,dog\n137177,dog\n137178,dog\n137179,ship\n137180,frog\n137181,deer\n137182,frog\n137183,cat\n137184,truck\n137185,deer\n137186,cat\n137187,cat\n137188,bird\n137189,frog\n137190,airplane\n137191,horse\n137192,airplane\n137193,cat\n137194,dog\n137195,deer\n137196,frog\n137197,ship\n137198,truck\n137199,bird\n137200,automobile\n137201,dog\n137202,cat\n137203,cat\n137204,truck\n137205,deer\n137206,dog\n137207,airplane\n137208,cat\n137209,dog\n137210,airplane\n137211,horse\n137212,truck\n137213,deer\n137214,horse\n137215,horse\n137216,horse\n137217,cat\n137218,cat\n137219,deer\n137220,airplane\n137221,airplane\n137222,truck\n137223,deer\n137224,frog\n137225,truck\n137226,ship\n137227,deer\n137228,horse\n137229,airplane\n137230,truck\n137231,cat\n137232,horse\n137233,horse\n137234,ship\n137235,truck\n137236,cat\n137237,airplane\n137238,airplane\n137239,truck\n137240,deer\n137241,horse\n137242,cat\n137243,dog\n137244,ship\n137245,bird\n137246,truck\n137247,deer\n137248,deer\n137249,frog\n137250,airplane\n137251,dog\n137252,deer\n137253,dog\n137254,frog\n137255,dog\n137256,truck\n137257,airplane\n137258,deer\n137259,frog\n137260,bird\n137261,cat\n137262,cat\n137263,bird\n137264,deer\n137265,dog\n137266,cat\n137267,deer\n137268,bird\n137269,horse\n137270,automobile\n137271,ship\n137272,deer\n137273,horse\n137274,dog\n137275,truck\n137276,airplane\n137277,automobile\n137278,truck\n137279,dog\n137280,frog\n137281,automobile\n137282,ship\n137283,bird\n137284,deer\n137285,deer\n137286,airplane\n137287,horse\n137288,deer\n137289,deer\n137290,airplane\n137291,frog\n137292,airplane\n137293,ship\n137294,bird\n137295,ship\n137296,deer\n137297,deer\n137298,truck\n137299,airplane\n137300,dog\n137301,deer\n137302,deer\n137303,automobile\n137304,airplane\n137305,truck\n137306,bird\n137307,airplane\n137308,dog\n137309,dog\n137310,cat\n137311,cat\n137312,horse\n137313,cat\n137314,cat\n137315,bird\n137316,deer\n137317,airplane\n137318,dog\n137319,dog\n137320,airplane\n137321,horse\n137322,dog\n137323,deer\n137324,automobile\n137325,bird\n137326,airplane\n137327,dog\n137328,cat\n137329,truck\n137330,truck\n137331,bird\n137332,cat\n137333,deer\n137334,deer\n137335,dog\n137336,truck\n137337,deer\n137338,frog\n137339,automobile\n137340,automobile\n137341,truck\n137342,truck\n137343,bird\n137344,cat\n137345,airplane\n137346,bird\n137347,horse\n137348,deer\n137349,dog\n137350,cat\n137351,truck\n137352,truck\n137353,truck\n137354,deer\n137355,ship\n137356,airplane\n137357,airplane\n137358,truck\n137359,airplane\n137360,airplane\n137361,deer\n137362,dog\n137363,truck\n137364,airplane\n137365,ship\n137366,frog\n137367,bird\n137368,truck\n137369,horse\n137370,cat\n137371,automobile\n137372,dog\n137373,deer\n137374,frog\n137375,horse\n137376,cat\n137377,bird\n137378,truck\n137379,ship\n137380,cat\n137381,deer\n137382,dog\n137383,dog\n137384,truck\n137385,airplane\n137386,airplane\n137387,horse\n137388,frog\n137389,cat\n137390,truck\n137391,deer\n137392,horse\n137393,horse\n137394,bird\n137395,cat\n137396,bird\n137397,bird\n137398,dog\n137399,ship\n137400,airplane\n137401,automobile\n137402,truck\n137403,cat\n137404,deer\n137405,horse\n137406,cat\n137407,horse\n137408,frog\n137409,deer\n137410,cat\n137411,deer\n137412,frog\n137413,airplane\n137414,cat\n137415,cat\n137416,horse\n137417,ship\n137418,dog\n137419,frog\n137420,deer\n137421,frog\n137422,deer\n137423,cat\n137424,horse\n137425,horse\n137426,cat\n137427,horse\n137428,airplane\n137429,bird\n137430,bird\n137431,deer\n137432,bird\n137433,dog\n137434,frog\n137435,cat\n137436,cat\n137437,cat\n137438,cat\n137439,deer\n137440,automobile\n137441,airplane\n137442,frog\n137443,deer\n137444,truck\n137445,frog\n137446,airplane\n137447,frog\n137448,truck\n137449,frog\n137450,airplane\n137451,cat\n137452,cat\n137453,horse\n137454,deer\n137455,bird\n137456,dog\n137457,frog\n137458,horse\n137459,ship\n137460,truck\n137461,deer\n137462,airplane\n137463,dog\n137464,deer\n137465,frog\n137466,airplane\n137467,deer\n137468,frog\n137469,frog\n137470,truck\n137471,truck\n137472,truck\n137473,cat\n137474,dog\n137475,dog\n137476,ship\n137477,frog\n137478,ship\n137479,cat\n137480,deer\n137481,airplane\n137482,horse\n137483,dog\n137484,airplane\n137485,cat\n137486,frog\n137487,frog\n137488,airplane\n137489,dog\n137490,horse\n137491,cat\n137492,cat\n137493,airplane\n137494,cat\n137495,airplane\n137496,frog\n137497,deer\n137498,ship\n137499,dog\n137500,cat\n137501,cat\n137502,ship\n137503,dog\n137504,deer\n137505,horse\n137506,airplane\n137507,frog\n137508,ship\n137509,dog\n137510,dog\n137511,bird\n137512,cat\n137513,ship\n137514,cat\n137515,dog\n137516,automobile\n137517,horse\n137518,horse\n137519,automobile\n137520,dog\n137521,ship\n137522,truck\n137523,dog\n137524,airplane\n137525,horse\n137526,cat\n137527,truck\n137528,deer\n137529,dog\n137530,deer\n137531,airplane\n137532,automobile\n137533,horse\n137534,horse\n137535,cat\n137536,cat\n137537,horse\n137538,frog\n137539,horse\n137540,automobile\n137541,deer\n137542,dog\n137543,dog\n137544,dog\n137545,bird\n137546,truck\n137547,cat\n137548,deer\n137549,airplane\n137550,cat\n137551,airplane\n137552,automobile\n137553,horse\n137554,truck\n137555,deer\n137556,horse\n137557,dog\n137558,dog\n137559,frog\n137560,ship\n137561,deer\n137562,dog\n137563,truck\n137564,horse\n137565,deer\n137566,truck\n137567,cat\n137568,cat\n137569,dog\n137570,cat\n137571,horse\n137572,ship\n137573,cat\n137574,airplane\n137575,frog\n137576,bird\n137577,frog\n137578,frog\n137579,frog\n137580,bird\n137581,truck\n137582,frog\n137583,cat\n137584,ship\n137585,dog\n137586,frog\n137587,frog\n137588,horse\n137589,deer\n137590,dog\n137591,horse\n137592,deer\n137593,bird\n137594,deer\n137595,deer\n137596,cat\n137597,truck\n137598,ship\n137599,truck\n137600,deer\n137601,bird\n137602,truck\n137603,deer\n137604,deer\n137605,airplane\n137606,bird\n137607,dog\n137608,ship\n137609,dog\n137610,dog\n137611,truck\n137612,dog\n137613,frog\n137614,truck\n137615,bird\n137616,deer\n137617,airplane\n137618,dog\n137619,horse\n137620,dog\n137621,airplane\n137622,frog\n137623,cat\n137624,dog\n137625,frog\n137626,deer\n137627,airplane\n137628,horse\n137629,dog\n137630,airplane\n137631,automobile\n137632,dog\n137633,frog\n137634,cat\n137635,truck\n137636,bird\n137637,cat\n137638,bird\n137639,automobile\n137640,deer\n137641,bird\n137642,cat\n137643,truck\n137644,horse\n137645,bird\n137646,dog\n137647,airplane\n137648,cat\n137649,cat\n137650,cat\n137651,dog\n137652,deer\n137653,cat\n137654,cat\n137655,dog\n137656,bird\n137657,frog\n137658,truck\n137659,dog\n137660,bird\n137661,frog\n137662,cat\n137663,cat\n137664,dog\n137665,deer\n137666,horse\n137667,truck\n137668,airplane\n137669,cat\n137670,truck\n137671,dog\n137672,airplane\n137673,bird\n137674,bird\n137675,deer\n137676,bird\n137677,ship\n137678,dog\n137679,dog\n137680,cat\n137681,automobile\n137682,airplane\n137683,deer\n137684,frog\n137685,automobile\n137686,frog\n137687,horse\n137688,frog\n137689,frog\n137690,cat\n137691,bird\n137692,deer\n137693,cat\n137694,deer\n137695,horse\n137696,horse\n137697,cat\n137698,frog\n137699,dog\n137700,dog\n137701,dog\n137702,cat\n137703,truck\n137704,bird\n137705,cat\n137706,bird\n137707,frog\n137708,airplane\n137709,bird\n137710,ship\n137711,truck\n137712,frog\n137713,cat\n137714,bird\n137715,bird\n137716,horse\n137717,automobile\n137718,airplane\n137719,dog\n137720,truck\n137721,automobile\n137722,truck\n137723,horse\n137724,dog\n137725,frog\n137726,deer\n137727,horse\n137728,dog\n137729,frog\n137730,deer\n137731,dog\n137732,deer\n137733,frog\n137734,automobile\n137735,horse\n137736,airplane\n137737,deer\n137738,bird\n137739,ship\n137740,frog\n137741,horse\n137742,bird\n137743,frog\n137744,deer\n137745,frog\n137746,dog\n137747,deer\n137748,horse\n137749,cat\n137750,deer\n137751,truck\n137752,cat\n137753,automobile\n137754,dog\n137755,frog\n137756,airplane\n137757,horse\n137758,truck\n137759,cat\n137760,deer\n137761,automobile\n137762,automobile\n137763,truck\n137764,automobile\n137765,horse\n137766,bird\n137767,deer\n137768,bird\n137769,automobile\n137770,ship\n137771,cat\n137772,truck\n137773,frog\n137774,horse\n137775,horse\n137776,dog\n137777,cat\n137778,bird\n137779,deer\n137780,airplane\n137781,automobile\n137782,deer\n137783,bird\n137784,truck\n137785,airplane\n137786,dog\n137787,truck\n137788,dog\n137789,cat\n137790,truck\n137791,dog\n137792,deer\n137793,airplane\n137794,cat\n137795,ship\n137796,deer\n137797,airplane\n137798,dog\n137799,bird\n137800,truck\n137801,truck\n137802,bird\n137803,frog\n137804,automobile\n137805,airplane\n137806,truck\n137807,dog\n137808,cat\n137809,bird\n137810,ship\n137811,automobile\n137812,truck\n137813,frog\n137814,ship\n137815,dog\n137816,horse\n137817,deer\n137818,deer\n137819,truck\n137820,ship\n137821,airplane\n137822,horse\n137823,frog\n137824,frog\n137825,cat\n137826,ship\n137827,bird\n137828,horse\n137829,automobile\n137830,horse\n137831,horse\n137832,ship\n137833,horse\n137834,deer\n137835,automobile\n137836,airplane\n137837,automobile\n137838,horse\n137839,cat\n137840,ship\n137841,frog\n137842,airplane\n137843,deer\n137844,truck\n137845,airplane\n137846,ship\n137847,bird\n137848,airplane\n137849,truck\n137850,ship\n137851,horse\n137852,dog\n137853,cat\n137854,dog\n137855,deer\n137856,ship\n137857,truck\n137858,airplane\n137859,airplane\n137860,bird\n137861,ship\n137862,airplane\n137863,horse\n137864,automobile\n137865,cat\n137866,frog\n137867,frog\n137868,dog\n137869,cat\n137870,ship\n137871,frog\n137872,frog\n137873,airplane\n137874,frog\n137875,frog\n137876,truck\n137877,horse\n137878,bird\n137879,dog\n137880,deer\n137881,deer\n137882,dog\n137883,automobile\n137884,cat\n137885,truck\n137886,automobile\n137887,deer\n137888,airplane\n137889,dog\n137890,cat\n137891,truck\n137892,bird\n137893,bird\n137894,horse\n137895,frog\n137896,frog\n137897,horse\n137898,truck\n137899,frog\n137900,automobile\n137901,truck\n137902,cat\n137903,cat\n137904,horse\n137905,automobile\n137906,airplane\n137907,bird\n137908,bird\n137909,frog\n137910,deer\n137911,dog\n137912,bird\n137913,bird\n137914,airplane\n137915,ship\n137916,cat\n137917,truck\n137918,cat\n137919,frog\n137920,cat\n137921,deer\n137922,truck\n137923,truck\n137924,bird\n137925,ship\n137926,dog\n137927,frog\n137928,bird\n137929,horse\n137930,airplane\n137931,horse\n137932,deer\n137933,cat\n137934,ship\n137935,automobile\n137936,airplane\n137937,airplane\n137938,deer\n137939,deer\n137940,deer\n137941,airplane\n137942,deer\n137943,horse\n137944,frog\n137945,frog\n137946,cat\n137947,dog\n137948,cat\n137949,deer\n137950,horse\n137951,truck\n137952,horse\n137953,frog\n137954,bird\n137955,bird\n137956,horse\n137957,airplane\n137958,dog\n137959,dog\n137960,dog\n137961,bird\n137962,truck\n137963,ship\n137964,deer\n137965,cat\n137966,deer\n137967,frog\n137968,frog\n137969,bird\n137970,bird\n137971,dog\n137972,bird\n137973,cat\n137974,bird\n137975,frog\n137976,frog\n137977,frog\n137978,bird\n137979,truck\n137980,airplane\n137981,automobile\n137982,bird\n137983,automobile\n137984,cat\n137985,horse\n137986,bird\n137987,horse\n137988,dog\n137989,automobile\n137990,horse\n137991,deer\n137992,truck\n137993,bird\n137994,cat\n137995,deer\n137996,truck\n137997,frog\n137998,frog\n137999,deer\n138000,truck\n138001,deer\n138002,deer\n138003,bird\n138004,cat\n138005,ship\n138006,automobile\n138007,horse\n138008,dog\n138009,deer\n138010,dog\n138011,ship\n138012,dog\n138013,airplane\n138014,bird\n138015,frog\n138016,bird\n138017,truck\n138018,truck\n138019,deer\n138020,truck\n138021,bird\n138022,frog\n138023,cat\n138024,deer\n138025,deer\n138026,frog\n138027,deer\n138028,horse\n138029,ship\n138030,truck\n138031,horse\n138032,frog\n138033,airplane\n138034,horse\n138035,deer\n138036,cat\n138037,truck\n138038,bird\n138039,airplane\n138040,ship\n138041,deer\n138042,automobile\n138043,frog\n138044,dog\n138045,truck\n138046,airplane\n138047,airplane\n138048,deer\n138049,dog\n138050,airplane\n138051,automobile\n138052,dog\n138053,truck\n138054,truck\n138055,horse\n138056,deer\n138057,dog\n138058,horse\n138059,automobile\n138060,dog\n138061,deer\n138062,cat\n138063,deer\n138064,frog\n138065,deer\n138066,automobile\n138067,automobile\n138068,frog\n138069,automobile\n138070,cat\n138071,ship\n138072,ship\n138073,truck\n138074,frog\n138075,dog\n138076,truck\n138077,cat\n138078,ship\n138079,deer\n138080,horse\n138081,horse\n138082,airplane\n138083,frog\n138084,truck\n138085,cat\n138086,cat\n138087,airplane\n138088,cat\n138089,cat\n138090,horse\n138091,frog\n138092,horse\n138093,airplane\n138094,horse\n138095,airplane\n138096,ship\n138097,dog\n138098,dog\n138099,ship\n138100,dog\n138101,deer\n138102,horse\n138103,deer\n138104,horse\n138105,deer\n138106,automobile\n138107,horse\n138108,dog\n138109,frog\n138110,bird\n138111,bird\n138112,frog\n138113,automobile\n138114,automobile\n138115,truck\n138116,horse\n138117,dog\n138118,frog\n138119,automobile\n138120,airplane\n138121,dog\n138122,deer\n138123,deer\n138124,automobile\n138125,dog\n138126,truck\n138127,ship\n138128,airplane\n138129,cat\n138130,airplane\n138131,automobile\n138132,truck\n138133,horse\n138134,horse\n138135,bird\n138136,ship\n138137,automobile\n138138,cat\n138139,frog\n138140,automobile\n138141,horse\n138142,horse\n138143,dog\n138144,airplane\n138145,horse\n138146,ship\n138147,truck\n138148,truck\n138149,cat\n138150,cat\n138151,airplane\n138152,cat\n138153,frog\n138154,truck\n138155,dog\n138156,truck\n138157,ship\n138158,horse\n138159,frog\n138160,airplane\n138161,dog\n138162,ship\n138163,cat\n138164,deer\n138165,truck\n138166,truck\n138167,bird\n138168,horse\n138169,frog\n138170,horse\n138171,airplane\n138172,ship\n138173,frog\n138174,cat\n138175,truck\n138176,horse\n138177,horse\n138178,bird\n138179,ship\n138180,cat\n138181,cat\n138182,cat\n138183,automobile\n138184,ship\n138185,automobile\n138186,deer\n138187,automobile\n138188,deer\n138189,ship\n138190,deer\n138191,truck\n138192,dog\n138193,frog\n138194,dog\n138195,horse\n138196,truck\n138197,truck\n138198,frog\n138199,automobile\n138200,deer\n138201,bird\n138202,truck\n138203,frog\n138204,ship\n138205,frog\n138206,cat\n138207,ship\n138208,ship\n138209,ship\n138210,bird\n138211,automobile\n138212,frog\n138213,ship\n138214,automobile\n138215,dog\n138216,cat\n138217,cat\n138218,ship\n138219,horse\n138220,ship\n138221,cat\n138222,truck\n138223,automobile\n138224,automobile\n138225,ship\n138226,horse\n138227,frog\n138228,dog\n138229,bird\n138230,truck\n138231,truck\n138232,bird\n138233,bird\n138234,cat\n138235,frog\n138236,frog\n138237,dog\n138238,cat\n138239,automobile\n138240,bird\n138241,airplane\n138242,frog\n138243,dog\n138244,horse\n138245,dog\n138246,dog\n138247,deer\n138248,cat\n138249,airplane\n138250,deer\n138251,airplane\n138252,ship\n138253,truck\n138254,truck\n138255,ship\n138256,airplane\n138257,deer\n138258,automobile\n138259,airplane\n138260,deer\n138261,ship\n138262,cat\n138263,deer\n138264,horse\n138265,truck\n138266,bird\n138267,deer\n138268,dog\n138269,deer\n138270,cat\n138271,dog\n138272,dog\n138273,cat\n138274,airplane\n138275,dog\n138276,bird\n138277,dog\n138278,truck\n138279,deer\n138280,deer\n138281,horse\n138282,truck\n138283,cat\n138284,cat\n138285,cat\n138286,bird\n138287,cat\n138288,deer\n138289,truck\n138290,dog\n138291,cat\n138292,deer\n138293,deer\n138294,automobile\n138295,deer\n138296,truck\n138297,truck\n138298,cat\n138299,deer\n138300,frog\n138301,cat\n138302,cat\n138303,cat\n138304,airplane\n138305,frog\n138306,automobile\n138307,frog\n138308,bird\n138309,truck\n138310,deer\n138311,horse\n138312,dog\n138313,cat\n138314,ship\n138315,deer\n138316,truck\n138317,automobile\n138318,dog\n138319,bird\n138320,automobile\n138321,bird\n138322,bird\n138323,horse\n138324,ship\n138325,dog\n138326,cat\n138327,automobile\n138328,frog\n138329,airplane\n138330,deer\n138331,airplane\n138332,frog\n138333,automobile\n138334,cat\n138335,bird\n138336,dog\n138337,cat\n138338,ship\n138339,deer\n138340,truck\n138341,frog\n138342,frog\n138343,airplane\n138344,cat\n138345,bird\n138346,truck\n138347,dog\n138348,automobile\n138349,ship\n138350,deer\n138351,deer\n138352,airplane\n138353,deer\n138354,automobile\n138355,airplane\n138356,automobile\n138357,horse\n138358,deer\n138359,ship\n138360,frog\n138361,cat\n138362,frog\n138363,frog\n138364,deer\n138365,cat\n138366,dog\n138367,truck\n138368,truck\n138369,cat\n138370,truck\n138371,horse\n138372,automobile\n138373,ship\n138374,bird\n138375,frog\n138376,truck\n138377,bird\n138378,bird\n138379,bird\n138380,automobile\n138381,horse\n138382,frog\n138383,cat\n138384,airplane\n138385,airplane\n138386,bird\n138387,ship\n138388,truck\n138389,truck\n138390,truck\n138391,airplane\n138392,deer\n138393,cat\n138394,airplane\n138395,truck\n138396,deer\n138397,truck\n138398,frog\n138399,bird\n138400,dog\n138401,airplane\n138402,bird\n138403,airplane\n138404,frog\n138405,bird\n138406,ship\n138407,ship\n138408,truck\n138409,deer\n138410,airplane\n138411,dog\n138412,cat\n138413,bird\n138414,ship\n138415,frog\n138416,frog\n138417,frog\n138418,bird\n138419,airplane\n138420,cat\n138421,deer\n138422,airplane\n138423,airplane\n138424,automobile\n138425,cat\n138426,deer\n138427,truck\n138428,airplane\n138429,automobile\n138430,automobile\n138431,frog\n138432,automobile\n138433,deer\n138434,bird\n138435,horse\n138436,bird\n138437,dog\n138438,horse\n138439,deer\n138440,airplane\n138441,frog\n138442,automobile\n138443,deer\n138444,automobile\n138445,cat\n138446,cat\n138447,deer\n138448,dog\n138449,frog\n138450,dog\n138451,deer\n138452,dog\n138453,frog\n138454,truck\n138455,truck\n138456,airplane\n138457,horse\n138458,deer\n138459,deer\n138460,horse\n138461,automobile\n138462,ship\n138463,truck\n138464,bird\n138465,truck\n138466,dog\n138467,horse\n138468,airplane\n138469,truck\n138470,cat\n138471,cat\n138472,truck\n138473,deer\n138474,ship\n138475,deer\n138476,automobile\n138477,truck\n138478,horse\n138479,bird\n138480,ship\n138481,bird\n138482,horse\n138483,bird\n138484,bird\n138485,airplane\n138486,deer\n138487,cat\n138488,automobile\n138489,ship\n138490,dog\n138491,deer\n138492,horse\n138493,deer\n138494,automobile\n138495,airplane\n138496,cat\n138497,bird\n138498,horse\n138499,horse\n138500,deer\n138501,automobile\n138502,horse\n138503,ship\n138504,horse\n138505,bird\n138506,cat\n138507,ship\n138508,ship\n138509,cat\n138510,bird\n138511,frog\n138512,horse\n138513,frog\n138514,frog\n138515,automobile\n138516,deer\n138517,cat\n138518,ship\n138519,deer\n138520,deer\n138521,bird\n138522,horse\n138523,cat\n138524,bird\n138525,dog\n138526,dog\n138527,airplane\n138528,cat\n138529,ship\n138530,horse\n138531,automobile\n138532,horse\n138533,deer\n138534,deer\n138535,horse\n138536,frog\n138537,dog\n138538,dog\n138539,bird\n138540,deer\n138541,truck\n138542,truck\n138543,horse\n138544,horse\n138545,airplane\n138546,truck\n138547,frog\n138548,automobile\n138549,deer\n138550,automobile\n138551,horse\n138552,bird\n138553,truck\n138554,deer\n138555,cat\n138556,cat\n138557,horse\n138558,dog\n138559,airplane\n138560,airplane\n138561,deer\n138562,horse\n138563,cat\n138564,frog\n138565,automobile\n138566,deer\n138567,airplane\n138568,horse\n138569,frog\n138570,dog\n138571,truck\n138572,automobile\n138573,dog\n138574,ship\n138575,bird\n138576,dog\n138577,airplane\n138578,ship\n138579,truck\n138580,ship\n138581,automobile\n138582,dog\n138583,ship\n138584,horse\n138585,horse\n138586,cat\n138587,frog\n138588,dog\n138589,horse\n138590,dog\n138591,cat\n138592,horse\n138593,airplane\n138594,cat\n138595,airplane\n138596,frog\n138597,dog\n138598,airplane\n138599,cat\n138600,bird\n138601,truck\n138602,automobile\n138603,dog\n138604,dog\n138605,automobile\n138606,cat\n138607,ship\n138608,cat\n138609,deer\n138610,dog\n138611,frog\n138612,frog\n138613,deer\n138614,dog\n138615,frog\n138616,deer\n138617,airplane\n138618,dog\n138619,bird\n138620,bird\n138621,horse\n138622,frog\n138623,horse\n138624,deer\n138625,ship\n138626,automobile\n138627,horse\n138628,deer\n138629,ship\n138630,deer\n138631,dog\n138632,airplane\n138633,frog\n138634,dog\n138635,dog\n138636,cat\n138637,cat\n138638,bird\n138639,truck\n138640,cat\n138641,frog\n138642,airplane\n138643,cat\n138644,deer\n138645,frog\n138646,bird\n138647,bird\n138648,truck\n138649,frog\n138650,frog\n138651,dog\n138652,dog\n138653,automobile\n138654,deer\n138655,deer\n138656,truck\n138657,dog\n138658,bird\n138659,deer\n138660,ship\n138661,bird\n138662,dog\n138663,airplane\n138664,bird\n138665,automobile\n138666,automobile\n138667,airplane\n138668,ship\n138669,deer\n138670,frog\n138671,horse\n138672,bird\n138673,frog\n138674,airplane\n138675,ship\n138676,airplane\n138677,deer\n138678,dog\n138679,bird\n138680,deer\n138681,frog\n138682,frog\n138683,horse\n138684,cat\n138685,cat\n138686,dog\n138687,automobile\n138688,deer\n138689,ship\n138690,airplane\n138691,deer\n138692,deer\n138693,frog\n138694,horse\n138695,automobile\n138696,dog\n138697,airplane\n138698,deer\n138699,ship\n138700,horse\n138701,dog\n138702,bird\n138703,ship\n138704,cat\n138705,deer\n138706,dog\n138707,ship\n138708,cat\n138709,horse\n138710,airplane\n138711,dog\n138712,airplane\n138713,dog\n138714,dog\n138715,dog\n138716,dog\n138717,deer\n138718,deer\n138719,frog\n138720,horse\n138721,frog\n138722,airplane\n138723,airplane\n138724,bird\n138725,truck\n138726,cat\n138727,cat\n138728,frog\n138729,automobile\n138730,bird\n138731,frog\n138732,cat\n138733,truck\n138734,cat\n138735,ship\n138736,truck\n138737,deer\n138738,bird\n138739,cat\n138740,bird\n138741,deer\n138742,automobile\n138743,cat\n138744,cat\n138745,automobile\n138746,horse\n138747,horse\n138748,frog\n138749,dog\n138750,frog\n138751,automobile\n138752,dog\n138753,truck\n138754,dog\n138755,cat\n138756,cat\n138757,dog\n138758,frog\n138759,cat\n138760,horse\n138761,frog\n138762,dog\n138763,truck\n138764,dog\n138765,dog\n138766,deer\n138767,deer\n138768,automobile\n138769,deer\n138770,airplane\n138771,ship\n138772,cat\n138773,frog\n138774,horse\n138775,horse\n138776,dog\n138777,frog\n138778,automobile\n138779,bird\n138780,dog\n138781,cat\n138782,ship\n138783,deer\n138784,dog\n138785,frog\n138786,bird\n138787,frog\n138788,automobile\n138789,dog\n138790,dog\n138791,airplane\n138792,dog\n138793,cat\n138794,automobile\n138795,deer\n138796,cat\n138797,airplane\n138798,deer\n138799,dog\n138800,frog\n138801,bird\n138802,frog\n138803,cat\n138804,horse\n138805,truck\n138806,dog\n138807,truck\n138808,frog\n138809,horse\n138810,bird\n138811,airplane\n138812,deer\n138813,deer\n138814,cat\n138815,automobile\n138816,deer\n138817,horse\n138818,cat\n138819,horse\n138820,cat\n138821,bird\n138822,airplane\n138823,frog\n138824,deer\n138825,frog\n138826,dog\n138827,frog\n138828,horse\n138829,horse\n138830,cat\n138831,deer\n138832,automobile\n138833,deer\n138834,airplane\n138835,airplane\n138836,frog\n138837,truck\n138838,cat\n138839,dog\n138840,truck\n138841,horse\n138842,ship\n138843,automobile\n138844,frog\n138845,cat\n138846,deer\n138847,cat\n138848,deer\n138849,deer\n138850,cat\n138851,frog\n138852,horse\n138853,truck\n138854,bird\n138855,dog\n138856,dog\n138857,horse\n138858,cat\n138859,bird\n138860,automobile\n138861,truck\n138862,horse\n138863,truck\n138864,airplane\n138865,cat\n138866,ship\n138867,ship\n138868,truck\n138869,dog\n138870,frog\n138871,cat\n138872,deer\n138873,frog\n138874,dog\n138875,truck\n138876,airplane\n138877,truck\n138878,dog\n138879,deer\n138880,cat\n138881,cat\n138882,deer\n138883,deer\n138884,bird\n138885,dog\n138886,automobile\n138887,airplane\n138888,ship\n138889,horse\n138890,cat\n138891,horse\n138892,ship\n138893,automobile\n138894,bird\n138895,cat\n138896,deer\n138897,horse\n138898,truck\n138899,dog\n138900,airplane\n138901,dog\n138902,cat\n138903,ship\n138904,horse\n138905,bird\n138906,ship\n138907,bird\n138908,horse\n138909,bird\n138910,dog\n138911,bird\n138912,cat\n138913,cat\n138914,cat\n138915,bird\n138916,dog\n138917,truck\n138918,horse\n138919,ship\n138920,bird\n138921,cat\n138922,airplane\n138923,airplane\n138924,truck\n138925,frog\n138926,bird\n138927,cat\n138928,ship\n138929,frog\n138930,frog\n138931,deer\n138932,cat\n138933,dog\n138934,deer\n138935,ship\n138936,automobile\n138937,deer\n138938,dog\n138939,airplane\n138940,frog\n138941,deer\n138942,cat\n138943,cat\n138944,truck\n138945,bird\n138946,cat\n138947,airplane\n138948,deer\n138949,horse\n138950,cat\n138951,automobile\n138952,deer\n138953,truck\n138954,truck\n138955,deer\n138956,airplane\n138957,deer\n138958,cat\n138959,horse\n138960,deer\n138961,deer\n138962,horse\n138963,horse\n138964,automobile\n138965,truck\n138966,airplane\n138967,bird\n138968,dog\n138969,dog\n138970,airplane\n138971,horse\n138972,automobile\n138973,frog\n138974,dog\n138975,frog\n138976,truck\n138977,truck\n138978,horse\n138979,cat\n138980,frog\n138981,dog\n138982,dog\n138983,deer\n138984,frog\n138985,dog\n138986,ship\n138987,dog\n138988,horse\n138989,bird\n138990,deer\n138991,airplane\n138992,deer\n138993,airplane\n138994,bird\n138995,cat\n138996,cat\n138997,automobile\n138998,bird\n138999,ship\n139000,cat\n139001,truck\n139002,cat\n139003,airplane\n139004,deer\n139005,bird\n139006,horse\n139007,bird\n139008,deer\n139009,airplane\n139010,frog\n139011,airplane\n139012,cat\n139013,bird\n139014,dog\n139015,bird\n139016,frog\n139017,deer\n139018,truck\n139019,airplane\n139020,airplane\n139021,deer\n139022,truck\n139023,horse\n139024,truck\n139025,automobile\n139026,cat\n139027,horse\n139028,ship\n139029,bird\n139030,ship\n139031,ship\n139032,truck\n139033,frog\n139034,horse\n139035,deer\n139036,airplane\n139037,automobile\n139038,deer\n139039,frog\n139040,airplane\n139041,cat\n139042,ship\n139043,horse\n139044,ship\n139045,automobile\n139046,frog\n139047,truck\n139048,cat\n139049,automobile\n139050,horse\n139051,frog\n139052,dog\n139053,cat\n139054,horse\n139055,horse\n139056,deer\n139057,frog\n139058,airplane\n139059,horse\n139060,ship\n139061,dog\n139062,dog\n139063,automobile\n139064,deer\n139065,cat\n139066,automobile\n139067,cat\n139068,frog\n139069,bird\n139070,automobile\n139071,horse\n139072,cat\n139073,automobile\n139074,deer\n139075,airplane\n139076,deer\n139077,truck\n139078,cat\n139079,truck\n139080,frog\n139081,truck\n139082,deer\n139083,cat\n139084,bird\n139085,airplane\n139086,frog\n139087,frog\n139088,automobile\n139089,airplane\n139090,cat\n139091,airplane\n139092,ship\n139093,frog\n139094,automobile\n139095,bird\n139096,bird\n139097,airplane\n139098,deer\n139099,cat\n139100,cat\n139101,truck\n139102,dog\n139103,horse\n139104,frog\n139105,horse\n139106,deer\n139107,bird\n139108,deer\n139109,automobile\n139110,truck\n139111,cat\n139112,deer\n139113,truck\n139114,truck\n139115,frog\n139116,bird\n139117,truck\n139118,truck\n139119,horse\n139120,frog\n139121,deer\n139122,airplane\n139123,truck\n139124,cat\n139125,automobile\n139126,automobile\n139127,ship\n139128,dog\n139129,airplane\n139130,dog\n139131,airplane\n139132,automobile\n139133,truck\n139134,dog\n139135,horse\n139136,frog\n139137,automobile\n139138,truck\n139139,deer\n139140,truck\n139141,frog\n139142,dog\n139143,ship\n139144,airplane\n139145,dog\n139146,automobile\n139147,frog\n139148,deer\n139149,bird\n139150,frog\n139151,deer\n139152,frog\n139153,airplane\n139154,airplane\n139155,airplane\n139156,cat\n139157,deer\n139158,dog\n139159,ship\n139160,automobile\n139161,deer\n139162,airplane\n139163,cat\n139164,ship\n139165,cat\n139166,truck\n139167,deer\n139168,bird\n139169,deer\n139170,airplane\n139171,deer\n139172,ship\n139173,truck\n139174,cat\n139175,bird\n139176,cat\n139177,horse\n139178,truck\n139179,truck\n139180,frog\n139181,deer\n139182,bird\n139183,dog\n139184,automobile\n139185,bird\n139186,ship\n139187,deer\n139188,horse\n139189,truck\n139190,airplane\n139191,horse\n139192,horse\n139193,automobile\n139194,truck\n139195,deer\n139196,cat\n139197,deer\n139198,horse\n139199,cat\n139200,airplane\n139201,truck\n139202,deer\n139203,cat\n139204,cat\n139205,airplane\n139206,ship\n139207,horse\n139208,airplane\n139209,horse\n139210,truck\n139211,deer\n139212,ship\n139213,bird\n139214,airplane\n139215,cat\n139216,horse\n139217,ship\n139218,frog\n139219,bird\n139220,cat\n139221,frog\n139222,ship\n139223,deer\n139224,frog\n139225,deer\n139226,airplane\n139227,frog\n139228,truck\n139229,ship\n139230,horse\n139231,horse\n139232,truck\n139233,horse\n139234,deer\n139235,frog\n139236,automobile\n139237,bird\n139238,ship\n139239,deer\n139240,deer\n139241,bird\n139242,deer\n139243,airplane\n139244,cat\n139245,truck\n139246,deer\n139247,truck\n139248,bird\n139249,airplane\n139250,deer\n139251,frog\n139252,airplane\n139253,dog\n139254,frog\n139255,deer\n139256,truck\n139257,frog\n139258,bird\n139259,airplane\n139260,truck\n139261,deer\n139262,horse\n139263,frog\n139264,dog\n139265,frog\n139266,airplane\n139267,cat\n139268,frog\n139269,ship\n139270,airplane\n139271,bird\n139272,automobile\n139273,cat\n139274,deer\n139275,deer\n139276,deer\n139277,airplane\n139278,truck\n139279,horse\n139280,bird\n139281,airplane\n139282,automobile\n139283,deer\n139284,cat\n139285,automobile\n139286,dog\n139287,deer\n139288,dog\n139289,frog\n139290,deer\n139291,automobile\n139292,cat\n139293,dog\n139294,dog\n139295,bird\n139296,dog\n139297,horse\n139298,ship\n139299,airplane\n139300,cat\n139301,airplane\n139302,dog\n139303,airplane\n139304,horse\n139305,ship\n139306,horse\n139307,ship\n139308,deer\n139309,airplane\n139310,dog\n139311,airplane\n139312,automobile\n139313,frog\n139314,dog\n139315,horse\n139316,bird\n139317,dog\n139318,deer\n139319,bird\n139320,airplane\n139321,cat\n139322,deer\n139323,frog\n139324,bird\n139325,dog\n139326,deer\n139327,airplane\n139328,horse\n139329,deer\n139330,frog\n139331,automobile\n139332,horse\n139333,horse\n139334,horse\n139335,dog\n139336,deer\n139337,truck\n139338,automobile\n139339,automobile\n139340,dog\n139341,horse\n139342,dog\n139343,cat\n139344,cat\n139345,automobile\n139346,frog\n139347,frog\n139348,dog\n139349,frog\n139350,ship\n139351,cat\n139352,bird\n139353,ship\n139354,dog\n139355,dog\n139356,horse\n139357,airplane\n139358,dog\n139359,horse\n139360,cat\n139361,truck\n139362,deer\n139363,truck\n139364,bird\n139365,dog\n139366,airplane\n139367,cat\n139368,horse\n139369,deer\n139370,airplane\n139371,horse\n139372,truck\n139373,truck\n139374,bird\n139375,deer\n139376,airplane\n139377,horse\n139378,deer\n139379,horse\n139380,frog\n139381,airplane\n139382,dog\n139383,frog\n139384,truck\n139385,cat\n139386,frog\n139387,ship\n139388,ship\n139389,deer\n139390,dog\n139391,automobile\n139392,ship\n139393,deer\n139394,truck\n139395,ship\n139396,horse\n139397,dog\n139398,deer\n139399,deer\n139400,automobile\n139401,truck\n139402,dog\n139403,deer\n139404,deer\n139405,airplane\n139406,dog\n139407,horse\n139408,automobile\n139409,cat\n139410,airplane\n139411,deer\n139412,truck\n139413,truck\n139414,frog\n139415,bird\n139416,horse\n139417,bird\n139418,deer\n139419,deer\n139420,airplane\n139421,horse\n139422,cat\n139423,horse\n139424,ship\n139425,deer\n139426,deer\n139427,deer\n139428,horse\n139429,frog\n139430,frog\n139431,bird\n139432,deer\n139433,deer\n139434,ship\n139435,cat\n139436,truck\n139437,frog\n139438,dog\n139439,truck\n139440,horse\n139441,frog\n139442,ship\n139443,frog\n139444,cat\n139445,truck\n139446,cat\n139447,deer\n139448,truck\n139449,automobile\n139450,cat\n139451,deer\n139452,deer\n139453,frog\n139454,deer\n139455,automobile\n139456,automobile\n139457,bird\n139458,automobile\n139459,automobile\n139460,truck\n139461,automobile\n139462,horse\n139463,horse\n139464,dog\n139465,horse\n139466,frog\n139467,deer\n139468,horse\n139469,horse\n139470,ship\n139471,dog\n139472,deer\n139473,airplane\n139474,deer\n139475,deer\n139476,deer\n139477,dog\n139478,frog\n139479,cat\n139480,bird\n139481,truck\n139482,cat\n139483,truck\n139484,airplane\n139485,truck\n139486,frog\n139487,bird\n139488,cat\n139489,horse\n139490,automobile\n139491,truck\n139492,cat\n139493,horse\n139494,airplane\n139495,frog\n139496,ship\n139497,cat\n139498,horse\n139499,dog\n139500,deer\n139501,cat\n139502,ship\n139503,frog\n139504,truck\n139505,bird\n139506,cat\n139507,horse\n139508,deer\n139509,airplane\n139510,airplane\n139511,cat\n139512,dog\n139513,cat\n139514,bird\n139515,ship\n139516,truck\n139517,truck\n139518,ship\n139519,deer\n139520,frog\n139521,deer\n139522,airplane\n139523,frog\n139524,horse\n139525,dog\n139526,cat\n139527,truck\n139528,cat\n139529,frog\n139530,bird\n139531,automobile\n139532,dog\n139533,horse\n139534,truck\n139535,frog\n139536,dog\n139537,airplane\n139538,horse\n139539,airplane\n139540,airplane\n139541,bird\n139542,deer\n139543,airplane\n139544,frog\n139545,cat\n139546,truck\n139547,frog\n139548,bird\n139549,truck\n139550,deer\n139551,bird\n139552,automobile\n139553,bird\n139554,airplane\n139555,dog\n139556,bird\n139557,horse\n139558,cat\n139559,cat\n139560,horse\n139561,ship\n139562,deer\n139563,cat\n139564,dog\n139565,truck\n139566,deer\n139567,frog\n139568,cat\n139569,frog\n139570,bird\n139571,bird\n139572,deer\n139573,cat\n139574,deer\n139575,deer\n139576,horse\n139577,deer\n139578,cat\n139579,dog\n139580,deer\n139581,horse\n139582,cat\n139583,automobile\n139584,automobile\n139585,bird\n139586,airplane\n139587,cat\n139588,deer\n139589,dog\n139590,automobile\n139591,cat\n139592,dog\n139593,deer\n139594,deer\n139595,airplane\n139596,truck\n139597,horse\n139598,airplane\n139599,frog\n139600,horse\n139601,cat\n139602,airplane\n139603,airplane\n139604,ship\n139605,deer\n139606,automobile\n139607,frog\n139608,airplane\n139609,truck\n139610,dog\n139611,bird\n139612,cat\n139613,automobile\n139614,truck\n139615,horse\n139616,frog\n139617,dog\n139618,horse\n139619,bird\n139620,ship\n139621,dog\n139622,bird\n139623,cat\n139624,deer\n139625,cat\n139626,automobile\n139627,deer\n139628,automobile\n139629,truck\n139630,dog\n139631,ship\n139632,dog\n139633,automobile\n139634,frog\n139635,truck\n139636,horse\n139637,cat\n139638,horse\n139639,bird\n139640,bird\n139641,dog\n139642,horse\n139643,truck\n139644,bird\n139645,ship\n139646,frog\n139647,dog\n139648,ship\n139649,dog\n139650,ship\n139651,bird\n139652,ship\n139653,frog\n139654,dog\n139655,horse\n139656,deer\n139657,bird\n139658,horse\n139659,automobile\n139660,dog\n139661,deer\n139662,horse\n139663,airplane\n139664,truck\n139665,ship\n139666,ship\n139667,deer\n139668,truck\n139669,deer\n139670,frog\n139671,automobile\n139672,dog\n139673,horse\n139674,automobile\n139675,cat\n139676,truck\n139677,horse\n139678,truck\n139679,truck\n139680,cat\n139681,horse\n139682,automobile\n139683,horse\n139684,bird\n139685,automobile\n139686,truck\n139687,bird\n139688,ship\n139689,deer\n139690,cat\n139691,bird\n139692,bird\n139693,bird\n139694,horse\n139695,automobile\n139696,airplane\n139697,frog\n139698,cat\n139699,horse\n139700,automobile\n139701,dog\n139702,bird\n139703,frog\n139704,frog\n139705,horse\n139706,ship\n139707,horse\n139708,truck\n139709,frog\n139710,truck\n139711,ship\n139712,ship\n139713,deer\n139714,cat\n139715,airplane\n139716,truck\n139717,truck\n139718,airplane\n139719,truck\n139720,airplane\n139721,dog\n139722,deer\n139723,horse\n139724,horse\n139725,horse\n139726,ship\n139727,truck\n139728,bird\n139729,frog\n139730,deer\n139731,cat\n139732,cat\n139733,airplane\n139734,cat\n139735,deer\n139736,deer\n139737,deer\n139738,cat\n139739,bird\n139740,truck\n139741,deer\n139742,deer\n139743,bird\n139744,deer\n139745,ship\n139746,dog\n139747,horse\n139748,deer\n139749,dog\n139750,frog\n139751,frog\n139752,automobile\n139753,dog\n139754,bird\n139755,dog\n139756,deer\n139757,frog\n139758,cat\n139759,deer\n139760,horse\n139761,frog\n139762,deer\n139763,ship\n139764,frog\n139765,deer\n139766,horse\n139767,truck\n139768,ship\n139769,dog\n139770,deer\n139771,dog\n139772,horse\n139773,automobile\n139774,automobile\n139775,dog\n139776,deer\n139777,cat\n139778,bird\n139779,frog\n139780,cat\n139781,cat\n139782,dog\n139783,deer\n139784,horse\n139785,deer\n139786,truck\n139787,dog\n139788,airplane\n139789,dog\n139790,ship\n139791,dog\n139792,deer\n139793,airplane\n139794,airplane\n139795,ship\n139796,deer\n139797,horse\n139798,frog\n139799,automobile\n139800,deer\n139801,horse\n139802,deer\n139803,automobile\n139804,cat\n139805,ship\n139806,deer\n139807,dog\n139808,dog\n139809,dog\n139810,automobile\n139811,frog\n139812,horse\n139813,deer\n139814,truck\n139815,airplane\n139816,dog\n139817,horse\n139818,deer\n139819,frog\n139820,dog\n139821,truck\n139822,cat\n139823,cat\n139824,horse\n139825,frog\n139826,cat\n139827,deer\n139828,truck\n139829,horse\n139830,frog\n139831,dog\n139832,truck\n139833,truck\n139834,airplane\n139835,cat\n139836,truck\n139837,dog\n139838,ship\n139839,airplane\n139840,ship\n139841,truck\n139842,cat\n139843,ship\n139844,ship\n139845,deer\n139846,bird\n139847,ship\n139848,frog\n139849,horse\n139850,deer\n139851,truck\n139852,cat\n139853,truck\n139854,truck\n139855,automobile\n139856,bird\n139857,deer\n139858,ship\n139859,bird\n139860,bird\n139861,ship\n139862,ship\n139863,deer\n139864,deer\n139865,dog\n139866,bird\n139867,ship\n139868,deer\n139869,airplane\n139870,deer\n139871,truck\n139872,ship\n139873,truck\n139874,frog\n139875,frog\n139876,airplane\n139877,truck\n139878,cat\n139879,horse\n139880,dog\n139881,horse\n139882,cat\n139883,ship\n139884,airplane\n139885,airplane\n139886,deer\n139887,horse\n139888,ship\n139889,dog\n139890,deer\n139891,cat\n139892,frog\n139893,frog\n139894,airplane\n139895,airplane\n139896,bird\n139897,automobile\n139898,deer\n139899,frog\n139900,bird\n139901,ship\n139902,horse\n139903,deer\n139904,cat\n139905,frog\n139906,ship\n139907,automobile\n139908,horse\n139909,truck\n139910,bird\n139911,bird\n139912,bird\n139913,dog\n139914,cat\n139915,ship\n139916,automobile\n139917,airplane\n139918,ship\n139919,bird\n139920,truck\n139921,dog\n139922,deer\n139923,dog\n139924,cat\n139925,frog\n139926,cat\n139927,cat\n139928,horse\n139929,frog\n139930,automobile\n139931,bird\n139932,dog\n139933,truck\n139934,frog\n139935,horse\n139936,bird\n139937,bird\n139938,cat\n139939,ship\n139940,airplane\n139941,cat\n139942,cat\n139943,frog\n139944,deer\n139945,bird\n139946,deer\n139947,horse\n139948,automobile\n139949,frog\n139950,truck\n139951,frog\n139952,airplane\n139953,horse\n139954,deer\n139955,frog\n139956,frog\n139957,deer\n139958,automobile\n139959,ship\n139960,ship\n139961,airplane\n139962,cat\n139963,cat\n139964,airplane\n139965,cat\n139966,ship\n139967,frog\n139968,deer\n139969,truck\n139970,cat\n139971,truck\n139972,airplane\n139973,dog\n139974,dog\n139975,bird\n139976,horse\n139977,automobile\n139978,horse\n139979,cat\n139980,automobile\n139981,bird\n139982,deer\n139983,truck\n139984,cat\n139985,dog\n139986,ship\n139987,frog\n139988,horse\n139989,ship\n139990,deer\n139991,horse\n139992,bird\n139993,dog\n139994,cat\n139995,ship\n139996,horse\n139997,horse\n139998,frog\n139999,bird\n140000,deer\n140001,automobile\n140002,automobile\n140003,dog\n140004,dog\n140005,automobile\n140006,deer\n140007,ship\n140008,cat\n140009,frog\n140010,deer\n140011,deer\n140012,deer\n140013,dog\n140014,automobile\n140015,frog\n140016,horse\n140017,deer\n140018,automobile\n140019,deer\n140020,bird\n140021,cat\n140022,truck\n140023,truck\n140024,airplane\n140025,dog\n140026,dog\n140027,bird\n140028,airplane\n140029,dog\n140030,cat\n140031,ship\n140032,ship\n140033,horse\n140034,horse\n140035,horse\n140036,cat\n140037,truck\n140038,deer\n140039,ship\n140040,dog\n140041,airplane\n140042,cat\n140043,truck\n140044,airplane\n140045,frog\n140046,dog\n140047,horse\n140048,dog\n140049,cat\n140050,bird\n140051,dog\n140052,dog\n140053,airplane\n140054,frog\n140055,deer\n140056,cat\n140057,deer\n140058,frog\n140059,truck\n140060,deer\n140061,dog\n140062,cat\n140063,deer\n140064,horse\n140065,horse\n140066,deer\n140067,deer\n140068,truck\n140069,truck\n140070,automobile\n140071,dog\n140072,horse\n140073,cat\n140074,airplane\n140075,horse\n140076,bird\n140077,horse\n140078,cat\n140079,ship\n140080,automobile\n140081,horse\n140082,dog\n140083,ship\n140084,deer\n140085,ship\n140086,ship\n140087,dog\n140088,deer\n140089,ship\n140090,dog\n140091,frog\n140092,truck\n140093,dog\n140094,frog\n140095,deer\n140096,bird\n140097,bird\n140098,bird\n140099,horse\n140100,automobile\n140101,airplane\n140102,automobile\n140103,automobile\n140104,truck\n140105,truck\n140106,dog\n140107,cat\n140108,airplane\n140109,ship\n140110,frog\n140111,truck\n140112,cat\n140113,cat\n140114,frog\n140115,cat\n140116,frog\n140117,truck\n140118,truck\n140119,dog\n140120,deer\n140121,deer\n140122,automobile\n140123,horse\n140124,frog\n140125,deer\n140126,bird\n140127,deer\n140128,airplane\n140129,cat\n140130,deer\n140131,cat\n140132,truck\n140133,truck\n140134,automobile\n140135,truck\n140136,cat\n140137,frog\n140138,horse\n140139,dog\n140140,bird\n140141,frog\n140142,automobile\n140143,cat\n140144,cat\n140145,truck\n140146,bird\n140147,automobile\n140148,cat\n140149,frog\n140150,cat\n140151,dog\n140152,ship\n140153,frog\n140154,airplane\n140155,deer\n140156,horse\n140157,ship\n140158,dog\n140159,frog\n140160,truck\n140161,frog\n140162,ship\n140163,frog\n140164,automobile\n140165,horse\n140166,bird\n140167,truck\n140168,ship\n140169,cat\n140170,horse\n140171,cat\n140172,bird\n140173,cat\n140174,deer\n140175,automobile\n140176,frog\n140177,deer\n140178,ship\n140179,airplane\n140180,frog\n140181,bird\n140182,ship\n140183,automobile\n140184,ship\n140185,bird\n140186,frog\n140187,frog\n140188,frog\n140189,horse\n140190,dog\n140191,frog\n140192,dog\n140193,frog\n140194,automobile\n140195,ship\n140196,automobile\n140197,cat\n140198,automobile\n140199,horse\n140200,cat\n140201,cat\n140202,cat\n140203,bird\n140204,automobile\n140205,truck\n140206,airplane\n140207,horse\n140208,bird\n140209,truck\n140210,horse\n140211,automobile\n140212,dog\n140213,cat\n140214,cat\n140215,truck\n140216,cat\n140217,dog\n140218,dog\n140219,ship\n140220,bird\n140221,deer\n140222,dog\n140223,cat\n140224,cat\n140225,ship\n140226,deer\n140227,deer\n140228,cat\n140229,frog\n140230,automobile\n140231,truck\n140232,deer\n140233,airplane\n140234,automobile\n140235,deer\n140236,frog\n140237,frog\n140238,deer\n140239,airplane\n140240,dog\n140241,frog\n140242,ship\n140243,ship\n140244,cat\n140245,dog\n140246,airplane\n140247,frog\n140248,cat\n140249,deer\n140250,deer\n140251,automobile\n140252,ship\n140253,horse\n140254,cat\n140255,dog\n140256,ship\n140257,bird\n140258,dog\n140259,cat\n140260,deer\n140261,cat\n140262,horse\n140263,dog\n140264,automobile\n140265,truck\n140266,cat\n140267,frog\n140268,horse\n140269,automobile\n140270,deer\n140271,horse\n140272,dog\n140273,deer\n140274,airplane\n140275,automobile\n140276,ship\n140277,bird\n140278,cat\n140279,automobile\n140280,cat\n140281,bird\n140282,dog\n140283,dog\n140284,horse\n140285,ship\n140286,bird\n140287,deer\n140288,deer\n140289,deer\n140290,airplane\n140291,frog\n140292,frog\n140293,cat\n140294,deer\n140295,frog\n140296,dog\n140297,bird\n140298,bird\n140299,cat\n140300,automobile\n140301,truck\n140302,truck\n140303,horse\n140304,deer\n140305,frog\n140306,ship\n140307,cat\n140308,airplane\n140309,deer\n140310,bird\n140311,frog\n140312,truck\n140313,deer\n140314,truck\n140315,frog\n140316,airplane\n140317,airplane\n140318,horse\n140319,airplane\n140320,truck\n140321,frog\n140322,automobile\n140323,bird\n140324,deer\n140325,truck\n140326,airplane\n140327,airplane\n140328,truck\n140329,truck\n140330,bird\n140331,bird\n140332,automobile\n140333,dog\n140334,cat\n140335,bird\n140336,cat\n140337,horse\n140338,cat\n140339,bird\n140340,automobile\n140341,frog\n140342,truck\n140343,ship\n140344,ship\n140345,ship\n140346,truck\n140347,horse\n140348,horse\n140349,dog\n140350,cat\n140351,deer\n140352,bird\n140353,cat\n140354,deer\n140355,frog\n140356,cat\n140357,automobile\n140358,frog\n140359,horse\n140360,truck\n140361,horse\n140362,truck\n140363,deer\n140364,cat\n140365,horse\n140366,dog\n140367,deer\n140368,horse\n140369,frog\n140370,frog\n140371,cat\n140372,truck\n140373,ship\n140374,automobile\n140375,ship\n140376,bird\n140377,deer\n140378,airplane\n140379,airplane\n140380,horse\n140381,deer\n140382,horse\n140383,frog\n140384,ship\n140385,truck\n140386,ship\n140387,deer\n140388,airplane\n140389,truck\n140390,ship\n140391,frog\n140392,bird\n140393,frog\n140394,airplane\n140395,deer\n140396,automobile\n140397,cat\n140398,ship\n140399,dog\n140400,frog\n140401,horse\n140402,dog\n140403,horse\n140404,frog\n140405,truck\n140406,dog\n140407,bird\n140408,horse\n140409,frog\n140410,ship\n140411,frog\n140412,truck\n140413,cat\n140414,horse\n140415,cat\n140416,bird\n140417,deer\n140418,cat\n140419,deer\n140420,horse\n140421,frog\n140422,bird\n140423,deer\n140424,airplane\n140425,truck\n140426,deer\n140427,deer\n140428,horse\n140429,frog\n140430,cat\n140431,horse\n140432,bird\n140433,cat\n140434,cat\n140435,deer\n140436,cat\n140437,cat\n140438,cat\n140439,frog\n140440,airplane\n140441,cat\n140442,truck\n140443,horse\n140444,cat\n140445,dog\n140446,cat\n140447,frog\n140448,horse\n140449,dog\n140450,deer\n140451,cat\n140452,dog\n140453,automobile\n140454,dog\n140455,truck\n140456,deer\n140457,truck\n140458,horse\n140459,automobile\n140460,cat\n140461,ship\n140462,airplane\n140463,horse\n140464,airplane\n140465,bird\n140466,horse\n140467,dog\n140468,cat\n140469,horse\n140470,automobile\n140471,truck\n140472,truck\n140473,horse\n140474,deer\n140475,frog\n140476,truck\n140477,bird\n140478,frog\n140479,bird\n140480,dog\n140481,frog\n140482,dog\n140483,horse\n140484,automobile\n140485,truck\n140486,truck\n140487,airplane\n140488,ship\n140489,frog\n140490,truck\n140491,automobile\n140492,cat\n140493,ship\n140494,bird\n140495,horse\n140496,airplane\n140497,cat\n140498,bird\n140499,bird\n140500,dog\n140501,automobile\n140502,cat\n140503,truck\n140504,deer\n140505,ship\n140506,truck\n140507,deer\n140508,truck\n140509,ship\n140510,truck\n140511,dog\n140512,ship\n140513,deer\n140514,cat\n140515,ship\n140516,bird\n140517,ship\n140518,bird\n140519,ship\n140520,automobile\n140521,deer\n140522,ship\n140523,horse\n140524,horse\n140525,dog\n140526,truck\n140527,automobile\n140528,dog\n140529,deer\n140530,deer\n140531,deer\n140532,deer\n140533,frog\n140534,truck\n140535,horse\n140536,dog\n140537,cat\n140538,automobile\n140539,cat\n140540,horse\n140541,truck\n140542,truck\n140543,deer\n140544,frog\n140545,cat\n140546,frog\n140547,airplane\n140548,bird\n140549,ship\n140550,automobile\n140551,horse\n140552,bird\n140553,deer\n140554,deer\n140555,dog\n140556,bird\n140557,truck\n140558,airplane\n140559,airplane\n140560,cat\n140561,cat\n140562,airplane\n140563,bird\n140564,frog\n140565,dog\n140566,deer\n140567,horse\n140568,cat\n140569,frog\n140570,ship\n140571,horse\n140572,deer\n140573,ship\n140574,bird\n140575,airplane\n140576,airplane\n140577,frog\n140578,bird\n140579,truck\n140580,deer\n140581,deer\n140582,bird\n140583,dog\n140584,deer\n140585,ship\n140586,frog\n140587,dog\n140588,truck\n140589,frog\n140590,horse\n140591,bird\n140592,bird\n140593,dog\n140594,automobile\n140595,dog\n140596,frog\n140597,ship\n140598,cat\n140599,ship\n140600,horse\n140601,frog\n140602,truck\n140603,deer\n140604,automobile\n140605,automobile\n140606,truck\n140607,bird\n140608,deer\n140609,cat\n140610,cat\n140611,horse\n140612,cat\n140613,ship\n140614,frog\n140615,deer\n140616,cat\n140617,truck\n140618,bird\n140619,deer\n140620,truck\n140621,cat\n140622,frog\n140623,deer\n140624,automobile\n140625,automobile\n140626,deer\n140627,bird\n140628,horse\n140629,horse\n140630,ship\n140631,cat\n140632,airplane\n140633,airplane\n140634,ship\n140635,deer\n140636,bird\n140637,bird\n140638,frog\n140639,cat\n140640,cat\n140641,cat\n140642,deer\n140643,cat\n140644,dog\n140645,deer\n140646,cat\n140647,horse\n140648,cat\n140649,automobile\n140650,deer\n140651,deer\n140652,deer\n140653,cat\n140654,truck\n140655,frog\n140656,airplane\n140657,automobile\n140658,ship\n140659,dog\n140660,cat\n140661,ship\n140662,airplane\n140663,bird\n140664,frog\n140665,frog\n140666,horse\n140667,horse\n140668,airplane\n140669,dog\n140670,horse\n140671,horse\n140672,truck\n140673,bird\n140674,frog\n140675,truck\n140676,deer\n140677,cat\n140678,ship\n140679,automobile\n140680,airplane\n140681,automobile\n140682,deer\n140683,deer\n140684,cat\n140685,bird\n140686,truck\n140687,truck\n140688,deer\n140689,airplane\n140690,automobile\n140691,airplane\n140692,deer\n140693,deer\n140694,truck\n140695,frog\n140696,frog\n140697,automobile\n140698,frog\n140699,automobile\n140700,cat\n140701,automobile\n140702,ship\n140703,horse\n140704,airplane\n140705,airplane\n140706,frog\n140707,frog\n140708,frog\n140709,cat\n140710,deer\n140711,ship\n140712,cat\n140713,automobile\n140714,deer\n140715,dog\n140716,cat\n140717,truck\n140718,automobile\n140719,ship\n140720,cat\n140721,horse\n140722,frog\n140723,cat\n140724,airplane\n140725,frog\n140726,frog\n140727,ship\n140728,truck\n140729,ship\n140730,deer\n140731,airplane\n140732,ship\n140733,horse\n140734,bird\n140735,airplane\n140736,automobile\n140737,cat\n140738,horse\n140739,frog\n140740,frog\n140741,horse\n140742,frog\n140743,frog\n140744,truck\n140745,airplane\n140746,truck\n140747,bird\n140748,dog\n140749,automobile\n140750,dog\n140751,deer\n140752,frog\n140753,frog\n140754,horse\n140755,cat\n140756,horse\n140757,automobile\n140758,dog\n140759,cat\n140760,bird\n140761,ship\n140762,airplane\n140763,ship\n140764,deer\n140765,cat\n140766,airplane\n140767,dog\n140768,deer\n140769,automobile\n140770,deer\n140771,truck\n140772,automobile\n140773,truck\n140774,bird\n140775,automobile\n140776,dog\n140777,frog\n140778,truck\n140779,deer\n140780,airplane\n140781,dog\n140782,cat\n140783,frog\n140784,frog\n140785,cat\n140786,cat\n140787,bird\n140788,frog\n140789,horse\n140790,automobile\n140791,dog\n140792,deer\n140793,bird\n140794,dog\n140795,dog\n140796,dog\n140797,dog\n140798,ship\n140799,truck\n140800,bird\n140801,frog\n140802,horse\n140803,ship\n140804,truck\n140805,deer\n140806,truck\n140807,bird\n140808,cat\n140809,airplane\n140810,frog\n140811,frog\n140812,truck\n140813,deer\n140814,deer\n140815,deer\n140816,deer\n140817,truck\n140818,frog\n140819,horse\n140820,bird\n140821,truck\n140822,horse\n140823,deer\n140824,automobile\n140825,dog\n140826,ship\n140827,ship\n140828,dog\n140829,truck\n140830,automobile\n140831,bird\n140832,bird\n140833,cat\n140834,horse\n140835,automobile\n140836,deer\n140837,deer\n140838,horse\n140839,horse\n140840,bird\n140841,airplane\n140842,deer\n140843,dog\n140844,deer\n140845,airplane\n140846,frog\n140847,truck\n140848,cat\n140849,bird\n140850,bird\n140851,airplane\n140852,truck\n140853,truck\n140854,deer\n140855,cat\n140856,deer\n140857,deer\n140858,dog\n140859,horse\n140860,frog\n140861,deer\n140862,cat\n140863,automobile\n140864,cat\n140865,dog\n140866,truck\n140867,automobile\n140868,automobile\n140869,bird\n140870,truck\n140871,horse\n140872,bird\n140873,airplane\n140874,truck\n140875,automobile\n140876,deer\n140877,frog\n140878,bird\n140879,horse\n140880,truck\n140881,bird\n140882,horse\n140883,dog\n140884,airplane\n140885,cat\n140886,cat\n140887,bird\n140888,dog\n140889,horse\n140890,automobile\n140891,dog\n140892,deer\n140893,deer\n140894,frog\n140895,truck\n140896,dog\n140897,truck\n140898,automobile\n140899,cat\n140900,deer\n140901,truck\n140902,truck\n140903,horse\n140904,horse\n140905,dog\n140906,automobile\n140907,automobile\n140908,deer\n140909,automobile\n140910,airplane\n140911,airplane\n140912,cat\n140913,truck\n140914,cat\n140915,dog\n140916,frog\n140917,cat\n140918,dog\n140919,frog\n140920,airplane\n140921,truck\n140922,ship\n140923,ship\n140924,dog\n140925,horse\n140926,cat\n140927,frog\n140928,ship\n140929,deer\n140930,deer\n140931,frog\n140932,deer\n140933,cat\n140934,frog\n140935,bird\n140936,cat\n140937,truck\n140938,bird\n140939,truck\n140940,truck\n140941,airplane\n140942,airplane\n140943,truck\n140944,cat\n140945,bird\n140946,deer\n140947,bird\n140948,deer\n140949,frog\n140950,horse\n140951,truck\n140952,deer\n140953,bird\n140954,deer\n140955,dog\n140956,deer\n140957,airplane\n140958,horse\n140959,deer\n140960,dog\n140961,frog\n140962,frog\n140963,horse\n140964,deer\n140965,ship\n140966,deer\n140967,automobile\n140968,cat\n140969,horse\n140970,bird\n140971,ship\n140972,bird\n140973,truck\n140974,automobile\n140975,bird\n140976,dog\n140977,automobile\n140978,truck\n140979,horse\n140980,frog\n140981,deer\n140982,horse\n140983,ship\n140984,frog\n140985,truck\n140986,deer\n140987,bird\n140988,horse\n140989,deer\n140990,deer\n140991,frog\n140992,bird\n140993,ship\n140994,automobile\n140995,cat\n140996,frog\n140997,cat\n140998,automobile\n140999,frog\n141000,airplane\n141001,cat\n141002,truck\n141003,airplane\n141004,dog\n141005,dog\n141006,truck\n141007,horse\n141008,truck\n141009,cat\n141010,automobile\n141011,cat\n141012,cat\n141013,bird\n141014,bird\n141015,bird\n141016,ship\n141017,cat\n141018,deer\n141019,dog\n141020,frog\n141021,deer\n141022,truck\n141023,truck\n141024,deer\n141025,bird\n141026,cat\n141027,cat\n141028,frog\n141029,truck\n141030,airplane\n141031,frog\n141032,horse\n141033,deer\n141034,frog\n141035,dog\n141036,airplane\n141037,ship\n141038,truck\n141039,horse\n141040,airplane\n141041,automobile\n141042,cat\n141043,automobile\n141044,truck\n141045,bird\n141046,truck\n141047,bird\n141048,deer\n141049,automobile\n141050,deer\n141051,frog\n141052,deer\n141053,dog\n141054,frog\n141055,airplane\n141056,airplane\n141057,cat\n141058,airplane\n141059,ship\n141060,truck\n141061,frog\n141062,horse\n141063,frog\n141064,ship\n141065,airplane\n141066,truck\n141067,deer\n141068,horse\n141069,airplane\n141070,deer\n141071,frog\n141072,airplane\n141073,frog\n141074,automobile\n141075,truck\n141076,cat\n141077,airplane\n141078,frog\n141079,dog\n141080,automobile\n141081,cat\n141082,ship\n141083,deer\n141084,dog\n141085,bird\n141086,deer\n141087,dog\n141088,cat\n141089,cat\n141090,bird\n141091,cat\n141092,truck\n141093,frog\n141094,deer\n141095,frog\n141096,bird\n141097,automobile\n141098,frog\n141099,automobile\n141100,frog\n141101,bird\n141102,frog\n141103,cat\n141104,cat\n141105,airplane\n141106,frog\n141107,airplane\n141108,cat\n141109,automobile\n141110,ship\n141111,dog\n141112,cat\n141113,cat\n141114,frog\n141115,automobile\n141116,deer\n141117,frog\n141118,cat\n141119,ship\n141120,horse\n141121,horse\n141122,cat\n141123,bird\n141124,ship\n141125,dog\n141126,deer\n141127,ship\n141128,cat\n141129,horse\n141130,automobile\n141131,airplane\n141132,airplane\n141133,deer\n141134,truck\n141135,bird\n141136,bird\n141137,truck\n141138,frog\n141139,bird\n141140,cat\n141141,truck\n141142,dog\n141143,horse\n141144,ship\n141145,truck\n141146,automobile\n141147,automobile\n141148,deer\n141149,cat\n141150,frog\n141151,frog\n141152,dog\n141153,cat\n141154,airplane\n141155,cat\n141156,frog\n141157,truck\n141158,cat\n141159,airplane\n141160,dog\n141161,dog\n141162,automobile\n141163,cat\n141164,deer\n141165,dog\n141166,deer\n141167,frog\n141168,horse\n141169,deer\n141170,dog\n141171,truck\n141172,ship\n141173,truck\n141174,horse\n141175,horse\n141176,truck\n141177,truck\n141178,horse\n141179,airplane\n141180,dog\n141181,cat\n141182,horse\n141183,cat\n141184,horse\n141185,airplane\n141186,dog\n141187,cat\n141188,horse\n141189,bird\n141190,ship\n141191,dog\n141192,dog\n141193,cat\n141194,horse\n141195,ship\n141196,horse\n141197,airplane\n141198,ship\n141199,cat\n141200,ship\n141201,airplane\n141202,frog\n141203,cat\n141204,airplane\n141205,airplane\n141206,ship\n141207,horse\n141208,automobile\n141209,truck\n141210,dog\n141211,truck\n141212,deer\n141213,airplane\n141214,ship\n141215,frog\n141216,truck\n141217,bird\n141218,automobile\n141219,ship\n141220,deer\n141221,deer\n141222,airplane\n141223,deer\n141224,horse\n141225,truck\n141226,truck\n141227,dog\n141228,automobile\n141229,cat\n141230,ship\n141231,cat\n141232,bird\n141233,airplane\n141234,dog\n141235,deer\n141236,frog\n141237,horse\n141238,bird\n141239,ship\n141240,deer\n141241,frog\n141242,truck\n141243,airplane\n141244,ship\n141245,truck\n141246,bird\n141247,deer\n141248,automobile\n141249,ship\n141250,horse\n141251,horse\n141252,deer\n141253,bird\n141254,bird\n141255,truck\n141256,frog\n141257,ship\n141258,ship\n141259,bird\n141260,cat\n141261,truck\n141262,dog\n141263,automobile\n141264,deer\n141265,automobile\n141266,bird\n141267,airplane\n141268,frog\n141269,bird\n141270,frog\n141271,cat\n141272,truck\n141273,cat\n141274,cat\n141275,cat\n141276,truck\n141277,airplane\n141278,airplane\n141279,airplane\n141280,automobile\n141281,bird\n141282,cat\n141283,automobile\n141284,cat\n141285,cat\n141286,horse\n141287,automobile\n141288,frog\n141289,dog\n141290,airplane\n141291,bird\n141292,ship\n141293,deer\n141294,truck\n141295,bird\n141296,frog\n141297,frog\n141298,cat\n141299,automobile\n141300,truck\n141301,frog\n141302,automobile\n141303,ship\n141304,airplane\n141305,deer\n141306,deer\n141307,airplane\n141308,truck\n141309,truck\n141310,airplane\n141311,horse\n141312,frog\n141313,bird\n141314,automobile\n141315,ship\n141316,cat\n141317,dog\n141318,ship\n141319,ship\n141320,cat\n141321,deer\n141322,dog\n141323,truck\n141324,cat\n141325,dog\n141326,ship\n141327,truck\n141328,cat\n141329,dog\n141330,deer\n141331,airplane\n141332,deer\n141333,dog\n141334,dog\n141335,deer\n141336,deer\n141337,frog\n141338,truck\n141339,deer\n141340,cat\n141341,deer\n141342,bird\n141343,airplane\n141344,ship\n141345,airplane\n141346,truck\n141347,dog\n141348,airplane\n141349,dog\n141350,dog\n141351,dog\n141352,truck\n141353,dog\n141354,cat\n141355,truck\n141356,frog\n141357,bird\n141358,automobile\n141359,bird\n141360,ship\n141361,dog\n141362,dog\n141363,horse\n141364,bird\n141365,airplane\n141366,automobile\n141367,horse\n141368,horse\n141369,deer\n141370,deer\n141371,horse\n141372,cat\n141373,automobile\n141374,deer\n141375,automobile\n141376,horse\n141377,automobile\n141378,deer\n141379,automobile\n141380,airplane\n141381,bird\n141382,ship\n141383,truck\n141384,ship\n141385,ship\n141386,frog\n141387,truck\n141388,horse\n141389,ship\n141390,horse\n141391,truck\n141392,airplane\n141393,frog\n141394,ship\n141395,automobile\n141396,bird\n141397,dog\n141398,deer\n141399,truck\n141400,horse\n141401,bird\n141402,dog\n141403,ship\n141404,deer\n141405,airplane\n141406,truck\n141407,truck\n141408,automobile\n141409,frog\n141410,airplane\n141411,deer\n141412,truck\n141413,ship\n141414,truck\n141415,cat\n141416,cat\n141417,horse\n141418,dog\n141419,deer\n141420,horse\n141421,truck\n141422,cat\n141423,bird\n141424,truck\n141425,frog\n141426,ship\n141427,truck\n141428,deer\n141429,horse\n141430,cat\n141431,ship\n141432,airplane\n141433,bird\n141434,horse\n141435,deer\n141436,truck\n141437,horse\n141438,deer\n141439,frog\n141440,cat\n141441,frog\n141442,truck\n141443,truck\n141444,bird\n141445,truck\n141446,horse\n141447,dog\n141448,dog\n141449,automobile\n141450,bird\n141451,bird\n141452,airplane\n141453,horse\n141454,bird\n141455,airplane\n141456,cat\n141457,cat\n141458,horse\n141459,ship\n141460,airplane\n141461,bird\n141462,frog\n141463,cat\n141464,dog\n141465,truck\n141466,bird\n141467,deer\n141468,deer\n141469,automobile\n141470,bird\n141471,ship\n141472,cat\n141473,dog\n141474,bird\n141475,deer\n141476,cat\n141477,frog\n141478,truck\n141479,deer\n141480,deer\n141481,frog\n141482,automobile\n141483,airplane\n141484,dog\n141485,ship\n141486,dog\n141487,horse\n141488,ship\n141489,bird\n141490,bird\n141491,frog\n141492,ship\n141493,airplane\n141494,horse\n141495,dog\n141496,bird\n141497,ship\n141498,automobile\n141499,ship\n141500,airplane\n141501,bird\n141502,automobile\n141503,horse\n141504,frog\n141505,truck\n141506,ship\n141507,deer\n141508,dog\n141509,horse\n141510,ship\n141511,frog\n141512,dog\n141513,bird\n141514,cat\n141515,truck\n141516,bird\n141517,cat\n141518,automobile\n141519,frog\n141520,frog\n141521,truck\n141522,airplane\n141523,deer\n141524,automobile\n141525,frog\n141526,cat\n141527,bird\n141528,automobile\n141529,dog\n141530,dog\n141531,deer\n141532,truck\n141533,frog\n141534,horse\n141535,bird\n141536,cat\n141537,airplane\n141538,horse\n141539,cat\n141540,bird\n141541,airplane\n141542,ship\n141543,deer\n141544,horse\n141545,bird\n141546,truck\n141547,bird\n141548,deer\n141549,truck\n141550,bird\n141551,bird\n141552,dog\n141553,dog\n141554,bird\n141555,automobile\n141556,cat\n141557,bird\n141558,deer\n141559,bird\n141560,deer\n141561,cat\n141562,truck\n141563,truck\n141564,deer\n141565,bird\n141566,airplane\n141567,ship\n141568,airplane\n141569,bird\n141570,ship\n141571,deer\n141572,bird\n141573,dog\n141574,ship\n141575,deer\n141576,cat\n141577,ship\n141578,deer\n141579,frog\n141580,airplane\n141581,cat\n141582,deer\n141583,cat\n141584,bird\n141585,truck\n141586,bird\n141587,horse\n141588,bird\n141589,ship\n141590,dog\n141591,truck\n141592,cat\n141593,frog\n141594,cat\n141595,deer\n141596,ship\n141597,deer\n141598,dog\n141599,ship\n141600,horse\n141601,cat\n141602,frog\n141603,truck\n141604,frog\n141605,frog\n141606,airplane\n141607,dog\n141608,deer\n141609,deer\n141610,frog\n141611,ship\n141612,cat\n141613,airplane\n141614,horse\n141615,truck\n141616,airplane\n141617,truck\n141618,dog\n141619,dog\n141620,deer\n141621,frog\n141622,horse\n141623,ship\n141624,horse\n141625,dog\n141626,frog\n141627,ship\n141628,cat\n141629,bird\n141630,cat\n141631,airplane\n141632,truck\n141633,deer\n141634,ship\n141635,deer\n141636,airplane\n141637,bird\n141638,deer\n141639,automobile\n141640,dog\n141641,horse\n141642,truck\n141643,truck\n141644,ship\n141645,cat\n141646,cat\n141647,dog\n141648,deer\n141649,automobile\n141650,frog\n141651,truck\n141652,ship\n141653,frog\n141654,ship\n141655,cat\n141656,bird\n141657,horse\n141658,horse\n141659,horse\n141660,dog\n141661,horse\n141662,truck\n141663,dog\n141664,horse\n141665,cat\n141666,airplane\n141667,cat\n141668,deer\n141669,airplane\n141670,frog\n141671,ship\n141672,cat\n141673,ship\n141674,horse\n141675,cat\n141676,bird\n141677,truck\n141678,deer\n141679,automobile\n141680,airplane\n141681,deer\n141682,automobile\n141683,horse\n141684,airplane\n141685,deer\n141686,cat\n141687,cat\n141688,truck\n141689,horse\n141690,ship\n141691,bird\n141692,deer\n141693,frog\n141694,deer\n141695,frog\n141696,bird\n141697,truck\n141698,bird\n141699,ship\n141700,truck\n141701,bird\n141702,automobile\n141703,bird\n141704,ship\n141705,cat\n141706,bird\n141707,dog\n141708,ship\n141709,dog\n141710,horse\n141711,bird\n141712,automobile\n141713,cat\n141714,frog\n141715,automobile\n141716,automobile\n141717,horse\n141718,deer\n141719,frog\n141720,airplane\n141721,deer\n141722,horse\n141723,cat\n141724,bird\n141725,frog\n141726,bird\n141727,bird\n141728,frog\n141729,truck\n141730,frog\n141731,deer\n141732,truck\n141733,airplane\n141734,truck\n141735,horse\n141736,horse\n141737,cat\n141738,frog\n141739,frog\n141740,truck\n141741,truck\n141742,horse\n141743,airplane\n141744,dog\n141745,frog\n141746,frog\n141747,dog\n141748,ship\n141749,deer\n141750,airplane\n141751,ship\n141752,dog\n141753,airplane\n141754,horse\n141755,deer\n141756,cat\n141757,cat\n141758,airplane\n141759,ship\n141760,truck\n141761,frog\n141762,truck\n141763,bird\n141764,bird\n141765,airplane\n141766,automobile\n141767,deer\n141768,cat\n141769,bird\n141770,truck\n141771,dog\n141772,airplane\n141773,truck\n141774,ship\n141775,cat\n141776,deer\n141777,deer\n141778,truck\n141779,truck\n141780,dog\n141781,truck\n141782,frog\n141783,truck\n141784,cat\n141785,dog\n141786,frog\n141787,frog\n141788,horse\n141789,bird\n141790,ship\n141791,cat\n141792,truck\n141793,airplane\n141794,airplane\n141795,frog\n141796,truck\n141797,frog\n141798,airplane\n141799,airplane\n141800,airplane\n141801,horse\n141802,airplane\n141803,cat\n141804,cat\n141805,cat\n141806,airplane\n141807,truck\n141808,frog\n141809,dog\n141810,horse\n141811,truck\n141812,horse\n141813,truck\n141814,horse\n141815,truck\n141816,horse\n141817,bird\n141818,truck\n141819,frog\n141820,truck\n141821,cat\n141822,bird\n141823,truck\n141824,deer\n141825,bird\n141826,dog\n141827,truck\n141828,bird\n141829,airplane\n141830,horse\n141831,cat\n141832,frog\n141833,horse\n141834,deer\n141835,dog\n141836,truck\n141837,frog\n141838,deer\n141839,airplane\n141840,deer\n141841,truck\n141842,bird\n141843,truck\n141844,horse\n141845,cat\n141846,automobile\n141847,frog\n141848,cat\n141849,airplane\n141850,horse\n141851,deer\n141852,deer\n141853,horse\n141854,dog\n141855,dog\n141856,dog\n141857,bird\n141858,ship\n141859,bird\n141860,deer\n141861,frog\n141862,automobile\n141863,horse\n141864,horse\n141865,frog\n141866,deer\n141867,dog\n141868,deer\n141869,airplane\n141870,ship\n141871,frog\n141872,truck\n141873,truck\n141874,deer\n141875,truck\n141876,deer\n141877,frog\n141878,deer\n141879,ship\n141880,deer\n141881,airplane\n141882,dog\n141883,cat\n141884,automobile\n141885,bird\n141886,dog\n141887,horse\n141888,frog\n141889,truck\n141890,bird\n141891,dog\n141892,deer\n141893,automobile\n141894,horse\n141895,frog\n141896,cat\n141897,automobile\n141898,ship\n141899,dog\n141900,automobile\n141901,deer\n141902,truck\n141903,cat\n141904,deer\n141905,deer\n141906,cat\n141907,dog\n141908,cat\n141909,bird\n141910,airplane\n141911,airplane\n141912,frog\n141913,truck\n141914,bird\n141915,ship\n141916,bird\n141917,horse\n141918,ship\n141919,ship\n141920,dog\n141921,automobile\n141922,airplane\n141923,horse\n141924,airplane\n141925,bird\n141926,deer\n141927,deer\n141928,frog\n141929,truck\n141930,frog\n141931,horse\n141932,frog\n141933,horse\n141934,cat\n141935,cat\n141936,frog\n141937,cat\n141938,airplane\n141939,airplane\n141940,horse\n141941,horse\n141942,deer\n141943,dog\n141944,frog\n141945,bird\n141946,frog\n141947,ship\n141948,dog\n141949,dog\n141950,horse\n141951,frog\n141952,frog\n141953,truck\n141954,truck\n141955,dog\n141956,automobile\n141957,dog\n141958,cat\n141959,automobile\n141960,horse\n141961,automobile\n141962,ship\n141963,horse\n141964,truck\n141965,cat\n141966,airplane\n141967,deer\n141968,deer\n141969,cat\n141970,horse\n141971,deer\n141972,deer\n141973,bird\n141974,horse\n141975,cat\n141976,frog\n141977,deer\n141978,dog\n141979,airplane\n141980,truck\n141981,deer\n141982,deer\n141983,truck\n141984,dog\n141985,automobile\n141986,horse\n141987,airplane\n141988,cat\n141989,frog\n141990,cat\n141991,ship\n141992,ship\n141993,automobile\n141994,dog\n141995,truck\n141996,horse\n141997,dog\n141998,automobile\n141999,frog\n142000,airplane\n142001,deer\n142002,frog\n142003,ship\n142004,deer\n142005,dog\n142006,automobile\n142007,bird\n142008,automobile\n142009,horse\n142010,deer\n142011,horse\n142012,dog\n142013,horse\n142014,ship\n142015,deer\n142016,frog\n142017,dog\n142018,automobile\n142019,deer\n142020,truck\n142021,cat\n142022,dog\n142023,deer\n142024,cat\n142025,cat\n142026,dog\n142027,deer\n142028,frog\n142029,cat\n142030,deer\n142031,horse\n142032,truck\n142033,truck\n142034,horse\n142035,deer\n142036,cat\n142037,deer\n142038,frog\n142039,ship\n142040,airplane\n142041,automobile\n142042,truck\n142043,cat\n142044,dog\n142045,airplane\n142046,automobile\n142047,automobile\n142048,deer\n142049,truck\n142050,cat\n142051,truck\n142052,deer\n142053,deer\n142054,truck\n142055,deer\n142056,deer\n142057,ship\n142058,airplane\n142059,deer\n142060,airplane\n142061,truck\n142062,ship\n142063,frog\n142064,automobile\n142065,dog\n142066,dog\n142067,truck\n142068,bird\n142069,deer\n142070,ship\n142071,deer\n142072,deer\n142073,dog\n142074,cat\n142075,deer\n142076,deer\n142077,horse\n142078,frog\n142079,truck\n142080,frog\n142081,cat\n142082,automobile\n142083,frog\n142084,truck\n142085,ship\n142086,airplane\n142087,dog\n142088,cat\n142089,automobile\n142090,cat\n142091,airplane\n142092,ship\n142093,cat\n142094,dog\n142095,bird\n142096,frog\n142097,bird\n142098,truck\n142099,horse\n142100,airplane\n142101,horse\n142102,cat\n142103,automobile\n142104,cat\n142105,ship\n142106,airplane\n142107,dog\n142108,dog\n142109,frog\n142110,deer\n142111,horse\n142112,cat\n142113,deer\n142114,horse\n142115,frog\n142116,truck\n142117,bird\n142118,airplane\n142119,deer\n142120,bird\n142121,frog\n142122,airplane\n142123,truck\n142124,frog\n142125,ship\n142126,airplane\n142127,horse\n142128,ship\n142129,cat\n142130,frog\n142131,frog\n142132,airplane\n142133,airplane\n142134,cat\n142135,cat\n142136,cat\n142137,bird\n142138,frog\n142139,automobile\n142140,cat\n142141,airplane\n142142,frog\n142143,truck\n142144,horse\n142145,truck\n142146,ship\n142147,automobile\n142148,frog\n142149,bird\n142150,cat\n142151,ship\n142152,dog\n142153,deer\n142154,deer\n142155,deer\n142156,deer\n142157,truck\n142158,cat\n142159,cat\n142160,truck\n142161,cat\n142162,dog\n142163,deer\n142164,dog\n142165,cat\n142166,truck\n142167,frog\n142168,deer\n142169,deer\n142170,cat\n142171,cat\n142172,truck\n142173,bird\n142174,horse\n142175,cat\n142176,dog\n142177,cat\n142178,ship\n142179,automobile\n142180,automobile\n142181,ship\n142182,bird\n142183,truck\n142184,bird\n142185,airplane\n142186,truck\n142187,bird\n142188,cat\n142189,cat\n142190,deer\n142191,truck\n142192,ship\n142193,frog\n142194,truck\n142195,ship\n142196,deer\n142197,airplane\n142198,dog\n142199,cat\n142200,automobile\n142201,frog\n142202,dog\n142203,dog\n142204,ship\n142205,cat\n142206,airplane\n142207,bird\n142208,bird\n142209,airplane\n142210,cat\n142211,frog\n142212,deer\n142213,bird\n142214,airplane\n142215,deer\n142216,truck\n142217,automobile\n142218,frog\n142219,airplane\n142220,horse\n142221,frog\n142222,ship\n142223,deer\n142224,horse\n142225,airplane\n142226,cat\n142227,bird\n142228,cat\n142229,frog\n142230,bird\n142231,deer\n142232,bird\n142233,cat\n142234,dog\n142235,bird\n142236,cat\n142237,cat\n142238,truck\n142239,frog\n142240,ship\n142241,dog\n142242,cat\n142243,bird\n142244,dog\n142245,frog\n142246,ship\n142247,bird\n142248,frog\n142249,dog\n142250,bird\n142251,frog\n142252,deer\n142253,truck\n142254,frog\n142255,cat\n142256,bird\n142257,truck\n142258,dog\n142259,ship\n142260,bird\n142261,deer\n142262,ship\n142263,deer\n142264,horse\n142265,cat\n142266,dog\n142267,airplane\n142268,ship\n142269,airplane\n142270,deer\n142271,frog\n142272,automobile\n142273,airplane\n142274,deer\n142275,airplane\n142276,frog\n142277,deer\n142278,cat\n142279,deer\n142280,bird\n142281,frog\n142282,horse\n142283,airplane\n142284,deer\n142285,horse\n142286,frog\n142287,horse\n142288,ship\n142289,cat\n142290,frog\n142291,cat\n142292,cat\n142293,cat\n142294,frog\n142295,truck\n142296,deer\n142297,cat\n142298,cat\n142299,airplane\n142300,ship\n142301,truck\n142302,frog\n142303,cat\n142304,airplane\n142305,ship\n142306,automobile\n142307,automobile\n142308,deer\n142309,truck\n142310,deer\n142311,cat\n142312,frog\n142313,deer\n142314,airplane\n142315,cat\n142316,bird\n142317,frog\n142318,automobile\n142319,airplane\n142320,horse\n142321,truck\n142322,automobile\n142323,dog\n142324,horse\n142325,airplane\n142326,bird\n142327,frog\n142328,automobile\n142329,frog\n142330,horse\n142331,airplane\n142332,deer\n142333,truck\n142334,cat\n142335,truck\n142336,ship\n142337,horse\n142338,dog\n142339,bird\n142340,frog\n142341,airplane\n142342,cat\n142343,deer\n142344,airplane\n142345,bird\n142346,dog\n142347,ship\n142348,airplane\n142349,truck\n142350,automobile\n142351,frog\n142352,cat\n142353,bird\n142354,truck\n142355,ship\n142356,horse\n142357,deer\n142358,deer\n142359,dog\n142360,horse\n142361,ship\n142362,deer\n142363,frog\n142364,frog\n142365,horse\n142366,ship\n142367,cat\n142368,bird\n142369,bird\n142370,frog\n142371,horse\n142372,frog\n142373,frog\n142374,cat\n142375,frog\n142376,deer\n142377,truck\n142378,dog\n142379,truck\n142380,truck\n142381,truck\n142382,bird\n142383,deer\n142384,automobile\n142385,ship\n142386,bird\n142387,airplane\n142388,truck\n142389,frog\n142390,bird\n142391,deer\n142392,truck\n142393,deer\n142394,deer\n142395,frog\n142396,frog\n142397,cat\n142398,automobile\n142399,deer\n142400,airplane\n142401,airplane\n142402,truck\n142403,horse\n142404,truck\n142405,frog\n142406,airplane\n142407,automobile\n142408,ship\n142409,bird\n142410,horse\n142411,dog\n142412,deer\n142413,deer\n142414,cat\n142415,truck\n142416,deer\n142417,bird\n142418,dog\n142419,deer\n142420,deer\n142421,frog\n142422,horse\n142423,dog\n142424,deer\n142425,truck\n142426,cat\n142427,frog\n142428,bird\n142429,dog\n142430,cat\n142431,dog\n142432,cat\n142433,airplane\n142434,airplane\n142435,frog\n142436,cat\n142437,truck\n142438,cat\n142439,frog\n142440,automobile\n142441,truck\n142442,cat\n142443,bird\n142444,automobile\n142445,truck\n142446,airplane\n142447,deer\n142448,deer\n142449,truck\n142450,deer\n142451,frog\n142452,cat\n142453,airplane\n142454,frog\n142455,cat\n142456,frog\n142457,cat\n142458,ship\n142459,cat\n142460,deer\n142461,automobile\n142462,horse\n142463,dog\n142464,ship\n142465,truck\n142466,cat\n142467,dog\n142468,horse\n142469,cat\n142470,cat\n142471,frog\n142472,horse\n142473,deer\n142474,horse\n142475,cat\n142476,frog\n142477,dog\n142478,horse\n142479,deer\n142480,cat\n142481,dog\n142482,deer\n142483,truck\n142484,deer\n142485,horse\n142486,horse\n142487,dog\n142488,automobile\n142489,truck\n142490,bird\n142491,truck\n142492,dog\n142493,automobile\n142494,cat\n142495,cat\n142496,airplane\n142497,deer\n142498,deer\n142499,ship\n142500,cat\n142501,deer\n142502,horse\n142503,cat\n142504,frog\n142505,bird\n142506,airplane\n142507,truck\n142508,bird\n142509,bird\n142510,automobile\n142511,deer\n142512,cat\n142513,horse\n142514,truck\n142515,horse\n142516,truck\n142517,dog\n142518,ship\n142519,frog\n142520,automobile\n142521,frog\n142522,airplane\n142523,cat\n142524,cat\n142525,deer\n142526,frog\n142527,frog\n142528,dog\n142529,frog\n142530,horse\n142531,ship\n142532,horse\n142533,ship\n142534,airplane\n142535,frog\n142536,frog\n142537,deer\n142538,airplane\n142539,automobile\n142540,deer\n142541,automobile\n142542,horse\n142543,cat\n142544,automobile\n142545,bird\n142546,cat\n142547,dog\n142548,cat\n142549,deer\n142550,cat\n142551,truck\n142552,airplane\n142553,truck\n142554,dog\n142555,frog\n142556,dog\n142557,frog\n142558,frog\n142559,ship\n142560,deer\n142561,airplane\n142562,truck\n142563,cat\n142564,frog\n142565,dog\n142566,airplane\n142567,cat\n142568,deer\n142569,horse\n142570,automobile\n142571,horse\n142572,airplane\n142573,dog\n142574,ship\n142575,frog\n142576,airplane\n142577,dog\n142578,dog\n142579,cat\n142580,deer\n142581,deer\n142582,deer\n142583,cat\n142584,truck\n142585,dog\n142586,bird\n142587,cat\n142588,automobile\n142589,cat\n142590,automobile\n142591,airplane\n142592,automobile\n142593,airplane\n142594,frog\n142595,deer\n142596,ship\n142597,automobile\n142598,frog\n142599,horse\n142600,dog\n142601,automobile\n142602,airplane\n142603,truck\n142604,deer\n142605,ship\n142606,truck\n142607,frog\n142608,deer\n142609,truck\n142610,frog\n142611,horse\n142612,bird\n142613,automobile\n142614,deer\n142615,cat\n142616,deer\n142617,ship\n142618,deer\n142619,automobile\n142620,frog\n142621,truck\n142622,cat\n142623,deer\n142624,deer\n142625,truck\n142626,cat\n142627,deer\n142628,frog\n142629,bird\n142630,truck\n142631,horse\n142632,horse\n142633,automobile\n142634,truck\n142635,deer\n142636,frog\n142637,ship\n142638,bird\n142639,automobile\n142640,truck\n142641,cat\n142642,ship\n142643,cat\n142644,ship\n142645,deer\n142646,horse\n142647,frog\n142648,ship\n142649,airplane\n142650,ship\n142651,truck\n142652,frog\n142653,truck\n142654,horse\n142655,deer\n142656,airplane\n142657,airplane\n142658,truck\n142659,automobile\n142660,cat\n142661,horse\n142662,horse\n142663,automobile\n142664,horse\n142665,airplane\n142666,automobile\n142667,cat\n142668,horse\n142669,deer\n142670,deer\n142671,cat\n142672,ship\n142673,frog\n142674,automobile\n142675,deer\n142676,dog\n142677,frog\n142678,horse\n142679,frog\n142680,ship\n142681,dog\n142682,horse\n142683,frog\n142684,truck\n142685,truck\n142686,ship\n142687,deer\n142688,automobile\n142689,cat\n142690,frog\n142691,ship\n142692,frog\n142693,automobile\n142694,dog\n142695,deer\n142696,cat\n142697,horse\n142698,frog\n142699,dog\n142700,airplane\n142701,horse\n142702,dog\n142703,truck\n142704,airplane\n142705,dog\n142706,deer\n142707,deer\n142708,frog\n142709,deer\n142710,truck\n142711,deer\n142712,dog\n142713,deer\n142714,frog\n142715,bird\n142716,horse\n142717,dog\n142718,ship\n142719,airplane\n142720,truck\n142721,truck\n142722,deer\n142723,ship\n142724,horse\n142725,deer\n142726,horse\n142727,deer\n142728,truck\n142729,horse\n142730,deer\n142731,frog\n142732,airplane\n142733,dog\n142734,automobile\n142735,deer\n142736,horse\n142737,airplane\n142738,ship\n142739,cat\n142740,cat\n142741,ship\n142742,airplane\n142743,horse\n142744,dog\n142745,frog\n142746,ship\n142747,deer\n142748,cat\n142749,automobile\n142750,automobile\n142751,deer\n142752,truck\n142753,bird\n142754,deer\n142755,frog\n142756,dog\n142757,airplane\n142758,ship\n142759,airplane\n142760,frog\n142761,deer\n142762,cat\n142763,airplane\n142764,airplane\n142765,cat\n142766,frog\n142767,ship\n142768,dog\n142769,cat\n142770,bird\n142771,automobile\n142772,deer\n142773,bird\n142774,frog\n142775,ship\n142776,airplane\n142777,horse\n142778,dog\n142779,truck\n142780,dog\n142781,frog\n142782,horse\n142783,ship\n142784,bird\n142785,airplane\n142786,dog\n142787,airplane\n142788,frog\n142789,truck\n142790,cat\n142791,horse\n142792,cat\n142793,horse\n142794,dog\n142795,automobile\n142796,horse\n142797,ship\n142798,airplane\n142799,bird\n142800,truck\n142801,ship\n142802,cat\n142803,cat\n142804,deer\n142805,frog\n142806,airplane\n142807,cat\n142808,deer\n142809,deer\n142810,cat\n142811,airplane\n142812,deer\n142813,frog\n142814,ship\n142815,dog\n142816,ship\n142817,cat\n142818,cat\n142819,airplane\n142820,dog\n142821,frog\n142822,automobile\n142823,cat\n142824,ship\n142825,ship\n142826,truck\n142827,dog\n142828,dog\n142829,deer\n142830,horse\n142831,dog\n142832,deer\n142833,airplane\n142834,frog\n142835,truck\n142836,airplane\n142837,frog\n142838,dog\n142839,deer\n142840,deer\n142841,bird\n142842,dog\n142843,deer\n142844,horse\n142845,truck\n142846,dog\n142847,cat\n142848,ship\n142849,deer\n142850,deer\n142851,deer\n142852,horse\n142853,airplane\n142854,bird\n142855,horse\n142856,frog\n142857,horse\n142858,frog\n142859,frog\n142860,deer\n142861,frog\n142862,frog\n142863,airplane\n142864,truck\n142865,bird\n142866,horse\n142867,deer\n142868,bird\n142869,horse\n142870,automobile\n142871,frog\n142872,truck\n142873,cat\n142874,airplane\n142875,horse\n142876,automobile\n142877,airplane\n142878,automobile\n142879,horse\n142880,truck\n142881,bird\n142882,dog\n142883,ship\n142884,truck\n142885,truck\n142886,cat\n142887,frog\n142888,dog\n142889,bird\n142890,airplane\n142891,truck\n142892,horse\n142893,automobile\n142894,cat\n142895,airplane\n142896,frog\n142897,ship\n142898,deer\n142899,automobile\n142900,automobile\n142901,horse\n142902,frog\n142903,airplane\n142904,dog\n142905,bird\n142906,dog\n142907,bird\n142908,cat\n142909,bird\n142910,truck\n142911,airplane\n142912,frog\n142913,deer\n142914,automobile\n142915,automobile\n142916,frog\n142917,deer\n142918,frog\n142919,deer\n142920,dog\n142921,frog\n142922,frog\n142923,dog\n142924,truck\n142925,truck\n142926,truck\n142927,cat\n142928,cat\n142929,dog\n142930,dog\n142931,frog\n142932,bird\n142933,dog\n142934,cat\n142935,cat\n142936,bird\n142937,dog\n142938,horse\n142939,ship\n142940,automobile\n142941,ship\n142942,ship\n142943,automobile\n142944,dog\n142945,frog\n142946,airplane\n142947,frog\n142948,frog\n142949,horse\n142950,airplane\n142951,ship\n142952,deer\n142953,cat\n142954,truck\n142955,cat\n142956,horse\n142957,horse\n142958,truck\n142959,dog\n142960,truck\n142961,dog\n142962,automobile\n142963,horse\n142964,airplane\n142965,cat\n142966,deer\n142967,deer\n142968,cat\n142969,dog\n142970,automobile\n142971,bird\n142972,truck\n142973,deer\n142974,dog\n142975,automobile\n142976,dog\n142977,cat\n142978,frog\n142979,ship\n142980,dog\n142981,automobile\n142982,frog\n142983,truck\n142984,horse\n142985,truck\n142986,dog\n142987,truck\n142988,automobile\n142989,frog\n142990,dog\n142991,cat\n142992,frog\n142993,airplane\n142994,dog\n142995,dog\n142996,automobile\n142997,bird\n142998,airplane\n142999,airplane\n143000,frog\n143001,ship\n143002,cat\n143003,cat\n143004,horse\n143005,ship\n143006,horse\n143007,ship\n143008,automobile\n143009,ship\n143010,truck\n143011,bird\n143012,truck\n143013,bird\n143014,ship\n143015,deer\n143016,automobile\n143017,dog\n143018,ship\n143019,airplane\n143020,truck\n143021,horse\n143022,ship\n143023,deer\n143024,deer\n143025,automobile\n143026,airplane\n143027,automobile\n143028,ship\n143029,horse\n143030,truck\n143031,frog\n143032,ship\n143033,deer\n143034,horse\n143035,cat\n143036,frog\n143037,dog\n143038,bird\n143039,dog\n143040,frog\n143041,ship\n143042,cat\n143043,truck\n143044,frog\n143045,bird\n143046,ship\n143047,dog\n143048,airplane\n143049,cat\n143050,dog\n143051,truck\n143052,frog\n143053,cat\n143054,horse\n143055,ship\n143056,deer\n143057,horse\n143058,truck\n143059,cat\n143060,frog\n143061,airplane\n143062,deer\n143063,deer\n143064,dog\n143065,ship\n143066,deer\n143067,deer\n143068,airplane\n143069,cat\n143070,deer\n143071,airplane\n143072,cat\n143073,airplane\n143074,cat\n143075,ship\n143076,deer\n143077,cat\n143078,automobile\n143079,cat\n143080,dog\n143081,bird\n143082,ship\n143083,truck\n143084,airplane\n143085,deer\n143086,airplane\n143087,deer\n143088,deer\n143089,frog\n143090,deer\n143091,bird\n143092,deer\n143093,frog\n143094,bird\n143095,cat\n143096,cat\n143097,bird\n143098,frog\n143099,bird\n143100,horse\n143101,airplane\n143102,frog\n143103,truck\n143104,dog\n143105,bird\n143106,deer\n143107,airplane\n143108,dog\n143109,deer\n143110,frog\n143111,cat\n143112,dog\n143113,ship\n143114,frog\n143115,automobile\n143116,deer\n143117,frog\n143118,automobile\n143119,ship\n143120,truck\n143121,truck\n143122,deer\n143123,cat\n143124,frog\n143125,horse\n143126,automobile\n143127,cat\n143128,dog\n143129,airplane\n143130,ship\n143131,bird\n143132,truck\n143133,cat\n143134,deer\n143135,deer\n143136,airplane\n143137,frog\n143138,automobile\n143139,airplane\n143140,frog\n143141,dog\n143142,frog\n143143,bird\n143144,frog\n143145,frog\n143146,deer\n143147,cat\n143148,automobile\n143149,cat\n143150,cat\n143151,deer\n143152,horse\n143153,cat\n143154,cat\n143155,horse\n143156,deer\n143157,automobile\n143158,bird\n143159,cat\n143160,dog\n143161,truck\n143162,frog\n143163,cat\n143164,bird\n143165,truck\n143166,cat\n143167,automobile\n143168,cat\n143169,horse\n143170,ship\n143171,bird\n143172,horse\n143173,frog\n143174,deer\n143175,frog\n143176,ship\n143177,cat\n143178,cat\n143179,frog\n143180,cat\n143181,dog\n143182,dog\n143183,cat\n143184,airplane\n143185,cat\n143186,truck\n143187,horse\n143188,dog\n143189,horse\n143190,airplane\n143191,cat\n143192,bird\n143193,deer\n143194,automobile\n143195,horse\n143196,airplane\n143197,cat\n143198,cat\n143199,dog\n143200,cat\n143201,bird\n143202,frog\n143203,frog\n143204,dog\n143205,automobile\n143206,deer\n143207,horse\n143208,bird\n143209,automobile\n143210,frog\n143211,automobile\n143212,frog\n143213,deer\n143214,bird\n143215,cat\n143216,frog\n143217,deer\n143218,deer\n143219,horse\n143220,automobile\n143221,deer\n143222,airplane\n143223,truck\n143224,deer\n143225,truck\n143226,cat\n143227,cat\n143228,horse\n143229,airplane\n143230,airplane\n143231,deer\n143232,ship\n143233,truck\n143234,bird\n143235,bird\n143236,cat\n143237,automobile\n143238,dog\n143239,bird\n143240,deer\n143241,automobile\n143242,ship\n143243,automobile\n143244,bird\n143245,ship\n143246,cat\n143247,deer\n143248,bird\n143249,ship\n143250,bird\n143251,frog\n143252,cat\n143253,airplane\n143254,frog\n143255,deer\n143256,deer\n143257,bird\n143258,cat\n143259,frog\n143260,frog\n143261,frog\n143262,bird\n143263,deer\n143264,airplane\n143265,bird\n143266,frog\n143267,deer\n143268,cat\n143269,frog\n143270,ship\n143271,ship\n143272,frog\n143273,dog\n143274,deer\n143275,ship\n143276,automobile\n143277,dog\n143278,deer\n143279,airplane\n143280,bird\n143281,dog\n143282,dog\n143283,deer\n143284,truck\n143285,ship\n143286,cat\n143287,truck\n143288,frog\n143289,airplane\n143290,truck\n143291,cat\n143292,automobile\n143293,automobile\n143294,automobile\n143295,automobile\n143296,ship\n143297,automobile\n143298,airplane\n143299,dog\n143300,horse\n143301,airplane\n143302,bird\n143303,cat\n143304,horse\n143305,cat\n143306,deer\n143307,cat\n143308,cat\n143309,deer\n143310,ship\n143311,ship\n143312,deer\n143313,truck\n143314,horse\n143315,bird\n143316,airplane\n143317,frog\n143318,cat\n143319,bird\n143320,truck\n143321,airplane\n143322,frog\n143323,cat\n143324,bird\n143325,cat\n143326,cat\n143327,deer\n143328,deer\n143329,dog\n143330,truck\n143331,frog\n143332,bird\n143333,deer\n143334,cat\n143335,cat\n143336,automobile\n143337,cat\n143338,cat\n143339,automobile\n143340,frog\n143341,cat\n143342,cat\n143343,ship\n143344,automobile\n143345,cat\n143346,ship\n143347,automobile\n143348,frog\n143349,ship\n143350,deer\n143351,cat\n143352,dog\n143353,dog\n143354,horse\n143355,cat\n143356,bird\n143357,dog\n143358,deer\n143359,deer\n143360,deer\n143361,horse\n143362,automobile\n143363,bird\n143364,cat\n143365,automobile\n143366,horse\n143367,frog\n143368,deer\n143369,horse\n143370,truck\n143371,deer\n143372,horse\n143373,horse\n143374,cat\n143375,truck\n143376,airplane\n143377,bird\n143378,truck\n143379,truck\n143380,truck\n143381,cat\n143382,horse\n143383,cat\n143384,deer\n143385,cat\n143386,dog\n143387,ship\n143388,ship\n143389,cat\n143390,ship\n143391,bird\n143392,cat\n143393,deer\n143394,dog\n143395,horse\n143396,dog\n143397,deer\n143398,frog\n143399,airplane\n143400,cat\n143401,frog\n143402,truck\n143403,ship\n143404,truck\n143405,deer\n143406,truck\n143407,bird\n143408,truck\n143409,horse\n143410,frog\n143411,horse\n143412,deer\n143413,deer\n143414,cat\n143415,automobile\n143416,bird\n143417,deer\n143418,bird\n143419,automobile\n143420,truck\n143421,horse\n143422,truck\n143423,dog\n143424,frog\n143425,bird\n143426,bird\n143427,horse\n143428,automobile\n143429,ship\n143430,bird\n143431,bird\n143432,cat\n143433,ship\n143434,cat\n143435,dog\n143436,bird\n143437,truck\n143438,deer\n143439,horse\n143440,deer\n143441,truck\n143442,dog\n143443,frog\n143444,deer\n143445,deer\n143446,deer\n143447,airplane\n143448,frog\n143449,cat\n143450,truck\n143451,dog\n143452,horse\n143453,ship\n143454,dog\n143455,horse\n143456,bird\n143457,frog\n143458,horse\n143459,deer\n143460,deer\n143461,bird\n143462,truck\n143463,frog\n143464,ship\n143465,dog\n143466,frog\n143467,bird\n143468,dog\n143469,automobile\n143470,automobile\n143471,horse\n143472,bird\n143473,horse\n143474,deer\n143475,ship\n143476,deer\n143477,dog\n143478,frog\n143479,frog\n143480,deer\n143481,truck\n143482,bird\n143483,dog\n143484,frog\n143485,frog\n143486,dog\n143487,dog\n143488,bird\n143489,truck\n143490,automobile\n143491,cat\n143492,horse\n143493,truck\n143494,dog\n143495,automobile\n143496,ship\n143497,frog\n143498,ship\n143499,cat\n143500,dog\n143501,dog\n143502,deer\n143503,deer\n143504,frog\n143505,horse\n143506,truck\n143507,frog\n143508,airplane\n143509,dog\n143510,deer\n143511,horse\n143512,truck\n143513,deer\n143514,dog\n143515,dog\n143516,ship\n143517,ship\n143518,dog\n143519,frog\n143520,ship\n143521,automobile\n143522,deer\n143523,cat\n143524,dog\n143525,horse\n143526,ship\n143527,bird\n143528,bird\n143529,automobile\n143530,automobile\n143531,ship\n143532,airplane\n143533,airplane\n143534,deer\n143535,cat\n143536,dog\n143537,horse\n143538,airplane\n143539,truck\n143540,ship\n143541,dog\n143542,automobile\n143543,automobile\n143544,dog\n143545,truck\n143546,horse\n143547,cat\n143548,horse\n143549,deer\n143550,deer\n143551,automobile\n143552,automobile\n143553,cat\n143554,ship\n143555,truck\n143556,deer\n143557,deer\n143558,airplane\n143559,deer\n143560,ship\n143561,cat\n143562,airplane\n143563,deer\n143564,bird\n143565,horse\n143566,bird\n143567,cat\n143568,dog\n143569,deer\n143570,airplane\n143571,truck\n143572,frog\n143573,ship\n143574,dog\n143575,deer\n143576,automobile\n143577,cat\n143578,deer\n143579,frog\n143580,deer\n143581,horse\n143582,bird\n143583,cat\n143584,bird\n143585,bird\n143586,frog\n143587,cat\n143588,airplane\n143589,airplane\n143590,horse\n143591,frog\n143592,deer\n143593,cat\n143594,frog\n143595,cat\n143596,deer\n143597,cat\n143598,cat\n143599,ship\n143600,horse\n143601,bird\n143602,ship\n143603,truck\n143604,bird\n143605,truck\n143606,bird\n143607,deer\n143608,horse\n143609,ship\n143610,bird\n143611,truck\n143612,cat\n143613,dog\n143614,airplane\n143615,deer\n143616,truck\n143617,horse\n143618,bird\n143619,deer\n143620,dog\n143621,airplane\n143622,bird\n143623,horse\n143624,deer\n143625,frog\n143626,airplane\n143627,cat\n143628,frog\n143629,deer\n143630,truck\n143631,deer\n143632,bird\n143633,dog\n143634,cat\n143635,deer\n143636,horse\n143637,dog\n143638,deer\n143639,deer\n143640,dog\n143641,truck\n143642,automobile\n143643,cat\n143644,bird\n143645,frog\n143646,cat\n143647,cat\n143648,automobile\n143649,frog\n143650,dog\n143651,deer\n143652,bird\n143653,truck\n143654,cat\n143655,dog\n143656,dog\n143657,bird\n143658,truck\n143659,horse\n143660,airplane\n143661,frog\n143662,frog\n143663,bird\n143664,dog\n143665,truck\n143666,cat\n143667,cat\n143668,deer\n143669,deer\n143670,airplane\n143671,automobile\n143672,cat\n143673,cat\n143674,ship\n143675,horse\n143676,horse\n143677,airplane\n143678,cat\n143679,automobile\n143680,dog\n143681,frog\n143682,frog\n143683,horse\n143684,cat\n143685,dog\n143686,bird\n143687,horse\n143688,horse\n143689,automobile\n143690,truck\n143691,ship\n143692,truck\n143693,dog\n143694,frog\n143695,bird\n143696,automobile\n143697,automobile\n143698,frog\n143699,airplane\n143700,cat\n143701,cat\n143702,automobile\n143703,horse\n143704,airplane\n143705,automobile\n143706,horse\n143707,dog\n143708,cat\n143709,dog\n143710,airplane\n143711,dog\n143712,automobile\n143713,dog\n143714,automobile\n143715,deer\n143716,cat\n143717,cat\n143718,airplane\n143719,frog\n143720,dog\n143721,deer\n143722,frog\n143723,horse\n143724,truck\n143725,cat\n143726,horse\n143727,bird\n143728,airplane\n143729,cat\n143730,dog\n143731,dog\n143732,cat\n143733,truck\n143734,deer\n143735,bird\n143736,horse\n143737,bird\n143738,cat\n143739,automobile\n143740,frog\n143741,deer\n143742,deer\n143743,frog\n143744,bird\n143745,horse\n143746,frog\n143747,airplane\n143748,ship\n143749,bird\n143750,dog\n143751,horse\n143752,frog\n143753,deer\n143754,cat\n143755,horse\n143756,bird\n143757,automobile\n143758,frog\n143759,horse\n143760,automobile\n143761,cat\n143762,truck\n143763,ship\n143764,truck\n143765,airplane\n143766,airplane\n143767,frog\n143768,frog\n143769,ship\n143770,cat\n143771,automobile\n143772,bird\n143773,automobile\n143774,bird\n143775,horse\n143776,cat\n143777,deer\n143778,ship\n143779,ship\n143780,truck\n143781,dog\n143782,deer\n143783,cat\n143784,dog\n143785,ship\n143786,cat\n143787,ship\n143788,cat\n143789,bird\n143790,deer\n143791,ship\n143792,bird\n143793,ship\n143794,frog\n143795,truck\n143796,dog\n143797,frog\n143798,horse\n143799,frog\n143800,dog\n143801,horse\n143802,dog\n143803,cat\n143804,frog\n143805,truck\n143806,bird\n143807,dog\n143808,cat\n143809,dog\n143810,deer\n143811,dog\n143812,cat\n143813,automobile\n143814,horse\n143815,airplane\n143816,deer\n143817,horse\n143818,bird\n143819,truck\n143820,deer\n143821,dog\n143822,horse\n143823,frog\n143824,bird\n143825,frog\n143826,bird\n143827,horse\n143828,automobile\n143829,ship\n143830,frog\n143831,dog\n143832,frog\n143833,truck\n143834,deer\n143835,ship\n143836,dog\n143837,deer\n143838,horse\n143839,horse\n143840,cat\n143841,bird\n143842,ship\n143843,ship\n143844,dog\n143845,dog\n143846,horse\n143847,truck\n143848,cat\n143849,dog\n143850,horse\n143851,dog\n143852,dog\n143853,bird\n143854,deer\n143855,bird\n143856,cat\n143857,airplane\n143858,horse\n143859,horse\n143860,frog\n143861,frog\n143862,deer\n143863,ship\n143864,automobile\n143865,airplane\n143866,frog\n143867,horse\n143868,dog\n143869,dog\n143870,dog\n143871,frog\n143872,airplane\n143873,horse\n143874,cat\n143875,deer\n143876,dog\n143877,bird\n143878,frog\n143879,dog\n143880,dog\n143881,cat\n143882,horse\n143883,cat\n143884,automobile\n143885,deer\n143886,truck\n143887,ship\n143888,ship\n143889,horse\n143890,ship\n143891,ship\n143892,bird\n143893,airplane\n143894,dog\n143895,cat\n143896,deer\n143897,bird\n143898,bird\n143899,cat\n143900,bird\n143901,airplane\n143902,ship\n143903,deer\n143904,deer\n143905,bird\n143906,truck\n143907,automobile\n143908,truck\n143909,ship\n143910,cat\n143911,horse\n143912,dog\n143913,bird\n143914,deer\n143915,horse\n143916,airplane\n143917,automobile\n143918,cat\n143919,horse\n143920,horse\n143921,airplane\n143922,horse\n143923,automobile\n143924,airplane\n143925,truck\n143926,bird\n143927,airplane\n143928,bird\n143929,cat\n143930,deer\n143931,ship\n143932,bird\n143933,horse\n143934,deer\n143935,horse\n143936,deer\n143937,cat\n143938,deer\n143939,bird\n143940,airplane\n143941,frog\n143942,deer\n143943,automobile\n143944,automobile\n143945,horse\n143946,cat\n143947,frog\n143948,bird\n143949,airplane\n143950,airplane\n143951,ship\n143952,truck\n143953,frog\n143954,frog\n143955,deer\n143956,cat\n143957,horse\n143958,automobile\n143959,deer\n143960,horse\n143961,horse\n143962,deer\n143963,deer\n143964,truck\n143965,dog\n143966,airplane\n143967,dog\n143968,cat\n143969,bird\n143970,horse\n143971,bird\n143972,horse\n143973,horse\n143974,cat\n143975,dog\n143976,deer\n143977,horse\n143978,automobile\n143979,cat\n143980,horse\n143981,airplane\n143982,bird\n143983,dog\n143984,airplane\n143985,bird\n143986,airplane\n143987,cat\n143988,deer\n143989,bird\n143990,bird\n143991,dog\n143992,dog\n143993,deer\n143994,airplane\n143995,frog\n143996,dog\n143997,airplane\n143998,airplane\n143999,deer\n144000,cat\n144001,deer\n144002,horse\n144003,cat\n144004,automobile\n144005,cat\n144006,cat\n144007,frog\n144008,cat\n144009,horse\n144010,frog\n144011,frog\n144012,horse\n144013,airplane\n144014,bird\n144015,truck\n144016,horse\n144017,dog\n144018,automobile\n144019,ship\n144020,dog\n144021,deer\n144022,truck\n144023,deer\n144024,ship\n144025,bird\n144026,frog\n144027,ship\n144028,frog\n144029,dog\n144030,ship\n144031,truck\n144032,deer\n144033,automobile\n144034,frog\n144035,truck\n144036,airplane\n144037,dog\n144038,airplane\n144039,airplane\n144040,dog\n144041,deer\n144042,horse\n144043,airplane\n144044,horse\n144045,automobile\n144046,cat\n144047,automobile\n144048,dog\n144049,airplane\n144050,frog\n144051,deer\n144052,automobile\n144053,bird\n144054,airplane\n144055,airplane\n144056,cat\n144057,ship\n144058,dog\n144059,cat\n144060,airplane\n144061,bird\n144062,airplane\n144063,dog\n144064,ship\n144065,bird\n144066,horse\n144067,frog\n144068,ship\n144069,truck\n144070,automobile\n144071,frog\n144072,deer\n144073,horse\n144074,airplane\n144075,cat\n144076,deer\n144077,bird\n144078,truck\n144079,cat\n144080,ship\n144081,automobile\n144082,frog\n144083,horse\n144084,airplane\n144085,ship\n144086,dog\n144087,automobile\n144088,deer\n144089,frog\n144090,dog\n144091,cat\n144092,cat\n144093,automobile\n144094,deer\n144095,dog\n144096,deer\n144097,truck\n144098,horse\n144099,airplane\n144100,cat\n144101,deer\n144102,automobile\n144103,dog\n144104,airplane\n144105,dog\n144106,bird\n144107,truck\n144108,truck\n144109,dog\n144110,cat\n144111,horse\n144112,deer\n144113,horse\n144114,truck\n144115,truck\n144116,cat\n144117,frog\n144118,ship\n144119,frog\n144120,frog\n144121,deer\n144122,deer\n144123,ship\n144124,horse\n144125,dog\n144126,automobile\n144127,cat\n144128,airplane\n144129,cat\n144130,horse\n144131,deer\n144132,ship\n144133,ship\n144134,deer\n144135,frog\n144136,frog\n144137,cat\n144138,truck\n144139,frog\n144140,automobile\n144141,frog\n144142,deer\n144143,dog\n144144,dog\n144145,dog\n144146,cat\n144147,bird\n144148,truck\n144149,airplane\n144150,bird\n144151,horse\n144152,horse\n144153,truck\n144154,frog\n144155,airplane\n144156,cat\n144157,horse\n144158,automobile\n144159,frog\n144160,bird\n144161,cat\n144162,bird\n144163,deer\n144164,bird\n144165,airplane\n144166,dog\n144167,dog\n144168,cat\n144169,ship\n144170,cat\n144171,airplane\n144172,deer\n144173,bird\n144174,automobile\n144175,dog\n144176,ship\n144177,automobile\n144178,deer\n144179,bird\n144180,bird\n144181,ship\n144182,deer\n144183,deer\n144184,horse\n144185,cat\n144186,ship\n144187,cat\n144188,cat\n144189,bird\n144190,frog\n144191,deer\n144192,deer\n144193,horse\n144194,bird\n144195,frog\n144196,cat\n144197,bird\n144198,cat\n144199,bird\n144200,ship\n144201,dog\n144202,ship\n144203,bird\n144204,horse\n144205,horse\n144206,dog\n144207,automobile\n144208,ship\n144209,dog\n144210,cat\n144211,truck\n144212,truck\n144213,ship\n144214,automobile\n144215,airplane\n144216,truck\n144217,ship\n144218,airplane\n144219,dog\n144220,deer\n144221,ship\n144222,cat\n144223,cat\n144224,bird\n144225,airplane\n144226,truck\n144227,bird\n144228,bird\n144229,deer\n144230,ship\n144231,bird\n144232,deer\n144233,automobile\n144234,cat\n144235,ship\n144236,bird\n144237,ship\n144238,horse\n144239,horse\n144240,deer\n144241,frog\n144242,cat\n144243,cat\n144244,cat\n144245,horse\n144246,dog\n144247,bird\n144248,cat\n144249,horse\n144250,horse\n144251,bird\n144252,dog\n144253,truck\n144254,deer\n144255,airplane\n144256,bird\n144257,automobile\n144258,deer\n144259,horse\n144260,frog\n144261,dog\n144262,frog\n144263,dog\n144264,deer\n144265,truck\n144266,truck\n144267,bird\n144268,truck\n144269,deer\n144270,horse\n144271,horse\n144272,automobile\n144273,frog\n144274,airplane\n144275,cat\n144276,cat\n144277,truck\n144278,horse\n144279,deer\n144280,deer\n144281,automobile\n144282,dog\n144283,truck\n144284,bird\n144285,deer\n144286,ship\n144287,truck\n144288,horse\n144289,horse\n144290,dog\n144291,cat\n144292,bird\n144293,cat\n144294,deer\n144295,bird\n144296,cat\n144297,deer\n144298,truck\n144299,truck\n144300,truck\n144301,cat\n144302,horse\n144303,airplane\n144304,dog\n144305,horse\n144306,deer\n144307,cat\n144308,horse\n144309,dog\n144310,deer\n144311,deer\n144312,airplane\n144313,bird\n144314,truck\n144315,deer\n144316,truck\n144317,frog\n144318,dog\n144319,deer\n144320,dog\n144321,horse\n144322,cat\n144323,automobile\n144324,dog\n144325,airplane\n144326,cat\n144327,frog\n144328,truck\n144329,airplane\n144330,dog\n144331,cat\n144332,ship\n144333,frog\n144334,bird\n144335,deer\n144336,truck\n144337,horse\n144338,horse\n144339,horse\n144340,horse\n144341,bird\n144342,truck\n144343,frog\n144344,deer\n144345,deer\n144346,automobile\n144347,deer\n144348,airplane\n144349,deer\n144350,ship\n144351,deer\n144352,automobile\n144353,horse\n144354,frog\n144355,dog\n144356,cat\n144357,frog\n144358,ship\n144359,deer\n144360,cat\n144361,automobile\n144362,truck\n144363,cat\n144364,frog\n144365,frog\n144366,bird\n144367,cat\n144368,deer\n144369,airplane\n144370,ship\n144371,airplane\n144372,dog\n144373,dog\n144374,truck\n144375,automobile\n144376,dog\n144377,bird\n144378,dog\n144379,bird\n144380,horse\n144381,ship\n144382,bird\n144383,automobile\n144384,automobile\n144385,cat\n144386,automobile\n144387,cat\n144388,deer\n144389,horse\n144390,dog\n144391,dog\n144392,airplane\n144393,cat\n144394,automobile\n144395,deer\n144396,bird\n144397,airplane\n144398,truck\n144399,airplane\n144400,horse\n144401,bird\n144402,horse\n144403,dog\n144404,deer\n144405,frog\n144406,cat\n144407,airplane\n144408,airplane\n144409,ship\n144410,airplane\n144411,deer\n144412,dog\n144413,automobile\n144414,frog\n144415,frog\n144416,cat\n144417,truck\n144418,dog\n144419,horse\n144420,dog\n144421,cat\n144422,frog\n144423,truck\n144424,ship\n144425,horse\n144426,ship\n144427,dog\n144428,ship\n144429,frog\n144430,automobile\n144431,deer\n144432,cat\n144433,bird\n144434,truck\n144435,bird\n144436,automobile\n144437,frog\n144438,horse\n144439,airplane\n144440,deer\n144441,dog\n144442,horse\n144443,bird\n144444,truck\n144445,truck\n144446,frog\n144447,truck\n144448,horse\n144449,frog\n144450,truck\n144451,deer\n144452,cat\n144453,airplane\n144454,cat\n144455,automobile\n144456,deer\n144457,bird\n144458,cat\n144459,airplane\n144460,frog\n144461,airplane\n144462,dog\n144463,truck\n144464,dog\n144465,frog\n144466,dog\n144467,airplane\n144468,horse\n144469,truck\n144470,dog\n144471,deer\n144472,deer\n144473,cat\n144474,deer\n144475,frog\n144476,bird\n144477,frog\n144478,automobile\n144479,deer\n144480,dog\n144481,deer\n144482,ship\n144483,truck\n144484,dog\n144485,automobile\n144486,automobile\n144487,automobile\n144488,dog\n144489,horse\n144490,cat\n144491,dog\n144492,dog\n144493,dog\n144494,cat\n144495,bird\n144496,frog\n144497,cat\n144498,airplane\n144499,cat\n144500,cat\n144501,horse\n144502,truck\n144503,dog\n144504,deer\n144505,horse\n144506,dog\n144507,cat\n144508,ship\n144509,airplane\n144510,truck\n144511,airplane\n144512,deer\n144513,ship\n144514,horse\n144515,bird\n144516,dog\n144517,truck\n144518,airplane\n144519,airplane\n144520,cat\n144521,frog\n144522,cat\n144523,deer\n144524,cat\n144525,dog\n144526,truck\n144527,automobile\n144528,dog\n144529,frog\n144530,frog\n144531,truck\n144532,deer\n144533,truck\n144534,bird\n144535,cat\n144536,horse\n144537,deer\n144538,cat\n144539,horse\n144540,dog\n144541,deer\n144542,horse\n144543,deer\n144544,deer\n144545,cat\n144546,airplane\n144547,ship\n144548,frog\n144549,truck\n144550,deer\n144551,ship\n144552,bird\n144553,cat\n144554,frog\n144555,cat\n144556,deer\n144557,truck\n144558,ship\n144559,bird\n144560,cat\n144561,cat\n144562,automobile\n144563,frog\n144564,frog\n144565,cat\n144566,cat\n144567,automobile\n144568,dog\n144569,truck\n144570,truck\n144571,deer\n144572,frog\n144573,ship\n144574,truck\n144575,deer\n144576,dog\n144577,horse\n144578,deer\n144579,deer\n144580,cat\n144581,automobile\n144582,ship\n144583,frog\n144584,truck\n144585,dog\n144586,airplane\n144587,cat\n144588,truck\n144589,deer\n144590,deer\n144591,dog\n144592,deer\n144593,automobile\n144594,truck\n144595,truck\n144596,frog\n144597,frog\n144598,bird\n144599,cat\n144600,horse\n144601,bird\n144602,dog\n144603,airplane\n144604,airplane\n144605,airplane\n144606,horse\n144607,bird\n144608,airplane\n144609,horse\n144610,truck\n144611,deer\n144612,horse\n144613,deer\n144614,frog\n144615,frog\n144616,automobile\n144617,automobile\n144618,bird\n144619,automobile\n144620,deer\n144621,truck\n144622,bird\n144623,deer\n144624,automobile\n144625,airplane\n144626,truck\n144627,bird\n144628,dog\n144629,frog\n144630,dog\n144631,airplane\n144632,deer\n144633,airplane\n144634,deer\n144635,airplane\n144636,ship\n144637,cat\n144638,horse\n144639,truck\n144640,deer\n144641,cat\n144642,cat\n144643,cat\n144644,bird\n144645,truck\n144646,truck\n144647,deer\n144648,bird\n144649,horse\n144650,deer\n144651,deer\n144652,cat\n144653,frog\n144654,deer\n144655,truck\n144656,cat\n144657,automobile\n144658,truck\n144659,frog\n144660,airplane\n144661,automobile\n144662,horse\n144663,deer\n144664,horse\n144665,bird\n144666,frog\n144667,airplane\n144668,horse\n144669,ship\n144670,truck\n144671,dog\n144672,dog\n144673,ship\n144674,frog\n144675,ship\n144676,dog\n144677,airplane\n144678,cat\n144679,bird\n144680,automobile\n144681,bird\n144682,truck\n144683,dog\n144684,airplane\n144685,horse\n144686,ship\n144687,ship\n144688,ship\n144689,dog\n144690,frog\n144691,ship\n144692,ship\n144693,cat\n144694,airplane\n144695,deer\n144696,truck\n144697,frog\n144698,cat\n144699,airplane\n144700,horse\n144701,automobile\n144702,ship\n144703,bird\n144704,bird\n144705,frog\n144706,airplane\n144707,frog\n144708,frog\n144709,frog\n144710,automobile\n144711,airplane\n144712,deer\n144713,horse\n144714,cat\n144715,cat\n144716,truck\n144717,frog\n144718,frog\n144719,dog\n144720,frog\n144721,deer\n144722,ship\n144723,ship\n144724,truck\n144725,horse\n144726,frog\n144727,frog\n144728,dog\n144729,bird\n144730,ship\n144731,cat\n144732,truck\n144733,horse\n144734,automobile\n144735,dog\n144736,truck\n144737,ship\n144738,dog\n144739,airplane\n144740,horse\n144741,horse\n144742,bird\n144743,dog\n144744,airplane\n144745,dog\n144746,cat\n144747,frog\n144748,bird\n144749,deer\n144750,ship\n144751,bird\n144752,frog\n144753,airplane\n144754,horse\n144755,deer\n144756,deer\n144757,frog\n144758,ship\n144759,dog\n144760,deer\n144761,dog\n144762,horse\n144763,truck\n144764,frog\n144765,automobile\n144766,cat\n144767,truck\n144768,deer\n144769,frog\n144770,dog\n144771,cat\n144772,frog\n144773,truck\n144774,automobile\n144775,frog\n144776,airplane\n144777,deer\n144778,ship\n144779,horse\n144780,cat\n144781,cat\n144782,airplane\n144783,truck\n144784,deer\n144785,automobile\n144786,horse\n144787,truck\n144788,frog\n144789,deer\n144790,automobile\n144791,truck\n144792,deer\n144793,frog\n144794,airplane\n144795,deer\n144796,truck\n144797,horse\n144798,horse\n144799,deer\n144800,automobile\n144801,ship\n144802,ship\n144803,dog\n144804,cat\n144805,truck\n144806,automobile\n144807,bird\n144808,deer\n144809,bird\n144810,frog\n144811,horse\n144812,truck\n144813,automobile\n144814,deer\n144815,horse\n144816,airplane\n144817,automobile\n144818,airplane\n144819,bird\n144820,ship\n144821,frog\n144822,automobile\n144823,bird\n144824,bird\n144825,truck\n144826,bird\n144827,cat\n144828,horse\n144829,bird\n144830,deer\n144831,cat\n144832,dog\n144833,horse\n144834,dog\n144835,automobile\n144836,airplane\n144837,frog\n144838,frog\n144839,ship\n144840,cat\n144841,airplane\n144842,dog\n144843,cat\n144844,airplane\n144845,frog\n144846,frog\n144847,automobile\n144848,automobile\n144849,dog\n144850,truck\n144851,horse\n144852,bird\n144853,truck\n144854,horse\n144855,dog\n144856,ship\n144857,automobile\n144858,cat\n144859,dog\n144860,automobile\n144861,truck\n144862,horse\n144863,automobile\n144864,deer\n144865,deer\n144866,bird\n144867,frog\n144868,horse\n144869,dog\n144870,automobile\n144871,automobile\n144872,dog\n144873,bird\n144874,truck\n144875,ship\n144876,dog\n144877,horse\n144878,bird\n144879,dog\n144880,ship\n144881,dog\n144882,deer\n144883,frog\n144884,horse\n144885,bird\n144886,bird\n144887,deer\n144888,cat\n144889,cat\n144890,cat\n144891,cat\n144892,ship\n144893,automobile\n144894,cat\n144895,dog\n144896,automobile\n144897,cat\n144898,deer\n144899,ship\n144900,cat\n144901,dog\n144902,ship\n144903,truck\n144904,truck\n144905,horse\n144906,deer\n144907,airplane\n144908,frog\n144909,bird\n144910,cat\n144911,cat\n144912,horse\n144913,frog\n144914,airplane\n144915,dog\n144916,airplane\n144917,deer\n144918,cat\n144919,deer\n144920,cat\n144921,bird\n144922,cat\n144923,cat\n144924,bird\n144925,frog\n144926,airplane\n144927,truck\n144928,airplane\n144929,dog\n144930,deer\n144931,truck\n144932,airplane\n144933,dog\n144934,horse\n144935,dog\n144936,horse\n144937,airplane\n144938,cat\n144939,cat\n144940,automobile\n144941,bird\n144942,truck\n144943,cat\n144944,deer\n144945,cat\n144946,cat\n144947,horse\n144948,automobile\n144949,cat\n144950,frog\n144951,frog\n144952,horse\n144953,truck\n144954,cat\n144955,dog\n144956,automobile\n144957,frog\n144958,deer\n144959,automobile\n144960,airplane\n144961,bird\n144962,ship\n144963,frog\n144964,deer\n144965,cat\n144966,truck\n144967,frog\n144968,horse\n144969,bird\n144970,ship\n144971,horse\n144972,airplane\n144973,deer\n144974,truck\n144975,frog\n144976,frog\n144977,horse\n144978,dog\n144979,bird\n144980,truck\n144981,frog\n144982,deer\n144983,frog\n144984,deer\n144985,bird\n144986,cat\n144987,frog\n144988,deer\n144989,frog\n144990,bird\n144991,truck\n144992,dog\n144993,airplane\n144994,deer\n144995,truck\n144996,airplane\n144997,deer\n144998,dog\n144999,airplane\n145000,deer\n145001,automobile\n145002,frog\n145003,airplane\n145004,automobile\n145005,dog\n145006,automobile\n145007,automobile\n145008,deer\n145009,airplane\n145010,ship\n145011,truck\n145012,deer\n145013,cat\n145014,frog\n145015,bird\n145016,airplane\n145017,deer\n145018,airplane\n145019,truck\n145020,automobile\n145021,deer\n145022,dog\n145023,horse\n145024,frog\n145025,deer\n145026,deer\n145027,dog\n145028,truck\n145029,deer\n145030,dog\n145031,truck\n145032,airplane\n145033,truck\n145034,automobile\n145035,frog\n145036,bird\n145037,automobile\n145038,frog\n145039,automobile\n145040,deer\n145041,cat\n145042,deer\n145043,dog\n145044,truck\n145045,cat\n145046,frog\n145047,ship\n145048,cat\n145049,frog\n145050,horse\n145051,dog\n145052,cat\n145053,dog\n145054,deer\n145055,cat\n145056,bird\n145057,airplane\n145058,horse\n145059,cat\n145060,horse\n145061,dog\n145062,truck\n145063,cat\n145064,cat\n145065,frog\n145066,truck\n145067,truck\n145068,deer\n145069,dog\n145070,dog\n145071,cat\n145072,dog\n145073,automobile\n145074,ship\n145075,truck\n145076,truck\n145077,deer\n145078,deer\n145079,horse\n145080,cat\n145081,dog\n145082,automobile\n145083,automobile\n145084,horse\n145085,cat\n145086,truck\n145087,horse\n145088,deer\n145089,horse\n145090,bird\n145091,horse\n145092,horse\n145093,cat\n145094,cat\n145095,bird\n145096,automobile\n145097,deer\n145098,horse\n145099,deer\n145100,bird\n145101,frog\n145102,horse\n145103,airplane\n145104,dog\n145105,airplane\n145106,bird\n145107,truck\n145108,deer\n145109,deer\n145110,airplane\n145111,automobile\n145112,bird\n145113,horse\n145114,deer\n145115,truck\n145116,horse\n145117,deer\n145118,airplane\n145119,automobile\n145120,frog\n145121,truck\n145122,bird\n145123,bird\n145124,cat\n145125,truck\n145126,bird\n145127,deer\n145128,truck\n145129,frog\n145130,horse\n145131,truck\n145132,bird\n145133,deer\n145134,automobile\n145135,cat\n145136,cat\n145137,cat\n145138,horse\n145139,cat\n145140,truck\n145141,cat\n145142,frog\n145143,horse\n145144,frog\n145145,deer\n145146,ship\n145147,truck\n145148,automobile\n145149,frog\n145150,frog\n145151,truck\n145152,ship\n145153,deer\n145154,truck\n145155,dog\n145156,airplane\n145157,airplane\n145158,frog\n145159,deer\n145160,deer\n145161,frog\n145162,truck\n145163,cat\n145164,ship\n145165,truck\n145166,deer\n145167,bird\n145168,dog\n145169,bird\n145170,bird\n145171,airplane\n145172,frog\n145173,horse\n145174,dog\n145175,horse\n145176,truck\n145177,deer\n145178,horse\n145179,frog\n145180,frog\n145181,frog\n145182,deer\n145183,dog\n145184,cat\n145185,deer\n145186,truck\n145187,cat\n145188,deer\n145189,automobile\n145190,deer\n145191,truck\n145192,dog\n145193,deer\n145194,automobile\n145195,cat\n145196,cat\n145197,frog\n145198,ship\n145199,automobile\n145200,horse\n145201,airplane\n145202,automobile\n145203,dog\n145204,frog\n145205,cat\n145206,bird\n145207,cat\n145208,truck\n145209,horse\n145210,bird\n145211,horse\n145212,cat\n145213,deer\n145214,horse\n145215,airplane\n145216,truck\n145217,cat\n145218,bird\n145219,truck\n145220,deer\n145221,frog\n145222,frog\n145223,cat\n145224,deer\n145225,ship\n145226,frog\n145227,ship\n145228,bird\n145229,automobile\n145230,dog\n145231,ship\n145232,horse\n145233,cat\n145234,automobile\n145235,deer\n145236,frog\n145237,frog\n145238,dog\n145239,airplane\n145240,cat\n145241,dog\n145242,bird\n145243,horse\n145244,dog\n145245,cat\n145246,truck\n145247,automobile\n145248,frog\n145249,horse\n145250,dog\n145251,dog\n145252,truck\n145253,cat\n145254,deer\n145255,ship\n145256,ship\n145257,dog\n145258,truck\n145259,ship\n145260,automobile\n145261,ship\n145262,cat\n145263,dog\n145264,automobile\n145265,cat\n145266,dog\n145267,airplane\n145268,airplane\n145269,horse\n145270,truck\n145271,cat\n145272,deer\n145273,ship\n145274,airplane\n145275,cat\n145276,deer\n145277,bird\n145278,frog\n145279,dog\n145280,airplane\n145281,frog\n145282,cat\n145283,frog\n145284,ship\n145285,cat\n145286,ship\n145287,horse\n145288,truck\n145289,cat\n145290,airplane\n145291,horse\n145292,horse\n145293,cat\n145294,cat\n145295,truck\n145296,airplane\n145297,airplane\n145298,dog\n145299,horse\n145300,bird\n145301,dog\n145302,airplane\n145303,airplane\n145304,horse\n145305,cat\n145306,cat\n145307,frog\n145308,cat\n145309,deer\n145310,truck\n145311,ship\n145312,truck\n145313,horse\n145314,dog\n145315,dog\n145316,airplane\n145317,cat\n145318,frog\n145319,bird\n145320,cat\n145321,frog\n145322,deer\n145323,deer\n145324,truck\n145325,dog\n145326,cat\n145327,airplane\n145328,bird\n145329,frog\n145330,truck\n145331,dog\n145332,cat\n145333,cat\n145334,airplane\n145335,truck\n145336,automobile\n145337,dog\n145338,frog\n145339,airplane\n145340,airplane\n145341,cat\n145342,truck\n145343,horse\n145344,truck\n145345,ship\n145346,deer\n145347,automobile\n145348,horse\n145349,deer\n145350,bird\n145351,automobile\n145352,cat\n145353,horse\n145354,airplane\n145355,horse\n145356,frog\n145357,frog\n145358,automobile\n145359,truck\n145360,airplane\n145361,dog\n145362,deer\n145363,frog\n145364,dog\n145365,airplane\n145366,automobile\n145367,frog\n145368,horse\n145369,airplane\n145370,deer\n145371,frog\n145372,horse\n145373,horse\n145374,cat\n145375,bird\n145376,deer\n145377,automobile\n145378,deer\n145379,deer\n145380,airplane\n145381,truck\n145382,truck\n145383,dog\n145384,frog\n145385,airplane\n145386,ship\n145387,frog\n145388,dog\n145389,deer\n145390,cat\n145391,horse\n145392,frog\n145393,deer\n145394,automobile\n145395,automobile\n145396,bird\n145397,cat\n145398,cat\n145399,airplane\n145400,truck\n145401,frog\n145402,truck\n145403,dog\n145404,deer\n145405,ship\n145406,frog\n145407,bird\n145408,deer\n145409,ship\n145410,airplane\n145411,horse\n145412,horse\n145413,truck\n145414,deer\n145415,horse\n145416,dog\n145417,truck\n145418,deer\n145419,dog\n145420,automobile\n145421,ship\n145422,airplane\n145423,ship\n145424,horse\n145425,cat\n145426,truck\n145427,automobile\n145428,deer\n145429,cat\n145430,cat\n145431,frog\n145432,frog\n145433,horse\n145434,airplane\n145435,dog\n145436,bird\n145437,cat\n145438,ship\n145439,dog\n145440,deer\n145441,airplane\n145442,truck\n145443,deer\n145444,frog\n145445,bird\n145446,cat\n145447,horse\n145448,truck\n145449,truck\n145450,truck\n145451,truck\n145452,deer\n145453,airplane\n145454,bird\n145455,frog\n145456,frog\n145457,automobile\n145458,automobile\n145459,dog\n145460,dog\n145461,horse\n145462,truck\n145463,deer\n145464,truck\n145465,airplane\n145466,truck\n145467,frog\n145468,horse\n145469,deer\n145470,cat\n145471,dog\n145472,frog\n145473,airplane\n145474,dog\n145475,deer\n145476,airplane\n145477,horse\n145478,horse\n145479,automobile\n145480,cat\n145481,airplane\n145482,horse\n145483,frog\n145484,bird\n145485,horse\n145486,truck\n145487,ship\n145488,deer\n145489,deer\n145490,cat\n145491,dog\n145492,horse\n145493,cat\n145494,dog\n145495,cat\n145496,automobile\n145497,dog\n145498,ship\n145499,frog\n145500,bird\n145501,truck\n145502,automobile\n145503,frog\n145504,automobile\n145505,cat\n145506,deer\n145507,frog\n145508,truck\n145509,horse\n145510,deer\n145511,ship\n145512,horse\n145513,deer\n145514,cat\n145515,dog\n145516,truck\n145517,deer\n145518,bird\n145519,dog\n145520,horse\n145521,frog\n145522,deer\n145523,airplane\n145524,automobile\n145525,truck\n145526,horse\n145527,dog\n145528,horse\n145529,ship\n145530,cat\n145531,airplane\n145532,frog\n145533,automobile\n145534,automobile\n145535,bird\n145536,automobile\n145537,truck\n145538,frog\n145539,deer\n145540,truck\n145541,deer\n145542,frog\n145543,deer\n145544,airplane\n145545,frog\n145546,automobile\n145547,automobile\n145548,truck\n145549,airplane\n145550,bird\n145551,ship\n145552,automobile\n145553,ship\n145554,airplane\n145555,dog\n145556,deer\n145557,airplane\n145558,dog\n145559,bird\n145560,bird\n145561,dog\n145562,ship\n145563,ship\n145564,dog\n145565,cat\n145566,deer\n145567,automobile\n145568,dog\n145569,automobile\n145570,deer\n145571,airplane\n145572,deer\n145573,frog\n145574,truck\n145575,horse\n145576,automobile\n145577,automobile\n145578,horse\n145579,frog\n145580,airplane\n145581,horse\n145582,cat\n145583,cat\n145584,automobile\n145585,frog\n145586,frog\n145587,horse\n145588,bird\n145589,airplane\n145590,bird\n145591,truck\n145592,deer\n145593,deer\n145594,frog\n145595,dog\n145596,bird\n145597,airplane\n145598,dog\n145599,frog\n145600,truck\n145601,bird\n145602,horse\n145603,deer\n145604,horse\n145605,horse\n145606,truck\n145607,bird\n145608,automobile\n145609,frog\n145610,frog\n145611,truck\n145612,dog\n145613,cat\n145614,deer\n145615,frog\n145616,dog\n145617,deer\n145618,frog\n145619,airplane\n145620,deer\n145621,truck\n145622,frog\n145623,dog\n145624,ship\n145625,automobile\n145626,ship\n145627,cat\n145628,frog\n145629,cat\n145630,horse\n145631,frog\n145632,deer\n145633,ship\n145634,deer\n145635,ship\n145636,truck\n145637,horse\n145638,airplane\n145639,frog\n145640,horse\n145641,dog\n145642,deer\n145643,truck\n145644,horse\n145645,dog\n145646,ship\n145647,bird\n145648,cat\n145649,horse\n145650,horse\n145651,deer\n145652,frog\n145653,frog\n145654,airplane\n145655,frog\n145656,cat\n145657,truck\n145658,dog\n145659,ship\n145660,automobile\n145661,truck\n145662,truck\n145663,cat\n145664,automobile\n145665,horse\n145666,horse\n145667,deer\n145668,truck\n145669,bird\n145670,airplane\n145671,truck\n145672,frog\n145673,truck\n145674,automobile\n145675,frog\n145676,frog\n145677,frog\n145678,cat\n145679,deer\n145680,horse\n145681,truck\n145682,truck\n145683,horse\n145684,frog\n145685,cat\n145686,horse\n145687,airplane\n145688,frog\n145689,airplane\n145690,frog\n145691,deer\n145692,horse\n145693,automobile\n145694,frog\n145695,dog\n145696,deer\n145697,frog\n145698,dog\n145699,frog\n145700,horse\n145701,automobile\n145702,frog\n145703,ship\n145704,frog\n145705,airplane\n145706,dog\n145707,automobile\n145708,deer\n145709,horse\n145710,dog\n145711,cat\n145712,automobile\n145713,automobile\n145714,cat\n145715,deer\n145716,cat\n145717,horse\n145718,deer\n145719,automobile\n145720,truck\n145721,cat\n145722,ship\n145723,frog\n145724,truck\n145725,horse\n145726,frog\n145727,airplane\n145728,deer\n145729,cat\n145730,bird\n145731,frog\n145732,airplane\n145733,deer\n145734,airplane\n145735,ship\n145736,horse\n145737,cat\n145738,deer\n145739,cat\n145740,truck\n145741,airplane\n145742,truck\n145743,bird\n145744,airplane\n145745,truck\n145746,dog\n145747,truck\n145748,cat\n145749,deer\n145750,automobile\n145751,truck\n145752,automobile\n145753,deer\n145754,airplane\n145755,horse\n145756,frog\n145757,truck\n145758,truck\n145759,horse\n145760,automobile\n145761,horse\n145762,truck\n145763,ship\n145764,airplane\n145765,ship\n145766,deer\n145767,airplane\n145768,automobile\n145769,ship\n145770,frog\n145771,frog\n145772,automobile\n145773,deer\n145774,deer\n145775,deer\n145776,cat\n145777,truck\n145778,frog\n145779,cat\n145780,deer\n145781,deer\n145782,horse\n145783,horse\n145784,cat\n145785,frog\n145786,frog\n145787,deer\n145788,ship\n145789,bird\n145790,automobile\n145791,frog\n145792,airplane\n145793,cat\n145794,ship\n145795,bird\n145796,cat\n145797,cat\n145798,ship\n145799,bird\n145800,airplane\n145801,automobile\n145802,horse\n145803,dog\n145804,ship\n145805,frog\n145806,frog\n145807,airplane\n145808,cat\n145809,horse\n145810,dog\n145811,ship\n145812,bird\n145813,deer\n145814,frog\n145815,airplane\n145816,cat\n145817,frog\n145818,dog\n145819,frog\n145820,automobile\n145821,cat\n145822,cat\n145823,ship\n145824,deer\n145825,cat\n145826,truck\n145827,deer\n145828,cat\n145829,frog\n145830,horse\n145831,frog\n145832,airplane\n145833,cat\n145834,cat\n145835,airplane\n145836,horse\n145837,dog\n145838,dog\n145839,ship\n145840,cat\n145841,frog\n145842,cat\n145843,airplane\n145844,deer\n145845,airplane\n145846,truck\n145847,truck\n145848,frog\n145849,ship\n145850,cat\n145851,truck\n145852,deer\n145853,airplane\n145854,cat\n145855,horse\n145856,frog\n145857,deer\n145858,automobile\n145859,frog\n145860,deer\n145861,cat\n145862,frog\n145863,horse\n145864,frog\n145865,deer\n145866,bird\n145867,cat\n145868,horse\n145869,airplane\n145870,dog\n145871,frog\n145872,airplane\n145873,airplane\n145874,truck\n145875,dog\n145876,bird\n145877,airplane\n145878,truck\n145879,bird\n145880,cat\n145881,deer\n145882,deer\n145883,frog\n145884,cat\n145885,dog\n145886,horse\n145887,deer\n145888,deer\n145889,deer\n145890,truck\n145891,frog\n145892,truck\n145893,deer\n145894,bird\n145895,cat\n145896,ship\n145897,deer\n145898,cat\n145899,horse\n145900,truck\n145901,automobile\n145902,bird\n145903,dog\n145904,horse\n145905,frog\n145906,deer\n145907,dog\n145908,dog\n145909,airplane\n145910,cat\n145911,truck\n145912,cat\n145913,deer\n145914,cat\n145915,deer\n145916,automobile\n145917,automobile\n145918,airplane\n145919,cat\n145920,frog\n145921,dog\n145922,dog\n145923,dog\n145924,truck\n145925,frog\n145926,bird\n145927,automobile\n145928,truck\n145929,deer\n145930,dog\n145931,dog\n145932,horse\n145933,deer\n145934,truck\n145935,frog\n145936,cat\n145937,dog\n145938,cat\n145939,ship\n145940,automobile\n145941,bird\n145942,deer\n145943,frog\n145944,dog\n145945,deer\n145946,frog\n145947,deer\n145948,deer\n145949,horse\n145950,horse\n145951,horse\n145952,ship\n145953,truck\n145954,deer\n145955,horse\n145956,dog\n145957,horse\n145958,deer\n145959,bird\n145960,truck\n145961,deer\n145962,frog\n145963,frog\n145964,bird\n145965,frog\n145966,truck\n145967,deer\n145968,dog\n145969,bird\n145970,horse\n145971,truck\n145972,deer\n145973,truck\n145974,cat\n145975,bird\n145976,frog\n145977,airplane\n145978,frog\n145979,airplane\n145980,dog\n145981,horse\n145982,ship\n145983,airplane\n145984,deer\n145985,ship\n145986,deer\n145987,ship\n145988,airplane\n145989,frog\n145990,bird\n145991,bird\n145992,dog\n145993,deer\n145994,cat\n145995,frog\n145996,deer\n145997,bird\n145998,automobile\n145999,truck\n146000,automobile\n146001,frog\n146002,truck\n146003,automobile\n146004,bird\n146005,bird\n146006,airplane\n146007,cat\n146008,cat\n146009,truck\n146010,bird\n146011,automobile\n146012,dog\n146013,frog\n146014,deer\n146015,ship\n146016,bird\n146017,deer\n146018,airplane\n146019,deer\n146020,automobile\n146021,truck\n146022,horse\n146023,deer\n146024,deer\n146025,cat\n146026,ship\n146027,truck\n146028,deer\n146029,deer\n146030,deer\n146031,dog\n146032,ship\n146033,deer\n146034,deer\n146035,dog\n146036,ship\n146037,cat\n146038,frog\n146039,horse\n146040,cat\n146041,cat\n146042,cat\n146043,cat\n146044,deer\n146045,deer\n146046,cat\n146047,dog\n146048,frog\n146049,cat\n146050,dog\n146051,truck\n146052,horse\n146053,ship\n146054,truck\n146055,frog\n146056,ship\n146057,bird\n146058,truck\n146059,dog\n146060,truck\n146061,truck\n146062,dog\n146063,airplane\n146064,automobile\n146065,dog\n146066,cat\n146067,cat\n146068,frog\n146069,dog\n146070,truck\n146071,deer\n146072,ship\n146073,truck\n146074,deer\n146075,deer\n146076,deer\n146077,bird\n146078,cat\n146079,deer\n146080,truck\n146081,dog\n146082,ship\n146083,dog\n146084,frog\n146085,frog\n146086,dog\n146087,airplane\n146088,ship\n146089,dog\n146090,deer\n146091,truck\n146092,deer\n146093,bird\n146094,deer\n146095,airplane\n146096,cat\n146097,frog\n146098,dog\n146099,frog\n146100,ship\n146101,truck\n146102,bird\n146103,deer\n146104,cat\n146105,frog\n146106,frog\n146107,bird\n146108,deer\n146109,automobile\n146110,deer\n146111,frog\n146112,dog\n146113,frog\n146114,deer\n146115,frog\n146116,dog\n146117,truck\n146118,deer\n146119,deer\n146120,airplane\n146121,bird\n146122,truck\n146123,dog\n146124,cat\n146125,horse\n146126,horse\n146127,automobile\n146128,ship\n146129,horse\n146130,truck\n146131,cat\n146132,airplane\n146133,bird\n146134,automobile\n146135,ship\n146136,cat\n146137,dog\n146138,dog\n146139,automobile\n146140,truck\n146141,ship\n146142,frog\n146143,truck\n146144,ship\n146145,frog\n146146,airplane\n146147,horse\n146148,ship\n146149,cat\n146150,truck\n146151,automobile\n146152,ship\n146153,dog\n146154,ship\n146155,dog\n146156,cat\n146157,horse\n146158,airplane\n146159,deer\n146160,bird\n146161,truck\n146162,frog\n146163,ship\n146164,horse\n146165,bird\n146166,bird\n146167,horse\n146168,horse\n146169,truck\n146170,horse\n146171,truck\n146172,horse\n146173,frog\n146174,deer\n146175,automobile\n146176,dog\n146177,bird\n146178,bird\n146179,ship\n146180,deer\n146181,deer\n146182,deer\n146183,cat\n146184,cat\n146185,airplane\n146186,automobile\n146187,deer\n146188,horse\n146189,airplane\n146190,horse\n146191,airplane\n146192,airplane\n146193,airplane\n146194,automobile\n146195,ship\n146196,deer\n146197,truck\n146198,cat\n146199,dog\n146200,cat\n146201,dog\n146202,frog\n146203,cat\n146204,automobile\n146205,horse\n146206,frog\n146207,deer\n146208,airplane\n146209,horse\n146210,ship\n146211,dog\n146212,airplane\n146213,horse\n146214,deer\n146215,dog\n146216,automobile\n146217,ship\n146218,cat\n146219,horse\n146220,truck\n146221,frog\n146222,dog\n146223,automobile\n146224,cat\n146225,cat\n146226,dog\n146227,cat\n146228,dog\n146229,cat\n146230,frog\n146231,frog\n146232,truck\n146233,frog\n146234,frog\n146235,frog\n146236,automobile\n146237,dog\n146238,frog\n146239,frog\n146240,cat\n146241,cat\n146242,cat\n146243,horse\n146244,deer\n146245,ship\n146246,bird\n146247,cat\n146248,deer\n146249,cat\n146250,deer\n146251,horse\n146252,automobile\n146253,dog\n146254,cat\n146255,dog\n146256,automobile\n146257,truck\n146258,cat\n146259,deer\n146260,deer\n146261,bird\n146262,deer\n146263,bird\n146264,bird\n146265,ship\n146266,airplane\n146267,horse\n146268,frog\n146269,airplane\n146270,bird\n146271,airplane\n146272,bird\n146273,horse\n146274,cat\n146275,horse\n146276,deer\n146277,bird\n146278,airplane\n146279,airplane\n146280,horse\n146281,cat\n146282,truck\n146283,frog\n146284,truck\n146285,truck\n146286,airplane\n146287,dog\n146288,dog\n146289,truck\n146290,horse\n146291,cat\n146292,cat\n146293,deer\n146294,ship\n146295,airplane\n146296,truck\n146297,frog\n146298,horse\n146299,deer\n146300,cat\n146301,cat\n146302,deer\n146303,airplane\n146304,cat\n146305,deer\n146306,dog\n146307,airplane\n146308,frog\n146309,frog\n146310,bird\n146311,bird\n146312,cat\n146313,airplane\n146314,horse\n146315,truck\n146316,dog\n146317,cat\n146318,automobile\n146319,deer\n146320,dog\n146321,horse\n146322,dog\n146323,horse\n146324,frog\n146325,truck\n146326,dog\n146327,horse\n146328,airplane\n146329,horse\n146330,automobile\n146331,ship\n146332,frog\n146333,truck\n146334,dog\n146335,dog\n146336,airplane\n146337,dog\n146338,airplane\n146339,bird\n146340,automobile\n146341,bird\n146342,airplane\n146343,airplane\n146344,airplane\n146345,bird\n146346,airplane\n146347,truck\n146348,cat\n146349,frog\n146350,horse\n146351,deer\n146352,deer\n146353,horse\n146354,airplane\n146355,bird\n146356,cat\n146357,horse\n146358,automobile\n146359,deer\n146360,dog\n146361,cat\n146362,dog\n146363,horse\n146364,deer\n146365,deer\n146366,cat\n146367,bird\n146368,truck\n146369,cat\n146370,airplane\n146371,automobile\n146372,ship\n146373,cat\n146374,dog\n146375,horse\n146376,cat\n146377,cat\n146378,horse\n146379,horse\n146380,airplane\n146381,dog\n146382,horse\n146383,ship\n146384,cat\n146385,dog\n146386,horse\n146387,cat\n146388,deer\n146389,truck\n146390,automobile\n146391,truck\n146392,truck\n146393,frog\n146394,frog\n146395,frog\n146396,dog\n146397,airplane\n146398,frog\n146399,bird\n146400,bird\n146401,ship\n146402,cat\n146403,cat\n146404,bird\n146405,bird\n146406,bird\n146407,automobile\n146408,frog\n146409,deer\n146410,deer\n146411,horse\n146412,frog\n146413,dog\n146414,truck\n146415,bird\n146416,horse\n146417,airplane\n146418,dog\n146419,bird\n146420,airplane\n146421,airplane\n146422,cat\n146423,bird\n146424,deer\n146425,truck\n146426,automobile\n146427,airplane\n146428,frog\n146429,dog\n146430,ship\n146431,bird\n146432,truck\n146433,horse\n146434,horse\n146435,dog\n146436,frog\n146437,truck\n146438,deer\n146439,truck\n146440,frog\n146441,horse\n146442,airplane\n146443,airplane\n146444,airplane\n146445,deer\n146446,horse\n146447,truck\n146448,deer\n146449,frog\n146450,cat\n146451,bird\n146452,dog\n146453,deer\n146454,deer\n146455,dog\n146456,airplane\n146457,automobile\n146458,deer\n146459,frog\n146460,ship\n146461,airplane\n146462,deer\n146463,truck\n146464,dog\n146465,dog\n146466,cat\n146467,ship\n146468,horse\n146469,horse\n146470,airplane\n146471,horse\n146472,bird\n146473,deer\n146474,deer\n146475,frog\n146476,cat\n146477,frog\n146478,airplane\n146479,deer\n146480,deer\n146481,automobile\n146482,ship\n146483,cat\n146484,horse\n146485,horse\n146486,horse\n146487,cat\n146488,dog\n146489,bird\n146490,automobile\n146491,horse\n146492,frog\n146493,horse\n146494,frog\n146495,truck\n146496,dog\n146497,cat\n146498,dog\n146499,deer\n146500,bird\n146501,bird\n146502,dog\n146503,airplane\n146504,bird\n146505,cat\n146506,airplane\n146507,dog\n146508,frog\n146509,ship\n146510,dog\n146511,dog\n146512,dog\n146513,dog\n146514,deer\n146515,airplane\n146516,ship\n146517,deer\n146518,cat\n146519,truck\n146520,dog\n146521,bird\n146522,dog\n146523,airplane\n146524,bird\n146525,automobile\n146526,deer\n146527,cat\n146528,automobile\n146529,deer\n146530,frog\n146531,horse\n146532,deer\n146533,cat\n146534,horse\n146535,deer\n146536,bird\n146537,automobile\n146538,truck\n146539,automobile\n146540,airplane\n146541,ship\n146542,airplane\n146543,cat\n146544,bird\n146545,frog\n146546,deer\n146547,cat\n146548,cat\n146549,truck\n146550,frog\n146551,cat\n146552,dog\n146553,automobile\n146554,bird\n146555,frog\n146556,frog\n146557,bird\n146558,bird\n146559,airplane\n146560,automobile\n146561,horse\n146562,ship\n146563,dog\n146564,frog\n146565,horse\n146566,deer\n146567,cat\n146568,truck\n146569,deer\n146570,airplane\n146571,ship\n146572,cat\n146573,bird\n146574,frog\n146575,cat\n146576,automobile\n146577,cat\n146578,ship\n146579,dog\n146580,deer\n146581,automobile\n146582,cat\n146583,airplane\n146584,bird\n146585,frog\n146586,deer\n146587,frog\n146588,dog\n146589,deer\n146590,ship\n146591,truck\n146592,deer\n146593,truck\n146594,cat\n146595,cat\n146596,frog\n146597,truck\n146598,airplane\n146599,ship\n146600,bird\n146601,horse\n146602,deer\n146603,frog\n146604,frog\n146605,frog\n146606,horse\n146607,ship\n146608,dog\n146609,airplane\n146610,frog\n146611,dog\n146612,deer\n146613,cat\n146614,ship\n146615,bird\n146616,horse\n146617,deer\n146618,ship\n146619,truck\n146620,frog\n146621,frog\n146622,automobile\n146623,frog\n146624,dog\n146625,truck\n146626,cat\n146627,bird\n146628,deer\n146629,frog\n146630,cat\n146631,bird\n146632,horse\n146633,dog\n146634,ship\n146635,ship\n146636,cat\n146637,airplane\n146638,airplane\n146639,frog\n146640,frog\n146641,ship\n146642,truck\n146643,bird\n146644,horse\n146645,frog\n146646,horse\n146647,deer\n146648,ship\n146649,dog\n146650,ship\n146651,cat\n146652,deer\n146653,horse\n146654,airplane\n146655,dog\n146656,deer\n146657,truck\n146658,bird\n146659,dog\n146660,dog\n146661,ship\n146662,airplane\n146663,deer\n146664,truck\n146665,frog\n146666,dog\n146667,deer\n146668,truck\n146669,frog\n146670,horse\n146671,bird\n146672,dog\n146673,dog\n146674,bird\n146675,airplane\n146676,cat\n146677,bird\n146678,frog\n146679,dog\n146680,horse\n146681,frog\n146682,dog\n146683,truck\n146684,cat\n146685,ship\n146686,bird\n146687,cat\n146688,frog\n146689,frog\n146690,cat\n146691,dog\n146692,truck\n146693,dog\n146694,deer\n146695,horse\n146696,bird\n146697,deer\n146698,truck\n146699,truck\n146700,ship\n146701,truck\n146702,horse\n146703,frog\n146704,deer\n146705,frog\n146706,frog\n146707,horse\n146708,airplane\n146709,cat\n146710,cat\n146711,horse\n146712,frog\n146713,frog\n146714,truck\n146715,deer\n146716,dog\n146717,deer\n146718,horse\n146719,deer\n146720,cat\n146721,deer\n146722,airplane\n146723,ship\n146724,horse\n146725,horse\n146726,frog\n146727,ship\n146728,automobile\n146729,frog\n146730,automobile\n146731,automobile\n146732,cat\n146733,automobile\n146734,cat\n146735,deer\n146736,truck\n146737,cat\n146738,horse\n146739,deer\n146740,frog\n146741,cat\n146742,airplane\n146743,dog\n146744,automobile\n146745,cat\n146746,ship\n146747,cat\n146748,truck\n146749,ship\n146750,cat\n146751,dog\n146752,bird\n146753,airplane\n146754,automobile\n146755,deer\n146756,deer\n146757,deer\n146758,dog\n146759,ship\n146760,deer\n146761,ship\n146762,horse\n146763,frog\n146764,bird\n146765,bird\n146766,airplane\n146767,frog\n146768,ship\n146769,cat\n146770,dog\n146771,automobile\n146772,deer\n146773,horse\n146774,deer\n146775,airplane\n146776,deer\n146777,truck\n146778,deer\n146779,ship\n146780,truck\n146781,bird\n146782,horse\n146783,dog\n146784,ship\n146785,frog\n146786,airplane\n146787,frog\n146788,ship\n146789,ship\n146790,airplane\n146791,deer\n146792,bird\n146793,dog\n146794,deer\n146795,automobile\n146796,dog\n146797,truck\n146798,dog\n146799,truck\n146800,cat\n146801,dog\n146802,dog\n146803,deer\n146804,truck\n146805,ship\n146806,deer\n146807,bird\n146808,automobile\n146809,dog\n146810,horse\n146811,deer\n146812,truck\n146813,truck\n146814,cat\n146815,dog\n146816,frog\n146817,dog\n146818,ship\n146819,deer\n146820,bird\n146821,frog\n146822,truck\n146823,bird\n146824,cat\n146825,deer\n146826,automobile\n146827,dog\n146828,deer\n146829,truck\n146830,dog\n146831,ship\n146832,deer\n146833,automobile\n146834,horse\n146835,dog\n146836,bird\n146837,cat\n146838,frog\n146839,deer\n146840,cat\n146841,deer\n146842,horse\n146843,bird\n146844,ship\n146845,horse\n146846,ship\n146847,truck\n146848,cat\n146849,frog\n146850,truck\n146851,automobile\n146852,cat\n146853,deer\n146854,horse\n146855,ship\n146856,bird\n146857,bird\n146858,truck\n146859,dog\n146860,automobile\n146861,airplane\n146862,dog\n146863,dog\n146864,deer\n146865,ship\n146866,deer\n146867,cat\n146868,cat\n146869,ship\n146870,horse\n146871,frog\n146872,deer\n146873,deer\n146874,deer\n146875,automobile\n146876,bird\n146877,horse\n146878,bird\n146879,airplane\n146880,deer\n146881,dog\n146882,automobile\n146883,airplane\n146884,cat\n146885,cat\n146886,automobile\n146887,frog\n146888,bird\n146889,automobile\n146890,cat\n146891,airplane\n146892,horse\n146893,airplane\n146894,cat\n146895,truck\n146896,horse\n146897,automobile\n146898,deer\n146899,horse\n146900,frog\n146901,deer\n146902,dog\n146903,horse\n146904,cat\n146905,deer\n146906,airplane\n146907,deer\n146908,dog\n146909,automobile\n146910,automobile\n146911,cat\n146912,cat\n146913,truck\n146914,bird\n146915,airplane\n146916,deer\n146917,cat\n146918,cat\n146919,deer\n146920,dog\n146921,horse\n146922,truck\n146923,bird\n146924,frog\n146925,ship\n146926,horse\n146927,truck\n146928,frog\n146929,cat\n146930,frog\n146931,ship\n146932,deer\n146933,bird\n146934,truck\n146935,ship\n146936,cat\n146937,cat\n146938,dog\n146939,cat\n146940,deer\n146941,deer\n146942,airplane\n146943,dog\n146944,cat\n146945,bird\n146946,deer\n146947,frog\n146948,frog\n146949,ship\n146950,horse\n146951,bird\n146952,airplane\n146953,deer\n146954,horse\n146955,airplane\n146956,deer\n146957,horse\n146958,automobile\n146959,ship\n146960,dog\n146961,ship\n146962,dog\n146963,cat\n146964,bird\n146965,dog\n146966,bird\n146967,bird\n146968,horse\n146969,ship\n146970,cat\n146971,ship\n146972,airplane\n146973,bird\n146974,dog\n146975,frog\n146976,frog\n146977,frog\n146978,dog\n146979,dog\n146980,airplane\n146981,ship\n146982,deer\n146983,frog\n146984,truck\n146985,deer\n146986,deer\n146987,dog\n146988,horse\n146989,truck\n146990,dog\n146991,deer\n146992,dog\n146993,ship\n146994,bird\n146995,dog\n146996,truck\n146997,airplane\n146998,horse\n146999,airplane\n147000,bird\n147001,dog\n147002,horse\n147003,cat\n147004,deer\n147005,automobile\n147006,dog\n147007,dog\n147008,truck\n147009,deer\n147010,bird\n147011,deer\n147012,automobile\n147013,deer\n147014,horse\n147015,airplane\n147016,ship\n147017,ship\n147018,dog\n147019,airplane\n147020,cat\n147021,bird\n147022,frog\n147023,horse\n147024,dog\n147025,frog\n147026,automobile\n147027,ship\n147028,deer\n147029,bird\n147030,airplane\n147031,deer\n147032,bird\n147033,airplane\n147034,automobile\n147035,ship\n147036,deer\n147037,dog\n147038,airplane\n147039,deer\n147040,bird\n147041,bird\n147042,airplane\n147043,horse\n147044,cat\n147045,ship\n147046,frog\n147047,dog\n147048,bird\n147049,ship\n147050,deer\n147051,dog\n147052,dog\n147053,bird\n147054,dog\n147055,cat\n147056,cat\n147057,deer\n147058,automobile\n147059,automobile\n147060,automobile\n147061,ship\n147062,dog\n147063,bird\n147064,dog\n147065,frog\n147066,horse\n147067,automobile\n147068,automobile\n147069,horse\n147070,frog\n147071,bird\n147072,horse\n147073,dog\n147074,deer\n147075,dog\n147076,frog\n147077,deer\n147078,deer\n147079,dog\n147080,frog\n147081,frog\n147082,deer\n147083,airplane\n147084,ship\n147085,cat\n147086,bird\n147087,airplane\n147088,truck\n147089,airplane\n147090,horse\n147091,ship\n147092,dog\n147093,dog\n147094,dog\n147095,airplane\n147096,bird\n147097,automobile\n147098,horse\n147099,bird\n147100,deer\n147101,dog\n147102,horse\n147103,automobile\n147104,frog\n147105,dog\n147106,cat\n147107,truck\n147108,automobile\n147109,deer\n147110,deer\n147111,ship\n147112,cat\n147113,automobile\n147114,dog\n147115,dog\n147116,ship\n147117,cat\n147118,truck\n147119,horse\n147120,horse\n147121,ship\n147122,horse\n147123,airplane\n147124,dog\n147125,deer\n147126,truck\n147127,truck\n147128,frog\n147129,ship\n147130,horse\n147131,ship\n147132,airplane\n147133,airplane\n147134,cat\n147135,truck\n147136,ship\n147137,ship\n147138,bird\n147139,bird\n147140,cat\n147141,ship\n147142,cat\n147143,deer\n147144,cat\n147145,cat\n147146,deer\n147147,cat\n147148,deer\n147149,ship\n147150,dog\n147151,deer\n147152,deer\n147153,deer\n147154,frog\n147155,frog\n147156,automobile\n147157,airplane\n147158,automobile\n147159,deer\n147160,ship\n147161,truck\n147162,bird\n147163,automobile\n147164,deer\n147165,frog\n147166,dog\n147167,frog\n147168,horse\n147169,dog\n147170,dog\n147171,automobile\n147172,dog\n147173,horse\n147174,ship\n147175,cat\n147176,dog\n147177,frog\n147178,deer\n147179,truck\n147180,truck\n147181,bird\n147182,truck\n147183,frog\n147184,truck\n147185,automobile\n147186,cat\n147187,dog\n147188,horse\n147189,dog\n147190,cat\n147191,ship\n147192,frog\n147193,dog\n147194,dog\n147195,dog\n147196,cat\n147197,ship\n147198,deer\n147199,bird\n147200,horse\n147201,frog\n147202,airplane\n147203,airplane\n147204,frog\n147205,cat\n147206,airplane\n147207,frog\n147208,dog\n147209,deer\n147210,horse\n147211,horse\n147212,horse\n147213,truck\n147214,cat\n147215,airplane\n147216,airplane\n147217,automobile\n147218,automobile\n147219,horse\n147220,dog\n147221,cat\n147222,bird\n147223,ship\n147224,cat\n147225,truck\n147226,deer\n147227,automobile\n147228,airplane\n147229,cat\n147230,truck\n147231,frog\n147232,dog\n147233,horse\n147234,automobile\n147235,airplane\n147236,deer\n147237,frog\n147238,bird\n147239,bird\n147240,cat\n147241,airplane\n147242,dog\n147243,ship\n147244,bird\n147245,frog\n147246,dog\n147247,cat\n147248,airplane\n147249,deer\n147250,airplane\n147251,horse\n147252,cat\n147253,bird\n147254,horse\n147255,deer\n147256,bird\n147257,cat\n147258,automobile\n147259,deer\n147260,ship\n147261,truck\n147262,cat\n147263,bird\n147264,frog\n147265,automobile\n147266,bird\n147267,dog\n147268,horse\n147269,cat\n147270,dog\n147271,truck\n147272,automobile\n147273,deer\n147274,frog\n147275,dog\n147276,horse\n147277,automobile\n147278,automobile\n147279,deer\n147280,cat\n147281,frog\n147282,airplane\n147283,truck\n147284,bird\n147285,frog\n147286,airplane\n147287,bird\n147288,truck\n147289,airplane\n147290,dog\n147291,frog\n147292,horse\n147293,deer\n147294,truck\n147295,cat\n147296,dog\n147297,horse\n147298,ship\n147299,ship\n147300,cat\n147301,truck\n147302,truck\n147303,airplane\n147304,cat\n147305,dog\n147306,truck\n147307,bird\n147308,truck\n147309,bird\n147310,frog\n147311,ship\n147312,bird\n147313,bird\n147314,dog\n147315,deer\n147316,bird\n147317,bird\n147318,horse\n147319,airplane\n147320,airplane\n147321,frog\n147322,automobile\n147323,cat\n147324,automobile\n147325,horse\n147326,bird\n147327,dog\n147328,deer\n147329,deer\n147330,dog\n147331,frog\n147332,deer\n147333,frog\n147334,truck\n147335,horse\n147336,horse\n147337,automobile\n147338,deer\n147339,bird\n147340,horse\n147341,frog\n147342,deer\n147343,frog\n147344,frog\n147345,ship\n147346,truck\n147347,deer\n147348,dog\n147349,dog\n147350,deer\n147351,bird\n147352,frog\n147353,bird\n147354,automobile\n147355,airplane\n147356,deer\n147357,airplane\n147358,bird\n147359,truck\n147360,horse\n147361,dog\n147362,ship\n147363,truck\n147364,frog\n147365,dog\n147366,truck\n147367,bird\n147368,cat\n147369,automobile\n147370,cat\n147371,ship\n147372,frog\n147373,dog\n147374,deer\n147375,dog\n147376,airplane\n147377,airplane\n147378,horse\n147379,deer\n147380,truck\n147381,airplane\n147382,automobile\n147383,frog\n147384,deer\n147385,bird\n147386,bird\n147387,airplane\n147388,airplane\n147389,frog\n147390,horse\n147391,cat\n147392,dog\n147393,frog\n147394,dog\n147395,deer\n147396,horse\n147397,deer\n147398,ship\n147399,horse\n147400,frog\n147401,deer\n147402,ship\n147403,truck\n147404,cat\n147405,horse\n147406,automobile\n147407,bird\n147408,dog\n147409,frog\n147410,bird\n147411,dog\n147412,frog\n147413,cat\n147414,truck\n147415,deer\n147416,truck\n147417,bird\n147418,horse\n147419,deer\n147420,truck\n147421,deer\n147422,dog\n147423,frog\n147424,airplane\n147425,dog\n147426,dog\n147427,dog\n147428,deer\n147429,dog\n147430,deer\n147431,airplane\n147432,ship\n147433,ship\n147434,truck\n147435,airplane\n147436,ship\n147437,dog\n147438,dog\n147439,deer\n147440,airplane\n147441,automobile\n147442,automobile\n147443,dog\n147444,cat\n147445,automobile\n147446,deer\n147447,truck\n147448,bird\n147449,deer\n147450,ship\n147451,deer\n147452,ship\n147453,frog\n147454,deer\n147455,cat\n147456,deer\n147457,bird\n147458,cat\n147459,truck\n147460,automobile\n147461,ship\n147462,deer\n147463,ship\n147464,horse\n147465,ship\n147466,horse\n147467,cat\n147468,horse\n147469,airplane\n147470,airplane\n147471,cat\n147472,truck\n147473,frog\n147474,cat\n147475,deer\n147476,frog\n147477,truck\n147478,airplane\n147479,bird\n147480,frog\n147481,deer\n147482,horse\n147483,frog\n147484,frog\n147485,horse\n147486,bird\n147487,frog\n147488,dog\n147489,frog\n147490,bird\n147491,airplane\n147492,ship\n147493,deer\n147494,horse\n147495,deer\n147496,dog\n147497,deer\n147498,bird\n147499,truck\n147500,deer\n147501,ship\n147502,bird\n147503,deer\n147504,dog\n147505,ship\n147506,deer\n147507,ship\n147508,bird\n147509,cat\n147510,cat\n147511,bird\n147512,ship\n147513,truck\n147514,truck\n147515,truck\n147516,cat\n147517,cat\n147518,automobile\n147519,bird\n147520,deer\n147521,dog\n147522,frog\n147523,horse\n147524,airplane\n147525,frog\n147526,cat\n147527,frog\n147528,deer\n147529,bird\n147530,automobile\n147531,dog\n147532,truck\n147533,horse\n147534,horse\n147535,cat\n147536,frog\n147537,bird\n147538,airplane\n147539,frog\n147540,automobile\n147541,automobile\n147542,airplane\n147543,airplane\n147544,frog\n147545,cat\n147546,horse\n147547,airplane\n147548,bird\n147549,horse\n147550,truck\n147551,airplane\n147552,cat\n147553,dog\n147554,automobile\n147555,airplane\n147556,dog\n147557,deer\n147558,frog\n147559,airplane\n147560,truck\n147561,airplane\n147562,airplane\n147563,truck\n147564,frog\n147565,deer\n147566,frog\n147567,truck\n147568,deer\n147569,deer\n147570,cat\n147571,truck\n147572,truck\n147573,automobile\n147574,frog\n147575,ship\n147576,airplane\n147577,automobile\n147578,cat\n147579,dog\n147580,automobile\n147581,deer\n147582,deer\n147583,cat\n147584,frog\n147585,bird\n147586,bird\n147587,dog\n147588,truck\n147589,frog\n147590,deer\n147591,dog\n147592,cat\n147593,dog\n147594,cat\n147595,airplane\n147596,cat\n147597,airplane\n147598,ship\n147599,truck\n147600,deer\n147601,airplane\n147602,deer\n147603,bird\n147604,cat\n147605,horse\n147606,ship\n147607,cat\n147608,deer\n147609,dog\n147610,automobile\n147611,bird\n147612,dog\n147613,horse\n147614,cat\n147615,dog\n147616,deer\n147617,truck\n147618,deer\n147619,deer\n147620,dog\n147621,deer\n147622,cat\n147623,ship\n147624,cat\n147625,dog\n147626,bird\n147627,cat\n147628,deer\n147629,frog\n147630,deer\n147631,automobile\n147632,deer\n147633,airplane\n147634,ship\n147635,frog\n147636,bird\n147637,cat\n147638,cat\n147639,airplane\n147640,truck\n147641,dog\n147642,bird\n147643,airplane\n147644,cat\n147645,bird\n147646,truck\n147647,truck\n147648,frog\n147649,ship\n147650,cat\n147651,ship\n147652,automobile\n147653,truck\n147654,automobile\n147655,ship\n147656,truck\n147657,dog\n147658,dog\n147659,truck\n147660,truck\n147661,horse\n147662,bird\n147663,truck\n147664,horse\n147665,bird\n147666,cat\n147667,bird\n147668,deer\n147669,truck\n147670,airplane\n147671,deer\n147672,bird\n147673,ship\n147674,cat\n147675,cat\n147676,bird\n147677,truck\n147678,horse\n147679,horse\n147680,automobile\n147681,deer\n147682,cat\n147683,cat\n147684,dog\n147685,airplane\n147686,cat\n147687,frog\n147688,truck\n147689,deer\n147690,dog\n147691,truck\n147692,horse\n147693,automobile\n147694,airplane\n147695,airplane\n147696,dog\n147697,frog\n147698,horse\n147699,horse\n147700,dog\n147701,truck\n147702,frog\n147703,cat\n147704,airplane\n147705,horse\n147706,bird\n147707,cat\n147708,airplane\n147709,bird\n147710,dog\n147711,truck\n147712,cat\n147713,airplane\n147714,cat\n147715,truck\n147716,airplane\n147717,deer\n147718,airplane\n147719,cat\n147720,bird\n147721,horse\n147722,horse\n147723,truck\n147724,horse\n147725,frog\n147726,airplane\n147727,frog\n147728,bird\n147729,cat\n147730,bird\n147731,bird\n147732,frog\n147733,airplane\n147734,truck\n147735,deer\n147736,ship\n147737,horse\n147738,dog\n147739,automobile\n147740,ship\n147741,deer\n147742,dog\n147743,deer\n147744,cat\n147745,airplane\n147746,ship\n147747,frog\n147748,dog\n147749,airplane\n147750,horse\n147751,bird\n147752,ship\n147753,dog\n147754,truck\n147755,ship\n147756,frog\n147757,dog\n147758,dog\n147759,dog\n147760,frog\n147761,truck\n147762,frog\n147763,airplane\n147764,horse\n147765,horse\n147766,bird\n147767,bird\n147768,ship\n147769,bird\n147770,ship\n147771,dog\n147772,cat\n147773,deer\n147774,ship\n147775,airplane\n147776,dog\n147777,cat\n147778,cat\n147779,airplane\n147780,cat\n147781,horse\n147782,truck\n147783,cat\n147784,truck\n147785,cat\n147786,bird\n147787,dog\n147788,automobile\n147789,airplane\n147790,deer\n147791,automobile\n147792,horse\n147793,bird\n147794,ship\n147795,dog\n147796,horse\n147797,cat\n147798,airplane\n147799,cat\n147800,horse\n147801,horse\n147802,frog\n147803,frog\n147804,deer\n147805,deer\n147806,frog\n147807,deer\n147808,frog\n147809,frog\n147810,truck\n147811,bird\n147812,truck\n147813,ship\n147814,deer\n147815,deer\n147816,airplane\n147817,truck\n147818,deer\n147819,horse\n147820,airplane\n147821,airplane\n147822,cat\n147823,dog\n147824,truck\n147825,bird\n147826,bird\n147827,deer\n147828,truck\n147829,frog\n147830,deer\n147831,cat\n147832,frog\n147833,horse\n147834,frog\n147835,bird\n147836,horse\n147837,frog\n147838,dog\n147839,truck\n147840,deer\n147841,frog\n147842,deer\n147843,deer\n147844,truck\n147845,horse\n147846,deer\n147847,truck\n147848,deer\n147849,airplane\n147850,bird\n147851,horse\n147852,frog\n147853,frog\n147854,cat\n147855,deer\n147856,truck\n147857,bird\n147858,truck\n147859,cat\n147860,ship\n147861,automobile\n147862,truck\n147863,cat\n147864,bird\n147865,bird\n147866,ship\n147867,deer\n147868,truck\n147869,bird\n147870,frog\n147871,cat\n147872,dog\n147873,ship\n147874,automobile\n147875,truck\n147876,deer\n147877,bird\n147878,truck\n147879,bird\n147880,airplane\n147881,ship\n147882,bird\n147883,deer\n147884,automobile\n147885,ship\n147886,horse\n147887,truck\n147888,frog\n147889,cat\n147890,cat\n147891,airplane\n147892,horse\n147893,dog\n147894,deer\n147895,bird\n147896,cat\n147897,truck\n147898,cat\n147899,automobile\n147900,cat\n147901,frog\n147902,deer\n147903,bird\n147904,deer\n147905,airplane\n147906,horse\n147907,automobile\n147908,dog\n147909,deer\n147910,frog\n147911,cat\n147912,frog\n147913,frog\n147914,horse\n147915,horse\n147916,horse\n147917,airplane\n147918,cat\n147919,deer\n147920,ship\n147921,bird\n147922,deer\n147923,automobile\n147924,bird\n147925,bird\n147926,bird\n147927,truck\n147928,bird\n147929,airplane\n147930,automobile\n147931,ship\n147932,cat\n147933,cat\n147934,automobile\n147935,dog\n147936,deer\n147937,cat\n147938,dog\n147939,airplane\n147940,cat\n147941,airplane\n147942,truck\n147943,frog\n147944,bird\n147945,truck\n147946,frog\n147947,deer\n147948,automobile\n147949,deer\n147950,automobile\n147951,dog\n147952,truck\n147953,dog\n147954,frog\n147955,cat\n147956,truck\n147957,frog\n147958,truck\n147959,dog\n147960,automobile\n147961,deer\n147962,horse\n147963,bird\n147964,ship\n147965,airplane\n147966,frog\n147967,cat\n147968,frog\n147969,dog\n147970,cat\n147971,dog\n147972,deer\n147973,dog\n147974,bird\n147975,dog\n147976,airplane\n147977,dog\n147978,airplane\n147979,truck\n147980,dog\n147981,airplane\n147982,frog\n147983,cat\n147984,airplane\n147985,airplane\n147986,frog\n147987,frog\n147988,truck\n147989,dog\n147990,cat\n147991,deer\n147992,dog\n147993,cat\n147994,automobile\n147995,cat\n147996,horse\n147997,deer\n147998,bird\n147999,dog\n148000,cat\n148001,dog\n148002,deer\n148003,truck\n148004,truck\n148005,cat\n148006,horse\n148007,automobile\n148008,deer\n148009,frog\n148010,frog\n148011,dog\n148012,horse\n148013,deer\n148014,automobile\n148015,automobile\n148016,dog\n148017,deer\n148018,ship\n148019,airplane\n148020,cat\n148021,horse\n148022,deer\n148023,airplane\n148024,ship\n148025,horse\n148026,truck\n148027,cat\n148028,truck\n148029,bird\n148030,automobile\n148031,airplane\n148032,bird\n148033,airplane\n148034,truck\n148035,cat\n148036,dog\n148037,truck\n148038,airplane\n148039,cat\n148040,bird\n148041,horse\n148042,automobile\n148043,cat\n148044,bird\n148045,ship\n148046,truck\n148047,airplane\n148048,airplane\n148049,deer\n148050,cat\n148051,bird\n148052,deer\n148053,truck\n148054,dog\n148055,frog\n148056,deer\n148057,truck\n148058,cat\n148059,automobile\n148060,bird\n148061,automobile\n148062,horse\n148063,airplane\n148064,automobile\n148065,frog\n148066,bird\n148067,horse\n148068,automobile\n148069,bird\n148070,horse\n148071,deer\n148072,deer\n148073,cat\n148074,dog\n148075,deer\n148076,dog\n148077,truck\n148078,dog\n148079,airplane\n148080,bird\n148081,bird\n148082,ship\n148083,truck\n148084,cat\n148085,airplane\n148086,deer\n148087,truck\n148088,cat\n148089,truck\n148090,airplane\n148091,deer\n148092,frog\n148093,automobile\n148094,cat\n148095,cat\n148096,frog\n148097,deer\n148098,cat\n148099,bird\n148100,dog\n148101,horse\n148102,cat\n148103,horse\n148104,cat\n148105,cat\n148106,deer\n148107,deer\n148108,ship\n148109,dog\n148110,dog\n148111,deer\n148112,deer\n148113,deer\n148114,frog\n148115,airplane\n148116,ship\n148117,airplane\n148118,truck\n148119,truck\n148120,dog\n148121,horse\n148122,cat\n148123,deer\n148124,frog\n148125,deer\n148126,automobile\n148127,cat\n148128,deer\n148129,ship\n148130,automobile\n148131,ship\n148132,truck\n148133,deer\n148134,horse\n148135,deer\n148136,frog\n148137,frog\n148138,airplane\n148139,cat\n148140,ship\n148141,horse\n148142,automobile\n148143,horse\n148144,cat\n148145,deer\n148146,dog\n148147,dog\n148148,dog\n148149,horse\n148150,truck\n148151,bird\n148152,ship\n148153,dog\n148154,dog\n148155,deer\n148156,deer\n148157,cat\n148158,bird\n148159,bird\n148160,dog\n148161,deer\n148162,frog\n148163,truck\n148164,dog\n148165,automobile\n148166,truck\n148167,airplane\n148168,frog\n148169,automobile\n148170,bird\n148171,dog\n148172,dog\n148173,airplane\n148174,frog\n148175,bird\n148176,airplane\n148177,dog\n148178,deer\n148179,automobile\n148180,airplane\n148181,dog\n148182,automobile\n148183,ship\n148184,frog\n148185,truck\n148186,cat\n148187,automobile\n148188,cat\n148189,horse\n148190,bird\n148191,cat\n148192,frog\n148193,dog\n148194,cat\n148195,frog\n148196,ship\n148197,dog\n148198,deer\n148199,frog\n148200,cat\n148201,deer\n148202,cat\n148203,ship\n148204,bird\n148205,dog\n148206,bird\n148207,cat\n148208,cat\n148209,horse\n148210,airplane\n148211,frog\n148212,deer\n148213,cat\n148214,cat\n148215,ship\n148216,deer\n148217,truck\n148218,deer\n148219,frog\n148220,ship\n148221,deer\n148222,truck\n148223,cat\n148224,truck\n148225,airplane\n148226,automobile\n148227,cat\n148228,bird\n148229,dog\n148230,frog\n148231,dog\n148232,cat\n148233,frog\n148234,ship\n148235,truck\n148236,deer\n148237,frog\n148238,airplane\n148239,bird\n148240,truck\n148241,ship\n148242,airplane\n148243,bird\n148244,bird\n148245,frog\n148246,horse\n148247,airplane\n148248,frog\n148249,deer\n148250,deer\n148251,truck\n148252,ship\n148253,deer\n148254,bird\n148255,cat\n148256,automobile\n148257,bird\n148258,bird\n148259,airplane\n148260,airplane\n148261,horse\n148262,truck\n148263,truck\n148264,cat\n148265,deer\n148266,deer\n148267,frog\n148268,bird\n148269,bird\n148270,deer\n148271,deer\n148272,deer\n148273,frog\n148274,truck\n148275,horse\n148276,cat\n148277,horse\n148278,frog\n148279,ship\n148280,deer\n148281,ship\n148282,airplane\n148283,deer\n148284,bird\n148285,frog\n148286,deer\n148287,cat\n148288,ship\n148289,airplane\n148290,cat\n148291,horse\n148292,dog\n148293,horse\n148294,deer\n148295,frog\n148296,frog\n148297,automobile\n148298,automobile\n148299,horse\n148300,deer\n148301,cat\n148302,deer\n148303,ship\n148304,deer\n148305,cat\n148306,deer\n148307,horse\n148308,frog\n148309,dog\n148310,dog\n148311,airplane\n148312,deer\n148313,cat\n148314,ship\n148315,deer\n148316,frog\n148317,deer\n148318,truck\n148319,ship\n148320,ship\n148321,horse\n148322,deer\n148323,ship\n148324,cat\n148325,bird\n148326,horse\n148327,airplane\n148328,truck\n148329,deer\n148330,truck\n148331,frog\n148332,horse\n148333,horse\n148334,frog\n148335,ship\n148336,ship\n148337,cat\n148338,frog\n148339,frog\n148340,bird\n148341,truck\n148342,horse\n148343,cat\n148344,deer\n148345,truck\n148346,ship\n148347,bird\n148348,cat\n148349,truck\n148350,deer\n148351,airplane\n148352,truck\n148353,automobile\n148354,ship\n148355,bird\n148356,deer\n148357,cat\n148358,airplane\n148359,dog\n148360,dog\n148361,bird\n148362,frog\n148363,dog\n148364,cat\n148365,horse\n148366,deer\n148367,deer\n148368,bird\n148369,frog\n148370,deer\n148371,ship\n148372,dog\n148373,dog\n148374,bird\n148375,dog\n148376,airplane\n148377,automobile\n148378,bird\n148379,frog\n148380,cat\n148381,airplane\n148382,ship\n148383,frog\n148384,horse\n148385,deer\n148386,cat\n148387,airplane\n148388,cat\n148389,deer\n148390,horse\n148391,deer\n148392,bird\n148393,dog\n148394,automobile\n148395,truck\n148396,deer\n148397,dog\n148398,dog\n148399,deer\n148400,truck\n148401,cat\n148402,cat\n148403,truck\n148404,deer\n148405,cat\n148406,deer\n148407,frog\n148408,dog\n148409,horse\n148410,ship\n148411,bird\n148412,dog\n148413,dog\n148414,truck\n148415,frog\n148416,truck\n148417,truck\n148418,dog\n148419,horse\n148420,bird\n148421,deer\n148422,deer\n148423,cat\n148424,airplane\n148425,dog\n148426,deer\n148427,dog\n148428,cat\n148429,dog\n148430,horse\n148431,truck\n148432,horse\n148433,cat\n148434,bird\n148435,frog\n148436,dog\n148437,cat\n148438,deer\n148439,airplane\n148440,deer\n148441,cat\n148442,airplane\n148443,automobile\n148444,cat\n148445,horse\n148446,truck\n148447,frog\n148448,automobile\n148449,horse\n148450,ship\n148451,deer\n148452,deer\n148453,bird\n148454,deer\n148455,airplane\n148456,dog\n148457,dog\n148458,frog\n148459,frog\n148460,frog\n148461,bird\n148462,deer\n148463,bird\n148464,cat\n148465,frog\n148466,cat\n148467,truck\n148468,airplane\n148469,airplane\n148470,ship\n148471,deer\n148472,cat\n148473,ship\n148474,airplane\n148475,deer\n148476,frog\n148477,frog\n148478,airplane\n148479,automobile\n148480,deer\n148481,bird\n148482,dog\n148483,deer\n148484,ship\n148485,ship\n148486,airplane\n148487,dog\n148488,dog\n148489,ship\n148490,cat\n148491,dog\n148492,bird\n148493,deer\n148494,horse\n148495,airplane\n148496,horse\n148497,deer\n148498,deer\n148499,airplane\n148500,deer\n148501,dog\n148502,dog\n148503,truck\n148504,dog\n148505,airplane\n148506,deer\n148507,deer\n148508,bird\n148509,ship\n148510,dog\n148511,automobile\n148512,deer\n148513,frog\n148514,deer\n148515,horse\n148516,frog\n148517,horse\n148518,horse\n148519,horse\n148520,bird\n148521,dog\n148522,frog\n148523,bird\n148524,automobile\n148525,frog\n148526,dog\n148527,deer\n148528,airplane\n148529,cat\n148530,frog\n148531,dog\n148532,frog\n148533,airplane\n148534,dog\n148535,automobile\n148536,airplane\n148537,horse\n148538,ship\n148539,horse\n148540,truck\n148541,frog\n148542,dog\n148543,deer\n148544,cat\n148545,deer\n148546,dog\n148547,deer\n148548,cat\n148549,ship\n148550,automobile\n148551,airplane\n148552,bird\n148553,airplane\n148554,automobile\n148555,frog\n148556,deer\n148557,bird\n148558,ship\n148559,horse\n148560,airplane\n148561,cat\n148562,cat\n148563,dog\n148564,horse\n148565,dog\n148566,airplane\n148567,automobile\n148568,automobile\n148569,automobile\n148570,automobile\n148571,airplane\n148572,cat\n148573,dog\n148574,airplane\n148575,ship\n148576,frog\n148577,cat\n148578,frog\n148579,deer\n148580,frog\n148581,cat\n148582,ship\n148583,ship\n148584,bird\n148585,dog\n148586,truck\n148587,bird\n148588,bird\n148589,deer\n148590,automobile\n148591,cat\n148592,horse\n148593,airplane\n148594,frog\n148595,cat\n148596,bird\n148597,dog\n148598,truck\n148599,cat\n148600,airplane\n148601,dog\n148602,frog\n148603,dog\n148604,automobile\n148605,horse\n148606,automobile\n148607,truck\n148608,frog\n148609,horse\n148610,frog\n148611,horse\n148612,frog\n148613,truck\n148614,deer\n148615,dog\n148616,truck\n148617,truck\n148618,bird\n148619,airplane\n148620,cat\n148621,bird\n148622,automobile\n148623,truck\n148624,dog\n148625,bird\n148626,truck\n148627,deer\n148628,cat\n148629,deer\n148630,airplane\n148631,dog\n148632,bird\n148633,dog\n148634,automobile\n148635,frog\n148636,ship\n148637,truck\n148638,cat\n148639,deer\n148640,bird\n148641,automobile\n148642,cat\n148643,ship\n148644,frog\n148645,deer\n148646,ship\n148647,truck\n148648,cat\n148649,horse\n148650,airplane\n148651,cat\n148652,truck\n148653,airplane\n148654,airplane\n148655,frog\n148656,cat\n148657,truck\n148658,horse\n148659,horse\n148660,bird\n148661,frog\n148662,horse\n148663,dog\n148664,cat\n148665,cat\n148666,cat\n148667,bird\n148668,cat\n148669,horse\n148670,cat\n148671,truck\n148672,cat\n148673,frog\n148674,frog\n148675,deer\n148676,deer\n148677,frog\n148678,frog\n148679,airplane\n148680,deer\n148681,bird\n148682,bird\n148683,frog\n148684,airplane\n148685,ship\n148686,dog\n148687,frog\n148688,airplane\n148689,frog\n148690,deer\n148691,bird\n148692,truck\n148693,frog\n148694,dog\n148695,dog\n148696,automobile\n148697,dog\n148698,dog\n148699,frog\n148700,dog\n148701,automobile\n148702,bird\n148703,deer\n148704,horse\n148705,ship\n148706,airplane\n148707,dog\n148708,airplane\n148709,horse\n148710,horse\n148711,horse\n148712,cat\n148713,automobile\n148714,deer\n148715,bird\n148716,bird\n148717,dog\n148718,horse\n148719,horse\n148720,cat\n148721,horse\n148722,automobile\n148723,cat\n148724,horse\n148725,ship\n148726,airplane\n148727,dog\n148728,deer\n148729,frog\n148730,truck\n148731,deer\n148732,cat\n148733,horse\n148734,deer\n148735,cat\n148736,airplane\n148737,truck\n148738,cat\n148739,deer\n148740,truck\n148741,cat\n148742,frog\n148743,deer\n148744,deer\n148745,dog\n148746,truck\n148747,frog\n148748,dog\n148749,cat\n148750,dog\n148751,frog\n148752,ship\n148753,deer\n148754,ship\n148755,horse\n148756,deer\n148757,deer\n148758,bird\n148759,frog\n148760,horse\n148761,dog\n148762,ship\n148763,horse\n148764,deer\n148765,horse\n148766,ship\n148767,airplane\n148768,horse\n148769,deer\n148770,deer\n148771,frog\n148772,automobile\n148773,cat\n148774,automobile\n148775,dog\n148776,truck\n148777,deer\n148778,cat\n148779,deer\n148780,deer\n148781,horse\n148782,automobile\n148783,automobile\n148784,dog\n148785,ship\n148786,horse\n148787,ship\n148788,truck\n148789,deer\n148790,ship\n148791,frog\n148792,dog\n148793,cat\n148794,deer\n148795,dog\n148796,bird\n148797,cat\n148798,dog\n148799,truck\n148800,truck\n148801,frog\n148802,ship\n148803,truck\n148804,bird\n148805,horse\n148806,deer\n148807,cat\n148808,frog\n148809,ship\n148810,airplane\n148811,cat\n148812,dog\n148813,horse\n148814,cat\n148815,cat\n148816,airplane\n148817,dog\n148818,horse\n148819,deer\n148820,truck\n148821,ship\n148822,bird\n148823,horse\n148824,frog\n148825,airplane\n148826,truck\n148827,frog\n148828,truck\n148829,truck\n148830,cat\n148831,dog\n148832,automobile\n148833,truck\n148834,cat\n148835,automobile\n148836,airplane\n148837,horse\n148838,airplane\n148839,ship\n148840,cat\n148841,cat\n148842,horse\n148843,ship\n148844,bird\n148845,cat\n148846,deer\n148847,deer\n148848,bird\n148849,truck\n148850,deer\n148851,horse\n148852,dog\n148853,dog\n148854,dog\n148855,horse\n148856,deer\n148857,automobile\n148858,dog\n148859,deer\n148860,cat\n148861,automobile\n148862,airplane\n148863,truck\n148864,dog\n148865,truck\n148866,deer\n148867,deer\n148868,deer\n148869,bird\n148870,cat\n148871,deer\n148872,dog\n148873,ship\n148874,ship\n148875,frog\n148876,cat\n148877,deer\n148878,cat\n148879,automobile\n148880,automobile\n148881,ship\n148882,frog\n148883,cat\n148884,airplane\n148885,bird\n148886,ship\n148887,deer\n148888,truck\n148889,truck\n148890,airplane\n148891,cat\n148892,horse\n148893,cat\n148894,cat\n148895,cat\n148896,truck\n148897,airplane\n148898,truck\n148899,dog\n148900,cat\n148901,cat\n148902,bird\n148903,frog\n148904,bird\n148905,horse\n148906,cat\n148907,ship\n148908,ship\n148909,cat\n148910,truck\n148911,dog\n148912,truck\n148913,ship\n148914,ship\n148915,truck\n148916,bird\n148917,horse\n148918,dog\n148919,truck\n148920,ship\n148921,dog\n148922,cat\n148923,horse\n148924,automobile\n148925,deer\n148926,frog\n148927,airplane\n148928,truck\n148929,ship\n148930,deer\n148931,dog\n148932,frog\n148933,frog\n148934,horse\n148935,automobile\n148936,cat\n148937,airplane\n148938,cat\n148939,frog\n148940,automobile\n148941,automobile\n148942,dog\n148943,deer\n148944,bird\n148945,truck\n148946,dog\n148947,frog\n148948,horse\n148949,cat\n148950,automobile\n148951,cat\n148952,cat\n148953,automobile\n148954,deer\n148955,cat\n148956,frog\n148957,automobile\n148958,automobile\n148959,ship\n148960,horse\n148961,bird\n148962,ship\n148963,truck\n148964,frog\n148965,airplane\n148966,automobile\n148967,truck\n148968,truck\n148969,frog\n148970,truck\n148971,horse\n148972,truck\n148973,frog\n148974,automobile\n148975,frog\n148976,dog\n148977,horse\n148978,truck\n148979,ship\n148980,airplane\n148981,frog\n148982,automobile\n148983,truck\n148984,horse\n148985,dog\n148986,frog\n148987,truck\n148988,truck\n148989,deer\n148990,ship\n148991,horse\n148992,airplane\n148993,airplane\n148994,deer\n148995,truck\n148996,ship\n148997,cat\n148998,airplane\n148999,dog\n149000,deer\n149001,ship\n149002,cat\n149003,frog\n149004,cat\n149005,bird\n149006,automobile\n149007,automobile\n149008,dog\n149009,airplane\n149010,cat\n149011,deer\n149012,truck\n149013,frog\n149014,deer\n149015,truck\n149016,airplane\n149017,cat\n149018,horse\n149019,frog\n149020,deer\n149021,bird\n149022,deer\n149023,frog\n149024,airplane\n149025,dog\n149026,airplane\n149027,automobile\n149028,airplane\n149029,automobile\n149030,deer\n149031,dog\n149032,cat\n149033,automobile\n149034,truck\n149035,frog\n149036,deer\n149037,bird\n149038,airplane\n149039,deer\n149040,deer\n149041,horse\n149042,truck\n149043,dog\n149044,cat\n149045,deer\n149046,cat\n149047,deer\n149048,airplane\n149049,automobile\n149050,dog\n149051,frog\n149052,deer\n149053,automobile\n149054,frog\n149055,bird\n149056,dog\n149057,dog\n149058,deer\n149059,horse\n149060,deer\n149061,airplane\n149062,cat\n149063,deer\n149064,airplane\n149065,truck\n149066,deer\n149067,cat\n149068,bird\n149069,ship\n149070,ship\n149071,ship\n149072,cat\n149073,airplane\n149074,bird\n149075,bird\n149076,dog\n149077,dog\n149078,dog\n149079,truck\n149080,airplane\n149081,deer\n149082,bird\n149083,deer\n149084,truck\n149085,truck\n149086,truck\n149087,bird\n149088,truck\n149089,bird\n149090,dog\n149091,frog\n149092,airplane\n149093,horse\n149094,deer\n149095,frog\n149096,airplane\n149097,deer\n149098,dog\n149099,cat\n149100,dog\n149101,frog\n149102,bird\n149103,frog\n149104,dog\n149105,truck\n149106,deer\n149107,bird\n149108,deer\n149109,ship\n149110,horse\n149111,airplane\n149112,cat\n149113,bird\n149114,cat\n149115,truck\n149116,bird\n149117,cat\n149118,cat\n149119,cat\n149120,cat\n149121,truck\n149122,bird\n149123,horse\n149124,frog\n149125,automobile\n149126,truck\n149127,airplane\n149128,ship\n149129,deer\n149130,cat\n149131,deer\n149132,bird\n149133,bird\n149134,ship\n149135,dog\n149136,automobile\n149137,dog\n149138,truck\n149139,frog\n149140,cat\n149141,airplane\n149142,frog\n149143,frog\n149144,deer\n149145,dog\n149146,dog\n149147,frog\n149148,deer\n149149,bird\n149150,truck\n149151,deer\n149152,automobile\n149153,automobile\n149154,frog\n149155,cat\n149156,ship\n149157,cat\n149158,truck\n149159,truck\n149160,frog\n149161,deer\n149162,cat\n149163,truck\n149164,automobile\n149165,bird\n149166,airplane\n149167,ship\n149168,horse\n149169,ship\n149170,dog\n149171,deer\n149172,bird\n149173,frog\n149174,automobile\n149175,cat\n149176,truck\n149177,truck\n149178,frog\n149179,ship\n149180,ship\n149181,cat\n149182,airplane\n149183,deer\n149184,automobile\n149185,deer\n149186,truck\n149187,deer\n149188,horse\n149189,horse\n149190,automobile\n149191,cat\n149192,truck\n149193,deer\n149194,bird\n149195,deer\n149196,ship\n149197,truck\n149198,dog\n149199,cat\n149200,dog\n149201,airplane\n149202,truck\n149203,ship\n149204,frog\n149205,ship\n149206,airplane\n149207,truck\n149208,horse\n149209,horse\n149210,truck\n149211,dog\n149212,frog\n149213,truck\n149214,deer\n149215,dog\n149216,cat\n149217,truck\n149218,cat\n149219,cat\n149220,truck\n149221,airplane\n149222,truck\n149223,ship\n149224,airplane\n149225,automobile\n149226,cat\n149227,automobile\n149228,bird\n149229,deer\n149230,cat\n149231,frog\n149232,deer\n149233,dog\n149234,deer\n149235,cat\n149236,deer\n149237,bird\n149238,frog\n149239,automobile\n149240,bird\n149241,airplane\n149242,deer\n149243,ship\n149244,ship\n149245,truck\n149246,truck\n149247,horse\n149248,frog\n149249,bird\n149250,cat\n149251,airplane\n149252,cat\n149253,cat\n149254,deer\n149255,deer\n149256,frog\n149257,frog\n149258,truck\n149259,bird\n149260,automobile\n149261,horse\n149262,horse\n149263,truck\n149264,cat\n149265,airplane\n149266,frog\n149267,truck\n149268,ship\n149269,horse\n149270,dog\n149271,horse\n149272,ship\n149273,bird\n149274,ship\n149275,horse\n149276,bird\n149277,bird\n149278,deer\n149279,automobile\n149280,automobile\n149281,dog\n149282,automobile\n149283,cat\n149284,dog\n149285,deer\n149286,dog\n149287,dog\n149288,cat\n149289,truck\n149290,truck\n149291,cat\n149292,horse\n149293,deer\n149294,cat\n149295,deer\n149296,cat\n149297,cat\n149298,frog\n149299,ship\n149300,bird\n149301,dog\n149302,horse\n149303,frog\n149304,bird\n149305,horse\n149306,truck\n149307,airplane\n149308,deer\n149309,automobile\n149310,ship\n149311,automobile\n149312,airplane\n149313,deer\n149314,cat\n149315,airplane\n149316,deer\n149317,frog\n149318,automobile\n149319,airplane\n149320,automobile\n149321,truck\n149322,ship\n149323,bird\n149324,horse\n149325,bird\n149326,horse\n149327,horse\n149328,ship\n149329,frog\n149330,frog\n149331,cat\n149332,horse\n149333,truck\n149334,truck\n149335,frog\n149336,horse\n149337,truck\n149338,horse\n149339,airplane\n149340,ship\n149341,dog\n149342,horse\n149343,frog\n149344,horse\n149345,frog\n149346,truck\n149347,truck\n149348,cat\n149349,ship\n149350,airplane\n149351,truck\n149352,deer\n149353,horse\n149354,dog\n149355,dog\n149356,frog\n149357,dog\n149358,ship\n149359,airplane\n149360,frog\n149361,ship\n149362,ship\n149363,deer\n149364,frog\n149365,cat\n149366,airplane\n149367,truck\n149368,dog\n149369,horse\n149370,dog\n149371,ship\n149372,horse\n149373,horse\n149374,airplane\n149375,ship\n149376,horse\n149377,deer\n149378,bird\n149379,airplane\n149380,deer\n149381,ship\n149382,cat\n149383,deer\n149384,bird\n149385,ship\n149386,cat\n149387,deer\n149388,frog\n149389,dog\n149390,airplane\n149391,airplane\n149392,ship\n149393,airplane\n149394,cat\n149395,ship\n149396,ship\n149397,frog\n149398,frog\n149399,deer\n149400,dog\n149401,deer\n149402,frog\n149403,cat\n149404,bird\n149405,dog\n149406,truck\n149407,bird\n149408,frog\n149409,dog\n149410,airplane\n149411,horse\n149412,airplane\n149413,deer\n149414,horse\n149415,horse\n149416,truck\n149417,deer\n149418,deer\n149419,automobile\n149420,truck\n149421,deer\n149422,frog\n149423,truck\n149424,cat\n149425,cat\n149426,cat\n149427,airplane\n149428,cat\n149429,frog\n149430,dog\n149431,frog\n149432,bird\n149433,frog\n149434,frog\n149435,frog\n149436,airplane\n149437,airplane\n149438,horse\n149439,dog\n149440,ship\n149441,ship\n149442,dog\n149443,frog\n149444,airplane\n149445,cat\n149446,airplane\n149447,airplane\n149448,dog\n149449,dog\n149450,airplane\n149451,frog\n149452,bird\n149453,deer\n149454,frog\n149455,airplane\n149456,deer\n149457,dog\n149458,deer\n149459,cat\n149460,truck\n149461,automobile\n149462,truck\n149463,dog\n149464,airplane\n149465,frog\n149466,airplane\n149467,automobile\n149468,frog\n149469,dog\n149470,airplane\n149471,automobile\n149472,frog\n149473,automobile\n149474,frog\n149475,ship\n149476,dog\n149477,frog\n149478,deer\n149479,truck\n149480,frog\n149481,horse\n149482,cat\n149483,ship\n149484,airplane\n149485,bird\n149486,deer\n149487,automobile\n149488,dog\n149489,cat\n149490,frog\n149491,deer\n149492,cat\n149493,frog\n149494,truck\n149495,frog\n149496,ship\n149497,deer\n149498,automobile\n149499,dog\n149500,automobile\n149501,dog\n149502,cat\n149503,ship\n149504,cat\n149505,frog\n149506,deer\n149507,deer\n149508,dog\n149509,ship\n149510,cat\n149511,cat\n149512,cat\n149513,horse\n149514,deer\n149515,frog\n149516,cat\n149517,cat\n149518,frog\n149519,truck\n149520,dog\n149521,frog\n149522,frog\n149523,frog\n149524,frog\n149525,deer\n149526,bird\n149527,bird\n149528,truck\n149529,dog\n149530,cat\n149531,cat\n149532,horse\n149533,deer\n149534,bird\n149535,truck\n149536,cat\n149537,horse\n149538,ship\n149539,deer\n149540,truck\n149541,horse\n149542,cat\n149543,dog\n149544,cat\n149545,deer\n149546,deer\n149547,horse\n149548,truck\n149549,horse\n149550,horse\n149551,dog\n149552,frog\n149553,bird\n149554,bird\n149555,ship\n149556,frog\n149557,dog\n149558,cat\n149559,bird\n149560,airplane\n149561,deer\n149562,airplane\n149563,dog\n149564,deer\n149565,cat\n149566,automobile\n149567,automobile\n149568,bird\n149569,airplane\n149570,bird\n149571,cat\n149572,ship\n149573,frog\n149574,ship\n149575,cat\n149576,truck\n149577,horse\n149578,cat\n149579,frog\n149580,bird\n149581,cat\n149582,cat\n149583,deer\n149584,bird\n149585,truck\n149586,airplane\n149587,frog\n149588,deer\n149589,truck\n149590,airplane\n149591,horse\n149592,cat\n149593,deer\n149594,cat\n149595,bird\n149596,cat\n149597,horse\n149598,frog\n149599,frog\n149600,deer\n149601,frog\n149602,cat\n149603,bird\n149604,deer\n149605,cat\n149606,bird\n149607,dog\n149608,dog\n149609,frog\n149610,cat\n149611,cat\n149612,truck\n149613,cat\n149614,ship\n149615,deer\n149616,airplane\n149617,cat\n149618,dog\n149619,horse\n149620,cat\n149621,automobile\n149622,deer\n149623,cat\n149624,automobile\n149625,automobile\n149626,truck\n149627,frog\n149628,truck\n149629,cat\n149630,deer\n149631,airplane\n149632,ship\n149633,deer\n149634,bird\n149635,ship\n149636,truck\n149637,airplane\n149638,bird\n149639,airplane\n149640,airplane\n149641,truck\n149642,deer\n149643,airplane\n149644,bird\n149645,airplane\n149646,bird\n149647,dog\n149648,dog\n149649,cat\n149650,airplane\n149651,horse\n149652,bird\n149653,dog\n149654,truck\n149655,automobile\n149656,airplane\n149657,airplane\n149658,horse\n149659,truck\n149660,ship\n149661,truck\n149662,cat\n149663,deer\n149664,horse\n149665,cat\n149666,deer\n149667,ship\n149668,horse\n149669,ship\n149670,automobile\n149671,horse\n149672,cat\n149673,automobile\n149674,bird\n149675,dog\n149676,deer\n149677,truck\n149678,ship\n149679,frog\n149680,dog\n149681,cat\n149682,cat\n149683,ship\n149684,frog\n149685,truck\n149686,horse\n149687,deer\n149688,bird\n149689,horse\n149690,automobile\n149691,bird\n149692,dog\n149693,frog\n149694,cat\n149695,cat\n149696,horse\n149697,ship\n149698,horse\n149699,deer\n149700,frog\n149701,frog\n149702,dog\n149703,dog\n149704,cat\n149705,cat\n149706,ship\n149707,bird\n149708,frog\n149709,frog\n149710,deer\n149711,airplane\n149712,cat\n149713,horse\n149714,horse\n149715,airplane\n149716,ship\n149717,horse\n149718,cat\n149719,truck\n149720,ship\n149721,cat\n149722,cat\n149723,deer\n149724,ship\n149725,cat\n149726,cat\n149727,deer\n149728,cat\n149729,deer\n149730,horse\n149731,deer\n149732,dog\n149733,horse\n149734,airplane\n149735,deer\n149736,ship\n149737,airplane\n149738,ship\n149739,cat\n149740,bird\n149741,bird\n149742,airplane\n149743,deer\n149744,frog\n149745,truck\n149746,truck\n149747,ship\n149748,dog\n149749,frog\n149750,frog\n149751,dog\n149752,truck\n149753,dog\n149754,deer\n149755,deer\n149756,dog\n149757,automobile\n149758,cat\n149759,bird\n149760,deer\n149761,ship\n149762,bird\n149763,truck\n149764,airplane\n149765,bird\n149766,bird\n149767,ship\n149768,deer\n149769,airplane\n149770,frog\n149771,bird\n149772,bird\n149773,ship\n149774,ship\n149775,cat\n149776,airplane\n149777,bird\n149778,ship\n149779,truck\n149780,frog\n149781,dog\n149782,dog\n149783,dog\n149784,deer\n149785,bird\n149786,dog\n149787,deer\n149788,cat\n149789,frog\n149790,truck\n149791,bird\n149792,truck\n149793,dog\n149794,bird\n149795,frog\n149796,cat\n149797,frog\n149798,cat\n149799,airplane\n149800,cat\n149801,cat\n149802,horse\n149803,frog\n149804,truck\n149805,truck\n149806,horse\n149807,airplane\n149808,bird\n149809,cat\n149810,bird\n149811,horse\n149812,automobile\n149813,bird\n149814,ship\n149815,cat\n149816,bird\n149817,horse\n149818,bird\n149819,horse\n149820,airplane\n149821,deer\n149822,automobile\n149823,deer\n149824,automobile\n149825,truck\n149826,cat\n149827,frog\n149828,dog\n149829,bird\n149830,deer\n149831,bird\n149832,cat\n149833,ship\n149834,airplane\n149835,airplane\n149836,airplane\n149837,truck\n149838,frog\n149839,airplane\n149840,frog\n149841,automobile\n149842,cat\n149843,ship\n149844,automobile\n149845,horse\n149846,frog\n149847,horse\n149848,horse\n149849,horse\n149850,bird\n149851,horse\n149852,horse\n149853,deer\n149854,automobile\n149855,truck\n149856,deer\n149857,dog\n149858,dog\n149859,cat\n149860,frog\n149861,frog\n149862,ship\n149863,deer\n149864,frog\n149865,horse\n149866,airplane\n149867,bird\n149868,deer\n149869,dog\n149870,truck\n149871,deer\n149872,horse\n149873,cat\n149874,truck\n149875,deer\n149876,ship\n149877,truck\n149878,frog\n149879,cat\n149880,bird\n149881,frog\n149882,truck\n149883,airplane\n149884,truck\n149885,frog\n149886,ship\n149887,cat\n149888,cat\n149889,bird\n149890,horse\n149891,truck\n149892,cat\n149893,frog\n149894,deer\n149895,truck\n149896,automobile\n149897,ship\n149898,frog\n149899,automobile\n149900,horse\n149901,dog\n149902,frog\n149903,dog\n149904,airplane\n149905,deer\n149906,truck\n149907,deer\n149908,bird\n149909,ship\n149910,deer\n149911,bird\n149912,frog\n149913,horse\n149914,deer\n149915,deer\n149916,ship\n149917,dog\n149918,truck\n149919,truck\n149920,truck\n149921,cat\n149922,dog\n149923,airplane\n149924,airplane\n149925,airplane\n149926,truck\n149927,dog\n149928,frog\n149929,cat\n149930,truck\n149931,deer\n149932,automobile\n149933,bird\n149934,horse\n149935,automobile\n149936,deer\n149937,ship\n149938,deer\n149939,cat\n149940,cat\n149941,cat\n149942,horse\n149943,dog\n149944,cat\n149945,dog\n149946,airplane\n149947,horse\n149948,truck\n149949,airplane\n149950,frog\n149951,ship\n149952,cat\n149953,dog\n149954,cat\n149955,airplane\n149956,horse\n149957,deer\n149958,cat\n149959,ship\n149960,deer\n149961,dog\n149962,automobile\n149963,deer\n149964,automobile\n149965,ship\n149966,horse\n149967,ship\n149968,frog\n149969,dog\n149970,horse\n149971,deer\n149972,horse\n149973,dog\n149974,deer\n149975,dog\n149976,bird\n149977,cat\n149978,airplane\n149979,bird\n149980,airplane\n149981,bird\n149982,horse\n149983,horse\n149984,airplane\n149985,deer\n149986,frog\n149987,deer\n149988,cat\n149989,automobile\n149990,bird\n149991,ship\n149992,horse\n149993,ship\n149994,automobile\n149995,ship\n149996,cat\n149997,automobile\n149998,frog\n149999,deer\n150000,cat\n150001,truck\n150002,dog\n150003,horse\n150004,ship\n150005,deer\n150006,truck\n150007,dog\n150008,horse\n150009,horse\n150010,automobile\n150011,ship\n150012,dog\n150013,frog\n150014,cat\n150015,dog\n150016,airplane\n150017,bird\n150018,horse\n150019,airplane\n150020,bird\n150021,horse\n150022,deer\n150023,dog\n150024,cat\n150025,automobile\n150026,deer\n150027,deer\n150028,horse\n150029,ship\n150030,frog\n150031,ship\n150032,airplane\n150033,dog\n150034,deer\n150035,deer\n150036,dog\n150037,deer\n150038,dog\n150039,frog\n150040,deer\n150041,horse\n150042,airplane\n150043,deer\n150044,airplane\n150045,frog\n150046,automobile\n150047,bird\n150048,bird\n150049,truck\n150050,ship\n150051,truck\n150052,truck\n150053,frog\n150054,cat\n150055,airplane\n150056,automobile\n150057,bird\n150058,deer\n150059,truck\n150060,deer\n150061,deer\n150062,frog\n150063,bird\n150064,deer\n150065,frog\n150066,cat\n150067,horse\n150068,cat\n150069,truck\n150070,dog\n150071,bird\n150072,deer\n150073,dog\n150074,ship\n150075,bird\n150076,dog\n150077,bird\n150078,cat\n150079,horse\n150080,deer\n150081,airplane\n150082,dog\n150083,deer\n150084,dog\n150085,dog\n150086,cat\n150087,frog\n150088,ship\n150089,horse\n150090,dog\n150091,airplane\n150092,bird\n150093,truck\n150094,cat\n150095,deer\n150096,horse\n150097,ship\n150098,airplane\n150099,truck\n150100,deer\n150101,airplane\n150102,bird\n150103,automobile\n150104,truck\n150105,horse\n150106,truck\n150107,airplane\n150108,automobile\n150109,bird\n150110,automobile\n150111,airplane\n150112,bird\n150113,frog\n150114,cat\n150115,ship\n150116,deer\n150117,horse\n150118,deer\n150119,ship\n150120,truck\n150121,horse\n150122,deer\n150123,ship\n150124,dog\n150125,automobile\n150126,automobile\n150127,horse\n150128,deer\n150129,ship\n150130,deer\n150131,deer\n150132,deer\n150133,ship\n150134,truck\n150135,deer\n150136,horse\n150137,automobile\n150138,bird\n150139,automobile\n150140,truck\n150141,bird\n150142,dog\n150143,deer\n150144,frog\n150145,horse\n150146,horse\n150147,frog\n150148,dog\n150149,dog\n150150,truck\n150151,ship\n150152,frog\n150153,frog\n150154,cat\n150155,airplane\n150156,deer\n150157,automobile\n150158,ship\n150159,dog\n150160,cat\n150161,dog\n150162,deer\n150163,ship\n150164,cat\n150165,automobile\n150166,dog\n150167,horse\n150168,truck\n150169,horse\n150170,truck\n150171,automobile\n150172,cat\n150173,ship\n150174,frog\n150175,ship\n150176,truck\n150177,deer\n150178,airplane\n150179,frog\n150180,automobile\n150181,dog\n150182,airplane\n150183,cat\n150184,horse\n150185,dog\n150186,deer\n150187,horse\n150188,cat\n150189,horse\n150190,cat\n150191,airplane\n150192,horse\n150193,automobile\n150194,horse\n150195,cat\n150196,bird\n150197,automobile\n150198,ship\n150199,truck\n150200,truck\n150201,dog\n150202,cat\n150203,frog\n150204,deer\n150205,cat\n150206,airplane\n150207,dog\n150208,cat\n150209,truck\n150210,bird\n150211,automobile\n150212,deer\n150213,dog\n150214,ship\n150215,cat\n150216,automobile\n150217,truck\n150218,horse\n150219,cat\n150220,cat\n150221,ship\n150222,frog\n150223,automobile\n150224,truck\n150225,truck\n150226,dog\n150227,truck\n150228,frog\n150229,dog\n150230,cat\n150231,automobile\n150232,cat\n150233,airplane\n150234,frog\n150235,dog\n150236,deer\n150237,airplane\n150238,dog\n150239,automobile\n150240,horse\n150241,truck\n150242,ship\n150243,frog\n150244,automobile\n150245,bird\n150246,dog\n150247,cat\n150248,dog\n150249,dog\n150250,cat\n150251,airplane\n150252,cat\n150253,cat\n150254,truck\n150255,truck\n150256,cat\n150257,automobile\n150258,deer\n150259,dog\n150260,truck\n150261,cat\n150262,truck\n150263,truck\n150264,truck\n150265,truck\n150266,truck\n150267,truck\n150268,automobile\n150269,cat\n150270,bird\n150271,truck\n150272,deer\n150273,automobile\n150274,airplane\n150275,truck\n150276,airplane\n150277,automobile\n150278,bird\n150279,cat\n150280,ship\n150281,truck\n150282,dog\n150283,dog\n150284,deer\n150285,frog\n150286,ship\n150287,cat\n150288,ship\n150289,cat\n150290,truck\n150291,truck\n150292,cat\n150293,cat\n150294,ship\n150295,horse\n150296,frog\n150297,deer\n150298,deer\n150299,horse\n150300,bird\n150301,horse\n150302,cat\n150303,dog\n150304,frog\n150305,frog\n150306,cat\n150307,airplane\n150308,ship\n150309,frog\n150310,airplane\n150311,frog\n150312,airplane\n150313,frog\n150314,ship\n150315,frog\n150316,cat\n150317,dog\n150318,airplane\n150319,dog\n150320,deer\n150321,frog\n150322,frog\n150323,dog\n150324,deer\n150325,dog\n150326,cat\n150327,truck\n150328,automobile\n150329,ship\n150330,horse\n150331,dog\n150332,cat\n150333,ship\n150334,bird\n150335,ship\n150336,airplane\n150337,ship\n150338,deer\n150339,cat\n150340,frog\n150341,horse\n150342,cat\n150343,deer\n150344,frog\n150345,deer\n150346,deer\n150347,dog\n150348,truck\n150349,horse\n150350,dog\n150351,dog\n150352,truck\n150353,cat\n150354,cat\n150355,truck\n150356,deer\n150357,automobile\n150358,dog\n150359,dog\n150360,truck\n150361,bird\n150362,bird\n150363,cat\n150364,automobile\n150365,dog\n150366,frog\n150367,truck\n150368,deer\n150369,truck\n150370,deer\n150371,ship\n150372,frog\n150373,truck\n150374,horse\n150375,cat\n150376,truck\n150377,frog\n150378,truck\n150379,automobile\n150380,dog\n150381,dog\n150382,frog\n150383,deer\n150384,airplane\n150385,deer\n150386,frog\n150387,bird\n150388,deer\n150389,truck\n150390,deer\n150391,airplane\n150392,automobile\n150393,horse\n150394,truck\n150395,truck\n150396,airplane\n150397,frog\n150398,cat\n150399,frog\n150400,cat\n150401,cat\n150402,bird\n150403,bird\n150404,deer\n150405,automobile\n150406,cat\n150407,dog\n150408,automobile\n150409,automobile\n150410,truck\n150411,cat\n150412,bird\n150413,frog\n150414,cat\n150415,cat\n150416,airplane\n150417,dog\n150418,ship\n150419,airplane\n150420,deer\n150421,deer\n150422,cat\n150423,deer\n150424,frog\n150425,bird\n150426,deer\n150427,deer\n150428,deer\n150429,truck\n150430,ship\n150431,bird\n150432,deer\n150433,airplane\n150434,airplane\n150435,truck\n150436,horse\n150437,frog\n150438,cat\n150439,bird\n150440,dog\n150441,deer\n150442,automobile\n150443,cat\n150444,dog\n150445,deer\n150446,dog\n150447,deer\n150448,automobile\n150449,frog\n150450,ship\n150451,dog\n150452,bird\n150453,frog\n150454,deer\n150455,ship\n150456,ship\n150457,deer\n150458,frog\n150459,airplane\n150460,dog\n150461,cat\n150462,dog\n150463,ship\n150464,cat\n150465,bird\n150466,cat\n150467,airplane\n150468,horse\n150469,horse\n150470,truck\n150471,frog\n150472,cat\n150473,frog\n150474,frog\n150475,ship\n150476,frog\n150477,truck\n150478,cat\n150479,cat\n150480,bird\n150481,cat\n150482,deer\n150483,airplane\n150484,cat\n150485,dog\n150486,truck\n150487,cat\n150488,cat\n150489,deer\n150490,horse\n150491,horse\n150492,ship\n150493,ship\n150494,truck\n150495,cat\n150496,ship\n150497,bird\n150498,ship\n150499,frog\n150500,deer\n150501,truck\n150502,cat\n150503,ship\n150504,truck\n150505,cat\n150506,ship\n150507,dog\n150508,deer\n150509,frog\n150510,cat\n150511,truck\n150512,frog\n150513,truck\n150514,ship\n150515,truck\n150516,deer\n150517,ship\n150518,airplane\n150519,cat\n150520,ship\n150521,bird\n150522,airplane\n150523,frog\n150524,cat\n150525,cat\n150526,bird\n150527,ship\n150528,deer\n150529,cat\n150530,horse\n150531,dog\n150532,truck\n150533,cat\n150534,bird\n150535,automobile\n150536,frog\n150537,airplane\n150538,bird\n150539,ship\n150540,cat\n150541,truck\n150542,dog\n150543,cat\n150544,automobile\n150545,dog\n150546,dog\n150547,dog\n150548,deer\n150549,airplane\n150550,ship\n150551,truck\n150552,cat\n150553,ship\n150554,bird\n150555,cat\n150556,deer\n150557,dog\n150558,dog\n150559,bird\n150560,truck\n150561,cat\n150562,dog\n150563,dog\n150564,automobile\n150565,frog\n150566,frog\n150567,ship\n150568,dog\n150569,deer\n150570,bird\n150571,cat\n150572,airplane\n150573,automobile\n150574,deer\n150575,deer\n150576,truck\n150577,deer\n150578,airplane\n150579,airplane\n150580,airplane\n150581,truck\n150582,dog\n150583,cat\n150584,cat\n150585,dog\n150586,dog\n150587,dog\n150588,cat\n150589,automobile\n150590,ship\n150591,cat\n150592,bird\n150593,deer\n150594,cat\n150595,ship\n150596,horse\n150597,deer\n150598,truck\n150599,airplane\n150600,frog\n150601,dog\n150602,truck\n150603,frog\n150604,horse\n150605,airplane\n150606,cat\n150607,deer\n150608,horse\n150609,truck\n150610,horse\n150611,bird\n150612,ship\n150613,truck\n150614,truck\n150615,automobile\n150616,airplane\n150617,bird\n150618,horse\n150619,ship\n150620,horse\n150621,horse\n150622,cat\n150623,bird\n150624,dog\n150625,automobile\n150626,cat\n150627,automobile\n150628,airplane\n150629,truck\n150630,frog\n150631,truck\n150632,bird\n150633,deer\n150634,cat\n150635,horse\n150636,truck\n150637,horse\n150638,cat\n150639,frog\n150640,bird\n150641,ship\n150642,frog\n150643,ship\n150644,ship\n150645,deer\n150646,ship\n150647,ship\n150648,airplane\n150649,dog\n150650,ship\n150651,airplane\n150652,cat\n150653,ship\n150654,deer\n150655,frog\n150656,dog\n150657,frog\n150658,horse\n150659,airplane\n150660,horse\n150661,airplane\n150662,ship\n150663,airplane\n150664,ship\n150665,deer\n150666,horse\n150667,dog\n150668,bird\n150669,horse\n150670,deer\n150671,bird\n150672,ship\n150673,bird\n150674,airplane\n150675,dog\n150676,dog\n150677,horse\n150678,automobile\n150679,deer\n150680,airplane\n150681,automobile\n150682,dog\n150683,airplane\n150684,dog\n150685,frog\n150686,truck\n150687,airplane\n150688,frog\n150689,frog\n150690,dog\n150691,dog\n150692,frog\n150693,ship\n150694,cat\n150695,horse\n150696,deer\n150697,dog\n150698,automobile\n150699,truck\n150700,frog\n150701,horse\n150702,automobile\n150703,deer\n150704,dog\n150705,dog\n150706,horse\n150707,deer\n150708,airplane\n150709,frog\n150710,cat\n150711,dog\n150712,truck\n150713,horse\n150714,deer\n150715,airplane\n150716,automobile\n150717,deer\n150718,dog\n150719,horse\n150720,horse\n150721,automobile\n150722,deer\n150723,ship\n150724,dog\n150725,cat\n150726,cat\n150727,truck\n150728,truck\n150729,horse\n150730,truck\n150731,truck\n150732,cat\n150733,truck\n150734,bird\n150735,deer\n150736,automobile\n150737,automobile\n150738,cat\n150739,automobile\n150740,airplane\n150741,truck\n150742,frog\n150743,airplane\n150744,frog\n150745,automobile\n150746,deer\n150747,deer\n150748,airplane\n150749,automobile\n150750,horse\n150751,cat\n150752,ship\n150753,dog\n150754,automobile\n150755,deer\n150756,cat\n150757,cat\n150758,bird\n150759,ship\n150760,bird\n150761,deer\n150762,airplane\n150763,airplane\n150764,truck\n150765,ship\n150766,airplane\n150767,frog\n150768,dog\n150769,cat\n150770,truck\n150771,cat\n150772,automobile\n150773,bird\n150774,airplane\n150775,frog\n150776,frog\n150777,frog\n150778,cat\n150779,cat\n150780,bird\n150781,horse\n150782,truck\n150783,automobile\n150784,dog\n150785,airplane\n150786,frog\n150787,horse\n150788,dog\n150789,deer\n150790,ship\n150791,deer\n150792,deer\n150793,cat\n150794,bird\n150795,cat\n150796,automobile\n150797,horse\n150798,frog\n150799,dog\n150800,ship\n150801,truck\n150802,frog\n150803,dog\n150804,frog\n150805,bird\n150806,deer\n150807,deer\n150808,cat\n150809,frog\n150810,deer\n150811,cat\n150812,airplane\n150813,airplane\n150814,truck\n150815,dog\n150816,ship\n150817,frog\n150818,bird\n150819,dog\n150820,frog\n150821,bird\n150822,frog\n150823,airplane\n150824,frog\n150825,frog\n150826,frog\n150827,dog\n150828,bird\n150829,horse\n150830,deer\n150831,airplane\n150832,dog\n150833,frog\n150834,truck\n150835,cat\n150836,deer\n150837,bird\n150838,dog\n150839,automobile\n150840,airplane\n150841,ship\n150842,cat\n150843,bird\n150844,frog\n150845,truck\n150846,deer\n150847,bird\n150848,frog\n150849,horse\n150850,truck\n150851,cat\n150852,cat\n150853,dog\n150854,horse\n150855,dog\n150856,cat\n150857,dog\n150858,cat\n150859,cat\n150860,deer\n150861,deer\n150862,horse\n150863,automobile\n150864,airplane\n150865,deer\n150866,airplane\n150867,dog\n150868,cat\n150869,cat\n150870,ship\n150871,dog\n150872,horse\n150873,cat\n150874,truck\n150875,truck\n150876,deer\n150877,cat\n150878,frog\n150879,dog\n150880,bird\n150881,cat\n150882,cat\n150883,cat\n150884,dog\n150885,ship\n150886,ship\n150887,truck\n150888,dog\n150889,automobile\n150890,cat\n150891,cat\n150892,airplane\n150893,automobile\n150894,airplane\n150895,bird\n150896,cat\n150897,dog\n150898,automobile\n150899,cat\n150900,dog\n150901,ship\n150902,frog\n150903,cat\n150904,frog\n150905,horse\n150906,cat\n150907,frog\n150908,dog\n150909,ship\n150910,frog\n150911,ship\n150912,cat\n150913,bird\n150914,cat\n150915,airplane\n150916,airplane\n150917,truck\n150918,airplane\n150919,dog\n150920,bird\n150921,horse\n150922,ship\n150923,horse\n150924,dog\n150925,deer\n150926,dog\n150927,frog\n150928,deer\n150929,deer\n150930,frog\n150931,bird\n150932,cat\n150933,frog\n150934,ship\n150935,frog\n150936,truck\n150937,automobile\n150938,horse\n150939,bird\n150940,horse\n150941,airplane\n150942,deer\n150943,cat\n150944,airplane\n150945,bird\n150946,horse\n150947,truck\n150948,horse\n150949,cat\n150950,automobile\n150951,airplane\n150952,frog\n150953,airplane\n150954,automobile\n150955,ship\n150956,frog\n150957,horse\n150958,bird\n150959,frog\n150960,dog\n150961,horse\n150962,ship\n150963,deer\n150964,ship\n150965,ship\n150966,dog\n150967,airplane\n150968,deer\n150969,cat\n150970,cat\n150971,horse\n150972,horse\n150973,bird\n150974,automobile\n150975,truck\n150976,frog\n150977,frog\n150978,airplane\n150979,automobile\n150980,automobile\n150981,ship\n150982,automobile\n150983,deer\n150984,ship\n150985,airplane\n150986,deer\n150987,cat\n150988,cat\n150989,truck\n150990,truck\n150991,bird\n150992,dog\n150993,bird\n150994,truck\n150995,bird\n150996,frog\n150997,deer\n150998,horse\n150999,dog\n151000,truck\n151001,automobile\n151002,cat\n151003,horse\n151004,cat\n151005,truck\n151006,cat\n151007,cat\n151008,ship\n151009,dog\n151010,bird\n151011,dog\n151012,ship\n151013,frog\n151014,automobile\n151015,truck\n151016,frog\n151017,automobile\n151018,deer\n151019,horse\n151020,truck\n151021,horse\n151022,deer\n151023,frog\n151024,airplane\n151025,automobile\n151026,cat\n151027,ship\n151028,truck\n151029,deer\n151030,truck\n151031,frog\n151032,deer\n151033,dog\n151034,cat\n151035,deer\n151036,truck\n151037,dog\n151038,deer\n151039,frog\n151040,airplane\n151041,frog\n151042,deer\n151043,automobile\n151044,bird\n151045,frog\n151046,automobile\n151047,deer\n151048,bird\n151049,bird\n151050,cat\n151051,deer\n151052,cat\n151053,frog\n151054,truck\n151055,deer\n151056,truck\n151057,truck\n151058,automobile\n151059,horse\n151060,horse\n151061,truck\n151062,airplane\n151063,truck\n151064,bird\n151065,deer\n151066,dog\n151067,frog\n151068,bird\n151069,frog\n151070,frog\n151071,deer\n151072,frog\n151073,automobile\n151074,horse\n151075,frog\n151076,deer\n151077,bird\n151078,cat\n151079,cat\n151080,deer\n151081,frog\n151082,frog\n151083,cat\n151084,automobile\n151085,truck\n151086,horse\n151087,frog\n151088,bird\n151089,deer\n151090,frog\n151091,airplane\n151092,dog\n151093,horse\n151094,airplane\n151095,frog\n151096,deer\n151097,airplane\n151098,cat\n151099,frog\n151100,deer\n151101,truck\n151102,automobile\n151103,airplane\n151104,dog\n151105,cat\n151106,truck\n151107,bird\n151108,cat\n151109,airplane\n151110,truck\n151111,bird\n151112,truck\n151113,airplane\n151114,cat\n151115,cat\n151116,airplane\n151117,deer\n151118,cat\n151119,truck\n151120,airplane\n151121,ship\n151122,bird\n151123,deer\n151124,deer\n151125,bird\n151126,frog\n151127,dog\n151128,deer\n151129,ship\n151130,ship\n151131,airplane\n151132,frog\n151133,bird\n151134,bird\n151135,bird\n151136,frog\n151137,truck\n151138,cat\n151139,ship\n151140,truck\n151141,ship\n151142,truck\n151143,bird\n151144,ship\n151145,bird\n151146,bird\n151147,frog\n151148,frog\n151149,deer\n151150,frog\n151151,bird\n151152,bird\n151153,airplane\n151154,dog\n151155,airplane\n151156,automobile\n151157,truck\n151158,dog\n151159,cat\n151160,dog\n151161,dog\n151162,frog\n151163,ship\n151164,frog\n151165,deer\n151166,dog\n151167,frog\n151168,dog\n151169,dog\n151170,cat\n151171,horse\n151172,bird\n151173,bird\n151174,deer\n151175,ship\n151176,cat\n151177,deer\n151178,cat\n151179,truck\n151180,deer\n151181,frog\n151182,truck\n151183,truck\n151184,cat\n151185,automobile\n151186,frog\n151187,ship\n151188,frog\n151189,bird\n151190,bird\n151191,cat\n151192,ship\n151193,automobile\n151194,frog\n151195,frog\n151196,ship\n151197,cat\n151198,ship\n151199,horse\n151200,airplane\n151201,frog\n151202,ship\n151203,ship\n151204,cat\n151205,cat\n151206,deer\n151207,cat\n151208,frog\n151209,deer\n151210,frog\n151211,cat\n151212,deer\n151213,ship\n151214,deer\n151215,deer\n151216,cat\n151217,dog\n151218,horse\n151219,horse\n151220,horse\n151221,horse\n151222,cat\n151223,deer\n151224,dog\n151225,deer\n151226,deer\n151227,truck\n151228,ship\n151229,truck\n151230,automobile\n151231,horse\n151232,frog\n151233,horse\n151234,frog\n151235,cat\n151236,automobile\n151237,truck\n151238,truck\n151239,bird\n151240,ship\n151241,truck\n151242,bird\n151243,deer\n151244,cat\n151245,automobile\n151246,cat\n151247,bird\n151248,bird\n151249,airplane\n151250,cat\n151251,horse\n151252,cat\n151253,cat\n151254,deer\n151255,frog\n151256,dog\n151257,deer\n151258,cat\n151259,truck\n151260,deer\n151261,deer\n151262,dog\n151263,deer\n151264,truck\n151265,horse\n151266,horse\n151267,truck\n151268,dog\n151269,dog\n151270,bird\n151271,airplane\n151272,deer\n151273,dog\n151274,horse\n151275,truck\n151276,truck\n151277,dog\n151278,automobile\n151279,truck\n151280,frog\n151281,dog\n151282,deer\n151283,dog\n151284,deer\n151285,deer\n151286,bird\n151287,deer\n151288,deer\n151289,horse\n151290,horse\n151291,cat\n151292,cat\n151293,dog\n151294,automobile\n151295,dog\n151296,horse\n151297,cat\n151298,ship\n151299,deer\n151300,frog\n151301,bird\n151302,deer\n151303,automobile\n151304,truck\n151305,deer\n151306,horse\n151307,frog\n151308,airplane\n151309,horse\n151310,airplane\n151311,bird\n151312,automobile\n151313,cat\n151314,automobile\n151315,automobile\n151316,deer\n151317,automobile\n151318,automobile\n151319,truck\n151320,truck\n151321,cat\n151322,automobile\n151323,automobile\n151324,frog\n151325,truck\n151326,cat\n151327,deer\n151328,bird\n151329,deer\n151330,deer\n151331,horse\n151332,bird\n151333,truck\n151334,cat\n151335,deer\n151336,frog\n151337,cat\n151338,deer\n151339,horse\n151340,truck\n151341,airplane\n151342,deer\n151343,bird\n151344,cat\n151345,ship\n151346,dog\n151347,bird\n151348,deer\n151349,deer\n151350,dog\n151351,deer\n151352,airplane\n151353,automobile\n151354,horse\n151355,horse\n151356,truck\n151357,deer\n151358,frog\n151359,deer\n151360,bird\n151361,automobile\n151362,airplane\n151363,dog\n151364,frog\n151365,dog\n151366,truck\n151367,dog\n151368,airplane\n151369,ship\n151370,deer\n151371,ship\n151372,cat\n151373,frog\n151374,airplane\n151375,frog\n151376,ship\n151377,airplane\n151378,frog\n151379,frog\n151380,deer\n151381,horse\n151382,ship\n151383,deer\n151384,bird\n151385,cat\n151386,frog\n151387,frog\n151388,truck\n151389,ship\n151390,airplane\n151391,frog\n151392,ship\n151393,deer\n151394,truck\n151395,automobile\n151396,frog\n151397,ship\n151398,deer\n151399,truck\n151400,cat\n151401,cat\n151402,cat\n151403,deer\n151404,ship\n151405,airplane\n151406,bird\n151407,deer\n151408,frog\n151409,frog\n151410,deer\n151411,horse\n151412,cat\n151413,automobile\n151414,truck\n151415,deer\n151416,deer\n151417,frog\n151418,automobile\n151419,truck\n151420,airplane\n151421,truck\n151422,cat\n151423,cat\n151424,cat\n151425,airplane\n151426,frog\n151427,airplane\n151428,cat\n151429,automobile\n151430,dog\n151431,cat\n151432,dog\n151433,horse\n151434,airplane\n151435,cat\n151436,dog\n151437,frog\n151438,frog\n151439,truck\n151440,horse\n151441,ship\n151442,dog\n151443,cat\n151444,airplane\n151445,frog\n151446,cat\n151447,cat\n151448,airplane\n151449,frog\n151450,airplane\n151451,ship\n151452,dog\n151453,dog\n151454,cat\n151455,airplane\n151456,automobile\n151457,bird\n151458,frog\n151459,ship\n151460,dog\n151461,truck\n151462,automobile\n151463,truck\n151464,cat\n151465,horse\n151466,dog\n151467,deer\n151468,dog\n151469,ship\n151470,horse\n151471,bird\n151472,automobile\n151473,horse\n151474,dog\n151475,cat\n151476,horse\n151477,cat\n151478,horse\n151479,deer\n151480,horse\n151481,airplane\n151482,ship\n151483,cat\n151484,truck\n151485,airplane\n151486,ship\n151487,cat\n151488,horse\n151489,horse\n151490,bird\n151491,cat\n151492,dog\n151493,cat\n151494,bird\n151495,automobile\n151496,dog\n151497,dog\n151498,deer\n151499,truck\n151500,truck\n151501,cat\n151502,deer\n151503,cat\n151504,airplane\n151505,cat\n151506,airplane\n151507,horse\n151508,deer\n151509,ship\n151510,deer\n151511,airplane\n151512,frog\n151513,horse\n151514,airplane\n151515,dog\n151516,cat\n151517,automobile\n151518,automobile\n151519,automobile\n151520,bird\n151521,frog\n151522,horse\n151523,airplane\n151524,cat\n151525,deer\n151526,cat\n151527,ship\n151528,frog\n151529,truck\n151530,truck\n151531,horse\n151532,truck\n151533,truck\n151534,horse\n151535,deer\n151536,ship\n151537,ship\n151538,frog\n151539,dog\n151540,airplane\n151541,horse\n151542,automobile\n151543,horse\n151544,cat\n151545,bird\n151546,cat\n151547,cat\n151548,bird\n151549,ship\n151550,deer\n151551,ship\n151552,bird\n151553,bird\n151554,frog\n151555,airplane\n151556,frog\n151557,truck\n151558,frog\n151559,horse\n151560,frog\n151561,airplane\n151562,dog\n151563,airplane\n151564,ship\n151565,automobile\n151566,ship\n151567,deer\n151568,ship\n151569,automobile\n151570,ship\n151571,dog\n151572,truck\n151573,cat\n151574,deer\n151575,cat\n151576,cat\n151577,truck\n151578,frog\n151579,truck\n151580,deer\n151581,bird\n151582,deer\n151583,bird\n151584,truck\n151585,frog\n151586,ship\n151587,horse\n151588,automobile\n151589,bird\n151590,dog\n151591,frog\n151592,deer\n151593,dog\n151594,cat\n151595,frog\n151596,bird\n151597,truck\n151598,truck\n151599,truck\n151600,truck\n151601,ship\n151602,cat\n151603,automobile\n151604,frog\n151605,cat\n151606,cat\n151607,automobile\n151608,bird\n151609,automobile\n151610,deer\n151611,airplane\n151612,dog\n151613,frog\n151614,horse\n151615,horse\n151616,automobile\n151617,truck\n151618,automobile\n151619,cat\n151620,dog\n151621,horse\n151622,airplane\n151623,airplane\n151624,horse\n151625,ship\n151626,cat\n151627,deer\n151628,dog\n151629,frog\n151630,cat\n151631,automobile\n151632,automobile\n151633,ship\n151634,horse\n151635,deer\n151636,ship\n151637,automobile\n151638,bird\n151639,horse\n151640,bird\n151641,horse\n151642,airplane\n151643,truck\n151644,deer\n151645,deer\n151646,deer\n151647,airplane\n151648,horse\n151649,dog\n151650,automobile\n151651,airplane\n151652,deer\n151653,frog\n151654,dog\n151655,airplane\n151656,cat\n151657,deer\n151658,deer\n151659,ship\n151660,dog\n151661,frog\n151662,ship\n151663,cat\n151664,airplane\n151665,horse\n151666,horse\n151667,horse\n151668,bird\n151669,horse\n151670,airplane\n151671,deer\n151672,dog\n151673,cat\n151674,deer\n151675,horse\n151676,airplane\n151677,automobile\n151678,truck\n151679,automobile\n151680,deer\n151681,bird\n151682,deer\n151683,airplane\n151684,cat\n151685,bird\n151686,deer\n151687,cat\n151688,dog\n151689,truck\n151690,automobile\n151691,cat\n151692,dog\n151693,cat\n151694,cat\n151695,horse\n151696,cat\n151697,cat\n151698,cat\n151699,truck\n151700,automobile\n151701,deer\n151702,frog\n151703,truck\n151704,dog\n151705,deer\n151706,deer\n151707,ship\n151708,bird\n151709,cat\n151710,cat\n151711,cat\n151712,ship\n151713,dog\n151714,airplane\n151715,frog\n151716,dog\n151717,frog\n151718,ship\n151719,horse\n151720,truck\n151721,dog\n151722,frog\n151723,automobile\n151724,deer\n151725,dog\n151726,ship\n151727,ship\n151728,ship\n151729,horse\n151730,automobile\n151731,ship\n151732,cat\n151733,automobile\n151734,dog\n151735,truck\n151736,dog\n151737,horse\n151738,bird\n151739,truck\n151740,cat\n151741,dog\n151742,frog\n151743,horse\n151744,horse\n151745,cat\n151746,automobile\n151747,cat\n151748,airplane\n151749,dog\n151750,dog\n151751,deer\n151752,deer\n151753,truck\n151754,frog\n151755,frog\n151756,dog\n151757,airplane\n151758,dog\n151759,deer\n151760,bird\n151761,horse\n151762,bird\n151763,ship\n151764,dog\n151765,ship\n151766,automobile\n151767,truck\n151768,automobile\n151769,horse\n151770,truck\n151771,frog\n151772,automobile\n151773,cat\n151774,automobile\n151775,airplane\n151776,cat\n151777,dog\n151778,dog\n151779,truck\n151780,dog\n151781,frog\n151782,automobile\n151783,horse\n151784,deer\n151785,frog\n151786,deer\n151787,automobile\n151788,deer\n151789,truck\n151790,deer\n151791,bird\n151792,frog\n151793,deer\n151794,bird\n151795,dog\n151796,automobile\n151797,cat\n151798,truck\n151799,deer\n151800,bird\n151801,dog\n151802,frog\n151803,automobile\n151804,bird\n151805,cat\n151806,deer\n151807,horse\n151808,automobile\n151809,bird\n151810,automobile\n151811,horse\n151812,airplane\n151813,airplane\n151814,cat\n151815,ship\n151816,cat\n151817,dog\n151818,cat\n151819,cat\n151820,truck\n151821,ship\n151822,truck\n151823,ship\n151824,ship\n151825,deer\n151826,dog\n151827,bird\n151828,airplane\n151829,truck\n151830,cat\n151831,cat\n151832,cat\n151833,dog\n151834,airplane\n151835,truck\n151836,deer\n151837,cat\n151838,dog\n151839,dog\n151840,ship\n151841,automobile\n151842,cat\n151843,horse\n151844,automobile\n151845,horse\n151846,truck\n151847,airplane\n151848,frog\n151849,horse\n151850,dog\n151851,frog\n151852,ship\n151853,bird\n151854,airplane\n151855,cat\n151856,cat\n151857,dog\n151858,bird\n151859,bird\n151860,deer\n151861,ship\n151862,deer\n151863,bird\n151864,horse\n151865,automobile\n151866,deer\n151867,airplane\n151868,frog\n151869,horse\n151870,deer\n151871,horse\n151872,bird\n151873,horse\n151874,frog\n151875,deer\n151876,dog\n151877,automobile\n151878,airplane\n151879,deer\n151880,ship\n151881,automobile\n151882,deer\n151883,deer\n151884,frog\n151885,dog\n151886,automobile\n151887,deer\n151888,deer\n151889,automobile\n151890,horse\n151891,cat\n151892,truck\n151893,horse\n151894,horse\n151895,airplane\n151896,truck\n151897,frog\n151898,bird\n151899,horse\n151900,bird\n151901,frog\n151902,automobile\n151903,ship\n151904,deer\n151905,airplane\n151906,ship\n151907,horse\n151908,deer\n151909,airplane\n151910,truck\n151911,ship\n151912,ship\n151913,horse\n151914,automobile\n151915,cat\n151916,truck\n151917,dog\n151918,dog\n151919,horse\n151920,deer\n151921,deer\n151922,cat\n151923,deer\n151924,truck\n151925,frog\n151926,frog\n151927,horse\n151928,dog\n151929,frog\n151930,deer\n151931,truck\n151932,automobile\n151933,dog\n151934,cat\n151935,airplane\n151936,automobile\n151937,airplane\n151938,frog\n151939,cat\n151940,frog\n151941,bird\n151942,bird\n151943,horse\n151944,horse\n151945,airplane\n151946,deer\n151947,dog\n151948,frog\n151949,bird\n151950,airplane\n151951,bird\n151952,automobile\n151953,truck\n151954,frog\n151955,frog\n151956,dog\n151957,horse\n151958,truck\n151959,airplane\n151960,automobile\n151961,automobile\n151962,deer\n151963,dog\n151964,horse\n151965,horse\n151966,ship\n151967,ship\n151968,horse\n151969,horse\n151970,automobile\n151971,dog\n151972,bird\n151973,truck\n151974,deer\n151975,ship\n151976,cat\n151977,dog\n151978,cat\n151979,airplane\n151980,airplane\n151981,frog\n151982,ship\n151983,cat\n151984,cat\n151985,cat\n151986,airplane\n151987,automobile\n151988,cat\n151989,bird\n151990,horse\n151991,deer\n151992,cat\n151993,truck\n151994,horse\n151995,ship\n151996,bird\n151997,frog\n151998,automobile\n151999,horse\n152000,deer\n152001,frog\n152002,bird\n152003,airplane\n152004,bird\n152005,horse\n152006,ship\n152007,bird\n152008,frog\n152009,truck\n152010,automobile\n152011,dog\n152012,cat\n152013,frog\n152014,deer\n152015,truck\n152016,ship\n152017,automobile\n152018,dog\n152019,airplane\n152020,dog\n152021,bird\n152022,dog\n152023,deer\n152024,ship\n152025,frog\n152026,horse\n152027,frog\n152028,deer\n152029,ship\n152030,deer\n152031,cat\n152032,dog\n152033,truck\n152034,truck\n152035,horse\n152036,dog\n152037,deer\n152038,airplane\n152039,frog\n152040,ship\n152041,airplane\n152042,automobile\n152043,cat\n152044,airplane\n152045,cat\n152046,automobile\n152047,truck\n152048,airplane\n152049,truck\n152050,airplane\n152051,cat\n152052,frog\n152053,frog\n152054,horse\n152055,deer\n152056,airplane\n152057,ship\n152058,horse\n152059,deer\n152060,deer\n152061,cat\n152062,bird\n152063,truck\n152064,automobile\n152065,horse\n152066,truck\n152067,dog\n152068,ship\n152069,truck\n152070,automobile\n152071,bird\n152072,airplane\n152073,automobile\n152074,truck\n152075,automobile\n152076,deer\n152077,deer\n152078,deer\n152079,truck\n152080,deer\n152081,horse\n152082,automobile\n152083,automobile\n152084,airplane\n152085,truck\n152086,horse\n152087,frog\n152088,deer\n152089,airplane\n152090,ship\n152091,airplane\n152092,frog\n152093,bird\n152094,bird\n152095,deer\n152096,cat\n152097,airplane\n152098,horse\n152099,automobile\n152100,ship\n152101,horse\n152102,dog\n152103,bird\n152104,dog\n152105,truck\n152106,truck\n152107,dog\n152108,horse\n152109,automobile\n152110,bird\n152111,ship\n152112,deer\n152113,automobile\n152114,truck\n152115,cat\n152116,truck\n152117,airplane\n152118,ship\n152119,deer\n152120,dog\n152121,truck\n152122,frog\n152123,bird\n152124,cat\n152125,truck\n152126,deer\n152127,deer\n152128,airplane\n152129,frog\n152130,truck\n152131,cat\n152132,horse\n152133,horse\n152134,deer\n152135,cat\n152136,cat\n152137,ship\n152138,ship\n152139,airplane\n152140,horse\n152141,cat\n152142,cat\n152143,frog\n152144,cat\n152145,dog\n152146,dog\n152147,deer\n152148,dog\n152149,airplane\n152150,frog\n152151,horse\n152152,automobile\n152153,bird\n152154,deer\n152155,frog\n152156,cat\n152157,horse\n152158,frog\n152159,dog\n152160,horse\n152161,airplane\n152162,bird\n152163,automobile\n152164,automobile\n152165,horse\n152166,truck\n152167,deer\n152168,horse\n152169,airplane\n152170,dog\n152171,dog\n152172,horse\n152173,truck\n152174,bird\n152175,dog\n152176,deer\n152177,automobile\n152178,automobile\n152179,deer\n152180,deer\n152181,ship\n152182,airplane\n152183,frog\n152184,frog\n152185,ship\n152186,bird\n152187,deer\n152188,frog\n152189,dog\n152190,dog\n152191,truck\n152192,frog\n152193,bird\n152194,bird\n152195,frog\n152196,deer\n152197,truck\n152198,frog\n152199,frog\n152200,deer\n152201,cat\n152202,dog\n152203,ship\n152204,dog\n152205,airplane\n152206,horse\n152207,ship\n152208,deer\n152209,cat\n152210,dog\n152211,horse\n152212,automobile\n152213,ship\n152214,ship\n152215,horse\n152216,cat\n152217,horse\n152218,airplane\n152219,cat\n152220,frog\n152221,truck\n152222,airplane\n152223,deer\n152224,horse\n152225,deer\n152226,frog\n152227,deer\n152228,horse\n152229,bird\n152230,truck\n152231,bird\n152232,ship\n152233,frog\n152234,cat\n152235,automobile\n152236,ship\n152237,ship\n152238,airplane\n152239,truck\n152240,deer\n152241,truck\n152242,deer\n152243,dog\n152244,deer\n152245,airplane\n152246,ship\n152247,cat\n152248,dog\n152249,automobile\n152250,frog\n152251,truck\n152252,frog\n152253,dog\n152254,deer\n152255,frog\n152256,deer\n152257,dog\n152258,ship\n152259,cat\n152260,truck\n152261,ship\n152262,deer\n152263,airplane\n152264,cat\n152265,cat\n152266,cat\n152267,bird\n152268,deer\n152269,truck\n152270,dog\n152271,cat\n152272,frog\n152273,cat\n152274,cat\n152275,automobile\n152276,ship\n152277,ship\n152278,horse\n152279,airplane\n152280,dog\n152281,truck\n152282,bird\n152283,cat\n152284,cat\n152285,bird\n152286,automobile\n152287,truck\n152288,dog\n152289,ship\n152290,truck\n152291,frog\n152292,frog\n152293,truck\n152294,deer\n152295,bird\n152296,cat\n152297,ship\n152298,airplane\n152299,dog\n152300,cat\n152301,horse\n152302,deer\n152303,cat\n152304,horse\n152305,cat\n152306,bird\n152307,ship\n152308,horse\n152309,automobile\n152310,frog\n152311,airplane\n152312,dog\n152313,deer\n152314,airplane\n152315,cat\n152316,truck\n152317,frog\n152318,dog\n152319,bird\n152320,deer\n152321,frog\n152322,horse\n152323,bird\n152324,horse\n152325,dog\n152326,automobile\n152327,deer\n152328,airplane\n152329,frog\n152330,deer\n152331,deer\n152332,horse\n152333,ship\n152334,horse\n152335,ship\n152336,dog\n152337,truck\n152338,bird\n152339,cat\n152340,dog\n152341,truck\n152342,deer\n152343,automobile\n152344,cat\n152345,airplane\n152346,dog\n152347,truck\n152348,horse\n152349,deer\n152350,frog\n152351,dog\n152352,frog\n152353,dog\n152354,truck\n152355,horse\n152356,ship\n152357,ship\n152358,dog\n152359,truck\n152360,truck\n152361,cat\n152362,frog\n152363,ship\n152364,truck\n152365,airplane\n152366,truck\n152367,airplane\n152368,deer\n152369,bird\n152370,airplane\n152371,ship\n152372,dog\n152373,automobile\n152374,cat\n152375,truck\n152376,frog\n152377,deer\n152378,cat\n152379,frog\n152380,deer\n152381,ship\n152382,bird\n152383,deer\n152384,deer\n152385,frog\n152386,truck\n152387,ship\n152388,cat\n152389,truck\n152390,automobile\n152391,airplane\n152392,deer\n152393,airplane\n152394,cat\n152395,frog\n152396,deer\n152397,dog\n152398,dog\n152399,truck\n152400,horse\n152401,dog\n152402,airplane\n152403,truck\n152404,deer\n152405,deer\n152406,bird\n152407,airplane\n152408,deer\n152409,airplane\n152410,ship\n152411,frog\n152412,deer\n152413,horse\n152414,frog\n152415,horse\n152416,truck\n152417,frog\n152418,automobile\n152419,truck\n152420,airplane\n152421,ship\n152422,ship\n152423,truck\n152424,cat\n152425,ship\n152426,deer\n152427,truck\n152428,deer\n152429,cat\n152430,truck\n152431,horse\n152432,truck\n152433,automobile\n152434,airplane\n152435,airplane\n152436,automobile\n152437,airplane\n152438,frog\n152439,deer\n152440,frog\n152441,ship\n152442,deer\n152443,ship\n152444,frog\n152445,cat\n152446,cat\n152447,airplane\n152448,horse\n152449,dog\n152450,horse\n152451,automobile\n152452,cat\n152453,deer\n152454,horse\n152455,dog\n152456,ship\n152457,ship\n152458,frog\n152459,deer\n152460,dog\n152461,frog\n152462,automobile\n152463,truck\n152464,truck\n152465,frog\n152466,deer\n152467,ship\n152468,dog\n152469,ship\n152470,bird\n152471,horse\n152472,dog\n152473,airplane\n152474,automobile\n152475,ship\n152476,frog\n152477,horse\n152478,dog\n152479,dog\n152480,bird\n152481,frog\n152482,ship\n152483,dog\n152484,truck\n152485,horse\n152486,frog\n152487,bird\n152488,automobile\n152489,cat\n152490,frog\n152491,airplane\n152492,frog\n152493,cat\n152494,automobile\n152495,dog\n152496,airplane\n152497,automobile\n152498,deer\n152499,cat\n152500,dog\n152501,ship\n152502,bird\n152503,truck\n152504,automobile\n152505,frog\n152506,frog\n152507,airplane\n152508,deer\n152509,deer\n152510,cat\n152511,ship\n152512,automobile\n152513,dog\n152514,horse\n152515,frog\n152516,cat\n152517,automobile\n152518,frog\n152519,bird\n152520,deer\n152521,cat\n152522,frog\n152523,cat\n152524,deer\n152525,frog\n152526,automobile\n152527,frog\n152528,horse\n152529,truck\n152530,deer\n152531,truck\n152532,airplane\n152533,ship\n152534,truck\n152535,deer\n152536,truck\n152537,bird\n152538,bird\n152539,truck\n152540,deer\n152541,bird\n152542,bird\n152543,frog\n152544,deer\n152545,cat\n152546,truck\n152547,frog\n152548,airplane\n152549,airplane\n152550,automobile\n152551,cat\n152552,cat\n152553,cat\n152554,cat\n152555,bird\n152556,dog\n152557,horse\n152558,frog\n152559,airplane\n152560,ship\n152561,airplane\n152562,frog\n152563,airplane\n152564,deer\n152565,deer\n152566,airplane\n152567,deer\n152568,automobile\n152569,deer\n152570,bird\n152571,dog\n152572,truck\n152573,deer\n152574,airplane\n152575,frog\n152576,bird\n152577,bird\n152578,cat\n152579,bird\n152580,frog\n152581,cat\n152582,ship\n152583,automobile\n152584,truck\n152585,ship\n152586,horse\n152587,truck\n152588,bird\n152589,airplane\n152590,deer\n152591,dog\n152592,airplane\n152593,dog\n152594,dog\n152595,frog\n152596,horse\n152597,cat\n152598,automobile\n152599,deer\n152600,cat\n152601,cat\n152602,ship\n152603,horse\n152604,truck\n152605,dog\n152606,horse\n152607,frog\n152608,airplane\n152609,dog\n152610,truck\n152611,cat\n152612,deer\n152613,cat\n152614,bird\n152615,horse\n152616,horse\n152617,horse\n152618,cat\n152619,frog\n152620,dog\n152621,horse\n152622,cat\n152623,deer\n152624,deer\n152625,airplane\n152626,dog\n152627,horse\n152628,bird\n152629,deer\n152630,truck\n152631,dog\n152632,horse\n152633,airplane\n152634,ship\n152635,dog\n152636,truck\n152637,horse\n152638,dog\n152639,dog\n152640,dog\n152641,dog\n152642,bird\n152643,truck\n152644,dog\n152645,bird\n152646,horse\n152647,deer\n152648,truck\n152649,horse\n152650,airplane\n152651,deer\n152652,bird\n152653,cat\n152654,dog\n152655,horse\n152656,dog\n152657,cat\n152658,airplane\n152659,horse\n152660,dog\n152661,automobile\n152662,deer\n152663,automobile\n152664,dog\n152665,horse\n152666,truck\n152667,cat\n152668,frog\n152669,horse\n152670,bird\n152671,cat\n152672,cat\n152673,horse\n152674,dog\n152675,ship\n152676,dog\n152677,automobile\n152678,dog\n152679,deer\n152680,frog\n152681,airplane\n152682,truck\n152683,cat\n152684,frog\n152685,bird\n152686,bird\n152687,deer\n152688,cat\n152689,cat\n152690,deer\n152691,frog\n152692,frog\n152693,cat\n152694,airplane\n152695,bird\n152696,cat\n152697,airplane\n152698,airplane\n152699,cat\n152700,airplane\n152701,truck\n152702,dog\n152703,dog\n152704,cat\n152705,truck\n152706,automobile\n152707,dog\n152708,bird\n152709,cat\n152710,bird\n152711,airplane\n152712,dog\n152713,dog\n152714,cat\n152715,automobile\n152716,dog\n152717,bird\n152718,airplane\n152719,dog\n152720,automobile\n152721,cat\n152722,frog\n152723,truck\n152724,cat\n152725,airplane\n152726,ship\n152727,frog\n152728,ship\n152729,frog\n152730,frog\n152731,dog\n152732,ship\n152733,airplane\n152734,truck\n152735,ship\n152736,airplane\n152737,frog\n152738,ship\n152739,cat\n152740,airplane\n152741,truck\n152742,automobile\n152743,horse\n152744,truck\n152745,dog\n152746,frog\n152747,dog\n152748,airplane\n152749,frog\n152750,airplane\n152751,horse\n152752,frog\n152753,automobile\n152754,horse\n152755,horse\n152756,dog\n152757,frog\n152758,cat\n152759,truck\n152760,cat\n152761,cat\n152762,airplane\n152763,bird\n152764,frog\n152765,truck\n152766,deer\n152767,frog\n152768,deer\n152769,truck\n152770,ship\n152771,cat\n152772,automobile\n152773,frog\n152774,deer\n152775,ship\n152776,deer\n152777,cat\n152778,truck\n152779,deer\n152780,airplane\n152781,ship\n152782,frog\n152783,cat\n152784,ship\n152785,bird\n152786,bird\n152787,deer\n152788,frog\n152789,deer\n152790,horse\n152791,bird\n152792,dog\n152793,airplane\n152794,deer\n152795,airplane\n152796,horse\n152797,dog\n152798,cat\n152799,frog\n152800,airplane\n152801,automobile\n152802,truck\n152803,cat\n152804,truck\n152805,frog\n152806,frog\n152807,airplane\n152808,truck\n152809,ship\n152810,cat\n152811,automobile\n152812,bird\n152813,cat\n152814,frog\n152815,frog\n152816,dog\n152817,deer\n152818,bird\n152819,airplane\n152820,cat\n152821,truck\n152822,ship\n152823,ship\n152824,ship\n152825,cat\n152826,cat\n152827,airplane\n152828,frog\n152829,frog\n152830,truck\n152831,bird\n152832,truck\n152833,ship\n152834,cat\n152835,cat\n152836,frog\n152837,automobile\n152838,bird\n152839,deer\n152840,airplane\n152841,cat\n152842,automobile\n152843,truck\n152844,frog\n152845,airplane\n152846,deer\n152847,cat\n152848,deer\n152849,frog\n152850,automobile\n152851,deer\n152852,truck\n152853,ship\n152854,horse\n152855,deer\n152856,airplane\n152857,ship\n152858,airplane\n152859,bird\n152860,bird\n152861,cat\n152862,automobile\n152863,truck\n152864,automobile\n152865,cat\n152866,dog\n152867,frog\n152868,deer\n152869,horse\n152870,deer\n152871,dog\n152872,automobile\n152873,automobile\n152874,dog\n152875,deer\n152876,frog\n152877,cat\n152878,bird\n152879,cat\n152880,frog\n152881,cat\n152882,cat\n152883,airplane\n152884,horse\n152885,bird\n152886,cat\n152887,bird\n152888,frog\n152889,dog\n152890,bird\n152891,cat\n152892,truck\n152893,deer\n152894,bird\n152895,frog\n152896,deer\n152897,cat\n152898,automobile\n152899,automobile\n152900,horse\n152901,dog\n152902,deer\n152903,frog\n152904,ship\n152905,deer\n152906,truck\n152907,airplane\n152908,airplane\n152909,cat\n152910,truck\n152911,airplane\n152912,cat\n152913,ship\n152914,airplane\n152915,automobile\n152916,horse\n152917,frog\n152918,dog\n152919,deer\n152920,deer\n152921,truck\n152922,horse\n152923,horse\n152924,bird\n152925,cat\n152926,frog\n152927,frog\n152928,dog\n152929,truck\n152930,airplane\n152931,bird\n152932,deer\n152933,horse\n152934,ship\n152935,horse\n152936,deer\n152937,automobile\n152938,truck\n152939,cat\n152940,frog\n152941,bird\n152942,cat\n152943,cat\n152944,automobile\n152945,frog\n152946,truck\n152947,bird\n152948,bird\n152949,automobile\n152950,horse\n152951,frog\n152952,bird\n152953,horse\n152954,cat\n152955,horse\n152956,horse\n152957,bird\n152958,dog\n152959,airplane\n152960,automobile\n152961,airplane\n152962,horse\n152963,cat\n152964,ship\n152965,deer\n152966,ship\n152967,ship\n152968,deer\n152969,deer\n152970,frog\n152971,dog\n152972,ship\n152973,bird\n152974,airplane\n152975,truck\n152976,ship\n152977,frog\n152978,airplane\n152979,automobile\n152980,cat\n152981,bird\n152982,deer\n152983,ship\n152984,bird\n152985,dog\n152986,dog\n152987,horse\n152988,airplane\n152989,truck\n152990,horse\n152991,truck\n152992,cat\n152993,deer\n152994,frog\n152995,dog\n152996,horse\n152997,ship\n152998,airplane\n152999,ship\n153000,horse\n153001,dog\n153002,frog\n153003,airplane\n153004,frog\n153005,cat\n153006,deer\n153007,cat\n153008,truck\n153009,airplane\n153010,deer\n153011,deer\n153012,dog\n153013,horse\n153014,airplane\n153015,truck\n153016,ship\n153017,dog\n153018,ship\n153019,horse\n153020,horse\n153021,airplane\n153022,deer\n153023,horse\n153024,frog\n153025,bird\n153026,truck\n153027,frog\n153028,frog\n153029,horse\n153030,bird\n153031,deer\n153032,cat\n153033,cat\n153034,dog\n153035,truck\n153036,bird\n153037,deer\n153038,airplane\n153039,automobile\n153040,deer\n153041,truck\n153042,deer\n153043,cat\n153044,bird\n153045,airplane\n153046,truck\n153047,horse\n153048,dog\n153049,deer\n153050,truck\n153051,dog\n153052,cat\n153053,cat\n153054,ship\n153055,automobile\n153056,frog\n153057,ship\n153058,dog\n153059,horse\n153060,deer\n153061,airplane\n153062,deer\n153063,ship\n153064,dog\n153065,horse\n153066,bird\n153067,ship\n153068,cat\n153069,ship\n153070,truck\n153071,dog\n153072,deer\n153073,automobile\n153074,deer\n153075,dog\n153076,frog\n153077,truck\n153078,cat\n153079,horse\n153080,cat\n153081,horse\n153082,dog\n153083,airplane\n153084,airplane\n153085,truck\n153086,horse\n153087,dog\n153088,bird\n153089,frog\n153090,frog\n153091,horse\n153092,automobile\n153093,dog\n153094,truck\n153095,cat\n153096,truck\n153097,horse\n153098,dog\n153099,airplane\n153100,bird\n153101,airplane\n153102,truck\n153103,airplane\n153104,frog\n153105,horse\n153106,truck\n153107,cat\n153108,truck\n153109,dog\n153110,dog\n153111,cat\n153112,automobile\n153113,deer\n153114,ship\n153115,frog\n153116,horse\n153117,automobile\n153118,horse\n153119,ship\n153120,bird\n153121,automobile\n153122,truck\n153123,dog\n153124,bird\n153125,truck\n153126,dog\n153127,ship\n153128,airplane\n153129,horse\n153130,cat\n153131,dog\n153132,truck\n153133,airplane\n153134,horse\n153135,truck\n153136,frog\n153137,deer\n153138,deer\n153139,dog\n153140,frog\n153141,automobile\n153142,deer\n153143,deer\n153144,ship\n153145,frog\n153146,ship\n153147,airplane\n153148,bird\n153149,airplane\n153150,horse\n153151,ship\n153152,automobile\n153153,frog\n153154,frog\n153155,horse\n153156,ship\n153157,deer\n153158,truck\n153159,cat\n153160,bird\n153161,frog\n153162,dog\n153163,cat\n153164,cat\n153165,deer\n153166,deer\n153167,deer\n153168,horse\n153169,cat\n153170,automobile\n153171,truck\n153172,ship\n153173,cat\n153174,dog\n153175,airplane\n153176,automobile\n153177,automobile\n153178,truck\n153179,dog\n153180,bird\n153181,dog\n153182,bird\n153183,dog\n153184,frog\n153185,deer\n153186,ship\n153187,horse\n153188,frog\n153189,deer\n153190,cat\n153191,automobile\n153192,automobile\n153193,bird\n153194,horse\n153195,frog\n153196,deer\n153197,automobile\n153198,cat\n153199,deer\n153200,airplane\n153201,automobile\n153202,deer\n153203,deer\n153204,deer\n153205,deer\n153206,ship\n153207,truck\n153208,deer\n153209,cat\n153210,bird\n153211,truck\n153212,deer\n153213,deer\n153214,truck\n153215,ship\n153216,frog\n153217,bird\n153218,cat\n153219,automobile\n153220,deer\n153221,frog\n153222,horse\n153223,dog\n153224,deer\n153225,ship\n153226,deer\n153227,deer\n153228,dog\n153229,automobile\n153230,dog\n153231,frog\n153232,frog\n153233,horse\n153234,cat\n153235,dog\n153236,automobile\n153237,automobile\n153238,cat\n153239,frog\n153240,automobile\n153241,truck\n153242,truck\n153243,deer\n153244,ship\n153245,deer\n153246,dog\n153247,frog\n153248,truck\n153249,frog\n153250,deer\n153251,automobile\n153252,deer\n153253,frog\n153254,ship\n153255,airplane\n153256,horse\n153257,horse\n153258,frog\n153259,cat\n153260,ship\n153261,horse\n153262,dog\n153263,horse\n153264,automobile\n153265,dog\n153266,airplane\n153267,ship\n153268,deer\n153269,deer\n153270,frog\n153271,deer\n153272,deer\n153273,ship\n153274,automobile\n153275,cat\n153276,bird\n153277,dog\n153278,ship\n153279,bird\n153280,dog\n153281,automobile\n153282,truck\n153283,airplane\n153284,deer\n153285,deer\n153286,dog\n153287,ship\n153288,horse\n153289,cat\n153290,ship\n153291,dog\n153292,cat\n153293,dog\n153294,deer\n153295,automobile\n153296,cat\n153297,frog\n153298,cat\n153299,ship\n153300,deer\n153301,truck\n153302,truck\n153303,automobile\n153304,automobile\n153305,airplane\n153306,frog\n153307,deer\n153308,cat\n153309,ship\n153310,frog\n153311,bird\n153312,bird\n153313,dog\n153314,horse\n153315,deer\n153316,frog\n153317,truck\n153318,horse\n153319,horse\n153320,ship\n153321,frog\n153322,bird\n153323,dog\n153324,truck\n153325,truck\n153326,airplane\n153327,cat\n153328,dog\n153329,frog\n153330,horse\n153331,ship\n153332,deer\n153333,frog\n153334,truck\n153335,airplane\n153336,truck\n153337,airplane\n153338,bird\n153339,frog\n153340,airplane\n153341,dog\n153342,cat\n153343,truck\n153344,automobile\n153345,cat\n153346,frog\n153347,ship\n153348,horse\n153349,deer\n153350,bird\n153351,airplane\n153352,deer\n153353,deer\n153354,airplane\n153355,ship\n153356,bird\n153357,truck\n153358,cat\n153359,automobile\n153360,horse\n153361,cat\n153362,bird\n153363,horse\n153364,frog\n153365,dog\n153366,airplane\n153367,cat\n153368,dog\n153369,bird\n153370,frog\n153371,truck\n153372,horse\n153373,automobile\n153374,bird\n153375,dog\n153376,cat\n153377,bird\n153378,cat\n153379,deer\n153380,frog\n153381,cat\n153382,deer\n153383,frog\n153384,dog\n153385,dog\n153386,bird\n153387,cat\n153388,automobile\n153389,deer\n153390,truck\n153391,frog\n153392,truck\n153393,horse\n153394,frog\n153395,truck\n153396,deer\n153397,frog\n153398,cat\n153399,automobile\n153400,cat\n153401,dog\n153402,ship\n153403,deer\n153404,automobile\n153405,dog\n153406,dog\n153407,cat\n153408,truck\n153409,cat\n153410,dog\n153411,deer\n153412,cat\n153413,frog\n153414,dog\n153415,airplane\n153416,dog\n153417,cat\n153418,ship\n153419,deer\n153420,dog\n153421,truck\n153422,frog\n153423,cat\n153424,frog\n153425,dog\n153426,frog\n153427,dog\n153428,ship\n153429,deer\n153430,frog\n153431,automobile\n153432,frog\n153433,deer\n153434,deer\n153435,deer\n153436,bird\n153437,automobile\n153438,airplane\n153439,automobile\n153440,bird\n153441,frog\n153442,automobile\n153443,cat\n153444,horse\n153445,cat\n153446,frog\n153447,frog\n153448,automobile\n153449,deer\n153450,deer\n153451,frog\n153452,frog\n153453,dog\n153454,horse\n153455,airplane\n153456,truck\n153457,truck\n153458,cat\n153459,airplane\n153460,truck\n153461,ship\n153462,dog\n153463,deer\n153464,deer\n153465,deer\n153466,dog\n153467,truck\n153468,frog\n153469,dog\n153470,cat\n153471,airplane\n153472,airplane\n153473,cat\n153474,ship\n153475,dog\n153476,bird\n153477,truck\n153478,truck\n153479,deer\n153480,cat\n153481,deer\n153482,dog\n153483,dog\n153484,deer\n153485,cat\n153486,frog\n153487,horse\n153488,cat\n153489,horse\n153490,bird\n153491,deer\n153492,truck\n153493,bird\n153494,horse\n153495,bird\n153496,deer\n153497,automobile\n153498,dog\n153499,dog\n153500,cat\n153501,ship\n153502,ship\n153503,automobile\n153504,cat\n153505,ship\n153506,deer\n153507,dog\n153508,airplane\n153509,deer\n153510,airplane\n153511,airplane\n153512,truck\n153513,ship\n153514,horse\n153515,airplane\n153516,ship\n153517,frog\n153518,frog\n153519,deer\n153520,ship\n153521,horse\n153522,ship\n153523,horse\n153524,ship\n153525,airplane\n153526,truck\n153527,horse\n153528,airplane\n153529,bird\n153530,deer\n153531,cat\n153532,ship\n153533,cat\n153534,airplane\n153535,frog\n153536,horse\n153537,frog\n153538,frog\n153539,dog\n153540,horse\n153541,automobile\n153542,truck\n153543,truck\n153544,airplane\n153545,cat\n153546,cat\n153547,bird\n153548,deer\n153549,cat\n153550,truck\n153551,frog\n153552,frog\n153553,truck\n153554,dog\n153555,frog\n153556,airplane\n153557,deer\n153558,bird\n153559,frog\n153560,truck\n153561,airplane\n153562,airplane\n153563,cat\n153564,deer\n153565,truck\n153566,airplane\n153567,truck\n153568,dog\n153569,truck\n153570,bird\n153571,truck\n153572,frog\n153573,bird\n153574,deer\n153575,deer\n153576,deer\n153577,deer\n153578,ship\n153579,bird\n153580,cat\n153581,horse\n153582,automobile\n153583,deer\n153584,bird\n153585,truck\n153586,cat\n153587,frog\n153588,deer\n153589,ship\n153590,deer\n153591,bird\n153592,cat\n153593,truck\n153594,deer\n153595,airplane\n153596,frog\n153597,deer\n153598,horse\n153599,dog\n153600,ship\n153601,horse\n153602,cat\n153603,bird\n153604,bird\n153605,horse\n153606,cat\n153607,automobile\n153608,horse\n153609,horse\n153610,automobile\n153611,cat\n153612,bird\n153613,automobile\n153614,ship\n153615,frog\n153616,horse\n153617,ship\n153618,cat\n153619,bird\n153620,dog\n153621,cat\n153622,ship\n153623,truck\n153624,bird\n153625,ship\n153626,truck\n153627,airplane\n153628,truck\n153629,frog\n153630,cat\n153631,dog\n153632,truck\n153633,frog\n153634,airplane\n153635,deer\n153636,automobile\n153637,automobile\n153638,horse\n153639,deer\n153640,cat\n153641,automobile\n153642,horse\n153643,automobile\n153644,horse\n153645,bird\n153646,frog\n153647,ship\n153648,automobile\n153649,truck\n153650,frog\n153651,frog\n153652,horse\n153653,cat\n153654,ship\n153655,bird\n153656,cat\n153657,ship\n153658,airplane\n153659,frog\n153660,horse\n153661,cat\n153662,cat\n153663,dog\n153664,truck\n153665,airplane\n153666,ship\n153667,ship\n153668,airplane\n153669,automobile\n153670,truck\n153671,deer\n153672,cat\n153673,frog\n153674,frog\n153675,deer\n153676,airplane\n153677,horse\n153678,frog\n153679,automobile\n153680,truck\n153681,deer\n153682,deer\n153683,truck\n153684,airplane\n153685,dog\n153686,truck\n153687,deer\n153688,cat\n153689,bird\n153690,horse\n153691,airplane\n153692,dog\n153693,ship\n153694,automobile\n153695,ship\n153696,deer\n153697,airplane\n153698,cat\n153699,deer\n153700,bird\n153701,airplane\n153702,ship\n153703,deer\n153704,horse\n153705,frog\n153706,airplane\n153707,bird\n153708,bird\n153709,bird\n153710,cat\n153711,dog\n153712,horse\n153713,truck\n153714,deer\n153715,frog\n153716,cat\n153717,cat\n153718,deer\n153719,cat\n153720,truck\n153721,cat\n153722,automobile\n153723,ship\n153724,bird\n153725,frog\n153726,horse\n153727,deer\n153728,deer\n153729,airplane\n153730,ship\n153731,bird\n153732,truck\n153733,automobile\n153734,airplane\n153735,ship\n153736,deer\n153737,cat\n153738,dog\n153739,truck\n153740,bird\n153741,airplane\n153742,dog\n153743,horse\n153744,frog\n153745,deer\n153746,automobile\n153747,truck\n153748,frog\n153749,cat\n153750,cat\n153751,deer\n153752,ship\n153753,cat\n153754,dog\n153755,automobile\n153756,airplane\n153757,deer\n153758,airplane\n153759,deer\n153760,automobile\n153761,ship\n153762,truck\n153763,ship\n153764,deer\n153765,frog\n153766,airplane\n153767,cat\n153768,deer\n153769,horse\n153770,truck\n153771,cat\n153772,deer\n153773,truck\n153774,dog\n153775,deer\n153776,dog\n153777,deer\n153778,bird\n153779,deer\n153780,dog\n153781,ship\n153782,cat\n153783,horse\n153784,cat\n153785,bird\n153786,cat\n153787,bird\n153788,frog\n153789,deer\n153790,truck\n153791,horse\n153792,truck\n153793,cat\n153794,horse\n153795,ship\n153796,truck\n153797,dog\n153798,deer\n153799,frog\n153800,horse\n153801,dog\n153802,truck\n153803,frog\n153804,dog\n153805,cat\n153806,dog\n153807,cat\n153808,deer\n153809,frog\n153810,horse\n153811,automobile\n153812,horse\n153813,ship\n153814,deer\n153815,bird\n153816,horse\n153817,frog\n153818,dog\n153819,frog\n153820,bird\n153821,cat\n153822,horse\n153823,frog\n153824,horse\n153825,bird\n153826,frog\n153827,bird\n153828,dog\n153829,automobile\n153830,horse\n153831,horse\n153832,ship\n153833,dog\n153834,deer\n153835,cat\n153836,frog\n153837,automobile\n153838,ship\n153839,frog\n153840,frog\n153841,frog\n153842,dog\n153843,frog\n153844,ship\n153845,frog\n153846,horse\n153847,ship\n153848,airplane\n153849,deer\n153850,dog\n153851,deer\n153852,dog\n153853,dog\n153854,horse\n153855,automobile\n153856,airplane\n153857,horse\n153858,horse\n153859,bird\n153860,deer\n153861,automobile\n153862,cat\n153863,dog\n153864,ship\n153865,truck\n153866,cat\n153867,bird\n153868,deer\n153869,bird\n153870,dog\n153871,automobile\n153872,frog\n153873,dog\n153874,ship\n153875,dog\n153876,truck\n153877,horse\n153878,dog\n153879,dog\n153880,cat\n153881,cat\n153882,ship\n153883,automobile\n153884,airplane\n153885,frog\n153886,bird\n153887,bird\n153888,dog\n153889,truck\n153890,frog\n153891,cat\n153892,horse\n153893,bird\n153894,ship\n153895,cat\n153896,bird\n153897,horse\n153898,airplane\n153899,frog\n153900,horse\n153901,frog\n153902,deer\n153903,cat\n153904,horse\n153905,frog\n153906,cat\n153907,automobile\n153908,frog\n153909,frog\n153910,dog\n153911,ship\n153912,airplane\n153913,dog\n153914,deer\n153915,ship\n153916,frog\n153917,frog\n153918,airplane\n153919,deer\n153920,airplane\n153921,deer\n153922,deer\n153923,horse\n153924,frog\n153925,automobile\n153926,bird\n153927,dog\n153928,automobile\n153929,deer\n153930,airplane\n153931,horse\n153932,frog\n153933,ship\n153934,automobile\n153935,automobile\n153936,bird\n153937,automobile\n153938,dog\n153939,automobile\n153940,deer\n153941,deer\n153942,automobile\n153943,frog\n153944,horse\n153945,ship\n153946,dog\n153947,bird\n153948,truck\n153949,ship\n153950,frog\n153951,cat\n153952,truck\n153953,horse\n153954,dog\n153955,truck\n153956,airplane\n153957,dog\n153958,ship\n153959,horse\n153960,horse\n153961,truck\n153962,dog\n153963,frog\n153964,frog\n153965,cat\n153966,ship\n153967,deer\n153968,ship\n153969,cat\n153970,automobile\n153971,deer\n153972,cat\n153973,deer\n153974,horse\n153975,truck\n153976,frog\n153977,horse\n153978,cat\n153979,truck\n153980,automobile\n153981,deer\n153982,truck\n153983,frog\n153984,dog\n153985,horse\n153986,horse\n153987,truck\n153988,truck\n153989,bird\n153990,dog\n153991,cat\n153992,horse\n153993,cat\n153994,cat\n153995,frog\n153996,bird\n153997,truck\n153998,horse\n153999,ship\n154000,truck\n154001,airplane\n154002,horse\n154003,frog\n154004,dog\n154005,dog\n154006,frog\n154007,automobile\n154008,airplane\n154009,truck\n154010,airplane\n154011,cat\n154012,horse\n154013,airplane\n154014,cat\n154015,truck\n154016,horse\n154017,cat\n154018,bird\n154019,airplane\n154020,bird\n154021,cat\n154022,bird\n154023,truck\n154024,cat\n154025,frog\n154026,deer\n154027,horse\n154028,deer\n154029,frog\n154030,deer\n154031,deer\n154032,horse\n154033,dog\n154034,dog\n154035,airplane\n154036,airplane\n154037,truck\n154038,bird\n154039,truck\n154040,cat\n154041,airplane\n154042,deer\n154043,dog\n154044,airplane\n154045,cat\n154046,horse\n154047,ship\n154048,deer\n154049,horse\n154050,cat\n154051,automobile\n154052,horse\n154053,bird\n154054,bird\n154055,truck\n154056,truck\n154057,cat\n154058,cat\n154059,dog\n154060,deer\n154061,frog\n154062,bird\n154063,dog\n154064,frog\n154065,bird\n154066,frog\n154067,dog\n154068,deer\n154069,frog\n154070,frog\n154071,bird\n154072,automobile\n154073,deer\n154074,bird\n154075,frog\n154076,deer\n154077,bird\n154078,automobile\n154079,truck\n154080,horse\n154081,cat\n154082,frog\n154083,horse\n154084,deer\n154085,truck\n154086,frog\n154087,ship\n154088,dog\n154089,deer\n154090,frog\n154091,dog\n154092,automobile\n154093,deer\n154094,bird\n154095,truck\n154096,ship\n154097,truck\n154098,dog\n154099,airplane\n154100,cat\n154101,dog\n154102,bird\n154103,truck\n154104,dog\n154105,automobile\n154106,deer\n154107,truck\n154108,bird\n154109,deer\n154110,frog\n154111,bird\n154112,bird\n154113,horse\n154114,airplane\n154115,automobile\n154116,truck\n154117,airplane\n154118,automobile\n154119,frog\n154120,frog\n154121,ship\n154122,automobile\n154123,dog\n154124,cat\n154125,ship\n154126,automobile\n154127,ship\n154128,airplane\n154129,deer\n154130,horse\n154131,truck\n154132,truck\n154133,truck\n154134,dog\n154135,airplane\n154136,cat\n154137,airplane\n154138,bird\n154139,dog\n154140,cat\n154141,bird\n154142,truck\n154143,truck\n154144,cat\n154145,dog\n154146,frog\n154147,deer\n154148,frog\n154149,dog\n154150,dog\n154151,horse\n154152,horse\n154153,automobile\n154154,frog\n154155,frog\n154156,ship\n154157,automobile\n154158,horse\n154159,cat\n154160,deer\n154161,truck\n154162,deer\n154163,automobile\n154164,truck\n154165,deer\n154166,airplane\n154167,horse\n154168,dog\n154169,airplane\n154170,cat\n154171,cat\n154172,airplane\n154173,bird\n154174,horse\n154175,horse\n154176,truck\n154177,cat\n154178,horse\n154179,bird\n154180,frog\n154181,truck\n154182,airplane\n154183,cat\n154184,bird\n154185,frog\n154186,ship\n154187,cat\n154188,dog\n154189,horse\n154190,deer\n154191,truck\n154192,ship\n154193,frog\n154194,cat\n154195,truck\n154196,bird\n154197,truck\n154198,horse\n154199,frog\n154200,bird\n154201,cat\n154202,airplane\n154203,deer\n154204,dog\n154205,automobile\n154206,cat\n154207,deer\n154208,truck\n154209,truck\n154210,dog\n154211,deer\n154212,truck\n154213,deer\n154214,bird\n154215,cat\n154216,ship\n154217,cat\n154218,deer\n154219,horse\n154220,cat\n154221,frog\n154222,frog\n154223,airplane\n154224,frog\n154225,ship\n154226,ship\n154227,frog\n154228,frog\n154229,cat\n154230,bird\n154231,deer\n154232,automobile\n154233,cat\n154234,airplane\n154235,cat\n154236,dog\n154237,automobile\n154238,dog\n154239,frog\n154240,airplane\n154241,automobile\n154242,airplane\n154243,truck\n154244,dog\n154245,dog\n154246,cat\n154247,dog\n154248,truck\n154249,truck\n154250,frog\n154251,frog\n154252,deer\n154253,airplane\n154254,truck\n154255,automobile\n154256,dog\n154257,airplane\n154258,deer\n154259,frog\n154260,airplane\n154261,bird\n154262,bird\n154263,deer\n154264,automobile\n154265,deer\n154266,automobile\n154267,bird\n154268,frog\n154269,truck\n154270,automobile\n154271,ship\n154272,horse\n154273,horse\n154274,cat\n154275,truck\n154276,truck\n154277,deer\n154278,dog\n154279,horse\n154280,truck\n154281,horse\n154282,airplane\n154283,bird\n154284,bird\n154285,cat\n154286,airplane\n154287,bird\n154288,dog\n154289,frog\n154290,automobile\n154291,dog\n154292,airplane\n154293,frog\n154294,dog\n154295,deer\n154296,frog\n154297,dog\n154298,bird\n154299,ship\n154300,ship\n154301,frog\n154302,deer\n154303,airplane\n154304,cat\n154305,ship\n154306,horse\n154307,truck\n154308,truck\n154309,bird\n154310,automobile\n154311,ship\n154312,deer\n154313,frog\n154314,airplane\n154315,cat\n154316,dog\n154317,truck\n154318,frog\n154319,cat\n154320,dog\n154321,dog\n154322,cat\n154323,truck\n154324,cat\n154325,cat\n154326,airplane\n154327,truck\n154328,cat\n154329,bird\n154330,automobile\n154331,truck\n154332,frog\n154333,bird\n154334,truck\n154335,frog\n154336,cat\n154337,dog\n154338,deer\n154339,deer\n154340,deer\n154341,frog\n154342,horse\n154343,cat\n154344,bird\n154345,deer\n154346,cat\n154347,automobile\n154348,frog\n154349,bird\n154350,horse\n154351,dog\n154352,cat\n154353,bird\n154354,automobile\n154355,truck\n154356,bird\n154357,frog\n154358,airplane\n154359,truck\n154360,airplane\n154361,truck\n154362,airplane\n154363,deer\n154364,frog\n154365,automobile\n154366,horse\n154367,cat\n154368,airplane\n154369,dog\n154370,deer\n154371,automobile\n154372,automobile\n154373,bird\n154374,ship\n154375,horse\n154376,dog\n154377,ship\n154378,frog\n154379,ship\n154380,frog\n154381,ship\n154382,bird\n154383,frog\n154384,ship\n154385,dog\n154386,cat\n154387,bird\n154388,deer\n154389,frog\n154390,airplane\n154391,ship\n154392,bird\n154393,frog\n154394,deer\n154395,dog\n154396,truck\n154397,dog\n154398,frog\n154399,bird\n154400,frog\n154401,truck\n154402,horse\n154403,horse\n154404,frog\n154405,dog\n154406,automobile\n154407,dog\n154408,deer\n154409,cat\n154410,frog\n154411,deer\n154412,automobile\n154413,automobile\n154414,horse\n154415,cat\n154416,ship\n154417,dog\n154418,deer\n154419,ship\n154420,horse\n154421,truck\n154422,automobile\n154423,frog\n154424,automobile\n154425,horse\n154426,cat\n154427,automobile\n154428,truck\n154429,cat\n154430,horse\n154431,cat\n154432,dog\n154433,frog\n154434,cat\n154435,airplane\n154436,airplane\n154437,frog\n154438,bird\n154439,airplane\n154440,dog\n154441,cat\n154442,dog\n154443,cat\n154444,deer\n154445,automobile\n154446,frog\n154447,frog\n154448,ship\n154449,dog\n154450,truck\n154451,cat\n154452,airplane\n154453,airplane\n154454,horse\n154455,airplane\n154456,frog\n154457,ship\n154458,dog\n154459,airplane\n154460,ship\n154461,horse\n154462,ship\n154463,cat\n154464,airplane\n154465,deer\n154466,frog\n154467,cat\n154468,deer\n154469,frog\n154470,deer\n154471,ship\n154472,deer\n154473,airplane\n154474,cat\n154475,horse\n154476,frog\n154477,automobile\n154478,frog\n154479,airplane\n154480,truck\n154481,automobile\n154482,truck\n154483,dog\n154484,bird\n154485,bird\n154486,horse\n154487,cat\n154488,dog\n154489,dog\n154490,cat\n154491,deer\n154492,ship\n154493,truck\n154494,airplane\n154495,deer\n154496,frog\n154497,horse\n154498,deer\n154499,airplane\n154500,deer\n154501,frog\n154502,bird\n154503,ship\n154504,automobile\n154505,automobile\n154506,cat\n154507,ship\n154508,ship\n154509,airplane\n154510,dog\n154511,deer\n154512,dog\n154513,deer\n154514,deer\n154515,deer\n154516,dog\n154517,deer\n154518,airplane\n154519,ship\n154520,frog\n154521,truck\n154522,dog\n154523,cat\n154524,airplane\n154525,deer\n154526,frog\n154527,deer\n154528,deer\n154529,airplane\n154530,dog\n154531,deer\n154532,cat\n154533,cat\n154534,dog\n154535,cat\n154536,truck\n154537,ship\n154538,bird\n154539,bird\n154540,ship\n154541,ship\n154542,frog\n154543,frog\n154544,deer\n154545,deer\n154546,airplane\n154547,deer\n154548,frog\n154549,automobile\n154550,deer\n154551,deer\n154552,airplane\n154553,cat\n154554,airplane\n154555,truck\n154556,cat\n154557,deer\n154558,deer\n154559,truck\n154560,dog\n154561,frog\n154562,frog\n154563,frog\n154564,bird\n154565,deer\n154566,cat\n154567,ship\n154568,ship\n154569,airplane\n154570,frog\n154571,bird\n154572,horse\n154573,truck\n154574,frog\n154575,cat\n154576,deer\n154577,truck\n154578,frog\n154579,dog\n154580,automobile\n154581,deer\n154582,dog\n154583,truck\n154584,truck\n154585,deer\n154586,ship\n154587,cat\n154588,horse\n154589,cat\n154590,frog\n154591,cat\n154592,cat\n154593,deer\n154594,ship\n154595,automobile\n154596,dog\n154597,truck\n154598,truck\n154599,dog\n154600,automobile\n154601,deer\n154602,deer\n154603,ship\n154604,frog\n154605,truck\n154606,deer\n154607,truck\n154608,truck\n154609,horse\n154610,truck\n154611,ship\n154612,airplane\n154613,bird\n154614,cat\n154615,horse\n154616,truck\n154617,truck\n154618,deer\n154619,dog\n154620,deer\n154621,ship\n154622,horse\n154623,airplane\n154624,bird\n154625,bird\n154626,airplane\n154627,cat\n154628,deer\n154629,frog\n154630,horse\n154631,horse\n154632,cat\n154633,truck\n154634,frog\n154635,automobile\n154636,cat\n154637,frog\n154638,cat\n154639,deer\n154640,frog\n154641,automobile\n154642,cat\n154643,dog\n154644,airplane\n154645,dog\n154646,horse\n154647,automobile\n154648,dog\n154649,cat\n154650,truck\n154651,frog\n154652,frog\n154653,deer\n154654,deer\n154655,deer\n154656,deer\n154657,dog\n154658,frog\n154659,dog\n154660,dog\n154661,frog\n154662,ship\n154663,deer\n154664,dog\n154665,deer\n154666,bird\n154667,frog\n154668,airplane\n154669,horse\n154670,truck\n154671,horse\n154672,cat\n154673,bird\n154674,bird\n154675,frog\n154676,dog\n154677,ship\n154678,deer\n154679,ship\n154680,dog\n154681,truck\n154682,cat\n154683,frog\n154684,airplane\n154685,truck\n154686,deer\n154687,automobile\n154688,airplane\n154689,truck\n154690,frog\n154691,truck\n154692,cat\n154693,horse\n154694,cat\n154695,cat\n154696,airplane\n154697,cat\n154698,deer\n154699,cat\n154700,airplane\n154701,ship\n154702,horse\n154703,automobile\n154704,deer\n154705,horse\n154706,frog\n154707,airplane\n154708,truck\n154709,cat\n154710,deer\n154711,airplane\n154712,ship\n154713,frog\n154714,cat\n154715,bird\n154716,automobile\n154717,truck\n154718,dog\n154719,ship\n154720,cat\n154721,deer\n154722,truck\n154723,airplane\n154724,dog\n154725,automobile\n154726,truck\n154727,ship\n154728,frog\n154729,frog\n154730,truck\n154731,horse\n154732,dog\n154733,frog\n154734,frog\n154735,dog\n154736,ship\n154737,cat\n154738,truck\n154739,truck\n154740,deer\n154741,horse\n154742,airplane\n154743,automobile\n154744,horse\n154745,dog\n154746,deer\n154747,truck\n154748,truck\n154749,frog\n154750,frog\n154751,cat\n154752,dog\n154753,deer\n154754,truck\n154755,airplane\n154756,deer\n154757,cat\n154758,airplane\n154759,deer\n154760,truck\n154761,bird\n154762,truck\n154763,deer\n154764,ship\n154765,bird\n154766,truck\n154767,truck\n154768,horse\n154769,airplane\n154770,automobile\n154771,frog\n154772,automobile\n154773,automobile\n154774,bird\n154775,automobile\n154776,deer\n154777,frog\n154778,airplane\n154779,bird\n154780,bird\n154781,bird\n154782,airplane\n154783,dog\n154784,truck\n154785,deer\n154786,truck\n154787,horse\n154788,cat\n154789,deer\n154790,automobile\n154791,dog\n154792,dog\n154793,dog\n154794,dog\n154795,truck\n154796,airplane\n154797,frog\n154798,frog\n154799,dog\n154800,ship\n154801,deer\n154802,ship\n154803,cat\n154804,truck\n154805,horse\n154806,deer\n154807,frog\n154808,cat\n154809,dog\n154810,automobile\n154811,deer\n154812,deer\n154813,automobile\n154814,truck\n154815,horse\n154816,cat\n154817,truck\n154818,frog\n154819,airplane\n154820,ship\n154821,automobile\n154822,ship\n154823,ship\n154824,truck\n154825,bird\n154826,frog\n154827,bird\n154828,cat\n154829,frog\n154830,cat\n154831,truck\n154832,deer\n154833,bird\n154834,cat\n154835,truck\n154836,truck\n154837,deer\n154838,automobile\n154839,ship\n154840,cat\n154841,cat\n154842,frog\n154843,dog\n154844,dog\n154845,truck\n154846,truck\n154847,horse\n154848,ship\n154849,bird\n154850,frog\n154851,frog\n154852,dog\n154853,ship\n154854,airplane\n154855,airplane\n154856,truck\n154857,airplane\n154858,dog\n154859,bird\n154860,deer\n154861,cat\n154862,deer\n154863,bird\n154864,airplane\n154865,frog\n154866,deer\n154867,deer\n154868,truck\n154869,truck\n154870,deer\n154871,airplane\n154872,ship\n154873,cat\n154874,deer\n154875,frog\n154876,cat\n154877,cat\n154878,cat\n154879,deer\n154880,frog\n154881,cat\n154882,automobile\n154883,ship\n154884,truck\n154885,deer\n154886,bird\n154887,bird\n154888,frog\n154889,automobile\n154890,ship\n154891,frog\n154892,cat\n154893,deer\n154894,airplane\n154895,bird\n154896,bird\n154897,truck\n154898,truck\n154899,horse\n154900,ship\n154901,cat\n154902,cat\n154903,ship\n154904,bird\n154905,deer\n154906,horse\n154907,truck\n154908,dog\n154909,deer\n154910,frog\n154911,truck\n154912,horse\n154913,cat\n154914,frog\n154915,frog\n154916,truck\n154917,horse\n154918,dog\n154919,bird\n154920,frog\n154921,truck\n154922,automobile\n154923,horse\n154924,deer\n154925,truck\n154926,cat\n154927,bird\n154928,bird\n154929,bird\n154930,cat\n154931,frog\n154932,horse\n154933,deer\n154934,horse\n154935,airplane\n154936,horse\n154937,airplane\n154938,automobile\n154939,truck\n154940,bird\n154941,airplane\n154942,ship\n154943,bird\n154944,bird\n154945,horse\n154946,ship\n154947,cat\n154948,airplane\n154949,ship\n154950,deer\n154951,cat\n154952,horse\n154953,ship\n154954,bird\n154955,bird\n154956,dog\n154957,bird\n154958,horse\n154959,dog\n154960,bird\n154961,deer\n154962,automobile\n154963,frog\n154964,frog\n154965,horse\n154966,ship\n154967,horse\n154968,automobile\n154969,horse\n154970,dog\n154971,truck\n154972,deer\n154973,frog\n154974,cat\n154975,deer\n154976,truck\n154977,bird\n154978,dog\n154979,ship\n154980,deer\n154981,cat\n154982,dog\n154983,truck\n154984,deer\n154985,frog\n154986,bird\n154987,cat\n154988,dog\n154989,horse\n154990,bird\n154991,horse\n154992,horse\n154993,airplane\n154994,frog\n154995,bird\n154996,cat\n154997,ship\n154998,truck\n154999,airplane\n155000,bird\n155001,cat\n155002,deer\n155003,cat\n155004,frog\n155005,frog\n155006,cat\n155007,cat\n155008,horse\n155009,cat\n155010,bird\n155011,bird\n155012,frog\n155013,cat\n155014,bird\n155015,cat\n155016,ship\n155017,bird\n155018,horse\n155019,cat\n155020,cat\n155021,deer\n155022,frog\n155023,deer\n155024,airplane\n155025,frog\n155026,cat\n155027,frog\n155028,horse\n155029,deer\n155030,dog\n155031,ship\n155032,deer\n155033,airplane\n155034,horse\n155035,horse\n155036,airplane\n155037,dog\n155038,ship\n155039,deer\n155040,deer\n155041,ship\n155042,dog\n155043,deer\n155044,bird\n155045,horse\n155046,horse\n155047,automobile\n155048,airplane\n155049,cat\n155050,dog\n155051,bird\n155052,dog\n155053,dog\n155054,deer\n155055,truck\n155056,automobile\n155057,deer\n155058,truck\n155059,automobile\n155060,deer\n155061,cat\n155062,cat\n155063,airplane\n155064,cat\n155065,frog\n155066,horse\n155067,ship\n155068,cat\n155069,automobile\n155070,cat\n155071,cat\n155072,dog\n155073,automobile\n155074,horse\n155075,ship\n155076,cat\n155077,dog\n155078,deer\n155079,dog\n155080,cat\n155081,bird\n155082,airplane\n155083,bird\n155084,ship\n155085,dog\n155086,deer\n155087,truck\n155088,truck\n155089,frog\n155090,deer\n155091,deer\n155092,ship\n155093,truck\n155094,horse\n155095,bird\n155096,truck\n155097,deer\n155098,horse\n155099,frog\n155100,frog\n155101,frog\n155102,automobile\n155103,airplane\n155104,automobile\n155105,truck\n155106,horse\n155107,cat\n155108,bird\n155109,frog\n155110,deer\n155111,dog\n155112,bird\n155113,deer\n155114,truck\n155115,automobile\n155116,ship\n155117,dog\n155118,dog\n155119,deer\n155120,horse\n155121,airplane\n155122,dog\n155123,truck\n155124,airplane\n155125,truck\n155126,truck\n155127,cat\n155128,cat\n155129,deer\n155130,frog\n155131,frog\n155132,airplane\n155133,bird\n155134,dog\n155135,horse\n155136,horse\n155137,horse\n155138,dog\n155139,ship\n155140,cat\n155141,dog\n155142,deer\n155143,dog\n155144,deer\n155145,frog\n155146,cat\n155147,frog\n155148,ship\n155149,airplane\n155150,frog\n155151,horse\n155152,dog\n155153,cat\n155154,frog\n155155,airplane\n155156,truck\n155157,cat\n155158,dog\n155159,cat\n155160,airplane\n155161,bird\n155162,airplane\n155163,deer\n155164,bird\n155165,deer\n155166,ship\n155167,dog\n155168,dog\n155169,truck\n155170,ship\n155171,airplane\n155172,truck\n155173,frog\n155174,airplane\n155175,deer\n155176,cat\n155177,dog\n155178,cat\n155179,deer\n155180,dog\n155181,cat\n155182,deer\n155183,deer\n155184,frog\n155185,automobile\n155186,bird\n155187,airplane\n155188,frog\n155189,dog\n155190,frog\n155191,ship\n155192,cat\n155193,horse\n155194,horse\n155195,bird\n155196,airplane\n155197,horse\n155198,dog\n155199,frog\n155200,ship\n155201,cat\n155202,cat\n155203,airplane\n155204,bird\n155205,ship\n155206,bird\n155207,bird\n155208,deer\n155209,cat\n155210,dog\n155211,automobile\n155212,truck\n155213,airplane\n155214,airplane\n155215,dog\n155216,dog\n155217,cat\n155218,dog\n155219,dog\n155220,cat\n155221,truck\n155222,horse\n155223,airplane\n155224,horse\n155225,automobile\n155226,bird\n155227,airplane\n155228,truck\n155229,bird\n155230,frog\n155231,cat\n155232,dog\n155233,automobile\n155234,deer\n155235,deer\n155236,horse\n155237,frog\n155238,ship\n155239,truck\n155240,horse\n155241,dog\n155242,dog\n155243,frog\n155244,truck\n155245,frog\n155246,dog\n155247,deer\n155248,automobile\n155249,deer\n155250,deer\n155251,cat\n155252,cat\n155253,frog\n155254,ship\n155255,horse\n155256,deer\n155257,dog\n155258,airplane\n155259,airplane\n155260,dog\n155261,deer\n155262,bird\n155263,ship\n155264,deer\n155265,ship\n155266,frog\n155267,cat\n155268,dog\n155269,ship\n155270,frog\n155271,frog\n155272,horse\n155273,bird\n155274,truck\n155275,dog\n155276,airplane\n155277,deer\n155278,cat\n155279,bird\n155280,automobile\n155281,automobile\n155282,cat\n155283,cat\n155284,truck\n155285,deer\n155286,airplane\n155287,truck\n155288,ship\n155289,bird\n155290,cat\n155291,horse\n155292,bird\n155293,frog\n155294,cat\n155295,airplane\n155296,deer\n155297,frog\n155298,frog\n155299,deer\n155300,ship\n155301,dog\n155302,deer\n155303,dog\n155304,airplane\n155305,dog\n155306,ship\n155307,truck\n155308,ship\n155309,horse\n155310,truck\n155311,automobile\n155312,horse\n155313,horse\n155314,deer\n155315,airplane\n155316,horse\n155317,bird\n155318,frog\n155319,cat\n155320,frog\n155321,frog\n155322,dog\n155323,frog\n155324,cat\n155325,horse\n155326,bird\n155327,airplane\n155328,deer\n155329,deer\n155330,horse\n155331,cat\n155332,truck\n155333,horse\n155334,cat\n155335,cat\n155336,ship\n155337,truck\n155338,cat\n155339,bird\n155340,frog\n155341,cat\n155342,dog\n155343,cat\n155344,horse\n155345,horse\n155346,ship\n155347,frog\n155348,horse\n155349,ship\n155350,deer\n155351,frog\n155352,cat\n155353,automobile\n155354,automobile\n155355,horse\n155356,horse\n155357,dog\n155358,cat\n155359,dog\n155360,airplane\n155361,dog\n155362,ship\n155363,ship\n155364,dog\n155365,airplane\n155366,frog\n155367,bird\n155368,ship\n155369,frog\n155370,bird\n155371,deer\n155372,deer\n155373,dog\n155374,airplane\n155375,airplane\n155376,automobile\n155377,cat\n155378,horse\n155379,truck\n155380,horse\n155381,bird\n155382,bird\n155383,frog\n155384,frog\n155385,bird\n155386,ship\n155387,deer\n155388,cat\n155389,frog\n155390,bird\n155391,ship\n155392,cat\n155393,frog\n155394,cat\n155395,airplane\n155396,airplane\n155397,cat\n155398,horse\n155399,dog\n155400,airplane\n155401,cat\n155402,frog\n155403,frog\n155404,frog\n155405,horse\n155406,bird\n155407,dog\n155408,frog\n155409,dog\n155410,dog\n155411,truck\n155412,deer\n155413,airplane\n155414,cat\n155415,cat\n155416,automobile\n155417,deer\n155418,deer\n155419,dog\n155420,horse\n155421,truck\n155422,bird\n155423,cat\n155424,airplane\n155425,dog\n155426,cat\n155427,truck\n155428,truck\n155429,horse\n155430,horse\n155431,airplane\n155432,bird\n155433,deer\n155434,truck\n155435,horse\n155436,truck\n155437,automobile\n155438,horse\n155439,automobile\n155440,cat\n155441,truck\n155442,horse\n155443,ship\n155444,frog\n155445,deer\n155446,cat\n155447,frog\n155448,frog\n155449,truck\n155450,automobile\n155451,frog\n155452,automobile\n155453,dog\n155454,deer\n155455,truck\n155456,airplane\n155457,dog\n155458,ship\n155459,deer\n155460,deer\n155461,truck\n155462,ship\n155463,horse\n155464,frog\n155465,airplane\n155466,horse\n155467,deer\n155468,dog\n155469,frog\n155470,ship\n155471,truck\n155472,cat\n155473,cat\n155474,cat\n155475,deer\n155476,cat\n155477,deer\n155478,frog\n155479,horse\n155480,cat\n155481,horse\n155482,horse\n155483,truck\n155484,cat\n155485,airplane\n155486,airplane\n155487,truck\n155488,deer\n155489,frog\n155490,deer\n155491,dog\n155492,truck\n155493,bird\n155494,bird\n155495,airplane\n155496,dog\n155497,cat\n155498,truck\n155499,cat\n155500,cat\n155501,ship\n155502,frog\n155503,frog\n155504,deer\n155505,deer\n155506,ship\n155507,horse\n155508,frog\n155509,horse\n155510,ship\n155511,bird\n155512,automobile\n155513,frog\n155514,truck\n155515,frog\n155516,dog\n155517,truck\n155518,deer\n155519,truck\n155520,deer\n155521,deer\n155522,ship\n155523,deer\n155524,frog\n155525,ship\n155526,horse\n155527,automobile\n155528,frog\n155529,cat\n155530,bird\n155531,deer\n155532,dog\n155533,automobile\n155534,frog\n155535,dog\n155536,bird\n155537,cat\n155538,dog\n155539,airplane\n155540,cat\n155541,horse\n155542,cat\n155543,horse\n155544,frog\n155545,horse\n155546,truck\n155547,cat\n155548,truck\n155549,cat\n155550,cat\n155551,truck\n155552,bird\n155553,frog\n155554,bird\n155555,truck\n155556,cat\n155557,horse\n155558,airplane\n155559,truck\n155560,automobile\n155561,deer\n155562,cat\n155563,frog\n155564,ship\n155565,frog\n155566,deer\n155567,deer\n155568,cat\n155569,bird\n155570,ship\n155571,horse\n155572,deer\n155573,automobile\n155574,deer\n155575,deer\n155576,deer\n155577,truck\n155578,frog\n155579,airplane\n155580,dog\n155581,frog\n155582,truck\n155583,ship\n155584,dog\n155585,deer\n155586,cat\n155587,cat\n155588,deer\n155589,cat\n155590,airplane\n155591,truck\n155592,cat\n155593,truck\n155594,dog\n155595,deer\n155596,dog\n155597,deer\n155598,automobile\n155599,ship\n155600,bird\n155601,truck\n155602,automobile\n155603,airplane\n155604,ship\n155605,bird\n155606,frog\n155607,bird\n155608,cat\n155609,dog\n155610,frog\n155611,bird\n155612,truck\n155613,horse\n155614,airplane\n155615,ship\n155616,truck\n155617,frog\n155618,ship\n155619,ship\n155620,airplane\n155621,truck\n155622,bird\n155623,horse\n155624,deer\n155625,bird\n155626,truck\n155627,automobile\n155628,frog\n155629,automobile\n155630,truck\n155631,horse\n155632,deer\n155633,truck\n155634,frog\n155635,cat\n155636,frog\n155637,bird\n155638,airplane\n155639,deer\n155640,horse\n155641,truck\n155642,horse\n155643,deer\n155644,cat\n155645,deer\n155646,bird\n155647,truck\n155648,dog\n155649,deer\n155650,dog\n155651,frog\n155652,cat\n155653,deer\n155654,frog\n155655,deer\n155656,truck\n155657,deer\n155658,cat\n155659,frog\n155660,cat\n155661,frog\n155662,dog\n155663,airplane\n155664,dog\n155665,bird\n155666,airplane\n155667,bird\n155668,cat\n155669,dog\n155670,truck\n155671,ship\n155672,frog\n155673,airplane\n155674,automobile\n155675,ship\n155676,truck\n155677,ship\n155678,horse\n155679,dog\n155680,horse\n155681,deer\n155682,ship\n155683,bird\n155684,ship\n155685,frog\n155686,truck\n155687,cat\n155688,automobile\n155689,cat\n155690,truck\n155691,automobile\n155692,ship\n155693,cat\n155694,frog\n155695,deer\n155696,deer\n155697,cat\n155698,cat\n155699,ship\n155700,ship\n155701,deer\n155702,truck\n155703,frog\n155704,ship\n155705,cat\n155706,deer\n155707,horse\n155708,deer\n155709,dog\n155710,ship\n155711,airplane\n155712,ship\n155713,ship\n155714,cat\n155715,ship\n155716,cat\n155717,truck\n155718,deer\n155719,frog\n155720,frog\n155721,horse\n155722,horse\n155723,cat\n155724,truck\n155725,deer\n155726,airplane\n155727,deer\n155728,deer\n155729,bird\n155730,cat\n155731,frog\n155732,ship\n155733,dog\n155734,bird\n155735,cat\n155736,ship\n155737,frog\n155738,automobile\n155739,horse\n155740,automobile\n155741,frog\n155742,dog\n155743,horse\n155744,horse\n155745,ship\n155746,truck\n155747,truck\n155748,bird\n155749,bird\n155750,dog\n155751,dog\n155752,airplane\n155753,bird\n155754,deer\n155755,cat\n155756,automobile\n155757,truck\n155758,truck\n155759,ship\n155760,automobile\n155761,deer\n155762,cat\n155763,frog\n155764,deer\n155765,bird\n155766,deer\n155767,airplane\n155768,deer\n155769,truck\n155770,airplane\n155771,horse\n155772,deer\n155773,dog\n155774,airplane\n155775,airplane\n155776,ship\n155777,bird\n155778,dog\n155779,frog\n155780,deer\n155781,dog\n155782,airplane\n155783,truck\n155784,bird\n155785,cat\n155786,truck\n155787,bird\n155788,dog\n155789,truck\n155790,automobile\n155791,cat\n155792,airplane\n155793,frog\n155794,ship\n155795,cat\n155796,frog\n155797,frog\n155798,horse\n155799,frog\n155800,cat\n155801,dog\n155802,truck\n155803,truck\n155804,dog\n155805,automobile\n155806,deer\n155807,cat\n155808,horse\n155809,truck\n155810,automobile\n155811,ship\n155812,deer\n155813,airplane\n155814,bird\n155815,automobile\n155816,deer\n155817,horse\n155818,frog\n155819,frog\n155820,deer\n155821,cat\n155822,horse\n155823,horse\n155824,cat\n155825,cat\n155826,cat\n155827,frog\n155828,horse\n155829,dog\n155830,horse\n155831,dog\n155832,horse\n155833,cat\n155834,horse\n155835,deer\n155836,dog\n155837,ship\n155838,horse\n155839,cat\n155840,horse\n155841,horse\n155842,truck\n155843,deer\n155844,cat\n155845,deer\n155846,cat\n155847,dog\n155848,dog\n155849,ship\n155850,deer\n155851,frog\n155852,deer\n155853,airplane\n155854,automobile\n155855,cat\n155856,bird\n155857,deer\n155858,frog\n155859,bird\n155860,deer\n155861,truck\n155862,deer\n155863,cat\n155864,deer\n155865,bird\n155866,truck\n155867,cat\n155868,cat\n155869,horse\n155870,horse\n155871,airplane\n155872,automobile\n155873,dog\n155874,airplane\n155875,horse\n155876,airplane\n155877,dog\n155878,deer\n155879,automobile\n155880,cat\n155881,truck\n155882,deer\n155883,dog\n155884,frog\n155885,dog\n155886,cat\n155887,cat\n155888,ship\n155889,deer\n155890,horse\n155891,cat\n155892,deer\n155893,airplane\n155894,truck\n155895,dog\n155896,dog\n155897,airplane\n155898,truck\n155899,truck\n155900,frog\n155901,cat\n155902,deer\n155903,airplane\n155904,bird\n155905,cat\n155906,airplane\n155907,automobile\n155908,airplane\n155909,cat\n155910,deer\n155911,dog\n155912,dog\n155913,cat\n155914,dog\n155915,ship\n155916,cat\n155917,deer\n155918,automobile\n155919,bird\n155920,frog\n155921,truck\n155922,automobile\n155923,bird\n155924,horse\n155925,cat\n155926,dog\n155927,automobile\n155928,deer\n155929,automobile\n155930,truck\n155931,cat\n155932,airplane\n155933,ship\n155934,horse\n155935,frog\n155936,dog\n155937,airplane\n155938,cat\n155939,cat\n155940,dog\n155941,airplane\n155942,truck\n155943,deer\n155944,cat\n155945,ship\n155946,deer\n155947,deer\n155948,automobile\n155949,automobile\n155950,automobile\n155951,bird\n155952,deer\n155953,airplane\n155954,airplane\n155955,truck\n155956,horse\n155957,frog\n155958,ship\n155959,frog\n155960,deer\n155961,deer\n155962,ship\n155963,bird\n155964,deer\n155965,cat\n155966,horse\n155967,frog\n155968,cat\n155969,automobile\n155970,automobile\n155971,truck\n155972,bird\n155973,automobile\n155974,automobile\n155975,airplane\n155976,airplane\n155977,cat\n155978,cat\n155979,deer\n155980,airplane\n155981,ship\n155982,airplane\n155983,bird\n155984,automobile\n155985,cat\n155986,cat\n155987,frog\n155988,cat\n155989,dog\n155990,deer\n155991,truck\n155992,horse\n155993,dog\n155994,truck\n155995,frog\n155996,cat\n155997,truck\n155998,deer\n155999,bird\n156000,truck\n156001,airplane\n156002,horse\n156003,airplane\n156004,automobile\n156005,airplane\n156006,frog\n156007,horse\n156008,deer\n156009,horse\n156010,deer\n156011,ship\n156012,cat\n156013,automobile\n156014,airplane\n156015,airplane\n156016,frog\n156017,truck\n156018,cat\n156019,frog\n156020,frog\n156021,automobile\n156022,dog\n156023,frog\n156024,dog\n156025,deer\n156026,ship\n156027,deer\n156028,airplane\n156029,frog\n156030,horse\n156031,bird\n156032,airplane\n156033,dog\n156034,dog\n156035,ship\n156036,cat\n156037,ship\n156038,deer\n156039,cat\n156040,frog\n156041,horse\n156042,ship\n156043,horse\n156044,dog\n156045,airplane\n156046,automobile\n156047,deer\n156048,truck\n156049,automobile\n156050,deer\n156051,bird\n156052,dog\n156053,frog\n156054,truck\n156055,horse\n156056,deer\n156057,horse\n156058,deer\n156059,cat\n156060,automobile\n156061,truck\n156062,truck\n156063,dog\n156064,cat\n156065,horse\n156066,bird\n156067,deer\n156068,ship\n156069,ship\n156070,dog\n156071,ship\n156072,cat\n156073,horse\n156074,cat\n156075,bird\n156076,deer\n156077,horse\n156078,dog\n156079,cat\n156080,deer\n156081,truck\n156082,cat\n156083,cat\n156084,deer\n156085,airplane\n156086,dog\n156087,cat\n156088,automobile\n156089,airplane\n156090,deer\n156091,ship\n156092,horse\n156093,automobile\n156094,deer\n156095,truck\n156096,truck\n156097,cat\n156098,ship\n156099,truck\n156100,airplane\n156101,dog\n156102,frog\n156103,automobile\n156104,bird\n156105,frog\n156106,bird\n156107,truck\n156108,dog\n156109,dog\n156110,ship\n156111,deer\n156112,truck\n156113,dog\n156114,automobile\n156115,frog\n156116,dog\n156117,airplane\n156118,ship\n156119,truck\n156120,truck\n156121,truck\n156122,truck\n156123,deer\n156124,dog\n156125,dog\n156126,horse\n156127,horse\n156128,truck\n156129,truck\n156130,airplane\n156131,dog\n156132,frog\n156133,automobile\n156134,truck\n156135,truck\n156136,frog\n156137,truck\n156138,dog\n156139,dog\n156140,deer\n156141,truck\n156142,cat\n156143,bird\n156144,ship\n156145,deer\n156146,horse\n156147,automobile\n156148,cat\n156149,dog\n156150,cat\n156151,dog\n156152,truck\n156153,automobile\n156154,dog\n156155,cat\n156156,ship\n156157,ship\n156158,airplane\n156159,frog\n156160,cat\n156161,deer\n156162,frog\n156163,horse\n156164,deer\n156165,deer\n156166,automobile\n156167,frog\n156168,truck\n156169,truck\n156170,horse\n156171,ship\n156172,ship\n156173,truck\n156174,frog\n156175,frog\n156176,ship\n156177,ship\n156178,frog\n156179,deer\n156180,horse\n156181,cat\n156182,truck\n156183,airplane\n156184,airplane\n156185,ship\n156186,frog\n156187,dog\n156188,truck\n156189,deer\n156190,frog\n156191,cat\n156192,truck\n156193,frog\n156194,horse\n156195,frog\n156196,truck\n156197,cat\n156198,ship\n156199,cat\n156200,airplane\n156201,automobile\n156202,deer\n156203,frog\n156204,ship\n156205,airplane\n156206,bird\n156207,automobile\n156208,bird\n156209,deer\n156210,airplane\n156211,truck\n156212,automobile\n156213,frog\n156214,airplane\n156215,cat\n156216,bird\n156217,ship\n156218,cat\n156219,ship\n156220,frog\n156221,horse\n156222,dog\n156223,dog\n156224,ship\n156225,dog\n156226,frog\n156227,dog\n156228,dog\n156229,deer\n156230,bird\n156231,dog\n156232,bird\n156233,deer\n156234,truck\n156235,bird\n156236,automobile\n156237,deer\n156238,bird\n156239,horse\n156240,airplane\n156241,deer\n156242,cat\n156243,bird\n156244,dog\n156245,dog\n156246,deer\n156247,dog\n156248,ship\n156249,ship\n156250,automobile\n156251,automobile\n156252,deer\n156253,deer\n156254,deer\n156255,deer\n156256,bird\n156257,frog\n156258,truck\n156259,bird\n156260,deer\n156261,truck\n156262,frog\n156263,airplane\n156264,horse\n156265,horse\n156266,truck\n156267,dog\n156268,frog\n156269,dog\n156270,truck\n156271,horse\n156272,frog\n156273,dog\n156274,ship\n156275,frog\n156276,bird\n156277,dog\n156278,cat\n156279,bird\n156280,truck\n156281,deer\n156282,deer\n156283,bird\n156284,horse\n156285,truck\n156286,dog\n156287,deer\n156288,deer\n156289,horse\n156290,deer\n156291,horse\n156292,bird\n156293,frog\n156294,dog\n156295,truck\n156296,automobile\n156297,deer\n156298,horse\n156299,deer\n156300,horse\n156301,deer\n156302,ship\n156303,truck\n156304,cat\n156305,horse\n156306,cat\n156307,ship\n156308,dog\n156309,dog\n156310,ship\n156311,airplane\n156312,truck\n156313,cat\n156314,airplane\n156315,frog\n156316,cat\n156317,dog\n156318,horse\n156319,deer\n156320,airplane\n156321,automobile\n156322,airplane\n156323,truck\n156324,cat\n156325,ship\n156326,truck\n156327,deer\n156328,deer\n156329,dog\n156330,cat\n156331,airplane\n156332,deer\n156333,cat\n156334,horse\n156335,dog\n156336,airplane\n156337,horse\n156338,cat\n156339,horse\n156340,dog\n156341,deer\n156342,airplane\n156343,deer\n156344,bird\n156345,dog\n156346,ship\n156347,deer\n156348,frog\n156349,frog\n156350,truck\n156351,automobile\n156352,automobile\n156353,deer\n156354,ship\n156355,ship\n156356,horse\n156357,truck\n156358,bird\n156359,automobile\n156360,cat\n156361,bird\n156362,horse\n156363,bird\n156364,deer\n156365,frog\n156366,truck\n156367,truck\n156368,deer\n156369,deer\n156370,bird\n156371,bird\n156372,airplane\n156373,deer\n156374,frog\n156375,horse\n156376,dog\n156377,airplane\n156378,horse\n156379,bird\n156380,bird\n156381,frog\n156382,truck\n156383,airplane\n156384,dog\n156385,airplane\n156386,frog\n156387,cat\n156388,dog\n156389,truck\n156390,dog\n156391,dog\n156392,ship\n156393,cat\n156394,bird\n156395,automobile\n156396,truck\n156397,deer\n156398,ship\n156399,airplane\n156400,dog\n156401,frog\n156402,horse\n156403,cat\n156404,ship\n156405,ship\n156406,dog\n156407,airplane\n156408,deer\n156409,frog\n156410,cat\n156411,frog\n156412,cat\n156413,airplane\n156414,cat\n156415,dog\n156416,deer\n156417,bird\n156418,cat\n156419,airplane\n156420,airplane\n156421,deer\n156422,ship\n156423,cat\n156424,automobile\n156425,airplane\n156426,deer\n156427,deer\n156428,cat\n156429,dog\n156430,automobile\n156431,frog\n156432,bird\n156433,cat\n156434,deer\n156435,airplane\n156436,cat\n156437,cat\n156438,deer\n156439,horse\n156440,dog\n156441,horse\n156442,truck\n156443,bird\n156444,dog\n156445,horse\n156446,dog\n156447,deer\n156448,bird\n156449,automobile\n156450,horse\n156451,deer\n156452,dog\n156453,dog\n156454,horse\n156455,truck\n156456,dog\n156457,dog\n156458,bird\n156459,frog\n156460,ship\n156461,airplane\n156462,automobile\n156463,horse\n156464,dog\n156465,bird\n156466,frog\n156467,ship\n156468,automobile\n156469,deer\n156470,cat\n156471,frog\n156472,ship\n156473,horse\n156474,dog\n156475,cat\n156476,bird\n156477,horse\n156478,deer\n156479,airplane\n156480,bird\n156481,cat\n156482,dog\n156483,bird\n156484,dog\n156485,deer\n156486,cat\n156487,cat\n156488,airplane\n156489,horse\n156490,bird\n156491,dog\n156492,bird\n156493,bird\n156494,frog\n156495,dog\n156496,cat\n156497,automobile\n156498,deer\n156499,cat\n156500,airplane\n156501,horse\n156502,bird\n156503,frog\n156504,dog\n156505,bird\n156506,truck\n156507,deer\n156508,cat\n156509,automobile\n156510,ship\n156511,ship\n156512,frog\n156513,cat\n156514,deer\n156515,automobile\n156516,cat\n156517,automobile\n156518,airplane\n156519,cat\n156520,cat\n156521,airplane\n156522,deer\n156523,horse\n156524,cat\n156525,frog\n156526,ship\n156527,airplane\n156528,ship\n156529,deer\n156530,airplane\n156531,airplane\n156532,cat\n156533,cat\n156534,deer\n156535,frog\n156536,deer\n156537,truck\n156538,bird\n156539,horse\n156540,frog\n156541,dog\n156542,automobile\n156543,frog\n156544,frog\n156545,horse\n156546,horse\n156547,ship\n156548,truck\n156549,truck\n156550,deer\n156551,cat\n156552,horse\n156553,frog\n156554,bird\n156555,automobile\n156556,truck\n156557,dog\n156558,truck\n156559,cat\n156560,airplane\n156561,deer\n156562,cat\n156563,frog\n156564,dog\n156565,ship\n156566,automobile\n156567,deer\n156568,frog\n156569,deer\n156570,deer\n156571,cat\n156572,deer\n156573,frog\n156574,airplane\n156575,airplane\n156576,cat\n156577,deer\n156578,ship\n156579,cat\n156580,deer\n156581,bird\n156582,truck\n156583,deer\n156584,horse\n156585,deer\n156586,bird\n156587,horse\n156588,dog\n156589,bird\n156590,dog\n156591,cat\n156592,deer\n156593,horse\n156594,deer\n156595,dog\n156596,cat\n156597,dog\n156598,cat\n156599,dog\n156600,truck\n156601,frog\n156602,dog\n156603,bird\n156604,automobile\n156605,bird\n156606,bird\n156607,cat\n156608,deer\n156609,automobile\n156610,airplane\n156611,airplane\n156612,dog\n156613,cat\n156614,deer\n156615,airplane\n156616,automobile\n156617,cat\n156618,bird\n156619,dog\n156620,ship\n156621,cat\n156622,bird\n156623,truck\n156624,cat\n156625,horse\n156626,dog\n156627,ship\n156628,horse\n156629,truck\n156630,truck\n156631,horse\n156632,airplane\n156633,deer\n156634,horse\n156635,horse\n156636,cat\n156637,automobile\n156638,airplane\n156639,airplane\n156640,cat\n156641,dog\n156642,airplane\n156643,truck\n156644,deer\n156645,horse\n156646,cat\n156647,truck\n156648,deer\n156649,bird\n156650,airplane\n156651,frog\n156652,deer\n156653,frog\n156654,truck\n156655,deer\n156656,dog\n156657,airplane\n156658,frog\n156659,ship\n156660,dog\n156661,airplane\n156662,truck\n156663,dog\n156664,frog\n156665,horse\n156666,deer\n156667,truck\n156668,deer\n156669,ship\n156670,automobile\n156671,cat\n156672,deer\n156673,dog\n156674,dog\n156675,airplane\n156676,bird\n156677,dog\n156678,horse\n156679,deer\n156680,truck\n156681,horse\n156682,automobile\n156683,bird\n156684,cat\n156685,cat\n156686,deer\n156687,dog\n156688,deer\n156689,cat\n156690,ship\n156691,deer\n156692,dog\n156693,bird\n156694,horse\n156695,cat\n156696,ship\n156697,automobile\n156698,bird\n156699,bird\n156700,automobile\n156701,cat\n156702,dog\n156703,truck\n156704,dog\n156705,automobile\n156706,cat\n156707,dog\n156708,frog\n156709,bird\n156710,ship\n156711,truck\n156712,horse\n156713,deer\n156714,truck\n156715,frog\n156716,horse\n156717,dog\n156718,automobile\n156719,ship\n156720,deer\n156721,cat\n156722,cat\n156723,frog\n156724,automobile\n156725,deer\n156726,ship\n156727,cat\n156728,bird\n156729,deer\n156730,truck\n156731,truck\n156732,truck\n156733,frog\n156734,dog\n156735,cat\n156736,ship\n156737,automobile\n156738,truck\n156739,cat\n156740,frog\n156741,dog\n156742,cat\n156743,bird\n156744,bird\n156745,airplane\n156746,cat\n156747,cat\n156748,horse\n156749,automobile\n156750,ship\n156751,deer\n156752,truck\n156753,deer\n156754,deer\n156755,truck\n156756,airplane\n156757,airplane\n156758,dog\n156759,automobile\n156760,horse\n156761,bird\n156762,cat\n156763,deer\n156764,ship\n156765,truck\n156766,automobile\n156767,cat\n156768,dog\n156769,bird\n156770,truck\n156771,ship\n156772,bird\n156773,dog\n156774,frog\n156775,cat\n156776,dog\n156777,ship\n156778,frog\n156779,deer\n156780,ship\n156781,dog\n156782,truck\n156783,cat\n156784,airplane\n156785,airplane\n156786,frog\n156787,automobile\n156788,cat\n156789,automobile\n156790,truck\n156791,automobile\n156792,deer\n156793,dog\n156794,dog\n156795,truck\n156796,bird\n156797,deer\n156798,airplane\n156799,airplane\n156800,cat\n156801,horse\n156802,horse\n156803,truck\n156804,ship\n156805,bird\n156806,cat\n156807,cat\n156808,airplane\n156809,horse\n156810,truck\n156811,frog\n156812,bird\n156813,dog\n156814,deer\n156815,cat\n156816,ship\n156817,airplane\n156818,ship\n156819,automobile\n156820,bird\n156821,deer\n156822,cat\n156823,dog\n156824,bird\n156825,bird\n156826,airplane\n156827,automobile\n156828,dog\n156829,dog\n156830,bird\n156831,airplane\n156832,airplane\n156833,dog\n156834,automobile\n156835,automobile\n156836,dog\n156837,cat\n156838,deer\n156839,deer\n156840,frog\n156841,cat\n156842,ship\n156843,cat\n156844,horse\n156845,ship\n156846,airplane\n156847,deer\n156848,cat\n156849,truck\n156850,dog\n156851,horse\n156852,frog\n156853,airplane\n156854,bird\n156855,automobile\n156856,dog\n156857,deer\n156858,ship\n156859,bird\n156860,ship\n156861,bird\n156862,ship\n156863,cat\n156864,ship\n156865,truck\n156866,bird\n156867,horse\n156868,frog\n156869,bird\n156870,frog\n156871,dog\n156872,frog\n156873,automobile\n156874,dog\n156875,cat\n156876,frog\n156877,automobile\n156878,frog\n156879,ship\n156880,bird\n156881,automobile\n156882,cat\n156883,dog\n156884,automobile\n156885,frog\n156886,dog\n156887,truck\n156888,bird\n156889,ship\n156890,truck\n156891,frog\n156892,automobile\n156893,dog\n156894,cat\n156895,deer\n156896,ship\n156897,airplane\n156898,horse\n156899,automobile\n156900,automobile\n156901,cat\n156902,cat\n156903,dog\n156904,airplane\n156905,dog\n156906,airplane\n156907,horse\n156908,deer\n156909,cat\n156910,horse\n156911,dog\n156912,dog\n156913,automobile\n156914,deer\n156915,cat\n156916,dog\n156917,bird\n156918,deer\n156919,truck\n156920,frog\n156921,cat\n156922,ship\n156923,airplane\n156924,dog\n156925,ship\n156926,dog\n156927,dog\n156928,bird\n156929,dog\n156930,ship\n156931,dog\n156932,bird\n156933,automobile\n156934,bird\n156935,ship\n156936,cat\n156937,truck\n156938,horse\n156939,airplane\n156940,frog\n156941,bird\n156942,horse\n156943,deer\n156944,airplane\n156945,automobile\n156946,cat\n156947,dog\n156948,cat\n156949,bird\n156950,truck\n156951,dog\n156952,deer\n156953,horse\n156954,bird\n156955,deer\n156956,airplane\n156957,dog\n156958,frog\n156959,horse\n156960,deer\n156961,dog\n156962,bird\n156963,deer\n156964,deer\n156965,frog\n156966,bird\n156967,horse\n156968,horse\n156969,truck\n156970,ship\n156971,automobile\n156972,airplane\n156973,deer\n156974,ship\n156975,dog\n156976,frog\n156977,dog\n156978,frog\n156979,bird\n156980,bird\n156981,deer\n156982,truck\n156983,deer\n156984,frog\n156985,deer\n156986,dog\n156987,frog\n156988,horse\n156989,airplane\n156990,horse\n156991,dog\n156992,horse\n156993,cat\n156994,dog\n156995,ship\n156996,bird\n156997,bird\n156998,ship\n156999,cat\n157000,deer\n157001,airplane\n157002,cat\n157003,cat\n157004,truck\n157005,deer\n157006,deer\n157007,dog\n157008,cat\n157009,deer\n157010,airplane\n157011,truck\n157012,deer\n157013,cat\n157014,truck\n157015,frog\n157016,cat\n157017,airplane\n157018,dog\n157019,horse\n157020,cat\n157021,truck\n157022,automobile\n157023,truck\n157024,automobile\n157025,airplane\n157026,dog\n157027,bird\n157028,ship\n157029,airplane\n157030,dog\n157031,airplane\n157032,horse\n157033,deer\n157034,deer\n157035,frog\n157036,airplane\n157037,airplane\n157038,frog\n157039,truck\n157040,deer\n157041,bird\n157042,cat\n157043,deer\n157044,cat\n157045,dog\n157046,cat\n157047,automobile\n157048,horse\n157049,cat\n157050,cat\n157051,deer\n157052,deer\n157053,dog\n157054,frog\n157055,automobile\n157056,frog\n157057,deer\n157058,airplane\n157059,horse\n157060,automobile\n157061,horse\n157062,ship\n157063,frog\n157064,horse\n157065,airplane\n157066,airplane\n157067,deer\n157068,automobile\n157069,bird\n157070,horse\n157071,frog\n157072,bird\n157073,horse\n157074,dog\n157075,cat\n157076,automobile\n157077,frog\n157078,frog\n157079,dog\n157080,dog\n157081,bird\n157082,bird\n157083,truck\n157084,frog\n157085,horse\n157086,truck\n157087,airplane\n157088,cat\n157089,truck\n157090,automobile\n157091,automobile\n157092,ship\n157093,ship\n157094,cat\n157095,horse\n157096,bird\n157097,cat\n157098,horse\n157099,truck\n157100,automobile\n157101,airplane\n157102,dog\n157103,truck\n157104,horse\n157105,cat\n157106,bird\n157107,cat\n157108,cat\n157109,automobile\n157110,automobile\n157111,bird\n157112,airplane\n157113,ship\n157114,automobile\n157115,airplane\n157116,horse\n157117,horse\n157118,cat\n157119,automobile\n157120,ship\n157121,horse\n157122,cat\n157123,truck\n157124,ship\n157125,automobile\n157126,horse\n157127,automobile\n157128,deer\n157129,dog\n157130,horse\n157131,deer\n157132,airplane\n157133,horse\n157134,ship\n157135,deer\n157136,truck\n157137,deer\n157138,cat\n157139,dog\n157140,horse\n157141,deer\n157142,frog\n157143,horse\n157144,bird\n157145,dog\n157146,dog\n157147,ship\n157148,bird\n157149,deer\n157150,automobile\n157151,airplane\n157152,deer\n157153,cat\n157154,frog\n157155,dog\n157156,frog\n157157,deer\n157158,horse\n157159,automobile\n157160,dog\n157161,automobile\n157162,ship\n157163,deer\n157164,airplane\n157165,horse\n157166,deer\n157167,deer\n157168,airplane\n157169,airplane\n157170,airplane\n157171,deer\n157172,frog\n157173,truck\n157174,automobile\n157175,dog\n157176,frog\n157177,automobile\n157178,deer\n157179,horse\n157180,automobile\n157181,bird\n157182,dog\n157183,cat\n157184,deer\n157185,airplane\n157186,dog\n157187,cat\n157188,automobile\n157189,horse\n157190,frog\n157191,bird\n157192,deer\n157193,deer\n157194,deer\n157195,deer\n157196,airplane\n157197,frog\n157198,truck\n157199,horse\n157200,airplane\n157201,truck\n157202,automobile\n157203,truck\n157204,truck\n157205,ship\n157206,cat\n157207,frog\n157208,dog\n157209,truck\n157210,dog\n157211,horse\n157212,dog\n157213,airplane\n157214,horse\n157215,truck\n157216,automobile\n157217,horse\n157218,frog\n157219,truck\n157220,deer\n157221,truck\n157222,frog\n157223,frog\n157224,deer\n157225,cat\n157226,automobile\n157227,dog\n157228,automobile\n157229,cat\n157230,dog\n157231,truck\n157232,truck\n157233,airplane\n157234,ship\n157235,frog\n157236,airplane\n157237,truck\n157238,deer\n157239,deer\n157240,frog\n157241,deer\n157242,airplane\n157243,airplane\n157244,cat\n157245,frog\n157246,horse\n157247,dog\n157248,truck\n157249,cat\n157250,automobile\n157251,truck\n157252,airplane\n157253,dog\n157254,airplane\n157255,truck\n157256,bird\n157257,horse\n157258,airplane\n157259,deer\n157260,horse\n157261,bird\n157262,dog\n157263,bird\n157264,deer\n157265,dog\n157266,airplane\n157267,dog\n157268,airplane\n157269,dog\n157270,deer\n157271,cat\n157272,frog\n157273,cat\n157274,bird\n157275,deer\n157276,ship\n157277,ship\n157278,airplane\n157279,automobile\n157280,automobile\n157281,dog\n157282,automobile\n157283,bird\n157284,deer\n157285,frog\n157286,truck\n157287,cat\n157288,dog\n157289,deer\n157290,deer\n157291,horse\n157292,deer\n157293,bird\n157294,frog\n157295,deer\n157296,cat\n157297,ship\n157298,airplane\n157299,airplane\n157300,dog\n157301,horse\n157302,deer\n157303,cat\n157304,bird\n157305,automobile\n157306,frog\n157307,truck\n157308,airplane\n157309,horse\n157310,deer\n157311,deer\n157312,deer\n157313,cat\n157314,bird\n157315,deer\n157316,deer\n157317,truck\n157318,deer\n157319,horse\n157320,automobile\n157321,truck\n157322,bird\n157323,horse\n157324,horse\n157325,automobile\n157326,cat\n157327,horse\n157328,dog\n157329,frog\n157330,dog\n157331,deer\n157332,truck\n157333,automobile\n157334,dog\n157335,cat\n157336,cat\n157337,deer\n157338,horse\n157339,dog\n157340,automobile\n157341,cat\n157342,frog\n157343,airplane\n157344,horse\n157345,cat\n157346,frog\n157347,bird\n157348,horse\n157349,deer\n157350,cat\n157351,bird\n157352,airplane\n157353,cat\n157354,frog\n157355,automobile\n157356,horse\n157357,truck\n157358,bird\n157359,dog\n157360,frog\n157361,frog\n157362,frog\n157363,bird\n157364,truck\n157365,cat\n157366,dog\n157367,horse\n157368,airplane\n157369,dog\n157370,horse\n157371,ship\n157372,cat\n157373,deer\n157374,truck\n157375,deer\n157376,deer\n157377,truck\n157378,bird\n157379,automobile\n157380,horse\n157381,horse\n157382,airplane\n157383,bird\n157384,truck\n157385,truck\n157386,airplane\n157387,cat\n157388,airplane\n157389,deer\n157390,frog\n157391,cat\n157392,frog\n157393,frog\n157394,horse\n157395,horse\n157396,cat\n157397,dog\n157398,deer\n157399,bird\n157400,deer\n157401,ship\n157402,frog\n157403,bird\n157404,dog\n157405,bird\n157406,frog\n157407,cat\n157408,dog\n157409,deer\n157410,bird\n157411,automobile\n157412,horse\n157413,frog\n157414,cat\n157415,automobile\n157416,frog\n157417,deer\n157418,airplane\n157419,deer\n157420,airplane\n157421,automobile\n157422,airplane\n157423,horse\n157424,cat\n157425,horse\n157426,truck\n157427,cat\n157428,deer\n157429,deer\n157430,dog\n157431,airplane\n157432,bird\n157433,horse\n157434,deer\n157435,horse\n157436,bird\n157437,airplane\n157438,horse\n157439,truck\n157440,deer\n157441,deer\n157442,frog\n157443,horse\n157444,deer\n157445,automobile\n157446,airplane\n157447,deer\n157448,airplane\n157449,bird\n157450,horse\n157451,deer\n157452,truck\n157453,dog\n157454,ship\n157455,cat\n157456,truck\n157457,ship\n157458,deer\n157459,dog\n157460,truck\n157461,bird\n157462,horse\n157463,horse\n157464,truck\n157465,cat\n157466,cat\n157467,horse\n157468,bird\n157469,frog\n157470,truck\n157471,deer\n157472,deer\n157473,truck\n157474,frog\n157475,horse\n157476,bird\n157477,airplane\n157478,dog\n157479,deer\n157480,bird\n157481,ship\n157482,frog\n157483,dog\n157484,deer\n157485,frog\n157486,dog\n157487,horse\n157488,ship\n157489,cat\n157490,cat\n157491,ship\n157492,airplane\n157493,cat\n157494,airplane\n157495,dog\n157496,bird\n157497,dog\n157498,automobile\n157499,cat\n157500,frog\n157501,dog\n157502,airplane\n157503,horse\n157504,airplane\n157505,deer\n157506,ship\n157507,frog\n157508,frog\n157509,truck\n157510,ship\n157511,dog\n157512,deer\n157513,dog\n157514,airplane\n157515,frog\n157516,airplane\n157517,automobile\n157518,truck\n157519,horse\n157520,dog\n157521,deer\n157522,frog\n157523,airplane\n157524,truck\n157525,dog\n157526,dog\n157527,frog\n157528,deer\n157529,deer\n157530,airplane\n157531,automobile\n157532,dog\n157533,ship\n157534,airplane\n157535,bird\n157536,airplane\n157537,airplane\n157538,frog\n157539,truck\n157540,airplane\n157541,truck\n157542,automobile\n157543,ship\n157544,horse\n157545,frog\n157546,dog\n157547,automobile\n157548,horse\n157549,airplane\n157550,deer\n157551,bird\n157552,deer\n157553,bird\n157554,automobile\n157555,automobile\n157556,automobile\n157557,bird\n157558,truck\n157559,airplane\n157560,bird\n157561,frog\n157562,horse\n157563,airplane\n157564,bird\n157565,dog\n157566,airplane\n157567,airplane\n157568,frog\n157569,dog\n157570,automobile\n157571,frog\n157572,cat\n157573,deer\n157574,automobile\n157575,cat\n157576,truck\n157577,dog\n157578,deer\n157579,truck\n157580,airplane\n157581,deer\n157582,automobile\n157583,airplane\n157584,ship\n157585,deer\n157586,dog\n157587,deer\n157588,deer\n157589,frog\n157590,frog\n157591,cat\n157592,ship\n157593,frog\n157594,horse\n157595,cat\n157596,cat\n157597,automobile\n157598,deer\n157599,frog\n157600,horse\n157601,deer\n157602,ship\n157603,cat\n157604,horse\n157605,horse\n157606,truck\n157607,airplane\n157608,deer\n157609,truck\n157610,deer\n157611,bird\n157612,horse\n157613,cat\n157614,cat\n157615,truck\n157616,truck\n157617,bird\n157618,deer\n157619,automobile\n157620,ship\n157621,automobile\n157622,truck\n157623,horse\n157624,cat\n157625,bird\n157626,automobile\n157627,cat\n157628,cat\n157629,deer\n157630,deer\n157631,airplane\n157632,frog\n157633,cat\n157634,frog\n157635,deer\n157636,automobile\n157637,ship\n157638,truck\n157639,truck\n157640,frog\n157641,airplane\n157642,truck\n157643,frog\n157644,deer\n157645,horse\n157646,airplane\n157647,bird\n157648,deer\n157649,deer\n157650,horse\n157651,cat\n157652,truck\n157653,horse\n157654,frog\n157655,automobile\n157656,dog\n157657,cat\n157658,cat\n157659,cat\n157660,bird\n157661,truck\n157662,automobile\n157663,cat\n157664,dog\n157665,dog\n157666,horse\n157667,airplane\n157668,horse\n157669,automobile\n157670,deer\n157671,bird\n157672,truck\n157673,deer\n157674,dog\n157675,deer\n157676,frog\n157677,dog\n157678,horse\n157679,horse\n157680,truck\n157681,cat\n157682,frog\n157683,frog\n157684,frog\n157685,cat\n157686,truck\n157687,deer\n157688,cat\n157689,deer\n157690,dog\n157691,cat\n157692,automobile\n157693,automobile\n157694,cat\n157695,deer\n157696,truck\n157697,dog\n157698,horse\n157699,deer\n157700,airplane\n157701,airplane\n157702,cat\n157703,frog\n157704,frog\n157705,airplane\n157706,horse\n157707,cat\n157708,frog\n157709,cat\n157710,deer\n157711,deer\n157712,bird\n157713,cat\n157714,truck\n157715,cat\n157716,truck\n157717,deer\n157718,dog\n157719,truck\n157720,ship\n157721,frog\n157722,bird\n157723,ship\n157724,ship\n157725,airplane\n157726,dog\n157727,ship\n157728,cat\n157729,horse\n157730,frog\n157731,cat\n157732,deer\n157733,truck\n157734,dog\n157735,bird\n157736,truck\n157737,deer\n157738,truck\n157739,dog\n157740,ship\n157741,ship\n157742,deer\n157743,frog\n157744,deer\n157745,frog\n157746,truck\n157747,cat\n157748,deer\n157749,bird\n157750,frog\n157751,ship\n157752,cat\n157753,cat\n157754,airplane\n157755,cat\n157756,airplane\n157757,cat\n157758,dog\n157759,cat\n157760,cat\n157761,dog\n157762,bird\n157763,airplane\n157764,frog\n157765,cat\n157766,bird\n157767,truck\n157768,deer\n157769,automobile\n157770,frog\n157771,frog\n157772,airplane\n157773,dog\n157774,bird\n157775,automobile\n157776,cat\n157777,cat\n157778,truck\n157779,automobile\n157780,airplane\n157781,deer\n157782,dog\n157783,ship\n157784,horse\n157785,ship\n157786,frog\n157787,automobile\n157788,frog\n157789,automobile\n157790,bird\n157791,cat\n157792,horse\n157793,deer\n157794,horse\n157795,deer\n157796,deer\n157797,cat\n157798,automobile\n157799,airplane\n157800,ship\n157801,cat\n157802,dog\n157803,airplane\n157804,bird\n157805,horse\n157806,bird\n157807,truck\n157808,cat\n157809,frog\n157810,deer\n157811,ship\n157812,cat\n157813,truck\n157814,horse\n157815,cat\n157816,dog\n157817,cat\n157818,airplane\n157819,bird\n157820,cat\n157821,frog\n157822,deer\n157823,deer\n157824,truck\n157825,frog\n157826,ship\n157827,cat\n157828,horse\n157829,frog\n157830,deer\n157831,deer\n157832,deer\n157833,cat\n157834,ship\n157835,truck\n157836,airplane\n157837,ship\n157838,cat\n157839,airplane\n157840,truck\n157841,airplane\n157842,frog\n157843,ship\n157844,deer\n157845,deer\n157846,cat\n157847,dog\n157848,ship\n157849,cat\n157850,truck\n157851,frog\n157852,cat\n157853,ship\n157854,cat\n157855,truck\n157856,truck\n157857,cat\n157858,deer\n157859,truck\n157860,truck\n157861,deer\n157862,bird\n157863,ship\n157864,dog\n157865,airplane\n157866,automobile\n157867,automobile\n157868,bird\n157869,deer\n157870,frog\n157871,cat\n157872,automobile\n157873,deer\n157874,bird\n157875,deer\n157876,deer\n157877,truck\n157878,truck\n157879,horse\n157880,ship\n157881,dog\n157882,frog\n157883,truck\n157884,bird\n157885,frog\n157886,airplane\n157887,dog\n157888,dog\n157889,frog\n157890,deer\n157891,deer\n157892,cat\n157893,frog\n157894,airplane\n157895,airplane\n157896,truck\n157897,ship\n157898,horse\n157899,horse\n157900,cat\n157901,dog\n157902,bird\n157903,dog\n157904,ship\n157905,ship\n157906,dog\n157907,horse\n157908,dog\n157909,ship\n157910,airplane\n157911,horse\n157912,automobile\n157913,truck\n157914,bird\n157915,deer\n157916,airplane\n157917,dog\n157918,ship\n157919,ship\n157920,cat\n157921,horse\n157922,cat\n157923,airplane\n157924,deer\n157925,cat\n157926,ship\n157927,frog\n157928,horse\n157929,dog\n157930,dog\n157931,dog\n157932,deer\n157933,airplane\n157934,bird\n157935,truck\n157936,bird\n157937,deer\n157938,ship\n157939,dog\n157940,automobile\n157941,airplane\n157942,horse\n157943,airplane\n157944,airplane\n157945,deer\n157946,cat\n157947,truck\n157948,ship\n157949,dog\n157950,dog\n157951,cat\n157952,deer\n157953,horse\n157954,dog\n157955,frog\n157956,truck\n157957,airplane\n157958,automobile\n157959,automobile\n157960,cat\n157961,truck\n157962,cat\n157963,deer\n157964,frog\n157965,dog\n157966,ship\n157967,deer\n157968,cat\n157969,bird\n157970,airplane\n157971,dog\n157972,ship\n157973,horse\n157974,ship\n157975,airplane\n157976,airplane\n157977,dog\n157978,frog\n157979,cat\n157980,horse\n157981,ship\n157982,ship\n157983,horse\n157984,truck\n157985,deer\n157986,dog\n157987,horse\n157988,truck\n157989,cat\n157990,airplane\n157991,dog\n157992,dog\n157993,automobile\n157994,ship\n157995,cat\n157996,automobile\n157997,horse\n157998,frog\n157999,dog\n158000,horse\n158001,ship\n158002,ship\n158003,truck\n158004,cat\n158005,frog\n158006,ship\n158007,deer\n158008,bird\n158009,truck\n158010,horse\n158011,deer\n158012,deer\n158013,dog\n158014,airplane\n158015,cat\n158016,deer\n158017,deer\n158018,horse\n158019,frog\n158020,bird\n158021,frog\n158022,automobile\n158023,airplane\n158024,frog\n158025,ship\n158026,dog\n158027,truck\n158028,deer\n158029,truck\n158030,truck\n158031,bird\n158032,horse\n158033,dog\n158034,horse\n158035,bird\n158036,deer\n158037,ship\n158038,bird\n158039,truck\n158040,frog\n158041,horse\n158042,airplane\n158043,deer\n158044,dog\n158045,bird\n158046,airplane\n158047,frog\n158048,airplane\n158049,airplane\n158050,horse\n158051,ship\n158052,frog\n158053,airplane\n158054,ship\n158055,deer\n158056,frog\n158057,frog\n158058,dog\n158059,ship\n158060,ship\n158061,dog\n158062,frog\n158063,automobile\n158064,bird\n158065,cat\n158066,airplane\n158067,deer\n158068,dog\n158069,deer\n158070,cat\n158071,horse\n158072,cat\n158073,frog\n158074,horse\n158075,dog\n158076,bird\n158077,deer\n158078,cat\n158079,deer\n158080,bird\n158081,frog\n158082,horse\n158083,bird\n158084,automobile\n158085,cat\n158086,bird\n158087,cat\n158088,frog\n158089,cat\n158090,ship\n158091,automobile\n158092,truck\n158093,frog\n158094,airplane\n158095,airplane\n158096,frog\n158097,cat\n158098,cat\n158099,deer\n158100,deer\n158101,cat\n158102,frog\n158103,ship\n158104,truck\n158105,dog\n158106,dog\n158107,bird\n158108,airplane\n158109,horse\n158110,truck\n158111,airplane\n158112,bird\n158113,horse\n158114,ship\n158115,dog\n158116,cat\n158117,automobile\n158118,deer\n158119,deer\n158120,cat\n158121,dog\n158122,airplane\n158123,frog\n158124,truck\n158125,airplane\n158126,frog\n158127,ship\n158128,deer\n158129,dog\n158130,deer\n158131,ship\n158132,bird\n158133,airplane\n158134,ship\n158135,cat\n158136,truck\n158137,cat\n158138,airplane\n158139,truck\n158140,cat\n158141,dog\n158142,horse\n158143,frog\n158144,airplane\n158145,automobile\n158146,truck\n158147,bird\n158148,horse\n158149,ship\n158150,deer\n158151,horse\n158152,truck\n158153,deer\n158154,airplane\n158155,cat\n158156,truck\n158157,automobile\n158158,ship\n158159,airplane\n158160,bird\n158161,airplane\n158162,bird\n158163,deer\n158164,truck\n158165,ship\n158166,horse\n158167,deer\n158168,bird\n158169,truck\n158170,cat\n158171,cat\n158172,automobile\n158173,bird\n158174,deer\n158175,deer\n158176,truck\n158177,cat\n158178,frog\n158179,ship\n158180,deer\n158181,deer\n158182,airplane\n158183,bird\n158184,airplane\n158185,airplane\n158186,horse\n158187,frog\n158188,automobile\n158189,deer\n158190,automobile\n158191,cat\n158192,truck\n158193,cat\n158194,truck\n158195,horse\n158196,horse\n158197,frog\n158198,bird\n158199,horse\n158200,bird\n158201,ship\n158202,truck\n158203,frog\n158204,ship\n158205,airplane\n158206,cat\n158207,dog\n158208,ship\n158209,cat\n158210,cat\n158211,cat\n158212,cat\n158213,automobile\n158214,automobile\n158215,bird\n158216,ship\n158217,airplane\n158218,horse\n158219,horse\n158220,deer\n158221,frog\n158222,bird\n158223,truck\n158224,bird\n158225,horse\n158226,frog\n158227,truck\n158228,cat\n158229,dog\n158230,ship\n158231,cat\n158232,dog\n158233,deer\n158234,dog\n158235,cat\n158236,deer\n158237,dog\n158238,automobile\n158239,frog\n158240,frog\n158241,cat\n158242,frog\n158243,dog\n158244,cat\n158245,frog\n158246,horse\n158247,deer\n158248,cat\n158249,frog\n158250,deer\n158251,bird\n158252,ship\n158253,horse\n158254,dog\n158255,ship\n158256,truck\n158257,truck\n158258,cat\n158259,horse\n158260,cat\n158261,automobile\n158262,horse\n158263,deer\n158264,automobile\n158265,frog\n158266,deer\n158267,airplane\n158268,frog\n158269,cat\n158270,automobile\n158271,truck\n158272,deer\n158273,frog\n158274,frog\n158275,deer\n158276,deer\n158277,cat\n158278,bird\n158279,airplane\n158280,truck\n158281,ship\n158282,cat\n158283,truck\n158284,dog\n158285,horse\n158286,cat\n158287,dog\n158288,frog\n158289,truck\n158290,horse\n158291,frog\n158292,bird\n158293,deer\n158294,horse\n158295,automobile\n158296,horse\n158297,automobile\n158298,ship\n158299,bird\n158300,frog\n158301,cat\n158302,deer\n158303,truck\n158304,deer\n158305,horse\n158306,deer\n158307,bird\n158308,ship\n158309,horse\n158310,automobile\n158311,bird\n158312,cat\n158313,dog\n158314,dog\n158315,cat\n158316,cat\n158317,horse\n158318,ship\n158319,frog\n158320,deer\n158321,deer\n158322,cat\n158323,airplane\n158324,frog\n158325,airplane\n158326,cat\n158327,deer\n158328,airplane\n158329,deer\n158330,airplane\n158331,ship\n158332,truck\n158333,automobile\n158334,cat\n158335,truck\n158336,truck\n158337,automobile\n158338,bird\n158339,deer\n158340,deer\n158341,ship\n158342,truck\n158343,cat\n158344,cat\n158345,ship\n158346,truck\n158347,bird\n158348,ship\n158349,ship\n158350,cat\n158351,horse\n158352,truck\n158353,dog\n158354,cat\n158355,truck\n158356,ship\n158357,airplane\n158358,dog\n158359,truck\n158360,automobile\n158361,airplane\n158362,cat\n158363,cat\n158364,ship\n158365,dog\n158366,frog\n158367,truck\n158368,frog\n158369,frog\n158370,ship\n158371,horse\n158372,truck\n158373,airplane\n158374,automobile\n158375,bird\n158376,cat\n158377,cat\n158378,dog\n158379,dog\n158380,frog\n158381,bird\n158382,deer\n158383,horse\n158384,frog\n158385,cat\n158386,truck\n158387,horse\n158388,dog\n158389,dog\n158390,deer\n158391,bird\n158392,automobile\n158393,frog\n158394,deer\n158395,frog\n158396,horse\n158397,horse\n158398,ship\n158399,bird\n158400,airplane\n158401,frog\n158402,frog\n158403,frog\n158404,horse\n158405,horse\n158406,automobile\n158407,horse\n158408,deer\n158409,truck\n158410,automobile\n158411,ship\n158412,frog\n158413,cat\n158414,horse\n158415,cat\n158416,cat\n158417,airplane\n158418,airplane\n158419,deer\n158420,truck\n158421,ship\n158422,automobile\n158423,truck\n158424,horse\n158425,airplane\n158426,cat\n158427,airplane\n158428,airplane\n158429,automobile\n158430,deer\n158431,ship\n158432,cat\n158433,deer\n158434,dog\n158435,airplane\n158436,airplane\n158437,deer\n158438,truck\n158439,dog\n158440,dog\n158441,frog\n158442,airplane\n158443,deer\n158444,cat\n158445,horse\n158446,frog\n158447,deer\n158448,dog\n158449,cat\n158450,deer\n158451,deer\n158452,truck\n158453,horse\n158454,truck\n158455,airplane\n158456,frog\n158457,deer\n158458,horse\n158459,truck\n158460,bird\n158461,horse\n158462,truck\n158463,horse\n158464,deer\n158465,horse\n158466,frog\n158467,bird\n158468,bird\n158469,horse\n158470,cat\n158471,cat\n158472,dog\n158473,automobile\n158474,cat\n158475,truck\n158476,automobile\n158477,ship\n158478,dog\n158479,deer\n158480,deer\n158481,bird\n158482,ship\n158483,deer\n158484,truck\n158485,ship\n158486,truck\n158487,bird\n158488,dog\n158489,airplane\n158490,frog\n158491,truck\n158492,truck\n158493,horse\n158494,airplane\n158495,airplane\n158496,truck\n158497,dog\n158498,horse\n158499,ship\n158500,horse\n158501,automobile\n158502,deer\n158503,deer\n158504,frog\n158505,dog\n158506,dog\n158507,horse\n158508,deer\n158509,frog\n158510,frog\n158511,deer\n158512,dog\n158513,airplane\n158514,deer\n158515,dog\n158516,deer\n158517,automobile\n158518,airplane\n158519,deer\n158520,automobile\n158521,cat\n158522,cat\n158523,cat\n158524,cat\n158525,bird\n158526,horse\n158527,horse\n158528,bird\n158529,horse\n158530,horse\n158531,horse\n158532,dog\n158533,truck\n158534,deer\n158535,truck\n158536,deer\n158537,bird\n158538,frog\n158539,deer\n158540,frog\n158541,cat\n158542,frog\n158543,truck\n158544,deer\n158545,airplane\n158546,truck\n158547,frog\n158548,airplane\n158549,airplane\n158550,cat\n158551,ship\n158552,horse\n158553,dog\n158554,deer\n158555,truck\n158556,ship\n158557,automobile\n158558,deer\n158559,cat\n158560,deer\n158561,horse\n158562,frog\n158563,horse\n158564,bird\n158565,cat\n158566,dog\n158567,deer\n158568,horse\n158569,deer\n158570,deer\n158571,deer\n158572,deer\n158573,frog\n158574,truck\n158575,deer\n158576,automobile\n158577,cat\n158578,cat\n158579,horse\n158580,ship\n158581,cat\n158582,bird\n158583,frog\n158584,cat\n158585,frog\n158586,airplane\n158587,truck\n158588,deer\n158589,cat\n158590,airplane\n158591,truck\n158592,deer\n158593,cat\n158594,dog\n158595,cat\n158596,airplane\n158597,cat\n158598,deer\n158599,deer\n158600,cat\n158601,airplane\n158602,frog\n158603,horse\n158604,truck\n158605,cat\n158606,horse\n158607,horse\n158608,cat\n158609,dog\n158610,automobile\n158611,ship\n158612,horse\n158613,frog\n158614,horse\n158615,cat\n158616,cat\n158617,deer\n158618,cat\n158619,horse\n158620,horse\n158621,deer\n158622,bird\n158623,dog\n158624,dog\n158625,airplane\n158626,airplane\n158627,cat\n158628,deer\n158629,deer\n158630,horse\n158631,automobile\n158632,automobile\n158633,dog\n158634,ship\n158635,truck\n158636,airplane\n158637,horse\n158638,deer\n158639,bird\n158640,dog\n158641,automobile\n158642,ship\n158643,airplane\n158644,bird\n158645,bird\n158646,cat\n158647,frog\n158648,truck\n158649,automobile\n158650,deer\n158651,truck\n158652,cat\n158653,airplane\n158654,dog\n158655,truck\n158656,deer\n158657,cat\n158658,horse\n158659,truck\n158660,automobile\n158661,deer\n158662,deer\n158663,horse\n158664,dog\n158665,truck\n158666,ship\n158667,deer\n158668,airplane\n158669,ship\n158670,dog\n158671,airplane\n158672,horse\n158673,truck\n158674,truck\n158675,cat\n158676,deer\n158677,truck\n158678,airplane\n158679,dog\n158680,cat\n158681,frog\n158682,cat\n158683,cat\n158684,cat\n158685,dog\n158686,bird\n158687,horse\n158688,frog\n158689,airplane\n158690,deer\n158691,deer\n158692,airplane\n158693,truck\n158694,cat\n158695,ship\n158696,ship\n158697,bird\n158698,airplane\n158699,frog\n158700,automobile\n158701,dog\n158702,automobile\n158703,ship\n158704,dog\n158705,automobile\n158706,cat\n158707,horse\n158708,frog\n158709,frog\n158710,ship\n158711,deer\n158712,ship\n158713,deer\n158714,truck\n158715,cat\n158716,frog\n158717,horse\n158718,automobile\n158719,deer\n158720,dog\n158721,horse\n158722,airplane\n158723,truck\n158724,bird\n158725,ship\n158726,horse\n158727,horse\n158728,horse\n158729,cat\n158730,dog\n158731,truck\n158732,automobile\n158733,cat\n158734,deer\n158735,frog\n158736,cat\n158737,horse\n158738,cat\n158739,bird\n158740,frog\n158741,cat\n158742,ship\n158743,airplane\n158744,deer\n158745,airplane\n158746,cat\n158747,frog\n158748,ship\n158749,truck\n158750,horse\n158751,truck\n158752,deer\n158753,automobile\n158754,dog\n158755,cat\n158756,deer\n158757,deer\n158758,deer\n158759,dog\n158760,dog\n158761,ship\n158762,dog\n158763,airplane\n158764,deer\n158765,truck\n158766,horse\n158767,frog\n158768,airplane\n158769,deer\n158770,deer\n158771,cat\n158772,dog\n158773,airplane\n158774,dog\n158775,cat\n158776,airplane\n158777,airplane\n158778,dog\n158779,truck\n158780,cat\n158781,automobile\n158782,cat\n158783,frog\n158784,bird\n158785,frog\n158786,truck\n158787,truck\n158788,airplane\n158789,deer\n158790,cat\n158791,bird\n158792,truck\n158793,ship\n158794,ship\n158795,dog\n158796,ship\n158797,cat\n158798,deer\n158799,deer\n158800,automobile\n158801,frog\n158802,ship\n158803,horse\n158804,ship\n158805,cat\n158806,deer\n158807,airplane\n158808,bird\n158809,dog\n158810,truck\n158811,truck\n158812,bird\n158813,horse\n158814,horse\n158815,cat\n158816,horse\n158817,airplane\n158818,dog\n158819,ship\n158820,bird\n158821,truck\n158822,frog\n158823,dog\n158824,airplane\n158825,truck\n158826,truck\n158827,airplane\n158828,automobile\n158829,cat\n158830,frog\n158831,deer\n158832,dog\n158833,horse\n158834,truck\n158835,dog\n158836,deer\n158837,bird\n158838,ship\n158839,bird\n158840,cat\n158841,truck\n158842,automobile\n158843,automobile\n158844,dog\n158845,bird\n158846,dog\n158847,cat\n158848,dog\n158849,dog\n158850,airplane\n158851,deer\n158852,ship\n158853,truck\n158854,horse\n158855,bird\n158856,truck\n158857,airplane\n158858,bird\n158859,dog\n158860,truck\n158861,airplane\n158862,frog\n158863,dog\n158864,ship\n158865,cat\n158866,truck\n158867,deer\n158868,truck\n158869,cat\n158870,deer\n158871,airplane\n158872,automobile\n158873,deer\n158874,automobile\n158875,frog\n158876,truck\n158877,airplane\n158878,horse\n158879,airplane\n158880,automobile\n158881,dog\n158882,ship\n158883,cat\n158884,deer\n158885,automobile\n158886,ship\n158887,deer\n158888,truck\n158889,dog\n158890,bird\n158891,horse\n158892,cat\n158893,frog\n158894,deer\n158895,dog\n158896,horse\n158897,truck\n158898,horse\n158899,cat\n158900,deer\n158901,truck\n158902,airplane\n158903,airplane\n158904,frog\n158905,cat\n158906,truck\n158907,automobile\n158908,automobile\n158909,deer\n158910,horse\n158911,truck\n158912,dog\n158913,horse\n158914,truck\n158915,deer\n158916,truck\n158917,frog\n158918,automobile\n158919,dog\n158920,automobile\n158921,automobile\n158922,automobile\n158923,frog\n158924,automobile\n158925,frog\n158926,horse\n158927,dog\n158928,truck\n158929,frog\n158930,cat\n158931,deer\n158932,cat\n158933,cat\n158934,truck\n158935,truck\n158936,truck\n158937,frog\n158938,deer\n158939,ship\n158940,deer\n158941,deer\n158942,cat\n158943,dog\n158944,cat\n158945,automobile\n158946,frog\n158947,ship\n158948,airplane\n158949,horse\n158950,horse\n158951,deer\n158952,ship\n158953,cat\n158954,deer\n158955,bird\n158956,bird\n158957,dog\n158958,cat\n158959,deer\n158960,dog\n158961,horse\n158962,automobile\n158963,frog\n158964,airplane\n158965,frog\n158966,frog\n158967,automobile\n158968,frog\n158969,ship\n158970,frog\n158971,truck\n158972,dog\n158973,ship\n158974,ship\n158975,airplane\n158976,deer\n158977,deer\n158978,cat\n158979,bird\n158980,frog\n158981,deer\n158982,deer\n158983,bird\n158984,ship\n158985,ship\n158986,horse\n158987,dog\n158988,frog\n158989,cat\n158990,dog\n158991,cat\n158992,deer\n158993,cat\n158994,bird\n158995,frog\n158996,truck\n158997,frog\n158998,frog\n158999,frog\n159000,frog\n159001,bird\n159002,deer\n159003,cat\n159004,horse\n159005,deer\n159006,automobile\n159007,bird\n159008,horse\n159009,ship\n159010,airplane\n159011,dog\n159012,ship\n159013,ship\n159014,airplane\n159015,airplane\n159016,horse\n159017,cat\n159018,deer\n159019,frog\n159020,frog\n159021,cat\n159022,automobile\n159023,bird\n159024,airplane\n159025,bird\n159026,deer\n159027,dog\n159028,frog\n159029,horse\n159030,cat\n159031,deer\n159032,truck\n159033,frog\n159034,dog\n159035,bird\n159036,truck\n159037,ship\n159038,ship\n159039,dog\n159040,ship\n159041,truck\n159042,cat\n159043,cat\n159044,frog\n159045,bird\n159046,truck\n159047,airplane\n159048,truck\n159049,dog\n159050,ship\n159051,ship\n159052,deer\n159053,frog\n159054,ship\n159055,frog\n159056,airplane\n159057,automobile\n159058,automobile\n159059,deer\n159060,frog\n159061,frog\n159062,dog\n159063,bird\n159064,dog\n159065,dog\n159066,airplane\n159067,bird\n159068,deer\n159069,dog\n159070,truck\n159071,horse\n159072,dog\n159073,dog\n159074,truck\n159075,horse\n159076,airplane\n159077,deer\n159078,airplane\n159079,deer\n159080,airplane\n159081,bird\n159082,airplane\n159083,deer\n159084,bird\n159085,deer\n159086,cat\n159087,ship\n159088,cat\n159089,cat\n159090,cat\n159091,bird\n159092,automobile\n159093,cat\n159094,frog\n159095,frog\n159096,airplane\n159097,horse\n159098,frog\n159099,automobile\n159100,cat\n159101,cat\n159102,dog\n159103,automobile\n159104,cat\n159105,dog\n159106,dog\n159107,airplane\n159108,airplane\n159109,horse\n159110,truck\n159111,automobile\n159112,horse\n159113,deer\n159114,bird\n159115,cat\n159116,airplane\n159117,cat\n159118,ship\n159119,deer\n159120,frog\n159121,deer\n159122,cat\n159123,dog\n159124,automobile\n159125,airplane\n159126,deer\n159127,frog\n159128,automobile\n159129,cat\n159130,horse\n159131,deer\n159132,truck\n159133,cat\n159134,truck\n159135,frog\n159136,dog\n159137,deer\n159138,truck\n159139,dog\n159140,airplane\n159141,deer\n159142,cat\n159143,bird\n159144,bird\n159145,cat\n159146,cat\n159147,truck\n159148,horse\n159149,cat\n159150,deer\n159151,deer\n159152,dog\n159153,horse\n159154,horse\n159155,horse\n159156,deer\n159157,dog\n159158,truck\n159159,horse\n159160,deer\n159161,automobile\n159162,cat\n159163,automobile\n159164,truck\n159165,bird\n159166,truck\n159167,cat\n159168,deer\n159169,frog\n159170,deer\n159171,cat\n159172,bird\n159173,cat\n159174,airplane\n159175,cat\n159176,truck\n159177,cat\n159178,deer\n159179,ship\n159180,dog\n159181,horse\n159182,frog\n159183,frog\n159184,automobile\n159185,ship\n159186,deer\n159187,frog\n159188,horse\n159189,ship\n159190,automobile\n159191,cat\n159192,frog\n159193,cat\n159194,deer\n159195,truck\n159196,automobile\n159197,truck\n159198,automobile\n159199,ship\n159200,bird\n159201,cat\n159202,truck\n159203,airplane\n159204,cat\n159205,deer\n159206,dog\n159207,dog\n159208,truck\n159209,deer\n159210,airplane\n159211,horse\n159212,horse\n159213,horse\n159214,cat\n159215,deer\n159216,dog\n159217,automobile\n159218,dog\n159219,deer\n159220,cat\n159221,deer\n159222,frog\n159223,dog\n159224,dog\n159225,ship\n159226,frog\n159227,horse\n159228,bird\n159229,truck\n159230,cat\n159231,ship\n159232,ship\n159233,dog\n159234,automobile\n159235,deer\n159236,ship\n159237,truck\n159238,cat\n159239,frog\n159240,dog\n159241,ship\n159242,cat\n159243,deer\n159244,horse\n159245,automobile\n159246,dog\n159247,frog\n159248,deer\n159249,frog\n159250,frog\n159251,horse\n159252,cat\n159253,ship\n159254,cat\n159255,frog\n159256,truck\n159257,truck\n159258,frog\n159259,automobile\n159260,horse\n159261,horse\n159262,deer\n159263,cat\n159264,deer\n159265,cat\n159266,airplane\n159267,ship\n159268,cat\n159269,ship\n159270,truck\n159271,cat\n159272,bird\n159273,cat\n159274,ship\n159275,automobile\n159276,cat\n159277,cat\n159278,dog\n159279,automobile\n159280,deer\n159281,deer\n159282,deer\n159283,dog\n159284,deer\n159285,deer\n159286,frog\n159287,frog\n159288,bird\n159289,cat\n159290,ship\n159291,truck\n159292,bird\n159293,horse\n159294,cat\n159295,horse\n159296,frog\n159297,dog\n159298,cat\n159299,dog\n159300,airplane\n159301,horse\n159302,bird\n159303,airplane\n159304,deer\n159305,horse\n159306,frog\n159307,deer\n159308,frog\n159309,ship\n159310,dog\n159311,frog\n159312,truck\n159313,airplane\n159314,airplane\n159315,bird\n159316,dog\n159317,cat\n159318,frog\n159319,truck\n159320,horse\n159321,dog\n159322,bird\n159323,dog\n159324,truck\n159325,truck\n159326,automobile\n159327,ship\n159328,cat\n159329,ship\n159330,frog\n159331,dog\n159332,deer\n159333,horse\n159334,dog\n159335,horse\n159336,ship\n159337,frog\n159338,ship\n159339,cat\n159340,automobile\n159341,ship\n159342,frog\n159343,frog\n159344,cat\n159345,airplane\n159346,horse\n159347,cat\n159348,cat\n159349,horse\n159350,dog\n159351,cat\n159352,deer\n159353,bird\n159354,dog\n159355,automobile\n159356,horse\n159357,dog\n159358,airplane\n159359,bird\n159360,dog\n159361,automobile\n159362,horse\n159363,deer\n159364,frog\n159365,cat\n159366,ship\n159367,frog\n159368,ship\n159369,deer\n159370,deer\n159371,deer\n159372,ship\n159373,frog\n159374,cat\n159375,bird\n159376,cat\n159377,automobile\n159378,cat\n159379,truck\n159380,dog\n159381,truck\n159382,frog\n159383,frog\n159384,dog\n159385,airplane\n159386,automobile\n159387,airplane\n159388,horse\n159389,cat\n159390,ship\n159391,dog\n159392,dog\n159393,ship\n159394,cat\n159395,automobile\n159396,dog\n159397,frog\n159398,airplane\n159399,frog\n159400,cat\n159401,ship\n159402,dog\n159403,truck\n159404,cat\n159405,airplane\n159406,frog\n159407,horse\n159408,frog\n159409,truck\n159410,cat\n159411,horse\n159412,airplane\n159413,airplane\n159414,horse\n159415,bird\n159416,horse\n159417,horse\n159418,truck\n159419,horse\n159420,dog\n159421,deer\n159422,deer\n159423,dog\n159424,cat\n159425,frog\n159426,truck\n159427,truck\n159428,automobile\n159429,dog\n159430,deer\n159431,airplane\n159432,truck\n159433,ship\n159434,automobile\n159435,bird\n159436,bird\n159437,ship\n159438,cat\n159439,airplane\n159440,truck\n159441,cat\n159442,automobile\n159443,horse\n159444,frog\n159445,airplane\n159446,dog\n159447,horse\n159448,ship\n159449,cat\n159450,frog\n159451,cat\n159452,cat\n159453,frog\n159454,truck\n159455,automobile\n159456,cat\n159457,bird\n159458,ship\n159459,dog\n159460,truck\n159461,automobile\n159462,deer\n159463,bird\n159464,cat\n159465,deer\n159466,ship\n159467,frog\n159468,ship\n159469,truck\n159470,truck\n159471,deer\n159472,truck\n159473,frog\n159474,horse\n159475,deer\n159476,cat\n159477,cat\n159478,bird\n159479,truck\n159480,cat\n159481,cat\n159482,automobile\n159483,deer\n159484,dog\n159485,cat\n159486,deer\n159487,frog\n159488,cat\n159489,horse\n159490,truck\n159491,ship\n159492,truck\n159493,truck\n159494,deer\n159495,truck\n159496,cat\n159497,cat\n159498,cat\n159499,truck\n159500,automobile\n159501,automobile\n159502,dog\n159503,cat\n159504,airplane\n159505,deer\n159506,truck\n159507,ship\n159508,bird\n159509,airplane\n159510,frog\n159511,bird\n159512,cat\n159513,dog\n159514,automobile\n159515,frog\n159516,dog\n159517,frog\n159518,deer\n159519,frog\n159520,horse\n159521,horse\n159522,truck\n159523,deer\n159524,frog\n159525,ship\n159526,deer\n159527,horse\n159528,frog\n159529,airplane\n159530,frog\n159531,ship\n159532,deer\n159533,bird\n159534,airplane\n159535,cat\n159536,deer\n159537,airplane\n159538,frog\n159539,ship\n159540,truck\n159541,dog\n159542,truck\n159543,cat\n159544,truck\n159545,cat\n159546,automobile\n159547,cat\n159548,truck\n159549,dog\n159550,ship\n159551,truck\n159552,frog\n159553,cat\n159554,ship\n159555,bird\n159556,airplane\n159557,cat\n159558,bird\n159559,dog\n159560,dog\n159561,ship\n159562,deer\n159563,airplane\n159564,frog\n159565,bird\n159566,truck\n159567,cat\n159568,dog\n159569,airplane\n159570,truck\n159571,deer\n159572,dog\n159573,deer\n159574,automobile\n159575,airplane\n159576,airplane\n159577,ship\n159578,ship\n159579,horse\n159580,ship\n159581,airplane\n159582,dog\n159583,dog\n159584,bird\n159585,frog\n159586,airplane\n159587,cat\n159588,cat\n159589,automobile\n159590,dog\n159591,deer\n159592,truck\n159593,truck\n159594,dog\n159595,truck\n159596,horse\n159597,automobile\n159598,horse\n159599,ship\n159600,cat\n159601,truck\n159602,cat\n159603,cat\n159604,airplane\n159605,bird\n159606,bird\n159607,frog\n159608,airplane\n159609,airplane\n159610,cat\n159611,ship\n159612,truck\n159613,cat\n159614,airplane\n159615,cat\n159616,cat\n159617,dog\n159618,horse\n159619,automobile\n159620,bird\n159621,ship\n159622,ship\n159623,ship\n159624,dog\n159625,deer\n159626,bird\n159627,truck\n159628,frog\n159629,bird\n159630,truck\n159631,airplane\n159632,frog\n159633,automobile\n159634,deer\n159635,airplane\n159636,dog\n159637,horse\n159638,ship\n159639,ship\n159640,deer\n159641,truck\n159642,truck\n159643,ship\n159644,dog\n159645,cat\n159646,truck\n159647,truck\n159648,automobile\n159649,horse\n159650,bird\n159651,frog\n159652,horse\n159653,deer\n159654,ship\n159655,truck\n159656,frog\n159657,horse\n159658,bird\n159659,ship\n159660,dog\n159661,bird\n159662,ship\n159663,truck\n159664,automobile\n159665,cat\n159666,dog\n159667,ship\n159668,horse\n159669,frog\n159670,dog\n159671,cat\n159672,bird\n159673,deer\n159674,ship\n159675,airplane\n159676,automobile\n159677,truck\n159678,dog\n159679,frog\n159680,deer\n159681,truck\n159682,horse\n159683,automobile\n159684,horse\n159685,airplane\n159686,cat\n159687,frog\n159688,cat\n159689,truck\n159690,ship\n159691,frog\n159692,ship\n159693,horse\n159694,bird\n159695,dog\n159696,airplane\n159697,cat\n159698,ship\n159699,airplane\n159700,deer\n159701,horse\n159702,truck\n159703,horse\n159704,horse\n159705,horse\n159706,deer\n159707,frog\n159708,dog\n159709,dog\n159710,cat\n159711,dog\n159712,cat\n159713,deer\n159714,bird\n159715,deer\n159716,cat\n159717,horse\n159718,automobile\n159719,dog\n159720,deer\n159721,cat\n159722,deer\n159723,deer\n159724,cat\n159725,horse\n159726,frog\n159727,automobile\n159728,deer\n159729,deer\n159730,automobile\n159731,horse\n159732,horse\n159733,frog\n159734,deer\n159735,frog\n159736,dog\n159737,ship\n159738,cat\n159739,deer\n159740,deer\n159741,horse\n159742,frog\n159743,truck\n159744,deer\n159745,dog\n159746,cat\n159747,frog\n159748,deer\n159749,deer\n159750,ship\n159751,truck\n159752,airplane\n159753,deer\n159754,frog\n159755,ship\n159756,airplane\n159757,dog\n159758,frog\n159759,truck\n159760,bird\n159761,cat\n159762,deer\n159763,frog\n159764,deer\n159765,truck\n159766,automobile\n159767,bird\n159768,cat\n159769,deer\n159770,frog\n159771,bird\n159772,truck\n159773,deer\n159774,airplane\n159775,frog\n159776,bird\n159777,cat\n159778,deer\n159779,cat\n159780,truck\n159781,dog\n159782,deer\n159783,horse\n159784,cat\n159785,cat\n159786,automobile\n159787,airplane\n159788,frog\n159789,bird\n159790,truck\n159791,automobile\n159792,truck\n159793,dog\n159794,frog\n159795,deer\n159796,ship\n159797,ship\n159798,deer\n159799,deer\n159800,cat\n159801,dog\n159802,bird\n159803,automobile\n159804,cat\n159805,airplane\n159806,ship\n159807,airplane\n159808,cat\n159809,dog\n159810,airplane\n159811,airplane\n159812,ship\n159813,horse\n159814,airplane\n159815,frog\n159816,automobile\n159817,frog\n159818,truck\n159819,frog\n159820,deer\n159821,frog\n159822,automobile\n159823,cat\n159824,horse\n159825,frog\n159826,deer\n159827,cat\n159828,horse\n159829,airplane\n159830,frog\n159831,cat\n159832,truck\n159833,deer\n159834,frog\n159835,cat\n159836,bird\n159837,bird\n159838,cat\n159839,bird\n159840,automobile\n159841,deer\n159842,cat\n159843,bird\n159844,cat\n159845,cat\n159846,dog\n159847,bird\n159848,horse\n159849,bird\n159850,bird\n159851,dog\n159852,dog\n159853,deer\n159854,deer\n159855,deer\n159856,bird\n159857,cat\n159858,automobile\n159859,cat\n159860,ship\n159861,airplane\n159862,frog\n159863,cat\n159864,dog\n159865,horse\n159866,frog\n159867,cat\n159868,bird\n159869,truck\n159870,dog\n159871,automobile\n159872,dog\n159873,horse\n159874,dog\n159875,deer\n159876,dog\n159877,horse\n159878,cat\n159879,frog\n159880,bird\n159881,bird\n159882,horse\n159883,deer\n159884,frog\n159885,airplane\n159886,deer\n159887,bird\n159888,truck\n159889,deer\n159890,dog\n159891,ship\n159892,horse\n159893,automobile\n159894,deer\n159895,airplane\n159896,ship\n159897,cat\n159898,deer\n159899,airplane\n159900,horse\n159901,ship\n159902,truck\n159903,cat\n159904,frog\n159905,airplane\n159906,ship\n159907,ship\n159908,dog\n159909,airplane\n159910,airplane\n159911,bird\n159912,dog\n159913,truck\n159914,airplane\n159915,airplane\n159916,automobile\n159917,truck\n159918,horse\n159919,bird\n159920,dog\n159921,dog\n159922,truck\n159923,truck\n159924,deer\n159925,frog\n159926,airplane\n159927,ship\n159928,horse\n159929,dog\n159930,airplane\n159931,bird\n159932,deer\n159933,frog\n159934,truck\n159935,horse\n159936,horse\n159937,cat\n159938,bird\n159939,truck\n159940,cat\n159941,bird\n159942,cat\n159943,deer\n159944,ship\n159945,deer\n159946,bird\n159947,ship\n159948,cat\n159949,cat\n159950,horse\n159951,airplane\n159952,deer\n159953,bird\n159954,bird\n159955,truck\n159956,cat\n159957,cat\n159958,airplane\n159959,horse\n159960,automobile\n159961,cat\n159962,horse\n159963,truck\n159964,automobile\n159965,dog\n159966,bird\n159967,bird\n159968,cat\n159969,automobile\n159970,bird\n159971,cat\n159972,truck\n159973,truck\n159974,frog\n159975,truck\n159976,airplane\n159977,cat\n159978,horse\n159979,horse\n159980,frog\n159981,frog\n159982,truck\n159983,horse\n159984,deer\n159985,airplane\n159986,cat\n159987,dog\n159988,deer\n159989,truck\n159990,ship\n159991,airplane\n159992,ship\n159993,cat\n159994,frog\n159995,horse\n159996,dog\n159997,horse\n159998,cat\n159999,dog\n160000,cat\n160001,horse\n160002,airplane\n160003,airplane\n160004,cat\n160005,cat\n160006,airplane\n160007,frog\n160008,airplane\n160009,frog\n160010,deer\n160011,airplane\n160012,deer\n160013,deer\n160014,ship\n160015,automobile\n160016,dog\n160017,cat\n160018,deer\n160019,bird\n160020,cat\n160021,deer\n160022,cat\n160023,deer\n160024,truck\n160025,bird\n160026,ship\n160027,truck\n160028,cat\n160029,truck\n160030,horse\n160031,horse\n160032,automobile\n160033,truck\n160034,dog\n160035,ship\n160036,frog\n160037,deer\n160038,dog\n160039,dog\n160040,airplane\n160041,ship\n160042,airplane\n160043,cat\n160044,airplane\n160045,deer\n160046,deer\n160047,bird\n160048,ship\n160049,frog\n160050,dog\n160051,horse\n160052,deer\n160053,dog\n160054,horse\n160055,deer\n160056,frog\n160057,ship\n160058,cat\n160059,deer\n160060,deer\n160061,cat\n160062,cat\n160063,frog\n160064,frog\n160065,frog\n160066,automobile\n160067,horse\n160068,automobile\n160069,bird\n160070,frog\n160071,cat\n160072,bird\n160073,horse\n160074,ship\n160075,airplane\n160076,bird\n160077,bird\n160078,automobile\n160079,bird\n160080,bird\n160081,automobile\n160082,cat\n160083,automobile\n160084,horse\n160085,airplane\n160086,ship\n160087,bird\n160088,cat\n160089,automobile\n160090,ship\n160091,horse\n160092,automobile\n160093,automobile\n160094,bird\n160095,cat\n160096,deer\n160097,airplane\n160098,truck\n160099,frog\n160100,horse\n160101,frog\n160102,frog\n160103,automobile\n160104,horse\n160105,deer\n160106,cat\n160107,frog\n160108,truck\n160109,ship\n160110,horse\n160111,frog\n160112,ship\n160113,airplane\n160114,dog\n160115,truck\n160116,cat\n160117,frog\n160118,airplane\n160119,bird\n160120,automobile\n160121,bird\n160122,ship\n160123,deer\n160124,bird\n160125,frog\n160126,dog\n160127,automobile\n160128,deer\n160129,ship\n160130,airplane\n160131,airplane\n160132,ship\n160133,deer\n160134,truck\n160135,bird\n160136,dog\n160137,deer\n160138,airplane\n160139,dog\n160140,automobile\n160141,airplane\n160142,frog\n160143,dog\n160144,deer\n160145,ship\n160146,airplane\n160147,frog\n160148,truck\n160149,dog\n160150,deer\n160151,cat\n160152,ship\n160153,deer\n160154,automobile\n160155,truck\n160156,truck\n160157,deer\n160158,cat\n160159,frog\n160160,frog\n160161,horse\n160162,horse\n160163,horse\n160164,ship\n160165,bird\n160166,bird\n160167,cat\n160168,horse\n160169,bird\n160170,deer\n160171,ship\n160172,dog\n160173,bird\n160174,truck\n160175,bird\n160176,frog\n160177,airplane\n160178,horse\n160179,dog\n160180,cat\n160181,horse\n160182,airplane\n160183,frog\n160184,truck\n160185,truck\n160186,horse\n160187,airplane\n160188,ship\n160189,truck\n160190,horse\n160191,frog\n160192,cat\n160193,deer\n160194,horse\n160195,deer\n160196,horse\n160197,deer\n160198,cat\n160199,frog\n160200,horse\n160201,dog\n160202,truck\n160203,deer\n160204,automobile\n160205,deer\n160206,frog\n160207,dog\n160208,deer\n160209,automobile\n160210,frog\n160211,cat\n160212,frog\n160213,deer\n160214,frog\n160215,ship\n160216,cat\n160217,frog\n160218,cat\n160219,deer\n160220,deer\n160221,automobile\n160222,frog\n160223,truck\n160224,deer\n160225,frog\n160226,cat\n160227,frog\n160228,airplane\n160229,dog\n160230,ship\n160231,horse\n160232,airplane\n160233,bird\n160234,frog\n160235,bird\n160236,truck\n160237,ship\n160238,frog\n160239,cat\n160240,truck\n160241,airplane\n160242,truck\n160243,frog\n160244,cat\n160245,airplane\n160246,cat\n160247,dog\n160248,dog\n160249,bird\n160250,ship\n160251,airplane\n160252,truck\n160253,bird\n160254,deer\n160255,truck\n160256,cat\n160257,deer\n160258,airplane\n160259,truck\n160260,bird\n160261,deer\n160262,frog\n160263,truck\n160264,deer\n160265,airplane\n160266,dog\n160267,ship\n160268,deer\n160269,cat\n160270,dog\n160271,deer\n160272,deer\n160273,frog\n160274,airplane\n160275,frog\n160276,automobile\n160277,deer\n160278,cat\n160279,truck\n160280,cat\n160281,bird\n160282,horse\n160283,horse\n160284,truck\n160285,ship\n160286,horse\n160287,frog\n160288,dog\n160289,frog\n160290,airplane\n160291,ship\n160292,cat\n160293,bird\n160294,bird\n160295,frog\n160296,automobile\n160297,ship\n160298,cat\n160299,dog\n160300,cat\n160301,horse\n160302,ship\n160303,truck\n160304,dog\n160305,airplane\n160306,deer\n160307,cat\n160308,ship\n160309,truck\n160310,airplane\n160311,truck\n160312,automobile\n160313,dog\n160314,frog\n160315,bird\n160316,frog\n160317,truck\n160318,bird\n160319,frog\n160320,frog\n160321,dog\n160322,cat\n160323,ship\n160324,airplane\n160325,horse\n160326,cat\n160327,cat\n160328,cat\n160329,cat\n160330,cat\n160331,ship\n160332,frog\n160333,frog\n160334,bird\n160335,deer\n160336,frog\n160337,dog\n160338,automobile\n160339,deer\n160340,automobile\n160341,frog\n160342,frog\n160343,dog\n160344,horse\n160345,airplane\n160346,frog\n160347,dog\n160348,dog\n160349,dog\n160350,bird\n160351,ship\n160352,horse\n160353,dog\n160354,dog\n160355,cat\n160356,dog\n160357,ship\n160358,frog\n160359,truck\n160360,dog\n160361,truck\n160362,bird\n160363,ship\n160364,bird\n160365,truck\n160366,automobile\n160367,airplane\n160368,cat\n160369,frog\n160370,airplane\n160371,deer\n160372,frog\n160373,cat\n160374,airplane\n160375,deer\n160376,truck\n160377,horse\n160378,horse\n160379,horse\n160380,frog\n160381,airplane\n160382,deer\n160383,dog\n160384,ship\n160385,airplane\n160386,bird\n160387,frog\n160388,dog\n160389,dog\n160390,cat\n160391,horse\n160392,ship\n160393,cat\n160394,airplane\n160395,cat\n160396,cat\n160397,horse\n160398,cat\n160399,truck\n160400,airplane\n160401,bird\n160402,truck\n160403,dog\n160404,airplane\n160405,bird\n160406,frog\n160407,deer\n160408,cat\n160409,dog\n160410,dog\n160411,dog\n160412,horse\n160413,bird\n160414,dog\n160415,automobile\n160416,cat\n160417,frog\n160418,truck\n160419,horse\n160420,dog\n160421,truck\n160422,deer\n160423,deer\n160424,frog\n160425,dog\n160426,frog\n160427,truck\n160428,horse\n160429,ship\n160430,ship\n160431,dog\n160432,deer\n160433,frog\n160434,frog\n160435,airplane\n160436,frog\n160437,dog\n160438,frog\n160439,deer\n160440,truck\n160441,ship\n160442,dog\n160443,bird\n160444,airplane\n160445,frog\n160446,truck\n160447,airplane\n160448,automobile\n160449,automobile\n160450,cat\n160451,frog\n160452,truck\n160453,cat\n160454,bird\n160455,bird\n160456,frog\n160457,horse\n160458,cat\n160459,horse\n160460,dog\n160461,ship\n160462,frog\n160463,ship\n160464,horse\n160465,bird\n160466,frog\n160467,bird\n160468,cat\n160469,automobile\n160470,cat\n160471,truck\n160472,automobile\n160473,truck\n160474,cat\n160475,truck\n160476,deer\n160477,deer\n160478,bird\n160479,dog\n160480,frog\n160481,frog\n160482,frog\n160483,frog\n160484,cat\n160485,automobile\n160486,deer\n160487,airplane\n160488,frog\n160489,airplane\n160490,frog\n160491,truck\n160492,dog\n160493,cat\n160494,dog\n160495,frog\n160496,dog\n160497,airplane\n160498,deer\n160499,cat\n160500,deer\n160501,deer\n160502,bird\n160503,frog\n160504,airplane\n160505,airplane\n160506,deer\n160507,horse\n160508,horse\n160509,automobile\n160510,cat\n160511,airplane\n160512,truck\n160513,automobile\n160514,automobile\n160515,cat\n160516,ship\n160517,deer\n160518,horse\n160519,frog\n160520,truck\n160521,dog\n160522,truck\n160523,truck\n160524,automobile\n160525,horse\n160526,automobile\n160527,cat\n160528,airplane\n160529,deer\n160530,deer\n160531,automobile\n160532,dog\n160533,deer\n160534,frog\n160535,dog\n160536,ship\n160537,dog\n160538,ship\n160539,truck\n160540,dog\n160541,airplane\n160542,cat\n160543,automobile\n160544,bird\n160545,horse\n160546,bird\n160547,truck\n160548,airplane\n160549,dog\n160550,frog\n160551,cat\n160552,truck\n160553,bird\n160554,bird\n160555,horse\n160556,frog\n160557,frog\n160558,deer\n160559,truck\n160560,deer\n160561,automobile\n160562,cat\n160563,cat\n160564,frog\n160565,horse\n160566,ship\n160567,cat\n160568,airplane\n160569,cat\n160570,horse\n160571,cat\n160572,truck\n160573,ship\n160574,cat\n160575,ship\n160576,truck\n160577,frog\n160578,truck\n160579,automobile\n160580,frog\n160581,ship\n160582,ship\n160583,dog\n160584,frog\n160585,ship\n160586,deer\n160587,cat\n160588,deer\n160589,frog\n160590,bird\n160591,deer\n160592,airplane\n160593,deer\n160594,bird\n160595,ship\n160596,airplane\n160597,dog\n160598,cat\n160599,deer\n160600,deer\n160601,deer\n160602,automobile\n160603,horse\n160604,airplane\n160605,truck\n160606,frog\n160607,deer\n160608,truck\n160609,truck\n160610,dog\n160611,horse\n160612,dog\n160613,bird\n160614,frog\n160615,horse\n160616,dog\n160617,dog\n160618,truck\n160619,dog\n160620,truck\n160621,deer\n160622,airplane\n160623,horse\n160624,deer\n160625,frog\n160626,bird\n160627,truck\n160628,deer\n160629,frog\n160630,bird\n160631,truck\n160632,bird\n160633,frog\n160634,cat\n160635,ship\n160636,horse\n160637,dog\n160638,truck\n160639,truck\n160640,dog\n160641,truck\n160642,frog\n160643,deer\n160644,ship\n160645,horse\n160646,frog\n160647,deer\n160648,bird\n160649,airplane\n160650,deer\n160651,ship\n160652,truck\n160653,truck\n160654,deer\n160655,horse\n160656,frog\n160657,deer\n160658,cat\n160659,dog\n160660,truck\n160661,truck\n160662,automobile\n160663,automobile\n160664,dog\n160665,dog\n160666,automobile\n160667,deer\n160668,ship\n160669,airplane\n160670,horse\n160671,cat\n160672,cat\n160673,airplane\n160674,horse\n160675,truck\n160676,cat\n160677,truck\n160678,frog\n160679,frog\n160680,frog\n160681,dog\n160682,frog\n160683,cat\n160684,horse\n160685,deer\n160686,truck\n160687,deer\n160688,ship\n160689,airplane\n160690,bird\n160691,cat\n160692,automobile\n160693,frog\n160694,automobile\n160695,dog\n160696,ship\n160697,deer\n160698,bird\n160699,ship\n160700,truck\n160701,horse\n160702,dog\n160703,dog\n160704,deer\n160705,bird\n160706,cat\n160707,truck\n160708,ship\n160709,cat\n160710,dog\n160711,automobile\n160712,airplane\n160713,truck\n160714,bird\n160715,ship\n160716,dog\n160717,automobile\n160718,automobile\n160719,ship\n160720,truck\n160721,airplane\n160722,frog\n160723,horse\n160724,bird\n160725,automobile\n160726,deer\n160727,horse\n160728,horse\n160729,cat\n160730,truck\n160731,truck\n160732,frog\n160733,frog\n160734,cat\n160735,dog\n160736,truck\n160737,truck\n160738,bird\n160739,cat\n160740,cat\n160741,airplane\n160742,bird\n160743,horse\n160744,cat\n160745,horse\n160746,truck\n160747,automobile\n160748,cat\n160749,horse\n160750,frog\n160751,frog\n160752,truck\n160753,horse\n160754,ship\n160755,cat\n160756,bird\n160757,automobile\n160758,automobile\n160759,deer\n160760,bird\n160761,frog\n160762,ship\n160763,deer\n160764,horse\n160765,cat\n160766,automobile\n160767,frog\n160768,bird\n160769,ship\n160770,bird\n160771,deer\n160772,horse\n160773,frog\n160774,cat\n160775,frog\n160776,truck\n160777,dog\n160778,truck\n160779,cat\n160780,truck\n160781,truck\n160782,deer\n160783,horse\n160784,frog\n160785,truck\n160786,automobile\n160787,airplane\n160788,ship\n160789,airplane\n160790,frog\n160791,deer\n160792,automobile\n160793,horse\n160794,airplane\n160795,truck\n160796,frog\n160797,automobile\n160798,dog\n160799,deer\n160800,cat\n160801,deer\n160802,horse\n160803,truck\n160804,airplane\n160805,frog\n160806,frog\n160807,bird\n160808,dog\n160809,cat\n160810,frog\n160811,dog\n160812,cat\n160813,airplane\n160814,frog\n160815,cat\n160816,deer\n160817,ship\n160818,deer\n160819,horse\n160820,automobile\n160821,cat\n160822,deer\n160823,deer\n160824,dog\n160825,deer\n160826,dog\n160827,truck\n160828,truck\n160829,deer\n160830,cat\n160831,dog\n160832,dog\n160833,automobile\n160834,cat\n160835,bird\n160836,airplane\n160837,airplane\n160838,deer\n160839,deer\n160840,truck\n160841,cat\n160842,frog\n160843,horse\n160844,automobile\n160845,frog\n160846,bird\n160847,deer\n160848,cat\n160849,cat\n160850,frog\n160851,bird\n160852,frog\n160853,horse\n160854,automobile\n160855,dog\n160856,frog\n160857,ship\n160858,bird\n160859,deer\n160860,deer\n160861,ship\n160862,ship\n160863,airplane\n160864,automobile\n160865,cat\n160866,cat\n160867,frog\n160868,automobile\n160869,ship\n160870,bird\n160871,airplane\n160872,cat\n160873,automobile\n160874,frog\n160875,bird\n160876,dog\n160877,bird\n160878,frog\n160879,dog\n160880,truck\n160881,horse\n160882,truck\n160883,ship\n160884,airplane\n160885,deer\n160886,truck\n160887,cat\n160888,truck\n160889,horse\n160890,deer\n160891,automobile\n160892,automobile\n160893,truck\n160894,automobile\n160895,truck\n160896,cat\n160897,ship\n160898,ship\n160899,horse\n160900,deer\n160901,truck\n160902,dog\n160903,frog\n160904,deer\n160905,cat\n160906,automobile\n160907,ship\n160908,airplane\n160909,bird\n160910,dog\n160911,cat\n160912,horse\n160913,airplane\n160914,cat\n160915,ship\n160916,deer\n160917,truck\n160918,truck\n160919,cat\n160920,horse\n160921,cat\n160922,automobile\n160923,dog\n160924,dog\n160925,dog\n160926,horse\n160927,bird\n160928,airplane\n160929,ship\n160930,deer\n160931,airplane\n160932,deer\n160933,airplane\n160934,cat\n160935,truck\n160936,cat\n160937,cat\n160938,deer\n160939,ship\n160940,truck\n160941,airplane\n160942,ship\n160943,deer\n160944,cat\n160945,truck\n160946,deer\n160947,truck\n160948,deer\n160949,ship\n160950,horse\n160951,automobile\n160952,bird\n160953,automobile\n160954,bird\n160955,cat\n160956,frog\n160957,deer\n160958,airplane\n160959,truck\n160960,horse\n160961,deer\n160962,frog\n160963,horse\n160964,horse\n160965,dog\n160966,deer\n160967,automobile\n160968,bird\n160969,truck\n160970,cat\n160971,frog\n160972,ship\n160973,dog\n160974,dog\n160975,dog\n160976,frog\n160977,cat\n160978,truck\n160979,airplane\n160980,horse\n160981,deer\n160982,deer\n160983,cat\n160984,deer\n160985,truck\n160986,cat\n160987,ship\n160988,horse\n160989,deer\n160990,deer\n160991,deer\n160992,frog\n160993,dog\n160994,frog\n160995,deer\n160996,truck\n160997,frog\n160998,dog\n160999,cat\n161000,cat\n161001,airplane\n161002,cat\n161003,bird\n161004,truck\n161005,horse\n161006,cat\n161007,ship\n161008,dog\n161009,horse\n161010,frog\n161011,truck\n161012,horse\n161013,ship\n161014,cat\n161015,frog\n161016,horse\n161017,airplane\n161018,cat\n161019,bird\n161020,horse\n161021,cat\n161022,dog\n161023,airplane\n161024,airplane\n161025,dog\n161026,deer\n161027,cat\n161028,deer\n161029,ship\n161030,cat\n161031,automobile\n161032,automobile\n161033,frog\n161034,automobile\n161035,bird\n161036,frog\n161037,deer\n161038,dog\n161039,deer\n161040,ship\n161041,cat\n161042,truck\n161043,cat\n161044,deer\n161045,deer\n161046,frog\n161047,ship\n161048,dog\n161049,bird\n161050,bird\n161051,horse\n161052,bird\n161053,automobile\n161054,truck\n161055,cat\n161056,automobile\n161057,bird\n161058,deer\n161059,airplane\n161060,horse\n161061,cat\n161062,ship\n161063,bird\n161064,truck\n161065,dog\n161066,dog\n161067,horse\n161068,cat\n161069,ship\n161070,cat\n161071,cat\n161072,airplane\n161073,cat\n161074,deer\n161075,ship\n161076,cat\n161077,automobile\n161078,bird\n161079,horse\n161080,ship\n161081,dog\n161082,frog\n161083,ship\n161084,frog\n161085,dog\n161086,deer\n161087,dog\n161088,deer\n161089,automobile\n161090,ship\n161091,bird\n161092,deer\n161093,frog\n161094,frog\n161095,bird\n161096,dog\n161097,truck\n161098,cat\n161099,bird\n161100,automobile\n161101,cat\n161102,bird\n161103,cat\n161104,cat\n161105,airplane\n161106,cat\n161107,deer\n161108,ship\n161109,cat\n161110,bird\n161111,cat\n161112,truck\n161113,ship\n161114,truck\n161115,airplane\n161116,frog\n161117,deer\n161118,deer\n161119,truck\n161120,airplane\n161121,airplane\n161122,bird\n161123,cat\n161124,automobile\n161125,ship\n161126,dog\n161127,automobile\n161128,truck\n161129,dog\n161130,horse\n161131,automobile\n161132,bird\n161133,truck\n161134,deer\n161135,cat\n161136,dog\n161137,bird\n161138,bird\n161139,bird\n161140,horse\n161141,deer\n161142,frog\n161143,bird\n161144,horse\n161145,cat\n161146,horse\n161147,cat\n161148,frog\n161149,dog\n161150,horse\n161151,frog\n161152,cat\n161153,deer\n161154,dog\n161155,airplane\n161156,cat\n161157,dog\n161158,horse\n161159,frog\n161160,bird\n161161,ship\n161162,frog\n161163,bird\n161164,airplane\n161165,bird\n161166,automobile\n161167,horse\n161168,frog\n161169,bird\n161170,frog\n161171,bird\n161172,ship\n161173,airplane\n161174,dog\n161175,truck\n161176,deer\n161177,deer\n161178,deer\n161179,cat\n161180,cat\n161181,bird\n161182,truck\n161183,cat\n161184,horse\n161185,bird\n161186,dog\n161187,deer\n161188,frog\n161189,ship\n161190,dog\n161191,deer\n161192,deer\n161193,dog\n161194,cat\n161195,truck\n161196,airplane\n161197,horse\n161198,horse\n161199,airplane\n161200,deer\n161201,horse\n161202,cat\n161203,truck\n161204,horse\n161205,dog\n161206,bird\n161207,airplane\n161208,truck\n161209,truck\n161210,horse\n161211,dog\n161212,airplane\n161213,cat\n161214,airplane\n161215,frog\n161216,cat\n161217,ship\n161218,bird\n161219,ship\n161220,truck\n161221,ship\n161222,airplane\n161223,truck\n161224,cat\n161225,horse\n161226,cat\n161227,automobile\n161228,automobile\n161229,deer\n161230,cat\n161231,airplane\n161232,deer\n161233,dog\n161234,deer\n161235,truck\n161236,frog\n161237,deer\n161238,frog\n161239,dog\n161240,truck\n161241,frog\n161242,airplane\n161243,truck\n161244,airplane\n161245,bird\n161246,airplane\n161247,cat\n161248,cat\n161249,airplane\n161250,horse\n161251,horse\n161252,dog\n161253,ship\n161254,dog\n161255,dog\n161256,bird\n161257,cat\n161258,dog\n161259,dog\n161260,cat\n161261,bird\n161262,deer\n161263,ship\n161264,cat\n161265,truck\n161266,cat\n161267,cat\n161268,dog\n161269,frog\n161270,dog\n161271,cat\n161272,ship\n161273,cat\n161274,automobile\n161275,automobile\n161276,airplane\n161277,cat\n161278,cat\n161279,frog\n161280,bird\n161281,deer\n161282,airplane\n161283,cat\n161284,cat\n161285,bird\n161286,cat\n161287,bird\n161288,deer\n161289,frog\n161290,automobile\n161291,dog\n161292,airplane\n161293,frog\n161294,ship\n161295,bird\n161296,cat\n161297,cat\n161298,frog\n161299,cat\n161300,frog\n161301,horse\n161302,horse\n161303,frog\n161304,frog\n161305,dog\n161306,dog\n161307,truck\n161308,horse\n161309,deer\n161310,deer\n161311,ship\n161312,frog\n161313,bird\n161314,horse\n161315,frog\n161316,dog\n161317,truck\n161318,cat\n161319,airplane\n161320,bird\n161321,frog\n161322,deer\n161323,ship\n161324,bird\n161325,horse\n161326,ship\n161327,truck\n161328,bird\n161329,airplane\n161330,airplane\n161331,automobile\n161332,truck\n161333,ship\n161334,bird\n161335,frog\n161336,bird\n161337,airplane\n161338,cat\n161339,airplane\n161340,bird\n161341,deer\n161342,ship\n161343,horse\n161344,airplane\n161345,ship\n161346,ship\n161347,dog\n161348,automobile\n161349,frog\n161350,horse\n161351,dog\n161352,horse\n161353,automobile\n161354,horse\n161355,deer\n161356,frog\n161357,frog\n161358,deer\n161359,airplane\n161360,horse\n161361,cat\n161362,ship\n161363,frog\n161364,automobile\n161365,deer\n161366,cat\n161367,cat\n161368,ship\n161369,cat\n161370,airplane\n161371,cat\n161372,frog\n161373,frog\n161374,deer\n161375,frog\n161376,horse\n161377,dog\n161378,airplane\n161379,deer\n161380,dog\n161381,bird\n161382,horse\n161383,frog\n161384,automobile\n161385,ship\n161386,bird\n161387,truck\n161388,truck\n161389,dog\n161390,airplane\n161391,bird\n161392,cat\n161393,automobile\n161394,deer\n161395,bird\n161396,horse\n161397,ship\n161398,truck\n161399,bird\n161400,ship\n161401,deer\n161402,cat\n161403,horse\n161404,dog\n161405,dog\n161406,airplane\n161407,deer\n161408,truck\n161409,deer\n161410,automobile\n161411,deer\n161412,horse\n161413,airplane\n161414,ship\n161415,cat\n161416,airplane\n161417,cat\n161418,horse\n161419,horse\n161420,cat\n161421,dog\n161422,truck\n161423,truck\n161424,dog\n161425,bird\n161426,ship\n161427,bird\n161428,airplane\n161429,truck\n161430,airplane\n161431,frog\n161432,frog\n161433,frog\n161434,ship\n161435,horse\n161436,frog\n161437,frog\n161438,horse\n161439,deer\n161440,ship\n161441,dog\n161442,truck\n161443,truck\n161444,truck\n161445,airplane\n161446,automobile\n161447,bird\n161448,deer\n161449,bird\n161450,frog\n161451,frog\n161452,airplane\n161453,ship\n161454,automobile\n161455,cat\n161456,airplane\n161457,dog\n161458,cat\n161459,deer\n161460,airplane\n161461,frog\n161462,ship\n161463,truck\n161464,bird\n161465,bird\n161466,frog\n161467,horse\n161468,deer\n161469,dog\n161470,bird\n161471,ship\n161472,truck\n161473,horse\n161474,airplane\n161475,automobile\n161476,deer\n161477,cat\n161478,frog\n161479,airplane\n161480,bird\n161481,horse\n161482,cat\n161483,deer\n161484,ship\n161485,deer\n161486,truck\n161487,airplane\n161488,automobile\n161489,cat\n161490,truck\n161491,truck\n161492,dog\n161493,horse\n161494,ship\n161495,frog\n161496,horse\n161497,deer\n161498,ship\n161499,ship\n161500,cat\n161501,truck\n161502,cat\n161503,truck\n161504,deer\n161505,bird\n161506,frog\n161507,cat\n161508,dog\n161509,cat\n161510,frog\n161511,frog\n161512,airplane\n161513,deer\n161514,deer\n161515,dog\n161516,bird\n161517,airplane\n161518,bird\n161519,horse\n161520,truck\n161521,cat\n161522,deer\n161523,dog\n161524,horse\n161525,truck\n161526,cat\n161527,ship\n161528,airplane\n161529,cat\n161530,automobile\n161531,truck\n161532,deer\n161533,cat\n161534,bird\n161535,deer\n161536,dog\n161537,frog\n161538,truck\n161539,truck\n161540,cat\n161541,cat\n161542,cat\n161543,cat\n161544,airplane\n161545,cat\n161546,dog\n161547,airplane\n161548,dog\n161549,cat\n161550,ship\n161551,deer\n161552,ship\n161553,frog\n161554,deer\n161555,deer\n161556,ship\n161557,truck\n161558,bird\n161559,dog\n161560,bird\n161561,horse\n161562,deer\n161563,deer\n161564,truck\n161565,truck\n161566,horse\n161567,dog\n161568,automobile\n161569,deer\n161570,frog\n161571,ship\n161572,ship\n161573,ship\n161574,automobile\n161575,dog\n161576,frog\n161577,horse\n161578,horse\n161579,bird\n161580,frog\n161581,truck\n161582,airplane\n161583,airplane\n161584,dog\n161585,dog\n161586,truck\n161587,bird\n161588,frog\n161589,deer\n161590,truck\n161591,bird\n161592,ship\n161593,cat\n161594,truck\n161595,truck\n161596,airplane\n161597,truck\n161598,bird\n161599,automobile\n161600,airplane\n161601,ship\n161602,horse\n161603,dog\n161604,deer\n161605,dog\n161606,deer\n161607,ship\n161608,ship\n161609,dog\n161610,bird\n161611,deer\n161612,frog\n161613,cat\n161614,truck\n161615,bird\n161616,cat\n161617,bird\n161618,ship\n161619,dog\n161620,frog\n161621,ship\n161622,deer\n161623,automobile\n161624,truck\n161625,dog\n161626,ship\n161627,bird\n161628,cat\n161629,ship\n161630,bird\n161631,bird\n161632,deer\n161633,cat\n161634,dog\n161635,frog\n161636,deer\n161637,frog\n161638,dog\n161639,ship\n161640,truck\n161641,frog\n161642,cat\n161643,cat\n161644,cat\n161645,dog\n161646,ship\n161647,horse\n161648,deer\n161649,frog\n161650,bird\n161651,ship\n161652,bird\n161653,truck\n161654,cat\n161655,dog\n161656,bird\n161657,airplane\n161658,horse\n161659,truck\n161660,deer\n161661,automobile\n161662,automobile\n161663,deer\n161664,truck\n161665,truck\n161666,airplane\n161667,deer\n161668,deer\n161669,truck\n161670,frog\n161671,dog\n161672,ship\n161673,deer\n161674,deer\n161675,ship\n161676,dog\n161677,airplane\n161678,horse\n161679,automobile\n161680,ship\n161681,cat\n161682,cat\n161683,truck\n161684,cat\n161685,frog\n161686,bird\n161687,truck\n161688,horse\n161689,airplane\n161690,cat\n161691,dog\n161692,automobile\n161693,dog\n161694,automobile\n161695,horse\n161696,automobile\n161697,frog\n161698,dog\n161699,truck\n161700,frog\n161701,dog\n161702,automobile\n161703,cat\n161704,dog\n161705,cat\n161706,horse\n161707,airplane\n161708,automobile\n161709,ship\n161710,dog\n161711,airplane\n161712,bird\n161713,deer\n161714,ship\n161715,automobile\n161716,truck\n161717,frog\n161718,bird\n161719,deer\n161720,horse\n161721,horse\n161722,airplane\n161723,deer\n161724,bird\n161725,horse\n161726,bird\n161727,cat\n161728,ship\n161729,truck\n161730,cat\n161731,airplane\n161732,cat\n161733,dog\n161734,ship\n161735,ship\n161736,frog\n161737,horse\n161738,automobile\n161739,cat\n161740,deer\n161741,horse\n161742,frog\n161743,bird\n161744,frog\n161745,horse\n161746,deer\n161747,ship\n161748,truck\n161749,bird\n161750,truck\n161751,frog\n161752,frog\n161753,bird\n161754,horse\n161755,deer\n161756,frog\n161757,truck\n161758,cat\n161759,automobile\n161760,ship\n161761,truck\n161762,automobile\n161763,frog\n161764,frog\n161765,deer\n161766,frog\n161767,deer\n161768,frog\n161769,automobile\n161770,automobile\n161771,automobile\n161772,frog\n161773,airplane\n161774,deer\n161775,bird\n161776,automobile\n161777,horse\n161778,cat\n161779,cat\n161780,deer\n161781,airplane\n161782,deer\n161783,ship\n161784,horse\n161785,ship\n161786,truck\n161787,dog\n161788,deer\n161789,automobile\n161790,cat\n161791,deer\n161792,airplane\n161793,ship\n161794,airplane\n161795,automobile\n161796,frog\n161797,airplane\n161798,dog\n161799,frog\n161800,ship\n161801,deer\n161802,deer\n161803,airplane\n161804,bird\n161805,frog\n161806,deer\n161807,frog\n161808,horse\n161809,dog\n161810,cat\n161811,truck\n161812,cat\n161813,frog\n161814,frog\n161815,ship\n161816,horse\n161817,automobile\n161818,cat\n161819,truck\n161820,automobile\n161821,airplane\n161822,frog\n161823,airplane\n161824,horse\n161825,dog\n161826,deer\n161827,deer\n161828,dog\n161829,horse\n161830,dog\n161831,dog\n161832,cat\n161833,ship\n161834,truck\n161835,cat\n161836,bird\n161837,horse\n161838,frog\n161839,frog\n161840,cat\n161841,ship\n161842,horse\n161843,deer\n161844,airplane\n161845,horse\n161846,horse\n161847,truck\n161848,deer\n161849,dog\n161850,airplane\n161851,airplane\n161852,deer\n161853,deer\n161854,cat\n161855,truck\n161856,horse\n161857,cat\n161858,automobile\n161859,deer\n161860,deer\n161861,airplane\n161862,ship\n161863,dog\n161864,airplane\n161865,airplane\n161866,frog\n161867,horse\n161868,airplane\n161869,truck\n161870,ship\n161871,dog\n161872,automobile\n161873,frog\n161874,bird\n161875,bird\n161876,truck\n161877,deer\n161878,frog\n161879,ship\n161880,frog\n161881,deer\n161882,frog\n161883,truck\n161884,deer\n161885,airplane\n161886,frog\n161887,horse\n161888,cat\n161889,airplane\n161890,frog\n161891,bird\n161892,deer\n161893,bird\n161894,deer\n161895,horse\n161896,frog\n161897,bird\n161898,truck\n161899,cat\n161900,ship\n161901,automobile\n161902,dog\n161903,automobile\n161904,cat\n161905,automobile\n161906,dog\n161907,bird\n161908,dog\n161909,deer\n161910,ship\n161911,truck\n161912,airplane\n161913,truck\n161914,truck\n161915,horse\n161916,frog\n161917,bird\n161918,bird\n161919,truck\n161920,frog\n161921,airplane\n161922,truck\n161923,automobile\n161924,deer\n161925,horse\n161926,ship\n161927,ship\n161928,bird\n161929,deer\n161930,automobile\n161931,deer\n161932,ship\n161933,bird\n161934,frog\n161935,truck\n161936,horse\n161937,automobile\n161938,frog\n161939,cat\n161940,bird\n161941,cat\n161942,automobile\n161943,airplane\n161944,horse\n161945,deer\n161946,truck\n161947,automobile\n161948,dog\n161949,dog\n161950,dog\n161951,dog\n161952,deer\n161953,cat\n161954,ship\n161955,frog\n161956,automobile\n161957,airplane\n161958,ship\n161959,frog\n161960,bird\n161961,truck\n161962,ship\n161963,truck\n161964,cat\n161965,bird\n161966,horse\n161967,cat\n161968,airplane\n161969,truck\n161970,frog\n161971,deer\n161972,deer\n161973,horse\n161974,deer\n161975,dog\n161976,cat\n161977,horse\n161978,horse\n161979,dog\n161980,cat\n161981,dog\n161982,cat\n161983,truck\n161984,deer\n161985,automobile\n161986,dog\n161987,deer\n161988,deer\n161989,dog\n161990,dog\n161991,truck\n161992,dog\n161993,truck\n161994,deer\n161995,airplane\n161996,deer\n161997,deer\n161998,automobile\n161999,bird\n162000,truck\n162001,ship\n162002,dog\n162003,deer\n162004,frog\n162005,truck\n162006,bird\n162007,cat\n162008,horse\n162009,ship\n162010,ship\n162011,cat\n162012,horse\n162013,horse\n162014,truck\n162015,dog\n162016,ship\n162017,deer\n162018,ship\n162019,ship\n162020,horse\n162021,bird\n162022,airplane\n162023,frog\n162024,truck\n162025,frog\n162026,airplane\n162027,ship\n162028,horse\n162029,airplane\n162030,dog\n162031,ship\n162032,cat\n162033,horse\n162034,bird\n162035,deer\n162036,horse\n162037,frog\n162038,airplane\n162039,deer\n162040,deer\n162041,deer\n162042,frog\n162043,dog\n162044,truck\n162045,horse\n162046,truck\n162047,cat\n162048,dog\n162049,ship\n162050,frog\n162051,dog\n162052,airplane\n162053,airplane\n162054,cat\n162055,deer\n162056,automobile\n162057,frog\n162058,airplane\n162059,truck\n162060,automobile\n162061,cat\n162062,cat\n162063,ship\n162064,frog\n162065,truck\n162066,bird\n162067,deer\n162068,horse\n162069,cat\n162070,airplane\n162071,ship\n162072,cat\n162073,deer\n162074,horse\n162075,frog\n162076,automobile\n162077,bird\n162078,bird\n162079,frog\n162080,airplane\n162081,ship\n162082,cat\n162083,deer\n162084,frog\n162085,cat\n162086,truck\n162087,deer\n162088,horse\n162089,deer\n162090,cat\n162091,horse\n162092,horse\n162093,truck\n162094,deer\n162095,automobile\n162096,truck\n162097,horse\n162098,dog\n162099,deer\n162100,bird\n162101,deer\n162102,frog\n162103,airplane\n162104,truck\n162105,frog\n162106,deer\n162107,frog\n162108,truck\n162109,bird\n162110,cat\n162111,horse\n162112,cat\n162113,dog\n162114,automobile\n162115,deer\n162116,airplane\n162117,bird\n162118,bird\n162119,deer\n162120,dog\n162121,automobile\n162122,bird\n162123,horse\n162124,deer\n162125,frog\n162126,airplane\n162127,cat\n162128,truck\n162129,automobile\n162130,airplane\n162131,airplane\n162132,deer\n162133,deer\n162134,truck\n162135,airplane\n162136,cat\n162137,horse\n162138,truck\n162139,frog\n162140,automobile\n162141,truck\n162142,frog\n162143,deer\n162144,cat\n162145,automobile\n162146,deer\n162147,airplane\n162148,airplane\n162149,truck\n162150,dog\n162151,ship\n162152,horse\n162153,frog\n162154,frog\n162155,airplane\n162156,truck\n162157,horse\n162158,ship\n162159,bird\n162160,deer\n162161,deer\n162162,deer\n162163,cat\n162164,deer\n162165,dog\n162166,dog\n162167,horse\n162168,dog\n162169,automobile\n162170,ship\n162171,dog\n162172,cat\n162173,ship\n162174,frog\n162175,cat\n162176,horse\n162177,automobile\n162178,truck\n162179,bird\n162180,cat\n162181,frog\n162182,dog\n162183,automobile\n162184,airplane\n162185,truck\n162186,frog\n162187,frog\n162188,frog\n162189,cat\n162190,horse\n162191,horse\n162192,deer\n162193,dog\n162194,ship\n162195,truck\n162196,ship\n162197,dog\n162198,bird\n162199,deer\n162200,dog\n162201,truck\n162202,ship\n162203,ship\n162204,truck\n162205,cat\n162206,ship\n162207,horse\n162208,bird\n162209,bird\n162210,dog\n162211,ship\n162212,ship\n162213,deer\n162214,truck\n162215,frog\n162216,automobile\n162217,bird\n162218,dog\n162219,dog\n162220,truck\n162221,cat\n162222,deer\n162223,cat\n162224,frog\n162225,deer\n162226,deer\n162227,deer\n162228,cat\n162229,horse\n162230,deer\n162231,truck\n162232,ship\n162233,truck\n162234,automobile\n162235,truck\n162236,frog\n162237,automobile\n162238,bird\n162239,frog\n162240,truck\n162241,cat\n162242,airplane\n162243,bird\n162244,horse\n162245,cat\n162246,ship\n162247,cat\n162248,automobile\n162249,ship\n162250,deer\n162251,horse\n162252,airplane\n162253,cat\n162254,horse\n162255,horse\n162256,frog\n162257,deer\n162258,cat\n162259,cat\n162260,dog\n162261,ship\n162262,cat\n162263,automobile\n162264,dog\n162265,truck\n162266,horse\n162267,cat\n162268,dog\n162269,truck\n162270,automobile\n162271,horse\n162272,deer\n162273,cat\n162274,bird\n162275,horse\n162276,deer\n162277,cat\n162278,cat\n162279,bird\n162280,cat\n162281,automobile\n162282,airplane\n162283,deer\n162284,cat\n162285,cat\n162286,cat\n162287,bird\n162288,airplane\n162289,ship\n162290,airplane\n162291,horse\n162292,cat\n162293,dog\n162294,deer\n162295,cat\n162296,frog\n162297,deer\n162298,bird\n162299,deer\n162300,airplane\n162301,ship\n162302,truck\n162303,ship\n162304,truck\n162305,ship\n162306,automobile\n162307,deer\n162308,frog\n162309,deer\n162310,frog\n162311,horse\n162312,horse\n162313,frog\n162314,horse\n162315,deer\n162316,frog\n162317,deer\n162318,cat\n162319,ship\n162320,deer\n162321,airplane\n162322,airplane\n162323,horse\n162324,truck\n162325,truck\n162326,dog\n162327,bird\n162328,cat\n162329,dog\n162330,frog\n162331,deer\n162332,deer\n162333,cat\n162334,cat\n162335,frog\n162336,frog\n162337,ship\n162338,ship\n162339,automobile\n162340,ship\n162341,truck\n162342,airplane\n162343,automobile\n162344,dog\n162345,bird\n162346,bird\n162347,deer\n162348,dog\n162349,bird\n162350,horse\n162351,bird\n162352,frog\n162353,deer\n162354,deer\n162355,deer\n162356,cat\n162357,horse\n162358,bird\n162359,ship\n162360,horse\n162361,deer\n162362,deer\n162363,deer\n162364,deer\n162365,bird\n162366,truck\n162367,deer\n162368,cat\n162369,truck\n162370,deer\n162371,horse\n162372,bird\n162373,cat\n162374,deer\n162375,dog\n162376,dog\n162377,cat\n162378,frog\n162379,bird\n162380,ship\n162381,frog\n162382,cat\n162383,cat\n162384,ship\n162385,dog\n162386,ship\n162387,cat\n162388,frog\n162389,automobile\n162390,cat\n162391,dog\n162392,horse\n162393,bird\n162394,bird\n162395,truck\n162396,deer\n162397,ship\n162398,deer\n162399,horse\n162400,airplane\n162401,ship\n162402,truck\n162403,deer\n162404,airplane\n162405,truck\n162406,frog\n162407,deer\n162408,frog\n162409,frog\n162410,automobile\n162411,horse\n162412,ship\n162413,dog\n162414,horse\n162415,bird\n162416,airplane\n162417,bird\n162418,dog\n162419,deer\n162420,frog\n162421,bird\n162422,horse\n162423,frog\n162424,deer\n162425,deer\n162426,cat\n162427,deer\n162428,airplane\n162429,horse\n162430,dog\n162431,deer\n162432,deer\n162433,ship\n162434,dog\n162435,airplane\n162436,frog\n162437,frog\n162438,ship\n162439,horse\n162440,frog\n162441,cat\n162442,deer\n162443,frog\n162444,cat\n162445,airplane\n162446,frog\n162447,deer\n162448,truck\n162449,frog\n162450,automobile\n162451,airplane\n162452,horse\n162453,dog\n162454,airplane\n162455,horse\n162456,truck\n162457,horse\n162458,cat\n162459,frog\n162460,ship\n162461,bird\n162462,deer\n162463,truck\n162464,ship\n162465,truck\n162466,frog\n162467,deer\n162468,horse\n162469,deer\n162470,truck\n162471,cat\n162472,automobile\n162473,deer\n162474,dog\n162475,frog\n162476,truck\n162477,ship\n162478,bird\n162479,deer\n162480,deer\n162481,dog\n162482,dog\n162483,dog\n162484,automobile\n162485,truck\n162486,bird\n162487,cat\n162488,ship\n162489,horse\n162490,airplane\n162491,frog\n162492,ship\n162493,dog\n162494,deer\n162495,deer\n162496,deer\n162497,bird\n162498,deer\n162499,frog\n162500,ship\n162501,frog\n162502,cat\n162503,ship\n162504,airplane\n162505,deer\n162506,frog\n162507,ship\n162508,cat\n162509,frog\n162510,dog\n162511,frog\n162512,ship\n162513,dog\n162514,deer\n162515,ship\n162516,deer\n162517,truck\n162518,ship\n162519,cat\n162520,deer\n162521,horse\n162522,ship\n162523,automobile\n162524,frog\n162525,horse\n162526,frog\n162527,truck\n162528,bird\n162529,ship\n162530,bird\n162531,deer\n162532,cat\n162533,truck\n162534,frog\n162535,deer\n162536,automobile\n162537,airplane\n162538,automobile\n162539,truck\n162540,deer\n162541,dog\n162542,horse\n162543,horse\n162544,dog\n162545,dog\n162546,truck\n162547,deer\n162548,cat\n162549,dog\n162550,airplane\n162551,frog\n162552,truck\n162553,truck\n162554,ship\n162555,cat\n162556,dog\n162557,deer\n162558,truck\n162559,frog\n162560,cat\n162561,cat\n162562,deer\n162563,ship\n162564,deer\n162565,frog\n162566,airplane\n162567,frog\n162568,truck\n162569,ship\n162570,airplane\n162571,cat\n162572,truck\n162573,dog\n162574,automobile\n162575,automobile\n162576,cat\n162577,dog\n162578,ship\n162579,cat\n162580,bird\n162581,deer\n162582,dog\n162583,deer\n162584,dog\n162585,deer\n162586,dog\n162587,cat\n162588,bird\n162589,automobile\n162590,horse\n162591,dog\n162592,horse\n162593,truck\n162594,airplane\n162595,cat\n162596,horse\n162597,airplane\n162598,horse\n162599,truck\n162600,cat\n162601,truck\n162602,bird\n162603,dog\n162604,truck\n162605,bird\n162606,truck\n162607,bird\n162608,dog\n162609,truck\n162610,truck\n162611,deer\n162612,frog\n162613,ship\n162614,frog\n162615,deer\n162616,frog\n162617,bird\n162618,deer\n162619,airplane\n162620,ship\n162621,dog\n162622,ship\n162623,cat\n162624,ship\n162625,cat\n162626,truck\n162627,dog\n162628,horse\n162629,deer\n162630,ship\n162631,bird\n162632,horse\n162633,frog\n162634,bird\n162635,deer\n162636,cat\n162637,truck\n162638,bird\n162639,ship\n162640,bird\n162641,deer\n162642,ship\n162643,airplane\n162644,bird\n162645,truck\n162646,cat\n162647,dog\n162648,deer\n162649,frog\n162650,frog\n162651,bird\n162652,automobile\n162653,dog\n162654,cat\n162655,ship\n162656,deer\n162657,frog\n162658,bird\n162659,deer\n162660,ship\n162661,cat\n162662,deer\n162663,truck\n162664,truck\n162665,horse\n162666,deer\n162667,cat\n162668,horse\n162669,truck\n162670,automobile\n162671,deer\n162672,cat\n162673,automobile\n162674,deer\n162675,cat\n162676,cat\n162677,cat\n162678,frog\n162679,frog\n162680,airplane\n162681,horse\n162682,airplane\n162683,cat\n162684,bird\n162685,automobile\n162686,automobile\n162687,deer\n162688,horse\n162689,deer\n162690,horse\n162691,dog\n162692,bird\n162693,cat\n162694,ship\n162695,deer\n162696,automobile\n162697,dog\n162698,cat\n162699,cat\n162700,horse\n162701,frog\n162702,ship\n162703,frog\n162704,ship\n162705,frog\n162706,bird\n162707,ship\n162708,cat\n162709,airplane\n162710,ship\n162711,ship\n162712,deer\n162713,dog\n162714,frog\n162715,truck\n162716,deer\n162717,ship\n162718,bird\n162719,deer\n162720,cat\n162721,bird\n162722,truck\n162723,dog\n162724,dog\n162725,frog\n162726,horse\n162727,frog\n162728,automobile\n162729,truck\n162730,frog\n162731,dog\n162732,deer\n162733,cat\n162734,deer\n162735,truck\n162736,truck\n162737,automobile\n162738,truck\n162739,horse\n162740,truck\n162741,frog\n162742,horse\n162743,bird\n162744,frog\n162745,dog\n162746,truck\n162747,dog\n162748,horse\n162749,horse\n162750,deer\n162751,horse\n162752,frog\n162753,deer\n162754,dog\n162755,dog\n162756,frog\n162757,deer\n162758,horse\n162759,truck\n162760,ship\n162761,airplane\n162762,deer\n162763,airplane\n162764,truck\n162765,frog\n162766,horse\n162767,automobile\n162768,truck\n162769,deer\n162770,cat\n162771,horse\n162772,deer\n162773,horse\n162774,bird\n162775,cat\n162776,bird\n162777,horse\n162778,automobile\n162779,horse\n162780,horse\n162781,truck\n162782,bird\n162783,deer\n162784,truck\n162785,horse\n162786,cat\n162787,truck\n162788,airplane\n162789,deer\n162790,bird\n162791,airplane\n162792,horse\n162793,deer\n162794,deer\n162795,automobile\n162796,ship\n162797,truck\n162798,deer\n162799,cat\n162800,cat\n162801,dog\n162802,cat\n162803,deer\n162804,dog\n162805,truck\n162806,frog\n162807,deer\n162808,horse\n162809,deer\n162810,horse\n162811,deer\n162812,cat\n162813,automobile\n162814,airplane\n162815,ship\n162816,truck\n162817,cat\n162818,automobile\n162819,deer\n162820,automobile\n162821,bird\n162822,dog\n162823,frog\n162824,frog\n162825,frog\n162826,truck\n162827,horse\n162828,truck\n162829,ship\n162830,deer\n162831,bird\n162832,bird\n162833,frog\n162834,truck\n162835,frog\n162836,automobile\n162837,dog\n162838,frog\n162839,horse\n162840,truck\n162841,dog\n162842,truck\n162843,deer\n162844,automobile\n162845,cat\n162846,automobile\n162847,frog\n162848,cat\n162849,bird\n162850,cat\n162851,horse\n162852,truck\n162853,ship\n162854,dog\n162855,ship\n162856,horse\n162857,truck\n162858,dog\n162859,truck\n162860,airplane\n162861,cat\n162862,automobile\n162863,cat\n162864,frog\n162865,bird\n162866,ship\n162867,frog\n162868,deer\n162869,horse\n162870,horse\n162871,deer\n162872,deer\n162873,cat\n162874,truck\n162875,automobile\n162876,dog\n162877,truck\n162878,frog\n162879,deer\n162880,truck\n162881,bird\n162882,bird\n162883,horse\n162884,bird\n162885,horse\n162886,horse\n162887,airplane\n162888,automobile\n162889,airplane\n162890,bird\n162891,horse\n162892,airplane\n162893,bird\n162894,bird\n162895,ship\n162896,ship\n162897,bird\n162898,ship\n162899,bird\n162900,automobile\n162901,horse\n162902,dog\n162903,cat\n162904,automobile\n162905,cat\n162906,ship\n162907,horse\n162908,horse\n162909,truck\n162910,horse\n162911,frog\n162912,frog\n162913,dog\n162914,horse\n162915,bird\n162916,airplane\n162917,cat\n162918,truck\n162919,deer\n162920,dog\n162921,bird\n162922,frog\n162923,ship\n162924,frog\n162925,cat\n162926,airplane\n162927,horse\n162928,ship\n162929,frog\n162930,airplane\n162931,frog\n162932,dog\n162933,deer\n162934,automobile\n162935,frog\n162936,frog\n162937,dog\n162938,cat\n162939,automobile\n162940,dog\n162941,deer\n162942,horse\n162943,frog\n162944,frog\n162945,horse\n162946,deer\n162947,cat\n162948,deer\n162949,automobile\n162950,automobile\n162951,frog\n162952,horse\n162953,deer\n162954,deer\n162955,deer\n162956,cat\n162957,deer\n162958,airplane\n162959,automobile\n162960,bird\n162961,dog\n162962,airplane\n162963,deer\n162964,horse\n162965,bird\n162966,dog\n162967,frog\n162968,cat\n162969,airplane\n162970,dog\n162971,deer\n162972,bird\n162973,frog\n162974,automobile\n162975,automobile\n162976,ship\n162977,ship\n162978,deer\n162979,cat\n162980,horse\n162981,ship\n162982,frog\n162983,bird\n162984,deer\n162985,truck\n162986,airplane\n162987,deer\n162988,frog\n162989,truck\n162990,cat\n162991,cat\n162992,bird\n162993,dog\n162994,frog\n162995,bird\n162996,cat\n162997,dog\n162998,cat\n162999,bird\n163000,truck\n163001,truck\n163002,deer\n163003,dog\n163004,cat\n163005,cat\n163006,cat\n163007,dog\n163008,frog\n163009,dog\n163010,cat\n163011,horse\n163012,frog\n163013,airplane\n163014,horse\n163015,horse\n163016,airplane\n163017,horse\n163018,dog\n163019,horse\n163020,cat\n163021,automobile\n163022,frog\n163023,dog\n163024,horse\n163025,bird\n163026,airplane\n163027,airplane\n163028,deer\n163029,horse\n163030,truck\n163031,airplane\n163032,dog\n163033,frog\n163034,bird\n163035,truck\n163036,cat\n163037,deer\n163038,frog\n163039,bird\n163040,dog\n163041,dog\n163042,cat\n163043,airplane\n163044,dog\n163045,cat\n163046,airplane\n163047,truck\n163048,ship\n163049,bird\n163050,cat\n163051,dog\n163052,bird\n163053,deer\n163054,airplane\n163055,deer\n163056,airplane\n163057,deer\n163058,deer\n163059,truck\n163060,horse\n163061,cat\n163062,frog\n163063,airplane\n163064,deer\n163065,deer\n163066,cat\n163067,truck\n163068,bird\n163069,dog\n163070,deer\n163071,truck\n163072,bird\n163073,airplane\n163074,automobile\n163075,deer\n163076,ship\n163077,deer\n163078,dog\n163079,bird\n163080,dog\n163081,bird\n163082,horse\n163083,frog\n163084,deer\n163085,dog\n163086,cat\n163087,automobile\n163088,bird\n163089,cat\n163090,cat\n163091,dog\n163092,truck\n163093,dog\n163094,cat\n163095,cat\n163096,bird\n163097,dog\n163098,dog\n163099,truck\n163100,horse\n163101,bird\n163102,bird\n163103,automobile\n163104,airplane\n163105,automobile\n163106,horse\n163107,dog\n163108,automobile\n163109,automobile\n163110,horse\n163111,cat\n163112,cat\n163113,truck\n163114,cat\n163115,automobile\n163116,cat\n163117,ship\n163118,bird\n163119,cat\n163120,frog\n163121,cat\n163122,airplane\n163123,dog\n163124,bird\n163125,bird\n163126,cat\n163127,airplane\n163128,airplane\n163129,cat\n163130,horse\n163131,cat\n163132,frog\n163133,deer\n163134,dog\n163135,bird\n163136,deer\n163137,deer\n163138,frog\n163139,cat\n163140,cat\n163141,frog\n163142,cat\n163143,automobile\n163144,bird\n163145,cat\n163146,horse\n163147,frog\n163148,cat\n163149,truck\n163150,horse\n163151,cat\n163152,bird\n163153,cat\n163154,horse\n163155,bird\n163156,truck\n163157,deer\n163158,horse\n163159,frog\n163160,deer\n163161,horse\n163162,deer\n163163,ship\n163164,frog\n163165,dog\n163166,horse\n163167,deer\n163168,automobile\n163169,deer\n163170,dog\n163171,truck\n163172,frog\n163173,airplane\n163174,frog\n163175,horse\n163176,truck\n163177,dog\n163178,frog\n163179,truck\n163180,automobile\n163181,bird\n163182,ship\n163183,frog\n163184,truck\n163185,cat\n163186,deer\n163187,automobile\n163188,truck\n163189,bird\n163190,cat\n163191,truck\n163192,airplane\n163193,dog\n163194,cat\n163195,dog\n163196,automobile\n163197,dog\n163198,deer\n163199,deer\n163200,bird\n163201,cat\n163202,deer\n163203,frog\n163204,dog\n163205,dog\n163206,dog\n163207,cat\n163208,dog\n163209,deer\n163210,deer\n163211,frog\n163212,horse\n163213,horse\n163214,frog\n163215,bird\n163216,cat\n163217,frog\n163218,airplane\n163219,airplane\n163220,airplane\n163221,cat\n163222,deer\n163223,frog\n163224,frog\n163225,bird\n163226,deer\n163227,dog\n163228,cat\n163229,automobile\n163230,horse\n163231,ship\n163232,deer\n163233,truck\n163234,bird\n163235,bird\n163236,cat\n163237,deer\n163238,cat\n163239,airplane\n163240,deer\n163241,deer\n163242,ship\n163243,automobile\n163244,deer\n163245,horse\n163246,horse\n163247,deer\n163248,bird\n163249,automobile\n163250,bird\n163251,frog\n163252,truck\n163253,cat\n163254,deer\n163255,horse\n163256,dog\n163257,truck\n163258,deer\n163259,deer\n163260,frog\n163261,cat\n163262,truck\n163263,cat\n163264,frog\n163265,cat\n163266,truck\n163267,automobile\n163268,cat\n163269,airplane\n163270,bird\n163271,cat\n163272,airplane\n163273,truck\n163274,cat\n163275,deer\n163276,bird\n163277,truck\n163278,cat\n163279,cat\n163280,deer\n163281,horse\n163282,cat\n163283,cat\n163284,ship\n163285,automobile\n163286,frog\n163287,frog\n163288,horse\n163289,horse\n163290,deer\n163291,deer\n163292,horse\n163293,cat\n163294,deer\n163295,cat\n163296,frog\n163297,dog\n163298,horse\n163299,dog\n163300,bird\n163301,frog\n163302,frog\n163303,deer\n163304,deer\n163305,deer\n163306,horse\n163307,ship\n163308,bird\n163309,truck\n163310,cat\n163311,dog\n163312,deer\n163313,deer\n163314,ship\n163315,deer\n163316,dog\n163317,airplane\n163318,dog\n163319,automobile\n163320,deer\n163321,automobile\n163322,horse\n163323,frog\n163324,deer\n163325,ship\n163326,cat\n163327,airplane\n163328,cat\n163329,dog\n163330,horse\n163331,cat\n163332,airplane\n163333,airplane\n163334,ship\n163335,bird\n163336,deer\n163337,truck\n163338,airplane\n163339,frog\n163340,cat\n163341,cat\n163342,cat\n163343,airplane\n163344,automobile\n163345,bird\n163346,ship\n163347,truck\n163348,frog\n163349,ship\n163350,automobile\n163351,deer\n163352,horse\n163353,automobile\n163354,deer\n163355,dog\n163356,frog\n163357,airplane\n163358,deer\n163359,frog\n163360,horse\n163361,deer\n163362,frog\n163363,bird\n163364,deer\n163365,truck\n163366,bird\n163367,cat\n163368,cat\n163369,airplane\n163370,frog\n163371,frog\n163372,automobile\n163373,airplane\n163374,bird\n163375,cat\n163376,automobile\n163377,automobile\n163378,frog\n163379,automobile\n163380,frog\n163381,frog\n163382,deer\n163383,airplane\n163384,airplane\n163385,deer\n163386,horse\n163387,deer\n163388,dog\n163389,truck\n163390,ship\n163391,deer\n163392,horse\n163393,bird\n163394,deer\n163395,airplane\n163396,ship\n163397,airplane\n163398,automobile\n163399,horse\n163400,bird\n163401,ship\n163402,deer\n163403,airplane\n163404,horse\n163405,frog\n163406,cat\n163407,ship\n163408,frog\n163409,bird\n163410,horse\n163411,deer\n163412,frog\n163413,horse\n163414,ship\n163415,ship\n163416,cat\n163417,automobile\n163418,horse\n163419,bird\n163420,frog\n163421,truck\n163422,cat\n163423,airplane\n163424,cat\n163425,cat\n163426,automobile\n163427,deer\n163428,cat\n163429,bird\n163430,bird\n163431,deer\n163432,ship\n163433,airplane\n163434,horse\n163435,airplane\n163436,deer\n163437,cat\n163438,airplane\n163439,truck\n163440,airplane\n163441,cat\n163442,cat\n163443,dog\n163444,automobile\n163445,frog\n163446,frog\n163447,horse\n163448,deer\n163449,airplane\n163450,frog\n163451,ship\n163452,horse\n163453,deer\n163454,frog\n163455,ship\n163456,airplane\n163457,horse\n163458,bird\n163459,truck\n163460,dog\n163461,deer\n163462,airplane\n163463,bird\n163464,cat\n163465,truck\n163466,bird\n163467,dog\n163468,frog\n163469,dog\n163470,frog\n163471,horse\n163472,automobile\n163473,frog\n163474,frog\n163475,truck\n163476,cat\n163477,horse\n163478,deer\n163479,deer\n163480,automobile\n163481,horse\n163482,deer\n163483,ship\n163484,dog\n163485,cat\n163486,dog\n163487,frog\n163488,deer\n163489,airplane\n163490,deer\n163491,deer\n163492,automobile\n163493,airplane\n163494,bird\n163495,frog\n163496,dog\n163497,bird\n163498,cat\n163499,airplane\n163500,truck\n163501,dog\n163502,cat\n163503,airplane\n163504,bird\n163505,bird\n163506,ship\n163507,ship\n163508,automobile\n163509,deer\n163510,ship\n163511,cat\n163512,truck\n163513,frog\n163514,deer\n163515,horse\n163516,horse\n163517,horse\n163518,deer\n163519,ship\n163520,automobile\n163521,deer\n163522,cat\n163523,automobile\n163524,airplane\n163525,truck\n163526,cat\n163527,airplane\n163528,deer\n163529,cat\n163530,airplane\n163531,bird\n163532,cat\n163533,automobile\n163534,deer\n163535,airplane\n163536,deer\n163537,frog\n163538,horse\n163539,deer\n163540,dog\n163541,dog\n163542,automobile\n163543,truck\n163544,cat\n163545,truck\n163546,cat\n163547,airplane\n163548,deer\n163549,frog\n163550,airplane\n163551,bird\n163552,deer\n163553,frog\n163554,frog\n163555,horse\n163556,truck\n163557,deer\n163558,cat\n163559,dog\n163560,frog\n163561,dog\n163562,ship\n163563,frog\n163564,ship\n163565,truck\n163566,cat\n163567,airplane\n163568,frog\n163569,dog\n163570,frog\n163571,truck\n163572,cat\n163573,airplane\n163574,ship\n163575,horse\n163576,truck\n163577,dog\n163578,truck\n163579,horse\n163580,automobile\n163581,automobile\n163582,bird\n163583,deer\n163584,bird\n163585,automobile\n163586,deer\n163587,deer\n163588,cat\n163589,ship\n163590,dog\n163591,cat\n163592,dog\n163593,automobile\n163594,horse\n163595,ship\n163596,cat\n163597,cat\n163598,truck\n163599,ship\n163600,cat\n163601,truck\n163602,bird\n163603,dog\n163604,automobile\n163605,automobile\n163606,cat\n163607,bird\n163608,cat\n163609,truck\n163610,truck\n163611,horse\n163612,truck\n163613,truck\n163614,dog\n163615,airplane\n163616,dog\n163617,frog\n163618,bird\n163619,cat\n163620,ship\n163621,frog\n163622,horse\n163623,ship\n163624,bird\n163625,deer\n163626,frog\n163627,cat\n163628,deer\n163629,ship\n163630,deer\n163631,dog\n163632,horse\n163633,deer\n163634,frog\n163635,deer\n163636,dog\n163637,cat\n163638,cat\n163639,truck\n163640,automobile\n163641,frog\n163642,deer\n163643,deer\n163644,ship\n163645,deer\n163646,cat\n163647,bird\n163648,cat\n163649,bird\n163650,frog\n163651,dog\n163652,horse\n163653,automobile\n163654,ship\n163655,cat\n163656,bird\n163657,cat\n163658,ship\n163659,bird\n163660,truck\n163661,cat\n163662,automobile\n163663,truck\n163664,frog\n163665,airplane\n163666,frog\n163667,automobile\n163668,horse\n163669,automobile\n163670,frog\n163671,horse\n163672,dog\n163673,automobile\n163674,deer\n163675,bird\n163676,ship\n163677,horse\n163678,truck\n163679,horse\n163680,frog\n163681,cat\n163682,dog\n163683,deer\n163684,dog\n163685,automobile\n163686,truck\n163687,frog\n163688,dog\n163689,bird\n163690,truck\n163691,horse\n163692,ship\n163693,bird\n163694,horse\n163695,horse\n163696,frog\n163697,airplane\n163698,automobile\n163699,horse\n163700,cat\n163701,cat\n163702,deer\n163703,airplane\n163704,automobile\n163705,dog\n163706,airplane\n163707,cat\n163708,deer\n163709,horse\n163710,dog\n163711,airplane\n163712,bird\n163713,cat\n163714,deer\n163715,ship\n163716,ship\n163717,automobile\n163718,deer\n163719,dog\n163720,airplane\n163721,airplane\n163722,deer\n163723,ship\n163724,dog\n163725,deer\n163726,deer\n163727,cat\n163728,airplane\n163729,truck\n163730,bird\n163731,truck\n163732,automobile\n163733,airplane\n163734,deer\n163735,bird\n163736,cat\n163737,dog\n163738,frog\n163739,bird\n163740,dog\n163741,airplane\n163742,airplane\n163743,ship\n163744,automobile\n163745,deer\n163746,frog\n163747,deer\n163748,ship\n163749,frog\n163750,deer\n163751,dog\n163752,deer\n163753,truck\n163754,frog\n163755,ship\n163756,horse\n163757,horse\n163758,bird\n163759,truck\n163760,frog\n163761,bird\n163762,ship\n163763,ship\n163764,airplane\n163765,airplane\n163766,truck\n163767,automobile\n163768,cat\n163769,dog\n163770,deer\n163771,deer\n163772,cat\n163773,ship\n163774,frog\n163775,cat\n163776,frog\n163777,frog\n163778,truck\n163779,bird\n163780,airplane\n163781,horse\n163782,ship\n163783,frog\n163784,truck\n163785,horse\n163786,ship\n163787,airplane\n163788,horse\n163789,ship\n163790,truck\n163791,deer\n163792,cat\n163793,airplane\n163794,deer\n163795,frog\n163796,ship\n163797,truck\n163798,airplane\n163799,deer\n163800,cat\n163801,bird\n163802,automobile\n163803,truck\n163804,automobile\n163805,dog\n163806,automobile\n163807,horse\n163808,deer\n163809,dog\n163810,deer\n163811,dog\n163812,frog\n163813,frog\n163814,cat\n163815,cat\n163816,horse\n163817,frog\n163818,bird\n163819,deer\n163820,deer\n163821,frog\n163822,horse\n163823,ship\n163824,bird\n163825,automobile\n163826,dog\n163827,automobile\n163828,deer\n163829,frog\n163830,automobile\n163831,dog\n163832,frog\n163833,automobile\n163834,dog\n163835,frog\n163836,automobile\n163837,frog\n163838,truck\n163839,airplane\n163840,ship\n163841,dog\n163842,dog\n163843,automobile\n163844,truck\n163845,frog\n163846,truck\n163847,ship\n163848,cat\n163849,truck\n163850,truck\n163851,deer\n163852,bird\n163853,ship\n163854,cat\n163855,ship\n163856,horse\n163857,frog\n163858,dog\n163859,airplane\n163860,airplane\n163861,cat\n163862,deer\n163863,airplane\n163864,ship\n163865,truck\n163866,bird\n163867,automobile\n163868,ship\n163869,cat\n163870,ship\n163871,bird\n163872,dog\n163873,frog\n163874,bird\n163875,bird\n163876,cat\n163877,ship\n163878,horse\n163879,cat\n163880,airplane\n163881,airplane\n163882,truck\n163883,deer\n163884,cat\n163885,deer\n163886,truck\n163887,dog\n163888,frog\n163889,airplane\n163890,bird\n163891,dog\n163892,airplane\n163893,horse\n163894,truck\n163895,dog\n163896,deer\n163897,dog\n163898,dog\n163899,frog\n163900,truck\n163901,frog\n163902,cat\n163903,deer\n163904,ship\n163905,dog\n163906,truck\n163907,deer\n163908,truck\n163909,deer\n163910,horse\n163911,deer\n163912,automobile\n163913,frog\n163914,truck\n163915,truck\n163916,automobile\n163917,deer\n163918,airplane\n163919,dog\n163920,frog\n163921,airplane\n163922,cat\n163923,cat\n163924,truck\n163925,airplane\n163926,frog\n163927,truck\n163928,horse\n163929,cat\n163930,ship\n163931,ship\n163932,horse\n163933,deer\n163934,dog\n163935,cat\n163936,cat\n163937,horse\n163938,airplane\n163939,cat\n163940,cat\n163941,ship\n163942,automobile\n163943,horse\n163944,frog\n163945,bird\n163946,dog\n163947,cat\n163948,cat\n163949,automobile\n163950,frog\n163951,automobile\n163952,deer\n163953,airplane\n163954,dog\n163955,dog\n163956,bird\n163957,deer\n163958,airplane\n163959,ship\n163960,horse\n163961,automobile\n163962,horse\n163963,frog\n163964,automobile\n163965,horse\n163966,horse\n163967,horse\n163968,automobile\n163969,horse\n163970,frog\n163971,automobile\n163972,frog\n163973,ship\n163974,cat\n163975,ship\n163976,truck\n163977,airplane\n163978,bird\n163979,frog\n163980,ship\n163981,airplane\n163982,truck\n163983,frog\n163984,horse\n163985,deer\n163986,airplane\n163987,horse\n163988,ship\n163989,bird\n163990,deer\n163991,dog\n163992,deer\n163993,bird\n163994,cat\n163995,deer\n163996,horse\n163997,deer\n163998,truck\n163999,frog\n164000,deer\n164001,bird\n164002,bird\n164003,cat\n164004,bird\n164005,automobile\n164006,automobile\n164007,cat\n164008,dog\n164009,frog\n164010,ship\n164011,ship\n164012,horse\n164013,ship\n164014,cat\n164015,horse\n164016,deer\n164017,frog\n164018,deer\n164019,bird\n164020,dog\n164021,cat\n164022,dog\n164023,truck\n164024,cat\n164025,dog\n164026,ship\n164027,horse\n164028,bird\n164029,horse\n164030,dog\n164031,truck\n164032,airplane\n164033,automobile\n164034,ship\n164035,automobile\n164036,deer\n164037,automobile\n164038,airplane\n164039,bird\n164040,cat\n164041,ship\n164042,cat\n164043,airplane\n164044,truck\n164045,airplane\n164046,bird\n164047,airplane\n164048,cat\n164049,frog\n164050,horse\n164051,horse\n164052,deer\n164053,truck\n164054,deer\n164055,truck\n164056,horse\n164057,airplane\n164058,automobile\n164059,airplane\n164060,deer\n164061,bird\n164062,deer\n164063,ship\n164064,truck\n164065,deer\n164066,deer\n164067,automobile\n164068,cat\n164069,frog\n164070,horse\n164071,horse\n164072,bird\n164073,cat\n164074,deer\n164075,airplane\n164076,truck\n164077,truck\n164078,dog\n164079,frog\n164080,frog\n164081,airplane\n164082,deer\n164083,dog\n164084,bird\n164085,automobile\n164086,frog\n164087,automobile\n164088,truck\n164089,cat\n164090,horse\n164091,truck\n164092,frog\n164093,frog\n164094,deer\n164095,frog\n164096,truck\n164097,dog\n164098,cat\n164099,cat\n164100,bird\n164101,dog\n164102,airplane\n164103,dog\n164104,frog\n164105,truck\n164106,dog\n164107,horse\n164108,truck\n164109,deer\n164110,cat\n164111,dog\n164112,horse\n164113,deer\n164114,truck\n164115,horse\n164116,horse\n164117,truck\n164118,bird\n164119,horse\n164120,frog\n164121,dog\n164122,horse\n164123,cat\n164124,truck\n164125,truck\n164126,frog\n164127,airplane\n164128,horse\n164129,deer\n164130,dog\n164131,cat\n164132,automobile\n164133,truck\n164134,bird\n164135,ship\n164136,frog\n164137,deer\n164138,ship\n164139,ship\n164140,bird\n164141,cat\n164142,ship\n164143,truck\n164144,frog\n164145,airplane\n164146,dog\n164147,bird\n164148,truck\n164149,cat\n164150,frog\n164151,airplane\n164152,airplane\n164153,bird\n164154,deer\n164155,cat\n164156,deer\n164157,deer\n164158,deer\n164159,automobile\n164160,horse\n164161,deer\n164162,deer\n164163,dog\n164164,bird\n164165,dog\n164166,bird\n164167,airplane\n164168,cat\n164169,bird\n164170,ship\n164171,dog\n164172,deer\n164173,airplane\n164174,frog\n164175,dog\n164176,ship\n164177,deer\n164178,cat\n164179,cat\n164180,automobile\n164181,frog\n164182,dog\n164183,dog\n164184,truck\n164185,airplane\n164186,airplane\n164187,truck\n164188,bird\n164189,airplane\n164190,bird\n164191,ship\n164192,dog\n164193,automobile\n164194,deer\n164195,dog\n164196,dog\n164197,dog\n164198,cat\n164199,cat\n164200,horse\n164201,cat\n164202,cat\n164203,horse\n164204,deer\n164205,deer\n164206,frog\n164207,deer\n164208,automobile\n164209,deer\n164210,truck\n164211,deer\n164212,horse\n164213,horse\n164214,truck\n164215,airplane\n164216,deer\n164217,airplane\n164218,deer\n164219,ship\n164220,ship\n164221,deer\n164222,truck\n164223,truck\n164224,deer\n164225,ship\n164226,deer\n164227,deer\n164228,horse\n164229,frog\n164230,bird\n164231,dog\n164232,automobile\n164233,deer\n164234,truck\n164235,dog\n164236,deer\n164237,cat\n164238,truck\n164239,cat\n164240,frog\n164241,cat\n164242,ship\n164243,cat\n164244,truck\n164245,automobile\n164246,frog\n164247,frog\n164248,ship\n164249,cat\n164250,cat\n164251,bird\n164252,dog\n164253,deer\n164254,ship\n164255,frog\n164256,dog\n164257,cat\n164258,automobile\n164259,truck\n164260,horse\n164261,frog\n164262,truck\n164263,airplane\n164264,deer\n164265,deer\n164266,truck\n164267,horse\n164268,truck\n164269,bird\n164270,deer\n164271,horse\n164272,deer\n164273,deer\n164274,horse\n164275,automobile\n164276,dog\n164277,truck\n164278,frog\n164279,truck\n164280,horse\n164281,deer\n164282,airplane\n164283,frog\n164284,airplane\n164285,automobile\n164286,cat\n164287,airplane\n164288,bird\n164289,deer\n164290,cat\n164291,horse\n164292,dog\n164293,frog\n164294,frog\n164295,frog\n164296,airplane\n164297,frog\n164298,frog\n164299,deer\n164300,truck\n164301,frog\n164302,bird\n164303,bird\n164304,truck\n164305,cat\n164306,deer\n164307,automobile\n164308,dog\n164309,truck\n164310,airplane\n164311,ship\n164312,horse\n164313,frog\n164314,cat\n164315,deer\n164316,cat\n164317,dog\n164318,deer\n164319,cat\n164320,cat\n164321,ship\n164322,airplane\n164323,airplane\n164324,horse\n164325,horse\n164326,horse\n164327,frog\n164328,cat\n164329,truck\n164330,frog\n164331,automobile\n164332,truck\n164333,bird\n164334,frog\n164335,bird\n164336,horse\n164337,ship\n164338,airplane\n164339,automobile\n164340,horse\n164341,horse\n164342,horse\n164343,cat\n164344,horse\n164345,deer\n164346,dog\n164347,deer\n164348,horse\n164349,bird\n164350,deer\n164351,bird\n164352,cat\n164353,ship\n164354,cat\n164355,horse\n164356,dog\n164357,truck\n164358,cat\n164359,airplane\n164360,deer\n164361,truck\n164362,bird\n164363,airplane\n164364,truck\n164365,cat\n164366,deer\n164367,ship\n164368,truck\n164369,bird\n164370,ship\n164371,dog\n164372,horse\n164373,bird\n164374,ship\n164375,cat\n164376,automobile\n164377,truck\n164378,cat\n164379,frog\n164380,cat\n164381,horse\n164382,deer\n164383,airplane\n164384,bird\n164385,ship\n164386,bird\n164387,cat\n164388,ship\n164389,automobile\n164390,dog\n164391,airplane\n164392,deer\n164393,horse\n164394,ship\n164395,dog\n164396,bird\n164397,deer\n164398,airplane\n164399,truck\n164400,truck\n164401,truck\n164402,airplane\n164403,dog\n164404,airplane\n164405,truck\n164406,cat\n164407,deer\n164408,truck\n164409,ship\n164410,bird\n164411,ship\n164412,ship\n164413,truck\n164414,cat\n164415,cat\n164416,ship\n164417,airplane\n164418,cat\n164419,automobile\n164420,cat\n164421,airplane\n164422,ship\n164423,bird\n164424,cat\n164425,deer\n164426,truck\n164427,ship\n164428,ship\n164429,ship\n164430,bird\n164431,ship\n164432,deer\n164433,horse\n164434,truck\n164435,truck\n164436,frog\n164437,truck\n164438,deer\n164439,airplane\n164440,bird\n164441,deer\n164442,cat\n164443,dog\n164444,bird\n164445,ship\n164446,cat\n164447,truck\n164448,horse\n164449,deer\n164450,horse\n164451,horse\n164452,cat\n164453,bird\n164454,bird\n164455,frog\n164456,deer\n164457,cat\n164458,frog\n164459,cat\n164460,airplane\n164461,frog\n164462,dog\n164463,airplane\n164464,deer\n164465,deer\n164466,cat\n164467,frog\n164468,airplane\n164469,cat\n164470,cat\n164471,frog\n164472,horse\n164473,ship\n164474,truck\n164475,ship\n164476,ship\n164477,dog\n164478,dog\n164479,cat\n164480,airplane\n164481,horse\n164482,dog\n164483,truck\n164484,cat\n164485,frog\n164486,ship\n164487,frog\n164488,cat\n164489,deer\n164490,bird\n164491,bird\n164492,truck\n164493,frog\n164494,dog\n164495,deer\n164496,ship\n164497,dog\n164498,deer\n164499,deer\n164500,deer\n164501,horse\n164502,airplane\n164503,ship\n164504,cat\n164505,deer\n164506,dog\n164507,horse\n164508,ship\n164509,ship\n164510,truck\n164511,automobile\n164512,truck\n164513,horse\n164514,deer\n164515,frog\n164516,cat\n164517,ship\n164518,cat\n164519,truck\n164520,horse\n164521,dog\n164522,deer\n164523,dog\n164524,horse\n164525,bird\n164526,frog\n164527,frog\n164528,frog\n164529,airplane\n164530,bird\n164531,horse\n164532,truck\n164533,deer\n164534,cat\n164535,frog\n164536,bird\n164537,ship\n164538,dog\n164539,truck\n164540,dog\n164541,bird\n164542,bird\n164543,deer\n164544,dog\n164545,bird\n164546,deer\n164547,deer\n164548,bird\n164549,cat\n164550,deer\n164551,horse\n164552,cat\n164553,horse\n164554,bird\n164555,frog\n164556,cat\n164557,airplane\n164558,automobile\n164559,deer\n164560,airplane\n164561,truck\n164562,frog\n164563,cat\n164564,horse\n164565,ship\n164566,frog\n164567,airplane\n164568,ship\n164569,bird\n164570,dog\n164571,airplane\n164572,deer\n164573,truck\n164574,bird\n164575,deer\n164576,horse\n164577,cat\n164578,horse\n164579,cat\n164580,cat\n164581,deer\n164582,truck\n164583,horse\n164584,cat\n164585,frog\n164586,cat\n164587,truck\n164588,dog\n164589,frog\n164590,dog\n164591,cat\n164592,ship\n164593,truck\n164594,truck\n164595,horse\n164596,cat\n164597,dog\n164598,truck\n164599,horse\n164600,automobile\n164601,dog\n164602,truck\n164603,cat\n164604,airplane\n164605,truck\n164606,horse\n164607,horse\n164608,truck\n164609,deer\n164610,airplane\n164611,horse\n164612,truck\n164613,frog\n164614,horse\n164615,airplane\n164616,truck\n164617,automobile\n164618,truck\n164619,deer\n164620,truck\n164621,ship\n164622,horse\n164623,bird\n164624,frog\n164625,horse\n164626,frog\n164627,deer\n164628,deer\n164629,horse\n164630,bird\n164631,deer\n164632,deer\n164633,airplane\n164634,truck\n164635,frog\n164636,cat\n164637,airplane\n164638,frog\n164639,truck\n164640,automobile\n164641,horse\n164642,bird\n164643,cat\n164644,bird\n164645,automobile\n164646,truck\n164647,dog\n164648,automobile\n164649,automobile\n164650,truck\n164651,cat\n164652,horse\n164653,deer\n164654,ship\n164655,cat\n164656,cat\n164657,truck\n164658,deer\n164659,airplane\n164660,truck\n164661,cat\n164662,automobile\n164663,dog\n164664,dog\n164665,truck\n164666,deer\n164667,deer\n164668,ship\n164669,airplane\n164670,automobile\n164671,airplane\n164672,dog\n164673,dog\n164674,cat\n164675,bird\n164676,horse\n164677,bird\n164678,bird\n164679,cat\n164680,ship\n164681,frog\n164682,cat\n164683,deer\n164684,dog\n164685,cat\n164686,ship\n164687,deer\n164688,cat\n164689,ship\n164690,bird\n164691,deer\n164692,dog\n164693,truck\n164694,bird\n164695,ship\n164696,dog\n164697,horse\n164698,ship\n164699,deer\n164700,cat\n164701,airplane\n164702,bird\n164703,horse\n164704,horse\n164705,dog\n164706,horse\n164707,airplane\n164708,cat\n164709,airplane\n164710,automobile\n164711,dog\n164712,horse\n164713,dog\n164714,truck\n164715,frog\n164716,deer\n164717,automobile\n164718,automobile\n164719,deer\n164720,ship\n164721,truck\n164722,truck\n164723,truck\n164724,automobile\n164725,airplane\n164726,truck\n164727,cat\n164728,dog\n164729,ship\n164730,horse\n164731,horse\n164732,cat\n164733,automobile\n164734,ship\n164735,horse\n164736,dog\n164737,horse\n164738,cat\n164739,airplane\n164740,frog\n164741,truck\n164742,automobile\n164743,airplane\n164744,horse\n164745,horse\n164746,deer\n164747,deer\n164748,truck\n164749,deer\n164750,cat\n164751,dog\n164752,bird\n164753,frog\n164754,horse\n164755,airplane\n164756,automobile\n164757,bird\n164758,automobile\n164759,horse\n164760,airplane\n164761,ship\n164762,airplane\n164763,ship\n164764,automobile\n164765,deer\n164766,dog\n164767,bird\n164768,frog\n164769,bird\n164770,dog\n164771,horse\n164772,deer\n164773,deer\n164774,cat\n164775,cat\n164776,automobile\n164777,truck\n164778,frog\n164779,deer\n164780,dog\n164781,dog\n164782,deer\n164783,bird\n164784,deer\n164785,dog\n164786,dog\n164787,ship\n164788,cat\n164789,automobile\n164790,bird\n164791,horse\n164792,ship\n164793,cat\n164794,horse\n164795,frog\n164796,frog\n164797,dog\n164798,cat\n164799,cat\n164800,truck\n164801,ship\n164802,bird\n164803,ship\n164804,frog\n164805,bird\n164806,frog\n164807,automobile\n164808,bird\n164809,deer\n164810,truck\n164811,truck\n164812,cat\n164813,truck\n164814,frog\n164815,deer\n164816,cat\n164817,bird\n164818,deer\n164819,dog\n164820,bird\n164821,frog\n164822,cat\n164823,frog\n164824,frog\n164825,truck\n164826,deer\n164827,airplane\n164828,cat\n164829,airplane\n164830,bird\n164831,bird\n164832,dog\n164833,cat\n164834,bird\n164835,frog\n164836,bird\n164837,deer\n164838,truck\n164839,automobile\n164840,automobile\n164841,deer\n164842,frog\n164843,ship\n164844,frog\n164845,bird\n164846,airplane\n164847,deer\n164848,dog\n164849,frog\n164850,airplane\n164851,ship\n164852,bird\n164853,automobile\n164854,frog\n164855,horse\n164856,airplane\n164857,truck\n164858,dog\n164859,deer\n164860,automobile\n164861,ship\n164862,bird\n164863,frog\n164864,airplane\n164865,bird\n164866,deer\n164867,deer\n164868,cat\n164869,deer\n164870,automobile\n164871,horse\n164872,ship\n164873,frog\n164874,cat\n164875,bird\n164876,bird\n164877,deer\n164878,truck\n164879,airplane\n164880,dog\n164881,deer\n164882,dog\n164883,dog\n164884,cat\n164885,airplane\n164886,truck\n164887,airplane\n164888,ship\n164889,airplane\n164890,deer\n164891,airplane\n164892,frog\n164893,cat\n164894,bird\n164895,cat\n164896,cat\n164897,truck\n164898,bird\n164899,deer\n164900,dog\n164901,deer\n164902,ship\n164903,truck\n164904,truck\n164905,dog\n164906,automobile\n164907,deer\n164908,airplane\n164909,automobile\n164910,ship\n164911,deer\n164912,truck\n164913,truck\n164914,truck\n164915,ship\n164916,truck\n164917,airplane\n164918,deer\n164919,deer\n164920,deer\n164921,frog\n164922,bird\n164923,dog\n164924,cat\n164925,truck\n164926,deer\n164927,dog\n164928,ship\n164929,dog\n164930,cat\n164931,frog\n164932,deer\n164933,airplane\n164934,automobile\n164935,deer\n164936,dog\n164937,dog\n164938,dog\n164939,deer\n164940,horse\n164941,airplane\n164942,cat\n164943,ship\n164944,frog\n164945,deer\n164946,deer\n164947,ship\n164948,horse\n164949,ship\n164950,airplane\n164951,cat\n164952,ship\n164953,airplane\n164954,airplane\n164955,ship\n164956,deer\n164957,deer\n164958,frog\n164959,dog\n164960,cat\n164961,bird\n164962,automobile\n164963,dog\n164964,horse\n164965,deer\n164966,cat\n164967,deer\n164968,frog\n164969,cat\n164970,deer\n164971,deer\n164972,frog\n164973,truck\n164974,airplane\n164975,ship\n164976,truck\n164977,ship\n164978,deer\n164979,airplane\n164980,airplane\n164981,airplane\n164982,bird\n164983,horse\n164984,deer\n164985,frog\n164986,horse\n164987,bird\n164988,automobile\n164989,frog\n164990,dog\n164991,horse\n164992,deer\n164993,automobile\n164994,dog\n164995,frog\n164996,dog\n164997,dog\n164998,frog\n164999,frog\n165000,cat\n165001,frog\n165002,dog\n165003,automobile\n165004,frog\n165005,cat\n165006,bird\n165007,dog\n165008,truck\n165009,cat\n165010,airplane\n165011,airplane\n165012,cat\n165013,frog\n165014,deer\n165015,cat\n165016,ship\n165017,bird\n165018,automobile\n165019,cat\n165020,automobile\n165021,airplane\n165022,airplane\n165023,dog\n165024,truck\n165025,truck\n165026,bird\n165027,horse\n165028,deer\n165029,ship\n165030,automobile\n165031,deer\n165032,truck\n165033,cat\n165034,bird\n165035,automobile\n165036,frog\n165037,cat\n165038,cat\n165039,automobile\n165040,deer\n165041,frog\n165042,cat\n165043,airplane\n165044,frog\n165045,frog\n165046,cat\n165047,frog\n165048,bird\n165049,cat\n165050,cat\n165051,bird\n165052,frog\n165053,dog\n165054,deer\n165055,automobile\n165056,cat\n165057,truck\n165058,cat\n165059,horse\n165060,automobile\n165061,horse\n165062,dog\n165063,frog\n165064,deer\n165065,truck\n165066,deer\n165067,dog\n165068,deer\n165069,horse\n165070,cat\n165071,cat\n165072,frog\n165073,ship\n165074,truck\n165075,frog\n165076,frog\n165077,airplane\n165078,ship\n165079,dog\n165080,horse\n165081,deer\n165082,ship\n165083,airplane\n165084,automobile\n165085,truck\n165086,ship\n165087,bird\n165088,truck\n165089,ship\n165090,frog\n165091,dog\n165092,frog\n165093,dog\n165094,dog\n165095,airplane\n165096,horse\n165097,deer\n165098,cat\n165099,frog\n165100,airplane\n165101,horse\n165102,horse\n165103,dog\n165104,truck\n165105,ship\n165106,ship\n165107,dog\n165108,horse\n165109,dog\n165110,frog\n165111,deer\n165112,horse\n165113,deer\n165114,automobile\n165115,automobile\n165116,airplane\n165117,ship\n165118,cat\n165119,airplane\n165120,ship\n165121,ship\n165122,truck\n165123,deer\n165124,ship\n165125,horse\n165126,truck\n165127,cat\n165128,frog\n165129,cat\n165130,deer\n165131,deer\n165132,horse\n165133,automobile\n165134,ship\n165135,ship\n165136,cat\n165137,cat\n165138,horse\n165139,cat\n165140,horse\n165141,deer\n165142,truck\n165143,horse\n165144,frog\n165145,deer\n165146,airplane\n165147,deer\n165148,cat\n165149,ship\n165150,automobile\n165151,airplane\n165152,airplane\n165153,bird\n165154,cat\n165155,frog\n165156,cat\n165157,frog\n165158,automobile\n165159,cat\n165160,deer\n165161,horse\n165162,airplane\n165163,truck\n165164,deer\n165165,frog\n165166,cat\n165167,truck\n165168,airplane\n165169,automobile\n165170,truck\n165171,bird\n165172,dog\n165173,ship\n165174,truck\n165175,dog\n165176,cat\n165177,cat\n165178,airplane\n165179,airplane\n165180,automobile\n165181,horse\n165182,airplane\n165183,truck\n165184,bird\n165185,horse\n165186,ship\n165187,bird\n165188,deer\n165189,airplane\n165190,deer\n165191,cat\n165192,frog\n165193,bird\n165194,horse\n165195,horse\n165196,deer\n165197,frog\n165198,cat\n165199,dog\n165200,ship\n165201,horse\n165202,frog\n165203,deer\n165204,automobile\n165205,ship\n165206,ship\n165207,automobile\n165208,horse\n165209,horse\n165210,cat\n165211,airplane\n165212,horse\n165213,cat\n165214,frog\n165215,cat\n165216,cat\n165217,deer\n165218,cat\n165219,cat\n165220,cat\n165221,airplane\n165222,dog\n165223,automobile\n165224,deer\n165225,frog\n165226,horse\n165227,deer\n165228,deer\n165229,frog\n165230,automobile\n165231,airplane\n165232,frog\n165233,airplane\n165234,deer\n165235,cat\n165236,frog\n165237,airplane\n165238,dog\n165239,dog\n165240,deer\n165241,airplane\n165242,frog\n165243,frog\n165244,deer\n165245,cat\n165246,automobile\n165247,truck\n165248,truck\n165249,ship\n165250,cat\n165251,cat\n165252,ship\n165253,horse\n165254,airplane\n165255,frog\n165256,deer\n165257,deer\n165258,horse\n165259,cat\n165260,frog\n165261,bird\n165262,dog\n165263,airplane\n165264,truck\n165265,ship\n165266,cat\n165267,airplane\n165268,deer\n165269,ship\n165270,airplane\n165271,airplane\n165272,cat\n165273,truck\n165274,dog\n165275,horse\n165276,cat\n165277,cat\n165278,frog\n165279,deer\n165280,automobile\n165281,frog\n165282,bird\n165283,automobile\n165284,dog\n165285,cat\n165286,horse\n165287,truck\n165288,truck\n165289,dog\n165290,dog\n165291,airplane\n165292,truck\n165293,horse\n165294,cat\n165295,dog\n165296,deer\n165297,truck\n165298,cat\n165299,deer\n165300,airplane\n165301,dog\n165302,frog\n165303,horse\n165304,cat\n165305,horse\n165306,deer\n165307,truck\n165308,deer\n165309,horse\n165310,ship\n165311,deer\n165312,cat\n165313,dog\n165314,horse\n165315,deer\n165316,ship\n165317,frog\n165318,automobile\n165319,dog\n165320,truck\n165321,bird\n165322,deer\n165323,horse\n165324,frog\n165325,ship\n165326,dog\n165327,airplane\n165328,bird\n165329,dog\n165330,ship\n165331,deer\n165332,airplane\n165333,cat\n165334,cat\n165335,ship\n165336,bird\n165337,dog\n165338,automobile\n165339,bird\n165340,deer\n165341,automobile\n165342,cat\n165343,cat\n165344,airplane\n165345,frog\n165346,deer\n165347,automobile\n165348,deer\n165349,horse\n165350,dog\n165351,frog\n165352,frog\n165353,dog\n165354,automobile\n165355,horse\n165356,deer\n165357,horse\n165358,ship\n165359,horse\n165360,ship\n165361,deer\n165362,automobile\n165363,bird\n165364,airplane\n165365,airplane\n165366,deer\n165367,dog\n165368,horse\n165369,bird\n165370,cat\n165371,airplane\n165372,frog\n165373,cat\n165374,dog\n165375,cat\n165376,horse\n165377,deer\n165378,horse\n165379,deer\n165380,airplane\n165381,bird\n165382,cat\n165383,dog\n165384,bird\n165385,truck\n165386,horse\n165387,airplane\n165388,deer\n165389,truck\n165390,frog\n165391,cat\n165392,cat\n165393,ship\n165394,automobile\n165395,deer\n165396,bird\n165397,airplane\n165398,cat\n165399,truck\n165400,frog\n165401,horse\n165402,dog\n165403,airplane\n165404,bird\n165405,ship\n165406,airplane\n165407,deer\n165408,deer\n165409,truck\n165410,cat\n165411,airplane\n165412,ship\n165413,ship\n165414,airplane\n165415,bird\n165416,bird\n165417,airplane\n165418,truck\n165419,airplane\n165420,bird\n165421,cat\n165422,airplane\n165423,horse\n165424,cat\n165425,cat\n165426,horse\n165427,deer\n165428,horse\n165429,frog\n165430,deer\n165431,cat\n165432,dog\n165433,dog\n165434,truck\n165435,deer\n165436,cat\n165437,cat\n165438,horse\n165439,bird\n165440,airplane\n165441,airplane\n165442,cat\n165443,cat\n165444,horse\n165445,dog\n165446,truck\n165447,frog\n165448,ship\n165449,airplane\n165450,dog\n165451,horse\n165452,ship\n165453,cat\n165454,deer\n165455,truck\n165456,automobile\n165457,deer\n165458,frog\n165459,cat\n165460,airplane\n165461,airplane\n165462,cat\n165463,dog\n165464,automobile\n165465,horse\n165466,truck\n165467,deer\n165468,frog\n165469,dog\n165470,bird\n165471,ship\n165472,dog\n165473,dog\n165474,deer\n165475,horse\n165476,deer\n165477,airplane\n165478,cat\n165479,horse\n165480,bird\n165481,ship\n165482,deer\n165483,truck\n165484,horse\n165485,ship\n165486,ship\n165487,truck\n165488,frog\n165489,deer\n165490,ship\n165491,cat\n165492,cat\n165493,automobile\n165494,ship\n165495,bird\n165496,horse\n165497,dog\n165498,cat\n165499,frog\n165500,airplane\n165501,airplane\n165502,automobile\n165503,horse\n165504,bird\n165505,deer\n165506,deer\n165507,dog\n165508,cat\n165509,automobile\n165510,bird\n165511,horse\n165512,cat\n165513,frog\n165514,ship\n165515,frog\n165516,airplane\n165517,cat\n165518,cat\n165519,bird\n165520,airplane\n165521,cat\n165522,ship\n165523,dog\n165524,horse\n165525,horse\n165526,deer\n165527,cat\n165528,truck\n165529,deer\n165530,dog\n165531,frog\n165532,airplane\n165533,truck\n165534,cat\n165535,ship\n165536,bird\n165537,dog\n165538,dog\n165539,deer\n165540,cat\n165541,ship\n165542,cat\n165543,dog\n165544,frog\n165545,airplane\n165546,truck\n165547,horse\n165548,deer\n165549,automobile\n165550,dog\n165551,airplane\n165552,dog\n165553,dog\n165554,truck\n165555,cat\n165556,ship\n165557,deer\n165558,frog\n165559,deer\n165560,deer\n165561,dog\n165562,cat\n165563,truck\n165564,dog\n165565,ship\n165566,frog\n165567,horse\n165568,airplane\n165569,horse\n165570,dog\n165571,airplane\n165572,dog\n165573,bird\n165574,bird\n165575,deer\n165576,deer\n165577,dog\n165578,deer\n165579,ship\n165580,cat\n165581,cat\n165582,dog\n165583,automobile\n165584,cat\n165585,dog\n165586,ship\n165587,deer\n165588,airplane\n165589,deer\n165590,truck\n165591,airplane\n165592,airplane\n165593,truck\n165594,cat\n165595,automobile\n165596,airplane\n165597,cat\n165598,deer\n165599,dog\n165600,deer\n165601,deer\n165602,horse\n165603,truck\n165604,horse\n165605,automobile\n165606,dog\n165607,bird\n165608,horse\n165609,cat\n165610,ship\n165611,automobile\n165612,cat\n165613,dog\n165614,horse\n165615,frog\n165616,ship\n165617,deer\n165618,automobile\n165619,frog\n165620,bird\n165621,bird\n165622,automobile\n165623,bird\n165624,truck\n165625,cat\n165626,frog\n165627,dog\n165628,automobile\n165629,airplane\n165630,cat\n165631,frog\n165632,frog\n165633,truck\n165634,dog\n165635,horse\n165636,cat\n165637,automobile\n165638,cat\n165639,truck\n165640,cat\n165641,dog\n165642,ship\n165643,truck\n165644,bird\n165645,airplane\n165646,deer\n165647,dog\n165648,dog\n165649,deer\n165650,automobile\n165651,ship\n165652,cat\n165653,automobile\n165654,dog\n165655,deer\n165656,cat\n165657,deer\n165658,dog\n165659,horse\n165660,horse\n165661,automobile\n165662,cat\n165663,cat\n165664,deer\n165665,deer\n165666,cat\n165667,deer\n165668,dog\n165669,automobile\n165670,deer\n165671,bird\n165672,ship\n165673,automobile\n165674,ship\n165675,frog\n165676,truck\n165677,truck\n165678,frog\n165679,dog\n165680,bird\n165681,frog\n165682,dog\n165683,deer\n165684,cat\n165685,airplane\n165686,deer\n165687,deer\n165688,automobile\n165689,cat\n165690,deer\n165691,cat\n165692,truck\n165693,dog\n165694,cat\n165695,bird\n165696,airplane\n165697,dog\n165698,truck\n165699,ship\n165700,frog\n165701,truck\n165702,horse\n165703,horse\n165704,deer\n165705,cat\n165706,automobile\n165707,ship\n165708,truck\n165709,airplane\n165710,airplane\n165711,dog\n165712,bird\n165713,frog\n165714,cat\n165715,airplane\n165716,automobile\n165717,cat\n165718,automobile\n165719,truck\n165720,truck\n165721,cat\n165722,frog\n165723,bird\n165724,horse\n165725,frog\n165726,truck\n165727,automobile\n165728,airplane\n165729,frog\n165730,ship\n165731,frog\n165732,automobile\n165733,cat\n165734,automobile\n165735,horse\n165736,truck\n165737,bird\n165738,dog\n165739,ship\n165740,cat\n165741,ship\n165742,automobile\n165743,ship\n165744,cat\n165745,dog\n165746,deer\n165747,automobile\n165748,bird\n165749,airplane\n165750,cat\n165751,horse\n165752,ship\n165753,frog\n165754,airplane\n165755,ship\n165756,automobile\n165757,ship\n165758,frog\n165759,cat\n165760,cat\n165761,deer\n165762,automobile\n165763,truck\n165764,cat\n165765,horse\n165766,bird\n165767,automobile\n165768,deer\n165769,deer\n165770,horse\n165771,deer\n165772,ship\n165773,frog\n165774,truck\n165775,truck\n165776,cat\n165777,frog\n165778,airplane\n165779,frog\n165780,cat\n165781,frog\n165782,truck\n165783,truck\n165784,ship\n165785,dog\n165786,ship\n165787,horse\n165788,bird\n165789,dog\n165790,bird\n165791,cat\n165792,dog\n165793,bird\n165794,deer\n165795,bird\n165796,cat\n165797,cat\n165798,truck\n165799,cat\n165800,ship\n165801,airplane\n165802,dog\n165803,truck\n165804,truck\n165805,horse\n165806,ship\n165807,truck\n165808,cat\n165809,ship\n165810,bird\n165811,frog\n165812,frog\n165813,cat\n165814,deer\n165815,automobile\n165816,dog\n165817,frog\n165818,truck\n165819,horse\n165820,ship\n165821,frog\n165822,deer\n165823,deer\n165824,airplane\n165825,truck\n165826,frog\n165827,airplane\n165828,frog\n165829,horse\n165830,deer\n165831,cat\n165832,cat\n165833,frog\n165834,bird\n165835,airplane\n165836,dog\n165837,cat\n165838,horse\n165839,automobile\n165840,horse\n165841,airplane\n165842,horse\n165843,cat\n165844,cat\n165845,frog\n165846,deer\n165847,automobile\n165848,cat\n165849,airplane\n165850,deer\n165851,horse\n165852,ship\n165853,frog\n165854,cat\n165855,dog\n165856,cat\n165857,deer\n165858,dog\n165859,automobile\n165860,horse\n165861,frog\n165862,truck\n165863,frog\n165864,cat\n165865,truck\n165866,ship\n165867,horse\n165868,automobile\n165869,cat\n165870,airplane\n165871,automobile\n165872,automobile\n165873,airplane\n165874,deer\n165875,bird\n165876,automobile\n165877,horse\n165878,horse\n165879,frog\n165880,cat\n165881,dog\n165882,frog\n165883,frog\n165884,ship\n165885,cat\n165886,cat\n165887,dog\n165888,automobile\n165889,airplane\n165890,ship\n165891,deer\n165892,dog\n165893,bird\n165894,frog\n165895,frog\n165896,frog\n165897,horse\n165898,dog\n165899,deer\n165900,automobile\n165901,ship\n165902,bird\n165903,cat\n165904,truck\n165905,dog\n165906,truck\n165907,bird\n165908,horse\n165909,frog\n165910,bird\n165911,truck\n165912,cat\n165913,deer\n165914,horse\n165915,dog\n165916,ship\n165917,horse\n165918,ship\n165919,frog\n165920,truck\n165921,frog\n165922,truck\n165923,airplane\n165924,automobile\n165925,horse\n165926,dog\n165927,deer\n165928,automobile\n165929,truck\n165930,bird\n165931,horse\n165932,airplane\n165933,frog\n165934,automobile\n165935,cat\n165936,deer\n165937,dog\n165938,cat\n165939,deer\n165940,cat\n165941,ship\n165942,cat\n165943,dog\n165944,deer\n165945,airplane\n165946,automobile\n165947,dog\n165948,automobile\n165949,truck\n165950,bird\n165951,frog\n165952,ship\n165953,bird\n165954,truck\n165955,automobile\n165956,dog\n165957,truck\n165958,dog\n165959,automobile\n165960,deer\n165961,cat\n165962,cat\n165963,dog\n165964,airplane\n165965,bird\n165966,frog\n165967,deer\n165968,truck\n165969,horse\n165970,bird\n165971,deer\n165972,deer\n165973,cat\n165974,deer\n165975,dog\n165976,frog\n165977,deer\n165978,automobile\n165979,ship\n165980,ship\n165981,frog\n165982,cat\n165983,bird\n165984,dog\n165985,cat\n165986,automobile\n165987,cat\n165988,frog\n165989,truck\n165990,cat\n165991,airplane\n165992,truck\n165993,truck\n165994,automobile\n165995,horse\n165996,cat\n165997,frog\n165998,horse\n165999,bird\n166000,frog\n166001,dog\n166002,automobile\n166003,deer\n166004,horse\n166005,dog\n166006,airplane\n166007,truck\n166008,automobile\n166009,deer\n166010,horse\n166011,cat\n166012,deer\n166013,dog\n166014,bird\n166015,ship\n166016,frog\n166017,cat\n166018,airplane\n166019,frog\n166020,deer\n166021,cat\n166022,ship\n166023,truck\n166024,bird\n166025,bird\n166026,cat\n166027,cat\n166028,cat\n166029,deer\n166030,frog\n166031,horse\n166032,airplane\n166033,airplane\n166034,deer\n166035,frog\n166036,horse\n166037,deer\n166038,bird\n166039,dog\n166040,frog\n166041,truck\n166042,cat\n166043,horse\n166044,horse\n166045,horse\n166046,bird\n166047,bird\n166048,ship\n166049,ship\n166050,ship\n166051,deer\n166052,horse\n166053,airplane\n166054,airplane\n166055,automobile\n166056,cat\n166057,automobile\n166058,cat\n166059,horse\n166060,cat\n166061,automobile\n166062,automobile\n166063,frog\n166064,cat\n166065,automobile\n166066,cat\n166067,deer\n166068,deer\n166069,ship\n166070,cat\n166071,cat\n166072,horse\n166073,horse\n166074,frog\n166075,cat\n166076,deer\n166077,truck\n166078,automobile\n166079,frog\n166080,ship\n166081,horse\n166082,automobile\n166083,cat\n166084,frog\n166085,cat\n166086,dog\n166087,frog\n166088,horse\n166089,automobile\n166090,deer\n166091,frog\n166092,frog\n166093,bird\n166094,dog\n166095,deer\n166096,automobile\n166097,bird\n166098,automobile\n166099,cat\n166100,deer\n166101,airplane\n166102,bird\n166103,dog\n166104,deer\n166105,frog\n166106,ship\n166107,cat\n166108,deer\n166109,horse\n166110,deer\n166111,truck\n166112,ship\n166113,airplane\n166114,deer\n166115,dog\n166116,horse\n166117,cat\n166118,ship\n166119,horse\n166120,cat\n166121,automobile\n166122,automobile\n166123,deer\n166124,deer\n166125,truck\n166126,cat\n166127,frog\n166128,dog\n166129,bird\n166130,ship\n166131,truck\n166132,cat\n166133,horse\n166134,truck\n166135,deer\n166136,bird\n166137,dog\n166138,bird\n166139,deer\n166140,frog\n166141,frog\n166142,horse\n166143,truck\n166144,truck\n166145,horse\n166146,automobile\n166147,bird\n166148,ship\n166149,horse\n166150,dog\n166151,bird\n166152,frog\n166153,truck\n166154,truck\n166155,dog\n166156,dog\n166157,cat\n166158,ship\n166159,dog\n166160,dog\n166161,truck\n166162,cat\n166163,dog\n166164,frog\n166165,horse\n166166,dog\n166167,truck\n166168,truck\n166169,airplane\n166170,airplane\n166171,frog\n166172,airplane\n166173,truck\n166174,ship\n166175,cat\n166176,bird\n166177,dog\n166178,airplane\n166179,cat\n166180,cat\n166181,bird\n166182,cat\n166183,airplane\n166184,truck\n166185,truck\n166186,ship\n166187,ship\n166188,cat\n166189,airplane\n166190,dog\n166191,dog\n166192,horse\n166193,airplane\n166194,airplane\n166195,horse\n166196,truck\n166197,dog\n166198,automobile\n166199,deer\n166200,airplane\n166201,dog\n166202,deer\n166203,airplane\n166204,automobile\n166205,truck\n166206,frog\n166207,horse\n166208,dog\n166209,airplane\n166210,horse\n166211,dog\n166212,dog\n166213,airplane\n166214,truck\n166215,truck\n166216,bird\n166217,deer\n166218,airplane\n166219,cat\n166220,airplane\n166221,bird\n166222,truck\n166223,ship\n166224,frog\n166225,cat\n166226,truck\n166227,airplane\n166228,cat\n166229,deer\n166230,ship\n166231,frog\n166232,truck\n166233,horse\n166234,bird\n166235,frog\n166236,truck\n166237,cat\n166238,ship\n166239,bird\n166240,horse\n166241,truck\n166242,truck\n166243,dog\n166244,cat\n166245,automobile\n166246,deer\n166247,cat\n166248,airplane\n166249,airplane\n166250,horse\n166251,cat\n166252,bird\n166253,truck\n166254,ship\n166255,frog\n166256,bird\n166257,frog\n166258,cat\n166259,dog\n166260,truck\n166261,automobile\n166262,dog\n166263,cat\n166264,dog\n166265,frog\n166266,airplane\n166267,bird\n166268,horse\n166269,automobile\n166270,truck\n166271,dog\n166272,horse\n166273,airplane\n166274,horse\n166275,horse\n166276,airplane\n166277,deer\n166278,truck\n166279,truck\n166280,horse\n166281,dog\n166282,cat\n166283,frog\n166284,automobile\n166285,airplane\n166286,bird\n166287,truck\n166288,frog\n166289,ship\n166290,truck\n166291,cat\n166292,cat\n166293,deer\n166294,bird\n166295,horse\n166296,deer\n166297,horse\n166298,cat\n166299,deer\n166300,deer\n166301,bird\n166302,horse\n166303,deer\n166304,frog\n166305,airplane\n166306,ship\n166307,bird\n166308,deer\n166309,deer\n166310,cat\n166311,cat\n166312,deer\n166313,frog\n166314,truck\n166315,automobile\n166316,frog\n166317,airplane\n166318,truck\n166319,dog\n166320,truck\n166321,truck\n166322,truck\n166323,deer\n166324,ship\n166325,truck\n166326,truck\n166327,deer\n166328,horse\n166329,dog\n166330,cat\n166331,cat\n166332,deer\n166333,automobile\n166334,dog\n166335,dog\n166336,dog\n166337,automobile\n166338,automobile\n166339,bird\n166340,truck\n166341,cat\n166342,deer\n166343,bird\n166344,bird\n166345,cat\n166346,bird\n166347,frog\n166348,deer\n166349,dog\n166350,horse\n166351,deer\n166352,bird\n166353,deer\n166354,ship\n166355,airplane\n166356,airplane\n166357,deer\n166358,bird\n166359,ship\n166360,dog\n166361,deer\n166362,frog\n166363,frog\n166364,cat\n166365,frog\n166366,dog\n166367,truck\n166368,deer\n166369,bird\n166370,bird\n166371,deer\n166372,cat\n166373,cat\n166374,horse\n166375,deer\n166376,frog\n166377,deer\n166378,bird\n166379,deer\n166380,automobile\n166381,dog\n166382,truck\n166383,bird\n166384,dog\n166385,bird\n166386,bird\n166387,dog\n166388,bird\n166389,bird\n166390,deer\n166391,frog\n166392,ship\n166393,cat\n166394,horse\n166395,frog\n166396,ship\n166397,frog\n166398,automobile\n166399,automobile\n166400,bird\n166401,horse\n166402,ship\n166403,truck\n166404,ship\n166405,cat\n166406,truck\n166407,dog\n166408,frog\n166409,cat\n166410,dog\n166411,cat\n166412,truck\n166413,dog\n166414,frog\n166415,cat\n166416,dog\n166417,frog\n166418,frog\n166419,ship\n166420,deer\n166421,horse\n166422,bird\n166423,ship\n166424,deer\n166425,horse\n166426,deer\n166427,truck\n166428,dog\n166429,automobile\n166430,airplane\n166431,airplane\n166432,deer\n166433,deer\n166434,cat\n166435,bird\n166436,bird\n166437,ship\n166438,cat\n166439,deer\n166440,airplane\n166441,airplane\n166442,automobile\n166443,deer\n166444,deer\n166445,dog\n166446,ship\n166447,bird\n166448,dog\n166449,frog\n166450,cat\n166451,ship\n166452,horse\n166453,deer\n166454,bird\n166455,airplane\n166456,deer\n166457,frog\n166458,bird\n166459,ship\n166460,automobile\n166461,cat\n166462,ship\n166463,airplane\n166464,airplane\n166465,deer\n166466,automobile\n166467,cat\n166468,dog\n166469,cat\n166470,frog\n166471,horse\n166472,dog\n166473,truck\n166474,ship\n166475,deer\n166476,bird\n166477,bird\n166478,automobile\n166479,ship\n166480,deer\n166481,frog\n166482,cat\n166483,frog\n166484,airplane\n166485,deer\n166486,truck\n166487,bird\n166488,truck\n166489,truck\n166490,airplane\n166491,frog\n166492,dog\n166493,frog\n166494,deer\n166495,automobile\n166496,deer\n166497,ship\n166498,deer\n166499,dog\n166500,deer\n166501,cat\n166502,deer\n166503,horse\n166504,horse\n166505,deer\n166506,cat\n166507,deer\n166508,deer\n166509,bird\n166510,automobile\n166511,truck\n166512,truck\n166513,cat\n166514,airplane\n166515,cat\n166516,bird\n166517,cat\n166518,truck\n166519,dog\n166520,dog\n166521,cat\n166522,cat\n166523,deer\n166524,automobile\n166525,automobile\n166526,deer\n166527,airplane\n166528,frog\n166529,dog\n166530,deer\n166531,truck\n166532,dog\n166533,deer\n166534,cat\n166535,bird\n166536,dog\n166537,airplane\n166538,deer\n166539,cat\n166540,truck\n166541,horse\n166542,bird\n166543,cat\n166544,dog\n166545,automobile\n166546,airplane\n166547,cat\n166548,deer\n166549,truck\n166550,cat\n166551,dog\n166552,horse\n166553,truck\n166554,deer\n166555,ship\n166556,cat\n166557,frog\n166558,bird\n166559,airplane\n166560,frog\n166561,ship\n166562,dog\n166563,automobile\n166564,horse\n166565,frog\n166566,ship\n166567,automobile\n166568,deer\n166569,truck\n166570,truck\n166571,airplane\n166572,frog\n166573,automobile\n166574,truck\n166575,ship\n166576,truck\n166577,dog\n166578,frog\n166579,bird\n166580,bird\n166581,airplane\n166582,horse\n166583,ship\n166584,dog\n166585,airplane\n166586,truck\n166587,bird\n166588,truck\n166589,airplane\n166590,cat\n166591,cat\n166592,horse\n166593,cat\n166594,dog\n166595,automobile\n166596,horse\n166597,airplane\n166598,ship\n166599,bird\n166600,dog\n166601,bird\n166602,cat\n166603,frog\n166604,truck\n166605,cat\n166606,cat\n166607,deer\n166608,deer\n166609,truck\n166610,dog\n166611,dog\n166612,ship\n166613,dog\n166614,cat\n166615,frog\n166616,cat\n166617,airplane\n166618,deer\n166619,horse\n166620,bird\n166621,deer\n166622,cat\n166623,truck\n166624,truck\n166625,truck\n166626,frog\n166627,truck\n166628,bird\n166629,bird\n166630,deer\n166631,dog\n166632,cat\n166633,truck\n166634,deer\n166635,airplane\n166636,deer\n166637,bird\n166638,airplane\n166639,cat\n166640,frog\n166641,horse\n166642,automobile\n166643,bird\n166644,deer\n166645,frog\n166646,horse\n166647,cat\n166648,airplane\n166649,ship\n166650,deer\n166651,dog\n166652,automobile\n166653,frog\n166654,cat\n166655,truck\n166656,horse\n166657,airplane\n166658,frog\n166659,dog\n166660,deer\n166661,ship\n166662,dog\n166663,cat\n166664,airplane\n166665,deer\n166666,frog\n166667,frog\n166668,dog\n166669,bird\n166670,frog\n166671,deer\n166672,ship\n166673,bird\n166674,truck\n166675,frog\n166676,deer\n166677,automobile\n166678,airplane\n166679,bird\n166680,frog\n166681,truck\n166682,airplane\n166683,bird\n166684,horse\n166685,truck\n166686,frog\n166687,dog\n166688,automobile\n166689,deer\n166690,frog\n166691,truck\n166692,bird\n166693,deer\n166694,automobile\n166695,airplane\n166696,automobile\n166697,bird\n166698,ship\n166699,automobile\n166700,truck\n166701,cat\n166702,horse\n166703,cat\n166704,dog\n166705,deer\n166706,deer\n166707,frog\n166708,airplane\n166709,cat\n166710,deer\n166711,horse\n166712,dog\n166713,frog\n166714,dog\n166715,deer\n166716,cat\n166717,bird\n166718,deer\n166719,frog\n166720,dog\n166721,bird\n166722,cat\n166723,automobile\n166724,dog\n166725,truck\n166726,truck\n166727,horse\n166728,airplane\n166729,bird\n166730,frog\n166731,cat\n166732,truck\n166733,deer\n166734,automobile\n166735,horse\n166736,airplane\n166737,airplane\n166738,truck\n166739,dog\n166740,dog\n166741,airplane\n166742,cat\n166743,deer\n166744,horse\n166745,dog\n166746,bird\n166747,deer\n166748,frog\n166749,bird\n166750,horse\n166751,deer\n166752,deer\n166753,ship\n166754,dog\n166755,frog\n166756,bird\n166757,truck\n166758,airplane\n166759,frog\n166760,frog\n166761,cat\n166762,frog\n166763,deer\n166764,cat\n166765,cat\n166766,dog\n166767,horse\n166768,truck\n166769,automobile\n166770,airplane\n166771,cat\n166772,frog\n166773,cat\n166774,horse\n166775,ship\n166776,frog\n166777,frog\n166778,frog\n166779,deer\n166780,truck\n166781,dog\n166782,ship\n166783,bird\n166784,airplane\n166785,deer\n166786,truck\n166787,cat\n166788,dog\n166789,airplane\n166790,ship\n166791,dog\n166792,ship\n166793,bird\n166794,dog\n166795,deer\n166796,cat\n166797,deer\n166798,deer\n166799,deer\n166800,dog\n166801,deer\n166802,automobile\n166803,frog\n166804,frog\n166805,dog\n166806,airplane\n166807,dog\n166808,deer\n166809,automobile\n166810,truck\n166811,bird\n166812,truck\n166813,truck\n166814,truck\n166815,truck\n166816,deer\n166817,ship\n166818,truck\n166819,ship\n166820,bird\n166821,dog\n166822,cat\n166823,truck\n166824,deer\n166825,airplane\n166826,truck\n166827,bird\n166828,automobile\n166829,cat\n166830,frog\n166831,cat\n166832,bird\n166833,automobile\n166834,deer\n166835,bird\n166836,frog\n166837,deer\n166838,truck\n166839,dog\n166840,frog\n166841,cat\n166842,frog\n166843,ship\n166844,airplane\n166845,automobile\n166846,truck\n166847,horse\n166848,ship\n166849,frog\n166850,deer\n166851,cat\n166852,deer\n166853,deer\n166854,horse\n166855,bird\n166856,automobile\n166857,airplane\n166858,cat\n166859,cat\n166860,dog\n166861,truck\n166862,deer\n166863,horse\n166864,dog\n166865,dog\n166866,ship\n166867,deer\n166868,dog\n166869,frog\n166870,frog\n166871,airplane\n166872,cat\n166873,ship\n166874,truck\n166875,ship\n166876,horse\n166877,ship\n166878,dog\n166879,bird\n166880,bird\n166881,frog\n166882,truck\n166883,bird\n166884,cat\n166885,horse\n166886,truck\n166887,cat\n166888,airplane\n166889,dog\n166890,horse\n166891,deer\n166892,dog\n166893,cat\n166894,automobile\n166895,automobile\n166896,horse\n166897,dog\n166898,deer\n166899,ship\n166900,dog\n166901,deer\n166902,airplane\n166903,truck\n166904,airplane\n166905,frog\n166906,ship\n166907,truck\n166908,automobile\n166909,ship\n166910,bird\n166911,cat\n166912,bird\n166913,airplane\n166914,bird\n166915,truck\n166916,truck\n166917,automobile\n166918,deer\n166919,ship\n166920,horse\n166921,bird\n166922,frog\n166923,automobile\n166924,truck\n166925,dog\n166926,truck\n166927,cat\n166928,airplane\n166929,bird\n166930,horse\n166931,frog\n166932,ship\n166933,airplane\n166934,automobile\n166935,frog\n166936,automobile\n166937,frog\n166938,frog\n166939,frog\n166940,ship\n166941,frog\n166942,dog\n166943,horse\n166944,horse\n166945,ship\n166946,cat\n166947,bird\n166948,cat\n166949,cat\n166950,truck\n166951,deer\n166952,horse\n166953,frog\n166954,cat\n166955,frog\n166956,truck\n166957,automobile\n166958,automobile\n166959,frog\n166960,truck\n166961,deer\n166962,cat\n166963,cat\n166964,cat\n166965,deer\n166966,horse\n166967,dog\n166968,frog\n166969,dog\n166970,cat\n166971,automobile\n166972,horse\n166973,truck\n166974,cat\n166975,bird\n166976,deer\n166977,truck\n166978,horse\n166979,truck\n166980,dog\n166981,automobile\n166982,frog\n166983,airplane\n166984,airplane\n166985,automobile\n166986,truck\n166987,cat\n166988,horse\n166989,frog\n166990,frog\n166991,airplane\n166992,ship\n166993,airplane\n166994,bird\n166995,ship\n166996,truck\n166997,dog\n166998,frog\n166999,automobile\n167000,truck\n167001,airplane\n167002,airplane\n167003,ship\n167004,truck\n167005,truck\n167006,deer\n167007,ship\n167008,bird\n167009,frog\n167010,airplane\n167011,airplane\n167012,cat\n167013,dog\n167014,cat\n167015,frog\n167016,deer\n167017,deer\n167018,bird\n167019,deer\n167020,deer\n167021,deer\n167022,frog\n167023,cat\n167024,airplane\n167025,deer\n167026,bird\n167027,frog\n167028,truck\n167029,bird\n167030,truck\n167031,deer\n167032,frog\n167033,deer\n167034,frog\n167035,dog\n167036,deer\n167037,deer\n167038,dog\n167039,deer\n167040,horse\n167041,airplane\n167042,frog\n167043,ship\n167044,ship\n167045,truck\n167046,cat\n167047,truck\n167048,frog\n167049,deer\n167050,horse\n167051,cat\n167052,automobile\n167053,frog\n167054,deer\n167055,automobile\n167056,bird\n167057,cat\n167058,deer\n167059,truck\n167060,truck\n167061,deer\n167062,truck\n167063,airplane\n167064,frog\n167065,deer\n167066,deer\n167067,horse\n167068,bird\n167069,cat\n167070,truck\n167071,ship\n167072,deer\n167073,ship\n167074,deer\n167075,truck\n167076,frog\n167077,truck\n167078,airplane\n167079,horse\n167080,dog\n167081,cat\n167082,frog\n167083,ship\n167084,horse\n167085,airplane\n167086,cat\n167087,airplane\n167088,automobile\n167089,automobile\n167090,dog\n167091,truck\n167092,cat\n167093,horse\n167094,truck\n167095,cat\n167096,frog\n167097,cat\n167098,truck\n167099,bird\n167100,bird\n167101,automobile\n167102,ship\n167103,bird\n167104,cat\n167105,bird\n167106,dog\n167107,automobile\n167108,frog\n167109,deer\n167110,deer\n167111,automobile\n167112,deer\n167113,automobile\n167114,automobile\n167115,airplane\n167116,cat\n167117,deer\n167118,frog\n167119,airplane\n167120,horse\n167121,airplane\n167122,horse\n167123,truck\n167124,horse\n167125,ship\n167126,frog\n167127,airplane\n167128,horse\n167129,dog\n167130,truck\n167131,horse\n167132,bird\n167133,cat\n167134,dog\n167135,automobile\n167136,truck\n167137,frog\n167138,ship\n167139,frog\n167140,automobile\n167141,cat\n167142,truck\n167143,cat\n167144,ship\n167145,frog\n167146,truck\n167147,cat\n167148,cat\n167149,dog\n167150,truck\n167151,horse\n167152,airplane\n167153,deer\n167154,truck\n167155,truck\n167156,dog\n167157,deer\n167158,cat\n167159,truck\n167160,horse\n167161,deer\n167162,horse\n167163,cat\n167164,cat\n167165,frog\n167166,frog\n167167,dog\n167168,airplane\n167169,truck\n167170,truck\n167171,dog\n167172,deer\n167173,horse\n167174,automobile\n167175,cat\n167176,truck\n167177,dog\n167178,horse\n167179,horse\n167180,frog\n167181,deer\n167182,horse\n167183,bird\n167184,bird\n167185,ship\n167186,deer\n167187,truck\n167188,cat\n167189,airplane\n167190,automobile\n167191,bird\n167192,bird\n167193,bird\n167194,ship\n167195,airplane\n167196,dog\n167197,dog\n167198,frog\n167199,cat\n167200,horse\n167201,bird\n167202,automobile\n167203,airplane\n167204,automobile\n167205,horse\n167206,frog\n167207,cat\n167208,truck\n167209,truck\n167210,deer\n167211,airplane\n167212,automobile\n167213,horse\n167214,deer\n167215,dog\n167216,truck\n167217,airplane\n167218,cat\n167219,horse\n167220,deer\n167221,frog\n167222,deer\n167223,cat\n167224,bird\n167225,cat\n167226,cat\n167227,deer\n167228,cat\n167229,automobile\n167230,truck\n167231,deer\n167232,automobile\n167233,cat\n167234,cat\n167235,airplane\n167236,cat\n167237,truck\n167238,truck\n167239,horse\n167240,dog\n167241,truck\n167242,dog\n167243,cat\n167244,ship\n167245,truck\n167246,airplane\n167247,ship\n167248,ship\n167249,ship\n167250,dog\n167251,ship\n167252,ship\n167253,deer\n167254,frog\n167255,ship\n167256,cat\n167257,bird\n167258,bird\n167259,deer\n167260,airplane\n167261,frog\n167262,airplane\n167263,frog\n167264,airplane\n167265,truck\n167266,dog\n167267,cat\n167268,deer\n167269,ship\n167270,truck\n167271,frog\n167272,automobile\n167273,bird\n167274,cat\n167275,dog\n167276,cat\n167277,cat\n167278,horse\n167279,frog\n167280,frog\n167281,cat\n167282,bird\n167283,horse\n167284,frog\n167285,ship\n167286,bird\n167287,automobile\n167288,cat\n167289,automobile\n167290,automobile\n167291,deer\n167292,frog\n167293,airplane\n167294,truck\n167295,horse\n167296,truck\n167297,horse\n167298,deer\n167299,deer\n167300,deer\n167301,frog\n167302,dog\n167303,frog\n167304,dog\n167305,cat\n167306,deer\n167307,truck\n167308,cat\n167309,ship\n167310,ship\n167311,ship\n167312,ship\n167313,cat\n167314,ship\n167315,truck\n167316,frog\n167317,deer\n167318,deer\n167319,horse\n167320,horse\n167321,frog\n167322,cat\n167323,airplane\n167324,deer\n167325,airplane\n167326,truck\n167327,deer\n167328,dog\n167329,ship\n167330,deer\n167331,dog\n167332,dog\n167333,automobile\n167334,cat\n167335,ship\n167336,frog\n167337,airplane\n167338,horse\n167339,horse\n167340,frog\n167341,automobile\n167342,deer\n167343,cat\n167344,automobile\n167345,cat\n167346,bird\n167347,dog\n167348,truck\n167349,ship\n167350,airplane\n167351,truck\n167352,truck\n167353,deer\n167354,airplane\n167355,automobile\n167356,horse\n167357,horse\n167358,truck\n167359,cat\n167360,ship\n167361,airplane\n167362,dog\n167363,dog\n167364,deer\n167365,horse\n167366,bird\n167367,deer\n167368,deer\n167369,truck\n167370,dog\n167371,horse\n167372,deer\n167373,frog\n167374,cat\n167375,deer\n167376,ship\n167377,airplane\n167378,horse\n167379,ship\n167380,automobile\n167381,horse\n167382,cat\n167383,deer\n167384,deer\n167385,ship\n167386,deer\n167387,frog\n167388,cat\n167389,frog\n167390,frog\n167391,bird\n167392,truck\n167393,truck\n167394,horse\n167395,ship\n167396,cat\n167397,ship\n167398,horse\n167399,ship\n167400,ship\n167401,truck\n167402,truck\n167403,automobile\n167404,deer\n167405,automobile\n167406,horse\n167407,truck\n167408,airplane\n167409,cat\n167410,airplane\n167411,truck\n167412,cat\n167413,truck\n167414,truck\n167415,deer\n167416,horse\n167417,deer\n167418,truck\n167419,frog\n167420,bird\n167421,cat\n167422,dog\n167423,dog\n167424,airplane\n167425,ship\n167426,bird\n167427,frog\n167428,frog\n167429,automobile\n167430,bird\n167431,ship\n167432,ship\n167433,horse\n167434,ship\n167435,frog\n167436,automobile\n167437,frog\n167438,deer\n167439,dog\n167440,deer\n167441,deer\n167442,ship\n167443,automobile\n167444,cat\n167445,truck\n167446,bird\n167447,deer\n167448,truck\n167449,cat\n167450,deer\n167451,bird\n167452,ship\n167453,ship\n167454,automobile\n167455,frog\n167456,truck\n167457,dog\n167458,automobile\n167459,airplane\n167460,dog\n167461,cat\n167462,airplane\n167463,deer\n167464,dog\n167465,deer\n167466,frog\n167467,bird\n167468,truck\n167469,truck\n167470,deer\n167471,ship\n167472,ship\n167473,bird\n167474,dog\n167475,cat\n167476,deer\n167477,cat\n167478,dog\n167479,cat\n167480,automobile\n167481,deer\n167482,bird\n167483,deer\n167484,automobile\n167485,truck\n167486,truck\n167487,ship\n167488,horse\n167489,dog\n167490,deer\n167491,frog\n167492,frog\n167493,truck\n167494,deer\n167495,cat\n167496,deer\n167497,dog\n167498,horse\n167499,frog\n167500,cat\n167501,horse\n167502,cat\n167503,deer\n167504,automobile\n167505,cat\n167506,truck\n167507,frog\n167508,truck\n167509,bird\n167510,horse\n167511,bird\n167512,frog\n167513,ship\n167514,truck\n167515,deer\n167516,cat\n167517,horse\n167518,horse\n167519,cat\n167520,cat\n167521,horse\n167522,automobile\n167523,airplane\n167524,truck\n167525,deer\n167526,ship\n167527,deer\n167528,frog\n167529,deer\n167530,frog\n167531,deer\n167532,frog\n167533,ship\n167534,horse\n167535,automobile\n167536,airplane\n167537,bird\n167538,deer\n167539,horse\n167540,deer\n167541,bird\n167542,deer\n167543,dog\n167544,deer\n167545,deer\n167546,automobile\n167547,dog\n167548,cat\n167549,dog\n167550,airplane\n167551,frog\n167552,deer\n167553,ship\n167554,frog\n167555,truck\n167556,truck\n167557,cat\n167558,automobile\n167559,bird\n167560,deer\n167561,ship\n167562,dog\n167563,bird\n167564,cat\n167565,bird\n167566,dog\n167567,horse\n167568,dog\n167569,truck\n167570,deer\n167571,ship\n167572,automobile\n167573,ship\n167574,automobile\n167575,horse\n167576,automobile\n167577,dog\n167578,dog\n167579,ship\n167580,automobile\n167581,dog\n167582,ship\n167583,dog\n167584,horse\n167585,frog\n167586,cat\n167587,horse\n167588,cat\n167589,frog\n167590,horse\n167591,deer\n167592,frog\n167593,frog\n167594,dog\n167595,dog\n167596,truck\n167597,ship\n167598,frog\n167599,truck\n167600,horse\n167601,automobile\n167602,airplane\n167603,cat\n167604,cat\n167605,cat\n167606,truck\n167607,dog\n167608,airplane\n167609,horse\n167610,dog\n167611,ship\n167612,horse\n167613,frog\n167614,horse\n167615,cat\n167616,airplane\n167617,bird\n167618,deer\n167619,airplane\n167620,truck\n167621,ship\n167622,bird\n167623,bird\n167624,horse\n167625,frog\n167626,deer\n167627,horse\n167628,cat\n167629,bird\n167630,horse\n167631,frog\n167632,frog\n167633,frog\n167634,airplane\n167635,truck\n167636,ship\n167637,deer\n167638,ship\n167639,airplane\n167640,horse\n167641,automobile\n167642,deer\n167643,frog\n167644,deer\n167645,automobile\n167646,automobile\n167647,horse\n167648,truck\n167649,dog\n167650,truck\n167651,dog\n167652,truck\n167653,deer\n167654,deer\n167655,deer\n167656,frog\n167657,ship\n167658,deer\n167659,cat\n167660,ship\n167661,airplane\n167662,deer\n167663,truck\n167664,airplane\n167665,truck\n167666,cat\n167667,cat\n167668,deer\n167669,dog\n167670,deer\n167671,truck\n167672,cat\n167673,deer\n167674,cat\n167675,ship\n167676,cat\n167677,cat\n167678,automobile\n167679,bird\n167680,cat\n167681,truck\n167682,cat\n167683,frog\n167684,horse\n167685,dog\n167686,cat\n167687,dog\n167688,deer\n167689,frog\n167690,dog\n167691,ship\n167692,frog\n167693,horse\n167694,horse\n167695,airplane\n167696,cat\n167697,dog\n167698,frog\n167699,frog\n167700,deer\n167701,deer\n167702,cat\n167703,bird\n167704,frog\n167705,ship\n167706,frog\n167707,bird\n167708,airplane\n167709,bird\n167710,bird\n167711,airplane\n167712,cat\n167713,bird\n167714,deer\n167715,airplane\n167716,frog\n167717,bird\n167718,truck\n167719,frog\n167720,deer\n167721,bird\n167722,automobile\n167723,automobile\n167724,deer\n167725,automobile\n167726,deer\n167727,airplane\n167728,frog\n167729,frog\n167730,ship\n167731,ship\n167732,truck\n167733,bird\n167734,deer\n167735,deer\n167736,airplane\n167737,automobile\n167738,deer\n167739,frog\n167740,dog\n167741,automobile\n167742,horse\n167743,deer\n167744,ship\n167745,horse\n167746,horse\n167747,airplane\n167748,ship\n167749,frog\n167750,ship\n167751,deer\n167752,cat\n167753,automobile\n167754,bird\n167755,frog\n167756,horse\n167757,ship\n167758,cat\n167759,frog\n167760,truck\n167761,cat\n167762,frog\n167763,cat\n167764,truck\n167765,dog\n167766,frog\n167767,dog\n167768,truck\n167769,dog\n167770,ship\n167771,frog\n167772,deer\n167773,deer\n167774,truck\n167775,dog\n167776,automobile\n167777,ship\n167778,truck\n167779,automobile\n167780,automobile\n167781,automobile\n167782,bird\n167783,dog\n167784,deer\n167785,dog\n167786,bird\n167787,ship\n167788,ship\n167789,dog\n167790,ship\n167791,dog\n167792,horse\n167793,deer\n167794,dog\n167795,cat\n167796,frog\n167797,cat\n167798,deer\n167799,deer\n167800,truck\n167801,frog\n167802,bird\n167803,dog\n167804,deer\n167805,ship\n167806,cat\n167807,cat\n167808,deer\n167809,cat\n167810,bird\n167811,ship\n167812,ship\n167813,airplane\n167814,horse\n167815,dog\n167816,deer\n167817,airplane\n167818,bird\n167819,bird\n167820,frog\n167821,airplane\n167822,automobile\n167823,cat\n167824,cat\n167825,dog\n167826,cat\n167827,cat\n167828,dog\n167829,deer\n167830,deer\n167831,ship\n167832,bird\n167833,frog\n167834,dog\n167835,dog\n167836,frog\n167837,airplane\n167838,deer\n167839,dog\n167840,truck\n167841,dog\n167842,airplane\n167843,bird\n167844,airplane\n167845,deer\n167846,frog\n167847,cat\n167848,dog\n167849,automobile\n167850,cat\n167851,frog\n167852,truck\n167853,automobile\n167854,dog\n167855,airplane\n167856,frog\n167857,deer\n167858,airplane\n167859,truck\n167860,dog\n167861,frog\n167862,cat\n167863,truck\n167864,ship\n167865,ship\n167866,deer\n167867,truck\n167868,bird\n167869,bird\n167870,frog\n167871,deer\n167872,truck\n167873,cat\n167874,horse\n167875,deer\n167876,horse\n167877,cat\n167878,truck\n167879,cat\n167880,deer\n167881,airplane\n167882,cat\n167883,airplane\n167884,horse\n167885,horse\n167886,airplane\n167887,horse\n167888,horse\n167889,horse\n167890,airplane\n167891,bird\n167892,dog\n167893,dog\n167894,deer\n167895,airplane\n167896,truck\n167897,deer\n167898,cat\n167899,horse\n167900,cat\n167901,cat\n167902,bird\n167903,ship\n167904,automobile\n167905,automobile\n167906,frog\n167907,frog\n167908,truck\n167909,ship\n167910,cat\n167911,horse\n167912,cat\n167913,horse\n167914,bird\n167915,cat\n167916,deer\n167917,cat\n167918,deer\n167919,deer\n167920,cat\n167921,bird\n167922,ship\n167923,automobile\n167924,airplane\n167925,cat\n167926,frog\n167927,horse\n167928,dog\n167929,bird\n167930,truck\n167931,horse\n167932,cat\n167933,ship\n167934,frog\n167935,frog\n167936,airplane\n167937,cat\n167938,deer\n167939,dog\n167940,dog\n167941,bird\n167942,deer\n167943,horse\n167944,deer\n167945,frog\n167946,ship\n167947,frog\n167948,truck\n167949,cat\n167950,horse\n167951,frog\n167952,automobile\n167953,cat\n167954,dog\n167955,frog\n167956,airplane\n167957,dog\n167958,bird\n167959,frog\n167960,deer\n167961,airplane\n167962,dog\n167963,deer\n167964,automobile\n167965,deer\n167966,deer\n167967,truck\n167968,dog\n167969,airplane\n167970,cat\n167971,dog\n167972,automobile\n167973,deer\n167974,airplane\n167975,horse\n167976,automobile\n167977,horse\n167978,automobile\n167979,frog\n167980,horse\n167981,cat\n167982,automobile\n167983,dog\n167984,frog\n167985,dog\n167986,cat\n167987,bird\n167988,deer\n167989,dog\n167990,cat\n167991,dog\n167992,cat\n167993,ship\n167994,airplane\n167995,cat\n167996,cat\n167997,deer\n167998,airplane\n167999,airplane\n168000,deer\n168001,airplane\n168002,deer\n168003,deer\n168004,ship\n168005,ship\n168006,ship\n168007,airplane\n168008,deer\n168009,bird\n168010,airplane\n168011,horse\n168012,horse\n168013,ship\n168014,frog\n168015,deer\n168016,cat\n168017,airplane\n168018,bird\n168019,bird\n168020,horse\n168021,airplane\n168022,horse\n168023,deer\n168024,bird\n168025,deer\n168026,frog\n168027,bird\n168028,bird\n168029,automobile\n168030,frog\n168031,horse\n168032,deer\n168033,deer\n168034,ship\n168035,cat\n168036,horse\n168037,dog\n168038,automobile\n168039,deer\n168040,truck\n168041,bird\n168042,horse\n168043,bird\n168044,airplane\n168045,ship\n168046,airplane\n168047,frog\n168048,horse\n168049,ship\n168050,ship\n168051,ship\n168052,airplane\n168053,cat\n168054,horse\n168055,ship\n168056,horse\n168057,truck\n168058,deer\n168059,frog\n168060,airplane\n168061,cat\n168062,dog\n168063,truck\n168064,deer\n168065,horse\n168066,deer\n168067,dog\n168068,airplane\n168069,airplane\n168070,cat\n168071,dog\n168072,ship\n168073,horse\n168074,frog\n168075,cat\n168076,deer\n168077,truck\n168078,frog\n168079,automobile\n168080,horse\n168081,bird\n168082,horse\n168083,frog\n168084,truck\n168085,frog\n168086,deer\n168087,automobile\n168088,horse\n168089,dog\n168090,frog\n168091,horse\n168092,truck\n168093,deer\n168094,frog\n168095,bird\n168096,frog\n168097,truck\n168098,airplane\n168099,deer\n168100,cat\n168101,airplane\n168102,dog\n168103,truck\n168104,cat\n168105,ship\n168106,horse\n168107,dog\n168108,deer\n168109,automobile\n168110,frog\n168111,frog\n168112,horse\n168113,deer\n168114,horse\n168115,truck\n168116,truck\n168117,bird\n168118,frog\n168119,truck\n168120,dog\n168121,cat\n168122,truck\n168123,horse\n168124,frog\n168125,deer\n168126,automobile\n168127,automobile\n168128,deer\n168129,truck\n168130,automobile\n168131,truck\n168132,bird\n168133,cat\n168134,frog\n168135,ship\n168136,bird\n168137,dog\n168138,airplane\n168139,automobile\n168140,truck\n168141,cat\n168142,dog\n168143,automobile\n168144,horse\n168145,horse\n168146,automobile\n168147,frog\n168148,ship\n168149,dog\n168150,deer\n168151,deer\n168152,airplane\n168153,horse\n168154,dog\n168155,frog\n168156,truck\n168157,cat\n168158,automobile\n168159,horse\n168160,frog\n168161,truck\n168162,airplane\n168163,horse\n168164,deer\n168165,horse\n168166,horse\n168167,dog\n168168,truck\n168169,deer\n168170,cat\n168171,automobile\n168172,cat\n168173,dog\n168174,dog\n168175,cat\n168176,frog\n168177,automobile\n168178,deer\n168179,deer\n168180,horse\n168181,automobile\n168182,cat\n168183,deer\n168184,airplane\n168185,deer\n168186,frog\n168187,horse\n168188,automobile\n168189,bird\n168190,dog\n168191,cat\n168192,horse\n168193,horse\n168194,frog\n168195,dog\n168196,automobile\n168197,cat\n168198,bird\n168199,ship\n168200,bird\n168201,horse\n168202,ship\n168203,truck\n168204,truck\n168205,frog\n168206,dog\n168207,airplane\n168208,cat\n168209,frog\n168210,horse\n168211,dog\n168212,frog\n168213,airplane\n168214,dog\n168215,deer\n168216,horse\n168217,deer\n168218,frog\n168219,horse\n168220,deer\n168221,deer\n168222,horse\n168223,automobile\n168224,deer\n168225,ship\n168226,cat\n168227,ship\n168228,automobile\n168229,dog\n168230,frog\n168231,bird\n168232,ship\n168233,bird\n168234,ship\n168235,automobile\n168236,deer\n168237,deer\n168238,ship\n168239,dog\n168240,cat\n168241,bird\n168242,dog\n168243,deer\n168244,cat\n168245,ship\n168246,cat\n168247,cat\n168248,automobile\n168249,bird\n168250,frog\n168251,frog\n168252,horse\n168253,cat\n168254,frog\n168255,truck\n168256,cat\n168257,deer\n168258,frog\n168259,deer\n168260,truck\n168261,cat\n168262,airplane\n168263,frog\n168264,automobile\n168265,airplane\n168266,cat\n168267,frog\n168268,dog\n168269,frog\n168270,cat\n168271,cat\n168272,frog\n168273,dog\n168274,cat\n168275,cat\n168276,bird\n168277,ship\n168278,horse\n168279,dog\n168280,ship\n168281,airplane\n168282,frog\n168283,horse\n168284,truck\n168285,frog\n168286,truck\n168287,airplane\n168288,truck\n168289,cat\n168290,deer\n168291,truck\n168292,dog\n168293,frog\n168294,dog\n168295,dog\n168296,deer\n168297,cat\n168298,truck\n168299,ship\n168300,ship\n168301,ship\n168302,dog\n168303,airplane\n168304,deer\n168305,ship\n168306,cat\n168307,deer\n168308,horse\n168309,deer\n168310,cat\n168311,dog\n168312,frog\n168313,deer\n168314,truck\n168315,frog\n168316,airplane\n168317,airplane\n168318,horse\n168319,cat\n168320,truck\n168321,ship\n168322,truck\n168323,horse\n168324,horse\n168325,airplane\n168326,truck\n168327,horse\n168328,airplane\n168329,horse\n168330,frog\n168331,frog\n168332,cat\n168333,deer\n168334,frog\n168335,cat\n168336,deer\n168337,airplane\n168338,dog\n168339,deer\n168340,airplane\n168341,deer\n168342,airplane\n168343,airplane\n168344,truck\n168345,airplane\n168346,deer\n168347,cat\n168348,horse\n168349,dog\n168350,bird\n168351,bird\n168352,horse\n168353,airplane\n168354,ship\n168355,dog\n168356,deer\n168357,automobile\n168358,ship\n168359,frog\n168360,airplane\n168361,bird\n168362,cat\n168363,dog\n168364,automobile\n168365,cat\n168366,truck\n168367,dog\n168368,bird\n168369,frog\n168370,bird\n168371,cat\n168372,ship\n168373,deer\n168374,truck\n168375,automobile\n168376,dog\n168377,truck\n168378,bird\n168379,airplane\n168380,deer\n168381,frog\n168382,truck\n168383,cat\n168384,cat\n168385,ship\n168386,frog\n168387,horse\n168388,bird\n168389,cat\n168390,cat\n168391,bird\n168392,horse\n168393,horse\n168394,deer\n168395,frog\n168396,frog\n168397,airplane\n168398,deer\n168399,airplane\n168400,dog\n168401,horse\n168402,automobile\n168403,horse\n168404,deer\n168405,ship\n168406,bird\n168407,frog\n168408,dog\n168409,bird\n168410,frog\n168411,deer\n168412,horse\n168413,cat\n168414,deer\n168415,frog\n168416,cat\n168417,ship\n168418,truck\n168419,frog\n168420,automobile\n168421,dog\n168422,cat\n168423,truck\n168424,dog\n168425,deer\n168426,deer\n168427,horse\n168428,frog\n168429,dog\n168430,dog\n168431,frog\n168432,airplane\n168433,bird\n168434,frog\n168435,frog\n168436,deer\n168437,airplane\n168438,frog\n168439,cat\n168440,bird\n168441,dog\n168442,automobile\n168443,cat\n168444,horse\n168445,truck\n168446,cat\n168447,airplane\n168448,frog\n168449,truck\n168450,automobile\n168451,deer\n168452,deer\n168453,cat\n168454,automobile\n168455,horse\n168456,ship\n168457,horse\n168458,deer\n168459,frog\n168460,frog\n168461,bird\n168462,deer\n168463,airplane\n168464,frog\n168465,bird\n168466,bird\n168467,frog\n168468,dog\n168469,truck\n168470,deer\n168471,truck\n168472,deer\n168473,airplane\n168474,cat\n168475,deer\n168476,dog\n168477,truck\n168478,dog\n168479,truck\n168480,cat\n168481,frog\n168482,automobile\n168483,bird\n168484,automobile\n168485,dog\n168486,cat\n168487,cat\n168488,airplane\n168489,dog\n168490,dog\n168491,frog\n168492,deer\n168493,deer\n168494,airplane\n168495,cat\n168496,bird\n168497,cat\n168498,airplane\n168499,airplane\n168500,dog\n168501,cat\n168502,horse\n168503,deer\n168504,bird\n168505,cat\n168506,bird\n168507,horse\n168508,truck\n168509,horse\n168510,ship\n168511,deer\n168512,horse\n168513,cat\n168514,ship\n168515,truck\n168516,frog\n168517,truck\n168518,horse\n168519,truck\n168520,deer\n168521,airplane\n168522,bird\n168523,deer\n168524,truck\n168525,bird\n168526,frog\n168527,horse\n168528,automobile\n168529,truck\n168530,horse\n168531,cat\n168532,frog\n168533,deer\n168534,dog\n168535,bird\n168536,dog\n168537,automobile\n168538,dog\n168539,airplane\n168540,truck\n168541,dog\n168542,truck\n168543,deer\n168544,deer\n168545,frog\n168546,horse\n168547,frog\n168548,truck\n168549,deer\n168550,bird\n168551,cat\n168552,automobile\n168553,horse\n168554,deer\n168555,deer\n168556,airplane\n168557,deer\n168558,deer\n168559,airplane\n168560,truck\n168561,dog\n168562,bird\n168563,truck\n168564,deer\n168565,dog\n168566,dog\n168567,dog\n168568,truck\n168569,horse\n168570,frog\n168571,cat\n168572,cat\n168573,ship\n168574,deer\n168575,dog\n168576,bird\n168577,frog\n168578,deer\n168579,ship\n168580,airplane\n168581,automobile\n168582,airplane\n168583,bird\n168584,airplane\n168585,horse\n168586,frog\n168587,deer\n168588,truck\n168589,dog\n168590,truck\n168591,truck\n168592,ship\n168593,ship\n168594,deer\n168595,cat\n168596,deer\n168597,truck\n168598,airplane\n168599,truck\n168600,deer\n168601,truck\n168602,bird\n168603,deer\n168604,frog\n168605,truck\n168606,dog\n168607,deer\n168608,deer\n168609,truck\n168610,cat\n168611,cat\n168612,cat\n168613,ship\n168614,airplane\n168615,truck\n168616,horse\n168617,horse\n168618,cat\n168619,automobile\n168620,automobile\n168621,truck\n168622,truck\n168623,bird\n168624,deer\n168625,ship\n168626,truck\n168627,dog\n168628,horse\n168629,bird\n168630,truck\n168631,truck\n168632,truck\n168633,ship\n168634,cat\n168635,horse\n168636,horse\n168637,dog\n168638,cat\n168639,deer\n168640,horse\n168641,frog\n168642,deer\n168643,bird\n168644,truck\n168645,bird\n168646,cat\n168647,dog\n168648,frog\n168649,ship\n168650,bird\n168651,deer\n168652,dog\n168653,cat\n168654,bird\n168655,frog\n168656,truck\n168657,cat\n168658,dog\n168659,horse\n168660,cat\n168661,deer\n168662,automobile\n168663,frog\n168664,deer\n168665,truck\n168666,horse\n168667,horse\n168668,cat\n168669,airplane\n168670,airplane\n168671,dog\n168672,horse\n168673,cat\n168674,frog\n168675,airplane\n168676,bird\n168677,bird\n168678,bird\n168679,dog\n168680,automobile\n168681,horse\n168682,deer\n168683,deer\n168684,dog\n168685,frog\n168686,deer\n168687,dog\n168688,deer\n168689,airplane\n168690,airplane\n168691,deer\n168692,bird\n168693,dog\n168694,horse\n168695,deer\n168696,automobile\n168697,airplane\n168698,ship\n168699,truck\n168700,ship\n168701,dog\n168702,truck\n168703,airplane\n168704,cat\n168705,truck\n168706,ship\n168707,dog\n168708,dog\n168709,cat\n168710,horse\n168711,bird\n168712,deer\n168713,deer\n168714,frog\n168715,bird\n168716,cat\n168717,horse\n168718,airplane\n168719,truck\n168720,dog\n168721,truck\n168722,cat\n168723,deer\n168724,frog\n168725,bird\n168726,truck\n168727,cat\n168728,ship\n168729,airplane\n168730,airplane\n168731,airplane\n168732,horse\n168733,dog\n168734,bird\n168735,dog\n168736,deer\n168737,bird\n168738,cat\n168739,ship\n168740,truck\n168741,cat\n168742,truck\n168743,cat\n168744,bird\n168745,frog\n168746,dog\n168747,deer\n168748,ship\n168749,airplane\n168750,frog\n168751,horse\n168752,automobile\n168753,horse\n168754,horse\n168755,deer\n168756,dog\n168757,automobile\n168758,dog\n168759,deer\n168760,cat\n168761,dog\n168762,deer\n168763,ship\n168764,frog\n168765,ship\n168766,horse\n168767,automobile\n168768,deer\n168769,automobile\n168770,ship\n168771,cat\n168772,horse\n168773,deer\n168774,truck\n168775,horse\n168776,dog\n168777,truck\n168778,truck\n168779,dog\n168780,bird\n168781,ship\n168782,frog\n168783,bird\n168784,automobile\n168785,bird\n168786,airplane\n168787,frog\n168788,ship\n168789,deer\n168790,airplane\n168791,cat\n168792,horse\n168793,airplane\n168794,ship\n168795,bird\n168796,truck\n168797,horse\n168798,cat\n168799,truck\n168800,dog\n168801,dog\n168802,bird\n168803,cat\n168804,dog\n168805,dog\n168806,airplane\n168807,frog\n168808,frog\n168809,truck\n168810,truck\n168811,deer\n168812,cat\n168813,cat\n168814,deer\n168815,automobile\n168816,automobile\n168817,frog\n168818,dog\n168819,cat\n168820,bird\n168821,frog\n168822,dog\n168823,dog\n168824,dog\n168825,frog\n168826,frog\n168827,airplane\n168828,truck\n168829,airplane\n168830,dog\n168831,horse\n168832,truck\n168833,cat\n168834,ship\n168835,dog\n168836,dog\n168837,deer\n168838,automobile\n168839,deer\n168840,horse\n168841,ship\n168842,deer\n168843,cat\n168844,truck\n168845,bird\n168846,cat\n168847,horse\n168848,deer\n168849,ship\n168850,airplane\n168851,frog\n168852,ship\n168853,bird\n168854,cat\n168855,deer\n168856,ship\n168857,airplane\n168858,ship\n168859,cat\n168860,cat\n168861,bird\n168862,frog\n168863,airplane\n168864,truck\n168865,airplane\n168866,automobile\n168867,frog\n168868,airplane\n168869,horse\n168870,bird\n168871,truck\n168872,horse\n168873,horse\n168874,frog\n168875,airplane\n168876,frog\n168877,airplane\n168878,horse\n168879,airplane\n168880,frog\n168881,bird\n168882,cat\n168883,dog\n168884,airplane\n168885,bird\n168886,automobile\n168887,frog\n168888,ship\n168889,ship\n168890,horse\n168891,cat\n168892,deer\n168893,cat\n168894,airplane\n168895,airplane\n168896,dog\n168897,airplane\n168898,automobile\n168899,bird\n168900,deer\n168901,airplane\n168902,horse\n168903,deer\n168904,airplane\n168905,frog\n168906,truck\n168907,deer\n168908,bird\n168909,cat\n168910,dog\n168911,frog\n168912,horse\n168913,deer\n168914,bird\n168915,truck\n168916,frog\n168917,dog\n168918,frog\n168919,deer\n168920,dog\n168921,horse\n168922,deer\n168923,cat\n168924,truck\n168925,deer\n168926,truck\n168927,dog\n168928,bird\n168929,frog\n168930,dog\n168931,automobile\n168932,ship\n168933,cat\n168934,deer\n168935,truck\n168936,truck\n168937,deer\n168938,automobile\n168939,bird\n168940,dog\n168941,bird\n168942,frog\n168943,deer\n168944,airplane\n168945,dog\n168946,dog\n168947,dog\n168948,cat\n168949,horse\n168950,ship\n168951,truck\n168952,cat\n168953,truck\n168954,deer\n168955,deer\n168956,automobile\n168957,cat\n168958,automobile\n168959,deer\n168960,truck\n168961,cat\n168962,cat\n168963,bird\n168964,deer\n168965,airplane\n168966,ship\n168967,automobile\n168968,truck\n168969,deer\n168970,truck\n168971,ship\n168972,cat\n168973,cat\n168974,horse\n168975,bird\n168976,truck\n168977,horse\n168978,deer\n168979,dog\n168980,cat\n168981,truck\n168982,cat\n168983,automobile\n168984,frog\n168985,deer\n168986,dog\n168987,truck\n168988,truck\n168989,truck\n168990,airplane\n168991,horse\n168992,dog\n168993,ship\n168994,deer\n168995,bird\n168996,bird\n168997,automobile\n168998,horse\n168999,cat\n169000,cat\n169001,horse\n169002,horse\n169003,airplane\n169004,frog\n169005,dog\n169006,cat\n169007,ship\n169008,truck\n169009,cat\n169010,frog\n169011,dog\n169012,frog\n169013,ship\n169014,horse\n169015,cat\n169016,ship\n169017,bird\n169018,dog\n169019,cat\n169020,bird\n169021,bird\n169022,cat\n169023,truck\n169024,automobile\n169025,cat\n169026,cat\n169027,deer\n169028,bird\n169029,cat\n169030,bird\n169031,cat\n169032,airplane\n169033,cat\n169034,automobile\n169035,horse\n169036,bird\n169037,deer\n169038,truck\n169039,airplane\n169040,airplane\n169041,dog\n169042,horse\n169043,horse\n169044,truck\n169045,horse\n169046,bird\n169047,dog\n169048,ship\n169049,airplane\n169050,deer\n169051,automobile\n169052,bird\n169053,truck\n169054,horse\n169055,frog\n169056,automobile\n169057,automobile\n169058,truck\n169059,deer\n169060,ship\n169061,cat\n169062,frog\n169063,ship\n169064,truck\n169065,bird\n169066,cat\n169067,dog\n169068,dog\n169069,dog\n169070,cat\n169071,ship\n169072,dog\n169073,automobile\n169074,ship\n169075,bird\n169076,horse\n169077,bird\n169078,horse\n169079,truck\n169080,truck\n169081,automobile\n169082,truck\n169083,dog\n169084,deer\n169085,automobile\n169086,deer\n169087,dog\n169088,truck\n169089,truck\n169090,airplane\n169091,bird\n169092,deer\n169093,frog\n169094,truck\n169095,airplane\n169096,bird\n169097,truck\n169098,horse\n169099,deer\n169100,airplane\n169101,ship\n169102,cat\n169103,ship\n169104,truck\n169105,frog\n169106,cat\n169107,airplane\n169108,cat\n169109,frog\n169110,deer\n169111,dog\n169112,cat\n169113,automobile\n169114,horse\n169115,cat\n169116,truck\n169117,dog\n169118,deer\n169119,deer\n169120,dog\n169121,deer\n169122,deer\n169123,deer\n169124,frog\n169125,deer\n169126,frog\n169127,frog\n169128,dog\n169129,deer\n169130,frog\n169131,airplane\n169132,deer\n169133,automobile\n169134,horse\n169135,cat\n169136,cat\n169137,deer\n169138,deer\n169139,cat\n169140,truck\n169141,deer\n169142,truck\n169143,frog\n169144,cat\n169145,cat\n169146,deer\n169147,horse\n169148,bird\n169149,horse\n169150,cat\n169151,deer\n169152,frog\n169153,deer\n169154,ship\n169155,dog\n169156,deer\n169157,cat\n169158,automobile\n169159,bird\n169160,airplane\n169161,truck\n169162,truck\n169163,truck\n169164,deer\n169165,bird\n169166,deer\n169167,dog\n169168,deer\n169169,automobile\n169170,frog\n169171,airplane\n169172,deer\n169173,dog\n169174,cat\n169175,frog\n169176,cat\n169177,frog\n169178,deer\n169179,cat\n169180,truck\n169181,horse\n169182,ship\n169183,deer\n169184,deer\n169185,frog\n169186,truck\n169187,horse\n169188,truck\n169189,cat\n169190,deer\n169191,bird\n169192,dog\n169193,cat\n169194,airplane\n169195,ship\n169196,ship\n169197,deer\n169198,ship\n169199,dog\n169200,cat\n169201,airplane\n169202,dog\n169203,cat\n169204,bird\n169205,frog\n169206,deer\n169207,frog\n169208,airplane\n169209,automobile\n169210,dog\n169211,dog\n169212,airplane\n169213,truck\n169214,dog\n169215,horse\n169216,cat\n169217,deer\n169218,horse\n169219,deer\n169220,frog\n169221,airplane\n169222,airplane\n169223,horse\n169224,frog\n169225,bird\n169226,truck\n169227,horse\n169228,automobile\n169229,bird\n169230,cat\n169231,deer\n169232,ship\n169233,cat\n169234,truck\n169235,deer\n169236,truck\n169237,bird\n169238,automobile\n169239,airplane\n169240,horse\n169241,airplane\n169242,horse\n169243,deer\n169244,deer\n169245,automobile\n169246,ship\n169247,frog\n169248,bird\n169249,cat\n169250,deer\n169251,ship\n169252,dog\n169253,horse\n169254,bird\n169255,cat\n169256,truck\n169257,deer\n169258,deer\n169259,airplane\n169260,deer\n169261,truck\n169262,frog\n169263,cat\n169264,cat\n169265,truck\n169266,deer\n169267,bird\n169268,deer\n169269,airplane\n169270,deer\n169271,ship\n169272,deer\n169273,truck\n169274,automobile\n169275,airplane\n169276,truck\n169277,frog\n169278,dog\n169279,airplane\n169280,truck\n169281,deer\n169282,deer\n169283,automobile\n169284,bird\n169285,ship\n169286,horse\n169287,airplane\n169288,dog\n169289,automobile\n169290,truck\n169291,frog\n169292,truck\n169293,frog\n169294,dog\n169295,truck\n169296,cat\n169297,cat\n169298,airplane\n169299,bird\n169300,deer\n169301,truck\n169302,truck\n169303,truck\n169304,horse\n169305,airplane\n169306,airplane\n169307,automobile\n169308,cat\n169309,frog\n169310,cat\n169311,frog\n169312,automobile\n169313,airplane\n169314,cat\n169315,truck\n169316,cat\n169317,horse\n169318,deer\n169319,bird\n169320,cat\n169321,bird\n169322,cat\n169323,cat\n169324,horse\n169325,truck\n169326,ship\n169327,dog\n169328,deer\n169329,bird\n169330,bird\n169331,deer\n169332,deer\n169333,cat\n169334,cat\n169335,truck\n169336,cat\n169337,truck\n169338,truck\n169339,cat\n169340,deer\n169341,deer\n169342,frog\n169343,deer\n169344,deer\n169345,dog\n169346,deer\n169347,bird\n169348,deer\n169349,dog\n169350,deer\n169351,bird\n169352,deer\n169353,dog\n169354,bird\n169355,bird\n169356,cat\n169357,automobile\n169358,bird\n169359,horse\n169360,frog\n169361,deer\n169362,airplane\n169363,truck\n169364,ship\n169365,truck\n169366,bird\n169367,airplane\n169368,dog\n169369,ship\n169370,truck\n169371,airplane\n169372,deer\n169373,horse\n169374,automobile\n169375,frog\n169376,cat\n169377,truck\n169378,deer\n169379,automobile\n169380,frog\n169381,airplane\n169382,truck\n169383,deer\n169384,frog\n169385,cat\n169386,horse\n169387,cat\n169388,cat\n169389,dog\n169390,dog\n169391,deer\n169392,cat\n169393,truck\n169394,ship\n169395,ship\n169396,ship\n169397,frog\n169398,cat\n169399,frog\n169400,ship\n169401,cat\n169402,airplane\n169403,cat\n169404,deer\n169405,frog\n169406,frog\n169407,truck\n169408,truck\n169409,bird\n169410,bird\n169411,horse\n169412,bird\n169413,automobile\n169414,dog\n169415,cat\n169416,ship\n169417,horse\n169418,airplane\n169419,frog\n169420,bird\n169421,airplane\n169422,frog\n169423,deer\n169424,cat\n169425,deer\n169426,dog\n169427,truck\n169428,cat\n169429,automobile\n169430,airplane\n169431,bird\n169432,dog\n169433,automobile\n169434,airplane\n169435,horse\n169436,truck\n169437,cat\n169438,cat\n169439,truck\n169440,airplane\n169441,deer\n169442,automobile\n169443,dog\n169444,airplane\n169445,frog\n169446,ship\n169447,cat\n169448,automobile\n169449,truck\n169450,truck\n169451,truck\n169452,dog\n169453,cat\n169454,deer\n169455,deer\n169456,bird\n169457,truck\n169458,airplane\n169459,automobile\n169460,dog\n169461,deer\n169462,dog\n169463,ship\n169464,dog\n169465,automobile\n169466,deer\n169467,automobile\n169468,automobile\n169469,dog\n169470,frog\n169471,cat\n169472,frog\n169473,automobile\n169474,automobile\n169475,bird\n169476,horse\n169477,automobile\n169478,frog\n169479,truck\n169480,frog\n169481,deer\n169482,truck\n169483,automobile\n169484,deer\n169485,bird\n169486,frog\n169487,cat\n169488,bird\n169489,horse\n169490,deer\n169491,bird\n169492,frog\n169493,truck\n169494,truck\n169495,deer\n169496,bird\n169497,ship\n169498,frog\n169499,truck\n169500,cat\n169501,airplane\n169502,automobile\n169503,airplane\n169504,dog\n169505,deer\n169506,truck\n169507,bird\n169508,ship\n169509,airplane\n169510,frog\n169511,frog\n169512,cat\n169513,deer\n169514,horse\n169515,truck\n169516,deer\n169517,frog\n169518,horse\n169519,deer\n169520,horse\n169521,airplane\n169522,frog\n169523,bird\n169524,dog\n169525,deer\n169526,truck\n169527,automobile\n169528,airplane\n169529,cat\n169530,truck\n169531,cat\n169532,frog\n169533,automobile\n169534,bird\n169535,frog\n169536,automobile\n169537,dog\n169538,frog\n169539,bird\n169540,cat\n169541,airplane\n169542,bird\n169543,frog\n169544,truck\n169545,cat\n169546,horse\n169547,cat\n169548,deer\n169549,deer\n169550,frog\n169551,ship\n169552,truck\n169553,bird\n169554,horse\n169555,airplane\n169556,cat\n169557,truck\n169558,automobile\n169559,bird\n169560,frog\n169561,horse\n169562,airplane\n169563,automobile\n169564,cat\n169565,cat\n169566,cat\n169567,cat\n169568,airplane\n169569,truck\n169570,automobile\n169571,frog\n169572,cat\n169573,automobile\n169574,truck\n169575,bird\n169576,ship\n169577,cat\n169578,ship\n169579,airplane\n169580,cat\n169581,frog\n169582,frog\n169583,dog\n169584,bird\n169585,horse\n169586,bird\n169587,dog\n169588,dog\n169589,truck\n169590,deer\n169591,cat\n169592,automobile\n169593,bird\n169594,frog\n169595,deer\n169596,truck\n169597,horse\n169598,deer\n169599,frog\n169600,cat\n169601,ship\n169602,deer\n169603,dog\n169604,deer\n169605,truck\n169606,dog\n169607,deer\n169608,horse\n169609,horse\n169610,horse\n169611,deer\n169612,automobile\n169613,ship\n169614,cat\n169615,truck\n169616,horse\n169617,dog\n169618,deer\n169619,horse\n169620,automobile\n169621,frog\n169622,bird\n169623,dog\n169624,ship\n169625,frog\n169626,cat\n169627,bird\n169628,cat\n169629,bird\n169630,dog\n169631,deer\n169632,bird\n169633,deer\n169634,airplane\n169635,bird\n169636,bird\n169637,cat\n169638,frog\n169639,cat\n169640,frog\n169641,horse\n169642,airplane\n169643,automobile\n169644,cat\n169645,airplane\n169646,automobile\n169647,deer\n169648,horse\n169649,ship\n169650,dog\n169651,cat\n169652,ship\n169653,dog\n169654,bird\n169655,automobile\n169656,deer\n169657,frog\n169658,cat\n169659,bird\n169660,dog\n169661,bird\n169662,airplane\n169663,frog\n169664,deer\n169665,deer\n169666,dog\n169667,cat\n169668,dog\n169669,frog\n169670,horse\n169671,truck\n169672,frog\n169673,airplane\n169674,frog\n169675,automobile\n169676,automobile\n169677,deer\n169678,horse\n169679,truck\n169680,frog\n169681,deer\n169682,deer\n169683,automobile\n169684,bird\n169685,dog\n169686,airplane\n169687,ship\n169688,cat\n169689,dog\n169690,frog\n169691,ship\n169692,deer\n169693,bird\n169694,horse\n169695,frog\n169696,ship\n169697,deer\n169698,horse\n169699,cat\n169700,deer\n169701,truck\n169702,truck\n169703,cat\n169704,deer\n169705,automobile\n169706,horse\n169707,bird\n169708,frog\n169709,truck\n169710,horse\n169711,deer\n169712,deer\n169713,cat\n169714,deer\n169715,ship\n169716,dog\n169717,cat\n169718,truck\n169719,deer\n169720,dog\n169721,automobile\n169722,frog\n169723,ship\n169724,frog\n169725,deer\n169726,dog\n169727,truck\n169728,truck\n169729,cat\n169730,cat\n169731,truck\n169732,truck\n169733,frog\n169734,airplane\n169735,deer\n169736,deer\n169737,bird\n169738,deer\n169739,horse\n169740,deer\n169741,deer\n169742,cat\n169743,ship\n169744,airplane\n169745,truck\n169746,deer\n169747,ship\n169748,horse\n169749,frog\n169750,deer\n169751,automobile\n169752,bird\n169753,dog\n169754,dog\n169755,horse\n169756,horse\n169757,deer\n169758,deer\n169759,truck\n169760,horse\n169761,airplane\n169762,cat\n169763,airplane\n169764,frog\n169765,horse\n169766,ship\n169767,dog\n169768,frog\n169769,cat\n169770,ship\n169771,dog\n169772,dog\n169773,deer\n169774,truck\n169775,bird\n169776,truck\n169777,airplane\n169778,deer\n169779,frog\n169780,cat\n169781,ship\n169782,deer\n169783,frog\n169784,frog\n169785,deer\n169786,cat\n169787,horse\n169788,bird\n169789,airplane\n169790,horse\n169791,cat\n169792,dog\n169793,frog\n169794,frog\n169795,dog\n169796,deer\n169797,cat\n169798,horse\n169799,bird\n169800,dog\n169801,ship\n169802,cat\n169803,truck\n169804,frog\n169805,bird\n169806,truck\n169807,automobile\n169808,automobile\n169809,frog\n169810,truck\n169811,ship\n169812,truck\n169813,horse\n169814,cat\n169815,ship\n169816,dog\n169817,bird\n169818,horse\n169819,cat\n169820,horse\n169821,automobile\n169822,dog\n169823,airplane\n169824,bird\n169825,airplane\n169826,truck\n169827,airplane\n169828,horse\n169829,airplane\n169830,horse\n169831,frog\n169832,frog\n169833,deer\n169834,ship\n169835,ship\n169836,airplane\n169837,deer\n169838,automobile\n169839,deer\n169840,airplane\n169841,truck\n169842,dog\n169843,automobile\n169844,frog\n169845,airplane\n169846,cat\n169847,airplane\n169848,truck\n169849,ship\n169850,cat\n169851,cat\n169852,bird\n169853,frog\n169854,bird\n169855,truck\n169856,ship\n169857,cat\n169858,dog\n169859,horse\n169860,ship\n169861,dog\n169862,dog\n169863,truck\n169864,cat\n169865,automobile\n169866,dog\n169867,horse\n169868,airplane\n169869,deer\n169870,deer\n169871,dog\n169872,deer\n169873,frog\n169874,frog\n169875,airplane\n169876,frog\n169877,horse\n169878,frog\n169879,ship\n169880,airplane\n169881,horse\n169882,cat\n169883,bird\n169884,frog\n169885,deer\n169886,frog\n169887,cat\n169888,airplane\n169889,cat\n169890,truck\n169891,bird\n169892,frog\n169893,dog\n169894,deer\n169895,dog\n169896,truck\n169897,cat\n169898,deer\n169899,frog\n169900,automobile\n169901,ship\n169902,frog\n169903,dog\n169904,truck\n169905,ship\n169906,dog\n169907,automobile\n169908,frog\n169909,dog\n169910,bird\n169911,airplane\n169912,cat\n169913,truck\n169914,airplane\n169915,bird\n169916,frog\n169917,ship\n169918,cat\n169919,horse\n169920,cat\n169921,horse\n169922,airplane\n169923,frog\n169924,horse\n169925,ship\n169926,frog\n169927,airplane\n169928,ship\n169929,dog\n169930,frog\n169931,ship\n169932,bird\n169933,frog\n169934,cat\n169935,frog\n169936,automobile\n169937,dog\n169938,dog\n169939,horse\n169940,cat\n169941,deer\n169942,dog\n169943,deer\n169944,truck\n169945,bird\n169946,deer\n169947,dog\n169948,truck\n169949,bird\n169950,cat\n169951,bird\n169952,cat\n169953,cat\n169954,cat\n169955,ship\n169956,ship\n169957,deer\n169958,dog\n169959,bird\n169960,airplane\n169961,cat\n169962,truck\n169963,ship\n169964,cat\n169965,horse\n169966,airplane\n169967,airplane\n169968,bird\n169969,deer\n169970,truck\n169971,ship\n169972,truck\n169973,cat\n169974,frog\n169975,cat\n169976,horse\n169977,ship\n169978,automobile\n169979,frog\n169980,horse\n169981,airplane\n169982,deer\n169983,deer\n169984,dog\n169985,horse\n169986,bird\n169987,truck\n169988,cat\n169989,automobile\n169990,airplane\n169991,frog\n169992,frog\n169993,automobile\n169994,cat\n169995,dog\n169996,ship\n169997,cat\n169998,truck\n169999,deer\n170000,frog\n170001,cat\n170002,automobile\n170003,cat\n170004,horse\n170005,horse\n170006,deer\n170007,ship\n170008,cat\n170009,automobile\n170010,frog\n170011,dog\n170012,bird\n170013,truck\n170014,ship\n170015,bird\n170016,frog\n170017,dog\n170018,horse\n170019,deer\n170020,deer\n170021,bird\n170022,frog\n170023,horse\n170024,horse\n170025,bird\n170026,ship\n170027,truck\n170028,automobile\n170029,horse\n170030,cat\n170031,cat\n170032,deer\n170033,truck\n170034,frog\n170035,ship\n170036,airplane\n170037,automobile\n170038,cat\n170039,frog\n170040,cat\n170041,bird\n170042,bird\n170043,airplane\n170044,truck\n170045,deer\n170046,horse\n170047,automobile\n170048,airplane\n170049,truck\n170050,truck\n170051,bird\n170052,horse\n170053,bird\n170054,frog\n170055,ship\n170056,horse\n170057,ship\n170058,dog\n170059,airplane\n170060,frog\n170061,truck\n170062,airplane\n170063,frog\n170064,truck\n170065,frog\n170066,airplane\n170067,horse\n170068,dog\n170069,automobile\n170070,frog\n170071,frog\n170072,bird\n170073,truck\n170074,horse\n170075,deer\n170076,cat\n170077,bird\n170078,frog\n170079,truck\n170080,truck\n170081,horse\n170082,bird\n170083,cat\n170084,airplane\n170085,truck\n170086,dog\n170087,cat\n170088,ship\n170089,bird\n170090,airplane\n170091,deer\n170092,cat\n170093,truck\n170094,bird\n170095,ship\n170096,cat\n170097,bird\n170098,bird\n170099,bird\n170100,cat\n170101,airplane\n170102,truck\n170103,frog\n170104,ship\n170105,bird\n170106,deer\n170107,frog\n170108,bird\n170109,airplane\n170110,truck\n170111,bird\n170112,airplane\n170113,horse\n170114,horse\n170115,dog\n170116,cat\n170117,frog\n170118,ship\n170119,truck\n170120,cat\n170121,frog\n170122,truck\n170123,frog\n170124,automobile\n170125,cat\n170126,frog\n170127,cat\n170128,deer\n170129,ship\n170130,frog\n170131,deer\n170132,automobile\n170133,deer\n170134,dog\n170135,deer\n170136,cat\n170137,bird\n170138,bird\n170139,dog\n170140,cat\n170141,deer\n170142,truck\n170143,dog\n170144,bird\n170145,truck\n170146,ship\n170147,automobile\n170148,truck\n170149,bird\n170150,frog\n170151,dog\n170152,automobile\n170153,airplane\n170154,airplane\n170155,dog\n170156,bird\n170157,cat\n170158,truck\n170159,dog\n170160,airplane\n170161,airplane\n170162,deer\n170163,dog\n170164,deer\n170165,dog\n170166,dog\n170167,frog\n170168,ship\n170169,airplane\n170170,airplane\n170171,truck\n170172,airplane\n170173,horse\n170174,dog\n170175,dog\n170176,airplane\n170177,dog\n170178,cat\n170179,frog\n170180,truck\n170181,horse\n170182,truck\n170183,frog\n170184,dog\n170185,frog\n170186,truck\n170187,deer\n170188,dog\n170189,airplane\n170190,airplane\n170191,bird\n170192,horse\n170193,dog\n170194,automobile\n170195,dog\n170196,dog\n170197,frog\n170198,truck\n170199,frog\n170200,frog\n170201,truck\n170202,horse\n170203,deer\n170204,bird\n170205,bird\n170206,deer\n170207,truck\n170208,automobile\n170209,truck\n170210,frog\n170211,frog\n170212,airplane\n170213,ship\n170214,dog\n170215,airplane\n170216,dog\n170217,cat\n170218,bird\n170219,dog\n170220,ship\n170221,airplane\n170222,horse\n170223,dog\n170224,airplane\n170225,ship\n170226,cat\n170227,airplane\n170228,dog\n170229,truck\n170230,deer\n170231,frog\n170232,ship\n170233,cat\n170234,horse\n170235,automobile\n170236,deer\n170237,automobile\n170238,truck\n170239,cat\n170240,airplane\n170241,bird\n170242,frog\n170243,horse\n170244,deer\n170245,dog\n170246,airplane\n170247,truck\n170248,ship\n170249,deer\n170250,cat\n170251,ship\n170252,truck\n170253,bird\n170254,bird\n170255,cat\n170256,frog\n170257,frog\n170258,truck\n170259,cat\n170260,horse\n170261,truck\n170262,airplane\n170263,frog\n170264,airplane\n170265,dog\n170266,airplane\n170267,deer\n170268,cat\n170269,truck\n170270,bird\n170271,frog\n170272,dog\n170273,airplane\n170274,cat\n170275,truck\n170276,frog\n170277,automobile\n170278,frog\n170279,airplane\n170280,horse\n170281,bird\n170282,dog\n170283,ship\n170284,cat\n170285,dog\n170286,truck\n170287,truck\n170288,horse\n170289,ship\n170290,cat\n170291,horse\n170292,bird\n170293,deer\n170294,cat\n170295,bird\n170296,deer\n170297,truck\n170298,frog\n170299,deer\n170300,automobile\n170301,cat\n170302,deer\n170303,deer\n170304,horse\n170305,deer\n170306,frog\n170307,automobile\n170308,ship\n170309,airplane\n170310,deer\n170311,truck\n170312,truck\n170313,bird\n170314,frog\n170315,bird\n170316,frog\n170317,deer\n170318,ship\n170319,cat\n170320,cat\n170321,dog\n170322,dog\n170323,bird\n170324,dog\n170325,bird\n170326,truck\n170327,dog\n170328,dog\n170329,frog\n170330,dog\n170331,automobile\n170332,automobile\n170333,deer\n170334,ship\n170335,dog\n170336,deer\n170337,frog\n170338,airplane\n170339,dog\n170340,airplane\n170341,frog\n170342,ship\n170343,cat\n170344,deer\n170345,ship\n170346,dog\n170347,horse\n170348,bird\n170349,automobile\n170350,truck\n170351,truck\n170352,truck\n170353,truck\n170354,truck\n170355,truck\n170356,automobile\n170357,cat\n170358,frog\n170359,frog\n170360,automobile\n170361,horse\n170362,horse\n170363,deer\n170364,airplane\n170365,truck\n170366,horse\n170367,cat\n170368,truck\n170369,bird\n170370,dog\n170371,bird\n170372,horse\n170373,bird\n170374,bird\n170375,truck\n170376,deer\n170377,dog\n170378,cat\n170379,bird\n170380,frog\n170381,truck\n170382,truck\n170383,cat\n170384,deer\n170385,automobile\n170386,truck\n170387,bird\n170388,automobile\n170389,truck\n170390,airplane\n170391,cat\n170392,cat\n170393,airplane\n170394,bird\n170395,ship\n170396,truck\n170397,automobile\n170398,ship\n170399,airplane\n170400,cat\n170401,airplane\n170402,horse\n170403,cat\n170404,cat\n170405,cat\n170406,frog\n170407,deer\n170408,cat\n170409,deer\n170410,bird\n170411,cat\n170412,truck\n170413,bird\n170414,airplane\n170415,frog\n170416,dog\n170417,truck\n170418,frog\n170419,dog\n170420,automobile\n170421,ship\n170422,frog\n170423,horse\n170424,truck\n170425,airplane\n170426,bird\n170427,horse\n170428,automobile\n170429,truck\n170430,automobile\n170431,dog\n170432,deer\n170433,frog\n170434,ship\n170435,dog\n170436,dog\n170437,cat\n170438,automobile\n170439,cat\n170440,deer\n170441,deer\n170442,deer\n170443,automobile\n170444,bird\n170445,truck\n170446,airplane\n170447,deer\n170448,ship\n170449,cat\n170450,truck\n170451,bird\n170452,truck\n170453,frog\n170454,truck\n170455,automobile\n170456,deer\n170457,bird\n170458,deer\n170459,deer\n170460,horse\n170461,ship\n170462,ship\n170463,truck\n170464,airplane\n170465,bird\n170466,automobile\n170467,horse\n170468,cat\n170469,deer\n170470,deer\n170471,cat\n170472,frog\n170473,cat\n170474,deer\n170475,bird\n170476,deer\n170477,horse\n170478,cat\n170479,automobile\n170480,dog\n170481,cat\n170482,airplane\n170483,airplane\n170484,truck\n170485,dog\n170486,horse\n170487,automobile\n170488,ship\n170489,dog\n170490,deer\n170491,dog\n170492,bird\n170493,truck\n170494,bird\n170495,automobile\n170496,cat\n170497,dog\n170498,truck\n170499,deer\n170500,automobile\n170501,deer\n170502,dog\n170503,horse\n170504,ship\n170505,frog\n170506,airplane\n170507,ship\n170508,deer\n170509,frog\n170510,deer\n170511,truck\n170512,horse\n170513,dog\n170514,airplane\n170515,ship\n170516,truck\n170517,deer\n170518,bird\n170519,deer\n170520,airplane\n170521,horse\n170522,airplane\n170523,bird\n170524,truck\n170525,cat\n170526,truck\n170527,airplane\n170528,frog\n170529,frog\n170530,cat\n170531,deer\n170532,dog\n170533,deer\n170534,cat\n170535,cat\n170536,frog\n170537,truck\n170538,frog\n170539,deer\n170540,deer\n170541,ship\n170542,airplane\n170543,deer\n170544,airplane\n170545,horse\n170546,frog\n170547,frog\n170548,cat\n170549,dog\n170550,frog\n170551,dog\n170552,airplane\n170553,cat\n170554,ship\n170555,ship\n170556,cat\n170557,deer\n170558,deer\n170559,ship\n170560,horse\n170561,airplane\n170562,cat\n170563,horse\n170564,horse\n170565,cat\n170566,bird\n170567,horse\n170568,horse\n170569,truck\n170570,horse\n170571,horse\n170572,frog\n170573,deer\n170574,bird\n170575,deer\n170576,bird\n170577,ship\n170578,bird\n170579,deer\n170580,bird\n170581,horse\n170582,cat\n170583,airplane\n170584,truck\n170585,cat\n170586,horse\n170587,frog\n170588,truck\n170589,horse\n170590,deer\n170591,truck\n170592,frog\n170593,ship\n170594,frog\n170595,automobile\n170596,horse\n170597,frog\n170598,deer\n170599,horse\n170600,dog\n170601,bird\n170602,automobile\n170603,cat\n170604,horse\n170605,deer\n170606,cat\n170607,truck\n170608,bird\n170609,frog\n170610,cat\n170611,cat\n170612,truck\n170613,bird\n170614,bird\n170615,ship\n170616,bird\n170617,dog\n170618,truck\n170619,ship\n170620,deer\n170621,airplane\n170622,dog\n170623,horse\n170624,deer\n170625,frog\n170626,deer\n170627,frog\n170628,cat\n170629,truck\n170630,ship\n170631,cat\n170632,bird\n170633,truck\n170634,cat\n170635,ship\n170636,automobile\n170637,cat\n170638,airplane\n170639,dog\n170640,cat\n170641,frog\n170642,horse\n170643,cat\n170644,automobile\n170645,ship\n170646,dog\n170647,automobile\n170648,cat\n170649,truck\n170650,horse\n170651,truck\n170652,dog\n170653,truck\n170654,ship\n170655,truck\n170656,horse\n170657,deer\n170658,bird\n170659,deer\n170660,frog\n170661,cat\n170662,deer\n170663,deer\n170664,airplane\n170665,cat\n170666,frog\n170667,cat\n170668,cat\n170669,dog\n170670,ship\n170671,deer\n170672,truck\n170673,truck\n170674,frog\n170675,dog\n170676,frog\n170677,bird\n170678,dog\n170679,deer\n170680,dog\n170681,airplane\n170682,airplane\n170683,truck\n170684,truck\n170685,truck\n170686,truck\n170687,horse\n170688,bird\n170689,cat\n170690,deer\n170691,ship\n170692,cat\n170693,deer\n170694,ship\n170695,airplane\n170696,horse\n170697,frog\n170698,frog\n170699,bird\n170700,airplane\n170701,frog\n170702,bird\n170703,deer\n170704,horse\n170705,truck\n170706,cat\n170707,bird\n170708,truck\n170709,ship\n170710,deer\n170711,frog\n170712,ship\n170713,deer\n170714,ship\n170715,frog\n170716,frog\n170717,automobile\n170718,horse\n170719,cat\n170720,deer\n170721,truck\n170722,dog\n170723,deer\n170724,dog\n170725,horse\n170726,cat\n170727,dog\n170728,dog\n170729,dog\n170730,horse\n170731,cat\n170732,airplane\n170733,dog\n170734,frog\n170735,dog\n170736,dog\n170737,cat\n170738,dog\n170739,ship\n170740,frog\n170741,bird\n170742,ship\n170743,bird\n170744,dog\n170745,deer\n170746,cat\n170747,horse\n170748,frog\n170749,airplane\n170750,frog\n170751,deer\n170752,cat\n170753,truck\n170754,airplane\n170755,deer\n170756,horse\n170757,horse\n170758,truck\n170759,airplane\n170760,deer\n170761,cat\n170762,deer\n170763,truck\n170764,cat\n170765,deer\n170766,deer\n170767,deer\n170768,frog\n170769,bird\n170770,horse\n170771,ship\n170772,airplane\n170773,cat\n170774,ship\n170775,deer\n170776,truck\n170777,airplane\n170778,automobile\n170779,horse\n170780,dog\n170781,frog\n170782,truck\n170783,cat\n170784,truck\n170785,deer\n170786,horse\n170787,airplane\n170788,ship\n170789,horse\n170790,frog\n170791,dog\n170792,dog\n170793,horse\n170794,horse\n170795,deer\n170796,cat\n170797,automobile\n170798,deer\n170799,deer\n170800,deer\n170801,deer\n170802,cat\n170803,frog\n170804,cat\n170805,deer\n170806,bird\n170807,bird\n170808,frog\n170809,cat\n170810,horse\n170811,bird\n170812,deer\n170813,frog\n170814,cat\n170815,bird\n170816,horse\n170817,deer\n170818,dog\n170819,airplane\n170820,frog\n170821,horse\n170822,cat\n170823,frog\n170824,bird\n170825,frog\n170826,horse\n170827,cat\n170828,deer\n170829,ship\n170830,deer\n170831,airplane\n170832,deer\n170833,cat\n170834,cat\n170835,airplane\n170836,frog\n170837,cat\n170838,ship\n170839,cat\n170840,truck\n170841,cat\n170842,horse\n170843,horse\n170844,dog\n170845,cat\n170846,cat\n170847,horse\n170848,automobile\n170849,airplane\n170850,frog\n170851,airplane\n170852,frog\n170853,airplane\n170854,bird\n170855,ship\n170856,deer\n170857,horse\n170858,airplane\n170859,cat\n170860,frog\n170861,bird\n170862,dog\n170863,truck\n170864,deer\n170865,ship\n170866,dog\n170867,deer\n170868,deer\n170869,cat\n170870,dog\n170871,dog\n170872,horse\n170873,horse\n170874,truck\n170875,horse\n170876,automobile\n170877,airplane\n170878,frog\n170879,truck\n170880,truck\n170881,truck\n170882,bird\n170883,bird\n170884,deer\n170885,dog\n170886,deer\n170887,cat\n170888,deer\n170889,frog\n170890,horse\n170891,deer\n170892,deer\n170893,airplane\n170894,cat\n170895,bird\n170896,deer\n170897,dog\n170898,frog\n170899,deer\n170900,frog\n170901,cat\n170902,cat\n170903,truck\n170904,bird\n170905,deer\n170906,frog\n170907,airplane\n170908,automobile\n170909,frog\n170910,bird\n170911,horse\n170912,truck\n170913,truck\n170914,ship\n170915,bird\n170916,horse\n170917,dog\n170918,horse\n170919,horse\n170920,ship\n170921,dog\n170922,airplane\n170923,deer\n170924,ship\n170925,deer\n170926,horse\n170927,ship\n170928,frog\n170929,deer\n170930,dog\n170931,bird\n170932,airplane\n170933,bird\n170934,frog\n170935,cat\n170936,automobile\n170937,automobile\n170938,bird\n170939,cat\n170940,ship\n170941,dog\n170942,cat\n170943,frog\n170944,frog\n170945,deer\n170946,ship\n170947,ship\n170948,cat\n170949,frog\n170950,horse\n170951,cat\n170952,deer\n170953,cat\n170954,cat\n170955,automobile\n170956,frog\n170957,cat\n170958,bird\n170959,frog\n170960,deer\n170961,cat\n170962,deer\n170963,dog\n170964,ship\n170965,horse\n170966,truck\n170967,airplane\n170968,frog\n170969,deer\n170970,cat\n170971,deer\n170972,truck\n170973,automobile\n170974,airplane\n170975,truck\n170976,bird\n170977,bird\n170978,deer\n170979,truck\n170980,frog\n170981,cat\n170982,dog\n170983,dog\n170984,cat\n170985,dog\n170986,truck\n170987,cat\n170988,truck\n170989,bird\n170990,deer\n170991,dog\n170992,dog\n170993,cat\n170994,ship\n170995,truck\n170996,cat\n170997,cat\n170998,dog\n170999,dog\n171000,deer\n171001,cat\n171002,frog\n171003,horse\n171004,deer\n171005,ship\n171006,automobile\n171007,deer\n171008,deer\n171009,deer\n171010,dog\n171011,cat\n171012,bird\n171013,airplane\n171014,frog\n171015,bird\n171016,bird\n171017,ship\n171018,deer\n171019,automobile\n171020,cat\n171021,cat\n171022,automobile\n171023,bird\n171024,ship\n171025,automobile\n171026,bird\n171027,cat\n171028,bird\n171029,deer\n171030,deer\n171031,dog\n171032,deer\n171033,deer\n171034,cat\n171035,truck\n171036,deer\n171037,frog\n171038,cat\n171039,bird\n171040,horse\n171041,cat\n171042,horse\n171043,truck\n171044,deer\n171045,airplane\n171046,horse\n171047,airplane\n171048,truck\n171049,dog\n171050,automobile\n171051,dog\n171052,horse\n171053,airplane\n171054,bird\n171055,frog\n171056,airplane\n171057,cat\n171058,truck\n171059,airplane\n171060,automobile\n171061,dog\n171062,ship\n171063,frog\n171064,horse\n171065,deer\n171066,bird\n171067,frog\n171068,airplane\n171069,truck\n171070,horse\n171071,truck\n171072,deer\n171073,horse\n171074,deer\n171075,automobile\n171076,airplane\n171077,truck\n171078,horse\n171079,truck\n171080,dog\n171081,truck\n171082,dog\n171083,horse\n171084,horse\n171085,dog\n171086,bird\n171087,deer\n171088,frog\n171089,bird\n171090,cat\n171091,dog\n171092,deer\n171093,horse\n171094,frog\n171095,truck\n171096,frog\n171097,truck\n171098,deer\n171099,automobile\n171100,cat\n171101,frog\n171102,dog\n171103,airplane\n171104,airplane\n171105,dog\n171106,dog\n171107,truck\n171108,frog\n171109,bird\n171110,ship\n171111,truck\n171112,bird\n171113,airplane\n171114,horse\n171115,dog\n171116,truck\n171117,bird\n171118,bird\n171119,airplane\n171120,truck\n171121,frog\n171122,cat\n171123,truck\n171124,ship\n171125,horse\n171126,truck\n171127,ship\n171128,airplane\n171129,deer\n171130,bird\n171131,cat\n171132,cat\n171133,deer\n171134,truck\n171135,frog\n171136,horse\n171137,airplane\n171138,deer\n171139,dog\n171140,ship\n171141,dog\n171142,bird\n171143,cat\n171144,deer\n171145,ship\n171146,airplane\n171147,ship\n171148,horse\n171149,dog\n171150,frog\n171151,dog\n171152,cat\n171153,cat\n171154,truck\n171155,bird\n171156,cat\n171157,cat\n171158,truck\n171159,horse\n171160,airplane\n171161,deer\n171162,bird\n171163,horse\n171164,truck\n171165,dog\n171166,cat\n171167,deer\n171168,truck\n171169,automobile\n171170,frog\n171171,ship\n171172,frog\n171173,deer\n171174,horse\n171175,deer\n171176,deer\n171177,horse\n171178,airplane\n171179,deer\n171180,dog\n171181,cat\n171182,horse\n171183,airplane\n171184,truck\n171185,cat\n171186,cat\n171187,frog\n171188,bird\n171189,dog\n171190,deer\n171191,deer\n171192,deer\n171193,cat\n171194,airplane\n171195,automobile\n171196,dog\n171197,frog\n171198,bird\n171199,ship\n171200,bird\n171201,horse\n171202,frog\n171203,truck\n171204,bird\n171205,frog\n171206,deer\n171207,horse\n171208,airplane\n171209,deer\n171210,bird\n171211,ship\n171212,horse\n171213,ship\n171214,cat\n171215,frog\n171216,automobile\n171217,horse\n171218,frog\n171219,truck\n171220,cat\n171221,automobile\n171222,dog\n171223,horse\n171224,ship\n171225,truck\n171226,deer\n171227,truck\n171228,truck\n171229,deer\n171230,truck\n171231,cat\n171232,cat\n171233,ship\n171234,deer\n171235,bird\n171236,deer\n171237,truck\n171238,dog\n171239,dog\n171240,bird\n171241,bird\n171242,deer\n171243,ship\n171244,cat\n171245,truck\n171246,automobile\n171247,deer\n171248,bird\n171249,deer\n171250,ship\n171251,deer\n171252,airplane\n171253,truck\n171254,automobile\n171255,cat\n171256,automobile\n171257,truck\n171258,dog\n171259,dog\n171260,bird\n171261,automobile\n171262,automobile\n171263,truck\n171264,deer\n171265,deer\n171266,dog\n171267,cat\n171268,cat\n171269,horse\n171270,bird\n171271,deer\n171272,automobile\n171273,truck\n171274,automobile\n171275,horse\n171276,airplane\n171277,automobile\n171278,bird\n171279,horse\n171280,cat\n171281,bird\n171282,airplane\n171283,airplane\n171284,cat\n171285,frog\n171286,frog\n171287,truck\n171288,deer\n171289,horse\n171290,dog\n171291,truck\n171292,truck\n171293,airplane\n171294,truck\n171295,cat\n171296,airplane\n171297,horse\n171298,truck\n171299,deer\n171300,airplane\n171301,truck\n171302,cat\n171303,cat\n171304,cat\n171305,dog\n171306,ship\n171307,frog\n171308,cat\n171309,deer\n171310,frog\n171311,cat\n171312,deer\n171313,automobile\n171314,cat\n171315,ship\n171316,truck\n171317,dog\n171318,ship\n171319,frog\n171320,dog\n171321,bird\n171322,horse\n171323,cat\n171324,truck\n171325,automobile\n171326,deer\n171327,bird\n171328,deer\n171329,dog\n171330,frog\n171331,cat\n171332,deer\n171333,dog\n171334,automobile\n171335,deer\n171336,dog\n171337,ship\n171338,cat\n171339,deer\n171340,automobile\n171341,automobile\n171342,cat\n171343,ship\n171344,frog\n171345,dog\n171346,deer\n171347,bird\n171348,frog\n171349,horse\n171350,truck\n171351,airplane\n171352,frog\n171353,horse\n171354,ship\n171355,frog\n171356,cat\n171357,bird\n171358,cat\n171359,ship\n171360,dog\n171361,automobile\n171362,truck\n171363,truck\n171364,cat\n171365,truck\n171366,automobile\n171367,ship\n171368,dog\n171369,bird\n171370,cat\n171371,cat\n171372,ship\n171373,automobile\n171374,dog\n171375,airplane\n171376,bird\n171377,dog\n171378,airplane\n171379,airplane\n171380,cat\n171381,airplane\n171382,airplane\n171383,dog\n171384,frog\n171385,cat\n171386,truck\n171387,horse\n171388,deer\n171389,ship\n171390,cat\n171391,cat\n171392,cat\n171393,deer\n171394,bird\n171395,deer\n171396,deer\n171397,frog\n171398,horse\n171399,cat\n171400,automobile\n171401,dog\n171402,deer\n171403,cat\n171404,cat\n171405,dog\n171406,cat\n171407,dog\n171408,cat\n171409,cat\n171410,dog\n171411,ship\n171412,truck\n171413,frog\n171414,deer\n171415,frog\n171416,horse\n171417,automobile\n171418,frog\n171419,ship\n171420,truck\n171421,horse\n171422,truck\n171423,airplane\n171424,bird\n171425,horse\n171426,automobile\n171427,bird\n171428,horse\n171429,cat\n171430,cat\n171431,horse\n171432,frog\n171433,cat\n171434,bird\n171435,bird\n171436,truck\n171437,automobile\n171438,deer\n171439,dog\n171440,deer\n171441,airplane\n171442,ship\n171443,bird\n171444,horse\n171445,horse\n171446,cat\n171447,cat\n171448,truck\n171449,truck\n171450,truck\n171451,airplane\n171452,airplane\n171453,automobile\n171454,ship\n171455,airplane\n171456,truck\n171457,automobile\n171458,bird\n171459,dog\n171460,bird\n171461,dog\n171462,cat\n171463,automobile\n171464,truck\n171465,frog\n171466,dog\n171467,automobile\n171468,dog\n171469,truck\n171470,truck\n171471,ship\n171472,cat\n171473,frog\n171474,frog\n171475,deer\n171476,horse\n171477,airplane\n171478,bird\n171479,airplane\n171480,horse\n171481,airplane\n171482,cat\n171483,frog\n171484,dog\n171485,cat\n171486,automobile\n171487,automobile\n171488,deer\n171489,dog\n171490,airplane\n171491,truck\n171492,truck\n171493,deer\n171494,automobile\n171495,deer\n171496,frog\n171497,frog\n171498,airplane\n171499,cat\n171500,frog\n171501,deer\n171502,deer\n171503,cat\n171504,deer\n171505,dog\n171506,horse\n171507,bird\n171508,deer\n171509,bird\n171510,truck\n171511,horse\n171512,bird\n171513,deer\n171514,frog\n171515,truck\n171516,cat\n171517,ship\n171518,cat\n171519,frog\n171520,truck\n171521,truck\n171522,cat\n171523,deer\n171524,cat\n171525,bird\n171526,cat\n171527,truck\n171528,truck\n171529,truck\n171530,automobile\n171531,dog\n171532,airplane\n171533,deer\n171534,truck\n171535,frog\n171536,truck\n171537,deer\n171538,frog\n171539,dog\n171540,bird\n171541,horse\n171542,cat\n171543,airplane\n171544,horse\n171545,deer\n171546,bird\n171547,ship\n171548,automobile\n171549,bird\n171550,dog\n171551,dog\n171552,frog\n171553,ship\n171554,truck\n171555,cat\n171556,ship\n171557,deer\n171558,bird\n171559,dog\n171560,deer\n171561,ship\n171562,frog\n171563,airplane\n171564,cat\n171565,frog\n171566,airplane\n171567,deer\n171568,deer\n171569,bird\n171570,truck\n171571,dog\n171572,horse\n171573,deer\n171574,ship\n171575,airplane\n171576,deer\n171577,deer\n171578,dog\n171579,frog\n171580,truck\n171581,dog\n171582,frog\n171583,automobile\n171584,dog\n171585,ship\n171586,bird\n171587,dog\n171588,frog\n171589,deer\n171590,frog\n171591,truck\n171592,ship\n171593,ship\n171594,bird\n171595,truck\n171596,truck\n171597,deer\n171598,frog\n171599,airplane\n171600,airplane\n171601,ship\n171602,airplane\n171603,dog\n171604,dog\n171605,bird\n171606,ship\n171607,ship\n171608,automobile\n171609,horse\n171610,truck\n171611,frog\n171612,cat\n171613,dog\n171614,ship\n171615,truck\n171616,frog\n171617,horse\n171618,truck\n171619,horse\n171620,dog\n171621,automobile\n171622,deer\n171623,ship\n171624,ship\n171625,truck\n171626,automobile\n171627,horse\n171628,cat\n171629,deer\n171630,airplane\n171631,airplane\n171632,cat\n171633,automobile\n171634,airplane\n171635,deer\n171636,bird\n171637,dog\n171638,horse\n171639,horse\n171640,ship\n171641,bird\n171642,cat\n171643,cat\n171644,airplane\n171645,bird\n171646,deer\n171647,cat\n171648,automobile\n171649,truck\n171650,cat\n171651,airplane\n171652,ship\n171653,cat\n171654,frog\n171655,frog\n171656,dog\n171657,horse\n171658,frog\n171659,truck\n171660,bird\n171661,frog\n171662,automobile\n171663,bird\n171664,frog\n171665,horse\n171666,airplane\n171667,airplane\n171668,horse\n171669,cat\n171670,cat\n171671,dog\n171672,frog\n171673,deer\n171674,frog\n171675,horse\n171676,horse\n171677,horse\n171678,airplane\n171679,airplane\n171680,frog\n171681,ship\n171682,frog\n171683,ship\n171684,deer\n171685,bird\n171686,frog\n171687,dog\n171688,airplane\n171689,cat\n171690,deer\n171691,bird\n171692,cat\n171693,dog\n171694,bird\n171695,dog\n171696,frog\n171697,truck\n171698,airplane\n171699,truck\n171700,horse\n171701,ship\n171702,frog\n171703,automobile\n171704,airplane\n171705,cat\n171706,dog\n171707,frog\n171708,airplane\n171709,truck\n171710,dog\n171711,cat\n171712,dog\n171713,cat\n171714,cat\n171715,horse\n171716,deer\n171717,horse\n171718,deer\n171719,airplane\n171720,ship\n171721,dog\n171722,ship\n171723,truck\n171724,dog\n171725,truck\n171726,cat\n171727,frog\n171728,deer\n171729,airplane\n171730,bird\n171731,frog\n171732,cat\n171733,automobile\n171734,deer\n171735,cat\n171736,bird\n171737,dog\n171738,bird\n171739,dog\n171740,cat\n171741,deer\n171742,horse\n171743,cat\n171744,ship\n171745,automobile\n171746,automobile\n171747,deer\n171748,horse\n171749,frog\n171750,bird\n171751,truck\n171752,automobile\n171753,cat\n171754,truck\n171755,bird\n171756,deer\n171757,bird\n171758,ship\n171759,airplane\n171760,deer\n171761,bird\n171762,automobile\n171763,airplane\n171764,frog\n171765,horse\n171766,automobile\n171767,deer\n171768,cat\n171769,automobile\n171770,bird\n171771,automobile\n171772,truck\n171773,cat\n171774,cat\n171775,truck\n171776,frog\n171777,horse\n171778,deer\n171779,frog\n171780,dog\n171781,dog\n171782,dog\n171783,truck\n171784,bird\n171785,airplane\n171786,automobile\n171787,automobile\n171788,dog\n171789,deer\n171790,truck\n171791,frog\n171792,dog\n171793,bird\n171794,bird\n171795,ship\n171796,truck\n171797,automobile\n171798,automobile\n171799,horse\n171800,automobile\n171801,bird\n171802,truck\n171803,truck\n171804,bird\n171805,airplane\n171806,frog\n171807,frog\n171808,airplane\n171809,bird\n171810,frog\n171811,cat\n171812,ship\n171813,bird\n171814,frog\n171815,cat\n171816,deer\n171817,truck\n171818,cat\n171819,airplane\n171820,bird\n171821,deer\n171822,deer\n171823,automobile\n171824,bird\n171825,cat\n171826,dog\n171827,automobile\n171828,dog\n171829,deer\n171830,ship\n171831,airplane\n171832,deer\n171833,airplane\n171834,cat\n171835,truck\n171836,dog\n171837,frog\n171838,airplane\n171839,airplane\n171840,bird\n171841,automobile\n171842,truck\n171843,airplane\n171844,automobile\n171845,truck\n171846,dog\n171847,cat\n171848,cat\n171849,automobile\n171850,airplane\n171851,cat\n171852,deer\n171853,automobile\n171854,cat\n171855,automobile\n171856,automobile\n171857,truck\n171858,bird\n171859,automobile\n171860,cat\n171861,deer\n171862,frog\n171863,airplane\n171864,cat\n171865,horse\n171866,horse\n171867,airplane\n171868,truck\n171869,frog\n171870,deer\n171871,cat\n171872,deer\n171873,frog\n171874,truck\n171875,frog\n171876,frog\n171877,dog\n171878,airplane\n171879,ship\n171880,frog\n171881,cat\n171882,deer\n171883,airplane\n171884,deer\n171885,bird\n171886,cat\n171887,airplane\n171888,ship\n171889,horse\n171890,deer\n171891,horse\n171892,bird\n171893,cat\n171894,automobile\n171895,frog\n171896,automobile\n171897,dog\n171898,horse\n171899,deer\n171900,horse\n171901,cat\n171902,airplane\n171903,cat\n171904,bird\n171905,bird\n171906,airplane\n171907,bird\n171908,horse\n171909,deer\n171910,dog\n171911,bird\n171912,truck\n171913,truck\n171914,dog\n171915,frog\n171916,automobile\n171917,ship\n171918,bird\n171919,dog\n171920,frog\n171921,airplane\n171922,frog\n171923,horse\n171924,horse\n171925,deer\n171926,dog\n171927,deer\n171928,deer\n171929,automobile\n171930,bird\n171931,dog\n171932,truck\n171933,truck\n171934,cat\n171935,horse\n171936,frog\n171937,horse\n171938,frog\n171939,truck\n171940,automobile\n171941,truck\n171942,cat\n171943,cat\n171944,ship\n171945,automobile\n171946,dog\n171947,deer\n171948,deer\n171949,cat\n171950,ship\n171951,deer\n171952,deer\n171953,horse\n171954,bird\n171955,horse\n171956,dog\n171957,deer\n171958,automobile\n171959,cat\n171960,frog\n171961,cat\n171962,truck\n171963,cat\n171964,truck\n171965,automobile\n171966,horse\n171967,cat\n171968,ship\n171969,deer\n171970,cat\n171971,bird\n171972,ship\n171973,bird\n171974,deer\n171975,airplane\n171976,ship\n171977,truck\n171978,ship\n171979,airplane\n171980,dog\n171981,deer\n171982,automobile\n171983,cat\n171984,dog\n171985,ship\n171986,dog\n171987,horse\n171988,frog\n171989,bird\n171990,automobile\n171991,airplane\n171992,cat\n171993,cat\n171994,dog\n171995,deer\n171996,ship\n171997,deer\n171998,frog\n171999,deer\n172000,airplane\n172001,truck\n172002,automobile\n172003,airplane\n172004,deer\n172005,deer\n172006,deer\n172007,cat\n172008,ship\n172009,truck\n172010,dog\n172011,horse\n172012,deer\n172013,deer\n172014,deer\n172015,truck\n172016,airplane\n172017,cat\n172018,dog\n172019,cat\n172020,truck\n172021,deer\n172022,frog\n172023,bird\n172024,ship\n172025,dog\n172026,frog\n172027,deer\n172028,deer\n172029,truck\n172030,ship\n172031,deer\n172032,dog\n172033,frog\n172034,airplane\n172035,deer\n172036,cat\n172037,cat\n172038,automobile\n172039,truck\n172040,airplane\n172041,truck\n172042,airplane\n172043,truck\n172044,cat\n172045,deer\n172046,frog\n172047,deer\n172048,deer\n172049,truck\n172050,cat\n172051,bird\n172052,bird\n172053,frog\n172054,cat\n172055,horse\n172056,frog\n172057,truck\n172058,cat\n172059,dog\n172060,dog\n172061,airplane\n172062,automobile\n172063,frog\n172064,deer\n172065,bird\n172066,bird\n172067,frog\n172068,cat\n172069,deer\n172070,horse\n172071,airplane\n172072,deer\n172073,cat\n172074,horse\n172075,deer\n172076,dog\n172077,bird\n172078,horse\n172079,bird\n172080,ship\n172081,bird\n172082,automobile\n172083,frog\n172084,horse\n172085,deer\n172086,cat\n172087,horse\n172088,horse\n172089,automobile\n172090,deer\n172091,dog\n172092,dog\n172093,truck\n172094,airplane\n172095,deer\n172096,cat\n172097,horse\n172098,deer\n172099,bird\n172100,bird\n172101,bird\n172102,dog\n172103,cat\n172104,deer\n172105,deer\n172106,deer\n172107,horse\n172108,frog\n172109,cat\n172110,bird\n172111,bird\n172112,cat\n172113,bird\n172114,bird\n172115,frog\n172116,dog\n172117,cat\n172118,cat\n172119,bird\n172120,truck\n172121,deer\n172122,deer\n172123,truck\n172124,deer\n172125,ship\n172126,horse\n172127,horse\n172128,truck\n172129,deer\n172130,truck\n172131,truck\n172132,frog\n172133,truck\n172134,ship\n172135,cat\n172136,deer\n172137,horse\n172138,airplane\n172139,airplane\n172140,ship\n172141,deer\n172142,deer\n172143,dog\n172144,deer\n172145,airplane\n172146,deer\n172147,airplane\n172148,ship\n172149,cat\n172150,automobile\n172151,horse\n172152,frog\n172153,horse\n172154,automobile\n172155,cat\n172156,deer\n172157,frog\n172158,truck\n172159,frog\n172160,frog\n172161,deer\n172162,frog\n172163,airplane\n172164,horse\n172165,cat\n172166,ship\n172167,dog\n172168,ship\n172169,frog\n172170,automobile\n172171,truck\n172172,bird\n172173,frog\n172174,airplane\n172175,cat\n172176,dog\n172177,frog\n172178,airplane\n172179,cat\n172180,deer\n172181,dog\n172182,truck\n172183,airplane\n172184,frog\n172185,cat\n172186,cat\n172187,ship\n172188,airplane\n172189,dog\n172190,dog\n172191,frog\n172192,frog\n172193,cat\n172194,airplane\n172195,deer\n172196,deer\n172197,truck\n172198,deer\n172199,cat\n172200,cat\n172201,cat\n172202,truck\n172203,bird\n172204,automobile\n172205,horse\n172206,ship\n172207,truck\n172208,cat\n172209,frog\n172210,automobile\n172211,cat\n172212,frog\n172213,frog\n172214,airplane\n172215,frog\n172216,truck\n172217,frog\n172218,automobile\n172219,truck\n172220,cat\n172221,deer\n172222,airplane\n172223,bird\n172224,frog\n172225,dog\n172226,dog\n172227,bird\n172228,deer\n172229,cat\n172230,dog\n172231,horse\n172232,frog\n172233,bird\n172234,horse\n172235,cat\n172236,horse\n172237,dog\n172238,truck\n172239,bird\n172240,horse\n172241,truck\n172242,bird\n172243,truck\n172244,deer\n172245,dog\n172246,deer\n172247,cat\n172248,bird\n172249,cat\n172250,automobile\n172251,ship\n172252,automobile\n172253,frog\n172254,deer\n172255,cat\n172256,deer\n172257,frog\n172258,ship\n172259,bird\n172260,bird\n172261,horse\n172262,horse\n172263,deer\n172264,deer\n172265,cat\n172266,automobile\n172267,frog\n172268,horse\n172269,frog\n172270,airplane\n172271,automobile\n172272,cat\n172273,truck\n172274,ship\n172275,airplane\n172276,horse\n172277,truck\n172278,deer\n172279,horse\n172280,ship\n172281,ship\n172282,deer\n172283,ship\n172284,cat\n172285,horse\n172286,dog\n172287,deer\n172288,frog\n172289,dog\n172290,horse\n172291,airplane\n172292,deer\n172293,frog\n172294,truck\n172295,dog\n172296,ship\n172297,automobile\n172298,cat\n172299,airplane\n172300,cat\n172301,deer\n172302,bird\n172303,frog\n172304,truck\n172305,truck\n172306,cat\n172307,horse\n172308,frog\n172309,airplane\n172310,bird\n172311,horse\n172312,truck\n172313,automobile\n172314,airplane\n172315,ship\n172316,frog\n172317,dog\n172318,truck\n172319,truck\n172320,cat\n172321,truck\n172322,truck\n172323,frog\n172324,cat\n172325,frog\n172326,cat\n172327,dog\n172328,frog\n172329,cat\n172330,deer\n172331,cat\n172332,truck\n172333,frog\n172334,frog\n172335,ship\n172336,dog\n172337,horse\n172338,dog\n172339,cat\n172340,automobile\n172341,horse\n172342,airplane\n172343,truck\n172344,deer\n172345,ship\n172346,frog\n172347,cat\n172348,automobile\n172349,horse\n172350,horse\n172351,deer\n172352,deer\n172353,cat\n172354,bird\n172355,frog\n172356,horse\n172357,truck\n172358,deer\n172359,bird\n172360,truck\n172361,bird\n172362,automobile\n172363,ship\n172364,truck\n172365,cat\n172366,cat\n172367,truck\n172368,dog\n172369,dog\n172370,deer\n172371,cat\n172372,dog\n172373,bird\n172374,truck\n172375,cat\n172376,truck\n172377,airplane\n172378,deer\n172379,ship\n172380,airplane\n172381,truck\n172382,horse\n172383,automobile\n172384,truck\n172385,bird\n172386,truck\n172387,ship\n172388,automobile\n172389,automobile\n172390,airplane\n172391,deer\n172392,dog\n172393,dog\n172394,bird\n172395,automobile\n172396,frog\n172397,dog\n172398,horse\n172399,ship\n172400,bird\n172401,frog\n172402,dog\n172403,frog\n172404,automobile\n172405,horse\n172406,bird\n172407,horse\n172408,horse\n172409,horse\n172410,automobile\n172411,cat\n172412,deer\n172413,airplane\n172414,cat\n172415,ship\n172416,cat\n172417,deer\n172418,dog\n172419,ship\n172420,cat\n172421,dog\n172422,airplane\n172423,deer\n172424,truck\n172425,dog\n172426,frog\n172427,cat\n172428,cat\n172429,truck\n172430,bird\n172431,truck\n172432,deer\n172433,horse\n172434,bird\n172435,truck\n172436,cat\n172437,deer\n172438,automobile\n172439,cat\n172440,frog\n172441,frog\n172442,automobile\n172443,cat\n172444,truck\n172445,cat\n172446,deer\n172447,dog\n172448,truck\n172449,ship\n172450,deer\n172451,frog\n172452,deer\n172453,deer\n172454,cat\n172455,truck\n172456,cat\n172457,ship\n172458,bird\n172459,bird\n172460,cat\n172461,dog\n172462,deer\n172463,ship\n172464,deer\n172465,cat\n172466,dog\n172467,automobile\n172468,deer\n172469,truck\n172470,dog\n172471,deer\n172472,horse\n172473,frog\n172474,bird\n172475,automobile\n172476,deer\n172477,cat\n172478,frog\n172479,ship\n172480,deer\n172481,deer\n172482,dog\n172483,automobile\n172484,deer\n172485,deer\n172486,cat\n172487,cat\n172488,frog\n172489,deer\n172490,frog\n172491,deer\n172492,bird\n172493,truck\n172494,deer\n172495,bird\n172496,frog\n172497,ship\n172498,bird\n172499,cat\n172500,cat\n172501,deer\n172502,truck\n172503,airplane\n172504,ship\n172505,deer\n172506,deer\n172507,deer\n172508,frog\n172509,automobile\n172510,automobile\n172511,dog\n172512,automobile\n172513,deer\n172514,ship\n172515,deer\n172516,horse\n172517,airplane\n172518,deer\n172519,deer\n172520,truck\n172521,deer\n172522,deer\n172523,truck\n172524,deer\n172525,ship\n172526,ship\n172527,ship\n172528,cat\n172529,cat\n172530,cat\n172531,deer\n172532,dog\n172533,deer\n172534,automobile\n172535,ship\n172536,frog\n172537,deer\n172538,deer\n172539,deer\n172540,airplane\n172541,dog\n172542,deer\n172543,airplane\n172544,truck\n172545,cat\n172546,truck\n172547,deer\n172548,bird\n172549,cat\n172550,truck\n172551,truck\n172552,horse\n172553,dog\n172554,airplane\n172555,cat\n172556,bird\n172557,truck\n172558,frog\n172559,bird\n172560,horse\n172561,automobile\n172562,airplane\n172563,cat\n172564,deer\n172565,horse\n172566,truck\n172567,airplane\n172568,deer\n172569,automobile\n172570,deer\n172571,frog\n172572,airplane\n172573,cat\n172574,airplane\n172575,bird\n172576,airplane\n172577,ship\n172578,deer\n172579,deer\n172580,ship\n172581,frog\n172582,deer\n172583,ship\n172584,frog\n172585,cat\n172586,airplane\n172587,frog\n172588,cat\n172589,dog\n172590,bird\n172591,bird\n172592,dog\n172593,deer\n172594,truck\n172595,bird\n172596,horse\n172597,deer\n172598,truck\n172599,ship\n172600,truck\n172601,airplane\n172602,bird\n172603,truck\n172604,truck\n172605,truck\n172606,automobile\n172607,horse\n172608,ship\n172609,truck\n172610,cat\n172611,bird\n172612,horse\n172613,frog\n172614,dog\n172615,airplane\n172616,airplane\n172617,cat\n172618,dog\n172619,airplane\n172620,airplane\n172621,cat\n172622,airplane\n172623,deer\n172624,truck\n172625,dog\n172626,airplane\n172627,automobile\n172628,bird\n172629,automobile\n172630,ship\n172631,ship\n172632,truck\n172633,automobile\n172634,truck\n172635,cat\n172636,frog\n172637,dog\n172638,frog\n172639,horse\n172640,deer\n172641,deer\n172642,cat\n172643,truck\n172644,dog\n172645,deer\n172646,horse\n172647,ship\n172648,dog\n172649,automobile\n172650,deer\n172651,airplane\n172652,cat\n172653,deer\n172654,cat\n172655,automobile\n172656,horse\n172657,horse\n172658,cat\n172659,frog\n172660,frog\n172661,cat\n172662,frog\n172663,cat\n172664,truck\n172665,ship\n172666,frog\n172667,dog\n172668,ship\n172669,frog\n172670,bird\n172671,cat\n172672,airplane\n172673,cat\n172674,airplane\n172675,airplane\n172676,cat\n172677,deer\n172678,deer\n172679,dog\n172680,automobile\n172681,ship\n172682,truck\n172683,ship\n172684,deer\n172685,airplane\n172686,dog\n172687,horse\n172688,automobile\n172689,bird\n172690,frog\n172691,horse\n172692,bird\n172693,automobile\n172694,cat\n172695,truck\n172696,deer\n172697,cat\n172698,cat\n172699,automobile\n172700,horse\n172701,cat\n172702,frog\n172703,ship\n172704,truck\n172705,horse\n172706,deer\n172707,bird\n172708,dog\n172709,deer\n172710,bird\n172711,bird\n172712,bird\n172713,frog\n172714,ship\n172715,truck\n172716,bird\n172717,horse\n172718,ship\n172719,automobile\n172720,frog\n172721,truck\n172722,deer\n172723,deer\n172724,automobile\n172725,deer\n172726,ship\n172727,frog\n172728,ship\n172729,airplane\n172730,frog\n172731,deer\n172732,truck\n172733,horse\n172734,deer\n172735,dog\n172736,truck\n172737,bird\n172738,cat\n172739,cat\n172740,ship\n172741,horse\n172742,automobile\n172743,bird\n172744,airplane\n172745,horse\n172746,truck\n172747,bird\n172748,airplane\n172749,dog\n172750,cat\n172751,truck\n172752,bird\n172753,deer\n172754,truck\n172755,cat\n172756,frog\n172757,frog\n172758,airplane\n172759,cat\n172760,airplane\n172761,cat\n172762,dog\n172763,ship\n172764,truck\n172765,cat\n172766,airplane\n172767,deer\n172768,airplane\n172769,bird\n172770,ship\n172771,frog\n172772,dog\n172773,cat\n172774,deer\n172775,frog\n172776,cat\n172777,cat\n172778,cat\n172779,cat\n172780,cat\n172781,deer\n172782,truck\n172783,automobile\n172784,cat\n172785,bird\n172786,cat\n172787,truck\n172788,deer\n172789,cat\n172790,deer\n172791,truck\n172792,truck\n172793,dog\n172794,ship\n172795,horse\n172796,frog\n172797,truck\n172798,dog\n172799,airplane\n172800,automobile\n172801,deer\n172802,dog\n172803,deer\n172804,horse\n172805,cat\n172806,deer\n172807,frog\n172808,deer\n172809,ship\n172810,dog\n172811,ship\n172812,bird\n172813,deer\n172814,cat\n172815,ship\n172816,automobile\n172817,cat\n172818,dog\n172819,dog\n172820,bird\n172821,automobile\n172822,bird\n172823,ship\n172824,bird\n172825,automobile\n172826,deer\n172827,frog\n172828,deer\n172829,truck\n172830,automobile\n172831,ship\n172832,dog\n172833,ship\n172834,deer\n172835,automobile\n172836,automobile\n172837,frog\n172838,cat\n172839,dog\n172840,automobile\n172841,frog\n172842,ship\n172843,ship\n172844,deer\n172845,horse\n172846,frog\n172847,bird\n172848,deer\n172849,dog\n172850,frog\n172851,ship\n172852,horse\n172853,cat\n172854,bird\n172855,deer\n172856,ship\n172857,ship\n172858,deer\n172859,frog\n172860,dog\n172861,deer\n172862,bird\n172863,dog\n172864,cat\n172865,dog\n172866,horse\n172867,bird\n172868,dog\n172869,bird\n172870,deer\n172871,cat\n172872,truck\n172873,cat\n172874,dog\n172875,horse\n172876,automobile\n172877,automobile\n172878,horse\n172879,ship\n172880,truck\n172881,truck\n172882,frog\n172883,frog\n172884,dog\n172885,cat\n172886,truck\n172887,deer\n172888,horse\n172889,bird\n172890,ship\n172891,ship\n172892,horse\n172893,frog\n172894,bird\n172895,bird\n172896,automobile\n172897,deer\n172898,airplane\n172899,dog\n172900,truck\n172901,frog\n172902,horse\n172903,truck\n172904,automobile\n172905,frog\n172906,deer\n172907,automobile\n172908,frog\n172909,frog\n172910,bird\n172911,truck\n172912,frog\n172913,dog\n172914,horse\n172915,bird\n172916,deer\n172917,automobile\n172918,airplane\n172919,frog\n172920,ship\n172921,frog\n172922,deer\n172923,horse\n172924,truck\n172925,airplane\n172926,cat\n172927,bird\n172928,ship\n172929,horse\n172930,frog\n172931,horse\n172932,airplane\n172933,dog\n172934,frog\n172935,cat\n172936,airplane\n172937,truck\n172938,frog\n172939,dog\n172940,ship\n172941,cat\n172942,deer\n172943,frog\n172944,deer\n172945,deer\n172946,frog\n172947,dog\n172948,automobile\n172949,frog\n172950,dog\n172951,truck\n172952,cat\n172953,frog\n172954,dog\n172955,dog\n172956,horse\n172957,automobile\n172958,cat\n172959,truck\n172960,frog\n172961,ship\n172962,bird\n172963,deer\n172964,cat\n172965,deer\n172966,frog\n172967,dog\n172968,frog\n172969,dog\n172970,deer\n172971,ship\n172972,truck\n172973,cat\n172974,frog\n172975,ship\n172976,ship\n172977,bird\n172978,dog\n172979,frog\n172980,bird\n172981,cat\n172982,frog\n172983,cat\n172984,deer\n172985,horse\n172986,deer\n172987,horse\n172988,airplane\n172989,ship\n172990,cat\n172991,bird\n172992,frog\n172993,bird\n172994,airplane\n172995,cat\n172996,truck\n172997,cat\n172998,deer\n172999,truck\n173000,ship\n173001,automobile\n173002,truck\n173003,airplane\n173004,airplane\n173005,horse\n173006,truck\n173007,dog\n173008,frog\n173009,bird\n173010,airplane\n173011,automobile\n173012,bird\n173013,cat\n173014,deer\n173015,bird\n173016,cat\n173017,truck\n173018,deer\n173019,deer\n173020,cat\n173021,cat\n173022,cat\n173023,bird\n173024,frog\n173025,cat\n173026,dog\n173027,frog\n173028,automobile\n173029,frog\n173030,ship\n173031,cat\n173032,ship\n173033,deer\n173034,bird\n173035,cat\n173036,deer\n173037,cat\n173038,bird\n173039,deer\n173040,horse\n173041,truck\n173042,airplane\n173043,cat\n173044,dog\n173045,automobile\n173046,automobile\n173047,frog\n173048,truck\n173049,automobile\n173050,bird\n173051,automobile\n173052,truck\n173053,ship\n173054,horse\n173055,automobile\n173056,ship\n173057,deer\n173058,truck\n173059,bird\n173060,deer\n173061,bird\n173062,ship\n173063,ship\n173064,horse\n173065,horse\n173066,cat\n173067,deer\n173068,dog\n173069,bird\n173070,bird\n173071,horse\n173072,automobile\n173073,automobile\n173074,frog\n173075,truck\n173076,dog\n173077,bird\n173078,cat\n173079,deer\n173080,deer\n173081,dog\n173082,bird\n173083,frog\n173084,automobile\n173085,automobile\n173086,horse\n173087,bird\n173088,cat\n173089,horse\n173090,bird\n173091,ship\n173092,dog\n173093,bird\n173094,deer\n173095,deer\n173096,frog\n173097,truck\n173098,ship\n173099,ship\n173100,bird\n173101,horse\n173102,automobile\n173103,bird\n173104,bird\n173105,airplane\n173106,cat\n173107,cat\n173108,truck\n173109,frog\n173110,frog\n173111,dog\n173112,cat\n173113,automobile\n173114,bird\n173115,horse\n173116,horse\n173117,deer\n173118,airplane\n173119,automobile\n173120,bird\n173121,dog\n173122,truck\n173123,ship\n173124,ship\n173125,truck\n173126,frog\n173127,bird\n173128,horse\n173129,dog\n173130,airplane\n173131,airplane\n173132,bird\n173133,deer\n173134,bird\n173135,dog\n173136,automobile\n173137,ship\n173138,truck\n173139,cat\n173140,ship\n173141,airplane\n173142,horse\n173143,truck\n173144,truck\n173145,cat\n173146,frog\n173147,cat\n173148,truck\n173149,truck\n173150,cat\n173151,dog\n173152,frog\n173153,deer\n173154,bird\n173155,dog\n173156,deer\n173157,dog\n173158,truck\n173159,airplane\n173160,deer\n173161,deer\n173162,dog\n173163,bird\n173164,deer\n173165,bird\n173166,automobile\n173167,cat\n173168,bird\n173169,dog\n173170,airplane\n173171,bird\n173172,airplane\n173173,deer\n173174,bird\n173175,frog\n173176,dog\n173177,cat\n173178,automobile\n173179,deer\n173180,deer\n173181,bird\n173182,truck\n173183,cat\n173184,bird\n173185,cat\n173186,bird\n173187,cat\n173188,truck\n173189,cat\n173190,horse\n173191,airplane\n173192,airplane\n173193,dog\n173194,dog\n173195,automobile\n173196,deer\n173197,deer\n173198,truck\n173199,horse\n173200,horse\n173201,ship\n173202,horse\n173203,automobile\n173204,truck\n173205,deer\n173206,deer\n173207,truck\n173208,truck\n173209,truck\n173210,ship\n173211,horse\n173212,cat\n173213,frog\n173214,automobile\n173215,airplane\n173216,cat\n173217,ship\n173218,deer\n173219,bird\n173220,bird\n173221,automobile\n173222,horse\n173223,cat\n173224,truck\n173225,ship\n173226,airplane\n173227,cat\n173228,frog\n173229,bird\n173230,bird\n173231,horse\n173232,airplane\n173233,airplane\n173234,frog\n173235,horse\n173236,airplane\n173237,airplane\n173238,bird\n173239,frog\n173240,truck\n173241,cat\n173242,deer\n173243,frog\n173244,dog\n173245,truck\n173246,cat\n173247,horse\n173248,truck\n173249,ship\n173250,airplane\n173251,frog\n173252,bird\n173253,truck\n173254,deer\n173255,horse\n173256,automobile\n173257,bird\n173258,deer\n173259,airplane\n173260,horse\n173261,cat\n173262,cat\n173263,frog\n173264,deer\n173265,automobile\n173266,cat\n173267,truck\n173268,truck\n173269,horse\n173270,airplane\n173271,truck\n173272,horse\n173273,automobile\n173274,bird\n173275,airplane\n173276,horse\n173277,truck\n173278,deer\n173279,truck\n173280,horse\n173281,automobile\n173282,cat\n173283,automobile\n173284,truck\n173285,horse\n173286,bird\n173287,dog\n173288,dog\n173289,cat\n173290,truck\n173291,bird\n173292,horse\n173293,frog\n173294,truck\n173295,horse\n173296,airplane\n173297,deer\n173298,dog\n173299,automobile\n173300,deer\n173301,horse\n173302,deer\n173303,cat\n173304,airplane\n173305,bird\n173306,airplane\n173307,deer\n173308,cat\n173309,automobile\n173310,dog\n173311,horse\n173312,dog\n173313,deer\n173314,airplane\n173315,horse\n173316,horse\n173317,deer\n173318,truck\n173319,cat\n173320,frog\n173321,frog\n173322,truck\n173323,cat\n173324,dog\n173325,cat\n173326,cat\n173327,cat\n173328,airplane\n173329,cat\n173330,automobile\n173331,deer\n173332,truck\n173333,frog\n173334,frog\n173335,deer\n173336,deer\n173337,cat\n173338,airplane\n173339,ship\n173340,horse\n173341,bird\n173342,cat\n173343,dog\n173344,truck\n173345,airplane\n173346,bird\n173347,airplane\n173348,airplane\n173349,deer\n173350,truck\n173351,deer\n173352,cat\n173353,automobile\n173354,bird\n173355,deer\n173356,airplane\n173357,ship\n173358,automobile\n173359,truck\n173360,automobile\n173361,automobile\n173362,bird\n173363,truck\n173364,ship\n173365,automobile\n173366,airplane\n173367,dog\n173368,frog\n173369,deer\n173370,horse\n173371,bird\n173372,truck\n173373,frog\n173374,deer\n173375,cat\n173376,deer\n173377,dog\n173378,horse\n173379,ship\n173380,bird\n173381,deer\n173382,dog\n173383,bird\n173384,airplane\n173385,deer\n173386,ship\n173387,airplane\n173388,automobile\n173389,truck\n173390,dog\n173391,dog\n173392,cat\n173393,ship\n173394,horse\n173395,bird\n173396,airplane\n173397,airplane\n173398,dog\n173399,deer\n173400,cat\n173401,ship\n173402,truck\n173403,ship\n173404,automobile\n173405,automobile\n173406,bird\n173407,frog\n173408,cat\n173409,deer\n173410,deer\n173411,automobile\n173412,deer\n173413,cat\n173414,frog\n173415,automobile\n173416,horse\n173417,cat\n173418,truck\n173419,airplane\n173420,cat\n173421,airplane\n173422,deer\n173423,frog\n173424,cat\n173425,dog\n173426,airplane\n173427,dog\n173428,frog\n173429,cat\n173430,frog\n173431,cat\n173432,deer\n173433,dog\n173434,airplane\n173435,bird\n173436,dog\n173437,frog\n173438,bird\n173439,airplane\n173440,cat\n173441,bird\n173442,cat\n173443,truck\n173444,airplane\n173445,frog\n173446,airplane\n173447,cat\n173448,truck\n173449,ship\n173450,cat\n173451,ship\n173452,airplane\n173453,bird\n173454,bird\n173455,deer\n173456,frog\n173457,dog\n173458,automobile\n173459,airplane\n173460,deer\n173461,airplane\n173462,airplane\n173463,truck\n173464,airplane\n173465,deer\n173466,cat\n173467,deer\n173468,ship\n173469,dog\n173470,frog\n173471,horse\n173472,ship\n173473,frog\n173474,dog\n173475,ship\n173476,deer\n173477,deer\n173478,cat\n173479,bird\n173480,dog\n173481,dog\n173482,dog\n173483,airplane\n173484,dog\n173485,dog\n173486,airplane\n173487,cat\n173488,deer\n173489,horse\n173490,deer\n173491,dog\n173492,frog\n173493,deer\n173494,frog\n173495,truck\n173496,deer\n173497,airplane\n173498,horse\n173499,cat\n173500,truck\n173501,ship\n173502,horse\n173503,truck\n173504,dog\n173505,deer\n173506,truck\n173507,frog\n173508,bird\n173509,deer\n173510,dog\n173511,deer\n173512,cat\n173513,dog\n173514,frog\n173515,deer\n173516,automobile\n173517,ship\n173518,automobile\n173519,frog\n173520,cat\n173521,deer\n173522,cat\n173523,airplane\n173524,truck\n173525,truck\n173526,truck\n173527,truck\n173528,ship\n173529,deer\n173530,cat\n173531,ship\n173532,cat\n173533,bird\n173534,deer\n173535,deer\n173536,deer\n173537,ship\n173538,automobile\n173539,dog\n173540,bird\n173541,frog\n173542,deer\n173543,horse\n173544,frog\n173545,deer\n173546,automobile\n173547,bird\n173548,deer\n173549,horse\n173550,deer\n173551,cat\n173552,deer\n173553,truck\n173554,deer\n173555,cat\n173556,cat\n173557,frog\n173558,dog\n173559,cat\n173560,airplane\n173561,horse\n173562,dog\n173563,truck\n173564,deer\n173565,deer\n173566,automobile\n173567,dog\n173568,dog\n173569,deer\n173570,truck\n173571,deer\n173572,ship\n173573,frog\n173574,deer\n173575,dog\n173576,deer\n173577,ship\n173578,automobile\n173579,cat\n173580,bird\n173581,airplane\n173582,automobile\n173583,dog\n173584,dog\n173585,frog\n173586,airplane\n173587,dog\n173588,dog\n173589,automobile\n173590,deer\n173591,deer\n173592,truck\n173593,truck\n173594,horse\n173595,truck\n173596,horse\n173597,cat\n173598,horse\n173599,dog\n173600,horse\n173601,dog\n173602,horse\n173603,deer\n173604,cat\n173605,deer\n173606,ship\n173607,dog\n173608,cat\n173609,bird\n173610,truck\n173611,ship\n173612,truck\n173613,dog\n173614,dog\n173615,frog\n173616,dog\n173617,truck\n173618,dog\n173619,frog\n173620,truck\n173621,deer\n173622,automobile\n173623,cat\n173624,cat\n173625,horse\n173626,horse\n173627,horse\n173628,deer\n173629,airplane\n173630,bird\n173631,cat\n173632,horse\n173633,airplane\n173634,horse\n173635,truck\n173636,deer\n173637,frog\n173638,airplane\n173639,cat\n173640,deer\n173641,cat\n173642,truck\n173643,cat\n173644,frog\n173645,cat\n173646,deer\n173647,horse\n173648,bird\n173649,cat\n173650,cat\n173651,cat\n173652,truck\n173653,truck\n173654,deer\n173655,bird\n173656,automobile\n173657,airplane\n173658,automobile\n173659,deer\n173660,airplane\n173661,bird\n173662,bird\n173663,frog\n173664,deer\n173665,frog\n173666,cat\n173667,truck\n173668,frog\n173669,deer\n173670,dog\n173671,frog\n173672,ship\n173673,dog\n173674,frog\n173675,cat\n173676,ship\n173677,dog\n173678,dog\n173679,horse\n173680,deer\n173681,bird\n173682,frog\n173683,horse\n173684,ship\n173685,horse\n173686,bird\n173687,dog\n173688,horse\n173689,frog\n173690,automobile\n173691,truck\n173692,cat\n173693,dog\n173694,cat\n173695,automobile\n173696,ship\n173697,dog\n173698,airplane\n173699,automobile\n173700,bird\n173701,airplane\n173702,cat\n173703,horse\n173704,horse\n173705,dog\n173706,dog\n173707,frog\n173708,bird\n173709,ship\n173710,frog\n173711,deer\n173712,truck\n173713,horse\n173714,bird\n173715,deer\n173716,cat\n173717,automobile\n173718,deer\n173719,dog\n173720,deer\n173721,deer\n173722,ship\n173723,frog\n173724,frog\n173725,cat\n173726,deer\n173727,frog\n173728,airplane\n173729,deer\n173730,dog\n173731,deer\n173732,bird\n173733,dog\n173734,horse\n173735,truck\n173736,frog\n173737,ship\n173738,dog\n173739,truck\n173740,ship\n173741,airplane\n173742,cat\n173743,deer\n173744,bird\n173745,cat\n173746,airplane\n173747,bird\n173748,airplane\n173749,airplane\n173750,frog\n173751,frog\n173752,cat\n173753,deer\n173754,automobile\n173755,deer\n173756,cat\n173757,airplane\n173758,ship\n173759,bird\n173760,bird\n173761,ship\n173762,bird\n173763,dog\n173764,cat\n173765,bird\n173766,truck\n173767,airplane\n173768,cat\n173769,cat\n173770,deer\n173771,cat\n173772,cat\n173773,bird\n173774,deer\n173775,cat\n173776,truck\n173777,ship\n173778,airplane\n173779,dog\n173780,cat\n173781,automobile\n173782,horse\n173783,horse\n173784,horse\n173785,bird\n173786,horse\n173787,horse\n173788,cat\n173789,horse\n173790,truck\n173791,cat\n173792,dog\n173793,horse\n173794,frog\n173795,frog\n173796,ship\n173797,cat\n173798,dog\n173799,ship\n173800,dog\n173801,frog\n173802,ship\n173803,horse\n173804,frog\n173805,cat\n173806,ship\n173807,deer\n173808,bird\n173809,dog\n173810,horse\n173811,bird\n173812,automobile\n173813,truck\n173814,bird\n173815,cat\n173816,deer\n173817,horse\n173818,truck\n173819,cat\n173820,ship\n173821,truck\n173822,automobile\n173823,horse\n173824,dog\n173825,automobile\n173826,cat\n173827,truck\n173828,automobile\n173829,dog\n173830,automobile\n173831,cat\n173832,truck\n173833,bird\n173834,bird\n173835,horse\n173836,deer\n173837,airplane\n173838,dog\n173839,cat\n173840,horse\n173841,cat\n173842,frog\n173843,dog\n173844,cat\n173845,automobile\n173846,deer\n173847,deer\n173848,dog\n173849,dog\n173850,frog\n173851,bird\n173852,dog\n173853,truck\n173854,deer\n173855,frog\n173856,frog\n173857,horse\n173858,deer\n173859,automobile\n173860,automobile\n173861,bird\n173862,deer\n173863,ship\n173864,truck\n173865,cat\n173866,bird\n173867,automobile\n173868,horse\n173869,horse\n173870,dog\n173871,frog\n173872,horse\n173873,dog\n173874,deer\n173875,deer\n173876,cat\n173877,truck\n173878,cat\n173879,airplane\n173880,horse\n173881,truck\n173882,dog\n173883,bird\n173884,deer\n173885,automobile\n173886,deer\n173887,automobile\n173888,truck\n173889,ship\n173890,frog\n173891,ship\n173892,bird\n173893,ship\n173894,airplane\n173895,horse\n173896,cat\n173897,frog\n173898,bird\n173899,bird\n173900,dog\n173901,frog\n173902,frog\n173903,horse\n173904,cat\n173905,ship\n173906,horse\n173907,airplane\n173908,frog\n173909,horse\n173910,horse\n173911,automobile\n173912,bird\n173913,bird\n173914,deer\n173915,ship\n173916,deer\n173917,dog\n173918,deer\n173919,deer\n173920,deer\n173921,horse\n173922,cat\n173923,truck\n173924,airplane\n173925,bird\n173926,truck\n173927,bird\n173928,deer\n173929,frog\n173930,airplane\n173931,dog\n173932,dog\n173933,dog\n173934,frog\n173935,ship\n173936,bird\n173937,truck\n173938,deer\n173939,frog\n173940,airplane\n173941,frog\n173942,bird\n173943,frog\n173944,dog\n173945,airplane\n173946,automobile\n173947,ship\n173948,ship\n173949,automobile\n173950,ship\n173951,cat\n173952,truck\n173953,frog\n173954,airplane\n173955,deer\n173956,horse\n173957,automobile\n173958,truck\n173959,ship\n173960,deer\n173961,deer\n173962,bird\n173963,frog\n173964,cat\n173965,automobile\n173966,airplane\n173967,horse\n173968,cat\n173969,automobile\n173970,frog\n173971,truck\n173972,frog\n173973,horse\n173974,automobile\n173975,dog\n173976,horse\n173977,deer\n173978,bird\n173979,horse\n173980,frog\n173981,truck\n173982,cat\n173983,horse\n173984,dog\n173985,deer\n173986,horse\n173987,horse\n173988,dog\n173989,horse\n173990,automobile\n173991,frog\n173992,dog\n173993,automobile\n173994,airplane\n173995,frog\n173996,dog\n173997,cat\n173998,ship\n173999,deer\n174000,ship\n174001,horse\n174002,ship\n174003,ship\n174004,ship\n174005,horse\n174006,dog\n174007,horse\n174008,automobile\n174009,horse\n174010,truck\n174011,deer\n174012,ship\n174013,cat\n174014,truck\n174015,deer\n174016,bird\n174017,truck\n174018,automobile\n174019,automobile\n174020,ship\n174021,deer\n174022,cat\n174023,automobile\n174024,dog\n174025,cat\n174026,horse\n174027,deer\n174028,deer\n174029,deer\n174030,automobile\n174031,ship\n174032,deer\n174033,automobile\n174034,frog\n174035,frog\n174036,frog\n174037,bird\n174038,dog\n174039,cat\n174040,horse\n174041,dog\n174042,truck\n174043,truck\n174044,ship\n174045,cat\n174046,deer\n174047,ship\n174048,horse\n174049,horse\n174050,automobile\n174051,ship\n174052,cat\n174053,cat\n174054,frog\n174055,cat\n174056,dog\n174057,deer\n174058,cat\n174059,horse\n174060,dog\n174061,dog\n174062,frog\n174063,truck\n174064,deer\n174065,dog\n174066,frog\n174067,automobile\n174068,cat\n174069,deer\n174070,ship\n174071,frog\n174072,deer\n174073,deer\n174074,automobile\n174075,frog\n174076,bird\n174077,frog\n174078,frog\n174079,bird\n174080,airplane\n174081,dog\n174082,frog\n174083,deer\n174084,bird\n174085,truck\n174086,horse\n174087,frog\n174088,ship\n174089,truck\n174090,deer\n174091,deer\n174092,horse\n174093,cat\n174094,horse\n174095,ship\n174096,airplane\n174097,dog\n174098,cat\n174099,bird\n174100,deer\n174101,frog\n174102,deer\n174103,cat\n174104,deer\n174105,bird\n174106,ship\n174107,airplane\n174108,horse\n174109,ship\n174110,cat\n174111,ship\n174112,truck\n174113,dog\n174114,deer\n174115,deer\n174116,horse\n174117,airplane\n174118,ship\n174119,automobile\n174120,bird\n174121,truck\n174122,cat\n174123,deer\n174124,cat\n174125,cat\n174126,deer\n174127,dog\n174128,ship\n174129,horse\n174130,cat\n174131,deer\n174132,dog\n174133,ship\n174134,airplane\n174135,airplane\n174136,frog\n174137,frog\n174138,dog\n174139,horse\n174140,airplane\n174141,cat\n174142,horse\n174143,bird\n174144,dog\n174145,deer\n174146,cat\n174147,horse\n174148,frog\n174149,deer\n174150,airplane\n174151,frog\n174152,airplane\n174153,dog\n174154,horse\n174155,cat\n174156,dog\n174157,cat\n174158,truck\n174159,frog\n174160,truck\n174161,ship\n174162,ship\n174163,automobile\n174164,dog\n174165,bird\n174166,airplane\n174167,cat\n174168,deer\n174169,frog\n174170,automobile\n174171,cat\n174172,bird\n174173,frog\n174174,deer\n174175,horse\n174176,cat\n174177,deer\n174178,truck\n174179,dog\n174180,dog\n174181,dog\n174182,airplane\n174183,truck\n174184,deer\n174185,truck\n174186,deer\n174187,deer\n174188,bird\n174189,automobile\n174190,dog\n174191,airplane\n174192,deer\n174193,bird\n174194,truck\n174195,deer\n174196,ship\n174197,ship\n174198,ship\n174199,frog\n174200,frog\n174201,frog\n174202,dog\n174203,cat\n174204,frog\n174205,horse\n174206,cat\n174207,airplane\n174208,automobile\n174209,cat\n174210,dog\n174211,deer\n174212,horse\n174213,frog\n174214,deer\n174215,ship\n174216,bird\n174217,deer\n174218,cat\n174219,cat\n174220,bird\n174221,dog\n174222,truck\n174223,truck\n174224,horse\n174225,frog\n174226,airplane\n174227,deer\n174228,deer\n174229,truck\n174230,deer\n174231,deer\n174232,deer\n174233,ship\n174234,dog\n174235,frog\n174236,bird\n174237,truck\n174238,dog\n174239,frog\n174240,horse\n174241,deer\n174242,bird\n174243,automobile\n174244,bird\n174245,automobile\n174246,bird\n174247,horse\n174248,bird\n174249,horse\n174250,truck\n174251,deer\n174252,ship\n174253,truck\n174254,horse\n174255,truck\n174256,ship\n174257,frog\n174258,deer\n174259,frog\n174260,frog\n174261,cat\n174262,dog\n174263,cat\n174264,deer\n174265,truck\n174266,cat\n174267,dog\n174268,automobile\n174269,deer\n174270,airplane\n174271,cat\n174272,cat\n174273,truck\n174274,cat\n174275,truck\n174276,frog\n174277,deer\n174278,airplane\n174279,deer\n174280,automobile\n174281,automobile\n174282,cat\n174283,automobile\n174284,deer\n174285,deer\n174286,cat\n174287,deer\n174288,dog\n174289,deer\n174290,truck\n174291,horse\n174292,cat\n174293,truck\n174294,truck\n174295,truck\n174296,horse\n174297,dog\n174298,ship\n174299,cat\n174300,horse\n174301,frog\n174302,automobile\n174303,horse\n174304,frog\n174305,frog\n174306,cat\n174307,cat\n174308,frog\n174309,automobile\n174310,cat\n174311,cat\n174312,airplane\n174313,frog\n174314,frog\n174315,cat\n174316,cat\n174317,automobile\n174318,horse\n174319,frog\n174320,horse\n174321,truck\n174322,dog\n174323,bird\n174324,horse\n174325,deer\n174326,horse\n174327,deer\n174328,truck\n174329,automobile\n174330,horse\n174331,frog\n174332,truck\n174333,dog\n174334,bird\n174335,truck\n174336,automobile\n174337,ship\n174338,dog\n174339,dog\n174340,deer\n174341,truck\n174342,cat\n174343,frog\n174344,cat\n174345,automobile\n174346,ship\n174347,airplane\n174348,frog\n174349,dog\n174350,truck\n174351,ship\n174352,cat\n174353,airplane\n174354,bird\n174355,dog\n174356,cat\n174357,deer\n174358,automobile\n174359,bird\n174360,dog\n174361,deer\n174362,dog\n174363,deer\n174364,cat\n174365,truck\n174366,truck\n174367,truck\n174368,frog\n174369,frog\n174370,frog\n174371,truck\n174372,truck\n174373,airplane\n174374,horse\n174375,dog\n174376,deer\n174377,deer\n174378,bird\n174379,automobile\n174380,deer\n174381,deer\n174382,horse\n174383,airplane\n174384,ship\n174385,frog\n174386,cat\n174387,dog\n174388,truck\n174389,cat\n174390,frog\n174391,dog\n174392,frog\n174393,dog\n174394,dog\n174395,deer\n174396,bird\n174397,airplane\n174398,truck\n174399,bird\n174400,airplane\n174401,bird\n174402,horse\n174403,deer\n174404,bird\n174405,automobile\n174406,frog\n174407,airplane\n174408,airplane\n174409,frog\n174410,deer\n174411,cat\n174412,deer\n174413,automobile\n174414,frog\n174415,deer\n174416,deer\n174417,ship\n174418,frog\n174419,truck\n174420,cat\n174421,cat\n174422,horse\n174423,deer\n174424,cat\n174425,truck\n174426,dog\n174427,airplane\n174428,truck\n174429,dog\n174430,frog\n174431,ship\n174432,deer\n174433,airplane\n174434,dog\n174435,dog\n174436,deer\n174437,bird\n174438,airplane\n174439,horse\n174440,airplane\n174441,ship\n174442,frog\n174443,bird\n174444,frog\n174445,frog\n174446,ship\n174447,ship\n174448,dog\n174449,frog\n174450,deer\n174451,automobile\n174452,airplane\n174453,dog\n174454,bird\n174455,frog\n174456,horse\n174457,ship\n174458,truck\n174459,horse\n174460,dog\n174461,deer\n174462,deer\n174463,cat\n174464,dog\n174465,frog\n174466,deer\n174467,automobile\n174468,deer\n174469,frog\n174470,truck\n174471,bird\n174472,truck\n174473,dog\n174474,frog\n174475,horse\n174476,ship\n174477,frog\n174478,cat\n174479,deer\n174480,cat\n174481,deer\n174482,frog\n174483,truck\n174484,bird\n174485,horse\n174486,truck\n174487,bird\n174488,deer\n174489,frog\n174490,truck\n174491,ship\n174492,airplane\n174493,deer\n174494,cat\n174495,frog\n174496,bird\n174497,frog\n174498,airplane\n174499,dog\n174500,dog\n174501,dog\n174502,truck\n174503,bird\n174504,frog\n174505,frog\n174506,cat\n174507,deer\n174508,deer\n174509,deer\n174510,deer\n174511,ship\n174512,bird\n174513,automobile\n174514,cat\n174515,horse\n174516,truck\n174517,truck\n174518,cat\n174519,bird\n174520,airplane\n174521,horse\n174522,cat\n174523,deer\n174524,truck\n174525,deer\n174526,horse\n174527,dog\n174528,deer\n174529,deer\n174530,deer\n174531,airplane\n174532,airplane\n174533,horse\n174534,automobile\n174535,dog\n174536,deer\n174537,cat\n174538,truck\n174539,horse\n174540,deer\n174541,frog\n174542,ship\n174543,truck\n174544,ship\n174545,airplane\n174546,cat\n174547,deer\n174548,horse\n174549,deer\n174550,dog\n174551,dog\n174552,deer\n174553,deer\n174554,frog\n174555,automobile\n174556,bird\n174557,cat\n174558,cat\n174559,airplane\n174560,frog\n174561,horse\n174562,deer\n174563,frog\n174564,truck\n174565,horse\n174566,airplane\n174567,deer\n174568,bird\n174569,dog\n174570,cat\n174571,truck\n174572,cat\n174573,airplane\n174574,truck\n174575,cat\n174576,dog\n174577,dog\n174578,cat\n174579,dog\n174580,horse\n174581,bird\n174582,bird\n174583,bird\n174584,ship\n174585,bird\n174586,cat\n174587,cat\n174588,deer\n174589,deer\n174590,horse\n174591,horse\n174592,automobile\n174593,horse\n174594,bird\n174595,truck\n174596,deer\n174597,frog\n174598,dog\n174599,cat\n174600,automobile\n174601,cat\n174602,deer\n174603,bird\n174604,deer\n174605,deer\n174606,horse\n174607,cat\n174608,deer\n174609,deer\n174610,automobile\n174611,frog\n174612,automobile\n174613,bird\n174614,bird\n174615,horse\n174616,frog\n174617,truck\n174618,cat\n174619,deer\n174620,truck\n174621,horse\n174622,dog\n174623,truck\n174624,cat\n174625,airplane\n174626,frog\n174627,truck\n174628,ship\n174629,bird\n174630,horse\n174631,dog\n174632,horse\n174633,airplane\n174634,airplane\n174635,horse\n174636,horse\n174637,dog\n174638,airplane\n174639,airplane\n174640,cat\n174641,automobile\n174642,airplane\n174643,truck\n174644,deer\n174645,frog\n174646,horse\n174647,ship\n174648,cat\n174649,bird\n174650,horse\n174651,automobile\n174652,frog\n174653,dog\n174654,truck\n174655,truck\n174656,truck\n174657,automobile\n174658,deer\n174659,truck\n174660,dog\n174661,frog\n174662,dog\n174663,airplane\n174664,airplane\n174665,truck\n174666,deer\n174667,deer\n174668,ship\n174669,airplane\n174670,airplane\n174671,cat\n174672,cat\n174673,cat\n174674,truck\n174675,bird\n174676,cat\n174677,cat\n174678,horse\n174679,cat\n174680,cat\n174681,airplane\n174682,deer\n174683,bird\n174684,automobile\n174685,horse\n174686,dog\n174687,bird\n174688,deer\n174689,frog\n174690,cat\n174691,automobile\n174692,deer\n174693,cat\n174694,bird\n174695,dog\n174696,bird\n174697,automobile\n174698,deer\n174699,horse\n174700,dog\n174701,horse\n174702,automobile\n174703,truck\n174704,ship\n174705,airplane\n174706,automobile\n174707,deer\n174708,airplane\n174709,truck\n174710,dog\n174711,cat\n174712,truck\n174713,bird\n174714,frog\n174715,truck\n174716,truck\n174717,deer\n174718,frog\n174719,deer\n174720,horse\n174721,frog\n174722,horse\n174723,cat\n174724,ship\n174725,bird\n174726,frog\n174727,horse\n174728,dog\n174729,deer\n174730,automobile\n174731,cat\n174732,horse\n174733,frog\n174734,ship\n174735,cat\n174736,dog\n174737,truck\n174738,horse\n174739,cat\n174740,frog\n174741,cat\n174742,cat\n174743,dog\n174744,deer\n174745,cat\n174746,truck\n174747,bird\n174748,cat\n174749,frog\n174750,automobile\n174751,truck\n174752,dog\n174753,ship\n174754,automobile\n174755,ship\n174756,dog\n174757,dog\n174758,airplane\n174759,horse\n174760,dog\n174761,ship\n174762,ship\n174763,ship\n174764,truck\n174765,truck\n174766,bird\n174767,truck\n174768,deer\n174769,ship\n174770,ship\n174771,deer\n174772,cat\n174773,cat\n174774,truck\n174775,horse\n174776,bird\n174777,horse\n174778,automobile\n174779,automobile\n174780,truck\n174781,truck\n174782,bird\n174783,ship\n174784,deer\n174785,cat\n174786,ship\n174787,bird\n174788,airplane\n174789,deer\n174790,horse\n174791,cat\n174792,automobile\n174793,automobile\n174794,airplane\n174795,frog\n174796,deer\n174797,ship\n174798,airplane\n174799,frog\n174800,bird\n174801,airplane\n174802,frog\n174803,cat\n174804,deer\n174805,bird\n174806,horse\n174807,dog\n174808,horse\n174809,ship\n174810,horse\n174811,frog\n174812,automobile\n174813,cat\n174814,truck\n174815,ship\n174816,frog\n174817,frog\n174818,cat\n174819,dog\n174820,automobile\n174821,deer\n174822,bird\n174823,horse\n174824,truck\n174825,deer\n174826,cat\n174827,deer\n174828,automobile\n174829,automobile\n174830,dog\n174831,airplane\n174832,bird\n174833,cat\n174834,horse\n174835,dog\n174836,deer\n174837,automobile\n174838,truck\n174839,airplane\n174840,cat\n174841,automobile\n174842,frog\n174843,ship\n174844,horse\n174845,deer\n174846,horse\n174847,cat\n174848,horse\n174849,automobile\n174850,deer\n174851,frog\n174852,truck\n174853,horse\n174854,deer\n174855,dog\n174856,cat\n174857,truck\n174858,automobile\n174859,ship\n174860,ship\n174861,dog\n174862,truck\n174863,bird\n174864,deer\n174865,bird\n174866,ship\n174867,dog\n174868,airplane\n174869,ship\n174870,truck\n174871,deer\n174872,truck\n174873,airplane\n174874,automobile\n174875,ship\n174876,horse\n174877,frog\n174878,airplane\n174879,bird\n174880,frog\n174881,airplane\n174882,frog\n174883,bird\n174884,ship\n174885,airplane\n174886,automobile\n174887,deer\n174888,automobile\n174889,airplane\n174890,airplane\n174891,dog\n174892,dog\n174893,horse\n174894,cat\n174895,airplane\n174896,dog\n174897,frog\n174898,bird\n174899,horse\n174900,ship\n174901,cat\n174902,bird\n174903,deer\n174904,cat\n174905,deer\n174906,automobile\n174907,frog\n174908,cat\n174909,cat\n174910,cat\n174911,dog\n174912,airplane\n174913,deer\n174914,horse\n174915,automobile\n174916,ship\n174917,dog\n174918,cat\n174919,deer\n174920,deer\n174921,airplane\n174922,deer\n174923,truck\n174924,automobile\n174925,automobile\n174926,dog\n174927,horse\n174928,airplane\n174929,deer\n174930,deer\n174931,cat\n174932,cat\n174933,cat\n174934,horse\n174935,deer\n174936,airplane\n174937,deer\n174938,automobile\n174939,horse\n174940,airplane\n174941,cat\n174942,cat\n174943,horse\n174944,dog\n174945,deer\n174946,deer\n174947,dog\n174948,truck\n174949,dog\n174950,airplane\n174951,automobile\n174952,airplane\n174953,horse\n174954,airplane\n174955,cat\n174956,bird\n174957,cat\n174958,deer\n174959,dog\n174960,cat\n174961,automobile\n174962,cat\n174963,automobile\n174964,truck\n174965,dog\n174966,cat\n174967,ship\n174968,deer\n174969,frog\n174970,frog\n174971,truck\n174972,dog\n174973,airplane\n174974,frog\n174975,deer\n174976,ship\n174977,ship\n174978,frog\n174979,frog\n174980,ship\n174981,bird\n174982,truck\n174983,cat\n174984,deer\n174985,dog\n174986,deer\n174987,dog\n174988,horse\n174989,cat\n174990,bird\n174991,airplane\n174992,deer\n174993,cat\n174994,horse\n174995,airplane\n174996,bird\n174997,ship\n174998,bird\n174999,horse\n175000,dog\n175001,bird\n175002,horse\n175003,cat\n175004,deer\n175005,ship\n175006,deer\n175007,bird\n175008,bird\n175009,dog\n175010,ship\n175011,bird\n175012,cat\n175013,truck\n175014,automobile\n175015,truck\n175016,ship\n175017,bird\n175018,horse\n175019,truck\n175020,dog\n175021,deer\n175022,truck\n175023,truck\n175024,cat\n175025,deer\n175026,automobile\n175027,bird\n175028,ship\n175029,frog\n175030,cat\n175031,truck\n175032,dog\n175033,deer\n175034,bird\n175035,cat\n175036,ship\n175037,deer\n175038,cat\n175039,bird\n175040,deer\n175041,dog\n175042,ship\n175043,deer\n175044,deer\n175045,cat\n175046,dog\n175047,deer\n175048,automobile\n175049,dog\n175050,airplane\n175051,dog\n175052,automobile\n175053,horse\n175054,deer\n175055,airplane\n175056,cat\n175057,automobile\n175058,deer\n175059,truck\n175060,automobile\n175061,cat\n175062,frog\n175063,bird\n175064,dog\n175065,cat\n175066,cat\n175067,dog\n175068,airplane\n175069,dog\n175070,cat\n175071,automobile\n175072,bird\n175073,bird\n175074,cat\n175075,bird\n175076,horse\n175077,automobile\n175078,airplane\n175079,ship\n175080,deer\n175081,bird\n175082,truck\n175083,frog\n175084,cat\n175085,bird\n175086,airplane\n175087,airplane\n175088,ship\n175089,ship\n175090,deer\n175091,dog\n175092,ship\n175093,automobile\n175094,dog\n175095,horse\n175096,cat\n175097,frog\n175098,dog\n175099,horse\n175100,airplane\n175101,airplane\n175102,ship\n175103,horse\n175104,truck\n175105,deer\n175106,dog\n175107,ship\n175108,cat\n175109,automobile\n175110,automobile\n175111,truck\n175112,ship\n175113,automobile\n175114,ship\n175115,ship\n175116,deer\n175117,cat\n175118,truck\n175119,cat\n175120,dog\n175121,horse\n175122,automobile\n175123,dog\n175124,dog\n175125,airplane\n175126,automobile\n175127,horse\n175128,cat\n175129,frog\n175130,airplane\n175131,automobile\n175132,deer\n175133,truck\n175134,bird\n175135,deer\n175136,deer\n175137,horse\n175138,dog\n175139,dog\n175140,bird\n175141,truck\n175142,frog\n175143,deer\n175144,bird\n175145,airplane\n175146,truck\n175147,truck\n175148,frog\n175149,airplane\n175150,bird\n175151,deer\n175152,horse\n175153,horse\n175154,frog\n175155,dog\n175156,deer\n175157,frog\n175158,deer\n175159,bird\n175160,automobile\n175161,automobile\n175162,frog\n175163,deer\n175164,ship\n175165,cat\n175166,ship\n175167,horse\n175168,dog\n175169,dog\n175170,dog\n175171,deer\n175172,airplane\n175173,airplane\n175174,deer\n175175,frog\n175176,bird\n175177,airplane\n175178,ship\n175179,automobile\n175180,airplane\n175181,airplane\n175182,dog\n175183,ship\n175184,deer\n175185,airplane\n175186,cat\n175187,truck\n175188,frog\n175189,cat\n175190,bird\n175191,ship\n175192,ship\n175193,deer\n175194,frog\n175195,deer\n175196,bird\n175197,frog\n175198,bird\n175199,cat\n175200,horse\n175201,frog\n175202,cat\n175203,frog\n175204,frog\n175205,cat\n175206,dog\n175207,deer\n175208,deer\n175209,cat\n175210,frog\n175211,deer\n175212,deer\n175213,deer\n175214,bird\n175215,bird\n175216,automobile\n175217,cat\n175218,truck\n175219,dog\n175220,truck\n175221,deer\n175222,ship\n175223,automobile\n175224,ship\n175225,deer\n175226,frog\n175227,airplane\n175228,horse\n175229,automobile\n175230,frog\n175231,bird\n175232,frog\n175233,truck\n175234,frog\n175235,cat\n175236,horse\n175237,automobile\n175238,ship\n175239,dog\n175240,bird\n175241,dog\n175242,automobile\n175243,cat\n175244,bird\n175245,airplane\n175246,deer\n175247,horse\n175248,bird\n175249,cat\n175250,deer\n175251,automobile\n175252,deer\n175253,dog\n175254,airplane\n175255,dog\n175256,airplane\n175257,horse\n175258,bird\n175259,cat\n175260,dog\n175261,deer\n175262,deer\n175263,frog\n175264,ship\n175265,horse\n175266,truck\n175267,dog\n175268,truck\n175269,airplane\n175270,automobile\n175271,deer\n175272,bird\n175273,ship\n175274,truck\n175275,dog\n175276,truck\n175277,dog\n175278,horse\n175279,frog\n175280,cat\n175281,automobile\n175282,cat\n175283,airplane\n175284,ship\n175285,cat\n175286,horse\n175287,frog\n175288,dog\n175289,airplane\n175290,airplane\n175291,ship\n175292,frog\n175293,automobile\n175294,automobile\n175295,automobile\n175296,deer\n175297,airplane\n175298,deer\n175299,cat\n175300,cat\n175301,bird\n175302,cat\n175303,deer\n175304,truck\n175305,ship\n175306,bird\n175307,truck\n175308,frog\n175309,automobile\n175310,ship\n175311,dog\n175312,frog\n175313,dog\n175314,cat\n175315,dog\n175316,cat\n175317,truck\n175318,ship\n175319,cat\n175320,truck\n175321,frog\n175322,deer\n175323,truck\n175324,horse\n175325,horse\n175326,automobile\n175327,frog\n175328,deer\n175329,dog\n175330,cat\n175331,dog\n175332,ship\n175333,bird\n175334,truck\n175335,bird\n175336,frog\n175337,automobile\n175338,cat\n175339,truck\n175340,ship\n175341,automobile\n175342,airplane\n175343,deer\n175344,truck\n175345,airplane\n175346,horse\n175347,ship\n175348,horse\n175349,horse\n175350,truck\n175351,automobile\n175352,deer\n175353,horse\n175354,cat\n175355,airplane\n175356,cat\n175357,ship\n175358,truck\n175359,horse\n175360,frog\n175361,horse\n175362,bird\n175363,deer\n175364,automobile\n175365,airplane\n175366,dog\n175367,deer\n175368,bird\n175369,frog\n175370,deer\n175371,dog\n175372,bird\n175373,dog\n175374,ship\n175375,dog\n175376,frog\n175377,cat\n175378,airplane\n175379,truck\n175380,deer\n175381,automobile\n175382,automobile\n175383,ship\n175384,bird\n175385,truck\n175386,deer\n175387,truck\n175388,automobile\n175389,deer\n175390,frog\n175391,bird\n175392,dog\n175393,horse\n175394,dog\n175395,truck\n175396,truck\n175397,horse\n175398,dog\n175399,cat\n175400,ship\n175401,horse\n175402,airplane\n175403,airplane\n175404,deer\n175405,bird\n175406,deer\n175407,dog\n175408,horse\n175409,frog\n175410,cat\n175411,horse\n175412,deer\n175413,frog\n175414,horse\n175415,deer\n175416,horse\n175417,dog\n175418,airplane\n175419,dog\n175420,dog\n175421,airplane\n175422,frog\n175423,horse\n175424,cat\n175425,frog\n175426,truck\n175427,truck\n175428,deer\n175429,bird\n175430,bird\n175431,airplane\n175432,ship\n175433,cat\n175434,dog\n175435,bird\n175436,automobile\n175437,deer\n175438,dog\n175439,frog\n175440,ship\n175441,airplane\n175442,frog\n175443,dog\n175444,frog\n175445,dog\n175446,frog\n175447,horse\n175448,frog\n175449,airplane\n175450,ship\n175451,ship\n175452,bird\n175453,truck\n175454,frog\n175455,dog\n175456,truck\n175457,deer\n175458,dog\n175459,automobile\n175460,truck\n175461,frog\n175462,deer\n175463,automobile\n175464,horse\n175465,deer\n175466,deer\n175467,cat\n175468,dog\n175469,frog\n175470,truck\n175471,dog\n175472,bird\n175473,deer\n175474,cat\n175475,deer\n175476,horse\n175477,bird\n175478,truck\n175479,truck\n175480,bird\n175481,frog\n175482,deer\n175483,horse\n175484,bird\n175485,dog\n175486,horse\n175487,automobile\n175488,truck\n175489,horse\n175490,cat\n175491,dog\n175492,deer\n175493,dog\n175494,airplane\n175495,bird\n175496,automobile\n175497,horse\n175498,ship\n175499,cat\n175500,deer\n175501,frog\n175502,cat\n175503,bird\n175504,horse\n175505,frog\n175506,frog\n175507,horse\n175508,frog\n175509,frog\n175510,frog\n175511,cat\n175512,frog\n175513,deer\n175514,bird\n175515,airplane\n175516,deer\n175517,frog\n175518,cat\n175519,automobile\n175520,airplane\n175521,cat\n175522,deer\n175523,horse\n175524,dog\n175525,cat\n175526,airplane\n175527,ship\n175528,automobile\n175529,horse\n175530,deer\n175531,cat\n175532,automobile\n175533,dog\n175534,cat\n175535,dog\n175536,deer\n175537,ship\n175538,deer\n175539,cat\n175540,deer\n175541,airplane\n175542,truck\n175543,deer\n175544,bird\n175545,automobile\n175546,deer\n175547,truck\n175548,airplane\n175549,cat\n175550,deer\n175551,deer\n175552,airplane\n175553,deer\n175554,bird\n175555,bird\n175556,truck\n175557,deer\n175558,cat\n175559,horse\n175560,bird\n175561,frog\n175562,cat\n175563,automobile\n175564,truck\n175565,bird\n175566,bird\n175567,frog\n175568,cat\n175569,bird\n175570,truck\n175571,cat\n175572,horse\n175573,bird\n175574,ship\n175575,dog\n175576,horse\n175577,airplane\n175578,ship\n175579,horse\n175580,cat\n175581,cat\n175582,airplane\n175583,frog\n175584,horse\n175585,truck\n175586,truck\n175587,airplane\n175588,dog\n175589,cat\n175590,deer\n175591,cat\n175592,horse\n175593,deer\n175594,horse\n175595,truck\n175596,automobile\n175597,airplane\n175598,horse\n175599,bird\n175600,airplane\n175601,truck\n175602,airplane\n175603,deer\n175604,horse\n175605,cat\n175606,ship\n175607,airplane\n175608,cat\n175609,deer\n175610,airplane\n175611,automobile\n175612,horse\n175613,bird\n175614,horse\n175615,airplane\n175616,frog\n175617,horse\n175618,frog\n175619,bird\n175620,frog\n175621,dog\n175622,cat\n175623,deer\n175624,horse\n175625,horse\n175626,deer\n175627,ship\n175628,truck\n175629,airplane\n175630,deer\n175631,bird\n175632,deer\n175633,bird\n175634,horse\n175635,automobile\n175636,horse\n175637,frog\n175638,cat\n175639,frog\n175640,horse\n175641,truck\n175642,dog\n175643,truck\n175644,truck\n175645,airplane\n175646,automobile\n175647,bird\n175648,airplane\n175649,horse\n175650,truck\n175651,cat\n175652,frog\n175653,cat\n175654,horse\n175655,airplane\n175656,frog\n175657,deer\n175658,truck\n175659,airplane\n175660,bird\n175661,bird\n175662,dog\n175663,horse\n175664,airplane\n175665,ship\n175666,automobile\n175667,dog\n175668,automobile\n175669,horse\n175670,deer\n175671,deer\n175672,dog\n175673,bird\n175674,bird\n175675,horse\n175676,truck\n175677,airplane\n175678,airplane\n175679,cat\n175680,cat\n175681,truck\n175682,bird\n175683,bird\n175684,deer\n175685,deer\n175686,automobile\n175687,horse\n175688,ship\n175689,cat\n175690,deer\n175691,truck\n175692,cat\n175693,airplane\n175694,cat\n175695,airplane\n175696,horse\n175697,dog\n175698,deer\n175699,frog\n175700,airplane\n175701,bird\n175702,dog\n175703,dog\n175704,airplane\n175705,deer\n175706,bird\n175707,deer\n175708,frog\n175709,cat\n175710,automobile\n175711,bird\n175712,deer\n175713,automobile\n175714,dog\n175715,automobile\n175716,cat\n175717,ship\n175718,frog\n175719,dog\n175720,dog\n175721,automobile\n175722,deer\n175723,cat\n175724,bird\n175725,ship\n175726,airplane\n175727,airplane\n175728,airplane\n175729,horse\n175730,horse\n175731,cat\n175732,horse\n175733,horse\n175734,ship\n175735,cat\n175736,bird\n175737,dog\n175738,bird\n175739,deer\n175740,truck\n175741,cat\n175742,dog\n175743,horse\n175744,cat\n175745,deer\n175746,dog\n175747,airplane\n175748,dog\n175749,horse\n175750,frog\n175751,dog\n175752,horse\n175753,deer\n175754,frog\n175755,automobile\n175756,ship\n175757,bird\n175758,frog\n175759,dog\n175760,cat\n175761,horse\n175762,dog\n175763,cat\n175764,truck\n175765,deer\n175766,horse\n175767,bird\n175768,airplane\n175769,automobile\n175770,cat\n175771,horse\n175772,bird\n175773,horse\n175774,dog\n175775,bird\n175776,automobile\n175777,cat\n175778,bird\n175779,truck\n175780,airplane\n175781,ship\n175782,automobile\n175783,automobile\n175784,automobile\n175785,deer\n175786,cat\n175787,horse\n175788,dog\n175789,deer\n175790,truck\n175791,horse\n175792,automobile\n175793,airplane\n175794,airplane\n175795,cat\n175796,horse\n175797,cat\n175798,truck\n175799,bird\n175800,truck\n175801,frog\n175802,horse\n175803,ship\n175804,airplane\n175805,bird\n175806,horse\n175807,cat\n175808,bird\n175809,ship\n175810,truck\n175811,ship\n175812,automobile\n175813,truck\n175814,cat\n175815,airplane\n175816,truck\n175817,frog\n175818,dog\n175819,deer\n175820,truck\n175821,bird\n175822,automobile\n175823,cat\n175824,deer\n175825,airplane\n175826,ship\n175827,deer\n175828,ship\n175829,ship\n175830,truck\n175831,truck\n175832,cat\n175833,truck\n175834,ship\n175835,truck\n175836,deer\n175837,bird\n175838,bird\n175839,frog\n175840,ship\n175841,automobile\n175842,cat\n175843,frog\n175844,cat\n175845,truck\n175846,dog\n175847,horse\n175848,frog\n175849,automobile\n175850,ship\n175851,ship\n175852,deer\n175853,truck\n175854,truck\n175855,frog\n175856,truck\n175857,bird\n175858,ship\n175859,deer\n175860,dog\n175861,cat\n175862,deer\n175863,automobile\n175864,dog\n175865,deer\n175866,deer\n175867,horse\n175868,frog\n175869,airplane\n175870,airplane\n175871,cat\n175872,bird\n175873,truck\n175874,truck\n175875,dog\n175876,automobile\n175877,automobile\n175878,deer\n175879,horse\n175880,frog\n175881,deer\n175882,ship\n175883,ship\n175884,horse\n175885,truck\n175886,airplane\n175887,bird\n175888,truck\n175889,frog\n175890,deer\n175891,cat\n175892,cat\n175893,bird\n175894,dog\n175895,automobile\n175896,truck\n175897,dog\n175898,airplane\n175899,dog\n175900,ship\n175901,frog\n175902,frog\n175903,bird\n175904,ship\n175905,ship\n175906,deer\n175907,bird\n175908,horse\n175909,airplane\n175910,cat\n175911,deer\n175912,dog\n175913,truck\n175914,deer\n175915,airplane\n175916,cat\n175917,cat\n175918,airplane\n175919,frog\n175920,bird\n175921,airplane\n175922,airplane\n175923,dog\n175924,horse\n175925,bird\n175926,truck\n175927,deer\n175928,bird\n175929,dog\n175930,ship\n175931,automobile\n175932,dog\n175933,cat\n175934,deer\n175935,truck\n175936,bird\n175937,airplane\n175938,dog\n175939,frog\n175940,cat\n175941,airplane\n175942,cat\n175943,bird\n175944,deer\n175945,bird\n175946,truck\n175947,bird\n175948,truck\n175949,frog\n175950,cat\n175951,truck\n175952,ship\n175953,airplane\n175954,truck\n175955,dog\n175956,bird\n175957,deer\n175958,cat\n175959,ship\n175960,deer\n175961,deer\n175962,frog\n175963,cat\n175964,horse\n175965,airplane\n175966,truck\n175967,frog\n175968,ship\n175969,truck\n175970,frog\n175971,airplane\n175972,deer\n175973,cat\n175974,horse\n175975,airplane\n175976,dog\n175977,deer\n175978,automobile\n175979,airplane\n175980,cat\n175981,cat\n175982,cat\n175983,bird\n175984,frog\n175985,truck\n175986,ship\n175987,airplane\n175988,truck\n175989,airplane\n175990,dog\n175991,cat\n175992,dog\n175993,horse\n175994,cat\n175995,horse\n175996,automobile\n175997,deer\n175998,ship\n175999,deer\n176000,deer\n176001,automobile\n176002,ship\n176003,automobile\n176004,airplane\n176005,frog\n176006,ship\n176007,deer\n176008,airplane\n176009,automobile\n176010,bird\n176011,cat\n176012,airplane\n176013,truck\n176014,bird\n176015,cat\n176016,cat\n176017,dog\n176018,frog\n176019,cat\n176020,frog\n176021,cat\n176022,truck\n176023,frog\n176024,deer\n176025,horse\n176026,dog\n176027,frog\n176028,dog\n176029,deer\n176030,automobile\n176031,automobile\n176032,ship\n176033,deer\n176034,cat\n176035,horse\n176036,ship\n176037,airplane\n176038,horse\n176039,deer\n176040,ship\n176041,frog\n176042,truck\n176043,dog\n176044,cat\n176045,dog\n176046,truck\n176047,ship\n176048,bird\n176049,dog\n176050,ship\n176051,deer\n176052,deer\n176053,ship\n176054,cat\n176055,automobile\n176056,truck\n176057,dog\n176058,bird\n176059,deer\n176060,truck\n176061,bird\n176062,horse\n176063,airplane\n176064,cat\n176065,dog\n176066,dog\n176067,cat\n176068,bird\n176069,deer\n176070,cat\n176071,airplane\n176072,dog\n176073,ship\n176074,ship\n176075,deer\n176076,airplane\n176077,truck\n176078,automobile\n176079,truck\n176080,bird\n176081,cat\n176082,automobile\n176083,bird\n176084,dog\n176085,ship\n176086,horse\n176087,horse\n176088,bird\n176089,bird\n176090,truck\n176091,deer\n176092,ship\n176093,cat\n176094,truck\n176095,ship\n176096,truck\n176097,deer\n176098,ship\n176099,airplane\n176100,dog\n176101,truck\n176102,frog\n176103,cat\n176104,automobile\n176105,ship\n176106,dog\n176107,frog\n176108,cat\n176109,bird\n176110,cat\n176111,dog\n176112,cat\n176113,deer\n176114,frog\n176115,cat\n176116,ship\n176117,dog\n176118,frog\n176119,cat\n176120,deer\n176121,frog\n176122,dog\n176123,automobile\n176124,deer\n176125,frog\n176126,deer\n176127,airplane\n176128,cat\n176129,cat\n176130,deer\n176131,truck\n176132,deer\n176133,bird\n176134,bird\n176135,cat\n176136,truck\n176137,airplane\n176138,horse\n176139,deer\n176140,horse\n176141,bird\n176142,frog\n176143,horse\n176144,deer\n176145,automobile\n176146,automobile\n176147,cat\n176148,truck\n176149,deer\n176150,cat\n176151,horse\n176152,bird\n176153,dog\n176154,deer\n176155,truck\n176156,horse\n176157,dog\n176158,automobile\n176159,dog\n176160,frog\n176161,deer\n176162,ship\n176163,deer\n176164,airplane\n176165,deer\n176166,cat\n176167,cat\n176168,cat\n176169,frog\n176170,horse\n176171,automobile\n176172,horse\n176173,bird\n176174,bird\n176175,frog\n176176,truck\n176177,truck\n176178,ship\n176179,airplane\n176180,automobile\n176181,dog\n176182,frog\n176183,truck\n176184,cat\n176185,truck\n176186,truck\n176187,deer\n176188,airplane\n176189,airplane\n176190,frog\n176191,truck\n176192,cat\n176193,airplane\n176194,frog\n176195,horse\n176196,automobile\n176197,bird\n176198,horse\n176199,airplane\n176200,deer\n176201,truck\n176202,bird\n176203,airplane\n176204,airplane\n176205,deer\n176206,deer\n176207,airplane\n176208,cat\n176209,truck\n176210,frog\n176211,frog\n176212,deer\n176213,deer\n176214,frog\n176215,automobile\n176216,deer\n176217,deer\n176218,frog\n176219,truck\n176220,ship\n176221,dog\n176222,airplane\n176223,cat\n176224,bird\n176225,truck\n176226,truck\n176227,horse\n176228,bird\n176229,horse\n176230,ship\n176231,horse\n176232,truck\n176233,cat\n176234,dog\n176235,cat\n176236,deer\n176237,bird\n176238,cat\n176239,truck\n176240,truck\n176241,bird\n176242,airplane\n176243,frog\n176244,automobile\n176245,ship\n176246,cat\n176247,deer\n176248,dog\n176249,airplane\n176250,frog\n176251,ship\n176252,horse\n176253,dog\n176254,horse\n176255,automobile\n176256,truck\n176257,automobile\n176258,ship\n176259,deer\n176260,horse\n176261,airplane\n176262,truck\n176263,dog\n176264,truck\n176265,horse\n176266,truck\n176267,airplane\n176268,frog\n176269,automobile\n176270,dog\n176271,deer\n176272,horse\n176273,dog\n176274,dog\n176275,truck\n176276,bird\n176277,truck\n176278,truck\n176279,frog\n176280,cat\n176281,deer\n176282,truck\n176283,dog\n176284,deer\n176285,frog\n176286,bird\n176287,frog\n176288,truck\n176289,frog\n176290,automobile\n176291,dog\n176292,frog\n176293,truck\n176294,horse\n176295,bird\n176296,airplane\n176297,deer\n176298,bird\n176299,truck\n176300,automobile\n176301,truck\n176302,automobile\n176303,airplane\n176304,frog\n176305,dog\n176306,dog\n176307,dog\n176308,cat\n176309,ship\n176310,automobile\n176311,frog\n176312,dog\n176313,ship\n176314,airplane\n176315,dog\n176316,airplane\n176317,dog\n176318,bird\n176319,horse\n176320,frog\n176321,truck\n176322,frog\n176323,cat\n176324,truck\n176325,horse\n176326,cat\n176327,horse\n176328,airplane\n176329,truck\n176330,deer\n176331,horse\n176332,ship\n176333,deer\n176334,cat\n176335,automobile\n176336,deer\n176337,airplane\n176338,horse\n176339,ship\n176340,dog\n176341,deer\n176342,automobile\n176343,airplane\n176344,airplane\n176345,ship\n176346,airplane\n176347,cat\n176348,deer\n176349,frog\n176350,deer\n176351,airplane\n176352,deer\n176353,truck\n176354,ship\n176355,automobile\n176356,bird\n176357,frog\n176358,cat\n176359,dog\n176360,bird\n176361,truck\n176362,cat\n176363,cat\n176364,frog\n176365,dog\n176366,truck\n176367,bird\n176368,airplane\n176369,bird\n176370,truck\n176371,automobile\n176372,automobile\n176373,bird\n176374,horse\n176375,automobile\n176376,deer\n176377,automobile\n176378,cat\n176379,airplane\n176380,deer\n176381,frog\n176382,ship\n176383,cat\n176384,frog\n176385,airplane\n176386,deer\n176387,bird\n176388,bird\n176389,ship\n176390,deer\n176391,airplane\n176392,airplane\n176393,airplane\n176394,bird\n176395,horse\n176396,cat\n176397,frog\n176398,truck\n176399,horse\n176400,dog\n176401,frog\n176402,horse\n176403,automobile\n176404,bird\n176405,cat\n176406,truck\n176407,ship\n176408,ship\n176409,deer\n176410,airplane\n176411,frog\n176412,deer\n176413,frog\n176414,horse\n176415,truck\n176416,dog\n176417,deer\n176418,deer\n176419,deer\n176420,deer\n176421,ship\n176422,dog\n176423,frog\n176424,truck\n176425,horse\n176426,cat\n176427,frog\n176428,ship\n176429,bird\n176430,truck\n176431,cat\n176432,cat\n176433,horse\n176434,horse\n176435,dog\n176436,truck\n176437,cat\n176438,ship\n176439,deer\n176440,horse\n176441,truck\n176442,airplane\n176443,truck\n176444,airplane\n176445,frog\n176446,horse\n176447,deer\n176448,dog\n176449,deer\n176450,cat\n176451,cat\n176452,dog\n176453,truck\n176454,horse\n176455,dog\n176456,frog\n176457,cat\n176458,bird\n176459,frog\n176460,dog\n176461,frog\n176462,cat\n176463,ship\n176464,deer\n176465,deer\n176466,bird\n176467,dog\n176468,horse\n176469,horse\n176470,airplane\n176471,ship\n176472,dog\n176473,horse\n176474,cat\n176475,truck\n176476,airplane\n176477,deer\n176478,airplane\n176479,cat\n176480,deer\n176481,truck\n176482,automobile\n176483,dog\n176484,dog\n176485,horse\n176486,dog\n176487,truck\n176488,truck\n176489,deer\n176490,dog\n176491,deer\n176492,ship\n176493,deer\n176494,cat\n176495,truck\n176496,cat\n176497,bird\n176498,truck\n176499,deer\n176500,airplane\n176501,dog\n176502,airplane\n176503,dog\n176504,bird\n176505,bird\n176506,automobile\n176507,horse\n176508,bird\n176509,truck\n176510,bird\n176511,dog\n176512,automobile\n176513,deer\n176514,deer\n176515,dog\n176516,dog\n176517,bird\n176518,ship\n176519,dog\n176520,deer\n176521,bird\n176522,dog\n176523,automobile\n176524,frog\n176525,cat\n176526,horse\n176527,frog\n176528,truck\n176529,frog\n176530,bird\n176531,horse\n176532,cat\n176533,frog\n176534,frog\n176535,truck\n176536,ship\n176537,deer\n176538,cat\n176539,airplane\n176540,truck\n176541,horse\n176542,ship\n176543,truck\n176544,frog\n176545,automobile\n176546,airplane\n176547,deer\n176548,horse\n176549,automobile\n176550,ship\n176551,ship\n176552,dog\n176553,deer\n176554,ship\n176555,cat\n176556,horse\n176557,horse\n176558,airplane\n176559,dog\n176560,deer\n176561,bird\n176562,ship\n176563,frog\n176564,horse\n176565,dog\n176566,horse\n176567,horse\n176568,truck\n176569,dog\n176570,airplane\n176571,deer\n176572,deer\n176573,deer\n176574,deer\n176575,ship\n176576,frog\n176577,bird\n176578,cat\n176579,dog\n176580,dog\n176581,cat\n176582,horse\n176583,frog\n176584,frog\n176585,bird\n176586,horse\n176587,automobile\n176588,truck\n176589,deer\n176590,deer\n176591,frog\n176592,airplane\n176593,frog\n176594,automobile\n176595,truck\n176596,dog\n176597,cat\n176598,truck\n176599,ship\n176600,horse\n176601,bird\n176602,horse\n176603,horse\n176604,frog\n176605,frog\n176606,cat\n176607,bird\n176608,dog\n176609,horse\n176610,cat\n176611,horse\n176612,airplane\n176613,horse\n176614,ship\n176615,cat\n176616,frog\n176617,bird\n176618,dog\n176619,deer\n176620,deer\n176621,bird\n176622,deer\n176623,truck\n176624,cat\n176625,frog\n176626,bird\n176627,horse\n176628,cat\n176629,deer\n176630,deer\n176631,cat\n176632,ship\n176633,dog\n176634,dog\n176635,airplane\n176636,deer\n176637,frog\n176638,frog\n176639,dog\n176640,bird\n176641,deer\n176642,dog\n176643,frog\n176644,automobile\n176645,automobile\n176646,deer\n176647,ship\n176648,airplane\n176649,deer\n176650,truck\n176651,frog\n176652,automobile\n176653,airplane\n176654,cat\n176655,ship\n176656,automobile\n176657,horse\n176658,ship\n176659,ship\n176660,deer\n176661,deer\n176662,frog\n176663,airplane\n176664,dog\n176665,frog\n176666,cat\n176667,cat\n176668,frog\n176669,horse\n176670,automobile\n176671,frog\n176672,airplane\n176673,truck\n176674,horse\n176675,frog\n176676,dog\n176677,horse\n176678,cat\n176679,dog\n176680,ship\n176681,frog\n176682,horse\n176683,truck\n176684,deer\n176685,ship\n176686,airplane\n176687,airplane\n176688,bird\n176689,dog\n176690,dog\n176691,truck\n176692,airplane\n176693,deer\n176694,truck\n176695,airplane\n176696,dog\n176697,ship\n176698,airplane\n176699,bird\n176700,cat\n176701,ship\n176702,bird\n176703,ship\n176704,cat\n176705,frog\n176706,automobile\n176707,dog\n176708,horse\n176709,ship\n176710,deer\n176711,truck\n176712,ship\n176713,ship\n176714,airplane\n176715,ship\n176716,frog\n176717,cat\n176718,frog\n176719,horse\n176720,horse\n176721,frog\n176722,bird\n176723,frog\n176724,airplane\n176725,cat\n176726,automobile\n176727,cat\n176728,deer\n176729,cat\n176730,deer\n176731,dog\n176732,deer\n176733,bird\n176734,airplane\n176735,frog\n176736,bird\n176737,deer\n176738,ship\n176739,automobile\n176740,ship\n176741,airplane\n176742,truck\n176743,bird\n176744,truck\n176745,bird\n176746,bird\n176747,truck\n176748,cat\n176749,airplane\n176750,deer\n176751,truck\n176752,automobile\n176753,bird\n176754,frog\n176755,automobile\n176756,bird\n176757,cat\n176758,truck\n176759,deer\n176760,truck\n176761,dog\n176762,truck\n176763,airplane\n176764,cat\n176765,bird\n176766,truck\n176767,automobile\n176768,automobile\n176769,deer\n176770,bird\n176771,truck\n176772,truck\n176773,cat\n176774,automobile\n176775,airplane\n176776,truck\n176777,cat\n176778,truck\n176779,ship\n176780,frog\n176781,bird\n176782,truck\n176783,frog\n176784,frog\n176785,horse\n176786,horse\n176787,deer\n176788,horse\n176789,truck\n176790,deer\n176791,horse\n176792,dog\n176793,deer\n176794,cat\n176795,ship\n176796,frog\n176797,airplane\n176798,dog\n176799,deer\n176800,ship\n176801,dog\n176802,dog\n176803,airplane\n176804,dog\n176805,ship\n176806,cat\n176807,deer\n176808,cat\n176809,deer\n176810,deer\n176811,ship\n176812,deer\n176813,frog\n176814,deer\n176815,cat\n176816,bird\n176817,deer\n176818,horse\n176819,automobile\n176820,bird\n176821,horse\n176822,truck\n176823,cat\n176824,horse\n176825,cat\n176826,frog\n176827,cat\n176828,frog\n176829,dog\n176830,airplane\n176831,horse\n176832,dog\n176833,bird\n176834,deer\n176835,bird\n176836,horse\n176837,truck\n176838,automobile\n176839,bird\n176840,horse\n176841,deer\n176842,frog\n176843,deer\n176844,cat\n176845,cat\n176846,horse\n176847,truck\n176848,automobile\n176849,cat\n176850,dog\n176851,dog\n176852,airplane\n176853,horse\n176854,cat\n176855,bird\n176856,frog\n176857,dog\n176858,ship\n176859,cat\n176860,horse\n176861,automobile\n176862,horse\n176863,frog\n176864,dog\n176865,dog\n176866,cat\n176867,cat\n176868,horse\n176869,ship\n176870,horse\n176871,frog\n176872,dog\n176873,bird\n176874,dog\n176875,airplane\n176876,truck\n176877,frog\n176878,ship\n176879,bird\n176880,frog\n176881,airplane\n176882,ship\n176883,truck\n176884,bird\n176885,horse\n176886,ship\n176887,airplane\n176888,cat\n176889,dog\n176890,ship\n176891,frog\n176892,cat\n176893,dog\n176894,ship\n176895,cat\n176896,dog\n176897,frog\n176898,bird\n176899,cat\n176900,frog\n176901,horse\n176902,cat\n176903,deer\n176904,automobile\n176905,automobile\n176906,dog\n176907,deer\n176908,automobile\n176909,ship\n176910,dog\n176911,bird\n176912,truck\n176913,airplane\n176914,bird\n176915,truck\n176916,deer\n176917,deer\n176918,truck\n176919,ship\n176920,frog\n176921,cat\n176922,cat\n176923,bird\n176924,ship\n176925,deer\n176926,horse\n176927,frog\n176928,cat\n176929,bird\n176930,automobile\n176931,cat\n176932,truck\n176933,dog\n176934,frog\n176935,deer\n176936,bird\n176937,deer\n176938,airplane\n176939,bird\n176940,horse\n176941,bird\n176942,cat\n176943,horse\n176944,truck\n176945,airplane\n176946,deer\n176947,ship\n176948,horse\n176949,deer\n176950,airplane\n176951,frog\n176952,frog\n176953,airplane\n176954,frog\n176955,bird\n176956,bird\n176957,cat\n176958,horse\n176959,truck\n176960,automobile\n176961,bird\n176962,horse\n176963,automobile\n176964,cat\n176965,ship\n176966,dog\n176967,bird\n176968,bird\n176969,deer\n176970,deer\n176971,deer\n176972,dog\n176973,horse\n176974,frog\n176975,automobile\n176976,ship\n176977,cat\n176978,truck\n176979,deer\n176980,ship\n176981,airplane\n176982,airplane\n176983,truck\n176984,dog\n176985,bird\n176986,airplane\n176987,cat\n176988,airplane\n176989,airplane\n176990,frog\n176991,dog\n176992,horse\n176993,cat\n176994,deer\n176995,truck\n176996,dog\n176997,deer\n176998,dog\n176999,truck\n177000,ship\n177001,bird\n177002,deer\n177003,horse\n177004,truck\n177005,frog\n177006,airplane\n177007,automobile\n177008,airplane\n177009,dog\n177010,cat\n177011,bird\n177012,ship\n177013,truck\n177014,frog\n177015,airplane\n177016,airplane\n177017,cat\n177018,deer\n177019,horse\n177020,cat\n177021,deer\n177022,airplane\n177023,dog\n177024,bird\n177025,airplane\n177026,truck\n177027,deer\n177028,ship\n177029,deer\n177030,deer\n177031,deer\n177032,bird\n177033,automobile\n177034,automobile\n177035,deer\n177036,bird\n177037,ship\n177038,automobile\n177039,frog\n177040,automobile\n177041,ship\n177042,airplane\n177043,frog\n177044,automobile\n177045,frog\n177046,automobile\n177047,cat\n177048,truck\n177049,dog\n177050,horse\n177051,truck\n177052,frog\n177053,deer\n177054,deer\n177055,cat\n177056,horse\n177057,dog\n177058,automobile\n177059,automobile\n177060,frog\n177061,bird\n177062,truck\n177063,ship\n177064,bird\n177065,truck\n177066,airplane\n177067,bird\n177068,dog\n177069,airplane\n177070,frog\n177071,ship\n177072,cat\n177073,frog\n177074,cat\n177075,automobile\n177076,airplane\n177077,airplane\n177078,automobile\n177079,horse\n177080,airplane\n177081,bird\n177082,airplane\n177083,frog\n177084,truck\n177085,bird\n177086,airplane\n177087,frog\n177088,cat\n177089,frog\n177090,deer\n177091,cat\n177092,automobile\n177093,dog\n177094,ship\n177095,cat\n177096,ship\n177097,ship\n177098,cat\n177099,dog\n177100,ship\n177101,dog\n177102,ship\n177103,horse\n177104,deer\n177105,frog\n177106,cat\n177107,deer\n177108,airplane\n177109,frog\n177110,ship\n177111,cat\n177112,truck\n177113,cat\n177114,horse\n177115,cat\n177116,ship\n177117,dog\n177118,truck\n177119,bird\n177120,ship\n177121,dog\n177122,dog\n177123,airplane\n177124,airplane\n177125,ship\n177126,frog\n177127,automobile\n177128,ship\n177129,deer\n177130,frog\n177131,deer\n177132,dog\n177133,airplane\n177134,airplane\n177135,bird\n177136,cat\n177137,cat\n177138,bird\n177139,ship\n177140,bird\n177141,ship\n177142,deer\n177143,airplane\n177144,frog\n177145,bird\n177146,airplane\n177147,cat\n177148,ship\n177149,deer\n177150,truck\n177151,horse\n177152,frog\n177153,deer\n177154,airplane\n177155,truck\n177156,automobile\n177157,frog\n177158,horse\n177159,frog\n177160,cat\n177161,cat\n177162,bird\n177163,ship\n177164,dog\n177165,cat\n177166,deer\n177167,airplane\n177168,dog\n177169,bird\n177170,truck\n177171,horse\n177172,cat\n177173,airplane\n177174,horse\n177175,deer\n177176,deer\n177177,automobile\n177178,cat\n177179,horse\n177180,cat\n177181,horse\n177182,dog\n177183,deer\n177184,automobile\n177185,bird\n177186,frog\n177187,deer\n177188,frog\n177189,truck\n177190,airplane\n177191,deer\n177192,dog\n177193,airplane\n177194,deer\n177195,cat\n177196,frog\n177197,horse\n177198,deer\n177199,dog\n177200,frog\n177201,frog\n177202,frog\n177203,ship\n177204,cat\n177205,airplane\n177206,horse\n177207,dog\n177208,horse\n177209,bird\n177210,ship\n177211,truck\n177212,cat\n177213,bird\n177214,cat\n177215,deer\n177216,airplane\n177217,frog\n177218,horse\n177219,cat\n177220,automobile\n177221,cat\n177222,bird\n177223,deer\n177224,automobile\n177225,truck\n177226,frog\n177227,deer\n177228,airplane\n177229,deer\n177230,deer\n177231,ship\n177232,frog\n177233,cat\n177234,horse\n177235,deer\n177236,cat\n177237,dog\n177238,airplane\n177239,truck\n177240,ship\n177241,truck\n177242,automobile\n177243,bird\n177244,deer\n177245,ship\n177246,deer\n177247,deer\n177248,truck\n177249,cat\n177250,airplane\n177251,cat\n177252,frog\n177253,truck\n177254,deer\n177255,frog\n177256,dog\n177257,truck\n177258,cat\n177259,airplane\n177260,truck\n177261,automobile\n177262,cat\n177263,airplane\n177264,truck\n177265,ship\n177266,horse\n177267,bird\n177268,dog\n177269,cat\n177270,cat\n177271,dog\n177272,dog\n177273,dog\n177274,ship\n177275,airplane\n177276,truck\n177277,horse\n177278,horse\n177279,ship\n177280,horse\n177281,airplane\n177282,cat\n177283,airplane\n177284,ship\n177285,dog\n177286,truck\n177287,cat\n177288,frog\n177289,deer\n177290,ship\n177291,truck\n177292,ship\n177293,cat\n177294,dog\n177295,truck\n177296,airplane\n177297,deer\n177298,deer\n177299,airplane\n177300,airplane\n177301,ship\n177302,dog\n177303,frog\n177304,bird\n177305,dog\n177306,dog\n177307,automobile\n177308,dog\n177309,bird\n177310,airplane\n177311,dog\n177312,automobile\n177313,dog\n177314,dog\n177315,deer\n177316,truck\n177317,airplane\n177318,dog\n177319,deer\n177320,ship\n177321,deer\n177322,horse\n177323,truck\n177324,cat\n177325,dog\n177326,truck\n177327,horse\n177328,airplane\n177329,airplane\n177330,airplane\n177331,cat\n177332,dog\n177333,automobile\n177334,cat\n177335,bird\n177336,truck\n177337,airplane\n177338,horse\n177339,horse\n177340,truck\n177341,ship\n177342,airplane\n177343,horse\n177344,deer\n177345,ship\n177346,deer\n177347,dog\n177348,truck\n177349,dog\n177350,automobile\n177351,dog\n177352,truck\n177353,bird\n177354,deer\n177355,dog\n177356,airplane\n177357,truck\n177358,frog\n177359,cat\n177360,ship\n177361,deer\n177362,airplane\n177363,truck\n177364,cat\n177365,ship\n177366,truck\n177367,truck\n177368,bird\n177369,frog\n177370,deer\n177371,frog\n177372,ship\n177373,dog\n177374,deer\n177375,airplane\n177376,ship\n177377,automobile\n177378,bird\n177379,automobile\n177380,frog\n177381,truck\n177382,automobile\n177383,bird\n177384,cat\n177385,horse\n177386,automobile\n177387,truck\n177388,ship\n177389,frog\n177390,frog\n177391,truck\n177392,airplane\n177393,cat\n177394,automobile\n177395,frog\n177396,airplane\n177397,cat\n177398,horse\n177399,truck\n177400,cat\n177401,automobile\n177402,deer\n177403,ship\n177404,deer\n177405,truck\n177406,deer\n177407,truck\n177408,ship\n177409,dog\n177410,cat\n177411,horse\n177412,dog\n177413,truck\n177414,truck\n177415,deer\n177416,horse\n177417,deer\n177418,deer\n177419,cat\n177420,truck\n177421,deer\n177422,ship\n177423,cat\n177424,truck\n177425,bird\n177426,automobile\n177427,truck\n177428,dog\n177429,cat\n177430,deer\n177431,bird\n177432,ship\n177433,deer\n177434,dog\n177435,automobile\n177436,automobile\n177437,truck\n177438,airplane\n177439,cat\n177440,airplane\n177441,frog\n177442,airplane\n177443,ship\n177444,automobile\n177445,horse\n177446,bird\n177447,bird\n177448,frog\n177449,bird\n177450,cat\n177451,bird\n177452,ship\n177453,automobile\n177454,cat\n177455,automobile\n177456,truck\n177457,ship\n177458,truck\n177459,dog\n177460,frog\n177461,deer\n177462,ship\n177463,automobile\n177464,airplane\n177465,frog\n177466,truck\n177467,dog\n177468,airplane\n177469,cat\n177470,frog\n177471,cat\n177472,ship\n177473,airplane\n177474,bird\n177475,ship\n177476,ship\n177477,cat\n177478,cat\n177479,dog\n177480,deer\n177481,automobile\n177482,deer\n177483,deer\n177484,horse\n177485,deer\n177486,airplane\n177487,horse\n177488,deer\n177489,automobile\n177490,deer\n177491,dog\n177492,deer\n177493,airplane\n177494,deer\n177495,dog\n177496,deer\n177497,dog\n177498,truck\n177499,horse\n177500,dog\n177501,automobile\n177502,frog\n177503,cat\n177504,ship\n177505,truck\n177506,horse\n177507,frog\n177508,frog\n177509,deer\n177510,truck\n177511,horse\n177512,ship\n177513,bird\n177514,frog\n177515,frog\n177516,ship\n177517,deer\n177518,cat\n177519,automobile\n177520,truck\n177521,cat\n177522,airplane\n177523,horse\n177524,airplane\n177525,truck\n177526,ship\n177527,automobile\n177528,deer\n177529,truck\n177530,frog\n177531,truck\n177532,dog\n177533,frog\n177534,ship\n177535,frog\n177536,truck\n177537,ship\n177538,truck\n177539,truck\n177540,cat\n177541,deer\n177542,cat\n177543,deer\n177544,deer\n177545,dog\n177546,airplane\n177547,dog\n177548,truck\n177549,truck\n177550,ship\n177551,truck\n177552,automobile\n177553,deer\n177554,dog\n177555,horse\n177556,ship\n177557,automobile\n177558,cat\n177559,frog\n177560,truck\n177561,horse\n177562,horse\n177563,frog\n177564,ship\n177565,frog\n177566,cat\n177567,frog\n177568,deer\n177569,ship\n177570,cat\n177571,deer\n177572,ship\n177573,bird\n177574,cat\n177575,cat\n177576,airplane\n177577,dog\n177578,ship\n177579,deer\n177580,cat\n177581,deer\n177582,bird\n177583,frog\n177584,deer\n177585,horse\n177586,cat\n177587,deer\n177588,truck\n177589,automobile\n177590,deer\n177591,horse\n177592,deer\n177593,cat\n177594,ship\n177595,deer\n177596,truck\n177597,dog\n177598,deer\n177599,bird\n177600,ship\n177601,horse\n177602,truck\n177603,cat\n177604,frog\n177605,airplane\n177606,frog\n177607,bird\n177608,airplane\n177609,cat\n177610,horse\n177611,deer\n177612,airplane\n177613,dog\n177614,airplane\n177615,frog\n177616,frog\n177617,cat\n177618,dog\n177619,bird\n177620,truck\n177621,horse\n177622,truck\n177623,automobile\n177624,frog\n177625,truck\n177626,cat\n177627,deer\n177628,automobile\n177629,deer\n177630,truck\n177631,bird\n177632,deer\n177633,frog\n177634,frog\n177635,ship\n177636,airplane\n177637,frog\n177638,deer\n177639,automobile\n177640,deer\n177641,frog\n177642,bird\n177643,truck\n177644,bird\n177645,automobile\n177646,deer\n177647,frog\n177648,frog\n177649,truck\n177650,horse\n177651,airplane\n177652,dog\n177653,cat\n177654,deer\n177655,horse\n177656,cat\n177657,truck\n177658,deer\n177659,cat\n177660,airplane\n177661,cat\n177662,horse\n177663,truck\n177664,ship\n177665,frog\n177666,frog\n177667,deer\n177668,truck\n177669,frog\n177670,dog\n177671,cat\n177672,deer\n177673,automobile\n177674,dog\n177675,ship\n177676,horse\n177677,truck\n177678,airplane\n177679,airplane\n177680,bird\n177681,frog\n177682,frog\n177683,horse\n177684,frog\n177685,bird\n177686,cat\n177687,deer\n177688,dog\n177689,airplane\n177690,ship\n177691,bird\n177692,deer\n177693,dog\n177694,automobile\n177695,bird\n177696,dog\n177697,deer\n177698,automobile\n177699,cat\n177700,cat\n177701,cat\n177702,horse\n177703,dog\n177704,airplane\n177705,truck\n177706,cat\n177707,truck\n177708,automobile\n177709,cat\n177710,truck\n177711,horse\n177712,horse\n177713,frog\n177714,truck\n177715,deer\n177716,ship\n177717,dog\n177718,bird\n177719,bird\n177720,deer\n177721,airplane\n177722,deer\n177723,ship\n177724,airplane\n177725,cat\n177726,ship\n177727,dog\n177728,airplane\n177729,automobile\n177730,truck\n177731,truck\n177732,dog\n177733,frog\n177734,dog\n177735,bird\n177736,cat\n177737,deer\n177738,truck\n177739,deer\n177740,horse\n177741,horse\n177742,ship\n177743,automobile\n177744,truck\n177745,ship\n177746,automobile\n177747,truck\n177748,deer\n177749,frog\n177750,automobile\n177751,horse\n177752,dog\n177753,frog\n177754,dog\n177755,deer\n177756,automobile\n177757,cat\n177758,automobile\n177759,truck\n177760,airplane\n177761,automobile\n177762,automobile\n177763,dog\n177764,bird\n177765,airplane\n177766,automobile\n177767,deer\n177768,dog\n177769,dog\n177770,deer\n177771,truck\n177772,dog\n177773,ship\n177774,deer\n177775,dog\n177776,horse\n177777,frog\n177778,cat\n177779,cat\n177780,airplane\n177781,frog\n177782,airplane\n177783,truck\n177784,deer\n177785,frog\n177786,bird\n177787,frog\n177788,horse\n177789,airplane\n177790,deer\n177791,cat\n177792,bird\n177793,frog\n177794,deer\n177795,ship\n177796,frog\n177797,ship\n177798,automobile\n177799,airplane\n177800,deer\n177801,ship\n177802,deer\n177803,frog\n177804,horse\n177805,bird\n177806,cat\n177807,cat\n177808,frog\n177809,frog\n177810,dog\n177811,bird\n177812,deer\n177813,deer\n177814,dog\n177815,frog\n177816,frog\n177817,deer\n177818,bird\n177819,frog\n177820,truck\n177821,cat\n177822,frog\n177823,cat\n177824,cat\n177825,deer\n177826,automobile\n177827,ship\n177828,horse\n177829,cat\n177830,airplane\n177831,deer\n177832,cat\n177833,cat\n177834,horse\n177835,cat\n177836,frog\n177837,deer\n177838,dog\n177839,truck\n177840,bird\n177841,frog\n177842,airplane\n177843,horse\n177844,automobile\n177845,truck\n177846,bird\n177847,automobile\n177848,airplane\n177849,deer\n177850,cat\n177851,truck\n177852,ship\n177853,automobile\n177854,deer\n177855,truck\n177856,truck\n177857,truck\n177858,bird\n177859,deer\n177860,truck\n177861,frog\n177862,dog\n177863,cat\n177864,bird\n177865,cat\n177866,bird\n177867,deer\n177868,frog\n177869,cat\n177870,dog\n177871,cat\n177872,frog\n177873,automobile\n177874,deer\n177875,dog\n177876,dog\n177877,deer\n177878,automobile\n177879,bird\n177880,cat\n177881,truck\n177882,frog\n177883,cat\n177884,dog\n177885,deer\n177886,deer\n177887,cat\n177888,truck\n177889,horse\n177890,bird\n177891,truck\n177892,truck\n177893,ship\n177894,frog\n177895,frog\n177896,dog\n177897,ship\n177898,frog\n177899,frog\n177900,cat\n177901,airplane\n177902,horse\n177903,truck\n177904,frog\n177905,airplane\n177906,frog\n177907,dog\n177908,deer\n177909,bird\n177910,bird\n177911,horse\n177912,deer\n177913,deer\n177914,bird\n177915,airplane\n177916,horse\n177917,truck\n177918,airplane\n177919,horse\n177920,ship\n177921,deer\n177922,airplane\n177923,truck\n177924,airplane\n177925,ship\n177926,bird\n177927,deer\n177928,airplane\n177929,horse\n177930,frog\n177931,dog\n177932,frog\n177933,horse\n177934,bird\n177935,dog\n177936,cat\n177937,ship\n177938,ship\n177939,airplane\n177940,truck\n177941,dog\n177942,horse\n177943,deer\n177944,automobile\n177945,airplane\n177946,bird\n177947,airplane\n177948,ship\n177949,cat\n177950,deer\n177951,automobile\n177952,airplane\n177953,dog\n177954,truck\n177955,cat\n177956,deer\n177957,cat\n177958,frog\n177959,dog\n177960,horse\n177961,airplane\n177962,dog\n177963,automobile\n177964,dog\n177965,cat\n177966,horse\n177967,deer\n177968,deer\n177969,frog\n177970,airplane\n177971,horse\n177972,frog\n177973,truck\n177974,frog\n177975,automobile\n177976,dog\n177977,bird\n177978,horse\n177979,frog\n177980,horse\n177981,cat\n177982,deer\n177983,frog\n177984,ship\n177985,ship\n177986,cat\n177987,bird\n177988,ship\n177989,airplane\n177990,dog\n177991,frog\n177992,truck\n177993,automobile\n177994,horse\n177995,truck\n177996,deer\n177997,dog\n177998,cat\n177999,frog\n178000,ship\n178001,truck\n178002,ship\n178003,frog\n178004,cat\n178005,deer\n178006,truck\n178007,deer\n178008,dog\n178009,cat\n178010,cat\n178011,dog\n178012,ship\n178013,ship\n178014,ship\n178015,airplane\n178016,frog\n178017,horse\n178018,airplane\n178019,truck\n178020,automobile\n178021,dog\n178022,truck\n178023,cat\n178024,automobile\n178025,truck\n178026,bird\n178027,deer\n178028,deer\n178029,cat\n178030,airplane\n178031,truck\n178032,truck\n178033,deer\n178034,ship\n178035,cat\n178036,deer\n178037,airplane\n178038,ship\n178039,deer\n178040,dog\n178041,truck\n178042,cat\n178043,horse\n178044,deer\n178045,frog\n178046,bird\n178047,deer\n178048,cat\n178049,bird\n178050,truck\n178051,frog\n178052,frog\n178053,bird\n178054,deer\n178055,frog\n178056,cat\n178057,dog\n178058,bird\n178059,cat\n178060,cat\n178061,ship\n178062,automobile\n178063,ship\n178064,deer\n178065,horse\n178066,bird\n178067,bird\n178068,ship\n178069,ship\n178070,dog\n178071,airplane\n178072,dog\n178073,horse\n178074,truck\n178075,ship\n178076,truck\n178077,automobile\n178078,bird\n178079,bird\n178080,horse\n178081,cat\n178082,dog\n178083,dog\n178084,cat\n178085,frog\n178086,deer\n178087,deer\n178088,frog\n178089,airplane\n178090,airplane\n178091,airplane\n178092,airplane\n178093,automobile\n178094,horse\n178095,bird\n178096,horse\n178097,horse\n178098,cat\n178099,bird\n178100,cat\n178101,dog\n178102,airplane\n178103,ship\n178104,frog\n178105,truck\n178106,automobile\n178107,bird\n178108,bird\n178109,bird\n178110,truck\n178111,truck\n178112,cat\n178113,frog\n178114,truck\n178115,bird\n178116,horse\n178117,frog\n178118,cat\n178119,bird\n178120,cat\n178121,dog\n178122,cat\n178123,cat\n178124,cat\n178125,deer\n178126,horse\n178127,deer\n178128,horse\n178129,ship\n178130,frog\n178131,bird\n178132,bird\n178133,frog\n178134,dog\n178135,frog\n178136,bird\n178137,dog\n178138,bird\n178139,horse\n178140,automobile\n178141,deer\n178142,automobile\n178143,bird\n178144,truck\n178145,cat\n178146,bird\n178147,deer\n178148,airplane\n178149,bird\n178150,cat\n178151,horse\n178152,horse\n178153,ship\n178154,cat\n178155,truck\n178156,cat\n178157,horse\n178158,dog\n178159,bird\n178160,cat\n178161,cat\n178162,horse\n178163,automobile\n178164,deer\n178165,ship\n178166,airplane\n178167,cat\n178168,cat\n178169,airplane\n178170,horse\n178171,dog\n178172,dog\n178173,deer\n178174,ship\n178175,truck\n178176,airplane\n178177,truck\n178178,deer\n178179,horse\n178180,deer\n178181,automobile\n178182,horse\n178183,bird\n178184,deer\n178185,frog\n178186,automobile\n178187,ship\n178188,dog\n178189,deer\n178190,bird\n178191,dog\n178192,cat\n178193,dog\n178194,bird\n178195,airplane\n178196,truck\n178197,frog\n178198,airplane\n178199,frog\n178200,ship\n178201,cat\n178202,automobile\n178203,horse\n178204,truck\n178205,dog\n178206,airplane\n178207,frog\n178208,frog\n178209,horse\n178210,ship\n178211,dog\n178212,automobile\n178213,dog\n178214,cat\n178215,bird\n178216,bird\n178217,ship\n178218,deer\n178219,airplane\n178220,horse\n178221,bird\n178222,ship\n178223,frog\n178224,horse\n178225,dog\n178226,dog\n178227,horse\n178228,automobile\n178229,deer\n178230,automobile\n178231,cat\n178232,frog\n178233,cat\n178234,bird\n178235,bird\n178236,deer\n178237,horse\n178238,cat\n178239,deer\n178240,horse\n178241,airplane\n178242,frog\n178243,cat\n178244,horse\n178245,dog\n178246,frog\n178247,ship\n178248,automobile\n178249,truck\n178250,cat\n178251,deer\n178252,deer\n178253,airplane\n178254,cat\n178255,frog\n178256,horse\n178257,airplane\n178258,ship\n178259,horse\n178260,frog\n178261,truck\n178262,dog\n178263,truck\n178264,automobile\n178265,bird\n178266,horse\n178267,dog\n178268,truck\n178269,dog\n178270,dog\n178271,truck\n178272,deer\n178273,ship\n178274,deer\n178275,horse\n178276,automobile\n178277,cat\n178278,dog\n178279,automobile\n178280,dog\n178281,deer\n178282,dog\n178283,horse\n178284,deer\n178285,airplane\n178286,truck\n178287,horse\n178288,airplane\n178289,automobile\n178290,horse\n178291,cat\n178292,bird\n178293,dog\n178294,ship\n178295,deer\n178296,ship\n178297,truck\n178298,airplane\n178299,dog\n178300,bird\n178301,truck\n178302,dog\n178303,airplane\n178304,deer\n178305,cat\n178306,frog\n178307,truck\n178308,frog\n178309,ship\n178310,horse\n178311,deer\n178312,dog\n178313,ship\n178314,automobile\n178315,ship\n178316,frog\n178317,truck\n178318,ship\n178319,truck\n178320,ship\n178321,dog\n178322,deer\n178323,automobile\n178324,truck\n178325,horse\n178326,airplane\n178327,cat\n178328,deer\n178329,airplane\n178330,airplane\n178331,automobile\n178332,cat\n178333,cat\n178334,horse\n178335,truck\n178336,cat\n178337,airplane\n178338,truck\n178339,truck\n178340,frog\n178341,cat\n178342,frog\n178343,horse\n178344,frog\n178345,deer\n178346,truck\n178347,ship\n178348,deer\n178349,frog\n178350,truck\n178351,frog\n178352,dog\n178353,cat\n178354,deer\n178355,dog\n178356,horse\n178357,truck\n178358,deer\n178359,horse\n178360,truck\n178361,bird\n178362,bird\n178363,cat\n178364,deer\n178365,frog\n178366,bird\n178367,airplane\n178368,ship\n178369,ship\n178370,airplane\n178371,deer\n178372,frog\n178373,truck\n178374,frog\n178375,cat\n178376,deer\n178377,truck\n178378,ship\n178379,ship\n178380,airplane\n178381,dog\n178382,deer\n178383,cat\n178384,deer\n178385,frog\n178386,truck\n178387,deer\n178388,ship\n178389,cat\n178390,horse\n178391,truck\n178392,truck\n178393,frog\n178394,airplane\n178395,dog\n178396,dog\n178397,deer\n178398,airplane\n178399,dog\n178400,deer\n178401,airplane\n178402,cat\n178403,deer\n178404,horse\n178405,cat\n178406,horse\n178407,dog\n178408,truck\n178409,frog\n178410,ship\n178411,bird\n178412,cat\n178413,deer\n178414,bird\n178415,bird\n178416,frog\n178417,cat\n178418,airplane\n178419,cat\n178420,frog\n178421,ship\n178422,cat\n178423,truck\n178424,deer\n178425,cat\n178426,bird\n178427,truck\n178428,automobile\n178429,cat\n178430,horse\n178431,deer\n178432,deer\n178433,horse\n178434,deer\n178435,deer\n178436,bird\n178437,horse\n178438,deer\n178439,deer\n178440,frog\n178441,airplane\n178442,frog\n178443,deer\n178444,frog\n178445,dog\n178446,bird\n178447,frog\n178448,dog\n178449,bird\n178450,deer\n178451,bird\n178452,bird\n178453,frog\n178454,ship\n178455,deer\n178456,horse\n178457,frog\n178458,frog\n178459,deer\n178460,cat\n178461,dog\n178462,dog\n178463,deer\n178464,automobile\n178465,dog\n178466,cat\n178467,cat\n178468,truck\n178469,dog\n178470,deer\n178471,bird\n178472,frog\n178473,bird\n178474,cat\n178475,ship\n178476,dog\n178477,bird\n178478,automobile\n178479,automobile\n178480,cat\n178481,ship\n178482,bird\n178483,cat\n178484,dog\n178485,frog\n178486,automobile\n178487,airplane\n178488,ship\n178489,bird\n178490,bird\n178491,bird\n178492,truck\n178493,horse\n178494,airplane\n178495,truck\n178496,ship\n178497,horse\n178498,cat\n178499,frog\n178500,automobile\n178501,horse\n178502,automobile\n178503,frog\n178504,cat\n178505,automobile\n178506,ship\n178507,truck\n178508,frog\n178509,horse\n178510,deer\n178511,cat\n178512,frog\n178513,horse\n178514,automobile\n178515,frog\n178516,airplane\n178517,truck\n178518,frog\n178519,automobile\n178520,frog\n178521,horse\n178522,frog\n178523,deer\n178524,cat\n178525,deer\n178526,automobile\n178527,automobile\n178528,cat\n178529,frog\n178530,bird\n178531,cat\n178532,deer\n178533,frog\n178534,frog\n178535,airplane\n178536,horse\n178537,truck\n178538,bird\n178539,truck\n178540,truck\n178541,ship\n178542,deer\n178543,deer\n178544,dog\n178545,cat\n178546,deer\n178547,cat\n178548,truck\n178549,automobile\n178550,horse\n178551,bird\n178552,ship\n178553,deer\n178554,ship\n178555,frog\n178556,cat\n178557,horse\n178558,automobile\n178559,horse\n178560,dog\n178561,frog\n178562,deer\n178563,bird\n178564,airplane\n178565,airplane\n178566,frog\n178567,dog\n178568,deer\n178569,dog\n178570,cat\n178571,dog\n178572,dog\n178573,dog\n178574,cat\n178575,ship\n178576,horse\n178577,horse\n178578,truck\n178579,ship\n178580,frog\n178581,dog\n178582,airplane\n178583,cat\n178584,truck\n178585,ship\n178586,cat\n178587,truck\n178588,horse\n178589,deer\n178590,deer\n178591,frog\n178592,cat\n178593,airplane\n178594,automobile\n178595,dog\n178596,frog\n178597,cat\n178598,truck\n178599,cat\n178600,automobile\n178601,dog\n178602,bird\n178603,bird\n178604,airplane\n178605,dog\n178606,truck\n178607,frog\n178608,cat\n178609,horse\n178610,frog\n178611,cat\n178612,bird\n178613,ship\n178614,horse\n178615,ship\n178616,truck\n178617,airplane\n178618,bird\n178619,truck\n178620,deer\n178621,automobile\n178622,truck\n178623,frog\n178624,horse\n178625,airplane\n178626,truck\n178627,airplane\n178628,bird\n178629,dog\n178630,deer\n178631,automobile\n178632,dog\n178633,dog\n178634,ship\n178635,horse\n178636,horse\n178637,truck\n178638,horse\n178639,cat\n178640,frog\n178641,deer\n178642,ship\n178643,deer\n178644,automobile\n178645,deer\n178646,deer\n178647,bird\n178648,automobile\n178649,dog\n178650,airplane\n178651,airplane\n178652,dog\n178653,horse\n178654,cat\n178655,airplane\n178656,ship\n178657,dog\n178658,automobile\n178659,frog\n178660,truck\n178661,airplane\n178662,cat\n178663,frog\n178664,airplane\n178665,horse\n178666,truck\n178667,deer\n178668,bird\n178669,deer\n178670,deer\n178671,cat\n178672,frog\n178673,frog\n178674,automobile\n178675,truck\n178676,airplane\n178677,ship\n178678,dog\n178679,frog\n178680,deer\n178681,dog\n178682,horse\n178683,dog\n178684,dog\n178685,cat\n178686,ship\n178687,bird\n178688,deer\n178689,deer\n178690,cat\n178691,frog\n178692,horse\n178693,airplane\n178694,airplane\n178695,cat\n178696,frog\n178697,airplane\n178698,ship\n178699,ship\n178700,frog\n178701,airplane\n178702,dog\n178703,deer\n178704,dog\n178705,dog\n178706,dog\n178707,frog\n178708,deer\n178709,dog\n178710,ship\n178711,dog\n178712,ship\n178713,frog\n178714,bird\n178715,truck\n178716,airplane\n178717,automobile\n178718,bird\n178719,bird\n178720,truck\n178721,automobile\n178722,horse\n178723,automobile\n178724,automobile\n178725,frog\n178726,frog\n178727,bird\n178728,airplane\n178729,truck\n178730,ship\n178731,horse\n178732,airplane\n178733,deer\n178734,dog\n178735,cat\n178736,airplane\n178737,ship\n178738,airplane\n178739,frog\n178740,frog\n178741,bird\n178742,deer\n178743,airplane\n178744,frog\n178745,cat\n178746,cat\n178747,automobile\n178748,frog\n178749,deer\n178750,truck\n178751,airplane\n178752,deer\n178753,airplane\n178754,frog\n178755,deer\n178756,horse\n178757,dog\n178758,bird\n178759,bird\n178760,bird\n178761,ship\n178762,ship\n178763,airplane\n178764,airplane\n178765,frog\n178766,truck\n178767,cat\n178768,cat\n178769,truck\n178770,truck\n178771,deer\n178772,cat\n178773,airplane\n178774,horse\n178775,frog\n178776,deer\n178777,deer\n178778,cat\n178779,dog\n178780,airplane\n178781,bird\n178782,deer\n178783,truck\n178784,cat\n178785,truck\n178786,deer\n178787,cat\n178788,deer\n178789,truck\n178790,frog\n178791,frog\n178792,deer\n178793,truck\n178794,cat\n178795,frog\n178796,dog\n178797,dog\n178798,horse\n178799,airplane\n178800,bird\n178801,ship\n178802,deer\n178803,bird\n178804,horse\n178805,deer\n178806,dog\n178807,ship\n178808,deer\n178809,deer\n178810,deer\n178811,deer\n178812,airplane\n178813,deer\n178814,cat\n178815,frog\n178816,airplane\n178817,ship\n178818,cat\n178819,frog\n178820,dog\n178821,bird\n178822,deer\n178823,airplane\n178824,frog\n178825,cat\n178826,frog\n178827,deer\n178828,cat\n178829,frog\n178830,automobile\n178831,frog\n178832,ship\n178833,dog\n178834,bird\n178835,frog\n178836,frog\n178837,horse\n178838,cat\n178839,truck\n178840,cat\n178841,bird\n178842,bird\n178843,dog\n178844,cat\n178845,frog\n178846,cat\n178847,airplane\n178848,truck\n178849,ship\n178850,truck\n178851,horse\n178852,dog\n178853,frog\n178854,airplane\n178855,ship\n178856,horse\n178857,ship\n178858,truck\n178859,ship\n178860,airplane\n178861,automobile\n178862,dog\n178863,ship\n178864,deer\n178865,truck\n178866,deer\n178867,ship\n178868,truck\n178869,dog\n178870,truck\n178871,deer\n178872,automobile\n178873,bird\n178874,automobile\n178875,truck\n178876,cat\n178877,ship\n178878,deer\n178879,truck\n178880,dog\n178881,ship\n178882,deer\n178883,ship\n178884,horse\n178885,dog\n178886,deer\n178887,bird\n178888,airplane\n178889,bird\n178890,cat\n178891,frog\n178892,dog\n178893,bird\n178894,horse\n178895,dog\n178896,dog\n178897,airplane\n178898,deer\n178899,truck\n178900,cat\n178901,deer\n178902,bird\n178903,bird\n178904,dog\n178905,truck\n178906,truck\n178907,truck\n178908,airplane\n178909,bird\n178910,deer\n178911,deer\n178912,truck\n178913,deer\n178914,deer\n178915,truck\n178916,truck\n178917,frog\n178918,cat\n178919,horse\n178920,frog\n178921,cat\n178922,truck\n178923,cat\n178924,truck\n178925,ship\n178926,frog\n178927,frog\n178928,ship\n178929,cat\n178930,ship\n178931,dog\n178932,ship\n178933,cat\n178934,airplane\n178935,frog\n178936,deer\n178937,deer\n178938,dog\n178939,dog\n178940,cat\n178941,deer\n178942,frog\n178943,bird\n178944,frog\n178945,ship\n178946,ship\n178947,dog\n178948,truck\n178949,ship\n178950,cat\n178951,bird\n178952,horse\n178953,deer\n178954,horse\n178955,dog\n178956,automobile\n178957,truck\n178958,truck\n178959,truck\n178960,dog\n178961,dog\n178962,truck\n178963,airplane\n178964,automobile\n178965,cat\n178966,deer\n178967,frog\n178968,truck\n178969,bird\n178970,dog\n178971,truck\n178972,ship\n178973,automobile\n178974,deer\n178975,deer\n178976,truck\n178977,frog\n178978,bird\n178979,truck\n178980,truck\n178981,ship\n178982,frog\n178983,cat\n178984,airplane\n178985,cat\n178986,automobile\n178987,deer\n178988,dog\n178989,horse\n178990,deer\n178991,airplane\n178992,cat\n178993,ship\n178994,horse\n178995,deer\n178996,cat\n178997,dog\n178998,deer\n178999,truck\n179000,ship\n179001,cat\n179002,deer\n179003,cat\n179004,horse\n179005,frog\n179006,bird\n179007,automobile\n179008,ship\n179009,automobile\n179010,dog\n179011,cat\n179012,frog\n179013,deer\n179014,airplane\n179015,deer\n179016,bird\n179017,horse\n179018,horse\n179019,cat\n179020,automobile\n179021,horse\n179022,automobile\n179023,cat\n179024,automobile\n179025,airplane\n179026,frog\n179027,dog\n179028,truck\n179029,automobile\n179030,bird\n179031,cat\n179032,horse\n179033,dog\n179034,dog\n179035,horse\n179036,automobile\n179037,ship\n179038,frog\n179039,horse\n179040,deer\n179041,frog\n179042,airplane\n179043,truck\n179044,horse\n179045,truck\n179046,cat\n179047,cat\n179048,frog\n179049,frog\n179050,truck\n179051,deer\n179052,horse\n179053,dog\n179054,truck\n179055,frog\n179056,automobile\n179057,ship\n179058,cat\n179059,horse\n179060,cat\n179061,airplane\n179062,automobile\n179063,deer\n179064,automobile\n179065,cat\n179066,cat\n179067,dog\n179068,dog\n179069,bird\n179070,truck\n179071,dog\n179072,horse\n179073,airplane\n179074,dog\n179075,frog\n179076,ship\n179077,dog\n179078,dog\n179079,deer\n179080,deer\n179081,horse\n179082,airplane\n179083,dog\n179084,frog\n179085,automobile\n179086,deer\n179087,frog\n179088,truck\n179089,cat\n179090,truck\n179091,dog\n179092,dog\n179093,horse\n179094,automobile\n179095,truck\n179096,automobile\n179097,deer\n179098,cat\n179099,cat\n179100,horse\n179101,truck\n179102,horse\n179103,bird\n179104,airplane\n179105,ship\n179106,deer\n179107,cat\n179108,bird\n179109,ship\n179110,ship\n179111,dog\n179112,airplane\n179113,bird\n179114,automobile\n179115,cat\n179116,horse\n179117,cat\n179118,horse\n179119,dog\n179120,frog\n179121,frog\n179122,automobile\n179123,bird\n179124,ship\n179125,truck\n179126,horse\n179127,dog\n179128,horse\n179129,frog\n179130,truck\n179131,bird\n179132,ship\n179133,cat\n179134,ship\n179135,cat\n179136,frog\n179137,airplane\n179138,airplane\n179139,dog\n179140,truck\n179141,truck\n179142,horse\n179143,dog\n179144,cat\n179145,bird\n179146,automobile\n179147,truck\n179148,deer\n179149,dog\n179150,automobile\n179151,truck\n179152,dog\n179153,bird\n179154,bird\n179155,deer\n179156,dog\n179157,frog\n179158,frog\n179159,frog\n179160,bird\n179161,deer\n179162,bird\n179163,airplane\n179164,bird\n179165,airplane\n179166,horse\n179167,deer\n179168,horse\n179169,airplane\n179170,cat\n179171,deer\n179172,truck\n179173,dog\n179174,deer\n179175,airplane\n179176,ship\n179177,cat\n179178,truck\n179179,frog\n179180,frog\n179181,airplane\n179182,dog\n179183,horse\n179184,deer\n179185,frog\n179186,deer\n179187,airplane\n179188,cat\n179189,automobile\n179190,automobile\n179191,airplane\n179192,truck\n179193,deer\n179194,deer\n179195,truck\n179196,bird\n179197,deer\n179198,cat\n179199,horse\n179200,truck\n179201,truck\n179202,cat\n179203,cat\n179204,ship\n179205,frog\n179206,dog\n179207,frog\n179208,frog\n179209,horse\n179210,airplane\n179211,airplane\n179212,cat\n179213,truck\n179214,airplane\n179215,dog\n179216,dog\n179217,automobile\n179218,automobile\n179219,ship\n179220,bird\n179221,bird\n179222,ship\n179223,airplane\n179224,automobile\n179225,deer\n179226,horse\n179227,ship\n179228,deer\n179229,airplane\n179230,ship\n179231,automobile\n179232,ship\n179233,cat\n179234,deer\n179235,horse\n179236,cat\n179237,deer\n179238,bird\n179239,deer\n179240,truck\n179241,cat\n179242,horse\n179243,truck\n179244,cat\n179245,horse\n179246,deer\n179247,horse\n179248,dog\n179249,deer\n179250,truck\n179251,truck\n179252,horse\n179253,ship\n179254,bird\n179255,truck\n179256,deer\n179257,deer\n179258,frog\n179259,bird\n179260,airplane\n179261,dog\n179262,airplane\n179263,deer\n179264,ship\n179265,frog\n179266,ship\n179267,dog\n179268,frog\n179269,bird\n179270,dog\n179271,automobile\n179272,dog\n179273,cat\n179274,bird\n179275,airplane\n179276,deer\n179277,frog\n179278,cat\n179279,truck\n179280,ship\n179281,ship\n179282,horse\n179283,bird\n179284,deer\n179285,cat\n179286,airplane\n179287,airplane\n179288,deer\n179289,frog\n179290,bird\n179291,deer\n179292,truck\n179293,dog\n179294,frog\n179295,dog\n179296,truck\n179297,bird\n179298,frog\n179299,bird\n179300,truck\n179301,cat\n179302,deer\n179303,ship\n179304,bird\n179305,bird\n179306,automobile\n179307,truck\n179308,bird\n179309,airplane\n179310,frog\n179311,deer\n179312,frog\n179313,deer\n179314,horse\n179315,automobile\n179316,airplane\n179317,airplane\n179318,horse\n179319,automobile\n179320,automobile\n179321,frog\n179322,dog\n179323,automobile\n179324,horse\n179325,cat\n179326,ship\n179327,cat\n179328,frog\n179329,automobile\n179330,cat\n179331,horse\n179332,dog\n179333,bird\n179334,cat\n179335,deer\n179336,frog\n179337,deer\n179338,automobile\n179339,ship\n179340,airplane\n179341,deer\n179342,ship\n179343,airplane\n179344,cat\n179345,dog\n179346,ship\n179347,automobile\n179348,cat\n179349,airplane\n179350,horse\n179351,cat\n179352,ship\n179353,airplane\n179354,truck\n179355,horse\n179356,cat\n179357,truck\n179358,truck\n179359,dog\n179360,cat\n179361,airplane\n179362,frog\n179363,bird\n179364,automobile\n179365,cat\n179366,horse\n179367,dog\n179368,horse\n179369,frog\n179370,airplane\n179371,horse\n179372,automobile\n179373,truck\n179374,horse\n179375,ship\n179376,dog\n179377,cat\n179378,horse\n179379,bird\n179380,airplane\n179381,cat\n179382,deer\n179383,truck\n179384,deer\n179385,automobile\n179386,dog\n179387,truck\n179388,horse\n179389,frog\n179390,airplane\n179391,ship\n179392,truck\n179393,cat\n179394,frog\n179395,ship\n179396,bird\n179397,frog\n179398,truck\n179399,bird\n179400,truck\n179401,bird\n179402,horse\n179403,horse\n179404,ship\n179405,horse\n179406,deer\n179407,automobile\n179408,cat\n179409,truck\n179410,truck\n179411,truck\n179412,frog\n179413,dog\n179414,automobile\n179415,automobile\n179416,truck\n179417,horse\n179418,ship\n179419,frog\n179420,deer\n179421,truck\n179422,horse\n179423,dog\n179424,truck\n179425,dog\n179426,frog\n179427,dog\n179428,cat\n179429,airplane\n179430,dog\n179431,cat\n179432,dog\n179433,cat\n179434,dog\n179435,dog\n179436,dog\n179437,airplane\n179438,bird\n179439,ship\n179440,bird\n179441,airplane\n179442,deer\n179443,cat\n179444,dog\n179445,automobile\n179446,deer\n179447,cat\n179448,frog\n179449,horse\n179450,deer\n179451,deer\n179452,automobile\n179453,frog\n179454,bird\n179455,automobile\n179456,cat\n179457,automobile\n179458,horse\n179459,horse\n179460,cat\n179461,ship\n179462,frog\n179463,automobile\n179464,truck\n179465,bird\n179466,dog\n179467,horse\n179468,cat\n179469,bird\n179470,dog\n179471,frog\n179472,automobile\n179473,airplane\n179474,automobile\n179475,frog\n179476,frog\n179477,airplane\n179478,deer\n179479,deer\n179480,truck\n179481,horse\n179482,truck\n179483,frog\n179484,truck\n179485,frog\n179486,ship\n179487,truck\n179488,dog\n179489,deer\n179490,frog\n179491,dog\n179492,frog\n179493,horse\n179494,frog\n179495,cat\n179496,cat\n179497,cat\n179498,cat\n179499,dog\n179500,bird\n179501,dog\n179502,cat\n179503,horse\n179504,deer\n179505,bird\n179506,frog\n179507,airplane\n179508,dog\n179509,automobile\n179510,dog\n179511,dog\n179512,horse\n179513,dog\n179514,frog\n179515,dog\n179516,ship\n179517,automobile\n179518,cat\n179519,automobile\n179520,cat\n179521,bird\n179522,ship\n179523,deer\n179524,frog\n179525,frog\n179526,deer\n179527,automobile\n179528,horse\n179529,bird\n179530,frog\n179531,frog\n179532,dog\n179533,cat\n179534,ship\n179535,truck\n179536,cat\n179537,truck\n179538,dog\n179539,frog\n179540,truck\n179541,automobile\n179542,dog\n179543,ship\n179544,truck\n179545,airplane\n179546,deer\n179547,ship\n179548,ship\n179549,airplane\n179550,automobile\n179551,airplane\n179552,deer\n179553,truck\n179554,airplane\n179555,frog\n179556,frog\n179557,bird\n179558,ship\n179559,deer\n179560,horse\n179561,frog\n179562,frog\n179563,truck\n179564,frog\n179565,automobile\n179566,automobile\n179567,deer\n179568,automobile\n179569,dog\n179570,bird\n179571,truck\n179572,horse\n179573,ship\n179574,horse\n179575,deer\n179576,cat\n179577,automobile\n179578,deer\n179579,dog\n179580,deer\n179581,horse\n179582,bird\n179583,ship\n179584,truck\n179585,automobile\n179586,bird\n179587,ship\n179588,bird\n179589,horse\n179590,deer\n179591,truck\n179592,horse\n179593,deer\n179594,truck\n179595,cat\n179596,cat\n179597,automobile\n179598,frog\n179599,airplane\n179600,bird\n179601,ship\n179602,frog\n179603,truck\n179604,truck\n179605,dog\n179606,frog\n179607,frog\n179608,automobile\n179609,deer\n179610,airplane\n179611,airplane\n179612,dog\n179613,deer\n179614,dog\n179615,cat\n179616,automobile\n179617,airplane\n179618,horse\n179619,bird\n179620,deer\n179621,horse\n179622,frog\n179623,horse\n179624,frog\n179625,horse\n179626,deer\n179627,automobile\n179628,cat\n179629,horse\n179630,horse\n179631,cat\n179632,cat\n179633,bird\n179634,horse\n179635,truck\n179636,frog\n179637,deer\n179638,frog\n179639,horse\n179640,deer\n179641,automobile\n179642,ship\n179643,truck\n179644,airplane\n179645,horse\n179646,ship\n179647,dog\n179648,airplane\n179649,deer\n179650,deer\n179651,horse\n179652,automobile\n179653,airplane\n179654,ship\n179655,frog\n179656,deer\n179657,automobile\n179658,automobile\n179659,frog\n179660,frog\n179661,horse\n179662,bird\n179663,bird\n179664,automobile\n179665,horse\n179666,horse\n179667,frog\n179668,dog\n179669,deer\n179670,truck\n179671,automobile\n179672,dog\n179673,truck\n179674,deer\n179675,deer\n179676,automobile\n179677,cat\n179678,truck\n179679,cat\n179680,bird\n179681,frog\n179682,cat\n179683,truck\n179684,cat\n179685,airplane\n179686,truck\n179687,automobile\n179688,dog\n179689,ship\n179690,cat\n179691,airplane\n179692,frog\n179693,truck\n179694,deer\n179695,frog\n179696,frog\n179697,deer\n179698,ship\n179699,airplane\n179700,ship\n179701,horse\n179702,airplane\n179703,deer\n179704,horse\n179705,frog\n179706,cat\n179707,truck\n179708,frog\n179709,bird\n179710,deer\n179711,ship\n179712,truck\n179713,truck\n179714,dog\n179715,ship\n179716,frog\n179717,bird\n179718,truck\n179719,dog\n179720,ship\n179721,truck\n179722,truck\n179723,horse\n179724,cat\n179725,horse\n179726,bird\n179727,bird\n179728,deer\n179729,horse\n179730,frog\n179731,bird\n179732,dog\n179733,horse\n179734,truck\n179735,truck\n179736,truck\n179737,dog\n179738,horse\n179739,automobile\n179740,airplane\n179741,dog\n179742,airplane\n179743,deer\n179744,truck\n179745,truck\n179746,automobile\n179747,horse\n179748,dog\n179749,deer\n179750,airplane\n179751,bird\n179752,ship\n179753,cat\n179754,airplane\n179755,bird\n179756,frog\n179757,automobile\n179758,bird\n179759,ship\n179760,truck\n179761,deer\n179762,dog\n179763,airplane\n179764,automobile\n179765,horse\n179766,cat\n179767,automobile\n179768,cat\n179769,automobile\n179770,truck\n179771,deer\n179772,dog\n179773,horse\n179774,airplane\n179775,automobile\n179776,deer\n179777,deer\n179778,bird\n179779,horse\n179780,deer\n179781,frog\n179782,dog\n179783,deer\n179784,dog\n179785,dog\n179786,dog\n179787,cat\n179788,horse\n179789,dog\n179790,truck\n179791,truck\n179792,truck\n179793,cat\n179794,dog\n179795,bird\n179796,truck\n179797,frog\n179798,truck\n179799,automobile\n179800,frog\n179801,dog\n179802,frog\n179803,deer\n179804,deer\n179805,cat\n179806,frog\n179807,frog\n179808,bird\n179809,horse\n179810,cat\n179811,horse\n179812,truck\n179813,deer\n179814,truck\n179815,dog\n179816,cat\n179817,deer\n179818,airplane\n179819,deer\n179820,frog\n179821,bird\n179822,deer\n179823,dog\n179824,truck\n179825,ship\n179826,bird\n179827,deer\n179828,horse\n179829,automobile\n179830,airplane\n179831,cat\n179832,dog\n179833,dog\n179834,airplane\n179835,bird\n179836,deer\n179837,dog\n179838,dog\n179839,horse\n179840,bird\n179841,ship\n179842,ship\n179843,horse\n179844,airplane\n179845,dog\n179846,frog\n179847,dog\n179848,bird\n179849,dog\n179850,truck\n179851,airplane\n179852,truck\n179853,horse\n179854,frog\n179855,horse\n179856,truck\n179857,automobile\n179858,dog\n179859,deer\n179860,dog\n179861,truck\n179862,ship\n179863,horse\n179864,automobile\n179865,airplane\n179866,dog\n179867,horse\n179868,cat\n179869,deer\n179870,automobile\n179871,truck\n179872,truck\n179873,bird\n179874,frog\n179875,truck\n179876,frog\n179877,deer\n179878,truck\n179879,horse\n179880,bird\n179881,horse\n179882,bird\n179883,deer\n179884,ship\n179885,deer\n179886,dog\n179887,ship\n179888,frog\n179889,frog\n179890,airplane\n179891,deer\n179892,dog\n179893,truck\n179894,frog\n179895,frog\n179896,horse\n179897,truck\n179898,frog\n179899,deer\n179900,ship\n179901,truck\n179902,bird\n179903,deer\n179904,airplane\n179905,dog\n179906,truck\n179907,dog\n179908,frog\n179909,truck\n179910,ship\n179911,bird\n179912,truck\n179913,deer\n179914,frog\n179915,truck\n179916,deer\n179917,horse\n179918,ship\n179919,automobile\n179920,deer\n179921,frog\n179922,automobile\n179923,horse\n179924,frog\n179925,truck\n179926,dog\n179927,frog\n179928,truck\n179929,frog\n179930,frog\n179931,deer\n179932,horse\n179933,deer\n179934,truck\n179935,cat\n179936,cat\n179937,deer\n179938,bird\n179939,ship\n179940,cat\n179941,deer\n179942,horse\n179943,horse\n179944,ship\n179945,bird\n179946,bird\n179947,bird\n179948,deer\n179949,airplane\n179950,bird\n179951,deer\n179952,frog\n179953,ship\n179954,cat\n179955,frog\n179956,cat\n179957,bird\n179958,deer\n179959,truck\n179960,bird\n179961,cat\n179962,automobile\n179963,frog\n179964,horse\n179965,dog\n179966,bird\n179967,horse\n179968,bird\n179969,truck\n179970,ship\n179971,frog\n179972,cat\n179973,deer\n179974,cat\n179975,bird\n179976,horse\n179977,horse\n179978,deer\n179979,bird\n179980,airplane\n179981,truck\n179982,airplane\n179983,cat\n179984,dog\n179985,horse\n179986,cat\n179987,deer\n179988,frog\n179989,airplane\n179990,deer\n179991,bird\n179992,deer\n179993,deer\n179994,horse\n179995,horse\n179996,horse\n179997,cat\n179998,deer\n179999,bird\n180000,automobile\n180001,horse\n180002,airplane\n180003,truck\n180004,cat\n180005,horse\n180006,bird\n180007,cat\n180008,deer\n180009,truck\n180010,horse\n180011,deer\n180012,bird\n180013,ship\n180014,dog\n180015,bird\n180016,truck\n180017,dog\n180018,automobile\n180019,horse\n180020,frog\n180021,airplane\n180022,deer\n180023,frog\n180024,truck\n180025,horse\n180026,cat\n180027,cat\n180028,frog\n180029,airplane\n180030,deer\n180031,automobile\n180032,ship\n180033,airplane\n180034,deer\n180035,cat\n180036,bird\n180037,truck\n180038,horse\n180039,deer\n180040,bird\n180041,truck\n180042,automobile\n180043,dog\n180044,ship\n180045,airplane\n180046,automobile\n180047,frog\n180048,truck\n180049,truck\n180050,bird\n180051,cat\n180052,dog\n180053,ship\n180054,ship\n180055,horse\n180056,ship\n180057,truck\n180058,cat\n180059,deer\n180060,automobile\n180061,cat\n180062,cat\n180063,truck\n180064,frog\n180065,deer\n180066,bird\n180067,cat\n180068,deer\n180069,deer\n180070,ship\n180071,deer\n180072,frog\n180073,deer\n180074,dog\n180075,cat\n180076,dog\n180077,cat\n180078,airplane\n180079,frog\n180080,horse\n180081,cat\n180082,truck\n180083,ship\n180084,truck\n180085,horse\n180086,dog\n180087,truck\n180088,horse\n180089,frog\n180090,truck\n180091,frog\n180092,bird\n180093,airplane\n180094,cat\n180095,bird\n180096,automobile\n180097,automobile\n180098,frog\n180099,dog\n180100,cat\n180101,frog\n180102,dog\n180103,bird\n180104,automobile\n180105,ship\n180106,deer\n180107,deer\n180108,cat\n180109,airplane\n180110,deer\n180111,bird\n180112,deer\n180113,truck\n180114,horse\n180115,horse\n180116,cat\n180117,truck\n180118,cat\n180119,deer\n180120,deer\n180121,bird\n180122,automobile\n180123,truck\n180124,airplane\n180125,deer\n180126,deer\n180127,truck\n180128,cat\n180129,cat\n180130,frog\n180131,truck\n180132,ship\n180133,cat\n180134,dog\n180135,dog\n180136,frog\n180137,ship\n180138,horse\n180139,horse\n180140,horse\n180141,bird\n180142,dog\n180143,truck\n180144,truck\n180145,horse\n180146,bird\n180147,airplane\n180148,automobile\n180149,frog\n180150,truck\n180151,airplane\n180152,cat\n180153,horse\n180154,dog\n180155,deer\n180156,truck\n180157,deer\n180158,truck\n180159,deer\n180160,ship\n180161,horse\n180162,automobile\n180163,frog\n180164,airplane\n180165,horse\n180166,dog\n180167,ship\n180168,deer\n180169,deer\n180170,horse\n180171,truck\n180172,cat\n180173,dog\n180174,airplane\n180175,cat\n180176,truck\n180177,bird\n180178,dog\n180179,frog\n180180,dog\n180181,cat\n180182,truck\n180183,truck\n180184,frog\n180185,airplane\n180186,horse\n180187,horse\n180188,frog\n180189,airplane\n180190,cat\n180191,airplane\n180192,deer\n180193,frog\n180194,cat\n180195,automobile\n180196,cat\n180197,dog\n180198,automobile\n180199,airplane\n180200,horse\n180201,deer\n180202,dog\n180203,cat\n180204,horse\n180205,deer\n180206,dog\n180207,dog\n180208,frog\n180209,airplane\n180210,cat\n180211,horse\n180212,deer\n180213,truck\n180214,cat\n180215,truck\n180216,deer\n180217,horse\n180218,horse\n180219,cat\n180220,frog\n180221,automobile\n180222,bird\n180223,truck\n180224,cat\n180225,ship\n180226,frog\n180227,horse\n180228,airplane\n180229,frog\n180230,cat\n180231,dog\n180232,deer\n180233,cat\n180234,bird\n180235,dog\n180236,cat\n180237,deer\n180238,deer\n180239,truck\n180240,dog\n180241,horse\n180242,dog\n180243,horse\n180244,dog\n180245,bird\n180246,frog\n180247,horse\n180248,dog\n180249,cat\n180250,ship\n180251,cat\n180252,airplane\n180253,ship\n180254,horse\n180255,dog\n180256,frog\n180257,cat\n180258,deer\n180259,automobile\n180260,ship\n180261,automobile\n180262,cat\n180263,cat\n180264,airplane\n180265,frog\n180266,ship\n180267,automobile\n180268,cat\n180269,frog\n180270,truck\n180271,automobile\n180272,deer\n180273,truck\n180274,ship\n180275,deer\n180276,cat\n180277,deer\n180278,dog\n180279,frog\n180280,cat\n180281,cat\n180282,deer\n180283,deer\n180284,cat\n180285,bird\n180286,cat\n180287,cat\n180288,bird\n180289,frog\n180290,cat\n180291,deer\n180292,truck\n180293,frog\n180294,deer\n180295,deer\n180296,cat\n180297,cat\n180298,ship\n180299,deer\n180300,deer\n180301,airplane\n180302,dog\n180303,airplane\n180304,frog\n180305,truck\n180306,bird\n180307,truck\n180308,dog\n180309,automobile\n180310,cat\n180311,deer\n180312,truck\n180313,deer\n180314,deer\n180315,bird\n180316,automobile\n180317,dog\n180318,bird\n180319,dog\n180320,bird\n180321,truck\n180322,airplane\n180323,truck\n180324,horse\n180325,deer\n180326,dog\n180327,ship\n180328,automobile\n180329,bird\n180330,frog\n180331,deer\n180332,ship\n180333,frog\n180334,frog\n180335,deer\n180336,deer\n180337,bird\n180338,frog\n180339,horse\n180340,bird\n180341,truck\n180342,cat\n180343,airplane\n180344,cat\n180345,cat\n180346,horse\n180347,automobile\n180348,dog\n180349,cat\n180350,automobile\n180351,bird\n180352,dog\n180353,deer\n180354,bird\n180355,frog\n180356,horse\n180357,truck\n180358,bird\n180359,automobile\n180360,frog\n180361,airplane\n180362,bird\n180363,bird\n180364,frog\n180365,bird\n180366,dog\n180367,truck\n180368,ship\n180369,cat\n180370,airplane\n180371,frog\n180372,frog\n180373,cat\n180374,deer\n180375,bird\n180376,deer\n180377,truck\n180378,airplane\n180379,dog\n180380,ship\n180381,dog\n180382,truck\n180383,dog\n180384,horse\n180385,airplane\n180386,frog\n180387,airplane\n180388,cat\n180389,truck\n180390,truck\n180391,automobile\n180392,automobile\n180393,airplane\n180394,cat\n180395,frog\n180396,truck\n180397,cat\n180398,horse\n180399,automobile\n180400,frog\n180401,frog\n180402,bird\n180403,truck\n180404,cat\n180405,frog\n180406,cat\n180407,bird\n180408,ship\n180409,deer\n180410,deer\n180411,automobile\n180412,dog\n180413,airplane\n180414,bird\n180415,deer\n180416,airplane\n180417,ship\n180418,dog\n180419,dog\n180420,bird\n180421,frog\n180422,cat\n180423,dog\n180424,dog\n180425,airplane\n180426,bird\n180427,bird\n180428,truck\n180429,automobile\n180430,dog\n180431,truck\n180432,deer\n180433,deer\n180434,dog\n180435,cat\n180436,deer\n180437,dog\n180438,cat\n180439,deer\n180440,ship\n180441,horse\n180442,truck\n180443,deer\n180444,cat\n180445,airplane\n180446,automobile\n180447,frog\n180448,deer\n180449,bird\n180450,bird\n180451,automobile\n180452,dog\n180453,dog\n180454,deer\n180455,frog\n180456,deer\n180457,deer\n180458,deer\n180459,dog\n180460,frog\n180461,bird\n180462,airplane\n180463,horse\n180464,truck\n180465,dog\n180466,horse\n180467,airplane\n180468,deer\n180469,ship\n180470,horse\n180471,frog\n180472,airplane\n180473,truck\n180474,airplane\n180475,frog\n180476,airplane\n180477,cat\n180478,cat\n180479,dog\n180480,horse\n180481,frog\n180482,horse\n180483,frog\n180484,cat\n180485,automobile\n180486,dog\n180487,airplane\n180488,airplane\n180489,bird\n180490,cat\n180491,truck\n180492,truck\n180493,truck\n180494,bird\n180495,dog\n180496,ship\n180497,horse\n180498,deer\n180499,frog\n180500,deer\n180501,deer\n180502,deer\n180503,bird\n180504,truck\n180505,frog\n180506,bird\n180507,truck\n180508,automobile\n180509,airplane\n180510,bird\n180511,deer\n180512,deer\n180513,bird\n180514,ship\n180515,cat\n180516,truck\n180517,horse\n180518,cat\n180519,bird\n180520,deer\n180521,ship\n180522,cat\n180523,cat\n180524,truck\n180525,horse\n180526,ship\n180527,dog\n180528,frog\n180529,truck\n180530,deer\n180531,bird\n180532,airplane\n180533,bird\n180534,truck\n180535,cat\n180536,deer\n180537,bird\n180538,ship\n180539,horse\n180540,horse\n180541,cat\n180542,bird\n180543,cat\n180544,deer\n180545,cat\n180546,deer\n180547,deer\n180548,cat\n180549,ship\n180550,frog\n180551,frog\n180552,frog\n180553,bird\n180554,horse\n180555,dog\n180556,frog\n180557,dog\n180558,frog\n180559,horse\n180560,cat\n180561,cat\n180562,dog\n180563,truck\n180564,cat\n180565,dog\n180566,ship\n180567,cat\n180568,dog\n180569,frog\n180570,cat\n180571,dog\n180572,horse\n180573,dog\n180574,airplane\n180575,automobile\n180576,cat\n180577,horse\n180578,cat\n180579,cat\n180580,ship\n180581,cat\n180582,ship\n180583,deer\n180584,cat\n180585,ship\n180586,deer\n180587,frog\n180588,airplane\n180589,horse\n180590,cat\n180591,truck\n180592,bird\n180593,bird\n180594,cat\n180595,deer\n180596,horse\n180597,airplane\n180598,dog\n180599,airplane\n180600,frog\n180601,deer\n180602,horse\n180603,automobile\n180604,dog\n180605,truck\n180606,dog\n180607,airplane\n180608,frog\n180609,cat\n180610,horse\n180611,cat\n180612,deer\n180613,cat\n180614,bird\n180615,deer\n180616,deer\n180617,truck\n180618,automobile\n180619,ship\n180620,truck\n180621,cat\n180622,horse\n180623,ship\n180624,ship\n180625,frog\n180626,bird\n180627,bird\n180628,horse\n180629,cat\n180630,truck\n180631,ship\n180632,bird\n180633,horse\n180634,dog\n180635,airplane\n180636,automobile\n180637,cat\n180638,ship\n180639,airplane\n180640,truck\n180641,cat\n180642,cat\n180643,airplane\n180644,cat\n180645,frog\n180646,deer\n180647,dog\n180648,automobile\n180649,horse\n180650,deer\n180651,dog\n180652,frog\n180653,deer\n180654,airplane\n180655,automobile\n180656,truck\n180657,ship\n180658,airplane\n180659,automobile\n180660,horse\n180661,frog\n180662,bird\n180663,deer\n180664,airplane\n180665,bird\n180666,truck\n180667,deer\n180668,cat\n180669,deer\n180670,cat\n180671,cat\n180672,truck\n180673,deer\n180674,deer\n180675,bird\n180676,dog\n180677,dog\n180678,frog\n180679,bird\n180680,frog\n180681,automobile\n180682,ship\n180683,automobile\n180684,truck\n180685,airplane\n180686,frog\n180687,deer\n180688,truck\n180689,cat\n180690,ship\n180691,automobile\n180692,bird\n180693,cat\n180694,dog\n180695,deer\n180696,frog\n180697,cat\n180698,frog\n180699,deer\n180700,frog\n180701,airplane\n180702,ship\n180703,deer\n180704,horse\n180705,deer\n180706,deer\n180707,cat\n180708,airplane\n180709,frog\n180710,horse\n180711,bird\n180712,ship\n180713,truck\n180714,cat\n180715,bird\n180716,cat\n180717,frog\n180718,dog\n180719,airplane\n180720,bird\n180721,bird\n180722,bird\n180723,dog\n180724,dog\n180725,deer\n180726,deer\n180727,airplane\n180728,dog\n180729,airplane\n180730,bird\n180731,ship\n180732,automobile\n180733,deer\n180734,truck\n180735,truck\n180736,airplane\n180737,bird\n180738,bird\n180739,deer\n180740,deer\n180741,truck\n180742,deer\n180743,ship\n180744,cat\n180745,automobile\n180746,bird\n180747,automobile\n180748,deer\n180749,airplane\n180750,cat\n180751,bird\n180752,frog\n180753,deer\n180754,automobile\n180755,frog\n180756,deer\n180757,dog\n180758,horse\n180759,cat\n180760,frog\n180761,frog\n180762,truck\n180763,dog\n180764,airplane\n180765,dog\n180766,frog\n180767,automobile\n180768,automobile\n180769,airplane\n180770,truck\n180771,deer\n180772,dog\n180773,deer\n180774,cat\n180775,bird\n180776,dog\n180777,frog\n180778,dog\n180779,deer\n180780,deer\n180781,horse\n180782,bird\n180783,bird\n180784,cat\n180785,bird\n180786,frog\n180787,ship\n180788,ship\n180789,dog\n180790,automobile\n180791,deer\n180792,automobile\n180793,deer\n180794,deer\n180795,horse\n180796,bird\n180797,deer\n180798,horse\n180799,airplane\n180800,airplane\n180801,ship\n180802,airplane\n180803,frog\n180804,automobile\n180805,airplane\n180806,cat\n180807,cat\n180808,cat\n180809,cat\n180810,ship\n180811,truck\n180812,airplane\n180813,ship\n180814,automobile\n180815,dog\n180816,dog\n180817,horse\n180818,horse\n180819,cat\n180820,truck\n180821,deer\n180822,dog\n180823,deer\n180824,horse\n180825,ship\n180826,deer\n180827,cat\n180828,deer\n180829,truck\n180830,cat\n180831,automobile\n180832,deer\n180833,bird\n180834,cat\n180835,bird\n180836,frog\n180837,dog\n180838,automobile\n180839,bird\n180840,cat\n180841,ship\n180842,frog\n180843,frog\n180844,cat\n180845,ship\n180846,dog\n180847,airplane\n180848,truck\n180849,cat\n180850,truck\n180851,bird\n180852,truck\n180853,dog\n180854,frog\n180855,dog\n180856,airplane\n180857,horse\n180858,horse\n180859,frog\n180860,cat\n180861,truck\n180862,cat\n180863,cat\n180864,frog\n180865,deer\n180866,horse\n180867,bird\n180868,dog\n180869,horse\n180870,cat\n180871,frog\n180872,bird\n180873,airplane\n180874,dog\n180875,frog\n180876,cat\n180877,horse\n180878,dog\n180879,cat\n180880,truck\n180881,truck\n180882,ship\n180883,ship\n180884,dog\n180885,frog\n180886,bird\n180887,frog\n180888,automobile\n180889,dog\n180890,horse\n180891,airplane\n180892,deer\n180893,truck\n180894,deer\n180895,cat\n180896,ship\n180897,cat\n180898,bird\n180899,deer\n180900,truck\n180901,deer\n180902,cat\n180903,deer\n180904,deer\n180905,horse\n180906,airplane\n180907,dog\n180908,horse\n180909,cat\n180910,automobile\n180911,dog\n180912,automobile\n180913,ship\n180914,horse\n180915,airplane\n180916,airplane\n180917,automobile\n180918,airplane\n180919,airplane\n180920,airplane\n180921,deer\n180922,horse\n180923,truck\n180924,ship\n180925,horse\n180926,dog\n180927,horse\n180928,bird\n180929,horse\n180930,airplane\n180931,cat\n180932,airplane\n180933,dog\n180934,cat\n180935,frog\n180936,dog\n180937,cat\n180938,deer\n180939,dog\n180940,bird\n180941,deer\n180942,bird\n180943,dog\n180944,ship\n180945,airplane\n180946,cat\n180947,frog\n180948,frog\n180949,horse\n180950,cat\n180951,dog\n180952,airplane\n180953,horse\n180954,frog\n180955,airplane\n180956,airplane\n180957,dog\n180958,cat\n180959,deer\n180960,frog\n180961,truck\n180962,airplane\n180963,horse\n180964,truck\n180965,horse\n180966,dog\n180967,cat\n180968,ship\n180969,frog\n180970,dog\n180971,truck\n180972,dog\n180973,horse\n180974,bird\n180975,cat\n180976,dog\n180977,deer\n180978,dog\n180979,horse\n180980,truck\n180981,bird\n180982,truck\n180983,horse\n180984,deer\n180985,deer\n180986,automobile\n180987,ship\n180988,bird\n180989,bird\n180990,deer\n180991,truck\n180992,automobile\n180993,automobile\n180994,automobile\n180995,frog\n180996,cat\n180997,dog\n180998,cat\n180999,ship\n181000,bird\n181001,truck\n181002,airplane\n181003,ship\n181004,deer\n181005,frog\n181006,deer\n181007,frog\n181008,ship\n181009,deer\n181010,frog\n181011,airplane\n181012,ship\n181013,horse\n181014,ship\n181015,airplane\n181016,frog\n181017,automobile\n181018,frog\n181019,frog\n181020,truck\n181021,airplane\n181022,dog\n181023,cat\n181024,automobile\n181025,horse\n181026,dog\n181027,bird\n181028,airplane\n181029,frog\n181030,frog\n181031,frog\n181032,bird\n181033,deer\n181034,cat\n181035,deer\n181036,deer\n181037,bird\n181038,dog\n181039,automobile\n181040,bird\n181041,deer\n181042,cat\n181043,horse\n181044,automobile\n181045,cat\n181046,frog\n181047,bird\n181048,bird\n181049,horse\n181050,cat\n181051,truck\n181052,truck\n181053,automobile\n181054,airplane\n181055,cat\n181056,automobile\n181057,frog\n181058,frog\n181059,airplane\n181060,ship\n181061,ship\n181062,airplane\n181063,truck\n181064,cat\n181065,automobile\n181066,bird\n181067,bird\n181068,horse\n181069,ship\n181070,cat\n181071,horse\n181072,cat\n181073,bird\n181074,horse\n181075,horse\n181076,bird\n181077,frog\n181078,cat\n181079,cat\n181080,airplane\n181081,airplane\n181082,ship\n181083,automobile\n181084,ship\n181085,truck\n181086,deer\n181087,truck\n181088,airplane\n181089,cat\n181090,dog\n181091,deer\n181092,cat\n181093,automobile\n181094,dog\n181095,deer\n181096,ship\n181097,frog\n181098,dog\n181099,deer\n181100,automobile\n181101,airplane\n181102,bird\n181103,dog\n181104,ship\n181105,bird\n181106,ship\n181107,airplane\n181108,horse\n181109,deer\n181110,ship\n181111,ship\n181112,truck\n181113,airplane\n181114,dog\n181115,airplane\n181116,truck\n181117,deer\n181118,ship\n181119,ship\n181120,bird\n181121,frog\n181122,frog\n181123,dog\n181124,deer\n181125,deer\n181126,horse\n181127,dog\n181128,dog\n181129,dog\n181130,horse\n181131,bird\n181132,deer\n181133,horse\n181134,deer\n181135,horse\n181136,automobile\n181137,deer\n181138,deer\n181139,dog\n181140,dog\n181141,airplane\n181142,ship\n181143,frog\n181144,deer\n181145,cat\n181146,dog\n181147,bird\n181148,dog\n181149,airplane\n181150,ship\n181151,frog\n181152,bird\n181153,deer\n181154,frog\n181155,bird\n181156,truck\n181157,truck\n181158,cat\n181159,deer\n181160,cat\n181161,deer\n181162,bird\n181163,truck\n181164,dog\n181165,dog\n181166,cat\n181167,airplane\n181168,airplane\n181169,dog\n181170,airplane\n181171,ship\n181172,cat\n181173,deer\n181174,automobile\n181175,cat\n181176,dog\n181177,airplane\n181178,deer\n181179,horse\n181180,truck\n181181,ship\n181182,airplane\n181183,truck\n181184,ship\n181185,frog\n181186,bird\n181187,horse\n181188,horse\n181189,cat\n181190,horse\n181191,frog\n181192,deer\n181193,dog\n181194,cat\n181195,ship\n181196,dog\n181197,bird\n181198,frog\n181199,airplane\n181200,automobile\n181201,frog\n181202,airplane\n181203,bird\n181204,airplane\n181205,truck\n181206,truck\n181207,airplane\n181208,truck\n181209,deer\n181210,airplane\n181211,ship\n181212,airplane\n181213,ship\n181214,truck\n181215,truck\n181216,horse\n181217,deer\n181218,horse\n181219,deer\n181220,dog\n181221,frog\n181222,airplane\n181223,deer\n181224,dog\n181225,horse\n181226,dog\n181227,airplane\n181228,automobile\n181229,deer\n181230,dog\n181231,cat\n181232,dog\n181233,automobile\n181234,automobile\n181235,airplane\n181236,cat\n181237,airplane\n181238,automobile\n181239,frog\n181240,airplane\n181241,dog\n181242,automobile\n181243,automobile\n181244,truck\n181245,truck\n181246,deer\n181247,cat\n181248,cat\n181249,frog\n181250,airplane\n181251,frog\n181252,deer\n181253,cat\n181254,bird\n181255,cat\n181256,frog\n181257,truck\n181258,horse\n181259,ship\n181260,frog\n181261,cat\n181262,ship\n181263,dog\n181264,deer\n181265,frog\n181266,ship\n181267,truck\n181268,ship\n181269,deer\n181270,airplane\n181271,bird\n181272,ship\n181273,deer\n181274,frog\n181275,dog\n181276,deer\n181277,deer\n181278,dog\n181279,deer\n181280,ship\n181281,truck\n181282,deer\n181283,automobile\n181284,dog\n181285,horse\n181286,truck\n181287,ship\n181288,ship\n181289,cat\n181290,cat\n181291,bird\n181292,cat\n181293,truck\n181294,bird\n181295,automobile\n181296,frog\n181297,dog\n181298,airplane\n181299,bird\n181300,bird\n181301,ship\n181302,deer\n181303,ship\n181304,horse\n181305,deer\n181306,truck\n181307,horse\n181308,truck\n181309,horse\n181310,truck\n181311,deer\n181312,airplane\n181313,frog\n181314,dog\n181315,ship\n181316,deer\n181317,truck\n181318,bird\n181319,airplane\n181320,cat\n181321,frog\n181322,frog\n181323,automobile\n181324,horse\n181325,truck\n181326,horse\n181327,automobile\n181328,cat\n181329,dog\n181330,ship\n181331,truck\n181332,dog\n181333,truck\n181334,ship\n181335,bird\n181336,horse\n181337,deer\n181338,automobile\n181339,cat\n181340,cat\n181341,bird\n181342,truck\n181343,ship\n181344,deer\n181345,truck\n181346,dog\n181347,cat\n181348,frog\n181349,airplane\n181350,deer\n181351,ship\n181352,dog\n181353,deer\n181354,deer\n181355,ship\n181356,airplane\n181357,deer\n181358,dog\n181359,deer\n181360,frog\n181361,horse\n181362,truck\n181363,bird\n181364,horse\n181365,truck\n181366,dog\n181367,horse\n181368,dog\n181369,dog\n181370,horse\n181371,horse\n181372,automobile\n181373,cat\n181374,horse\n181375,deer\n181376,dog\n181377,airplane\n181378,cat\n181379,frog\n181380,bird\n181381,airplane\n181382,cat\n181383,cat\n181384,cat\n181385,bird\n181386,deer\n181387,frog\n181388,deer\n181389,frog\n181390,frog\n181391,automobile\n181392,airplane\n181393,airplane\n181394,bird\n181395,truck\n181396,ship\n181397,cat\n181398,bird\n181399,deer\n181400,automobile\n181401,automobile\n181402,deer\n181403,airplane\n181404,horse\n181405,ship\n181406,airplane\n181407,truck\n181408,airplane\n181409,cat\n181410,frog\n181411,airplane\n181412,truck\n181413,bird\n181414,frog\n181415,frog\n181416,cat\n181417,cat\n181418,frog\n181419,deer\n181420,cat\n181421,deer\n181422,dog\n181423,frog\n181424,ship\n181425,deer\n181426,cat\n181427,deer\n181428,cat\n181429,frog\n181430,cat\n181431,truck\n181432,truck\n181433,airplane\n181434,automobile\n181435,cat\n181436,ship\n181437,cat\n181438,horse\n181439,truck\n181440,deer\n181441,cat\n181442,deer\n181443,ship\n181444,ship\n181445,ship\n181446,truck\n181447,truck\n181448,automobile\n181449,dog\n181450,bird\n181451,dog\n181452,horse\n181453,truck\n181454,horse\n181455,frog\n181456,cat\n181457,truck\n181458,truck\n181459,automobile\n181460,ship\n181461,truck\n181462,frog\n181463,deer\n181464,dog\n181465,bird\n181466,airplane\n181467,deer\n181468,deer\n181469,airplane\n181470,cat\n181471,bird\n181472,ship\n181473,horse\n181474,dog\n181475,dog\n181476,truck\n181477,frog\n181478,ship\n181479,cat\n181480,deer\n181481,cat\n181482,bird\n181483,ship\n181484,bird\n181485,automobile\n181486,airplane\n181487,deer\n181488,deer\n181489,bird\n181490,airplane\n181491,cat\n181492,frog\n181493,frog\n181494,bird\n181495,cat\n181496,cat\n181497,truck\n181498,truck\n181499,deer\n181500,horse\n181501,deer\n181502,truck\n181503,frog\n181504,dog\n181505,dog\n181506,cat\n181507,airplane\n181508,bird\n181509,truck\n181510,frog\n181511,cat\n181512,horse\n181513,deer\n181514,bird\n181515,horse\n181516,deer\n181517,frog\n181518,dog\n181519,frog\n181520,deer\n181521,dog\n181522,airplane\n181523,deer\n181524,cat\n181525,airplane\n181526,horse\n181527,ship\n181528,frog\n181529,deer\n181530,cat\n181531,frog\n181532,bird\n181533,dog\n181534,automobile\n181535,cat\n181536,automobile\n181537,ship\n181538,horse\n181539,horse\n181540,airplane\n181541,bird\n181542,deer\n181543,horse\n181544,ship\n181545,automobile\n181546,truck\n181547,cat\n181548,deer\n181549,deer\n181550,truck\n181551,automobile\n181552,horse\n181553,truck\n181554,automobile\n181555,cat\n181556,dog\n181557,dog\n181558,horse\n181559,ship\n181560,airplane\n181561,cat\n181562,cat\n181563,horse\n181564,dog\n181565,bird\n181566,frog\n181567,ship\n181568,bird\n181569,dog\n181570,bird\n181571,ship\n181572,cat\n181573,horse\n181574,frog\n181575,frog\n181576,horse\n181577,airplane\n181578,bird\n181579,bird\n181580,ship\n181581,deer\n181582,truck\n181583,dog\n181584,deer\n181585,automobile\n181586,dog\n181587,horse\n181588,frog\n181589,deer\n181590,truck\n181591,frog\n181592,deer\n181593,ship\n181594,truck\n181595,deer\n181596,cat\n181597,automobile\n181598,dog\n181599,ship\n181600,horse\n181601,dog\n181602,dog\n181603,bird\n181604,frog\n181605,bird\n181606,horse\n181607,dog\n181608,horse\n181609,bird\n181610,truck\n181611,truck\n181612,dog\n181613,cat\n181614,ship\n181615,frog\n181616,airplane\n181617,cat\n181618,horse\n181619,truck\n181620,automobile\n181621,airplane\n181622,horse\n181623,deer\n181624,frog\n181625,deer\n181626,dog\n181627,dog\n181628,bird\n181629,airplane\n181630,truck\n181631,deer\n181632,frog\n181633,truck\n181634,dog\n181635,airplane\n181636,airplane\n181637,frog\n181638,deer\n181639,truck\n181640,airplane\n181641,cat\n181642,deer\n181643,frog\n181644,cat\n181645,dog\n181646,ship\n181647,horse\n181648,airplane\n181649,truck\n181650,deer\n181651,cat\n181652,ship\n181653,bird\n181654,deer\n181655,automobile\n181656,dog\n181657,airplane\n181658,frog\n181659,deer\n181660,horse\n181661,frog\n181662,truck\n181663,cat\n181664,cat\n181665,frog\n181666,cat\n181667,dog\n181668,deer\n181669,dog\n181670,automobile\n181671,frog\n181672,truck\n181673,deer\n181674,deer\n181675,truck\n181676,frog\n181677,cat\n181678,horse\n181679,cat\n181680,frog\n181681,deer\n181682,automobile\n181683,airplane\n181684,airplane\n181685,dog\n181686,horse\n181687,dog\n181688,horse\n181689,cat\n181690,automobile\n181691,frog\n181692,deer\n181693,bird\n181694,frog\n181695,ship\n181696,bird\n181697,deer\n181698,bird\n181699,truck\n181700,dog\n181701,automobile\n181702,automobile\n181703,deer\n181704,ship\n181705,deer\n181706,horse\n181707,bird\n181708,frog\n181709,automobile\n181710,automobile\n181711,deer\n181712,ship\n181713,dog\n181714,automobile\n181715,cat\n181716,dog\n181717,frog\n181718,airplane\n181719,cat\n181720,truck\n181721,automobile\n181722,truck\n181723,deer\n181724,truck\n181725,airplane\n181726,horse\n181727,deer\n181728,deer\n181729,horse\n181730,bird\n181731,truck\n181732,airplane\n181733,automobile\n181734,horse\n181735,cat\n181736,automobile\n181737,dog\n181738,horse\n181739,truck\n181740,frog\n181741,horse\n181742,airplane\n181743,deer\n181744,automobile\n181745,frog\n181746,truck\n181747,bird\n181748,truck\n181749,dog\n181750,ship\n181751,ship\n181752,cat\n181753,ship\n181754,horse\n181755,dog\n181756,airplane\n181757,frog\n181758,ship\n181759,cat\n181760,airplane\n181761,bird\n181762,frog\n181763,truck\n181764,ship\n181765,airplane\n181766,automobile\n181767,truck\n181768,airplane\n181769,truck\n181770,cat\n181771,cat\n181772,deer\n181773,ship\n181774,frog\n181775,ship\n181776,frog\n181777,frog\n181778,bird\n181779,deer\n181780,dog\n181781,cat\n181782,ship\n181783,airplane\n181784,bird\n181785,bird\n181786,frog\n181787,airplane\n181788,dog\n181789,dog\n181790,cat\n181791,truck\n181792,ship\n181793,horse\n181794,deer\n181795,deer\n181796,deer\n181797,frog\n181798,cat\n181799,truck\n181800,airplane\n181801,horse\n181802,deer\n181803,airplane\n181804,frog\n181805,deer\n181806,horse\n181807,ship\n181808,ship\n181809,automobile\n181810,ship\n181811,truck\n181812,frog\n181813,cat\n181814,automobile\n181815,frog\n181816,cat\n181817,dog\n181818,cat\n181819,dog\n181820,cat\n181821,dog\n181822,deer\n181823,dog\n181824,bird\n181825,truck\n181826,horse\n181827,truck\n181828,cat\n181829,horse\n181830,automobile\n181831,dog\n181832,truck\n181833,frog\n181834,horse\n181835,bird\n181836,deer\n181837,cat\n181838,bird\n181839,horse\n181840,frog\n181841,airplane\n181842,cat\n181843,automobile\n181844,airplane\n181845,cat\n181846,frog\n181847,automobile\n181848,dog\n181849,ship\n181850,horse\n181851,dog\n181852,horse\n181853,deer\n181854,dog\n181855,airplane\n181856,frog\n181857,truck\n181858,cat\n181859,ship\n181860,cat\n181861,truck\n181862,bird\n181863,ship\n181864,dog\n181865,cat\n181866,frog\n181867,frog\n181868,dog\n181869,automobile\n181870,bird\n181871,truck\n181872,cat\n181873,deer\n181874,ship\n181875,cat\n181876,cat\n181877,automobile\n181878,cat\n181879,automobile\n181880,frog\n181881,deer\n181882,truck\n181883,ship\n181884,automobile\n181885,dog\n181886,dog\n181887,automobile\n181888,cat\n181889,frog\n181890,cat\n181891,ship\n181892,ship\n181893,dog\n181894,airplane\n181895,deer\n181896,airplane\n181897,cat\n181898,cat\n181899,bird\n181900,airplane\n181901,bird\n181902,truck\n181903,deer\n181904,ship\n181905,bird\n181906,cat\n181907,cat\n181908,dog\n181909,dog\n181910,deer\n181911,deer\n181912,horse\n181913,cat\n181914,frog\n181915,deer\n181916,dog\n181917,ship\n181918,cat\n181919,airplane\n181920,dog\n181921,deer\n181922,airplane\n181923,bird\n181924,bird\n181925,airplane\n181926,truck\n181927,deer\n181928,ship\n181929,deer\n181930,ship\n181931,airplane\n181932,truck\n181933,bird\n181934,horse\n181935,airplane\n181936,cat\n181937,horse\n181938,cat\n181939,frog\n181940,frog\n181941,frog\n181942,dog\n181943,dog\n181944,automobile\n181945,bird\n181946,airplane\n181947,horse\n181948,cat\n181949,automobile\n181950,truck\n181951,dog\n181952,bird\n181953,ship\n181954,cat\n181955,airplane\n181956,airplane\n181957,frog\n181958,bird\n181959,frog\n181960,dog\n181961,automobile\n181962,deer\n181963,truck\n181964,cat\n181965,cat\n181966,dog\n181967,bird\n181968,cat\n181969,bird\n181970,cat\n181971,dog\n181972,horse\n181973,frog\n181974,airplane\n181975,frog\n181976,cat\n181977,dog\n181978,ship\n181979,ship\n181980,ship\n181981,cat\n181982,ship\n181983,bird\n181984,horse\n181985,bird\n181986,dog\n181987,dog\n181988,frog\n181989,airplane\n181990,frog\n181991,bird\n181992,horse\n181993,airplane\n181994,cat\n181995,frog\n181996,truck\n181997,horse\n181998,horse\n181999,automobile\n182000,frog\n182001,truck\n182002,horse\n182003,horse\n182004,truck\n182005,frog\n182006,cat\n182007,bird\n182008,deer\n182009,truck\n182010,airplane\n182011,dog\n182012,cat\n182013,ship\n182014,bird\n182015,bird\n182016,truck\n182017,truck\n182018,airplane\n182019,cat\n182020,airplane\n182021,ship\n182022,cat\n182023,truck\n182024,truck\n182025,ship\n182026,ship\n182027,dog\n182028,airplane\n182029,frog\n182030,horse\n182031,automobile\n182032,cat\n182033,deer\n182034,frog\n182035,ship\n182036,ship\n182037,ship\n182038,cat\n182039,airplane\n182040,truck\n182041,frog\n182042,automobile\n182043,cat\n182044,bird\n182045,horse\n182046,cat\n182047,dog\n182048,cat\n182049,frog\n182050,dog\n182051,airplane\n182052,deer\n182053,deer\n182054,frog\n182055,ship\n182056,horse\n182057,ship\n182058,bird\n182059,airplane\n182060,bird\n182061,horse\n182062,deer\n182063,horse\n182064,dog\n182065,deer\n182066,cat\n182067,bird\n182068,airplane\n182069,frog\n182070,cat\n182071,cat\n182072,truck\n182073,frog\n182074,automobile\n182075,horse\n182076,airplane\n182077,bird\n182078,deer\n182079,airplane\n182080,airplane\n182081,deer\n182082,dog\n182083,truck\n182084,airplane\n182085,horse\n182086,frog\n182087,cat\n182088,ship\n182089,dog\n182090,airplane\n182091,automobile\n182092,frog\n182093,ship\n182094,deer\n182095,dog\n182096,dog\n182097,dog\n182098,deer\n182099,truck\n182100,cat\n182101,cat\n182102,airplane\n182103,frog\n182104,deer\n182105,airplane\n182106,cat\n182107,deer\n182108,ship\n182109,frog\n182110,automobile\n182111,frog\n182112,frog\n182113,frog\n182114,airplane\n182115,bird\n182116,airplane\n182117,airplane\n182118,deer\n182119,cat\n182120,dog\n182121,cat\n182122,ship\n182123,truck\n182124,deer\n182125,bird\n182126,frog\n182127,airplane\n182128,dog\n182129,airplane\n182130,automobile\n182131,horse\n182132,airplane\n182133,cat\n182134,bird\n182135,deer\n182136,dog\n182137,automobile\n182138,dog\n182139,deer\n182140,truck\n182141,frog\n182142,automobile\n182143,cat\n182144,cat\n182145,frog\n182146,truck\n182147,dog\n182148,cat\n182149,horse\n182150,horse\n182151,deer\n182152,horse\n182153,automobile\n182154,cat\n182155,frog\n182156,horse\n182157,deer\n182158,dog\n182159,airplane\n182160,ship\n182161,airplane\n182162,dog\n182163,deer\n182164,horse\n182165,frog\n182166,automobile\n182167,frog\n182168,horse\n182169,horse\n182170,bird\n182171,deer\n182172,airplane\n182173,airplane\n182174,truck\n182175,frog\n182176,cat\n182177,automobile\n182178,dog\n182179,frog\n182180,ship\n182181,frog\n182182,deer\n182183,ship\n182184,cat\n182185,cat\n182186,bird\n182187,bird\n182188,automobile\n182189,deer\n182190,frog\n182191,airplane\n182192,frog\n182193,truck\n182194,automobile\n182195,bird\n182196,cat\n182197,deer\n182198,dog\n182199,ship\n182200,airplane\n182201,cat\n182202,automobile\n182203,cat\n182204,horse\n182205,frog\n182206,horse\n182207,frog\n182208,cat\n182209,deer\n182210,horse\n182211,dog\n182212,cat\n182213,automobile\n182214,frog\n182215,deer\n182216,ship\n182217,frog\n182218,bird\n182219,cat\n182220,horse\n182221,cat\n182222,horse\n182223,deer\n182224,deer\n182225,airplane\n182226,horse\n182227,truck\n182228,horse\n182229,ship\n182230,bird\n182231,airplane\n182232,dog\n182233,deer\n182234,ship\n182235,deer\n182236,frog\n182237,deer\n182238,horse\n182239,horse\n182240,deer\n182241,bird\n182242,airplane\n182243,deer\n182244,airplane\n182245,cat\n182246,horse\n182247,dog\n182248,bird\n182249,frog\n182250,ship\n182251,cat\n182252,truck\n182253,airplane\n182254,bird\n182255,bird\n182256,cat\n182257,bird\n182258,cat\n182259,ship\n182260,dog\n182261,deer\n182262,dog\n182263,automobile\n182264,automobile\n182265,truck\n182266,cat\n182267,airplane\n182268,horse\n182269,frog\n182270,automobile\n182271,deer\n182272,deer\n182273,bird\n182274,automobile\n182275,dog\n182276,cat\n182277,frog\n182278,airplane\n182279,deer\n182280,dog\n182281,deer\n182282,frog\n182283,deer\n182284,cat\n182285,bird\n182286,frog\n182287,deer\n182288,frog\n182289,deer\n182290,ship\n182291,cat\n182292,bird\n182293,cat\n182294,horse\n182295,truck\n182296,airplane\n182297,dog\n182298,airplane\n182299,deer\n182300,automobile\n182301,airplane\n182302,dog\n182303,deer\n182304,deer\n182305,frog\n182306,horse\n182307,dog\n182308,horse\n182309,automobile\n182310,automobile\n182311,airplane\n182312,automobile\n182313,bird\n182314,dog\n182315,frog\n182316,deer\n182317,dog\n182318,truck\n182319,cat\n182320,bird\n182321,truck\n182322,deer\n182323,dog\n182324,dog\n182325,cat\n182326,horse\n182327,horse\n182328,bird\n182329,frog\n182330,truck\n182331,deer\n182332,horse\n182333,frog\n182334,truck\n182335,bird\n182336,frog\n182337,deer\n182338,dog\n182339,frog\n182340,frog\n182341,bird\n182342,truck\n182343,bird\n182344,truck\n182345,frog\n182346,ship\n182347,airplane\n182348,frog\n182349,ship\n182350,deer\n182351,cat\n182352,deer\n182353,deer\n182354,airplane\n182355,deer\n182356,cat\n182357,cat\n182358,cat\n182359,deer\n182360,ship\n182361,truck\n182362,cat\n182363,dog\n182364,airplane\n182365,ship\n182366,cat\n182367,airplane\n182368,deer\n182369,truck\n182370,dog\n182371,deer\n182372,truck\n182373,truck\n182374,frog\n182375,deer\n182376,dog\n182377,cat\n182378,truck\n182379,airplane\n182380,airplane\n182381,frog\n182382,airplane\n182383,deer\n182384,ship\n182385,airplane\n182386,automobile\n182387,automobile\n182388,deer\n182389,airplane\n182390,ship\n182391,dog\n182392,frog\n182393,cat\n182394,bird\n182395,bird\n182396,horse\n182397,cat\n182398,frog\n182399,ship\n182400,ship\n182401,truck\n182402,dog\n182403,bird\n182404,dog\n182405,dog\n182406,horse\n182407,ship\n182408,bird\n182409,deer\n182410,horse\n182411,truck\n182412,deer\n182413,frog\n182414,ship\n182415,bird\n182416,truck\n182417,deer\n182418,cat\n182419,dog\n182420,cat\n182421,bird\n182422,ship\n182423,cat\n182424,cat\n182425,bird\n182426,dog\n182427,frog\n182428,cat\n182429,truck\n182430,dog\n182431,ship\n182432,bird\n182433,frog\n182434,airplane\n182435,automobile\n182436,dog\n182437,truck\n182438,horse\n182439,deer\n182440,horse\n182441,deer\n182442,horse\n182443,truck\n182444,bird\n182445,deer\n182446,bird\n182447,deer\n182448,cat\n182449,cat\n182450,truck\n182451,frog\n182452,frog\n182453,bird\n182454,deer\n182455,cat\n182456,deer\n182457,frog\n182458,cat\n182459,cat\n182460,truck\n182461,airplane\n182462,frog\n182463,dog\n182464,dog\n182465,cat\n182466,frog\n182467,automobile\n182468,frog\n182469,dog\n182470,frog\n182471,truck\n182472,horse\n182473,deer\n182474,horse\n182475,dog\n182476,frog\n182477,frog\n182478,horse\n182479,cat\n182480,frog\n182481,deer\n182482,cat\n182483,deer\n182484,automobile\n182485,bird\n182486,cat\n182487,truck\n182488,airplane\n182489,automobile\n182490,automobile\n182491,cat\n182492,automobile\n182493,cat\n182494,airplane\n182495,deer\n182496,automobile\n182497,truck\n182498,frog\n182499,deer\n182500,truck\n182501,deer\n182502,cat\n182503,dog\n182504,truck\n182505,truck\n182506,bird\n182507,ship\n182508,frog\n182509,dog\n182510,horse\n182511,cat\n182512,frog\n182513,ship\n182514,frog\n182515,truck\n182516,frog\n182517,frog\n182518,dog\n182519,cat\n182520,horse\n182521,truck\n182522,horse\n182523,horse\n182524,cat\n182525,deer\n182526,truck\n182527,ship\n182528,cat\n182529,bird\n182530,frog\n182531,frog\n182532,deer\n182533,dog\n182534,cat\n182535,airplane\n182536,automobile\n182537,cat\n182538,deer\n182539,horse\n182540,horse\n182541,horse\n182542,horse\n182543,frog\n182544,ship\n182545,dog\n182546,ship\n182547,ship\n182548,cat\n182549,bird\n182550,dog\n182551,frog\n182552,bird\n182553,cat\n182554,automobile\n182555,airplane\n182556,dog\n182557,truck\n182558,automobile\n182559,bird\n182560,deer\n182561,deer\n182562,dog\n182563,automobile\n182564,frog\n182565,frog\n182566,frog\n182567,horse\n182568,cat\n182569,airplane\n182570,cat\n182571,airplane\n182572,truck\n182573,frog\n182574,truck\n182575,bird\n182576,horse\n182577,cat\n182578,dog\n182579,cat\n182580,truck\n182581,deer\n182582,automobile\n182583,bird\n182584,frog\n182585,dog\n182586,bird\n182587,bird\n182588,airplane\n182589,frog\n182590,ship\n182591,ship\n182592,bird\n182593,cat\n182594,cat\n182595,airplane\n182596,bird\n182597,truck\n182598,deer\n182599,cat\n182600,cat\n182601,automobile\n182602,truck\n182603,truck\n182604,deer\n182605,dog\n182606,frog\n182607,deer\n182608,deer\n182609,horse\n182610,airplane\n182611,horse\n182612,bird\n182613,ship\n182614,ship\n182615,truck\n182616,airplane\n182617,airplane\n182618,truck\n182619,airplane\n182620,cat\n182621,bird\n182622,automobile\n182623,deer\n182624,automobile\n182625,airplane\n182626,ship\n182627,automobile\n182628,horse\n182629,dog\n182630,cat\n182631,airplane\n182632,airplane\n182633,bird\n182634,cat\n182635,truck\n182636,deer\n182637,bird\n182638,ship\n182639,ship\n182640,frog\n182641,cat\n182642,ship\n182643,ship\n182644,airplane\n182645,airplane\n182646,truck\n182647,bird\n182648,ship\n182649,dog\n182650,horse\n182651,dog\n182652,ship\n182653,ship\n182654,bird\n182655,cat\n182656,truck\n182657,truck\n182658,truck\n182659,truck\n182660,dog\n182661,truck\n182662,ship\n182663,truck\n182664,bird\n182665,cat\n182666,frog\n182667,truck\n182668,frog\n182669,truck\n182670,automobile\n182671,airplane\n182672,bird\n182673,deer\n182674,bird\n182675,horse\n182676,cat\n182677,dog\n182678,deer\n182679,automobile\n182680,ship\n182681,bird\n182682,horse\n182683,airplane\n182684,horse\n182685,truck\n182686,airplane\n182687,frog\n182688,airplane\n182689,deer\n182690,horse\n182691,truck\n182692,cat\n182693,automobile\n182694,airplane\n182695,dog\n182696,ship\n182697,deer\n182698,deer\n182699,deer\n182700,automobile\n182701,horse\n182702,automobile\n182703,deer\n182704,frog\n182705,ship\n182706,bird\n182707,truck\n182708,bird\n182709,deer\n182710,automobile\n182711,dog\n182712,bird\n182713,dog\n182714,bird\n182715,ship\n182716,dog\n182717,dog\n182718,bird\n182719,horse\n182720,ship\n182721,cat\n182722,deer\n182723,truck\n182724,bird\n182725,truck\n182726,deer\n182727,bird\n182728,dog\n182729,cat\n182730,bird\n182731,frog\n182732,frog\n182733,truck\n182734,airplane\n182735,deer\n182736,bird\n182737,dog\n182738,dog\n182739,cat\n182740,cat\n182741,deer\n182742,bird\n182743,deer\n182744,airplane\n182745,horse\n182746,automobile\n182747,ship\n182748,horse\n182749,truck\n182750,horse\n182751,ship\n182752,deer\n182753,frog\n182754,cat\n182755,truck\n182756,cat\n182757,cat\n182758,ship\n182759,truck\n182760,deer\n182761,horse\n182762,deer\n182763,bird\n182764,cat\n182765,frog\n182766,cat\n182767,frog\n182768,deer\n182769,deer\n182770,deer\n182771,truck\n182772,deer\n182773,frog\n182774,automobile\n182775,cat\n182776,frog\n182777,airplane\n182778,horse\n182779,cat\n182780,horse\n182781,cat\n182782,airplane\n182783,horse\n182784,automobile\n182785,ship\n182786,airplane\n182787,dog\n182788,frog\n182789,deer\n182790,deer\n182791,cat\n182792,bird\n182793,frog\n182794,bird\n182795,airplane\n182796,cat\n182797,frog\n182798,airplane\n182799,cat\n182800,truck\n182801,automobile\n182802,ship\n182803,truck\n182804,horse\n182805,airplane\n182806,airplane\n182807,deer\n182808,frog\n182809,deer\n182810,bird\n182811,deer\n182812,horse\n182813,truck\n182814,airplane\n182815,horse\n182816,bird\n182817,deer\n182818,truck\n182819,frog\n182820,horse\n182821,truck\n182822,horse\n182823,bird\n182824,cat\n182825,airplane\n182826,cat\n182827,deer\n182828,bird\n182829,deer\n182830,deer\n182831,bird\n182832,automobile\n182833,airplane\n182834,frog\n182835,truck\n182836,horse\n182837,ship\n182838,automobile\n182839,deer\n182840,bird\n182841,automobile\n182842,deer\n182843,horse\n182844,cat\n182845,cat\n182846,frog\n182847,bird\n182848,frog\n182849,frog\n182850,cat\n182851,cat\n182852,cat\n182853,dog\n182854,deer\n182855,airplane\n182856,truck\n182857,ship\n182858,ship\n182859,cat\n182860,cat\n182861,dog\n182862,bird\n182863,frog\n182864,ship\n182865,airplane\n182866,frog\n182867,dog\n182868,dog\n182869,cat\n182870,deer\n182871,truck\n182872,cat\n182873,bird\n182874,deer\n182875,cat\n182876,cat\n182877,cat\n182878,horse\n182879,automobile\n182880,dog\n182881,airplane\n182882,automobile\n182883,cat\n182884,ship\n182885,horse\n182886,dog\n182887,truck\n182888,bird\n182889,airplane\n182890,ship\n182891,dog\n182892,bird\n182893,cat\n182894,deer\n182895,ship\n182896,truck\n182897,cat\n182898,bird\n182899,dog\n182900,bird\n182901,airplane\n182902,automobile\n182903,frog\n182904,truck\n182905,horse\n182906,airplane\n182907,airplane\n182908,dog\n182909,cat\n182910,cat\n182911,airplane\n182912,bird\n182913,deer\n182914,ship\n182915,airplane\n182916,frog\n182917,deer\n182918,frog\n182919,cat\n182920,horse\n182921,bird\n182922,airplane\n182923,horse\n182924,dog\n182925,horse\n182926,automobile\n182927,ship\n182928,ship\n182929,frog\n182930,horse\n182931,automobile\n182932,dog\n182933,frog\n182934,bird\n182935,cat\n182936,truck\n182937,ship\n182938,cat\n182939,dog\n182940,dog\n182941,cat\n182942,cat\n182943,frog\n182944,deer\n182945,horse\n182946,dog\n182947,bird\n182948,automobile\n182949,dog\n182950,deer\n182951,horse\n182952,deer\n182953,cat\n182954,frog\n182955,cat\n182956,deer\n182957,bird\n182958,airplane\n182959,truck\n182960,horse\n182961,cat\n182962,deer\n182963,cat\n182964,cat\n182965,frog\n182966,airplane\n182967,automobile\n182968,frog\n182969,frog\n182970,frog\n182971,truck\n182972,deer\n182973,deer\n182974,automobile\n182975,airplane\n182976,automobile\n182977,frog\n182978,cat\n182979,cat\n182980,truck\n182981,airplane\n182982,frog\n182983,cat\n182984,deer\n182985,cat\n182986,ship\n182987,dog\n182988,cat\n182989,dog\n182990,frog\n182991,automobile\n182992,truck\n182993,dog\n182994,cat\n182995,deer\n182996,truck\n182997,horse\n182998,horse\n182999,horse\n183000,horse\n183001,deer\n183002,automobile\n183003,deer\n183004,ship\n183005,cat\n183006,frog\n183007,cat\n183008,deer\n183009,automobile\n183010,cat\n183011,cat\n183012,cat\n183013,truck\n183014,deer\n183015,horse\n183016,automobile\n183017,deer\n183018,bird\n183019,deer\n183020,cat\n183021,deer\n183022,cat\n183023,dog\n183024,truck\n183025,horse\n183026,dog\n183027,bird\n183028,frog\n183029,automobile\n183030,dog\n183031,cat\n183032,frog\n183033,cat\n183034,bird\n183035,horse\n183036,horse\n183037,bird\n183038,dog\n183039,horse\n183040,dog\n183041,truck\n183042,ship\n183043,bird\n183044,bird\n183045,ship\n183046,deer\n183047,frog\n183048,frog\n183049,cat\n183050,dog\n183051,horse\n183052,truck\n183053,dog\n183054,ship\n183055,cat\n183056,frog\n183057,truck\n183058,truck\n183059,deer\n183060,bird\n183061,deer\n183062,cat\n183063,horse\n183064,dog\n183065,deer\n183066,truck\n183067,horse\n183068,cat\n183069,airplane\n183070,deer\n183071,cat\n183072,ship\n183073,deer\n183074,deer\n183075,ship\n183076,automobile\n183077,automobile\n183078,frog\n183079,truck\n183080,deer\n183081,frog\n183082,horse\n183083,bird\n183084,dog\n183085,cat\n183086,horse\n183087,deer\n183088,frog\n183089,horse\n183090,dog\n183091,truck\n183092,automobile\n183093,truck\n183094,truck\n183095,frog\n183096,horse\n183097,deer\n183098,automobile\n183099,airplane\n183100,truck\n183101,deer\n183102,truck\n183103,deer\n183104,dog\n183105,cat\n183106,frog\n183107,automobile\n183108,truck\n183109,cat\n183110,bird\n183111,dog\n183112,frog\n183113,deer\n183114,deer\n183115,ship\n183116,ship\n183117,deer\n183118,deer\n183119,airplane\n183120,truck\n183121,cat\n183122,airplane\n183123,horse\n183124,automobile\n183125,ship\n183126,frog\n183127,dog\n183128,horse\n183129,dog\n183130,cat\n183131,truck\n183132,automobile\n183133,horse\n183134,deer\n183135,horse\n183136,ship\n183137,deer\n183138,frog\n183139,dog\n183140,truck\n183141,frog\n183142,cat\n183143,truck\n183144,dog\n183145,dog\n183146,ship\n183147,frog\n183148,ship\n183149,bird\n183150,deer\n183151,cat\n183152,bird\n183153,horse\n183154,bird\n183155,deer\n183156,cat\n183157,cat\n183158,truck\n183159,ship\n183160,horse\n183161,dog\n183162,cat\n183163,truck\n183164,cat\n183165,frog\n183166,dog\n183167,ship\n183168,frog\n183169,frog\n183170,truck\n183171,automobile\n183172,horse\n183173,horse\n183174,dog\n183175,truck\n183176,bird\n183177,horse\n183178,truck\n183179,horse\n183180,deer\n183181,airplane\n183182,airplane\n183183,automobile\n183184,horse\n183185,frog\n183186,truck\n183187,cat\n183188,automobile\n183189,frog\n183190,dog\n183191,frog\n183192,dog\n183193,cat\n183194,horse\n183195,deer\n183196,frog\n183197,deer\n183198,dog\n183199,cat\n183200,truck\n183201,truck\n183202,horse\n183203,frog\n183204,truck\n183205,dog\n183206,airplane\n183207,truck\n183208,cat\n183209,frog\n183210,horse\n183211,frog\n183212,ship\n183213,bird\n183214,deer\n183215,frog\n183216,automobile\n183217,horse\n183218,airplane\n183219,deer\n183220,bird\n183221,horse\n183222,airplane\n183223,horse\n183224,automobile\n183225,frog\n183226,frog\n183227,automobile\n183228,dog\n183229,deer\n183230,deer\n183231,cat\n183232,frog\n183233,frog\n183234,bird\n183235,dog\n183236,deer\n183237,deer\n183238,frog\n183239,horse\n183240,automobile\n183241,deer\n183242,deer\n183243,dog\n183244,truck\n183245,truck\n183246,ship\n183247,airplane\n183248,bird\n183249,deer\n183250,bird\n183251,truck\n183252,bird\n183253,truck\n183254,airplane\n183255,frog\n183256,ship\n183257,dog\n183258,horse\n183259,deer\n183260,frog\n183261,frog\n183262,cat\n183263,horse\n183264,frog\n183265,truck\n183266,bird\n183267,deer\n183268,deer\n183269,bird\n183270,ship\n183271,horse\n183272,ship\n183273,ship\n183274,automobile\n183275,deer\n183276,automobile\n183277,cat\n183278,frog\n183279,dog\n183280,dog\n183281,frog\n183282,truck\n183283,dog\n183284,ship\n183285,automobile\n183286,airplane\n183287,truck\n183288,cat\n183289,bird\n183290,automobile\n183291,cat\n183292,dog\n183293,cat\n183294,cat\n183295,dog\n183296,truck\n183297,dog\n183298,deer\n183299,cat\n183300,automobile\n183301,cat\n183302,truck\n183303,automobile\n183304,horse\n183305,dog\n183306,ship\n183307,airplane\n183308,truck\n183309,horse\n183310,dog\n183311,cat\n183312,frog\n183313,cat\n183314,airplane\n183315,bird\n183316,bird\n183317,cat\n183318,horse\n183319,dog\n183320,automobile\n183321,frog\n183322,airplane\n183323,airplane\n183324,truck\n183325,truck\n183326,automobile\n183327,deer\n183328,automobile\n183329,cat\n183330,airplane\n183331,airplane\n183332,horse\n183333,frog\n183334,truck\n183335,truck\n183336,ship\n183337,automobile\n183338,dog\n183339,frog\n183340,horse\n183341,horse\n183342,bird\n183343,truck\n183344,deer\n183345,airplane\n183346,truck\n183347,truck\n183348,frog\n183349,deer\n183350,truck\n183351,frog\n183352,horse\n183353,bird\n183354,airplane\n183355,truck\n183356,dog\n183357,bird\n183358,truck\n183359,bird\n183360,horse\n183361,frog\n183362,dog\n183363,truck\n183364,dog\n183365,bird\n183366,automobile\n183367,bird\n183368,airplane\n183369,cat\n183370,automobile\n183371,frog\n183372,dog\n183373,bird\n183374,horse\n183375,cat\n183376,deer\n183377,deer\n183378,automobile\n183379,truck\n183380,truck\n183381,bird\n183382,airplane\n183383,horse\n183384,deer\n183385,dog\n183386,airplane\n183387,dog\n183388,airplane\n183389,bird\n183390,frog\n183391,deer\n183392,horse\n183393,cat\n183394,deer\n183395,bird\n183396,frog\n183397,ship\n183398,automobile\n183399,cat\n183400,horse\n183401,ship\n183402,airplane\n183403,ship\n183404,truck\n183405,ship\n183406,cat\n183407,airplane\n183408,cat\n183409,bird\n183410,horse\n183411,ship\n183412,automobile\n183413,bird\n183414,truck\n183415,horse\n183416,airplane\n183417,ship\n183418,ship\n183419,bird\n183420,truck\n183421,deer\n183422,frog\n183423,airplane\n183424,automobile\n183425,airplane\n183426,automobile\n183427,automobile\n183428,airplane\n183429,horse\n183430,dog\n183431,horse\n183432,deer\n183433,cat\n183434,airplane\n183435,deer\n183436,truck\n183437,cat\n183438,cat\n183439,horse\n183440,frog\n183441,horse\n183442,ship\n183443,airplane\n183444,cat\n183445,airplane\n183446,deer\n183447,cat\n183448,truck\n183449,truck\n183450,cat\n183451,deer\n183452,deer\n183453,ship\n183454,deer\n183455,automobile\n183456,dog\n183457,deer\n183458,deer\n183459,truck\n183460,truck\n183461,cat\n183462,deer\n183463,dog\n183464,deer\n183465,cat\n183466,dog\n183467,frog\n183468,bird\n183469,bird\n183470,frog\n183471,truck\n183472,automobile\n183473,ship\n183474,cat\n183475,cat\n183476,dog\n183477,deer\n183478,ship\n183479,ship\n183480,deer\n183481,airplane\n183482,cat\n183483,cat\n183484,bird\n183485,airplane\n183486,ship\n183487,deer\n183488,dog\n183489,dog\n183490,horse\n183491,dog\n183492,bird\n183493,truck\n183494,airplane\n183495,truck\n183496,frog\n183497,horse\n183498,ship\n183499,cat\n183500,deer\n183501,ship\n183502,ship\n183503,dog\n183504,frog\n183505,automobile\n183506,truck\n183507,dog\n183508,airplane\n183509,bird\n183510,frog\n183511,truck\n183512,deer\n183513,deer\n183514,truck\n183515,bird\n183516,deer\n183517,deer\n183518,bird\n183519,airplane\n183520,airplane\n183521,dog\n183522,airplane\n183523,cat\n183524,truck\n183525,cat\n183526,bird\n183527,cat\n183528,cat\n183529,deer\n183530,deer\n183531,airplane\n183532,deer\n183533,frog\n183534,truck\n183535,cat\n183536,frog\n183537,automobile\n183538,horse\n183539,deer\n183540,truck\n183541,cat\n183542,cat\n183543,horse\n183544,dog\n183545,ship\n183546,frog\n183547,deer\n183548,deer\n183549,dog\n183550,bird\n183551,dog\n183552,truck\n183553,dog\n183554,bird\n183555,deer\n183556,airplane\n183557,ship\n183558,horse\n183559,airplane\n183560,airplane\n183561,deer\n183562,horse\n183563,airplane\n183564,cat\n183565,airplane\n183566,deer\n183567,bird\n183568,cat\n183569,truck\n183570,bird\n183571,horse\n183572,airplane\n183573,ship\n183574,deer\n183575,truck\n183576,automobile\n183577,truck\n183578,bird\n183579,cat\n183580,frog\n183581,ship\n183582,airplane\n183583,frog\n183584,dog\n183585,ship\n183586,dog\n183587,frog\n183588,cat\n183589,deer\n183590,ship\n183591,bird\n183592,cat\n183593,bird\n183594,bird\n183595,bird\n183596,cat\n183597,airplane\n183598,horse\n183599,cat\n183600,ship\n183601,horse\n183602,truck\n183603,airplane\n183604,deer\n183605,horse\n183606,truck\n183607,airplane\n183608,automobile\n183609,deer\n183610,ship\n183611,horse\n183612,cat\n183613,bird\n183614,cat\n183615,horse\n183616,automobile\n183617,frog\n183618,deer\n183619,cat\n183620,horse\n183621,truck\n183622,deer\n183623,airplane\n183624,dog\n183625,bird\n183626,cat\n183627,deer\n183628,frog\n183629,truck\n183630,dog\n183631,ship\n183632,deer\n183633,airplane\n183634,horse\n183635,bird\n183636,frog\n183637,deer\n183638,frog\n183639,frog\n183640,dog\n183641,horse\n183642,ship\n183643,deer\n183644,automobile\n183645,cat\n183646,cat\n183647,truck\n183648,truck\n183649,ship\n183650,frog\n183651,cat\n183652,truck\n183653,deer\n183654,dog\n183655,frog\n183656,bird\n183657,horse\n183658,cat\n183659,horse\n183660,frog\n183661,frog\n183662,bird\n183663,automobile\n183664,cat\n183665,bird\n183666,frog\n183667,dog\n183668,dog\n183669,horse\n183670,dog\n183671,cat\n183672,cat\n183673,frog\n183674,ship\n183675,frog\n183676,horse\n183677,cat\n183678,deer\n183679,airplane\n183680,deer\n183681,deer\n183682,dog\n183683,horse\n183684,automobile\n183685,dog\n183686,ship\n183687,cat\n183688,airplane\n183689,horse\n183690,dog\n183691,bird\n183692,deer\n183693,automobile\n183694,airplane\n183695,frog\n183696,dog\n183697,airplane\n183698,cat\n183699,bird\n183700,dog\n183701,horse\n183702,ship\n183703,frog\n183704,cat\n183705,bird\n183706,frog\n183707,deer\n183708,truck\n183709,frog\n183710,deer\n183711,ship\n183712,airplane\n183713,cat\n183714,bird\n183715,bird\n183716,cat\n183717,deer\n183718,dog\n183719,cat\n183720,frog\n183721,ship\n183722,cat\n183723,ship\n183724,dog\n183725,truck\n183726,horse\n183727,ship\n183728,bird\n183729,frog\n183730,truck\n183731,horse\n183732,airplane\n183733,dog\n183734,frog\n183735,bird\n183736,bird\n183737,airplane\n183738,horse\n183739,deer\n183740,cat\n183741,horse\n183742,truck\n183743,airplane\n183744,airplane\n183745,ship\n183746,deer\n183747,automobile\n183748,dog\n183749,ship\n183750,automobile\n183751,horse\n183752,deer\n183753,frog\n183754,ship\n183755,bird\n183756,airplane\n183757,deer\n183758,airplane\n183759,ship\n183760,frog\n183761,horse\n183762,automobile\n183763,dog\n183764,bird\n183765,airplane\n183766,truck\n183767,frog\n183768,bird\n183769,frog\n183770,cat\n183771,ship\n183772,deer\n183773,frog\n183774,frog\n183775,frog\n183776,horse\n183777,automobile\n183778,bird\n183779,horse\n183780,automobile\n183781,bird\n183782,dog\n183783,deer\n183784,cat\n183785,truck\n183786,horse\n183787,automobile\n183788,automobile\n183789,automobile\n183790,bird\n183791,bird\n183792,bird\n183793,ship\n183794,frog\n183795,bird\n183796,cat\n183797,truck\n183798,bird\n183799,automobile\n183800,frog\n183801,deer\n183802,truck\n183803,deer\n183804,deer\n183805,automobile\n183806,horse\n183807,frog\n183808,truck\n183809,dog\n183810,cat\n183811,airplane\n183812,truck\n183813,automobile\n183814,cat\n183815,dog\n183816,deer\n183817,truck\n183818,cat\n183819,deer\n183820,airplane\n183821,bird\n183822,dog\n183823,cat\n183824,dog\n183825,truck\n183826,dog\n183827,frog\n183828,automobile\n183829,bird\n183830,dog\n183831,airplane\n183832,frog\n183833,deer\n183834,ship\n183835,horse\n183836,automobile\n183837,dog\n183838,dog\n183839,dog\n183840,airplane\n183841,truck\n183842,ship\n183843,horse\n183844,dog\n183845,dog\n183846,dog\n183847,dog\n183848,airplane\n183849,bird\n183850,ship\n183851,airplane\n183852,automobile\n183853,horse\n183854,deer\n183855,airplane\n183856,bird\n183857,automobile\n183858,bird\n183859,ship\n183860,ship\n183861,frog\n183862,bird\n183863,ship\n183864,truck\n183865,frog\n183866,ship\n183867,cat\n183868,ship\n183869,truck\n183870,airplane\n183871,airplane\n183872,frog\n183873,horse\n183874,deer\n183875,truck\n183876,automobile\n183877,cat\n183878,deer\n183879,cat\n183880,ship\n183881,truck\n183882,bird\n183883,cat\n183884,horse\n183885,airplane\n183886,dog\n183887,automobile\n183888,deer\n183889,deer\n183890,frog\n183891,automobile\n183892,horse\n183893,automobile\n183894,dog\n183895,ship\n183896,deer\n183897,ship\n183898,cat\n183899,deer\n183900,automobile\n183901,frog\n183902,bird\n183903,dog\n183904,automobile\n183905,deer\n183906,ship\n183907,frog\n183908,truck\n183909,bird\n183910,horse\n183911,deer\n183912,truck\n183913,horse\n183914,dog\n183915,horse\n183916,deer\n183917,deer\n183918,cat\n183919,cat\n183920,dog\n183921,ship\n183922,cat\n183923,deer\n183924,cat\n183925,truck\n183926,airplane\n183927,ship\n183928,deer\n183929,horse\n183930,horse\n183931,horse\n183932,cat\n183933,ship\n183934,deer\n183935,horse\n183936,horse\n183937,frog\n183938,cat\n183939,dog\n183940,frog\n183941,automobile\n183942,frog\n183943,dog\n183944,bird\n183945,airplane\n183946,dog\n183947,deer\n183948,airplane\n183949,bird\n183950,deer\n183951,deer\n183952,cat\n183953,deer\n183954,cat\n183955,dog\n183956,ship\n183957,cat\n183958,cat\n183959,bird\n183960,frog\n183961,ship\n183962,frog\n183963,deer\n183964,airplane\n183965,bird\n183966,dog\n183967,frog\n183968,dog\n183969,deer\n183970,dog\n183971,horse\n183972,bird\n183973,deer\n183974,truck\n183975,deer\n183976,ship\n183977,deer\n183978,cat\n183979,airplane\n183980,airplane\n183981,automobile\n183982,frog\n183983,cat\n183984,bird\n183985,frog\n183986,automobile\n183987,deer\n183988,deer\n183989,deer\n183990,frog\n183991,bird\n183992,truck\n183993,bird\n183994,dog\n183995,ship\n183996,truck\n183997,ship\n183998,deer\n183999,horse\n184000,dog\n184001,frog\n184002,bird\n184003,truck\n184004,bird\n184005,deer\n184006,deer\n184007,ship\n184008,airplane\n184009,ship\n184010,deer\n184011,horse\n184012,dog\n184013,bird\n184014,dog\n184015,ship\n184016,truck\n184017,bird\n184018,dog\n184019,cat\n184020,ship\n184021,truck\n184022,airplane\n184023,deer\n184024,dog\n184025,frog\n184026,cat\n184027,automobile\n184028,bird\n184029,dog\n184030,bird\n184031,deer\n184032,cat\n184033,cat\n184034,horse\n184035,frog\n184036,cat\n184037,bird\n184038,cat\n184039,dog\n184040,deer\n184041,horse\n184042,airplane\n184043,automobile\n184044,dog\n184045,ship\n184046,airplane\n184047,bird\n184048,cat\n184049,horse\n184050,automobile\n184051,frog\n184052,horse\n184053,automobile\n184054,cat\n184055,truck\n184056,ship\n184057,dog\n184058,automobile\n184059,dog\n184060,ship\n184061,truck\n184062,cat\n184063,dog\n184064,deer\n184065,horse\n184066,dog\n184067,horse\n184068,frog\n184069,deer\n184070,ship\n184071,dog\n184072,ship\n184073,cat\n184074,deer\n184075,frog\n184076,deer\n184077,bird\n184078,deer\n184079,cat\n184080,dog\n184081,deer\n184082,automobile\n184083,frog\n184084,cat\n184085,airplane\n184086,dog\n184087,cat\n184088,horse\n184089,horse\n184090,horse\n184091,automobile\n184092,bird\n184093,deer\n184094,airplane\n184095,truck\n184096,truck\n184097,ship\n184098,automobile\n184099,deer\n184100,dog\n184101,automobile\n184102,horse\n184103,bird\n184104,truck\n184105,bird\n184106,dog\n184107,truck\n184108,truck\n184109,cat\n184110,truck\n184111,horse\n184112,deer\n184113,airplane\n184114,cat\n184115,cat\n184116,cat\n184117,deer\n184118,airplane\n184119,airplane\n184120,deer\n184121,deer\n184122,airplane\n184123,ship\n184124,ship\n184125,cat\n184126,automobile\n184127,airplane\n184128,horse\n184129,dog\n184130,deer\n184131,dog\n184132,deer\n184133,horse\n184134,cat\n184135,dog\n184136,bird\n184137,truck\n184138,airplane\n184139,deer\n184140,bird\n184141,deer\n184142,frog\n184143,dog\n184144,truck\n184145,dog\n184146,frog\n184147,airplane\n184148,ship\n184149,deer\n184150,cat\n184151,cat\n184152,dog\n184153,bird\n184154,airplane\n184155,cat\n184156,horse\n184157,deer\n184158,automobile\n184159,frog\n184160,ship\n184161,frog\n184162,frog\n184163,horse\n184164,airplane\n184165,truck\n184166,ship\n184167,automobile\n184168,cat\n184169,airplane\n184170,horse\n184171,airplane\n184172,frog\n184173,deer\n184174,airplane\n184175,cat\n184176,truck\n184177,truck\n184178,horse\n184179,frog\n184180,truck\n184181,ship\n184182,frog\n184183,deer\n184184,frog\n184185,truck\n184186,deer\n184187,cat\n184188,truck\n184189,ship\n184190,deer\n184191,automobile\n184192,frog\n184193,truck\n184194,frog\n184195,automobile\n184196,deer\n184197,ship\n184198,bird\n184199,dog\n184200,dog\n184201,cat\n184202,bird\n184203,cat\n184204,frog\n184205,deer\n184206,ship\n184207,frog\n184208,dog\n184209,truck\n184210,deer\n184211,deer\n184212,ship\n184213,dog\n184214,cat\n184215,truck\n184216,bird\n184217,ship\n184218,dog\n184219,frog\n184220,airplane\n184221,truck\n184222,deer\n184223,truck\n184224,ship\n184225,frog\n184226,deer\n184227,truck\n184228,deer\n184229,airplane\n184230,ship\n184231,airplane\n184232,bird\n184233,deer\n184234,airplane\n184235,deer\n184236,deer\n184237,airplane\n184238,dog\n184239,cat\n184240,truck\n184241,horse\n184242,airplane\n184243,deer\n184244,cat\n184245,bird\n184246,automobile\n184247,horse\n184248,truck\n184249,ship\n184250,frog\n184251,bird\n184252,horse\n184253,cat\n184254,deer\n184255,automobile\n184256,truck\n184257,automobile\n184258,deer\n184259,horse\n184260,cat\n184261,airplane\n184262,bird\n184263,ship\n184264,automobile\n184265,deer\n184266,cat\n184267,cat\n184268,dog\n184269,ship\n184270,frog\n184271,dog\n184272,horse\n184273,truck\n184274,horse\n184275,cat\n184276,automobile\n184277,deer\n184278,dog\n184279,airplane\n184280,dog\n184281,truck\n184282,cat\n184283,ship\n184284,cat\n184285,horse\n184286,automobile\n184287,frog\n184288,cat\n184289,automobile\n184290,truck\n184291,horse\n184292,bird\n184293,dog\n184294,ship\n184295,airplane\n184296,truck\n184297,truck\n184298,horse\n184299,truck\n184300,horse\n184301,horse\n184302,bird\n184303,frog\n184304,ship\n184305,dog\n184306,airplane\n184307,truck\n184308,ship\n184309,automobile\n184310,bird\n184311,deer\n184312,cat\n184313,ship\n184314,deer\n184315,truck\n184316,deer\n184317,airplane\n184318,airplane\n184319,deer\n184320,bird\n184321,dog\n184322,frog\n184323,deer\n184324,truck\n184325,frog\n184326,ship\n184327,frog\n184328,truck\n184329,deer\n184330,bird\n184331,deer\n184332,dog\n184333,horse\n184334,horse\n184335,bird\n184336,truck\n184337,automobile\n184338,truck\n184339,ship\n184340,automobile\n184341,deer\n184342,bird\n184343,deer\n184344,airplane\n184345,cat\n184346,truck\n184347,frog\n184348,frog\n184349,ship\n184350,truck\n184351,cat\n184352,airplane\n184353,horse\n184354,dog\n184355,frog\n184356,ship\n184357,ship\n184358,ship\n184359,truck\n184360,frog\n184361,automobile\n184362,airplane\n184363,frog\n184364,truck\n184365,truck\n184366,horse\n184367,dog\n184368,airplane\n184369,truck\n184370,truck\n184371,ship\n184372,dog\n184373,ship\n184374,ship\n184375,bird\n184376,horse\n184377,dog\n184378,horse\n184379,truck\n184380,truck\n184381,truck\n184382,truck\n184383,truck\n184384,cat\n184385,automobile\n184386,deer\n184387,automobile\n184388,dog\n184389,automobile\n184390,airplane\n184391,airplane\n184392,automobile\n184393,cat\n184394,horse\n184395,automobile\n184396,dog\n184397,airplane\n184398,cat\n184399,ship\n184400,cat\n184401,bird\n184402,horse\n184403,airplane\n184404,deer\n184405,truck\n184406,cat\n184407,ship\n184408,cat\n184409,horse\n184410,frog\n184411,bird\n184412,cat\n184413,truck\n184414,deer\n184415,bird\n184416,dog\n184417,horse\n184418,frog\n184419,ship\n184420,horse\n184421,deer\n184422,horse\n184423,airplane\n184424,bird\n184425,bird\n184426,horse\n184427,deer\n184428,cat\n184429,cat\n184430,airplane\n184431,dog\n184432,bird\n184433,airplane\n184434,frog\n184435,airplane\n184436,cat\n184437,cat\n184438,horse\n184439,bird\n184440,cat\n184441,automobile\n184442,deer\n184443,ship\n184444,horse\n184445,ship\n184446,dog\n184447,automobile\n184448,frog\n184449,frog\n184450,horse\n184451,airplane\n184452,horse\n184453,deer\n184454,bird\n184455,automobile\n184456,truck\n184457,automobile\n184458,bird\n184459,deer\n184460,cat\n184461,airplane\n184462,bird\n184463,horse\n184464,ship\n184465,deer\n184466,horse\n184467,ship\n184468,deer\n184469,deer\n184470,frog\n184471,deer\n184472,deer\n184473,cat\n184474,frog\n184475,dog\n184476,automobile\n184477,horse\n184478,cat\n184479,deer\n184480,cat\n184481,dog\n184482,dog\n184483,horse\n184484,cat\n184485,cat\n184486,deer\n184487,cat\n184488,dog\n184489,deer\n184490,frog\n184491,ship\n184492,cat\n184493,horse\n184494,frog\n184495,horse\n184496,deer\n184497,horse\n184498,frog\n184499,ship\n184500,deer\n184501,dog\n184502,deer\n184503,horse\n184504,dog\n184505,airplane\n184506,frog\n184507,cat\n184508,airplane\n184509,bird\n184510,horse\n184511,dog\n184512,dog\n184513,cat\n184514,truck\n184515,truck\n184516,frog\n184517,truck\n184518,ship\n184519,automobile\n184520,ship\n184521,dog\n184522,frog\n184523,bird\n184524,horse\n184525,ship\n184526,truck\n184527,airplane\n184528,truck\n184529,cat\n184530,horse\n184531,truck\n184532,deer\n184533,horse\n184534,horse\n184535,truck\n184536,cat\n184537,truck\n184538,truck\n184539,airplane\n184540,deer\n184541,cat\n184542,cat\n184543,bird\n184544,dog\n184545,cat\n184546,deer\n184547,cat\n184548,cat\n184549,dog\n184550,deer\n184551,cat\n184552,deer\n184553,airplane\n184554,ship\n184555,truck\n184556,airplane\n184557,cat\n184558,horse\n184559,cat\n184560,deer\n184561,automobile\n184562,cat\n184563,truck\n184564,dog\n184565,horse\n184566,deer\n184567,frog\n184568,dog\n184569,dog\n184570,frog\n184571,ship\n184572,frog\n184573,truck\n184574,cat\n184575,truck\n184576,ship\n184577,dog\n184578,dog\n184579,truck\n184580,deer\n184581,deer\n184582,deer\n184583,frog\n184584,bird\n184585,automobile\n184586,cat\n184587,deer\n184588,airplane\n184589,automobile\n184590,frog\n184591,automobile\n184592,bird\n184593,cat\n184594,automobile\n184595,cat\n184596,horse\n184597,horse\n184598,dog\n184599,ship\n184600,deer\n184601,horse\n184602,cat\n184603,automobile\n184604,dog\n184605,cat\n184606,ship\n184607,truck\n184608,deer\n184609,cat\n184610,frog\n184611,frog\n184612,dog\n184613,cat\n184614,deer\n184615,cat\n184616,ship\n184617,ship\n184618,airplane\n184619,horse\n184620,deer\n184621,ship\n184622,airplane\n184623,dog\n184624,bird\n184625,truck\n184626,ship\n184627,dog\n184628,cat\n184629,horse\n184630,deer\n184631,deer\n184632,cat\n184633,ship\n184634,dog\n184635,cat\n184636,frog\n184637,airplane\n184638,airplane\n184639,frog\n184640,cat\n184641,bird\n184642,frog\n184643,truck\n184644,automobile\n184645,truck\n184646,horse\n184647,cat\n184648,airplane\n184649,cat\n184650,cat\n184651,dog\n184652,automobile\n184653,bird\n184654,cat\n184655,airplane\n184656,horse\n184657,bird\n184658,cat\n184659,ship\n184660,dog\n184661,cat\n184662,horse\n184663,automobile\n184664,automobile\n184665,deer\n184666,deer\n184667,frog\n184668,cat\n184669,horse\n184670,cat\n184671,ship\n184672,cat\n184673,frog\n184674,bird\n184675,dog\n184676,horse\n184677,cat\n184678,bird\n184679,truck\n184680,dog\n184681,horse\n184682,cat\n184683,airplane\n184684,deer\n184685,ship\n184686,horse\n184687,truck\n184688,ship\n184689,bird\n184690,dog\n184691,cat\n184692,horse\n184693,dog\n184694,airplane\n184695,deer\n184696,cat\n184697,truck\n184698,cat\n184699,dog\n184700,horse\n184701,automobile\n184702,frog\n184703,bird\n184704,horse\n184705,horse\n184706,dog\n184707,airplane\n184708,cat\n184709,cat\n184710,cat\n184711,horse\n184712,deer\n184713,horse\n184714,truck\n184715,truck\n184716,automobile\n184717,dog\n184718,automobile\n184719,horse\n184720,truck\n184721,frog\n184722,ship\n184723,automobile\n184724,cat\n184725,airplane\n184726,ship\n184727,deer\n184728,airplane\n184729,deer\n184730,cat\n184731,ship\n184732,horse\n184733,ship\n184734,airplane\n184735,deer\n184736,dog\n184737,dog\n184738,ship\n184739,dog\n184740,deer\n184741,deer\n184742,dog\n184743,deer\n184744,frog\n184745,airplane\n184746,horse\n184747,deer\n184748,deer\n184749,airplane\n184750,horse\n184751,airplane\n184752,horse\n184753,automobile\n184754,bird\n184755,dog\n184756,bird\n184757,bird\n184758,airplane\n184759,dog\n184760,automobile\n184761,truck\n184762,truck\n184763,ship\n184764,ship\n184765,dog\n184766,truck\n184767,dog\n184768,deer\n184769,airplane\n184770,airplane\n184771,truck\n184772,horse\n184773,airplane\n184774,dog\n184775,cat\n184776,frog\n184777,cat\n184778,frog\n184779,dog\n184780,truck\n184781,cat\n184782,truck\n184783,automobile\n184784,bird\n184785,bird\n184786,horse\n184787,truck\n184788,frog\n184789,bird\n184790,ship\n184791,automobile\n184792,ship\n184793,bird\n184794,truck\n184795,horse\n184796,cat\n184797,dog\n184798,dog\n184799,cat\n184800,frog\n184801,cat\n184802,automobile\n184803,dog\n184804,deer\n184805,airplane\n184806,automobile\n184807,truck\n184808,cat\n184809,airplane\n184810,automobile\n184811,horse\n184812,dog\n184813,automobile\n184814,airplane\n184815,cat\n184816,deer\n184817,airplane\n184818,frog\n184819,ship\n184820,automobile\n184821,automobile\n184822,cat\n184823,horse\n184824,cat\n184825,deer\n184826,airplane\n184827,airplane\n184828,cat\n184829,bird\n184830,deer\n184831,frog\n184832,truck\n184833,airplane\n184834,deer\n184835,deer\n184836,cat\n184837,truck\n184838,truck\n184839,bird\n184840,ship\n184841,bird\n184842,deer\n184843,deer\n184844,ship\n184845,horse\n184846,bird\n184847,horse\n184848,dog\n184849,ship\n184850,deer\n184851,frog\n184852,deer\n184853,cat\n184854,deer\n184855,frog\n184856,dog\n184857,dog\n184858,ship\n184859,airplane\n184860,dog\n184861,truck\n184862,cat\n184863,deer\n184864,truck\n184865,frog\n184866,bird\n184867,automobile\n184868,airplane\n184869,frog\n184870,cat\n184871,bird\n184872,ship\n184873,horse\n184874,dog\n184875,deer\n184876,dog\n184877,airplane\n184878,bird\n184879,frog\n184880,horse\n184881,cat\n184882,frog\n184883,airplane\n184884,frog\n184885,ship\n184886,truck\n184887,deer\n184888,automobile\n184889,deer\n184890,truck\n184891,frog\n184892,ship\n184893,deer\n184894,truck\n184895,ship\n184896,bird\n184897,cat\n184898,frog\n184899,bird\n184900,truck\n184901,dog\n184902,ship\n184903,dog\n184904,horse\n184905,horse\n184906,deer\n184907,cat\n184908,deer\n184909,dog\n184910,deer\n184911,horse\n184912,deer\n184913,ship\n184914,airplane\n184915,truck\n184916,ship\n184917,frog\n184918,horse\n184919,cat\n184920,frog\n184921,deer\n184922,deer\n184923,bird\n184924,deer\n184925,horse\n184926,cat\n184927,truck\n184928,automobile\n184929,deer\n184930,airplane\n184931,ship\n184932,bird\n184933,truck\n184934,automobile\n184935,automobile\n184936,horse\n184937,deer\n184938,ship\n184939,airplane\n184940,airplane\n184941,deer\n184942,cat\n184943,frog\n184944,deer\n184945,deer\n184946,deer\n184947,dog\n184948,cat\n184949,dog\n184950,truck\n184951,bird\n184952,cat\n184953,horse\n184954,dog\n184955,airplane\n184956,automobile\n184957,bird\n184958,ship\n184959,cat\n184960,horse\n184961,truck\n184962,deer\n184963,frog\n184964,airplane\n184965,frog\n184966,bird\n184967,deer\n184968,airplane\n184969,bird\n184970,frog\n184971,horse\n184972,truck\n184973,dog\n184974,truck\n184975,bird\n184976,truck\n184977,deer\n184978,deer\n184979,deer\n184980,ship\n184981,horse\n184982,cat\n184983,frog\n184984,dog\n184985,truck\n184986,dog\n184987,deer\n184988,airplane\n184989,bird\n184990,horse\n184991,airplane\n184992,truck\n184993,airplane\n184994,ship\n184995,cat\n184996,frog\n184997,automobile\n184998,deer\n184999,truck\n185000,deer\n185001,horse\n185002,dog\n185003,horse\n185004,frog\n185005,automobile\n185006,truck\n185007,automobile\n185008,frog\n185009,frog\n185010,ship\n185011,deer\n185012,cat\n185013,deer\n185014,cat\n185015,frog\n185016,airplane\n185017,cat\n185018,deer\n185019,dog\n185020,truck\n185021,horse\n185022,bird\n185023,dog\n185024,horse\n185025,truck\n185026,airplane\n185027,cat\n185028,airplane\n185029,cat\n185030,truck\n185031,horse\n185032,horse\n185033,deer\n185034,cat\n185035,cat\n185036,frog\n185037,deer\n185038,automobile\n185039,truck\n185040,automobile\n185041,frog\n185042,frog\n185043,horse\n185044,cat\n185045,horse\n185046,ship\n185047,deer\n185048,deer\n185049,cat\n185050,horse\n185051,automobile\n185052,automobile\n185053,cat\n185054,deer\n185055,frog\n185056,truck\n185057,frog\n185058,horse\n185059,bird\n185060,frog\n185061,deer\n185062,bird\n185063,bird\n185064,frog\n185065,dog\n185066,deer\n185067,horse\n185068,truck\n185069,deer\n185070,frog\n185071,bird\n185072,bird\n185073,deer\n185074,deer\n185075,horse\n185076,dog\n185077,airplane\n185078,deer\n185079,truck\n185080,cat\n185081,automobile\n185082,truck\n185083,truck\n185084,ship\n185085,airplane\n185086,dog\n185087,deer\n185088,bird\n185089,truck\n185090,deer\n185091,horse\n185092,automobile\n185093,bird\n185094,frog\n185095,deer\n185096,deer\n185097,truck\n185098,bird\n185099,deer\n185100,deer\n185101,airplane\n185102,deer\n185103,truck\n185104,truck\n185105,horse\n185106,horse\n185107,ship\n185108,truck\n185109,airplane\n185110,deer\n185111,airplane\n185112,bird\n185113,airplane\n185114,frog\n185115,deer\n185116,cat\n185117,dog\n185118,cat\n185119,cat\n185120,horse\n185121,automobile\n185122,truck\n185123,dog\n185124,cat\n185125,horse\n185126,ship\n185127,airplane\n185128,truck\n185129,bird\n185130,airplane\n185131,deer\n185132,airplane\n185133,dog\n185134,dog\n185135,ship\n185136,airplane\n185137,deer\n185138,airplane\n185139,frog\n185140,deer\n185141,truck\n185142,dog\n185143,airplane\n185144,automobile\n185145,horse\n185146,truck\n185147,bird\n185148,frog\n185149,frog\n185150,airplane\n185151,truck\n185152,automobile\n185153,ship\n185154,ship\n185155,bird\n185156,cat\n185157,dog\n185158,deer\n185159,truck\n185160,truck\n185161,dog\n185162,airplane\n185163,cat\n185164,deer\n185165,deer\n185166,ship\n185167,cat\n185168,dog\n185169,cat\n185170,bird\n185171,horse\n185172,cat\n185173,automobile\n185174,bird\n185175,truck\n185176,frog\n185177,dog\n185178,frog\n185179,dog\n185180,horse\n185181,horse\n185182,deer\n185183,horse\n185184,bird\n185185,bird\n185186,deer\n185187,horse\n185188,dog\n185189,truck\n185190,deer\n185191,frog\n185192,dog\n185193,ship\n185194,dog\n185195,deer\n185196,horse\n185197,deer\n185198,automobile\n185199,dog\n185200,automobile\n185201,airplane\n185202,deer\n185203,horse\n185204,frog\n185205,airplane\n185206,deer\n185207,truck\n185208,automobile\n185209,airplane\n185210,bird\n185211,cat\n185212,truck\n185213,deer\n185214,airplane\n185215,deer\n185216,cat\n185217,bird\n185218,dog\n185219,airplane\n185220,dog\n185221,truck\n185222,frog\n185223,automobile\n185224,truck\n185225,airplane\n185226,bird\n185227,automobile\n185228,truck\n185229,dog\n185230,dog\n185231,horse\n185232,horse\n185233,frog\n185234,bird\n185235,ship\n185236,deer\n185237,ship\n185238,deer\n185239,ship\n185240,dog\n185241,dog\n185242,truck\n185243,frog\n185244,bird\n185245,dog\n185246,ship\n185247,frog\n185248,ship\n185249,airplane\n185250,horse\n185251,cat\n185252,ship\n185253,deer\n185254,cat\n185255,deer\n185256,cat\n185257,ship\n185258,automobile\n185259,deer\n185260,truck\n185261,horse\n185262,frog\n185263,bird\n185264,deer\n185265,deer\n185266,ship\n185267,dog\n185268,deer\n185269,frog\n185270,horse\n185271,deer\n185272,bird\n185273,truck\n185274,cat\n185275,deer\n185276,dog\n185277,truck\n185278,ship\n185279,frog\n185280,airplane\n185281,ship\n185282,truck\n185283,bird\n185284,frog\n185285,frog\n185286,automobile\n185287,cat\n185288,bird\n185289,deer\n185290,cat\n185291,dog\n185292,airplane\n185293,frog\n185294,ship\n185295,bird\n185296,cat\n185297,ship\n185298,frog\n185299,ship\n185300,truck\n185301,dog\n185302,cat\n185303,cat\n185304,deer\n185305,horse\n185306,dog\n185307,cat\n185308,cat\n185309,deer\n185310,automobile\n185311,truck\n185312,deer\n185313,airplane\n185314,horse\n185315,truck\n185316,bird\n185317,bird\n185318,bird\n185319,horse\n185320,airplane\n185321,dog\n185322,truck\n185323,horse\n185324,bird\n185325,frog\n185326,bird\n185327,airplane\n185328,bird\n185329,automobile\n185330,cat\n185331,cat\n185332,deer\n185333,frog\n185334,automobile\n185335,deer\n185336,frog\n185337,dog\n185338,bird\n185339,dog\n185340,airplane\n185341,truck\n185342,cat\n185343,deer\n185344,deer\n185345,horse\n185346,deer\n185347,bird\n185348,dog\n185349,cat\n185350,truck\n185351,deer\n185352,ship\n185353,frog\n185354,ship\n185355,airplane\n185356,ship\n185357,cat\n185358,dog\n185359,dog\n185360,frog\n185361,frog\n185362,deer\n185363,deer\n185364,cat\n185365,horse\n185366,automobile\n185367,cat\n185368,dog\n185369,horse\n185370,horse\n185371,truck\n185372,dog\n185373,ship\n185374,dog\n185375,frog\n185376,ship\n185377,cat\n185378,dog\n185379,automobile\n185380,cat\n185381,ship\n185382,truck\n185383,horse\n185384,horse\n185385,cat\n185386,cat\n185387,dog\n185388,deer\n185389,deer\n185390,frog\n185391,ship\n185392,ship\n185393,frog\n185394,ship\n185395,truck\n185396,deer\n185397,deer\n185398,deer\n185399,cat\n185400,horse\n185401,truck\n185402,cat\n185403,truck\n185404,frog\n185405,ship\n185406,bird\n185407,truck\n185408,airplane\n185409,cat\n185410,horse\n185411,airplane\n185412,deer\n185413,horse\n185414,ship\n185415,dog\n185416,horse\n185417,deer\n185418,truck\n185419,bird\n185420,dog\n185421,frog\n185422,deer\n185423,bird\n185424,ship\n185425,bird\n185426,airplane\n185427,horse\n185428,horse\n185429,cat\n185430,airplane\n185431,airplane\n185432,dog\n185433,horse\n185434,bird\n185435,bird\n185436,airplane\n185437,ship\n185438,cat\n185439,truck\n185440,deer\n185441,dog\n185442,bird\n185443,horse\n185444,frog\n185445,horse\n185446,truck\n185447,airplane\n185448,bird\n185449,ship\n185450,dog\n185451,horse\n185452,ship\n185453,airplane\n185454,automobile\n185455,deer\n185456,horse\n185457,cat\n185458,truck\n185459,bird\n185460,cat\n185461,cat\n185462,cat\n185463,horse\n185464,automobile\n185465,deer\n185466,bird\n185467,airplane\n185468,airplane\n185469,deer\n185470,truck\n185471,dog\n185472,deer\n185473,automobile\n185474,horse\n185475,truck\n185476,bird\n185477,cat\n185478,horse\n185479,cat\n185480,horse\n185481,cat\n185482,airplane\n185483,bird\n185484,ship\n185485,bird\n185486,frog\n185487,frog\n185488,automobile\n185489,ship\n185490,dog\n185491,dog\n185492,bird\n185493,automobile\n185494,airplane\n185495,truck\n185496,bird\n185497,ship\n185498,airplane\n185499,deer\n185500,frog\n185501,ship\n185502,automobile\n185503,dog\n185504,dog\n185505,frog\n185506,cat\n185507,frog\n185508,deer\n185509,dog\n185510,ship\n185511,bird\n185512,dog\n185513,horse\n185514,bird\n185515,airplane\n185516,horse\n185517,ship\n185518,deer\n185519,frog\n185520,ship\n185521,cat\n185522,deer\n185523,frog\n185524,truck\n185525,truck\n185526,horse\n185527,horse\n185528,cat\n185529,horse\n185530,truck\n185531,automobile\n185532,bird\n185533,dog\n185534,dog\n185535,airplane\n185536,deer\n185537,automobile\n185538,ship\n185539,truck\n185540,airplane\n185541,cat\n185542,airplane\n185543,truck\n185544,cat\n185545,cat\n185546,horse\n185547,deer\n185548,ship\n185549,automobile\n185550,airplane\n185551,truck\n185552,deer\n185553,bird\n185554,truck\n185555,cat\n185556,horse\n185557,deer\n185558,frog\n185559,frog\n185560,horse\n185561,cat\n185562,bird\n185563,automobile\n185564,cat\n185565,cat\n185566,deer\n185567,deer\n185568,bird\n185569,automobile\n185570,automobile\n185571,bird\n185572,truck\n185573,bird\n185574,dog\n185575,horse\n185576,cat\n185577,truck\n185578,airplane\n185579,airplane\n185580,airplane\n185581,ship\n185582,cat\n185583,cat\n185584,truck\n185585,cat\n185586,ship\n185587,frog\n185588,automobile\n185589,frog\n185590,dog\n185591,cat\n185592,cat\n185593,dog\n185594,cat\n185595,automobile\n185596,dog\n185597,cat\n185598,truck\n185599,cat\n185600,bird\n185601,frog\n185602,cat\n185603,dog\n185604,deer\n185605,automobile\n185606,horse\n185607,frog\n185608,truck\n185609,horse\n185610,ship\n185611,automobile\n185612,automobile\n185613,bird\n185614,truck\n185615,deer\n185616,truck\n185617,horse\n185618,automobile\n185619,dog\n185620,frog\n185621,airplane\n185622,bird\n185623,airplane\n185624,cat\n185625,frog\n185626,airplane\n185627,cat\n185628,dog\n185629,cat\n185630,deer\n185631,frog\n185632,deer\n185633,cat\n185634,deer\n185635,airplane\n185636,frog\n185637,automobile\n185638,cat\n185639,horse\n185640,deer\n185641,truck\n185642,frog\n185643,frog\n185644,dog\n185645,cat\n185646,deer\n185647,horse\n185648,cat\n185649,airplane\n185650,automobile\n185651,ship\n185652,deer\n185653,dog\n185654,ship\n185655,frog\n185656,horse\n185657,truck\n185658,frog\n185659,horse\n185660,cat\n185661,ship\n185662,automobile\n185663,frog\n185664,frog\n185665,ship\n185666,bird\n185667,ship\n185668,airplane\n185669,cat\n185670,frog\n185671,deer\n185672,deer\n185673,deer\n185674,airplane\n185675,dog\n185676,bird\n185677,deer\n185678,ship\n185679,dog\n185680,bird\n185681,horse\n185682,dog\n185683,airplane\n185684,cat\n185685,airplane\n185686,bird\n185687,frog\n185688,frog\n185689,frog\n185690,frog\n185691,frog\n185692,horse\n185693,ship\n185694,horse\n185695,dog\n185696,automobile\n185697,cat\n185698,cat\n185699,frog\n185700,frog\n185701,dog\n185702,truck\n185703,deer\n185704,ship\n185705,cat\n185706,frog\n185707,truck\n185708,cat\n185709,truck\n185710,horse\n185711,bird\n185712,ship\n185713,deer\n185714,automobile\n185715,truck\n185716,frog\n185717,horse\n185718,deer\n185719,bird\n185720,deer\n185721,airplane\n185722,cat\n185723,ship\n185724,truck\n185725,airplane\n185726,cat\n185727,dog\n185728,automobile\n185729,airplane\n185730,cat\n185731,automobile\n185732,frog\n185733,deer\n185734,dog\n185735,horse\n185736,frog\n185737,frog\n185738,cat\n185739,airplane\n185740,deer\n185741,horse\n185742,deer\n185743,airplane\n185744,frog\n185745,dog\n185746,deer\n185747,frog\n185748,horse\n185749,deer\n185750,ship\n185751,truck\n185752,truck\n185753,bird\n185754,horse\n185755,frog\n185756,deer\n185757,frog\n185758,ship\n185759,cat\n185760,deer\n185761,frog\n185762,dog\n185763,truck\n185764,truck\n185765,bird\n185766,airplane\n185767,bird\n185768,ship\n185769,truck\n185770,horse\n185771,dog\n185772,horse\n185773,deer\n185774,frog\n185775,cat\n185776,cat\n185777,cat\n185778,dog\n185779,horse\n185780,ship\n185781,horse\n185782,dog\n185783,cat\n185784,frog\n185785,dog\n185786,airplane\n185787,ship\n185788,cat\n185789,automobile\n185790,bird\n185791,horse\n185792,horse\n185793,horse\n185794,deer\n185795,dog\n185796,ship\n185797,dog\n185798,airplane\n185799,airplane\n185800,cat\n185801,bird\n185802,horse\n185803,dog\n185804,frog\n185805,ship\n185806,frog\n185807,horse\n185808,frog\n185809,deer\n185810,cat\n185811,airplane\n185812,automobile\n185813,cat\n185814,frog\n185815,horse\n185816,deer\n185817,cat\n185818,deer\n185819,ship\n185820,horse\n185821,cat\n185822,truck\n185823,dog\n185824,airplane\n185825,cat\n185826,dog\n185827,automobile\n185828,ship\n185829,ship\n185830,ship\n185831,ship\n185832,deer\n185833,airplane\n185834,dog\n185835,dog\n185836,truck\n185837,dog\n185838,frog\n185839,bird\n185840,cat\n185841,ship\n185842,cat\n185843,airplane\n185844,frog\n185845,dog\n185846,truck\n185847,truck\n185848,frog\n185849,dog\n185850,horse\n185851,bird\n185852,dog\n185853,frog\n185854,bird\n185855,deer\n185856,ship\n185857,bird\n185858,ship\n185859,horse\n185860,dog\n185861,truck\n185862,dog\n185863,deer\n185864,dog\n185865,bird\n185866,truck\n185867,ship\n185868,dog\n185869,dog\n185870,cat\n185871,horse\n185872,ship\n185873,dog\n185874,ship\n185875,ship\n185876,cat\n185877,deer\n185878,truck\n185879,frog\n185880,ship\n185881,frog\n185882,ship\n185883,deer\n185884,airplane\n185885,cat\n185886,horse\n185887,dog\n185888,cat\n185889,ship\n185890,frog\n185891,airplane\n185892,ship\n185893,horse\n185894,frog\n185895,ship\n185896,automobile\n185897,automobile\n185898,frog\n185899,cat\n185900,horse\n185901,truck\n185902,dog\n185903,truck\n185904,truck\n185905,truck\n185906,dog\n185907,automobile\n185908,deer\n185909,dog\n185910,dog\n185911,automobile\n185912,airplane\n185913,truck\n185914,bird\n185915,deer\n185916,truck\n185917,dog\n185918,airplane\n185919,frog\n185920,bird\n185921,dog\n185922,cat\n185923,deer\n185924,cat\n185925,truck\n185926,airplane\n185927,ship\n185928,bird\n185929,horse\n185930,deer\n185931,deer\n185932,dog\n185933,dog\n185934,cat\n185935,airplane\n185936,automobile\n185937,horse\n185938,frog\n185939,cat\n185940,truck\n185941,horse\n185942,cat\n185943,horse\n185944,deer\n185945,truck\n185946,deer\n185947,bird\n185948,dog\n185949,horse\n185950,ship\n185951,frog\n185952,deer\n185953,dog\n185954,deer\n185955,deer\n185956,horse\n185957,dog\n185958,horse\n185959,frog\n185960,ship\n185961,bird\n185962,dog\n185963,ship\n185964,airplane\n185965,airplane\n185966,ship\n185967,bird\n185968,airplane\n185969,deer\n185970,automobile\n185971,deer\n185972,truck\n185973,deer\n185974,bird\n185975,deer\n185976,airplane\n185977,bird\n185978,airplane\n185979,truck\n185980,cat\n185981,frog\n185982,truck\n185983,airplane\n185984,dog\n185985,automobile\n185986,truck\n185987,automobile\n185988,frog\n185989,bird\n185990,airplane\n185991,deer\n185992,ship\n185993,bird\n185994,horse\n185995,automobile\n185996,dog\n185997,bird\n185998,dog\n185999,deer\n186000,truck\n186001,dog\n186002,deer\n186003,horse\n186004,frog\n186005,automobile\n186006,frog\n186007,cat\n186008,cat\n186009,truck\n186010,airplane\n186011,cat\n186012,frog\n186013,dog\n186014,horse\n186015,frog\n186016,cat\n186017,dog\n186018,truck\n186019,airplane\n186020,horse\n186021,truck\n186022,frog\n186023,frog\n186024,automobile\n186025,dog\n186026,ship\n186027,frog\n186028,deer\n186029,cat\n186030,dog\n186031,airplane\n186032,frog\n186033,ship\n186034,horse\n186035,airplane\n186036,deer\n186037,ship\n186038,cat\n186039,frog\n186040,cat\n186041,bird\n186042,dog\n186043,deer\n186044,dog\n186045,horse\n186046,frog\n186047,automobile\n186048,horse\n186049,frog\n186050,cat\n186051,ship\n186052,deer\n186053,airplane\n186054,frog\n186055,cat\n186056,truck\n186057,dog\n186058,dog\n186059,cat\n186060,bird\n186061,horse\n186062,automobile\n186063,cat\n186064,bird\n186065,deer\n186066,deer\n186067,bird\n186068,deer\n186069,deer\n186070,ship\n186071,horse\n186072,airplane\n186073,airplane\n186074,deer\n186075,airplane\n186076,cat\n186077,automobile\n186078,cat\n186079,frog\n186080,bird\n186081,horse\n186082,cat\n186083,ship\n186084,bird\n186085,frog\n186086,cat\n186087,cat\n186088,frog\n186089,frog\n186090,frog\n186091,cat\n186092,deer\n186093,dog\n186094,horse\n186095,cat\n186096,frog\n186097,frog\n186098,bird\n186099,automobile\n186100,dog\n186101,bird\n186102,ship\n186103,frog\n186104,ship\n186105,horse\n186106,automobile\n186107,dog\n186108,truck\n186109,ship\n186110,deer\n186111,airplane\n186112,horse\n186113,deer\n186114,horse\n186115,cat\n186116,horse\n186117,cat\n186118,frog\n186119,automobile\n186120,dog\n186121,deer\n186122,horse\n186123,automobile\n186124,frog\n186125,ship\n186126,automobile\n186127,ship\n186128,automobile\n186129,cat\n186130,automobile\n186131,bird\n186132,deer\n186133,horse\n186134,horse\n186135,cat\n186136,airplane\n186137,deer\n186138,truck\n186139,bird\n186140,deer\n186141,ship\n186142,ship\n186143,truck\n186144,bird\n186145,ship\n186146,horse\n186147,deer\n186148,automobile\n186149,horse\n186150,deer\n186151,airplane\n186152,automobile\n186153,ship\n186154,horse\n186155,truck\n186156,ship\n186157,airplane\n186158,dog\n186159,airplane\n186160,bird\n186161,cat\n186162,truck\n186163,bird\n186164,truck\n186165,bird\n186166,cat\n186167,dog\n186168,cat\n186169,automobile\n186170,airplane\n186171,airplane\n186172,dog\n186173,horse\n186174,cat\n186175,frog\n186176,bird\n186177,truck\n186178,horse\n186179,dog\n186180,deer\n186181,truck\n186182,horse\n186183,frog\n186184,deer\n186185,truck\n186186,bird\n186187,horse\n186188,deer\n186189,truck\n186190,bird\n186191,airplane\n186192,automobile\n186193,airplane\n186194,deer\n186195,frog\n186196,airplane\n186197,frog\n186198,bird\n186199,deer\n186200,truck\n186201,dog\n186202,horse\n186203,deer\n186204,deer\n186205,cat\n186206,airplane\n186207,deer\n186208,truck\n186209,deer\n186210,horse\n186211,bird\n186212,truck\n186213,cat\n186214,cat\n186215,horse\n186216,dog\n186217,deer\n186218,airplane\n186219,cat\n186220,frog\n186221,frog\n186222,deer\n186223,automobile\n186224,bird\n186225,deer\n186226,ship\n186227,dog\n186228,cat\n186229,ship\n186230,truck\n186231,deer\n186232,airplane\n186233,automobile\n186234,dog\n186235,bird\n186236,horse\n186237,bird\n186238,ship\n186239,frog\n186240,deer\n186241,dog\n186242,cat\n186243,ship\n186244,airplane\n186245,horse\n186246,deer\n186247,cat\n186248,cat\n186249,automobile\n186250,airplane\n186251,horse\n186252,horse\n186253,dog\n186254,frog\n186255,horse\n186256,bird\n186257,frog\n186258,ship\n186259,truck\n186260,horse\n186261,airplane\n186262,deer\n186263,frog\n186264,cat\n186265,airplane\n186266,ship\n186267,bird\n186268,truck\n186269,ship\n186270,airplane\n186271,frog\n186272,frog\n186273,cat\n186274,dog\n186275,ship\n186276,airplane\n186277,truck\n186278,airplane\n186279,deer\n186280,frog\n186281,truck\n186282,deer\n186283,cat\n186284,horse\n186285,horse\n186286,ship\n186287,airplane\n186288,deer\n186289,deer\n186290,bird\n186291,deer\n186292,frog\n186293,bird\n186294,frog\n186295,horse\n186296,cat\n186297,automobile\n186298,automobile\n186299,airplane\n186300,ship\n186301,airplane\n186302,automobile\n186303,airplane\n186304,cat\n186305,frog\n186306,truck\n186307,frog\n186308,ship\n186309,truck\n186310,automobile\n186311,cat\n186312,truck\n186313,ship\n186314,truck\n186315,horse\n186316,truck\n186317,truck\n186318,bird\n186319,ship\n186320,horse\n186321,cat\n186322,deer\n186323,frog\n186324,deer\n186325,deer\n186326,truck\n186327,ship\n186328,airplane\n186329,horse\n186330,frog\n186331,deer\n186332,cat\n186333,automobile\n186334,dog\n186335,deer\n186336,deer\n186337,horse\n186338,deer\n186339,dog\n186340,dog\n186341,airplane\n186342,truck\n186343,deer\n186344,horse\n186345,truck\n186346,deer\n186347,deer\n186348,horse\n186349,cat\n186350,ship\n186351,airplane\n186352,automobile\n186353,airplane\n186354,dog\n186355,horse\n186356,deer\n186357,airplane\n186358,horse\n186359,truck\n186360,horse\n186361,truck\n186362,dog\n186363,airplane\n186364,frog\n186365,deer\n186366,deer\n186367,airplane\n186368,frog\n186369,dog\n186370,horse\n186371,frog\n186372,automobile\n186373,deer\n186374,cat\n186375,ship\n186376,horse\n186377,airplane\n186378,truck\n186379,truck\n186380,bird\n186381,dog\n186382,airplane\n186383,dog\n186384,dog\n186385,horse\n186386,frog\n186387,cat\n186388,deer\n186389,automobile\n186390,bird\n186391,ship\n186392,airplane\n186393,automobile\n186394,bird\n186395,automobile\n186396,airplane\n186397,deer\n186398,cat\n186399,ship\n186400,bird\n186401,automobile\n186402,airplane\n186403,frog\n186404,horse\n186405,bird\n186406,deer\n186407,cat\n186408,airplane\n186409,truck\n186410,automobile\n186411,ship\n186412,ship\n186413,horse\n186414,horse\n186415,deer\n186416,truck\n186417,truck\n186418,airplane\n186419,bird\n186420,cat\n186421,bird\n186422,horse\n186423,deer\n186424,dog\n186425,frog\n186426,cat\n186427,dog\n186428,ship\n186429,ship\n186430,cat\n186431,cat\n186432,frog\n186433,ship\n186434,airplane\n186435,frog\n186436,cat\n186437,horse\n186438,deer\n186439,automobile\n186440,deer\n186441,ship\n186442,deer\n186443,ship\n186444,cat\n186445,horse\n186446,automobile\n186447,airplane\n186448,deer\n186449,cat\n186450,truck\n186451,truck\n186452,frog\n186453,deer\n186454,truck\n186455,deer\n186456,deer\n186457,airplane\n186458,frog\n186459,airplane\n186460,automobile\n186461,bird\n186462,cat\n186463,truck\n186464,cat\n186465,airplane\n186466,airplane\n186467,ship\n186468,ship\n186469,cat\n186470,truck\n186471,ship\n186472,deer\n186473,cat\n186474,cat\n186475,deer\n186476,ship\n186477,airplane\n186478,frog\n186479,cat\n186480,bird\n186481,dog\n186482,cat\n186483,frog\n186484,horse\n186485,deer\n186486,automobile\n186487,truck\n186488,cat\n186489,deer\n186490,cat\n186491,frog\n186492,deer\n186493,horse\n186494,frog\n186495,cat\n186496,dog\n186497,horse\n186498,deer\n186499,dog\n186500,horse\n186501,horse\n186502,automobile\n186503,dog\n186504,deer\n186505,dog\n186506,ship\n186507,airplane\n186508,deer\n186509,deer\n186510,truck\n186511,ship\n186512,airplane\n186513,deer\n186514,truck\n186515,truck\n186516,cat\n186517,ship\n186518,cat\n186519,truck\n186520,cat\n186521,horse\n186522,deer\n186523,horse\n186524,cat\n186525,deer\n186526,automobile\n186527,deer\n186528,truck\n186529,frog\n186530,airplane\n186531,ship\n186532,deer\n186533,deer\n186534,airplane\n186535,cat\n186536,deer\n186537,automobile\n186538,ship\n186539,automobile\n186540,ship\n186541,ship\n186542,airplane\n186543,deer\n186544,truck\n186545,bird\n186546,ship\n186547,ship\n186548,truck\n186549,bird\n186550,dog\n186551,deer\n186552,truck\n186553,dog\n186554,truck\n186555,airplane\n186556,horse\n186557,ship\n186558,automobile\n186559,airplane\n186560,dog\n186561,bird\n186562,frog\n186563,automobile\n186564,bird\n186565,horse\n186566,bird\n186567,dog\n186568,truck\n186569,horse\n186570,frog\n186571,dog\n186572,automobile\n186573,deer\n186574,airplane\n186575,airplane\n186576,automobile\n186577,airplane\n186578,deer\n186579,airplane\n186580,horse\n186581,cat\n186582,dog\n186583,deer\n186584,truck\n186585,frog\n186586,cat\n186587,deer\n186588,automobile\n186589,frog\n186590,dog\n186591,horse\n186592,dog\n186593,ship\n186594,automobile\n186595,frog\n186596,airplane\n186597,cat\n186598,airplane\n186599,horse\n186600,bird\n186601,deer\n186602,bird\n186603,horse\n186604,frog\n186605,automobile\n186606,truck\n186607,deer\n186608,bird\n186609,frog\n186610,ship\n186611,deer\n186612,truck\n186613,airplane\n186614,frog\n186615,frog\n186616,dog\n186617,deer\n186618,frog\n186619,horse\n186620,deer\n186621,bird\n186622,horse\n186623,bird\n186624,truck\n186625,frog\n186626,dog\n186627,horse\n186628,deer\n186629,horse\n186630,automobile\n186631,deer\n186632,frog\n186633,deer\n186634,horse\n186635,deer\n186636,frog\n186637,horse\n186638,frog\n186639,airplane\n186640,horse\n186641,truck\n186642,horse\n186643,cat\n186644,ship\n186645,deer\n186646,cat\n186647,bird\n186648,ship\n186649,cat\n186650,frog\n186651,frog\n186652,dog\n186653,ship\n186654,frog\n186655,truck\n186656,deer\n186657,ship\n186658,deer\n186659,ship\n186660,automobile\n186661,truck\n186662,automobile\n186663,dog\n186664,horse\n186665,truck\n186666,frog\n186667,frog\n186668,truck\n186669,automobile\n186670,truck\n186671,airplane\n186672,airplane\n186673,horse\n186674,automobile\n186675,airplane\n186676,frog\n186677,frog\n186678,frog\n186679,truck\n186680,ship\n186681,dog\n186682,frog\n186683,dog\n186684,deer\n186685,cat\n186686,airplane\n186687,airplane\n186688,ship\n186689,frog\n186690,truck\n186691,dog\n186692,horse\n186693,dog\n186694,automobile\n186695,bird\n186696,dog\n186697,frog\n186698,horse\n186699,cat\n186700,cat\n186701,airplane\n186702,deer\n186703,cat\n186704,cat\n186705,ship\n186706,automobile\n186707,frog\n186708,airplane\n186709,frog\n186710,airplane\n186711,deer\n186712,ship\n186713,truck\n186714,airplane\n186715,cat\n186716,deer\n186717,frog\n186718,truck\n186719,horse\n186720,horse\n186721,deer\n186722,frog\n186723,cat\n186724,deer\n186725,bird\n186726,frog\n186727,truck\n186728,dog\n186729,bird\n186730,airplane\n186731,cat\n186732,horse\n186733,frog\n186734,dog\n186735,cat\n186736,ship\n186737,frog\n186738,dog\n186739,ship\n186740,deer\n186741,dog\n186742,deer\n186743,automobile\n186744,airplane\n186745,truck\n186746,ship\n186747,cat\n186748,bird\n186749,automobile\n186750,dog\n186751,deer\n186752,bird\n186753,ship\n186754,horse\n186755,dog\n186756,truck\n186757,airplane\n186758,horse\n186759,bird\n186760,ship\n186761,deer\n186762,automobile\n186763,dog\n186764,airplane\n186765,truck\n186766,horse\n186767,automobile\n186768,dog\n186769,truck\n186770,bird\n186771,frog\n186772,airplane\n186773,airplane\n186774,dog\n186775,horse\n186776,horse\n186777,horse\n186778,dog\n186779,dog\n186780,frog\n186781,airplane\n186782,automobile\n186783,truck\n186784,deer\n186785,dog\n186786,automobile\n186787,frog\n186788,cat\n186789,dog\n186790,bird\n186791,horse\n186792,bird\n186793,bird\n186794,truck\n186795,truck\n186796,frog\n186797,deer\n186798,cat\n186799,horse\n186800,deer\n186801,horse\n186802,cat\n186803,deer\n186804,bird\n186805,horse\n186806,deer\n186807,dog\n186808,automobile\n186809,ship\n186810,dog\n186811,horse\n186812,truck\n186813,horse\n186814,horse\n186815,dog\n186816,deer\n186817,dog\n186818,automobile\n186819,cat\n186820,bird\n186821,automobile\n186822,horse\n186823,deer\n186824,cat\n186825,frog\n186826,ship\n186827,cat\n186828,cat\n186829,ship\n186830,airplane\n186831,cat\n186832,ship\n186833,cat\n186834,truck\n186835,airplane\n186836,horse\n186837,truck\n186838,airplane\n186839,cat\n186840,ship\n186841,automobile\n186842,dog\n186843,deer\n186844,airplane\n186845,truck\n186846,automobile\n186847,bird\n186848,truck\n186849,truck\n186850,truck\n186851,automobile\n186852,cat\n186853,truck\n186854,dog\n186855,deer\n186856,dog\n186857,frog\n186858,airplane\n186859,deer\n186860,automobile\n186861,cat\n186862,dog\n186863,dog\n186864,cat\n186865,bird\n186866,truck\n186867,ship\n186868,horse\n186869,airplane\n186870,airplane\n186871,automobile\n186872,truck\n186873,ship\n186874,deer\n186875,truck\n186876,deer\n186877,frog\n186878,airplane\n186879,truck\n186880,horse\n186881,airplane\n186882,truck\n186883,truck\n186884,frog\n186885,dog\n186886,cat\n186887,frog\n186888,deer\n186889,automobile\n186890,truck\n186891,dog\n186892,ship\n186893,truck\n186894,airplane\n186895,automobile\n186896,horse\n186897,deer\n186898,truck\n186899,cat\n186900,cat\n186901,truck\n186902,airplane\n186903,ship\n186904,horse\n186905,cat\n186906,truck\n186907,frog\n186908,horse\n186909,cat\n186910,horse\n186911,cat\n186912,automobile\n186913,cat\n186914,frog\n186915,ship\n186916,truck\n186917,deer\n186918,truck\n186919,ship\n186920,cat\n186921,ship\n186922,bird\n186923,deer\n186924,dog\n186925,deer\n186926,deer\n186927,airplane\n186928,frog\n186929,deer\n186930,bird\n186931,frog\n186932,bird\n186933,horse\n186934,frog\n186935,horse\n186936,horse\n186937,ship\n186938,deer\n186939,truck\n186940,truck\n186941,truck\n186942,cat\n186943,deer\n186944,ship\n186945,horse\n186946,dog\n186947,cat\n186948,horse\n186949,deer\n186950,airplane\n186951,dog\n186952,frog\n186953,airplane\n186954,dog\n186955,horse\n186956,horse\n186957,horse\n186958,ship\n186959,deer\n186960,dog\n186961,dog\n186962,cat\n186963,bird\n186964,truck\n186965,dog\n186966,airplane\n186967,truck\n186968,truck\n186969,cat\n186970,truck\n186971,deer\n186972,ship\n186973,truck\n186974,airplane\n186975,deer\n186976,frog\n186977,cat\n186978,frog\n186979,airplane\n186980,cat\n186981,cat\n186982,cat\n186983,deer\n186984,cat\n186985,truck\n186986,cat\n186987,truck\n186988,automobile\n186989,frog\n186990,deer\n186991,ship\n186992,ship\n186993,deer\n186994,cat\n186995,frog\n186996,bird\n186997,truck\n186998,airplane\n186999,dog\n187000,bird\n187001,horse\n187002,truck\n187003,cat\n187004,airplane\n187005,automobile\n187006,ship\n187007,cat\n187008,truck\n187009,airplane\n187010,airplane\n187011,airplane\n187012,automobile\n187013,cat\n187014,horse\n187015,ship\n187016,ship\n187017,horse\n187018,dog\n187019,horse\n187020,airplane\n187021,bird\n187022,airplane\n187023,ship\n187024,cat\n187025,airplane\n187026,dog\n187027,airplane\n187028,ship\n187029,deer\n187030,truck\n187031,cat\n187032,cat\n187033,ship\n187034,bird\n187035,cat\n187036,automobile\n187037,automobile\n187038,frog\n187039,bird\n187040,airplane\n187041,truck\n187042,cat\n187043,ship\n187044,ship\n187045,truck\n187046,horse\n187047,automobile\n187048,horse\n187049,truck\n187050,horse\n187051,frog\n187052,automobile\n187053,bird\n187054,frog\n187055,deer\n187056,dog\n187057,automobile\n187058,horse\n187059,horse\n187060,bird\n187061,ship\n187062,cat\n187063,bird\n187064,horse\n187065,cat\n187066,cat\n187067,deer\n187068,ship\n187069,cat\n187070,cat\n187071,deer\n187072,airplane\n187073,frog\n187074,bird\n187075,dog\n187076,cat\n187077,ship\n187078,deer\n187079,dog\n187080,automobile\n187081,bird\n187082,truck\n187083,cat\n187084,truck\n187085,airplane\n187086,ship\n187087,ship\n187088,ship\n187089,bird\n187090,cat\n187091,deer\n187092,ship\n187093,truck\n187094,airplane\n187095,horse\n187096,bird\n187097,truck\n187098,truck\n187099,frog\n187100,horse\n187101,truck\n187102,truck\n187103,dog\n187104,automobile\n187105,cat\n187106,truck\n187107,truck\n187108,bird\n187109,bird\n187110,deer\n187111,airplane\n187112,automobile\n187113,horse\n187114,horse\n187115,dog\n187116,cat\n187117,bird\n187118,airplane\n187119,deer\n187120,deer\n187121,bird\n187122,cat\n187123,bird\n187124,horse\n187125,dog\n187126,cat\n187127,frog\n187128,deer\n187129,cat\n187130,deer\n187131,bird\n187132,horse\n187133,cat\n187134,cat\n187135,dog\n187136,deer\n187137,airplane\n187138,truck\n187139,frog\n187140,deer\n187141,deer\n187142,cat\n187143,bird\n187144,deer\n187145,frog\n187146,truck\n187147,ship\n187148,bird\n187149,bird\n187150,frog\n187151,airplane\n187152,frog\n187153,horse\n187154,ship\n187155,horse\n187156,deer\n187157,dog\n187158,deer\n187159,deer\n187160,airplane\n187161,airplane\n187162,deer\n187163,deer\n187164,horse\n187165,horse\n187166,dog\n187167,ship\n187168,ship\n187169,truck\n187170,deer\n187171,dog\n187172,cat\n187173,frog\n187174,ship\n187175,cat\n187176,truck\n187177,cat\n187178,cat\n187179,truck\n187180,frog\n187181,deer\n187182,cat\n187183,deer\n187184,bird\n187185,cat\n187186,dog\n187187,deer\n187188,frog\n187189,deer\n187190,cat\n187191,frog\n187192,automobile\n187193,cat\n187194,frog\n187195,frog\n187196,deer\n187197,horse\n187198,deer\n187199,dog\n187200,deer\n187201,horse\n187202,cat\n187203,dog\n187204,cat\n187205,deer\n187206,airplane\n187207,automobile\n187208,horse\n187209,airplane\n187210,airplane\n187211,horse\n187212,horse\n187213,horse\n187214,dog\n187215,cat\n187216,airplane\n187217,bird\n187218,truck\n187219,bird\n187220,horse\n187221,truck\n187222,deer\n187223,cat\n187224,airplane\n187225,automobile\n187226,dog\n187227,dog\n187228,automobile\n187229,bird\n187230,cat\n187231,frog\n187232,automobile\n187233,automobile\n187234,deer\n187235,deer\n187236,cat\n187237,horse\n187238,automobile\n187239,truck\n187240,cat\n187241,cat\n187242,cat\n187243,horse\n187244,dog\n187245,frog\n187246,deer\n187247,automobile\n187248,horse\n187249,horse\n187250,frog\n187251,frog\n187252,horse\n187253,ship\n187254,ship\n187255,frog\n187256,horse\n187257,airplane\n187258,deer\n187259,dog\n187260,horse\n187261,deer\n187262,deer\n187263,horse\n187264,automobile\n187265,bird\n187266,ship\n187267,truck\n187268,deer\n187269,frog\n187270,automobile\n187271,airplane\n187272,frog\n187273,truck\n187274,cat\n187275,horse\n187276,deer\n187277,frog\n187278,frog\n187279,dog\n187280,cat\n187281,truck\n187282,cat\n187283,bird\n187284,automobile\n187285,horse\n187286,automobile\n187287,airplane\n187288,deer\n187289,dog\n187290,frog\n187291,deer\n187292,dog\n187293,deer\n187294,truck\n187295,dog\n187296,cat\n187297,truck\n187298,bird\n187299,deer\n187300,deer\n187301,bird\n187302,dog\n187303,dog\n187304,horse\n187305,ship\n187306,horse\n187307,dog\n187308,airplane\n187309,cat\n187310,airplane\n187311,frog\n187312,truck\n187313,frog\n187314,deer\n187315,ship\n187316,frog\n187317,ship\n187318,truck\n187319,ship\n187320,airplane\n187321,horse\n187322,deer\n187323,frog\n187324,ship\n187325,cat\n187326,deer\n187327,deer\n187328,truck\n187329,ship\n187330,bird\n187331,deer\n187332,bird\n187333,deer\n187334,deer\n187335,frog\n187336,bird\n187337,bird\n187338,bird\n187339,frog\n187340,horse\n187341,bird\n187342,frog\n187343,deer\n187344,deer\n187345,horse\n187346,horse\n187347,bird\n187348,cat\n187349,dog\n187350,deer\n187351,automobile\n187352,horse\n187353,airplane\n187354,deer\n187355,deer\n187356,deer\n187357,deer\n187358,cat\n187359,cat\n187360,deer\n187361,ship\n187362,dog\n187363,bird\n187364,frog\n187365,deer\n187366,horse\n187367,dog\n187368,frog\n187369,horse\n187370,horse\n187371,bird\n187372,automobile\n187373,dog\n187374,ship\n187375,automobile\n187376,truck\n187377,truck\n187378,dog\n187379,truck\n187380,cat\n187381,airplane\n187382,deer\n187383,frog\n187384,frog\n187385,airplane\n187386,dog\n187387,dog\n187388,deer\n187389,deer\n187390,truck\n187391,horse\n187392,airplane\n187393,frog\n187394,bird\n187395,horse\n187396,truck\n187397,dog\n187398,frog\n187399,ship\n187400,deer\n187401,truck\n187402,dog\n187403,truck\n187404,dog\n187405,ship\n187406,cat\n187407,cat\n187408,ship\n187409,cat\n187410,deer\n187411,frog\n187412,bird\n187413,deer\n187414,automobile\n187415,deer\n187416,dog\n187417,horse\n187418,frog\n187419,cat\n187420,automobile\n187421,bird\n187422,ship\n187423,bird\n187424,horse\n187425,ship\n187426,ship\n187427,truck\n187428,cat\n187429,truck\n187430,deer\n187431,frog\n187432,dog\n187433,cat\n187434,horse\n187435,airplane\n187436,horse\n187437,dog\n187438,automobile\n187439,deer\n187440,frog\n187441,ship\n187442,ship\n187443,deer\n187444,ship\n187445,horse\n187446,cat\n187447,bird\n187448,cat\n187449,dog\n187450,frog\n187451,deer\n187452,horse\n187453,ship\n187454,truck\n187455,cat\n187456,automobile\n187457,truck\n187458,cat\n187459,dog\n187460,cat\n187461,cat\n187462,cat\n187463,ship\n187464,cat\n187465,frog\n187466,cat\n187467,deer\n187468,dog\n187469,airplane\n187470,horse\n187471,automobile\n187472,airplane\n187473,ship\n187474,deer\n187475,frog\n187476,deer\n187477,deer\n187478,ship\n187479,airplane\n187480,frog\n187481,dog\n187482,bird\n187483,frog\n187484,deer\n187485,deer\n187486,ship\n187487,automobile\n187488,automobile\n187489,deer\n187490,cat\n187491,horse\n187492,truck\n187493,bird\n187494,bird\n187495,horse\n187496,deer\n187497,horse\n187498,truck\n187499,automobile\n187500,automobile\n187501,frog\n187502,cat\n187503,ship\n187504,airplane\n187505,horse\n187506,airplane\n187507,airplane\n187508,horse\n187509,deer\n187510,airplane\n187511,cat\n187512,airplane\n187513,frog\n187514,truck\n187515,deer\n187516,cat\n187517,bird\n187518,deer\n187519,dog\n187520,automobile\n187521,cat\n187522,deer\n187523,horse\n187524,truck\n187525,airplane\n187526,truck\n187527,truck\n187528,horse\n187529,frog\n187530,cat\n187531,deer\n187532,airplane\n187533,bird\n187534,cat\n187535,bird\n187536,airplane\n187537,ship\n187538,cat\n187539,automobile\n187540,cat\n187541,frog\n187542,horse\n187543,dog\n187544,dog\n187545,ship\n187546,cat\n187547,cat\n187548,dog\n187549,ship\n187550,frog\n187551,cat\n187552,bird\n187553,horse\n187554,truck\n187555,deer\n187556,horse\n187557,automobile\n187558,airplane\n187559,deer\n187560,cat\n187561,airplane\n187562,airplane\n187563,deer\n187564,cat\n187565,deer\n187566,frog\n187567,frog\n187568,deer\n187569,cat\n187570,deer\n187571,truck\n187572,deer\n187573,bird\n187574,bird\n187575,horse\n187576,airplane\n187577,cat\n187578,dog\n187579,deer\n187580,bird\n187581,deer\n187582,cat\n187583,cat\n187584,airplane\n187585,dog\n187586,bird\n187587,deer\n187588,horse\n187589,bird\n187590,frog\n187591,cat\n187592,deer\n187593,automobile\n187594,automobile\n187595,horse\n187596,truck\n187597,deer\n187598,bird\n187599,airplane\n187600,ship\n187601,ship\n187602,truck\n187603,automobile\n187604,cat\n187605,ship\n187606,deer\n187607,frog\n187608,truck\n187609,deer\n187610,horse\n187611,bird\n187612,dog\n187613,bird\n187614,frog\n187615,deer\n187616,horse\n187617,bird\n187618,dog\n187619,airplane\n187620,truck\n187621,horse\n187622,automobile\n187623,bird\n187624,deer\n187625,airplane\n187626,truck\n187627,ship\n187628,horse\n187629,deer\n187630,deer\n187631,frog\n187632,frog\n187633,ship\n187634,ship\n187635,cat\n187636,cat\n187637,horse\n187638,horse\n187639,automobile\n187640,cat\n187641,dog\n187642,bird\n187643,frog\n187644,dog\n187645,cat\n187646,deer\n187647,frog\n187648,automobile\n187649,deer\n187650,dog\n187651,deer\n187652,truck\n187653,deer\n187654,automobile\n187655,frog\n187656,dog\n187657,bird\n187658,truck\n187659,ship\n187660,cat\n187661,automobile\n187662,dog\n187663,truck\n187664,bird\n187665,deer\n187666,dog\n187667,dog\n187668,frog\n187669,truck\n187670,frog\n187671,frog\n187672,truck\n187673,cat\n187674,truck\n187675,frog\n187676,horse\n187677,airplane\n187678,cat\n187679,truck\n187680,cat\n187681,cat\n187682,dog\n187683,deer\n187684,bird\n187685,bird\n187686,deer\n187687,cat\n187688,bird\n187689,cat\n187690,horse\n187691,dog\n187692,frog\n187693,horse\n187694,frog\n187695,truck\n187696,horse\n187697,bird\n187698,bird\n187699,airplane\n187700,automobile\n187701,ship\n187702,truck\n187703,dog\n187704,dog\n187705,ship\n187706,horse\n187707,airplane\n187708,cat\n187709,truck\n187710,ship\n187711,ship\n187712,dog\n187713,deer\n187714,ship\n187715,automobile\n187716,frog\n187717,frog\n187718,dog\n187719,truck\n187720,frog\n187721,horse\n187722,horse\n187723,ship\n187724,deer\n187725,airplane\n187726,ship\n187727,ship\n187728,cat\n187729,bird\n187730,deer\n187731,cat\n187732,frog\n187733,truck\n187734,horse\n187735,ship\n187736,truck\n187737,horse\n187738,truck\n187739,ship\n187740,frog\n187741,cat\n187742,automobile\n187743,ship\n187744,airplane\n187745,dog\n187746,airplane\n187747,truck\n187748,deer\n187749,horse\n187750,deer\n187751,cat\n187752,deer\n187753,horse\n187754,automobile\n187755,cat\n187756,truck\n187757,frog\n187758,dog\n187759,horse\n187760,ship\n187761,horse\n187762,automobile\n187763,bird\n187764,dog\n187765,airplane\n187766,ship\n187767,airplane\n187768,dog\n187769,truck\n187770,cat\n187771,ship\n187772,deer\n187773,airplane\n187774,bird\n187775,cat\n187776,horse\n187777,frog\n187778,automobile\n187779,deer\n187780,bird\n187781,bird\n187782,truck\n187783,horse\n187784,ship\n187785,cat\n187786,airplane\n187787,truck\n187788,automobile\n187789,cat\n187790,truck\n187791,automobile\n187792,cat\n187793,truck\n187794,bird\n187795,truck\n187796,bird\n187797,truck\n187798,dog\n187799,horse\n187800,frog\n187801,airplane\n187802,cat\n187803,dog\n187804,ship\n187805,bird\n187806,deer\n187807,cat\n187808,ship\n187809,truck\n187810,automobile\n187811,airplane\n187812,cat\n187813,dog\n187814,cat\n187815,truck\n187816,automobile\n187817,airplane\n187818,automobile\n187819,ship\n187820,deer\n187821,horse\n187822,airplane\n187823,bird\n187824,cat\n187825,dog\n187826,ship\n187827,cat\n187828,dog\n187829,horse\n187830,horse\n187831,automobile\n187832,horse\n187833,cat\n187834,deer\n187835,dog\n187836,horse\n187837,truck\n187838,airplane\n187839,horse\n187840,deer\n187841,airplane\n187842,horse\n187843,ship\n187844,truck\n187845,frog\n187846,cat\n187847,deer\n187848,frog\n187849,horse\n187850,truck\n187851,airplane\n187852,frog\n187853,bird\n187854,horse\n187855,truck\n187856,bird\n187857,dog\n187858,dog\n187859,frog\n187860,dog\n187861,frog\n187862,cat\n187863,bird\n187864,horse\n187865,truck\n187866,bird\n187867,deer\n187868,airplane\n187869,frog\n187870,deer\n187871,airplane\n187872,dog\n187873,deer\n187874,horse\n187875,airplane\n187876,deer\n187877,airplane\n187878,frog\n187879,airplane\n187880,truck\n187881,dog\n187882,airplane\n187883,frog\n187884,frog\n187885,airplane\n187886,cat\n187887,truck\n187888,horse\n187889,dog\n187890,truck\n187891,automobile\n187892,automobile\n187893,ship\n187894,automobile\n187895,dog\n187896,truck\n187897,horse\n187898,airplane\n187899,horse\n187900,truck\n187901,frog\n187902,horse\n187903,airplane\n187904,cat\n187905,horse\n187906,ship\n187907,frog\n187908,cat\n187909,deer\n187910,ship\n187911,truck\n187912,cat\n187913,cat\n187914,horse\n187915,truck\n187916,truck\n187917,airplane\n187918,frog\n187919,cat\n187920,horse\n187921,truck\n187922,truck\n187923,frog\n187924,truck\n187925,cat\n187926,deer\n187927,deer\n187928,truck\n187929,truck\n187930,cat\n187931,automobile\n187932,cat\n187933,ship\n187934,horse\n187935,ship\n187936,truck\n187937,truck\n187938,horse\n187939,truck\n187940,cat\n187941,cat\n187942,cat\n187943,automobile\n187944,frog\n187945,frog\n187946,bird\n187947,bird\n187948,dog\n187949,cat\n187950,airplane\n187951,frog\n187952,truck\n187953,cat\n187954,truck\n187955,automobile\n187956,cat\n187957,deer\n187958,truck\n187959,deer\n187960,ship\n187961,dog\n187962,horse\n187963,bird\n187964,bird\n187965,deer\n187966,deer\n187967,dog\n187968,cat\n187969,airplane\n187970,airplane\n187971,dog\n187972,frog\n187973,dog\n187974,horse\n187975,bird\n187976,deer\n187977,frog\n187978,airplane\n187979,ship\n187980,bird\n187981,frog\n187982,dog\n187983,cat\n187984,dog\n187985,cat\n187986,ship\n187987,cat\n187988,automobile\n187989,ship\n187990,frog\n187991,deer\n187992,truck\n187993,cat\n187994,ship\n187995,ship\n187996,deer\n187997,cat\n187998,horse\n187999,frog\n188000,horse\n188001,cat\n188002,horse\n188003,ship\n188004,truck\n188005,automobile\n188006,frog\n188007,automobile\n188008,dog\n188009,horse\n188010,deer\n188011,frog\n188012,dog\n188013,bird\n188014,dog\n188015,bird\n188016,truck\n188017,bird\n188018,bird\n188019,dog\n188020,airplane\n188021,ship\n188022,deer\n188023,truck\n188024,dog\n188025,ship\n188026,cat\n188027,bird\n188028,horse\n188029,truck\n188030,deer\n188031,frog\n188032,cat\n188033,deer\n188034,deer\n188035,ship\n188036,truck\n188037,frog\n188038,truck\n188039,dog\n188040,dog\n188041,airplane\n188042,ship\n188043,dog\n188044,airplane\n188045,horse\n188046,horse\n188047,deer\n188048,deer\n188049,truck\n188050,cat\n188051,ship\n188052,airplane\n188053,bird\n188054,automobile\n188055,cat\n188056,dog\n188057,cat\n188058,bird\n188059,deer\n188060,automobile\n188061,deer\n188062,deer\n188063,bird\n188064,truck\n188065,ship\n188066,truck\n188067,horse\n188068,horse\n188069,ship\n188070,truck\n188071,airplane\n188072,deer\n188073,horse\n188074,airplane\n188075,truck\n188076,truck\n188077,automobile\n188078,bird\n188079,frog\n188080,cat\n188081,frog\n188082,automobile\n188083,automobile\n188084,airplane\n188085,cat\n188086,truck\n188087,deer\n188088,ship\n188089,dog\n188090,airplane\n188091,deer\n188092,cat\n188093,bird\n188094,airplane\n188095,truck\n188096,airplane\n188097,bird\n188098,cat\n188099,cat\n188100,horse\n188101,truck\n188102,automobile\n188103,cat\n188104,dog\n188105,frog\n188106,horse\n188107,dog\n188108,cat\n188109,dog\n188110,frog\n188111,bird\n188112,airplane\n188113,truck\n188114,bird\n188115,deer\n188116,automobile\n188117,horse\n188118,horse\n188119,deer\n188120,frog\n188121,cat\n188122,frog\n188123,frog\n188124,dog\n188125,horse\n188126,dog\n188127,deer\n188128,cat\n188129,deer\n188130,cat\n188131,truck\n188132,horse\n188133,horse\n188134,airplane\n188135,bird\n188136,truck\n188137,ship\n188138,deer\n188139,airplane\n188140,deer\n188141,dog\n188142,truck\n188143,frog\n188144,cat\n188145,truck\n188146,dog\n188147,bird\n188148,cat\n188149,airplane\n188150,cat\n188151,deer\n188152,horse\n188153,frog\n188154,cat\n188155,ship\n188156,horse\n188157,frog\n188158,dog\n188159,automobile\n188160,ship\n188161,airplane\n188162,dog\n188163,truck\n188164,frog\n188165,deer\n188166,horse\n188167,truck\n188168,ship\n188169,automobile\n188170,frog\n188171,ship\n188172,truck\n188173,deer\n188174,bird\n188175,ship\n188176,horse\n188177,dog\n188178,ship\n188179,bird\n188180,airplane\n188181,horse\n188182,horse\n188183,cat\n188184,cat\n188185,horse\n188186,airplane\n188187,deer\n188188,truck\n188189,deer\n188190,cat\n188191,frog\n188192,bird\n188193,bird\n188194,frog\n188195,automobile\n188196,deer\n188197,dog\n188198,cat\n188199,deer\n188200,ship\n188201,deer\n188202,ship\n188203,dog\n188204,deer\n188205,deer\n188206,cat\n188207,cat\n188208,deer\n188209,automobile\n188210,frog\n188211,airplane\n188212,bird\n188213,cat\n188214,dog\n188215,frog\n188216,horse\n188217,airplane\n188218,ship\n188219,cat\n188220,dog\n188221,bird\n188222,bird\n188223,bird\n188224,truck\n188225,frog\n188226,dog\n188227,cat\n188228,frog\n188229,horse\n188230,dog\n188231,cat\n188232,deer\n188233,frog\n188234,cat\n188235,airplane\n188236,automobile\n188237,horse\n188238,bird\n188239,truck\n188240,frog\n188241,automobile\n188242,automobile\n188243,truck\n188244,automobile\n188245,deer\n188246,deer\n188247,automobile\n188248,dog\n188249,frog\n188250,cat\n188251,cat\n188252,airplane\n188253,deer\n188254,dog\n188255,cat\n188256,automobile\n188257,horse\n188258,deer\n188259,cat\n188260,airplane\n188261,deer\n188262,deer\n188263,dog\n188264,horse\n188265,deer\n188266,airplane\n188267,bird\n188268,automobile\n188269,dog\n188270,dog\n188271,deer\n188272,bird\n188273,horse\n188274,airplane\n188275,frog\n188276,frog\n188277,airplane\n188278,truck\n188279,horse\n188280,ship\n188281,bird\n188282,horse\n188283,truck\n188284,cat\n188285,ship\n188286,horse\n188287,cat\n188288,truck\n188289,bird\n188290,dog\n188291,bird\n188292,frog\n188293,bird\n188294,frog\n188295,ship\n188296,frog\n188297,deer\n188298,frog\n188299,dog\n188300,ship\n188301,frog\n188302,dog\n188303,deer\n188304,dog\n188305,dog\n188306,bird\n188307,ship\n188308,bird\n188309,ship\n188310,horse\n188311,cat\n188312,cat\n188313,automobile\n188314,cat\n188315,truck\n188316,horse\n188317,truck\n188318,cat\n188319,airplane\n188320,frog\n188321,frog\n188322,deer\n188323,ship\n188324,airplane\n188325,horse\n188326,deer\n188327,dog\n188328,automobile\n188329,dog\n188330,deer\n188331,truck\n188332,cat\n188333,frog\n188334,dog\n188335,horse\n188336,frog\n188337,airplane\n188338,airplane\n188339,cat\n188340,bird\n188341,dog\n188342,deer\n188343,frog\n188344,truck\n188345,frog\n188346,truck\n188347,truck\n188348,truck\n188349,bird\n188350,bird\n188351,airplane\n188352,dog\n188353,automobile\n188354,ship\n188355,deer\n188356,bird\n188357,deer\n188358,truck\n188359,deer\n188360,horse\n188361,ship\n188362,dog\n188363,horse\n188364,dog\n188365,deer\n188366,automobile\n188367,dog\n188368,dog\n188369,bird\n188370,frog\n188371,dog\n188372,automobile\n188373,truck\n188374,deer\n188375,deer\n188376,automobile\n188377,dog\n188378,horse\n188379,truck\n188380,cat\n188381,deer\n188382,deer\n188383,horse\n188384,deer\n188385,frog\n188386,bird\n188387,horse\n188388,dog\n188389,frog\n188390,truck\n188391,ship\n188392,ship\n188393,horse\n188394,frog\n188395,airplane\n188396,truck\n188397,deer\n188398,truck\n188399,frog\n188400,deer\n188401,dog\n188402,ship\n188403,cat\n188404,ship\n188405,truck\n188406,cat\n188407,ship\n188408,automobile\n188409,deer\n188410,cat\n188411,automobile\n188412,horse\n188413,horse\n188414,frog\n188415,automobile\n188416,dog\n188417,cat\n188418,bird\n188419,frog\n188420,deer\n188421,frog\n188422,dog\n188423,cat\n188424,deer\n188425,ship\n188426,frog\n188427,airplane\n188428,dog\n188429,bird\n188430,airplane\n188431,truck\n188432,frog\n188433,frog\n188434,deer\n188435,ship\n188436,dog\n188437,cat\n188438,bird\n188439,horse\n188440,bird\n188441,cat\n188442,dog\n188443,frog\n188444,frog\n188445,frog\n188446,dog\n188447,deer\n188448,ship\n188449,horse\n188450,cat\n188451,truck\n188452,bird\n188453,bird\n188454,horse\n188455,automobile\n188456,deer\n188457,deer\n188458,dog\n188459,cat\n188460,ship\n188461,airplane\n188462,automobile\n188463,cat\n188464,truck\n188465,cat\n188466,dog\n188467,automobile\n188468,frog\n188469,frog\n188470,horse\n188471,deer\n188472,truck\n188473,bird\n188474,frog\n188475,truck\n188476,truck\n188477,automobile\n188478,truck\n188479,horse\n188480,truck\n188481,cat\n188482,truck\n188483,cat\n188484,ship\n188485,horse\n188486,truck\n188487,deer\n188488,truck\n188489,dog\n188490,deer\n188491,dog\n188492,ship\n188493,horse\n188494,frog\n188495,airplane\n188496,dog\n188497,bird\n188498,horse\n188499,truck\n188500,frog\n188501,ship\n188502,dog\n188503,dog\n188504,truck\n188505,deer\n188506,deer\n188507,truck\n188508,deer\n188509,airplane\n188510,deer\n188511,deer\n188512,bird\n188513,automobile\n188514,cat\n188515,truck\n188516,bird\n188517,airplane\n188518,automobile\n188519,deer\n188520,frog\n188521,horse\n188522,deer\n188523,deer\n188524,cat\n188525,truck\n188526,truck\n188527,cat\n188528,bird\n188529,frog\n188530,deer\n188531,automobile\n188532,truck\n188533,dog\n188534,dog\n188535,deer\n188536,airplane\n188537,frog\n188538,frog\n188539,cat\n188540,cat\n188541,ship\n188542,truck\n188543,airplane\n188544,automobile\n188545,horse\n188546,horse\n188547,deer\n188548,bird\n188549,deer\n188550,horse\n188551,frog\n188552,automobile\n188553,deer\n188554,deer\n188555,automobile\n188556,cat\n188557,frog\n188558,deer\n188559,airplane\n188560,bird\n188561,dog\n188562,airplane\n188563,ship\n188564,deer\n188565,airplane\n188566,deer\n188567,airplane\n188568,truck\n188569,frog\n188570,airplane\n188571,frog\n188572,horse\n188573,cat\n188574,horse\n188575,dog\n188576,deer\n188577,frog\n188578,horse\n188579,frog\n188580,automobile\n188581,truck\n188582,horse\n188583,truck\n188584,dog\n188585,bird\n188586,deer\n188587,frog\n188588,frog\n188589,bird\n188590,dog\n188591,airplane\n188592,dog\n188593,ship\n188594,truck\n188595,frog\n188596,automobile\n188597,frog\n188598,cat\n188599,cat\n188600,automobile\n188601,deer\n188602,ship\n188603,automobile\n188604,frog\n188605,cat\n188606,airplane\n188607,horse\n188608,ship\n188609,dog\n188610,frog\n188611,deer\n188612,deer\n188613,horse\n188614,deer\n188615,truck\n188616,ship\n188617,bird\n188618,ship\n188619,horse\n188620,airplane\n188621,dog\n188622,ship\n188623,deer\n188624,deer\n188625,bird\n188626,dog\n188627,bird\n188628,horse\n188629,frog\n188630,dog\n188631,cat\n188632,ship\n188633,truck\n188634,automobile\n188635,dog\n188636,truck\n188637,automobile\n188638,airplane\n188639,frog\n188640,airplane\n188641,bird\n188642,truck\n188643,deer\n188644,truck\n188645,dog\n188646,bird\n188647,truck\n188648,airplane\n188649,automobile\n188650,cat\n188651,horse\n188652,automobile\n188653,dog\n188654,truck\n188655,frog\n188656,deer\n188657,cat\n188658,cat\n188659,cat\n188660,cat\n188661,deer\n188662,airplane\n188663,truck\n188664,frog\n188665,dog\n188666,dog\n188667,airplane\n188668,truck\n188669,deer\n188670,deer\n188671,deer\n188672,automobile\n188673,automobile\n188674,bird\n188675,ship\n188676,horse\n188677,ship\n188678,cat\n188679,automobile\n188680,ship\n188681,deer\n188682,deer\n188683,truck\n188684,bird\n188685,truck\n188686,truck\n188687,cat\n188688,horse\n188689,bird\n188690,truck\n188691,frog\n188692,airplane\n188693,horse\n188694,ship\n188695,dog\n188696,bird\n188697,horse\n188698,frog\n188699,bird\n188700,horse\n188701,horse\n188702,airplane\n188703,bird\n188704,ship\n188705,ship\n188706,frog\n188707,ship\n188708,ship\n188709,automobile\n188710,dog\n188711,truck\n188712,deer\n188713,bird\n188714,frog\n188715,frog\n188716,horse\n188717,airplane\n188718,ship\n188719,dog\n188720,dog\n188721,dog\n188722,bird\n188723,airplane\n188724,truck\n188725,automobile\n188726,cat\n188727,cat\n188728,automobile\n188729,dog\n188730,truck\n188731,truck\n188732,frog\n188733,cat\n188734,deer\n188735,dog\n188736,horse\n188737,ship\n188738,airplane\n188739,horse\n188740,dog\n188741,frog\n188742,deer\n188743,deer\n188744,cat\n188745,dog\n188746,truck\n188747,deer\n188748,ship\n188749,deer\n188750,airplane\n188751,horse\n188752,horse\n188753,automobile\n188754,truck\n188755,horse\n188756,ship\n188757,airplane\n188758,truck\n188759,airplane\n188760,ship\n188761,bird\n188762,automobile\n188763,cat\n188764,cat\n188765,truck\n188766,deer\n188767,deer\n188768,automobile\n188769,truck\n188770,airplane\n188771,deer\n188772,horse\n188773,automobile\n188774,horse\n188775,dog\n188776,deer\n188777,airplane\n188778,airplane\n188779,frog\n188780,deer\n188781,truck\n188782,deer\n188783,bird\n188784,automobile\n188785,frog\n188786,horse\n188787,frog\n188788,horse\n188789,airplane\n188790,cat\n188791,frog\n188792,automobile\n188793,truck\n188794,deer\n188795,airplane\n188796,truck\n188797,frog\n188798,truck\n188799,horse\n188800,horse\n188801,horse\n188802,bird\n188803,frog\n188804,cat\n188805,dog\n188806,dog\n188807,truck\n188808,cat\n188809,deer\n188810,dog\n188811,airplane\n188812,dog\n188813,bird\n188814,deer\n188815,cat\n188816,horse\n188817,horse\n188818,airplane\n188819,airplane\n188820,deer\n188821,frog\n188822,deer\n188823,bird\n188824,dog\n188825,deer\n188826,cat\n188827,deer\n188828,deer\n188829,bird\n188830,automobile\n188831,frog\n188832,ship\n188833,bird\n188834,truck\n188835,cat\n188836,cat\n188837,deer\n188838,frog\n188839,ship\n188840,ship\n188841,frog\n188842,horse\n188843,horse\n188844,airplane\n188845,cat\n188846,dog\n188847,dog\n188848,airplane\n188849,horse\n188850,cat\n188851,truck\n188852,dog\n188853,frog\n188854,cat\n188855,truck\n188856,deer\n188857,airplane\n188858,automobile\n188859,truck\n188860,cat\n188861,cat\n188862,bird\n188863,truck\n188864,bird\n188865,dog\n188866,dog\n188867,cat\n188868,truck\n188869,ship\n188870,frog\n188871,automobile\n188872,truck\n188873,dog\n188874,deer\n188875,airplane\n188876,cat\n188877,truck\n188878,bird\n188879,dog\n188880,deer\n188881,ship\n188882,airplane\n188883,deer\n188884,deer\n188885,horse\n188886,dog\n188887,frog\n188888,deer\n188889,cat\n188890,cat\n188891,ship\n188892,deer\n188893,bird\n188894,truck\n188895,deer\n188896,airplane\n188897,deer\n188898,deer\n188899,frog\n188900,truck\n188901,dog\n188902,deer\n188903,cat\n188904,horse\n188905,truck\n188906,truck\n188907,frog\n188908,ship\n188909,dog\n188910,horse\n188911,deer\n188912,truck\n188913,ship\n188914,dog\n188915,deer\n188916,deer\n188917,automobile\n188918,automobile\n188919,dog\n188920,bird\n188921,ship\n188922,airplane\n188923,frog\n188924,horse\n188925,cat\n188926,truck\n188927,bird\n188928,truck\n188929,horse\n188930,frog\n188931,truck\n188932,dog\n188933,bird\n188934,dog\n188935,bird\n188936,frog\n188937,horse\n188938,dog\n188939,cat\n188940,truck\n188941,bird\n188942,horse\n188943,truck\n188944,deer\n188945,truck\n188946,deer\n188947,horse\n188948,airplane\n188949,bird\n188950,deer\n188951,horse\n188952,deer\n188953,cat\n188954,truck\n188955,deer\n188956,ship\n188957,truck\n188958,dog\n188959,deer\n188960,truck\n188961,cat\n188962,cat\n188963,bird\n188964,automobile\n188965,horse\n188966,automobile\n188967,cat\n188968,bird\n188969,horse\n188970,horse\n188971,cat\n188972,frog\n188973,ship\n188974,horse\n188975,airplane\n188976,bird\n188977,automobile\n188978,deer\n188979,truck\n188980,frog\n188981,airplane\n188982,truck\n188983,ship\n188984,airplane\n188985,dog\n188986,deer\n188987,ship\n188988,ship\n188989,frog\n188990,ship\n188991,horse\n188992,ship\n188993,dog\n188994,automobile\n188995,deer\n188996,dog\n188997,dog\n188998,automobile\n188999,dog\n189000,deer\n189001,cat\n189002,truck\n189003,truck\n189004,deer\n189005,bird\n189006,horse\n189007,cat\n189008,bird\n189009,deer\n189010,truck\n189011,dog\n189012,ship\n189013,deer\n189014,deer\n189015,ship\n189016,frog\n189017,cat\n189018,dog\n189019,dog\n189020,automobile\n189021,cat\n189022,cat\n189023,cat\n189024,ship\n189025,automobile\n189026,horse\n189027,airplane\n189028,ship\n189029,deer\n189030,automobile\n189031,truck\n189032,bird\n189033,deer\n189034,cat\n189035,airplane\n189036,dog\n189037,ship\n189038,horse\n189039,deer\n189040,truck\n189041,airplane\n189042,automobile\n189043,automobile\n189044,truck\n189045,dog\n189046,bird\n189047,deer\n189048,frog\n189049,truck\n189050,cat\n189051,cat\n189052,deer\n189053,cat\n189054,dog\n189055,ship\n189056,truck\n189057,ship\n189058,deer\n189059,dog\n189060,cat\n189061,frog\n189062,automobile\n189063,cat\n189064,deer\n189065,cat\n189066,truck\n189067,automobile\n189068,horse\n189069,frog\n189070,dog\n189071,truck\n189072,frog\n189073,airplane\n189074,dog\n189075,horse\n189076,ship\n189077,airplane\n189078,horse\n189079,deer\n189080,frog\n189081,airplane\n189082,automobile\n189083,horse\n189084,truck\n189085,cat\n189086,airplane\n189087,horse\n189088,truck\n189089,frog\n189090,deer\n189091,deer\n189092,dog\n189093,horse\n189094,dog\n189095,horse\n189096,bird\n189097,airplane\n189098,bird\n189099,airplane\n189100,truck\n189101,deer\n189102,airplane\n189103,horse\n189104,truck\n189105,horse\n189106,cat\n189107,bird\n189108,cat\n189109,bird\n189110,cat\n189111,horse\n189112,frog\n189113,cat\n189114,cat\n189115,deer\n189116,dog\n189117,bird\n189118,airplane\n189119,bird\n189120,bird\n189121,cat\n189122,dog\n189123,truck\n189124,truck\n189125,cat\n189126,cat\n189127,airplane\n189128,truck\n189129,bird\n189130,bird\n189131,deer\n189132,dog\n189133,deer\n189134,horse\n189135,cat\n189136,automobile\n189137,frog\n189138,horse\n189139,cat\n189140,ship\n189141,truck\n189142,truck\n189143,dog\n189144,bird\n189145,ship\n189146,ship\n189147,airplane\n189148,truck\n189149,deer\n189150,dog\n189151,deer\n189152,automobile\n189153,horse\n189154,bird\n189155,airplane\n189156,frog\n189157,cat\n189158,dog\n189159,deer\n189160,airplane\n189161,dog\n189162,frog\n189163,automobile\n189164,horse\n189165,frog\n189166,horse\n189167,bird\n189168,airplane\n189169,bird\n189170,truck\n189171,cat\n189172,ship\n189173,ship\n189174,truck\n189175,truck\n189176,cat\n189177,frog\n189178,automobile\n189179,dog\n189180,horse\n189181,automobile\n189182,airplane\n189183,deer\n189184,frog\n189185,frog\n189186,airplane\n189187,airplane\n189188,frog\n189189,truck\n189190,horse\n189191,truck\n189192,horse\n189193,horse\n189194,dog\n189195,automobile\n189196,cat\n189197,cat\n189198,cat\n189199,deer\n189200,horse\n189201,bird\n189202,deer\n189203,dog\n189204,horse\n189205,automobile\n189206,bird\n189207,dog\n189208,horse\n189209,airplane\n189210,horse\n189211,deer\n189212,deer\n189213,truck\n189214,cat\n189215,horse\n189216,airplane\n189217,ship\n189218,cat\n189219,airplane\n189220,bird\n189221,bird\n189222,cat\n189223,dog\n189224,bird\n189225,automobile\n189226,dog\n189227,deer\n189228,deer\n189229,dog\n189230,dog\n189231,cat\n189232,frog\n189233,cat\n189234,cat\n189235,deer\n189236,truck\n189237,cat\n189238,ship\n189239,frog\n189240,ship\n189241,frog\n189242,frog\n189243,automobile\n189244,deer\n189245,horse\n189246,bird\n189247,cat\n189248,airplane\n189249,frog\n189250,deer\n189251,automobile\n189252,dog\n189253,ship\n189254,cat\n189255,cat\n189256,dog\n189257,bird\n189258,truck\n189259,dog\n189260,frog\n189261,frog\n189262,cat\n189263,airplane\n189264,truck\n189265,deer\n189266,automobile\n189267,truck\n189268,ship\n189269,cat\n189270,truck\n189271,deer\n189272,bird\n189273,cat\n189274,horse\n189275,horse\n189276,cat\n189277,dog\n189278,dog\n189279,horse\n189280,deer\n189281,cat\n189282,airplane\n189283,deer\n189284,dog\n189285,cat\n189286,deer\n189287,deer\n189288,deer\n189289,deer\n189290,frog\n189291,deer\n189292,horse\n189293,automobile\n189294,horse\n189295,ship\n189296,cat\n189297,ship\n189298,truck\n189299,ship\n189300,dog\n189301,truck\n189302,bird\n189303,airplane\n189304,cat\n189305,airplane\n189306,cat\n189307,horse\n189308,deer\n189309,deer\n189310,automobile\n189311,cat\n189312,cat\n189313,deer\n189314,deer\n189315,frog\n189316,deer\n189317,truck\n189318,cat\n189319,cat\n189320,airplane\n189321,cat\n189322,cat\n189323,frog\n189324,bird\n189325,bird\n189326,dog\n189327,deer\n189328,truck\n189329,frog\n189330,ship\n189331,airplane\n189332,deer\n189333,ship\n189334,dog\n189335,bird\n189336,truck\n189337,horse\n189338,ship\n189339,frog\n189340,deer\n189341,cat\n189342,automobile\n189343,truck\n189344,truck\n189345,truck\n189346,cat\n189347,frog\n189348,horse\n189349,deer\n189350,horse\n189351,airplane\n189352,horse\n189353,truck\n189354,automobile\n189355,dog\n189356,truck\n189357,frog\n189358,horse\n189359,frog\n189360,automobile\n189361,automobile\n189362,frog\n189363,deer\n189364,dog\n189365,airplane\n189366,horse\n189367,automobile\n189368,cat\n189369,automobile\n189370,horse\n189371,automobile\n189372,frog\n189373,automobile\n189374,deer\n189375,airplane\n189376,ship\n189377,airplane\n189378,bird\n189379,airplane\n189380,airplane\n189381,frog\n189382,truck\n189383,airplane\n189384,frog\n189385,cat\n189386,deer\n189387,bird\n189388,cat\n189389,truck\n189390,truck\n189391,bird\n189392,airplane\n189393,airplane\n189394,frog\n189395,bird\n189396,automobile\n189397,bird\n189398,bird\n189399,frog\n189400,cat\n189401,bird\n189402,deer\n189403,frog\n189404,cat\n189405,deer\n189406,truck\n189407,frog\n189408,cat\n189409,cat\n189410,ship\n189411,bird\n189412,horse\n189413,bird\n189414,dog\n189415,airplane\n189416,automobile\n189417,truck\n189418,truck\n189419,cat\n189420,deer\n189421,cat\n189422,cat\n189423,airplane\n189424,frog\n189425,cat\n189426,airplane\n189427,deer\n189428,frog\n189429,ship\n189430,airplane\n189431,bird\n189432,automobile\n189433,cat\n189434,cat\n189435,truck\n189436,deer\n189437,bird\n189438,automobile\n189439,ship\n189440,ship\n189441,bird\n189442,airplane\n189443,cat\n189444,ship\n189445,deer\n189446,frog\n189447,deer\n189448,cat\n189449,bird\n189450,frog\n189451,horse\n189452,truck\n189453,deer\n189454,horse\n189455,cat\n189456,frog\n189457,frog\n189458,ship\n189459,frog\n189460,deer\n189461,cat\n189462,frog\n189463,truck\n189464,airplane\n189465,deer\n189466,dog\n189467,automobile\n189468,airplane\n189469,ship\n189470,ship\n189471,horse\n189472,airplane\n189473,frog\n189474,horse\n189475,deer\n189476,automobile\n189477,frog\n189478,frog\n189479,cat\n189480,truck\n189481,truck\n189482,truck\n189483,airplane\n189484,cat\n189485,cat\n189486,frog\n189487,airplane\n189488,ship\n189489,cat\n189490,dog\n189491,airplane\n189492,airplane\n189493,truck\n189494,deer\n189495,airplane\n189496,cat\n189497,deer\n189498,bird\n189499,deer\n189500,automobile\n189501,airplane\n189502,dog\n189503,deer\n189504,airplane\n189505,deer\n189506,horse\n189507,ship\n189508,bird\n189509,frog\n189510,dog\n189511,deer\n189512,ship\n189513,ship\n189514,bird\n189515,deer\n189516,bird\n189517,horse\n189518,deer\n189519,bird\n189520,ship\n189521,airplane\n189522,deer\n189523,horse\n189524,horse\n189525,automobile\n189526,frog\n189527,frog\n189528,automobile\n189529,cat\n189530,cat\n189531,automobile\n189532,dog\n189533,bird\n189534,bird\n189535,deer\n189536,cat\n189537,dog\n189538,ship\n189539,horse\n189540,cat\n189541,dog\n189542,cat\n189543,cat\n189544,dog\n189545,deer\n189546,deer\n189547,cat\n189548,frog\n189549,dog\n189550,cat\n189551,automobile\n189552,bird\n189553,cat\n189554,bird\n189555,automobile\n189556,truck\n189557,automobile\n189558,ship\n189559,frog\n189560,horse\n189561,airplane\n189562,ship\n189563,deer\n189564,dog\n189565,frog\n189566,deer\n189567,truck\n189568,dog\n189569,bird\n189570,frog\n189571,deer\n189572,frog\n189573,horse\n189574,cat\n189575,deer\n189576,truck\n189577,bird\n189578,dog\n189579,truck\n189580,airplane\n189581,deer\n189582,truck\n189583,truck\n189584,truck\n189585,dog\n189586,bird\n189587,deer\n189588,bird\n189589,truck\n189590,bird\n189591,cat\n189592,deer\n189593,frog\n189594,frog\n189595,cat\n189596,horse\n189597,horse\n189598,automobile\n189599,cat\n189600,airplane\n189601,deer\n189602,truck\n189603,truck\n189604,cat\n189605,deer\n189606,automobile\n189607,horse\n189608,cat\n189609,horse\n189610,bird\n189611,airplane\n189612,bird\n189613,automobile\n189614,airplane\n189615,horse\n189616,dog\n189617,bird\n189618,deer\n189619,cat\n189620,horse\n189621,ship\n189622,bird\n189623,deer\n189624,horse\n189625,ship\n189626,deer\n189627,automobile\n189628,deer\n189629,horse\n189630,dog\n189631,frog\n189632,ship\n189633,deer\n189634,dog\n189635,cat\n189636,dog\n189637,dog\n189638,horse\n189639,frog\n189640,bird\n189641,automobile\n189642,truck\n189643,bird\n189644,automobile\n189645,horse\n189646,automobile\n189647,cat\n189648,ship\n189649,automobile\n189650,automobile\n189651,truck\n189652,automobile\n189653,deer\n189654,bird\n189655,truck\n189656,airplane\n189657,bird\n189658,automobile\n189659,horse\n189660,airplane\n189661,truck\n189662,bird\n189663,ship\n189664,truck\n189665,airplane\n189666,deer\n189667,dog\n189668,automobile\n189669,frog\n189670,truck\n189671,bird\n189672,bird\n189673,dog\n189674,deer\n189675,truck\n189676,automobile\n189677,bird\n189678,cat\n189679,cat\n189680,cat\n189681,frog\n189682,truck\n189683,cat\n189684,deer\n189685,automobile\n189686,horse\n189687,airplane\n189688,bird\n189689,cat\n189690,cat\n189691,airplane\n189692,dog\n189693,bird\n189694,cat\n189695,dog\n189696,airplane\n189697,truck\n189698,deer\n189699,deer\n189700,truck\n189701,cat\n189702,deer\n189703,cat\n189704,cat\n189705,deer\n189706,deer\n189707,truck\n189708,bird\n189709,frog\n189710,cat\n189711,truck\n189712,bird\n189713,airplane\n189714,airplane\n189715,truck\n189716,frog\n189717,airplane\n189718,deer\n189719,deer\n189720,frog\n189721,ship\n189722,bird\n189723,deer\n189724,ship\n189725,horse\n189726,deer\n189727,truck\n189728,truck\n189729,cat\n189730,horse\n189731,deer\n189732,airplane\n189733,bird\n189734,airplane\n189735,automobile\n189736,deer\n189737,frog\n189738,truck\n189739,ship\n189740,dog\n189741,cat\n189742,cat\n189743,bird\n189744,cat\n189745,truck\n189746,frog\n189747,deer\n189748,bird\n189749,dog\n189750,frog\n189751,deer\n189752,deer\n189753,cat\n189754,bird\n189755,cat\n189756,ship\n189757,dog\n189758,automobile\n189759,deer\n189760,truck\n189761,automobile\n189762,frog\n189763,automobile\n189764,frog\n189765,automobile\n189766,dog\n189767,deer\n189768,ship\n189769,dog\n189770,airplane\n189771,horse\n189772,automobile\n189773,airplane\n189774,frog\n189775,frog\n189776,airplane\n189777,airplane\n189778,bird\n189779,frog\n189780,truck\n189781,cat\n189782,truck\n189783,dog\n189784,truck\n189785,frog\n189786,dog\n189787,frog\n189788,automobile\n189789,frog\n189790,horse\n189791,automobile\n189792,automobile\n189793,frog\n189794,horse\n189795,bird\n189796,cat\n189797,automobile\n189798,frog\n189799,bird\n189800,automobile\n189801,frog\n189802,bird\n189803,horse\n189804,automobile\n189805,dog\n189806,bird\n189807,truck\n189808,deer\n189809,bird\n189810,automobile\n189811,cat\n189812,airplane\n189813,airplane\n189814,deer\n189815,bird\n189816,horse\n189817,frog\n189818,horse\n189819,bird\n189820,cat\n189821,ship\n189822,frog\n189823,deer\n189824,frog\n189825,truck\n189826,truck\n189827,truck\n189828,deer\n189829,dog\n189830,deer\n189831,bird\n189832,airplane\n189833,cat\n189834,deer\n189835,automobile\n189836,deer\n189837,dog\n189838,dog\n189839,cat\n189840,cat\n189841,bird\n189842,deer\n189843,deer\n189844,dog\n189845,automobile\n189846,deer\n189847,horse\n189848,truck\n189849,deer\n189850,ship\n189851,frog\n189852,dog\n189853,deer\n189854,bird\n189855,cat\n189856,frog\n189857,automobile\n189858,airplane\n189859,automobile\n189860,automobile\n189861,bird\n189862,dog\n189863,deer\n189864,dog\n189865,frog\n189866,frog\n189867,bird\n189868,ship\n189869,deer\n189870,deer\n189871,deer\n189872,horse\n189873,deer\n189874,dog\n189875,horse\n189876,deer\n189877,cat\n189878,airplane\n189879,truck\n189880,truck\n189881,cat\n189882,cat\n189883,cat\n189884,airplane\n189885,ship\n189886,airplane\n189887,automobile\n189888,ship\n189889,frog\n189890,truck\n189891,cat\n189892,truck\n189893,automobile\n189894,bird\n189895,horse\n189896,deer\n189897,horse\n189898,dog\n189899,deer\n189900,dog\n189901,frog\n189902,deer\n189903,cat\n189904,frog\n189905,bird\n189906,cat\n189907,horse\n189908,ship\n189909,deer\n189910,frog\n189911,frog\n189912,bird\n189913,dog\n189914,dog\n189915,cat\n189916,bird\n189917,frog\n189918,cat\n189919,ship\n189920,dog\n189921,horse\n189922,ship\n189923,frog\n189924,airplane\n189925,cat\n189926,deer\n189927,deer\n189928,bird\n189929,cat\n189930,dog\n189931,airplane\n189932,frog\n189933,truck\n189934,dog\n189935,cat\n189936,cat\n189937,truck\n189938,ship\n189939,deer\n189940,truck\n189941,frog\n189942,frog\n189943,frog\n189944,truck\n189945,ship\n189946,dog\n189947,horse\n189948,deer\n189949,truck\n189950,truck\n189951,frog\n189952,dog\n189953,deer\n189954,frog\n189955,frog\n189956,truck\n189957,deer\n189958,ship\n189959,ship\n189960,frog\n189961,airplane\n189962,deer\n189963,frog\n189964,truck\n189965,deer\n189966,frog\n189967,automobile\n189968,horse\n189969,horse\n189970,airplane\n189971,cat\n189972,automobile\n189973,horse\n189974,frog\n189975,horse\n189976,cat\n189977,truck\n189978,frog\n189979,bird\n189980,deer\n189981,cat\n189982,airplane\n189983,dog\n189984,horse\n189985,automobile\n189986,frog\n189987,airplane\n189988,airplane\n189989,dog\n189990,deer\n189991,truck\n189992,dog\n189993,ship\n189994,truck\n189995,automobile\n189996,dog\n189997,airplane\n189998,ship\n189999,truck\n190000,deer\n190001,automobile\n190002,dog\n190003,cat\n190004,cat\n190005,horse\n190006,frog\n190007,airplane\n190008,automobile\n190009,deer\n190010,automobile\n190011,cat\n190012,airplane\n190013,cat\n190014,airplane\n190015,bird\n190016,frog\n190017,truck\n190018,ship\n190019,ship\n190020,ship\n190021,frog\n190022,airplane\n190023,dog\n190024,dog\n190025,dog\n190026,dog\n190027,cat\n190028,deer\n190029,bird\n190030,truck\n190031,ship\n190032,ship\n190033,frog\n190034,airplane\n190035,bird\n190036,automobile\n190037,deer\n190038,frog\n190039,horse\n190040,airplane\n190041,truck\n190042,automobile\n190043,dog\n190044,frog\n190045,frog\n190046,horse\n190047,truck\n190048,cat\n190049,truck\n190050,frog\n190051,frog\n190052,cat\n190053,airplane\n190054,ship\n190055,dog\n190056,deer\n190057,horse\n190058,frog\n190059,dog\n190060,ship\n190061,cat\n190062,ship\n190063,automobile\n190064,deer\n190065,truck\n190066,airplane\n190067,horse\n190068,automobile\n190069,automobile\n190070,frog\n190071,airplane\n190072,ship\n190073,cat\n190074,airplane\n190075,deer\n190076,truck\n190077,bird\n190078,frog\n190079,frog\n190080,deer\n190081,cat\n190082,dog\n190083,dog\n190084,frog\n190085,dog\n190086,frog\n190087,cat\n190088,automobile\n190089,cat\n190090,frog\n190091,deer\n190092,horse\n190093,airplane\n190094,horse\n190095,dog\n190096,dog\n190097,airplane\n190098,frog\n190099,horse\n190100,cat\n190101,bird\n190102,deer\n190103,airplane\n190104,horse\n190105,deer\n190106,airplane\n190107,airplane\n190108,airplane\n190109,deer\n190110,frog\n190111,truck\n190112,cat\n190113,frog\n190114,deer\n190115,dog\n190116,airplane\n190117,automobile\n190118,cat\n190119,cat\n190120,truck\n190121,dog\n190122,truck\n190123,airplane\n190124,bird\n190125,cat\n190126,cat\n190127,dog\n190128,bird\n190129,frog\n190130,ship\n190131,deer\n190132,bird\n190133,bird\n190134,dog\n190135,cat\n190136,cat\n190137,horse\n190138,frog\n190139,bird\n190140,horse\n190141,dog\n190142,truck\n190143,airplane\n190144,cat\n190145,deer\n190146,dog\n190147,ship\n190148,horse\n190149,cat\n190150,ship\n190151,cat\n190152,cat\n190153,frog\n190154,deer\n190155,frog\n190156,automobile\n190157,truck\n190158,automobile\n190159,horse\n190160,truck\n190161,airplane\n190162,horse\n190163,cat\n190164,horse\n190165,dog\n190166,automobile\n190167,deer\n190168,cat\n190169,truck\n190170,ship\n190171,ship\n190172,deer\n190173,cat\n190174,dog\n190175,cat\n190176,ship\n190177,truck\n190178,ship\n190179,airplane\n190180,truck\n190181,dog\n190182,bird\n190183,bird\n190184,ship\n190185,automobile\n190186,airplane\n190187,bird\n190188,bird\n190189,cat\n190190,deer\n190191,ship\n190192,frog\n190193,bird\n190194,cat\n190195,deer\n190196,cat\n190197,airplane\n190198,deer\n190199,ship\n190200,cat\n190201,horse\n190202,bird\n190203,truck\n190204,deer\n190205,frog\n190206,ship\n190207,cat\n190208,airplane\n190209,frog\n190210,horse\n190211,airplane\n190212,truck\n190213,cat\n190214,truck\n190215,deer\n190216,horse\n190217,dog\n190218,frog\n190219,automobile\n190220,dog\n190221,horse\n190222,bird\n190223,dog\n190224,truck\n190225,automobile\n190226,airplane\n190227,truck\n190228,cat\n190229,deer\n190230,cat\n190231,deer\n190232,dog\n190233,frog\n190234,automobile\n190235,deer\n190236,horse\n190237,airplane\n190238,deer\n190239,airplane\n190240,ship\n190241,deer\n190242,automobile\n190243,airplane\n190244,bird\n190245,frog\n190246,truck\n190247,dog\n190248,bird\n190249,truck\n190250,cat\n190251,cat\n190252,airplane\n190253,ship\n190254,bird\n190255,deer\n190256,automobile\n190257,airplane\n190258,truck\n190259,bird\n190260,deer\n190261,cat\n190262,ship\n190263,airplane\n190264,ship\n190265,truck\n190266,bird\n190267,airplane\n190268,bird\n190269,airplane\n190270,dog\n190271,automobile\n190272,truck\n190273,horse\n190274,bird\n190275,bird\n190276,dog\n190277,bird\n190278,frog\n190279,deer\n190280,ship\n190281,cat\n190282,frog\n190283,cat\n190284,ship\n190285,truck\n190286,automobile\n190287,airplane\n190288,frog\n190289,cat\n190290,truck\n190291,dog\n190292,cat\n190293,airplane\n190294,cat\n190295,deer\n190296,cat\n190297,deer\n190298,deer\n190299,ship\n190300,cat\n190301,dog\n190302,frog\n190303,horse\n190304,bird\n190305,bird\n190306,bird\n190307,frog\n190308,dog\n190309,cat\n190310,dog\n190311,truck\n190312,frog\n190313,truck\n190314,airplane\n190315,cat\n190316,automobile\n190317,airplane\n190318,bird\n190319,airplane\n190320,ship\n190321,deer\n190322,deer\n190323,frog\n190324,frog\n190325,deer\n190326,deer\n190327,cat\n190328,automobile\n190329,cat\n190330,cat\n190331,cat\n190332,ship\n190333,airplane\n190334,truck\n190335,deer\n190336,airplane\n190337,deer\n190338,bird\n190339,frog\n190340,automobile\n190341,bird\n190342,frog\n190343,airplane\n190344,dog\n190345,horse\n190346,frog\n190347,cat\n190348,bird\n190349,frog\n190350,bird\n190351,dog\n190352,cat\n190353,frog\n190354,cat\n190355,horse\n190356,frog\n190357,cat\n190358,dog\n190359,airplane\n190360,frog\n190361,bird\n190362,cat\n190363,automobile\n190364,bird\n190365,cat\n190366,cat\n190367,cat\n190368,frog\n190369,frog\n190370,automobile\n190371,deer\n190372,horse\n190373,automobile\n190374,truck\n190375,automobile\n190376,cat\n190377,airplane\n190378,deer\n190379,frog\n190380,dog\n190381,automobile\n190382,bird\n190383,airplane\n190384,cat\n190385,truck\n190386,airplane\n190387,airplane\n190388,airplane\n190389,deer\n190390,horse\n190391,airplane\n190392,horse\n190393,frog\n190394,automobile\n190395,deer\n190396,horse\n190397,deer\n190398,dog\n190399,cat\n190400,cat\n190401,airplane\n190402,ship\n190403,horse\n190404,automobile\n190405,airplane\n190406,dog\n190407,bird\n190408,automobile\n190409,frog\n190410,horse\n190411,automobile\n190412,truck\n190413,airplane\n190414,deer\n190415,automobile\n190416,dog\n190417,bird\n190418,ship\n190419,airplane\n190420,frog\n190421,cat\n190422,frog\n190423,airplane\n190424,automobile\n190425,cat\n190426,deer\n190427,frog\n190428,truck\n190429,ship\n190430,dog\n190431,airplane\n190432,horse\n190433,deer\n190434,airplane\n190435,dog\n190436,truck\n190437,truck\n190438,bird\n190439,frog\n190440,cat\n190441,truck\n190442,ship\n190443,frog\n190444,frog\n190445,truck\n190446,automobile\n190447,frog\n190448,truck\n190449,horse\n190450,ship\n190451,bird\n190452,truck\n190453,deer\n190454,cat\n190455,truck\n190456,ship\n190457,ship\n190458,truck\n190459,automobile\n190460,bird\n190461,cat\n190462,airplane\n190463,horse\n190464,frog\n190465,truck\n190466,truck\n190467,truck\n190468,bird\n190469,airplane\n190470,ship\n190471,frog\n190472,cat\n190473,dog\n190474,airplane\n190475,horse\n190476,truck\n190477,truck\n190478,dog\n190479,horse\n190480,deer\n190481,dog\n190482,horse\n190483,airplane\n190484,deer\n190485,deer\n190486,cat\n190487,truck\n190488,automobile\n190489,frog\n190490,bird\n190491,deer\n190492,frog\n190493,airplane\n190494,automobile\n190495,ship\n190496,frog\n190497,ship\n190498,deer\n190499,ship\n190500,dog\n190501,dog\n190502,dog\n190503,automobile\n190504,horse\n190505,deer\n190506,truck\n190507,cat\n190508,dog\n190509,frog\n190510,automobile\n190511,automobile\n190512,bird\n190513,bird\n190514,horse\n190515,airplane\n190516,airplane\n190517,deer\n190518,truck\n190519,bird\n190520,ship\n190521,frog\n190522,horse\n190523,horse\n190524,frog\n190525,bird\n190526,cat\n190527,airplane\n190528,deer\n190529,ship\n190530,cat\n190531,dog\n190532,ship\n190533,airplane\n190534,dog\n190535,dog\n190536,truck\n190537,bird\n190538,deer\n190539,automobile\n190540,horse\n190541,automobile\n190542,cat\n190543,ship\n190544,horse\n190545,deer\n190546,dog\n190547,frog\n190548,airplane\n190549,dog\n190550,frog\n190551,horse\n190552,automobile\n190553,frog\n190554,dog\n190555,truck\n190556,cat\n190557,dog\n190558,deer\n190559,horse\n190560,horse\n190561,bird\n190562,truck\n190563,bird\n190564,cat\n190565,dog\n190566,dog\n190567,automobile\n190568,deer\n190569,truck\n190570,airplane\n190571,dog\n190572,cat\n190573,deer\n190574,deer\n190575,horse\n190576,bird\n190577,ship\n190578,frog\n190579,dog\n190580,cat\n190581,bird\n190582,automobile\n190583,truck\n190584,truck\n190585,bird\n190586,cat\n190587,dog\n190588,cat\n190589,frog\n190590,dog\n190591,truck\n190592,automobile\n190593,ship\n190594,airplane\n190595,automobile\n190596,cat\n190597,airplane\n190598,horse\n190599,ship\n190600,frog\n190601,horse\n190602,deer\n190603,frog\n190604,horse\n190605,dog\n190606,bird\n190607,cat\n190608,horse\n190609,automobile\n190610,dog\n190611,automobile\n190612,truck\n190613,frog\n190614,ship\n190615,frog\n190616,cat\n190617,bird\n190618,frog\n190619,deer\n190620,ship\n190621,horse\n190622,cat\n190623,cat\n190624,frog\n190625,frog\n190626,truck\n190627,bird\n190628,deer\n190629,automobile\n190630,dog\n190631,bird\n190632,bird\n190633,automobile\n190634,cat\n190635,ship\n190636,horse\n190637,airplane\n190638,cat\n190639,deer\n190640,cat\n190641,frog\n190642,frog\n190643,frog\n190644,dog\n190645,automobile\n190646,ship\n190647,bird\n190648,deer\n190649,cat\n190650,horse\n190651,deer\n190652,bird\n190653,dog\n190654,truck\n190655,ship\n190656,truck\n190657,deer\n190658,dog\n190659,bird\n190660,ship\n190661,airplane\n190662,frog\n190663,cat\n190664,truck\n190665,frog\n190666,horse\n190667,frog\n190668,bird\n190669,truck\n190670,cat\n190671,deer\n190672,ship\n190673,cat\n190674,cat\n190675,cat\n190676,horse\n190677,dog\n190678,frog\n190679,cat\n190680,deer\n190681,truck\n190682,automobile\n190683,truck\n190684,dog\n190685,airplane\n190686,airplane\n190687,airplane\n190688,cat\n190689,horse\n190690,horse\n190691,frog\n190692,horse\n190693,airplane\n190694,ship\n190695,automobile\n190696,airplane\n190697,truck\n190698,dog\n190699,airplane\n190700,automobile\n190701,deer\n190702,frog\n190703,dog\n190704,deer\n190705,frog\n190706,automobile\n190707,dog\n190708,deer\n190709,horse\n190710,frog\n190711,deer\n190712,deer\n190713,airplane\n190714,frog\n190715,deer\n190716,deer\n190717,frog\n190718,dog\n190719,dog\n190720,deer\n190721,automobile\n190722,frog\n190723,ship\n190724,frog\n190725,ship\n190726,dog\n190727,bird\n190728,dog\n190729,truck\n190730,deer\n190731,deer\n190732,truck\n190733,deer\n190734,ship\n190735,bird\n190736,automobile\n190737,automobile\n190738,deer\n190739,dog\n190740,horse\n190741,deer\n190742,ship\n190743,ship\n190744,cat\n190745,airplane\n190746,horse\n190747,horse\n190748,truck\n190749,cat\n190750,frog\n190751,ship\n190752,horse\n190753,horse\n190754,deer\n190755,cat\n190756,frog\n190757,bird\n190758,bird\n190759,frog\n190760,truck\n190761,automobile\n190762,dog\n190763,dog\n190764,dog\n190765,truck\n190766,airplane\n190767,frog\n190768,frog\n190769,airplane\n190770,truck\n190771,dog\n190772,deer\n190773,airplane\n190774,frog\n190775,ship\n190776,deer\n190777,airplane\n190778,cat\n190779,deer\n190780,automobile\n190781,truck\n190782,ship\n190783,ship\n190784,automobile\n190785,airplane\n190786,cat\n190787,airplane\n190788,bird\n190789,bird\n190790,dog\n190791,dog\n190792,ship\n190793,truck\n190794,deer\n190795,automobile\n190796,airplane\n190797,horse\n190798,ship\n190799,cat\n190800,truck\n190801,airplane\n190802,airplane\n190803,frog\n190804,frog\n190805,deer\n190806,ship\n190807,horse\n190808,dog\n190809,bird\n190810,deer\n190811,airplane\n190812,dog\n190813,automobile\n190814,automobile\n190815,dog\n190816,frog\n190817,bird\n190818,dog\n190819,dog\n190820,dog\n190821,bird\n190822,automobile\n190823,bird\n190824,airplane\n190825,horse\n190826,dog\n190827,automobile\n190828,bird\n190829,bird\n190830,frog\n190831,deer\n190832,ship\n190833,frog\n190834,airplane\n190835,automobile\n190836,dog\n190837,airplane\n190838,truck\n190839,cat\n190840,cat\n190841,airplane\n190842,automobile\n190843,truck\n190844,dog\n190845,horse\n190846,dog\n190847,cat\n190848,airplane\n190849,dog\n190850,frog\n190851,ship\n190852,horse\n190853,frog\n190854,truck\n190855,frog\n190856,horse\n190857,automobile\n190858,bird\n190859,cat\n190860,frog\n190861,ship\n190862,frog\n190863,horse\n190864,cat\n190865,horse\n190866,deer\n190867,truck\n190868,airplane\n190869,deer\n190870,horse\n190871,deer\n190872,deer\n190873,automobile\n190874,dog\n190875,automobile\n190876,automobile\n190877,cat\n190878,deer\n190879,cat\n190880,airplane\n190881,horse\n190882,horse\n190883,horse\n190884,deer\n190885,frog\n190886,deer\n190887,ship\n190888,truck\n190889,dog\n190890,deer\n190891,cat\n190892,horse\n190893,bird\n190894,dog\n190895,bird\n190896,dog\n190897,cat\n190898,deer\n190899,airplane\n190900,deer\n190901,truck\n190902,horse\n190903,bird\n190904,truck\n190905,deer\n190906,truck\n190907,horse\n190908,bird\n190909,cat\n190910,deer\n190911,horse\n190912,bird\n190913,dog\n190914,cat\n190915,ship\n190916,dog\n190917,deer\n190918,deer\n190919,frog\n190920,bird\n190921,bird\n190922,deer\n190923,deer\n190924,deer\n190925,cat\n190926,cat\n190927,cat\n190928,frog\n190929,airplane\n190930,frog\n190931,deer\n190932,ship\n190933,deer\n190934,deer\n190935,frog\n190936,horse\n190937,deer\n190938,airplane\n190939,automobile\n190940,frog\n190941,cat\n190942,dog\n190943,frog\n190944,truck\n190945,horse\n190946,cat\n190947,cat\n190948,frog\n190949,frog\n190950,horse\n190951,airplane\n190952,horse\n190953,cat\n190954,horse\n190955,horse\n190956,ship\n190957,truck\n190958,ship\n190959,cat\n190960,dog\n190961,automobile\n190962,dog\n190963,horse\n190964,truck\n190965,dog\n190966,horse\n190967,airplane\n190968,horse\n190969,ship\n190970,bird\n190971,frog\n190972,cat\n190973,bird\n190974,frog\n190975,frog\n190976,deer\n190977,horse\n190978,bird\n190979,automobile\n190980,automobile\n190981,frog\n190982,ship\n190983,automobile\n190984,deer\n190985,truck\n190986,dog\n190987,airplane\n190988,airplane\n190989,automobile\n190990,frog\n190991,horse\n190992,frog\n190993,deer\n190994,truck\n190995,dog\n190996,dog\n190997,ship\n190998,deer\n190999,deer\n191000,horse\n191001,airplane\n191002,cat\n191003,truck\n191004,airplane\n191005,deer\n191006,deer\n191007,truck\n191008,bird\n191009,automobile\n191010,horse\n191011,ship\n191012,airplane\n191013,automobile\n191014,cat\n191015,automobile\n191016,horse\n191017,frog\n191018,frog\n191019,frog\n191020,ship\n191021,ship\n191022,airplane\n191023,cat\n191024,bird\n191025,ship\n191026,cat\n191027,horse\n191028,deer\n191029,bird\n191030,deer\n191031,cat\n191032,deer\n191033,dog\n191034,horse\n191035,horse\n191036,airplane\n191037,truck\n191038,bird\n191039,horse\n191040,airplane\n191041,horse\n191042,horse\n191043,airplane\n191044,dog\n191045,ship\n191046,frog\n191047,deer\n191048,horse\n191049,cat\n191050,bird\n191051,automobile\n191052,truck\n191053,cat\n191054,cat\n191055,cat\n191056,bird\n191057,airplane\n191058,frog\n191059,dog\n191060,ship\n191061,deer\n191062,horse\n191063,deer\n191064,dog\n191065,airplane\n191066,frog\n191067,automobile\n191068,bird\n191069,horse\n191070,cat\n191071,cat\n191072,dog\n191073,dog\n191074,truck\n191075,cat\n191076,deer\n191077,cat\n191078,frog\n191079,cat\n191080,airplane\n191081,truck\n191082,frog\n191083,horse\n191084,deer\n191085,deer\n191086,deer\n191087,ship\n191088,cat\n191089,horse\n191090,airplane\n191091,frog\n191092,dog\n191093,cat\n191094,truck\n191095,cat\n191096,truck\n191097,horse\n191098,frog\n191099,truck\n191100,bird\n191101,frog\n191102,truck\n191103,automobile\n191104,deer\n191105,deer\n191106,truck\n191107,truck\n191108,cat\n191109,cat\n191110,ship\n191111,deer\n191112,cat\n191113,automobile\n191114,dog\n191115,cat\n191116,cat\n191117,cat\n191118,deer\n191119,cat\n191120,airplane\n191121,dog\n191122,automobile\n191123,dog\n191124,bird\n191125,ship\n191126,automobile\n191127,truck\n191128,horse\n191129,horse\n191130,deer\n191131,truck\n191132,dog\n191133,ship\n191134,ship\n191135,deer\n191136,airplane\n191137,airplane\n191138,deer\n191139,automobile\n191140,deer\n191141,truck\n191142,truck\n191143,automobile\n191144,bird\n191145,horse\n191146,bird\n191147,deer\n191148,ship\n191149,frog\n191150,automobile\n191151,horse\n191152,bird\n191153,dog\n191154,deer\n191155,bird\n191156,dog\n191157,horse\n191158,airplane\n191159,airplane\n191160,truck\n191161,horse\n191162,automobile\n191163,bird\n191164,frog\n191165,truck\n191166,bird\n191167,cat\n191168,ship\n191169,horse\n191170,ship\n191171,truck\n191172,deer\n191173,deer\n191174,dog\n191175,deer\n191176,dog\n191177,deer\n191178,ship\n191179,dog\n191180,bird\n191181,cat\n191182,automobile\n191183,frog\n191184,airplane\n191185,ship\n191186,dog\n191187,bird\n191188,deer\n191189,deer\n191190,truck\n191191,cat\n191192,deer\n191193,frog\n191194,frog\n191195,airplane\n191196,truck\n191197,deer\n191198,deer\n191199,horse\n191200,automobile\n191201,horse\n191202,truck\n191203,airplane\n191204,deer\n191205,truck\n191206,automobile\n191207,truck\n191208,truck\n191209,frog\n191210,frog\n191211,horse\n191212,dog\n191213,deer\n191214,ship\n191215,automobile\n191216,deer\n191217,automobile\n191218,bird\n191219,deer\n191220,truck\n191221,deer\n191222,frog\n191223,horse\n191224,automobile\n191225,horse\n191226,airplane\n191227,deer\n191228,frog\n191229,airplane\n191230,dog\n191231,deer\n191232,bird\n191233,deer\n191234,ship\n191235,deer\n191236,ship\n191237,airplane\n191238,cat\n191239,airplane\n191240,deer\n191241,dog\n191242,automobile\n191243,bird\n191244,ship\n191245,horse\n191246,truck\n191247,frog\n191248,bird\n191249,frog\n191250,cat\n191251,truck\n191252,airplane\n191253,dog\n191254,ship\n191255,deer\n191256,automobile\n191257,dog\n191258,automobile\n191259,ship\n191260,automobile\n191261,deer\n191262,frog\n191263,ship\n191264,airplane\n191265,airplane\n191266,frog\n191267,truck\n191268,automobile\n191269,bird\n191270,deer\n191271,bird\n191272,automobile\n191273,cat\n191274,bird\n191275,automobile\n191276,horse\n191277,automobile\n191278,airplane\n191279,automobile\n191280,deer\n191281,deer\n191282,dog\n191283,truck\n191284,truck\n191285,horse\n191286,automobile\n191287,deer\n191288,cat\n191289,deer\n191290,frog\n191291,deer\n191292,airplane\n191293,cat\n191294,ship\n191295,frog\n191296,truck\n191297,deer\n191298,horse\n191299,frog\n191300,automobile\n191301,bird\n191302,airplane\n191303,cat\n191304,frog\n191305,airplane\n191306,ship\n191307,horse\n191308,truck\n191309,truck\n191310,truck\n191311,deer\n191312,deer\n191313,dog\n191314,airplane\n191315,deer\n191316,automobile\n191317,bird\n191318,deer\n191319,bird\n191320,ship\n191321,truck\n191322,horse\n191323,dog\n191324,truck\n191325,automobile\n191326,airplane\n191327,airplane\n191328,truck\n191329,airplane\n191330,airplane\n191331,bird\n191332,airplane\n191333,airplane\n191334,dog\n191335,airplane\n191336,dog\n191337,frog\n191338,truck\n191339,deer\n191340,frog\n191341,truck\n191342,cat\n191343,deer\n191344,dog\n191345,horse\n191346,frog\n191347,horse\n191348,horse\n191349,deer\n191350,bird\n191351,deer\n191352,airplane\n191353,frog\n191354,horse\n191355,truck\n191356,deer\n191357,deer\n191358,dog\n191359,bird\n191360,dog\n191361,deer\n191362,deer\n191363,frog\n191364,horse\n191365,cat\n191366,ship\n191367,airplane\n191368,deer\n191369,frog\n191370,truck\n191371,horse\n191372,frog\n191373,dog\n191374,truck\n191375,deer\n191376,cat\n191377,automobile\n191378,ship\n191379,frog\n191380,deer\n191381,truck\n191382,cat\n191383,deer\n191384,frog\n191385,airplane\n191386,deer\n191387,ship\n191388,airplane\n191389,airplane\n191390,deer\n191391,bird\n191392,frog\n191393,deer\n191394,automobile\n191395,bird\n191396,frog\n191397,automobile\n191398,bird\n191399,truck\n191400,dog\n191401,cat\n191402,airplane\n191403,airplane\n191404,truck\n191405,deer\n191406,airplane\n191407,truck\n191408,bird\n191409,cat\n191410,ship\n191411,cat\n191412,bird\n191413,automobile\n191414,dog\n191415,bird\n191416,horse\n191417,frog\n191418,automobile\n191419,deer\n191420,frog\n191421,airplane\n191422,frog\n191423,frog\n191424,cat\n191425,truck\n191426,ship\n191427,automobile\n191428,deer\n191429,truck\n191430,bird\n191431,frog\n191432,deer\n191433,automobile\n191434,cat\n191435,truck\n191436,dog\n191437,automobile\n191438,horse\n191439,ship\n191440,horse\n191441,cat\n191442,ship\n191443,truck\n191444,dog\n191445,deer\n191446,cat\n191447,ship\n191448,automobile\n191449,cat\n191450,frog\n191451,deer\n191452,dog\n191453,frog\n191454,dog\n191455,airplane\n191456,truck\n191457,deer\n191458,horse\n191459,ship\n191460,horse\n191461,frog\n191462,deer\n191463,dog\n191464,cat\n191465,automobile\n191466,deer\n191467,truck\n191468,bird\n191469,deer\n191470,truck\n191471,automobile\n191472,automobile\n191473,ship\n191474,cat\n191475,bird\n191476,airplane\n191477,truck\n191478,truck\n191479,bird\n191480,deer\n191481,bird\n191482,deer\n191483,horse\n191484,dog\n191485,frog\n191486,cat\n191487,frog\n191488,cat\n191489,cat\n191490,frog\n191491,airplane\n191492,horse\n191493,frog\n191494,bird\n191495,deer\n191496,truck\n191497,automobile\n191498,airplane\n191499,ship\n191500,dog\n191501,cat\n191502,bird\n191503,frog\n191504,frog\n191505,cat\n191506,cat\n191507,bird\n191508,cat\n191509,frog\n191510,truck\n191511,horse\n191512,deer\n191513,automobile\n191514,cat\n191515,ship\n191516,airplane\n191517,cat\n191518,frog\n191519,ship\n191520,ship\n191521,horse\n191522,dog\n191523,truck\n191524,airplane\n191525,dog\n191526,truck\n191527,frog\n191528,dog\n191529,automobile\n191530,dog\n191531,automobile\n191532,truck\n191533,deer\n191534,cat\n191535,deer\n191536,truck\n191537,ship\n191538,bird\n191539,truck\n191540,airplane\n191541,automobile\n191542,ship\n191543,airplane\n191544,dog\n191545,ship\n191546,automobile\n191547,frog\n191548,frog\n191549,dog\n191550,bird\n191551,automobile\n191552,horse\n191553,airplane\n191554,bird\n191555,bird\n191556,dog\n191557,dog\n191558,frog\n191559,deer\n191560,airplane\n191561,truck\n191562,truck\n191563,frog\n191564,automobile\n191565,frog\n191566,horse\n191567,ship\n191568,truck\n191569,bird\n191570,dog\n191571,frog\n191572,deer\n191573,automobile\n191574,bird\n191575,ship\n191576,truck\n191577,automobile\n191578,horse\n191579,horse\n191580,cat\n191581,deer\n191582,deer\n191583,bird\n191584,automobile\n191585,truck\n191586,frog\n191587,horse\n191588,bird\n191589,automobile\n191590,frog\n191591,deer\n191592,cat\n191593,automobile\n191594,automobile\n191595,airplane\n191596,frog\n191597,cat\n191598,deer\n191599,bird\n191600,dog\n191601,horse\n191602,bird\n191603,deer\n191604,dog\n191605,automobile\n191606,automobile\n191607,frog\n191608,bird\n191609,automobile\n191610,horse\n191611,dog\n191612,deer\n191613,truck\n191614,frog\n191615,deer\n191616,bird\n191617,dog\n191618,cat\n191619,ship\n191620,cat\n191621,automobile\n191622,deer\n191623,deer\n191624,cat\n191625,deer\n191626,cat\n191627,bird\n191628,deer\n191629,frog\n191630,deer\n191631,ship\n191632,airplane\n191633,dog\n191634,airplane\n191635,bird\n191636,dog\n191637,automobile\n191638,horse\n191639,deer\n191640,bird\n191641,deer\n191642,horse\n191643,frog\n191644,truck\n191645,automobile\n191646,airplane\n191647,cat\n191648,deer\n191649,ship\n191650,deer\n191651,cat\n191652,horse\n191653,cat\n191654,frog\n191655,cat\n191656,dog\n191657,dog\n191658,ship\n191659,deer\n191660,frog\n191661,airplane\n191662,bird\n191663,frog\n191664,deer\n191665,cat\n191666,cat\n191667,ship\n191668,cat\n191669,cat\n191670,bird\n191671,frog\n191672,horse\n191673,truck\n191674,ship\n191675,deer\n191676,dog\n191677,cat\n191678,deer\n191679,cat\n191680,cat\n191681,dog\n191682,horse\n191683,ship\n191684,dog\n191685,cat\n191686,frog\n191687,truck\n191688,automobile\n191689,deer\n191690,cat\n191691,airplane\n191692,cat\n191693,bird\n191694,deer\n191695,frog\n191696,bird\n191697,deer\n191698,deer\n191699,automobile\n191700,airplane\n191701,cat\n191702,truck\n191703,cat\n191704,deer\n191705,ship\n191706,automobile\n191707,airplane\n191708,bird\n191709,airplane\n191710,truck\n191711,ship\n191712,truck\n191713,horse\n191714,bird\n191715,dog\n191716,truck\n191717,bird\n191718,cat\n191719,airplane\n191720,automobile\n191721,deer\n191722,deer\n191723,airplane\n191724,frog\n191725,bird\n191726,dog\n191727,dog\n191728,dog\n191729,truck\n191730,airplane\n191731,bird\n191732,deer\n191733,truck\n191734,cat\n191735,automobile\n191736,horse\n191737,bird\n191738,truck\n191739,bird\n191740,truck\n191741,cat\n191742,truck\n191743,truck\n191744,frog\n191745,frog\n191746,truck\n191747,dog\n191748,airplane\n191749,truck\n191750,ship\n191751,dog\n191752,frog\n191753,ship\n191754,deer\n191755,cat\n191756,airplane\n191757,deer\n191758,horse\n191759,cat\n191760,cat\n191761,truck\n191762,cat\n191763,truck\n191764,frog\n191765,ship\n191766,dog\n191767,automobile\n191768,truck\n191769,horse\n191770,cat\n191771,frog\n191772,deer\n191773,automobile\n191774,airplane\n191775,dog\n191776,airplane\n191777,dog\n191778,dog\n191779,cat\n191780,airplane\n191781,airplane\n191782,horse\n191783,deer\n191784,ship\n191785,cat\n191786,cat\n191787,airplane\n191788,horse\n191789,automobile\n191790,deer\n191791,cat\n191792,automobile\n191793,cat\n191794,cat\n191795,cat\n191796,truck\n191797,frog\n191798,cat\n191799,airplane\n191800,cat\n191801,deer\n191802,airplane\n191803,ship\n191804,cat\n191805,automobile\n191806,truck\n191807,dog\n191808,automobile\n191809,dog\n191810,dog\n191811,ship\n191812,truck\n191813,dog\n191814,automobile\n191815,cat\n191816,frog\n191817,horse\n191818,deer\n191819,truck\n191820,frog\n191821,ship\n191822,cat\n191823,frog\n191824,dog\n191825,truck\n191826,truck\n191827,airplane\n191828,dog\n191829,ship\n191830,bird\n191831,airplane\n191832,dog\n191833,ship\n191834,frog\n191835,dog\n191836,cat\n191837,airplane\n191838,deer\n191839,airplane\n191840,truck\n191841,bird\n191842,cat\n191843,truck\n191844,automobile\n191845,truck\n191846,airplane\n191847,frog\n191848,cat\n191849,deer\n191850,deer\n191851,truck\n191852,ship\n191853,bird\n191854,truck\n191855,cat\n191856,deer\n191857,horse\n191858,frog\n191859,truck\n191860,frog\n191861,ship\n191862,dog\n191863,horse\n191864,ship\n191865,bird\n191866,deer\n191867,horse\n191868,cat\n191869,frog\n191870,deer\n191871,truck\n191872,deer\n191873,airplane\n191874,ship\n191875,horse\n191876,deer\n191877,frog\n191878,dog\n191879,truck\n191880,horse\n191881,ship\n191882,airplane\n191883,bird\n191884,automobile\n191885,automobile\n191886,cat\n191887,deer\n191888,truck\n191889,truck\n191890,truck\n191891,truck\n191892,ship\n191893,deer\n191894,ship\n191895,frog\n191896,ship\n191897,ship\n191898,bird\n191899,frog\n191900,airplane\n191901,automobile\n191902,airplane\n191903,airplane\n191904,ship\n191905,truck\n191906,deer\n191907,ship\n191908,bird\n191909,airplane\n191910,ship\n191911,airplane\n191912,frog\n191913,ship\n191914,deer\n191915,horse\n191916,horse\n191917,deer\n191918,bird\n191919,deer\n191920,horse\n191921,truck\n191922,dog\n191923,truck\n191924,bird\n191925,deer\n191926,frog\n191927,truck\n191928,deer\n191929,bird\n191930,ship\n191931,horse\n191932,dog\n191933,frog\n191934,frog\n191935,cat\n191936,frog\n191937,horse\n191938,airplane\n191939,bird\n191940,airplane\n191941,airplane\n191942,truck\n191943,cat\n191944,airplane\n191945,cat\n191946,dog\n191947,bird\n191948,cat\n191949,horse\n191950,ship\n191951,ship\n191952,truck\n191953,frog\n191954,truck\n191955,deer\n191956,automobile\n191957,cat\n191958,bird\n191959,airplane\n191960,frog\n191961,truck\n191962,automobile\n191963,truck\n191964,cat\n191965,automobile\n191966,ship\n191967,ship\n191968,horse\n191969,frog\n191970,dog\n191971,cat\n191972,frog\n191973,automobile\n191974,frog\n191975,truck\n191976,dog\n191977,dog\n191978,deer\n191979,airplane\n191980,ship\n191981,airplane\n191982,horse\n191983,frog\n191984,automobile\n191985,truck\n191986,bird\n191987,airplane\n191988,ship\n191989,horse\n191990,ship\n191991,airplane\n191992,bird\n191993,truck\n191994,ship\n191995,automobile\n191996,truck\n191997,deer\n191998,bird\n191999,dog\n192000,horse\n192001,ship\n192002,frog\n192003,deer\n192004,deer\n192005,frog\n192006,frog\n192007,horse\n192008,automobile\n192009,cat\n192010,truck\n192011,dog\n192012,truck\n192013,frog\n192014,truck\n192015,truck\n192016,airplane\n192017,truck\n192018,bird\n192019,bird\n192020,horse\n192021,truck\n192022,frog\n192023,ship\n192024,truck\n192025,cat\n192026,truck\n192027,horse\n192028,bird\n192029,airplane\n192030,horse\n192031,horse\n192032,dog\n192033,truck\n192034,bird\n192035,ship\n192036,deer\n192037,frog\n192038,deer\n192039,bird\n192040,automobile\n192041,automobile\n192042,truck\n192043,cat\n192044,ship\n192045,cat\n192046,cat\n192047,horse\n192048,dog\n192049,deer\n192050,frog\n192051,cat\n192052,dog\n192053,truck\n192054,deer\n192055,horse\n192056,truck\n192057,dog\n192058,deer\n192059,deer\n192060,frog\n192061,frog\n192062,cat\n192063,bird\n192064,cat\n192065,horse\n192066,bird\n192067,cat\n192068,dog\n192069,dog\n192070,horse\n192071,bird\n192072,airplane\n192073,truck\n192074,dog\n192075,deer\n192076,dog\n192077,deer\n192078,cat\n192079,dog\n192080,dog\n192081,dog\n192082,frog\n192083,horse\n192084,automobile\n192085,bird\n192086,cat\n192087,frog\n192088,automobile\n192089,airplane\n192090,dog\n192091,horse\n192092,horse\n192093,ship\n192094,deer\n192095,truck\n192096,dog\n192097,cat\n192098,horse\n192099,horse\n192100,horse\n192101,bird\n192102,truck\n192103,cat\n192104,deer\n192105,horse\n192106,bird\n192107,airplane\n192108,bird\n192109,cat\n192110,horse\n192111,dog\n192112,horse\n192113,truck\n192114,ship\n192115,deer\n192116,frog\n192117,airplane\n192118,cat\n192119,ship\n192120,deer\n192121,bird\n192122,horse\n192123,cat\n192124,truck\n192125,deer\n192126,deer\n192127,horse\n192128,cat\n192129,deer\n192130,cat\n192131,deer\n192132,airplane\n192133,automobile\n192134,bird\n192135,frog\n192136,horse\n192137,cat\n192138,cat\n192139,ship\n192140,frog\n192141,dog\n192142,ship\n192143,cat\n192144,cat\n192145,frog\n192146,truck\n192147,cat\n192148,airplane\n192149,deer\n192150,deer\n192151,airplane\n192152,truck\n192153,airplane\n192154,automobile\n192155,cat\n192156,truck\n192157,automobile\n192158,dog\n192159,cat\n192160,truck\n192161,bird\n192162,cat\n192163,bird\n192164,horse\n192165,airplane\n192166,horse\n192167,frog\n192168,bird\n192169,deer\n192170,horse\n192171,airplane\n192172,frog\n192173,truck\n192174,bird\n192175,dog\n192176,frog\n192177,truck\n192178,airplane\n192179,truck\n192180,dog\n192181,airplane\n192182,truck\n192183,deer\n192184,bird\n192185,bird\n192186,bird\n192187,truck\n192188,ship\n192189,bird\n192190,truck\n192191,deer\n192192,automobile\n192193,automobile\n192194,airplane\n192195,frog\n192196,cat\n192197,bird\n192198,frog\n192199,dog\n192200,cat\n192201,deer\n192202,horse\n192203,ship\n192204,automobile\n192205,ship\n192206,frog\n192207,truck\n192208,cat\n192209,deer\n192210,bird\n192211,automobile\n192212,frog\n192213,frog\n192214,dog\n192215,truck\n192216,dog\n192217,frog\n192218,ship\n192219,ship\n192220,frog\n192221,horse\n192222,dog\n192223,frog\n192224,frog\n192225,frog\n192226,ship\n192227,automobile\n192228,airplane\n192229,bird\n192230,horse\n192231,ship\n192232,truck\n192233,truck\n192234,dog\n192235,dog\n192236,deer\n192237,airplane\n192238,frog\n192239,bird\n192240,airplane\n192241,deer\n192242,cat\n192243,horse\n192244,truck\n192245,frog\n192246,deer\n192247,automobile\n192248,horse\n192249,frog\n192250,airplane\n192251,cat\n192252,horse\n192253,automobile\n192254,automobile\n192255,frog\n192256,dog\n192257,ship\n192258,frog\n192259,deer\n192260,truck\n192261,truck\n192262,bird\n192263,deer\n192264,ship\n192265,cat\n192266,deer\n192267,horse\n192268,cat\n192269,frog\n192270,frog\n192271,cat\n192272,deer\n192273,horse\n192274,horse\n192275,truck\n192276,automobile\n192277,horse\n192278,deer\n192279,cat\n192280,dog\n192281,deer\n192282,cat\n192283,cat\n192284,dog\n192285,deer\n192286,airplane\n192287,truck\n192288,cat\n192289,truck\n192290,dog\n192291,bird\n192292,airplane\n192293,ship\n192294,dog\n192295,horse\n192296,bird\n192297,automobile\n192298,cat\n192299,cat\n192300,dog\n192301,dog\n192302,deer\n192303,dog\n192304,deer\n192305,dog\n192306,automobile\n192307,bird\n192308,deer\n192309,ship\n192310,horse\n192311,dog\n192312,horse\n192313,deer\n192314,cat\n192315,frog\n192316,horse\n192317,bird\n192318,deer\n192319,dog\n192320,deer\n192321,automobile\n192322,cat\n192323,deer\n192324,automobile\n192325,truck\n192326,dog\n192327,deer\n192328,frog\n192329,bird\n192330,dog\n192331,dog\n192332,deer\n192333,ship\n192334,bird\n192335,cat\n192336,deer\n192337,cat\n192338,ship\n192339,cat\n192340,airplane\n192341,ship\n192342,automobile\n192343,airplane\n192344,dog\n192345,cat\n192346,dog\n192347,deer\n192348,horse\n192349,cat\n192350,deer\n192351,frog\n192352,frog\n192353,airplane\n192354,truck\n192355,bird\n192356,truck\n192357,dog\n192358,horse\n192359,deer\n192360,deer\n192361,truck\n192362,ship\n192363,airplane\n192364,airplane\n192365,truck\n192366,automobile\n192367,frog\n192368,bird\n192369,cat\n192370,deer\n192371,frog\n192372,ship\n192373,cat\n192374,automobile\n192375,ship\n192376,airplane\n192377,deer\n192378,frog\n192379,bird\n192380,horse\n192381,cat\n192382,bird\n192383,bird\n192384,frog\n192385,bird\n192386,airplane\n192387,horse\n192388,truck\n192389,automobile\n192390,airplane\n192391,ship\n192392,dog\n192393,ship\n192394,cat\n192395,truck\n192396,cat\n192397,automobile\n192398,deer\n192399,ship\n192400,bird\n192401,deer\n192402,frog\n192403,deer\n192404,ship\n192405,horse\n192406,cat\n192407,automobile\n192408,bird\n192409,horse\n192410,automobile\n192411,bird\n192412,ship\n192413,dog\n192414,airplane\n192415,cat\n192416,bird\n192417,deer\n192418,automobile\n192419,airplane\n192420,truck\n192421,automobile\n192422,dog\n192423,truck\n192424,deer\n192425,ship\n192426,deer\n192427,horse\n192428,frog\n192429,automobile\n192430,cat\n192431,airplane\n192432,dog\n192433,bird\n192434,truck\n192435,ship\n192436,horse\n192437,dog\n192438,airplane\n192439,truck\n192440,cat\n192441,dog\n192442,ship\n192443,frog\n192444,airplane\n192445,dog\n192446,frog\n192447,dog\n192448,airplane\n192449,truck\n192450,cat\n192451,horse\n192452,horse\n192453,frog\n192454,deer\n192455,horse\n192456,airplane\n192457,horse\n192458,cat\n192459,automobile\n192460,frog\n192461,cat\n192462,bird\n192463,dog\n192464,truck\n192465,horse\n192466,dog\n192467,bird\n192468,bird\n192469,dog\n192470,dog\n192471,dog\n192472,deer\n192473,automobile\n192474,truck\n192475,ship\n192476,horse\n192477,cat\n192478,deer\n192479,frog\n192480,deer\n192481,frog\n192482,cat\n192483,dog\n192484,bird\n192485,cat\n192486,horse\n192487,truck\n192488,cat\n192489,airplane\n192490,cat\n192491,frog\n192492,deer\n192493,automobile\n192494,deer\n192495,frog\n192496,truck\n192497,truck\n192498,truck\n192499,truck\n192500,dog\n192501,automobile\n192502,cat\n192503,airplane\n192504,deer\n192505,frog\n192506,cat\n192507,automobile\n192508,truck\n192509,horse\n192510,dog\n192511,cat\n192512,deer\n192513,cat\n192514,deer\n192515,ship\n192516,horse\n192517,dog\n192518,frog\n192519,airplane\n192520,horse\n192521,deer\n192522,frog\n192523,dog\n192524,cat\n192525,frog\n192526,cat\n192527,horse\n192528,truck\n192529,frog\n192530,cat\n192531,dog\n192532,dog\n192533,horse\n192534,truck\n192535,cat\n192536,deer\n192537,cat\n192538,bird\n192539,horse\n192540,frog\n192541,ship\n192542,cat\n192543,frog\n192544,cat\n192545,bird\n192546,cat\n192547,ship\n192548,dog\n192549,automobile\n192550,deer\n192551,deer\n192552,cat\n192553,deer\n192554,airplane\n192555,dog\n192556,frog\n192557,airplane\n192558,ship\n192559,cat\n192560,truck\n192561,truck\n192562,deer\n192563,frog\n192564,ship\n192565,frog\n192566,horse\n192567,frog\n192568,deer\n192569,deer\n192570,frog\n192571,cat\n192572,frog\n192573,dog\n192574,truck\n192575,airplane\n192576,cat\n192577,horse\n192578,dog\n192579,bird\n192580,deer\n192581,horse\n192582,airplane\n192583,truck\n192584,bird\n192585,frog\n192586,automobile\n192587,dog\n192588,dog\n192589,airplane\n192590,horse\n192591,ship\n192592,ship\n192593,dog\n192594,cat\n192595,dog\n192596,horse\n192597,truck\n192598,deer\n192599,ship\n192600,deer\n192601,deer\n192602,dog\n192603,deer\n192604,automobile\n192605,deer\n192606,deer\n192607,airplane\n192608,horse\n192609,truck\n192610,deer\n192611,deer\n192612,airplane\n192613,horse\n192614,automobile\n192615,deer\n192616,automobile\n192617,truck\n192618,airplane\n192619,deer\n192620,deer\n192621,frog\n192622,deer\n192623,airplane\n192624,bird\n192625,ship\n192626,airplane\n192627,ship\n192628,deer\n192629,ship\n192630,frog\n192631,airplane\n192632,cat\n192633,frog\n192634,horse\n192635,cat\n192636,deer\n192637,automobile\n192638,horse\n192639,bird\n192640,cat\n192641,truck\n192642,airplane\n192643,truck\n192644,frog\n192645,frog\n192646,airplane\n192647,automobile\n192648,cat\n192649,truck\n192650,cat\n192651,cat\n192652,deer\n192653,cat\n192654,cat\n192655,bird\n192656,automobile\n192657,cat\n192658,dog\n192659,dog\n192660,frog\n192661,bird\n192662,airplane\n192663,frog\n192664,cat\n192665,automobile\n192666,ship\n192667,truck\n192668,dog\n192669,truck\n192670,horse\n192671,airplane\n192672,deer\n192673,ship\n192674,truck\n192675,dog\n192676,deer\n192677,deer\n192678,truck\n192679,truck\n192680,dog\n192681,ship\n192682,airplane\n192683,deer\n192684,bird\n192685,cat\n192686,deer\n192687,horse\n192688,bird\n192689,frog\n192690,cat\n192691,dog\n192692,frog\n192693,horse\n192694,airplane\n192695,airplane\n192696,cat\n192697,automobile\n192698,automobile\n192699,deer\n192700,ship\n192701,cat\n192702,cat\n192703,deer\n192704,truck\n192705,ship\n192706,dog\n192707,automobile\n192708,deer\n192709,truck\n192710,cat\n192711,bird\n192712,dog\n192713,deer\n192714,airplane\n192715,bird\n192716,dog\n192717,deer\n192718,dog\n192719,airplane\n192720,cat\n192721,automobile\n192722,frog\n192723,horse\n192724,truck\n192725,automobile\n192726,airplane\n192727,cat\n192728,airplane\n192729,airplane\n192730,deer\n192731,airplane\n192732,automobile\n192733,cat\n192734,deer\n192735,cat\n192736,deer\n192737,deer\n192738,truck\n192739,ship\n192740,truck\n192741,deer\n192742,ship\n192743,bird\n192744,deer\n192745,frog\n192746,airplane\n192747,deer\n192748,cat\n192749,dog\n192750,horse\n192751,deer\n192752,truck\n192753,truck\n192754,deer\n192755,bird\n192756,cat\n192757,truck\n192758,horse\n192759,dog\n192760,horse\n192761,cat\n192762,bird\n192763,ship\n192764,horse\n192765,truck\n192766,cat\n192767,bird\n192768,ship\n192769,deer\n192770,horse\n192771,automobile\n192772,deer\n192773,frog\n192774,bird\n192775,dog\n192776,frog\n192777,dog\n192778,horse\n192779,deer\n192780,airplane\n192781,cat\n192782,cat\n192783,truck\n192784,ship\n192785,ship\n192786,bird\n192787,horse\n192788,ship\n192789,cat\n192790,cat\n192791,deer\n192792,truck\n192793,ship\n192794,truck\n192795,deer\n192796,automobile\n192797,automobile\n192798,horse\n192799,dog\n192800,frog\n192801,deer\n192802,deer\n192803,truck\n192804,horse\n192805,truck\n192806,dog\n192807,cat\n192808,deer\n192809,airplane\n192810,cat\n192811,bird\n192812,horse\n192813,automobile\n192814,truck\n192815,truck\n192816,truck\n192817,bird\n192818,horse\n192819,airplane\n192820,frog\n192821,ship\n192822,frog\n192823,ship\n192824,dog\n192825,horse\n192826,airplane\n192827,airplane\n192828,ship\n192829,dog\n192830,deer\n192831,cat\n192832,ship\n192833,dog\n192834,horse\n192835,truck\n192836,frog\n192837,frog\n192838,deer\n192839,horse\n192840,horse\n192841,airplane\n192842,dog\n192843,truck\n192844,ship\n192845,ship\n192846,ship\n192847,dog\n192848,bird\n192849,deer\n192850,deer\n192851,ship\n192852,deer\n192853,frog\n192854,horse\n192855,deer\n192856,frog\n192857,automobile\n192858,bird\n192859,frog\n192860,horse\n192861,deer\n192862,cat\n192863,dog\n192864,deer\n192865,bird\n192866,automobile\n192867,deer\n192868,truck\n192869,cat\n192870,ship\n192871,bird\n192872,deer\n192873,truck\n192874,dog\n192875,frog\n192876,ship\n192877,automobile\n192878,cat\n192879,ship\n192880,dog\n192881,dog\n192882,airplane\n192883,automobile\n192884,airplane\n192885,dog\n192886,truck\n192887,truck\n192888,ship\n192889,cat\n192890,cat\n192891,horse\n192892,automobile\n192893,ship\n192894,dog\n192895,cat\n192896,frog\n192897,cat\n192898,dog\n192899,cat\n192900,cat\n192901,airplane\n192902,frog\n192903,ship\n192904,bird\n192905,frog\n192906,cat\n192907,airplane\n192908,automobile\n192909,cat\n192910,deer\n192911,truck\n192912,bird\n192913,dog\n192914,deer\n192915,deer\n192916,horse\n192917,cat\n192918,truck\n192919,frog\n192920,ship\n192921,airplane\n192922,cat\n192923,bird\n192924,frog\n192925,bird\n192926,airplane\n192927,bird\n192928,cat\n192929,automobile\n192930,truck\n192931,cat\n192932,frog\n192933,deer\n192934,truck\n192935,dog\n192936,ship\n192937,automobile\n192938,horse\n192939,airplane\n192940,cat\n192941,deer\n192942,horse\n192943,truck\n192944,bird\n192945,bird\n192946,dog\n192947,truck\n192948,bird\n192949,bird\n192950,truck\n192951,cat\n192952,dog\n192953,frog\n192954,dog\n192955,cat\n192956,cat\n192957,deer\n192958,airplane\n192959,airplane\n192960,truck\n192961,truck\n192962,horse\n192963,truck\n192964,bird\n192965,bird\n192966,frog\n192967,deer\n192968,cat\n192969,airplane\n192970,truck\n192971,frog\n192972,deer\n192973,truck\n192974,bird\n192975,ship\n192976,dog\n192977,cat\n192978,airplane\n192979,cat\n192980,cat\n192981,bird\n192982,cat\n192983,deer\n192984,frog\n192985,frog\n192986,bird\n192987,airplane\n192988,ship\n192989,frog\n192990,truck\n192991,dog\n192992,horse\n192993,cat\n192994,ship\n192995,automobile\n192996,bird\n192997,automobile\n192998,automobile\n192999,deer\n193000,airplane\n193001,cat\n193002,dog\n193003,bird\n193004,airplane\n193005,cat\n193006,truck\n193007,airplane\n193008,automobile\n193009,cat\n193010,bird\n193011,deer\n193012,frog\n193013,deer\n193014,frog\n193015,truck\n193016,frog\n193017,bird\n193018,deer\n193019,airplane\n193020,horse\n193021,cat\n193022,cat\n193023,horse\n193024,frog\n193025,ship\n193026,deer\n193027,truck\n193028,airplane\n193029,horse\n193030,frog\n193031,deer\n193032,airplane\n193033,deer\n193034,bird\n193035,bird\n193036,dog\n193037,deer\n193038,truck\n193039,automobile\n193040,ship\n193041,horse\n193042,frog\n193043,deer\n193044,automobile\n193045,horse\n193046,truck\n193047,automobile\n193048,horse\n193049,ship\n193050,truck\n193051,bird\n193052,automobile\n193053,frog\n193054,frog\n193055,cat\n193056,horse\n193057,horse\n193058,cat\n193059,frog\n193060,automobile\n193061,airplane\n193062,deer\n193063,ship\n193064,automobile\n193065,truck\n193066,truck\n193067,ship\n193068,airplane\n193069,truck\n193070,automobile\n193071,dog\n193072,frog\n193073,horse\n193074,bird\n193075,horse\n193076,deer\n193077,horse\n193078,airplane\n193079,horse\n193080,bird\n193081,horse\n193082,dog\n193083,deer\n193084,ship\n193085,frog\n193086,cat\n193087,truck\n193088,truck\n193089,cat\n193090,ship\n193091,ship\n193092,horse\n193093,deer\n193094,deer\n193095,frog\n193096,frog\n193097,dog\n193098,deer\n193099,bird\n193100,airplane\n193101,airplane\n193102,deer\n193103,frog\n193104,bird\n193105,ship\n193106,deer\n193107,cat\n193108,deer\n193109,dog\n193110,horse\n193111,automobile\n193112,bird\n193113,horse\n193114,airplane\n193115,cat\n193116,truck\n193117,frog\n193118,truck\n193119,deer\n193120,airplane\n193121,dog\n193122,airplane\n193123,airplane\n193124,bird\n193125,bird\n193126,deer\n193127,airplane\n193128,deer\n193129,horse\n193130,frog\n193131,airplane\n193132,automobile\n193133,cat\n193134,frog\n193135,deer\n193136,airplane\n193137,airplane\n193138,automobile\n193139,horse\n193140,bird\n193141,deer\n193142,ship\n193143,bird\n193144,cat\n193145,frog\n193146,ship\n193147,truck\n193148,horse\n193149,automobile\n193150,airplane\n193151,deer\n193152,deer\n193153,automobile\n193154,truck\n193155,deer\n193156,frog\n193157,airplane\n193158,frog\n193159,bird\n193160,horse\n193161,truck\n193162,horse\n193163,dog\n193164,frog\n193165,airplane\n193166,deer\n193167,ship\n193168,airplane\n193169,airplane\n193170,dog\n193171,deer\n193172,ship\n193173,ship\n193174,horse\n193175,dog\n193176,bird\n193177,horse\n193178,horse\n193179,horse\n193180,ship\n193181,automobile\n193182,truck\n193183,automobile\n193184,deer\n193185,dog\n193186,cat\n193187,horse\n193188,truck\n193189,dog\n193190,bird\n193191,truck\n193192,frog\n193193,frog\n193194,ship\n193195,truck\n193196,airplane\n193197,airplane\n193198,horse\n193199,horse\n193200,bird\n193201,truck\n193202,horse\n193203,frog\n193204,automobile\n193205,automobile\n193206,cat\n193207,deer\n193208,horse\n193209,deer\n193210,dog\n193211,cat\n193212,dog\n193213,automobile\n193214,airplane\n193215,dog\n193216,deer\n193217,dog\n193218,deer\n193219,deer\n193220,automobile\n193221,dog\n193222,deer\n193223,bird\n193224,bird\n193225,bird\n193226,airplane\n193227,airplane\n193228,deer\n193229,deer\n193230,dog\n193231,truck\n193232,cat\n193233,frog\n193234,horse\n193235,truck\n193236,cat\n193237,ship\n193238,frog\n193239,deer\n193240,horse\n193241,bird\n193242,cat\n193243,bird\n193244,bird\n193245,dog\n193246,deer\n193247,frog\n193248,airplane\n193249,bird\n193250,deer\n193251,horse\n193252,truck\n193253,deer\n193254,cat\n193255,cat\n193256,deer\n193257,dog\n193258,truck\n193259,airplane\n193260,frog\n193261,truck\n193262,cat\n193263,airplane\n193264,dog\n193265,bird\n193266,horse\n193267,frog\n193268,deer\n193269,airplane\n193270,airplane\n193271,frog\n193272,horse\n193273,dog\n193274,cat\n193275,dog\n193276,horse\n193277,automobile\n193278,cat\n193279,airplane\n193280,airplane\n193281,dog\n193282,automobile\n193283,frog\n193284,horse\n193285,dog\n193286,ship\n193287,cat\n193288,bird\n193289,automobile\n193290,deer\n193291,airplane\n193292,frog\n193293,deer\n193294,cat\n193295,truck\n193296,frog\n193297,bird\n193298,frog\n193299,deer\n193300,deer\n193301,cat\n193302,cat\n193303,truck\n193304,truck\n193305,dog\n193306,truck\n193307,truck\n193308,bird\n193309,frog\n193310,cat\n193311,airplane\n193312,automobile\n193313,deer\n193314,truck\n193315,deer\n193316,cat\n193317,dog\n193318,truck\n193319,dog\n193320,cat\n193321,frog\n193322,frog\n193323,horse\n193324,truck\n193325,deer\n193326,horse\n193327,horse\n193328,bird\n193329,dog\n193330,dog\n193331,automobile\n193332,horse\n193333,automobile\n193334,airplane\n193335,airplane\n193336,horse\n193337,ship\n193338,dog\n193339,automobile\n193340,automobile\n193341,horse\n193342,dog\n193343,dog\n193344,automobile\n193345,bird\n193346,frog\n193347,airplane\n193348,horse\n193349,bird\n193350,automobile\n193351,cat\n193352,dog\n193353,cat\n193354,truck\n193355,ship\n193356,automobile\n193357,cat\n193358,frog\n193359,frog\n193360,truck\n193361,dog\n193362,bird\n193363,truck\n193364,cat\n193365,cat\n193366,cat\n193367,frog\n193368,deer\n193369,horse\n193370,bird\n193371,automobile\n193372,automobile\n193373,horse\n193374,deer\n193375,frog\n193376,frog\n193377,deer\n193378,deer\n193379,deer\n193380,frog\n193381,frog\n193382,cat\n193383,cat\n193384,dog\n193385,deer\n193386,airplane\n193387,airplane\n193388,ship\n193389,frog\n193390,cat\n193391,frog\n193392,automobile\n193393,deer\n193394,frog\n193395,automobile\n193396,airplane\n193397,cat\n193398,bird\n193399,ship\n193400,deer\n193401,horse\n193402,ship\n193403,cat\n193404,dog\n193405,deer\n193406,bird\n193407,ship\n193408,airplane\n193409,dog\n193410,frog\n193411,bird\n193412,automobile\n193413,automobile\n193414,deer\n193415,frog\n193416,horse\n193417,horse\n193418,deer\n193419,automobile\n193420,ship\n193421,dog\n193422,truck\n193423,bird\n193424,cat\n193425,airplane\n193426,dog\n193427,horse\n193428,truck\n193429,dog\n193430,cat\n193431,dog\n193432,truck\n193433,truck\n193434,bird\n193435,cat\n193436,dog\n193437,ship\n193438,truck\n193439,dog\n193440,dog\n193441,deer\n193442,ship\n193443,ship\n193444,automobile\n193445,airplane\n193446,ship\n193447,ship\n193448,dog\n193449,ship\n193450,deer\n193451,cat\n193452,cat\n193453,deer\n193454,deer\n193455,dog\n193456,frog\n193457,automobile\n193458,frog\n193459,cat\n193460,bird\n193461,airplane\n193462,deer\n193463,deer\n193464,cat\n193465,dog\n193466,cat\n193467,frog\n193468,ship\n193469,dog\n193470,frog\n193471,bird\n193472,truck\n193473,truck\n193474,dog\n193475,horse\n193476,automobile\n193477,airplane\n193478,truck\n193479,horse\n193480,truck\n193481,automobile\n193482,bird\n193483,cat\n193484,deer\n193485,ship\n193486,ship\n193487,airplane\n193488,dog\n193489,dog\n193490,airplane\n193491,cat\n193492,frog\n193493,ship\n193494,ship\n193495,cat\n193496,horse\n193497,dog\n193498,frog\n193499,dog\n193500,airplane\n193501,airplane\n193502,cat\n193503,cat\n193504,horse\n193505,deer\n193506,dog\n193507,airplane\n193508,cat\n193509,airplane\n193510,deer\n193511,automobile\n193512,truck\n193513,cat\n193514,bird\n193515,dog\n193516,dog\n193517,truck\n193518,horse\n193519,deer\n193520,automobile\n193521,bird\n193522,airplane\n193523,airplane\n193524,deer\n193525,bird\n193526,bird\n193527,truck\n193528,frog\n193529,automobile\n193530,horse\n193531,airplane\n193532,frog\n193533,deer\n193534,truck\n193535,cat\n193536,frog\n193537,airplane\n193538,airplane\n193539,bird\n193540,dog\n193541,horse\n193542,frog\n193543,bird\n193544,cat\n193545,airplane\n193546,automobile\n193547,deer\n193548,truck\n193549,deer\n193550,automobile\n193551,dog\n193552,horse\n193553,automobile\n193554,ship\n193555,dog\n193556,bird\n193557,horse\n193558,ship\n193559,airplane\n193560,dog\n193561,truck\n193562,bird\n193563,airplane\n193564,automobile\n193565,frog\n193566,cat\n193567,airplane\n193568,bird\n193569,airplane\n193570,airplane\n193571,bird\n193572,cat\n193573,ship\n193574,airplane\n193575,dog\n193576,deer\n193577,truck\n193578,cat\n193579,deer\n193580,horse\n193581,frog\n193582,deer\n193583,automobile\n193584,horse\n193585,horse\n193586,deer\n193587,frog\n193588,ship\n193589,frog\n193590,frog\n193591,frog\n193592,horse\n193593,cat\n193594,automobile\n193595,truck\n193596,frog\n193597,deer\n193598,frog\n193599,ship\n193600,horse\n193601,ship\n193602,cat\n193603,horse\n193604,airplane\n193605,horse\n193606,frog\n193607,ship\n193608,cat\n193609,horse\n193610,dog\n193611,frog\n193612,ship\n193613,bird\n193614,bird\n193615,cat\n193616,cat\n193617,ship\n193618,dog\n193619,cat\n193620,dog\n193621,cat\n193622,dog\n193623,cat\n193624,ship\n193625,horse\n193626,cat\n193627,frog\n193628,bird\n193629,dog\n193630,truck\n193631,ship\n193632,horse\n193633,horse\n193634,airplane\n193635,dog\n193636,truck\n193637,deer\n193638,automobile\n193639,horse\n193640,horse\n193641,cat\n193642,deer\n193643,ship\n193644,ship\n193645,cat\n193646,ship\n193647,ship\n193648,frog\n193649,cat\n193650,bird\n193651,ship\n193652,cat\n193653,deer\n193654,ship\n193655,airplane\n193656,frog\n193657,bird\n193658,bird\n193659,automobile\n193660,cat\n193661,ship\n193662,truck\n193663,frog\n193664,bird\n193665,horse\n193666,truck\n193667,frog\n193668,airplane\n193669,horse\n193670,airplane\n193671,dog\n193672,horse\n193673,ship\n193674,bird\n193675,deer\n193676,truck\n193677,deer\n193678,frog\n193679,bird\n193680,automobile\n193681,horse\n193682,bird\n193683,cat\n193684,frog\n193685,automobile\n193686,frog\n193687,ship\n193688,truck\n193689,truck\n193690,horse\n193691,truck\n193692,truck\n193693,cat\n193694,dog\n193695,cat\n193696,truck\n193697,frog\n193698,ship\n193699,frog\n193700,bird\n193701,dog\n193702,deer\n193703,frog\n193704,cat\n193705,horse\n193706,cat\n193707,frog\n193708,bird\n193709,horse\n193710,ship\n193711,truck\n193712,deer\n193713,airplane\n193714,truck\n193715,horse\n193716,horse\n193717,truck\n193718,frog\n193719,deer\n193720,deer\n193721,deer\n193722,frog\n193723,bird\n193724,ship\n193725,bird\n193726,horse\n193727,frog\n193728,deer\n193729,frog\n193730,cat\n193731,cat\n193732,cat\n193733,dog\n193734,truck\n193735,deer\n193736,horse\n193737,deer\n193738,automobile\n193739,horse\n193740,dog\n193741,frog\n193742,truck\n193743,ship\n193744,deer\n193745,deer\n193746,frog\n193747,cat\n193748,truck\n193749,deer\n193750,dog\n193751,deer\n193752,horse\n193753,horse\n193754,cat\n193755,deer\n193756,frog\n193757,frog\n193758,truck\n193759,ship\n193760,cat\n193761,airplane\n193762,truck\n193763,ship\n193764,deer\n193765,deer\n193766,horse\n193767,bird\n193768,frog\n193769,horse\n193770,dog\n193771,truck\n193772,automobile\n193773,ship\n193774,deer\n193775,cat\n193776,bird\n193777,truck\n193778,dog\n193779,automobile\n193780,cat\n193781,dog\n193782,ship\n193783,cat\n193784,horse\n193785,airplane\n193786,deer\n193787,dog\n193788,deer\n193789,deer\n193790,deer\n193791,cat\n193792,dog\n193793,deer\n193794,ship\n193795,ship\n193796,truck\n193797,dog\n193798,ship\n193799,truck\n193800,frog\n193801,airplane\n193802,deer\n193803,cat\n193804,ship\n193805,automobile\n193806,automobile\n193807,deer\n193808,automobile\n193809,airplane\n193810,ship\n193811,airplane\n193812,dog\n193813,ship\n193814,frog\n193815,deer\n193816,deer\n193817,dog\n193818,truck\n193819,frog\n193820,truck\n193821,automobile\n193822,dog\n193823,airplane\n193824,airplane\n193825,dog\n193826,airplane\n193827,ship\n193828,cat\n193829,deer\n193830,bird\n193831,dog\n193832,horse\n193833,bird\n193834,cat\n193835,deer\n193836,automobile\n193837,dog\n193838,frog\n193839,ship\n193840,bird\n193841,cat\n193842,truck\n193843,automobile\n193844,dog\n193845,ship\n193846,ship\n193847,airplane\n193848,bird\n193849,dog\n193850,deer\n193851,airplane\n193852,horse\n193853,cat\n193854,bird\n193855,dog\n193856,cat\n193857,deer\n193858,cat\n193859,frog\n193860,frog\n193861,horse\n193862,dog\n193863,deer\n193864,dog\n193865,horse\n193866,cat\n193867,horse\n193868,automobile\n193869,ship\n193870,frog\n193871,deer\n193872,frog\n193873,truck\n193874,cat\n193875,automobile\n193876,ship\n193877,frog\n193878,bird\n193879,dog\n193880,truck\n193881,cat\n193882,automobile\n193883,dog\n193884,ship\n193885,ship\n193886,deer\n193887,frog\n193888,automobile\n193889,truck\n193890,deer\n193891,ship\n193892,frog\n193893,horse\n193894,horse\n193895,truck\n193896,horse\n193897,truck\n193898,horse\n193899,dog\n193900,bird\n193901,horse\n193902,ship\n193903,automobile\n193904,cat\n193905,bird\n193906,frog\n193907,airplane\n193908,bird\n193909,airplane\n193910,frog\n193911,airplane\n193912,airplane\n193913,automobile\n193914,frog\n193915,automobile\n193916,deer\n193917,airplane\n193918,frog\n193919,airplane\n193920,automobile\n193921,truck\n193922,automobile\n193923,truck\n193924,airplane\n193925,truck\n193926,dog\n193927,dog\n193928,bird\n193929,dog\n193930,horse\n193931,deer\n193932,bird\n193933,truck\n193934,bird\n193935,cat\n193936,dog\n193937,deer\n193938,frog\n193939,ship\n193940,horse\n193941,automobile\n193942,dog\n193943,deer\n193944,airplane\n193945,frog\n193946,airplane\n193947,deer\n193948,bird\n193949,automobile\n193950,deer\n193951,dog\n193952,deer\n193953,truck\n193954,automobile\n193955,horse\n193956,frog\n193957,dog\n193958,frog\n193959,horse\n193960,airplane\n193961,cat\n193962,bird\n193963,ship\n193964,horse\n193965,ship\n193966,horse\n193967,automobile\n193968,automobile\n193969,cat\n193970,deer\n193971,dog\n193972,ship\n193973,dog\n193974,dog\n193975,deer\n193976,cat\n193977,cat\n193978,truck\n193979,frog\n193980,deer\n193981,horse\n193982,deer\n193983,automobile\n193984,dog\n193985,cat\n193986,airplane\n193987,cat\n193988,truck\n193989,truck\n193990,dog\n193991,deer\n193992,cat\n193993,dog\n193994,automobile\n193995,dog\n193996,cat\n193997,deer\n193998,ship\n193999,truck\n194000,deer\n194001,deer\n194002,horse\n194003,bird\n194004,automobile\n194005,horse\n194006,deer\n194007,truck\n194008,cat\n194009,dog\n194010,automobile\n194011,dog\n194012,frog\n194013,airplane\n194014,frog\n194015,automobile\n194016,dog\n194017,deer\n194018,horse\n194019,dog\n194020,automobile\n194021,deer\n194022,automobile\n194023,deer\n194024,deer\n194025,frog\n194026,ship\n194027,bird\n194028,automobile\n194029,cat\n194030,airplane\n194031,truck\n194032,bird\n194033,truck\n194034,horse\n194035,dog\n194036,bird\n194037,dog\n194038,ship\n194039,cat\n194040,ship\n194041,truck\n194042,bird\n194043,truck\n194044,ship\n194045,automobile\n194046,dog\n194047,ship\n194048,airplane\n194049,cat\n194050,truck\n194051,airplane\n194052,horse\n194053,frog\n194054,bird\n194055,dog\n194056,cat\n194057,truck\n194058,frog\n194059,ship\n194060,airplane\n194061,cat\n194062,deer\n194063,cat\n194064,horse\n194065,bird\n194066,dog\n194067,truck\n194068,horse\n194069,cat\n194070,ship\n194071,ship\n194072,truck\n194073,bird\n194074,horse\n194075,bird\n194076,truck\n194077,automobile\n194078,automobile\n194079,frog\n194080,cat\n194081,horse\n194082,deer\n194083,frog\n194084,bird\n194085,deer\n194086,airplane\n194087,deer\n194088,airplane\n194089,dog\n194090,truck\n194091,dog\n194092,horse\n194093,dog\n194094,frog\n194095,frog\n194096,deer\n194097,truck\n194098,horse\n194099,airplane\n194100,truck\n194101,deer\n194102,frog\n194103,dog\n194104,ship\n194105,dog\n194106,automobile\n194107,cat\n194108,bird\n194109,cat\n194110,horse\n194111,automobile\n194112,horse\n194113,dog\n194114,deer\n194115,cat\n194116,horse\n194117,bird\n194118,truck\n194119,dog\n194120,ship\n194121,horse\n194122,dog\n194123,dog\n194124,dog\n194125,ship\n194126,deer\n194127,frog\n194128,ship\n194129,horse\n194130,horse\n194131,truck\n194132,deer\n194133,bird\n194134,deer\n194135,bird\n194136,deer\n194137,deer\n194138,deer\n194139,ship\n194140,cat\n194141,horse\n194142,bird\n194143,ship\n194144,cat\n194145,horse\n194146,airplane\n194147,bird\n194148,deer\n194149,deer\n194150,cat\n194151,frog\n194152,deer\n194153,horse\n194154,automobile\n194155,truck\n194156,ship\n194157,cat\n194158,automobile\n194159,cat\n194160,automobile\n194161,ship\n194162,airplane\n194163,deer\n194164,dog\n194165,airplane\n194166,dog\n194167,deer\n194168,frog\n194169,dog\n194170,truck\n194171,cat\n194172,ship\n194173,frog\n194174,frog\n194175,airplane\n194176,deer\n194177,bird\n194178,dog\n194179,automobile\n194180,cat\n194181,bird\n194182,cat\n194183,cat\n194184,horse\n194185,ship\n194186,frog\n194187,deer\n194188,horse\n194189,deer\n194190,truck\n194191,airplane\n194192,dog\n194193,automobile\n194194,truck\n194195,ship\n194196,truck\n194197,bird\n194198,frog\n194199,ship\n194200,horse\n194201,automobile\n194202,frog\n194203,deer\n194204,frog\n194205,frog\n194206,ship\n194207,cat\n194208,cat\n194209,frog\n194210,automobile\n194211,frog\n194212,dog\n194213,deer\n194214,bird\n194215,automobile\n194216,ship\n194217,truck\n194218,airplane\n194219,bird\n194220,dog\n194221,airplane\n194222,deer\n194223,deer\n194224,bird\n194225,horse\n194226,airplane\n194227,cat\n194228,frog\n194229,automobile\n194230,ship\n194231,deer\n194232,ship\n194233,dog\n194234,frog\n194235,deer\n194236,horse\n194237,ship\n194238,cat\n194239,automobile\n194240,ship\n194241,ship\n194242,frog\n194243,frog\n194244,truck\n194245,horse\n194246,ship\n194247,deer\n194248,dog\n194249,bird\n194250,bird\n194251,airplane\n194252,truck\n194253,truck\n194254,frog\n194255,frog\n194256,horse\n194257,cat\n194258,bird\n194259,automobile\n194260,ship\n194261,deer\n194262,horse\n194263,deer\n194264,bird\n194265,frog\n194266,dog\n194267,horse\n194268,deer\n194269,horse\n194270,deer\n194271,deer\n194272,dog\n194273,bird\n194274,bird\n194275,truck\n194276,truck\n194277,deer\n194278,horse\n194279,ship\n194280,frog\n194281,cat\n194282,airplane\n194283,cat\n194284,truck\n194285,deer\n194286,automobile\n194287,dog\n194288,deer\n194289,truck\n194290,ship\n194291,bird\n194292,truck\n194293,cat\n194294,deer\n194295,airplane\n194296,deer\n194297,airplane\n194298,automobile\n194299,deer\n194300,horse\n194301,automobile\n194302,cat\n194303,truck\n194304,ship\n194305,dog\n194306,truck\n194307,bird\n194308,deer\n194309,dog\n194310,airplane\n194311,bird\n194312,deer\n194313,truck\n194314,bird\n194315,deer\n194316,bird\n194317,frog\n194318,horse\n194319,deer\n194320,airplane\n194321,deer\n194322,truck\n194323,deer\n194324,automobile\n194325,truck\n194326,automobile\n194327,frog\n194328,cat\n194329,truck\n194330,deer\n194331,cat\n194332,frog\n194333,frog\n194334,dog\n194335,automobile\n194336,ship\n194337,horse\n194338,bird\n194339,horse\n194340,deer\n194341,ship\n194342,horse\n194343,deer\n194344,deer\n194345,horse\n194346,frog\n194347,deer\n194348,deer\n194349,automobile\n194350,cat\n194351,deer\n194352,frog\n194353,automobile\n194354,truck\n194355,automobile\n194356,deer\n194357,bird\n194358,airplane\n194359,airplane\n194360,airplane\n194361,bird\n194362,deer\n194363,deer\n194364,deer\n194365,automobile\n194366,horse\n194367,truck\n194368,airplane\n194369,cat\n194370,deer\n194371,ship\n194372,frog\n194373,frog\n194374,automobile\n194375,dog\n194376,ship\n194377,airplane\n194378,horse\n194379,dog\n194380,deer\n194381,frog\n194382,airplane\n194383,ship\n194384,deer\n194385,cat\n194386,dog\n194387,horse\n194388,deer\n194389,deer\n194390,bird\n194391,cat\n194392,deer\n194393,ship\n194394,deer\n194395,bird\n194396,deer\n194397,cat\n194398,horse\n194399,frog\n194400,dog\n194401,bird\n194402,automobile\n194403,deer\n194404,horse\n194405,truck\n194406,horse\n194407,deer\n194408,bird\n194409,dog\n194410,cat\n194411,dog\n194412,dog\n194413,frog\n194414,cat\n194415,deer\n194416,frog\n194417,cat\n194418,deer\n194419,airplane\n194420,ship\n194421,airplane\n194422,dog\n194423,truck\n194424,horse\n194425,truck\n194426,cat\n194427,airplane\n194428,dog\n194429,deer\n194430,truck\n194431,airplane\n194432,frog\n194433,bird\n194434,airplane\n194435,bird\n194436,truck\n194437,horse\n194438,ship\n194439,airplane\n194440,airplane\n194441,dog\n194442,bird\n194443,deer\n194444,automobile\n194445,dog\n194446,cat\n194447,airplane\n194448,cat\n194449,deer\n194450,ship\n194451,airplane\n194452,automobile\n194453,dog\n194454,airplane\n194455,horse\n194456,airplane\n194457,cat\n194458,deer\n194459,deer\n194460,frog\n194461,ship\n194462,cat\n194463,horse\n194464,automobile\n194465,truck\n194466,cat\n194467,deer\n194468,deer\n194469,deer\n194470,cat\n194471,bird\n194472,truck\n194473,horse\n194474,truck\n194475,truck\n194476,truck\n194477,automobile\n194478,bird\n194479,deer\n194480,airplane\n194481,horse\n194482,dog\n194483,truck\n194484,deer\n194485,horse\n194486,truck\n194487,automobile\n194488,airplane\n194489,airplane\n194490,bird\n194491,cat\n194492,horse\n194493,horse\n194494,bird\n194495,automobile\n194496,airplane\n194497,truck\n194498,deer\n194499,truck\n194500,deer\n194501,airplane\n194502,horse\n194503,cat\n194504,deer\n194505,automobile\n194506,airplane\n194507,bird\n194508,horse\n194509,frog\n194510,deer\n194511,horse\n194512,frog\n194513,automobile\n194514,dog\n194515,bird\n194516,frog\n194517,deer\n194518,ship\n194519,ship\n194520,ship\n194521,frog\n194522,automobile\n194523,ship\n194524,truck\n194525,frog\n194526,frog\n194527,frog\n194528,bird\n194529,horse\n194530,dog\n194531,frog\n194532,dog\n194533,bird\n194534,bird\n194535,truck\n194536,dog\n194537,airplane\n194538,bird\n194539,horse\n194540,truck\n194541,horse\n194542,frog\n194543,truck\n194544,airplane\n194545,frog\n194546,ship\n194547,truck\n194548,cat\n194549,horse\n194550,airplane\n194551,bird\n194552,cat\n194553,airplane\n194554,automobile\n194555,truck\n194556,deer\n194557,bird\n194558,ship\n194559,airplane\n194560,frog\n194561,horse\n194562,dog\n194563,dog\n194564,truck\n194565,ship\n194566,cat\n194567,cat\n194568,cat\n194569,cat\n194570,ship\n194571,horse\n194572,bird\n194573,bird\n194574,horse\n194575,cat\n194576,dog\n194577,bird\n194578,ship\n194579,truck\n194580,deer\n194581,frog\n194582,frog\n194583,dog\n194584,deer\n194585,deer\n194586,frog\n194587,truck\n194588,ship\n194589,frog\n194590,cat\n194591,dog\n194592,deer\n194593,horse\n194594,horse\n194595,bird\n194596,dog\n194597,frog\n194598,deer\n194599,truck\n194600,deer\n194601,bird\n194602,bird\n194603,horse\n194604,cat\n194605,airplane\n194606,horse\n194607,horse\n194608,automobile\n194609,automobile\n194610,ship\n194611,deer\n194612,ship\n194613,truck\n194614,cat\n194615,truck\n194616,cat\n194617,frog\n194618,horse\n194619,horse\n194620,dog\n194621,cat\n194622,cat\n194623,deer\n194624,bird\n194625,airplane\n194626,frog\n194627,airplane\n194628,horse\n194629,truck\n194630,ship\n194631,deer\n194632,deer\n194633,truck\n194634,horse\n194635,horse\n194636,automobile\n194637,bird\n194638,airplane\n194639,deer\n194640,deer\n194641,ship\n194642,ship\n194643,ship\n194644,frog\n194645,horse\n194646,automobile\n194647,dog\n194648,truck\n194649,horse\n194650,cat\n194651,bird\n194652,airplane\n194653,automobile\n194654,ship\n194655,airplane\n194656,cat\n194657,dog\n194658,deer\n194659,truck\n194660,bird\n194661,frog\n194662,deer\n194663,horse\n194664,airplane\n194665,deer\n194666,cat\n194667,bird\n194668,ship\n194669,frog\n194670,deer\n194671,cat\n194672,frog\n194673,horse\n194674,frog\n194675,airplane\n194676,frog\n194677,truck\n194678,bird\n194679,deer\n194680,airplane\n194681,dog\n194682,bird\n194683,bird\n194684,cat\n194685,deer\n194686,automobile\n194687,truck\n194688,cat\n194689,dog\n194690,cat\n194691,frog\n194692,ship\n194693,airplane\n194694,cat\n194695,cat\n194696,dog\n194697,cat\n194698,dog\n194699,truck\n194700,dog\n194701,bird\n194702,horse\n194703,bird\n194704,horse\n194705,automobile\n194706,ship\n194707,airplane\n194708,deer\n194709,bird\n194710,deer\n194711,automobile\n194712,cat\n194713,deer\n194714,truck\n194715,ship\n194716,dog\n194717,frog\n194718,deer\n194719,dog\n194720,horse\n194721,deer\n194722,cat\n194723,frog\n194724,deer\n194725,horse\n194726,cat\n194727,bird\n194728,cat\n194729,deer\n194730,airplane\n194731,truck\n194732,automobile\n194733,dog\n194734,cat\n194735,airplane\n194736,dog\n194737,cat\n194738,cat\n194739,frog\n194740,truck\n194741,dog\n194742,cat\n194743,horse\n194744,dog\n194745,airplane\n194746,dog\n194747,cat\n194748,cat\n194749,airplane\n194750,automobile\n194751,ship\n194752,frog\n194753,frog\n194754,frog\n194755,cat\n194756,horse\n194757,deer\n194758,airplane\n194759,cat\n194760,deer\n194761,cat\n194762,bird\n194763,dog\n194764,cat\n194765,deer\n194766,frog\n194767,automobile\n194768,horse\n194769,ship\n194770,deer\n194771,horse\n194772,frog\n194773,cat\n194774,horse\n194775,horse\n194776,frog\n194777,dog\n194778,horse\n194779,airplane\n194780,dog\n194781,dog\n194782,horse\n194783,horse\n194784,frog\n194785,bird\n194786,frog\n194787,deer\n194788,dog\n194789,bird\n194790,deer\n194791,horse\n194792,ship\n194793,cat\n194794,frog\n194795,cat\n194796,truck\n194797,cat\n194798,deer\n194799,deer\n194800,deer\n194801,deer\n194802,ship\n194803,ship\n194804,deer\n194805,dog\n194806,airplane\n194807,cat\n194808,truck\n194809,truck\n194810,automobile\n194811,ship\n194812,airplane\n194813,horse\n194814,ship\n194815,deer\n194816,cat\n194817,horse\n194818,truck\n194819,truck\n194820,airplane\n194821,automobile\n194822,bird\n194823,cat\n194824,automobile\n194825,cat\n194826,dog\n194827,horse\n194828,deer\n194829,horse\n194830,horse\n194831,horse\n194832,ship\n194833,horse\n194834,dog\n194835,cat\n194836,cat\n194837,deer\n194838,automobile\n194839,airplane\n194840,deer\n194841,deer\n194842,airplane\n194843,deer\n194844,dog\n194845,deer\n194846,deer\n194847,dog\n194848,truck\n194849,deer\n194850,frog\n194851,dog\n194852,frog\n194853,deer\n194854,ship\n194855,cat\n194856,cat\n194857,dog\n194858,truck\n194859,deer\n194860,ship\n194861,deer\n194862,horse\n194863,cat\n194864,truck\n194865,cat\n194866,deer\n194867,frog\n194868,bird\n194869,truck\n194870,frog\n194871,bird\n194872,airplane\n194873,cat\n194874,frog\n194875,ship\n194876,horse\n194877,frog\n194878,dog\n194879,airplane\n194880,truck\n194881,horse\n194882,cat\n194883,cat\n194884,airplane\n194885,deer\n194886,cat\n194887,automobile\n194888,dog\n194889,frog\n194890,horse\n194891,airplane\n194892,cat\n194893,deer\n194894,automobile\n194895,dog\n194896,dog\n194897,deer\n194898,bird\n194899,cat\n194900,truck\n194901,cat\n194902,ship\n194903,deer\n194904,deer\n194905,horse\n194906,automobile\n194907,automobile\n194908,truck\n194909,deer\n194910,airplane\n194911,frog\n194912,frog\n194913,bird\n194914,dog\n194915,ship\n194916,dog\n194917,truck\n194918,automobile\n194919,bird\n194920,frog\n194921,bird\n194922,cat\n194923,deer\n194924,dog\n194925,automobile\n194926,cat\n194927,truck\n194928,frog\n194929,dog\n194930,cat\n194931,bird\n194932,airplane\n194933,cat\n194934,truck\n194935,dog\n194936,bird\n194937,cat\n194938,cat\n194939,deer\n194940,truck\n194941,automobile\n194942,horse\n194943,bird\n194944,frog\n194945,airplane\n194946,frog\n194947,automobile\n194948,airplane\n194949,frog\n194950,frog\n194951,truck\n194952,cat\n194953,truck\n194954,horse\n194955,horse\n194956,truck\n194957,dog\n194958,horse\n194959,dog\n194960,deer\n194961,deer\n194962,frog\n194963,deer\n194964,bird\n194965,horse\n194966,horse\n194967,truck\n194968,bird\n194969,airplane\n194970,cat\n194971,horse\n194972,bird\n194973,frog\n194974,frog\n194975,dog\n194976,bird\n194977,automobile\n194978,frog\n194979,frog\n194980,truck\n194981,airplane\n194982,airplane\n194983,horse\n194984,cat\n194985,bird\n194986,cat\n194987,frog\n194988,ship\n194989,ship\n194990,frog\n194991,cat\n194992,bird\n194993,dog\n194994,bird\n194995,horse\n194996,cat\n194997,truck\n194998,bird\n194999,deer\n195000,frog\n195001,truck\n195002,dog\n195003,automobile\n195004,ship\n195005,dog\n195006,deer\n195007,cat\n195008,dog\n195009,dog\n195010,deer\n195011,cat\n195012,automobile\n195013,deer\n195014,horse\n195015,dog\n195016,frog\n195017,dog\n195018,horse\n195019,bird\n195020,automobile\n195021,airplane\n195022,automobile\n195023,cat\n195024,ship\n195025,truck\n195026,deer\n195027,bird\n195028,cat\n195029,truck\n195030,dog\n195031,truck\n195032,automobile\n195033,bird\n195034,cat\n195035,frog\n195036,truck\n195037,truck\n195038,bird\n195039,truck\n195040,truck\n195041,deer\n195042,cat\n195043,horse\n195044,dog\n195045,truck\n195046,horse\n195047,cat\n195048,ship\n195049,deer\n195050,automobile\n195051,deer\n195052,ship\n195053,deer\n195054,dog\n195055,ship\n195056,dog\n195057,dog\n195058,ship\n195059,horse\n195060,cat\n195061,automobile\n195062,truck\n195063,airplane\n195064,deer\n195065,frog\n195066,cat\n195067,cat\n195068,ship\n195069,cat\n195070,bird\n195071,frog\n195072,horse\n195073,dog\n195074,deer\n195075,ship\n195076,dog\n195077,airplane\n195078,truck\n195079,deer\n195080,cat\n195081,truck\n195082,airplane\n195083,bird\n195084,truck\n195085,automobile\n195086,truck\n195087,horse\n195088,ship\n195089,bird\n195090,automobile\n195091,deer\n195092,deer\n195093,horse\n195094,cat\n195095,automobile\n195096,frog\n195097,dog\n195098,ship\n195099,frog\n195100,horse\n195101,deer\n195102,truck\n195103,horse\n195104,horse\n195105,truck\n195106,dog\n195107,deer\n195108,cat\n195109,automobile\n195110,truck\n195111,frog\n195112,deer\n195113,bird\n195114,cat\n195115,bird\n195116,truck\n195117,ship\n195118,deer\n195119,deer\n195120,bird\n195121,deer\n195122,frog\n195123,frog\n195124,automobile\n195125,horse\n195126,bird\n195127,horse\n195128,horse\n195129,horse\n195130,cat\n195131,ship\n195132,bird\n195133,automobile\n195134,horse\n195135,dog\n195136,deer\n195137,deer\n195138,frog\n195139,horse\n195140,cat\n195141,dog\n195142,deer\n195143,truck\n195144,horse\n195145,cat\n195146,ship\n195147,automobile\n195148,automobile\n195149,frog\n195150,horse\n195151,horse\n195152,deer\n195153,automobile\n195154,airplane\n195155,horse\n195156,bird\n195157,airplane\n195158,horse\n195159,airplane\n195160,deer\n195161,deer\n195162,deer\n195163,deer\n195164,truck\n195165,frog\n195166,ship\n195167,truck\n195168,horse\n195169,horse\n195170,deer\n195171,bird\n195172,deer\n195173,frog\n195174,deer\n195175,dog\n195176,dog\n195177,cat\n195178,airplane\n195179,truck\n195180,frog\n195181,airplane\n195182,bird\n195183,airplane\n195184,frog\n195185,frog\n195186,deer\n195187,cat\n195188,airplane\n195189,automobile\n195190,horse\n195191,horse\n195192,cat\n195193,horse\n195194,cat\n195195,airplane\n195196,bird\n195197,truck\n195198,frog\n195199,truck\n195200,truck\n195201,automobile\n195202,horse\n195203,dog\n195204,airplane\n195205,cat\n195206,cat\n195207,truck\n195208,dog\n195209,frog\n195210,airplane\n195211,automobile\n195212,dog\n195213,automobile\n195214,dog\n195215,frog\n195216,ship\n195217,horse\n195218,dog\n195219,horse\n195220,bird\n195221,frog\n195222,horse\n195223,bird\n195224,ship\n195225,frog\n195226,truck\n195227,bird\n195228,bird\n195229,horse\n195230,bird\n195231,truck\n195232,truck\n195233,deer\n195234,deer\n195235,cat\n195236,bird\n195237,horse\n195238,frog\n195239,airplane\n195240,frog\n195241,frog\n195242,dog\n195243,ship\n195244,truck\n195245,deer\n195246,bird\n195247,bird\n195248,automobile\n195249,frog\n195250,cat\n195251,cat\n195252,horse\n195253,automobile\n195254,frog\n195255,horse\n195256,frog\n195257,deer\n195258,horse\n195259,automobile\n195260,ship\n195261,cat\n195262,cat\n195263,dog\n195264,bird\n195265,truck\n195266,horse\n195267,dog\n195268,bird\n195269,ship\n195270,frog\n195271,deer\n195272,truck\n195273,frog\n195274,bird\n195275,dog\n195276,airplane\n195277,airplane\n195278,truck\n195279,airplane\n195280,ship\n195281,deer\n195282,cat\n195283,truck\n195284,ship\n195285,airplane\n195286,truck\n195287,automobile\n195288,ship\n195289,frog\n195290,airplane\n195291,bird\n195292,cat\n195293,frog\n195294,horse\n195295,cat\n195296,cat\n195297,dog\n195298,cat\n195299,cat\n195300,automobile\n195301,horse\n195302,ship\n195303,deer\n195304,airplane\n195305,truck\n195306,deer\n195307,bird\n195308,dog\n195309,horse\n195310,deer\n195311,frog\n195312,cat\n195313,airplane\n195314,dog\n195315,frog\n195316,truck\n195317,truck\n195318,frog\n195319,dog\n195320,truck\n195321,frog\n195322,truck\n195323,truck\n195324,airplane\n195325,truck\n195326,dog\n195327,frog\n195328,horse\n195329,truck\n195330,deer\n195331,truck\n195332,frog\n195333,frog\n195334,truck\n195335,deer\n195336,cat\n195337,frog\n195338,horse\n195339,ship\n195340,ship\n195341,frog\n195342,deer\n195343,deer\n195344,bird\n195345,cat\n195346,frog\n195347,bird\n195348,deer\n195349,deer\n195350,ship\n195351,automobile\n195352,cat\n195353,frog\n195354,frog\n195355,deer\n195356,truck\n195357,airplane\n195358,bird\n195359,ship\n195360,dog\n195361,deer\n195362,cat\n195363,bird\n195364,frog\n195365,frog\n195366,deer\n195367,bird\n195368,ship\n195369,ship\n195370,airplane\n195371,cat\n195372,frog\n195373,ship\n195374,deer\n195375,horse\n195376,airplane\n195377,ship\n195378,frog\n195379,cat\n195380,ship\n195381,bird\n195382,airplane\n195383,cat\n195384,dog\n195385,dog\n195386,airplane\n195387,automobile\n195388,deer\n195389,automobile\n195390,frog\n195391,automobile\n195392,dog\n195393,cat\n195394,cat\n195395,frog\n195396,horse\n195397,bird\n195398,bird\n195399,truck\n195400,dog\n195401,bird\n195402,automobile\n195403,frog\n195404,cat\n195405,horse\n195406,deer\n195407,cat\n195408,truck\n195409,horse\n195410,truck\n195411,cat\n195412,truck\n195413,frog\n195414,bird\n195415,frog\n195416,truck\n195417,deer\n195418,automobile\n195419,automobile\n195420,frog\n195421,truck\n195422,horse\n195423,deer\n195424,deer\n195425,deer\n195426,airplane\n195427,cat\n195428,cat\n195429,bird\n195430,truck\n195431,cat\n195432,deer\n195433,horse\n195434,bird\n195435,airplane\n195436,dog\n195437,truck\n195438,bird\n195439,horse\n195440,horse\n195441,horse\n195442,ship\n195443,truck\n195444,cat\n195445,dog\n195446,cat\n195447,truck\n195448,dog\n195449,truck\n195450,horse\n195451,dog\n195452,automobile\n195453,frog\n195454,horse\n195455,bird\n195456,dog\n195457,airplane\n195458,horse\n195459,dog\n195460,frog\n195461,horse\n195462,horse\n195463,dog\n195464,dog\n195465,deer\n195466,bird\n195467,dog\n195468,automobile\n195469,horse\n195470,frog\n195471,cat\n195472,deer\n195473,frog\n195474,frog\n195475,truck\n195476,cat\n195477,truck\n195478,bird\n195479,cat\n195480,cat\n195481,frog\n195482,truck\n195483,frog\n195484,deer\n195485,cat\n195486,horse\n195487,cat\n195488,automobile\n195489,deer\n195490,horse\n195491,frog\n195492,automobile\n195493,dog\n195494,dog\n195495,cat\n195496,ship\n195497,cat\n195498,frog\n195499,deer\n195500,airplane\n195501,dog\n195502,bird\n195503,dog\n195504,cat\n195505,bird\n195506,automobile\n195507,horse\n195508,automobile\n195509,cat\n195510,bird\n195511,automobile\n195512,ship\n195513,truck\n195514,ship\n195515,cat\n195516,automobile\n195517,cat\n195518,airplane\n195519,deer\n195520,truck\n195521,cat\n195522,ship\n195523,automobile\n195524,bird\n195525,bird\n195526,ship\n195527,ship\n195528,dog\n195529,cat\n195530,truck\n195531,airplane\n195532,deer\n195533,dog\n195534,cat\n195535,bird\n195536,cat\n195537,ship\n195538,bird\n195539,horse\n195540,airplane\n195541,truck\n195542,dog\n195543,horse\n195544,deer\n195545,cat\n195546,horse\n195547,horse\n195548,deer\n195549,cat\n195550,ship\n195551,truck\n195552,deer\n195553,horse\n195554,bird\n195555,horse\n195556,horse\n195557,dog\n195558,horse\n195559,airplane\n195560,frog\n195561,deer\n195562,automobile\n195563,cat\n195564,ship\n195565,automobile\n195566,bird\n195567,horse\n195568,cat\n195569,deer\n195570,bird\n195571,dog\n195572,cat\n195573,frog\n195574,airplane\n195575,cat\n195576,truck\n195577,airplane\n195578,deer\n195579,ship\n195580,airplane\n195581,cat\n195582,frog\n195583,horse\n195584,cat\n195585,automobile\n195586,dog\n195587,automobile\n195588,deer\n195589,bird\n195590,dog\n195591,airplane\n195592,deer\n195593,bird\n195594,cat\n195595,deer\n195596,airplane\n195597,airplane\n195598,automobile\n195599,airplane\n195600,automobile\n195601,frog\n195602,cat\n195603,dog\n195604,dog\n195605,airplane\n195606,horse\n195607,cat\n195608,dog\n195609,truck\n195610,airplane\n195611,horse\n195612,ship\n195613,truck\n195614,dog\n195615,horse\n195616,ship\n195617,ship\n195618,truck\n195619,deer\n195620,horse\n195621,bird\n195622,truck\n195623,horse\n195624,cat\n195625,bird\n195626,deer\n195627,bird\n195628,frog\n195629,cat\n195630,ship\n195631,ship\n195632,bird\n195633,frog\n195634,cat\n195635,horse\n195636,horse\n195637,deer\n195638,dog\n195639,dog\n195640,truck\n195641,truck\n195642,horse\n195643,bird\n195644,horse\n195645,frog\n195646,bird\n195647,truck\n195648,deer\n195649,dog\n195650,automobile\n195651,dog\n195652,frog\n195653,cat\n195654,frog\n195655,frog\n195656,cat\n195657,cat\n195658,horse\n195659,frog\n195660,dog\n195661,bird\n195662,ship\n195663,airplane\n195664,horse\n195665,ship\n195666,airplane\n195667,dog\n195668,truck\n195669,horse\n195670,automobile\n195671,bird\n195672,horse\n195673,deer\n195674,ship\n195675,truck\n195676,horse\n195677,bird\n195678,frog\n195679,truck\n195680,dog\n195681,airplane\n195682,horse\n195683,airplane\n195684,ship\n195685,ship\n195686,truck\n195687,frog\n195688,bird\n195689,automobile\n195690,frog\n195691,horse\n195692,frog\n195693,airplane\n195694,airplane\n195695,bird\n195696,horse\n195697,horse\n195698,frog\n195699,truck\n195700,truck\n195701,truck\n195702,horse\n195703,frog\n195704,truck\n195705,frog\n195706,automobile\n195707,airplane\n195708,truck\n195709,ship\n195710,truck\n195711,horse\n195712,deer\n195713,automobile\n195714,bird\n195715,ship\n195716,cat\n195717,ship\n195718,cat\n195719,cat\n195720,frog\n195721,cat\n195722,truck\n195723,deer\n195724,airplane\n195725,truck\n195726,airplane\n195727,horse\n195728,deer\n195729,cat\n195730,bird\n195731,frog\n195732,deer\n195733,airplane\n195734,airplane\n195735,truck\n195736,truck\n195737,ship\n195738,deer\n195739,ship\n195740,automobile\n195741,dog\n195742,dog\n195743,cat\n195744,bird\n195745,horse\n195746,dog\n195747,bird\n195748,truck\n195749,frog\n195750,deer\n195751,horse\n195752,frog\n195753,bird\n195754,deer\n195755,ship\n195756,dog\n195757,deer\n195758,horse\n195759,deer\n195760,truck\n195761,horse\n195762,horse\n195763,deer\n195764,horse\n195765,deer\n195766,airplane\n195767,frog\n195768,dog\n195769,dog\n195770,cat\n195771,ship\n195772,dog\n195773,ship\n195774,deer\n195775,bird\n195776,deer\n195777,dog\n195778,truck\n195779,airplane\n195780,deer\n195781,cat\n195782,bird\n195783,deer\n195784,automobile\n195785,frog\n195786,deer\n195787,frog\n195788,horse\n195789,bird\n195790,cat\n195791,ship\n195792,bird\n195793,ship\n195794,dog\n195795,ship\n195796,cat\n195797,bird\n195798,deer\n195799,deer\n195800,automobile\n195801,deer\n195802,automobile\n195803,dog\n195804,horse\n195805,bird\n195806,airplane\n195807,horse\n195808,ship\n195809,deer\n195810,automobile\n195811,truck\n195812,dog\n195813,dog\n195814,airplane\n195815,deer\n195816,airplane\n195817,ship\n195818,deer\n195819,deer\n195820,deer\n195821,frog\n195822,horse\n195823,ship\n195824,dog\n195825,ship\n195826,horse\n195827,dog\n195828,truck\n195829,automobile\n195830,deer\n195831,airplane\n195832,bird\n195833,cat\n195834,frog\n195835,deer\n195836,frog\n195837,truck\n195838,frog\n195839,bird\n195840,frog\n195841,deer\n195842,ship\n195843,truck\n195844,automobile\n195845,ship\n195846,cat\n195847,cat\n195848,airplane\n195849,deer\n195850,bird\n195851,frog\n195852,deer\n195853,deer\n195854,deer\n195855,cat\n195856,automobile\n195857,dog\n195858,airplane\n195859,deer\n195860,airplane\n195861,cat\n195862,cat\n195863,deer\n195864,frog\n195865,frog\n195866,frog\n195867,truck\n195868,ship\n195869,airplane\n195870,deer\n195871,truck\n195872,cat\n195873,deer\n195874,frog\n195875,deer\n195876,deer\n195877,cat\n195878,airplane\n195879,airplane\n195880,dog\n195881,cat\n195882,deer\n195883,automobile\n195884,automobile\n195885,cat\n195886,horse\n195887,airplane\n195888,bird\n195889,horse\n195890,airplane\n195891,cat\n195892,airplane\n195893,bird\n195894,ship\n195895,deer\n195896,deer\n195897,airplane\n195898,dog\n195899,ship\n195900,airplane\n195901,airplane\n195902,frog\n195903,ship\n195904,ship\n195905,horse\n195906,cat\n195907,horse\n195908,horse\n195909,truck\n195910,automobile\n195911,deer\n195912,horse\n195913,frog\n195914,cat\n195915,horse\n195916,bird\n195917,frog\n195918,deer\n195919,ship\n195920,deer\n195921,truck\n195922,frog\n195923,deer\n195924,cat\n195925,cat\n195926,truck\n195927,truck\n195928,bird\n195929,bird\n195930,deer\n195931,cat\n195932,ship\n195933,automobile\n195934,dog\n195935,horse\n195936,truck\n195937,truck\n195938,frog\n195939,truck\n195940,truck\n195941,frog\n195942,cat\n195943,deer\n195944,frog\n195945,automobile\n195946,frog\n195947,frog\n195948,deer\n195949,truck\n195950,cat\n195951,airplane\n195952,frog\n195953,deer\n195954,dog\n195955,cat\n195956,automobile\n195957,horse\n195958,horse\n195959,horse\n195960,airplane\n195961,automobile\n195962,dog\n195963,truck\n195964,truck\n195965,deer\n195966,ship\n195967,dog\n195968,dog\n195969,airplane\n195970,cat\n195971,dog\n195972,horse\n195973,truck\n195974,truck\n195975,bird\n195976,frog\n195977,cat\n195978,cat\n195979,frog\n195980,automobile\n195981,dog\n195982,frog\n195983,dog\n195984,deer\n195985,dog\n195986,ship\n195987,deer\n195988,ship\n195989,dog\n195990,truck\n195991,airplane\n195992,deer\n195993,frog\n195994,horse\n195995,automobile\n195996,dog\n195997,cat\n195998,frog\n195999,dog\n196000,airplane\n196001,frog\n196002,dog\n196003,airplane\n196004,cat\n196005,truck\n196006,deer\n196007,truck\n196008,horse\n196009,dog\n196010,horse\n196011,cat\n196012,truck\n196013,deer\n196014,cat\n196015,bird\n196016,ship\n196017,frog\n196018,cat\n196019,airplane\n196020,cat\n196021,ship\n196022,cat\n196023,ship\n196024,airplane\n196025,deer\n196026,bird\n196027,horse\n196028,ship\n196029,dog\n196030,truck\n196031,deer\n196032,horse\n196033,dog\n196034,cat\n196035,automobile\n196036,deer\n196037,deer\n196038,dog\n196039,horse\n196040,frog\n196041,automobile\n196042,dog\n196043,frog\n196044,horse\n196045,dog\n196046,frog\n196047,cat\n196048,deer\n196049,frog\n196050,deer\n196051,deer\n196052,truck\n196053,airplane\n196054,truck\n196055,horse\n196056,cat\n196057,truck\n196058,ship\n196059,cat\n196060,frog\n196061,cat\n196062,frog\n196063,frog\n196064,airplane\n196065,horse\n196066,deer\n196067,deer\n196068,cat\n196069,automobile\n196070,truck\n196071,automobile\n196072,dog\n196073,airplane\n196074,cat\n196075,frog\n196076,bird\n196077,bird\n196078,cat\n196079,horse\n196080,horse\n196081,cat\n196082,horse\n196083,frog\n196084,airplane\n196085,horse\n196086,deer\n196087,frog\n196088,bird\n196089,ship\n196090,ship\n196091,truck\n196092,frog\n196093,airplane\n196094,bird\n196095,frog\n196096,horse\n196097,cat\n196098,frog\n196099,dog\n196100,truck\n196101,truck\n196102,frog\n196103,horse\n196104,deer\n196105,bird\n196106,cat\n196107,truck\n196108,horse\n196109,airplane\n196110,truck\n196111,deer\n196112,truck\n196113,airplane\n196114,cat\n196115,ship\n196116,frog\n196117,truck\n196118,dog\n196119,dog\n196120,horse\n196121,bird\n196122,airplane\n196123,automobile\n196124,automobile\n196125,bird\n196126,deer\n196127,dog\n196128,bird\n196129,dog\n196130,dog\n196131,dog\n196132,deer\n196133,dog\n196134,horse\n196135,dog\n196136,automobile\n196137,horse\n196138,frog\n196139,airplane\n196140,deer\n196141,bird\n196142,automobile\n196143,horse\n196144,automobile\n196145,automobile\n196146,deer\n196147,ship\n196148,cat\n196149,ship\n196150,ship\n196151,airplane\n196152,dog\n196153,frog\n196154,automobile\n196155,cat\n196156,bird\n196157,horse\n196158,bird\n196159,cat\n196160,truck\n196161,automobile\n196162,deer\n196163,dog\n196164,bird\n196165,frog\n196166,truck\n196167,deer\n196168,airplane\n196169,deer\n196170,ship\n196171,ship\n196172,cat\n196173,truck\n196174,deer\n196175,horse\n196176,airplane\n196177,frog\n196178,truck\n196179,airplane\n196180,ship\n196181,ship\n196182,dog\n196183,ship\n196184,horse\n196185,cat\n196186,bird\n196187,horse\n196188,automobile\n196189,truck\n196190,truck\n196191,horse\n196192,ship\n196193,dog\n196194,deer\n196195,airplane\n196196,deer\n196197,ship\n196198,ship\n196199,deer\n196200,dog\n196201,deer\n196202,ship\n196203,frog\n196204,ship\n196205,bird\n196206,ship\n196207,truck\n196208,deer\n196209,deer\n196210,deer\n196211,airplane\n196212,cat\n196213,bird\n196214,cat\n196215,deer\n196216,truck\n196217,frog\n196218,bird\n196219,frog\n196220,dog\n196221,deer\n196222,frog\n196223,deer\n196224,airplane\n196225,airplane\n196226,horse\n196227,ship\n196228,airplane\n196229,truck\n196230,dog\n196231,frog\n196232,cat\n196233,frog\n196234,truck\n196235,ship\n196236,horse\n196237,airplane\n196238,truck\n196239,airplane\n196240,automobile\n196241,bird\n196242,dog\n196243,bird\n196244,bird\n196245,deer\n196246,cat\n196247,cat\n196248,truck\n196249,automobile\n196250,airplane\n196251,deer\n196252,frog\n196253,automobile\n196254,truck\n196255,truck\n196256,cat\n196257,ship\n196258,horse\n196259,deer\n196260,automobile\n196261,frog\n196262,cat\n196263,dog\n196264,truck\n196265,frog\n196266,automobile\n196267,cat\n196268,dog\n196269,horse\n196270,frog\n196271,ship\n196272,airplane\n196273,deer\n196274,horse\n196275,dog\n196276,truck\n196277,deer\n196278,ship\n196279,frog\n196280,ship\n196281,dog\n196282,bird\n196283,automobile\n196284,cat\n196285,truck\n196286,truck\n196287,deer\n196288,airplane\n196289,bird\n196290,frog\n196291,deer\n196292,airplane\n196293,truck\n196294,airplane\n196295,deer\n196296,dog\n196297,frog\n196298,deer\n196299,ship\n196300,horse\n196301,frog\n196302,airplane\n196303,airplane\n196304,cat\n196305,ship\n196306,horse\n196307,automobile\n196308,airplane\n196309,frog\n196310,horse\n196311,horse\n196312,dog\n196313,airplane\n196314,dog\n196315,frog\n196316,truck\n196317,ship\n196318,airplane\n196319,horse\n196320,horse\n196321,horse\n196322,cat\n196323,cat\n196324,frog\n196325,frog\n196326,automobile\n196327,ship\n196328,truck\n196329,automobile\n196330,airplane\n196331,ship\n196332,dog\n196333,dog\n196334,airplane\n196335,dog\n196336,horse\n196337,airplane\n196338,ship\n196339,horse\n196340,frog\n196341,horse\n196342,horse\n196343,frog\n196344,frog\n196345,airplane\n196346,bird\n196347,deer\n196348,cat\n196349,deer\n196350,bird\n196351,frog\n196352,dog\n196353,ship\n196354,cat\n196355,bird\n196356,bird\n196357,horse\n196358,ship\n196359,automobile\n196360,truck\n196361,truck\n196362,dog\n196363,horse\n196364,dog\n196365,ship\n196366,horse\n196367,airplane\n196368,frog\n196369,bird\n196370,deer\n196371,frog\n196372,truck\n196373,cat\n196374,deer\n196375,ship\n196376,horse\n196377,frog\n196378,horse\n196379,deer\n196380,cat\n196381,frog\n196382,bird\n196383,frog\n196384,cat\n196385,automobile\n196386,airplane\n196387,deer\n196388,dog\n196389,deer\n196390,cat\n196391,truck\n196392,dog\n196393,truck\n196394,truck\n196395,cat\n196396,deer\n196397,frog\n196398,frog\n196399,truck\n196400,deer\n196401,deer\n196402,airplane\n196403,horse\n196404,cat\n196405,airplane\n196406,ship\n196407,cat\n196408,dog\n196409,truck\n196410,ship\n196411,dog\n196412,airplane\n196413,deer\n196414,automobile\n196415,frog\n196416,cat\n196417,frog\n196418,truck\n196419,airplane\n196420,cat\n196421,truck\n196422,cat\n196423,cat\n196424,cat\n196425,airplane\n196426,frog\n196427,airplane\n196428,horse\n196429,deer\n196430,automobile\n196431,airplane\n196432,automobile\n196433,deer\n196434,airplane\n196435,dog\n196436,cat\n196437,ship\n196438,deer\n196439,deer\n196440,deer\n196441,airplane\n196442,horse\n196443,deer\n196444,deer\n196445,truck\n196446,dog\n196447,cat\n196448,cat\n196449,ship\n196450,dog\n196451,dog\n196452,deer\n196453,ship\n196454,frog\n196455,cat\n196456,horse\n196457,frog\n196458,frog\n196459,deer\n196460,dog\n196461,airplane\n196462,ship\n196463,deer\n196464,airplane\n196465,dog\n196466,horse\n196467,truck\n196468,deer\n196469,ship\n196470,horse\n196471,dog\n196472,horse\n196473,horse\n196474,airplane\n196475,bird\n196476,horse\n196477,truck\n196478,frog\n196479,frog\n196480,bird\n196481,horse\n196482,deer\n196483,ship\n196484,horse\n196485,truck\n196486,truck\n196487,horse\n196488,horse\n196489,bird\n196490,dog\n196491,deer\n196492,ship\n196493,frog\n196494,deer\n196495,cat\n196496,deer\n196497,truck\n196498,dog\n196499,bird\n196500,bird\n196501,bird\n196502,frog\n196503,horse\n196504,dog\n196505,dog\n196506,horse\n196507,truck\n196508,horse\n196509,cat\n196510,cat\n196511,bird\n196512,frog\n196513,dog\n196514,horse\n196515,deer\n196516,deer\n196517,automobile\n196518,deer\n196519,truck\n196520,cat\n196521,frog\n196522,truck\n196523,truck\n196524,deer\n196525,truck\n196526,cat\n196527,automobile\n196528,deer\n196529,frog\n196530,cat\n196531,ship\n196532,airplane\n196533,frog\n196534,cat\n196535,airplane\n196536,frog\n196537,dog\n196538,truck\n196539,deer\n196540,truck\n196541,frog\n196542,deer\n196543,bird\n196544,horse\n196545,truck\n196546,truck\n196547,truck\n196548,frog\n196549,airplane\n196550,bird\n196551,ship\n196552,truck\n196553,dog\n196554,ship\n196555,bird\n196556,bird\n196557,deer\n196558,deer\n196559,airplane\n196560,deer\n196561,frog\n196562,horse\n196563,automobile\n196564,bird\n196565,bird\n196566,dog\n196567,horse\n196568,ship\n196569,airplane\n196570,truck\n196571,bird\n196572,bird\n196573,airplane\n196574,bird\n196575,frog\n196576,horse\n196577,ship\n196578,horse\n196579,cat\n196580,cat\n196581,frog\n196582,dog\n196583,cat\n196584,automobile\n196585,horse\n196586,automobile\n196587,horse\n196588,bird\n196589,cat\n196590,cat\n196591,truck\n196592,airplane\n196593,truck\n196594,frog\n196595,horse\n196596,deer\n196597,bird\n196598,ship\n196599,ship\n196600,ship\n196601,truck\n196602,ship\n196603,automobile\n196604,airplane\n196605,automobile\n196606,deer\n196607,frog\n196608,deer\n196609,bird\n196610,cat\n196611,cat\n196612,horse\n196613,frog\n196614,frog\n196615,cat\n196616,frog\n196617,airplane\n196618,frog\n196619,ship\n196620,automobile\n196621,dog\n196622,bird\n196623,dog\n196624,dog\n196625,airplane\n196626,truck\n196627,ship\n196628,truck\n196629,dog\n196630,bird\n196631,horse\n196632,truck\n196633,ship\n196634,truck\n196635,cat\n196636,deer\n196637,deer\n196638,deer\n196639,dog\n196640,horse\n196641,dog\n196642,automobile\n196643,cat\n196644,deer\n196645,cat\n196646,truck\n196647,airplane\n196648,horse\n196649,truck\n196650,frog\n196651,frog\n196652,airplane\n196653,deer\n196654,cat\n196655,airplane\n196656,dog\n196657,automobile\n196658,dog\n196659,deer\n196660,cat\n196661,horse\n196662,dog\n196663,truck\n196664,automobile\n196665,airplane\n196666,cat\n196667,deer\n196668,airplane\n196669,dog\n196670,deer\n196671,deer\n196672,ship\n196673,automobile\n196674,frog\n196675,cat\n196676,cat\n196677,ship\n196678,frog\n196679,ship\n196680,truck\n196681,frog\n196682,automobile\n196683,automobile\n196684,cat\n196685,frog\n196686,truck\n196687,horse\n196688,frog\n196689,ship\n196690,ship\n196691,horse\n196692,dog\n196693,airplane\n196694,truck\n196695,ship\n196696,cat\n196697,frog\n196698,truck\n196699,dog\n196700,frog\n196701,ship\n196702,deer\n196703,horse\n196704,bird\n196705,frog\n196706,frog\n196707,frog\n196708,cat\n196709,cat\n196710,horse\n196711,cat\n196712,truck\n196713,truck\n196714,deer\n196715,airplane\n196716,cat\n196717,deer\n196718,deer\n196719,frog\n196720,deer\n196721,frog\n196722,truck\n196723,cat\n196724,horse\n196725,cat\n196726,horse\n196727,truck\n196728,airplane\n196729,cat\n196730,dog\n196731,cat\n196732,frog\n196733,truck\n196734,cat\n196735,airplane\n196736,horse\n196737,truck\n196738,dog\n196739,frog\n196740,cat\n196741,frog\n196742,truck\n196743,ship\n196744,cat\n196745,deer\n196746,truck\n196747,cat\n196748,bird\n196749,dog\n196750,truck\n196751,deer\n196752,dog\n196753,frog\n196754,truck\n196755,automobile\n196756,cat\n196757,airplane\n196758,cat\n196759,airplane\n196760,cat\n196761,frog\n196762,airplane\n196763,deer\n196764,deer\n196765,dog\n196766,airplane\n196767,frog\n196768,deer\n196769,dog\n196770,deer\n196771,cat\n196772,frog\n196773,deer\n196774,horse\n196775,cat\n196776,frog\n196777,frog\n196778,ship\n196779,truck\n196780,truck\n196781,bird\n196782,horse\n196783,deer\n196784,truck\n196785,ship\n196786,deer\n196787,deer\n196788,deer\n196789,truck\n196790,truck\n196791,bird\n196792,cat\n196793,airplane\n196794,truck\n196795,deer\n196796,truck\n196797,frog\n196798,dog\n196799,airplane\n196800,automobile\n196801,deer\n196802,cat\n196803,horse\n196804,airplane\n196805,cat\n196806,ship\n196807,deer\n196808,truck\n196809,cat\n196810,dog\n196811,dog\n196812,automobile\n196813,truck\n196814,bird\n196815,cat\n196816,deer\n196817,automobile\n196818,truck\n196819,dog\n196820,airplane\n196821,airplane\n196822,dog\n196823,bird\n196824,truck\n196825,bird\n196826,truck\n196827,airplane\n196828,truck\n196829,bird\n196830,dog\n196831,airplane\n196832,horse\n196833,deer\n196834,deer\n196835,ship\n196836,truck\n196837,cat\n196838,truck\n196839,frog\n196840,truck\n196841,dog\n196842,bird\n196843,dog\n196844,dog\n196845,frog\n196846,airplane\n196847,automobile\n196848,bird\n196849,deer\n196850,truck\n196851,deer\n196852,deer\n196853,cat\n196854,dog\n196855,dog\n196856,cat\n196857,deer\n196858,dog\n196859,automobile\n196860,frog\n196861,cat\n196862,cat\n196863,frog\n196864,airplane\n196865,truck\n196866,horse\n196867,airplane\n196868,deer\n196869,frog\n196870,truck\n196871,cat\n196872,ship\n196873,ship\n196874,cat\n196875,automobile\n196876,airplane\n196877,deer\n196878,deer\n196879,cat\n196880,frog\n196881,frog\n196882,dog\n196883,cat\n196884,ship\n196885,truck\n196886,bird\n196887,truck\n196888,dog\n196889,bird\n196890,truck\n196891,automobile\n196892,airplane\n196893,horse\n196894,cat\n196895,frog\n196896,dog\n196897,airplane\n196898,airplane\n196899,dog\n196900,deer\n196901,frog\n196902,dog\n196903,horse\n196904,automobile\n196905,dog\n196906,cat\n196907,dog\n196908,bird\n196909,dog\n196910,truck\n196911,frog\n196912,bird\n196913,frog\n196914,bird\n196915,cat\n196916,frog\n196917,dog\n196918,cat\n196919,frog\n196920,bird\n196921,deer\n196922,deer\n196923,frog\n196924,automobile\n196925,airplane\n196926,truck\n196927,automobile\n196928,frog\n196929,horse\n196930,airplane\n196931,cat\n196932,truck\n196933,deer\n196934,ship\n196935,dog\n196936,deer\n196937,truck\n196938,cat\n196939,bird\n196940,automobile\n196941,airplane\n196942,bird\n196943,dog\n196944,truck\n196945,airplane\n196946,bird\n196947,airplane\n196948,deer\n196949,truck\n196950,dog\n196951,dog\n196952,cat\n196953,deer\n196954,deer\n196955,deer\n196956,deer\n196957,deer\n196958,cat\n196959,dog\n196960,bird\n196961,dog\n196962,deer\n196963,automobile\n196964,ship\n196965,truck\n196966,ship\n196967,deer\n196968,airplane\n196969,airplane\n196970,horse\n196971,horse\n196972,frog\n196973,airplane\n196974,frog\n196975,automobile\n196976,frog\n196977,horse\n196978,frog\n196979,cat\n196980,frog\n196981,bird\n196982,deer\n196983,truck\n196984,dog\n196985,cat\n196986,cat\n196987,deer\n196988,bird\n196989,horse\n196990,horse\n196991,bird\n196992,horse\n196993,truck\n196994,frog\n196995,automobile\n196996,frog\n196997,truck\n196998,airplane\n196999,airplane\n197000,frog\n197001,cat\n197002,cat\n197003,cat\n197004,ship\n197005,bird\n197006,truck\n197007,cat\n197008,truck\n197009,deer\n197010,frog\n197011,cat\n197012,bird\n197013,truck\n197014,horse\n197015,cat\n197016,horse\n197017,horse\n197018,frog\n197019,dog\n197020,deer\n197021,airplane\n197022,deer\n197023,horse\n197024,ship\n197025,dog\n197026,frog\n197027,frog\n197028,automobile\n197029,bird\n197030,horse\n197031,dog\n197032,truck\n197033,cat\n197034,dog\n197035,frog\n197036,dog\n197037,horse\n197038,bird\n197039,automobile\n197040,frog\n197041,dog\n197042,ship\n197043,automobile\n197044,cat\n197045,truck\n197046,deer\n197047,automobile\n197048,frog\n197049,horse\n197050,dog\n197051,bird\n197052,airplane\n197053,bird\n197054,airplane\n197055,horse\n197056,deer\n197057,cat\n197058,bird\n197059,airplane\n197060,airplane\n197061,automobile\n197062,truck\n197063,airplane\n197064,ship\n197065,dog\n197066,horse\n197067,airplane\n197068,deer\n197069,truck\n197070,ship\n197071,bird\n197072,bird\n197073,bird\n197074,horse\n197075,deer\n197076,cat\n197077,cat\n197078,dog\n197079,cat\n197080,truck\n197081,deer\n197082,truck\n197083,cat\n197084,truck\n197085,truck\n197086,ship\n197087,airplane\n197088,frog\n197089,bird\n197090,airplane\n197091,cat\n197092,dog\n197093,cat\n197094,deer\n197095,frog\n197096,deer\n197097,deer\n197098,ship\n197099,cat\n197100,airplane\n197101,truck\n197102,automobile\n197103,airplane\n197104,airplane\n197105,cat\n197106,truck\n197107,frog\n197108,cat\n197109,dog\n197110,deer\n197111,dog\n197112,dog\n197113,ship\n197114,ship\n197115,deer\n197116,bird\n197117,dog\n197118,bird\n197119,frog\n197120,dog\n197121,deer\n197122,ship\n197123,automobile\n197124,airplane\n197125,airplane\n197126,automobile\n197127,automobile\n197128,airplane\n197129,ship\n197130,automobile\n197131,dog\n197132,frog\n197133,bird\n197134,deer\n197135,dog\n197136,horse\n197137,frog\n197138,ship\n197139,deer\n197140,deer\n197141,ship\n197142,deer\n197143,truck\n197144,cat\n197145,cat\n197146,deer\n197147,horse\n197148,airplane\n197149,dog\n197150,deer\n197151,bird\n197152,bird\n197153,horse\n197154,deer\n197155,dog\n197156,frog\n197157,bird\n197158,deer\n197159,horse\n197160,dog\n197161,deer\n197162,truck\n197163,frog\n197164,truck\n197165,automobile\n197166,truck\n197167,ship\n197168,deer\n197169,horse\n197170,cat\n197171,truck\n197172,frog\n197173,automobile\n197174,frog\n197175,horse\n197176,deer\n197177,cat\n197178,horse\n197179,deer\n197180,airplane\n197181,dog\n197182,cat\n197183,deer\n197184,airplane\n197185,deer\n197186,horse\n197187,horse\n197188,dog\n197189,frog\n197190,truck\n197191,dog\n197192,deer\n197193,dog\n197194,frog\n197195,frog\n197196,bird\n197197,deer\n197198,airplane\n197199,frog\n197200,deer\n197201,deer\n197202,cat\n197203,automobile\n197204,bird\n197205,deer\n197206,truck\n197207,truck\n197208,bird\n197209,deer\n197210,truck\n197211,ship\n197212,truck\n197213,deer\n197214,ship\n197215,ship\n197216,dog\n197217,truck\n197218,bird\n197219,dog\n197220,frog\n197221,frog\n197222,cat\n197223,frog\n197224,cat\n197225,airplane\n197226,cat\n197227,automobile\n197228,bird\n197229,deer\n197230,horse\n197231,horse\n197232,airplane\n197233,deer\n197234,bird\n197235,bird\n197236,ship\n197237,truck\n197238,horse\n197239,bird\n197240,truck\n197241,deer\n197242,automobile\n197243,horse\n197244,ship\n197245,deer\n197246,bird\n197247,deer\n197248,truck\n197249,automobile\n197250,frog\n197251,deer\n197252,automobile\n197253,deer\n197254,truck\n197255,airplane\n197256,truck\n197257,dog\n197258,bird\n197259,bird\n197260,truck\n197261,horse\n197262,bird\n197263,deer\n197264,automobile\n197265,cat\n197266,horse\n197267,bird\n197268,airplane\n197269,dog\n197270,cat\n197271,automobile\n197272,truck\n197273,horse\n197274,automobile\n197275,ship\n197276,ship\n197277,frog\n197278,deer\n197279,cat\n197280,truck\n197281,deer\n197282,airplane\n197283,frog\n197284,bird\n197285,cat\n197286,bird\n197287,airplane\n197288,bird\n197289,truck\n197290,cat\n197291,dog\n197292,deer\n197293,cat\n197294,airplane\n197295,horse\n197296,automobile\n197297,ship\n197298,ship\n197299,ship\n197300,airplane\n197301,truck\n197302,airplane\n197303,airplane\n197304,bird\n197305,ship\n197306,dog\n197307,deer\n197308,cat\n197309,horse\n197310,horse\n197311,truck\n197312,ship\n197313,cat\n197314,ship\n197315,deer\n197316,airplane\n197317,automobile\n197318,deer\n197319,airplane\n197320,truck\n197321,horse\n197322,deer\n197323,dog\n197324,cat\n197325,cat\n197326,ship\n197327,horse\n197328,bird\n197329,dog\n197330,dog\n197331,frog\n197332,bird\n197333,deer\n197334,dog\n197335,frog\n197336,airplane\n197337,horse\n197338,bird\n197339,deer\n197340,horse\n197341,automobile\n197342,dog\n197343,deer\n197344,horse\n197345,deer\n197346,deer\n197347,truck\n197348,cat\n197349,cat\n197350,automobile\n197351,frog\n197352,deer\n197353,truck\n197354,bird\n197355,cat\n197356,cat\n197357,dog\n197358,truck\n197359,frog\n197360,dog\n197361,cat\n197362,truck\n197363,airplane\n197364,ship\n197365,frog\n197366,ship\n197367,deer\n197368,frog\n197369,airplane\n197370,dog\n197371,bird\n197372,bird\n197373,bird\n197374,deer\n197375,dog\n197376,deer\n197377,frog\n197378,ship\n197379,horse\n197380,cat\n197381,deer\n197382,dog\n197383,deer\n197384,dog\n197385,cat\n197386,horse\n197387,dog\n197388,deer\n197389,bird\n197390,ship\n197391,cat\n197392,horse\n197393,bird\n197394,deer\n197395,deer\n197396,ship\n197397,bird\n197398,deer\n197399,ship\n197400,frog\n197401,horse\n197402,automobile\n197403,deer\n197404,truck\n197405,horse\n197406,bird\n197407,deer\n197408,cat\n197409,cat\n197410,cat\n197411,deer\n197412,cat\n197413,automobile\n197414,deer\n197415,dog\n197416,cat\n197417,frog\n197418,bird\n197419,cat\n197420,airplane\n197421,cat\n197422,deer\n197423,cat\n197424,dog\n197425,deer\n197426,bird\n197427,ship\n197428,horse\n197429,bird\n197430,bird\n197431,truck\n197432,deer\n197433,deer\n197434,cat\n197435,horse\n197436,frog\n197437,bird\n197438,horse\n197439,deer\n197440,ship\n197441,automobile\n197442,cat\n197443,truck\n197444,frog\n197445,cat\n197446,dog\n197447,deer\n197448,automobile\n197449,horse\n197450,truck\n197451,bird\n197452,airplane\n197453,airplane\n197454,cat\n197455,deer\n197456,ship\n197457,dog\n197458,truck\n197459,cat\n197460,airplane\n197461,ship\n197462,cat\n197463,dog\n197464,automobile\n197465,bird\n197466,horse\n197467,ship\n197468,frog\n197469,deer\n197470,dog\n197471,bird\n197472,frog\n197473,truck\n197474,dog\n197475,bird\n197476,frog\n197477,airplane\n197478,bird\n197479,deer\n197480,truck\n197481,ship\n197482,cat\n197483,deer\n197484,frog\n197485,cat\n197486,dog\n197487,cat\n197488,automobile\n197489,cat\n197490,frog\n197491,ship\n197492,horse\n197493,airplane\n197494,ship\n197495,deer\n197496,ship\n197497,deer\n197498,bird\n197499,deer\n197500,airplane\n197501,ship\n197502,cat\n197503,horse\n197504,dog\n197505,frog\n197506,cat\n197507,truck\n197508,bird\n197509,ship\n197510,horse\n197511,horse\n197512,deer\n197513,deer\n197514,frog\n197515,bird\n197516,automobile\n197517,ship\n197518,truck\n197519,cat\n197520,deer\n197521,deer\n197522,deer\n197523,dog\n197524,automobile\n197525,airplane\n197526,deer\n197527,bird\n197528,deer\n197529,horse\n197530,truck\n197531,horse\n197532,bird\n197533,cat\n197534,ship\n197535,deer\n197536,automobile\n197537,frog\n197538,ship\n197539,horse\n197540,frog\n197541,dog\n197542,ship\n197543,truck\n197544,cat\n197545,cat\n197546,frog\n197547,deer\n197548,deer\n197549,frog\n197550,truck\n197551,horse\n197552,airplane\n197553,cat\n197554,dog\n197555,truck\n197556,deer\n197557,frog\n197558,truck\n197559,frog\n197560,frog\n197561,automobile\n197562,deer\n197563,deer\n197564,horse\n197565,horse\n197566,automobile\n197567,airplane\n197568,cat\n197569,ship\n197570,bird\n197571,bird\n197572,airplane\n197573,cat\n197574,frog\n197575,frog\n197576,truck\n197577,frog\n197578,frog\n197579,automobile\n197580,deer\n197581,deer\n197582,frog\n197583,frog\n197584,truck\n197585,horse\n197586,truck\n197587,deer\n197588,deer\n197589,deer\n197590,deer\n197591,truck\n197592,deer\n197593,airplane\n197594,horse\n197595,bird\n197596,bird\n197597,dog\n197598,deer\n197599,bird\n197600,ship\n197601,deer\n197602,ship\n197603,horse\n197604,frog\n197605,automobile\n197606,truck\n197607,dog\n197608,frog\n197609,airplane\n197610,automobile\n197611,truck\n197612,automobile\n197613,deer\n197614,bird\n197615,bird\n197616,airplane\n197617,deer\n197618,frog\n197619,bird\n197620,airplane\n197621,frog\n197622,bird\n197623,dog\n197624,dog\n197625,deer\n197626,deer\n197627,dog\n197628,cat\n197629,bird\n197630,truck\n197631,airplane\n197632,frog\n197633,truck\n197634,ship\n197635,automobile\n197636,automobile\n197637,cat\n197638,cat\n197639,dog\n197640,horse\n197641,horse\n197642,cat\n197643,ship\n197644,deer\n197645,frog\n197646,cat\n197647,automobile\n197648,frog\n197649,automobile\n197650,frog\n197651,truck\n197652,truck\n197653,automobile\n197654,cat\n197655,frog\n197656,dog\n197657,airplane\n197658,truck\n197659,cat\n197660,truck\n197661,cat\n197662,airplane\n197663,automobile\n197664,airplane\n197665,horse\n197666,automobile\n197667,horse\n197668,dog\n197669,cat\n197670,ship\n197671,deer\n197672,frog\n197673,dog\n197674,airplane\n197675,airplane\n197676,automobile\n197677,airplane\n197678,cat\n197679,frog\n197680,truck\n197681,frog\n197682,bird\n197683,dog\n197684,truck\n197685,frog\n197686,automobile\n197687,deer\n197688,automobile\n197689,ship\n197690,bird\n197691,frog\n197692,dog\n197693,horse\n197694,automobile\n197695,automobile\n197696,automobile\n197697,deer\n197698,frog\n197699,airplane\n197700,horse\n197701,airplane\n197702,dog\n197703,cat\n197704,horse\n197705,ship\n197706,frog\n197707,dog\n197708,cat\n197709,bird\n197710,truck\n197711,automobile\n197712,airplane\n197713,ship\n197714,frog\n197715,dog\n197716,deer\n197717,horse\n197718,bird\n197719,cat\n197720,deer\n197721,airplane\n197722,deer\n197723,ship\n197724,horse\n197725,automobile\n197726,truck\n197727,ship\n197728,cat\n197729,ship\n197730,deer\n197731,dog\n197732,dog\n197733,frog\n197734,cat\n197735,deer\n197736,dog\n197737,horse\n197738,frog\n197739,dog\n197740,automobile\n197741,bird\n197742,bird\n197743,frog\n197744,cat\n197745,horse\n197746,horse\n197747,airplane\n197748,cat\n197749,bird\n197750,dog\n197751,dog\n197752,bird\n197753,deer\n197754,truck\n197755,horse\n197756,dog\n197757,frog\n197758,ship\n197759,deer\n197760,ship\n197761,dog\n197762,airplane\n197763,ship\n197764,horse\n197765,automobile\n197766,horse\n197767,cat\n197768,horse\n197769,deer\n197770,deer\n197771,airplane\n197772,truck\n197773,ship\n197774,deer\n197775,ship\n197776,cat\n197777,cat\n197778,horse\n197779,automobile\n197780,deer\n197781,automobile\n197782,automobile\n197783,dog\n197784,automobile\n197785,deer\n197786,frog\n197787,frog\n197788,dog\n197789,bird\n197790,ship\n197791,truck\n197792,deer\n197793,truck\n197794,deer\n197795,cat\n197796,deer\n197797,deer\n197798,dog\n197799,horse\n197800,dog\n197801,frog\n197802,airplane\n197803,ship\n197804,horse\n197805,cat\n197806,automobile\n197807,dog\n197808,airplane\n197809,ship\n197810,truck\n197811,automobile\n197812,cat\n197813,bird\n197814,ship\n197815,ship\n197816,cat\n197817,dog\n197818,horse\n197819,dog\n197820,horse\n197821,horse\n197822,horse\n197823,airplane\n197824,dog\n197825,ship\n197826,dog\n197827,deer\n197828,automobile\n197829,dog\n197830,dog\n197831,deer\n197832,airplane\n197833,automobile\n197834,deer\n197835,horse\n197836,horse\n197837,cat\n197838,horse\n197839,horse\n197840,cat\n197841,dog\n197842,cat\n197843,cat\n197844,frog\n197845,ship\n197846,bird\n197847,deer\n197848,deer\n197849,dog\n197850,cat\n197851,bird\n197852,cat\n197853,deer\n197854,ship\n197855,frog\n197856,horse\n197857,bird\n197858,dog\n197859,truck\n197860,dog\n197861,deer\n197862,deer\n197863,horse\n197864,cat\n197865,dog\n197866,deer\n197867,frog\n197868,airplane\n197869,frog\n197870,airplane\n197871,horse\n197872,ship\n197873,frog\n197874,frog\n197875,horse\n197876,dog\n197877,truck\n197878,horse\n197879,automobile\n197880,bird\n197881,airplane\n197882,dog\n197883,airplane\n197884,cat\n197885,ship\n197886,frog\n197887,airplane\n197888,ship\n197889,ship\n197890,frog\n197891,airplane\n197892,deer\n197893,truck\n197894,deer\n197895,cat\n197896,frog\n197897,cat\n197898,truck\n197899,dog\n197900,bird\n197901,dog\n197902,deer\n197903,truck\n197904,truck\n197905,deer\n197906,truck\n197907,cat\n197908,bird\n197909,truck\n197910,frog\n197911,truck\n197912,dog\n197913,truck\n197914,horse\n197915,cat\n197916,ship\n197917,ship\n197918,cat\n197919,horse\n197920,deer\n197921,truck\n197922,frog\n197923,deer\n197924,ship\n197925,bird\n197926,deer\n197927,airplane\n197928,airplane\n197929,cat\n197930,truck\n197931,cat\n197932,horse\n197933,cat\n197934,horse\n197935,horse\n197936,deer\n197937,airplane\n197938,cat\n197939,deer\n197940,cat\n197941,airplane\n197942,dog\n197943,dog\n197944,cat\n197945,ship\n197946,airplane\n197947,airplane\n197948,cat\n197949,deer\n197950,frog\n197951,horse\n197952,deer\n197953,airplane\n197954,automobile\n197955,bird\n197956,dog\n197957,horse\n197958,dog\n197959,bird\n197960,truck\n197961,deer\n197962,frog\n197963,truck\n197964,dog\n197965,airplane\n197966,deer\n197967,ship\n197968,automobile\n197969,airplane\n197970,deer\n197971,airplane\n197972,deer\n197973,cat\n197974,dog\n197975,deer\n197976,bird\n197977,truck\n197978,automobile\n197979,bird\n197980,automobile\n197981,truck\n197982,airplane\n197983,deer\n197984,cat\n197985,dog\n197986,deer\n197987,frog\n197988,deer\n197989,truck\n197990,horse\n197991,dog\n197992,deer\n197993,ship\n197994,truck\n197995,horse\n197996,cat\n197997,dog\n197998,airplane\n197999,horse\n198000,cat\n198001,frog\n198002,ship\n198003,horse\n198004,deer\n198005,frog\n198006,deer\n198007,deer\n198008,bird\n198009,horse\n198010,bird\n198011,horse\n198012,cat\n198013,frog\n198014,ship\n198015,truck\n198016,frog\n198017,frog\n198018,frog\n198019,truck\n198020,automobile\n198021,automobile\n198022,dog\n198023,deer\n198024,ship\n198025,bird\n198026,deer\n198027,dog\n198028,deer\n198029,automobile\n198030,frog\n198031,bird\n198032,horse\n198033,frog\n198034,frog\n198035,ship\n198036,horse\n198037,dog\n198038,truck\n198039,frog\n198040,deer\n198041,ship\n198042,ship\n198043,truck\n198044,airplane\n198045,bird\n198046,cat\n198047,deer\n198048,automobile\n198049,cat\n198050,frog\n198051,deer\n198052,automobile\n198053,frog\n198054,deer\n198055,cat\n198056,cat\n198057,airplane\n198058,truck\n198059,dog\n198060,ship\n198061,deer\n198062,bird\n198063,truck\n198064,ship\n198065,bird\n198066,bird\n198067,frog\n198068,airplane\n198069,frog\n198070,dog\n198071,automobile\n198072,truck\n198073,horse\n198074,airplane\n198075,truck\n198076,bird\n198077,frog\n198078,deer\n198079,horse\n198080,ship\n198081,automobile\n198082,truck\n198083,truck\n198084,truck\n198085,frog\n198086,frog\n198087,frog\n198088,horse\n198089,dog\n198090,dog\n198091,cat\n198092,horse\n198093,deer\n198094,deer\n198095,ship\n198096,truck\n198097,truck\n198098,bird\n198099,horse\n198100,automobile\n198101,airplane\n198102,airplane\n198103,horse\n198104,deer\n198105,dog\n198106,cat\n198107,dog\n198108,cat\n198109,bird\n198110,automobile\n198111,dog\n198112,automobile\n198113,automobile\n198114,cat\n198115,truck\n198116,deer\n198117,deer\n198118,truck\n198119,horse\n198120,automobile\n198121,horse\n198122,bird\n198123,cat\n198124,automobile\n198125,ship\n198126,bird\n198127,deer\n198128,truck\n198129,automobile\n198130,truck\n198131,ship\n198132,ship\n198133,dog\n198134,bird\n198135,airplane\n198136,horse\n198137,horse\n198138,automobile\n198139,deer\n198140,bird\n198141,cat\n198142,dog\n198143,automobile\n198144,ship\n198145,truck\n198146,dog\n198147,ship\n198148,horse\n198149,horse\n198150,cat\n198151,horse\n198152,cat\n198153,cat\n198154,automobile\n198155,deer\n198156,dog\n198157,cat\n198158,truck\n198159,airplane\n198160,dog\n198161,automobile\n198162,automobile\n198163,frog\n198164,bird\n198165,dog\n198166,deer\n198167,dog\n198168,truck\n198169,cat\n198170,automobile\n198171,airplane\n198172,deer\n198173,ship\n198174,automobile\n198175,ship\n198176,frog\n198177,airplane\n198178,cat\n198179,automobile\n198180,bird\n198181,cat\n198182,automobile\n198183,deer\n198184,dog\n198185,ship\n198186,horse\n198187,airplane\n198188,ship\n198189,deer\n198190,automobile\n198191,bird\n198192,deer\n198193,frog\n198194,truck\n198195,cat\n198196,horse\n198197,ship\n198198,deer\n198199,ship\n198200,deer\n198201,airplane\n198202,horse\n198203,cat\n198204,deer\n198205,bird\n198206,ship\n198207,deer\n198208,bird\n198209,horse\n198210,airplane\n198211,truck\n198212,bird\n198213,frog\n198214,dog\n198215,deer\n198216,truck\n198217,deer\n198218,ship\n198219,ship\n198220,dog\n198221,truck\n198222,frog\n198223,cat\n198224,deer\n198225,ship\n198226,truck\n198227,ship\n198228,dog\n198229,frog\n198230,dog\n198231,dog\n198232,horse\n198233,deer\n198234,truck\n198235,horse\n198236,ship\n198237,airplane\n198238,bird\n198239,airplane\n198240,truck\n198241,automobile\n198242,ship\n198243,airplane\n198244,frog\n198245,ship\n198246,ship\n198247,cat\n198248,ship\n198249,ship\n198250,horse\n198251,deer\n198252,bird\n198253,deer\n198254,truck\n198255,horse\n198256,dog\n198257,frog\n198258,truck\n198259,ship\n198260,cat\n198261,bird\n198262,bird\n198263,cat\n198264,horse\n198265,deer\n198266,deer\n198267,frog\n198268,airplane\n198269,dog\n198270,frog\n198271,ship\n198272,airplane\n198273,truck\n198274,automobile\n198275,frog\n198276,horse\n198277,ship\n198278,deer\n198279,truck\n198280,deer\n198281,bird\n198282,deer\n198283,truck\n198284,horse\n198285,cat\n198286,horse\n198287,ship\n198288,frog\n198289,airplane\n198290,cat\n198291,dog\n198292,cat\n198293,bird\n198294,horse\n198295,deer\n198296,airplane\n198297,dog\n198298,cat\n198299,ship\n198300,cat\n198301,horse\n198302,deer\n198303,cat\n198304,horse\n198305,truck\n198306,truck\n198307,airplane\n198308,deer\n198309,truck\n198310,horse\n198311,dog\n198312,cat\n198313,bird\n198314,deer\n198315,truck\n198316,frog\n198317,bird\n198318,bird\n198319,airplane\n198320,horse\n198321,automobile\n198322,truck\n198323,cat\n198324,truck\n198325,horse\n198326,deer\n198327,automobile\n198328,horse\n198329,cat\n198330,horse\n198331,ship\n198332,cat\n198333,airplane\n198334,bird\n198335,airplane\n198336,frog\n198337,ship\n198338,ship\n198339,dog\n198340,frog\n198341,ship\n198342,frog\n198343,automobile\n198344,truck\n198345,cat\n198346,dog\n198347,cat\n198348,deer\n198349,cat\n198350,bird\n198351,truck\n198352,horse\n198353,cat\n198354,deer\n198355,dog\n198356,deer\n198357,airplane\n198358,deer\n198359,bird\n198360,truck\n198361,frog\n198362,deer\n198363,automobile\n198364,cat\n198365,cat\n198366,airplane\n198367,bird\n198368,dog\n198369,frog\n198370,dog\n198371,airplane\n198372,dog\n198373,frog\n198374,automobile\n198375,deer\n198376,frog\n198377,cat\n198378,ship\n198379,airplane\n198380,deer\n198381,horse\n198382,bird\n198383,automobile\n198384,dog\n198385,cat\n198386,automobile\n198387,ship\n198388,airplane\n198389,frog\n198390,cat\n198391,deer\n198392,frog\n198393,horse\n198394,cat\n198395,cat\n198396,horse\n198397,bird\n198398,automobile\n198399,ship\n198400,frog\n198401,horse\n198402,cat\n198403,truck\n198404,airplane\n198405,cat\n198406,truck\n198407,cat\n198408,deer\n198409,bird\n198410,horse\n198411,ship\n198412,frog\n198413,dog\n198414,deer\n198415,truck\n198416,bird\n198417,airplane\n198418,deer\n198419,cat\n198420,frog\n198421,horse\n198422,bird\n198423,airplane\n198424,bird\n198425,bird\n198426,airplane\n198427,frog\n198428,cat\n198429,frog\n198430,bird\n198431,bird\n198432,ship\n198433,frog\n198434,frog\n198435,truck\n198436,horse\n198437,truck\n198438,horse\n198439,frog\n198440,airplane\n198441,deer\n198442,airplane\n198443,airplane\n198444,frog\n198445,bird\n198446,dog\n198447,airplane\n198448,dog\n198449,truck\n198450,horse\n198451,cat\n198452,bird\n198453,horse\n198454,deer\n198455,truck\n198456,horse\n198457,airplane\n198458,dog\n198459,cat\n198460,truck\n198461,cat\n198462,deer\n198463,ship\n198464,ship\n198465,ship\n198466,frog\n198467,frog\n198468,truck\n198469,bird\n198470,cat\n198471,frog\n198472,bird\n198473,dog\n198474,ship\n198475,frog\n198476,deer\n198477,automobile\n198478,frog\n198479,airplane\n198480,airplane\n198481,ship\n198482,dog\n198483,cat\n198484,frog\n198485,airplane\n198486,ship\n198487,airplane\n198488,horse\n198489,cat\n198490,airplane\n198491,deer\n198492,deer\n198493,bird\n198494,horse\n198495,dog\n198496,frog\n198497,automobile\n198498,dog\n198499,truck\n198500,ship\n198501,frog\n198502,automobile\n198503,cat\n198504,dog\n198505,truck\n198506,cat\n198507,airplane\n198508,horse\n198509,ship\n198510,truck\n198511,truck\n198512,bird\n198513,airplane\n198514,automobile\n198515,horse\n198516,horse\n198517,horse\n198518,ship\n198519,automobile\n198520,frog\n198521,frog\n198522,truck\n198523,bird\n198524,dog\n198525,ship\n198526,dog\n198527,horse\n198528,ship\n198529,ship\n198530,truck\n198531,truck\n198532,cat\n198533,horse\n198534,frog\n198535,dog\n198536,dog\n198537,ship\n198538,cat\n198539,dog\n198540,horse\n198541,cat\n198542,airplane\n198543,ship\n198544,deer\n198545,deer\n198546,bird\n198547,truck\n198548,bird\n198549,deer\n198550,cat\n198551,truck\n198552,frog\n198553,airplane\n198554,truck\n198555,deer\n198556,deer\n198557,airplane\n198558,horse\n198559,cat\n198560,deer\n198561,automobile\n198562,truck\n198563,frog\n198564,deer\n198565,bird\n198566,automobile\n198567,bird\n198568,horse\n198569,horse\n198570,horse\n198571,cat\n198572,dog\n198573,cat\n198574,bird\n198575,truck\n198576,deer\n198577,dog\n198578,bird\n198579,cat\n198580,frog\n198581,dog\n198582,bird\n198583,dog\n198584,cat\n198585,ship\n198586,horse\n198587,airplane\n198588,automobile\n198589,deer\n198590,truck\n198591,automobile\n198592,cat\n198593,dog\n198594,frog\n198595,cat\n198596,truck\n198597,deer\n198598,ship\n198599,airplane\n198600,horse\n198601,frog\n198602,automobile\n198603,bird\n198604,airplane\n198605,frog\n198606,dog\n198607,dog\n198608,dog\n198609,bird\n198610,ship\n198611,horse\n198612,frog\n198613,cat\n198614,dog\n198615,deer\n198616,dog\n198617,deer\n198618,bird\n198619,dog\n198620,airplane\n198621,dog\n198622,cat\n198623,truck\n198624,frog\n198625,horse\n198626,dog\n198627,horse\n198628,dog\n198629,airplane\n198630,airplane\n198631,bird\n198632,cat\n198633,dog\n198634,cat\n198635,airplane\n198636,airplane\n198637,dog\n198638,frog\n198639,bird\n198640,frog\n198641,truck\n198642,cat\n198643,airplane\n198644,bird\n198645,deer\n198646,deer\n198647,automobile\n198648,frog\n198649,frog\n198650,horse\n198651,cat\n198652,truck\n198653,cat\n198654,cat\n198655,horse\n198656,dog\n198657,dog\n198658,truck\n198659,cat\n198660,cat\n198661,horse\n198662,dog\n198663,bird\n198664,automobile\n198665,ship\n198666,bird\n198667,airplane\n198668,bird\n198669,frog\n198670,cat\n198671,deer\n198672,horse\n198673,truck\n198674,horse\n198675,airplane\n198676,bird\n198677,deer\n198678,airplane\n198679,deer\n198680,cat\n198681,deer\n198682,ship\n198683,dog\n198684,deer\n198685,deer\n198686,dog\n198687,dog\n198688,horse\n198689,cat\n198690,frog\n198691,frog\n198692,airplane\n198693,truck\n198694,frog\n198695,truck\n198696,deer\n198697,cat\n198698,deer\n198699,deer\n198700,truck\n198701,ship\n198702,bird\n198703,deer\n198704,automobile\n198705,bird\n198706,dog\n198707,frog\n198708,airplane\n198709,frog\n198710,bird\n198711,airplane\n198712,bird\n198713,truck\n198714,ship\n198715,airplane\n198716,bird\n198717,bird\n198718,dog\n198719,automobile\n198720,deer\n198721,automobile\n198722,truck\n198723,dog\n198724,deer\n198725,truck\n198726,deer\n198727,ship\n198728,cat\n198729,frog\n198730,deer\n198731,deer\n198732,cat\n198733,automobile\n198734,cat\n198735,deer\n198736,bird\n198737,cat\n198738,automobile\n198739,airplane\n198740,cat\n198741,dog\n198742,deer\n198743,frog\n198744,deer\n198745,truck\n198746,dog\n198747,bird\n198748,automobile\n198749,ship\n198750,truck\n198751,deer\n198752,airplane\n198753,dog\n198754,truck\n198755,bird\n198756,truck\n198757,deer\n198758,deer\n198759,frog\n198760,frog\n198761,cat\n198762,deer\n198763,truck\n198764,airplane\n198765,cat\n198766,dog\n198767,deer\n198768,automobile\n198769,truck\n198770,dog\n198771,frog\n198772,dog\n198773,deer\n198774,deer\n198775,truck\n198776,deer\n198777,frog\n198778,ship\n198779,dog\n198780,frog\n198781,deer\n198782,automobile\n198783,horse\n198784,frog\n198785,truck\n198786,truck\n198787,horse\n198788,frog\n198789,cat\n198790,cat\n198791,ship\n198792,automobile\n198793,dog\n198794,deer\n198795,ship\n198796,truck\n198797,frog\n198798,airplane\n198799,frog\n198800,dog\n198801,frog\n198802,truck\n198803,dog\n198804,ship\n198805,automobile\n198806,ship\n198807,dog\n198808,truck\n198809,truck\n198810,frog\n198811,horse\n198812,horse\n198813,bird\n198814,dog\n198815,dog\n198816,truck\n198817,deer\n198818,horse\n198819,truck\n198820,dog\n198821,horse\n198822,horse\n198823,cat\n198824,bird\n198825,dog\n198826,bird\n198827,horse\n198828,dog\n198829,frog\n198830,horse\n198831,dog\n198832,horse\n198833,cat\n198834,cat\n198835,dog\n198836,dog\n198837,cat\n198838,deer\n198839,dog\n198840,bird\n198841,airplane\n198842,airplane\n198843,automobile\n198844,cat\n198845,horse\n198846,truck\n198847,automobile\n198848,horse\n198849,airplane\n198850,ship\n198851,airplane\n198852,airplane\n198853,bird\n198854,horse\n198855,deer\n198856,cat\n198857,airplane\n198858,frog\n198859,horse\n198860,deer\n198861,frog\n198862,airplane\n198863,cat\n198864,deer\n198865,cat\n198866,frog\n198867,truck\n198868,dog\n198869,deer\n198870,frog\n198871,airplane\n198872,bird\n198873,ship\n198874,truck\n198875,cat\n198876,horse\n198877,ship\n198878,frog\n198879,airplane\n198880,ship\n198881,horse\n198882,deer\n198883,frog\n198884,ship\n198885,truck\n198886,truck\n198887,deer\n198888,frog\n198889,frog\n198890,horse\n198891,frog\n198892,airplane\n198893,horse\n198894,ship\n198895,cat\n198896,frog\n198897,deer\n198898,horse\n198899,bird\n198900,dog\n198901,dog\n198902,truck\n198903,airplane\n198904,deer\n198905,truck\n198906,airplane\n198907,bird\n198908,cat\n198909,deer\n198910,frog\n198911,frog\n198912,ship\n198913,deer\n198914,dog\n198915,bird\n198916,bird\n198917,airplane\n198918,cat\n198919,frog\n198920,truck\n198921,cat\n198922,airplane\n198923,frog\n198924,truck\n198925,dog\n198926,deer\n198927,airplane\n198928,truck\n198929,frog\n198930,bird\n198931,frog\n198932,dog\n198933,horse\n198934,automobile\n198935,bird\n198936,frog\n198937,horse\n198938,cat\n198939,deer\n198940,dog\n198941,automobile\n198942,bird\n198943,bird\n198944,frog\n198945,cat\n198946,automobile\n198947,truck\n198948,deer\n198949,bird\n198950,cat\n198951,horse\n198952,deer\n198953,ship\n198954,ship\n198955,horse\n198956,deer\n198957,dog\n198958,bird\n198959,truck\n198960,dog\n198961,horse\n198962,cat\n198963,bird\n198964,automobile\n198965,truck\n198966,airplane\n198967,dog\n198968,ship\n198969,ship\n198970,deer\n198971,frog\n198972,cat\n198973,bird\n198974,horse\n198975,dog\n198976,dog\n198977,airplane\n198978,cat\n198979,deer\n198980,horse\n198981,ship\n198982,frog\n198983,ship\n198984,deer\n198985,dog\n198986,ship\n198987,truck\n198988,truck\n198989,bird\n198990,frog\n198991,horse\n198992,frog\n198993,truck\n198994,cat\n198995,dog\n198996,airplane\n198997,airplane\n198998,automobile\n198999,airplane\n199000,ship\n199001,truck\n199002,dog\n199003,dog\n199004,horse\n199005,truck\n199006,ship\n199007,truck\n199008,frog\n199009,truck\n199010,cat\n199011,cat\n199012,automobile\n199013,ship\n199014,airplane\n199015,truck\n199016,airplane\n199017,horse\n199018,horse\n199019,frog\n199020,automobile\n199021,cat\n199022,truck\n199023,frog\n199024,automobile\n199025,ship\n199026,automobile\n199027,truck\n199028,deer\n199029,horse\n199030,cat\n199031,frog\n199032,truck\n199033,horse\n199034,ship\n199035,horse\n199036,deer\n199037,bird\n199038,dog\n199039,horse\n199040,frog\n199041,ship\n199042,dog\n199043,dog\n199044,bird\n199045,ship\n199046,truck\n199047,bird\n199048,cat\n199049,bird\n199050,frog\n199051,horse\n199052,automobile\n199053,horse\n199054,deer\n199055,frog\n199056,cat\n199057,dog\n199058,frog\n199059,bird\n199060,truck\n199061,truck\n199062,frog\n199063,cat\n199064,deer\n199065,dog\n199066,cat\n199067,truck\n199068,bird\n199069,cat\n199070,cat\n199071,bird\n199072,dog\n199073,bird\n199074,deer\n199075,airplane\n199076,horse\n199077,horse\n199078,truck\n199079,airplane\n199080,frog\n199081,automobile\n199082,deer\n199083,automobile\n199084,dog\n199085,dog\n199086,frog\n199087,ship\n199088,airplane\n199089,dog\n199090,cat\n199091,frog\n199092,dog\n199093,bird\n199094,ship\n199095,truck\n199096,automobile\n199097,frog\n199098,deer\n199099,frog\n199100,horse\n199101,airplane\n199102,frog\n199103,dog\n199104,deer\n199105,ship\n199106,cat\n199107,deer\n199108,ship\n199109,truck\n199110,bird\n199111,frog\n199112,horse\n199113,frog\n199114,deer\n199115,dog\n199116,cat\n199117,dog\n199118,airplane\n199119,ship\n199120,ship\n199121,airplane\n199122,horse\n199123,truck\n199124,automobile\n199125,cat\n199126,frog\n199127,airplane\n199128,airplane\n199129,deer\n199130,deer\n199131,cat\n199132,cat\n199133,truck\n199134,deer\n199135,deer\n199136,deer\n199137,airplane\n199138,bird\n199139,horse\n199140,horse\n199141,deer\n199142,dog\n199143,bird\n199144,horse\n199145,cat\n199146,truck\n199147,frog\n199148,bird\n199149,deer\n199150,horse\n199151,dog\n199152,dog\n199153,deer\n199154,frog\n199155,truck\n199156,dog\n199157,airplane\n199158,truck\n199159,automobile\n199160,bird\n199161,ship\n199162,cat\n199163,cat\n199164,airplane\n199165,frog\n199166,cat\n199167,truck\n199168,deer\n199169,bird\n199170,cat\n199171,deer\n199172,bird\n199173,cat\n199174,cat\n199175,frog\n199176,horse\n199177,airplane\n199178,airplane\n199179,dog\n199180,deer\n199181,cat\n199182,airplane\n199183,truck\n199184,frog\n199185,airplane\n199186,airplane\n199187,airplane\n199188,airplane\n199189,cat\n199190,truck\n199191,ship\n199192,bird\n199193,deer\n199194,dog\n199195,deer\n199196,truck\n199197,frog\n199198,frog\n199199,airplane\n199200,deer\n199201,deer\n199202,horse\n199203,cat\n199204,frog\n199205,airplane\n199206,deer\n199207,automobile\n199208,dog\n199209,truck\n199210,deer\n199211,horse\n199212,deer\n199213,frog\n199214,dog\n199215,truck\n199216,truck\n199217,dog\n199218,deer\n199219,bird\n199220,dog\n199221,frog\n199222,cat\n199223,airplane\n199224,dog\n199225,frog\n199226,airplane\n199227,frog\n199228,cat\n199229,cat\n199230,horse\n199231,horse\n199232,deer\n199233,airplane\n199234,deer\n199235,truck\n199236,ship\n199237,bird\n199238,dog\n199239,airplane\n199240,deer\n199241,cat\n199242,truck\n199243,truck\n199244,cat\n199245,truck\n199246,bird\n199247,horse\n199248,truck\n199249,deer\n199250,airplane\n199251,automobile\n199252,truck\n199253,deer\n199254,dog\n199255,bird\n199256,truck\n199257,frog\n199258,automobile\n199259,dog\n199260,bird\n199261,cat\n199262,ship\n199263,truck\n199264,automobile\n199265,cat\n199266,deer\n199267,automobile\n199268,bird\n199269,frog\n199270,dog\n199271,deer\n199272,deer\n199273,truck\n199274,airplane\n199275,horse\n199276,automobile\n199277,ship\n199278,bird\n199279,bird\n199280,ship\n199281,cat\n199282,truck\n199283,horse\n199284,frog\n199285,cat\n199286,frog\n199287,horse\n199288,ship\n199289,airplane\n199290,frog\n199291,deer\n199292,airplane\n199293,airplane\n199294,airplane\n199295,ship\n199296,deer\n199297,cat\n199298,dog\n199299,ship\n199300,ship\n199301,horse\n199302,ship\n199303,cat\n199304,bird\n199305,cat\n199306,bird\n199307,frog\n199308,airplane\n199309,bird\n199310,automobile\n199311,bird\n199312,truck\n199313,frog\n199314,dog\n199315,deer\n199316,dog\n199317,cat\n199318,cat\n199319,cat\n199320,deer\n199321,cat\n199322,cat\n199323,cat\n199324,airplane\n199325,horse\n199326,ship\n199327,dog\n199328,cat\n199329,cat\n199330,deer\n199331,dog\n199332,dog\n199333,frog\n199334,frog\n199335,ship\n199336,bird\n199337,bird\n199338,automobile\n199339,horse\n199340,truck\n199341,horse\n199342,frog\n199343,ship\n199344,deer\n199345,frog\n199346,dog\n199347,automobile\n199348,deer\n199349,deer\n199350,deer\n199351,ship\n199352,cat\n199353,truck\n199354,horse\n199355,frog\n199356,horse\n199357,truck\n199358,cat\n199359,deer\n199360,frog\n199361,cat\n199362,automobile\n199363,truck\n199364,ship\n199365,horse\n199366,dog\n199367,truck\n199368,ship\n199369,horse\n199370,cat\n199371,horse\n199372,truck\n199373,cat\n199374,deer\n199375,automobile\n199376,bird\n199377,cat\n199378,truck\n199379,automobile\n199380,deer\n199381,horse\n199382,deer\n199383,frog\n199384,truck\n199385,truck\n199386,dog\n199387,airplane\n199388,bird\n199389,truck\n199390,ship\n199391,truck\n199392,deer\n199393,dog\n199394,cat\n199395,bird\n199396,frog\n199397,dog\n199398,dog\n199399,airplane\n199400,ship\n199401,airplane\n199402,truck\n199403,airplane\n199404,automobile\n199405,horse\n199406,truck\n199407,frog\n199408,automobile\n199409,deer\n199410,airplane\n199411,airplane\n199412,horse\n199413,truck\n199414,horse\n199415,ship\n199416,deer\n199417,truck\n199418,frog\n199419,cat\n199420,truck\n199421,truck\n199422,bird\n199423,bird\n199424,airplane\n199425,frog\n199426,truck\n199427,cat\n199428,ship\n199429,cat\n199430,automobile\n199431,ship\n199432,airplane\n199433,horse\n199434,horse\n199435,frog\n199436,airplane\n199437,bird\n199438,frog\n199439,deer\n199440,deer\n199441,dog\n199442,bird\n199443,frog\n199444,cat\n199445,automobile\n199446,dog\n199447,cat\n199448,frog\n199449,frog\n199450,truck\n199451,ship\n199452,deer\n199453,automobile\n199454,dog\n199455,cat\n199456,dog\n199457,ship\n199458,airplane\n199459,cat\n199460,ship\n199461,bird\n199462,cat\n199463,dog\n199464,automobile\n199465,horse\n199466,frog\n199467,automobile\n199468,horse\n199469,truck\n199470,bird\n199471,bird\n199472,dog\n199473,ship\n199474,ship\n199475,dog\n199476,frog\n199477,automobile\n199478,airplane\n199479,horse\n199480,bird\n199481,ship\n199482,airplane\n199483,deer\n199484,airplane\n199485,deer\n199486,deer\n199487,frog\n199488,dog\n199489,dog\n199490,cat\n199491,cat\n199492,frog\n199493,airplane\n199494,bird\n199495,cat\n199496,cat\n199497,deer\n199498,bird\n199499,airplane\n199500,cat\n199501,deer\n199502,airplane\n199503,horse\n199504,airplane\n199505,truck\n199506,cat\n199507,ship\n199508,frog\n199509,truck\n199510,airplane\n199511,truck\n199512,ship\n199513,deer\n199514,truck\n199515,bird\n199516,airplane\n199517,frog\n199518,cat\n199519,frog\n199520,airplane\n199521,horse\n199522,dog\n199523,automobile\n199524,airplane\n199525,deer\n199526,deer\n199527,frog\n199528,cat\n199529,dog\n199530,bird\n199531,ship\n199532,bird\n199533,bird\n199534,cat\n199535,deer\n199536,deer\n199537,bird\n199538,frog\n199539,dog\n199540,dog\n199541,airplane\n199542,deer\n199543,frog\n199544,truck\n199545,deer\n199546,cat\n199547,deer\n199548,frog\n199549,horse\n199550,cat\n199551,truck\n199552,cat\n199553,cat\n199554,deer\n199555,truck\n199556,airplane\n199557,horse\n199558,truck\n199559,deer\n199560,frog\n199561,frog\n199562,ship\n199563,cat\n199564,automobile\n199565,bird\n199566,cat\n199567,frog\n199568,frog\n199569,horse\n199570,cat\n199571,airplane\n199572,bird\n199573,airplane\n199574,airplane\n199575,automobile\n199576,ship\n199577,frog\n199578,frog\n199579,airplane\n199580,automobile\n199581,airplane\n199582,frog\n199583,deer\n199584,ship\n199585,deer\n199586,deer\n199587,frog\n199588,ship\n199589,dog\n199590,frog\n199591,bird\n199592,cat\n199593,truck\n199594,frog\n199595,deer\n199596,airplane\n199597,bird\n199598,ship\n199599,horse\n199600,bird\n199601,bird\n199602,horse\n199603,dog\n199604,airplane\n199605,cat\n199606,deer\n199607,airplane\n199608,airplane\n199609,bird\n199610,automobile\n199611,frog\n199612,horse\n199613,bird\n199614,horse\n199615,bird\n199616,horse\n199617,airplane\n199618,automobile\n199619,cat\n199620,deer\n199621,truck\n199622,airplane\n199623,bird\n199624,cat\n199625,dog\n199626,horse\n199627,dog\n199628,automobile\n199629,frog\n199630,airplane\n199631,cat\n199632,bird\n199633,cat\n199634,deer\n199635,cat\n199636,ship\n199637,ship\n199638,deer\n199639,bird\n199640,cat\n199641,cat\n199642,horse\n199643,automobile\n199644,frog\n199645,ship\n199646,frog\n199647,cat\n199648,frog\n199649,bird\n199650,cat\n199651,deer\n199652,truck\n199653,frog\n199654,deer\n199655,bird\n199656,horse\n199657,horse\n199658,cat\n199659,bird\n199660,cat\n199661,deer\n199662,horse\n199663,frog\n199664,frog\n199665,truck\n199666,bird\n199667,bird\n199668,ship\n199669,cat\n199670,deer\n199671,ship\n199672,horse\n199673,truck\n199674,deer\n199675,cat\n199676,cat\n199677,truck\n199678,cat\n199679,horse\n199680,frog\n199681,bird\n199682,horse\n199683,frog\n199684,cat\n199685,bird\n199686,cat\n199687,truck\n199688,frog\n199689,frog\n199690,bird\n199691,truck\n199692,frog\n199693,automobile\n199694,cat\n199695,horse\n199696,ship\n199697,horse\n199698,horse\n199699,ship\n199700,automobile\n199701,automobile\n199702,horse\n199703,frog\n199704,airplane\n199705,cat\n199706,dog\n199707,frog\n199708,frog\n199709,deer\n199710,cat\n199711,bird\n199712,automobile\n199713,horse\n199714,deer\n199715,cat\n199716,airplane\n199717,horse\n199718,truck\n199719,frog\n199720,airplane\n199721,frog\n199722,ship\n199723,truck\n199724,dog\n199725,bird\n199726,horse\n199727,horse\n199728,deer\n199729,bird\n199730,truck\n199731,deer\n199732,airplane\n199733,cat\n199734,frog\n199735,dog\n199736,dog\n199737,cat\n199738,dog\n199739,automobile\n199740,automobile\n199741,horse\n199742,deer\n199743,bird\n199744,deer\n199745,airplane\n199746,deer\n199747,frog\n199748,deer\n199749,dog\n199750,cat\n199751,horse\n199752,horse\n199753,frog\n199754,dog\n199755,frog\n199756,airplane\n199757,deer\n199758,bird\n199759,deer\n199760,truck\n199761,bird\n199762,cat\n199763,ship\n199764,cat\n199765,automobile\n199766,horse\n199767,truck\n199768,automobile\n199769,frog\n199770,ship\n199771,horse\n199772,automobile\n199773,truck\n199774,deer\n199775,deer\n199776,deer\n199777,truck\n199778,cat\n199779,cat\n199780,cat\n199781,frog\n199782,frog\n199783,airplane\n199784,airplane\n199785,deer\n199786,ship\n199787,frog\n199788,airplane\n199789,bird\n199790,airplane\n199791,bird\n199792,dog\n199793,cat\n199794,dog\n199795,cat\n199796,cat\n199797,frog\n199798,cat\n199799,dog\n199800,dog\n199801,horse\n199802,airplane\n199803,frog\n199804,horse\n199805,cat\n199806,automobile\n199807,horse\n199808,dog\n199809,airplane\n199810,automobile\n199811,airplane\n199812,frog\n199813,ship\n199814,truck\n199815,deer\n199816,ship\n199817,horse\n199818,frog\n199819,bird\n199820,ship\n199821,airplane\n199822,frog\n199823,ship\n199824,airplane\n199825,cat\n199826,horse\n199827,automobile\n199828,deer\n199829,deer\n199830,truck\n199831,cat\n199832,airplane\n199833,truck\n199834,ship\n199835,truck\n199836,truck\n199837,horse\n199838,truck\n199839,deer\n199840,truck\n199841,horse\n199842,horse\n199843,deer\n199844,deer\n199845,airplane\n199846,automobile\n199847,deer\n199848,automobile\n199849,dog\n199850,automobile\n199851,ship\n199852,dog\n199853,bird\n199854,airplane\n199855,dog\n199856,automobile\n199857,airplane\n199858,truck\n199859,ship\n199860,deer\n199861,automobile\n199862,truck\n199863,horse\n199864,cat\n199865,bird\n199866,truck\n199867,cat\n199868,automobile\n199869,frog\n199870,cat\n199871,frog\n199872,automobile\n199873,frog\n199874,automobile\n199875,deer\n199876,bird\n199877,airplane\n199878,bird\n199879,truck\n199880,dog\n199881,truck\n199882,cat\n199883,truck\n199884,dog\n199885,cat\n199886,ship\n199887,automobile\n199888,dog\n199889,automobile\n199890,deer\n199891,deer\n199892,deer\n199893,deer\n199894,truck\n199895,dog\n199896,deer\n199897,horse\n199898,horse\n199899,airplane\n199900,cat\n199901,dog\n199902,bird\n199903,ship\n199904,horse\n199905,airplane\n199906,cat\n199907,deer\n199908,horse\n199909,cat\n199910,dog\n199911,airplane\n199912,horse\n199913,deer\n199914,dog\n199915,horse\n199916,dog\n199917,airplane\n199918,deer\n199919,truck\n199920,bird\n199921,cat\n199922,truck\n199923,bird\n199924,ship\n199925,dog\n199926,horse\n199927,deer\n199928,cat\n199929,truck\n199930,bird\n199931,dog\n199932,cat\n199933,horse\n199934,deer\n199935,truck\n199936,automobile\n199937,cat\n199938,deer\n199939,dog\n199940,horse\n199941,dog\n199942,bird\n199943,bird\n199944,cat\n199945,bird\n199946,cat\n199947,ship\n199948,dog\n199949,horse\n199950,bird\n199951,horse\n199952,ship\n199953,truck\n199954,cat\n199955,airplane\n199956,dog\n199957,deer\n199958,cat\n199959,horse\n199960,ship\n199961,deer\n199962,truck\n199963,automobile\n199964,dog\n199965,truck\n199966,frog\n199967,deer\n199968,deer\n199969,ship\n199970,ship\n199971,deer\n199972,airplane\n199973,bird\n199974,cat\n199975,cat\n199976,truck\n199977,frog\n199978,horse\n199979,truck\n199980,ship\n199981,cat\n199982,ship\n199983,deer\n199984,dog\n199985,automobile\n199986,cat\n199987,cat\n199988,deer\n199989,cat\n199990,truck\n199991,bird\n199992,dog\n199993,frog\n199994,deer\n199995,horse\n199996,cat\n199997,truck\n199998,bird\n199999,dog\n200000,horse\n200001,horse\n200002,truck\n200003,automobile\n200004,dog\n200005,automobile\n200006,ship\n200007,cat\n200008,deer\n200009,frog\n200010,dog\n200011,cat\n200012,truck\n200013,ship\n200014,ship\n200015,horse\n200016,deer\n200017,bird\n200018,cat\n200019,deer\n200020,truck\n200021,automobile\n200022,deer\n200023,truck\n200024,horse\n200025,cat\n200026,cat\n200027,frog\n200028,horse\n200029,bird\n200030,ship\n200031,automobile\n200032,dog\n200033,horse\n200034,horse\n200035,ship\n200036,dog\n200037,deer\n200038,frog\n200039,dog\n200040,deer\n200041,frog\n200042,airplane\n200043,airplane\n200044,bird\n200045,dog\n200046,deer\n200047,truck\n200048,dog\n200049,frog\n200050,deer\n200051,truck\n200052,bird\n200053,ship\n200054,bird\n200055,dog\n200056,dog\n200057,frog\n200058,deer\n200059,cat\n200060,truck\n200061,airplane\n200062,horse\n200063,automobile\n200064,automobile\n200065,deer\n200066,deer\n200067,frog\n200068,frog\n200069,deer\n200070,ship\n200071,frog\n200072,cat\n200073,airplane\n200074,ship\n200075,frog\n200076,horse\n200077,truck\n200078,ship\n200079,horse\n200080,deer\n200081,cat\n200082,cat\n200083,cat\n200084,cat\n200085,frog\n200086,dog\n200087,airplane\n200088,frog\n200089,cat\n200090,frog\n200091,deer\n200092,bird\n200093,frog\n200094,truck\n200095,cat\n200096,airplane\n200097,dog\n200098,dog\n200099,truck\n200100,frog\n200101,frog\n200102,deer\n200103,ship\n200104,bird\n200105,automobile\n200106,horse\n200107,cat\n200108,truck\n200109,airplane\n200110,truck\n200111,cat\n200112,frog\n200113,automobile\n200114,dog\n200115,cat\n200116,deer\n200117,horse\n200118,dog\n200119,deer\n200120,horse\n200121,cat\n200122,frog\n200123,horse\n200124,frog\n200125,bird\n200126,deer\n200127,deer\n200128,truck\n200129,truck\n200130,ship\n200131,dog\n200132,automobile\n200133,deer\n200134,automobile\n200135,bird\n200136,cat\n200137,cat\n200138,dog\n200139,horse\n200140,automobile\n200141,frog\n200142,frog\n200143,deer\n200144,deer\n200145,automobile\n200146,ship\n200147,ship\n200148,automobile\n200149,horse\n200150,deer\n200151,airplane\n200152,cat\n200153,bird\n200154,airplane\n200155,dog\n200156,airplane\n200157,ship\n200158,ship\n200159,bird\n200160,deer\n200161,ship\n200162,cat\n200163,automobile\n200164,horse\n200165,truck\n200166,dog\n200167,airplane\n200168,ship\n200169,dog\n200170,deer\n200171,bird\n200172,truck\n200173,truck\n200174,ship\n200175,ship\n200176,deer\n200177,bird\n200178,cat\n200179,bird\n200180,bird\n200181,cat\n200182,ship\n200183,horse\n200184,dog\n200185,horse\n200186,truck\n200187,dog\n200188,horse\n200189,airplane\n200190,automobile\n200191,frog\n200192,bird\n200193,truck\n200194,ship\n200195,dog\n200196,dog\n200197,cat\n200198,airplane\n200199,horse\n200200,frog\n200201,frog\n200202,horse\n200203,frog\n200204,frog\n200205,truck\n200206,truck\n200207,dog\n200208,deer\n200209,ship\n200210,bird\n200211,frog\n200212,ship\n200213,bird\n200214,automobile\n200215,frog\n200216,airplane\n200217,automobile\n200218,horse\n200219,truck\n200220,airplane\n200221,horse\n200222,frog\n200223,horse\n200224,airplane\n200225,deer\n200226,horse\n200227,cat\n200228,frog\n200229,dog\n200230,airplane\n200231,airplane\n200232,cat\n200233,frog\n200234,airplane\n200235,horse\n200236,cat\n200237,deer\n200238,horse\n200239,deer\n200240,deer\n200241,cat\n200242,deer\n200243,automobile\n200244,frog\n200245,airplane\n200246,ship\n200247,automobile\n200248,ship\n200249,truck\n200250,automobile\n200251,automobile\n200252,dog\n200253,dog\n200254,deer\n200255,deer\n200256,cat\n200257,bird\n200258,automobile\n200259,deer\n200260,automobile\n200261,horse\n200262,automobile\n200263,ship\n200264,cat\n200265,horse\n200266,deer\n200267,ship\n200268,dog\n200269,automobile\n200270,dog\n200271,airplane\n200272,deer\n200273,automobile\n200274,truck\n200275,truck\n200276,cat\n200277,horse\n200278,frog\n200279,bird\n200280,horse\n200281,bird\n200282,airplane\n200283,cat\n200284,cat\n200285,deer\n200286,automobile\n200287,ship\n200288,frog\n200289,frog\n200290,frog\n200291,frog\n200292,dog\n200293,horse\n200294,cat\n200295,frog\n200296,cat\n200297,deer\n200298,cat\n200299,automobile\n200300,cat\n200301,horse\n200302,horse\n200303,dog\n200304,deer\n200305,cat\n200306,bird\n200307,automobile\n200308,truck\n200309,horse\n200310,cat\n200311,automobile\n200312,automobile\n200313,deer\n200314,automobile\n200315,frog\n200316,cat\n200317,deer\n200318,cat\n200319,airplane\n200320,frog\n200321,dog\n200322,deer\n200323,frog\n200324,deer\n200325,dog\n200326,dog\n200327,deer\n200328,airplane\n200329,deer\n200330,horse\n200331,frog\n200332,horse\n200333,horse\n200334,cat\n200335,horse\n200336,truck\n200337,cat\n200338,dog\n200339,frog\n200340,deer\n200341,cat\n200342,airplane\n200343,frog\n200344,cat\n200345,cat\n200346,truck\n200347,deer\n200348,dog\n200349,frog\n200350,horse\n200351,dog\n200352,frog\n200353,bird\n200354,truck\n200355,deer\n200356,truck\n200357,cat\n200358,deer\n200359,deer\n200360,frog\n200361,truck\n200362,bird\n200363,deer\n200364,cat\n200365,deer\n200366,deer\n200367,airplane\n200368,frog\n200369,frog\n200370,ship\n200371,horse\n200372,bird\n200373,cat\n200374,cat\n200375,frog\n200376,cat\n200377,bird\n200378,horse\n200379,deer\n200380,cat\n200381,deer\n200382,dog\n200383,airplane\n200384,ship\n200385,dog\n200386,bird\n200387,bird\n200388,horse\n200389,deer\n200390,cat\n200391,truck\n200392,cat\n200393,deer\n200394,horse\n200395,deer\n200396,bird\n200397,deer\n200398,bird\n200399,dog\n200400,horse\n200401,bird\n200402,cat\n200403,horse\n200404,airplane\n200405,horse\n200406,deer\n200407,truck\n200408,airplane\n200409,bird\n200410,frog\n200411,horse\n200412,ship\n200413,dog\n200414,truck\n200415,horse\n200416,horse\n200417,cat\n200418,truck\n200419,automobile\n200420,deer\n200421,bird\n200422,truck\n200423,dog\n200424,bird\n200425,automobile\n200426,truck\n200427,horse\n200428,dog\n200429,ship\n200430,bird\n200431,frog\n200432,frog\n200433,horse\n200434,horse\n200435,ship\n200436,horse\n200437,deer\n200438,bird\n200439,bird\n200440,cat\n200441,airplane\n200442,frog\n200443,ship\n200444,truck\n200445,cat\n200446,airplane\n200447,deer\n200448,ship\n200449,frog\n200450,truck\n200451,deer\n200452,cat\n200453,deer\n200454,deer\n200455,deer\n200456,horse\n200457,truck\n200458,airplane\n200459,airplane\n200460,frog\n200461,dog\n200462,frog\n200463,cat\n200464,horse\n200465,dog\n200466,deer\n200467,deer\n200468,ship\n200469,horse\n200470,truck\n200471,truck\n200472,cat\n200473,automobile\n200474,deer\n200475,horse\n200476,dog\n200477,truck\n200478,dog\n200479,dog\n200480,deer\n200481,frog\n200482,automobile\n200483,cat\n200484,cat\n200485,bird\n200486,cat\n200487,deer\n200488,cat\n200489,cat\n200490,ship\n200491,bird\n200492,ship\n200493,horse\n200494,automobile\n200495,frog\n200496,cat\n200497,cat\n200498,airplane\n200499,horse\n200500,frog\n200501,truck\n200502,frog\n200503,cat\n200504,dog\n200505,truck\n200506,ship\n200507,bird\n200508,truck\n200509,deer\n200510,bird\n200511,frog\n200512,bird\n200513,deer\n200514,bird\n200515,cat\n200516,ship\n200517,deer\n200518,bird\n200519,horse\n200520,horse\n200521,automobile\n200522,deer\n200523,cat\n200524,ship\n200525,automobile\n200526,bird\n200527,bird\n200528,airplane\n200529,airplane\n200530,cat\n200531,deer\n200532,airplane\n200533,truck\n200534,bird\n200535,horse\n200536,cat\n200537,bird\n200538,frog\n200539,dog\n200540,deer\n200541,ship\n200542,cat\n200543,frog\n200544,frog\n200545,ship\n200546,frog\n200547,cat\n200548,horse\n200549,ship\n200550,bird\n200551,automobile\n200552,deer\n200553,ship\n200554,automobile\n200555,deer\n200556,deer\n200557,deer\n200558,horse\n200559,cat\n200560,deer\n200561,deer\n200562,deer\n200563,airplane\n200564,bird\n200565,truck\n200566,automobile\n200567,airplane\n200568,frog\n200569,frog\n200570,deer\n200571,deer\n200572,automobile\n200573,frog\n200574,dog\n200575,dog\n200576,ship\n200577,cat\n200578,horse\n200579,automobile\n200580,cat\n200581,bird\n200582,ship\n200583,deer\n200584,airplane\n200585,deer\n200586,deer\n200587,bird\n200588,frog\n200589,airplane\n200590,frog\n200591,airplane\n200592,deer\n200593,deer\n200594,ship\n200595,horse\n200596,dog\n200597,deer\n200598,ship\n200599,airplane\n200600,cat\n200601,dog\n200602,frog\n200603,horse\n200604,dog\n200605,truck\n200606,automobile\n200607,horse\n200608,frog\n200609,dog\n200610,bird\n200611,bird\n200612,cat\n200613,bird\n200614,ship\n200615,deer\n200616,frog\n200617,airplane\n200618,truck\n200619,bird\n200620,deer\n200621,deer\n200622,ship\n200623,deer\n200624,airplane\n200625,airplane\n200626,frog\n200627,airplane\n200628,bird\n200629,truck\n200630,truck\n200631,cat\n200632,frog\n200633,horse\n200634,dog\n200635,airplane\n200636,frog\n200637,horse\n200638,deer\n200639,deer\n200640,airplane\n200641,automobile\n200642,horse\n200643,automobile\n200644,automobile\n200645,airplane\n200646,bird\n200647,frog\n200648,automobile\n200649,automobile\n200650,automobile\n200651,horse\n200652,cat\n200653,deer\n200654,truck\n200655,dog\n200656,dog\n200657,ship\n200658,dog\n200659,airplane\n200660,frog\n200661,truck\n200662,truck\n200663,dog\n200664,airplane\n200665,deer\n200666,dog\n200667,automobile\n200668,ship\n200669,airplane\n200670,bird\n200671,cat\n200672,airplane\n200673,deer\n200674,automobile\n200675,frog\n200676,deer\n200677,deer\n200678,deer\n200679,deer\n200680,frog\n200681,cat\n200682,deer\n200683,truck\n200684,frog\n200685,dog\n200686,deer\n200687,dog\n200688,horse\n200689,frog\n200690,ship\n200691,horse\n200692,frog\n200693,cat\n200694,deer\n200695,automobile\n200696,deer\n200697,deer\n200698,airplane\n200699,airplane\n200700,frog\n200701,automobile\n200702,airplane\n200703,horse\n200704,ship\n200705,bird\n200706,frog\n200707,horse\n200708,truck\n200709,horse\n200710,ship\n200711,truck\n200712,bird\n200713,truck\n200714,frog\n200715,truck\n200716,airplane\n200717,deer\n200718,cat\n200719,frog\n200720,cat\n200721,dog\n200722,dog\n200723,cat\n200724,horse\n200725,automobile\n200726,horse\n200727,truck\n200728,dog\n200729,dog\n200730,horse\n200731,truck\n200732,truck\n200733,horse\n200734,frog\n200735,truck\n200736,dog\n200737,cat\n200738,cat\n200739,bird\n200740,frog\n200741,bird\n200742,horse\n200743,dog\n200744,deer\n200745,automobile\n200746,cat\n200747,deer\n200748,cat\n200749,horse\n200750,deer\n200751,truck\n200752,cat\n200753,airplane\n200754,dog\n200755,truck\n200756,ship\n200757,airplane\n200758,airplane\n200759,automobile\n200760,bird\n200761,airplane\n200762,frog\n200763,deer\n200764,deer\n200765,deer\n200766,automobile\n200767,bird\n200768,deer\n200769,truck\n200770,horse\n200771,horse\n200772,dog\n200773,automobile\n200774,horse\n200775,automobile\n200776,dog\n200777,cat\n200778,cat\n200779,airplane\n200780,frog\n200781,dog\n200782,bird\n200783,airplane\n200784,deer\n200785,cat\n200786,dog\n200787,horse\n200788,cat\n200789,cat\n200790,frog\n200791,truck\n200792,truck\n200793,cat\n200794,airplane\n200795,frog\n200796,deer\n200797,cat\n200798,truck\n200799,deer\n200800,automobile\n200801,airplane\n200802,bird\n200803,deer\n200804,frog\n200805,frog\n200806,cat\n200807,ship\n200808,horse\n200809,dog\n200810,frog\n200811,deer\n200812,bird\n200813,truck\n200814,cat\n200815,horse\n200816,horse\n200817,bird\n200818,deer\n200819,automobile\n200820,deer\n200821,frog\n200822,truck\n200823,truck\n200824,bird\n200825,airplane\n200826,deer\n200827,deer\n200828,horse\n200829,truck\n200830,deer\n200831,dog\n200832,dog\n200833,automobile\n200834,bird\n200835,bird\n200836,ship\n200837,cat\n200838,airplane\n200839,airplane\n200840,dog\n200841,airplane\n200842,deer\n200843,truck\n200844,truck\n200845,horse\n200846,deer\n200847,horse\n200848,frog\n200849,cat\n200850,cat\n200851,truck\n200852,frog\n200853,truck\n200854,frog\n200855,truck\n200856,airplane\n200857,cat\n200858,deer\n200859,horse\n200860,deer\n200861,ship\n200862,dog\n200863,frog\n200864,dog\n200865,deer\n200866,automobile\n200867,airplane\n200868,bird\n200869,horse\n200870,airplane\n200871,ship\n200872,frog\n200873,bird\n200874,ship\n200875,airplane\n200876,horse\n200877,dog\n200878,horse\n200879,dog\n200880,bird\n200881,truck\n200882,cat\n200883,ship\n200884,cat\n200885,truck\n200886,frog\n200887,ship\n200888,dog\n200889,cat\n200890,cat\n200891,horse\n200892,truck\n200893,horse\n200894,deer\n200895,bird\n200896,frog\n200897,truck\n200898,bird\n200899,deer\n200900,deer\n200901,ship\n200902,bird\n200903,ship\n200904,ship\n200905,bird\n200906,deer\n200907,airplane\n200908,airplane\n200909,deer\n200910,dog\n200911,bird\n200912,bird\n200913,horse\n200914,cat\n200915,frog\n200916,frog\n200917,deer\n200918,cat\n200919,cat\n200920,frog\n200921,dog\n200922,horse\n200923,deer\n200924,bird\n200925,dog\n200926,truck\n200927,airplane\n200928,deer\n200929,frog\n200930,airplane\n200931,airplane\n200932,cat\n200933,bird\n200934,horse\n200935,automobile\n200936,truck\n200937,frog\n200938,horse\n200939,cat\n200940,bird\n200941,bird\n200942,automobile\n200943,airplane\n200944,dog\n200945,cat\n200946,airplane\n200947,horse\n200948,ship\n200949,ship\n200950,dog\n200951,truck\n200952,truck\n200953,ship\n200954,airplane\n200955,bird\n200956,frog\n200957,ship\n200958,frog\n200959,cat\n200960,airplane\n200961,bird\n200962,cat\n200963,automobile\n200964,dog\n200965,truck\n200966,horse\n200967,horse\n200968,truck\n200969,ship\n200970,cat\n200971,deer\n200972,cat\n200973,dog\n200974,frog\n200975,frog\n200976,automobile\n200977,truck\n200978,deer\n200979,deer\n200980,dog\n200981,frog\n200982,horse\n200983,bird\n200984,airplane\n200985,deer\n200986,horse\n200987,ship\n200988,cat\n200989,ship\n200990,ship\n200991,cat\n200992,automobile\n200993,automobile\n200994,deer\n200995,frog\n200996,truck\n200997,cat\n200998,dog\n200999,ship\n201000,dog\n201001,horse\n201002,cat\n201003,dog\n201004,automobile\n201005,automobile\n201006,airplane\n201007,cat\n201008,cat\n201009,horse\n201010,airplane\n201011,truck\n201012,cat\n201013,truck\n201014,cat\n201015,dog\n201016,horse\n201017,automobile\n201018,truck\n201019,bird\n201020,frog\n201021,horse\n201022,deer\n201023,deer\n201024,frog\n201025,ship\n201026,dog\n201027,dog\n201028,truck\n201029,cat\n201030,truck\n201031,truck\n201032,cat\n201033,truck\n201034,bird\n201035,cat\n201036,ship\n201037,frog\n201038,truck\n201039,truck\n201040,bird\n201041,ship\n201042,horse\n201043,ship\n201044,frog\n201045,automobile\n201046,cat\n201047,ship\n201048,deer\n201049,truck\n201050,automobile\n201051,bird\n201052,ship\n201053,dog\n201054,deer\n201055,dog\n201056,airplane\n201057,airplane\n201058,cat\n201059,cat\n201060,cat\n201061,horse\n201062,frog\n201063,ship\n201064,truck\n201065,dog\n201066,frog\n201067,cat\n201068,horse\n201069,bird\n201070,automobile\n201071,cat\n201072,airplane\n201073,airplane\n201074,airplane\n201075,dog\n201076,deer\n201077,frog\n201078,bird\n201079,deer\n201080,bird\n201081,truck\n201082,ship\n201083,truck\n201084,deer\n201085,frog\n201086,frog\n201087,bird\n201088,truck\n201089,dog\n201090,cat\n201091,ship\n201092,automobile\n201093,frog\n201094,bird\n201095,frog\n201096,automobile\n201097,ship\n201098,cat\n201099,cat\n201100,deer\n201101,horse\n201102,dog\n201103,bird\n201104,airplane\n201105,deer\n201106,bird\n201107,deer\n201108,deer\n201109,deer\n201110,airplane\n201111,frog\n201112,truck\n201113,truck\n201114,bird\n201115,frog\n201116,dog\n201117,cat\n201118,airplane\n201119,truck\n201120,bird\n201121,horse\n201122,ship\n201123,bird\n201124,dog\n201125,automobile\n201126,horse\n201127,deer\n201128,horse\n201129,deer\n201130,dog\n201131,ship\n201132,airplane\n201133,frog\n201134,frog\n201135,automobile\n201136,dog\n201137,bird\n201138,airplane\n201139,cat\n201140,dog\n201141,horse\n201142,cat\n201143,truck\n201144,horse\n201145,frog\n201146,ship\n201147,horse\n201148,cat\n201149,automobile\n201150,frog\n201151,airplane\n201152,deer\n201153,airplane\n201154,horse\n201155,deer\n201156,deer\n201157,dog\n201158,frog\n201159,airplane\n201160,dog\n201161,ship\n201162,bird\n201163,dog\n201164,automobile\n201165,dog\n201166,airplane\n201167,bird\n201168,bird\n201169,ship\n201170,dog\n201171,ship\n201172,frog\n201173,deer\n201174,cat\n201175,cat\n201176,frog\n201177,truck\n201178,dog\n201179,truck\n201180,horse\n201181,deer\n201182,deer\n201183,airplane\n201184,airplane\n201185,dog\n201186,horse\n201187,truck\n201188,truck\n201189,cat\n201190,frog\n201191,deer\n201192,automobile\n201193,deer\n201194,ship\n201195,airplane\n201196,horse\n201197,ship\n201198,cat\n201199,bird\n201200,dog\n201201,frog\n201202,airplane\n201203,frog\n201204,horse\n201205,deer\n201206,deer\n201207,bird\n201208,deer\n201209,dog\n201210,cat\n201211,automobile\n201212,deer\n201213,automobile\n201214,bird\n201215,cat\n201216,automobile\n201217,horse\n201218,deer\n201219,ship\n201220,ship\n201221,ship\n201222,automobile\n201223,deer\n201224,airplane\n201225,deer\n201226,cat\n201227,dog\n201228,deer\n201229,deer\n201230,truck\n201231,dog\n201232,frog\n201233,cat\n201234,horse\n201235,deer\n201236,horse\n201237,dog\n201238,dog\n201239,truck\n201240,horse\n201241,dog\n201242,airplane\n201243,cat\n201244,truck\n201245,truck\n201246,dog\n201247,cat\n201248,truck\n201249,automobile\n201250,cat\n201251,ship\n201252,frog\n201253,deer\n201254,deer\n201255,dog\n201256,deer\n201257,truck\n201258,ship\n201259,dog\n201260,deer\n201261,dog\n201262,truck\n201263,truck\n201264,horse\n201265,truck\n201266,cat\n201267,truck\n201268,dog\n201269,horse\n201270,deer\n201271,frog\n201272,cat\n201273,bird\n201274,bird\n201275,horse\n201276,automobile\n201277,truck\n201278,dog\n201279,truck\n201280,deer\n201281,automobile\n201282,ship\n201283,bird\n201284,cat\n201285,horse\n201286,deer\n201287,automobile\n201288,horse\n201289,cat\n201290,frog\n201291,ship\n201292,airplane\n201293,truck\n201294,deer\n201295,truck\n201296,cat\n201297,cat\n201298,cat\n201299,frog\n201300,dog\n201301,airplane\n201302,cat\n201303,deer\n201304,horse\n201305,dog\n201306,airplane\n201307,truck\n201308,horse\n201309,ship\n201310,truck\n201311,airplane\n201312,ship\n201313,horse\n201314,truck\n201315,airplane\n201316,airplane\n201317,airplane\n201318,truck\n201319,frog\n201320,automobile\n201321,deer\n201322,truck\n201323,horse\n201324,truck\n201325,truck\n201326,deer\n201327,dog\n201328,horse\n201329,cat\n201330,dog\n201331,dog\n201332,deer\n201333,cat\n201334,frog\n201335,bird\n201336,deer\n201337,automobile\n201338,horse\n201339,bird\n201340,bird\n201341,horse\n201342,bird\n201343,ship\n201344,cat\n201345,dog\n201346,deer\n201347,dog\n201348,dog\n201349,bird\n201350,dog\n201351,frog\n201352,deer\n201353,cat\n201354,bird\n201355,frog\n201356,horse\n201357,truck\n201358,truck\n201359,deer\n201360,cat\n201361,ship\n201362,cat\n201363,truck\n201364,airplane\n201365,dog\n201366,horse\n201367,horse\n201368,horse\n201369,bird\n201370,bird\n201371,bird\n201372,airplane\n201373,frog\n201374,truck\n201375,cat\n201376,deer\n201377,frog\n201378,bird\n201379,ship\n201380,deer\n201381,horse\n201382,automobile\n201383,dog\n201384,cat\n201385,airplane\n201386,deer\n201387,dog\n201388,truck\n201389,truck\n201390,bird\n201391,dog\n201392,frog\n201393,cat\n201394,truck\n201395,bird\n201396,bird\n201397,horse\n201398,automobile\n201399,horse\n201400,frog\n201401,ship\n201402,frog\n201403,truck\n201404,bird\n201405,bird\n201406,ship\n201407,frog\n201408,deer\n201409,dog\n201410,dog\n201411,horse\n201412,airplane\n201413,ship\n201414,automobile\n201415,cat\n201416,bird\n201417,automobile\n201418,frog\n201419,ship\n201420,deer\n201421,frog\n201422,deer\n201423,bird\n201424,airplane\n201425,truck\n201426,automobile\n201427,frog\n201428,bird\n201429,deer\n201430,truck\n201431,ship\n201432,dog\n201433,automobile\n201434,cat\n201435,deer\n201436,dog\n201437,truck\n201438,airplane\n201439,horse\n201440,deer\n201441,bird\n201442,dog\n201443,bird\n201444,truck\n201445,truck\n201446,dog\n201447,dog\n201448,horse\n201449,truck\n201450,bird\n201451,cat\n201452,truck\n201453,bird\n201454,deer\n201455,airplane\n201456,cat\n201457,frog\n201458,ship\n201459,truck\n201460,bird\n201461,ship\n201462,horse\n201463,horse\n201464,automobile\n201465,cat\n201466,ship\n201467,truck\n201468,dog\n201469,deer\n201470,deer\n201471,ship\n201472,horse\n201473,horse\n201474,frog\n201475,deer\n201476,truck\n201477,cat\n201478,cat\n201479,deer\n201480,automobile\n201481,bird\n201482,dog\n201483,deer\n201484,cat\n201485,ship\n201486,automobile\n201487,ship\n201488,horse\n201489,bird\n201490,dog\n201491,automobile\n201492,truck\n201493,automobile\n201494,horse\n201495,deer\n201496,cat\n201497,deer\n201498,cat\n201499,bird\n201500,truck\n201501,cat\n201502,truck\n201503,dog\n201504,cat\n201505,cat\n201506,dog\n201507,bird\n201508,dog\n201509,airplane\n201510,truck\n201511,horse\n201512,frog\n201513,frog\n201514,dog\n201515,frog\n201516,deer\n201517,horse\n201518,truck\n201519,dog\n201520,deer\n201521,horse\n201522,dog\n201523,deer\n201524,bird\n201525,automobile\n201526,cat\n201527,truck\n201528,ship\n201529,ship\n201530,ship\n201531,deer\n201532,automobile\n201533,cat\n201534,truck\n201535,frog\n201536,ship\n201537,horse\n201538,frog\n201539,horse\n201540,deer\n201541,automobile\n201542,cat\n201543,truck\n201544,horse\n201545,automobile\n201546,frog\n201547,frog\n201548,cat\n201549,ship\n201550,horse\n201551,bird\n201552,cat\n201553,deer\n201554,airplane\n201555,deer\n201556,deer\n201557,cat\n201558,bird\n201559,automobile\n201560,deer\n201561,dog\n201562,frog\n201563,ship\n201564,cat\n201565,deer\n201566,airplane\n201567,cat\n201568,deer\n201569,horse\n201570,cat\n201571,automobile\n201572,truck\n201573,dog\n201574,deer\n201575,deer\n201576,deer\n201577,deer\n201578,horse\n201579,cat\n201580,horse\n201581,automobile\n201582,ship\n201583,airplane\n201584,dog\n201585,ship\n201586,frog\n201587,frog\n201588,airplane\n201589,cat\n201590,dog\n201591,automobile\n201592,cat\n201593,bird\n201594,dog\n201595,horse\n201596,cat\n201597,frog\n201598,airplane\n201599,truck\n201600,truck\n201601,bird\n201602,truck\n201603,bird\n201604,airplane\n201605,dog\n201606,horse\n201607,cat\n201608,airplane\n201609,deer\n201610,frog\n201611,automobile\n201612,bird\n201613,deer\n201614,ship\n201615,frog\n201616,dog\n201617,cat\n201618,cat\n201619,deer\n201620,dog\n201621,deer\n201622,truck\n201623,deer\n201624,bird\n201625,ship\n201626,frog\n201627,automobile\n201628,cat\n201629,truck\n201630,dog\n201631,cat\n201632,airplane\n201633,ship\n201634,deer\n201635,truck\n201636,deer\n201637,ship\n201638,deer\n201639,ship\n201640,airplane\n201641,ship\n201642,airplane\n201643,deer\n201644,deer\n201645,deer\n201646,truck\n201647,horse\n201648,dog\n201649,cat\n201650,cat\n201651,bird\n201652,bird\n201653,truck\n201654,automobile\n201655,horse\n201656,truck\n201657,bird\n201658,ship\n201659,cat\n201660,frog\n201661,airplane\n201662,horse\n201663,deer\n201664,dog\n201665,horse\n201666,airplane\n201667,deer\n201668,deer\n201669,deer\n201670,dog\n201671,automobile\n201672,dog\n201673,cat\n201674,truck\n201675,automobile\n201676,automobile\n201677,bird\n201678,truck\n201679,dog\n201680,automobile\n201681,deer\n201682,cat\n201683,airplane\n201684,deer\n201685,truck\n201686,automobile\n201687,frog\n201688,dog\n201689,truck\n201690,automobile\n201691,truck\n201692,dog\n201693,cat\n201694,frog\n201695,dog\n201696,bird\n201697,dog\n201698,frog\n201699,dog\n201700,truck\n201701,frog\n201702,dog\n201703,ship\n201704,automobile\n201705,truck\n201706,cat\n201707,automobile\n201708,frog\n201709,airplane\n201710,deer\n201711,dog\n201712,frog\n201713,deer\n201714,horse\n201715,horse\n201716,truck\n201717,frog\n201718,automobile\n201719,bird\n201720,automobile\n201721,ship\n201722,bird\n201723,cat\n201724,dog\n201725,truck\n201726,truck\n201727,dog\n201728,truck\n201729,deer\n201730,frog\n201731,cat\n201732,frog\n201733,dog\n201734,deer\n201735,automobile\n201736,ship\n201737,truck\n201738,horse\n201739,truck\n201740,horse\n201741,dog\n201742,bird\n201743,cat\n201744,cat\n201745,airplane\n201746,bird\n201747,frog\n201748,airplane\n201749,horse\n201750,dog\n201751,deer\n201752,deer\n201753,frog\n201754,cat\n201755,cat\n201756,bird\n201757,truck\n201758,horse\n201759,frog\n201760,ship\n201761,dog\n201762,frog\n201763,bird\n201764,truck\n201765,cat\n201766,dog\n201767,frog\n201768,cat\n201769,automobile\n201770,bird\n201771,frog\n201772,frog\n201773,deer\n201774,bird\n201775,frog\n201776,deer\n201777,deer\n201778,ship\n201779,truck\n201780,frog\n201781,truck\n201782,dog\n201783,ship\n201784,deer\n201785,cat\n201786,truck\n201787,cat\n201788,deer\n201789,automobile\n201790,cat\n201791,horse\n201792,truck\n201793,frog\n201794,ship\n201795,cat\n201796,truck\n201797,truck\n201798,automobile\n201799,cat\n201800,horse\n201801,truck\n201802,automobile\n201803,truck\n201804,ship\n201805,horse\n201806,dog\n201807,truck\n201808,ship\n201809,cat\n201810,ship\n201811,cat\n201812,horse\n201813,deer\n201814,dog\n201815,frog\n201816,bird\n201817,truck\n201818,dog\n201819,ship\n201820,deer\n201821,airplane\n201822,truck\n201823,ship\n201824,bird\n201825,horse\n201826,horse\n201827,dog\n201828,horse\n201829,frog\n201830,truck\n201831,cat\n201832,cat\n201833,cat\n201834,dog\n201835,airplane\n201836,dog\n201837,ship\n201838,cat\n201839,frog\n201840,truck\n201841,deer\n201842,truck\n201843,horse\n201844,truck\n201845,horse\n201846,dog\n201847,horse\n201848,dog\n201849,cat\n201850,truck\n201851,bird\n201852,dog\n201853,ship\n201854,airplane\n201855,dog\n201856,cat\n201857,airplane\n201858,dog\n201859,dog\n201860,deer\n201861,dog\n201862,cat\n201863,deer\n201864,dog\n201865,frog\n201866,deer\n201867,cat\n201868,bird\n201869,frog\n201870,ship\n201871,truck\n201872,cat\n201873,airplane\n201874,dog\n201875,ship\n201876,deer\n201877,cat\n201878,frog\n201879,automobile\n201880,cat\n201881,deer\n201882,cat\n201883,deer\n201884,horse\n201885,dog\n201886,frog\n201887,frog\n201888,deer\n201889,truck\n201890,dog\n201891,cat\n201892,deer\n201893,truck\n201894,cat\n201895,ship\n201896,dog\n201897,airplane\n201898,dog\n201899,frog\n201900,cat\n201901,frog\n201902,cat\n201903,cat\n201904,automobile\n201905,cat\n201906,cat\n201907,automobile\n201908,airplane\n201909,frog\n201910,cat\n201911,horse\n201912,horse\n201913,ship\n201914,ship\n201915,deer\n201916,ship\n201917,dog\n201918,ship\n201919,airplane\n201920,bird\n201921,frog\n201922,horse\n201923,horse\n201924,truck\n201925,cat\n201926,dog\n201927,deer\n201928,deer\n201929,truck\n201930,dog\n201931,automobile\n201932,ship\n201933,deer\n201934,deer\n201935,truck\n201936,deer\n201937,dog\n201938,deer\n201939,cat\n201940,frog\n201941,frog\n201942,deer\n201943,cat\n201944,horse\n201945,horse\n201946,horse\n201947,dog\n201948,ship\n201949,frog\n201950,horse\n201951,dog\n201952,frog\n201953,horse\n201954,cat\n201955,horse\n201956,dog\n201957,automobile\n201958,bird\n201959,deer\n201960,bird\n201961,ship\n201962,truck\n201963,truck\n201964,frog\n201965,dog\n201966,ship\n201967,airplane\n201968,cat\n201969,dog\n201970,bird\n201971,horse\n201972,cat\n201973,horse\n201974,airplane\n201975,deer\n201976,cat\n201977,airplane\n201978,cat\n201979,deer\n201980,deer\n201981,deer\n201982,deer\n201983,deer\n201984,deer\n201985,truck\n201986,truck\n201987,frog\n201988,deer\n201989,deer\n201990,cat\n201991,horse\n201992,truck\n201993,bird\n201994,airplane\n201995,deer\n201996,deer\n201997,deer\n201998,truck\n201999,deer\n202000,automobile\n202001,truck\n202002,ship\n202003,cat\n202004,bird\n202005,cat\n202006,horse\n202007,ship\n202008,cat\n202009,truck\n202010,deer\n202011,deer\n202012,truck\n202013,truck\n202014,frog\n202015,bird\n202016,cat\n202017,horse\n202018,horse\n202019,horse\n202020,deer\n202021,dog\n202022,horse\n202023,dog\n202024,ship\n202025,cat\n202026,ship\n202027,frog\n202028,cat\n202029,horse\n202030,cat\n202031,horse\n202032,bird\n202033,frog\n202034,frog\n202035,automobile\n202036,frog\n202037,airplane\n202038,truck\n202039,deer\n202040,frog\n202041,automobile\n202042,automobile\n202043,dog\n202044,truck\n202045,horse\n202046,frog\n202047,truck\n202048,bird\n202049,automobile\n202050,automobile\n202051,ship\n202052,dog\n202053,automobile\n202054,bird\n202055,cat\n202056,cat\n202057,horse\n202058,cat\n202059,frog\n202060,airplane\n202061,frog\n202062,deer\n202063,dog\n202064,frog\n202065,bird\n202066,horse\n202067,airplane\n202068,dog\n202069,deer\n202070,horse\n202071,dog\n202072,ship\n202073,ship\n202074,automobile\n202075,deer\n202076,bird\n202077,frog\n202078,deer\n202079,horse\n202080,dog\n202081,dog\n202082,truck\n202083,cat\n202084,automobile\n202085,ship\n202086,dog\n202087,bird\n202088,cat\n202089,truck\n202090,frog\n202091,cat\n202092,dog\n202093,ship\n202094,frog\n202095,bird\n202096,deer\n202097,airplane\n202098,bird\n202099,dog\n202100,truck\n202101,cat\n202102,deer\n202103,horse\n202104,ship\n202105,bird\n202106,frog\n202107,truck\n202108,truck\n202109,bird\n202110,horse\n202111,truck\n202112,automobile\n202113,bird\n202114,dog\n202115,truck\n202116,automobile\n202117,frog\n202118,automobile\n202119,frog\n202120,automobile\n202121,truck\n202122,ship\n202123,dog\n202124,bird\n202125,deer\n202126,automobile\n202127,automobile\n202128,frog\n202129,truck\n202130,frog\n202131,frog\n202132,airplane\n202133,bird\n202134,airplane\n202135,horse\n202136,horse\n202137,cat\n202138,truck\n202139,dog\n202140,automobile\n202141,automobile\n202142,bird\n202143,airplane\n202144,dog\n202145,frog\n202146,ship\n202147,bird\n202148,automobile\n202149,horse\n202150,frog\n202151,frog\n202152,frog\n202153,dog\n202154,truck\n202155,airplane\n202156,cat\n202157,deer\n202158,automobile\n202159,dog\n202160,horse\n202161,frog\n202162,airplane\n202163,deer\n202164,deer\n202165,automobile\n202166,dog\n202167,deer\n202168,deer\n202169,airplane\n202170,deer\n202171,bird\n202172,frog\n202173,horse\n202174,bird\n202175,dog\n202176,automobile\n202177,frog\n202178,dog\n202179,horse\n202180,truck\n202181,cat\n202182,frog\n202183,ship\n202184,cat\n202185,ship\n202186,deer\n202187,horse\n202188,cat\n202189,dog\n202190,automobile\n202191,frog\n202192,frog\n202193,cat\n202194,ship\n202195,cat\n202196,frog\n202197,automobile\n202198,bird\n202199,frog\n202200,cat\n202201,dog\n202202,deer\n202203,deer\n202204,dog\n202205,bird\n202206,cat\n202207,frog\n202208,truck\n202209,dog\n202210,cat\n202211,cat\n202212,cat\n202213,bird\n202214,truck\n202215,frog\n202216,airplane\n202217,truck\n202218,automobile\n202219,dog\n202220,horse\n202221,bird\n202222,bird\n202223,deer\n202224,horse\n202225,frog\n202226,bird\n202227,automobile\n202228,truck\n202229,frog\n202230,frog\n202231,deer\n202232,deer\n202233,deer\n202234,truck\n202235,truck\n202236,deer\n202237,ship\n202238,airplane\n202239,dog\n202240,ship\n202241,truck\n202242,horse\n202243,horse\n202244,truck\n202245,cat\n202246,ship\n202247,cat\n202248,deer\n202249,dog\n202250,frog\n202251,cat\n202252,deer\n202253,frog\n202254,deer\n202255,frog\n202256,truck\n202257,ship\n202258,ship\n202259,deer\n202260,dog\n202261,truck\n202262,airplane\n202263,deer\n202264,bird\n202265,deer\n202266,horse\n202267,truck\n202268,frog\n202269,ship\n202270,frog\n202271,frog\n202272,frog\n202273,cat\n202274,truck\n202275,ship\n202276,truck\n202277,dog\n202278,frog\n202279,frog\n202280,frog\n202281,dog\n202282,dog\n202283,cat\n202284,horse\n202285,airplane\n202286,frog\n202287,deer\n202288,cat\n202289,deer\n202290,cat\n202291,automobile\n202292,horse\n202293,cat\n202294,deer\n202295,cat\n202296,frog\n202297,dog\n202298,frog\n202299,frog\n202300,dog\n202301,airplane\n202302,deer\n202303,truck\n202304,airplane\n202305,deer\n202306,frog\n202307,horse\n202308,frog\n202309,frog\n202310,truck\n202311,truck\n202312,cat\n202313,bird\n202314,airplane\n202315,dog\n202316,cat\n202317,frog\n202318,cat\n202319,dog\n202320,truck\n202321,ship\n202322,frog\n202323,cat\n202324,frog\n202325,truck\n202326,ship\n202327,horse\n202328,truck\n202329,automobile\n202330,dog\n202331,bird\n202332,airplane\n202333,dog\n202334,frog\n202335,frog\n202336,ship\n202337,dog\n202338,frog\n202339,ship\n202340,truck\n202341,frog\n202342,dog\n202343,cat\n202344,truck\n202345,ship\n202346,horse\n202347,frog\n202348,airplane\n202349,deer\n202350,truck\n202351,deer\n202352,truck\n202353,truck\n202354,ship\n202355,airplane\n202356,frog\n202357,deer\n202358,bird\n202359,horse\n202360,airplane\n202361,frog\n202362,dog\n202363,cat\n202364,bird\n202365,horse\n202366,truck\n202367,bird\n202368,truck\n202369,dog\n202370,automobile\n202371,airplane\n202372,horse\n202373,deer\n202374,dog\n202375,horse\n202376,truck\n202377,airplane\n202378,deer\n202379,automobile\n202380,frog\n202381,truck\n202382,frog\n202383,airplane\n202384,airplane\n202385,ship\n202386,cat\n202387,dog\n202388,deer\n202389,horse\n202390,frog\n202391,truck\n202392,horse\n202393,cat\n202394,horse\n202395,deer\n202396,horse\n202397,ship\n202398,dog\n202399,automobile\n202400,frog\n202401,cat\n202402,truck\n202403,frog\n202404,dog\n202405,dog\n202406,ship\n202407,deer\n202408,truck\n202409,frog\n202410,bird\n202411,cat\n202412,deer\n202413,horse\n202414,deer\n202415,dog\n202416,bird\n202417,automobile\n202418,deer\n202419,cat\n202420,deer\n202421,truck\n202422,deer\n202423,ship\n202424,dog\n202425,truck\n202426,ship\n202427,bird\n202428,bird\n202429,airplane\n202430,airplane\n202431,bird\n202432,bird\n202433,dog\n202434,dog\n202435,ship\n202436,cat\n202437,cat\n202438,cat\n202439,horse\n202440,dog\n202441,frog\n202442,airplane\n202443,truck\n202444,airplane\n202445,frog\n202446,automobile\n202447,bird\n202448,cat\n202449,horse\n202450,cat\n202451,frog\n202452,frog\n202453,cat\n202454,dog\n202455,cat\n202456,dog\n202457,horse\n202458,bird\n202459,deer\n202460,truck\n202461,truck\n202462,horse\n202463,dog\n202464,cat\n202465,truck\n202466,airplane\n202467,deer\n202468,bird\n202469,deer\n202470,airplane\n202471,deer\n202472,cat\n202473,frog\n202474,bird\n202475,cat\n202476,horse\n202477,deer\n202478,dog\n202479,frog\n202480,dog\n202481,horse\n202482,airplane\n202483,cat\n202484,horse\n202485,cat\n202486,cat\n202487,truck\n202488,ship\n202489,dog\n202490,cat\n202491,bird\n202492,ship\n202493,deer\n202494,truck\n202495,horse\n202496,airplane\n202497,truck\n202498,deer\n202499,ship\n202500,bird\n202501,cat\n202502,ship\n202503,airplane\n202504,frog\n202505,deer\n202506,cat\n202507,deer\n202508,dog\n202509,bird\n202510,airplane\n202511,truck\n202512,deer\n202513,cat\n202514,dog\n202515,automobile\n202516,dog\n202517,bird\n202518,cat\n202519,frog\n202520,dog\n202521,horse\n202522,deer\n202523,deer\n202524,frog\n202525,cat\n202526,dog\n202527,horse\n202528,airplane\n202529,frog\n202530,truck\n202531,truck\n202532,truck\n202533,truck\n202534,ship\n202535,deer\n202536,automobile\n202537,frog\n202538,frog\n202539,cat\n202540,deer\n202541,frog\n202542,horse\n202543,cat\n202544,deer\n202545,truck\n202546,bird\n202547,frog\n202548,truck\n202549,airplane\n202550,frog\n202551,dog\n202552,truck\n202553,truck\n202554,dog\n202555,deer\n202556,deer\n202557,ship\n202558,bird\n202559,airplane\n202560,ship\n202561,horse\n202562,dog\n202563,frog\n202564,deer\n202565,ship\n202566,cat\n202567,truck\n202568,horse\n202569,horse\n202570,bird\n202571,bird\n202572,cat\n202573,deer\n202574,bird\n202575,airplane\n202576,horse\n202577,deer\n202578,airplane\n202579,dog\n202580,frog\n202581,automobile\n202582,automobile\n202583,airplane\n202584,truck\n202585,airplane\n202586,airplane\n202587,deer\n202588,frog\n202589,bird\n202590,cat\n202591,dog\n202592,horse\n202593,dog\n202594,deer\n202595,dog\n202596,horse\n202597,bird\n202598,bird\n202599,truck\n202600,dog\n202601,dog\n202602,cat\n202603,frog\n202604,truck\n202605,cat\n202606,truck\n202607,dog\n202608,cat\n202609,truck\n202610,deer\n202611,deer\n202612,cat\n202613,cat\n202614,horse\n202615,automobile\n202616,cat\n202617,horse\n202618,cat\n202619,airplane\n202620,dog\n202621,automobile\n202622,horse\n202623,horse\n202624,automobile\n202625,automobile\n202626,automobile\n202627,airplane\n202628,ship\n202629,automobile\n202630,bird\n202631,airplane\n202632,automobile\n202633,cat\n202634,bird\n202635,truck\n202636,bird\n202637,airplane\n202638,horse\n202639,cat\n202640,bird\n202641,horse\n202642,frog\n202643,ship\n202644,airplane\n202645,truck\n202646,bird\n202647,automobile\n202648,deer\n202649,frog\n202650,frog\n202651,bird\n202652,cat\n202653,frog\n202654,automobile\n202655,horse\n202656,cat\n202657,automobile\n202658,horse\n202659,dog\n202660,automobile\n202661,frog\n202662,frog\n202663,truck\n202664,truck\n202665,horse\n202666,ship\n202667,frog\n202668,deer\n202669,ship\n202670,deer\n202671,deer\n202672,horse\n202673,airplane\n202674,horse\n202675,bird\n202676,airplane\n202677,dog\n202678,ship\n202679,ship\n202680,truck\n202681,frog\n202682,ship\n202683,frog\n202684,frog\n202685,airplane\n202686,ship\n202687,horse\n202688,frog\n202689,dog\n202690,automobile\n202691,deer\n202692,airplane\n202693,bird\n202694,dog\n202695,cat\n202696,truck\n202697,truck\n202698,dog\n202699,cat\n202700,horse\n202701,bird\n202702,cat\n202703,bird\n202704,dog\n202705,truck\n202706,deer\n202707,cat\n202708,deer\n202709,dog\n202710,cat\n202711,dog\n202712,ship\n202713,bird\n202714,cat\n202715,ship\n202716,airplane\n202717,cat\n202718,deer\n202719,frog\n202720,ship\n202721,frog\n202722,truck\n202723,cat\n202724,horse\n202725,dog\n202726,ship\n202727,automobile\n202728,bird\n202729,cat\n202730,truck\n202731,deer\n202732,cat\n202733,horse\n202734,automobile\n202735,airplane\n202736,airplane\n202737,deer\n202738,dog\n202739,frog\n202740,horse\n202741,bird\n202742,deer\n202743,horse\n202744,truck\n202745,airplane\n202746,dog\n202747,cat\n202748,automobile\n202749,bird\n202750,ship\n202751,automobile\n202752,automobile\n202753,automobile\n202754,bird\n202755,dog\n202756,dog\n202757,cat\n202758,airplane\n202759,automobile\n202760,truck\n202761,ship\n202762,cat\n202763,ship\n202764,airplane\n202765,deer\n202766,cat\n202767,dog\n202768,airplane\n202769,cat\n202770,deer\n202771,frog\n202772,automobile\n202773,deer\n202774,frog\n202775,dog\n202776,truck\n202777,deer\n202778,ship\n202779,bird\n202780,horse\n202781,cat\n202782,truck\n202783,cat\n202784,truck\n202785,horse\n202786,horse\n202787,dog\n202788,deer\n202789,airplane\n202790,dog\n202791,bird\n202792,bird\n202793,horse\n202794,dog\n202795,deer\n202796,truck\n202797,truck\n202798,dog\n202799,frog\n202800,ship\n202801,horse\n202802,automobile\n202803,frog\n202804,dog\n202805,ship\n202806,frog\n202807,horse\n202808,horse\n202809,horse\n202810,frog\n202811,automobile\n202812,deer\n202813,truck\n202814,deer\n202815,horse\n202816,dog\n202817,truck\n202818,automobile\n202819,bird\n202820,dog\n202821,dog\n202822,cat\n202823,deer\n202824,truck\n202825,frog\n202826,automobile\n202827,horse\n202828,cat\n202829,frog\n202830,cat\n202831,ship\n202832,frog\n202833,frog\n202834,dog\n202835,ship\n202836,cat\n202837,automobile\n202838,automobile\n202839,automobile\n202840,truck\n202841,frog\n202842,cat\n202843,bird\n202844,ship\n202845,cat\n202846,frog\n202847,airplane\n202848,cat\n202849,truck\n202850,frog\n202851,cat\n202852,deer\n202853,airplane\n202854,dog\n202855,ship\n202856,bird\n202857,frog\n202858,dog\n202859,frog\n202860,automobile\n202861,ship\n202862,bird\n202863,cat\n202864,deer\n202865,frog\n202866,horse\n202867,dog\n202868,bird\n202869,frog\n202870,truck\n202871,truck\n202872,cat\n202873,ship\n202874,dog\n202875,automobile\n202876,deer\n202877,bird\n202878,dog\n202879,frog\n202880,cat\n202881,frog\n202882,dog\n202883,dog\n202884,horse\n202885,ship\n202886,dog\n202887,automobile\n202888,deer\n202889,cat\n202890,deer\n202891,dog\n202892,airplane\n202893,airplane\n202894,frog\n202895,ship\n202896,deer\n202897,cat\n202898,deer\n202899,cat\n202900,dog\n202901,dog\n202902,truck\n202903,cat\n202904,ship\n202905,frog\n202906,truck\n202907,cat\n202908,automobile\n202909,horse\n202910,deer\n202911,dog\n202912,deer\n202913,dog\n202914,frog\n202915,deer\n202916,cat\n202917,airplane\n202918,airplane\n202919,frog\n202920,cat\n202921,deer\n202922,deer\n202923,frog\n202924,frog\n202925,deer\n202926,deer\n202927,deer\n202928,horse\n202929,truck\n202930,ship\n202931,deer\n202932,deer\n202933,frog\n202934,bird\n202935,dog\n202936,horse\n202937,airplane\n202938,deer\n202939,horse\n202940,horse\n202941,truck\n202942,dog\n202943,airplane\n202944,ship\n202945,deer\n202946,deer\n202947,frog\n202948,truck\n202949,horse\n202950,dog\n202951,deer\n202952,cat\n202953,deer\n202954,deer\n202955,dog\n202956,frog\n202957,deer\n202958,cat\n202959,frog\n202960,airplane\n202961,cat\n202962,deer\n202963,cat\n202964,frog\n202965,deer\n202966,airplane\n202967,frog\n202968,ship\n202969,frog\n202970,frog\n202971,truck\n202972,frog\n202973,dog\n202974,automobile\n202975,deer\n202976,truck\n202977,truck\n202978,cat\n202979,horse\n202980,cat\n202981,deer\n202982,deer\n202983,cat\n202984,frog\n202985,cat\n202986,horse\n202987,bird\n202988,truck\n202989,deer\n202990,cat\n202991,airplane\n202992,frog\n202993,cat\n202994,bird\n202995,bird\n202996,deer\n202997,bird\n202998,horse\n202999,dog\n203000,automobile\n203001,airplane\n203002,frog\n203003,horse\n203004,horse\n203005,deer\n203006,truck\n203007,ship\n203008,cat\n203009,truck\n203010,deer\n203011,horse\n203012,truck\n203013,deer\n203014,cat\n203015,bird\n203016,truck\n203017,frog\n203018,ship\n203019,deer\n203020,ship\n203021,automobile\n203022,bird\n203023,truck\n203024,truck\n203025,airplane\n203026,airplane\n203027,truck\n203028,horse\n203029,bird\n203030,cat\n203031,bird\n203032,deer\n203033,horse\n203034,cat\n203035,cat\n203036,frog\n203037,horse\n203038,deer\n203039,cat\n203040,automobile\n203041,truck\n203042,deer\n203043,cat\n203044,dog\n203045,frog\n203046,truck\n203047,dog\n203048,truck\n203049,deer\n203050,dog\n203051,bird\n203052,frog\n203053,dog\n203054,truck\n203055,automobile\n203056,bird\n203057,cat\n203058,frog\n203059,truck\n203060,dog\n203061,horse\n203062,frog\n203063,frog\n203064,cat\n203065,truck\n203066,ship\n203067,dog\n203068,cat\n203069,bird\n203070,dog\n203071,ship\n203072,frog\n203073,horse\n203074,airplane\n203075,airplane\n203076,ship\n203077,dog\n203078,cat\n203079,horse\n203080,cat\n203081,dog\n203082,ship\n203083,dog\n203084,deer\n203085,truck\n203086,truck\n203087,cat\n203088,deer\n203089,bird\n203090,frog\n203091,cat\n203092,frog\n203093,dog\n203094,dog\n203095,cat\n203096,airplane\n203097,deer\n203098,cat\n203099,truck\n203100,horse\n203101,bird\n203102,deer\n203103,frog\n203104,frog\n203105,bird\n203106,ship\n203107,automobile\n203108,dog\n203109,cat\n203110,horse\n203111,horse\n203112,dog\n203113,frog\n203114,bird\n203115,automobile\n203116,frog\n203117,frog\n203118,frog\n203119,frog\n203120,frog\n203121,deer\n203122,dog\n203123,deer\n203124,ship\n203125,airplane\n203126,deer\n203127,deer\n203128,ship\n203129,deer\n203130,truck\n203131,airplane\n203132,frog\n203133,dog\n203134,bird\n203135,truck\n203136,automobile\n203137,automobile\n203138,cat\n203139,horse\n203140,ship\n203141,automobile\n203142,dog\n203143,dog\n203144,deer\n203145,automobile\n203146,cat\n203147,deer\n203148,horse\n203149,cat\n203150,automobile\n203151,bird\n203152,airplane\n203153,deer\n203154,ship\n203155,dog\n203156,automobile\n203157,frog\n203158,horse\n203159,truck\n203160,bird\n203161,airplane\n203162,airplane\n203163,truck\n203164,airplane\n203165,cat\n203166,automobile\n203167,truck\n203168,airplane\n203169,airplane\n203170,truck\n203171,dog\n203172,frog\n203173,cat\n203174,truck\n203175,truck\n203176,horse\n203177,ship\n203178,frog\n203179,dog\n203180,airplane\n203181,automobile\n203182,ship\n203183,deer\n203184,automobile\n203185,deer\n203186,cat\n203187,cat\n203188,cat\n203189,automobile\n203190,dog\n203191,bird\n203192,horse\n203193,ship\n203194,truck\n203195,horse\n203196,frog\n203197,horse\n203198,dog\n203199,truck\n203200,bird\n203201,dog\n203202,frog\n203203,airplane\n203204,deer\n203205,airplane\n203206,dog\n203207,truck\n203208,airplane\n203209,ship\n203210,cat\n203211,deer\n203212,truck\n203213,automobile\n203214,automobile\n203215,frog\n203216,airplane\n203217,deer\n203218,automobile\n203219,cat\n203220,horse\n203221,dog\n203222,horse\n203223,ship\n203224,horse\n203225,automobile\n203226,ship\n203227,bird\n203228,deer\n203229,dog\n203230,ship\n203231,ship\n203232,cat\n203233,deer\n203234,ship\n203235,ship\n203236,frog\n203237,airplane\n203238,bird\n203239,ship\n203240,deer\n203241,dog\n203242,ship\n203243,bird\n203244,bird\n203245,deer\n203246,frog\n203247,dog\n203248,automobile\n203249,deer\n203250,truck\n203251,bird\n203252,cat\n203253,horse\n203254,truck\n203255,ship\n203256,airplane\n203257,truck\n203258,ship\n203259,airplane\n203260,horse\n203261,deer\n203262,cat\n203263,deer\n203264,frog\n203265,truck\n203266,truck\n203267,frog\n203268,airplane\n203269,airplane\n203270,automobile\n203271,airplane\n203272,ship\n203273,cat\n203274,airplane\n203275,dog\n203276,automobile\n203277,frog\n203278,cat\n203279,cat\n203280,frog\n203281,cat\n203282,dog\n203283,cat\n203284,deer\n203285,cat\n203286,bird\n203287,bird\n203288,deer\n203289,automobile\n203290,frog\n203291,airplane\n203292,frog\n203293,bird\n203294,automobile\n203295,truck\n203296,cat\n203297,truck\n203298,horse\n203299,ship\n203300,horse\n203301,truck\n203302,airplane\n203303,airplane\n203304,automobile\n203305,bird\n203306,dog\n203307,frog\n203308,cat\n203309,deer\n203310,horse\n203311,airplane\n203312,frog\n203313,deer\n203314,automobile\n203315,dog\n203316,airplane\n203317,deer\n203318,cat\n203319,deer\n203320,airplane\n203321,bird\n203322,bird\n203323,horse\n203324,truck\n203325,dog\n203326,deer\n203327,dog\n203328,ship\n203329,deer\n203330,ship\n203331,frog\n203332,bird\n203333,automobile\n203334,ship\n203335,ship\n203336,ship\n203337,bird\n203338,cat\n203339,bird\n203340,horse\n203341,cat\n203342,airplane\n203343,deer\n203344,bird\n203345,horse\n203346,airplane\n203347,horse\n203348,ship\n203349,frog\n203350,truck\n203351,bird\n203352,deer\n203353,bird\n203354,truck\n203355,frog\n203356,dog\n203357,horse\n203358,cat\n203359,cat\n203360,deer\n203361,horse\n203362,dog\n203363,frog\n203364,horse\n203365,ship\n203366,airplane\n203367,automobile\n203368,truck\n203369,ship\n203370,deer\n203371,cat\n203372,frog\n203373,truck\n203374,deer\n203375,deer\n203376,bird\n203377,frog\n203378,frog\n203379,bird\n203380,bird\n203381,automobile\n203382,automobile\n203383,airplane\n203384,deer\n203385,ship\n203386,airplane\n203387,bird\n203388,horse\n203389,automobile\n203390,truck\n203391,ship\n203392,dog\n203393,dog\n203394,horse\n203395,bird\n203396,frog\n203397,automobile\n203398,airplane\n203399,dog\n203400,truck\n203401,bird\n203402,cat\n203403,dog\n203404,bird\n203405,ship\n203406,cat\n203407,dog\n203408,deer\n203409,frog\n203410,automobile\n203411,cat\n203412,horse\n203413,automobile\n203414,frog\n203415,automobile\n203416,ship\n203417,dog\n203418,cat\n203419,airplane\n203420,airplane\n203421,bird\n203422,horse\n203423,deer\n203424,ship\n203425,airplane\n203426,bird\n203427,cat\n203428,frog\n203429,cat\n203430,cat\n203431,deer\n203432,dog\n203433,bird\n203434,truck\n203435,airplane\n203436,bird\n203437,bird\n203438,frog\n203439,deer\n203440,frog\n203441,deer\n203442,dog\n203443,automobile\n203444,ship\n203445,frog\n203446,cat\n203447,airplane\n203448,horse\n203449,cat\n203450,automobile\n203451,cat\n203452,cat\n203453,ship\n203454,truck\n203455,automobile\n203456,cat\n203457,bird\n203458,dog\n203459,horse\n203460,cat\n203461,horse\n203462,dog\n203463,cat\n203464,automobile\n203465,frog\n203466,deer\n203467,frog\n203468,dog\n203469,frog\n203470,frog\n203471,dog\n203472,cat\n203473,cat\n203474,automobile\n203475,ship\n203476,deer\n203477,cat\n203478,dog\n203479,cat\n203480,cat\n203481,horse\n203482,frog\n203483,dog\n203484,automobile\n203485,bird\n203486,cat\n203487,airplane\n203488,automobile\n203489,truck\n203490,dog\n203491,truck\n203492,deer\n203493,airplane\n203494,deer\n203495,deer\n203496,cat\n203497,truck\n203498,bird\n203499,ship\n203500,deer\n203501,cat\n203502,cat\n203503,automobile\n203504,ship\n203505,automobile\n203506,automobile\n203507,dog\n203508,bird\n203509,dog\n203510,cat\n203511,frog\n203512,horse\n203513,frog\n203514,horse\n203515,cat\n203516,horse\n203517,truck\n203518,dog\n203519,airplane\n203520,bird\n203521,truck\n203522,frog\n203523,horse\n203524,cat\n203525,bird\n203526,horse\n203527,truck\n203528,dog\n203529,cat\n203530,cat\n203531,deer\n203532,ship\n203533,deer\n203534,bird\n203535,dog\n203536,truck\n203537,frog\n203538,truck\n203539,bird\n203540,dog\n203541,bird\n203542,bird\n203543,horse\n203544,cat\n203545,deer\n203546,cat\n203547,horse\n203548,truck\n203549,automobile\n203550,cat\n203551,cat\n203552,horse\n203553,truck\n203554,frog\n203555,cat\n203556,bird\n203557,frog\n203558,truck\n203559,cat\n203560,dog\n203561,deer\n203562,truck\n203563,truck\n203564,dog\n203565,bird\n203566,dog\n203567,truck\n203568,frog\n203569,bird\n203570,cat\n203571,deer\n203572,cat\n203573,dog\n203574,airplane\n203575,ship\n203576,truck\n203577,dog\n203578,airplane\n203579,horse\n203580,deer\n203581,automobile\n203582,frog\n203583,ship\n203584,cat\n203585,horse\n203586,deer\n203587,ship\n203588,truck\n203589,horse\n203590,cat\n203591,ship\n203592,cat\n203593,bird\n203594,horse\n203595,automobile\n203596,truck\n203597,ship\n203598,dog\n203599,frog\n203600,deer\n203601,deer\n203602,cat\n203603,cat\n203604,airplane\n203605,deer\n203606,dog\n203607,dog\n203608,airplane\n203609,truck\n203610,deer\n203611,ship\n203612,cat\n203613,bird\n203614,cat\n203615,dog\n203616,dog\n203617,automobile\n203618,truck\n203619,bird\n203620,frog\n203621,ship\n203622,truck\n203623,dog\n203624,bird\n203625,airplane\n203626,horse\n203627,horse\n203628,deer\n203629,frog\n203630,deer\n203631,airplane\n203632,frog\n203633,automobile\n203634,ship\n203635,deer\n203636,bird\n203637,truck\n203638,truck\n203639,cat\n203640,horse\n203641,ship\n203642,cat\n203643,bird\n203644,deer\n203645,deer\n203646,cat\n203647,horse\n203648,airplane\n203649,airplane\n203650,horse\n203651,deer\n203652,airplane\n203653,truck\n203654,deer\n203655,bird\n203656,dog\n203657,dog\n203658,dog\n203659,airplane\n203660,airplane\n203661,deer\n203662,automobile\n203663,dog\n203664,bird\n203665,cat\n203666,cat\n203667,airplane\n203668,truck\n203669,frog\n203670,deer\n203671,ship\n203672,truck\n203673,airplane\n203674,bird\n203675,cat\n203676,dog\n203677,dog\n203678,cat\n203679,truck\n203680,ship\n203681,ship\n203682,deer\n203683,bird\n203684,truck\n203685,dog\n203686,deer\n203687,truck\n203688,ship\n203689,cat\n203690,dog\n203691,horse\n203692,ship\n203693,cat\n203694,cat\n203695,dog\n203696,airplane\n203697,dog\n203698,deer\n203699,horse\n203700,frog\n203701,cat\n203702,deer\n203703,airplane\n203704,automobile\n203705,horse\n203706,bird\n203707,deer\n203708,bird\n203709,dog\n203710,frog\n203711,dog\n203712,cat\n203713,deer\n203714,cat\n203715,automobile\n203716,ship\n203717,airplane\n203718,deer\n203719,frog\n203720,frog\n203721,frog\n203722,deer\n203723,dog\n203724,truck\n203725,frog\n203726,ship\n203727,deer\n203728,truck\n203729,deer\n203730,automobile\n203731,automobile\n203732,ship\n203733,dog\n203734,horse\n203735,bird\n203736,cat\n203737,truck\n203738,dog\n203739,ship\n203740,frog\n203741,bird\n203742,cat\n203743,ship\n203744,dog\n203745,dog\n203746,deer\n203747,ship\n203748,horse\n203749,ship\n203750,truck\n203751,truck\n203752,airplane\n203753,truck\n203754,dog\n203755,automobile\n203756,deer\n203757,deer\n203758,deer\n203759,automobile\n203760,bird\n203761,horse\n203762,frog\n203763,airplane\n203764,cat\n203765,deer\n203766,horse\n203767,airplane\n203768,deer\n203769,bird\n203770,automobile\n203771,frog\n203772,deer\n203773,truck\n203774,airplane\n203775,truck\n203776,dog\n203777,frog\n203778,cat\n203779,ship\n203780,frog\n203781,ship\n203782,ship\n203783,ship\n203784,frog\n203785,deer\n203786,cat\n203787,automobile\n203788,frog\n203789,frog\n203790,cat\n203791,bird\n203792,deer\n203793,truck\n203794,horse\n203795,truck\n203796,dog\n203797,airplane\n203798,ship\n203799,deer\n203800,frog\n203801,automobile\n203802,deer\n203803,cat\n203804,airplane\n203805,airplane\n203806,cat\n203807,cat\n203808,dog\n203809,frog\n203810,automobile\n203811,truck\n203812,automobile\n203813,automobile\n203814,frog\n203815,deer\n203816,ship\n203817,frog\n203818,deer\n203819,ship\n203820,automobile\n203821,ship\n203822,horse\n203823,horse\n203824,horse\n203825,ship\n203826,ship\n203827,horse\n203828,truck\n203829,bird\n203830,dog\n203831,automobile\n203832,airplane\n203833,cat\n203834,deer\n203835,automobile\n203836,cat\n203837,dog\n203838,deer\n203839,cat\n203840,airplane\n203841,airplane\n203842,bird\n203843,deer\n203844,frog\n203845,airplane\n203846,deer\n203847,truck\n203848,deer\n203849,airplane\n203850,horse\n203851,truck\n203852,bird\n203853,truck\n203854,cat\n203855,deer\n203856,airplane\n203857,ship\n203858,horse\n203859,frog\n203860,automobile\n203861,bird\n203862,deer\n203863,horse\n203864,bird\n203865,dog\n203866,airplane\n203867,horse\n203868,automobile\n203869,frog\n203870,bird\n203871,bird\n203872,ship\n203873,ship\n203874,frog\n203875,automobile\n203876,dog\n203877,automobile\n203878,ship\n203879,frog\n203880,automobile\n203881,cat\n203882,dog\n203883,cat\n203884,horse\n203885,airplane\n203886,deer\n203887,automobile\n203888,frog\n203889,cat\n203890,bird\n203891,frog\n203892,automobile\n203893,cat\n203894,dog\n203895,ship\n203896,truck\n203897,deer\n203898,airplane\n203899,airplane\n203900,bird\n203901,dog\n203902,ship\n203903,dog\n203904,truck\n203905,airplane\n203906,frog\n203907,cat\n203908,bird\n203909,bird\n203910,cat\n203911,bird\n203912,horse\n203913,frog\n203914,truck\n203915,horse\n203916,airplane\n203917,horse\n203918,truck\n203919,airplane\n203920,truck\n203921,horse\n203922,automobile\n203923,deer\n203924,cat\n203925,cat\n203926,airplane\n203927,cat\n203928,truck\n203929,automobile\n203930,automobile\n203931,deer\n203932,horse\n203933,bird\n203934,horse\n203935,deer\n203936,deer\n203937,bird\n203938,dog\n203939,bird\n203940,cat\n203941,dog\n203942,truck\n203943,automobile\n203944,frog\n203945,frog\n203946,truck\n203947,bird\n203948,cat\n203949,ship\n203950,bird\n203951,automobile\n203952,airplane\n203953,dog\n203954,frog\n203955,deer\n203956,deer\n203957,cat\n203958,cat\n203959,truck\n203960,deer\n203961,cat\n203962,airplane\n203963,airplane\n203964,horse\n203965,automobile\n203966,truck\n203967,cat\n203968,truck\n203969,dog\n203970,cat\n203971,dog\n203972,dog\n203973,ship\n203974,cat\n203975,bird\n203976,dog\n203977,frog\n203978,frog\n203979,truck\n203980,bird\n203981,airplane\n203982,bird\n203983,bird\n203984,deer\n203985,ship\n203986,cat\n203987,dog\n203988,deer\n203989,airplane\n203990,ship\n203991,ship\n203992,dog\n203993,deer\n203994,frog\n203995,cat\n203996,airplane\n203997,truck\n203998,frog\n203999,ship\n204000,deer\n204001,bird\n204002,airplane\n204003,cat\n204004,cat\n204005,deer\n204006,bird\n204007,airplane\n204008,horse\n204009,bird\n204010,airplane\n204011,frog\n204012,automobile\n204013,cat\n204014,dog\n204015,dog\n204016,horse\n204017,cat\n204018,automobile\n204019,horse\n204020,automobile\n204021,deer\n204022,cat\n204023,deer\n204024,deer\n204025,deer\n204026,dog\n204027,dog\n204028,frog\n204029,ship\n204030,bird\n204031,horse\n204032,frog\n204033,cat\n204034,cat\n204035,frog\n204036,truck\n204037,frog\n204038,bird\n204039,horse\n204040,airplane\n204041,cat\n204042,frog\n204043,truck\n204044,airplane\n204045,frog\n204046,truck\n204047,cat\n204048,cat\n204049,cat\n204050,frog\n204051,frog\n204052,cat\n204053,airplane\n204054,ship\n204055,dog\n204056,deer\n204057,bird\n204058,frog\n204059,bird\n204060,dog\n204061,frog\n204062,cat\n204063,truck\n204064,bird\n204065,truck\n204066,cat\n204067,bird\n204068,cat\n204069,horse\n204070,deer\n204071,airplane\n204072,ship\n204073,truck\n204074,cat\n204075,truck\n204076,truck\n204077,deer\n204078,cat\n204079,deer\n204080,deer\n204081,ship\n204082,ship\n204083,automobile\n204084,truck\n204085,frog\n204086,dog\n204087,dog\n204088,deer\n204089,ship\n204090,automobile\n204091,truck\n204092,horse\n204093,dog\n204094,bird\n204095,frog\n204096,dog\n204097,truck\n204098,frog\n204099,cat\n204100,frog\n204101,truck\n204102,airplane\n204103,deer\n204104,frog\n204105,truck\n204106,dog\n204107,horse\n204108,ship\n204109,deer\n204110,ship\n204111,frog\n204112,deer\n204113,cat\n204114,frog\n204115,horse\n204116,frog\n204117,truck\n204118,dog\n204119,cat\n204120,truck\n204121,dog\n204122,automobile\n204123,bird\n204124,ship\n204125,dog\n204126,dog\n204127,dog\n204128,frog\n204129,airplane\n204130,truck\n204131,bird\n204132,horse\n204133,cat\n204134,horse\n204135,airplane\n204136,cat\n204137,truck\n204138,dog\n204139,deer\n204140,truck\n204141,bird\n204142,dog\n204143,automobile\n204144,automobile\n204145,horse\n204146,frog\n204147,bird\n204148,bird\n204149,cat\n204150,deer\n204151,airplane\n204152,bird\n204153,frog\n204154,ship\n204155,frog\n204156,dog\n204157,cat\n204158,dog\n204159,cat\n204160,dog\n204161,airplane\n204162,truck\n204163,frog\n204164,automobile\n204165,dog\n204166,frog\n204167,bird\n204168,cat\n204169,automobile\n204170,airplane\n204171,airplane\n204172,cat\n204173,cat\n204174,deer\n204175,frog\n204176,cat\n204177,dog\n204178,airplane\n204179,ship\n204180,cat\n204181,horse\n204182,dog\n204183,bird\n204184,bird\n204185,frog\n204186,deer\n204187,cat\n204188,truck\n204189,airplane\n204190,ship\n204191,truck\n204192,bird\n204193,bird\n204194,deer\n204195,automobile\n204196,frog\n204197,truck\n204198,dog\n204199,airplane\n204200,automobile\n204201,truck\n204202,truck\n204203,airplane\n204204,deer\n204205,bird\n204206,automobile\n204207,deer\n204208,deer\n204209,airplane\n204210,airplane\n204211,airplane\n204212,frog\n204213,bird\n204214,horse\n204215,automobile\n204216,deer\n204217,bird\n204218,deer\n204219,truck\n204220,ship\n204221,bird\n204222,dog\n204223,horse\n204224,airplane\n204225,airplane\n204226,horse\n204227,dog\n204228,frog\n204229,frog\n204230,dog\n204231,ship\n204232,ship\n204233,cat\n204234,cat\n204235,horse\n204236,truck\n204237,cat\n204238,cat\n204239,bird\n204240,truck\n204241,deer\n204242,airplane\n204243,airplane\n204244,automobile\n204245,ship\n204246,cat\n204247,bird\n204248,automobile\n204249,cat\n204250,airplane\n204251,airplane\n204252,airplane\n204253,truck\n204254,airplane\n204255,cat\n204256,deer\n204257,airplane\n204258,deer\n204259,cat\n204260,dog\n204261,cat\n204262,automobile\n204263,bird\n204264,dog\n204265,horse\n204266,automobile\n204267,dog\n204268,truck\n204269,bird\n204270,horse\n204271,cat\n204272,frog\n204273,frog\n204274,frog\n204275,frog\n204276,cat\n204277,bird\n204278,bird\n204279,deer\n204280,bird\n204281,bird\n204282,deer\n204283,dog\n204284,horse\n204285,dog\n204286,truck\n204287,ship\n204288,frog\n204289,truck\n204290,horse\n204291,deer\n204292,bird\n204293,cat\n204294,dog\n204295,dog\n204296,deer\n204297,truck\n204298,cat\n204299,cat\n204300,cat\n204301,truck\n204302,horse\n204303,horse\n204304,dog\n204305,truck\n204306,truck\n204307,airplane\n204308,bird\n204309,cat\n204310,deer\n204311,dog\n204312,bird\n204313,frog\n204314,cat\n204315,horse\n204316,frog\n204317,airplane\n204318,cat\n204319,airplane\n204320,bird\n204321,automobile\n204322,horse\n204323,airplane\n204324,bird\n204325,dog\n204326,cat\n204327,deer\n204328,airplane\n204329,frog\n204330,horse\n204331,automobile\n204332,horse\n204333,automobile\n204334,horse\n204335,bird\n204336,cat\n204337,deer\n204338,frog\n204339,bird\n204340,airplane\n204341,ship\n204342,deer\n204343,airplane\n204344,dog\n204345,ship\n204346,bird\n204347,ship\n204348,automobile\n204349,deer\n204350,ship\n204351,cat\n204352,dog\n204353,frog\n204354,truck\n204355,frog\n204356,cat\n204357,ship\n204358,truck\n204359,truck\n204360,cat\n204361,dog\n204362,bird\n204363,truck\n204364,automobile\n204365,airplane\n204366,ship\n204367,truck\n204368,bird\n204369,ship\n204370,ship\n204371,truck\n204372,bird\n204373,deer\n204374,truck\n204375,cat\n204376,frog\n204377,frog\n204378,horse\n204379,deer\n204380,truck\n204381,bird\n204382,automobile\n204383,dog\n204384,airplane\n204385,automobile\n204386,automobile\n204387,frog\n204388,bird\n204389,bird\n204390,horse\n204391,truck\n204392,cat\n204393,cat\n204394,cat\n204395,frog\n204396,cat\n204397,horse\n204398,airplane\n204399,truck\n204400,horse\n204401,deer\n204402,dog\n204403,airplane\n204404,airplane\n204405,truck\n204406,ship\n204407,bird\n204408,deer\n204409,automobile\n204410,truck\n204411,frog\n204412,automobile\n204413,horse\n204414,frog\n204415,cat\n204416,dog\n204417,ship\n204418,cat\n204419,ship\n204420,deer\n204421,horse\n204422,bird\n204423,deer\n204424,dog\n204425,frog\n204426,airplane\n204427,cat\n204428,horse\n204429,dog\n204430,truck\n204431,automobile\n204432,frog\n204433,truck\n204434,airplane\n204435,frog\n204436,bird\n204437,frog\n204438,horse\n204439,automobile\n204440,deer\n204441,horse\n204442,deer\n204443,horse\n204444,cat\n204445,cat\n204446,cat\n204447,dog\n204448,deer\n204449,cat\n204450,bird\n204451,cat\n204452,automobile\n204453,deer\n204454,ship\n204455,airplane\n204456,cat\n204457,cat\n204458,cat\n204459,frog\n204460,bird\n204461,frog\n204462,ship\n204463,horse\n204464,deer\n204465,ship\n204466,dog\n204467,truck\n204468,deer\n204469,cat\n204470,bird\n204471,ship\n204472,dog\n204473,automobile\n204474,truck\n204475,frog\n204476,cat\n204477,deer\n204478,frog\n204479,bird\n204480,deer\n204481,truck\n204482,deer\n204483,frog\n204484,automobile\n204485,cat\n204486,deer\n204487,bird\n204488,truck\n204489,automobile\n204490,bird\n204491,deer\n204492,deer\n204493,dog\n204494,ship\n204495,bird\n204496,horse\n204497,frog\n204498,deer\n204499,horse\n204500,truck\n204501,dog\n204502,deer\n204503,dog\n204504,horse\n204505,horse\n204506,truck\n204507,dog\n204508,deer\n204509,airplane\n204510,truck\n204511,horse\n204512,frog\n204513,dog\n204514,dog\n204515,airplane\n204516,ship\n204517,truck\n204518,frog\n204519,cat\n204520,ship\n204521,ship\n204522,horse\n204523,deer\n204524,deer\n204525,cat\n204526,bird\n204527,cat\n204528,ship\n204529,truck\n204530,horse\n204531,dog\n204532,truck\n204533,frog\n204534,dog\n204535,cat\n204536,dog\n204537,ship\n204538,horse\n204539,automobile\n204540,bird\n204541,truck\n204542,bird\n204543,cat\n204544,frog\n204545,truck\n204546,cat\n204547,frog\n204548,bird\n204549,deer\n204550,ship\n204551,truck\n204552,truck\n204553,ship\n204554,airplane\n204555,automobile\n204556,dog\n204557,airplane\n204558,dog\n204559,frog\n204560,dog\n204561,dog\n204562,ship\n204563,airplane\n204564,bird\n204565,truck\n204566,frog\n204567,ship\n204568,bird\n204569,frog\n204570,frog\n204571,truck\n204572,airplane\n204573,automobile\n204574,truck\n204575,dog\n204576,airplane\n204577,truck\n204578,bird\n204579,airplane\n204580,automobile\n204581,cat\n204582,dog\n204583,bird\n204584,airplane\n204585,deer\n204586,ship\n204587,frog\n204588,frog\n204589,automobile\n204590,dog\n204591,frog\n204592,cat\n204593,ship\n204594,cat\n204595,cat\n204596,bird\n204597,deer\n204598,deer\n204599,horse\n204600,deer\n204601,truck\n204602,deer\n204603,airplane\n204604,airplane\n204605,deer\n204606,automobile\n204607,frog\n204608,frog\n204609,frog\n204610,truck\n204611,frog\n204612,truck\n204613,horse\n204614,frog\n204615,bird\n204616,ship\n204617,bird\n204618,horse\n204619,automobile\n204620,dog\n204621,horse\n204622,horse\n204623,ship\n204624,bird\n204625,deer\n204626,bird\n204627,deer\n204628,deer\n204629,horse\n204630,cat\n204631,frog\n204632,dog\n204633,bird\n204634,bird\n204635,dog\n204636,cat\n204637,deer\n204638,bird\n204639,frog\n204640,horse\n204641,ship\n204642,truck\n204643,cat\n204644,truck\n204645,dog\n204646,cat\n204647,frog\n204648,frog\n204649,frog\n204650,horse\n204651,dog\n204652,truck\n204653,deer\n204654,dog\n204655,horse\n204656,deer\n204657,horse\n204658,cat\n204659,automobile\n204660,frog\n204661,truck\n204662,horse\n204663,automobile\n204664,automobile\n204665,automobile\n204666,dog\n204667,dog\n204668,frog\n204669,airplane\n204670,horse\n204671,dog\n204672,cat\n204673,dog\n204674,deer\n204675,cat\n204676,cat\n204677,frog\n204678,automobile\n204679,ship\n204680,ship\n204681,dog\n204682,frog\n204683,cat\n204684,dog\n204685,truck\n204686,ship\n204687,cat\n204688,deer\n204689,frog\n204690,truck\n204691,frog\n204692,frog\n204693,cat\n204694,frog\n204695,dog\n204696,truck\n204697,dog\n204698,bird\n204699,frog\n204700,airplane\n204701,bird\n204702,cat\n204703,automobile\n204704,bird\n204705,frog\n204706,frog\n204707,bird\n204708,frog\n204709,cat\n204710,airplane\n204711,ship\n204712,cat\n204713,ship\n204714,truck\n204715,dog\n204716,airplane\n204717,automobile\n204718,dog\n204719,bird\n204720,frog\n204721,automobile\n204722,dog\n204723,ship\n204724,dog\n204725,deer\n204726,cat\n204727,bird\n204728,frog\n204729,frog\n204730,frog\n204731,airplane\n204732,deer\n204733,dog\n204734,frog\n204735,frog\n204736,cat\n204737,deer\n204738,cat\n204739,cat\n204740,bird\n204741,deer\n204742,cat\n204743,airplane\n204744,horse\n204745,dog\n204746,cat\n204747,deer\n204748,cat\n204749,automobile\n204750,frog\n204751,airplane\n204752,bird\n204753,bird\n204754,airplane\n204755,ship\n204756,cat\n204757,automobile\n204758,ship\n204759,frog\n204760,airplane\n204761,cat\n204762,bird\n204763,dog\n204764,horse\n204765,ship\n204766,deer\n204767,truck\n204768,automobile\n204769,bird\n204770,deer\n204771,ship\n204772,horse\n204773,automobile\n204774,truck\n204775,bird\n204776,automobile\n204777,airplane\n204778,frog\n204779,ship\n204780,bird\n204781,dog\n204782,dog\n204783,airplane\n204784,ship\n204785,truck\n204786,dog\n204787,dog\n204788,bird\n204789,deer\n204790,deer\n204791,deer\n204792,frog\n204793,truck\n204794,horse\n204795,dog\n204796,bird\n204797,truck\n204798,cat\n204799,deer\n204800,bird\n204801,frog\n204802,frog\n204803,dog\n204804,deer\n204805,truck\n204806,ship\n204807,horse\n204808,dog\n204809,deer\n204810,horse\n204811,deer\n204812,ship\n204813,bird\n204814,frog\n204815,ship\n204816,horse\n204817,frog\n204818,frog\n204819,airplane\n204820,ship\n204821,ship\n204822,airplane\n204823,truck\n204824,bird\n204825,automobile\n204826,cat\n204827,automobile\n204828,cat\n204829,dog\n204830,cat\n204831,dog\n204832,ship\n204833,truck\n204834,horse\n204835,automobile\n204836,airplane\n204837,bird\n204838,deer\n204839,deer\n204840,cat\n204841,deer\n204842,airplane\n204843,horse\n204844,deer\n204845,truck\n204846,dog\n204847,horse\n204848,bird\n204849,ship\n204850,ship\n204851,deer\n204852,bird\n204853,truck\n204854,automobile\n204855,cat\n204856,deer\n204857,bird\n204858,horse\n204859,frog\n204860,frog\n204861,truck\n204862,dog\n204863,deer\n204864,horse\n204865,truck\n204866,cat\n204867,dog\n204868,truck\n204869,frog\n204870,truck\n204871,deer\n204872,automobile\n204873,horse\n204874,deer\n204875,bird\n204876,cat\n204877,automobile\n204878,truck\n204879,bird\n204880,dog\n204881,truck\n204882,airplane\n204883,deer\n204884,bird\n204885,dog\n204886,deer\n204887,airplane\n204888,deer\n204889,cat\n204890,cat\n204891,deer\n204892,ship\n204893,deer\n204894,truck\n204895,deer\n204896,automobile\n204897,cat\n204898,frog\n204899,bird\n204900,cat\n204901,horse\n204902,dog\n204903,ship\n204904,dog\n204905,bird\n204906,airplane\n204907,frog\n204908,cat\n204909,deer\n204910,frog\n204911,airplane\n204912,truck\n204913,horse\n204914,airplane\n204915,ship\n204916,automobile\n204917,deer\n204918,horse\n204919,truck\n204920,airplane\n204921,automobile\n204922,ship\n204923,airplane\n204924,bird\n204925,deer\n204926,deer\n204927,bird\n204928,automobile\n204929,dog\n204930,dog\n204931,deer\n204932,truck\n204933,cat\n204934,cat\n204935,ship\n204936,airplane\n204937,automobile\n204938,frog\n204939,truck\n204940,horse\n204941,dog\n204942,ship\n204943,frog\n204944,horse\n204945,dog\n204946,ship\n204947,dog\n204948,deer\n204949,bird\n204950,truck\n204951,cat\n204952,bird\n204953,dog\n204954,deer\n204955,deer\n204956,airplane\n204957,frog\n204958,bird\n204959,cat\n204960,dog\n204961,deer\n204962,dog\n204963,deer\n204964,dog\n204965,deer\n204966,horse\n204967,bird\n204968,ship\n204969,deer\n204970,automobile\n204971,deer\n204972,frog\n204973,frog\n204974,airplane\n204975,airplane\n204976,cat\n204977,dog\n204978,horse\n204979,cat\n204980,automobile\n204981,dog\n204982,automobile\n204983,deer\n204984,cat\n204985,frog\n204986,cat\n204987,cat\n204988,frog\n204989,deer\n204990,automobile\n204991,bird\n204992,frog\n204993,frog\n204994,bird\n204995,cat\n204996,airplane\n204997,dog\n204998,dog\n204999,cat\n205000,ship\n205001,frog\n205002,cat\n205003,horse\n205004,airplane\n205005,dog\n205006,frog\n205007,frog\n205008,truck\n205009,deer\n205010,ship\n205011,horse\n205012,frog\n205013,cat\n205014,horse\n205015,deer\n205016,deer\n205017,automobile\n205018,horse\n205019,deer\n205020,dog\n205021,deer\n205022,bird\n205023,automobile\n205024,cat\n205025,frog\n205026,airplane\n205027,dog\n205028,airplane\n205029,cat\n205030,dog\n205031,truck\n205032,deer\n205033,truck\n205034,ship\n205035,ship\n205036,frog\n205037,horse\n205038,dog\n205039,truck\n205040,frog\n205041,airplane\n205042,dog\n205043,truck\n205044,frog\n205045,dog\n205046,frog\n205047,ship\n205048,deer\n205049,deer\n205050,automobile\n205051,frog\n205052,dog\n205053,frog\n205054,horse\n205055,bird\n205056,dog\n205057,horse\n205058,automobile\n205059,automobile\n205060,automobile\n205061,ship\n205062,deer\n205063,horse\n205064,frog\n205065,bird\n205066,deer\n205067,airplane\n205068,cat\n205069,dog\n205070,deer\n205071,frog\n205072,bird\n205073,airplane\n205074,truck\n205075,airplane\n205076,dog\n205077,ship\n205078,bird\n205079,cat\n205080,horse\n205081,dog\n205082,horse\n205083,airplane\n205084,deer\n205085,deer\n205086,airplane\n205087,cat\n205088,dog\n205089,deer\n205090,horse\n205091,ship\n205092,truck\n205093,dog\n205094,automobile\n205095,bird\n205096,cat\n205097,airplane\n205098,horse\n205099,cat\n205100,truck\n205101,bird\n205102,ship\n205103,horse\n205104,dog\n205105,cat\n205106,truck\n205107,airplane\n205108,automobile\n205109,horse\n205110,horse\n205111,bird\n205112,cat\n205113,horse\n205114,airplane\n205115,horse\n205116,horse\n205117,bird\n205118,deer\n205119,bird\n205120,dog\n205121,horse\n205122,horse\n205123,bird\n205124,airplane\n205125,dog\n205126,ship\n205127,bird\n205128,bird\n205129,automobile\n205130,airplane\n205131,deer\n205132,truck\n205133,truck\n205134,airplane\n205135,cat\n205136,horse\n205137,airplane\n205138,cat\n205139,truck\n205140,truck\n205141,deer\n205142,bird\n205143,dog\n205144,frog\n205145,cat\n205146,cat\n205147,deer\n205148,automobile\n205149,deer\n205150,deer\n205151,bird\n205152,cat\n205153,dog\n205154,ship\n205155,deer\n205156,ship\n205157,deer\n205158,bird\n205159,truck\n205160,truck\n205161,airplane\n205162,frog\n205163,automobile\n205164,airplane\n205165,truck\n205166,ship\n205167,deer\n205168,deer\n205169,cat\n205170,deer\n205171,dog\n205172,cat\n205173,cat\n205174,automobile\n205175,deer\n205176,truck\n205177,frog\n205178,deer\n205179,dog\n205180,bird\n205181,frog\n205182,frog\n205183,ship\n205184,deer\n205185,horse\n205186,dog\n205187,airplane\n205188,horse\n205189,frog\n205190,dog\n205191,deer\n205192,deer\n205193,horse\n205194,deer\n205195,dog\n205196,automobile\n205197,ship\n205198,airplane\n205199,automobile\n205200,deer\n205201,cat\n205202,airplane\n205203,frog\n205204,airplane\n205205,airplane\n205206,automobile\n205207,bird\n205208,dog\n205209,deer\n205210,cat\n205211,airplane\n205212,automobile\n205213,horse\n205214,truck\n205215,ship\n205216,dog\n205217,truck\n205218,cat\n205219,horse\n205220,frog\n205221,frog\n205222,automobile\n205223,horse\n205224,bird\n205225,airplane\n205226,dog\n205227,airplane\n205228,automobile\n205229,frog\n205230,frog\n205231,frog\n205232,frog\n205233,automobile\n205234,truck\n205235,airplane\n205236,bird\n205237,cat\n205238,dog\n205239,bird\n205240,airplane\n205241,frog\n205242,cat\n205243,ship\n205244,airplane\n205245,cat\n205246,airplane\n205247,horse\n205248,truck\n205249,airplane\n205250,truck\n205251,deer\n205252,horse\n205253,cat\n205254,bird\n205255,frog\n205256,cat\n205257,frog\n205258,cat\n205259,dog\n205260,truck\n205261,bird\n205262,deer\n205263,airplane\n205264,cat\n205265,bird\n205266,deer\n205267,deer\n205268,dog\n205269,deer\n205270,ship\n205271,airplane\n205272,cat\n205273,airplane\n205274,airplane\n205275,truck\n205276,dog\n205277,airplane\n205278,deer\n205279,ship\n205280,bird\n205281,horse\n205282,truck\n205283,dog\n205284,ship\n205285,airplane\n205286,truck\n205287,truck\n205288,dog\n205289,deer\n205290,truck\n205291,deer\n205292,dog\n205293,automobile\n205294,bird\n205295,automobile\n205296,horse\n205297,cat\n205298,deer\n205299,ship\n205300,truck\n205301,airplane\n205302,truck\n205303,cat\n205304,automobile\n205305,deer\n205306,dog\n205307,cat\n205308,horse\n205309,deer\n205310,airplane\n205311,ship\n205312,cat\n205313,frog\n205314,automobile\n205315,dog\n205316,frog\n205317,deer\n205318,dog\n205319,automobile\n205320,automobile\n205321,truck\n205322,automobile\n205323,ship\n205324,horse\n205325,cat\n205326,airplane\n205327,dog\n205328,cat\n205329,deer\n205330,truck\n205331,dog\n205332,truck\n205333,cat\n205334,bird\n205335,dog\n205336,deer\n205337,automobile\n205338,frog\n205339,dog\n205340,ship\n205341,deer\n205342,deer\n205343,deer\n205344,ship\n205345,deer\n205346,frog\n205347,dog\n205348,cat\n205349,deer\n205350,dog\n205351,automobile\n205352,truck\n205353,frog\n205354,automobile\n205355,bird\n205356,dog\n205357,dog\n205358,deer\n205359,frog\n205360,bird\n205361,truck\n205362,cat\n205363,airplane\n205364,frog\n205365,deer\n205366,airplane\n205367,deer\n205368,deer\n205369,deer\n205370,horse\n205371,bird\n205372,dog\n205373,automobile\n205374,automobile\n205375,automobile\n205376,airplane\n205377,dog\n205378,frog\n205379,truck\n205380,truck\n205381,deer\n205382,cat\n205383,truck\n205384,bird\n205385,airplane\n205386,frog\n205387,deer\n205388,bird\n205389,frog\n205390,airplane\n205391,cat\n205392,horse\n205393,deer\n205394,frog\n205395,truck\n205396,cat\n205397,deer\n205398,deer\n205399,dog\n205400,frog\n205401,cat\n205402,bird\n205403,frog\n205404,deer\n205405,truck\n205406,airplane\n205407,horse\n205408,bird\n205409,ship\n205410,horse\n205411,ship\n205412,frog\n205413,bird\n205414,deer\n205415,bird\n205416,dog\n205417,frog\n205418,truck\n205419,airplane\n205420,truck\n205421,truck\n205422,dog\n205423,frog\n205424,ship\n205425,cat\n205426,cat\n205427,bird\n205428,cat\n205429,dog\n205430,automobile\n205431,airplane\n205432,deer\n205433,bird\n205434,frog\n205435,deer\n205436,airplane\n205437,deer\n205438,deer\n205439,airplane\n205440,cat\n205441,airplane\n205442,deer\n205443,frog\n205444,automobile\n205445,truck\n205446,truck\n205447,horse\n205448,deer\n205449,truck\n205450,frog\n205451,deer\n205452,frog\n205453,deer\n205454,dog\n205455,deer\n205456,frog\n205457,bird\n205458,airplane\n205459,truck\n205460,ship\n205461,frog\n205462,horse\n205463,dog\n205464,horse\n205465,frog\n205466,airplane\n205467,frog\n205468,truck\n205469,deer\n205470,cat\n205471,automobile\n205472,deer\n205473,dog\n205474,cat\n205475,horse\n205476,ship\n205477,bird\n205478,bird\n205479,automobile\n205480,horse\n205481,airplane\n205482,dog\n205483,frog\n205484,dog\n205485,deer\n205486,dog\n205487,automobile\n205488,cat\n205489,truck\n205490,automobile\n205491,deer\n205492,cat\n205493,dog\n205494,airplane\n205495,frog\n205496,deer\n205497,ship\n205498,cat\n205499,frog\n205500,deer\n205501,cat\n205502,bird\n205503,horse\n205504,frog\n205505,horse\n205506,automobile\n205507,deer\n205508,frog\n205509,ship\n205510,truck\n205511,frog\n205512,ship\n205513,deer\n205514,automobile\n205515,deer\n205516,automobile\n205517,truck\n205518,bird\n205519,dog\n205520,frog\n205521,automobile\n205522,dog\n205523,automobile\n205524,cat\n205525,frog\n205526,frog\n205527,frog\n205528,cat\n205529,horse\n205530,truck\n205531,bird\n205532,deer\n205533,ship\n205534,ship\n205535,deer\n205536,truck\n205537,dog\n205538,truck\n205539,deer\n205540,airplane\n205541,frog\n205542,bird\n205543,airplane\n205544,deer\n205545,airplane\n205546,frog\n205547,truck\n205548,truck\n205549,deer\n205550,airplane\n205551,truck\n205552,deer\n205553,ship\n205554,cat\n205555,ship\n205556,horse\n205557,deer\n205558,automobile\n205559,frog\n205560,ship\n205561,airplane\n205562,horse\n205563,dog\n205564,frog\n205565,bird\n205566,bird\n205567,ship\n205568,dog\n205569,horse\n205570,automobile\n205571,bird\n205572,dog\n205573,ship\n205574,cat\n205575,bird\n205576,airplane\n205577,dog\n205578,horse\n205579,deer\n205580,dog\n205581,frog\n205582,frog\n205583,dog\n205584,ship\n205585,frog\n205586,deer\n205587,automobile\n205588,horse\n205589,deer\n205590,horse\n205591,frog\n205592,frog\n205593,frog\n205594,dog\n205595,deer\n205596,automobile\n205597,cat\n205598,deer\n205599,frog\n205600,automobile\n205601,bird\n205602,bird\n205603,bird\n205604,cat\n205605,horse\n205606,automobile\n205607,dog\n205608,truck\n205609,truck\n205610,frog\n205611,frog\n205612,truck\n205613,cat\n205614,airplane\n205615,horse\n205616,airplane\n205617,bird\n205618,frog\n205619,deer\n205620,deer\n205621,cat\n205622,truck\n205623,ship\n205624,ship\n205625,cat\n205626,horse\n205627,ship\n205628,frog\n205629,horse\n205630,airplane\n205631,automobile\n205632,frog\n205633,dog\n205634,airplane\n205635,cat\n205636,cat\n205637,bird\n205638,automobile\n205639,frog\n205640,frog\n205641,deer\n205642,ship\n205643,dog\n205644,ship\n205645,deer\n205646,frog\n205647,bird\n205648,deer\n205649,frog\n205650,horse\n205651,horse\n205652,automobile\n205653,cat\n205654,horse\n205655,automobile\n205656,deer\n205657,bird\n205658,ship\n205659,dog\n205660,deer\n205661,dog\n205662,airplane\n205663,cat\n205664,cat\n205665,truck\n205666,frog\n205667,truck\n205668,dog\n205669,truck\n205670,horse\n205671,horse\n205672,ship\n205673,frog\n205674,airplane\n205675,horse\n205676,ship\n205677,frog\n205678,automobile\n205679,deer\n205680,truck\n205681,ship\n205682,truck\n205683,dog\n205684,horse\n205685,cat\n205686,horse\n205687,cat\n205688,truck\n205689,airplane\n205690,cat\n205691,ship\n205692,cat\n205693,automobile\n205694,bird\n205695,frog\n205696,horse\n205697,deer\n205698,airplane\n205699,truck\n205700,cat\n205701,dog\n205702,horse\n205703,frog\n205704,truck\n205705,cat\n205706,frog\n205707,cat\n205708,dog\n205709,frog\n205710,bird\n205711,cat\n205712,deer\n205713,ship\n205714,dog\n205715,frog\n205716,ship\n205717,dog\n205718,truck\n205719,horse\n205720,airplane\n205721,ship\n205722,frog\n205723,truck\n205724,cat\n205725,deer\n205726,automobile\n205727,cat\n205728,deer\n205729,frog\n205730,truck\n205731,bird\n205732,deer\n205733,truck\n205734,dog\n205735,bird\n205736,automobile\n205737,dog\n205738,ship\n205739,deer\n205740,horse\n205741,ship\n205742,dog\n205743,airplane\n205744,dog\n205745,deer\n205746,bird\n205747,ship\n205748,cat\n205749,truck\n205750,deer\n205751,airplane\n205752,bird\n205753,deer\n205754,deer\n205755,frog\n205756,airplane\n205757,bird\n205758,cat\n205759,truck\n205760,deer\n205761,airplane\n205762,deer\n205763,dog\n205764,deer\n205765,horse\n205766,dog\n205767,truck\n205768,cat\n205769,cat\n205770,deer\n205771,bird\n205772,bird\n205773,frog\n205774,truck\n205775,horse\n205776,deer\n205777,ship\n205778,truck\n205779,ship\n205780,cat\n205781,frog\n205782,bird\n205783,deer\n205784,horse\n205785,cat\n205786,bird\n205787,airplane\n205788,truck\n205789,deer\n205790,frog\n205791,dog\n205792,dog\n205793,automobile\n205794,truck\n205795,bird\n205796,airplane\n205797,truck\n205798,frog\n205799,cat\n205800,cat\n205801,bird\n205802,cat\n205803,dog\n205804,cat\n205805,frog\n205806,dog\n205807,horse\n205808,horse\n205809,dog\n205810,cat\n205811,bird\n205812,frog\n205813,bird\n205814,horse\n205815,dog\n205816,airplane\n205817,frog\n205818,cat\n205819,truck\n205820,automobile\n205821,deer\n205822,airplane\n205823,truck\n205824,horse\n205825,horse\n205826,ship\n205827,frog\n205828,bird\n205829,deer\n205830,frog\n205831,automobile\n205832,cat\n205833,truck\n205834,cat\n205835,horse\n205836,frog\n205837,airplane\n205838,horse\n205839,dog\n205840,bird\n205841,deer\n205842,cat\n205843,frog\n205844,frog\n205845,automobile\n205846,bird\n205847,cat\n205848,airplane\n205849,cat\n205850,deer\n205851,truck\n205852,deer\n205853,deer\n205854,airplane\n205855,horse\n205856,dog\n205857,frog\n205858,truck\n205859,cat\n205860,dog\n205861,airplane\n205862,truck\n205863,airplane\n205864,horse\n205865,airplane\n205866,frog\n205867,bird\n205868,truck\n205869,dog\n205870,dog\n205871,bird\n205872,deer\n205873,cat\n205874,horse\n205875,deer\n205876,horse\n205877,truck\n205878,airplane\n205879,cat\n205880,ship\n205881,horse\n205882,dog\n205883,automobile\n205884,automobile\n205885,horse\n205886,cat\n205887,ship\n205888,dog\n205889,frog\n205890,truck\n205891,cat\n205892,airplane\n205893,frog\n205894,frog\n205895,dog\n205896,bird\n205897,frog\n205898,horse\n205899,dog\n205900,cat\n205901,cat\n205902,deer\n205903,ship\n205904,frog\n205905,airplane\n205906,dog\n205907,dog\n205908,automobile\n205909,bird\n205910,horse\n205911,deer\n205912,airplane\n205913,horse\n205914,horse\n205915,cat\n205916,frog\n205917,frog\n205918,frog\n205919,cat\n205920,airplane\n205921,ship\n205922,horse\n205923,airplane\n205924,deer\n205925,deer\n205926,horse\n205927,airplane\n205928,frog\n205929,deer\n205930,cat\n205931,automobile\n205932,cat\n205933,horse\n205934,deer\n205935,truck\n205936,frog\n205937,deer\n205938,deer\n205939,deer\n205940,cat\n205941,truck\n205942,automobile\n205943,truck\n205944,dog\n205945,deer\n205946,cat\n205947,bird\n205948,truck\n205949,automobile\n205950,cat\n205951,truck\n205952,truck\n205953,deer\n205954,dog\n205955,deer\n205956,truck\n205957,deer\n205958,deer\n205959,dog\n205960,cat\n205961,deer\n205962,automobile\n205963,bird\n205964,truck\n205965,truck\n205966,ship\n205967,airplane\n205968,deer\n205969,deer\n205970,dog\n205971,deer\n205972,cat\n205973,airplane\n205974,cat\n205975,horse\n205976,cat\n205977,horse\n205978,horse\n205979,frog\n205980,bird\n205981,airplane\n205982,cat\n205983,dog\n205984,truck\n205985,deer\n205986,horse\n205987,dog\n205988,cat\n205989,cat\n205990,ship\n205991,deer\n205992,truck\n205993,frog\n205994,automobile\n205995,bird\n205996,ship\n205997,ship\n205998,deer\n205999,bird\n206000,dog\n206001,airplane\n206002,frog\n206003,dog\n206004,ship\n206005,ship\n206006,bird\n206007,dog\n206008,frog\n206009,cat\n206010,truck\n206011,frog\n206012,truck\n206013,cat\n206014,ship\n206015,bird\n206016,dog\n206017,frog\n206018,frog\n206019,airplane\n206020,truck\n206021,ship\n206022,truck\n206023,truck\n206024,dog\n206025,dog\n206026,ship\n206027,frog\n206028,frog\n206029,ship\n206030,truck\n206031,airplane\n206032,cat\n206033,dog\n206034,deer\n206035,automobile\n206036,cat\n206037,frog\n206038,bird\n206039,cat\n206040,dog\n206041,deer\n206042,airplane\n206043,automobile\n206044,truck\n206045,airplane\n206046,cat\n206047,dog\n206048,horse\n206049,dog\n206050,cat\n206051,horse\n206052,ship\n206053,dog\n206054,frog\n206055,horse\n206056,deer\n206057,cat\n206058,horse\n206059,frog\n206060,deer\n206061,horse\n206062,bird\n206063,cat\n206064,deer\n206065,airplane\n206066,automobile\n206067,airplane\n206068,automobile\n206069,cat\n206070,cat\n206071,dog\n206072,frog\n206073,automobile\n206074,airplane\n206075,deer\n206076,dog\n206077,dog\n206078,cat\n206079,bird\n206080,bird\n206081,cat\n206082,cat\n206083,frog\n206084,automobile\n206085,dog\n206086,deer\n206087,ship\n206088,truck\n206089,airplane\n206090,deer\n206091,truck\n206092,bird\n206093,dog\n206094,deer\n206095,bird\n206096,deer\n206097,frog\n206098,airplane\n206099,truck\n206100,cat\n206101,cat\n206102,deer\n206103,deer\n206104,airplane\n206105,ship\n206106,cat\n206107,ship\n206108,frog\n206109,airplane\n206110,airplane\n206111,cat\n206112,ship\n206113,bird\n206114,ship\n206115,horse\n206116,airplane\n206117,airplane\n206118,automobile\n206119,dog\n206120,truck\n206121,horse\n206122,ship\n206123,airplane\n206124,automobile\n206125,dog\n206126,ship\n206127,truck\n206128,ship\n206129,automobile\n206130,airplane\n206131,horse\n206132,bird\n206133,deer\n206134,cat\n206135,ship\n206136,airplane\n206137,truck\n206138,ship\n206139,automobile\n206140,frog\n206141,airplane\n206142,cat\n206143,frog\n206144,deer\n206145,airplane\n206146,cat\n206147,deer\n206148,airplane\n206149,bird\n206150,ship\n206151,cat\n206152,horse\n206153,airplane\n206154,airplane\n206155,deer\n206156,cat\n206157,bird\n206158,bird\n206159,frog\n206160,deer\n206161,frog\n206162,cat\n206163,bird\n206164,automobile\n206165,horse\n206166,ship\n206167,bird\n206168,horse\n206169,truck\n206170,cat\n206171,deer\n206172,frog\n206173,cat\n206174,frog\n206175,truck\n206176,ship\n206177,frog\n206178,automobile\n206179,dog\n206180,dog\n206181,cat\n206182,frog\n206183,airplane\n206184,cat\n206185,automobile\n206186,horse\n206187,ship\n206188,truck\n206189,cat\n206190,cat\n206191,truck\n206192,truck\n206193,airplane\n206194,automobile\n206195,deer\n206196,frog\n206197,dog\n206198,frog\n206199,deer\n206200,dog\n206201,horse\n206202,cat\n206203,deer\n206204,truck\n206205,ship\n206206,deer\n206207,frog\n206208,horse\n206209,bird\n206210,cat\n206211,truck\n206212,horse\n206213,bird\n206214,cat\n206215,cat\n206216,horse\n206217,truck\n206218,deer\n206219,airplane\n206220,truck\n206221,truck\n206222,ship\n206223,automobile\n206224,horse\n206225,cat\n206226,cat\n206227,automobile\n206228,horse\n206229,airplane\n206230,deer\n206231,cat\n206232,automobile\n206233,automobile\n206234,deer\n206235,bird\n206236,cat\n206237,cat\n206238,deer\n206239,frog\n206240,frog\n206241,frog\n206242,cat\n206243,cat\n206244,bird\n206245,dog\n206246,airplane\n206247,bird\n206248,cat\n206249,dog\n206250,frog\n206251,cat\n206252,truck\n206253,frog\n206254,deer\n206255,bird\n206256,frog\n206257,deer\n206258,bird\n206259,frog\n206260,horse\n206261,deer\n206262,bird\n206263,deer\n206264,dog\n206265,airplane\n206266,frog\n206267,cat\n206268,automobile\n206269,ship\n206270,cat\n206271,cat\n206272,ship\n206273,cat\n206274,deer\n206275,ship\n206276,ship\n206277,deer\n206278,ship\n206279,airplane\n206280,truck\n206281,cat\n206282,airplane\n206283,horse\n206284,automobile\n206285,dog\n206286,cat\n206287,truck\n206288,airplane\n206289,dog\n206290,airplane\n206291,ship\n206292,frog\n206293,dog\n206294,deer\n206295,airplane\n206296,deer\n206297,bird\n206298,frog\n206299,frog\n206300,automobile\n206301,airplane\n206302,frog\n206303,dog\n206304,cat\n206305,frog\n206306,horse\n206307,dog\n206308,ship\n206309,bird\n206310,automobile\n206311,cat\n206312,truck\n206313,bird\n206314,ship\n206315,ship\n206316,deer\n206317,cat\n206318,automobile\n206319,deer\n206320,dog\n206321,cat\n206322,cat\n206323,bird\n206324,bird\n206325,truck\n206326,cat\n206327,ship\n206328,dog\n206329,cat\n206330,frog\n206331,deer\n206332,bird\n206333,cat\n206334,ship\n206335,dog\n206336,deer\n206337,horse\n206338,ship\n206339,bird\n206340,frog\n206341,cat\n206342,horse\n206343,automobile\n206344,dog\n206345,cat\n206346,cat\n206347,ship\n206348,ship\n206349,truck\n206350,frog\n206351,deer\n206352,horse\n206353,airplane\n206354,dog\n206355,horse\n206356,ship\n206357,horse\n206358,bird\n206359,automobile\n206360,cat\n206361,automobile\n206362,cat\n206363,cat\n206364,truck\n206365,cat\n206366,deer\n206367,airplane\n206368,horse\n206369,airplane\n206370,automobile\n206371,automobile\n206372,deer\n206373,cat\n206374,horse\n206375,dog\n206376,airplane\n206377,dog\n206378,dog\n206379,horse\n206380,bird\n206381,dog\n206382,cat\n206383,bird\n206384,bird\n206385,airplane\n206386,truck\n206387,ship\n206388,dog\n206389,ship\n206390,horse\n206391,deer\n206392,bird\n206393,bird\n206394,airplane\n206395,truck\n206396,horse\n206397,dog\n206398,cat\n206399,ship\n206400,bird\n206401,truck\n206402,deer\n206403,horse\n206404,automobile\n206405,cat\n206406,frog\n206407,airplane\n206408,frog\n206409,horse\n206410,automobile\n206411,deer\n206412,frog\n206413,airplane\n206414,dog\n206415,automobile\n206416,horse\n206417,airplane\n206418,bird\n206419,cat\n206420,horse\n206421,cat\n206422,automobile\n206423,truck\n206424,ship\n206425,cat\n206426,airplane\n206427,frog\n206428,frog\n206429,ship\n206430,truck\n206431,deer\n206432,horse\n206433,automobile\n206434,airplane\n206435,dog\n206436,horse\n206437,deer\n206438,automobile\n206439,automobile\n206440,deer\n206441,frog\n206442,truck\n206443,truck\n206444,airplane\n206445,bird\n206446,horse\n206447,horse\n206448,ship\n206449,cat\n206450,airplane\n206451,horse\n206452,cat\n206453,airplane\n206454,ship\n206455,frog\n206456,cat\n206457,deer\n206458,deer\n206459,deer\n206460,frog\n206461,dog\n206462,horse\n206463,frog\n206464,truck\n206465,frog\n206466,truck\n206467,cat\n206468,bird\n206469,airplane\n206470,automobile\n206471,bird\n206472,bird\n206473,automobile\n206474,dog\n206475,automobile\n206476,automobile\n206477,automobile\n206478,ship\n206479,cat\n206480,airplane\n206481,truck\n206482,bird\n206483,truck\n206484,truck\n206485,truck\n206486,frog\n206487,airplane\n206488,airplane\n206489,deer\n206490,cat\n206491,cat\n206492,frog\n206493,truck\n206494,airplane\n206495,dog\n206496,dog\n206497,dog\n206498,dog\n206499,truck\n206500,frog\n206501,cat\n206502,bird\n206503,cat\n206504,cat\n206505,automobile\n206506,automobile\n206507,frog\n206508,automobile\n206509,ship\n206510,bird\n206511,automobile\n206512,dog\n206513,horse\n206514,airplane\n206515,cat\n206516,cat\n206517,horse\n206518,truck\n206519,dog\n206520,truck\n206521,truck\n206522,deer\n206523,deer\n206524,deer\n206525,deer\n206526,automobile\n206527,frog\n206528,airplane\n206529,automobile\n206530,deer\n206531,deer\n206532,ship\n206533,bird\n206534,dog\n206535,cat\n206536,ship\n206537,cat\n206538,airplane\n206539,deer\n206540,horse\n206541,bird\n206542,cat\n206543,cat\n206544,deer\n206545,deer\n206546,horse\n206547,automobile\n206548,deer\n206549,horse\n206550,airplane\n206551,horse\n206552,horse\n206553,ship\n206554,bird\n206555,truck\n206556,airplane\n206557,cat\n206558,truck\n206559,airplane\n206560,dog\n206561,horse\n206562,deer\n206563,cat\n206564,frog\n206565,deer\n206566,airplane\n206567,automobile\n206568,dog\n206569,frog\n206570,cat\n206571,truck\n206572,ship\n206573,airplane\n206574,automobile\n206575,automobile\n206576,bird\n206577,dog\n206578,airplane\n206579,automobile\n206580,cat\n206581,ship\n206582,bird\n206583,airplane\n206584,bird\n206585,horse\n206586,airplane\n206587,deer\n206588,truck\n206589,ship\n206590,deer\n206591,cat\n206592,cat\n206593,cat\n206594,airplane\n206595,horse\n206596,cat\n206597,airplane\n206598,cat\n206599,frog\n206600,bird\n206601,automobile\n206602,dog\n206603,deer\n206604,bird\n206605,deer\n206606,truck\n206607,horse\n206608,deer\n206609,horse\n206610,automobile\n206611,horse\n206612,bird\n206613,horse\n206614,cat\n206615,airplane\n206616,dog\n206617,dog\n206618,frog\n206619,cat\n206620,deer\n206621,bird\n206622,cat\n206623,automobile\n206624,ship\n206625,deer\n206626,cat\n206627,deer\n206628,truck\n206629,bird\n206630,automobile\n206631,deer\n206632,dog\n206633,airplane\n206634,ship\n206635,frog\n206636,horse\n206637,cat\n206638,airplane\n206639,horse\n206640,automobile\n206641,deer\n206642,truck\n206643,deer\n206644,horse\n206645,truck\n206646,cat\n206647,airplane\n206648,cat\n206649,horse\n206650,bird\n206651,cat\n206652,dog\n206653,frog\n206654,airplane\n206655,horse\n206656,cat\n206657,truck\n206658,cat\n206659,dog\n206660,cat\n206661,truck\n206662,deer\n206663,cat\n206664,cat\n206665,cat\n206666,truck\n206667,cat\n206668,airplane\n206669,automobile\n206670,deer\n206671,dog\n206672,ship\n206673,horse\n206674,dog\n206675,bird\n206676,truck\n206677,horse\n206678,deer\n206679,bird\n206680,cat\n206681,frog\n206682,dog\n206683,horse\n206684,deer\n206685,dog\n206686,truck\n206687,cat\n206688,cat\n206689,ship\n206690,truck\n206691,cat\n206692,airplane\n206693,frog\n206694,horse\n206695,horse\n206696,horse\n206697,dog\n206698,dog\n206699,airplane\n206700,dog\n206701,automobile\n206702,truck\n206703,horse\n206704,deer\n206705,horse\n206706,horse\n206707,frog\n206708,bird\n206709,ship\n206710,airplane\n206711,frog\n206712,automobile\n206713,dog\n206714,dog\n206715,dog\n206716,deer\n206717,frog\n206718,deer\n206719,deer\n206720,truck\n206721,cat\n206722,horse\n206723,frog\n206724,cat\n206725,deer\n206726,airplane\n206727,truck\n206728,cat\n206729,horse\n206730,bird\n206731,frog\n206732,deer\n206733,bird\n206734,cat\n206735,horse\n206736,dog\n206737,cat\n206738,automobile\n206739,horse\n206740,bird\n206741,horse\n206742,automobile\n206743,horse\n206744,airplane\n206745,cat\n206746,dog\n206747,deer\n206748,bird\n206749,bird\n206750,bird\n206751,airplane\n206752,deer\n206753,bird\n206754,frog\n206755,deer\n206756,cat\n206757,deer\n206758,cat\n206759,horse\n206760,dog\n206761,truck\n206762,cat\n206763,cat\n206764,bird\n206765,deer\n206766,cat\n206767,deer\n206768,cat\n206769,dog\n206770,bird\n206771,ship\n206772,automobile\n206773,airplane\n206774,dog\n206775,airplane\n206776,horse\n206777,cat\n206778,frog\n206779,horse\n206780,horse\n206781,bird\n206782,frog\n206783,airplane\n206784,frog\n206785,dog\n206786,automobile\n206787,deer\n206788,automobile\n206789,truck\n206790,cat\n206791,ship\n206792,truck\n206793,frog\n206794,ship\n206795,airplane\n206796,dog\n206797,truck\n206798,dog\n206799,deer\n206800,dog\n206801,cat\n206802,dog\n206803,dog\n206804,truck\n206805,deer\n206806,frog\n206807,frog\n206808,frog\n206809,ship\n206810,airplane\n206811,automobile\n206812,bird\n206813,automobile\n206814,frog\n206815,cat\n206816,horse\n206817,bird\n206818,ship\n206819,bird\n206820,ship\n206821,automobile\n206822,horse\n206823,bird\n206824,horse\n206825,truck\n206826,deer\n206827,frog\n206828,airplane\n206829,truck\n206830,cat\n206831,automobile\n206832,automobile\n206833,ship\n206834,cat\n206835,truck\n206836,bird\n206837,frog\n206838,horse\n206839,dog\n206840,airplane\n206841,frog\n206842,deer\n206843,bird\n206844,cat\n206845,horse\n206846,horse\n206847,frog\n206848,ship\n206849,ship\n206850,frog\n206851,airplane\n206852,frog\n206853,automobile\n206854,cat\n206855,deer\n206856,frog\n206857,bird\n206858,ship\n206859,cat\n206860,airplane\n206861,automobile\n206862,frog\n206863,automobile\n206864,cat\n206865,truck\n206866,automobile\n206867,truck\n206868,ship\n206869,frog\n206870,automobile\n206871,deer\n206872,bird\n206873,frog\n206874,truck\n206875,frog\n206876,frog\n206877,truck\n206878,ship\n206879,airplane\n206880,truck\n206881,ship\n206882,airplane\n206883,cat\n206884,deer\n206885,bird\n206886,automobile\n206887,frog\n206888,bird\n206889,ship\n206890,truck\n206891,truck\n206892,ship\n206893,ship\n206894,airplane\n206895,horse\n206896,frog\n206897,deer\n206898,ship\n206899,ship\n206900,cat\n206901,bird\n206902,horse\n206903,airplane\n206904,frog\n206905,dog\n206906,truck\n206907,truck\n206908,truck\n206909,ship\n206910,automobile\n206911,airplane\n206912,horse\n206913,deer\n206914,dog\n206915,dog\n206916,dog\n206917,ship\n206918,ship\n206919,automobile\n206920,bird\n206921,bird\n206922,horse\n206923,deer\n206924,bird\n206925,bird\n206926,bird\n206927,bird\n206928,bird\n206929,cat\n206930,frog\n206931,airplane\n206932,cat\n206933,deer\n206934,airplane\n206935,bird\n206936,deer\n206937,cat\n206938,frog\n206939,ship\n206940,airplane\n206941,deer\n206942,bird\n206943,dog\n206944,frog\n206945,cat\n206946,bird\n206947,ship\n206948,cat\n206949,frog\n206950,cat\n206951,cat\n206952,cat\n206953,automobile\n206954,dog\n206955,ship\n206956,automobile\n206957,deer\n206958,dog\n206959,bird\n206960,cat\n206961,cat\n206962,bird\n206963,bird\n206964,truck\n206965,bird\n206966,automobile\n206967,truck\n206968,airplane\n206969,horse\n206970,bird\n206971,dog\n206972,ship\n206973,bird\n206974,airplane\n206975,deer\n206976,frog\n206977,frog\n206978,bird\n206979,dog\n206980,ship\n206981,truck\n206982,deer\n206983,truck\n206984,truck\n206985,deer\n206986,dog\n206987,horse\n206988,horse\n206989,bird\n206990,horse\n206991,airplane\n206992,horse\n206993,dog\n206994,horse\n206995,dog\n206996,cat\n206997,frog\n206998,dog\n206999,dog\n207000,cat\n207001,truck\n207002,deer\n207003,cat\n207004,frog\n207005,airplane\n207006,airplane\n207007,airplane\n207008,deer\n207009,airplane\n207010,dog\n207011,ship\n207012,automobile\n207013,deer\n207014,automobile\n207015,truck\n207016,deer\n207017,cat\n207018,airplane\n207019,frog\n207020,deer\n207021,deer\n207022,frog\n207023,airplane\n207024,truck\n207025,bird\n207026,truck\n207027,cat\n207028,airplane\n207029,airplane\n207030,airplane\n207031,horse\n207032,ship\n207033,dog\n207034,dog\n207035,frog\n207036,automobile\n207037,horse\n207038,horse\n207039,cat\n207040,cat\n207041,horse\n207042,airplane\n207043,deer\n207044,horse\n207045,ship\n207046,ship\n207047,frog\n207048,airplane\n207049,ship\n207050,cat\n207051,airplane\n207052,automobile\n207053,horse\n207054,deer\n207055,deer\n207056,truck\n207057,deer\n207058,ship\n207059,bird\n207060,horse\n207061,deer\n207062,dog\n207063,bird\n207064,horse\n207065,frog\n207066,frog\n207067,cat\n207068,airplane\n207069,cat\n207070,truck\n207071,cat\n207072,cat\n207073,frog\n207074,frog\n207075,truck\n207076,frog\n207077,deer\n207078,dog\n207079,deer\n207080,truck\n207081,bird\n207082,automobile\n207083,automobile\n207084,airplane\n207085,ship\n207086,dog\n207087,bird\n207088,frog\n207089,automobile\n207090,ship\n207091,bird\n207092,automobile\n207093,truck\n207094,dog\n207095,ship\n207096,cat\n207097,cat\n207098,truck\n207099,deer\n207100,dog\n207101,automobile\n207102,deer\n207103,frog\n207104,dog\n207105,horse\n207106,bird\n207107,bird\n207108,dog\n207109,ship\n207110,horse\n207111,dog\n207112,airplane\n207113,truck\n207114,horse\n207115,dog\n207116,deer\n207117,ship\n207118,automobile\n207119,deer\n207120,frog\n207121,horse\n207122,ship\n207123,truck\n207124,bird\n207125,horse\n207126,cat\n207127,truck\n207128,frog\n207129,deer\n207130,dog\n207131,dog\n207132,airplane\n207133,airplane\n207134,frog\n207135,airplane\n207136,cat\n207137,deer\n207138,truck\n207139,automobile\n207140,bird\n207141,deer\n207142,deer\n207143,frog\n207144,automobile\n207145,frog\n207146,deer\n207147,frog\n207148,truck\n207149,deer\n207150,horse\n207151,bird\n207152,frog\n207153,deer\n207154,frog\n207155,ship\n207156,deer\n207157,cat\n207158,deer\n207159,horse\n207160,dog\n207161,dog\n207162,dog\n207163,truck\n207164,ship\n207165,dog\n207166,dog\n207167,deer\n207168,horse\n207169,dog\n207170,airplane\n207171,deer\n207172,automobile\n207173,truck\n207174,airplane\n207175,truck\n207176,dog\n207177,dog\n207178,deer\n207179,cat\n207180,deer\n207181,truck\n207182,automobile\n207183,truck\n207184,dog\n207185,cat\n207186,horse\n207187,airplane\n207188,bird\n207189,truck\n207190,cat\n207191,automobile\n207192,deer\n207193,automobile\n207194,horse\n207195,cat\n207196,frog\n207197,airplane\n207198,frog\n207199,bird\n207200,frog\n207201,truck\n207202,truck\n207203,frog\n207204,bird\n207205,frog\n207206,airplane\n207207,automobile\n207208,horse\n207209,bird\n207210,ship\n207211,cat\n207212,truck\n207213,ship\n207214,dog\n207215,airplane\n207216,horse\n207217,dog\n207218,deer\n207219,airplane\n207220,dog\n207221,frog\n207222,cat\n207223,horse\n207224,airplane\n207225,truck\n207226,frog\n207227,bird\n207228,dog\n207229,truck\n207230,cat\n207231,truck\n207232,cat\n207233,frog\n207234,automobile\n207235,deer\n207236,frog\n207237,deer\n207238,cat\n207239,truck\n207240,truck\n207241,dog\n207242,deer\n207243,airplane\n207244,truck\n207245,cat\n207246,cat\n207247,deer\n207248,truck\n207249,automobile\n207250,truck\n207251,bird\n207252,frog\n207253,deer\n207254,automobile\n207255,frog\n207256,cat\n207257,bird\n207258,deer\n207259,dog\n207260,truck\n207261,cat\n207262,cat\n207263,automobile\n207264,frog\n207265,frog\n207266,bird\n207267,automobile\n207268,dog\n207269,ship\n207270,ship\n207271,truck\n207272,automobile\n207273,truck\n207274,deer\n207275,cat\n207276,horse\n207277,frog\n207278,cat\n207279,horse\n207280,deer\n207281,cat\n207282,dog\n207283,frog\n207284,ship\n207285,cat\n207286,deer\n207287,horse\n207288,deer\n207289,truck\n207290,cat\n207291,horse\n207292,cat\n207293,ship\n207294,dog\n207295,cat\n207296,frog\n207297,truck\n207298,truck\n207299,truck\n207300,automobile\n207301,deer\n207302,cat\n207303,frog\n207304,airplane\n207305,truck\n207306,deer\n207307,frog\n207308,truck\n207309,dog\n207310,dog\n207311,automobile\n207312,deer\n207313,deer\n207314,ship\n207315,horse\n207316,frog\n207317,horse\n207318,bird\n207319,deer\n207320,deer\n207321,ship\n207322,cat\n207323,cat\n207324,ship\n207325,dog\n207326,bird\n207327,cat\n207328,automobile\n207329,truck\n207330,bird\n207331,airplane\n207332,frog\n207333,dog\n207334,dog\n207335,cat\n207336,truck\n207337,truck\n207338,dog\n207339,airplane\n207340,horse\n207341,horse\n207342,deer\n207343,automobile\n207344,dog\n207345,deer\n207346,horse\n207347,automobile\n207348,automobile\n207349,automobile\n207350,deer\n207351,ship\n207352,bird\n207353,deer\n207354,cat\n207355,deer\n207356,truck\n207357,truck\n207358,frog\n207359,horse\n207360,airplane\n207361,automobile\n207362,frog\n207363,frog\n207364,dog\n207365,deer\n207366,airplane\n207367,bird\n207368,cat\n207369,dog\n207370,cat\n207371,dog\n207372,cat\n207373,cat\n207374,truck\n207375,ship\n207376,dog\n207377,frog\n207378,deer\n207379,airplane\n207380,automobile\n207381,truck\n207382,frog\n207383,bird\n207384,ship\n207385,deer\n207386,truck\n207387,cat\n207388,dog\n207389,cat\n207390,dog\n207391,dog\n207392,frog\n207393,frog\n207394,ship\n207395,bird\n207396,dog\n207397,frog\n207398,bird\n207399,deer\n207400,dog\n207401,frog\n207402,airplane\n207403,bird\n207404,cat\n207405,cat\n207406,cat\n207407,bird\n207408,ship\n207409,airplane\n207410,frog\n207411,truck\n207412,frog\n207413,cat\n207414,frog\n207415,ship\n207416,cat\n207417,dog\n207418,horse\n207419,airplane\n207420,frog\n207421,bird\n207422,airplane\n207423,dog\n207424,dog\n207425,ship\n207426,cat\n207427,deer\n207428,horse\n207429,deer\n207430,airplane\n207431,frog\n207432,frog\n207433,frog\n207434,airplane\n207435,cat\n207436,bird\n207437,horse\n207438,dog\n207439,automobile\n207440,dog\n207441,frog\n207442,automobile\n207443,automobile\n207444,automobile\n207445,cat\n207446,airplane\n207447,automobile\n207448,dog\n207449,truck\n207450,horse\n207451,horse\n207452,automobile\n207453,ship\n207454,ship\n207455,dog\n207456,frog\n207457,bird\n207458,airplane\n207459,dog\n207460,deer\n207461,cat\n207462,truck\n207463,airplane\n207464,truck\n207465,cat\n207466,horse\n207467,automobile\n207468,deer\n207469,deer\n207470,dog\n207471,horse\n207472,horse\n207473,airplane\n207474,ship\n207475,cat\n207476,deer\n207477,deer\n207478,cat\n207479,airplane\n207480,airplane\n207481,truck\n207482,truck\n207483,horse\n207484,frog\n207485,automobile\n207486,bird\n207487,dog\n207488,deer\n207489,frog\n207490,airplane\n207491,ship\n207492,cat\n207493,deer\n207494,deer\n207495,bird\n207496,ship\n207497,bird\n207498,truck\n207499,airplane\n207500,cat\n207501,airplane\n207502,horse\n207503,deer\n207504,truck\n207505,truck\n207506,horse\n207507,ship\n207508,ship\n207509,deer\n207510,truck\n207511,bird\n207512,deer\n207513,truck\n207514,cat\n207515,horse\n207516,bird\n207517,truck\n207518,cat\n207519,truck\n207520,horse\n207521,deer\n207522,frog\n207523,deer\n207524,ship\n207525,dog\n207526,dog\n207527,horse\n207528,dog\n207529,cat\n207530,truck\n207531,truck\n207532,ship\n207533,cat\n207534,ship\n207535,frog\n207536,ship\n207537,airplane\n207538,bird\n207539,cat\n207540,cat\n207541,cat\n207542,deer\n207543,dog\n207544,airplane\n207545,truck\n207546,cat\n207547,truck\n207548,airplane\n207549,ship\n207550,deer\n207551,cat\n207552,airplane\n207553,truck\n207554,ship\n207555,truck\n207556,truck\n207557,automobile\n207558,airplane\n207559,bird\n207560,bird\n207561,frog\n207562,deer\n207563,automobile\n207564,bird\n207565,ship\n207566,frog\n207567,bird\n207568,automobile\n207569,truck\n207570,deer\n207571,frog\n207572,bird\n207573,airplane\n207574,cat\n207575,ship\n207576,bird\n207577,dog\n207578,dog\n207579,bird\n207580,horse\n207581,truck\n207582,deer\n207583,cat\n207584,dog\n207585,frog\n207586,deer\n207587,deer\n207588,cat\n207589,dog\n207590,deer\n207591,ship\n207592,ship\n207593,airplane\n207594,dog\n207595,deer\n207596,frog\n207597,deer\n207598,deer\n207599,ship\n207600,deer\n207601,deer\n207602,bird\n207603,cat\n207604,automobile\n207605,truck\n207606,ship\n207607,deer\n207608,dog\n207609,bird\n207610,ship\n207611,airplane\n207612,truck\n207613,ship\n207614,airplane\n207615,horse\n207616,frog\n207617,deer\n207618,ship\n207619,deer\n207620,dog\n207621,automobile\n207622,deer\n207623,frog\n207624,automobile\n207625,deer\n207626,deer\n207627,truck\n207628,cat\n207629,deer\n207630,deer\n207631,dog\n207632,ship\n207633,horse\n207634,deer\n207635,bird\n207636,bird\n207637,automobile\n207638,horse\n207639,airplane\n207640,cat\n207641,deer\n207642,automobile\n207643,ship\n207644,deer\n207645,cat\n207646,ship\n207647,dog\n207648,airplane\n207649,frog\n207650,horse\n207651,truck\n207652,frog\n207653,bird\n207654,horse\n207655,airplane\n207656,horse\n207657,cat\n207658,airplane\n207659,frog\n207660,airplane\n207661,ship\n207662,deer\n207663,cat\n207664,cat\n207665,truck\n207666,airplane\n207667,frog\n207668,cat\n207669,ship\n207670,cat\n207671,automobile\n207672,horse\n207673,deer\n207674,ship\n207675,deer\n207676,ship\n207677,truck\n207678,frog\n207679,ship\n207680,ship\n207681,airplane\n207682,cat\n207683,automobile\n207684,cat\n207685,deer\n207686,frog\n207687,automobile\n207688,deer\n207689,deer\n207690,frog\n207691,deer\n207692,airplane\n207693,airplane\n207694,airplane\n207695,dog\n207696,frog\n207697,automobile\n207698,cat\n207699,dog\n207700,horse\n207701,deer\n207702,bird\n207703,automobile\n207704,deer\n207705,frog\n207706,deer\n207707,automobile\n207708,truck\n207709,bird\n207710,ship\n207711,bird\n207712,ship\n207713,cat\n207714,bird\n207715,cat\n207716,frog\n207717,deer\n207718,cat\n207719,bird\n207720,airplane\n207721,cat\n207722,ship\n207723,cat\n207724,frog\n207725,cat\n207726,deer\n207727,bird\n207728,automobile\n207729,bird\n207730,airplane\n207731,automobile\n207732,deer\n207733,truck\n207734,airplane\n207735,deer\n207736,truck\n207737,cat\n207738,frog\n207739,ship\n207740,frog\n207741,cat\n207742,cat\n207743,airplane\n207744,horse\n207745,horse\n207746,truck\n207747,bird\n207748,cat\n207749,cat\n207750,automobile\n207751,cat\n207752,deer\n207753,frog\n207754,frog\n207755,dog\n207756,cat\n207757,frog\n207758,deer\n207759,airplane\n207760,truck\n207761,automobile\n207762,deer\n207763,dog\n207764,horse\n207765,dog\n207766,truck\n207767,automobile\n207768,dog\n207769,frog\n207770,cat\n207771,horse\n207772,bird\n207773,frog\n207774,deer\n207775,ship\n207776,dog\n207777,deer\n207778,dog\n207779,horse\n207780,cat\n207781,frog\n207782,truck\n207783,cat\n207784,truck\n207785,frog\n207786,frog\n207787,deer\n207788,truck\n207789,dog\n207790,bird\n207791,automobile\n207792,cat\n207793,bird\n207794,horse\n207795,cat\n207796,dog\n207797,frog\n207798,ship\n207799,ship\n207800,frog\n207801,cat\n207802,automobile\n207803,airplane\n207804,automobile\n207805,bird\n207806,ship\n207807,frog\n207808,cat\n207809,deer\n207810,cat\n207811,horse\n207812,dog\n207813,airplane\n207814,cat\n207815,dog\n207816,deer\n207817,cat\n207818,frog\n207819,horse\n207820,automobile\n207821,horse\n207822,bird\n207823,frog\n207824,cat\n207825,automobile\n207826,horse\n207827,horse\n207828,horse\n207829,frog\n207830,bird\n207831,cat\n207832,deer\n207833,ship\n207834,truck\n207835,truck\n207836,bird\n207837,deer\n207838,ship\n207839,deer\n207840,deer\n207841,dog\n207842,deer\n207843,airplane\n207844,automobile\n207845,horse\n207846,frog\n207847,dog\n207848,dog\n207849,bird\n207850,truck\n207851,cat\n207852,cat\n207853,truck\n207854,truck\n207855,truck\n207856,dog\n207857,cat\n207858,horse\n207859,horse\n207860,deer\n207861,airplane\n207862,cat\n207863,ship\n207864,cat\n207865,horse\n207866,bird\n207867,horse\n207868,cat\n207869,horse\n207870,deer\n207871,bird\n207872,automobile\n207873,truck\n207874,horse\n207875,bird\n207876,ship\n207877,cat\n207878,truck\n207879,horse\n207880,cat\n207881,ship\n207882,ship\n207883,horse\n207884,frog\n207885,bird\n207886,cat\n207887,airplane\n207888,ship\n207889,dog\n207890,airplane\n207891,frog\n207892,truck\n207893,dog\n207894,bird\n207895,cat\n207896,airplane\n207897,deer\n207898,frog\n207899,airplane\n207900,dog\n207901,dog\n207902,frog\n207903,cat\n207904,cat\n207905,cat\n207906,bird\n207907,frog\n207908,airplane\n207909,frog\n207910,airplane\n207911,ship\n207912,cat\n207913,bird\n207914,frog\n207915,automobile\n207916,dog\n207917,frog\n207918,automobile\n207919,horse\n207920,horse\n207921,dog\n207922,bird\n207923,dog\n207924,cat\n207925,airplane\n207926,truck\n207927,deer\n207928,automobile\n207929,dog\n207930,cat\n207931,cat\n207932,cat\n207933,cat\n207934,dog\n207935,deer\n207936,automobile\n207937,deer\n207938,cat\n207939,cat\n207940,airplane\n207941,automobile\n207942,airplane\n207943,deer\n207944,frog\n207945,bird\n207946,cat\n207947,bird\n207948,bird\n207949,truck\n207950,deer\n207951,horse\n207952,ship\n207953,horse\n207954,horse\n207955,automobile\n207956,automobile\n207957,cat\n207958,ship\n207959,deer\n207960,cat\n207961,deer\n207962,ship\n207963,deer\n207964,bird\n207965,deer\n207966,deer\n207967,truck\n207968,deer\n207969,deer\n207970,dog\n207971,dog\n207972,automobile\n207973,dog\n207974,airplane\n207975,cat\n207976,deer\n207977,deer\n207978,automobile\n207979,cat\n207980,dog\n207981,truck\n207982,automobile\n207983,ship\n207984,horse\n207985,bird\n207986,automobile\n207987,frog\n207988,ship\n207989,deer\n207990,cat\n207991,truck\n207992,bird\n207993,cat\n207994,automobile\n207995,airplane\n207996,frog\n207997,truck\n207998,deer\n207999,cat\n208000,automobile\n208001,truck\n208002,automobile\n208003,frog\n208004,truck\n208005,cat\n208006,deer\n208007,horse\n208008,airplane\n208009,cat\n208010,dog\n208011,bird\n208012,cat\n208013,frog\n208014,ship\n208015,horse\n208016,bird\n208017,dog\n208018,dog\n208019,deer\n208020,bird\n208021,cat\n208022,ship\n208023,automobile\n208024,deer\n208025,truck\n208026,cat\n208027,dog\n208028,dog\n208029,airplane\n208030,bird\n208031,deer\n208032,horse\n208033,truck\n208034,frog\n208035,deer\n208036,cat\n208037,deer\n208038,truck\n208039,bird\n208040,deer\n208041,bird\n208042,bird\n208043,dog\n208044,truck\n208045,dog\n208046,ship\n208047,frog\n208048,horse\n208049,cat\n208050,dog\n208051,deer\n208052,horse\n208053,truck\n208054,airplane\n208055,deer\n208056,truck\n208057,deer\n208058,bird\n208059,automobile\n208060,bird\n208061,ship\n208062,ship\n208063,ship\n208064,truck\n208065,frog\n208066,horse\n208067,cat\n208068,truck\n208069,cat\n208070,frog\n208071,frog\n208072,airplane\n208073,airplane\n208074,deer\n208075,deer\n208076,airplane\n208077,ship\n208078,bird\n208079,dog\n208080,frog\n208081,truck\n208082,cat\n208083,cat\n208084,cat\n208085,truck\n208086,truck\n208087,horse\n208088,ship\n208089,bird\n208090,truck\n208091,dog\n208092,cat\n208093,dog\n208094,cat\n208095,truck\n208096,ship\n208097,frog\n208098,automobile\n208099,airplane\n208100,airplane\n208101,deer\n208102,deer\n208103,horse\n208104,dog\n208105,deer\n208106,bird\n208107,cat\n208108,dog\n208109,dog\n208110,frog\n208111,truck\n208112,airplane\n208113,truck\n208114,airplane\n208115,cat\n208116,bird\n208117,deer\n208118,truck\n208119,dog\n208120,deer\n208121,cat\n208122,ship\n208123,truck\n208124,cat\n208125,truck\n208126,dog\n208127,horse\n208128,deer\n208129,horse\n208130,bird\n208131,bird\n208132,automobile\n208133,automobile\n208134,deer\n208135,airplane\n208136,frog\n208137,airplane\n208138,deer\n208139,cat\n208140,horse\n208141,dog\n208142,bird\n208143,bird\n208144,horse\n208145,bird\n208146,cat\n208147,ship\n208148,bird\n208149,cat\n208150,truck\n208151,frog\n208152,deer\n208153,frog\n208154,horse\n208155,dog\n208156,dog\n208157,dog\n208158,dog\n208159,automobile\n208160,cat\n208161,cat\n208162,ship\n208163,dog\n208164,dog\n208165,frog\n208166,truck\n208167,horse\n208168,deer\n208169,horse\n208170,dog\n208171,truck\n208172,frog\n208173,dog\n208174,cat\n208175,automobile\n208176,deer\n208177,airplane\n208178,dog\n208179,deer\n208180,dog\n208181,horse\n208182,ship\n208183,horse\n208184,deer\n208185,cat\n208186,ship\n208187,dog\n208188,frog\n208189,cat\n208190,dog\n208191,horse\n208192,deer\n208193,deer\n208194,horse\n208195,dog\n208196,automobile\n208197,deer\n208198,dog\n208199,bird\n208200,dog\n208201,airplane\n208202,cat\n208203,cat\n208204,bird\n208205,bird\n208206,frog\n208207,automobile\n208208,dog\n208209,truck\n208210,frog\n208211,truck\n208212,bird\n208213,airplane\n208214,cat\n208215,deer\n208216,bird\n208217,horse\n208218,deer\n208219,airplane\n208220,dog\n208221,ship\n208222,frog\n208223,frog\n208224,airplane\n208225,automobile\n208226,bird\n208227,deer\n208228,cat\n208229,cat\n208230,cat\n208231,ship\n208232,truck\n208233,cat\n208234,cat\n208235,deer\n208236,ship\n208237,cat\n208238,frog\n208239,airplane\n208240,cat\n208241,dog\n208242,horse\n208243,horse\n208244,truck\n208245,deer\n208246,dog\n208247,cat\n208248,dog\n208249,dog\n208250,bird\n208251,truck\n208252,deer\n208253,deer\n208254,automobile\n208255,horse\n208256,cat\n208257,ship\n208258,truck\n208259,cat\n208260,cat\n208261,ship\n208262,cat\n208263,cat\n208264,dog\n208265,bird\n208266,frog\n208267,truck\n208268,automobile\n208269,airplane\n208270,automobile\n208271,dog\n208272,cat\n208273,dog\n208274,horse\n208275,frog\n208276,automobile\n208277,bird\n208278,dog\n208279,frog\n208280,deer\n208281,airplane\n208282,frog\n208283,deer\n208284,ship\n208285,frog\n208286,ship\n208287,horse\n208288,automobile\n208289,deer\n208290,dog\n208291,truck\n208292,horse\n208293,deer\n208294,horse\n208295,bird\n208296,automobile\n208297,automobile\n208298,frog\n208299,ship\n208300,deer\n208301,horse\n208302,truck\n208303,frog\n208304,dog\n208305,airplane\n208306,horse\n208307,bird\n208308,deer\n208309,ship\n208310,deer\n208311,deer\n208312,dog\n208313,horse\n208314,truck\n208315,deer\n208316,deer\n208317,frog\n208318,horse\n208319,frog\n208320,truck\n208321,deer\n208322,dog\n208323,bird\n208324,cat\n208325,cat\n208326,cat\n208327,bird\n208328,frog\n208329,automobile\n208330,bird\n208331,automobile\n208332,truck\n208333,deer\n208334,airplane\n208335,deer\n208336,dog\n208337,deer\n208338,horse\n208339,automobile\n208340,cat\n208341,horse\n208342,airplane\n208343,deer\n208344,cat\n208345,cat\n208346,bird\n208347,cat\n208348,airplane\n208349,airplane\n208350,horse\n208351,truck\n208352,horse\n208353,bird\n208354,deer\n208355,airplane\n208356,horse\n208357,truck\n208358,cat\n208359,bird\n208360,bird\n208361,frog\n208362,bird\n208363,frog\n208364,bird\n208365,frog\n208366,horse\n208367,horse\n208368,frog\n208369,deer\n208370,dog\n208371,frog\n208372,frog\n208373,airplane\n208374,airplane\n208375,cat\n208376,bird\n208377,deer\n208378,bird\n208379,bird\n208380,cat\n208381,dog\n208382,dog\n208383,cat\n208384,ship\n208385,truck\n208386,deer\n208387,automobile\n208388,automobile\n208389,airplane\n208390,horse\n208391,truck\n208392,truck\n208393,horse\n208394,dog\n208395,truck\n208396,cat\n208397,cat\n208398,horse\n208399,horse\n208400,truck\n208401,dog\n208402,ship\n208403,dog\n208404,frog\n208405,cat\n208406,truck\n208407,bird\n208408,dog\n208409,airplane\n208410,horse\n208411,frog\n208412,deer\n208413,frog\n208414,truck\n208415,automobile\n208416,automobile\n208417,horse\n208418,ship\n208419,truck\n208420,truck\n208421,airplane\n208422,deer\n208423,cat\n208424,cat\n208425,dog\n208426,automobile\n208427,dog\n208428,truck\n208429,horse\n208430,cat\n208431,horse\n208432,dog\n208433,dog\n208434,bird\n208435,frog\n208436,automobile\n208437,ship\n208438,cat\n208439,deer\n208440,deer\n208441,automobile\n208442,truck\n208443,ship\n208444,dog\n208445,truck\n208446,automobile\n208447,dog\n208448,cat\n208449,cat\n208450,horse\n208451,bird\n208452,truck\n208453,deer\n208454,cat\n208455,cat\n208456,airplane\n208457,truck\n208458,bird\n208459,cat\n208460,ship\n208461,automobile\n208462,dog\n208463,horse\n208464,cat\n208465,airplane\n208466,truck\n208467,ship\n208468,truck\n208469,bird\n208470,ship\n208471,frog\n208472,deer\n208473,horse\n208474,frog\n208475,cat\n208476,dog\n208477,airplane\n208478,cat\n208479,truck\n208480,truck\n208481,deer\n208482,cat\n208483,deer\n208484,ship\n208485,cat\n208486,truck\n208487,frog\n208488,automobile\n208489,airplane\n208490,cat\n208491,dog\n208492,horse\n208493,horse\n208494,ship\n208495,ship\n208496,bird\n208497,bird\n208498,frog\n208499,horse\n208500,ship\n208501,dog\n208502,airplane\n208503,truck\n208504,airplane\n208505,deer\n208506,deer\n208507,cat\n208508,airplane\n208509,deer\n208510,automobile\n208511,dog\n208512,deer\n208513,deer\n208514,airplane\n208515,ship\n208516,cat\n208517,frog\n208518,cat\n208519,airplane\n208520,deer\n208521,frog\n208522,cat\n208523,deer\n208524,frog\n208525,airplane\n208526,dog\n208527,deer\n208528,dog\n208529,bird\n208530,airplane\n208531,horse\n208532,cat\n208533,deer\n208534,cat\n208535,frog\n208536,horse\n208537,truck\n208538,truck\n208539,cat\n208540,horse\n208541,bird\n208542,airplane\n208543,cat\n208544,automobile\n208545,frog\n208546,truck\n208547,cat\n208548,horse\n208549,automobile\n208550,cat\n208551,ship\n208552,horse\n208553,bird\n208554,dog\n208555,automobile\n208556,deer\n208557,automobile\n208558,bird\n208559,cat\n208560,frog\n208561,deer\n208562,truck\n208563,airplane\n208564,airplane\n208565,airplane\n208566,deer\n208567,deer\n208568,cat\n208569,cat\n208570,deer\n208571,airplane\n208572,deer\n208573,dog\n208574,dog\n208575,bird\n208576,cat\n208577,cat\n208578,airplane\n208579,cat\n208580,dog\n208581,deer\n208582,dog\n208583,frog\n208584,airplane\n208585,deer\n208586,deer\n208587,frog\n208588,automobile\n208589,cat\n208590,deer\n208591,bird\n208592,truck\n208593,horse\n208594,frog\n208595,ship\n208596,deer\n208597,deer\n208598,cat\n208599,truck\n208600,dog\n208601,frog\n208602,frog\n208603,truck\n208604,cat\n208605,airplane\n208606,automobile\n208607,dog\n208608,dog\n208609,ship\n208610,airplane\n208611,dog\n208612,horse\n208613,ship\n208614,airplane\n208615,cat\n208616,airplane\n208617,airplane\n208618,dog\n208619,cat\n208620,deer\n208621,dog\n208622,truck\n208623,frog\n208624,airplane\n208625,deer\n208626,frog\n208627,deer\n208628,airplane\n208629,frog\n208630,horse\n208631,airplane\n208632,cat\n208633,bird\n208634,frog\n208635,airplane\n208636,airplane\n208637,frog\n208638,dog\n208639,frog\n208640,deer\n208641,truck\n208642,deer\n208643,cat\n208644,truck\n208645,deer\n208646,deer\n208647,deer\n208648,frog\n208649,ship\n208650,automobile\n208651,cat\n208652,truck\n208653,frog\n208654,bird\n208655,deer\n208656,cat\n208657,deer\n208658,truck\n208659,frog\n208660,bird\n208661,deer\n208662,bird\n208663,truck\n208664,truck\n208665,cat\n208666,dog\n208667,horse\n208668,deer\n208669,horse\n208670,automobile\n208671,dog\n208672,dog\n208673,horse\n208674,deer\n208675,cat\n208676,cat\n208677,deer\n208678,bird\n208679,automobile\n208680,frog\n208681,cat\n208682,frog\n208683,dog\n208684,frog\n208685,cat\n208686,bird\n208687,truck\n208688,dog\n208689,automobile\n208690,bird\n208691,airplane\n208692,frog\n208693,automobile\n208694,deer\n208695,dog\n208696,horse\n208697,airplane\n208698,truck\n208699,bird\n208700,bird\n208701,frog\n208702,ship\n208703,ship\n208704,cat\n208705,deer\n208706,frog\n208707,dog\n208708,bird\n208709,frog\n208710,deer\n208711,horse\n208712,frog\n208713,cat\n208714,truck\n208715,dog\n208716,cat\n208717,frog\n208718,frog\n208719,dog\n208720,deer\n208721,ship\n208722,airplane\n208723,deer\n208724,frog\n208725,ship\n208726,truck\n208727,deer\n208728,deer\n208729,ship\n208730,cat\n208731,bird\n208732,deer\n208733,deer\n208734,automobile\n208735,cat\n208736,airplane\n208737,frog\n208738,dog\n208739,cat\n208740,dog\n208741,cat\n208742,cat\n208743,deer\n208744,frog\n208745,ship\n208746,truck\n208747,automobile\n208748,ship\n208749,automobile\n208750,cat\n208751,frog\n208752,deer\n208753,bird\n208754,dog\n208755,airplane\n208756,automobile\n208757,automobile\n208758,truck\n208759,frog\n208760,bird\n208761,frog\n208762,airplane\n208763,bird\n208764,cat\n208765,dog\n208766,horse\n208767,deer\n208768,automobile\n208769,automobile\n208770,frog\n208771,deer\n208772,dog\n208773,automobile\n208774,deer\n208775,ship\n208776,airplane\n208777,cat\n208778,deer\n208779,bird\n208780,dog\n208781,ship\n208782,frog\n208783,frog\n208784,airplane\n208785,frog\n208786,bird\n208787,ship\n208788,cat\n208789,automobile\n208790,truck\n208791,bird\n208792,horse\n208793,cat\n208794,frog\n208795,automobile\n208796,frog\n208797,dog\n208798,airplane\n208799,automobile\n208800,truck\n208801,frog\n208802,airplane\n208803,dog\n208804,cat\n208805,dog\n208806,bird\n208807,airplane\n208808,horse\n208809,ship\n208810,frog\n208811,automobile\n208812,bird\n208813,deer\n208814,airplane\n208815,deer\n208816,truck\n208817,ship\n208818,horse\n208819,frog\n208820,frog\n208821,bird\n208822,frog\n208823,automobile\n208824,bird\n208825,airplane\n208826,dog\n208827,ship\n208828,dog\n208829,ship\n208830,cat\n208831,ship\n208832,automobile\n208833,cat\n208834,bird\n208835,automobile\n208836,cat\n208837,truck\n208838,deer\n208839,bird\n208840,dog\n208841,deer\n208842,frog\n208843,horse\n208844,deer\n208845,cat\n208846,cat\n208847,frog\n208848,dog\n208849,deer\n208850,horse\n208851,truck\n208852,deer\n208853,airplane\n208854,deer\n208855,deer\n208856,cat\n208857,truck\n208858,dog\n208859,deer\n208860,airplane\n208861,deer\n208862,dog\n208863,dog\n208864,truck\n208865,cat\n208866,frog\n208867,deer\n208868,cat\n208869,bird\n208870,automobile\n208871,dog\n208872,cat\n208873,ship\n208874,airplane\n208875,horse\n208876,airplane\n208877,bird\n208878,ship\n208879,cat\n208880,deer\n208881,bird\n208882,dog\n208883,cat\n208884,frog\n208885,frog\n208886,horse\n208887,bird\n208888,deer\n208889,dog\n208890,cat\n208891,bird\n208892,cat\n208893,deer\n208894,cat\n208895,cat\n208896,frog\n208897,truck\n208898,ship\n208899,dog\n208900,frog\n208901,truck\n208902,truck\n208903,frog\n208904,cat\n208905,airplane\n208906,ship\n208907,cat\n208908,dog\n208909,automobile\n208910,deer\n208911,deer\n208912,dog\n208913,bird\n208914,ship\n208915,ship\n208916,dog\n208917,cat\n208918,cat\n208919,deer\n208920,horse\n208921,truck\n208922,deer\n208923,bird\n208924,bird\n208925,frog\n208926,horse\n208927,frog\n208928,frog\n208929,frog\n208930,frog\n208931,truck\n208932,bird\n208933,frog\n208934,horse\n208935,truck\n208936,deer\n208937,airplane\n208938,automobile\n208939,truck\n208940,cat\n208941,dog\n208942,horse\n208943,automobile\n208944,frog\n208945,dog\n208946,automobile\n208947,deer\n208948,bird\n208949,frog\n208950,ship\n208951,airplane\n208952,deer\n208953,dog\n208954,cat\n208955,cat\n208956,deer\n208957,cat\n208958,deer\n208959,frog\n208960,cat\n208961,bird\n208962,bird\n208963,dog\n208964,dog\n208965,airplane\n208966,bird\n208967,horse\n208968,dog\n208969,truck\n208970,truck\n208971,ship\n208972,horse\n208973,deer\n208974,bird\n208975,airplane\n208976,bird\n208977,dog\n208978,airplane\n208979,dog\n208980,bird\n208981,airplane\n208982,deer\n208983,frog\n208984,horse\n208985,frog\n208986,horse\n208987,horse\n208988,cat\n208989,cat\n208990,cat\n208991,deer\n208992,dog\n208993,truck\n208994,cat\n208995,airplane\n208996,automobile\n208997,airplane\n208998,frog\n208999,cat\n209000,deer\n209001,frog\n209002,cat\n209003,cat\n209004,deer\n209005,horse\n209006,frog\n209007,frog\n209008,truck\n209009,frog\n209010,deer\n209011,cat\n209012,automobile\n209013,horse\n209014,bird\n209015,cat\n209016,deer\n209017,truck\n209018,ship\n209019,horse\n209020,bird\n209021,horse\n209022,frog\n209023,frog\n209024,bird\n209025,dog\n209026,automobile\n209027,frog\n209028,dog\n209029,cat\n209030,cat\n209031,frog\n209032,deer\n209033,cat\n209034,horse\n209035,ship\n209036,truck\n209037,airplane\n209038,automobile\n209039,bird\n209040,airplane\n209041,cat\n209042,horse\n209043,truck\n209044,dog\n209045,truck\n209046,cat\n209047,truck\n209048,deer\n209049,horse\n209050,truck\n209051,cat\n209052,airplane\n209053,ship\n209054,automobile\n209055,dog\n209056,horse\n209057,frog\n209058,truck\n209059,airplane\n209060,horse\n209061,dog\n209062,cat\n209063,deer\n209064,airplane\n209065,deer\n209066,frog\n209067,deer\n209068,deer\n209069,automobile\n209070,airplane\n209071,bird\n209072,deer\n209073,automobile\n209074,dog\n209075,deer\n209076,dog\n209077,horse\n209078,cat\n209079,ship\n209080,frog\n209081,automobile\n209082,bird\n209083,automobile\n209084,automobile\n209085,horse\n209086,truck\n209087,horse\n209088,horse\n209089,ship\n209090,dog\n209091,cat\n209092,ship\n209093,truck\n209094,automobile\n209095,frog\n209096,truck\n209097,automobile\n209098,deer\n209099,dog\n209100,frog\n209101,dog\n209102,deer\n209103,deer\n209104,frog\n209105,frog\n209106,deer\n209107,dog\n209108,deer\n209109,deer\n209110,dog\n209111,truck\n209112,dog\n209113,frog\n209114,dog\n209115,ship\n209116,deer\n209117,automobile\n209118,bird\n209119,automobile\n209120,automobile\n209121,airplane\n209122,automobile\n209123,horse\n209124,frog\n209125,cat\n209126,cat\n209127,truck\n209128,deer\n209129,bird\n209130,horse\n209131,ship\n209132,truck\n209133,dog\n209134,horse\n209135,ship\n209136,truck\n209137,truck\n209138,cat\n209139,automobile\n209140,dog\n209141,bird\n209142,dog\n209143,airplane\n209144,horse\n209145,frog\n209146,truck\n209147,frog\n209148,deer\n209149,dog\n209150,horse\n209151,cat\n209152,automobile\n209153,frog\n209154,ship\n209155,cat\n209156,bird\n209157,frog\n209158,horse\n209159,truck\n209160,truck\n209161,cat\n209162,cat\n209163,cat\n209164,cat\n209165,frog\n209166,deer\n209167,deer\n209168,horse\n209169,frog\n209170,dog\n209171,automobile\n209172,deer\n209173,horse\n209174,dog\n209175,dog\n209176,frog\n209177,frog\n209178,deer\n209179,deer\n209180,ship\n209181,ship\n209182,truck\n209183,deer\n209184,airplane\n209185,frog\n209186,frog\n209187,dog\n209188,airplane\n209189,frog\n209190,horse\n209191,cat\n209192,cat\n209193,dog\n209194,bird\n209195,truck\n209196,ship\n209197,deer\n209198,automobile\n209199,horse\n209200,cat\n209201,bird\n209202,bird\n209203,cat\n209204,bird\n209205,airplane\n209206,automobile\n209207,cat\n209208,deer\n209209,cat\n209210,dog\n209211,dog\n209212,cat\n209213,cat\n209214,horse\n209215,frog\n209216,automobile\n209217,horse\n209218,deer\n209219,airplane\n209220,horse\n209221,truck\n209222,horse\n209223,deer\n209224,airplane\n209225,dog\n209226,airplane\n209227,cat\n209228,cat\n209229,ship\n209230,airplane\n209231,deer\n209232,frog\n209233,frog\n209234,dog\n209235,dog\n209236,horse\n209237,dog\n209238,bird\n209239,frog\n209240,dog\n209241,dog\n209242,bird\n209243,dog\n209244,horse\n209245,frog\n209246,cat\n209247,cat\n209248,deer\n209249,automobile\n209250,airplane\n209251,cat\n209252,frog\n209253,airplane\n209254,truck\n209255,cat\n209256,truck\n209257,frog\n209258,cat\n209259,cat\n209260,dog\n209261,truck\n209262,deer\n209263,truck\n209264,truck\n209265,deer\n209266,truck\n209267,horse\n209268,horse\n209269,truck\n209270,automobile\n209271,airplane\n209272,truck\n209273,truck\n209274,airplane\n209275,horse\n209276,deer\n209277,cat\n209278,truck\n209279,frog\n209280,truck\n209281,cat\n209282,cat\n209283,dog\n209284,airplane\n209285,bird\n209286,deer\n209287,cat\n209288,airplane\n209289,truck\n209290,ship\n209291,truck\n209292,truck\n209293,bird\n209294,frog\n209295,deer\n209296,frog\n209297,deer\n209298,deer\n209299,horse\n209300,ship\n209301,dog\n209302,cat\n209303,ship\n209304,deer\n209305,deer\n209306,horse\n209307,automobile\n209308,dog\n209309,bird\n209310,ship\n209311,truck\n209312,bird\n209313,cat\n209314,dog\n209315,bird\n209316,automobile\n209317,dog\n209318,automobile\n209319,frog\n209320,cat\n209321,automobile\n209322,cat\n209323,dog\n209324,dog\n209325,airplane\n209326,truck\n209327,horse\n209328,horse\n209329,bird\n209330,ship\n209331,dog\n209332,truck\n209333,cat\n209334,deer\n209335,dog\n209336,frog\n209337,cat\n209338,bird\n209339,frog\n209340,deer\n209341,truck\n209342,truck\n209343,ship\n209344,cat\n209345,deer\n209346,airplane\n209347,cat\n209348,bird\n209349,airplane\n209350,bird\n209351,deer\n209352,airplane\n209353,airplane\n209354,cat\n209355,dog\n209356,truck\n209357,cat\n209358,horse\n209359,airplane\n209360,automobile\n209361,bird\n209362,airplane\n209363,deer\n209364,truck\n209365,deer\n209366,bird\n209367,truck\n209368,dog\n209369,horse\n209370,airplane\n209371,dog\n209372,deer\n209373,deer\n209374,ship\n209375,frog\n209376,horse\n209377,frog\n209378,dog\n209379,airplane\n209380,bird\n209381,automobile\n209382,deer\n209383,bird\n209384,cat\n209385,ship\n209386,automobile\n209387,deer\n209388,deer\n209389,dog\n209390,cat\n209391,bird\n209392,deer\n209393,ship\n209394,ship\n209395,truck\n209396,cat\n209397,dog\n209398,dog\n209399,horse\n209400,ship\n209401,cat\n209402,airplane\n209403,deer\n209404,deer\n209405,cat\n209406,horse\n209407,horse\n209408,cat\n209409,ship\n209410,dog\n209411,airplane\n209412,deer\n209413,ship\n209414,cat\n209415,horse\n209416,automobile\n209417,deer\n209418,deer\n209419,frog\n209420,cat\n209421,ship\n209422,airplane\n209423,cat\n209424,ship\n209425,bird\n209426,automobile\n209427,deer\n209428,cat\n209429,dog\n209430,automobile\n209431,cat\n209432,bird\n209433,dog\n209434,truck\n209435,horse\n209436,deer\n209437,deer\n209438,truck\n209439,cat\n209440,bird\n209441,ship\n209442,frog\n209443,bird\n209444,truck\n209445,cat\n209446,frog\n209447,frog\n209448,airplane\n209449,deer\n209450,airplane\n209451,bird\n209452,dog\n209453,frog\n209454,dog\n209455,truck\n209456,ship\n209457,airplane\n209458,deer\n209459,deer\n209460,automobile\n209461,airplane\n209462,deer\n209463,truck\n209464,ship\n209465,frog\n209466,cat\n209467,bird\n209468,ship\n209469,cat\n209470,ship\n209471,deer\n209472,cat\n209473,dog\n209474,dog\n209475,deer\n209476,ship\n209477,frog\n209478,deer\n209479,horse\n209480,frog\n209481,deer\n209482,airplane\n209483,frog\n209484,dog\n209485,dog\n209486,deer\n209487,ship\n209488,horse\n209489,frog\n209490,airplane\n209491,cat\n209492,airplane\n209493,dog\n209494,dog\n209495,horse\n209496,truck\n209497,airplane\n209498,truck\n209499,cat\n209500,truck\n209501,dog\n209502,frog\n209503,automobile\n209504,deer\n209505,dog\n209506,cat\n209507,dog\n209508,deer\n209509,frog\n209510,ship\n209511,cat\n209512,bird\n209513,deer\n209514,dog\n209515,horse\n209516,frog\n209517,horse\n209518,bird\n209519,dog\n209520,cat\n209521,automobile\n209522,cat\n209523,deer\n209524,ship\n209525,deer\n209526,deer\n209527,cat\n209528,airplane\n209529,airplane\n209530,dog\n209531,truck\n209532,deer\n209533,horse\n209534,cat\n209535,cat\n209536,frog\n209537,horse\n209538,horse\n209539,bird\n209540,deer\n209541,horse\n209542,deer\n209543,ship\n209544,dog\n209545,frog\n209546,cat\n209547,frog\n209548,frog\n209549,ship\n209550,airplane\n209551,airplane\n209552,truck\n209553,deer\n209554,dog\n209555,truck\n209556,deer\n209557,cat\n209558,airplane\n209559,horse\n209560,airplane\n209561,horse\n209562,cat\n209563,automobile\n209564,bird\n209565,dog\n209566,deer\n209567,frog\n209568,truck\n209569,dog\n209570,cat\n209571,deer\n209572,frog\n209573,frog\n209574,deer\n209575,truck\n209576,dog\n209577,ship\n209578,cat\n209579,frog\n209580,truck\n209581,airplane\n209582,dog\n209583,cat\n209584,truck\n209585,deer\n209586,cat\n209587,deer\n209588,dog\n209589,truck\n209590,horse\n209591,cat\n209592,ship\n209593,truck\n209594,frog\n209595,automobile\n209596,dog\n209597,cat\n209598,automobile\n209599,truck\n209600,bird\n209601,truck\n209602,ship\n209603,automobile\n209604,cat\n209605,frog\n209606,ship\n209607,truck\n209608,horse\n209609,frog\n209610,deer\n209611,dog\n209612,cat\n209613,ship\n209614,airplane\n209615,cat\n209616,dog\n209617,dog\n209618,horse\n209619,automobile\n209620,dog\n209621,deer\n209622,deer\n209623,dog\n209624,ship\n209625,deer\n209626,dog\n209627,airplane\n209628,cat\n209629,ship\n209630,automobile\n209631,dog\n209632,airplane\n209633,horse\n209634,airplane\n209635,frog\n209636,horse\n209637,dog\n209638,cat\n209639,deer\n209640,truck\n209641,truck\n209642,bird\n209643,dog\n209644,dog\n209645,ship\n209646,airplane\n209647,truck\n209648,horse\n209649,truck\n209650,bird\n209651,horse\n209652,airplane\n209653,deer\n209654,truck\n209655,cat\n209656,cat\n209657,deer\n209658,truck\n209659,automobile\n209660,deer\n209661,ship\n209662,ship\n209663,dog\n209664,frog\n209665,frog\n209666,horse\n209667,ship\n209668,cat\n209669,airplane\n209670,airplane\n209671,horse\n209672,cat\n209673,deer\n209674,airplane\n209675,ship\n209676,frog\n209677,frog\n209678,deer\n209679,deer\n209680,horse\n209681,deer\n209682,deer\n209683,airplane\n209684,dog\n209685,truck\n209686,truck\n209687,airplane\n209688,dog\n209689,frog\n209690,ship\n209691,horse\n209692,airplane\n209693,automobile\n209694,deer\n209695,automobile\n209696,cat\n209697,frog\n209698,airplane\n209699,horse\n209700,airplane\n209701,cat\n209702,ship\n209703,airplane\n209704,ship\n209705,frog\n209706,deer\n209707,truck\n209708,bird\n209709,horse\n209710,ship\n209711,cat\n209712,cat\n209713,truck\n209714,horse\n209715,truck\n209716,dog\n209717,deer\n209718,airplane\n209719,horse\n209720,cat\n209721,bird\n209722,horse\n209723,bird\n209724,dog\n209725,dog\n209726,frog\n209727,dog\n209728,ship\n209729,cat\n209730,airplane\n209731,deer\n209732,bird\n209733,dog\n209734,ship\n209735,cat\n209736,truck\n209737,ship\n209738,bird\n209739,frog\n209740,horse\n209741,airplane\n209742,frog\n209743,ship\n209744,ship\n209745,cat\n209746,dog\n209747,ship\n209748,dog\n209749,truck\n209750,truck\n209751,cat\n209752,deer\n209753,horse\n209754,deer\n209755,cat\n209756,dog\n209757,horse\n209758,cat\n209759,cat\n209760,automobile\n209761,frog\n209762,airplane\n209763,truck\n209764,cat\n209765,horse\n209766,bird\n209767,truck\n209768,automobile\n209769,truck\n209770,cat\n209771,frog\n209772,horse\n209773,cat\n209774,frog\n209775,dog\n209776,automobile\n209777,cat\n209778,deer\n209779,truck\n209780,frog\n209781,cat\n209782,cat\n209783,horse\n209784,deer\n209785,truck\n209786,dog\n209787,frog\n209788,truck\n209789,airplane\n209790,dog\n209791,truck\n209792,frog\n209793,deer\n209794,truck\n209795,deer\n209796,frog\n209797,airplane\n209798,ship\n209799,horse\n209800,truck\n209801,ship\n209802,automobile\n209803,bird\n209804,frog\n209805,deer\n209806,frog\n209807,dog\n209808,frog\n209809,ship\n209810,frog\n209811,cat\n209812,horse\n209813,truck\n209814,truck\n209815,deer\n209816,automobile\n209817,bird\n209818,cat\n209819,bird\n209820,automobile\n209821,bird\n209822,cat\n209823,automobile\n209824,deer\n209825,ship\n209826,ship\n209827,bird\n209828,cat\n209829,frog\n209830,deer\n209831,cat\n209832,airplane\n209833,dog\n209834,frog\n209835,deer\n209836,cat\n209837,ship\n209838,deer\n209839,bird\n209840,deer\n209841,bird\n209842,dog\n209843,cat\n209844,bird\n209845,horse\n209846,bird\n209847,ship\n209848,airplane\n209849,dog\n209850,ship\n209851,truck\n209852,bird\n209853,cat\n209854,frog\n209855,frog\n209856,deer\n209857,frog\n209858,horse\n209859,truck\n209860,horse\n209861,bird\n209862,ship\n209863,horse\n209864,deer\n209865,frog\n209866,automobile\n209867,horse\n209868,airplane\n209869,ship\n209870,bird\n209871,frog\n209872,truck\n209873,dog\n209874,dog\n209875,deer\n209876,horse\n209877,truck\n209878,horse\n209879,truck\n209880,horse\n209881,horse\n209882,horse\n209883,ship\n209884,cat\n209885,cat\n209886,bird\n209887,horse\n209888,cat\n209889,bird\n209890,cat\n209891,truck\n209892,deer\n209893,ship\n209894,dog\n209895,ship\n209896,horse\n209897,horse\n209898,deer\n209899,automobile\n209900,airplane\n209901,horse\n209902,deer\n209903,cat\n209904,ship\n209905,bird\n209906,truck\n209907,airplane\n209908,cat\n209909,frog\n209910,cat\n209911,ship\n209912,automobile\n209913,cat\n209914,horse\n209915,airplane\n209916,automobile\n209917,ship\n209918,frog\n209919,horse\n209920,dog\n209921,cat\n209922,frog\n209923,bird\n209924,bird\n209925,cat\n209926,automobile\n209927,horse\n209928,deer\n209929,bird\n209930,frog\n209931,frog\n209932,horse\n209933,deer\n209934,dog\n209935,horse\n209936,bird\n209937,bird\n209938,dog\n209939,cat\n209940,deer\n209941,deer\n209942,automobile\n209943,horse\n209944,airplane\n209945,ship\n209946,horse\n209947,cat\n209948,frog\n209949,truck\n209950,horse\n209951,deer\n209952,airplane\n209953,automobile\n209954,horse\n209955,deer\n209956,cat\n209957,truck\n209958,horse\n209959,horse\n209960,automobile\n209961,cat\n209962,cat\n209963,horse\n209964,frog\n209965,frog\n209966,bird\n209967,cat\n209968,frog\n209969,deer\n209970,automobile\n209971,horse\n209972,horse\n209973,cat\n209974,dog\n209975,automobile\n209976,horse\n209977,automobile\n209978,truck\n209979,automobile\n209980,ship\n209981,dog\n209982,cat\n209983,frog\n209984,deer\n209985,dog\n209986,bird\n209987,deer\n209988,deer\n209989,deer\n209990,frog\n209991,horse\n209992,dog\n209993,ship\n209994,automobile\n209995,horse\n209996,dog\n209997,truck\n209998,dog\n209999,cat\n210000,airplane\n210001,bird\n210002,bird\n210003,bird\n210004,automobile\n210005,truck\n210006,dog\n210007,frog\n210008,deer\n210009,dog\n210010,cat\n210011,cat\n210012,dog\n210013,airplane\n210014,deer\n210015,dog\n210016,deer\n210017,dog\n210018,automobile\n210019,deer\n210020,dog\n210021,ship\n210022,deer\n210023,ship\n210024,bird\n210025,airplane\n210026,ship\n210027,deer\n210028,frog\n210029,horse\n210030,airplane\n210031,bird\n210032,cat\n210033,airplane\n210034,dog\n210035,airplane\n210036,cat\n210037,deer\n210038,frog\n210039,deer\n210040,frog\n210041,horse\n210042,cat\n210043,ship\n210044,frog\n210045,dog\n210046,deer\n210047,deer\n210048,deer\n210049,frog\n210050,horse\n210051,ship\n210052,deer\n210053,ship\n210054,deer\n210055,horse\n210056,bird\n210057,truck\n210058,deer\n210059,airplane\n210060,deer\n210061,bird\n210062,truck\n210063,deer\n210064,deer\n210065,cat\n210066,dog\n210067,deer\n210068,deer\n210069,bird\n210070,horse\n210071,cat\n210072,automobile\n210073,truck\n210074,automobile\n210075,deer\n210076,automobile\n210077,frog\n210078,horse\n210079,ship\n210080,dog\n210081,horse\n210082,bird\n210083,dog\n210084,deer\n210085,cat\n210086,bird\n210087,airplane\n210088,bird\n210089,deer\n210090,airplane\n210091,ship\n210092,frog\n210093,automobile\n210094,deer\n210095,frog\n210096,deer\n210097,truck\n210098,deer\n210099,dog\n210100,airplane\n210101,frog\n210102,deer\n210103,horse\n210104,deer\n210105,automobile\n210106,cat\n210107,truck\n210108,airplane\n210109,frog\n210110,frog\n210111,truck\n210112,bird\n210113,frog\n210114,deer\n210115,truck\n210116,bird\n210117,bird\n210118,ship\n210119,truck\n210120,truck\n210121,ship\n210122,frog\n210123,airplane\n210124,ship\n210125,cat\n210126,frog\n210127,automobile\n210128,automobile\n210129,airplane\n210130,deer\n210131,airplane\n210132,horse\n210133,truck\n210134,truck\n210135,horse\n210136,deer\n210137,horse\n210138,airplane\n210139,dog\n210140,deer\n210141,airplane\n210142,ship\n210143,dog\n210144,horse\n210145,truck\n210146,bird\n210147,horse\n210148,airplane\n210149,frog\n210150,dog\n210151,frog\n210152,frog\n210153,horse\n210154,ship\n210155,cat\n210156,ship\n210157,truck\n210158,ship\n210159,bird\n210160,automobile\n210161,bird\n210162,deer\n210163,deer\n210164,dog\n210165,ship\n210166,ship\n210167,frog\n210168,airplane\n210169,horse\n210170,cat\n210171,bird\n210172,airplane\n210173,dog\n210174,cat\n210175,frog\n210176,ship\n210177,deer\n210178,ship\n210179,horse\n210180,cat\n210181,automobile\n210182,truck\n210183,deer\n210184,frog\n210185,airplane\n210186,cat\n210187,truck\n210188,truck\n210189,ship\n210190,horse\n210191,bird\n210192,airplane\n210193,cat\n210194,airplane\n210195,truck\n210196,deer\n210197,cat\n210198,deer\n210199,frog\n210200,truck\n210201,cat\n210202,truck\n210203,frog\n210204,cat\n210205,horse\n210206,truck\n210207,cat\n210208,cat\n210209,airplane\n210210,horse\n210211,cat\n210212,bird\n210213,horse\n210214,bird\n210215,ship\n210216,cat\n210217,deer\n210218,truck\n210219,dog\n210220,bird\n210221,horse\n210222,ship\n210223,frog\n210224,deer\n210225,ship\n210226,frog\n210227,horse\n210228,cat\n210229,horse\n210230,airplane\n210231,airplane\n210232,truck\n210233,deer\n210234,frog\n210235,deer\n210236,ship\n210237,dog\n210238,ship\n210239,airplane\n210240,horse\n210241,deer\n210242,bird\n210243,frog\n210244,airplane\n210245,dog\n210246,cat\n210247,ship\n210248,airplane\n210249,truck\n210250,airplane\n210251,cat\n210252,truck\n210253,frog\n210254,bird\n210255,frog\n210256,horse\n210257,frog\n210258,deer\n210259,horse\n210260,truck\n210261,deer\n210262,automobile\n210263,dog\n210264,bird\n210265,airplane\n210266,deer\n210267,horse\n210268,dog\n210269,horse\n210270,ship\n210271,airplane\n210272,airplane\n210273,bird\n210274,bird\n210275,horse\n210276,cat\n210277,dog\n210278,automobile\n210279,horse\n210280,cat\n210281,bird\n210282,dog\n210283,airplane\n210284,airplane\n210285,ship\n210286,bird\n210287,bird\n210288,truck\n210289,deer\n210290,truck\n210291,airplane\n210292,dog\n210293,frog\n210294,frog\n210295,dog\n210296,ship\n210297,cat\n210298,cat\n210299,bird\n210300,automobile\n210301,frog\n210302,cat\n210303,automobile\n210304,deer\n210305,truck\n210306,ship\n210307,bird\n210308,truck\n210309,cat\n210310,deer\n210311,dog\n210312,frog\n210313,ship\n210314,bird\n210315,deer\n210316,deer\n210317,airplane\n210318,airplane\n210319,automobile\n210320,dog\n210321,truck\n210322,frog\n210323,ship\n210324,deer\n210325,deer\n210326,airplane\n210327,truck\n210328,dog\n210329,bird\n210330,bird\n210331,truck\n210332,truck\n210333,truck\n210334,dog\n210335,deer\n210336,cat\n210337,truck\n210338,deer\n210339,bird\n210340,horse\n210341,frog\n210342,dog\n210343,airplane\n210344,cat\n210345,truck\n210346,bird\n210347,bird\n210348,cat\n210349,horse\n210350,automobile\n210351,deer\n210352,deer\n210353,frog\n210354,horse\n210355,frog\n210356,automobile\n210357,dog\n210358,automobile\n210359,ship\n210360,frog\n210361,truck\n210362,horse\n210363,automobile\n210364,automobile\n210365,airplane\n210366,cat\n210367,cat\n210368,dog\n210369,ship\n210370,dog\n210371,ship\n210372,bird\n210373,truck\n210374,truck\n210375,deer\n210376,bird\n210377,deer\n210378,dog\n210379,cat\n210380,deer\n210381,ship\n210382,dog\n210383,automobile\n210384,horse\n210385,bird\n210386,horse\n210387,frog\n210388,bird\n210389,dog\n210390,airplane\n210391,bird\n210392,dog\n210393,deer\n210394,dog\n210395,deer\n210396,airplane\n210397,deer\n210398,automobile\n210399,truck\n210400,airplane\n210401,ship\n210402,airplane\n210403,truck\n210404,deer\n210405,bird\n210406,frog\n210407,horse\n210408,ship\n210409,cat\n210410,truck\n210411,automobile\n210412,ship\n210413,ship\n210414,truck\n210415,automobile\n210416,frog\n210417,deer\n210418,frog\n210419,horse\n210420,ship\n210421,dog\n210422,truck\n210423,airplane\n210424,bird\n210425,dog\n210426,horse\n210427,frog\n210428,horse\n210429,dog\n210430,bird\n210431,bird\n210432,airplane\n210433,truck\n210434,dog\n210435,truck\n210436,airplane\n210437,horse\n210438,cat\n210439,truck\n210440,airplane\n210441,cat\n210442,cat\n210443,dog\n210444,deer\n210445,dog\n210446,dog\n210447,cat\n210448,truck\n210449,bird\n210450,bird\n210451,deer\n210452,dog\n210453,airplane\n210454,deer\n210455,airplane\n210456,automobile\n210457,dog\n210458,bird\n210459,automobile\n210460,truck\n210461,ship\n210462,automobile\n210463,deer\n210464,horse\n210465,automobile\n210466,dog\n210467,truck\n210468,dog\n210469,airplane\n210470,deer\n210471,truck\n210472,frog\n210473,airplane\n210474,deer\n210475,truck\n210476,horse\n210477,frog\n210478,dog\n210479,cat\n210480,bird\n210481,bird\n210482,automobile\n210483,frog\n210484,cat\n210485,truck\n210486,truck\n210487,horse\n210488,ship\n210489,automobile\n210490,airplane\n210491,truck\n210492,horse\n210493,deer\n210494,deer\n210495,deer\n210496,horse\n210497,deer\n210498,deer\n210499,bird\n210500,frog\n210501,cat\n210502,deer\n210503,frog\n210504,frog\n210505,automobile\n210506,horse\n210507,airplane\n210508,ship\n210509,cat\n210510,horse\n210511,automobile\n210512,cat\n210513,cat\n210514,horse\n210515,deer\n210516,frog\n210517,airplane\n210518,bird\n210519,horse\n210520,deer\n210521,truck\n210522,cat\n210523,ship\n210524,cat\n210525,truck\n210526,cat\n210527,dog\n210528,ship\n210529,automobile\n210530,airplane\n210531,truck\n210532,bird\n210533,dog\n210534,deer\n210535,frog\n210536,horse\n210537,airplane\n210538,frog\n210539,truck\n210540,truck\n210541,truck\n210542,cat\n210543,airplane\n210544,airplane\n210545,truck\n210546,cat\n210547,airplane\n210548,truck\n210549,truck\n210550,bird\n210551,bird\n210552,dog\n210553,horse\n210554,horse\n210555,truck\n210556,ship\n210557,cat\n210558,deer\n210559,bird\n210560,cat\n210561,truck\n210562,ship\n210563,ship\n210564,cat\n210565,horse\n210566,dog\n210567,ship\n210568,dog\n210569,deer\n210570,frog\n210571,cat\n210572,truck\n210573,airplane\n210574,deer\n210575,deer\n210576,airplane\n210577,bird\n210578,airplane\n210579,dog\n210580,bird\n210581,airplane\n210582,cat\n210583,automobile\n210584,horse\n210585,bird\n210586,frog\n210587,truck\n210588,frog\n210589,deer\n210590,bird\n210591,truck\n210592,frog\n210593,truck\n210594,automobile\n210595,dog\n210596,cat\n210597,dog\n210598,cat\n210599,horse\n210600,airplane\n210601,automobile\n210602,bird\n210603,cat\n210604,frog\n210605,deer\n210606,cat\n210607,horse\n210608,ship\n210609,frog\n210610,deer\n210611,horse\n210612,truck\n210613,bird\n210614,deer\n210615,ship\n210616,frog\n210617,horse\n210618,deer\n210619,bird\n210620,ship\n210621,deer\n210622,ship\n210623,automobile\n210624,ship\n210625,deer\n210626,truck\n210627,cat\n210628,deer\n210629,frog\n210630,deer\n210631,dog\n210632,ship\n210633,frog\n210634,ship\n210635,frog\n210636,airplane\n210637,cat\n210638,truck\n210639,horse\n210640,frog\n210641,dog\n210642,horse\n210643,cat\n210644,frog\n210645,truck\n210646,ship\n210647,ship\n210648,ship\n210649,cat\n210650,deer\n210651,cat\n210652,truck\n210653,ship\n210654,truck\n210655,bird\n210656,truck\n210657,dog\n210658,frog\n210659,dog\n210660,ship\n210661,truck\n210662,bird\n210663,airplane\n210664,dog\n210665,truck\n210666,dog\n210667,bird\n210668,dog\n210669,bird\n210670,deer\n210671,truck\n210672,horse\n210673,frog\n210674,automobile\n210675,frog\n210676,cat\n210677,dog\n210678,frog\n210679,ship\n210680,frog\n210681,deer\n210682,ship\n210683,truck\n210684,automobile\n210685,dog\n210686,bird\n210687,airplane\n210688,dog\n210689,deer\n210690,dog\n210691,cat\n210692,frog\n210693,horse\n210694,deer\n210695,airplane\n210696,dog\n210697,deer\n210698,ship\n210699,airplane\n210700,frog\n210701,cat\n210702,dog\n210703,automobile\n210704,cat\n210705,dog\n210706,deer\n210707,ship\n210708,cat\n210709,frog\n210710,dog\n210711,automobile\n210712,cat\n210713,frog\n210714,cat\n210715,frog\n210716,automobile\n210717,horse\n210718,automobile\n210719,ship\n210720,airplane\n210721,deer\n210722,bird\n210723,cat\n210724,frog\n210725,bird\n210726,cat\n210727,horse\n210728,ship\n210729,cat\n210730,dog\n210731,cat\n210732,frog\n210733,automobile\n210734,automobile\n210735,deer\n210736,truck\n210737,horse\n210738,deer\n210739,frog\n210740,horse\n210741,frog\n210742,airplane\n210743,frog\n210744,truck\n210745,ship\n210746,horse\n210747,truck\n210748,frog\n210749,airplane\n210750,horse\n210751,cat\n210752,deer\n210753,dog\n210754,airplane\n210755,ship\n210756,horse\n210757,dog\n210758,truck\n210759,automobile\n210760,bird\n210761,bird\n210762,airplane\n210763,cat\n210764,horse\n210765,cat\n210766,horse\n210767,horse\n210768,horse\n210769,deer\n210770,airplane\n210771,horse\n210772,bird\n210773,deer\n210774,truck\n210775,airplane\n210776,automobile\n210777,ship\n210778,cat\n210779,frog\n210780,dog\n210781,dog\n210782,deer\n210783,cat\n210784,cat\n210785,ship\n210786,cat\n210787,deer\n210788,truck\n210789,cat\n210790,automobile\n210791,airplane\n210792,truck\n210793,frog\n210794,cat\n210795,ship\n210796,frog\n210797,airplane\n210798,deer\n210799,truck\n210800,dog\n210801,horse\n210802,frog\n210803,cat\n210804,automobile\n210805,cat\n210806,frog\n210807,cat\n210808,ship\n210809,horse\n210810,truck\n210811,frog\n210812,deer\n210813,cat\n210814,bird\n210815,cat\n210816,bird\n210817,frog\n210818,frog\n210819,cat\n210820,deer\n210821,horse\n210822,deer\n210823,airplane\n210824,cat\n210825,truck\n210826,ship\n210827,bird\n210828,frog\n210829,bird\n210830,horse\n210831,dog\n210832,automobile\n210833,cat\n210834,cat\n210835,automobile\n210836,truck\n210837,cat\n210838,deer\n210839,automobile\n210840,truck\n210841,airplane\n210842,deer\n210843,airplane\n210844,cat\n210845,frog\n210846,automobile\n210847,horse\n210848,bird\n210849,cat\n210850,bird\n210851,cat\n210852,cat\n210853,deer\n210854,automobile\n210855,airplane\n210856,ship\n210857,cat\n210858,horse\n210859,dog\n210860,truck\n210861,frog\n210862,deer\n210863,frog\n210864,automobile\n210865,horse\n210866,deer\n210867,truck\n210868,truck\n210869,cat\n210870,truck\n210871,dog\n210872,automobile\n210873,airplane\n210874,frog\n210875,horse\n210876,frog\n210877,dog\n210878,horse\n210879,truck\n210880,bird\n210881,cat\n210882,deer\n210883,airplane\n210884,dog\n210885,deer\n210886,airplane\n210887,ship\n210888,cat\n210889,truck\n210890,ship\n210891,horse\n210892,deer\n210893,dog\n210894,horse\n210895,cat\n210896,truck\n210897,deer\n210898,cat\n210899,cat\n210900,dog\n210901,bird\n210902,airplane\n210903,frog\n210904,truck\n210905,horse\n210906,airplane\n210907,frog\n210908,airplane\n210909,deer\n210910,truck\n210911,bird\n210912,frog\n210913,frog\n210914,frog\n210915,horse\n210916,dog\n210917,ship\n210918,truck\n210919,horse\n210920,truck\n210921,frog\n210922,cat\n210923,ship\n210924,automobile\n210925,dog\n210926,truck\n210927,automobile\n210928,ship\n210929,dog\n210930,truck\n210931,automobile\n210932,cat\n210933,bird\n210934,cat\n210935,deer\n210936,cat\n210937,horse\n210938,deer\n210939,truck\n210940,frog\n210941,automobile\n210942,deer\n210943,frog\n210944,dog\n210945,frog\n210946,horse\n210947,dog\n210948,bird\n210949,automobile\n210950,automobile\n210951,truck\n210952,truck\n210953,deer\n210954,deer\n210955,horse\n210956,ship\n210957,horse\n210958,frog\n210959,ship\n210960,automobile\n210961,deer\n210962,airplane\n210963,ship\n210964,airplane\n210965,cat\n210966,frog\n210967,frog\n210968,truck\n210969,ship\n210970,cat\n210971,airplane\n210972,horse\n210973,horse\n210974,horse\n210975,bird\n210976,frog\n210977,cat\n210978,airplane\n210979,frog\n210980,ship\n210981,automobile\n210982,airplane\n210983,dog\n210984,frog\n210985,dog\n210986,automobile\n210987,frog\n210988,truck\n210989,automobile\n210990,truck\n210991,ship\n210992,cat\n210993,bird\n210994,cat\n210995,automobile\n210996,frog\n210997,bird\n210998,deer\n210999,automobile\n211000,horse\n211001,frog\n211002,truck\n211003,airplane\n211004,dog\n211005,deer\n211006,cat\n211007,cat\n211008,bird\n211009,cat\n211010,automobile\n211011,ship\n211012,horse\n211013,cat\n211014,dog\n211015,frog\n211016,bird\n211017,bird\n211018,frog\n211019,truck\n211020,deer\n211021,deer\n211022,ship\n211023,airplane\n211024,frog\n211025,dog\n211026,truck\n211027,horse\n211028,deer\n211029,truck\n211030,cat\n211031,horse\n211032,truck\n211033,deer\n211034,automobile\n211035,automobile\n211036,ship\n211037,horse\n211038,frog\n211039,deer\n211040,truck\n211041,deer\n211042,cat\n211043,cat\n211044,deer\n211045,cat\n211046,horse\n211047,frog\n211048,bird\n211049,bird\n211050,truck\n211051,dog\n211052,airplane\n211053,bird\n211054,deer\n211055,dog\n211056,ship\n211057,truck\n211058,horse\n211059,dog\n211060,ship\n211061,horse\n211062,airplane\n211063,truck\n211064,frog\n211065,deer\n211066,bird\n211067,bird\n211068,frog\n211069,ship\n211070,ship\n211071,horse\n211072,deer\n211073,dog\n211074,bird\n211075,cat\n211076,deer\n211077,dog\n211078,cat\n211079,frog\n211080,cat\n211081,cat\n211082,horse\n211083,ship\n211084,deer\n211085,airplane\n211086,dog\n211087,deer\n211088,frog\n211089,airplane\n211090,deer\n211091,deer\n211092,cat\n211093,cat\n211094,truck\n211095,dog\n211096,dog\n211097,bird\n211098,bird\n211099,frog\n211100,ship\n211101,ship\n211102,truck\n211103,cat\n211104,bird\n211105,frog\n211106,deer\n211107,bird\n211108,cat\n211109,cat\n211110,horse\n211111,cat\n211112,frog\n211113,dog\n211114,cat\n211115,airplane\n211116,cat\n211117,cat\n211118,horse\n211119,frog\n211120,dog\n211121,airplane\n211122,frog\n211123,horse\n211124,horse\n211125,horse\n211126,cat\n211127,dog\n211128,dog\n211129,frog\n211130,frog\n211131,horse\n211132,airplane\n211133,horse\n211134,frog\n211135,deer\n211136,airplane\n211137,frog\n211138,bird\n211139,horse\n211140,deer\n211141,frog\n211142,bird\n211143,truck\n211144,frog\n211145,dog\n211146,ship\n211147,dog\n211148,frog\n211149,deer\n211150,deer\n211151,horse\n211152,horse\n211153,horse\n211154,truck\n211155,horse\n211156,horse\n211157,cat\n211158,automobile\n211159,truck\n211160,truck\n211161,airplane\n211162,truck\n211163,ship\n211164,deer\n211165,airplane\n211166,truck\n211167,dog\n211168,ship\n211169,dog\n211170,airplane\n211171,automobile\n211172,airplane\n211173,bird\n211174,truck\n211175,cat\n211176,bird\n211177,deer\n211178,truck\n211179,cat\n211180,automobile\n211181,airplane\n211182,automobile\n211183,frog\n211184,frog\n211185,horse\n211186,ship\n211187,dog\n211188,cat\n211189,ship\n211190,deer\n211191,truck\n211192,cat\n211193,cat\n211194,cat\n211195,bird\n211196,horse\n211197,deer\n211198,frog\n211199,horse\n211200,cat\n211201,dog\n211202,frog\n211203,frog\n211204,bird\n211205,frog\n211206,dog\n211207,cat\n211208,frog\n211209,frog\n211210,deer\n211211,frog\n211212,bird\n211213,horse\n211214,horse\n211215,deer\n211216,frog\n211217,deer\n211218,truck\n211219,horse\n211220,dog\n211221,horse\n211222,cat\n211223,horse\n211224,dog\n211225,automobile\n211226,truck\n211227,truck\n211228,horse\n211229,airplane\n211230,dog\n211231,bird\n211232,deer\n211233,dog\n211234,deer\n211235,bird\n211236,bird\n211237,horse\n211238,horse\n211239,cat\n211240,airplane\n211241,automobile\n211242,automobile\n211243,airplane\n211244,frog\n211245,deer\n211246,airplane\n211247,ship\n211248,truck\n211249,airplane\n211250,truck\n211251,frog\n211252,bird\n211253,dog\n211254,deer\n211255,truck\n211256,horse\n211257,horse\n211258,airplane\n211259,bird\n211260,cat\n211261,ship\n211262,truck\n211263,cat\n211264,truck\n211265,automobile\n211266,bird\n211267,cat\n211268,truck\n211269,bird\n211270,deer\n211271,dog\n211272,airplane\n211273,ship\n211274,frog\n211275,truck\n211276,deer\n211277,bird\n211278,frog\n211279,horse\n211280,airplane\n211281,bird\n211282,airplane\n211283,deer\n211284,airplane\n211285,ship\n211286,automobile\n211287,horse\n211288,horse\n211289,cat\n211290,deer\n211291,truck\n211292,frog\n211293,ship\n211294,frog\n211295,deer\n211296,deer\n211297,automobile\n211298,deer\n211299,airplane\n211300,dog\n211301,horse\n211302,airplane\n211303,deer\n211304,truck\n211305,automobile\n211306,horse\n211307,cat\n211308,deer\n211309,ship\n211310,truck\n211311,frog\n211312,ship\n211313,ship\n211314,truck\n211315,frog\n211316,ship\n211317,automobile\n211318,ship\n211319,airplane\n211320,horse\n211321,dog\n211322,horse\n211323,airplane\n211324,cat\n211325,airplane\n211326,frog\n211327,airplane\n211328,ship\n211329,airplane\n211330,deer\n211331,horse\n211332,horse\n211333,truck\n211334,frog\n211335,ship\n211336,bird\n211337,airplane\n211338,dog\n211339,frog\n211340,dog\n211341,cat\n211342,truck\n211343,frog\n211344,deer\n211345,truck\n211346,frog\n211347,truck\n211348,horse\n211349,cat\n211350,frog\n211351,cat\n211352,airplane\n211353,deer\n211354,frog\n211355,dog\n211356,bird\n211357,frog\n211358,airplane\n211359,deer\n211360,ship\n211361,deer\n211362,airplane\n211363,deer\n211364,cat\n211365,frog\n211366,truck\n211367,deer\n211368,airplane\n211369,automobile\n211370,airplane\n211371,truck\n211372,horse\n211373,deer\n211374,bird\n211375,frog\n211376,truck\n211377,deer\n211378,airplane\n211379,cat\n211380,automobile\n211381,deer\n211382,frog\n211383,automobile\n211384,deer\n211385,cat\n211386,airplane\n211387,horse\n211388,automobile\n211389,deer\n211390,horse\n211391,ship\n211392,truck\n211393,airplane\n211394,deer\n211395,ship\n211396,cat\n211397,cat\n211398,ship\n211399,cat\n211400,cat\n211401,truck\n211402,cat\n211403,frog\n211404,horse\n211405,frog\n211406,truck\n211407,automobile\n211408,airplane\n211409,deer\n211410,dog\n211411,automobile\n211412,deer\n211413,truck\n211414,horse\n211415,airplane\n211416,frog\n211417,ship\n211418,cat\n211419,dog\n211420,ship\n211421,frog\n211422,cat\n211423,automobile\n211424,frog\n211425,horse\n211426,cat\n211427,airplane\n211428,deer\n211429,horse\n211430,horse\n211431,automobile\n211432,deer\n211433,deer\n211434,cat\n211435,dog\n211436,automobile\n211437,frog\n211438,ship\n211439,deer\n211440,dog\n211441,ship\n211442,cat\n211443,bird\n211444,automobile\n211445,truck\n211446,frog\n211447,dog\n211448,truck\n211449,ship\n211450,airplane\n211451,deer\n211452,frog\n211453,truck\n211454,frog\n211455,horse\n211456,horse\n211457,dog\n211458,horse\n211459,dog\n211460,bird\n211461,deer\n211462,cat\n211463,dog\n211464,truck\n211465,automobile\n211466,truck\n211467,bird\n211468,horse\n211469,truck\n211470,bird\n211471,deer\n211472,deer\n211473,horse\n211474,ship\n211475,dog\n211476,deer\n211477,truck\n211478,horse\n211479,airplane\n211480,frog\n211481,deer\n211482,dog\n211483,truck\n211484,airplane\n211485,frog\n211486,frog\n211487,automobile\n211488,bird\n211489,dog\n211490,airplane\n211491,cat\n211492,deer\n211493,airplane\n211494,automobile\n211495,ship\n211496,dog\n211497,horse\n211498,cat\n211499,frog\n211500,horse\n211501,automobile\n211502,deer\n211503,airplane\n211504,deer\n211505,deer\n211506,automobile\n211507,airplane\n211508,cat\n211509,automobile\n211510,truck\n211511,cat\n211512,deer\n211513,deer\n211514,automobile\n211515,deer\n211516,horse\n211517,frog\n211518,automobile\n211519,cat\n211520,bird\n211521,truck\n211522,frog\n211523,deer\n211524,horse\n211525,airplane\n211526,automobile\n211527,airplane\n211528,deer\n211529,cat\n211530,ship\n211531,deer\n211532,cat\n211533,dog\n211534,airplane\n211535,ship\n211536,cat\n211537,cat\n211538,bird\n211539,horse\n211540,automobile\n211541,cat\n211542,cat\n211543,automobile\n211544,cat\n211545,deer\n211546,automobile\n211547,cat\n211548,deer\n211549,airplane\n211550,automobile\n211551,deer\n211552,dog\n211553,ship\n211554,ship\n211555,horse\n211556,truck\n211557,ship\n211558,cat\n211559,airplane\n211560,airplane\n211561,dog\n211562,deer\n211563,dog\n211564,frog\n211565,truck\n211566,dog\n211567,horse\n211568,cat\n211569,truck\n211570,automobile\n211571,deer\n211572,bird\n211573,truck\n211574,deer\n211575,airplane\n211576,cat\n211577,deer\n211578,deer\n211579,bird\n211580,truck\n211581,horse\n211582,truck\n211583,airplane\n211584,cat\n211585,automobile\n211586,deer\n211587,deer\n211588,cat\n211589,ship\n211590,bird\n211591,dog\n211592,deer\n211593,cat\n211594,truck\n211595,ship\n211596,ship\n211597,dog\n211598,deer\n211599,horse\n211600,horse\n211601,ship\n211602,frog\n211603,deer\n211604,truck\n211605,automobile\n211606,truck\n211607,bird\n211608,cat\n211609,horse\n211610,frog\n211611,deer\n211612,deer\n211613,truck\n211614,truck\n211615,horse\n211616,ship\n211617,bird\n211618,automobile\n211619,deer\n211620,dog\n211621,bird\n211622,deer\n211623,frog\n211624,dog\n211625,deer\n211626,ship\n211627,cat\n211628,deer\n211629,deer\n211630,deer\n211631,deer\n211632,bird\n211633,horse\n211634,deer\n211635,bird\n211636,deer\n211637,bird\n211638,automobile\n211639,automobile\n211640,automobile\n211641,bird\n211642,horse\n211643,deer\n211644,bird\n211645,bird\n211646,cat\n211647,ship\n211648,frog\n211649,automobile\n211650,horse\n211651,frog\n211652,deer\n211653,horse\n211654,airplane\n211655,horse\n211656,horse\n211657,horse\n211658,horse\n211659,deer\n211660,truck\n211661,cat\n211662,automobile\n211663,truck\n211664,truck\n211665,dog\n211666,deer\n211667,bird\n211668,cat\n211669,airplane\n211670,dog\n211671,bird\n211672,frog\n211673,deer\n211674,truck\n211675,dog\n211676,airplane\n211677,frog\n211678,ship\n211679,horse\n211680,airplane\n211681,dog\n211682,automobile\n211683,cat\n211684,horse\n211685,dog\n211686,airplane\n211687,truck\n211688,deer\n211689,airplane\n211690,deer\n211691,dog\n211692,airplane\n211693,airplane\n211694,truck\n211695,ship\n211696,dog\n211697,deer\n211698,truck\n211699,dog\n211700,horse\n211701,dog\n211702,cat\n211703,cat\n211704,frog\n211705,dog\n211706,truck\n211707,cat\n211708,bird\n211709,dog\n211710,horse\n211711,ship\n211712,bird\n211713,dog\n211714,automobile\n211715,ship\n211716,airplane\n211717,automobile\n211718,cat\n211719,dog\n211720,truck\n211721,ship\n211722,bird\n211723,airplane\n211724,dog\n211725,dog\n211726,frog\n211727,frog\n211728,bird\n211729,frog\n211730,truck\n211731,deer\n211732,cat\n211733,frog\n211734,cat\n211735,dog\n211736,deer\n211737,dog\n211738,automobile\n211739,cat\n211740,ship\n211741,truck\n211742,frog\n211743,cat\n211744,cat\n211745,bird\n211746,airplane\n211747,horse\n211748,cat\n211749,bird\n211750,frog\n211751,cat\n211752,dog\n211753,frog\n211754,deer\n211755,cat\n211756,frog\n211757,automobile\n211758,deer\n211759,truck\n211760,frog\n211761,cat\n211762,deer\n211763,dog\n211764,deer\n211765,horse\n211766,ship\n211767,horse\n211768,deer\n211769,bird\n211770,truck\n211771,cat\n211772,deer\n211773,deer\n211774,bird\n211775,horse\n211776,cat\n211777,deer\n211778,ship\n211779,airplane\n211780,cat\n211781,ship\n211782,horse\n211783,truck\n211784,deer\n211785,horse\n211786,frog\n211787,ship\n211788,horse\n211789,airplane\n211790,frog\n211791,cat\n211792,ship\n211793,dog\n211794,deer\n211795,cat\n211796,cat\n211797,cat\n211798,automobile\n211799,frog\n211800,ship\n211801,airplane\n211802,cat\n211803,dog\n211804,cat\n211805,truck\n211806,cat\n211807,automobile\n211808,automobile\n211809,ship\n211810,frog\n211811,dog\n211812,airplane\n211813,ship\n211814,cat\n211815,deer\n211816,automobile\n211817,truck\n211818,automobile\n211819,frog\n211820,cat\n211821,dog\n211822,dog\n211823,horse\n211824,deer\n211825,truck\n211826,dog\n211827,automobile\n211828,ship\n211829,frog\n211830,cat\n211831,dog\n211832,automobile\n211833,truck\n211834,truck\n211835,horse\n211836,frog\n211837,frog\n211838,automobile\n211839,bird\n211840,cat\n211841,deer\n211842,bird\n211843,ship\n211844,dog\n211845,deer\n211846,deer\n211847,deer\n211848,deer\n211849,automobile\n211850,ship\n211851,automobile\n211852,deer\n211853,bird\n211854,deer\n211855,truck\n211856,airplane\n211857,horse\n211858,cat\n211859,cat\n211860,horse\n211861,truck\n211862,horse\n211863,horse\n211864,dog\n211865,ship\n211866,truck\n211867,ship\n211868,airplane\n211869,cat\n211870,frog\n211871,automobile\n211872,truck\n211873,horse\n211874,airplane\n211875,horse\n211876,truck\n211877,deer\n211878,airplane\n211879,deer\n211880,deer\n211881,truck\n211882,deer\n211883,airplane\n211884,truck\n211885,deer\n211886,bird\n211887,cat\n211888,deer\n211889,bird\n211890,frog\n211891,automobile\n211892,truck\n211893,frog\n211894,truck\n211895,deer\n211896,deer\n211897,dog\n211898,dog\n211899,frog\n211900,airplane\n211901,airplane\n211902,airplane\n211903,frog\n211904,deer\n211905,deer\n211906,deer\n211907,airplane\n211908,cat\n211909,truck\n211910,deer\n211911,cat\n211912,automobile\n211913,automobile\n211914,cat\n211915,truck\n211916,frog\n211917,dog\n211918,dog\n211919,automobile\n211920,airplane\n211921,frog\n211922,dog\n211923,airplane\n211924,airplane\n211925,frog\n211926,horse\n211927,dog\n211928,airplane\n211929,cat\n211930,automobile\n211931,automobile\n211932,deer\n211933,bird\n211934,bird\n211935,deer\n211936,deer\n211937,ship\n211938,ship\n211939,cat\n211940,horse\n211941,deer\n211942,cat\n211943,deer\n211944,cat\n211945,deer\n211946,deer\n211947,horse\n211948,deer\n211949,bird\n211950,truck\n211951,bird\n211952,dog\n211953,horse\n211954,truck\n211955,horse\n211956,deer\n211957,automobile\n211958,ship\n211959,deer\n211960,dog\n211961,automobile\n211962,truck\n211963,deer\n211964,dog\n211965,ship\n211966,ship\n211967,deer\n211968,deer\n211969,dog\n211970,cat\n211971,dog\n211972,airplane\n211973,frog\n211974,bird\n211975,bird\n211976,ship\n211977,ship\n211978,deer\n211979,automobile\n211980,frog\n211981,deer\n211982,automobile\n211983,cat\n211984,truck\n211985,frog\n211986,ship\n211987,frog\n211988,deer\n211989,truck\n211990,airplane\n211991,dog\n211992,truck\n211993,cat\n211994,bird\n211995,cat\n211996,cat\n211997,deer\n211998,truck\n211999,deer\n212000,truck\n212001,frog\n212002,airplane\n212003,dog\n212004,deer\n212005,frog\n212006,cat\n212007,dog\n212008,bird\n212009,ship\n212010,automobile\n212011,airplane\n212012,cat\n212013,frog\n212014,deer\n212015,airplane\n212016,deer\n212017,cat\n212018,ship\n212019,bird\n212020,dog\n212021,frog\n212022,dog\n212023,bird\n212024,airplane\n212025,bird\n212026,horse\n212027,horse\n212028,cat\n212029,airplane\n212030,bird\n212031,bird\n212032,horse\n212033,bird\n212034,cat\n212035,truck\n212036,frog\n212037,dog\n212038,bird\n212039,truck\n212040,bird\n212041,bird\n212042,horse\n212043,cat\n212044,cat\n212045,bird\n212046,bird\n212047,automobile\n212048,truck\n212049,airplane\n212050,horse\n212051,dog\n212052,automobile\n212053,cat\n212054,ship\n212055,horse\n212056,deer\n212057,frog\n212058,automobile\n212059,dog\n212060,bird\n212061,deer\n212062,cat\n212063,dog\n212064,truck\n212065,cat\n212066,cat\n212067,dog\n212068,deer\n212069,cat\n212070,frog\n212071,truck\n212072,cat\n212073,truck\n212074,dog\n212075,automobile\n212076,cat\n212077,airplane\n212078,dog\n212079,automobile\n212080,deer\n212081,airplane\n212082,cat\n212083,ship\n212084,truck\n212085,dog\n212086,deer\n212087,ship\n212088,horse\n212089,horse\n212090,dog\n212091,frog\n212092,horse\n212093,deer\n212094,dog\n212095,frog\n212096,airplane\n212097,airplane\n212098,dog\n212099,cat\n212100,automobile\n212101,truck\n212102,frog\n212103,dog\n212104,deer\n212105,deer\n212106,ship\n212107,bird\n212108,frog\n212109,cat\n212110,horse\n212111,dog\n212112,ship\n212113,ship\n212114,airplane\n212115,deer\n212116,automobile\n212117,horse\n212118,bird\n212119,ship\n212120,airplane\n212121,bird\n212122,horse\n212123,ship\n212124,cat\n212125,deer\n212126,bird\n212127,dog\n212128,cat\n212129,airplane\n212130,airplane\n212131,cat\n212132,truck\n212133,horse\n212134,cat\n212135,horse\n212136,dog\n212137,airplane\n212138,truck\n212139,cat\n212140,dog\n212141,dog\n212142,bird\n212143,frog\n212144,automobile\n212145,cat\n212146,cat\n212147,deer\n212148,automobile\n212149,horse\n212150,ship\n212151,dog\n212152,cat\n212153,frog\n212154,horse\n212155,dog\n212156,ship\n212157,airplane\n212158,airplane\n212159,bird\n212160,airplane\n212161,horse\n212162,dog\n212163,horse\n212164,ship\n212165,truck\n212166,cat\n212167,horse\n212168,airplane\n212169,truck\n212170,truck\n212171,ship\n212172,bird\n212173,airplane\n212174,dog\n212175,deer\n212176,airplane\n212177,frog\n212178,cat\n212179,dog\n212180,horse\n212181,deer\n212182,cat\n212183,automobile\n212184,truck\n212185,ship\n212186,dog\n212187,airplane\n212188,airplane\n212189,truck\n212190,cat\n212191,deer\n212192,deer\n212193,deer\n212194,cat\n212195,cat\n212196,truck\n212197,automobile\n212198,automobile\n212199,automobile\n212200,truck\n212201,deer\n212202,dog\n212203,ship\n212204,deer\n212205,cat\n212206,bird\n212207,bird\n212208,frog\n212209,deer\n212210,deer\n212211,truck\n212212,frog\n212213,cat\n212214,ship\n212215,airplane\n212216,airplane\n212217,airplane\n212218,airplane\n212219,deer\n212220,ship\n212221,ship\n212222,automobile\n212223,airplane\n212224,dog\n212225,truck\n212226,bird\n212227,cat\n212228,bird\n212229,dog\n212230,ship\n212231,cat\n212232,cat\n212233,ship\n212234,horse\n212235,deer\n212236,dog\n212237,cat\n212238,cat\n212239,deer\n212240,frog\n212241,bird\n212242,deer\n212243,truck\n212244,frog\n212245,ship\n212246,dog\n212247,horse\n212248,frog\n212249,ship\n212250,frog\n212251,automobile\n212252,deer\n212253,automobile\n212254,automobile\n212255,deer\n212256,ship\n212257,horse\n212258,ship\n212259,airplane\n212260,dog\n212261,airplane\n212262,cat\n212263,frog\n212264,truck\n212265,airplane\n212266,dog\n212267,cat\n212268,truck\n212269,airplane\n212270,truck\n212271,automobile\n212272,airplane\n212273,cat\n212274,cat\n212275,automobile\n212276,horse\n212277,bird\n212278,frog\n212279,deer\n212280,cat\n212281,cat\n212282,ship\n212283,ship\n212284,truck\n212285,cat\n212286,frog\n212287,horse\n212288,cat\n212289,bird\n212290,cat\n212291,cat\n212292,ship\n212293,dog\n212294,truck\n212295,horse\n212296,deer\n212297,bird\n212298,cat\n212299,ship\n212300,frog\n212301,horse\n212302,horse\n212303,truck\n212304,airplane\n212305,airplane\n212306,ship\n212307,cat\n212308,cat\n212309,dog\n212310,deer\n212311,ship\n212312,deer\n212313,deer\n212314,dog\n212315,frog\n212316,frog\n212317,frog\n212318,deer\n212319,bird\n212320,frog\n212321,cat\n212322,automobile\n212323,ship\n212324,horse\n212325,airplane\n212326,ship\n212327,ship\n212328,automobile\n212329,cat\n212330,deer\n212331,bird\n212332,dog\n212333,ship\n212334,truck\n212335,truck\n212336,cat\n212337,automobile\n212338,horse\n212339,dog\n212340,ship\n212341,ship\n212342,horse\n212343,deer\n212344,frog\n212345,bird\n212346,bird\n212347,dog\n212348,horse\n212349,ship\n212350,ship\n212351,airplane\n212352,bird\n212353,ship\n212354,truck\n212355,ship\n212356,ship\n212357,horse\n212358,truck\n212359,truck\n212360,horse\n212361,dog\n212362,frog\n212363,frog\n212364,truck\n212365,airplane\n212366,truck\n212367,truck\n212368,cat\n212369,ship\n212370,deer\n212371,horse\n212372,airplane\n212373,cat\n212374,automobile\n212375,dog\n212376,frog\n212377,horse\n212378,ship\n212379,cat\n212380,automobile\n212381,frog\n212382,frog\n212383,cat\n212384,truck\n212385,horse\n212386,frog\n212387,bird\n212388,automobile\n212389,cat\n212390,cat\n212391,bird\n212392,truck\n212393,frog\n212394,ship\n212395,deer\n212396,cat\n212397,frog\n212398,bird\n212399,truck\n212400,cat\n212401,frog\n212402,truck\n212403,automobile\n212404,ship\n212405,bird\n212406,frog\n212407,deer\n212408,deer\n212409,ship\n212410,deer\n212411,dog\n212412,ship\n212413,cat\n212414,dog\n212415,cat\n212416,deer\n212417,dog\n212418,deer\n212419,bird\n212420,frog\n212421,airplane\n212422,ship\n212423,bird\n212424,ship\n212425,bird\n212426,bird\n212427,truck\n212428,frog\n212429,airplane\n212430,bird\n212431,dog\n212432,truck\n212433,automobile\n212434,deer\n212435,deer\n212436,deer\n212437,deer\n212438,cat\n212439,deer\n212440,deer\n212441,frog\n212442,horse\n212443,dog\n212444,truck\n212445,cat\n212446,airplane\n212447,cat\n212448,dog\n212449,cat\n212450,cat\n212451,dog\n212452,ship\n212453,horse\n212454,deer\n212455,automobile\n212456,frog\n212457,frog\n212458,bird\n212459,cat\n212460,horse\n212461,truck\n212462,frog\n212463,cat\n212464,truck\n212465,airplane\n212466,dog\n212467,bird\n212468,horse\n212469,deer\n212470,truck\n212471,cat\n212472,dog\n212473,ship\n212474,cat\n212475,airplane\n212476,cat\n212477,truck\n212478,truck\n212479,dog\n212480,automobile\n212481,horse\n212482,deer\n212483,dog\n212484,frog\n212485,ship\n212486,horse\n212487,bird\n212488,bird\n212489,frog\n212490,dog\n212491,truck\n212492,frog\n212493,frog\n212494,horse\n212495,deer\n212496,cat\n212497,bird\n212498,frog\n212499,truck\n212500,frog\n212501,dog\n212502,deer\n212503,deer\n212504,airplane\n212505,horse\n212506,deer\n212507,truck\n212508,dog\n212509,horse\n212510,deer\n212511,ship\n212512,frog\n212513,frog\n212514,frog\n212515,ship\n212516,dog\n212517,ship\n212518,truck\n212519,deer\n212520,truck\n212521,horse\n212522,ship\n212523,dog\n212524,automobile\n212525,automobile\n212526,truck\n212527,deer\n212528,deer\n212529,truck\n212530,truck\n212531,ship\n212532,truck\n212533,cat\n212534,bird\n212535,truck\n212536,ship\n212537,truck\n212538,truck\n212539,cat\n212540,frog\n212541,cat\n212542,horse\n212543,airplane\n212544,deer\n212545,frog\n212546,frog\n212547,deer\n212548,cat\n212549,frog\n212550,automobile\n212551,deer\n212552,cat\n212553,airplane\n212554,automobile\n212555,cat\n212556,cat\n212557,horse\n212558,ship\n212559,truck\n212560,bird\n212561,horse\n212562,dog\n212563,frog\n212564,deer\n212565,cat\n212566,bird\n212567,bird\n212568,bird\n212569,dog\n212570,airplane\n212571,frog\n212572,cat\n212573,frog\n212574,truck\n212575,bird\n212576,truck\n212577,frog\n212578,frog\n212579,deer\n212580,airplane\n212581,frog\n212582,horse\n212583,bird\n212584,truck\n212585,frog\n212586,frog\n212587,automobile\n212588,deer\n212589,cat\n212590,bird\n212591,automobile\n212592,cat\n212593,ship\n212594,horse\n212595,deer\n212596,deer\n212597,truck\n212598,truck\n212599,cat\n212600,dog\n212601,horse\n212602,cat\n212603,deer\n212604,truck\n212605,bird\n212606,deer\n212607,bird\n212608,frog\n212609,dog\n212610,truck\n212611,airplane\n212612,deer\n212613,automobile\n212614,truck\n212615,cat\n212616,ship\n212617,cat\n212618,airplane\n212619,airplane\n212620,deer\n212621,truck\n212622,frog\n212623,frog\n212624,deer\n212625,dog\n212626,horse\n212627,truck\n212628,ship\n212629,ship\n212630,bird\n212631,deer\n212632,frog\n212633,frog\n212634,horse\n212635,airplane\n212636,automobile\n212637,ship\n212638,deer\n212639,ship\n212640,truck\n212641,automobile\n212642,bird\n212643,dog\n212644,cat\n212645,ship\n212646,cat\n212647,horse\n212648,automobile\n212649,airplane\n212650,ship\n212651,bird\n212652,truck\n212653,deer\n212654,frog\n212655,automobile\n212656,truck\n212657,deer\n212658,airplane\n212659,frog\n212660,truck\n212661,deer\n212662,ship\n212663,deer\n212664,horse\n212665,ship\n212666,frog\n212667,truck\n212668,bird\n212669,truck\n212670,deer\n212671,cat\n212672,horse\n212673,cat\n212674,deer\n212675,ship\n212676,bird\n212677,deer\n212678,airplane\n212679,dog\n212680,frog\n212681,automobile\n212682,horse\n212683,automobile\n212684,automobile\n212685,cat\n212686,bird\n212687,truck\n212688,automobile\n212689,ship\n212690,dog\n212691,deer\n212692,dog\n212693,cat\n212694,airplane\n212695,automobile\n212696,airplane\n212697,bird\n212698,horse\n212699,bird\n212700,bird\n212701,airplane\n212702,deer\n212703,horse\n212704,dog\n212705,ship\n212706,truck\n212707,truck\n212708,frog\n212709,bird\n212710,deer\n212711,cat\n212712,cat\n212713,deer\n212714,cat\n212715,airplane\n212716,cat\n212717,dog\n212718,frog\n212719,automobile\n212720,airplane\n212721,dog\n212722,frog\n212723,automobile\n212724,dog\n212725,airplane\n212726,deer\n212727,automobile\n212728,airplane\n212729,airplane\n212730,ship\n212731,airplane\n212732,dog\n212733,dog\n212734,horse\n212735,cat\n212736,cat\n212737,deer\n212738,dog\n212739,cat\n212740,cat\n212741,horse\n212742,horse\n212743,frog\n212744,bird\n212745,deer\n212746,dog\n212747,frog\n212748,deer\n212749,automobile\n212750,ship\n212751,dog\n212752,frog\n212753,cat\n212754,cat\n212755,dog\n212756,truck\n212757,horse\n212758,dog\n212759,frog\n212760,ship\n212761,dog\n212762,deer\n212763,deer\n212764,bird\n212765,deer\n212766,deer\n212767,truck\n212768,ship\n212769,frog\n212770,frog\n212771,deer\n212772,dog\n212773,ship\n212774,bird\n212775,dog\n212776,truck\n212777,deer\n212778,horse\n212779,truck\n212780,bird\n212781,bird\n212782,cat\n212783,airplane\n212784,cat\n212785,deer\n212786,deer\n212787,dog\n212788,horse\n212789,dog\n212790,horse\n212791,dog\n212792,dog\n212793,dog\n212794,dog\n212795,dog\n212796,deer\n212797,cat\n212798,horse\n212799,bird\n212800,dog\n212801,bird\n212802,bird\n212803,deer\n212804,bird\n212805,horse\n212806,deer\n212807,bird\n212808,ship\n212809,cat\n212810,automobile\n212811,automobile\n212812,frog\n212813,deer\n212814,deer\n212815,cat\n212816,automobile\n212817,ship\n212818,deer\n212819,cat\n212820,ship\n212821,frog\n212822,frog\n212823,deer\n212824,dog\n212825,cat\n212826,automobile\n212827,cat\n212828,airplane\n212829,bird\n212830,cat\n212831,frog\n212832,cat\n212833,deer\n212834,ship\n212835,horse\n212836,airplane\n212837,dog\n212838,frog\n212839,truck\n212840,frog\n212841,cat\n212842,bird\n212843,horse\n212844,deer\n212845,truck\n212846,dog\n212847,bird\n212848,dog\n212849,automobile\n212850,ship\n212851,cat\n212852,deer\n212853,deer\n212854,frog\n212855,airplane\n212856,cat\n212857,deer\n212858,frog\n212859,cat\n212860,cat\n212861,truck\n212862,horse\n212863,deer\n212864,cat\n212865,bird\n212866,ship\n212867,automobile\n212868,frog\n212869,airplane\n212870,airplane\n212871,deer\n212872,deer\n212873,truck\n212874,bird\n212875,frog\n212876,bird\n212877,bird\n212878,deer\n212879,horse\n212880,ship\n212881,horse\n212882,deer\n212883,cat\n212884,bird\n212885,frog\n212886,truck\n212887,dog\n212888,cat\n212889,bird\n212890,frog\n212891,horse\n212892,horse\n212893,bird\n212894,horse\n212895,deer\n212896,dog\n212897,bird\n212898,dog\n212899,bird\n212900,cat\n212901,frog\n212902,bird\n212903,bird\n212904,frog\n212905,truck\n212906,frog\n212907,truck\n212908,deer\n212909,automobile\n212910,horse\n212911,truck\n212912,ship\n212913,dog\n212914,cat\n212915,automobile\n212916,deer\n212917,cat\n212918,frog\n212919,cat\n212920,truck\n212921,ship\n212922,frog\n212923,airplane\n212924,frog\n212925,horse\n212926,cat\n212927,frog\n212928,horse\n212929,ship\n212930,automobile\n212931,deer\n212932,airplane\n212933,cat\n212934,dog\n212935,frog\n212936,truck\n212937,bird\n212938,airplane\n212939,deer\n212940,cat\n212941,bird\n212942,deer\n212943,deer\n212944,truck\n212945,automobile\n212946,automobile\n212947,truck\n212948,deer\n212949,airplane\n212950,dog\n212951,horse\n212952,truck\n212953,truck\n212954,dog\n212955,deer\n212956,ship\n212957,bird\n212958,horse\n212959,bird\n212960,truck\n212961,ship\n212962,horse\n212963,dog\n212964,bird\n212965,deer\n212966,deer\n212967,bird\n212968,frog\n212969,frog\n212970,frog\n212971,cat\n212972,deer\n212973,deer\n212974,truck\n212975,truck\n212976,ship\n212977,dog\n212978,truck\n212979,automobile\n212980,truck\n212981,cat\n212982,truck\n212983,ship\n212984,frog\n212985,deer\n212986,deer\n212987,frog\n212988,automobile\n212989,airplane\n212990,airplane\n212991,frog\n212992,cat\n212993,airplane\n212994,cat\n212995,horse\n212996,deer\n212997,deer\n212998,ship\n212999,deer\n213000,deer\n213001,ship\n213002,horse\n213003,airplane\n213004,deer\n213005,horse\n213006,dog\n213007,cat\n213008,horse\n213009,truck\n213010,ship\n213011,frog\n213012,deer\n213013,dog\n213014,deer\n213015,frog\n213016,frog\n213017,airplane\n213018,airplane\n213019,truck\n213020,cat\n213021,deer\n213022,horse\n213023,deer\n213024,horse\n213025,automobile\n213026,truck\n213027,cat\n213028,ship\n213029,cat\n213030,truck\n213031,ship\n213032,dog\n213033,airplane\n213034,frog\n213035,ship\n213036,dog\n213037,truck\n213038,bird\n213039,automobile\n213040,frog\n213041,truck\n213042,airplane\n213043,cat\n213044,bird\n213045,truck\n213046,bird\n213047,ship\n213048,dog\n213049,airplane\n213050,deer\n213051,deer\n213052,deer\n213053,horse\n213054,deer\n213055,cat\n213056,ship\n213057,ship\n213058,truck\n213059,deer\n213060,cat\n213061,ship\n213062,deer\n213063,truck\n213064,deer\n213065,deer\n213066,automobile\n213067,deer\n213068,dog\n213069,horse\n213070,deer\n213071,deer\n213072,cat\n213073,horse\n213074,horse\n213075,bird\n213076,frog\n213077,deer\n213078,airplane\n213079,frog\n213080,dog\n213081,frog\n213082,frog\n213083,automobile\n213084,truck\n213085,cat\n213086,frog\n213087,horse\n213088,ship\n213089,automobile\n213090,deer\n213091,airplane\n213092,ship\n213093,cat\n213094,dog\n213095,deer\n213096,cat\n213097,airplane\n213098,dog\n213099,horse\n213100,ship\n213101,truck\n213102,frog\n213103,airplane\n213104,truck\n213105,ship\n213106,airplane\n213107,airplane\n213108,bird\n213109,cat\n213110,frog\n213111,truck\n213112,truck\n213113,horse\n213114,ship\n213115,horse\n213116,cat\n213117,airplane\n213118,frog\n213119,truck\n213120,deer\n213121,truck\n213122,cat\n213123,deer\n213124,bird\n213125,truck\n213126,horse\n213127,automobile\n213128,frog\n213129,cat\n213130,horse\n213131,deer\n213132,ship\n213133,truck\n213134,horse\n213135,horse\n213136,frog\n213137,cat\n213138,horse\n213139,bird\n213140,cat\n213141,airplane\n213142,ship\n213143,bird\n213144,truck\n213145,cat\n213146,deer\n213147,deer\n213148,truck\n213149,ship\n213150,automobile\n213151,truck\n213152,horse\n213153,dog\n213154,airplane\n213155,dog\n213156,bird\n213157,airplane\n213158,automobile\n213159,frog\n213160,deer\n213161,airplane\n213162,airplane\n213163,automobile\n213164,cat\n213165,truck\n213166,airplane\n213167,ship\n213168,automobile\n213169,bird\n213170,deer\n213171,dog\n213172,dog\n213173,bird\n213174,frog\n213175,horse\n213176,horse\n213177,deer\n213178,frog\n213179,frog\n213180,frog\n213181,cat\n213182,automobile\n213183,horse\n213184,automobile\n213185,airplane\n213186,cat\n213187,deer\n213188,bird\n213189,cat\n213190,ship\n213191,ship\n213192,frog\n213193,deer\n213194,deer\n213195,truck\n213196,frog\n213197,bird\n213198,frog\n213199,dog\n213200,cat\n213201,frog\n213202,horse\n213203,deer\n213204,truck\n213205,deer\n213206,dog\n213207,bird\n213208,automobile\n213209,frog\n213210,frog\n213211,frog\n213212,truck\n213213,bird\n213214,ship\n213215,cat\n213216,dog\n213217,frog\n213218,airplane\n213219,airplane\n213220,horse\n213221,cat\n213222,deer\n213223,deer\n213224,cat\n213225,frog\n213226,airplane\n213227,automobile\n213228,automobile\n213229,dog\n213230,deer\n213231,dog\n213232,frog\n213233,bird\n213234,cat\n213235,ship\n213236,frog\n213237,deer\n213238,horse\n213239,cat\n213240,bird\n213241,horse\n213242,dog\n213243,horse\n213244,horse\n213245,airplane\n213246,dog\n213247,automobile\n213248,truck\n213249,ship\n213250,automobile\n213251,frog\n213252,deer\n213253,cat\n213254,cat\n213255,deer\n213256,bird\n213257,dog\n213258,dog\n213259,airplane\n213260,deer\n213261,horse\n213262,ship\n213263,frog\n213264,cat\n213265,cat\n213266,airplane\n213267,ship\n213268,ship\n213269,airplane\n213270,truck\n213271,frog\n213272,bird\n213273,truck\n213274,cat\n213275,truck\n213276,automobile\n213277,deer\n213278,deer\n213279,cat\n213280,cat\n213281,frog\n213282,cat\n213283,deer\n213284,airplane\n213285,deer\n213286,airplane\n213287,horse\n213288,cat\n213289,truck\n213290,cat\n213291,horse\n213292,bird\n213293,dog\n213294,dog\n213295,deer\n213296,dog\n213297,frog\n213298,cat\n213299,dog\n213300,dog\n213301,deer\n213302,airplane\n213303,cat\n213304,automobile\n213305,ship\n213306,cat\n213307,truck\n213308,deer\n213309,dog\n213310,automobile\n213311,frog\n213312,truck\n213313,airplane\n213314,automobile\n213315,cat\n213316,deer\n213317,ship\n213318,cat\n213319,deer\n213320,frog\n213321,deer\n213322,dog\n213323,dog\n213324,horse\n213325,automobile\n213326,dog\n213327,deer\n213328,deer\n213329,deer\n213330,truck\n213331,deer\n213332,deer\n213333,cat\n213334,truck\n213335,automobile\n213336,bird\n213337,dog\n213338,airplane\n213339,ship\n213340,ship\n213341,automobile\n213342,automobile\n213343,airplane\n213344,dog\n213345,ship\n213346,deer\n213347,dog\n213348,truck\n213349,cat\n213350,airplane\n213351,airplane\n213352,truck\n213353,automobile\n213354,automobile\n213355,cat\n213356,deer\n213357,bird\n213358,ship\n213359,frog\n213360,horse\n213361,airplane\n213362,bird\n213363,ship\n213364,truck\n213365,bird\n213366,frog\n213367,deer\n213368,bird\n213369,frog\n213370,truck\n213371,ship\n213372,dog\n213373,cat\n213374,cat\n213375,frog\n213376,dog\n213377,deer\n213378,truck\n213379,horse\n213380,ship\n213381,bird\n213382,frog\n213383,cat\n213384,dog\n213385,cat\n213386,frog\n213387,airplane\n213388,truck\n213389,ship\n213390,automobile\n213391,frog\n213392,frog\n213393,horse\n213394,frog\n213395,automobile\n213396,dog\n213397,cat\n213398,bird\n213399,truck\n213400,bird\n213401,automobile\n213402,bird\n213403,bird\n213404,horse\n213405,truck\n213406,cat\n213407,dog\n213408,ship\n213409,deer\n213410,airplane\n213411,bird\n213412,horse\n213413,truck\n213414,deer\n213415,cat\n213416,frog\n213417,bird\n213418,ship\n213419,dog\n213420,truck\n213421,truck\n213422,truck\n213423,horse\n213424,truck\n213425,bird\n213426,deer\n213427,dog\n213428,cat\n213429,horse\n213430,cat\n213431,horse\n213432,dog\n213433,ship\n213434,automobile\n213435,cat\n213436,automobile\n213437,deer\n213438,truck\n213439,bird\n213440,deer\n213441,truck\n213442,cat\n213443,horse\n213444,truck\n213445,frog\n213446,truck\n213447,truck\n213448,deer\n213449,deer\n213450,horse\n213451,deer\n213452,horse\n213453,deer\n213454,horse\n213455,automobile\n213456,cat\n213457,frog\n213458,dog\n213459,horse\n213460,dog\n213461,airplane\n213462,ship\n213463,bird\n213464,automobile\n213465,deer\n213466,frog\n213467,bird\n213468,truck\n213469,deer\n213470,bird\n213471,ship\n213472,truck\n213473,ship\n213474,cat\n213475,automobile\n213476,bird\n213477,horse\n213478,truck\n213479,truck\n213480,airplane\n213481,truck\n213482,ship\n213483,dog\n213484,truck\n213485,truck\n213486,frog\n213487,horse\n213488,deer\n213489,deer\n213490,deer\n213491,truck\n213492,frog\n213493,bird\n213494,truck\n213495,frog\n213496,frog\n213497,truck\n213498,ship\n213499,airplane\n213500,frog\n213501,horse\n213502,dog\n213503,dog\n213504,cat\n213505,frog\n213506,truck\n213507,dog\n213508,frog\n213509,cat\n213510,automobile\n213511,bird\n213512,dog\n213513,airplane\n213514,cat\n213515,frog\n213516,horse\n213517,frog\n213518,bird\n213519,cat\n213520,deer\n213521,horse\n213522,horse\n213523,cat\n213524,frog\n213525,automobile\n213526,automobile\n213527,horse\n213528,frog\n213529,dog\n213530,deer\n213531,horse\n213532,deer\n213533,airplane\n213534,automobile\n213535,truck\n213536,bird\n213537,ship\n213538,ship\n213539,truck\n213540,truck\n213541,truck\n213542,bird\n213543,deer\n213544,dog\n213545,truck\n213546,frog\n213547,airplane\n213548,automobile\n213549,ship\n213550,ship\n213551,automobile\n213552,horse\n213553,ship\n213554,dog\n213555,truck\n213556,bird\n213557,ship\n213558,truck\n213559,frog\n213560,deer\n213561,ship\n213562,dog\n213563,cat\n213564,airplane\n213565,ship\n213566,deer\n213567,deer\n213568,deer\n213569,dog\n213570,bird\n213571,deer\n213572,bird\n213573,horse\n213574,truck\n213575,deer\n213576,automobile\n213577,bird\n213578,frog\n213579,ship\n213580,cat\n213581,deer\n213582,frog\n213583,truck\n213584,frog\n213585,truck\n213586,frog\n213587,frog\n213588,ship\n213589,truck\n213590,truck\n213591,automobile\n213592,ship\n213593,truck\n213594,bird\n213595,airplane\n213596,dog\n213597,cat\n213598,bird\n213599,horse\n213600,dog\n213601,bird\n213602,truck\n213603,frog\n213604,deer\n213605,airplane\n213606,dog\n213607,truck\n213608,dog\n213609,frog\n213610,deer\n213611,automobile\n213612,frog\n213613,cat\n213614,deer\n213615,dog\n213616,truck\n213617,horse\n213618,frog\n213619,horse\n213620,truck\n213621,horse\n213622,frog\n213623,truck\n213624,horse\n213625,cat\n213626,deer\n213627,deer\n213628,airplane\n213629,airplane\n213630,cat\n213631,bird\n213632,deer\n213633,automobile\n213634,ship\n213635,ship\n213636,bird\n213637,cat\n213638,truck\n213639,truck\n213640,ship\n213641,airplane\n213642,dog\n213643,ship\n213644,frog\n213645,airplane\n213646,deer\n213647,cat\n213648,dog\n213649,horse\n213650,deer\n213651,dog\n213652,airplane\n213653,bird\n213654,frog\n213655,cat\n213656,deer\n213657,bird\n213658,bird\n213659,airplane\n213660,truck\n213661,cat\n213662,bird\n213663,deer\n213664,horse\n213665,truck\n213666,deer\n213667,automobile\n213668,cat\n213669,automobile\n213670,deer\n213671,truck\n213672,dog\n213673,horse\n213674,deer\n213675,bird\n213676,deer\n213677,airplane\n213678,bird\n213679,bird\n213680,frog\n213681,bird\n213682,frog\n213683,deer\n213684,cat\n213685,bird\n213686,deer\n213687,bird\n213688,truck\n213689,automobile\n213690,deer\n213691,ship\n213692,ship\n213693,bird\n213694,ship\n213695,bird\n213696,frog\n213697,truck\n213698,truck\n213699,truck\n213700,cat\n213701,cat\n213702,horse\n213703,bird\n213704,deer\n213705,horse\n213706,cat\n213707,frog\n213708,dog\n213709,deer\n213710,frog\n213711,frog\n213712,truck\n213713,deer\n213714,automobile\n213715,deer\n213716,dog\n213717,cat\n213718,cat\n213719,automobile\n213720,truck\n213721,dog\n213722,dog\n213723,dog\n213724,airplane\n213725,truck\n213726,dog\n213727,bird\n213728,deer\n213729,dog\n213730,frog\n213731,airplane\n213732,cat\n213733,automobile\n213734,airplane\n213735,horse\n213736,cat\n213737,airplane\n213738,horse\n213739,deer\n213740,cat\n213741,cat\n213742,cat\n213743,ship\n213744,truck\n213745,truck\n213746,frog\n213747,airplane\n213748,bird\n213749,deer\n213750,cat\n213751,horse\n213752,cat\n213753,truck\n213754,ship\n213755,bird\n213756,cat\n213757,frog\n213758,cat\n213759,dog\n213760,frog\n213761,bird\n213762,deer\n213763,dog\n213764,deer\n213765,cat\n213766,deer\n213767,frog\n213768,horse\n213769,cat\n213770,bird\n213771,airplane\n213772,dog\n213773,bird\n213774,dog\n213775,airplane\n213776,bird\n213777,frog\n213778,truck\n213779,cat\n213780,automobile\n213781,dog\n213782,cat\n213783,deer\n213784,automobile\n213785,dog\n213786,truck\n213787,ship\n213788,automobile\n213789,frog\n213790,bird\n213791,dog\n213792,automobile\n213793,dog\n213794,deer\n213795,bird\n213796,deer\n213797,cat\n213798,truck\n213799,dog\n213800,airplane\n213801,automobile\n213802,truck\n213803,ship\n213804,truck\n213805,automobile\n213806,frog\n213807,dog\n213808,automobile\n213809,deer\n213810,dog\n213811,deer\n213812,deer\n213813,horse\n213814,dog\n213815,dog\n213816,deer\n213817,dog\n213818,horse\n213819,horse\n213820,automobile\n213821,dog\n213822,airplane\n213823,automobile\n213824,cat\n213825,cat\n213826,dog\n213827,horse\n213828,ship\n213829,truck\n213830,deer\n213831,frog\n213832,airplane\n213833,bird\n213834,ship\n213835,dog\n213836,frog\n213837,deer\n213838,deer\n213839,frog\n213840,truck\n213841,frog\n213842,bird\n213843,bird\n213844,dog\n213845,dog\n213846,frog\n213847,dog\n213848,dog\n213849,horse\n213850,truck\n213851,cat\n213852,truck\n213853,ship\n213854,deer\n213855,dog\n213856,ship\n213857,ship\n213858,deer\n213859,truck\n213860,dog\n213861,truck\n213862,cat\n213863,horse\n213864,bird\n213865,truck\n213866,automobile\n213867,airplane\n213868,frog\n213869,truck\n213870,cat\n213871,truck\n213872,truck\n213873,truck\n213874,automobile\n213875,truck\n213876,horse\n213877,deer\n213878,airplane\n213879,airplane\n213880,ship\n213881,deer\n213882,automobile\n213883,horse\n213884,deer\n213885,dog\n213886,cat\n213887,ship\n213888,cat\n213889,bird\n213890,frog\n213891,horse\n213892,ship\n213893,ship\n213894,frog\n213895,ship\n213896,automobile\n213897,bird\n213898,dog\n213899,bird\n213900,deer\n213901,bird\n213902,dog\n213903,deer\n213904,deer\n213905,dog\n213906,frog\n213907,frog\n213908,deer\n213909,deer\n213910,deer\n213911,airplane\n213912,airplane\n213913,cat\n213914,horse\n213915,cat\n213916,cat\n213917,horse\n213918,airplane\n213919,automobile\n213920,ship\n213921,ship\n213922,dog\n213923,cat\n213924,horse\n213925,dog\n213926,truck\n213927,deer\n213928,cat\n213929,bird\n213930,deer\n213931,airplane\n213932,cat\n213933,bird\n213934,truck\n213935,cat\n213936,truck\n213937,dog\n213938,airplane\n213939,frog\n213940,automobile\n213941,frog\n213942,frog\n213943,bird\n213944,horse\n213945,cat\n213946,truck\n213947,truck\n213948,airplane\n213949,dog\n213950,truck\n213951,cat\n213952,bird\n213953,frog\n213954,automobile\n213955,cat\n213956,cat\n213957,cat\n213958,cat\n213959,deer\n213960,deer\n213961,truck\n213962,truck\n213963,frog\n213964,frog\n213965,bird\n213966,bird\n213967,dog\n213968,deer\n213969,deer\n213970,ship\n213971,frog\n213972,cat\n213973,automobile\n213974,cat\n213975,deer\n213976,horse\n213977,frog\n213978,cat\n213979,airplane\n213980,deer\n213981,bird\n213982,ship\n213983,automobile\n213984,bird\n213985,truck\n213986,automobile\n213987,bird\n213988,deer\n213989,ship\n213990,airplane\n213991,bird\n213992,deer\n213993,cat\n213994,ship\n213995,frog\n213996,truck\n213997,ship\n213998,dog\n213999,bird\n214000,airplane\n214001,dog\n214002,frog\n214003,automobile\n214004,cat\n214005,truck\n214006,deer\n214007,cat\n214008,ship\n214009,deer\n214010,cat\n214011,truck\n214012,deer\n214013,dog\n214014,deer\n214015,frog\n214016,horse\n214017,frog\n214018,deer\n214019,cat\n214020,cat\n214021,truck\n214022,truck\n214023,truck\n214024,bird\n214025,dog\n214026,truck\n214027,frog\n214028,horse\n214029,airplane\n214030,dog\n214031,frog\n214032,ship\n214033,bird\n214034,ship\n214035,dog\n214036,cat\n214037,frog\n214038,truck\n214039,cat\n214040,airplane\n214041,cat\n214042,frog\n214043,frog\n214044,ship\n214045,dog\n214046,airplane\n214047,bird\n214048,bird\n214049,horse\n214050,airplane\n214051,deer\n214052,deer\n214053,frog\n214054,automobile\n214055,airplane\n214056,bird\n214057,automobile\n214058,truck\n214059,truck\n214060,deer\n214061,cat\n214062,horse\n214063,deer\n214064,cat\n214065,truck\n214066,horse\n214067,truck\n214068,bird\n214069,deer\n214070,automobile\n214071,cat\n214072,cat\n214073,ship\n214074,automobile\n214075,automobile\n214076,deer\n214077,horse\n214078,bird\n214079,dog\n214080,horse\n214081,truck\n214082,deer\n214083,frog\n214084,frog\n214085,deer\n214086,deer\n214087,horse\n214088,cat\n214089,frog\n214090,automobile\n214091,automobile\n214092,airplane\n214093,airplane\n214094,bird\n214095,cat\n214096,horse\n214097,automobile\n214098,horse\n214099,frog\n214100,horse\n214101,automobile\n214102,dog\n214103,automobile\n214104,frog\n214105,deer\n214106,deer\n214107,airplane\n214108,airplane\n214109,truck\n214110,horse\n214111,cat\n214112,bird\n214113,airplane\n214114,airplane\n214115,airplane\n214116,deer\n214117,ship\n214118,horse\n214119,airplane\n214120,truck\n214121,ship\n214122,truck\n214123,airplane\n214124,truck\n214125,airplane\n214126,truck\n214127,dog\n214128,truck\n214129,horse\n214130,horse\n214131,automobile\n214132,bird\n214133,truck\n214134,airplane\n214135,truck\n214136,frog\n214137,bird\n214138,horse\n214139,cat\n214140,truck\n214141,ship\n214142,truck\n214143,deer\n214144,frog\n214145,truck\n214146,deer\n214147,truck\n214148,dog\n214149,ship\n214150,ship\n214151,bird\n214152,truck\n214153,cat\n214154,frog\n214155,ship\n214156,ship\n214157,ship\n214158,dog\n214159,airplane\n214160,frog\n214161,ship\n214162,cat\n214163,cat\n214164,dog\n214165,automobile\n214166,automobile\n214167,ship\n214168,dog\n214169,ship\n214170,truck\n214171,airplane\n214172,truck\n214173,deer\n214174,dog\n214175,dog\n214176,dog\n214177,dog\n214178,truck\n214179,frog\n214180,dog\n214181,airplane\n214182,bird\n214183,cat\n214184,airplane\n214185,bird\n214186,dog\n214187,cat\n214188,deer\n214189,frog\n214190,ship\n214191,bird\n214192,ship\n214193,frog\n214194,airplane\n214195,dog\n214196,bird\n214197,automobile\n214198,ship\n214199,horse\n214200,dog\n214201,cat\n214202,airplane\n214203,truck\n214204,bird\n214205,deer\n214206,dog\n214207,airplane\n214208,ship\n214209,airplane\n214210,frog\n214211,horse\n214212,truck\n214213,truck\n214214,truck\n214215,horse\n214216,deer\n214217,dog\n214218,ship\n214219,deer\n214220,airplane\n214221,frog\n214222,frog\n214223,horse\n214224,automobile\n214225,bird\n214226,cat\n214227,dog\n214228,horse\n214229,frog\n214230,automobile\n214231,dog\n214232,ship\n214233,automobile\n214234,dog\n214235,automobile\n214236,deer\n214237,deer\n214238,ship\n214239,deer\n214240,frog\n214241,dog\n214242,frog\n214243,deer\n214244,ship\n214245,dog\n214246,deer\n214247,horse\n214248,cat\n214249,dog\n214250,frog\n214251,bird\n214252,dog\n214253,airplane\n214254,automobile\n214255,automobile\n214256,deer\n214257,deer\n214258,horse\n214259,deer\n214260,ship\n214261,ship\n214262,cat\n214263,deer\n214264,dog\n214265,horse\n214266,airplane\n214267,frog\n214268,frog\n214269,deer\n214270,cat\n214271,deer\n214272,truck\n214273,bird\n214274,truck\n214275,deer\n214276,dog\n214277,cat\n214278,cat\n214279,ship\n214280,horse\n214281,bird\n214282,ship\n214283,truck\n214284,automobile\n214285,cat\n214286,deer\n214287,ship\n214288,bird\n214289,frog\n214290,cat\n214291,airplane\n214292,airplane\n214293,ship\n214294,bird\n214295,deer\n214296,cat\n214297,horse\n214298,automobile\n214299,cat\n214300,cat\n214301,deer\n214302,airplane\n214303,automobile\n214304,horse\n214305,automobile\n214306,deer\n214307,frog\n214308,dog\n214309,horse\n214310,dog\n214311,dog\n214312,airplane\n214313,bird\n214314,bird\n214315,airplane\n214316,deer\n214317,cat\n214318,bird\n214319,deer\n214320,frog\n214321,cat\n214322,automobile\n214323,deer\n214324,deer\n214325,automobile\n214326,automobile\n214327,deer\n214328,frog\n214329,frog\n214330,deer\n214331,dog\n214332,truck\n214333,deer\n214334,truck\n214335,frog\n214336,ship\n214337,airplane\n214338,cat\n214339,frog\n214340,cat\n214341,dog\n214342,bird\n214343,horse\n214344,horse\n214345,deer\n214346,ship\n214347,automobile\n214348,dog\n214349,horse\n214350,frog\n214351,dog\n214352,bird\n214353,deer\n214354,airplane\n214355,cat\n214356,ship\n214357,ship\n214358,airplane\n214359,truck\n214360,deer\n214361,frog\n214362,airplane\n214363,truck\n214364,ship\n214365,dog\n214366,horse\n214367,dog\n214368,cat\n214369,ship\n214370,ship\n214371,truck\n214372,deer\n214373,airplane\n214374,deer\n214375,horse\n214376,bird\n214377,truck\n214378,deer\n214379,automobile\n214380,ship\n214381,frog\n214382,deer\n214383,automobile\n214384,frog\n214385,horse\n214386,deer\n214387,deer\n214388,deer\n214389,dog\n214390,frog\n214391,horse\n214392,bird\n214393,dog\n214394,truck\n214395,horse\n214396,cat\n214397,truck\n214398,deer\n214399,dog\n214400,automobile\n214401,deer\n214402,bird\n214403,ship\n214404,ship\n214405,cat\n214406,ship\n214407,truck\n214408,deer\n214409,airplane\n214410,frog\n214411,automobile\n214412,airplane\n214413,dog\n214414,bird\n214415,ship\n214416,horse\n214417,deer\n214418,bird\n214419,deer\n214420,truck\n214421,frog\n214422,automobile\n214423,cat\n214424,dog\n214425,bird\n214426,frog\n214427,bird\n214428,ship\n214429,automobile\n214430,airplane\n214431,automobile\n214432,dog\n214433,deer\n214434,ship\n214435,bird\n214436,horse\n214437,deer\n214438,ship\n214439,cat\n214440,bird\n214441,cat\n214442,ship\n214443,deer\n214444,deer\n214445,horse\n214446,horse\n214447,dog\n214448,deer\n214449,ship\n214450,deer\n214451,frog\n214452,automobile\n214453,frog\n214454,bird\n214455,horse\n214456,frog\n214457,deer\n214458,cat\n214459,cat\n214460,automobile\n214461,cat\n214462,bird\n214463,horse\n214464,automobile\n214465,cat\n214466,truck\n214467,bird\n214468,frog\n214469,airplane\n214470,cat\n214471,ship\n214472,airplane\n214473,ship\n214474,dog\n214475,deer\n214476,deer\n214477,bird\n214478,frog\n214479,horse\n214480,automobile\n214481,automobile\n214482,airplane\n214483,horse\n214484,cat\n214485,frog\n214486,deer\n214487,truck\n214488,deer\n214489,horse\n214490,cat\n214491,truck\n214492,horse\n214493,dog\n214494,frog\n214495,frog\n214496,frog\n214497,airplane\n214498,frog\n214499,dog\n214500,bird\n214501,deer\n214502,deer\n214503,airplane\n214504,automobile\n214505,automobile\n214506,deer\n214507,dog\n214508,frog\n214509,ship\n214510,horse\n214511,horse\n214512,bird\n214513,truck\n214514,deer\n214515,truck\n214516,bird\n214517,frog\n214518,truck\n214519,bird\n214520,automobile\n214521,truck\n214522,truck\n214523,bird\n214524,ship\n214525,frog\n214526,cat\n214527,truck\n214528,airplane\n214529,truck\n214530,airplane\n214531,horse\n214532,automobile\n214533,dog\n214534,dog\n214535,deer\n214536,truck\n214537,ship\n214538,deer\n214539,deer\n214540,ship\n214541,ship\n214542,bird\n214543,cat\n214544,dog\n214545,cat\n214546,dog\n214547,deer\n214548,frog\n214549,cat\n214550,frog\n214551,frog\n214552,automobile\n214553,horse\n214554,horse\n214555,truck\n214556,bird\n214557,bird\n214558,truck\n214559,bird\n214560,ship\n214561,cat\n214562,horse\n214563,horse\n214564,ship\n214565,deer\n214566,horse\n214567,automobile\n214568,truck\n214569,ship\n214570,dog\n214571,dog\n214572,airplane\n214573,deer\n214574,frog\n214575,cat\n214576,deer\n214577,horse\n214578,deer\n214579,dog\n214580,cat\n214581,deer\n214582,cat\n214583,airplane\n214584,frog\n214585,deer\n214586,dog\n214587,frog\n214588,bird\n214589,deer\n214590,ship\n214591,deer\n214592,dog\n214593,airplane\n214594,ship\n214595,deer\n214596,deer\n214597,truck\n214598,cat\n214599,airplane\n214600,airplane\n214601,bird\n214602,deer\n214603,ship\n214604,bird\n214605,airplane\n214606,frog\n214607,truck\n214608,dog\n214609,cat\n214610,cat\n214611,airplane\n214612,airplane\n214613,dog\n214614,deer\n214615,automobile\n214616,frog\n214617,frog\n214618,horse\n214619,cat\n214620,deer\n214621,truck\n214622,truck\n214623,dog\n214624,bird\n214625,airplane\n214626,dog\n214627,cat\n214628,automobile\n214629,deer\n214630,cat\n214631,cat\n214632,cat\n214633,cat\n214634,automobile\n214635,truck\n214636,cat\n214637,deer\n214638,dog\n214639,bird\n214640,truck\n214641,horse\n214642,cat\n214643,frog\n214644,dog\n214645,airplane\n214646,airplane\n214647,deer\n214648,airplane\n214649,automobile\n214650,ship\n214651,airplane\n214652,cat\n214653,cat\n214654,frog\n214655,airplane\n214656,truck\n214657,frog\n214658,deer\n214659,airplane\n214660,deer\n214661,cat\n214662,deer\n214663,frog\n214664,truck\n214665,dog\n214666,truck\n214667,horse\n214668,frog\n214669,dog\n214670,frog\n214671,cat\n214672,horse\n214673,deer\n214674,deer\n214675,frog\n214676,cat\n214677,airplane\n214678,airplane\n214679,horse\n214680,frog\n214681,dog\n214682,bird\n214683,frog\n214684,deer\n214685,dog\n214686,truck\n214687,cat\n214688,dog\n214689,ship\n214690,deer\n214691,bird\n214692,deer\n214693,truck\n214694,deer\n214695,automobile\n214696,dog\n214697,ship\n214698,airplane\n214699,truck\n214700,automobile\n214701,bird\n214702,cat\n214703,airplane\n214704,truck\n214705,dog\n214706,cat\n214707,truck\n214708,automobile\n214709,horse\n214710,bird\n214711,frog\n214712,frog\n214713,automobile\n214714,airplane\n214715,frog\n214716,deer\n214717,frog\n214718,bird\n214719,ship\n214720,dog\n214721,deer\n214722,frog\n214723,ship\n214724,frog\n214725,bird\n214726,truck\n214727,truck\n214728,frog\n214729,cat\n214730,bird\n214731,frog\n214732,ship\n214733,dog\n214734,bird\n214735,deer\n214736,automobile\n214737,airplane\n214738,horse\n214739,cat\n214740,bird\n214741,deer\n214742,frog\n214743,dog\n214744,horse\n214745,horse\n214746,automobile\n214747,ship\n214748,deer\n214749,truck\n214750,truck\n214751,deer\n214752,cat\n214753,bird\n214754,deer\n214755,horse\n214756,deer\n214757,airplane\n214758,horse\n214759,airplane\n214760,horse\n214761,truck\n214762,deer\n214763,truck\n214764,dog\n214765,cat\n214766,deer\n214767,deer\n214768,airplane\n214769,horse\n214770,automobile\n214771,ship\n214772,dog\n214773,truck\n214774,airplane\n214775,truck\n214776,dog\n214777,deer\n214778,horse\n214779,ship\n214780,bird\n214781,cat\n214782,horse\n214783,horse\n214784,bird\n214785,ship\n214786,deer\n214787,horse\n214788,automobile\n214789,automobile\n214790,deer\n214791,dog\n214792,cat\n214793,cat\n214794,automobile\n214795,deer\n214796,airplane\n214797,horse\n214798,frog\n214799,cat\n214800,horse\n214801,deer\n214802,cat\n214803,horse\n214804,deer\n214805,frog\n214806,truck\n214807,deer\n214808,deer\n214809,truck\n214810,dog\n214811,automobile\n214812,dog\n214813,airplane\n214814,ship\n214815,deer\n214816,automobile\n214817,bird\n214818,truck\n214819,cat\n214820,cat\n214821,dog\n214822,deer\n214823,dog\n214824,truck\n214825,deer\n214826,deer\n214827,cat\n214828,deer\n214829,truck\n214830,dog\n214831,deer\n214832,bird\n214833,truck\n214834,truck\n214835,bird\n214836,horse\n214837,cat\n214838,truck\n214839,cat\n214840,automobile\n214841,ship\n214842,deer\n214843,frog\n214844,cat\n214845,truck\n214846,deer\n214847,deer\n214848,ship\n214849,frog\n214850,truck\n214851,automobile\n214852,cat\n214853,frog\n214854,truck\n214855,cat\n214856,cat\n214857,dog\n214858,horse\n214859,frog\n214860,truck\n214861,horse\n214862,ship\n214863,airplane\n214864,dog\n214865,airplane\n214866,deer\n214867,bird\n214868,deer\n214869,horse\n214870,cat\n214871,bird\n214872,ship\n214873,cat\n214874,bird\n214875,cat\n214876,ship\n214877,deer\n214878,deer\n214879,deer\n214880,frog\n214881,truck\n214882,ship\n214883,frog\n214884,cat\n214885,dog\n214886,automobile\n214887,truck\n214888,airplane\n214889,truck\n214890,horse\n214891,bird\n214892,deer\n214893,frog\n214894,dog\n214895,dog\n214896,horse\n214897,cat\n214898,deer\n214899,automobile\n214900,frog\n214901,frog\n214902,automobile\n214903,airplane\n214904,horse\n214905,truck\n214906,airplane\n214907,dog\n214908,deer\n214909,bird\n214910,deer\n214911,dog\n214912,bird\n214913,bird\n214914,bird\n214915,horse\n214916,automobile\n214917,cat\n214918,horse\n214919,airplane\n214920,deer\n214921,dog\n214922,horse\n214923,cat\n214924,airplane\n214925,ship\n214926,cat\n214927,bird\n214928,horse\n214929,truck\n214930,deer\n214931,frog\n214932,cat\n214933,automobile\n214934,bird\n214935,bird\n214936,automobile\n214937,cat\n214938,airplane\n214939,ship\n214940,horse\n214941,airplane\n214942,frog\n214943,ship\n214944,cat\n214945,truck\n214946,automobile\n214947,frog\n214948,frog\n214949,frog\n214950,bird\n214951,truck\n214952,airplane\n214953,automobile\n214954,frog\n214955,frog\n214956,horse\n214957,cat\n214958,automobile\n214959,cat\n214960,cat\n214961,frog\n214962,horse\n214963,automobile\n214964,airplane\n214965,truck\n214966,frog\n214967,horse\n214968,cat\n214969,cat\n214970,ship\n214971,truck\n214972,truck\n214973,airplane\n214974,frog\n214975,deer\n214976,frog\n214977,cat\n214978,frog\n214979,bird\n214980,airplane\n214981,dog\n214982,bird\n214983,cat\n214984,cat\n214985,automobile\n214986,horse\n214987,frog\n214988,deer\n214989,truck\n214990,horse\n214991,ship\n214992,automobile\n214993,automobile\n214994,cat\n214995,airplane\n214996,frog\n214997,dog\n214998,cat\n214999,bird\n215000,airplane\n215001,cat\n215002,deer\n215003,dog\n215004,bird\n215005,truck\n215006,truck\n215007,horse\n215008,frog\n215009,frog\n215010,bird\n215011,horse\n215012,horse\n215013,horse\n215014,truck\n215015,bird\n215016,frog\n215017,bird\n215018,deer\n215019,frog\n215020,airplane\n215021,deer\n215022,frog\n215023,airplane\n215024,cat\n215025,frog\n215026,cat\n215027,deer\n215028,frog\n215029,dog\n215030,deer\n215031,dog\n215032,truck\n215033,airplane\n215034,horse\n215035,truck\n215036,cat\n215037,airplane\n215038,horse\n215039,frog\n215040,horse\n215041,deer\n215042,horse\n215043,deer\n215044,truck\n215045,cat\n215046,deer\n215047,truck\n215048,deer\n215049,ship\n215050,truck\n215051,frog\n215052,cat\n215053,deer\n215054,automobile\n215055,automobile\n215056,automobile\n215057,automobile\n215058,airplane\n215059,cat\n215060,horse\n215061,deer\n215062,cat\n215063,airplane\n215064,airplane\n215065,truck\n215066,cat\n215067,airplane\n215068,dog\n215069,ship\n215070,airplane\n215071,deer\n215072,airplane\n215073,truck\n215074,dog\n215075,horse\n215076,bird\n215077,deer\n215078,bird\n215079,airplane\n215080,deer\n215081,ship\n215082,horse\n215083,truck\n215084,frog\n215085,horse\n215086,airplane\n215087,ship\n215088,deer\n215089,cat\n215090,ship\n215091,frog\n215092,cat\n215093,airplane\n215094,truck\n215095,truck\n215096,bird\n215097,bird\n215098,automobile\n215099,horse\n215100,horse\n215101,cat\n215102,cat\n215103,airplane\n215104,ship\n215105,deer\n215106,truck\n215107,bird\n215108,frog\n215109,bird\n215110,dog\n215111,frog\n215112,deer\n215113,airplane\n215114,deer\n215115,airplane\n215116,deer\n215117,deer\n215118,horse\n215119,automobile\n215120,deer\n215121,deer\n215122,deer\n215123,frog\n215124,frog\n215125,frog\n215126,cat\n215127,automobile\n215128,frog\n215129,automobile\n215130,airplane\n215131,truck\n215132,truck\n215133,dog\n215134,frog\n215135,airplane\n215136,frog\n215137,airplane\n215138,frog\n215139,deer\n215140,dog\n215141,cat\n215142,ship\n215143,frog\n215144,horse\n215145,dog\n215146,deer\n215147,truck\n215148,ship\n215149,deer\n215150,deer\n215151,dog\n215152,dog\n215153,ship\n215154,ship\n215155,automobile\n215156,truck\n215157,truck\n215158,cat\n215159,dog\n215160,deer\n215161,truck\n215162,bird\n215163,dog\n215164,horse\n215165,horse\n215166,airplane\n215167,cat\n215168,deer\n215169,truck\n215170,horse\n215171,horse\n215172,bird\n215173,frog\n215174,truck\n215175,horse\n215176,ship\n215177,automobile\n215178,frog\n215179,cat\n215180,bird\n215181,truck\n215182,cat\n215183,horse\n215184,horse\n215185,airplane\n215186,automobile\n215187,automobile\n215188,airplane\n215189,airplane\n215190,airplane\n215191,truck\n215192,dog\n215193,cat\n215194,horse\n215195,cat\n215196,automobile\n215197,automobile\n215198,truck\n215199,deer\n215200,horse\n215201,frog\n215202,dog\n215203,dog\n215204,bird\n215205,airplane\n215206,deer\n215207,automobile\n215208,truck\n215209,bird\n215210,truck\n215211,bird\n215212,dog\n215213,dog\n215214,dog\n215215,airplane\n215216,dog\n215217,deer\n215218,truck\n215219,deer\n215220,dog\n215221,dog\n215222,dog\n215223,automobile\n215224,bird\n215225,truck\n215226,cat\n215227,deer\n215228,automobile\n215229,horse\n215230,truck\n215231,truck\n215232,frog\n215233,cat\n215234,deer\n215235,horse\n215236,airplane\n215237,frog\n215238,automobile\n215239,dog\n215240,horse\n215241,frog\n215242,airplane\n215243,deer\n215244,bird\n215245,frog\n215246,airplane\n215247,ship\n215248,horse\n215249,frog\n215250,bird\n215251,frog\n215252,cat\n215253,truck\n215254,bird\n215255,dog\n215256,cat\n215257,truck\n215258,truck\n215259,airplane\n215260,frog\n215261,cat\n215262,horse\n215263,horse\n215264,cat\n215265,cat\n215266,automobile\n215267,deer\n215268,ship\n215269,airplane\n215270,frog\n215271,ship\n215272,cat\n215273,automobile\n215274,ship\n215275,truck\n215276,deer\n215277,dog\n215278,frog\n215279,ship\n215280,truck\n215281,deer\n215282,airplane\n215283,ship\n215284,horse\n215285,ship\n215286,deer\n215287,frog\n215288,dog\n215289,automobile\n215290,dog\n215291,truck\n215292,deer\n215293,dog\n215294,deer\n215295,dog\n215296,cat\n215297,deer\n215298,frog\n215299,deer\n215300,truck\n215301,airplane\n215302,truck\n215303,dog\n215304,ship\n215305,deer\n215306,dog\n215307,deer\n215308,frog\n215309,ship\n215310,horse\n215311,dog\n215312,truck\n215313,frog\n215314,deer\n215315,dog\n215316,bird\n215317,ship\n215318,frog\n215319,cat\n215320,bird\n215321,dog\n215322,cat\n215323,frog\n215324,deer\n215325,frog\n215326,ship\n215327,cat\n215328,deer\n215329,cat\n215330,dog\n215331,frog\n215332,airplane\n215333,truck\n215334,airplane\n215335,bird\n215336,frog\n215337,horse\n215338,frog\n215339,truck\n215340,deer\n215341,bird\n215342,airplane\n215343,dog\n215344,frog\n215345,truck\n215346,horse\n215347,bird\n215348,cat\n215349,truck\n215350,cat\n215351,cat\n215352,dog\n215353,airplane\n215354,bird\n215355,automobile\n215356,ship\n215357,horse\n215358,deer\n215359,automobile\n215360,ship\n215361,ship\n215362,frog\n215363,deer\n215364,horse\n215365,horse\n215366,frog\n215367,horse\n215368,bird\n215369,horse\n215370,dog\n215371,automobile\n215372,airplane\n215373,dog\n215374,deer\n215375,dog\n215376,bird\n215377,deer\n215378,truck\n215379,bird\n215380,ship\n215381,deer\n215382,deer\n215383,bird\n215384,cat\n215385,ship\n215386,frog\n215387,cat\n215388,deer\n215389,dog\n215390,deer\n215391,dog\n215392,automobile\n215393,cat\n215394,deer\n215395,cat\n215396,ship\n215397,deer\n215398,cat\n215399,deer\n215400,horse\n215401,horse\n215402,bird\n215403,frog\n215404,frog\n215405,deer\n215406,frog\n215407,horse\n215408,deer\n215409,airplane\n215410,deer\n215411,airplane\n215412,cat\n215413,dog\n215414,bird\n215415,bird\n215416,frog\n215417,cat\n215418,deer\n215419,frog\n215420,automobile\n215421,ship\n215422,deer\n215423,ship\n215424,dog\n215425,horse\n215426,dog\n215427,dog\n215428,bird\n215429,deer\n215430,cat\n215431,automobile\n215432,airplane\n215433,automobile\n215434,bird\n215435,automobile\n215436,ship\n215437,dog\n215438,dog\n215439,bird\n215440,airplane\n215441,horse\n215442,automobile\n215443,airplane\n215444,airplane\n215445,horse\n215446,deer\n215447,deer\n215448,horse\n215449,ship\n215450,ship\n215451,dog\n215452,ship\n215453,airplane\n215454,frog\n215455,truck\n215456,deer\n215457,truck\n215458,truck\n215459,deer\n215460,deer\n215461,ship\n215462,airplane\n215463,cat\n215464,deer\n215465,ship\n215466,automobile\n215467,horse\n215468,cat\n215469,cat\n215470,cat\n215471,cat\n215472,deer\n215473,truck\n215474,cat\n215475,deer\n215476,deer\n215477,deer\n215478,bird\n215479,horse\n215480,cat\n215481,deer\n215482,truck\n215483,cat\n215484,bird\n215485,cat\n215486,deer\n215487,deer\n215488,horse\n215489,horse\n215490,frog\n215491,automobile\n215492,truck\n215493,horse\n215494,truck\n215495,horse\n215496,deer\n215497,cat\n215498,deer\n215499,cat\n215500,frog\n215501,cat\n215502,deer\n215503,deer\n215504,automobile\n215505,truck\n215506,cat\n215507,dog\n215508,dog\n215509,ship\n215510,ship\n215511,dog\n215512,airplane\n215513,truck\n215514,frog\n215515,frog\n215516,automobile\n215517,frog\n215518,truck\n215519,truck\n215520,airplane\n215521,dog\n215522,airplane\n215523,ship\n215524,cat\n215525,dog\n215526,dog\n215527,cat\n215528,dog\n215529,dog\n215530,horse\n215531,cat\n215532,horse\n215533,deer\n215534,dog\n215535,airplane\n215536,cat\n215537,deer\n215538,airplane\n215539,airplane\n215540,bird\n215541,dog\n215542,cat\n215543,cat\n215544,horse\n215545,truck\n215546,truck\n215547,ship\n215548,ship\n215549,horse\n215550,frog\n215551,deer\n215552,ship\n215553,airplane\n215554,horse\n215555,deer\n215556,cat\n215557,frog\n215558,cat\n215559,ship\n215560,horse\n215561,deer\n215562,cat\n215563,airplane\n215564,dog\n215565,truck\n215566,frog\n215567,deer\n215568,cat\n215569,automobile\n215570,cat\n215571,airplane\n215572,deer\n215573,ship\n215574,ship\n215575,dog\n215576,dog\n215577,deer\n215578,dog\n215579,truck\n215580,dog\n215581,deer\n215582,airplane\n215583,airplane\n215584,dog\n215585,deer\n215586,bird\n215587,truck\n215588,deer\n215589,ship\n215590,ship\n215591,automobile\n215592,bird\n215593,dog\n215594,horse\n215595,truck\n215596,truck\n215597,horse\n215598,horse\n215599,dog\n215600,bird\n215601,frog\n215602,automobile\n215603,truck\n215604,dog\n215605,cat\n215606,airplane\n215607,deer\n215608,deer\n215609,automobile\n215610,deer\n215611,bird\n215612,bird\n215613,automobile\n215614,bird\n215615,frog\n215616,deer\n215617,ship\n215618,automobile\n215619,airplane\n215620,dog\n215621,deer\n215622,deer\n215623,ship\n215624,cat\n215625,airplane\n215626,frog\n215627,airplane\n215628,deer\n215629,airplane\n215630,airplane\n215631,truck\n215632,dog\n215633,ship\n215634,horse\n215635,ship\n215636,dog\n215637,cat\n215638,deer\n215639,frog\n215640,airplane\n215641,bird\n215642,bird\n215643,bird\n215644,ship\n215645,ship\n215646,dog\n215647,deer\n215648,automobile\n215649,dog\n215650,bird\n215651,bird\n215652,airplane\n215653,dog\n215654,cat\n215655,automobile\n215656,cat\n215657,deer\n215658,deer\n215659,truck\n215660,cat\n215661,deer\n215662,cat\n215663,horse\n215664,horse\n215665,dog\n215666,deer\n215667,deer\n215668,truck\n215669,automobile\n215670,frog\n215671,deer\n215672,truck\n215673,ship\n215674,cat\n215675,frog\n215676,bird\n215677,horse\n215678,horse\n215679,horse\n215680,truck\n215681,ship\n215682,truck\n215683,frog\n215684,deer\n215685,dog\n215686,bird\n215687,deer\n215688,frog\n215689,truck\n215690,deer\n215691,truck\n215692,deer\n215693,ship\n215694,bird\n215695,deer\n215696,ship\n215697,dog\n215698,ship\n215699,deer\n215700,airplane\n215701,automobile\n215702,deer\n215703,airplane\n215704,frog\n215705,deer\n215706,ship\n215707,frog\n215708,frog\n215709,cat\n215710,truck\n215711,frog\n215712,truck\n215713,dog\n215714,deer\n215715,deer\n215716,airplane\n215717,dog\n215718,deer\n215719,bird\n215720,deer\n215721,cat\n215722,ship\n215723,dog\n215724,horse\n215725,horse\n215726,cat\n215727,deer\n215728,ship\n215729,truck\n215730,cat\n215731,horse\n215732,cat\n215733,cat\n215734,dog\n215735,automobile\n215736,truck\n215737,truck\n215738,truck\n215739,frog\n215740,deer\n215741,truck\n215742,frog\n215743,horse\n215744,bird\n215745,frog\n215746,truck\n215747,truck\n215748,cat\n215749,bird\n215750,deer\n215751,deer\n215752,deer\n215753,cat\n215754,horse\n215755,frog\n215756,cat\n215757,airplane\n215758,cat\n215759,ship\n215760,dog\n215761,ship\n215762,deer\n215763,bird\n215764,bird\n215765,ship\n215766,airplane\n215767,ship\n215768,airplane\n215769,bird\n215770,cat\n215771,deer\n215772,airplane\n215773,cat\n215774,horse\n215775,horse\n215776,truck\n215777,automobile\n215778,dog\n215779,airplane\n215780,horse\n215781,airplane\n215782,ship\n215783,dog\n215784,horse\n215785,deer\n215786,ship\n215787,cat\n215788,cat\n215789,cat\n215790,truck\n215791,ship\n215792,airplane\n215793,cat\n215794,cat\n215795,truck\n215796,horse\n215797,cat\n215798,truck\n215799,dog\n215800,dog\n215801,bird\n215802,deer\n215803,truck\n215804,truck\n215805,deer\n215806,deer\n215807,frog\n215808,deer\n215809,airplane\n215810,dog\n215811,ship\n215812,airplane\n215813,truck\n215814,automobile\n215815,ship\n215816,deer\n215817,automobile\n215818,frog\n215819,ship\n215820,automobile\n215821,frog\n215822,bird\n215823,ship\n215824,horse\n215825,frog\n215826,cat\n215827,deer\n215828,cat\n215829,automobile\n215830,automobile\n215831,deer\n215832,ship\n215833,bird\n215834,frog\n215835,truck\n215836,horse\n215837,ship\n215838,deer\n215839,ship\n215840,airplane\n215841,bird\n215842,cat\n215843,bird\n215844,horse\n215845,airplane\n215846,ship\n215847,ship\n215848,bird\n215849,deer\n215850,horse\n215851,cat\n215852,airplane\n215853,airplane\n215854,frog\n215855,deer\n215856,dog\n215857,automobile\n215858,deer\n215859,deer\n215860,airplane\n215861,deer\n215862,bird\n215863,cat\n215864,ship\n215865,ship\n215866,deer\n215867,deer\n215868,frog\n215869,cat\n215870,bird\n215871,horse\n215872,dog\n215873,frog\n215874,horse\n215875,airplane\n215876,airplane\n215877,airplane\n215878,deer\n215879,deer\n215880,airplane\n215881,automobile\n215882,deer\n215883,horse\n215884,truck\n215885,dog\n215886,cat\n215887,horse\n215888,frog\n215889,truck\n215890,deer\n215891,deer\n215892,frog\n215893,cat\n215894,dog\n215895,ship\n215896,truck\n215897,airplane\n215898,horse\n215899,ship\n215900,truck\n215901,dog\n215902,truck\n215903,airplane\n215904,ship\n215905,truck\n215906,cat\n215907,automobile\n215908,truck\n215909,automobile\n215910,horse\n215911,bird\n215912,airplane\n215913,truck\n215914,frog\n215915,dog\n215916,frog\n215917,frog\n215918,cat\n215919,deer\n215920,dog\n215921,truck\n215922,automobile\n215923,cat\n215924,truck\n215925,automobile\n215926,truck\n215927,bird\n215928,deer\n215929,deer\n215930,dog\n215931,airplane\n215932,horse\n215933,cat\n215934,truck\n215935,truck\n215936,deer\n215937,frog\n215938,frog\n215939,horse\n215940,bird\n215941,frog\n215942,frog\n215943,airplane\n215944,cat\n215945,dog\n215946,bird\n215947,horse\n215948,cat\n215949,deer\n215950,ship\n215951,cat\n215952,airplane\n215953,bird\n215954,dog\n215955,deer\n215956,truck\n215957,truck\n215958,cat\n215959,airplane\n215960,deer\n215961,cat\n215962,airplane\n215963,frog\n215964,airplane\n215965,frog\n215966,horse\n215967,automobile\n215968,frog\n215969,bird\n215970,bird\n215971,cat\n215972,frog\n215973,frog\n215974,dog\n215975,deer\n215976,truck\n215977,dog\n215978,truck\n215979,frog\n215980,truck\n215981,frog\n215982,dog\n215983,cat\n215984,cat\n215985,dog\n215986,horse\n215987,cat\n215988,automobile\n215989,cat\n215990,airplane\n215991,frog\n215992,automobile\n215993,deer\n215994,ship\n215995,frog\n215996,deer\n215997,bird\n215998,deer\n215999,frog\n216000,dog\n216001,horse\n216002,automobile\n216003,automobile\n216004,frog\n216005,cat\n216006,dog\n216007,frog\n216008,dog\n216009,deer\n216010,truck\n216011,cat\n216012,horse\n216013,frog\n216014,dog\n216015,ship\n216016,ship\n216017,cat\n216018,truck\n216019,cat\n216020,bird\n216021,horse\n216022,cat\n216023,ship\n216024,dog\n216025,truck\n216026,automobile\n216027,cat\n216028,automobile\n216029,frog\n216030,dog\n216031,cat\n216032,frog\n216033,cat\n216034,dog\n216035,cat\n216036,deer\n216037,cat\n216038,cat\n216039,cat\n216040,bird\n216041,ship\n216042,frog\n216043,horse\n216044,truck\n216045,truck\n216046,cat\n216047,truck\n216048,dog\n216049,horse\n216050,truck\n216051,bird\n216052,horse\n216053,horse\n216054,bird\n216055,horse\n216056,airplane\n216057,truck\n216058,dog\n216059,frog\n216060,automobile\n216061,truck\n216062,ship\n216063,ship\n216064,frog\n216065,dog\n216066,bird\n216067,horse\n216068,deer\n216069,airplane\n216070,cat\n216071,deer\n216072,truck\n216073,truck\n216074,bird\n216075,frog\n216076,truck\n216077,deer\n216078,frog\n216079,dog\n216080,cat\n216081,airplane\n216082,airplane\n216083,dog\n216084,cat\n216085,airplane\n216086,ship\n216087,deer\n216088,airplane\n216089,ship\n216090,ship\n216091,ship\n216092,horse\n216093,horse\n216094,frog\n216095,truck\n216096,ship\n216097,cat\n216098,automobile\n216099,dog\n216100,horse\n216101,deer\n216102,frog\n216103,cat\n216104,bird\n216105,ship\n216106,cat\n216107,automobile\n216108,bird\n216109,deer\n216110,dog\n216111,automobile\n216112,deer\n216113,cat\n216114,dog\n216115,dog\n216116,dog\n216117,ship\n216118,bird\n216119,horse\n216120,automobile\n216121,deer\n216122,truck\n216123,deer\n216124,truck\n216125,dog\n216126,dog\n216127,dog\n216128,frog\n216129,dog\n216130,horse\n216131,bird\n216132,cat\n216133,dog\n216134,deer\n216135,cat\n216136,cat\n216137,frog\n216138,bird\n216139,dog\n216140,frog\n216141,bird\n216142,deer\n216143,frog\n216144,cat\n216145,airplane\n216146,dog\n216147,truck\n216148,truck\n216149,deer\n216150,dog\n216151,cat\n216152,frog\n216153,automobile\n216154,bird\n216155,dog\n216156,deer\n216157,truck\n216158,horse\n216159,dog\n216160,frog\n216161,truck\n216162,cat\n216163,automobile\n216164,airplane\n216165,truck\n216166,cat\n216167,airplane\n216168,horse\n216169,dog\n216170,dog\n216171,deer\n216172,deer\n216173,airplane\n216174,dog\n216175,frog\n216176,truck\n216177,deer\n216178,truck\n216179,horse\n216180,automobile\n216181,deer\n216182,cat\n216183,dog\n216184,horse\n216185,deer\n216186,bird\n216187,cat\n216188,automobile\n216189,truck\n216190,frog\n216191,bird\n216192,horse\n216193,automobile\n216194,truck\n216195,automobile\n216196,cat\n216197,frog\n216198,deer\n216199,dog\n216200,bird\n216201,truck\n216202,truck\n216203,airplane\n216204,bird\n216205,truck\n216206,bird\n216207,cat\n216208,airplane\n216209,dog\n216210,airplane\n216211,horse\n216212,automobile\n216213,frog\n216214,airplane\n216215,deer\n216216,cat\n216217,frog\n216218,horse\n216219,automobile\n216220,cat\n216221,frog\n216222,truck\n216223,deer\n216224,cat\n216225,frog\n216226,airplane\n216227,bird\n216228,cat\n216229,bird\n216230,bird\n216231,deer\n216232,deer\n216233,horse\n216234,automobile\n216235,airplane\n216236,horse\n216237,frog\n216238,bird\n216239,frog\n216240,cat\n216241,cat\n216242,automobile\n216243,airplane\n216244,horse\n216245,dog\n216246,horse\n216247,ship\n216248,airplane\n216249,cat\n216250,truck\n216251,cat\n216252,dog\n216253,cat\n216254,airplane\n216255,dog\n216256,frog\n216257,deer\n216258,airplane\n216259,truck\n216260,airplane\n216261,ship\n216262,cat\n216263,dog\n216264,dog\n216265,deer\n216266,horse\n216267,cat\n216268,ship\n216269,cat\n216270,cat\n216271,dog\n216272,deer\n216273,horse\n216274,ship\n216275,cat\n216276,frog\n216277,ship\n216278,truck\n216279,truck\n216280,cat\n216281,frog\n216282,cat\n216283,airplane\n216284,cat\n216285,ship\n216286,deer\n216287,truck\n216288,horse\n216289,truck\n216290,ship\n216291,deer\n216292,bird\n216293,ship\n216294,deer\n216295,dog\n216296,horse\n216297,bird\n216298,airplane\n216299,airplane\n216300,deer\n216301,deer\n216302,deer\n216303,ship\n216304,automobile\n216305,cat\n216306,cat\n216307,deer\n216308,horse\n216309,frog\n216310,airplane\n216311,bird\n216312,dog\n216313,bird\n216314,frog\n216315,airplane\n216316,truck\n216317,automobile\n216318,frog\n216319,automobile\n216320,deer\n216321,horse\n216322,airplane\n216323,automobile\n216324,deer\n216325,airplane\n216326,automobile\n216327,dog\n216328,dog\n216329,airplane\n216330,deer\n216331,ship\n216332,truck\n216333,bird\n216334,deer\n216335,truck\n216336,truck\n216337,frog\n216338,airplane\n216339,ship\n216340,truck\n216341,dog\n216342,horse\n216343,automobile\n216344,frog\n216345,cat\n216346,horse\n216347,cat\n216348,airplane\n216349,truck\n216350,truck\n216351,bird\n216352,cat\n216353,deer\n216354,bird\n216355,bird\n216356,bird\n216357,deer\n216358,deer\n216359,airplane\n216360,cat\n216361,horse\n216362,truck\n216363,truck\n216364,frog\n216365,deer\n216366,bird\n216367,automobile\n216368,dog\n216369,horse\n216370,horse\n216371,deer\n216372,bird\n216373,bird\n216374,deer\n216375,automobile\n216376,bird\n216377,dog\n216378,ship\n216379,cat\n216380,dog\n216381,truck\n216382,frog\n216383,frog\n216384,truck\n216385,cat\n216386,deer\n216387,dog\n216388,airplane\n216389,horse\n216390,dog\n216391,deer\n216392,frog\n216393,airplane\n216394,deer\n216395,airplane\n216396,ship\n216397,airplane\n216398,deer\n216399,cat\n216400,horse\n216401,cat\n216402,frog\n216403,dog\n216404,dog\n216405,horse\n216406,bird\n216407,bird\n216408,bird\n216409,truck\n216410,deer\n216411,frog\n216412,bird\n216413,airplane\n216414,airplane\n216415,cat\n216416,dog\n216417,horse\n216418,dog\n216419,dog\n216420,truck\n216421,horse\n216422,frog\n216423,deer\n216424,frog\n216425,frog\n216426,bird\n216427,airplane\n216428,truck\n216429,frog\n216430,cat\n216431,horse\n216432,dog\n216433,ship\n216434,truck\n216435,airplane\n216436,bird\n216437,truck\n216438,cat\n216439,deer\n216440,cat\n216441,deer\n216442,frog\n216443,bird\n216444,airplane\n216445,airplane\n216446,bird\n216447,deer\n216448,horse\n216449,deer\n216450,airplane\n216451,deer\n216452,automobile\n216453,cat\n216454,truck\n216455,cat\n216456,deer\n216457,deer\n216458,truck\n216459,bird\n216460,cat\n216461,truck\n216462,airplane\n216463,bird\n216464,deer\n216465,ship\n216466,bird\n216467,truck\n216468,truck\n216469,bird\n216470,cat\n216471,deer\n216472,ship\n216473,bird\n216474,cat\n216475,horse\n216476,dog\n216477,deer\n216478,automobile\n216479,horse\n216480,bird\n216481,horse\n216482,airplane\n216483,airplane\n216484,automobile\n216485,automobile\n216486,cat\n216487,cat\n216488,horse\n216489,dog\n216490,ship\n216491,ship\n216492,automobile\n216493,frog\n216494,truck\n216495,deer\n216496,cat\n216497,horse\n216498,frog\n216499,airplane\n216500,deer\n216501,horse\n216502,frog\n216503,frog\n216504,frog\n216505,deer\n216506,dog\n216507,bird\n216508,deer\n216509,automobile\n216510,horse\n216511,dog\n216512,bird\n216513,horse\n216514,frog\n216515,frog\n216516,frog\n216517,frog\n216518,truck\n216519,horse\n216520,ship\n216521,bird\n216522,airplane\n216523,frog\n216524,cat\n216525,dog\n216526,truck\n216527,frog\n216528,cat\n216529,airplane\n216530,airplane\n216531,truck\n216532,bird\n216533,automobile\n216534,bird\n216535,deer\n216536,frog\n216537,automobile\n216538,truck\n216539,cat\n216540,cat\n216541,deer\n216542,horse\n216543,automobile\n216544,dog\n216545,cat\n216546,ship\n216547,cat\n216548,truck\n216549,dog\n216550,automobile\n216551,truck\n216552,dog\n216553,ship\n216554,automobile\n216555,deer\n216556,truck\n216557,frog\n216558,frog\n216559,dog\n216560,horse\n216561,truck\n216562,automobile\n216563,horse\n216564,cat\n216565,cat\n216566,frog\n216567,truck\n216568,cat\n216569,ship\n216570,bird\n216571,frog\n216572,automobile\n216573,ship\n216574,frog\n216575,airplane\n216576,cat\n216577,airplane\n216578,cat\n216579,bird\n216580,automobile\n216581,truck\n216582,deer\n216583,bird\n216584,ship\n216585,ship\n216586,frog\n216587,airplane\n216588,cat\n216589,cat\n216590,automobile\n216591,dog\n216592,cat\n216593,dog\n216594,truck\n216595,automobile\n216596,horse\n216597,ship\n216598,cat\n216599,deer\n216600,truck\n216601,cat\n216602,frog\n216603,horse\n216604,cat\n216605,cat\n216606,ship\n216607,cat\n216608,bird\n216609,automobile\n216610,airplane\n216611,deer\n216612,deer\n216613,frog\n216614,airplane\n216615,dog\n216616,truck\n216617,truck\n216618,airplane\n216619,bird\n216620,frog\n216621,truck\n216622,automobile\n216623,ship\n216624,frog\n216625,frog\n216626,truck\n216627,bird\n216628,frog\n216629,dog\n216630,bird\n216631,automobile\n216632,cat\n216633,bird\n216634,deer\n216635,truck\n216636,frog\n216637,cat\n216638,horse\n216639,bird\n216640,deer\n216641,cat\n216642,dog\n216643,deer\n216644,dog\n216645,truck\n216646,dog\n216647,cat\n216648,frog\n216649,horse\n216650,airplane\n216651,deer\n216652,dog\n216653,frog\n216654,bird\n216655,truck\n216656,cat\n216657,bird\n216658,deer\n216659,horse\n216660,automobile\n216661,deer\n216662,deer\n216663,bird\n216664,deer\n216665,automobile\n216666,deer\n216667,bird\n216668,cat\n216669,frog\n216670,airplane\n216671,airplane\n216672,frog\n216673,cat\n216674,truck\n216675,ship\n216676,cat\n216677,dog\n216678,frog\n216679,airplane\n216680,frog\n216681,horse\n216682,ship\n216683,bird\n216684,automobile\n216685,bird\n216686,dog\n216687,horse\n216688,dog\n216689,airplane\n216690,horse\n216691,cat\n216692,airplane\n216693,frog\n216694,deer\n216695,bird\n216696,horse\n216697,cat\n216698,automobile\n216699,dog\n216700,truck\n216701,horse\n216702,automobile\n216703,cat\n216704,truck\n216705,airplane\n216706,dog\n216707,horse\n216708,ship\n216709,dog\n216710,ship\n216711,deer\n216712,airplane\n216713,deer\n216714,cat\n216715,truck\n216716,deer\n216717,truck\n216718,dog\n216719,dog\n216720,airplane\n216721,deer\n216722,bird\n216723,cat\n216724,frog\n216725,frog\n216726,airplane\n216727,airplane\n216728,truck\n216729,dog\n216730,horse\n216731,ship\n216732,dog\n216733,deer\n216734,ship\n216735,deer\n216736,dog\n216737,frog\n216738,frog\n216739,truck\n216740,cat\n216741,dog\n216742,automobile\n216743,horse\n216744,airplane\n216745,deer\n216746,dog\n216747,truck\n216748,bird\n216749,horse\n216750,dog\n216751,deer\n216752,deer\n216753,horse\n216754,truck\n216755,deer\n216756,frog\n216757,frog\n216758,ship\n216759,automobile\n216760,dog\n216761,truck\n216762,airplane\n216763,cat\n216764,deer\n216765,deer\n216766,bird\n216767,frog\n216768,automobile\n216769,ship\n216770,cat\n216771,dog\n216772,truck\n216773,horse\n216774,frog\n216775,bird\n216776,deer\n216777,ship\n216778,cat\n216779,dog\n216780,automobile\n216781,dog\n216782,horse\n216783,horse\n216784,horse\n216785,airplane\n216786,cat\n216787,cat\n216788,truck\n216789,horse\n216790,frog\n216791,deer\n216792,horse\n216793,ship\n216794,truck\n216795,ship\n216796,cat\n216797,frog\n216798,ship\n216799,deer\n216800,airplane\n216801,dog\n216802,ship\n216803,truck\n216804,airplane\n216805,cat\n216806,truck\n216807,bird\n216808,cat\n216809,automobile\n216810,deer\n216811,cat\n216812,cat\n216813,frog\n216814,truck\n216815,automobile\n216816,airplane\n216817,ship\n216818,ship\n216819,automobile\n216820,airplane\n216821,cat\n216822,bird\n216823,ship\n216824,bird\n216825,cat\n216826,dog\n216827,deer\n216828,truck\n216829,ship\n216830,dog\n216831,bird\n216832,airplane\n216833,horse\n216834,bird\n216835,dog\n216836,deer\n216837,horse\n216838,horse\n216839,horse\n216840,dog\n216841,dog\n216842,automobile\n216843,truck\n216844,deer\n216845,automobile\n216846,deer\n216847,truck\n216848,deer\n216849,deer\n216850,deer\n216851,airplane\n216852,horse\n216853,airplane\n216854,airplane\n216855,dog\n216856,horse\n216857,bird\n216858,ship\n216859,truck\n216860,truck\n216861,horse\n216862,dog\n216863,truck\n216864,ship\n216865,cat\n216866,bird\n216867,airplane\n216868,bird\n216869,bird\n216870,dog\n216871,truck\n216872,deer\n216873,dog\n216874,automobile\n216875,cat\n216876,bird\n216877,automobile\n216878,truck\n216879,bird\n216880,frog\n216881,frog\n216882,deer\n216883,ship\n216884,truck\n216885,deer\n216886,horse\n216887,dog\n216888,deer\n216889,bird\n216890,cat\n216891,frog\n216892,frog\n216893,cat\n216894,truck\n216895,truck\n216896,horse\n216897,airplane\n216898,deer\n216899,horse\n216900,horse\n216901,airplane\n216902,automobile\n216903,horse\n216904,truck\n216905,dog\n216906,ship\n216907,dog\n216908,truck\n216909,dog\n216910,truck\n216911,deer\n216912,frog\n216913,deer\n216914,deer\n216915,deer\n216916,deer\n216917,ship\n216918,horse\n216919,cat\n216920,dog\n216921,cat\n216922,horse\n216923,horse\n216924,dog\n216925,horse\n216926,truck\n216927,frog\n216928,dog\n216929,automobile\n216930,automobile\n216931,deer\n216932,horse\n216933,cat\n216934,ship\n216935,horse\n216936,ship\n216937,bird\n216938,frog\n216939,dog\n216940,cat\n216941,frog\n216942,truck\n216943,dog\n216944,deer\n216945,airplane\n216946,frog\n216947,frog\n216948,automobile\n216949,truck\n216950,airplane\n216951,cat\n216952,deer\n216953,cat\n216954,horse\n216955,frog\n216956,cat\n216957,bird\n216958,automobile\n216959,bird\n216960,frog\n216961,deer\n216962,deer\n216963,cat\n216964,horse\n216965,horse\n216966,cat\n216967,dog\n216968,deer\n216969,deer\n216970,deer\n216971,dog\n216972,frog\n216973,frog\n216974,bird\n216975,bird\n216976,horse\n216977,truck\n216978,bird\n216979,dog\n216980,airplane\n216981,frog\n216982,deer\n216983,deer\n216984,frog\n216985,cat\n216986,truck\n216987,automobile\n216988,deer\n216989,cat\n216990,dog\n216991,cat\n216992,truck\n216993,ship\n216994,deer\n216995,horse\n216996,horse\n216997,cat\n216998,bird\n216999,airplane\n217000,frog\n217001,cat\n217002,truck\n217003,ship\n217004,dog\n217005,frog\n217006,cat\n217007,frog\n217008,horse\n217009,frog\n217010,truck\n217011,airplane\n217012,frog\n217013,cat\n217014,cat\n217015,ship\n217016,truck\n217017,frog\n217018,frog\n217019,ship\n217020,horse\n217021,deer\n217022,deer\n217023,automobile\n217024,truck\n217025,airplane\n217026,horse\n217027,ship\n217028,cat\n217029,deer\n217030,deer\n217031,truck\n217032,deer\n217033,cat\n217034,dog\n217035,ship\n217036,deer\n217037,horse\n217038,deer\n217039,horse\n217040,deer\n217041,dog\n217042,deer\n217043,truck\n217044,frog\n217045,frog\n217046,dog\n217047,truck\n217048,cat\n217049,cat\n217050,deer\n217051,frog\n217052,automobile\n217053,airplane\n217054,automobile\n217055,frog\n217056,horse\n217057,truck\n217058,horse\n217059,cat\n217060,horse\n217061,dog\n217062,horse\n217063,frog\n217064,deer\n217065,deer\n217066,dog\n217067,truck\n217068,truck\n217069,bird\n217070,truck\n217071,automobile\n217072,airplane\n217073,cat\n217074,cat\n217075,deer\n217076,deer\n217077,truck\n217078,deer\n217079,deer\n217080,cat\n217081,automobile\n217082,ship\n217083,automobile\n217084,airplane\n217085,frog\n217086,truck\n217087,dog\n217088,airplane\n217089,frog\n217090,automobile\n217091,deer\n217092,ship\n217093,dog\n217094,ship\n217095,horse\n217096,horse\n217097,ship\n217098,airplane\n217099,dog\n217100,automobile\n217101,automobile\n217102,deer\n217103,airplane\n217104,deer\n217105,dog\n217106,truck\n217107,cat\n217108,frog\n217109,ship\n217110,deer\n217111,horse\n217112,cat\n217113,automobile\n217114,truck\n217115,dog\n217116,dog\n217117,dog\n217118,ship\n217119,dog\n217120,automobile\n217121,deer\n217122,automobile\n217123,truck\n217124,dog\n217125,deer\n217126,bird\n217127,frog\n217128,ship\n217129,frog\n217130,dog\n217131,automobile\n217132,dog\n217133,bird\n217134,airplane\n217135,cat\n217136,automobile\n217137,cat\n217138,bird\n217139,horse\n217140,horse\n217141,horse\n217142,deer\n217143,cat\n217144,horse\n217145,dog\n217146,horse\n217147,automobile\n217148,frog\n217149,horse\n217150,cat\n217151,cat\n217152,ship\n217153,cat\n217154,dog\n217155,horse\n217156,truck\n217157,automobile\n217158,deer\n217159,deer\n217160,ship\n217161,deer\n217162,deer\n217163,deer\n217164,deer\n217165,ship\n217166,frog\n217167,bird\n217168,dog\n217169,deer\n217170,cat\n217171,automobile\n217172,ship\n217173,horse\n217174,airplane\n217175,frog\n217176,deer\n217177,frog\n217178,airplane\n217179,frog\n217180,horse\n217181,dog\n217182,dog\n217183,automobile\n217184,frog\n217185,cat\n217186,truck\n217187,cat\n217188,dog\n217189,bird\n217190,frog\n217191,truck\n217192,ship\n217193,truck\n217194,dog\n217195,bird\n217196,bird\n217197,deer\n217198,automobile\n217199,frog\n217200,cat\n217201,ship\n217202,truck\n217203,ship\n217204,horse\n217205,deer\n217206,deer\n217207,airplane\n217208,deer\n217209,cat\n217210,horse\n217211,deer\n217212,cat\n217213,bird\n217214,bird\n217215,frog\n217216,cat\n217217,truck\n217218,bird\n217219,dog\n217220,ship\n217221,frog\n217222,bird\n217223,bird\n217224,truck\n217225,cat\n217226,cat\n217227,cat\n217228,bird\n217229,truck\n217230,cat\n217231,bird\n217232,dog\n217233,deer\n217234,ship\n217235,deer\n217236,truck\n217237,airplane\n217238,horse\n217239,bird\n217240,bird\n217241,truck\n217242,frog\n217243,frog\n217244,dog\n217245,ship\n217246,bird\n217247,cat\n217248,truck\n217249,frog\n217250,bird\n217251,dog\n217252,cat\n217253,deer\n217254,truck\n217255,truck\n217256,dog\n217257,dog\n217258,automobile\n217259,ship\n217260,airplane\n217261,frog\n217262,ship\n217263,bird\n217264,bird\n217265,dog\n217266,deer\n217267,deer\n217268,automobile\n217269,frog\n217270,frog\n217271,deer\n217272,frog\n217273,airplane\n217274,ship\n217275,automobile\n217276,deer\n217277,truck\n217278,airplane\n217279,dog\n217280,horse\n217281,automobile\n217282,bird\n217283,automobile\n217284,truck\n217285,cat\n217286,automobile\n217287,airplane\n217288,deer\n217289,frog\n217290,automobile\n217291,deer\n217292,dog\n217293,cat\n217294,ship\n217295,ship\n217296,dog\n217297,bird\n217298,bird\n217299,airplane\n217300,dog\n217301,frog\n217302,deer\n217303,truck\n217304,dog\n217305,frog\n217306,bird\n217307,deer\n217308,airplane\n217309,dog\n217310,deer\n217311,deer\n217312,deer\n217313,airplane\n217314,ship\n217315,frog\n217316,airplane\n217317,horse\n217318,cat\n217319,airplane\n217320,airplane\n217321,ship\n217322,cat\n217323,horse\n217324,ship\n217325,automobile\n217326,cat\n217327,automobile\n217328,bird\n217329,horse\n217330,truck\n217331,horse\n217332,horse\n217333,frog\n217334,ship\n217335,horse\n217336,frog\n217337,ship\n217338,frog\n217339,ship\n217340,horse\n217341,bird\n217342,truck\n217343,airplane\n217344,deer\n217345,deer\n217346,bird\n217347,deer\n217348,horse\n217349,cat\n217350,cat\n217351,cat\n217352,cat\n217353,truck\n217354,horse\n217355,airplane\n217356,deer\n217357,airplane\n217358,deer\n217359,dog\n217360,truck\n217361,automobile\n217362,deer\n217363,airplane\n217364,frog\n217365,airplane\n217366,ship\n217367,dog\n217368,deer\n217369,ship\n217370,bird\n217371,automobile\n217372,frog\n217373,dog\n217374,airplane\n217375,frog\n217376,truck\n217377,airplane\n217378,dog\n217379,frog\n217380,deer\n217381,frog\n217382,cat\n217383,truck\n217384,airplane\n217385,cat\n217386,frog\n217387,deer\n217388,bird\n217389,cat\n217390,airplane\n217391,deer\n217392,dog\n217393,dog\n217394,frog\n217395,bird\n217396,bird\n217397,truck\n217398,cat\n217399,cat\n217400,ship\n217401,truck\n217402,frog\n217403,deer\n217404,frog\n217405,truck\n217406,horse\n217407,airplane\n217408,bird\n217409,frog\n217410,dog\n217411,bird\n217412,dog\n217413,frog\n217414,automobile\n217415,ship\n217416,horse\n217417,ship\n217418,ship\n217419,dog\n217420,airplane\n217421,automobile\n217422,cat\n217423,automobile\n217424,dog\n217425,airplane\n217426,horse\n217427,automobile\n217428,airplane\n217429,truck\n217430,deer\n217431,horse\n217432,frog\n217433,automobile\n217434,horse\n217435,bird\n217436,truck\n217437,frog\n217438,automobile\n217439,cat\n217440,cat\n217441,horse\n217442,horse\n217443,automobile\n217444,dog\n217445,cat\n217446,ship\n217447,bird\n217448,deer\n217449,bird\n217450,airplane\n217451,frog\n217452,truck\n217453,dog\n217454,automobile\n217455,deer\n217456,truck\n217457,deer\n217458,ship\n217459,truck\n217460,cat\n217461,truck\n217462,cat\n217463,deer\n217464,dog\n217465,bird\n217466,truck\n217467,airplane\n217468,truck\n217469,ship\n217470,bird\n217471,deer\n217472,truck\n217473,frog\n217474,cat\n217475,deer\n217476,truck\n217477,airplane\n217478,airplane\n217479,frog\n217480,cat\n217481,deer\n217482,cat\n217483,deer\n217484,deer\n217485,cat\n217486,ship\n217487,dog\n217488,deer\n217489,deer\n217490,horse\n217491,deer\n217492,deer\n217493,frog\n217494,ship\n217495,cat\n217496,airplane\n217497,frog\n217498,deer\n217499,horse\n217500,ship\n217501,frog\n217502,cat\n217503,cat\n217504,deer\n217505,automobile\n217506,truck\n217507,dog\n217508,automobile\n217509,deer\n217510,deer\n217511,dog\n217512,bird\n217513,cat\n217514,truck\n217515,deer\n217516,automobile\n217517,truck\n217518,automobile\n217519,airplane\n217520,automobile\n217521,truck\n217522,cat\n217523,dog\n217524,airplane\n217525,airplane\n217526,cat\n217527,horse\n217528,bird\n217529,deer\n217530,deer\n217531,frog\n217532,frog\n217533,bird\n217534,bird\n217535,truck\n217536,ship\n217537,dog\n217538,deer\n217539,deer\n217540,cat\n217541,truck\n217542,horse\n217543,bird\n217544,ship\n217545,cat\n217546,truck\n217547,ship\n217548,frog\n217549,ship\n217550,deer\n217551,horse\n217552,bird\n217553,frog\n217554,truck\n217555,bird\n217556,airplane\n217557,airplane\n217558,airplane\n217559,dog\n217560,dog\n217561,frog\n217562,automobile\n217563,cat\n217564,automobile\n217565,airplane\n217566,cat\n217567,frog\n217568,dog\n217569,horse\n217570,airplane\n217571,cat\n217572,airplane\n217573,bird\n217574,dog\n217575,deer\n217576,truck\n217577,ship\n217578,horse\n217579,deer\n217580,truck\n217581,automobile\n217582,dog\n217583,dog\n217584,cat\n217585,frog\n217586,bird\n217587,deer\n217588,airplane\n217589,cat\n217590,horse\n217591,dog\n217592,deer\n217593,frog\n217594,deer\n217595,frog\n217596,horse\n217597,truck\n217598,deer\n217599,dog\n217600,ship\n217601,cat\n217602,bird\n217603,frog\n217604,truck\n217605,deer\n217606,frog\n217607,dog\n217608,automobile\n217609,frog\n217610,truck\n217611,deer\n217612,horse\n217613,dog\n217614,deer\n217615,automobile\n217616,dog\n217617,dog\n217618,dog\n217619,frog\n217620,deer\n217621,ship\n217622,frog\n217623,ship\n217624,horse\n217625,cat\n217626,automobile\n217627,dog\n217628,horse\n217629,truck\n217630,deer\n217631,cat\n217632,dog\n217633,airplane\n217634,ship\n217635,deer\n217636,deer\n217637,dog\n217638,horse\n217639,truck\n217640,deer\n217641,automobile\n217642,truck\n217643,airplane\n217644,dog\n217645,truck\n217646,horse\n217647,automobile\n217648,dog\n217649,deer\n217650,automobile\n217651,truck\n217652,deer\n217653,cat\n217654,bird\n217655,horse\n217656,horse\n217657,cat\n217658,airplane\n217659,deer\n217660,ship\n217661,deer\n217662,frog\n217663,cat\n217664,dog\n217665,truck\n217666,cat\n217667,cat\n217668,bird\n217669,cat\n217670,cat\n217671,deer\n217672,airplane\n217673,automobile\n217674,horse\n217675,dog\n217676,automobile\n217677,deer\n217678,deer\n217679,automobile\n217680,deer\n217681,automobile\n217682,cat\n217683,deer\n217684,automobile\n217685,horse\n217686,cat\n217687,ship\n217688,deer\n217689,deer\n217690,automobile\n217691,frog\n217692,deer\n217693,truck\n217694,cat\n217695,deer\n217696,truck\n217697,truck\n217698,dog\n217699,deer\n217700,horse\n217701,cat\n217702,horse\n217703,deer\n217704,horse\n217705,deer\n217706,frog\n217707,cat\n217708,frog\n217709,frog\n217710,horse\n217711,truck\n217712,frog\n217713,truck\n217714,deer\n217715,ship\n217716,truck\n217717,cat\n217718,frog\n217719,airplane\n217720,truck\n217721,cat\n217722,automobile\n217723,horse\n217724,deer\n217725,frog\n217726,bird\n217727,deer\n217728,bird\n217729,horse\n217730,ship\n217731,truck\n217732,automobile\n217733,ship\n217734,truck\n217735,truck\n217736,bird\n217737,deer\n217738,airplane\n217739,airplane\n217740,airplane\n217741,truck\n217742,bird\n217743,cat\n217744,ship\n217745,bird\n217746,airplane\n217747,truck\n217748,frog\n217749,dog\n217750,dog\n217751,horse\n217752,airplane\n217753,ship\n217754,deer\n217755,frog\n217756,deer\n217757,cat\n217758,horse\n217759,horse\n217760,horse\n217761,bird\n217762,horse\n217763,bird\n217764,truck\n217765,ship\n217766,dog\n217767,truck\n217768,bird\n217769,horse\n217770,deer\n217771,frog\n217772,horse\n217773,bird\n217774,automobile\n217775,truck\n217776,frog\n217777,frog\n217778,deer\n217779,truck\n217780,ship\n217781,dog\n217782,horse\n217783,dog\n217784,frog\n217785,deer\n217786,dog\n217787,bird\n217788,frog\n217789,deer\n217790,ship\n217791,cat\n217792,airplane\n217793,automobile\n217794,truck\n217795,cat\n217796,airplane\n217797,horse\n217798,dog\n217799,horse\n217800,bird\n217801,ship\n217802,bird\n217803,cat\n217804,truck\n217805,airplane\n217806,dog\n217807,automobile\n217808,airplane\n217809,dog\n217810,airplane\n217811,horse\n217812,airplane\n217813,bird\n217814,deer\n217815,deer\n217816,airplane\n217817,horse\n217818,frog\n217819,truck\n217820,bird\n217821,bird\n217822,automobile\n217823,dog\n217824,dog\n217825,truck\n217826,truck\n217827,ship\n217828,deer\n217829,truck\n217830,bird\n217831,bird\n217832,truck\n217833,airplane\n217834,horse\n217835,horse\n217836,cat\n217837,cat\n217838,truck\n217839,automobile\n217840,bird\n217841,bird\n217842,frog\n217843,dog\n217844,frog\n217845,frog\n217846,ship\n217847,dog\n217848,horse\n217849,horse\n217850,horse\n217851,cat\n217852,truck\n217853,horse\n217854,frog\n217855,frog\n217856,airplane\n217857,bird\n217858,deer\n217859,horse\n217860,dog\n217861,deer\n217862,truck\n217863,cat\n217864,automobile\n217865,cat\n217866,truck\n217867,horse\n217868,cat\n217869,cat\n217870,deer\n217871,bird\n217872,truck\n217873,dog\n217874,airplane\n217875,deer\n217876,truck\n217877,ship\n217878,cat\n217879,deer\n217880,dog\n217881,horse\n217882,frog\n217883,deer\n217884,horse\n217885,cat\n217886,cat\n217887,dog\n217888,horse\n217889,ship\n217890,deer\n217891,bird\n217892,bird\n217893,horse\n217894,ship\n217895,dog\n217896,deer\n217897,cat\n217898,airplane\n217899,airplane\n217900,deer\n217901,airplane\n217902,airplane\n217903,cat\n217904,bird\n217905,frog\n217906,cat\n217907,ship\n217908,automobile\n217909,bird\n217910,airplane\n217911,horse\n217912,bird\n217913,deer\n217914,frog\n217915,horse\n217916,automobile\n217917,dog\n217918,cat\n217919,truck\n217920,bird\n217921,ship\n217922,ship\n217923,airplane\n217924,frog\n217925,bird\n217926,truck\n217927,frog\n217928,frog\n217929,frog\n217930,cat\n217931,deer\n217932,ship\n217933,truck\n217934,deer\n217935,dog\n217936,automobile\n217937,frog\n217938,frog\n217939,deer\n217940,frog\n217941,ship\n217942,ship\n217943,bird\n217944,automobile\n217945,frog\n217946,deer\n217947,truck\n217948,truck\n217949,ship\n217950,dog\n217951,airplane\n217952,dog\n217953,dog\n217954,truck\n217955,frog\n217956,ship\n217957,horse\n217958,truck\n217959,cat\n217960,horse\n217961,cat\n217962,cat\n217963,airplane\n217964,dog\n217965,ship\n217966,airplane\n217967,frog\n217968,truck\n217969,airplane\n217970,deer\n217971,bird\n217972,horse\n217973,ship\n217974,truck\n217975,frog\n217976,deer\n217977,airplane\n217978,horse\n217979,truck\n217980,deer\n217981,deer\n217982,frog\n217983,ship\n217984,frog\n217985,deer\n217986,truck\n217987,cat\n217988,dog\n217989,ship\n217990,deer\n217991,dog\n217992,cat\n217993,bird\n217994,airplane\n217995,truck\n217996,cat\n217997,ship\n217998,horse\n217999,deer\n218000,horse\n218001,truck\n218002,airplane\n218003,cat\n218004,deer\n218005,airplane\n218006,ship\n218007,ship\n218008,frog\n218009,deer\n218010,deer\n218011,deer\n218012,truck\n218013,ship\n218014,cat\n218015,horse\n218016,horse\n218017,cat\n218018,airplane\n218019,cat\n218020,frog\n218021,truck\n218022,bird\n218023,bird\n218024,ship\n218025,airplane\n218026,horse\n218027,deer\n218028,horse\n218029,deer\n218030,cat\n218031,ship\n218032,truck\n218033,deer\n218034,bird\n218035,deer\n218036,cat\n218037,airplane\n218038,automobile\n218039,bird\n218040,ship\n218041,ship\n218042,cat\n218043,cat\n218044,horse\n218045,deer\n218046,horse\n218047,dog\n218048,bird\n218049,horse\n218050,frog\n218051,bird\n218052,ship\n218053,dog\n218054,airplane\n218055,dog\n218056,cat\n218057,dog\n218058,ship\n218059,deer\n218060,cat\n218061,ship\n218062,deer\n218063,horse\n218064,truck\n218065,automobile\n218066,frog\n218067,airplane\n218068,deer\n218069,deer\n218070,truck\n218071,ship\n218072,deer\n218073,truck\n218074,cat\n218075,frog\n218076,frog\n218077,frog\n218078,frog\n218079,deer\n218080,bird\n218081,cat\n218082,automobile\n218083,horse\n218084,horse\n218085,horse\n218086,horse\n218087,deer\n218088,bird\n218089,airplane\n218090,airplane\n218091,dog\n218092,truck\n218093,automobile\n218094,dog\n218095,dog\n218096,airplane\n218097,bird\n218098,dog\n218099,cat\n218100,deer\n218101,dog\n218102,bird\n218103,airplane\n218104,airplane\n218105,bird\n218106,deer\n218107,frog\n218108,bird\n218109,deer\n218110,horse\n218111,bird\n218112,horse\n218113,cat\n218114,ship\n218115,airplane\n218116,ship\n218117,cat\n218118,automobile\n218119,ship\n218120,dog\n218121,horse\n218122,dog\n218123,frog\n218124,dog\n218125,truck\n218126,cat\n218127,cat\n218128,deer\n218129,deer\n218130,truck\n218131,dog\n218132,truck\n218133,truck\n218134,bird\n218135,bird\n218136,ship\n218137,bird\n218138,bird\n218139,deer\n218140,bird\n218141,truck\n218142,frog\n218143,bird\n218144,dog\n218145,airplane\n218146,airplane\n218147,airplane\n218148,deer\n218149,bird\n218150,automobile\n218151,dog\n218152,deer\n218153,airplane\n218154,deer\n218155,bird\n218156,bird\n218157,deer\n218158,airplane\n218159,dog\n218160,deer\n218161,cat\n218162,deer\n218163,airplane\n218164,deer\n218165,bird\n218166,dog\n218167,ship\n218168,horse\n218169,dog\n218170,ship\n218171,deer\n218172,dog\n218173,cat\n218174,deer\n218175,dog\n218176,automobile\n218177,cat\n218178,bird\n218179,cat\n218180,bird\n218181,truck\n218182,cat\n218183,airplane\n218184,dog\n218185,bird\n218186,airplane\n218187,cat\n218188,cat\n218189,deer\n218190,horse\n218191,truck\n218192,deer\n218193,cat\n218194,airplane\n218195,horse\n218196,horse\n218197,deer\n218198,horse\n218199,bird\n218200,deer\n218201,truck\n218202,automobile\n218203,cat\n218204,frog\n218205,truck\n218206,ship\n218207,airplane\n218208,dog\n218209,dog\n218210,airplane\n218211,bird\n218212,bird\n218213,cat\n218214,deer\n218215,horse\n218216,automobile\n218217,dog\n218218,horse\n218219,bird\n218220,truck\n218221,dog\n218222,ship\n218223,airplane\n218224,truck\n218225,cat\n218226,ship\n218227,truck\n218228,airplane\n218229,frog\n218230,airplane\n218231,automobile\n218232,automobile\n218233,horse\n218234,cat\n218235,cat\n218236,truck\n218237,dog\n218238,deer\n218239,bird\n218240,bird\n218241,bird\n218242,ship\n218243,bird\n218244,truck\n218245,dog\n218246,truck\n218247,cat\n218248,deer\n218249,frog\n218250,dog\n218251,ship\n218252,dog\n218253,airplane\n218254,ship\n218255,deer\n218256,dog\n218257,deer\n218258,ship\n218259,airplane\n218260,horse\n218261,airplane\n218262,frog\n218263,deer\n218264,horse\n218265,ship\n218266,ship\n218267,airplane\n218268,dog\n218269,frog\n218270,cat\n218271,bird\n218272,cat\n218273,dog\n218274,ship\n218275,truck\n218276,automobile\n218277,horse\n218278,horse\n218279,frog\n218280,frog\n218281,frog\n218282,cat\n218283,ship\n218284,cat\n218285,dog\n218286,airplane\n218287,frog\n218288,frog\n218289,deer\n218290,truck\n218291,automobile\n218292,airplane\n218293,truck\n218294,bird\n218295,frog\n218296,cat\n218297,deer\n218298,deer\n218299,bird\n218300,airplane\n218301,cat\n218302,frog\n218303,truck\n218304,frog\n218305,airplane\n218306,deer\n218307,dog\n218308,deer\n218309,frog\n218310,truck\n218311,frog\n218312,airplane\n218313,cat\n218314,bird\n218315,deer\n218316,ship\n218317,dog\n218318,ship\n218319,deer\n218320,airplane\n218321,frog\n218322,truck\n218323,cat\n218324,cat\n218325,truck\n218326,bird\n218327,horse\n218328,ship\n218329,truck\n218330,cat\n218331,frog\n218332,ship\n218333,deer\n218334,airplane\n218335,deer\n218336,frog\n218337,airplane\n218338,deer\n218339,frog\n218340,automobile\n218341,cat\n218342,horse\n218343,bird\n218344,ship\n218345,truck\n218346,automobile\n218347,deer\n218348,automobile\n218349,ship\n218350,deer\n218351,cat\n218352,dog\n218353,deer\n218354,cat\n218355,cat\n218356,truck\n218357,truck\n218358,horse\n218359,truck\n218360,frog\n218361,cat\n218362,deer\n218363,automobile\n218364,truck\n218365,deer\n218366,dog\n218367,cat\n218368,frog\n218369,airplane\n218370,bird\n218371,frog\n218372,dog\n218373,deer\n218374,truck\n218375,truck\n218376,bird\n218377,frog\n218378,truck\n218379,dog\n218380,dog\n218381,cat\n218382,automobile\n218383,dog\n218384,bird\n218385,truck\n218386,automobile\n218387,truck\n218388,airplane\n218389,frog\n218390,airplane\n218391,frog\n218392,deer\n218393,frog\n218394,automobile\n218395,horse\n218396,deer\n218397,horse\n218398,deer\n218399,deer\n218400,airplane\n218401,cat\n218402,bird\n218403,truck\n218404,frog\n218405,deer\n218406,ship\n218407,automobile\n218408,truck\n218409,truck\n218410,horse\n218411,ship\n218412,airplane\n218413,frog\n218414,cat\n218415,cat\n218416,deer\n218417,ship\n218418,truck\n218419,dog\n218420,cat\n218421,bird\n218422,frog\n218423,dog\n218424,deer\n218425,frog\n218426,automobile\n218427,dog\n218428,cat\n218429,ship\n218430,bird\n218431,dog\n218432,cat\n218433,horse\n218434,cat\n218435,frog\n218436,airplane\n218437,frog\n218438,cat\n218439,horse\n218440,airplane\n218441,airplane\n218442,frog\n218443,bird\n218444,horse\n218445,cat\n218446,truck\n218447,bird\n218448,ship\n218449,horse\n218450,deer\n218451,dog\n218452,horse\n218453,airplane\n218454,automobile\n218455,cat\n218456,bird\n218457,truck\n218458,deer\n218459,deer\n218460,cat\n218461,truck\n218462,deer\n218463,airplane\n218464,frog\n218465,horse\n218466,truck\n218467,airplane\n218468,deer\n218469,cat\n218470,cat\n218471,cat\n218472,deer\n218473,bird\n218474,truck\n218475,deer\n218476,cat\n218477,ship\n218478,automobile\n218479,bird\n218480,truck\n218481,dog\n218482,airplane\n218483,frog\n218484,dog\n218485,automobile\n218486,dog\n218487,horse\n218488,automobile\n218489,dog\n218490,ship\n218491,horse\n218492,deer\n218493,horse\n218494,frog\n218495,bird\n218496,deer\n218497,cat\n218498,horse\n218499,truck\n218500,automobile\n218501,frog\n218502,frog\n218503,airplane\n218504,truck\n218505,bird\n218506,dog\n218507,dog\n218508,truck\n218509,ship\n218510,cat\n218511,cat\n218512,frog\n218513,truck\n218514,frog\n218515,deer\n218516,dog\n218517,truck\n218518,frog\n218519,automobile\n218520,deer\n218521,cat\n218522,dog\n218523,cat\n218524,frog\n218525,cat\n218526,dog\n218527,cat\n218528,bird\n218529,cat\n218530,cat\n218531,bird\n218532,dog\n218533,deer\n218534,dog\n218535,bird\n218536,truck\n218537,frog\n218538,ship\n218539,truck\n218540,automobile\n218541,airplane\n218542,ship\n218543,horse\n218544,bird\n218545,deer\n218546,deer\n218547,cat\n218548,airplane\n218549,truck\n218550,horse\n218551,bird\n218552,deer\n218553,ship\n218554,horse\n218555,airplane\n218556,horse\n218557,airplane\n218558,bird\n218559,bird\n218560,frog\n218561,cat\n218562,cat\n218563,bird\n218564,bird\n218565,truck\n218566,dog\n218567,dog\n218568,deer\n218569,truck\n218570,ship\n218571,airplane\n218572,bird\n218573,ship\n218574,dog\n218575,dog\n218576,dog\n218577,cat\n218578,airplane\n218579,horse\n218580,horse\n218581,deer\n218582,dog\n218583,airplane\n218584,deer\n218585,bird\n218586,cat\n218587,dog\n218588,dog\n218589,deer\n218590,truck\n218591,horse\n218592,cat\n218593,deer\n218594,ship\n218595,cat\n218596,deer\n218597,airplane\n218598,dog\n218599,frog\n218600,automobile\n218601,frog\n218602,ship\n218603,bird\n218604,horse\n218605,ship\n218606,horse\n218607,cat\n218608,deer\n218609,airplane\n218610,deer\n218611,frog\n218612,truck\n218613,deer\n218614,deer\n218615,automobile\n218616,deer\n218617,frog\n218618,dog\n218619,dog\n218620,frog\n218621,deer\n218622,deer\n218623,horse\n218624,dog\n218625,ship\n218626,horse\n218627,bird\n218628,deer\n218629,dog\n218630,airplane\n218631,automobile\n218632,dog\n218633,cat\n218634,cat\n218635,horse\n218636,cat\n218637,horse\n218638,ship\n218639,horse\n218640,frog\n218641,dog\n218642,airplane\n218643,airplane\n218644,bird\n218645,cat\n218646,frog\n218647,frog\n218648,cat\n218649,ship\n218650,dog\n218651,truck\n218652,automobile\n218653,frog\n218654,dog\n218655,airplane\n218656,airplane\n218657,truck\n218658,truck\n218659,truck\n218660,frog\n218661,automobile\n218662,truck\n218663,deer\n218664,frog\n218665,cat\n218666,automobile\n218667,cat\n218668,airplane\n218669,frog\n218670,deer\n218671,cat\n218672,dog\n218673,cat\n218674,frog\n218675,dog\n218676,dog\n218677,deer\n218678,deer\n218679,bird\n218680,cat\n218681,truck\n218682,dog\n218683,ship\n218684,frog\n218685,ship\n218686,bird\n218687,cat\n218688,deer\n218689,deer\n218690,ship\n218691,airplane\n218692,horse\n218693,bird\n218694,truck\n218695,bird\n218696,horse\n218697,horse\n218698,truck\n218699,horse\n218700,airplane\n218701,airplane\n218702,automobile\n218703,cat\n218704,cat\n218705,dog\n218706,deer\n218707,dog\n218708,horse\n218709,airplane\n218710,bird\n218711,ship\n218712,deer\n218713,frog\n218714,bird\n218715,truck\n218716,deer\n218717,automobile\n218718,ship\n218719,deer\n218720,cat\n218721,ship\n218722,deer\n218723,dog\n218724,deer\n218725,deer\n218726,frog\n218727,deer\n218728,cat\n218729,ship\n218730,bird\n218731,deer\n218732,automobile\n218733,automobile\n218734,cat\n218735,dog\n218736,deer\n218737,horse\n218738,dog\n218739,horse\n218740,deer\n218741,horse\n218742,truck\n218743,cat\n218744,automobile\n218745,automobile\n218746,truck\n218747,truck\n218748,horse\n218749,ship\n218750,automobile\n218751,horse\n218752,ship\n218753,frog\n218754,horse\n218755,automobile\n218756,cat\n218757,cat\n218758,horse\n218759,frog\n218760,deer\n218761,deer\n218762,truck\n218763,deer\n218764,frog\n218765,ship\n218766,bird\n218767,airplane\n218768,ship\n218769,dog\n218770,truck\n218771,dog\n218772,ship\n218773,horse\n218774,airplane\n218775,horse\n218776,cat\n218777,automobile\n218778,dog\n218779,cat\n218780,truck\n218781,bird\n218782,cat\n218783,deer\n218784,deer\n218785,deer\n218786,cat\n218787,cat\n218788,airplane\n218789,cat\n218790,deer\n218791,truck\n218792,frog\n218793,cat\n218794,cat\n218795,bird\n218796,airplane\n218797,frog\n218798,bird\n218799,dog\n218800,cat\n218801,airplane\n218802,truck\n218803,horse\n218804,deer\n218805,deer\n218806,frog\n218807,deer\n218808,airplane\n218809,deer\n218810,frog\n218811,cat\n218812,airplane\n218813,ship\n218814,deer\n218815,frog\n218816,cat\n218817,airplane\n218818,truck\n218819,deer\n218820,truck\n218821,bird\n218822,dog\n218823,bird\n218824,airplane\n218825,deer\n218826,cat\n218827,frog\n218828,dog\n218829,frog\n218830,dog\n218831,truck\n218832,dog\n218833,deer\n218834,bird\n218835,ship\n218836,frog\n218837,truck\n218838,frog\n218839,airplane\n218840,airplane\n218841,bird\n218842,frog\n218843,bird\n218844,cat\n218845,frog\n218846,bird\n218847,ship\n218848,ship\n218849,cat\n218850,deer\n218851,frog\n218852,horse\n218853,deer\n218854,airplane\n218855,dog\n218856,airplane\n218857,frog\n218858,bird\n218859,deer\n218860,deer\n218861,deer\n218862,automobile\n218863,ship\n218864,dog\n218865,deer\n218866,deer\n218867,bird\n218868,frog\n218869,automobile\n218870,frog\n218871,deer\n218872,deer\n218873,cat\n218874,airplane\n218875,deer\n218876,bird\n218877,frog\n218878,frog\n218879,cat\n218880,bird\n218881,deer\n218882,cat\n218883,airplane\n218884,deer\n218885,bird\n218886,horse\n218887,truck\n218888,deer\n218889,deer\n218890,frog\n218891,ship\n218892,deer\n218893,cat\n218894,bird\n218895,dog\n218896,frog\n218897,cat\n218898,ship\n218899,airplane\n218900,deer\n218901,horse\n218902,dog\n218903,cat\n218904,cat\n218905,ship\n218906,airplane\n218907,horse\n218908,bird\n218909,deer\n218910,dog\n218911,horse\n218912,ship\n218913,deer\n218914,dog\n218915,frog\n218916,bird\n218917,airplane\n218918,horse\n218919,frog\n218920,ship\n218921,truck\n218922,automobile\n218923,bird\n218924,truck\n218925,truck\n218926,truck\n218927,frog\n218928,cat\n218929,dog\n218930,frog\n218931,deer\n218932,cat\n218933,cat\n218934,deer\n218935,ship\n218936,frog\n218937,frog\n218938,ship\n218939,dog\n218940,frog\n218941,ship\n218942,truck\n218943,horse\n218944,truck\n218945,ship\n218946,horse\n218947,frog\n218948,automobile\n218949,automobile\n218950,frog\n218951,bird\n218952,deer\n218953,bird\n218954,cat\n218955,bird\n218956,frog\n218957,airplane\n218958,ship\n218959,truck\n218960,bird\n218961,truck\n218962,horse\n218963,bird\n218964,dog\n218965,dog\n218966,deer\n218967,airplane\n218968,dog\n218969,dog\n218970,frog\n218971,ship\n218972,deer\n218973,dog\n218974,cat\n218975,deer\n218976,automobile\n218977,cat\n218978,dog\n218979,frog\n218980,frog\n218981,cat\n218982,bird\n218983,frog\n218984,truck\n218985,truck\n218986,ship\n218987,horse\n218988,truck\n218989,airplane\n218990,airplane\n218991,airplane\n218992,deer\n218993,horse\n218994,frog\n218995,frog\n218996,airplane\n218997,cat\n218998,deer\n218999,automobile\n219000,truck\n219001,ship\n219002,cat\n219003,cat\n219004,ship\n219005,automobile\n219006,dog\n219007,cat\n219008,deer\n219009,deer\n219010,frog\n219011,ship\n219012,airplane\n219013,dog\n219014,cat\n219015,ship\n219016,horse\n219017,frog\n219018,dog\n219019,bird\n219020,ship\n219021,dog\n219022,dog\n219023,airplane\n219024,truck\n219025,cat\n219026,frog\n219027,bird\n219028,frog\n219029,dog\n219030,truck\n219031,ship\n219032,truck\n219033,truck\n219034,cat\n219035,deer\n219036,truck\n219037,dog\n219038,bird\n219039,deer\n219040,truck\n219041,horse\n219042,bird\n219043,deer\n219044,airplane\n219045,ship\n219046,truck\n219047,airplane\n219048,dog\n219049,cat\n219050,airplane\n219051,frog\n219052,deer\n219053,airplane\n219054,horse\n219055,frog\n219056,cat\n219057,dog\n219058,automobile\n219059,ship\n219060,bird\n219061,cat\n219062,horse\n219063,automobile\n219064,cat\n219065,automobile\n219066,cat\n219067,ship\n219068,deer\n219069,horse\n219070,ship\n219071,bird\n219072,cat\n219073,deer\n219074,deer\n219075,truck\n219076,airplane\n219077,horse\n219078,horse\n219079,truck\n219080,dog\n219081,deer\n219082,truck\n219083,deer\n219084,cat\n219085,airplane\n219086,cat\n219087,airplane\n219088,airplane\n219089,frog\n219090,deer\n219091,frog\n219092,horse\n219093,frog\n219094,cat\n219095,dog\n219096,ship\n219097,bird\n219098,cat\n219099,dog\n219100,airplane\n219101,frog\n219102,automobile\n219103,bird\n219104,dog\n219105,horse\n219106,bird\n219107,cat\n219108,automobile\n219109,dog\n219110,airplane\n219111,bird\n219112,dog\n219113,truck\n219114,automobile\n219115,deer\n219116,airplane\n219117,ship\n219118,cat\n219119,ship\n219120,cat\n219121,airplane\n219122,frog\n219123,airplane\n219124,deer\n219125,dog\n219126,cat\n219127,frog\n219128,ship\n219129,ship\n219130,horse\n219131,deer\n219132,ship\n219133,bird\n219134,ship\n219135,dog\n219136,dog\n219137,horse\n219138,deer\n219139,deer\n219140,truck\n219141,cat\n219142,horse\n219143,dog\n219144,ship\n219145,deer\n219146,bird\n219147,automobile\n219148,automobile\n219149,truck\n219150,deer\n219151,deer\n219152,dog\n219153,truck\n219154,cat\n219155,frog\n219156,horse\n219157,cat\n219158,frog\n219159,horse\n219160,airplane\n219161,deer\n219162,bird\n219163,bird\n219164,ship\n219165,frog\n219166,truck\n219167,deer\n219168,deer\n219169,dog\n219170,truck\n219171,horse\n219172,horse\n219173,frog\n219174,deer\n219175,bird\n219176,bird\n219177,cat\n219178,automobile\n219179,ship\n219180,bird\n219181,truck\n219182,airplane\n219183,deer\n219184,ship\n219185,deer\n219186,deer\n219187,deer\n219188,bird\n219189,horse\n219190,bird\n219191,cat\n219192,bird\n219193,truck\n219194,bird\n219195,deer\n219196,cat\n219197,truck\n219198,truck\n219199,bird\n219200,cat\n219201,truck\n219202,deer\n219203,airplane\n219204,deer\n219205,bird\n219206,deer\n219207,horse\n219208,horse\n219209,cat\n219210,truck\n219211,horse\n219212,bird\n219213,truck\n219214,ship\n219215,deer\n219216,bird\n219217,deer\n219218,frog\n219219,dog\n219220,frog\n219221,horse\n219222,cat\n219223,ship\n219224,truck\n219225,cat\n219226,dog\n219227,cat\n219228,automobile\n219229,cat\n219230,dog\n219231,bird\n219232,dog\n219233,cat\n219234,deer\n219235,deer\n219236,cat\n219237,ship\n219238,dog\n219239,dog\n219240,airplane\n219241,dog\n219242,cat\n219243,horse\n219244,dog\n219245,cat\n219246,airplane\n219247,horse\n219248,truck\n219249,ship\n219250,ship\n219251,airplane\n219252,cat\n219253,cat\n219254,cat\n219255,airplane\n219256,horse\n219257,deer\n219258,ship\n219259,deer\n219260,deer\n219261,ship\n219262,cat\n219263,truck\n219264,ship\n219265,automobile\n219266,cat\n219267,bird\n219268,cat\n219269,cat\n219270,ship\n219271,automobile\n219272,ship\n219273,frog\n219274,dog\n219275,bird\n219276,cat\n219277,automobile\n219278,cat\n219279,airplane\n219280,horse\n219281,cat\n219282,bird\n219283,frog\n219284,automobile\n219285,deer\n219286,automobile\n219287,dog\n219288,frog\n219289,airplane\n219290,frog\n219291,truck\n219292,airplane\n219293,truck\n219294,frog\n219295,dog\n219296,cat\n219297,horse\n219298,truck\n219299,cat\n219300,dog\n219301,airplane\n219302,cat\n219303,airplane\n219304,dog\n219305,bird\n219306,airplane\n219307,cat\n219308,cat\n219309,ship\n219310,dog\n219311,airplane\n219312,deer\n219313,dog\n219314,cat\n219315,ship\n219316,cat\n219317,horse\n219318,ship\n219319,dog\n219320,dog\n219321,cat\n219322,deer\n219323,airplane\n219324,deer\n219325,cat\n219326,airplane\n219327,airplane\n219328,bird\n219329,horse\n219330,truck\n219331,ship\n219332,dog\n219333,deer\n219334,frog\n219335,horse\n219336,airplane\n219337,airplane\n219338,ship\n219339,automobile\n219340,dog\n219341,cat\n219342,cat\n219343,truck\n219344,frog\n219345,truck\n219346,ship\n219347,automobile\n219348,deer\n219349,dog\n219350,truck\n219351,frog\n219352,deer\n219353,airplane\n219354,airplane\n219355,horse\n219356,deer\n219357,deer\n219358,dog\n219359,bird\n219360,cat\n219361,dog\n219362,airplane\n219363,deer\n219364,automobile\n219365,airplane\n219366,dog\n219367,horse\n219368,deer\n219369,horse\n219370,truck\n219371,bird\n219372,truck\n219373,ship\n219374,horse\n219375,truck\n219376,horse\n219377,automobile\n219378,cat\n219379,frog\n219380,deer\n219381,bird\n219382,cat\n219383,cat\n219384,automobile\n219385,truck\n219386,dog\n219387,deer\n219388,ship\n219389,horse\n219390,truck\n219391,automobile\n219392,cat\n219393,deer\n219394,truck\n219395,dog\n219396,horse\n219397,cat\n219398,frog\n219399,airplane\n219400,bird\n219401,deer\n219402,horse\n219403,cat\n219404,dog\n219405,frog\n219406,cat\n219407,truck\n219408,horse\n219409,automobile\n219410,dog\n219411,cat\n219412,horse\n219413,deer\n219414,horse\n219415,airplane\n219416,deer\n219417,horse\n219418,cat\n219419,truck\n219420,bird\n219421,cat\n219422,dog\n219423,deer\n219424,cat\n219425,frog\n219426,cat\n219427,dog\n219428,horse\n219429,dog\n219430,airplane\n219431,frog\n219432,horse\n219433,cat\n219434,cat\n219435,frog\n219436,airplane\n219437,dog\n219438,cat\n219439,airplane\n219440,dog\n219441,dog\n219442,dog\n219443,cat\n219444,airplane\n219445,ship\n219446,ship\n219447,frog\n219448,cat\n219449,automobile\n219450,cat\n219451,automobile\n219452,frog\n219453,truck\n219454,dog\n219455,dog\n219456,truck\n219457,frog\n219458,truck\n219459,frog\n219460,horse\n219461,truck\n219462,deer\n219463,automobile\n219464,cat\n219465,frog\n219466,horse\n219467,deer\n219468,ship\n219469,airplane\n219470,frog\n219471,automobile\n219472,deer\n219473,ship\n219474,cat\n219475,cat\n219476,dog\n219477,bird\n219478,bird\n219479,automobile\n219480,airplane\n219481,cat\n219482,airplane\n219483,horse\n219484,airplane\n219485,truck\n219486,bird\n219487,ship\n219488,cat\n219489,truck\n219490,dog\n219491,cat\n219492,horse\n219493,cat\n219494,cat\n219495,cat\n219496,frog\n219497,cat\n219498,deer\n219499,ship\n219500,deer\n219501,horse\n219502,bird\n219503,bird\n219504,truck\n219505,automobile\n219506,cat\n219507,ship\n219508,cat\n219509,horse\n219510,dog\n219511,deer\n219512,airplane\n219513,horse\n219514,cat\n219515,automobile\n219516,deer\n219517,cat\n219518,cat\n219519,automobile\n219520,cat\n219521,frog\n219522,frog\n219523,cat\n219524,horse\n219525,horse\n219526,bird\n219527,deer\n219528,bird\n219529,deer\n219530,truck\n219531,truck\n219532,deer\n219533,cat\n219534,cat\n219535,bird\n219536,cat\n219537,deer\n219538,frog\n219539,truck\n219540,cat\n219541,cat\n219542,bird\n219543,airplane\n219544,airplane\n219545,deer\n219546,airplane\n219547,dog\n219548,truck\n219549,horse\n219550,dog\n219551,frog\n219552,frog\n219553,truck\n219554,airplane\n219555,truck\n219556,frog\n219557,automobile\n219558,ship\n219559,ship\n219560,automobile\n219561,frog\n219562,airplane\n219563,deer\n219564,horse\n219565,cat\n219566,cat\n219567,ship\n219568,frog\n219569,airplane\n219570,ship\n219571,cat\n219572,dog\n219573,horse\n219574,automobile\n219575,horse\n219576,dog\n219577,frog\n219578,horse\n219579,cat\n219580,dog\n219581,dog\n219582,deer\n219583,ship\n219584,cat\n219585,bird\n219586,frog\n219587,airplane\n219588,deer\n219589,automobile\n219590,deer\n219591,cat\n219592,truck\n219593,frog\n219594,horse\n219595,frog\n219596,airplane\n219597,deer\n219598,truck\n219599,airplane\n219600,airplane\n219601,truck\n219602,deer\n219603,cat\n219604,truck\n219605,ship\n219606,bird\n219607,horse\n219608,deer\n219609,cat\n219610,cat\n219611,truck\n219612,dog\n219613,deer\n219614,dog\n219615,frog\n219616,frog\n219617,airplane\n219618,deer\n219619,bird\n219620,airplane\n219621,ship\n219622,frog\n219623,cat\n219624,automobile\n219625,horse\n219626,frog\n219627,horse\n219628,airplane\n219629,deer\n219630,airplane\n219631,dog\n219632,horse\n219633,truck\n219634,deer\n219635,bird\n219636,airplane\n219637,cat\n219638,dog\n219639,deer\n219640,deer\n219641,truck\n219642,deer\n219643,bird\n219644,automobile\n219645,bird\n219646,ship\n219647,horse\n219648,bird\n219649,deer\n219650,frog\n219651,deer\n219652,frog\n219653,deer\n219654,horse\n219655,deer\n219656,truck\n219657,ship\n219658,airplane\n219659,airplane\n219660,frog\n219661,dog\n219662,ship\n219663,bird\n219664,dog\n219665,deer\n219666,dog\n219667,bird\n219668,ship\n219669,frog\n219670,ship\n219671,dog\n219672,airplane\n219673,cat\n219674,deer\n219675,bird\n219676,bird\n219677,cat\n219678,dog\n219679,dog\n219680,truck\n219681,ship\n219682,automobile\n219683,airplane\n219684,ship\n219685,automobile\n219686,automobile\n219687,frog\n219688,frog\n219689,frog\n219690,bird\n219691,airplane\n219692,airplane\n219693,bird\n219694,truck\n219695,truck\n219696,deer\n219697,bird\n219698,airplane\n219699,deer\n219700,deer\n219701,truck\n219702,cat\n219703,frog\n219704,ship\n219705,airplane\n219706,truck\n219707,cat\n219708,ship\n219709,truck\n219710,truck\n219711,automobile\n219712,deer\n219713,truck\n219714,airplane\n219715,ship\n219716,frog\n219717,bird\n219718,horse\n219719,airplane\n219720,dog\n219721,dog\n219722,horse\n219723,dog\n219724,frog\n219725,airplane\n219726,airplane\n219727,truck\n219728,deer\n219729,airplane\n219730,cat\n219731,bird\n219732,horse\n219733,automobile\n219734,dog\n219735,truck\n219736,frog\n219737,frog\n219738,dog\n219739,airplane\n219740,frog\n219741,horse\n219742,horse\n219743,dog\n219744,airplane\n219745,truck\n219746,horse\n219747,airplane\n219748,dog\n219749,bird\n219750,dog\n219751,truck\n219752,cat\n219753,frog\n219754,deer\n219755,horse\n219756,horse\n219757,airplane\n219758,automobile\n219759,deer\n219760,cat\n219761,frog\n219762,deer\n219763,cat\n219764,dog\n219765,ship\n219766,deer\n219767,ship\n219768,ship\n219769,truck\n219770,airplane\n219771,frog\n219772,truck\n219773,truck\n219774,truck\n219775,deer\n219776,cat\n219777,airplane\n219778,ship\n219779,deer\n219780,ship\n219781,deer\n219782,cat\n219783,truck\n219784,automobile\n219785,frog\n219786,dog\n219787,cat\n219788,ship\n219789,dog\n219790,cat\n219791,automobile\n219792,automobile\n219793,deer\n219794,deer\n219795,dog\n219796,deer\n219797,airplane\n219798,cat\n219799,ship\n219800,automobile\n219801,frog\n219802,dog\n219803,truck\n219804,truck\n219805,dog\n219806,horse\n219807,bird\n219808,bird\n219809,cat\n219810,cat\n219811,airplane\n219812,airplane\n219813,deer\n219814,frog\n219815,horse\n219816,automobile\n219817,automobile\n219818,airplane\n219819,ship\n219820,frog\n219821,frog\n219822,frog\n219823,deer\n219824,airplane\n219825,bird\n219826,automobile\n219827,bird\n219828,dog\n219829,automobile\n219830,dog\n219831,truck\n219832,truck\n219833,automobile\n219834,truck\n219835,cat\n219836,airplane\n219837,frog\n219838,airplane\n219839,cat\n219840,frog\n219841,dog\n219842,bird\n219843,cat\n219844,airplane\n219845,airplane\n219846,dog\n219847,cat\n219848,ship\n219849,truck\n219850,frog\n219851,horse\n219852,bird\n219853,cat\n219854,deer\n219855,truck\n219856,cat\n219857,dog\n219858,airplane\n219859,deer\n219860,bird\n219861,frog\n219862,horse\n219863,automobile\n219864,cat\n219865,cat\n219866,bird\n219867,cat\n219868,automobile\n219869,ship\n219870,ship\n219871,frog\n219872,deer\n219873,frog\n219874,deer\n219875,deer\n219876,deer\n219877,deer\n219878,deer\n219879,horse\n219880,cat\n219881,truck\n219882,deer\n219883,ship\n219884,truck\n219885,horse\n219886,bird\n219887,cat\n219888,deer\n219889,frog\n219890,airplane\n219891,deer\n219892,ship\n219893,ship\n219894,frog\n219895,bird\n219896,frog\n219897,automobile\n219898,horse\n219899,automobile\n219900,dog\n219901,cat\n219902,ship\n219903,bird\n219904,bird\n219905,frog\n219906,cat\n219907,dog\n219908,airplane\n219909,dog\n219910,bird\n219911,deer\n219912,truck\n219913,frog\n219914,dog\n219915,horse\n219916,dog\n219917,bird\n219918,horse\n219919,frog\n219920,frog\n219921,truck\n219922,airplane\n219923,dog\n219924,frog\n219925,airplane\n219926,truck\n219927,deer\n219928,airplane\n219929,truck\n219930,truck\n219931,dog\n219932,deer\n219933,automobile\n219934,airplane\n219935,bird\n219936,truck\n219937,dog\n219938,airplane\n219939,dog\n219940,airplane\n219941,dog\n219942,deer\n219943,cat\n219944,bird\n219945,frog\n219946,horse\n219947,deer\n219948,frog\n219949,horse\n219950,ship\n219951,dog\n219952,truck\n219953,horse\n219954,deer\n219955,deer\n219956,ship\n219957,deer\n219958,cat\n219959,frog\n219960,cat\n219961,airplane\n219962,automobile\n219963,dog\n219964,frog\n219965,deer\n219966,cat\n219967,automobile\n219968,ship\n219969,ship\n219970,bird\n219971,ship\n219972,frog\n219973,dog\n219974,cat\n219975,dog\n219976,airplane\n219977,ship\n219978,dog\n219979,bird\n219980,frog\n219981,dog\n219982,horse\n219983,cat\n219984,horse\n219985,deer\n219986,airplane\n219987,cat\n219988,airplane\n219989,cat\n219990,automobile\n219991,bird\n219992,ship\n219993,dog\n219994,automobile\n219995,horse\n219996,frog\n219997,airplane\n219998,horse\n219999,deer\n220000,dog\n220001,frog\n220002,automobile\n220003,bird\n220004,truck\n220005,ship\n220006,cat\n220007,ship\n220008,horse\n220009,dog\n220010,frog\n220011,automobile\n220012,automobile\n220013,cat\n220014,cat\n220015,deer\n220016,bird\n220017,dog\n220018,truck\n220019,ship\n220020,airplane\n220021,deer\n220022,bird\n220023,deer\n220024,ship\n220025,ship\n220026,bird\n220027,truck\n220028,cat\n220029,airplane\n220030,automobile\n220031,airplane\n220032,truck\n220033,cat\n220034,deer\n220035,truck\n220036,dog\n220037,cat\n220038,truck\n220039,bird\n220040,deer\n220041,frog\n220042,ship\n220043,horse\n220044,horse\n220045,cat\n220046,automobile\n220047,truck\n220048,cat\n220049,dog\n220050,deer\n220051,truck\n220052,dog\n220053,cat\n220054,frog\n220055,deer\n220056,truck\n220057,airplane\n220058,dog\n220059,truck\n220060,ship\n220061,airplane\n220062,horse\n220063,horse\n220064,cat\n220065,dog\n220066,ship\n220067,automobile\n220068,airplane\n220069,deer\n220070,deer\n220071,automobile\n220072,truck\n220073,cat\n220074,deer\n220075,deer\n220076,horse\n220077,truck\n220078,cat\n220079,airplane\n220080,bird\n220081,cat\n220082,deer\n220083,bird\n220084,deer\n220085,airplane\n220086,deer\n220087,deer\n220088,ship\n220089,dog\n220090,ship\n220091,airplane\n220092,airplane\n220093,automobile\n220094,frog\n220095,deer\n220096,cat\n220097,automobile\n220098,automobile\n220099,cat\n220100,deer\n220101,horse\n220102,horse\n220103,cat\n220104,bird\n220105,dog\n220106,bird\n220107,automobile\n220108,truck\n220109,dog\n220110,horse\n220111,ship\n220112,cat\n220113,deer\n220114,frog\n220115,cat\n220116,frog\n220117,frog\n220118,deer\n220119,dog\n220120,deer\n220121,cat\n220122,horse\n220123,dog\n220124,cat\n220125,horse\n220126,horse\n220127,cat\n220128,dog\n220129,truck\n220130,deer\n220131,horse\n220132,deer\n220133,dog\n220134,deer\n220135,truck\n220136,truck\n220137,truck\n220138,frog\n220139,frog\n220140,truck\n220141,frog\n220142,ship\n220143,automobile\n220144,cat\n220145,dog\n220146,cat\n220147,deer\n220148,truck\n220149,dog\n220150,cat\n220151,frog\n220152,cat\n220153,cat\n220154,cat\n220155,bird\n220156,ship\n220157,frog\n220158,frog\n220159,frog\n220160,horse\n220161,frog\n220162,bird\n220163,ship\n220164,deer\n220165,cat\n220166,truck\n220167,frog\n220168,automobile\n220169,truck\n220170,dog\n220171,frog\n220172,automobile\n220173,airplane\n220174,dog\n220175,horse\n220176,dog\n220177,cat\n220178,frog\n220179,dog\n220180,frog\n220181,dog\n220182,truck\n220183,cat\n220184,horse\n220185,dog\n220186,ship\n220187,horse\n220188,automobile\n220189,cat\n220190,bird\n220191,dog\n220192,truck\n220193,frog\n220194,automobile\n220195,dog\n220196,cat\n220197,ship\n220198,frog\n220199,horse\n220200,truck\n220201,airplane\n220202,cat\n220203,cat\n220204,deer\n220205,bird\n220206,airplane\n220207,dog\n220208,deer\n220209,truck\n220210,horse\n220211,airplane\n220212,ship\n220213,deer\n220214,cat\n220215,bird\n220216,cat\n220217,automobile\n220218,bird\n220219,horse\n220220,frog\n220221,truck\n220222,bird\n220223,frog\n220224,automobile\n220225,automobile\n220226,airplane\n220227,dog\n220228,cat\n220229,automobile\n220230,frog\n220231,airplane\n220232,deer\n220233,ship\n220234,deer\n220235,cat\n220236,dog\n220237,horse\n220238,airplane\n220239,deer\n220240,cat\n220241,deer\n220242,bird\n220243,cat\n220244,bird\n220245,dog\n220246,airplane\n220247,dog\n220248,truck\n220249,bird\n220250,bird\n220251,deer\n220252,ship\n220253,ship\n220254,deer\n220255,truck\n220256,airplane\n220257,deer\n220258,airplane\n220259,dog\n220260,frog\n220261,cat\n220262,automobile\n220263,horse\n220264,automobile\n220265,dog\n220266,deer\n220267,horse\n220268,bird\n220269,automobile\n220270,automobile\n220271,horse\n220272,ship\n220273,ship\n220274,bird\n220275,dog\n220276,deer\n220277,truck\n220278,frog\n220279,deer\n220280,deer\n220281,automobile\n220282,automobile\n220283,horse\n220284,dog\n220285,horse\n220286,truck\n220287,frog\n220288,automobile\n220289,dog\n220290,frog\n220291,airplane\n220292,dog\n220293,deer\n220294,dog\n220295,horse\n220296,deer\n220297,airplane\n220298,bird\n220299,cat\n220300,automobile\n220301,deer\n220302,horse\n220303,airplane\n220304,deer\n220305,dog\n220306,cat\n220307,automobile\n220308,bird\n220309,bird\n220310,airplane\n220311,bird\n220312,frog\n220313,horse\n220314,dog\n220315,frog\n220316,deer\n220317,dog\n220318,horse\n220319,horse\n220320,bird\n220321,horse\n220322,deer\n220323,automobile\n220324,automobile\n220325,cat\n220326,ship\n220327,cat\n220328,bird\n220329,horse\n220330,cat\n220331,cat\n220332,airplane\n220333,automobile\n220334,frog\n220335,automobile\n220336,frog\n220337,airplane\n220338,bird\n220339,horse\n220340,horse\n220341,cat\n220342,frog\n220343,truck\n220344,cat\n220345,truck\n220346,bird\n220347,airplane\n220348,cat\n220349,ship\n220350,deer\n220351,ship\n220352,horse\n220353,frog\n220354,frog\n220355,horse\n220356,deer\n220357,cat\n220358,frog\n220359,cat\n220360,truck\n220361,truck\n220362,bird\n220363,horse\n220364,horse\n220365,airplane\n220366,truck\n220367,cat\n220368,bird\n220369,deer\n220370,ship\n220371,bird\n220372,cat\n220373,frog\n220374,horse\n220375,deer\n220376,deer\n220377,frog\n220378,deer\n220379,horse\n220380,cat\n220381,airplane\n220382,ship\n220383,deer\n220384,ship\n220385,horse\n220386,cat\n220387,frog\n220388,cat\n220389,ship\n220390,cat\n220391,airplane\n220392,bird\n220393,deer\n220394,horse\n220395,bird\n220396,truck\n220397,horse\n220398,dog\n220399,horse\n220400,ship\n220401,truck\n220402,horse\n220403,automobile\n220404,frog\n220405,automobile\n220406,bird\n220407,truck\n220408,deer\n220409,cat\n220410,deer\n220411,truck\n220412,bird\n220413,horse\n220414,automobile\n220415,truck\n220416,frog\n220417,horse\n220418,automobile\n220419,frog\n220420,automobile\n220421,bird\n220422,cat\n220423,deer\n220424,deer\n220425,frog\n220426,horse\n220427,bird\n220428,bird\n220429,bird\n220430,bird\n220431,truck\n220432,horse\n220433,truck\n220434,ship\n220435,deer\n220436,dog\n220437,bird\n220438,cat\n220439,cat\n220440,bird\n220441,truck\n220442,cat\n220443,cat\n220444,automobile\n220445,dog\n220446,cat\n220447,ship\n220448,airplane\n220449,truck\n220450,deer\n220451,dog\n220452,truck\n220453,deer\n220454,deer\n220455,bird\n220456,deer\n220457,dog\n220458,cat\n220459,automobile\n220460,ship\n220461,truck\n220462,truck\n220463,truck\n220464,frog\n220465,frog\n220466,bird\n220467,cat\n220468,frog\n220469,bird\n220470,deer\n220471,deer\n220472,deer\n220473,truck\n220474,deer\n220475,airplane\n220476,cat\n220477,airplane\n220478,dog\n220479,deer\n220480,automobile\n220481,frog\n220482,dog\n220483,deer\n220484,frog\n220485,frog\n220486,deer\n220487,frog\n220488,dog\n220489,cat\n220490,truck\n220491,dog\n220492,horse\n220493,automobile\n220494,dog\n220495,deer\n220496,bird\n220497,ship\n220498,horse\n220499,automobile\n220500,automobile\n220501,truck\n220502,automobile\n220503,deer\n220504,truck\n220505,ship\n220506,frog\n220507,horse\n220508,cat\n220509,bird\n220510,dog\n220511,cat\n220512,ship\n220513,bird\n220514,airplane\n220515,frog\n220516,dog\n220517,truck\n220518,dog\n220519,frog\n220520,truck\n220521,dog\n220522,frog\n220523,dog\n220524,dog\n220525,deer\n220526,bird\n220527,frog\n220528,airplane\n220529,deer\n220530,bird\n220531,deer\n220532,bird\n220533,horse\n220534,frog\n220535,dog\n220536,frog\n220537,frog\n220538,horse\n220539,truck\n220540,frog\n220541,cat\n220542,bird\n220543,dog\n220544,deer\n220545,dog\n220546,frog\n220547,frog\n220548,cat\n220549,truck\n220550,bird\n220551,dog\n220552,frog\n220553,truck\n220554,frog\n220555,cat\n220556,bird\n220557,frog\n220558,horse\n220559,cat\n220560,ship\n220561,airplane\n220562,bird\n220563,truck\n220564,ship\n220565,truck\n220566,truck\n220567,cat\n220568,dog\n220569,airplane\n220570,airplane\n220571,dog\n220572,bird\n220573,truck\n220574,cat\n220575,horse\n220576,frog\n220577,cat\n220578,automobile\n220579,dog\n220580,cat\n220581,airplane\n220582,bird\n220583,horse\n220584,deer\n220585,automobile\n220586,automobile\n220587,frog\n220588,dog\n220589,truck\n220590,airplane\n220591,ship\n220592,truck\n220593,horse\n220594,automobile\n220595,cat\n220596,ship\n220597,dog\n220598,bird\n220599,deer\n220600,deer\n220601,ship\n220602,frog\n220603,automobile\n220604,cat\n220605,ship\n220606,bird\n220607,ship\n220608,airplane\n220609,cat\n220610,deer\n220611,automobile\n220612,deer\n220613,frog\n220614,frog\n220615,truck\n220616,cat\n220617,cat\n220618,dog\n220619,deer\n220620,airplane\n220621,horse\n220622,dog\n220623,cat\n220624,ship\n220625,bird\n220626,horse\n220627,frog\n220628,horse\n220629,frog\n220630,ship\n220631,deer\n220632,bird\n220633,airplane\n220634,airplane\n220635,truck\n220636,ship\n220637,airplane\n220638,frog\n220639,cat\n220640,bird\n220641,horse\n220642,bird\n220643,airplane\n220644,bird\n220645,truck\n220646,horse\n220647,ship\n220648,truck\n220649,automobile\n220650,cat\n220651,frog\n220652,cat\n220653,deer\n220654,deer\n220655,truck\n220656,horse\n220657,horse\n220658,cat\n220659,cat\n220660,frog\n220661,cat\n220662,cat\n220663,horse\n220664,cat\n220665,airplane\n220666,ship\n220667,deer\n220668,cat\n220669,ship\n220670,frog\n220671,airplane\n220672,horse\n220673,bird\n220674,airplane\n220675,frog\n220676,frog\n220677,deer\n220678,automobile\n220679,frog\n220680,bird\n220681,airplane\n220682,ship\n220683,airplane\n220684,bird\n220685,horse\n220686,bird\n220687,cat\n220688,ship\n220689,cat\n220690,automobile\n220691,airplane\n220692,ship\n220693,cat\n220694,deer\n220695,cat\n220696,frog\n220697,horse\n220698,ship\n220699,deer\n220700,horse\n220701,automobile\n220702,automobile\n220703,cat\n220704,dog\n220705,cat\n220706,cat\n220707,dog\n220708,truck\n220709,dog\n220710,deer\n220711,dog\n220712,horse\n220713,deer\n220714,horse\n220715,dog\n220716,deer\n220717,horse\n220718,dog\n220719,airplane\n220720,dog\n220721,truck\n220722,ship\n220723,frog\n220724,frog\n220725,ship\n220726,horse\n220727,airplane\n220728,ship\n220729,cat\n220730,cat\n220731,truck\n220732,truck\n220733,cat\n220734,bird\n220735,automobile\n220736,bird\n220737,frog\n220738,bird\n220739,frog\n220740,truck\n220741,deer\n220742,ship\n220743,horse\n220744,airplane\n220745,cat\n220746,deer\n220747,automobile\n220748,bird\n220749,horse\n220750,bird\n220751,truck\n220752,truck\n220753,airplane\n220754,deer\n220755,horse\n220756,automobile\n220757,truck\n220758,horse\n220759,airplane\n220760,horse\n220761,cat\n220762,automobile\n220763,automobile\n220764,ship\n220765,ship\n220766,horse\n220767,deer\n220768,dog\n220769,bird\n220770,truck\n220771,airplane\n220772,horse\n220773,truck\n220774,airplane\n220775,cat\n220776,horse\n220777,airplane\n220778,frog\n220779,dog\n220780,cat\n220781,ship\n220782,bird\n220783,deer\n220784,truck\n220785,deer\n220786,bird\n220787,dog\n220788,horse\n220789,ship\n220790,dog\n220791,cat\n220792,cat\n220793,airplane\n220794,airplane\n220795,horse\n220796,cat\n220797,ship\n220798,automobile\n220799,ship\n220800,ship\n220801,airplane\n220802,dog\n220803,cat\n220804,horse\n220805,frog\n220806,dog\n220807,deer\n220808,automobile\n220809,deer\n220810,truck\n220811,dog\n220812,airplane\n220813,cat\n220814,dog\n220815,ship\n220816,truck\n220817,horse\n220818,deer\n220819,bird\n220820,ship\n220821,airplane\n220822,airplane\n220823,horse\n220824,cat\n220825,horse\n220826,dog\n220827,truck\n220828,dog\n220829,bird\n220830,deer\n220831,frog\n220832,horse\n220833,horse\n220834,deer\n220835,automobile\n220836,deer\n220837,bird\n220838,airplane\n220839,cat\n220840,deer\n220841,airplane\n220842,frog\n220843,airplane\n220844,horse\n220845,deer\n220846,automobile\n220847,airplane\n220848,cat\n220849,deer\n220850,ship\n220851,automobile\n220852,automobile\n220853,deer\n220854,cat\n220855,dog\n220856,cat\n220857,horse\n220858,frog\n220859,cat\n220860,truck\n220861,frog\n220862,bird\n220863,automobile\n220864,ship\n220865,cat\n220866,dog\n220867,cat\n220868,airplane\n220869,bird\n220870,dog\n220871,deer\n220872,cat\n220873,horse\n220874,dog\n220875,automobile\n220876,cat\n220877,bird\n220878,ship\n220879,bird\n220880,automobile\n220881,deer\n220882,horse\n220883,automobile\n220884,cat\n220885,deer\n220886,dog\n220887,frog\n220888,deer\n220889,ship\n220890,truck\n220891,truck\n220892,airplane\n220893,ship\n220894,automobile\n220895,dog\n220896,automobile\n220897,truck\n220898,dog\n220899,frog\n220900,frog\n220901,cat\n220902,deer\n220903,deer\n220904,cat\n220905,dog\n220906,ship\n220907,frog\n220908,airplane\n220909,automobile\n220910,frog\n220911,dog\n220912,truck\n220913,bird\n220914,deer\n220915,ship\n220916,airplane\n220917,bird\n220918,truck\n220919,airplane\n220920,airplane\n220921,bird\n220922,frog\n220923,automobile\n220924,bird\n220925,horse\n220926,cat\n220927,horse\n220928,deer\n220929,frog\n220930,ship\n220931,truck\n220932,deer\n220933,airplane\n220934,truck\n220935,airplane\n220936,cat\n220937,horse\n220938,deer\n220939,horse\n220940,dog\n220941,deer\n220942,airplane\n220943,deer\n220944,horse\n220945,frog\n220946,airplane\n220947,deer\n220948,cat\n220949,cat\n220950,dog\n220951,deer\n220952,horse\n220953,ship\n220954,ship\n220955,horse\n220956,dog\n220957,cat\n220958,airplane\n220959,truck\n220960,automobile\n220961,horse\n220962,deer\n220963,horse\n220964,horse\n220965,horse\n220966,cat\n220967,cat\n220968,horse\n220969,truck\n220970,deer\n220971,truck\n220972,deer\n220973,dog\n220974,cat\n220975,bird\n220976,cat\n220977,dog\n220978,bird\n220979,automobile\n220980,horse\n220981,deer\n220982,automobile\n220983,airplane\n220984,deer\n220985,cat\n220986,bird\n220987,deer\n220988,cat\n220989,horse\n220990,airplane\n220991,ship\n220992,ship\n220993,truck\n220994,deer\n220995,deer\n220996,deer\n220997,horse\n220998,cat\n220999,dog\n221000,horse\n221001,airplane\n221002,dog\n221003,truck\n221004,deer\n221005,dog\n221006,automobile\n221007,deer\n221008,truck\n221009,frog\n221010,dog\n221011,dog\n221012,airplane\n221013,deer\n221014,bird\n221015,automobile\n221016,deer\n221017,automobile\n221018,cat\n221019,cat\n221020,airplane\n221021,horse\n221022,horse\n221023,airplane\n221024,deer\n221025,automobile\n221026,airplane\n221027,ship\n221028,frog\n221029,dog\n221030,horse\n221031,dog\n221032,truck\n221033,dog\n221034,frog\n221035,bird\n221036,dog\n221037,truck\n221038,deer\n221039,ship\n221040,ship\n221041,deer\n221042,automobile\n221043,dog\n221044,horse\n221045,bird\n221046,bird\n221047,deer\n221048,truck\n221049,horse\n221050,ship\n221051,bird\n221052,ship\n221053,deer\n221054,deer\n221055,bird\n221056,truck\n221057,bird\n221058,bird\n221059,dog\n221060,airplane\n221061,deer\n221062,frog\n221063,automobile\n221064,frog\n221065,ship\n221066,ship\n221067,bird\n221068,cat\n221069,truck\n221070,bird\n221071,airplane\n221072,airplane\n221073,cat\n221074,cat\n221075,frog\n221076,deer\n221077,cat\n221078,bird\n221079,horse\n221080,dog\n221081,ship\n221082,deer\n221083,ship\n221084,ship\n221085,frog\n221086,truck\n221087,deer\n221088,frog\n221089,ship\n221090,horse\n221091,horse\n221092,bird\n221093,deer\n221094,cat\n221095,deer\n221096,ship\n221097,ship\n221098,dog\n221099,airplane\n221100,deer\n221101,cat\n221102,bird\n221103,horse\n221104,dog\n221105,horse\n221106,truck\n221107,automobile\n221108,automobile\n221109,dog\n221110,truck\n221111,bird\n221112,cat\n221113,horse\n221114,cat\n221115,frog\n221116,bird\n221117,cat\n221118,deer\n221119,cat\n221120,deer\n221121,dog\n221122,airplane\n221123,cat\n221124,airplane\n221125,horse\n221126,dog\n221127,deer\n221128,cat\n221129,truck\n221130,cat\n221131,bird\n221132,frog\n221133,frog\n221134,truck\n221135,cat\n221136,automobile\n221137,dog\n221138,airplane\n221139,deer\n221140,truck\n221141,airplane\n221142,airplane\n221143,horse\n221144,deer\n221145,deer\n221146,horse\n221147,horse\n221148,horse\n221149,deer\n221150,frog\n221151,bird\n221152,ship\n221153,automobile\n221154,cat\n221155,horse\n221156,horse\n221157,frog\n221158,automobile\n221159,frog\n221160,airplane\n221161,dog\n221162,cat\n221163,deer\n221164,deer\n221165,deer\n221166,frog\n221167,bird\n221168,cat\n221169,dog\n221170,dog\n221171,dog\n221172,horse\n221173,airplane\n221174,deer\n221175,dog\n221176,cat\n221177,cat\n221178,cat\n221179,automobile\n221180,deer\n221181,deer\n221182,truck\n221183,deer\n221184,truck\n221185,ship\n221186,airplane\n221187,automobile\n221188,dog\n221189,bird\n221190,truck\n221191,ship\n221192,dog\n221193,dog\n221194,ship\n221195,truck\n221196,airplane\n221197,deer\n221198,automobile\n221199,cat\n221200,horse\n221201,horse\n221202,airplane\n221203,airplane\n221204,dog\n221205,deer\n221206,deer\n221207,deer\n221208,dog\n221209,airplane\n221210,frog\n221211,frog\n221212,airplane\n221213,horse\n221214,bird\n221215,bird\n221216,bird\n221217,frog\n221218,cat\n221219,airplane\n221220,horse\n221221,truck\n221222,cat\n221223,cat\n221224,bird\n221225,horse\n221226,ship\n221227,cat\n221228,bird\n221229,cat\n221230,dog\n221231,horse\n221232,ship\n221233,dog\n221234,truck\n221235,dog\n221236,deer\n221237,cat\n221238,truck\n221239,airplane\n221240,horse\n221241,truck\n221242,cat\n221243,cat\n221244,ship\n221245,airplane\n221246,frog\n221247,airplane\n221248,bird\n221249,ship\n221250,automobile\n221251,airplane\n221252,frog\n221253,truck\n221254,horse\n221255,truck\n221256,airplane\n221257,ship\n221258,automobile\n221259,ship\n221260,airplane\n221261,bird\n221262,deer\n221263,dog\n221264,truck\n221265,cat\n221266,airplane\n221267,horse\n221268,dog\n221269,deer\n221270,automobile\n221271,deer\n221272,ship\n221273,bird\n221274,bird\n221275,deer\n221276,deer\n221277,cat\n221278,deer\n221279,dog\n221280,cat\n221281,airplane\n221282,dog\n221283,truck\n221284,deer\n221285,cat\n221286,frog\n221287,automobile\n221288,airplane\n221289,cat\n221290,deer\n221291,deer\n221292,cat\n221293,frog\n221294,airplane\n221295,bird\n221296,airplane\n221297,bird\n221298,deer\n221299,ship\n221300,truck\n221301,bird\n221302,frog\n221303,automobile\n221304,bird\n221305,frog\n221306,bird\n221307,truck\n221308,deer\n221309,dog\n221310,truck\n221311,ship\n221312,horse\n221313,deer\n221314,frog\n221315,ship\n221316,ship\n221317,deer\n221318,cat\n221319,truck\n221320,automobile\n221321,automobile\n221322,ship\n221323,horse\n221324,airplane\n221325,cat\n221326,ship\n221327,airplane\n221328,frog\n221329,horse\n221330,truck\n221331,dog\n221332,truck\n221333,cat\n221334,frog\n221335,airplane\n221336,cat\n221337,cat\n221338,frog\n221339,bird\n221340,horse\n221341,truck\n221342,frog\n221343,automobile\n221344,bird\n221345,horse\n221346,horse\n221347,horse\n221348,cat\n221349,dog\n221350,dog\n221351,ship\n221352,truck\n221353,bird\n221354,ship\n221355,horse\n221356,dog\n221357,cat\n221358,cat\n221359,deer\n221360,frog\n221361,ship\n221362,ship\n221363,cat\n221364,ship\n221365,ship\n221366,automobile\n221367,horse\n221368,airplane\n221369,frog\n221370,dog\n221371,cat\n221372,truck\n221373,dog\n221374,airplane\n221375,cat\n221376,automobile\n221377,bird\n221378,airplane\n221379,truck\n221380,dog\n221381,automobile\n221382,horse\n221383,bird\n221384,automobile\n221385,truck\n221386,ship\n221387,cat\n221388,horse\n221389,airplane\n221390,deer\n221391,airplane\n221392,deer\n221393,ship\n221394,deer\n221395,cat\n221396,dog\n221397,deer\n221398,deer\n221399,deer\n221400,automobile\n221401,airplane\n221402,horse\n221403,bird\n221404,deer\n221405,frog\n221406,airplane\n221407,truck\n221408,truck\n221409,frog\n221410,ship\n221411,automobile\n221412,automobile\n221413,dog\n221414,ship\n221415,automobile\n221416,frog\n221417,automobile\n221418,deer\n221419,dog\n221420,airplane\n221421,airplane\n221422,cat\n221423,bird\n221424,deer\n221425,dog\n221426,bird\n221427,bird\n221428,deer\n221429,airplane\n221430,bird\n221431,bird\n221432,bird\n221433,airplane\n221434,dog\n221435,ship\n221436,automobile\n221437,frog\n221438,automobile\n221439,dog\n221440,dog\n221441,airplane\n221442,deer\n221443,deer\n221444,deer\n221445,ship\n221446,frog\n221447,deer\n221448,horse\n221449,ship\n221450,deer\n221451,airplane\n221452,frog\n221453,truck\n221454,deer\n221455,automobile\n221456,truck\n221457,truck\n221458,deer\n221459,airplane\n221460,bird\n221461,deer\n221462,truck\n221463,frog\n221464,dog\n221465,truck\n221466,frog\n221467,deer\n221468,truck\n221469,airplane\n221470,bird\n221471,bird\n221472,cat\n221473,automobile\n221474,deer\n221475,horse\n221476,bird\n221477,horse\n221478,bird\n221479,bird\n221480,cat\n221481,deer\n221482,bird\n221483,truck\n221484,bird\n221485,deer\n221486,cat\n221487,bird\n221488,horse\n221489,horse\n221490,dog\n221491,cat\n221492,cat\n221493,automobile\n221494,deer\n221495,cat\n221496,dog\n221497,airplane\n221498,airplane\n221499,ship\n221500,automobile\n221501,cat\n221502,dog\n221503,bird\n221504,airplane\n221505,automobile\n221506,cat\n221507,dog\n221508,bird\n221509,cat\n221510,deer\n221511,cat\n221512,automobile\n221513,airplane\n221514,frog\n221515,bird\n221516,automobile\n221517,dog\n221518,horse\n221519,airplane\n221520,cat\n221521,horse\n221522,horse\n221523,dog\n221524,frog\n221525,ship\n221526,cat\n221527,automobile\n221528,horse\n221529,automobile\n221530,deer\n221531,dog\n221532,cat\n221533,deer\n221534,truck\n221535,airplane\n221536,truck\n221537,cat\n221538,deer\n221539,bird\n221540,airplane\n221541,ship\n221542,automobile\n221543,horse\n221544,airplane\n221545,horse\n221546,truck\n221547,horse\n221548,deer\n221549,horse\n221550,cat\n221551,cat\n221552,deer\n221553,airplane\n221554,deer\n221555,cat\n221556,deer\n221557,horse\n221558,frog\n221559,dog\n221560,ship\n221561,bird\n221562,ship\n221563,truck\n221564,automobile\n221565,truck\n221566,cat\n221567,truck\n221568,deer\n221569,dog\n221570,automobile\n221571,dog\n221572,frog\n221573,cat\n221574,frog\n221575,dog\n221576,airplane\n221577,dog\n221578,horse\n221579,airplane\n221580,frog\n221581,frog\n221582,ship\n221583,bird\n221584,cat\n221585,deer\n221586,dog\n221587,cat\n221588,cat\n221589,cat\n221590,cat\n221591,frog\n221592,dog\n221593,frog\n221594,bird\n221595,dog\n221596,cat\n221597,automobile\n221598,airplane\n221599,airplane\n221600,frog\n221601,bird\n221602,frog\n221603,horse\n221604,automobile\n221605,truck\n221606,truck\n221607,deer\n221608,cat\n221609,horse\n221610,horse\n221611,airplane\n221612,dog\n221613,deer\n221614,cat\n221615,horse\n221616,cat\n221617,horse\n221618,frog\n221619,frog\n221620,airplane\n221621,cat\n221622,cat\n221623,cat\n221624,automobile\n221625,dog\n221626,dog\n221627,cat\n221628,automobile\n221629,truck\n221630,dog\n221631,truck\n221632,deer\n221633,cat\n221634,cat\n221635,automobile\n221636,ship\n221637,bird\n221638,dog\n221639,frog\n221640,cat\n221641,dog\n221642,bird\n221643,cat\n221644,bird\n221645,frog\n221646,deer\n221647,cat\n221648,cat\n221649,airplane\n221650,frog\n221651,truck\n221652,frog\n221653,cat\n221654,cat\n221655,cat\n221656,frog\n221657,horse\n221658,frog\n221659,automobile\n221660,airplane\n221661,ship\n221662,truck\n221663,bird\n221664,deer\n221665,automobile\n221666,deer\n221667,deer\n221668,deer\n221669,horse\n221670,dog\n221671,bird\n221672,bird\n221673,deer\n221674,frog\n221675,horse\n221676,ship\n221677,ship\n221678,horse\n221679,ship\n221680,airplane\n221681,cat\n221682,automobile\n221683,automobile\n221684,dog\n221685,airplane\n221686,deer\n221687,frog\n221688,deer\n221689,dog\n221690,dog\n221691,cat\n221692,deer\n221693,truck\n221694,frog\n221695,airplane\n221696,airplane\n221697,frog\n221698,frog\n221699,cat\n221700,frog\n221701,bird\n221702,deer\n221703,cat\n221704,bird\n221705,airplane\n221706,cat\n221707,bird\n221708,deer\n221709,cat\n221710,deer\n221711,automobile\n221712,deer\n221713,cat\n221714,automobile\n221715,horse\n221716,automobile\n221717,frog\n221718,deer\n221719,automobile\n221720,truck\n221721,horse\n221722,frog\n221723,airplane\n221724,automobile\n221725,horse\n221726,frog\n221727,truck\n221728,bird\n221729,horse\n221730,truck\n221731,automobile\n221732,cat\n221733,cat\n221734,bird\n221735,dog\n221736,deer\n221737,ship\n221738,airplane\n221739,cat\n221740,horse\n221741,cat\n221742,ship\n221743,horse\n221744,truck\n221745,frog\n221746,automobile\n221747,airplane\n221748,deer\n221749,dog\n221750,frog\n221751,airplane\n221752,ship\n221753,cat\n221754,cat\n221755,truck\n221756,bird\n221757,truck\n221758,dog\n221759,ship\n221760,deer\n221761,automobile\n221762,truck\n221763,deer\n221764,deer\n221765,ship\n221766,deer\n221767,truck\n221768,truck\n221769,bird\n221770,ship\n221771,deer\n221772,ship\n221773,dog\n221774,dog\n221775,truck\n221776,ship\n221777,dog\n221778,deer\n221779,deer\n221780,deer\n221781,frog\n221782,truck\n221783,frog\n221784,ship\n221785,horse\n221786,frog\n221787,ship\n221788,frog\n221789,deer\n221790,cat\n221791,automobile\n221792,cat\n221793,bird\n221794,horse\n221795,cat\n221796,horse\n221797,airplane\n221798,cat\n221799,truck\n221800,frog\n221801,deer\n221802,airplane\n221803,frog\n221804,deer\n221805,bird\n221806,truck\n221807,ship\n221808,deer\n221809,bird\n221810,dog\n221811,truck\n221812,truck\n221813,frog\n221814,deer\n221815,truck\n221816,deer\n221817,airplane\n221818,ship\n221819,frog\n221820,dog\n221821,horse\n221822,bird\n221823,truck\n221824,deer\n221825,horse\n221826,ship\n221827,bird\n221828,cat\n221829,ship\n221830,cat\n221831,cat\n221832,dog\n221833,truck\n221834,dog\n221835,deer\n221836,truck\n221837,airplane\n221838,truck\n221839,ship\n221840,deer\n221841,cat\n221842,horse\n221843,truck\n221844,bird\n221845,airplane\n221846,truck\n221847,cat\n221848,automobile\n221849,deer\n221850,cat\n221851,airplane\n221852,airplane\n221853,cat\n221854,horse\n221855,dog\n221856,dog\n221857,airplane\n221858,deer\n221859,truck\n221860,cat\n221861,dog\n221862,deer\n221863,cat\n221864,cat\n221865,automobile\n221866,horse\n221867,frog\n221868,horse\n221869,horse\n221870,airplane\n221871,dog\n221872,ship\n221873,deer\n221874,truck\n221875,deer\n221876,airplane\n221877,deer\n221878,cat\n221879,bird\n221880,cat\n221881,dog\n221882,automobile\n221883,bird\n221884,automobile\n221885,bird\n221886,dog\n221887,bird\n221888,airplane\n221889,truck\n221890,automobile\n221891,deer\n221892,horse\n221893,truck\n221894,horse\n221895,deer\n221896,ship\n221897,automobile\n221898,truck\n221899,automobile\n221900,frog\n221901,frog\n221902,truck\n221903,deer\n221904,truck\n221905,horse\n221906,dog\n221907,airplane\n221908,frog\n221909,automobile\n221910,frog\n221911,deer\n221912,cat\n221913,dog\n221914,horse\n221915,deer\n221916,airplane\n221917,bird\n221918,deer\n221919,ship\n221920,deer\n221921,horse\n221922,automobile\n221923,airplane\n221924,deer\n221925,horse\n221926,frog\n221927,bird\n221928,horse\n221929,automobile\n221930,deer\n221931,bird\n221932,truck\n221933,automobile\n221934,deer\n221935,cat\n221936,dog\n221937,bird\n221938,cat\n221939,frog\n221940,truck\n221941,frog\n221942,airplane\n221943,cat\n221944,truck\n221945,airplane\n221946,ship\n221947,bird\n221948,ship\n221949,cat\n221950,automobile\n221951,dog\n221952,airplane\n221953,bird\n221954,automobile\n221955,bird\n221956,cat\n221957,ship\n221958,cat\n221959,truck\n221960,truck\n221961,ship\n221962,deer\n221963,frog\n221964,bird\n221965,cat\n221966,truck\n221967,dog\n221968,cat\n221969,frog\n221970,truck\n221971,airplane\n221972,ship\n221973,frog\n221974,dog\n221975,cat\n221976,bird\n221977,automobile\n221978,automobile\n221979,ship\n221980,horse\n221981,ship\n221982,cat\n221983,airplane\n221984,ship\n221985,horse\n221986,cat\n221987,truck\n221988,airplane\n221989,truck\n221990,automobile\n221991,truck\n221992,automobile\n221993,dog\n221994,bird\n221995,frog\n221996,deer\n221997,dog\n221998,frog\n221999,horse\n222000,truck\n222001,truck\n222002,deer\n222003,ship\n222004,airplane\n222005,horse\n222006,deer\n222007,bird\n222008,frog\n222009,cat\n222010,bird\n222011,bird\n222012,truck\n222013,cat\n222014,dog\n222015,airplane\n222016,dog\n222017,truck\n222018,truck\n222019,airplane\n222020,deer\n222021,truck\n222022,cat\n222023,bird\n222024,cat\n222025,horse\n222026,dog\n222027,horse\n222028,dog\n222029,frog\n222030,dog\n222031,truck\n222032,horse\n222033,airplane\n222034,cat\n222035,truck\n222036,dog\n222037,airplane\n222038,cat\n222039,cat\n222040,bird\n222041,dog\n222042,cat\n222043,frog\n222044,cat\n222045,truck\n222046,bird\n222047,cat\n222048,horse\n222049,airplane\n222050,cat\n222051,bird\n222052,deer\n222053,frog\n222054,cat\n222055,cat\n222056,airplane\n222057,truck\n222058,automobile\n222059,airplane\n222060,dog\n222061,bird\n222062,deer\n222063,ship\n222064,airplane\n222065,truck\n222066,ship\n222067,airplane\n222068,bird\n222069,deer\n222070,ship\n222071,frog\n222072,airplane\n222073,automobile\n222074,deer\n222075,horse\n222076,airplane\n222077,horse\n222078,cat\n222079,bird\n222080,horse\n222081,deer\n222082,deer\n222083,bird\n222084,frog\n222085,deer\n222086,horse\n222087,truck\n222088,automobile\n222089,horse\n222090,deer\n222091,dog\n222092,deer\n222093,dog\n222094,frog\n222095,deer\n222096,deer\n222097,airplane\n222098,cat\n222099,automobile\n222100,deer\n222101,horse\n222102,cat\n222103,frog\n222104,frog\n222105,deer\n222106,frog\n222107,cat\n222108,cat\n222109,cat\n222110,ship\n222111,cat\n222112,cat\n222113,deer\n222114,truck\n222115,deer\n222116,truck\n222117,truck\n222118,truck\n222119,bird\n222120,cat\n222121,cat\n222122,cat\n222123,frog\n222124,deer\n222125,airplane\n222126,cat\n222127,truck\n222128,ship\n222129,cat\n222130,automobile\n222131,truck\n222132,frog\n222133,horse\n222134,bird\n222135,truck\n222136,horse\n222137,deer\n222138,truck\n222139,cat\n222140,bird\n222141,horse\n222142,airplane\n222143,deer\n222144,deer\n222145,bird\n222146,horse\n222147,ship\n222148,truck\n222149,horse\n222150,dog\n222151,frog\n222152,deer\n222153,frog\n222154,truck\n222155,dog\n222156,horse\n222157,deer\n222158,dog\n222159,ship\n222160,airplane\n222161,truck\n222162,dog\n222163,frog\n222164,ship\n222165,airplane\n222166,automobile\n222167,dog\n222168,dog\n222169,dog\n222170,bird\n222171,cat\n222172,frog\n222173,horse\n222174,frog\n222175,deer\n222176,ship\n222177,horse\n222178,frog\n222179,dog\n222180,deer\n222181,ship\n222182,frog\n222183,airplane\n222184,ship\n222185,truck\n222186,dog\n222187,truck\n222188,horse\n222189,horse\n222190,cat\n222191,frog\n222192,airplane\n222193,truck\n222194,bird\n222195,bird\n222196,bird\n222197,bird\n222198,frog\n222199,automobile\n222200,dog\n222201,deer\n222202,frog\n222203,horse\n222204,airplane\n222205,cat\n222206,truck\n222207,cat\n222208,airplane\n222209,deer\n222210,cat\n222211,dog\n222212,automobile\n222213,deer\n222214,deer\n222215,bird\n222216,automobile\n222217,truck\n222218,horse\n222219,airplane\n222220,horse\n222221,dog\n222222,cat\n222223,dog\n222224,horse\n222225,frog\n222226,horse\n222227,automobile\n222228,dog\n222229,cat\n222230,horse\n222231,airplane\n222232,truck\n222233,deer\n222234,truck\n222235,frog\n222236,frog\n222237,automobile\n222238,horse\n222239,truck\n222240,truck\n222241,bird\n222242,automobile\n222243,frog\n222244,horse\n222245,airplane\n222246,bird\n222247,deer\n222248,horse\n222249,deer\n222250,airplane\n222251,dog\n222252,cat\n222253,truck\n222254,dog\n222255,cat\n222256,automobile\n222257,dog\n222258,frog\n222259,dog\n222260,frog\n222261,truck\n222262,dog\n222263,cat\n222264,deer\n222265,truck\n222266,airplane\n222267,bird\n222268,deer\n222269,truck\n222270,cat\n222271,bird\n222272,cat\n222273,airplane\n222274,horse\n222275,ship\n222276,bird\n222277,deer\n222278,dog\n222279,horse\n222280,deer\n222281,horse\n222282,frog\n222283,frog\n222284,cat\n222285,frog\n222286,ship\n222287,deer\n222288,truck\n222289,cat\n222290,cat\n222291,bird\n222292,cat\n222293,dog\n222294,airplane\n222295,frog\n222296,truck\n222297,bird\n222298,ship\n222299,automobile\n222300,dog\n222301,airplane\n222302,truck\n222303,dog\n222304,dog\n222305,truck\n222306,automobile\n222307,deer\n222308,truck\n222309,cat\n222310,automobile\n222311,automobile\n222312,horse\n222313,airplane\n222314,truck\n222315,bird\n222316,bird\n222317,airplane\n222318,horse\n222319,automobile\n222320,truck\n222321,truck\n222322,horse\n222323,automobile\n222324,cat\n222325,deer\n222326,deer\n222327,truck\n222328,truck\n222329,horse\n222330,horse\n222331,bird\n222332,deer\n222333,airplane\n222334,bird\n222335,dog\n222336,cat\n222337,airplane\n222338,cat\n222339,dog\n222340,airplane\n222341,frog\n222342,ship\n222343,deer\n222344,horse\n222345,deer\n222346,truck\n222347,dog\n222348,airplane\n222349,airplane\n222350,cat\n222351,deer\n222352,deer\n222353,bird\n222354,cat\n222355,truck\n222356,ship\n222357,horse\n222358,deer\n222359,ship\n222360,dog\n222361,ship\n222362,frog\n222363,horse\n222364,cat\n222365,dog\n222366,truck\n222367,dog\n222368,truck\n222369,truck\n222370,airplane\n222371,bird\n222372,cat\n222373,cat\n222374,automobile\n222375,dog\n222376,airplane\n222377,bird\n222378,horse\n222379,cat\n222380,deer\n222381,dog\n222382,horse\n222383,cat\n222384,deer\n222385,deer\n222386,truck\n222387,bird\n222388,bird\n222389,cat\n222390,deer\n222391,cat\n222392,frog\n222393,cat\n222394,cat\n222395,deer\n222396,bird\n222397,cat\n222398,cat\n222399,dog\n222400,horse\n222401,frog\n222402,deer\n222403,ship\n222404,frog\n222405,dog\n222406,dog\n222407,bird\n222408,horse\n222409,dog\n222410,truck\n222411,automobile\n222412,bird\n222413,dog\n222414,bird\n222415,automobile\n222416,frog\n222417,cat\n222418,deer\n222419,frog\n222420,ship\n222421,cat\n222422,frog\n222423,truck\n222424,cat\n222425,horse\n222426,bird\n222427,frog\n222428,bird\n222429,automobile\n222430,horse\n222431,airplane\n222432,cat\n222433,ship\n222434,airplane\n222435,horse\n222436,horse\n222437,cat\n222438,deer\n222439,truck\n222440,deer\n222441,deer\n222442,cat\n222443,frog\n222444,cat\n222445,cat\n222446,horse\n222447,frog\n222448,deer\n222449,cat\n222450,airplane\n222451,horse\n222452,bird\n222453,horse\n222454,airplane\n222455,bird\n222456,cat\n222457,cat\n222458,airplane\n222459,truck\n222460,truck\n222461,cat\n222462,cat\n222463,dog\n222464,automobile\n222465,bird\n222466,cat\n222467,frog\n222468,bird\n222469,airplane\n222470,horse\n222471,airplane\n222472,airplane\n222473,cat\n222474,cat\n222475,deer\n222476,ship\n222477,dog\n222478,deer\n222479,deer\n222480,deer\n222481,horse\n222482,dog\n222483,truck\n222484,airplane\n222485,airplane\n222486,deer\n222487,truck\n222488,automobile\n222489,frog\n222490,truck\n222491,bird\n222492,horse\n222493,truck\n222494,dog\n222495,dog\n222496,truck\n222497,automobile\n222498,deer\n222499,cat\n222500,horse\n222501,dog\n222502,deer\n222503,bird\n222504,deer\n222505,cat\n222506,ship\n222507,deer\n222508,truck\n222509,frog\n222510,dog\n222511,ship\n222512,horse\n222513,truck\n222514,horse\n222515,truck\n222516,dog\n222517,ship\n222518,frog\n222519,dog\n222520,horse\n222521,automobile\n222522,dog\n222523,ship\n222524,truck\n222525,ship\n222526,horse\n222527,dog\n222528,automobile\n222529,frog\n222530,frog\n222531,ship\n222532,dog\n222533,horse\n222534,deer\n222535,cat\n222536,dog\n222537,bird\n222538,bird\n222539,horse\n222540,automobile\n222541,deer\n222542,ship\n222543,ship\n222544,truck\n222545,truck\n222546,frog\n222547,airplane\n222548,deer\n222549,deer\n222550,dog\n222551,bird\n222552,horse\n222553,deer\n222554,deer\n222555,airplane\n222556,dog\n222557,frog\n222558,dog\n222559,horse\n222560,cat\n222561,dog\n222562,cat\n222563,automobile\n222564,horse\n222565,deer\n222566,truck\n222567,deer\n222568,cat\n222569,cat\n222570,frog\n222571,truck\n222572,cat\n222573,bird\n222574,dog\n222575,truck\n222576,truck\n222577,automobile\n222578,bird\n222579,horse\n222580,cat\n222581,dog\n222582,frog\n222583,cat\n222584,horse\n222585,cat\n222586,dog\n222587,airplane\n222588,deer\n222589,truck\n222590,frog\n222591,truck\n222592,deer\n222593,frog\n222594,horse\n222595,truck\n222596,dog\n222597,cat\n222598,frog\n222599,automobile\n222600,deer\n222601,horse\n222602,ship\n222603,deer\n222604,bird\n222605,deer\n222606,frog\n222607,cat\n222608,airplane\n222609,horse\n222610,airplane\n222611,horse\n222612,frog\n222613,frog\n222614,horse\n222615,airplane\n222616,frog\n222617,ship\n222618,frog\n222619,ship\n222620,frog\n222621,frog\n222622,frog\n222623,dog\n222624,dog\n222625,frog\n222626,deer\n222627,automobile\n222628,dog\n222629,automobile\n222630,horse\n222631,automobile\n222632,deer\n222633,airplane\n222634,cat\n222635,dog\n222636,automobile\n222637,ship\n222638,cat\n222639,horse\n222640,truck\n222641,airplane\n222642,deer\n222643,horse\n222644,ship\n222645,dog\n222646,bird\n222647,automobile\n222648,truck\n222649,deer\n222650,airplane\n222651,truck\n222652,deer\n222653,airplane\n222654,frog\n222655,dog\n222656,airplane\n222657,frog\n222658,horse\n222659,truck\n222660,truck\n222661,dog\n222662,ship\n222663,ship\n222664,deer\n222665,ship\n222666,bird\n222667,automobile\n222668,airplane\n222669,frog\n222670,horse\n222671,truck\n222672,automobile\n222673,cat\n222674,deer\n222675,deer\n222676,bird\n222677,deer\n222678,horse\n222679,deer\n222680,ship\n222681,horse\n222682,truck\n222683,truck\n222684,truck\n222685,cat\n222686,dog\n222687,bird\n222688,airplane\n222689,horse\n222690,ship\n222691,cat\n222692,cat\n222693,cat\n222694,deer\n222695,deer\n222696,bird\n222697,truck\n222698,automobile\n222699,bird\n222700,frog\n222701,dog\n222702,cat\n222703,horse\n222704,bird\n222705,truck\n222706,bird\n222707,automobile\n222708,deer\n222709,cat\n222710,airplane\n222711,horse\n222712,cat\n222713,deer\n222714,horse\n222715,deer\n222716,automobile\n222717,deer\n222718,frog\n222719,horse\n222720,deer\n222721,automobile\n222722,deer\n222723,truck\n222724,airplane\n222725,horse\n222726,automobile\n222727,airplane\n222728,cat\n222729,automobile\n222730,frog\n222731,truck\n222732,frog\n222733,deer\n222734,horse\n222735,truck\n222736,truck\n222737,deer\n222738,frog\n222739,cat\n222740,frog\n222741,bird\n222742,cat\n222743,dog\n222744,deer\n222745,dog\n222746,cat\n222747,ship\n222748,deer\n222749,bird\n222750,frog\n222751,cat\n222752,frog\n222753,bird\n222754,cat\n222755,frog\n222756,cat\n222757,truck\n222758,deer\n222759,ship\n222760,dog\n222761,cat\n222762,dog\n222763,deer\n222764,frog\n222765,airplane\n222766,cat\n222767,ship\n222768,cat\n222769,dog\n222770,deer\n222771,dog\n222772,bird\n222773,automobile\n222774,truck\n222775,cat\n222776,cat\n222777,truck\n222778,bird\n222779,horse\n222780,deer\n222781,dog\n222782,airplane\n222783,bird\n222784,airplane\n222785,deer\n222786,deer\n222787,ship\n222788,cat\n222789,truck\n222790,frog\n222791,dog\n222792,dog\n222793,deer\n222794,automobile\n222795,deer\n222796,deer\n222797,deer\n222798,bird\n222799,ship\n222800,ship\n222801,deer\n222802,cat\n222803,airplane\n222804,deer\n222805,truck\n222806,deer\n222807,truck\n222808,airplane\n222809,cat\n222810,deer\n222811,bird\n222812,bird\n222813,ship\n222814,deer\n222815,dog\n222816,frog\n222817,frog\n222818,ship\n222819,dog\n222820,automobile\n222821,dog\n222822,frog\n222823,truck\n222824,deer\n222825,dog\n222826,truck\n222827,deer\n222828,airplane\n222829,horse\n222830,frog\n222831,ship\n222832,truck\n222833,ship\n222834,cat\n222835,truck\n222836,truck\n222837,bird\n222838,airplane\n222839,deer\n222840,dog\n222841,horse\n222842,cat\n222843,automobile\n222844,horse\n222845,truck\n222846,automobile\n222847,ship\n222848,frog\n222849,truck\n222850,dog\n222851,dog\n222852,ship\n222853,truck\n222854,deer\n222855,deer\n222856,horse\n222857,cat\n222858,ship\n222859,truck\n222860,ship\n222861,deer\n222862,dog\n222863,frog\n222864,dog\n222865,horse\n222866,deer\n222867,cat\n222868,airplane\n222869,deer\n222870,frog\n222871,frog\n222872,dog\n222873,ship\n222874,deer\n222875,bird\n222876,deer\n222877,bird\n222878,frog\n222879,dog\n222880,deer\n222881,bird\n222882,horse\n222883,cat\n222884,frog\n222885,airplane\n222886,deer\n222887,frog\n222888,ship\n222889,cat\n222890,deer\n222891,dog\n222892,cat\n222893,truck\n222894,deer\n222895,truck\n222896,cat\n222897,ship\n222898,frog\n222899,bird\n222900,horse\n222901,automobile\n222902,dog\n222903,frog\n222904,bird\n222905,cat\n222906,bird\n222907,automobile\n222908,truck\n222909,dog\n222910,horse\n222911,truck\n222912,automobile\n222913,bird\n222914,airplane\n222915,horse\n222916,truck\n222917,ship\n222918,cat\n222919,frog\n222920,frog\n222921,horse\n222922,frog\n222923,automobile\n222924,truck\n222925,truck\n222926,deer\n222927,dog\n222928,cat\n222929,truck\n222930,dog\n222931,ship\n222932,deer\n222933,deer\n222934,cat\n222935,automobile\n222936,frog\n222937,ship\n222938,automobile\n222939,automobile\n222940,ship\n222941,cat\n222942,truck\n222943,dog\n222944,cat\n222945,frog\n222946,ship\n222947,cat\n222948,deer\n222949,horse\n222950,cat\n222951,horse\n222952,frog\n222953,cat\n222954,cat\n222955,truck\n222956,ship\n222957,deer\n222958,truck\n222959,frog\n222960,truck\n222961,cat\n222962,ship\n222963,cat\n222964,horse\n222965,dog\n222966,cat\n222967,airplane\n222968,cat\n222969,bird\n222970,dog\n222971,dog\n222972,bird\n222973,bird\n222974,frog\n222975,bird\n222976,cat\n222977,automobile\n222978,frog\n222979,frog\n222980,automobile\n222981,deer\n222982,ship\n222983,horse\n222984,dog\n222985,cat\n222986,truck\n222987,cat\n222988,cat\n222989,truck\n222990,deer\n222991,ship\n222992,dog\n222993,dog\n222994,cat\n222995,cat\n222996,airplane\n222997,ship\n222998,deer\n222999,cat\n223000,frog\n223001,cat\n223002,horse\n223003,ship\n223004,automobile\n223005,bird\n223006,bird\n223007,truck\n223008,cat\n223009,dog\n223010,automobile\n223011,deer\n223012,cat\n223013,deer\n223014,airplane\n223015,deer\n223016,dog\n223017,truck\n223018,cat\n223019,dog\n223020,dog\n223021,bird\n223022,dog\n223023,cat\n223024,automobile\n223025,ship\n223026,deer\n223027,deer\n223028,truck\n223029,horse\n223030,truck\n223031,dog\n223032,cat\n223033,deer\n223034,cat\n223035,bird\n223036,cat\n223037,ship\n223038,airplane\n223039,automobile\n223040,dog\n223041,deer\n223042,deer\n223043,ship\n223044,horse\n223045,bird\n223046,cat\n223047,airplane\n223048,bird\n223049,bird\n223050,horse\n223051,bird\n223052,cat\n223053,cat\n223054,truck\n223055,truck\n223056,dog\n223057,automobile\n223058,dog\n223059,bird\n223060,automobile\n223061,automobile\n223062,horse\n223063,ship\n223064,deer\n223065,ship\n223066,horse\n223067,ship\n223068,dog\n223069,cat\n223070,bird\n223071,truck\n223072,bird\n223073,ship\n223074,airplane\n223075,deer\n223076,cat\n223077,cat\n223078,frog\n223079,cat\n223080,frog\n223081,deer\n223082,deer\n223083,horse\n223084,ship\n223085,deer\n223086,deer\n223087,automobile\n223088,frog\n223089,ship\n223090,truck\n223091,truck\n223092,truck\n223093,airplane\n223094,ship\n223095,airplane\n223096,dog\n223097,ship\n223098,deer\n223099,airplane\n223100,cat\n223101,deer\n223102,dog\n223103,ship\n223104,deer\n223105,automobile\n223106,bird\n223107,deer\n223108,airplane\n223109,automobile\n223110,truck\n223111,bird\n223112,deer\n223113,cat\n223114,frog\n223115,ship\n223116,horse\n223117,bird\n223118,dog\n223119,frog\n223120,horse\n223121,bird\n223122,horse\n223123,deer\n223124,automobile\n223125,cat\n223126,cat\n223127,deer\n223128,bird\n223129,deer\n223130,frog\n223131,truck\n223132,ship\n223133,truck\n223134,horse\n223135,deer\n223136,frog\n223137,airplane\n223138,cat\n223139,cat\n223140,automobile\n223141,dog\n223142,deer\n223143,deer\n223144,deer\n223145,ship\n223146,bird\n223147,cat\n223148,dog\n223149,cat\n223150,airplane\n223151,deer\n223152,cat\n223153,deer\n223154,bird\n223155,dog\n223156,airplane\n223157,bird\n223158,cat\n223159,airplane\n223160,cat\n223161,deer\n223162,frog\n223163,bird\n223164,airplane\n223165,truck\n223166,frog\n223167,truck\n223168,cat\n223169,bird\n223170,airplane\n223171,truck\n223172,dog\n223173,frog\n223174,deer\n223175,horse\n223176,cat\n223177,cat\n223178,deer\n223179,dog\n223180,automobile\n223181,dog\n223182,truck\n223183,deer\n223184,ship\n223185,airplane\n223186,cat\n223187,cat\n223188,cat\n223189,frog\n223190,horse\n223191,ship\n223192,ship\n223193,frog\n223194,dog\n223195,airplane\n223196,cat\n223197,horse\n223198,cat\n223199,ship\n223200,horse\n223201,automobile\n223202,cat\n223203,cat\n223204,bird\n223205,automobile\n223206,frog\n223207,bird\n223208,dog\n223209,dog\n223210,bird\n223211,dog\n223212,deer\n223213,automobile\n223214,automobile\n223215,horse\n223216,truck\n223217,deer\n223218,airplane\n223219,cat\n223220,bird\n223221,ship\n223222,frog\n223223,cat\n223224,bird\n223225,frog\n223226,airplane\n223227,bird\n223228,airplane\n223229,automobile\n223230,bird\n223231,cat\n223232,frog\n223233,frog\n223234,airplane\n223235,horse\n223236,automobile\n223237,dog\n223238,bird\n223239,cat\n223240,cat\n223241,deer\n223242,horse\n223243,dog\n223244,truck\n223245,cat\n223246,bird\n223247,deer\n223248,frog\n223249,cat\n223250,dog\n223251,ship\n223252,dog\n223253,cat\n223254,deer\n223255,cat\n223256,automobile\n223257,automobile\n223258,ship\n223259,deer\n223260,frog\n223261,deer\n223262,automobile\n223263,frog\n223264,bird\n223265,truck\n223266,cat\n223267,truck\n223268,ship\n223269,frog\n223270,ship\n223271,truck\n223272,cat\n223273,frog\n223274,dog\n223275,airplane\n223276,dog\n223277,deer\n223278,frog\n223279,cat\n223280,airplane\n223281,horse\n223282,dog\n223283,bird\n223284,airplane\n223285,bird\n223286,cat\n223287,dog\n223288,frog\n223289,airplane\n223290,deer\n223291,frog\n223292,airplane\n223293,deer\n223294,bird\n223295,frog\n223296,deer\n223297,cat\n223298,dog\n223299,automobile\n223300,airplane\n223301,deer\n223302,bird\n223303,bird\n223304,airplane\n223305,deer\n223306,automobile\n223307,truck\n223308,frog\n223309,airplane\n223310,bird\n223311,cat\n223312,truck\n223313,deer\n223314,horse\n223315,cat\n223316,bird\n223317,truck\n223318,automobile\n223319,frog\n223320,airplane\n223321,cat\n223322,ship\n223323,ship\n223324,truck\n223325,cat\n223326,dog\n223327,horse\n223328,ship\n223329,cat\n223330,deer\n223331,truck\n223332,deer\n223333,deer\n223334,airplane\n223335,deer\n223336,dog\n223337,frog\n223338,cat\n223339,ship\n223340,truck\n223341,deer\n223342,horse\n223343,horse\n223344,deer\n223345,dog\n223346,truck\n223347,deer\n223348,truck\n223349,deer\n223350,truck\n223351,cat\n223352,automobile\n223353,ship\n223354,deer\n223355,horse\n223356,truck\n223357,horse\n223358,truck\n223359,horse\n223360,truck\n223361,ship\n223362,ship\n223363,frog\n223364,truck\n223365,cat\n223366,deer\n223367,frog\n223368,horse\n223369,deer\n223370,horse\n223371,airplane\n223372,dog\n223373,cat\n223374,dog\n223375,frog\n223376,ship\n223377,ship\n223378,frog\n223379,truck\n223380,cat\n223381,dog\n223382,cat\n223383,cat\n223384,dog\n223385,frog\n223386,deer\n223387,frog\n223388,dog\n223389,horse\n223390,airplane\n223391,ship\n223392,airplane\n223393,deer\n223394,cat\n223395,automobile\n223396,cat\n223397,cat\n223398,truck\n223399,horse\n223400,automobile\n223401,horse\n223402,airplane\n223403,airplane\n223404,truck\n223405,dog\n223406,dog\n223407,truck\n223408,horse\n223409,bird\n223410,bird\n223411,dog\n223412,frog\n223413,dog\n223414,deer\n223415,truck\n223416,deer\n223417,bird\n223418,ship\n223419,horse\n223420,frog\n223421,cat\n223422,frog\n223423,bird\n223424,horse\n223425,truck\n223426,horse\n223427,horse\n223428,deer\n223429,truck\n223430,bird\n223431,bird\n223432,truck\n223433,truck\n223434,cat\n223435,bird\n223436,airplane\n223437,truck\n223438,airplane\n223439,dog\n223440,ship\n223441,dog\n223442,bird\n223443,frog\n223444,truck\n223445,frog\n223446,dog\n223447,cat\n223448,ship\n223449,ship\n223450,cat\n223451,bird\n223452,cat\n223453,deer\n223454,deer\n223455,deer\n223456,cat\n223457,cat\n223458,truck\n223459,cat\n223460,automobile\n223461,frog\n223462,truck\n223463,airplane\n223464,frog\n223465,bird\n223466,airplane\n223467,ship\n223468,frog\n223469,automobile\n223470,horse\n223471,frog\n223472,deer\n223473,ship\n223474,bird\n223475,truck\n223476,deer\n223477,bird\n223478,cat\n223479,ship\n223480,frog\n223481,automobile\n223482,frog\n223483,airplane\n223484,cat\n223485,deer\n223486,bird\n223487,truck\n223488,horse\n223489,airplane\n223490,airplane\n223491,dog\n223492,automobile\n223493,frog\n223494,frog\n223495,bird\n223496,horse\n223497,frog\n223498,bird\n223499,horse\n223500,frog\n223501,frog\n223502,cat\n223503,frog\n223504,horse\n223505,truck\n223506,frog\n223507,frog\n223508,frog\n223509,horse\n223510,airplane\n223511,truck\n223512,ship\n223513,horse\n223514,ship\n223515,horse\n223516,bird\n223517,ship\n223518,horse\n223519,dog\n223520,dog\n223521,ship\n223522,deer\n223523,bird\n223524,cat\n223525,cat\n223526,horse\n223527,ship\n223528,deer\n223529,airplane\n223530,deer\n223531,bird\n223532,frog\n223533,horse\n223534,bird\n223535,airplane\n223536,horse\n223537,cat\n223538,airplane\n223539,bird\n223540,deer\n223541,truck\n223542,truck\n223543,truck\n223544,frog\n223545,frog\n223546,ship\n223547,dog\n223548,cat\n223549,horse\n223550,automobile\n223551,cat\n223552,truck\n223553,automobile\n223554,horse\n223555,airplane\n223556,automobile\n223557,ship\n223558,deer\n223559,ship\n223560,deer\n223561,dog\n223562,horse\n223563,deer\n223564,frog\n223565,horse\n223566,automobile\n223567,deer\n223568,airplane\n223569,cat\n223570,deer\n223571,cat\n223572,dog\n223573,bird\n223574,bird\n223575,cat\n223576,cat\n223577,frog\n223578,ship\n223579,dog\n223580,bird\n223581,ship\n223582,automobile\n223583,horse\n223584,ship\n223585,deer\n223586,dog\n223587,cat\n223588,bird\n223589,cat\n223590,ship\n223591,frog\n223592,airplane\n223593,truck\n223594,bird\n223595,cat\n223596,airplane\n223597,cat\n223598,horse\n223599,ship\n223600,airplane\n223601,deer\n223602,ship\n223603,cat\n223604,frog\n223605,automobile\n223606,deer\n223607,frog\n223608,bird\n223609,truck\n223610,bird\n223611,cat\n223612,dog\n223613,airplane\n223614,ship\n223615,cat\n223616,horse\n223617,cat\n223618,cat\n223619,truck\n223620,automobile\n223621,frog\n223622,airplane\n223623,cat\n223624,cat\n223625,cat\n223626,ship\n223627,horse\n223628,dog\n223629,automobile\n223630,truck\n223631,deer\n223632,horse\n223633,bird\n223634,truck\n223635,cat\n223636,bird\n223637,cat\n223638,frog\n223639,cat\n223640,cat\n223641,airplane\n223642,bird\n223643,cat\n223644,automobile\n223645,cat\n223646,airplane\n223647,horse\n223648,dog\n223649,automobile\n223650,horse\n223651,ship\n223652,airplane\n223653,automobile\n223654,bird\n223655,airplane\n223656,deer\n223657,dog\n223658,horse\n223659,truck\n223660,deer\n223661,cat\n223662,airplane\n223663,truck\n223664,cat\n223665,horse\n223666,cat\n223667,truck\n223668,dog\n223669,airplane\n223670,airplane\n223671,automobile\n223672,automobile\n223673,truck\n223674,bird\n223675,truck\n223676,bird\n223677,deer\n223678,airplane\n223679,airplane\n223680,cat\n223681,automobile\n223682,cat\n223683,truck\n223684,dog\n223685,deer\n223686,bird\n223687,deer\n223688,frog\n223689,horse\n223690,truck\n223691,bird\n223692,deer\n223693,dog\n223694,frog\n223695,bird\n223696,deer\n223697,automobile\n223698,bird\n223699,cat\n223700,truck\n223701,deer\n223702,dog\n223703,dog\n223704,truck\n223705,bird\n223706,bird\n223707,bird\n223708,truck\n223709,airplane\n223710,horse\n223711,frog\n223712,cat\n223713,airplane\n223714,airplane\n223715,deer\n223716,automobile\n223717,truck\n223718,airplane\n223719,cat\n223720,airplane\n223721,frog\n223722,cat\n223723,frog\n223724,deer\n223725,horse\n223726,bird\n223727,frog\n223728,dog\n223729,deer\n223730,cat\n223731,deer\n223732,cat\n223733,frog\n223734,ship\n223735,bird\n223736,airplane\n223737,deer\n223738,cat\n223739,deer\n223740,dog\n223741,frog\n223742,cat\n223743,bird\n223744,dog\n223745,deer\n223746,bird\n223747,horse\n223748,horse\n223749,truck\n223750,frog\n223751,horse\n223752,dog\n223753,truck\n223754,automobile\n223755,horse\n223756,automobile\n223757,truck\n223758,horse\n223759,dog\n223760,airplane\n223761,deer\n223762,frog\n223763,dog\n223764,airplane\n223765,bird\n223766,automobile\n223767,airplane\n223768,automobile\n223769,bird\n223770,horse\n223771,truck\n223772,cat\n223773,cat\n223774,bird\n223775,horse\n223776,deer\n223777,automobile\n223778,dog\n223779,deer\n223780,frog\n223781,truck\n223782,automobile\n223783,horse\n223784,horse\n223785,dog\n223786,dog\n223787,frog\n223788,airplane\n223789,automobile\n223790,bird\n223791,bird\n223792,deer\n223793,truck\n223794,bird\n223795,automobile\n223796,ship\n223797,horse\n223798,dog\n223799,deer\n223800,dog\n223801,bird\n223802,frog\n223803,deer\n223804,cat\n223805,cat\n223806,truck\n223807,truck\n223808,cat\n223809,automobile\n223810,frog\n223811,frog\n223812,deer\n223813,ship\n223814,cat\n223815,truck\n223816,ship\n223817,horse\n223818,automobile\n223819,bird\n223820,horse\n223821,cat\n223822,horse\n223823,truck\n223824,frog\n223825,cat\n223826,deer\n223827,truck\n223828,truck\n223829,airplane\n223830,bird\n223831,airplane\n223832,cat\n223833,truck\n223834,airplane\n223835,dog\n223836,cat\n223837,airplane\n223838,ship\n223839,horse\n223840,cat\n223841,airplane\n223842,horse\n223843,airplane\n223844,cat\n223845,bird\n223846,dog\n223847,truck\n223848,horse\n223849,truck\n223850,cat\n223851,deer\n223852,cat\n223853,frog\n223854,truck\n223855,bird\n223856,cat\n223857,cat\n223858,automobile\n223859,deer\n223860,cat\n223861,automobile\n223862,horse\n223863,cat\n223864,truck\n223865,horse\n223866,dog\n223867,airplane\n223868,truck\n223869,bird\n223870,truck\n223871,deer\n223872,automobile\n223873,airplane\n223874,ship\n223875,airplane\n223876,airplane\n223877,frog\n223878,frog\n223879,deer\n223880,deer\n223881,cat\n223882,deer\n223883,frog\n223884,frog\n223885,dog\n223886,ship\n223887,cat\n223888,deer\n223889,bird\n223890,horse\n223891,ship\n223892,bird\n223893,truck\n223894,frog\n223895,deer\n223896,truck\n223897,cat\n223898,frog\n223899,deer\n223900,cat\n223901,deer\n223902,deer\n223903,airplane\n223904,cat\n223905,ship\n223906,airplane\n223907,bird\n223908,dog\n223909,automobile\n223910,automobile\n223911,deer\n223912,deer\n223913,bird\n223914,airplane\n223915,cat\n223916,airplane\n223917,deer\n223918,deer\n223919,horse\n223920,airplane\n223921,frog\n223922,ship\n223923,cat\n223924,frog\n223925,horse\n223926,dog\n223927,deer\n223928,cat\n223929,cat\n223930,truck\n223931,bird\n223932,deer\n223933,truck\n223934,deer\n223935,bird\n223936,airplane\n223937,airplane\n223938,deer\n223939,deer\n223940,dog\n223941,deer\n223942,horse\n223943,airplane\n223944,bird\n223945,frog\n223946,horse\n223947,automobile\n223948,automobile\n223949,dog\n223950,cat\n223951,truck\n223952,airplane\n223953,horse\n223954,airplane\n223955,horse\n223956,frog\n223957,truck\n223958,frog\n223959,ship\n223960,airplane\n223961,deer\n223962,dog\n223963,frog\n223964,dog\n223965,dog\n223966,deer\n223967,cat\n223968,airplane\n223969,cat\n223970,deer\n223971,frog\n223972,deer\n223973,frog\n223974,bird\n223975,truck\n223976,cat\n223977,bird\n223978,truck\n223979,automobile\n223980,automobile\n223981,bird\n223982,deer\n223983,truck\n223984,truck\n223985,dog\n223986,truck\n223987,dog\n223988,airplane\n223989,cat\n223990,deer\n223991,truck\n223992,bird\n223993,horse\n223994,dog\n223995,frog\n223996,truck\n223997,bird\n223998,automobile\n223999,ship\n224000,horse\n224001,truck\n224002,cat\n224003,dog\n224004,deer\n224005,airplane\n224006,ship\n224007,truck\n224008,ship\n224009,truck\n224010,deer\n224011,ship\n224012,frog\n224013,ship\n224014,truck\n224015,dog\n224016,frog\n224017,horse\n224018,ship\n224019,dog\n224020,cat\n224021,truck\n224022,frog\n224023,ship\n224024,bird\n224025,dog\n224026,bird\n224027,cat\n224028,truck\n224029,frog\n224030,frog\n224031,truck\n224032,truck\n224033,horse\n224034,dog\n224035,frog\n224036,horse\n224037,deer\n224038,frog\n224039,truck\n224040,cat\n224041,frog\n224042,horse\n224043,ship\n224044,cat\n224045,ship\n224046,deer\n224047,deer\n224048,dog\n224049,dog\n224050,ship\n224051,deer\n224052,automobile\n224053,bird\n224054,frog\n224055,automobile\n224056,deer\n224057,deer\n224058,dog\n224059,frog\n224060,bird\n224061,ship\n224062,deer\n224063,dog\n224064,deer\n224065,bird\n224066,cat\n224067,horse\n224068,deer\n224069,truck\n224070,automobile\n224071,frog\n224072,cat\n224073,deer\n224074,deer\n224075,truck\n224076,deer\n224077,cat\n224078,horse\n224079,horse\n224080,deer\n224081,truck\n224082,cat\n224083,cat\n224084,deer\n224085,truck\n224086,ship\n224087,ship\n224088,cat\n224089,ship\n224090,cat\n224091,dog\n224092,frog\n224093,horse\n224094,airplane\n224095,cat\n224096,frog\n224097,bird\n224098,bird\n224099,truck\n224100,deer\n224101,cat\n224102,deer\n224103,deer\n224104,automobile\n224105,cat\n224106,truck\n224107,truck\n224108,cat\n224109,truck\n224110,horse\n224111,airplane\n224112,deer\n224113,deer\n224114,frog\n224115,truck\n224116,ship\n224117,automobile\n224118,dog\n224119,truck\n224120,bird\n224121,airplane\n224122,dog\n224123,automobile\n224124,frog\n224125,horse\n224126,dog\n224127,automobile\n224128,horse\n224129,bird\n224130,frog\n224131,deer\n224132,automobile\n224133,deer\n224134,airplane\n224135,truck\n224136,ship\n224137,deer\n224138,cat\n224139,dog\n224140,cat\n224141,frog\n224142,automobile\n224143,horse\n224144,airplane\n224145,frog\n224146,truck\n224147,cat\n224148,horse\n224149,deer\n224150,deer\n224151,horse\n224152,airplane\n224153,dog\n224154,truck\n224155,dog\n224156,deer\n224157,cat\n224158,frog\n224159,airplane\n224160,automobile\n224161,cat\n224162,bird\n224163,airplane\n224164,deer\n224165,frog\n224166,frog\n224167,deer\n224168,bird\n224169,cat\n224170,airplane\n224171,deer\n224172,deer\n224173,deer\n224174,automobile\n224175,deer\n224176,airplane\n224177,truck\n224178,airplane\n224179,deer\n224180,ship\n224181,cat\n224182,horse\n224183,ship\n224184,deer\n224185,ship\n224186,dog\n224187,frog\n224188,horse\n224189,frog\n224190,airplane\n224191,horse\n224192,automobile\n224193,horse\n224194,frog\n224195,airplane\n224196,automobile\n224197,horse\n224198,truck\n224199,truck\n224200,automobile\n224201,truck\n224202,ship\n224203,ship\n224204,ship\n224205,automobile\n224206,ship\n224207,deer\n224208,horse\n224209,cat\n224210,frog\n224211,bird\n224212,truck\n224213,ship\n224214,frog\n224215,automobile\n224216,dog\n224217,automobile\n224218,truck\n224219,frog\n224220,cat\n224221,frog\n224222,cat\n224223,deer\n224224,airplane\n224225,truck\n224226,airplane\n224227,horse\n224228,bird\n224229,airplane\n224230,cat\n224231,automobile\n224232,bird\n224233,bird\n224234,deer\n224235,frog\n224236,cat\n224237,dog\n224238,frog\n224239,airplane\n224240,deer\n224241,deer\n224242,cat\n224243,deer\n224244,airplane\n224245,dog\n224246,bird\n224247,deer\n224248,truck\n224249,deer\n224250,truck\n224251,ship\n224252,airplane\n224253,dog\n224254,frog\n224255,airplane\n224256,ship\n224257,ship\n224258,bird\n224259,truck\n224260,truck\n224261,truck\n224262,truck\n224263,airplane\n224264,deer\n224265,dog\n224266,cat\n224267,horse\n224268,truck\n224269,automobile\n224270,frog\n224271,truck\n224272,frog\n224273,bird\n224274,automobile\n224275,truck\n224276,cat\n224277,bird\n224278,truck\n224279,deer\n224280,horse\n224281,deer\n224282,deer\n224283,horse\n224284,dog\n224285,automobile\n224286,horse\n224287,dog\n224288,bird\n224289,deer\n224290,horse\n224291,truck\n224292,bird\n224293,automobile\n224294,bird\n224295,cat\n224296,bird\n224297,bird\n224298,dog\n224299,airplane\n224300,dog\n224301,truck\n224302,horse\n224303,automobile\n224304,dog\n224305,cat\n224306,ship\n224307,deer\n224308,dog\n224309,ship\n224310,deer\n224311,deer\n224312,automobile\n224313,deer\n224314,frog\n224315,airplane\n224316,horse\n224317,cat\n224318,ship\n224319,horse\n224320,cat\n224321,deer\n224322,dog\n224323,truck\n224324,dog\n224325,frog\n224326,automobile\n224327,dog\n224328,deer\n224329,airplane\n224330,truck\n224331,deer\n224332,deer\n224333,truck\n224334,automobile\n224335,bird\n224336,deer\n224337,truck\n224338,cat\n224339,cat\n224340,deer\n224341,cat\n224342,truck\n224343,truck\n224344,bird\n224345,truck\n224346,horse\n224347,ship\n224348,horse\n224349,dog\n224350,cat\n224351,airplane\n224352,dog\n224353,airplane\n224354,airplane\n224355,automobile\n224356,cat\n224357,ship\n224358,dog\n224359,truck\n224360,deer\n224361,frog\n224362,airplane\n224363,horse\n224364,truck\n224365,airplane\n224366,truck\n224367,dog\n224368,airplane\n224369,deer\n224370,frog\n224371,airplane\n224372,truck\n224373,cat\n224374,cat\n224375,deer\n224376,deer\n224377,dog\n224378,bird\n224379,deer\n224380,horse\n224381,airplane\n224382,cat\n224383,cat\n224384,truck\n224385,automobile\n224386,dog\n224387,deer\n224388,truck\n224389,frog\n224390,horse\n224391,automobile\n224392,deer\n224393,cat\n224394,deer\n224395,cat\n224396,automobile\n224397,automobile\n224398,frog\n224399,horse\n224400,cat\n224401,ship\n224402,cat\n224403,dog\n224404,cat\n224405,dog\n224406,dog\n224407,automobile\n224408,frog\n224409,horse\n224410,deer\n224411,frog\n224412,deer\n224413,frog\n224414,dog\n224415,ship\n224416,truck\n224417,deer\n224418,truck\n224419,ship\n224420,deer\n224421,dog\n224422,automobile\n224423,truck\n224424,deer\n224425,airplane\n224426,bird\n224427,horse\n224428,automobile\n224429,deer\n224430,ship\n224431,ship\n224432,cat\n224433,deer\n224434,deer\n224435,horse\n224436,horse\n224437,cat\n224438,horse\n224439,ship\n224440,deer\n224441,dog\n224442,bird\n224443,automobile\n224444,horse\n224445,deer\n224446,bird\n224447,cat\n224448,frog\n224449,airplane\n224450,deer\n224451,cat\n224452,truck\n224453,truck\n224454,airplane\n224455,horse\n224456,bird\n224457,frog\n224458,deer\n224459,ship\n224460,automobile\n224461,cat\n224462,dog\n224463,ship\n224464,airplane\n224465,bird\n224466,deer\n224467,bird\n224468,horse\n224469,horse\n224470,airplane\n224471,ship\n224472,airplane\n224473,ship\n224474,airplane\n224475,frog\n224476,frog\n224477,cat\n224478,automobile\n224479,dog\n224480,cat\n224481,airplane\n224482,frog\n224483,horse\n224484,frog\n224485,airplane\n224486,truck\n224487,deer\n224488,truck\n224489,ship\n224490,ship\n224491,truck\n224492,airplane\n224493,deer\n224494,horse\n224495,cat\n224496,deer\n224497,dog\n224498,bird\n224499,automobile\n224500,deer\n224501,frog\n224502,cat\n224503,dog\n224504,dog\n224505,horse\n224506,deer\n224507,automobile\n224508,dog\n224509,bird\n224510,frog\n224511,automobile\n224512,frog\n224513,truck\n224514,horse\n224515,frog\n224516,deer\n224517,truck\n224518,ship\n224519,dog\n224520,automobile\n224521,dog\n224522,truck\n224523,deer\n224524,bird\n224525,airplane\n224526,deer\n224527,deer\n224528,cat\n224529,deer\n224530,airplane\n224531,deer\n224532,bird\n224533,cat\n224534,horse\n224535,bird\n224536,dog\n224537,frog\n224538,truck\n224539,frog\n224540,horse\n224541,bird\n224542,truck\n224543,truck\n224544,deer\n224545,cat\n224546,deer\n224547,automobile\n224548,frog\n224549,ship\n224550,deer\n224551,frog\n224552,airplane\n224553,cat\n224554,ship\n224555,automobile\n224556,dog\n224557,cat\n224558,ship\n224559,frog\n224560,airplane\n224561,truck\n224562,cat\n224563,bird\n224564,automobile\n224565,cat\n224566,cat\n224567,horse\n224568,ship\n224569,horse\n224570,deer\n224571,ship\n224572,deer\n224573,deer\n224574,truck\n224575,automobile\n224576,deer\n224577,dog\n224578,automobile\n224579,horse\n224580,horse\n224581,deer\n224582,cat\n224583,deer\n224584,deer\n224585,automobile\n224586,automobile\n224587,frog\n224588,frog\n224589,cat\n224590,cat\n224591,cat\n224592,cat\n224593,ship\n224594,automobile\n224595,bird\n224596,deer\n224597,deer\n224598,bird\n224599,horse\n224600,truck\n224601,airplane\n224602,cat\n224603,ship\n224604,airplane\n224605,cat\n224606,cat\n224607,horse\n224608,horse\n224609,dog\n224610,deer\n224611,frog\n224612,deer\n224613,deer\n224614,cat\n224615,automobile\n224616,automobile\n224617,cat\n224618,truck\n224619,bird\n224620,cat\n224621,airplane\n224622,dog\n224623,bird\n224624,deer\n224625,deer\n224626,horse\n224627,dog\n224628,dog\n224629,ship\n224630,cat\n224631,dog\n224632,horse\n224633,deer\n224634,ship\n224635,dog\n224636,horse\n224637,horse\n224638,automobile\n224639,dog\n224640,deer\n224641,dog\n224642,truck\n224643,deer\n224644,frog\n224645,ship\n224646,automobile\n224647,cat\n224648,bird\n224649,dog\n224650,cat\n224651,automobile\n224652,dog\n224653,truck\n224654,airplane\n224655,horse\n224656,airplane\n224657,horse\n224658,deer\n224659,truck\n224660,dog\n224661,dog\n224662,ship\n224663,deer\n224664,truck\n224665,cat\n224666,airplane\n224667,dog\n224668,bird\n224669,airplane\n224670,horse\n224671,frog\n224672,deer\n224673,bird\n224674,cat\n224675,airplane\n224676,deer\n224677,deer\n224678,deer\n224679,bird\n224680,truck\n224681,airplane\n224682,bird\n224683,bird\n224684,automobile\n224685,deer\n224686,frog\n224687,deer\n224688,bird\n224689,bird\n224690,automobile\n224691,dog\n224692,truck\n224693,automobile\n224694,truck\n224695,truck\n224696,deer\n224697,frog\n224698,bird\n224699,airplane\n224700,deer\n224701,automobile\n224702,truck\n224703,truck\n224704,dog\n224705,airplane\n224706,cat\n224707,airplane\n224708,automobile\n224709,dog\n224710,automobile\n224711,cat\n224712,cat\n224713,automobile\n224714,deer\n224715,horse\n224716,horse\n224717,deer\n224718,frog\n224719,frog\n224720,bird\n224721,automobile\n224722,cat\n224723,deer\n224724,ship\n224725,horse\n224726,horse\n224727,dog\n224728,airplane\n224729,truck\n224730,airplane\n224731,deer\n224732,cat\n224733,automobile\n224734,deer\n224735,dog\n224736,truck\n224737,ship\n224738,airplane\n224739,automobile\n224740,dog\n224741,cat\n224742,dog\n224743,bird\n224744,cat\n224745,frog\n224746,airplane\n224747,ship\n224748,cat\n224749,ship\n224750,cat\n224751,airplane\n224752,airplane\n224753,frog\n224754,automobile\n224755,cat\n224756,horse\n224757,airplane\n224758,frog\n224759,ship\n224760,ship\n224761,bird\n224762,frog\n224763,airplane\n224764,cat\n224765,ship\n224766,bird\n224767,deer\n224768,frog\n224769,ship\n224770,cat\n224771,cat\n224772,bird\n224773,automobile\n224774,cat\n224775,bird\n224776,truck\n224777,deer\n224778,frog\n224779,horse\n224780,frog\n224781,ship\n224782,deer\n224783,cat\n224784,dog\n224785,bird\n224786,horse\n224787,automobile\n224788,frog\n224789,truck\n224790,airplane\n224791,dog\n224792,horse\n224793,deer\n224794,airplane\n224795,bird\n224796,airplane\n224797,cat\n224798,frog\n224799,cat\n224800,deer\n224801,deer\n224802,dog\n224803,cat\n224804,bird\n224805,airplane\n224806,truck\n224807,frog\n224808,horse\n224809,truck\n224810,cat\n224811,frog\n224812,bird\n224813,automobile\n224814,deer\n224815,horse\n224816,deer\n224817,horse\n224818,cat\n224819,deer\n224820,truck\n224821,automobile\n224822,horse\n224823,dog\n224824,dog\n224825,cat\n224826,ship\n224827,dog\n224828,ship\n224829,cat\n224830,automobile\n224831,airplane\n224832,truck\n224833,ship\n224834,cat\n224835,cat\n224836,horse\n224837,automobile\n224838,horse\n224839,airplane\n224840,deer\n224841,deer\n224842,dog\n224843,horse\n224844,truck\n224845,frog\n224846,automobile\n224847,cat\n224848,dog\n224849,cat\n224850,ship\n224851,frog\n224852,cat\n224853,truck\n224854,frog\n224855,truck\n224856,airplane\n224857,truck\n224858,airplane\n224859,airplane\n224860,airplane\n224861,horse\n224862,frog\n224863,bird\n224864,bird\n224865,deer\n224866,horse\n224867,bird\n224868,airplane\n224869,frog\n224870,truck\n224871,airplane\n224872,dog\n224873,deer\n224874,dog\n224875,automobile\n224876,bird\n224877,airplane\n224878,airplane\n224879,truck\n224880,dog\n224881,frog\n224882,automobile\n224883,deer\n224884,frog\n224885,truck\n224886,airplane\n224887,deer\n224888,horse\n224889,frog\n224890,ship\n224891,truck\n224892,deer\n224893,ship\n224894,deer\n224895,ship\n224896,deer\n224897,cat\n224898,horse\n224899,dog\n224900,truck\n224901,frog\n224902,deer\n224903,cat\n224904,ship\n224905,cat\n224906,horse\n224907,deer\n224908,cat\n224909,frog\n224910,ship\n224911,dog\n224912,ship\n224913,deer\n224914,truck\n224915,cat\n224916,frog\n224917,cat\n224918,automobile\n224919,ship\n224920,truck\n224921,deer\n224922,frog\n224923,frog\n224924,horse\n224925,airplane\n224926,frog\n224927,horse\n224928,deer\n224929,truck\n224930,truck\n224931,horse\n224932,bird\n224933,airplane\n224934,truck\n224935,frog\n224936,deer\n224937,dog\n224938,horse\n224939,dog\n224940,horse\n224941,ship\n224942,automobile\n224943,ship\n224944,ship\n224945,dog\n224946,deer\n224947,horse\n224948,bird\n224949,airplane\n224950,cat\n224951,automobile\n224952,bird\n224953,dog\n224954,truck\n224955,horse\n224956,airplane\n224957,deer\n224958,bird\n224959,horse\n224960,ship\n224961,airplane\n224962,deer\n224963,airplane\n224964,truck\n224965,bird\n224966,cat\n224967,horse\n224968,dog\n224969,deer\n224970,truck\n224971,truck\n224972,truck\n224973,horse\n224974,frog\n224975,bird\n224976,frog\n224977,horse\n224978,ship\n224979,ship\n224980,horse\n224981,airplane\n224982,deer\n224983,truck\n224984,frog\n224985,frog\n224986,truck\n224987,ship\n224988,bird\n224989,airplane\n224990,cat\n224991,automobile\n224992,frog\n224993,cat\n224994,frog\n224995,bird\n224996,ship\n224997,horse\n224998,deer\n224999,ship\n225000,dog\n225001,horse\n225002,airplane\n225003,cat\n225004,truck\n225005,dog\n225006,bird\n225007,dog\n225008,ship\n225009,horse\n225010,bird\n225011,automobile\n225012,frog\n225013,ship\n225014,airplane\n225015,ship\n225016,bird\n225017,automobile\n225018,cat\n225019,airplane\n225020,horse\n225021,cat\n225022,horse\n225023,dog\n225024,deer\n225025,ship\n225026,dog\n225027,frog\n225028,frog\n225029,bird\n225030,dog\n225031,horse\n225032,automobile\n225033,frog\n225034,deer\n225035,cat\n225036,airplane\n225037,frog\n225038,dog\n225039,deer\n225040,bird\n225041,deer\n225042,airplane\n225043,deer\n225044,dog\n225045,bird\n225046,frog\n225047,frog\n225048,deer\n225049,cat\n225050,cat\n225051,bird\n225052,frog\n225053,bird\n225054,airplane\n225055,deer\n225056,bird\n225057,ship\n225058,bird\n225059,airplane\n225060,dog\n225061,truck\n225062,cat\n225063,truck\n225064,airplane\n225065,bird\n225066,truck\n225067,frog\n225068,cat\n225069,frog\n225070,cat\n225071,deer\n225072,deer\n225073,horse\n225074,bird\n225075,airplane\n225076,deer\n225077,cat\n225078,bird\n225079,ship\n225080,airplane\n225081,frog\n225082,horse\n225083,airplane\n225084,bird\n225085,dog\n225086,cat\n225087,dog\n225088,horse\n225089,truck\n225090,frog\n225091,dog\n225092,airplane\n225093,deer\n225094,frog\n225095,airplane\n225096,bird\n225097,airplane\n225098,cat\n225099,ship\n225100,ship\n225101,truck\n225102,cat\n225103,cat\n225104,dog\n225105,airplane\n225106,truck\n225107,horse\n225108,airplane\n225109,airplane\n225110,dog\n225111,frog\n225112,deer\n225113,horse\n225114,deer\n225115,frog\n225116,truck\n225117,frog\n225118,bird\n225119,dog\n225120,truck\n225121,frog\n225122,frog\n225123,airplane\n225124,deer\n225125,truck\n225126,bird\n225127,deer\n225128,dog\n225129,horse\n225130,airplane\n225131,airplane\n225132,airplane\n225133,cat\n225134,deer\n225135,frog\n225136,deer\n225137,dog\n225138,ship\n225139,bird\n225140,horse\n225141,horse\n225142,truck\n225143,horse\n225144,ship\n225145,frog\n225146,truck\n225147,deer\n225148,truck\n225149,automobile\n225150,frog\n225151,truck\n225152,deer\n225153,horse\n225154,deer\n225155,cat\n225156,ship\n225157,dog\n225158,truck\n225159,frog\n225160,truck\n225161,bird\n225162,bird\n225163,cat\n225164,horse\n225165,airplane\n225166,truck\n225167,dog\n225168,bird\n225169,cat\n225170,airplane\n225171,horse\n225172,frog\n225173,frog\n225174,automobile\n225175,automobile\n225176,cat\n225177,dog\n225178,automobile\n225179,cat\n225180,frog\n225181,automobile\n225182,horse\n225183,truck\n225184,truck\n225185,frog\n225186,cat\n225187,horse\n225188,truck\n225189,ship\n225190,deer\n225191,airplane\n225192,frog\n225193,bird\n225194,automobile\n225195,horse\n225196,horse\n225197,cat\n225198,horse\n225199,dog\n225200,dog\n225201,deer\n225202,automobile\n225203,cat\n225204,truck\n225205,deer\n225206,deer\n225207,ship\n225208,deer\n225209,automobile\n225210,dog\n225211,dog\n225212,airplane\n225213,horse\n225214,dog\n225215,deer\n225216,deer\n225217,truck\n225218,airplane\n225219,frog\n225220,truck\n225221,bird\n225222,truck\n225223,cat\n225224,cat\n225225,cat\n225226,ship\n225227,airplane\n225228,frog\n225229,dog\n225230,deer\n225231,deer\n225232,cat\n225233,airplane\n225234,bird\n225235,airplane\n225236,truck\n225237,airplane\n225238,truck\n225239,automobile\n225240,airplane\n225241,frog\n225242,truck\n225243,dog\n225244,truck\n225245,ship\n225246,dog\n225247,deer\n225248,bird\n225249,cat\n225250,dog\n225251,ship\n225252,airplane\n225253,dog\n225254,cat\n225255,airplane\n225256,frog\n225257,cat\n225258,cat\n225259,frog\n225260,deer\n225261,cat\n225262,bird\n225263,airplane\n225264,frog\n225265,horse\n225266,ship\n225267,automobile\n225268,deer\n225269,truck\n225270,bird\n225271,ship\n225272,horse\n225273,truck\n225274,bird\n225275,deer\n225276,truck\n225277,frog\n225278,ship\n225279,deer\n225280,automobile\n225281,ship\n225282,cat\n225283,horse\n225284,ship\n225285,dog\n225286,automobile\n225287,airplane\n225288,bird\n225289,cat\n225290,cat\n225291,dog\n225292,cat\n225293,horse\n225294,bird\n225295,cat\n225296,airplane\n225297,dog\n225298,horse\n225299,bird\n225300,dog\n225301,deer\n225302,cat\n225303,cat\n225304,dog\n225305,airplane\n225306,bird\n225307,horse\n225308,deer\n225309,bird\n225310,bird\n225311,frog\n225312,truck\n225313,bird\n225314,deer\n225315,cat\n225316,bird\n225317,deer\n225318,cat\n225319,horse\n225320,automobile\n225321,bird\n225322,frog\n225323,horse\n225324,truck\n225325,bird\n225326,deer\n225327,truck\n225328,cat\n225329,deer\n225330,deer\n225331,airplane\n225332,frog\n225333,cat\n225334,dog\n225335,deer\n225336,bird\n225337,horse\n225338,deer\n225339,truck\n225340,deer\n225341,truck\n225342,airplane\n225343,deer\n225344,airplane\n225345,dog\n225346,frog\n225347,frog\n225348,automobile\n225349,dog\n225350,cat\n225351,airplane\n225352,truck\n225353,horse\n225354,truck\n225355,dog\n225356,automobile\n225357,dog\n225358,ship\n225359,airplane\n225360,truck\n225361,airplane\n225362,deer\n225363,bird\n225364,cat\n225365,automobile\n225366,bird\n225367,deer\n225368,horse\n225369,dog\n225370,frog\n225371,deer\n225372,bird\n225373,deer\n225374,truck\n225375,ship\n225376,deer\n225377,airplane\n225378,deer\n225379,bird\n225380,deer\n225381,airplane\n225382,horse\n225383,frog\n225384,bird\n225385,cat\n225386,dog\n225387,deer\n225388,airplane\n225389,truck\n225390,cat\n225391,truck\n225392,deer\n225393,dog\n225394,dog\n225395,automobile\n225396,deer\n225397,dog\n225398,horse\n225399,bird\n225400,bird\n225401,cat\n225402,airplane\n225403,deer\n225404,cat\n225405,horse\n225406,deer\n225407,airplane\n225408,cat\n225409,cat\n225410,automobile\n225411,horse\n225412,automobile\n225413,deer\n225414,bird\n225415,frog\n225416,cat\n225417,automobile\n225418,automobile\n225419,bird\n225420,ship\n225421,bird\n225422,cat\n225423,cat\n225424,bird\n225425,ship\n225426,deer\n225427,deer\n225428,dog\n225429,frog\n225430,automobile\n225431,frog\n225432,truck\n225433,ship\n225434,airplane\n225435,cat\n225436,cat\n225437,airplane\n225438,horse\n225439,automobile\n225440,dog\n225441,bird\n225442,cat\n225443,truck\n225444,airplane\n225445,cat\n225446,automobile\n225447,dog\n225448,truck\n225449,airplane\n225450,deer\n225451,ship\n225452,truck\n225453,cat\n225454,cat\n225455,frog\n225456,ship\n225457,truck\n225458,airplane\n225459,cat\n225460,frog\n225461,truck\n225462,horse\n225463,horse\n225464,dog\n225465,dog\n225466,ship\n225467,horse\n225468,cat\n225469,ship\n225470,ship\n225471,deer\n225472,horse\n225473,frog\n225474,airplane\n225475,cat\n225476,frog\n225477,deer\n225478,dog\n225479,deer\n225480,frog\n225481,truck\n225482,horse\n225483,deer\n225484,ship\n225485,bird\n225486,airplane\n225487,truck\n225488,truck\n225489,cat\n225490,truck\n225491,ship\n225492,horse\n225493,deer\n225494,frog\n225495,deer\n225496,cat\n225497,airplane\n225498,dog\n225499,automobile\n225500,ship\n225501,horse\n225502,horse\n225503,dog\n225504,bird\n225505,deer\n225506,cat\n225507,airplane\n225508,ship\n225509,cat\n225510,dog\n225511,bird\n225512,dog\n225513,horse\n225514,truck\n225515,horse\n225516,automobile\n225517,automobile\n225518,truck\n225519,frog\n225520,bird\n225521,cat\n225522,airplane\n225523,airplane\n225524,dog\n225525,frog\n225526,dog\n225527,deer\n225528,dog\n225529,dog\n225530,truck\n225531,horse\n225532,frog\n225533,truck\n225534,airplane\n225535,deer\n225536,cat\n225537,dog\n225538,frog\n225539,dog\n225540,cat\n225541,truck\n225542,automobile\n225543,deer\n225544,dog\n225545,truck\n225546,airplane\n225547,ship\n225548,frog\n225549,dog\n225550,truck\n225551,dog\n225552,horse\n225553,automobile\n225554,truck\n225555,automobile\n225556,frog\n225557,airplane\n225558,bird\n225559,automobile\n225560,truck\n225561,deer\n225562,airplane\n225563,ship\n225564,deer\n225565,automobile\n225566,cat\n225567,bird\n225568,horse\n225569,deer\n225570,horse\n225571,truck\n225572,deer\n225573,cat\n225574,bird\n225575,dog\n225576,deer\n225577,deer\n225578,cat\n225579,deer\n225580,cat\n225581,bird\n225582,bird\n225583,frog\n225584,dog\n225585,cat\n225586,cat\n225587,airplane\n225588,bird\n225589,automobile\n225590,cat\n225591,cat\n225592,truck\n225593,dog\n225594,truck\n225595,frog\n225596,deer\n225597,ship\n225598,truck\n225599,truck\n225600,truck\n225601,deer\n225602,dog\n225603,airplane\n225604,bird\n225605,truck\n225606,dog\n225607,frog\n225608,cat\n225609,deer\n225610,cat\n225611,bird\n225612,cat\n225613,truck\n225614,cat\n225615,airplane\n225616,cat\n225617,airplane\n225618,frog\n225619,deer\n225620,horse\n225621,airplane\n225622,frog\n225623,airplane\n225624,ship\n225625,bird\n225626,deer\n225627,ship\n225628,ship\n225629,airplane\n225630,ship\n225631,frog\n225632,truck\n225633,horse\n225634,horse\n225635,frog\n225636,cat\n225637,airplane\n225638,ship\n225639,ship\n225640,truck\n225641,bird\n225642,horse\n225643,horse\n225644,frog\n225645,airplane\n225646,dog\n225647,dog\n225648,horse\n225649,automobile\n225650,bird\n225651,dog\n225652,airplane\n225653,truck\n225654,horse\n225655,dog\n225656,ship\n225657,ship\n225658,ship\n225659,automobile\n225660,dog\n225661,cat\n225662,ship\n225663,truck\n225664,bird\n225665,deer\n225666,frog\n225667,bird\n225668,cat\n225669,cat\n225670,airplane\n225671,horse\n225672,automobile\n225673,deer\n225674,dog\n225675,dog\n225676,truck\n225677,bird\n225678,dog\n225679,dog\n225680,automobile\n225681,bird\n225682,deer\n225683,horse\n225684,dog\n225685,dog\n225686,airplane\n225687,truck\n225688,horse\n225689,frog\n225690,truck\n225691,truck\n225692,automobile\n225693,truck\n225694,horse\n225695,deer\n225696,truck\n225697,cat\n225698,cat\n225699,frog\n225700,automobile\n225701,deer\n225702,truck\n225703,deer\n225704,bird\n225705,deer\n225706,airplane\n225707,airplane\n225708,bird\n225709,deer\n225710,deer\n225711,horse\n225712,cat\n225713,dog\n225714,cat\n225715,dog\n225716,truck\n225717,frog\n225718,airplane\n225719,cat\n225720,dog\n225721,cat\n225722,dog\n225723,airplane\n225724,horse\n225725,automobile\n225726,automobile\n225727,truck\n225728,dog\n225729,bird\n225730,frog\n225731,dog\n225732,frog\n225733,deer\n225734,cat\n225735,cat\n225736,airplane\n225737,deer\n225738,automobile\n225739,deer\n225740,bird\n225741,cat\n225742,airplane\n225743,truck\n225744,airplane\n225745,horse\n225746,deer\n225747,ship\n225748,bird\n225749,automobile\n225750,cat\n225751,frog\n225752,automobile\n225753,ship\n225754,dog\n225755,deer\n225756,dog\n225757,ship\n225758,airplane\n225759,airplane\n225760,truck\n225761,frog\n225762,cat\n225763,frog\n225764,horse\n225765,frog\n225766,airplane\n225767,deer\n225768,bird\n225769,bird\n225770,cat\n225771,bird\n225772,dog\n225773,truck\n225774,frog\n225775,automobile\n225776,deer\n225777,truck\n225778,frog\n225779,dog\n225780,dog\n225781,dog\n225782,dog\n225783,frog\n225784,horse\n225785,cat\n225786,deer\n225787,deer\n225788,deer\n225789,dog\n225790,dog\n225791,bird\n225792,horse\n225793,cat\n225794,bird\n225795,horse\n225796,horse\n225797,bird\n225798,frog\n225799,cat\n225800,dog\n225801,truck\n225802,bird\n225803,bird\n225804,dog\n225805,frog\n225806,automobile\n225807,cat\n225808,airplane\n225809,bird\n225810,horse\n225811,cat\n225812,bird\n225813,truck\n225814,automobile\n225815,deer\n225816,automobile\n225817,horse\n225818,deer\n225819,bird\n225820,cat\n225821,horse\n225822,horse\n225823,automobile\n225824,bird\n225825,airplane\n225826,horse\n225827,bird\n225828,deer\n225829,dog\n225830,ship\n225831,bird\n225832,horse\n225833,frog\n225834,airplane\n225835,deer\n225836,frog\n225837,bird\n225838,airplane\n225839,frog\n225840,frog\n225841,airplane\n225842,frog\n225843,dog\n225844,frog\n225845,airplane\n225846,frog\n225847,bird\n225848,dog\n225849,automobile\n225850,cat\n225851,bird\n225852,truck\n225853,cat\n225854,ship\n225855,frog\n225856,automobile\n225857,horse\n225858,dog\n225859,truck\n225860,dog\n225861,ship\n225862,deer\n225863,horse\n225864,deer\n225865,dog\n225866,automobile\n225867,cat\n225868,cat\n225869,airplane\n225870,cat\n225871,dog\n225872,frog\n225873,horse\n225874,cat\n225875,bird\n225876,horse\n225877,deer\n225878,deer\n225879,cat\n225880,automobile\n225881,truck\n225882,dog\n225883,cat\n225884,cat\n225885,truck\n225886,automobile\n225887,horse\n225888,dog\n225889,cat\n225890,frog\n225891,horse\n225892,truck\n225893,deer\n225894,truck\n225895,ship\n225896,cat\n225897,ship\n225898,deer\n225899,airplane\n225900,truck\n225901,airplane\n225902,deer\n225903,cat\n225904,frog\n225905,cat\n225906,truck\n225907,automobile\n225908,deer\n225909,frog\n225910,deer\n225911,dog\n225912,bird\n225913,deer\n225914,deer\n225915,cat\n225916,cat\n225917,cat\n225918,truck\n225919,deer\n225920,truck\n225921,bird\n225922,deer\n225923,ship\n225924,deer\n225925,automobile\n225926,dog\n225927,dog\n225928,cat\n225929,truck\n225930,cat\n225931,horse\n225932,airplane\n225933,truck\n225934,cat\n225935,cat\n225936,automobile\n225937,horse\n225938,bird\n225939,truck\n225940,deer\n225941,dog\n225942,airplane\n225943,ship\n225944,bird\n225945,truck\n225946,dog\n225947,cat\n225948,frog\n225949,deer\n225950,deer\n225951,horse\n225952,truck\n225953,cat\n225954,airplane\n225955,frog\n225956,frog\n225957,frog\n225958,airplane\n225959,frog\n225960,bird\n225961,frog\n225962,truck\n225963,truck\n225964,frog\n225965,cat\n225966,automobile\n225967,automobile\n225968,horse\n225969,ship\n225970,horse\n225971,truck\n225972,cat\n225973,airplane\n225974,dog\n225975,bird\n225976,cat\n225977,airplane\n225978,horse\n225979,bird\n225980,cat\n225981,horse\n225982,frog\n225983,ship\n225984,horse\n225985,cat\n225986,truck\n225987,automobile\n225988,airplane\n225989,horse\n225990,horse\n225991,dog\n225992,truck\n225993,truck\n225994,deer\n225995,deer\n225996,cat\n225997,ship\n225998,truck\n225999,airplane\n226000,airplane\n226001,airplane\n226002,bird\n226003,bird\n226004,ship\n226005,automobile\n226006,frog\n226007,ship\n226008,automobile\n226009,dog\n226010,cat\n226011,cat\n226012,dog\n226013,dog\n226014,deer\n226015,dog\n226016,automobile\n226017,ship\n226018,truck\n226019,ship\n226020,dog\n226021,cat\n226022,automobile\n226023,airplane\n226024,dog\n226025,dog\n226026,frog\n226027,airplane\n226028,bird\n226029,horse\n226030,bird\n226031,frog\n226032,cat\n226033,bird\n226034,cat\n226035,bird\n226036,deer\n226037,cat\n226038,bird\n226039,ship\n226040,ship\n226041,cat\n226042,dog\n226043,cat\n226044,airplane\n226045,deer\n226046,bird\n226047,horse\n226048,horse\n226049,bird\n226050,frog\n226051,deer\n226052,automobile\n226053,horse\n226054,bird\n226055,airplane\n226056,ship\n226057,bird\n226058,truck\n226059,deer\n226060,truck\n226061,bird\n226062,dog\n226063,airplane\n226064,dog\n226065,frog\n226066,cat\n226067,airplane\n226068,dog\n226069,dog\n226070,frog\n226071,ship\n226072,horse\n226073,deer\n226074,automobile\n226075,ship\n226076,airplane\n226077,ship\n226078,frog\n226079,truck\n226080,horse\n226081,cat\n226082,dog\n226083,deer\n226084,truck\n226085,cat\n226086,cat\n226087,cat\n226088,ship\n226089,cat\n226090,ship\n226091,airplane\n226092,frog\n226093,horse\n226094,airplane\n226095,bird\n226096,bird\n226097,airplane\n226098,truck\n226099,automobile\n226100,deer\n226101,cat\n226102,truck\n226103,airplane\n226104,deer\n226105,truck\n226106,horse\n226107,ship\n226108,truck\n226109,airplane\n226110,cat\n226111,cat\n226112,dog\n226113,cat\n226114,automobile\n226115,cat\n226116,truck\n226117,frog\n226118,cat\n226119,deer\n226120,cat\n226121,airplane\n226122,deer\n226123,dog\n226124,dog\n226125,airplane\n226126,dog\n226127,dog\n226128,horse\n226129,deer\n226130,frog\n226131,frog\n226132,dog\n226133,horse\n226134,deer\n226135,ship\n226136,frog\n226137,airplane\n226138,airplane\n226139,ship\n226140,cat\n226141,truck\n226142,dog\n226143,deer\n226144,deer\n226145,frog\n226146,frog\n226147,airplane\n226148,automobile\n226149,ship\n226150,deer\n226151,deer\n226152,cat\n226153,cat\n226154,bird\n226155,deer\n226156,horse\n226157,horse\n226158,deer\n226159,ship\n226160,deer\n226161,cat\n226162,ship\n226163,cat\n226164,bird\n226165,frog\n226166,deer\n226167,horse\n226168,frog\n226169,deer\n226170,dog\n226171,horse\n226172,dog\n226173,deer\n226174,dog\n226175,frog\n226176,airplane\n226177,cat\n226178,frog\n226179,dog\n226180,cat\n226181,dog\n226182,horse\n226183,automobile\n226184,airplane\n226185,deer\n226186,frog\n226187,cat\n226188,cat\n226189,frog\n226190,horse\n226191,cat\n226192,bird\n226193,deer\n226194,deer\n226195,horse\n226196,frog\n226197,cat\n226198,airplane\n226199,airplane\n226200,truck\n226201,frog\n226202,frog\n226203,dog\n226204,bird\n226205,ship\n226206,horse\n226207,bird\n226208,airplane\n226209,cat\n226210,cat\n226211,deer\n226212,horse\n226213,cat\n226214,deer\n226215,dog\n226216,deer\n226217,airplane\n226218,horse\n226219,frog\n226220,dog\n226221,deer\n226222,cat\n226223,bird\n226224,airplane\n226225,frog\n226226,airplane\n226227,truck\n226228,automobile\n226229,horse\n226230,automobile\n226231,truck\n226232,frog\n226233,cat\n226234,horse\n226235,cat\n226236,frog\n226237,cat\n226238,deer\n226239,frog\n226240,cat\n226241,bird\n226242,horse\n226243,airplane\n226244,cat\n226245,cat\n226246,deer\n226247,frog\n226248,bird\n226249,bird\n226250,airplane\n226251,horse\n226252,cat\n226253,ship\n226254,horse\n226255,airplane\n226256,airplane\n226257,frog\n226258,bird\n226259,ship\n226260,horse\n226261,airplane\n226262,frog\n226263,horse\n226264,dog\n226265,horse\n226266,frog\n226267,horse\n226268,automobile\n226269,horse\n226270,airplane\n226271,horse\n226272,frog\n226273,airplane\n226274,truck\n226275,cat\n226276,cat\n226277,bird\n226278,automobile\n226279,frog\n226280,deer\n226281,frog\n226282,airplane\n226283,cat\n226284,deer\n226285,dog\n226286,ship\n226287,deer\n226288,airplane\n226289,truck\n226290,horse\n226291,truck\n226292,automobile\n226293,frog\n226294,airplane\n226295,frog\n226296,cat\n226297,airplane\n226298,deer\n226299,deer\n226300,horse\n226301,deer\n226302,truck\n226303,automobile\n226304,deer\n226305,cat\n226306,frog\n226307,frog\n226308,airplane\n226309,deer\n226310,automobile\n226311,frog\n226312,horse\n226313,truck\n226314,truck\n226315,deer\n226316,automobile\n226317,bird\n226318,horse\n226319,dog\n226320,truck\n226321,frog\n226322,frog\n226323,automobile\n226324,deer\n226325,frog\n226326,ship\n226327,bird\n226328,horse\n226329,frog\n226330,dog\n226331,cat\n226332,bird\n226333,ship\n226334,horse\n226335,truck\n226336,airplane\n226337,truck\n226338,airplane\n226339,deer\n226340,dog\n226341,cat\n226342,horse\n226343,automobile\n226344,deer\n226345,deer\n226346,deer\n226347,deer\n226348,ship\n226349,bird\n226350,horse\n226351,frog\n226352,ship\n226353,automobile\n226354,frog\n226355,horse\n226356,ship\n226357,cat\n226358,deer\n226359,deer\n226360,frog\n226361,automobile\n226362,deer\n226363,airplane\n226364,horse\n226365,horse\n226366,bird\n226367,deer\n226368,ship\n226369,deer\n226370,dog\n226371,bird\n226372,cat\n226373,frog\n226374,dog\n226375,horse\n226376,cat\n226377,ship\n226378,truck\n226379,deer\n226380,deer\n226381,cat\n226382,horse\n226383,truck\n226384,truck\n226385,deer\n226386,cat\n226387,frog\n226388,frog\n226389,deer\n226390,airplane\n226391,cat\n226392,airplane\n226393,frog\n226394,truck\n226395,bird\n226396,airplane\n226397,airplane\n226398,frog\n226399,bird\n226400,deer\n226401,bird\n226402,truck\n226403,bird\n226404,automobile\n226405,automobile\n226406,horse\n226407,dog\n226408,cat\n226409,truck\n226410,dog\n226411,bird\n226412,frog\n226413,deer\n226414,airplane\n226415,ship\n226416,airplane\n226417,deer\n226418,cat\n226419,deer\n226420,bird\n226421,airplane\n226422,cat\n226423,ship\n226424,dog\n226425,dog\n226426,horse\n226427,dog\n226428,bird\n226429,cat\n226430,cat\n226431,truck\n226432,horse\n226433,bird\n226434,truck\n226435,horse\n226436,bird\n226437,truck\n226438,automobile\n226439,frog\n226440,airplane\n226441,frog\n226442,ship\n226443,automobile\n226444,automobile\n226445,cat\n226446,truck\n226447,cat\n226448,horse\n226449,ship\n226450,deer\n226451,cat\n226452,ship\n226453,dog\n226454,ship\n226455,horse\n226456,frog\n226457,truck\n226458,deer\n226459,bird\n226460,dog\n226461,automobile\n226462,frog\n226463,cat\n226464,bird\n226465,cat\n226466,cat\n226467,frog\n226468,bird\n226469,truck\n226470,dog\n226471,truck\n226472,horse\n226473,bird\n226474,deer\n226475,frog\n226476,dog\n226477,bird\n226478,deer\n226479,bird\n226480,ship\n226481,deer\n226482,cat\n226483,bird\n226484,cat\n226485,automobile\n226486,bird\n226487,cat\n226488,automobile\n226489,frog\n226490,airplane\n226491,dog\n226492,cat\n226493,frog\n226494,bird\n226495,bird\n226496,dog\n226497,dog\n226498,truck\n226499,airplane\n226500,cat\n226501,deer\n226502,frog\n226503,airplane\n226504,horse\n226505,ship\n226506,ship\n226507,ship\n226508,dog\n226509,cat\n226510,ship\n226511,horse\n226512,frog\n226513,horse\n226514,deer\n226515,deer\n226516,frog\n226517,airplane\n226518,frog\n226519,bird\n226520,dog\n226521,automobile\n226522,bird\n226523,cat\n226524,deer\n226525,bird\n226526,cat\n226527,airplane\n226528,ship\n226529,cat\n226530,frog\n226531,ship\n226532,truck\n226533,airplane\n226534,ship\n226535,deer\n226536,deer\n226537,deer\n226538,cat\n226539,automobile\n226540,ship\n226541,horse\n226542,deer\n226543,truck\n226544,bird\n226545,truck\n226546,cat\n226547,dog\n226548,dog\n226549,cat\n226550,dog\n226551,dog\n226552,horse\n226553,ship\n226554,horse\n226555,bird\n226556,truck\n226557,dog\n226558,truck\n226559,truck\n226560,dog\n226561,automobile\n226562,horse\n226563,deer\n226564,truck\n226565,ship\n226566,cat\n226567,frog\n226568,truck\n226569,dog\n226570,cat\n226571,deer\n226572,ship\n226573,deer\n226574,deer\n226575,automobile\n226576,horse\n226577,dog\n226578,dog\n226579,frog\n226580,cat\n226581,deer\n226582,bird\n226583,deer\n226584,dog\n226585,frog\n226586,automobile\n226587,bird\n226588,horse\n226589,horse\n226590,deer\n226591,horse\n226592,bird\n226593,bird\n226594,automobile\n226595,bird\n226596,truck\n226597,deer\n226598,frog\n226599,airplane\n226600,deer\n226601,cat\n226602,frog\n226603,airplane\n226604,truck\n226605,frog\n226606,dog\n226607,truck\n226608,ship\n226609,horse\n226610,truck\n226611,ship\n226612,dog\n226613,horse\n226614,cat\n226615,frog\n226616,truck\n226617,automobile\n226618,truck\n226619,deer\n226620,bird\n226621,bird\n226622,horse\n226623,cat\n226624,bird\n226625,airplane\n226626,dog\n226627,horse\n226628,frog\n226629,frog\n226630,truck\n226631,truck\n226632,deer\n226633,cat\n226634,airplane\n226635,dog\n226636,truck\n226637,deer\n226638,frog\n226639,ship\n226640,ship\n226641,deer\n226642,deer\n226643,frog\n226644,deer\n226645,airplane\n226646,deer\n226647,deer\n226648,frog\n226649,horse\n226650,dog\n226651,horse\n226652,cat\n226653,horse\n226654,deer\n226655,dog\n226656,airplane\n226657,horse\n226658,automobile\n226659,cat\n226660,ship\n226661,deer\n226662,horse\n226663,dog\n226664,airplane\n226665,dog\n226666,ship\n226667,deer\n226668,bird\n226669,cat\n226670,horse\n226671,cat\n226672,truck\n226673,airplane\n226674,airplane\n226675,dog\n226676,cat\n226677,deer\n226678,frog\n226679,airplane\n226680,ship\n226681,horse\n226682,cat\n226683,ship\n226684,deer\n226685,airplane\n226686,truck\n226687,deer\n226688,horse\n226689,cat\n226690,frog\n226691,automobile\n226692,dog\n226693,bird\n226694,cat\n226695,ship\n226696,dog\n226697,truck\n226698,horse\n226699,cat\n226700,truck\n226701,airplane\n226702,automobile\n226703,airplane\n226704,bird\n226705,dog\n226706,truck\n226707,horse\n226708,ship\n226709,horse\n226710,horse\n226711,cat\n226712,cat\n226713,deer\n226714,automobile\n226715,truck\n226716,cat\n226717,horse\n226718,deer\n226719,truck\n226720,airplane\n226721,cat\n226722,ship\n226723,deer\n226724,frog\n226725,ship\n226726,bird\n226727,horse\n226728,truck\n226729,dog\n226730,airplane\n226731,horse\n226732,horse\n226733,frog\n226734,airplane\n226735,cat\n226736,horse\n226737,cat\n226738,ship\n226739,airplane\n226740,deer\n226741,airplane\n226742,airplane\n226743,airplane\n226744,deer\n226745,cat\n226746,dog\n226747,dog\n226748,cat\n226749,cat\n226750,bird\n226751,horse\n226752,cat\n226753,cat\n226754,frog\n226755,cat\n226756,dog\n226757,bird\n226758,dog\n226759,bird\n226760,deer\n226761,deer\n226762,deer\n226763,frog\n226764,truck\n226765,airplane\n226766,deer\n226767,airplane\n226768,airplane\n226769,deer\n226770,airplane\n226771,bird\n226772,ship\n226773,bird\n226774,frog\n226775,horse\n226776,cat\n226777,truck\n226778,truck\n226779,cat\n226780,dog\n226781,airplane\n226782,ship\n226783,cat\n226784,cat\n226785,bird\n226786,ship\n226787,ship\n226788,dog\n226789,truck\n226790,airplane\n226791,truck\n226792,cat\n226793,frog\n226794,dog\n226795,frog\n226796,dog\n226797,cat\n226798,cat\n226799,cat\n226800,deer\n226801,deer\n226802,horse\n226803,truck\n226804,airplane\n226805,frog\n226806,truck\n226807,horse\n226808,frog\n226809,horse\n226810,deer\n226811,truck\n226812,cat\n226813,truck\n226814,frog\n226815,cat\n226816,truck\n226817,bird\n226818,truck\n226819,ship\n226820,horse\n226821,frog\n226822,ship\n226823,ship\n226824,truck\n226825,dog\n226826,frog\n226827,cat\n226828,cat\n226829,dog\n226830,deer\n226831,deer\n226832,automobile\n226833,deer\n226834,bird\n226835,cat\n226836,deer\n226837,airplane\n226838,horse\n226839,automobile\n226840,truck\n226841,ship\n226842,horse\n226843,frog\n226844,bird\n226845,airplane\n226846,cat\n226847,frog\n226848,airplane\n226849,dog\n226850,bird\n226851,bird\n226852,airplane\n226853,deer\n226854,dog\n226855,deer\n226856,dog\n226857,dog\n226858,cat\n226859,airplane\n226860,cat\n226861,dog\n226862,bird\n226863,airplane\n226864,ship\n226865,airplane\n226866,dog\n226867,deer\n226868,airplane\n226869,automobile\n226870,cat\n226871,dog\n226872,cat\n226873,bird\n226874,frog\n226875,deer\n226876,bird\n226877,deer\n226878,frog\n226879,bird\n226880,dog\n226881,deer\n226882,airplane\n226883,cat\n226884,automobile\n226885,bird\n226886,dog\n226887,dog\n226888,cat\n226889,automobile\n226890,truck\n226891,airplane\n226892,frog\n226893,bird\n226894,deer\n226895,truck\n226896,automobile\n226897,cat\n226898,deer\n226899,dog\n226900,bird\n226901,bird\n226902,deer\n226903,dog\n226904,frog\n226905,cat\n226906,deer\n226907,truck\n226908,deer\n226909,cat\n226910,deer\n226911,deer\n226912,horse\n226913,horse\n226914,ship\n226915,frog\n226916,horse\n226917,airplane\n226918,airplane\n226919,deer\n226920,ship\n226921,automobile\n226922,deer\n226923,cat\n226924,truck\n226925,horse\n226926,airplane\n226927,deer\n226928,horse\n226929,deer\n226930,cat\n226931,bird\n226932,deer\n226933,dog\n226934,bird\n226935,frog\n226936,deer\n226937,deer\n226938,frog\n226939,cat\n226940,dog\n226941,deer\n226942,truck\n226943,truck\n226944,horse\n226945,cat\n226946,deer\n226947,dog\n226948,dog\n226949,airplane\n226950,cat\n226951,automobile\n226952,bird\n226953,deer\n226954,airplane\n226955,cat\n226956,deer\n226957,cat\n226958,deer\n226959,deer\n226960,cat\n226961,bird\n226962,cat\n226963,frog\n226964,frog\n226965,truck\n226966,horse\n226967,cat\n226968,bird\n226969,bird\n226970,ship\n226971,airplane\n226972,deer\n226973,cat\n226974,cat\n226975,dog\n226976,dog\n226977,ship\n226978,truck\n226979,horse\n226980,dog\n226981,bird\n226982,dog\n226983,frog\n226984,frog\n226985,truck\n226986,automobile\n226987,ship\n226988,horse\n226989,bird\n226990,cat\n226991,cat\n226992,ship\n226993,dog\n226994,cat\n226995,horse\n226996,truck\n226997,truck\n226998,deer\n226999,deer\n227000,truck\n227001,cat\n227002,truck\n227003,truck\n227004,frog\n227005,horse\n227006,dog\n227007,cat\n227008,airplane\n227009,ship\n227010,horse\n227011,deer\n227012,horse\n227013,airplane\n227014,truck\n227015,cat\n227016,airplane\n227017,deer\n227018,horse\n227019,horse\n227020,deer\n227021,dog\n227022,airplane\n227023,cat\n227024,airplane\n227025,bird\n227026,ship\n227027,cat\n227028,frog\n227029,horse\n227030,ship\n227031,cat\n227032,bird\n227033,frog\n227034,cat\n227035,ship\n227036,automobile\n227037,horse\n227038,deer\n227039,bird\n227040,dog\n227041,cat\n227042,airplane\n227043,dog\n227044,dog\n227045,horse\n227046,deer\n227047,frog\n227048,horse\n227049,deer\n227050,deer\n227051,bird\n227052,truck\n227053,automobile\n227054,dog\n227055,deer\n227056,horse\n227057,truck\n227058,airplane\n227059,cat\n227060,airplane\n227061,horse\n227062,cat\n227063,airplane\n227064,cat\n227065,airplane\n227066,truck\n227067,ship\n227068,airplane\n227069,automobile\n227070,ship\n227071,deer\n227072,airplane\n227073,horse\n227074,bird\n227075,cat\n227076,cat\n227077,airplane\n227078,cat\n227079,frog\n227080,automobile\n227081,cat\n227082,truck\n227083,cat\n227084,airplane\n227085,frog\n227086,bird\n227087,frog\n227088,frog\n227089,horse\n227090,cat\n227091,bird\n227092,horse\n227093,horse\n227094,dog\n227095,bird\n227096,automobile\n227097,dog\n227098,automobile\n227099,deer\n227100,frog\n227101,bird\n227102,truck\n227103,cat\n227104,bird\n227105,deer\n227106,bird\n227107,horse\n227108,horse\n227109,frog\n227110,cat\n227111,automobile\n227112,frog\n227113,dog\n227114,horse\n227115,frog\n227116,deer\n227117,dog\n227118,airplane\n227119,truck\n227120,frog\n227121,ship\n227122,horse\n227123,frog\n227124,horse\n227125,bird\n227126,truck\n227127,ship\n227128,deer\n227129,truck\n227130,frog\n227131,frog\n227132,cat\n227133,dog\n227134,horse\n227135,ship\n227136,truck\n227137,cat\n227138,dog\n227139,ship\n227140,dog\n227141,automobile\n227142,airplane\n227143,deer\n227144,bird\n227145,cat\n227146,deer\n227147,ship\n227148,automobile\n227149,frog\n227150,horse\n227151,deer\n227152,bird\n227153,bird\n227154,truck\n227155,truck\n227156,automobile\n227157,deer\n227158,dog\n227159,ship\n227160,bird\n227161,automobile\n227162,truck\n227163,truck\n227164,frog\n227165,frog\n227166,horse\n227167,deer\n227168,truck\n227169,cat\n227170,dog\n227171,cat\n227172,deer\n227173,horse\n227174,automobile\n227175,airplane\n227176,ship\n227177,bird\n227178,dog\n227179,horse\n227180,ship\n227181,cat\n227182,dog\n227183,horse\n227184,airplane\n227185,automobile\n227186,horse\n227187,dog\n227188,deer\n227189,deer\n227190,dog\n227191,cat\n227192,dog\n227193,frog\n227194,truck\n227195,horse\n227196,ship\n227197,frog\n227198,truck\n227199,airplane\n227200,deer\n227201,deer\n227202,horse\n227203,automobile\n227204,deer\n227205,airplane\n227206,cat\n227207,ship\n227208,deer\n227209,deer\n227210,ship\n227211,ship\n227212,ship\n227213,cat\n227214,deer\n227215,airplane\n227216,deer\n227217,frog\n227218,cat\n227219,airplane\n227220,frog\n227221,horse\n227222,horse\n227223,dog\n227224,truck\n227225,cat\n227226,dog\n227227,truck\n227228,deer\n227229,truck\n227230,bird\n227231,dog\n227232,dog\n227233,truck\n227234,frog\n227235,bird\n227236,cat\n227237,truck\n227238,airplane\n227239,horse\n227240,horse\n227241,automobile\n227242,horse\n227243,bird\n227244,airplane\n227245,horse\n227246,deer\n227247,airplane\n227248,airplane\n227249,dog\n227250,dog\n227251,truck\n227252,cat\n227253,airplane\n227254,dog\n227255,dog\n227256,truck\n227257,horse\n227258,deer\n227259,cat\n227260,truck\n227261,dog\n227262,automobile\n227263,airplane\n227264,dog\n227265,automobile\n227266,deer\n227267,horse\n227268,cat\n227269,automobile\n227270,dog\n227271,cat\n227272,frog\n227273,airplane\n227274,deer\n227275,truck\n227276,airplane\n227277,ship\n227278,truck\n227279,truck\n227280,frog\n227281,ship\n227282,bird\n227283,cat\n227284,frog\n227285,truck\n227286,cat\n227287,bird\n227288,ship\n227289,frog\n227290,dog\n227291,automobile\n227292,cat\n227293,ship\n227294,frog\n227295,airplane\n227296,cat\n227297,airplane\n227298,truck\n227299,frog\n227300,bird\n227301,horse\n227302,cat\n227303,deer\n227304,deer\n227305,horse\n227306,frog\n227307,dog\n227308,truck\n227309,deer\n227310,deer\n227311,airplane\n227312,horse\n227313,bird\n227314,bird\n227315,frog\n227316,ship\n227317,deer\n227318,truck\n227319,bird\n227320,dog\n227321,deer\n227322,horse\n227323,deer\n227324,horse\n227325,cat\n227326,truck\n227327,dog\n227328,truck\n227329,horse\n227330,truck\n227331,frog\n227332,deer\n227333,cat\n227334,cat\n227335,deer\n227336,cat\n227337,truck\n227338,cat\n227339,bird\n227340,cat\n227341,horse\n227342,bird\n227343,horse\n227344,deer\n227345,automobile\n227346,horse\n227347,dog\n227348,automobile\n227349,truck\n227350,horse\n227351,bird\n227352,automobile\n227353,horse\n227354,cat\n227355,automobile\n227356,ship\n227357,bird\n227358,truck\n227359,ship\n227360,deer\n227361,truck\n227362,bird\n227363,deer\n227364,automobile\n227365,dog\n227366,truck\n227367,dog\n227368,cat\n227369,cat\n227370,frog\n227371,deer\n227372,airplane\n227373,cat\n227374,cat\n227375,cat\n227376,frog\n227377,horse\n227378,dog\n227379,frog\n227380,ship\n227381,cat\n227382,dog\n227383,frog\n227384,deer\n227385,dog\n227386,ship\n227387,horse\n227388,cat\n227389,truck\n227390,airplane\n227391,horse\n227392,cat\n227393,deer\n227394,airplane\n227395,ship\n227396,deer\n227397,deer\n227398,deer\n227399,deer\n227400,dog\n227401,horse\n227402,cat\n227403,airplane\n227404,dog\n227405,truck\n227406,frog\n227407,dog\n227408,airplane\n227409,frog\n227410,frog\n227411,frog\n227412,automobile\n227413,airplane\n227414,horse\n227415,frog\n227416,airplane\n227417,airplane\n227418,truck\n227419,cat\n227420,ship\n227421,bird\n227422,ship\n227423,automobile\n227424,deer\n227425,frog\n227426,truck\n227427,deer\n227428,dog\n227429,airplane\n227430,frog\n227431,frog\n227432,bird\n227433,cat\n227434,truck\n227435,deer\n227436,frog\n227437,frog\n227438,dog\n227439,deer\n227440,horse\n227441,cat\n227442,truck\n227443,automobile\n227444,horse\n227445,truck\n227446,dog\n227447,ship\n227448,automobile\n227449,deer\n227450,horse\n227451,frog\n227452,cat\n227453,bird\n227454,deer\n227455,deer\n227456,dog\n227457,bird\n227458,airplane\n227459,deer\n227460,dog\n227461,truck\n227462,cat\n227463,deer\n227464,bird\n227465,horse\n227466,airplane\n227467,deer\n227468,deer\n227469,dog\n227470,horse\n227471,frog\n227472,horse\n227473,airplane\n227474,airplane\n227475,automobile\n227476,deer\n227477,cat\n227478,truck\n227479,deer\n227480,bird\n227481,ship\n227482,airplane\n227483,cat\n227484,truck\n227485,truck\n227486,frog\n227487,ship\n227488,truck\n227489,automobile\n227490,cat\n227491,cat\n227492,horse\n227493,airplane\n227494,frog\n227495,horse\n227496,truck\n227497,automobile\n227498,dog\n227499,automobile\n227500,ship\n227501,dog\n227502,automobile\n227503,cat\n227504,airplane\n227505,deer\n227506,airplane\n227507,horse\n227508,cat\n227509,bird\n227510,deer\n227511,horse\n227512,bird\n227513,truck\n227514,airplane\n227515,bird\n227516,dog\n227517,cat\n227518,horse\n227519,airplane\n227520,frog\n227521,ship\n227522,frog\n227523,dog\n227524,cat\n227525,dog\n227526,bird\n227527,deer\n227528,dog\n227529,airplane\n227530,bird\n227531,truck\n227532,cat\n227533,cat\n227534,truck\n227535,truck\n227536,airplane\n227537,cat\n227538,truck\n227539,bird\n227540,truck\n227541,dog\n227542,horse\n227543,dog\n227544,bird\n227545,truck\n227546,bird\n227547,deer\n227548,airplane\n227549,cat\n227550,cat\n227551,ship\n227552,cat\n227553,truck\n227554,cat\n227555,dog\n227556,bird\n227557,ship\n227558,airplane\n227559,dog\n227560,frog\n227561,dog\n227562,dog\n227563,cat\n227564,airplane\n227565,dog\n227566,cat\n227567,deer\n227568,airplane\n227569,horse\n227570,dog\n227571,deer\n227572,frog\n227573,deer\n227574,truck\n227575,dog\n227576,truck\n227577,ship\n227578,automobile\n227579,truck\n227580,horse\n227581,deer\n227582,cat\n227583,automobile\n227584,dog\n227585,bird\n227586,bird\n227587,ship\n227588,horse\n227589,airplane\n227590,frog\n227591,deer\n227592,deer\n227593,dog\n227594,truck\n227595,horse\n227596,cat\n227597,deer\n227598,deer\n227599,dog\n227600,cat\n227601,deer\n227602,ship\n227603,truck\n227604,bird\n227605,deer\n227606,frog\n227607,dog\n227608,horse\n227609,cat\n227610,dog\n227611,horse\n227612,dog\n227613,deer\n227614,cat\n227615,dog\n227616,deer\n227617,automobile\n227618,dog\n227619,ship\n227620,deer\n227621,truck\n227622,bird\n227623,truck\n227624,truck\n227625,frog\n227626,bird\n227627,ship\n227628,frog\n227629,deer\n227630,ship\n227631,horse\n227632,ship\n227633,bird\n227634,cat\n227635,horse\n227636,automobile\n227637,dog\n227638,truck\n227639,ship\n227640,bird\n227641,airplane\n227642,cat\n227643,ship\n227644,dog\n227645,frog\n227646,deer\n227647,bird\n227648,cat\n227649,ship\n227650,bird\n227651,bird\n227652,automobile\n227653,cat\n227654,automobile\n227655,horse\n227656,airplane\n227657,airplane\n227658,airplane\n227659,ship\n227660,horse\n227661,deer\n227662,dog\n227663,ship\n227664,frog\n227665,horse\n227666,horse\n227667,cat\n227668,cat\n227669,airplane\n227670,dog\n227671,frog\n227672,ship\n227673,frog\n227674,airplane\n227675,airplane\n227676,cat\n227677,horse\n227678,airplane\n227679,deer\n227680,dog\n227681,frog\n227682,dog\n227683,ship\n227684,frog\n227685,frog\n227686,cat\n227687,bird\n227688,cat\n227689,dog\n227690,cat\n227691,automobile\n227692,deer\n227693,deer\n227694,frog\n227695,dog\n227696,deer\n227697,deer\n227698,cat\n227699,bird\n227700,dog\n227701,cat\n227702,dog\n227703,deer\n227704,truck\n227705,deer\n227706,cat\n227707,deer\n227708,bird\n227709,deer\n227710,deer\n227711,cat\n227712,truck\n227713,deer\n227714,truck\n227715,deer\n227716,cat\n227717,truck\n227718,truck\n227719,bird\n227720,deer\n227721,truck\n227722,deer\n227723,dog\n227724,bird\n227725,truck\n227726,dog\n227727,deer\n227728,bird\n227729,cat\n227730,horse\n227731,truck\n227732,truck\n227733,horse\n227734,ship\n227735,bird\n227736,cat\n227737,frog\n227738,cat\n227739,bird\n227740,truck\n227741,airplane\n227742,airplane\n227743,horse\n227744,deer\n227745,frog\n227746,dog\n227747,cat\n227748,bird\n227749,horse\n227750,airplane\n227751,airplane\n227752,frog\n227753,automobile\n227754,airplane\n227755,cat\n227756,ship\n227757,automobile\n227758,cat\n227759,horse\n227760,dog\n227761,cat\n227762,bird\n227763,bird\n227764,automobile\n227765,horse\n227766,deer\n227767,deer\n227768,bird\n227769,truck\n227770,truck\n227771,ship\n227772,airplane\n227773,frog\n227774,automobile\n227775,frog\n227776,cat\n227777,horse\n227778,deer\n227779,truck\n227780,frog\n227781,bird\n227782,dog\n227783,deer\n227784,truck\n227785,deer\n227786,cat\n227787,dog\n227788,automobile\n227789,cat\n227790,ship\n227791,truck\n227792,bird\n227793,cat\n227794,deer\n227795,horse\n227796,bird\n227797,deer\n227798,deer\n227799,cat\n227800,frog\n227801,cat\n227802,dog\n227803,bird\n227804,cat\n227805,automobile\n227806,bird\n227807,dog\n227808,truck\n227809,cat\n227810,airplane\n227811,deer\n227812,cat\n227813,horse\n227814,dog\n227815,cat\n227816,truck\n227817,horse\n227818,horse\n227819,dog\n227820,automobile\n227821,deer\n227822,truck\n227823,cat\n227824,truck\n227825,frog\n227826,dog\n227827,ship\n227828,frog\n227829,frog\n227830,frog\n227831,airplane\n227832,truck\n227833,frog\n227834,deer\n227835,truck\n227836,bird\n227837,horse\n227838,ship\n227839,frog\n227840,deer\n227841,horse\n227842,cat\n227843,deer\n227844,automobile\n227845,frog\n227846,deer\n227847,horse\n227848,truck\n227849,deer\n227850,cat\n227851,bird\n227852,deer\n227853,automobile\n227854,deer\n227855,frog\n227856,bird\n227857,airplane\n227858,automobile\n227859,horse\n227860,cat\n227861,airplane\n227862,frog\n227863,ship\n227864,truck\n227865,ship\n227866,bird\n227867,horse\n227868,horse\n227869,dog\n227870,dog\n227871,cat\n227872,airplane\n227873,horse\n227874,cat\n227875,bird\n227876,airplane\n227877,ship\n227878,truck\n227879,airplane\n227880,bird\n227881,airplane\n227882,ship\n227883,truck\n227884,frog\n227885,airplane\n227886,bird\n227887,truck\n227888,horse\n227889,truck\n227890,horse\n227891,deer\n227892,frog\n227893,bird\n227894,truck\n227895,automobile\n227896,dog\n227897,cat\n227898,deer\n227899,automobile\n227900,dog\n227901,dog\n227902,cat\n227903,cat\n227904,horse\n227905,truck\n227906,bird\n227907,horse\n227908,bird\n227909,cat\n227910,horse\n227911,cat\n227912,truck\n227913,dog\n227914,frog\n227915,cat\n227916,truck\n227917,deer\n227918,horse\n227919,horse\n227920,ship\n227921,deer\n227922,airplane\n227923,horse\n227924,cat\n227925,cat\n227926,automobile\n227927,bird\n227928,deer\n227929,automobile\n227930,deer\n227931,cat\n227932,automobile\n227933,airplane\n227934,automobile\n227935,truck\n227936,frog\n227937,dog\n227938,truck\n227939,automobile\n227940,bird\n227941,airplane\n227942,dog\n227943,deer\n227944,deer\n227945,deer\n227946,horse\n227947,ship\n227948,truck\n227949,airplane\n227950,dog\n227951,dog\n227952,cat\n227953,truck\n227954,truck\n227955,cat\n227956,truck\n227957,bird\n227958,frog\n227959,horse\n227960,horse\n227961,automobile\n227962,horse\n227963,ship\n227964,bird\n227965,truck\n227966,airplane\n227967,dog\n227968,truck\n227969,cat\n227970,truck\n227971,truck\n227972,ship\n227973,frog\n227974,horse\n227975,cat\n227976,deer\n227977,bird\n227978,frog\n227979,cat\n227980,truck\n227981,bird\n227982,deer\n227983,automobile\n227984,dog\n227985,bird\n227986,truck\n227987,horse\n227988,automobile\n227989,frog\n227990,ship\n227991,ship\n227992,horse\n227993,truck\n227994,automobile\n227995,deer\n227996,truck\n227997,bird\n227998,truck\n227999,frog\n228000,dog\n228001,truck\n228002,bird\n228003,cat\n228004,deer\n228005,ship\n228006,truck\n228007,horse\n228008,bird\n228009,truck\n228010,truck\n228011,truck\n228012,deer\n228013,automobile\n228014,deer\n228015,dog\n228016,ship\n228017,horse\n228018,bird\n228019,cat\n228020,truck\n228021,truck\n228022,truck\n228023,automobile\n228024,frog\n228025,frog\n228026,frog\n228027,deer\n228028,horse\n228029,deer\n228030,cat\n228031,cat\n228032,dog\n228033,cat\n228034,frog\n228035,dog\n228036,deer\n228037,bird\n228038,deer\n228039,frog\n228040,truck\n228041,dog\n228042,airplane\n228043,truck\n228044,ship\n228045,dog\n228046,ship\n228047,deer\n228048,cat\n228049,ship\n228050,dog\n228051,deer\n228052,airplane\n228053,dog\n228054,dog\n228055,frog\n228056,truck\n228057,cat\n228058,cat\n228059,horse\n228060,ship\n228061,cat\n228062,ship\n228063,dog\n228064,frog\n228065,frog\n228066,dog\n228067,cat\n228068,automobile\n228069,frog\n228070,frog\n228071,ship\n228072,truck\n228073,airplane\n228074,truck\n228075,horse\n228076,automobile\n228077,bird\n228078,dog\n228079,airplane\n228080,horse\n228081,dog\n228082,horse\n228083,horse\n228084,deer\n228085,automobile\n228086,airplane\n228087,ship\n228088,airplane\n228089,deer\n228090,truck\n228091,cat\n228092,airplane\n228093,bird\n228094,deer\n228095,airplane\n228096,ship\n228097,frog\n228098,deer\n228099,frog\n228100,horse\n228101,horse\n228102,truck\n228103,truck\n228104,bird\n228105,dog\n228106,truck\n228107,horse\n228108,bird\n228109,cat\n228110,frog\n228111,automobile\n228112,truck\n228113,airplane\n228114,horse\n228115,frog\n228116,ship\n228117,truck\n228118,cat\n228119,dog\n228120,airplane\n228121,deer\n228122,cat\n228123,airplane\n228124,automobile\n228125,cat\n228126,automobile\n228127,deer\n228128,deer\n228129,automobile\n228130,frog\n228131,automobile\n228132,cat\n228133,deer\n228134,automobile\n228135,horse\n228136,automobile\n228137,deer\n228138,cat\n228139,bird\n228140,horse\n228141,deer\n228142,deer\n228143,cat\n228144,deer\n228145,horse\n228146,horse\n228147,cat\n228148,dog\n228149,bird\n228150,airplane\n228151,deer\n228152,airplane\n228153,airplane\n228154,dog\n228155,cat\n228156,ship\n228157,bird\n228158,deer\n228159,truck\n228160,airplane\n228161,cat\n228162,deer\n228163,cat\n228164,horse\n228165,horse\n228166,dog\n228167,frog\n228168,truck\n228169,cat\n228170,airplane\n228171,airplane\n228172,cat\n228173,cat\n228174,ship\n228175,frog\n228176,frog\n228177,frog\n228178,frog\n228179,ship\n228180,ship\n228181,deer\n228182,cat\n228183,deer\n228184,bird\n228185,frog\n228186,airplane\n228187,frog\n228188,cat\n228189,automobile\n228190,deer\n228191,deer\n228192,cat\n228193,horse\n228194,cat\n228195,frog\n228196,deer\n228197,automobile\n228198,ship\n228199,truck\n228200,horse\n228201,dog\n228202,airplane\n228203,deer\n228204,frog\n228205,cat\n228206,frog\n228207,frog\n228208,cat\n228209,truck\n228210,automobile\n228211,dog\n228212,cat\n228213,dog\n228214,deer\n228215,ship\n228216,deer\n228217,bird\n228218,frog\n228219,ship\n228220,horse\n228221,truck\n228222,deer\n228223,frog\n228224,dog\n228225,airplane\n228226,dog\n228227,horse\n228228,horse\n228229,cat\n228230,horse\n228231,cat\n228232,horse\n228233,airplane\n228234,automobile\n228235,truck\n228236,cat\n228237,airplane\n228238,ship\n228239,airplane\n228240,frog\n228241,frog\n228242,frog\n228243,deer\n228244,cat\n228245,bird\n228246,ship\n228247,cat\n228248,ship\n228249,dog\n228250,truck\n228251,bird\n228252,deer\n228253,automobile\n228254,deer\n228255,horse\n228256,automobile\n228257,deer\n228258,deer\n228259,cat\n228260,dog\n228261,airplane\n228262,dog\n228263,dog\n228264,ship\n228265,deer\n228266,frog\n228267,automobile\n228268,cat\n228269,frog\n228270,cat\n228271,frog\n228272,dog\n228273,airplane\n228274,deer\n228275,dog\n228276,horse\n228277,frog\n228278,cat\n228279,automobile\n228280,horse\n228281,bird\n228282,dog\n228283,cat\n228284,bird\n228285,ship\n228286,deer\n228287,truck\n228288,frog\n228289,frog\n228290,cat\n228291,horse\n228292,airplane\n228293,truck\n228294,automobile\n228295,automobile\n228296,deer\n228297,horse\n228298,bird\n228299,automobile\n228300,dog\n228301,dog\n228302,automobile\n228303,truck\n228304,horse\n228305,frog\n228306,deer\n228307,cat\n228308,ship\n228309,deer\n228310,truck\n228311,truck\n228312,horse\n228313,airplane\n228314,horse\n228315,automobile\n228316,frog\n228317,cat\n228318,airplane\n228319,bird\n228320,dog\n228321,truck\n228322,airplane\n228323,bird\n228324,bird\n228325,deer\n228326,automobile\n228327,horse\n228328,deer\n228329,deer\n228330,ship\n228331,ship\n228332,truck\n228333,cat\n228334,dog\n228335,frog\n228336,automobile\n228337,dog\n228338,horse\n228339,truck\n228340,automobile\n228341,cat\n228342,frog\n228343,truck\n228344,automobile\n228345,bird\n228346,ship\n228347,horse\n228348,frog\n228349,cat\n228350,horse\n228351,airplane\n228352,deer\n228353,horse\n228354,cat\n228355,horse\n228356,ship\n228357,truck\n228358,cat\n228359,dog\n228360,airplane\n228361,truck\n228362,frog\n228363,dog\n228364,dog\n228365,automobile\n228366,cat\n228367,airplane\n228368,truck\n228369,dog\n228370,ship\n228371,airplane\n228372,horse\n228373,bird\n228374,frog\n228375,automobile\n228376,cat\n228377,horse\n228378,automobile\n228379,ship\n228380,frog\n228381,deer\n228382,horse\n228383,deer\n228384,horse\n228385,automobile\n228386,cat\n228387,automobile\n228388,cat\n228389,bird\n228390,automobile\n228391,deer\n228392,cat\n228393,cat\n228394,deer\n228395,deer\n228396,truck\n228397,cat\n228398,truck\n228399,frog\n228400,airplane\n228401,deer\n228402,bird\n228403,horse\n228404,bird\n228405,cat\n228406,bird\n228407,bird\n228408,frog\n228409,dog\n228410,deer\n228411,cat\n228412,bird\n228413,frog\n228414,frog\n228415,frog\n228416,dog\n228417,ship\n228418,cat\n228419,frog\n228420,truck\n228421,bird\n228422,frog\n228423,truck\n228424,ship\n228425,dog\n228426,frog\n228427,truck\n228428,horse\n228429,cat\n228430,truck\n228431,deer\n228432,frog\n228433,automobile\n228434,airplane\n228435,cat\n228436,automobile\n228437,airplane\n228438,airplane\n228439,bird\n228440,frog\n228441,truck\n228442,truck\n228443,deer\n228444,truck\n228445,truck\n228446,horse\n228447,horse\n228448,deer\n228449,cat\n228450,cat\n228451,truck\n228452,cat\n228453,ship\n228454,ship\n228455,airplane\n228456,bird\n228457,deer\n228458,dog\n228459,horse\n228460,airplane\n228461,automobile\n228462,frog\n228463,truck\n228464,dog\n228465,horse\n228466,airplane\n228467,truck\n228468,truck\n228469,frog\n228470,bird\n228471,frog\n228472,automobile\n228473,cat\n228474,truck\n228475,horse\n228476,airplane\n228477,airplane\n228478,cat\n228479,dog\n228480,horse\n228481,frog\n228482,dog\n228483,frog\n228484,automobile\n228485,deer\n228486,bird\n228487,deer\n228488,cat\n228489,dog\n228490,deer\n228491,dog\n228492,frog\n228493,automobile\n228494,automobile\n228495,ship\n228496,cat\n228497,ship\n228498,ship\n228499,automobile\n228500,bird\n228501,airplane\n228502,dog\n228503,bird\n228504,cat\n228505,dog\n228506,automobile\n228507,bird\n228508,airplane\n228509,truck\n228510,dog\n228511,airplane\n228512,automobile\n228513,deer\n228514,bird\n228515,ship\n228516,cat\n228517,deer\n228518,truck\n228519,bird\n228520,cat\n228521,cat\n228522,horse\n228523,automobile\n228524,automobile\n228525,dog\n228526,dog\n228527,bird\n228528,bird\n228529,cat\n228530,cat\n228531,ship\n228532,bird\n228533,airplane\n228534,cat\n228535,deer\n228536,horse\n228537,cat\n228538,cat\n228539,dog\n228540,deer\n228541,horse\n228542,ship\n228543,airplane\n228544,ship\n228545,dog\n228546,cat\n228547,automobile\n228548,airplane\n228549,deer\n228550,truck\n228551,automobile\n228552,horse\n228553,deer\n228554,automobile\n228555,airplane\n228556,deer\n228557,dog\n228558,dog\n228559,frog\n228560,airplane\n228561,airplane\n228562,bird\n228563,horse\n228564,ship\n228565,ship\n228566,cat\n228567,frog\n228568,truck\n228569,bird\n228570,ship\n228571,cat\n228572,ship\n228573,deer\n228574,automobile\n228575,ship\n228576,horse\n228577,automobile\n228578,cat\n228579,deer\n228580,horse\n228581,horse\n228582,deer\n228583,truck\n228584,cat\n228585,airplane\n228586,truck\n228587,truck\n228588,bird\n228589,truck\n228590,cat\n228591,horse\n228592,truck\n228593,dog\n228594,truck\n228595,cat\n228596,dog\n228597,automobile\n228598,dog\n228599,horse\n228600,frog\n228601,cat\n228602,airplane\n228603,automobile\n228604,ship\n228605,frog\n228606,bird\n228607,deer\n228608,truck\n228609,ship\n228610,horse\n228611,bird\n228612,frog\n228613,cat\n228614,truck\n228615,truck\n228616,frog\n228617,dog\n228618,truck\n228619,bird\n228620,ship\n228621,deer\n228622,ship\n228623,cat\n228624,cat\n228625,airplane\n228626,frog\n228627,frog\n228628,deer\n228629,frog\n228630,bird\n228631,horse\n228632,automobile\n228633,cat\n228634,bird\n228635,frog\n228636,horse\n228637,airplane\n228638,dog\n228639,ship\n228640,frog\n228641,bird\n228642,cat\n228643,automobile\n228644,frog\n228645,deer\n228646,airplane\n228647,cat\n228648,cat\n228649,bird\n228650,cat\n228651,dog\n228652,bird\n228653,ship\n228654,deer\n228655,frog\n228656,bird\n228657,ship\n228658,truck\n228659,horse\n228660,horse\n228661,truck\n228662,dog\n228663,automobile\n228664,airplane\n228665,bird\n228666,bird\n228667,truck\n228668,cat\n228669,dog\n228670,deer\n228671,automobile\n228672,automobile\n228673,truck\n228674,airplane\n228675,frog\n228676,frog\n228677,horse\n228678,automobile\n228679,ship\n228680,cat\n228681,automobile\n228682,dog\n228683,truck\n228684,frog\n228685,cat\n228686,deer\n228687,ship\n228688,bird\n228689,truck\n228690,deer\n228691,deer\n228692,dog\n228693,airplane\n228694,truck\n228695,frog\n228696,horse\n228697,cat\n228698,airplane\n228699,cat\n228700,ship\n228701,dog\n228702,truck\n228703,horse\n228704,deer\n228705,deer\n228706,horse\n228707,ship\n228708,cat\n228709,airplane\n228710,frog\n228711,ship\n228712,truck\n228713,dog\n228714,bird\n228715,ship\n228716,deer\n228717,dog\n228718,cat\n228719,truck\n228720,deer\n228721,cat\n228722,automobile\n228723,cat\n228724,dog\n228725,airplane\n228726,frog\n228727,automobile\n228728,airplane\n228729,frog\n228730,bird\n228731,cat\n228732,truck\n228733,truck\n228734,cat\n228735,deer\n228736,cat\n228737,automobile\n228738,cat\n228739,dog\n228740,bird\n228741,deer\n228742,dog\n228743,ship\n228744,airplane\n228745,cat\n228746,deer\n228747,frog\n228748,truck\n228749,truck\n228750,truck\n228751,dog\n228752,bird\n228753,airplane\n228754,cat\n228755,automobile\n228756,airplane\n228757,airplane\n228758,cat\n228759,truck\n228760,ship\n228761,cat\n228762,dog\n228763,dog\n228764,frog\n228765,deer\n228766,airplane\n228767,airplane\n228768,truck\n228769,automobile\n228770,bird\n228771,truck\n228772,automobile\n228773,truck\n228774,automobile\n228775,dog\n228776,deer\n228777,deer\n228778,dog\n228779,airplane\n228780,frog\n228781,cat\n228782,automobile\n228783,horse\n228784,horse\n228785,dog\n228786,cat\n228787,dog\n228788,ship\n228789,frog\n228790,dog\n228791,truck\n228792,automobile\n228793,bird\n228794,frog\n228795,horse\n228796,truck\n228797,ship\n228798,cat\n228799,deer\n228800,frog\n228801,dog\n228802,automobile\n228803,cat\n228804,dog\n228805,cat\n228806,airplane\n228807,truck\n228808,automobile\n228809,airplane\n228810,truck\n228811,frog\n228812,frog\n228813,deer\n228814,ship\n228815,automobile\n228816,cat\n228817,dog\n228818,deer\n228819,cat\n228820,horse\n228821,frog\n228822,truck\n228823,automobile\n228824,deer\n228825,deer\n228826,automobile\n228827,cat\n228828,airplane\n228829,cat\n228830,cat\n228831,deer\n228832,truck\n228833,frog\n228834,frog\n228835,bird\n228836,deer\n228837,cat\n228838,dog\n228839,horse\n228840,cat\n228841,deer\n228842,cat\n228843,cat\n228844,truck\n228845,bird\n228846,frog\n228847,airplane\n228848,automobile\n228849,bird\n228850,bird\n228851,bird\n228852,horse\n228853,truck\n228854,automobile\n228855,frog\n228856,cat\n228857,frog\n228858,deer\n228859,truck\n228860,horse\n228861,ship\n228862,truck\n228863,deer\n228864,dog\n228865,airplane\n228866,cat\n228867,airplane\n228868,cat\n228869,ship\n228870,cat\n228871,deer\n228872,airplane\n228873,deer\n228874,truck\n228875,automobile\n228876,bird\n228877,deer\n228878,dog\n228879,dog\n228880,dog\n228881,bird\n228882,automobile\n228883,cat\n228884,automobile\n228885,deer\n228886,airplane\n228887,automobile\n228888,bird\n228889,deer\n228890,airplane\n228891,truck\n228892,automobile\n228893,bird\n228894,deer\n228895,automobile\n228896,cat\n228897,deer\n228898,automobile\n228899,automobile\n228900,cat\n228901,airplane\n228902,airplane\n228903,automobile\n228904,deer\n228905,automobile\n228906,bird\n228907,truck\n228908,truck\n228909,truck\n228910,deer\n228911,cat\n228912,frog\n228913,truck\n228914,airplane\n228915,truck\n228916,frog\n228917,dog\n228918,dog\n228919,deer\n228920,horse\n228921,bird\n228922,deer\n228923,cat\n228924,truck\n228925,airplane\n228926,deer\n228927,dog\n228928,horse\n228929,airplane\n228930,frog\n228931,truck\n228932,bird\n228933,cat\n228934,frog\n228935,frog\n228936,frog\n228937,horse\n228938,ship\n228939,cat\n228940,dog\n228941,ship\n228942,frog\n228943,truck\n228944,frog\n228945,dog\n228946,frog\n228947,ship\n228948,dog\n228949,cat\n228950,deer\n228951,bird\n228952,horse\n228953,frog\n228954,frog\n228955,deer\n228956,automobile\n228957,truck\n228958,bird\n228959,ship\n228960,cat\n228961,dog\n228962,ship\n228963,horse\n228964,horse\n228965,ship\n228966,deer\n228967,cat\n228968,cat\n228969,truck\n228970,deer\n228971,deer\n228972,ship\n228973,frog\n228974,truck\n228975,cat\n228976,frog\n228977,cat\n228978,truck\n228979,airplane\n228980,automobile\n228981,truck\n228982,cat\n228983,ship\n228984,dog\n228985,horse\n228986,deer\n228987,cat\n228988,airplane\n228989,deer\n228990,airplane\n228991,cat\n228992,cat\n228993,deer\n228994,frog\n228995,bird\n228996,automobile\n228997,deer\n228998,cat\n228999,airplane\n229000,horse\n229001,frog\n229002,airplane\n229003,airplane\n229004,dog\n229005,dog\n229006,bird\n229007,deer\n229008,horse\n229009,bird\n229010,ship\n229011,airplane\n229012,dog\n229013,ship\n229014,truck\n229015,horse\n229016,ship\n229017,horse\n229018,dog\n229019,deer\n229020,cat\n229021,cat\n229022,horse\n229023,frog\n229024,dog\n229025,horse\n229026,dog\n229027,truck\n229028,bird\n229029,ship\n229030,cat\n229031,deer\n229032,deer\n229033,cat\n229034,deer\n229035,airplane\n229036,deer\n229037,airplane\n229038,cat\n229039,bird\n229040,truck\n229041,automobile\n229042,cat\n229043,airplane\n229044,cat\n229045,cat\n229046,airplane\n229047,ship\n229048,horse\n229049,truck\n229050,dog\n229051,airplane\n229052,dog\n229053,frog\n229054,truck\n229055,horse\n229056,cat\n229057,bird\n229058,dog\n229059,cat\n229060,horse\n229061,dog\n229062,cat\n229063,truck\n229064,ship\n229065,truck\n229066,frog\n229067,bird\n229068,horse\n229069,frog\n229070,cat\n229071,airplane\n229072,bird\n229073,deer\n229074,cat\n229075,ship\n229076,truck\n229077,automobile\n229078,frog\n229079,ship\n229080,truck\n229081,cat\n229082,frog\n229083,automobile\n229084,cat\n229085,ship\n229086,deer\n229087,dog\n229088,bird\n229089,ship\n229090,cat\n229091,ship\n229092,dog\n229093,horse\n229094,cat\n229095,cat\n229096,deer\n229097,cat\n229098,truck\n229099,bird\n229100,dog\n229101,bird\n229102,frog\n229103,dog\n229104,frog\n229105,dog\n229106,dog\n229107,cat\n229108,frog\n229109,dog\n229110,frog\n229111,cat\n229112,airplane\n229113,dog\n229114,deer\n229115,deer\n229116,cat\n229117,cat\n229118,airplane\n229119,automobile\n229120,truck\n229121,bird\n229122,frog\n229123,frog\n229124,frog\n229125,dog\n229126,bird\n229127,cat\n229128,frog\n229129,dog\n229130,airplane\n229131,bird\n229132,ship\n229133,dog\n229134,frog\n229135,horse\n229136,deer\n229137,automobile\n229138,bird\n229139,dog\n229140,truck\n229141,horse\n229142,deer\n229143,cat\n229144,deer\n229145,deer\n229146,deer\n229147,truck\n229148,horse\n229149,automobile\n229150,truck\n229151,frog\n229152,horse\n229153,deer\n229154,ship\n229155,dog\n229156,frog\n229157,ship\n229158,frog\n229159,frog\n229160,cat\n229161,ship\n229162,dog\n229163,ship\n229164,automobile\n229165,dog\n229166,deer\n229167,ship\n229168,frog\n229169,truck\n229170,dog\n229171,dog\n229172,bird\n229173,ship\n229174,truck\n229175,deer\n229176,frog\n229177,bird\n229178,horse\n229179,dog\n229180,bird\n229181,horse\n229182,horse\n229183,truck\n229184,cat\n229185,ship\n229186,cat\n229187,frog\n229188,truck\n229189,deer\n229190,ship\n229191,deer\n229192,deer\n229193,ship\n229194,cat\n229195,airplane\n229196,deer\n229197,deer\n229198,horse\n229199,cat\n229200,bird\n229201,horse\n229202,automobile\n229203,truck\n229204,ship\n229205,truck\n229206,horse\n229207,dog\n229208,cat\n229209,automobile\n229210,deer\n229211,dog\n229212,truck\n229213,cat\n229214,frog\n229215,cat\n229216,cat\n229217,deer\n229218,deer\n229219,frog\n229220,deer\n229221,ship\n229222,ship\n229223,truck\n229224,ship\n229225,dog\n229226,cat\n229227,truck\n229228,frog\n229229,cat\n229230,airplane\n229231,deer\n229232,frog\n229233,automobile\n229234,airplane\n229235,frog\n229236,automobile\n229237,cat\n229238,cat\n229239,deer\n229240,horse\n229241,deer\n229242,cat\n229243,cat\n229244,airplane\n229245,horse\n229246,cat\n229247,dog\n229248,airplane\n229249,dog\n229250,deer\n229251,frog\n229252,truck\n229253,horse\n229254,frog\n229255,horse\n229256,horse\n229257,bird\n229258,dog\n229259,frog\n229260,dog\n229261,frog\n229262,cat\n229263,horse\n229264,bird\n229265,horse\n229266,dog\n229267,truck\n229268,frog\n229269,cat\n229270,deer\n229271,horse\n229272,bird\n229273,frog\n229274,truck\n229275,cat\n229276,truck\n229277,airplane\n229278,truck\n229279,deer\n229280,frog\n229281,ship\n229282,deer\n229283,cat\n229284,cat\n229285,bird\n229286,airplane\n229287,deer\n229288,deer\n229289,deer\n229290,bird\n229291,automobile\n229292,truck\n229293,truck\n229294,truck\n229295,frog\n229296,cat\n229297,truck\n229298,automobile\n229299,automobile\n229300,bird\n229301,cat\n229302,automobile\n229303,automobile\n229304,truck\n229305,cat\n229306,cat\n229307,truck\n229308,ship\n229309,dog\n229310,cat\n229311,frog\n229312,cat\n229313,truck\n229314,automobile\n229315,frog\n229316,deer\n229317,horse\n229318,airplane\n229319,automobile\n229320,ship\n229321,deer\n229322,frog\n229323,cat\n229324,frog\n229325,dog\n229326,deer\n229327,cat\n229328,airplane\n229329,bird\n229330,frog\n229331,bird\n229332,cat\n229333,cat\n229334,horse\n229335,automobile\n229336,frog\n229337,frog\n229338,automobile\n229339,automobile\n229340,dog\n229341,truck\n229342,horse\n229343,truck\n229344,frog\n229345,automobile\n229346,dog\n229347,frog\n229348,automobile\n229349,frog\n229350,truck\n229351,frog\n229352,cat\n229353,deer\n229354,cat\n229355,airplane\n229356,automobile\n229357,truck\n229358,airplane\n229359,frog\n229360,cat\n229361,airplane\n229362,dog\n229363,deer\n229364,cat\n229365,deer\n229366,horse\n229367,truck\n229368,deer\n229369,bird\n229370,frog\n229371,airplane\n229372,frog\n229373,horse\n229374,airplane\n229375,cat\n229376,deer\n229377,airplane\n229378,deer\n229379,ship\n229380,truck\n229381,truck\n229382,deer\n229383,cat\n229384,deer\n229385,horse\n229386,frog\n229387,bird\n229388,dog\n229389,ship\n229390,deer\n229391,cat\n229392,truck\n229393,airplane\n229394,cat\n229395,automobile\n229396,airplane\n229397,deer\n229398,deer\n229399,ship\n229400,airplane\n229401,bird\n229402,cat\n229403,frog\n229404,horse\n229405,truck\n229406,frog\n229407,automobile\n229408,frog\n229409,ship\n229410,airplane\n229411,cat\n229412,deer\n229413,dog\n229414,dog\n229415,truck\n229416,frog\n229417,truck\n229418,horse\n229419,bird\n229420,deer\n229421,ship\n229422,horse\n229423,frog\n229424,automobile\n229425,dog\n229426,frog\n229427,cat\n229428,automobile\n229429,bird\n229430,deer\n229431,truck\n229432,frog\n229433,bird\n229434,truck\n229435,frog\n229436,deer\n229437,deer\n229438,deer\n229439,dog\n229440,deer\n229441,automobile\n229442,automobile\n229443,cat\n229444,truck\n229445,dog\n229446,truck\n229447,truck\n229448,cat\n229449,deer\n229450,deer\n229451,automobile\n229452,horse\n229453,dog\n229454,truck\n229455,truck\n229456,truck\n229457,deer\n229458,ship\n229459,dog\n229460,frog\n229461,truck\n229462,frog\n229463,cat\n229464,ship\n229465,frog\n229466,cat\n229467,deer\n229468,bird\n229469,airplane\n229470,truck\n229471,horse\n229472,deer\n229473,frog\n229474,horse\n229475,ship\n229476,airplane\n229477,frog\n229478,bird\n229479,frog\n229480,truck\n229481,truck\n229482,airplane\n229483,deer\n229484,cat\n229485,bird\n229486,truck\n229487,airplane\n229488,dog\n229489,frog\n229490,truck\n229491,airplane\n229492,frog\n229493,deer\n229494,frog\n229495,ship\n229496,cat\n229497,horse\n229498,ship\n229499,cat\n229500,horse\n229501,cat\n229502,truck\n229503,bird\n229504,horse\n229505,airplane\n229506,deer\n229507,automobile\n229508,airplane\n229509,deer\n229510,dog\n229511,cat\n229512,ship\n229513,truck\n229514,frog\n229515,frog\n229516,airplane\n229517,frog\n229518,deer\n229519,dog\n229520,frog\n229521,horse\n229522,dog\n229523,deer\n229524,deer\n229525,horse\n229526,horse\n229527,cat\n229528,cat\n229529,dog\n229530,frog\n229531,cat\n229532,truck\n229533,deer\n229534,cat\n229535,truck\n229536,deer\n229537,deer\n229538,airplane\n229539,airplane\n229540,bird\n229541,bird\n229542,truck\n229543,airplane\n229544,dog\n229545,automobile\n229546,truck\n229547,airplane\n229548,cat\n229549,dog\n229550,cat\n229551,bird\n229552,ship\n229553,frog\n229554,cat\n229555,cat\n229556,truck\n229557,bird\n229558,dog\n229559,cat\n229560,airplane\n229561,deer\n229562,airplane\n229563,ship\n229564,deer\n229565,horse\n229566,dog\n229567,bird\n229568,truck\n229569,frog\n229570,truck\n229571,truck\n229572,airplane\n229573,deer\n229574,ship\n229575,dog\n229576,frog\n229577,frog\n229578,cat\n229579,bird\n229580,deer\n229581,cat\n229582,cat\n229583,airplane\n229584,deer\n229585,ship\n229586,dog\n229587,deer\n229588,dog\n229589,deer\n229590,automobile\n229591,truck\n229592,cat\n229593,horse\n229594,cat\n229595,dog\n229596,truck\n229597,deer\n229598,truck\n229599,ship\n229600,frog\n229601,dog\n229602,deer\n229603,frog\n229604,dog\n229605,horse\n229606,bird\n229607,bird\n229608,cat\n229609,frog\n229610,horse\n229611,truck\n229612,bird\n229613,airplane\n229614,truck\n229615,cat\n229616,ship\n229617,frog\n229618,deer\n229619,cat\n229620,deer\n229621,cat\n229622,automobile\n229623,deer\n229624,cat\n229625,automobile\n229626,bird\n229627,cat\n229628,frog\n229629,airplane\n229630,truck\n229631,bird\n229632,cat\n229633,horse\n229634,airplane\n229635,ship\n229636,horse\n229637,truck\n229638,bird\n229639,frog\n229640,airplane\n229641,truck\n229642,cat\n229643,truck\n229644,airplane\n229645,truck\n229646,frog\n229647,frog\n229648,horse\n229649,horse\n229650,frog\n229651,frog\n229652,truck\n229653,cat\n229654,ship\n229655,dog\n229656,bird\n229657,cat\n229658,cat\n229659,dog\n229660,dog\n229661,truck\n229662,deer\n229663,dog\n229664,deer\n229665,frog\n229666,bird\n229667,ship\n229668,airplane\n229669,dog\n229670,bird\n229671,dog\n229672,horse\n229673,dog\n229674,airplane\n229675,cat\n229676,horse\n229677,automobile\n229678,dog\n229679,airplane\n229680,dog\n229681,deer\n229682,frog\n229683,airplane\n229684,truck\n229685,truck\n229686,airplane\n229687,cat\n229688,frog\n229689,truck\n229690,deer\n229691,truck\n229692,airplane\n229693,automobile\n229694,automobile\n229695,horse\n229696,airplane\n229697,bird\n229698,horse\n229699,cat\n229700,bird\n229701,horse\n229702,ship\n229703,dog\n229704,truck\n229705,dog\n229706,frog\n229707,dog\n229708,deer\n229709,deer\n229710,cat\n229711,horse\n229712,ship\n229713,dog\n229714,ship\n229715,deer\n229716,cat\n229717,bird\n229718,deer\n229719,frog\n229720,deer\n229721,frog\n229722,dog\n229723,deer\n229724,airplane\n229725,ship\n229726,ship\n229727,horse\n229728,bird\n229729,cat\n229730,dog\n229731,horse\n229732,airplane\n229733,horse\n229734,automobile\n229735,truck\n229736,frog\n229737,bird\n229738,bird\n229739,bird\n229740,airplane\n229741,truck\n229742,ship\n229743,horse\n229744,truck\n229745,airplane\n229746,airplane\n229747,cat\n229748,dog\n229749,deer\n229750,frog\n229751,automobile\n229752,cat\n229753,dog\n229754,bird\n229755,truck\n229756,bird\n229757,airplane\n229758,bird\n229759,cat\n229760,cat\n229761,cat\n229762,frog\n229763,bird\n229764,frog\n229765,truck\n229766,truck\n229767,cat\n229768,bird\n229769,horse\n229770,dog\n229771,deer\n229772,dog\n229773,frog\n229774,horse\n229775,bird\n229776,deer\n229777,truck\n229778,cat\n229779,frog\n229780,deer\n229781,horse\n229782,deer\n229783,cat\n229784,bird\n229785,horse\n229786,truck\n229787,frog\n229788,airplane\n229789,cat\n229790,automobile\n229791,bird\n229792,ship\n229793,frog\n229794,ship\n229795,bird\n229796,frog\n229797,automobile\n229798,deer\n229799,bird\n229800,ship\n229801,bird\n229802,airplane\n229803,airplane\n229804,ship\n229805,horse\n229806,deer\n229807,truck\n229808,bird\n229809,truck\n229810,dog\n229811,deer\n229812,horse\n229813,truck\n229814,horse\n229815,cat\n229816,ship\n229817,airplane\n229818,deer\n229819,frog\n229820,deer\n229821,truck\n229822,airplane\n229823,deer\n229824,cat\n229825,cat\n229826,deer\n229827,automobile\n229828,dog\n229829,automobile\n229830,airplane\n229831,horse\n229832,bird\n229833,dog\n229834,bird\n229835,horse\n229836,horse\n229837,ship\n229838,cat\n229839,frog\n229840,truck\n229841,truck\n229842,airplane\n229843,deer\n229844,dog\n229845,deer\n229846,cat\n229847,airplane\n229848,frog\n229849,frog\n229850,cat\n229851,dog\n229852,deer\n229853,frog\n229854,bird\n229855,ship\n229856,cat\n229857,deer\n229858,dog\n229859,truck\n229860,bird\n229861,truck\n229862,truck\n229863,truck\n229864,frog\n229865,airplane\n229866,deer\n229867,frog\n229868,cat\n229869,horse\n229870,truck\n229871,cat\n229872,deer\n229873,airplane\n229874,horse\n229875,airplane\n229876,cat\n229877,dog\n229878,truck\n229879,deer\n229880,dog\n229881,airplane\n229882,bird\n229883,bird\n229884,cat\n229885,deer\n229886,cat\n229887,airplane\n229888,bird\n229889,frog\n229890,cat\n229891,deer\n229892,ship\n229893,frog\n229894,bird\n229895,horse\n229896,frog\n229897,horse\n229898,automobile\n229899,frog\n229900,frog\n229901,bird\n229902,deer\n229903,horse\n229904,automobile\n229905,ship\n229906,cat\n229907,ship\n229908,frog\n229909,truck\n229910,ship\n229911,ship\n229912,horse\n229913,cat\n229914,deer\n229915,horse\n229916,bird\n229917,frog\n229918,truck\n229919,deer\n229920,cat\n229921,truck\n229922,dog\n229923,bird\n229924,truck\n229925,frog\n229926,airplane\n229927,horse\n229928,horse\n229929,frog\n229930,truck\n229931,cat\n229932,airplane\n229933,automobile\n229934,airplane\n229935,automobile\n229936,truck\n229937,deer\n229938,frog\n229939,deer\n229940,dog\n229941,deer\n229942,horse\n229943,cat\n229944,dog\n229945,deer\n229946,horse\n229947,airplane\n229948,frog\n229949,cat\n229950,automobile\n229951,truck\n229952,deer\n229953,frog\n229954,airplane\n229955,airplane\n229956,deer\n229957,airplane\n229958,dog\n229959,cat\n229960,ship\n229961,horse\n229962,bird\n229963,bird\n229964,frog\n229965,frog\n229966,truck\n229967,airplane\n229968,dog\n229969,automobile\n229970,deer\n229971,frog\n229972,deer\n229973,cat\n229974,ship\n229975,dog\n229976,airplane\n229977,deer\n229978,frog\n229979,truck\n229980,deer\n229981,dog\n229982,ship\n229983,frog\n229984,frog\n229985,frog\n229986,dog\n229987,automobile\n229988,deer\n229989,cat\n229990,automobile\n229991,truck\n229992,horse\n229993,dog\n229994,dog\n229995,deer\n229996,deer\n229997,cat\n229998,cat\n229999,bird\n230000,bird\n230001,bird\n230002,deer\n230003,deer\n230004,frog\n230005,horse\n230006,truck\n230007,airplane\n230008,deer\n230009,airplane\n230010,dog\n230011,horse\n230012,truck\n230013,deer\n230014,frog\n230015,horse\n230016,automobile\n230017,bird\n230018,frog\n230019,frog\n230020,horse\n230021,horse\n230022,cat\n230023,frog\n230024,deer\n230025,frog\n230026,horse\n230027,cat\n230028,dog\n230029,cat\n230030,frog\n230031,horse\n230032,cat\n230033,ship\n230034,deer\n230035,bird\n230036,automobile\n230037,frog\n230038,automobile\n230039,dog\n230040,horse\n230041,ship\n230042,cat\n230043,deer\n230044,frog\n230045,ship\n230046,frog\n230047,horse\n230048,automobile\n230049,frog\n230050,deer\n230051,ship\n230052,ship\n230053,deer\n230054,truck\n230055,deer\n230056,dog\n230057,ship\n230058,airplane\n230059,truck\n230060,ship\n230061,deer\n230062,truck\n230063,deer\n230064,frog\n230065,dog\n230066,automobile\n230067,cat\n230068,automobile\n230069,cat\n230070,horse\n230071,truck\n230072,automobile\n230073,airplane\n230074,ship\n230075,ship\n230076,horse\n230077,truck\n230078,truck\n230079,ship\n230080,ship\n230081,airplane\n230082,automobile\n230083,deer\n230084,airplane\n230085,cat\n230086,airplane\n230087,frog\n230088,airplane\n230089,frog\n230090,ship\n230091,frog\n230092,deer\n230093,cat\n230094,horse\n230095,frog\n230096,horse\n230097,horse\n230098,automobile\n230099,frog\n230100,horse\n230101,cat\n230102,horse\n230103,airplane\n230104,truck\n230105,ship\n230106,cat\n230107,ship\n230108,deer\n230109,deer\n230110,horse\n230111,airplane\n230112,automobile\n230113,ship\n230114,cat\n230115,ship\n230116,truck\n230117,horse\n230118,deer\n230119,ship\n230120,dog\n230121,truck\n230122,bird\n230123,frog\n230124,dog\n230125,cat\n230126,bird\n230127,deer\n230128,cat\n230129,frog\n230130,bird\n230131,deer\n230132,horse\n230133,dog\n230134,automobile\n230135,ship\n230136,bird\n230137,ship\n230138,deer\n230139,deer\n230140,airplane\n230141,bird\n230142,bird\n230143,deer\n230144,cat\n230145,bird\n230146,truck\n230147,deer\n230148,bird\n230149,ship\n230150,horse\n230151,ship\n230152,truck\n230153,cat\n230154,airplane\n230155,deer\n230156,cat\n230157,truck\n230158,automobile\n230159,dog\n230160,truck\n230161,dog\n230162,airplane\n230163,deer\n230164,truck\n230165,horse\n230166,horse\n230167,truck\n230168,cat\n230169,dog\n230170,dog\n230171,frog\n230172,frog\n230173,dog\n230174,frog\n230175,dog\n230176,ship\n230177,deer\n230178,deer\n230179,cat\n230180,automobile\n230181,frog\n230182,ship\n230183,ship\n230184,bird\n230185,frog\n230186,bird\n230187,deer\n230188,deer\n230189,truck\n230190,horse\n230191,truck\n230192,airplane\n230193,truck\n230194,automobile\n230195,deer\n230196,ship\n230197,horse\n230198,cat\n230199,cat\n230200,airplane\n230201,airplane\n230202,truck\n230203,truck\n230204,frog\n230205,truck\n230206,horse\n230207,cat\n230208,truck\n230209,cat\n230210,truck\n230211,bird\n230212,horse\n230213,airplane\n230214,dog\n230215,deer\n230216,deer\n230217,dog\n230218,airplane\n230219,deer\n230220,cat\n230221,frog\n230222,airplane\n230223,automobile\n230224,cat\n230225,deer\n230226,dog\n230227,dog\n230228,dog\n230229,deer\n230230,automobile\n230231,horse\n230232,horse\n230233,truck\n230234,airplane\n230235,frog\n230236,deer\n230237,dog\n230238,horse\n230239,frog\n230240,dog\n230241,dog\n230242,ship\n230243,frog\n230244,airplane\n230245,deer\n230246,ship\n230247,dog\n230248,automobile\n230249,truck\n230250,cat\n230251,airplane\n230252,frog\n230253,ship\n230254,dog\n230255,deer\n230256,deer\n230257,ship\n230258,deer\n230259,truck\n230260,deer\n230261,ship\n230262,truck\n230263,automobile\n230264,automobile\n230265,horse\n230266,bird\n230267,ship\n230268,automobile\n230269,dog\n230270,horse\n230271,deer\n230272,truck\n230273,cat\n230274,airplane\n230275,deer\n230276,bird\n230277,bird\n230278,airplane\n230279,cat\n230280,frog\n230281,deer\n230282,truck\n230283,truck\n230284,deer\n230285,ship\n230286,airplane\n230287,airplane\n230288,frog\n230289,frog\n230290,cat\n230291,truck\n230292,deer\n230293,dog\n230294,deer\n230295,deer\n230296,bird\n230297,horse\n230298,cat\n230299,cat\n230300,frog\n230301,frog\n230302,deer\n230303,deer\n230304,bird\n230305,deer\n230306,airplane\n230307,dog\n230308,deer\n230309,dog\n230310,automobile\n230311,bird\n230312,automobile\n230313,cat\n230314,horse\n230315,bird\n230316,cat\n230317,airplane\n230318,truck\n230319,frog\n230320,bird\n230321,frog\n230322,cat\n230323,bird\n230324,automobile\n230325,horse\n230326,airplane\n230327,dog\n230328,automobile\n230329,cat\n230330,truck\n230331,truck\n230332,bird\n230333,horse\n230334,horse\n230335,cat\n230336,automobile\n230337,frog\n230338,deer\n230339,ship\n230340,frog\n230341,frog\n230342,truck\n230343,ship\n230344,dog\n230345,deer\n230346,dog\n230347,truck\n230348,dog\n230349,frog\n230350,bird\n230351,cat\n230352,frog\n230353,frog\n230354,bird\n230355,cat\n230356,airplane\n230357,horse\n230358,automobile\n230359,truck\n230360,deer\n230361,ship\n230362,truck\n230363,airplane\n230364,deer\n230365,dog\n230366,horse\n230367,deer\n230368,airplane\n230369,horse\n230370,horse\n230371,dog\n230372,ship\n230373,ship\n230374,truck\n230375,frog\n230376,horse\n230377,truck\n230378,truck\n230379,frog\n230380,deer\n230381,frog\n230382,horse\n230383,automobile\n230384,bird\n230385,deer\n230386,deer\n230387,ship\n230388,cat\n230389,frog\n230390,cat\n230391,bird\n230392,cat\n230393,automobile\n230394,cat\n230395,bird\n230396,automobile\n230397,cat\n230398,cat\n230399,deer\n230400,ship\n230401,frog\n230402,airplane\n230403,dog\n230404,deer\n230405,dog\n230406,truck\n230407,horse\n230408,horse\n230409,frog\n230410,horse\n230411,bird\n230412,horse\n230413,truck\n230414,airplane\n230415,deer\n230416,dog\n230417,truck\n230418,automobile\n230419,truck\n230420,dog\n230421,cat\n230422,cat\n230423,horse\n230424,cat\n230425,ship\n230426,cat\n230427,ship\n230428,horse\n230429,dog\n230430,truck\n230431,cat\n230432,frog\n230433,truck\n230434,automobile\n230435,deer\n230436,automobile\n230437,deer\n230438,cat\n230439,bird\n230440,frog\n230441,deer\n230442,dog\n230443,deer\n230444,airplane\n230445,dog\n230446,ship\n230447,ship\n230448,deer\n230449,automobile\n230450,airplane\n230451,deer\n230452,bird\n230453,cat\n230454,automobile\n230455,truck\n230456,dog\n230457,airplane\n230458,horse\n230459,frog\n230460,airplane\n230461,frog\n230462,cat\n230463,bird\n230464,cat\n230465,dog\n230466,bird\n230467,ship\n230468,cat\n230469,deer\n230470,frog\n230471,deer\n230472,ship\n230473,automobile\n230474,automobile\n230475,deer\n230476,frog\n230477,ship\n230478,bird\n230479,cat\n230480,ship\n230481,frog\n230482,deer\n230483,airplane\n230484,truck\n230485,bird\n230486,frog\n230487,automobile\n230488,deer\n230489,airplane\n230490,deer\n230491,dog\n230492,horse\n230493,frog\n230494,frog\n230495,cat\n230496,frog\n230497,horse\n230498,frog\n230499,bird\n230500,frog\n230501,deer\n230502,frog\n230503,ship\n230504,deer\n230505,bird\n230506,automobile\n230507,airplane\n230508,cat\n230509,truck\n230510,cat\n230511,frog\n230512,deer\n230513,ship\n230514,airplane\n230515,cat\n230516,frog\n230517,ship\n230518,truck\n230519,frog\n230520,bird\n230521,bird\n230522,truck\n230523,cat\n230524,cat\n230525,cat\n230526,deer\n230527,deer\n230528,deer\n230529,automobile\n230530,cat\n230531,deer\n230532,horse\n230533,truck\n230534,deer\n230535,deer\n230536,deer\n230537,cat\n230538,deer\n230539,cat\n230540,frog\n230541,automobile\n230542,frog\n230543,dog\n230544,horse\n230545,deer\n230546,deer\n230547,automobile\n230548,cat\n230549,frog\n230550,truck\n230551,bird\n230552,ship\n230553,deer\n230554,ship\n230555,bird\n230556,airplane\n230557,frog\n230558,airplane\n230559,automobile\n230560,ship\n230561,frog\n230562,deer\n230563,cat\n230564,truck\n230565,airplane\n230566,ship\n230567,bird\n230568,bird\n230569,frog\n230570,frog\n230571,dog\n230572,cat\n230573,truck\n230574,deer\n230575,dog\n230576,ship\n230577,truck\n230578,cat\n230579,cat\n230580,airplane\n230581,deer\n230582,bird\n230583,horse\n230584,automobile\n230585,frog\n230586,cat\n230587,cat\n230588,deer\n230589,automobile\n230590,airplane\n230591,cat\n230592,automobile\n230593,truck\n230594,dog\n230595,horse\n230596,automobile\n230597,horse\n230598,frog\n230599,bird\n230600,airplane\n230601,airplane\n230602,cat\n230603,deer\n230604,automobile\n230605,truck\n230606,airplane\n230607,bird\n230608,frog\n230609,horse\n230610,truck\n230611,truck\n230612,frog\n230613,frog\n230614,dog\n230615,horse\n230616,horse\n230617,dog\n230618,cat\n230619,cat\n230620,cat\n230621,truck\n230622,dog\n230623,ship\n230624,horse\n230625,airplane\n230626,frog\n230627,truck\n230628,frog\n230629,dog\n230630,deer\n230631,horse\n230632,deer\n230633,horse\n230634,automobile\n230635,bird\n230636,airplane\n230637,dog\n230638,truck\n230639,dog\n230640,dog\n230641,frog\n230642,dog\n230643,truck\n230644,airplane\n230645,horse\n230646,bird\n230647,dog\n230648,dog\n230649,dog\n230650,truck\n230651,airplane\n230652,truck\n230653,truck\n230654,frog\n230655,deer\n230656,deer\n230657,deer\n230658,automobile\n230659,cat\n230660,ship\n230661,truck\n230662,truck\n230663,ship\n230664,truck\n230665,horse\n230666,truck\n230667,bird\n230668,automobile\n230669,horse\n230670,bird\n230671,deer\n230672,dog\n230673,deer\n230674,cat\n230675,dog\n230676,dog\n230677,frog\n230678,bird\n230679,bird\n230680,airplane\n230681,cat\n230682,frog\n230683,bird\n230684,bird\n230685,cat\n230686,bird\n230687,ship\n230688,airplane\n230689,bird\n230690,frog\n230691,airplane\n230692,truck\n230693,airplane\n230694,truck\n230695,ship\n230696,horse\n230697,bird\n230698,deer\n230699,frog\n230700,truck\n230701,frog\n230702,bird\n230703,dog\n230704,horse\n230705,deer\n230706,bird\n230707,frog\n230708,truck\n230709,ship\n230710,bird\n230711,frog\n230712,dog\n230713,frog\n230714,bird\n230715,truck\n230716,cat\n230717,horse\n230718,frog\n230719,cat\n230720,cat\n230721,cat\n230722,horse\n230723,airplane\n230724,bird\n230725,ship\n230726,ship\n230727,deer\n230728,cat\n230729,frog\n230730,truck\n230731,dog\n230732,cat\n230733,deer\n230734,truck\n230735,dog\n230736,deer\n230737,deer\n230738,airplane\n230739,frog\n230740,automobile\n230741,horse\n230742,cat\n230743,deer\n230744,deer\n230745,airplane\n230746,dog\n230747,truck\n230748,horse\n230749,ship\n230750,truck\n230751,frog\n230752,horse\n230753,cat\n230754,bird\n230755,ship\n230756,automobile\n230757,bird\n230758,ship\n230759,cat\n230760,airplane\n230761,truck\n230762,deer\n230763,cat\n230764,horse\n230765,deer\n230766,automobile\n230767,bird\n230768,bird\n230769,horse\n230770,truck\n230771,bird\n230772,ship\n230773,automobile\n230774,truck\n230775,dog\n230776,truck\n230777,bird\n230778,bird\n230779,deer\n230780,truck\n230781,airplane\n230782,horse\n230783,truck\n230784,deer\n230785,truck\n230786,cat\n230787,cat\n230788,cat\n230789,bird\n230790,deer\n230791,truck\n230792,automobile\n230793,horse\n230794,airplane\n230795,deer\n230796,dog\n230797,airplane\n230798,bird\n230799,truck\n230800,frog\n230801,automobile\n230802,deer\n230803,horse\n230804,dog\n230805,bird\n230806,dog\n230807,dog\n230808,truck\n230809,horse\n230810,bird\n230811,deer\n230812,deer\n230813,dog\n230814,airplane\n230815,ship\n230816,truck\n230817,deer\n230818,frog\n230819,cat\n230820,bird\n230821,dog\n230822,airplane\n230823,airplane\n230824,dog\n230825,deer\n230826,truck\n230827,automobile\n230828,frog\n230829,horse\n230830,frog\n230831,frog\n230832,frog\n230833,dog\n230834,horse\n230835,deer\n230836,deer\n230837,truck\n230838,cat\n230839,cat\n230840,truck\n230841,automobile\n230842,dog\n230843,dog\n230844,truck\n230845,deer\n230846,automobile\n230847,truck\n230848,ship\n230849,deer\n230850,automobile\n230851,frog\n230852,cat\n230853,truck\n230854,automobile\n230855,horse\n230856,truck\n230857,dog\n230858,cat\n230859,cat\n230860,cat\n230861,automobile\n230862,bird\n230863,frog\n230864,horse\n230865,dog\n230866,cat\n230867,frog\n230868,cat\n230869,cat\n230870,deer\n230871,airplane\n230872,frog\n230873,bird\n230874,horse\n230875,deer\n230876,horse\n230877,airplane\n230878,horse\n230879,ship\n230880,cat\n230881,airplane\n230882,truck\n230883,deer\n230884,cat\n230885,automobile\n230886,deer\n230887,automobile\n230888,cat\n230889,deer\n230890,dog\n230891,frog\n230892,airplane\n230893,deer\n230894,deer\n230895,frog\n230896,horse\n230897,truck\n230898,cat\n230899,dog\n230900,frog\n230901,ship\n230902,truck\n230903,cat\n230904,bird\n230905,ship\n230906,horse\n230907,automobile\n230908,deer\n230909,horse\n230910,cat\n230911,truck\n230912,deer\n230913,dog\n230914,horse\n230915,ship\n230916,frog\n230917,deer\n230918,automobile\n230919,frog\n230920,dog\n230921,frog\n230922,automobile\n230923,airplane\n230924,frog\n230925,automobile\n230926,dog\n230927,deer\n230928,airplane\n230929,airplane\n230930,horse\n230931,dog\n230932,airplane\n230933,dog\n230934,ship\n230935,truck\n230936,truck\n230937,dog\n230938,frog\n230939,ship\n230940,frog\n230941,ship\n230942,cat\n230943,deer\n230944,frog\n230945,bird\n230946,truck\n230947,deer\n230948,deer\n230949,horse\n230950,frog\n230951,deer\n230952,dog\n230953,cat\n230954,bird\n230955,ship\n230956,dog\n230957,airplane\n230958,automobile\n230959,truck\n230960,bird\n230961,ship\n230962,airplane\n230963,deer\n230964,bird\n230965,cat\n230966,bird\n230967,horse\n230968,bird\n230969,deer\n230970,deer\n230971,automobile\n230972,frog\n230973,dog\n230974,horse\n230975,ship\n230976,frog\n230977,deer\n230978,deer\n230979,airplane\n230980,automobile\n230981,dog\n230982,dog\n230983,deer\n230984,truck\n230985,deer\n230986,frog\n230987,bird\n230988,airplane\n230989,ship\n230990,ship\n230991,airplane\n230992,automobile\n230993,deer\n230994,truck\n230995,airplane\n230996,bird\n230997,dog\n230998,ship\n230999,truck\n231000,dog\n231001,frog\n231002,automobile\n231003,bird\n231004,automobile\n231005,horse\n231006,dog\n231007,dog\n231008,horse\n231009,ship\n231010,automobile\n231011,automobile\n231012,deer\n231013,airplane\n231014,ship\n231015,deer\n231016,frog\n231017,airplane\n231018,frog\n231019,bird\n231020,deer\n231021,deer\n231022,horse\n231023,ship\n231024,deer\n231025,horse\n231026,airplane\n231027,bird\n231028,dog\n231029,frog\n231030,dog\n231031,cat\n231032,bird\n231033,automobile\n231034,airplane\n231035,dog\n231036,airplane\n231037,frog\n231038,deer\n231039,automobile\n231040,horse\n231041,ship\n231042,bird\n231043,horse\n231044,deer\n231045,ship\n231046,cat\n231047,dog\n231048,dog\n231049,bird\n231050,deer\n231051,horse\n231052,frog\n231053,truck\n231054,ship\n231055,cat\n231056,ship\n231057,automobile\n231058,dog\n231059,truck\n231060,deer\n231061,deer\n231062,cat\n231063,cat\n231064,dog\n231065,truck\n231066,airplane\n231067,truck\n231068,ship\n231069,cat\n231070,deer\n231071,cat\n231072,dog\n231073,frog\n231074,deer\n231075,airplane\n231076,airplane\n231077,truck\n231078,cat\n231079,horse\n231080,bird\n231081,automobile\n231082,truck\n231083,dog\n231084,truck\n231085,airplane\n231086,deer\n231087,horse\n231088,cat\n231089,horse\n231090,deer\n231091,cat\n231092,bird\n231093,horse\n231094,bird\n231095,bird\n231096,cat\n231097,cat\n231098,horse\n231099,truck\n231100,cat\n231101,airplane\n231102,truck\n231103,frog\n231104,automobile\n231105,deer\n231106,frog\n231107,dog\n231108,deer\n231109,bird\n231110,horse\n231111,cat\n231112,bird\n231113,cat\n231114,ship\n231115,bird\n231116,cat\n231117,bird\n231118,deer\n231119,deer\n231120,dog\n231121,truck\n231122,horse\n231123,frog\n231124,horse\n231125,truck\n231126,frog\n231127,cat\n231128,dog\n231129,cat\n231130,airplane\n231131,deer\n231132,automobile\n231133,airplane\n231134,deer\n231135,frog\n231136,deer\n231137,deer\n231138,ship\n231139,frog\n231140,dog\n231141,automobile\n231142,horse\n231143,cat\n231144,deer\n231145,automobile\n231146,cat\n231147,horse\n231148,cat\n231149,frog\n231150,ship\n231151,deer\n231152,deer\n231153,dog\n231154,cat\n231155,horse\n231156,ship\n231157,frog\n231158,deer\n231159,bird\n231160,cat\n231161,airplane\n231162,frog\n231163,deer\n231164,truck\n231165,cat\n231166,deer\n231167,bird\n231168,automobile\n231169,deer\n231170,dog\n231171,deer\n231172,automobile\n231173,horse\n231174,horse\n231175,horse\n231176,automobile\n231177,airplane\n231178,frog\n231179,deer\n231180,ship\n231181,horse\n231182,horse\n231183,deer\n231184,bird\n231185,cat\n231186,frog\n231187,deer\n231188,ship\n231189,bird\n231190,automobile\n231191,deer\n231192,airplane\n231193,airplane\n231194,deer\n231195,cat\n231196,ship\n231197,automobile\n231198,horse\n231199,deer\n231200,cat\n231201,automobile\n231202,frog\n231203,airplane\n231204,truck\n231205,horse\n231206,ship\n231207,frog\n231208,airplane\n231209,bird\n231210,horse\n231211,bird\n231212,horse\n231213,cat\n231214,deer\n231215,dog\n231216,airplane\n231217,bird\n231218,frog\n231219,automobile\n231220,ship\n231221,deer\n231222,truck\n231223,deer\n231224,deer\n231225,airplane\n231226,ship\n231227,truck\n231228,cat\n231229,bird\n231230,deer\n231231,truck\n231232,dog\n231233,truck\n231234,dog\n231235,deer\n231236,ship\n231237,dog\n231238,deer\n231239,deer\n231240,cat\n231241,ship\n231242,airplane\n231243,deer\n231244,deer\n231245,frog\n231246,frog\n231247,bird\n231248,automobile\n231249,automobile\n231250,deer\n231251,ship\n231252,cat\n231253,deer\n231254,horse\n231255,deer\n231256,ship\n231257,horse\n231258,cat\n231259,ship\n231260,cat\n231261,ship\n231262,automobile\n231263,automobile\n231264,horse\n231265,airplane\n231266,frog\n231267,cat\n231268,deer\n231269,horse\n231270,cat\n231271,ship\n231272,horse\n231273,airplane\n231274,airplane\n231275,deer\n231276,deer\n231277,deer\n231278,frog\n231279,frog\n231280,cat\n231281,deer\n231282,dog\n231283,airplane\n231284,automobile\n231285,automobile\n231286,horse\n231287,cat\n231288,dog\n231289,airplane\n231290,frog\n231291,cat\n231292,frog\n231293,deer\n231294,deer\n231295,bird\n231296,dog\n231297,deer\n231298,cat\n231299,dog\n231300,deer\n231301,airplane\n231302,automobile\n231303,cat\n231304,deer\n231305,frog\n231306,cat\n231307,dog\n231308,bird\n231309,ship\n231310,deer\n231311,bird\n231312,truck\n231313,cat\n231314,bird\n231315,deer\n231316,airplane\n231317,cat\n231318,bird\n231319,airplane\n231320,cat\n231321,deer\n231322,airplane\n231323,horse\n231324,ship\n231325,dog\n231326,ship\n231327,cat\n231328,deer\n231329,cat\n231330,airplane\n231331,horse\n231332,ship\n231333,automobile\n231334,deer\n231335,automobile\n231336,ship\n231337,airplane\n231338,frog\n231339,deer\n231340,bird\n231341,ship\n231342,deer\n231343,bird\n231344,truck\n231345,bird\n231346,airplane\n231347,horse\n231348,automobile\n231349,dog\n231350,airplane\n231351,truck\n231352,horse\n231353,frog\n231354,frog\n231355,deer\n231356,bird\n231357,ship\n231358,dog\n231359,frog\n231360,automobile\n231361,airplane\n231362,automobile\n231363,frog\n231364,automobile\n231365,cat\n231366,deer\n231367,cat\n231368,horse\n231369,frog\n231370,horse\n231371,bird\n231372,airplane\n231373,cat\n231374,dog\n231375,airplane\n231376,deer\n231377,deer\n231378,automobile\n231379,truck\n231380,bird\n231381,automobile\n231382,cat\n231383,bird\n231384,truck\n231385,cat\n231386,frog\n231387,bird\n231388,ship\n231389,airplane\n231390,airplane\n231391,deer\n231392,airplane\n231393,horse\n231394,ship\n231395,horse\n231396,truck\n231397,cat\n231398,deer\n231399,airplane\n231400,frog\n231401,dog\n231402,bird\n231403,cat\n231404,frog\n231405,deer\n231406,automobile\n231407,deer\n231408,bird\n231409,bird\n231410,ship\n231411,bird\n231412,deer\n231413,bird\n231414,dog\n231415,deer\n231416,deer\n231417,ship\n231418,horse\n231419,cat\n231420,deer\n231421,horse\n231422,cat\n231423,dog\n231424,cat\n231425,truck\n231426,ship\n231427,horse\n231428,airplane\n231429,frog\n231430,horse\n231431,truck\n231432,deer\n231433,airplane\n231434,ship\n231435,airplane\n231436,airplane\n231437,frog\n231438,automobile\n231439,horse\n231440,bird\n231441,airplane\n231442,horse\n231443,truck\n231444,cat\n231445,truck\n231446,frog\n231447,frog\n231448,horse\n231449,automobile\n231450,truck\n231451,airplane\n231452,horse\n231453,horse\n231454,ship\n231455,cat\n231456,cat\n231457,dog\n231458,airplane\n231459,truck\n231460,ship\n231461,horse\n231462,frog\n231463,airplane\n231464,horse\n231465,dog\n231466,bird\n231467,cat\n231468,horse\n231469,truck\n231470,automobile\n231471,airplane\n231472,automobile\n231473,truck\n231474,horse\n231475,automobile\n231476,airplane\n231477,truck\n231478,cat\n231479,dog\n231480,horse\n231481,bird\n231482,ship\n231483,frog\n231484,bird\n231485,truck\n231486,deer\n231487,frog\n231488,bird\n231489,deer\n231490,airplane\n231491,deer\n231492,cat\n231493,deer\n231494,truck\n231495,truck\n231496,frog\n231497,horse\n231498,bird\n231499,ship\n231500,truck\n231501,ship\n231502,dog\n231503,cat\n231504,airplane\n231505,automobile\n231506,bird\n231507,deer\n231508,ship\n231509,automobile\n231510,deer\n231511,deer\n231512,dog\n231513,bird\n231514,airplane\n231515,ship\n231516,truck\n231517,ship\n231518,dog\n231519,frog\n231520,cat\n231521,truck\n231522,airplane\n231523,airplane\n231524,cat\n231525,frog\n231526,deer\n231527,ship\n231528,deer\n231529,horse\n231530,ship\n231531,truck\n231532,truck\n231533,deer\n231534,ship\n231535,ship\n231536,airplane\n231537,cat\n231538,ship\n231539,horse\n231540,airplane\n231541,automobile\n231542,ship\n231543,frog\n231544,dog\n231545,horse\n231546,dog\n231547,cat\n231548,bird\n231549,cat\n231550,ship\n231551,airplane\n231552,frog\n231553,dog\n231554,horse\n231555,bird\n231556,bird\n231557,horse\n231558,truck\n231559,cat\n231560,cat\n231561,ship\n231562,deer\n231563,airplane\n231564,airplane\n231565,deer\n231566,ship\n231567,cat\n231568,frog\n231569,frog\n231570,airplane\n231571,automobile\n231572,airplane\n231573,deer\n231574,truck\n231575,cat\n231576,horse\n231577,frog\n231578,dog\n231579,frog\n231580,deer\n231581,automobile\n231582,bird\n231583,bird\n231584,dog\n231585,horse\n231586,cat\n231587,deer\n231588,frog\n231589,dog\n231590,dog\n231591,truck\n231592,truck\n231593,bird\n231594,deer\n231595,frog\n231596,horse\n231597,frog\n231598,dog\n231599,cat\n231600,truck\n231601,horse\n231602,frog\n231603,automobile\n231604,cat\n231605,deer\n231606,airplane\n231607,deer\n231608,ship\n231609,deer\n231610,airplane\n231611,horse\n231612,dog\n231613,airplane\n231614,frog\n231615,deer\n231616,dog\n231617,deer\n231618,truck\n231619,deer\n231620,dog\n231621,truck\n231622,truck\n231623,ship\n231624,deer\n231625,deer\n231626,airplane\n231627,cat\n231628,frog\n231629,bird\n231630,frog\n231631,frog\n231632,automobile\n231633,cat\n231634,horse\n231635,frog\n231636,horse\n231637,truck\n231638,automobile\n231639,frog\n231640,bird\n231641,airplane\n231642,automobile\n231643,deer\n231644,airplane\n231645,deer\n231646,ship\n231647,truck\n231648,horse\n231649,airplane\n231650,cat\n231651,ship\n231652,ship\n231653,ship\n231654,deer\n231655,dog\n231656,dog\n231657,deer\n231658,automobile\n231659,dog\n231660,frog\n231661,bird\n231662,ship\n231663,deer\n231664,dog\n231665,deer\n231666,ship\n231667,cat\n231668,automobile\n231669,frog\n231670,cat\n231671,horse\n231672,cat\n231673,bird\n231674,frog\n231675,dog\n231676,bird\n231677,bird\n231678,automobile\n231679,ship\n231680,horse\n231681,dog\n231682,frog\n231683,automobile\n231684,ship\n231685,deer\n231686,automobile\n231687,dog\n231688,horse\n231689,cat\n231690,ship\n231691,dog\n231692,ship\n231693,horse\n231694,bird\n231695,automobile\n231696,deer\n231697,truck\n231698,dog\n231699,automobile\n231700,cat\n231701,cat\n231702,frog\n231703,frog\n231704,truck\n231705,frog\n231706,frog\n231707,truck\n231708,frog\n231709,dog\n231710,cat\n231711,dog\n231712,dog\n231713,ship\n231714,frog\n231715,frog\n231716,automobile\n231717,bird\n231718,frog\n231719,ship\n231720,airplane\n231721,airplane\n231722,cat\n231723,truck\n231724,ship\n231725,horse\n231726,deer\n231727,airplane\n231728,deer\n231729,dog\n231730,dog\n231731,deer\n231732,cat\n231733,horse\n231734,truck\n231735,deer\n231736,automobile\n231737,automobile\n231738,dog\n231739,deer\n231740,dog\n231741,deer\n231742,automobile\n231743,bird\n231744,deer\n231745,frog\n231746,deer\n231747,frog\n231748,cat\n231749,horse\n231750,deer\n231751,ship\n231752,airplane\n231753,horse\n231754,dog\n231755,truck\n231756,ship\n231757,cat\n231758,airplane\n231759,automobile\n231760,dog\n231761,ship\n231762,automobile\n231763,ship\n231764,truck\n231765,horse\n231766,deer\n231767,airplane\n231768,bird\n231769,deer\n231770,airplane\n231771,truck\n231772,deer\n231773,cat\n231774,frog\n231775,deer\n231776,airplane\n231777,dog\n231778,cat\n231779,cat\n231780,frog\n231781,deer\n231782,cat\n231783,automobile\n231784,truck\n231785,dog\n231786,bird\n231787,horse\n231788,deer\n231789,deer\n231790,horse\n231791,automobile\n231792,automobile\n231793,automobile\n231794,deer\n231795,automobile\n231796,horse\n231797,ship\n231798,deer\n231799,automobile\n231800,horse\n231801,horse\n231802,bird\n231803,horse\n231804,horse\n231805,horse\n231806,truck\n231807,truck\n231808,horse\n231809,airplane\n231810,bird\n231811,truck\n231812,ship\n231813,airplane\n231814,dog\n231815,airplane\n231816,cat\n231817,deer\n231818,airplane\n231819,horse\n231820,horse\n231821,frog\n231822,airplane\n231823,horse\n231824,truck\n231825,horse\n231826,dog\n231827,horse\n231828,deer\n231829,bird\n231830,automobile\n231831,cat\n231832,ship\n231833,cat\n231834,cat\n231835,truck\n231836,horse\n231837,deer\n231838,airplane\n231839,cat\n231840,automobile\n231841,horse\n231842,frog\n231843,automobile\n231844,dog\n231845,frog\n231846,dog\n231847,deer\n231848,truck\n231849,horse\n231850,truck\n231851,airplane\n231852,cat\n231853,automobile\n231854,horse\n231855,airplane\n231856,deer\n231857,airplane\n231858,airplane\n231859,ship\n231860,truck\n231861,automobile\n231862,frog\n231863,horse\n231864,cat\n231865,horse\n231866,frog\n231867,horse\n231868,bird\n231869,ship\n231870,deer\n231871,frog\n231872,bird\n231873,truck\n231874,automobile\n231875,automobile\n231876,ship\n231877,frog\n231878,frog\n231879,airplane\n231880,automobile\n231881,dog\n231882,cat\n231883,dog\n231884,airplane\n231885,deer\n231886,deer\n231887,cat\n231888,cat\n231889,cat\n231890,dog\n231891,bird\n231892,horse\n231893,horse\n231894,automobile\n231895,frog\n231896,dog\n231897,dog\n231898,frog\n231899,deer\n231900,frog\n231901,ship\n231902,airplane\n231903,cat\n231904,horse\n231905,automobile\n231906,automobile\n231907,automobile\n231908,airplane\n231909,airplane\n231910,ship\n231911,truck\n231912,truck\n231913,frog\n231914,deer\n231915,horse\n231916,dog\n231917,truck\n231918,cat\n231919,truck\n231920,frog\n231921,ship\n231922,dog\n231923,airplane\n231924,airplane\n231925,dog\n231926,horse\n231927,automobile\n231928,airplane\n231929,truck\n231930,dog\n231931,automobile\n231932,truck\n231933,cat\n231934,horse\n231935,truck\n231936,automobile\n231937,bird\n231938,deer\n231939,deer\n231940,automobile\n231941,cat\n231942,frog\n231943,bird\n231944,automobile\n231945,cat\n231946,airplane\n231947,frog\n231948,truck\n231949,automobile\n231950,truck\n231951,cat\n231952,truck\n231953,airplane\n231954,truck\n231955,airplane\n231956,truck\n231957,cat\n231958,automobile\n231959,dog\n231960,ship\n231961,cat\n231962,deer\n231963,cat\n231964,cat\n231965,horse\n231966,ship\n231967,automobile\n231968,deer\n231969,automobile\n231970,automobile\n231971,frog\n231972,frog\n231973,bird\n231974,truck\n231975,cat\n231976,deer\n231977,ship\n231978,horse\n231979,cat\n231980,dog\n231981,bird\n231982,dog\n231983,ship\n231984,ship\n231985,cat\n231986,airplane\n231987,horse\n231988,deer\n231989,cat\n231990,cat\n231991,deer\n231992,truck\n231993,bird\n231994,dog\n231995,horse\n231996,truck\n231997,dog\n231998,cat\n231999,deer\n232000,horse\n232001,ship\n232002,cat\n232003,truck\n232004,cat\n232005,deer\n232006,cat\n232007,frog\n232008,horse\n232009,automobile\n232010,bird\n232011,cat\n232012,frog\n232013,frog\n232014,truck\n232015,frog\n232016,ship\n232017,frog\n232018,automobile\n232019,truck\n232020,deer\n232021,deer\n232022,dog\n232023,cat\n232024,horse\n232025,cat\n232026,automobile\n232027,truck\n232028,horse\n232029,airplane\n232030,horse\n232031,horse\n232032,truck\n232033,horse\n232034,bird\n232035,horse\n232036,frog\n232037,horse\n232038,horse\n232039,cat\n232040,dog\n232041,dog\n232042,truck\n232043,automobile\n232044,frog\n232045,frog\n232046,dog\n232047,deer\n232048,deer\n232049,deer\n232050,horse\n232051,truck\n232052,ship\n232053,bird\n232054,horse\n232055,frog\n232056,dog\n232057,horse\n232058,dog\n232059,dog\n232060,horse\n232061,cat\n232062,bird\n232063,frog\n232064,airplane\n232065,airplane\n232066,deer\n232067,dog\n232068,cat\n232069,dog\n232070,automobile\n232071,cat\n232072,dog\n232073,truck\n232074,ship\n232075,cat\n232076,bird\n232077,cat\n232078,dog\n232079,dog\n232080,airplane\n232081,truck\n232082,ship\n232083,automobile\n232084,deer\n232085,automobile\n232086,cat\n232087,truck\n232088,dog\n232089,ship\n232090,bird\n232091,ship\n232092,cat\n232093,horse\n232094,deer\n232095,deer\n232096,dog\n232097,truck\n232098,dog\n232099,horse\n232100,cat\n232101,truck\n232102,deer\n232103,bird\n232104,airplane\n232105,airplane\n232106,truck\n232107,horse\n232108,truck\n232109,truck\n232110,truck\n232111,frog\n232112,cat\n232113,frog\n232114,airplane\n232115,dog\n232116,truck\n232117,bird\n232118,deer\n232119,truck\n232120,dog\n232121,truck\n232122,cat\n232123,ship\n232124,bird\n232125,automobile\n232126,dog\n232127,truck\n232128,deer\n232129,frog\n232130,ship\n232131,automobile\n232132,dog\n232133,truck\n232134,dog\n232135,deer\n232136,airplane\n232137,horse\n232138,cat\n232139,cat\n232140,truck\n232141,truck\n232142,frog\n232143,bird\n232144,deer\n232145,frog\n232146,dog\n232147,horse\n232148,dog\n232149,bird\n232150,automobile\n232151,truck\n232152,cat\n232153,deer\n232154,automobile\n232155,horse\n232156,deer\n232157,airplane\n232158,bird\n232159,airplane\n232160,horse\n232161,deer\n232162,dog\n232163,deer\n232164,ship\n232165,ship\n232166,frog\n232167,truck\n232168,automobile\n232169,horse\n232170,ship\n232171,ship\n232172,truck\n232173,frog\n232174,automobile\n232175,ship\n232176,deer\n232177,horse\n232178,airplane\n232179,cat\n232180,truck\n232181,automobile\n232182,truck\n232183,frog\n232184,cat\n232185,airplane\n232186,dog\n232187,horse\n232188,dog\n232189,bird\n232190,airplane\n232191,horse\n232192,cat\n232193,frog\n232194,ship\n232195,deer\n232196,deer\n232197,truck\n232198,ship\n232199,airplane\n232200,bird\n232201,cat\n232202,deer\n232203,dog\n232204,ship\n232205,deer\n232206,truck\n232207,airplane\n232208,deer\n232209,cat\n232210,ship\n232211,bird\n232212,dog\n232213,dog\n232214,bird\n232215,horse\n232216,horse\n232217,airplane\n232218,ship\n232219,frog\n232220,dog\n232221,deer\n232222,bird\n232223,ship\n232224,horse\n232225,horse\n232226,deer\n232227,truck\n232228,truck\n232229,deer\n232230,horse\n232231,truck\n232232,frog\n232233,cat\n232234,truck\n232235,dog\n232236,deer\n232237,dog\n232238,bird\n232239,airplane\n232240,deer\n232241,deer\n232242,frog\n232243,truck\n232244,airplane\n232245,airplane\n232246,dog\n232247,airplane\n232248,frog\n232249,bird\n232250,bird\n232251,horse\n232252,truck\n232253,dog\n232254,automobile\n232255,truck\n232256,cat\n232257,cat\n232258,dog\n232259,dog\n232260,cat\n232261,dog\n232262,frog\n232263,bird\n232264,automobile\n232265,airplane\n232266,dog\n232267,airplane\n232268,bird\n232269,deer\n232270,deer\n232271,truck\n232272,frog\n232273,frog\n232274,deer\n232275,truck\n232276,deer\n232277,dog\n232278,frog\n232279,deer\n232280,airplane\n232281,frog\n232282,ship\n232283,cat\n232284,airplane\n232285,cat\n232286,dog\n232287,ship\n232288,ship\n232289,horse\n232290,cat\n232291,truck\n232292,deer\n232293,automobile\n232294,frog\n232295,airplane\n232296,truck\n232297,horse\n232298,frog\n232299,truck\n232300,frog\n232301,truck\n232302,horse\n232303,truck\n232304,bird\n232305,automobile\n232306,airplane\n232307,dog\n232308,deer\n232309,truck\n232310,dog\n232311,automobile\n232312,deer\n232313,deer\n232314,automobile\n232315,horse\n232316,airplane\n232317,cat\n232318,deer\n232319,frog\n232320,ship\n232321,dog\n232322,horse\n232323,cat\n232324,frog\n232325,frog\n232326,horse\n232327,cat\n232328,bird\n232329,truck\n232330,cat\n232331,deer\n232332,ship\n232333,bird\n232334,airplane\n232335,bird\n232336,horse\n232337,ship\n232338,airplane\n232339,dog\n232340,bird\n232341,cat\n232342,cat\n232343,bird\n232344,frog\n232345,horse\n232346,airplane\n232347,deer\n232348,frog\n232349,deer\n232350,bird\n232351,cat\n232352,automobile\n232353,truck\n232354,airplane\n232355,automobile\n232356,airplane\n232357,airplane\n232358,horse\n232359,horse\n232360,deer\n232361,frog\n232362,truck\n232363,ship\n232364,automobile\n232365,frog\n232366,deer\n232367,dog\n232368,airplane\n232369,deer\n232370,frog\n232371,bird\n232372,automobile\n232373,dog\n232374,cat\n232375,deer\n232376,automobile\n232377,frog\n232378,cat\n232379,deer\n232380,cat\n232381,deer\n232382,frog\n232383,truck\n232384,deer\n232385,deer\n232386,automobile\n232387,frog\n232388,dog\n232389,airplane\n232390,dog\n232391,frog\n232392,bird\n232393,horse\n232394,cat\n232395,airplane\n232396,frog\n232397,horse\n232398,automobile\n232399,cat\n232400,bird\n232401,truck\n232402,bird\n232403,cat\n232404,cat\n232405,cat\n232406,frog\n232407,bird\n232408,dog\n232409,frog\n232410,truck\n232411,bird\n232412,dog\n232413,truck\n232414,horse\n232415,horse\n232416,deer\n232417,automobile\n232418,horse\n232419,deer\n232420,truck\n232421,automobile\n232422,cat\n232423,horse\n232424,frog\n232425,bird\n232426,bird\n232427,ship\n232428,dog\n232429,bird\n232430,ship\n232431,bird\n232432,airplane\n232433,dog\n232434,frog\n232435,horse\n232436,deer\n232437,frog\n232438,bird\n232439,ship\n232440,deer\n232441,horse\n232442,dog\n232443,ship\n232444,ship\n232445,airplane\n232446,ship\n232447,ship\n232448,cat\n232449,dog\n232450,bird\n232451,ship\n232452,truck\n232453,horse\n232454,bird\n232455,truck\n232456,truck\n232457,dog\n232458,dog\n232459,cat\n232460,deer\n232461,bird\n232462,airplane\n232463,cat\n232464,cat\n232465,horse\n232466,cat\n232467,truck\n232468,horse\n232469,dog\n232470,horse\n232471,cat\n232472,deer\n232473,horse\n232474,dog\n232475,ship\n232476,airplane\n232477,truck\n232478,horse\n232479,airplane\n232480,automobile\n232481,bird\n232482,bird\n232483,cat\n232484,deer\n232485,bird\n232486,ship\n232487,truck\n232488,bird\n232489,truck\n232490,bird\n232491,bird\n232492,frog\n232493,dog\n232494,horse\n232495,dog\n232496,frog\n232497,cat\n232498,dog\n232499,frog\n232500,bird\n232501,deer\n232502,bird\n232503,truck\n232504,truck\n232505,bird\n232506,horse\n232507,automobile\n232508,dog\n232509,horse\n232510,bird\n232511,frog\n232512,deer\n232513,bird\n232514,bird\n232515,deer\n232516,bird\n232517,airplane\n232518,deer\n232519,deer\n232520,dog\n232521,airplane\n232522,truck\n232523,cat\n232524,bird\n232525,truck\n232526,dog\n232527,ship\n232528,dog\n232529,horse\n232530,truck\n232531,ship\n232532,cat\n232533,deer\n232534,bird\n232535,airplane\n232536,deer\n232537,truck\n232538,deer\n232539,automobile\n232540,dog\n232541,horse\n232542,automobile\n232543,dog\n232544,horse\n232545,truck\n232546,ship\n232547,frog\n232548,deer\n232549,cat\n232550,airplane\n232551,horse\n232552,truck\n232553,cat\n232554,horse\n232555,truck\n232556,truck\n232557,frog\n232558,frog\n232559,dog\n232560,airplane\n232561,ship\n232562,airplane\n232563,bird\n232564,bird\n232565,bird\n232566,truck\n232567,dog\n232568,cat\n232569,frog\n232570,ship\n232571,horse\n232572,deer\n232573,frog\n232574,frog\n232575,frog\n232576,cat\n232577,deer\n232578,horse\n232579,ship\n232580,truck\n232581,bird\n232582,cat\n232583,ship\n232584,cat\n232585,automobile\n232586,frog\n232587,deer\n232588,automobile\n232589,horse\n232590,truck\n232591,cat\n232592,ship\n232593,ship\n232594,frog\n232595,horse\n232596,dog\n232597,frog\n232598,dog\n232599,truck\n232600,airplane\n232601,cat\n232602,frog\n232603,bird\n232604,dog\n232605,frog\n232606,cat\n232607,dog\n232608,truck\n232609,cat\n232610,cat\n232611,truck\n232612,deer\n232613,airplane\n232614,airplane\n232615,cat\n232616,cat\n232617,horse\n232618,bird\n232619,dog\n232620,ship\n232621,horse\n232622,bird\n232623,airplane\n232624,bird\n232625,automobile\n232626,deer\n232627,deer\n232628,deer\n232629,cat\n232630,truck\n232631,bird\n232632,cat\n232633,dog\n232634,automobile\n232635,deer\n232636,horse\n232637,frog\n232638,cat\n232639,cat\n232640,truck\n232641,airplane\n232642,dog\n232643,frog\n232644,dog\n232645,horse\n232646,airplane\n232647,truck\n232648,ship\n232649,horse\n232650,frog\n232651,automobile\n232652,cat\n232653,truck\n232654,dog\n232655,automobile\n232656,cat\n232657,truck\n232658,bird\n232659,cat\n232660,deer\n232661,horse\n232662,deer\n232663,airplane\n232664,airplane\n232665,frog\n232666,deer\n232667,bird\n232668,automobile\n232669,airplane\n232670,bird\n232671,truck\n232672,cat\n232673,truck\n232674,deer\n232675,dog\n232676,automobile\n232677,automobile\n232678,ship\n232679,truck\n232680,truck\n232681,automobile\n232682,horse\n232683,horse\n232684,dog\n232685,deer\n232686,dog\n232687,frog\n232688,frog\n232689,truck\n232690,airplane\n232691,truck\n232692,dog\n232693,dog\n232694,truck\n232695,deer\n232696,dog\n232697,bird\n232698,horse\n232699,airplane\n232700,horse\n232701,deer\n232702,automobile\n232703,deer\n232704,frog\n232705,frog\n232706,airplane\n232707,dog\n232708,automobile\n232709,deer\n232710,horse\n232711,dog\n232712,deer\n232713,truck\n232714,airplane\n232715,dog\n232716,frog\n232717,cat\n232718,automobile\n232719,bird\n232720,horse\n232721,automobile\n232722,frog\n232723,ship\n232724,truck\n232725,horse\n232726,bird\n232727,truck\n232728,deer\n232729,ship\n232730,cat\n232731,horse\n232732,dog\n232733,ship\n232734,ship\n232735,airplane\n232736,dog\n232737,airplane\n232738,bird\n232739,truck\n232740,horse\n232741,automobile\n232742,deer\n232743,cat\n232744,deer\n232745,cat\n232746,horse\n232747,airplane\n232748,automobile\n232749,bird\n232750,horse\n232751,cat\n232752,airplane\n232753,dog\n232754,cat\n232755,cat\n232756,dog\n232757,dog\n232758,bird\n232759,automobile\n232760,horse\n232761,ship\n232762,ship\n232763,cat\n232764,horse\n232765,deer\n232766,bird\n232767,cat\n232768,truck\n232769,cat\n232770,cat\n232771,automobile\n232772,deer\n232773,dog\n232774,horse\n232775,truck\n232776,ship\n232777,horse\n232778,cat\n232779,cat\n232780,cat\n232781,airplane\n232782,frog\n232783,frog\n232784,automobile\n232785,horse\n232786,truck\n232787,dog\n232788,bird\n232789,deer\n232790,cat\n232791,automobile\n232792,dog\n232793,airplane\n232794,automobile\n232795,deer\n232796,deer\n232797,dog\n232798,deer\n232799,cat\n232800,deer\n232801,deer\n232802,horse\n232803,deer\n232804,automobile\n232805,truck\n232806,horse\n232807,cat\n232808,deer\n232809,cat\n232810,frog\n232811,bird\n232812,automobile\n232813,airplane\n232814,deer\n232815,frog\n232816,frog\n232817,frog\n232818,automobile\n232819,ship\n232820,deer\n232821,dog\n232822,cat\n232823,bird\n232824,cat\n232825,dog\n232826,automobile\n232827,horse\n232828,horse\n232829,bird\n232830,horse\n232831,deer\n232832,cat\n232833,airplane\n232834,deer\n232835,bird\n232836,dog\n232837,dog\n232838,cat\n232839,cat\n232840,horse\n232841,frog\n232842,horse\n232843,cat\n232844,deer\n232845,cat\n232846,dog\n232847,dog\n232848,deer\n232849,frog\n232850,truck\n232851,deer\n232852,dog\n232853,bird\n232854,airplane\n232855,ship\n232856,deer\n232857,horse\n232858,truck\n232859,ship\n232860,airplane\n232861,frog\n232862,deer\n232863,truck\n232864,frog\n232865,horse\n232866,dog\n232867,frog\n232868,ship\n232869,ship\n232870,truck\n232871,cat\n232872,dog\n232873,automobile\n232874,deer\n232875,bird\n232876,automobile\n232877,bird\n232878,truck\n232879,truck\n232880,cat\n232881,dog\n232882,deer\n232883,cat\n232884,automobile\n232885,deer\n232886,horse\n232887,automobile\n232888,bird\n232889,deer\n232890,automobile\n232891,truck\n232892,truck\n232893,airplane\n232894,deer\n232895,airplane\n232896,bird\n232897,frog\n232898,deer\n232899,dog\n232900,truck\n232901,deer\n232902,cat\n232903,truck\n232904,ship\n232905,horse\n232906,cat\n232907,ship\n232908,cat\n232909,frog\n232910,ship\n232911,ship\n232912,deer\n232913,bird\n232914,dog\n232915,frog\n232916,deer\n232917,bird\n232918,airplane\n232919,cat\n232920,dog\n232921,dog\n232922,frog\n232923,dog\n232924,airplane\n232925,cat\n232926,airplane\n232927,horse\n232928,frog\n232929,airplane\n232930,cat\n232931,automobile\n232932,horse\n232933,automobile\n232934,cat\n232935,cat\n232936,dog\n232937,cat\n232938,cat\n232939,automobile\n232940,dog\n232941,bird\n232942,airplane\n232943,deer\n232944,automobile\n232945,truck\n232946,truck\n232947,automobile\n232948,deer\n232949,deer\n232950,dog\n232951,frog\n232952,bird\n232953,airplane\n232954,ship\n232955,airplane\n232956,cat\n232957,bird\n232958,truck\n232959,cat\n232960,truck\n232961,truck\n232962,airplane\n232963,deer\n232964,horse\n232965,ship\n232966,dog\n232967,automobile\n232968,horse\n232969,bird\n232970,horse\n232971,truck\n232972,bird\n232973,deer\n232974,frog\n232975,truck\n232976,airplane\n232977,frog\n232978,frog\n232979,truck\n232980,cat\n232981,dog\n232982,cat\n232983,horse\n232984,cat\n232985,truck\n232986,deer\n232987,frog\n232988,airplane\n232989,airplane\n232990,frog\n232991,airplane\n232992,cat\n232993,horse\n232994,bird\n232995,dog\n232996,bird\n232997,airplane\n232998,bird\n232999,frog\n233000,horse\n233001,bird\n233002,frog\n233003,cat\n233004,dog\n233005,cat\n233006,automobile\n233007,deer\n233008,cat\n233009,truck\n233010,deer\n233011,deer\n233012,frog\n233013,automobile\n233014,dog\n233015,cat\n233016,cat\n233017,cat\n233018,bird\n233019,ship\n233020,automobile\n233021,dog\n233022,airplane\n233023,frog\n233024,truck\n233025,cat\n233026,automobile\n233027,truck\n233028,frog\n233029,horse\n233030,bird\n233031,bird\n233032,airplane\n233033,airplane\n233034,automobile\n233035,bird\n233036,airplane\n233037,horse\n233038,horse\n233039,automobile\n233040,cat\n233041,frog\n233042,cat\n233043,dog\n233044,cat\n233045,horse\n233046,airplane\n233047,horse\n233048,frog\n233049,truck\n233050,ship\n233051,truck\n233052,cat\n233053,horse\n233054,dog\n233055,frog\n233056,automobile\n233057,airplane\n233058,frog\n233059,dog\n233060,automobile\n233061,airplane\n233062,truck\n233063,frog\n233064,ship\n233065,deer\n233066,deer\n233067,deer\n233068,airplane\n233069,dog\n233070,cat\n233071,airplane\n233072,frog\n233073,truck\n233074,cat\n233075,bird\n233076,truck\n233077,deer\n233078,deer\n233079,ship\n233080,dog\n233081,truck\n233082,horse\n233083,bird\n233084,truck\n233085,frog\n233086,cat\n233087,airplane\n233088,airplane\n233089,frog\n233090,frog\n233091,truck\n233092,truck\n233093,automobile\n233094,dog\n233095,truck\n233096,airplane\n233097,frog\n233098,ship\n233099,deer\n233100,bird\n233101,airplane\n233102,cat\n233103,airplane\n233104,deer\n233105,deer\n233106,dog\n233107,automobile\n233108,deer\n233109,cat\n233110,ship\n233111,airplane\n233112,deer\n233113,dog\n233114,frog\n233115,deer\n233116,truck\n233117,cat\n233118,bird\n233119,automobile\n233120,frog\n233121,cat\n233122,deer\n233123,ship\n233124,cat\n233125,frog\n233126,deer\n233127,dog\n233128,cat\n233129,airplane\n233130,cat\n233131,deer\n233132,frog\n233133,cat\n233134,frog\n233135,deer\n233136,horse\n233137,cat\n233138,bird\n233139,frog\n233140,dog\n233141,cat\n233142,airplane\n233143,ship\n233144,ship\n233145,deer\n233146,dog\n233147,airplane\n233148,truck\n233149,airplane\n233150,ship\n233151,dog\n233152,frog\n233153,deer\n233154,airplane\n233155,bird\n233156,truck\n233157,automobile\n233158,airplane\n233159,frog\n233160,cat\n233161,automobile\n233162,dog\n233163,truck\n233164,horse\n233165,truck\n233166,deer\n233167,truck\n233168,horse\n233169,deer\n233170,cat\n233171,airplane\n233172,frog\n233173,automobile\n233174,bird\n233175,cat\n233176,dog\n233177,truck\n233178,deer\n233179,bird\n233180,deer\n233181,automobile\n233182,bird\n233183,frog\n233184,dog\n233185,frog\n233186,dog\n233187,deer\n233188,bird\n233189,bird\n233190,dog\n233191,cat\n233192,truck\n233193,airplane\n233194,truck\n233195,truck\n233196,horse\n233197,dog\n233198,truck\n233199,dog\n233200,ship\n233201,ship\n233202,bird\n233203,automobile\n233204,dog\n233205,cat\n233206,ship\n233207,dog\n233208,airplane\n233209,airplane\n233210,cat\n233211,airplane\n233212,cat\n233213,bird\n233214,dog\n233215,cat\n233216,truck\n233217,airplane\n233218,horse\n233219,bird\n233220,automobile\n233221,horse\n233222,truck\n233223,deer\n233224,ship\n233225,truck\n233226,deer\n233227,bird\n233228,automobile\n233229,deer\n233230,airplane\n233231,cat\n233232,ship\n233233,frog\n233234,ship\n233235,deer\n233236,automobile\n233237,automobile\n233238,dog\n233239,horse\n233240,frog\n233241,truck\n233242,deer\n233243,automobile\n233244,ship\n233245,frog\n233246,deer\n233247,frog\n233248,cat\n233249,cat\n233250,cat\n233251,ship\n233252,frog\n233253,deer\n233254,horse\n233255,ship\n233256,airplane\n233257,cat\n233258,automobile\n233259,ship\n233260,bird\n233261,automobile\n233262,deer\n233263,bird\n233264,bird\n233265,deer\n233266,ship\n233267,truck\n233268,cat\n233269,bird\n233270,automobile\n233271,deer\n233272,dog\n233273,truck\n233274,truck\n233275,horse\n233276,horse\n233277,airplane\n233278,dog\n233279,dog\n233280,dog\n233281,truck\n233282,automobile\n233283,dog\n233284,ship\n233285,automobile\n233286,automobile\n233287,frog\n233288,cat\n233289,cat\n233290,dog\n233291,cat\n233292,automobile\n233293,truck\n233294,airplane\n233295,bird\n233296,cat\n233297,truck\n233298,cat\n233299,horse\n233300,horse\n233301,bird\n233302,horse\n233303,truck\n233304,cat\n233305,automobile\n233306,truck\n233307,frog\n233308,airplane\n233309,bird\n233310,cat\n233311,cat\n233312,deer\n233313,horse\n233314,cat\n233315,frog\n233316,deer\n233317,deer\n233318,dog\n233319,cat\n233320,frog\n233321,frog\n233322,truck\n233323,frog\n233324,cat\n233325,bird\n233326,deer\n233327,airplane\n233328,dog\n233329,dog\n233330,ship\n233331,ship\n233332,horse\n233333,airplane\n233334,ship\n233335,frog\n233336,frog\n233337,cat\n233338,frog\n233339,deer\n233340,cat\n233341,deer\n233342,bird\n233343,ship\n233344,frog\n233345,truck\n233346,frog\n233347,automobile\n233348,dog\n233349,cat\n233350,truck\n233351,automobile\n233352,cat\n233353,automobile\n233354,dog\n233355,frog\n233356,frog\n233357,cat\n233358,cat\n233359,frog\n233360,horse\n233361,dog\n233362,ship\n233363,airplane\n233364,deer\n233365,truck\n233366,deer\n233367,ship\n233368,airplane\n233369,deer\n233370,automobile\n233371,dog\n233372,bird\n233373,dog\n233374,cat\n233375,bird\n233376,cat\n233377,automobile\n233378,bird\n233379,deer\n233380,bird\n233381,dog\n233382,dog\n233383,automobile\n233384,frog\n233385,dog\n233386,deer\n233387,bird\n233388,frog\n233389,dog\n233390,horse\n233391,dog\n233392,airplane\n233393,deer\n233394,ship\n233395,dog\n233396,deer\n233397,automobile\n233398,ship\n233399,ship\n233400,frog\n233401,bird\n233402,bird\n233403,truck\n233404,airplane\n233405,dog\n233406,airplane\n233407,airplane\n233408,truck\n233409,horse\n233410,automobile\n233411,cat\n233412,automobile\n233413,frog\n233414,deer\n233415,deer\n233416,cat\n233417,airplane\n233418,horse\n233419,bird\n233420,automobile\n233421,frog\n233422,cat\n233423,ship\n233424,truck\n233425,airplane\n233426,automobile\n233427,deer\n233428,truck\n233429,dog\n233430,dog\n233431,frog\n233432,airplane\n233433,bird\n233434,deer\n233435,bird\n233436,airplane\n233437,deer\n233438,bird\n233439,automobile\n233440,dog\n233441,horse\n233442,truck\n233443,ship\n233444,automobile\n233445,frog\n233446,truck\n233447,truck\n233448,ship\n233449,bird\n233450,ship\n233451,bird\n233452,ship\n233453,dog\n233454,bird\n233455,deer\n233456,cat\n233457,truck\n233458,dog\n233459,deer\n233460,cat\n233461,horse\n233462,ship\n233463,dog\n233464,automobile\n233465,horse\n233466,horse\n233467,deer\n233468,bird\n233469,ship\n233470,deer\n233471,truck\n233472,cat\n233473,bird\n233474,dog\n233475,truck\n233476,cat\n233477,deer\n233478,cat\n233479,dog\n233480,bird\n233481,automobile\n233482,dog\n233483,truck\n233484,truck\n233485,airplane\n233486,ship\n233487,deer\n233488,truck\n233489,airplane\n233490,dog\n233491,airplane\n233492,cat\n233493,cat\n233494,airplane\n233495,deer\n233496,truck\n233497,bird\n233498,ship\n233499,bird\n233500,bird\n233501,deer\n233502,dog\n233503,frog\n233504,frog\n233505,ship\n233506,automobile\n233507,truck\n233508,frog\n233509,truck\n233510,frog\n233511,automobile\n233512,ship\n233513,deer\n233514,dog\n233515,airplane\n233516,automobile\n233517,frog\n233518,deer\n233519,automobile\n233520,truck\n233521,truck\n233522,deer\n233523,airplane\n233524,deer\n233525,truck\n233526,dog\n233527,dog\n233528,deer\n233529,horse\n233530,deer\n233531,ship\n233532,ship\n233533,truck\n233534,ship\n233535,dog\n233536,deer\n233537,bird\n233538,cat\n233539,cat\n233540,horse\n233541,frog\n233542,horse\n233543,deer\n233544,bird\n233545,truck\n233546,truck\n233547,frog\n233548,deer\n233549,automobile\n233550,ship\n233551,horse\n233552,cat\n233553,dog\n233554,dog\n233555,cat\n233556,dog\n233557,cat\n233558,ship\n233559,deer\n233560,cat\n233561,horse\n233562,deer\n233563,deer\n233564,dog\n233565,frog\n233566,automobile\n233567,ship\n233568,airplane\n233569,truck\n233570,frog\n233571,ship\n233572,deer\n233573,horse\n233574,deer\n233575,airplane\n233576,airplane\n233577,deer\n233578,deer\n233579,deer\n233580,truck\n233581,airplane\n233582,bird\n233583,bird\n233584,airplane\n233585,horse\n233586,horse\n233587,frog\n233588,ship\n233589,cat\n233590,frog\n233591,dog\n233592,deer\n233593,automobile\n233594,automobile\n233595,bird\n233596,ship\n233597,horse\n233598,airplane\n233599,truck\n233600,bird\n233601,automobile\n233602,automobile\n233603,ship\n233604,cat\n233605,automobile\n233606,airplane\n233607,airplane\n233608,bird\n233609,horse\n233610,automobile\n233611,bird\n233612,horse\n233613,airplane\n233614,frog\n233615,truck\n233616,deer\n233617,airplane\n233618,cat\n233619,deer\n233620,bird\n233621,horse\n233622,ship\n233623,bird\n233624,deer\n233625,horse\n233626,cat\n233627,dog\n233628,airplane\n233629,bird\n233630,cat\n233631,cat\n233632,bird\n233633,ship\n233634,horse\n233635,deer\n233636,truck\n233637,ship\n233638,cat\n233639,ship\n233640,truck\n233641,cat\n233642,airplane\n233643,horse\n233644,automobile\n233645,truck\n233646,cat\n233647,cat\n233648,airplane\n233649,horse\n233650,ship\n233651,truck\n233652,airplane\n233653,automobile\n233654,truck\n233655,ship\n233656,frog\n233657,airplane\n233658,bird\n233659,airplane\n233660,cat\n233661,ship\n233662,cat\n233663,airplane\n233664,bird\n233665,ship\n233666,bird\n233667,horse\n233668,horse\n233669,deer\n233670,deer\n233671,ship\n233672,truck\n233673,cat\n233674,automobile\n233675,bird\n233676,truck\n233677,airplane\n233678,truck\n233679,dog\n233680,truck\n233681,frog\n233682,automobile\n233683,cat\n233684,cat\n233685,automobile\n233686,frog\n233687,horse\n233688,airplane\n233689,cat\n233690,bird\n233691,horse\n233692,cat\n233693,horse\n233694,airplane\n233695,deer\n233696,ship\n233697,automobile\n233698,bird\n233699,truck\n233700,deer\n233701,truck\n233702,frog\n233703,automobile\n233704,bird\n233705,cat\n233706,cat\n233707,ship\n233708,ship\n233709,truck\n233710,cat\n233711,automobile\n233712,automobile\n233713,bird\n233714,deer\n233715,automobile\n233716,cat\n233717,horse\n233718,automobile\n233719,deer\n233720,deer\n233721,automobile\n233722,dog\n233723,dog\n233724,automobile\n233725,frog\n233726,ship\n233727,dog\n233728,airplane\n233729,ship\n233730,cat\n233731,ship\n233732,truck\n233733,deer\n233734,bird\n233735,dog\n233736,dog\n233737,ship\n233738,horse\n233739,deer\n233740,airplane\n233741,dog\n233742,deer\n233743,deer\n233744,frog\n233745,deer\n233746,truck\n233747,horse\n233748,automobile\n233749,horse\n233750,horse\n233751,automobile\n233752,dog\n233753,frog\n233754,deer\n233755,dog\n233756,ship\n233757,frog\n233758,dog\n233759,frog\n233760,truck\n233761,cat\n233762,cat\n233763,bird\n233764,bird\n233765,ship\n233766,dog\n233767,automobile\n233768,truck\n233769,airplane\n233770,deer\n233771,dog\n233772,airplane\n233773,deer\n233774,cat\n233775,deer\n233776,automobile\n233777,horse\n233778,truck\n233779,horse\n233780,deer\n233781,airplane\n233782,ship\n233783,bird\n233784,frog\n233785,truck\n233786,automobile\n233787,horse\n233788,airplane\n233789,frog\n233790,cat\n233791,cat\n233792,deer\n233793,horse\n233794,airplane\n233795,ship\n233796,deer\n233797,cat\n233798,airplane\n233799,truck\n233800,ship\n233801,horse\n233802,cat\n233803,deer\n233804,airplane\n233805,deer\n233806,horse\n233807,horse\n233808,dog\n233809,cat\n233810,airplane\n233811,bird\n233812,deer\n233813,deer\n233814,truck\n233815,cat\n233816,deer\n233817,horse\n233818,bird\n233819,truck\n233820,deer\n233821,truck\n233822,horse\n233823,ship\n233824,ship\n233825,truck\n233826,automobile\n233827,frog\n233828,bird\n233829,deer\n233830,truck\n233831,deer\n233832,deer\n233833,horse\n233834,airplane\n233835,dog\n233836,horse\n233837,horse\n233838,deer\n233839,deer\n233840,cat\n233841,automobile\n233842,airplane\n233843,bird\n233844,frog\n233845,ship\n233846,deer\n233847,bird\n233848,dog\n233849,bird\n233850,cat\n233851,deer\n233852,horse\n233853,dog\n233854,airplane\n233855,bird\n233856,frog\n233857,deer\n233858,deer\n233859,ship\n233860,truck\n233861,deer\n233862,cat\n233863,frog\n233864,frog\n233865,deer\n233866,frog\n233867,horse\n233868,frog\n233869,automobile\n233870,cat\n233871,horse\n233872,truck\n233873,frog\n233874,deer\n233875,airplane\n233876,cat\n233877,frog\n233878,airplane\n233879,automobile\n233880,deer\n233881,truck\n233882,deer\n233883,horse\n233884,frog\n233885,bird\n233886,truck\n233887,cat\n233888,deer\n233889,truck\n233890,cat\n233891,frog\n233892,deer\n233893,truck\n233894,truck\n233895,cat\n233896,airplane\n233897,airplane\n233898,airplane\n233899,automobile\n233900,airplane\n233901,automobile\n233902,truck\n233903,frog\n233904,truck\n233905,truck\n233906,dog\n233907,truck\n233908,bird\n233909,deer\n233910,horse\n233911,deer\n233912,ship\n233913,horse\n233914,deer\n233915,frog\n233916,horse\n233917,frog\n233918,bird\n233919,cat\n233920,automobile\n233921,cat\n233922,dog\n233923,truck\n233924,deer\n233925,ship\n233926,dog\n233927,cat\n233928,automobile\n233929,automobile\n233930,frog\n233931,truck\n233932,horse\n233933,airplane\n233934,frog\n233935,cat\n233936,horse\n233937,horse\n233938,automobile\n233939,cat\n233940,dog\n233941,deer\n233942,dog\n233943,bird\n233944,bird\n233945,airplane\n233946,deer\n233947,frog\n233948,cat\n233949,horse\n233950,airplane\n233951,cat\n233952,truck\n233953,bird\n233954,horse\n233955,truck\n233956,frog\n233957,cat\n233958,ship\n233959,deer\n233960,dog\n233961,automobile\n233962,truck\n233963,automobile\n233964,bird\n233965,frog\n233966,airplane\n233967,automobile\n233968,truck\n233969,airplane\n233970,cat\n233971,horse\n233972,airplane\n233973,truck\n233974,deer\n233975,dog\n233976,ship\n233977,deer\n233978,frog\n233979,dog\n233980,airplane\n233981,horse\n233982,truck\n233983,truck\n233984,ship\n233985,deer\n233986,airplane\n233987,deer\n233988,frog\n233989,cat\n233990,horse\n233991,ship\n233992,bird\n233993,dog\n233994,cat\n233995,automobile\n233996,dog\n233997,truck\n233998,dog\n233999,deer\n234000,horse\n234001,deer\n234002,truck\n234003,ship\n234004,deer\n234005,bird\n234006,horse\n234007,truck\n234008,ship\n234009,horse\n234010,cat\n234011,deer\n234012,bird\n234013,deer\n234014,truck\n234015,airplane\n234016,truck\n234017,deer\n234018,bird\n234019,dog\n234020,deer\n234021,ship\n234022,ship\n234023,frog\n234024,automobile\n234025,frog\n234026,cat\n234027,frog\n234028,truck\n234029,bird\n234030,frog\n234031,cat\n234032,automobile\n234033,horse\n234034,cat\n234035,airplane\n234036,truck\n234037,horse\n234038,frog\n234039,deer\n234040,truck\n234041,dog\n234042,frog\n234043,deer\n234044,airplane\n234045,ship\n234046,cat\n234047,automobile\n234048,frog\n234049,deer\n234050,frog\n234051,frog\n234052,cat\n234053,cat\n234054,airplane\n234055,truck\n234056,truck\n234057,ship\n234058,truck\n234059,deer\n234060,cat\n234061,deer\n234062,deer\n234063,truck\n234064,deer\n234065,cat\n234066,cat\n234067,airplane\n234068,automobile\n234069,truck\n234070,horse\n234071,deer\n234072,bird\n234073,truck\n234074,deer\n234075,cat\n234076,bird\n234077,dog\n234078,cat\n234079,frog\n234080,airplane\n234081,airplane\n234082,bird\n234083,deer\n234084,ship\n234085,cat\n234086,horse\n234087,horse\n234088,airplane\n234089,deer\n234090,frog\n234091,bird\n234092,deer\n234093,truck\n234094,dog\n234095,cat\n234096,automobile\n234097,horse\n234098,cat\n234099,deer\n234100,frog\n234101,automobile\n234102,airplane\n234103,airplane\n234104,deer\n234105,cat\n234106,dog\n234107,cat\n234108,airplane\n234109,frog\n234110,truck\n234111,horse\n234112,truck\n234113,truck\n234114,airplane\n234115,horse\n234116,truck\n234117,airplane\n234118,dog\n234119,dog\n234120,dog\n234121,frog\n234122,deer\n234123,deer\n234124,deer\n234125,airplane\n234126,ship\n234127,frog\n234128,horse\n234129,dog\n234130,automobile\n234131,horse\n234132,ship\n234133,truck\n234134,deer\n234135,frog\n234136,frog\n234137,frog\n234138,truck\n234139,automobile\n234140,ship\n234141,truck\n234142,cat\n234143,deer\n234144,deer\n234145,ship\n234146,deer\n234147,deer\n234148,frog\n234149,airplane\n234150,bird\n234151,dog\n234152,deer\n234153,deer\n234154,bird\n234155,cat\n234156,deer\n234157,dog\n234158,bird\n234159,horse\n234160,horse\n234161,deer\n234162,truck\n234163,dog\n234164,bird\n234165,deer\n234166,horse\n234167,cat\n234168,automobile\n234169,airplane\n234170,cat\n234171,ship\n234172,frog\n234173,automobile\n234174,airplane\n234175,cat\n234176,deer\n234177,dog\n234178,frog\n234179,frog\n234180,deer\n234181,cat\n234182,dog\n234183,deer\n234184,frog\n234185,deer\n234186,deer\n234187,ship\n234188,bird\n234189,dog\n234190,dog\n234191,cat\n234192,truck\n234193,frog\n234194,horse\n234195,dog\n234196,dog\n234197,deer\n234198,dog\n234199,ship\n234200,airplane\n234201,horse\n234202,frog\n234203,automobile\n234204,cat\n234205,frog\n234206,airplane\n234207,cat\n234208,cat\n234209,airplane\n234210,cat\n234211,frog\n234212,automobile\n234213,ship\n234214,ship\n234215,deer\n234216,bird\n234217,cat\n234218,dog\n234219,dog\n234220,airplane\n234221,cat\n234222,deer\n234223,truck\n234224,airplane\n234225,cat\n234226,ship\n234227,cat\n234228,dog\n234229,bird\n234230,cat\n234231,dog\n234232,truck\n234233,deer\n234234,automobile\n234235,truck\n234236,bird\n234237,dog\n234238,truck\n234239,frog\n234240,truck\n234241,cat\n234242,dog\n234243,truck\n234244,cat\n234245,deer\n234246,truck\n234247,automobile\n234248,automobile\n234249,frog\n234250,horse\n234251,bird\n234252,automobile\n234253,ship\n234254,airplane\n234255,horse\n234256,deer\n234257,dog\n234258,airplane\n234259,frog\n234260,frog\n234261,bird\n234262,truck\n234263,airplane\n234264,cat\n234265,dog\n234266,frog\n234267,horse\n234268,deer\n234269,bird\n234270,automobile\n234271,bird\n234272,frog\n234273,dog\n234274,airplane\n234275,dog\n234276,automobile\n234277,bird\n234278,frog\n234279,horse\n234280,bird\n234281,deer\n234282,cat\n234283,ship\n234284,frog\n234285,cat\n234286,ship\n234287,deer\n234288,deer\n234289,deer\n234290,ship\n234291,horse\n234292,deer\n234293,dog\n234294,cat\n234295,frog\n234296,deer\n234297,deer\n234298,bird\n234299,ship\n234300,deer\n234301,truck\n234302,frog\n234303,airplane\n234304,dog\n234305,airplane\n234306,deer\n234307,automobile\n234308,horse\n234309,truck\n234310,deer\n234311,airplane\n234312,airplane\n234313,ship\n234314,cat\n234315,cat\n234316,frog\n234317,airplane\n234318,automobile\n234319,dog\n234320,horse\n234321,deer\n234322,deer\n234323,horse\n234324,dog\n234325,automobile\n234326,frog\n234327,automobile\n234328,truck\n234329,horse\n234330,cat\n234331,bird\n234332,truck\n234333,airplane\n234334,airplane\n234335,dog\n234336,cat\n234337,deer\n234338,airplane\n234339,truck\n234340,bird\n234341,ship\n234342,truck\n234343,frog\n234344,cat\n234345,frog\n234346,truck\n234347,deer\n234348,horse\n234349,bird\n234350,horse\n234351,truck\n234352,ship\n234353,horse\n234354,automobile\n234355,dog\n234356,airplane\n234357,frog\n234358,cat\n234359,horse\n234360,horse\n234361,cat\n234362,ship\n234363,frog\n234364,truck\n234365,deer\n234366,horse\n234367,airplane\n234368,dog\n234369,dog\n234370,airplane\n234371,frog\n234372,horse\n234373,bird\n234374,deer\n234375,dog\n234376,deer\n234377,bird\n234378,frog\n234379,cat\n234380,cat\n234381,cat\n234382,ship\n234383,truck\n234384,ship\n234385,frog\n234386,truck\n234387,bird\n234388,bird\n234389,automobile\n234390,frog\n234391,truck\n234392,cat\n234393,horse\n234394,ship\n234395,deer\n234396,ship\n234397,ship\n234398,truck\n234399,dog\n234400,bird\n234401,automobile\n234402,bird\n234403,truck\n234404,deer\n234405,truck\n234406,truck\n234407,deer\n234408,truck\n234409,automobile\n234410,cat\n234411,bird\n234412,cat\n234413,frog\n234414,bird\n234415,automobile\n234416,airplane\n234417,frog\n234418,airplane\n234419,deer\n234420,dog\n234421,cat\n234422,deer\n234423,frog\n234424,airplane\n234425,cat\n234426,deer\n234427,airplane\n234428,dog\n234429,dog\n234430,dog\n234431,airplane\n234432,airplane\n234433,frog\n234434,deer\n234435,dog\n234436,deer\n234437,truck\n234438,horse\n234439,bird\n234440,airplane\n234441,frog\n234442,cat\n234443,frog\n234444,deer\n234445,bird\n234446,airplane\n234447,dog\n234448,deer\n234449,automobile\n234450,frog\n234451,frog\n234452,dog\n234453,deer\n234454,deer\n234455,ship\n234456,dog\n234457,airplane\n234458,cat\n234459,automobile\n234460,cat\n234461,bird\n234462,automobile\n234463,horse\n234464,cat\n234465,horse\n234466,frog\n234467,bird\n234468,frog\n234469,automobile\n234470,horse\n234471,dog\n234472,cat\n234473,horse\n234474,truck\n234475,horse\n234476,dog\n234477,horse\n234478,frog\n234479,deer\n234480,deer\n234481,frog\n234482,automobile\n234483,ship\n234484,deer\n234485,ship\n234486,truck\n234487,horse\n234488,airplane\n234489,truck\n234490,bird\n234491,cat\n234492,truck\n234493,frog\n234494,truck\n234495,automobile\n234496,deer\n234497,bird\n234498,horse\n234499,deer\n234500,bird\n234501,automobile\n234502,automobile\n234503,cat\n234504,truck\n234505,frog\n234506,airplane\n234507,dog\n234508,frog\n234509,automobile\n234510,frog\n234511,truck\n234512,frog\n234513,deer\n234514,bird\n234515,ship\n234516,cat\n234517,horse\n234518,frog\n234519,automobile\n234520,airplane\n234521,ship\n234522,automobile\n234523,cat\n234524,ship\n234525,cat\n234526,dog\n234527,bird\n234528,deer\n234529,deer\n234530,cat\n234531,bird\n234532,cat\n234533,cat\n234534,deer\n234535,cat\n234536,deer\n234537,frog\n234538,dog\n234539,ship\n234540,dog\n234541,truck\n234542,cat\n234543,cat\n234544,truck\n234545,deer\n234546,horse\n234547,bird\n234548,truck\n234549,airplane\n234550,truck\n234551,dog\n234552,automobile\n234553,frog\n234554,truck\n234555,bird\n234556,bird\n234557,frog\n234558,dog\n234559,cat\n234560,bird\n234561,airplane\n234562,deer\n234563,bird\n234564,cat\n234565,truck\n234566,automobile\n234567,frog\n234568,frog\n234569,horse\n234570,frog\n234571,truck\n234572,deer\n234573,dog\n234574,automobile\n234575,deer\n234576,dog\n234577,ship\n234578,cat\n234579,dog\n234580,automobile\n234581,airplane\n234582,airplane\n234583,cat\n234584,cat\n234585,deer\n234586,ship\n234587,dog\n234588,deer\n234589,truck\n234590,automobile\n234591,frog\n234592,horse\n234593,frog\n234594,cat\n234595,cat\n234596,airplane\n234597,dog\n234598,frog\n234599,horse\n234600,truck\n234601,truck\n234602,horse\n234603,frog\n234604,dog\n234605,automobile\n234606,ship\n234607,bird\n234608,bird\n234609,dog\n234610,automobile\n234611,truck\n234612,truck\n234613,truck\n234614,truck\n234615,truck\n234616,automobile\n234617,truck\n234618,dog\n234619,deer\n234620,deer\n234621,horse\n234622,frog\n234623,deer\n234624,horse\n234625,bird\n234626,dog\n234627,frog\n234628,horse\n234629,deer\n234630,truck\n234631,truck\n234632,frog\n234633,automobile\n234634,ship\n234635,horse\n234636,automobile\n234637,deer\n234638,truck\n234639,automobile\n234640,cat\n234641,cat\n234642,truck\n234643,truck\n234644,dog\n234645,cat\n234646,horse\n234647,bird\n234648,cat\n234649,frog\n234650,horse\n234651,airplane\n234652,horse\n234653,bird\n234654,truck\n234655,horse\n234656,cat\n234657,automobile\n234658,cat\n234659,automobile\n234660,truck\n234661,frog\n234662,dog\n234663,frog\n234664,cat\n234665,cat\n234666,frog\n234667,ship\n234668,deer\n234669,horse\n234670,dog\n234671,cat\n234672,automobile\n234673,deer\n234674,deer\n234675,automobile\n234676,horse\n234677,bird\n234678,airplane\n234679,automobile\n234680,frog\n234681,automobile\n234682,deer\n234683,deer\n234684,deer\n234685,frog\n234686,ship\n234687,ship\n234688,cat\n234689,automobile\n234690,dog\n234691,automobile\n234692,frog\n234693,truck\n234694,automobile\n234695,deer\n234696,deer\n234697,dog\n234698,airplane\n234699,dog\n234700,truck\n234701,automobile\n234702,deer\n234703,deer\n234704,frog\n234705,horse\n234706,cat\n234707,bird\n234708,bird\n234709,airplane\n234710,cat\n234711,frog\n234712,truck\n234713,cat\n234714,automobile\n234715,deer\n234716,horse\n234717,horse\n234718,truck\n234719,truck\n234720,deer\n234721,airplane\n234722,deer\n234723,horse\n234724,bird\n234725,deer\n234726,horse\n234727,bird\n234728,ship\n234729,ship\n234730,deer\n234731,bird\n234732,frog\n234733,truck\n234734,bird\n234735,ship\n234736,dog\n234737,dog\n234738,cat\n234739,cat\n234740,automobile\n234741,deer\n234742,automobile\n234743,dog\n234744,truck\n234745,truck\n234746,dog\n234747,deer\n234748,frog\n234749,truck\n234750,bird\n234751,truck\n234752,airplane\n234753,dog\n234754,truck\n234755,airplane\n234756,cat\n234757,dog\n234758,cat\n234759,deer\n234760,deer\n234761,cat\n234762,deer\n234763,bird\n234764,frog\n234765,frog\n234766,cat\n234767,automobile\n234768,truck\n234769,deer\n234770,ship\n234771,bird\n234772,bird\n234773,bird\n234774,frog\n234775,horse\n234776,ship\n234777,truck\n234778,automobile\n234779,cat\n234780,airplane\n234781,automobile\n234782,airplane\n234783,truck\n234784,airplane\n234785,airplane\n234786,ship\n234787,cat\n234788,dog\n234789,automobile\n234790,deer\n234791,horse\n234792,cat\n234793,airplane\n234794,frog\n234795,ship\n234796,horse\n234797,dog\n234798,cat\n234799,automobile\n234800,truck\n234801,frog\n234802,dog\n234803,frog\n234804,truck\n234805,cat\n234806,horse\n234807,horse\n234808,truck\n234809,ship\n234810,truck\n234811,truck\n234812,cat\n234813,deer\n234814,deer\n234815,truck\n234816,frog\n234817,automobile\n234818,deer\n234819,deer\n234820,frog\n234821,frog\n234822,truck\n234823,frog\n234824,deer\n234825,automobile\n234826,frog\n234827,ship\n234828,automobile\n234829,airplane\n234830,cat\n234831,bird\n234832,dog\n234833,horse\n234834,deer\n234835,deer\n234836,deer\n234837,automobile\n234838,cat\n234839,bird\n234840,bird\n234841,bird\n234842,horse\n234843,ship\n234844,airplane\n234845,frog\n234846,truck\n234847,ship\n234848,horse\n234849,truck\n234850,automobile\n234851,airplane\n234852,deer\n234853,horse\n234854,dog\n234855,cat\n234856,automobile\n234857,cat\n234858,frog\n234859,truck\n234860,airplane\n234861,cat\n234862,truck\n234863,bird\n234864,automobile\n234865,deer\n234866,cat\n234867,airplane\n234868,ship\n234869,frog\n234870,dog\n234871,automobile\n234872,automobile\n234873,dog\n234874,truck\n234875,truck\n234876,truck\n234877,truck\n234878,horse\n234879,deer\n234880,frog\n234881,frog\n234882,deer\n234883,truck\n234884,deer\n234885,bird\n234886,ship\n234887,horse\n234888,cat\n234889,truck\n234890,bird\n234891,deer\n234892,airplane\n234893,truck\n234894,bird\n234895,deer\n234896,deer\n234897,airplane\n234898,dog\n234899,truck\n234900,cat\n234901,bird\n234902,horse\n234903,airplane\n234904,dog\n234905,horse\n234906,ship\n234907,truck\n234908,automobile\n234909,dog\n234910,dog\n234911,deer\n234912,truck\n234913,dog\n234914,automobile\n234915,dog\n234916,horse\n234917,frog\n234918,airplane\n234919,automobile\n234920,frog\n234921,horse\n234922,automobile\n234923,horse\n234924,frog\n234925,deer\n234926,cat\n234927,frog\n234928,ship\n234929,horse\n234930,ship\n234931,airplane\n234932,ship\n234933,airplane\n234934,dog\n234935,bird\n234936,cat\n234937,dog\n234938,dog\n234939,automobile\n234940,cat\n234941,frog\n234942,airplane\n234943,ship\n234944,airplane\n234945,horse\n234946,ship\n234947,frog\n234948,frog\n234949,cat\n234950,automobile\n234951,truck\n234952,deer\n234953,truck\n234954,truck\n234955,dog\n234956,frog\n234957,frog\n234958,ship\n234959,dog\n234960,dog\n234961,airplane\n234962,horse\n234963,deer\n234964,frog\n234965,bird\n234966,truck\n234967,automobile\n234968,horse\n234969,bird\n234970,horse\n234971,dog\n234972,automobile\n234973,ship\n234974,deer\n234975,bird\n234976,airplane\n234977,deer\n234978,horse\n234979,truck\n234980,airplane\n234981,truck\n234982,deer\n234983,horse\n234984,ship\n234985,dog\n234986,airplane\n234987,automobile\n234988,bird\n234989,cat\n234990,cat\n234991,cat\n234992,ship\n234993,frog\n234994,frog\n234995,automobile\n234996,ship\n234997,cat\n234998,horse\n234999,deer\n235000,horse\n235001,bird\n235002,bird\n235003,ship\n235004,cat\n235005,frog\n235006,frog\n235007,automobile\n235008,truck\n235009,horse\n235010,frog\n235011,airplane\n235012,automobile\n235013,truck\n235014,deer\n235015,cat\n235016,cat\n235017,frog\n235018,cat\n235019,airplane\n235020,automobile\n235021,horse\n235022,bird\n235023,cat\n235024,horse\n235025,automobile\n235026,horse\n235027,cat\n235028,automobile\n235029,ship\n235030,frog\n235031,airplane\n235032,horse\n235033,bird\n235034,airplane\n235035,cat\n235036,automobile\n235037,ship\n235038,deer\n235039,cat\n235040,frog\n235041,dog\n235042,horse\n235043,frog\n235044,truck\n235045,cat\n235046,airplane\n235047,truck\n235048,cat\n235049,frog\n235050,truck\n235051,truck\n235052,truck\n235053,cat\n235054,frog\n235055,airplane\n235056,bird\n235057,airplane\n235058,deer\n235059,truck\n235060,frog\n235061,cat\n235062,truck\n235063,deer\n235064,ship\n235065,airplane\n235066,deer\n235067,airplane\n235068,frog\n235069,ship\n235070,automobile\n235071,truck\n235072,truck\n235073,airplane\n235074,horse\n235075,truck\n235076,deer\n235077,airplane\n235078,dog\n235079,deer\n235080,deer\n235081,cat\n235082,dog\n235083,truck\n235084,airplane\n235085,cat\n235086,dog\n235087,airplane\n235088,deer\n235089,horse\n235090,dog\n235091,horse\n235092,frog\n235093,deer\n235094,ship\n235095,automobile\n235096,automobile\n235097,truck\n235098,bird\n235099,cat\n235100,ship\n235101,dog\n235102,bird\n235103,frog\n235104,deer\n235105,dog\n235106,truck\n235107,cat\n235108,airplane\n235109,cat\n235110,deer\n235111,deer\n235112,bird\n235113,airplane\n235114,automobile\n235115,horse\n235116,deer\n235117,deer\n235118,cat\n235119,truck\n235120,ship\n235121,frog\n235122,frog\n235123,truck\n235124,cat\n235125,cat\n235126,deer\n235127,cat\n235128,automobile\n235129,ship\n235130,deer\n235131,airplane\n235132,automobile\n235133,horse\n235134,deer\n235135,truck\n235136,frog\n235137,airplane\n235138,deer\n235139,airplane\n235140,bird\n235141,frog\n235142,deer\n235143,dog\n235144,frog\n235145,horse\n235146,automobile\n235147,automobile\n235148,airplane\n235149,deer\n235150,cat\n235151,cat\n235152,ship\n235153,deer\n235154,airplane\n235155,truck\n235156,frog\n235157,dog\n235158,deer\n235159,airplane\n235160,airplane\n235161,dog\n235162,airplane\n235163,cat\n235164,cat\n235165,airplane\n235166,truck\n235167,deer\n235168,truck\n235169,airplane\n235170,frog\n235171,truck\n235172,airplane\n235173,deer\n235174,truck\n235175,truck\n235176,airplane\n235177,bird\n235178,truck\n235179,cat\n235180,bird\n235181,frog\n235182,ship\n235183,cat\n235184,airplane\n235185,truck\n235186,cat\n235187,ship\n235188,bird\n235189,airplane\n235190,cat\n235191,automobile\n235192,horse\n235193,airplane\n235194,ship\n235195,horse\n235196,truck\n235197,horse\n235198,deer\n235199,frog\n235200,cat\n235201,cat\n235202,deer\n235203,bird\n235204,airplane\n235205,bird\n235206,truck\n235207,ship\n235208,automobile\n235209,deer\n235210,horse\n235211,bird\n235212,dog\n235213,ship\n235214,truck\n235215,dog\n235216,airplane\n235217,airplane\n235218,frog\n235219,truck\n235220,bird\n235221,truck\n235222,frog\n235223,deer\n235224,airplane\n235225,frog\n235226,frog\n235227,truck\n235228,cat\n235229,truck\n235230,deer\n235231,automobile\n235232,horse\n235233,cat\n235234,airplane\n235235,airplane\n235236,automobile\n235237,frog\n235238,horse\n235239,bird\n235240,airplane\n235241,bird\n235242,airplane\n235243,horse\n235244,frog\n235245,bird\n235246,horse\n235247,deer\n235248,bird\n235249,airplane\n235250,bird\n235251,dog\n235252,ship\n235253,automobile\n235254,ship\n235255,truck\n235256,automobile\n235257,cat\n235258,ship\n235259,airplane\n235260,frog\n235261,cat\n235262,dog\n235263,deer\n235264,truck\n235265,ship\n235266,truck\n235267,cat\n235268,deer\n235269,deer\n235270,bird\n235271,dog\n235272,airplane\n235273,dog\n235274,deer\n235275,bird\n235276,deer\n235277,ship\n235278,horse\n235279,bird\n235280,dog\n235281,frog\n235282,truck\n235283,ship\n235284,cat\n235285,deer\n235286,ship\n235287,deer\n235288,dog\n235289,truck\n235290,frog\n235291,cat\n235292,truck\n235293,frog\n235294,dog\n235295,dog\n235296,deer\n235297,ship\n235298,airplane\n235299,deer\n235300,horse\n235301,deer\n235302,frog\n235303,automobile\n235304,horse\n235305,automobile\n235306,bird\n235307,horse\n235308,ship\n235309,deer\n235310,automobile\n235311,deer\n235312,deer\n235313,frog\n235314,horse\n235315,deer\n235316,airplane\n235317,deer\n235318,ship\n235319,ship\n235320,frog\n235321,horse\n235322,automobile\n235323,bird\n235324,automobile\n235325,horse\n235326,airplane\n235327,dog\n235328,frog\n235329,ship\n235330,cat\n235331,bird\n235332,frog\n235333,bird\n235334,ship\n235335,frog\n235336,truck\n235337,ship\n235338,deer\n235339,frog\n235340,cat\n235341,ship\n235342,frog\n235343,bird\n235344,airplane\n235345,deer\n235346,cat\n235347,bird\n235348,dog\n235349,truck\n235350,truck\n235351,automobile\n235352,truck\n235353,bird\n235354,deer\n235355,horse\n235356,airplane\n235357,deer\n235358,dog\n235359,horse\n235360,dog\n235361,horse\n235362,cat\n235363,bird\n235364,dog\n235365,deer\n235366,dog\n235367,truck\n235368,truck\n235369,airplane\n235370,frog\n235371,truck\n235372,dog\n235373,truck\n235374,horse\n235375,ship\n235376,deer\n235377,deer\n235378,cat\n235379,airplane\n235380,bird\n235381,cat\n235382,truck\n235383,horse\n235384,automobile\n235385,bird\n235386,bird\n235387,ship\n235388,deer\n235389,dog\n235390,frog\n235391,deer\n235392,deer\n235393,horse\n235394,bird\n235395,cat\n235396,airplane\n235397,dog\n235398,bird\n235399,frog\n235400,horse\n235401,deer\n235402,deer\n235403,cat\n235404,cat\n235405,dog\n235406,airplane\n235407,cat\n235408,deer\n235409,horse\n235410,deer\n235411,airplane\n235412,dog\n235413,horse\n235414,automobile\n235415,frog\n235416,frog\n235417,horse\n235418,frog\n235419,frog\n235420,frog\n235421,horse\n235422,dog\n235423,truck\n235424,dog\n235425,dog\n235426,automobile\n235427,cat\n235428,automobile\n235429,ship\n235430,automobile\n235431,deer\n235432,cat\n235433,ship\n235434,horse\n235435,cat\n235436,truck\n235437,dog\n235438,frog\n235439,truck\n235440,automobile\n235441,ship\n235442,automobile\n235443,deer\n235444,horse\n235445,bird\n235446,dog\n235447,bird\n235448,dog\n235449,cat\n235450,ship\n235451,cat\n235452,cat\n235453,deer\n235454,deer\n235455,truck\n235456,deer\n235457,airplane\n235458,horse\n235459,ship\n235460,truck\n235461,deer\n235462,truck\n235463,cat\n235464,truck\n235465,deer\n235466,bird\n235467,deer\n235468,frog\n235469,automobile\n235470,automobile\n235471,cat\n235472,bird\n235473,cat\n235474,automobile\n235475,automobile\n235476,bird\n235477,airplane\n235478,truck\n235479,truck\n235480,truck\n235481,truck\n235482,deer\n235483,bird\n235484,bird\n235485,cat\n235486,bird\n235487,deer\n235488,deer\n235489,horse\n235490,truck\n235491,cat\n235492,airplane\n235493,horse\n235494,deer\n235495,automobile\n235496,truck\n235497,deer\n235498,dog\n235499,airplane\n235500,airplane\n235501,frog\n235502,dog\n235503,deer\n235504,cat\n235505,frog\n235506,automobile\n235507,frog\n235508,cat\n235509,dog\n235510,airplane\n235511,airplane\n235512,bird\n235513,frog\n235514,dog\n235515,deer\n235516,dog\n235517,deer\n235518,deer\n235519,ship\n235520,ship\n235521,ship\n235522,automobile\n235523,ship\n235524,cat\n235525,truck\n235526,horse\n235527,frog\n235528,automobile\n235529,truck\n235530,frog\n235531,truck\n235532,cat\n235533,airplane\n235534,horse\n235535,deer\n235536,bird\n235537,deer\n235538,bird\n235539,cat\n235540,cat\n235541,airplane\n235542,airplane\n235543,cat\n235544,airplane\n235545,dog\n235546,cat\n235547,frog\n235548,horse\n235549,airplane\n235550,cat\n235551,automobile\n235552,bird\n235553,dog\n235554,deer\n235555,bird\n235556,deer\n235557,cat\n235558,airplane\n235559,dog\n235560,deer\n235561,truck\n235562,deer\n235563,horse\n235564,horse\n235565,truck\n235566,dog\n235567,frog\n235568,cat\n235569,deer\n235570,dog\n235571,cat\n235572,frog\n235573,dog\n235574,automobile\n235575,dog\n235576,dog\n235577,horse\n235578,bird\n235579,frog\n235580,ship\n235581,frog\n235582,deer\n235583,automobile\n235584,horse\n235585,dog\n235586,airplane\n235587,horse\n235588,dog\n235589,truck\n235590,horse\n235591,ship\n235592,deer\n235593,ship\n235594,bird\n235595,ship\n235596,cat\n235597,deer\n235598,ship\n235599,truck\n235600,airplane\n235601,bird\n235602,ship\n235603,deer\n235604,cat\n235605,dog\n235606,cat\n235607,dog\n235608,truck\n235609,horse\n235610,deer\n235611,frog\n235612,cat\n235613,bird\n235614,deer\n235615,deer\n235616,deer\n235617,cat\n235618,frog\n235619,frog\n235620,airplane\n235621,frog\n235622,dog\n235623,bird\n235624,frog\n235625,frog\n235626,airplane\n235627,frog\n235628,cat\n235629,cat\n235630,frog\n235631,horse\n235632,frog\n235633,frog\n235634,ship\n235635,airplane\n235636,cat\n235637,frog\n235638,cat\n235639,ship\n235640,truck\n235641,truck\n235642,deer\n235643,airplane\n235644,horse\n235645,airplane\n235646,cat\n235647,dog\n235648,horse\n235649,horse\n235650,truck\n235651,deer\n235652,ship\n235653,ship\n235654,cat\n235655,frog\n235656,automobile\n235657,truck\n235658,bird\n235659,horse\n235660,airplane\n235661,frog\n235662,bird\n235663,deer\n235664,deer\n235665,airplane\n235666,horse\n235667,bird\n235668,frog\n235669,frog\n235670,truck\n235671,truck\n235672,automobile\n235673,frog\n235674,deer\n235675,bird\n235676,ship\n235677,airplane\n235678,automobile\n235679,ship\n235680,truck\n235681,horse\n235682,ship\n235683,airplane\n235684,cat\n235685,cat\n235686,bird\n235687,horse\n235688,ship\n235689,airplane\n235690,horse\n235691,automobile\n235692,frog\n235693,deer\n235694,dog\n235695,deer\n235696,frog\n235697,ship\n235698,dog\n235699,airplane\n235700,dog\n235701,horse\n235702,dog\n235703,automobile\n235704,bird\n235705,airplane\n235706,automobile\n235707,dog\n235708,deer\n235709,frog\n235710,deer\n235711,dog\n235712,deer\n235713,truck\n235714,horse\n235715,horse\n235716,horse\n235717,truck\n235718,horse\n235719,deer\n235720,automobile\n235721,dog\n235722,horse\n235723,airplane\n235724,ship\n235725,automobile\n235726,cat\n235727,deer\n235728,airplane\n235729,dog\n235730,ship\n235731,airplane\n235732,dog\n235733,cat\n235734,dog\n235735,horse\n235736,automobile\n235737,truck\n235738,automobile\n235739,cat\n235740,deer\n235741,truck\n235742,automobile\n235743,cat\n235744,cat\n235745,cat\n235746,dog\n235747,cat\n235748,cat\n235749,truck\n235750,truck\n235751,frog\n235752,truck\n235753,dog\n235754,horse\n235755,deer\n235756,cat\n235757,frog\n235758,bird\n235759,airplane\n235760,deer\n235761,ship\n235762,dog\n235763,airplane\n235764,horse\n235765,automobile\n235766,bird\n235767,deer\n235768,dog\n235769,truck\n235770,frog\n235771,frog\n235772,dog\n235773,truck\n235774,bird\n235775,cat\n235776,bird\n235777,frog\n235778,frog\n235779,ship\n235780,airplane\n235781,airplane\n235782,horse\n235783,truck\n235784,horse\n235785,horse\n235786,frog\n235787,cat\n235788,horse\n235789,automobile\n235790,bird\n235791,frog\n235792,ship\n235793,cat\n235794,airplane\n235795,frog\n235796,truck\n235797,truck\n235798,ship\n235799,bird\n235800,cat\n235801,automobile\n235802,ship\n235803,horse\n235804,dog\n235805,horse\n235806,airplane\n235807,cat\n235808,ship\n235809,ship\n235810,deer\n235811,deer\n235812,bird\n235813,truck\n235814,ship\n235815,truck\n235816,bird\n235817,deer\n235818,deer\n235819,bird\n235820,frog\n235821,frog\n235822,dog\n235823,automobile\n235824,cat\n235825,truck\n235826,airplane\n235827,bird\n235828,bird\n235829,dog\n235830,truck\n235831,cat\n235832,dog\n235833,cat\n235834,bird\n235835,truck\n235836,truck\n235837,horse\n235838,truck\n235839,cat\n235840,horse\n235841,dog\n235842,automobile\n235843,automobile\n235844,deer\n235845,bird\n235846,deer\n235847,automobile\n235848,bird\n235849,cat\n235850,ship\n235851,automobile\n235852,horse\n235853,bird\n235854,frog\n235855,automobile\n235856,bird\n235857,cat\n235858,bird\n235859,cat\n235860,ship\n235861,automobile\n235862,deer\n235863,ship\n235864,frog\n235865,cat\n235866,bird\n235867,bird\n235868,truck\n235869,dog\n235870,horse\n235871,deer\n235872,ship\n235873,dog\n235874,dog\n235875,truck\n235876,cat\n235877,deer\n235878,cat\n235879,cat\n235880,automobile\n235881,horse\n235882,truck\n235883,truck\n235884,deer\n235885,bird\n235886,automobile\n235887,dog\n235888,bird\n235889,frog\n235890,ship\n235891,truck\n235892,airplane\n235893,dog\n235894,truck\n235895,airplane\n235896,horse\n235897,automobile\n235898,dog\n235899,automobile\n235900,airplane\n235901,cat\n235902,horse\n235903,bird\n235904,cat\n235905,airplane\n235906,frog\n235907,bird\n235908,horse\n235909,truck\n235910,dog\n235911,horse\n235912,airplane\n235913,deer\n235914,deer\n235915,dog\n235916,cat\n235917,horse\n235918,frog\n235919,automobile\n235920,bird\n235921,deer\n235922,airplane\n235923,cat\n235924,cat\n235925,dog\n235926,truck\n235927,frog\n235928,horse\n235929,deer\n235930,dog\n235931,automobile\n235932,truck\n235933,airplane\n235934,horse\n235935,automobile\n235936,horse\n235937,airplane\n235938,dog\n235939,truck\n235940,deer\n235941,deer\n235942,dog\n235943,horse\n235944,ship\n235945,horse\n235946,automobile\n235947,deer\n235948,horse\n235949,dog\n235950,deer\n235951,dog\n235952,automobile\n235953,deer\n235954,truck\n235955,deer\n235956,truck\n235957,dog\n235958,cat\n235959,cat\n235960,cat\n235961,deer\n235962,deer\n235963,cat\n235964,cat\n235965,cat\n235966,frog\n235967,frog\n235968,horse\n235969,frog\n235970,horse\n235971,ship\n235972,cat\n235973,cat\n235974,bird\n235975,horse\n235976,frog\n235977,automobile\n235978,frog\n235979,cat\n235980,ship\n235981,horse\n235982,truck\n235983,truck\n235984,cat\n235985,deer\n235986,frog\n235987,airplane\n235988,dog\n235989,airplane\n235990,cat\n235991,airplane\n235992,horse\n235993,bird\n235994,truck\n235995,truck\n235996,cat\n235997,ship\n235998,bird\n235999,bird\n236000,frog\n236001,automobile\n236002,dog\n236003,deer\n236004,deer\n236005,deer\n236006,cat\n236007,truck\n236008,cat\n236009,truck\n236010,horse\n236011,bird\n236012,airplane\n236013,frog\n236014,automobile\n236015,truck\n236016,airplane\n236017,automobile\n236018,horse\n236019,bird\n236020,dog\n236021,bird\n236022,deer\n236023,dog\n236024,horse\n236025,horse\n236026,deer\n236027,dog\n236028,deer\n236029,deer\n236030,dog\n236031,dog\n236032,deer\n236033,deer\n236034,dog\n236035,ship\n236036,deer\n236037,dog\n236038,horse\n236039,deer\n236040,dog\n236041,deer\n236042,automobile\n236043,airplane\n236044,airplane\n236045,truck\n236046,airplane\n236047,automobile\n236048,airplane\n236049,ship\n236050,cat\n236051,deer\n236052,airplane\n236053,airplane\n236054,deer\n236055,horse\n236056,cat\n236057,automobile\n236058,cat\n236059,horse\n236060,dog\n236061,bird\n236062,deer\n236063,automobile\n236064,dog\n236065,horse\n236066,airplane\n236067,ship\n236068,airplane\n236069,bird\n236070,airplane\n236071,deer\n236072,dog\n236073,horse\n236074,ship\n236075,cat\n236076,horse\n236077,airplane\n236078,bird\n236079,horse\n236080,airplane\n236081,cat\n236082,ship\n236083,truck\n236084,deer\n236085,frog\n236086,automobile\n236087,automobile\n236088,horse\n236089,horse\n236090,frog\n236091,frog\n236092,ship\n236093,truck\n236094,cat\n236095,horse\n236096,truck\n236097,deer\n236098,cat\n236099,frog\n236100,cat\n236101,horse\n236102,horse\n236103,frog\n236104,horse\n236105,ship\n236106,cat\n236107,bird\n236108,horse\n236109,frog\n236110,deer\n236111,dog\n236112,horse\n236113,dog\n236114,bird\n236115,airplane\n236116,bird\n236117,truck\n236118,truck\n236119,airplane\n236120,dog\n236121,cat\n236122,horse\n236123,dog\n236124,bird\n236125,deer\n236126,dog\n236127,truck\n236128,frog\n236129,ship\n236130,cat\n236131,dog\n236132,horse\n236133,truck\n236134,bird\n236135,truck\n236136,cat\n236137,frog\n236138,truck\n236139,truck\n236140,bird\n236141,horse\n236142,deer\n236143,truck\n236144,truck\n236145,cat\n236146,automobile\n236147,cat\n236148,ship\n236149,automobile\n236150,bird\n236151,frog\n236152,frog\n236153,automobile\n236154,cat\n236155,ship\n236156,dog\n236157,horse\n236158,bird\n236159,truck\n236160,horse\n236161,airplane\n236162,deer\n236163,airplane\n236164,deer\n236165,horse\n236166,deer\n236167,horse\n236168,ship\n236169,deer\n236170,horse\n236171,truck\n236172,deer\n236173,cat\n236174,airplane\n236175,frog\n236176,cat\n236177,deer\n236178,bird\n236179,ship\n236180,truck\n236181,truck\n236182,airplane\n236183,dog\n236184,horse\n236185,horse\n236186,horse\n236187,horse\n236188,frog\n236189,airplane\n236190,airplane\n236191,deer\n236192,deer\n236193,ship\n236194,truck\n236195,dog\n236196,ship\n236197,bird\n236198,automobile\n236199,truck\n236200,airplane\n236201,ship\n236202,deer\n236203,truck\n236204,dog\n236205,truck\n236206,horse\n236207,deer\n236208,ship\n236209,horse\n236210,truck\n236211,deer\n236212,automobile\n236213,frog\n236214,deer\n236215,airplane\n236216,horse\n236217,bird\n236218,cat\n236219,bird\n236220,horse\n236221,frog\n236222,horse\n236223,ship\n236224,automobile\n236225,airplane\n236226,truck\n236227,automobile\n236228,airplane\n236229,bird\n236230,frog\n236231,horse\n236232,bird\n236233,ship\n236234,bird\n236235,truck\n236236,cat\n236237,cat\n236238,dog\n236239,dog\n236240,cat\n236241,horse\n236242,ship\n236243,bird\n236244,frog\n236245,airplane\n236246,dog\n236247,deer\n236248,cat\n236249,horse\n236250,dog\n236251,truck\n236252,truck\n236253,frog\n236254,horse\n236255,automobile\n236256,airplane\n236257,horse\n236258,bird\n236259,cat\n236260,frog\n236261,frog\n236262,dog\n236263,deer\n236264,horse\n236265,frog\n236266,frog\n236267,horse\n236268,bird\n236269,dog\n236270,deer\n236271,truck\n236272,frog\n236273,horse\n236274,deer\n236275,truck\n236276,deer\n236277,dog\n236278,frog\n236279,ship\n236280,bird\n236281,truck\n236282,deer\n236283,truck\n236284,bird\n236285,automobile\n236286,ship\n236287,ship\n236288,airplane\n236289,cat\n236290,truck\n236291,truck\n236292,airplane\n236293,dog\n236294,truck\n236295,dog\n236296,bird\n236297,frog\n236298,horse\n236299,ship\n236300,automobile\n236301,truck\n236302,truck\n236303,truck\n236304,horse\n236305,airplane\n236306,dog\n236307,bird\n236308,dog\n236309,dog\n236310,ship\n236311,bird\n236312,horse\n236313,truck\n236314,truck\n236315,bird\n236316,frog\n236317,airplane\n236318,ship\n236319,horse\n236320,deer\n236321,frog\n236322,cat\n236323,truck\n236324,dog\n236325,cat\n236326,truck\n236327,frog\n236328,deer\n236329,horse\n236330,truck\n236331,frog\n236332,deer\n236333,dog\n236334,deer\n236335,bird\n236336,dog\n236337,automobile\n236338,dog\n236339,cat\n236340,truck\n236341,automobile\n236342,horse\n236343,horse\n236344,cat\n236345,airplane\n236346,dog\n236347,frog\n236348,deer\n236349,dog\n236350,horse\n236351,truck\n236352,dog\n236353,cat\n236354,bird\n236355,horse\n236356,cat\n236357,automobile\n236358,deer\n236359,airplane\n236360,dog\n236361,dog\n236362,cat\n236363,truck\n236364,cat\n236365,horse\n236366,deer\n236367,cat\n236368,automobile\n236369,truck\n236370,bird\n236371,frog\n236372,cat\n236373,truck\n236374,cat\n236375,ship\n236376,bird\n236377,cat\n236378,frog\n236379,frog\n236380,cat\n236381,dog\n236382,deer\n236383,horse\n236384,dog\n236385,cat\n236386,ship\n236387,frog\n236388,bird\n236389,airplane\n236390,bird\n236391,truck\n236392,airplane\n236393,frog\n236394,truck\n236395,deer\n236396,deer\n236397,frog\n236398,automobile\n236399,cat\n236400,airplane\n236401,cat\n236402,horse\n236403,bird\n236404,deer\n236405,deer\n236406,cat\n236407,dog\n236408,dog\n236409,cat\n236410,cat\n236411,deer\n236412,deer\n236413,frog\n236414,cat\n236415,ship\n236416,automobile\n236417,bird\n236418,deer\n236419,frog\n236420,bird\n236421,dog\n236422,airplane\n236423,horse\n236424,frog\n236425,bird\n236426,horse\n236427,dog\n236428,deer\n236429,ship\n236430,cat\n236431,airplane\n236432,truck\n236433,frog\n236434,dog\n236435,bird\n236436,deer\n236437,automobile\n236438,dog\n236439,truck\n236440,frog\n236441,cat\n236442,truck\n236443,truck\n236444,horse\n236445,cat\n236446,automobile\n236447,airplane\n236448,frog\n236449,bird\n236450,airplane\n236451,dog\n236452,cat\n236453,dog\n236454,airplane\n236455,automobile\n236456,cat\n236457,bird\n236458,cat\n236459,horse\n236460,automobile\n236461,truck\n236462,deer\n236463,truck\n236464,deer\n236465,cat\n236466,truck\n236467,bird\n236468,truck\n236469,airplane\n236470,dog\n236471,cat\n236472,frog\n236473,deer\n236474,deer\n236475,dog\n236476,horse\n236477,frog\n236478,airplane\n236479,cat\n236480,cat\n236481,truck\n236482,truck\n236483,deer\n236484,automobile\n236485,ship\n236486,deer\n236487,horse\n236488,horse\n236489,deer\n236490,automobile\n236491,deer\n236492,deer\n236493,cat\n236494,frog\n236495,automobile\n236496,bird\n236497,dog\n236498,airplane\n236499,cat\n236500,automobile\n236501,cat\n236502,deer\n236503,bird\n236504,dog\n236505,deer\n236506,ship\n236507,ship\n236508,dog\n236509,bird\n236510,truck\n236511,cat\n236512,ship\n236513,automobile\n236514,deer\n236515,horse\n236516,dog\n236517,automobile\n236518,ship\n236519,horse\n236520,frog\n236521,truck\n236522,ship\n236523,dog\n236524,deer\n236525,horse\n236526,dog\n236527,dog\n236528,ship\n236529,horse\n236530,airplane\n236531,bird\n236532,horse\n236533,truck\n236534,bird\n236535,cat\n236536,bird\n236537,airplane\n236538,deer\n236539,automobile\n236540,frog\n236541,truck\n236542,horse\n236543,cat\n236544,dog\n236545,horse\n236546,airplane\n236547,cat\n236548,airplane\n236549,frog\n236550,frog\n236551,frog\n236552,horse\n236553,frog\n236554,cat\n236555,frog\n236556,airplane\n236557,bird\n236558,ship\n236559,airplane\n236560,ship\n236561,ship\n236562,frog\n236563,cat\n236564,horse\n236565,deer\n236566,frog\n236567,bird\n236568,cat\n236569,automobile\n236570,horse\n236571,ship\n236572,frog\n236573,cat\n236574,dog\n236575,dog\n236576,deer\n236577,deer\n236578,frog\n236579,deer\n236580,truck\n236581,frog\n236582,horse\n236583,frog\n236584,cat\n236585,ship\n236586,ship\n236587,deer\n236588,deer\n236589,airplane\n236590,cat\n236591,airplane\n236592,horse\n236593,cat\n236594,cat\n236595,truck\n236596,cat\n236597,cat\n236598,bird\n236599,cat\n236600,dog\n236601,airplane\n236602,frog\n236603,frog\n236604,deer\n236605,bird\n236606,dog\n236607,bird\n236608,truck\n236609,frog\n236610,automobile\n236611,deer\n236612,truck\n236613,horse\n236614,cat\n236615,horse\n236616,automobile\n236617,horse\n236618,horse\n236619,airplane\n236620,dog\n236621,cat\n236622,bird\n236623,horse\n236624,dog\n236625,truck\n236626,deer\n236627,deer\n236628,deer\n236629,frog\n236630,ship\n236631,cat\n236632,airplane\n236633,cat\n236634,ship\n236635,dog\n236636,deer\n236637,deer\n236638,bird\n236639,frog\n236640,airplane\n236641,deer\n236642,frog\n236643,frog\n236644,truck\n236645,dog\n236646,ship\n236647,bird\n236648,horse\n236649,deer\n236650,dog\n236651,horse\n236652,truck\n236653,dog\n236654,airplane\n236655,frog\n236656,bird\n236657,horse\n236658,bird\n236659,dog\n236660,cat\n236661,bird\n236662,ship\n236663,ship\n236664,ship\n236665,airplane\n236666,frog\n236667,airplane\n236668,cat\n236669,deer\n236670,airplane\n236671,airplane\n236672,ship\n236673,dog\n236674,cat\n236675,automobile\n236676,ship\n236677,horse\n236678,frog\n236679,horse\n236680,frog\n236681,deer\n236682,truck\n236683,airplane\n236684,cat\n236685,cat\n236686,bird\n236687,truck\n236688,deer\n236689,ship\n236690,dog\n236691,airplane\n236692,dog\n236693,truck\n236694,frog\n236695,automobile\n236696,frog\n236697,truck\n236698,frog\n236699,dog\n236700,cat\n236701,airplane\n236702,automobile\n236703,cat\n236704,ship\n236705,ship\n236706,truck\n236707,horse\n236708,dog\n236709,deer\n236710,automobile\n236711,truck\n236712,cat\n236713,bird\n236714,horse\n236715,automobile\n236716,frog\n236717,frog\n236718,horse\n236719,deer\n236720,airplane\n236721,horse\n236722,truck\n236723,ship\n236724,deer\n236725,frog\n236726,horse\n236727,automobile\n236728,ship\n236729,deer\n236730,horse\n236731,frog\n236732,cat\n236733,truck\n236734,cat\n236735,dog\n236736,frog\n236737,cat\n236738,ship\n236739,dog\n236740,deer\n236741,truck\n236742,cat\n236743,deer\n236744,truck\n236745,ship\n236746,horse\n236747,horse\n236748,truck\n236749,deer\n236750,truck\n236751,truck\n236752,deer\n236753,cat\n236754,horse\n236755,ship\n236756,cat\n236757,automobile\n236758,ship\n236759,horse\n236760,automobile\n236761,truck\n236762,truck\n236763,frog\n236764,cat\n236765,cat\n236766,deer\n236767,ship\n236768,dog\n236769,truck\n236770,frog\n236771,horse\n236772,bird\n236773,dog\n236774,horse\n236775,airplane\n236776,automobile\n236777,ship\n236778,truck\n236779,airplane\n236780,bird\n236781,cat\n236782,airplane\n236783,truck\n236784,deer\n236785,horse\n236786,horse\n236787,deer\n236788,truck\n236789,dog\n236790,horse\n236791,horse\n236792,automobile\n236793,bird\n236794,dog\n236795,deer\n236796,deer\n236797,airplane\n236798,deer\n236799,deer\n236800,bird\n236801,truck\n236802,cat\n236803,deer\n236804,dog\n236805,frog\n236806,airplane\n236807,truck\n236808,deer\n236809,truck\n236810,frog\n236811,bird\n236812,horse\n236813,horse\n236814,ship\n236815,deer\n236816,deer\n236817,bird\n236818,cat\n236819,bird\n236820,automobile\n236821,ship\n236822,frog\n236823,horse\n236824,truck\n236825,horse\n236826,horse\n236827,frog\n236828,automobile\n236829,horse\n236830,horse\n236831,deer\n236832,truck\n236833,automobile\n236834,cat\n236835,ship\n236836,dog\n236837,cat\n236838,horse\n236839,automobile\n236840,truck\n236841,cat\n236842,truck\n236843,airplane\n236844,deer\n236845,automobile\n236846,airplane\n236847,deer\n236848,ship\n236849,bird\n236850,bird\n236851,cat\n236852,ship\n236853,horse\n236854,truck\n236855,deer\n236856,bird\n236857,automobile\n236858,deer\n236859,automobile\n236860,cat\n236861,deer\n236862,automobile\n236863,deer\n236864,ship\n236865,frog\n236866,horse\n236867,horse\n236868,horse\n236869,ship\n236870,horse\n236871,airplane\n236872,dog\n236873,frog\n236874,automobile\n236875,bird\n236876,cat\n236877,deer\n236878,horse\n236879,automobile\n236880,bird\n236881,bird\n236882,automobile\n236883,horse\n236884,horse\n236885,airplane\n236886,frog\n236887,frog\n236888,dog\n236889,airplane\n236890,automobile\n236891,airplane\n236892,airplane\n236893,bird\n236894,dog\n236895,automobile\n236896,cat\n236897,airplane\n236898,truck\n236899,horse\n236900,truck\n236901,cat\n236902,automobile\n236903,frog\n236904,frog\n236905,ship\n236906,ship\n236907,cat\n236908,deer\n236909,truck\n236910,cat\n236911,truck\n236912,ship\n236913,truck\n236914,dog\n236915,deer\n236916,truck\n236917,dog\n236918,dog\n236919,dog\n236920,ship\n236921,bird\n236922,ship\n236923,automobile\n236924,cat\n236925,dog\n236926,cat\n236927,bird\n236928,horse\n236929,dog\n236930,horse\n236931,horse\n236932,airplane\n236933,frog\n236934,frog\n236935,automobile\n236936,cat\n236937,cat\n236938,deer\n236939,bird\n236940,cat\n236941,dog\n236942,deer\n236943,cat\n236944,ship\n236945,automobile\n236946,cat\n236947,truck\n236948,truck\n236949,deer\n236950,dog\n236951,truck\n236952,cat\n236953,frog\n236954,horse\n236955,frog\n236956,dog\n236957,truck\n236958,bird\n236959,cat\n236960,truck\n236961,horse\n236962,ship\n236963,bird\n236964,horse\n236965,horse\n236966,cat\n236967,cat\n236968,automobile\n236969,frog\n236970,automobile\n236971,deer\n236972,cat\n236973,cat\n236974,frog\n236975,frog\n236976,dog\n236977,dog\n236978,automobile\n236979,bird\n236980,deer\n236981,dog\n236982,horse\n236983,deer\n236984,horse\n236985,deer\n236986,truck\n236987,truck\n236988,bird\n236989,cat\n236990,dog\n236991,truck\n236992,deer\n236993,cat\n236994,horse\n236995,horse\n236996,truck\n236997,truck\n236998,frog\n236999,deer\n237000,dog\n237001,dog\n237002,deer\n237003,deer\n237004,bird\n237005,deer\n237006,airplane\n237007,frog\n237008,automobile\n237009,cat\n237010,airplane\n237011,ship\n237012,automobile\n237013,deer\n237014,truck\n237015,cat\n237016,deer\n237017,ship\n237018,ship\n237019,automobile\n237020,airplane\n237021,ship\n237022,frog\n237023,truck\n237024,truck\n237025,horse\n237026,cat\n237027,dog\n237028,cat\n237029,bird\n237030,dog\n237031,frog\n237032,frog\n237033,truck\n237034,frog\n237035,horse\n237036,horse\n237037,truck\n237038,frog\n237039,airplane\n237040,airplane\n237041,dog\n237042,automobile\n237043,bird\n237044,ship\n237045,horse\n237046,frog\n237047,cat\n237048,cat\n237049,automobile\n237050,frog\n237051,airplane\n237052,truck\n237053,automobile\n237054,dog\n237055,cat\n237056,bird\n237057,dog\n237058,bird\n237059,ship\n237060,cat\n237061,frog\n237062,horse\n237063,horse\n237064,bird\n237065,dog\n237066,cat\n237067,automobile\n237068,deer\n237069,frog\n237070,deer\n237071,automobile\n237072,horse\n237073,bird\n237074,automobile\n237075,cat\n237076,dog\n237077,cat\n237078,automobile\n237079,automobile\n237080,deer\n237081,airplane\n237082,automobile\n237083,horse\n237084,bird\n237085,airplane\n237086,airplane\n237087,bird\n237088,automobile\n237089,horse\n237090,horse\n237091,horse\n237092,dog\n237093,truck\n237094,automobile\n237095,bird\n237096,dog\n237097,cat\n237098,cat\n237099,deer\n237100,dog\n237101,cat\n237102,cat\n237103,ship\n237104,cat\n237105,automobile\n237106,horse\n237107,dog\n237108,bird\n237109,dog\n237110,deer\n237111,automobile\n237112,horse\n237113,deer\n237114,dog\n237115,frog\n237116,frog\n237117,ship\n237118,automobile\n237119,horse\n237120,dog\n237121,dog\n237122,truck\n237123,bird\n237124,truck\n237125,airplane\n237126,dog\n237127,frog\n237128,deer\n237129,automobile\n237130,airplane\n237131,frog\n237132,dog\n237133,horse\n237134,deer\n237135,truck\n237136,ship\n237137,bird\n237138,airplane\n237139,bird\n237140,cat\n237141,truck\n237142,dog\n237143,deer\n237144,dog\n237145,bird\n237146,deer\n237147,bird\n237148,automobile\n237149,airplane\n237150,bird\n237151,automobile\n237152,ship\n237153,frog\n237154,horse\n237155,dog\n237156,ship\n237157,deer\n237158,ship\n237159,deer\n237160,automobile\n237161,truck\n237162,ship\n237163,deer\n237164,airplane\n237165,cat\n237166,ship\n237167,truck\n237168,automobile\n237169,truck\n237170,cat\n237171,deer\n237172,truck\n237173,cat\n237174,frog\n237175,horse\n237176,deer\n237177,ship\n237178,ship\n237179,frog\n237180,truck\n237181,frog\n237182,dog\n237183,truck\n237184,cat\n237185,cat\n237186,horse\n237187,deer\n237188,bird\n237189,frog\n237190,bird\n237191,frog\n237192,cat\n237193,horse\n237194,dog\n237195,ship\n237196,bird\n237197,airplane\n237198,automobile\n237199,airplane\n237200,frog\n237201,airplane\n237202,cat\n237203,truck\n237204,deer\n237205,cat\n237206,bird\n237207,ship\n237208,ship\n237209,cat\n237210,bird\n237211,deer\n237212,dog\n237213,deer\n237214,airplane\n237215,frog\n237216,bird\n237217,truck\n237218,truck\n237219,automobile\n237220,cat\n237221,dog\n237222,cat\n237223,truck\n237224,horse\n237225,cat\n237226,deer\n237227,bird\n237228,frog\n237229,bird\n237230,frog\n237231,dog\n237232,truck\n237233,automobile\n237234,airplane\n237235,bird\n237236,bird\n237237,dog\n237238,dog\n237239,truck\n237240,ship\n237241,frog\n237242,truck\n237243,ship\n237244,frog\n237245,cat\n237246,deer\n237247,automobile\n237248,automobile\n237249,deer\n237250,automobile\n237251,truck\n237252,ship\n237253,deer\n237254,deer\n237255,automobile\n237256,automobile\n237257,truck\n237258,frog\n237259,truck\n237260,truck\n237261,frog\n237262,truck\n237263,bird\n237264,airplane\n237265,airplane\n237266,automobile\n237267,deer\n237268,airplane\n237269,bird\n237270,bird\n237271,deer\n237272,cat\n237273,truck\n237274,frog\n237275,horse\n237276,bird\n237277,deer\n237278,bird\n237279,ship\n237280,airplane\n237281,frog\n237282,ship\n237283,frog\n237284,automobile\n237285,automobile\n237286,frog\n237287,cat\n237288,airplane\n237289,cat\n237290,truck\n237291,frog\n237292,airplane\n237293,cat\n237294,deer\n237295,horse\n237296,dog\n237297,truck\n237298,deer\n237299,truck\n237300,cat\n237301,frog\n237302,frog\n237303,bird\n237304,ship\n237305,dog\n237306,dog\n237307,truck\n237308,dog\n237309,airplane\n237310,deer\n237311,automobile\n237312,automobile\n237313,dog\n237314,horse\n237315,airplane\n237316,dog\n237317,horse\n237318,frog\n237319,ship\n237320,dog\n237321,ship\n237322,dog\n237323,deer\n237324,frog\n237325,frog\n237326,bird\n237327,horse\n237328,airplane\n237329,cat\n237330,automobile\n237331,automobile\n237332,automobile\n237333,horse\n237334,horse\n237335,dog\n237336,ship\n237337,automobile\n237338,truck\n237339,bird\n237340,ship\n237341,frog\n237342,ship\n237343,cat\n237344,dog\n237345,automobile\n237346,dog\n237347,dog\n237348,horse\n237349,deer\n237350,truck\n237351,horse\n237352,automobile\n237353,frog\n237354,deer\n237355,horse\n237356,airplane\n237357,deer\n237358,bird\n237359,dog\n237360,ship\n237361,deer\n237362,deer\n237363,ship\n237364,bird\n237365,horse\n237366,truck\n237367,dog\n237368,horse\n237369,ship\n237370,bird\n237371,ship\n237372,frog\n237373,horse\n237374,bird\n237375,deer\n237376,frog\n237377,automobile\n237378,deer\n237379,deer\n237380,deer\n237381,deer\n237382,frog\n237383,cat\n237384,horse\n237385,deer\n237386,deer\n237387,deer\n237388,bird\n237389,ship\n237390,frog\n237391,dog\n237392,frog\n237393,dog\n237394,ship\n237395,dog\n237396,ship\n237397,dog\n237398,horse\n237399,cat\n237400,cat\n237401,deer\n237402,ship\n237403,bird\n237404,cat\n237405,horse\n237406,dog\n237407,deer\n237408,deer\n237409,cat\n237410,cat\n237411,ship\n237412,frog\n237413,deer\n237414,airplane\n237415,airplane\n237416,dog\n237417,airplane\n237418,airplane\n237419,dog\n237420,horse\n237421,cat\n237422,ship\n237423,dog\n237424,automobile\n237425,airplane\n237426,cat\n237427,cat\n237428,frog\n237429,airplane\n237430,frog\n237431,truck\n237432,airplane\n237433,frog\n237434,ship\n237435,ship\n237436,deer\n237437,truck\n237438,horse\n237439,horse\n237440,horse\n237441,horse\n237442,dog\n237443,ship\n237444,frog\n237445,bird\n237446,airplane\n237447,ship\n237448,deer\n237449,airplane\n237450,truck\n237451,bird\n237452,cat\n237453,ship\n237454,truck\n237455,airplane\n237456,cat\n237457,deer\n237458,frog\n237459,airplane\n237460,frog\n237461,truck\n237462,bird\n237463,bird\n237464,frog\n237465,automobile\n237466,cat\n237467,frog\n237468,automobile\n237469,frog\n237470,truck\n237471,airplane\n237472,horse\n237473,bird\n237474,frog\n237475,truck\n237476,deer\n237477,dog\n237478,deer\n237479,airplane\n237480,dog\n237481,frog\n237482,bird\n237483,dog\n237484,truck\n237485,airplane\n237486,dog\n237487,bird\n237488,ship\n237489,ship\n237490,airplane\n237491,automobile\n237492,ship\n237493,deer\n237494,bird\n237495,frog\n237496,ship\n237497,airplane\n237498,automobile\n237499,airplane\n237500,bird\n237501,deer\n237502,deer\n237503,airplane\n237504,horse\n237505,deer\n237506,deer\n237507,deer\n237508,truck\n237509,bird\n237510,cat\n237511,ship\n237512,dog\n237513,truck\n237514,frog\n237515,dog\n237516,horse\n237517,frog\n237518,truck\n237519,dog\n237520,horse\n237521,cat\n237522,bird\n237523,truck\n237524,horse\n237525,cat\n237526,horse\n237527,bird\n237528,automobile\n237529,automobile\n237530,automobile\n237531,ship\n237532,frog\n237533,dog\n237534,airplane\n237535,deer\n237536,cat\n237537,horse\n237538,truck\n237539,ship\n237540,deer\n237541,deer\n237542,airplane\n237543,horse\n237544,cat\n237545,deer\n237546,cat\n237547,frog\n237548,bird\n237549,ship\n237550,horse\n237551,airplane\n237552,deer\n237553,automobile\n237554,truck\n237555,automobile\n237556,automobile\n237557,ship\n237558,dog\n237559,cat\n237560,airplane\n237561,deer\n237562,horse\n237563,horse\n237564,truck\n237565,deer\n237566,automobile\n237567,airplane\n237568,frog\n237569,airplane\n237570,airplane\n237571,frog\n237572,frog\n237573,airplane\n237574,frog\n237575,horse\n237576,horse\n237577,horse\n237578,automobile\n237579,automobile\n237580,deer\n237581,cat\n237582,ship\n237583,deer\n237584,dog\n237585,frog\n237586,frog\n237587,horse\n237588,frog\n237589,dog\n237590,bird\n237591,deer\n237592,frog\n237593,truck\n237594,dog\n237595,dog\n237596,truck\n237597,ship\n237598,bird\n237599,truck\n237600,automobile\n237601,deer\n237602,horse\n237603,automobile\n237604,frog\n237605,cat\n237606,truck\n237607,deer\n237608,frog\n237609,cat\n237610,dog\n237611,airplane\n237612,frog\n237613,dog\n237614,automobile\n237615,dog\n237616,truck\n237617,deer\n237618,deer\n237619,airplane\n237620,ship\n237621,frog\n237622,horse\n237623,dog\n237624,frog\n237625,dog\n237626,bird\n237627,airplane\n237628,horse\n237629,horse\n237630,dog\n237631,deer\n237632,cat\n237633,horse\n237634,airplane\n237635,truck\n237636,horse\n237637,truck\n237638,automobile\n237639,deer\n237640,frog\n237641,dog\n237642,truck\n237643,truck\n237644,dog\n237645,airplane\n237646,dog\n237647,cat\n237648,frog\n237649,truck\n237650,automobile\n237651,deer\n237652,frog\n237653,automobile\n237654,truck\n237655,horse\n237656,bird\n237657,ship\n237658,frog\n237659,horse\n237660,dog\n237661,cat\n237662,deer\n237663,ship\n237664,bird\n237665,automobile\n237666,ship\n237667,cat\n237668,frog\n237669,dog\n237670,frog\n237671,truck\n237672,cat\n237673,truck\n237674,horse\n237675,cat\n237676,airplane\n237677,horse\n237678,automobile\n237679,horse\n237680,deer\n237681,cat\n237682,deer\n237683,frog\n237684,deer\n237685,ship\n237686,dog\n237687,dog\n237688,cat\n237689,ship\n237690,bird\n237691,frog\n237692,bird\n237693,horse\n237694,automobile\n237695,truck\n237696,frog\n237697,cat\n237698,horse\n237699,automobile\n237700,horse\n237701,frog\n237702,automobile\n237703,deer\n237704,airplane\n237705,cat\n237706,deer\n237707,horse\n237708,bird\n237709,deer\n237710,truck\n237711,bird\n237712,frog\n237713,bird\n237714,truck\n237715,horse\n237716,bird\n237717,deer\n237718,cat\n237719,cat\n237720,truck\n237721,airplane\n237722,bird\n237723,deer\n237724,truck\n237725,ship\n237726,automobile\n237727,deer\n237728,airplane\n237729,frog\n237730,bird\n237731,deer\n237732,ship\n237733,cat\n237734,deer\n237735,frog\n237736,frog\n237737,automobile\n237738,truck\n237739,automobile\n237740,deer\n237741,automobile\n237742,horse\n237743,deer\n237744,horse\n237745,horse\n237746,cat\n237747,frog\n237748,truck\n237749,airplane\n237750,truck\n237751,truck\n237752,frog\n237753,bird\n237754,horse\n237755,horse\n237756,cat\n237757,cat\n237758,cat\n237759,automobile\n237760,ship\n237761,bird\n237762,frog\n237763,horse\n237764,bird\n237765,airplane\n237766,ship\n237767,cat\n237768,frog\n237769,automobile\n237770,airplane\n237771,deer\n237772,dog\n237773,truck\n237774,deer\n237775,deer\n237776,truck\n237777,cat\n237778,frog\n237779,airplane\n237780,deer\n237781,deer\n237782,dog\n237783,truck\n237784,bird\n237785,ship\n237786,airplane\n237787,dog\n237788,dog\n237789,dog\n237790,cat\n237791,automobile\n237792,cat\n237793,cat\n237794,ship\n237795,automobile\n237796,frog\n237797,frog\n237798,deer\n237799,frog\n237800,horse\n237801,bird\n237802,bird\n237803,deer\n237804,horse\n237805,horse\n237806,dog\n237807,bird\n237808,ship\n237809,truck\n237810,automobile\n237811,truck\n237812,automobile\n237813,horse\n237814,truck\n237815,deer\n237816,truck\n237817,horse\n237818,deer\n237819,cat\n237820,dog\n237821,cat\n237822,deer\n237823,cat\n237824,cat\n237825,ship\n237826,airplane\n237827,horse\n237828,deer\n237829,truck\n237830,horse\n237831,automobile\n237832,cat\n237833,deer\n237834,cat\n237835,bird\n237836,ship\n237837,horse\n237838,ship\n237839,frog\n237840,automobile\n237841,cat\n237842,truck\n237843,truck\n237844,bird\n237845,deer\n237846,cat\n237847,dog\n237848,airplane\n237849,cat\n237850,cat\n237851,bird\n237852,horse\n237853,bird\n237854,frog\n237855,ship\n237856,bird\n237857,automobile\n237858,truck\n237859,horse\n237860,horse\n237861,bird\n237862,bird\n237863,deer\n237864,dog\n237865,truck\n237866,airplane\n237867,deer\n237868,horse\n237869,dog\n237870,automobile\n237871,frog\n237872,deer\n237873,deer\n237874,deer\n237875,dog\n237876,automobile\n237877,deer\n237878,deer\n237879,ship\n237880,dog\n237881,dog\n237882,cat\n237883,cat\n237884,ship\n237885,bird\n237886,ship\n237887,deer\n237888,dog\n237889,truck\n237890,bird\n237891,truck\n237892,automobile\n237893,dog\n237894,automobile\n237895,dog\n237896,horse\n237897,frog\n237898,cat\n237899,dog\n237900,deer\n237901,frog\n237902,airplane\n237903,automobile\n237904,bird\n237905,horse\n237906,horse\n237907,ship\n237908,bird\n237909,frog\n237910,automobile\n237911,cat\n237912,cat\n237913,automobile\n237914,deer\n237915,ship\n237916,deer\n237917,bird\n237918,cat\n237919,horse\n237920,airplane\n237921,dog\n237922,dog\n237923,airplane\n237924,cat\n237925,bird\n237926,cat\n237927,deer\n237928,automobile\n237929,airplane\n237930,horse\n237931,bird\n237932,airplane\n237933,automobile\n237934,horse\n237935,cat\n237936,bird\n237937,airplane\n237938,cat\n237939,deer\n237940,bird\n237941,airplane\n237942,airplane\n237943,ship\n237944,bird\n237945,frog\n237946,ship\n237947,automobile\n237948,truck\n237949,deer\n237950,deer\n237951,truck\n237952,ship\n237953,deer\n237954,bird\n237955,bird\n237956,deer\n237957,dog\n237958,ship\n237959,airplane\n237960,deer\n237961,automobile\n237962,frog\n237963,dog\n237964,dog\n237965,cat\n237966,airplane\n237967,frog\n237968,truck\n237969,frog\n237970,deer\n237971,cat\n237972,dog\n237973,cat\n237974,ship\n237975,cat\n237976,bird\n237977,deer\n237978,airplane\n237979,deer\n237980,truck\n237981,frog\n237982,dog\n237983,deer\n237984,cat\n237985,cat\n237986,horse\n237987,automobile\n237988,automobile\n237989,ship\n237990,frog\n237991,truck\n237992,horse\n237993,bird\n237994,automobile\n237995,frog\n237996,frog\n237997,automobile\n237998,bird\n237999,airplane\n238000,horse\n238001,frog\n238002,truck\n238003,dog\n238004,dog\n238005,cat\n238006,cat\n238007,ship\n238008,deer\n238009,cat\n238010,ship\n238011,truck\n238012,ship\n238013,airplane\n238014,truck\n238015,deer\n238016,bird\n238017,horse\n238018,bird\n238019,airplane\n238020,ship\n238021,automobile\n238022,dog\n238023,bird\n238024,horse\n238025,airplane\n238026,bird\n238027,bird\n238028,bird\n238029,deer\n238030,automobile\n238031,ship\n238032,deer\n238033,airplane\n238034,cat\n238035,ship\n238036,ship\n238037,horse\n238038,frog\n238039,deer\n238040,dog\n238041,bird\n238042,truck\n238043,deer\n238044,automobile\n238045,deer\n238046,dog\n238047,bird\n238048,automobile\n238049,horse\n238050,frog\n238051,truck\n238052,horse\n238053,airplane\n238054,automobile\n238055,deer\n238056,automobile\n238057,deer\n238058,cat\n238059,dog\n238060,dog\n238061,dog\n238062,frog\n238063,horse\n238064,horse\n238065,cat\n238066,bird\n238067,deer\n238068,bird\n238069,automobile\n238070,dog\n238071,horse\n238072,airplane\n238073,ship\n238074,horse\n238075,horse\n238076,automobile\n238077,cat\n238078,deer\n238079,frog\n238080,bird\n238081,cat\n238082,truck\n238083,deer\n238084,cat\n238085,airplane\n238086,deer\n238087,horse\n238088,cat\n238089,automobile\n238090,automobile\n238091,bird\n238092,automobile\n238093,horse\n238094,cat\n238095,truck\n238096,automobile\n238097,airplane\n238098,airplane\n238099,truck\n238100,airplane\n238101,frog\n238102,ship\n238103,deer\n238104,airplane\n238105,dog\n238106,dog\n238107,ship\n238108,airplane\n238109,ship\n238110,horse\n238111,airplane\n238112,deer\n238113,dog\n238114,deer\n238115,automobile\n238116,horse\n238117,deer\n238118,deer\n238119,cat\n238120,horse\n238121,deer\n238122,automobile\n238123,ship\n238124,dog\n238125,truck\n238126,cat\n238127,horse\n238128,bird\n238129,deer\n238130,dog\n238131,ship\n238132,cat\n238133,bird\n238134,bird\n238135,deer\n238136,airplane\n238137,cat\n238138,deer\n238139,automobile\n238140,airplane\n238141,bird\n238142,cat\n238143,dog\n238144,ship\n238145,airplane\n238146,deer\n238147,deer\n238148,cat\n238149,bird\n238150,frog\n238151,dog\n238152,truck\n238153,deer\n238154,bird\n238155,horse\n238156,cat\n238157,frog\n238158,dog\n238159,cat\n238160,dog\n238161,cat\n238162,horse\n238163,cat\n238164,bird\n238165,automobile\n238166,deer\n238167,deer\n238168,truck\n238169,ship\n238170,ship\n238171,airplane\n238172,ship\n238173,truck\n238174,truck\n238175,cat\n238176,frog\n238177,frog\n238178,truck\n238179,cat\n238180,bird\n238181,deer\n238182,cat\n238183,dog\n238184,cat\n238185,frog\n238186,ship\n238187,horse\n238188,bird\n238189,ship\n238190,truck\n238191,bird\n238192,airplane\n238193,truck\n238194,ship\n238195,truck\n238196,airplane\n238197,horse\n238198,bird\n238199,bird\n238200,bird\n238201,airplane\n238202,horse\n238203,dog\n238204,deer\n238205,horse\n238206,dog\n238207,cat\n238208,truck\n238209,cat\n238210,horse\n238211,ship\n238212,deer\n238213,truck\n238214,bird\n238215,deer\n238216,dog\n238217,deer\n238218,deer\n238219,truck\n238220,horse\n238221,frog\n238222,frog\n238223,automobile\n238224,deer\n238225,horse\n238226,truck\n238227,cat\n238228,automobile\n238229,frog\n238230,truck\n238231,deer\n238232,deer\n238233,frog\n238234,horse\n238235,deer\n238236,truck\n238237,dog\n238238,bird\n238239,truck\n238240,frog\n238241,ship\n238242,truck\n238243,bird\n238244,airplane\n238245,bird\n238246,dog\n238247,airplane\n238248,dog\n238249,truck\n238250,automobile\n238251,frog\n238252,cat\n238253,bird\n238254,dog\n238255,deer\n238256,airplane\n238257,airplane\n238258,frog\n238259,horse\n238260,cat\n238261,truck\n238262,airplane\n238263,automobile\n238264,truck\n238265,automobile\n238266,horse\n238267,ship\n238268,deer\n238269,automobile\n238270,ship\n238271,deer\n238272,cat\n238273,deer\n238274,cat\n238275,truck\n238276,deer\n238277,deer\n238278,cat\n238279,truck\n238280,deer\n238281,frog\n238282,frog\n238283,frog\n238284,bird\n238285,bird\n238286,frog\n238287,airplane\n238288,airplane\n238289,automobile\n238290,airplane\n238291,cat\n238292,cat\n238293,ship\n238294,bird\n238295,dog\n238296,horse\n238297,frog\n238298,deer\n238299,truck\n238300,frog\n238301,deer\n238302,deer\n238303,ship\n238304,dog\n238305,airplane\n238306,truck\n238307,truck\n238308,bird\n238309,horse\n238310,deer\n238311,frog\n238312,deer\n238313,cat\n238314,frog\n238315,cat\n238316,cat\n238317,ship\n238318,truck\n238319,dog\n238320,dog\n238321,bird\n238322,horse\n238323,bird\n238324,horse\n238325,dog\n238326,frog\n238327,automobile\n238328,cat\n238329,frog\n238330,bird\n238331,truck\n238332,deer\n238333,dog\n238334,cat\n238335,automobile\n238336,frog\n238337,deer\n238338,deer\n238339,frog\n238340,horse\n238341,frog\n238342,frog\n238343,truck\n238344,deer\n238345,ship\n238346,frog\n238347,dog\n238348,truck\n238349,horse\n238350,cat\n238351,airplane\n238352,bird\n238353,dog\n238354,ship\n238355,horse\n238356,bird\n238357,frog\n238358,airplane\n238359,horse\n238360,deer\n238361,dog\n238362,bird\n238363,dog\n238364,truck\n238365,horse\n238366,deer\n238367,horse\n238368,truck\n238369,cat\n238370,ship\n238371,truck\n238372,automobile\n238373,cat\n238374,airplane\n238375,automobile\n238376,cat\n238377,deer\n238378,bird\n238379,cat\n238380,ship\n238381,automobile\n238382,ship\n238383,cat\n238384,bird\n238385,truck\n238386,cat\n238387,automobile\n238388,frog\n238389,horse\n238390,deer\n238391,frog\n238392,dog\n238393,frog\n238394,deer\n238395,bird\n238396,deer\n238397,airplane\n238398,airplane\n238399,bird\n238400,horse\n238401,horse\n238402,truck\n238403,truck\n238404,truck\n238405,deer\n238406,cat\n238407,truck\n238408,deer\n238409,dog\n238410,truck\n238411,dog\n238412,dog\n238413,cat\n238414,cat\n238415,cat\n238416,deer\n238417,truck\n238418,airplane\n238419,cat\n238420,airplane\n238421,horse\n238422,bird\n238423,ship\n238424,dog\n238425,airplane\n238426,horse\n238427,frog\n238428,horse\n238429,airplane\n238430,cat\n238431,dog\n238432,airplane\n238433,automobile\n238434,airplane\n238435,dog\n238436,bird\n238437,horse\n238438,cat\n238439,automobile\n238440,automobile\n238441,horse\n238442,automobile\n238443,automobile\n238444,ship\n238445,ship\n238446,bird\n238447,horse\n238448,ship\n238449,deer\n238450,truck\n238451,horse\n238452,horse\n238453,horse\n238454,horse\n238455,bird\n238456,dog\n238457,ship\n238458,dog\n238459,deer\n238460,automobile\n238461,cat\n238462,deer\n238463,frog\n238464,horse\n238465,airplane\n238466,airplane\n238467,horse\n238468,dog\n238469,bird\n238470,ship\n238471,deer\n238472,ship\n238473,deer\n238474,dog\n238475,cat\n238476,airplane\n238477,cat\n238478,airplane\n238479,ship\n238480,automobile\n238481,airplane\n238482,automobile\n238483,ship\n238484,ship\n238485,frog\n238486,ship\n238487,automobile\n238488,bird\n238489,frog\n238490,airplane\n238491,frog\n238492,horse\n238493,ship\n238494,cat\n238495,deer\n238496,airplane\n238497,airplane\n238498,automobile\n238499,airplane\n238500,cat\n238501,truck\n238502,airplane\n238503,bird\n238504,horse\n238505,cat\n238506,frog\n238507,horse\n238508,cat\n238509,frog\n238510,truck\n238511,truck\n238512,ship\n238513,deer\n238514,deer\n238515,automobile\n238516,truck\n238517,deer\n238518,airplane\n238519,frog\n238520,deer\n238521,ship\n238522,frog\n238523,ship\n238524,cat\n238525,cat\n238526,automobile\n238527,truck\n238528,bird\n238529,deer\n238530,dog\n238531,deer\n238532,automobile\n238533,horse\n238534,bird\n238535,cat\n238536,frog\n238537,cat\n238538,airplane\n238539,truck\n238540,cat\n238541,deer\n238542,bird\n238543,bird\n238544,deer\n238545,dog\n238546,truck\n238547,dog\n238548,horse\n238549,horse\n238550,truck\n238551,dog\n238552,horse\n238553,ship\n238554,horse\n238555,horse\n238556,cat\n238557,frog\n238558,deer\n238559,ship\n238560,cat\n238561,bird\n238562,deer\n238563,truck\n238564,bird\n238565,bird\n238566,deer\n238567,ship\n238568,deer\n238569,truck\n238570,airplane\n238571,bird\n238572,deer\n238573,cat\n238574,cat\n238575,truck\n238576,dog\n238577,cat\n238578,frog\n238579,deer\n238580,truck\n238581,automobile\n238582,deer\n238583,frog\n238584,airplane\n238585,cat\n238586,cat\n238587,cat\n238588,truck\n238589,truck\n238590,truck\n238591,bird\n238592,deer\n238593,cat\n238594,bird\n238595,deer\n238596,deer\n238597,airplane\n238598,dog\n238599,truck\n238600,deer\n238601,dog\n238602,horse\n238603,deer\n238604,deer\n238605,frog\n238606,automobile\n238607,cat\n238608,horse\n238609,horse\n238610,frog\n238611,airplane\n238612,dog\n238613,ship\n238614,cat\n238615,deer\n238616,deer\n238617,horse\n238618,ship\n238619,horse\n238620,cat\n238621,deer\n238622,automobile\n238623,truck\n238624,ship\n238625,horse\n238626,automobile\n238627,deer\n238628,airplane\n238629,cat\n238630,automobile\n238631,frog\n238632,automobile\n238633,frog\n238634,cat\n238635,dog\n238636,frog\n238637,frog\n238638,cat\n238639,airplane\n238640,deer\n238641,deer\n238642,frog\n238643,cat\n238644,truck\n238645,ship\n238646,deer\n238647,airplane\n238648,truck\n238649,automobile\n238650,cat\n238651,deer\n238652,bird\n238653,cat\n238654,cat\n238655,deer\n238656,ship\n238657,truck\n238658,bird\n238659,cat\n238660,airplane\n238661,dog\n238662,airplane\n238663,horse\n238664,automobile\n238665,frog\n238666,horse\n238667,truck\n238668,frog\n238669,cat\n238670,dog\n238671,cat\n238672,horse\n238673,truck\n238674,ship\n238675,cat\n238676,deer\n238677,horse\n238678,truck\n238679,cat\n238680,frog\n238681,bird\n238682,cat\n238683,cat\n238684,deer\n238685,dog\n238686,dog\n238687,frog\n238688,dog\n238689,airplane\n238690,frog\n238691,cat\n238692,cat\n238693,automobile\n238694,cat\n238695,ship\n238696,airplane\n238697,dog\n238698,truck\n238699,horse\n238700,airplane\n238701,horse\n238702,frog\n238703,cat\n238704,frog\n238705,truck\n238706,automobile\n238707,dog\n238708,horse\n238709,ship\n238710,frog\n238711,frog\n238712,truck\n238713,airplane\n238714,deer\n238715,deer\n238716,cat\n238717,automobile\n238718,cat\n238719,dog\n238720,horse\n238721,cat\n238722,bird\n238723,truck\n238724,cat\n238725,cat\n238726,truck\n238727,airplane\n238728,cat\n238729,bird\n238730,airplane\n238731,bird\n238732,cat\n238733,bird\n238734,frog\n238735,cat\n238736,frog\n238737,truck\n238738,ship\n238739,deer\n238740,dog\n238741,automobile\n238742,dog\n238743,frog\n238744,cat\n238745,deer\n238746,frog\n238747,cat\n238748,deer\n238749,ship\n238750,airplane\n238751,bird\n238752,deer\n238753,frog\n238754,horse\n238755,frog\n238756,automobile\n238757,dog\n238758,dog\n238759,deer\n238760,horse\n238761,dog\n238762,bird\n238763,deer\n238764,ship\n238765,deer\n238766,truck\n238767,deer\n238768,cat\n238769,deer\n238770,automobile\n238771,automobile\n238772,frog\n238773,horse\n238774,dog\n238775,frog\n238776,airplane\n238777,airplane\n238778,frog\n238779,cat\n238780,automobile\n238781,dog\n238782,frog\n238783,deer\n238784,bird\n238785,deer\n238786,cat\n238787,cat\n238788,bird\n238789,ship\n238790,ship\n238791,frog\n238792,automobile\n238793,dog\n238794,ship\n238795,airplane\n238796,deer\n238797,automobile\n238798,automobile\n238799,frog\n238800,horse\n238801,automobile\n238802,dog\n238803,truck\n238804,dog\n238805,truck\n238806,horse\n238807,frog\n238808,frog\n238809,horse\n238810,frog\n238811,airplane\n238812,horse\n238813,automobile\n238814,frog\n238815,ship\n238816,deer\n238817,dog\n238818,horse\n238819,horse\n238820,dog\n238821,deer\n238822,ship\n238823,dog\n238824,deer\n238825,ship\n238826,airplane\n238827,dog\n238828,frog\n238829,ship\n238830,deer\n238831,deer\n238832,automobile\n238833,cat\n238834,cat\n238835,cat\n238836,cat\n238837,ship\n238838,truck\n238839,horse\n238840,airplane\n238841,bird\n238842,dog\n238843,automobile\n238844,deer\n238845,horse\n238846,truck\n238847,frog\n238848,truck\n238849,horse\n238850,cat\n238851,frog\n238852,horse\n238853,bird\n238854,cat\n238855,truck\n238856,truck\n238857,horse\n238858,automobile\n238859,deer\n238860,deer\n238861,cat\n238862,horse\n238863,cat\n238864,truck\n238865,cat\n238866,ship\n238867,truck\n238868,dog\n238869,deer\n238870,ship\n238871,ship\n238872,airplane\n238873,bird\n238874,ship\n238875,frog\n238876,airplane\n238877,truck\n238878,automobile\n238879,automobile\n238880,dog\n238881,cat\n238882,cat\n238883,deer\n238884,cat\n238885,deer\n238886,bird\n238887,airplane\n238888,dog\n238889,bird\n238890,cat\n238891,bird\n238892,horse\n238893,cat\n238894,horse\n238895,ship\n238896,truck\n238897,ship\n238898,cat\n238899,truck\n238900,automobile\n238901,horse\n238902,cat\n238903,dog\n238904,bird\n238905,dog\n238906,dog\n238907,ship\n238908,horse\n238909,truck\n238910,deer\n238911,deer\n238912,ship\n238913,deer\n238914,deer\n238915,cat\n238916,dog\n238917,horse\n238918,frog\n238919,automobile\n238920,deer\n238921,deer\n238922,cat\n238923,truck\n238924,ship\n238925,truck\n238926,horse\n238927,bird\n238928,truck\n238929,truck\n238930,airplane\n238931,airplane\n238932,dog\n238933,deer\n238934,dog\n238935,frog\n238936,automobile\n238937,bird\n238938,deer\n238939,frog\n238940,bird\n238941,truck\n238942,automobile\n238943,airplane\n238944,frog\n238945,ship\n238946,dog\n238947,truck\n238948,cat\n238949,deer\n238950,truck\n238951,airplane\n238952,deer\n238953,deer\n238954,frog\n238955,frog\n238956,truck\n238957,cat\n238958,deer\n238959,frog\n238960,frog\n238961,cat\n238962,truck\n238963,ship\n238964,cat\n238965,truck\n238966,deer\n238967,horse\n238968,bird\n238969,deer\n238970,truck\n238971,horse\n238972,horse\n238973,frog\n238974,dog\n238975,truck\n238976,deer\n238977,frog\n238978,automobile\n238979,dog\n238980,deer\n238981,dog\n238982,deer\n238983,ship\n238984,dog\n238985,cat\n238986,deer\n238987,ship\n238988,frog\n238989,horse\n238990,cat\n238991,bird\n238992,bird\n238993,airplane\n238994,cat\n238995,frog\n238996,cat\n238997,cat\n238998,automobile\n238999,ship\n239000,cat\n239001,deer\n239002,truck\n239003,dog\n239004,truck\n239005,horse\n239006,ship\n239007,ship\n239008,cat\n239009,truck\n239010,horse\n239011,truck\n239012,cat\n239013,frog\n239014,deer\n239015,airplane\n239016,truck\n239017,cat\n239018,ship\n239019,frog\n239020,cat\n239021,bird\n239022,automobile\n239023,dog\n239024,ship\n239025,frog\n239026,horse\n239027,automobile\n239028,automobile\n239029,cat\n239030,cat\n239031,cat\n239032,truck\n239033,automobile\n239034,ship\n239035,deer\n239036,deer\n239037,dog\n239038,cat\n239039,automobile\n239040,cat\n239041,cat\n239042,airplane\n239043,automobile\n239044,ship\n239045,frog\n239046,horse\n239047,ship\n239048,truck\n239049,deer\n239050,airplane\n239051,cat\n239052,ship\n239053,airplane\n239054,frog\n239055,cat\n239056,cat\n239057,airplane\n239058,deer\n239059,cat\n239060,truck\n239061,cat\n239062,cat\n239063,bird\n239064,airplane\n239065,horse\n239066,ship\n239067,bird\n239068,dog\n239069,deer\n239070,cat\n239071,airplane\n239072,horse\n239073,horse\n239074,frog\n239075,truck\n239076,automobile\n239077,deer\n239078,bird\n239079,automobile\n239080,bird\n239081,bird\n239082,horse\n239083,airplane\n239084,horse\n239085,deer\n239086,dog\n239087,horse\n239088,truck\n239089,dog\n239090,airplane\n239091,bird\n239092,bird\n239093,cat\n239094,truck\n239095,deer\n239096,automobile\n239097,truck\n239098,frog\n239099,horse\n239100,cat\n239101,frog\n239102,frog\n239103,horse\n239104,cat\n239105,cat\n239106,horse\n239107,automobile\n239108,truck\n239109,deer\n239110,bird\n239111,horse\n239112,dog\n239113,frog\n239114,deer\n239115,ship\n239116,airplane\n239117,deer\n239118,bird\n239119,truck\n239120,dog\n239121,dog\n239122,cat\n239123,bird\n239124,dog\n239125,frog\n239126,airplane\n239127,deer\n239128,airplane\n239129,frog\n239130,bird\n239131,bird\n239132,truck\n239133,airplane\n239134,deer\n239135,automobile\n239136,automobile\n239137,dog\n239138,cat\n239139,deer\n239140,bird\n239141,airplane\n239142,dog\n239143,truck\n239144,ship\n239145,ship\n239146,truck\n239147,horse\n239148,bird\n239149,airplane\n239150,horse\n239151,frog\n239152,cat\n239153,dog\n239154,automobile\n239155,frog\n239156,dog\n239157,frog\n239158,airplane\n239159,frog\n239160,automobile\n239161,cat\n239162,automobile\n239163,cat\n239164,deer\n239165,airplane\n239166,bird\n239167,frog\n239168,ship\n239169,horse\n239170,frog\n239171,cat\n239172,frog\n239173,horse\n239174,frog\n239175,frog\n239176,automobile\n239177,automobile\n239178,bird\n239179,cat\n239180,ship\n239181,deer\n239182,deer\n239183,ship\n239184,cat\n239185,dog\n239186,frog\n239187,frog\n239188,bird\n239189,dog\n239190,bird\n239191,automobile\n239192,frog\n239193,frog\n239194,bird\n239195,truck\n239196,dog\n239197,ship\n239198,cat\n239199,cat\n239200,frog\n239201,airplane\n239202,dog\n239203,ship\n239204,ship\n239205,ship\n239206,deer\n239207,airplane\n239208,frog\n239209,ship\n239210,dog\n239211,cat\n239212,deer\n239213,bird\n239214,deer\n239215,truck\n239216,dog\n239217,frog\n239218,deer\n239219,deer\n239220,bird\n239221,cat\n239222,horse\n239223,horse\n239224,truck\n239225,ship\n239226,bird\n239227,frog\n239228,bird\n239229,frog\n239230,bird\n239231,dog\n239232,horse\n239233,deer\n239234,ship\n239235,airplane\n239236,horse\n239237,frog\n239238,cat\n239239,truck\n239240,cat\n239241,deer\n239242,deer\n239243,deer\n239244,horse\n239245,deer\n239246,deer\n239247,bird\n239248,cat\n239249,ship\n239250,automobile\n239251,horse\n239252,automobile\n239253,dog\n239254,deer\n239255,bird\n239256,truck\n239257,cat\n239258,cat\n239259,dog\n239260,airplane\n239261,dog\n239262,frog\n239263,dog\n239264,cat\n239265,airplane\n239266,deer\n239267,cat\n239268,automobile\n239269,cat\n239270,horse\n239271,ship\n239272,truck\n239273,frog\n239274,bird\n239275,horse\n239276,ship\n239277,bird\n239278,cat\n239279,cat\n239280,horse\n239281,deer\n239282,horse\n239283,deer\n239284,automobile\n239285,airplane\n239286,cat\n239287,dog\n239288,horse\n239289,airplane\n239290,horse\n239291,truck\n239292,truck\n239293,cat\n239294,deer\n239295,horse\n239296,deer\n239297,truck\n239298,frog\n239299,automobile\n239300,horse\n239301,truck\n239302,airplane\n239303,horse\n239304,frog\n239305,cat\n239306,cat\n239307,bird\n239308,cat\n239309,frog\n239310,horse\n239311,automobile\n239312,bird\n239313,automobile\n239314,truck\n239315,deer\n239316,frog\n239317,dog\n239318,bird\n239319,horse\n239320,horse\n239321,airplane\n239322,cat\n239323,frog\n239324,horse\n239325,deer\n239326,cat\n239327,bird\n239328,ship\n239329,deer\n239330,horse\n239331,frog\n239332,deer\n239333,ship\n239334,cat\n239335,deer\n239336,airplane\n239337,frog\n239338,horse\n239339,horse\n239340,frog\n239341,cat\n239342,deer\n239343,frog\n239344,dog\n239345,horse\n239346,cat\n239347,ship\n239348,deer\n239349,dog\n239350,airplane\n239351,frog\n239352,airplane\n239353,cat\n239354,cat\n239355,frog\n239356,ship\n239357,horse\n239358,truck\n239359,cat\n239360,cat\n239361,cat\n239362,dog\n239363,bird\n239364,dog\n239365,deer\n239366,bird\n239367,frog\n239368,bird\n239369,dog\n239370,ship\n239371,bird\n239372,bird\n239373,ship\n239374,horse\n239375,bird\n239376,ship\n239377,ship\n239378,deer\n239379,automobile\n239380,horse\n239381,frog\n239382,truck\n239383,bird\n239384,automobile\n239385,ship\n239386,frog\n239387,truck\n239388,deer\n239389,automobile\n239390,automobile\n239391,automobile\n239392,deer\n239393,ship\n239394,airplane\n239395,airplane\n239396,dog\n239397,horse\n239398,deer\n239399,truck\n239400,ship\n239401,cat\n239402,cat\n239403,bird\n239404,cat\n239405,dog\n239406,horse\n239407,bird\n239408,ship\n239409,horse\n239410,horse\n239411,airplane\n239412,dog\n239413,ship\n239414,automobile\n239415,frog\n239416,airplane\n239417,frog\n239418,horse\n239419,frog\n239420,dog\n239421,automobile\n239422,bird\n239423,cat\n239424,deer\n239425,dog\n239426,truck\n239427,bird\n239428,truck\n239429,airplane\n239430,cat\n239431,bird\n239432,horse\n239433,frog\n239434,deer\n239435,truck\n239436,cat\n239437,airplane\n239438,bird\n239439,frog\n239440,horse\n239441,dog\n239442,airplane\n239443,deer\n239444,dog\n239445,horse\n239446,dog\n239447,deer\n239448,truck\n239449,airplane\n239450,cat\n239451,cat\n239452,cat\n239453,horse\n239454,airplane\n239455,cat\n239456,dog\n239457,airplane\n239458,airplane\n239459,cat\n239460,frog\n239461,automobile\n239462,bird\n239463,truck\n239464,bird\n239465,airplane\n239466,truck\n239467,cat\n239468,horse\n239469,ship\n239470,automobile\n239471,frog\n239472,deer\n239473,airplane\n239474,cat\n239475,deer\n239476,truck\n239477,airplane\n239478,deer\n239479,cat\n239480,dog\n239481,automobile\n239482,ship\n239483,deer\n239484,automobile\n239485,cat\n239486,cat\n239487,ship\n239488,cat\n239489,bird\n239490,dog\n239491,truck\n239492,frog\n239493,dog\n239494,truck\n239495,deer\n239496,frog\n239497,bird\n239498,frog\n239499,frog\n239500,deer\n239501,automobile\n239502,dog\n239503,deer\n239504,ship\n239505,truck\n239506,cat\n239507,truck\n239508,truck\n239509,deer\n239510,deer\n239511,truck\n239512,cat\n239513,deer\n239514,deer\n239515,dog\n239516,dog\n239517,automobile\n239518,airplane\n239519,frog\n239520,deer\n239521,airplane\n239522,horse\n239523,cat\n239524,automobile\n239525,cat\n239526,truck\n239527,cat\n239528,automobile\n239529,dog\n239530,cat\n239531,truck\n239532,horse\n239533,bird\n239534,cat\n239535,frog\n239536,horse\n239537,horse\n239538,ship\n239539,dog\n239540,deer\n239541,deer\n239542,frog\n239543,horse\n239544,dog\n239545,deer\n239546,deer\n239547,airplane\n239548,bird\n239549,frog\n239550,ship\n239551,cat\n239552,frog\n239553,truck\n239554,horse\n239555,horse\n239556,cat\n239557,deer\n239558,cat\n239559,ship\n239560,deer\n239561,bird\n239562,airplane\n239563,deer\n239564,deer\n239565,frog\n239566,deer\n239567,dog\n239568,dog\n239569,bird\n239570,deer\n239571,automobile\n239572,bird\n239573,dog\n239574,ship\n239575,truck\n239576,deer\n239577,horse\n239578,dog\n239579,dog\n239580,airplane\n239581,cat\n239582,truck\n239583,frog\n239584,dog\n239585,ship\n239586,horse\n239587,horse\n239588,bird\n239589,airplane\n239590,airplane\n239591,airplane\n239592,automobile\n239593,truck\n239594,horse\n239595,cat\n239596,ship\n239597,deer\n239598,deer\n239599,frog\n239600,ship\n239601,bird\n239602,cat\n239603,dog\n239604,horse\n239605,bird\n239606,ship\n239607,automobile\n239608,truck\n239609,truck\n239610,cat\n239611,dog\n239612,truck\n239613,deer\n239614,bird\n239615,airplane\n239616,frog\n239617,dog\n239618,bird\n239619,dog\n239620,truck\n239621,dog\n239622,deer\n239623,dog\n239624,airplane\n239625,deer\n239626,bird\n239627,truck\n239628,cat\n239629,airplane\n239630,automobile\n239631,ship\n239632,deer\n239633,deer\n239634,horse\n239635,ship\n239636,deer\n239637,frog\n239638,ship\n239639,frog\n239640,cat\n239641,horse\n239642,deer\n239643,deer\n239644,horse\n239645,bird\n239646,bird\n239647,airplane\n239648,dog\n239649,cat\n239650,bird\n239651,cat\n239652,dog\n239653,ship\n239654,ship\n239655,airplane\n239656,automobile\n239657,dog\n239658,cat\n239659,airplane\n239660,ship\n239661,truck\n239662,ship\n239663,deer\n239664,automobile\n239665,dog\n239666,bird\n239667,truck\n239668,bird\n239669,cat\n239670,ship\n239671,deer\n239672,bird\n239673,dog\n239674,bird\n239675,deer\n239676,automobile\n239677,frog\n239678,deer\n239679,frog\n239680,deer\n239681,deer\n239682,deer\n239683,cat\n239684,dog\n239685,cat\n239686,frog\n239687,cat\n239688,airplane\n239689,bird\n239690,ship\n239691,ship\n239692,frog\n239693,frog\n239694,ship\n239695,truck\n239696,bird\n239697,bird\n239698,frog\n239699,deer\n239700,cat\n239701,bird\n239702,horse\n239703,horse\n239704,ship\n239705,deer\n239706,cat\n239707,airplane\n239708,horse\n239709,horse\n239710,automobile\n239711,frog\n239712,deer\n239713,ship\n239714,cat\n239715,truck\n239716,truck\n239717,airplane\n239718,deer\n239719,ship\n239720,automobile\n239721,ship\n239722,cat\n239723,bird\n239724,ship\n239725,airplane\n239726,ship\n239727,airplane\n239728,frog\n239729,frog\n239730,dog\n239731,automobile\n239732,frog\n239733,airplane\n239734,ship\n239735,horse\n239736,horse\n239737,truck\n239738,truck\n239739,cat\n239740,truck\n239741,cat\n239742,truck\n239743,deer\n239744,cat\n239745,truck\n239746,airplane\n239747,horse\n239748,deer\n239749,horse\n239750,airplane\n239751,ship\n239752,ship\n239753,cat\n239754,ship\n239755,bird\n239756,deer\n239757,airplane\n239758,bird\n239759,ship\n239760,horse\n239761,deer\n239762,automobile\n239763,horse\n239764,automobile\n239765,deer\n239766,dog\n239767,frog\n239768,truck\n239769,dog\n239770,ship\n239771,truck\n239772,truck\n239773,airplane\n239774,deer\n239775,automobile\n239776,automobile\n239777,deer\n239778,frog\n239779,truck\n239780,horse\n239781,horse\n239782,deer\n239783,dog\n239784,truck\n239785,ship\n239786,dog\n239787,ship\n239788,automobile\n239789,airplane\n239790,automobile\n239791,truck\n239792,ship\n239793,dog\n239794,airplane\n239795,automobile\n239796,cat\n239797,cat\n239798,cat\n239799,cat\n239800,truck\n239801,frog\n239802,bird\n239803,automobile\n239804,airplane\n239805,deer\n239806,deer\n239807,cat\n239808,bird\n239809,airplane\n239810,cat\n239811,horse\n239812,cat\n239813,cat\n239814,truck\n239815,automobile\n239816,frog\n239817,horse\n239818,cat\n239819,truck\n239820,horse\n239821,bird\n239822,horse\n239823,deer\n239824,horse\n239825,bird\n239826,ship\n239827,cat\n239828,frog\n239829,bird\n239830,truck\n239831,deer\n239832,deer\n239833,bird\n239834,horse\n239835,ship\n239836,airplane\n239837,ship\n239838,bird\n239839,ship\n239840,ship\n239841,bird\n239842,ship\n239843,frog\n239844,bird\n239845,dog\n239846,bird\n239847,truck\n239848,dog\n239849,ship\n239850,bird\n239851,horse\n239852,dog\n239853,frog\n239854,truck\n239855,truck\n239856,cat\n239857,frog\n239858,ship\n239859,horse\n239860,frog\n239861,bird\n239862,frog\n239863,dog\n239864,deer\n239865,cat\n239866,horse\n239867,ship\n239868,cat\n239869,automobile\n239870,cat\n239871,dog\n239872,horse\n239873,bird\n239874,airplane\n239875,truck\n239876,truck\n239877,deer\n239878,truck\n239879,truck\n239880,dog\n239881,horse\n239882,deer\n239883,automobile\n239884,bird\n239885,deer\n239886,bird\n239887,horse\n239888,automobile\n239889,frog\n239890,horse\n239891,bird\n239892,automobile\n239893,horse\n239894,deer\n239895,deer\n239896,horse\n239897,cat\n239898,bird\n239899,airplane\n239900,truck\n239901,automobile\n239902,deer\n239903,cat\n239904,automobile\n239905,cat\n239906,deer\n239907,airplane\n239908,deer\n239909,horse\n239910,frog\n239911,dog\n239912,dog\n239913,frog\n239914,deer\n239915,airplane\n239916,frog\n239917,frog\n239918,horse\n239919,automobile\n239920,cat\n239921,dog\n239922,horse\n239923,cat\n239924,deer\n239925,airplane\n239926,frog\n239927,horse\n239928,truck\n239929,cat\n239930,airplane\n239931,ship\n239932,dog\n239933,bird\n239934,horse\n239935,horse\n239936,cat\n239937,deer\n239938,dog\n239939,dog\n239940,deer\n239941,ship\n239942,truck\n239943,frog\n239944,horse\n239945,truck\n239946,automobile\n239947,ship\n239948,airplane\n239949,cat\n239950,cat\n239951,automobile\n239952,frog\n239953,frog\n239954,deer\n239955,cat\n239956,airplane\n239957,horse\n239958,deer\n239959,deer\n239960,frog\n239961,cat\n239962,airplane\n239963,truck\n239964,cat\n239965,cat\n239966,deer\n239967,bird\n239968,ship\n239969,automobile\n239970,bird\n239971,truck\n239972,horse\n239973,truck\n239974,horse\n239975,dog\n239976,deer\n239977,bird\n239978,dog\n239979,dog\n239980,bird\n239981,deer\n239982,horse\n239983,dog\n239984,cat\n239985,deer\n239986,truck\n239987,automobile\n239988,truck\n239989,bird\n239990,automobile\n239991,cat\n239992,bird\n239993,truck\n239994,automobile\n239995,truck\n239996,cat\n239997,deer\n239998,bird\n239999,dog\n240000,airplane\n240001,deer\n240002,horse\n240003,dog\n240004,deer\n240005,cat\n240006,ship\n240007,horse\n240008,truck\n240009,ship\n240010,dog\n240011,cat\n240012,deer\n240013,horse\n240014,cat\n240015,bird\n240016,bird\n240017,dog\n240018,truck\n240019,ship\n240020,bird\n240021,deer\n240022,automobile\n240023,truck\n240024,horse\n240025,airplane\n240026,frog\n240027,truck\n240028,deer\n240029,horse\n240030,airplane\n240031,bird\n240032,truck\n240033,automobile\n240034,deer\n240035,dog\n240036,cat\n240037,ship\n240038,truck\n240039,cat\n240040,truck\n240041,frog\n240042,frog\n240043,horse\n240044,deer\n240045,horse\n240046,dog\n240047,bird\n240048,dog\n240049,automobile\n240050,dog\n240051,ship\n240052,ship\n240053,horse\n240054,airplane\n240055,cat\n240056,dog\n240057,airplane\n240058,truck\n240059,deer\n240060,dog\n240061,dog\n240062,truck\n240063,cat\n240064,cat\n240065,ship\n240066,cat\n240067,cat\n240068,dog\n240069,truck\n240070,truck\n240071,deer\n240072,bird\n240073,airplane\n240074,dog\n240075,deer\n240076,dog\n240077,cat\n240078,automobile\n240079,truck\n240080,automobile\n240081,automobile\n240082,cat\n240083,frog\n240084,airplane\n240085,truck\n240086,deer\n240087,frog\n240088,ship\n240089,cat\n240090,airplane\n240091,ship\n240092,dog\n240093,ship\n240094,ship\n240095,cat\n240096,dog\n240097,automobile\n240098,horse\n240099,cat\n240100,deer\n240101,deer\n240102,cat\n240103,horse\n240104,deer\n240105,horse\n240106,cat\n240107,cat\n240108,horse\n240109,cat\n240110,ship\n240111,cat\n240112,horse\n240113,bird\n240114,horse\n240115,ship\n240116,frog\n240117,frog\n240118,airplane\n240119,horse\n240120,deer\n240121,airplane\n240122,cat\n240123,frog\n240124,dog\n240125,airplane\n240126,deer\n240127,bird\n240128,ship\n240129,airplane\n240130,bird\n240131,bird\n240132,horse\n240133,dog\n240134,cat\n240135,truck\n240136,cat\n240137,truck\n240138,horse\n240139,horse\n240140,frog\n240141,truck\n240142,airplane\n240143,deer\n240144,deer\n240145,horse\n240146,bird\n240147,horse\n240148,horse\n240149,dog\n240150,dog\n240151,frog\n240152,deer\n240153,horse\n240154,frog\n240155,cat\n240156,airplane\n240157,deer\n240158,bird\n240159,cat\n240160,dog\n240161,bird\n240162,deer\n240163,airplane\n240164,automobile\n240165,horse\n240166,airplane\n240167,frog\n240168,bird\n240169,frog\n240170,dog\n240171,automobile\n240172,dog\n240173,cat\n240174,truck\n240175,horse\n240176,frog\n240177,airplane\n240178,ship\n240179,airplane\n240180,deer\n240181,deer\n240182,airplane\n240183,automobile\n240184,truck\n240185,horse\n240186,frog\n240187,truck\n240188,airplane\n240189,dog\n240190,truck\n240191,frog\n240192,ship\n240193,dog\n240194,frog\n240195,deer\n240196,frog\n240197,deer\n240198,cat\n240199,frog\n240200,bird\n240201,deer\n240202,automobile\n240203,deer\n240204,dog\n240205,truck\n240206,deer\n240207,ship\n240208,horse\n240209,automobile\n240210,truck\n240211,horse\n240212,cat\n240213,automobile\n240214,ship\n240215,cat\n240216,frog\n240217,bird\n240218,deer\n240219,truck\n240220,bird\n240221,frog\n240222,frog\n240223,deer\n240224,deer\n240225,bird\n240226,horse\n240227,airplane\n240228,dog\n240229,truck\n240230,automobile\n240231,horse\n240232,cat\n240233,truck\n240234,dog\n240235,truck\n240236,airplane\n240237,ship\n240238,deer\n240239,frog\n240240,truck\n240241,cat\n240242,frog\n240243,ship\n240244,ship\n240245,automobile\n240246,horse\n240247,ship\n240248,dog\n240249,airplane\n240250,cat\n240251,truck\n240252,deer\n240253,cat\n240254,bird\n240255,frog\n240256,deer\n240257,dog\n240258,bird\n240259,frog\n240260,horse\n240261,cat\n240262,frog\n240263,frog\n240264,cat\n240265,automobile\n240266,cat\n240267,cat\n240268,deer\n240269,horse\n240270,frog\n240271,frog\n240272,truck\n240273,deer\n240274,cat\n240275,airplane\n240276,bird\n240277,frog\n240278,cat\n240279,deer\n240280,airplane\n240281,truck\n240282,frog\n240283,bird\n240284,frog\n240285,dog\n240286,automobile\n240287,ship\n240288,deer\n240289,ship\n240290,cat\n240291,deer\n240292,cat\n240293,dog\n240294,automobile\n240295,automobile\n240296,dog\n240297,dog\n240298,deer\n240299,frog\n240300,automobile\n240301,ship\n240302,bird\n240303,bird\n240304,truck\n240305,airplane\n240306,frog\n240307,ship\n240308,ship\n240309,truck\n240310,dog\n240311,dog\n240312,automobile\n240313,deer\n240314,dog\n240315,truck\n240316,horse\n240317,deer\n240318,airplane\n240319,cat\n240320,automobile\n240321,truck\n240322,ship\n240323,horse\n240324,bird\n240325,truck\n240326,deer\n240327,deer\n240328,automobile\n240329,bird\n240330,automobile\n240331,ship\n240332,frog\n240333,deer\n240334,dog\n240335,horse\n240336,frog\n240337,airplane\n240338,bird\n240339,truck\n240340,truck\n240341,bird\n240342,cat\n240343,frog\n240344,ship\n240345,cat\n240346,deer\n240347,truck\n240348,ship\n240349,ship\n240350,deer\n240351,frog\n240352,dog\n240353,horse\n240354,truck\n240355,cat\n240356,truck\n240357,bird\n240358,horse\n240359,cat\n240360,cat\n240361,automobile\n240362,truck\n240363,cat\n240364,frog\n240365,automobile\n240366,frog\n240367,horse\n240368,cat\n240369,deer\n240370,truck\n240371,cat\n240372,deer\n240373,truck\n240374,bird\n240375,dog\n240376,cat\n240377,automobile\n240378,cat\n240379,deer\n240380,bird\n240381,cat\n240382,automobile\n240383,dog\n240384,cat\n240385,frog\n240386,bird\n240387,dog\n240388,truck\n240389,truck\n240390,frog\n240391,automobile\n240392,deer\n240393,truck\n240394,deer\n240395,airplane\n240396,frog\n240397,ship\n240398,truck\n240399,dog\n240400,horse\n240401,horse\n240402,dog\n240403,automobile\n240404,dog\n240405,dog\n240406,cat\n240407,ship\n240408,truck\n240409,bird\n240410,frog\n240411,cat\n240412,cat\n240413,airplane\n240414,deer\n240415,bird\n240416,deer\n240417,dog\n240418,truck\n240419,automobile\n240420,frog\n240421,dog\n240422,deer\n240423,cat\n240424,airplane\n240425,automobile\n240426,bird\n240427,frog\n240428,deer\n240429,ship\n240430,horse\n240431,cat\n240432,ship\n240433,frog\n240434,ship\n240435,frog\n240436,frog\n240437,bird\n240438,deer\n240439,cat\n240440,cat\n240441,bird\n240442,bird\n240443,automobile\n240444,ship\n240445,cat\n240446,dog\n240447,truck\n240448,deer\n240449,automobile\n240450,airplane\n240451,dog\n240452,frog\n240453,horse\n240454,horse\n240455,automobile\n240456,automobile\n240457,frog\n240458,cat\n240459,truck\n240460,automobile\n240461,deer\n240462,deer\n240463,bird\n240464,deer\n240465,deer\n240466,deer\n240467,ship\n240468,dog\n240469,deer\n240470,horse\n240471,bird\n240472,frog\n240473,frog\n240474,deer\n240475,automobile\n240476,airplane\n240477,horse\n240478,truck\n240479,deer\n240480,bird\n240481,horse\n240482,frog\n240483,deer\n240484,frog\n240485,horse\n240486,airplane\n240487,dog\n240488,dog\n240489,truck\n240490,automobile\n240491,dog\n240492,bird\n240493,airplane\n240494,dog\n240495,cat\n240496,dog\n240497,airplane\n240498,dog\n240499,cat\n240500,cat\n240501,bird\n240502,deer\n240503,truck\n240504,frog\n240505,automobile\n240506,cat\n240507,cat\n240508,truck\n240509,dog\n240510,bird\n240511,automobile\n240512,airplane\n240513,deer\n240514,horse\n240515,horse\n240516,deer\n240517,automobile\n240518,truck\n240519,automobile\n240520,automobile\n240521,automobile\n240522,deer\n240523,frog\n240524,dog\n240525,dog\n240526,dog\n240527,cat\n240528,airplane\n240529,deer\n240530,horse\n240531,bird\n240532,airplane\n240533,cat\n240534,frog\n240535,airplane\n240536,bird\n240537,frog\n240538,deer\n240539,ship\n240540,dog\n240541,automobile\n240542,frog\n240543,deer\n240544,airplane\n240545,cat\n240546,airplane\n240547,bird\n240548,truck\n240549,cat\n240550,airplane\n240551,deer\n240552,airplane\n240553,ship\n240554,deer\n240555,truck\n240556,dog\n240557,deer\n240558,truck\n240559,bird\n240560,ship\n240561,frog\n240562,automobile\n240563,deer\n240564,horse\n240565,dog\n240566,bird\n240567,airplane\n240568,frog\n240569,airplane\n240570,deer\n240571,airplane\n240572,horse\n240573,ship\n240574,deer\n240575,truck\n240576,frog\n240577,cat\n240578,horse\n240579,deer\n240580,automobile\n240581,bird\n240582,deer\n240583,automobile\n240584,deer\n240585,deer\n240586,bird\n240587,frog\n240588,horse\n240589,frog\n240590,ship\n240591,truck\n240592,deer\n240593,cat\n240594,ship\n240595,bird\n240596,dog\n240597,ship\n240598,cat\n240599,horse\n240600,frog\n240601,frog\n240602,truck\n240603,bird\n240604,automobile\n240605,bird\n240606,frog\n240607,airplane\n240608,truck\n240609,truck\n240610,horse\n240611,deer\n240612,dog\n240613,cat\n240614,automobile\n240615,bird\n240616,deer\n240617,cat\n240618,frog\n240619,airplane\n240620,automobile\n240621,truck\n240622,dog\n240623,horse\n240624,cat\n240625,horse\n240626,frog\n240627,horse\n240628,bird\n240629,deer\n240630,deer\n240631,cat\n240632,truck\n240633,ship\n240634,ship\n240635,deer\n240636,cat\n240637,cat\n240638,deer\n240639,dog\n240640,truck\n240641,airplane\n240642,deer\n240643,deer\n240644,cat\n240645,frog\n240646,deer\n240647,cat\n240648,deer\n240649,truck\n240650,truck\n240651,airplane\n240652,horse\n240653,cat\n240654,cat\n240655,automobile\n240656,dog\n240657,dog\n240658,ship\n240659,horse\n240660,ship\n240661,deer\n240662,ship\n240663,horse\n240664,frog\n240665,dog\n240666,airplane\n240667,horse\n240668,cat\n240669,cat\n240670,deer\n240671,airplane\n240672,deer\n240673,frog\n240674,cat\n240675,automobile\n240676,truck\n240677,dog\n240678,frog\n240679,deer\n240680,dog\n240681,truck\n240682,ship\n240683,deer\n240684,cat\n240685,dog\n240686,cat\n240687,frog\n240688,automobile\n240689,truck\n240690,cat\n240691,frog\n240692,bird\n240693,truck\n240694,bird\n240695,cat\n240696,horse\n240697,ship\n240698,deer\n240699,ship\n240700,cat\n240701,cat\n240702,deer\n240703,bird\n240704,bird\n240705,cat\n240706,horse\n240707,ship\n240708,frog\n240709,deer\n240710,bird\n240711,ship\n240712,airplane\n240713,ship\n240714,cat\n240715,dog\n240716,bird\n240717,cat\n240718,bird\n240719,horse\n240720,deer\n240721,truck\n240722,truck\n240723,bird\n240724,ship\n240725,frog\n240726,ship\n240727,truck\n240728,horse\n240729,deer\n240730,airplane\n240731,bird\n240732,airplane\n240733,frog\n240734,frog\n240735,ship\n240736,ship\n240737,frog\n240738,ship\n240739,airplane\n240740,dog\n240741,horse\n240742,horse\n240743,automobile\n240744,truck\n240745,deer\n240746,deer\n240747,deer\n240748,ship\n240749,airplane\n240750,airplane\n240751,deer\n240752,frog\n240753,airplane\n240754,horse\n240755,automobile\n240756,airplane\n240757,bird\n240758,deer\n240759,dog\n240760,deer\n240761,horse\n240762,frog\n240763,truck\n240764,automobile\n240765,frog\n240766,bird\n240767,horse\n240768,bird\n240769,deer\n240770,horse\n240771,cat\n240772,bird\n240773,frog\n240774,automobile\n240775,horse\n240776,cat\n240777,dog\n240778,automobile\n240779,automobile\n240780,frog\n240781,ship\n240782,automobile\n240783,frog\n240784,frog\n240785,horse\n240786,horse\n240787,dog\n240788,bird\n240789,cat\n240790,ship\n240791,ship\n240792,automobile\n240793,deer\n240794,automobile\n240795,frog\n240796,ship\n240797,airplane\n240798,truck\n240799,frog\n240800,frog\n240801,cat\n240802,deer\n240803,dog\n240804,automobile\n240805,airplane\n240806,truck\n240807,deer\n240808,frog\n240809,cat\n240810,airplane\n240811,frog\n240812,deer\n240813,frog\n240814,automobile\n240815,dog\n240816,ship\n240817,frog\n240818,cat\n240819,truck\n240820,horse\n240821,deer\n240822,dog\n240823,dog\n240824,deer\n240825,ship\n240826,dog\n240827,cat\n240828,cat\n240829,ship\n240830,truck\n240831,frog\n240832,horse\n240833,dog\n240834,horse\n240835,bird\n240836,bird\n240837,frog\n240838,cat\n240839,deer\n240840,deer\n240841,dog\n240842,horse\n240843,cat\n240844,cat\n240845,dog\n240846,airplane\n240847,frog\n240848,cat\n240849,bird\n240850,truck\n240851,ship\n240852,deer\n240853,airplane\n240854,airplane\n240855,automobile\n240856,truck\n240857,airplane\n240858,frog\n240859,ship\n240860,cat\n240861,horse\n240862,truck\n240863,bird\n240864,truck\n240865,dog\n240866,airplane\n240867,cat\n240868,truck\n240869,horse\n240870,dog\n240871,truck\n240872,dog\n240873,cat\n240874,airplane\n240875,dog\n240876,horse\n240877,frog\n240878,horse\n240879,deer\n240880,ship\n240881,horse\n240882,truck\n240883,horse\n240884,dog\n240885,truck\n240886,cat\n240887,frog\n240888,automobile\n240889,ship\n240890,deer\n240891,bird\n240892,airplane\n240893,airplane\n240894,frog\n240895,cat\n240896,bird\n240897,horse\n240898,truck\n240899,truck\n240900,cat\n240901,bird\n240902,truck\n240903,deer\n240904,deer\n240905,airplane\n240906,cat\n240907,frog\n240908,deer\n240909,deer\n240910,deer\n240911,dog\n240912,bird\n240913,automobile\n240914,ship\n240915,truck\n240916,cat\n240917,airplane\n240918,deer\n240919,cat\n240920,deer\n240921,horse\n240922,deer\n240923,airplane\n240924,horse\n240925,horse\n240926,truck\n240927,truck\n240928,horse\n240929,deer\n240930,horse\n240931,ship\n240932,horse\n240933,automobile\n240934,deer\n240935,bird\n240936,horse\n240937,truck\n240938,horse\n240939,airplane\n240940,automobile\n240941,truck\n240942,deer\n240943,deer\n240944,frog\n240945,ship\n240946,automobile\n240947,truck\n240948,dog\n240949,frog\n240950,frog\n240951,cat\n240952,automobile\n240953,horse\n240954,frog\n240955,cat\n240956,deer\n240957,automobile\n240958,frog\n240959,deer\n240960,horse\n240961,deer\n240962,automobile\n240963,airplane\n240964,bird\n240965,truck\n240966,deer\n240967,truck\n240968,dog\n240969,truck\n240970,automobile\n240971,airplane\n240972,cat\n240973,automobile\n240974,frog\n240975,dog\n240976,ship\n240977,horse\n240978,automobile\n240979,horse\n240980,automobile\n240981,deer\n240982,truck\n240983,dog\n240984,deer\n240985,bird\n240986,frog\n240987,deer\n240988,horse\n240989,bird\n240990,horse\n240991,deer\n240992,horse\n240993,airplane\n240994,cat\n240995,deer\n240996,ship\n240997,horse\n240998,deer\n240999,automobile\n241000,automobile\n241001,horse\n241002,deer\n241003,automobile\n241004,deer\n241005,deer\n241006,truck\n241007,frog\n241008,airplane\n241009,horse\n241010,cat\n241011,airplane\n241012,automobile\n241013,ship\n241014,ship\n241015,dog\n241016,ship\n241017,cat\n241018,airplane\n241019,dog\n241020,airplane\n241021,horse\n241022,cat\n241023,truck\n241024,frog\n241025,bird\n241026,truck\n241027,cat\n241028,truck\n241029,ship\n241030,horse\n241031,cat\n241032,deer\n241033,deer\n241034,cat\n241035,airplane\n241036,deer\n241037,truck\n241038,deer\n241039,deer\n241040,cat\n241041,ship\n241042,cat\n241043,bird\n241044,horse\n241045,frog\n241046,ship\n241047,automobile\n241048,bird\n241049,cat\n241050,airplane\n241051,frog\n241052,horse\n241053,truck\n241054,airplane\n241055,automobile\n241056,cat\n241057,cat\n241058,cat\n241059,ship\n241060,frog\n241061,bird\n241062,ship\n241063,horse\n241064,frog\n241065,frog\n241066,dog\n241067,automobile\n241068,bird\n241069,automobile\n241070,automobile\n241071,frog\n241072,bird\n241073,frog\n241074,deer\n241075,automobile\n241076,airplane\n241077,deer\n241078,bird\n241079,cat\n241080,truck\n241081,ship\n241082,dog\n241083,airplane\n241084,frog\n241085,dog\n241086,automobile\n241087,horse\n241088,cat\n241089,ship\n241090,ship\n241091,ship\n241092,bird\n241093,deer\n241094,cat\n241095,airplane\n241096,cat\n241097,bird\n241098,deer\n241099,dog\n241100,dog\n241101,truck\n241102,automobile\n241103,horse\n241104,frog\n241105,bird\n241106,deer\n241107,deer\n241108,bird\n241109,dog\n241110,ship\n241111,frog\n241112,deer\n241113,deer\n241114,dog\n241115,dog\n241116,deer\n241117,automobile\n241118,cat\n241119,frog\n241120,cat\n241121,ship\n241122,automobile\n241123,deer\n241124,cat\n241125,ship\n241126,automobile\n241127,deer\n241128,cat\n241129,cat\n241130,truck\n241131,bird\n241132,truck\n241133,truck\n241134,deer\n241135,bird\n241136,airplane\n241137,deer\n241138,bird\n241139,cat\n241140,cat\n241141,truck\n241142,frog\n241143,bird\n241144,airplane\n241145,dog\n241146,deer\n241147,dog\n241148,automobile\n241149,cat\n241150,automobile\n241151,frog\n241152,deer\n241153,airplane\n241154,truck\n241155,truck\n241156,cat\n241157,bird\n241158,deer\n241159,truck\n241160,dog\n241161,airplane\n241162,ship\n241163,airplane\n241164,dog\n241165,horse\n241166,horse\n241167,bird\n241168,truck\n241169,horse\n241170,dog\n241171,horse\n241172,truck\n241173,dog\n241174,frog\n241175,ship\n241176,deer\n241177,airplane\n241178,horse\n241179,bird\n241180,cat\n241181,cat\n241182,deer\n241183,dog\n241184,truck\n241185,cat\n241186,bird\n241187,truck\n241188,deer\n241189,dog\n241190,frog\n241191,frog\n241192,horse\n241193,cat\n241194,bird\n241195,dog\n241196,frog\n241197,dog\n241198,airplane\n241199,automobile\n241200,horse\n241201,deer\n241202,airplane\n241203,frog\n241204,frog\n241205,truck\n241206,truck\n241207,frog\n241208,ship\n241209,automobile\n241210,ship\n241211,frog\n241212,dog\n241213,dog\n241214,frog\n241215,bird\n241216,horse\n241217,airplane\n241218,automobile\n241219,frog\n241220,frog\n241221,airplane\n241222,cat\n241223,frog\n241224,deer\n241225,bird\n241226,horse\n241227,dog\n241228,dog\n241229,horse\n241230,frog\n241231,horse\n241232,dog\n241233,ship\n241234,ship\n241235,dog\n241236,deer\n241237,truck\n241238,truck\n241239,airplane\n241240,ship\n241241,horse\n241242,bird\n241243,dog\n241244,deer\n241245,cat\n241246,truck\n241247,airplane\n241248,horse\n241249,deer\n241250,horse\n241251,bird\n241252,airplane\n241253,truck\n241254,airplane\n241255,frog\n241256,deer\n241257,deer\n241258,horse\n241259,truck\n241260,truck\n241261,horse\n241262,truck\n241263,truck\n241264,cat\n241265,truck\n241266,ship\n241267,cat\n241268,deer\n241269,automobile\n241270,truck\n241271,truck\n241272,dog\n241273,horse\n241274,horse\n241275,cat\n241276,truck\n241277,truck\n241278,horse\n241279,truck\n241280,dog\n241281,frog\n241282,bird\n241283,frog\n241284,deer\n241285,cat\n241286,dog\n241287,frog\n241288,horse\n241289,bird\n241290,truck\n241291,deer\n241292,frog\n241293,cat\n241294,truck\n241295,cat\n241296,truck\n241297,dog\n241298,cat\n241299,automobile\n241300,cat\n241301,frog\n241302,cat\n241303,airplane\n241304,bird\n241305,deer\n241306,ship\n241307,frog\n241308,truck\n241309,automobile\n241310,truck\n241311,bird\n241312,deer\n241313,horse\n241314,automobile\n241315,horse\n241316,deer\n241317,frog\n241318,deer\n241319,dog\n241320,cat\n241321,frog\n241322,horse\n241323,ship\n241324,airplane\n241325,cat\n241326,ship\n241327,deer\n241328,frog\n241329,dog\n241330,frog\n241331,truck\n241332,truck\n241333,frog\n241334,truck\n241335,airplane\n241336,cat\n241337,dog\n241338,frog\n241339,dog\n241340,horse\n241341,frog\n241342,truck\n241343,truck\n241344,horse\n241345,truck\n241346,cat\n241347,deer\n241348,frog\n241349,truck\n241350,bird\n241351,automobile\n241352,bird\n241353,frog\n241354,cat\n241355,truck\n241356,cat\n241357,automobile\n241358,frog\n241359,frog\n241360,dog\n241361,deer\n241362,cat\n241363,deer\n241364,deer\n241365,bird\n241366,dog\n241367,cat\n241368,dog\n241369,deer\n241370,bird\n241371,truck\n241372,dog\n241373,horse\n241374,horse\n241375,horse\n241376,ship\n241377,frog\n241378,cat\n241379,ship\n241380,ship\n241381,airplane\n241382,cat\n241383,deer\n241384,deer\n241385,truck\n241386,truck\n241387,deer\n241388,dog\n241389,truck\n241390,bird\n241391,automobile\n241392,horse\n241393,airplane\n241394,dog\n241395,dog\n241396,frog\n241397,automobile\n241398,cat\n241399,truck\n241400,horse\n241401,truck\n241402,frog\n241403,dog\n241404,dog\n241405,truck\n241406,frog\n241407,airplane\n241408,truck\n241409,automobile\n241410,dog\n241411,airplane\n241412,ship\n241413,truck\n241414,dog\n241415,deer\n241416,airplane\n241417,airplane\n241418,bird\n241419,cat\n241420,airplane\n241421,frog\n241422,bird\n241423,deer\n241424,truck\n241425,airplane\n241426,frog\n241427,truck\n241428,horse\n241429,truck\n241430,dog\n241431,bird\n241432,horse\n241433,automobile\n241434,deer\n241435,deer\n241436,truck\n241437,dog\n241438,horse\n241439,deer\n241440,bird\n241441,bird\n241442,cat\n241443,ship\n241444,bird\n241445,airplane\n241446,horse\n241447,horse\n241448,cat\n241449,airplane\n241450,bird\n241451,ship\n241452,deer\n241453,horse\n241454,cat\n241455,cat\n241456,horse\n241457,horse\n241458,frog\n241459,deer\n241460,automobile\n241461,bird\n241462,cat\n241463,truck\n241464,horse\n241465,cat\n241466,bird\n241467,deer\n241468,airplane\n241469,dog\n241470,automobile\n241471,bird\n241472,ship\n241473,horse\n241474,deer\n241475,cat\n241476,cat\n241477,horse\n241478,dog\n241479,frog\n241480,frog\n241481,dog\n241482,airplane\n241483,horse\n241484,ship\n241485,truck\n241486,ship\n241487,horse\n241488,cat\n241489,truck\n241490,cat\n241491,ship\n241492,cat\n241493,horse\n241494,cat\n241495,horse\n241496,dog\n241497,cat\n241498,cat\n241499,horse\n241500,deer\n241501,cat\n241502,airplane\n241503,horse\n241504,truck\n241505,deer\n241506,bird\n241507,deer\n241508,deer\n241509,deer\n241510,horse\n241511,frog\n241512,cat\n241513,airplane\n241514,cat\n241515,deer\n241516,dog\n241517,truck\n241518,deer\n241519,horse\n241520,horse\n241521,horse\n241522,cat\n241523,bird\n241524,horse\n241525,bird\n241526,ship\n241527,truck\n241528,truck\n241529,dog\n241530,bird\n241531,cat\n241532,cat\n241533,dog\n241534,horse\n241535,frog\n241536,cat\n241537,automobile\n241538,bird\n241539,frog\n241540,automobile\n241541,deer\n241542,horse\n241543,automobile\n241544,deer\n241545,horse\n241546,airplane\n241547,horse\n241548,bird\n241549,truck\n241550,automobile\n241551,cat\n241552,dog\n241553,horse\n241554,horse\n241555,dog\n241556,dog\n241557,bird\n241558,bird\n241559,truck\n241560,airplane\n241561,ship\n241562,deer\n241563,airplane\n241564,truck\n241565,ship\n241566,horse\n241567,deer\n241568,airplane\n241569,deer\n241570,dog\n241571,airplane\n241572,frog\n241573,dog\n241574,dog\n241575,cat\n241576,horse\n241577,frog\n241578,airplane\n241579,dog\n241580,truck\n241581,horse\n241582,cat\n241583,airplane\n241584,bird\n241585,truck\n241586,ship\n241587,airplane\n241588,cat\n241589,deer\n241590,cat\n241591,frog\n241592,truck\n241593,ship\n241594,dog\n241595,truck\n241596,airplane\n241597,automobile\n241598,cat\n241599,dog\n241600,horse\n241601,ship\n241602,horse\n241603,frog\n241604,cat\n241605,truck\n241606,frog\n241607,airplane\n241608,automobile\n241609,deer\n241610,deer\n241611,airplane\n241612,horse\n241613,deer\n241614,dog\n241615,deer\n241616,cat\n241617,cat\n241618,cat\n241619,automobile\n241620,airplane\n241621,horse\n241622,cat\n241623,dog\n241624,frog\n241625,horse\n241626,deer\n241627,bird\n241628,bird\n241629,automobile\n241630,horse\n241631,truck\n241632,dog\n241633,horse\n241634,deer\n241635,airplane\n241636,airplane\n241637,horse\n241638,horse\n241639,horse\n241640,deer\n241641,frog\n241642,airplane\n241643,dog\n241644,cat\n241645,frog\n241646,frog\n241647,truck\n241648,frog\n241649,truck\n241650,bird\n241651,ship\n241652,automobile\n241653,cat\n241654,ship\n241655,cat\n241656,bird\n241657,cat\n241658,deer\n241659,dog\n241660,frog\n241661,deer\n241662,automobile\n241663,bird\n241664,cat\n241665,cat\n241666,deer\n241667,deer\n241668,horse\n241669,automobile\n241670,automobile\n241671,dog\n241672,horse\n241673,cat\n241674,automobile\n241675,deer\n241676,truck\n241677,cat\n241678,airplane\n241679,automobile\n241680,dog\n241681,airplane\n241682,deer\n241683,ship\n241684,frog\n241685,horse\n241686,ship\n241687,truck\n241688,deer\n241689,deer\n241690,frog\n241691,deer\n241692,cat\n241693,frog\n241694,ship\n241695,deer\n241696,frog\n241697,frog\n241698,horse\n241699,truck\n241700,frog\n241701,deer\n241702,bird\n241703,frog\n241704,frog\n241705,frog\n241706,airplane\n241707,dog\n241708,frog\n241709,deer\n241710,deer\n241711,bird\n241712,frog\n241713,bird\n241714,ship\n241715,airplane\n241716,dog\n241717,airplane\n241718,dog\n241719,airplane\n241720,automobile\n241721,ship\n241722,airplane\n241723,horse\n241724,ship\n241725,bird\n241726,bird\n241727,frog\n241728,airplane\n241729,deer\n241730,deer\n241731,truck\n241732,airplane\n241733,bird\n241734,truck\n241735,horse\n241736,truck\n241737,truck\n241738,cat\n241739,dog\n241740,automobile\n241741,deer\n241742,deer\n241743,horse\n241744,deer\n241745,automobile\n241746,truck\n241747,truck\n241748,dog\n241749,airplane\n241750,dog\n241751,ship\n241752,bird\n241753,bird\n241754,dog\n241755,automobile\n241756,truck\n241757,truck\n241758,ship\n241759,bird\n241760,automobile\n241761,truck\n241762,airplane\n241763,cat\n241764,frog\n241765,cat\n241766,frog\n241767,dog\n241768,dog\n241769,dog\n241770,bird\n241771,ship\n241772,truck\n241773,truck\n241774,ship\n241775,ship\n241776,horse\n241777,airplane\n241778,automobile\n241779,frog\n241780,dog\n241781,dog\n241782,ship\n241783,dog\n241784,horse\n241785,airplane\n241786,airplane\n241787,horse\n241788,horse\n241789,airplane\n241790,airplane\n241791,frog\n241792,automobile\n241793,dog\n241794,frog\n241795,cat\n241796,automobile\n241797,cat\n241798,frog\n241799,frog\n241800,deer\n241801,ship\n241802,ship\n241803,deer\n241804,truck\n241805,truck\n241806,deer\n241807,deer\n241808,truck\n241809,bird\n241810,frog\n241811,airplane\n241812,truck\n241813,automobile\n241814,truck\n241815,horse\n241816,bird\n241817,deer\n241818,dog\n241819,cat\n241820,frog\n241821,cat\n241822,horse\n241823,cat\n241824,airplane\n241825,deer\n241826,airplane\n241827,deer\n241828,cat\n241829,cat\n241830,dog\n241831,frog\n241832,deer\n241833,truck\n241834,frog\n241835,dog\n241836,truck\n241837,airplane\n241838,bird\n241839,airplane\n241840,frog\n241841,bird\n241842,cat\n241843,automobile\n241844,cat\n241845,cat\n241846,cat\n241847,horse\n241848,horse\n241849,frog\n241850,deer\n241851,ship\n241852,cat\n241853,airplane\n241854,deer\n241855,ship\n241856,dog\n241857,truck\n241858,truck\n241859,deer\n241860,automobile\n241861,truck\n241862,cat\n241863,horse\n241864,horse\n241865,cat\n241866,dog\n241867,frog\n241868,bird\n241869,cat\n241870,truck\n241871,bird\n241872,cat\n241873,airplane\n241874,bird\n241875,cat\n241876,frog\n241877,deer\n241878,frog\n241879,horse\n241880,deer\n241881,frog\n241882,dog\n241883,frog\n241884,truck\n241885,frog\n241886,ship\n241887,airplane\n241888,truck\n241889,horse\n241890,automobile\n241891,cat\n241892,truck\n241893,cat\n241894,cat\n241895,ship\n241896,ship\n241897,automobile\n241898,cat\n241899,bird\n241900,horse\n241901,frog\n241902,dog\n241903,truck\n241904,frog\n241905,ship\n241906,ship\n241907,cat\n241908,airplane\n241909,frog\n241910,horse\n241911,dog\n241912,bird\n241913,bird\n241914,frog\n241915,truck\n241916,frog\n241917,ship\n241918,horse\n241919,bird\n241920,dog\n241921,truck\n241922,truck\n241923,bird\n241924,frog\n241925,dog\n241926,frog\n241927,frog\n241928,deer\n241929,airplane\n241930,frog\n241931,dog\n241932,dog\n241933,truck\n241934,dog\n241935,horse\n241936,cat\n241937,frog\n241938,cat\n241939,ship\n241940,dog\n241941,cat\n241942,horse\n241943,automobile\n241944,truck\n241945,cat\n241946,bird\n241947,horse\n241948,ship\n241949,airplane\n241950,truck\n241951,deer\n241952,ship\n241953,ship\n241954,truck\n241955,cat\n241956,deer\n241957,horse\n241958,automobile\n241959,frog\n241960,frog\n241961,deer\n241962,ship\n241963,airplane\n241964,horse\n241965,bird\n241966,automobile\n241967,frog\n241968,truck\n241969,cat\n241970,ship\n241971,cat\n241972,ship\n241973,horse\n241974,horse\n241975,dog\n241976,truck\n241977,automobile\n241978,deer\n241979,horse\n241980,frog\n241981,cat\n241982,cat\n241983,truck\n241984,frog\n241985,deer\n241986,horse\n241987,truck\n241988,dog\n241989,dog\n241990,truck\n241991,frog\n241992,cat\n241993,truck\n241994,airplane\n241995,dog\n241996,dog\n241997,cat\n241998,horse\n241999,horse\n242000,frog\n242001,frog\n242002,deer\n242003,cat\n242004,dog\n242005,airplane\n242006,horse\n242007,horse\n242008,ship\n242009,cat\n242010,dog\n242011,ship\n242012,automobile\n242013,truck\n242014,airplane\n242015,dog\n242016,automobile\n242017,ship\n242018,dog\n242019,dog\n242020,cat\n242021,deer\n242022,horse\n242023,frog\n242024,ship\n242025,frog\n242026,deer\n242027,airplane\n242028,deer\n242029,dog\n242030,frog\n242031,truck\n242032,cat\n242033,airplane\n242034,frog\n242035,dog\n242036,horse\n242037,frog\n242038,cat\n242039,dog\n242040,cat\n242041,bird\n242042,airplane\n242043,dog\n242044,deer\n242045,cat\n242046,bird\n242047,automobile\n242048,truck\n242049,cat\n242050,deer\n242051,horse\n242052,dog\n242053,deer\n242054,horse\n242055,dog\n242056,dog\n242057,horse\n242058,deer\n242059,automobile\n242060,airplane\n242061,ship\n242062,cat\n242063,airplane\n242064,truck\n242065,bird\n242066,cat\n242067,airplane\n242068,dog\n242069,horse\n242070,bird\n242071,cat\n242072,truck\n242073,dog\n242074,ship\n242075,deer\n242076,ship\n242077,dog\n242078,dog\n242079,deer\n242080,cat\n242081,frog\n242082,airplane\n242083,airplane\n242084,frog\n242085,deer\n242086,airplane\n242087,airplane\n242088,frog\n242089,dog\n242090,deer\n242091,frog\n242092,dog\n242093,deer\n242094,deer\n242095,dog\n242096,deer\n242097,automobile\n242098,dog\n242099,deer\n242100,truck\n242101,ship\n242102,dog\n242103,frog\n242104,frog\n242105,cat\n242106,ship\n242107,horse\n242108,ship\n242109,deer\n242110,horse\n242111,airplane\n242112,horse\n242113,bird\n242114,cat\n242115,airplane\n242116,frog\n242117,cat\n242118,deer\n242119,ship\n242120,automobile\n242121,frog\n242122,dog\n242123,deer\n242124,airplane\n242125,airplane\n242126,truck\n242127,truck\n242128,dog\n242129,automobile\n242130,deer\n242131,dog\n242132,frog\n242133,deer\n242134,dog\n242135,deer\n242136,truck\n242137,horse\n242138,horse\n242139,airplane\n242140,cat\n242141,cat\n242142,deer\n242143,deer\n242144,dog\n242145,cat\n242146,cat\n242147,ship\n242148,horse\n242149,frog\n242150,frog\n242151,ship\n242152,cat\n242153,deer\n242154,automobile\n242155,ship\n242156,cat\n242157,truck\n242158,cat\n242159,cat\n242160,cat\n242161,ship\n242162,truck\n242163,frog\n242164,horse\n242165,deer\n242166,truck\n242167,ship\n242168,truck\n242169,horse\n242170,horse\n242171,dog\n242172,truck\n242173,airplane\n242174,bird\n242175,cat\n242176,deer\n242177,cat\n242178,deer\n242179,horse\n242180,truck\n242181,cat\n242182,horse\n242183,dog\n242184,bird\n242185,deer\n242186,deer\n242187,frog\n242188,cat\n242189,airplane\n242190,dog\n242191,airplane\n242192,deer\n242193,dog\n242194,bird\n242195,deer\n242196,bird\n242197,truck\n242198,deer\n242199,horse\n242200,cat\n242201,cat\n242202,dog\n242203,automobile\n242204,truck\n242205,horse\n242206,automobile\n242207,bird\n242208,frog\n242209,truck\n242210,ship\n242211,automobile\n242212,frog\n242213,cat\n242214,cat\n242215,horse\n242216,ship\n242217,frog\n242218,deer\n242219,frog\n242220,bird\n242221,dog\n242222,frog\n242223,truck\n242224,deer\n242225,bird\n242226,frog\n242227,dog\n242228,airplane\n242229,deer\n242230,deer\n242231,deer\n242232,automobile\n242233,frog\n242234,dog\n242235,automobile\n242236,truck\n242237,deer\n242238,airplane\n242239,cat\n242240,ship\n242241,dog\n242242,ship\n242243,airplane\n242244,dog\n242245,ship\n242246,cat\n242247,cat\n242248,cat\n242249,horse\n242250,automobile\n242251,frog\n242252,deer\n242253,dog\n242254,horse\n242255,airplane\n242256,cat\n242257,airplane\n242258,airplane\n242259,frog\n242260,dog\n242261,cat\n242262,dog\n242263,horse\n242264,frog\n242265,ship\n242266,ship\n242267,deer\n242268,dog\n242269,horse\n242270,dog\n242271,frog\n242272,cat\n242273,cat\n242274,frog\n242275,ship\n242276,horse\n242277,truck\n242278,truck\n242279,cat\n242280,bird\n242281,cat\n242282,horse\n242283,frog\n242284,dog\n242285,frog\n242286,deer\n242287,ship\n242288,deer\n242289,dog\n242290,dog\n242291,cat\n242292,deer\n242293,horse\n242294,ship\n242295,dog\n242296,deer\n242297,truck\n242298,automobile\n242299,dog\n242300,cat\n242301,airplane\n242302,frog\n242303,bird\n242304,bird\n242305,dog\n242306,frog\n242307,frog\n242308,frog\n242309,airplane\n242310,bird\n242311,frog\n242312,airplane\n242313,deer\n242314,dog\n242315,dog\n242316,ship\n242317,cat\n242318,ship\n242319,bird\n242320,automobile\n242321,horse\n242322,airplane\n242323,dog\n242324,cat\n242325,horse\n242326,airplane\n242327,dog\n242328,automobile\n242329,bird\n242330,automobile\n242331,cat\n242332,bird\n242333,deer\n242334,frog\n242335,deer\n242336,automobile\n242337,cat\n242338,cat\n242339,dog\n242340,truck\n242341,cat\n242342,dog\n242343,truck\n242344,bird\n242345,bird\n242346,horse\n242347,frog\n242348,ship\n242349,horse\n242350,horse\n242351,bird\n242352,bird\n242353,airplane\n242354,dog\n242355,bird\n242356,ship\n242357,airplane\n242358,frog\n242359,frog\n242360,frog\n242361,dog\n242362,frog\n242363,deer\n242364,deer\n242365,bird\n242366,dog\n242367,horse\n242368,airplane\n242369,dog\n242370,truck\n242371,cat\n242372,dog\n242373,ship\n242374,truck\n242375,ship\n242376,truck\n242377,bird\n242378,truck\n242379,truck\n242380,frog\n242381,cat\n242382,cat\n242383,cat\n242384,truck\n242385,dog\n242386,bird\n242387,airplane\n242388,automobile\n242389,deer\n242390,horse\n242391,bird\n242392,automobile\n242393,deer\n242394,cat\n242395,truck\n242396,bird\n242397,truck\n242398,cat\n242399,automobile\n242400,dog\n242401,cat\n242402,truck\n242403,dog\n242404,bird\n242405,cat\n242406,bird\n242407,dog\n242408,dog\n242409,ship\n242410,deer\n242411,cat\n242412,ship\n242413,cat\n242414,deer\n242415,deer\n242416,horse\n242417,dog\n242418,truck\n242419,deer\n242420,truck\n242421,dog\n242422,automobile\n242423,dog\n242424,dog\n242425,horse\n242426,dog\n242427,cat\n242428,automobile\n242429,bird\n242430,deer\n242431,ship\n242432,airplane\n242433,truck\n242434,ship\n242435,automobile\n242436,frog\n242437,cat\n242438,airplane\n242439,automobile\n242440,dog\n242441,dog\n242442,automobile\n242443,airplane\n242444,airplane\n242445,frog\n242446,truck\n242447,automobile\n242448,cat\n242449,automobile\n242450,frog\n242451,dog\n242452,horse\n242453,deer\n242454,bird\n242455,horse\n242456,dog\n242457,deer\n242458,frog\n242459,automobile\n242460,deer\n242461,cat\n242462,truck\n242463,cat\n242464,truck\n242465,dog\n242466,frog\n242467,airplane\n242468,airplane\n242469,horse\n242470,airplane\n242471,truck\n242472,truck\n242473,frog\n242474,ship\n242475,dog\n242476,ship\n242477,cat\n242478,deer\n242479,frog\n242480,dog\n242481,airplane\n242482,cat\n242483,cat\n242484,cat\n242485,cat\n242486,automobile\n242487,ship\n242488,dog\n242489,cat\n242490,horse\n242491,deer\n242492,bird\n242493,airplane\n242494,bird\n242495,airplane\n242496,deer\n242497,horse\n242498,dog\n242499,airplane\n242500,truck\n242501,airplane\n242502,automobile\n242503,frog\n242504,cat\n242505,deer\n242506,bird\n242507,cat\n242508,dog\n242509,bird\n242510,automobile\n242511,cat\n242512,dog\n242513,ship\n242514,dog\n242515,truck\n242516,truck\n242517,airplane\n242518,truck\n242519,frog\n242520,ship\n242521,deer\n242522,horse\n242523,airplane\n242524,truck\n242525,airplane\n242526,truck\n242527,cat\n242528,airplane\n242529,dog\n242530,bird\n242531,bird\n242532,dog\n242533,ship\n242534,truck\n242535,truck\n242536,cat\n242537,deer\n242538,frog\n242539,frog\n242540,automobile\n242541,deer\n242542,ship\n242543,automobile\n242544,ship\n242545,deer\n242546,airplane\n242547,airplane\n242548,dog\n242549,airplane\n242550,truck\n242551,ship\n242552,cat\n242553,cat\n242554,automobile\n242555,dog\n242556,airplane\n242557,truck\n242558,horse\n242559,dog\n242560,deer\n242561,ship\n242562,automobile\n242563,cat\n242564,frog\n242565,truck\n242566,deer\n242567,ship\n242568,deer\n242569,dog\n242570,ship\n242571,cat\n242572,deer\n242573,horse\n242574,ship\n242575,frog\n242576,automobile\n242577,truck\n242578,bird\n242579,deer\n242580,cat\n242581,frog\n242582,deer\n242583,cat\n242584,frog\n242585,airplane\n242586,cat\n242587,bird\n242588,cat\n242589,cat\n242590,airplane\n242591,bird\n242592,dog\n242593,truck\n242594,deer\n242595,cat\n242596,ship\n242597,frog\n242598,truck\n242599,deer\n242600,deer\n242601,bird\n242602,cat\n242603,deer\n242604,cat\n242605,truck\n242606,frog\n242607,airplane\n242608,deer\n242609,cat\n242610,frog\n242611,ship\n242612,frog\n242613,cat\n242614,deer\n242615,truck\n242616,bird\n242617,dog\n242618,automobile\n242619,deer\n242620,airplane\n242621,cat\n242622,frog\n242623,dog\n242624,deer\n242625,bird\n242626,dog\n242627,frog\n242628,ship\n242629,horse\n242630,dog\n242631,frog\n242632,truck\n242633,truck\n242634,deer\n242635,frog\n242636,horse\n242637,frog\n242638,truck\n242639,cat\n242640,airplane\n242641,cat\n242642,dog\n242643,bird\n242644,bird\n242645,horse\n242646,cat\n242647,airplane\n242648,deer\n242649,horse\n242650,automobile\n242651,truck\n242652,automobile\n242653,horse\n242654,automobile\n242655,deer\n242656,ship\n242657,frog\n242658,dog\n242659,automobile\n242660,cat\n242661,truck\n242662,bird\n242663,bird\n242664,airplane\n242665,truck\n242666,automobile\n242667,frog\n242668,frog\n242669,cat\n242670,ship\n242671,deer\n242672,airplane\n242673,automobile\n242674,ship\n242675,bird\n242676,bird\n242677,truck\n242678,frog\n242679,horse\n242680,automobile\n242681,cat\n242682,truck\n242683,cat\n242684,horse\n242685,frog\n242686,ship\n242687,horse\n242688,horse\n242689,bird\n242690,cat\n242691,dog\n242692,dog\n242693,dog\n242694,dog\n242695,bird\n242696,horse\n242697,automobile\n242698,dog\n242699,bird\n242700,bird\n242701,truck\n242702,dog\n242703,cat\n242704,cat\n242705,airplane\n242706,cat\n242707,truck\n242708,cat\n242709,automobile\n242710,airplane\n242711,dog\n242712,automobile\n242713,deer\n242714,truck\n242715,ship\n242716,ship\n242717,deer\n242718,truck\n242719,truck\n242720,cat\n242721,horse\n242722,truck\n242723,bird\n242724,airplane\n242725,deer\n242726,dog\n242727,cat\n242728,dog\n242729,cat\n242730,truck\n242731,deer\n242732,frog\n242733,automobile\n242734,frog\n242735,cat\n242736,horse\n242737,bird\n242738,deer\n242739,bird\n242740,automobile\n242741,frog\n242742,frog\n242743,cat\n242744,bird\n242745,automobile\n242746,airplane\n242747,dog\n242748,dog\n242749,cat\n242750,horse\n242751,ship\n242752,truck\n242753,truck\n242754,truck\n242755,automobile\n242756,cat\n242757,cat\n242758,cat\n242759,horse\n242760,ship\n242761,frog\n242762,airplane\n242763,deer\n242764,horse\n242765,cat\n242766,automobile\n242767,horse\n242768,truck\n242769,cat\n242770,airplane\n242771,deer\n242772,automobile\n242773,horse\n242774,horse\n242775,airplane\n242776,truck\n242777,ship\n242778,ship\n242779,dog\n242780,ship\n242781,bird\n242782,bird\n242783,truck\n242784,bird\n242785,automobile\n242786,airplane\n242787,cat\n242788,frog\n242789,deer\n242790,cat\n242791,truck\n242792,dog\n242793,dog\n242794,cat\n242795,deer\n242796,frog\n242797,dog\n242798,truck\n242799,frog\n242800,dog\n242801,ship\n242802,deer\n242803,deer\n242804,truck\n242805,ship\n242806,automobile\n242807,dog\n242808,frog\n242809,frog\n242810,frog\n242811,airplane\n242812,dog\n242813,deer\n242814,airplane\n242815,truck\n242816,deer\n242817,deer\n242818,airplane\n242819,truck\n242820,truck\n242821,dog\n242822,automobile\n242823,frog\n242824,horse\n242825,bird\n242826,cat\n242827,ship\n242828,airplane\n242829,deer\n242830,deer\n242831,deer\n242832,ship\n242833,horse\n242834,deer\n242835,frog\n242836,cat\n242837,truck\n242838,airplane\n242839,automobile\n242840,bird\n242841,dog\n242842,ship\n242843,deer\n242844,horse\n242845,automobile\n242846,automobile\n242847,deer\n242848,automobile\n242849,dog\n242850,deer\n242851,bird\n242852,deer\n242853,truck\n242854,ship\n242855,deer\n242856,bird\n242857,cat\n242858,frog\n242859,frog\n242860,airplane\n242861,cat\n242862,ship\n242863,truck\n242864,cat\n242865,frog\n242866,bird\n242867,airplane\n242868,deer\n242869,airplane\n242870,automobile\n242871,airplane\n242872,frog\n242873,bird\n242874,bird\n242875,cat\n242876,dog\n242877,automobile\n242878,automobile\n242879,airplane\n242880,cat\n242881,frog\n242882,cat\n242883,cat\n242884,frog\n242885,airplane\n242886,horse\n242887,truck\n242888,frog\n242889,airplane\n242890,truck\n242891,deer\n242892,cat\n242893,horse\n242894,deer\n242895,ship\n242896,truck\n242897,dog\n242898,dog\n242899,truck\n242900,truck\n242901,cat\n242902,bird\n242903,dog\n242904,frog\n242905,deer\n242906,bird\n242907,dog\n242908,horse\n242909,frog\n242910,ship\n242911,dog\n242912,cat\n242913,frog\n242914,automobile\n242915,ship\n242916,dog\n242917,truck\n242918,frog\n242919,bird\n242920,frog\n242921,deer\n242922,frog\n242923,frog\n242924,ship\n242925,cat\n242926,dog\n242927,frog\n242928,automobile\n242929,frog\n242930,airplane\n242931,frog\n242932,deer\n242933,dog\n242934,deer\n242935,automobile\n242936,airplane\n242937,horse\n242938,cat\n242939,deer\n242940,ship\n242941,dog\n242942,cat\n242943,bird\n242944,frog\n242945,ship\n242946,truck\n242947,truck\n242948,truck\n242949,bird\n242950,dog\n242951,ship\n242952,horse\n242953,horse\n242954,airplane\n242955,cat\n242956,bird\n242957,truck\n242958,truck\n242959,deer\n242960,horse\n242961,frog\n242962,truck\n242963,automobile\n242964,truck\n242965,truck\n242966,deer\n242967,frog\n242968,ship\n242969,truck\n242970,deer\n242971,truck\n242972,airplane\n242973,deer\n242974,deer\n242975,frog\n242976,deer\n242977,frog\n242978,cat\n242979,cat\n242980,bird\n242981,dog\n242982,cat\n242983,truck\n242984,cat\n242985,ship\n242986,airplane\n242987,dog\n242988,dog\n242989,cat\n242990,cat\n242991,dog\n242992,truck\n242993,frog\n242994,frog\n242995,airplane\n242996,airplane\n242997,ship\n242998,deer\n242999,frog\n243000,deer\n243001,horse\n243002,horse\n243003,horse\n243004,deer\n243005,dog\n243006,automobile\n243007,bird\n243008,truck\n243009,cat\n243010,deer\n243011,horse\n243012,bird\n243013,bird\n243014,horse\n243015,cat\n243016,truck\n243017,bird\n243018,cat\n243019,bird\n243020,cat\n243021,dog\n243022,airplane\n243023,bird\n243024,bird\n243025,deer\n243026,bird\n243027,frog\n243028,bird\n243029,ship\n243030,dog\n243031,cat\n243032,automobile\n243033,bird\n243034,truck\n243035,ship\n243036,airplane\n243037,deer\n243038,bird\n243039,frog\n243040,cat\n243041,dog\n243042,airplane\n243043,automobile\n243044,dog\n243045,automobile\n243046,frog\n243047,bird\n243048,frog\n243049,frog\n243050,bird\n243051,truck\n243052,cat\n243053,cat\n243054,airplane\n243055,airplane\n243056,truck\n243057,deer\n243058,frog\n243059,frog\n243060,dog\n243061,automobile\n243062,bird\n243063,truck\n243064,truck\n243065,horse\n243066,bird\n243067,dog\n243068,deer\n243069,dog\n243070,cat\n243071,truck\n243072,frog\n243073,horse\n243074,airplane\n243075,cat\n243076,airplane\n243077,automobile\n243078,automobile\n243079,airplane\n243080,horse\n243081,bird\n243082,frog\n243083,horse\n243084,automobile\n243085,deer\n243086,horse\n243087,ship\n243088,bird\n243089,automobile\n243090,bird\n243091,airplane\n243092,ship\n243093,airplane\n243094,deer\n243095,dog\n243096,dog\n243097,truck\n243098,truck\n243099,airplane\n243100,cat\n243101,ship\n243102,ship\n243103,bird\n243104,deer\n243105,truck\n243106,deer\n243107,horse\n243108,airplane\n243109,frog\n243110,automobile\n243111,deer\n243112,frog\n243113,truck\n243114,bird\n243115,automobile\n243116,dog\n243117,airplane\n243118,airplane\n243119,automobile\n243120,deer\n243121,bird\n243122,truck\n243123,bird\n243124,frog\n243125,airplane\n243126,frog\n243127,cat\n243128,truck\n243129,automobile\n243130,horse\n243131,cat\n243132,frog\n243133,ship\n243134,deer\n243135,horse\n243136,airplane\n243137,ship\n243138,ship\n243139,airplane\n243140,bird\n243141,ship\n243142,frog\n243143,frog\n243144,deer\n243145,cat\n243146,truck\n243147,bird\n243148,truck\n243149,ship\n243150,frog\n243151,bird\n243152,cat\n243153,horse\n243154,automobile\n243155,ship\n243156,airplane\n243157,ship\n243158,automobile\n243159,automobile\n243160,dog\n243161,dog\n243162,frog\n243163,automobile\n243164,truck\n243165,horse\n243166,horse\n243167,automobile\n243168,dog\n243169,deer\n243170,truck\n243171,ship\n243172,ship\n243173,truck\n243174,cat\n243175,cat\n243176,ship\n243177,frog\n243178,airplane\n243179,cat\n243180,bird\n243181,bird\n243182,deer\n243183,ship\n243184,deer\n243185,bird\n243186,deer\n243187,bird\n243188,deer\n243189,dog\n243190,truck\n243191,bird\n243192,truck\n243193,cat\n243194,bird\n243195,frog\n243196,bird\n243197,truck\n243198,automobile\n243199,horse\n243200,bird\n243201,airplane\n243202,automobile\n243203,frog\n243204,deer\n243205,ship\n243206,truck\n243207,truck\n243208,automobile\n243209,automobile\n243210,automobile\n243211,dog\n243212,horse\n243213,ship\n243214,automobile\n243215,horse\n243216,truck\n243217,deer\n243218,deer\n243219,airplane\n243220,cat\n243221,airplane\n243222,airplane\n243223,truck\n243224,ship\n243225,cat\n243226,frog\n243227,truck\n243228,deer\n243229,deer\n243230,frog\n243231,airplane\n243232,ship\n243233,frog\n243234,cat\n243235,cat\n243236,dog\n243237,frog\n243238,horse\n243239,frog\n243240,automobile\n243241,truck\n243242,automobile\n243243,horse\n243244,horse\n243245,horse\n243246,automobile\n243247,horse\n243248,horse\n243249,horse\n243250,deer\n243251,automobile\n243252,horse\n243253,ship\n243254,frog\n243255,frog\n243256,deer\n243257,frog\n243258,deer\n243259,deer\n243260,frog\n243261,bird\n243262,frog\n243263,bird\n243264,dog\n243265,horse\n243266,cat\n243267,horse\n243268,airplane\n243269,cat\n243270,dog\n243271,deer\n243272,deer\n243273,horse\n243274,cat\n243275,cat\n243276,horse\n243277,cat\n243278,horse\n243279,truck\n243280,cat\n243281,bird\n243282,dog\n243283,ship\n243284,cat\n243285,truck\n243286,horse\n243287,dog\n243288,deer\n243289,frog\n243290,bird\n243291,cat\n243292,horse\n243293,dog\n243294,cat\n243295,horse\n243296,cat\n243297,truck\n243298,frog\n243299,dog\n243300,deer\n243301,frog\n243302,frog\n243303,truck\n243304,cat\n243305,horse\n243306,ship\n243307,ship\n243308,deer\n243309,cat\n243310,truck\n243311,bird\n243312,airplane\n243313,frog\n243314,horse\n243315,airplane\n243316,airplane\n243317,deer\n243318,dog\n243319,ship\n243320,horse\n243321,deer\n243322,deer\n243323,truck\n243324,dog\n243325,cat\n243326,horse\n243327,automobile\n243328,dog\n243329,deer\n243330,cat\n243331,deer\n243332,frog\n243333,horse\n243334,truck\n243335,frog\n243336,frog\n243337,truck\n243338,ship\n243339,truck\n243340,frog\n243341,dog\n243342,deer\n243343,airplane\n243344,automobile\n243345,frog\n243346,frog\n243347,horse\n243348,deer\n243349,bird\n243350,automobile\n243351,airplane\n243352,bird\n243353,automobile\n243354,deer\n243355,dog\n243356,dog\n243357,truck\n243358,automobile\n243359,cat\n243360,airplane\n243361,ship\n243362,dog\n243363,automobile\n243364,frog\n243365,airplane\n243366,dog\n243367,deer\n243368,automobile\n243369,ship\n243370,bird\n243371,bird\n243372,dog\n243373,bird\n243374,cat\n243375,airplane\n243376,cat\n243377,automobile\n243378,truck\n243379,deer\n243380,truck\n243381,airplane\n243382,cat\n243383,ship\n243384,airplane\n243385,frog\n243386,automobile\n243387,frog\n243388,frog\n243389,dog\n243390,frog\n243391,bird\n243392,airplane\n243393,ship\n243394,cat\n243395,ship\n243396,airplane\n243397,cat\n243398,frog\n243399,frog\n243400,bird\n243401,truck\n243402,dog\n243403,cat\n243404,truck\n243405,horse\n243406,airplane\n243407,dog\n243408,ship\n243409,airplane\n243410,airplane\n243411,ship\n243412,cat\n243413,bird\n243414,bird\n243415,deer\n243416,dog\n243417,truck\n243418,automobile\n243419,horse\n243420,deer\n243421,horse\n243422,horse\n243423,frog\n243424,horse\n243425,deer\n243426,truck\n243427,dog\n243428,airplane\n243429,cat\n243430,truck\n243431,cat\n243432,airplane\n243433,frog\n243434,truck\n243435,frog\n243436,cat\n243437,cat\n243438,bird\n243439,horse\n243440,horse\n243441,deer\n243442,dog\n243443,bird\n243444,deer\n243445,bird\n243446,cat\n243447,deer\n243448,dog\n243449,ship\n243450,airplane\n243451,ship\n243452,truck\n243453,airplane\n243454,automobile\n243455,deer\n243456,truck\n243457,horse\n243458,automobile\n243459,dog\n243460,horse\n243461,truck\n243462,frog\n243463,ship\n243464,cat\n243465,cat\n243466,deer\n243467,cat\n243468,automobile\n243469,truck\n243470,dog\n243471,ship\n243472,bird\n243473,truck\n243474,truck\n243475,automobile\n243476,airplane\n243477,deer\n243478,dog\n243479,horse\n243480,dog\n243481,bird\n243482,frog\n243483,airplane\n243484,deer\n243485,truck\n243486,truck\n243487,bird\n243488,deer\n243489,airplane\n243490,automobile\n243491,deer\n243492,cat\n243493,deer\n243494,frog\n243495,cat\n243496,deer\n243497,bird\n243498,cat\n243499,frog\n243500,bird\n243501,horse\n243502,frog\n243503,deer\n243504,ship\n243505,airplane\n243506,cat\n243507,cat\n243508,truck\n243509,horse\n243510,bird\n243511,dog\n243512,cat\n243513,deer\n243514,airplane\n243515,ship\n243516,deer\n243517,cat\n243518,automobile\n243519,horse\n243520,bird\n243521,truck\n243522,frog\n243523,cat\n243524,frog\n243525,automobile\n243526,truck\n243527,dog\n243528,horse\n243529,ship\n243530,dog\n243531,frog\n243532,frog\n243533,deer\n243534,truck\n243535,cat\n243536,dog\n243537,deer\n243538,bird\n243539,dog\n243540,deer\n243541,truck\n243542,horse\n243543,truck\n243544,deer\n243545,bird\n243546,dog\n243547,ship\n243548,bird\n243549,truck\n243550,frog\n243551,bird\n243552,ship\n243553,airplane\n243554,horse\n243555,frog\n243556,truck\n243557,truck\n243558,horse\n243559,dog\n243560,airplane\n243561,cat\n243562,automobile\n243563,truck\n243564,cat\n243565,frog\n243566,truck\n243567,truck\n243568,deer\n243569,automobile\n243570,truck\n243571,frog\n243572,automobile\n243573,ship\n243574,cat\n243575,dog\n243576,automobile\n243577,deer\n243578,bird\n243579,deer\n243580,frog\n243581,dog\n243582,cat\n243583,frog\n243584,deer\n243585,airplane\n243586,deer\n243587,cat\n243588,ship\n243589,bird\n243590,horse\n243591,ship\n243592,deer\n243593,airplane\n243594,ship\n243595,horse\n243596,deer\n243597,deer\n243598,dog\n243599,frog\n243600,frog\n243601,dog\n243602,automobile\n243603,deer\n243604,dog\n243605,cat\n243606,truck\n243607,truck\n243608,bird\n243609,automobile\n243610,bird\n243611,truck\n243612,horse\n243613,cat\n243614,frog\n243615,ship\n243616,automobile\n243617,cat\n243618,automobile\n243619,frog\n243620,cat\n243621,deer\n243622,horse\n243623,cat\n243624,cat\n243625,airplane\n243626,airplane\n243627,deer\n243628,ship\n243629,truck\n243630,horse\n243631,bird\n243632,airplane\n243633,deer\n243634,dog\n243635,bird\n243636,automobile\n243637,bird\n243638,truck\n243639,airplane\n243640,airplane\n243641,bird\n243642,horse\n243643,airplane\n243644,ship\n243645,cat\n243646,ship\n243647,automobile\n243648,dog\n243649,deer\n243650,horse\n243651,ship\n243652,airplane\n243653,truck\n243654,cat\n243655,deer\n243656,deer\n243657,automobile\n243658,deer\n243659,bird\n243660,cat\n243661,cat\n243662,deer\n243663,frog\n243664,bird\n243665,frog\n243666,airplane\n243667,bird\n243668,truck\n243669,truck\n243670,deer\n243671,deer\n243672,ship\n243673,automobile\n243674,horse\n243675,cat\n243676,truck\n243677,frog\n243678,airplane\n243679,truck\n243680,dog\n243681,horse\n243682,dog\n243683,ship\n243684,cat\n243685,deer\n243686,cat\n243687,deer\n243688,deer\n243689,ship\n243690,truck\n243691,cat\n243692,bird\n243693,deer\n243694,dog\n243695,frog\n243696,dog\n243697,automobile\n243698,deer\n243699,cat\n243700,horse\n243701,horse\n243702,horse\n243703,frog\n243704,ship\n243705,horse\n243706,dog\n243707,deer\n243708,cat\n243709,frog\n243710,frog\n243711,dog\n243712,deer\n243713,deer\n243714,truck\n243715,dog\n243716,frog\n243717,deer\n243718,bird\n243719,cat\n243720,bird\n243721,bird\n243722,frog\n243723,automobile\n243724,dog\n243725,frog\n243726,frog\n243727,cat\n243728,airplane\n243729,automobile\n243730,dog\n243731,ship\n243732,cat\n243733,bird\n243734,truck\n243735,truck\n243736,truck\n243737,frog\n243738,ship\n243739,automobile\n243740,deer\n243741,airplane\n243742,bird\n243743,cat\n243744,dog\n243745,deer\n243746,truck\n243747,cat\n243748,horse\n243749,deer\n243750,automobile\n243751,automobile\n243752,ship\n243753,dog\n243754,deer\n243755,deer\n243756,dog\n243757,bird\n243758,airplane\n243759,horse\n243760,bird\n243761,airplane\n243762,airplane\n243763,dog\n243764,bird\n243765,bird\n243766,cat\n243767,frog\n243768,bird\n243769,airplane\n243770,horse\n243771,horse\n243772,dog\n243773,bird\n243774,airplane\n243775,truck\n243776,airplane\n243777,ship\n243778,automobile\n243779,ship\n243780,frog\n243781,automobile\n243782,automobile\n243783,truck\n243784,dog\n243785,truck\n243786,bird\n243787,truck\n243788,airplane\n243789,airplane\n243790,airplane\n243791,automobile\n243792,bird\n243793,truck\n243794,ship\n243795,dog\n243796,horse\n243797,dog\n243798,airplane\n243799,airplane\n243800,bird\n243801,frog\n243802,deer\n243803,horse\n243804,frog\n243805,deer\n243806,cat\n243807,horse\n243808,ship\n243809,deer\n243810,ship\n243811,frog\n243812,frog\n243813,ship\n243814,ship\n243815,truck\n243816,cat\n243817,airplane\n243818,cat\n243819,truck\n243820,horse\n243821,frog\n243822,cat\n243823,dog\n243824,cat\n243825,airplane\n243826,automobile\n243827,airplane\n243828,dog\n243829,frog\n243830,horse\n243831,frog\n243832,deer\n243833,frog\n243834,deer\n243835,truck\n243836,airplane\n243837,cat\n243838,ship\n243839,deer\n243840,cat\n243841,frog\n243842,automobile\n243843,ship\n243844,ship\n243845,dog\n243846,bird\n243847,airplane\n243848,cat\n243849,cat\n243850,horse\n243851,airplane\n243852,truck\n243853,horse\n243854,automobile\n243855,cat\n243856,bird\n243857,truck\n243858,cat\n243859,truck\n243860,truck\n243861,dog\n243862,truck\n243863,bird\n243864,airplane\n243865,airplane\n243866,horse\n243867,deer\n243868,truck\n243869,deer\n243870,frog\n243871,bird\n243872,bird\n243873,dog\n243874,deer\n243875,automobile\n243876,cat\n243877,dog\n243878,automobile\n243879,frog\n243880,cat\n243881,frog\n243882,automobile\n243883,deer\n243884,cat\n243885,cat\n243886,airplane\n243887,frog\n243888,frog\n243889,frog\n243890,truck\n243891,airplane\n243892,deer\n243893,truck\n243894,dog\n243895,airplane\n243896,frog\n243897,cat\n243898,bird\n243899,deer\n243900,cat\n243901,automobile\n243902,dog\n243903,dog\n243904,cat\n243905,deer\n243906,truck\n243907,deer\n243908,dog\n243909,cat\n243910,bird\n243911,bird\n243912,dog\n243913,deer\n243914,frog\n243915,dog\n243916,deer\n243917,cat\n243918,bird\n243919,horse\n243920,cat\n243921,ship\n243922,dog\n243923,horse\n243924,deer\n243925,ship\n243926,horse\n243927,bird\n243928,frog\n243929,dog\n243930,deer\n243931,automobile\n243932,airplane\n243933,airplane\n243934,deer\n243935,deer\n243936,deer\n243937,dog\n243938,truck\n243939,cat\n243940,cat\n243941,frog\n243942,cat\n243943,truck\n243944,automobile\n243945,truck\n243946,airplane\n243947,bird\n243948,deer\n243949,deer\n243950,dog\n243951,automobile\n243952,deer\n243953,ship\n243954,airplane\n243955,automobile\n243956,airplane\n243957,frog\n243958,ship\n243959,deer\n243960,horse\n243961,cat\n243962,dog\n243963,deer\n243964,deer\n243965,truck\n243966,frog\n243967,airplane\n243968,bird\n243969,horse\n243970,cat\n243971,truck\n243972,deer\n243973,bird\n243974,frog\n243975,dog\n243976,truck\n243977,cat\n243978,frog\n243979,airplane\n243980,horse\n243981,automobile\n243982,airplane\n243983,deer\n243984,ship\n243985,cat\n243986,truck\n243987,frog\n243988,frog\n243989,horse\n243990,cat\n243991,deer\n243992,bird\n243993,deer\n243994,frog\n243995,automobile\n243996,horse\n243997,ship\n243998,ship\n243999,airplane\n244000,truck\n244001,horse\n244002,dog\n244003,cat\n244004,bird\n244005,automobile\n244006,ship\n244007,truck\n244008,dog\n244009,frog\n244010,horse\n244011,truck\n244012,bird\n244013,dog\n244014,dog\n244015,frog\n244016,horse\n244017,airplane\n244018,frog\n244019,cat\n244020,dog\n244021,frog\n244022,automobile\n244023,truck\n244024,dog\n244025,deer\n244026,bird\n244027,automobile\n244028,cat\n244029,horse\n244030,ship\n244031,deer\n244032,airplane\n244033,airplane\n244034,cat\n244035,dog\n244036,truck\n244037,deer\n244038,airplane\n244039,deer\n244040,dog\n244041,automobile\n244042,dog\n244043,airplane\n244044,truck\n244045,dog\n244046,automobile\n244047,airplane\n244048,dog\n244049,bird\n244050,automobile\n244051,ship\n244052,dog\n244053,bird\n244054,dog\n244055,dog\n244056,automobile\n244057,cat\n244058,truck\n244059,cat\n244060,frog\n244061,frog\n244062,cat\n244063,bird\n244064,airplane\n244065,cat\n244066,dog\n244067,frog\n244068,airplane\n244069,truck\n244070,dog\n244071,frog\n244072,automobile\n244073,automobile\n244074,cat\n244075,horse\n244076,truck\n244077,airplane\n244078,truck\n244079,deer\n244080,automobile\n244081,bird\n244082,truck\n244083,airplane\n244084,deer\n244085,horse\n244086,airplane\n244087,automobile\n244088,dog\n244089,frog\n244090,deer\n244091,deer\n244092,automobile\n244093,cat\n244094,bird\n244095,cat\n244096,ship\n244097,horse\n244098,ship\n244099,dog\n244100,cat\n244101,dog\n244102,deer\n244103,ship\n244104,truck\n244105,deer\n244106,cat\n244107,cat\n244108,horse\n244109,horse\n244110,frog\n244111,deer\n244112,automobile\n244113,dog\n244114,truck\n244115,automobile\n244116,cat\n244117,automobile\n244118,horse\n244119,ship\n244120,cat\n244121,deer\n244122,dog\n244123,truck\n244124,horse\n244125,ship\n244126,frog\n244127,bird\n244128,deer\n244129,deer\n244130,horse\n244131,bird\n244132,cat\n244133,ship\n244134,deer\n244135,cat\n244136,deer\n244137,truck\n244138,ship\n244139,bird\n244140,automobile\n244141,cat\n244142,bird\n244143,deer\n244144,deer\n244145,bird\n244146,frog\n244147,automobile\n244148,cat\n244149,cat\n244150,ship\n244151,ship\n244152,bird\n244153,bird\n244154,deer\n244155,truck\n244156,deer\n244157,deer\n244158,cat\n244159,truck\n244160,cat\n244161,frog\n244162,cat\n244163,horse\n244164,frog\n244165,automobile\n244166,truck\n244167,airplane\n244168,deer\n244169,dog\n244170,automobile\n244171,airplane\n244172,frog\n244173,airplane\n244174,dog\n244175,dog\n244176,automobile\n244177,cat\n244178,truck\n244179,deer\n244180,horse\n244181,dog\n244182,bird\n244183,deer\n244184,horse\n244185,deer\n244186,cat\n244187,cat\n244188,automobile\n244189,cat\n244190,airplane\n244191,airplane\n244192,horse\n244193,cat\n244194,deer\n244195,deer\n244196,horse\n244197,deer\n244198,airplane\n244199,automobile\n244200,airplane\n244201,airplane\n244202,frog\n244203,deer\n244204,cat\n244205,frog\n244206,frog\n244207,dog\n244208,frog\n244209,horse\n244210,automobile\n244211,horse\n244212,cat\n244213,cat\n244214,bird\n244215,truck\n244216,automobile\n244217,frog\n244218,truck\n244219,horse\n244220,deer\n244221,ship\n244222,dog\n244223,cat\n244224,horse\n244225,cat\n244226,truck\n244227,dog\n244228,bird\n244229,frog\n244230,truck\n244231,horse\n244232,airplane\n244233,automobile\n244234,ship\n244235,horse\n244236,deer\n244237,bird\n244238,truck\n244239,automobile\n244240,ship\n244241,bird\n244242,frog\n244243,dog\n244244,horse\n244245,frog\n244246,cat\n244247,deer\n244248,airplane\n244249,dog\n244250,cat\n244251,horse\n244252,frog\n244253,automobile\n244254,airplane\n244255,cat\n244256,horse\n244257,airplane\n244258,horse\n244259,frog\n244260,cat\n244261,airplane\n244262,bird\n244263,deer\n244264,dog\n244265,automobile\n244266,bird\n244267,truck\n244268,airplane\n244269,truck\n244270,cat\n244271,dog\n244272,dog\n244273,dog\n244274,deer\n244275,deer\n244276,deer\n244277,automobile\n244278,dog\n244279,frog\n244280,dog\n244281,airplane\n244282,airplane\n244283,frog\n244284,dog\n244285,airplane\n244286,truck\n244287,ship\n244288,deer\n244289,deer\n244290,cat\n244291,horse\n244292,deer\n244293,truck\n244294,airplane\n244295,frog\n244296,dog\n244297,cat\n244298,cat\n244299,bird\n244300,bird\n244301,bird\n244302,bird\n244303,deer\n244304,truck\n244305,automobile\n244306,cat\n244307,horse\n244308,automobile\n244309,airplane\n244310,horse\n244311,ship\n244312,cat\n244313,deer\n244314,bird\n244315,cat\n244316,bird\n244317,cat\n244318,ship\n244319,airplane\n244320,airplane\n244321,airplane\n244322,bird\n244323,bird\n244324,dog\n244325,dog\n244326,automobile\n244327,ship\n244328,cat\n244329,cat\n244330,airplane\n244331,frog\n244332,horse\n244333,frog\n244334,truck\n244335,deer\n244336,truck\n244337,deer\n244338,horse\n244339,horse\n244340,horse\n244341,bird\n244342,frog\n244343,automobile\n244344,cat\n244345,horse\n244346,ship\n244347,horse\n244348,deer\n244349,airplane\n244350,airplane\n244351,horse\n244352,frog\n244353,ship\n244354,deer\n244355,bird\n244356,deer\n244357,horse\n244358,cat\n244359,frog\n244360,cat\n244361,cat\n244362,deer\n244363,frog\n244364,airplane\n244365,automobile\n244366,truck\n244367,deer\n244368,dog\n244369,dog\n244370,frog\n244371,cat\n244372,ship\n244373,ship\n244374,truck\n244375,automobile\n244376,horse\n244377,truck\n244378,frog\n244379,frog\n244380,cat\n244381,dog\n244382,dog\n244383,automobile\n244384,deer\n244385,deer\n244386,horse\n244387,horse\n244388,dog\n244389,cat\n244390,automobile\n244391,deer\n244392,deer\n244393,cat\n244394,deer\n244395,cat\n244396,bird\n244397,cat\n244398,cat\n244399,truck\n244400,dog\n244401,dog\n244402,airplane\n244403,cat\n244404,cat\n244405,airplane\n244406,automobile\n244407,airplane\n244408,automobile\n244409,cat\n244410,dog\n244411,frog\n244412,dog\n244413,cat\n244414,dog\n244415,ship\n244416,dog\n244417,bird\n244418,airplane\n244419,horse\n244420,bird\n244421,ship\n244422,deer\n244423,dog\n244424,truck\n244425,bird\n244426,automobile\n244427,cat\n244428,dog\n244429,frog\n244430,deer\n244431,frog\n244432,ship\n244433,bird\n244434,truck\n244435,frog\n244436,automobile\n244437,horse\n244438,ship\n244439,dog\n244440,truck\n244441,automobile\n244442,ship\n244443,deer\n244444,bird\n244445,airplane\n244446,automobile\n244447,deer\n244448,truck\n244449,cat\n244450,automobile\n244451,automobile\n244452,truck\n244453,cat\n244454,ship\n244455,frog\n244456,truck\n244457,bird\n244458,dog\n244459,airplane\n244460,cat\n244461,cat\n244462,truck\n244463,deer\n244464,airplane\n244465,frog\n244466,frog\n244467,bird\n244468,deer\n244469,truck\n244470,airplane\n244471,airplane\n244472,truck\n244473,cat\n244474,cat\n244475,cat\n244476,truck\n244477,ship\n244478,dog\n244479,frog\n244480,cat\n244481,frog\n244482,cat\n244483,automobile\n244484,bird\n244485,ship\n244486,bird\n244487,bird\n244488,bird\n244489,automobile\n244490,cat\n244491,cat\n244492,airplane\n244493,frog\n244494,ship\n244495,airplane\n244496,truck\n244497,truck\n244498,truck\n244499,truck\n244500,horse\n244501,cat\n244502,automobile\n244503,deer\n244504,bird\n244505,cat\n244506,bird\n244507,automobile\n244508,ship\n244509,frog\n244510,ship\n244511,frog\n244512,dog\n244513,frog\n244514,frog\n244515,horse\n244516,deer\n244517,bird\n244518,deer\n244519,ship\n244520,frog\n244521,deer\n244522,ship\n244523,bird\n244524,horse\n244525,deer\n244526,ship\n244527,automobile\n244528,truck\n244529,dog\n244530,truck\n244531,automobile\n244532,deer\n244533,cat\n244534,frog\n244535,automobile\n244536,horse\n244537,airplane\n244538,dog\n244539,deer\n244540,cat\n244541,horse\n244542,automobile\n244543,deer\n244544,cat\n244545,airplane\n244546,bird\n244547,dog\n244548,cat\n244549,deer\n244550,deer\n244551,truck\n244552,deer\n244553,frog\n244554,bird\n244555,cat\n244556,frog\n244557,airplane\n244558,cat\n244559,airplane\n244560,cat\n244561,airplane\n244562,airplane\n244563,dog\n244564,frog\n244565,airplane\n244566,bird\n244567,airplane\n244568,frog\n244569,cat\n244570,automobile\n244571,automobile\n244572,automobile\n244573,deer\n244574,truck\n244575,truck\n244576,cat\n244577,horse\n244578,deer\n244579,frog\n244580,frog\n244581,frog\n244582,ship\n244583,airplane\n244584,cat\n244585,airplane\n244586,bird\n244587,deer\n244588,deer\n244589,frog\n244590,truck\n244591,truck\n244592,truck\n244593,frog\n244594,deer\n244595,automobile\n244596,deer\n244597,horse\n244598,ship\n244599,frog\n244600,horse\n244601,truck\n244602,cat\n244603,cat\n244604,cat\n244605,frog\n244606,automobile\n244607,cat\n244608,frog\n244609,automobile\n244610,cat\n244611,cat\n244612,ship\n244613,deer\n244614,frog\n244615,horse\n244616,truck\n244617,deer\n244618,airplane\n244619,deer\n244620,bird\n244621,ship\n244622,ship\n244623,bird\n244624,truck\n244625,airplane\n244626,horse\n244627,frog\n244628,truck\n244629,horse\n244630,bird\n244631,dog\n244632,frog\n244633,airplane\n244634,automobile\n244635,deer\n244636,bird\n244637,truck\n244638,frog\n244639,airplane\n244640,deer\n244641,dog\n244642,cat\n244643,bird\n244644,dog\n244645,cat\n244646,airplane\n244647,airplane\n244648,airplane\n244649,dog\n244650,automobile\n244651,frog\n244652,automobile\n244653,cat\n244654,dog\n244655,truck\n244656,cat\n244657,horse\n244658,frog\n244659,frog\n244660,truck\n244661,deer\n244662,frog\n244663,frog\n244664,frog\n244665,horse\n244666,truck\n244667,dog\n244668,deer\n244669,cat\n244670,horse\n244671,truck\n244672,horse\n244673,dog\n244674,airplane\n244675,frog\n244676,dog\n244677,horse\n244678,frog\n244679,horse\n244680,deer\n244681,automobile\n244682,horse\n244683,bird\n244684,airplane\n244685,dog\n244686,airplane\n244687,airplane\n244688,cat\n244689,bird\n244690,deer\n244691,deer\n244692,frog\n244693,dog\n244694,truck\n244695,truck\n244696,truck\n244697,automobile\n244698,truck\n244699,airplane\n244700,deer\n244701,automobile\n244702,deer\n244703,ship\n244704,deer\n244705,horse\n244706,truck\n244707,deer\n244708,truck\n244709,deer\n244710,truck\n244711,dog\n244712,bird\n244713,cat\n244714,horse\n244715,frog\n244716,cat\n244717,horse\n244718,deer\n244719,airplane\n244720,ship\n244721,automobile\n244722,bird\n244723,horse\n244724,truck\n244725,deer\n244726,frog\n244727,airplane\n244728,bird\n244729,truck\n244730,bird\n244731,deer\n244732,cat\n244733,horse\n244734,deer\n244735,automobile\n244736,automobile\n244737,airplane\n244738,cat\n244739,airplane\n244740,cat\n244741,horse\n244742,cat\n244743,deer\n244744,frog\n244745,horse\n244746,bird\n244747,truck\n244748,airplane\n244749,horse\n244750,deer\n244751,frog\n244752,cat\n244753,cat\n244754,airplane\n244755,airplane\n244756,cat\n244757,airplane\n244758,deer\n244759,dog\n244760,deer\n244761,airplane\n244762,bird\n244763,frog\n244764,cat\n244765,deer\n244766,horse\n244767,ship\n244768,horse\n244769,automobile\n244770,horse\n244771,truck\n244772,automobile\n244773,dog\n244774,deer\n244775,automobile\n244776,deer\n244777,cat\n244778,dog\n244779,deer\n244780,frog\n244781,automobile\n244782,deer\n244783,frog\n244784,deer\n244785,deer\n244786,horse\n244787,frog\n244788,truck\n244789,airplane\n244790,dog\n244791,airplane\n244792,deer\n244793,airplane\n244794,dog\n244795,airplane\n244796,bird\n244797,ship\n244798,frog\n244799,cat\n244800,ship\n244801,horse\n244802,truck\n244803,airplane\n244804,cat\n244805,cat\n244806,frog\n244807,horse\n244808,deer\n244809,frog\n244810,cat\n244811,horse\n244812,deer\n244813,cat\n244814,horse\n244815,automobile\n244816,horse\n244817,frog\n244818,cat\n244819,deer\n244820,truck\n244821,truck\n244822,automobile\n244823,dog\n244824,cat\n244825,truck\n244826,bird\n244827,bird\n244828,cat\n244829,truck\n244830,deer\n244831,truck\n244832,dog\n244833,cat\n244834,deer\n244835,ship\n244836,automobile\n244837,deer\n244838,airplane\n244839,frog\n244840,horse\n244841,airplane\n244842,airplane\n244843,airplane\n244844,deer\n244845,ship\n244846,ship\n244847,horse\n244848,deer\n244849,deer\n244850,ship\n244851,bird\n244852,deer\n244853,cat\n244854,automobile\n244855,cat\n244856,ship\n244857,frog\n244858,frog\n244859,truck\n244860,frog\n244861,horse\n244862,frog\n244863,frog\n244864,bird\n244865,cat\n244866,truck\n244867,dog\n244868,airplane\n244869,horse\n244870,truck\n244871,bird\n244872,automobile\n244873,ship\n244874,dog\n244875,ship\n244876,airplane\n244877,airplane\n244878,airplane\n244879,dog\n244880,frog\n244881,cat\n244882,deer\n244883,ship\n244884,horse\n244885,deer\n244886,deer\n244887,bird\n244888,deer\n244889,cat\n244890,dog\n244891,cat\n244892,dog\n244893,automobile\n244894,airplane\n244895,ship\n244896,airplane\n244897,cat\n244898,cat\n244899,automobile\n244900,airplane\n244901,horse\n244902,bird\n244903,deer\n244904,truck\n244905,ship\n244906,horse\n244907,deer\n244908,ship\n244909,frog\n244910,truck\n244911,ship\n244912,airplane\n244913,truck\n244914,deer\n244915,horse\n244916,automobile\n244917,automobile\n244918,ship\n244919,cat\n244920,dog\n244921,deer\n244922,bird\n244923,automobile\n244924,deer\n244925,dog\n244926,deer\n244927,deer\n244928,cat\n244929,ship\n244930,bird\n244931,dog\n244932,horse\n244933,dog\n244934,horse\n244935,dog\n244936,deer\n244937,airplane\n244938,automobile\n244939,dog\n244940,cat\n244941,dog\n244942,ship\n244943,airplane\n244944,deer\n244945,automobile\n244946,deer\n244947,horse\n244948,horse\n244949,ship\n244950,dog\n244951,horse\n244952,horse\n244953,bird\n244954,deer\n244955,deer\n244956,frog\n244957,horse\n244958,cat\n244959,frog\n244960,deer\n244961,airplane\n244962,horse\n244963,dog\n244964,bird\n244965,horse\n244966,frog\n244967,truck\n244968,frog\n244969,deer\n244970,dog\n244971,bird\n244972,dog\n244973,dog\n244974,horse\n244975,airplane\n244976,cat\n244977,frog\n244978,dog\n244979,bird\n244980,dog\n244981,deer\n244982,horse\n244983,dog\n244984,truck\n244985,frog\n244986,frog\n244987,airplane\n244988,ship\n244989,cat\n244990,bird\n244991,bird\n244992,deer\n244993,bird\n244994,frog\n244995,horse\n244996,cat\n244997,frog\n244998,deer\n244999,dog\n245000,dog\n245001,cat\n245002,bird\n245003,truck\n245004,horse\n245005,truck\n245006,airplane\n245007,truck\n245008,bird\n245009,automobile\n245010,airplane\n245011,dog\n245012,horse\n245013,dog\n245014,truck\n245015,horse\n245016,deer\n245017,cat\n245018,dog\n245019,horse\n245020,ship\n245021,cat\n245022,bird\n245023,bird\n245024,deer\n245025,dog\n245026,bird\n245027,bird\n245028,truck\n245029,truck\n245030,bird\n245031,deer\n245032,horse\n245033,deer\n245034,truck\n245035,automobile\n245036,cat\n245037,airplane\n245038,cat\n245039,dog\n245040,airplane\n245041,bird\n245042,frog\n245043,horse\n245044,bird\n245045,deer\n245046,deer\n245047,truck\n245048,bird\n245049,automobile\n245050,frog\n245051,bird\n245052,frog\n245053,dog\n245054,dog\n245055,dog\n245056,automobile\n245057,truck\n245058,bird\n245059,cat\n245060,frog\n245061,dog\n245062,airplane\n245063,truck\n245064,truck\n245065,deer\n245066,cat\n245067,cat\n245068,airplane\n245069,frog\n245070,truck\n245071,airplane\n245072,truck\n245073,ship\n245074,automobile\n245075,dog\n245076,airplane\n245077,cat\n245078,truck\n245079,deer\n245080,truck\n245081,cat\n245082,deer\n245083,deer\n245084,automobile\n245085,automobile\n245086,horse\n245087,bird\n245088,truck\n245089,frog\n245090,ship\n245091,deer\n245092,deer\n245093,frog\n245094,frog\n245095,automobile\n245096,airplane\n245097,deer\n245098,horse\n245099,truck\n245100,bird\n245101,bird\n245102,cat\n245103,airplane\n245104,automobile\n245105,dog\n245106,bird\n245107,frog\n245108,truck\n245109,ship\n245110,deer\n245111,truck\n245112,automobile\n245113,airplane\n245114,cat\n245115,ship\n245116,dog\n245117,horse\n245118,deer\n245119,automobile\n245120,deer\n245121,airplane\n245122,truck\n245123,dog\n245124,horse\n245125,cat\n245126,truck\n245127,automobile\n245128,deer\n245129,bird\n245130,ship\n245131,truck\n245132,bird\n245133,cat\n245134,deer\n245135,truck\n245136,ship\n245137,ship\n245138,frog\n245139,deer\n245140,horse\n245141,dog\n245142,bird\n245143,cat\n245144,dog\n245145,dog\n245146,ship\n245147,airplane\n245148,airplane\n245149,automobile\n245150,horse\n245151,dog\n245152,ship\n245153,horse\n245154,horse\n245155,bird\n245156,deer\n245157,deer\n245158,bird\n245159,truck\n245160,dog\n245161,deer\n245162,truck\n245163,frog\n245164,frog\n245165,deer\n245166,dog\n245167,truck\n245168,ship\n245169,dog\n245170,airplane\n245171,automobile\n245172,deer\n245173,frog\n245174,deer\n245175,ship\n245176,bird\n245177,frog\n245178,automobile\n245179,truck\n245180,deer\n245181,bird\n245182,ship\n245183,airplane\n245184,airplane\n245185,frog\n245186,bird\n245187,deer\n245188,automobile\n245189,automobile\n245190,frog\n245191,dog\n245192,truck\n245193,cat\n245194,deer\n245195,truck\n245196,frog\n245197,dog\n245198,cat\n245199,cat\n245200,dog\n245201,truck\n245202,frog\n245203,frog\n245204,frog\n245205,cat\n245206,horse\n245207,dog\n245208,automobile\n245209,cat\n245210,bird\n245211,bird\n245212,frog\n245213,automobile\n245214,bird\n245215,dog\n245216,bird\n245217,ship\n245218,cat\n245219,cat\n245220,airplane\n245221,automobile\n245222,horse\n245223,horse\n245224,dog\n245225,ship\n245226,dog\n245227,deer\n245228,truck\n245229,airplane\n245230,ship\n245231,ship\n245232,deer\n245233,cat\n245234,airplane\n245235,horse\n245236,deer\n245237,bird\n245238,airplane\n245239,truck\n245240,dog\n245241,cat\n245242,cat\n245243,bird\n245244,truck\n245245,cat\n245246,frog\n245247,cat\n245248,frog\n245249,ship\n245250,ship\n245251,cat\n245252,ship\n245253,horse\n245254,frog\n245255,automobile\n245256,cat\n245257,truck\n245258,cat\n245259,ship\n245260,ship\n245261,automobile\n245262,bird\n245263,deer\n245264,frog\n245265,airplane\n245266,dog\n245267,deer\n245268,horse\n245269,automobile\n245270,deer\n245271,deer\n245272,frog\n245273,automobile\n245274,automobile\n245275,frog\n245276,airplane\n245277,truck\n245278,deer\n245279,frog\n245280,airplane\n245281,deer\n245282,frog\n245283,truck\n245284,automobile\n245285,ship\n245286,deer\n245287,dog\n245288,horse\n245289,bird\n245290,cat\n245291,bird\n245292,airplane\n245293,cat\n245294,bird\n245295,cat\n245296,cat\n245297,dog\n245298,ship\n245299,cat\n245300,horse\n245301,dog\n245302,bird\n245303,deer\n245304,dog\n245305,frog\n245306,cat\n245307,ship\n245308,dog\n245309,cat\n245310,frog\n245311,airplane\n245312,frog\n245313,truck\n245314,dog\n245315,dog\n245316,bird\n245317,truck\n245318,dog\n245319,bird\n245320,bird\n245321,horse\n245322,deer\n245323,bird\n245324,frog\n245325,cat\n245326,ship\n245327,ship\n245328,cat\n245329,truck\n245330,frog\n245331,cat\n245332,airplane\n245333,truck\n245334,automobile\n245335,dog\n245336,horse\n245337,bird\n245338,automobile\n245339,airplane\n245340,horse\n245341,ship\n245342,frog\n245343,ship\n245344,airplane\n245345,dog\n245346,cat\n245347,deer\n245348,truck\n245349,bird\n245350,truck\n245351,horse\n245352,dog\n245353,horse\n245354,deer\n245355,frog\n245356,cat\n245357,dog\n245358,automobile\n245359,frog\n245360,dog\n245361,airplane\n245362,truck\n245363,frog\n245364,ship\n245365,ship\n245366,deer\n245367,truck\n245368,airplane\n245369,frog\n245370,horse\n245371,dog\n245372,bird\n245373,deer\n245374,airplane\n245375,truck\n245376,cat\n245377,dog\n245378,frog\n245379,horse\n245380,airplane\n245381,bird\n245382,cat\n245383,cat\n245384,ship\n245385,truck\n245386,bird\n245387,airplane\n245388,dog\n245389,deer\n245390,cat\n245391,bird\n245392,bird\n245393,automobile\n245394,deer\n245395,airplane\n245396,airplane\n245397,bird\n245398,cat\n245399,cat\n245400,automobile\n245401,bird\n245402,cat\n245403,airplane\n245404,airplane\n245405,deer\n245406,dog\n245407,automobile\n245408,ship\n245409,bird\n245410,airplane\n245411,automobile\n245412,ship\n245413,horse\n245414,automobile\n245415,frog\n245416,bird\n245417,dog\n245418,truck\n245419,ship\n245420,frog\n245421,horse\n245422,deer\n245423,ship\n245424,airplane\n245425,airplane\n245426,truck\n245427,automobile\n245428,horse\n245429,horse\n245430,bird\n245431,deer\n245432,cat\n245433,deer\n245434,deer\n245435,bird\n245436,horse\n245437,airplane\n245438,deer\n245439,dog\n245440,deer\n245441,cat\n245442,deer\n245443,deer\n245444,cat\n245445,cat\n245446,horse\n245447,cat\n245448,horse\n245449,deer\n245450,dog\n245451,airplane\n245452,cat\n245453,cat\n245454,cat\n245455,deer\n245456,frog\n245457,ship\n245458,deer\n245459,horse\n245460,bird\n245461,dog\n245462,automobile\n245463,airplane\n245464,airplane\n245465,dog\n245466,frog\n245467,airplane\n245468,dog\n245469,frog\n245470,deer\n245471,cat\n245472,ship\n245473,airplane\n245474,ship\n245475,horse\n245476,dog\n245477,dog\n245478,cat\n245479,horse\n245480,truck\n245481,dog\n245482,dog\n245483,ship\n245484,truck\n245485,truck\n245486,dog\n245487,cat\n245488,deer\n245489,automobile\n245490,frog\n245491,dog\n245492,cat\n245493,bird\n245494,automobile\n245495,bird\n245496,bird\n245497,horse\n245498,airplane\n245499,cat\n245500,dog\n245501,frog\n245502,automobile\n245503,automobile\n245504,truck\n245505,truck\n245506,cat\n245507,cat\n245508,bird\n245509,truck\n245510,truck\n245511,cat\n245512,dog\n245513,ship\n245514,frog\n245515,dog\n245516,ship\n245517,dog\n245518,deer\n245519,airplane\n245520,airplane\n245521,truck\n245522,airplane\n245523,bird\n245524,horse\n245525,automobile\n245526,automobile\n245527,cat\n245528,dog\n245529,frog\n245530,ship\n245531,deer\n245532,ship\n245533,truck\n245534,cat\n245535,ship\n245536,frog\n245537,truck\n245538,horse\n245539,truck\n245540,dog\n245541,frog\n245542,cat\n245543,truck\n245544,automobile\n245545,frog\n245546,airplane\n245547,horse\n245548,frog\n245549,frog\n245550,cat\n245551,cat\n245552,horse\n245553,frog\n245554,truck\n245555,dog\n245556,bird\n245557,airplane\n245558,dog\n245559,frog\n245560,frog\n245561,automobile\n245562,deer\n245563,frog\n245564,ship\n245565,dog\n245566,dog\n245567,cat\n245568,deer\n245569,cat\n245570,truck\n245571,cat\n245572,deer\n245573,cat\n245574,ship\n245575,ship\n245576,frog\n245577,airplane\n245578,dog\n245579,deer\n245580,dog\n245581,truck\n245582,horse\n245583,ship\n245584,ship\n245585,horse\n245586,airplane\n245587,ship\n245588,airplane\n245589,ship\n245590,horse\n245591,ship\n245592,cat\n245593,automobile\n245594,horse\n245595,dog\n245596,truck\n245597,bird\n245598,cat\n245599,cat\n245600,deer\n245601,frog\n245602,frog\n245603,cat\n245604,frog\n245605,bird\n245606,horse\n245607,frog\n245608,deer\n245609,dog\n245610,dog\n245611,ship\n245612,truck\n245613,airplane\n245614,bird\n245615,ship\n245616,truck\n245617,cat\n245618,dog\n245619,truck\n245620,cat\n245621,cat\n245622,truck\n245623,bird\n245624,cat\n245625,dog\n245626,horse\n245627,bird\n245628,dog\n245629,dog\n245630,bird\n245631,automobile\n245632,ship\n245633,automobile\n245634,cat\n245635,cat\n245636,deer\n245637,truck\n245638,truck\n245639,cat\n245640,bird\n245641,ship\n245642,bird\n245643,ship\n245644,horse\n245645,frog\n245646,airplane\n245647,cat\n245648,deer\n245649,deer\n245650,bird\n245651,automobile\n245652,deer\n245653,deer\n245654,bird\n245655,horse\n245656,cat\n245657,ship\n245658,truck\n245659,cat\n245660,deer\n245661,ship\n245662,dog\n245663,dog\n245664,bird\n245665,ship\n245666,airplane\n245667,cat\n245668,bird\n245669,frog\n245670,frog\n245671,bird\n245672,airplane\n245673,horse\n245674,bird\n245675,deer\n245676,bird\n245677,cat\n245678,ship\n245679,airplane\n245680,truck\n245681,ship\n245682,truck\n245683,deer\n245684,deer\n245685,ship\n245686,truck\n245687,dog\n245688,horse\n245689,bird\n245690,cat\n245691,bird\n245692,truck\n245693,frog\n245694,bird\n245695,deer\n245696,deer\n245697,frog\n245698,deer\n245699,airplane\n245700,deer\n245701,airplane\n245702,bird\n245703,horse\n245704,bird\n245705,horse\n245706,horse\n245707,cat\n245708,bird\n245709,horse\n245710,automobile\n245711,cat\n245712,ship\n245713,cat\n245714,frog\n245715,airplane\n245716,horse\n245717,frog\n245718,bird\n245719,dog\n245720,dog\n245721,cat\n245722,deer\n245723,automobile\n245724,deer\n245725,airplane\n245726,truck\n245727,frog\n245728,frog\n245729,horse\n245730,automobile\n245731,bird\n245732,cat\n245733,truck\n245734,truck\n245735,deer\n245736,ship\n245737,dog\n245738,automobile\n245739,deer\n245740,ship\n245741,airplane\n245742,cat\n245743,airplane\n245744,deer\n245745,automobile\n245746,deer\n245747,ship\n245748,frog\n245749,frog\n245750,ship\n245751,airplane\n245752,deer\n245753,deer\n245754,truck\n245755,cat\n245756,deer\n245757,deer\n245758,airplane\n245759,dog\n245760,truck\n245761,deer\n245762,ship\n245763,airplane\n245764,deer\n245765,cat\n245766,ship\n245767,airplane\n245768,dog\n245769,cat\n245770,deer\n245771,bird\n245772,bird\n245773,ship\n245774,horse\n245775,frog\n245776,frog\n245777,airplane\n245778,frog\n245779,deer\n245780,bird\n245781,cat\n245782,ship\n245783,ship\n245784,truck\n245785,dog\n245786,ship\n245787,airplane\n245788,truck\n245789,dog\n245790,frog\n245791,airplane\n245792,deer\n245793,deer\n245794,frog\n245795,ship\n245796,cat\n245797,automobile\n245798,deer\n245799,bird\n245800,automobile\n245801,frog\n245802,cat\n245803,horse\n245804,truck\n245805,automobile\n245806,ship\n245807,dog\n245808,ship\n245809,airplane\n245810,deer\n245811,airplane\n245812,ship\n245813,bird\n245814,ship\n245815,ship\n245816,frog\n245817,truck\n245818,dog\n245819,cat\n245820,truck\n245821,deer\n245822,dog\n245823,cat\n245824,frog\n245825,automobile\n245826,frog\n245827,cat\n245828,cat\n245829,horse\n245830,deer\n245831,frog\n245832,airplane\n245833,cat\n245834,bird\n245835,horse\n245836,deer\n245837,bird\n245838,truck\n245839,ship\n245840,automobile\n245841,bird\n245842,frog\n245843,frog\n245844,truck\n245845,airplane\n245846,bird\n245847,automobile\n245848,cat\n245849,ship\n245850,truck\n245851,ship\n245852,ship\n245853,ship\n245854,ship\n245855,deer\n245856,cat\n245857,bird\n245858,truck\n245859,bird\n245860,dog\n245861,frog\n245862,frog\n245863,horse\n245864,frog\n245865,deer\n245866,frog\n245867,deer\n245868,horse\n245869,bird\n245870,airplane\n245871,ship\n245872,deer\n245873,deer\n245874,deer\n245875,horse\n245876,horse\n245877,cat\n245878,truck\n245879,cat\n245880,bird\n245881,dog\n245882,deer\n245883,automobile\n245884,bird\n245885,frog\n245886,airplane\n245887,horse\n245888,truck\n245889,frog\n245890,truck\n245891,horse\n245892,airplane\n245893,cat\n245894,horse\n245895,cat\n245896,truck\n245897,deer\n245898,ship\n245899,cat\n245900,dog\n245901,automobile\n245902,deer\n245903,airplane\n245904,deer\n245905,deer\n245906,truck\n245907,automobile\n245908,ship\n245909,automobile\n245910,ship\n245911,deer\n245912,cat\n245913,automobile\n245914,truck\n245915,ship\n245916,cat\n245917,cat\n245918,dog\n245919,automobile\n245920,cat\n245921,airplane\n245922,airplane\n245923,bird\n245924,horse\n245925,airplane\n245926,bird\n245927,bird\n245928,frog\n245929,cat\n245930,dog\n245931,cat\n245932,airplane\n245933,ship\n245934,frog\n245935,frog\n245936,airplane\n245937,cat\n245938,airplane\n245939,horse\n245940,cat\n245941,frog\n245942,horse\n245943,deer\n245944,ship\n245945,ship\n245946,cat\n245947,bird\n245948,automobile\n245949,dog\n245950,deer\n245951,truck\n245952,cat\n245953,cat\n245954,frog\n245955,horse\n245956,dog\n245957,bird\n245958,airplane\n245959,cat\n245960,dog\n245961,horse\n245962,airplane\n245963,airplane\n245964,airplane\n245965,cat\n245966,truck\n245967,ship\n245968,deer\n245969,deer\n245970,bird\n245971,airplane\n245972,frog\n245973,cat\n245974,frog\n245975,cat\n245976,frog\n245977,dog\n245978,dog\n245979,automobile\n245980,bird\n245981,cat\n245982,bird\n245983,horse\n245984,dog\n245985,bird\n245986,deer\n245987,ship\n245988,deer\n245989,automobile\n245990,frog\n245991,truck\n245992,cat\n245993,truck\n245994,frog\n245995,deer\n245996,ship\n245997,automobile\n245998,horse\n245999,ship\n246000,cat\n246001,cat\n246002,bird\n246003,cat\n246004,horse\n246005,airplane\n246006,deer\n246007,automobile\n246008,deer\n246009,deer\n246010,frog\n246011,dog\n246012,dog\n246013,bird\n246014,ship\n246015,horse\n246016,deer\n246017,bird\n246018,frog\n246019,deer\n246020,truck\n246021,cat\n246022,dog\n246023,truck\n246024,ship\n246025,deer\n246026,airplane\n246027,dog\n246028,dog\n246029,cat\n246030,bird\n246031,truck\n246032,deer\n246033,frog\n246034,bird\n246035,ship\n246036,deer\n246037,deer\n246038,cat\n246039,bird\n246040,truck\n246041,dog\n246042,ship\n246043,frog\n246044,dog\n246045,horse\n246046,frog\n246047,ship\n246048,horse\n246049,airplane\n246050,airplane\n246051,ship\n246052,dog\n246053,truck\n246054,airplane\n246055,deer\n246056,cat\n246057,airplane\n246058,truck\n246059,deer\n246060,bird\n246061,cat\n246062,frog\n246063,cat\n246064,ship\n246065,deer\n246066,deer\n246067,ship\n246068,cat\n246069,cat\n246070,ship\n246071,airplane\n246072,deer\n246073,ship\n246074,deer\n246075,frog\n246076,airplane\n246077,cat\n246078,horse\n246079,cat\n246080,deer\n246081,deer\n246082,frog\n246083,automobile\n246084,cat\n246085,automobile\n246086,horse\n246087,ship\n246088,cat\n246089,bird\n246090,deer\n246091,cat\n246092,frog\n246093,deer\n246094,dog\n246095,dog\n246096,ship\n246097,airplane\n246098,truck\n246099,horse\n246100,bird\n246101,truck\n246102,bird\n246103,cat\n246104,deer\n246105,deer\n246106,ship\n246107,airplane\n246108,truck\n246109,truck\n246110,ship\n246111,horse\n246112,automobile\n246113,horse\n246114,bird\n246115,truck\n246116,ship\n246117,deer\n246118,airplane\n246119,deer\n246120,bird\n246121,dog\n246122,ship\n246123,frog\n246124,bird\n246125,cat\n246126,bird\n246127,deer\n246128,ship\n246129,truck\n246130,truck\n246131,horse\n246132,airplane\n246133,deer\n246134,dog\n246135,ship\n246136,dog\n246137,automobile\n246138,dog\n246139,truck\n246140,ship\n246141,dog\n246142,horse\n246143,truck\n246144,deer\n246145,dog\n246146,dog\n246147,cat\n246148,deer\n246149,ship\n246150,cat\n246151,dog\n246152,deer\n246153,deer\n246154,horse\n246155,truck\n246156,bird\n246157,horse\n246158,airplane\n246159,truck\n246160,truck\n246161,cat\n246162,dog\n246163,dog\n246164,bird\n246165,bird\n246166,cat\n246167,deer\n246168,bird\n246169,airplane\n246170,bird\n246171,frog\n246172,cat\n246173,airplane\n246174,bird\n246175,truck\n246176,ship\n246177,bird\n246178,ship\n246179,automobile\n246180,deer\n246181,deer\n246182,ship\n246183,dog\n246184,automobile\n246185,truck\n246186,cat\n246187,cat\n246188,frog\n246189,airplane\n246190,cat\n246191,deer\n246192,deer\n246193,truck\n246194,truck\n246195,frog\n246196,horse\n246197,bird\n246198,horse\n246199,dog\n246200,horse\n246201,automobile\n246202,truck\n246203,horse\n246204,cat\n246205,truck\n246206,airplane\n246207,truck\n246208,horse\n246209,frog\n246210,ship\n246211,ship\n246212,deer\n246213,deer\n246214,bird\n246215,deer\n246216,frog\n246217,cat\n246218,deer\n246219,airplane\n246220,horse\n246221,ship\n246222,bird\n246223,dog\n246224,truck\n246225,bird\n246226,airplane\n246227,bird\n246228,frog\n246229,bird\n246230,truck\n246231,frog\n246232,truck\n246233,truck\n246234,cat\n246235,dog\n246236,ship\n246237,horse\n246238,deer\n246239,cat\n246240,dog\n246241,ship\n246242,cat\n246243,ship\n246244,truck\n246245,deer\n246246,bird\n246247,dog\n246248,frog\n246249,deer\n246250,cat\n246251,truck\n246252,cat\n246253,cat\n246254,frog\n246255,deer\n246256,automobile\n246257,frog\n246258,bird\n246259,deer\n246260,cat\n246261,dog\n246262,bird\n246263,ship\n246264,frog\n246265,frog\n246266,truck\n246267,horse\n246268,frog\n246269,bird\n246270,deer\n246271,automobile\n246272,deer\n246273,dog\n246274,airplane\n246275,cat\n246276,ship\n246277,dog\n246278,truck\n246279,automobile\n246280,frog\n246281,dog\n246282,horse\n246283,bird\n246284,ship\n246285,bird\n246286,horse\n246287,horse\n246288,horse\n246289,ship\n246290,truck\n246291,cat\n246292,frog\n246293,horse\n246294,dog\n246295,cat\n246296,truck\n246297,ship\n246298,dog\n246299,automobile\n246300,bird\n246301,truck\n246302,horse\n246303,airplane\n246304,cat\n246305,deer\n246306,frog\n246307,automobile\n246308,horse\n246309,cat\n246310,truck\n246311,frog\n246312,frog\n246313,deer\n246314,truck\n246315,deer\n246316,dog\n246317,deer\n246318,dog\n246319,automobile\n246320,bird\n246321,bird\n246322,deer\n246323,automobile\n246324,truck\n246325,deer\n246326,cat\n246327,truck\n246328,deer\n246329,cat\n246330,deer\n246331,deer\n246332,frog\n246333,cat\n246334,dog\n246335,automobile\n246336,bird\n246337,horse\n246338,deer\n246339,frog\n246340,deer\n246341,frog\n246342,airplane\n246343,deer\n246344,truck\n246345,airplane\n246346,cat\n246347,deer\n246348,truck\n246349,truck\n246350,horse\n246351,frog\n246352,frog\n246353,automobile\n246354,horse\n246355,cat\n246356,bird\n246357,dog\n246358,deer\n246359,dog\n246360,airplane\n246361,automobile\n246362,truck\n246363,dog\n246364,truck\n246365,dog\n246366,horse\n246367,truck\n246368,deer\n246369,bird\n246370,automobile\n246371,frog\n246372,frog\n246373,bird\n246374,horse\n246375,airplane\n246376,truck\n246377,bird\n246378,truck\n246379,automobile\n246380,dog\n246381,horse\n246382,deer\n246383,deer\n246384,cat\n246385,ship\n246386,frog\n246387,deer\n246388,ship\n246389,frog\n246390,truck\n246391,bird\n246392,automobile\n246393,ship\n246394,bird\n246395,ship\n246396,horse\n246397,bird\n246398,bird\n246399,cat\n246400,dog\n246401,airplane\n246402,cat\n246403,cat\n246404,automobile\n246405,frog\n246406,horse\n246407,cat\n246408,horse\n246409,deer\n246410,dog\n246411,horse\n246412,ship\n246413,cat\n246414,cat\n246415,bird\n246416,deer\n246417,ship\n246418,deer\n246419,frog\n246420,dog\n246421,automobile\n246422,airplane\n246423,truck\n246424,deer\n246425,horse\n246426,ship\n246427,horse\n246428,automobile\n246429,dog\n246430,deer\n246431,frog\n246432,deer\n246433,automobile\n246434,cat\n246435,automobile\n246436,horse\n246437,cat\n246438,frog\n246439,horse\n246440,deer\n246441,frog\n246442,deer\n246443,automobile\n246444,deer\n246445,deer\n246446,frog\n246447,automobile\n246448,automobile\n246449,dog\n246450,ship\n246451,dog\n246452,frog\n246453,automobile\n246454,airplane\n246455,frog\n246456,dog\n246457,truck\n246458,dog\n246459,deer\n246460,bird\n246461,truck\n246462,truck\n246463,dog\n246464,cat\n246465,frog\n246466,airplane\n246467,cat\n246468,horse\n246469,frog\n246470,bird\n246471,automobile\n246472,ship\n246473,horse\n246474,airplane\n246475,deer\n246476,deer\n246477,ship\n246478,ship\n246479,automobile\n246480,frog\n246481,automobile\n246482,horse\n246483,frog\n246484,deer\n246485,cat\n246486,horse\n246487,airplane\n246488,horse\n246489,horse\n246490,automobile\n246491,airplane\n246492,automobile\n246493,truck\n246494,deer\n246495,airplane\n246496,frog\n246497,dog\n246498,horse\n246499,automobile\n246500,frog\n246501,frog\n246502,horse\n246503,ship\n246504,automobile\n246505,airplane\n246506,cat\n246507,cat\n246508,deer\n246509,horse\n246510,truck\n246511,bird\n246512,deer\n246513,deer\n246514,deer\n246515,deer\n246516,ship\n246517,ship\n246518,automobile\n246519,dog\n246520,horse\n246521,deer\n246522,frog\n246523,deer\n246524,deer\n246525,frog\n246526,truck\n246527,airplane\n246528,deer\n246529,truck\n246530,deer\n246531,cat\n246532,horse\n246533,cat\n246534,automobile\n246535,frog\n246536,frog\n246537,bird\n246538,deer\n246539,ship\n246540,frog\n246541,horse\n246542,bird\n246543,dog\n246544,bird\n246545,bird\n246546,automobile\n246547,frog\n246548,deer\n246549,horse\n246550,deer\n246551,truck\n246552,dog\n246553,dog\n246554,dog\n246555,airplane\n246556,automobile\n246557,frog\n246558,cat\n246559,cat\n246560,airplane\n246561,truck\n246562,frog\n246563,ship\n246564,horse\n246565,bird\n246566,dog\n246567,frog\n246568,automobile\n246569,frog\n246570,deer\n246571,deer\n246572,ship\n246573,automobile\n246574,truck\n246575,truck\n246576,deer\n246577,airplane\n246578,deer\n246579,bird\n246580,dog\n246581,cat\n246582,automobile\n246583,deer\n246584,frog\n246585,bird\n246586,dog\n246587,truck\n246588,deer\n246589,dog\n246590,deer\n246591,dog\n246592,horse\n246593,airplane\n246594,truck\n246595,cat\n246596,deer\n246597,deer\n246598,deer\n246599,dog\n246600,airplane\n246601,frog\n246602,bird\n246603,automobile\n246604,horse\n246605,cat\n246606,dog\n246607,cat\n246608,airplane\n246609,dog\n246610,truck\n246611,horse\n246612,airplane\n246613,horse\n246614,deer\n246615,automobile\n246616,bird\n246617,frog\n246618,cat\n246619,deer\n246620,ship\n246621,cat\n246622,cat\n246623,horse\n246624,deer\n246625,deer\n246626,frog\n246627,bird\n246628,truck\n246629,deer\n246630,horse\n246631,cat\n246632,horse\n246633,truck\n246634,dog\n246635,dog\n246636,bird\n246637,truck\n246638,automobile\n246639,truck\n246640,ship\n246641,horse\n246642,cat\n246643,frog\n246644,cat\n246645,bird\n246646,automobile\n246647,truck\n246648,cat\n246649,bird\n246650,deer\n246651,bird\n246652,truck\n246653,horse\n246654,truck\n246655,bird\n246656,cat\n246657,deer\n246658,automobile\n246659,airplane\n246660,deer\n246661,airplane\n246662,ship\n246663,cat\n246664,horse\n246665,horse\n246666,deer\n246667,ship\n246668,airplane\n246669,horse\n246670,dog\n246671,ship\n246672,cat\n246673,dog\n246674,automobile\n246675,ship\n246676,bird\n246677,bird\n246678,dog\n246679,ship\n246680,frog\n246681,airplane\n246682,cat\n246683,automobile\n246684,airplane\n246685,bird\n246686,ship\n246687,cat\n246688,frog\n246689,cat\n246690,deer\n246691,truck\n246692,truck\n246693,horse\n246694,cat\n246695,deer\n246696,horse\n246697,ship\n246698,bird\n246699,airplane\n246700,dog\n246701,airplane\n246702,cat\n246703,deer\n246704,truck\n246705,automobile\n246706,deer\n246707,deer\n246708,deer\n246709,frog\n246710,cat\n246711,airplane\n246712,frog\n246713,airplane\n246714,ship\n246715,bird\n246716,automobile\n246717,truck\n246718,ship\n246719,horse\n246720,truck\n246721,automobile\n246722,bird\n246723,airplane\n246724,deer\n246725,dog\n246726,automobile\n246727,cat\n246728,horse\n246729,frog\n246730,cat\n246731,dog\n246732,bird\n246733,automobile\n246734,horse\n246735,dog\n246736,frog\n246737,cat\n246738,ship\n246739,deer\n246740,bird\n246741,ship\n246742,frog\n246743,horse\n246744,frog\n246745,bird\n246746,cat\n246747,horse\n246748,dog\n246749,frog\n246750,frog\n246751,dog\n246752,bird\n246753,deer\n246754,deer\n246755,deer\n246756,frog\n246757,automobile\n246758,frog\n246759,ship\n246760,airplane\n246761,airplane\n246762,horse\n246763,airplane\n246764,airplane\n246765,automobile\n246766,deer\n246767,cat\n246768,cat\n246769,deer\n246770,deer\n246771,horse\n246772,bird\n246773,deer\n246774,truck\n246775,cat\n246776,deer\n246777,bird\n246778,ship\n246779,deer\n246780,deer\n246781,bird\n246782,dog\n246783,dog\n246784,bird\n246785,dog\n246786,truck\n246787,deer\n246788,automobile\n246789,ship\n246790,deer\n246791,frog\n246792,ship\n246793,airplane\n246794,automobile\n246795,truck\n246796,bird\n246797,truck\n246798,cat\n246799,truck\n246800,cat\n246801,truck\n246802,dog\n246803,dog\n246804,truck\n246805,deer\n246806,deer\n246807,frog\n246808,frog\n246809,airplane\n246810,deer\n246811,truck\n246812,bird\n246813,cat\n246814,dog\n246815,ship\n246816,truck\n246817,deer\n246818,cat\n246819,deer\n246820,cat\n246821,automobile\n246822,airplane\n246823,cat\n246824,bird\n246825,horse\n246826,dog\n246827,cat\n246828,airplane\n246829,cat\n246830,horse\n246831,ship\n246832,horse\n246833,ship\n246834,automobile\n246835,horse\n246836,horse\n246837,airplane\n246838,cat\n246839,frog\n246840,automobile\n246841,dog\n246842,truck\n246843,ship\n246844,dog\n246845,ship\n246846,dog\n246847,ship\n246848,truck\n246849,deer\n246850,truck\n246851,deer\n246852,cat\n246853,bird\n246854,frog\n246855,airplane\n246856,dog\n246857,frog\n246858,automobile\n246859,bird\n246860,truck\n246861,truck\n246862,deer\n246863,deer\n246864,dog\n246865,bird\n246866,airplane\n246867,deer\n246868,truck\n246869,deer\n246870,airplane\n246871,horse\n246872,deer\n246873,cat\n246874,automobile\n246875,ship\n246876,frog\n246877,ship\n246878,automobile\n246879,cat\n246880,bird\n246881,airplane\n246882,airplane\n246883,airplane\n246884,deer\n246885,cat\n246886,cat\n246887,dog\n246888,ship\n246889,frog\n246890,horse\n246891,horse\n246892,deer\n246893,dog\n246894,dog\n246895,truck\n246896,automobile\n246897,automobile\n246898,truck\n246899,frog\n246900,horse\n246901,ship\n246902,truck\n246903,horse\n246904,truck\n246905,bird\n246906,truck\n246907,cat\n246908,truck\n246909,frog\n246910,horse\n246911,truck\n246912,frog\n246913,cat\n246914,deer\n246915,horse\n246916,frog\n246917,automobile\n246918,dog\n246919,airplane\n246920,ship\n246921,deer\n246922,bird\n246923,airplane\n246924,deer\n246925,deer\n246926,horse\n246927,bird\n246928,automobile\n246929,horse\n246930,deer\n246931,truck\n246932,dog\n246933,horse\n246934,deer\n246935,truck\n246936,dog\n246937,cat\n246938,automobile\n246939,deer\n246940,ship\n246941,truck\n246942,dog\n246943,deer\n246944,ship\n246945,cat\n246946,cat\n246947,airplane\n246948,horse\n246949,automobile\n246950,cat\n246951,deer\n246952,cat\n246953,frog\n246954,deer\n246955,truck\n246956,horse\n246957,deer\n246958,truck\n246959,frog\n246960,frog\n246961,dog\n246962,frog\n246963,cat\n246964,bird\n246965,cat\n246966,cat\n246967,frog\n246968,airplane\n246969,deer\n246970,truck\n246971,cat\n246972,truck\n246973,ship\n246974,frog\n246975,horse\n246976,ship\n246977,deer\n246978,frog\n246979,cat\n246980,dog\n246981,airplane\n246982,frog\n246983,bird\n246984,horse\n246985,frog\n246986,deer\n246987,ship\n246988,horse\n246989,frog\n246990,automobile\n246991,automobile\n246992,airplane\n246993,ship\n246994,cat\n246995,truck\n246996,ship\n246997,cat\n246998,dog\n246999,deer\n247000,cat\n247001,deer\n247002,dog\n247003,frog\n247004,truck\n247005,deer\n247006,horse\n247007,bird\n247008,automobile\n247009,frog\n247010,dog\n247011,truck\n247012,frog\n247013,ship\n247014,horse\n247015,dog\n247016,automobile\n247017,airplane\n247018,bird\n247019,ship\n247020,bird\n247021,truck\n247022,dog\n247023,bird\n247024,deer\n247025,deer\n247026,horse\n247027,deer\n247028,deer\n247029,cat\n247030,cat\n247031,horse\n247032,airplane\n247033,cat\n247034,bird\n247035,deer\n247036,ship\n247037,automobile\n247038,horse\n247039,bird\n247040,deer\n247041,horse\n247042,ship\n247043,airplane\n247044,horse\n247045,bird\n247046,airplane\n247047,deer\n247048,dog\n247049,horse\n247050,cat\n247051,cat\n247052,airplane\n247053,deer\n247054,ship\n247055,cat\n247056,frog\n247057,bird\n247058,truck\n247059,horse\n247060,ship\n247061,frog\n247062,deer\n247063,automobile\n247064,horse\n247065,horse\n247066,truck\n247067,ship\n247068,airplane\n247069,deer\n247070,horse\n247071,deer\n247072,truck\n247073,frog\n247074,truck\n247075,cat\n247076,deer\n247077,bird\n247078,deer\n247079,cat\n247080,cat\n247081,frog\n247082,bird\n247083,bird\n247084,frog\n247085,horse\n247086,airplane\n247087,truck\n247088,cat\n247089,dog\n247090,airplane\n247091,horse\n247092,bird\n247093,cat\n247094,cat\n247095,frog\n247096,truck\n247097,horse\n247098,dog\n247099,horse\n247100,frog\n247101,cat\n247102,deer\n247103,airplane\n247104,dog\n247105,ship\n247106,truck\n247107,dog\n247108,ship\n247109,ship\n247110,truck\n247111,frog\n247112,truck\n247113,dog\n247114,horse\n247115,automobile\n247116,deer\n247117,deer\n247118,cat\n247119,horse\n247120,ship\n247121,dog\n247122,ship\n247123,deer\n247124,dog\n247125,deer\n247126,deer\n247127,deer\n247128,horse\n247129,frog\n247130,horse\n247131,frog\n247132,automobile\n247133,deer\n247134,bird\n247135,airplane\n247136,cat\n247137,cat\n247138,frog\n247139,automobile\n247140,deer\n247141,frog\n247142,truck\n247143,truck\n247144,truck\n247145,dog\n247146,airplane\n247147,deer\n247148,bird\n247149,frog\n247150,cat\n247151,deer\n247152,deer\n247153,cat\n247154,cat\n247155,deer\n247156,horse\n247157,truck\n247158,truck\n247159,automobile\n247160,automobile\n247161,truck\n247162,deer\n247163,deer\n247164,truck\n247165,frog\n247166,deer\n247167,horse\n247168,horse\n247169,cat\n247170,horse\n247171,horse\n247172,deer\n247173,frog\n247174,ship\n247175,airplane\n247176,horse\n247177,deer\n247178,deer\n247179,airplane\n247180,cat\n247181,frog\n247182,airplane\n247183,frog\n247184,dog\n247185,bird\n247186,horse\n247187,airplane\n247188,airplane\n247189,airplane\n247190,horse\n247191,airplane\n247192,deer\n247193,dog\n247194,cat\n247195,bird\n247196,bird\n247197,frog\n247198,ship\n247199,truck\n247200,horse\n247201,frog\n247202,automobile\n247203,horse\n247204,deer\n247205,cat\n247206,horse\n247207,airplane\n247208,dog\n247209,bird\n247210,deer\n247211,frog\n247212,frog\n247213,dog\n247214,cat\n247215,automobile\n247216,frog\n247217,ship\n247218,ship\n247219,horse\n247220,horse\n247221,truck\n247222,airplane\n247223,deer\n247224,bird\n247225,dog\n247226,cat\n247227,horse\n247228,horse\n247229,cat\n247230,deer\n247231,dog\n247232,bird\n247233,airplane\n247234,deer\n247235,truck\n247236,deer\n247237,deer\n247238,deer\n247239,deer\n247240,bird\n247241,automobile\n247242,bird\n247243,bird\n247244,frog\n247245,dog\n247246,ship\n247247,automobile\n247248,airplane\n247249,dog\n247250,cat\n247251,horse\n247252,bird\n247253,truck\n247254,automobile\n247255,truck\n247256,frog\n247257,automobile\n247258,deer\n247259,airplane\n247260,automobile\n247261,truck\n247262,automobile\n247263,cat\n247264,deer\n247265,truck\n247266,frog\n247267,truck\n247268,horse\n247269,deer\n247270,airplane\n247271,frog\n247272,deer\n247273,horse\n247274,airplane\n247275,frog\n247276,bird\n247277,deer\n247278,horse\n247279,cat\n247280,truck\n247281,ship\n247282,bird\n247283,airplane\n247284,cat\n247285,cat\n247286,truck\n247287,automobile\n247288,airplane\n247289,ship\n247290,dog\n247291,ship\n247292,truck\n247293,deer\n247294,truck\n247295,frog\n247296,cat\n247297,frog\n247298,cat\n247299,ship\n247300,frog\n247301,ship\n247302,dog\n247303,truck\n247304,airplane\n247305,automobile\n247306,truck\n247307,frog\n247308,deer\n247309,airplane\n247310,deer\n247311,frog\n247312,deer\n247313,truck\n247314,truck\n247315,dog\n247316,automobile\n247317,frog\n247318,ship\n247319,cat\n247320,deer\n247321,dog\n247322,frog\n247323,truck\n247324,horse\n247325,bird\n247326,airplane\n247327,airplane\n247328,automobile\n247329,automobile\n247330,automobile\n247331,cat\n247332,bird\n247333,automobile\n247334,deer\n247335,ship\n247336,cat\n247337,frog\n247338,cat\n247339,cat\n247340,ship\n247341,airplane\n247342,frog\n247343,deer\n247344,dog\n247345,frog\n247346,airplane\n247347,horse\n247348,truck\n247349,automobile\n247350,airplane\n247351,cat\n247352,ship\n247353,deer\n247354,ship\n247355,horse\n247356,airplane\n247357,automobile\n247358,deer\n247359,frog\n247360,automobile\n247361,frog\n247362,horse\n247363,deer\n247364,automobile\n247365,dog\n247366,cat\n247367,frog\n247368,deer\n247369,cat\n247370,cat\n247371,deer\n247372,airplane\n247373,cat\n247374,cat\n247375,dog\n247376,bird\n247377,truck\n247378,cat\n247379,horse\n247380,automobile\n247381,ship\n247382,deer\n247383,airplane\n247384,horse\n247385,dog\n247386,deer\n247387,deer\n247388,truck\n247389,automobile\n247390,frog\n247391,cat\n247392,truck\n247393,bird\n247394,horse\n247395,airplane\n247396,cat\n247397,frog\n247398,dog\n247399,cat\n247400,horse\n247401,bird\n247402,frog\n247403,dog\n247404,truck\n247405,truck\n247406,ship\n247407,cat\n247408,frog\n247409,horse\n247410,bird\n247411,horse\n247412,dog\n247413,frog\n247414,horse\n247415,dog\n247416,ship\n247417,frog\n247418,horse\n247419,frog\n247420,cat\n247421,frog\n247422,deer\n247423,bird\n247424,horse\n247425,truck\n247426,truck\n247427,frog\n247428,frog\n247429,frog\n247430,bird\n247431,ship\n247432,truck\n247433,deer\n247434,deer\n247435,airplane\n247436,dog\n247437,horse\n247438,deer\n247439,airplane\n247440,airplane\n247441,frog\n247442,bird\n247443,frog\n247444,horse\n247445,frog\n247446,deer\n247447,truck\n247448,deer\n247449,bird\n247450,bird\n247451,cat\n247452,cat\n247453,frog\n247454,frog\n247455,horse\n247456,deer\n247457,truck\n247458,deer\n247459,frog\n247460,deer\n247461,frog\n247462,ship\n247463,truck\n247464,deer\n247465,horse\n247466,automobile\n247467,truck\n247468,airplane\n247469,cat\n247470,airplane\n247471,bird\n247472,frog\n247473,airplane\n247474,cat\n247475,ship\n247476,truck\n247477,horse\n247478,truck\n247479,ship\n247480,ship\n247481,dog\n247482,cat\n247483,bird\n247484,airplane\n247485,automobile\n247486,bird\n247487,frog\n247488,truck\n247489,frog\n247490,truck\n247491,bird\n247492,truck\n247493,horse\n247494,frog\n247495,airplane\n247496,truck\n247497,horse\n247498,dog\n247499,horse\n247500,ship\n247501,airplane\n247502,ship\n247503,automobile\n247504,ship\n247505,automobile\n247506,horse\n247507,horse\n247508,deer\n247509,bird\n247510,deer\n247511,cat\n247512,ship\n247513,bird\n247514,deer\n247515,cat\n247516,automobile\n247517,airplane\n247518,ship\n247519,cat\n247520,airplane\n247521,truck\n247522,truck\n247523,dog\n247524,frog\n247525,truck\n247526,airplane\n247527,bird\n247528,airplane\n247529,horse\n247530,airplane\n247531,horse\n247532,frog\n247533,ship\n247534,horse\n247535,bird\n247536,frog\n247537,deer\n247538,cat\n247539,deer\n247540,dog\n247541,cat\n247542,deer\n247543,airplane\n247544,horse\n247545,cat\n247546,automobile\n247547,automobile\n247548,ship\n247549,cat\n247550,cat\n247551,truck\n247552,truck\n247553,deer\n247554,airplane\n247555,airplane\n247556,truck\n247557,dog\n247558,ship\n247559,automobile\n247560,frog\n247561,frog\n247562,frog\n247563,airplane\n247564,horse\n247565,dog\n247566,cat\n247567,frog\n247568,ship\n247569,bird\n247570,frog\n247571,horse\n247572,truck\n247573,airplane\n247574,deer\n247575,deer\n247576,deer\n247577,automobile\n247578,deer\n247579,deer\n247580,dog\n247581,cat\n247582,horse\n247583,deer\n247584,deer\n247585,ship\n247586,dog\n247587,horse\n247588,ship\n247589,frog\n247590,frog\n247591,automobile\n247592,deer\n247593,ship\n247594,horse\n247595,cat\n247596,truck\n247597,automobile\n247598,airplane\n247599,horse\n247600,horse\n247601,frog\n247602,dog\n247603,cat\n247604,cat\n247605,horse\n247606,truck\n247607,airplane\n247608,dog\n247609,bird\n247610,airplane\n247611,horse\n247612,deer\n247613,dog\n247614,cat\n247615,automobile\n247616,airplane\n247617,deer\n247618,deer\n247619,truck\n247620,bird\n247621,frog\n247622,bird\n247623,deer\n247624,dog\n247625,frog\n247626,cat\n247627,bird\n247628,dog\n247629,deer\n247630,deer\n247631,cat\n247632,horse\n247633,horse\n247634,dog\n247635,deer\n247636,bird\n247637,truck\n247638,bird\n247639,deer\n247640,deer\n247641,horse\n247642,automobile\n247643,frog\n247644,bird\n247645,cat\n247646,horse\n247647,frog\n247648,dog\n247649,truck\n247650,horse\n247651,deer\n247652,ship\n247653,dog\n247654,automobile\n247655,cat\n247656,airplane\n247657,deer\n247658,cat\n247659,horse\n247660,frog\n247661,bird\n247662,bird\n247663,cat\n247664,deer\n247665,airplane\n247666,ship\n247667,automobile\n247668,bird\n247669,dog\n247670,truck\n247671,cat\n247672,ship\n247673,cat\n247674,automobile\n247675,ship\n247676,truck\n247677,horse\n247678,dog\n247679,cat\n247680,dog\n247681,cat\n247682,automobile\n247683,cat\n247684,bird\n247685,deer\n247686,airplane\n247687,airplane\n247688,horse\n247689,horse\n247690,bird\n247691,frog\n247692,dog\n247693,truck\n247694,automobile\n247695,dog\n247696,horse\n247697,bird\n247698,cat\n247699,horse\n247700,cat\n247701,deer\n247702,bird\n247703,ship\n247704,truck\n247705,cat\n247706,truck\n247707,airplane\n247708,ship\n247709,dog\n247710,cat\n247711,cat\n247712,horse\n247713,dog\n247714,automobile\n247715,dog\n247716,frog\n247717,truck\n247718,deer\n247719,cat\n247720,automobile\n247721,ship\n247722,deer\n247723,ship\n247724,cat\n247725,frog\n247726,bird\n247727,cat\n247728,frog\n247729,frog\n247730,ship\n247731,frog\n247732,bird\n247733,dog\n247734,automobile\n247735,airplane\n247736,ship\n247737,ship\n247738,airplane\n247739,bird\n247740,cat\n247741,ship\n247742,automobile\n247743,cat\n247744,truck\n247745,airplane\n247746,dog\n247747,horse\n247748,bird\n247749,ship\n247750,cat\n247751,frog\n247752,truck\n247753,airplane\n247754,ship\n247755,automobile\n247756,bird\n247757,deer\n247758,truck\n247759,bird\n247760,deer\n247761,bird\n247762,bird\n247763,cat\n247764,cat\n247765,automobile\n247766,horse\n247767,cat\n247768,truck\n247769,frog\n247770,ship\n247771,truck\n247772,cat\n247773,frog\n247774,bird\n247775,deer\n247776,horse\n247777,cat\n247778,automobile\n247779,truck\n247780,deer\n247781,horse\n247782,deer\n247783,dog\n247784,cat\n247785,deer\n247786,frog\n247787,cat\n247788,airplane\n247789,deer\n247790,cat\n247791,cat\n247792,truck\n247793,automobile\n247794,frog\n247795,cat\n247796,dog\n247797,airplane\n247798,truck\n247799,automobile\n247800,deer\n247801,truck\n247802,truck\n247803,truck\n247804,truck\n247805,frog\n247806,ship\n247807,automobile\n247808,deer\n247809,horse\n247810,horse\n247811,bird\n247812,cat\n247813,deer\n247814,truck\n247815,frog\n247816,dog\n247817,dog\n247818,horse\n247819,cat\n247820,frog\n247821,dog\n247822,frog\n247823,airplane\n247824,truck\n247825,horse\n247826,automobile\n247827,airplane\n247828,automobile\n247829,bird\n247830,deer\n247831,airplane\n247832,cat\n247833,deer\n247834,bird\n247835,truck\n247836,deer\n247837,cat\n247838,horse\n247839,cat\n247840,cat\n247841,airplane\n247842,deer\n247843,truck\n247844,cat\n247845,truck\n247846,deer\n247847,horse\n247848,cat\n247849,truck\n247850,bird\n247851,deer\n247852,bird\n247853,airplane\n247854,frog\n247855,automobile\n247856,ship\n247857,airplane\n247858,dog\n247859,truck\n247860,frog\n247861,airplane\n247862,frog\n247863,frog\n247864,cat\n247865,truck\n247866,cat\n247867,automobile\n247868,bird\n247869,deer\n247870,ship\n247871,frog\n247872,airplane\n247873,deer\n247874,frog\n247875,ship\n247876,deer\n247877,deer\n247878,automobile\n247879,horse\n247880,cat\n247881,bird\n247882,ship\n247883,ship\n247884,horse\n247885,deer\n247886,truck\n247887,truck\n247888,automobile\n247889,dog\n247890,bird\n247891,automobile\n247892,cat\n247893,horse\n247894,deer\n247895,horse\n247896,truck\n247897,cat\n247898,ship\n247899,truck\n247900,bird\n247901,frog\n247902,frog\n247903,frog\n247904,frog\n247905,bird\n247906,deer\n247907,bird\n247908,truck\n247909,deer\n247910,bird\n247911,cat\n247912,frog\n247913,dog\n247914,dog\n247915,automobile\n247916,horse\n247917,horse\n247918,automobile\n247919,deer\n247920,ship\n247921,frog\n247922,airplane\n247923,frog\n247924,deer\n247925,deer\n247926,frog\n247927,cat\n247928,horse\n247929,dog\n247930,ship\n247931,cat\n247932,dog\n247933,cat\n247934,automobile\n247935,ship\n247936,dog\n247937,airplane\n247938,frog\n247939,airplane\n247940,horse\n247941,frog\n247942,frog\n247943,cat\n247944,automobile\n247945,cat\n247946,automobile\n247947,ship\n247948,dog\n247949,cat\n247950,deer\n247951,automobile\n247952,airplane\n247953,deer\n247954,bird\n247955,frog\n247956,bird\n247957,bird\n247958,frog\n247959,frog\n247960,deer\n247961,horse\n247962,deer\n247963,truck\n247964,frog\n247965,deer\n247966,bird\n247967,cat\n247968,deer\n247969,deer\n247970,airplane\n247971,dog\n247972,airplane\n247973,automobile\n247974,airplane\n247975,deer\n247976,horse\n247977,airplane\n247978,airplane\n247979,truck\n247980,deer\n247981,airplane\n247982,cat\n247983,deer\n247984,cat\n247985,dog\n247986,airplane\n247987,horse\n247988,deer\n247989,cat\n247990,deer\n247991,dog\n247992,truck\n247993,horse\n247994,deer\n247995,dog\n247996,frog\n247997,ship\n247998,frog\n247999,truck\n248000,truck\n248001,frog\n248002,ship\n248003,frog\n248004,bird\n248005,deer\n248006,truck\n248007,deer\n248008,deer\n248009,truck\n248010,frog\n248011,deer\n248012,ship\n248013,horse\n248014,deer\n248015,frog\n248016,cat\n248017,deer\n248018,bird\n248019,horse\n248020,automobile\n248021,truck\n248022,bird\n248023,automobile\n248024,cat\n248025,airplane\n248026,ship\n248027,deer\n248028,horse\n248029,cat\n248030,ship\n248031,cat\n248032,deer\n248033,dog\n248034,frog\n248035,truck\n248036,truck\n248037,dog\n248038,deer\n248039,dog\n248040,frog\n248041,truck\n248042,bird\n248043,frog\n248044,cat\n248045,truck\n248046,frog\n248047,frog\n248048,dog\n248049,deer\n248050,horse\n248051,dog\n248052,automobile\n248053,bird\n248054,automobile\n248055,horse\n248056,horse\n248057,automobile\n248058,deer\n248059,airplane\n248060,airplane\n248061,horse\n248062,automobile\n248063,horse\n248064,automobile\n248065,ship\n248066,bird\n248067,bird\n248068,frog\n248069,frog\n248070,cat\n248071,bird\n248072,deer\n248073,truck\n248074,frog\n248075,horse\n248076,bird\n248077,frog\n248078,bird\n248079,frog\n248080,truck\n248081,automobile\n248082,ship\n248083,horse\n248084,automobile\n248085,truck\n248086,cat\n248087,truck\n248088,dog\n248089,dog\n248090,truck\n248091,deer\n248092,deer\n248093,frog\n248094,truck\n248095,airplane\n248096,truck\n248097,deer\n248098,dog\n248099,bird\n248100,deer\n248101,truck\n248102,frog\n248103,deer\n248104,ship\n248105,deer\n248106,cat\n248107,airplane\n248108,truck\n248109,airplane\n248110,horse\n248111,horse\n248112,dog\n248113,airplane\n248114,deer\n248115,dog\n248116,deer\n248117,cat\n248118,horse\n248119,deer\n248120,bird\n248121,bird\n248122,bird\n248123,cat\n248124,deer\n248125,dog\n248126,cat\n248127,automobile\n248128,airplane\n248129,cat\n248130,deer\n248131,deer\n248132,ship\n248133,cat\n248134,ship\n248135,dog\n248136,frog\n248137,ship\n248138,cat\n248139,airplane\n248140,cat\n248141,frog\n248142,frog\n248143,bird\n248144,deer\n248145,ship\n248146,bird\n248147,cat\n248148,horse\n248149,ship\n248150,frog\n248151,automobile\n248152,deer\n248153,horse\n248154,deer\n248155,frog\n248156,truck\n248157,bird\n248158,deer\n248159,frog\n248160,ship\n248161,bird\n248162,dog\n248163,cat\n248164,airplane\n248165,horse\n248166,deer\n248167,deer\n248168,dog\n248169,frog\n248170,deer\n248171,deer\n248172,dog\n248173,automobile\n248174,ship\n248175,dog\n248176,deer\n248177,frog\n248178,cat\n248179,dog\n248180,bird\n248181,truck\n248182,truck\n248183,airplane\n248184,deer\n248185,ship\n248186,truck\n248187,deer\n248188,dog\n248189,ship\n248190,bird\n248191,frog\n248192,ship\n248193,automobile\n248194,automobile\n248195,ship\n248196,horse\n248197,horse\n248198,truck\n248199,cat\n248200,deer\n248201,bird\n248202,airplane\n248203,horse\n248204,ship\n248205,horse\n248206,dog\n248207,truck\n248208,cat\n248209,automobile\n248210,deer\n248211,horse\n248212,horse\n248213,frog\n248214,deer\n248215,airplane\n248216,deer\n248217,horse\n248218,airplane\n248219,bird\n248220,airplane\n248221,dog\n248222,automobile\n248223,bird\n248224,horse\n248225,truck\n248226,automobile\n248227,automobile\n248228,bird\n248229,dog\n248230,truck\n248231,deer\n248232,cat\n248233,deer\n248234,automobile\n248235,automobile\n248236,truck\n248237,horse\n248238,ship\n248239,ship\n248240,cat\n248241,cat\n248242,ship\n248243,dog\n248244,airplane\n248245,cat\n248246,deer\n248247,frog\n248248,frog\n248249,horse\n248250,airplane\n248251,automobile\n248252,horse\n248253,horse\n248254,frog\n248255,ship\n248256,ship\n248257,automobile\n248258,airplane\n248259,frog\n248260,cat\n248261,dog\n248262,horse\n248263,dog\n248264,cat\n248265,cat\n248266,deer\n248267,bird\n248268,bird\n248269,deer\n248270,deer\n248271,deer\n248272,airplane\n248273,deer\n248274,deer\n248275,truck\n248276,cat\n248277,ship\n248278,dog\n248279,airplane\n248280,dog\n248281,deer\n248282,truck\n248283,truck\n248284,automobile\n248285,frog\n248286,frog\n248287,automobile\n248288,frog\n248289,deer\n248290,airplane\n248291,truck\n248292,truck\n248293,ship\n248294,cat\n248295,airplane\n248296,automobile\n248297,ship\n248298,frog\n248299,frog\n248300,frog\n248301,cat\n248302,cat\n248303,deer\n248304,deer\n248305,frog\n248306,truck\n248307,bird\n248308,airplane\n248309,cat\n248310,horse\n248311,deer\n248312,deer\n248313,truck\n248314,horse\n248315,airplane\n248316,deer\n248317,deer\n248318,airplane\n248319,cat\n248320,frog\n248321,ship\n248322,deer\n248323,cat\n248324,ship\n248325,dog\n248326,airplane\n248327,bird\n248328,airplane\n248329,cat\n248330,horse\n248331,bird\n248332,bird\n248333,dog\n248334,cat\n248335,frog\n248336,truck\n248337,horse\n248338,deer\n248339,dog\n248340,ship\n248341,horse\n248342,horse\n248343,truck\n248344,cat\n248345,cat\n248346,bird\n248347,horse\n248348,deer\n248349,dog\n248350,truck\n248351,ship\n248352,frog\n248353,automobile\n248354,deer\n248355,ship\n248356,airplane\n248357,horse\n248358,horse\n248359,bird\n248360,truck\n248361,automobile\n248362,horse\n248363,truck\n248364,frog\n248365,ship\n248366,truck\n248367,deer\n248368,truck\n248369,ship\n248370,ship\n248371,horse\n248372,airplane\n248373,ship\n248374,horse\n248375,bird\n248376,deer\n248377,deer\n248378,bird\n248379,cat\n248380,cat\n248381,frog\n248382,dog\n248383,dog\n248384,deer\n248385,frog\n248386,airplane\n248387,truck\n248388,frog\n248389,frog\n248390,horse\n248391,cat\n248392,deer\n248393,cat\n248394,cat\n248395,bird\n248396,frog\n248397,deer\n248398,airplane\n248399,frog\n248400,bird\n248401,airplane\n248402,airplane\n248403,automobile\n248404,cat\n248405,frog\n248406,ship\n248407,bird\n248408,cat\n248409,airplane\n248410,truck\n248411,automobile\n248412,deer\n248413,deer\n248414,bird\n248415,airplane\n248416,dog\n248417,frog\n248418,cat\n248419,airplane\n248420,truck\n248421,deer\n248422,automobile\n248423,ship\n248424,bird\n248425,frog\n248426,horse\n248427,bird\n248428,bird\n248429,frog\n248430,frog\n248431,ship\n248432,frog\n248433,ship\n248434,cat\n248435,dog\n248436,airplane\n248437,cat\n248438,horse\n248439,frog\n248440,bird\n248441,ship\n248442,dog\n248443,automobile\n248444,deer\n248445,ship\n248446,horse\n248447,truck\n248448,bird\n248449,cat\n248450,cat\n248451,cat\n248452,automobile\n248453,automobile\n248454,deer\n248455,deer\n248456,ship\n248457,frog\n248458,dog\n248459,airplane\n248460,frog\n248461,frog\n248462,horse\n248463,horse\n248464,truck\n248465,cat\n248466,automobile\n248467,frog\n248468,cat\n248469,horse\n248470,airplane\n248471,frog\n248472,airplane\n248473,bird\n248474,frog\n248475,automobile\n248476,cat\n248477,ship\n248478,airplane\n248479,automobile\n248480,cat\n248481,ship\n248482,frog\n248483,automobile\n248484,automobile\n248485,truck\n248486,deer\n248487,airplane\n248488,bird\n248489,cat\n248490,deer\n248491,bird\n248492,dog\n248493,truck\n248494,truck\n248495,ship\n248496,frog\n248497,cat\n248498,frog\n248499,cat\n248500,dog\n248501,dog\n248502,dog\n248503,dog\n248504,dog\n248505,cat\n248506,ship\n248507,cat\n248508,cat\n248509,deer\n248510,dog\n248511,cat\n248512,frog\n248513,frog\n248514,deer\n248515,airplane\n248516,ship\n248517,airplane\n248518,frog\n248519,horse\n248520,bird\n248521,dog\n248522,truck\n248523,dog\n248524,frog\n248525,dog\n248526,deer\n248527,dog\n248528,dog\n248529,cat\n248530,bird\n248531,cat\n248532,frog\n248533,deer\n248534,deer\n248535,bird\n248536,truck\n248537,bird\n248538,frog\n248539,deer\n248540,deer\n248541,horse\n248542,automobile\n248543,deer\n248544,cat\n248545,ship\n248546,deer\n248547,deer\n248548,cat\n248549,airplane\n248550,airplane\n248551,frog\n248552,horse\n248553,ship\n248554,bird\n248555,frog\n248556,frog\n248557,cat\n248558,horse\n248559,cat\n248560,airplane\n248561,horse\n248562,frog\n248563,bird\n248564,cat\n248565,bird\n248566,cat\n248567,bird\n248568,cat\n248569,dog\n248570,automobile\n248571,horse\n248572,cat\n248573,airplane\n248574,cat\n248575,deer\n248576,cat\n248577,airplane\n248578,airplane\n248579,cat\n248580,horse\n248581,frog\n248582,bird\n248583,truck\n248584,frog\n248585,deer\n248586,deer\n248587,cat\n248588,airplane\n248589,deer\n248590,truck\n248591,airplane\n248592,bird\n248593,frog\n248594,airplane\n248595,automobile\n248596,bird\n248597,bird\n248598,automobile\n248599,truck\n248600,horse\n248601,cat\n248602,cat\n248603,cat\n248604,deer\n248605,cat\n248606,cat\n248607,deer\n248608,airplane\n248609,frog\n248610,ship\n248611,truck\n248612,bird\n248613,horse\n248614,ship\n248615,cat\n248616,horse\n248617,truck\n248618,deer\n248619,deer\n248620,dog\n248621,bird\n248622,airplane\n248623,dog\n248624,truck\n248625,truck\n248626,deer\n248627,horse\n248628,ship\n248629,frog\n248630,truck\n248631,dog\n248632,ship\n248633,bird\n248634,horse\n248635,horse\n248636,airplane\n248637,truck\n248638,deer\n248639,ship\n248640,ship\n248641,airplane\n248642,frog\n248643,cat\n248644,truck\n248645,truck\n248646,deer\n248647,automobile\n248648,horse\n248649,airplane\n248650,frog\n248651,frog\n248652,automobile\n248653,automobile\n248654,frog\n248655,frog\n248656,airplane\n248657,ship\n248658,automobile\n248659,airplane\n248660,frog\n248661,dog\n248662,airplane\n248663,deer\n248664,deer\n248665,airplane\n248666,horse\n248667,cat\n248668,deer\n248669,horse\n248670,dog\n248671,truck\n248672,dog\n248673,airplane\n248674,ship\n248675,horse\n248676,automobile\n248677,frog\n248678,dog\n248679,airplane\n248680,bird\n248681,bird\n248682,deer\n248683,horse\n248684,cat\n248685,bird\n248686,dog\n248687,ship\n248688,airplane\n248689,dog\n248690,bird\n248691,horse\n248692,automobile\n248693,horse\n248694,horse\n248695,deer\n248696,deer\n248697,horse\n248698,frog\n248699,horse\n248700,airplane\n248701,dog\n248702,airplane\n248703,horse\n248704,horse\n248705,dog\n248706,airplane\n248707,truck\n248708,bird\n248709,automobile\n248710,ship\n248711,horse\n248712,frog\n248713,airplane\n248714,truck\n248715,frog\n248716,cat\n248717,bird\n248718,bird\n248719,cat\n248720,truck\n248721,deer\n248722,bird\n248723,ship\n248724,frog\n248725,dog\n248726,frog\n248727,deer\n248728,cat\n248729,cat\n248730,horse\n248731,horse\n248732,ship\n248733,horse\n248734,bird\n248735,frog\n248736,bird\n248737,dog\n248738,dog\n248739,automobile\n248740,dog\n248741,airplane\n248742,truck\n248743,dog\n248744,deer\n248745,frog\n248746,cat\n248747,cat\n248748,cat\n248749,deer\n248750,cat\n248751,ship\n248752,dog\n248753,frog\n248754,dog\n248755,frog\n248756,bird\n248757,automobile\n248758,dog\n248759,automobile\n248760,deer\n248761,cat\n248762,frog\n248763,frog\n248764,truck\n248765,bird\n248766,cat\n248767,deer\n248768,ship\n248769,dog\n248770,airplane\n248771,automobile\n248772,truck\n248773,dog\n248774,frog\n248775,automobile\n248776,automobile\n248777,automobile\n248778,cat\n248779,dog\n248780,bird\n248781,airplane\n248782,bird\n248783,frog\n248784,dog\n248785,frog\n248786,dog\n248787,horse\n248788,horse\n248789,frog\n248790,frog\n248791,frog\n248792,dog\n248793,bird\n248794,bird\n248795,truck\n248796,ship\n248797,automobile\n248798,deer\n248799,truck\n248800,horse\n248801,bird\n248802,airplane\n248803,automobile\n248804,automobile\n248805,truck\n248806,ship\n248807,dog\n248808,truck\n248809,cat\n248810,airplane\n248811,ship\n248812,cat\n248813,airplane\n248814,dog\n248815,dog\n248816,airplane\n248817,frog\n248818,bird\n248819,automobile\n248820,airplane\n248821,airplane\n248822,airplane\n248823,dog\n248824,ship\n248825,deer\n248826,bird\n248827,horse\n248828,deer\n248829,truck\n248830,ship\n248831,airplane\n248832,airplane\n248833,cat\n248834,ship\n248835,frog\n248836,frog\n248837,bird\n248838,frog\n248839,bird\n248840,frog\n248841,cat\n248842,frog\n248843,ship\n248844,deer\n248845,frog\n248846,deer\n248847,frog\n248848,frog\n248849,cat\n248850,automobile\n248851,dog\n248852,truck\n248853,cat\n248854,dog\n248855,horse\n248856,cat\n248857,deer\n248858,ship\n248859,deer\n248860,deer\n248861,frog\n248862,automobile\n248863,deer\n248864,deer\n248865,airplane\n248866,automobile\n248867,automobile\n248868,cat\n248869,ship\n248870,deer\n248871,frog\n248872,airplane\n248873,dog\n248874,frog\n248875,cat\n248876,dog\n248877,cat\n248878,dog\n248879,airplane\n248880,horse\n248881,truck\n248882,horse\n248883,ship\n248884,deer\n248885,automobile\n248886,cat\n248887,truck\n248888,airplane\n248889,deer\n248890,horse\n248891,dog\n248892,airplane\n248893,dog\n248894,frog\n248895,automobile\n248896,bird\n248897,automobile\n248898,deer\n248899,ship\n248900,bird\n248901,deer\n248902,cat\n248903,cat\n248904,truck\n248905,cat\n248906,deer\n248907,frog\n248908,frog\n248909,frog\n248910,ship\n248911,dog\n248912,dog\n248913,dog\n248914,dog\n248915,cat\n248916,dog\n248917,cat\n248918,cat\n248919,deer\n248920,truck\n248921,truck\n248922,deer\n248923,deer\n248924,ship\n248925,dog\n248926,deer\n248927,deer\n248928,cat\n248929,frog\n248930,airplane\n248931,ship\n248932,deer\n248933,frog\n248934,bird\n248935,truck\n248936,ship\n248937,automobile\n248938,deer\n248939,ship\n248940,ship\n248941,horse\n248942,ship\n248943,frog\n248944,cat\n248945,cat\n248946,truck\n248947,cat\n248948,dog\n248949,automobile\n248950,frog\n248951,bird\n248952,frog\n248953,frog\n248954,truck\n248955,dog\n248956,automobile\n248957,cat\n248958,horse\n248959,airplane\n248960,frog\n248961,bird\n248962,ship\n248963,dog\n248964,deer\n248965,cat\n248966,cat\n248967,ship\n248968,cat\n248969,dog\n248970,ship\n248971,frog\n248972,cat\n248973,frog\n248974,deer\n248975,horse\n248976,cat\n248977,airplane\n248978,frog\n248979,ship\n248980,truck\n248981,cat\n248982,bird\n248983,ship\n248984,automobile\n248985,airplane\n248986,ship\n248987,frog\n248988,bird\n248989,dog\n248990,ship\n248991,bird\n248992,horse\n248993,truck\n248994,ship\n248995,cat\n248996,airplane\n248997,cat\n248998,bird\n248999,horse\n249000,horse\n249001,cat\n249002,truck\n249003,frog\n249004,automobile\n249005,ship\n249006,dog\n249007,truck\n249008,deer\n249009,deer\n249010,deer\n249011,horse\n249012,airplane\n249013,automobile\n249014,cat\n249015,deer\n249016,deer\n249017,deer\n249018,truck\n249019,horse\n249020,frog\n249021,truck\n249022,truck\n249023,truck\n249024,automobile\n249025,automobile\n249026,frog\n249027,deer\n249028,truck\n249029,ship\n249030,bird\n249031,frog\n249032,automobile\n249033,deer\n249034,ship\n249035,frog\n249036,cat\n249037,frog\n249038,cat\n249039,ship\n249040,frog\n249041,dog\n249042,dog\n249043,automobile\n249044,dog\n249045,automobile\n249046,airplane\n249047,deer\n249048,airplane\n249049,dog\n249050,cat\n249051,bird\n249052,airplane\n249053,cat\n249054,deer\n249055,bird\n249056,deer\n249057,horse\n249058,bird\n249059,deer\n249060,deer\n249061,airplane\n249062,horse\n249063,cat\n249064,ship\n249065,dog\n249066,frog\n249067,automobile\n249068,cat\n249069,deer\n249070,frog\n249071,airplane\n249072,bird\n249073,truck\n249074,cat\n249075,automobile\n249076,deer\n249077,cat\n249078,ship\n249079,truck\n249080,deer\n249081,automobile\n249082,dog\n249083,ship\n249084,truck\n249085,airplane\n249086,horse\n249087,deer\n249088,cat\n249089,horse\n249090,horse\n249091,cat\n249092,automobile\n249093,airplane\n249094,horse\n249095,ship\n249096,frog\n249097,truck\n249098,ship\n249099,dog\n249100,bird\n249101,ship\n249102,deer\n249103,automobile\n249104,horse\n249105,truck\n249106,cat\n249107,deer\n249108,dog\n249109,deer\n249110,airplane\n249111,frog\n249112,dog\n249113,deer\n249114,cat\n249115,automobile\n249116,frog\n249117,frog\n249118,horse\n249119,horse\n249120,airplane\n249121,truck\n249122,cat\n249123,cat\n249124,automobile\n249125,truck\n249126,frog\n249127,bird\n249128,ship\n249129,frog\n249130,airplane\n249131,deer\n249132,bird\n249133,automobile\n249134,automobile\n249135,frog\n249136,airplane\n249137,deer\n249138,ship\n249139,dog\n249140,airplane\n249141,ship\n249142,bird\n249143,horse\n249144,bird\n249145,automobile\n249146,automobile\n249147,horse\n249148,frog\n249149,dog\n249150,deer\n249151,airplane\n249152,dog\n249153,cat\n249154,horse\n249155,truck\n249156,dog\n249157,horse\n249158,airplane\n249159,cat\n249160,horse\n249161,cat\n249162,dog\n249163,ship\n249164,airplane\n249165,ship\n249166,truck\n249167,deer\n249168,cat\n249169,airplane\n249170,deer\n249171,cat\n249172,deer\n249173,deer\n249174,dog\n249175,dog\n249176,horse\n249177,deer\n249178,ship\n249179,cat\n249180,airplane\n249181,truck\n249182,dog\n249183,deer\n249184,airplane\n249185,dog\n249186,cat\n249187,airplane\n249188,horse\n249189,horse\n249190,airplane\n249191,automobile\n249192,truck\n249193,dog\n249194,truck\n249195,dog\n249196,cat\n249197,deer\n249198,cat\n249199,truck\n249200,cat\n249201,bird\n249202,truck\n249203,truck\n249204,truck\n249205,horse\n249206,deer\n249207,frog\n249208,ship\n249209,bird\n249210,cat\n249211,horse\n249212,cat\n249213,frog\n249214,frog\n249215,ship\n249216,ship\n249217,horse\n249218,cat\n249219,frog\n249220,horse\n249221,frog\n249222,frog\n249223,deer\n249224,dog\n249225,horse\n249226,frog\n249227,bird\n249228,bird\n249229,deer\n249230,dog\n249231,cat\n249232,airplane\n249233,truck\n249234,bird\n249235,bird\n249236,truck\n249237,horse\n249238,automobile\n249239,frog\n249240,horse\n249241,cat\n249242,truck\n249243,automobile\n249244,dog\n249245,frog\n249246,horse\n249247,deer\n249248,frog\n249249,cat\n249250,airplane\n249251,dog\n249252,frog\n249253,ship\n249254,truck\n249255,ship\n249256,truck\n249257,horse\n249258,horse\n249259,horse\n249260,cat\n249261,airplane\n249262,airplane\n249263,deer\n249264,cat\n249265,dog\n249266,dog\n249267,truck\n249268,frog\n249269,deer\n249270,horse\n249271,bird\n249272,deer\n249273,deer\n249274,frog\n249275,ship\n249276,cat\n249277,bird\n249278,horse\n249279,dog\n249280,horse\n249281,deer\n249282,dog\n249283,automobile\n249284,cat\n249285,truck\n249286,deer\n249287,deer\n249288,cat\n249289,frog\n249290,horse\n249291,deer\n249292,cat\n249293,bird\n249294,truck\n249295,frog\n249296,truck\n249297,frog\n249298,horse\n249299,deer\n249300,truck\n249301,ship\n249302,truck\n249303,truck\n249304,dog\n249305,truck\n249306,deer\n249307,bird\n249308,bird\n249309,frog\n249310,deer\n249311,bird\n249312,horse\n249313,dog\n249314,deer\n249315,cat\n249316,frog\n249317,truck\n249318,cat\n249319,horse\n249320,automobile\n249321,horse\n249322,dog\n249323,frog\n249324,deer\n249325,deer\n249326,dog\n249327,automobile\n249328,deer\n249329,cat\n249330,horse\n249331,deer\n249332,bird\n249333,truck\n249334,airplane\n249335,dog\n249336,automobile\n249337,dog\n249338,automobile\n249339,deer\n249340,truck\n249341,frog\n249342,deer\n249343,bird\n249344,airplane\n249345,horse\n249346,ship\n249347,dog\n249348,truck\n249349,airplane\n249350,bird\n249351,dog\n249352,frog\n249353,airplane\n249354,truck\n249355,dog\n249356,horse\n249357,truck\n249358,automobile\n249359,airplane\n249360,truck\n249361,truck\n249362,truck\n249363,airplane\n249364,truck\n249365,frog\n249366,truck\n249367,deer\n249368,bird\n249369,deer\n249370,cat\n249371,dog\n249372,dog\n249373,truck\n249374,deer\n249375,horse\n249376,deer\n249377,truck\n249378,horse\n249379,deer\n249380,airplane\n249381,airplane\n249382,frog\n249383,ship\n249384,frog\n249385,dog\n249386,frog\n249387,horse\n249388,deer\n249389,frog\n249390,frog\n249391,airplane\n249392,bird\n249393,ship\n249394,frog\n249395,deer\n249396,ship\n249397,deer\n249398,airplane\n249399,truck\n249400,frog\n249401,bird\n249402,truck\n249403,automobile\n249404,bird\n249405,dog\n249406,bird\n249407,truck\n249408,bird\n249409,deer\n249410,frog\n249411,cat\n249412,frog\n249413,deer\n249414,horse\n249415,frog\n249416,horse\n249417,frog\n249418,airplane\n249419,deer\n249420,horse\n249421,automobile\n249422,frog\n249423,ship\n249424,bird\n249425,frog\n249426,dog\n249427,ship\n249428,deer\n249429,ship\n249430,deer\n249431,cat\n249432,truck\n249433,cat\n249434,bird\n249435,airplane\n249436,airplane\n249437,dog\n249438,deer\n249439,horse\n249440,horse\n249441,dog\n249442,cat\n249443,deer\n249444,horse\n249445,cat\n249446,dog\n249447,horse\n249448,cat\n249449,cat\n249450,deer\n249451,truck\n249452,automobile\n249453,airplane\n249454,deer\n249455,deer\n249456,airplane\n249457,deer\n249458,frog\n249459,frog\n249460,horse\n249461,cat\n249462,airplane\n249463,cat\n249464,frog\n249465,deer\n249466,truck\n249467,bird\n249468,airplane\n249469,cat\n249470,airplane\n249471,airplane\n249472,deer\n249473,airplane\n249474,cat\n249475,deer\n249476,airplane\n249477,airplane\n249478,deer\n249479,airplane\n249480,cat\n249481,airplane\n249482,horse\n249483,cat\n249484,ship\n249485,automobile\n249486,horse\n249487,truck\n249488,deer\n249489,deer\n249490,deer\n249491,automobile\n249492,deer\n249493,deer\n249494,automobile\n249495,airplane\n249496,frog\n249497,frog\n249498,deer\n249499,deer\n249500,frog\n249501,deer\n249502,horse\n249503,frog\n249504,horse\n249505,frog\n249506,frog\n249507,cat\n249508,cat\n249509,deer\n249510,deer\n249511,dog\n249512,airplane\n249513,dog\n249514,deer\n249515,frog\n249516,deer\n249517,frog\n249518,frog\n249519,bird\n249520,frog\n249521,dog\n249522,bird\n249523,cat\n249524,cat\n249525,deer\n249526,deer\n249527,horse\n249528,horse\n249529,frog\n249530,bird\n249531,automobile\n249532,horse\n249533,truck\n249534,cat\n249535,dog\n249536,dog\n249537,truck\n249538,bird\n249539,horse\n249540,cat\n249541,dog\n249542,horse\n249543,cat\n249544,dog\n249545,frog\n249546,ship\n249547,airplane\n249548,horse\n249549,cat\n249550,deer\n249551,frog\n249552,bird\n249553,horse\n249554,ship\n249555,airplane\n249556,bird\n249557,truck\n249558,airplane\n249559,cat\n249560,cat\n249561,deer\n249562,horse\n249563,bird\n249564,cat\n249565,airplane\n249566,airplane\n249567,airplane\n249568,cat\n249569,deer\n249570,airplane\n249571,automobile\n249572,truck\n249573,airplane\n249574,frog\n249575,cat\n249576,ship\n249577,airplane\n249578,cat\n249579,dog\n249580,bird\n249581,cat\n249582,dog\n249583,bird\n249584,frog\n249585,frog\n249586,frog\n249587,airplane\n249588,dog\n249589,bird\n249590,ship\n249591,horse\n249592,horse\n249593,bird\n249594,bird\n249595,deer\n249596,truck\n249597,truck\n249598,frog\n249599,cat\n249600,cat\n249601,frog\n249602,horse\n249603,automobile\n249604,frog\n249605,airplane\n249606,truck\n249607,frog\n249608,frog\n249609,airplane\n249610,ship\n249611,bird\n249612,automobile\n249613,deer\n249614,dog\n249615,cat\n249616,frog\n249617,dog\n249618,ship\n249619,airplane\n249620,frog\n249621,bird\n249622,truck\n249623,dog\n249624,airplane\n249625,cat\n249626,automobile\n249627,cat\n249628,frog\n249629,dog\n249630,airplane\n249631,horse\n249632,deer\n249633,bird\n249634,airplane\n249635,cat\n249636,airplane\n249637,truck\n249638,frog\n249639,cat\n249640,bird\n249641,frog\n249642,horse\n249643,automobile\n249644,frog\n249645,horse\n249646,frog\n249647,deer\n249648,frog\n249649,ship\n249650,deer\n249651,automobile\n249652,frog\n249653,airplane\n249654,airplane\n249655,dog\n249656,deer\n249657,ship\n249658,deer\n249659,dog\n249660,dog\n249661,frog\n249662,bird\n249663,frog\n249664,cat\n249665,automobile\n249666,frog\n249667,horse\n249668,deer\n249669,automobile\n249670,airplane\n249671,dog\n249672,deer\n249673,bird\n249674,horse\n249675,ship\n249676,cat\n249677,dog\n249678,bird\n249679,truck\n249680,deer\n249681,airplane\n249682,ship\n249683,frog\n249684,dog\n249685,automobile\n249686,deer\n249687,dog\n249688,bird\n249689,frog\n249690,automobile\n249691,bird\n249692,horse\n249693,frog\n249694,bird\n249695,truck\n249696,deer\n249697,horse\n249698,deer\n249699,cat\n249700,frog\n249701,horse\n249702,truck\n249703,cat\n249704,bird\n249705,cat\n249706,automobile\n249707,deer\n249708,frog\n249709,cat\n249710,ship\n249711,bird\n249712,deer\n249713,bird\n249714,frog\n249715,frog\n249716,frog\n249717,dog\n249718,bird\n249719,bird\n249720,bird\n249721,truck\n249722,cat\n249723,frog\n249724,truck\n249725,frog\n249726,truck\n249727,truck\n249728,dog\n249729,bird\n249730,automobile\n249731,dog\n249732,horse\n249733,deer\n249734,horse\n249735,airplane\n249736,deer\n249737,dog\n249738,cat\n249739,ship\n249740,cat\n249741,dog\n249742,frog\n249743,cat\n249744,deer\n249745,bird\n249746,ship\n249747,horse\n249748,deer\n249749,automobile\n249750,frog\n249751,ship\n249752,bird\n249753,deer\n249754,deer\n249755,bird\n249756,deer\n249757,airplane\n249758,bird\n249759,frog\n249760,deer\n249761,cat\n249762,deer\n249763,deer\n249764,frog\n249765,deer\n249766,dog\n249767,horse\n249768,cat\n249769,frog\n249770,ship\n249771,deer\n249772,truck\n249773,truck\n249774,horse\n249775,bird\n249776,frog\n249777,deer\n249778,truck\n249779,frog\n249780,truck\n249781,horse\n249782,frog\n249783,ship\n249784,horse\n249785,deer\n249786,frog\n249787,deer\n249788,truck\n249789,truck\n249790,ship\n249791,bird\n249792,ship\n249793,dog\n249794,airplane\n249795,deer\n249796,deer\n249797,airplane\n249798,ship\n249799,cat\n249800,frog\n249801,dog\n249802,horse\n249803,horse\n249804,dog\n249805,bird\n249806,cat\n249807,cat\n249808,frog\n249809,bird\n249810,deer\n249811,deer\n249812,automobile\n249813,horse\n249814,cat\n249815,dog\n249816,horse\n249817,deer\n249818,bird\n249819,dog\n249820,dog\n249821,truck\n249822,deer\n249823,truck\n249824,truck\n249825,truck\n249826,bird\n249827,automobile\n249828,deer\n249829,frog\n249830,horse\n249831,deer\n249832,dog\n249833,cat\n249834,deer\n249835,cat\n249836,deer\n249837,dog\n249838,automobile\n249839,ship\n249840,cat\n249841,truck\n249842,horse\n249843,truck\n249844,frog\n249845,automobile\n249846,deer\n249847,frog\n249848,bird\n249849,dog\n249850,frog\n249851,frog\n249852,bird\n249853,horse\n249854,bird\n249855,bird\n249856,bird\n249857,truck\n249858,ship\n249859,ship\n249860,ship\n249861,automobile\n249862,automobile\n249863,bird\n249864,automobile\n249865,deer\n249866,dog\n249867,bird\n249868,ship\n249869,dog\n249870,cat\n249871,horse\n249872,truck\n249873,automobile\n249874,airplane\n249875,dog\n249876,bird\n249877,automobile\n249878,automobile\n249879,cat\n249880,horse\n249881,dog\n249882,airplane\n249883,horse\n249884,horse\n249885,ship\n249886,truck\n249887,cat\n249888,automobile\n249889,airplane\n249890,bird\n249891,automobile\n249892,bird\n249893,frog\n249894,deer\n249895,horse\n249896,automobile\n249897,bird\n249898,bird\n249899,horse\n249900,dog\n249901,horse\n249902,cat\n249903,frog\n249904,frog\n249905,cat\n249906,cat\n249907,truck\n249908,dog\n249909,truck\n249910,truck\n249911,airplane\n249912,dog\n249913,horse\n249914,dog\n249915,truck\n249916,ship\n249917,cat\n249918,cat\n249919,ship\n249920,deer\n249921,automobile\n249922,deer\n249923,horse\n249924,frog\n249925,cat\n249926,truck\n249927,dog\n249928,deer\n249929,ship\n249930,cat\n249931,frog\n249932,cat\n249933,frog\n249934,truck\n249935,dog\n249936,cat\n249937,bird\n249938,truck\n249939,horse\n249940,cat\n249941,cat\n249942,horse\n249943,airplane\n249944,truck\n249945,ship\n249946,horse\n249947,automobile\n249948,deer\n249949,deer\n249950,deer\n249951,deer\n249952,deer\n249953,ship\n249954,ship\n249955,horse\n249956,automobile\n249957,cat\n249958,cat\n249959,automobile\n249960,dog\n249961,cat\n249962,frog\n249963,horse\n249964,ship\n249965,truck\n249966,deer\n249967,ship\n249968,bird\n249969,deer\n249970,cat\n249971,frog\n249972,truck\n249973,horse\n249974,bird\n249975,horse\n249976,bird\n249977,horse\n249978,deer\n249979,cat\n249980,cat\n249981,cat\n249982,cat\n249983,horse\n249984,cat\n249985,deer\n249986,frog\n249987,bird\n249988,bird\n249989,horse\n249990,horse\n249991,bird\n249992,airplane\n249993,ship\n249994,horse\n249995,airplane\n249996,deer\n249997,truck\n249998,frog\n249999,automobile\n250000,truck\n250001,deer\n250002,truck\n250003,cat\n250004,frog\n250005,airplane\n250006,horse\n250007,airplane\n250008,cat\n250009,frog\n250010,truck\n250011,deer\n250012,deer\n250013,dog\n250014,bird\n250015,automobile\n250016,cat\n250017,dog\n250018,deer\n250019,truck\n250020,bird\n250021,cat\n250022,truck\n250023,dog\n250024,dog\n250025,deer\n250026,bird\n250027,automobile\n250028,ship\n250029,bird\n250030,deer\n250031,deer\n250032,cat\n250033,frog\n250034,frog\n250035,airplane\n250036,frog\n250037,airplane\n250038,deer\n250039,bird\n250040,dog\n250041,cat\n250042,horse\n250043,bird\n250044,cat\n250045,bird\n250046,airplane\n250047,cat\n250048,ship\n250049,horse\n250050,truck\n250051,frog\n250052,dog\n250053,horse\n250054,horse\n250055,deer\n250056,automobile\n250057,airplane\n250058,frog\n250059,cat\n250060,truck\n250061,airplane\n250062,deer\n250063,truck\n250064,airplane\n250065,ship\n250066,cat\n250067,horse\n250068,cat\n250069,bird\n250070,truck\n250071,truck\n250072,cat\n250073,truck\n250074,dog\n250075,frog\n250076,truck\n250077,horse\n250078,bird\n250079,dog\n250080,cat\n250081,bird\n250082,cat\n250083,ship\n250084,horse\n250085,horse\n250086,deer\n250087,airplane\n250088,cat\n250089,horse\n250090,horse\n250091,horse\n250092,cat\n250093,deer\n250094,airplane\n250095,cat\n250096,truck\n250097,airplane\n250098,deer\n250099,truck\n250100,truck\n250101,horse\n250102,airplane\n250103,horse\n250104,cat\n250105,automobile\n250106,deer\n250107,airplane\n250108,bird\n250109,frog\n250110,ship\n250111,cat\n250112,deer\n250113,ship\n250114,dog\n250115,cat\n250116,deer\n250117,automobile\n250118,truck\n250119,truck\n250120,bird\n250121,deer\n250122,bird\n250123,automobile\n250124,frog\n250125,bird\n250126,truck\n250127,horse\n250128,bird\n250129,airplane\n250130,bird\n250131,airplane\n250132,frog\n250133,airplane\n250134,bird\n250135,horse\n250136,deer\n250137,bird\n250138,automobile\n250139,deer\n250140,cat\n250141,ship\n250142,frog\n250143,automobile\n250144,horse\n250145,cat\n250146,bird\n250147,frog\n250148,deer\n250149,frog\n250150,frog\n250151,deer\n250152,automobile\n250153,frog\n250154,airplane\n250155,automobile\n250156,cat\n250157,horse\n250158,frog\n250159,deer\n250160,deer\n250161,dog\n250162,automobile\n250163,truck\n250164,cat\n250165,automobile\n250166,deer\n250167,truck\n250168,horse\n250169,automobile\n250170,horse\n250171,dog\n250172,deer\n250173,frog\n250174,ship\n250175,dog\n250176,dog\n250177,truck\n250178,dog\n250179,deer\n250180,deer\n250181,deer\n250182,airplane\n250183,truck\n250184,frog\n250185,airplane\n250186,cat\n250187,bird\n250188,truck\n250189,airplane\n250190,cat\n250191,deer\n250192,dog\n250193,horse\n250194,airplane\n250195,cat\n250196,frog\n250197,bird\n250198,truck\n250199,frog\n250200,cat\n250201,bird\n250202,truck\n250203,cat\n250204,frog\n250205,bird\n250206,automobile\n250207,truck\n250208,dog\n250209,airplane\n250210,cat\n250211,cat\n250212,ship\n250213,deer\n250214,deer\n250215,bird\n250216,bird\n250217,cat\n250218,dog\n250219,cat\n250220,truck\n250221,cat\n250222,cat\n250223,dog\n250224,airplane\n250225,ship\n250226,deer\n250227,horse\n250228,ship\n250229,truck\n250230,cat\n250231,bird\n250232,horse\n250233,horse\n250234,deer\n250235,horse\n250236,truck\n250237,truck\n250238,deer\n250239,truck\n250240,ship\n250241,bird\n250242,deer\n250243,deer\n250244,horse\n250245,truck\n250246,dog\n250247,ship\n250248,truck\n250249,deer\n250250,automobile\n250251,cat\n250252,deer\n250253,cat\n250254,bird\n250255,dog\n250256,dog\n250257,airplane\n250258,automobile\n250259,truck\n250260,dog\n250261,cat\n250262,airplane\n250263,cat\n250264,airplane\n250265,dog\n250266,deer\n250267,bird\n250268,airplane\n250269,ship\n250270,ship\n250271,cat\n250272,deer\n250273,frog\n250274,dog\n250275,horse\n250276,deer\n250277,bird\n250278,ship\n250279,cat\n250280,airplane\n250281,dog\n250282,deer\n250283,horse\n250284,deer\n250285,automobile\n250286,bird\n250287,dog\n250288,airplane\n250289,airplane\n250290,automobile\n250291,automobile\n250292,automobile\n250293,dog\n250294,horse\n250295,deer\n250296,frog\n250297,truck\n250298,truck\n250299,dog\n250300,cat\n250301,horse\n250302,horse\n250303,dog\n250304,frog\n250305,deer\n250306,dog\n250307,truck\n250308,dog\n250309,cat\n250310,cat\n250311,airplane\n250312,automobile\n250313,bird\n250314,automobile\n250315,horse\n250316,frog\n250317,truck\n250318,dog\n250319,ship\n250320,horse\n250321,frog\n250322,deer\n250323,frog\n250324,cat\n250325,airplane\n250326,frog\n250327,frog\n250328,automobile\n250329,dog\n250330,frog\n250331,horse\n250332,frog\n250333,cat\n250334,ship\n250335,truck\n250336,cat\n250337,horse\n250338,deer\n250339,frog\n250340,ship\n250341,frog\n250342,frog\n250343,frog\n250344,deer\n250345,frog\n250346,dog\n250347,horse\n250348,deer\n250349,automobile\n250350,deer\n250351,bird\n250352,automobile\n250353,dog\n250354,deer\n250355,deer\n250356,deer\n250357,horse\n250358,ship\n250359,bird\n250360,frog\n250361,frog\n250362,dog\n250363,truck\n250364,airplane\n250365,cat\n250366,ship\n250367,dog\n250368,ship\n250369,cat\n250370,deer\n250371,bird\n250372,horse\n250373,frog\n250374,automobile\n250375,deer\n250376,frog\n250377,deer\n250378,horse\n250379,deer\n250380,dog\n250381,dog\n250382,ship\n250383,deer\n250384,deer\n250385,truck\n250386,bird\n250387,bird\n250388,bird\n250389,deer\n250390,horse\n250391,truck\n250392,truck\n250393,airplane\n250394,deer\n250395,truck\n250396,frog\n250397,frog\n250398,cat\n250399,horse\n250400,automobile\n250401,automobile\n250402,frog\n250403,horse\n250404,bird\n250405,ship\n250406,automobile\n250407,bird\n250408,frog\n250409,airplane\n250410,bird\n250411,cat\n250412,bird\n250413,airplane\n250414,bird\n250415,deer\n250416,airplane\n250417,cat\n250418,horse\n250419,dog\n250420,cat\n250421,ship\n250422,ship\n250423,ship\n250424,bird\n250425,dog\n250426,ship\n250427,cat\n250428,dog\n250429,dog\n250430,dog\n250431,automobile\n250432,automobile\n250433,bird\n250434,cat\n250435,bird\n250436,cat\n250437,frog\n250438,cat\n250439,cat\n250440,horse\n250441,deer\n250442,airplane\n250443,dog\n250444,airplane\n250445,dog\n250446,airplane\n250447,dog\n250448,horse\n250449,horse\n250450,airplane\n250451,cat\n250452,cat\n250453,truck\n250454,cat\n250455,horse\n250456,bird\n250457,frog\n250458,ship\n250459,horse\n250460,dog\n250461,deer\n250462,bird\n250463,automobile\n250464,cat\n250465,frog\n250466,deer\n250467,bird\n250468,horse\n250469,truck\n250470,bird\n250471,frog\n250472,deer\n250473,horse\n250474,dog\n250475,bird\n250476,ship\n250477,frog\n250478,horse\n250479,bird\n250480,deer\n250481,horse\n250482,cat\n250483,cat\n250484,dog\n250485,automobile\n250486,dog\n250487,truck\n250488,deer\n250489,ship\n250490,frog\n250491,frog\n250492,deer\n250493,frog\n250494,dog\n250495,cat\n250496,frog\n250497,bird\n250498,frog\n250499,ship\n250500,automobile\n250501,truck\n250502,horse\n250503,cat\n250504,truck\n250505,bird\n250506,horse\n250507,bird\n250508,cat\n250509,dog\n250510,frog\n250511,frog\n250512,airplane\n250513,frog\n250514,automobile\n250515,dog\n250516,truck\n250517,horse\n250518,truck\n250519,ship\n250520,frog\n250521,bird\n250522,bird\n250523,truck\n250524,frog\n250525,dog\n250526,bird\n250527,deer\n250528,dog\n250529,deer\n250530,airplane\n250531,deer\n250532,truck\n250533,airplane\n250534,automobile\n250535,bird\n250536,dog\n250537,truck\n250538,bird\n250539,frog\n250540,frog\n250541,truck\n250542,horse\n250543,truck\n250544,dog\n250545,cat\n250546,dog\n250547,ship\n250548,horse\n250549,automobile\n250550,cat\n250551,ship\n250552,dog\n250553,airplane\n250554,truck\n250555,deer\n250556,cat\n250557,truck\n250558,frog\n250559,dog\n250560,frog\n250561,dog\n250562,truck\n250563,frog\n250564,cat\n250565,ship\n250566,truck\n250567,dog\n250568,automobile\n250569,horse\n250570,cat\n250571,airplane\n250572,frog\n250573,automobile\n250574,dog\n250575,deer\n250576,dog\n250577,deer\n250578,frog\n250579,truck\n250580,cat\n250581,deer\n250582,automobile\n250583,bird\n250584,airplane\n250585,horse\n250586,horse\n250587,truck\n250588,truck\n250589,automobile\n250590,dog\n250591,truck\n250592,cat\n250593,dog\n250594,cat\n250595,bird\n250596,deer\n250597,cat\n250598,bird\n250599,frog\n250600,truck\n250601,deer\n250602,horse\n250603,frog\n250604,automobile\n250605,ship\n250606,ship\n250607,horse\n250608,bird\n250609,cat\n250610,cat\n250611,airplane\n250612,dog\n250613,ship\n250614,horse\n250615,cat\n250616,airplane\n250617,cat\n250618,ship\n250619,horse\n250620,deer\n250621,airplane\n250622,deer\n250623,cat\n250624,cat\n250625,cat\n250626,dog\n250627,bird\n250628,bird\n250629,frog\n250630,automobile\n250631,dog\n250632,horse\n250633,frog\n250634,horse\n250635,cat\n250636,horse\n250637,deer\n250638,cat\n250639,cat\n250640,deer\n250641,airplane\n250642,cat\n250643,airplane\n250644,horse\n250645,automobile\n250646,ship\n250647,truck\n250648,frog\n250649,horse\n250650,horse\n250651,cat\n250652,bird\n250653,deer\n250654,deer\n250655,airplane\n250656,dog\n250657,horse\n250658,horse\n250659,truck\n250660,deer\n250661,cat\n250662,ship\n250663,frog\n250664,horse\n250665,frog\n250666,ship\n250667,cat\n250668,bird\n250669,dog\n250670,airplane\n250671,ship\n250672,truck\n250673,deer\n250674,cat\n250675,frog\n250676,deer\n250677,deer\n250678,bird\n250679,automobile\n250680,bird\n250681,bird\n250682,truck\n250683,cat\n250684,cat\n250685,bird\n250686,horse\n250687,frog\n250688,ship\n250689,horse\n250690,frog\n250691,ship\n250692,horse\n250693,frog\n250694,horse\n250695,cat\n250696,deer\n250697,horse\n250698,deer\n250699,deer\n250700,ship\n250701,dog\n250702,deer\n250703,bird\n250704,deer\n250705,horse\n250706,dog\n250707,bird\n250708,truck\n250709,ship\n250710,deer\n250711,frog\n250712,truck\n250713,bird\n250714,bird\n250715,dog\n250716,truck\n250717,cat\n250718,dog\n250719,automobile\n250720,frog\n250721,horse\n250722,automobile\n250723,horse\n250724,horse\n250725,truck\n250726,cat\n250727,airplane\n250728,airplane\n250729,cat\n250730,ship\n250731,airplane\n250732,truck\n250733,cat\n250734,cat\n250735,cat\n250736,deer\n250737,airplane\n250738,ship\n250739,ship\n250740,ship\n250741,bird\n250742,ship\n250743,cat\n250744,dog\n250745,truck\n250746,truck\n250747,ship\n250748,deer\n250749,automobile\n250750,deer\n250751,horse\n250752,bird\n250753,frog\n250754,automobile\n250755,cat\n250756,deer\n250757,bird\n250758,ship\n250759,cat\n250760,deer\n250761,airplane\n250762,cat\n250763,truck\n250764,bird\n250765,bird\n250766,deer\n250767,airplane\n250768,cat\n250769,deer\n250770,cat\n250771,cat\n250772,frog\n250773,cat\n250774,truck\n250775,frog\n250776,frog\n250777,deer\n250778,deer\n250779,ship\n250780,truck\n250781,frog\n250782,deer\n250783,horse\n250784,horse\n250785,cat\n250786,frog\n250787,dog\n250788,deer\n250789,frog\n250790,truck\n250791,dog\n250792,dog\n250793,deer\n250794,deer\n250795,bird\n250796,deer\n250797,deer\n250798,ship\n250799,truck\n250800,dog\n250801,dog\n250802,bird\n250803,horse\n250804,dog\n250805,dog\n250806,deer\n250807,frog\n250808,truck\n250809,horse\n250810,cat\n250811,dog\n250812,horse\n250813,cat\n250814,bird\n250815,truck\n250816,airplane\n250817,automobile\n250818,truck\n250819,deer\n250820,cat\n250821,airplane\n250822,dog\n250823,bird\n250824,horse\n250825,cat\n250826,truck\n250827,dog\n250828,dog\n250829,deer\n250830,ship\n250831,automobile\n250832,frog\n250833,cat\n250834,airplane\n250835,ship\n250836,cat\n250837,dog\n250838,bird\n250839,frog\n250840,frog\n250841,frog\n250842,cat\n250843,deer\n250844,automobile\n250845,bird\n250846,horse\n250847,cat\n250848,truck\n250849,airplane\n250850,truck\n250851,automobile\n250852,horse\n250853,horse\n250854,dog\n250855,automobile\n250856,airplane\n250857,deer\n250858,bird\n250859,cat\n250860,horse\n250861,cat\n250862,dog\n250863,cat\n250864,frog\n250865,dog\n250866,truck\n250867,dog\n250868,horse\n250869,airplane\n250870,deer\n250871,airplane\n250872,bird\n250873,ship\n250874,airplane\n250875,deer\n250876,deer\n250877,dog\n250878,deer\n250879,airplane\n250880,horse\n250881,dog\n250882,frog\n250883,deer\n250884,deer\n250885,horse\n250886,truck\n250887,deer\n250888,cat\n250889,automobile\n250890,truck\n250891,automobile\n250892,cat\n250893,airplane\n250894,ship\n250895,frog\n250896,dog\n250897,ship\n250898,truck\n250899,frog\n250900,cat\n250901,frog\n250902,horse\n250903,automobile\n250904,cat\n250905,bird\n250906,deer\n250907,truck\n250908,bird\n250909,truck\n250910,frog\n250911,ship\n250912,truck\n250913,automobile\n250914,horse\n250915,dog\n250916,automobile\n250917,frog\n250918,truck\n250919,dog\n250920,bird\n250921,deer\n250922,frog\n250923,horse\n250924,automobile\n250925,deer\n250926,automobile\n250927,bird\n250928,deer\n250929,horse\n250930,frog\n250931,deer\n250932,automobile\n250933,frog\n250934,frog\n250935,airplane\n250936,truck\n250937,cat\n250938,dog\n250939,automobile\n250940,cat\n250941,deer\n250942,horse\n250943,dog\n250944,deer\n250945,dog\n250946,frog\n250947,dog\n250948,truck\n250949,deer\n250950,automobile\n250951,bird\n250952,truck\n250953,cat\n250954,bird\n250955,deer\n250956,cat\n250957,dog\n250958,frog\n250959,automobile\n250960,deer\n250961,bird\n250962,cat\n250963,truck\n250964,automobile\n250965,deer\n250966,frog\n250967,deer\n250968,truck\n250969,ship\n250970,frog\n250971,truck\n250972,frog\n250973,bird\n250974,automobile\n250975,deer\n250976,ship\n250977,deer\n250978,horse\n250979,truck\n250980,frog\n250981,bird\n250982,airplane\n250983,frog\n250984,airplane\n250985,frog\n250986,ship\n250987,airplane\n250988,cat\n250989,truck\n250990,dog\n250991,cat\n250992,cat\n250993,horse\n250994,horse\n250995,frog\n250996,horse\n250997,dog\n250998,frog\n250999,frog\n251000,horse\n251001,automobile\n251002,dog\n251003,frog\n251004,horse\n251005,horse\n251006,deer\n251007,airplane\n251008,deer\n251009,deer\n251010,truck\n251011,frog\n251012,deer\n251013,truck\n251014,cat\n251015,automobile\n251016,automobile\n251017,airplane\n251018,automobile\n251019,deer\n251020,automobile\n251021,frog\n251022,dog\n251023,automobile\n251024,deer\n251025,cat\n251026,frog\n251027,cat\n251028,horse\n251029,deer\n251030,dog\n251031,deer\n251032,ship\n251033,frog\n251034,truck\n251035,frog\n251036,frog\n251037,deer\n251038,airplane\n251039,dog\n251040,bird\n251041,airplane\n251042,horse\n251043,truck\n251044,deer\n251045,deer\n251046,horse\n251047,deer\n251048,airplane\n251049,cat\n251050,deer\n251051,cat\n251052,cat\n251053,dog\n251054,airplane\n251055,airplane\n251056,automobile\n251057,frog\n251058,dog\n251059,dog\n251060,ship\n251061,horse\n251062,deer\n251063,bird\n251064,cat\n251065,bird\n251066,ship\n251067,bird\n251068,frog\n251069,truck\n251070,ship\n251071,frog\n251072,deer\n251073,deer\n251074,cat\n251075,truck\n251076,dog\n251077,frog\n251078,dog\n251079,airplane\n251080,cat\n251081,deer\n251082,automobile\n251083,deer\n251084,dog\n251085,cat\n251086,cat\n251087,automobile\n251088,deer\n251089,ship\n251090,cat\n251091,horse\n251092,frog\n251093,truck\n251094,cat\n251095,frog\n251096,frog\n251097,deer\n251098,deer\n251099,automobile\n251100,frog\n251101,automobile\n251102,bird\n251103,frog\n251104,cat\n251105,bird\n251106,airplane\n251107,horse\n251108,frog\n251109,cat\n251110,deer\n251111,deer\n251112,airplane\n251113,cat\n251114,truck\n251115,dog\n251116,cat\n251117,ship\n251118,cat\n251119,deer\n251120,airplane\n251121,horse\n251122,cat\n251123,dog\n251124,ship\n251125,ship\n251126,bird\n251127,ship\n251128,airplane\n251129,frog\n251130,frog\n251131,automobile\n251132,truck\n251133,cat\n251134,automobile\n251135,ship\n251136,dog\n251137,frog\n251138,truck\n251139,automobile\n251140,automobile\n251141,automobile\n251142,airplane\n251143,truck\n251144,horse\n251145,frog\n251146,airplane\n251147,deer\n251148,frog\n251149,cat\n251150,bird\n251151,dog\n251152,airplane\n251153,horse\n251154,cat\n251155,bird\n251156,bird\n251157,deer\n251158,deer\n251159,frog\n251160,truck\n251161,bird\n251162,bird\n251163,frog\n251164,frog\n251165,truck\n251166,ship\n251167,horse\n251168,horse\n251169,dog\n251170,frog\n251171,deer\n251172,truck\n251173,frog\n251174,truck\n251175,airplane\n251176,horse\n251177,dog\n251178,bird\n251179,horse\n251180,airplane\n251181,deer\n251182,cat\n251183,automobile\n251184,automobile\n251185,truck\n251186,frog\n251187,automobile\n251188,bird\n251189,cat\n251190,cat\n251191,ship\n251192,airplane\n251193,dog\n251194,airplane\n251195,ship\n251196,frog\n251197,frog\n251198,automobile\n251199,cat\n251200,dog\n251201,automobile\n251202,automobile\n251203,ship\n251204,cat\n251205,frog\n251206,automobile\n251207,cat\n251208,automobile\n251209,truck\n251210,dog\n251211,truck\n251212,cat\n251213,cat\n251214,truck\n251215,cat\n251216,ship\n251217,airplane\n251218,cat\n251219,deer\n251220,cat\n251221,truck\n251222,deer\n251223,bird\n251224,frog\n251225,dog\n251226,automobile\n251227,ship\n251228,cat\n251229,cat\n251230,dog\n251231,frog\n251232,cat\n251233,dog\n251234,cat\n251235,airplane\n251236,horse\n251237,horse\n251238,frog\n251239,deer\n251240,horse\n251241,deer\n251242,horse\n251243,bird\n251244,deer\n251245,frog\n251246,frog\n251247,truck\n251248,truck\n251249,cat\n251250,airplane\n251251,dog\n251252,dog\n251253,automobile\n251254,cat\n251255,bird\n251256,bird\n251257,truck\n251258,cat\n251259,cat\n251260,ship\n251261,cat\n251262,frog\n251263,deer\n251264,bird\n251265,horse\n251266,horse\n251267,deer\n251268,airplane\n251269,dog\n251270,airplane\n251271,airplane\n251272,ship\n251273,truck\n251274,horse\n251275,cat\n251276,ship\n251277,horse\n251278,ship\n251279,bird\n251280,automobile\n251281,airplane\n251282,cat\n251283,ship\n251284,truck\n251285,cat\n251286,airplane\n251287,deer\n251288,truck\n251289,bird\n251290,bird\n251291,cat\n251292,bird\n251293,airplane\n251294,ship\n251295,truck\n251296,cat\n251297,cat\n251298,deer\n251299,cat\n251300,dog\n251301,automobile\n251302,automobile\n251303,bird\n251304,truck\n251305,automobile\n251306,ship\n251307,cat\n251308,bird\n251309,deer\n251310,truck\n251311,truck\n251312,bird\n251313,dog\n251314,truck\n251315,automobile\n251316,dog\n251317,deer\n251318,horse\n251319,horse\n251320,deer\n251321,cat\n251322,horse\n251323,ship\n251324,truck\n251325,dog\n251326,ship\n251327,deer\n251328,cat\n251329,deer\n251330,automobile\n251331,cat\n251332,dog\n251333,ship\n251334,horse\n251335,deer\n251336,bird\n251337,airplane\n251338,deer\n251339,airplane\n251340,cat\n251341,frog\n251342,frog\n251343,truck\n251344,automobile\n251345,horse\n251346,cat\n251347,frog\n251348,dog\n251349,airplane\n251350,airplane\n251351,deer\n251352,airplane\n251353,frog\n251354,bird\n251355,truck\n251356,truck\n251357,horse\n251358,ship\n251359,airplane\n251360,truck\n251361,truck\n251362,deer\n251363,horse\n251364,frog\n251365,deer\n251366,deer\n251367,ship\n251368,truck\n251369,automobile\n251370,horse\n251371,horse\n251372,deer\n251373,bird\n251374,cat\n251375,dog\n251376,frog\n251377,dog\n251378,cat\n251379,horse\n251380,deer\n251381,automobile\n251382,deer\n251383,horse\n251384,deer\n251385,dog\n251386,cat\n251387,ship\n251388,automobile\n251389,truck\n251390,bird\n251391,cat\n251392,horse\n251393,airplane\n251394,frog\n251395,frog\n251396,bird\n251397,cat\n251398,deer\n251399,dog\n251400,automobile\n251401,automobile\n251402,horse\n251403,ship\n251404,bird\n251405,frog\n251406,cat\n251407,dog\n251408,deer\n251409,bird\n251410,automobile\n251411,horse\n251412,airplane\n251413,dog\n251414,automobile\n251415,truck\n251416,horse\n251417,deer\n251418,ship\n251419,truck\n251420,cat\n251421,bird\n251422,deer\n251423,cat\n251424,ship\n251425,cat\n251426,bird\n251427,cat\n251428,truck\n251429,frog\n251430,ship\n251431,airplane\n251432,dog\n251433,truck\n251434,airplane\n251435,deer\n251436,dog\n251437,dog\n251438,bird\n251439,dog\n251440,deer\n251441,truck\n251442,truck\n251443,bird\n251444,deer\n251445,cat\n251446,airplane\n251447,airplane\n251448,cat\n251449,frog\n251450,dog\n251451,frog\n251452,cat\n251453,deer\n251454,truck\n251455,horse\n251456,automobile\n251457,bird\n251458,bird\n251459,cat\n251460,truck\n251461,horse\n251462,ship\n251463,bird\n251464,dog\n251465,cat\n251466,bird\n251467,deer\n251468,cat\n251469,airplane\n251470,horse\n251471,ship\n251472,deer\n251473,horse\n251474,airplane\n251475,deer\n251476,automobile\n251477,ship\n251478,ship\n251479,frog\n251480,airplane\n251481,bird\n251482,automobile\n251483,bird\n251484,horse\n251485,bird\n251486,cat\n251487,dog\n251488,deer\n251489,cat\n251490,dog\n251491,ship\n251492,airplane\n251493,deer\n251494,ship\n251495,dog\n251496,truck\n251497,deer\n251498,horse\n251499,horse\n251500,bird\n251501,automobile\n251502,ship\n251503,dog\n251504,frog\n251505,deer\n251506,bird\n251507,deer\n251508,truck\n251509,deer\n251510,cat\n251511,horse\n251512,dog\n251513,dog\n251514,cat\n251515,frog\n251516,deer\n251517,dog\n251518,airplane\n251519,cat\n251520,airplane\n251521,bird\n251522,cat\n251523,airplane\n251524,frog\n251525,truck\n251526,ship\n251527,bird\n251528,deer\n251529,horse\n251530,automobile\n251531,cat\n251532,cat\n251533,airplane\n251534,frog\n251535,deer\n251536,truck\n251537,deer\n251538,dog\n251539,truck\n251540,deer\n251541,cat\n251542,ship\n251543,deer\n251544,frog\n251545,airplane\n251546,frog\n251547,frog\n251548,deer\n251549,frog\n251550,frog\n251551,truck\n251552,ship\n251553,cat\n251554,bird\n251555,deer\n251556,cat\n251557,frog\n251558,cat\n251559,truck\n251560,automobile\n251561,airplane\n251562,deer\n251563,ship\n251564,dog\n251565,airplane\n251566,cat\n251567,frog\n251568,deer\n251569,automobile\n251570,deer\n251571,dog\n251572,cat\n251573,airplane\n251574,cat\n251575,cat\n251576,frog\n251577,frog\n251578,ship\n251579,horse\n251580,deer\n251581,deer\n251582,horse\n251583,deer\n251584,dog\n251585,frog\n251586,truck\n251587,frog\n251588,deer\n251589,dog\n251590,bird\n251591,truck\n251592,horse\n251593,cat\n251594,truck\n251595,deer\n251596,dog\n251597,truck\n251598,dog\n251599,horse\n251600,horse\n251601,dog\n251602,horse\n251603,airplane\n251604,automobile\n251605,ship\n251606,dog\n251607,cat\n251608,truck\n251609,deer\n251610,deer\n251611,cat\n251612,automobile\n251613,automobile\n251614,cat\n251615,deer\n251616,frog\n251617,cat\n251618,cat\n251619,ship\n251620,horse\n251621,horse\n251622,frog\n251623,automobile\n251624,ship\n251625,deer\n251626,dog\n251627,cat\n251628,truck\n251629,deer\n251630,deer\n251631,truck\n251632,truck\n251633,horse\n251634,deer\n251635,deer\n251636,airplane\n251637,frog\n251638,truck\n251639,frog\n251640,horse\n251641,airplane\n251642,dog\n251643,cat\n251644,deer\n251645,bird\n251646,frog\n251647,ship\n251648,ship\n251649,truck\n251650,deer\n251651,dog\n251652,truck\n251653,bird\n251654,airplane\n251655,horse\n251656,cat\n251657,dog\n251658,airplane\n251659,bird\n251660,ship\n251661,truck\n251662,deer\n251663,deer\n251664,cat\n251665,ship\n251666,ship\n251667,frog\n251668,automobile\n251669,airplane\n251670,airplane\n251671,truck\n251672,frog\n251673,frog\n251674,cat\n251675,truck\n251676,ship\n251677,frog\n251678,ship\n251679,deer\n251680,frog\n251681,bird\n251682,automobile\n251683,cat\n251684,ship\n251685,horse\n251686,airplane\n251687,frog\n251688,frog\n251689,airplane\n251690,deer\n251691,bird\n251692,deer\n251693,deer\n251694,frog\n251695,cat\n251696,frog\n251697,truck\n251698,dog\n251699,bird\n251700,deer\n251701,deer\n251702,frog\n251703,cat\n251704,dog\n251705,ship\n251706,deer\n251707,dog\n251708,truck\n251709,airplane\n251710,airplane\n251711,dog\n251712,bird\n251713,airplane\n251714,frog\n251715,automobile\n251716,bird\n251717,frog\n251718,truck\n251719,deer\n251720,frog\n251721,bird\n251722,cat\n251723,cat\n251724,airplane\n251725,cat\n251726,dog\n251727,truck\n251728,cat\n251729,airplane\n251730,airplane\n251731,automobile\n251732,automobile\n251733,deer\n251734,automobile\n251735,horse\n251736,deer\n251737,frog\n251738,ship\n251739,dog\n251740,dog\n251741,frog\n251742,truck\n251743,frog\n251744,dog\n251745,ship\n251746,deer\n251747,automobile\n251748,dog\n251749,truck\n251750,automobile\n251751,deer\n251752,frog\n251753,airplane\n251754,deer\n251755,deer\n251756,dog\n251757,cat\n251758,cat\n251759,frog\n251760,truck\n251761,airplane\n251762,truck\n251763,deer\n251764,cat\n251765,cat\n251766,bird\n251767,airplane\n251768,cat\n251769,deer\n251770,automobile\n251771,bird\n251772,ship\n251773,horse\n251774,frog\n251775,airplane\n251776,horse\n251777,truck\n251778,cat\n251779,automobile\n251780,bird\n251781,horse\n251782,cat\n251783,airplane\n251784,frog\n251785,bird\n251786,cat\n251787,bird\n251788,horse\n251789,ship\n251790,cat\n251791,cat\n251792,horse\n251793,frog\n251794,automobile\n251795,automobile\n251796,cat\n251797,airplane\n251798,cat\n251799,truck\n251800,deer\n251801,dog\n251802,bird\n251803,dog\n251804,cat\n251805,frog\n251806,horse\n251807,dog\n251808,deer\n251809,ship\n251810,cat\n251811,bird\n251812,cat\n251813,automobile\n251814,horse\n251815,frog\n251816,cat\n251817,cat\n251818,ship\n251819,frog\n251820,horse\n251821,deer\n251822,horse\n251823,deer\n251824,truck\n251825,horse\n251826,deer\n251827,ship\n251828,deer\n251829,ship\n251830,airplane\n251831,deer\n251832,dog\n251833,deer\n251834,bird\n251835,ship\n251836,airplane\n251837,deer\n251838,truck\n251839,airplane\n251840,deer\n251841,horse\n251842,cat\n251843,bird\n251844,ship\n251845,horse\n251846,frog\n251847,ship\n251848,airplane\n251849,bird\n251850,horse\n251851,horse\n251852,frog\n251853,ship\n251854,deer\n251855,deer\n251856,horse\n251857,deer\n251858,cat\n251859,automobile\n251860,deer\n251861,automobile\n251862,frog\n251863,frog\n251864,dog\n251865,deer\n251866,truck\n251867,ship\n251868,frog\n251869,automobile\n251870,dog\n251871,dog\n251872,bird\n251873,deer\n251874,dog\n251875,cat\n251876,deer\n251877,frog\n251878,airplane\n251879,frog\n251880,frog\n251881,deer\n251882,ship\n251883,deer\n251884,dog\n251885,dog\n251886,automobile\n251887,dog\n251888,bird\n251889,deer\n251890,ship\n251891,deer\n251892,bird\n251893,frog\n251894,truck\n251895,dog\n251896,ship\n251897,ship\n251898,cat\n251899,horse\n251900,cat\n251901,bird\n251902,ship\n251903,cat\n251904,dog\n251905,airplane\n251906,dog\n251907,automobile\n251908,truck\n251909,ship\n251910,truck\n251911,truck\n251912,dog\n251913,bird\n251914,horse\n251915,truck\n251916,frog\n251917,horse\n251918,automobile\n251919,bird\n251920,deer\n251921,deer\n251922,deer\n251923,dog\n251924,automobile\n251925,cat\n251926,ship\n251927,cat\n251928,ship\n251929,deer\n251930,deer\n251931,dog\n251932,deer\n251933,automobile\n251934,deer\n251935,frog\n251936,deer\n251937,bird\n251938,deer\n251939,dog\n251940,deer\n251941,dog\n251942,ship\n251943,deer\n251944,ship\n251945,cat\n251946,automobile\n251947,dog\n251948,frog\n251949,frog\n251950,bird\n251951,frog\n251952,ship\n251953,frog\n251954,horse\n251955,bird\n251956,frog\n251957,ship\n251958,truck\n251959,horse\n251960,cat\n251961,cat\n251962,airplane\n251963,deer\n251964,cat\n251965,automobile\n251966,ship\n251967,bird\n251968,horse\n251969,bird\n251970,automobile\n251971,cat\n251972,cat\n251973,ship\n251974,dog\n251975,horse\n251976,cat\n251977,bird\n251978,airplane\n251979,deer\n251980,cat\n251981,truck\n251982,dog\n251983,airplane\n251984,truck\n251985,bird\n251986,cat\n251987,deer\n251988,frog\n251989,ship\n251990,bird\n251991,cat\n251992,airplane\n251993,truck\n251994,airplane\n251995,deer\n251996,horse\n251997,airplane\n251998,ship\n251999,bird\n252000,bird\n252001,frog\n252002,horse\n252003,cat\n252004,dog\n252005,deer\n252006,dog\n252007,horse\n252008,cat\n252009,frog\n252010,ship\n252011,horse\n252012,truck\n252013,airplane\n252014,truck\n252015,truck\n252016,frog\n252017,dog\n252018,deer\n252019,truck\n252020,airplane\n252021,cat\n252022,frog\n252023,airplane\n252024,cat\n252025,ship\n252026,dog\n252027,dog\n252028,automobile\n252029,truck\n252030,automobile\n252031,bird\n252032,automobile\n252033,truck\n252034,horse\n252035,truck\n252036,dog\n252037,bird\n252038,frog\n252039,frog\n252040,deer\n252041,truck\n252042,truck\n252043,horse\n252044,dog\n252045,bird\n252046,frog\n252047,automobile\n252048,ship\n252049,frog\n252050,deer\n252051,frog\n252052,frog\n252053,deer\n252054,truck\n252055,horse\n252056,cat\n252057,frog\n252058,frog\n252059,deer\n252060,airplane\n252061,cat\n252062,frog\n252063,ship\n252064,cat\n252065,dog\n252066,dog\n252067,dog\n252068,automobile\n252069,horse\n252070,cat\n252071,frog\n252072,automobile\n252073,frog\n252074,cat\n252075,truck\n252076,deer\n252077,dog\n252078,ship\n252079,automobile\n252080,cat\n252081,deer\n252082,airplane\n252083,automobile\n252084,frog\n252085,bird\n252086,ship\n252087,cat\n252088,cat\n252089,ship\n252090,dog\n252091,truck\n252092,deer\n252093,deer\n252094,deer\n252095,deer\n252096,horse\n252097,automobile\n252098,deer\n252099,dog\n252100,bird\n252101,ship\n252102,cat\n252103,frog\n252104,bird\n252105,horse\n252106,automobile\n252107,cat\n252108,frog\n252109,automobile\n252110,frog\n252111,dog\n252112,dog\n252113,horse\n252114,automobile\n252115,automobile\n252116,ship\n252117,bird\n252118,ship\n252119,dog\n252120,horse\n252121,bird\n252122,truck\n252123,frog\n252124,horse\n252125,truck\n252126,truck\n252127,bird\n252128,automobile\n252129,horse\n252130,frog\n252131,dog\n252132,frog\n252133,ship\n252134,truck\n252135,ship\n252136,deer\n252137,bird\n252138,truck\n252139,deer\n252140,bird\n252141,frog\n252142,horse\n252143,cat\n252144,dog\n252145,dog\n252146,airplane\n252147,cat\n252148,ship\n252149,automobile\n252150,truck\n252151,horse\n252152,horse\n252153,dog\n252154,airplane\n252155,dog\n252156,truck\n252157,frog\n252158,deer\n252159,dog\n252160,cat\n252161,truck\n252162,frog\n252163,ship\n252164,deer\n252165,deer\n252166,deer\n252167,horse\n252168,bird\n252169,horse\n252170,frog\n252171,dog\n252172,dog\n252173,cat\n252174,dog\n252175,deer\n252176,horse\n252177,deer\n252178,deer\n252179,frog\n252180,ship\n252181,automobile\n252182,cat\n252183,automobile\n252184,deer\n252185,frog\n252186,truck\n252187,frog\n252188,cat\n252189,cat\n252190,cat\n252191,deer\n252192,deer\n252193,dog\n252194,cat\n252195,deer\n252196,horse\n252197,truck\n252198,truck\n252199,ship\n252200,cat\n252201,cat\n252202,frog\n252203,dog\n252204,horse\n252205,truck\n252206,cat\n252207,ship\n252208,airplane\n252209,frog\n252210,bird\n252211,bird\n252212,bird\n252213,truck\n252214,horse\n252215,cat\n252216,automobile\n252217,ship\n252218,truck\n252219,truck\n252220,frog\n252221,frog\n252222,truck\n252223,automobile\n252224,airplane\n252225,bird\n252226,horse\n252227,ship\n252228,cat\n252229,dog\n252230,truck\n252231,deer\n252232,ship\n252233,bird\n252234,bird\n252235,horse\n252236,horse\n252237,truck\n252238,cat\n252239,automobile\n252240,frog\n252241,truck\n252242,truck\n252243,dog\n252244,airplane\n252245,horse\n252246,horse\n252247,horse\n252248,cat\n252249,deer\n252250,bird\n252251,cat\n252252,ship\n252253,cat\n252254,frog\n252255,deer\n252256,deer\n252257,horse\n252258,frog\n252259,automobile\n252260,deer\n252261,deer\n252262,airplane\n252263,bird\n252264,airplane\n252265,deer\n252266,truck\n252267,cat\n252268,frog\n252269,frog\n252270,airplane\n252271,truck\n252272,cat\n252273,ship\n252274,ship\n252275,frog\n252276,horse\n252277,truck\n252278,bird\n252279,dog\n252280,cat\n252281,horse\n252282,airplane\n252283,ship\n252284,frog\n252285,truck\n252286,automobile\n252287,horse\n252288,truck\n252289,airplane\n252290,airplane\n252291,deer\n252292,cat\n252293,frog\n252294,airplane\n252295,truck\n252296,deer\n252297,frog\n252298,bird\n252299,automobile\n252300,horse\n252301,automobile\n252302,cat\n252303,airplane\n252304,horse\n252305,horse\n252306,frog\n252307,dog\n252308,airplane\n252309,bird\n252310,ship\n252311,dog\n252312,automobile\n252313,horse\n252314,horse\n252315,cat\n252316,truck\n252317,automobile\n252318,truck\n252319,frog\n252320,cat\n252321,bird\n252322,ship\n252323,frog\n252324,airplane\n252325,cat\n252326,cat\n252327,bird\n252328,airplane\n252329,dog\n252330,truck\n252331,frog\n252332,cat\n252333,automobile\n252334,truck\n252335,cat\n252336,horse\n252337,deer\n252338,frog\n252339,cat\n252340,deer\n252341,cat\n252342,truck\n252343,dog\n252344,frog\n252345,truck\n252346,dog\n252347,truck\n252348,frog\n252349,cat\n252350,truck\n252351,cat\n252352,deer\n252353,frog\n252354,cat\n252355,bird\n252356,automobile\n252357,bird\n252358,frog\n252359,truck\n252360,truck\n252361,bird\n252362,ship\n252363,dog\n252364,cat\n252365,cat\n252366,cat\n252367,cat\n252368,airplane\n252369,ship\n252370,bird\n252371,frog\n252372,dog\n252373,airplane\n252374,cat\n252375,frog\n252376,horse\n252377,cat\n252378,frog\n252379,cat\n252380,bird\n252381,deer\n252382,frog\n252383,ship\n252384,frog\n252385,dog\n252386,truck\n252387,frog\n252388,cat\n252389,bird\n252390,horse\n252391,deer\n252392,dog\n252393,ship\n252394,frog\n252395,bird\n252396,cat\n252397,truck\n252398,dog\n252399,airplane\n252400,deer\n252401,horse\n252402,frog\n252403,horse\n252404,deer\n252405,frog\n252406,cat\n252407,truck\n252408,automobile\n252409,dog\n252410,deer\n252411,automobile\n252412,frog\n252413,truck\n252414,dog\n252415,frog\n252416,automobile\n252417,dog\n252418,deer\n252419,frog\n252420,horse\n252421,horse\n252422,bird\n252423,frog\n252424,frog\n252425,horse\n252426,horse\n252427,frog\n252428,automobile\n252429,dog\n252430,cat\n252431,bird\n252432,dog\n252433,cat\n252434,cat\n252435,deer\n252436,automobile\n252437,cat\n252438,dog\n252439,deer\n252440,horse\n252441,cat\n252442,cat\n252443,frog\n252444,automobile\n252445,ship\n252446,automobile\n252447,frog\n252448,dog\n252449,deer\n252450,truck\n252451,airplane\n252452,dog\n252453,horse\n252454,ship\n252455,airplane\n252456,airplane\n252457,dog\n252458,bird\n252459,horse\n252460,cat\n252461,frog\n252462,frog\n252463,cat\n252464,dog\n252465,cat\n252466,frog\n252467,airplane\n252468,airplane\n252469,cat\n252470,deer\n252471,cat\n252472,airplane\n252473,cat\n252474,frog\n252475,deer\n252476,ship\n252477,deer\n252478,cat\n252479,dog\n252480,deer\n252481,cat\n252482,ship\n252483,dog\n252484,ship\n252485,bird\n252486,bird\n252487,cat\n252488,cat\n252489,frog\n252490,bird\n252491,truck\n252492,deer\n252493,truck\n252494,bird\n252495,frog\n252496,cat\n252497,ship\n252498,deer\n252499,deer\n252500,frog\n252501,frog\n252502,truck\n252503,dog\n252504,truck\n252505,deer\n252506,dog\n252507,dog\n252508,ship\n252509,truck\n252510,bird\n252511,frog\n252512,dog\n252513,airplane\n252514,cat\n252515,deer\n252516,ship\n252517,frog\n252518,dog\n252519,deer\n252520,cat\n252521,truck\n252522,frog\n252523,ship\n252524,automobile\n252525,automobile\n252526,airplane\n252527,frog\n252528,deer\n252529,airplane\n252530,horse\n252531,frog\n252532,cat\n252533,ship\n252534,cat\n252535,automobile\n252536,airplane\n252537,airplane\n252538,dog\n252539,cat\n252540,cat\n252541,horse\n252542,bird\n252543,ship\n252544,frog\n252545,bird\n252546,ship\n252547,bird\n252548,deer\n252549,cat\n252550,truck\n252551,dog\n252552,cat\n252553,deer\n252554,horse\n252555,horse\n252556,deer\n252557,dog\n252558,bird\n252559,cat\n252560,truck\n252561,truck\n252562,frog\n252563,dog\n252564,deer\n252565,horse\n252566,ship\n252567,ship\n252568,cat\n252569,airplane\n252570,automobile\n252571,dog\n252572,bird\n252573,deer\n252574,dog\n252575,ship\n252576,deer\n252577,bird\n252578,cat\n252579,airplane\n252580,automobile\n252581,deer\n252582,horse\n252583,airplane\n252584,airplane\n252585,truck\n252586,deer\n252587,bird\n252588,frog\n252589,airplane\n252590,bird\n252591,truck\n252592,dog\n252593,cat\n252594,deer\n252595,frog\n252596,bird\n252597,bird\n252598,truck\n252599,airplane\n252600,bird\n252601,dog\n252602,deer\n252603,deer\n252604,horse\n252605,deer\n252606,ship\n252607,ship\n252608,bird\n252609,deer\n252610,airplane\n252611,dog\n252612,frog\n252613,horse\n252614,cat\n252615,bird\n252616,cat\n252617,bird\n252618,dog\n252619,truck\n252620,horse\n252621,automobile\n252622,bird\n252623,ship\n252624,cat\n252625,airplane\n252626,truck\n252627,deer\n252628,deer\n252629,deer\n252630,dog\n252631,horse\n252632,deer\n252633,bird\n252634,cat\n252635,automobile\n252636,automobile\n252637,dog\n252638,bird\n252639,frog\n252640,automobile\n252641,cat\n252642,truck\n252643,ship\n252644,frog\n252645,deer\n252646,truck\n252647,dog\n252648,horse\n252649,horse\n252650,ship\n252651,deer\n252652,bird\n252653,automobile\n252654,airplane\n252655,truck\n252656,deer\n252657,truck\n252658,frog\n252659,truck\n252660,horse\n252661,airplane\n252662,cat\n252663,frog\n252664,ship\n252665,bird\n252666,frog\n252667,dog\n252668,frog\n252669,truck\n252670,horse\n252671,frog\n252672,cat\n252673,truck\n252674,deer\n252675,bird\n252676,dog\n252677,automobile\n252678,deer\n252679,automobile\n252680,bird\n252681,ship\n252682,bird\n252683,ship\n252684,deer\n252685,cat\n252686,horse\n252687,dog\n252688,frog\n252689,dog\n252690,frog\n252691,truck\n252692,automobile\n252693,truck\n252694,frog\n252695,airplane\n252696,airplane\n252697,horse\n252698,bird\n252699,dog\n252700,frog\n252701,frog\n252702,truck\n252703,automobile\n252704,truck\n252705,truck\n252706,cat\n252707,deer\n252708,cat\n252709,cat\n252710,truck\n252711,airplane\n252712,cat\n252713,dog\n252714,bird\n252715,dog\n252716,bird\n252717,bird\n252718,dog\n252719,bird\n252720,horse\n252721,truck\n252722,cat\n252723,airplane\n252724,dog\n252725,horse\n252726,automobile\n252727,cat\n252728,dog\n252729,deer\n252730,bird\n252731,airplane\n252732,frog\n252733,automobile\n252734,horse\n252735,dog\n252736,cat\n252737,deer\n252738,frog\n252739,truck\n252740,dog\n252741,dog\n252742,deer\n252743,dog\n252744,ship\n252745,cat\n252746,cat\n252747,dog\n252748,frog\n252749,bird\n252750,frog\n252751,truck\n252752,deer\n252753,truck\n252754,airplane\n252755,cat\n252756,deer\n252757,horse\n252758,bird\n252759,deer\n252760,cat\n252761,airplane\n252762,bird\n252763,cat\n252764,bird\n252765,cat\n252766,ship\n252767,cat\n252768,frog\n252769,dog\n252770,airplane\n252771,airplane\n252772,horse\n252773,horse\n252774,dog\n252775,dog\n252776,cat\n252777,deer\n252778,bird\n252779,truck\n252780,automobile\n252781,bird\n252782,airplane\n252783,cat\n252784,airplane\n252785,deer\n252786,ship\n252787,frog\n252788,horse\n252789,deer\n252790,ship\n252791,bird\n252792,frog\n252793,dog\n252794,bird\n252795,cat\n252796,truck\n252797,cat\n252798,truck\n252799,frog\n252800,dog\n252801,frog\n252802,deer\n252803,cat\n252804,dog\n252805,truck\n252806,horse\n252807,frog\n252808,dog\n252809,frog\n252810,horse\n252811,frog\n252812,truck\n252813,dog\n252814,frog\n252815,horse\n252816,truck\n252817,dog\n252818,cat\n252819,bird\n252820,ship\n252821,horse\n252822,dog\n252823,horse\n252824,frog\n252825,cat\n252826,cat\n252827,ship\n252828,airplane\n252829,dog\n252830,deer\n252831,horse\n252832,cat\n252833,airplane\n252834,dog\n252835,frog\n252836,ship\n252837,airplane\n252838,automobile\n252839,frog\n252840,bird\n252841,bird\n252842,automobile\n252843,ship\n252844,automobile\n252845,cat\n252846,dog\n252847,truck\n252848,cat\n252849,dog\n252850,automobile\n252851,truck\n252852,airplane\n252853,frog\n252854,ship\n252855,airplane\n252856,frog\n252857,airplane\n252858,airplane\n252859,airplane\n252860,cat\n252861,bird\n252862,cat\n252863,horse\n252864,truck\n252865,truck\n252866,truck\n252867,bird\n252868,dog\n252869,cat\n252870,deer\n252871,frog\n252872,dog\n252873,truck\n252874,ship\n252875,automobile\n252876,truck\n252877,airplane\n252878,frog\n252879,truck\n252880,dog\n252881,cat\n252882,cat\n252883,bird\n252884,bird\n252885,ship\n252886,automobile\n252887,cat\n252888,dog\n252889,automobile\n252890,bird\n252891,truck\n252892,dog\n252893,automobile\n252894,airplane\n252895,airplane\n252896,dog\n252897,frog\n252898,dog\n252899,frog\n252900,dog\n252901,deer\n252902,automobile\n252903,cat\n252904,bird\n252905,horse\n252906,deer\n252907,horse\n252908,airplane\n252909,dog\n252910,horse\n252911,frog\n252912,airplane\n252913,bird\n252914,dog\n252915,ship\n252916,horse\n252917,frog\n252918,truck\n252919,truck\n252920,dog\n252921,frog\n252922,frog\n252923,cat\n252924,automobile\n252925,truck\n252926,bird\n252927,cat\n252928,deer\n252929,automobile\n252930,ship\n252931,horse\n252932,airplane\n252933,deer\n252934,horse\n252935,bird\n252936,airplane\n252937,bird\n252938,dog\n252939,ship\n252940,bird\n252941,ship\n252942,ship\n252943,deer\n252944,truck\n252945,airplane\n252946,dog\n252947,automobile\n252948,cat\n252949,deer\n252950,bird\n252951,deer\n252952,bird\n252953,horse\n252954,cat\n252955,airplane\n252956,frog\n252957,cat\n252958,ship\n252959,bird\n252960,frog\n252961,deer\n252962,deer\n252963,deer\n252964,frog\n252965,cat\n252966,frog\n252967,deer\n252968,ship\n252969,horse\n252970,deer\n252971,deer\n252972,dog\n252973,horse\n252974,dog\n252975,cat\n252976,dog\n252977,dog\n252978,horse\n252979,automobile\n252980,frog\n252981,frog\n252982,bird\n252983,truck\n252984,cat\n252985,cat\n252986,bird\n252987,cat\n252988,airplane\n252989,ship\n252990,cat\n252991,dog\n252992,deer\n252993,bird\n252994,horse\n252995,automobile\n252996,automobile\n252997,truck\n252998,dog\n252999,automobile\n253000,cat\n253001,deer\n253002,automobile\n253003,ship\n253004,cat\n253005,bird\n253006,frog\n253007,horse\n253008,dog\n253009,airplane\n253010,cat\n253011,airplane\n253012,deer\n253013,bird\n253014,truck\n253015,cat\n253016,truck\n253017,ship\n253018,truck\n253019,frog\n253020,cat\n253021,cat\n253022,bird\n253023,bird\n253024,automobile\n253025,deer\n253026,airplane\n253027,horse\n253028,deer\n253029,deer\n253030,truck\n253031,bird\n253032,automobile\n253033,dog\n253034,horse\n253035,deer\n253036,frog\n253037,deer\n253038,bird\n253039,airplane\n253040,bird\n253041,cat\n253042,bird\n253043,horse\n253044,automobile\n253045,truck\n253046,truck\n253047,frog\n253048,deer\n253049,cat\n253050,frog\n253051,cat\n253052,airplane\n253053,frog\n253054,deer\n253055,truck\n253056,frog\n253057,ship\n253058,ship\n253059,deer\n253060,cat\n253061,cat\n253062,deer\n253063,truck\n253064,cat\n253065,truck\n253066,ship\n253067,frog\n253068,cat\n253069,truck\n253070,ship\n253071,automobile\n253072,bird\n253073,frog\n253074,deer\n253075,cat\n253076,horse\n253077,cat\n253078,cat\n253079,deer\n253080,cat\n253081,horse\n253082,dog\n253083,dog\n253084,airplane\n253085,ship\n253086,frog\n253087,bird\n253088,cat\n253089,truck\n253090,horse\n253091,dog\n253092,deer\n253093,cat\n253094,cat\n253095,dog\n253096,deer\n253097,deer\n253098,airplane\n253099,dog\n253100,automobile\n253101,deer\n253102,bird\n253103,bird\n253104,airplane\n253105,truck\n253106,cat\n253107,cat\n253108,dog\n253109,airplane\n253110,frog\n253111,cat\n253112,dog\n253113,dog\n253114,deer\n253115,airplane\n253116,horse\n253117,cat\n253118,frog\n253119,automobile\n253120,ship\n253121,deer\n253122,cat\n253123,cat\n253124,deer\n253125,ship\n253126,cat\n253127,deer\n253128,truck\n253129,truck\n253130,truck\n253131,bird\n253132,frog\n253133,automobile\n253134,deer\n253135,airplane\n253136,deer\n253137,deer\n253138,frog\n253139,cat\n253140,horse\n253141,deer\n253142,bird\n253143,frog\n253144,frog\n253145,ship\n253146,automobile\n253147,dog\n253148,frog\n253149,dog\n253150,deer\n253151,truck\n253152,airplane\n253153,horse\n253154,frog\n253155,ship\n253156,airplane\n253157,cat\n253158,truck\n253159,dog\n253160,truck\n253161,truck\n253162,airplane\n253163,dog\n253164,deer\n253165,horse\n253166,frog\n253167,truck\n253168,deer\n253169,frog\n253170,deer\n253171,dog\n253172,horse\n253173,bird\n253174,ship\n253175,truck\n253176,cat\n253177,airplane\n253178,deer\n253179,ship\n253180,airplane\n253181,deer\n253182,deer\n253183,deer\n253184,airplane\n253185,dog\n253186,bird\n253187,ship\n253188,ship\n253189,cat\n253190,bird\n253191,deer\n253192,truck\n253193,ship\n253194,ship\n253195,horse\n253196,deer\n253197,deer\n253198,cat\n253199,frog\n253200,automobile\n253201,frog\n253202,horse\n253203,frog\n253204,dog\n253205,dog\n253206,truck\n253207,truck\n253208,dog\n253209,horse\n253210,cat\n253211,horse\n253212,frog\n253213,truck\n253214,frog\n253215,truck\n253216,cat\n253217,cat\n253218,truck\n253219,horse\n253220,frog\n253221,automobile\n253222,ship\n253223,dog\n253224,ship\n253225,truck\n253226,deer\n253227,truck\n253228,frog\n253229,cat\n253230,truck\n253231,airplane\n253232,frog\n253233,frog\n253234,deer\n253235,dog\n253236,ship\n253237,truck\n253238,truck\n253239,truck\n253240,bird\n253241,cat\n253242,horse\n253243,dog\n253244,truck\n253245,cat\n253246,airplane\n253247,horse\n253248,airplane\n253249,ship\n253250,bird\n253251,horse\n253252,frog\n253253,automobile\n253254,airplane\n253255,deer\n253256,deer\n253257,ship\n253258,cat\n253259,truck\n253260,bird\n253261,horse\n253262,truck\n253263,automobile\n253264,automobile\n253265,cat\n253266,automobile\n253267,deer\n253268,airplane\n253269,ship\n253270,airplane\n253271,dog\n253272,truck\n253273,airplane\n253274,deer\n253275,bird\n253276,deer\n253277,cat\n253278,automobile\n253279,bird\n253280,frog\n253281,airplane\n253282,airplane\n253283,ship\n253284,airplane\n253285,bird\n253286,deer\n253287,frog\n253288,cat\n253289,cat\n253290,horse\n253291,cat\n253292,deer\n253293,cat\n253294,airplane\n253295,cat\n253296,cat\n253297,bird\n253298,dog\n253299,deer\n253300,bird\n253301,cat\n253302,horse\n253303,cat\n253304,airplane\n253305,frog\n253306,bird\n253307,dog\n253308,cat\n253309,cat\n253310,bird\n253311,automobile\n253312,frog\n253313,bird\n253314,dog\n253315,airplane\n253316,horse\n253317,airplane\n253318,horse\n253319,bird\n253320,bird\n253321,frog\n253322,truck\n253323,bird\n253324,bird\n253325,bird\n253326,horse\n253327,deer\n253328,bird\n253329,truck\n253330,ship\n253331,ship\n253332,horse\n253333,ship\n253334,deer\n253335,horse\n253336,dog\n253337,truck\n253338,cat\n253339,dog\n253340,deer\n253341,frog\n253342,truck\n253343,bird\n253344,airplane\n253345,truck\n253346,horse\n253347,cat\n253348,horse\n253349,ship\n253350,cat\n253351,cat\n253352,truck\n253353,ship\n253354,truck\n253355,truck\n253356,horse\n253357,ship\n253358,truck\n253359,bird\n253360,deer\n253361,cat\n253362,cat\n253363,frog\n253364,horse\n253365,cat\n253366,dog\n253367,deer\n253368,deer\n253369,ship\n253370,dog\n253371,deer\n253372,truck\n253373,ship\n253374,truck\n253375,horse\n253376,horse\n253377,airplane\n253378,deer\n253379,airplane\n253380,airplane\n253381,bird\n253382,horse\n253383,cat\n253384,horse\n253385,horse\n253386,ship\n253387,cat\n253388,dog\n253389,ship\n253390,dog\n253391,airplane\n253392,horse\n253393,frog\n253394,cat\n253395,automobile\n253396,ship\n253397,airplane\n253398,automobile\n253399,ship\n253400,truck\n253401,cat\n253402,automobile\n253403,airplane\n253404,bird\n253405,cat\n253406,ship\n253407,cat\n253408,ship\n253409,truck\n253410,horse\n253411,automobile\n253412,frog\n253413,truck\n253414,deer\n253415,frog\n253416,dog\n253417,cat\n253418,bird\n253419,deer\n253420,frog\n253421,cat\n253422,deer\n253423,deer\n253424,frog\n253425,deer\n253426,airplane\n253427,deer\n253428,ship\n253429,truck\n253430,airplane\n253431,frog\n253432,frog\n253433,deer\n253434,deer\n253435,ship\n253436,truck\n253437,deer\n253438,cat\n253439,deer\n253440,dog\n253441,truck\n253442,deer\n253443,dog\n253444,airplane\n253445,frog\n253446,deer\n253447,bird\n253448,frog\n253449,ship\n253450,deer\n253451,deer\n253452,deer\n253453,truck\n253454,ship\n253455,horse\n253456,frog\n253457,ship\n253458,frog\n253459,deer\n253460,cat\n253461,bird\n253462,deer\n253463,automobile\n253464,frog\n253465,airplane\n253466,airplane\n253467,automobile\n253468,dog\n253469,horse\n253470,truck\n253471,horse\n253472,frog\n253473,truck\n253474,bird\n253475,dog\n253476,deer\n253477,bird\n253478,truck\n253479,dog\n253480,bird\n253481,deer\n253482,airplane\n253483,ship\n253484,dog\n253485,cat\n253486,deer\n253487,truck\n253488,truck\n253489,airplane\n253490,cat\n253491,deer\n253492,airplane\n253493,airplane\n253494,ship\n253495,automobile\n253496,cat\n253497,ship\n253498,horse\n253499,ship\n253500,frog\n253501,automobile\n253502,cat\n253503,truck\n253504,cat\n253505,bird\n253506,frog\n253507,cat\n253508,deer\n253509,cat\n253510,cat\n253511,deer\n253512,horse\n253513,cat\n253514,cat\n253515,bird\n253516,frog\n253517,cat\n253518,cat\n253519,deer\n253520,deer\n253521,deer\n253522,dog\n253523,airplane\n253524,airplane\n253525,automobile\n253526,dog\n253527,airplane\n253528,truck\n253529,airplane\n253530,bird\n253531,frog\n253532,truck\n253533,frog\n253534,truck\n253535,bird\n253536,frog\n253537,deer\n253538,truck\n253539,airplane\n253540,horse\n253541,dog\n253542,bird\n253543,cat\n253544,frog\n253545,airplane\n253546,frog\n253547,frog\n253548,truck\n253549,airplane\n253550,bird\n253551,deer\n253552,dog\n253553,truck\n253554,deer\n253555,deer\n253556,horse\n253557,airplane\n253558,horse\n253559,frog\n253560,horse\n253561,cat\n253562,bird\n253563,airplane\n253564,horse\n253565,bird\n253566,ship\n253567,frog\n253568,dog\n253569,cat\n253570,cat\n253571,deer\n253572,ship\n253573,dog\n253574,airplane\n253575,airplane\n253576,horse\n253577,horse\n253578,ship\n253579,cat\n253580,deer\n253581,automobile\n253582,frog\n253583,horse\n253584,automobile\n253585,deer\n253586,cat\n253587,deer\n253588,airplane\n253589,automobile\n253590,cat\n253591,airplane\n253592,frog\n253593,deer\n253594,horse\n253595,automobile\n253596,automobile\n253597,horse\n253598,horse\n253599,airplane\n253600,airplane\n253601,airplane\n253602,frog\n253603,frog\n253604,dog\n253605,horse\n253606,frog\n253607,dog\n253608,horse\n253609,deer\n253610,ship\n253611,truck\n253612,airplane\n253613,automobile\n253614,cat\n253615,frog\n253616,cat\n253617,cat\n253618,ship\n253619,bird\n253620,frog\n253621,bird\n253622,dog\n253623,truck\n253624,deer\n253625,frog\n253626,deer\n253627,cat\n253628,deer\n253629,automobile\n253630,cat\n253631,deer\n253632,deer\n253633,dog\n253634,frog\n253635,airplane\n253636,frog\n253637,truck\n253638,cat\n253639,deer\n253640,ship\n253641,deer\n253642,truck\n253643,dog\n253644,automobile\n253645,truck\n253646,ship\n253647,bird\n253648,horse\n253649,dog\n253650,deer\n253651,deer\n253652,cat\n253653,frog\n253654,ship\n253655,bird\n253656,cat\n253657,truck\n253658,ship\n253659,ship\n253660,airplane\n253661,cat\n253662,cat\n253663,horse\n253664,cat\n253665,deer\n253666,deer\n253667,automobile\n253668,horse\n253669,frog\n253670,frog\n253671,ship\n253672,deer\n253673,automobile\n253674,deer\n253675,deer\n253676,cat\n253677,airplane\n253678,bird\n253679,deer\n253680,bird\n253681,dog\n253682,airplane\n253683,dog\n253684,dog\n253685,cat\n253686,ship\n253687,cat\n253688,dog\n253689,cat\n253690,ship\n253691,deer\n253692,ship\n253693,frog\n253694,deer\n253695,bird\n253696,frog\n253697,horse\n253698,airplane\n253699,cat\n253700,ship\n253701,ship\n253702,bird\n253703,dog\n253704,frog\n253705,frog\n253706,airplane\n253707,deer\n253708,automobile\n253709,dog\n253710,truck\n253711,dog\n253712,bird\n253713,cat\n253714,truck\n253715,automobile\n253716,airplane\n253717,airplane\n253718,airplane\n253719,frog\n253720,frog\n253721,bird\n253722,truck\n253723,frog\n253724,ship\n253725,dog\n253726,truck\n253727,automobile\n253728,frog\n253729,frog\n253730,truck\n253731,dog\n253732,truck\n253733,automobile\n253734,deer\n253735,bird\n253736,dog\n253737,airplane\n253738,deer\n253739,cat\n253740,truck\n253741,dog\n253742,automobile\n253743,deer\n253744,dog\n253745,airplane\n253746,automobile\n253747,truck\n253748,automobile\n253749,airplane\n253750,dog\n253751,cat\n253752,dog\n253753,horse\n253754,automobile\n253755,deer\n253756,ship\n253757,bird\n253758,deer\n253759,cat\n253760,dog\n253761,cat\n253762,deer\n253763,frog\n253764,dog\n253765,cat\n253766,horse\n253767,truck\n253768,cat\n253769,deer\n253770,cat\n253771,ship\n253772,dog\n253773,automobile\n253774,frog\n253775,cat\n253776,airplane\n253777,deer\n253778,cat\n253779,truck\n253780,dog\n253781,cat\n253782,airplane\n253783,deer\n253784,cat\n253785,ship\n253786,cat\n253787,deer\n253788,airplane\n253789,horse\n253790,airplane\n253791,cat\n253792,truck\n253793,automobile\n253794,cat\n253795,frog\n253796,airplane\n253797,truck\n253798,horse\n253799,truck\n253800,airplane\n253801,bird\n253802,truck\n253803,automobile\n253804,truck\n253805,cat\n253806,frog\n253807,ship\n253808,deer\n253809,frog\n253810,ship\n253811,cat\n253812,horse\n253813,deer\n253814,cat\n253815,automobile\n253816,deer\n253817,dog\n253818,ship\n253819,truck\n253820,deer\n253821,bird\n253822,deer\n253823,airplane\n253824,cat\n253825,automobile\n253826,horse\n253827,cat\n253828,ship\n253829,bird\n253830,horse\n253831,cat\n253832,frog\n253833,deer\n253834,dog\n253835,horse\n253836,frog\n253837,truck\n253838,frog\n253839,cat\n253840,truck\n253841,frog\n253842,frog\n253843,truck\n253844,truck\n253845,frog\n253846,deer\n253847,truck\n253848,bird\n253849,horse\n253850,horse\n253851,ship\n253852,ship\n253853,automobile\n253854,bird\n253855,deer\n253856,ship\n253857,cat\n253858,horse\n253859,deer\n253860,ship\n253861,airplane\n253862,deer\n253863,ship\n253864,dog\n253865,cat\n253866,frog\n253867,dog\n253868,deer\n253869,bird\n253870,airplane\n253871,airplane\n253872,ship\n253873,dog\n253874,deer\n253875,automobile\n253876,frog\n253877,bird\n253878,bird\n253879,truck\n253880,horse\n253881,cat\n253882,frog\n253883,cat\n253884,frog\n253885,truck\n253886,automobile\n253887,bird\n253888,cat\n253889,ship\n253890,frog\n253891,automobile\n253892,truck\n253893,dog\n253894,ship\n253895,airplane\n253896,cat\n253897,truck\n253898,ship\n253899,truck\n253900,frog\n253901,dog\n253902,bird\n253903,deer\n253904,ship\n253905,deer\n253906,deer\n253907,bird\n253908,dog\n253909,ship\n253910,dog\n253911,deer\n253912,ship\n253913,frog\n253914,cat\n253915,cat\n253916,deer\n253917,frog\n253918,ship\n253919,bird\n253920,automobile\n253921,deer\n253922,ship\n253923,truck\n253924,dog\n253925,deer\n253926,truck\n253927,frog\n253928,frog\n253929,bird\n253930,automobile\n253931,bird\n253932,horse\n253933,bird\n253934,horse\n253935,truck\n253936,frog\n253937,ship\n253938,frog\n253939,ship\n253940,bird\n253941,automobile\n253942,bird\n253943,truck\n253944,dog\n253945,ship\n253946,bird\n253947,automobile\n253948,truck\n253949,deer\n253950,airplane\n253951,frog\n253952,airplane\n253953,airplane\n253954,airplane\n253955,dog\n253956,bird\n253957,deer\n253958,dog\n253959,automobile\n253960,frog\n253961,frog\n253962,frog\n253963,deer\n253964,frog\n253965,ship\n253966,cat\n253967,cat\n253968,deer\n253969,dog\n253970,deer\n253971,truck\n253972,deer\n253973,cat\n253974,frog\n253975,horse\n253976,frog\n253977,horse\n253978,airplane\n253979,bird\n253980,deer\n253981,truck\n253982,deer\n253983,horse\n253984,deer\n253985,truck\n253986,truck\n253987,automobile\n253988,bird\n253989,cat\n253990,frog\n253991,dog\n253992,deer\n253993,dog\n253994,bird\n253995,airplane\n253996,ship\n253997,truck\n253998,airplane\n253999,ship\n254000,cat\n254001,ship\n254002,deer\n254003,dog\n254004,cat\n254005,ship\n254006,automobile\n254007,horse\n254008,automobile\n254009,bird\n254010,horse\n254011,ship\n254012,frog\n254013,automobile\n254014,airplane\n254015,dog\n254016,airplane\n254017,horse\n254018,bird\n254019,cat\n254020,deer\n254021,airplane\n254022,deer\n254023,frog\n254024,truck\n254025,airplane\n254026,frog\n254027,automobile\n254028,cat\n254029,deer\n254030,deer\n254031,deer\n254032,deer\n254033,ship\n254034,cat\n254035,bird\n254036,truck\n254037,cat\n254038,automobile\n254039,truck\n254040,frog\n254041,truck\n254042,deer\n254043,horse\n254044,dog\n254045,truck\n254046,truck\n254047,cat\n254048,horse\n254049,bird\n254050,truck\n254051,truck\n254052,automobile\n254053,frog\n254054,frog\n254055,ship\n254056,bird\n254057,automobile\n254058,automobile\n254059,dog\n254060,truck\n254061,ship\n254062,truck\n254063,frog\n254064,frog\n254065,bird\n254066,dog\n254067,ship\n254068,dog\n254069,deer\n254070,automobile\n254071,truck\n254072,cat\n254073,bird\n254074,dog\n254075,truck\n254076,frog\n254077,cat\n254078,ship\n254079,frog\n254080,dog\n254081,truck\n254082,ship\n254083,bird\n254084,automobile\n254085,bird\n254086,cat\n254087,automobile\n254088,truck\n254089,horse\n254090,truck\n254091,ship\n254092,ship\n254093,truck\n254094,ship\n254095,airplane\n254096,frog\n254097,truck\n254098,deer\n254099,frog\n254100,horse\n254101,horse\n254102,deer\n254103,cat\n254104,airplane\n254105,deer\n254106,cat\n254107,dog\n254108,automobile\n254109,ship\n254110,deer\n254111,truck\n254112,deer\n254113,ship\n254114,deer\n254115,deer\n254116,dog\n254117,ship\n254118,frog\n254119,cat\n254120,ship\n254121,truck\n254122,automobile\n254123,automobile\n254124,ship\n254125,deer\n254126,frog\n254127,dog\n254128,frog\n254129,deer\n254130,dog\n254131,bird\n254132,ship\n254133,airplane\n254134,truck\n254135,automobile\n254136,airplane\n254137,deer\n254138,airplane\n254139,ship\n254140,deer\n254141,truck\n254142,bird\n254143,bird\n254144,automobile\n254145,ship\n254146,horse\n254147,ship\n254148,deer\n254149,dog\n254150,truck\n254151,dog\n254152,frog\n254153,bird\n254154,bird\n254155,dog\n254156,ship\n254157,cat\n254158,frog\n254159,frog\n254160,deer\n254161,truck\n254162,ship\n254163,frog\n254164,truck\n254165,ship\n254166,airplane\n254167,deer\n254168,frog\n254169,cat\n254170,deer\n254171,cat\n254172,bird\n254173,automobile\n254174,bird\n254175,dog\n254176,ship\n254177,deer\n254178,frog\n254179,ship\n254180,cat\n254181,frog\n254182,dog\n254183,ship\n254184,deer\n254185,automobile\n254186,horse\n254187,frog\n254188,cat\n254189,truck\n254190,airplane\n254191,truck\n254192,bird\n254193,cat\n254194,cat\n254195,ship\n254196,frog\n254197,frog\n254198,deer\n254199,airplane\n254200,deer\n254201,cat\n254202,bird\n254203,truck\n254204,frog\n254205,horse\n254206,frog\n254207,ship\n254208,truck\n254209,dog\n254210,bird\n254211,ship\n254212,frog\n254213,horse\n254214,horse\n254215,deer\n254216,ship\n254217,deer\n254218,airplane\n254219,deer\n254220,truck\n254221,bird\n254222,frog\n254223,dog\n254224,deer\n254225,automobile\n254226,deer\n254227,dog\n254228,ship\n254229,horse\n254230,ship\n254231,airplane\n254232,bird\n254233,frog\n254234,ship\n254235,deer\n254236,horse\n254237,truck\n254238,bird\n254239,truck\n254240,dog\n254241,frog\n254242,bird\n254243,dog\n254244,airplane\n254245,horse\n254246,frog\n254247,deer\n254248,dog\n254249,truck\n254250,truck\n254251,truck\n254252,bird\n254253,frog\n254254,frog\n254255,bird\n254256,bird\n254257,cat\n254258,frog\n254259,bird\n254260,deer\n254261,cat\n254262,cat\n254263,frog\n254264,airplane\n254265,ship\n254266,dog\n254267,horse\n254268,dog\n254269,horse\n254270,cat\n254271,frog\n254272,dog\n254273,cat\n254274,automobile\n254275,airplane\n254276,automobile\n254277,cat\n254278,airplane\n254279,dog\n254280,cat\n254281,ship\n254282,ship\n254283,truck\n254284,deer\n254285,automobile\n254286,cat\n254287,deer\n254288,horse\n254289,horse\n254290,horse\n254291,cat\n254292,deer\n254293,ship\n254294,airplane\n254295,truck\n254296,dog\n254297,horse\n254298,dog\n254299,truck\n254300,bird\n254301,airplane\n254302,deer\n254303,automobile\n254304,cat\n254305,horse\n254306,frog\n254307,truck\n254308,ship\n254309,frog\n254310,horse\n254311,truck\n254312,dog\n254313,cat\n254314,horse\n254315,truck\n254316,cat\n254317,cat\n254318,truck\n254319,horse\n254320,dog\n254321,deer\n254322,horse\n254323,horse\n254324,horse\n254325,deer\n254326,deer\n254327,automobile\n254328,frog\n254329,ship\n254330,airplane\n254331,frog\n254332,bird\n254333,automobile\n254334,dog\n254335,cat\n254336,horse\n254337,automobile\n254338,bird\n254339,horse\n254340,automobile\n254341,cat\n254342,deer\n254343,automobile\n254344,cat\n254345,cat\n254346,deer\n254347,cat\n254348,frog\n254349,cat\n254350,frog\n254351,deer\n254352,cat\n254353,automobile\n254354,truck\n254355,frog\n254356,automobile\n254357,frog\n254358,truck\n254359,ship\n254360,frog\n254361,truck\n254362,cat\n254363,truck\n254364,dog\n254365,cat\n254366,dog\n254367,deer\n254368,deer\n254369,deer\n254370,horse\n254371,airplane\n254372,dog\n254373,deer\n254374,automobile\n254375,airplane\n254376,dog\n254377,bird\n254378,dog\n254379,dog\n254380,frog\n254381,frog\n254382,cat\n254383,deer\n254384,automobile\n254385,cat\n254386,ship\n254387,cat\n254388,ship\n254389,horse\n254390,horse\n254391,cat\n254392,frog\n254393,frog\n254394,dog\n254395,ship\n254396,cat\n254397,cat\n254398,frog\n254399,frog\n254400,airplane\n254401,deer\n254402,cat\n254403,truck\n254404,truck\n254405,bird\n254406,horse\n254407,deer\n254408,dog\n254409,truck\n254410,cat\n254411,frog\n254412,bird\n254413,ship\n254414,cat\n254415,deer\n254416,truck\n254417,cat\n254418,frog\n254419,bird\n254420,bird\n254421,dog\n254422,airplane\n254423,bird\n254424,airplane\n254425,horse\n254426,truck\n254427,deer\n254428,airplane\n254429,cat\n254430,deer\n254431,dog\n254432,horse\n254433,horse\n254434,horse\n254435,frog\n254436,truck\n254437,automobile\n254438,bird\n254439,horse\n254440,horse\n254441,cat\n254442,dog\n254443,ship\n254444,airplane\n254445,ship\n254446,airplane\n254447,bird\n254448,truck\n254449,cat\n254450,frog\n254451,cat\n254452,horse\n254453,cat\n254454,horse\n254455,dog\n254456,dog\n254457,dog\n254458,dog\n254459,airplane\n254460,cat\n254461,dog\n254462,bird\n254463,airplane\n254464,ship\n254465,bird\n254466,airplane\n254467,frog\n254468,cat\n254469,horse\n254470,frog\n254471,truck\n254472,cat\n254473,deer\n254474,bird\n254475,airplane\n254476,airplane\n254477,deer\n254478,frog\n254479,bird\n254480,frog\n254481,airplane\n254482,bird\n254483,bird\n254484,cat\n254485,cat\n254486,truck\n254487,truck\n254488,automobile\n254489,truck\n254490,horse\n254491,truck\n254492,automobile\n254493,cat\n254494,truck\n254495,airplane\n254496,truck\n254497,ship\n254498,dog\n254499,truck\n254500,automobile\n254501,dog\n254502,truck\n254503,dog\n254504,automobile\n254505,bird\n254506,deer\n254507,cat\n254508,bird\n254509,frog\n254510,bird\n254511,truck\n254512,deer\n254513,ship\n254514,cat\n254515,cat\n254516,deer\n254517,cat\n254518,deer\n254519,bird\n254520,cat\n254521,cat\n254522,horse\n254523,frog\n254524,horse\n254525,airplane\n254526,airplane\n254527,truck\n254528,bird\n254529,dog\n254530,dog\n254531,dog\n254532,automobile\n254533,truck\n254534,dog\n254535,cat\n254536,frog\n254537,truck\n254538,horse\n254539,deer\n254540,automobile\n254541,automobile\n254542,truck\n254543,horse\n254544,bird\n254545,automobile\n254546,horse\n254547,truck\n254548,truck\n254549,frog\n254550,bird\n254551,deer\n254552,truck\n254553,automobile\n254554,airplane\n254555,deer\n254556,cat\n254557,ship\n254558,dog\n254559,cat\n254560,frog\n254561,ship\n254562,bird\n254563,bird\n254564,truck\n254565,cat\n254566,bird\n254567,ship\n254568,bird\n254569,horse\n254570,dog\n254571,deer\n254572,frog\n254573,airplane\n254574,cat\n254575,automobile\n254576,ship\n254577,dog\n254578,cat\n254579,bird\n254580,deer\n254581,cat\n254582,horse\n254583,dog\n254584,airplane\n254585,cat\n254586,cat\n254587,deer\n254588,truck\n254589,frog\n254590,dog\n254591,dog\n254592,deer\n254593,bird\n254594,bird\n254595,truck\n254596,dog\n254597,cat\n254598,automobile\n254599,deer\n254600,truck\n254601,horse\n254602,cat\n254603,dog\n254604,cat\n254605,truck\n254606,dog\n254607,airplane\n254608,truck\n254609,frog\n254610,deer\n254611,ship\n254612,cat\n254613,horse\n254614,frog\n254615,bird\n254616,dog\n254617,truck\n254618,airplane\n254619,dog\n254620,airplane\n254621,airplane\n254622,deer\n254623,deer\n254624,horse\n254625,horse\n254626,deer\n254627,dog\n254628,horse\n254629,horse\n254630,cat\n254631,bird\n254632,truck\n254633,dog\n254634,ship\n254635,deer\n254636,cat\n254637,deer\n254638,horse\n254639,dog\n254640,ship\n254641,truck\n254642,dog\n254643,deer\n254644,deer\n254645,truck\n254646,bird\n254647,deer\n254648,truck\n254649,bird\n254650,truck\n254651,horse\n254652,automobile\n254653,frog\n254654,deer\n254655,bird\n254656,deer\n254657,dog\n254658,deer\n254659,truck\n254660,dog\n254661,horse\n254662,horse\n254663,dog\n254664,bird\n254665,ship\n254666,dog\n254667,frog\n254668,airplane\n254669,truck\n254670,truck\n254671,truck\n254672,dog\n254673,truck\n254674,truck\n254675,dog\n254676,frog\n254677,automobile\n254678,deer\n254679,ship\n254680,dog\n254681,automobile\n254682,truck\n254683,airplane\n254684,horse\n254685,bird\n254686,frog\n254687,automobile\n254688,dog\n254689,horse\n254690,automobile\n254691,cat\n254692,dog\n254693,deer\n254694,truck\n254695,automobile\n254696,cat\n254697,horse\n254698,deer\n254699,truck\n254700,airplane\n254701,ship\n254702,truck\n254703,horse\n254704,truck\n254705,deer\n254706,bird\n254707,horse\n254708,airplane\n254709,truck\n254710,ship\n254711,bird\n254712,bird\n254713,deer\n254714,deer\n254715,airplane\n254716,truck\n254717,bird\n254718,frog\n254719,deer\n254720,deer\n254721,deer\n254722,dog\n254723,deer\n254724,frog\n254725,deer\n254726,ship\n254727,automobile\n254728,ship\n254729,cat\n254730,deer\n254731,ship\n254732,truck\n254733,dog\n254734,horse\n254735,deer\n254736,frog\n254737,airplane\n254738,bird\n254739,frog\n254740,cat\n254741,ship\n254742,deer\n254743,frog\n254744,cat\n254745,dog\n254746,dog\n254747,deer\n254748,dog\n254749,dog\n254750,deer\n254751,dog\n254752,bird\n254753,dog\n254754,bird\n254755,ship\n254756,airplane\n254757,automobile\n254758,deer\n254759,automobile\n254760,ship\n254761,deer\n254762,airplane\n254763,ship\n254764,dog\n254765,truck\n254766,ship\n254767,deer\n254768,cat\n254769,horse\n254770,dog\n254771,ship\n254772,deer\n254773,airplane\n254774,ship\n254775,automobile\n254776,ship\n254777,deer\n254778,horse\n254779,deer\n254780,deer\n254781,bird\n254782,dog\n254783,ship\n254784,dog\n254785,automobile\n254786,airplane\n254787,horse\n254788,horse\n254789,bird\n254790,truck\n254791,horse\n254792,airplane\n254793,automobile\n254794,cat\n254795,truck\n254796,truck\n254797,frog\n254798,truck\n254799,cat\n254800,automobile\n254801,deer\n254802,bird\n254803,cat\n254804,horse\n254805,deer\n254806,dog\n254807,ship\n254808,bird\n254809,cat\n254810,frog\n254811,cat\n254812,frog\n254813,airplane\n254814,automobile\n254815,frog\n254816,bird\n254817,airplane\n254818,horse\n254819,deer\n254820,automobile\n254821,horse\n254822,airplane\n254823,horse\n254824,frog\n254825,cat\n254826,deer\n254827,deer\n254828,frog\n254829,horse\n254830,bird\n254831,cat\n254832,cat\n254833,frog\n254834,deer\n254835,deer\n254836,deer\n254837,bird\n254838,deer\n254839,frog\n254840,frog\n254841,frog\n254842,horse\n254843,cat\n254844,automobile\n254845,automobile\n254846,bird\n254847,horse\n254848,deer\n254849,automobile\n254850,horse\n254851,frog\n254852,frog\n254853,horse\n254854,bird\n254855,deer\n254856,bird\n254857,cat\n254858,horse\n254859,dog\n254860,frog\n254861,ship\n254862,bird\n254863,deer\n254864,deer\n254865,airplane\n254866,horse\n254867,frog\n254868,frog\n254869,automobile\n254870,deer\n254871,deer\n254872,deer\n254873,horse\n254874,ship\n254875,dog\n254876,deer\n254877,truck\n254878,airplane\n254879,bird\n254880,deer\n254881,deer\n254882,ship\n254883,automobile\n254884,frog\n254885,truck\n254886,bird\n254887,frog\n254888,cat\n254889,truck\n254890,truck\n254891,ship\n254892,ship\n254893,truck\n254894,ship\n254895,frog\n254896,automobile\n254897,ship\n254898,truck\n254899,horse\n254900,frog\n254901,cat\n254902,horse\n254903,horse\n254904,truck\n254905,dog\n254906,deer\n254907,bird\n254908,ship\n254909,deer\n254910,airplane\n254911,horse\n254912,bird\n254913,bird\n254914,airplane\n254915,truck\n254916,ship\n254917,frog\n254918,deer\n254919,frog\n254920,ship\n254921,frog\n254922,cat\n254923,frog\n254924,deer\n254925,cat\n254926,frog\n254927,deer\n254928,truck\n254929,bird\n254930,deer\n254931,deer\n254932,deer\n254933,frog\n254934,dog\n254935,ship\n254936,cat\n254937,frog\n254938,frog\n254939,truck\n254940,bird\n254941,ship\n254942,truck\n254943,bird\n254944,deer\n254945,horse\n254946,frog\n254947,deer\n254948,dog\n254949,ship\n254950,deer\n254951,cat\n254952,dog\n254953,frog\n254954,bird\n254955,cat\n254956,bird\n254957,airplane\n254958,ship\n254959,bird\n254960,automobile\n254961,deer\n254962,airplane\n254963,frog\n254964,truck\n254965,automobile\n254966,truck\n254967,horse\n254968,bird\n254969,automobile\n254970,dog\n254971,horse\n254972,cat\n254973,airplane\n254974,dog\n254975,airplane\n254976,horse\n254977,dog\n254978,horse\n254979,cat\n254980,cat\n254981,automobile\n254982,frog\n254983,deer\n254984,truck\n254985,cat\n254986,ship\n254987,frog\n254988,deer\n254989,bird\n254990,frog\n254991,cat\n254992,frog\n254993,dog\n254994,frog\n254995,truck\n254996,dog\n254997,horse\n254998,ship\n254999,deer\n255000,cat\n255001,bird\n255002,deer\n255003,frog\n255004,cat\n255005,dog\n255006,deer\n255007,deer\n255008,frog\n255009,deer\n255010,deer\n255011,airplane\n255012,truck\n255013,bird\n255014,truck\n255015,deer\n255016,cat\n255017,horse\n255018,horse\n255019,truck\n255020,horse\n255021,horse\n255022,deer\n255023,truck\n255024,bird\n255025,deer\n255026,truck\n255027,ship\n255028,frog\n255029,frog\n255030,frog\n255031,dog\n255032,horse\n255033,cat\n255034,frog\n255035,dog\n255036,frog\n255037,frog\n255038,dog\n255039,deer\n255040,horse\n255041,bird\n255042,horse\n255043,dog\n255044,cat\n255045,automobile\n255046,truck\n255047,deer\n255048,frog\n255049,deer\n255050,automobile\n255051,dog\n255052,deer\n255053,ship\n255054,airplane\n255055,horse\n255056,deer\n255057,truck\n255058,ship\n255059,cat\n255060,truck\n255061,frog\n255062,truck\n255063,airplane\n255064,dog\n255065,bird\n255066,truck\n255067,truck\n255068,deer\n255069,cat\n255070,deer\n255071,truck\n255072,deer\n255073,airplane\n255074,truck\n255075,cat\n255076,truck\n255077,frog\n255078,bird\n255079,cat\n255080,deer\n255081,dog\n255082,frog\n255083,ship\n255084,truck\n255085,dog\n255086,truck\n255087,frog\n255088,airplane\n255089,horse\n255090,automobile\n255091,cat\n255092,deer\n255093,deer\n255094,cat\n255095,horse\n255096,airplane\n255097,dog\n255098,deer\n255099,ship\n255100,horse\n255101,bird\n255102,bird\n255103,frog\n255104,airplane\n255105,horse\n255106,deer\n255107,frog\n255108,frog\n255109,horse\n255110,automobile\n255111,ship\n255112,dog\n255113,ship\n255114,bird\n255115,ship\n255116,deer\n255117,bird\n255118,airplane\n255119,truck\n255120,automobile\n255121,truck\n255122,ship\n255123,dog\n255124,horse\n255125,frog\n255126,bird\n255127,dog\n255128,cat\n255129,bird\n255130,automobile\n255131,horse\n255132,horse\n255133,horse\n255134,frog\n255135,bird\n255136,automobile\n255137,horse\n255138,frog\n255139,cat\n255140,automobile\n255141,airplane\n255142,cat\n255143,deer\n255144,frog\n255145,horse\n255146,airplane\n255147,deer\n255148,deer\n255149,deer\n255150,horse\n255151,deer\n255152,airplane\n255153,horse\n255154,dog\n255155,cat\n255156,horse\n255157,cat\n255158,truck\n255159,frog\n255160,frog\n255161,deer\n255162,truck\n255163,airplane\n255164,deer\n255165,dog\n255166,truck\n255167,dog\n255168,automobile\n255169,ship\n255170,truck\n255171,ship\n255172,truck\n255173,ship\n255174,frog\n255175,frog\n255176,cat\n255177,ship\n255178,truck\n255179,cat\n255180,truck\n255181,bird\n255182,deer\n255183,bird\n255184,ship\n255185,truck\n255186,ship\n255187,deer\n255188,ship\n255189,frog\n255190,truck\n255191,cat\n255192,ship\n255193,cat\n255194,frog\n255195,bird\n255196,bird\n255197,frog\n255198,horse\n255199,bird\n255200,airplane\n255201,airplane\n255202,frog\n255203,dog\n255204,dog\n255205,horse\n255206,truck\n255207,frog\n255208,airplane\n255209,cat\n255210,truck\n255211,horse\n255212,frog\n255213,truck\n255214,ship\n255215,ship\n255216,frog\n255217,ship\n255218,deer\n255219,frog\n255220,automobile\n255221,bird\n255222,deer\n255223,dog\n255224,airplane\n255225,dog\n255226,truck\n255227,deer\n255228,cat\n255229,deer\n255230,frog\n255231,truck\n255232,deer\n255233,ship\n255234,airplane\n255235,cat\n255236,horse\n255237,automobile\n255238,deer\n255239,airplane\n255240,cat\n255241,frog\n255242,frog\n255243,bird\n255244,horse\n255245,cat\n255246,dog\n255247,bird\n255248,cat\n255249,airplane\n255250,deer\n255251,cat\n255252,horse\n255253,dog\n255254,bird\n255255,horse\n255256,frog\n255257,frog\n255258,frog\n255259,frog\n255260,bird\n255261,horse\n255262,frog\n255263,truck\n255264,airplane\n255265,airplane\n255266,automobile\n255267,automobile\n255268,horse\n255269,bird\n255270,truck\n255271,horse\n255272,horse\n255273,frog\n255274,cat\n255275,dog\n255276,dog\n255277,airplane\n255278,horse\n255279,airplane\n255280,horse\n255281,dog\n255282,dog\n255283,deer\n255284,horse\n255285,bird\n255286,deer\n255287,deer\n255288,cat\n255289,bird\n255290,deer\n255291,bird\n255292,horse\n255293,dog\n255294,cat\n255295,cat\n255296,airplane\n255297,horse\n255298,deer\n255299,airplane\n255300,deer\n255301,frog\n255302,dog\n255303,horse\n255304,airplane\n255305,truck\n255306,truck\n255307,deer\n255308,deer\n255309,cat\n255310,deer\n255311,cat\n255312,truck\n255313,cat\n255314,horse\n255315,cat\n255316,horse\n255317,cat\n255318,bird\n255319,cat\n255320,horse\n255321,dog\n255322,dog\n255323,frog\n255324,cat\n255325,dog\n255326,truck\n255327,horse\n255328,frog\n255329,cat\n255330,dog\n255331,deer\n255332,cat\n255333,frog\n255334,horse\n255335,ship\n255336,frog\n255337,deer\n255338,frog\n255339,bird\n255340,dog\n255341,bird\n255342,frog\n255343,deer\n255344,airplane\n255345,cat\n255346,cat\n255347,frog\n255348,truck\n255349,frog\n255350,horse\n255351,airplane\n255352,bird\n255353,deer\n255354,dog\n255355,airplane\n255356,deer\n255357,truck\n255358,bird\n255359,cat\n255360,airplane\n255361,truck\n255362,frog\n255363,frog\n255364,truck\n255365,deer\n255366,airplane\n255367,cat\n255368,deer\n255369,frog\n255370,truck\n255371,frog\n255372,bird\n255373,cat\n255374,airplane\n255375,airplane\n255376,cat\n255377,automobile\n255378,cat\n255379,airplane\n255380,frog\n255381,deer\n255382,ship\n255383,frog\n255384,frog\n255385,truck\n255386,dog\n255387,deer\n255388,frog\n255389,airplane\n255390,dog\n255391,frog\n255392,truck\n255393,cat\n255394,automobile\n255395,dog\n255396,bird\n255397,dog\n255398,truck\n255399,airplane\n255400,dog\n255401,deer\n255402,cat\n255403,dog\n255404,ship\n255405,airplane\n255406,automobile\n255407,truck\n255408,ship\n255409,ship\n255410,frog\n255411,truck\n255412,frog\n255413,deer\n255414,dog\n255415,dog\n255416,dog\n255417,deer\n255418,deer\n255419,airplane\n255420,ship\n255421,bird\n255422,automobile\n255423,deer\n255424,cat\n255425,deer\n255426,horse\n255427,deer\n255428,bird\n255429,bird\n255430,airplane\n255431,truck\n255432,deer\n255433,dog\n255434,frog\n255435,horse\n255436,airplane\n255437,automobile\n255438,cat\n255439,frog\n255440,cat\n255441,truck\n255442,frog\n255443,horse\n255444,frog\n255445,dog\n255446,horse\n255447,ship\n255448,truck\n255449,airplane\n255450,truck\n255451,frog\n255452,horse\n255453,deer\n255454,horse\n255455,deer\n255456,truck\n255457,deer\n255458,deer\n255459,horse\n255460,bird\n255461,cat\n255462,automobile\n255463,truck\n255464,airplane\n255465,truck\n255466,ship\n255467,frog\n255468,truck\n255469,deer\n255470,horse\n255471,cat\n255472,cat\n255473,horse\n255474,deer\n255475,bird\n255476,truck\n255477,dog\n255478,frog\n255479,frog\n255480,deer\n255481,deer\n255482,dog\n255483,cat\n255484,ship\n255485,frog\n255486,truck\n255487,automobile\n255488,bird\n255489,ship\n255490,cat\n255491,dog\n255492,automobile\n255493,cat\n255494,horse\n255495,automobile\n255496,horse\n255497,dog\n255498,bird\n255499,frog\n255500,dog\n255501,ship\n255502,airplane\n255503,bird\n255504,automobile\n255505,frog\n255506,dog\n255507,truck\n255508,dog\n255509,bird\n255510,deer\n255511,frog\n255512,truck\n255513,deer\n255514,cat\n255515,cat\n255516,dog\n255517,bird\n255518,frog\n255519,truck\n255520,dog\n255521,airplane\n255522,automobile\n255523,frog\n255524,deer\n255525,airplane\n255526,frog\n255527,truck\n255528,cat\n255529,cat\n255530,truck\n255531,cat\n255532,frog\n255533,horse\n255534,cat\n255535,frog\n255536,deer\n255537,horse\n255538,deer\n255539,automobile\n255540,dog\n255541,deer\n255542,deer\n255543,horse\n255544,horse\n255545,deer\n255546,truck\n255547,horse\n255548,truck\n255549,dog\n255550,frog\n255551,horse\n255552,truck\n255553,horse\n255554,dog\n255555,truck\n255556,cat\n255557,bird\n255558,cat\n255559,deer\n255560,truck\n255561,automobile\n255562,horse\n255563,airplane\n255564,cat\n255565,dog\n255566,horse\n255567,frog\n255568,airplane\n255569,ship\n255570,automobile\n255571,automobile\n255572,airplane\n255573,bird\n255574,cat\n255575,deer\n255576,ship\n255577,cat\n255578,automobile\n255579,ship\n255580,cat\n255581,dog\n255582,deer\n255583,deer\n255584,bird\n255585,dog\n255586,horse\n255587,truck\n255588,dog\n255589,deer\n255590,cat\n255591,bird\n255592,ship\n255593,deer\n255594,deer\n255595,ship\n255596,automobile\n255597,frog\n255598,horse\n255599,automobile\n255600,automobile\n255601,frog\n255602,bird\n255603,horse\n255604,cat\n255605,truck\n255606,cat\n255607,bird\n255608,cat\n255609,horse\n255610,ship\n255611,horse\n255612,frog\n255613,deer\n255614,deer\n255615,bird\n255616,automobile\n255617,frog\n255618,bird\n255619,deer\n255620,dog\n255621,truck\n255622,deer\n255623,cat\n255624,horse\n255625,truck\n255626,horse\n255627,cat\n255628,deer\n255629,ship\n255630,dog\n255631,airplane\n255632,bird\n255633,deer\n255634,dog\n255635,dog\n255636,cat\n255637,bird\n255638,truck\n255639,ship\n255640,bird\n255641,horse\n255642,ship\n255643,ship\n255644,truck\n255645,dog\n255646,truck\n255647,dog\n255648,frog\n255649,frog\n255650,frog\n255651,airplane\n255652,dog\n255653,deer\n255654,bird\n255655,cat\n255656,bird\n255657,bird\n255658,dog\n255659,frog\n255660,ship\n255661,deer\n255662,deer\n255663,deer\n255664,cat\n255665,cat\n255666,automobile\n255667,ship\n255668,frog\n255669,frog\n255670,bird\n255671,bird\n255672,cat\n255673,cat\n255674,truck\n255675,frog\n255676,truck\n255677,airplane\n255678,truck\n255679,dog\n255680,deer\n255681,truck\n255682,truck\n255683,ship\n255684,deer\n255685,horse\n255686,ship\n255687,truck\n255688,airplane\n255689,deer\n255690,airplane\n255691,deer\n255692,horse\n255693,bird\n255694,bird\n255695,deer\n255696,frog\n255697,frog\n255698,bird\n255699,horse\n255700,bird\n255701,frog\n255702,airplane\n255703,truck\n255704,deer\n255705,deer\n255706,deer\n255707,automobile\n255708,deer\n255709,frog\n255710,ship\n255711,bird\n255712,frog\n255713,ship\n255714,dog\n255715,deer\n255716,ship\n255717,truck\n255718,frog\n255719,dog\n255720,truck\n255721,cat\n255722,ship\n255723,cat\n255724,dog\n255725,deer\n255726,bird\n255727,cat\n255728,horse\n255729,frog\n255730,airplane\n255731,truck\n255732,deer\n255733,cat\n255734,dog\n255735,automobile\n255736,automobile\n255737,horse\n255738,airplane\n255739,horse\n255740,frog\n255741,cat\n255742,automobile\n255743,truck\n255744,cat\n255745,dog\n255746,cat\n255747,frog\n255748,truck\n255749,cat\n255750,dog\n255751,ship\n255752,dog\n255753,deer\n255754,dog\n255755,deer\n255756,ship\n255757,ship\n255758,cat\n255759,horse\n255760,ship\n255761,deer\n255762,horse\n255763,airplane\n255764,deer\n255765,frog\n255766,bird\n255767,ship\n255768,bird\n255769,bird\n255770,ship\n255771,cat\n255772,cat\n255773,automobile\n255774,ship\n255775,airplane\n255776,dog\n255777,deer\n255778,bird\n255779,ship\n255780,truck\n255781,bird\n255782,bird\n255783,bird\n255784,deer\n255785,truck\n255786,dog\n255787,airplane\n255788,deer\n255789,ship\n255790,truck\n255791,frog\n255792,airplane\n255793,truck\n255794,horse\n255795,horse\n255796,deer\n255797,horse\n255798,cat\n255799,airplane\n255800,horse\n255801,automobile\n255802,frog\n255803,frog\n255804,cat\n255805,truck\n255806,bird\n255807,bird\n255808,airplane\n255809,deer\n255810,horse\n255811,ship\n255812,bird\n255813,cat\n255814,dog\n255815,truck\n255816,cat\n255817,bird\n255818,bird\n255819,deer\n255820,cat\n255821,truck\n255822,truck\n255823,frog\n255824,cat\n255825,dog\n255826,frog\n255827,automobile\n255828,frog\n255829,deer\n255830,cat\n255831,dog\n255832,cat\n255833,deer\n255834,ship\n255835,deer\n255836,dog\n255837,automobile\n255838,bird\n255839,frog\n255840,truck\n255841,cat\n255842,deer\n255843,truck\n255844,horse\n255845,dog\n255846,cat\n255847,deer\n255848,dog\n255849,truck\n255850,cat\n255851,deer\n255852,deer\n255853,horse\n255854,ship\n255855,bird\n255856,cat\n255857,dog\n255858,automobile\n255859,bird\n255860,bird\n255861,truck\n255862,deer\n255863,horse\n255864,bird\n255865,deer\n255866,cat\n255867,frog\n255868,dog\n255869,frog\n255870,dog\n255871,ship\n255872,dog\n255873,cat\n255874,bird\n255875,ship\n255876,dog\n255877,ship\n255878,deer\n255879,horse\n255880,truck\n255881,horse\n255882,ship\n255883,frog\n255884,cat\n255885,automobile\n255886,deer\n255887,dog\n255888,horse\n255889,truck\n255890,dog\n255891,truck\n255892,frog\n255893,truck\n255894,bird\n255895,cat\n255896,horse\n255897,deer\n255898,dog\n255899,ship\n255900,dog\n255901,bird\n255902,bird\n255903,automobile\n255904,dog\n255905,truck\n255906,frog\n255907,truck\n255908,automobile\n255909,horse\n255910,cat\n255911,ship\n255912,deer\n255913,truck\n255914,frog\n255915,automobile\n255916,frog\n255917,truck\n255918,ship\n255919,automobile\n255920,truck\n255921,horse\n255922,deer\n255923,horse\n255924,airplane\n255925,truck\n255926,deer\n255927,bird\n255928,truck\n255929,cat\n255930,ship\n255931,airplane\n255932,horse\n255933,automobile\n255934,airplane\n255935,airplane\n255936,truck\n255937,ship\n255938,dog\n255939,automobile\n255940,bird\n255941,airplane\n255942,airplane\n255943,bird\n255944,ship\n255945,frog\n255946,frog\n255947,horse\n255948,truck\n255949,deer\n255950,bird\n255951,automobile\n255952,truck\n255953,horse\n255954,frog\n255955,frog\n255956,airplane\n255957,ship\n255958,automobile\n255959,frog\n255960,frog\n255961,ship\n255962,deer\n255963,ship\n255964,cat\n255965,frog\n255966,ship\n255967,dog\n255968,cat\n255969,deer\n255970,dog\n255971,deer\n255972,bird\n255973,truck\n255974,frog\n255975,dog\n255976,cat\n255977,cat\n255978,frog\n255979,ship\n255980,bird\n255981,cat\n255982,automobile\n255983,frog\n255984,deer\n255985,automobile\n255986,deer\n255987,truck\n255988,frog\n255989,truck\n255990,automobile\n255991,horse\n255992,bird\n255993,frog\n255994,cat\n255995,deer\n255996,deer\n255997,deer\n255998,cat\n255999,cat\n256000,deer\n256001,dog\n256002,deer\n256003,frog\n256004,cat\n256005,ship\n256006,automobile\n256007,deer\n256008,dog\n256009,truck\n256010,automobile\n256011,bird\n256012,automobile\n256013,dog\n256014,frog\n256015,frog\n256016,truck\n256017,airplane\n256018,truck\n256019,automobile\n256020,ship\n256021,bird\n256022,bird\n256023,automobile\n256024,airplane\n256025,truck\n256026,cat\n256027,automobile\n256028,dog\n256029,dog\n256030,automobile\n256031,frog\n256032,ship\n256033,cat\n256034,deer\n256035,automobile\n256036,frog\n256037,automobile\n256038,deer\n256039,cat\n256040,deer\n256041,dog\n256042,bird\n256043,truck\n256044,cat\n256045,cat\n256046,deer\n256047,ship\n256048,ship\n256049,cat\n256050,ship\n256051,frog\n256052,truck\n256053,ship\n256054,dog\n256055,airplane\n256056,bird\n256057,cat\n256058,horse\n256059,dog\n256060,ship\n256061,cat\n256062,automobile\n256063,deer\n256064,bird\n256065,ship\n256066,horse\n256067,horse\n256068,ship\n256069,airplane\n256070,airplane\n256071,frog\n256072,bird\n256073,truck\n256074,cat\n256075,ship\n256076,ship\n256077,truck\n256078,bird\n256079,cat\n256080,bird\n256081,frog\n256082,cat\n256083,ship\n256084,dog\n256085,truck\n256086,truck\n256087,frog\n256088,deer\n256089,cat\n256090,deer\n256091,ship\n256092,horse\n256093,automobile\n256094,horse\n256095,dog\n256096,automobile\n256097,bird\n256098,truck\n256099,deer\n256100,horse\n256101,deer\n256102,horse\n256103,airplane\n256104,deer\n256105,cat\n256106,frog\n256107,horse\n256108,automobile\n256109,truck\n256110,bird\n256111,automobile\n256112,deer\n256113,frog\n256114,frog\n256115,frog\n256116,dog\n256117,deer\n256118,cat\n256119,airplane\n256120,cat\n256121,horse\n256122,deer\n256123,truck\n256124,bird\n256125,bird\n256126,airplane\n256127,ship\n256128,bird\n256129,truck\n256130,deer\n256131,cat\n256132,airplane\n256133,automobile\n256134,automobile\n256135,deer\n256136,horse\n256137,frog\n256138,dog\n256139,truck\n256140,airplane\n256141,dog\n256142,frog\n256143,ship\n256144,cat\n256145,airplane\n256146,horse\n256147,cat\n256148,airplane\n256149,airplane\n256150,deer\n256151,automobile\n256152,cat\n256153,truck\n256154,cat\n256155,bird\n256156,cat\n256157,frog\n256158,frog\n256159,dog\n256160,deer\n256161,frog\n256162,frog\n256163,frog\n256164,bird\n256165,airplane\n256166,cat\n256167,deer\n256168,cat\n256169,automobile\n256170,deer\n256171,deer\n256172,cat\n256173,truck\n256174,ship\n256175,airplane\n256176,dog\n256177,dog\n256178,truck\n256179,truck\n256180,truck\n256181,truck\n256182,bird\n256183,deer\n256184,frog\n256185,bird\n256186,ship\n256187,ship\n256188,ship\n256189,deer\n256190,frog\n256191,truck\n256192,ship\n256193,truck\n256194,ship\n256195,ship\n256196,deer\n256197,truck\n256198,horse\n256199,horse\n256200,deer\n256201,cat\n256202,horse\n256203,automobile\n256204,truck\n256205,truck\n256206,cat\n256207,ship\n256208,deer\n256209,ship\n256210,frog\n256211,cat\n256212,airplane\n256213,ship\n256214,deer\n256215,bird\n256216,dog\n256217,frog\n256218,deer\n256219,truck\n256220,ship\n256221,cat\n256222,dog\n256223,dog\n256224,deer\n256225,deer\n256226,deer\n256227,frog\n256228,truck\n256229,horse\n256230,dog\n256231,cat\n256232,deer\n256233,cat\n256234,ship\n256235,airplane\n256236,ship\n256237,cat\n256238,cat\n256239,horse\n256240,cat\n256241,cat\n256242,bird\n256243,airplane\n256244,ship\n256245,dog\n256246,horse\n256247,truck\n256248,ship\n256249,truck\n256250,deer\n256251,airplane\n256252,truck\n256253,cat\n256254,bird\n256255,dog\n256256,airplane\n256257,bird\n256258,deer\n256259,bird\n256260,bird\n256261,bird\n256262,bird\n256263,ship\n256264,airplane\n256265,horse\n256266,truck\n256267,airplane\n256268,bird\n256269,ship\n256270,bird\n256271,truck\n256272,dog\n256273,deer\n256274,airplane\n256275,bird\n256276,automobile\n256277,dog\n256278,cat\n256279,automobile\n256280,deer\n256281,truck\n256282,deer\n256283,ship\n256284,bird\n256285,automobile\n256286,deer\n256287,frog\n256288,dog\n256289,truck\n256290,deer\n256291,ship\n256292,cat\n256293,truck\n256294,bird\n256295,deer\n256296,cat\n256297,frog\n256298,cat\n256299,airplane\n256300,deer\n256301,frog\n256302,deer\n256303,dog\n256304,frog\n256305,frog\n256306,cat\n256307,automobile\n256308,frog\n256309,ship\n256310,automobile\n256311,automobile\n256312,automobile\n256313,cat\n256314,horse\n256315,truck\n256316,airplane\n256317,cat\n256318,cat\n256319,ship\n256320,automobile\n256321,cat\n256322,cat\n256323,truck\n256324,deer\n256325,deer\n256326,horse\n256327,dog\n256328,deer\n256329,truck\n256330,truck\n256331,deer\n256332,dog\n256333,bird\n256334,horse\n256335,deer\n256336,ship\n256337,bird\n256338,ship\n256339,automobile\n256340,truck\n256341,bird\n256342,frog\n256343,automobile\n256344,automobile\n256345,truck\n256346,frog\n256347,ship\n256348,dog\n256349,truck\n256350,frog\n256351,dog\n256352,automobile\n256353,truck\n256354,cat\n256355,ship\n256356,dog\n256357,cat\n256358,deer\n256359,ship\n256360,deer\n256361,deer\n256362,airplane\n256363,bird\n256364,cat\n256365,ship\n256366,dog\n256367,airplane\n256368,horse\n256369,deer\n256370,dog\n256371,airplane\n256372,cat\n256373,airplane\n256374,airplane\n256375,cat\n256376,dog\n256377,deer\n256378,truck\n256379,ship\n256380,airplane\n256381,dog\n256382,airplane\n256383,airplane\n256384,deer\n256385,automobile\n256386,frog\n256387,cat\n256388,cat\n256389,cat\n256390,ship\n256391,horse\n256392,horse\n256393,deer\n256394,airplane\n256395,horse\n256396,horse\n256397,frog\n256398,deer\n256399,ship\n256400,dog\n256401,automobile\n256402,frog\n256403,truck\n256404,horse\n256405,truck\n256406,cat\n256407,frog\n256408,frog\n256409,bird\n256410,cat\n256411,dog\n256412,ship\n256413,frog\n256414,frog\n256415,truck\n256416,horse\n256417,deer\n256418,automobile\n256419,airplane\n256420,deer\n256421,automobile\n256422,airplane\n256423,horse\n256424,ship\n256425,horse\n256426,dog\n256427,frog\n256428,frog\n256429,airplane\n256430,cat\n256431,cat\n256432,truck\n256433,cat\n256434,airplane\n256435,horse\n256436,deer\n256437,dog\n256438,ship\n256439,truck\n256440,frog\n256441,automobile\n256442,deer\n256443,horse\n256444,bird\n256445,airplane\n256446,automobile\n256447,deer\n256448,dog\n256449,bird\n256450,truck\n256451,deer\n256452,bird\n256453,ship\n256454,cat\n256455,frog\n256456,automobile\n256457,cat\n256458,deer\n256459,frog\n256460,truck\n256461,deer\n256462,horse\n256463,frog\n256464,frog\n256465,dog\n256466,dog\n256467,horse\n256468,airplane\n256469,automobile\n256470,deer\n256471,cat\n256472,horse\n256473,deer\n256474,frog\n256475,truck\n256476,automobile\n256477,horse\n256478,cat\n256479,truck\n256480,horse\n256481,deer\n256482,horse\n256483,automobile\n256484,deer\n256485,horse\n256486,truck\n256487,truck\n256488,truck\n256489,deer\n256490,cat\n256491,cat\n256492,airplane\n256493,horse\n256494,dog\n256495,truck\n256496,ship\n256497,frog\n256498,truck\n256499,frog\n256500,deer\n256501,cat\n256502,truck\n256503,automobile\n256504,airplane\n256505,cat\n256506,airplane\n256507,deer\n256508,ship\n256509,cat\n256510,automobile\n256511,horse\n256512,bird\n256513,cat\n256514,bird\n256515,automobile\n256516,airplane\n256517,horse\n256518,airplane\n256519,horse\n256520,automobile\n256521,cat\n256522,bird\n256523,truck\n256524,dog\n256525,deer\n256526,cat\n256527,horse\n256528,ship\n256529,cat\n256530,truck\n256531,bird\n256532,cat\n256533,truck\n256534,cat\n256535,frog\n256536,frog\n256537,truck\n256538,airplane\n256539,bird\n256540,frog\n256541,dog\n256542,frog\n256543,deer\n256544,bird\n256545,truck\n256546,automobile\n256547,airplane\n256548,horse\n256549,dog\n256550,horse\n256551,airplane\n256552,cat\n256553,cat\n256554,dog\n256555,airplane\n256556,dog\n256557,deer\n256558,deer\n256559,bird\n256560,cat\n256561,deer\n256562,deer\n256563,frog\n256564,automobile\n256565,bird\n256566,truck\n256567,bird\n256568,automobile\n256569,dog\n256570,deer\n256571,frog\n256572,truck\n256573,truck\n256574,automobile\n256575,frog\n256576,automobile\n256577,cat\n256578,deer\n256579,deer\n256580,cat\n256581,truck\n256582,cat\n256583,deer\n256584,cat\n256585,truck\n256586,deer\n256587,airplane\n256588,dog\n256589,frog\n256590,dog\n256591,truck\n256592,airplane\n256593,airplane\n256594,horse\n256595,deer\n256596,deer\n256597,cat\n256598,bird\n256599,dog\n256600,truck\n256601,bird\n256602,bird\n256603,cat\n256604,deer\n256605,bird\n256606,truck\n256607,dog\n256608,dog\n256609,cat\n256610,horse\n256611,cat\n256612,airplane\n256613,airplane\n256614,cat\n256615,deer\n256616,frog\n256617,ship\n256618,automobile\n256619,frog\n256620,truck\n256621,automobile\n256622,deer\n256623,dog\n256624,frog\n256625,dog\n256626,airplane\n256627,automobile\n256628,bird\n256629,dog\n256630,automobile\n256631,truck\n256632,dog\n256633,bird\n256634,ship\n256635,bird\n256636,cat\n256637,truck\n256638,bird\n256639,automobile\n256640,airplane\n256641,cat\n256642,cat\n256643,deer\n256644,airplane\n256645,dog\n256646,dog\n256647,cat\n256648,frog\n256649,horse\n256650,dog\n256651,automobile\n256652,cat\n256653,cat\n256654,deer\n256655,bird\n256656,truck\n256657,cat\n256658,ship\n256659,deer\n256660,dog\n256661,horse\n256662,ship\n256663,bird\n256664,deer\n256665,frog\n256666,horse\n256667,airplane\n256668,airplane\n256669,bird\n256670,truck\n256671,bird\n256672,frog\n256673,airplane\n256674,deer\n256675,cat\n256676,ship\n256677,truck\n256678,deer\n256679,bird\n256680,truck\n256681,automobile\n256682,deer\n256683,bird\n256684,frog\n256685,automobile\n256686,truck\n256687,airplane\n256688,deer\n256689,deer\n256690,bird\n256691,bird\n256692,dog\n256693,horse\n256694,horse\n256695,deer\n256696,horse\n256697,frog\n256698,automobile\n256699,horse\n256700,airplane\n256701,bird\n256702,truck\n256703,dog\n256704,cat\n256705,cat\n256706,frog\n256707,dog\n256708,cat\n256709,frog\n256710,cat\n256711,truck\n256712,horse\n256713,frog\n256714,deer\n256715,frog\n256716,frog\n256717,deer\n256718,horse\n256719,cat\n256720,bird\n256721,ship\n256722,bird\n256723,truck\n256724,truck\n256725,bird\n256726,airplane\n256727,deer\n256728,truck\n256729,cat\n256730,deer\n256731,truck\n256732,cat\n256733,automobile\n256734,frog\n256735,airplane\n256736,frog\n256737,airplane\n256738,bird\n256739,horse\n256740,dog\n256741,horse\n256742,bird\n256743,automobile\n256744,cat\n256745,dog\n256746,cat\n256747,cat\n256748,airplane\n256749,deer\n256750,ship\n256751,horse\n256752,deer\n256753,deer\n256754,frog\n256755,frog\n256756,bird\n256757,ship\n256758,dog\n256759,bird\n256760,deer\n256761,cat\n256762,frog\n256763,deer\n256764,airplane\n256765,deer\n256766,airplane\n256767,cat\n256768,automobile\n256769,horse\n256770,truck\n256771,horse\n256772,bird\n256773,automobile\n256774,truck\n256775,horse\n256776,cat\n256777,automobile\n256778,automobile\n256779,automobile\n256780,bird\n256781,bird\n256782,bird\n256783,automobile\n256784,frog\n256785,dog\n256786,truck\n256787,dog\n256788,truck\n256789,airplane\n256790,bird\n256791,dog\n256792,deer\n256793,automobile\n256794,dog\n256795,automobile\n256796,deer\n256797,horse\n256798,cat\n256799,frog\n256800,automobile\n256801,bird\n256802,dog\n256803,deer\n256804,bird\n256805,bird\n256806,cat\n256807,truck\n256808,dog\n256809,truck\n256810,frog\n256811,deer\n256812,airplane\n256813,frog\n256814,automobile\n256815,bird\n256816,deer\n256817,truck\n256818,cat\n256819,airplane\n256820,frog\n256821,truck\n256822,dog\n256823,cat\n256824,horse\n256825,horse\n256826,frog\n256827,deer\n256828,deer\n256829,deer\n256830,horse\n256831,truck\n256832,deer\n256833,cat\n256834,deer\n256835,dog\n256836,bird\n256837,cat\n256838,dog\n256839,ship\n256840,truck\n256841,dog\n256842,cat\n256843,airplane\n256844,airplane\n256845,ship\n256846,ship\n256847,deer\n256848,cat\n256849,truck\n256850,airplane\n256851,truck\n256852,deer\n256853,dog\n256854,airplane\n256855,ship\n256856,bird\n256857,frog\n256858,ship\n256859,ship\n256860,dog\n256861,cat\n256862,dog\n256863,cat\n256864,deer\n256865,bird\n256866,truck\n256867,airplane\n256868,bird\n256869,airplane\n256870,frog\n256871,ship\n256872,ship\n256873,truck\n256874,dog\n256875,automobile\n256876,horse\n256877,cat\n256878,horse\n256879,dog\n256880,automobile\n256881,ship\n256882,dog\n256883,airplane\n256884,bird\n256885,horse\n256886,automobile\n256887,deer\n256888,deer\n256889,horse\n256890,deer\n256891,dog\n256892,dog\n256893,deer\n256894,deer\n256895,automobile\n256896,ship\n256897,cat\n256898,cat\n256899,bird\n256900,cat\n256901,ship\n256902,frog\n256903,frog\n256904,truck\n256905,horse\n256906,truck\n256907,horse\n256908,airplane\n256909,cat\n256910,bird\n256911,airplane\n256912,airplane\n256913,airplane\n256914,cat\n256915,deer\n256916,truck\n256917,ship\n256918,airplane\n256919,bird\n256920,deer\n256921,cat\n256922,ship\n256923,dog\n256924,frog\n256925,automobile\n256926,dog\n256927,frog\n256928,cat\n256929,dog\n256930,automobile\n256931,airplane\n256932,ship\n256933,frog\n256934,bird\n256935,cat\n256936,truck\n256937,automobile\n256938,ship\n256939,horse\n256940,horse\n256941,cat\n256942,airplane\n256943,bird\n256944,deer\n256945,frog\n256946,ship\n256947,cat\n256948,ship\n256949,ship\n256950,airplane\n256951,frog\n256952,deer\n256953,cat\n256954,cat\n256955,frog\n256956,cat\n256957,cat\n256958,deer\n256959,frog\n256960,ship\n256961,frog\n256962,deer\n256963,deer\n256964,deer\n256965,horse\n256966,automobile\n256967,horse\n256968,frog\n256969,dog\n256970,bird\n256971,deer\n256972,truck\n256973,truck\n256974,automobile\n256975,cat\n256976,deer\n256977,frog\n256978,truck\n256979,airplane\n256980,bird\n256981,frog\n256982,truck\n256983,deer\n256984,horse\n256985,cat\n256986,frog\n256987,cat\n256988,truck\n256989,horse\n256990,automobile\n256991,airplane\n256992,deer\n256993,airplane\n256994,deer\n256995,ship\n256996,cat\n256997,horse\n256998,horse\n256999,automobile\n257000,deer\n257001,deer\n257002,automobile\n257003,dog\n257004,cat\n257005,airplane\n257006,ship\n257007,frog\n257008,deer\n257009,dog\n257010,horse\n257011,horse\n257012,automobile\n257013,dog\n257014,frog\n257015,ship\n257016,dog\n257017,frog\n257018,horse\n257019,deer\n257020,ship\n257021,deer\n257022,dog\n257023,horse\n257024,dog\n257025,ship\n257026,dog\n257027,frog\n257028,ship\n257029,horse\n257030,dog\n257031,dog\n257032,airplane\n257033,horse\n257034,airplane\n257035,bird\n257036,ship\n257037,dog\n257038,bird\n257039,dog\n257040,airplane\n257041,ship\n257042,cat\n257043,frog\n257044,bird\n257045,frog\n257046,truck\n257047,cat\n257048,bird\n257049,horse\n257050,dog\n257051,deer\n257052,frog\n257053,cat\n257054,cat\n257055,deer\n257056,cat\n257057,frog\n257058,horse\n257059,bird\n257060,airplane\n257061,automobile\n257062,deer\n257063,dog\n257064,bird\n257065,truck\n257066,horse\n257067,automobile\n257068,airplane\n257069,cat\n257070,horse\n257071,bird\n257072,horse\n257073,bird\n257074,dog\n257075,dog\n257076,frog\n257077,dog\n257078,frog\n257079,dog\n257080,deer\n257081,ship\n257082,ship\n257083,bird\n257084,automobile\n257085,airplane\n257086,cat\n257087,ship\n257088,airplane\n257089,dog\n257090,deer\n257091,airplane\n257092,ship\n257093,cat\n257094,frog\n257095,deer\n257096,automobile\n257097,truck\n257098,dog\n257099,horse\n257100,frog\n257101,airplane\n257102,deer\n257103,cat\n257104,truck\n257105,horse\n257106,horse\n257107,horse\n257108,deer\n257109,ship\n257110,automobile\n257111,deer\n257112,cat\n257113,deer\n257114,truck\n257115,dog\n257116,horse\n257117,dog\n257118,dog\n257119,truck\n257120,deer\n257121,cat\n257122,cat\n257123,ship\n257124,horse\n257125,frog\n257126,airplane\n257127,cat\n257128,bird\n257129,cat\n257130,automobile\n257131,deer\n257132,dog\n257133,bird\n257134,deer\n257135,frog\n257136,cat\n257137,truck\n257138,airplane\n257139,frog\n257140,cat\n257141,cat\n257142,frog\n257143,airplane\n257144,automobile\n257145,bird\n257146,deer\n257147,frog\n257148,bird\n257149,deer\n257150,ship\n257151,ship\n257152,automobile\n257153,horse\n257154,truck\n257155,deer\n257156,bird\n257157,frog\n257158,automobile\n257159,cat\n257160,cat\n257161,deer\n257162,airplane\n257163,frog\n257164,cat\n257165,airplane\n257166,deer\n257167,cat\n257168,truck\n257169,ship\n257170,deer\n257171,horse\n257172,deer\n257173,frog\n257174,dog\n257175,automobile\n257176,deer\n257177,bird\n257178,frog\n257179,dog\n257180,airplane\n257181,frog\n257182,automobile\n257183,deer\n257184,bird\n257185,horse\n257186,automobile\n257187,frog\n257188,truck\n257189,bird\n257190,frog\n257191,cat\n257192,airplane\n257193,frog\n257194,bird\n257195,automobile\n257196,automobile\n257197,horse\n257198,dog\n257199,dog\n257200,cat\n257201,truck\n257202,ship\n257203,airplane\n257204,deer\n257205,cat\n257206,horse\n257207,truck\n257208,automobile\n257209,bird\n257210,dog\n257211,bird\n257212,deer\n257213,frog\n257214,deer\n257215,deer\n257216,ship\n257217,bird\n257218,deer\n257219,ship\n257220,cat\n257221,automobile\n257222,truck\n257223,frog\n257224,cat\n257225,bird\n257226,horse\n257227,dog\n257228,bird\n257229,dog\n257230,frog\n257231,bird\n257232,frog\n257233,automobile\n257234,frog\n257235,cat\n257236,ship\n257237,bird\n257238,truck\n257239,deer\n257240,cat\n257241,cat\n257242,bird\n257243,deer\n257244,automobile\n257245,deer\n257246,truck\n257247,frog\n257248,dog\n257249,frog\n257250,airplane\n257251,deer\n257252,dog\n257253,dog\n257254,cat\n257255,deer\n257256,cat\n257257,cat\n257258,deer\n257259,ship\n257260,truck\n257261,airplane\n257262,horse\n257263,bird\n257264,airplane\n257265,ship\n257266,frog\n257267,ship\n257268,airplane\n257269,horse\n257270,cat\n257271,cat\n257272,dog\n257273,truck\n257274,frog\n257275,frog\n257276,cat\n257277,horse\n257278,automobile\n257279,horse\n257280,truck\n257281,cat\n257282,truck\n257283,automobile\n257284,cat\n257285,bird\n257286,horse\n257287,frog\n257288,deer\n257289,deer\n257290,truck\n257291,deer\n257292,dog\n257293,airplane\n257294,cat\n257295,deer\n257296,truck\n257297,truck\n257298,frog\n257299,horse\n257300,cat\n257301,bird\n257302,cat\n257303,frog\n257304,dog\n257305,dog\n257306,bird\n257307,frog\n257308,airplane\n257309,frog\n257310,deer\n257311,deer\n257312,automobile\n257313,bird\n257314,cat\n257315,cat\n257316,bird\n257317,frog\n257318,ship\n257319,truck\n257320,truck\n257321,horse\n257322,automobile\n257323,dog\n257324,deer\n257325,ship\n257326,automobile\n257327,frog\n257328,dog\n257329,airplane\n257330,ship\n257331,horse\n257332,airplane\n257333,ship\n257334,airplane\n257335,dog\n257336,bird\n257337,frog\n257338,cat\n257339,horse\n257340,bird\n257341,automobile\n257342,dog\n257343,frog\n257344,deer\n257345,truck\n257346,automobile\n257347,automobile\n257348,bird\n257349,bird\n257350,horse\n257351,cat\n257352,automobile\n257353,ship\n257354,ship\n257355,truck\n257356,automobile\n257357,deer\n257358,cat\n257359,ship\n257360,cat\n257361,frog\n257362,deer\n257363,horse\n257364,bird\n257365,deer\n257366,truck\n257367,deer\n257368,cat\n257369,deer\n257370,automobile\n257371,horse\n257372,deer\n257373,deer\n257374,bird\n257375,cat\n257376,dog\n257377,airplane\n257378,frog\n257379,deer\n257380,cat\n257381,automobile\n257382,cat\n257383,deer\n257384,airplane\n257385,dog\n257386,horse\n257387,frog\n257388,ship\n257389,airplane\n257390,airplane\n257391,horse\n257392,horse\n257393,ship\n257394,dog\n257395,airplane\n257396,frog\n257397,dog\n257398,truck\n257399,automobile\n257400,automobile\n257401,frog\n257402,cat\n257403,cat\n257404,airplane\n257405,deer\n257406,frog\n257407,dog\n257408,cat\n257409,cat\n257410,frog\n257411,horse\n257412,horse\n257413,cat\n257414,frog\n257415,horse\n257416,cat\n257417,horse\n257418,automobile\n257419,truck\n257420,horse\n257421,truck\n257422,bird\n257423,cat\n257424,dog\n257425,deer\n257426,deer\n257427,automobile\n257428,truck\n257429,deer\n257430,dog\n257431,bird\n257432,frog\n257433,frog\n257434,frog\n257435,truck\n257436,horse\n257437,truck\n257438,bird\n257439,frog\n257440,deer\n257441,horse\n257442,airplane\n257443,dog\n257444,truck\n257445,deer\n257446,deer\n257447,automobile\n257448,airplane\n257449,deer\n257450,ship\n257451,truck\n257452,automobile\n257453,truck\n257454,truck\n257455,ship\n257456,frog\n257457,frog\n257458,automobile\n257459,dog\n257460,dog\n257461,horse\n257462,cat\n257463,cat\n257464,frog\n257465,deer\n257466,bird\n257467,horse\n257468,cat\n257469,cat\n257470,frog\n257471,deer\n257472,deer\n257473,ship\n257474,frog\n257475,ship\n257476,dog\n257477,bird\n257478,cat\n257479,bird\n257480,cat\n257481,dog\n257482,dog\n257483,horse\n257484,dog\n257485,automobile\n257486,airplane\n257487,ship\n257488,frog\n257489,ship\n257490,cat\n257491,deer\n257492,bird\n257493,ship\n257494,automobile\n257495,deer\n257496,horse\n257497,dog\n257498,automobile\n257499,dog\n257500,automobile\n257501,frog\n257502,airplane\n257503,airplane\n257504,bird\n257505,dog\n257506,bird\n257507,truck\n257508,cat\n257509,truck\n257510,ship\n257511,dog\n257512,dog\n257513,deer\n257514,cat\n257515,truck\n257516,dog\n257517,horse\n257518,deer\n257519,horse\n257520,truck\n257521,truck\n257522,dog\n257523,deer\n257524,bird\n257525,truck\n257526,dog\n257527,horse\n257528,deer\n257529,airplane\n257530,horse\n257531,dog\n257532,frog\n257533,airplane\n257534,ship\n257535,airplane\n257536,cat\n257537,dog\n257538,frog\n257539,horse\n257540,deer\n257541,dog\n257542,airplane\n257543,truck\n257544,horse\n257545,frog\n257546,frog\n257547,frog\n257548,truck\n257549,horse\n257550,frog\n257551,bird\n257552,cat\n257553,cat\n257554,truck\n257555,bird\n257556,horse\n257557,cat\n257558,bird\n257559,cat\n257560,deer\n257561,horse\n257562,ship\n257563,bird\n257564,deer\n257565,truck\n257566,frog\n257567,bird\n257568,automobile\n257569,frog\n257570,ship\n257571,truck\n257572,dog\n257573,airplane\n257574,cat\n257575,dog\n257576,truck\n257577,horse\n257578,cat\n257579,automobile\n257580,ship\n257581,cat\n257582,deer\n257583,deer\n257584,bird\n257585,airplane\n257586,dog\n257587,ship\n257588,frog\n257589,cat\n257590,cat\n257591,automobile\n257592,bird\n257593,ship\n257594,bird\n257595,deer\n257596,deer\n257597,dog\n257598,bird\n257599,airplane\n257600,automobile\n257601,horse\n257602,horse\n257603,cat\n257604,truck\n257605,deer\n257606,frog\n257607,truck\n257608,dog\n257609,cat\n257610,frog\n257611,dog\n257612,dog\n257613,horse\n257614,bird\n257615,bird\n257616,deer\n257617,cat\n257618,bird\n257619,deer\n257620,dog\n257621,deer\n257622,truck\n257623,frog\n257624,airplane\n257625,cat\n257626,automobile\n257627,automobile\n257628,ship\n257629,ship\n257630,cat\n257631,deer\n257632,airplane\n257633,truck\n257634,truck\n257635,cat\n257636,automobile\n257637,dog\n257638,dog\n257639,horse\n257640,bird\n257641,cat\n257642,cat\n257643,automobile\n257644,horse\n257645,horse\n257646,cat\n257647,horse\n257648,bird\n257649,airplane\n257650,dog\n257651,frog\n257652,ship\n257653,ship\n257654,airplane\n257655,ship\n257656,bird\n257657,cat\n257658,frog\n257659,ship\n257660,bird\n257661,horse\n257662,cat\n257663,cat\n257664,deer\n257665,frog\n257666,dog\n257667,dog\n257668,airplane\n257669,ship\n257670,bird\n257671,dog\n257672,truck\n257673,bird\n257674,cat\n257675,ship\n257676,frog\n257677,horse\n257678,cat\n257679,dog\n257680,automobile\n257681,dog\n257682,horse\n257683,truck\n257684,dog\n257685,deer\n257686,cat\n257687,cat\n257688,frog\n257689,cat\n257690,airplane\n257691,deer\n257692,airplane\n257693,truck\n257694,deer\n257695,dog\n257696,airplane\n257697,dog\n257698,dog\n257699,airplane\n257700,cat\n257701,truck\n257702,frog\n257703,deer\n257704,airplane\n257705,dog\n257706,deer\n257707,airplane\n257708,truck\n257709,airplane\n257710,bird\n257711,deer\n257712,horse\n257713,deer\n257714,cat\n257715,ship\n257716,truck\n257717,ship\n257718,cat\n257719,truck\n257720,frog\n257721,airplane\n257722,dog\n257723,deer\n257724,dog\n257725,truck\n257726,frog\n257727,airplane\n257728,airplane\n257729,deer\n257730,deer\n257731,frog\n257732,bird\n257733,cat\n257734,deer\n257735,bird\n257736,frog\n257737,bird\n257738,ship\n257739,deer\n257740,cat\n257741,deer\n257742,dog\n257743,deer\n257744,deer\n257745,cat\n257746,deer\n257747,cat\n257748,airplane\n257749,deer\n257750,deer\n257751,automobile\n257752,bird\n257753,cat\n257754,horse\n257755,bird\n257756,frog\n257757,airplane\n257758,airplane\n257759,dog\n257760,bird\n257761,cat\n257762,automobile\n257763,airplane\n257764,cat\n257765,horse\n257766,deer\n257767,bird\n257768,truck\n257769,frog\n257770,ship\n257771,airplane\n257772,truck\n257773,ship\n257774,deer\n257775,truck\n257776,frog\n257777,horse\n257778,truck\n257779,truck\n257780,horse\n257781,deer\n257782,dog\n257783,automobile\n257784,dog\n257785,ship\n257786,dog\n257787,truck\n257788,truck\n257789,deer\n257790,ship\n257791,horse\n257792,dog\n257793,cat\n257794,automobile\n257795,dog\n257796,frog\n257797,cat\n257798,bird\n257799,cat\n257800,bird\n257801,dog\n257802,deer\n257803,dog\n257804,deer\n257805,deer\n257806,dog\n257807,automobile\n257808,airplane\n257809,truck\n257810,truck\n257811,dog\n257812,airplane\n257813,airplane\n257814,truck\n257815,cat\n257816,deer\n257817,dog\n257818,deer\n257819,airplane\n257820,cat\n257821,truck\n257822,dog\n257823,truck\n257824,dog\n257825,horse\n257826,deer\n257827,frog\n257828,truck\n257829,airplane\n257830,horse\n257831,airplane\n257832,truck\n257833,cat\n257834,ship\n257835,airplane\n257836,frog\n257837,automobile\n257838,truck\n257839,dog\n257840,truck\n257841,airplane\n257842,cat\n257843,dog\n257844,horse\n257845,horse\n257846,bird\n257847,horse\n257848,airplane\n257849,frog\n257850,ship\n257851,airplane\n257852,ship\n257853,dog\n257854,truck\n257855,dog\n257856,horse\n257857,bird\n257858,cat\n257859,cat\n257860,ship\n257861,bird\n257862,truck\n257863,dog\n257864,truck\n257865,frog\n257866,automobile\n257867,frog\n257868,automobile\n257869,dog\n257870,deer\n257871,deer\n257872,cat\n257873,dog\n257874,horse\n257875,cat\n257876,frog\n257877,cat\n257878,frog\n257879,automobile\n257880,truck\n257881,airplane\n257882,horse\n257883,automobile\n257884,dog\n257885,deer\n257886,deer\n257887,horse\n257888,deer\n257889,airplane\n257890,cat\n257891,dog\n257892,automobile\n257893,ship\n257894,airplane\n257895,bird\n257896,ship\n257897,ship\n257898,deer\n257899,frog\n257900,automobile\n257901,cat\n257902,frog\n257903,deer\n257904,bird\n257905,truck\n257906,frog\n257907,cat\n257908,automobile\n257909,truck\n257910,frog\n257911,cat\n257912,deer\n257913,cat\n257914,dog\n257915,deer\n257916,airplane\n257917,deer\n257918,deer\n257919,airplane\n257920,automobile\n257921,cat\n257922,bird\n257923,automobile\n257924,frog\n257925,frog\n257926,deer\n257927,bird\n257928,cat\n257929,automobile\n257930,airplane\n257931,ship\n257932,airplane\n257933,frog\n257934,truck\n257935,airplane\n257936,horse\n257937,airplane\n257938,airplane\n257939,airplane\n257940,frog\n257941,cat\n257942,deer\n257943,dog\n257944,frog\n257945,dog\n257946,frog\n257947,cat\n257948,horse\n257949,ship\n257950,dog\n257951,dog\n257952,horse\n257953,dog\n257954,truck\n257955,frog\n257956,truck\n257957,cat\n257958,cat\n257959,ship\n257960,frog\n257961,ship\n257962,deer\n257963,dog\n257964,cat\n257965,deer\n257966,truck\n257967,frog\n257968,airplane\n257969,truck\n257970,frog\n257971,frog\n257972,horse\n257973,bird\n257974,frog\n257975,cat\n257976,cat\n257977,ship\n257978,deer\n257979,deer\n257980,ship\n257981,dog\n257982,deer\n257983,bird\n257984,dog\n257985,cat\n257986,deer\n257987,automobile\n257988,deer\n257989,frog\n257990,airplane\n257991,ship\n257992,dog\n257993,cat\n257994,deer\n257995,truck\n257996,bird\n257997,bird\n257998,dog\n257999,airplane\n258000,truck\n258001,deer\n258002,frog\n258003,horse\n258004,airplane\n258005,frog\n258006,ship\n258007,cat\n258008,truck\n258009,cat\n258010,frog\n258011,cat\n258012,bird\n258013,bird\n258014,deer\n258015,deer\n258016,truck\n258017,bird\n258018,truck\n258019,deer\n258020,deer\n258021,cat\n258022,cat\n258023,frog\n258024,airplane\n258025,cat\n258026,cat\n258027,cat\n258028,deer\n258029,airplane\n258030,ship\n258031,truck\n258032,truck\n258033,cat\n258034,cat\n258035,horse\n258036,horse\n258037,automobile\n258038,truck\n258039,automobile\n258040,deer\n258041,ship\n258042,truck\n258043,dog\n258044,ship\n258045,automobile\n258046,bird\n258047,frog\n258048,frog\n258049,ship\n258050,horse\n258051,dog\n258052,frog\n258053,bird\n258054,automobile\n258055,ship\n258056,cat\n258057,horse\n258058,frog\n258059,truck\n258060,ship\n258061,automobile\n258062,deer\n258063,truck\n258064,dog\n258065,dog\n258066,bird\n258067,cat\n258068,frog\n258069,deer\n258070,frog\n258071,automobile\n258072,bird\n258073,horse\n258074,dog\n258075,airplane\n258076,automobile\n258077,airplane\n258078,airplane\n258079,deer\n258080,dog\n258081,airplane\n258082,bird\n258083,horse\n258084,frog\n258085,horse\n258086,frog\n258087,ship\n258088,airplane\n258089,bird\n258090,deer\n258091,airplane\n258092,airplane\n258093,cat\n258094,frog\n258095,cat\n258096,dog\n258097,automobile\n258098,frog\n258099,ship\n258100,automobile\n258101,airplane\n258102,ship\n258103,deer\n258104,truck\n258105,ship\n258106,automobile\n258107,deer\n258108,horse\n258109,cat\n258110,dog\n258111,truck\n258112,cat\n258113,cat\n258114,frog\n258115,truck\n258116,truck\n258117,deer\n258118,dog\n258119,deer\n258120,airplane\n258121,horse\n258122,deer\n258123,cat\n258124,deer\n258125,frog\n258126,deer\n258127,horse\n258128,cat\n258129,horse\n258130,horse\n258131,deer\n258132,frog\n258133,dog\n258134,horse\n258135,truck\n258136,deer\n258137,ship\n258138,deer\n258139,airplane\n258140,cat\n258141,truck\n258142,frog\n258143,horse\n258144,frog\n258145,automobile\n258146,horse\n258147,deer\n258148,truck\n258149,bird\n258150,horse\n258151,airplane\n258152,dog\n258153,horse\n258154,horse\n258155,airplane\n258156,deer\n258157,dog\n258158,frog\n258159,frog\n258160,bird\n258161,frog\n258162,cat\n258163,frog\n258164,truck\n258165,horse\n258166,dog\n258167,bird\n258168,dog\n258169,airplane\n258170,airplane\n258171,horse\n258172,airplane\n258173,automobile\n258174,bird\n258175,dog\n258176,dog\n258177,horse\n258178,deer\n258179,automobile\n258180,ship\n258181,deer\n258182,dog\n258183,frog\n258184,deer\n258185,cat\n258186,horse\n258187,frog\n258188,deer\n258189,automobile\n258190,airplane\n258191,horse\n258192,bird\n258193,bird\n258194,cat\n258195,deer\n258196,deer\n258197,ship\n258198,cat\n258199,automobile\n258200,truck\n258201,bird\n258202,dog\n258203,dog\n258204,ship\n258205,dog\n258206,horse\n258207,truck\n258208,dog\n258209,airplane\n258210,ship\n258211,ship\n258212,dog\n258213,frog\n258214,cat\n258215,cat\n258216,dog\n258217,frog\n258218,deer\n258219,frog\n258220,dog\n258221,horse\n258222,bird\n258223,truck\n258224,frog\n258225,automobile\n258226,truck\n258227,automobile\n258228,frog\n258229,deer\n258230,horse\n258231,cat\n258232,deer\n258233,frog\n258234,horse\n258235,frog\n258236,automobile\n258237,truck\n258238,horse\n258239,cat\n258240,dog\n258241,deer\n258242,cat\n258243,bird\n258244,bird\n258245,bird\n258246,bird\n258247,automobile\n258248,frog\n258249,dog\n258250,deer\n258251,airplane\n258252,frog\n258253,deer\n258254,deer\n258255,deer\n258256,cat\n258257,automobile\n258258,automobile\n258259,frog\n258260,horse\n258261,bird\n258262,frog\n258263,horse\n258264,airplane\n258265,horse\n258266,cat\n258267,truck\n258268,horse\n258269,deer\n258270,deer\n258271,frog\n258272,automobile\n258273,horse\n258274,deer\n258275,deer\n258276,dog\n258277,ship\n258278,bird\n258279,cat\n258280,truck\n258281,bird\n258282,deer\n258283,airplane\n258284,cat\n258285,deer\n258286,truck\n258287,airplane\n258288,frog\n258289,ship\n258290,automobile\n258291,deer\n258292,deer\n258293,cat\n258294,dog\n258295,frog\n258296,deer\n258297,frog\n258298,bird\n258299,truck\n258300,cat\n258301,frog\n258302,frog\n258303,frog\n258304,frog\n258305,deer\n258306,horse\n258307,ship\n258308,ship\n258309,horse\n258310,frog\n258311,airplane\n258312,bird\n258313,airplane\n258314,frog\n258315,automobile\n258316,automobile\n258317,horse\n258318,frog\n258319,airplane\n258320,truck\n258321,frog\n258322,dog\n258323,airplane\n258324,dog\n258325,ship\n258326,dog\n258327,airplane\n258328,deer\n258329,horse\n258330,frog\n258331,airplane\n258332,airplane\n258333,deer\n258334,deer\n258335,bird\n258336,bird\n258337,cat\n258338,bird\n258339,truck\n258340,airplane\n258341,deer\n258342,airplane\n258343,bird\n258344,cat\n258345,horse\n258346,dog\n258347,cat\n258348,dog\n258349,automobile\n258350,ship\n258351,dog\n258352,truck\n258353,dog\n258354,dog\n258355,bird\n258356,ship\n258357,dog\n258358,bird\n258359,truck\n258360,bird\n258361,airplane\n258362,automobile\n258363,horse\n258364,horse\n258365,bird\n258366,truck\n258367,airplane\n258368,ship\n258369,automobile\n258370,ship\n258371,frog\n258372,airplane\n258373,bird\n258374,ship\n258375,dog\n258376,deer\n258377,bird\n258378,horse\n258379,bird\n258380,cat\n258381,deer\n258382,deer\n258383,horse\n258384,horse\n258385,frog\n258386,dog\n258387,deer\n258388,cat\n258389,frog\n258390,deer\n258391,airplane\n258392,cat\n258393,ship\n258394,deer\n258395,cat\n258396,dog\n258397,truck\n258398,horse\n258399,airplane\n258400,bird\n258401,automobile\n258402,cat\n258403,automobile\n258404,deer\n258405,cat\n258406,dog\n258407,cat\n258408,bird\n258409,frog\n258410,horse\n258411,airplane\n258412,truck\n258413,airplane\n258414,cat\n258415,frog\n258416,dog\n258417,automobile\n258418,airplane\n258419,deer\n258420,airplane\n258421,automobile\n258422,truck\n258423,bird\n258424,frog\n258425,frog\n258426,ship\n258427,deer\n258428,automobile\n258429,horse\n258430,cat\n258431,bird\n258432,bird\n258433,dog\n258434,cat\n258435,automobile\n258436,deer\n258437,bird\n258438,deer\n258439,truck\n258440,bird\n258441,frog\n258442,ship\n258443,cat\n258444,automobile\n258445,ship\n258446,frog\n258447,dog\n258448,horse\n258449,deer\n258450,frog\n258451,bird\n258452,dog\n258453,dog\n258454,airplane\n258455,truck\n258456,deer\n258457,frog\n258458,horse\n258459,cat\n258460,dog\n258461,deer\n258462,truck\n258463,frog\n258464,ship\n258465,dog\n258466,automobile\n258467,cat\n258468,bird\n258469,truck\n258470,bird\n258471,dog\n258472,bird\n258473,bird\n258474,frog\n258475,ship\n258476,horse\n258477,frog\n258478,truck\n258479,frog\n258480,dog\n258481,airplane\n258482,deer\n258483,deer\n258484,dog\n258485,horse\n258486,deer\n258487,horse\n258488,truck\n258489,ship\n258490,airplane\n258491,frog\n258492,dog\n258493,cat\n258494,cat\n258495,cat\n258496,automobile\n258497,horse\n258498,truck\n258499,dog\n258500,cat\n258501,deer\n258502,airplane\n258503,deer\n258504,deer\n258505,cat\n258506,deer\n258507,dog\n258508,frog\n258509,deer\n258510,frog\n258511,airplane\n258512,frog\n258513,dog\n258514,deer\n258515,dog\n258516,bird\n258517,deer\n258518,dog\n258519,ship\n258520,deer\n258521,automobile\n258522,truck\n258523,truck\n258524,truck\n258525,ship\n258526,ship\n258527,frog\n258528,airplane\n258529,dog\n258530,deer\n258531,cat\n258532,deer\n258533,bird\n258534,truck\n258535,ship\n258536,truck\n258537,horse\n258538,dog\n258539,horse\n258540,dog\n258541,automobile\n258542,frog\n258543,deer\n258544,airplane\n258545,ship\n258546,deer\n258547,airplane\n258548,ship\n258549,automobile\n258550,deer\n258551,frog\n258552,frog\n258553,dog\n258554,ship\n258555,cat\n258556,airplane\n258557,cat\n258558,airplane\n258559,frog\n258560,dog\n258561,automobile\n258562,deer\n258563,deer\n258564,frog\n258565,deer\n258566,dog\n258567,horse\n258568,frog\n258569,airplane\n258570,frog\n258571,ship\n258572,bird\n258573,cat\n258574,airplane\n258575,cat\n258576,airplane\n258577,deer\n258578,truck\n258579,airplane\n258580,truck\n258581,deer\n258582,horse\n258583,frog\n258584,horse\n258585,frog\n258586,deer\n258587,dog\n258588,automobile\n258589,frog\n258590,cat\n258591,cat\n258592,frog\n258593,frog\n258594,ship\n258595,frog\n258596,deer\n258597,automobile\n258598,frog\n258599,horse\n258600,truck\n258601,dog\n258602,airplane\n258603,automobile\n258604,automobile\n258605,dog\n258606,horse\n258607,airplane\n258608,dog\n258609,cat\n258610,automobile\n258611,cat\n258612,frog\n258613,frog\n258614,horse\n258615,deer\n258616,frog\n258617,truck\n258618,ship\n258619,deer\n258620,airplane\n258621,ship\n258622,deer\n258623,horse\n258624,cat\n258625,deer\n258626,deer\n258627,dog\n258628,cat\n258629,truck\n258630,dog\n258631,frog\n258632,cat\n258633,deer\n258634,horse\n258635,deer\n258636,deer\n258637,cat\n258638,truck\n258639,horse\n258640,dog\n258641,bird\n258642,airplane\n258643,cat\n258644,dog\n258645,airplane\n258646,ship\n258647,airplane\n258648,truck\n258649,airplane\n258650,cat\n258651,horse\n258652,horse\n258653,deer\n258654,cat\n258655,horse\n258656,airplane\n258657,bird\n258658,dog\n258659,deer\n258660,dog\n258661,truck\n258662,horse\n258663,automobile\n258664,cat\n258665,truck\n258666,cat\n258667,horse\n258668,deer\n258669,airplane\n258670,bird\n258671,airplane\n258672,deer\n258673,bird\n258674,horse\n258675,deer\n258676,horse\n258677,horse\n258678,truck\n258679,ship\n258680,ship\n258681,automobile\n258682,airplane\n258683,automobile\n258684,truck\n258685,horse\n258686,horse\n258687,automobile\n258688,automobile\n258689,deer\n258690,deer\n258691,cat\n258692,frog\n258693,frog\n258694,automobile\n258695,deer\n258696,deer\n258697,ship\n258698,ship\n258699,truck\n258700,bird\n258701,frog\n258702,ship\n258703,truck\n258704,cat\n258705,frog\n258706,ship\n258707,deer\n258708,dog\n258709,ship\n258710,horse\n258711,truck\n258712,airplane\n258713,cat\n258714,frog\n258715,deer\n258716,deer\n258717,deer\n258718,airplane\n258719,horse\n258720,truck\n258721,truck\n258722,truck\n258723,deer\n258724,automobile\n258725,airplane\n258726,deer\n258727,bird\n258728,cat\n258729,cat\n258730,truck\n258731,frog\n258732,deer\n258733,cat\n258734,deer\n258735,bird\n258736,cat\n258737,bird\n258738,frog\n258739,deer\n258740,dog\n258741,bird\n258742,automobile\n258743,deer\n258744,frog\n258745,deer\n258746,truck\n258747,automobile\n258748,dog\n258749,bird\n258750,automobile\n258751,deer\n258752,ship\n258753,airplane\n258754,deer\n258755,airplane\n258756,bird\n258757,ship\n258758,bird\n258759,dog\n258760,automobile\n258761,truck\n258762,dog\n258763,ship\n258764,deer\n258765,truck\n258766,truck\n258767,truck\n258768,frog\n258769,cat\n258770,dog\n258771,airplane\n258772,airplane\n258773,bird\n258774,truck\n258775,deer\n258776,truck\n258777,ship\n258778,truck\n258779,dog\n258780,deer\n258781,horse\n258782,dog\n258783,truck\n258784,cat\n258785,frog\n258786,deer\n258787,dog\n258788,airplane\n258789,frog\n258790,ship\n258791,airplane\n258792,horse\n258793,cat\n258794,horse\n258795,airplane\n258796,automobile\n258797,horse\n258798,frog\n258799,bird\n258800,frog\n258801,deer\n258802,truck\n258803,deer\n258804,horse\n258805,horse\n258806,truck\n258807,deer\n258808,frog\n258809,truck\n258810,cat\n258811,cat\n258812,automobile\n258813,truck\n258814,airplane\n258815,cat\n258816,horse\n258817,airplane\n258818,truck\n258819,horse\n258820,horse\n258821,airplane\n258822,deer\n258823,deer\n258824,ship\n258825,bird\n258826,horse\n258827,dog\n258828,frog\n258829,horse\n258830,deer\n258831,airplane\n258832,cat\n258833,truck\n258834,frog\n258835,truck\n258836,deer\n258837,dog\n258838,dog\n258839,frog\n258840,automobile\n258841,airplane\n258842,airplane\n258843,automobile\n258844,horse\n258845,horse\n258846,cat\n258847,ship\n258848,frog\n258849,airplane\n258850,cat\n258851,horse\n258852,frog\n258853,frog\n258854,truck\n258855,frog\n258856,truck\n258857,dog\n258858,airplane\n258859,dog\n258860,deer\n258861,dog\n258862,bird\n258863,cat\n258864,frog\n258865,airplane\n258866,cat\n258867,deer\n258868,dog\n258869,ship\n258870,airplane\n258871,cat\n258872,automobile\n258873,horse\n258874,ship\n258875,bird\n258876,cat\n258877,automobile\n258878,automobile\n258879,deer\n258880,automobile\n258881,truck\n258882,bird\n258883,deer\n258884,bird\n258885,airplane\n258886,airplane\n258887,cat\n258888,horse\n258889,ship\n258890,airplane\n258891,truck\n258892,deer\n258893,ship\n258894,truck\n258895,cat\n258896,cat\n258897,airplane\n258898,truck\n258899,airplane\n258900,cat\n258901,bird\n258902,airplane\n258903,dog\n258904,bird\n258905,frog\n258906,deer\n258907,dog\n258908,bird\n258909,deer\n258910,bird\n258911,truck\n258912,horse\n258913,deer\n258914,horse\n258915,deer\n258916,ship\n258917,dog\n258918,frog\n258919,horse\n258920,truck\n258921,automobile\n258922,cat\n258923,horse\n258924,horse\n258925,horse\n258926,bird\n258927,deer\n258928,automobile\n258929,bird\n258930,deer\n258931,truck\n258932,deer\n258933,deer\n258934,automobile\n258935,cat\n258936,cat\n258937,automobile\n258938,deer\n258939,dog\n258940,bird\n258941,horse\n258942,horse\n258943,cat\n258944,cat\n258945,truck\n258946,dog\n258947,deer\n258948,automobile\n258949,cat\n258950,cat\n258951,ship\n258952,dog\n258953,ship\n258954,horse\n258955,cat\n258956,deer\n258957,frog\n258958,frog\n258959,cat\n258960,frog\n258961,cat\n258962,cat\n258963,truck\n258964,bird\n258965,bird\n258966,airplane\n258967,truck\n258968,deer\n258969,airplane\n258970,bird\n258971,cat\n258972,bird\n258973,cat\n258974,cat\n258975,deer\n258976,deer\n258977,frog\n258978,frog\n258979,deer\n258980,truck\n258981,automobile\n258982,deer\n258983,airplane\n258984,horse\n258985,deer\n258986,ship\n258987,deer\n258988,dog\n258989,frog\n258990,dog\n258991,deer\n258992,bird\n258993,truck\n258994,bird\n258995,cat\n258996,airplane\n258997,dog\n258998,bird\n258999,frog\n259000,automobile\n259001,truck\n259002,ship\n259003,dog\n259004,ship\n259005,deer\n259006,truck\n259007,frog\n259008,airplane\n259009,bird\n259010,dog\n259011,bird\n259012,horse\n259013,horse\n259014,truck\n259015,bird\n259016,deer\n259017,deer\n259018,horse\n259019,frog\n259020,bird\n259021,frog\n259022,frog\n259023,bird\n259024,deer\n259025,truck\n259026,deer\n259027,bird\n259028,truck\n259029,automobile\n259030,frog\n259031,deer\n259032,cat\n259033,truck\n259034,frog\n259035,dog\n259036,dog\n259037,horse\n259038,ship\n259039,ship\n259040,dog\n259041,frog\n259042,automobile\n259043,deer\n259044,frog\n259045,dog\n259046,cat\n259047,frog\n259048,automobile\n259049,cat\n259050,deer\n259051,automobile\n259052,deer\n259053,cat\n259054,bird\n259055,deer\n259056,cat\n259057,truck\n259058,deer\n259059,dog\n259060,frog\n259061,truck\n259062,deer\n259063,cat\n259064,cat\n259065,cat\n259066,bird\n259067,deer\n259068,dog\n259069,cat\n259070,truck\n259071,deer\n259072,frog\n259073,dog\n259074,automobile\n259075,deer\n259076,cat\n259077,truck\n259078,cat\n259079,automobile\n259080,cat\n259081,bird\n259082,ship\n259083,deer\n259084,bird\n259085,bird\n259086,truck\n259087,ship\n259088,airplane\n259089,horse\n259090,automobile\n259091,dog\n259092,frog\n259093,frog\n259094,deer\n259095,airplane\n259096,deer\n259097,deer\n259098,horse\n259099,bird\n259100,cat\n259101,deer\n259102,automobile\n259103,dog\n259104,airplane\n259105,ship\n259106,bird\n259107,automobile\n259108,cat\n259109,automobile\n259110,cat\n259111,airplane\n259112,cat\n259113,airplane\n259114,airplane\n259115,cat\n259116,bird\n259117,cat\n259118,horse\n259119,frog\n259120,airplane\n259121,frog\n259122,bird\n259123,horse\n259124,bird\n259125,frog\n259126,deer\n259127,dog\n259128,ship\n259129,frog\n259130,cat\n259131,deer\n259132,cat\n259133,automobile\n259134,truck\n259135,cat\n259136,horse\n259137,cat\n259138,cat\n259139,airplane\n259140,frog\n259141,bird\n259142,ship\n259143,dog\n259144,automobile\n259145,automobile\n259146,horse\n259147,deer\n259148,ship\n259149,truck\n259150,truck\n259151,dog\n259152,automobile\n259153,airplane\n259154,frog\n259155,bird\n259156,frog\n259157,dog\n259158,cat\n259159,bird\n259160,automobile\n259161,deer\n259162,airplane\n259163,truck\n259164,truck\n259165,horse\n259166,deer\n259167,frog\n259168,frog\n259169,frog\n259170,airplane\n259171,airplane\n259172,cat\n259173,airplane\n259174,horse\n259175,frog\n259176,deer\n259177,truck\n259178,dog\n259179,dog\n259180,automobile\n259181,dog\n259182,truck\n259183,dog\n259184,automobile\n259185,horse\n259186,dog\n259187,ship\n259188,cat\n259189,airplane\n259190,dog\n259191,ship\n259192,bird\n259193,cat\n259194,automobile\n259195,bird\n259196,dog\n259197,cat\n259198,horse\n259199,truck\n259200,deer\n259201,bird\n259202,dog\n259203,deer\n259204,deer\n259205,truck\n259206,airplane\n259207,truck\n259208,automobile\n259209,cat\n259210,bird\n259211,frog\n259212,deer\n259213,airplane\n259214,frog\n259215,cat\n259216,airplane\n259217,deer\n259218,frog\n259219,horse\n259220,dog\n259221,dog\n259222,deer\n259223,frog\n259224,truck\n259225,ship\n259226,horse\n259227,bird\n259228,deer\n259229,deer\n259230,bird\n259231,frog\n259232,dog\n259233,dog\n259234,dog\n259235,horse\n259236,ship\n259237,deer\n259238,deer\n259239,frog\n259240,frog\n259241,horse\n259242,cat\n259243,automobile\n259244,cat\n259245,cat\n259246,airplane\n259247,dog\n259248,deer\n259249,dog\n259250,truck\n259251,automobile\n259252,ship\n259253,cat\n259254,deer\n259255,automobile\n259256,airplane\n259257,truck\n259258,truck\n259259,deer\n259260,deer\n259261,automobile\n259262,bird\n259263,deer\n259264,cat\n259265,cat\n259266,bird\n259267,bird\n259268,dog\n259269,frog\n259270,frog\n259271,airplane\n259272,airplane\n259273,deer\n259274,cat\n259275,deer\n259276,dog\n259277,deer\n259278,automobile\n259279,cat\n259280,ship\n259281,frog\n259282,bird\n259283,cat\n259284,ship\n259285,truck\n259286,truck\n259287,bird\n259288,truck\n259289,deer\n259290,bird\n259291,automobile\n259292,horse\n259293,horse\n259294,cat\n259295,automobile\n259296,ship\n259297,horse\n259298,airplane\n259299,horse\n259300,cat\n259301,bird\n259302,frog\n259303,dog\n259304,bird\n259305,frog\n259306,automobile\n259307,truck\n259308,airplane\n259309,frog\n259310,ship\n259311,frog\n259312,airplane\n259313,dog\n259314,bird\n259315,deer\n259316,horse\n259317,truck\n259318,automobile\n259319,horse\n259320,deer\n259321,horse\n259322,deer\n259323,cat\n259324,dog\n259325,frog\n259326,frog\n259327,ship\n259328,cat\n259329,truck\n259330,dog\n259331,truck\n259332,truck\n259333,horse\n259334,horse\n259335,automobile\n259336,dog\n259337,truck\n259338,cat\n259339,dog\n259340,dog\n259341,bird\n259342,bird\n259343,truck\n259344,dog\n259345,cat\n259346,dog\n259347,deer\n259348,dog\n259349,cat\n259350,frog\n259351,horse\n259352,ship\n259353,deer\n259354,frog\n259355,horse\n259356,airplane\n259357,horse\n259358,frog\n259359,truck\n259360,cat\n259361,deer\n259362,truck\n259363,deer\n259364,cat\n259365,dog\n259366,truck\n259367,frog\n259368,deer\n259369,airplane\n259370,automobile\n259371,ship\n259372,dog\n259373,automobile\n259374,cat\n259375,truck\n259376,bird\n259377,horse\n259378,truck\n259379,deer\n259380,truck\n259381,cat\n259382,truck\n259383,frog\n259384,bird\n259385,ship\n259386,deer\n259387,dog\n259388,ship\n259389,frog\n259390,frog\n259391,deer\n259392,automobile\n259393,dog\n259394,airplane\n259395,automobile\n259396,ship\n259397,horse\n259398,truck\n259399,airplane\n259400,automobile\n259401,cat\n259402,cat\n259403,deer\n259404,bird\n259405,deer\n259406,truck\n259407,truck\n259408,dog\n259409,ship\n259410,frog\n259411,dog\n259412,frog\n259413,bird\n259414,horse\n259415,automobile\n259416,horse\n259417,frog\n259418,airplane\n259419,automobile\n259420,ship\n259421,deer\n259422,bird\n259423,airplane\n259424,airplane\n259425,cat\n259426,horse\n259427,cat\n259428,dog\n259429,truck\n259430,dog\n259431,truck\n259432,cat\n259433,automobile\n259434,cat\n259435,automobile\n259436,horse\n259437,automobile\n259438,bird\n259439,bird\n259440,bird\n259441,dog\n259442,airplane\n259443,deer\n259444,truck\n259445,frog\n259446,bird\n259447,automobile\n259448,truck\n259449,dog\n259450,airplane\n259451,horse\n259452,frog\n259453,cat\n259454,cat\n259455,deer\n259456,airplane\n259457,frog\n259458,airplane\n259459,ship\n259460,horse\n259461,bird\n259462,frog\n259463,cat\n259464,automobile\n259465,dog\n259466,deer\n259467,truck\n259468,frog\n259469,automobile\n259470,frog\n259471,truck\n259472,airplane\n259473,ship\n259474,cat\n259475,horse\n259476,deer\n259477,truck\n259478,truck\n259479,airplane\n259480,frog\n259481,automobile\n259482,automobile\n259483,frog\n259484,deer\n259485,automobile\n259486,horse\n259487,truck\n259488,frog\n259489,airplane\n259490,deer\n259491,cat\n259492,automobile\n259493,bird\n259494,frog\n259495,horse\n259496,cat\n259497,horse\n259498,deer\n259499,ship\n259500,cat\n259501,deer\n259502,bird\n259503,automobile\n259504,airplane\n259505,truck\n259506,airplane\n259507,truck\n259508,deer\n259509,dog\n259510,dog\n259511,deer\n259512,dog\n259513,bird\n259514,horse\n259515,cat\n259516,deer\n259517,cat\n259518,horse\n259519,bird\n259520,frog\n259521,truck\n259522,airplane\n259523,bird\n259524,ship\n259525,frog\n259526,frog\n259527,truck\n259528,frog\n259529,bird\n259530,cat\n259531,horse\n259532,bird\n259533,truck\n259534,frog\n259535,truck\n259536,airplane\n259537,deer\n259538,airplane\n259539,airplane\n259540,airplane\n259541,dog\n259542,bird\n259543,cat\n259544,frog\n259545,ship\n259546,horse\n259547,cat\n259548,frog\n259549,deer\n259550,cat\n259551,horse\n259552,truck\n259553,horse\n259554,airplane\n259555,bird\n259556,frog\n259557,cat\n259558,bird\n259559,airplane\n259560,ship\n259561,cat\n259562,deer\n259563,automobile\n259564,frog\n259565,cat\n259566,dog\n259567,truck\n259568,airplane\n259569,deer\n259570,deer\n259571,horse\n259572,horse\n259573,cat\n259574,bird\n259575,deer\n259576,truck\n259577,airplane\n259578,horse\n259579,truck\n259580,bird\n259581,deer\n259582,frog\n259583,dog\n259584,bird\n259585,horse\n259586,deer\n259587,deer\n259588,dog\n259589,frog\n259590,deer\n259591,frog\n259592,deer\n259593,deer\n259594,horse\n259595,horse\n259596,horse\n259597,automobile\n259598,frog\n259599,airplane\n259600,dog\n259601,frog\n259602,dog\n259603,cat\n259604,bird\n259605,automobile\n259606,dog\n259607,cat\n259608,truck\n259609,ship\n259610,deer\n259611,frog\n259612,horse\n259613,airplane\n259614,cat\n259615,horse\n259616,automobile\n259617,frog\n259618,deer\n259619,ship\n259620,airplane\n259621,airplane\n259622,truck\n259623,deer\n259624,horse\n259625,deer\n259626,dog\n259627,deer\n259628,ship\n259629,ship\n259630,deer\n259631,deer\n259632,dog\n259633,dog\n259634,airplane\n259635,deer\n259636,airplane\n259637,automobile\n259638,truck\n259639,cat\n259640,cat\n259641,truck\n259642,truck\n259643,bird\n259644,horse\n259645,ship\n259646,frog\n259647,deer\n259648,airplane\n259649,deer\n259650,frog\n259651,frog\n259652,deer\n259653,bird\n259654,dog\n259655,dog\n259656,cat\n259657,automobile\n259658,automobile\n259659,deer\n259660,horse\n259661,cat\n259662,ship\n259663,frog\n259664,dog\n259665,cat\n259666,automobile\n259667,bird\n259668,airplane\n259669,airplane\n259670,automobile\n259671,cat\n259672,cat\n259673,bird\n259674,truck\n259675,truck\n259676,truck\n259677,ship\n259678,airplane\n259679,automobile\n259680,deer\n259681,cat\n259682,truck\n259683,airplane\n259684,bird\n259685,ship\n259686,horse\n259687,bird\n259688,horse\n259689,cat\n259690,ship\n259691,truck\n259692,bird\n259693,airplane\n259694,ship\n259695,frog\n259696,bird\n259697,automobile\n259698,deer\n259699,airplane\n259700,cat\n259701,bird\n259702,bird\n259703,deer\n259704,truck\n259705,horse\n259706,bird\n259707,frog\n259708,frog\n259709,truck\n259710,cat\n259711,truck\n259712,cat\n259713,frog\n259714,cat\n259715,bird\n259716,airplane\n259717,deer\n259718,horse\n259719,dog\n259720,horse\n259721,deer\n259722,deer\n259723,deer\n259724,horse\n259725,horse\n259726,dog\n259727,frog\n259728,cat\n259729,automobile\n259730,automobile\n259731,deer\n259732,dog\n259733,frog\n259734,truck\n259735,ship\n259736,automobile\n259737,airplane\n259738,deer\n259739,automobile\n259740,bird\n259741,horse\n259742,ship\n259743,horse\n259744,airplane\n259745,bird\n259746,dog\n259747,dog\n259748,truck\n259749,frog\n259750,deer\n259751,dog\n259752,truck\n259753,bird\n259754,airplane\n259755,deer\n259756,bird\n259757,cat\n259758,horse\n259759,horse\n259760,airplane\n259761,airplane\n259762,cat\n259763,ship\n259764,frog\n259765,cat\n259766,truck\n259767,frog\n259768,airplane\n259769,deer\n259770,automobile\n259771,truck\n259772,deer\n259773,truck\n259774,dog\n259775,dog\n259776,deer\n259777,truck\n259778,truck\n259779,bird\n259780,frog\n259781,horse\n259782,ship\n259783,horse\n259784,deer\n259785,automobile\n259786,truck\n259787,cat\n259788,horse\n259789,horse\n259790,automobile\n259791,airplane\n259792,automobile\n259793,bird\n259794,airplane\n259795,airplane\n259796,deer\n259797,truck\n259798,frog\n259799,deer\n259800,frog\n259801,frog\n259802,deer\n259803,truck\n259804,airplane\n259805,frog\n259806,automobile\n259807,frog\n259808,ship\n259809,dog\n259810,horse\n259811,frog\n259812,frog\n259813,cat\n259814,automobile\n259815,ship\n259816,automobile\n259817,frog\n259818,bird\n259819,horse\n259820,ship\n259821,truck\n259822,frog\n259823,cat\n259824,cat\n259825,cat\n259826,horse\n259827,ship\n259828,cat\n259829,airplane\n259830,deer\n259831,frog\n259832,automobile\n259833,cat\n259834,truck\n259835,deer\n259836,dog\n259837,cat\n259838,deer\n259839,automobile\n259840,airplane\n259841,frog\n259842,cat\n259843,cat\n259844,deer\n259845,automobile\n259846,airplane\n259847,dog\n259848,frog\n259849,cat\n259850,cat\n259851,cat\n259852,frog\n259853,ship\n259854,bird\n259855,ship\n259856,frog\n259857,deer\n259858,horse\n259859,bird\n259860,frog\n259861,deer\n259862,deer\n259863,deer\n259864,cat\n259865,ship\n259866,automobile\n259867,horse\n259868,dog\n259869,automobile\n259870,cat\n259871,dog\n259872,dog\n259873,deer\n259874,cat\n259875,ship\n259876,ship\n259877,bird\n259878,horse\n259879,airplane\n259880,bird\n259881,deer\n259882,truck\n259883,horse\n259884,deer\n259885,deer\n259886,horse\n259887,ship\n259888,automobile\n259889,cat\n259890,deer\n259891,deer\n259892,airplane\n259893,deer\n259894,frog\n259895,automobile\n259896,truck\n259897,automobile\n259898,frog\n259899,bird\n259900,ship\n259901,airplane\n259902,frog\n259903,bird\n259904,cat\n259905,automobile\n259906,ship\n259907,airplane\n259908,automobile\n259909,automobile\n259910,automobile\n259911,deer\n259912,cat\n259913,deer\n259914,ship\n259915,truck\n259916,automobile\n259917,automobile\n259918,deer\n259919,dog\n259920,horse\n259921,horse\n259922,deer\n259923,frog\n259924,deer\n259925,frog\n259926,frog\n259927,truck\n259928,automobile\n259929,deer\n259930,frog\n259931,automobile\n259932,frog\n259933,horse\n259934,bird\n259935,cat\n259936,airplane\n259937,dog\n259938,horse\n259939,cat\n259940,cat\n259941,airplane\n259942,dog\n259943,ship\n259944,horse\n259945,cat\n259946,bird\n259947,deer\n259948,ship\n259949,truck\n259950,deer\n259951,airplane\n259952,frog\n259953,truck\n259954,airplane\n259955,cat\n259956,ship\n259957,airplane\n259958,truck\n259959,automobile\n259960,ship\n259961,deer\n259962,truck\n259963,automobile\n259964,bird\n259965,bird\n259966,horse\n259967,truck\n259968,cat\n259969,airplane\n259970,automobile\n259971,airplane\n259972,cat\n259973,truck\n259974,horse\n259975,dog\n259976,automobile\n259977,cat\n259978,airplane\n259979,dog\n259980,dog\n259981,cat\n259982,cat\n259983,airplane\n259984,dog\n259985,airplane\n259986,dog\n259987,horse\n259988,cat\n259989,cat\n259990,cat\n259991,cat\n259992,dog\n259993,automobile\n259994,dog\n259995,dog\n259996,truck\n259997,dog\n259998,airplane\n259999,cat\n260000,frog\n260001,horse\n260002,truck\n260003,frog\n260004,bird\n260005,deer\n260006,dog\n260007,bird\n260008,airplane\n260009,truck\n260010,horse\n260011,cat\n260012,deer\n260013,truck\n260014,cat\n260015,airplane\n260016,dog\n260017,frog\n260018,deer\n260019,horse\n260020,ship\n260021,truck\n260022,truck\n260023,frog\n260024,truck\n260025,cat\n260026,airplane\n260027,airplane\n260028,ship\n260029,cat\n260030,cat\n260031,deer\n260032,bird\n260033,automobile\n260034,dog\n260035,airplane\n260036,truck\n260037,ship\n260038,truck\n260039,airplane\n260040,ship\n260041,truck\n260042,airplane\n260043,frog\n260044,dog\n260045,bird\n260046,ship\n260047,cat\n260048,frog\n260049,airplane\n260050,bird\n260051,horse\n260052,dog\n260053,airplane\n260054,frog\n260055,frog\n260056,frog\n260057,cat\n260058,deer\n260059,bird\n260060,automobile\n260061,bird\n260062,cat\n260063,airplane\n260064,automobile\n260065,deer\n260066,frog\n260067,horse\n260068,automobile\n260069,cat\n260070,ship\n260071,frog\n260072,cat\n260073,bird\n260074,frog\n260075,cat\n260076,airplane\n260077,frog\n260078,truck\n260079,truck\n260080,cat\n260081,ship\n260082,truck\n260083,ship\n260084,horse\n260085,horse\n260086,ship\n260087,ship\n260088,horse\n260089,frog\n260090,truck\n260091,truck\n260092,deer\n260093,deer\n260094,deer\n260095,truck\n260096,dog\n260097,dog\n260098,truck\n260099,frog\n260100,frog\n260101,airplane\n260102,cat\n260103,frog\n260104,cat\n260105,cat\n260106,cat\n260107,deer\n260108,ship\n260109,truck\n260110,cat\n260111,airplane\n260112,truck\n260113,dog\n260114,horse\n260115,automobile\n260116,dog\n260117,airplane\n260118,horse\n260119,frog\n260120,frog\n260121,airplane\n260122,airplane\n260123,bird\n260124,cat\n260125,cat\n260126,cat\n260127,automobile\n260128,airplane\n260129,deer\n260130,dog\n260131,horse\n260132,dog\n260133,cat\n260134,bird\n260135,cat\n260136,bird\n260137,cat\n260138,horse\n260139,airplane\n260140,dog\n260141,frog\n260142,deer\n260143,dog\n260144,ship\n260145,horse\n260146,truck\n260147,dog\n260148,bird\n260149,airplane\n260150,ship\n260151,deer\n260152,dog\n260153,deer\n260154,dog\n260155,bird\n260156,bird\n260157,automobile\n260158,frog\n260159,frog\n260160,ship\n260161,dog\n260162,cat\n260163,dog\n260164,cat\n260165,cat\n260166,deer\n260167,frog\n260168,dog\n260169,dog\n260170,automobile\n260171,truck\n260172,airplane\n260173,deer\n260174,deer\n260175,automobile\n260176,horse\n260177,truck\n260178,deer\n260179,horse\n260180,horse\n260181,truck\n260182,cat\n260183,cat\n260184,dog\n260185,ship\n260186,truck\n260187,cat\n260188,ship\n260189,dog\n260190,airplane\n260191,bird\n260192,truck\n260193,frog\n260194,deer\n260195,frog\n260196,truck\n260197,ship\n260198,cat\n260199,truck\n260200,truck\n260201,cat\n260202,airplane\n260203,automobile\n260204,cat\n260205,airplane\n260206,frog\n260207,cat\n260208,deer\n260209,frog\n260210,deer\n260211,ship\n260212,automobile\n260213,frog\n260214,dog\n260215,horse\n260216,frog\n260217,truck\n260218,truck\n260219,dog\n260220,dog\n260221,horse\n260222,ship\n260223,truck\n260224,ship\n260225,deer\n260226,bird\n260227,dog\n260228,truck\n260229,dog\n260230,deer\n260231,horse\n260232,cat\n260233,dog\n260234,frog\n260235,cat\n260236,cat\n260237,frog\n260238,truck\n260239,truck\n260240,airplane\n260241,ship\n260242,airplane\n260243,truck\n260244,automobile\n260245,horse\n260246,cat\n260247,truck\n260248,deer\n260249,automobile\n260250,cat\n260251,deer\n260252,dog\n260253,bird\n260254,horse\n260255,ship\n260256,deer\n260257,frog\n260258,cat\n260259,bird\n260260,frog\n260261,deer\n260262,airplane\n260263,automobile\n260264,truck\n260265,deer\n260266,horse\n260267,truck\n260268,bird\n260269,airplane\n260270,frog\n260271,deer\n260272,frog\n260273,dog\n260274,dog\n260275,ship\n260276,airplane\n260277,bird\n260278,ship\n260279,truck\n260280,truck\n260281,truck\n260282,ship\n260283,deer\n260284,truck\n260285,cat\n260286,frog\n260287,horse\n260288,automobile\n260289,frog\n260290,bird\n260291,truck\n260292,ship\n260293,deer\n260294,truck\n260295,dog\n260296,cat\n260297,frog\n260298,deer\n260299,ship\n260300,truck\n260301,frog\n260302,truck\n260303,ship\n260304,frog\n260305,horse\n260306,dog\n260307,airplane\n260308,bird\n260309,ship\n260310,cat\n260311,frog\n260312,cat\n260313,cat\n260314,cat\n260315,cat\n260316,airplane\n260317,automobile\n260318,bird\n260319,cat\n260320,dog\n260321,bird\n260322,airplane\n260323,horse\n260324,truck\n260325,bird\n260326,bird\n260327,ship\n260328,dog\n260329,truck\n260330,deer\n260331,cat\n260332,cat\n260333,airplane\n260334,automobile\n260335,cat\n260336,cat\n260337,deer\n260338,cat\n260339,automobile\n260340,airplane\n260341,truck\n260342,airplane\n260343,ship\n260344,frog\n260345,truck\n260346,truck\n260347,dog\n260348,frog\n260349,airplane\n260350,truck\n260351,bird\n260352,airplane\n260353,cat\n260354,horse\n260355,automobile\n260356,frog\n260357,automobile\n260358,dog\n260359,truck\n260360,horse\n260361,horse\n260362,truck\n260363,bird\n260364,deer\n260365,bird\n260366,horse\n260367,truck\n260368,airplane\n260369,horse\n260370,deer\n260371,truck\n260372,airplane\n260373,truck\n260374,dog\n260375,truck\n260376,frog\n260377,horse\n260378,horse\n260379,horse\n260380,bird\n260381,bird\n260382,cat\n260383,cat\n260384,horse\n260385,deer\n260386,dog\n260387,deer\n260388,automobile\n260389,cat\n260390,bird\n260391,truck\n260392,frog\n260393,dog\n260394,bird\n260395,dog\n260396,cat\n260397,truck\n260398,ship\n260399,dog\n260400,bird\n260401,dog\n260402,ship\n260403,horse\n260404,bird\n260405,ship\n260406,frog\n260407,horse\n260408,dog\n260409,airplane\n260410,bird\n260411,cat\n260412,frog\n260413,airplane\n260414,truck\n260415,ship\n260416,dog\n260417,dog\n260418,horse\n260419,horse\n260420,truck\n260421,horse\n260422,deer\n260423,ship\n260424,dog\n260425,horse\n260426,ship\n260427,truck\n260428,cat\n260429,horse\n260430,bird\n260431,automobile\n260432,deer\n260433,bird\n260434,truck\n260435,truck\n260436,automobile\n260437,deer\n260438,deer\n260439,airplane\n260440,horse\n260441,frog\n260442,cat\n260443,ship\n260444,dog\n260445,cat\n260446,horse\n260447,deer\n260448,horse\n260449,bird\n260450,automobile\n260451,deer\n260452,airplane\n260453,cat\n260454,bird\n260455,horse\n260456,airplane\n260457,cat\n260458,airplane\n260459,deer\n260460,horse\n260461,deer\n260462,deer\n260463,deer\n260464,dog\n260465,deer\n260466,automobile\n260467,dog\n260468,deer\n260469,ship\n260470,deer\n260471,ship\n260472,truck\n260473,ship\n260474,airplane\n260475,truck\n260476,bird\n260477,horse\n260478,dog\n260479,cat\n260480,dog\n260481,horse\n260482,horse\n260483,horse\n260484,automobile\n260485,airplane\n260486,automobile\n260487,ship\n260488,airplane\n260489,truck\n260490,airplane\n260491,deer\n260492,bird\n260493,truck\n260494,automobile\n260495,airplane\n260496,frog\n260497,truck\n260498,frog\n260499,bird\n260500,automobile\n260501,horse\n260502,frog\n260503,cat\n260504,automobile\n260505,automobile\n260506,frog\n260507,deer\n260508,bird\n260509,dog\n260510,dog\n260511,bird\n260512,deer\n260513,bird\n260514,ship\n260515,dog\n260516,dog\n260517,ship\n260518,horse\n260519,deer\n260520,frog\n260521,frog\n260522,bird\n260523,ship\n260524,deer\n260525,truck\n260526,cat\n260527,frog\n260528,automobile\n260529,bird\n260530,cat\n260531,horse\n260532,deer\n260533,dog\n260534,frog\n260535,frog\n260536,cat\n260537,truck\n260538,horse\n260539,ship\n260540,bird\n260541,truck\n260542,bird\n260543,automobile\n260544,deer\n260545,frog\n260546,horse\n260547,dog\n260548,horse\n260549,horse\n260550,dog\n260551,frog\n260552,horse\n260553,dog\n260554,cat\n260555,cat\n260556,deer\n260557,frog\n260558,truck\n260559,deer\n260560,airplane\n260561,dog\n260562,ship\n260563,dog\n260564,automobile\n260565,bird\n260566,cat\n260567,automobile\n260568,horse\n260569,horse\n260570,cat\n260571,frog\n260572,frog\n260573,airplane\n260574,deer\n260575,horse\n260576,horse\n260577,automobile\n260578,cat\n260579,ship\n260580,horse\n260581,deer\n260582,frog\n260583,cat\n260584,horse\n260585,deer\n260586,cat\n260587,ship\n260588,frog\n260589,truck\n260590,cat\n260591,frog\n260592,truck\n260593,frog\n260594,cat\n260595,airplane\n260596,dog\n260597,truck\n260598,dog\n260599,deer\n260600,deer\n260601,horse\n260602,airplane\n260603,automobile\n260604,automobile\n260605,frog\n260606,truck\n260607,deer\n260608,cat\n260609,horse\n260610,frog\n260611,automobile\n260612,airplane\n260613,bird\n260614,horse\n260615,airplane\n260616,truck\n260617,ship\n260618,bird\n260619,deer\n260620,frog\n260621,ship\n260622,bird\n260623,deer\n260624,horse\n260625,airplane\n260626,ship\n260627,truck\n260628,cat\n260629,automobile\n260630,airplane\n260631,cat\n260632,bird\n260633,dog\n260634,dog\n260635,frog\n260636,deer\n260637,airplane\n260638,cat\n260639,airplane\n260640,cat\n260641,automobile\n260642,bird\n260643,dog\n260644,dog\n260645,automobile\n260646,deer\n260647,airplane\n260648,airplane\n260649,truck\n260650,truck\n260651,frog\n260652,cat\n260653,horse\n260654,ship\n260655,frog\n260656,automobile\n260657,cat\n260658,ship\n260659,frog\n260660,ship\n260661,airplane\n260662,bird\n260663,horse\n260664,dog\n260665,frog\n260666,automobile\n260667,deer\n260668,dog\n260669,bird\n260670,deer\n260671,frog\n260672,ship\n260673,truck\n260674,ship\n260675,dog\n260676,truck\n260677,deer\n260678,deer\n260679,horse\n260680,horse\n260681,frog\n260682,bird\n260683,truck\n260684,cat\n260685,horse\n260686,horse\n260687,ship\n260688,frog\n260689,cat\n260690,deer\n260691,automobile\n260692,bird\n260693,horse\n260694,deer\n260695,truck\n260696,truck\n260697,frog\n260698,airplane\n260699,truck\n260700,deer\n260701,cat\n260702,horse\n260703,deer\n260704,dog\n260705,airplane\n260706,horse\n260707,bird\n260708,truck\n260709,deer\n260710,truck\n260711,bird\n260712,airplane\n260713,frog\n260714,dog\n260715,ship\n260716,deer\n260717,truck\n260718,truck\n260719,horse\n260720,airplane\n260721,bird\n260722,truck\n260723,dog\n260724,automobile\n260725,automobile\n260726,ship\n260727,deer\n260728,cat\n260729,truck\n260730,dog\n260731,frog\n260732,airplane\n260733,ship\n260734,airplane\n260735,deer\n260736,deer\n260737,bird\n260738,ship\n260739,cat\n260740,deer\n260741,automobile\n260742,truck\n260743,dog\n260744,cat\n260745,ship\n260746,ship\n260747,cat\n260748,cat\n260749,airplane\n260750,horse\n260751,horse\n260752,frog\n260753,truck\n260754,ship\n260755,bird\n260756,horse\n260757,cat\n260758,deer\n260759,cat\n260760,deer\n260761,airplane\n260762,dog\n260763,automobile\n260764,truck\n260765,truck\n260766,ship\n260767,frog\n260768,dog\n260769,airplane\n260770,automobile\n260771,horse\n260772,ship\n260773,automobile\n260774,cat\n260775,bird\n260776,ship\n260777,deer\n260778,airplane\n260779,truck\n260780,cat\n260781,dog\n260782,bird\n260783,dog\n260784,airplane\n260785,cat\n260786,truck\n260787,truck\n260788,dog\n260789,dog\n260790,deer\n260791,frog\n260792,frog\n260793,truck\n260794,cat\n260795,dog\n260796,truck\n260797,automobile\n260798,truck\n260799,airplane\n260800,frog\n260801,deer\n260802,dog\n260803,cat\n260804,ship\n260805,ship\n260806,cat\n260807,airplane\n260808,airplane\n260809,automobile\n260810,dog\n260811,ship\n260812,truck\n260813,truck\n260814,ship\n260815,ship\n260816,frog\n260817,airplane\n260818,cat\n260819,airplane\n260820,horse\n260821,dog\n260822,truck\n260823,truck\n260824,dog\n260825,automobile\n260826,bird\n260827,truck\n260828,truck\n260829,cat\n260830,airplane\n260831,frog\n260832,deer\n260833,airplane\n260834,horse\n260835,cat\n260836,truck\n260837,ship\n260838,cat\n260839,airplane\n260840,automobile\n260841,truck\n260842,bird\n260843,dog\n260844,deer\n260845,truck\n260846,truck\n260847,ship\n260848,frog\n260849,cat\n260850,deer\n260851,cat\n260852,deer\n260853,ship\n260854,truck\n260855,ship\n260856,deer\n260857,airplane\n260858,truck\n260859,ship\n260860,ship\n260861,truck\n260862,deer\n260863,airplane\n260864,bird\n260865,bird\n260866,airplane\n260867,truck\n260868,deer\n260869,cat\n260870,truck\n260871,deer\n260872,bird\n260873,truck\n260874,truck\n260875,dog\n260876,deer\n260877,cat\n260878,frog\n260879,cat\n260880,cat\n260881,automobile\n260882,dog\n260883,deer\n260884,automobile\n260885,truck\n260886,truck\n260887,frog\n260888,frog\n260889,bird\n260890,truck\n260891,cat\n260892,bird\n260893,dog\n260894,dog\n260895,automobile\n260896,deer\n260897,truck\n260898,ship\n260899,frog\n260900,bird\n260901,horse\n260902,deer\n260903,frog\n260904,bird\n260905,airplane\n260906,horse\n260907,horse\n260908,deer\n260909,frog\n260910,frog\n260911,deer\n260912,bird\n260913,cat\n260914,deer\n260915,dog\n260916,cat\n260917,frog\n260918,cat\n260919,ship\n260920,ship\n260921,ship\n260922,automobile\n260923,truck\n260924,cat\n260925,truck\n260926,truck\n260927,frog\n260928,bird\n260929,deer\n260930,airplane\n260931,horse\n260932,horse\n260933,deer\n260934,cat\n260935,airplane\n260936,cat\n260937,truck\n260938,horse\n260939,dog\n260940,cat\n260941,bird\n260942,automobile\n260943,automobile\n260944,horse\n260945,ship\n260946,airplane\n260947,truck\n260948,automobile\n260949,bird\n260950,automobile\n260951,dog\n260952,dog\n260953,dog\n260954,cat\n260955,frog\n260956,frog\n260957,cat\n260958,horse\n260959,cat\n260960,airplane\n260961,dog\n260962,deer\n260963,horse\n260964,frog\n260965,airplane\n260966,truck\n260967,truck\n260968,dog\n260969,airplane\n260970,frog\n260971,dog\n260972,frog\n260973,horse\n260974,bird\n260975,airplane\n260976,truck\n260977,truck\n260978,deer\n260979,horse\n260980,dog\n260981,deer\n260982,horse\n260983,automobile\n260984,deer\n260985,ship\n260986,dog\n260987,automobile\n260988,automobile\n260989,cat\n260990,deer\n260991,deer\n260992,frog\n260993,truck\n260994,ship\n260995,automobile\n260996,ship\n260997,deer\n260998,deer\n260999,bird\n261000,deer\n261001,truck\n261002,bird\n261003,dog\n261004,automobile\n261005,deer\n261006,cat\n261007,frog\n261008,deer\n261009,dog\n261010,truck\n261011,dog\n261012,frog\n261013,dog\n261014,horse\n261015,dog\n261016,deer\n261017,deer\n261018,bird\n261019,frog\n261020,ship\n261021,deer\n261022,bird\n261023,bird\n261024,airplane\n261025,airplane\n261026,airplane\n261027,deer\n261028,cat\n261029,cat\n261030,horse\n261031,airplane\n261032,truck\n261033,horse\n261034,airplane\n261035,ship\n261036,cat\n261037,horse\n261038,automobile\n261039,airplane\n261040,cat\n261041,frog\n261042,bird\n261043,bird\n261044,airplane\n261045,dog\n261046,frog\n261047,dog\n261048,automobile\n261049,bird\n261050,dog\n261051,deer\n261052,deer\n261053,ship\n261054,dog\n261055,deer\n261056,cat\n261057,frog\n261058,deer\n261059,bird\n261060,automobile\n261061,deer\n261062,horse\n261063,horse\n261064,truck\n261065,bird\n261066,ship\n261067,frog\n261068,airplane\n261069,cat\n261070,dog\n261071,deer\n261072,dog\n261073,bird\n261074,truck\n261075,dog\n261076,automobile\n261077,cat\n261078,cat\n261079,deer\n261080,deer\n261081,deer\n261082,automobile\n261083,frog\n261084,horse\n261085,bird\n261086,cat\n261087,deer\n261088,truck\n261089,bird\n261090,dog\n261091,airplane\n261092,automobile\n261093,deer\n261094,bird\n261095,truck\n261096,cat\n261097,ship\n261098,cat\n261099,horse\n261100,ship\n261101,deer\n261102,truck\n261103,truck\n261104,dog\n261105,frog\n261106,cat\n261107,dog\n261108,bird\n261109,airplane\n261110,cat\n261111,ship\n261112,airplane\n261113,bird\n261114,deer\n261115,frog\n261116,automobile\n261117,truck\n261118,deer\n261119,frog\n261120,ship\n261121,deer\n261122,truck\n261123,deer\n261124,ship\n261125,dog\n261126,airplane\n261127,ship\n261128,bird\n261129,automobile\n261130,cat\n261131,automobile\n261132,airplane\n261133,automobile\n261134,airplane\n261135,bird\n261136,horse\n261137,frog\n261138,deer\n261139,bird\n261140,horse\n261141,horse\n261142,frog\n261143,cat\n261144,deer\n261145,horse\n261146,dog\n261147,dog\n261148,truck\n261149,dog\n261150,airplane\n261151,bird\n261152,dog\n261153,truck\n261154,frog\n261155,truck\n261156,deer\n261157,dog\n261158,automobile\n261159,airplane\n261160,cat\n261161,bird\n261162,truck\n261163,automobile\n261164,truck\n261165,bird\n261166,deer\n261167,airplane\n261168,ship\n261169,airplane\n261170,frog\n261171,truck\n261172,horse\n261173,bird\n261174,airplane\n261175,automobile\n261176,horse\n261177,dog\n261178,frog\n261179,truck\n261180,deer\n261181,dog\n261182,horse\n261183,ship\n261184,dog\n261185,truck\n261186,truck\n261187,ship\n261188,frog\n261189,airplane\n261190,deer\n261191,ship\n261192,frog\n261193,bird\n261194,cat\n261195,deer\n261196,frog\n261197,frog\n261198,ship\n261199,ship\n261200,automobile\n261201,cat\n261202,deer\n261203,truck\n261204,frog\n261205,dog\n261206,cat\n261207,bird\n261208,automobile\n261209,cat\n261210,automobile\n261211,bird\n261212,cat\n261213,cat\n261214,frog\n261215,truck\n261216,deer\n261217,horse\n261218,deer\n261219,frog\n261220,deer\n261221,ship\n261222,bird\n261223,airplane\n261224,horse\n261225,truck\n261226,frog\n261227,airplane\n261228,bird\n261229,cat\n261230,dog\n261231,cat\n261232,dog\n261233,truck\n261234,ship\n261235,frog\n261236,dog\n261237,truck\n261238,horse\n261239,horse\n261240,ship\n261241,dog\n261242,bird\n261243,truck\n261244,automobile\n261245,dog\n261246,horse\n261247,ship\n261248,automobile\n261249,truck\n261250,cat\n261251,frog\n261252,horse\n261253,frog\n261254,ship\n261255,frog\n261256,deer\n261257,dog\n261258,bird\n261259,truck\n261260,dog\n261261,frog\n261262,horse\n261263,bird\n261264,bird\n261265,deer\n261266,deer\n261267,horse\n261268,deer\n261269,horse\n261270,truck\n261271,truck\n261272,cat\n261273,deer\n261274,cat\n261275,automobile\n261276,cat\n261277,frog\n261278,deer\n261279,deer\n261280,ship\n261281,frog\n261282,ship\n261283,cat\n261284,frog\n261285,cat\n261286,ship\n261287,frog\n261288,cat\n261289,automobile\n261290,horse\n261291,deer\n261292,deer\n261293,deer\n261294,bird\n261295,frog\n261296,horse\n261297,frog\n261298,automobile\n261299,truck\n261300,bird\n261301,horse\n261302,automobile\n261303,automobile\n261304,automobile\n261305,horse\n261306,truck\n261307,dog\n261308,truck\n261309,cat\n261310,dog\n261311,truck\n261312,bird\n261313,bird\n261314,bird\n261315,deer\n261316,truck\n261317,cat\n261318,truck\n261319,bird\n261320,cat\n261321,frog\n261322,frog\n261323,deer\n261324,airplane\n261325,bird\n261326,airplane\n261327,bird\n261328,horse\n261329,deer\n261330,deer\n261331,cat\n261332,bird\n261333,horse\n261334,airplane\n261335,bird\n261336,horse\n261337,deer\n261338,deer\n261339,dog\n261340,cat\n261341,truck\n261342,deer\n261343,ship\n261344,ship\n261345,cat\n261346,truck\n261347,cat\n261348,frog\n261349,airplane\n261350,truck\n261351,cat\n261352,horse\n261353,airplane\n261354,ship\n261355,ship\n261356,frog\n261357,horse\n261358,frog\n261359,cat\n261360,cat\n261361,deer\n261362,deer\n261363,automobile\n261364,horse\n261365,horse\n261366,frog\n261367,deer\n261368,ship\n261369,deer\n261370,truck\n261371,dog\n261372,bird\n261373,airplane\n261374,cat\n261375,truck\n261376,frog\n261377,airplane\n261378,frog\n261379,cat\n261380,truck\n261381,cat\n261382,bird\n261383,airplane\n261384,deer\n261385,dog\n261386,automobile\n261387,frog\n261388,frog\n261389,cat\n261390,bird\n261391,airplane\n261392,deer\n261393,automobile\n261394,bird\n261395,automobile\n261396,airplane\n261397,frog\n261398,frog\n261399,bird\n261400,horse\n261401,automobile\n261402,bird\n261403,dog\n261404,dog\n261405,cat\n261406,ship\n261407,dog\n261408,airplane\n261409,frog\n261410,horse\n261411,dog\n261412,ship\n261413,deer\n261414,dog\n261415,deer\n261416,deer\n261417,horse\n261418,ship\n261419,dog\n261420,dog\n261421,horse\n261422,frog\n261423,truck\n261424,truck\n261425,cat\n261426,cat\n261427,horse\n261428,cat\n261429,ship\n261430,bird\n261431,cat\n261432,truck\n261433,dog\n261434,dog\n261435,horse\n261436,dog\n261437,dog\n261438,horse\n261439,deer\n261440,cat\n261441,horse\n261442,automobile\n261443,frog\n261444,airplane\n261445,truck\n261446,horse\n261447,frog\n261448,airplane\n261449,cat\n261450,frog\n261451,truck\n261452,bird\n261453,frog\n261454,ship\n261455,horse\n261456,bird\n261457,bird\n261458,ship\n261459,cat\n261460,airplane\n261461,truck\n261462,automobile\n261463,airplane\n261464,deer\n261465,horse\n261466,truck\n261467,deer\n261468,dog\n261469,cat\n261470,cat\n261471,automobile\n261472,ship\n261473,airplane\n261474,bird\n261475,dog\n261476,deer\n261477,automobile\n261478,horse\n261479,truck\n261480,cat\n261481,bird\n261482,bird\n261483,automobile\n261484,airplane\n261485,horse\n261486,deer\n261487,dog\n261488,dog\n261489,horse\n261490,cat\n261491,deer\n261492,dog\n261493,automobile\n261494,ship\n261495,ship\n261496,airplane\n261497,truck\n261498,cat\n261499,horse\n261500,deer\n261501,deer\n261502,horse\n261503,airplane\n261504,ship\n261505,frog\n261506,cat\n261507,horse\n261508,dog\n261509,frog\n261510,horse\n261511,bird\n261512,cat\n261513,automobile\n261514,ship\n261515,truck\n261516,bird\n261517,automobile\n261518,dog\n261519,truck\n261520,ship\n261521,dog\n261522,cat\n261523,truck\n261524,bird\n261525,truck\n261526,cat\n261527,frog\n261528,ship\n261529,dog\n261530,ship\n261531,cat\n261532,automobile\n261533,automobile\n261534,bird\n261535,frog\n261536,ship\n261537,deer\n261538,bird\n261539,bird\n261540,truck\n261541,cat\n261542,cat\n261543,cat\n261544,ship\n261545,cat\n261546,deer\n261547,cat\n261548,frog\n261549,ship\n261550,deer\n261551,truck\n261552,deer\n261553,horse\n261554,frog\n261555,cat\n261556,horse\n261557,dog\n261558,deer\n261559,ship\n261560,frog\n261561,cat\n261562,automobile\n261563,cat\n261564,ship\n261565,deer\n261566,cat\n261567,cat\n261568,ship\n261569,ship\n261570,horse\n261571,deer\n261572,truck\n261573,cat\n261574,frog\n261575,airplane\n261576,truck\n261577,ship\n261578,frog\n261579,frog\n261580,horse\n261581,deer\n261582,truck\n261583,horse\n261584,cat\n261585,automobile\n261586,bird\n261587,cat\n261588,deer\n261589,cat\n261590,airplane\n261591,cat\n261592,truck\n261593,ship\n261594,bird\n261595,bird\n261596,dog\n261597,deer\n261598,airplane\n261599,automobile\n261600,frog\n261601,deer\n261602,cat\n261603,cat\n261604,bird\n261605,ship\n261606,horse\n261607,deer\n261608,frog\n261609,frog\n261610,automobile\n261611,automobile\n261612,automobile\n261613,automobile\n261614,automobile\n261615,truck\n261616,horse\n261617,deer\n261618,cat\n261619,airplane\n261620,automobile\n261621,ship\n261622,truck\n261623,automobile\n261624,automobile\n261625,airplane\n261626,frog\n261627,bird\n261628,horse\n261629,cat\n261630,horse\n261631,frog\n261632,ship\n261633,frog\n261634,automobile\n261635,airplane\n261636,horse\n261637,ship\n261638,ship\n261639,ship\n261640,automobile\n261641,truck\n261642,frog\n261643,truck\n261644,deer\n261645,truck\n261646,ship\n261647,cat\n261648,horse\n261649,horse\n261650,cat\n261651,horse\n261652,dog\n261653,cat\n261654,truck\n261655,cat\n261656,cat\n261657,cat\n261658,deer\n261659,airplane\n261660,cat\n261661,deer\n261662,bird\n261663,ship\n261664,bird\n261665,deer\n261666,ship\n261667,airplane\n261668,horse\n261669,cat\n261670,horse\n261671,horse\n261672,dog\n261673,frog\n261674,bird\n261675,frog\n261676,automobile\n261677,frog\n261678,dog\n261679,bird\n261680,horse\n261681,cat\n261682,ship\n261683,cat\n261684,dog\n261685,airplane\n261686,dog\n261687,cat\n261688,deer\n261689,truck\n261690,deer\n261691,frog\n261692,bird\n261693,truck\n261694,horse\n261695,deer\n261696,horse\n261697,bird\n261698,frog\n261699,ship\n261700,deer\n261701,airplane\n261702,ship\n261703,automobile\n261704,frog\n261705,dog\n261706,deer\n261707,cat\n261708,deer\n261709,airplane\n261710,frog\n261711,horse\n261712,frog\n261713,dog\n261714,deer\n261715,truck\n261716,cat\n261717,dog\n261718,frog\n261719,airplane\n261720,dog\n261721,deer\n261722,horse\n261723,truck\n261724,ship\n261725,automobile\n261726,frog\n261727,frog\n261728,bird\n261729,cat\n261730,cat\n261731,dog\n261732,automobile\n261733,frog\n261734,frog\n261735,frog\n261736,deer\n261737,cat\n261738,dog\n261739,ship\n261740,cat\n261741,truck\n261742,ship\n261743,automobile\n261744,airplane\n261745,airplane\n261746,frog\n261747,cat\n261748,cat\n261749,horse\n261750,ship\n261751,airplane\n261752,airplane\n261753,automobile\n261754,airplane\n261755,airplane\n261756,automobile\n261757,bird\n261758,cat\n261759,deer\n261760,airplane\n261761,bird\n261762,cat\n261763,frog\n261764,truck\n261765,bird\n261766,frog\n261767,bird\n261768,cat\n261769,cat\n261770,dog\n261771,deer\n261772,ship\n261773,truck\n261774,horse\n261775,ship\n261776,deer\n261777,truck\n261778,truck\n261779,airplane\n261780,horse\n261781,frog\n261782,automobile\n261783,deer\n261784,bird\n261785,horse\n261786,bird\n261787,frog\n261788,bird\n261789,airplane\n261790,bird\n261791,bird\n261792,horse\n261793,ship\n261794,horse\n261795,cat\n261796,airplane\n261797,ship\n261798,horse\n261799,cat\n261800,horse\n261801,bird\n261802,automobile\n261803,automobile\n261804,bird\n261805,dog\n261806,airplane\n261807,deer\n261808,deer\n261809,bird\n261810,automobile\n261811,horse\n261812,cat\n261813,dog\n261814,deer\n261815,horse\n261816,automobile\n261817,truck\n261818,deer\n261819,automobile\n261820,bird\n261821,cat\n261822,bird\n261823,frog\n261824,cat\n261825,bird\n261826,bird\n261827,truck\n261828,dog\n261829,automobile\n261830,bird\n261831,automobile\n261832,ship\n261833,horse\n261834,frog\n261835,dog\n261836,ship\n261837,cat\n261838,truck\n261839,bird\n261840,cat\n261841,dog\n261842,cat\n261843,deer\n261844,cat\n261845,ship\n261846,automobile\n261847,automobile\n261848,cat\n261849,cat\n261850,frog\n261851,truck\n261852,airplane\n261853,airplane\n261854,ship\n261855,deer\n261856,airplane\n261857,frog\n261858,dog\n261859,bird\n261860,airplane\n261861,bird\n261862,airplane\n261863,deer\n261864,airplane\n261865,frog\n261866,deer\n261867,automobile\n261868,cat\n261869,airplane\n261870,ship\n261871,truck\n261872,deer\n261873,frog\n261874,bird\n261875,ship\n261876,deer\n261877,dog\n261878,frog\n261879,cat\n261880,bird\n261881,bird\n261882,bird\n261883,dog\n261884,automobile\n261885,ship\n261886,ship\n261887,horse\n261888,ship\n261889,airplane\n261890,frog\n261891,frog\n261892,ship\n261893,ship\n261894,ship\n261895,deer\n261896,dog\n261897,horse\n261898,horse\n261899,dog\n261900,deer\n261901,dog\n261902,cat\n261903,automobile\n261904,truck\n261905,truck\n261906,frog\n261907,frog\n261908,bird\n261909,airplane\n261910,airplane\n261911,bird\n261912,deer\n261913,cat\n261914,deer\n261915,automobile\n261916,automobile\n261917,deer\n261918,deer\n261919,airplane\n261920,frog\n261921,ship\n261922,deer\n261923,horse\n261924,dog\n261925,horse\n261926,dog\n261927,frog\n261928,frog\n261929,horse\n261930,truck\n261931,deer\n261932,frog\n261933,automobile\n261934,frog\n261935,dog\n261936,dog\n261937,automobile\n261938,automobile\n261939,horse\n261940,horse\n261941,cat\n261942,horse\n261943,truck\n261944,truck\n261945,airplane\n261946,automobile\n261947,bird\n261948,deer\n261949,deer\n261950,horse\n261951,airplane\n261952,frog\n261953,airplane\n261954,dog\n261955,frog\n261956,horse\n261957,deer\n261958,truck\n261959,airplane\n261960,dog\n261961,frog\n261962,bird\n261963,ship\n261964,bird\n261965,automobile\n261966,cat\n261967,airplane\n261968,horse\n261969,truck\n261970,frog\n261971,horse\n261972,bird\n261973,dog\n261974,bird\n261975,frog\n261976,ship\n261977,automobile\n261978,frog\n261979,dog\n261980,horse\n261981,cat\n261982,dog\n261983,frog\n261984,cat\n261985,deer\n261986,ship\n261987,bird\n261988,cat\n261989,cat\n261990,dog\n261991,cat\n261992,dog\n261993,bird\n261994,cat\n261995,cat\n261996,airplane\n261997,cat\n261998,dog\n261999,dog\n262000,automobile\n262001,horse\n262002,cat\n262003,ship\n262004,deer\n262005,frog\n262006,cat\n262007,deer\n262008,bird\n262009,cat\n262010,automobile\n262011,automobile\n262012,deer\n262013,dog\n262014,ship\n262015,ship\n262016,truck\n262017,frog\n262018,horse\n262019,automobile\n262020,automobile\n262021,deer\n262022,ship\n262023,dog\n262024,ship\n262025,automobile\n262026,truck\n262027,deer\n262028,deer\n262029,deer\n262030,horse\n262031,truck\n262032,horse\n262033,horse\n262034,cat\n262035,deer\n262036,deer\n262037,cat\n262038,deer\n262039,truck\n262040,deer\n262041,deer\n262042,truck\n262043,cat\n262044,cat\n262045,cat\n262046,frog\n262047,airplane\n262048,automobile\n262049,dog\n262050,dog\n262051,cat\n262052,automobile\n262053,cat\n262054,truck\n262055,airplane\n262056,truck\n262057,airplane\n262058,cat\n262059,frog\n262060,frog\n262061,ship\n262062,dog\n262063,horse\n262064,horse\n262065,truck\n262066,truck\n262067,cat\n262068,airplane\n262069,dog\n262070,truck\n262071,deer\n262072,cat\n262073,dog\n262074,dog\n262075,bird\n262076,horse\n262077,truck\n262078,horse\n262079,frog\n262080,frog\n262081,frog\n262082,ship\n262083,ship\n262084,bird\n262085,ship\n262086,deer\n262087,airplane\n262088,airplane\n262089,dog\n262090,horse\n262091,truck\n262092,bird\n262093,dog\n262094,bird\n262095,airplane\n262096,cat\n262097,dog\n262098,frog\n262099,deer\n262100,horse\n262101,truck\n262102,deer\n262103,frog\n262104,cat\n262105,horse\n262106,airplane\n262107,bird\n262108,automobile\n262109,horse\n262110,dog\n262111,horse\n262112,automobile\n262113,deer\n262114,horse\n262115,frog\n262116,frog\n262117,dog\n262118,truck\n262119,deer\n262120,cat\n262121,airplane\n262122,airplane\n262123,horse\n262124,dog\n262125,cat\n262126,deer\n262127,bird\n262128,dog\n262129,frog\n262130,deer\n262131,ship\n262132,horse\n262133,frog\n262134,ship\n262135,deer\n262136,cat\n262137,dog\n262138,horse\n262139,cat\n262140,bird\n262141,frog\n262142,deer\n262143,automobile\n262144,ship\n262145,frog\n262146,deer\n262147,horse\n262148,bird\n262149,frog\n262150,cat\n262151,automobile\n262152,dog\n262153,automobile\n262154,deer\n262155,frog\n262156,horse\n262157,truck\n262158,deer\n262159,bird\n262160,bird\n262161,deer\n262162,frog\n262163,airplane\n262164,cat\n262165,cat\n262166,automobile\n262167,airplane\n262168,airplane\n262169,frog\n262170,automobile\n262171,airplane\n262172,horse\n262173,cat\n262174,airplane\n262175,dog\n262176,cat\n262177,cat\n262178,automobile\n262179,deer\n262180,bird\n262181,cat\n262182,frog\n262183,cat\n262184,dog\n262185,deer\n262186,cat\n262187,deer\n262188,bird\n262189,deer\n262190,ship\n262191,bird\n262192,bird\n262193,frog\n262194,frog\n262195,horse\n262196,automobile\n262197,airplane\n262198,dog\n262199,truck\n262200,airplane\n262201,truck\n262202,dog\n262203,airplane\n262204,airplane\n262205,ship\n262206,horse\n262207,ship\n262208,bird\n262209,truck\n262210,automobile\n262211,cat\n262212,deer\n262213,frog\n262214,airplane\n262215,deer\n262216,truck\n262217,frog\n262218,truck\n262219,horse\n262220,dog\n262221,deer\n262222,bird\n262223,automobile\n262224,bird\n262225,cat\n262226,frog\n262227,deer\n262228,ship\n262229,ship\n262230,dog\n262231,horse\n262232,ship\n262233,ship\n262234,horse\n262235,deer\n262236,horse\n262237,bird\n262238,frog\n262239,cat\n262240,airplane\n262241,cat\n262242,cat\n262243,dog\n262244,ship\n262245,ship\n262246,cat\n262247,dog\n262248,deer\n262249,cat\n262250,cat\n262251,dog\n262252,bird\n262253,horse\n262254,airplane\n262255,cat\n262256,automobile\n262257,deer\n262258,dog\n262259,dog\n262260,deer\n262261,airplane\n262262,automobile\n262263,deer\n262264,cat\n262265,bird\n262266,cat\n262267,ship\n262268,truck\n262269,automobile\n262270,dog\n262271,bird\n262272,horse\n262273,airplane\n262274,truck\n262275,bird\n262276,frog\n262277,frog\n262278,ship\n262279,automobile\n262280,ship\n262281,dog\n262282,frog\n262283,automobile\n262284,airplane\n262285,deer\n262286,frog\n262287,airplane\n262288,bird\n262289,frog\n262290,truck\n262291,cat\n262292,horse\n262293,dog\n262294,truck\n262295,ship\n262296,horse\n262297,bird\n262298,deer\n262299,ship\n262300,cat\n262301,cat\n262302,cat\n262303,deer\n262304,horse\n262305,cat\n262306,horse\n262307,airplane\n262308,bird\n262309,deer\n262310,ship\n262311,frog\n262312,dog\n262313,frog\n262314,frog\n262315,horse\n262316,deer\n262317,airplane\n262318,horse\n262319,deer\n262320,frog\n262321,horse\n262322,deer\n262323,horse\n262324,cat\n262325,ship\n262326,airplane\n262327,bird\n262328,cat\n262329,truck\n262330,bird\n262331,deer\n262332,bird\n262333,horse\n262334,deer\n262335,cat\n262336,bird\n262337,dog\n262338,bird\n262339,airplane\n262340,deer\n262341,dog\n262342,bird\n262343,horse\n262344,ship\n262345,airplane\n262346,deer\n262347,cat\n262348,airplane\n262349,truck\n262350,horse\n262351,bird\n262352,deer\n262353,deer\n262354,automobile\n262355,airplane\n262356,horse\n262357,cat\n262358,airplane\n262359,airplane\n262360,horse\n262361,ship\n262362,truck\n262363,frog\n262364,cat\n262365,frog\n262366,deer\n262367,bird\n262368,deer\n262369,horse\n262370,airplane\n262371,frog\n262372,airplane\n262373,airplane\n262374,cat\n262375,cat\n262376,cat\n262377,ship\n262378,deer\n262379,airplane\n262380,bird\n262381,deer\n262382,bird\n262383,dog\n262384,bird\n262385,airplane\n262386,deer\n262387,ship\n262388,dog\n262389,truck\n262390,ship\n262391,bird\n262392,deer\n262393,ship\n262394,bird\n262395,horse\n262396,bird\n262397,frog\n262398,frog\n262399,bird\n262400,deer\n262401,frog\n262402,cat\n262403,cat\n262404,deer\n262405,bird\n262406,bird\n262407,horse\n262408,airplane\n262409,bird\n262410,frog\n262411,airplane\n262412,horse\n262413,ship\n262414,horse\n262415,cat\n262416,dog\n262417,truck\n262418,airplane\n262419,truck\n262420,dog\n262421,horse\n262422,bird\n262423,bird\n262424,cat\n262425,automobile\n262426,deer\n262427,dog\n262428,ship\n262429,bird\n262430,automobile\n262431,cat\n262432,cat\n262433,horse\n262434,cat\n262435,deer\n262436,horse\n262437,truck\n262438,ship\n262439,cat\n262440,bird\n262441,horse\n262442,ship\n262443,dog\n262444,airplane\n262445,truck\n262446,bird\n262447,cat\n262448,deer\n262449,dog\n262450,truck\n262451,ship\n262452,horse\n262453,dog\n262454,ship\n262455,frog\n262456,cat\n262457,dog\n262458,airplane\n262459,automobile\n262460,cat\n262461,automobile\n262462,ship\n262463,ship\n262464,ship\n262465,ship\n262466,deer\n262467,deer\n262468,cat\n262469,truck\n262470,bird\n262471,cat\n262472,ship\n262473,horse\n262474,truck\n262475,ship\n262476,airplane\n262477,horse\n262478,truck\n262479,deer\n262480,horse\n262481,airplane\n262482,airplane\n262483,deer\n262484,deer\n262485,automobile\n262486,automobile\n262487,bird\n262488,cat\n262489,deer\n262490,ship\n262491,deer\n262492,ship\n262493,cat\n262494,truck\n262495,truck\n262496,horse\n262497,dog\n262498,automobile\n262499,cat\n262500,airplane\n262501,airplane\n262502,frog\n262503,automobile\n262504,dog\n262505,ship\n262506,bird\n262507,bird\n262508,frog\n262509,horse\n262510,bird\n262511,ship\n262512,automobile\n262513,deer\n262514,automobile\n262515,airplane\n262516,horse\n262517,dog\n262518,automobile\n262519,airplane\n262520,bird\n262521,cat\n262522,ship\n262523,deer\n262524,bird\n262525,airplane\n262526,bird\n262527,truck\n262528,frog\n262529,horse\n262530,ship\n262531,horse\n262532,cat\n262533,deer\n262534,airplane\n262535,ship\n262536,dog\n262537,horse\n262538,airplane\n262539,frog\n262540,cat\n262541,truck\n262542,horse\n262543,horse\n262544,horse\n262545,frog\n262546,truck\n262547,ship\n262548,bird\n262549,automobile\n262550,bird\n262551,automobile\n262552,truck\n262553,cat\n262554,frog\n262555,dog\n262556,airplane\n262557,truck\n262558,deer\n262559,cat\n262560,bird\n262561,dog\n262562,dog\n262563,ship\n262564,horse\n262565,deer\n262566,ship\n262567,ship\n262568,cat\n262569,frog\n262570,bird\n262571,frog\n262572,ship\n262573,bird\n262574,bird\n262575,frog\n262576,truck\n262577,deer\n262578,truck\n262579,ship\n262580,frog\n262581,ship\n262582,automobile\n262583,cat\n262584,airplane\n262585,cat\n262586,deer\n262587,truck\n262588,ship\n262589,automobile\n262590,automobile\n262591,deer\n262592,deer\n262593,horse\n262594,automobile\n262595,automobile\n262596,automobile\n262597,ship\n262598,cat\n262599,deer\n262600,horse\n262601,ship\n262602,cat\n262603,deer\n262604,truck\n262605,frog\n262606,truck\n262607,deer\n262608,truck\n262609,automobile\n262610,frog\n262611,cat\n262612,horse\n262613,truck\n262614,horse\n262615,horse\n262616,horse\n262617,horse\n262618,dog\n262619,horse\n262620,bird\n262621,frog\n262622,cat\n262623,cat\n262624,airplane\n262625,horse\n262626,automobile\n262627,truck\n262628,truck\n262629,horse\n262630,ship\n262631,dog\n262632,cat\n262633,airplane\n262634,cat\n262635,ship\n262636,deer\n262637,horse\n262638,automobile\n262639,horse\n262640,deer\n262641,ship\n262642,frog\n262643,bird\n262644,deer\n262645,dog\n262646,deer\n262647,truck\n262648,cat\n262649,deer\n262650,dog\n262651,ship\n262652,ship\n262653,deer\n262654,cat\n262655,automobile\n262656,dog\n262657,dog\n262658,dog\n262659,airplane\n262660,dog\n262661,horse\n262662,bird\n262663,frog\n262664,ship\n262665,automobile\n262666,horse\n262667,dog\n262668,dog\n262669,dog\n262670,frog\n262671,ship\n262672,deer\n262673,truck\n262674,horse\n262675,horse\n262676,horse\n262677,horse\n262678,deer\n262679,bird\n262680,dog\n262681,airplane\n262682,deer\n262683,frog\n262684,cat\n262685,automobile\n262686,cat\n262687,cat\n262688,dog\n262689,truck\n262690,deer\n262691,frog\n262692,automobile\n262693,dog\n262694,truck\n262695,cat\n262696,ship\n262697,deer\n262698,cat\n262699,horse\n262700,horse\n262701,frog\n262702,ship\n262703,cat\n262704,airplane\n262705,truck\n262706,airplane\n262707,truck\n262708,cat\n262709,ship\n262710,deer\n262711,deer\n262712,truck\n262713,cat\n262714,cat\n262715,cat\n262716,airplane\n262717,bird\n262718,horse\n262719,airplane\n262720,bird\n262721,bird\n262722,bird\n262723,ship\n262724,deer\n262725,cat\n262726,truck\n262727,bird\n262728,horse\n262729,bird\n262730,airplane\n262731,airplane\n262732,dog\n262733,truck\n262734,airplane\n262735,cat\n262736,cat\n262737,truck\n262738,cat\n262739,dog\n262740,frog\n262741,ship\n262742,dog\n262743,horse\n262744,bird\n262745,airplane\n262746,bird\n262747,frog\n262748,horse\n262749,airplane\n262750,truck\n262751,dog\n262752,dog\n262753,bird\n262754,cat\n262755,dog\n262756,dog\n262757,automobile\n262758,cat\n262759,automobile\n262760,dog\n262761,cat\n262762,dog\n262763,horse\n262764,cat\n262765,bird\n262766,automobile\n262767,frog\n262768,truck\n262769,ship\n262770,truck\n262771,bird\n262772,deer\n262773,truck\n262774,bird\n262775,frog\n262776,truck\n262777,bird\n262778,ship\n262779,cat\n262780,deer\n262781,horse\n262782,frog\n262783,automobile\n262784,cat\n262785,cat\n262786,cat\n262787,cat\n262788,cat\n262789,dog\n262790,airplane\n262791,airplane\n262792,cat\n262793,cat\n262794,airplane\n262795,dog\n262796,truck\n262797,ship\n262798,ship\n262799,dog\n262800,frog\n262801,cat\n262802,dog\n262803,ship\n262804,deer\n262805,cat\n262806,horse\n262807,horse\n262808,deer\n262809,dog\n262810,truck\n262811,dog\n262812,bird\n262813,frog\n262814,airplane\n262815,cat\n262816,truck\n262817,frog\n262818,bird\n262819,horse\n262820,horse\n262821,horse\n262822,airplane\n262823,airplane\n262824,cat\n262825,deer\n262826,airplane\n262827,airplane\n262828,dog\n262829,automobile\n262830,ship\n262831,automobile\n262832,horse\n262833,cat\n262834,cat\n262835,cat\n262836,deer\n262837,dog\n262838,airplane\n262839,dog\n262840,airplane\n262841,truck\n262842,airplane\n262843,horse\n262844,ship\n262845,dog\n262846,automobile\n262847,dog\n262848,bird\n262849,horse\n262850,cat\n262851,cat\n262852,ship\n262853,horse\n262854,bird\n262855,truck\n262856,frog\n262857,frog\n262858,frog\n262859,truck\n262860,automobile\n262861,bird\n262862,automobile\n262863,deer\n262864,cat\n262865,automobile\n262866,truck\n262867,truck\n262868,truck\n262869,truck\n262870,automobile\n262871,ship\n262872,cat\n262873,automobile\n262874,bird\n262875,bird\n262876,cat\n262877,ship\n262878,cat\n262879,cat\n262880,horse\n262881,truck\n262882,dog\n262883,truck\n262884,cat\n262885,frog\n262886,frog\n262887,bird\n262888,cat\n262889,bird\n262890,frog\n262891,airplane\n262892,bird\n262893,horse\n262894,bird\n262895,bird\n262896,frog\n262897,cat\n262898,frog\n262899,cat\n262900,bird\n262901,airplane\n262902,bird\n262903,bird\n262904,dog\n262905,horse\n262906,airplane\n262907,deer\n262908,truck\n262909,dog\n262910,airplane\n262911,deer\n262912,deer\n262913,bird\n262914,cat\n262915,airplane\n262916,deer\n262917,cat\n262918,ship\n262919,frog\n262920,dog\n262921,ship\n262922,truck\n262923,horse\n262924,horse\n262925,automobile\n262926,deer\n262927,deer\n262928,bird\n262929,frog\n262930,ship\n262931,cat\n262932,dog\n262933,automobile\n262934,cat\n262935,airplane\n262936,ship\n262937,ship\n262938,cat\n262939,automobile\n262940,frog\n262941,deer\n262942,deer\n262943,deer\n262944,truck\n262945,airplane\n262946,truck\n262947,airplane\n262948,frog\n262949,cat\n262950,horse\n262951,frog\n262952,cat\n262953,cat\n262954,horse\n262955,dog\n262956,automobile\n262957,cat\n262958,automobile\n262959,ship\n262960,truck\n262961,automobile\n262962,cat\n262963,airplane\n262964,automobile\n262965,truck\n262966,horse\n262967,automobile\n262968,deer\n262969,truck\n262970,bird\n262971,bird\n262972,frog\n262973,dog\n262974,truck\n262975,frog\n262976,dog\n262977,horse\n262978,cat\n262979,deer\n262980,truck\n262981,frog\n262982,cat\n262983,ship\n262984,dog\n262985,deer\n262986,cat\n262987,bird\n262988,dog\n262989,airplane\n262990,airplane\n262991,frog\n262992,frog\n262993,deer\n262994,deer\n262995,truck\n262996,truck\n262997,deer\n262998,bird\n262999,truck\n263000,frog\n263001,ship\n263002,truck\n263003,horse\n263004,airplane\n263005,ship\n263006,deer\n263007,deer\n263008,deer\n263009,automobile\n263010,deer\n263011,bird\n263012,deer\n263013,truck\n263014,bird\n263015,automobile\n263016,dog\n263017,frog\n263018,dog\n263019,truck\n263020,cat\n263021,horse\n263022,frog\n263023,dog\n263024,truck\n263025,dog\n263026,horse\n263027,cat\n263028,ship\n263029,frog\n263030,deer\n263031,automobile\n263032,airplane\n263033,frog\n263034,bird\n263035,ship\n263036,cat\n263037,cat\n263038,bird\n263039,horse\n263040,truck\n263041,frog\n263042,cat\n263043,automobile\n263044,airplane\n263045,dog\n263046,cat\n263047,horse\n263048,frog\n263049,cat\n263050,dog\n263051,truck\n263052,airplane\n263053,truck\n263054,horse\n263055,deer\n263056,bird\n263057,cat\n263058,horse\n263059,deer\n263060,automobile\n263061,truck\n263062,dog\n263063,dog\n263064,frog\n263065,deer\n263066,frog\n263067,bird\n263068,automobile\n263069,airplane\n263070,bird\n263071,airplane\n263072,frog\n263073,dog\n263074,cat\n263075,truck\n263076,truck\n263077,cat\n263078,dog\n263079,cat\n263080,deer\n263081,deer\n263082,deer\n263083,ship\n263084,ship\n263085,ship\n263086,airplane\n263087,automobile\n263088,frog\n263089,truck\n263090,cat\n263091,dog\n263092,horse\n263093,ship\n263094,bird\n263095,ship\n263096,dog\n263097,frog\n263098,truck\n263099,airplane\n263100,frog\n263101,cat\n263102,dog\n263103,dog\n263104,frog\n263105,ship\n263106,horse\n263107,bird\n263108,dog\n263109,ship\n263110,truck\n263111,horse\n263112,airplane\n263113,frog\n263114,horse\n263115,ship\n263116,bird\n263117,horse\n263118,cat\n263119,deer\n263120,automobile\n263121,deer\n263122,horse\n263123,bird\n263124,airplane\n263125,deer\n263126,dog\n263127,bird\n263128,automobile\n263129,deer\n263130,deer\n263131,frog\n263132,truck\n263133,dog\n263134,frog\n263135,deer\n263136,deer\n263137,deer\n263138,truck\n263139,deer\n263140,automobile\n263141,deer\n263142,bird\n263143,bird\n263144,airplane\n263145,horse\n263146,horse\n263147,automobile\n263148,bird\n263149,dog\n263150,deer\n263151,bird\n263152,truck\n263153,airplane\n263154,deer\n263155,ship\n263156,deer\n263157,cat\n263158,truck\n263159,truck\n263160,frog\n263161,dog\n263162,airplane\n263163,ship\n263164,truck\n263165,bird\n263166,dog\n263167,deer\n263168,horse\n263169,deer\n263170,dog\n263171,horse\n263172,frog\n263173,bird\n263174,frog\n263175,airplane\n263176,bird\n263177,bird\n263178,cat\n263179,dog\n263180,automobile\n263181,deer\n263182,automobile\n263183,horse\n263184,horse\n263185,horse\n263186,cat\n263187,cat\n263188,deer\n263189,cat\n263190,airplane\n263191,deer\n263192,cat\n263193,ship\n263194,deer\n263195,truck\n263196,horse\n263197,cat\n263198,bird\n263199,airplane\n263200,deer\n263201,truck\n263202,deer\n263203,dog\n263204,airplane\n263205,bird\n263206,horse\n263207,frog\n263208,horse\n263209,airplane\n263210,cat\n263211,bird\n263212,truck\n263213,dog\n263214,frog\n263215,truck\n263216,truck\n263217,horse\n263218,cat\n263219,bird\n263220,bird\n263221,truck\n263222,frog\n263223,automobile\n263224,deer\n263225,cat\n263226,deer\n263227,dog\n263228,cat\n263229,dog\n263230,frog\n263231,truck\n263232,deer\n263233,deer\n263234,bird\n263235,bird\n263236,horse\n263237,deer\n263238,automobile\n263239,bird\n263240,dog\n263241,frog\n263242,ship\n263243,dog\n263244,ship\n263245,automobile\n263246,cat\n263247,dog\n263248,horse\n263249,frog\n263250,frog\n263251,truck\n263252,bird\n263253,horse\n263254,truck\n263255,frog\n263256,frog\n263257,ship\n263258,deer\n263259,horse\n263260,frog\n263261,horse\n263262,dog\n263263,airplane\n263264,deer\n263265,frog\n263266,deer\n263267,truck\n263268,bird\n263269,horse\n263270,deer\n263271,frog\n263272,dog\n263273,ship\n263274,bird\n263275,airplane\n263276,deer\n263277,dog\n263278,deer\n263279,truck\n263280,horse\n263281,bird\n263282,cat\n263283,frog\n263284,dog\n263285,frog\n263286,deer\n263287,horse\n263288,dog\n263289,truck\n263290,horse\n263291,horse\n263292,deer\n263293,ship\n263294,airplane\n263295,bird\n263296,airplane\n263297,dog\n263298,deer\n263299,frog\n263300,bird\n263301,frog\n263302,airplane\n263303,frog\n263304,frog\n263305,horse\n263306,cat\n263307,truck\n263308,dog\n263309,bird\n263310,horse\n263311,dog\n263312,frog\n263313,deer\n263314,cat\n263315,frog\n263316,truck\n263317,cat\n263318,horse\n263319,truck\n263320,airplane\n263321,deer\n263322,bird\n263323,frog\n263324,ship\n263325,ship\n263326,automobile\n263327,automobile\n263328,deer\n263329,deer\n263330,automobile\n263331,frog\n263332,truck\n263333,truck\n263334,airplane\n263335,truck\n263336,automobile\n263337,truck\n263338,cat\n263339,airplane\n263340,automobile\n263341,truck\n263342,truck\n263343,horse\n263344,dog\n263345,ship\n263346,dog\n263347,cat\n263348,airplane\n263349,horse\n263350,airplane\n263351,frog\n263352,frog\n263353,dog\n263354,deer\n263355,cat\n263356,deer\n263357,truck\n263358,cat\n263359,bird\n263360,automobile\n263361,cat\n263362,deer\n263363,truck\n263364,truck\n263365,horse\n263366,cat\n263367,horse\n263368,dog\n263369,bird\n263370,deer\n263371,deer\n263372,bird\n263373,horse\n263374,deer\n263375,airplane\n263376,ship\n263377,cat\n263378,ship\n263379,ship\n263380,deer\n263381,bird\n263382,horse\n263383,frog\n263384,frog\n263385,dog\n263386,ship\n263387,frog\n263388,dog\n263389,airplane\n263390,airplane\n263391,horse\n263392,bird\n263393,bird\n263394,deer\n263395,bird\n263396,frog\n263397,automobile\n263398,cat\n263399,frog\n263400,airplane\n263401,cat\n263402,cat\n263403,dog\n263404,deer\n263405,horse\n263406,cat\n263407,frog\n263408,truck\n263409,cat\n263410,horse\n263411,automobile\n263412,truck\n263413,airplane\n263414,dog\n263415,deer\n263416,deer\n263417,deer\n263418,ship\n263419,cat\n263420,dog\n263421,automobile\n263422,airplane\n263423,bird\n263424,deer\n263425,deer\n263426,automobile\n263427,truck\n263428,airplane\n263429,ship\n263430,bird\n263431,ship\n263432,cat\n263433,dog\n263434,frog\n263435,ship\n263436,deer\n263437,horse\n263438,bird\n263439,deer\n263440,truck\n263441,dog\n263442,deer\n263443,deer\n263444,truck\n263445,truck\n263446,automobile\n263447,deer\n263448,cat\n263449,automobile\n263450,deer\n263451,horse\n263452,airplane\n263453,dog\n263454,truck\n263455,ship\n263456,bird\n263457,cat\n263458,deer\n263459,frog\n263460,truck\n263461,cat\n263462,bird\n263463,dog\n263464,cat\n263465,frog\n263466,frog\n263467,cat\n263468,airplane\n263469,deer\n263470,bird\n263471,deer\n263472,cat\n263473,automobile\n263474,horse\n263475,bird\n263476,airplane\n263477,dog\n263478,bird\n263479,ship\n263480,bird\n263481,frog\n263482,cat\n263483,ship\n263484,airplane\n263485,truck\n263486,cat\n263487,deer\n263488,deer\n263489,horse\n263490,bird\n263491,bird\n263492,automobile\n263493,airplane\n263494,ship\n263495,dog\n263496,cat\n263497,dog\n263498,deer\n263499,frog\n263500,automobile\n263501,deer\n263502,horse\n263503,ship\n263504,deer\n263505,deer\n263506,dog\n263507,bird\n263508,truck\n263509,bird\n263510,frog\n263511,cat\n263512,frog\n263513,horse\n263514,dog\n263515,automobile\n263516,horse\n263517,cat\n263518,airplane\n263519,cat\n263520,frog\n263521,automobile\n263522,bird\n263523,dog\n263524,horse\n263525,ship\n263526,bird\n263527,cat\n263528,bird\n263529,horse\n263530,deer\n263531,truck\n263532,bird\n263533,bird\n263534,frog\n263535,automobile\n263536,dog\n263537,dog\n263538,bird\n263539,cat\n263540,dog\n263541,cat\n263542,truck\n263543,deer\n263544,automobile\n263545,frog\n263546,airplane\n263547,automobile\n263548,deer\n263549,bird\n263550,frog\n263551,deer\n263552,deer\n263553,ship\n263554,frog\n263555,horse\n263556,airplane\n263557,bird\n263558,deer\n263559,automobile\n263560,frog\n263561,deer\n263562,bird\n263563,dog\n263564,ship\n263565,ship\n263566,dog\n263567,cat\n263568,ship\n263569,deer\n263570,bird\n263571,airplane\n263572,bird\n263573,bird\n263574,bird\n263575,frog\n263576,dog\n263577,truck\n263578,airplane\n263579,horse\n263580,automobile\n263581,cat\n263582,dog\n263583,dog\n263584,deer\n263585,dog\n263586,dog\n263587,ship\n263588,cat\n263589,horse\n263590,dog\n263591,deer\n263592,cat\n263593,deer\n263594,frog\n263595,horse\n263596,horse\n263597,bird\n263598,deer\n263599,bird\n263600,cat\n263601,ship\n263602,cat\n263603,bird\n263604,horse\n263605,frog\n263606,cat\n263607,dog\n263608,deer\n263609,airplane\n263610,automobile\n263611,bird\n263612,horse\n263613,ship\n263614,truck\n263615,dog\n263616,cat\n263617,deer\n263618,airplane\n263619,deer\n263620,automobile\n263621,automobile\n263622,frog\n263623,deer\n263624,frog\n263625,truck\n263626,truck\n263627,truck\n263628,dog\n263629,ship\n263630,horse\n263631,automobile\n263632,cat\n263633,cat\n263634,bird\n263635,frog\n263636,cat\n263637,cat\n263638,truck\n263639,airplane\n263640,horse\n263641,truck\n263642,cat\n263643,ship\n263644,cat\n263645,dog\n263646,truck\n263647,truck\n263648,ship\n263649,dog\n263650,ship\n263651,ship\n263652,truck\n263653,truck\n263654,truck\n263655,truck\n263656,bird\n263657,ship\n263658,horse\n263659,cat\n263660,cat\n263661,bird\n263662,truck\n263663,frog\n263664,automobile\n263665,cat\n263666,bird\n263667,frog\n263668,airplane\n263669,automobile\n263670,truck\n263671,dog\n263672,cat\n263673,cat\n263674,cat\n263675,dog\n263676,cat\n263677,horse\n263678,truck\n263679,airplane\n263680,ship\n263681,cat\n263682,airplane\n263683,automobile\n263684,dog\n263685,airplane\n263686,airplane\n263687,frog\n263688,airplane\n263689,dog\n263690,dog\n263691,airplane\n263692,deer\n263693,bird\n263694,bird\n263695,bird\n263696,truck\n263697,airplane\n263698,truck\n263699,ship\n263700,dog\n263701,automobile\n263702,frog\n263703,automobile\n263704,dog\n263705,cat\n263706,dog\n263707,deer\n263708,frog\n263709,deer\n263710,automobile\n263711,cat\n263712,cat\n263713,airplane\n263714,airplane\n263715,cat\n263716,truck\n263717,dog\n263718,dog\n263719,airplane\n263720,truck\n263721,frog\n263722,bird\n263723,deer\n263724,horse\n263725,horse\n263726,deer\n263727,frog\n263728,truck\n263729,deer\n263730,frog\n263731,frog\n263732,airplane\n263733,ship\n263734,horse\n263735,ship\n263736,horse\n263737,automobile\n263738,automobile\n263739,ship\n263740,truck\n263741,dog\n263742,automobile\n263743,horse\n263744,frog\n263745,dog\n263746,horse\n263747,frog\n263748,ship\n263749,ship\n263750,dog\n263751,bird\n263752,horse\n263753,horse\n263754,truck\n263755,horse\n263756,cat\n263757,dog\n263758,cat\n263759,ship\n263760,dog\n263761,deer\n263762,ship\n263763,cat\n263764,deer\n263765,horse\n263766,ship\n263767,dog\n263768,airplane\n263769,frog\n263770,dog\n263771,dog\n263772,ship\n263773,bird\n263774,cat\n263775,truck\n263776,frog\n263777,cat\n263778,horse\n263779,ship\n263780,deer\n263781,frog\n263782,horse\n263783,cat\n263784,horse\n263785,cat\n263786,bird\n263787,ship\n263788,deer\n263789,bird\n263790,deer\n263791,cat\n263792,horse\n263793,horse\n263794,truck\n263795,cat\n263796,automobile\n263797,airplane\n263798,horse\n263799,cat\n263800,deer\n263801,dog\n263802,airplane\n263803,cat\n263804,dog\n263805,ship\n263806,horse\n263807,horse\n263808,horse\n263809,cat\n263810,horse\n263811,dog\n263812,horse\n263813,cat\n263814,deer\n263815,frog\n263816,airplane\n263817,deer\n263818,truck\n263819,automobile\n263820,bird\n263821,deer\n263822,deer\n263823,cat\n263824,horse\n263825,ship\n263826,truck\n263827,dog\n263828,deer\n263829,frog\n263830,cat\n263831,bird\n263832,truck\n263833,airplane\n263834,bird\n263835,cat\n263836,automobile\n263837,frog\n263838,bird\n263839,automobile\n263840,bird\n263841,ship\n263842,truck\n263843,dog\n263844,horse\n263845,deer\n263846,frog\n263847,airplane\n263848,airplane\n263849,automobile\n263850,horse\n263851,truck\n263852,deer\n263853,frog\n263854,horse\n263855,bird\n263856,deer\n263857,bird\n263858,airplane\n263859,deer\n263860,deer\n263861,cat\n263862,frog\n263863,airplane\n263864,deer\n263865,dog\n263866,truck\n263867,horse\n263868,cat\n263869,ship\n263870,deer\n263871,truck\n263872,dog\n263873,truck\n263874,deer\n263875,dog\n263876,dog\n263877,horse\n263878,dog\n263879,deer\n263880,cat\n263881,airplane\n263882,bird\n263883,cat\n263884,horse\n263885,deer\n263886,bird\n263887,automobile\n263888,bird\n263889,bird\n263890,bird\n263891,deer\n263892,deer\n263893,horse\n263894,bird\n263895,cat\n263896,frog\n263897,frog\n263898,ship\n263899,cat\n263900,frog\n263901,airplane\n263902,airplane\n263903,deer\n263904,cat\n263905,frog\n263906,dog\n263907,airplane\n263908,bird\n263909,truck\n263910,dog\n263911,truck\n263912,dog\n263913,truck\n263914,airplane\n263915,frog\n263916,airplane\n263917,horse\n263918,frog\n263919,bird\n263920,automobile\n263921,dog\n263922,frog\n263923,airplane\n263924,truck\n263925,cat\n263926,deer\n263927,bird\n263928,frog\n263929,frog\n263930,frog\n263931,frog\n263932,ship\n263933,cat\n263934,ship\n263935,deer\n263936,bird\n263937,truck\n263938,horse\n263939,truck\n263940,automobile\n263941,horse\n263942,truck\n263943,deer\n263944,truck\n263945,truck\n263946,cat\n263947,airplane\n263948,frog\n263949,automobile\n263950,deer\n263951,bird\n263952,ship\n263953,horse\n263954,horse\n263955,ship\n263956,deer\n263957,ship\n263958,ship\n263959,horse\n263960,dog\n263961,frog\n263962,automobile\n263963,dog\n263964,bird\n263965,cat\n263966,bird\n263967,deer\n263968,dog\n263969,ship\n263970,cat\n263971,cat\n263972,dog\n263973,automobile\n263974,truck\n263975,truck\n263976,frog\n263977,cat\n263978,deer\n263979,bird\n263980,cat\n263981,airplane\n263982,frog\n263983,bird\n263984,dog\n263985,dog\n263986,deer\n263987,airplane\n263988,cat\n263989,frog\n263990,truck\n263991,bird\n263992,frog\n263993,truck\n263994,cat\n263995,deer\n263996,truck\n263997,cat\n263998,automobile\n263999,automobile\n264000,deer\n264001,horse\n264002,truck\n264003,dog\n264004,cat\n264005,horse\n264006,ship\n264007,cat\n264008,dog\n264009,truck\n264010,cat\n264011,cat\n264012,bird\n264013,frog\n264014,frog\n264015,dog\n264016,deer\n264017,deer\n264018,airplane\n264019,cat\n264020,frog\n264021,truck\n264022,airplane\n264023,ship\n264024,truck\n264025,truck\n264026,horse\n264027,deer\n264028,frog\n264029,horse\n264030,cat\n264031,frog\n264032,truck\n264033,bird\n264034,cat\n264035,airplane\n264036,deer\n264037,airplane\n264038,deer\n264039,automobile\n264040,cat\n264041,airplane\n264042,truck\n264043,dog\n264044,cat\n264045,dog\n264046,horse\n264047,deer\n264048,automobile\n264049,cat\n264050,bird\n264051,dog\n264052,truck\n264053,truck\n264054,deer\n264055,truck\n264056,deer\n264057,frog\n264058,cat\n264059,bird\n264060,frog\n264061,airplane\n264062,horse\n264063,cat\n264064,automobile\n264065,cat\n264066,ship\n264067,dog\n264068,deer\n264069,truck\n264070,dog\n264071,truck\n264072,cat\n264073,automobile\n264074,bird\n264075,bird\n264076,cat\n264077,airplane\n264078,horse\n264079,ship\n264080,frog\n264081,bird\n264082,cat\n264083,truck\n264084,dog\n264085,truck\n264086,frog\n264087,ship\n264088,cat\n264089,automobile\n264090,deer\n264091,dog\n264092,ship\n264093,dog\n264094,frog\n264095,frog\n264096,automobile\n264097,cat\n264098,truck\n264099,frog\n264100,deer\n264101,cat\n264102,cat\n264103,horse\n264104,horse\n264105,automobile\n264106,dog\n264107,airplane\n264108,deer\n264109,cat\n264110,airplane\n264111,airplane\n264112,truck\n264113,automobile\n264114,horse\n264115,airplane\n264116,automobile\n264117,dog\n264118,bird\n264119,dog\n264120,deer\n264121,ship\n264122,deer\n264123,deer\n264124,bird\n264125,ship\n264126,cat\n264127,deer\n264128,horse\n264129,frog\n264130,ship\n264131,truck\n264132,deer\n264133,ship\n264134,airplane\n264135,automobile\n264136,cat\n264137,deer\n264138,deer\n264139,deer\n264140,dog\n264141,truck\n264142,deer\n264143,horse\n264144,ship\n264145,airplane\n264146,deer\n264147,horse\n264148,horse\n264149,horse\n264150,dog\n264151,frog\n264152,airplane\n264153,dog\n264154,frog\n264155,ship\n264156,automobile\n264157,automobile\n264158,horse\n264159,automobile\n264160,ship\n264161,truck\n264162,ship\n264163,bird\n264164,dog\n264165,airplane\n264166,dog\n264167,ship\n264168,horse\n264169,bird\n264170,dog\n264171,airplane\n264172,bird\n264173,horse\n264174,airplane\n264175,horse\n264176,bird\n264177,truck\n264178,horse\n264179,horse\n264180,dog\n264181,automobile\n264182,deer\n264183,automobile\n264184,bird\n264185,deer\n264186,automobile\n264187,ship\n264188,cat\n264189,automobile\n264190,frog\n264191,horse\n264192,airplane\n264193,ship\n264194,bird\n264195,dog\n264196,frog\n264197,cat\n264198,frog\n264199,deer\n264200,dog\n264201,cat\n264202,frog\n264203,automobile\n264204,automobile\n264205,deer\n264206,airplane\n264207,airplane\n264208,cat\n264209,truck\n264210,horse\n264211,airplane\n264212,dog\n264213,horse\n264214,airplane\n264215,dog\n264216,frog\n264217,deer\n264218,dog\n264219,truck\n264220,frog\n264221,deer\n264222,bird\n264223,cat\n264224,frog\n264225,frog\n264226,automobile\n264227,airplane\n264228,truck\n264229,deer\n264230,truck\n264231,frog\n264232,dog\n264233,truck\n264234,bird\n264235,cat\n264236,cat\n264237,truck\n264238,deer\n264239,airplane\n264240,deer\n264241,airplane\n264242,deer\n264243,cat\n264244,cat\n264245,frog\n264246,truck\n264247,cat\n264248,airplane\n264249,horse\n264250,airplane\n264251,cat\n264252,bird\n264253,deer\n264254,dog\n264255,dog\n264256,truck\n264257,dog\n264258,horse\n264259,ship\n264260,automobile\n264261,ship\n264262,truck\n264263,truck\n264264,truck\n264265,ship\n264266,airplane\n264267,deer\n264268,frog\n264269,deer\n264270,dog\n264271,truck\n264272,automobile\n264273,frog\n264274,airplane\n264275,ship\n264276,dog\n264277,airplane\n264278,cat\n264279,deer\n264280,horse\n264281,horse\n264282,cat\n264283,cat\n264284,horse\n264285,truck\n264286,cat\n264287,bird\n264288,automobile\n264289,bird\n264290,deer\n264291,deer\n264292,deer\n264293,automobile\n264294,horse\n264295,horse\n264296,horse\n264297,automobile\n264298,bird\n264299,dog\n264300,truck\n264301,automobile\n264302,ship\n264303,automobile\n264304,bird\n264305,airplane\n264306,bird\n264307,truck\n264308,bird\n264309,cat\n264310,automobile\n264311,horse\n264312,automobile\n264313,dog\n264314,automobile\n264315,ship\n264316,airplane\n264317,bird\n264318,cat\n264319,bird\n264320,frog\n264321,dog\n264322,ship\n264323,deer\n264324,automobile\n264325,airplane\n264326,bird\n264327,automobile\n264328,automobile\n264329,frog\n264330,frog\n264331,deer\n264332,dog\n264333,horse\n264334,cat\n264335,horse\n264336,deer\n264337,deer\n264338,deer\n264339,deer\n264340,airplane\n264341,ship\n264342,airplane\n264343,cat\n264344,cat\n264345,truck\n264346,frog\n264347,deer\n264348,frog\n264349,frog\n264350,frog\n264351,dog\n264352,ship\n264353,ship\n264354,truck\n264355,cat\n264356,horse\n264357,frog\n264358,dog\n264359,automobile\n264360,horse\n264361,deer\n264362,deer\n264363,deer\n264364,deer\n264365,deer\n264366,frog\n264367,cat\n264368,truck\n264369,truck\n264370,truck\n264371,bird\n264372,deer\n264373,deer\n264374,dog\n264375,ship\n264376,deer\n264377,cat\n264378,cat\n264379,cat\n264380,frog\n264381,horse\n264382,horse\n264383,deer\n264384,truck\n264385,truck\n264386,automobile\n264387,truck\n264388,airplane\n264389,deer\n264390,truck\n264391,automobile\n264392,ship\n264393,ship\n264394,truck\n264395,dog\n264396,cat\n264397,ship\n264398,airplane\n264399,frog\n264400,ship\n264401,airplane\n264402,cat\n264403,truck\n264404,horse\n264405,deer\n264406,truck\n264407,bird\n264408,cat\n264409,ship\n264410,automobile\n264411,cat\n264412,frog\n264413,frog\n264414,ship\n264415,airplane\n264416,bird\n264417,frog\n264418,deer\n264419,bird\n264420,truck\n264421,frog\n264422,cat\n264423,cat\n264424,ship\n264425,deer\n264426,deer\n264427,deer\n264428,airplane\n264429,truck\n264430,horse\n264431,ship\n264432,deer\n264433,ship\n264434,deer\n264435,truck\n264436,airplane\n264437,truck\n264438,deer\n264439,cat\n264440,dog\n264441,frog\n264442,automobile\n264443,airplane\n264444,cat\n264445,deer\n264446,frog\n264447,automobile\n264448,dog\n264449,dog\n264450,deer\n264451,truck\n264452,cat\n264453,horse\n264454,airplane\n264455,airplane\n264456,truck\n264457,horse\n264458,frog\n264459,bird\n264460,dog\n264461,dog\n264462,cat\n264463,horse\n264464,cat\n264465,dog\n264466,horse\n264467,truck\n264468,dog\n264469,bird\n264470,automobile\n264471,ship\n264472,bird\n264473,ship\n264474,cat\n264475,automobile\n264476,frog\n264477,horse\n264478,cat\n264479,deer\n264480,dog\n264481,automobile\n264482,bird\n264483,truck\n264484,horse\n264485,automobile\n264486,automobile\n264487,ship\n264488,deer\n264489,frog\n264490,truck\n264491,ship\n264492,truck\n264493,cat\n264494,deer\n264495,truck\n264496,airplane\n264497,automobile\n264498,deer\n264499,bird\n264500,cat\n264501,dog\n264502,airplane\n264503,airplane\n264504,cat\n264505,ship\n264506,automobile\n264507,frog\n264508,dog\n264509,truck\n264510,horse\n264511,frog\n264512,ship\n264513,horse\n264514,dog\n264515,automobile\n264516,airplane\n264517,frog\n264518,cat\n264519,cat\n264520,bird\n264521,airplane\n264522,horse\n264523,dog\n264524,automobile\n264525,deer\n264526,deer\n264527,airplane\n264528,horse\n264529,frog\n264530,truck\n264531,dog\n264532,frog\n264533,bird\n264534,horse\n264535,ship\n264536,automobile\n264537,truck\n264538,horse\n264539,bird\n264540,dog\n264541,ship\n264542,automobile\n264543,dog\n264544,ship\n264545,airplane\n264546,automobile\n264547,cat\n264548,deer\n264549,horse\n264550,ship\n264551,horse\n264552,cat\n264553,airplane\n264554,deer\n264555,airplane\n264556,dog\n264557,cat\n264558,bird\n264559,cat\n264560,dog\n264561,dog\n264562,ship\n264563,frog\n264564,airplane\n264565,bird\n264566,frog\n264567,dog\n264568,airplane\n264569,deer\n264570,cat\n264571,automobile\n264572,frog\n264573,horse\n264574,dog\n264575,automobile\n264576,truck\n264577,frog\n264578,truck\n264579,dog\n264580,frog\n264581,dog\n264582,frog\n264583,horse\n264584,dog\n264585,deer\n264586,automobile\n264587,dog\n264588,airplane\n264589,dog\n264590,airplane\n264591,automobile\n264592,bird\n264593,truck\n264594,cat\n264595,automobile\n264596,ship\n264597,airplane\n264598,horse\n264599,bird\n264600,deer\n264601,airplane\n264602,truck\n264603,cat\n264604,dog\n264605,deer\n264606,frog\n264607,frog\n264608,bird\n264609,automobile\n264610,truck\n264611,bird\n264612,frog\n264613,automobile\n264614,airplane\n264615,ship\n264616,horse\n264617,automobile\n264618,deer\n264619,horse\n264620,cat\n264621,bird\n264622,airplane\n264623,ship\n264624,automobile\n264625,cat\n264626,deer\n264627,horse\n264628,deer\n264629,deer\n264630,truck\n264631,dog\n264632,horse\n264633,dog\n264634,automobile\n264635,bird\n264636,airplane\n264637,truck\n264638,automobile\n264639,truck\n264640,truck\n264641,cat\n264642,truck\n264643,ship\n264644,dog\n264645,horse\n264646,automobile\n264647,cat\n264648,cat\n264649,frog\n264650,cat\n264651,horse\n264652,frog\n264653,bird\n264654,cat\n264655,frog\n264656,truck\n264657,deer\n264658,airplane\n264659,automobile\n264660,dog\n264661,frog\n264662,truck\n264663,ship\n264664,cat\n264665,frog\n264666,ship\n264667,deer\n264668,dog\n264669,bird\n264670,airplane\n264671,deer\n264672,deer\n264673,dog\n264674,bird\n264675,deer\n264676,truck\n264677,truck\n264678,ship\n264679,dog\n264680,ship\n264681,frog\n264682,horse\n264683,dog\n264684,dog\n264685,ship\n264686,dog\n264687,deer\n264688,cat\n264689,dog\n264690,frog\n264691,deer\n264692,frog\n264693,deer\n264694,truck\n264695,horse\n264696,horse\n264697,truck\n264698,bird\n264699,dog\n264700,cat\n264701,bird\n264702,cat\n264703,deer\n264704,automobile\n264705,airplane\n264706,airplane\n264707,automobile\n264708,frog\n264709,horse\n264710,automobile\n264711,deer\n264712,frog\n264713,dog\n264714,horse\n264715,dog\n264716,bird\n264717,automobile\n264718,frog\n264719,deer\n264720,cat\n264721,airplane\n264722,bird\n264723,automobile\n264724,cat\n264725,ship\n264726,cat\n264727,cat\n264728,deer\n264729,frog\n264730,airplane\n264731,bird\n264732,airplane\n264733,cat\n264734,truck\n264735,dog\n264736,dog\n264737,ship\n264738,airplane\n264739,horse\n264740,deer\n264741,cat\n264742,dog\n264743,horse\n264744,automobile\n264745,bird\n264746,horse\n264747,deer\n264748,cat\n264749,airplane\n264750,dog\n264751,ship\n264752,frog\n264753,ship\n264754,automobile\n264755,automobile\n264756,cat\n264757,automobile\n264758,cat\n264759,ship\n264760,bird\n264761,deer\n264762,deer\n264763,frog\n264764,deer\n264765,frog\n264766,cat\n264767,airplane\n264768,cat\n264769,dog\n264770,truck\n264771,cat\n264772,horse\n264773,frog\n264774,automobile\n264775,truck\n264776,dog\n264777,deer\n264778,bird\n264779,truck\n264780,truck\n264781,frog\n264782,airplane\n264783,deer\n264784,bird\n264785,ship\n264786,truck\n264787,horse\n264788,frog\n264789,deer\n264790,frog\n264791,bird\n264792,horse\n264793,airplane\n264794,ship\n264795,cat\n264796,dog\n264797,bird\n264798,automobile\n264799,cat\n264800,cat\n264801,airplane\n264802,cat\n264803,deer\n264804,dog\n264805,airplane\n264806,truck\n264807,ship\n264808,automobile\n264809,dog\n264810,ship\n264811,automobile\n264812,frog\n264813,ship\n264814,automobile\n264815,cat\n264816,automobile\n264817,cat\n264818,cat\n264819,bird\n264820,deer\n264821,deer\n264822,cat\n264823,deer\n264824,truck\n264825,ship\n264826,cat\n264827,dog\n264828,frog\n264829,automobile\n264830,bird\n264831,automobile\n264832,dog\n264833,bird\n264834,horse\n264835,bird\n264836,dog\n264837,cat\n264838,horse\n264839,cat\n264840,airplane\n264841,dog\n264842,deer\n264843,truck\n264844,cat\n264845,ship\n264846,horse\n264847,bird\n264848,cat\n264849,dog\n264850,automobile\n264851,truck\n264852,cat\n264853,airplane\n264854,airplane\n264855,automobile\n264856,cat\n264857,frog\n264858,deer\n264859,dog\n264860,cat\n264861,horse\n264862,truck\n264863,truck\n264864,bird\n264865,ship\n264866,bird\n264867,truck\n264868,airplane\n264869,cat\n264870,airplane\n264871,ship\n264872,dog\n264873,cat\n264874,dog\n264875,frog\n264876,frog\n264877,truck\n264878,bird\n264879,ship\n264880,deer\n264881,airplane\n264882,automobile\n264883,deer\n264884,cat\n264885,deer\n264886,airplane\n264887,cat\n264888,dog\n264889,cat\n264890,deer\n264891,frog\n264892,dog\n264893,frog\n264894,dog\n264895,ship\n264896,cat\n264897,bird\n264898,horse\n264899,airplane\n264900,bird\n264901,dog\n264902,ship\n264903,truck\n264904,bird\n264905,cat\n264906,airplane\n264907,deer\n264908,dog\n264909,horse\n264910,deer\n264911,cat\n264912,airplane\n264913,frog\n264914,horse\n264915,cat\n264916,truck\n264917,truck\n264918,bird\n264919,horse\n264920,cat\n264921,cat\n264922,frog\n264923,frog\n264924,deer\n264925,cat\n264926,cat\n264927,ship\n264928,airplane\n264929,dog\n264930,automobile\n264931,dog\n264932,truck\n264933,frog\n264934,horse\n264935,deer\n264936,cat\n264937,deer\n264938,ship\n264939,automobile\n264940,truck\n264941,frog\n264942,horse\n264943,frog\n264944,cat\n264945,deer\n264946,airplane\n264947,ship\n264948,frog\n264949,ship\n264950,cat\n264951,airplane\n264952,ship\n264953,horse\n264954,cat\n264955,airplane\n264956,airplane\n264957,automobile\n264958,automobile\n264959,bird\n264960,horse\n264961,horse\n264962,ship\n264963,frog\n264964,horse\n264965,airplane\n264966,frog\n264967,cat\n264968,cat\n264969,horse\n264970,horse\n264971,horse\n264972,dog\n264973,bird\n264974,dog\n264975,horse\n264976,bird\n264977,horse\n264978,horse\n264979,bird\n264980,frog\n264981,airplane\n264982,horse\n264983,deer\n264984,bird\n264985,cat\n264986,airplane\n264987,horse\n264988,horse\n264989,dog\n264990,truck\n264991,airplane\n264992,automobile\n264993,cat\n264994,ship\n264995,automobile\n264996,horse\n264997,frog\n264998,dog\n264999,cat\n265000,deer\n265001,ship\n265002,dog\n265003,truck\n265004,cat\n265005,frog\n265006,horse\n265007,cat\n265008,frog\n265009,airplane\n265010,dog\n265011,ship\n265012,truck\n265013,horse\n265014,frog\n265015,bird\n265016,bird\n265017,truck\n265018,airplane\n265019,truck\n265020,bird\n265021,bird\n265022,bird\n265023,dog\n265024,dog\n265025,cat\n265026,airplane\n265027,frog\n265028,dog\n265029,frog\n265030,bird\n265031,frog\n265032,truck\n265033,bird\n265034,frog\n265035,ship\n265036,ship\n265037,frog\n265038,ship\n265039,airplane\n265040,automobile\n265041,automobile\n265042,horse\n265043,ship\n265044,truck\n265045,truck\n265046,horse\n265047,airplane\n265048,airplane\n265049,ship\n265050,automobile\n265051,cat\n265052,horse\n265053,automobile\n265054,ship\n265055,ship\n265056,deer\n265057,cat\n265058,airplane\n265059,cat\n265060,airplane\n265061,frog\n265062,airplane\n265063,dog\n265064,deer\n265065,truck\n265066,frog\n265067,bird\n265068,cat\n265069,ship\n265070,dog\n265071,ship\n265072,deer\n265073,horse\n265074,frog\n265075,cat\n265076,airplane\n265077,airplane\n265078,dog\n265079,horse\n265080,truck\n265081,bird\n265082,dog\n265083,horse\n265084,deer\n265085,frog\n265086,bird\n265087,ship\n265088,automobile\n265089,dog\n265090,horse\n265091,cat\n265092,truck\n265093,bird\n265094,horse\n265095,dog\n265096,horse\n265097,frog\n265098,bird\n265099,ship\n265100,automobile\n265101,cat\n265102,bird\n265103,cat\n265104,truck\n265105,frog\n265106,deer\n265107,deer\n265108,deer\n265109,horse\n265110,ship\n265111,frog\n265112,truck\n265113,frog\n265114,cat\n265115,dog\n265116,deer\n265117,automobile\n265118,truck\n265119,automobile\n265120,automobile\n265121,automobile\n265122,cat\n265123,cat\n265124,horse\n265125,frog\n265126,cat\n265127,frog\n265128,frog\n265129,dog\n265130,deer\n265131,airplane\n265132,frog\n265133,horse\n265134,horse\n265135,ship\n265136,cat\n265137,frog\n265138,airplane\n265139,dog\n265140,ship\n265141,automobile\n265142,horse\n265143,horse\n265144,horse\n265145,deer\n265146,bird\n265147,dog\n265148,truck\n265149,dog\n265150,automobile\n265151,deer\n265152,dog\n265153,deer\n265154,bird\n265155,airplane\n265156,ship\n265157,truck\n265158,truck\n265159,cat\n265160,frog\n265161,dog\n265162,dog\n265163,bird\n265164,frog\n265165,automobile\n265166,ship\n265167,cat\n265168,bird\n265169,horse\n265170,horse\n265171,airplane\n265172,truck\n265173,frog\n265174,automobile\n265175,frog\n265176,deer\n265177,airplane\n265178,dog\n265179,deer\n265180,bird\n265181,deer\n265182,deer\n265183,horse\n265184,cat\n265185,cat\n265186,cat\n265187,airplane\n265188,automobile\n265189,cat\n265190,frog\n265191,frog\n265192,truck\n265193,ship\n265194,cat\n265195,ship\n265196,frog\n265197,frog\n265198,ship\n265199,bird\n265200,airplane\n265201,frog\n265202,frog\n265203,frog\n265204,frog\n265205,airplane\n265206,truck\n265207,cat\n265208,horse\n265209,truck\n265210,truck\n265211,deer\n265212,deer\n265213,deer\n265214,deer\n265215,ship\n265216,horse\n265217,deer\n265218,frog\n265219,cat\n265220,horse\n265221,cat\n265222,dog\n265223,truck\n265224,cat\n265225,cat\n265226,cat\n265227,frog\n265228,airplane\n265229,frog\n265230,dog\n265231,cat\n265232,cat\n265233,automobile\n265234,deer\n265235,cat\n265236,airplane\n265237,deer\n265238,automobile\n265239,horse\n265240,dog\n265241,truck\n265242,truck\n265243,bird\n265244,airplane\n265245,truck\n265246,dog\n265247,cat\n265248,dog\n265249,automobile\n265250,ship\n265251,truck\n265252,dog\n265253,horse\n265254,airplane\n265255,truck\n265256,cat\n265257,dog\n265258,automobile\n265259,truck\n265260,frog\n265261,deer\n265262,horse\n265263,dog\n265264,cat\n265265,airplane\n265266,airplane\n265267,truck\n265268,frog\n265269,automobile\n265270,dog\n265271,bird\n265272,truck\n265273,dog\n265274,deer\n265275,deer\n265276,airplane\n265277,dog\n265278,airplane\n265279,airplane\n265280,truck\n265281,airplane\n265282,deer\n265283,horse\n265284,frog\n265285,bird\n265286,automobile\n265287,automobile\n265288,deer\n265289,deer\n265290,deer\n265291,dog\n265292,airplane\n265293,bird\n265294,bird\n265295,truck\n265296,dog\n265297,deer\n265298,horse\n265299,deer\n265300,cat\n265301,airplane\n265302,horse\n265303,automobile\n265304,horse\n265305,bird\n265306,ship\n265307,airplane\n265308,airplane\n265309,deer\n265310,horse\n265311,truck\n265312,deer\n265313,deer\n265314,horse\n265315,dog\n265316,deer\n265317,deer\n265318,frog\n265319,bird\n265320,horse\n265321,deer\n265322,truck\n265323,deer\n265324,airplane\n265325,deer\n265326,bird\n265327,frog\n265328,truck\n265329,dog\n265330,ship\n265331,frog\n265332,truck\n265333,deer\n265334,frog\n265335,deer\n265336,ship\n265337,cat\n265338,dog\n265339,horse\n265340,horse\n265341,ship\n265342,deer\n265343,frog\n265344,horse\n265345,bird\n265346,airplane\n265347,airplane\n265348,airplane\n265349,frog\n265350,airplane\n265351,truck\n265352,frog\n265353,frog\n265354,frog\n265355,frog\n265356,frog\n265357,ship\n265358,cat\n265359,deer\n265360,truck\n265361,horse\n265362,deer\n265363,frog\n265364,frog\n265365,horse\n265366,truck\n265367,frog\n265368,bird\n265369,frog\n265370,frog\n265371,frog\n265372,airplane\n265373,automobile\n265374,truck\n265375,ship\n265376,deer\n265377,airplane\n265378,cat\n265379,airplane\n265380,bird\n265381,cat\n265382,cat\n265383,bird\n265384,automobile\n265385,cat\n265386,frog\n265387,bird\n265388,dog\n265389,automobile\n265390,deer\n265391,dog\n265392,dog\n265393,bird\n265394,deer\n265395,truck\n265396,bird\n265397,cat\n265398,truck\n265399,dog\n265400,frog\n265401,airplane\n265402,truck\n265403,airplane\n265404,frog\n265405,horse\n265406,bird\n265407,automobile\n265408,automobile\n265409,horse\n265410,horse\n265411,deer\n265412,ship\n265413,ship\n265414,frog\n265415,ship\n265416,airplane\n265417,cat\n265418,automobile\n265419,dog\n265420,horse\n265421,truck\n265422,cat\n265423,frog\n265424,deer\n265425,dog\n265426,bird\n265427,truck\n265428,airplane\n265429,airplane\n265430,truck\n265431,frog\n265432,deer\n265433,automobile\n265434,cat\n265435,automobile\n265436,bird\n265437,horse\n265438,deer\n265439,cat\n265440,ship\n265441,dog\n265442,horse\n265443,ship\n265444,horse\n265445,automobile\n265446,bird\n265447,frog\n265448,cat\n265449,ship\n265450,bird\n265451,deer\n265452,deer\n265453,bird\n265454,cat\n265455,truck\n265456,bird\n265457,cat\n265458,automobile\n265459,frog\n265460,truck\n265461,bird\n265462,dog\n265463,airplane\n265464,airplane\n265465,dog\n265466,dog\n265467,ship\n265468,airplane\n265469,cat\n265470,horse\n265471,horse\n265472,automobile\n265473,ship\n265474,dog\n265475,airplane\n265476,bird\n265477,horse\n265478,truck\n265479,dog\n265480,ship\n265481,deer\n265482,bird\n265483,bird\n265484,cat\n265485,deer\n265486,frog\n265487,deer\n265488,airplane\n265489,bird\n265490,deer\n265491,horse\n265492,truck\n265493,horse\n265494,truck\n265495,bird\n265496,ship\n265497,deer\n265498,bird\n265499,bird\n265500,frog\n265501,truck\n265502,deer\n265503,automobile\n265504,bird\n265505,deer\n265506,deer\n265507,truck\n265508,truck\n265509,automobile\n265510,dog\n265511,deer\n265512,dog\n265513,cat\n265514,ship\n265515,ship\n265516,frog\n265517,deer\n265518,airplane\n265519,ship\n265520,cat\n265521,deer\n265522,deer\n265523,frog\n265524,airplane\n265525,airplane\n265526,frog\n265527,frog\n265528,ship\n265529,bird\n265530,deer\n265531,horse\n265532,cat\n265533,frog\n265534,deer\n265535,deer\n265536,deer\n265537,frog\n265538,frog\n265539,airplane\n265540,cat\n265541,frog\n265542,ship\n265543,dog\n265544,truck\n265545,dog\n265546,bird\n265547,airplane\n265548,dog\n265549,deer\n265550,cat\n265551,automobile\n265552,airplane\n265553,cat\n265554,bird\n265555,horse\n265556,frog\n265557,horse\n265558,truck\n265559,airplane\n265560,frog\n265561,ship\n265562,frog\n265563,truck\n265564,dog\n265565,airplane\n265566,deer\n265567,cat\n265568,airplane\n265569,cat\n265570,cat\n265571,horse\n265572,frog\n265573,automobile\n265574,automobile\n265575,frog\n265576,bird\n265577,frog\n265578,truck\n265579,frog\n265580,ship\n265581,cat\n265582,ship\n265583,horse\n265584,ship\n265585,cat\n265586,ship\n265587,horse\n265588,ship\n265589,truck\n265590,horse\n265591,frog\n265592,deer\n265593,deer\n265594,frog\n265595,bird\n265596,airplane\n265597,cat\n265598,ship\n265599,bird\n265600,truck\n265601,truck\n265602,frog\n265603,dog\n265604,ship\n265605,bird\n265606,cat\n265607,frog\n265608,airplane\n265609,deer\n265610,airplane\n265611,horse\n265612,frog\n265613,horse\n265614,frog\n265615,deer\n265616,airplane\n265617,bird\n265618,automobile\n265619,bird\n265620,airplane\n265621,truck\n265622,automobile\n265623,truck\n265624,automobile\n265625,bird\n265626,deer\n265627,horse\n265628,dog\n265629,truck\n265630,deer\n265631,deer\n265632,dog\n265633,automobile\n265634,frog\n265635,cat\n265636,ship\n265637,truck\n265638,airplane\n265639,horse\n265640,frog\n265641,automobile\n265642,airplane\n265643,frog\n265644,frog\n265645,truck\n265646,cat\n265647,cat\n265648,truck\n265649,dog\n265650,airplane\n265651,deer\n265652,airplane\n265653,horse\n265654,cat\n265655,dog\n265656,deer\n265657,horse\n265658,airplane\n265659,dog\n265660,ship\n265661,cat\n265662,deer\n265663,ship\n265664,deer\n265665,deer\n265666,horse\n265667,truck\n265668,automobile\n265669,horse\n265670,airplane\n265671,horse\n265672,horse\n265673,airplane\n265674,truck\n265675,truck\n265676,ship\n265677,dog\n265678,ship\n265679,deer\n265680,horse\n265681,frog\n265682,deer\n265683,deer\n265684,deer\n265685,dog\n265686,cat\n265687,truck\n265688,truck\n265689,deer\n265690,deer\n265691,horse\n265692,automobile\n265693,cat\n265694,cat\n265695,truck\n265696,frog\n265697,frog\n265698,horse\n265699,deer\n265700,frog\n265701,dog\n265702,frog\n265703,deer\n265704,dog\n265705,deer\n265706,airplane\n265707,automobile\n265708,airplane\n265709,deer\n265710,truck\n265711,cat\n265712,frog\n265713,frog\n265714,cat\n265715,frog\n265716,bird\n265717,horse\n265718,airplane\n265719,frog\n265720,ship\n265721,frog\n265722,bird\n265723,cat\n265724,horse\n265725,ship\n265726,cat\n265727,frog\n265728,horse\n265729,frog\n265730,ship\n265731,cat\n265732,airplane\n265733,automobile\n265734,dog\n265735,automobile\n265736,frog\n265737,ship\n265738,automobile\n265739,deer\n265740,cat\n265741,airplane\n265742,airplane\n265743,ship\n265744,frog\n265745,truck\n265746,truck\n265747,horse\n265748,dog\n265749,ship\n265750,deer\n265751,dog\n265752,horse\n265753,automobile\n265754,deer\n265755,dog\n265756,cat\n265757,automobile\n265758,cat\n265759,automobile\n265760,cat\n265761,frog\n265762,truck\n265763,cat\n265764,automobile\n265765,airplane\n265766,dog\n265767,dog\n265768,cat\n265769,horse\n265770,cat\n265771,deer\n265772,horse\n265773,cat\n265774,automobile\n265775,dog\n265776,cat\n265777,truck\n265778,truck\n265779,deer\n265780,deer\n265781,bird\n265782,frog\n265783,dog\n265784,bird\n265785,cat\n265786,airplane\n265787,dog\n265788,cat\n265789,bird\n265790,cat\n265791,airplane\n265792,cat\n265793,dog\n265794,dog\n265795,deer\n265796,horse\n265797,frog\n265798,truck\n265799,cat\n265800,ship\n265801,bird\n265802,truck\n265803,dog\n265804,cat\n265805,ship\n265806,airplane\n265807,horse\n265808,horse\n265809,dog\n265810,ship\n265811,horse\n265812,horse\n265813,dog\n265814,automobile\n265815,deer\n265816,deer\n265817,ship\n265818,truck\n265819,deer\n265820,cat\n265821,ship\n265822,dog\n265823,horse\n265824,deer\n265825,truck\n265826,truck\n265827,horse\n265828,horse\n265829,truck\n265830,airplane\n265831,dog\n265832,frog\n265833,horse\n265834,dog\n265835,horse\n265836,automobile\n265837,deer\n265838,bird\n265839,automobile\n265840,frog\n265841,automobile\n265842,frog\n265843,bird\n265844,ship\n265845,frog\n265846,automobile\n265847,horse\n265848,truck\n265849,truck\n265850,cat\n265851,airplane\n265852,horse\n265853,horse\n265854,dog\n265855,cat\n265856,truck\n265857,bird\n265858,airplane\n265859,truck\n265860,frog\n265861,truck\n265862,dog\n265863,frog\n265864,automobile\n265865,ship\n265866,ship\n265867,dog\n265868,dog\n265869,automobile\n265870,airplane\n265871,truck\n265872,deer\n265873,bird\n265874,frog\n265875,truck\n265876,horse\n265877,dog\n265878,cat\n265879,airplane\n265880,bird\n265881,deer\n265882,truck\n265883,cat\n265884,dog\n265885,deer\n265886,ship\n265887,deer\n265888,frog\n265889,truck\n265890,truck\n265891,bird\n265892,deer\n265893,ship\n265894,truck\n265895,frog\n265896,deer\n265897,frog\n265898,bird\n265899,deer\n265900,cat\n265901,airplane\n265902,truck\n265903,dog\n265904,truck\n265905,airplane\n265906,deer\n265907,dog\n265908,dog\n265909,cat\n265910,cat\n265911,truck\n265912,frog\n265913,ship\n265914,airplane\n265915,truck\n265916,dog\n265917,airplane\n265918,deer\n265919,dog\n265920,dog\n265921,automobile\n265922,ship\n265923,bird\n265924,deer\n265925,dog\n265926,airplane\n265927,cat\n265928,frog\n265929,deer\n265930,frog\n265931,horse\n265932,horse\n265933,ship\n265934,ship\n265935,frog\n265936,horse\n265937,automobile\n265938,horse\n265939,frog\n265940,cat\n265941,airplane\n265942,truck\n265943,cat\n265944,bird\n265945,cat\n265946,truck\n265947,dog\n265948,airplane\n265949,truck\n265950,ship\n265951,ship\n265952,horse\n265953,ship\n265954,frog\n265955,dog\n265956,bird\n265957,automobile\n265958,ship\n265959,frog\n265960,deer\n265961,airplane\n265962,dog\n265963,dog\n265964,deer\n265965,deer\n265966,frog\n265967,ship\n265968,horse\n265969,ship\n265970,horse\n265971,frog\n265972,deer\n265973,airplane\n265974,frog\n265975,truck\n265976,cat\n265977,bird\n265978,truck\n265979,automobile\n265980,bird\n265981,dog\n265982,truck\n265983,bird\n265984,frog\n265985,bird\n265986,automobile\n265987,airplane\n265988,truck\n265989,dog\n265990,frog\n265991,frog\n265992,cat\n265993,deer\n265994,deer\n265995,truck\n265996,dog\n265997,deer\n265998,cat\n265999,horse\n266000,dog\n266001,dog\n266002,ship\n266003,deer\n266004,truck\n266005,frog\n266006,frog\n266007,dog\n266008,dog\n266009,horse\n266010,horse\n266011,deer\n266012,deer\n266013,deer\n266014,dog\n266015,frog\n266016,frog\n266017,automobile\n266018,dog\n266019,deer\n266020,automobile\n266021,automobile\n266022,horse\n266023,automobile\n266024,airplane\n266025,truck\n266026,deer\n266027,deer\n266028,cat\n266029,automobile\n266030,cat\n266031,automobile\n266032,automobile\n266033,cat\n266034,cat\n266035,cat\n266036,truck\n266037,automobile\n266038,truck\n266039,cat\n266040,bird\n266041,frog\n266042,airplane\n266043,horse\n266044,horse\n266045,bird\n266046,ship\n266047,deer\n266048,deer\n266049,ship\n266050,cat\n266051,cat\n266052,automobile\n266053,dog\n266054,horse\n266055,bird\n266056,ship\n266057,bird\n266058,airplane\n266059,frog\n266060,truck\n266061,truck\n266062,dog\n266063,ship\n266064,dog\n266065,automobile\n266066,cat\n266067,horse\n266068,truck\n266069,horse\n266070,automobile\n266071,truck\n266072,deer\n266073,truck\n266074,truck\n266075,bird\n266076,horse\n266077,ship\n266078,deer\n266079,frog\n266080,deer\n266081,truck\n266082,ship\n266083,frog\n266084,airplane\n266085,horse\n266086,cat\n266087,horse\n266088,frog\n266089,truck\n266090,airplane\n266091,ship\n266092,bird\n266093,truck\n266094,bird\n266095,truck\n266096,bird\n266097,bird\n266098,cat\n266099,airplane\n266100,frog\n266101,dog\n266102,dog\n266103,dog\n266104,horse\n266105,cat\n266106,cat\n266107,cat\n266108,cat\n266109,cat\n266110,airplane\n266111,dog\n266112,airplane\n266113,automobile\n266114,deer\n266115,horse\n266116,ship\n266117,truck\n266118,frog\n266119,dog\n266120,truck\n266121,deer\n266122,airplane\n266123,deer\n266124,bird\n266125,ship\n266126,truck\n266127,horse\n266128,bird\n266129,cat\n266130,truck\n266131,frog\n266132,frog\n266133,frog\n266134,truck\n266135,cat\n266136,horse\n266137,automobile\n266138,airplane\n266139,truck\n266140,cat\n266141,cat\n266142,cat\n266143,cat\n266144,cat\n266145,truck\n266146,truck\n266147,truck\n266148,automobile\n266149,bird\n266150,airplane\n266151,deer\n266152,cat\n266153,deer\n266154,ship\n266155,frog\n266156,horse\n266157,truck\n266158,deer\n266159,deer\n266160,cat\n266161,truck\n266162,frog\n266163,deer\n266164,dog\n266165,ship\n266166,automobile\n266167,truck\n266168,ship\n266169,automobile\n266170,frog\n266171,deer\n266172,bird\n266173,cat\n266174,truck\n266175,dog\n266176,frog\n266177,dog\n266178,horse\n266179,dog\n266180,horse\n266181,cat\n266182,ship\n266183,ship\n266184,horse\n266185,cat\n266186,frog\n266187,cat\n266188,cat\n266189,frog\n266190,cat\n266191,cat\n266192,horse\n266193,cat\n266194,airplane\n266195,airplane\n266196,bird\n266197,horse\n266198,dog\n266199,truck\n266200,automobile\n266201,cat\n266202,dog\n266203,truck\n266204,dog\n266205,truck\n266206,airplane\n266207,dog\n266208,cat\n266209,automobile\n266210,dog\n266211,deer\n266212,frog\n266213,cat\n266214,airplane\n266215,truck\n266216,bird\n266217,truck\n266218,horse\n266219,dog\n266220,dog\n266221,frog\n266222,horse\n266223,deer\n266224,cat\n266225,automobile\n266226,truck\n266227,automobile\n266228,bird\n266229,airplane\n266230,cat\n266231,deer\n266232,truck\n266233,deer\n266234,truck\n266235,frog\n266236,deer\n266237,automobile\n266238,ship\n266239,cat\n266240,frog\n266241,cat\n266242,bird\n266243,frog\n266244,cat\n266245,ship\n266246,bird\n266247,frog\n266248,dog\n266249,dog\n266250,cat\n266251,truck\n266252,airplane\n266253,dog\n266254,cat\n266255,truck\n266256,bird\n266257,airplane\n266258,frog\n266259,horse\n266260,truck\n266261,airplane\n266262,dog\n266263,dog\n266264,cat\n266265,ship\n266266,horse\n266267,automobile\n266268,deer\n266269,automobile\n266270,truck\n266271,truck\n266272,frog\n266273,airplane\n266274,ship\n266275,deer\n266276,ship\n266277,truck\n266278,cat\n266279,cat\n266280,frog\n266281,bird\n266282,airplane\n266283,deer\n266284,bird\n266285,ship\n266286,cat\n266287,ship\n266288,cat\n266289,bird\n266290,bird\n266291,deer\n266292,frog\n266293,bird\n266294,frog\n266295,cat\n266296,automobile\n266297,ship\n266298,cat\n266299,cat\n266300,ship\n266301,airplane\n266302,airplane\n266303,airplane\n266304,cat\n266305,automobile\n266306,automobile\n266307,horse\n266308,deer\n266309,truck\n266310,cat\n266311,cat\n266312,horse\n266313,frog\n266314,deer\n266315,frog\n266316,cat\n266317,deer\n266318,horse\n266319,horse\n266320,truck\n266321,ship\n266322,cat\n266323,frog\n266324,ship\n266325,cat\n266326,airplane\n266327,cat\n266328,ship\n266329,dog\n266330,truck\n266331,dog\n266332,frog\n266333,deer\n266334,ship\n266335,deer\n266336,deer\n266337,deer\n266338,bird\n266339,dog\n266340,automobile\n266341,automobile\n266342,dog\n266343,frog\n266344,automobile\n266345,frog\n266346,frog\n266347,deer\n266348,frog\n266349,truck\n266350,deer\n266351,cat\n266352,frog\n266353,bird\n266354,deer\n266355,cat\n266356,frog\n266357,ship\n266358,horse\n266359,deer\n266360,dog\n266361,cat\n266362,deer\n266363,cat\n266364,deer\n266365,cat\n266366,horse\n266367,airplane\n266368,deer\n266369,truck\n266370,truck\n266371,cat\n266372,cat\n266373,bird\n266374,bird\n266375,cat\n266376,dog\n266377,truck\n266378,cat\n266379,deer\n266380,cat\n266381,dog\n266382,truck\n266383,truck\n266384,airplane\n266385,frog\n266386,frog\n266387,truck\n266388,automobile\n266389,automobile\n266390,ship\n266391,bird\n266392,bird\n266393,cat\n266394,cat\n266395,cat\n266396,dog\n266397,airplane\n266398,truck\n266399,bird\n266400,truck\n266401,dog\n266402,frog\n266403,cat\n266404,ship\n266405,truck\n266406,airplane\n266407,horse\n266408,airplane\n266409,frog\n266410,dog\n266411,dog\n266412,frog\n266413,truck\n266414,deer\n266415,cat\n266416,airplane\n266417,deer\n266418,bird\n266419,cat\n266420,horse\n266421,bird\n266422,cat\n266423,horse\n266424,bird\n266425,cat\n266426,dog\n266427,ship\n266428,ship\n266429,horse\n266430,deer\n266431,dog\n266432,deer\n266433,truck\n266434,automobile\n266435,truck\n266436,cat\n266437,dog\n266438,bird\n266439,dog\n266440,cat\n266441,airplane\n266442,deer\n266443,deer\n266444,dog\n266445,truck\n266446,cat\n266447,deer\n266448,automobile\n266449,deer\n266450,cat\n266451,deer\n266452,deer\n266453,cat\n266454,cat\n266455,airplane\n266456,deer\n266457,horse\n266458,cat\n266459,frog\n266460,frog\n266461,dog\n266462,bird\n266463,frog\n266464,horse\n266465,dog\n266466,dog\n266467,frog\n266468,deer\n266469,cat\n266470,cat\n266471,truck\n266472,airplane\n266473,truck\n266474,dog\n266475,cat\n266476,airplane\n266477,dog\n266478,horse\n266479,automobile\n266480,cat\n266481,cat\n266482,deer\n266483,bird\n266484,horse\n266485,cat\n266486,bird\n266487,horse\n266488,truck\n266489,frog\n266490,frog\n266491,deer\n266492,ship\n266493,deer\n266494,dog\n266495,truck\n266496,horse\n266497,dog\n266498,frog\n266499,airplane\n266500,bird\n266501,cat\n266502,truck\n266503,airplane\n266504,deer\n266505,truck\n266506,dog\n266507,airplane\n266508,cat\n266509,cat\n266510,cat\n266511,horse\n266512,deer\n266513,dog\n266514,airplane\n266515,horse\n266516,cat\n266517,frog\n266518,dog\n266519,cat\n266520,dog\n266521,bird\n266522,dog\n266523,deer\n266524,airplane\n266525,deer\n266526,ship\n266527,ship\n266528,automobile\n266529,truck\n266530,automobile\n266531,bird\n266532,automobile\n266533,bird\n266534,deer\n266535,dog\n266536,airplane\n266537,truck\n266538,cat\n266539,frog\n266540,deer\n266541,cat\n266542,truck\n266543,horse\n266544,automobile\n266545,ship\n266546,truck\n266547,horse\n266548,dog\n266549,airplane\n266550,frog\n266551,dog\n266552,deer\n266553,truck\n266554,horse\n266555,cat\n266556,horse\n266557,bird\n266558,horse\n266559,horse\n266560,deer\n266561,automobile\n266562,horse\n266563,cat\n266564,dog\n266565,deer\n266566,cat\n266567,dog\n266568,bird\n266569,cat\n266570,cat\n266571,dog\n266572,dog\n266573,ship\n266574,ship\n266575,horse\n266576,ship\n266577,frog\n266578,deer\n266579,ship\n266580,ship\n266581,dog\n266582,cat\n266583,deer\n266584,airplane\n266585,horse\n266586,cat\n266587,frog\n266588,cat\n266589,ship\n266590,frog\n266591,deer\n266592,ship\n266593,cat\n266594,truck\n266595,deer\n266596,frog\n266597,truck\n266598,ship\n266599,deer\n266600,deer\n266601,cat\n266602,ship\n266603,bird\n266604,frog\n266605,cat\n266606,bird\n266607,frog\n266608,truck\n266609,dog\n266610,horse\n266611,cat\n266612,frog\n266613,bird\n266614,cat\n266615,truck\n266616,truck\n266617,deer\n266618,cat\n266619,frog\n266620,truck\n266621,deer\n266622,cat\n266623,frog\n266624,airplane\n266625,cat\n266626,ship\n266627,ship\n266628,deer\n266629,horse\n266630,ship\n266631,cat\n266632,deer\n266633,deer\n266634,deer\n266635,ship\n266636,horse\n266637,deer\n266638,horse\n266639,horse\n266640,truck\n266641,cat\n266642,automobile\n266643,horse\n266644,horse\n266645,cat\n266646,dog\n266647,truck\n266648,horse\n266649,frog\n266650,truck\n266651,frog\n266652,cat\n266653,airplane\n266654,horse\n266655,horse\n266656,bird\n266657,airplane\n266658,dog\n266659,ship\n266660,cat\n266661,dog\n266662,horse\n266663,frog\n266664,deer\n266665,dog\n266666,dog\n266667,deer\n266668,automobile\n266669,dog\n266670,bird\n266671,horse\n266672,bird\n266673,airplane\n266674,deer\n266675,airplane\n266676,cat\n266677,deer\n266678,automobile\n266679,horse\n266680,ship\n266681,cat\n266682,horse\n266683,frog\n266684,dog\n266685,ship\n266686,dog\n266687,truck\n266688,horse\n266689,horse\n266690,airplane\n266691,deer\n266692,bird\n266693,deer\n266694,bird\n266695,cat\n266696,deer\n266697,deer\n266698,horse\n266699,bird\n266700,truck\n266701,ship\n266702,frog\n266703,cat\n266704,bird\n266705,dog\n266706,dog\n266707,cat\n266708,cat\n266709,bird\n266710,cat\n266711,deer\n266712,automobile\n266713,airplane\n266714,cat\n266715,frog\n266716,frog\n266717,airplane\n266718,automobile\n266719,truck\n266720,automobile\n266721,dog\n266722,airplane\n266723,horse\n266724,cat\n266725,bird\n266726,dog\n266727,ship\n266728,ship\n266729,dog\n266730,truck\n266731,frog\n266732,bird\n266733,deer\n266734,deer\n266735,automobile\n266736,ship\n266737,automobile\n266738,bird\n266739,bird\n266740,automobile\n266741,ship\n266742,cat\n266743,automobile\n266744,bird\n266745,ship\n266746,frog\n266747,dog\n266748,cat\n266749,cat\n266750,truck\n266751,frog\n266752,dog\n266753,bird\n266754,airplane\n266755,bird\n266756,frog\n266757,dog\n266758,airplane\n266759,bird\n266760,horse\n266761,horse\n266762,ship\n266763,cat\n266764,airplane\n266765,deer\n266766,airplane\n266767,dog\n266768,deer\n266769,deer\n266770,horse\n266771,airplane\n266772,horse\n266773,airplane\n266774,frog\n266775,cat\n266776,deer\n266777,horse\n266778,cat\n266779,ship\n266780,airplane\n266781,deer\n266782,automobile\n266783,dog\n266784,automobile\n266785,dog\n266786,truck\n266787,cat\n266788,bird\n266789,frog\n266790,deer\n266791,cat\n266792,bird\n266793,automobile\n266794,horse\n266795,deer\n266796,horse\n266797,cat\n266798,dog\n266799,horse\n266800,dog\n266801,bird\n266802,deer\n266803,bird\n266804,bird\n266805,bird\n266806,bird\n266807,cat\n266808,truck\n266809,frog\n266810,deer\n266811,cat\n266812,cat\n266813,bird\n266814,frog\n266815,deer\n266816,dog\n266817,frog\n266818,frog\n266819,automobile\n266820,automobile\n266821,horse\n266822,frog\n266823,bird\n266824,truck\n266825,horse\n266826,cat\n266827,airplane\n266828,bird\n266829,automobile\n266830,truck\n266831,dog\n266832,cat\n266833,cat\n266834,airplane\n266835,deer\n266836,cat\n266837,truck\n266838,truck\n266839,ship\n266840,cat\n266841,automobile\n266842,dog\n266843,ship\n266844,ship\n266845,cat\n266846,cat\n266847,frog\n266848,cat\n266849,frog\n266850,truck\n266851,frog\n266852,bird\n266853,truck\n266854,dog\n266855,deer\n266856,horse\n266857,airplane\n266858,deer\n266859,cat\n266860,bird\n266861,truck\n266862,horse\n266863,frog\n266864,deer\n266865,frog\n266866,horse\n266867,automobile\n266868,truck\n266869,frog\n266870,bird\n266871,bird\n266872,cat\n266873,frog\n266874,truck\n266875,cat\n266876,cat\n266877,bird\n266878,frog\n266879,cat\n266880,dog\n266881,deer\n266882,deer\n266883,ship\n266884,automobile\n266885,cat\n266886,truck\n266887,airplane\n266888,bird\n266889,frog\n266890,deer\n266891,cat\n266892,bird\n266893,automobile\n266894,truck\n266895,frog\n266896,bird\n266897,deer\n266898,ship\n266899,bird\n266900,airplane\n266901,frog\n266902,horse\n266903,automobile\n266904,cat\n266905,airplane\n266906,cat\n266907,deer\n266908,horse\n266909,horse\n266910,frog\n266911,deer\n266912,automobile\n266913,truck\n266914,airplane\n266915,frog\n266916,airplane\n266917,cat\n266918,deer\n266919,bird\n266920,truck\n266921,bird\n266922,ship\n266923,ship\n266924,automobile\n266925,ship\n266926,deer\n266927,cat\n266928,bird\n266929,bird\n266930,deer\n266931,cat\n266932,truck\n266933,ship\n266934,cat\n266935,deer\n266936,bird\n266937,horse\n266938,deer\n266939,dog\n266940,horse\n266941,ship\n266942,bird\n266943,bird\n266944,deer\n266945,horse\n266946,airplane\n266947,dog\n266948,automobile\n266949,automobile\n266950,dog\n266951,horse\n266952,horse\n266953,automobile\n266954,frog\n266955,airplane\n266956,bird\n266957,bird\n266958,deer\n266959,airplane\n266960,cat\n266961,frog\n266962,ship\n266963,dog\n266964,truck\n266965,bird\n266966,dog\n266967,frog\n266968,cat\n266969,cat\n266970,frog\n266971,ship\n266972,truck\n266973,bird\n266974,ship\n266975,horse\n266976,horse\n266977,deer\n266978,horse\n266979,truck\n266980,dog\n266981,truck\n266982,airplane\n266983,frog\n266984,dog\n266985,frog\n266986,frog\n266987,truck\n266988,automobile\n266989,bird\n266990,deer\n266991,deer\n266992,cat\n266993,horse\n266994,bird\n266995,bird\n266996,horse\n266997,horse\n266998,frog\n266999,ship\n267000,deer\n267001,automobile\n267002,truck\n267003,frog\n267004,deer\n267005,truck\n267006,frog\n267007,bird\n267008,frog\n267009,frog\n267010,cat\n267011,cat\n267012,dog\n267013,truck\n267014,automobile\n267015,cat\n267016,deer\n267017,truck\n267018,ship\n267019,truck\n267020,horse\n267021,frog\n267022,ship\n267023,horse\n267024,automobile\n267025,bird\n267026,dog\n267027,horse\n267028,bird\n267029,cat\n267030,deer\n267031,airplane\n267032,dog\n267033,airplane\n267034,deer\n267035,frog\n267036,frog\n267037,horse\n267038,cat\n267039,cat\n267040,ship\n267041,horse\n267042,deer\n267043,deer\n267044,deer\n267045,deer\n267046,dog\n267047,deer\n267048,airplane\n267049,deer\n267050,frog\n267051,cat\n267052,airplane\n267053,horse\n267054,deer\n267055,frog\n267056,deer\n267057,horse\n267058,bird\n267059,automobile\n267060,frog\n267061,frog\n267062,dog\n267063,ship\n267064,deer\n267065,cat\n267066,airplane\n267067,airplane\n267068,cat\n267069,truck\n267070,automobile\n267071,automobile\n267072,truck\n267073,dog\n267074,truck\n267075,frog\n267076,automobile\n267077,cat\n267078,deer\n267079,ship\n267080,horse\n267081,frog\n267082,bird\n267083,airplane\n267084,deer\n267085,frog\n267086,horse\n267087,bird\n267088,ship\n267089,horse\n267090,truck\n267091,bird\n267092,airplane\n267093,dog\n267094,dog\n267095,deer\n267096,frog\n267097,dog\n267098,cat\n267099,frog\n267100,bird\n267101,truck\n267102,horse\n267103,deer\n267104,frog\n267105,cat\n267106,ship\n267107,cat\n267108,deer\n267109,horse\n267110,frog\n267111,frog\n267112,dog\n267113,cat\n267114,airplane\n267115,dog\n267116,frog\n267117,dog\n267118,horse\n267119,horse\n267120,horse\n267121,dog\n267122,deer\n267123,deer\n267124,horse\n267125,deer\n267126,airplane\n267127,cat\n267128,frog\n267129,bird\n267130,ship\n267131,airplane\n267132,frog\n267133,truck\n267134,horse\n267135,truck\n267136,automobile\n267137,frog\n267138,cat\n267139,automobile\n267140,bird\n267141,frog\n267142,truck\n267143,cat\n267144,cat\n267145,cat\n267146,bird\n267147,deer\n267148,dog\n267149,airplane\n267150,horse\n267151,dog\n267152,airplane\n267153,deer\n267154,cat\n267155,cat\n267156,horse\n267157,dog\n267158,deer\n267159,truck\n267160,automobile\n267161,horse\n267162,truck\n267163,ship\n267164,airplane\n267165,airplane\n267166,bird\n267167,deer\n267168,cat\n267169,airplane\n267170,cat\n267171,ship\n267172,bird\n267173,cat\n267174,airplane\n267175,airplane\n267176,airplane\n267177,airplane\n267178,cat\n267179,bird\n267180,cat\n267181,cat\n267182,dog\n267183,cat\n267184,truck\n267185,bird\n267186,dog\n267187,ship\n267188,deer\n267189,ship\n267190,bird\n267191,horse\n267192,cat\n267193,automobile\n267194,cat\n267195,truck\n267196,ship\n267197,frog\n267198,frog\n267199,deer\n267200,frog\n267201,truck\n267202,cat\n267203,truck\n267204,airplane\n267205,automobile\n267206,deer\n267207,horse\n267208,airplane\n267209,ship\n267210,bird\n267211,airplane\n267212,horse\n267213,cat\n267214,horse\n267215,ship\n267216,automobile\n267217,truck\n267218,automobile\n267219,horse\n267220,deer\n267221,dog\n267222,airplane\n267223,bird\n267224,ship\n267225,dog\n267226,horse\n267227,automobile\n267228,airplane\n267229,cat\n267230,cat\n267231,dog\n267232,horse\n267233,cat\n267234,frog\n267235,airplane\n267236,frog\n267237,airplane\n267238,deer\n267239,ship\n267240,bird\n267241,truck\n267242,cat\n267243,horse\n267244,frog\n267245,cat\n267246,automobile\n267247,ship\n267248,cat\n267249,deer\n267250,horse\n267251,frog\n267252,automobile\n267253,bird\n267254,automobile\n267255,ship\n267256,dog\n267257,truck\n267258,bird\n267259,frog\n267260,deer\n267261,dog\n267262,truck\n267263,dog\n267264,frog\n267265,cat\n267266,ship\n267267,truck\n267268,bird\n267269,dog\n267270,frog\n267271,truck\n267272,cat\n267273,cat\n267274,cat\n267275,horse\n267276,deer\n267277,horse\n267278,frog\n267279,dog\n267280,airplane\n267281,bird\n267282,frog\n267283,airplane\n267284,cat\n267285,truck\n267286,dog\n267287,bird\n267288,cat\n267289,automobile\n267290,truck\n267291,dog\n267292,frog\n267293,automobile\n267294,horse\n267295,frog\n267296,truck\n267297,cat\n267298,bird\n267299,bird\n267300,cat\n267301,deer\n267302,deer\n267303,deer\n267304,bird\n267305,truck\n267306,automobile\n267307,frog\n267308,truck\n267309,airplane\n267310,frog\n267311,bird\n267312,dog\n267313,airplane\n267314,cat\n267315,frog\n267316,dog\n267317,horse\n267318,cat\n267319,deer\n267320,deer\n267321,truck\n267322,cat\n267323,cat\n267324,dog\n267325,deer\n267326,dog\n267327,automobile\n267328,airplane\n267329,dog\n267330,truck\n267331,frog\n267332,airplane\n267333,dog\n267334,ship\n267335,bird\n267336,horse\n267337,truck\n267338,deer\n267339,horse\n267340,frog\n267341,dog\n267342,bird\n267343,ship\n267344,deer\n267345,frog\n267346,ship\n267347,frog\n267348,deer\n267349,dog\n267350,deer\n267351,bird\n267352,horse\n267353,frog\n267354,automobile\n267355,frog\n267356,truck\n267357,truck\n267358,horse\n267359,bird\n267360,airplane\n267361,bird\n267362,cat\n267363,dog\n267364,bird\n267365,automobile\n267366,bird\n267367,frog\n267368,horse\n267369,frog\n267370,cat\n267371,cat\n267372,dog\n267373,frog\n267374,horse\n267375,automobile\n267376,airplane\n267377,horse\n267378,truck\n267379,airplane\n267380,frog\n267381,airplane\n267382,cat\n267383,dog\n267384,cat\n267385,horse\n267386,automobile\n267387,horse\n267388,dog\n267389,truck\n267390,cat\n267391,deer\n267392,deer\n267393,ship\n267394,truck\n267395,dog\n267396,bird\n267397,frog\n267398,dog\n267399,bird\n267400,airplane\n267401,horse\n267402,horse\n267403,truck\n267404,truck\n267405,cat\n267406,dog\n267407,ship\n267408,frog\n267409,automobile\n267410,cat\n267411,frog\n267412,deer\n267413,ship\n267414,frog\n267415,frog\n267416,frog\n267417,bird\n267418,cat\n267419,deer\n267420,frog\n267421,frog\n267422,cat\n267423,frog\n267424,bird\n267425,bird\n267426,truck\n267427,airplane\n267428,cat\n267429,horse\n267430,truck\n267431,automobile\n267432,deer\n267433,frog\n267434,bird\n267435,bird\n267436,horse\n267437,frog\n267438,airplane\n267439,dog\n267440,deer\n267441,frog\n267442,frog\n267443,bird\n267444,automobile\n267445,truck\n267446,dog\n267447,bird\n267448,horse\n267449,ship\n267450,truck\n267451,dog\n267452,truck\n267453,deer\n267454,deer\n267455,cat\n267456,cat\n267457,deer\n267458,dog\n267459,frog\n267460,truck\n267461,horse\n267462,frog\n267463,frog\n267464,truck\n267465,airplane\n267466,ship\n267467,airplane\n267468,horse\n267469,automobile\n267470,deer\n267471,dog\n267472,airplane\n267473,cat\n267474,dog\n267475,airplane\n267476,bird\n267477,dog\n267478,bird\n267479,deer\n267480,truck\n267481,dog\n267482,cat\n267483,cat\n267484,cat\n267485,deer\n267486,horse\n267487,airplane\n267488,cat\n267489,truck\n267490,airplane\n267491,automobile\n267492,frog\n267493,deer\n267494,ship\n267495,cat\n267496,cat\n267497,deer\n267498,airplane\n267499,truck\n267500,ship\n267501,dog\n267502,dog\n267503,frog\n267504,bird\n267505,airplane\n267506,deer\n267507,airplane\n267508,horse\n267509,frog\n267510,cat\n267511,airplane\n267512,truck\n267513,truck\n267514,cat\n267515,horse\n267516,deer\n267517,deer\n267518,dog\n267519,cat\n267520,ship\n267521,automobile\n267522,airplane\n267523,horse\n267524,airplane\n267525,cat\n267526,truck\n267527,dog\n267528,cat\n267529,truck\n267530,ship\n267531,airplane\n267532,frog\n267533,cat\n267534,bird\n267535,dog\n267536,dog\n267537,cat\n267538,cat\n267539,horse\n267540,automobile\n267541,frog\n267542,deer\n267543,ship\n267544,dog\n267545,truck\n267546,airplane\n267547,ship\n267548,truck\n267549,airplane\n267550,bird\n267551,deer\n267552,automobile\n267553,automobile\n267554,airplane\n267555,dog\n267556,automobile\n267557,dog\n267558,deer\n267559,horse\n267560,horse\n267561,cat\n267562,ship\n267563,cat\n267564,truck\n267565,bird\n267566,frog\n267567,frog\n267568,truck\n267569,cat\n267570,cat\n267571,automobile\n267572,ship\n267573,bird\n267574,horse\n267575,deer\n267576,truck\n267577,bird\n267578,frog\n267579,horse\n267580,ship\n267581,cat\n267582,frog\n267583,truck\n267584,cat\n267585,deer\n267586,horse\n267587,horse\n267588,airplane\n267589,cat\n267590,dog\n267591,cat\n267592,horse\n267593,bird\n267594,cat\n267595,cat\n267596,deer\n267597,cat\n267598,airplane\n267599,bird\n267600,truck\n267601,frog\n267602,frog\n267603,cat\n267604,dog\n267605,bird\n267606,airplane\n267607,dog\n267608,automobile\n267609,truck\n267610,frog\n267611,frog\n267612,bird\n267613,cat\n267614,deer\n267615,automobile\n267616,truck\n267617,bird\n267618,dog\n267619,ship\n267620,automobile\n267621,truck\n267622,truck\n267623,dog\n267624,horse\n267625,truck\n267626,cat\n267627,cat\n267628,ship\n267629,truck\n267630,horse\n267631,frog\n267632,automobile\n267633,dog\n267634,cat\n267635,dog\n267636,ship\n267637,cat\n267638,automobile\n267639,airplane\n267640,horse\n267641,dog\n267642,horse\n267643,dog\n267644,bird\n267645,dog\n267646,ship\n267647,cat\n267648,airplane\n267649,dog\n267650,horse\n267651,frog\n267652,horse\n267653,cat\n267654,deer\n267655,bird\n267656,airplane\n267657,truck\n267658,cat\n267659,bird\n267660,horse\n267661,ship\n267662,bird\n267663,automobile\n267664,bird\n267665,automobile\n267666,bird\n267667,horse\n267668,automobile\n267669,truck\n267670,deer\n267671,cat\n267672,truck\n267673,truck\n267674,cat\n267675,airplane\n267676,cat\n267677,automobile\n267678,ship\n267679,frog\n267680,deer\n267681,horse\n267682,horse\n267683,horse\n267684,truck\n267685,ship\n267686,horse\n267687,dog\n267688,horse\n267689,automobile\n267690,automobile\n267691,deer\n267692,airplane\n267693,truck\n267694,dog\n267695,dog\n267696,cat\n267697,bird\n267698,airplane\n267699,ship\n267700,deer\n267701,ship\n267702,cat\n267703,airplane\n267704,bird\n267705,truck\n267706,deer\n267707,cat\n267708,cat\n267709,dog\n267710,bird\n267711,horse\n267712,cat\n267713,automobile\n267714,horse\n267715,airplane\n267716,automobile\n267717,deer\n267718,deer\n267719,automobile\n267720,ship\n267721,bird\n267722,deer\n267723,ship\n267724,bird\n267725,frog\n267726,dog\n267727,truck\n267728,horse\n267729,truck\n267730,horse\n267731,airplane\n267732,deer\n267733,airplane\n267734,frog\n267735,cat\n267736,ship\n267737,automobile\n267738,truck\n267739,ship\n267740,deer\n267741,automobile\n267742,dog\n267743,cat\n267744,dog\n267745,cat\n267746,cat\n267747,frog\n267748,horse\n267749,airplane\n267750,ship\n267751,deer\n267752,ship\n267753,truck\n267754,frog\n267755,cat\n267756,horse\n267757,deer\n267758,cat\n267759,horse\n267760,bird\n267761,ship\n267762,airplane\n267763,horse\n267764,truck\n267765,deer\n267766,ship\n267767,horse\n267768,dog\n267769,automobile\n267770,deer\n267771,airplane\n267772,deer\n267773,airplane\n267774,cat\n267775,truck\n267776,airplane\n267777,truck\n267778,frog\n267779,dog\n267780,dog\n267781,automobile\n267782,cat\n267783,cat\n267784,truck\n267785,frog\n267786,dog\n267787,ship\n267788,airplane\n267789,truck\n267790,horse\n267791,cat\n267792,ship\n267793,cat\n267794,bird\n267795,frog\n267796,frog\n267797,dog\n267798,deer\n267799,airplane\n267800,dog\n267801,ship\n267802,horse\n267803,ship\n267804,ship\n267805,automobile\n267806,bird\n267807,horse\n267808,ship\n267809,deer\n267810,horse\n267811,bird\n267812,horse\n267813,ship\n267814,bird\n267815,dog\n267816,horse\n267817,horse\n267818,truck\n267819,truck\n267820,cat\n267821,deer\n267822,ship\n267823,frog\n267824,bird\n267825,airplane\n267826,deer\n267827,deer\n267828,dog\n267829,dog\n267830,frog\n267831,frog\n267832,frog\n267833,truck\n267834,cat\n267835,frog\n267836,airplane\n267837,bird\n267838,ship\n267839,airplane\n267840,dog\n267841,horse\n267842,truck\n267843,dog\n267844,horse\n267845,truck\n267846,horse\n267847,ship\n267848,deer\n267849,deer\n267850,automobile\n267851,cat\n267852,ship\n267853,dog\n267854,airplane\n267855,horse\n267856,horse\n267857,dog\n267858,cat\n267859,truck\n267860,cat\n267861,horse\n267862,cat\n267863,cat\n267864,deer\n267865,cat\n267866,frog\n267867,bird\n267868,airplane\n267869,bird\n267870,automobile\n267871,cat\n267872,automobile\n267873,cat\n267874,airplane\n267875,automobile\n267876,horse\n267877,truck\n267878,deer\n267879,truck\n267880,cat\n267881,deer\n267882,cat\n267883,automobile\n267884,bird\n267885,cat\n267886,bird\n267887,cat\n267888,truck\n267889,deer\n267890,cat\n267891,cat\n267892,cat\n267893,cat\n267894,horse\n267895,cat\n267896,frog\n267897,truck\n267898,airplane\n267899,ship\n267900,bird\n267901,horse\n267902,deer\n267903,automobile\n267904,cat\n267905,bird\n267906,airplane\n267907,dog\n267908,deer\n267909,ship\n267910,frog\n267911,cat\n267912,automobile\n267913,cat\n267914,bird\n267915,automobile\n267916,cat\n267917,truck\n267918,dog\n267919,frog\n267920,cat\n267921,deer\n267922,cat\n267923,truck\n267924,bird\n267925,dog\n267926,dog\n267927,airplane\n267928,dog\n267929,airplane\n267930,automobile\n267931,automobile\n267932,bird\n267933,cat\n267934,cat\n267935,frog\n267936,truck\n267937,truck\n267938,bird\n267939,bird\n267940,horse\n267941,deer\n267942,truck\n267943,frog\n267944,automobile\n267945,horse\n267946,truck\n267947,ship\n267948,bird\n267949,deer\n267950,cat\n267951,truck\n267952,ship\n267953,deer\n267954,dog\n267955,cat\n267956,horse\n267957,horse\n267958,deer\n267959,ship\n267960,dog\n267961,truck\n267962,deer\n267963,frog\n267964,dog\n267965,bird\n267966,horse\n267967,cat\n267968,bird\n267969,frog\n267970,dog\n267971,cat\n267972,ship\n267973,automobile\n267974,dog\n267975,automobile\n267976,truck\n267977,airplane\n267978,ship\n267979,ship\n267980,cat\n267981,airplane\n267982,frog\n267983,cat\n267984,bird\n267985,cat\n267986,deer\n267987,dog\n267988,bird\n267989,horse\n267990,truck\n267991,bird\n267992,cat\n267993,frog\n267994,cat\n267995,automobile\n267996,frog\n267997,airplane\n267998,automobile\n267999,cat\n268000,cat\n268001,dog\n268002,frog\n268003,truck\n268004,automobile\n268005,dog\n268006,bird\n268007,horse\n268008,dog\n268009,airplane\n268010,automobile\n268011,bird\n268012,frog\n268013,frog\n268014,frog\n268015,cat\n268016,deer\n268017,dog\n268018,airplane\n268019,frog\n268020,ship\n268021,deer\n268022,airplane\n268023,ship\n268024,cat\n268025,frog\n268026,deer\n268027,deer\n268028,cat\n268029,horse\n268030,bird\n268031,truck\n268032,truck\n268033,cat\n268034,bird\n268035,horse\n268036,deer\n268037,bird\n268038,horse\n268039,horse\n268040,horse\n268041,airplane\n268042,horse\n268043,ship\n268044,automobile\n268045,frog\n268046,dog\n268047,ship\n268048,airplane\n268049,automobile\n268050,ship\n268051,deer\n268052,automobile\n268053,airplane\n268054,ship\n268055,automobile\n268056,dog\n268057,ship\n268058,truck\n268059,cat\n268060,horse\n268061,airplane\n268062,deer\n268063,deer\n268064,automobile\n268065,truck\n268066,horse\n268067,horse\n268068,airplane\n268069,automobile\n268070,deer\n268071,deer\n268072,deer\n268073,deer\n268074,frog\n268075,deer\n268076,airplane\n268077,frog\n268078,dog\n268079,horse\n268080,dog\n268081,deer\n268082,airplane\n268083,airplane\n268084,frog\n268085,horse\n268086,airplane\n268087,frog\n268088,horse\n268089,truck\n268090,truck\n268091,dog\n268092,airplane\n268093,airplane\n268094,cat\n268095,horse\n268096,bird\n268097,bird\n268098,deer\n268099,horse\n268100,dog\n268101,horse\n268102,bird\n268103,horse\n268104,dog\n268105,automobile\n268106,frog\n268107,horse\n268108,horse\n268109,airplane\n268110,deer\n268111,dog\n268112,bird\n268113,ship\n268114,airplane\n268115,cat\n268116,ship\n268117,ship\n268118,ship\n268119,airplane\n268120,deer\n268121,cat\n268122,dog\n268123,ship\n268124,truck\n268125,truck\n268126,automobile\n268127,truck\n268128,deer\n268129,dog\n268130,ship\n268131,cat\n268132,cat\n268133,frog\n268134,truck\n268135,deer\n268136,truck\n268137,airplane\n268138,dog\n268139,deer\n268140,airplane\n268141,cat\n268142,deer\n268143,airplane\n268144,cat\n268145,bird\n268146,airplane\n268147,truck\n268148,deer\n268149,dog\n268150,horse\n268151,cat\n268152,horse\n268153,truck\n268154,bird\n268155,bird\n268156,automobile\n268157,cat\n268158,frog\n268159,deer\n268160,dog\n268161,bird\n268162,dog\n268163,cat\n268164,deer\n268165,horse\n268166,automobile\n268167,truck\n268168,deer\n268169,horse\n268170,cat\n268171,airplane\n268172,frog\n268173,cat\n268174,frog\n268175,automobile\n268176,automobile\n268177,horse\n268178,cat\n268179,truck\n268180,cat\n268181,automobile\n268182,automobile\n268183,truck\n268184,deer\n268185,frog\n268186,frog\n268187,bird\n268188,frog\n268189,frog\n268190,deer\n268191,dog\n268192,ship\n268193,bird\n268194,ship\n268195,truck\n268196,deer\n268197,bird\n268198,dog\n268199,horse\n268200,deer\n268201,deer\n268202,dog\n268203,horse\n268204,dog\n268205,automobile\n268206,ship\n268207,horse\n268208,horse\n268209,bird\n268210,frog\n268211,cat\n268212,cat\n268213,cat\n268214,ship\n268215,deer\n268216,cat\n268217,frog\n268218,horse\n268219,bird\n268220,deer\n268221,airplane\n268222,truck\n268223,horse\n268224,bird\n268225,bird\n268226,airplane\n268227,cat\n268228,cat\n268229,horse\n268230,automobile\n268231,deer\n268232,ship\n268233,deer\n268234,automobile\n268235,bird\n268236,deer\n268237,truck\n268238,frog\n268239,cat\n268240,horse\n268241,frog\n268242,bird\n268243,bird\n268244,automobile\n268245,cat\n268246,automobile\n268247,cat\n268248,truck\n268249,ship\n268250,frog\n268251,deer\n268252,automobile\n268253,automobile\n268254,deer\n268255,deer\n268256,frog\n268257,cat\n268258,deer\n268259,truck\n268260,deer\n268261,frog\n268262,frog\n268263,airplane\n268264,horse\n268265,automobile\n268266,bird\n268267,bird\n268268,cat\n268269,truck\n268270,frog\n268271,truck\n268272,frog\n268273,automobile\n268274,dog\n268275,deer\n268276,automobile\n268277,horse\n268278,frog\n268279,horse\n268280,bird\n268281,deer\n268282,deer\n268283,horse\n268284,horse\n268285,cat\n268286,cat\n268287,deer\n268288,truck\n268289,deer\n268290,frog\n268291,truck\n268292,bird\n268293,automobile\n268294,truck\n268295,truck\n268296,airplane\n268297,frog\n268298,truck\n268299,frog\n268300,automobile\n268301,dog\n268302,bird\n268303,truck\n268304,ship\n268305,automobile\n268306,dog\n268307,cat\n268308,cat\n268309,cat\n268310,ship\n268311,airplane\n268312,dog\n268313,deer\n268314,dog\n268315,bird\n268316,truck\n268317,dog\n268318,frog\n268319,frog\n268320,bird\n268321,frog\n268322,deer\n268323,truck\n268324,dog\n268325,airplane\n268326,automobile\n268327,dog\n268328,cat\n268329,truck\n268330,dog\n268331,truck\n268332,automobile\n268333,airplane\n268334,bird\n268335,dog\n268336,bird\n268337,deer\n268338,bird\n268339,cat\n268340,dog\n268341,truck\n268342,cat\n268343,horse\n268344,horse\n268345,deer\n268346,ship\n268347,horse\n268348,cat\n268349,cat\n268350,truck\n268351,truck\n268352,frog\n268353,bird\n268354,deer\n268355,cat\n268356,deer\n268357,bird\n268358,frog\n268359,bird\n268360,cat\n268361,dog\n268362,truck\n268363,airplane\n268364,truck\n268365,dog\n268366,cat\n268367,cat\n268368,frog\n268369,deer\n268370,horse\n268371,frog\n268372,truck\n268373,frog\n268374,deer\n268375,truck\n268376,airplane\n268377,automobile\n268378,frog\n268379,truck\n268380,truck\n268381,dog\n268382,airplane\n268383,truck\n268384,airplane\n268385,deer\n268386,cat\n268387,cat\n268388,truck\n268389,bird\n268390,ship\n268391,airplane\n268392,dog\n268393,airplane\n268394,automobile\n268395,bird\n268396,deer\n268397,frog\n268398,ship\n268399,cat\n268400,deer\n268401,dog\n268402,horse\n268403,dog\n268404,cat\n268405,dog\n268406,bird\n268407,cat\n268408,frog\n268409,automobile\n268410,deer\n268411,truck\n268412,deer\n268413,horse\n268414,ship\n268415,airplane\n268416,truck\n268417,truck\n268418,deer\n268419,horse\n268420,automobile\n268421,cat\n268422,airplane\n268423,frog\n268424,dog\n268425,cat\n268426,truck\n268427,ship\n268428,truck\n268429,ship\n268430,cat\n268431,cat\n268432,ship\n268433,dog\n268434,deer\n268435,truck\n268436,cat\n268437,automobile\n268438,horse\n268439,cat\n268440,airplane\n268441,frog\n268442,cat\n268443,deer\n268444,airplane\n268445,automobile\n268446,horse\n268447,dog\n268448,airplane\n268449,dog\n268450,truck\n268451,bird\n268452,frog\n268453,bird\n268454,automobile\n268455,frog\n268456,airplane\n268457,truck\n268458,dog\n268459,automobile\n268460,frog\n268461,horse\n268462,bird\n268463,cat\n268464,automobile\n268465,frog\n268466,frog\n268467,cat\n268468,cat\n268469,ship\n268470,airplane\n268471,cat\n268472,frog\n268473,deer\n268474,horse\n268475,bird\n268476,frog\n268477,frog\n268478,deer\n268479,cat\n268480,dog\n268481,deer\n268482,bird\n268483,dog\n268484,deer\n268485,automobile\n268486,cat\n268487,deer\n268488,deer\n268489,airplane\n268490,frog\n268491,dog\n268492,dog\n268493,dog\n268494,horse\n268495,cat\n268496,horse\n268497,frog\n268498,deer\n268499,ship\n268500,cat\n268501,cat\n268502,frog\n268503,frog\n268504,ship\n268505,airplane\n268506,deer\n268507,dog\n268508,cat\n268509,ship\n268510,horse\n268511,cat\n268512,truck\n268513,bird\n268514,frog\n268515,horse\n268516,airplane\n268517,truck\n268518,truck\n268519,dog\n268520,dog\n268521,deer\n268522,dog\n268523,bird\n268524,horse\n268525,cat\n268526,bird\n268527,dog\n268528,deer\n268529,airplane\n268530,ship\n268531,automobile\n268532,truck\n268533,cat\n268534,dog\n268535,airplane\n268536,truck\n268537,truck\n268538,cat\n268539,cat\n268540,truck\n268541,cat\n268542,bird\n268543,deer\n268544,bird\n268545,airplane\n268546,truck\n268547,bird\n268548,airplane\n268549,cat\n268550,deer\n268551,ship\n268552,horse\n268553,horse\n268554,dog\n268555,truck\n268556,frog\n268557,cat\n268558,automobile\n268559,truck\n268560,horse\n268561,frog\n268562,frog\n268563,deer\n268564,dog\n268565,dog\n268566,deer\n268567,frog\n268568,airplane\n268569,ship\n268570,truck\n268571,ship\n268572,deer\n268573,automobile\n268574,dog\n268575,deer\n268576,bird\n268577,horse\n268578,deer\n268579,airplane\n268580,cat\n268581,cat\n268582,cat\n268583,deer\n268584,dog\n268585,ship\n268586,automobile\n268587,deer\n268588,cat\n268589,dog\n268590,cat\n268591,frog\n268592,dog\n268593,horse\n268594,deer\n268595,frog\n268596,horse\n268597,deer\n268598,deer\n268599,truck\n268600,horse\n268601,frog\n268602,cat\n268603,automobile\n268604,deer\n268605,bird\n268606,dog\n268607,truck\n268608,cat\n268609,ship\n268610,frog\n268611,frog\n268612,dog\n268613,dog\n268614,dog\n268615,horse\n268616,deer\n268617,dog\n268618,dog\n268619,dog\n268620,airplane\n268621,bird\n268622,ship\n268623,dog\n268624,cat\n268625,deer\n268626,automobile\n268627,airplane\n268628,frog\n268629,cat\n268630,cat\n268631,dog\n268632,frog\n268633,deer\n268634,ship\n268635,truck\n268636,automobile\n268637,airplane\n268638,deer\n268639,cat\n268640,bird\n268641,dog\n268642,bird\n268643,cat\n268644,cat\n268645,frog\n268646,horse\n268647,airplane\n268648,automobile\n268649,dog\n268650,truck\n268651,horse\n268652,horse\n268653,deer\n268654,truck\n268655,horse\n268656,bird\n268657,horse\n268658,frog\n268659,horse\n268660,cat\n268661,truck\n268662,deer\n268663,ship\n268664,deer\n268665,cat\n268666,cat\n268667,truck\n268668,bird\n268669,ship\n268670,truck\n268671,cat\n268672,cat\n268673,ship\n268674,dog\n268675,dog\n268676,airplane\n268677,ship\n268678,ship\n268679,ship\n268680,truck\n268681,horse\n268682,frog\n268683,cat\n268684,dog\n268685,dog\n268686,deer\n268687,dog\n268688,bird\n268689,cat\n268690,truck\n268691,frog\n268692,automobile\n268693,bird\n268694,airplane\n268695,horse\n268696,frog\n268697,deer\n268698,airplane\n268699,truck\n268700,dog\n268701,dog\n268702,deer\n268703,airplane\n268704,cat\n268705,horse\n268706,dog\n268707,cat\n268708,automobile\n268709,deer\n268710,ship\n268711,deer\n268712,horse\n268713,horse\n268714,deer\n268715,ship\n268716,truck\n268717,frog\n268718,ship\n268719,dog\n268720,cat\n268721,cat\n268722,truck\n268723,airplane\n268724,truck\n268725,deer\n268726,bird\n268727,deer\n268728,horse\n268729,dog\n268730,dog\n268731,bird\n268732,cat\n268733,dog\n268734,truck\n268735,dog\n268736,frog\n268737,horse\n268738,airplane\n268739,cat\n268740,automobile\n268741,cat\n268742,airplane\n268743,dog\n268744,deer\n268745,bird\n268746,frog\n268747,truck\n268748,ship\n268749,dog\n268750,ship\n268751,dog\n268752,dog\n268753,cat\n268754,frog\n268755,frog\n268756,cat\n268757,bird\n268758,dog\n268759,dog\n268760,airplane\n268761,cat\n268762,ship\n268763,automobile\n268764,automobile\n268765,horse\n268766,airplane\n268767,horse\n268768,ship\n268769,ship\n268770,airplane\n268771,ship\n268772,horse\n268773,horse\n268774,horse\n268775,horse\n268776,deer\n268777,ship\n268778,horse\n268779,cat\n268780,deer\n268781,deer\n268782,truck\n268783,truck\n268784,bird\n268785,cat\n268786,horse\n268787,frog\n268788,deer\n268789,automobile\n268790,ship\n268791,automobile\n268792,bird\n268793,frog\n268794,horse\n268795,truck\n268796,truck\n268797,deer\n268798,bird\n268799,cat\n268800,frog\n268801,cat\n268802,bird\n268803,dog\n268804,truck\n268805,bird\n268806,horse\n268807,cat\n268808,deer\n268809,dog\n268810,cat\n268811,dog\n268812,deer\n268813,dog\n268814,frog\n268815,dog\n268816,cat\n268817,truck\n268818,airplane\n268819,horse\n268820,airplane\n268821,horse\n268822,dog\n268823,ship\n268824,horse\n268825,dog\n268826,frog\n268827,automobile\n268828,cat\n268829,truck\n268830,dog\n268831,horse\n268832,dog\n268833,automobile\n268834,horse\n268835,frog\n268836,automobile\n268837,deer\n268838,airplane\n268839,truck\n268840,deer\n268841,cat\n268842,deer\n268843,automobile\n268844,cat\n268845,frog\n268846,ship\n268847,cat\n268848,cat\n268849,dog\n268850,airplane\n268851,frog\n268852,cat\n268853,frog\n268854,horse\n268855,airplane\n268856,dog\n268857,horse\n268858,bird\n268859,ship\n268860,horse\n268861,cat\n268862,horse\n268863,truck\n268864,ship\n268865,ship\n268866,dog\n268867,dog\n268868,airplane\n268869,bird\n268870,truck\n268871,horse\n268872,bird\n268873,ship\n268874,horse\n268875,airplane\n268876,airplane\n268877,cat\n268878,frog\n268879,ship\n268880,truck\n268881,deer\n268882,bird\n268883,deer\n268884,bird\n268885,deer\n268886,cat\n268887,dog\n268888,deer\n268889,horse\n268890,deer\n268891,bird\n268892,ship\n268893,cat\n268894,truck\n268895,bird\n268896,airplane\n268897,airplane\n268898,ship\n268899,airplane\n268900,truck\n268901,cat\n268902,truck\n268903,cat\n268904,dog\n268905,ship\n268906,truck\n268907,truck\n268908,horse\n268909,cat\n268910,ship\n268911,horse\n268912,dog\n268913,bird\n268914,horse\n268915,cat\n268916,cat\n268917,truck\n268918,dog\n268919,ship\n268920,truck\n268921,deer\n268922,truck\n268923,deer\n268924,truck\n268925,ship\n268926,cat\n268927,automobile\n268928,cat\n268929,cat\n268930,horse\n268931,frog\n268932,frog\n268933,horse\n268934,cat\n268935,ship\n268936,horse\n268937,automobile\n268938,cat\n268939,cat\n268940,ship\n268941,dog\n268942,dog\n268943,dog\n268944,airplane\n268945,deer\n268946,dog\n268947,frog\n268948,automobile\n268949,deer\n268950,horse\n268951,frog\n268952,cat\n268953,airplane\n268954,frog\n268955,cat\n268956,cat\n268957,bird\n268958,frog\n268959,ship\n268960,cat\n268961,deer\n268962,cat\n268963,ship\n268964,cat\n268965,deer\n268966,horse\n268967,cat\n268968,frog\n268969,horse\n268970,ship\n268971,cat\n268972,airplane\n268973,cat\n268974,frog\n268975,cat\n268976,airplane\n268977,horse\n268978,airplane\n268979,ship\n268980,deer\n268981,dog\n268982,automobile\n268983,horse\n268984,bird\n268985,dog\n268986,frog\n268987,frog\n268988,horse\n268989,ship\n268990,cat\n268991,bird\n268992,deer\n268993,deer\n268994,dog\n268995,automobile\n268996,airplane\n268997,deer\n268998,cat\n268999,horse\n269000,cat\n269001,horse\n269002,automobile\n269003,horse\n269004,cat\n269005,cat\n269006,frog\n269007,horse\n269008,dog\n269009,truck\n269010,automobile\n269011,truck\n269012,deer\n269013,dog\n269014,automobile\n269015,frog\n269016,horse\n269017,deer\n269018,horse\n269019,frog\n269020,cat\n269021,horse\n269022,cat\n269023,airplane\n269024,deer\n269025,truck\n269026,frog\n269027,deer\n269028,frog\n269029,airplane\n269030,airplane\n269031,frog\n269032,deer\n269033,deer\n269034,bird\n269035,dog\n269036,frog\n269037,deer\n269038,ship\n269039,bird\n269040,horse\n269041,dog\n269042,dog\n269043,ship\n269044,dog\n269045,dog\n269046,bird\n269047,frog\n269048,dog\n269049,dog\n269050,frog\n269051,frog\n269052,dog\n269053,truck\n269054,frog\n269055,deer\n269056,bird\n269057,ship\n269058,deer\n269059,bird\n269060,deer\n269061,ship\n269062,deer\n269063,frog\n269064,horse\n269065,ship\n269066,truck\n269067,dog\n269068,frog\n269069,horse\n269070,dog\n269071,frog\n269072,bird\n269073,ship\n269074,airplane\n269075,deer\n269076,truck\n269077,cat\n269078,airplane\n269079,truck\n269080,deer\n269081,truck\n269082,frog\n269083,deer\n269084,frog\n269085,horse\n269086,dog\n269087,ship\n269088,bird\n269089,horse\n269090,deer\n269091,bird\n269092,frog\n269093,deer\n269094,cat\n269095,bird\n269096,airplane\n269097,horse\n269098,ship\n269099,deer\n269100,deer\n269101,dog\n269102,dog\n269103,dog\n269104,frog\n269105,frog\n269106,cat\n269107,frog\n269108,truck\n269109,horse\n269110,dog\n269111,bird\n269112,truck\n269113,ship\n269114,cat\n269115,bird\n269116,deer\n269117,bird\n269118,airplane\n269119,horse\n269120,frog\n269121,frog\n269122,horse\n269123,truck\n269124,frog\n269125,ship\n269126,cat\n269127,automobile\n269128,horse\n269129,horse\n269130,bird\n269131,bird\n269132,cat\n269133,truck\n269134,cat\n269135,deer\n269136,automobile\n269137,frog\n269138,frog\n269139,cat\n269140,frog\n269141,automobile\n269142,deer\n269143,airplane\n269144,truck\n269145,truck\n269146,cat\n269147,cat\n269148,deer\n269149,cat\n269150,horse\n269151,airplane\n269152,frog\n269153,cat\n269154,frog\n269155,dog\n269156,dog\n269157,frog\n269158,frog\n269159,airplane\n269160,frog\n269161,deer\n269162,truck\n269163,dog\n269164,deer\n269165,dog\n269166,ship\n269167,dog\n269168,cat\n269169,bird\n269170,dog\n269171,airplane\n269172,dog\n269173,truck\n269174,deer\n269175,dog\n269176,cat\n269177,automobile\n269178,deer\n269179,bird\n269180,horse\n269181,deer\n269182,cat\n269183,dog\n269184,frog\n269185,truck\n269186,bird\n269187,bird\n269188,cat\n269189,truck\n269190,frog\n269191,horse\n269192,bird\n269193,cat\n269194,ship\n269195,deer\n269196,cat\n269197,bird\n269198,airplane\n269199,bird\n269200,bird\n269201,cat\n269202,truck\n269203,frog\n269204,dog\n269205,bird\n269206,frog\n269207,dog\n269208,cat\n269209,frog\n269210,airplane\n269211,ship\n269212,bird\n269213,horse\n269214,horse\n269215,frog\n269216,horse\n269217,deer\n269218,frog\n269219,ship\n269220,horse\n269221,cat\n269222,bird\n269223,truck\n269224,bird\n269225,truck\n269226,dog\n269227,cat\n269228,frog\n269229,truck\n269230,horse\n269231,frog\n269232,cat\n269233,truck\n269234,dog\n269235,automobile\n269236,frog\n269237,deer\n269238,horse\n269239,deer\n269240,ship\n269241,deer\n269242,cat\n269243,cat\n269244,bird\n269245,bird\n269246,deer\n269247,airplane\n269248,frog\n269249,frog\n269250,truck\n269251,airplane\n269252,cat\n269253,automobile\n269254,dog\n269255,deer\n269256,frog\n269257,ship\n269258,deer\n269259,bird\n269260,ship\n269261,cat\n269262,airplane\n269263,cat\n269264,frog\n269265,deer\n269266,automobile\n269267,bird\n269268,ship\n269269,dog\n269270,ship\n269271,airplane\n269272,cat\n269273,cat\n269274,dog\n269275,frog\n269276,airplane\n269277,deer\n269278,horse\n269279,truck\n269280,deer\n269281,automobile\n269282,airplane\n269283,truck\n269284,frog\n269285,truck\n269286,horse\n269287,airplane\n269288,horse\n269289,bird\n269290,frog\n269291,deer\n269292,dog\n269293,ship\n269294,bird\n269295,cat\n269296,airplane\n269297,dog\n269298,automobile\n269299,bird\n269300,bird\n269301,cat\n269302,ship\n269303,deer\n269304,airplane\n269305,deer\n269306,truck\n269307,automobile\n269308,airplane\n269309,horse\n269310,airplane\n269311,airplane\n269312,bird\n269313,automobile\n269314,truck\n269315,truck\n269316,ship\n269317,truck\n269318,airplane\n269319,cat\n269320,deer\n269321,bird\n269322,horse\n269323,cat\n269324,deer\n269325,frog\n269326,truck\n269327,deer\n269328,truck\n269329,cat\n269330,airplane\n269331,bird\n269332,airplane\n269333,deer\n269334,deer\n269335,dog\n269336,deer\n269337,dog\n269338,automobile\n269339,frog\n269340,cat\n269341,cat\n269342,airplane\n269343,deer\n269344,truck\n269345,truck\n269346,automobile\n269347,deer\n269348,frog\n269349,truck\n269350,bird\n269351,automobile\n269352,bird\n269353,airplane\n269354,deer\n269355,deer\n269356,deer\n269357,cat\n269358,airplane\n269359,cat\n269360,cat\n269361,horse\n269362,cat\n269363,automobile\n269364,horse\n269365,truck\n269366,truck\n269367,automobile\n269368,frog\n269369,automobile\n269370,dog\n269371,cat\n269372,bird\n269373,horse\n269374,bird\n269375,ship\n269376,deer\n269377,deer\n269378,ship\n269379,frog\n269380,truck\n269381,frog\n269382,dog\n269383,truck\n269384,deer\n269385,deer\n269386,frog\n269387,automobile\n269388,cat\n269389,cat\n269390,deer\n269391,frog\n269392,bird\n269393,dog\n269394,automobile\n269395,horse\n269396,cat\n269397,cat\n269398,horse\n269399,ship\n269400,bird\n269401,horse\n269402,frog\n269403,dog\n269404,deer\n269405,truck\n269406,cat\n269407,deer\n269408,bird\n269409,bird\n269410,bird\n269411,bird\n269412,automobile\n269413,truck\n269414,bird\n269415,cat\n269416,cat\n269417,dog\n269418,deer\n269419,bird\n269420,frog\n269421,dog\n269422,frog\n269423,deer\n269424,deer\n269425,dog\n269426,truck\n269427,airplane\n269428,bird\n269429,dog\n269430,airplane\n269431,bird\n269432,cat\n269433,horse\n269434,truck\n269435,frog\n269436,automobile\n269437,frog\n269438,airplane\n269439,frog\n269440,cat\n269441,frog\n269442,bird\n269443,ship\n269444,frog\n269445,automobile\n269446,airplane\n269447,deer\n269448,truck\n269449,frog\n269450,frog\n269451,airplane\n269452,automobile\n269453,truck\n269454,airplane\n269455,frog\n269456,ship\n269457,dog\n269458,cat\n269459,automobile\n269460,frog\n269461,frog\n269462,truck\n269463,airplane\n269464,cat\n269465,dog\n269466,deer\n269467,ship\n269468,dog\n269469,dog\n269470,frog\n269471,dog\n269472,frog\n269473,frog\n269474,bird\n269475,truck\n269476,airplane\n269477,dog\n269478,automobile\n269479,truck\n269480,ship\n269481,truck\n269482,dog\n269483,airplane\n269484,cat\n269485,dog\n269486,deer\n269487,ship\n269488,frog\n269489,ship\n269490,airplane\n269491,cat\n269492,airplane\n269493,automobile\n269494,frog\n269495,airplane\n269496,truck\n269497,airplane\n269498,cat\n269499,bird\n269500,automobile\n269501,dog\n269502,deer\n269503,truck\n269504,cat\n269505,automobile\n269506,frog\n269507,automobile\n269508,deer\n269509,ship\n269510,truck\n269511,truck\n269512,truck\n269513,truck\n269514,deer\n269515,cat\n269516,horse\n269517,deer\n269518,cat\n269519,frog\n269520,frog\n269521,dog\n269522,bird\n269523,airplane\n269524,ship\n269525,frog\n269526,ship\n269527,frog\n269528,horse\n269529,truck\n269530,dog\n269531,dog\n269532,truck\n269533,horse\n269534,bird\n269535,truck\n269536,horse\n269537,horse\n269538,bird\n269539,frog\n269540,airplane\n269541,dog\n269542,cat\n269543,cat\n269544,cat\n269545,truck\n269546,truck\n269547,truck\n269548,horse\n269549,frog\n269550,frog\n269551,frog\n269552,bird\n269553,truck\n269554,ship\n269555,deer\n269556,horse\n269557,deer\n269558,cat\n269559,airplane\n269560,ship\n269561,bird\n269562,frog\n269563,dog\n269564,deer\n269565,cat\n269566,automobile\n269567,automobile\n269568,automobile\n269569,bird\n269570,horse\n269571,automobile\n269572,automobile\n269573,automobile\n269574,dog\n269575,airplane\n269576,bird\n269577,frog\n269578,dog\n269579,deer\n269580,airplane\n269581,frog\n269582,airplane\n269583,horse\n269584,bird\n269585,cat\n269586,dog\n269587,cat\n269588,cat\n269589,deer\n269590,cat\n269591,cat\n269592,deer\n269593,airplane\n269594,deer\n269595,frog\n269596,dog\n269597,dog\n269598,deer\n269599,cat\n269600,truck\n269601,horse\n269602,horse\n269603,bird\n269604,deer\n269605,truck\n269606,bird\n269607,dog\n269608,frog\n269609,deer\n269610,horse\n269611,horse\n269612,ship\n269613,truck\n269614,bird\n269615,bird\n269616,airplane\n269617,automobile\n269618,airplane\n269619,horse\n269620,deer\n269621,deer\n269622,airplane\n269623,automobile\n269624,horse\n269625,bird\n269626,bird\n269627,bird\n269628,automobile\n269629,truck\n269630,horse\n269631,automobile\n269632,deer\n269633,airplane\n269634,deer\n269635,dog\n269636,deer\n269637,deer\n269638,cat\n269639,horse\n269640,dog\n269641,dog\n269642,dog\n269643,ship\n269644,bird\n269645,deer\n269646,dog\n269647,bird\n269648,horse\n269649,horse\n269650,truck\n269651,frog\n269652,horse\n269653,horse\n269654,frog\n269655,truck\n269656,automobile\n269657,ship\n269658,horse\n269659,deer\n269660,cat\n269661,truck\n269662,cat\n269663,truck\n269664,horse\n269665,ship\n269666,horse\n269667,automobile\n269668,truck\n269669,automobile\n269670,deer\n269671,automobile\n269672,automobile\n269673,horse\n269674,ship\n269675,dog\n269676,dog\n269677,bird\n269678,cat\n269679,airplane\n269680,deer\n269681,bird\n269682,truck\n269683,bird\n269684,ship\n269685,deer\n269686,dog\n269687,dog\n269688,deer\n269689,dog\n269690,dog\n269691,deer\n269692,horse\n269693,deer\n269694,truck\n269695,deer\n269696,truck\n269697,truck\n269698,truck\n269699,horse\n269700,frog\n269701,deer\n269702,airplane\n269703,automobile\n269704,bird\n269705,cat\n269706,automobile\n269707,airplane\n269708,deer\n269709,truck\n269710,cat\n269711,frog\n269712,deer\n269713,bird\n269714,cat\n269715,truck\n269716,truck\n269717,deer\n269718,bird\n269719,deer\n269720,automobile\n269721,dog\n269722,deer\n269723,cat\n269724,dog\n269725,bird\n269726,bird\n269727,cat\n269728,ship\n269729,cat\n269730,deer\n269731,airplane\n269732,cat\n269733,airplane\n269734,truck\n269735,deer\n269736,bird\n269737,cat\n269738,dog\n269739,dog\n269740,cat\n269741,horse\n269742,truck\n269743,dog\n269744,airplane\n269745,airplane\n269746,dog\n269747,truck\n269748,automobile\n269749,truck\n269750,dog\n269751,horse\n269752,deer\n269753,cat\n269754,horse\n269755,horse\n269756,dog\n269757,frog\n269758,horse\n269759,cat\n269760,horse\n269761,cat\n269762,ship\n269763,frog\n269764,bird\n269765,deer\n269766,frog\n269767,ship\n269768,deer\n269769,truck\n269770,horse\n269771,horse\n269772,truck\n269773,frog\n269774,frog\n269775,airplane\n269776,truck\n269777,airplane\n269778,truck\n269779,deer\n269780,deer\n269781,ship\n269782,bird\n269783,automobile\n269784,truck\n269785,frog\n269786,ship\n269787,bird\n269788,truck\n269789,truck\n269790,dog\n269791,deer\n269792,dog\n269793,frog\n269794,horse\n269795,bird\n269796,horse\n269797,airplane\n269798,cat\n269799,frog\n269800,frog\n269801,deer\n269802,frog\n269803,dog\n269804,automobile\n269805,truck\n269806,horse\n269807,automobile\n269808,frog\n269809,bird\n269810,cat\n269811,frog\n269812,airplane\n269813,horse\n269814,truck\n269815,airplane\n269816,airplane\n269817,bird\n269818,ship\n269819,frog\n269820,truck\n269821,bird\n269822,automobile\n269823,bird\n269824,ship\n269825,automobile\n269826,dog\n269827,deer\n269828,frog\n269829,airplane\n269830,dog\n269831,frog\n269832,cat\n269833,frog\n269834,frog\n269835,cat\n269836,horse\n269837,cat\n269838,deer\n269839,automobile\n269840,airplane\n269841,truck\n269842,deer\n269843,frog\n269844,bird\n269845,dog\n269846,cat\n269847,deer\n269848,frog\n269849,deer\n269850,frog\n269851,horse\n269852,cat\n269853,bird\n269854,ship\n269855,deer\n269856,cat\n269857,automobile\n269858,frog\n269859,dog\n269860,automobile\n269861,deer\n269862,cat\n269863,ship\n269864,dog\n269865,dog\n269866,truck\n269867,cat\n269868,deer\n269869,bird\n269870,cat\n269871,airplane\n269872,frog\n269873,ship\n269874,truck\n269875,horse\n269876,cat\n269877,horse\n269878,truck\n269879,frog\n269880,cat\n269881,automobile\n269882,dog\n269883,cat\n269884,automobile\n269885,horse\n269886,ship\n269887,deer\n269888,airplane\n269889,bird\n269890,cat\n269891,truck\n269892,ship\n269893,cat\n269894,airplane\n269895,deer\n269896,cat\n269897,deer\n269898,frog\n269899,frog\n269900,cat\n269901,bird\n269902,frog\n269903,horse\n269904,ship\n269905,bird\n269906,frog\n269907,frog\n269908,ship\n269909,bird\n269910,deer\n269911,dog\n269912,ship\n269913,cat\n269914,automobile\n269915,bird\n269916,bird\n269917,ship\n269918,horse\n269919,horse\n269920,truck\n269921,frog\n269922,cat\n269923,horse\n269924,airplane\n269925,horse\n269926,bird\n269927,dog\n269928,horse\n269929,deer\n269930,ship\n269931,dog\n269932,horse\n269933,truck\n269934,cat\n269935,airplane\n269936,frog\n269937,airplane\n269938,deer\n269939,cat\n269940,dog\n269941,dog\n269942,bird\n269943,frog\n269944,deer\n269945,cat\n269946,frog\n269947,airplane\n269948,truck\n269949,bird\n269950,ship\n269951,deer\n269952,deer\n269953,ship\n269954,truck\n269955,frog\n269956,bird\n269957,deer\n269958,dog\n269959,deer\n269960,truck\n269961,frog\n269962,deer\n269963,automobile\n269964,deer\n269965,cat\n269966,cat\n269967,dog\n269968,horse\n269969,deer\n269970,cat\n269971,airplane\n269972,cat\n269973,truck\n269974,ship\n269975,airplane\n269976,airplane\n269977,horse\n269978,ship\n269979,truck\n269980,automobile\n269981,airplane\n269982,horse\n269983,bird\n269984,airplane\n269985,truck\n269986,dog\n269987,automobile\n269988,horse\n269989,cat\n269990,dog\n269991,airplane\n269992,cat\n269993,frog\n269994,airplane\n269995,cat\n269996,horse\n269997,deer\n269998,truck\n269999,deer\n270000,horse\n270001,ship\n270002,horse\n270003,cat\n270004,cat\n270005,airplane\n270006,ship\n270007,bird\n270008,deer\n270009,truck\n270010,deer\n270011,bird\n270012,ship\n270013,ship\n270014,deer\n270015,airplane\n270016,automobile\n270017,horse\n270018,dog\n270019,deer\n270020,ship\n270021,dog\n270022,deer\n270023,dog\n270024,deer\n270025,truck\n270026,bird\n270027,ship\n270028,truck\n270029,bird\n270030,ship\n270031,airplane\n270032,frog\n270033,bird\n270034,airplane\n270035,bird\n270036,cat\n270037,truck\n270038,deer\n270039,deer\n270040,dog\n270041,airplane\n270042,airplane\n270043,cat\n270044,bird\n270045,deer\n270046,truck\n270047,horse\n270048,cat\n270049,deer\n270050,deer\n270051,bird\n270052,ship\n270053,cat\n270054,cat\n270055,dog\n270056,airplane\n270057,deer\n270058,truck\n270059,automobile\n270060,horse\n270061,cat\n270062,cat\n270063,bird\n270064,bird\n270065,airplane\n270066,truck\n270067,horse\n270068,horse\n270069,truck\n270070,ship\n270071,deer\n270072,frog\n270073,frog\n270074,airplane\n270075,dog\n270076,automobile\n270077,bird\n270078,airplane\n270079,dog\n270080,horse\n270081,cat\n270082,deer\n270083,ship\n270084,airplane\n270085,dog\n270086,truck\n270087,automobile\n270088,automobile\n270089,horse\n270090,horse\n270091,cat\n270092,bird\n270093,bird\n270094,automobile\n270095,cat\n270096,ship\n270097,cat\n270098,automobile\n270099,automobile\n270100,ship\n270101,horse\n270102,frog\n270103,truck\n270104,frog\n270105,frog\n270106,dog\n270107,horse\n270108,horse\n270109,ship\n270110,horse\n270111,bird\n270112,dog\n270113,horse\n270114,horse\n270115,deer\n270116,horse\n270117,dog\n270118,dog\n270119,cat\n270120,airplane\n270121,deer\n270122,horse\n270123,cat\n270124,cat\n270125,ship\n270126,ship\n270127,cat\n270128,airplane\n270129,dog\n270130,deer\n270131,deer\n270132,airplane\n270133,deer\n270134,truck\n270135,cat\n270136,frog\n270137,dog\n270138,frog\n270139,bird\n270140,deer\n270141,deer\n270142,deer\n270143,bird\n270144,frog\n270145,deer\n270146,cat\n270147,airplane\n270148,horse\n270149,cat\n270150,airplane\n270151,ship\n270152,bird\n270153,automobile\n270154,dog\n270155,bird\n270156,cat\n270157,ship\n270158,truck\n270159,airplane\n270160,airplane\n270161,frog\n270162,truck\n270163,frog\n270164,airplane\n270165,deer\n270166,cat\n270167,bird\n270168,bird\n270169,ship\n270170,truck\n270171,truck\n270172,deer\n270173,frog\n270174,dog\n270175,cat\n270176,bird\n270177,bird\n270178,deer\n270179,cat\n270180,deer\n270181,frog\n270182,deer\n270183,airplane\n270184,horse\n270185,bird\n270186,deer\n270187,frog\n270188,deer\n270189,airplane\n270190,airplane\n270191,truck\n270192,dog\n270193,truck\n270194,automobile\n270195,cat\n270196,automobile\n270197,automobile\n270198,cat\n270199,bird\n270200,bird\n270201,deer\n270202,ship\n270203,deer\n270204,airplane\n270205,frog\n270206,horse\n270207,airplane\n270208,airplane\n270209,automobile\n270210,ship\n270211,cat\n270212,horse\n270213,horse\n270214,airplane\n270215,deer\n270216,automobile\n270217,airplane\n270218,truck\n270219,frog\n270220,dog\n270221,ship\n270222,bird\n270223,automobile\n270224,bird\n270225,dog\n270226,frog\n270227,frog\n270228,dog\n270229,horse\n270230,ship\n270231,cat\n270232,cat\n270233,frog\n270234,ship\n270235,ship\n270236,cat\n270237,horse\n270238,horse\n270239,deer\n270240,frog\n270241,truck\n270242,airplane\n270243,deer\n270244,horse\n270245,cat\n270246,deer\n270247,deer\n270248,frog\n270249,airplane\n270250,dog\n270251,horse\n270252,cat\n270253,dog\n270254,frog\n270255,cat\n270256,horse\n270257,frog\n270258,ship\n270259,deer\n270260,frog\n270261,airplane\n270262,deer\n270263,horse\n270264,truck\n270265,airplane\n270266,cat\n270267,frog\n270268,deer\n270269,frog\n270270,ship\n270271,dog\n270272,deer\n270273,frog\n270274,airplane\n270275,cat\n270276,deer\n270277,cat\n270278,cat\n270279,airplane\n270280,automobile\n270281,dog\n270282,truck\n270283,deer\n270284,dog\n270285,automobile\n270286,bird\n270287,deer\n270288,dog\n270289,frog\n270290,horse\n270291,bird\n270292,truck\n270293,cat\n270294,airplane\n270295,horse\n270296,cat\n270297,airplane\n270298,deer\n270299,airplane\n270300,deer\n270301,dog\n270302,dog\n270303,automobile\n270304,cat\n270305,cat\n270306,horse\n270307,bird\n270308,ship\n270309,dog\n270310,frog\n270311,cat\n270312,frog\n270313,cat\n270314,frog\n270315,bird\n270316,deer\n270317,truck\n270318,bird\n270319,dog\n270320,ship\n270321,bird\n270322,deer\n270323,truck\n270324,ship\n270325,cat\n270326,truck\n270327,deer\n270328,horse\n270329,airplane\n270330,truck\n270331,dog\n270332,automobile\n270333,truck\n270334,bird\n270335,cat\n270336,cat\n270337,horse\n270338,cat\n270339,horse\n270340,ship\n270341,cat\n270342,cat\n270343,airplane\n270344,bird\n270345,frog\n270346,horse\n270347,deer\n270348,truck\n270349,deer\n270350,deer\n270351,bird\n270352,deer\n270353,ship\n270354,cat\n270355,cat\n270356,cat\n270357,airplane\n270358,truck\n270359,frog\n270360,dog\n270361,dog\n270362,deer\n270363,frog\n270364,deer\n270365,deer\n270366,frog\n270367,horse\n270368,deer\n270369,ship\n270370,dog\n270371,automobile\n270372,ship\n270373,ship\n270374,ship\n270375,bird\n270376,truck\n270377,frog\n270378,bird\n270379,ship\n270380,airplane\n270381,dog\n270382,cat\n270383,dog\n270384,deer\n270385,automobile\n270386,dog\n270387,bird\n270388,truck\n270389,cat\n270390,bird\n270391,bird\n270392,ship\n270393,airplane\n270394,deer\n270395,horse\n270396,airplane\n270397,truck\n270398,truck\n270399,cat\n270400,horse\n270401,automobile\n270402,frog\n270403,automobile\n270404,cat\n270405,airplane\n270406,automobile\n270407,deer\n270408,horse\n270409,frog\n270410,deer\n270411,airplane\n270412,bird\n270413,automobile\n270414,dog\n270415,cat\n270416,horse\n270417,dog\n270418,automobile\n270419,airplane\n270420,deer\n270421,bird\n270422,airplane\n270423,dog\n270424,cat\n270425,frog\n270426,dog\n270427,horse\n270428,deer\n270429,frog\n270430,cat\n270431,cat\n270432,dog\n270433,ship\n270434,truck\n270435,horse\n270436,truck\n270437,deer\n270438,ship\n270439,cat\n270440,dog\n270441,dog\n270442,airplane\n270443,cat\n270444,automobile\n270445,cat\n270446,horse\n270447,cat\n270448,dog\n270449,ship\n270450,frog\n270451,deer\n270452,cat\n270453,deer\n270454,truck\n270455,cat\n270456,cat\n270457,bird\n270458,frog\n270459,truck\n270460,airplane\n270461,deer\n270462,automobile\n270463,horse\n270464,truck\n270465,ship\n270466,deer\n270467,truck\n270468,cat\n270469,cat\n270470,airplane\n270471,bird\n270472,frog\n270473,cat\n270474,dog\n270475,dog\n270476,bird\n270477,cat\n270478,ship\n270479,frog\n270480,deer\n270481,horse\n270482,ship\n270483,automobile\n270484,frog\n270485,horse\n270486,deer\n270487,ship\n270488,cat\n270489,cat\n270490,ship\n270491,horse\n270492,dog\n270493,deer\n270494,deer\n270495,truck\n270496,bird\n270497,frog\n270498,truck\n270499,deer\n270500,dog\n270501,dog\n270502,airplane\n270503,horse\n270504,truck\n270505,dog\n270506,horse\n270507,dog\n270508,deer\n270509,deer\n270510,airplane\n270511,frog\n270512,automobile\n270513,cat\n270514,deer\n270515,dog\n270516,ship\n270517,horse\n270518,frog\n270519,airplane\n270520,dog\n270521,horse\n270522,deer\n270523,cat\n270524,deer\n270525,horse\n270526,automobile\n270527,automobile\n270528,deer\n270529,airplane\n270530,frog\n270531,cat\n270532,bird\n270533,dog\n270534,automobile\n270535,dog\n270536,ship\n270537,cat\n270538,airplane\n270539,airplane\n270540,deer\n270541,horse\n270542,horse\n270543,cat\n270544,airplane\n270545,frog\n270546,frog\n270547,deer\n270548,bird\n270549,dog\n270550,cat\n270551,dog\n270552,truck\n270553,bird\n270554,automobile\n270555,automobile\n270556,automobile\n270557,deer\n270558,airplane\n270559,truck\n270560,horse\n270561,frog\n270562,horse\n270563,truck\n270564,airplane\n270565,automobile\n270566,frog\n270567,cat\n270568,dog\n270569,frog\n270570,horse\n270571,airplane\n270572,bird\n270573,ship\n270574,frog\n270575,truck\n270576,deer\n270577,frog\n270578,horse\n270579,horse\n270580,cat\n270581,truck\n270582,airplane\n270583,ship\n270584,deer\n270585,truck\n270586,automobile\n270587,bird\n270588,truck\n270589,deer\n270590,horse\n270591,truck\n270592,cat\n270593,truck\n270594,deer\n270595,automobile\n270596,truck\n270597,frog\n270598,horse\n270599,dog\n270600,cat\n270601,airplane\n270602,cat\n270603,deer\n270604,frog\n270605,bird\n270606,dog\n270607,ship\n270608,frog\n270609,dog\n270610,ship\n270611,dog\n270612,deer\n270613,truck\n270614,cat\n270615,deer\n270616,deer\n270617,deer\n270618,ship\n270619,horse\n270620,frog\n270621,horse\n270622,airplane\n270623,frog\n270624,horse\n270625,horse\n270626,frog\n270627,airplane\n270628,airplane\n270629,cat\n270630,automobile\n270631,dog\n270632,airplane\n270633,frog\n270634,ship\n270635,horse\n270636,dog\n270637,truck\n270638,bird\n270639,horse\n270640,deer\n270641,ship\n270642,frog\n270643,deer\n270644,deer\n270645,deer\n270646,truck\n270647,cat\n270648,horse\n270649,automobile\n270650,truck\n270651,automobile\n270652,deer\n270653,automobile\n270654,dog\n270655,dog\n270656,truck\n270657,frog\n270658,frog\n270659,frog\n270660,cat\n270661,ship\n270662,cat\n270663,frog\n270664,frog\n270665,cat\n270666,airplane\n270667,automobile\n270668,airplane\n270669,truck\n270670,deer\n270671,cat\n270672,frog\n270673,truck\n270674,automobile\n270675,dog\n270676,bird\n270677,cat\n270678,deer\n270679,horse\n270680,deer\n270681,truck\n270682,cat\n270683,deer\n270684,ship\n270685,airplane\n270686,deer\n270687,airplane\n270688,truck\n270689,deer\n270690,bird\n270691,ship\n270692,deer\n270693,truck\n270694,airplane\n270695,truck\n270696,cat\n270697,bird\n270698,cat\n270699,deer\n270700,bird\n270701,deer\n270702,truck\n270703,frog\n270704,cat\n270705,truck\n270706,deer\n270707,bird\n270708,horse\n270709,dog\n270710,cat\n270711,deer\n270712,deer\n270713,dog\n270714,deer\n270715,frog\n270716,deer\n270717,dog\n270718,cat\n270719,truck\n270720,deer\n270721,cat\n270722,frog\n270723,ship\n270724,dog\n270725,horse\n270726,dog\n270727,automobile\n270728,frog\n270729,automobile\n270730,cat\n270731,cat\n270732,horse\n270733,dog\n270734,airplane\n270735,automobile\n270736,bird\n270737,truck\n270738,truck\n270739,frog\n270740,frog\n270741,deer\n270742,horse\n270743,deer\n270744,cat\n270745,bird\n270746,automobile\n270747,frog\n270748,frog\n270749,deer\n270750,deer\n270751,automobile\n270752,airplane\n270753,deer\n270754,ship\n270755,bird\n270756,frog\n270757,deer\n270758,dog\n270759,deer\n270760,cat\n270761,ship\n270762,automobile\n270763,deer\n270764,truck\n270765,frog\n270766,cat\n270767,frog\n270768,truck\n270769,frog\n270770,automobile\n270771,frog\n270772,ship\n270773,frog\n270774,frog\n270775,horse\n270776,cat\n270777,horse\n270778,frog\n270779,ship\n270780,dog\n270781,frog\n270782,deer\n270783,horse\n270784,horse\n270785,dog\n270786,dog\n270787,cat\n270788,frog\n270789,truck\n270790,airplane\n270791,horse\n270792,frog\n270793,ship\n270794,truck\n270795,frog\n270796,frog\n270797,frog\n270798,dog\n270799,automobile\n270800,cat\n270801,deer\n270802,cat\n270803,dog\n270804,horse\n270805,dog\n270806,cat\n270807,horse\n270808,deer\n270809,bird\n270810,cat\n270811,airplane\n270812,truck\n270813,truck\n270814,horse\n270815,airplane\n270816,horse\n270817,deer\n270818,dog\n270819,bird\n270820,truck\n270821,dog\n270822,ship\n270823,frog\n270824,deer\n270825,bird\n270826,ship\n270827,cat\n270828,deer\n270829,cat\n270830,ship\n270831,horse\n270832,dog\n270833,truck\n270834,airplane\n270835,deer\n270836,cat\n270837,automobile\n270838,automobile\n270839,dog\n270840,truck\n270841,horse\n270842,cat\n270843,deer\n270844,deer\n270845,frog\n270846,truck\n270847,ship\n270848,frog\n270849,automobile\n270850,frog\n270851,deer\n270852,deer\n270853,truck\n270854,deer\n270855,horse\n270856,truck\n270857,deer\n270858,dog\n270859,bird\n270860,horse\n270861,frog\n270862,frog\n270863,airplane\n270864,deer\n270865,dog\n270866,truck\n270867,frog\n270868,cat\n270869,horse\n270870,bird\n270871,dog\n270872,automobile\n270873,dog\n270874,bird\n270875,ship\n270876,bird\n270877,airplane\n270878,cat\n270879,truck\n270880,cat\n270881,airplane\n270882,horse\n270883,truck\n270884,cat\n270885,ship\n270886,cat\n270887,automobile\n270888,automobile\n270889,horse\n270890,deer\n270891,horse\n270892,dog\n270893,cat\n270894,dog\n270895,cat\n270896,ship\n270897,frog\n270898,dog\n270899,cat\n270900,cat\n270901,ship\n270902,truck\n270903,cat\n270904,horse\n270905,horse\n270906,deer\n270907,airplane\n270908,truck\n270909,ship\n270910,deer\n270911,deer\n270912,airplane\n270913,cat\n270914,deer\n270915,ship\n270916,cat\n270917,ship\n270918,deer\n270919,bird\n270920,cat\n270921,frog\n270922,dog\n270923,deer\n270924,cat\n270925,cat\n270926,cat\n270927,cat\n270928,frog\n270929,deer\n270930,automobile\n270931,bird\n270932,frog\n270933,ship\n270934,automobile\n270935,ship\n270936,deer\n270937,deer\n270938,bird\n270939,bird\n270940,deer\n270941,frog\n270942,airplane\n270943,ship\n270944,frog\n270945,dog\n270946,cat\n270947,cat\n270948,dog\n270949,frog\n270950,frog\n270951,truck\n270952,automobile\n270953,cat\n270954,cat\n270955,truck\n270956,ship\n270957,automobile\n270958,frog\n270959,frog\n270960,horse\n270961,airplane\n270962,truck\n270963,airplane\n270964,cat\n270965,truck\n270966,cat\n270967,airplane\n270968,frog\n270969,horse\n270970,frog\n270971,truck\n270972,airplane\n270973,dog\n270974,cat\n270975,deer\n270976,horse\n270977,dog\n270978,ship\n270979,automobile\n270980,deer\n270981,bird\n270982,horse\n270983,airplane\n270984,horse\n270985,deer\n270986,frog\n270987,dog\n270988,horse\n270989,truck\n270990,truck\n270991,truck\n270992,cat\n270993,truck\n270994,cat\n270995,airplane\n270996,airplane\n270997,bird\n270998,frog\n270999,bird\n271000,frog\n271001,ship\n271002,horse\n271003,cat\n271004,cat\n271005,automobile\n271006,deer\n271007,airplane\n271008,frog\n271009,horse\n271010,bird\n271011,ship\n271012,automobile\n271013,dog\n271014,cat\n271015,cat\n271016,ship\n271017,dog\n271018,ship\n271019,dog\n271020,dog\n271021,horse\n271022,frog\n271023,truck\n271024,truck\n271025,airplane\n271026,automobile\n271027,frog\n271028,horse\n271029,airplane\n271030,dog\n271031,ship\n271032,dog\n271033,deer\n271034,bird\n271035,truck\n271036,automobile\n271037,frog\n271038,airplane\n271039,horse\n271040,bird\n271041,bird\n271042,deer\n271043,cat\n271044,truck\n271045,automobile\n271046,cat\n271047,frog\n271048,frog\n271049,truck\n271050,frog\n271051,horse\n271052,truck\n271053,frog\n271054,bird\n271055,ship\n271056,truck\n271057,cat\n271058,bird\n271059,deer\n271060,truck\n271061,cat\n271062,cat\n271063,deer\n271064,horse\n271065,airplane\n271066,airplane\n271067,truck\n271068,horse\n271069,horse\n271070,horse\n271071,dog\n271072,deer\n271073,truck\n271074,cat\n271075,cat\n271076,airplane\n271077,ship\n271078,deer\n271079,horse\n271080,deer\n271081,ship\n271082,deer\n271083,dog\n271084,cat\n271085,horse\n271086,horse\n271087,bird\n271088,deer\n271089,truck\n271090,automobile\n271091,bird\n271092,cat\n271093,deer\n271094,cat\n271095,truck\n271096,airplane\n271097,truck\n271098,horse\n271099,frog\n271100,frog\n271101,airplane\n271102,automobile\n271103,bird\n271104,bird\n271105,horse\n271106,dog\n271107,cat\n271108,dog\n271109,truck\n271110,truck\n271111,frog\n271112,ship\n271113,frog\n271114,airplane\n271115,automobile\n271116,dog\n271117,truck\n271118,deer\n271119,cat\n271120,frog\n271121,frog\n271122,horse\n271123,dog\n271124,truck\n271125,bird\n271126,horse\n271127,deer\n271128,airplane\n271129,frog\n271130,cat\n271131,frog\n271132,deer\n271133,cat\n271134,dog\n271135,cat\n271136,horse\n271137,automobile\n271138,truck\n271139,cat\n271140,horse\n271141,airplane\n271142,horse\n271143,horse\n271144,ship\n271145,airplane\n271146,bird\n271147,deer\n271148,airplane\n271149,cat\n271150,automobile\n271151,bird\n271152,deer\n271153,airplane\n271154,ship\n271155,frog\n271156,frog\n271157,horse\n271158,ship\n271159,frog\n271160,automobile\n271161,bird\n271162,dog\n271163,airplane\n271164,dog\n271165,airplane\n271166,deer\n271167,cat\n271168,dog\n271169,dog\n271170,truck\n271171,deer\n271172,bird\n271173,airplane\n271174,dog\n271175,deer\n271176,ship\n271177,airplane\n271178,ship\n271179,frog\n271180,airplane\n271181,airplane\n271182,ship\n271183,frog\n271184,airplane\n271185,ship\n271186,cat\n271187,airplane\n271188,automobile\n271189,airplane\n271190,horse\n271191,dog\n271192,deer\n271193,cat\n271194,deer\n271195,cat\n271196,truck\n271197,bird\n271198,truck\n271199,deer\n271200,deer\n271201,bird\n271202,truck\n271203,automobile\n271204,truck\n271205,truck\n271206,bird\n271207,ship\n271208,frog\n271209,automobile\n271210,truck\n271211,truck\n271212,bird\n271213,bird\n271214,ship\n271215,frog\n271216,truck\n271217,cat\n271218,deer\n271219,truck\n271220,airplane\n271221,truck\n271222,deer\n271223,truck\n271224,bird\n271225,deer\n271226,frog\n271227,deer\n271228,truck\n271229,truck\n271230,truck\n271231,bird\n271232,airplane\n271233,truck\n271234,dog\n271235,automobile\n271236,dog\n271237,frog\n271238,dog\n271239,frog\n271240,cat\n271241,cat\n271242,bird\n271243,cat\n271244,dog\n271245,frog\n271246,frog\n271247,truck\n271248,airplane\n271249,automobile\n271250,deer\n271251,frog\n271252,dog\n271253,horse\n271254,ship\n271255,deer\n271256,deer\n271257,dog\n271258,frog\n271259,cat\n271260,frog\n271261,ship\n271262,deer\n271263,automobile\n271264,horse\n271265,airplane\n271266,deer\n271267,bird\n271268,cat\n271269,horse\n271270,airplane\n271271,deer\n271272,deer\n271273,deer\n271274,deer\n271275,deer\n271276,deer\n271277,deer\n271278,horse\n271279,ship\n271280,deer\n271281,airplane\n271282,cat\n271283,cat\n271284,cat\n271285,ship\n271286,dog\n271287,bird\n271288,dog\n271289,frog\n271290,dog\n271291,frog\n271292,deer\n271293,horse\n271294,deer\n271295,airplane\n271296,ship\n271297,dog\n271298,deer\n271299,ship\n271300,dog\n271301,frog\n271302,bird\n271303,deer\n271304,deer\n271305,dog\n271306,horse\n271307,automobile\n271308,cat\n271309,deer\n271310,automobile\n271311,deer\n271312,deer\n271313,airplane\n271314,dog\n271315,frog\n271316,ship\n271317,truck\n271318,airplane\n271319,dog\n271320,frog\n271321,dog\n271322,cat\n271323,cat\n271324,airplane\n271325,frog\n271326,truck\n271327,cat\n271328,frog\n271329,cat\n271330,truck\n271331,dog\n271332,deer\n271333,frog\n271334,airplane\n271335,automobile\n271336,cat\n271337,ship\n271338,deer\n271339,cat\n271340,automobile\n271341,cat\n271342,bird\n271343,truck\n271344,deer\n271345,frog\n271346,airplane\n271347,ship\n271348,truck\n271349,airplane\n271350,dog\n271351,horse\n271352,deer\n271353,horse\n271354,deer\n271355,automobile\n271356,deer\n271357,frog\n271358,deer\n271359,frog\n271360,truck\n271361,horse\n271362,ship\n271363,deer\n271364,automobile\n271365,frog\n271366,dog\n271367,frog\n271368,cat\n271369,bird\n271370,airplane\n271371,bird\n271372,horse\n271373,horse\n271374,dog\n271375,horse\n271376,truck\n271377,bird\n271378,airplane\n271379,airplane\n271380,frog\n271381,ship\n271382,dog\n271383,horse\n271384,horse\n271385,bird\n271386,ship\n271387,automobile\n271388,frog\n271389,frog\n271390,bird\n271391,cat\n271392,airplane\n271393,frog\n271394,cat\n271395,cat\n271396,bird\n271397,horse\n271398,frog\n271399,truck\n271400,truck\n271401,deer\n271402,truck\n271403,deer\n271404,cat\n271405,deer\n271406,truck\n271407,ship\n271408,cat\n271409,truck\n271410,bird\n271411,frog\n271412,automobile\n271413,deer\n271414,ship\n271415,dog\n271416,cat\n271417,horse\n271418,bird\n271419,ship\n271420,ship\n271421,bird\n271422,frog\n271423,ship\n271424,truck\n271425,truck\n271426,automobile\n271427,cat\n271428,deer\n271429,cat\n271430,ship\n271431,horse\n271432,ship\n271433,deer\n271434,airplane\n271435,automobile\n271436,bird\n271437,bird\n271438,ship\n271439,cat\n271440,ship\n271441,airplane\n271442,truck\n271443,bird\n271444,deer\n271445,cat\n271446,cat\n271447,cat\n271448,deer\n271449,airplane\n271450,horse\n271451,frog\n271452,airplane\n271453,horse\n271454,cat\n271455,airplane\n271456,airplane\n271457,automobile\n271458,cat\n271459,automobile\n271460,cat\n271461,deer\n271462,ship\n271463,dog\n271464,bird\n271465,cat\n271466,frog\n271467,ship\n271468,truck\n271469,deer\n271470,automobile\n271471,ship\n271472,truck\n271473,truck\n271474,truck\n271475,airplane\n271476,dog\n271477,deer\n271478,bird\n271479,frog\n271480,automobile\n271481,airplane\n271482,frog\n271483,horse\n271484,truck\n271485,dog\n271486,horse\n271487,airplane\n271488,cat\n271489,horse\n271490,cat\n271491,cat\n271492,frog\n271493,deer\n271494,bird\n271495,truck\n271496,airplane\n271497,dog\n271498,deer\n271499,deer\n271500,deer\n271501,ship\n271502,deer\n271503,bird\n271504,dog\n271505,truck\n271506,cat\n271507,bird\n271508,truck\n271509,dog\n271510,frog\n271511,horse\n271512,dog\n271513,frog\n271514,cat\n271515,frog\n271516,frog\n271517,truck\n271518,horse\n271519,airplane\n271520,deer\n271521,cat\n271522,bird\n271523,airplane\n271524,deer\n271525,deer\n271526,truck\n271527,dog\n271528,dog\n271529,cat\n271530,truck\n271531,bird\n271532,truck\n271533,deer\n271534,deer\n271535,cat\n271536,dog\n271537,airplane\n271538,cat\n271539,frog\n271540,ship\n271541,deer\n271542,truck\n271543,airplane\n271544,frog\n271545,dog\n271546,bird\n271547,cat\n271548,horse\n271549,automobile\n271550,bird\n271551,horse\n271552,bird\n271553,cat\n271554,cat\n271555,cat\n271556,automobile\n271557,horse\n271558,deer\n271559,automobile\n271560,dog\n271561,truck\n271562,bird\n271563,deer\n271564,horse\n271565,deer\n271566,horse\n271567,deer\n271568,airplane\n271569,dog\n271570,dog\n271571,deer\n271572,ship\n271573,cat\n271574,frog\n271575,frog\n271576,bird\n271577,airplane\n271578,airplane\n271579,airplane\n271580,deer\n271581,automobile\n271582,truck\n271583,dog\n271584,frog\n271585,cat\n271586,truck\n271587,frog\n271588,cat\n271589,truck\n271590,truck\n271591,ship\n271592,bird\n271593,truck\n271594,automobile\n271595,airplane\n271596,truck\n271597,horse\n271598,bird\n271599,frog\n271600,cat\n271601,deer\n271602,truck\n271603,airplane\n271604,dog\n271605,bird\n271606,deer\n271607,bird\n271608,automobile\n271609,cat\n271610,dog\n271611,truck\n271612,bird\n271613,cat\n271614,airplane\n271615,frog\n271616,cat\n271617,frog\n271618,automobile\n271619,cat\n271620,dog\n271621,airplane\n271622,truck\n271623,deer\n271624,deer\n271625,bird\n271626,deer\n271627,horse\n271628,automobile\n271629,dog\n271630,bird\n271631,cat\n271632,airplane\n271633,horse\n271634,automobile\n271635,airplane\n271636,cat\n271637,bird\n271638,automobile\n271639,cat\n271640,automobile\n271641,frog\n271642,cat\n271643,cat\n271644,automobile\n271645,deer\n271646,cat\n271647,automobile\n271648,cat\n271649,deer\n271650,deer\n271651,horse\n271652,truck\n271653,bird\n271654,deer\n271655,airplane\n271656,cat\n271657,cat\n271658,horse\n271659,cat\n271660,bird\n271661,horse\n271662,cat\n271663,airplane\n271664,horse\n271665,frog\n271666,cat\n271667,horse\n271668,airplane\n271669,airplane\n271670,airplane\n271671,ship\n271672,truck\n271673,cat\n271674,bird\n271675,frog\n271676,truck\n271677,deer\n271678,truck\n271679,frog\n271680,dog\n271681,frog\n271682,truck\n271683,dog\n271684,truck\n271685,horse\n271686,frog\n271687,frog\n271688,ship\n271689,automobile\n271690,frog\n271691,ship\n271692,frog\n271693,horse\n271694,ship\n271695,truck\n271696,airplane\n271697,deer\n271698,deer\n271699,bird\n271700,deer\n271701,truck\n271702,horse\n271703,frog\n271704,truck\n271705,cat\n271706,cat\n271707,cat\n271708,truck\n271709,dog\n271710,ship\n271711,truck\n271712,horse\n271713,airplane\n271714,deer\n271715,truck\n271716,bird\n271717,frog\n271718,ship\n271719,bird\n271720,airplane\n271721,cat\n271722,dog\n271723,bird\n271724,cat\n271725,truck\n271726,bird\n271727,horse\n271728,dog\n271729,horse\n271730,airplane\n271731,horse\n271732,deer\n271733,dog\n271734,frog\n271735,cat\n271736,truck\n271737,frog\n271738,automobile\n271739,cat\n271740,cat\n271741,bird\n271742,bird\n271743,dog\n271744,frog\n271745,automobile\n271746,cat\n271747,ship\n271748,truck\n271749,bird\n271750,airplane\n271751,deer\n271752,horse\n271753,horse\n271754,bird\n271755,frog\n271756,bird\n271757,airplane\n271758,deer\n271759,frog\n271760,horse\n271761,frog\n271762,frog\n271763,airplane\n271764,airplane\n271765,truck\n271766,automobile\n271767,cat\n271768,deer\n271769,deer\n271770,airplane\n271771,frog\n271772,deer\n271773,cat\n271774,dog\n271775,deer\n271776,horse\n271777,airplane\n271778,dog\n271779,frog\n271780,cat\n271781,deer\n271782,automobile\n271783,truck\n271784,bird\n271785,horse\n271786,cat\n271787,cat\n271788,frog\n271789,ship\n271790,truck\n271791,dog\n271792,automobile\n271793,ship\n271794,deer\n271795,horse\n271796,horse\n271797,bird\n271798,frog\n271799,truck\n271800,frog\n271801,frog\n271802,horse\n271803,frog\n271804,dog\n271805,ship\n271806,truck\n271807,dog\n271808,bird\n271809,cat\n271810,bird\n271811,truck\n271812,bird\n271813,cat\n271814,airplane\n271815,cat\n271816,frog\n271817,frog\n271818,horse\n271819,dog\n271820,dog\n271821,cat\n271822,ship\n271823,bird\n271824,airplane\n271825,ship\n271826,frog\n271827,automobile\n271828,frog\n271829,bird\n271830,automobile\n271831,frog\n271832,bird\n271833,airplane\n271834,ship\n271835,airplane\n271836,horse\n271837,horse\n271838,frog\n271839,cat\n271840,bird\n271841,deer\n271842,horse\n271843,automobile\n271844,frog\n271845,horse\n271846,bird\n271847,bird\n271848,horse\n271849,airplane\n271850,deer\n271851,truck\n271852,cat\n271853,ship\n271854,airplane\n271855,cat\n271856,truck\n271857,dog\n271858,bird\n271859,frog\n271860,dog\n271861,truck\n271862,cat\n271863,frog\n271864,cat\n271865,dog\n271866,truck\n271867,bird\n271868,horse\n271869,horse\n271870,dog\n271871,bird\n271872,cat\n271873,airplane\n271874,cat\n271875,bird\n271876,deer\n271877,horse\n271878,airplane\n271879,truck\n271880,horse\n271881,horse\n271882,automobile\n271883,dog\n271884,horse\n271885,cat\n271886,ship\n271887,ship\n271888,deer\n271889,dog\n271890,airplane\n271891,cat\n271892,cat\n271893,dog\n271894,deer\n271895,deer\n271896,airplane\n271897,bird\n271898,frog\n271899,ship\n271900,automobile\n271901,deer\n271902,ship\n271903,horse\n271904,ship\n271905,airplane\n271906,dog\n271907,frog\n271908,ship\n271909,cat\n271910,bird\n271911,dog\n271912,airplane\n271913,bird\n271914,automobile\n271915,truck\n271916,deer\n271917,deer\n271918,automobile\n271919,deer\n271920,bird\n271921,truck\n271922,dog\n271923,truck\n271924,truck\n271925,cat\n271926,cat\n271927,truck\n271928,cat\n271929,bird\n271930,truck\n271931,automobile\n271932,cat\n271933,frog\n271934,deer\n271935,truck\n271936,dog\n271937,automobile\n271938,cat\n271939,cat\n271940,frog\n271941,ship\n271942,dog\n271943,ship\n271944,deer\n271945,ship\n271946,cat\n271947,horse\n271948,deer\n271949,airplane\n271950,truck\n271951,automobile\n271952,automobile\n271953,frog\n271954,frog\n271955,frog\n271956,ship\n271957,airplane\n271958,ship\n271959,deer\n271960,dog\n271961,bird\n271962,airplane\n271963,airplane\n271964,cat\n271965,automobile\n271966,bird\n271967,truck\n271968,truck\n271969,automobile\n271970,truck\n271971,deer\n271972,truck\n271973,deer\n271974,cat\n271975,cat\n271976,frog\n271977,deer\n271978,bird\n271979,deer\n271980,frog\n271981,airplane\n271982,bird\n271983,ship\n271984,deer\n271985,dog\n271986,cat\n271987,deer\n271988,horse\n271989,deer\n271990,deer\n271991,bird\n271992,airplane\n271993,dog\n271994,dog\n271995,bird\n271996,airplane\n271997,ship\n271998,horse\n271999,ship\n272000,horse\n272001,ship\n272002,truck\n272003,deer\n272004,cat\n272005,horse\n272006,horse\n272007,airplane\n272008,cat\n272009,bird\n272010,dog\n272011,truck\n272012,frog\n272013,frog\n272014,dog\n272015,frog\n272016,automobile\n272017,cat\n272018,dog\n272019,airplane\n272020,truck\n272021,cat\n272022,cat\n272023,bird\n272024,truck\n272025,horse\n272026,deer\n272027,truck\n272028,horse\n272029,airplane\n272030,airplane\n272031,truck\n272032,automobile\n272033,bird\n272034,ship\n272035,deer\n272036,ship\n272037,frog\n272038,automobile\n272039,deer\n272040,airplane\n272041,deer\n272042,deer\n272043,cat\n272044,dog\n272045,ship\n272046,airplane\n272047,horse\n272048,deer\n272049,airplane\n272050,automobile\n272051,deer\n272052,deer\n272053,automobile\n272054,airplane\n272055,cat\n272056,automobile\n272057,cat\n272058,deer\n272059,frog\n272060,cat\n272061,ship\n272062,truck\n272063,dog\n272064,deer\n272065,cat\n272066,airplane\n272067,automobile\n272068,airplane\n272069,ship\n272070,cat\n272071,cat\n272072,cat\n272073,ship\n272074,frog\n272075,cat\n272076,deer\n272077,cat\n272078,cat\n272079,frog\n272080,automobile\n272081,horse\n272082,ship\n272083,bird\n272084,ship\n272085,dog\n272086,truck\n272087,airplane\n272088,airplane\n272089,bird\n272090,frog\n272091,automobile\n272092,ship\n272093,deer\n272094,dog\n272095,cat\n272096,truck\n272097,bird\n272098,deer\n272099,cat\n272100,bird\n272101,horse\n272102,automobile\n272103,cat\n272104,dog\n272105,truck\n272106,cat\n272107,truck\n272108,frog\n272109,bird\n272110,frog\n272111,airplane\n272112,horse\n272113,bird\n272114,deer\n272115,frog\n272116,automobile\n272117,airplane\n272118,dog\n272119,deer\n272120,frog\n272121,truck\n272122,bird\n272123,deer\n272124,dog\n272125,deer\n272126,deer\n272127,deer\n272128,ship\n272129,deer\n272130,horse\n272131,deer\n272132,deer\n272133,frog\n272134,frog\n272135,cat\n272136,airplane\n272137,ship\n272138,truck\n272139,horse\n272140,ship\n272141,ship\n272142,ship\n272143,horse\n272144,frog\n272145,ship\n272146,bird\n272147,truck\n272148,dog\n272149,dog\n272150,truck\n272151,truck\n272152,bird\n272153,bird\n272154,dog\n272155,cat\n272156,truck\n272157,deer\n272158,bird\n272159,bird\n272160,frog\n272161,cat\n272162,deer\n272163,dog\n272164,horse\n272165,automobile\n272166,frog\n272167,cat\n272168,cat\n272169,horse\n272170,horse\n272171,dog\n272172,bird\n272173,cat\n272174,bird\n272175,automobile\n272176,bird\n272177,deer\n272178,cat\n272179,deer\n272180,ship\n272181,airplane\n272182,truck\n272183,cat\n272184,cat\n272185,deer\n272186,bird\n272187,cat\n272188,deer\n272189,truck\n272190,deer\n272191,cat\n272192,dog\n272193,ship\n272194,horse\n272195,airplane\n272196,deer\n272197,dog\n272198,airplane\n272199,automobile\n272200,truck\n272201,cat\n272202,frog\n272203,truck\n272204,cat\n272205,deer\n272206,bird\n272207,airplane\n272208,frog\n272209,truck\n272210,truck\n272211,horse\n272212,airplane\n272213,dog\n272214,cat\n272215,ship\n272216,airplane\n272217,truck\n272218,horse\n272219,deer\n272220,truck\n272221,automobile\n272222,dog\n272223,dog\n272224,airplane\n272225,truck\n272226,horse\n272227,frog\n272228,airplane\n272229,deer\n272230,truck\n272231,dog\n272232,cat\n272233,truck\n272234,cat\n272235,cat\n272236,dog\n272237,truck\n272238,ship\n272239,dog\n272240,horse\n272241,dog\n272242,deer\n272243,horse\n272244,cat\n272245,dog\n272246,horse\n272247,airplane\n272248,bird\n272249,horse\n272250,airplane\n272251,frog\n272252,airplane\n272253,automobile\n272254,ship\n272255,frog\n272256,bird\n272257,cat\n272258,frog\n272259,automobile\n272260,ship\n272261,airplane\n272262,cat\n272263,deer\n272264,truck\n272265,automobile\n272266,truck\n272267,bird\n272268,frog\n272269,ship\n272270,deer\n272271,cat\n272272,bird\n272273,horse\n272274,airplane\n272275,dog\n272276,frog\n272277,cat\n272278,dog\n272279,truck\n272280,ship\n272281,ship\n272282,deer\n272283,horse\n272284,horse\n272285,dog\n272286,cat\n272287,truck\n272288,bird\n272289,automobile\n272290,horse\n272291,airplane\n272292,dog\n272293,frog\n272294,frog\n272295,cat\n272296,deer\n272297,dog\n272298,deer\n272299,bird\n272300,frog\n272301,airplane\n272302,deer\n272303,horse\n272304,frog\n272305,frog\n272306,automobile\n272307,dog\n272308,bird\n272309,deer\n272310,horse\n272311,airplane\n272312,deer\n272313,cat\n272314,dog\n272315,deer\n272316,deer\n272317,horse\n272318,frog\n272319,ship\n272320,frog\n272321,truck\n272322,cat\n272323,horse\n272324,horse\n272325,ship\n272326,cat\n272327,automobile\n272328,dog\n272329,cat\n272330,cat\n272331,ship\n272332,cat\n272333,bird\n272334,dog\n272335,cat\n272336,horse\n272337,cat\n272338,truck\n272339,cat\n272340,bird\n272341,deer\n272342,dog\n272343,cat\n272344,truck\n272345,cat\n272346,airplane\n272347,airplane\n272348,frog\n272349,truck\n272350,deer\n272351,cat\n272352,deer\n272353,bird\n272354,deer\n272355,frog\n272356,truck\n272357,horse\n272358,horse\n272359,airplane\n272360,horse\n272361,deer\n272362,deer\n272363,deer\n272364,frog\n272365,dog\n272366,deer\n272367,bird\n272368,deer\n272369,dog\n272370,airplane\n272371,airplane\n272372,cat\n272373,cat\n272374,truck\n272375,bird\n272376,horse\n272377,horse\n272378,frog\n272379,airplane\n272380,cat\n272381,cat\n272382,frog\n272383,bird\n272384,airplane\n272385,cat\n272386,automobile\n272387,horse\n272388,cat\n272389,airplane\n272390,automobile\n272391,ship\n272392,cat\n272393,horse\n272394,ship\n272395,dog\n272396,frog\n272397,frog\n272398,frog\n272399,ship\n272400,deer\n272401,bird\n272402,ship\n272403,truck\n272404,horse\n272405,airplane\n272406,horse\n272407,ship\n272408,automobile\n272409,cat\n272410,dog\n272411,deer\n272412,bird\n272413,ship\n272414,automobile\n272415,cat\n272416,horse\n272417,cat\n272418,dog\n272419,cat\n272420,deer\n272421,dog\n272422,automobile\n272423,airplane\n272424,horse\n272425,dog\n272426,cat\n272427,cat\n272428,cat\n272429,ship\n272430,frog\n272431,cat\n272432,cat\n272433,ship\n272434,automobile\n272435,frog\n272436,truck\n272437,frog\n272438,truck\n272439,truck\n272440,cat\n272441,cat\n272442,cat\n272443,ship\n272444,cat\n272445,horse\n272446,truck\n272447,cat\n272448,horse\n272449,deer\n272450,automobile\n272451,dog\n272452,deer\n272453,ship\n272454,dog\n272455,ship\n272456,deer\n272457,airplane\n272458,truck\n272459,frog\n272460,ship\n272461,deer\n272462,cat\n272463,cat\n272464,ship\n272465,ship\n272466,ship\n272467,bird\n272468,bird\n272469,airplane\n272470,airplane\n272471,horse\n272472,truck\n272473,bird\n272474,horse\n272475,horse\n272476,horse\n272477,frog\n272478,cat\n272479,bird\n272480,horse\n272481,dog\n272482,automobile\n272483,deer\n272484,frog\n272485,frog\n272486,horse\n272487,bird\n272488,horse\n272489,airplane\n272490,frog\n272491,bird\n272492,dog\n272493,ship\n272494,ship\n272495,cat\n272496,deer\n272497,automobile\n272498,ship\n272499,cat\n272500,horse\n272501,bird\n272502,frog\n272503,horse\n272504,truck\n272505,deer\n272506,ship\n272507,bird\n272508,truck\n272509,airplane\n272510,dog\n272511,truck\n272512,truck\n272513,ship\n272514,ship\n272515,deer\n272516,horse\n272517,truck\n272518,dog\n272519,ship\n272520,bird\n272521,cat\n272522,dog\n272523,frog\n272524,truck\n272525,truck\n272526,automobile\n272527,bird\n272528,truck\n272529,horse\n272530,cat\n272531,truck\n272532,cat\n272533,ship\n272534,ship\n272535,truck\n272536,deer\n272537,cat\n272538,truck\n272539,ship\n272540,dog\n272541,airplane\n272542,airplane\n272543,cat\n272544,horse\n272545,bird\n272546,bird\n272547,cat\n272548,deer\n272549,ship\n272550,frog\n272551,airplane\n272552,cat\n272553,deer\n272554,horse\n272555,frog\n272556,frog\n272557,dog\n272558,deer\n272559,truck\n272560,airplane\n272561,truck\n272562,frog\n272563,deer\n272564,deer\n272565,deer\n272566,airplane\n272567,frog\n272568,truck\n272569,automobile\n272570,deer\n272571,deer\n272572,cat\n272573,deer\n272574,airplane\n272575,airplane\n272576,dog\n272577,horse\n272578,dog\n272579,ship\n272580,cat\n272581,bird\n272582,truck\n272583,bird\n272584,frog\n272585,airplane\n272586,dog\n272587,deer\n272588,frog\n272589,ship\n272590,deer\n272591,cat\n272592,deer\n272593,airplane\n272594,deer\n272595,ship\n272596,bird\n272597,airplane\n272598,bird\n272599,airplane\n272600,dog\n272601,airplane\n272602,automobile\n272603,frog\n272604,bird\n272605,dog\n272606,deer\n272607,automobile\n272608,cat\n272609,cat\n272610,airplane\n272611,cat\n272612,ship\n272613,horse\n272614,truck\n272615,ship\n272616,airplane\n272617,deer\n272618,truck\n272619,cat\n272620,cat\n272621,cat\n272622,dog\n272623,bird\n272624,frog\n272625,frog\n272626,truck\n272627,truck\n272628,truck\n272629,automobile\n272630,automobile\n272631,horse\n272632,frog\n272633,horse\n272634,frog\n272635,deer\n272636,frog\n272637,ship\n272638,airplane\n272639,cat\n272640,deer\n272641,dog\n272642,airplane\n272643,automobile\n272644,deer\n272645,bird\n272646,airplane\n272647,dog\n272648,ship\n272649,cat\n272650,cat\n272651,ship\n272652,dog\n272653,airplane\n272654,truck\n272655,ship\n272656,cat\n272657,truck\n272658,cat\n272659,bird\n272660,airplane\n272661,bird\n272662,automobile\n272663,deer\n272664,bird\n272665,cat\n272666,automobile\n272667,deer\n272668,truck\n272669,deer\n272670,bird\n272671,frog\n272672,deer\n272673,dog\n272674,deer\n272675,horse\n272676,airplane\n272677,cat\n272678,truck\n272679,dog\n272680,horse\n272681,cat\n272682,bird\n272683,truck\n272684,cat\n272685,frog\n272686,frog\n272687,dog\n272688,frog\n272689,airplane\n272690,airplane\n272691,deer\n272692,ship\n272693,automobile\n272694,automobile\n272695,ship\n272696,horse\n272697,deer\n272698,automobile\n272699,truck\n272700,dog\n272701,automobile\n272702,bird\n272703,cat\n272704,deer\n272705,frog\n272706,deer\n272707,deer\n272708,bird\n272709,automobile\n272710,ship\n272711,automobile\n272712,truck\n272713,horse\n272714,frog\n272715,bird\n272716,cat\n272717,deer\n272718,deer\n272719,truck\n272720,truck\n272721,deer\n272722,deer\n272723,frog\n272724,deer\n272725,airplane\n272726,horse\n272727,frog\n272728,deer\n272729,truck\n272730,frog\n272731,bird\n272732,cat\n272733,airplane\n272734,truck\n272735,cat\n272736,ship\n272737,horse\n272738,airplane\n272739,dog\n272740,cat\n272741,deer\n272742,airplane\n272743,truck\n272744,horse\n272745,automobile\n272746,dog\n272747,bird\n272748,dog\n272749,deer\n272750,ship\n272751,frog\n272752,horse\n272753,bird\n272754,airplane\n272755,cat\n272756,dog\n272757,truck\n272758,frog\n272759,ship\n272760,ship\n272761,ship\n272762,airplane\n272763,frog\n272764,frog\n272765,cat\n272766,cat\n272767,automobile\n272768,frog\n272769,automobile\n272770,deer\n272771,horse\n272772,dog\n272773,cat\n272774,deer\n272775,bird\n272776,deer\n272777,bird\n272778,bird\n272779,bird\n272780,horse\n272781,cat\n272782,automobile\n272783,airplane\n272784,dog\n272785,deer\n272786,horse\n272787,ship\n272788,deer\n272789,airplane\n272790,airplane\n272791,frog\n272792,deer\n272793,truck\n272794,deer\n272795,horse\n272796,horse\n272797,airplane\n272798,horse\n272799,deer\n272800,cat\n272801,truck\n272802,cat\n272803,bird\n272804,ship\n272805,truck\n272806,frog\n272807,bird\n272808,frog\n272809,deer\n272810,airplane\n272811,deer\n272812,airplane\n272813,automobile\n272814,cat\n272815,bird\n272816,automobile\n272817,frog\n272818,deer\n272819,automobile\n272820,ship\n272821,frog\n272822,ship\n272823,ship\n272824,frog\n272825,bird\n272826,bird\n272827,cat\n272828,deer\n272829,dog\n272830,frog\n272831,automobile\n272832,truck\n272833,bird\n272834,dog\n272835,ship\n272836,automobile\n272837,truck\n272838,truck\n272839,dog\n272840,bird\n272841,frog\n272842,horse\n272843,horse\n272844,airplane\n272845,automobile\n272846,ship\n272847,bird\n272848,frog\n272849,automobile\n272850,cat\n272851,automobile\n272852,bird\n272853,bird\n272854,dog\n272855,deer\n272856,automobile\n272857,airplane\n272858,horse\n272859,automobile\n272860,dog\n272861,deer\n272862,horse\n272863,automobile\n272864,bird\n272865,airplane\n272866,cat\n272867,cat\n272868,frog\n272869,bird\n272870,truck\n272871,dog\n272872,dog\n272873,frog\n272874,cat\n272875,dog\n272876,ship\n272877,ship\n272878,horse\n272879,horse\n272880,deer\n272881,truck\n272882,airplane\n272883,bird\n272884,automobile\n272885,frog\n272886,truck\n272887,horse\n272888,dog\n272889,automobile\n272890,cat\n272891,horse\n272892,frog\n272893,frog\n272894,frog\n272895,deer\n272896,horse\n272897,horse\n272898,cat\n272899,cat\n272900,deer\n272901,deer\n272902,deer\n272903,deer\n272904,frog\n272905,ship\n272906,deer\n272907,bird\n272908,truck\n272909,airplane\n272910,frog\n272911,cat\n272912,ship\n272913,deer\n272914,deer\n272915,automobile\n272916,frog\n272917,frog\n272918,frog\n272919,truck\n272920,truck\n272921,deer\n272922,automobile\n272923,ship\n272924,deer\n272925,bird\n272926,airplane\n272927,automobile\n272928,ship\n272929,horse\n272930,frog\n272931,horse\n272932,cat\n272933,truck\n272934,cat\n272935,airplane\n272936,horse\n272937,automobile\n272938,dog\n272939,automobile\n272940,frog\n272941,horse\n272942,ship\n272943,frog\n272944,deer\n272945,airplane\n272946,dog\n272947,cat\n272948,cat\n272949,airplane\n272950,horse\n272951,airplane\n272952,ship\n272953,frog\n272954,truck\n272955,truck\n272956,ship\n272957,automobile\n272958,frog\n272959,horse\n272960,frog\n272961,airplane\n272962,airplane\n272963,dog\n272964,automobile\n272965,horse\n272966,dog\n272967,bird\n272968,truck\n272969,cat\n272970,airplane\n272971,frog\n272972,ship\n272973,deer\n272974,deer\n272975,horse\n272976,truck\n272977,ship\n272978,deer\n272979,dog\n272980,horse\n272981,ship\n272982,ship\n272983,frog\n272984,cat\n272985,automobile\n272986,bird\n272987,cat\n272988,airplane\n272989,bird\n272990,bird\n272991,dog\n272992,airplane\n272993,deer\n272994,deer\n272995,truck\n272996,airplane\n272997,automobile\n272998,ship\n272999,frog\n273000,cat\n273001,deer\n273002,dog\n273003,ship\n273004,ship\n273005,frog\n273006,horse\n273007,truck\n273008,cat\n273009,automobile\n273010,bird\n273011,bird\n273012,ship\n273013,cat\n273014,deer\n273015,dog\n273016,bird\n273017,frog\n273018,dog\n273019,automobile\n273020,truck\n273021,frog\n273022,ship\n273023,airplane\n273024,horse\n273025,truck\n273026,dog\n273027,truck\n273028,ship\n273029,frog\n273030,airplane\n273031,ship\n273032,cat\n273033,ship\n273034,frog\n273035,airplane\n273036,ship\n273037,horse\n273038,frog\n273039,ship\n273040,airplane\n273041,truck\n273042,dog\n273043,ship\n273044,automobile\n273045,automobile\n273046,automobile\n273047,deer\n273048,frog\n273049,bird\n273050,horse\n273051,ship\n273052,cat\n273053,deer\n273054,cat\n273055,deer\n273056,horse\n273057,truck\n273058,ship\n273059,cat\n273060,automobile\n273061,deer\n273062,frog\n273063,truck\n273064,bird\n273065,bird\n273066,horse\n273067,frog\n273068,bird\n273069,bird\n273070,frog\n273071,cat\n273072,cat\n273073,cat\n273074,dog\n273075,bird\n273076,bird\n273077,cat\n273078,truck\n273079,bird\n273080,airplane\n273081,airplane\n273082,dog\n273083,bird\n273084,ship\n273085,automobile\n273086,airplane\n273087,truck\n273088,dog\n273089,deer\n273090,frog\n273091,truck\n273092,frog\n273093,dog\n273094,ship\n273095,horse\n273096,horse\n273097,cat\n273098,deer\n273099,airplane\n273100,automobile\n273101,cat\n273102,dog\n273103,cat\n273104,ship\n273105,airplane\n273106,automobile\n273107,deer\n273108,frog\n273109,truck\n273110,automobile\n273111,deer\n273112,deer\n273113,truck\n273114,ship\n273115,bird\n273116,deer\n273117,dog\n273118,dog\n273119,horse\n273120,cat\n273121,deer\n273122,automobile\n273123,deer\n273124,truck\n273125,dog\n273126,deer\n273127,frog\n273128,frog\n273129,horse\n273130,frog\n273131,cat\n273132,bird\n273133,airplane\n273134,airplane\n273135,frog\n273136,cat\n273137,truck\n273138,ship\n273139,airplane\n273140,automobile\n273141,cat\n273142,deer\n273143,airplane\n273144,dog\n273145,dog\n273146,bird\n273147,truck\n273148,airplane\n273149,frog\n273150,truck\n273151,ship\n273152,automobile\n273153,cat\n273154,dog\n273155,automobile\n273156,ship\n273157,cat\n273158,truck\n273159,ship\n273160,cat\n273161,frog\n273162,deer\n273163,automobile\n273164,deer\n273165,ship\n273166,deer\n273167,ship\n273168,cat\n273169,dog\n273170,truck\n273171,dog\n273172,cat\n273173,ship\n273174,deer\n273175,truck\n273176,ship\n273177,cat\n273178,cat\n273179,cat\n273180,bird\n273181,frog\n273182,truck\n273183,airplane\n273184,ship\n273185,frog\n273186,truck\n273187,automobile\n273188,frog\n273189,cat\n273190,automobile\n273191,ship\n273192,airplane\n273193,frog\n273194,airplane\n273195,deer\n273196,dog\n273197,frog\n273198,dog\n273199,cat\n273200,dog\n273201,deer\n273202,ship\n273203,frog\n273204,bird\n273205,bird\n273206,deer\n273207,automobile\n273208,frog\n273209,airplane\n273210,bird\n273211,dog\n273212,cat\n273213,cat\n273214,bird\n273215,frog\n273216,deer\n273217,horse\n273218,bird\n273219,horse\n273220,cat\n273221,frog\n273222,bird\n273223,horse\n273224,cat\n273225,automobile\n273226,frog\n273227,dog\n273228,truck\n273229,ship\n273230,cat\n273231,truck\n273232,airplane\n273233,automobile\n273234,truck\n273235,deer\n273236,cat\n273237,cat\n273238,dog\n273239,horse\n273240,frog\n273241,deer\n273242,deer\n273243,cat\n273244,horse\n273245,dog\n273246,dog\n273247,ship\n273248,frog\n273249,deer\n273250,truck\n273251,cat\n273252,bird\n273253,truck\n273254,horse\n273255,bird\n273256,frog\n273257,deer\n273258,bird\n273259,truck\n273260,truck\n273261,ship\n273262,cat\n273263,ship\n273264,frog\n273265,airplane\n273266,dog\n273267,cat\n273268,automobile\n273269,deer\n273270,airplane\n273271,automobile\n273272,cat\n273273,airplane\n273274,cat\n273275,dog\n273276,truck\n273277,dog\n273278,frog\n273279,deer\n273280,cat\n273281,cat\n273282,cat\n273283,horse\n273284,frog\n273285,truck\n273286,airplane\n273287,ship\n273288,frog\n273289,ship\n273290,deer\n273291,bird\n273292,ship\n273293,automobile\n273294,dog\n273295,truck\n273296,deer\n273297,cat\n273298,deer\n273299,ship\n273300,airplane\n273301,automobile\n273302,truck\n273303,horse\n273304,ship\n273305,cat\n273306,deer\n273307,automobile\n273308,cat\n273309,bird\n273310,truck\n273311,automobile\n273312,airplane\n273313,cat\n273314,bird\n273315,airplane\n273316,dog\n273317,cat\n273318,ship\n273319,frog\n273320,dog\n273321,automobile\n273322,ship\n273323,frog\n273324,bird\n273325,deer\n273326,airplane\n273327,cat\n273328,truck\n273329,automobile\n273330,cat\n273331,ship\n273332,frog\n273333,deer\n273334,cat\n273335,bird\n273336,horse\n273337,airplane\n273338,truck\n273339,frog\n273340,deer\n273341,bird\n273342,truck\n273343,cat\n273344,automobile\n273345,airplane\n273346,bird\n273347,frog\n273348,ship\n273349,dog\n273350,truck\n273351,horse\n273352,ship\n273353,deer\n273354,frog\n273355,deer\n273356,cat\n273357,deer\n273358,airplane\n273359,frog\n273360,automobile\n273361,frog\n273362,bird\n273363,horse\n273364,frog\n273365,truck\n273366,truck\n273367,airplane\n273368,airplane\n273369,dog\n273370,frog\n273371,ship\n273372,deer\n273373,truck\n273374,deer\n273375,ship\n273376,ship\n273377,truck\n273378,horse\n273379,cat\n273380,ship\n273381,truck\n273382,frog\n273383,cat\n273384,truck\n273385,airplane\n273386,deer\n273387,frog\n273388,dog\n273389,ship\n273390,frog\n273391,frog\n273392,truck\n273393,deer\n273394,automobile\n273395,automobile\n273396,cat\n273397,ship\n273398,bird\n273399,truck\n273400,bird\n273401,deer\n273402,truck\n273403,dog\n273404,cat\n273405,horse\n273406,frog\n273407,deer\n273408,truck\n273409,truck\n273410,frog\n273411,airplane\n273412,ship\n273413,frog\n273414,ship\n273415,cat\n273416,cat\n273417,truck\n273418,horse\n273419,frog\n273420,airplane\n273421,horse\n273422,truck\n273423,airplane\n273424,cat\n273425,horse\n273426,truck\n273427,airplane\n273428,ship\n273429,cat\n273430,airplane\n273431,airplane\n273432,frog\n273433,bird\n273434,truck\n273435,airplane\n273436,deer\n273437,cat\n273438,cat\n273439,ship\n273440,dog\n273441,truck\n273442,deer\n273443,dog\n273444,automobile\n273445,deer\n273446,horse\n273447,airplane\n273448,deer\n273449,ship\n273450,cat\n273451,cat\n273452,frog\n273453,airplane\n273454,frog\n273455,deer\n273456,deer\n273457,bird\n273458,cat\n273459,horse\n273460,bird\n273461,horse\n273462,frog\n273463,deer\n273464,ship\n273465,ship\n273466,truck\n273467,airplane\n273468,deer\n273469,truck\n273470,deer\n273471,frog\n273472,airplane\n273473,airplane\n273474,bird\n273475,frog\n273476,cat\n273477,deer\n273478,horse\n273479,frog\n273480,deer\n273481,truck\n273482,airplane\n273483,truck\n273484,ship\n273485,cat\n273486,ship\n273487,truck\n273488,deer\n273489,deer\n273490,ship\n273491,cat\n273492,automobile\n273493,cat\n273494,airplane\n273495,cat\n273496,dog\n273497,truck\n273498,horse\n273499,deer\n273500,truck\n273501,bird\n273502,truck\n273503,airplane\n273504,automobile\n273505,ship\n273506,bird\n273507,horse\n273508,frog\n273509,dog\n273510,dog\n273511,cat\n273512,airplane\n273513,airplane\n273514,deer\n273515,truck\n273516,truck\n273517,dog\n273518,bird\n273519,bird\n273520,airplane\n273521,truck\n273522,deer\n273523,dog\n273524,frog\n273525,deer\n273526,bird\n273527,horse\n273528,deer\n273529,frog\n273530,dog\n273531,cat\n273532,automobile\n273533,dog\n273534,automobile\n273535,horse\n273536,deer\n273537,ship\n273538,bird\n273539,horse\n273540,horse\n273541,bird\n273542,horse\n273543,bird\n273544,truck\n273545,cat\n273546,bird\n273547,automobile\n273548,dog\n273549,deer\n273550,dog\n273551,dog\n273552,truck\n273553,dog\n273554,cat\n273555,airplane\n273556,dog\n273557,automobile\n273558,bird\n273559,frog\n273560,airplane\n273561,deer\n273562,truck\n273563,dog\n273564,cat\n273565,horse\n273566,truck\n273567,deer\n273568,deer\n273569,horse\n273570,truck\n273571,frog\n273572,truck\n273573,truck\n273574,dog\n273575,truck\n273576,bird\n273577,cat\n273578,dog\n273579,ship\n273580,horse\n273581,deer\n273582,automobile\n273583,bird\n273584,cat\n273585,cat\n273586,airplane\n273587,cat\n273588,deer\n273589,deer\n273590,deer\n273591,bird\n273592,truck\n273593,deer\n273594,bird\n273595,cat\n273596,cat\n273597,cat\n273598,frog\n273599,airplane\n273600,dog\n273601,truck\n273602,horse\n273603,deer\n273604,ship\n273605,airplane\n273606,frog\n273607,cat\n273608,automobile\n273609,bird\n273610,truck\n273611,airplane\n273612,bird\n273613,cat\n273614,truck\n273615,frog\n273616,cat\n273617,automobile\n273618,bird\n273619,deer\n273620,ship\n273621,cat\n273622,bird\n273623,frog\n273624,cat\n273625,bird\n273626,bird\n273627,airplane\n273628,cat\n273629,truck\n273630,truck\n273631,frog\n273632,frog\n273633,deer\n273634,truck\n273635,frog\n273636,frog\n273637,deer\n273638,truck\n273639,frog\n273640,airplane\n273641,deer\n273642,truck\n273643,cat\n273644,automobile\n273645,deer\n273646,cat\n273647,cat\n273648,dog\n273649,deer\n273650,cat\n273651,automobile\n273652,cat\n273653,ship\n273654,bird\n273655,dog\n273656,airplane\n273657,dog\n273658,truck\n273659,truck\n273660,horse\n273661,ship\n273662,frog\n273663,frog\n273664,ship\n273665,bird\n273666,truck\n273667,cat\n273668,frog\n273669,dog\n273670,truck\n273671,ship\n273672,airplane\n273673,ship\n273674,airplane\n273675,truck\n273676,bird\n273677,deer\n273678,deer\n273679,cat\n273680,frog\n273681,bird\n273682,frog\n273683,horse\n273684,bird\n273685,frog\n273686,horse\n273687,dog\n273688,ship\n273689,bird\n273690,dog\n273691,frog\n273692,deer\n273693,frog\n273694,dog\n273695,automobile\n273696,bird\n273697,horse\n273698,frog\n273699,horse\n273700,deer\n273701,deer\n273702,deer\n273703,frog\n273704,deer\n273705,cat\n273706,truck\n273707,dog\n273708,cat\n273709,bird\n273710,cat\n273711,horse\n273712,ship\n273713,horse\n273714,airplane\n273715,ship\n273716,cat\n273717,truck\n273718,automobile\n273719,cat\n273720,cat\n273721,cat\n273722,deer\n273723,cat\n273724,bird\n273725,truck\n273726,deer\n273727,dog\n273728,frog\n273729,dog\n273730,bird\n273731,truck\n273732,dog\n273733,ship\n273734,frog\n273735,truck\n273736,truck\n273737,truck\n273738,ship\n273739,truck\n273740,ship\n273741,bird\n273742,horse\n273743,deer\n273744,cat\n273745,dog\n273746,horse\n273747,bird\n273748,automobile\n273749,frog\n273750,automobile\n273751,cat\n273752,ship\n273753,cat\n273754,deer\n273755,ship\n273756,automobile\n273757,bird\n273758,bird\n273759,frog\n273760,cat\n273761,automobile\n273762,bird\n273763,airplane\n273764,dog\n273765,truck\n273766,truck\n273767,cat\n273768,dog\n273769,bird\n273770,deer\n273771,deer\n273772,automobile\n273773,cat\n273774,cat\n273775,dog\n273776,horse\n273777,deer\n273778,airplane\n273779,deer\n273780,horse\n273781,frog\n273782,cat\n273783,horse\n273784,ship\n273785,airplane\n273786,airplane\n273787,truck\n273788,horse\n273789,truck\n273790,bird\n273791,bird\n273792,deer\n273793,automobile\n273794,dog\n273795,horse\n273796,ship\n273797,cat\n273798,ship\n273799,cat\n273800,deer\n273801,dog\n273802,bird\n273803,truck\n273804,horse\n273805,automobile\n273806,horse\n273807,truck\n273808,cat\n273809,horse\n273810,automobile\n273811,horse\n273812,deer\n273813,airplane\n273814,truck\n273815,horse\n273816,automobile\n273817,horse\n273818,cat\n273819,frog\n273820,horse\n273821,truck\n273822,cat\n273823,deer\n273824,cat\n273825,truck\n273826,cat\n273827,automobile\n273828,cat\n273829,airplane\n273830,deer\n273831,cat\n273832,truck\n273833,horse\n273834,bird\n273835,cat\n273836,deer\n273837,dog\n273838,ship\n273839,horse\n273840,truck\n273841,truck\n273842,deer\n273843,deer\n273844,dog\n273845,cat\n273846,deer\n273847,bird\n273848,frog\n273849,frog\n273850,cat\n273851,deer\n273852,deer\n273853,horse\n273854,horse\n273855,horse\n273856,horse\n273857,truck\n273858,automobile\n273859,airplane\n273860,bird\n273861,cat\n273862,automobile\n273863,frog\n273864,cat\n273865,ship\n273866,cat\n273867,bird\n273868,bird\n273869,cat\n273870,frog\n273871,horse\n273872,deer\n273873,truck\n273874,cat\n273875,frog\n273876,deer\n273877,frog\n273878,truck\n273879,cat\n273880,frog\n273881,frog\n273882,frog\n273883,cat\n273884,horse\n273885,automobile\n273886,airplane\n273887,cat\n273888,deer\n273889,frog\n273890,dog\n273891,cat\n273892,deer\n273893,airplane\n273894,airplane\n273895,dog\n273896,ship\n273897,cat\n273898,frog\n273899,deer\n273900,airplane\n273901,dog\n273902,deer\n273903,bird\n273904,deer\n273905,truck\n273906,horse\n273907,automobile\n273908,dog\n273909,dog\n273910,bird\n273911,truck\n273912,truck\n273913,dog\n273914,dog\n273915,cat\n273916,frog\n273917,dog\n273918,airplane\n273919,cat\n273920,deer\n273921,cat\n273922,ship\n273923,horse\n273924,truck\n273925,truck\n273926,bird\n273927,ship\n273928,airplane\n273929,bird\n273930,frog\n273931,deer\n273932,deer\n273933,deer\n273934,airplane\n273935,ship\n273936,bird\n273937,cat\n273938,automobile\n273939,frog\n273940,horse\n273941,bird\n273942,deer\n273943,cat\n273944,bird\n273945,cat\n273946,frog\n273947,cat\n273948,airplane\n273949,automobile\n273950,bird\n273951,automobile\n273952,airplane\n273953,cat\n273954,dog\n273955,dog\n273956,deer\n273957,deer\n273958,automobile\n273959,ship\n273960,cat\n273961,frog\n273962,deer\n273963,deer\n273964,deer\n273965,airplane\n273966,frog\n273967,deer\n273968,dog\n273969,bird\n273970,cat\n273971,cat\n273972,ship\n273973,dog\n273974,ship\n273975,automobile\n273976,bird\n273977,frog\n273978,cat\n273979,horse\n273980,bird\n273981,deer\n273982,dog\n273983,cat\n273984,horse\n273985,bird\n273986,cat\n273987,automobile\n273988,horse\n273989,dog\n273990,horse\n273991,dog\n273992,deer\n273993,dog\n273994,cat\n273995,deer\n273996,truck\n273997,truck\n273998,dog\n273999,dog\n274000,frog\n274001,truck\n274002,ship\n274003,airplane\n274004,bird\n274005,horse\n274006,frog\n274007,bird\n274008,cat\n274009,airplane\n274010,bird\n274011,cat\n274012,cat\n274013,ship\n274014,dog\n274015,ship\n274016,cat\n274017,automobile\n274018,cat\n274019,deer\n274020,dog\n274021,frog\n274022,airplane\n274023,ship\n274024,frog\n274025,horse\n274026,automobile\n274027,truck\n274028,dog\n274029,airplane\n274030,frog\n274031,frog\n274032,ship\n274033,horse\n274034,bird\n274035,automobile\n274036,horse\n274037,frog\n274038,cat\n274039,horse\n274040,dog\n274041,deer\n274042,cat\n274043,ship\n274044,deer\n274045,bird\n274046,ship\n274047,frog\n274048,truck\n274049,truck\n274050,deer\n274051,horse\n274052,truck\n274053,airplane\n274054,bird\n274055,cat\n274056,cat\n274057,frog\n274058,truck\n274059,cat\n274060,frog\n274061,cat\n274062,deer\n274063,automobile\n274064,dog\n274065,frog\n274066,airplane\n274067,truck\n274068,dog\n274069,frog\n274070,deer\n274071,horse\n274072,airplane\n274073,frog\n274074,deer\n274075,truck\n274076,airplane\n274077,cat\n274078,frog\n274079,truck\n274080,dog\n274081,frog\n274082,truck\n274083,cat\n274084,frog\n274085,bird\n274086,dog\n274087,horse\n274088,dog\n274089,horse\n274090,frog\n274091,frog\n274092,horse\n274093,ship\n274094,cat\n274095,truck\n274096,horse\n274097,frog\n274098,cat\n274099,automobile\n274100,deer\n274101,cat\n274102,deer\n274103,ship\n274104,truck\n274105,frog\n274106,automobile\n274107,automobile\n274108,frog\n274109,airplane\n274110,ship\n274111,frog\n274112,airplane\n274113,dog\n274114,cat\n274115,frog\n274116,dog\n274117,cat\n274118,ship\n274119,deer\n274120,deer\n274121,deer\n274122,dog\n274123,ship\n274124,automobile\n274125,automobile\n274126,dog\n274127,bird\n274128,airplane\n274129,frog\n274130,horse\n274131,cat\n274132,ship\n274133,automobile\n274134,deer\n274135,ship\n274136,cat\n274137,cat\n274138,horse\n274139,cat\n274140,cat\n274141,cat\n274142,ship\n274143,horse\n274144,ship\n274145,truck\n274146,cat\n274147,automobile\n274148,dog\n274149,automobile\n274150,airplane\n274151,frog\n274152,horse\n274153,horse\n274154,bird\n274155,frog\n274156,bird\n274157,cat\n274158,automobile\n274159,ship\n274160,frog\n274161,airplane\n274162,cat\n274163,deer\n274164,bird\n274165,horse\n274166,deer\n274167,cat\n274168,bird\n274169,ship\n274170,horse\n274171,ship\n274172,ship\n274173,airplane\n274174,frog\n274175,dog\n274176,truck\n274177,truck\n274178,frog\n274179,dog\n274180,dog\n274181,deer\n274182,deer\n274183,airplane\n274184,dog\n274185,ship\n274186,automobile\n274187,truck\n274188,truck\n274189,bird\n274190,airplane\n274191,deer\n274192,truck\n274193,horse\n274194,cat\n274195,cat\n274196,deer\n274197,bird\n274198,dog\n274199,horse\n274200,cat\n274201,deer\n274202,bird\n274203,frog\n274204,truck\n274205,ship\n274206,deer\n274207,deer\n274208,dog\n274209,cat\n274210,deer\n274211,horse\n274212,airplane\n274213,automobile\n274214,bird\n274215,automobile\n274216,truck\n274217,deer\n274218,dog\n274219,horse\n274220,automobile\n274221,horse\n274222,bird\n274223,automobile\n274224,ship\n274225,dog\n274226,airplane\n274227,frog\n274228,deer\n274229,horse\n274230,automobile\n274231,deer\n274232,dog\n274233,deer\n274234,truck\n274235,deer\n274236,truck\n274237,bird\n274238,truck\n274239,ship\n274240,deer\n274241,bird\n274242,cat\n274243,horse\n274244,automobile\n274245,bird\n274246,deer\n274247,frog\n274248,truck\n274249,truck\n274250,bird\n274251,automobile\n274252,frog\n274253,frog\n274254,truck\n274255,automobile\n274256,cat\n274257,ship\n274258,automobile\n274259,dog\n274260,truck\n274261,horse\n274262,bird\n274263,frog\n274264,truck\n274265,truck\n274266,ship\n274267,truck\n274268,cat\n274269,cat\n274270,ship\n274271,cat\n274272,ship\n274273,cat\n274274,bird\n274275,ship\n274276,airplane\n274277,horse\n274278,frog\n274279,dog\n274280,bird\n274281,deer\n274282,dog\n274283,horse\n274284,frog\n274285,automobile\n274286,horse\n274287,horse\n274288,dog\n274289,cat\n274290,truck\n274291,bird\n274292,truck\n274293,deer\n274294,airplane\n274295,truck\n274296,automobile\n274297,deer\n274298,automobile\n274299,ship\n274300,airplane\n274301,cat\n274302,horse\n274303,automobile\n274304,frog\n274305,cat\n274306,deer\n274307,airplane\n274308,dog\n274309,horse\n274310,frog\n274311,truck\n274312,frog\n274313,cat\n274314,airplane\n274315,airplane\n274316,automobile\n274317,deer\n274318,deer\n274319,deer\n274320,deer\n274321,horse\n274322,dog\n274323,dog\n274324,ship\n274325,airplane\n274326,cat\n274327,bird\n274328,airplane\n274329,frog\n274330,ship\n274331,truck\n274332,automobile\n274333,automobile\n274334,deer\n274335,airplane\n274336,truck\n274337,truck\n274338,cat\n274339,deer\n274340,cat\n274341,horse\n274342,airplane\n274343,cat\n274344,horse\n274345,cat\n274346,truck\n274347,frog\n274348,cat\n274349,automobile\n274350,horse\n274351,cat\n274352,deer\n274353,horse\n274354,deer\n274355,bird\n274356,airplane\n274357,horse\n274358,ship\n274359,cat\n274360,truck\n274361,bird\n274362,truck\n274363,bird\n274364,horse\n274365,deer\n274366,airplane\n274367,automobile\n274368,dog\n274369,bird\n274370,automobile\n274371,dog\n274372,airplane\n274373,frog\n274374,frog\n274375,truck\n274376,truck\n274377,ship\n274378,horse\n274379,ship\n274380,truck\n274381,airplane\n274382,truck\n274383,cat\n274384,dog\n274385,dog\n274386,ship\n274387,deer\n274388,airplane\n274389,bird\n274390,bird\n274391,dog\n274392,horse\n274393,truck\n274394,cat\n274395,bird\n274396,deer\n274397,deer\n274398,bird\n274399,automobile\n274400,dog\n274401,horse\n274402,dog\n274403,airplane\n274404,cat\n274405,cat\n274406,dog\n274407,dog\n274408,dog\n274409,truck\n274410,frog\n274411,bird\n274412,cat\n274413,frog\n274414,airplane\n274415,ship\n274416,cat\n274417,frog\n274418,automobile\n274419,truck\n274420,dog\n274421,airplane\n274422,dog\n274423,automobile\n274424,deer\n274425,deer\n274426,horse\n274427,horse\n274428,automobile\n274429,dog\n274430,deer\n274431,dog\n274432,truck\n274433,horse\n274434,bird\n274435,airplane\n274436,truck\n274437,cat\n274438,horse\n274439,deer\n274440,bird\n274441,airplane\n274442,cat\n274443,ship\n274444,dog\n274445,cat\n274446,truck\n274447,deer\n274448,airplane\n274449,cat\n274450,truck\n274451,truck\n274452,truck\n274453,cat\n274454,cat\n274455,truck\n274456,frog\n274457,truck\n274458,deer\n274459,deer\n274460,horse\n274461,deer\n274462,cat\n274463,deer\n274464,horse\n274465,bird\n274466,airplane\n274467,automobile\n274468,automobile\n274469,automobile\n274470,dog\n274471,deer\n274472,horse\n274473,frog\n274474,cat\n274475,deer\n274476,ship\n274477,truck\n274478,deer\n274479,frog\n274480,cat\n274481,deer\n274482,horse\n274483,deer\n274484,deer\n274485,airplane\n274486,horse\n274487,dog\n274488,cat\n274489,dog\n274490,ship\n274491,truck\n274492,truck\n274493,dog\n274494,airplane\n274495,cat\n274496,dog\n274497,bird\n274498,deer\n274499,dog\n274500,cat\n274501,airplane\n274502,airplane\n274503,cat\n274504,dog\n274505,truck\n274506,deer\n274507,deer\n274508,airplane\n274509,cat\n274510,cat\n274511,deer\n274512,deer\n274513,cat\n274514,cat\n274515,automobile\n274516,deer\n274517,deer\n274518,bird\n274519,truck\n274520,automobile\n274521,airplane\n274522,bird\n274523,cat\n274524,horse\n274525,cat\n274526,horse\n274527,horse\n274528,automobile\n274529,cat\n274530,deer\n274531,deer\n274532,deer\n274533,frog\n274534,automobile\n274535,horse\n274536,automobile\n274537,horse\n274538,airplane\n274539,cat\n274540,dog\n274541,automobile\n274542,truck\n274543,truck\n274544,airplane\n274545,horse\n274546,truck\n274547,horse\n274548,deer\n274549,bird\n274550,cat\n274551,deer\n274552,airplane\n274553,dog\n274554,cat\n274555,deer\n274556,deer\n274557,dog\n274558,cat\n274559,automobile\n274560,cat\n274561,frog\n274562,deer\n274563,deer\n274564,automobile\n274565,airplane\n274566,horse\n274567,airplane\n274568,deer\n274569,deer\n274570,airplane\n274571,airplane\n274572,truck\n274573,dog\n274574,deer\n274575,ship\n274576,airplane\n274577,deer\n274578,truck\n274579,deer\n274580,airplane\n274581,truck\n274582,dog\n274583,ship\n274584,ship\n274585,truck\n274586,dog\n274587,horse\n274588,frog\n274589,automobile\n274590,truck\n274591,automobile\n274592,ship\n274593,frog\n274594,bird\n274595,bird\n274596,deer\n274597,horse\n274598,truck\n274599,cat\n274600,bird\n274601,truck\n274602,dog\n274603,truck\n274604,frog\n274605,cat\n274606,airplane\n274607,deer\n274608,cat\n274609,frog\n274610,bird\n274611,cat\n274612,deer\n274613,bird\n274614,truck\n274615,dog\n274616,bird\n274617,automobile\n274618,airplane\n274619,cat\n274620,truck\n274621,deer\n274622,frog\n274623,airplane\n274624,truck\n274625,deer\n274626,airplane\n274627,truck\n274628,cat\n274629,dog\n274630,automobile\n274631,deer\n274632,ship\n274633,cat\n274634,dog\n274635,ship\n274636,automobile\n274637,horse\n274638,automobile\n274639,bird\n274640,frog\n274641,frog\n274642,bird\n274643,truck\n274644,deer\n274645,ship\n274646,truck\n274647,deer\n274648,cat\n274649,frog\n274650,ship\n274651,bird\n274652,deer\n274653,ship\n274654,airplane\n274655,deer\n274656,airplane\n274657,ship\n274658,airplane\n274659,horse\n274660,deer\n274661,ship\n274662,ship\n274663,cat\n274664,frog\n274665,deer\n274666,truck\n274667,deer\n274668,deer\n274669,truck\n274670,dog\n274671,deer\n274672,horse\n274673,automobile\n274674,cat\n274675,cat\n274676,cat\n274677,dog\n274678,ship\n274679,bird\n274680,truck\n274681,ship\n274682,cat\n274683,dog\n274684,dog\n274685,airplane\n274686,cat\n274687,airplane\n274688,dog\n274689,deer\n274690,deer\n274691,truck\n274692,cat\n274693,truck\n274694,frog\n274695,ship\n274696,airplane\n274697,dog\n274698,dog\n274699,bird\n274700,dog\n274701,cat\n274702,dog\n274703,cat\n274704,ship\n274705,frog\n274706,deer\n274707,deer\n274708,automobile\n274709,dog\n274710,cat\n274711,horse\n274712,horse\n274713,frog\n274714,deer\n274715,bird\n274716,airplane\n274717,cat\n274718,dog\n274719,frog\n274720,deer\n274721,ship\n274722,ship\n274723,ship\n274724,bird\n274725,cat\n274726,deer\n274727,ship\n274728,cat\n274729,airplane\n274730,ship\n274731,dog\n274732,dog\n274733,horse\n274734,dog\n274735,ship\n274736,ship\n274737,cat\n274738,airplane\n274739,dog\n274740,airplane\n274741,frog\n274742,ship\n274743,horse\n274744,ship\n274745,automobile\n274746,airplane\n274747,ship\n274748,bird\n274749,airplane\n274750,deer\n274751,horse\n274752,airplane\n274753,bird\n274754,bird\n274755,horse\n274756,horse\n274757,automobile\n274758,deer\n274759,cat\n274760,dog\n274761,bird\n274762,cat\n274763,deer\n274764,deer\n274765,truck\n274766,dog\n274767,airplane\n274768,deer\n274769,truck\n274770,deer\n274771,dog\n274772,truck\n274773,truck\n274774,bird\n274775,deer\n274776,cat\n274777,horse\n274778,frog\n274779,truck\n274780,horse\n274781,truck\n274782,deer\n274783,cat\n274784,dog\n274785,truck\n274786,truck\n274787,cat\n274788,horse\n274789,horse\n274790,dog\n274791,deer\n274792,dog\n274793,deer\n274794,truck\n274795,cat\n274796,frog\n274797,frog\n274798,deer\n274799,truck\n274800,dog\n274801,airplane\n274802,bird\n274803,frog\n274804,automobile\n274805,deer\n274806,deer\n274807,bird\n274808,horse\n274809,ship\n274810,horse\n274811,cat\n274812,airplane\n274813,cat\n274814,dog\n274815,deer\n274816,dog\n274817,cat\n274818,airplane\n274819,deer\n274820,truck\n274821,bird\n274822,deer\n274823,frog\n274824,bird\n274825,cat\n274826,cat\n274827,airplane\n274828,deer\n274829,horse\n274830,cat\n274831,horse\n274832,bird\n274833,bird\n274834,dog\n274835,horse\n274836,truck\n274837,cat\n274838,truck\n274839,cat\n274840,bird\n274841,horse\n274842,frog\n274843,frog\n274844,dog\n274845,dog\n274846,truck\n274847,airplane\n274848,bird\n274849,truck\n274850,cat\n274851,truck\n274852,dog\n274853,horse\n274854,truck\n274855,deer\n274856,bird\n274857,automobile\n274858,truck\n274859,automobile\n274860,airplane\n274861,automobile\n274862,truck\n274863,truck\n274864,deer\n274865,frog\n274866,deer\n274867,deer\n274868,dog\n274869,truck\n274870,dog\n274871,horse\n274872,deer\n274873,frog\n274874,ship\n274875,frog\n274876,cat\n274877,deer\n274878,cat\n274879,ship\n274880,cat\n274881,cat\n274882,airplane\n274883,frog\n274884,ship\n274885,deer\n274886,deer\n274887,frog\n274888,frog\n274889,cat\n274890,ship\n274891,ship\n274892,cat\n274893,truck\n274894,bird\n274895,frog\n274896,airplane\n274897,airplane\n274898,bird\n274899,dog\n274900,frog\n274901,horse\n274902,automobile\n274903,truck\n274904,bird\n274905,airplane\n274906,automobile\n274907,deer\n274908,dog\n274909,cat\n274910,cat\n274911,deer\n274912,ship\n274913,horse\n274914,automobile\n274915,cat\n274916,cat\n274917,truck\n274918,deer\n274919,ship\n274920,cat\n274921,cat\n274922,cat\n274923,airplane\n274924,truck\n274925,horse\n274926,truck\n274927,horse\n274928,truck\n274929,dog\n274930,automobile\n274931,deer\n274932,cat\n274933,horse\n274934,truck\n274935,frog\n274936,cat\n274937,automobile\n274938,horse\n274939,horse\n274940,deer\n274941,cat\n274942,bird\n274943,cat\n274944,bird\n274945,deer\n274946,frog\n274947,frog\n274948,cat\n274949,deer\n274950,cat\n274951,cat\n274952,frog\n274953,bird\n274954,airplane\n274955,horse\n274956,cat\n274957,horse\n274958,cat\n274959,dog\n274960,bird\n274961,airplane\n274962,airplane\n274963,airplane\n274964,ship\n274965,deer\n274966,automobile\n274967,ship\n274968,bird\n274969,cat\n274970,automobile\n274971,horse\n274972,bird\n274973,bird\n274974,cat\n274975,cat\n274976,horse\n274977,frog\n274978,horse\n274979,bird\n274980,frog\n274981,ship\n274982,automobile\n274983,frog\n274984,dog\n274985,cat\n274986,ship\n274987,frog\n274988,airplane\n274989,horse\n274990,bird\n274991,horse\n274992,dog\n274993,cat\n274994,cat\n274995,airplane\n274996,cat\n274997,automobile\n274998,dog\n274999,horse\n275000,cat\n275001,deer\n275002,airplane\n275003,cat\n275004,deer\n275005,cat\n275006,airplane\n275007,frog\n275008,airplane\n275009,horse\n275010,bird\n275011,truck\n275012,truck\n275013,frog\n275014,deer\n275015,dog\n275016,cat\n275017,deer\n275018,ship\n275019,frog\n275020,frog\n275021,cat\n275022,truck\n275023,dog\n275024,horse\n275025,horse\n275026,truck\n275027,dog\n275028,deer\n275029,dog\n275030,cat\n275031,airplane\n275032,dog\n275033,frog\n275034,automobile\n275035,horse\n275036,frog\n275037,bird\n275038,airplane\n275039,airplane\n275040,deer\n275041,deer\n275042,deer\n275043,frog\n275044,deer\n275045,horse\n275046,truck\n275047,frog\n275048,ship\n275049,ship\n275050,bird\n275051,dog\n275052,ship\n275053,airplane\n275054,cat\n275055,bird\n275056,horse\n275057,frog\n275058,cat\n275059,airplane\n275060,dog\n275061,truck\n275062,bird\n275063,airplane\n275064,deer\n275065,deer\n275066,bird\n275067,automobile\n275068,cat\n275069,frog\n275070,deer\n275071,ship\n275072,bird\n275073,dog\n275074,truck\n275075,truck\n275076,bird\n275077,deer\n275078,truck\n275079,dog\n275080,frog\n275081,horse\n275082,dog\n275083,cat\n275084,deer\n275085,automobile\n275086,dog\n275087,frog\n275088,ship\n275089,truck\n275090,bird\n275091,cat\n275092,airplane\n275093,cat\n275094,ship\n275095,deer\n275096,frog\n275097,frog\n275098,automobile\n275099,frog\n275100,horse\n275101,ship\n275102,truck\n275103,ship\n275104,truck\n275105,deer\n275106,bird\n275107,horse\n275108,ship\n275109,ship\n275110,truck\n275111,ship\n275112,cat\n275113,ship\n275114,horse\n275115,ship\n275116,deer\n275117,cat\n275118,airplane\n275119,dog\n275120,automobile\n275121,frog\n275122,bird\n275123,frog\n275124,cat\n275125,deer\n275126,truck\n275127,dog\n275128,dog\n275129,frog\n275130,dog\n275131,horse\n275132,bird\n275133,deer\n275134,airplane\n275135,frog\n275136,cat\n275137,cat\n275138,truck\n275139,ship\n275140,cat\n275141,bird\n275142,cat\n275143,cat\n275144,airplane\n275145,horse\n275146,bird\n275147,truck\n275148,automobile\n275149,automobile\n275150,deer\n275151,automobile\n275152,dog\n275153,ship\n275154,cat\n275155,dog\n275156,deer\n275157,ship\n275158,deer\n275159,bird\n275160,frog\n275161,automobile\n275162,bird\n275163,deer\n275164,dog\n275165,dog\n275166,deer\n275167,dog\n275168,dog\n275169,cat\n275170,airplane\n275171,horse\n275172,dog\n275173,horse\n275174,cat\n275175,airplane\n275176,dog\n275177,deer\n275178,cat\n275179,cat\n275180,airplane\n275181,deer\n275182,horse\n275183,cat\n275184,cat\n275185,cat\n275186,ship\n275187,dog\n275188,frog\n275189,dog\n275190,bird\n275191,ship\n275192,dog\n275193,dog\n275194,truck\n275195,horse\n275196,truck\n275197,cat\n275198,ship\n275199,cat\n275200,deer\n275201,dog\n275202,cat\n275203,frog\n275204,truck\n275205,dog\n275206,horse\n275207,deer\n275208,ship\n275209,horse\n275210,deer\n275211,airplane\n275212,automobile\n275213,truck\n275214,frog\n275215,airplane\n275216,dog\n275217,truck\n275218,bird\n275219,frog\n275220,deer\n275221,frog\n275222,automobile\n275223,bird\n275224,automobile\n275225,automobile\n275226,frog\n275227,cat\n275228,deer\n275229,airplane\n275230,horse\n275231,horse\n275232,ship\n275233,cat\n275234,horse\n275235,deer\n275236,airplane\n275237,automobile\n275238,truck\n275239,cat\n275240,airplane\n275241,airplane\n275242,airplane\n275243,cat\n275244,truck\n275245,truck\n275246,deer\n275247,ship\n275248,bird\n275249,deer\n275250,automobile\n275251,horse\n275252,ship\n275253,dog\n275254,automobile\n275255,frog\n275256,truck\n275257,bird\n275258,frog\n275259,horse\n275260,cat\n275261,truck\n275262,deer\n275263,dog\n275264,cat\n275265,frog\n275266,cat\n275267,airplane\n275268,truck\n275269,bird\n275270,dog\n275271,frog\n275272,horse\n275273,dog\n275274,frog\n275275,automobile\n275276,truck\n275277,dog\n275278,truck\n275279,cat\n275280,dog\n275281,airplane\n275282,dog\n275283,bird\n275284,dog\n275285,horse\n275286,horse\n275287,truck\n275288,deer\n275289,bird\n275290,cat\n275291,airplane\n275292,deer\n275293,deer\n275294,horse\n275295,truck\n275296,frog\n275297,truck\n275298,deer\n275299,frog\n275300,cat\n275301,bird\n275302,dog\n275303,frog\n275304,cat\n275305,truck\n275306,frog\n275307,deer\n275308,airplane\n275309,cat\n275310,dog\n275311,horse\n275312,truck\n275313,bird\n275314,dog\n275315,bird\n275316,frog\n275317,cat\n275318,frog\n275319,truck\n275320,automobile\n275321,deer\n275322,deer\n275323,cat\n275324,dog\n275325,cat\n275326,horse\n275327,ship\n275328,ship\n275329,deer\n275330,truck\n275331,bird\n275332,deer\n275333,horse\n275334,ship\n275335,bird\n275336,airplane\n275337,dog\n275338,dog\n275339,horse\n275340,ship\n275341,airplane\n275342,bird\n275343,ship\n275344,truck\n275345,cat\n275346,deer\n275347,horse\n275348,bird\n275349,bird\n275350,frog\n275351,airplane\n275352,automobile\n275353,deer\n275354,truck\n275355,truck\n275356,dog\n275357,deer\n275358,frog\n275359,airplane\n275360,truck\n275361,airplane\n275362,airplane\n275363,truck\n275364,cat\n275365,dog\n275366,airplane\n275367,cat\n275368,frog\n275369,truck\n275370,dog\n275371,airplane\n275372,deer\n275373,deer\n275374,dog\n275375,deer\n275376,horse\n275377,truck\n275378,dog\n275379,bird\n275380,bird\n275381,bird\n275382,cat\n275383,dog\n275384,dog\n275385,deer\n275386,airplane\n275387,deer\n275388,horse\n275389,dog\n275390,truck\n275391,frog\n275392,cat\n275393,airplane\n275394,bird\n275395,automobile\n275396,dog\n275397,bird\n275398,ship\n275399,frog\n275400,truck\n275401,deer\n275402,dog\n275403,cat\n275404,ship\n275405,cat\n275406,cat\n275407,frog\n275408,cat\n275409,cat\n275410,deer\n275411,ship\n275412,bird\n275413,cat\n275414,horse\n275415,cat\n275416,horse\n275417,cat\n275418,truck\n275419,frog\n275420,ship\n275421,airplane\n275422,airplane\n275423,airplane\n275424,ship\n275425,cat\n275426,cat\n275427,cat\n275428,horse\n275429,frog\n275430,automobile\n275431,bird\n275432,deer\n275433,ship\n275434,ship\n275435,automobile\n275436,cat\n275437,deer\n275438,ship\n275439,automobile\n275440,deer\n275441,automobile\n275442,dog\n275443,cat\n275444,cat\n275445,truck\n275446,cat\n275447,bird\n275448,deer\n275449,horse\n275450,ship\n275451,bird\n275452,ship\n275453,frog\n275454,airplane\n275455,frog\n275456,horse\n275457,horse\n275458,horse\n275459,bird\n275460,ship\n275461,frog\n275462,deer\n275463,automobile\n275464,deer\n275465,frog\n275466,horse\n275467,dog\n275468,cat\n275469,frog\n275470,truck\n275471,airplane\n275472,airplane\n275473,cat\n275474,dog\n275475,ship\n275476,ship\n275477,horse\n275478,deer\n275479,dog\n275480,cat\n275481,bird\n275482,deer\n275483,dog\n275484,cat\n275485,ship\n275486,cat\n275487,truck\n275488,bird\n275489,cat\n275490,deer\n275491,truck\n275492,cat\n275493,bird\n275494,automobile\n275495,cat\n275496,cat\n275497,airplane\n275498,truck\n275499,truck\n275500,horse\n275501,truck\n275502,frog\n275503,cat\n275504,bird\n275505,bird\n275506,bird\n275507,bird\n275508,automobile\n275509,frog\n275510,truck\n275511,bird\n275512,airplane\n275513,dog\n275514,deer\n275515,deer\n275516,frog\n275517,dog\n275518,horse\n275519,deer\n275520,truck\n275521,bird\n275522,frog\n275523,automobile\n275524,automobile\n275525,automobile\n275526,horse\n275527,dog\n275528,dog\n275529,deer\n275530,ship\n275531,deer\n275532,bird\n275533,bird\n275534,cat\n275535,airplane\n275536,frog\n275537,cat\n275538,automobile\n275539,truck\n275540,airplane\n275541,cat\n275542,horse\n275543,cat\n275544,frog\n275545,frog\n275546,deer\n275547,frog\n275548,dog\n275549,ship\n275550,automobile\n275551,deer\n275552,deer\n275553,frog\n275554,deer\n275555,cat\n275556,cat\n275557,cat\n275558,horse\n275559,automobile\n275560,deer\n275561,automobile\n275562,cat\n275563,truck\n275564,cat\n275565,frog\n275566,deer\n275567,cat\n275568,deer\n275569,truck\n275570,airplane\n275571,horse\n275572,dog\n275573,truck\n275574,airplane\n275575,truck\n275576,deer\n275577,bird\n275578,automobile\n275579,frog\n275580,horse\n275581,dog\n275582,truck\n275583,cat\n275584,bird\n275585,cat\n275586,bird\n275587,frog\n275588,frog\n275589,cat\n275590,truck\n275591,frog\n275592,cat\n275593,bird\n275594,automobile\n275595,frog\n275596,airplane\n275597,horse\n275598,frog\n275599,horse\n275600,frog\n275601,bird\n275602,horse\n275603,horse\n275604,deer\n275605,deer\n275606,truck\n275607,dog\n275608,airplane\n275609,deer\n275610,frog\n275611,airplane\n275612,ship\n275613,horse\n275614,deer\n275615,automobile\n275616,airplane\n275617,horse\n275618,horse\n275619,deer\n275620,cat\n275621,frog\n275622,frog\n275623,horse\n275624,airplane\n275625,ship\n275626,dog\n275627,deer\n275628,cat\n275629,airplane\n275630,frog\n275631,bird\n275632,deer\n275633,cat\n275634,airplane\n275635,airplane\n275636,bird\n275637,deer\n275638,airplane\n275639,horse\n275640,frog\n275641,truck\n275642,automobile\n275643,deer\n275644,deer\n275645,deer\n275646,deer\n275647,ship\n275648,cat\n275649,truck\n275650,dog\n275651,truck\n275652,cat\n275653,bird\n275654,airplane\n275655,cat\n275656,horse\n275657,frog\n275658,bird\n275659,dog\n275660,horse\n275661,deer\n275662,airplane\n275663,deer\n275664,deer\n275665,dog\n275666,dog\n275667,frog\n275668,frog\n275669,frog\n275670,horse\n275671,cat\n275672,deer\n275673,deer\n275674,cat\n275675,airplane\n275676,cat\n275677,cat\n275678,bird\n275679,automobile\n275680,airplane\n275681,cat\n275682,dog\n275683,bird\n275684,dog\n275685,cat\n275686,ship\n275687,bird\n275688,bird\n275689,deer\n275690,dog\n275691,dog\n275692,automobile\n275693,ship\n275694,truck\n275695,cat\n275696,ship\n275697,frog\n275698,bird\n275699,deer\n275700,frog\n275701,horse\n275702,truck\n275703,cat\n275704,frog\n275705,dog\n275706,deer\n275707,truck\n275708,bird\n275709,airplane\n275710,deer\n275711,ship\n275712,cat\n275713,truck\n275714,ship\n275715,dog\n275716,dog\n275717,frog\n275718,horse\n275719,frog\n275720,frog\n275721,cat\n275722,cat\n275723,ship\n275724,dog\n275725,ship\n275726,deer\n275727,horse\n275728,airplane\n275729,cat\n275730,airplane\n275731,truck\n275732,airplane\n275733,truck\n275734,deer\n275735,frog\n275736,horse\n275737,ship\n275738,bird\n275739,airplane\n275740,automobile\n275741,horse\n275742,ship\n275743,dog\n275744,cat\n275745,deer\n275746,deer\n275747,ship\n275748,horse\n275749,truck\n275750,dog\n275751,frog\n275752,dog\n275753,dog\n275754,ship\n275755,horse\n275756,cat\n275757,ship\n275758,frog\n275759,frog\n275760,airplane\n275761,automobile\n275762,ship\n275763,frog\n275764,ship\n275765,cat\n275766,frog\n275767,dog\n275768,automobile\n275769,airplane\n275770,dog\n275771,truck\n275772,ship\n275773,frog\n275774,automobile\n275775,dog\n275776,deer\n275777,cat\n275778,automobile\n275779,horse\n275780,frog\n275781,frog\n275782,automobile\n275783,bird\n275784,dog\n275785,automobile\n275786,deer\n275787,truck\n275788,frog\n275789,ship\n275790,dog\n275791,dog\n275792,frog\n275793,deer\n275794,ship\n275795,automobile\n275796,airplane\n275797,airplane\n275798,dog\n275799,automobile\n275800,dog\n275801,automobile\n275802,ship\n275803,horse\n275804,airplane\n275805,ship\n275806,deer\n275807,bird\n275808,cat\n275809,airplane\n275810,airplane\n275811,airplane\n275812,ship\n275813,deer\n275814,bird\n275815,automobile\n275816,dog\n275817,cat\n275818,ship\n275819,dog\n275820,deer\n275821,cat\n275822,ship\n275823,cat\n275824,bird\n275825,truck\n275826,dog\n275827,deer\n275828,deer\n275829,dog\n275830,dog\n275831,deer\n275832,automobile\n275833,truck\n275834,airplane\n275835,horse\n275836,airplane\n275837,automobile\n275838,deer\n275839,cat\n275840,horse\n275841,truck\n275842,deer\n275843,dog\n275844,automobile\n275845,bird\n275846,dog\n275847,automobile\n275848,cat\n275849,frog\n275850,horse\n275851,truck\n275852,horse\n275853,frog\n275854,cat\n275855,dog\n275856,deer\n275857,airplane\n275858,ship\n275859,truck\n275860,dog\n275861,bird\n275862,frog\n275863,deer\n275864,deer\n275865,horse\n275866,airplane\n275867,automobile\n275868,deer\n275869,dog\n275870,dog\n275871,horse\n275872,deer\n275873,deer\n275874,cat\n275875,deer\n275876,horse\n275877,airplane\n275878,deer\n275879,deer\n275880,dog\n275881,dog\n275882,cat\n275883,airplane\n275884,deer\n275885,ship\n275886,deer\n275887,ship\n275888,deer\n275889,dog\n275890,cat\n275891,frog\n275892,dog\n275893,dog\n275894,cat\n275895,cat\n275896,frog\n275897,dog\n275898,bird\n275899,deer\n275900,automobile\n275901,ship\n275902,airplane\n275903,automobile\n275904,bird\n275905,bird\n275906,cat\n275907,airplane\n275908,airplane\n275909,horse\n275910,bird\n275911,dog\n275912,truck\n275913,cat\n275914,cat\n275915,frog\n275916,frog\n275917,cat\n275918,cat\n275919,bird\n275920,deer\n275921,bird\n275922,deer\n275923,ship\n275924,truck\n275925,frog\n275926,truck\n275927,dog\n275928,deer\n275929,deer\n275930,airplane\n275931,horse\n275932,ship\n275933,dog\n275934,deer\n275935,bird\n275936,deer\n275937,dog\n275938,truck\n275939,cat\n275940,deer\n275941,cat\n275942,bird\n275943,ship\n275944,horse\n275945,cat\n275946,frog\n275947,bird\n275948,airplane\n275949,deer\n275950,cat\n275951,dog\n275952,frog\n275953,truck\n275954,truck\n275955,ship\n275956,deer\n275957,deer\n275958,dog\n275959,ship\n275960,truck\n275961,frog\n275962,horse\n275963,automobile\n275964,cat\n275965,truck\n275966,automobile\n275967,truck\n275968,frog\n275969,dog\n275970,airplane\n275971,automobile\n275972,dog\n275973,dog\n275974,deer\n275975,ship\n275976,truck\n275977,truck\n275978,ship\n275979,cat\n275980,airplane\n275981,frog\n275982,dog\n275983,ship\n275984,airplane\n275985,truck\n275986,truck\n275987,dog\n275988,frog\n275989,horse\n275990,cat\n275991,bird\n275992,dog\n275993,bird\n275994,automobile\n275995,frog\n275996,ship\n275997,truck\n275998,truck\n275999,horse\n276000,horse\n276001,deer\n276002,bird\n276003,deer\n276004,deer\n276005,cat\n276006,ship\n276007,deer\n276008,deer\n276009,truck\n276010,airplane\n276011,dog\n276012,frog\n276013,ship\n276014,cat\n276015,automobile\n276016,bird\n276017,bird\n276018,dog\n276019,dog\n276020,frog\n276021,cat\n276022,horse\n276023,airplane\n276024,dog\n276025,deer\n276026,dog\n276027,ship\n276028,dog\n276029,horse\n276030,horse\n276031,ship\n276032,horse\n276033,deer\n276034,bird\n276035,automobile\n276036,horse\n276037,horse\n276038,airplane\n276039,airplane\n276040,cat\n276041,cat\n276042,automobile\n276043,truck\n276044,airplane\n276045,cat\n276046,frog\n276047,cat\n276048,truck\n276049,deer\n276050,automobile\n276051,deer\n276052,bird\n276053,automobile\n276054,truck\n276055,frog\n276056,truck\n276057,horse\n276058,airplane\n276059,truck\n276060,cat\n276061,ship\n276062,automobile\n276063,cat\n276064,deer\n276065,dog\n276066,automobile\n276067,automobile\n276068,frog\n276069,automobile\n276070,airplane\n276071,horse\n276072,bird\n276073,deer\n276074,frog\n276075,horse\n276076,deer\n276077,frog\n276078,horse\n276079,frog\n276080,airplane\n276081,horse\n276082,bird\n276083,deer\n276084,automobile\n276085,airplane\n276086,horse\n276087,bird\n276088,dog\n276089,truck\n276090,truck\n276091,deer\n276092,ship\n276093,truck\n276094,bird\n276095,cat\n276096,cat\n276097,horse\n276098,truck\n276099,deer\n276100,horse\n276101,dog\n276102,bird\n276103,horse\n276104,horse\n276105,airplane\n276106,frog\n276107,cat\n276108,ship\n276109,deer\n276110,deer\n276111,bird\n276112,cat\n276113,automobile\n276114,cat\n276115,horse\n276116,cat\n276117,ship\n276118,ship\n276119,airplane\n276120,bird\n276121,cat\n276122,cat\n276123,automobile\n276124,frog\n276125,cat\n276126,cat\n276127,truck\n276128,truck\n276129,automobile\n276130,airplane\n276131,airplane\n276132,deer\n276133,deer\n276134,cat\n276135,ship\n276136,dog\n276137,airplane\n276138,frog\n276139,horse\n276140,frog\n276141,dog\n276142,cat\n276143,frog\n276144,ship\n276145,dog\n276146,bird\n276147,horse\n276148,airplane\n276149,frog\n276150,cat\n276151,deer\n276152,automobile\n276153,horse\n276154,automobile\n276155,deer\n276156,truck\n276157,cat\n276158,frog\n276159,truck\n276160,airplane\n276161,frog\n276162,cat\n276163,deer\n276164,automobile\n276165,deer\n276166,deer\n276167,horse\n276168,deer\n276169,horse\n276170,horse\n276171,ship\n276172,ship\n276173,automobile\n276174,horse\n276175,truck\n276176,frog\n276177,deer\n276178,horse\n276179,dog\n276180,truck\n276181,frog\n276182,bird\n276183,automobile\n276184,airplane\n276185,deer\n276186,deer\n276187,ship\n276188,ship\n276189,horse\n276190,airplane\n276191,deer\n276192,bird\n276193,dog\n276194,airplane\n276195,truck\n276196,ship\n276197,deer\n276198,cat\n276199,deer\n276200,horse\n276201,automobile\n276202,truck\n276203,bird\n276204,airplane\n276205,cat\n276206,bird\n276207,dog\n276208,cat\n276209,cat\n276210,cat\n276211,dog\n276212,ship\n276213,truck\n276214,airplane\n276215,dog\n276216,truck\n276217,truck\n276218,truck\n276219,airplane\n276220,horse\n276221,airplane\n276222,airplane\n276223,airplane\n276224,truck\n276225,dog\n276226,automobile\n276227,bird\n276228,frog\n276229,horse\n276230,ship\n276231,airplane\n276232,frog\n276233,cat\n276234,frog\n276235,deer\n276236,airplane\n276237,dog\n276238,horse\n276239,airplane\n276240,frog\n276241,truck\n276242,airplane\n276243,deer\n276244,truck\n276245,automobile\n276246,truck\n276247,ship\n276248,bird\n276249,cat\n276250,horse\n276251,deer\n276252,ship\n276253,frog\n276254,automobile\n276255,dog\n276256,airplane\n276257,deer\n276258,frog\n276259,automobile\n276260,horse\n276261,cat\n276262,dog\n276263,truck\n276264,deer\n276265,truck\n276266,airplane\n276267,cat\n276268,cat\n276269,cat\n276270,frog\n276271,bird\n276272,truck\n276273,dog\n276274,airplane\n276275,deer\n276276,frog\n276277,truck\n276278,airplane\n276279,dog\n276280,automobile\n276281,frog\n276282,deer\n276283,dog\n276284,truck\n276285,bird\n276286,truck\n276287,cat\n276288,airplane\n276289,ship\n276290,frog\n276291,dog\n276292,deer\n276293,deer\n276294,ship\n276295,deer\n276296,horse\n276297,ship\n276298,cat\n276299,cat\n276300,deer\n276301,dog\n276302,deer\n276303,airplane\n276304,bird\n276305,frog\n276306,deer\n276307,dog\n276308,frog\n276309,airplane\n276310,deer\n276311,bird\n276312,horse\n276313,truck\n276314,bird\n276315,truck\n276316,bird\n276317,automobile\n276318,ship\n276319,cat\n276320,bird\n276321,dog\n276322,automobile\n276323,cat\n276324,bird\n276325,deer\n276326,ship\n276327,truck\n276328,ship\n276329,deer\n276330,ship\n276331,cat\n276332,bird\n276333,airplane\n276334,bird\n276335,cat\n276336,frog\n276337,ship\n276338,deer\n276339,truck\n276340,cat\n276341,truck\n276342,cat\n276343,bird\n276344,dog\n276345,automobile\n276346,bird\n276347,automobile\n276348,truck\n276349,cat\n276350,truck\n276351,cat\n276352,dog\n276353,dog\n276354,frog\n276355,bird\n276356,dog\n276357,frog\n276358,cat\n276359,truck\n276360,deer\n276361,airplane\n276362,deer\n276363,automobile\n276364,ship\n276365,truck\n276366,automobile\n276367,cat\n276368,cat\n276369,truck\n276370,truck\n276371,airplane\n276372,deer\n276373,bird\n276374,frog\n276375,bird\n276376,ship\n276377,cat\n276378,frog\n276379,automobile\n276380,automobile\n276381,dog\n276382,cat\n276383,automobile\n276384,bird\n276385,automobile\n276386,truck\n276387,airplane\n276388,ship\n276389,cat\n276390,airplane\n276391,truck\n276392,airplane\n276393,dog\n276394,frog\n276395,cat\n276396,automobile\n276397,cat\n276398,deer\n276399,automobile\n276400,truck\n276401,truck\n276402,bird\n276403,dog\n276404,dog\n276405,ship\n276406,airplane\n276407,dog\n276408,cat\n276409,horse\n276410,frog\n276411,deer\n276412,automobile\n276413,bird\n276414,ship\n276415,deer\n276416,horse\n276417,bird\n276418,cat\n276419,horse\n276420,ship\n276421,deer\n276422,ship\n276423,horse\n276424,airplane\n276425,horse\n276426,dog\n276427,ship\n276428,dog\n276429,frog\n276430,horse\n276431,ship\n276432,horse\n276433,ship\n276434,horse\n276435,horse\n276436,frog\n276437,horse\n276438,dog\n276439,dog\n276440,frog\n276441,bird\n276442,frog\n276443,deer\n276444,airplane\n276445,bird\n276446,deer\n276447,deer\n276448,dog\n276449,deer\n276450,deer\n276451,dog\n276452,automobile\n276453,frog\n276454,cat\n276455,frog\n276456,dog\n276457,ship\n276458,bird\n276459,bird\n276460,ship\n276461,bird\n276462,cat\n276463,frog\n276464,horse\n276465,dog\n276466,dog\n276467,truck\n276468,frog\n276469,ship\n276470,cat\n276471,dog\n276472,ship\n276473,deer\n276474,deer\n276475,ship\n276476,frog\n276477,ship\n276478,airplane\n276479,frog\n276480,cat\n276481,dog\n276482,deer\n276483,horse\n276484,horse\n276485,horse\n276486,frog\n276487,ship\n276488,dog\n276489,automobile\n276490,ship\n276491,horse\n276492,ship\n276493,airplane\n276494,frog\n276495,ship\n276496,bird\n276497,frog\n276498,dog\n276499,cat\n276500,ship\n276501,cat\n276502,frog\n276503,airplane\n276504,automobile\n276505,bird\n276506,horse\n276507,airplane\n276508,bird\n276509,cat\n276510,deer\n276511,bird\n276512,dog\n276513,horse\n276514,airplane\n276515,deer\n276516,bird\n276517,horse\n276518,airplane\n276519,frog\n276520,deer\n276521,horse\n276522,bird\n276523,frog\n276524,deer\n276525,automobile\n276526,truck\n276527,bird\n276528,truck\n276529,airplane\n276530,ship\n276531,ship\n276532,frog\n276533,deer\n276534,airplane\n276535,cat\n276536,airplane\n276537,deer\n276538,frog\n276539,ship\n276540,dog\n276541,truck\n276542,dog\n276543,bird\n276544,bird\n276545,dog\n276546,ship\n276547,frog\n276548,dog\n276549,horse\n276550,cat\n276551,airplane\n276552,bird\n276553,horse\n276554,dog\n276555,automobile\n276556,truck\n276557,deer\n276558,bird\n276559,cat\n276560,dog\n276561,cat\n276562,deer\n276563,truck\n276564,airplane\n276565,deer\n276566,horse\n276567,cat\n276568,truck\n276569,deer\n276570,deer\n276571,frog\n276572,horse\n276573,ship\n276574,cat\n276575,cat\n276576,deer\n276577,dog\n276578,horse\n276579,deer\n276580,dog\n276581,ship\n276582,cat\n276583,airplane\n276584,dog\n276585,dog\n276586,cat\n276587,horse\n276588,ship\n276589,airplane\n276590,ship\n276591,frog\n276592,truck\n276593,ship\n276594,horse\n276595,horse\n276596,dog\n276597,deer\n276598,truck\n276599,deer\n276600,automobile\n276601,frog\n276602,horse\n276603,automobile\n276604,airplane\n276605,deer\n276606,deer\n276607,dog\n276608,ship\n276609,horse\n276610,deer\n276611,deer\n276612,bird\n276613,truck\n276614,truck\n276615,dog\n276616,horse\n276617,ship\n276618,deer\n276619,cat\n276620,automobile\n276621,deer\n276622,truck\n276623,deer\n276624,deer\n276625,cat\n276626,frog\n276627,ship\n276628,bird\n276629,airplane\n276630,deer\n276631,frog\n276632,airplane\n276633,airplane\n276634,cat\n276635,deer\n276636,truck\n276637,deer\n276638,truck\n276639,horse\n276640,cat\n276641,deer\n276642,airplane\n276643,ship\n276644,ship\n276645,truck\n276646,frog\n276647,cat\n276648,bird\n276649,cat\n276650,horse\n276651,truck\n276652,cat\n276653,airplane\n276654,truck\n276655,horse\n276656,truck\n276657,bird\n276658,airplane\n276659,cat\n276660,ship\n276661,automobile\n276662,dog\n276663,dog\n276664,deer\n276665,dog\n276666,frog\n276667,cat\n276668,dog\n276669,cat\n276670,cat\n276671,truck\n276672,deer\n276673,bird\n276674,dog\n276675,truck\n276676,dog\n276677,cat\n276678,airplane\n276679,deer\n276680,cat\n276681,truck\n276682,bird\n276683,airplane\n276684,dog\n276685,deer\n276686,truck\n276687,ship\n276688,frog\n276689,dog\n276690,dog\n276691,dog\n276692,frog\n276693,airplane\n276694,ship\n276695,deer\n276696,cat\n276697,deer\n276698,bird\n276699,truck\n276700,horse\n276701,deer\n276702,airplane\n276703,cat\n276704,bird\n276705,truck\n276706,frog\n276707,horse\n276708,bird\n276709,frog\n276710,automobile\n276711,airplane\n276712,cat\n276713,horse\n276714,frog\n276715,deer\n276716,truck\n276717,airplane\n276718,horse\n276719,horse\n276720,deer\n276721,cat\n276722,cat\n276723,deer\n276724,cat\n276725,horse\n276726,truck\n276727,cat\n276728,cat\n276729,bird\n276730,dog\n276731,bird\n276732,bird\n276733,ship\n276734,cat\n276735,frog\n276736,truck\n276737,deer\n276738,bird\n276739,deer\n276740,deer\n276741,bird\n276742,bird\n276743,truck\n276744,deer\n276745,deer\n276746,airplane\n276747,automobile\n276748,dog\n276749,automobile\n276750,cat\n276751,airplane\n276752,frog\n276753,truck\n276754,automobile\n276755,horse\n276756,airplane\n276757,automobile\n276758,deer\n276759,ship\n276760,automobile\n276761,ship\n276762,deer\n276763,cat\n276764,frog\n276765,frog\n276766,truck\n276767,automobile\n276768,bird\n276769,bird\n276770,frog\n276771,truck\n276772,horse\n276773,airplane\n276774,cat\n276775,ship\n276776,airplane\n276777,frog\n276778,horse\n276779,truck\n276780,cat\n276781,cat\n276782,ship\n276783,cat\n276784,ship\n276785,dog\n276786,deer\n276787,bird\n276788,truck\n276789,cat\n276790,truck\n276791,dog\n276792,ship\n276793,horse\n276794,frog\n276795,ship\n276796,deer\n276797,frog\n276798,ship\n276799,ship\n276800,deer\n276801,horse\n276802,airplane\n276803,ship\n276804,bird\n276805,bird\n276806,bird\n276807,dog\n276808,frog\n276809,frog\n276810,deer\n276811,deer\n276812,cat\n276813,bird\n276814,dog\n276815,deer\n276816,deer\n276817,airplane\n276818,deer\n276819,horse\n276820,horse\n276821,airplane\n276822,cat\n276823,frog\n276824,airplane\n276825,horse\n276826,cat\n276827,horse\n276828,frog\n276829,ship\n276830,deer\n276831,airplane\n276832,bird\n276833,horse\n276834,bird\n276835,horse\n276836,airplane\n276837,horse\n276838,bird\n276839,frog\n276840,truck\n276841,truck\n276842,frog\n276843,frog\n276844,deer\n276845,truck\n276846,bird\n276847,cat\n276848,automobile\n276849,cat\n276850,automobile\n276851,deer\n276852,cat\n276853,truck\n276854,frog\n276855,horse\n276856,horse\n276857,dog\n276858,horse\n276859,bird\n276860,airplane\n276861,horse\n276862,airplane\n276863,dog\n276864,horse\n276865,ship\n276866,truck\n276867,ship\n276868,frog\n276869,dog\n276870,horse\n276871,deer\n276872,ship\n276873,dog\n276874,ship\n276875,bird\n276876,automobile\n276877,cat\n276878,truck\n276879,dog\n276880,horse\n276881,ship\n276882,airplane\n276883,automobile\n276884,bird\n276885,deer\n276886,automobile\n276887,frog\n276888,cat\n276889,automobile\n276890,frog\n276891,ship\n276892,cat\n276893,bird\n276894,frog\n276895,ship\n276896,cat\n276897,deer\n276898,ship\n276899,ship\n276900,dog\n276901,bird\n276902,cat\n276903,cat\n276904,ship\n276905,cat\n276906,horse\n276907,deer\n276908,ship\n276909,cat\n276910,dog\n276911,deer\n276912,airplane\n276913,airplane\n276914,bird\n276915,deer\n276916,horse\n276917,cat\n276918,airplane\n276919,horse\n276920,frog\n276921,cat\n276922,automobile\n276923,truck\n276924,automobile\n276925,cat\n276926,airplane\n276927,truck\n276928,horse\n276929,deer\n276930,truck\n276931,bird\n276932,cat\n276933,truck\n276934,dog\n276935,ship\n276936,cat\n276937,dog\n276938,cat\n276939,horse\n276940,ship\n276941,airplane\n276942,frog\n276943,airplane\n276944,bird\n276945,bird\n276946,bird\n276947,truck\n276948,frog\n276949,bird\n276950,horse\n276951,ship\n276952,dog\n276953,horse\n276954,truck\n276955,cat\n276956,horse\n276957,bird\n276958,deer\n276959,automobile\n276960,cat\n276961,cat\n276962,truck\n276963,truck\n276964,deer\n276965,ship\n276966,truck\n276967,frog\n276968,dog\n276969,cat\n276970,truck\n276971,frog\n276972,ship\n276973,truck\n276974,bird\n276975,frog\n276976,truck\n276977,dog\n276978,deer\n276979,truck\n276980,truck\n276981,deer\n276982,dog\n276983,ship\n276984,deer\n276985,horse\n276986,deer\n276987,horse\n276988,cat\n276989,bird\n276990,frog\n276991,dog\n276992,airplane\n276993,airplane\n276994,deer\n276995,deer\n276996,deer\n276997,bird\n276998,horse\n276999,cat\n277000,dog\n277001,dog\n277002,deer\n277003,truck\n277004,deer\n277005,bird\n277006,truck\n277007,dog\n277008,cat\n277009,deer\n277010,dog\n277011,dog\n277012,deer\n277013,airplane\n277014,horse\n277015,bird\n277016,frog\n277017,truck\n277018,airplane\n277019,cat\n277020,bird\n277021,dog\n277022,bird\n277023,deer\n277024,truck\n277025,deer\n277026,horse\n277027,frog\n277028,horse\n277029,automobile\n277030,cat\n277031,automobile\n277032,dog\n277033,truck\n277034,airplane\n277035,truck\n277036,cat\n277037,dog\n277038,automobile\n277039,dog\n277040,automobile\n277041,frog\n277042,bird\n277043,ship\n277044,deer\n277045,dog\n277046,deer\n277047,ship\n277048,bird\n277049,truck\n277050,horse\n277051,horse\n277052,cat\n277053,airplane\n277054,frog\n277055,deer\n277056,cat\n277057,bird\n277058,automobile\n277059,cat\n277060,dog\n277061,frog\n277062,bird\n277063,deer\n277064,bird\n277065,ship\n277066,frog\n277067,automobile\n277068,deer\n277069,cat\n277070,deer\n277071,horse\n277072,horse\n277073,bird\n277074,truck\n277075,deer\n277076,frog\n277077,truck\n277078,deer\n277079,deer\n277080,dog\n277081,bird\n277082,frog\n277083,dog\n277084,truck\n277085,automobile\n277086,airplane\n277087,horse\n277088,cat\n277089,truck\n277090,cat\n277091,deer\n277092,deer\n277093,horse\n277094,ship\n277095,deer\n277096,dog\n277097,ship\n277098,deer\n277099,cat\n277100,airplane\n277101,dog\n277102,dog\n277103,frog\n277104,frog\n277105,truck\n277106,deer\n277107,horse\n277108,frog\n277109,frog\n277110,airplane\n277111,deer\n277112,deer\n277113,ship\n277114,truck\n277115,deer\n277116,automobile\n277117,cat\n277118,frog\n277119,frog\n277120,deer\n277121,horse\n277122,frog\n277123,airplane\n277124,bird\n277125,cat\n277126,truck\n277127,deer\n277128,bird\n277129,dog\n277130,truck\n277131,airplane\n277132,frog\n277133,horse\n277134,ship\n277135,truck\n277136,bird\n277137,ship\n277138,truck\n277139,airplane\n277140,deer\n277141,deer\n277142,bird\n277143,deer\n277144,airplane\n277145,horse\n277146,deer\n277147,frog\n277148,deer\n277149,truck\n277150,airplane\n277151,bird\n277152,ship\n277153,deer\n277154,airplane\n277155,bird\n277156,bird\n277157,frog\n277158,automobile\n277159,bird\n277160,deer\n277161,cat\n277162,dog\n277163,bird\n277164,frog\n277165,cat\n277166,frog\n277167,frog\n277168,frog\n277169,deer\n277170,horse\n277171,dog\n277172,airplane\n277173,bird\n277174,dog\n277175,horse\n277176,deer\n277177,airplane\n277178,ship\n277179,ship\n277180,bird\n277181,cat\n277182,truck\n277183,ship\n277184,dog\n277185,automobile\n277186,dog\n277187,truck\n277188,dog\n277189,truck\n277190,dog\n277191,ship\n277192,airplane\n277193,airplane\n277194,horse\n277195,bird\n277196,automobile\n277197,frog\n277198,cat\n277199,airplane\n277200,truck\n277201,dog\n277202,bird\n277203,cat\n277204,cat\n277205,bird\n277206,dog\n277207,automobile\n277208,deer\n277209,automobile\n277210,cat\n277211,horse\n277212,deer\n277213,dog\n277214,automobile\n277215,ship\n277216,ship\n277217,airplane\n277218,dog\n277219,dog\n277220,frog\n277221,bird\n277222,airplane\n277223,bird\n277224,bird\n277225,bird\n277226,automobile\n277227,ship\n277228,cat\n277229,airplane\n277230,bird\n277231,dog\n277232,truck\n277233,truck\n277234,deer\n277235,truck\n277236,deer\n277237,truck\n277238,bird\n277239,cat\n277240,horse\n277241,automobile\n277242,frog\n277243,dog\n277244,truck\n277245,truck\n277246,ship\n277247,airplane\n277248,airplane\n277249,deer\n277250,frog\n277251,deer\n277252,frog\n277253,frog\n277254,deer\n277255,deer\n277256,automobile\n277257,airplane\n277258,frog\n277259,deer\n277260,bird\n277261,horse\n277262,ship\n277263,deer\n277264,bird\n277265,deer\n277266,truck\n277267,horse\n277268,horse\n277269,frog\n277270,dog\n277271,dog\n277272,deer\n277273,cat\n277274,frog\n277275,airplane\n277276,dog\n277277,frog\n277278,frog\n277279,horse\n277280,frog\n277281,airplane\n277282,ship\n277283,ship\n277284,airplane\n277285,ship\n277286,horse\n277287,cat\n277288,frog\n277289,frog\n277290,horse\n277291,cat\n277292,frog\n277293,horse\n277294,ship\n277295,deer\n277296,cat\n277297,frog\n277298,cat\n277299,deer\n277300,dog\n277301,horse\n277302,horse\n277303,airplane\n277304,cat\n277305,truck\n277306,deer\n277307,airplane\n277308,ship\n277309,cat\n277310,dog\n277311,horse\n277312,deer\n277313,bird\n277314,truck\n277315,deer\n277316,frog\n277317,deer\n277318,ship\n277319,truck\n277320,cat\n277321,airplane\n277322,deer\n277323,horse\n277324,deer\n277325,dog\n277326,truck\n277327,bird\n277328,bird\n277329,cat\n277330,cat\n277331,frog\n277332,ship\n277333,dog\n277334,truck\n277335,deer\n277336,bird\n277337,ship\n277338,horse\n277339,deer\n277340,dog\n277341,frog\n277342,cat\n277343,frog\n277344,truck\n277345,airplane\n277346,cat\n277347,ship\n277348,frog\n277349,airplane\n277350,bird\n277351,horse\n277352,cat\n277353,ship\n277354,ship\n277355,deer\n277356,ship\n277357,cat\n277358,deer\n277359,airplane\n277360,truck\n277361,airplane\n277362,ship\n277363,cat\n277364,cat\n277365,frog\n277366,horse\n277367,truck\n277368,truck\n277369,dog\n277370,dog\n277371,deer\n277372,frog\n277373,frog\n277374,deer\n277375,frog\n277376,cat\n277377,truck\n277378,ship\n277379,horse\n277380,deer\n277381,dog\n277382,frog\n277383,truck\n277384,cat\n277385,truck\n277386,deer\n277387,bird\n277388,cat\n277389,frog\n277390,bird\n277391,bird\n277392,frog\n277393,ship\n277394,deer\n277395,horse\n277396,deer\n277397,bird\n277398,horse\n277399,truck\n277400,frog\n277401,bird\n277402,frog\n277403,ship\n277404,ship\n277405,deer\n277406,deer\n277407,horse\n277408,dog\n277409,frog\n277410,bird\n277411,cat\n277412,cat\n277413,ship\n277414,ship\n277415,frog\n277416,frog\n277417,automobile\n277418,deer\n277419,horse\n277420,frog\n277421,ship\n277422,automobile\n277423,cat\n277424,deer\n277425,automobile\n277426,cat\n277427,deer\n277428,horse\n277429,horse\n277430,airplane\n277431,cat\n277432,deer\n277433,horse\n277434,frog\n277435,cat\n277436,truck\n277437,deer\n277438,frog\n277439,cat\n277440,deer\n277441,dog\n277442,cat\n277443,frog\n277444,frog\n277445,frog\n277446,dog\n277447,horse\n277448,dog\n277449,deer\n277450,ship\n277451,airplane\n277452,frog\n277453,automobile\n277454,automobile\n277455,truck\n277456,cat\n277457,truck\n277458,dog\n277459,automobile\n277460,ship\n277461,truck\n277462,deer\n277463,ship\n277464,cat\n277465,dog\n277466,airplane\n277467,airplane\n277468,deer\n277469,ship\n277470,horse\n277471,cat\n277472,truck\n277473,airplane\n277474,deer\n277475,dog\n277476,cat\n277477,frog\n277478,deer\n277479,deer\n277480,cat\n277481,airplane\n277482,bird\n277483,truck\n277484,deer\n277485,frog\n277486,bird\n277487,bird\n277488,dog\n277489,dog\n277490,ship\n277491,bird\n277492,bird\n277493,automobile\n277494,automobile\n277495,cat\n277496,bird\n277497,horse\n277498,deer\n277499,truck\n277500,truck\n277501,deer\n277502,truck\n277503,ship\n277504,frog\n277505,bird\n277506,deer\n277507,bird\n277508,cat\n277509,bird\n277510,airplane\n277511,deer\n277512,ship\n277513,deer\n277514,ship\n277515,horse\n277516,cat\n277517,bird\n277518,truck\n277519,frog\n277520,truck\n277521,ship\n277522,airplane\n277523,bird\n277524,airplane\n277525,frog\n277526,dog\n277527,deer\n277528,truck\n277529,truck\n277530,deer\n277531,airplane\n277532,automobile\n277533,airplane\n277534,truck\n277535,deer\n277536,dog\n277537,frog\n277538,frog\n277539,bird\n277540,cat\n277541,dog\n277542,cat\n277543,horse\n277544,truck\n277545,truck\n277546,cat\n277547,deer\n277548,bird\n277549,cat\n277550,airplane\n277551,horse\n277552,automobile\n277553,dog\n277554,dog\n277555,bird\n277556,dog\n277557,dog\n277558,cat\n277559,deer\n277560,frog\n277561,truck\n277562,deer\n277563,bird\n277564,frog\n277565,ship\n277566,airplane\n277567,truck\n277568,dog\n277569,deer\n277570,frog\n277571,deer\n277572,truck\n277573,truck\n277574,frog\n277575,dog\n277576,horse\n277577,truck\n277578,horse\n277579,deer\n277580,horse\n277581,cat\n277582,deer\n277583,cat\n277584,dog\n277585,cat\n277586,bird\n277587,bird\n277588,frog\n277589,deer\n277590,frog\n277591,frog\n277592,cat\n277593,horse\n277594,automobile\n277595,horse\n277596,bird\n277597,dog\n277598,horse\n277599,ship\n277600,cat\n277601,ship\n277602,horse\n277603,airplane\n277604,bird\n277605,ship\n277606,cat\n277607,airplane\n277608,dog\n277609,cat\n277610,dog\n277611,deer\n277612,dog\n277613,automobile\n277614,frog\n277615,deer\n277616,deer\n277617,airplane\n277618,cat\n277619,deer\n277620,automobile\n277621,airplane\n277622,truck\n277623,horse\n277624,horse\n277625,dog\n277626,ship\n277627,cat\n277628,deer\n277629,cat\n277630,truck\n277631,horse\n277632,automobile\n277633,deer\n277634,ship\n277635,cat\n277636,cat\n277637,ship\n277638,airplane\n277639,deer\n277640,horse\n277641,horse\n277642,truck\n277643,dog\n277644,bird\n277645,cat\n277646,deer\n277647,deer\n277648,horse\n277649,airplane\n277650,cat\n277651,truck\n277652,horse\n277653,airplane\n277654,truck\n277655,deer\n277656,ship\n277657,deer\n277658,horse\n277659,frog\n277660,cat\n277661,truck\n277662,cat\n277663,horse\n277664,deer\n277665,ship\n277666,automobile\n277667,bird\n277668,ship\n277669,dog\n277670,horse\n277671,deer\n277672,ship\n277673,frog\n277674,cat\n277675,automobile\n277676,cat\n277677,ship\n277678,deer\n277679,airplane\n277680,cat\n277681,ship\n277682,deer\n277683,dog\n277684,bird\n277685,bird\n277686,automobile\n277687,deer\n277688,horse\n277689,airplane\n277690,horse\n277691,airplane\n277692,airplane\n277693,frog\n277694,cat\n277695,airplane\n277696,cat\n277697,airplane\n277698,horse\n277699,horse\n277700,horse\n277701,dog\n277702,automobile\n277703,ship\n277704,horse\n277705,frog\n277706,airplane\n277707,airplane\n277708,horse\n277709,dog\n277710,truck\n277711,horse\n277712,bird\n277713,horse\n277714,bird\n277715,airplane\n277716,airplane\n277717,truck\n277718,bird\n277719,airplane\n277720,frog\n277721,automobile\n277722,deer\n277723,automobile\n277724,cat\n277725,ship\n277726,truck\n277727,deer\n277728,airplane\n277729,dog\n277730,cat\n277731,airplane\n277732,ship\n277733,airplane\n277734,ship\n277735,cat\n277736,airplane\n277737,ship\n277738,deer\n277739,horse\n277740,frog\n277741,truck\n277742,bird\n277743,dog\n277744,cat\n277745,dog\n277746,dog\n277747,dog\n277748,deer\n277749,frog\n277750,cat\n277751,ship\n277752,automobile\n277753,frog\n277754,airplane\n277755,dog\n277756,bird\n277757,deer\n277758,frog\n277759,dog\n277760,horse\n277761,dog\n277762,ship\n277763,bird\n277764,deer\n277765,frog\n277766,ship\n277767,deer\n277768,deer\n277769,frog\n277770,airplane\n277771,frog\n277772,deer\n277773,horse\n277774,cat\n277775,deer\n277776,bird\n277777,deer\n277778,horse\n277779,truck\n277780,deer\n277781,automobile\n277782,bird\n277783,bird\n277784,cat\n277785,automobile\n277786,frog\n277787,horse\n277788,dog\n277789,deer\n277790,airplane\n277791,truck\n277792,frog\n277793,frog\n277794,frog\n277795,dog\n277796,cat\n277797,truck\n277798,automobile\n277799,truck\n277800,airplane\n277801,airplane\n277802,dog\n277803,cat\n277804,dog\n277805,horse\n277806,ship\n277807,dog\n277808,automobile\n277809,dog\n277810,horse\n277811,truck\n277812,ship\n277813,ship\n277814,cat\n277815,ship\n277816,frog\n277817,deer\n277818,ship\n277819,ship\n277820,airplane\n277821,cat\n277822,airplane\n277823,frog\n277824,bird\n277825,dog\n277826,frog\n277827,deer\n277828,frog\n277829,horse\n277830,horse\n277831,bird\n277832,frog\n277833,deer\n277834,ship\n277835,airplane\n277836,bird\n277837,automobile\n277838,automobile\n277839,deer\n277840,deer\n277841,bird\n277842,cat\n277843,airplane\n277844,bird\n277845,frog\n277846,airplane\n277847,automobile\n277848,deer\n277849,frog\n277850,truck\n277851,frog\n277852,bird\n277853,frog\n277854,horse\n277855,frog\n277856,ship\n277857,horse\n277858,ship\n277859,cat\n277860,bird\n277861,automobile\n277862,cat\n277863,ship\n277864,dog\n277865,truck\n277866,truck\n277867,bird\n277868,cat\n277869,automobile\n277870,ship\n277871,automobile\n277872,airplane\n277873,truck\n277874,horse\n277875,frog\n277876,bird\n277877,horse\n277878,deer\n277879,horse\n277880,truck\n277881,automobile\n277882,horse\n277883,horse\n277884,automobile\n277885,bird\n277886,horse\n277887,truck\n277888,deer\n277889,cat\n277890,deer\n277891,frog\n277892,deer\n277893,truck\n277894,deer\n277895,deer\n277896,cat\n277897,ship\n277898,airplane\n277899,deer\n277900,dog\n277901,truck\n277902,airplane\n277903,cat\n277904,dog\n277905,truck\n277906,deer\n277907,dog\n277908,deer\n277909,bird\n277910,ship\n277911,airplane\n277912,automobile\n277913,automobile\n277914,deer\n277915,deer\n277916,airplane\n277917,airplane\n277918,bird\n277919,ship\n277920,cat\n277921,horse\n277922,dog\n277923,cat\n277924,frog\n277925,horse\n277926,horse\n277927,cat\n277928,automobile\n277929,cat\n277930,horse\n277931,frog\n277932,cat\n277933,frog\n277934,frog\n277935,ship\n277936,truck\n277937,truck\n277938,deer\n277939,horse\n277940,frog\n277941,ship\n277942,frog\n277943,ship\n277944,bird\n277945,cat\n277946,frog\n277947,ship\n277948,cat\n277949,ship\n277950,frog\n277951,cat\n277952,cat\n277953,horse\n277954,dog\n277955,truck\n277956,bird\n277957,dog\n277958,airplane\n277959,ship\n277960,truck\n277961,deer\n277962,cat\n277963,deer\n277964,ship\n277965,frog\n277966,frog\n277967,deer\n277968,frog\n277969,truck\n277970,dog\n277971,truck\n277972,airplane\n277973,deer\n277974,bird\n277975,frog\n277976,cat\n277977,automobile\n277978,dog\n277979,ship\n277980,automobile\n277981,dog\n277982,cat\n277983,horse\n277984,bird\n277985,cat\n277986,frog\n277987,bird\n277988,deer\n277989,deer\n277990,airplane\n277991,dog\n277992,deer\n277993,automobile\n277994,cat\n277995,dog\n277996,deer\n277997,frog\n277998,airplane\n277999,automobile\n278000,dog\n278001,dog\n278002,frog\n278003,cat\n278004,automobile\n278005,airplane\n278006,dog\n278007,cat\n278008,frog\n278009,deer\n278010,bird\n278011,frog\n278012,automobile\n278013,automobile\n278014,cat\n278015,ship\n278016,ship\n278017,bird\n278018,truck\n278019,dog\n278020,truck\n278021,automobile\n278022,frog\n278023,airplane\n278024,frog\n278025,deer\n278026,deer\n278027,automobile\n278028,horse\n278029,ship\n278030,horse\n278031,cat\n278032,cat\n278033,horse\n278034,cat\n278035,cat\n278036,frog\n278037,automobile\n278038,ship\n278039,bird\n278040,airplane\n278041,automobile\n278042,bird\n278043,ship\n278044,truck\n278045,truck\n278046,frog\n278047,cat\n278048,deer\n278049,ship\n278050,dog\n278051,cat\n278052,deer\n278053,cat\n278054,bird\n278055,bird\n278056,automobile\n278057,automobile\n278058,bird\n278059,cat\n278060,frog\n278061,airplane\n278062,bird\n278063,cat\n278064,dog\n278065,truck\n278066,automobile\n278067,frog\n278068,dog\n278069,cat\n278070,cat\n278071,automobile\n278072,horse\n278073,airplane\n278074,ship\n278075,automobile\n278076,dog\n278077,automobile\n278078,ship\n278079,truck\n278080,bird\n278081,dog\n278082,truck\n278083,cat\n278084,deer\n278085,airplane\n278086,frog\n278087,frog\n278088,frog\n278089,dog\n278090,dog\n278091,frog\n278092,airplane\n278093,bird\n278094,cat\n278095,dog\n278096,dog\n278097,automobile\n278098,airplane\n278099,bird\n278100,bird\n278101,deer\n278102,horse\n278103,automobile\n278104,dog\n278105,horse\n278106,bird\n278107,deer\n278108,automobile\n278109,deer\n278110,cat\n278111,frog\n278112,ship\n278113,airplane\n278114,bird\n278115,frog\n278116,ship\n278117,airplane\n278118,deer\n278119,frog\n278120,cat\n278121,truck\n278122,cat\n278123,airplane\n278124,ship\n278125,deer\n278126,bird\n278127,truck\n278128,deer\n278129,bird\n278130,airplane\n278131,ship\n278132,ship\n278133,cat\n278134,ship\n278135,deer\n278136,cat\n278137,ship\n278138,truck\n278139,frog\n278140,horse\n278141,truck\n278142,ship\n278143,cat\n278144,horse\n278145,horse\n278146,automobile\n278147,frog\n278148,cat\n278149,airplane\n278150,frog\n278151,deer\n278152,deer\n278153,airplane\n278154,horse\n278155,bird\n278156,cat\n278157,airplane\n278158,automobile\n278159,horse\n278160,automobile\n278161,frog\n278162,ship\n278163,cat\n278164,truck\n278165,ship\n278166,horse\n278167,horse\n278168,automobile\n278169,truck\n278170,airplane\n278171,horse\n278172,deer\n278173,cat\n278174,frog\n278175,airplane\n278176,truck\n278177,horse\n278178,frog\n278179,truck\n278180,horse\n278181,deer\n278182,deer\n278183,truck\n278184,ship\n278185,ship\n278186,ship\n278187,frog\n278188,truck\n278189,ship\n278190,horse\n278191,cat\n278192,automobile\n278193,deer\n278194,horse\n278195,ship\n278196,cat\n278197,deer\n278198,truck\n278199,cat\n278200,cat\n278201,bird\n278202,cat\n278203,frog\n278204,cat\n278205,truck\n278206,dog\n278207,bird\n278208,dog\n278209,ship\n278210,bird\n278211,cat\n278212,dog\n278213,bird\n278214,ship\n278215,horse\n278216,truck\n278217,truck\n278218,bird\n278219,frog\n278220,horse\n278221,cat\n278222,cat\n278223,horse\n278224,automobile\n278225,dog\n278226,truck\n278227,frog\n278228,dog\n278229,truck\n278230,deer\n278231,frog\n278232,horse\n278233,frog\n278234,cat\n278235,horse\n278236,dog\n278237,deer\n278238,ship\n278239,dog\n278240,horse\n278241,dog\n278242,horse\n278243,cat\n278244,truck\n278245,deer\n278246,truck\n278247,truck\n278248,truck\n278249,truck\n278250,bird\n278251,automobile\n278252,airplane\n278253,airplane\n278254,frog\n278255,airplane\n278256,bird\n278257,deer\n278258,frog\n278259,truck\n278260,horse\n278261,bird\n278262,airplane\n278263,deer\n278264,deer\n278265,ship\n278266,airplane\n278267,cat\n278268,cat\n278269,airplane\n278270,truck\n278271,deer\n278272,dog\n278273,dog\n278274,truck\n278275,horse\n278276,automobile\n278277,airplane\n278278,airplane\n278279,cat\n278280,truck\n278281,deer\n278282,frog\n278283,bird\n278284,ship\n278285,cat\n278286,frog\n278287,horse\n278288,bird\n278289,deer\n278290,automobile\n278291,ship\n278292,dog\n278293,airplane\n278294,frog\n278295,airplane\n278296,truck\n278297,horse\n278298,horse\n278299,ship\n278300,deer\n278301,ship\n278302,horse\n278303,frog\n278304,airplane\n278305,cat\n278306,automobile\n278307,horse\n278308,deer\n278309,dog\n278310,cat\n278311,bird\n278312,horse\n278313,deer\n278314,bird\n278315,deer\n278316,dog\n278317,cat\n278318,ship\n278319,deer\n278320,cat\n278321,cat\n278322,truck\n278323,dog\n278324,truck\n278325,automobile\n278326,frog\n278327,cat\n278328,bird\n278329,truck\n278330,frog\n278331,deer\n278332,cat\n278333,horse\n278334,airplane\n278335,automobile\n278336,dog\n278337,deer\n278338,airplane\n278339,airplane\n278340,frog\n278341,frog\n278342,cat\n278343,truck\n278344,ship\n278345,ship\n278346,ship\n278347,deer\n278348,cat\n278349,cat\n278350,deer\n278351,deer\n278352,frog\n278353,frog\n278354,cat\n278355,dog\n278356,ship\n278357,cat\n278358,truck\n278359,dog\n278360,airplane\n278361,deer\n278362,airplane\n278363,cat\n278364,bird\n278365,ship\n278366,airplane\n278367,frog\n278368,airplane\n278369,bird\n278370,airplane\n278371,automobile\n278372,cat\n278373,deer\n278374,truck\n278375,automobile\n278376,deer\n278377,truck\n278378,deer\n278379,deer\n278380,dog\n278381,deer\n278382,frog\n278383,cat\n278384,frog\n278385,truck\n278386,ship\n278387,deer\n278388,automobile\n278389,cat\n278390,deer\n278391,ship\n278392,horse\n278393,bird\n278394,cat\n278395,bird\n278396,airplane\n278397,deer\n278398,deer\n278399,dog\n278400,deer\n278401,airplane\n278402,airplane\n278403,horse\n278404,truck\n278405,dog\n278406,automobile\n278407,automobile\n278408,automobile\n278409,truck\n278410,deer\n278411,ship\n278412,frog\n278413,frog\n278414,cat\n278415,cat\n278416,truck\n278417,cat\n278418,truck\n278419,horse\n278420,bird\n278421,ship\n278422,horse\n278423,ship\n278424,dog\n278425,truck\n278426,cat\n278427,airplane\n278428,automobile\n278429,cat\n278430,dog\n278431,frog\n278432,bird\n278433,dog\n278434,horse\n278435,cat\n278436,horse\n278437,airplane\n278438,automobile\n278439,cat\n278440,frog\n278441,frog\n278442,bird\n278443,dog\n278444,airplane\n278445,bird\n278446,deer\n278447,cat\n278448,deer\n278449,frog\n278450,frog\n278451,ship\n278452,dog\n278453,airplane\n278454,ship\n278455,ship\n278456,dog\n278457,dog\n278458,cat\n278459,deer\n278460,ship\n278461,cat\n278462,horse\n278463,deer\n278464,automobile\n278465,deer\n278466,cat\n278467,ship\n278468,deer\n278469,horse\n278470,truck\n278471,dog\n278472,truck\n278473,deer\n278474,bird\n278475,bird\n278476,deer\n278477,automobile\n278478,cat\n278479,deer\n278480,bird\n278481,ship\n278482,deer\n278483,bird\n278484,dog\n278485,deer\n278486,dog\n278487,airplane\n278488,dog\n278489,cat\n278490,deer\n278491,truck\n278492,dog\n278493,cat\n278494,dog\n278495,horse\n278496,ship\n278497,dog\n278498,cat\n278499,dog\n278500,horse\n278501,truck\n278502,truck\n278503,frog\n278504,frog\n278505,frog\n278506,frog\n278507,airplane\n278508,frog\n278509,truck\n278510,frog\n278511,deer\n278512,truck\n278513,cat\n278514,cat\n278515,cat\n278516,ship\n278517,deer\n278518,dog\n278519,airplane\n278520,cat\n278521,deer\n278522,ship\n278523,automobile\n278524,dog\n278525,truck\n278526,deer\n278527,dog\n278528,airplane\n278529,dog\n278530,deer\n278531,cat\n278532,cat\n278533,automobile\n278534,airplane\n278535,deer\n278536,deer\n278537,bird\n278538,cat\n278539,cat\n278540,deer\n278541,bird\n278542,deer\n278543,frog\n278544,deer\n278545,deer\n278546,frog\n278547,cat\n278548,truck\n278549,bird\n278550,airplane\n278551,frog\n278552,deer\n278553,horse\n278554,horse\n278555,deer\n278556,airplane\n278557,airplane\n278558,bird\n278559,cat\n278560,ship\n278561,airplane\n278562,frog\n278563,truck\n278564,horse\n278565,cat\n278566,deer\n278567,deer\n278568,horse\n278569,frog\n278570,deer\n278571,horse\n278572,airplane\n278573,frog\n278574,airplane\n278575,airplane\n278576,airplane\n278577,horse\n278578,airplane\n278579,horse\n278580,dog\n278581,cat\n278582,deer\n278583,ship\n278584,ship\n278585,truck\n278586,horse\n278587,dog\n278588,automobile\n278589,cat\n278590,ship\n278591,dog\n278592,deer\n278593,truck\n278594,cat\n278595,ship\n278596,cat\n278597,frog\n278598,truck\n278599,deer\n278600,airplane\n278601,airplane\n278602,deer\n278603,airplane\n278604,ship\n278605,deer\n278606,cat\n278607,ship\n278608,horse\n278609,airplane\n278610,horse\n278611,deer\n278612,frog\n278613,automobile\n278614,bird\n278615,horse\n278616,bird\n278617,ship\n278618,cat\n278619,bird\n278620,airplane\n278621,bird\n278622,horse\n278623,deer\n278624,horse\n278625,automobile\n278626,horse\n278627,dog\n278628,truck\n278629,automobile\n278630,dog\n278631,bird\n278632,truck\n278633,horse\n278634,airplane\n278635,cat\n278636,dog\n278637,airplane\n278638,deer\n278639,airplane\n278640,bird\n278641,dog\n278642,horse\n278643,airplane\n278644,dog\n278645,deer\n278646,frog\n278647,frog\n278648,frog\n278649,bird\n278650,deer\n278651,automobile\n278652,deer\n278653,cat\n278654,dog\n278655,ship\n278656,automobile\n278657,bird\n278658,horse\n278659,bird\n278660,bird\n278661,deer\n278662,cat\n278663,deer\n278664,frog\n278665,ship\n278666,airplane\n278667,frog\n278668,horse\n278669,cat\n278670,automobile\n278671,deer\n278672,dog\n278673,frog\n278674,airplane\n278675,truck\n278676,airplane\n278677,frog\n278678,cat\n278679,airplane\n278680,cat\n278681,horse\n278682,cat\n278683,dog\n278684,truck\n278685,airplane\n278686,bird\n278687,truck\n278688,cat\n278689,cat\n278690,bird\n278691,horse\n278692,frog\n278693,automobile\n278694,cat\n278695,bird\n278696,bird\n278697,automobile\n278698,airplane\n278699,automobile\n278700,ship\n278701,horse\n278702,automobile\n278703,dog\n278704,horse\n278705,dog\n278706,cat\n278707,bird\n278708,cat\n278709,dog\n278710,cat\n278711,ship\n278712,ship\n278713,frog\n278714,truck\n278715,deer\n278716,automobile\n278717,frog\n278718,horse\n278719,automobile\n278720,dog\n278721,frog\n278722,airplane\n278723,airplane\n278724,airplane\n278725,deer\n278726,truck\n278727,cat\n278728,horse\n278729,deer\n278730,frog\n278731,automobile\n278732,deer\n278733,dog\n278734,truck\n278735,airplane\n278736,deer\n278737,automobile\n278738,cat\n278739,truck\n278740,horse\n278741,truck\n278742,cat\n278743,bird\n278744,dog\n278745,cat\n278746,truck\n278747,deer\n278748,cat\n278749,airplane\n278750,bird\n278751,cat\n278752,bird\n278753,bird\n278754,cat\n278755,cat\n278756,frog\n278757,airplane\n278758,deer\n278759,horse\n278760,bird\n278761,truck\n278762,bird\n278763,automobile\n278764,ship\n278765,airplane\n278766,bird\n278767,truck\n278768,bird\n278769,cat\n278770,airplane\n278771,airplane\n278772,deer\n278773,truck\n278774,horse\n278775,horse\n278776,horse\n278777,airplane\n278778,horse\n278779,cat\n278780,frog\n278781,cat\n278782,horse\n278783,truck\n278784,truck\n278785,cat\n278786,deer\n278787,truck\n278788,airplane\n278789,airplane\n278790,deer\n278791,frog\n278792,horse\n278793,truck\n278794,deer\n278795,ship\n278796,airplane\n278797,horse\n278798,cat\n278799,cat\n278800,cat\n278801,horse\n278802,airplane\n278803,cat\n278804,deer\n278805,cat\n278806,ship\n278807,bird\n278808,bird\n278809,automobile\n278810,truck\n278811,bird\n278812,horse\n278813,horse\n278814,bird\n278815,deer\n278816,deer\n278817,deer\n278818,dog\n278819,automobile\n278820,ship\n278821,dog\n278822,deer\n278823,bird\n278824,cat\n278825,frog\n278826,ship\n278827,airplane\n278828,cat\n278829,automobile\n278830,dog\n278831,ship\n278832,automobile\n278833,horse\n278834,horse\n278835,automobile\n278836,airplane\n278837,automobile\n278838,ship\n278839,horse\n278840,truck\n278841,bird\n278842,bird\n278843,truck\n278844,ship\n278845,frog\n278846,airplane\n278847,ship\n278848,truck\n278849,truck\n278850,frog\n278851,horse\n278852,airplane\n278853,bird\n278854,cat\n278855,bird\n278856,deer\n278857,ship\n278858,horse\n278859,dog\n278860,deer\n278861,deer\n278862,deer\n278863,truck\n278864,frog\n278865,deer\n278866,automobile\n278867,bird\n278868,airplane\n278869,horse\n278870,deer\n278871,frog\n278872,airplane\n278873,truck\n278874,truck\n278875,cat\n278876,cat\n278877,cat\n278878,deer\n278879,airplane\n278880,deer\n278881,deer\n278882,horse\n278883,horse\n278884,cat\n278885,truck\n278886,cat\n278887,automobile\n278888,horse\n278889,frog\n278890,cat\n278891,frog\n278892,frog\n278893,horse\n278894,cat\n278895,bird\n278896,frog\n278897,frog\n278898,truck\n278899,dog\n278900,deer\n278901,frog\n278902,cat\n278903,deer\n278904,bird\n278905,dog\n278906,airplane\n278907,cat\n278908,bird\n278909,cat\n278910,automobile\n278911,ship\n278912,cat\n278913,dog\n278914,dog\n278915,frog\n278916,airplane\n278917,deer\n278918,bird\n278919,frog\n278920,deer\n278921,deer\n278922,frog\n278923,airplane\n278924,dog\n278925,truck\n278926,truck\n278927,ship\n278928,deer\n278929,horse\n278930,horse\n278931,airplane\n278932,airplane\n278933,airplane\n278934,deer\n278935,bird\n278936,dog\n278937,dog\n278938,deer\n278939,horse\n278940,frog\n278941,dog\n278942,bird\n278943,horse\n278944,frog\n278945,dog\n278946,truck\n278947,bird\n278948,automobile\n278949,horse\n278950,cat\n278951,airplane\n278952,frog\n278953,cat\n278954,frog\n278955,ship\n278956,dog\n278957,cat\n278958,frog\n278959,truck\n278960,horse\n278961,dog\n278962,deer\n278963,frog\n278964,cat\n278965,bird\n278966,horse\n278967,bird\n278968,dog\n278969,dog\n278970,automobile\n278971,frog\n278972,ship\n278973,deer\n278974,automobile\n278975,frog\n278976,frog\n278977,frog\n278978,dog\n278979,deer\n278980,dog\n278981,ship\n278982,airplane\n278983,ship\n278984,cat\n278985,horse\n278986,truck\n278987,deer\n278988,horse\n278989,cat\n278990,cat\n278991,deer\n278992,dog\n278993,truck\n278994,frog\n278995,frog\n278996,horse\n278997,airplane\n278998,frog\n278999,cat\n279000,frog\n279001,automobile\n279002,deer\n279003,dog\n279004,cat\n279005,dog\n279006,bird\n279007,deer\n279008,truck\n279009,deer\n279010,deer\n279011,bird\n279012,dog\n279013,truck\n279014,dog\n279015,horse\n279016,cat\n279017,bird\n279018,ship\n279019,automobile\n279020,truck\n279021,frog\n279022,ship\n279023,deer\n279024,cat\n279025,airplane\n279026,cat\n279027,dog\n279028,ship\n279029,truck\n279030,cat\n279031,horse\n279032,airplane\n279033,dog\n279034,dog\n279035,bird\n279036,bird\n279037,airplane\n279038,airplane\n279039,deer\n279040,bird\n279041,horse\n279042,ship\n279043,dog\n279044,ship\n279045,bird\n279046,ship\n279047,frog\n279048,horse\n279049,deer\n279050,horse\n279051,airplane\n279052,ship\n279053,automobile\n279054,dog\n279055,airplane\n279056,dog\n279057,bird\n279058,dog\n279059,horse\n279060,dog\n279061,automobile\n279062,truck\n279063,ship\n279064,ship\n279065,cat\n279066,cat\n279067,dog\n279068,truck\n279069,airplane\n279070,automobile\n279071,truck\n279072,horse\n279073,truck\n279074,deer\n279075,cat\n279076,frog\n279077,airplane\n279078,airplane\n279079,bird\n279080,frog\n279081,ship\n279082,horse\n279083,automobile\n279084,frog\n279085,truck\n279086,cat\n279087,cat\n279088,bird\n279089,deer\n279090,bird\n279091,dog\n279092,airplane\n279093,automobile\n279094,frog\n279095,deer\n279096,deer\n279097,dog\n279098,cat\n279099,deer\n279100,frog\n279101,bird\n279102,frog\n279103,automobile\n279104,truck\n279105,cat\n279106,dog\n279107,bird\n279108,horse\n279109,bird\n279110,airplane\n279111,bird\n279112,frog\n279113,horse\n279114,bird\n279115,airplane\n279116,automobile\n279117,cat\n279118,truck\n279119,dog\n279120,ship\n279121,automobile\n279122,truck\n279123,dog\n279124,automobile\n279125,automobile\n279126,frog\n279127,truck\n279128,bird\n279129,dog\n279130,airplane\n279131,horse\n279132,dog\n279133,deer\n279134,airplane\n279135,cat\n279136,truck\n279137,truck\n279138,deer\n279139,horse\n279140,airplane\n279141,ship\n279142,horse\n279143,deer\n279144,airplane\n279145,deer\n279146,deer\n279147,frog\n279148,bird\n279149,automobile\n279150,airplane\n279151,ship\n279152,bird\n279153,frog\n279154,truck\n279155,deer\n279156,frog\n279157,airplane\n279158,horse\n279159,dog\n279160,automobile\n279161,ship\n279162,airplane\n279163,deer\n279164,automobile\n279165,airplane\n279166,ship\n279167,deer\n279168,horse\n279169,deer\n279170,ship\n279171,cat\n279172,deer\n279173,ship\n279174,horse\n279175,airplane\n279176,airplane\n279177,deer\n279178,deer\n279179,frog\n279180,cat\n279181,deer\n279182,dog\n279183,truck\n279184,cat\n279185,horse\n279186,ship\n279187,truck\n279188,ship\n279189,frog\n279190,ship\n279191,horse\n279192,horse\n279193,ship\n279194,ship\n279195,horse\n279196,frog\n279197,automobile\n279198,bird\n279199,cat\n279200,frog\n279201,bird\n279202,deer\n279203,automobile\n279204,airplane\n279205,deer\n279206,automobile\n279207,frog\n279208,truck\n279209,bird\n279210,automobile\n279211,airplane\n279212,truck\n279213,frog\n279214,cat\n279215,airplane\n279216,frog\n279217,deer\n279218,horse\n279219,bird\n279220,horse\n279221,truck\n279222,automobile\n279223,ship\n279224,horse\n279225,cat\n279226,deer\n279227,truck\n279228,truck\n279229,ship\n279230,horse\n279231,deer\n279232,ship\n279233,truck\n279234,ship\n279235,automobile\n279236,truck\n279237,frog\n279238,horse\n279239,deer\n279240,frog\n279241,truck\n279242,cat\n279243,airplane\n279244,automobile\n279245,horse\n279246,automobile\n279247,frog\n279248,deer\n279249,truck\n279250,cat\n279251,bird\n279252,truck\n279253,dog\n279254,cat\n279255,ship\n279256,cat\n279257,airplane\n279258,frog\n279259,deer\n279260,ship\n279261,bird\n279262,horse\n279263,cat\n279264,frog\n279265,cat\n279266,airplane\n279267,automobile\n279268,airplane\n279269,cat\n279270,cat\n279271,horse\n279272,deer\n279273,automobile\n279274,truck\n279275,bird\n279276,cat\n279277,automobile\n279278,dog\n279279,ship\n279280,dog\n279281,deer\n279282,dog\n279283,cat\n279284,ship\n279285,deer\n279286,automobile\n279287,cat\n279288,dog\n279289,truck\n279290,cat\n279291,automobile\n279292,frog\n279293,ship\n279294,truck\n279295,frog\n279296,dog\n279297,cat\n279298,horse\n279299,deer\n279300,horse\n279301,truck\n279302,automobile\n279303,ship\n279304,horse\n279305,deer\n279306,dog\n279307,deer\n279308,frog\n279309,automobile\n279310,truck\n279311,deer\n279312,deer\n279313,automobile\n279314,deer\n279315,cat\n279316,frog\n279317,cat\n279318,cat\n279319,automobile\n279320,frog\n279321,dog\n279322,cat\n279323,bird\n279324,deer\n279325,cat\n279326,automobile\n279327,frog\n279328,automobile\n279329,deer\n279330,airplane\n279331,horse\n279332,deer\n279333,deer\n279334,ship\n279335,frog\n279336,horse\n279337,airplane\n279338,deer\n279339,cat\n279340,bird\n279341,deer\n279342,bird\n279343,horse\n279344,bird\n279345,frog\n279346,truck\n279347,bird\n279348,dog\n279349,truck\n279350,deer\n279351,deer\n279352,horse\n279353,ship\n279354,airplane\n279355,horse\n279356,ship\n279357,cat\n279358,truck\n279359,truck\n279360,automobile\n279361,truck\n279362,deer\n279363,airplane\n279364,frog\n279365,deer\n279366,horse\n279367,truck\n279368,frog\n279369,airplane\n279370,horse\n279371,deer\n279372,deer\n279373,dog\n279374,dog\n279375,automobile\n279376,dog\n279377,truck\n279378,ship\n279379,airplane\n279380,frog\n279381,frog\n279382,airplane\n279383,truck\n279384,airplane\n279385,truck\n279386,airplane\n279387,frog\n279388,bird\n279389,ship\n279390,horse\n279391,bird\n279392,automobile\n279393,frog\n279394,horse\n279395,cat\n279396,bird\n279397,truck\n279398,cat\n279399,airplane\n279400,truck\n279401,bird\n279402,horse\n279403,deer\n279404,truck\n279405,deer\n279406,horse\n279407,horse\n279408,dog\n279409,frog\n279410,horse\n279411,ship\n279412,truck\n279413,horse\n279414,airplane\n279415,airplane\n279416,airplane\n279417,deer\n279418,truck\n279419,cat\n279420,horse\n279421,deer\n279422,frog\n279423,deer\n279424,ship\n279425,cat\n279426,deer\n279427,ship\n279428,cat\n279429,frog\n279430,deer\n279431,airplane\n279432,deer\n279433,ship\n279434,bird\n279435,deer\n279436,cat\n279437,dog\n279438,deer\n279439,horse\n279440,deer\n279441,truck\n279442,airplane\n279443,bird\n279444,horse\n279445,horse\n279446,horse\n279447,deer\n279448,frog\n279449,bird\n279450,deer\n279451,bird\n279452,cat\n279453,airplane\n279454,ship\n279455,deer\n279456,deer\n279457,truck\n279458,airplane\n279459,cat\n279460,frog\n279461,deer\n279462,airplane\n279463,deer\n279464,horse\n279465,horse\n279466,bird\n279467,truck\n279468,deer\n279469,horse\n279470,frog\n279471,horse\n279472,bird\n279473,horse\n279474,cat\n279475,horse\n279476,ship\n279477,truck\n279478,cat\n279479,truck\n279480,dog\n279481,bird\n279482,horse\n279483,ship\n279484,automobile\n279485,frog\n279486,frog\n279487,truck\n279488,deer\n279489,truck\n279490,deer\n279491,ship\n279492,airplane\n279493,airplane\n279494,deer\n279495,airplane\n279496,dog\n279497,frog\n279498,ship\n279499,airplane\n279500,truck\n279501,frog\n279502,airplane\n279503,cat\n279504,truck\n279505,horse\n279506,dog\n279507,truck\n279508,horse\n279509,bird\n279510,airplane\n279511,ship\n279512,frog\n279513,truck\n279514,deer\n279515,truck\n279516,airplane\n279517,dog\n279518,ship\n279519,automobile\n279520,dog\n279521,airplane\n279522,bird\n279523,deer\n279524,frog\n279525,ship\n279526,truck\n279527,bird\n279528,horse\n279529,ship\n279530,dog\n279531,dog\n279532,cat\n279533,cat\n279534,frog\n279535,dog\n279536,bird\n279537,horse\n279538,truck\n279539,bird\n279540,truck\n279541,truck\n279542,horse\n279543,dog\n279544,automobile\n279545,ship\n279546,frog\n279547,frog\n279548,bird\n279549,frog\n279550,airplane\n279551,horse\n279552,cat\n279553,airplane\n279554,ship\n279555,truck\n279556,cat\n279557,ship\n279558,horse\n279559,cat\n279560,horse\n279561,automobile\n279562,automobile\n279563,cat\n279564,deer\n279565,horse\n279566,horse\n279567,ship\n279568,airplane\n279569,truck\n279570,automobile\n279571,dog\n279572,cat\n279573,ship\n279574,horse\n279575,cat\n279576,frog\n279577,bird\n279578,truck\n279579,bird\n279580,cat\n279581,bird\n279582,ship\n279583,ship\n279584,airplane\n279585,ship\n279586,airplane\n279587,cat\n279588,deer\n279589,automobile\n279590,dog\n279591,bird\n279592,cat\n279593,horse\n279594,airplane\n279595,dog\n279596,horse\n279597,dog\n279598,dog\n279599,airplane\n279600,bird\n279601,horse\n279602,cat\n279603,deer\n279604,frog\n279605,automobile\n279606,automobile\n279607,bird\n279608,ship\n279609,deer\n279610,airplane\n279611,bird\n279612,bird\n279613,deer\n279614,frog\n279615,ship\n279616,cat\n279617,horse\n279618,truck\n279619,truck\n279620,automobile\n279621,deer\n279622,truck\n279623,airplane\n279624,cat\n279625,horse\n279626,truck\n279627,frog\n279628,deer\n279629,ship\n279630,dog\n279631,dog\n279632,horse\n279633,truck\n279634,deer\n279635,deer\n279636,cat\n279637,dog\n279638,truck\n279639,cat\n279640,ship\n279641,bird\n279642,cat\n279643,ship\n279644,bird\n279645,airplane\n279646,bird\n279647,deer\n279648,airplane\n279649,ship\n279650,truck\n279651,truck\n279652,frog\n279653,frog\n279654,frog\n279655,dog\n279656,frog\n279657,airplane\n279658,frog\n279659,bird\n279660,ship\n279661,frog\n279662,deer\n279663,deer\n279664,truck\n279665,frog\n279666,cat\n279667,cat\n279668,cat\n279669,dog\n279670,automobile\n279671,horse\n279672,deer\n279673,cat\n279674,airplane\n279675,bird\n279676,automobile\n279677,truck\n279678,bird\n279679,ship\n279680,truck\n279681,dog\n279682,frog\n279683,bird\n279684,truck\n279685,airplane\n279686,deer\n279687,frog\n279688,ship\n279689,horse\n279690,dog\n279691,deer\n279692,bird\n279693,airplane\n279694,truck\n279695,frog\n279696,cat\n279697,airplane\n279698,horse\n279699,automobile\n279700,truck\n279701,truck\n279702,frog\n279703,frog\n279704,deer\n279705,ship\n279706,truck\n279707,bird\n279708,automobile\n279709,frog\n279710,cat\n279711,dog\n279712,automobile\n279713,frog\n279714,deer\n279715,frog\n279716,truck\n279717,frog\n279718,deer\n279719,deer\n279720,cat\n279721,deer\n279722,deer\n279723,airplane\n279724,truck\n279725,dog\n279726,airplane\n279727,cat\n279728,automobile\n279729,airplane\n279730,horse\n279731,truck\n279732,deer\n279733,cat\n279734,truck\n279735,ship\n279736,bird\n279737,cat\n279738,airplane\n279739,horse\n279740,dog\n279741,ship\n279742,dog\n279743,deer\n279744,bird\n279745,cat\n279746,truck\n279747,horse\n279748,truck\n279749,airplane\n279750,bird\n279751,horse\n279752,truck\n279753,bird\n279754,frog\n279755,frog\n279756,frog\n279757,frog\n279758,airplane\n279759,airplane\n279760,truck\n279761,truck\n279762,ship\n279763,deer\n279764,truck\n279765,automobile\n279766,cat\n279767,frog\n279768,truck\n279769,cat\n279770,truck\n279771,deer\n279772,deer\n279773,automobile\n279774,frog\n279775,cat\n279776,deer\n279777,cat\n279778,ship\n279779,deer\n279780,frog\n279781,ship\n279782,deer\n279783,deer\n279784,automobile\n279785,bird\n279786,bird\n279787,airplane\n279788,cat\n279789,dog\n279790,deer\n279791,ship\n279792,cat\n279793,ship\n279794,ship\n279795,automobile\n279796,truck\n279797,ship\n279798,deer\n279799,deer\n279800,deer\n279801,frog\n279802,horse\n279803,automobile\n279804,dog\n279805,deer\n279806,airplane\n279807,airplane\n279808,ship\n279809,horse\n279810,horse\n279811,horse\n279812,deer\n279813,deer\n279814,deer\n279815,deer\n279816,automobile\n279817,bird\n279818,truck\n279819,deer\n279820,horse\n279821,dog\n279822,ship\n279823,bird\n279824,dog\n279825,horse\n279826,automobile\n279827,airplane\n279828,cat\n279829,deer\n279830,cat\n279831,bird\n279832,bird\n279833,automobile\n279834,frog\n279835,deer\n279836,deer\n279837,cat\n279838,cat\n279839,cat\n279840,bird\n279841,dog\n279842,cat\n279843,truck\n279844,automobile\n279845,automobile\n279846,truck\n279847,horse\n279848,airplane\n279849,truck\n279850,ship\n279851,airplane\n279852,horse\n279853,airplane\n279854,dog\n279855,bird\n279856,dog\n279857,truck\n279858,automobile\n279859,bird\n279860,ship\n279861,deer\n279862,truck\n279863,airplane\n279864,deer\n279865,deer\n279866,ship\n279867,deer\n279868,ship\n279869,cat\n279870,automobile\n279871,ship\n279872,horse\n279873,bird\n279874,deer\n279875,deer\n279876,airplane\n279877,airplane\n279878,truck\n279879,bird\n279880,ship\n279881,dog\n279882,cat\n279883,dog\n279884,dog\n279885,horse\n279886,cat\n279887,ship\n279888,airplane\n279889,deer\n279890,bird\n279891,dog\n279892,truck\n279893,dog\n279894,cat\n279895,bird\n279896,deer\n279897,dog\n279898,bird\n279899,bird\n279900,airplane\n279901,frog\n279902,bird\n279903,bird\n279904,dog\n279905,cat\n279906,deer\n279907,deer\n279908,bird\n279909,frog\n279910,truck\n279911,deer\n279912,ship\n279913,deer\n279914,cat\n279915,deer\n279916,frog\n279917,deer\n279918,bird\n279919,automobile\n279920,bird\n279921,dog\n279922,deer\n279923,automobile\n279924,cat\n279925,cat\n279926,dog\n279927,deer\n279928,frog\n279929,dog\n279930,deer\n279931,truck\n279932,frog\n279933,airplane\n279934,bird\n279935,bird\n279936,cat\n279937,cat\n279938,deer\n279939,frog\n279940,cat\n279941,deer\n279942,cat\n279943,frog\n279944,frog\n279945,automobile\n279946,horse\n279947,horse\n279948,dog\n279949,cat\n279950,frog\n279951,horse\n279952,cat\n279953,automobile\n279954,truck\n279955,truck\n279956,bird\n279957,truck\n279958,deer\n279959,frog\n279960,deer\n279961,airplane\n279962,frog\n279963,deer\n279964,horse\n279965,truck\n279966,ship\n279967,bird\n279968,truck\n279969,horse\n279970,horse\n279971,truck\n279972,airplane\n279973,frog\n279974,truck\n279975,cat\n279976,horse\n279977,horse\n279978,frog\n279979,ship\n279980,bird\n279981,horse\n279982,cat\n279983,deer\n279984,frog\n279985,truck\n279986,horse\n279987,horse\n279988,horse\n279989,frog\n279990,frog\n279991,cat\n279992,deer\n279993,airplane\n279994,deer\n279995,dog\n279996,horse\n279997,frog\n279998,horse\n279999,airplane\n280000,frog\n280001,airplane\n280002,deer\n280003,airplane\n280004,airplane\n280005,bird\n280006,dog\n280007,ship\n280008,dog\n280009,bird\n280010,deer\n280011,frog\n280012,horse\n280013,frog\n280014,cat\n280015,deer\n280016,airplane\n280017,truck\n280018,horse\n280019,airplane\n280020,cat\n280021,bird\n280022,ship\n280023,bird\n280024,airplane\n280025,frog\n280026,airplane\n280027,frog\n280028,deer\n280029,frog\n280030,automobile\n280031,bird\n280032,automobile\n280033,truck\n280034,ship\n280035,frog\n280036,automobile\n280037,ship\n280038,horse\n280039,dog\n280040,dog\n280041,horse\n280042,automobile\n280043,horse\n280044,cat\n280045,horse\n280046,airplane\n280047,dog\n280048,frog\n280049,cat\n280050,frog\n280051,truck\n280052,frog\n280053,cat\n280054,truck\n280055,dog\n280056,bird\n280057,dog\n280058,deer\n280059,cat\n280060,airplane\n280061,dog\n280062,horse\n280063,truck\n280064,truck\n280065,dog\n280066,automobile\n280067,bird\n280068,automobile\n280069,cat\n280070,frog\n280071,horse\n280072,ship\n280073,cat\n280074,deer\n280075,airplane\n280076,horse\n280077,cat\n280078,dog\n280079,cat\n280080,cat\n280081,horse\n280082,cat\n280083,deer\n280084,bird\n280085,deer\n280086,deer\n280087,cat\n280088,airplane\n280089,horse\n280090,deer\n280091,truck\n280092,bird\n280093,airplane\n280094,airplane\n280095,bird\n280096,frog\n280097,automobile\n280098,dog\n280099,bird\n280100,deer\n280101,ship\n280102,truck\n280103,bird\n280104,truck\n280105,frog\n280106,bird\n280107,automobile\n280108,deer\n280109,horse\n280110,frog\n280111,dog\n280112,bird\n280113,truck\n280114,deer\n280115,automobile\n280116,horse\n280117,ship\n280118,airplane\n280119,ship\n280120,cat\n280121,bird\n280122,bird\n280123,frog\n280124,frog\n280125,frog\n280126,deer\n280127,deer\n280128,bird\n280129,deer\n280130,horse\n280131,deer\n280132,dog\n280133,dog\n280134,cat\n280135,automobile\n280136,frog\n280137,bird\n280138,deer\n280139,deer\n280140,automobile\n280141,airplane\n280142,cat\n280143,airplane\n280144,frog\n280145,airplane\n280146,bird\n280147,bird\n280148,cat\n280149,frog\n280150,airplane\n280151,deer\n280152,truck\n280153,horse\n280154,cat\n280155,frog\n280156,truck\n280157,horse\n280158,dog\n280159,deer\n280160,deer\n280161,cat\n280162,deer\n280163,automobile\n280164,bird\n280165,cat\n280166,frog\n280167,frog\n280168,automobile\n280169,airplane\n280170,horse\n280171,cat\n280172,airplane\n280173,horse\n280174,dog\n280175,ship\n280176,bird\n280177,frog\n280178,airplane\n280179,deer\n280180,airplane\n280181,frog\n280182,cat\n280183,cat\n280184,dog\n280185,dog\n280186,automobile\n280187,cat\n280188,frog\n280189,ship\n280190,ship\n280191,truck\n280192,horse\n280193,cat\n280194,truck\n280195,frog\n280196,cat\n280197,bird\n280198,frog\n280199,horse\n280200,dog\n280201,cat\n280202,bird\n280203,automobile\n280204,frog\n280205,ship\n280206,airplane\n280207,frog\n280208,automobile\n280209,frog\n280210,deer\n280211,frog\n280212,automobile\n280213,horse\n280214,cat\n280215,automobile\n280216,deer\n280217,deer\n280218,dog\n280219,dog\n280220,airplane\n280221,horse\n280222,horse\n280223,truck\n280224,automobile\n280225,ship\n280226,cat\n280227,horse\n280228,cat\n280229,airplane\n280230,truck\n280231,bird\n280232,ship\n280233,truck\n280234,truck\n280235,cat\n280236,horse\n280237,cat\n280238,cat\n280239,horse\n280240,automobile\n280241,cat\n280242,cat\n280243,cat\n280244,deer\n280245,bird\n280246,dog\n280247,cat\n280248,ship\n280249,airplane\n280250,automobile\n280251,truck\n280252,automobile\n280253,cat\n280254,ship\n280255,frog\n280256,truck\n280257,deer\n280258,deer\n280259,deer\n280260,cat\n280261,airplane\n280262,truck\n280263,ship\n280264,frog\n280265,bird\n280266,horse\n280267,dog\n280268,horse\n280269,cat\n280270,deer\n280271,airplane\n280272,frog\n280273,cat\n280274,dog\n280275,truck\n280276,bird\n280277,truck\n280278,cat\n280279,deer\n280280,horse\n280281,airplane\n280282,airplane\n280283,automobile\n280284,dog\n280285,airplane\n280286,dog\n280287,frog\n280288,dog\n280289,truck\n280290,automobile\n280291,bird\n280292,automobile\n280293,cat\n280294,bird\n280295,ship\n280296,deer\n280297,horse\n280298,bird\n280299,horse\n280300,horse\n280301,ship\n280302,airplane\n280303,cat\n280304,dog\n280305,deer\n280306,ship\n280307,truck\n280308,dog\n280309,airplane\n280310,automobile\n280311,frog\n280312,dog\n280313,dog\n280314,airplane\n280315,truck\n280316,truck\n280317,horse\n280318,truck\n280319,automobile\n280320,frog\n280321,frog\n280322,bird\n280323,bird\n280324,deer\n280325,automobile\n280326,ship\n280327,frog\n280328,ship\n280329,horse\n280330,deer\n280331,horse\n280332,deer\n280333,cat\n280334,airplane\n280335,truck\n280336,deer\n280337,automobile\n280338,ship\n280339,automobile\n280340,airplane\n280341,horse\n280342,frog\n280343,airplane\n280344,bird\n280345,dog\n280346,cat\n280347,ship\n280348,frog\n280349,truck\n280350,frog\n280351,deer\n280352,automobile\n280353,horse\n280354,frog\n280355,airplane\n280356,bird\n280357,frog\n280358,bird\n280359,airplane\n280360,horse\n280361,dog\n280362,frog\n280363,automobile\n280364,airplane\n280365,automobile\n280366,frog\n280367,bird\n280368,bird\n280369,truck\n280370,frog\n280371,automobile\n280372,ship\n280373,airplane\n280374,horse\n280375,cat\n280376,horse\n280377,bird\n280378,dog\n280379,horse\n280380,ship\n280381,frog\n280382,ship\n280383,automobile\n280384,dog\n280385,deer\n280386,deer\n280387,truck\n280388,deer\n280389,truck\n280390,cat\n280391,deer\n280392,dog\n280393,bird\n280394,deer\n280395,automobile\n280396,dog\n280397,automobile\n280398,dog\n280399,dog\n280400,frog\n280401,truck\n280402,airplane\n280403,deer\n280404,ship\n280405,deer\n280406,frog\n280407,frog\n280408,deer\n280409,deer\n280410,deer\n280411,bird\n280412,cat\n280413,ship\n280414,automobile\n280415,airplane\n280416,frog\n280417,truck\n280418,bird\n280419,horse\n280420,dog\n280421,cat\n280422,truck\n280423,cat\n280424,bird\n280425,ship\n280426,horse\n280427,frog\n280428,ship\n280429,automobile\n280430,deer\n280431,dog\n280432,dog\n280433,frog\n280434,cat\n280435,cat\n280436,horse\n280437,automobile\n280438,deer\n280439,cat\n280440,truck\n280441,airplane\n280442,cat\n280443,bird\n280444,airplane\n280445,truck\n280446,cat\n280447,truck\n280448,ship\n280449,truck\n280450,deer\n280451,cat\n280452,dog\n280453,automobile\n280454,airplane\n280455,frog\n280456,horse\n280457,frog\n280458,cat\n280459,cat\n280460,cat\n280461,automobile\n280462,bird\n280463,truck\n280464,bird\n280465,dog\n280466,airplane\n280467,horse\n280468,cat\n280469,ship\n280470,deer\n280471,truck\n280472,cat\n280473,ship\n280474,bird\n280475,horse\n280476,truck\n280477,bird\n280478,bird\n280479,horse\n280480,airplane\n280481,horse\n280482,frog\n280483,frog\n280484,truck\n280485,automobile\n280486,ship\n280487,horse\n280488,ship\n280489,deer\n280490,dog\n280491,frog\n280492,ship\n280493,ship\n280494,cat\n280495,truck\n280496,horse\n280497,truck\n280498,horse\n280499,automobile\n280500,cat\n280501,truck\n280502,frog\n280503,ship\n280504,horse\n280505,horse\n280506,truck\n280507,airplane\n280508,dog\n280509,deer\n280510,automobile\n280511,horse\n280512,dog\n280513,dog\n280514,frog\n280515,frog\n280516,cat\n280517,truck\n280518,cat\n280519,airplane\n280520,truck\n280521,automobile\n280522,airplane\n280523,dog\n280524,cat\n280525,frog\n280526,ship\n280527,cat\n280528,bird\n280529,dog\n280530,ship\n280531,dog\n280532,bird\n280533,frog\n280534,dog\n280535,automobile\n280536,horse\n280537,automobile\n280538,cat\n280539,dog\n280540,automobile\n280541,bird\n280542,horse\n280543,cat\n280544,deer\n280545,deer\n280546,deer\n280547,airplane\n280548,airplane\n280549,frog\n280550,cat\n280551,cat\n280552,dog\n280553,truck\n280554,airplane\n280555,dog\n280556,bird\n280557,deer\n280558,dog\n280559,airplane\n280560,horse\n280561,frog\n280562,ship\n280563,frog\n280564,truck\n280565,horse\n280566,ship\n280567,automobile\n280568,airplane\n280569,deer\n280570,horse\n280571,truck\n280572,horse\n280573,ship\n280574,airplane\n280575,horse\n280576,deer\n280577,dog\n280578,frog\n280579,bird\n280580,cat\n280581,frog\n280582,airplane\n280583,automobile\n280584,cat\n280585,deer\n280586,cat\n280587,frog\n280588,airplane\n280589,dog\n280590,deer\n280591,cat\n280592,airplane\n280593,bird\n280594,ship\n280595,truck\n280596,horse\n280597,frog\n280598,deer\n280599,cat\n280600,automobile\n280601,deer\n280602,dog\n280603,bird\n280604,ship\n280605,cat\n280606,cat\n280607,ship\n280608,automobile\n280609,truck\n280610,horse\n280611,truck\n280612,horse\n280613,horse\n280614,ship\n280615,deer\n280616,deer\n280617,dog\n280618,dog\n280619,deer\n280620,bird\n280621,dog\n280622,horse\n280623,dog\n280624,bird\n280625,truck\n280626,bird\n280627,airplane\n280628,truck\n280629,horse\n280630,dog\n280631,cat\n280632,airplane\n280633,airplane\n280634,automobile\n280635,dog\n280636,frog\n280637,horse\n280638,cat\n280639,horse\n280640,deer\n280641,deer\n280642,airplane\n280643,truck\n280644,dog\n280645,horse\n280646,airplane\n280647,dog\n280648,truck\n280649,horse\n280650,cat\n280651,airplane\n280652,truck\n280653,truck\n280654,frog\n280655,frog\n280656,automobile\n280657,cat\n280658,cat\n280659,frog\n280660,bird\n280661,cat\n280662,frog\n280663,truck\n280664,airplane\n280665,deer\n280666,bird\n280667,deer\n280668,cat\n280669,airplane\n280670,automobile\n280671,frog\n280672,airplane\n280673,airplane\n280674,airplane\n280675,automobile\n280676,dog\n280677,dog\n280678,deer\n280679,dog\n280680,airplane\n280681,truck\n280682,dog\n280683,truck\n280684,bird\n280685,cat\n280686,dog\n280687,frog\n280688,deer\n280689,airplane\n280690,horse\n280691,dog\n280692,cat\n280693,bird\n280694,ship\n280695,bird\n280696,dog\n280697,frog\n280698,horse\n280699,truck\n280700,dog\n280701,bird\n280702,cat\n280703,bird\n280704,airplane\n280705,frog\n280706,bird\n280707,deer\n280708,frog\n280709,airplane\n280710,frog\n280711,automobile\n280712,truck\n280713,dog\n280714,deer\n280715,bird\n280716,deer\n280717,dog\n280718,truck\n280719,cat\n280720,automobile\n280721,frog\n280722,truck\n280723,dog\n280724,deer\n280725,deer\n280726,frog\n280727,deer\n280728,ship\n280729,ship\n280730,dog\n280731,ship\n280732,truck\n280733,deer\n280734,truck\n280735,bird\n280736,deer\n280737,bird\n280738,airplane\n280739,frog\n280740,dog\n280741,bird\n280742,deer\n280743,frog\n280744,ship\n280745,frog\n280746,bird\n280747,airplane\n280748,airplane\n280749,automobile\n280750,bird\n280751,horse\n280752,horse\n280753,frog\n280754,truck\n280755,dog\n280756,horse\n280757,bird\n280758,ship\n280759,horse\n280760,frog\n280761,cat\n280762,bird\n280763,truck\n280764,cat\n280765,frog\n280766,ship\n280767,truck\n280768,deer\n280769,frog\n280770,frog\n280771,horse\n280772,frog\n280773,deer\n280774,cat\n280775,cat\n280776,cat\n280777,ship\n280778,ship\n280779,cat\n280780,airplane\n280781,truck\n280782,cat\n280783,cat\n280784,deer\n280785,truck\n280786,airplane\n280787,dog\n280788,dog\n280789,frog\n280790,frog\n280791,deer\n280792,deer\n280793,automobile\n280794,truck\n280795,ship\n280796,cat\n280797,dog\n280798,airplane\n280799,dog\n280800,ship\n280801,automobile\n280802,deer\n280803,truck\n280804,automobile\n280805,horse\n280806,dog\n280807,automobile\n280808,ship\n280809,airplane\n280810,airplane\n280811,ship\n280812,horse\n280813,cat\n280814,cat\n280815,cat\n280816,bird\n280817,automobile\n280818,dog\n280819,airplane\n280820,cat\n280821,deer\n280822,airplane\n280823,bird\n280824,ship\n280825,ship\n280826,frog\n280827,dog\n280828,airplane\n280829,dog\n280830,deer\n280831,dog\n280832,frog\n280833,airplane\n280834,dog\n280835,cat\n280836,deer\n280837,horse\n280838,bird\n280839,horse\n280840,horse\n280841,truck\n280842,bird\n280843,cat\n280844,dog\n280845,deer\n280846,deer\n280847,frog\n280848,automobile\n280849,cat\n280850,dog\n280851,cat\n280852,dog\n280853,automobile\n280854,deer\n280855,horse\n280856,deer\n280857,cat\n280858,dog\n280859,deer\n280860,horse\n280861,dog\n280862,bird\n280863,cat\n280864,truck\n280865,frog\n280866,automobile\n280867,cat\n280868,deer\n280869,dog\n280870,deer\n280871,ship\n280872,bird\n280873,dog\n280874,truck\n280875,frog\n280876,bird\n280877,airplane\n280878,automobile\n280879,deer\n280880,cat\n280881,automobile\n280882,truck\n280883,frog\n280884,airplane\n280885,cat\n280886,automobile\n280887,frog\n280888,deer\n280889,ship\n280890,dog\n280891,horse\n280892,truck\n280893,cat\n280894,dog\n280895,frog\n280896,dog\n280897,deer\n280898,deer\n280899,ship\n280900,dog\n280901,frog\n280902,truck\n280903,cat\n280904,frog\n280905,horse\n280906,frog\n280907,dog\n280908,deer\n280909,frog\n280910,frog\n280911,dog\n280912,cat\n280913,bird\n280914,dog\n280915,deer\n280916,automobile\n280917,frog\n280918,airplane\n280919,bird\n280920,dog\n280921,bird\n280922,frog\n280923,bird\n280924,deer\n280925,cat\n280926,frog\n280927,cat\n280928,horse\n280929,dog\n280930,truck\n280931,dog\n280932,horse\n280933,automobile\n280934,dog\n280935,ship\n280936,bird\n280937,ship\n280938,deer\n280939,cat\n280940,automobile\n280941,bird\n280942,truck\n280943,ship\n280944,deer\n280945,bird\n280946,cat\n280947,ship\n280948,horse\n280949,bird\n280950,ship\n280951,dog\n280952,bird\n280953,truck\n280954,truck\n280955,dog\n280956,automobile\n280957,frog\n280958,frog\n280959,frog\n280960,dog\n280961,cat\n280962,ship\n280963,airplane\n280964,horse\n280965,truck\n280966,automobile\n280967,automobile\n280968,bird\n280969,truck\n280970,ship\n280971,automobile\n280972,dog\n280973,truck\n280974,dog\n280975,ship\n280976,airplane\n280977,dog\n280978,bird\n280979,cat\n280980,horse\n280981,dog\n280982,cat\n280983,frog\n280984,horse\n280985,ship\n280986,ship\n280987,bird\n280988,dog\n280989,cat\n280990,cat\n280991,bird\n280992,ship\n280993,airplane\n280994,horse\n280995,frog\n280996,deer\n280997,frog\n280998,dog\n280999,cat\n281000,frog\n281001,ship\n281002,truck\n281003,dog\n281004,horse\n281005,deer\n281006,frog\n281007,cat\n281008,ship\n281009,dog\n281010,deer\n281011,cat\n281012,deer\n281013,horse\n281014,cat\n281015,truck\n281016,ship\n281017,frog\n281018,dog\n281019,deer\n281020,truck\n281021,airplane\n281022,dog\n281023,truck\n281024,ship\n281025,dog\n281026,deer\n281027,cat\n281028,bird\n281029,airplane\n281030,airplane\n281031,cat\n281032,bird\n281033,horse\n281034,ship\n281035,ship\n281036,deer\n281037,horse\n281038,horse\n281039,automobile\n281040,horse\n281041,horse\n281042,deer\n281043,automobile\n281044,deer\n281045,cat\n281046,horse\n281047,ship\n281048,frog\n281049,deer\n281050,horse\n281051,cat\n281052,deer\n281053,automobile\n281054,dog\n281055,deer\n281056,deer\n281057,horse\n281058,horse\n281059,cat\n281060,cat\n281061,automobile\n281062,frog\n281063,airplane\n281064,frog\n281065,horse\n281066,cat\n281067,horse\n281068,horse\n281069,horse\n281070,cat\n281071,horse\n281072,bird\n281073,dog\n281074,cat\n281075,cat\n281076,ship\n281077,frog\n281078,dog\n281079,automobile\n281080,cat\n281081,cat\n281082,deer\n281083,ship\n281084,truck\n281085,truck\n281086,deer\n281087,cat\n281088,truck\n281089,horse\n281090,cat\n281091,deer\n281092,bird\n281093,deer\n281094,dog\n281095,ship\n281096,ship\n281097,dog\n281098,cat\n281099,deer\n281100,deer\n281101,cat\n281102,airplane\n281103,automobile\n281104,bird\n281105,ship\n281106,frog\n281107,deer\n281108,cat\n281109,frog\n281110,frog\n281111,truck\n281112,horse\n281113,deer\n281114,ship\n281115,ship\n281116,horse\n281117,automobile\n281118,deer\n281119,frog\n281120,airplane\n281121,frog\n281122,frog\n281123,bird\n281124,dog\n281125,horse\n281126,bird\n281127,bird\n281128,deer\n281129,horse\n281130,airplane\n281131,bird\n281132,truck\n281133,ship\n281134,airplane\n281135,deer\n281136,truck\n281137,truck\n281138,truck\n281139,frog\n281140,ship\n281141,dog\n281142,ship\n281143,truck\n281144,dog\n281145,dog\n281146,cat\n281147,deer\n281148,truck\n281149,dog\n281150,horse\n281151,ship\n281152,frog\n281153,horse\n281154,truck\n281155,dog\n281156,deer\n281157,deer\n281158,airplane\n281159,dog\n281160,dog\n281161,bird\n281162,deer\n281163,automobile\n281164,horse\n281165,cat\n281166,truck\n281167,cat\n281168,cat\n281169,deer\n281170,deer\n281171,horse\n281172,automobile\n281173,automobile\n281174,cat\n281175,frog\n281176,deer\n281177,bird\n281178,bird\n281179,cat\n281180,ship\n281181,cat\n281182,frog\n281183,truck\n281184,bird\n281185,automobile\n281186,bird\n281187,frog\n281188,automobile\n281189,cat\n281190,truck\n281191,deer\n281192,bird\n281193,automobile\n281194,deer\n281195,frog\n281196,frog\n281197,dog\n281198,cat\n281199,dog\n281200,deer\n281201,frog\n281202,deer\n281203,deer\n281204,horse\n281205,frog\n281206,bird\n281207,cat\n281208,automobile\n281209,frog\n281210,cat\n281211,bird\n281212,frog\n281213,airplane\n281214,truck\n281215,bird\n281216,horse\n281217,frog\n281218,horse\n281219,cat\n281220,cat\n281221,cat\n281222,cat\n281223,dog\n281224,deer\n281225,deer\n281226,truck\n281227,frog\n281228,dog\n281229,frog\n281230,cat\n281231,horse\n281232,bird\n281233,automobile\n281234,truck\n281235,deer\n281236,dog\n281237,deer\n281238,bird\n281239,dog\n281240,cat\n281241,airplane\n281242,dog\n281243,deer\n281244,truck\n281245,frog\n281246,deer\n281247,horse\n281248,bird\n281249,frog\n281250,deer\n281251,truck\n281252,dog\n281253,airplane\n281254,ship\n281255,frog\n281256,cat\n281257,airplane\n281258,dog\n281259,deer\n281260,deer\n281261,bird\n281262,bird\n281263,airplane\n281264,frog\n281265,dog\n281266,deer\n281267,deer\n281268,cat\n281269,horse\n281270,deer\n281271,frog\n281272,cat\n281273,automobile\n281274,truck\n281275,truck\n281276,ship\n281277,truck\n281278,dog\n281279,frog\n281280,ship\n281281,automobile\n281282,airplane\n281283,bird\n281284,frog\n281285,deer\n281286,frog\n281287,airplane\n281288,deer\n281289,ship\n281290,ship\n281291,dog\n281292,cat\n281293,deer\n281294,horse\n281295,cat\n281296,airplane\n281297,deer\n281298,truck\n281299,ship\n281300,bird\n281301,cat\n281302,deer\n281303,bird\n281304,horse\n281305,deer\n281306,automobile\n281307,dog\n281308,cat\n281309,bird\n281310,automobile\n281311,truck\n281312,frog\n281313,cat\n281314,automobile\n281315,frog\n281316,airplane\n281317,dog\n281318,ship\n281319,deer\n281320,bird\n281321,dog\n281322,ship\n281323,frog\n281324,horse\n281325,frog\n281326,truck\n281327,truck\n281328,frog\n281329,truck\n281330,ship\n281331,dog\n281332,automobile\n281333,cat\n281334,horse\n281335,airplane\n281336,automobile\n281337,truck\n281338,frog\n281339,bird\n281340,airplane\n281341,deer\n281342,bird\n281343,automobile\n281344,frog\n281345,automobile\n281346,frog\n281347,frog\n281348,frog\n281349,automobile\n281350,truck\n281351,horse\n281352,deer\n281353,bird\n281354,ship\n281355,horse\n281356,horse\n281357,ship\n281358,deer\n281359,ship\n281360,airplane\n281361,ship\n281362,cat\n281363,truck\n281364,dog\n281365,horse\n281366,horse\n281367,deer\n281368,automobile\n281369,truck\n281370,bird\n281371,ship\n281372,airplane\n281373,horse\n281374,ship\n281375,airplane\n281376,dog\n281377,airplane\n281378,automobile\n281379,dog\n281380,deer\n281381,deer\n281382,cat\n281383,dog\n281384,automobile\n281385,truck\n281386,cat\n281387,dog\n281388,dog\n281389,deer\n281390,cat\n281391,frog\n281392,dog\n281393,dog\n281394,ship\n281395,frog\n281396,cat\n281397,bird\n281398,airplane\n281399,deer\n281400,bird\n281401,ship\n281402,horse\n281403,automobile\n281404,deer\n281405,horse\n281406,airplane\n281407,dog\n281408,truck\n281409,horse\n281410,truck\n281411,cat\n281412,airplane\n281413,truck\n281414,cat\n281415,automobile\n281416,frog\n281417,frog\n281418,automobile\n281419,cat\n281420,truck\n281421,automobile\n281422,bird\n281423,horse\n281424,deer\n281425,automobile\n281426,frog\n281427,deer\n281428,ship\n281429,bird\n281430,bird\n281431,dog\n281432,automobile\n281433,airplane\n281434,frog\n281435,bird\n281436,frog\n281437,frog\n281438,deer\n281439,frog\n281440,horse\n281441,truck\n281442,bird\n281443,truck\n281444,cat\n281445,bird\n281446,deer\n281447,horse\n281448,truck\n281449,cat\n281450,horse\n281451,automobile\n281452,deer\n281453,automobile\n281454,frog\n281455,automobile\n281456,automobile\n281457,deer\n281458,frog\n281459,frog\n281460,airplane\n281461,bird\n281462,cat\n281463,truck\n281464,deer\n281465,bird\n281466,bird\n281467,frog\n281468,deer\n281469,cat\n281470,airplane\n281471,automobile\n281472,dog\n281473,cat\n281474,dog\n281475,bird\n281476,horse\n281477,cat\n281478,airplane\n281479,frog\n281480,cat\n281481,ship\n281482,cat\n281483,airplane\n281484,frog\n281485,deer\n281486,frog\n281487,bird\n281488,cat\n281489,ship\n281490,automobile\n281491,cat\n281492,frog\n281493,deer\n281494,horse\n281495,frog\n281496,deer\n281497,cat\n281498,deer\n281499,frog\n281500,bird\n281501,deer\n281502,ship\n281503,automobile\n281504,dog\n281505,deer\n281506,truck\n281507,frog\n281508,ship\n281509,deer\n281510,ship\n281511,horse\n281512,deer\n281513,deer\n281514,dog\n281515,truck\n281516,airplane\n281517,dog\n281518,horse\n281519,deer\n281520,airplane\n281521,dog\n281522,cat\n281523,truck\n281524,bird\n281525,deer\n281526,dog\n281527,frog\n281528,bird\n281529,cat\n281530,deer\n281531,ship\n281532,horse\n281533,automobile\n281534,frog\n281535,truck\n281536,bird\n281537,cat\n281538,ship\n281539,cat\n281540,frog\n281541,automobile\n281542,truck\n281543,deer\n281544,frog\n281545,deer\n281546,truck\n281547,truck\n281548,deer\n281549,deer\n281550,truck\n281551,frog\n281552,cat\n281553,dog\n281554,airplane\n281555,horse\n281556,ship\n281557,cat\n281558,automobile\n281559,deer\n281560,bird\n281561,horse\n281562,truck\n281563,cat\n281564,cat\n281565,airplane\n281566,airplane\n281567,cat\n281568,bird\n281569,truck\n281570,frog\n281571,ship\n281572,truck\n281573,automobile\n281574,truck\n281575,frog\n281576,horse\n281577,automobile\n281578,cat\n281579,deer\n281580,horse\n281581,airplane\n281582,truck\n281583,truck\n281584,horse\n281585,horse\n281586,dog\n281587,frog\n281588,bird\n281589,dog\n281590,horse\n281591,automobile\n281592,truck\n281593,truck\n281594,cat\n281595,bird\n281596,automobile\n281597,ship\n281598,automobile\n281599,dog\n281600,dog\n281601,ship\n281602,ship\n281603,cat\n281604,ship\n281605,ship\n281606,frog\n281607,ship\n281608,cat\n281609,airplane\n281610,horse\n281611,deer\n281612,bird\n281613,deer\n281614,ship\n281615,ship\n281616,bird\n281617,truck\n281618,deer\n281619,dog\n281620,deer\n281621,deer\n281622,frog\n281623,horse\n281624,automobile\n281625,automobile\n281626,frog\n281627,truck\n281628,deer\n281629,horse\n281630,airplane\n281631,deer\n281632,airplane\n281633,airplane\n281634,frog\n281635,ship\n281636,dog\n281637,cat\n281638,horse\n281639,airplane\n281640,airplane\n281641,deer\n281642,dog\n281643,cat\n281644,ship\n281645,horse\n281646,frog\n281647,bird\n281648,cat\n281649,bird\n281650,airplane\n281651,frog\n281652,deer\n281653,frog\n281654,bird\n281655,dog\n281656,dog\n281657,airplane\n281658,truck\n281659,frog\n281660,dog\n281661,cat\n281662,bird\n281663,horse\n281664,cat\n281665,horse\n281666,truck\n281667,cat\n281668,automobile\n281669,cat\n281670,automobile\n281671,dog\n281672,cat\n281673,truck\n281674,dog\n281675,horse\n281676,deer\n281677,frog\n281678,bird\n281679,truck\n281680,bird\n281681,frog\n281682,dog\n281683,dog\n281684,bird\n281685,bird\n281686,cat\n281687,deer\n281688,automobile\n281689,automobile\n281690,deer\n281691,airplane\n281692,cat\n281693,dog\n281694,airplane\n281695,dog\n281696,ship\n281697,dog\n281698,bird\n281699,deer\n281700,deer\n281701,dog\n281702,deer\n281703,dog\n281704,deer\n281705,cat\n281706,airplane\n281707,horse\n281708,automobile\n281709,bird\n281710,dog\n281711,horse\n281712,automobile\n281713,automobile\n281714,deer\n281715,frog\n281716,deer\n281717,airplane\n281718,cat\n281719,airplane\n281720,truck\n281721,automobile\n281722,dog\n281723,truck\n281724,dog\n281725,frog\n281726,frog\n281727,bird\n281728,frog\n281729,automobile\n281730,deer\n281731,cat\n281732,bird\n281733,bird\n281734,ship\n281735,automobile\n281736,bird\n281737,dog\n281738,frog\n281739,bird\n281740,deer\n281741,frog\n281742,dog\n281743,truck\n281744,truck\n281745,deer\n281746,automobile\n281747,bird\n281748,dog\n281749,airplane\n281750,truck\n281751,frog\n281752,bird\n281753,horse\n281754,dog\n281755,horse\n281756,bird\n281757,deer\n281758,airplane\n281759,frog\n281760,airplane\n281761,deer\n281762,cat\n281763,deer\n281764,horse\n281765,truck\n281766,dog\n281767,automobile\n281768,horse\n281769,deer\n281770,automobile\n281771,truck\n281772,bird\n281773,frog\n281774,truck\n281775,frog\n281776,cat\n281777,dog\n281778,deer\n281779,truck\n281780,ship\n281781,ship\n281782,cat\n281783,dog\n281784,truck\n281785,automobile\n281786,bird\n281787,airplane\n281788,horse\n281789,frog\n281790,deer\n281791,deer\n281792,deer\n281793,cat\n281794,ship\n281795,frog\n281796,cat\n281797,ship\n281798,dog\n281799,truck\n281800,cat\n281801,truck\n281802,ship\n281803,ship\n281804,truck\n281805,bird\n281806,truck\n281807,cat\n281808,frog\n281809,bird\n281810,horse\n281811,deer\n281812,ship\n281813,ship\n281814,ship\n281815,airplane\n281816,truck\n281817,frog\n281818,truck\n281819,airplane\n281820,bird\n281821,cat\n281822,deer\n281823,ship\n281824,horse\n281825,airplane\n281826,bird\n281827,automobile\n281828,automobile\n281829,dog\n281830,dog\n281831,cat\n281832,cat\n281833,automobile\n281834,cat\n281835,dog\n281836,bird\n281837,truck\n281838,cat\n281839,truck\n281840,automobile\n281841,dog\n281842,airplane\n281843,bird\n281844,horse\n281845,cat\n281846,cat\n281847,bird\n281848,deer\n281849,frog\n281850,bird\n281851,dog\n281852,bird\n281853,bird\n281854,airplane\n281855,dog\n281856,bird\n281857,frog\n281858,horse\n281859,airplane\n281860,truck\n281861,frog\n281862,cat\n281863,airplane\n281864,deer\n281865,automobile\n281866,frog\n281867,automobile\n281868,bird\n281869,truck\n281870,truck\n281871,ship\n281872,deer\n281873,ship\n281874,horse\n281875,airplane\n281876,automobile\n281877,cat\n281878,deer\n281879,cat\n281880,deer\n281881,bird\n281882,cat\n281883,horse\n281884,automobile\n281885,bird\n281886,airplane\n281887,cat\n281888,airplane\n281889,airplane\n281890,horse\n281891,deer\n281892,frog\n281893,airplane\n281894,cat\n281895,deer\n281896,dog\n281897,horse\n281898,deer\n281899,ship\n281900,deer\n281901,automobile\n281902,deer\n281903,bird\n281904,bird\n281905,cat\n281906,truck\n281907,frog\n281908,truck\n281909,deer\n281910,cat\n281911,dog\n281912,truck\n281913,ship\n281914,dog\n281915,ship\n281916,ship\n281917,frog\n281918,automobile\n281919,automobile\n281920,truck\n281921,frog\n281922,airplane\n281923,dog\n281924,deer\n281925,bird\n281926,cat\n281927,airplane\n281928,deer\n281929,airplane\n281930,ship\n281931,deer\n281932,bird\n281933,cat\n281934,deer\n281935,cat\n281936,truck\n281937,automobile\n281938,cat\n281939,airplane\n281940,automobile\n281941,cat\n281942,airplane\n281943,truck\n281944,automobile\n281945,airplane\n281946,bird\n281947,dog\n281948,ship\n281949,cat\n281950,horse\n281951,bird\n281952,automobile\n281953,automobile\n281954,frog\n281955,airplane\n281956,dog\n281957,cat\n281958,bird\n281959,frog\n281960,frog\n281961,cat\n281962,horse\n281963,ship\n281964,truck\n281965,airplane\n281966,horse\n281967,airplane\n281968,airplane\n281969,frog\n281970,automobile\n281971,horse\n281972,dog\n281973,bird\n281974,frog\n281975,bird\n281976,airplane\n281977,cat\n281978,airplane\n281979,deer\n281980,dog\n281981,ship\n281982,deer\n281983,truck\n281984,frog\n281985,ship\n281986,ship\n281987,cat\n281988,horse\n281989,ship\n281990,ship\n281991,airplane\n281992,ship\n281993,automobile\n281994,bird\n281995,airplane\n281996,truck\n281997,truck\n281998,ship\n281999,dog\n282000,airplane\n282001,deer\n282002,horse\n282003,airplane\n282004,dog\n282005,dog\n282006,truck\n282007,truck\n282008,deer\n282009,dog\n282010,deer\n282011,frog\n282012,truck\n282013,truck\n282014,dog\n282015,airplane\n282016,cat\n282017,frog\n282018,frog\n282019,frog\n282020,automobile\n282021,airplane\n282022,airplane\n282023,frog\n282024,ship\n282025,horse\n282026,automobile\n282027,truck\n282028,cat\n282029,dog\n282030,deer\n282031,horse\n282032,cat\n282033,truck\n282034,frog\n282035,bird\n282036,truck\n282037,airplane\n282038,frog\n282039,bird\n282040,ship\n282041,bird\n282042,bird\n282043,cat\n282044,cat\n282045,dog\n282046,airplane\n282047,bird\n282048,deer\n282049,dog\n282050,horse\n282051,cat\n282052,cat\n282053,deer\n282054,cat\n282055,airplane\n282056,deer\n282057,deer\n282058,dog\n282059,cat\n282060,horse\n282061,horse\n282062,cat\n282063,deer\n282064,dog\n282065,ship\n282066,deer\n282067,deer\n282068,dog\n282069,cat\n282070,dog\n282071,horse\n282072,truck\n282073,horse\n282074,automobile\n282075,deer\n282076,deer\n282077,truck\n282078,frog\n282079,horse\n282080,cat\n282081,bird\n282082,deer\n282083,airplane\n282084,truck\n282085,deer\n282086,airplane\n282087,frog\n282088,truck\n282089,automobile\n282090,horse\n282091,automobile\n282092,automobile\n282093,deer\n282094,deer\n282095,horse\n282096,bird\n282097,truck\n282098,automobile\n282099,truck\n282100,deer\n282101,truck\n282102,deer\n282103,horse\n282104,deer\n282105,cat\n282106,horse\n282107,automobile\n282108,deer\n282109,frog\n282110,truck\n282111,ship\n282112,truck\n282113,automobile\n282114,cat\n282115,dog\n282116,ship\n282117,cat\n282118,frog\n282119,cat\n282120,deer\n282121,cat\n282122,bird\n282123,automobile\n282124,cat\n282125,cat\n282126,cat\n282127,frog\n282128,horse\n282129,horse\n282130,ship\n282131,truck\n282132,automobile\n282133,horse\n282134,truck\n282135,cat\n282136,frog\n282137,truck\n282138,dog\n282139,dog\n282140,horse\n282141,cat\n282142,automobile\n282143,horse\n282144,cat\n282145,horse\n282146,truck\n282147,automobile\n282148,cat\n282149,deer\n282150,horse\n282151,cat\n282152,automobile\n282153,ship\n282154,deer\n282155,airplane\n282156,deer\n282157,automobile\n282158,truck\n282159,airplane\n282160,cat\n282161,ship\n282162,deer\n282163,deer\n282164,ship\n282165,bird\n282166,truck\n282167,ship\n282168,bird\n282169,cat\n282170,dog\n282171,deer\n282172,automobile\n282173,cat\n282174,frog\n282175,deer\n282176,dog\n282177,frog\n282178,dog\n282179,frog\n282180,cat\n282181,deer\n282182,airplane\n282183,airplane\n282184,airplane\n282185,airplane\n282186,ship\n282187,airplane\n282188,horse\n282189,ship\n282190,automobile\n282191,airplane\n282192,horse\n282193,dog\n282194,bird\n282195,cat\n282196,cat\n282197,bird\n282198,cat\n282199,airplane\n282200,dog\n282201,deer\n282202,cat\n282203,bird\n282204,horse\n282205,truck\n282206,cat\n282207,frog\n282208,cat\n282209,frog\n282210,deer\n282211,automobile\n282212,horse\n282213,dog\n282214,bird\n282215,deer\n282216,ship\n282217,frog\n282218,automobile\n282219,bird\n282220,horse\n282221,horse\n282222,deer\n282223,frog\n282224,frog\n282225,airplane\n282226,ship\n282227,frog\n282228,ship\n282229,cat\n282230,bird\n282231,deer\n282232,bird\n282233,ship\n282234,frog\n282235,dog\n282236,horse\n282237,automobile\n282238,horse\n282239,dog\n282240,deer\n282241,frog\n282242,airplane\n282243,frog\n282244,horse\n282245,airplane\n282246,cat\n282247,deer\n282248,frog\n282249,dog\n282250,ship\n282251,ship\n282252,bird\n282253,dog\n282254,dog\n282255,ship\n282256,frog\n282257,deer\n282258,truck\n282259,frog\n282260,airplane\n282261,frog\n282262,dog\n282263,bird\n282264,bird\n282265,airplane\n282266,truck\n282267,ship\n282268,cat\n282269,airplane\n282270,frog\n282271,deer\n282272,bird\n282273,cat\n282274,ship\n282275,frog\n282276,cat\n282277,deer\n282278,deer\n282279,truck\n282280,truck\n282281,airplane\n282282,frog\n282283,frog\n282284,ship\n282285,bird\n282286,truck\n282287,frog\n282288,deer\n282289,frog\n282290,airplane\n282291,cat\n282292,airplane\n282293,dog\n282294,frog\n282295,frog\n282296,frog\n282297,airplane\n282298,truck\n282299,truck\n282300,automobile\n282301,dog\n282302,deer\n282303,cat\n282304,frog\n282305,deer\n282306,automobile\n282307,cat\n282308,deer\n282309,horse\n282310,deer\n282311,cat\n282312,truck\n282313,bird\n282314,bird\n282315,ship\n282316,airplane\n282317,cat\n282318,automobile\n282319,airplane\n282320,cat\n282321,dog\n282322,cat\n282323,horse\n282324,automobile\n282325,ship\n282326,bird\n282327,dog\n282328,dog\n282329,truck\n282330,cat\n282331,deer\n282332,deer\n282333,dog\n282334,automobile\n282335,frog\n282336,automobile\n282337,horse\n282338,dog\n282339,dog\n282340,frog\n282341,frog\n282342,deer\n282343,truck\n282344,airplane\n282345,horse\n282346,cat\n282347,frog\n282348,frog\n282349,truck\n282350,airplane\n282351,horse\n282352,cat\n282353,bird\n282354,deer\n282355,bird\n282356,dog\n282357,cat\n282358,cat\n282359,dog\n282360,automobile\n282361,bird\n282362,bird\n282363,deer\n282364,airplane\n282365,horse\n282366,airplane\n282367,dog\n282368,automobile\n282369,bird\n282370,bird\n282371,cat\n282372,airplane\n282373,deer\n282374,bird\n282375,automobile\n282376,deer\n282377,bird\n282378,bird\n282379,cat\n282380,deer\n282381,ship\n282382,ship\n282383,deer\n282384,truck\n282385,dog\n282386,deer\n282387,frog\n282388,ship\n282389,airplane\n282390,dog\n282391,dog\n282392,frog\n282393,frog\n282394,truck\n282395,bird\n282396,cat\n282397,truck\n282398,frog\n282399,truck\n282400,truck\n282401,frog\n282402,dog\n282403,deer\n282404,frog\n282405,frog\n282406,dog\n282407,airplane\n282408,horse\n282409,cat\n282410,automobile\n282411,cat\n282412,cat\n282413,cat\n282414,truck\n282415,airplane\n282416,horse\n282417,automobile\n282418,automobile\n282419,dog\n282420,ship\n282421,frog\n282422,automobile\n282423,dog\n282424,truck\n282425,truck\n282426,airplane\n282427,dog\n282428,cat\n282429,cat\n282430,deer\n282431,cat\n282432,horse\n282433,bird\n282434,frog\n282435,bird\n282436,horse\n282437,deer\n282438,cat\n282439,cat\n282440,bird\n282441,truck\n282442,dog\n282443,frog\n282444,frog\n282445,deer\n282446,deer\n282447,frog\n282448,bird\n282449,airplane\n282450,horse\n282451,dog\n282452,truck\n282453,frog\n282454,bird\n282455,deer\n282456,bird\n282457,airplane\n282458,cat\n282459,cat\n282460,ship\n282461,horse\n282462,deer\n282463,dog\n282464,deer\n282465,airplane\n282466,truck\n282467,cat\n282468,bird\n282469,bird\n282470,ship\n282471,airplane\n282472,truck\n282473,dog\n282474,airplane\n282475,frog\n282476,truck\n282477,dog\n282478,deer\n282479,bird\n282480,airplane\n282481,automobile\n282482,bird\n282483,airplane\n282484,airplane\n282485,cat\n282486,truck\n282487,ship\n282488,truck\n282489,cat\n282490,frog\n282491,ship\n282492,bird\n282493,automobile\n282494,airplane\n282495,cat\n282496,truck\n282497,cat\n282498,cat\n282499,truck\n282500,frog\n282501,airplane\n282502,deer\n282503,ship\n282504,truck\n282505,deer\n282506,cat\n282507,frog\n282508,frog\n282509,ship\n282510,deer\n282511,automobile\n282512,bird\n282513,automobile\n282514,automobile\n282515,frog\n282516,dog\n282517,cat\n282518,deer\n282519,bird\n282520,horse\n282521,ship\n282522,dog\n282523,dog\n282524,deer\n282525,cat\n282526,airplane\n282527,bird\n282528,truck\n282529,deer\n282530,deer\n282531,dog\n282532,deer\n282533,bird\n282534,dog\n282535,airplane\n282536,bird\n282537,deer\n282538,horse\n282539,deer\n282540,frog\n282541,ship\n282542,ship\n282543,dog\n282544,ship\n282545,truck\n282546,cat\n282547,deer\n282548,cat\n282549,bird\n282550,bird\n282551,airplane\n282552,deer\n282553,dog\n282554,cat\n282555,dog\n282556,dog\n282557,airplane\n282558,dog\n282559,bird\n282560,cat\n282561,truck\n282562,deer\n282563,deer\n282564,cat\n282565,automobile\n282566,horse\n282567,ship\n282568,airplane\n282569,airplane\n282570,frog\n282571,frog\n282572,truck\n282573,deer\n282574,bird\n282575,truck\n282576,dog\n282577,bird\n282578,cat\n282579,deer\n282580,truck\n282581,airplane\n282582,airplane\n282583,dog\n282584,deer\n282585,bird\n282586,ship\n282587,cat\n282588,horse\n282589,horse\n282590,cat\n282591,deer\n282592,ship\n282593,truck\n282594,frog\n282595,ship\n282596,truck\n282597,cat\n282598,cat\n282599,airplane\n282600,cat\n282601,cat\n282602,dog\n282603,automobile\n282604,dog\n282605,bird\n282606,bird\n282607,automobile\n282608,frog\n282609,cat\n282610,airplane\n282611,dog\n282612,ship\n282613,deer\n282614,automobile\n282615,dog\n282616,frog\n282617,truck\n282618,truck\n282619,truck\n282620,truck\n282621,bird\n282622,automobile\n282623,deer\n282624,truck\n282625,frog\n282626,ship\n282627,horse\n282628,truck\n282629,frog\n282630,horse\n282631,cat\n282632,frog\n282633,automobile\n282634,automobile\n282635,deer\n282636,bird\n282637,deer\n282638,airplane\n282639,deer\n282640,cat\n282641,deer\n282642,airplane\n282643,cat\n282644,cat\n282645,horse\n282646,airplane\n282647,deer\n282648,horse\n282649,automobile\n282650,frog\n282651,truck\n282652,cat\n282653,airplane\n282654,bird\n282655,bird\n282656,automobile\n282657,deer\n282658,truck\n282659,cat\n282660,deer\n282661,bird\n282662,cat\n282663,bird\n282664,deer\n282665,dog\n282666,cat\n282667,frog\n282668,airplane\n282669,cat\n282670,ship\n282671,ship\n282672,frog\n282673,ship\n282674,automobile\n282675,frog\n282676,airplane\n282677,dog\n282678,dog\n282679,bird\n282680,bird\n282681,automobile\n282682,horse\n282683,horse\n282684,airplane\n282685,horse\n282686,truck\n282687,truck\n282688,horse\n282689,ship\n282690,horse\n282691,cat\n282692,horse\n282693,truck\n282694,horse\n282695,horse\n282696,dog\n282697,deer\n282698,ship\n282699,cat\n282700,dog\n282701,deer\n282702,automobile\n282703,bird\n282704,horse\n282705,dog\n282706,dog\n282707,horse\n282708,horse\n282709,cat\n282710,truck\n282711,deer\n282712,cat\n282713,frog\n282714,automobile\n282715,horse\n282716,truck\n282717,deer\n282718,automobile\n282719,horse\n282720,bird\n282721,deer\n282722,airplane\n282723,airplane\n282724,automobile\n282725,bird\n282726,cat\n282727,truck\n282728,ship\n282729,dog\n282730,dog\n282731,ship\n282732,cat\n282733,ship\n282734,frog\n282735,frog\n282736,ship\n282737,cat\n282738,automobile\n282739,airplane\n282740,frog\n282741,horse\n282742,dog\n282743,dog\n282744,automobile\n282745,dog\n282746,horse\n282747,truck\n282748,dog\n282749,bird\n282750,deer\n282751,airplane\n282752,truck\n282753,bird\n282754,deer\n282755,deer\n282756,frog\n282757,ship\n282758,horse\n282759,cat\n282760,bird\n282761,airplane\n282762,horse\n282763,dog\n282764,cat\n282765,bird\n282766,cat\n282767,bird\n282768,deer\n282769,deer\n282770,cat\n282771,cat\n282772,horse\n282773,cat\n282774,automobile\n282775,deer\n282776,deer\n282777,cat\n282778,deer\n282779,bird\n282780,frog\n282781,truck\n282782,deer\n282783,deer\n282784,airplane\n282785,frog\n282786,deer\n282787,horse\n282788,deer\n282789,deer\n282790,airplane\n282791,truck\n282792,truck\n282793,ship\n282794,truck\n282795,frog\n282796,horse\n282797,automobile\n282798,frog\n282799,horse\n282800,truck\n282801,truck\n282802,truck\n282803,deer\n282804,frog\n282805,dog\n282806,ship\n282807,bird\n282808,ship\n282809,cat\n282810,horse\n282811,truck\n282812,deer\n282813,horse\n282814,horse\n282815,deer\n282816,truck\n282817,bird\n282818,automobile\n282819,frog\n282820,automobile\n282821,bird\n282822,frog\n282823,cat\n282824,bird\n282825,dog\n282826,airplane\n282827,horse\n282828,airplane\n282829,airplane\n282830,ship\n282831,bird\n282832,automobile\n282833,cat\n282834,bird\n282835,frog\n282836,cat\n282837,frog\n282838,dog\n282839,automobile\n282840,frog\n282841,airplane\n282842,dog\n282843,bird\n282844,bird\n282845,deer\n282846,airplane\n282847,airplane\n282848,horse\n282849,deer\n282850,horse\n282851,truck\n282852,airplane\n282853,bird\n282854,horse\n282855,dog\n282856,dog\n282857,automobile\n282858,deer\n282859,horse\n282860,cat\n282861,bird\n282862,bird\n282863,horse\n282864,dog\n282865,dog\n282866,deer\n282867,horse\n282868,ship\n282869,frog\n282870,automobile\n282871,airplane\n282872,horse\n282873,cat\n282874,frog\n282875,airplane\n282876,ship\n282877,frog\n282878,bird\n282879,truck\n282880,truck\n282881,bird\n282882,airplane\n282883,cat\n282884,cat\n282885,horse\n282886,frog\n282887,truck\n282888,ship\n282889,cat\n282890,frog\n282891,deer\n282892,truck\n282893,cat\n282894,cat\n282895,frog\n282896,automobile\n282897,truck\n282898,horse\n282899,horse\n282900,dog\n282901,frog\n282902,dog\n282903,deer\n282904,cat\n282905,airplane\n282906,bird\n282907,airplane\n282908,dog\n282909,cat\n282910,dog\n282911,deer\n282912,deer\n282913,frog\n282914,bird\n282915,cat\n282916,deer\n282917,truck\n282918,cat\n282919,dog\n282920,bird\n282921,truck\n282922,frog\n282923,deer\n282924,deer\n282925,horse\n282926,truck\n282927,dog\n282928,deer\n282929,horse\n282930,automobile\n282931,cat\n282932,dog\n282933,horse\n282934,frog\n282935,dog\n282936,truck\n282937,bird\n282938,horse\n282939,automobile\n282940,cat\n282941,frog\n282942,deer\n282943,frog\n282944,airplane\n282945,airplane\n282946,bird\n282947,horse\n282948,ship\n282949,dog\n282950,dog\n282951,frog\n282952,deer\n282953,truck\n282954,automobile\n282955,cat\n282956,cat\n282957,automobile\n282958,dog\n282959,airplane\n282960,truck\n282961,deer\n282962,automobile\n282963,dog\n282964,airplane\n282965,horse\n282966,deer\n282967,dog\n282968,frog\n282969,deer\n282970,horse\n282971,frog\n282972,deer\n282973,frog\n282974,automobile\n282975,bird\n282976,cat\n282977,deer\n282978,frog\n282979,deer\n282980,frog\n282981,bird\n282982,automobile\n282983,cat\n282984,airplane\n282985,dog\n282986,frog\n282987,ship\n282988,automobile\n282989,airplane\n282990,dog\n282991,dog\n282992,airplane\n282993,horse\n282994,cat\n282995,dog\n282996,automobile\n282997,horse\n282998,airplane\n282999,dog\n283000,airplane\n283001,automobile\n283002,cat\n283003,truck\n283004,horse\n283005,frog\n283006,ship\n283007,airplane\n283008,frog\n283009,ship\n283010,bird\n283011,truck\n283012,deer\n283013,cat\n283014,ship\n283015,ship\n283016,airplane\n283017,horse\n283018,truck\n283019,bird\n283020,horse\n283021,airplane\n283022,frog\n283023,truck\n283024,frog\n283025,frog\n283026,bird\n283027,truck\n283028,horse\n283029,automobile\n283030,ship\n283031,ship\n283032,ship\n283033,horse\n283034,dog\n283035,frog\n283036,deer\n283037,frog\n283038,bird\n283039,bird\n283040,truck\n283041,truck\n283042,ship\n283043,bird\n283044,truck\n283045,bird\n283046,automobile\n283047,airplane\n283048,bird\n283049,horse\n283050,ship\n283051,dog\n283052,automobile\n283053,dog\n283054,deer\n283055,ship\n283056,dog\n283057,bird\n283058,automobile\n283059,horse\n283060,truck\n283061,dog\n283062,horse\n283063,bird\n283064,ship\n283065,horse\n283066,airplane\n283067,cat\n283068,airplane\n283069,horse\n283070,deer\n283071,airplane\n283072,bird\n283073,dog\n283074,deer\n283075,deer\n283076,frog\n283077,ship\n283078,frog\n283079,bird\n283080,horse\n283081,cat\n283082,horse\n283083,dog\n283084,horse\n283085,automobile\n283086,deer\n283087,dog\n283088,automobile\n283089,ship\n283090,bird\n283091,cat\n283092,bird\n283093,airplane\n283094,bird\n283095,horse\n283096,cat\n283097,truck\n283098,dog\n283099,ship\n283100,airplane\n283101,dog\n283102,dog\n283103,dog\n283104,ship\n283105,deer\n283106,cat\n283107,deer\n283108,deer\n283109,horse\n283110,horse\n283111,frog\n283112,frog\n283113,cat\n283114,deer\n283115,dog\n283116,deer\n283117,deer\n283118,horse\n283119,bird\n283120,ship\n283121,ship\n283122,cat\n283123,bird\n283124,automobile\n283125,horse\n283126,frog\n283127,ship\n283128,cat\n283129,airplane\n283130,ship\n283131,frog\n283132,dog\n283133,deer\n283134,dog\n283135,bird\n283136,truck\n283137,automobile\n283138,ship\n283139,deer\n283140,dog\n283141,deer\n283142,automobile\n283143,automobile\n283144,truck\n283145,cat\n283146,horse\n283147,airplane\n283148,airplane\n283149,horse\n283150,frog\n283151,frog\n283152,cat\n283153,deer\n283154,horse\n283155,truck\n283156,truck\n283157,deer\n283158,bird\n283159,bird\n283160,cat\n283161,cat\n283162,horse\n283163,ship\n283164,bird\n283165,deer\n283166,deer\n283167,frog\n283168,automobile\n283169,airplane\n283170,truck\n283171,automobile\n283172,bird\n283173,horse\n283174,truck\n283175,deer\n283176,truck\n283177,frog\n283178,dog\n283179,dog\n283180,dog\n283181,cat\n283182,cat\n283183,truck\n283184,automobile\n283185,cat\n283186,dog\n283187,frog\n283188,automobile\n283189,truck\n283190,deer\n283191,frog\n283192,horse\n283193,ship\n283194,airplane\n283195,airplane\n283196,horse\n283197,dog\n283198,frog\n283199,bird\n283200,bird\n283201,deer\n283202,truck\n283203,dog\n283204,automobile\n283205,dog\n283206,deer\n283207,horse\n283208,deer\n283209,deer\n283210,cat\n283211,deer\n283212,horse\n283213,deer\n283214,bird\n283215,deer\n283216,truck\n283217,truck\n283218,deer\n283219,dog\n283220,horse\n283221,ship\n283222,cat\n283223,ship\n283224,cat\n283225,automobile\n283226,airplane\n283227,automobile\n283228,airplane\n283229,airplane\n283230,cat\n283231,ship\n283232,horse\n283233,cat\n283234,dog\n283235,deer\n283236,bird\n283237,ship\n283238,deer\n283239,airplane\n283240,cat\n283241,airplane\n283242,bird\n283243,ship\n283244,automobile\n283245,horse\n283246,airplane\n283247,horse\n283248,dog\n283249,truck\n283250,cat\n283251,airplane\n283252,horse\n283253,frog\n283254,truck\n283255,dog\n283256,frog\n283257,automobile\n283258,dog\n283259,ship\n283260,deer\n283261,ship\n283262,deer\n283263,cat\n283264,ship\n283265,dog\n283266,dog\n283267,automobile\n283268,airplane\n283269,airplane\n283270,cat\n283271,deer\n283272,deer\n283273,dog\n283274,deer\n283275,dog\n283276,bird\n283277,truck\n283278,horse\n283279,automobile\n283280,truck\n283281,cat\n283282,cat\n283283,horse\n283284,frog\n283285,truck\n283286,horse\n283287,horse\n283288,horse\n283289,cat\n283290,deer\n283291,automobile\n283292,ship\n283293,deer\n283294,cat\n283295,dog\n283296,truck\n283297,bird\n283298,frog\n283299,airplane\n283300,automobile\n283301,dog\n283302,deer\n283303,dog\n283304,cat\n283305,frog\n283306,cat\n283307,truck\n283308,airplane\n283309,ship\n283310,horse\n283311,dog\n283312,deer\n283313,airplane\n283314,automobile\n283315,bird\n283316,ship\n283317,deer\n283318,cat\n283319,airplane\n283320,frog\n283321,horse\n283322,truck\n283323,dog\n283324,frog\n283325,truck\n283326,cat\n283327,frog\n283328,deer\n283329,automobile\n283330,ship\n283331,cat\n283332,airplane\n283333,cat\n283334,deer\n283335,dog\n283336,bird\n283337,frog\n283338,horse\n283339,frog\n283340,deer\n283341,deer\n283342,bird\n283343,dog\n283344,bird\n283345,ship\n283346,deer\n283347,truck\n283348,deer\n283349,cat\n283350,bird\n283351,deer\n283352,ship\n283353,cat\n283354,cat\n283355,frog\n283356,airplane\n283357,deer\n283358,cat\n283359,dog\n283360,horse\n283361,truck\n283362,deer\n283363,deer\n283364,bird\n283365,airplane\n283366,frog\n283367,automobile\n283368,bird\n283369,airplane\n283370,frog\n283371,frog\n283372,cat\n283373,cat\n283374,frog\n283375,automobile\n283376,airplane\n283377,dog\n283378,dog\n283379,cat\n283380,ship\n283381,cat\n283382,dog\n283383,frog\n283384,truck\n283385,horse\n283386,horse\n283387,cat\n283388,frog\n283389,horse\n283390,airplane\n283391,horse\n283392,frog\n283393,deer\n283394,deer\n283395,deer\n283396,cat\n283397,frog\n283398,airplane\n283399,truck\n283400,deer\n283401,truck\n283402,deer\n283403,frog\n283404,truck\n283405,frog\n283406,truck\n283407,airplane\n283408,horse\n283409,cat\n283410,bird\n283411,cat\n283412,deer\n283413,automobile\n283414,horse\n283415,automobile\n283416,deer\n283417,frog\n283418,deer\n283419,truck\n283420,cat\n283421,deer\n283422,deer\n283423,automobile\n283424,truck\n283425,airplane\n283426,cat\n283427,deer\n283428,frog\n283429,frog\n283430,horse\n283431,truck\n283432,cat\n283433,dog\n283434,horse\n283435,ship\n283436,frog\n283437,deer\n283438,deer\n283439,airplane\n283440,deer\n283441,ship\n283442,automobile\n283443,dog\n283444,dog\n283445,cat\n283446,frog\n283447,truck\n283448,cat\n283449,ship\n283450,bird\n283451,airplane\n283452,airplane\n283453,bird\n283454,ship\n283455,airplane\n283456,bird\n283457,cat\n283458,bird\n283459,frog\n283460,cat\n283461,truck\n283462,airplane\n283463,dog\n283464,automobile\n283465,cat\n283466,horse\n283467,truck\n283468,ship\n283469,ship\n283470,deer\n283471,deer\n283472,horse\n283473,bird\n283474,cat\n283475,airplane\n283476,ship\n283477,automobile\n283478,horse\n283479,deer\n283480,bird\n283481,horse\n283482,bird\n283483,horse\n283484,frog\n283485,bird\n283486,truck\n283487,ship\n283488,automobile\n283489,frog\n283490,horse\n283491,cat\n283492,cat\n283493,dog\n283494,frog\n283495,ship\n283496,cat\n283497,cat\n283498,horse\n283499,dog\n283500,dog\n283501,automobile\n283502,horse\n283503,bird\n283504,airplane\n283505,truck\n283506,ship\n283507,cat\n283508,frog\n283509,automobile\n283510,airplane\n283511,truck\n283512,bird\n283513,ship\n283514,ship\n283515,dog\n283516,ship\n283517,dog\n283518,deer\n283519,cat\n283520,deer\n283521,truck\n283522,frog\n283523,ship\n283524,cat\n283525,truck\n283526,cat\n283527,truck\n283528,deer\n283529,frog\n283530,deer\n283531,airplane\n283532,ship\n283533,ship\n283534,ship\n283535,deer\n283536,deer\n283537,cat\n283538,bird\n283539,frog\n283540,ship\n283541,dog\n283542,automobile\n283543,cat\n283544,automobile\n283545,bird\n283546,deer\n283547,airplane\n283548,truck\n283549,horse\n283550,dog\n283551,automobile\n283552,bird\n283553,automobile\n283554,frog\n283555,cat\n283556,cat\n283557,frog\n283558,airplane\n283559,cat\n283560,automobile\n283561,automobile\n283562,frog\n283563,cat\n283564,dog\n283565,ship\n283566,automobile\n283567,bird\n283568,cat\n283569,cat\n283570,horse\n283571,dog\n283572,cat\n283573,truck\n283574,automobile\n283575,truck\n283576,dog\n283577,airplane\n283578,cat\n283579,truck\n283580,truck\n283581,frog\n283582,ship\n283583,deer\n283584,horse\n283585,dog\n283586,dog\n283587,bird\n283588,frog\n283589,bird\n283590,deer\n283591,airplane\n283592,automobile\n283593,automobile\n283594,deer\n283595,deer\n283596,deer\n283597,bird\n283598,airplane\n283599,frog\n283600,horse\n283601,bird\n283602,frog\n283603,deer\n283604,deer\n283605,horse\n283606,ship\n283607,airplane\n283608,bird\n283609,ship\n283610,frog\n283611,truck\n283612,truck\n283613,airplane\n283614,truck\n283615,dog\n283616,airplane\n283617,bird\n283618,frog\n283619,horse\n283620,truck\n283621,dog\n283622,frog\n283623,horse\n283624,truck\n283625,automobile\n283626,horse\n283627,deer\n283628,frog\n283629,airplane\n283630,airplane\n283631,cat\n283632,deer\n283633,deer\n283634,ship\n283635,bird\n283636,frog\n283637,airplane\n283638,bird\n283639,deer\n283640,deer\n283641,automobile\n283642,truck\n283643,bird\n283644,deer\n283645,cat\n283646,cat\n283647,truck\n283648,cat\n283649,frog\n283650,horse\n283651,cat\n283652,truck\n283653,cat\n283654,truck\n283655,truck\n283656,truck\n283657,cat\n283658,horse\n283659,truck\n283660,cat\n283661,horse\n283662,deer\n283663,deer\n283664,horse\n283665,truck\n283666,dog\n283667,automobile\n283668,cat\n283669,ship\n283670,dog\n283671,dog\n283672,truck\n283673,deer\n283674,truck\n283675,cat\n283676,frog\n283677,frog\n283678,horse\n283679,deer\n283680,bird\n283681,truck\n283682,automobile\n283683,horse\n283684,cat\n283685,deer\n283686,deer\n283687,bird\n283688,horse\n283689,dog\n283690,cat\n283691,deer\n283692,deer\n283693,ship\n283694,cat\n283695,frog\n283696,cat\n283697,bird\n283698,deer\n283699,dog\n283700,cat\n283701,bird\n283702,horse\n283703,frog\n283704,cat\n283705,cat\n283706,deer\n283707,truck\n283708,cat\n283709,truck\n283710,truck\n283711,deer\n283712,cat\n283713,horse\n283714,truck\n283715,bird\n283716,bird\n283717,truck\n283718,deer\n283719,horse\n283720,cat\n283721,truck\n283722,cat\n283723,deer\n283724,cat\n283725,frog\n283726,dog\n283727,airplane\n283728,cat\n283729,deer\n283730,dog\n283731,deer\n283732,airplane\n283733,ship\n283734,frog\n283735,automobile\n283736,frog\n283737,bird\n283738,truck\n283739,cat\n283740,cat\n283741,cat\n283742,horse\n283743,cat\n283744,dog\n283745,truck\n283746,automobile\n283747,bird\n283748,frog\n283749,ship\n283750,bird\n283751,cat\n283752,truck\n283753,cat\n283754,truck\n283755,bird\n283756,frog\n283757,frog\n283758,frog\n283759,frog\n283760,bird\n283761,deer\n283762,deer\n283763,airplane\n283764,ship\n283765,cat\n283766,cat\n283767,cat\n283768,bird\n283769,cat\n283770,bird\n283771,frog\n283772,airplane\n283773,ship\n283774,bird\n283775,horse\n283776,automobile\n283777,ship\n283778,airplane\n283779,horse\n283780,airplane\n283781,frog\n283782,ship\n283783,truck\n283784,frog\n283785,truck\n283786,horse\n283787,dog\n283788,cat\n283789,dog\n283790,dog\n283791,frog\n283792,automobile\n283793,truck\n283794,frog\n283795,deer\n283796,frog\n283797,dog\n283798,dog\n283799,frog\n283800,frog\n283801,frog\n283802,horse\n283803,ship\n283804,dog\n283805,automobile\n283806,ship\n283807,airplane\n283808,deer\n283809,airplane\n283810,cat\n283811,deer\n283812,frog\n283813,dog\n283814,horse\n283815,bird\n283816,bird\n283817,frog\n283818,deer\n283819,deer\n283820,cat\n283821,automobile\n283822,deer\n283823,horse\n283824,truck\n283825,deer\n283826,deer\n283827,deer\n283828,frog\n283829,dog\n283830,cat\n283831,bird\n283832,deer\n283833,deer\n283834,deer\n283835,cat\n283836,frog\n283837,airplane\n283838,dog\n283839,automobile\n283840,deer\n283841,deer\n283842,automobile\n283843,automobile\n283844,deer\n283845,frog\n283846,frog\n283847,horse\n283848,deer\n283849,frog\n283850,dog\n283851,airplane\n283852,deer\n283853,cat\n283854,cat\n283855,deer\n283856,cat\n283857,horse\n283858,frog\n283859,horse\n283860,horse\n283861,bird\n283862,truck\n283863,frog\n283864,horse\n283865,frog\n283866,truck\n283867,bird\n283868,frog\n283869,frog\n283870,dog\n283871,bird\n283872,deer\n283873,bird\n283874,deer\n283875,bird\n283876,frog\n283877,airplane\n283878,ship\n283879,horse\n283880,truck\n283881,frog\n283882,dog\n283883,truck\n283884,horse\n283885,deer\n283886,truck\n283887,ship\n283888,automobile\n283889,frog\n283890,deer\n283891,cat\n283892,dog\n283893,truck\n283894,deer\n283895,truck\n283896,cat\n283897,dog\n283898,truck\n283899,deer\n283900,horse\n283901,cat\n283902,truck\n283903,automobile\n283904,cat\n283905,frog\n283906,frog\n283907,airplane\n283908,horse\n283909,ship\n283910,frog\n283911,deer\n283912,cat\n283913,truck\n283914,truck\n283915,truck\n283916,deer\n283917,horse\n283918,cat\n283919,horse\n283920,cat\n283921,frog\n283922,deer\n283923,frog\n283924,truck\n283925,truck\n283926,airplane\n283927,cat\n283928,automobile\n283929,deer\n283930,cat\n283931,airplane\n283932,truck\n283933,cat\n283934,automobile\n283935,deer\n283936,truck\n283937,ship\n283938,horse\n283939,deer\n283940,bird\n283941,automobile\n283942,truck\n283943,dog\n283944,deer\n283945,cat\n283946,frog\n283947,airplane\n283948,ship\n283949,bird\n283950,cat\n283951,horse\n283952,deer\n283953,frog\n283954,frog\n283955,ship\n283956,dog\n283957,bird\n283958,dog\n283959,truck\n283960,cat\n283961,deer\n283962,bird\n283963,dog\n283964,deer\n283965,deer\n283966,airplane\n283967,bird\n283968,deer\n283969,automobile\n283970,cat\n283971,truck\n283972,automobile\n283973,truck\n283974,automobile\n283975,truck\n283976,horse\n283977,frog\n283978,cat\n283979,truck\n283980,cat\n283981,truck\n283982,horse\n283983,airplane\n283984,cat\n283985,horse\n283986,deer\n283987,ship\n283988,automobile\n283989,cat\n283990,ship\n283991,ship\n283992,cat\n283993,dog\n283994,frog\n283995,ship\n283996,horse\n283997,horse\n283998,bird\n283999,horse\n284000,frog\n284001,airplane\n284002,ship\n284003,automobile\n284004,ship\n284005,frog\n284006,cat\n284007,deer\n284008,automobile\n284009,ship\n284010,truck\n284011,cat\n284012,frog\n284013,horse\n284014,bird\n284015,deer\n284016,deer\n284017,truck\n284018,frog\n284019,bird\n284020,deer\n284021,dog\n284022,automobile\n284023,horse\n284024,deer\n284025,automobile\n284026,truck\n284027,cat\n284028,airplane\n284029,airplane\n284030,ship\n284031,deer\n284032,frog\n284033,deer\n284034,cat\n284035,ship\n284036,airplane\n284037,dog\n284038,ship\n284039,ship\n284040,truck\n284041,airplane\n284042,bird\n284043,bird\n284044,ship\n284045,airplane\n284046,ship\n284047,horse\n284048,airplane\n284049,cat\n284050,horse\n284051,bird\n284052,airplane\n284053,horse\n284054,deer\n284055,ship\n284056,deer\n284057,frog\n284058,airplane\n284059,deer\n284060,frog\n284061,horse\n284062,ship\n284063,bird\n284064,dog\n284065,ship\n284066,deer\n284067,cat\n284068,automobile\n284069,automobile\n284070,airplane\n284071,bird\n284072,ship\n284073,automobile\n284074,dog\n284075,truck\n284076,cat\n284077,automobile\n284078,horse\n284079,deer\n284080,horse\n284081,frog\n284082,horse\n284083,bird\n284084,dog\n284085,ship\n284086,frog\n284087,horse\n284088,bird\n284089,dog\n284090,airplane\n284091,deer\n284092,dog\n284093,ship\n284094,frog\n284095,dog\n284096,truck\n284097,ship\n284098,automobile\n284099,dog\n284100,ship\n284101,horse\n284102,truck\n284103,deer\n284104,cat\n284105,horse\n284106,dog\n284107,airplane\n284108,horse\n284109,cat\n284110,airplane\n284111,truck\n284112,deer\n284113,deer\n284114,deer\n284115,ship\n284116,truck\n284117,airplane\n284118,deer\n284119,deer\n284120,horse\n284121,bird\n284122,frog\n284123,horse\n284124,ship\n284125,airplane\n284126,truck\n284127,deer\n284128,frog\n284129,dog\n284130,horse\n284131,ship\n284132,deer\n284133,airplane\n284134,horse\n284135,dog\n284136,horse\n284137,truck\n284138,dog\n284139,truck\n284140,dog\n284141,cat\n284142,dog\n284143,ship\n284144,airplane\n284145,truck\n284146,deer\n284147,cat\n284148,airplane\n284149,dog\n284150,dog\n284151,airplane\n284152,deer\n284153,ship\n284154,automobile\n284155,bird\n284156,ship\n284157,deer\n284158,cat\n284159,frog\n284160,dog\n284161,automobile\n284162,horse\n284163,deer\n284164,dog\n284165,truck\n284166,deer\n284167,dog\n284168,deer\n284169,horse\n284170,cat\n284171,frog\n284172,cat\n284173,frog\n284174,truck\n284175,truck\n284176,cat\n284177,deer\n284178,airplane\n284179,truck\n284180,cat\n284181,airplane\n284182,deer\n284183,horse\n284184,frog\n284185,cat\n284186,automobile\n284187,cat\n284188,deer\n284189,dog\n284190,airplane\n284191,truck\n284192,truck\n284193,ship\n284194,ship\n284195,deer\n284196,ship\n284197,cat\n284198,deer\n284199,cat\n284200,truck\n284201,bird\n284202,automobile\n284203,automobile\n284204,frog\n284205,automobile\n284206,airplane\n284207,cat\n284208,dog\n284209,airplane\n284210,cat\n284211,deer\n284212,airplane\n284213,deer\n284214,airplane\n284215,cat\n284216,horse\n284217,cat\n284218,frog\n284219,deer\n284220,horse\n284221,dog\n284222,airplane\n284223,deer\n284224,frog\n284225,truck\n284226,cat\n284227,ship\n284228,deer\n284229,deer\n284230,ship\n284231,automobile\n284232,frog\n284233,dog\n284234,ship\n284235,bird\n284236,bird\n284237,cat\n284238,ship\n284239,horse\n284240,bird\n284241,dog\n284242,horse\n284243,airplane\n284244,truck\n284245,automobile\n284246,dog\n284247,bird\n284248,cat\n284249,deer\n284250,cat\n284251,automobile\n284252,ship\n284253,cat\n284254,horse\n284255,truck\n284256,bird\n284257,dog\n284258,bird\n284259,horse\n284260,deer\n284261,horse\n284262,truck\n284263,deer\n284264,bird\n284265,automobile\n284266,airplane\n284267,deer\n284268,bird\n284269,ship\n284270,ship\n284271,frog\n284272,cat\n284273,deer\n284274,cat\n284275,frog\n284276,airplane\n284277,cat\n284278,horse\n284279,bird\n284280,truck\n284281,cat\n284282,truck\n284283,ship\n284284,deer\n284285,deer\n284286,truck\n284287,truck\n284288,bird\n284289,horse\n284290,dog\n284291,dog\n284292,airplane\n284293,frog\n284294,airplane\n284295,cat\n284296,frog\n284297,dog\n284298,ship\n284299,frog\n284300,horse\n284301,frog\n284302,airplane\n284303,bird\n284304,ship\n284305,bird\n284306,truck\n284307,deer\n284308,cat\n284309,truck\n284310,cat\n284311,automobile\n284312,horse\n284313,frog\n284314,automobile\n284315,frog\n284316,deer\n284317,dog\n284318,frog\n284319,dog\n284320,deer\n284321,deer\n284322,horse\n284323,frog\n284324,truck\n284325,cat\n284326,bird\n284327,horse\n284328,deer\n284329,automobile\n284330,deer\n284331,dog\n284332,cat\n284333,dog\n284334,cat\n284335,dog\n284336,cat\n284337,deer\n284338,horse\n284339,truck\n284340,horse\n284341,automobile\n284342,dog\n284343,frog\n284344,deer\n284345,cat\n284346,dog\n284347,deer\n284348,truck\n284349,frog\n284350,cat\n284351,frog\n284352,deer\n284353,frog\n284354,deer\n284355,dog\n284356,horse\n284357,horse\n284358,horse\n284359,airplane\n284360,deer\n284361,horse\n284362,cat\n284363,cat\n284364,cat\n284365,horse\n284366,deer\n284367,deer\n284368,horse\n284369,deer\n284370,cat\n284371,bird\n284372,dog\n284373,deer\n284374,deer\n284375,deer\n284376,automobile\n284377,horse\n284378,truck\n284379,bird\n284380,frog\n284381,bird\n284382,ship\n284383,frog\n284384,cat\n284385,horse\n284386,truck\n284387,airplane\n284388,bird\n284389,automobile\n284390,cat\n284391,ship\n284392,automobile\n284393,ship\n284394,bird\n284395,cat\n284396,frog\n284397,frog\n284398,cat\n284399,cat\n284400,frog\n284401,frog\n284402,airplane\n284403,airplane\n284404,airplane\n284405,cat\n284406,horse\n284407,airplane\n284408,ship\n284409,truck\n284410,automobile\n284411,frog\n284412,bird\n284413,cat\n284414,truck\n284415,bird\n284416,deer\n284417,ship\n284418,frog\n284419,ship\n284420,cat\n284421,horse\n284422,dog\n284423,truck\n284424,bird\n284425,cat\n284426,airplane\n284427,automobile\n284428,airplane\n284429,horse\n284430,automobile\n284431,airplane\n284432,airplane\n284433,cat\n284434,frog\n284435,dog\n284436,airplane\n284437,horse\n284438,deer\n284439,ship\n284440,frog\n284441,airplane\n284442,frog\n284443,cat\n284444,frog\n284445,ship\n284446,truck\n284447,dog\n284448,automobile\n284449,bird\n284450,cat\n284451,frog\n284452,bird\n284453,frog\n284454,horse\n284455,horse\n284456,bird\n284457,horse\n284458,dog\n284459,frog\n284460,frog\n284461,frog\n284462,automobile\n284463,horse\n284464,deer\n284465,airplane\n284466,deer\n284467,horse\n284468,airplane\n284469,cat\n284470,dog\n284471,airplane\n284472,bird\n284473,deer\n284474,frog\n284475,deer\n284476,ship\n284477,cat\n284478,frog\n284479,cat\n284480,horse\n284481,frog\n284482,deer\n284483,frog\n284484,frog\n284485,airplane\n284486,frog\n284487,cat\n284488,cat\n284489,horse\n284490,deer\n284491,bird\n284492,truck\n284493,truck\n284494,horse\n284495,frog\n284496,dog\n284497,deer\n284498,frog\n284499,horse\n284500,frog\n284501,ship\n284502,truck\n284503,automobile\n284504,frog\n284505,dog\n284506,horse\n284507,frog\n284508,automobile\n284509,horse\n284510,dog\n284511,truck\n284512,truck\n284513,frog\n284514,bird\n284515,truck\n284516,automobile\n284517,dog\n284518,deer\n284519,deer\n284520,automobile\n284521,ship\n284522,truck\n284523,automobile\n284524,deer\n284525,automobile\n284526,ship\n284527,deer\n284528,automobile\n284529,ship\n284530,dog\n284531,airplane\n284532,truck\n284533,horse\n284534,cat\n284535,truck\n284536,horse\n284537,dog\n284538,truck\n284539,frog\n284540,deer\n284541,cat\n284542,deer\n284543,horse\n284544,cat\n284545,truck\n284546,automobile\n284547,deer\n284548,cat\n284549,deer\n284550,deer\n284551,horse\n284552,horse\n284553,ship\n284554,ship\n284555,frog\n284556,automobile\n284557,airplane\n284558,dog\n284559,truck\n284560,deer\n284561,airplane\n284562,automobile\n284563,horse\n284564,dog\n284565,dog\n284566,horse\n284567,dog\n284568,frog\n284569,horse\n284570,ship\n284571,cat\n284572,horse\n284573,horse\n284574,deer\n284575,truck\n284576,frog\n284577,dog\n284578,deer\n284579,dog\n284580,deer\n284581,ship\n284582,automobile\n284583,airplane\n284584,deer\n284585,deer\n284586,cat\n284587,truck\n284588,deer\n284589,deer\n284590,ship\n284591,bird\n284592,dog\n284593,truck\n284594,frog\n284595,dog\n284596,bird\n284597,airplane\n284598,bird\n284599,automobile\n284600,deer\n284601,automobile\n284602,automobile\n284603,deer\n284604,deer\n284605,dog\n284606,horse\n284607,dog\n284608,deer\n284609,truck\n284610,airplane\n284611,cat\n284612,automobile\n284613,truck\n284614,cat\n284615,horse\n284616,dog\n284617,dog\n284618,bird\n284619,deer\n284620,automobile\n284621,airplane\n284622,deer\n284623,frog\n284624,cat\n284625,truck\n284626,airplane\n284627,automobile\n284628,horse\n284629,bird\n284630,airplane\n284631,frog\n284632,deer\n284633,automobile\n284634,truck\n284635,automobile\n284636,dog\n284637,frog\n284638,deer\n284639,truck\n284640,frog\n284641,dog\n284642,truck\n284643,ship\n284644,dog\n284645,ship\n284646,horse\n284647,airplane\n284648,frog\n284649,truck\n284650,truck\n284651,automobile\n284652,frog\n284653,frog\n284654,horse\n284655,cat\n284656,cat\n284657,ship\n284658,bird\n284659,frog\n284660,deer\n284661,automobile\n284662,deer\n284663,truck\n284664,dog\n284665,truck\n284666,truck\n284667,automobile\n284668,truck\n284669,airplane\n284670,truck\n284671,ship\n284672,bird\n284673,deer\n284674,cat\n284675,bird\n284676,frog\n284677,truck\n284678,cat\n284679,ship\n284680,deer\n284681,cat\n284682,cat\n284683,cat\n284684,ship\n284685,bird\n284686,deer\n284687,ship\n284688,horse\n284689,deer\n284690,airplane\n284691,dog\n284692,dog\n284693,deer\n284694,cat\n284695,truck\n284696,truck\n284697,truck\n284698,dog\n284699,cat\n284700,automobile\n284701,deer\n284702,ship\n284703,airplane\n284704,cat\n284705,ship\n284706,truck\n284707,ship\n284708,dog\n284709,truck\n284710,bird\n284711,bird\n284712,dog\n284713,horse\n284714,frog\n284715,deer\n284716,frog\n284717,frog\n284718,deer\n284719,dog\n284720,ship\n284721,dog\n284722,frog\n284723,dog\n284724,cat\n284725,cat\n284726,airplane\n284727,ship\n284728,frog\n284729,bird\n284730,automobile\n284731,ship\n284732,horse\n284733,deer\n284734,automobile\n284735,bird\n284736,deer\n284737,dog\n284738,cat\n284739,ship\n284740,horse\n284741,cat\n284742,automobile\n284743,truck\n284744,ship\n284745,cat\n284746,deer\n284747,deer\n284748,dog\n284749,ship\n284750,cat\n284751,ship\n284752,deer\n284753,deer\n284754,airplane\n284755,bird\n284756,cat\n284757,frog\n284758,dog\n284759,deer\n284760,deer\n284761,frog\n284762,cat\n284763,cat\n284764,cat\n284765,frog\n284766,airplane\n284767,deer\n284768,deer\n284769,dog\n284770,deer\n284771,dog\n284772,airplane\n284773,automobile\n284774,ship\n284775,cat\n284776,ship\n284777,airplane\n284778,cat\n284779,airplane\n284780,truck\n284781,dog\n284782,automobile\n284783,truck\n284784,horse\n284785,bird\n284786,bird\n284787,dog\n284788,deer\n284789,horse\n284790,bird\n284791,airplane\n284792,dog\n284793,deer\n284794,automobile\n284795,truck\n284796,cat\n284797,frog\n284798,truck\n284799,airplane\n284800,deer\n284801,bird\n284802,cat\n284803,horse\n284804,truck\n284805,bird\n284806,frog\n284807,deer\n284808,deer\n284809,truck\n284810,horse\n284811,airplane\n284812,cat\n284813,horse\n284814,cat\n284815,horse\n284816,deer\n284817,horse\n284818,dog\n284819,cat\n284820,deer\n284821,frog\n284822,frog\n284823,deer\n284824,deer\n284825,bird\n284826,dog\n284827,cat\n284828,horse\n284829,frog\n284830,truck\n284831,truck\n284832,frog\n284833,dog\n284834,cat\n284835,horse\n284836,cat\n284837,deer\n284838,automobile\n284839,horse\n284840,bird\n284841,deer\n284842,airplane\n284843,ship\n284844,frog\n284845,ship\n284846,truck\n284847,airplane\n284848,frog\n284849,frog\n284850,bird\n284851,ship\n284852,frog\n284853,deer\n284854,airplane\n284855,truck\n284856,automobile\n284857,truck\n284858,automobile\n284859,bird\n284860,bird\n284861,cat\n284862,truck\n284863,horse\n284864,deer\n284865,dog\n284866,truck\n284867,airplane\n284868,bird\n284869,cat\n284870,horse\n284871,cat\n284872,truck\n284873,deer\n284874,dog\n284875,airplane\n284876,deer\n284877,automobile\n284878,automobile\n284879,cat\n284880,truck\n284881,automobile\n284882,ship\n284883,ship\n284884,frog\n284885,horse\n284886,airplane\n284887,cat\n284888,horse\n284889,cat\n284890,deer\n284891,deer\n284892,cat\n284893,frog\n284894,airplane\n284895,horse\n284896,truck\n284897,ship\n284898,deer\n284899,cat\n284900,airplane\n284901,deer\n284902,dog\n284903,cat\n284904,horse\n284905,frog\n284906,truck\n284907,cat\n284908,deer\n284909,dog\n284910,truck\n284911,automobile\n284912,truck\n284913,frog\n284914,airplane\n284915,dog\n284916,airplane\n284917,automobile\n284918,bird\n284919,horse\n284920,automobile\n284921,horse\n284922,deer\n284923,frog\n284924,ship\n284925,ship\n284926,dog\n284927,truck\n284928,airplane\n284929,deer\n284930,frog\n284931,automobile\n284932,ship\n284933,cat\n284934,truck\n284935,horse\n284936,frog\n284937,dog\n284938,ship\n284939,bird\n284940,airplane\n284941,deer\n284942,deer\n284943,automobile\n284944,truck\n284945,ship\n284946,automobile\n284947,cat\n284948,frog\n284949,airplane\n284950,frog\n284951,cat\n284952,ship\n284953,automobile\n284954,dog\n284955,deer\n284956,deer\n284957,horse\n284958,bird\n284959,cat\n284960,deer\n284961,ship\n284962,cat\n284963,deer\n284964,bird\n284965,cat\n284966,dog\n284967,cat\n284968,ship\n284969,truck\n284970,deer\n284971,automobile\n284972,automobile\n284973,truck\n284974,horse\n284975,cat\n284976,cat\n284977,cat\n284978,automobile\n284979,cat\n284980,bird\n284981,ship\n284982,dog\n284983,cat\n284984,dog\n284985,truck\n284986,automobile\n284987,deer\n284988,deer\n284989,bird\n284990,automobile\n284991,ship\n284992,frog\n284993,deer\n284994,cat\n284995,horse\n284996,airplane\n284997,dog\n284998,frog\n284999,horse\n285000,ship\n285001,horse\n285002,deer\n285003,ship\n285004,deer\n285005,ship\n285006,horse\n285007,horse\n285008,bird\n285009,cat\n285010,airplane\n285011,frog\n285012,frog\n285013,airplane\n285014,deer\n285015,frog\n285016,truck\n285017,deer\n285018,airplane\n285019,automobile\n285020,cat\n285021,ship\n285022,horse\n285023,deer\n285024,frog\n285025,dog\n285026,deer\n285027,frog\n285028,truck\n285029,cat\n285030,frog\n285031,frog\n285032,deer\n285033,automobile\n285034,dog\n285035,dog\n285036,dog\n285037,deer\n285038,airplane\n285039,frog\n285040,truck\n285041,frog\n285042,dog\n285043,cat\n285044,cat\n285045,automobile\n285046,bird\n285047,airplane\n285048,horse\n285049,deer\n285050,frog\n285051,bird\n285052,ship\n285053,truck\n285054,truck\n285055,frog\n285056,frog\n285057,dog\n285058,horse\n285059,frog\n285060,bird\n285061,truck\n285062,dog\n285063,deer\n285064,bird\n285065,truck\n285066,deer\n285067,airplane\n285068,deer\n285069,deer\n285070,cat\n285071,frog\n285072,dog\n285073,dog\n285074,ship\n285075,cat\n285076,ship\n285077,automobile\n285078,dog\n285079,cat\n285080,frog\n285081,truck\n285082,automobile\n285083,frog\n285084,dog\n285085,truck\n285086,deer\n285087,automobile\n285088,deer\n285089,horse\n285090,bird\n285091,dog\n285092,bird\n285093,dog\n285094,horse\n285095,ship\n285096,cat\n285097,deer\n285098,dog\n285099,dog\n285100,ship\n285101,horse\n285102,bird\n285103,cat\n285104,deer\n285105,bird\n285106,automobile\n285107,truck\n285108,bird\n285109,automobile\n285110,deer\n285111,deer\n285112,truck\n285113,bird\n285114,airplane\n285115,horse\n285116,airplane\n285117,deer\n285118,ship\n285119,ship\n285120,cat\n285121,dog\n285122,airplane\n285123,truck\n285124,dog\n285125,airplane\n285126,dog\n285127,truck\n285128,truck\n285129,horse\n285130,bird\n285131,cat\n285132,truck\n285133,ship\n285134,ship\n285135,truck\n285136,automobile\n285137,deer\n285138,frog\n285139,bird\n285140,automobile\n285141,dog\n285142,bird\n285143,dog\n285144,bird\n285145,horse\n285146,ship\n285147,automobile\n285148,truck\n285149,cat\n285150,frog\n285151,deer\n285152,truck\n285153,airplane\n285154,truck\n285155,horse\n285156,dog\n285157,frog\n285158,truck\n285159,deer\n285160,frog\n285161,deer\n285162,deer\n285163,ship\n285164,truck\n285165,deer\n285166,frog\n285167,ship\n285168,cat\n285169,bird\n285170,deer\n285171,dog\n285172,horse\n285173,truck\n285174,horse\n285175,airplane\n285176,ship\n285177,frog\n285178,frog\n285179,deer\n285180,deer\n285181,deer\n285182,frog\n285183,bird\n285184,truck\n285185,bird\n285186,horse\n285187,horse\n285188,horse\n285189,cat\n285190,cat\n285191,airplane\n285192,airplane\n285193,horse\n285194,ship\n285195,bird\n285196,automobile\n285197,frog\n285198,automobile\n285199,ship\n285200,frog\n285201,horse\n285202,deer\n285203,frog\n285204,dog\n285205,truck\n285206,cat\n285207,airplane\n285208,dog\n285209,automobile\n285210,dog\n285211,automobile\n285212,frog\n285213,cat\n285214,frog\n285215,truck\n285216,dog\n285217,bird\n285218,truck\n285219,horse\n285220,cat\n285221,cat\n285222,truck\n285223,frog\n285224,truck\n285225,horse\n285226,frog\n285227,deer\n285228,bird\n285229,deer\n285230,cat\n285231,frog\n285232,deer\n285233,airplane\n285234,truck\n285235,truck\n285236,horse\n285237,cat\n285238,frog\n285239,cat\n285240,frog\n285241,airplane\n285242,frog\n285243,bird\n285244,ship\n285245,dog\n285246,deer\n285247,deer\n285248,truck\n285249,dog\n285250,dog\n285251,cat\n285252,dog\n285253,cat\n285254,bird\n285255,bird\n285256,horse\n285257,automobile\n285258,bird\n285259,truck\n285260,automobile\n285261,automobile\n285262,horse\n285263,truck\n285264,truck\n285265,automobile\n285266,airplane\n285267,automobile\n285268,deer\n285269,truck\n285270,horse\n285271,cat\n285272,deer\n285273,frog\n285274,horse\n285275,automobile\n285276,cat\n285277,frog\n285278,automobile\n285279,frog\n285280,horse\n285281,dog\n285282,deer\n285283,dog\n285284,truck\n285285,airplane\n285286,ship\n285287,bird\n285288,deer\n285289,dog\n285290,dog\n285291,cat\n285292,automobile\n285293,cat\n285294,ship\n285295,horse\n285296,truck\n285297,deer\n285298,horse\n285299,automobile\n285300,truck\n285301,automobile\n285302,deer\n285303,deer\n285304,cat\n285305,airplane\n285306,ship\n285307,deer\n285308,truck\n285309,truck\n285310,truck\n285311,cat\n285312,airplane\n285313,frog\n285314,dog\n285315,ship\n285316,horse\n285317,horse\n285318,ship\n285319,airplane\n285320,frog\n285321,truck\n285322,cat\n285323,deer\n285324,truck\n285325,ship\n285326,truck\n285327,frog\n285328,cat\n285329,ship\n285330,horse\n285331,airplane\n285332,frog\n285333,horse\n285334,horse\n285335,truck\n285336,dog\n285337,horse\n285338,automobile\n285339,dog\n285340,truck\n285341,cat\n285342,frog\n285343,ship\n285344,automobile\n285345,ship\n285346,dog\n285347,deer\n285348,truck\n285349,horse\n285350,deer\n285351,bird\n285352,deer\n285353,cat\n285354,cat\n285355,cat\n285356,horse\n285357,airplane\n285358,horse\n285359,dog\n285360,cat\n285361,frog\n285362,airplane\n285363,automobile\n285364,airplane\n285365,deer\n285366,cat\n285367,deer\n285368,deer\n285369,truck\n285370,automobile\n285371,airplane\n285372,automobile\n285373,horse\n285374,cat\n285375,horse\n285376,deer\n285377,deer\n285378,horse\n285379,frog\n285380,dog\n285381,cat\n285382,ship\n285383,automobile\n285384,horse\n285385,horse\n285386,horse\n285387,horse\n285388,deer\n285389,horse\n285390,frog\n285391,truck\n285392,cat\n285393,truck\n285394,dog\n285395,airplane\n285396,automobile\n285397,horse\n285398,dog\n285399,horse\n285400,frog\n285401,truck\n285402,dog\n285403,deer\n285404,frog\n285405,deer\n285406,deer\n285407,truck\n285408,horse\n285409,bird\n285410,frog\n285411,horse\n285412,deer\n285413,deer\n285414,horse\n285415,automobile\n285416,frog\n285417,automobile\n285418,frog\n285419,dog\n285420,frog\n285421,horse\n285422,frog\n285423,airplane\n285424,airplane\n285425,deer\n285426,horse\n285427,ship\n285428,automobile\n285429,cat\n285430,bird\n285431,truck\n285432,ship\n285433,frog\n285434,truck\n285435,cat\n285436,truck\n285437,cat\n285438,frog\n285439,frog\n285440,frog\n285441,frog\n285442,cat\n285443,truck\n285444,automobile\n285445,cat\n285446,ship\n285447,frog\n285448,automobile\n285449,cat\n285450,frog\n285451,bird\n285452,airplane\n285453,ship\n285454,dog\n285455,dog\n285456,deer\n285457,cat\n285458,airplane\n285459,cat\n285460,frog\n285461,horse\n285462,automobile\n285463,deer\n285464,ship\n285465,airplane\n285466,frog\n285467,deer\n285468,ship\n285469,frog\n285470,deer\n285471,ship\n285472,truck\n285473,truck\n285474,deer\n285475,horse\n285476,ship\n285477,frog\n285478,frog\n285479,cat\n285480,deer\n285481,cat\n285482,ship\n285483,deer\n285484,airplane\n285485,cat\n285486,cat\n285487,cat\n285488,deer\n285489,truck\n285490,ship\n285491,dog\n285492,deer\n285493,dog\n285494,bird\n285495,cat\n285496,dog\n285497,horse\n285498,automobile\n285499,deer\n285500,automobile\n285501,bird\n285502,ship\n285503,automobile\n285504,bird\n285505,deer\n285506,truck\n285507,deer\n285508,deer\n285509,airplane\n285510,bird\n285511,bird\n285512,cat\n285513,cat\n285514,bird\n285515,deer\n285516,horse\n285517,bird\n285518,cat\n285519,truck\n285520,cat\n285521,dog\n285522,cat\n285523,dog\n285524,frog\n285525,ship\n285526,truck\n285527,bird\n285528,truck\n285529,frog\n285530,deer\n285531,cat\n285532,ship\n285533,frog\n285534,airplane\n285535,cat\n285536,frog\n285537,truck\n285538,bird\n285539,horse\n285540,ship\n285541,cat\n285542,cat\n285543,automobile\n285544,bird\n285545,dog\n285546,airplane\n285547,horse\n285548,truck\n285549,deer\n285550,airplane\n285551,truck\n285552,bird\n285553,bird\n285554,ship\n285555,bird\n285556,bird\n285557,dog\n285558,truck\n285559,bird\n285560,horse\n285561,truck\n285562,horse\n285563,ship\n285564,deer\n285565,bird\n285566,horse\n285567,cat\n285568,automobile\n285569,automobile\n285570,automobile\n285571,dog\n285572,frog\n285573,deer\n285574,dog\n285575,bird\n285576,dog\n285577,airplane\n285578,bird\n285579,ship\n285580,dog\n285581,airplane\n285582,airplane\n285583,airplane\n285584,horse\n285585,horse\n285586,deer\n285587,airplane\n285588,cat\n285589,horse\n285590,frog\n285591,cat\n285592,horse\n285593,frog\n285594,cat\n285595,truck\n285596,bird\n285597,deer\n285598,automobile\n285599,horse\n285600,horse\n285601,airplane\n285602,cat\n285603,cat\n285604,cat\n285605,truck\n285606,cat\n285607,bird\n285608,cat\n285609,frog\n285610,deer\n285611,deer\n285612,bird\n285613,cat\n285614,deer\n285615,horse\n285616,truck\n285617,dog\n285618,frog\n285619,horse\n285620,dog\n285621,bird\n285622,cat\n285623,cat\n285624,frog\n285625,bird\n285626,cat\n285627,cat\n285628,cat\n285629,deer\n285630,dog\n285631,frog\n285632,cat\n285633,ship\n285634,cat\n285635,dog\n285636,horse\n285637,frog\n285638,bird\n285639,deer\n285640,dog\n285641,horse\n285642,automobile\n285643,ship\n285644,dog\n285645,ship\n285646,bird\n285647,cat\n285648,ship\n285649,truck\n285650,deer\n285651,deer\n285652,bird\n285653,deer\n285654,frog\n285655,automobile\n285656,frog\n285657,bird\n285658,deer\n285659,airplane\n285660,deer\n285661,ship\n285662,horse\n285663,horse\n285664,automobile\n285665,horse\n285666,cat\n285667,ship\n285668,frog\n285669,automobile\n285670,deer\n285671,dog\n285672,frog\n285673,deer\n285674,airplane\n285675,deer\n285676,bird\n285677,cat\n285678,cat\n285679,horse\n285680,dog\n285681,dog\n285682,airplane\n285683,truck\n285684,airplane\n285685,bird\n285686,frog\n285687,cat\n285688,cat\n285689,airplane\n285690,horse\n285691,frog\n285692,truck\n285693,bird\n285694,horse\n285695,truck\n285696,bird\n285697,cat\n285698,deer\n285699,deer\n285700,frog\n285701,horse\n285702,deer\n285703,truck\n285704,ship\n285705,horse\n285706,ship\n285707,automobile\n285708,deer\n285709,cat\n285710,truck\n285711,cat\n285712,cat\n285713,frog\n285714,cat\n285715,dog\n285716,deer\n285717,deer\n285718,horse\n285719,deer\n285720,frog\n285721,automobile\n285722,automobile\n285723,ship\n285724,cat\n285725,deer\n285726,horse\n285727,frog\n285728,bird\n285729,horse\n285730,dog\n285731,ship\n285732,airplane\n285733,truck\n285734,cat\n285735,frog\n285736,automobile\n285737,deer\n285738,airplane\n285739,automobile\n285740,dog\n285741,horse\n285742,frog\n285743,bird\n285744,airplane\n285745,automobile\n285746,frog\n285747,dog\n285748,frog\n285749,automobile\n285750,airplane\n285751,airplane\n285752,deer\n285753,cat\n285754,ship\n285755,deer\n285756,cat\n285757,cat\n285758,airplane\n285759,frog\n285760,truck\n285761,ship\n285762,frog\n285763,bird\n285764,automobile\n285765,deer\n285766,ship\n285767,deer\n285768,bird\n285769,truck\n285770,horse\n285771,truck\n285772,deer\n285773,cat\n285774,deer\n285775,airplane\n285776,deer\n285777,deer\n285778,cat\n285779,dog\n285780,automobile\n285781,horse\n285782,truck\n285783,ship\n285784,automobile\n285785,cat\n285786,deer\n285787,airplane\n285788,ship\n285789,horse\n285790,dog\n285791,dog\n285792,automobile\n285793,frog\n285794,airplane\n285795,bird\n285796,dog\n285797,frog\n285798,ship\n285799,cat\n285800,automobile\n285801,frog\n285802,frog\n285803,frog\n285804,airplane\n285805,airplane\n285806,airplane\n285807,dog\n285808,cat\n285809,deer\n285810,cat\n285811,truck\n285812,truck\n285813,frog\n285814,bird\n285815,horse\n285816,truck\n285817,dog\n285818,cat\n285819,cat\n285820,deer\n285821,deer\n285822,cat\n285823,deer\n285824,airplane\n285825,horse\n285826,bird\n285827,automobile\n285828,truck\n285829,deer\n285830,horse\n285831,ship\n285832,cat\n285833,frog\n285834,airplane\n285835,bird\n285836,truck\n285837,deer\n285838,dog\n285839,horse\n285840,ship\n285841,truck\n285842,airplane\n285843,bird\n285844,truck\n285845,bird\n285846,dog\n285847,ship\n285848,frog\n285849,cat\n285850,airplane\n285851,bird\n285852,cat\n285853,bird\n285854,automobile\n285855,truck\n285856,automobile\n285857,truck\n285858,automobile\n285859,cat\n285860,ship\n285861,cat\n285862,dog\n285863,bird\n285864,bird\n285865,ship\n285866,truck\n285867,dog\n285868,frog\n285869,cat\n285870,frog\n285871,cat\n285872,dog\n285873,cat\n285874,ship\n285875,dog\n285876,horse\n285877,dog\n285878,ship\n285879,frog\n285880,ship\n285881,deer\n285882,automobile\n285883,ship\n285884,airplane\n285885,dog\n285886,truck\n285887,dog\n285888,cat\n285889,airplane\n285890,automobile\n285891,horse\n285892,horse\n285893,horse\n285894,truck\n285895,cat\n285896,dog\n285897,deer\n285898,cat\n285899,dog\n285900,deer\n285901,horse\n285902,cat\n285903,bird\n285904,horse\n285905,deer\n285906,truck\n285907,cat\n285908,horse\n285909,dog\n285910,dog\n285911,dog\n285912,airplane\n285913,dog\n285914,automobile\n285915,dog\n285916,bird\n285917,frog\n285918,deer\n285919,frog\n285920,automobile\n285921,cat\n285922,dog\n285923,deer\n285924,frog\n285925,truck\n285926,airplane\n285927,ship\n285928,cat\n285929,truck\n285930,bird\n285931,cat\n285932,automobile\n285933,deer\n285934,dog\n285935,bird\n285936,deer\n285937,automobile\n285938,dog\n285939,cat\n285940,frog\n285941,automobile\n285942,airplane\n285943,frog\n285944,automobile\n285945,frog\n285946,deer\n285947,dog\n285948,automobile\n285949,truck\n285950,horse\n285951,airplane\n285952,dog\n285953,cat\n285954,airplane\n285955,cat\n285956,cat\n285957,truck\n285958,horse\n285959,deer\n285960,deer\n285961,truck\n285962,ship\n285963,dog\n285964,bird\n285965,bird\n285966,airplane\n285967,airplane\n285968,frog\n285969,ship\n285970,ship\n285971,airplane\n285972,cat\n285973,dog\n285974,bird\n285975,automobile\n285976,bird\n285977,airplane\n285978,dog\n285979,frog\n285980,airplane\n285981,ship\n285982,frog\n285983,deer\n285984,dog\n285985,deer\n285986,frog\n285987,truck\n285988,airplane\n285989,ship\n285990,cat\n285991,deer\n285992,ship\n285993,frog\n285994,bird\n285995,deer\n285996,airplane\n285997,frog\n285998,bird\n285999,deer\n286000,frog\n286001,frog\n286002,horse\n286003,bird\n286004,truck\n286005,truck\n286006,truck\n286007,cat\n286008,automobile\n286009,horse\n286010,dog\n286011,horse\n286012,cat\n286013,truck\n286014,automobile\n286015,truck\n286016,horse\n286017,airplane\n286018,bird\n286019,truck\n286020,horse\n286021,bird\n286022,deer\n286023,cat\n286024,truck\n286025,deer\n286026,deer\n286027,horse\n286028,horse\n286029,frog\n286030,dog\n286031,bird\n286032,airplane\n286033,frog\n286034,dog\n286035,truck\n286036,airplane\n286037,ship\n286038,airplane\n286039,horse\n286040,horse\n286041,bird\n286042,dog\n286043,dog\n286044,truck\n286045,ship\n286046,airplane\n286047,bird\n286048,truck\n286049,horse\n286050,frog\n286051,truck\n286052,airplane\n286053,deer\n286054,bird\n286055,horse\n286056,dog\n286057,deer\n286058,airplane\n286059,ship\n286060,dog\n286061,deer\n286062,deer\n286063,cat\n286064,frog\n286065,cat\n286066,airplane\n286067,airplane\n286068,bird\n286069,frog\n286070,bird\n286071,truck\n286072,ship\n286073,deer\n286074,deer\n286075,airplane\n286076,frog\n286077,frog\n286078,horse\n286079,ship\n286080,airplane\n286081,ship\n286082,frog\n286083,horse\n286084,airplane\n286085,airplane\n286086,truck\n286087,truck\n286088,bird\n286089,horse\n286090,deer\n286091,horse\n286092,bird\n286093,truck\n286094,frog\n286095,cat\n286096,deer\n286097,frog\n286098,deer\n286099,dog\n286100,deer\n286101,cat\n286102,truck\n286103,cat\n286104,cat\n286105,horse\n286106,cat\n286107,frog\n286108,bird\n286109,cat\n286110,airplane\n286111,deer\n286112,truck\n286113,truck\n286114,frog\n286115,dog\n286116,dog\n286117,deer\n286118,ship\n286119,deer\n286120,truck\n286121,airplane\n286122,ship\n286123,frog\n286124,bird\n286125,deer\n286126,automobile\n286127,dog\n286128,ship\n286129,bird\n286130,dog\n286131,horse\n286132,bird\n286133,horse\n286134,horse\n286135,airplane\n286136,frog\n286137,automobile\n286138,truck\n286139,airplane\n286140,horse\n286141,frog\n286142,deer\n286143,frog\n286144,horse\n286145,cat\n286146,ship\n286147,dog\n286148,cat\n286149,deer\n286150,dog\n286151,deer\n286152,truck\n286153,automobile\n286154,deer\n286155,cat\n286156,airplane\n286157,bird\n286158,airplane\n286159,frog\n286160,frog\n286161,dog\n286162,horse\n286163,deer\n286164,truck\n286165,cat\n286166,horse\n286167,truck\n286168,dog\n286169,truck\n286170,horse\n286171,horse\n286172,ship\n286173,ship\n286174,deer\n286175,frog\n286176,bird\n286177,cat\n286178,cat\n286179,automobile\n286180,horse\n286181,cat\n286182,deer\n286183,automobile\n286184,cat\n286185,airplane\n286186,ship\n286187,ship\n286188,airplane\n286189,truck\n286190,ship\n286191,dog\n286192,truck\n286193,automobile\n286194,ship\n286195,deer\n286196,horse\n286197,truck\n286198,airplane\n286199,frog\n286200,frog\n286201,cat\n286202,horse\n286203,cat\n286204,cat\n286205,frog\n286206,cat\n286207,dog\n286208,airplane\n286209,automobile\n286210,cat\n286211,frog\n286212,bird\n286213,cat\n286214,frog\n286215,ship\n286216,cat\n286217,truck\n286218,automobile\n286219,bird\n286220,truck\n286221,truck\n286222,dog\n286223,truck\n286224,bird\n286225,dog\n286226,deer\n286227,ship\n286228,frog\n286229,truck\n286230,bird\n286231,truck\n286232,deer\n286233,automobile\n286234,dog\n286235,horse\n286236,horse\n286237,frog\n286238,bird\n286239,horse\n286240,frog\n286241,automobile\n286242,dog\n286243,dog\n286244,dog\n286245,deer\n286246,deer\n286247,airplane\n286248,dog\n286249,truck\n286250,cat\n286251,horse\n286252,cat\n286253,cat\n286254,frog\n286255,frog\n286256,deer\n286257,deer\n286258,airplane\n286259,truck\n286260,dog\n286261,truck\n286262,dog\n286263,horse\n286264,cat\n286265,ship\n286266,frog\n286267,ship\n286268,bird\n286269,cat\n286270,dog\n286271,dog\n286272,frog\n286273,dog\n286274,ship\n286275,deer\n286276,deer\n286277,automobile\n286278,bird\n286279,cat\n286280,bird\n286281,dog\n286282,deer\n286283,bird\n286284,dog\n286285,bird\n286286,horse\n286287,airplane\n286288,truck\n286289,automobile\n286290,horse\n286291,ship\n286292,airplane\n286293,truck\n286294,automobile\n286295,frog\n286296,cat\n286297,automobile\n286298,bird\n286299,cat\n286300,airplane\n286301,deer\n286302,deer\n286303,truck\n286304,dog\n286305,deer\n286306,frog\n286307,deer\n286308,frog\n286309,truck\n286310,ship\n286311,horse\n286312,bird\n286313,ship\n286314,bird\n286315,bird\n286316,airplane\n286317,truck\n286318,bird\n286319,automobile\n286320,truck\n286321,automobile\n286322,bird\n286323,ship\n286324,truck\n286325,horse\n286326,horse\n286327,automobile\n286328,truck\n286329,deer\n286330,cat\n286331,frog\n286332,deer\n286333,bird\n286334,horse\n286335,cat\n286336,ship\n286337,deer\n286338,deer\n286339,truck\n286340,airplane\n286341,deer\n286342,cat\n286343,ship\n286344,horse\n286345,truck\n286346,frog\n286347,frog\n286348,dog\n286349,automobile\n286350,airplane\n286351,cat\n286352,airplane\n286353,frog\n286354,airplane\n286355,truck\n286356,bird\n286357,frog\n286358,airplane\n286359,cat\n286360,ship\n286361,truck\n286362,dog\n286363,dog\n286364,airplane\n286365,dog\n286366,frog\n286367,airplane\n286368,frog\n286369,airplane\n286370,dog\n286371,ship\n286372,airplane\n286373,cat\n286374,frog\n286375,bird\n286376,ship\n286377,horse\n286378,deer\n286379,deer\n286380,cat\n286381,deer\n286382,airplane\n286383,cat\n286384,ship\n286385,airplane\n286386,cat\n286387,truck\n286388,truck\n286389,frog\n286390,bird\n286391,dog\n286392,deer\n286393,cat\n286394,cat\n286395,deer\n286396,frog\n286397,cat\n286398,cat\n286399,automobile\n286400,horse\n286401,ship\n286402,dog\n286403,horse\n286404,automobile\n286405,automobile\n286406,deer\n286407,truck\n286408,deer\n286409,deer\n286410,airplane\n286411,bird\n286412,cat\n286413,deer\n286414,frog\n286415,deer\n286416,airplane\n286417,frog\n286418,dog\n286419,deer\n286420,truck\n286421,horse\n286422,deer\n286423,automobile\n286424,frog\n286425,frog\n286426,automobile\n286427,ship\n286428,horse\n286429,truck\n286430,horse\n286431,bird\n286432,automobile\n286433,cat\n286434,dog\n286435,deer\n286436,deer\n286437,horse\n286438,ship\n286439,truck\n286440,truck\n286441,truck\n286442,cat\n286443,bird\n286444,deer\n286445,automobile\n286446,cat\n286447,cat\n286448,airplane\n286449,airplane\n286450,horse\n286451,frog\n286452,horse\n286453,horse\n286454,dog\n286455,deer\n286456,automobile\n286457,truck\n286458,bird\n286459,cat\n286460,cat\n286461,ship\n286462,deer\n286463,bird\n286464,dog\n286465,bird\n286466,cat\n286467,automobile\n286468,horse\n286469,airplane\n286470,airplane\n286471,truck\n286472,ship\n286473,truck\n286474,automobile\n286475,dog\n286476,ship\n286477,frog\n286478,truck\n286479,dog\n286480,bird\n286481,ship\n286482,cat\n286483,bird\n286484,ship\n286485,frog\n286486,ship\n286487,airplane\n286488,ship\n286489,automobile\n286490,cat\n286491,automobile\n286492,dog\n286493,bird\n286494,bird\n286495,automobile\n286496,cat\n286497,deer\n286498,frog\n286499,deer\n286500,horse\n286501,airplane\n286502,horse\n286503,horse\n286504,deer\n286505,ship\n286506,truck\n286507,cat\n286508,frog\n286509,cat\n286510,dog\n286511,dog\n286512,bird\n286513,cat\n286514,truck\n286515,bird\n286516,bird\n286517,deer\n286518,deer\n286519,bird\n286520,automobile\n286521,ship\n286522,frog\n286523,bird\n286524,automobile\n286525,horse\n286526,frog\n286527,truck\n286528,cat\n286529,ship\n286530,dog\n286531,cat\n286532,frog\n286533,deer\n286534,horse\n286535,cat\n286536,automobile\n286537,airplane\n286538,airplane\n286539,frog\n286540,truck\n286541,bird\n286542,truck\n286543,ship\n286544,cat\n286545,truck\n286546,automobile\n286547,frog\n286548,frog\n286549,frog\n286550,cat\n286551,ship\n286552,deer\n286553,bird\n286554,dog\n286555,horse\n286556,truck\n286557,truck\n286558,deer\n286559,airplane\n286560,horse\n286561,bird\n286562,cat\n286563,frog\n286564,horse\n286565,frog\n286566,airplane\n286567,automobile\n286568,airplane\n286569,airplane\n286570,frog\n286571,truck\n286572,ship\n286573,bird\n286574,frog\n286575,bird\n286576,deer\n286577,airplane\n286578,cat\n286579,cat\n286580,dog\n286581,cat\n286582,airplane\n286583,bird\n286584,ship\n286585,frog\n286586,automobile\n286587,deer\n286588,cat\n286589,frog\n286590,dog\n286591,truck\n286592,cat\n286593,dog\n286594,bird\n286595,horse\n286596,ship\n286597,cat\n286598,cat\n286599,truck\n286600,airplane\n286601,automobile\n286602,automobile\n286603,dog\n286604,frog\n286605,automobile\n286606,horse\n286607,horse\n286608,cat\n286609,cat\n286610,airplane\n286611,cat\n286612,ship\n286613,horse\n286614,frog\n286615,frog\n286616,cat\n286617,deer\n286618,airplane\n286619,dog\n286620,cat\n286621,frog\n286622,deer\n286623,frog\n286624,bird\n286625,cat\n286626,cat\n286627,airplane\n286628,horse\n286629,dog\n286630,dog\n286631,horse\n286632,airplane\n286633,horse\n286634,truck\n286635,frog\n286636,ship\n286637,deer\n286638,truck\n286639,horse\n286640,deer\n286641,frog\n286642,cat\n286643,deer\n286644,cat\n286645,bird\n286646,horse\n286647,deer\n286648,horse\n286649,dog\n286650,horse\n286651,airplane\n286652,dog\n286653,bird\n286654,cat\n286655,frog\n286656,horse\n286657,horse\n286658,truck\n286659,deer\n286660,bird\n286661,cat\n286662,dog\n286663,frog\n286664,deer\n286665,dog\n286666,dog\n286667,cat\n286668,airplane\n286669,truck\n286670,airplane\n286671,deer\n286672,dog\n286673,frog\n286674,truck\n286675,frog\n286676,truck\n286677,airplane\n286678,cat\n286679,deer\n286680,deer\n286681,cat\n286682,deer\n286683,truck\n286684,frog\n286685,deer\n286686,cat\n286687,cat\n286688,airplane\n286689,frog\n286690,ship\n286691,horse\n286692,cat\n286693,ship\n286694,frog\n286695,airplane\n286696,bird\n286697,deer\n286698,ship\n286699,airplane\n286700,frog\n286701,deer\n286702,bird\n286703,cat\n286704,cat\n286705,bird\n286706,deer\n286707,deer\n286708,frog\n286709,dog\n286710,cat\n286711,cat\n286712,frog\n286713,frog\n286714,horse\n286715,frog\n286716,airplane\n286717,ship\n286718,deer\n286719,horse\n286720,deer\n286721,horse\n286722,dog\n286723,frog\n286724,horse\n286725,dog\n286726,deer\n286727,dog\n286728,cat\n286729,automobile\n286730,automobile\n286731,automobile\n286732,frog\n286733,cat\n286734,dog\n286735,deer\n286736,dog\n286737,cat\n286738,frog\n286739,cat\n286740,truck\n286741,ship\n286742,dog\n286743,dog\n286744,truck\n286745,deer\n286746,frog\n286747,frog\n286748,ship\n286749,truck\n286750,automobile\n286751,bird\n286752,bird\n286753,truck\n286754,dog\n286755,bird\n286756,horse\n286757,frog\n286758,horse\n286759,truck\n286760,deer\n286761,automobile\n286762,truck\n286763,ship\n286764,truck\n286765,cat\n286766,cat\n286767,cat\n286768,deer\n286769,truck\n286770,airplane\n286771,automobile\n286772,deer\n286773,cat\n286774,ship\n286775,ship\n286776,automobile\n286777,airplane\n286778,cat\n286779,ship\n286780,deer\n286781,bird\n286782,cat\n286783,frog\n286784,airplane\n286785,automobile\n286786,airplane\n286787,cat\n286788,truck\n286789,airplane\n286790,horse\n286791,dog\n286792,frog\n286793,cat\n286794,cat\n286795,automobile\n286796,truck\n286797,dog\n286798,ship\n286799,deer\n286800,ship\n286801,frog\n286802,ship\n286803,dog\n286804,automobile\n286805,deer\n286806,ship\n286807,dog\n286808,frog\n286809,ship\n286810,frog\n286811,dog\n286812,frog\n286813,ship\n286814,cat\n286815,ship\n286816,airplane\n286817,dog\n286818,frog\n286819,dog\n286820,cat\n286821,frog\n286822,ship\n286823,ship\n286824,truck\n286825,cat\n286826,dog\n286827,horse\n286828,frog\n286829,frog\n286830,frog\n286831,bird\n286832,truck\n286833,automobile\n286834,airplane\n286835,horse\n286836,horse\n286837,deer\n286838,deer\n286839,deer\n286840,automobile\n286841,horse\n286842,deer\n286843,frog\n286844,dog\n286845,deer\n286846,automobile\n286847,cat\n286848,ship\n286849,horse\n286850,ship\n286851,frog\n286852,ship\n286853,horse\n286854,airplane\n286855,dog\n286856,dog\n286857,dog\n286858,deer\n286859,ship\n286860,automobile\n286861,bird\n286862,deer\n286863,dog\n286864,dog\n286865,horse\n286866,truck\n286867,dog\n286868,truck\n286869,automobile\n286870,horse\n286871,cat\n286872,frog\n286873,bird\n286874,truck\n286875,airplane\n286876,cat\n286877,truck\n286878,dog\n286879,airplane\n286880,automobile\n286881,cat\n286882,cat\n286883,truck\n286884,deer\n286885,airplane\n286886,horse\n286887,cat\n286888,ship\n286889,frog\n286890,horse\n286891,cat\n286892,bird\n286893,deer\n286894,deer\n286895,bird\n286896,cat\n286897,bird\n286898,frog\n286899,ship\n286900,dog\n286901,horse\n286902,frog\n286903,dog\n286904,airplane\n286905,deer\n286906,horse\n286907,truck\n286908,cat\n286909,ship\n286910,cat\n286911,dog\n286912,horse\n286913,truck\n286914,automobile\n286915,cat\n286916,truck\n286917,bird\n286918,truck\n286919,horse\n286920,dog\n286921,cat\n286922,bird\n286923,dog\n286924,horse\n286925,bird\n286926,truck\n286927,frog\n286928,deer\n286929,automobile\n286930,frog\n286931,ship\n286932,dog\n286933,truck\n286934,automobile\n286935,horse\n286936,cat\n286937,truck\n286938,airplane\n286939,dog\n286940,truck\n286941,airplane\n286942,deer\n286943,cat\n286944,deer\n286945,cat\n286946,airplane\n286947,cat\n286948,automobile\n286949,ship\n286950,cat\n286951,frog\n286952,cat\n286953,frog\n286954,airplane\n286955,cat\n286956,deer\n286957,frog\n286958,automobile\n286959,bird\n286960,bird\n286961,bird\n286962,horse\n286963,deer\n286964,frog\n286965,truck\n286966,deer\n286967,ship\n286968,truck\n286969,frog\n286970,truck\n286971,cat\n286972,dog\n286973,dog\n286974,dog\n286975,truck\n286976,dog\n286977,airplane\n286978,dog\n286979,truck\n286980,deer\n286981,frog\n286982,dog\n286983,dog\n286984,dog\n286985,deer\n286986,truck\n286987,frog\n286988,truck\n286989,airplane\n286990,truck\n286991,horse\n286992,truck\n286993,cat\n286994,dog\n286995,dog\n286996,dog\n286997,horse\n286998,bird\n286999,horse\n287000,frog\n287001,cat\n287002,horse\n287003,dog\n287004,truck\n287005,bird\n287006,cat\n287007,dog\n287008,frog\n287009,horse\n287010,deer\n287011,bird\n287012,frog\n287013,bird\n287014,deer\n287015,cat\n287016,dog\n287017,airplane\n287018,dog\n287019,deer\n287020,horse\n287021,deer\n287022,deer\n287023,frog\n287024,dog\n287025,horse\n287026,cat\n287027,bird\n287028,dog\n287029,frog\n287030,automobile\n287031,deer\n287032,dog\n287033,automobile\n287034,airplane\n287035,ship\n287036,horse\n287037,truck\n287038,cat\n287039,automobile\n287040,automobile\n287041,cat\n287042,dog\n287043,cat\n287044,dog\n287045,cat\n287046,ship\n287047,deer\n287048,dog\n287049,horse\n287050,ship\n287051,frog\n287052,frog\n287053,truck\n287054,dog\n287055,dog\n287056,airplane\n287057,truck\n287058,cat\n287059,dog\n287060,truck\n287061,truck\n287062,cat\n287063,dog\n287064,deer\n287065,truck\n287066,automobile\n287067,airplane\n287068,dog\n287069,cat\n287070,frog\n287071,deer\n287072,ship\n287073,ship\n287074,deer\n287075,frog\n287076,airplane\n287077,horse\n287078,bird\n287079,airplane\n287080,truck\n287081,automobile\n287082,automobile\n287083,cat\n287084,dog\n287085,bird\n287086,bird\n287087,dog\n287088,cat\n287089,ship\n287090,truck\n287091,automobile\n287092,frog\n287093,airplane\n287094,cat\n287095,automobile\n287096,dog\n287097,bird\n287098,cat\n287099,ship\n287100,bird\n287101,deer\n287102,dog\n287103,ship\n287104,deer\n287105,frog\n287106,horse\n287107,bird\n287108,truck\n287109,truck\n287110,airplane\n287111,dog\n287112,cat\n287113,horse\n287114,frog\n287115,horse\n287116,horse\n287117,automobile\n287118,dog\n287119,truck\n287120,deer\n287121,cat\n287122,frog\n287123,airplane\n287124,dog\n287125,ship\n287126,deer\n287127,ship\n287128,cat\n287129,cat\n287130,cat\n287131,ship\n287132,airplane\n287133,airplane\n287134,frog\n287135,bird\n287136,dog\n287137,automobile\n287138,truck\n287139,dog\n287140,airplane\n287141,deer\n287142,automobile\n287143,cat\n287144,airplane\n287145,horse\n287146,automobile\n287147,frog\n287148,truck\n287149,horse\n287150,deer\n287151,dog\n287152,cat\n287153,dog\n287154,cat\n287155,truck\n287156,truck\n287157,dog\n287158,dog\n287159,automobile\n287160,deer\n287161,truck\n287162,deer\n287163,truck\n287164,deer\n287165,horse\n287166,truck\n287167,automobile\n287168,horse\n287169,frog\n287170,frog\n287171,truck\n287172,dog\n287173,ship\n287174,horse\n287175,cat\n287176,truck\n287177,deer\n287178,truck\n287179,frog\n287180,truck\n287181,deer\n287182,horse\n287183,bird\n287184,truck\n287185,bird\n287186,bird\n287187,frog\n287188,cat\n287189,truck\n287190,automobile\n287191,bird\n287192,bird\n287193,ship\n287194,dog\n287195,airplane\n287196,frog\n287197,dog\n287198,deer\n287199,airplane\n287200,automobile\n287201,airplane\n287202,bird\n287203,dog\n287204,deer\n287205,cat\n287206,frog\n287207,frog\n287208,deer\n287209,dog\n287210,cat\n287211,truck\n287212,bird\n287213,deer\n287214,automobile\n287215,truck\n287216,deer\n287217,horse\n287218,deer\n287219,deer\n287220,dog\n287221,airplane\n287222,deer\n287223,dog\n287224,deer\n287225,ship\n287226,truck\n287227,deer\n287228,deer\n287229,horse\n287230,cat\n287231,truck\n287232,bird\n287233,frog\n287234,deer\n287235,frog\n287236,bird\n287237,horse\n287238,dog\n287239,airplane\n287240,horse\n287241,deer\n287242,frog\n287243,bird\n287244,bird\n287245,truck\n287246,airplane\n287247,dog\n287248,automobile\n287249,frog\n287250,cat\n287251,truck\n287252,frog\n287253,horse\n287254,cat\n287255,ship\n287256,cat\n287257,truck\n287258,horse\n287259,frog\n287260,horse\n287261,airplane\n287262,dog\n287263,automobile\n287264,dog\n287265,frog\n287266,bird\n287267,bird\n287268,horse\n287269,cat\n287270,dog\n287271,bird\n287272,airplane\n287273,frog\n287274,airplane\n287275,dog\n287276,horse\n287277,ship\n287278,dog\n287279,deer\n287280,bird\n287281,deer\n287282,frog\n287283,truck\n287284,bird\n287285,airplane\n287286,bird\n287287,cat\n287288,frog\n287289,cat\n287290,cat\n287291,dog\n287292,truck\n287293,ship\n287294,truck\n287295,horse\n287296,deer\n287297,frog\n287298,frog\n287299,cat\n287300,frog\n287301,dog\n287302,deer\n287303,automobile\n287304,bird\n287305,horse\n287306,frog\n287307,ship\n287308,dog\n287309,ship\n287310,cat\n287311,dog\n287312,truck\n287313,dog\n287314,bird\n287315,cat\n287316,deer\n287317,ship\n287318,horse\n287319,horse\n287320,frog\n287321,automobile\n287322,bird\n287323,cat\n287324,ship\n287325,deer\n287326,truck\n287327,bird\n287328,bird\n287329,frog\n287330,cat\n287331,frog\n287332,cat\n287333,ship\n287334,ship\n287335,frog\n287336,dog\n287337,ship\n287338,horse\n287339,cat\n287340,truck\n287341,frog\n287342,ship\n287343,truck\n287344,airplane\n287345,dog\n287346,deer\n287347,deer\n287348,ship\n287349,truck\n287350,ship\n287351,airplane\n287352,frog\n287353,bird\n287354,horse\n287355,airplane\n287356,airplane\n287357,frog\n287358,horse\n287359,frog\n287360,bird\n287361,truck\n287362,truck\n287363,frog\n287364,horse\n287365,frog\n287366,airplane\n287367,deer\n287368,truck\n287369,truck\n287370,deer\n287371,ship\n287372,truck\n287373,horse\n287374,automobile\n287375,dog\n287376,ship\n287377,truck\n287378,ship\n287379,deer\n287380,deer\n287381,truck\n287382,truck\n287383,dog\n287384,horse\n287385,dog\n287386,ship\n287387,airplane\n287388,airplane\n287389,airplane\n287390,frog\n287391,cat\n287392,horse\n287393,bird\n287394,ship\n287395,bird\n287396,cat\n287397,airplane\n287398,airplane\n287399,cat\n287400,dog\n287401,frog\n287402,airplane\n287403,ship\n287404,truck\n287405,horse\n287406,automobile\n287407,dog\n287408,cat\n287409,truck\n287410,deer\n287411,deer\n287412,horse\n287413,automobile\n287414,deer\n287415,airplane\n287416,truck\n287417,bird\n287418,cat\n287419,truck\n287420,automobile\n287421,deer\n287422,airplane\n287423,frog\n287424,truck\n287425,airplane\n287426,cat\n287427,deer\n287428,airplane\n287429,dog\n287430,frog\n287431,bird\n287432,dog\n287433,deer\n287434,ship\n287435,automobile\n287436,frog\n287437,deer\n287438,airplane\n287439,frog\n287440,airplane\n287441,frog\n287442,horse\n287443,deer\n287444,airplane\n287445,cat\n287446,deer\n287447,deer\n287448,bird\n287449,frog\n287450,truck\n287451,horse\n287452,truck\n287453,deer\n287454,dog\n287455,ship\n287456,frog\n287457,bird\n287458,deer\n287459,truck\n287460,cat\n287461,dog\n287462,dog\n287463,horse\n287464,deer\n287465,bird\n287466,airplane\n287467,truck\n287468,cat\n287469,frog\n287470,truck\n287471,deer\n287472,cat\n287473,truck\n287474,cat\n287475,automobile\n287476,cat\n287477,deer\n287478,ship\n287479,deer\n287480,deer\n287481,airplane\n287482,cat\n287483,deer\n287484,bird\n287485,cat\n287486,ship\n287487,deer\n287488,bird\n287489,frog\n287490,deer\n287491,horse\n287492,ship\n287493,deer\n287494,cat\n287495,ship\n287496,deer\n287497,frog\n287498,ship\n287499,ship\n287500,horse\n287501,ship\n287502,truck\n287503,bird\n287504,horse\n287505,deer\n287506,horse\n287507,cat\n287508,dog\n287509,airplane\n287510,horse\n287511,deer\n287512,dog\n287513,automobile\n287514,ship\n287515,horse\n287516,ship\n287517,automobile\n287518,dog\n287519,cat\n287520,cat\n287521,truck\n287522,deer\n287523,dog\n287524,truck\n287525,bird\n287526,frog\n287527,deer\n287528,automobile\n287529,cat\n287530,cat\n287531,cat\n287532,cat\n287533,deer\n287534,bird\n287535,horse\n287536,automobile\n287537,airplane\n287538,ship\n287539,deer\n287540,dog\n287541,cat\n287542,cat\n287543,dog\n287544,bird\n287545,bird\n287546,automobile\n287547,dog\n287548,ship\n287549,deer\n287550,airplane\n287551,deer\n287552,deer\n287553,airplane\n287554,horse\n287555,airplane\n287556,dog\n287557,deer\n287558,truck\n287559,bird\n287560,dog\n287561,cat\n287562,airplane\n287563,deer\n287564,dog\n287565,truck\n287566,deer\n287567,dog\n287568,cat\n287569,horse\n287570,horse\n287571,bird\n287572,truck\n287573,frog\n287574,bird\n287575,horse\n287576,ship\n287577,cat\n287578,cat\n287579,cat\n287580,automobile\n287581,dog\n287582,automobile\n287583,automobile\n287584,cat\n287585,truck\n287586,truck\n287587,deer\n287588,truck\n287589,ship\n287590,ship\n287591,deer\n287592,cat\n287593,deer\n287594,dog\n287595,automobile\n287596,automobile\n287597,truck\n287598,airplane\n287599,dog\n287600,automobile\n287601,deer\n287602,deer\n287603,cat\n287604,dog\n287605,cat\n287606,cat\n287607,bird\n287608,bird\n287609,dog\n287610,deer\n287611,horse\n287612,truck\n287613,dog\n287614,ship\n287615,deer\n287616,deer\n287617,bird\n287618,deer\n287619,bird\n287620,automobile\n287621,frog\n287622,deer\n287623,cat\n287624,dog\n287625,horse\n287626,ship\n287627,dog\n287628,automobile\n287629,horse\n287630,truck\n287631,airplane\n287632,truck\n287633,frog\n287634,deer\n287635,frog\n287636,cat\n287637,airplane\n287638,automobile\n287639,bird\n287640,truck\n287641,bird\n287642,bird\n287643,deer\n287644,truck\n287645,cat\n287646,cat\n287647,airplane\n287648,truck\n287649,dog\n287650,bird\n287651,deer\n287652,dog\n287653,horse\n287654,automobile\n287655,truck\n287656,airplane\n287657,dog\n287658,frog\n287659,frog\n287660,bird\n287661,frog\n287662,bird\n287663,truck\n287664,deer\n287665,horse\n287666,deer\n287667,dog\n287668,ship\n287669,horse\n287670,automobile\n287671,automobile\n287672,ship\n287673,dog\n287674,airplane\n287675,dog\n287676,frog\n287677,bird\n287678,deer\n287679,ship\n287680,airplane\n287681,ship\n287682,automobile\n287683,dog\n287684,deer\n287685,dog\n287686,truck\n287687,frog\n287688,ship\n287689,dog\n287690,ship\n287691,ship\n287692,frog\n287693,cat\n287694,bird\n287695,dog\n287696,deer\n287697,bird\n287698,frog\n287699,truck\n287700,airplane\n287701,truck\n287702,frog\n287703,airplane\n287704,cat\n287705,frog\n287706,deer\n287707,bird\n287708,dog\n287709,ship\n287710,frog\n287711,automobile\n287712,airplane\n287713,deer\n287714,airplane\n287715,deer\n287716,ship\n287717,horse\n287718,airplane\n287719,dog\n287720,horse\n287721,deer\n287722,frog\n287723,frog\n287724,truck\n287725,airplane\n287726,ship\n287727,dog\n287728,deer\n287729,airplane\n287730,dog\n287731,airplane\n287732,deer\n287733,horse\n287734,frog\n287735,dog\n287736,bird\n287737,frog\n287738,horse\n287739,airplane\n287740,horse\n287741,horse\n287742,ship\n287743,horse\n287744,bird\n287745,automobile\n287746,dog\n287747,frog\n287748,frog\n287749,dog\n287750,cat\n287751,airplane\n287752,horse\n287753,frog\n287754,cat\n287755,truck\n287756,deer\n287757,automobile\n287758,cat\n287759,dog\n287760,cat\n287761,truck\n287762,horse\n287763,dog\n287764,truck\n287765,frog\n287766,airplane\n287767,truck\n287768,horse\n287769,deer\n287770,bird\n287771,deer\n287772,deer\n287773,dog\n287774,horse\n287775,horse\n287776,airplane\n287777,dog\n287778,truck\n287779,dog\n287780,bird\n287781,cat\n287782,automobile\n287783,cat\n287784,frog\n287785,airplane\n287786,cat\n287787,cat\n287788,automobile\n287789,cat\n287790,frog\n287791,deer\n287792,ship\n287793,automobile\n287794,dog\n287795,bird\n287796,ship\n287797,cat\n287798,airplane\n287799,deer\n287800,deer\n287801,dog\n287802,ship\n287803,cat\n287804,truck\n287805,cat\n287806,dog\n287807,automobile\n287808,truck\n287809,frog\n287810,ship\n287811,bird\n287812,cat\n287813,airplane\n287814,horse\n287815,automobile\n287816,cat\n287817,cat\n287818,cat\n287819,airplane\n287820,automobile\n287821,dog\n287822,cat\n287823,deer\n287824,frog\n287825,deer\n287826,dog\n287827,frog\n287828,ship\n287829,deer\n287830,dog\n287831,cat\n287832,bird\n287833,frog\n287834,horse\n287835,horse\n287836,ship\n287837,dog\n287838,deer\n287839,airplane\n287840,deer\n287841,frog\n287842,dog\n287843,bird\n287844,truck\n287845,airplane\n287846,cat\n287847,truck\n287848,automobile\n287849,bird\n287850,horse\n287851,horse\n287852,ship\n287853,deer\n287854,frog\n287855,truck\n287856,frog\n287857,truck\n287858,deer\n287859,horse\n287860,cat\n287861,ship\n287862,cat\n287863,cat\n287864,cat\n287865,dog\n287866,automobile\n287867,horse\n287868,automobile\n287869,dog\n287870,bird\n287871,cat\n287872,frog\n287873,truck\n287874,ship\n287875,automobile\n287876,bird\n287877,ship\n287878,airplane\n287879,horse\n287880,horse\n287881,deer\n287882,deer\n287883,horse\n287884,truck\n287885,bird\n287886,cat\n287887,deer\n287888,bird\n287889,ship\n287890,cat\n287891,deer\n287892,frog\n287893,automobile\n287894,bird\n287895,deer\n287896,truck\n287897,deer\n287898,truck\n287899,truck\n287900,dog\n287901,frog\n287902,frog\n287903,bird\n287904,horse\n287905,frog\n287906,deer\n287907,truck\n287908,airplane\n287909,automobile\n287910,truck\n287911,dog\n287912,dog\n287913,bird\n287914,deer\n287915,cat\n287916,airplane\n287917,cat\n287918,horse\n287919,frog\n287920,truck\n287921,airplane\n287922,ship\n287923,dog\n287924,deer\n287925,truck\n287926,deer\n287927,dog\n287928,airplane\n287929,deer\n287930,cat\n287931,cat\n287932,truck\n287933,deer\n287934,frog\n287935,dog\n287936,automobile\n287937,bird\n287938,deer\n287939,horse\n287940,truck\n287941,dog\n287942,ship\n287943,dog\n287944,cat\n287945,deer\n287946,bird\n287947,frog\n287948,horse\n287949,ship\n287950,bird\n287951,airplane\n287952,deer\n287953,horse\n287954,cat\n287955,bird\n287956,horse\n287957,airplane\n287958,deer\n287959,truck\n287960,frog\n287961,ship\n287962,bird\n287963,cat\n287964,horse\n287965,frog\n287966,truck\n287967,truck\n287968,ship\n287969,dog\n287970,truck\n287971,cat\n287972,deer\n287973,frog\n287974,cat\n287975,dog\n287976,bird\n287977,bird\n287978,bird\n287979,truck\n287980,horse\n287981,bird\n287982,frog\n287983,airplane\n287984,truck\n287985,airplane\n287986,airplane\n287987,horse\n287988,frog\n287989,automobile\n287990,dog\n287991,cat\n287992,deer\n287993,bird\n287994,truck\n287995,frog\n287996,frog\n287997,frog\n287998,dog\n287999,truck\n288000,bird\n288001,cat\n288002,dog\n288003,dog\n288004,cat\n288005,cat\n288006,frog\n288007,cat\n288008,airplane\n288009,automobile\n288010,cat\n288011,truck\n288012,ship\n288013,dog\n288014,truck\n288015,horse\n288016,truck\n288017,deer\n288018,deer\n288019,frog\n288020,horse\n288021,frog\n288022,frog\n288023,dog\n288024,airplane\n288025,ship\n288026,truck\n288027,truck\n288028,dog\n288029,cat\n288030,cat\n288031,ship\n288032,truck\n288033,truck\n288034,airplane\n288035,cat\n288036,bird\n288037,airplane\n288038,bird\n288039,bird\n288040,horse\n288041,bird\n288042,cat\n288043,truck\n288044,cat\n288045,horse\n288046,automobile\n288047,truck\n288048,cat\n288049,cat\n288050,horse\n288051,bird\n288052,deer\n288053,truck\n288054,horse\n288055,deer\n288056,deer\n288057,deer\n288058,deer\n288059,frog\n288060,truck\n288061,bird\n288062,cat\n288063,frog\n288064,cat\n288065,frog\n288066,ship\n288067,cat\n288068,airplane\n288069,ship\n288070,deer\n288071,bird\n288072,automobile\n288073,frog\n288074,automobile\n288075,automobile\n288076,dog\n288077,frog\n288078,deer\n288079,bird\n288080,dog\n288081,dog\n288082,truck\n288083,truck\n288084,deer\n288085,dog\n288086,automobile\n288087,frog\n288088,horse\n288089,truck\n288090,deer\n288091,truck\n288092,deer\n288093,truck\n288094,dog\n288095,airplane\n288096,ship\n288097,ship\n288098,dog\n288099,deer\n288100,horse\n288101,truck\n288102,airplane\n288103,ship\n288104,automobile\n288105,airplane\n288106,cat\n288107,dog\n288108,horse\n288109,deer\n288110,frog\n288111,frog\n288112,horse\n288113,ship\n288114,truck\n288115,frog\n288116,horse\n288117,ship\n288118,bird\n288119,ship\n288120,horse\n288121,frog\n288122,automobile\n288123,airplane\n288124,horse\n288125,horse\n288126,dog\n288127,cat\n288128,dog\n288129,ship\n288130,dog\n288131,dog\n288132,frog\n288133,frog\n288134,cat\n288135,automobile\n288136,horse\n288137,dog\n288138,automobile\n288139,bird\n288140,deer\n288141,horse\n288142,deer\n288143,truck\n288144,cat\n288145,cat\n288146,horse\n288147,cat\n288148,ship\n288149,truck\n288150,airplane\n288151,cat\n288152,automobile\n288153,ship\n288154,horse\n288155,ship\n288156,bird\n288157,ship\n288158,deer\n288159,dog\n288160,horse\n288161,ship\n288162,ship\n288163,dog\n288164,deer\n288165,airplane\n288166,deer\n288167,bird\n288168,truck\n288169,deer\n288170,horse\n288171,truck\n288172,horse\n288173,ship\n288174,dog\n288175,automobile\n288176,frog\n288177,frog\n288178,truck\n288179,deer\n288180,ship\n288181,deer\n288182,dog\n288183,bird\n288184,automobile\n288185,horse\n288186,automobile\n288187,airplane\n288188,cat\n288189,frog\n288190,deer\n288191,cat\n288192,deer\n288193,airplane\n288194,cat\n288195,cat\n288196,frog\n288197,dog\n288198,truck\n288199,cat\n288200,deer\n288201,truck\n288202,dog\n288203,bird\n288204,deer\n288205,dog\n288206,frog\n288207,deer\n288208,dog\n288209,ship\n288210,cat\n288211,cat\n288212,cat\n288213,horse\n288214,dog\n288215,truck\n288216,deer\n288217,bird\n288218,dog\n288219,ship\n288220,airplane\n288221,bird\n288222,bird\n288223,horse\n288224,truck\n288225,bird\n288226,deer\n288227,airplane\n288228,cat\n288229,truck\n288230,frog\n288231,cat\n288232,airplane\n288233,truck\n288234,dog\n288235,truck\n288236,automobile\n288237,dog\n288238,dog\n288239,dog\n288240,ship\n288241,ship\n288242,frog\n288243,automobile\n288244,bird\n288245,cat\n288246,horse\n288247,truck\n288248,frog\n288249,bird\n288250,automobile\n288251,cat\n288252,deer\n288253,deer\n288254,cat\n288255,cat\n288256,automobile\n288257,truck\n288258,horse\n288259,horse\n288260,deer\n288261,automobile\n288262,frog\n288263,horse\n288264,automobile\n288265,ship\n288266,cat\n288267,cat\n288268,ship\n288269,cat\n288270,frog\n288271,truck\n288272,ship\n288273,automobile\n288274,deer\n288275,dog\n288276,truck\n288277,airplane\n288278,bird\n288279,ship\n288280,frog\n288281,cat\n288282,frog\n288283,frog\n288284,truck\n288285,dog\n288286,airplane\n288287,bird\n288288,airplane\n288289,horse\n288290,automobile\n288291,frog\n288292,deer\n288293,frog\n288294,horse\n288295,airplane\n288296,frog\n288297,frog\n288298,horse\n288299,horse\n288300,truck\n288301,frog\n288302,deer\n288303,truck\n288304,cat\n288305,cat\n288306,dog\n288307,truck\n288308,horse\n288309,cat\n288310,truck\n288311,automobile\n288312,deer\n288313,truck\n288314,airplane\n288315,bird\n288316,bird\n288317,automobile\n288318,deer\n288319,dog\n288320,ship\n288321,automobile\n288322,cat\n288323,frog\n288324,bird\n288325,frog\n288326,ship\n288327,dog\n288328,ship\n288329,dog\n288330,cat\n288331,ship\n288332,airplane\n288333,frog\n288334,horse\n288335,truck\n288336,cat\n288337,bird\n288338,airplane\n288339,deer\n288340,dog\n288341,dog\n288342,deer\n288343,ship\n288344,dog\n288345,deer\n288346,bird\n288347,dog\n288348,automobile\n288349,airplane\n288350,frog\n288351,bird\n288352,horse\n288353,airplane\n288354,deer\n288355,cat\n288356,deer\n288357,bird\n288358,truck\n288359,bird\n288360,airplane\n288361,truck\n288362,airplane\n288363,dog\n288364,cat\n288365,cat\n288366,bird\n288367,cat\n288368,cat\n288369,cat\n288370,bird\n288371,automobile\n288372,bird\n288373,frog\n288374,horse\n288375,deer\n288376,truck\n288377,horse\n288378,deer\n288379,cat\n288380,automobile\n288381,automobile\n288382,automobile\n288383,dog\n288384,cat\n288385,deer\n288386,deer\n288387,cat\n288388,bird\n288389,dog\n288390,bird\n288391,dog\n288392,cat\n288393,airplane\n288394,deer\n288395,truck\n288396,frog\n288397,deer\n288398,cat\n288399,cat\n288400,deer\n288401,airplane\n288402,cat\n288403,horse\n288404,dog\n288405,deer\n288406,truck\n288407,dog\n288408,truck\n288409,bird\n288410,frog\n288411,bird\n288412,deer\n288413,frog\n288414,horse\n288415,bird\n288416,bird\n288417,ship\n288418,horse\n288419,bird\n288420,bird\n288421,horse\n288422,dog\n288423,frog\n288424,dog\n288425,airplane\n288426,frog\n288427,cat\n288428,cat\n288429,frog\n288430,deer\n288431,deer\n288432,bird\n288433,dog\n288434,ship\n288435,deer\n288436,deer\n288437,airplane\n288438,horse\n288439,deer\n288440,ship\n288441,bird\n288442,deer\n288443,automobile\n288444,cat\n288445,dog\n288446,ship\n288447,dog\n288448,deer\n288449,deer\n288450,ship\n288451,bird\n288452,deer\n288453,dog\n288454,airplane\n288455,cat\n288456,cat\n288457,truck\n288458,airplane\n288459,deer\n288460,cat\n288461,frog\n288462,truck\n288463,dog\n288464,frog\n288465,bird\n288466,frog\n288467,cat\n288468,ship\n288469,cat\n288470,deer\n288471,deer\n288472,cat\n288473,truck\n288474,truck\n288475,bird\n288476,airplane\n288477,horse\n288478,horse\n288479,truck\n288480,bird\n288481,dog\n288482,dog\n288483,frog\n288484,frog\n288485,ship\n288486,horse\n288487,frog\n288488,deer\n288489,bird\n288490,bird\n288491,frog\n288492,deer\n288493,frog\n288494,truck\n288495,deer\n288496,cat\n288497,truck\n288498,bird\n288499,frog\n288500,horse\n288501,ship\n288502,deer\n288503,automobile\n288504,deer\n288505,truck\n288506,bird\n288507,frog\n288508,frog\n288509,dog\n288510,dog\n288511,frog\n288512,deer\n288513,ship\n288514,airplane\n288515,dog\n288516,deer\n288517,cat\n288518,deer\n288519,deer\n288520,airplane\n288521,cat\n288522,frog\n288523,airplane\n288524,bird\n288525,ship\n288526,deer\n288527,deer\n288528,cat\n288529,horse\n288530,cat\n288531,bird\n288532,cat\n288533,automobile\n288534,deer\n288535,horse\n288536,automobile\n288537,ship\n288538,bird\n288539,truck\n288540,dog\n288541,frog\n288542,automobile\n288543,cat\n288544,cat\n288545,bird\n288546,deer\n288547,automobile\n288548,bird\n288549,airplane\n288550,deer\n288551,truck\n288552,frog\n288553,frog\n288554,deer\n288555,truck\n288556,deer\n288557,dog\n288558,deer\n288559,bird\n288560,truck\n288561,ship\n288562,horse\n288563,automobile\n288564,cat\n288565,airplane\n288566,cat\n288567,dog\n288568,automobile\n288569,ship\n288570,frog\n288571,truck\n288572,airplane\n288573,deer\n288574,frog\n288575,ship\n288576,bird\n288577,bird\n288578,dog\n288579,frog\n288580,automobile\n288581,truck\n288582,frog\n288583,deer\n288584,deer\n288585,horse\n288586,bird\n288587,frog\n288588,automobile\n288589,cat\n288590,dog\n288591,deer\n288592,truck\n288593,horse\n288594,frog\n288595,deer\n288596,bird\n288597,horse\n288598,automobile\n288599,frog\n288600,truck\n288601,frog\n288602,cat\n288603,frog\n288604,airplane\n288605,truck\n288606,truck\n288607,cat\n288608,cat\n288609,truck\n288610,dog\n288611,automobile\n288612,cat\n288613,automobile\n288614,deer\n288615,dog\n288616,automobile\n288617,horse\n288618,frog\n288619,cat\n288620,frog\n288621,truck\n288622,truck\n288623,frog\n288624,horse\n288625,deer\n288626,frog\n288627,ship\n288628,truck\n288629,automobile\n288630,bird\n288631,ship\n288632,ship\n288633,ship\n288634,dog\n288635,ship\n288636,bird\n288637,cat\n288638,deer\n288639,truck\n288640,truck\n288641,horse\n288642,bird\n288643,frog\n288644,deer\n288645,deer\n288646,cat\n288647,ship\n288648,ship\n288649,cat\n288650,bird\n288651,cat\n288652,cat\n288653,automobile\n288654,frog\n288655,ship\n288656,bird\n288657,dog\n288658,horse\n288659,truck\n288660,frog\n288661,cat\n288662,bird\n288663,ship\n288664,frog\n288665,airplane\n288666,truck\n288667,frog\n288668,cat\n288669,bird\n288670,cat\n288671,bird\n288672,cat\n288673,automobile\n288674,bird\n288675,horse\n288676,truck\n288677,bird\n288678,bird\n288679,automobile\n288680,truck\n288681,deer\n288682,deer\n288683,frog\n288684,airplane\n288685,frog\n288686,truck\n288687,dog\n288688,cat\n288689,airplane\n288690,truck\n288691,truck\n288692,ship\n288693,airplane\n288694,truck\n288695,bird\n288696,horse\n288697,cat\n288698,truck\n288699,deer\n288700,automobile\n288701,deer\n288702,horse\n288703,deer\n288704,dog\n288705,ship\n288706,ship\n288707,deer\n288708,horse\n288709,horse\n288710,airplane\n288711,cat\n288712,deer\n288713,cat\n288714,airplane\n288715,airplane\n288716,airplane\n288717,cat\n288718,ship\n288719,airplane\n288720,frog\n288721,airplane\n288722,cat\n288723,truck\n288724,automobile\n288725,automobile\n288726,bird\n288727,truck\n288728,bird\n288729,automobile\n288730,horse\n288731,frog\n288732,deer\n288733,deer\n288734,horse\n288735,bird\n288736,ship\n288737,frog\n288738,ship\n288739,airplane\n288740,dog\n288741,deer\n288742,frog\n288743,truck\n288744,bird\n288745,frog\n288746,cat\n288747,bird\n288748,horse\n288749,deer\n288750,cat\n288751,dog\n288752,bird\n288753,cat\n288754,automobile\n288755,horse\n288756,bird\n288757,airplane\n288758,frog\n288759,bird\n288760,frog\n288761,airplane\n288762,horse\n288763,dog\n288764,automobile\n288765,airplane\n288766,deer\n288767,deer\n288768,automobile\n288769,deer\n288770,deer\n288771,truck\n288772,horse\n288773,airplane\n288774,truck\n288775,frog\n288776,dog\n288777,deer\n288778,deer\n288779,deer\n288780,cat\n288781,deer\n288782,deer\n288783,deer\n288784,cat\n288785,automobile\n288786,bird\n288787,deer\n288788,frog\n288789,dog\n288790,airplane\n288791,cat\n288792,horse\n288793,cat\n288794,airplane\n288795,automobile\n288796,airplane\n288797,frog\n288798,deer\n288799,cat\n288800,frog\n288801,dog\n288802,horse\n288803,frog\n288804,deer\n288805,cat\n288806,dog\n288807,frog\n288808,cat\n288809,airplane\n288810,truck\n288811,horse\n288812,airplane\n288813,automobile\n288814,dog\n288815,truck\n288816,frog\n288817,horse\n288818,frog\n288819,cat\n288820,ship\n288821,bird\n288822,bird\n288823,airplane\n288824,dog\n288825,bird\n288826,airplane\n288827,cat\n288828,horse\n288829,airplane\n288830,automobile\n288831,dog\n288832,bird\n288833,bird\n288834,bird\n288835,deer\n288836,frog\n288837,deer\n288838,ship\n288839,frog\n288840,ship\n288841,deer\n288842,bird\n288843,frog\n288844,deer\n288845,bird\n288846,automobile\n288847,truck\n288848,frog\n288849,dog\n288850,ship\n288851,deer\n288852,automobile\n288853,deer\n288854,frog\n288855,cat\n288856,deer\n288857,airplane\n288858,bird\n288859,bird\n288860,cat\n288861,horse\n288862,airplane\n288863,airplane\n288864,frog\n288865,bird\n288866,deer\n288867,truck\n288868,automobile\n288869,horse\n288870,truck\n288871,ship\n288872,dog\n288873,cat\n288874,bird\n288875,airplane\n288876,horse\n288877,truck\n288878,frog\n288879,deer\n288880,ship\n288881,ship\n288882,dog\n288883,airplane\n288884,horse\n288885,truck\n288886,deer\n288887,airplane\n288888,frog\n288889,airplane\n288890,horse\n288891,airplane\n288892,truck\n288893,frog\n288894,frog\n288895,dog\n288896,cat\n288897,automobile\n288898,dog\n288899,deer\n288900,airplane\n288901,horse\n288902,deer\n288903,frog\n288904,deer\n288905,ship\n288906,dog\n288907,deer\n288908,frog\n288909,cat\n288910,horse\n288911,deer\n288912,deer\n288913,ship\n288914,dog\n288915,bird\n288916,horse\n288917,horse\n288918,deer\n288919,airplane\n288920,deer\n288921,deer\n288922,cat\n288923,bird\n288924,cat\n288925,frog\n288926,airplane\n288927,deer\n288928,frog\n288929,horse\n288930,dog\n288931,cat\n288932,horse\n288933,frog\n288934,automobile\n288935,bird\n288936,deer\n288937,deer\n288938,frog\n288939,horse\n288940,cat\n288941,dog\n288942,airplane\n288943,ship\n288944,frog\n288945,frog\n288946,ship\n288947,deer\n288948,frog\n288949,bird\n288950,dog\n288951,bird\n288952,deer\n288953,truck\n288954,bird\n288955,deer\n288956,automobile\n288957,truck\n288958,deer\n288959,automobile\n288960,truck\n288961,horse\n288962,cat\n288963,dog\n288964,cat\n288965,truck\n288966,cat\n288967,deer\n288968,automobile\n288969,ship\n288970,horse\n288971,ship\n288972,deer\n288973,airplane\n288974,dog\n288975,cat\n288976,airplane\n288977,cat\n288978,airplane\n288979,dog\n288980,deer\n288981,horse\n288982,ship\n288983,ship\n288984,ship\n288985,ship\n288986,frog\n288987,automobile\n288988,cat\n288989,airplane\n288990,bird\n288991,airplane\n288992,dog\n288993,horse\n288994,bird\n288995,frog\n288996,ship\n288997,automobile\n288998,deer\n288999,dog\n289000,cat\n289001,airplane\n289002,truck\n289003,bird\n289004,dog\n289005,truck\n289006,deer\n289007,cat\n289008,automobile\n289009,frog\n289010,automobile\n289011,airplane\n289012,cat\n289013,deer\n289014,cat\n289015,bird\n289016,cat\n289017,deer\n289018,automobile\n289019,dog\n289020,deer\n289021,cat\n289022,deer\n289023,cat\n289024,truck\n289025,deer\n289026,truck\n289027,automobile\n289028,bird\n289029,cat\n289030,deer\n289031,automobile\n289032,cat\n289033,deer\n289034,dog\n289035,ship\n289036,cat\n289037,deer\n289038,cat\n289039,horse\n289040,frog\n289041,truck\n289042,deer\n289043,bird\n289044,airplane\n289045,truck\n289046,truck\n289047,frog\n289048,cat\n289049,truck\n289050,automobile\n289051,truck\n289052,dog\n289053,automobile\n289054,frog\n289055,dog\n289056,ship\n289057,frog\n289058,truck\n289059,cat\n289060,deer\n289061,truck\n289062,horse\n289063,airplane\n289064,truck\n289065,ship\n289066,truck\n289067,ship\n289068,truck\n289069,ship\n289070,deer\n289071,bird\n289072,cat\n289073,deer\n289074,deer\n289075,airplane\n289076,deer\n289077,frog\n289078,ship\n289079,dog\n289080,horse\n289081,cat\n289082,bird\n289083,deer\n289084,truck\n289085,deer\n289086,truck\n289087,horse\n289088,frog\n289089,frog\n289090,dog\n289091,ship\n289092,automobile\n289093,automobile\n289094,deer\n289095,airplane\n289096,horse\n289097,frog\n289098,cat\n289099,airplane\n289100,horse\n289101,dog\n289102,automobile\n289103,frog\n289104,horse\n289105,airplane\n289106,airplane\n289107,deer\n289108,dog\n289109,deer\n289110,automobile\n289111,dog\n289112,frog\n289113,truck\n289114,automobile\n289115,horse\n289116,deer\n289117,cat\n289118,deer\n289119,automobile\n289120,deer\n289121,truck\n289122,frog\n289123,automobile\n289124,airplane\n289125,frog\n289126,frog\n289127,dog\n289128,deer\n289129,truck\n289130,truck\n289131,dog\n289132,deer\n289133,frog\n289134,bird\n289135,dog\n289136,truck\n289137,dog\n289138,airplane\n289139,deer\n289140,cat\n289141,horse\n289142,frog\n289143,frog\n289144,automobile\n289145,deer\n289146,ship\n289147,dog\n289148,airplane\n289149,truck\n289150,deer\n289151,dog\n289152,deer\n289153,airplane\n289154,airplane\n289155,cat\n289156,frog\n289157,cat\n289158,dog\n289159,truck\n289160,dog\n289161,ship\n289162,cat\n289163,cat\n289164,cat\n289165,cat\n289166,automobile\n289167,ship\n289168,deer\n289169,dog\n289170,deer\n289171,truck\n289172,ship\n289173,frog\n289174,horse\n289175,automobile\n289176,frog\n289177,cat\n289178,bird\n289179,airplane\n289180,truck\n289181,airplane\n289182,horse\n289183,truck\n289184,dog\n289185,deer\n289186,automobile\n289187,truck\n289188,cat\n289189,truck\n289190,ship\n289191,airplane\n289192,cat\n289193,frog\n289194,dog\n289195,automobile\n289196,dog\n289197,horse\n289198,automobile\n289199,airplane\n289200,dog\n289201,bird\n289202,dog\n289203,cat\n289204,bird\n289205,horse\n289206,airplane\n289207,frog\n289208,ship\n289209,airplane\n289210,airplane\n289211,frog\n289212,dog\n289213,cat\n289214,cat\n289215,horse\n289216,bird\n289217,cat\n289218,deer\n289219,airplane\n289220,deer\n289221,cat\n289222,cat\n289223,deer\n289224,dog\n289225,deer\n289226,ship\n289227,automobile\n289228,horse\n289229,ship\n289230,horse\n289231,truck\n289232,cat\n289233,airplane\n289234,dog\n289235,truck\n289236,frog\n289237,cat\n289238,frog\n289239,ship\n289240,dog\n289241,cat\n289242,bird\n289243,ship\n289244,dog\n289245,cat\n289246,airplane\n289247,frog\n289248,truck\n289249,dog\n289250,cat\n289251,cat\n289252,cat\n289253,truck\n289254,airplane\n289255,truck\n289256,cat\n289257,horse\n289258,automobile\n289259,dog\n289260,dog\n289261,cat\n289262,automobile\n289263,horse\n289264,frog\n289265,deer\n289266,truck\n289267,horse\n289268,ship\n289269,frog\n289270,deer\n289271,frog\n289272,airplane\n289273,cat\n289274,deer\n289275,bird\n289276,cat\n289277,cat\n289278,cat\n289279,deer\n289280,automobile\n289281,deer\n289282,deer\n289283,deer\n289284,truck\n289285,automobile\n289286,bird\n289287,cat\n289288,truck\n289289,cat\n289290,dog\n289291,bird\n289292,frog\n289293,truck\n289294,airplane\n289295,truck\n289296,automobile\n289297,bird\n289298,truck\n289299,cat\n289300,dog\n289301,dog\n289302,ship\n289303,deer\n289304,horse\n289305,bird\n289306,truck\n289307,truck\n289308,ship\n289309,cat\n289310,cat\n289311,deer\n289312,deer\n289313,dog\n289314,airplane\n289315,horse\n289316,cat\n289317,bird\n289318,deer\n289319,cat\n289320,deer\n289321,bird\n289322,airplane\n289323,bird\n289324,automobile\n289325,ship\n289326,bird\n289327,airplane\n289328,cat\n289329,ship\n289330,airplane\n289331,deer\n289332,cat\n289333,dog\n289334,automobile\n289335,deer\n289336,frog\n289337,cat\n289338,frog\n289339,ship\n289340,deer\n289341,dog\n289342,airplane\n289343,cat\n289344,horse\n289345,frog\n289346,deer\n289347,frog\n289348,cat\n289349,deer\n289350,frog\n289351,automobile\n289352,frog\n289353,frog\n289354,airplane\n289355,airplane\n289356,horse\n289357,dog\n289358,horse\n289359,automobile\n289360,horse\n289361,ship\n289362,horse\n289363,horse\n289364,airplane\n289365,dog\n289366,cat\n289367,frog\n289368,deer\n289369,horse\n289370,horse\n289371,dog\n289372,airplane\n289373,deer\n289374,deer\n289375,deer\n289376,airplane\n289377,airplane\n289378,deer\n289379,deer\n289380,ship\n289381,cat\n289382,truck\n289383,ship\n289384,horse\n289385,dog\n289386,automobile\n289387,ship\n289388,airplane\n289389,cat\n289390,cat\n289391,automobile\n289392,ship\n289393,bird\n289394,deer\n289395,airplane\n289396,bird\n289397,horse\n289398,dog\n289399,cat\n289400,horse\n289401,truck\n289402,dog\n289403,ship\n289404,automobile\n289405,deer\n289406,airplane\n289407,deer\n289408,frog\n289409,horse\n289410,airplane\n289411,automobile\n289412,frog\n289413,cat\n289414,truck\n289415,truck\n289416,frog\n289417,dog\n289418,automobile\n289419,cat\n289420,cat\n289421,airplane\n289422,ship\n289423,truck\n289424,dog\n289425,dog\n289426,bird\n289427,airplane\n289428,cat\n289429,cat\n289430,automobile\n289431,deer\n289432,frog\n289433,ship\n289434,truck\n289435,deer\n289436,truck\n289437,truck\n289438,airplane\n289439,frog\n289440,cat\n289441,deer\n289442,frog\n289443,frog\n289444,bird\n289445,airplane\n289446,cat\n289447,dog\n289448,truck\n289449,cat\n289450,ship\n289451,horse\n289452,bird\n289453,deer\n289454,deer\n289455,cat\n289456,deer\n289457,deer\n289458,deer\n289459,truck\n289460,bird\n289461,airplane\n289462,deer\n289463,frog\n289464,horse\n289465,frog\n289466,deer\n289467,airplane\n289468,dog\n289469,ship\n289470,truck\n289471,automobile\n289472,deer\n289473,airplane\n289474,automobile\n289475,cat\n289476,deer\n289477,bird\n289478,horse\n289479,deer\n289480,airplane\n289481,airplane\n289482,truck\n289483,frog\n289484,deer\n289485,airplane\n289486,deer\n289487,ship\n289488,airplane\n289489,ship\n289490,dog\n289491,dog\n289492,frog\n289493,automobile\n289494,automobile\n289495,dog\n289496,automobile\n289497,truck\n289498,dog\n289499,dog\n289500,automobile\n289501,airplane\n289502,deer\n289503,deer\n289504,deer\n289505,frog\n289506,frog\n289507,truck\n289508,frog\n289509,automobile\n289510,truck\n289511,cat\n289512,airplane\n289513,horse\n289514,airplane\n289515,cat\n289516,dog\n289517,automobile\n289518,airplane\n289519,airplane\n289520,cat\n289521,deer\n289522,bird\n289523,airplane\n289524,bird\n289525,bird\n289526,horse\n289527,airplane\n289528,automobile\n289529,ship\n289530,dog\n289531,deer\n289532,frog\n289533,deer\n289534,horse\n289535,automobile\n289536,automobile\n289537,automobile\n289538,bird\n289539,dog\n289540,frog\n289541,dog\n289542,dog\n289543,cat\n289544,horse\n289545,bird\n289546,truck\n289547,deer\n289548,cat\n289549,horse\n289550,cat\n289551,airplane\n289552,cat\n289553,cat\n289554,dog\n289555,airplane\n289556,horse\n289557,deer\n289558,deer\n289559,cat\n289560,cat\n289561,bird\n289562,airplane\n289563,dog\n289564,dog\n289565,airplane\n289566,frog\n289567,horse\n289568,cat\n289569,cat\n289570,truck\n289571,deer\n289572,automobile\n289573,dog\n289574,dog\n289575,cat\n289576,automobile\n289577,cat\n289578,frog\n289579,bird\n289580,cat\n289581,frog\n289582,horse\n289583,automobile\n289584,deer\n289585,horse\n289586,truck\n289587,dog\n289588,horse\n289589,frog\n289590,ship\n289591,automobile\n289592,cat\n289593,bird\n289594,deer\n289595,deer\n289596,dog\n289597,deer\n289598,deer\n289599,bird\n289600,automobile\n289601,cat\n289602,cat\n289603,truck\n289604,cat\n289605,deer\n289606,ship\n289607,dog\n289608,ship\n289609,dog\n289610,bird\n289611,dog\n289612,truck\n289613,truck\n289614,ship\n289615,deer\n289616,frog\n289617,deer\n289618,horse\n289619,ship\n289620,truck\n289621,deer\n289622,deer\n289623,frog\n289624,airplane\n289625,dog\n289626,frog\n289627,deer\n289628,ship\n289629,deer\n289630,dog\n289631,frog\n289632,frog\n289633,airplane\n289634,truck\n289635,deer\n289636,truck\n289637,bird\n289638,horse\n289639,cat\n289640,frog\n289641,deer\n289642,automobile\n289643,cat\n289644,dog\n289645,deer\n289646,ship\n289647,frog\n289648,automobile\n289649,cat\n289650,cat\n289651,frog\n289652,cat\n289653,bird\n289654,deer\n289655,ship\n289656,dog\n289657,airplane\n289658,airplane\n289659,dog\n289660,horse\n289661,dog\n289662,truck\n289663,bird\n289664,bird\n289665,truck\n289666,bird\n289667,frog\n289668,bird\n289669,automobile\n289670,frog\n289671,bird\n289672,horse\n289673,truck\n289674,cat\n289675,truck\n289676,automobile\n289677,truck\n289678,frog\n289679,frog\n289680,horse\n289681,truck\n289682,horse\n289683,cat\n289684,horse\n289685,cat\n289686,dog\n289687,horse\n289688,frog\n289689,bird\n289690,cat\n289691,dog\n289692,airplane\n289693,dog\n289694,airplane\n289695,cat\n289696,cat\n289697,ship\n289698,deer\n289699,deer\n289700,bird\n289701,ship\n289702,frog\n289703,frog\n289704,ship\n289705,ship\n289706,automobile\n289707,truck\n289708,horse\n289709,dog\n289710,cat\n289711,cat\n289712,horse\n289713,bird\n289714,dog\n289715,deer\n289716,ship\n289717,ship\n289718,truck\n289719,frog\n289720,bird\n289721,airplane\n289722,cat\n289723,ship\n289724,truck\n289725,horse\n289726,truck\n289727,truck\n289728,cat\n289729,frog\n289730,ship\n289731,deer\n289732,deer\n289733,dog\n289734,truck\n289735,bird\n289736,dog\n289737,truck\n289738,deer\n289739,cat\n289740,truck\n289741,frog\n289742,bird\n289743,dog\n289744,horse\n289745,truck\n289746,frog\n289747,truck\n289748,horse\n289749,truck\n289750,dog\n289751,airplane\n289752,cat\n289753,automobile\n289754,cat\n289755,truck\n289756,dog\n289757,bird\n289758,dog\n289759,dog\n289760,frog\n289761,frog\n289762,ship\n289763,truck\n289764,frog\n289765,horse\n289766,airplane\n289767,deer\n289768,truck\n289769,bird\n289770,bird\n289771,airplane\n289772,ship\n289773,truck\n289774,dog\n289775,deer\n289776,ship\n289777,dog\n289778,cat\n289779,dog\n289780,bird\n289781,deer\n289782,cat\n289783,horse\n289784,airplane\n289785,automobile\n289786,dog\n289787,dog\n289788,dog\n289789,cat\n289790,cat\n289791,deer\n289792,automobile\n289793,cat\n289794,ship\n289795,frog\n289796,dog\n289797,truck\n289798,horse\n289799,cat\n289800,truck\n289801,horse\n289802,dog\n289803,bird\n289804,cat\n289805,truck\n289806,frog\n289807,cat\n289808,airplane\n289809,automobile\n289810,deer\n289811,ship\n289812,cat\n289813,dog\n289814,bird\n289815,ship\n289816,cat\n289817,truck\n289818,truck\n289819,deer\n289820,cat\n289821,deer\n289822,deer\n289823,airplane\n289824,truck\n289825,deer\n289826,bird\n289827,bird\n289828,dog\n289829,bird\n289830,deer\n289831,frog\n289832,truck\n289833,automobile\n289834,truck\n289835,cat\n289836,automobile\n289837,airplane\n289838,ship\n289839,bird\n289840,truck\n289841,horse\n289842,horse\n289843,airplane\n289844,airplane\n289845,airplane\n289846,horse\n289847,cat\n289848,deer\n289849,bird\n289850,bird\n289851,deer\n289852,automobile\n289853,bird\n289854,deer\n289855,bird\n289856,truck\n289857,horse\n289858,truck\n289859,airplane\n289860,automobile\n289861,dog\n289862,cat\n289863,dog\n289864,truck\n289865,dog\n289866,dog\n289867,horse\n289868,horse\n289869,deer\n289870,dog\n289871,cat\n289872,horse\n289873,ship\n289874,deer\n289875,deer\n289876,horse\n289877,horse\n289878,truck\n289879,dog\n289880,horse\n289881,cat\n289882,automobile\n289883,frog\n289884,horse\n289885,deer\n289886,airplane\n289887,cat\n289888,truck\n289889,dog\n289890,frog\n289891,cat\n289892,horse\n289893,bird\n289894,deer\n289895,automobile\n289896,cat\n289897,horse\n289898,deer\n289899,horse\n289900,truck\n289901,bird\n289902,ship\n289903,cat\n289904,dog\n289905,automobile\n289906,dog\n289907,airplane\n289908,dog\n289909,bird\n289910,deer\n289911,airplane\n289912,ship\n289913,cat\n289914,ship\n289915,bird\n289916,deer\n289917,dog\n289918,frog\n289919,ship\n289920,horse\n289921,bird\n289922,ship\n289923,ship\n289924,bird\n289925,truck\n289926,automobile\n289927,horse\n289928,cat\n289929,dog\n289930,airplane\n289931,automobile\n289932,airplane\n289933,bird\n289934,dog\n289935,bird\n289936,cat\n289937,ship\n289938,cat\n289939,dog\n289940,truck\n289941,airplane\n289942,dog\n289943,airplane\n289944,frog\n289945,truck\n289946,horse\n289947,horse\n289948,deer\n289949,frog\n289950,bird\n289951,deer\n289952,ship\n289953,deer\n289954,automobile\n289955,truck\n289956,truck\n289957,dog\n289958,deer\n289959,truck\n289960,dog\n289961,dog\n289962,dog\n289963,dog\n289964,horse\n289965,airplane\n289966,automobile\n289967,automobile\n289968,ship\n289969,deer\n289970,dog\n289971,ship\n289972,cat\n289973,dog\n289974,cat\n289975,ship\n289976,horse\n289977,truck\n289978,deer\n289979,truck\n289980,deer\n289981,dog\n289982,dog\n289983,bird\n289984,automobile\n289985,dog\n289986,airplane\n289987,deer\n289988,dog\n289989,automobile\n289990,cat\n289991,cat\n289992,airplane\n289993,cat\n289994,truck\n289995,deer\n289996,deer\n289997,truck\n289998,deer\n289999,cat\n290000,truck\n290001,dog\n290002,dog\n290003,deer\n290004,truck\n290005,automobile\n290006,cat\n290007,dog\n290008,deer\n290009,bird\n290010,bird\n290011,frog\n290012,deer\n290013,cat\n290014,automobile\n290015,deer\n290016,truck\n290017,deer\n290018,cat\n290019,cat\n290020,cat\n290021,ship\n290022,cat\n290023,deer\n290024,ship\n290025,frog\n290026,airplane\n290027,frog\n290028,airplane\n290029,deer\n290030,horse\n290031,dog\n290032,deer\n290033,deer\n290034,truck\n290035,horse\n290036,frog\n290037,cat\n290038,dog\n290039,automobile\n290040,automobile\n290041,deer\n290042,frog\n290043,horse\n290044,ship\n290045,truck\n290046,airplane\n290047,ship\n290048,bird\n290049,dog\n290050,deer\n290051,cat\n290052,cat\n290053,truck\n290054,horse\n290055,horse\n290056,frog\n290057,bird\n290058,deer\n290059,ship\n290060,deer\n290061,deer\n290062,airplane\n290063,automobile\n290064,deer\n290065,horse\n290066,dog\n290067,frog\n290068,ship\n290069,airplane\n290070,bird\n290071,cat\n290072,deer\n290073,airplane\n290074,airplane\n290075,frog\n290076,deer\n290077,frog\n290078,deer\n290079,bird\n290080,truck\n290081,frog\n290082,bird\n290083,cat\n290084,deer\n290085,ship\n290086,bird\n290087,frog\n290088,bird\n290089,cat\n290090,cat\n290091,bird\n290092,horse\n290093,dog\n290094,bird\n290095,bird\n290096,automobile\n290097,dog\n290098,ship\n290099,ship\n290100,frog\n290101,ship\n290102,truck\n290103,airplane\n290104,cat\n290105,deer\n290106,dog\n290107,ship\n290108,truck\n290109,horse\n290110,deer\n290111,cat\n290112,dog\n290113,bird\n290114,cat\n290115,dog\n290116,horse\n290117,horse\n290118,bird\n290119,deer\n290120,deer\n290121,airplane\n290122,cat\n290123,frog\n290124,cat\n290125,deer\n290126,dog\n290127,ship\n290128,airplane\n290129,horse\n290130,cat\n290131,dog\n290132,deer\n290133,airplane\n290134,ship\n290135,horse\n290136,deer\n290137,frog\n290138,frog\n290139,cat\n290140,ship\n290141,cat\n290142,bird\n290143,truck\n290144,frog\n290145,horse\n290146,horse\n290147,airplane\n290148,automobile\n290149,frog\n290150,cat\n290151,deer\n290152,frog\n290153,bird\n290154,dog\n290155,cat\n290156,cat\n290157,airplane\n290158,deer\n290159,dog\n290160,deer\n290161,truck\n290162,airplane\n290163,frog\n290164,cat\n290165,ship\n290166,truck\n290167,cat\n290168,horse\n290169,cat\n290170,horse\n290171,deer\n290172,cat\n290173,ship\n290174,frog\n290175,cat\n290176,dog\n290177,dog\n290178,airplane\n290179,dog\n290180,deer\n290181,bird\n290182,truck\n290183,automobile\n290184,bird\n290185,ship\n290186,horse\n290187,dog\n290188,bird\n290189,cat\n290190,ship\n290191,horse\n290192,airplane\n290193,dog\n290194,frog\n290195,horse\n290196,airplane\n290197,airplane\n290198,deer\n290199,horse\n290200,airplane\n290201,bird\n290202,dog\n290203,frog\n290204,horse\n290205,airplane\n290206,cat\n290207,ship\n290208,bird\n290209,airplane\n290210,deer\n290211,ship\n290212,deer\n290213,airplane\n290214,deer\n290215,frog\n290216,deer\n290217,airplane\n290218,cat\n290219,frog\n290220,dog\n290221,horse\n290222,frog\n290223,cat\n290224,cat\n290225,bird\n290226,automobile\n290227,deer\n290228,deer\n290229,truck\n290230,automobile\n290231,airplane\n290232,bird\n290233,cat\n290234,truck\n290235,ship\n290236,dog\n290237,frog\n290238,cat\n290239,cat\n290240,bird\n290241,bird\n290242,bird\n290243,cat\n290244,cat\n290245,frog\n290246,frog\n290247,horse\n290248,dog\n290249,deer\n290250,bird\n290251,bird\n290252,dog\n290253,truck\n290254,ship\n290255,cat\n290256,horse\n290257,airplane\n290258,airplane\n290259,dog\n290260,airplane\n290261,frog\n290262,cat\n290263,horse\n290264,dog\n290265,bird\n290266,cat\n290267,dog\n290268,frog\n290269,airplane\n290270,airplane\n290271,bird\n290272,deer\n290273,ship\n290274,deer\n290275,deer\n290276,cat\n290277,horse\n290278,dog\n290279,cat\n290280,horse\n290281,ship\n290282,automobile\n290283,truck\n290284,ship\n290285,cat\n290286,frog\n290287,automobile\n290288,dog\n290289,truck\n290290,horse\n290291,bird\n290292,deer\n290293,deer\n290294,ship\n290295,cat\n290296,bird\n290297,ship\n290298,truck\n290299,bird\n290300,bird\n290301,deer\n290302,dog\n290303,ship\n290304,ship\n290305,cat\n290306,ship\n290307,bird\n290308,deer\n290309,frog\n290310,cat\n290311,horse\n290312,dog\n290313,cat\n290314,bird\n290315,deer\n290316,deer\n290317,frog\n290318,automobile\n290319,frog\n290320,frog\n290321,frog\n290322,dog\n290323,ship\n290324,ship\n290325,truck\n290326,automobile\n290327,horse\n290328,cat\n290329,cat\n290330,cat\n290331,cat\n290332,dog\n290333,ship\n290334,truck\n290335,truck\n290336,horse\n290337,cat\n290338,deer\n290339,bird\n290340,cat\n290341,frog\n290342,truck\n290343,dog\n290344,cat\n290345,deer\n290346,horse\n290347,truck\n290348,frog\n290349,deer\n290350,bird\n290351,ship\n290352,deer\n290353,horse\n290354,ship\n290355,cat\n290356,cat\n290357,airplane\n290358,bird\n290359,automobile\n290360,cat\n290361,automobile\n290362,dog\n290363,cat\n290364,cat\n290365,cat\n290366,horse\n290367,automobile\n290368,bird\n290369,ship\n290370,horse\n290371,dog\n290372,airplane\n290373,bird\n290374,bird\n290375,truck\n290376,dog\n290377,cat\n290378,dog\n290379,cat\n290380,deer\n290381,truck\n290382,dog\n290383,horse\n290384,airplane\n290385,dog\n290386,deer\n290387,deer\n290388,frog\n290389,bird\n290390,frog\n290391,cat\n290392,truck\n290393,deer\n290394,dog\n290395,truck\n290396,airplane\n290397,ship\n290398,bird\n290399,deer\n290400,cat\n290401,cat\n290402,truck\n290403,deer\n290404,horse\n290405,deer\n290406,ship\n290407,bird\n290408,airplane\n290409,dog\n290410,frog\n290411,frog\n290412,automobile\n290413,truck\n290414,bird\n290415,frog\n290416,truck\n290417,truck\n290418,ship\n290419,deer\n290420,dog\n290421,truck\n290422,truck\n290423,ship\n290424,airplane\n290425,horse\n290426,deer\n290427,bird\n290428,cat\n290429,deer\n290430,airplane\n290431,ship\n290432,airplane\n290433,frog\n290434,horse\n290435,horse\n290436,horse\n290437,frog\n290438,horse\n290439,deer\n290440,bird\n290441,automobile\n290442,automobile\n290443,bird\n290444,automobile\n290445,bird\n290446,frog\n290447,airplane\n290448,cat\n290449,bird\n290450,cat\n290451,bird\n290452,deer\n290453,airplane\n290454,airplane\n290455,deer\n290456,frog\n290457,automobile\n290458,airplane\n290459,cat\n290460,truck\n290461,cat\n290462,horse\n290463,bird\n290464,cat\n290465,frog\n290466,deer\n290467,truck\n290468,deer\n290469,ship\n290470,dog\n290471,truck\n290472,airplane\n290473,frog\n290474,horse\n290475,horse\n290476,cat\n290477,frog\n290478,horse\n290479,bird\n290480,horse\n290481,deer\n290482,deer\n290483,cat\n290484,deer\n290485,airplane\n290486,ship\n290487,truck\n290488,bird\n290489,bird\n290490,bird\n290491,frog\n290492,ship\n290493,frog\n290494,cat\n290495,truck\n290496,cat\n290497,truck\n290498,horse\n290499,airplane\n290500,automobile\n290501,airplane\n290502,airplane\n290503,horse\n290504,deer\n290505,ship\n290506,horse\n290507,deer\n290508,deer\n290509,bird\n290510,bird\n290511,deer\n290512,frog\n290513,airplane\n290514,horse\n290515,horse\n290516,horse\n290517,bird\n290518,bird\n290519,bird\n290520,airplane\n290521,airplane\n290522,cat\n290523,deer\n290524,bird\n290525,horse\n290526,deer\n290527,automobile\n290528,cat\n290529,dog\n290530,automobile\n290531,bird\n290532,deer\n290533,ship\n290534,truck\n290535,cat\n290536,cat\n290537,deer\n290538,bird\n290539,deer\n290540,horse\n290541,automobile\n290542,truck\n290543,bird\n290544,truck\n290545,frog\n290546,truck\n290547,frog\n290548,dog\n290549,dog\n290550,horse\n290551,horse\n290552,horse\n290553,truck\n290554,bird\n290555,automobile\n290556,deer\n290557,cat\n290558,deer\n290559,automobile\n290560,horse\n290561,frog\n290562,cat\n290563,airplane\n290564,airplane\n290565,truck\n290566,frog\n290567,horse\n290568,horse\n290569,automobile\n290570,frog\n290571,ship\n290572,dog\n290573,truck\n290574,frog\n290575,deer\n290576,horse\n290577,dog\n290578,deer\n290579,bird\n290580,bird\n290581,frog\n290582,deer\n290583,deer\n290584,horse\n290585,frog\n290586,horse\n290587,bird\n290588,bird\n290589,bird\n290590,frog\n290591,airplane\n290592,cat\n290593,cat\n290594,horse\n290595,frog\n290596,deer\n290597,bird\n290598,airplane\n290599,truck\n290600,dog\n290601,horse\n290602,bird\n290603,cat\n290604,deer\n290605,bird\n290606,airplane\n290607,ship\n290608,truck\n290609,cat\n290610,horse\n290611,ship\n290612,truck\n290613,dog\n290614,frog\n290615,cat\n290616,truck\n290617,dog\n290618,airplane\n290619,deer\n290620,automobile\n290621,dog\n290622,ship\n290623,truck\n290624,horse\n290625,cat\n290626,truck\n290627,automobile\n290628,dog\n290629,horse\n290630,automobile\n290631,horse\n290632,deer\n290633,cat\n290634,bird\n290635,cat\n290636,truck\n290637,deer\n290638,cat\n290639,frog\n290640,horse\n290641,airplane\n290642,automobile\n290643,airplane\n290644,airplane\n290645,cat\n290646,bird\n290647,automobile\n290648,deer\n290649,cat\n290650,frog\n290651,frog\n290652,ship\n290653,automobile\n290654,truck\n290655,bird\n290656,deer\n290657,dog\n290658,ship\n290659,ship\n290660,truck\n290661,automobile\n290662,bird\n290663,ship\n290664,bird\n290665,truck\n290666,deer\n290667,airplane\n290668,cat\n290669,deer\n290670,automobile\n290671,cat\n290672,horse\n290673,cat\n290674,deer\n290675,airplane\n290676,bird\n290677,horse\n290678,automobile\n290679,deer\n290680,frog\n290681,deer\n290682,bird\n290683,cat\n290684,dog\n290685,horse\n290686,bird\n290687,cat\n290688,dog\n290689,horse\n290690,deer\n290691,dog\n290692,airplane\n290693,bird\n290694,horse\n290695,ship\n290696,dog\n290697,cat\n290698,airplane\n290699,automobile\n290700,airplane\n290701,dog\n290702,truck\n290703,ship\n290704,frog\n290705,bird\n290706,ship\n290707,deer\n290708,horse\n290709,automobile\n290710,ship\n290711,airplane\n290712,automobile\n290713,horse\n290714,frog\n290715,deer\n290716,truck\n290717,automobile\n290718,cat\n290719,truck\n290720,automobile\n290721,truck\n290722,cat\n290723,frog\n290724,deer\n290725,airplane\n290726,frog\n290727,bird\n290728,cat\n290729,deer\n290730,frog\n290731,ship\n290732,airplane\n290733,truck\n290734,cat\n290735,deer\n290736,dog\n290737,dog\n290738,horse\n290739,horse\n290740,deer\n290741,dog\n290742,deer\n290743,cat\n290744,airplane\n290745,frog\n290746,dog\n290747,deer\n290748,frog\n290749,deer\n290750,frog\n290751,deer\n290752,frog\n290753,cat\n290754,airplane\n290755,automobile\n290756,dog\n290757,frog\n290758,deer\n290759,bird\n290760,horse\n290761,airplane\n290762,horse\n290763,cat\n290764,airplane\n290765,dog\n290766,cat\n290767,ship\n290768,deer\n290769,horse\n290770,deer\n290771,horse\n290772,truck\n290773,truck\n290774,bird\n290775,deer\n290776,horse\n290777,bird\n290778,frog\n290779,airplane\n290780,cat\n290781,airplane\n290782,ship\n290783,dog\n290784,dog\n290785,bird\n290786,deer\n290787,horse\n290788,truck\n290789,dog\n290790,cat\n290791,deer\n290792,deer\n290793,truck\n290794,truck\n290795,frog\n290796,frog\n290797,ship\n290798,dog\n290799,automobile\n290800,cat\n290801,dog\n290802,ship\n290803,frog\n290804,truck\n290805,ship\n290806,ship\n290807,cat\n290808,cat\n290809,horse\n290810,airplane\n290811,automobile\n290812,ship\n290813,airplane\n290814,ship\n290815,deer\n290816,deer\n290817,cat\n290818,truck\n290819,cat\n290820,dog\n290821,dog\n290822,deer\n290823,horse\n290824,truck\n290825,deer\n290826,ship\n290827,dog\n290828,dog\n290829,ship\n290830,ship\n290831,truck\n290832,truck\n290833,airplane\n290834,automobile\n290835,cat\n290836,ship\n290837,airplane\n290838,truck\n290839,deer\n290840,deer\n290841,deer\n290842,automobile\n290843,frog\n290844,automobile\n290845,dog\n290846,deer\n290847,ship\n290848,dog\n290849,truck\n290850,frog\n290851,truck\n290852,truck\n290853,bird\n290854,horse\n290855,cat\n290856,frog\n290857,cat\n290858,bird\n290859,frog\n290860,automobile\n290861,truck\n290862,automobile\n290863,truck\n290864,deer\n290865,airplane\n290866,truck\n290867,truck\n290868,ship\n290869,horse\n290870,ship\n290871,cat\n290872,horse\n290873,horse\n290874,deer\n290875,dog\n290876,cat\n290877,horse\n290878,truck\n290879,horse\n290880,horse\n290881,ship\n290882,truck\n290883,dog\n290884,automobile\n290885,deer\n290886,frog\n290887,dog\n290888,airplane\n290889,truck\n290890,horse\n290891,horse\n290892,deer\n290893,automobile\n290894,horse\n290895,bird\n290896,deer\n290897,bird\n290898,bird\n290899,frog\n290900,dog\n290901,dog\n290902,deer\n290903,frog\n290904,bird\n290905,truck\n290906,horse\n290907,deer\n290908,automobile\n290909,frog\n290910,bird\n290911,deer\n290912,bird\n290913,bird\n290914,frog\n290915,horse\n290916,automobile\n290917,cat\n290918,cat\n290919,bird\n290920,deer\n290921,deer\n290922,truck\n290923,horse\n290924,airplane\n290925,bird\n290926,frog\n290927,automobile\n290928,horse\n290929,cat\n290930,dog\n290931,frog\n290932,horse\n290933,truck\n290934,truck\n290935,cat\n290936,frog\n290937,deer\n290938,truck\n290939,horse\n290940,cat\n290941,bird\n290942,horse\n290943,dog\n290944,truck\n290945,deer\n290946,horse\n290947,cat\n290948,airplane\n290949,frog\n290950,airplane\n290951,deer\n290952,dog\n290953,dog\n290954,horse\n290955,truck\n290956,airplane\n290957,dog\n290958,frog\n290959,truck\n290960,horse\n290961,frog\n290962,truck\n290963,frog\n290964,cat\n290965,truck\n290966,frog\n290967,ship\n290968,horse\n290969,horse\n290970,dog\n290971,frog\n290972,cat\n290973,horse\n290974,horse\n290975,ship\n290976,horse\n290977,airplane\n290978,airplane\n290979,deer\n290980,airplane\n290981,ship\n290982,dog\n290983,bird\n290984,deer\n290985,horse\n290986,deer\n290987,truck\n290988,deer\n290989,truck\n290990,automobile\n290991,automobile\n290992,horse\n290993,cat\n290994,horse\n290995,dog\n290996,deer\n290997,frog\n290998,deer\n290999,bird\n291000,ship\n291001,deer\n291002,bird\n291003,cat\n291004,cat\n291005,dog\n291006,frog\n291007,dog\n291008,deer\n291009,cat\n291010,cat\n291011,truck\n291012,ship\n291013,deer\n291014,dog\n291015,horse\n291016,frog\n291017,automobile\n291018,automobile\n291019,truck\n291020,cat\n291021,cat\n291022,airplane\n291023,cat\n291024,truck\n291025,automobile\n291026,automobile\n291027,ship\n291028,airplane\n291029,deer\n291030,truck\n291031,frog\n291032,bird\n291033,cat\n291034,automobile\n291035,frog\n291036,ship\n291037,deer\n291038,dog\n291039,truck\n291040,cat\n291041,frog\n291042,deer\n291043,frog\n291044,cat\n291045,automobile\n291046,horse\n291047,dog\n291048,automobile\n291049,airplane\n291050,dog\n291051,automobile\n291052,ship\n291053,bird\n291054,frog\n291055,frog\n291056,automobile\n291057,horse\n291058,cat\n291059,cat\n291060,airplane\n291061,bird\n291062,truck\n291063,deer\n291064,bird\n291065,bird\n291066,ship\n291067,deer\n291068,cat\n291069,cat\n291070,horse\n291071,cat\n291072,automobile\n291073,cat\n291074,cat\n291075,horse\n291076,cat\n291077,frog\n291078,cat\n291079,airplane\n291080,dog\n291081,bird\n291082,truck\n291083,dog\n291084,airplane\n291085,deer\n291086,ship\n291087,bird\n291088,frog\n291089,frog\n291090,frog\n291091,automobile\n291092,ship\n291093,truck\n291094,frog\n291095,deer\n291096,deer\n291097,ship\n291098,deer\n291099,truck\n291100,cat\n291101,truck\n291102,frog\n291103,airplane\n291104,horse\n291105,automobile\n291106,airplane\n291107,cat\n291108,cat\n291109,frog\n291110,bird\n291111,deer\n291112,truck\n291113,horse\n291114,airplane\n291115,automobile\n291116,ship\n291117,horse\n291118,bird\n291119,airplane\n291120,horse\n291121,truck\n291122,cat\n291123,truck\n291124,bird\n291125,bird\n291126,horse\n291127,cat\n291128,truck\n291129,dog\n291130,cat\n291131,deer\n291132,horse\n291133,dog\n291134,horse\n291135,ship\n291136,airplane\n291137,deer\n291138,ship\n291139,ship\n291140,horse\n291141,cat\n291142,ship\n291143,bird\n291144,truck\n291145,truck\n291146,truck\n291147,automobile\n291148,deer\n291149,truck\n291150,cat\n291151,horse\n291152,cat\n291153,ship\n291154,airplane\n291155,dog\n291156,horse\n291157,dog\n291158,frog\n291159,truck\n291160,airplane\n291161,dog\n291162,horse\n291163,horse\n291164,airplane\n291165,horse\n291166,deer\n291167,deer\n291168,truck\n291169,truck\n291170,horse\n291171,cat\n291172,truck\n291173,truck\n291174,automobile\n291175,horse\n291176,airplane\n291177,bird\n291178,bird\n291179,frog\n291180,bird\n291181,truck\n291182,bird\n291183,frog\n291184,airplane\n291185,deer\n291186,cat\n291187,deer\n291188,bird\n291189,truck\n291190,deer\n291191,deer\n291192,horse\n291193,automobile\n291194,frog\n291195,dog\n291196,truck\n291197,cat\n291198,dog\n291199,bird\n291200,ship\n291201,airplane\n291202,bird\n291203,dog\n291204,deer\n291205,truck\n291206,horse\n291207,cat\n291208,airplane\n291209,cat\n291210,truck\n291211,dog\n291212,automobile\n291213,airplane\n291214,bird\n291215,frog\n291216,deer\n291217,airplane\n291218,cat\n291219,horse\n291220,airplane\n291221,cat\n291222,horse\n291223,deer\n291224,ship\n291225,truck\n291226,bird\n291227,truck\n291228,horse\n291229,airplane\n291230,truck\n291231,frog\n291232,truck\n291233,deer\n291234,ship\n291235,automobile\n291236,bird\n291237,ship\n291238,bird\n291239,horse\n291240,cat\n291241,horse\n291242,automobile\n291243,truck\n291244,airplane\n291245,airplane\n291246,frog\n291247,frog\n291248,truck\n291249,horse\n291250,truck\n291251,dog\n291252,bird\n291253,cat\n291254,airplane\n291255,deer\n291256,deer\n291257,frog\n291258,cat\n291259,bird\n291260,cat\n291261,bird\n291262,cat\n291263,ship\n291264,cat\n291265,cat\n291266,deer\n291267,automobile\n291268,cat\n291269,frog\n291270,cat\n291271,automobile\n291272,dog\n291273,horse\n291274,ship\n291275,ship\n291276,airplane\n291277,cat\n291278,automobile\n291279,deer\n291280,horse\n291281,airplane\n291282,frog\n291283,frog\n291284,cat\n291285,deer\n291286,truck\n291287,cat\n291288,airplane\n291289,airplane\n291290,airplane\n291291,bird\n291292,deer\n291293,horse\n291294,cat\n291295,dog\n291296,airplane\n291297,ship\n291298,frog\n291299,cat\n291300,truck\n291301,airplane\n291302,automobile\n291303,truck\n291304,bird\n291305,airplane\n291306,ship\n291307,horse\n291308,truck\n291309,deer\n291310,frog\n291311,horse\n291312,horse\n291313,truck\n291314,horse\n291315,truck\n291316,dog\n291317,deer\n291318,truck\n291319,cat\n291320,dog\n291321,truck\n291322,horse\n291323,bird\n291324,frog\n291325,airplane\n291326,bird\n291327,ship\n291328,cat\n291329,truck\n291330,frog\n291331,deer\n291332,automobile\n291333,automobile\n291334,deer\n291335,deer\n291336,dog\n291337,deer\n291338,dog\n291339,dog\n291340,deer\n291341,deer\n291342,automobile\n291343,frog\n291344,dog\n291345,airplane\n291346,cat\n291347,deer\n291348,ship\n291349,deer\n291350,airplane\n291351,dog\n291352,deer\n291353,automobile\n291354,deer\n291355,bird\n291356,airplane\n291357,frog\n291358,automobile\n291359,bird\n291360,ship\n291361,airplane\n291362,ship\n291363,bird\n291364,cat\n291365,deer\n291366,dog\n291367,truck\n291368,airplane\n291369,truck\n291370,airplane\n291371,frog\n291372,ship\n291373,horse\n291374,horse\n291375,airplane\n291376,ship\n291377,deer\n291378,airplane\n291379,ship\n291380,bird\n291381,automobile\n291382,cat\n291383,truck\n291384,automobile\n291385,dog\n291386,bird\n291387,horse\n291388,deer\n291389,bird\n291390,deer\n291391,deer\n291392,ship\n291393,truck\n291394,frog\n291395,deer\n291396,ship\n291397,frog\n291398,horse\n291399,deer\n291400,airplane\n291401,deer\n291402,frog\n291403,cat\n291404,frog\n291405,ship\n291406,deer\n291407,dog\n291408,horse\n291409,bird\n291410,dog\n291411,cat\n291412,horse\n291413,frog\n291414,cat\n291415,bird\n291416,horse\n291417,dog\n291418,truck\n291419,cat\n291420,ship\n291421,truck\n291422,cat\n291423,bird\n291424,deer\n291425,horse\n291426,cat\n291427,dog\n291428,dog\n291429,frog\n291430,frog\n291431,dog\n291432,cat\n291433,ship\n291434,bird\n291435,dog\n291436,truck\n291437,dog\n291438,deer\n291439,bird\n291440,cat\n291441,truck\n291442,deer\n291443,ship\n291444,airplane\n291445,dog\n291446,deer\n291447,ship\n291448,automobile\n291449,frog\n291450,frog\n291451,airplane\n291452,cat\n291453,ship\n291454,frog\n291455,dog\n291456,frog\n291457,horse\n291458,bird\n291459,deer\n291460,frog\n291461,frog\n291462,cat\n291463,cat\n291464,ship\n291465,automobile\n291466,horse\n291467,frog\n291468,horse\n291469,cat\n291470,automobile\n291471,cat\n291472,frog\n291473,airplane\n291474,cat\n291475,horse\n291476,deer\n291477,deer\n291478,horse\n291479,bird\n291480,frog\n291481,deer\n291482,airplane\n291483,truck\n291484,cat\n291485,horse\n291486,ship\n291487,deer\n291488,deer\n291489,deer\n291490,deer\n291491,frog\n291492,deer\n291493,bird\n291494,airplane\n291495,cat\n291496,cat\n291497,ship\n291498,airplane\n291499,cat\n291500,deer\n291501,truck\n291502,truck\n291503,frog\n291504,airplane\n291505,frog\n291506,bird\n291507,truck\n291508,bird\n291509,frog\n291510,truck\n291511,deer\n291512,deer\n291513,airplane\n291514,cat\n291515,ship\n291516,deer\n291517,cat\n291518,ship\n291519,truck\n291520,cat\n291521,airplane\n291522,truck\n291523,bird\n291524,truck\n291525,cat\n291526,bird\n291527,cat\n291528,frog\n291529,ship\n291530,deer\n291531,ship\n291532,airplane\n291533,cat\n291534,frog\n291535,horse\n291536,deer\n291537,cat\n291538,frog\n291539,bird\n291540,deer\n291541,automobile\n291542,automobile\n291543,ship\n291544,ship\n291545,deer\n291546,frog\n291547,dog\n291548,frog\n291549,deer\n291550,bird\n291551,cat\n291552,deer\n291553,cat\n291554,ship\n291555,bird\n291556,ship\n291557,deer\n291558,truck\n291559,bird\n291560,airplane\n291561,automobile\n291562,bird\n291563,deer\n291564,deer\n291565,frog\n291566,horse\n291567,truck\n291568,deer\n291569,deer\n291570,dog\n291571,truck\n291572,truck\n291573,cat\n291574,truck\n291575,airplane\n291576,truck\n291577,frog\n291578,dog\n291579,cat\n291580,dog\n291581,cat\n291582,bird\n291583,truck\n291584,deer\n291585,airplane\n291586,bird\n291587,horse\n291588,deer\n291589,truck\n291590,dog\n291591,deer\n291592,ship\n291593,dog\n291594,automobile\n291595,cat\n291596,truck\n291597,truck\n291598,truck\n291599,airplane\n291600,horse\n291601,frog\n291602,airplane\n291603,dog\n291604,automobile\n291605,deer\n291606,horse\n291607,frog\n291608,cat\n291609,deer\n291610,automobile\n291611,truck\n291612,deer\n291613,dog\n291614,frog\n291615,bird\n291616,deer\n291617,ship\n291618,deer\n291619,deer\n291620,automobile\n291621,automobile\n291622,frog\n291623,truck\n291624,dog\n291625,automobile\n291626,ship\n291627,bird\n291628,automobile\n291629,truck\n291630,truck\n291631,dog\n291632,horse\n291633,truck\n291634,automobile\n291635,frog\n291636,frog\n291637,deer\n291638,airplane\n291639,dog\n291640,truck\n291641,deer\n291642,cat\n291643,truck\n291644,ship\n291645,deer\n291646,airplane\n291647,cat\n291648,bird\n291649,deer\n291650,automobile\n291651,deer\n291652,dog\n291653,cat\n291654,bird\n291655,dog\n291656,cat\n291657,bird\n291658,ship\n291659,airplane\n291660,dog\n291661,cat\n291662,dog\n291663,horse\n291664,airplane\n291665,horse\n291666,frog\n291667,deer\n291668,frog\n291669,deer\n291670,truck\n291671,truck\n291672,frog\n291673,bird\n291674,ship\n291675,cat\n291676,cat\n291677,deer\n291678,airplane\n291679,ship\n291680,dog\n291681,frog\n291682,truck\n291683,deer\n291684,cat\n291685,horse\n291686,cat\n291687,truck\n291688,ship\n291689,ship\n291690,frog\n291691,ship\n291692,deer\n291693,dog\n291694,bird\n291695,bird\n291696,ship\n291697,horse\n291698,cat\n291699,ship\n291700,truck\n291701,horse\n291702,truck\n291703,bird\n291704,bird\n291705,frog\n291706,deer\n291707,truck\n291708,ship\n291709,frog\n291710,automobile\n291711,truck\n291712,bird\n291713,airplane\n291714,deer\n291715,automobile\n291716,deer\n291717,deer\n291718,ship\n291719,dog\n291720,deer\n291721,truck\n291722,deer\n291723,dog\n291724,deer\n291725,frog\n291726,automobile\n291727,dog\n291728,ship\n291729,automobile\n291730,cat\n291731,dog\n291732,deer\n291733,bird\n291734,truck\n291735,horse\n291736,truck\n291737,airplane\n291738,horse\n291739,frog\n291740,horse\n291741,ship\n291742,truck\n291743,automobile\n291744,horse\n291745,cat\n291746,truck\n291747,airplane\n291748,dog\n291749,cat\n291750,ship\n291751,airplane\n291752,horse\n291753,automobile\n291754,automobile\n291755,cat\n291756,deer\n291757,cat\n291758,truck\n291759,horse\n291760,airplane\n291761,frog\n291762,deer\n291763,bird\n291764,truck\n291765,ship\n291766,airplane\n291767,airplane\n291768,frog\n291769,dog\n291770,frog\n291771,deer\n291772,ship\n291773,deer\n291774,bird\n291775,automobile\n291776,bird\n291777,cat\n291778,automobile\n291779,airplane\n291780,deer\n291781,automobile\n291782,dog\n291783,automobile\n291784,truck\n291785,ship\n291786,deer\n291787,bird\n291788,ship\n291789,truck\n291790,dog\n291791,bird\n291792,ship\n291793,dog\n291794,dog\n291795,truck\n291796,automobile\n291797,truck\n291798,truck\n291799,airplane\n291800,ship\n291801,ship\n291802,bird\n291803,cat\n291804,bird\n291805,dog\n291806,ship\n291807,deer\n291808,bird\n291809,truck\n291810,dog\n291811,truck\n291812,automobile\n291813,cat\n291814,truck\n291815,frog\n291816,ship\n291817,deer\n291818,truck\n291819,ship\n291820,truck\n291821,automobile\n291822,truck\n291823,bird\n291824,deer\n291825,frog\n291826,cat\n291827,frog\n291828,ship\n291829,dog\n291830,frog\n291831,truck\n291832,horse\n291833,deer\n291834,airplane\n291835,frog\n291836,ship\n291837,bird\n291838,frog\n291839,airplane\n291840,airplane\n291841,horse\n291842,automobile\n291843,dog\n291844,automobile\n291845,deer\n291846,deer\n291847,airplane\n291848,bird\n291849,ship\n291850,deer\n291851,airplane\n291852,ship\n291853,automobile\n291854,airplane\n291855,truck\n291856,automobile\n291857,cat\n291858,frog\n291859,horse\n291860,ship\n291861,automobile\n291862,airplane\n291863,frog\n291864,bird\n291865,truck\n291866,deer\n291867,automobile\n291868,frog\n291869,automobile\n291870,airplane\n291871,bird\n291872,dog\n291873,dog\n291874,horse\n291875,dog\n291876,deer\n291877,frog\n291878,cat\n291879,dog\n291880,cat\n291881,deer\n291882,automobile\n291883,bird\n291884,frog\n291885,deer\n291886,truck\n291887,deer\n291888,dog\n291889,frog\n291890,dog\n291891,truck\n291892,horse\n291893,truck\n291894,deer\n291895,truck\n291896,ship\n291897,frog\n291898,horse\n291899,deer\n291900,ship\n291901,cat\n291902,deer\n291903,deer\n291904,truck\n291905,horse\n291906,truck\n291907,truck\n291908,cat\n291909,cat\n291910,dog\n291911,truck\n291912,horse\n291913,automobile\n291914,airplane\n291915,frog\n291916,cat\n291917,deer\n291918,deer\n291919,frog\n291920,cat\n291921,cat\n291922,bird\n291923,automobile\n291924,dog\n291925,cat\n291926,horse\n291927,bird\n291928,deer\n291929,bird\n291930,automobile\n291931,airplane\n291932,cat\n291933,ship\n291934,airplane\n291935,truck\n291936,cat\n291937,truck\n291938,automobile\n291939,automobile\n291940,cat\n291941,frog\n291942,bird\n291943,deer\n291944,truck\n291945,truck\n291946,bird\n291947,cat\n291948,airplane\n291949,deer\n291950,dog\n291951,horse\n291952,ship\n291953,dog\n291954,truck\n291955,automobile\n291956,ship\n291957,automobile\n291958,frog\n291959,frog\n291960,dog\n291961,automobile\n291962,automobile\n291963,horse\n291964,frog\n291965,dog\n291966,dog\n291967,frog\n291968,truck\n291969,frog\n291970,automobile\n291971,automobile\n291972,dog\n291973,cat\n291974,dog\n291975,airplane\n291976,truck\n291977,automobile\n291978,bird\n291979,frog\n291980,deer\n291981,bird\n291982,bird\n291983,truck\n291984,dog\n291985,dog\n291986,deer\n291987,deer\n291988,dog\n291989,ship\n291990,dog\n291991,bird\n291992,cat\n291993,cat\n291994,horse\n291995,horse\n291996,frog\n291997,deer\n291998,truck\n291999,airplane\n292000,horse\n292001,cat\n292002,airplane\n292003,deer\n292004,cat\n292005,dog\n292006,horse\n292007,ship\n292008,dog\n292009,bird\n292010,truck\n292011,ship\n292012,cat\n292013,automobile\n292014,horse\n292015,deer\n292016,dog\n292017,dog\n292018,deer\n292019,airplane\n292020,truck\n292021,automobile\n292022,frog\n292023,frog\n292024,deer\n292025,dog\n292026,dog\n292027,deer\n292028,truck\n292029,deer\n292030,horse\n292031,airplane\n292032,airplane\n292033,ship\n292034,horse\n292035,automobile\n292036,cat\n292037,airplane\n292038,horse\n292039,dog\n292040,airplane\n292041,deer\n292042,deer\n292043,bird\n292044,ship\n292045,automobile\n292046,cat\n292047,airplane\n292048,cat\n292049,frog\n292050,ship\n292051,airplane\n292052,horse\n292053,dog\n292054,airplane\n292055,deer\n292056,ship\n292057,automobile\n292058,frog\n292059,frog\n292060,truck\n292061,deer\n292062,automobile\n292063,truck\n292064,ship\n292065,deer\n292066,airplane\n292067,deer\n292068,frog\n292069,horse\n292070,bird\n292071,frog\n292072,ship\n292073,dog\n292074,frog\n292075,horse\n292076,automobile\n292077,dog\n292078,truck\n292079,bird\n292080,deer\n292081,truck\n292082,cat\n292083,bird\n292084,cat\n292085,deer\n292086,dog\n292087,automobile\n292088,truck\n292089,automobile\n292090,horse\n292091,cat\n292092,deer\n292093,horse\n292094,bird\n292095,automobile\n292096,bird\n292097,automobile\n292098,airplane\n292099,deer\n292100,ship\n292101,ship\n292102,frog\n292103,frog\n292104,deer\n292105,bird\n292106,deer\n292107,bird\n292108,cat\n292109,frog\n292110,dog\n292111,frog\n292112,automobile\n292113,cat\n292114,frog\n292115,cat\n292116,deer\n292117,horse\n292118,truck\n292119,bird\n292120,automobile\n292121,dog\n292122,cat\n292123,frog\n292124,airplane\n292125,cat\n292126,truck\n292127,automobile\n292128,automobile\n292129,horse\n292130,airplane\n292131,truck\n292132,deer\n292133,horse\n292134,cat\n292135,airplane\n292136,airplane\n292137,dog\n292138,horse\n292139,ship\n292140,cat\n292141,dog\n292142,airplane\n292143,dog\n292144,ship\n292145,cat\n292146,ship\n292147,cat\n292148,bird\n292149,ship\n292150,deer\n292151,bird\n292152,horse\n292153,deer\n292154,dog\n292155,frog\n292156,cat\n292157,automobile\n292158,truck\n292159,horse\n292160,cat\n292161,cat\n292162,dog\n292163,airplane\n292164,deer\n292165,airplane\n292166,horse\n292167,deer\n292168,automobile\n292169,frog\n292170,airplane\n292171,bird\n292172,dog\n292173,truck\n292174,truck\n292175,frog\n292176,truck\n292177,horse\n292178,bird\n292179,horse\n292180,automobile\n292181,dog\n292182,automobile\n292183,airplane\n292184,horse\n292185,truck\n292186,frog\n292187,bird\n292188,horse\n292189,truck\n292190,airplane\n292191,horse\n292192,truck\n292193,bird\n292194,deer\n292195,frog\n292196,cat\n292197,truck\n292198,ship\n292199,bird\n292200,truck\n292201,horse\n292202,cat\n292203,ship\n292204,bird\n292205,horse\n292206,frog\n292207,automobile\n292208,truck\n292209,ship\n292210,frog\n292211,truck\n292212,horse\n292213,frog\n292214,automobile\n292215,cat\n292216,deer\n292217,airplane\n292218,ship\n292219,horse\n292220,truck\n292221,ship\n292222,cat\n292223,dog\n292224,cat\n292225,horse\n292226,deer\n292227,horse\n292228,truck\n292229,cat\n292230,bird\n292231,ship\n292232,truck\n292233,deer\n292234,cat\n292235,airplane\n292236,truck\n292237,automobile\n292238,deer\n292239,cat\n292240,dog\n292241,deer\n292242,ship\n292243,dog\n292244,dog\n292245,cat\n292246,ship\n292247,deer\n292248,deer\n292249,horse\n292250,airplane\n292251,deer\n292252,bird\n292253,bird\n292254,frog\n292255,cat\n292256,deer\n292257,dog\n292258,automobile\n292259,airplane\n292260,truck\n292261,ship\n292262,truck\n292263,bird\n292264,truck\n292265,horse\n292266,truck\n292267,ship\n292268,frog\n292269,cat\n292270,airplane\n292271,deer\n292272,dog\n292273,frog\n292274,deer\n292275,automobile\n292276,bird\n292277,truck\n292278,truck\n292279,truck\n292280,truck\n292281,dog\n292282,automobile\n292283,deer\n292284,deer\n292285,deer\n292286,airplane\n292287,truck\n292288,dog\n292289,airplane\n292290,ship\n292291,automobile\n292292,frog\n292293,cat\n292294,frog\n292295,cat\n292296,cat\n292297,ship\n292298,deer\n292299,horse\n292300,dog\n292301,truck\n292302,airplane\n292303,ship\n292304,frog\n292305,cat\n292306,deer\n292307,truck\n292308,frog\n292309,cat\n292310,dog\n292311,cat\n292312,airplane\n292313,frog\n292314,truck\n292315,horse\n292316,cat\n292317,ship\n292318,automobile\n292319,horse\n292320,bird\n292321,cat\n292322,dog\n292323,deer\n292324,airplane\n292325,horse\n292326,deer\n292327,deer\n292328,dog\n292329,bird\n292330,deer\n292331,airplane\n292332,ship\n292333,automobile\n292334,automobile\n292335,airplane\n292336,deer\n292337,airplane\n292338,automobile\n292339,horse\n292340,bird\n292341,cat\n292342,automobile\n292343,horse\n292344,deer\n292345,deer\n292346,truck\n292347,dog\n292348,horse\n292349,deer\n292350,dog\n292351,cat\n292352,cat\n292353,horse\n292354,horse\n292355,ship\n292356,dog\n292357,truck\n292358,horse\n292359,frog\n292360,bird\n292361,deer\n292362,truck\n292363,truck\n292364,horse\n292365,frog\n292366,dog\n292367,airplane\n292368,frog\n292369,ship\n292370,bird\n292371,ship\n292372,horse\n292373,truck\n292374,truck\n292375,airplane\n292376,dog\n292377,deer\n292378,truck\n292379,cat\n292380,automobile\n292381,dog\n292382,cat\n292383,cat\n292384,dog\n292385,bird\n292386,cat\n292387,truck\n292388,cat\n292389,automobile\n292390,ship\n292391,airplane\n292392,airplane\n292393,airplane\n292394,cat\n292395,frog\n292396,dog\n292397,dog\n292398,bird\n292399,dog\n292400,bird\n292401,deer\n292402,bird\n292403,truck\n292404,bird\n292405,automobile\n292406,ship\n292407,horse\n292408,bird\n292409,frog\n292410,deer\n292411,horse\n292412,airplane\n292413,cat\n292414,ship\n292415,frog\n292416,frog\n292417,frog\n292418,truck\n292419,truck\n292420,ship\n292421,dog\n292422,deer\n292423,deer\n292424,dog\n292425,deer\n292426,cat\n292427,frog\n292428,dog\n292429,deer\n292430,ship\n292431,frog\n292432,bird\n292433,horse\n292434,frog\n292435,dog\n292436,horse\n292437,cat\n292438,cat\n292439,ship\n292440,bird\n292441,cat\n292442,airplane\n292443,deer\n292444,ship\n292445,deer\n292446,bird\n292447,ship\n292448,deer\n292449,airplane\n292450,airplane\n292451,truck\n292452,deer\n292453,truck\n292454,dog\n292455,deer\n292456,truck\n292457,cat\n292458,deer\n292459,truck\n292460,cat\n292461,cat\n292462,frog\n292463,airplane\n292464,ship\n292465,horse\n292466,airplane\n292467,deer\n292468,horse\n292469,deer\n292470,dog\n292471,airplane\n292472,bird\n292473,horse\n292474,horse\n292475,deer\n292476,dog\n292477,airplane\n292478,deer\n292479,frog\n292480,truck\n292481,cat\n292482,truck\n292483,bird\n292484,bird\n292485,cat\n292486,automobile\n292487,bird\n292488,deer\n292489,horse\n292490,airplane\n292491,deer\n292492,automobile\n292493,bird\n292494,airplane\n292495,frog\n292496,frog\n292497,truck\n292498,horse\n292499,bird\n292500,cat\n292501,deer\n292502,truck\n292503,truck\n292504,bird\n292505,bird\n292506,deer\n292507,deer\n292508,deer\n292509,airplane\n292510,automobile\n292511,ship\n292512,truck\n292513,dog\n292514,ship\n292515,dog\n292516,deer\n292517,cat\n292518,airplane\n292519,automobile\n292520,ship\n292521,frog\n292522,ship\n292523,horse\n292524,cat\n292525,airplane\n292526,frog\n292527,truck\n292528,cat\n292529,truck\n292530,frog\n292531,bird\n292532,frog\n292533,frog\n292534,truck\n292535,deer\n292536,truck\n292537,horse\n292538,frog\n292539,horse\n292540,cat\n292541,bird\n292542,frog\n292543,automobile\n292544,cat\n292545,cat\n292546,deer\n292547,dog\n292548,frog\n292549,deer\n292550,dog\n292551,cat\n292552,cat\n292553,automobile\n292554,deer\n292555,deer\n292556,ship\n292557,ship\n292558,cat\n292559,cat\n292560,deer\n292561,cat\n292562,ship\n292563,horse\n292564,bird\n292565,airplane\n292566,dog\n292567,bird\n292568,airplane\n292569,airplane\n292570,bird\n292571,dog\n292572,bird\n292573,cat\n292574,automobile\n292575,deer\n292576,cat\n292577,frog\n292578,horse\n292579,bird\n292580,automobile\n292581,horse\n292582,frog\n292583,airplane\n292584,deer\n292585,bird\n292586,horse\n292587,cat\n292588,dog\n292589,deer\n292590,horse\n292591,automobile\n292592,deer\n292593,frog\n292594,horse\n292595,deer\n292596,ship\n292597,ship\n292598,truck\n292599,horse\n292600,airplane\n292601,airplane\n292602,truck\n292603,airplane\n292604,frog\n292605,bird\n292606,bird\n292607,bird\n292608,truck\n292609,bird\n292610,airplane\n292611,dog\n292612,dog\n292613,frog\n292614,cat\n292615,frog\n292616,truck\n292617,cat\n292618,deer\n292619,airplane\n292620,cat\n292621,cat\n292622,frog\n292623,airplane\n292624,horse\n292625,frog\n292626,airplane\n292627,dog\n292628,airplane\n292629,horse\n292630,dog\n292631,cat\n292632,dog\n292633,truck\n292634,horse\n292635,frog\n292636,deer\n292637,cat\n292638,deer\n292639,airplane\n292640,bird\n292641,dog\n292642,deer\n292643,bird\n292644,cat\n292645,truck\n292646,ship\n292647,frog\n292648,truck\n292649,horse\n292650,automobile\n292651,deer\n292652,frog\n292653,cat\n292654,horse\n292655,deer\n292656,bird\n292657,automobile\n292658,airplane\n292659,truck\n292660,airplane\n292661,deer\n292662,airplane\n292663,airplane\n292664,bird\n292665,dog\n292666,ship\n292667,ship\n292668,horse\n292669,truck\n292670,deer\n292671,truck\n292672,truck\n292673,ship\n292674,bird\n292675,bird\n292676,truck\n292677,dog\n292678,airplane\n292679,deer\n292680,bird\n292681,deer\n292682,automobile\n292683,truck\n292684,horse\n292685,dog\n292686,deer\n292687,frog\n292688,dog\n292689,horse\n292690,truck\n292691,airplane\n292692,bird\n292693,cat\n292694,dog\n292695,horse\n292696,airplane\n292697,ship\n292698,frog\n292699,horse\n292700,truck\n292701,horse\n292702,dog\n292703,deer\n292704,deer\n292705,bird\n292706,frog\n292707,frog\n292708,truck\n292709,cat\n292710,deer\n292711,cat\n292712,horse\n292713,cat\n292714,truck\n292715,airplane\n292716,frog\n292717,automobile\n292718,cat\n292719,truck\n292720,frog\n292721,airplane\n292722,deer\n292723,frog\n292724,bird\n292725,cat\n292726,bird\n292727,dog\n292728,horse\n292729,frog\n292730,airplane\n292731,cat\n292732,cat\n292733,deer\n292734,deer\n292735,frog\n292736,horse\n292737,automobile\n292738,ship\n292739,automobile\n292740,airplane\n292741,ship\n292742,truck\n292743,truck\n292744,bird\n292745,bird\n292746,airplane\n292747,deer\n292748,dog\n292749,horse\n292750,dog\n292751,truck\n292752,bird\n292753,dog\n292754,deer\n292755,truck\n292756,truck\n292757,truck\n292758,airplane\n292759,truck\n292760,horse\n292761,horse\n292762,cat\n292763,dog\n292764,cat\n292765,bird\n292766,deer\n292767,horse\n292768,ship\n292769,ship\n292770,cat\n292771,frog\n292772,bird\n292773,cat\n292774,horse\n292775,truck\n292776,airplane\n292777,cat\n292778,automobile\n292779,ship\n292780,ship\n292781,deer\n292782,dog\n292783,cat\n292784,frog\n292785,cat\n292786,frog\n292787,frog\n292788,airplane\n292789,ship\n292790,bird\n292791,automobile\n292792,cat\n292793,truck\n292794,frog\n292795,deer\n292796,frog\n292797,deer\n292798,frog\n292799,frog\n292800,frog\n292801,automobile\n292802,truck\n292803,automobile\n292804,ship\n292805,truck\n292806,truck\n292807,deer\n292808,deer\n292809,deer\n292810,airplane\n292811,frog\n292812,truck\n292813,deer\n292814,airplane\n292815,frog\n292816,bird\n292817,deer\n292818,cat\n292819,cat\n292820,cat\n292821,horse\n292822,truck\n292823,bird\n292824,cat\n292825,frog\n292826,frog\n292827,automobile\n292828,automobile\n292829,deer\n292830,horse\n292831,frog\n292832,bird\n292833,deer\n292834,horse\n292835,automobile\n292836,dog\n292837,airplane\n292838,deer\n292839,truck\n292840,bird\n292841,truck\n292842,deer\n292843,truck\n292844,truck\n292845,dog\n292846,deer\n292847,airplane\n292848,automobile\n292849,cat\n292850,truck\n292851,deer\n292852,bird\n292853,cat\n292854,cat\n292855,ship\n292856,truck\n292857,truck\n292858,airplane\n292859,bird\n292860,cat\n292861,deer\n292862,deer\n292863,horse\n292864,horse\n292865,dog\n292866,frog\n292867,deer\n292868,cat\n292869,truck\n292870,automobile\n292871,deer\n292872,dog\n292873,bird\n292874,automobile\n292875,horse\n292876,bird\n292877,dog\n292878,truck\n292879,frog\n292880,dog\n292881,cat\n292882,bird\n292883,horse\n292884,automobile\n292885,dog\n292886,frog\n292887,dog\n292888,ship\n292889,dog\n292890,cat\n292891,horse\n292892,automobile\n292893,truck\n292894,truck\n292895,ship\n292896,truck\n292897,airplane\n292898,frog\n292899,ship\n292900,truck\n292901,airplane\n292902,cat\n292903,airplane\n292904,airplane\n292905,airplane\n292906,deer\n292907,frog\n292908,cat\n292909,airplane\n292910,horse\n292911,truck\n292912,ship\n292913,cat\n292914,frog\n292915,cat\n292916,ship\n292917,horse\n292918,automobile\n292919,deer\n292920,bird\n292921,cat\n292922,automobile\n292923,deer\n292924,frog\n292925,horse\n292926,airplane\n292927,ship\n292928,deer\n292929,frog\n292930,deer\n292931,deer\n292932,bird\n292933,horse\n292934,frog\n292935,deer\n292936,truck\n292937,horse\n292938,frog\n292939,airplane\n292940,frog\n292941,ship\n292942,bird\n292943,ship\n292944,automobile\n292945,dog\n292946,ship\n292947,cat\n292948,truck\n292949,bird\n292950,automobile\n292951,airplane\n292952,dog\n292953,deer\n292954,automobile\n292955,automobile\n292956,airplane\n292957,airplane\n292958,truck\n292959,airplane\n292960,dog\n292961,truck\n292962,horse\n292963,airplane\n292964,deer\n292965,horse\n292966,frog\n292967,horse\n292968,dog\n292969,ship\n292970,horse\n292971,dog\n292972,cat\n292973,cat\n292974,deer\n292975,truck\n292976,deer\n292977,frog\n292978,truck\n292979,airplane\n292980,bird\n292981,ship\n292982,deer\n292983,frog\n292984,dog\n292985,ship\n292986,bird\n292987,airplane\n292988,bird\n292989,deer\n292990,truck\n292991,truck\n292992,deer\n292993,truck\n292994,dog\n292995,deer\n292996,dog\n292997,dog\n292998,cat\n292999,ship\n293000,truck\n293001,ship\n293002,ship\n293003,deer\n293004,dog\n293005,horse\n293006,deer\n293007,deer\n293008,ship\n293009,truck\n293010,horse\n293011,bird\n293012,frog\n293013,deer\n293014,airplane\n293015,frog\n293016,horse\n293017,automobile\n293018,horse\n293019,truck\n293020,horse\n293021,horse\n293022,ship\n293023,cat\n293024,deer\n293025,automobile\n293026,airplane\n293027,dog\n293028,automobile\n293029,ship\n293030,airplane\n293031,horse\n293032,airplane\n293033,cat\n293034,airplane\n293035,truck\n293036,automobile\n293037,ship\n293038,truck\n293039,dog\n293040,truck\n293041,frog\n293042,truck\n293043,cat\n293044,dog\n293045,cat\n293046,deer\n293047,ship\n293048,dog\n293049,horse\n293050,deer\n293051,cat\n293052,dog\n293053,deer\n293054,horse\n293055,dog\n293056,deer\n293057,dog\n293058,ship\n293059,cat\n293060,bird\n293061,cat\n293062,cat\n293063,truck\n293064,airplane\n293065,deer\n293066,bird\n293067,deer\n293068,frog\n293069,airplane\n293070,cat\n293071,ship\n293072,deer\n293073,cat\n293074,airplane\n293075,horse\n293076,automobile\n293077,truck\n293078,dog\n293079,dog\n293080,deer\n293081,horse\n293082,horse\n293083,airplane\n293084,cat\n293085,ship\n293086,truck\n293087,bird\n293088,truck\n293089,deer\n293090,bird\n293091,bird\n293092,ship\n293093,truck\n293094,truck\n293095,truck\n293096,horse\n293097,ship\n293098,frog\n293099,dog\n293100,cat\n293101,cat\n293102,dog\n293103,deer\n293104,automobile\n293105,cat\n293106,dog\n293107,deer\n293108,dog\n293109,deer\n293110,frog\n293111,deer\n293112,truck\n293113,ship\n293114,dog\n293115,deer\n293116,deer\n293117,airplane\n293118,deer\n293119,ship\n293120,deer\n293121,cat\n293122,cat\n293123,truck\n293124,truck\n293125,airplane\n293126,truck\n293127,automobile\n293128,ship\n293129,frog\n293130,deer\n293131,horse\n293132,deer\n293133,automobile\n293134,truck\n293135,automobile\n293136,cat\n293137,airplane\n293138,bird\n293139,frog\n293140,frog\n293141,automobile\n293142,ship\n293143,horse\n293144,dog\n293145,horse\n293146,ship\n293147,cat\n293148,cat\n293149,truck\n293150,airplane\n293151,deer\n293152,cat\n293153,bird\n293154,deer\n293155,cat\n293156,automobile\n293157,horse\n293158,dog\n293159,cat\n293160,deer\n293161,bird\n293162,bird\n293163,horse\n293164,ship\n293165,frog\n293166,bird\n293167,horse\n293168,deer\n293169,deer\n293170,truck\n293171,bird\n293172,cat\n293173,bird\n293174,cat\n293175,dog\n293176,frog\n293177,truck\n293178,dog\n293179,ship\n293180,truck\n293181,deer\n293182,bird\n293183,deer\n293184,dog\n293185,frog\n293186,cat\n293187,dog\n293188,cat\n293189,cat\n293190,frog\n293191,airplane\n293192,airplane\n293193,airplane\n293194,automobile\n293195,automobile\n293196,cat\n293197,truck\n293198,cat\n293199,ship\n293200,airplane\n293201,bird\n293202,frog\n293203,ship\n293204,truck\n293205,frog\n293206,truck\n293207,bird\n293208,ship\n293209,horse\n293210,cat\n293211,deer\n293212,frog\n293213,frog\n293214,airplane\n293215,frog\n293216,deer\n293217,ship\n293218,ship\n293219,frog\n293220,cat\n293221,frog\n293222,deer\n293223,bird\n293224,ship\n293225,bird\n293226,airplane\n293227,dog\n293228,dog\n293229,cat\n293230,truck\n293231,truck\n293232,horse\n293233,deer\n293234,frog\n293235,ship\n293236,deer\n293237,horse\n293238,horse\n293239,dog\n293240,horse\n293241,bird\n293242,deer\n293243,deer\n293244,deer\n293245,frog\n293246,dog\n293247,truck\n293248,bird\n293249,automobile\n293250,truck\n293251,truck\n293252,dog\n293253,cat\n293254,airplane\n293255,automobile\n293256,horse\n293257,airplane\n293258,horse\n293259,truck\n293260,cat\n293261,horse\n293262,dog\n293263,deer\n293264,ship\n293265,dog\n293266,dog\n293267,bird\n293268,cat\n293269,bird\n293270,cat\n293271,dog\n293272,truck\n293273,bird\n293274,cat\n293275,deer\n293276,ship\n293277,truck\n293278,automobile\n293279,frog\n293280,airplane\n293281,bird\n293282,cat\n293283,deer\n293284,truck\n293285,frog\n293286,deer\n293287,bird\n293288,horse\n293289,ship\n293290,cat\n293291,deer\n293292,truck\n293293,deer\n293294,cat\n293295,deer\n293296,frog\n293297,frog\n293298,truck\n293299,deer\n293300,automobile\n293301,dog\n293302,bird\n293303,bird\n293304,frog\n293305,frog\n293306,bird\n293307,cat\n293308,horse\n293309,truck\n293310,cat\n293311,dog\n293312,frog\n293313,frog\n293314,deer\n293315,frog\n293316,airplane\n293317,dog\n293318,airplane\n293319,cat\n293320,cat\n293321,frog\n293322,horse\n293323,deer\n293324,truck\n293325,automobile\n293326,airplane\n293327,horse\n293328,frog\n293329,horse\n293330,frog\n293331,cat\n293332,automobile\n293333,truck\n293334,dog\n293335,dog\n293336,frog\n293337,cat\n293338,dog\n293339,horse\n293340,horse\n293341,horse\n293342,frog\n293343,bird\n293344,automobile\n293345,automobile\n293346,airplane\n293347,deer\n293348,frog\n293349,cat\n293350,cat\n293351,dog\n293352,automobile\n293353,truck\n293354,airplane\n293355,bird\n293356,airplane\n293357,bird\n293358,cat\n293359,deer\n293360,truck\n293361,cat\n293362,dog\n293363,truck\n293364,frog\n293365,bird\n293366,dog\n293367,dog\n293368,dog\n293369,horse\n293370,truck\n293371,ship\n293372,cat\n293373,cat\n293374,truck\n293375,frog\n293376,bird\n293377,airplane\n293378,bird\n293379,dog\n293380,frog\n293381,automobile\n293382,cat\n293383,bird\n293384,airplane\n293385,deer\n293386,ship\n293387,truck\n293388,horse\n293389,frog\n293390,airplane\n293391,horse\n293392,deer\n293393,truck\n293394,truck\n293395,automobile\n293396,truck\n293397,dog\n293398,cat\n293399,ship\n293400,truck\n293401,bird\n293402,deer\n293403,cat\n293404,horse\n293405,horse\n293406,frog\n293407,cat\n293408,horse\n293409,airplane\n293410,ship\n293411,automobile\n293412,deer\n293413,dog\n293414,cat\n293415,cat\n293416,truck\n293417,ship\n293418,deer\n293419,ship\n293420,dog\n293421,cat\n293422,bird\n293423,frog\n293424,cat\n293425,deer\n293426,horse\n293427,automobile\n293428,bird\n293429,dog\n293430,bird\n293431,cat\n293432,horse\n293433,frog\n293434,automobile\n293435,horse\n293436,airplane\n293437,deer\n293438,bird\n293439,cat\n293440,deer\n293441,horse\n293442,automobile\n293443,bird\n293444,deer\n293445,bird\n293446,cat\n293447,cat\n293448,dog\n293449,truck\n293450,frog\n293451,truck\n293452,cat\n293453,deer\n293454,deer\n293455,automobile\n293456,ship\n293457,horse\n293458,deer\n293459,horse\n293460,dog\n293461,frog\n293462,airplane\n293463,truck\n293464,frog\n293465,deer\n293466,frog\n293467,automobile\n293468,dog\n293469,truck\n293470,dog\n293471,dog\n293472,ship\n293473,automobile\n293474,truck\n293475,truck\n293476,ship\n293477,deer\n293478,horse\n293479,bird\n293480,frog\n293481,airplane\n293482,dog\n293483,horse\n293484,bird\n293485,deer\n293486,bird\n293487,cat\n293488,cat\n293489,truck\n293490,truck\n293491,cat\n293492,dog\n293493,bird\n293494,dog\n293495,bird\n293496,truck\n293497,dog\n293498,dog\n293499,truck\n293500,bird\n293501,cat\n293502,bird\n293503,airplane\n293504,frog\n293505,dog\n293506,ship\n293507,ship\n293508,horse\n293509,airplane\n293510,deer\n293511,deer\n293512,horse\n293513,cat\n293514,deer\n293515,dog\n293516,frog\n293517,cat\n293518,airplane\n293519,ship\n293520,truck\n293521,frog\n293522,airplane\n293523,truck\n293524,frog\n293525,truck\n293526,cat\n293527,truck\n293528,deer\n293529,bird\n293530,cat\n293531,airplane\n293532,dog\n293533,horse\n293534,airplane\n293535,bird\n293536,cat\n293537,dog\n293538,ship\n293539,truck\n293540,truck\n293541,horse\n293542,truck\n293543,deer\n293544,truck\n293545,bird\n293546,automobile\n293547,cat\n293548,deer\n293549,airplane\n293550,truck\n293551,bird\n293552,deer\n293553,truck\n293554,ship\n293555,airplane\n293556,automobile\n293557,automobile\n293558,horse\n293559,dog\n293560,ship\n293561,truck\n293562,frog\n293563,horse\n293564,airplane\n293565,automobile\n293566,deer\n293567,dog\n293568,frog\n293569,deer\n293570,frog\n293571,frog\n293572,truck\n293573,cat\n293574,bird\n293575,airplane\n293576,bird\n293577,dog\n293578,truck\n293579,cat\n293580,frog\n293581,truck\n293582,bird\n293583,frog\n293584,horse\n293585,dog\n293586,horse\n293587,frog\n293588,horse\n293589,cat\n293590,frog\n293591,ship\n293592,horse\n293593,automobile\n293594,deer\n293595,ship\n293596,ship\n293597,airplane\n293598,ship\n293599,ship\n293600,horse\n293601,airplane\n293602,truck\n293603,cat\n293604,bird\n293605,horse\n293606,ship\n293607,frog\n293608,automobile\n293609,cat\n293610,horse\n293611,bird\n293612,horse\n293613,cat\n293614,cat\n293615,horse\n293616,automobile\n293617,automobile\n293618,dog\n293619,deer\n293620,frog\n293621,dog\n293622,dog\n293623,frog\n293624,bird\n293625,deer\n293626,deer\n293627,bird\n293628,horse\n293629,frog\n293630,dog\n293631,cat\n293632,bird\n293633,cat\n293634,frog\n293635,cat\n293636,automobile\n293637,ship\n293638,frog\n293639,bird\n293640,truck\n293641,dog\n293642,cat\n293643,deer\n293644,dog\n293645,dog\n293646,cat\n293647,cat\n293648,airplane\n293649,dog\n293650,deer\n293651,dog\n293652,truck\n293653,automobile\n293654,horse\n293655,cat\n293656,truck\n293657,cat\n293658,deer\n293659,automobile\n293660,frog\n293661,automobile\n293662,truck\n293663,bird\n293664,bird\n293665,truck\n293666,deer\n293667,dog\n293668,truck\n293669,deer\n293670,dog\n293671,airplane\n293672,cat\n293673,horse\n293674,frog\n293675,cat\n293676,frog\n293677,truck\n293678,automobile\n293679,ship\n293680,ship\n293681,airplane\n293682,truck\n293683,deer\n293684,deer\n293685,airplane\n293686,frog\n293687,truck\n293688,frog\n293689,horse\n293690,dog\n293691,deer\n293692,dog\n293693,truck\n293694,deer\n293695,cat\n293696,automobile\n293697,truck\n293698,cat\n293699,ship\n293700,horse\n293701,deer\n293702,ship\n293703,truck\n293704,horse\n293705,bird\n293706,truck\n293707,automobile\n293708,deer\n293709,frog\n293710,cat\n293711,frog\n293712,cat\n293713,airplane\n293714,frog\n293715,truck\n293716,frog\n293717,airplane\n293718,truck\n293719,airplane\n293720,cat\n293721,airplane\n293722,dog\n293723,cat\n293724,deer\n293725,truck\n293726,cat\n293727,horse\n293728,horse\n293729,airplane\n293730,frog\n293731,truck\n293732,truck\n293733,deer\n293734,cat\n293735,frog\n293736,frog\n293737,truck\n293738,dog\n293739,airplane\n293740,deer\n293741,deer\n293742,bird\n293743,truck\n293744,airplane\n293745,frog\n293746,bird\n293747,automobile\n293748,cat\n293749,truck\n293750,frog\n293751,horse\n293752,cat\n293753,deer\n293754,deer\n293755,dog\n293756,dog\n293757,automobile\n293758,cat\n293759,dog\n293760,frog\n293761,frog\n293762,bird\n293763,automobile\n293764,deer\n293765,bird\n293766,truck\n293767,dog\n293768,cat\n293769,bird\n293770,deer\n293771,bird\n293772,cat\n293773,truck\n293774,cat\n293775,frog\n293776,airplane\n293777,horse\n293778,horse\n293779,dog\n293780,automobile\n293781,airplane\n293782,automobile\n293783,bird\n293784,frog\n293785,automobile\n293786,airplane\n293787,bird\n293788,frog\n293789,airplane\n293790,ship\n293791,horse\n293792,frog\n293793,bird\n293794,airplane\n293795,bird\n293796,frog\n293797,dog\n293798,airplane\n293799,deer\n293800,truck\n293801,airplane\n293802,cat\n293803,airplane\n293804,automobile\n293805,frog\n293806,automobile\n293807,deer\n293808,horse\n293809,automobile\n293810,ship\n293811,airplane\n293812,airplane\n293813,dog\n293814,dog\n293815,airplane\n293816,bird\n293817,cat\n293818,cat\n293819,bird\n293820,dog\n293821,frog\n293822,bird\n293823,frog\n293824,automobile\n293825,dog\n293826,truck\n293827,frog\n293828,frog\n293829,airplane\n293830,dog\n293831,frog\n293832,bird\n293833,automobile\n293834,deer\n293835,dog\n293836,dog\n293837,cat\n293838,horse\n293839,cat\n293840,bird\n293841,automobile\n293842,ship\n293843,truck\n293844,deer\n293845,horse\n293846,cat\n293847,bird\n293848,cat\n293849,truck\n293850,ship\n293851,ship\n293852,dog\n293853,horse\n293854,deer\n293855,horse\n293856,bird\n293857,frog\n293858,truck\n293859,truck\n293860,frog\n293861,automobile\n293862,frog\n293863,cat\n293864,frog\n293865,dog\n293866,frog\n293867,deer\n293868,deer\n293869,airplane\n293870,cat\n293871,horse\n293872,deer\n293873,bird\n293874,truck\n293875,ship\n293876,frog\n293877,bird\n293878,deer\n293879,ship\n293880,cat\n293881,bird\n293882,dog\n293883,dog\n293884,cat\n293885,horse\n293886,truck\n293887,ship\n293888,dog\n293889,dog\n293890,deer\n293891,horse\n293892,automobile\n293893,truck\n293894,frog\n293895,bird\n293896,cat\n293897,ship\n293898,cat\n293899,cat\n293900,bird\n293901,truck\n293902,dog\n293903,automobile\n293904,frog\n293905,deer\n293906,bird\n293907,deer\n293908,deer\n293909,frog\n293910,dog\n293911,airplane\n293912,deer\n293913,automobile\n293914,frog\n293915,automobile\n293916,dog\n293917,horse\n293918,frog\n293919,ship\n293920,dog\n293921,truck\n293922,deer\n293923,horse\n293924,bird\n293925,dog\n293926,dog\n293927,deer\n293928,cat\n293929,frog\n293930,cat\n293931,truck\n293932,deer\n293933,deer\n293934,deer\n293935,frog\n293936,airplane\n293937,bird\n293938,deer\n293939,automobile\n293940,dog\n293941,dog\n293942,dog\n293943,cat\n293944,truck\n293945,deer\n293946,airplane\n293947,deer\n293948,horse\n293949,bird\n293950,frog\n293951,truck\n293952,airplane\n293953,automobile\n293954,airplane\n293955,truck\n293956,dog\n293957,automobile\n293958,bird\n293959,deer\n293960,airplane\n293961,cat\n293962,deer\n293963,cat\n293964,deer\n293965,cat\n293966,airplane\n293967,automobile\n293968,bird\n293969,deer\n293970,ship\n293971,cat\n293972,horse\n293973,bird\n293974,deer\n293975,deer\n293976,truck\n293977,deer\n293978,horse\n293979,horse\n293980,bird\n293981,frog\n293982,dog\n293983,cat\n293984,dog\n293985,airplane\n293986,deer\n293987,cat\n293988,truck\n293989,truck\n293990,cat\n293991,frog\n293992,automobile\n293993,ship\n293994,truck\n293995,cat\n293996,cat\n293997,dog\n293998,automobile\n293999,bird\n294000,deer\n294001,cat\n294002,frog\n294003,ship\n294004,truck\n294005,cat\n294006,dog\n294007,frog\n294008,truck\n294009,deer\n294010,cat\n294011,truck\n294012,frog\n294013,airplane\n294014,truck\n294015,dog\n294016,deer\n294017,ship\n294018,deer\n294019,dog\n294020,ship\n294021,airplane\n294022,ship\n294023,cat\n294024,truck\n294025,truck\n294026,airplane\n294027,cat\n294028,dog\n294029,horse\n294030,frog\n294031,cat\n294032,automobile\n294033,horse\n294034,deer\n294035,cat\n294036,cat\n294037,horse\n294038,bird\n294039,frog\n294040,horse\n294041,cat\n294042,automobile\n294043,automobile\n294044,cat\n294045,truck\n294046,bird\n294047,automobile\n294048,automobile\n294049,bird\n294050,automobile\n294051,cat\n294052,frog\n294053,frog\n294054,frog\n294055,frog\n294056,horse\n294057,deer\n294058,horse\n294059,bird\n294060,cat\n294061,deer\n294062,cat\n294063,cat\n294064,airplane\n294065,automobile\n294066,frog\n294067,airplane\n294068,airplane\n294069,deer\n294070,horse\n294071,frog\n294072,deer\n294073,horse\n294074,dog\n294075,truck\n294076,airplane\n294077,cat\n294078,bird\n294079,frog\n294080,airplane\n294081,truck\n294082,cat\n294083,automobile\n294084,deer\n294085,deer\n294086,truck\n294087,cat\n294088,deer\n294089,frog\n294090,deer\n294091,truck\n294092,bird\n294093,airplane\n294094,truck\n294095,automobile\n294096,horse\n294097,cat\n294098,deer\n294099,airplane\n294100,deer\n294101,truck\n294102,cat\n294103,deer\n294104,truck\n294105,horse\n294106,airplane\n294107,deer\n294108,ship\n294109,airplane\n294110,ship\n294111,frog\n294112,dog\n294113,deer\n294114,ship\n294115,frog\n294116,bird\n294117,horse\n294118,truck\n294119,cat\n294120,bird\n294121,bird\n294122,cat\n294123,cat\n294124,cat\n294125,ship\n294126,cat\n294127,truck\n294128,airplane\n294129,truck\n294130,horse\n294131,automobile\n294132,bird\n294133,horse\n294134,ship\n294135,cat\n294136,automobile\n294137,ship\n294138,dog\n294139,airplane\n294140,truck\n294141,deer\n294142,frog\n294143,truck\n294144,dog\n294145,frog\n294146,dog\n294147,frog\n294148,horse\n294149,cat\n294150,truck\n294151,dog\n294152,deer\n294153,bird\n294154,truck\n294155,dog\n294156,dog\n294157,dog\n294158,horse\n294159,horse\n294160,deer\n294161,truck\n294162,horse\n294163,deer\n294164,deer\n294165,bird\n294166,frog\n294167,truck\n294168,ship\n294169,deer\n294170,dog\n294171,frog\n294172,dog\n294173,airplane\n294174,deer\n294175,dog\n294176,frog\n294177,ship\n294178,dog\n294179,bird\n294180,dog\n294181,frog\n294182,bird\n294183,deer\n294184,airplane\n294185,ship\n294186,cat\n294187,cat\n294188,dog\n294189,ship\n294190,truck\n294191,deer\n294192,dog\n294193,ship\n294194,horse\n294195,automobile\n294196,ship\n294197,airplane\n294198,ship\n294199,dog\n294200,horse\n294201,truck\n294202,deer\n294203,frog\n294204,cat\n294205,dog\n294206,automobile\n294207,horse\n294208,frog\n294209,frog\n294210,cat\n294211,bird\n294212,airplane\n294213,cat\n294214,bird\n294215,frog\n294216,horse\n294217,cat\n294218,truck\n294219,bird\n294220,airplane\n294221,ship\n294222,horse\n294223,dog\n294224,dog\n294225,cat\n294226,cat\n294227,dog\n294228,frog\n294229,cat\n294230,deer\n294231,deer\n294232,automobile\n294233,airplane\n294234,bird\n294235,deer\n294236,automobile\n294237,truck\n294238,dog\n294239,cat\n294240,truck\n294241,deer\n294242,deer\n294243,deer\n294244,ship\n294245,dog\n294246,cat\n294247,bird\n294248,airplane\n294249,bird\n294250,bird\n294251,horse\n294252,ship\n294253,frog\n294254,bird\n294255,deer\n294256,deer\n294257,truck\n294258,ship\n294259,automobile\n294260,ship\n294261,airplane\n294262,dog\n294263,ship\n294264,deer\n294265,ship\n294266,ship\n294267,frog\n294268,automobile\n294269,truck\n294270,airplane\n294271,truck\n294272,dog\n294273,truck\n294274,automobile\n294275,ship\n294276,truck\n294277,airplane\n294278,bird\n294279,ship\n294280,horse\n294281,ship\n294282,airplane\n294283,cat\n294284,automobile\n294285,dog\n294286,dog\n294287,frog\n294288,ship\n294289,cat\n294290,horse\n294291,cat\n294292,frog\n294293,automobile\n294294,automobile\n294295,automobile\n294296,deer\n294297,ship\n294298,cat\n294299,cat\n294300,automobile\n294301,dog\n294302,airplane\n294303,deer\n294304,truck\n294305,dog\n294306,bird\n294307,ship\n294308,cat\n294309,dog\n294310,horse\n294311,airplane\n294312,dog\n294313,cat\n294314,airplane\n294315,horse\n294316,deer\n294317,ship\n294318,frog\n294319,bird\n294320,frog\n294321,airplane\n294322,horse\n294323,bird\n294324,cat\n294325,horse\n294326,horse\n294327,dog\n294328,cat\n294329,airplane\n294330,truck\n294331,truck\n294332,deer\n294333,frog\n294334,bird\n294335,ship\n294336,automobile\n294337,dog\n294338,cat\n294339,ship\n294340,cat\n294341,airplane\n294342,truck\n294343,deer\n294344,ship\n294345,cat\n294346,horse\n294347,truck\n294348,deer\n294349,deer\n294350,ship\n294351,horse\n294352,horse\n294353,cat\n294354,deer\n294355,bird\n294356,dog\n294357,horse\n294358,bird\n294359,cat\n294360,truck\n294361,frog\n294362,bird\n294363,automobile\n294364,cat\n294365,ship\n294366,cat\n294367,airplane\n294368,dog\n294369,cat\n294370,ship\n294371,ship\n294372,dog\n294373,cat\n294374,horse\n294375,cat\n294376,deer\n294377,cat\n294378,ship\n294379,bird\n294380,cat\n294381,frog\n294382,horse\n294383,ship\n294384,automobile\n294385,automobile\n294386,cat\n294387,horse\n294388,dog\n294389,automobile\n294390,horse\n294391,cat\n294392,horse\n294393,deer\n294394,airplane\n294395,ship\n294396,frog\n294397,dog\n294398,horse\n294399,frog\n294400,deer\n294401,ship\n294402,dog\n294403,dog\n294404,frog\n294405,truck\n294406,automobile\n294407,frog\n294408,airplane\n294409,deer\n294410,ship\n294411,cat\n294412,frog\n294413,horse\n294414,horse\n294415,dog\n294416,frog\n294417,cat\n294418,horse\n294419,cat\n294420,deer\n294421,horse\n294422,dog\n294423,automobile\n294424,dog\n294425,truck\n294426,bird\n294427,horse\n294428,deer\n294429,airplane\n294430,truck\n294431,cat\n294432,airplane\n294433,horse\n294434,deer\n294435,automobile\n294436,truck\n294437,airplane\n294438,deer\n294439,truck\n294440,truck\n294441,bird\n294442,ship\n294443,automobile\n294444,airplane\n294445,dog\n294446,bird\n294447,deer\n294448,deer\n294449,truck\n294450,horse\n294451,dog\n294452,dog\n294453,airplane\n294454,bird\n294455,frog\n294456,deer\n294457,ship\n294458,deer\n294459,ship\n294460,dog\n294461,deer\n294462,cat\n294463,cat\n294464,dog\n294465,truck\n294466,airplane\n294467,truck\n294468,airplane\n294469,deer\n294470,frog\n294471,deer\n294472,dog\n294473,cat\n294474,cat\n294475,deer\n294476,dog\n294477,deer\n294478,airplane\n294479,horse\n294480,cat\n294481,dog\n294482,ship\n294483,cat\n294484,automobile\n294485,automobile\n294486,ship\n294487,horse\n294488,dog\n294489,airplane\n294490,truck\n294491,cat\n294492,bird\n294493,deer\n294494,deer\n294495,deer\n294496,truck\n294497,ship\n294498,cat\n294499,truck\n294500,horse\n294501,deer\n294502,automobile\n294503,airplane\n294504,frog\n294505,ship\n294506,horse\n294507,cat\n294508,bird\n294509,ship\n294510,frog\n294511,truck\n294512,bird\n294513,frog\n294514,truck\n294515,horse\n294516,horse\n294517,cat\n294518,horse\n294519,airplane\n294520,cat\n294521,bird\n294522,automobile\n294523,truck\n294524,ship\n294525,ship\n294526,ship\n294527,dog\n294528,airplane\n294529,ship\n294530,deer\n294531,cat\n294532,frog\n294533,frog\n294534,cat\n294535,ship\n294536,horse\n294537,frog\n294538,frog\n294539,automobile\n294540,frog\n294541,frog\n294542,deer\n294543,bird\n294544,cat\n294545,cat\n294546,ship\n294547,cat\n294548,airplane\n294549,deer\n294550,dog\n294551,automobile\n294552,airplane\n294553,cat\n294554,horse\n294555,truck\n294556,truck\n294557,dog\n294558,dog\n294559,deer\n294560,deer\n294561,bird\n294562,frog\n294563,truck\n294564,deer\n294565,dog\n294566,frog\n294567,horse\n294568,deer\n294569,ship\n294570,deer\n294571,frog\n294572,truck\n294573,automobile\n294574,horse\n294575,airplane\n294576,bird\n294577,horse\n294578,dog\n294579,deer\n294580,automobile\n294581,ship\n294582,truck\n294583,frog\n294584,horse\n294585,dog\n294586,truck\n294587,cat\n294588,bird\n294589,dog\n294590,frog\n294591,dog\n294592,bird\n294593,cat\n294594,dog\n294595,frog\n294596,automobile\n294597,deer\n294598,deer\n294599,horse\n294600,bird\n294601,truck\n294602,truck\n294603,cat\n294604,dog\n294605,deer\n294606,cat\n294607,automobile\n294608,cat\n294609,cat\n294610,ship\n294611,horse\n294612,ship\n294613,deer\n294614,automobile\n294615,truck\n294616,deer\n294617,cat\n294618,ship\n294619,horse\n294620,dog\n294621,deer\n294622,cat\n294623,horse\n294624,horse\n294625,horse\n294626,frog\n294627,automobile\n294628,bird\n294629,frog\n294630,frog\n294631,airplane\n294632,frog\n294633,automobile\n294634,automobile\n294635,truck\n294636,deer\n294637,deer\n294638,dog\n294639,deer\n294640,automobile\n294641,airplane\n294642,cat\n294643,airplane\n294644,automobile\n294645,cat\n294646,bird\n294647,automobile\n294648,horse\n294649,horse\n294650,dog\n294651,bird\n294652,frog\n294653,deer\n294654,truck\n294655,truck\n294656,truck\n294657,airplane\n294658,automobile\n294659,ship\n294660,automobile\n294661,deer\n294662,frog\n294663,cat\n294664,ship\n294665,truck\n294666,deer\n294667,bird\n294668,deer\n294669,cat\n294670,truck\n294671,frog\n294672,airplane\n294673,frog\n294674,cat\n294675,cat\n294676,deer\n294677,airplane\n294678,frog\n294679,airplane\n294680,ship\n294681,cat\n294682,deer\n294683,bird\n294684,automobile\n294685,truck\n294686,bird\n294687,ship\n294688,dog\n294689,horse\n294690,automobile\n294691,bird\n294692,automobile\n294693,deer\n294694,horse\n294695,dog\n294696,frog\n294697,automobile\n294698,airplane\n294699,automobile\n294700,ship\n294701,cat\n294702,deer\n294703,ship\n294704,deer\n294705,automobile\n294706,ship\n294707,automobile\n294708,frog\n294709,dog\n294710,truck\n294711,bird\n294712,ship\n294713,dog\n294714,ship\n294715,truck\n294716,cat\n294717,bird\n294718,horse\n294719,frog\n294720,ship\n294721,airplane\n294722,deer\n294723,cat\n294724,cat\n294725,automobile\n294726,airplane\n294727,dog\n294728,horse\n294729,deer\n294730,automobile\n294731,automobile\n294732,cat\n294733,cat\n294734,cat\n294735,frog\n294736,horse\n294737,horse\n294738,dog\n294739,frog\n294740,dog\n294741,cat\n294742,truck\n294743,bird\n294744,bird\n294745,horse\n294746,frog\n294747,horse\n294748,truck\n294749,automobile\n294750,automobile\n294751,deer\n294752,cat\n294753,bird\n294754,horse\n294755,horse\n294756,truck\n294757,cat\n294758,horse\n294759,deer\n294760,bird\n294761,deer\n294762,airplane\n294763,horse\n294764,cat\n294765,automobile\n294766,truck\n294767,airplane\n294768,automobile\n294769,airplane\n294770,frog\n294771,truck\n294772,ship\n294773,truck\n294774,frog\n294775,deer\n294776,deer\n294777,horse\n294778,dog\n294779,dog\n294780,truck\n294781,dog\n294782,ship\n294783,horse\n294784,horse\n294785,truck\n294786,bird\n294787,cat\n294788,automobile\n294789,horse\n294790,frog\n294791,truck\n294792,truck\n294793,deer\n294794,bird\n294795,ship\n294796,deer\n294797,ship\n294798,airplane\n294799,bird\n294800,frog\n294801,airplane\n294802,cat\n294803,horse\n294804,automobile\n294805,frog\n294806,cat\n294807,frog\n294808,dog\n294809,cat\n294810,automobile\n294811,ship\n294812,deer\n294813,frog\n294814,horse\n294815,horse\n294816,cat\n294817,cat\n294818,cat\n294819,bird\n294820,bird\n294821,frog\n294822,automobile\n294823,horse\n294824,airplane\n294825,automobile\n294826,ship\n294827,airplane\n294828,airplane\n294829,frog\n294830,dog\n294831,dog\n294832,cat\n294833,ship\n294834,airplane\n294835,cat\n294836,truck\n294837,bird\n294838,ship\n294839,horse\n294840,bird\n294841,bird\n294842,deer\n294843,dog\n294844,dog\n294845,deer\n294846,frog\n294847,deer\n294848,truck\n294849,truck\n294850,horse\n294851,horse\n294852,deer\n294853,dog\n294854,deer\n294855,cat\n294856,horse\n294857,frog\n294858,frog\n294859,automobile\n294860,dog\n294861,automobile\n294862,horse\n294863,bird\n294864,dog\n294865,dog\n294866,frog\n294867,cat\n294868,airplane\n294869,frog\n294870,truck\n294871,deer\n294872,cat\n294873,bird\n294874,automobile\n294875,bird\n294876,cat\n294877,airplane\n294878,cat\n294879,dog\n294880,airplane\n294881,horse\n294882,dog\n294883,ship\n294884,cat\n294885,dog\n294886,automobile\n294887,deer\n294888,dog\n294889,deer\n294890,bird\n294891,truck\n294892,automobile\n294893,horse\n294894,frog\n294895,dog\n294896,truck\n294897,frog\n294898,ship\n294899,deer\n294900,airplane\n294901,airplane\n294902,ship\n294903,deer\n294904,deer\n294905,ship\n294906,horse\n294907,cat\n294908,frog\n294909,horse\n294910,cat\n294911,cat\n294912,cat\n294913,horse\n294914,dog\n294915,deer\n294916,dog\n294917,cat\n294918,ship\n294919,frog\n294920,bird\n294921,ship\n294922,frog\n294923,ship\n294924,airplane\n294925,dog\n294926,truck\n294927,ship\n294928,frog\n294929,cat\n294930,bird\n294931,dog\n294932,deer\n294933,cat\n294934,automobile\n294935,bird\n294936,deer\n294937,ship\n294938,ship\n294939,cat\n294940,cat\n294941,cat\n294942,airplane\n294943,deer\n294944,dog\n294945,cat\n294946,frog\n294947,truck\n294948,ship\n294949,deer\n294950,automobile\n294951,bird\n294952,dog\n294953,ship\n294954,deer\n294955,bird\n294956,horse\n294957,automobile\n294958,deer\n294959,airplane\n294960,horse\n294961,truck\n294962,truck\n294963,deer\n294964,horse\n294965,bird\n294966,frog\n294967,horse\n294968,dog\n294969,cat\n294970,horse\n294971,truck\n294972,dog\n294973,cat\n294974,cat\n294975,airplane\n294976,automobile\n294977,cat\n294978,automobile\n294979,ship\n294980,truck\n294981,frog\n294982,dog\n294983,automobile\n294984,deer\n294985,truck\n294986,horse\n294987,truck\n294988,deer\n294989,cat\n294990,horse\n294991,frog\n294992,frog\n294993,dog\n294994,horse\n294995,truck\n294996,airplane\n294997,bird\n294998,airplane\n294999,dog\n295000,ship\n295001,automobile\n295002,bird\n295003,truck\n295004,deer\n295005,ship\n295006,bird\n295007,dog\n295008,truck\n295009,airplane\n295010,dog\n295011,horse\n295012,deer\n295013,frog\n295014,automobile\n295015,horse\n295016,horse\n295017,frog\n295018,ship\n295019,frog\n295020,cat\n295021,truck\n295022,horse\n295023,ship\n295024,deer\n295025,airplane\n295026,automobile\n295027,deer\n295028,airplane\n295029,frog\n295030,cat\n295031,bird\n295032,cat\n295033,cat\n295034,truck\n295035,cat\n295036,truck\n295037,deer\n295038,ship\n295039,airplane\n295040,horse\n295041,deer\n295042,automobile\n295043,dog\n295044,horse\n295045,cat\n295046,truck\n295047,frog\n295048,cat\n295049,ship\n295050,airplane\n295051,frog\n295052,airplane\n295053,airplane\n295054,truck\n295055,automobile\n295056,deer\n295057,horse\n295058,bird\n295059,airplane\n295060,bird\n295061,horse\n295062,frog\n295063,airplane\n295064,dog\n295065,cat\n295066,deer\n295067,truck\n295068,dog\n295069,frog\n295070,deer\n295071,truck\n295072,cat\n295073,deer\n295074,cat\n295075,truck\n295076,automobile\n295077,frog\n295078,cat\n295079,ship\n295080,cat\n295081,bird\n295082,truck\n295083,truck\n295084,truck\n295085,deer\n295086,frog\n295087,horse\n295088,frog\n295089,truck\n295090,truck\n295091,cat\n295092,bird\n295093,horse\n295094,dog\n295095,cat\n295096,horse\n295097,frog\n295098,frog\n295099,horse\n295100,frog\n295101,bird\n295102,horse\n295103,horse\n295104,frog\n295105,ship\n295106,cat\n295107,dog\n295108,frog\n295109,dog\n295110,truck\n295111,bird\n295112,bird\n295113,cat\n295114,horse\n295115,cat\n295116,horse\n295117,frog\n295118,dog\n295119,truck\n295120,truck\n295121,ship\n295122,horse\n295123,airplane\n295124,truck\n295125,bird\n295126,frog\n295127,horse\n295128,airplane\n295129,automobile\n295130,airplane\n295131,frog\n295132,airplane\n295133,ship\n295134,automobile\n295135,truck\n295136,cat\n295137,truck\n295138,airplane\n295139,frog\n295140,ship\n295141,automobile\n295142,deer\n295143,cat\n295144,truck\n295145,truck\n295146,frog\n295147,cat\n295148,dog\n295149,ship\n295150,airplane\n295151,horse\n295152,automobile\n295153,ship\n295154,ship\n295155,deer\n295156,airplane\n295157,frog\n295158,cat\n295159,bird\n295160,ship\n295161,truck\n295162,automobile\n295163,cat\n295164,bird\n295165,truck\n295166,deer\n295167,deer\n295168,horse\n295169,deer\n295170,airplane\n295171,airplane\n295172,airplane\n295173,deer\n295174,bird\n295175,horse\n295176,truck\n295177,frog\n295178,bird\n295179,frog\n295180,horse\n295181,cat\n295182,cat\n295183,horse\n295184,deer\n295185,bird\n295186,automobile\n295187,horse\n295188,automobile\n295189,frog\n295190,cat\n295191,truck\n295192,ship\n295193,automobile\n295194,truck\n295195,airplane\n295196,ship\n295197,horse\n295198,bird\n295199,dog\n295200,truck\n295201,cat\n295202,deer\n295203,deer\n295204,ship\n295205,dog\n295206,dog\n295207,truck\n295208,dog\n295209,deer\n295210,automobile\n295211,truck\n295212,cat\n295213,frog\n295214,horse\n295215,cat\n295216,truck\n295217,dog\n295218,airplane\n295219,automobile\n295220,frog\n295221,bird\n295222,airplane\n295223,cat\n295224,ship\n295225,airplane\n295226,dog\n295227,deer\n295228,airplane\n295229,truck\n295230,deer\n295231,deer\n295232,airplane\n295233,ship\n295234,horse\n295235,frog\n295236,frog\n295237,airplane\n295238,automobile\n295239,bird\n295240,cat\n295241,cat\n295242,dog\n295243,truck\n295244,deer\n295245,cat\n295246,cat\n295247,frog\n295248,cat\n295249,deer\n295250,automobile\n295251,dog\n295252,ship\n295253,automobile\n295254,horse\n295255,cat\n295256,bird\n295257,ship\n295258,dog\n295259,truck\n295260,automobile\n295261,ship\n295262,deer\n295263,dog\n295264,horse\n295265,cat\n295266,cat\n295267,deer\n295268,horse\n295269,frog\n295270,airplane\n295271,frog\n295272,horse\n295273,frog\n295274,truck\n295275,dog\n295276,dog\n295277,frog\n295278,truck\n295279,cat\n295280,horse\n295281,frog\n295282,truck\n295283,cat\n295284,cat\n295285,deer\n295286,automobile\n295287,airplane\n295288,deer\n295289,truck\n295290,horse\n295291,bird\n295292,dog\n295293,bird\n295294,truck\n295295,deer\n295296,automobile\n295297,deer\n295298,automobile\n295299,deer\n295300,ship\n295301,deer\n295302,horse\n295303,airplane\n295304,airplane\n295305,deer\n295306,airplane\n295307,cat\n295308,horse\n295309,deer\n295310,dog\n295311,deer\n295312,airplane\n295313,cat\n295314,deer\n295315,dog\n295316,bird\n295317,truck\n295318,cat\n295319,bird\n295320,truck\n295321,bird\n295322,horse\n295323,airplane\n295324,dog\n295325,automobile\n295326,frog\n295327,dog\n295328,truck\n295329,deer\n295330,deer\n295331,bird\n295332,airplane\n295333,cat\n295334,truck\n295335,automobile\n295336,airplane\n295337,cat\n295338,deer\n295339,deer\n295340,bird\n295341,airplane\n295342,cat\n295343,deer\n295344,cat\n295345,horse\n295346,frog\n295347,cat\n295348,frog\n295349,airplane\n295350,bird\n295351,airplane\n295352,cat\n295353,ship\n295354,deer\n295355,frog\n295356,automobile\n295357,truck\n295358,deer\n295359,truck\n295360,cat\n295361,horse\n295362,airplane\n295363,airplane\n295364,truck\n295365,horse\n295366,frog\n295367,cat\n295368,cat\n295369,horse\n295370,truck\n295371,dog\n295372,airplane\n295373,automobile\n295374,automobile\n295375,cat\n295376,cat\n295377,deer\n295378,automobile\n295379,horse\n295380,dog\n295381,truck\n295382,frog\n295383,automobile\n295384,bird\n295385,bird\n295386,deer\n295387,horse\n295388,horse\n295389,truck\n295390,dog\n295391,airplane\n295392,automobile\n295393,frog\n295394,horse\n295395,dog\n295396,truck\n295397,frog\n295398,bird\n295399,truck\n295400,automobile\n295401,frog\n295402,truck\n295403,truck\n295404,frog\n295405,deer\n295406,horse\n295407,frog\n295408,dog\n295409,frog\n295410,deer\n295411,dog\n295412,cat\n295413,airplane\n295414,dog\n295415,cat\n295416,frog\n295417,cat\n295418,bird\n295419,airplane\n295420,airplane\n295421,cat\n295422,cat\n295423,cat\n295424,cat\n295425,truck\n295426,deer\n295427,deer\n295428,frog\n295429,automobile\n295430,truck\n295431,horse\n295432,airplane\n295433,automobile\n295434,frog\n295435,horse\n295436,ship\n295437,ship\n295438,frog\n295439,horse\n295440,bird\n295441,airplane\n295442,airplane\n295443,automobile\n295444,truck\n295445,truck\n295446,frog\n295447,dog\n295448,automobile\n295449,cat\n295450,ship\n295451,ship\n295452,horse\n295453,truck\n295454,automobile\n295455,deer\n295456,dog\n295457,ship\n295458,dog\n295459,bird\n295460,bird\n295461,airplane\n295462,cat\n295463,dog\n295464,frog\n295465,cat\n295466,airplane\n295467,frog\n295468,frog\n295469,bird\n295470,airplane\n295471,ship\n295472,ship\n295473,bird\n295474,horse\n295475,deer\n295476,ship\n295477,horse\n295478,deer\n295479,cat\n295480,airplane\n295481,airplane\n295482,bird\n295483,truck\n295484,automobile\n295485,deer\n295486,automobile\n295487,automobile\n295488,truck\n295489,frog\n295490,frog\n295491,frog\n295492,cat\n295493,deer\n295494,deer\n295495,frog\n295496,deer\n295497,horse\n295498,frog\n295499,bird\n295500,horse\n295501,airplane\n295502,deer\n295503,dog\n295504,deer\n295505,dog\n295506,horse\n295507,deer\n295508,bird\n295509,cat\n295510,cat\n295511,automobile\n295512,dog\n295513,frog\n295514,cat\n295515,truck\n295516,cat\n295517,truck\n295518,horse\n295519,deer\n295520,dog\n295521,deer\n295522,horse\n295523,ship\n295524,bird\n295525,cat\n295526,truck\n295527,deer\n295528,airplane\n295529,horse\n295530,airplane\n295531,truck\n295532,frog\n295533,dog\n295534,truck\n295535,frog\n295536,truck\n295537,cat\n295538,frog\n295539,frog\n295540,dog\n295541,frog\n295542,frog\n295543,cat\n295544,deer\n295545,truck\n295546,frog\n295547,horse\n295548,automobile\n295549,frog\n295550,truck\n295551,automobile\n295552,bird\n295553,bird\n295554,truck\n295555,deer\n295556,horse\n295557,dog\n295558,cat\n295559,bird\n295560,ship\n295561,ship\n295562,deer\n295563,deer\n295564,cat\n295565,frog\n295566,deer\n295567,horse\n295568,cat\n295569,dog\n295570,automobile\n295571,truck\n295572,ship\n295573,airplane\n295574,frog\n295575,airplane\n295576,airplane\n295577,cat\n295578,ship\n295579,automobile\n295580,frog\n295581,frog\n295582,frog\n295583,bird\n295584,frog\n295585,frog\n295586,horse\n295587,dog\n295588,cat\n295589,ship\n295590,cat\n295591,frog\n295592,deer\n295593,deer\n295594,cat\n295595,truck\n295596,dog\n295597,dog\n295598,bird\n295599,dog\n295600,airplane\n295601,automobile\n295602,deer\n295603,frog\n295604,automobile\n295605,automobile\n295606,cat\n295607,frog\n295608,dog\n295609,dog\n295610,frog\n295611,horse\n295612,frog\n295613,cat\n295614,truck\n295615,cat\n295616,truck\n295617,horse\n295618,automobile\n295619,frog\n295620,horse\n295621,ship\n295622,bird\n295623,horse\n295624,truck\n295625,ship\n295626,ship\n295627,horse\n295628,bird\n295629,bird\n295630,automobile\n295631,automobile\n295632,dog\n295633,truck\n295634,dog\n295635,horse\n295636,deer\n295637,truck\n295638,horse\n295639,truck\n295640,horse\n295641,cat\n295642,frog\n295643,airplane\n295644,frog\n295645,horse\n295646,cat\n295647,airplane\n295648,frog\n295649,airplane\n295650,dog\n295651,frog\n295652,cat\n295653,horse\n295654,cat\n295655,ship\n295656,airplane\n295657,automobile\n295658,airplane\n295659,cat\n295660,cat\n295661,airplane\n295662,dog\n295663,cat\n295664,bird\n295665,bird\n295666,bird\n295667,dog\n295668,airplane\n295669,bird\n295670,dog\n295671,ship\n295672,deer\n295673,frog\n295674,ship\n295675,ship\n295676,deer\n295677,deer\n295678,airplane\n295679,frog\n295680,deer\n295681,dog\n295682,horse\n295683,dog\n295684,dog\n295685,cat\n295686,truck\n295687,deer\n295688,deer\n295689,frog\n295690,ship\n295691,ship\n295692,dog\n295693,airplane\n295694,horse\n295695,airplane\n295696,dog\n295697,frog\n295698,truck\n295699,frog\n295700,dog\n295701,airplane\n295702,bird\n295703,truck\n295704,deer\n295705,frog\n295706,horse\n295707,dog\n295708,horse\n295709,automobile\n295710,airplane\n295711,deer\n295712,horse\n295713,deer\n295714,bird\n295715,bird\n295716,ship\n295717,bird\n295718,deer\n295719,cat\n295720,dog\n295721,bird\n295722,deer\n295723,deer\n295724,dog\n295725,ship\n295726,airplane\n295727,truck\n295728,bird\n295729,ship\n295730,ship\n295731,cat\n295732,horse\n295733,truck\n295734,dog\n295735,truck\n295736,horse\n295737,bird\n295738,cat\n295739,deer\n295740,dog\n295741,dog\n295742,deer\n295743,airplane\n295744,ship\n295745,deer\n295746,horse\n295747,bird\n295748,airplane\n295749,airplane\n295750,ship\n295751,cat\n295752,automobile\n295753,automobile\n295754,cat\n295755,deer\n295756,airplane\n295757,dog\n295758,airplane\n295759,bird\n295760,cat\n295761,ship\n295762,cat\n295763,bird\n295764,truck\n295765,airplane\n295766,deer\n295767,cat\n295768,airplane\n295769,horse\n295770,horse\n295771,bird\n295772,horse\n295773,cat\n295774,bird\n295775,dog\n295776,horse\n295777,horse\n295778,bird\n295779,deer\n295780,airplane\n295781,cat\n295782,bird\n295783,horse\n295784,dog\n295785,airplane\n295786,horse\n295787,frog\n295788,frog\n295789,horse\n295790,automobile\n295791,frog\n295792,ship\n295793,frog\n295794,cat\n295795,airplane\n295796,horse\n295797,bird\n295798,ship\n295799,deer\n295800,cat\n295801,dog\n295802,dog\n295803,ship\n295804,cat\n295805,automobile\n295806,airplane\n295807,bird\n295808,horse\n295809,dog\n295810,horse\n295811,dog\n295812,deer\n295813,cat\n295814,deer\n295815,airplane\n295816,cat\n295817,truck\n295818,automobile\n295819,bird\n295820,truck\n295821,bird\n295822,airplane\n295823,cat\n295824,ship\n295825,horse\n295826,ship\n295827,truck\n295828,deer\n295829,deer\n295830,automobile\n295831,horse\n295832,truck\n295833,truck\n295834,bird\n295835,bird\n295836,dog\n295837,cat\n295838,cat\n295839,truck\n295840,airplane\n295841,deer\n295842,deer\n295843,airplane\n295844,automobile\n295845,frog\n295846,horse\n295847,automobile\n295848,automobile\n295849,deer\n295850,horse\n295851,airplane\n295852,ship\n295853,dog\n295854,horse\n295855,deer\n295856,cat\n295857,horse\n295858,ship\n295859,cat\n295860,horse\n295861,bird\n295862,deer\n295863,airplane\n295864,deer\n295865,truck\n295866,truck\n295867,bird\n295868,airplane\n295869,frog\n295870,bird\n295871,dog\n295872,deer\n295873,truck\n295874,deer\n295875,deer\n295876,cat\n295877,automobile\n295878,deer\n295879,automobile\n295880,automobile\n295881,cat\n295882,dog\n295883,dog\n295884,cat\n295885,frog\n295886,bird\n295887,frog\n295888,airplane\n295889,frog\n295890,frog\n295891,dog\n295892,ship\n295893,airplane\n295894,truck\n295895,truck\n295896,cat\n295897,cat\n295898,airplane\n295899,bird\n295900,horse\n295901,airplane\n295902,airplane\n295903,cat\n295904,horse\n295905,deer\n295906,dog\n295907,ship\n295908,airplane\n295909,deer\n295910,truck\n295911,bird\n295912,deer\n295913,truck\n295914,airplane\n295915,ship\n295916,deer\n295917,bird\n295918,frog\n295919,cat\n295920,airplane\n295921,bird\n295922,cat\n295923,airplane\n295924,airplane\n295925,dog\n295926,airplane\n295927,cat\n295928,truck\n295929,frog\n295930,horse\n295931,truck\n295932,bird\n295933,airplane\n295934,ship\n295935,truck\n295936,dog\n295937,cat\n295938,bird\n295939,bird\n295940,truck\n295941,horse\n295942,cat\n295943,ship\n295944,bird\n295945,deer\n295946,ship\n295947,deer\n295948,ship\n295949,truck\n295950,frog\n295951,airplane\n295952,dog\n295953,truck\n295954,truck\n295955,bird\n295956,ship\n295957,bird\n295958,dog\n295959,automobile\n295960,deer\n295961,bird\n295962,horse\n295963,truck\n295964,frog\n295965,bird\n295966,frog\n295967,horse\n295968,truck\n295969,ship\n295970,dog\n295971,deer\n295972,automobile\n295973,airplane\n295974,bird\n295975,bird\n295976,bird\n295977,frog\n295978,deer\n295979,truck\n295980,airplane\n295981,deer\n295982,bird\n295983,horse\n295984,dog\n295985,cat\n295986,ship\n295987,horse\n295988,bird\n295989,ship\n295990,airplane\n295991,horse\n295992,frog\n295993,automobile\n295994,airplane\n295995,cat\n295996,airplane\n295997,bird\n295998,cat\n295999,deer\n296000,frog\n296001,bird\n296002,cat\n296003,frog\n296004,cat\n296005,deer\n296006,automobile\n296007,horse\n296008,truck\n296009,cat\n296010,cat\n296011,airplane\n296012,bird\n296013,cat\n296014,deer\n296015,bird\n296016,frog\n296017,automobile\n296018,automobile\n296019,airplane\n296020,cat\n296021,ship\n296022,cat\n296023,truck\n296024,truck\n296025,ship\n296026,truck\n296027,ship\n296028,truck\n296029,cat\n296030,deer\n296031,ship\n296032,truck\n296033,bird\n296034,truck\n296035,truck\n296036,deer\n296037,airplane\n296038,automobile\n296039,truck\n296040,airplane\n296041,automobile\n296042,cat\n296043,truck\n296044,airplane\n296045,cat\n296046,dog\n296047,dog\n296048,horse\n296049,cat\n296050,cat\n296051,deer\n296052,cat\n296053,ship\n296054,frog\n296055,deer\n296056,horse\n296057,frog\n296058,deer\n296059,deer\n296060,cat\n296061,frog\n296062,frog\n296063,horse\n296064,horse\n296065,horse\n296066,frog\n296067,ship\n296068,bird\n296069,deer\n296070,truck\n296071,horse\n296072,cat\n296073,automobile\n296074,airplane\n296075,horse\n296076,dog\n296077,truck\n296078,horse\n296079,dog\n296080,ship\n296081,ship\n296082,horse\n296083,truck\n296084,ship\n296085,ship\n296086,frog\n296087,cat\n296088,bird\n296089,cat\n296090,ship\n296091,airplane\n296092,frog\n296093,automobile\n296094,horse\n296095,airplane\n296096,cat\n296097,deer\n296098,dog\n296099,truck\n296100,horse\n296101,bird\n296102,frog\n296103,automobile\n296104,frog\n296105,bird\n296106,dog\n296107,frog\n296108,bird\n296109,cat\n296110,truck\n296111,truck\n296112,bird\n296113,deer\n296114,dog\n296115,deer\n296116,deer\n296117,truck\n296118,ship\n296119,airplane\n296120,horse\n296121,bird\n296122,deer\n296123,airplane\n296124,deer\n296125,airplane\n296126,deer\n296127,deer\n296128,dog\n296129,ship\n296130,automobile\n296131,deer\n296132,airplane\n296133,bird\n296134,airplane\n296135,deer\n296136,horse\n296137,truck\n296138,dog\n296139,deer\n296140,horse\n296141,horse\n296142,cat\n296143,cat\n296144,frog\n296145,frog\n296146,bird\n296147,deer\n296148,cat\n296149,automobile\n296150,truck\n296151,truck\n296152,deer\n296153,horse\n296154,ship\n296155,truck\n296156,bird\n296157,truck\n296158,dog\n296159,bird\n296160,truck\n296161,dog\n296162,deer\n296163,bird\n296164,truck\n296165,deer\n296166,cat\n296167,dog\n296168,truck\n296169,horse\n296170,cat\n296171,ship\n296172,airplane\n296173,truck\n296174,bird\n296175,dog\n296176,cat\n296177,cat\n296178,horse\n296179,frog\n296180,dog\n296181,ship\n296182,deer\n296183,dog\n296184,automobile\n296185,cat\n296186,dog\n296187,frog\n296188,dog\n296189,automobile\n296190,airplane\n296191,ship\n296192,deer\n296193,frog\n296194,cat\n296195,horse\n296196,bird\n296197,dog\n296198,automobile\n296199,cat\n296200,deer\n296201,automobile\n296202,deer\n296203,frog\n296204,cat\n296205,dog\n296206,deer\n296207,bird\n296208,frog\n296209,bird\n296210,deer\n296211,cat\n296212,airplane\n296213,dog\n296214,dog\n296215,frog\n296216,dog\n296217,truck\n296218,airplane\n296219,bird\n296220,truck\n296221,deer\n296222,bird\n296223,frog\n296224,deer\n296225,deer\n296226,deer\n296227,truck\n296228,deer\n296229,automobile\n296230,deer\n296231,airplane\n296232,airplane\n296233,dog\n296234,ship\n296235,ship\n296236,dog\n296237,horse\n296238,deer\n296239,airplane\n296240,dog\n296241,bird\n296242,frog\n296243,horse\n296244,horse\n296245,airplane\n296246,frog\n296247,automobile\n296248,cat\n296249,ship\n296250,automobile\n296251,dog\n296252,cat\n296253,cat\n296254,horse\n296255,truck\n296256,bird\n296257,frog\n296258,ship\n296259,automobile\n296260,ship\n296261,deer\n296262,horse\n296263,deer\n296264,bird\n296265,automobile\n296266,truck\n296267,deer\n296268,truck\n296269,horse\n296270,dog\n296271,frog\n296272,airplane\n296273,bird\n296274,airplane\n296275,frog\n296276,horse\n296277,horse\n296278,dog\n296279,truck\n296280,airplane\n296281,automobile\n296282,horse\n296283,dog\n296284,automobile\n296285,horse\n296286,cat\n296287,cat\n296288,truck\n296289,cat\n296290,bird\n296291,airplane\n296292,deer\n296293,deer\n296294,deer\n296295,bird\n296296,cat\n296297,deer\n296298,airplane\n296299,frog\n296300,bird\n296301,cat\n296302,dog\n296303,deer\n296304,truck\n296305,airplane\n296306,cat\n296307,deer\n296308,frog\n296309,ship\n296310,cat\n296311,dog\n296312,dog\n296313,cat\n296314,airplane\n296315,horse\n296316,truck\n296317,cat\n296318,bird\n296319,horse\n296320,horse\n296321,deer\n296322,automobile\n296323,automobile\n296324,dog\n296325,horse\n296326,truck\n296327,frog\n296328,airplane\n296329,cat\n296330,cat\n296331,frog\n296332,cat\n296333,frog\n296334,dog\n296335,airplane\n296336,truck\n296337,ship\n296338,ship\n296339,horse\n296340,bird\n296341,airplane\n296342,horse\n296343,cat\n296344,cat\n296345,frog\n296346,automobile\n296347,bird\n296348,frog\n296349,truck\n296350,truck\n296351,frog\n296352,deer\n296353,dog\n296354,frog\n296355,bird\n296356,frog\n296357,truck\n296358,airplane\n296359,deer\n296360,ship\n296361,bird\n296362,truck\n296363,airplane\n296364,airplane\n296365,truck\n296366,deer\n296367,ship\n296368,cat\n296369,truck\n296370,deer\n296371,dog\n296372,automobile\n296373,cat\n296374,ship\n296375,airplane\n296376,deer\n296377,cat\n296378,ship\n296379,ship\n296380,airplane\n296381,bird\n296382,dog\n296383,airplane\n296384,dog\n296385,airplane\n296386,cat\n296387,cat\n296388,automobile\n296389,frog\n296390,deer\n296391,airplane\n296392,automobile\n296393,frog\n296394,horse\n296395,automobile\n296396,frog\n296397,truck\n296398,truck\n296399,airplane\n296400,horse\n296401,cat\n296402,frog\n296403,deer\n296404,horse\n296405,truck\n296406,ship\n296407,ship\n296408,horse\n296409,frog\n296410,truck\n296411,ship\n296412,dog\n296413,bird\n296414,automobile\n296415,cat\n296416,horse\n296417,deer\n296418,deer\n296419,automobile\n296420,airplane\n296421,cat\n296422,bird\n296423,bird\n296424,ship\n296425,cat\n296426,truck\n296427,deer\n296428,dog\n296429,cat\n296430,deer\n296431,dog\n296432,dog\n296433,airplane\n296434,horse\n296435,frog\n296436,ship\n296437,deer\n296438,airplane\n296439,bird\n296440,ship\n296441,cat\n296442,ship\n296443,horse\n296444,dog\n296445,ship\n296446,deer\n296447,truck\n296448,automobile\n296449,automobile\n296450,truck\n296451,dog\n296452,cat\n296453,dog\n296454,cat\n296455,truck\n296456,deer\n296457,frog\n296458,horse\n296459,horse\n296460,cat\n296461,automobile\n296462,deer\n296463,bird\n296464,automobile\n296465,horse\n296466,horse\n296467,horse\n296468,truck\n296469,dog\n296470,airplane\n296471,bird\n296472,dog\n296473,cat\n296474,horse\n296475,truck\n296476,frog\n296477,airplane\n296478,deer\n296479,bird\n296480,cat\n296481,bird\n296482,deer\n296483,ship\n296484,automobile\n296485,airplane\n296486,deer\n296487,cat\n296488,automobile\n296489,horse\n296490,automobile\n296491,cat\n296492,deer\n296493,frog\n296494,dog\n296495,truck\n296496,cat\n296497,cat\n296498,horse\n296499,dog\n296500,bird\n296501,bird\n296502,cat\n296503,frog\n296504,horse\n296505,truck\n296506,automobile\n296507,automobile\n296508,cat\n296509,ship\n296510,deer\n296511,cat\n296512,cat\n296513,cat\n296514,bird\n296515,cat\n296516,ship\n296517,deer\n296518,airplane\n296519,bird\n296520,bird\n296521,frog\n296522,automobile\n296523,ship\n296524,bird\n296525,ship\n296526,airplane\n296527,truck\n296528,ship\n296529,frog\n296530,cat\n296531,horse\n296532,dog\n296533,dog\n296534,cat\n296535,frog\n296536,frog\n296537,cat\n296538,cat\n296539,truck\n296540,cat\n296541,airplane\n296542,airplane\n296543,horse\n296544,horse\n296545,airplane\n296546,truck\n296547,cat\n296548,automobile\n296549,dog\n296550,dog\n296551,deer\n296552,airplane\n296553,dog\n296554,cat\n296555,bird\n296556,cat\n296557,frog\n296558,airplane\n296559,automobile\n296560,bird\n296561,horse\n296562,dog\n296563,truck\n296564,bird\n296565,dog\n296566,deer\n296567,truck\n296568,bird\n296569,deer\n296570,bird\n296571,bird\n296572,truck\n296573,truck\n296574,airplane\n296575,bird\n296576,deer\n296577,bird\n296578,dog\n296579,bird\n296580,horse\n296581,cat\n296582,cat\n296583,deer\n296584,truck\n296585,bird\n296586,airplane\n296587,deer\n296588,truck\n296589,ship\n296590,bird\n296591,truck\n296592,airplane\n296593,deer\n296594,horse\n296595,cat\n296596,airplane\n296597,ship\n296598,frog\n296599,horse\n296600,horse\n296601,dog\n296602,cat\n296603,cat\n296604,dog\n296605,automobile\n296606,airplane\n296607,deer\n296608,deer\n296609,dog\n296610,airplane\n296611,frog\n296612,bird\n296613,horse\n296614,airplane\n296615,frog\n296616,horse\n296617,horse\n296618,airplane\n296619,ship\n296620,horse\n296621,cat\n296622,airplane\n296623,deer\n296624,bird\n296625,horse\n296626,bird\n296627,deer\n296628,frog\n296629,cat\n296630,cat\n296631,ship\n296632,dog\n296633,airplane\n296634,dog\n296635,automobile\n296636,airplane\n296637,deer\n296638,cat\n296639,deer\n296640,truck\n296641,horse\n296642,ship\n296643,automobile\n296644,deer\n296645,cat\n296646,deer\n296647,automobile\n296648,cat\n296649,deer\n296650,automobile\n296651,horse\n296652,ship\n296653,truck\n296654,automobile\n296655,dog\n296656,truck\n296657,bird\n296658,airplane\n296659,airplane\n296660,dog\n296661,airplane\n296662,automobile\n296663,bird\n296664,ship\n296665,ship\n296666,frog\n296667,automobile\n296668,dog\n296669,truck\n296670,frog\n296671,dog\n296672,frog\n296673,dog\n296674,bird\n296675,deer\n296676,automobile\n296677,frog\n296678,cat\n296679,deer\n296680,bird\n296681,automobile\n296682,automobile\n296683,cat\n296684,deer\n296685,dog\n296686,deer\n296687,frog\n296688,truck\n296689,horse\n296690,deer\n296691,deer\n296692,truck\n296693,dog\n296694,dog\n296695,cat\n296696,ship\n296697,frog\n296698,bird\n296699,horse\n296700,dog\n296701,cat\n296702,ship\n296703,cat\n296704,deer\n296705,deer\n296706,deer\n296707,airplane\n296708,bird\n296709,dog\n296710,bird\n296711,deer\n296712,deer\n296713,horse\n296714,airplane\n296715,frog\n296716,frog\n296717,frog\n296718,bird\n296719,deer\n296720,horse\n296721,horse\n296722,bird\n296723,dog\n296724,frog\n296725,truck\n296726,deer\n296727,airplane\n296728,ship\n296729,frog\n296730,frog\n296731,bird\n296732,deer\n296733,automobile\n296734,airplane\n296735,ship\n296736,airplane\n296737,ship\n296738,horse\n296739,bird\n296740,deer\n296741,dog\n296742,horse\n296743,truck\n296744,frog\n296745,dog\n296746,automobile\n296747,cat\n296748,cat\n296749,dog\n296750,deer\n296751,bird\n296752,deer\n296753,truck\n296754,dog\n296755,truck\n296756,cat\n296757,dog\n296758,bird\n296759,deer\n296760,truck\n296761,airplane\n296762,frog\n296763,cat\n296764,cat\n296765,automobile\n296766,ship\n296767,automobile\n296768,cat\n296769,frog\n296770,ship\n296771,airplane\n296772,deer\n296773,ship\n296774,cat\n296775,deer\n296776,horse\n296777,truck\n296778,frog\n296779,deer\n296780,airplane\n296781,dog\n296782,dog\n296783,automobile\n296784,cat\n296785,truck\n296786,deer\n296787,deer\n296788,ship\n296789,frog\n296790,dog\n296791,airplane\n296792,dog\n296793,bird\n296794,dog\n296795,cat\n296796,airplane\n296797,frog\n296798,horse\n296799,frog\n296800,automobile\n296801,horse\n296802,deer\n296803,truck\n296804,automobile\n296805,cat\n296806,deer\n296807,truck\n296808,cat\n296809,truck\n296810,airplane\n296811,truck\n296812,dog\n296813,airplane\n296814,frog\n296815,truck\n296816,bird\n296817,dog\n296818,ship\n296819,deer\n296820,horse\n296821,frog\n296822,truck\n296823,truck\n296824,automobile\n296825,deer\n296826,cat\n296827,dog\n296828,horse\n296829,dog\n296830,dog\n296831,ship\n296832,truck\n296833,dog\n296834,dog\n296835,horse\n296836,automobile\n296837,airplane\n296838,airplane\n296839,cat\n296840,automobile\n296841,truck\n296842,bird\n296843,cat\n296844,cat\n296845,ship\n296846,deer\n296847,deer\n296848,bird\n296849,frog\n296850,bird\n296851,cat\n296852,bird\n296853,deer\n296854,ship\n296855,ship\n296856,ship\n296857,truck\n296858,dog\n296859,deer\n296860,horse\n296861,ship\n296862,cat\n296863,deer\n296864,deer\n296865,bird\n296866,bird\n296867,deer\n296868,cat\n296869,dog\n296870,automobile\n296871,frog\n296872,deer\n296873,automobile\n296874,airplane\n296875,bird\n296876,dog\n296877,bird\n296878,frog\n296879,bird\n296880,dog\n296881,ship\n296882,airplane\n296883,automobile\n296884,ship\n296885,ship\n296886,automobile\n296887,frog\n296888,truck\n296889,cat\n296890,airplane\n296891,horse\n296892,automobile\n296893,cat\n296894,truck\n296895,cat\n296896,frog\n296897,cat\n296898,automobile\n296899,horse\n296900,dog\n296901,bird\n296902,truck\n296903,truck\n296904,truck\n296905,deer\n296906,cat\n296907,bird\n296908,ship\n296909,deer\n296910,airplane\n296911,dog\n296912,horse\n296913,ship\n296914,horse\n296915,dog\n296916,cat\n296917,deer\n296918,bird\n296919,airplane\n296920,cat\n296921,frog\n296922,truck\n296923,airplane\n296924,automobile\n296925,truck\n296926,dog\n296927,truck\n296928,ship\n296929,deer\n296930,bird\n296931,bird\n296932,airplane\n296933,automobile\n296934,airplane\n296935,deer\n296936,bird\n296937,cat\n296938,ship\n296939,airplane\n296940,airplane\n296941,truck\n296942,cat\n296943,airplane\n296944,bird\n296945,deer\n296946,truck\n296947,horse\n296948,airplane\n296949,airplane\n296950,ship\n296951,bird\n296952,cat\n296953,dog\n296954,deer\n296955,horse\n296956,deer\n296957,frog\n296958,frog\n296959,airplane\n296960,ship\n296961,dog\n296962,bird\n296963,truck\n296964,horse\n296965,frog\n296966,ship\n296967,deer\n296968,deer\n296969,frog\n296970,ship\n296971,bird\n296972,truck\n296973,cat\n296974,dog\n296975,frog\n296976,airplane\n296977,dog\n296978,horse\n296979,frog\n296980,deer\n296981,airplane\n296982,dog\n296983,bird\n296984,airplane\n296985,deer\n296986,cat\n296987,airplane\n296988,ship\n296989,cat\n296990,bird\n296991,airplane\n296992,dog\n296993,dog\n296994,bird\n296995,ship\n296996,cat\n296997,cat\n296998,automobile\n296999,deer\n297000,dog\n297001,deer\n297002,cat\n297003,bird\n297004,horse\n297005,cat\n297006,frog\n297007,bird\n297008,cat\n297009,bird\n297010,horse\n297011,deer\n297012,airplane\n297013,dog\n297014,airplane\n297015,dog\n297016,dog\n297017,cat\n297018,horse\n297019,horse\n297020,ship\n297021,deer\n297022,cat\n297023,cat\n297024,bird\n297025,cat\n297026,frog\n297027,automobile\n297028,dog\n297029,deer\n297030,frog\n297031,horse\n297032,deer\n297033,frog\n297034,dog\n297035,ship\n297036,airplane\n297037,ship\n297038,deer\n297039,cat\n297040,deer\n297041,cat\n297042,deer\n297043,bird\n297044,ship\n297045,dog\n297046,cat\n297047,bird\n297048,deer\n297049,automobile\n297050,dog\n297051,deer\n297052,horse\n297053,frog\n297054,cat\n297055,horse\n297056,ship\n297057,deer\n297058,horse\n297059,truck\n297060,ship\n297061,cat\n297062,horse\n297063,bird\n297064,ship\n297065,airplane\n297066,frog\n297067,horse\n297068,horse\n297069,bird\n297070,airplane\n297071,deer\n297072,bird\n297073,horse\n297074,dog\n297075,frog\n297076,automobile\n297077,horse\n297078,airplane\n297079,frog\n297080,automobile\n297081,truck\n297082,bird\n297083,airplane\n297084,dog\n297085,ship\n297086,horse\n297087,frog\n297088,bird\n297089,dog\n297090,dog\n297091,ship\n297092,dog\n297093,ship\n297094,truck\n297095,cat\n297096,frog\n297097,horse\n297098,cat\n297099,deer\n297100,bird\n297101,ship\n297102,horse\n297103,airplane\n297104,dog\n297105,truck\n297106,truck\n297107,horse\n297108,cat\n297109,automobile\n297110,cat\n297111,airplane\n297112,airplane\n297113,deer\n297114,deer\n297115,deer\n297116,dog\n297117,airplane\n297118,frog\n297119,airplane\n297120,ship\n297121,frog\n297122,ship\n297123,deer\n297124,ship\n297125,horse\n297126,ship\n297127,airplane\n297128,horse\n297129,cat\n297130,automobile\n297131,deer\n297132,frog\n297133,airplane\n297134,bird\n297135,horse\n297136,horse\n297137,truck\n297138,truck\n297139,dog\n297140,truck\n297141,ship\n297142,deer\n297143,ship\n297144,bird\n297145,horse\n297146,truck\n297147,horse\n297148,cat\n297149,cat\n297150,dog\n297151,truck\n297152,deer\n297153,truck\n297154,dog\n297155,airplane\n297156,truck\n297157,cat\n297158,horse\n297159,deer\n297160,cat\n297161,cat\n297162,truck\n297163,horse\n297164,cat\n297165,dog\n297166,frog\n297167,dog\n297168,bird\n297169,truck\n297170,ship\n297171,deer\n297172,airplane\n297173,bird\n297174,frog\n297175,ship\n297176,deer\n297177,cat\n297178,horse\n297179,automobile\n297180,deer\n297181,truck\n297182,frog\n297183,cat\n297184,frog\n297185,horse\n297186,airplane\n297187,airplane\n297188,ship\n297189,horse\n297190,truck\n297191,truck\n297192,frog\n297193,horse\n297194,deer\n297195,dog\n297196,cat\n297197,airplane\n297198,dog\n297199,deer\n297200,frog\n297201,horse\n297202,frog\n297203,cat\n297204,airplane\n297205,ship\n297206,horse\n297207,truck\n297208,dog\n297209,horse\n297210,dog\n297211,ship\n297212,truck\n297213,cat\n297214,frog\n297215,deer\n297216,horse\n297217,airplane\n297218,bird\n297219,airplane\n297220,horse\n297221,frog\n297222,frog\n297223,deer\n297224,frog\n297225,bird\n297226,bird\n297227,airplane\n297228,cat\n297229,airplane\n297230,airplane\n297231,automobile\n297232,ship\n297233,deer\n297234,horse\n297235,ship\n297236,cat\n297237,horse\n297238,cat\n297239,deer\n297240,ship\n297241,truck\n297242,ship\n297243,cat\n297244,airplane\n297245,cat\n297246,bird\n297247,bird\n297248,automobile\n297249,cat\n297250,truck\n297251,dog\n297252,bird\n297253,automobile\n297254,horse\n297255,cat\n297256,truck\n297257,cat\n297258,deer\n297259,dog\n297260,automobile\n297261,airplane\n297262,truck\n297263,cat\n297264,ship\n297265,truck\n297266,ship\n297267,deer\n297268,airplane\n297269,ship\n297270,dog\n297271,airplane\n297272,truck\n297273,truck\n297274,horse\n297275,horse\n297276,deer\n297277,deer\n297278,deer\n297279,horse\n297280,truck\n297281,frog\n297282,deer\n297283,cat\n297284,bird\n297285,frog\n297286,bird\n297287,dog\n297288,bird\n297289,horse\n297290,horse\n297291,cat\n297292,deer\n297293,deer\n297294,frog\n297295,airplane\n297296,automobile\n297297,dog\n297298,truck\n297299,cat\n297300,ship\n297301,dog\n297302,cat\n297303,frog\n297304,deer\n297305,automobile\n297306,automobile\n297307,cat\n297308,airplane\n297309,cat\n297310,frog\n297311,airplane\n297312,dog\n297313,horse\n297314,dog\n297315,horse\n297316,frog\n297317,cat\n297318,cat\n297319,horse\n297320,truck\n297321,cat\n297322,dog\n297323,deer\n297324,ship\n297325,cat\n297326,cat\n297327,truck\n297328,bird\n297329,frog\n297330,bird\n297331,bird\n297332,truck\n297333,cat\n297334,bird\n297335,cat\n297336,frog\n297337,bird\n297338,frog\n297339,deer\n297340,automobile\n297341,frog\n297342,cat\n297343,airplane\n297344,horse\n297345,ship\n297346,bird\n297347,deer\n297348,frog\n297349,deer\n297350,truck\n297351,frog\n297352,deer\n297353,cat\n297354,deer\n297355,horse\n297356,deer\n297357,cat\n297358,ship\n297359,ship\n297360,deer\n297361,bird\n297362,airplane\n297363,horse\n297364,cat\n297365,frog\n297366,automobile\n297367,truck\n297368,airplane\n297369,frog\n297370,airplane\n297371,truck\n297372,frog\n297373,cat\n297374,cat\n297375,airplane\n297376,bird\n297377,airplane\n297378,deer\n297379,cat\n297380,horse\n297381,automobile\n297382,bird\n297383,frog\n297384,cat\n297385,truck\n297386,dog\n297387,dog\n297388,frog\n297389,bird\n297390,deer\n297391,truck\n297392,dog\n297393,deer\n297394,automobile\n297395,airplane\n297396,horse\n297397,bird\n297398,cat\n297399,dog\n297400,horse\n297401,dog\n297402,bird\n297403,deer\n297404,airplane\n297405,automobile\n297406,automobile\n297407,ship\n297408,truck\n297409,cat\n297410,ship\n297411,deer\n297412,deer\n297413,horse\n297414,cat\n297415,deer\n297416,bird\n297417,dog\n297418,frog\n297419,automobile\n297420,cat\n297421,automobile\n297422,ship\n297423,automobile\n297424,deer\n297425,airplane\n297426,truck\n297427,cat\n297428,truck\n297429,frog\n297430,ship\n297431,bird\n297432,airplane\n297433,deer\n297434,deer\n297435,truck\n297436,truck\n297437,truck\n297438,dog\n297439,cat\n297440,dog\n297441,truck\n297442,bird\n297443,truck\n297444,dog\n297445,cat\n297446,automobile\n297447,automobile\n297448,truck\n297449,dog\n297450,frog\n297451,bird\n297452,cat\n297453,cat\n297454,ship\n297455,ship\n297456,automobile\n297457,cat\n297458,deer\n297459,cat\n297460,ship\n297461,cat\n297462,ship\n297463,horse\n297464,frog\n297465,dog\n297466,airplane\n297467,horse\n297468,cat\n297469,ship\n297470,deer\n297471,ship\n297472,dog\n297473,bird\n297474,automobile\n297475,deer\n297476,airplane\n297477,dog\n297478,bird\n297479,frog\n297480,frog\n297481,cat\n297482,deer\n297483,horse\n297484,deer\n297485,frog\n297486,deer\n297487,bird\n297488,deer\n297489,dog\n297490,ship\n297491,airplane\n297492,dog\n297493,dog\n297494,cat\n297495,ship\n297496,cat\n297497,horse\n297498,deer\n297499,cat\n297500,truck\n297501,dog\n297502,deer\n297503,deer\n297504,ship\n297505,dog\n297506,deer\n297507,frog\n297508,bird\n297509,cat\n297510,frog\n297511,ship\n297512,cat\n297513,cat\n297514,truck\n297515,frog\n297516,truck\n297517,ship\n297518,cat\n297519,dog\n297520,automobile\n297521,bird\n297522,cat\n297523,ship\n297524,truck\n297525,cat\n297526,bird\n297527,dog\n297528,deer\n297529,horse\n297530,cat\n297531,deer\n297532,automobile\n297533,cat\n297534,truck\n297535,ship\n297536,ship\n297537,cat\n297538,cat\n297539,airplane\n297540,cat\n297541,truck\n297542,bird\n297543,dog\n297544,ship\n297545,truck\n297546,bird\n297547,deer\n297548,ship\n297549,frog\n297550,automobile\n297551,cat\n297552,dog\n297553,bird\n297554,airplane\n297555,horse\n297556,truck\n297557,deer\n297558,frog\n297559,cat\n297560,dog\n297561,cat\n297562,deer\n297563,automobile\n297564,airplane\n297565,deer\n297566,airplane\n297567,horse\n297568,automobile\n297569,frog\n297570,frog\n297571,airplane\n297572,horse\n297573,automobile\n297574,frog\n297575,frog\n297576,dog\n297577,ship\n297578,cat\n297579,airplane\n297580,frog\n297581,automobile\n297582,frog\n297583,truck\n297584,dog\n297585,horse\n297586,deer\n297587,truck\n297588,truck\n297589,bird\n297590,truck\n297591,ship\n297592,bird\n297593,cat\n297594,airplane\n297595,horse\n297596,ship\n297597,frog\n297598,dog\n297599,horse\n297600,truck\n297601,cat\n297602,cat\n297603,cat\n297604,truck\n297605,frog\n297606,horse\n297607,cat\n297608,airplane\n297609,automobile\n297610,ship\n297611,cat\n297612,ship\n297613,deer\n297614,cat\n297615,dog\n297616,cat\n297617,frog\n297618,dog\n297619,dog\n297620,horse\n297621,airplane\n297622,cat\n297623,ship\n297624,horse\n297625,frog\n297626,bird\n297627,airplane\n297628,cat\n297629,bird\n297630,airplane\n297631,dog\n297632,dog\n297633,horse\n297634,airplane\n297635,horse\n297636,horse\n297637,ship\n297638,truck\n297639,horse\n297640,deer\n297641,cat\n297642,cat\n297643,frog\n297644,airplane\n297645,dog\n297646,truck\n297647,airplane\n297648,truck\n297649,truck\n297650,bird\n297651,ship\n297652,bird\n297653,frog\n297654,frog\n297655,frog\n297656,dog\n297657,airplane\n297658,bird\n297659,ship\n297660,truck\n297661,truck\n297662,dog\n297663,dog\n297664,airplane\n297665,automobile\n297666,cat\n297667,automobile\n297668,cat\n297669,dog\n297670,frog\n297671,ship\n297672,dog\n297673,cat\n297674,deer\n297675,automobile\n297676,frog\n297677,bird\n297678,ship\n297679,deer\n297680,dog\n297681,cat\n297682,frog\n297683,cat\n297684,airplane\n297685,cat\n297686,horse\n297687,deer\n297688,airplane\n297689,ship\n297690,ship\n297691,deer\n297692,deer\n297693,airplane\n297694,truck\n297695,ship\n297696,deer\n297697,frog\n297698,deer\n297699,truck\n297700,frog\n297701,dog\n297702,frog\n297703,bird\n297704,bird\n297705,truck\n297706,truck\n297707,automobile\n297708,airplane\n297709,horse\n297710,bird\n297711,deer\n297712,horse\n297713,automobile\n297714,truck\n297715,frog\n297716,deer\n297717,automobile\n297718,dog\n297719,cat\n297720,frog\n297721,horse\n297722,truck\n297723,cat\n297724,airplane\n297725,frog\n297726,cat\n297727,cat\n297728,truck\n297729,truck\n297730,ship\n297731,dog\n297732,airplane\n297733,deer\n297734,frog\n297735,dog\n297736,cat\n297737,deer\n297738,bird\n297739,frog\n297740,automobile\n297741,truck\n297742,dog\n297743,automobile\n297744,bird\n297745,dog\n297746,cat\n297747,frog\n297748,dog\n297749,cat\n297750,deer\n297751,truck\n297752,horse\n297753,cat\n297754,frog\n297755,airplane\n297756,airplane\n297757,horse\n297758,ship\n297759,automobile\n297760,horse\n297761,cat\n297762,deer\n297763,airplane\n297764,bird\n297765,deer\n297766,horse\n297767,horse\n297768,dog\n297769,deer\n297770,frog\n297771,bird\n297772,airplane\n297773,deer\n297774,airplane\n297775,automobile\n297776,cat\n297777,deer\n297778,horse\n297779,horse\n297780,cat\n297781,frog\n297782,bird\n297783,truck\n297784,deer\n297785,frog\n297786,bird\n297787,frog\n297788,truck\n297789,frog\n297790,airplane\n297791,automobile\n297792,frog\n297793,bird\n297794,dog\n297795,cat\n297796,cat\n297797,deer\n297798,airplane\n297799,airplane\n297800,ship\n297801,bird\n297802,cat\n297803,deer\n297804,frog\n297805,dog\n297806,automobile\n297807,frog\n297808,cat\n297809,cat\n297810,truck\n297811,automobile\n297812,truck\n297813,truck\n297814,horse\n297815,bird\n297816,cat\n297817,dog\n297818,truck\n297819,bird\n297820,cat\n297821,truck\n297822,airplane\n297823,deer\n297824,automobile\n297825,cat\n297826,deer\n297827,horse\n297828,bird\n297829,bird\n297830,truck\n297831,airplane\n297832,deer\n297833,bird\n297834,automobile\n297835,cat\n297836,bird\n297837,frog\n297838,airplane\n297839,bird\n297840,deer\n297841,airplane\n297842,truck\n297843,dog\n297844,airplane\n297845,airplane\n297846,frog\n297847,truck\n297848,ship\n297849,dog\n297850,bird\n297851,dog\n297852,cat\n297853,bird\n297854,ship\n297855,bird\n297856,deer\n297857,deer\n297858,ship\n297859,dog\n297860,deer\n297861,horse\n297862,horse\n297863,cat\n297864,frog\n297865,truck\n297866,ship\n297867,airplane\n297868,cat\n297869,frog\n297870,deer\n297871,ship\n297872,ship\n297873,cat\n297874,truck\n297875,truck\n297876,deer\n297877,airplane\n297878,ship\n297879,truck\n297880,deer\n297881,ship\n297882,airplane\n297883,horse\n297884,bird\n297885,deer\n297886,frog\n297887,airplane\n297888,horse\n297889,horse\n297890,deer\n297891,airplane\n297892,ship\n297893,cat\n297894,bird\n297895,airplane\n297896,cat\n297897,bird\n297898,airplane\n297899,horse\n297900,truck\n297901,automobile\n297902,cat\n297903,dog\n297904,dog\n297905,cat\n297906,horse\n297907,cat\n297908,deer\n297909,deer\n297910,truck\n297911,horse\n297912,cat\n297913,frog\n297914,cat\n297915,bird\n297916,frog\n297917,frog\n297918,bird\n297919,deer\n297920,dog\n297921,frog\n297922,deer\n297923,ship\n297924,horse\n297925,horse\n297926,ship\n297927,horse\n297928,truck\n297929,ship\n297930,truck\n297931,ship\n297932,cat\n297933,cat\n297934,airplane\n297935,deer\n297936,deer\n297937,truck\n297938,horse\n297939,ship\n297940,ship\n297941,ship\n297942,dog\n297943,cat\n297944,ship\n297945,truck\n297946,cat\n297947,dog\n297948,automobile\n297949,truck\n297950,truck\n297951,bird\n297952,cat\n297953,truck\n297954,bird\n297955,horse\n297956,deer\n297957,truck\n297958,automobile\n297959,truck\n297960,automobile\n297961,horse\n297962,airplane\n297963,dog\n297964,airplane\n297965,dog\n297966,cat\n297967,deer\n297968,frog\n297969,deer\n297970,cat\n297971,ship\n297972,automobile\n297973,frog\n297974,automobile\n297975,truck\n297976,deer\n297977,truck\n297978,dog\n297979,ship\n297980,frog\n297981,horse\n297982,cat\n297983,automobile\n297984,automobile\n297985,ship\n297986,dog\n297987,dog\n297988,automobile\n297989,airplane\n297990,horse\n297991,ship\n297992,ship\n297993,airplane\n297994,truck\n297995,deer\n297996,frog\n297997,ship\n297998,dog\n297999,dog\n298000,deer\n298001,ship\n298002,dog\n298003,truck\n298004,bird\n298005,horse\n298006,automobile\n298007,truck\n298008,deer\n298009,automobile\n298010,horse\n298011,horse\n298012,cat\n298013,deer\n298014,frog\n298015,cat\n298016,horse\n298017,horse\n298018,ship\n298019,bird\n298020,bird\n298021,automobile\n298022,frog\n298023,bird\n298024,deer\n298025,truck\n298026,deer\n298027,ship\n298028,bird\n298029,horse\n298030,frog\n298031,cat\n298032,frog\n298033,cat\n298034,dog\n298035,cat\n298036,bird\n298037,horse\n298038,dog\n298039,deer\n298040,frog\n298041,automobile\n298042,dog\n298043,bird\n298044,truck\n298045,frog\n298046,deer\n298047,cat\n298048,ship\n298049,cat\n298050,automobile\n298051,deer\n298052,cat\n298053,frog\n298054,deer\n298055,frog\n298056,automobile\n298057,airplane\n298058,airplane\n298059,cat\n298060,deer\n298061,cat\n298062,dog\n298063,deer\n298064,airplane\n298065,cat\n298066,dog\n298067,automobile\n298068,automobile\n298069,dog\n298070,horse\n298071,bird\n298072,airplane\n298073,truck\n298074,cat\n298075,truck\n298076,automobile\n298077,horse\n298078,horse\n298079,bird\n298080,horse\n298081,dog\n298082,bird\n298083,ship\n298084,airplane\n298085,truck\n298086,airplane\n298087,ship\n298088,airplane\n298089,ship\n298090,horse\n298091,dog\n298092,horse\n298093,cat\n298094,deer\n298095,airplane\n298096,truck\n298097,cat\n298098,truck\n298099,deer\n298100,airplane\n298101,bird\n298102,ship\n298103,bird\n298104,truck\n298105,bird\n298106,cat\n298107,frog\n298108,horse\n298109,airplane\n298110,automobile\n298111,frog\n298112,bird\n298113,deer\n298114,bird\n298115,cat\n298116,deer\n298117,deer\n298118,truck\n298119,bird\n298120,airplane\n298121,cat\n298122,cat\n298123,airplane\n298124,bird\n298125,horse\n298126,ship\n298127,bird\n298128,frog\n298129,automobile\n298130,truck\n298131,frog\n298132,deer\n298133,dog\n298134,ship\n298135,frog\n298136,automobile\n298137,horse\n298138,automobile\n298139,cat\n298140,cat\n298141,cat\n298142,horse\n298143,frog\n298144,ship\n298145,cat\n298146,frog\n298147,frog\n298148,ship\n298149,cat\n298150,frog\n298151,horse\n298152,dog\n298153,automobile\n298154,horse\n298155,deer\n298156,frog\n298157,ship\n298158,deer\n298159,frog\n298160,deer\n298161,cat\n298162,bird\n298163,truck\n298164,bird\n298165,dog\n298166,deer\n298167,cat\n298168,bird\n298169,deer\n298170,frog\n298171,cat\n298172,deer\n298173,deer\n298174,dog\n298175,dog\n298176,airplane\n298177,frog\n298178,frog\n298179,truck\n298180,bird\n298181,bird\n298182,deer\n298183,truck\n298184,bird\n298185,horse\n298186,deer\n298187,truck\n298188,dog\n298189,cat\n298190,airplane\n298191,automobile\n298192,automobile\n298193,ship\n298194,cat\n298195,truck\n298196,bird\n298197,horse\n298198,ship\n298199,deer\n298200,deer\n298201,dog\n298202,frog\n298203,truck\n298204,deer\n298205,cat\n298206,dog\n298207,dog\n298208,ship\n298209,truck\n298210,deer\n298211,automobile\n298212,airplane\n298213,truck\n298214,deer\n298215,airplane\n298216,automobile\n298217,cat\n298218,airplane\n298219,deer\n298220,frog\n298221,ship\n298222,cat\n298223,horse\n298224,cat\n298225,dog\n298226,truck\n298227,truck\n298228,ship\n298229,deer\n298230,truck\n298231,cat\n298232,cat\n298233,truck\n298234,horse\n298235,ship\n298236,truck\n298237,ship\n298238,dog\n298239,dog\n298240,horse\n298241,truck\n298242,cat\n298243,cat\n298244,deer\n298245,frog\n298246,truck\n298247,automobile\n298248,cat\n298249,cat\n298250,airplane\n298251,deer\n298252,horse\n298253,automobile\n298254,ship\n298255,airplane\n298256,deer\n298257,cat\n298258,ship\n298259,frog\n298260,dog\n298261,truck\n298262,truck\n298263,horse\n298264,truck\n298265,horse\n298266,cat\n298267,deer\n298268,cat\n298269,dog\n298270,horse\n298271,dog\n298272,dog\n298273,dog\n298274,cat\n298275,ship\n298276,dog\n298277,frog\n298278,frog\n298279,cat\n298280,dog\n298281,horse\n298282,cat\n298283,truck\n298284,truck\n298285,ship\n298286,automobile\n298287,cat\n298288,automobile\n298289,deer\n298290,cat\n298291,dog\n298292,bird\n298293,cat\n298294,ship\n298295,truck\n298296,frog\n298297,cat\n298298,airplane\n298299,dog\n298300,automobile\n298301,cat\n298302,truck\n298303,ship\n298304,automobile\n298305,frog\n298306,frog\n298307,frog\n298308,frog\n298309,frog\n298310,deer\n298311,dog\n298312,cat\n298313,deer\n298314,automobile\n298315,truck\n298316,cat\n298317,ship\n298318,dog\n298319,cat\n298320,dog\n298321,deer\n298322,dog\n298323,bird\n298324,deer\n298325,bird\n298326,deer\n298327,dog\n298328,bird\n298329,truck\n298330,cat\n298331,bird\n298332,truck\n298333,horse\n298334,cat\n298335,truck\n298336,airplane\n298337,airplane\n298338,automobile\n298339,horse\n298340,ship\n298341,ship\n298342,ship\n298343,automobile\n298344,frog\n298345,ship\n298346,frog\n298347,frog\n298348,ship\n298349,frog\n298350,horse\n298351,cat\n298352,ship\n298353,dog\n298354,frog\n298355,ship\n298356,frog\n298357,horse\n298358,cat\n298359,bird\n298360,dog\n298361,deer\n298362,deer\n298363,truck\n298364,cat\n298365,deer\n298366,automobile\n298367,ship\n298368,airplane\n298369,airplane\n298370,frog\n298371,deer\n298372,bird\n298373,dog\n298374,ship\n298375,frog\n298376,cat\n298377,cat\n298378,horse\n298379,automobile\n298380,cat\n298381,dog\n298382,deer\n298383,dog\n298384,automobile\n298385,truck\n298386,dog\n298387,deer\n298388,bird\n298389,truck\n298390,truck\n298391,ship\n298392,frog\n298393,bird\n298394,frog\n298395,deer\n298396,horse\n298397,ship\n298398,cat\n298399,deer\n298400,airplane\n298401,automobile\n298402,horse\n298403,deer\n298404,bird\n298405,bird\n298406,ship\n298407,airplane\n298408,deer\n298409,automobile\n298410,truck\n298411,dog\n298412,ship\n298413,bird\n298414,truck\n298415,dog\n298416,deer\n298417,dog\n298418,dog\n298419,truck\n298420,frog\n298421,truck\n298422,frog\n298423,truck\n298424,bird\n298425,horse\n298426,horse\n298427,truck\n298428,cat\n298429,airplane\n298430,dog\n298431,airplane\n298432,horse\n298433,cat\n298434,horse\n298435,airplane\n298436,dog\n298437,truck\n298438,automobile\n298439,bird\n298440,cat\n298441,cat\n298442,dog\n298443,airplane\n298444,horse\n298445,truck\n298446,bird\n298447,deer\n298448,cat\n298449,ship\n298450,dog\n298451,deer\n298452,deer\n298453,dog\n298454,truck\n298455,horse\n298456,dog\n298457,bird\n298458,cat\n298459,bird\n298460,cat\n298461,bird\n298462,airplane\n298463,airplane\n298464,deer\n298465,deer\n298466,ship\n298467,deer\n298468,ship\n298469,cat\n298470,dog\n298471,deer\n298472,automobile\n298473,cat\n298474,dog\n298475,cat\n298476,bird\n298477,bird\n298478,bird\n298479,cat\n298480,deer\n298481,horse\n298482,deer\n298483,airplane\n298484,dog\n298485,ship\n298486,frog\n298487,horse\n298488,automobile\n298489,deer\n298490,airplane\n298491,cat\n298492,dog\n298493,truck\n298494,frog\n298495,horse\n298496,horse\n298497,cat\n298498,horse\n298499,cat\n298500,deer\n298501,automobile\n298502,dog\n298503,frog\n298504,deer\n298505,frog\n298506,dog\n298507,dog\n298508,dog\n298509,dog\n298510,dog\n298511,cat\n298512,deer\n298513,airplane\n298514,deer\n298515,truck\n298516,bird\n298517,bird\n298518,deer\n298519,frog\n298520,deer\n298521,airplane\n298522,cat\n298523,horse\n298524,dog\n298525,truck\n298526,frog\n298527,deer\n298528,cat\n298529,bird\n298530,cat\n298531,cat\n298532,bird\n298533,cat\n298534,truck\n298535,automobile\n298536,horse\n298537,horse\n298538,bird\n298539,deer\n298540,cat\n298541,frog\n298542,truck\n298543,cat\n298544,horse\n298545,ship\n298546,truck\n298547,cat\n298548,frog\n298549,airplane\n298550,automobile\n298551,bird\n298552,airplane\n298553,ship\n298554,ship\n298555,truck\n298556,deer\n298557,cat\n298558,bird\n298559,dog\n298560,frog\n298561,horse\n298562,dog\n298563,cat\n298564,horse\n298565,automobile\n298566,dog\n298567,airplane\n298568,bird\n298569,frog\n298570,frog\n298571,frog\n298572,ship\n298573,ship\n298574,airplane\n298575,automobile\n298576,deer\n298577,frog\n298578,dog\n298579,cat\n298580,dog\n298581,bird\n298582,frog\n298583,frog\n298584,frog\n298585,frog\n298586,cat\n298587,automobile\n298588,airplane\n298589,airplane\n298590,horse\n298591,frog\n298592,deer\n298593,truck\n298594,airplane\n298595,cat\n298596,deer\n298597,cat\n298598,dog\n298599,frog\n298600,deer\n298601,airplane\n298602,truck\n298603,frog\n298604,cat\n298605,cat\n298606,automobile\n298607,airplane\n298608,truck\n298609,bird\n298610,airplane\n298611,truck\n298612,automobile\n298613,automobile\n298614,truck\n298615,deer\n298616,cat\n298617,ship\n298618,bird\n298619,truck\n298620,frog\n298621,deer\n298622,bird\n298623,horse\n298624,cat\n298625,dog\n298626,truck\n298627,bird\n298628,cat\n298629,deer\n298630,truck\n298631,automobile\n298632,dog\n298633,airplane\n298634,horse\n298635,ship\n298636,dog\n298637,cat\n298638,deer\n298639,truck\n298640,automobile\n298641,dog\n298642,frog\n298643,dog\n298644,truck\n298645,cat\n298646,deer\n298647,airplane\n298648,frog\n298649,deer\n298650,deer\n298651,dog\n298652,dog\n298653,deer\n298654,cat\n298655,cat\n298656,automobile\n298657,airplane\n298658,cat\n298659,cat\n298660,frog\n298661,dog\n298662,truck\n298663,airplane\n298664,deer\n298665,dog\n298666,bird\n298667,automobile\n298668,cat\n298669,ship\n298670,deer\n298671,dog\n298672,airplane\n298673,dog\n298674,cat\n298675,airplane\n298676,frog\n298677,horse\n298678,airplane\n298679,horse\n298680,bird\n298681,airplane\n298682,ship\n298683,cat\n298684,truck\n298685,cat\n298686,deer\n298687,cat\n298688,frog\n298689,frog\n298690,frog\n298691,horse\n298692,dog\n298693,cat\n298694,ship\n298695,dog\n298696,cat\n298697,frog\n298698,dog\n298699,cat\n298700,deer\n298701,deer\n298702,dog\n298703,horse\n298704,automobile\n298705,automobile\n298706,bird\n298707,cat\n298708,horse\n298709,horse\n298710,airplane\n298711,frog\n298712,airplane\n298713,dog\n298714,dog\n298715,automobile\n298716,automobile\n298717,airplane\n298718,deer\n298719,cat\n298720,bird\n298721,cat\n298722,automobile\n298723,airplane\n298724,ship\n298725,ship\n298726,airplane\n298727,airplane\n298728,automobile\n298729,truck\n298730,ship\n298731,frog\n298732,bird\n298733,cat\n298734,horse\n298735,cat\n298736,dog\n298737,horse\n298738,bird\n298739,cat\n298740,dog\n298741,dog\n298742,truck\n298743,deer\n298744,horse\n298745,automobile\n298746,horse\n298747,automobile\n298748,horse\n298749,deer\n298750,horse\n298751,dog\n298752,ship\n298753,deer\n298754,horse\n298755,truck\n298756,airplane\n298757,automobile\n298758,deer\n298759,truck\n298760,ship\n298761,horse\n298762,horse\n298763,cat\n298764,automobile\n298765,truck\n298766,cat\n298767,airplane\n298768,ship\n298769,deer\n298770,truck\n298771,bird\n298772,truck\n298773,automobile\n298774,ship\n298775,deer\n298776,ship\n298777,automobile\n298778,bird\n298779,automobile\n298780,bird\n298781,deer\n298782,automobile\n298783,horse\n298784,automobile\n298785,automobile\n298786,frog\n298787,airplane\n298788,bird\n298789,cat\n298790,horse\n298791,cat\n298792,airplane\n298793,truck\n298794,frog\n298795,bird\n298796,bird\n298797,frog\n298798,deer\n298799,airplane\n298800,cat\n298801,horse\n298802,ship\n298803,airplane\n298804,horse\n298805,dog\n298806,ship\n298807,truck\n298808,horse\n298809,horse\n298810,cat\n298811,frog\n298812,automobile\n298813,frog\n298814,deer\n298815,dog\n298816,deer\n298817,horse\n298818,airplane\n298819,dog\n298820,deer\n298821,deer\n298822,automobile\n298823,automobile\n298824,cat\n298825,horse\n298826,truck\n298827,dog\n298828,cat\n298829,horse\n298830,deer\n298831,airplane\n298832,bird\n298833,bird\n298834,airplane\n298835,cat\n298836,bird\n298837,cat\n298838,horse\n298839,airplane\n298840,cat\n298841,frog\n298842,automobile\n298843,deer\n298844,cat\n298845,deer\n298846,truck\n298847,dog\n298848,horse\n298849,ship\n298850,bird\n298851,ship\n298852,frog\n298853,bird\n298854,dog\n298855,truck\n298856,cat\n298857,dog\n298858,horse\n298859,dog\n298860,airplane\n298861,automobile\n298862,truck\n298863,automobile\n298864,deer\n298865,horse\n298866,ship\n298867,horse\n298868,cat\n298869,deer\n298870,horse\n298871,dog\n298872,cat\n298873,dog\n298874,ship\n298875,cat\n298876,automobile\n298877,cat\n298878,automobile\n298879,deer\n298880,frog\n298881,airplane\n298882,cat\n298883,truck\n298884,cat\n298885,ship\n298886,frog\n298887,frog\n298888,airplane\n298889,horse\n298890,truck\n298891,dog\n298892,cat\n298893,truck\n298894,cat\n298895,horse\n298896,deer\n298897,automobile\n298898,automobile\n298899,cat\n298900,ship\n298901,truck\n298902,frog\n298903,truck\n298904,deer\n298905,bird\n298906,dog\n298907,frog\n298908,bird\n298909,automobile\n298910,dog\n298911,automobile\n298912,deer\n298913,deer\n298914,horse\n298915,deer\n298916,truck\n298917,automobile\n298918,frog\n298919,dog\n298920,horse\n298921,deer\n298922,cat\n298923,deer\n298924,horse\n298925,deer\n298926,frog\n298927,bird\n298928,airplane\n298929,dog\n298930,cat\n298931,deer\n298932,frog\n298933,cat\n298934,bird\n298935,airplane\n298936,bird\n298937,deer\n298938,ship\n298939,deer\n298940,bird\n298941,dog\n298942,bird\n298943,horse\n298944,deer\n298945,deer\n298946,airplane\n298947,bird\n298948,deer\n298949,dog\n298950,cat\n298951,dog\n298952,dog\n298953,deer\n298954,truck\n298955,frog\n298956,bird\n298957,deer\n298958,cat\n298959,automobile\n298960,deer\n298961,frog\n298962,cat\n298963,deer\n298964,truck\n298965,deer\n298966,dog\n298967,deer\n298968,cat\n298969,ship\n298970,deer\n298971,automobile\n298972,cat\n298973,cat\n298974,frog\n298975,truck\n298976,automobile\n298977,cat\n298978,automobile\n298979,bird\n298980,cat\n298981,automobile\n298982,cat\n298983,horse\n298984,cat\n298985,bird\n298986,deer\n298987,dog\n298988,automobile\n298989,bird\n298990,airplane\n298991,dog\n298992,horse\n298993,truck\n298994,dog\n298995,frog\n298996,frog\n298997,bird\n298998,dog\n298999,airplane\n299000,horse\n299001,deer\n299002,bird\n299003,dog\n299004,cat\n299005,truck\n299006,cat\n299007,ship\n299008,automobile\n299009,deer\n299010,horse\n299011,frog\n299012,airplane\n299013,dog\n299014,deer\n299015,bird\n299016,deer\n299017,frog\n299018,frog\n299019,deer\n299020,deer\n299021,frog\n299022,horse\n299023,automobile\n299024,cat\n299025,automobile\n299026,cat\n299027,cat\n299028,dog\n299029,cat\n299030,frog\n299031,bird\n299032,bird\n299033,bird\n299034,cat\n299035,horse\n299036,dog\n299037,truck\n299038,deer\n299039,frog\n299040,dog\n299041,deer\n299042,automobile\n299043,dog\n299044,automobile\n299045,horse\n299046,horse\n299047,dog\n299048,truck\n299049,dog\n299050,ship\n299051,frog\n299052,horse\n299053,deer\n299054,dog\n299055,frog\n299056,automobile\n299057,horse\n299058,bird\n299059,automobile\n299060,airplane\n299061,airplane\n299062,truck\n299063,horse\n299064,airplane\n299065,cat\n299066,frog\n299067,deer\n299068,deer\n299069,bird\n299070,cat\n299071,deer\n299072,automobile\n299073,bird\n299074,dog\n299075,dog\n299076,truck\n299077,horse\n299078,frog\n299079,frog\n299080,cat\n299081,deer\n299082,frog\n299083,bird\n299084,dog\n299085,dog\n299086,airplane\n299087,truck\n299088,dog\n299089,ship\n299090,frog\n299091,cat\n299092,deer\n299093,truck\n299094,automobile\n299095,cat\n299096,horse\n299097,ship\n299098,cat\n299099,bird\n299100,dog\n299101,frog\n299102,deer\n299103,cat\n299104,bird\n299105,ship\n299106,deer\n299107,automobile\n299108,truck\n299109,ship\n299110,airplane\n299111,truck\n299112,dog\n299113,airplane\n299114,dog\n299115,dog\n299116,deer\n299117,ship\n299118,dog\n299119,bird\n299120,deer\n299121,horse\n299122,cat\n299123,dog\n299124,dog\n299125,frog\n299126,bird\n299127,dog\n299128,ship\n299129,automobile\n299130,frog\n299131,cat\n299132,cat\n299133,frog\n299134,truck\n299135,bird\n299136,bird\n299137,truck\n299138,cat\n299139,dog\n299140,cat\n299141,horse\n299142,cat\n299143,truck\n299144,deer\n299145,deer\n299146,automobile\n299147,frog\n299148,airplane\n299149,truck\n299150,cat\n299151,frog\n299152,dog\n299153,automobile\n299154,truck\n299155,frog\n299156,bird\n299157,airplane\n299158,frog\n299159,deer\n299160,bird\n299161,ship\n299162,automobile\n299163,frog\n299164,frog\n299165,automobile\n299166,bird\n299167,automobile\n299168,dog\n299169,horse\n299170,automobile\n299171,ship\n299172,automobile\n299173,horse\n299174,deer\n299175,ship\n299176,automobile\n299177,ship\n299178,deer\n299179,frog\n299180,automobile\n299181,frog\n299182,horse\n299183,truck\n299184,cat\n299185,frog\n299186,airplane\n299187,bird\n299188,bird\n299189,airplane\n299190,horse\n299191,cat\n299192,airplane\n299193,frog\n299194,dog\n299195,dog\n299196,truck\n299197,horse\n299198,dog\n299199,airplane\n299200,horse\n299201,deer\n299202,horse\n299203,bird\n299204,deer\n299205,cat\n299206,airplane\n299207,frog\n299208,deer\n299209,airplane\n299210,airplane\n299211,horse\n299212,deer\n299213,frog\n299214,horse\n299215,ship\n299216,bird\n299217,airplane\n299218,automobile\n299219,airplane\n299220,dog\n299221,horse\n299222,truck\n299223,horse\n299224,horse\n299225,cat\n299226,deer\n299227,cat\n299228,bird\n299229,cat\n299230,dog\n299231,deer\n299232,bird\n299233,bird\n299234,ship\n299235,truck\n299236,deer\n299237,cat\n299238,deer\n299239,ship\n299240,horse\n299241,automobile\n299242,truck\n299243,automobile\n299244,bird\n299245,automobile\n299246,truck\n299247,truck\n299248,airplane\n299249,truck\n299250,ship\n299251,truck\n299252,bird\n299253,airplane\n299254,truck\n299255,horse\n299256,truck\n299257,deer\n299258,truck\n299259,airplane\n299260,automobile\n299261,horse\n299262,automobile\n299263,truck\n299264,ship\n299265,ship\n299266,horse\n299267,frog\n299268,dog\n299269,deer\n299270,horse\n299271,horse\n299272,horse\n299273,deer\n299274,horse\n299275,frog\n299276,horse\n299277,truck\n299278,airplane\n299279,truck\n299280,frog\n299281,frog\n299282,ship\n299283,automobile\n299284,automobile\n299285,deer\n299286,dog\n299287,bird\n299288,airplane\n299289,cat\n299290,horse\n299291,dog\n299292,horse\n299293,dog\n299294,cat\n299295,bird\n299296,frog\n299297,bird\n299298,deer\n299299,dog\n299300,frog\n299301,automobile\n299302,cat\n299303,cat\n299304,horse\n299305,cat\n299306,deer\n299307,cat\n299308,deer\n299309,dog\n299310,automobile\n299311,cat\n299312,automobile\n299313,horse\n299314,cat\n299315,cat\n299316,airplane\n299317,frog\n299318,deer\n299319,truck\n299320,cat\n299321,horse\n299322,cat\n299323,truck\n299324,dog\n299325,bird\n299326,cat\n299327,deer\n299328,cat\n299329,truck\n299330,deer\n299331,airplane\n299332,truck\n299333,horse\n299334,cat\n299335,cat\n299336,dog\n299337,horse\n299338,deer\n299339,airplane\n299340,bird\n299341,deer\n299342,ship\n299343,cat\n299344,frog\n299345,cat\n299346,bird\n299347,frog\n299348,horse\n299349,frog\n299350,dog\n299351,dog\n299352,airplane\n299353,cat\n299354,ship\n299355,airplane\n299356,deer\n299357,bird\n299358,airplane\n299359,deer\n299360,frog\n299361,horse\n299362,ship\n299363,automobile\n299364,truck\n299365,cat\n299366,frog\n299367,dog\n299368,ship\n299369,frog\n299370,airplane\n299371,bird\n299372,deer\n299373,horse\n299374,frog\n299375,airplane\n299376,automobile\n299377,dog\n299378,cat\n299379,frog\n299380,cat\n299381,dog\n299382,ship\n299383,deer\n299384,truck\n299385,dog\n299386,deer\n299387,cat\n299388,bird\n299389,ship\n299390,bird\n299391,dog\n299392,automobile\n299393,cat\n299394,ship\n299395,cat\n299396,frog\n299397,frog\n299398,truck\n299399,dog\n299400,frog\n299401,frog\n299402,automobile\n299403,airplane\n299404,bird\n299405,deer\n299406,cat\n299407,frog\n299408,airplane\n299409,deer\n299410,deer\n299411,horse\n299412,dog\n299413,frog\n299414,horse\n299415,deer\n299416,airplane\n299417,airplane\n299418,truck\n299419,automobile\n299420,cat\n299421,cat\n299422,frog\n299423,dog\n299424,automobile\n299425,cat\n299426,automobile\n299427,deer\n299428,dog\n299429,airplane\n299430,bird\n299431,cat\n299432,truck\n299433,truck\n299434,automobile\n299435,frog\n299436,cat\n299437,bird\n299438,horse\n299439,deer\n299440,deer\n299441,dog\n299442,bird\n299443,airplane\n299444,deer\n299445,truck\n299446,airplane\n299447,deer\n299448,deer\n299449,automobile\n299450,frog\n299451,cat\n299452,dog\n299453,cat\n299454,frog\n299455,dog\n299456,dog\n299457,deer\n299458,deer\n299459,cat\n299460,deer\n299461,ship\n299462,dog\n299463,cat\n299464,horse\n299465,dog\n299466,frog\n299467,cat\n299468,frog\n299469,deer\n299470,deer\n299471,airplane\n299472,bird\n299473,deer\n299474,deer\n299475,truck\n299476,automobile\n299477,frog\n299478,airplane\n299479,ship\n299480,horse\n299481,ship\n299482,horse\n299483,cat\n299484,cat\n299485,cat\n299486,frog\n299487,dog\n299488,dog\n299489,bird\n299490,truck\n299491,dog\n299492,ship\n299493,horse\n299494,frog\n299495,dog\n299496,frog\n299497,airplane\n299498,dog\n299499,dog\n299500,ship\n299501,bird\n299502,deer\n299503,bird\n299504,bird\n299505,deer\n299506,frog\n299507,airplane\n299508,cat\n299509,ship\n299510,dog\n299511,automobile\n299512,deer\n299513,ship\n299514,truck\n299515,truck\n299516,automobile\n299517,deer\n299518,automobile\n299519,airplane\n299520,automobile\n299521,truck\n299522,frog\n299523,frog\n299524,deer\n299525,dog\n299526,truck\n299527,truck\n299528,ship\n299529,deer\n299530,airplane\n299531,truck\n299532,deer\n299533,frog\n299534,airplane\n299535,dog\n299536,horse\n299537,horse\n299538,bird\n299539,bird\n299540,automobile\n299541,deer\n299542,truck\n299543,deer\n299544,dog\n299545,airplane\n299546,frog\n299547,horse\n299548,automobile\n299549,ship\n299550,frog\n299551,automobile\n299552,airplane\n299553,truck\n299554,deer\n299555,frog\n299556,automobile\n299557,automobile\n299558,ship\n299559,cat\n299560,frog\n299561,horse\n299562,frog\n299563,horse\n299564,airplane\n299565,frog\n299566,automobile\n299567,bird\n299568,automobile\n299569,deer\n299570,automobile\n299571,frog\n299572,dog\n299573,deer\n299574,frog\n299575,automobile\n299576,frog\n299577,frog\n299578,airplane\n299579,dog\n299580,deer\n299581,airplane\n299582,cat\n299583,cat\n299584,cat\n299585,deer\n299586,deer\n299587,automobile\n299588,deer\n299589,deer\n299590,airplane\n299591,automobile\n299592,automobile\n299593,deer\n299594,dog\n299595,cat\n299596,deer\n299597,truck\n299598,deer\n299599,cat\n299600,frog\n299601,cat\n299602,airplane\n299603,horse\n299604,frog\n299605,airplane\n299606,cat\n299607,truck\n299608,horse\n299609,airplane\n299610,automobile\n299611,horse\n299612,deer\n299613,frog\n299614,frog\n299615,cat\n299616,deer\n299617,truck\n299618,truck\n299619,deer\n299620,ship\n299621,horse\n299622,dog\n299623,deer\n299624,cat\n299625,bird\n299626,ship\n299627,bird\n299628,cat\n299629,deer\n299630,dog\n299631,cat\n299632,frog\n299633,deer\n299634,airplane\n299635,ship\n299636,dog\n299637,dog\n299638,frog\n299639,dog\n299640,cat\n299641,dog\n299642,airplane\n299643,horse\n299644,bird\n299645,truck\n299646,airplane\n299647,ship\n299648,bird\n299649,cat\n299650,frog\n299651,frog\n299652,deer\n299653,frog\n299654,automobile\n299655,horse\n299656,cat\n299657,bird\n299658,cat\n299659,frog\n299660,horse\n299661,deer\n299662,deer\n299663,cat\n299664,truck\n299665,truck\n299666,horse\n299667,ship\n299668,frog\n299669,deer\n299670,deer\n299671,dog\n299672,ship\n299673,dog\n299674,truck\n299675,cat\n299676,cat\n299677,airplane\n299678,deer\n299679,deer\n299680,deer\n299681,airplane\n299682,horse\n299683,dog\n299684,deer\n299685,cat\n299686,cat\n299687,deer\n299688,dog\n299689,deer\n299690,frog\n299691,automobile\n299692,airplane\n299693,truck\n299694,horse\n299695,deer\n299696,deer\n299697,cat\n299698,airplane\n299699,cat\n299700,automobile\n299701,truck\n299702,bird\n299703,ship\n299704,horse\n299705,ship\n299706,truck\n299707,frog\n299708,deer\n299709,bird\n299710,airplane\n299711,frog\n299712,frog\n299713,deer\n299714,airplane\n299715,automobile\n299716,frog\n299717,ship\n299718,cat\n299719,automobile\n299720,horse\n299721,ship\n299722,frog\n299723,horse\n299724,bird\n299725,deer\n299726,dog\n299727,frog\n299728,dog\n299729,frog\n299730,dog\n299731,airplane\n299732,truck\n299733,airplane\n299734,cat\n299735,deer\n299736,bird\n299737,deer\n299738,cat\n299739,deer\n299740,bird\n299741,ship\n299742,frog\n299743,truck\n299744,airplane\n299745,truck\n299746,automobile\n299747,deer\n299748,deer\n299749,cat\n299750,deer\n299751,deer\n299752,deer\n299753,truck\n299754,deer\n299755,frog\n299756,dog\n299757,cat\n299758,cat\n299759,dog\n299760,deer\n299761,automobile\n299762,bird\n299763,frog\n299764,dog\n299765,dog\n299766,deer\n299767,ship\n299768,frog\n299769,truck\n299770,automobile\n299771,deer\n299772,deer\n299773,deer\n299774,deer\n299775,automobile\n299776,bird\n299777,frog\n299778,deer\n299779,horse\n299780,deer\n299781,airplane\n299782,bird\n299783,deer\n299784,horse\n299785,bird\n299786,cat\n299787,truck\n299788,frog\n299789,truck\n299790,airplane\n299791,dog\n299792,deer\n299793,cat\n299794,cat\n299795,bird\n299796,automobile\n299797,dog\n299798,deer\n299799,frog\n299800,ship\n299801,horse\n299802,cat\n299803,cat\n299804,cat\n299805,horse\n299806,deer\n299807,cat\n299808,airplane\n299809,truck\n299810,airplane\n299811,deer\n299812,dog\n299813,deer\n299814,airplane\n299815,cat\n299816,frog\n299817,automobile\n299818,dog\n299819,cat\n299820,horse\n299821,bird\n299822,truck\n299823,deer\n299824,frog\n299825,horse\n299826,truck\n299827,cat\n299828,frog\n299829,cat\n299830,ship\n299831,ship\n299832,cat\n299833,airplane\n299834,frog\n299835,bird\n299836,cat\n299837,airplane\n299838,horse\n299839,frog\n299840,frog\n299841,bird\n299842,bird\n299843,ship\n299844,ship\n299845,automobile\n299846,deer\n299847,ship\n299848,horse\n299849,deer\n299850,bird\n299851,cat\n299852,frog\n299853,deer\n299854,frog\n299855,deer\n299856,cat\n299857,deer\n299858,airplane\n299859,frog\n299860,airplane\n299861,cat\n299862,automobile\n299863,truck\n299864,frog\n299865,frog\n299866,dog\n299867,horse\n299868,cat\n299869,ship\n299870,frog\n299871,cat\n299872,bird\n299873,airplane\n299874,cat\n299875,bird\n299876,frog\n299877,cat\n299878,deer\n299879,horse\n299880,deer\n299881,horse\n299882,dog\n299883,truck\n299884,bird\n299885,ship\n299886,airplane\n299887,horse\n299888,deer\n299889,cat\n299890,horse\n299891,airplane\n299892,horse\n299893,bird\n299894,bird\n299895,frog\n299896,dog\n299897,cat\n299898,cat\n299899,cat\n299900,ship\n299901,frog\n299902,deer\n299903,automobile\n299904,deer\n299905,bird\n299906,truck\n299907,deer\n299908,cat\n299909,automobile\n299910,dog\n299911,airplane\n299912,bird\n299913,bird\n299914,automobile\n299915,deer\n299916,cat\n299917,ship\n299918,ship\n299919,truck\n299920,automobile\n299921,truck\n299922,frog\n299923,truck\n299924,dog\n299925,horse\n299926,ship\n299927,dog\n299928,bird\n299929,airplane\n299930,airplane\n299931,truck\n299932,airplane\n299933,automobile\n299934,automobile\n299935,deer\n299936,dog\n299937,airplane\n299938,cat\n299939,ship\n299940,bird\n299941,ship\n299942,cat\n299943,airplane\n299944,horse\n299945,airplane\n299946,dog\n299947,dog\n299948,horse\n299949,truck\n299950,truck\n299951,frog\n299952,cat\n299953,ship\n299954,frog\n299955,horse\n299956,deer\n299957,truck\n299958,deer\n299959,automobile\n299960,deer\n299961,horse\n299962,dog\n299963,frog\n299964,deer\n299965,cat\n299966,cat\n299967,ship\n299968,truck\n299969,truck\n299970,dog\n299971,horse\n299972,bird\n299973,airplane\n299974,truck\n299975,ship\n299976,airplane\n299977,horse\n299978,frog\n299979,horse\n299980,airplane\n299981,airplane\n299982,frog\n299983,deer\n299984,frog\n299985,automobile\n299986,cat\n299987,horse\n299988,deer\n299989,deer\n299990,cat\n299991,ship\n299992,truck\n299993,frog\n299994,deer\n299995,frog\n299996,airplane\n299997,bird\n299998,horse\n299999,dog\n300000,automobile\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cifar10.py\n#        \\author   chenghuige  \n#          \\date   2018-07-11 10:04:01.403122\n#   \\Description  https://www.kaggle.com/goldenlock/kernels/notebooks/new?forkParentScriptVersionId=2011753\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nimport pandas as pd\nimport numpy as np\nimport math\nimport timeit\nimport matplotlib.pyplot as plt\nfrom six.moves import cPickle as pickle\nimport os\nimport platform\nfrom subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n\n%matplotlib inline\n\nclasses = ('plane', 'car', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n\n           \ndef load_pickle(f):\n    version = platform.python_version_tuple()\n    if version[0] == '2':\n        return  pickle.load(f)\n    elif version[0] == '3':\n        return  pickle.load(f, encoding='latin1')\n    raise ValueError(\"invalid python version: {}\".format(version))\n\ndef load_CIFAR_batch(filename):\n    \"\"\" load single batch of cifar \"\"\"\n    with open(filename, 'rb') as f:\n        datadict = load_pickle(f)\n        X = datadict['data']\n        Y = datadict['labels']\n        X = X.reshape(10000, 3, 32, 32).transpose(0,2,3,1).astype(\"float\")\n        Y = np.array(Y)\n        return X, Y\n\ndef load_CIFAR10(ROOT):\n    \"\"\" load all of cifar \"\"\"\n    xs = []\n    ys = []\n    for b in range(1,6):\n        f = os.path.join(ROOT, 'data_batch_%d' % (b, ))\n        X, Y = load_CIFAR_batch(f)\n        xs.append(X)\n        ys.append(Y)\n    Xtr = np.concatenate(xs)\n    Ytr = np.concatenate(ys)\n    del X, Y\n    Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, 'test_batch'))\n    return Xtr, Ytr, Xte, Yte\n\ndef get_CIFAR10_data(num_training=49000, num_validation=1000, num_test=10000):\n    # Load the raw CIFAR-10 data\n    cifar10_dir = '../input'\n    X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)\n\n    # Subsample the data\n    mask = range(num_training, num_training + num_validation)\n    X_val = X_train[mask]\n    y_val = y_train[mask]\n    mask = range(num_training)\n    X_train = X_train[mask]\n    y_train = y_train[mask]\n    mask = range(num_test)\n    X_test = X_test[mask]\n    y_test = y_test[mask]\n\n    # Normalize the data: subtract the mean image\n    mean_image = np.mean(X_train, axis=0)\n    X_train -= mean_image\n    X_val -= mean_image\n    X_test -= mean_image\n\n    return X_train, y_train, X_val, y_val, X_test, y_test\n\n\n# Invoke the above function to get our data.\nX_train, y_train, X_val, y_val, X_test, y_test = get_CIFAR10_data()\nprint('Train data shape: ', X_train.shape)\nprint('Train labels shape: ', y_train.shape)\nprint('Validation data shape: ', X_val.shape)\nprint('Validation labels shape: ', y_val.shape)\nprint('Test data shape: ', X_test.shape)\nprint('Test labels shape: ', y_test.shape)\n\n# define net\nclass CifarNet():\n    def __init__(self):\n        # conv layer\n        # H2 = (H1 - F + 2P)/S +1\n        # (32-5)/1 + 1 = 28\n        # 28x28x32 = 25088\n        # To ReLu (?x16x16x32) -> MaxPool (?x16x16x32) -> affine (8192)\n        self.Wconv1 = tf.get_variable(\"Wconv1\", shape=[5, 5, 3, 32])\n        self.bconv1 = tf.get_variable(\"bconv1\", shape=[32])\n        # (32-5)/1 + 1 = 28\n        # 28x28x64 = 50176\n        self.Wconv2 = tf.get_variable(\"Wconv2\", shape=[5, 5, 32, 64])\n        self.bconv2 = tf.get_variable(\"bconv2\", shape=[64])\n        # affine layer with 1024\n        self.W1 = tf.get_variable(\"W1\", shape=[3136, 1024])\n        self.b1 = tf.get_variable(\"b1\", shape=[1024])\n        # affine layer with 10\n        self.W2 = tf.get_variable(\"W2\", shape=[1024, 10])\n        self.b2 = tf.get_variable(\"b2\", shape=[10])        \n        \n    def forward(self, X, y, is_training):\n        # conv2d\n        # ReLu\n        # conv2d\n        # ReLu\n        # maxpool\n        # Batch Norm\n        # Affine\n        # Batch Norm\n        # ReLu\n        # Affine\n        # dropout\n        # Batch Norm\n\n        # conv layer\n        # H2 = (H1 - F + 2P)/S +1\n        # (32-5)/1 + 1 = 28\n        # 28x28x32 = 25088\n        # To ReLu (?x16x16x32) -> MaxPool (?x16x16x32) -> affine (8192)\n\n        # define our graph (e.g. two_layer_convnet) with stride 1\n        conv1 = tf.nn.conv2d(X, self.Wconv1, strides=[1, 1, 1, 1], padding='SAME') + self.bconv1\n        print(conv1.shape)\n        # ReLU Activation Layer\n        relu1 = tf.nn.relu(conv1)\n        print(relu1)\n        # Conv\n        conv2 = tf.nn.conv2d(relu1, self.Wconv2, strides=[1, 2, 2, 1], padding='VALID') + self.bconv2\n        print(conv2.shape)\n        # ReLU Activation Layer\n        relu2 = tf.nn.relu(conv2)\n        print(relu2)\n        # 2x2 Max Pooling layer with a stride of 2\n        maxpool = tf.layers.max_pooling2d(relu2, pool_size=(2,2), strides=2)\n        print(maxpool.shape)\n        maxpool_flat = tf.reshape(maxpool,[-1,3136])\n        # Spatial Batch Normalization Layer (trainable parameters, with scale and centering)\n        bn1 = tf.layers.batch_normalization(inputs=maxpool_flat, center=True, scale=True, training=is_training)\n        # Affine layer with 1024 output units\n        affine1 = tf.matmul(bn1, self.W1) + self.b1\n        print(affine1.shape)\n        # vanilla batch normalization\n        affine1_flat = tf.reshape(affine1,[-1,1024])\n        bn2 = tf.layers.batch_normalization(inputs=affine1, center=True, scale=True, training=is_training)\n        print(bn2.shape)\n        # ReLU Activation Layer\n        relu2 = tf.nn.relu(bn2)\n        print(relu2.shape)\n        # dropout\n        drop1 = tf.layers.dropout(inputs=relu2, training=is_training)\n        # Affine layer from 1024 input units to 10 outputs\n        affine2 = tf.matmul(drop1, self.W2) + self.b2\n        # vanilla batch normalization\n        affine2_flat = tf.reshape(affine2,[-1,3136])\n        self.predict = tf.layers.batch_normalization(inputs=affine2, center=True, scale=True, training=is_training)\n        print(self.predict.shape)\n        return self.predict\n    \n    def run(self, session, loss_val, Xd, yd,\n                  epochs=1, batch_size=64, print_every=100,\n                  training=None, plot_losses=False, isSoftMax=False):\n        # have tensorflow compute accuracy\n        if isSoftMax:\n            correct_prediction = tf.nn.softmax(self.predict)\n        else:\n            correct_prediction = tf.equal(tf.argmax(self.predict,1), y)\n        accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n\n        # shuffle indicies\n        train_indicies = np.arange(Xd.shape[0])\n        np.random.shuffle(train_indicies)\n\n        training_now = training is not None\n\n        # setting up variables we want to compute (and optimizing)\n        # if we have a training function, add that to things we compute\n        variables = [mean_loss, correct_prediction, accuracy]\n        if training_now:\n            variables[-1] = training\n\n        # counter \n        iter_cnt = 0\n        for e in range(epochs):\n            # keep track of losses and accuracy\n            correct = 0\n            losses = []\n            # make sure we iterate over the dataset once\n            for i in range(int(math.ceil(Xd.shape[0]/batch_size))):\n                # generate indicies for the batch\n                start_idx = (i*batch_size)%Xd.shape[0]\n                idx = train_indicies[start_idx:start_idx+batch_size]\n\n                # create a feed dictionary for this batch\n                feed_dict = {X: Xd[idx,:],\n                             y: yd[idx],\n                             is_training: training_now }\n                # get batch size\n                actual_batch_size = yd[idx].shape[0]\n\n                # have tensorflow compute loss and correct predictions\n                # and (if given) perform a training step\n                loss, corr, _ = session.run(variables,feed_dict=feed_dict)\n\n                # aggregate performance stats\n                losses.append(loss*actual_batch_size)\n                correct += np.sum(corr)\n\n                # print every now and then\n                if training_now and (iter_cnt % print_every) == 0:\n                    print(\"Iteration {0}: with minibatch training loss = {1:.3g} and accuracy of {2:.2g}\"\\\n                          .format(iter_cnt,loss,np.sum(corr)/actual_batch_size))\n                iter_cnt += 1\n            total_correct = correct/Xd.shape[0]\n            total_loss = np.sum(losses)/Xd.shape[0]\n            print(\"Epoch {2}, Overall loss = {0:.3g} and accuracy of {1:.3g}\"\\\n                  .format(total_loss,total_correct,e+1))\n            if plot_losses:\n                plt.plot(losses)\n                plt.grid(True)\n                plt.title('Epoch {} Loss'.format(e+1))\n                plt.xlabel('minibatch number')\n                plt.ylabel('minibatch loss')\n                plt.show()\n        return total_loss, total_correct\n\ntf.reset_default_graph()\nX = tf.placeholder(tf.float32, [None, 32, 32, 3])\ny = tf.placeholder(tf.int64, [None])\nis_training = tf.placeholder(tf.bool)\n\nnet = CifarNet()\nnet.forward(X,y,is_training)\n\n# Annealing the learning rate\nglobal_step = tf.Variable(0, trainable=False)\nstarter_learning_rate = 1e-3\nend_learning_rate = 5e-3\ndecay_steps = 10000\n\nlearning_rate = tf.train.polynomial_decay(starter_learning_rate, global_step,\n                                          decay_steps, end_learning_rate,\n                                          power=0.5)\n\nexp_learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,\n                                               100000, 0.96, staircase=True)\n\n\n# Feel free to play with this cell\nmean_loss = None\noptimizer = None\n\n# define our loss\ncross_entr_loss = tf.nn.softmax_cross_entropy_with_logits(labels=tf.one_hot(y,10), logits=net.predict)\nmean_loss = tf.reduce_mean(cross_entr_loss)\n\n# define our optimizer\noptimizer = tf.train.AdamOptimizer(exp_learning_rate)\n\n\n# batch normalization in tensorflow requires this extra dependency\nextra_update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)\nwith tf.control_dependencies(extra_update_ops):\n    train_step = optimizer.minimize(mean_loss, global_step=global_step)\n\n# train with 10 epochs\nsess = tf.Session()\n\ntry:\n    with tf.device(\"/cpu:0\") as dev:\n        sess.run(tf.global_variables_initializer())\n        print('Training')\n        net.run(sess, mean_loss, X_train, y_train, 10, 64, 200, train_step, True)\n        print('Validation')\n        net.run(sess, mean_loss, X_val, y_val, 1, 64)\nexcept tf.errors.InvalidArgumentError:\n    print(\"no gpu found, please use Google Cloud if you want GPU acceleration\") \n# view net model result on train  and validation set\nprint('Training')\nnet.run(sess, mean_loss, X_train, y_train, 1, 64)\nprint('Validation')\nnet.run(sess, mean_loss, X_val, y_val, 1, 64)\n\n# check result on test\nprint('Test')\nnet.run(sess, mean_loss, X_test, y_test, 1, 64)\n\n# create a feed dictionary for this batch\nfeed_dict = {X: X_test,\n             y: y_test,\n             is_training: False}\n\n# predict\npredict = sess.run(tf.nn.softmax(net.predict), feed_dict=feed_dict)\npredict_df = pd.DataFrame(predict, columns=classes)\n\npredict_df.head()"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/README.md",
    "content": "https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10_estimator/   \nCIFAR-10 is a common benchmark in machine learning for image recognition.\n\nhttp://www.cs.toronto.edu/~kriz/cifar.html\n\nCode in this directory focuses on how to use TensorFlow Estimators to train and \nevaluate a CIFAR-10 ResNet model on:\n\n* A single host with one CPU;\n* A single host with multiple GPUs;\n* Multiple hosts with CPU or multiple GPUs;\n\nBefore trying to run the model we highly encourage you to read all the README.\n\n## Prerequisite\n\n1. [Install](https://www.tensorflow.org/install/) TensorFlow version 1.2.1 or\nlater.\n\n2. Download the CIFAR-10 dataset and generate TFRecord files using the provided\nscript.  The script and associated command below will download the CIFAR-10\ndataset and then generate a TFRecord for the training, validation, and\nevaluation datasets. \n\n```shell\npython generate_cifar10_tfrecords.py --data-dir=${PWD}/cifar-10-data\n```\n\nAfter running the command above, you should see the following files in the\n--data-dir (```ls -R cifar-10-data```):\n\n* train.tfrecords\n* validation.tfrecords\n* eval.tfrecords\n\n\n## Training on a single machine with GPUs or CPU\n\nRun the training on CPU only. After training, it runs the evaluation.\n\n```\npython cifar10_main.py --data-dir=${PWD}/cifar-10-data \\\n                       --job-dir=/tmp/cifar10 \\\n                       --num-gpus=0 \\\n                       --train-steps=1000\n```\n\nRun the model on 2 GPUs using CPU as parameter server. After training, it runs\nthe evaluation.\n```\npython cifar10_main.py --data-dir=${PWD}/cifar-10-data \\\n                       --job-dir=/tmp/cifar10 \\\n                       --num-gpus=2 \\\n                       --train-steps=1000\n```\n\nRun the model on 2 GPUs using GPU as parameter server.\nIt will run an experiment, which for local setting basically means it will run\nstop training\na couple of times to perform evaluation.\n\n```\npython cifar10_main.py --data-dir=${PWD}/cifar-10-data \\\n                       --job-dir=/tmp/cifar10 \\\n                       --variable-strategy GPU \\\n                       --num-gpus=2 \\\n```\n\nThere are more command line flags to play with; run\n`python cifar10_main.py --help` for details.\n\n## Run distributed training\n\n### (Optional) Running on Google Cloud Machine Learning Engine\n\nThis example can be run on Google Cloud Machine Learning Engine (ML Engine),\nwhich will configure the environment and take care of running workers,\nparameters servers, and masters in a fault tolerant way.\n\nTo install the command line tool, and set up a project and billing, see the\nquickstart [here](https://cloud.google.com/ml-engine/docs/quickstarts/command-line).\n\nYou'll also need a Google Cloud Storage bucket for the data. If you followed the\ninstructions above, you can just run:\n\n```\nMY_BUCKET=gs://<my-bucket-name>\ngsutil cp -r ${PWD}/cifar-10-data $MY_BUCKET/\n```\n\nThen run the following command from the `tutorials/image` directory of this\nrepository (the parent directory of this README):\n\n```\ngcloud ml-engine jobs submit training cifarmultigpu \\\n    --runtime-version 1.2 \\\n    --job-dir=$MY_BUCKET/model_dirs/cifarmultigpu \\\n    --config cifar10_estimator/cmle_config.yaml \\\n    --package-path cifar10_estimator/ \\\n    --module-name cifar10_estimator.cifar10_main \\\n    -- \\\n    --data-dir=$MY_BUCKET/cifar-10-data \\\n    --num-gpus=4 \\\n    --train-steps=1000\n```\n\n\n### Set TF_CONFIG\n\nConsidering that you already have multiple hosts configured, all you need is a\n`TF_CONFIG` environment variable on each host. You can set up the hosts manually\nor check [tensorflow/ecosystem](https://github.com/tensorflow/ecosystem) for\ninstructions about how to set up a Cluster.\n\nThe `TF_CONFIG` will be used by the `RunConfig` to know the existing hosts and\ntheir task: `master`, `ps` or `worker`.\n\nHere's an example of `TF_CONFIG`.\n\n```python\ncluster = {'master': ['master-ip:8000'],\n           'ps': ['ps-ip:8000'],\n           'worker': ['worker-ip:8000']}\n\nTF_CONFIG = json.dumps(\n  {'cluster': cluster,\n   'task': {'type': master, 'index': 0},\n   'model_dir': 'gs://<bucket_path>/<dir_path>',\n   'environment': 'cloud'\n  })\n```\n\n*Cluster*\n\nA cluster spec, which is basically a dictionary that describes all of the tasks\nin the cluster. More about it [here](https://www.tensorflow.org/deploy/distributed).\n\nIn this cluster spec we are defining a cluster with 1 master, 1 ps and 1 worker.\n\n* `ps`: saves the parameters among all workers. All workers can\n   read/write/update the parameters for model via ps. As some models are\n   extremely large the parameters are shared among the ps (each ps stores a\n   subset).\n\n* `worker`: does the training.\n\n* `master`: basically a special worker, it does training, but also restores and\n   saves checkpoints and do evaluation.\n\n*Task*\n\nThe Task defines what is the role of the current node, for this example the node\nis the master on index 0 on the cluster spec, the task will be different for\neach node. An example of the `TF_CONFIG` for a worker would be:\n\n```python\ncluster = {'master': ['master-ip:8000'],\n           'ps': ['ps-ip:8000'],\n           'worker': ['worker-ip:8000']}\n\nTF_CONFIG = json.dumps(\n  {'cluster': cluster,\n   'task': {'type': worker, 'index': 0},\n   'model_dir': 'gs://<bucket_path>/<dir_path>',\n   'environment': 'cloud'\n  })\n```\n\n*Model_dir*\n\nThis is the path where the master will save the checkpoints, graph and\nTensorBoard files. For a multi host environment you may want to use a\nDistributed File System, Google Storage and DFS are supported.\n\n*Environment*\n\nBy the default environment is *local*, for a distributed setting we need to\nchange it to *cloud*.\n\n### Running script\n\nOnce you have a `TF_CONFIG` configured properly on each host you're ready to run\non distributed settings.\n\n#### Master\nRun this on master:\nRuns an Experiment in sync mode on 4 GPUs using CPU as parameter server for\n40000 steps. It will run evaluation a couple of times during training. The\nnum_workers arugument is used only to update the learning rate correctly. Make\nsure the model_dir is the same as defined on the TF_CONFIG.\n\n```shell\npython cifar10_main.py --data-dir=gs://path/cifar-10-data \\\n                       --job-dir=gs://path/model_dir/ \\\n                       --num-gpus=4 \\\n                       --train-steps=40000 \\\n                       --sync \\\n                       --num-workers=2\n```\n\n*Output:*\n\n```shell\nINFO:tensorflow:Using model_dir in TF_CONFIG: gs://path/model_dir/\nINFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_num_ps_replicas': 1, '_keep_checkpoint_max': 5, '_task_type': u'master', '_is_chief': True, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7fd16fb2be10>, '_model_dir': 'gs://path/model_dir/', '_save_checkpoints_steps': None, '_keep_checkpoint_every_n_hours': 10000, '_session_config': intra_op_parallelism_threads: 1\ngpu_options {\n}\nallow_soft_placement: true\n, '_tf_random_seed': None, '_environment': u'cloud', '_num_worker_replicas': 1, '_task_id': 0, '_save_summary_steps': 100, '_tf_config': gpu_options {\n  per_process_gpu_memory_fraction: 1.0\n}\n, '_evaluation_master': '', '_master': u'grpc://master-ip:8000'}\n...\n2017-08-01 19:59:26.496208: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:04.0\nTotal memory: 11.17GiB\nFree memory: 11.09GiB\n2017-08-01 19:59:26.775660: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 1 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:05.0\nTotal memory: 11.17GiB\nFree memory: 11.10GiB\n...\n2017-08-01 19:59:29.675171: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:316] Started server with target: grpc://localhost:8000\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_2/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_3/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_4/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_5/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_6/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/avg_pool/: (?, 16, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_5/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_6/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/avg_pool/: (?, 32, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_2/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_3/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_4/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_5/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_6/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/global_avg_pool/: (?, 64)\nINFO:tensorflow:image after unit resnet/tower_0/fully_connected/: (?, 11)\nINFO:tensorflow:SyncReplicasV2: replicas_to_aggregate=1; total_num_replicas=1\nINFO:tensorflow:Create CheckpointSaverHook.\nINFO:tensorflow:Restoring parameters from gs://path/model_dir/model.ckpt-0\n2017-08-01 19:59:37.560775: I tensorflow/core/distributed_runtime/master_session.cc:999] Start master session 156fcb55fe6648d6 with config: \nintra_op_parallelism_threads: 1\ngpu_options {\n  per_process_gpu_memory_fraction: 1\n}\nallow_soft_placement: true\n\nINFO:tensorflow:Saving checkpoints for 1 into gs://path/model_dir/model.ckpt.\nINFO:tensorflow:loss = 1.20682, step = 1\nINFO:tensorflow:loss = 1.20682, learning_rate = 0.1\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_2/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_3/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_4/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_5/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_6/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/avg_pool/: (?, 16, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_5/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_6/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/avg_pool/: (?, 32, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_2/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_3/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_4/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_5/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_6/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/global_avg_pool/: (?, 64)\nINFO:tensorflow:image after unit resnet/tower_0/fully_connected/: (?, 11)\nINFO:tensorflow:SyncReplicasV2: replicas_to_aggregate=2; total_num_replicas=2\nINFO:tensorflow:Starting evaluation at 2017-08-01-20:00:14\n2017-08-01 20:00:15.745881: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K80, pci bus id: 0000:00:04.0)\n2017-08-01 20:00:15.745949: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla K80, pci bus id: 0000:00:05.0)\n2017-08-01 20:00:15.745958: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:2) -> (device: 2, name: Tesla K80, pci bus id: 0000:00:06.0)\n2017-08-01 20:00:15.745964: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:3) -> (device: 3, name: Tesla K80, pci bus id: 0000:00:07.0)\n2017-08-01 20:00:15.745969: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:4) -> (device: 4, name: Tesla K80, pci bus id: 0000:00:08.0)\n2017-08-01 20:00:15.745975: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:5) -> (device: 5, name: Tesla K80, pci bus id: 0000:00:09.0)\n2017-08-01 20:00:15.745987: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:6) -> (device: 6, name: Tesla K80, pci bus id: 0000:00:0a.0)\n2017-08-01 20:00:15.745997: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:7) -> (device: 7, name: Tesla K80, pci bus id: 0000:00:0b.0)\nINFO:tensorflow:Restoring parameters from gs://path/model_dir/model.ckpt-10023\nINFO:tensorflow:Evaluation [1/100]\nINFO:tensorflow:Evaluation [2/100]\nINFO:tensorflow:Evaluation [3/100]\nINFO:tensorflow:Evaluation [4/100]\nINFO:tensorflow:Evaluation [5/100]\nINFO:tensorflow:Evaluation [6/100]\nINFO:tensorflow:Evaluation [7/100]\nINFO:tensorflow:Evaluation [8/100]\nINFO:tensorflow:Evaluation [9/100]\nINFO:tensorflow:Evaluation [10/100]\nINFO:tensorflow:Evaluation [11/100]\nINFO:tensorflow:Evaluation [12/100]\nINFO:tensorflow:Evaluation [13/100]\n...\nINFO:tensorflow:Evaluation [100/100]\nINFO:tensorflow:Finished evaluation at 2017-08-01-20:00:31\nINFO:tensorflow:Saving dict for global step 1: accuracy = 0.0994, global_step = 1, loss = 630.425\n```\n\n#### Worker\n\nRun this on worker:\nRuns an Experiment in sync mode on 4 GPUs using CPU as parameter server for\n40000 steps. It will run evaluation a couple of times during training. Make sure\nthe model_dir is the same as defined on the TF_CONFIG.\n\n```shell\npython cifar10_main.py --data-dir=gs://path/cifar-10-data \\\n                       --job-dir=gs://path/model_dir/ \\\n                       --num-gpus=4 \\\n                       --train-steps=40000 \\\n                       --sync\n```\n\n*Output:*\n\n```shell\nINFO:tensorflow:Using model_dir in TF_CONFIG: gs://path/model_dir/\nINFO:tensorflow:Using config: {'_save_checkpoints_secs': 600,\n'_num_ps_replicas': 1, '_keep_checkpoint_max': 5, '_task_type': u'worker',\n'_is_chief': False, '_cluster_spec':\n<tensorflow.python.training.server_lib.ClusterSpec object at 0x7f6918438e10>,\n'_model_dir': 'gs://<path>/model_dir/',\n'_save_checkpoints_steps': None, '_keep_checkpoint_every_n_hours': 10000,\n'_session_config': intra_op_parallelism_threads: 1\ngpu_options {\n}\nallow_soft_placement: true\n, '_tf_random_seed': None, '_environment': u'cloud', '_num_worker_replicas': 1,\n'_task_id': 0, '_save_summary_steps': 100, '_tf_config': gpu_options {\n  per_process_gpu_memory_fraction: 1.0\n  }\n...\n2017-08-01 19:59:26.496208: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:04.0\nTotal memory: 11.17GiB\nFree memory: 11.09GiB\n2017-08-01 19:59:26.775660: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 1 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:05.0\nTotal memory: 11.17GiB\nFree memory: 11.10GiB\n...\n2017-08-01 19:59:29.675171: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:316] Started server with target: grpc://localhost:8000\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_2/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_3/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_4/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_5/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_6/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/avg_pool/: (?, 16, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_5/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_6/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/avg_pool/: (?, 32, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_2/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_3/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_4/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_5/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_6/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/global_avg_pool/: (?, 64)\nINFO:tensorflow:image after unit resnet/tower_0/fully_connected/: (?, 11)\nINFO:tensorflow:SyncReplicasV2: replicas_to_aggregate=2; total_num_replicas=2\nINFO:tensorflow:Create CheckpointSaverHook.\n2017-07-31 22:38:04.629150: I\ntensorflow/core/distributed_runtime/master.cc:209] CreateSession still waiting\nfor response from worker: /job:master/replica:0/task:0\n2017-07-31 22:38:09.263492: I\ntensorflow/core/distributed_runtime/master_session.cc:999] Start master\nsession cc58f93b1e259b0c with config: \nintra_op_parallelism_threads: 1\ngpu_options {\nper_process_gpu_memory_fraction: 1\n}\nallow_soft_placement: true\nINFO:tensorflow:loss = 5.82382, step = 0\nINFO:tensorflow:loss = 5.82382, learning_rate = 0.8\nINFO:tensorflow:Average examples/sec: 1116.92 (1116.92), step = 10\nINFO:tensorflow:Average examples/sec: 1233.73 (1377.83), step = 20\nINFO:tensorflow:Average examples/sec: 1485.43 (2509.3), step = 30\nINFO:tensorflow:Average examples/sec: 1680.27 (2770.39), step = 40\nINFO:tensorflow:Average examples/sec: 1825.38 (2788.78), step = 50\nINFO:tensorflow:Average examples/sec: 1929.32 (2697.27), step = 60\nINFO:tensorflow:Average examples/sec: 2015.17 (2749.05), step = 70\nINFO:tensorflow:loss = 37.6272, step = 79 (19.554 sec)\nINFO:tensorflow:loss = 37.6272, learning_rate = 0.8 (19.554 sec)\nINFO:tensorflow:Average examples/sec: 2074.92 (2618.36), step = 80\nINFO:tensorflow:Average examples/sec: 2132.71 (2744.13), step = 90\nINFO:tensorflow:Average examples/sec: 2183.38 (2777.21), step = 100\nINFO:tensorflow:Average examples/sec: 2224.4 (2739.03), step = 110\nINFO:tensorflow:Average examples/sec: 2240.28 (2431.26), step = 120\nINFO:tensorflow:Average examples/sec: 2272.12 (2739.32), step = 130\nINFO:tensorflow:Average examples/sec: 2300.68 (2750.03), step = 140\nINFO:tensorflow:Average examples/sec: 2325.81 (2745.63), step = 150\nINFO:tensorflow:Average examples/sec: 2347.14 (2721.53), step = 160\nINFO:tensorflow:Average examples/sec: 2367.74 (2754.54), step = 170\nINFO:tensorflow:loss = 27.8453, step = 179 (18.893 sec)\n...\n```\n\n#### PS\n\nRun this on ps:\nThe ps will not do training so most of the arguments won't affect the execution\n\n```shell\npython cifar10_main.py --job-dir=gs://path/model_dir/\n```\n\n*Output:*\n\n```shell\nINFO:tensorflow:Using model_dir in TF_CONFIG: gs://path/model_dir/\nINFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_num_ps_replicas': 1, '_keep_checkpoint_max': 5, '_task_type': u'ps', '_is_chief': False, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7f48f1addf90>, '_model_dir': 'gs://path/model_dir/', '_save_checkpoints_steps': None, '_keep_checkpoint_every_n_hours': 10000, '_session_config': intra_op_parallelism_threads: 1\ngpu_options {\n}\nallow_soft_placement: true\n, '_tf_random_seed': None, '_environment': u'cloud', '_num_worker_replicas': 1, '_task_id': 0, '_save_summary_steps': 100, '_tf_config': gpu_options {\n  per_process_gpu_memory_fraction: 1.0\n}\n, '_evaluation_master': '', '_master': u'grpc://master-ip:8000'}\n2017-07-31 22:54:58.928088: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job master -> {0 -> master-ip:8000}\n2017-07-31 22:54:58.928153: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job ps -> {0 -> localhost:8000}\n2017-07-31 22:54:58.928160: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job worker -> {0 -> worker-ip:8000}\n2017-07-31 22:54:58.929873: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:316] Started server with target: grpc://localhost:8000\n```\n\n## Visualizing results with TensorBoard\n\nWhen using Estimators you can also visualize your data in TensorBoard, with no\nchanges in your code. You can use TensorBoard to visualize your TensorFlow\ngraph, plot quantitative metrics about the execution of your graph, and show\nadditional data like images that pass through it.\n\nYou'll see something similar to this if you \"point\" TensorBoard to the\n`job dir` parameter you used to train or evaluate your model.\n\nCheck TensorBoard during training or after it. Just point TensorBoard to the\nmodel_dir you chose on the previous step.\n\n```shell\ntensorboard --log-dir=\"<job dir>\"\n```\n\n## Warnings\n\nWhen runninng `cifar10_main.py` with `--sync` argument you may see an error\nsimilar to:\n\n```python\nFile \"cifar10_main.py\", line 538, in <module>\n    tf.app.run()\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py\", line 48, in run\n    _sys.exit(main(_sys.argv[:1] + flags_passthrough))\nFile \"cifar10_main.py\", line 518, in main\n    hooks), run_config=config)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn_runner.py\", line 210, in run\n    return _execute_schedule(experiment, schedule)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn_runner.py\", line 47, in _execute_schedule\n    return task()\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py\", line 501, in train_and_evaluate\n    hooks=self._eval_hooks)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py\", line 681, in _call_evaluate\n    hooks=hooks)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py\", line 292, in evaluate\n    name=name)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py\", line 638, in _evaluate_model\n    features, labels, model_fn_lib.ModeKeys.EVAL)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py\", line 545, in _call_model_fn\n    features=features, labels=labels, **kwargs)\nFile \"cifar10_main.py\", line 331, in _resnet_model_fn\n    gradvars, global_step=tf.train.get_global_step())\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/sync_replicas_optimizer.py\", line 252, in apply_gradients\n    variables.global_variables())\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py\", line 170, in wrapped\n    return _add_should_use_warning(fn(*args, **kwargs))\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py\", line 139, in _add_should_use_warning\n    wrapped = TFShouldUseWarningWrapper(x)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py\", line 96, in __init__\n    stack = [s.strip() for s in traceback.format_stack()]\n```\n\nThis should not affect your training, and should be fixed on the next releases.\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/__init__.py",
    "content": ""
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/cifar10.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\n\nHEIGHT = 32\nWIDTH = 32\nDEPTH = 3\n\n\nclass Cifar10DataSet(object):\n  \"\"\"Cifar10 data set.\n\n  Described by http://www.cs.toronto.edu/~kriz/cifar.html.\n  \"\"\"\n\n  def __init__(self, data_dir, subset='train', use_distortion=True):\n    self.data_dir = data_dir\n    self.subset = subset\n    self.use_distortion = use_distortion\n\n  def get_filenames(self):\n    if self.subset in ['train', 'valid', 'test']:\n      return [os.path.join(self.data_dir, self.subset + '.tfrecords')]\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % self.subset)\n\n  def parser(self, serialized_example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    # Dimensions of the images in the CIFAR-10 dataset.\n    # See http://www.cs.toronto.edu/~kriz/cifar.html for a description of the\n    # input format.\n    features = tf.parse_single_example(\n        serialized_example,\n        features={\n            'id': tf.FixedLenFeature([], tf.int64),\n            'image': tf.FixedLenFeature([], tf.string),\n            'label': tf.FixedLenFeature([], tf.int64),\n        })\n    image = tf.decode_raw(features['image'], tf.uint8)\n    image.set_shape([HEIGHT * WIDTH * DEPTH])\n\n    image = tf.cast(\n        tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n        tf.float32)\n    label = tf.cast(features['label'], tf.int32)\n    id = tf.cast(features['id'], tf.int32)\n\n    # Custom preprocessing.\n    image = self.preprocess(image)\n    return id, image, label\n\n\n  def make_batch(self, batch_size, repeat=None):\n    \"\"\"Read the images and labels from 'filenames'.\"\"\"\n    filenames = self.get_filenames()\n    repeat = repeat or (self.subset == 'train')\n    # Repeat infinitely.\n    dataset = tf.data.TFRecordDataset(filenames)\n\n    if repeat:\n      dataset = dataset.repeat()\n\n    # Parse records.\n    dataset = dataset.map(\n        self.parser, num_parallel_calls=batch_size)\n\n    # Potentially shuffle records.\n    if self.subset == 'train':\n      min_queue_examples = int(\n          Cifar10DataSet.num_examples_per_epoch(self.subset) * 0.4)\n      # Ensure that the capacity is sufficiently large to provide good random\n      # shuffling.\n      dataset = dataset.shuffle(buffer_size=min_queue_examples + 3 * batch_size)\n\n    # Batch it up.\n    dataset = dataset.batch(batch_size)\n\n    if repeat:\n      iterator = dataset.make_one_shot_iterator()\n    else:\n      iterator = dataset.make_initializable_iterator()\n    self.iterator = iterator\n    return iterator\n\n  def preprocess(self, image):\n    \"\"\"Preprocess a single image in [height, width, depth] layout.\"\"\"\n    if self.subset == 'train' and self.use_distortion:\n      # Pad 4 pixels on each dimension of feature map, done in mini-batch\n      #... yes should do something like below.. but you will see with dataset.map.. not ok as summary without scope and finally graph has no these summaries\n      # refer to https://stackoverflow.com/questions/47345394/image-summaries-with-tensorflows-dataset-api  TODO FIXME\n      tf.summary.image('image', image)\n      image = tf.image.resize_image_with_crop_or_pad(image, 40, 40)\n      image = tf.random_crop(image, [HEIGHT, WIDTH, DEPTH])\n      image = tf.image.random_flip_left_right(image)\n      tf.summary.image('image/distort', image)\n    return image\n\n  @staticmethod\n  def num_examples_per_epoch(subset='train'):\n    if subset == 'train':\n      return 45000\n    elif subset == 'valid':\n      return 5000\n    elif subset == 'test':\n      return 10000\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % subset)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/cifar10_main.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"ResNet model for classifying images from CIFAR-10 dataset.\n\nSupport single-host training with one or multiple devices.\n\nResNet as proposed in:\nKaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun\nDeep Residual Learning for Image Recognition. arXiv:1512.03385\n\nCIFAR-10 as in:\nhttp://www.cs.toronto.edu/~kriz/cifar.html\n\n\n\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport functools\nimport itertools\nimport os\n\nimport cifar10\nimport cifar10_model\nimport cifar10_utils\nimport numpy as np\nimport six\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\n\ntf.logging.set_verbosity(tf.logging.INFO)\n\n\ndef get_model_fn(num_gpus, variable_strategy, num_workers):\n  \"\"\"Returns a function that will build the resnet model.\"\"\"\n\n  def _resnet_model_fn(features, labels, mode, params):\n    \"\"\"Resnet model body.\n\n    Support single host, one or more GPU training. Parameter distribution can\n    be either one of the following scheme.\n    1. CPU is the parameter server and manages gradient updates.\n    2. Parameters are distributed evenly across all GPUs, and the first GPU\n       manages gradient updates.\n\n    Args:\n      features: a list of tensors, one for each tower\n      labels: a list of tensors, one for each tower\n      mode: ModeKeys.TRAIN or EVAL\n      params: Hyperparameters suitable for tuning\n    Returns:\n      A EstimatorSpec object.\n    \"\"\"\n    is_training = (mode == tf.estimator.ModeKeys.TRAIN)\n    weight_decay = params.weight_decay\n    momentum = params.momentum\n\n    tower_features = features\n    tower_labels = labels\n    tower_losses = []\n    tower_gradvars = []\n    tower_preds = []\n\n    # channels first (NCHW) is normally optimal on GPU and channels last (NHWC)\n    # on CPU. The exception is Intel MKL on CPU which is optimal with\n    # channels_last.\n    data_format = params.data_format\n    if not data_format:\n      if num_gpus == 0:\n        data_format = 'channels_last'\n      else:\n        data_format = 'channels_first'\n\n    if num_gpus == 0:\n      num_devices = 1\n      device_type = 'cpu'\n    else:\n      num_devices = num_gpus\n      device_type = 'gpu'\n\n    for i in range(num_devices):\n      worker_device = '/{}:{}'.format(device_type, i)\n      if variable_strategy == 'CPU':\n        device_setter = cifar10_utils.local_device_setter(\n            worker_device=worker_device)\n      elif variable_strategy == 'GPU':\n        device_setter = cifar10_utils.local_device_setter(\n            ps_device_type='gpu',\n            worker_device=worker_device,\n            ps_strategy=tf.contrib.training.GreedyLoadBalancingStrategy(\n                num_gpus, tf.contrib.training.byte_size_load_fn))\n      with tf.variable_scope('resnet', reuse=bool(i != 0)):\n        with tf.name_scope('tower_%d' % i) as name_scope:\n          with tf.device(device_setter):\n            loss, gradvars, preds = _tower_fn(\n                is_training, weight_decay, tower_features[i], tower_labels[i],\n                data_format, params.num_layers, params.batch_norm_decay,\n                params.batch_norm_epsilon)\n            tower_losses.append(loss)\n            tower_gradvars.append(gradvars)\n            tower_preds.append(preds)\n            if i == 0:\n              # Only trigger batch_norm moving mean and variance update from\n              # the 1st tower. Ideally, we should grab the updates from all\n              # towers but these stats accumulate extremely fast so we can\n              # ignore the other stats from the other towers without\n              # significant detriment.\n              update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS,\n                                             name_scope)\n\n    # Now compute global loss and gradients.\n    gradvars = []\n    with tf.name_scope('gradient_averaging'):\n      all_grads = {}\n      for grad, var in itertools.chain(*tower_gradvars):\n        if grad is not None:\n          all_grads.setdefault(var, []).append(grad)\n      for var, grads in six.iteritems(all_grads):\n        # Average gradients on the same device as the variables\n        # to which they apply.\n        with tf.device(var.device):\n          if len(grads) == 1:\n            avg_grad = grads[0]\n          else:\n            avg_grad = tf.multiply(tf.add_n(grads), 1. / len(grads))\n        gradvars.append((avg_grad, var))\n\n    # Device that runs the ops to apply global gradient updates.\n    consolidation_device = '/gpu:0' if variable_strategy == 'GPU' else '/cpu:0'\n    with tf.device(consolidation_device):\n      # Suggested learning rate scheduling from\n      # https://github.com/ppwwyyxx/tensorpack/blob/master/examples/ResNet/cifar10-resnet.py#L155\n      num_batches_per_epoch = cifar10.Cifar10DataSet.num_examples_per_epoch(\n          'train') // (params.train_batch_size * num_workers)\n      boundaries = [\n          num_batches_per_epoch * x\n          for x in np.array([82, 123, 300], dtype=np.int64)\n      ]\n      staged_lr = [params.learning_rate * x for x in [1, 0.1, 0.01, 0.002]]\n\n      print('--------------learning rate boundaries', boundaries, 'staged_lr', staged_lr)\n      learning_rate = tf.train.piecewise_constant(tf.train.get_global_step(),\n                                                  boundaries, staged_lr)\n\n      loss = tf.reduce_mean(tower_losses, name='loss')\n\n      examples_sec_hook = cifar10_utils.ExamplesPerSecondHook(\n          params.train_batch_size, every_n_steps=10)\n\n      tensors_to_log = {'learning_rate': learning_rate, 'loss': loss}\n\n      logging_hook = tf.train.LoggingTensorHook(\n          tensors=tensors_to_log, every_n_iter=100)\n\n      train_hooks = [logging_hook, examples_sec_hook]\n\n      print('------------------momentum', momentum)\n      optimizer = tf.train.MomentumOptimizer(\n          learning_rate=learning_rate, momentum=momentum)\n\n      print('----------------params.sync', params.sync)\n      if params.sync:\n        optimizer = tf.train.SyncReplicasOptimizer(\n            optimizer, replicas_to_aggregate=num_workers)\n        sync_replicas_hook = optimizer.make_session_run_hook(params.is_chief)\n        train_hooks.append(sync_replicas_hook)\n\n      # Create single grouped train op\n      train_op = [\n          optimizer.apply_gradients(\n              gradvars, global_step=tf.train.get_global_step())\n      ]\n      train_op.extend(update_ops)\n      train_op = tf.group(*train_op)\n\n      predictions = {\n          'classes':\n              tf.concat([p['classes'] for p in tower_preds], axis=0),\n          'probabilities':\n              tf.concat([p['probabilities'] for p in tower_preds], axis=0)\n      }\n      stacked_labels = tf.concat(labels, axis=0)\n      metrics = {\n          'accuracy':\n              tf.metrics.accuracy(stacked_labels, predictions['classes'])\n      }\n\n    return tf.estimator.EstimatorSpec(\n        mode=mode,\n        predictions=predictions,\n        loss=loss,\n        train_op=train_op,\n        training_hooks=train_hooks,\n        eval_metric_ops=metrics)\n\n  return _resnet_model_fn\n\n\ndef _tower_fn(is_training, weight_decay, feature, label, data_format,\n              num_layers, batch_norm_decay, batch_norm_epsilon):\n  \"\"\"Build computation tower (Resnet).\n\n  Args:\n    is_training: true if is training graph.\n    weight_decay: weight regularization strength, a float.\n    feature: a Tensor.\n    label: a Tensor.\n    data_format: channels_last (NHWC) or channels_first (NCHW).\n    num_layers: number of layers, an int.\n    batch_norm_decay: decay for batch normalization, a float.\n    batch_norm_epsilon: epsilon for batch normalization, a float.\n\n  Returns:\n    A tuple with the loss for the tower, the gradients and parameters, and\n    predictions.\n\n  \"\"\"\n  print('--------------------------------')\n  print('num_layers', num_layers, 'batch_norm_decay', batch_norm_decay, 'batch_norm_epsilon', batch_norm_epsilon, 'is_training', is_training, 'data_format', data_format)\n  model = cifar10_model.ResNetCifar10(\n      num_layers,\n      batch_norm_decay=batch_norm_decay,\n      batch_norm_epsilon=batch_norm_epsilon,\n      is_training=is_training,\n      data_format=data_format)\n  logits = model.forward_pass(feature, input_data_format='channels_last')\n  tower_pred = {\n      'classes': tf.argmax(input=logits, axis=1),\n      'probabilities': tf.nn.softmax(logits)\n  }\n\n  tower_loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=logits, labels=label)\n  tower_loss = tf.reduce_mean(tower_loss)\n\n  model_params = tf.trainable_variables()\n  print('------------weight_decay', weight_decay)\n  tower_loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n\n  tower_grad = tf.gradients(tower_loss, model_params)\n\n  return tower_loss, zip(tower_grad, model_params), tower_pred\n\n\ndef input_fn(data_dir,\n             subset,\n             num_shards,\n             batch_size,\n             use_distortion_for_training=True):\n  \"\"\"Create input graph for model.\n\n  Args:\n    data_dir: Directory where TFRecords representing the dataset are located.\n    subset: one of 'train', 'validate' and 'eval'.\n    num_shards: num of towers participating in data-parallel training.\n    batch_size: total batch size for training to be divided by the number of\n    shards.\n    use_distortion_for_training: True to use distortions.\n  Returns:\n    two lists of tensors for features and labels, each of num_shards length.\n  \"\"\"\n  with tf.device('/cpu:0'):\n    use_distortion = subset == 'train' and use_distortion_for_training\n    dataset = cifar10.Cifar10DataSet(data_dir, subset, use_distortion)\n    _, image_batch, label_batch = dataset.make_batch(batch_size, repeat=True)\n    if num_shards <= 1:\n      # No GPU available or only 1 GPU.\n      return [image_batch], [label_batch]\n\n    # Note that passing num=batch_size is safe here, even though\n    # dataset.batch(batch_size) can, in some cases, return fewer than batch_size\n    # examples. This is because it does so only when repeating for a limited\n    # number of epochs, but our dataset repeats forever.\n    image_batch = tf.unstack(image_batch, num=batch_size, axis=0)\n    label_batch = tf.unstack(label_batch, num=batch_size, axis=0)\n    feature_shards = [[] for i in range(num_shards)]\n    label_shards = [[] for i in range(num_shards)]\n    for i in xrange(batch_size):\n      idx = i % num_shards\n      feature_shards[idx].append(image_batch[i])\n      label_shards[idx].append(label_batch[i])\n    feature_shards = [tf.parallel_stack(x) for x in feature_shards]\n    label_shards = [tf.parallel_stack(x) for x in label_shards]\n    return feature_shards, label_shards\n\n\ndef get_experiment_fn(data_dir,\n                      num_gpus,\n                      variable_strategy,\n                      use_distortion_for_training=True):\n  \"\"\"Returns an Experiment function.\n\n  Experiments perform training on several workers in parallel,\n  in other words experiments know how to invoke train and eval in a sensible\n  fashion for distributed training. Arguments passed directly to this\n  function are not tunable, all other arguments should be passed within\n  tf.HParams, passed to the enclosed function.\n\n  Args:\n      data_dir: str. Location of the data for input_fns.\n      num_gpus: int. Number of GPUs on each worker.\n      variable_strategy: String. CPU to use CPU as the parameter server\n      and GPU to use the GPUs as the parameter server.\n      use_distortion_for_training: bool. See cifar10.Cifar10DataSet.\n  Returns:\n      A function (tf.estimator.RunConfig, tf.contrib.training.HParams) ->\n      tf.contrib.learn.Experiment.\n\n      Suitable for use by tf.contrib.learn.learn_runner, which will run various\n      methods on Experiment (train, evaluate) based on information\n      about the current runner in `run_config`.\n  \"\"\"\n\n  def _experiment_fn(run_config, hparams):\n    \"\"\"Returns an Experiment.\"\"\"\n    # Create estimator.\n    train_input_fn = functools.partial(\n        input_fn,\n        data_dir,\n        subset='train',\n        num_shards=num_gpus,\n        batch_size=hparams.train_batch_size,\n        use_distortion_for_training=use_distortion_for_training)\n\n    eval_input_fn = functools.partial(\n        input_fn,\n        data_dir,\n        subset='valid',\n        batch_size=hparams.eval_batch_size,\n        num_shards=num_gpus)\n\n    num_eval_examples = cifar10.Cifar10DataSet.num_examples_per_epoch('valid')\n    if num_eval_examples % hparams.eval_batch_size != 0:\n      raise ValueError(\n          'validation set size must be multiple of eval_batch_size')\n\n    train_steps = hparams.train_steps\n    eval_steps = num_eval_examples // hparams.eval_batch_size\n \n    classifier = tf.estimator.Estimator(\n        model_fn=get_model_fn(num_gpus, variable_strategy,\n                              run_config.num_worker_replicas or 1),\n        config=run_config,\n        params=hparams)\n\n    # Create experiment.\n    return tf.contrib.learn.Experiment(\n        classifier,\n        train_input_fn=train_input_fn,\n        eval_input_fn=eval_input_fn,\n        train_steps=train_steps,\n        eval_steps=eval_steps)\n\n  return _experiment_fn\n\n\ndef main(job_dir, data_dir, num_gpus, variable_strategy,\n         use_distortion_for_training, log_device_placement, num_intra_threads,\n         **hparams):\n  # The env variable is on deprecation path, default is set to off.\n  os.environ['TF_SYNC_ON_FINISH'] = '0'\n  os.environ['TF_ENABLE_WINOGRAD_NONFUSED'] = '1'\n\n  # Session configuration.\n  sess_config = tf.ConfigProto(\n      allow_soft_placement=True,\n      log_device_placement=log_device_placement,\n      intra_op_parallelism_threads=num_intra_threads,\n      gpu_options=tf.GPUOptions(force_gpu_compatible=True))\n\n  config = cifar10_utils.RunConfig(\n      session_config=sess_config, model_dir=job_dir)\n  tf.contrib.learn.learn_runner.run(\n      get_experiment_fn(data_dir, num_gpus, variable_strategy,\n                        use_distortion_for_training),\n      run_config=config,\n      hparams=tf.contrib.training.HParams(\n          is_chief=config.is_chief,\n          **hparams))\n\n\nif __name__ == '__main__':\n  parser = argparse.ArgumentParser()\n  parser.add_argument(\n      '--data-dir',\n      type=str,\n      required=True,\n      help='The directory where the CIFAR-10 input data is stored.')\n  parser.add_argument(\n      '--job-dir',\n      type=str,\n      required=True,\n      help='The directory where the model will be stored.')\n  parser.add_argument(\n      '--variable-strategy',\n      choices=['CPU', 'GPU'],\n      type=str,\n      default='CPU',\n      help='Where to locate variable operations')\n  parser.add_argument(\n      '--num-gpus',\n      type=int,\n      default=1,\n      help='The number of gpus used. Uses only CPU if set to 0.')\n  parser.add_argument(\n      '--num-layers',\n      type=int,\n      default=44,\n      help='The number of layers of the model.')\n  parser.add_argument(\n      '--train-steps',\n      type=int,\n      default=80000,\n      help='The number of steps to use for training.')\n  parser.add_argument(\n      '--train-batch-size',\n      type=int,\n      default=128,\n      help='Batch size for training.')\n  parser.add_argument(\n      '--eval-batch-size',\n      type=int,\n      default=100,\n      help='Batch size for validation.')\n  parser.add_argument(\n      '--momentum',\n      type=float,\n      default=0.9,\n      help='Momentum for MomentumOptimizer.')\n  parser.add_argument(\n      '--weight-decay',\n      type=float,\n      default=2e-4,\n      help='Weight decay for convolutions.')\n  parser.add_argument(\n      '--learning-rate',\n      type=float,\n      default=0.1,\n      help=\"\"\"\\\n      This is the inital learning rate value. The learning rate will decrease\n      during training. For more details check the model_fn implementation in\n      this file.\\\n      \"\"\")\n  parser.add_argument(\n      '--use-distortion-for-training',\n      type=bool,\n      default=True,\n      help='If doing image distortion for training.')\n  parser.add_argument(\n      '--sync',\n      action='store_true',\n      default=False,\n      help=\"\"\"\\\n      If present when running in a distributed environment will run on sync mode.\\\n      \"\"\")\n  parser.add_argument(\n      '--num-intra-threads',\n      type=int,\n      default=0,\n      help=\"\"\"\\\n      Number of threads to use for intra-op parallelism. When training on CPU\n      set to 0 to have the system pick the appropriate number or alternatively\n      set it to the number of physical CPU cores.\\\n      \"\"\")\n  parser.add_argument(\n      '--num-inter-threads',\n      type=int,\n      default=0,\n      help=\"\"\"\\\n      Number of threads to use for inter-op parallelism. If set to 0, the\n      system will pick an appropriate number.\\\n      \"\"\")\n  parser.add_argument(\n      '--data-format',\n      type=str,\n      default=None,\n      help=\"\"\"\\\n      If not set, the data format best for the training device is used. \n      Allowed values: channels_first (NCHW) channels_last (NHWC).\\\n      \"\"\")\n  parser.add_argument(\n      '--log-device-placement',\n      action='store_true',\n      default=False,\n      help='Whether to log device placement.')\n  parser.add_argument(\n      '--batch-norm-decay',\n      type=float,\n      default=0.997,\n      help='Decay for batch norm.')\n  parser.add_argument(\n      '--batch-norm-epsilon',\n      type=float,\n      default=1e-5,\n      help='Epsilon for batch norm.')\n  args = parser.parse_args()\n\n  if args.num_gpus > 0:\n    assert tf.test.is_gpu_available(), \"Requested GPUs but none found.\"\n  if args.num_gpus < 0:\n    raise ValueError(\n        'Invalid GPU count: \\\"--num-gpus\\\" must be 0 or a positive integer.')\n  if args.num_gpus == 0 and args.variable_strategy == 'GPU':\n    raise ValueError('num-gpus=0, CPU must be used as parameter server. Set'\n                     '--variable-strategy=CPU.')\n  if (args.num_layers - 2) % 6 != 0:\n    raise ValueError('Invalid --num-layers parameter.')\n  if args.num_gpus != 0 and args.train_batch_size % args.num_gpus != 0:\n    raise ValueError('--train-batch-size must be multiple of --num-gpus.')\n  if args.num_gpus != 0 and args.eval_batch_size % args.num_gpus != 0:\n    raise ValueError('--eval-batch-size must be multiple of --num-gpus.')\n\n  main(**vars(args))\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/cifar10_model.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Model class for Cifar10 Dataset.\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport model_base\n\nimport melt\n\n\nclass ResNetCifar10(model_base.ResNet):\n  \"\"\"Cifar10 model with ResNetV1 and basic residual block.\"\"\"\n\n  def __init__(self,\n               num_layers,\n               is_training,\n               batch_norm_decay,\n               batch_norm_epsilon,\n               data_format='channels_first'):\n    super(ResNetCifar10, self).__init__(\n        is_training,\n        data_format,\n        batch_norm_decay,\n        batch_norm_epsilon\n    )\n    self.n = (num_layers - 2) // 6\n    # Add one in case label starts with 1. No impact if label starts with 0.\n    self.num_classes = 10 + 1\n    self.filters = [16, 16, 32, 64]\n    self.strides = [1, 2, 2]\n    \n  def init_predict(self, input_data_format='channels_last'):\n    #self.image_feed = tf.placeholder_with_default(tf.constant([test_image]), [None, ], name='image_feature')\n    self.image_feed =  tf.placeholder(tf.string, [None,], name='image')\n    tf.add_to_collection('feed', self.image_feed)\n    image = tf.map_fn(lambda img: melt.image.decode_image(img, image_format='png', dtype=tf.float32),\n                      self.image_feed, dtype=tf.float32)\n    self.predict(image)\n    tf.add_to_collection('classes', self.pred['classes'])\n    tf.add_to_collection('probabilities', self.pred['probabilities'])\n    tf.add_to_collection('logits', self.logits)\n    tf.add_to_collection('pre_logits', self.pre_logits)\n\n  def forward_pass(self, x, input_data_format='channels_last'):\n    # TODO.. without this forward var scope inference_fn will cause problem for self._conv as try to add conv 43.. FIMXE\n    with tf.variable_scope('forward'):\n      \"\"\"Build the core model within the graph.\"\"\"\n      if self._data_format != input_data_format:\n        if input_data_format == 'channels_last':\n          # Computation requires channels_first.\n          x = tf.transpose(x, [0, 3, 1, 2])\n        else:\n          # Computation requires channels_last.\n          x = tf.transpose(x, [0, 2, 3, 1])\n\n      # Image standardization.\n      x = x / 128 - 1\n\n      x = self._conv(x, 3, 16, 1)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      # Use basic (non-bottleneck) block and ResNet V1 (post-activation).\n      res_func = self._residual_v1\n\n      # 3 stages of block stacking.\n      for i in range(3):\n        with tf.name_scope('stage'):\n          for j in range(self.n):\n            if j == 0:\n              # First block in a stage, filters and strides may change.\n              x = res_func(x, 3, self.filters[i], self.filters[i + 1],\n                          self.strides[i])\n            else:\n              # Following blocks in a stage, constant filters and unit stride.\n              x = res_func(x, 3, self.filters[i + 1], self.filters[i + 1], 1)\n\n      x = self._global_avg_pool(x)\n      self.pre_logits = x \n      \n      x = self._fully_connected(x, self.num_classes)\n\n      self.logits = x\n\n      return x\n\n  def predict(self, x=None, input_data_format='channels_last'):\n    if x is not None:\n      self.forward_pass(x, input_data_format)\n    \n    logits = self.logits\n    pred = {\n      'classes': tf.to_int32(tf.argmax(input=logits, axis=1)),\n      'probabilities': tf.nn.softmax(logits)\n    }\n\n    self.pred = pred\n\n    return pred\n\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/cifar10_multi_gpu_train.py",
    "content": "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"A binary to train CIFAR-10 using multiple GPUs with synchronous updates.\n\nAccuracy:\ncifar10_multi_gpu_train.py achieves ~86% accuracy after 100K steps (256\nepochs of data) as judged by cifar10_eval.py.\n\nSpeed: With batch_size 128.\n\nSystem        | Step Time (sec/batch)  |     Accuracy\n--------------------------------------------------------------------\n1 Tesla K20m  | 0.35-0.60              | ~86% at 60K steps  (5 hours)\n1 Tesla K40m  | 0.25-0.35              | ~86% at 100K steps (4 hours)\n2 Tesla K20m  | 0.13-0.20              | ~84% at 30K steps  (2.5 hours)\n3 Tesla K20m  | 0.13-0.18              | ~84% at 30K steps\n4 Tesla K20m  | ~0.10                  | ~84% at 30K steps\n\nUsage:\nPlease see the tutorial and website for how to download the CIFAR-10\ndata set, compile the program and train the model.\n\nhttp://tensorflow.org/tutorials/deep_cnn/\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom datetime import datetime\nimport os.path\nimport re\nimport time\n\nimport numpy as np\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\nimport cifar10\n\nFLAGS = tf.app.flags.FLAGS\n\ntf.app.flags.DEFINE_string('train_dir', '/tmp/cifar10_train',\n                           \"\"\"Directory where to write event logs \"\"\"\n                           \"\"\"and checkpoint.\"\"\")\ntf.app.flags.DEFINE_integer('max_steps', 1000000,\n                            \"\"\"Number of batches to run.\"\"\")\ntf.app.flags.DEFINE_integer('num_gpus', 1,\n                            \"\"\"How many GPUs to use.\"\"\")\ntf.app.flags.DEFINE_boolean('log_device_placement', False,\n                            \"\"\"Whether to log device placement.\"\"\")\n\n\ndef tower_loss(scope, images, labels):\n  \"\"\"Calculate the total loss on a single tower running the CIFAR model.\n\n  Args:\n    scope: unique prefix string identifying the CIFAR tower, e.g. 'tower_0'\n    images: Images. 4D tensor of shape [batch_size, height, width, 3].\n    labels: Labels. 1D tensor of shape [batch_size].\n\n  Returns:\n     Tensor of shape [] containing the total loss for a batch of data\n  \"\"\"\n\n  # Build inference Graph.\n  logits = cifar10.inference(images)\n\n  # Build the portion of the Graph calculating the losses. Note that we will\n  # assemble the total_loss using a custom function below.\n  _ = cifar10.loss(logits, labels)\n\n  # Assemble all of the losses for the current tower only.\n  losses = tf.get_collection('losses', scope)\n\n  # Calculate the total loss for the current tower.\n  total_loss = tf.add_n(losses, name='total_loss')\n\n  # Attach a scalar summary to all individual losses and the total loss; do the\n  # same for the averaged version of the losses.\n  for l in losses + [total_loss]:\n    # Remove 'tower_[0-9]/' from the name in case this is a multi-GPU training\n    # session. This helps the clarity of presentation on tensorboard.\n    loss_name = re.sub('%s_[0-9]*/' % cifar10.TOWER_NAME, '', l.op.name)\n    tf.summary.scalar(loss_name, l)\n\n  return total_loss\n\n\ndef average_gradients(tower_grads):\n  \"\"\"Calculate the average gradient for each shared variable across all towers.\n\n  Note that this function provides a synchronization point across all towers.\n\n  Args:\n    tower_grads: List of lists of (gradient, variable) tuples. The outer list\n      is over individual gradients. The inner list is over the gradient\n      calculation for each tower.\n  Returns:\n     List of pairs of (gradient, variable) where the gradient has been averaged\n     across all towers.\n  \"\"\"\n  average_grads = []\n  for grad_and_vars in zip(*tower_grads):\n    # Note that each grad_and_vars looks like the following:\n    #   ((grad0_gpu0, var0_gpu0), ... , (grad0_gpuN, var0_gpuN))\n    grads = []\n    for g, _ in grad_and_vars:\n      # Add 0 dimension to the gradients to represent the tower.\n      expanded_g = tf.expand_dims(g, 0)\n\n      # Append on a 'tower' dimension which we will average over below.\n      grads.append(expanded_g)\n\n    # Average over the 'tower' dimension.\n    grad = tf.concat(axis=0, values=grads)\n    grad = tf.reduce_mean(grad, 0)\n\n    # Keep in mind that the Variables are redundant because they are shared\n    # across towers. So .. we will just return the first tower's pointer to\n    # the Variable.\n    v = grad_and_vars[0][1]\n    grad_and_var = (grad, v)\n    average_grads.append(grad_and_var)\n  return average_grads\n\n\ndef train():\n  \"\"\"Train CIFAR-10 for a number of steps.\"\"\"\n  with tf.Graph().as_default(), tf.device('/cpu:0'):\n    # Create a variable to count the number of train() calls. This equals the\n    # number of batches processed * FLAGS.num_gpus.\n    global_step = tf.get_variable(\n        'global_step', [],\n        initializer=tf.constant_initializer(0), trainable=False)\n\n    # Calculate the learning rate schedule.\n    num_batches_per_epoch = (cifar10.NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN /\n                             FLAGS.batch_size)\n    decay_steps = int(num_batches_per_epoch * cifar10.NUM_EPOCHS_PER_DECAY)\n\n    # Decay the learning rate exponentially based on the number of steps.\n    lr = tf.train.exponential_decay(cifar10.INITIAL_LEARNING_RATE,\n                                    global_step,\n                                    decay_steps,\n                                    cifar10.LEARNING_RATE_DECAY_FACTOR,\n                                    staircase=True)\n\n    # Create an optimizer that performs gradient descent.\n    opt = tf.train.GradientDescentOptimizer(lr)\n\n    # Get images and labels for CIFAR-10.\n    images, labels = cifar10.distorted_inputs()\n    batch_queue = tf.contrib.slim.prefetch_queue.prefetch_queue(\n          [images, labels], capacity=2 * FLAGS.num_gpus)\n    # Calculate the gradients for each model tower.\n    tower_grads = []\n    with tf.variable_scope(tf.get_variable_scope()):\n      for i in xrange(FLAGS.num_gpus):\n        with tf.device('/gpu:%d' % i):\n          with tf.name_scope('%s_%d' % (cifar10.TOWER_NAME, i)) as scope:\n            # Dequeues one batch for the GPU\n            image_batch, label_batch = batch_queue.dequeue()\n            # Calculate the loss for one tower of the CIFAR model. This function\n            # constructs the entire CIFAR model but shares the variables across\n            # all towers.\n            loss = tower_loss(scope, image_batch, label_batch)\n\n            # Reuse variables for the next tower.\n            tf.get_variable_scope().reuse_variables()\n\n            # Retain the summaries from the final tower.\n            summaries = tf.get_collection(tf.GraphKeys.SUMMARIES, scope)\n\n            # Calculate the gradients for the batch of data on this CIFAR tower.\n            grads = opt.compute_gradients(loss)\n\n            # Keep track of the gradients across all towers.\n            tower_grads.append(grads)\n\n    # We must calculate the mean of each gradient. Note that this is the\n    # synchronization point across all towers.\n    grads = average_gradients(tower_grads)\n\n    # Add a summary to track the learning rate.\n    summaries.append(tf.summary.scalar('learning_rate', lr))\n\n    # Add histograms for gradients.\n    for grad, var in grads:\n      if grad is not None:\n        summaries.append(tf.summary.histogram(var.op.name + '/gradients', grad))\n\n    # Apply the gradients to adjust the shared variables.\n    apply_gradient_op = opt.apply_gradients(grads, global_step=global_step)\n\n    # Add histograms for trainable variables.\n    for var in tf.trainable_variables():\n      summaries.append(tf.summary.histogram(var.op.name, var))\n\n    # Track the moving averages of all trainable variables.\n    variable_averages = tf.train.ExponentialMovingAverage(\n        cifar10.MOVING_AVERAGE_DECAY, global_step)\n    variables_averages_op = variable_averages.apply(tf.trainable_variables())\n\n    # Group all updates to into a single train op.\n    train_op = tf.group(apply_gradient_op, variables_averages_op)\n\n    # Create a saver.\n    saver = tf.train.Saver(tf.global_variables())\n\n    # Build the summary operation from the last tower summaries.\n    summary_op = tf.summary.merge(summaries)\n\n    # Build an initialization operation to run below.\n    init = tf.global_variables_initializer()\n\n    # Start running operations on the Graph. allow_soft_placement must be set to\n    # True to build towers on GPU, as some of the ops do not have GPU\n    # implementations.\n    sess = tf.Session(config=tf.ConfigProto(\n        allow_soft_placement=True,\n        log_device_placement=FLAGS.log_device_placement))\n    sess.run(init)\n\n    # Start the queue runners.\n    tf.train.start_queue_runners(sess=sess)\n\n    summary_writer = tf.summary.FileWriter(FLAGS.train_dir, sess.graph)\n\n    for step in xrange(FLAGS.max_steps):\n      start_time = time.time()\n      _, loss_value = sess.run([train_op, loss])\n      duration = time.time() - start_time\n\n      assert not np.isnan(loss_value), 'Model diverged with loss = NaN'\n\n      if step % 10 == 0:\n        num_examples_per_step = FLAGS.batch_size * FLAGS.num_gpus\n        examples_per_sec = num_examples_per_step / duration\n        sec_per_batch = duration / FLAGS.num_gpus\n\n        format_str = ('%s: step %d, loss = %.2f (%.1f examples/sec; %.3f '\n                      'sec/batch)')\n        print (format_str % (datetime.now(), step, loss_value,\n                             examples_per_sec, sec_per_batch))\n\n      if step % 100 == 0:\n        summary_str = sess.run(summary_op)\n        summary_writer.add_summary(summary_str, step)\n\n      # Save the model checkpoint periodically.\n      if step % 1000 == 0 or (step + 1) == FLAGS.max_steps:\n        checkpoint_path = os.path.join(FLAGS.train_dir, 'model.ckpt')\n        saver.save(sess, checkpoint_path, global_step=step)\n\n\ndef main(argv=None):  # pylint: disable=unused-argument\n  #cifar10.maybe_download_and_extract()\n  if tf.gfile.Exists(FLAGS.train_dir):\n    tf.gfile.DeleteRecursively(FLAGS.train_dir)\n  tf.gfile.MakeDirs(FLAGS.train_dir)\n  train()\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/cifar10_utils.py",
    "content": "import collections\nimport six\n\nimport tensorflow as tf\n\nfrom tensorflow.python.platform import tf_logging as logging\nfrom tensorflow.core.framework import node_def_pb2\nfrom tensorflow.python.framework import device as pydev\nfrom tensorflow.python.training import basic_session_run_hooks\nfrom tensorflow.python.training import session_run_hook\nfrom tensorflow.python.training import training_util\nfrom tensorflow.python.training import device_setter\nfrom tensorflow.contrib.learn.python.learn import run_config\n\n\n# TODO(b/64848083) Remove once uid bug is fixed\nclass RunConfig(tf.contrib.learn.RunConfig): \n  def uid(self, whitelist=None):\n    \"\"\"Generates a 'Unique Identifier' based on all internal fields.\n    Caller should use the uid string to check `RunConfig` instance integrity\n    in one session use, but should not rely on the implementation details, which\n    is subject to change.\n    Args:\n      whitelist: A list of the string names of the properties uid should not\n        include. If `None`, defaults to `_DEFAULT_UID_WHITE_LIST`, which\n        includes most properties user allowes to change.\n    Returns:\n      A uid string.\n    \"\"\"\n    if whitelist is None:\n      whitelist = run_config._DEFAULT_UID_WHITE_LIST\n\n    state = {k: v for k, v in self.__dict__.items() if not k.startswith('__')}\n    # Pop out the keys in whitelist.\n    for k in whitelist:\n      state.pop('_' + k, None)\n\n    ordered_state = collections.OrderedDict(\n        sorted(state.items(), key=lambda t: t[0]))\n    # For class instance without __repr__, some special cares are required.\n    # Otherwise, the object address will be used.\n    if '_cluster_spec' in ordered_state:\n      ordered_state['_cluster_spec'] = collections.OrderedDict(\n         sorted(ordered_state['_cluster_spec'].as_dict().items(),\n                key=lambda t: t[0])\n      )\n    return ', '.join(\n        '%s=%r' % (k, v) for (k, v) in six.iteritems(ordered_state)) \n\n\nclass ExamplesPerSecondHook(session_run_hook.SessionRunHook):\n  \"\"\"Hook to print out examples per second.\n\n    Total time is tracked and then divided by the total number of steps\n    to get the average step time and then batch_size is used to determine\n    the running average of examples per second. The examples per second for the\n    most recent interval is also logged.\n  \"\"\"\n\n  def __init__(\n      self,\n      batch_size,\n      every_n_steps=100,\n      every_n_secs=None,):\n    \"\"\"Initializer for ExamplesPerSecondHook.\n\n      Args:\n      batch_size: Total batch size used to calculate examples/second from\n      global time.\n      every_n_steps: Log stats every n steps.\n      every_n_secs: Log stats every n seconds.\n    \"\"\"\n    if (every_n_steps is None) == (every_n_secs is None):\n      raise ValueError('exactly one of every_n_steps'\n                       ' and every_n_secs should be provided.')\n    self._timer = basic_session_run_hooks.SecondOrStepTimer(\n        every_steps=every_n_steps, every_secs=every_n_secs)\n\n    self._step_train_time = 0\n    self._total_steps = 0\n    self._batch_size = batch_size\n\n  def begin(self):\n    self._global_step_tensor = training_util.get_global_step()\n    if self._global_step_tensor is None:\n      raise RuntimeError(\n          'Global step should be created to use StepCounterHook.')\n\n  def before_run(self, run_context):  # pylint: disable=unused-argument\n    return basic_session_run_hooks.SessionRunArgs(self._global_step_tensor)\n\n  def after_run(self, run_context, run_values):\n    _ = run_context\n\n    global_step = run_values.results\n    if self._timer.should_trigger_for_step(global_step):\n      elapsed_time, elapsed_steps = self._timer.update_last_triggered_step(\n          global_step)\n      if elapsed_time is not None:\n        steps_per_sec = elapsed_steps / elapsed_time\n        self._step_train_time += elapsed_time\n        self._total_steps += elapsed_steps\n\n        average_examples_per_sec = self._batch_size * (\n            self._total_steps / self._step_train_time)\n        current_examples_per_sec = steps_per_sec * self._batch_size\n        # Average examples/sec followed by current examples/sec\n        logging.info('%s: %g (%g), step = %g', 'Average examples/sec',\n                     average_examples_per_sec, current_examples_per_sec,\n                     self._total_steps)\n\ndef local_device_setter(num_devices=1,\n                        ps_device_type='cpu',\n                        worker_device='/cpu:0',\n                        ps_ops=None,\n                        ps_strategy=None):\n  if ps_ops == None:\n    ps_ops = ['Variable', 'VariableV2', 'VarHandleOp']\n\n  if ps_strategy is None:\n    ps_strategy = device_setter._RoundRobinStrategy(num_devices)\n  if not six.callable(ps_strategy):\n    raise TypeError(\"ps_strategy must be callable\")\n\n  def _local_device_chooser(op):\n    current_device = pydev.DeviceSpec.from_string(op.device or \"\")\n\n    node_def = op if isinstance(op, node_def_pb2.NodeDef) else op.node_def\n    if node_def.op in ps_ops:\n      ps_device_spec = pydev.DeviceSpec.from_string(\n          '/{}:{}'.format(ps_device_type, ps_strategy(op)))\n\n      ps_device_spec.merge_from(current_device)\n      return ps_device_spec.to_string()\n    else:\n      worker_device_spec = pydev.DeviceSpec.from_string(worker_device or \"\")\n      worker_device_spec.merge_from(current_device)\n      return worker_device_spec.to_string()\n  return _local_device_chooser\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/cmle_config.yaml",
    "content": "trainingInput:\n  scaleTier: CUSTOM\n  masterType: complex_model_m_gpu\n  workerType: complex_model_m_gpu\n  parameterServerType: complex_model_m\n  workerCount: 1\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/evaluator.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_bool('draw_pr', True, '')\nflags.DEFINE_float('precision_thre', 0.8, '')\n\nfrom tensorboard import summary as summary_lib\n\nfrom collections import defaultdict\n\nimport numpy as np\n\nfrom gezi import Timer\nimport gezi\nimport melt \nlogging = melt.logging\nimport pandas as pd\npd.set_option('display.max_colwidth', -1)\n\nimport deepiu\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n\ndef write(ids, predicts, model_path, labels=None, images=None, suffix='valid_info'):\n  tb = pd.DataFrame()\n  tb['id'] = ids \n  \n  predicts = [classes[x] for x in predicts]\n\n  if labels is not None:\n    tb['predict'] = predicts \n    labels = [classes[x] for x in labels]\n    tb['label'] = labels\n\n    ofile = model_path + '.valid_error.png'\n    from deepiu.visualize.classify import plot_example_errors\n    plot_example_errors(images, \n                        labels, \n                        predicts,\n                        smooth=True, \n                        #smooth=False, \n                        #class_names=classes,\n                        image_names=ids, \n                        out_file=ofile,\n                        max_show=9)\n  else:\n    tb['label'] = predicts\n\n  ofile = model_path + '.%s' % suffix\n  tb.to_csv(ofile, index=False)\n\ndef evaluate(eval_ops, iterator, num_steps, num_examples, model_path=None, num_gpus=1, sess=None):\n  #timer = gezi.Timer('evaluate')\n  if model_path:\n    ids_list = []\n    \n  predictions_list = []\n  labels_list = []\n  losses = []\n\n  top_preds_list = []\n\n  if not sess:\n    sess = melt.get_session()\n  \n  # for prcurve\n  sess.run(iterator.initializer)\n\n  for _ in range(num_steps):\n    results = sess.run(eval_ops)\n    for i in range(num_gpus):\n      ids, loss, predictions, top_preds, labels = results[i]\n      ids = gezi.decode(ids)\n      #images = images.astype(np.uint8)\n      losses.append(loss)\n      predictions_list.append(predictions)\n      top_preds_list.append(top_preds)\n      labels_list.append(labels)\n\n      if model_path:\n        ids_list.append(ids)\n\n  # notice loss might be not so accurate due to final batch padding but that's not big problem\n  loss = np.mean(losses)\n  if model_path:\n    ids = np.concatenate(ids_list)[:num_examples]\n  predicts = np.concatenate(predictions_list)[:num_examples]\n  top_preds = np.concatenate(top_preds_list)[:num_examples]\n  labels = np.concatenate(labels_list)[:num_examples]\n\n  acc = np.mean(np.equal(predicts, labels))\n  results = [loss, acc] \n  names = ['metric/valid/loss', 'metric/valid/acc'] \n\n  if model_path:\n    write(ids, \n          predicts,\n          model_path,\n          labels,\n          suffix='valid_info'\n          )\n\n  #timer.print()\n  #print(len(predicts))\n  return results, names \n\ndef inference(ops, iterator, num_steps, num_examples, model_path=None, num_gpus=1, sess=None):\n  ids_list = []\n  predictions_list = []\n\n  id_, predicts_ = ops\n  if not sess:\n    sess = melt.get_session()\n  \n  # for prcurve\n  sess.run(iterator.initializer)\n  \n  for _ in range(num_steps):\n    results = sess.run(ops)\n    for i in range(num_gpus):\n      ids, predictions = results[i]\n      predictions_list.append(predictions)\n      ids_list.append(ids)\n\n  ids = np.concatenate(ids_list)[:num_examples]\n  predicts = np.concatenate(predictions_list)[:num_examples]\n  write(ids, \n        predicts,\n        model_path,\n        labels=None,\n        suffix='infer_info'\n        )\n\n\n# def evaluate(eval_ops, iterator, model_path=None, sess=None):\n#   if model_path:\n#     ids_list = []\n    \n#   predictions_list = []\n#   labels_list = []\n#   losses = []\n\n#   images_list = []\n\n#   id_, loss_, predicts_, labels_, images_ = eval_ops\n#   if not sess:\n#     sess = melt.get_session()\n  \n#   # for prcurve\n#   sess.run(iterator.initializer)\n\n#   try:\n#     while True:\n#       ids, loss, predictions, labels, images = sess.run(eval_ops)\n#       images = images.astype(np.uint8)\n#       losses.append(loss)\n#       predictions_list.append(predictions)\n#       labels_list.append(labels)\n\n#       images_list.append(images)\n\n#       if model_path:\n#         ids_list.append(ids)\n#   except tf.errors.OutOfRangeError:\n#     loss = np.mean(losses)\n#     predicts = np.concatenate(predictions_list)\n#     labels = np.concatenate(labels_list)\n\n#     images = np.concatenate(images_list)\n\n#     acc = np.mean(np.equal(predicts, labels))\n\n#     results = [loss, acc] \n#     names = ['metric/valid/loss/avg', 'metric/valid/acc'] \n    \n#     if model_path:\n#       write(np.concatenate(ids_list), \n#             predicts,\n#             model_path,\n#             labels,\n#             images,\n#             suffix='valid_info'\n#             )\n\n#     return results, names \n\n\n# def inference(ops, iterator, model_path=None, sess=None):\n#   assert model_path\n#   if model_path:\n#     ids_list = []\n    \n#   predictions_list = []\n\n#   id_, predicts_ = ops\n#   if not sess:\n#     sess = melt.get_session()\n  \n#   # for prcurve\n#   sess.run(iterator.initializer)\n\n#   try:\n#     while True:\n#       ids, predictions = sess.run(ops)\n      \n#       predictions_list.append(predictions)\n\n#       if model_path:\n#         ids_list.append(ids)\n#   except tf.errors.OutOfRangeError:\n#     predicts = np.concatenate(predictions_list)\n    \n#     if model_path:\n#       write(np.concatenate(ids_list), \n#             predicts,\n#             model_path,\n#             labels=None,\n#             suffix='infer_info'\n#             )\n\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/gen-records.sh",
    "content": "# notice must be python2 for python3 refer to https://www.cs.toronto.edu/~kriz/cifar.html  dict = pickle.load(fo, encoding='bytes')\npython=/home/gezi/pyenv/bin/python\n$python generate_cifar10_tfrecords.py --data-dir /home/gezi/data/cifar10_data2/\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/generate_cifar10_tfrecords.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Read CIFAR-10 data from pickled numpy arrays and writes TFRecords.\n\nGenerates tf.train.Example protos and writes them to TFRecord files from the\npython version of the CIFAR-10 dataset downloaded from\nhttps://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport os\n\nimport tarfile\nfrom six.moves import cPickle as pickle\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\nimport glob\nimport cv2\nimport melt\nimport gezi\n\nCIFAR_FILENAME = 'cifar-10-python.tar.gz'\nCIFAR_DOWNLOAD_URL = 'https://www.cs.toronto.edu/~kriz/' + CIFAR_FILENAME\nCIFAR_LOCAL_FOLDER = 'cifar-10-batches-py'\n\nNUM_FOLDS = 10\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n        \nclasses_map = dict(zip(classes, range(len(classes))))\n\nprint('----------', classes_map)\n\nimport pandas as pd\nl = pd.read_csv('./mount/data/kaggle/cifar-10/trainLabels.csv')\nm = {}\nfor i in range(len(l)):\n  m[l.id[i]] = l.label[i]\n\n\ndef _int64_feature(value):\n  return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))\n\n\ndef _bytes_feature(value):\n  return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))\n\ndef convert_to_tfrecord(input_files, output_file):\n  \"\"\"Converts a file to TFRecords.\"\"\"\n  print('Generating %s' % output_file)\n  with tf.python_io.TFRecordWriter(output_file) as record_writer:\n    for input_file in input_files:\n      id = int(os.path.basename(input_file)[:-4])\n      img = cv2.imread(input_file)\n      # turn to channel first\n      #img = img.transpose(2,0,1)\n      if 'test' not in output_file:  \n        label = classes_map[m[id]]\n      else:\n        label = -1\n      example = tf.train.Example(features=tf.train.Features(\n          feature={\n              'id': _int64_feature(id),\n              'image': _bytes_feature(img.tobytes()),\n              'label': _int64_feature(label)\n          }))\n      record_writer.write(example.SerializeToString())\n\ndef main(data_dir):\n  input_dir = './mount/data/kaggle/cifar-10'\n  \n  input_files = [f for f in glob.glob('%s/%s/*.png' % (input_dir, 'train')) if int(os.path.basename(f)[:-4]) % NUM_FOLDS != 0]\n  print('train:', len(input_files))\n  output_file = os.path.join(data_dir, 'train.tfrecords')\n  convert_to_tfrecord(input_files, output_file)\n\n  input_files = [f for f in glob.glob('%s/%s/*.png' % (input_dir, 'train')) if int(os.path.basename(f)[:-4]) % NUM_FOLDS == 0]\n  input_files = sorted(input_files, key=lambda f:int(os.path.basename(f)[:-4]))\n  print('valid:', len(input_files))\n  output_file = os.path.join(data_dir, 'valid.tfrecords')\n  convert_to_tfrecord(input_files, output_file) \n\n  input_files = glob.glob('%s/%s/*.png' % (input_dir, 'test'))\n  input_files = sorted(input_files, key=lambda f:int(os.path.basename(f)[:-4]))\n  print('test:', len(input_files))\n  output_file = os.path.join(data_dir, 'test.tfrecords')\n  convert_to_tfrecord(input_files, output_file) \n\n  print('Done!')\n\n\nif __name__ == '__main__':\n  data_dir = './mount/data/cifar10'\n  main(data_dir)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/inference.py",
    "content": "import melt\np = melt.SimplePredictor('./mount/temp/cifar10/model/resnet.momentum.decay/epoch/model.ckpt-30.00-10530', key='pre_logits')\nfeature = p.inference([melt.read_image('./mount/data/kaggle/cifar-10/test/10.png')])\n\nprint(feature)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/model_base.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"ResNet model.\n\nRelated papers:\nhttps://arxiv.org/pdf/1603.05027v2.pdf\nhttps://arxiv.org/pdf/1512.03385v1.pdf\nhttps://arxiv.org/pdf/1605.07146v1.pdf\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\nclass ResNet(object):\n  \"\"\"ResNet model.\"\"\"\n\n  def __init__(self, is_training, data_format, batch_norm_decay, batch_norm_epsilon):\n    \"\"\"ResNet constructor.\n\n    Args:\n      is_training: if build training or inference model.\n      data_format: the data_format used during computation.\n                   one of 'channels_first' or 'channels_last'.\n    \"\"\"\n    self._batch_norm_decay = batch_norm_decay\n    self._batch_norm_epsilon = batch_norm_epsilon\n    self._is_training = is_training\n    assert data_format in ('channels_first', 'channels_last')\n    self._data_format = data_format\n\n  def forward_pass(self, x):\n    raise NotImplementedError(\n        'forward_pass() is implemented in ResNet sub classes')\n\n  def _residual_v1(self,\n                   x,\n                   kernel_size,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers, using Plan A for shortcut connection.\"\"\"\n\n    del activate_before_residual\n    with tf.name_scope('residual_v1') as name_scope:\n      orig_x = x\n\n      x = self._conv(x, kernel_size, out_filter, stride)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      x = self._conv(x, kernel_size, out_filter, 1)\n      x = self._batch_norm(x)\n\n      if in_filter != out_filter:\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        pad = (out_filter - in_filter) // 2\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = self._relu(tf.add(x, orig_x))\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _residual_v2(self,\n                   x,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers with preactivation, plan A shortcut.\"\"\"\n\n    with tf.name_scope('residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 3, out_filter, stride)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 3, out_filter, [1, 1, 1, 1])\n\n      if in_filter != out_filter:\n        pad = (out_filter - in_filter) // 2\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _bottleneck_residual_v2(self,\n                              x,\n                              in_filter,\n                              out_filter,\n                              stride,\n                              activate_before_residual=False):\n    \"\"\"Bottleneck residual unit with 3 sub layers, plan B shortcut.\"\"\"\n\n    with tf.name_scope('bottle_residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 1, out_filter // 4, stride, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      # pad when stride isn't unit\n      x = self._conv(x, 3, out_filter // 4, 1, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 1, out_filter, 1, is_atrous=True)\n\n      if in_filter != out_filter:\n        orig_x = self._conv(orig_x, 1, out_filter, stride, is_atrous=True)\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _conv(self, x, kernel_size, filters, strides, is_atrous=False):\n    \"\"\"Convolution.\"\"\"\n\n    padding = 'SAME'\n    if not is_atrous and strides > 1:\n      pad = kernel_size - 1\n      pad_beg = pad // 2\n      pad_end = pad - pad_beg\n      if self._data_format == 'channels_first':\n        x = tf.pad(x, [[0, 0], [0, 0], [pad_beg, pad_end], [pad_beg, pad_end]])\n      else:\n        x = tf.pad(x, [[0, 0], [pad_beg, pad_end], [pad_beg, pad_end], [0, 0]])\n      padding = 'VALID'\n    return tf.layers.conv2d(\n        inputs=x,\n        kernel_size=kernel_size,\n        filters=filters,\n        strides=strides,\n        padding=padding,\n        use_bias=False,\n        data_format=self._data_format)\n\n  def _batch_norm(self, x):\n    if self._data_format == 'channels_first':\n      data_format = 'NCHW'\n    else:\n      data_format = 'NHWC'\n    return tf.contrib.layers.batch_norm(\n        x,\n        decay=self._batch_norm_decay,\n        center=True,\n        scale=True,\n        epsilon=self._batch_norm_epsilon,\n        is_training=self._is_training,\n        fused=True,\n        data_format=data_format)\n\n  def _relu(self, x):\n    return tf.nn.relu(x)\n\n  def _fully_connected(self, x, out_dim):\n    with tf.name_scope('fully_connected') as name_scope:\n      x = tf.layers.dense(x, out_dim)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _avg_pool(self, x, pool_size, stride):\n    with tf.name_scope('avg_pool') as name_scope:\n      x = tf.layers.average_pooling2d(\n          x, pool_size, stride, 'SAME', data_format=self._data_format)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _global_avg_pool(self, x):\n    with tf.name_scope('global_avg_pool') as name_scope:\n      assert x.get_shape().ndims == 4\n      if self._data_format == 'channels_first':\n        x = tf.reduce_mean(x, [2, 3])\n      else:\n        x = tf.reduce_mean(x, [1, 2])\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/prepare.sh",
    "content": "pyenv\npython generate_cifar10_tfrecords.py --data-dir=/home/gezi/data/cifar10\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/readme",
    "content": "use ./train-melt-momentum2-batch128.sh this is the same as tensorflow tuorial which set learning rate 0.1 0.01 ... 500 epoch will get   \nvalid_loss 0.4307 valid_acc 0.9294 test_acc 0.93010\nuse ./train-melt-momentum-decay.sh this is the same as above but set learning rate decay 0.99 per epoch 500 epoch will get\nvalid_loss 0.3297 valid_acc 0.9359 test_acc 0.9367  \n./train-melt-momentum-decay-2gpu.sh  is 2gpu version   \n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-2gpu-2.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=2 \\\n    --variable-strategy GPU \\\n    --train-steps=110000 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.2gpu.2\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-2gpu.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=2 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.2gpu\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-4gpu.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=4 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.4gpu\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-2gpu.sh",
    "content": "python ./train.py \\\n    --save_interval_epochs 10 \\\n    --save_interval_steps 1000  \\\n    --model_dir /home/gezi/temp/cifar10/model/resnet.2gpu \\\n    --optimizer momentum \\\n    --num_gpus=2\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-decay-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay99.2gpu \\\n    --batch_size_by_gpu_num=1 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-decay.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay99 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-decay98.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay98 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.98 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum-batch128.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.batch128 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=1.0,0.1,0.01,0.002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum-decay-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay.2gpu \\\n    --variable_strategy=cpu \\\n    --batch_size_per_gpu=0 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum-decay-batch64.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay.batch64 \\\n    --batch_size=64 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum-decay.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=1.0,0.1,0.01,0.002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum2-batch128-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2.batch128.2gpu \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum2-batch128.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2.batch128 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt-momentum2.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train-melt.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train/train.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=1 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('model_dir', './mount/temp/cifar10/model/resnet', '')\nflags.DEFINE_string('algo', 'resnet', '')\n\nimport numpy as np\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\n#import evaluator\n\nimport cifar10\nimport cifar10_model\nimport cifar10_utils\n\nimport evaluator\n\neval_names = None\nlabel_batch = None\n\ndef tower_loss(model, feature, label):\n  logits = model.forward_pass(feature, input_data_format='channels_last')\n  weight_decay = 0.0002\n\n  loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=logits, labels=label)\n  loss = tf.reduce_mean(loss)\n\n  model_params = tf.trainable_variables()\n  loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n  return loss\n\n# import tfmpl\n# @tfmpl.figure_tensor\n# def draw_confusion_matrix(matrix):\n#     '''Draw confusion matrix for MNIST.'''\n#     fig = tfmpl.create_figure(figsize=(7,7))\n#     ax = fig.add_subplot(111)\n#     ax.set_title('Confusion matrix for MNIST classification')\n    \n#     tfmpl.plots.confusion_matrix.draw(\n#         ax, matrix,\n#         axis_labels=['Digit ' + str(x) for x in range(10)],\n#         normalize=True\n#     )\n\n#     return fig\n\ndef main(_):\n  num_train_examples = 45000\n  melt.apps.train.init()\n\n  batch_size = melt.batch_size()\n  num_gpus = melt.num_gpus()\n\n  batch_size_per_gpu = FLAGS.batch_size\n\n  # batch size not changed but FLAGS.batch_size will change to batch_size / num_gpus\n  #print('--------------batch_size, FLAGS.batch_size, num_steps_per_epoch', batch_size, FLAGS.batch_size, num_train_examples // batch_size)\n\n  global_scope = FLAGS.algo \n  with tf.variable_scope(global_scope) as global_scope:\n    data_format = 'channels_first'\n    num_layers = 44\n    batch_norm_decay = 0.997\n    batch_norm_epsilon = 1e-05\n    data_dir = './mount/data/cifar10/' \n    with tf.variable_scope('main') as scope:\n      model = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        is_training=True,\n        data_format=data_format)\n\n      dataset = cifar10.Cifar10DataSet(data_dir, subset='train', use_distortion=True)\n\n      # iterator = dataset.make_batch(batch_size_per_gpu)\n      # def loss_function():\n      #   global label_batch\n      #   _, image_batch, label_batch = iterator.get_next()\n      #   return tower_loss(model, image_batch, label_batch)\n\n      # this is faster then above method\n      iterator = dataset.make_batch(batch_size)\n      batch = iterator.get_next()\n      _, image_batches, label_batches = melt.split_batch(batch, batch_size, num_gpus)\n      def loss_function(i):\n        return tower_loss(model, image_batches[i], label_batches[i])\n      label_batch = label_batches[-1]\n\n      #loss_function = lambda: tower_loss(model, image_batch, label_batch)\n      loss = melt.tower(loss_function, num_gpus)\n      pred = model.predict()\n      pred = pred['classes']\n      #label_batch = dataset.label_batch \n      acc = tf.reduce_mean(tf.to_float(tf.equal(pred, label_batch)))\n\n      #tf.summary.image('train/image', dataset.image_batch)\n      # # Compute confusion matrix\n      # matrix = tf.confusion_matrix(label_batch, pred, num_classes=10)\n      # # Get a image tensor for summary usage\n      # image_tensor = draw_confusion_matrix(matrix)\n      # tf.summary.image('train/confusion_matrix', image_tensor)\n\n      scope.reuse_variables()\n      ops = [loss, acc]\n\n      validator = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        is_training=False,\n        data_format=data_format)\n\n      valid_dataset = cifar10.Cifar10DataSet(data_dir, subset='valid', use_distortion=False)\n      valid_iterator = valid_dataset.make_batch(batch_size)\n      valid_batch = valid_iterator.get_next()\n      valid_id_batches, valid_image_batches, valid_label_batches = melt.split_batch(valid_batch, batch_size, num_gpus)\n\n      def valid_loss_fn(i):\n        valid_loss = tower_loss(validator, valid_image_batches[i], valid_label_batches[i])\n        valid_pred = validator.predict()\n        return valid_id_batches[i], valid_loss, valid_pred['classes'], valid_label_batches[i]\n      \n      num_valid_examples = dataset.num_examples_per_epoch(subset='valid')\n      valid_ops = melt.tower(valid_loss_fn, num_gpus, is_training=False)\n\n      ## seems not work with non rpeat mode..\n      #tf.summary.image('valid/image', valid_image_batch)\n      ## Compute confusion matrix\n      #matrix = tf.confusion_matrix(valid_label_batch, valid_pred, num_classes=10)\n      ## Get a image tensor for summary usage\n      #image_tensor = draw_confusion_matrix(matrix)\n      #tf.summary.image('valid/confusion_matrix', image_tensor)\n\n      #loss_function = lambda: tower_loss(validator, val_image_batch, val_label_batch)\n      #val_loss = melt.tower_losses(loss_function, FLAGS.num_gpus, is_training=False)\n      #eval_ops = [val_loss]\n\n      metric_eval_fn = lambda model_path=None: \\\n                          evaluator.evaluate(valid_ops, \n                                             valid_iterator,\n                                             num_steps=-(-num_valid_examples // batch_size),\n                                             num_examples=num_valid_examples,\n                                             model_path=model_path,\n                                             num_gpus=num_gpus)\n\n      predictor = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        is_training=False,\n        data_format=data_format)\n\n      predictor.init_predict()\n\n      test_dataset = cifar10.Cifar10DataSet(data_dir, subset='test', use_distortion=False)\n      test_iterator = test_dataset.make_batch(batch_size)\n\n      test_batch = test_iterator.get_next()\n      test_id_batches, test_image_batches, test_label_batches = test_iterator.get_next() \n\n      def test_fn(i):\n        test_pred = predictor.predict(test_image_batches[i])     \n        test_pred = test_pred['classes']\n        return test_id_batches[i], test_pred\n      \n      num_test_examples = dataset.num_examples_per_epoch(subset='test')\n      test_ops = melt.tower(test_fn, num_gpus, is_training=False)\n      inference_fn = lambda model_path=None: \\\n                          evaluator.inference(test_ops, \n                                              test_iterator,\n                                              num_steps=-(-num_test_examples // batch_size),\n                                              num_examples=num_test_examples,\n                                              model_path=model_path)\n\n      global eval_names\n      names = ['loss', 'acc']\n\n    melt.apps.train_flow(ops, \n                         names = names,\n                         metric_eval_fn=metric_eval_fn,\n                         inference_fn=inference_fn,\n                         model_dir=FLAGS.model_dir,\n                         num_steps_per_epoch=num_train_examples // batch_size)\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator/train.tfrecords",
    "content": ""
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/README.md",
    "content": "https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10_estimator/   \nCIFAR-10 is a common benchmark in machine learning for image recognition.\n\nhttp://www.cs.toronto.edu/~kriz/cifar.html\n\nCode in this directory focuses on how to use TensorFlow Estimators to train and \nevaluate a CIFAR-10 ResNet model on:\n\n* A single host with one CPU;\n* A single host with multiple GPUs;\n* Multiple hosts with CPU or multiple GPUs;\n\nBefore trying to run the model we highly encourage you to read all the README.\n\n## Prerequisite\n\n1. [Install](https://www.tensorflow.org/install/) TensorFlow version 1.2.1 or\nlater.\n\n2. Download the CIFAR-10 dataset and generate TFRecord files using the provided\nscript.  The script and associated command below will download the CIFAR-10\ndataset and then generate a TFRecord for the training, validation, and\nevaluation datasets. \n\n```shell\npython generate_cifar10_tfrecords.py --data-dir=${PWD}/cifar-10-data\n```\n\nAfter running the command above, you should see the following files in the\n--data-dir (```ls -R cifar-10-data```):\n\n* train.tfrecords\n* validation.tfrecords\n* eval.tfrecords\n\n\n## Training on a single machine with GPUs or CPU\n\nRun the training on CPU only. After training, it runs the evaluation.\n\n```\npython cifar10_main.py --data-dir=${PWD}/cifar-10-data \\\n                       --job-dir=/tmp/cifar10 \\\n                       --num-gpus=0 \\\n                       --train-steps=1000\n```\n\nRun the model on 2 GPUs using CPU as parameter server. After training, it runs\nthe evaluation.\n```\npython cifar10_main.py --data-dir=${PWD}/cifar-10-data \\\n                       --job-dir=/tmp/cifar10 \\\n                       --num-gpus=2 \\\n                       --train-steps=1000\n```\n\nRun the model on 2 GPUs using GPU as parameter server.\nIt will run an experiment, which for local setting basically means it will run\nstop training\na couple of times to perform evaluation.\n\n```\npython cifar10_main.py --data-dir=${PWD}/cifar-10-data \\\n                       --job-dir=/tmp/cifar10 \\\n                       --variable-strategy GPU \\\n                       --num-gpus=2 \\\n```\n\nThere are more command line flags to play with; run\n`python cifar10_main.py --help` for details.\n\n## Run distributed training\n\n### (Optional) Running on Google Cloud Machine Learning Engine\n\nThis example can be run on Google Cloud Machine Learning Engine (ML Engine),\nwhich will configure the environment and take care of running workers,\nparameters servers, and masters in a fault tolerant way.\n\nTo install the command line tool, and set up a project and billing, see the\nquickstart [here](https://cloud.google.com/ml-engine/docs/quickstarts/command-line).\n\nYou'll also need a Google Cloud Storage bucket for the data. If you followed the\ninstructions above, you can just run:\n\n```\nMY_BUCKET=gs://<my-bucket-name>\ngsutil cp -r ${PWD}/cifar-10-data $MY_BUCKET/\n```\n\nThen run the following command from the `tutorials/image` directory of this\nrepository (the parent directory of this README):\n\n```\ngcloud ml-engine jobs submit training cifarmultigpu \\\n    --runtime-version 1.2 \\\n    --job-dir=$MY_BUCKET/model_dirs/cifarmultigpu \\\n    --config cifar10_estimator/cmle_config.yaml \\\n    --package-path cifar10_estimator/ \\\n    --module-name cifar10_estimator.cifar10_main \\\n    -- \\\n    --data-dir=$MY_BUCKET/cifar-10-data \\\n    --num-gpus=4 \\\n    --train-steps=1000\n```\n\n\n### Set TF_CONFIG\n\nConsidering that you already have multiple hosts configured, all you need is a\n`TF_CONFIG` environment variable on each host. You can set up the hosts manually\nor check [tensorflow/ecosystem](https://github.com/tensorflow/ecosystem) for\ninstructions about how to set up a Cluster.\n\nThe `TF_CONFIG` will be used by the `RunConfig` to know the existing hosts and\ntheir task: `master`, `ps` or `worker`.\n\nHere's an example of `TF_CONFIG`.\n\n```python\ncluster = {'master': ['master-ip:8000'],\n           'ps': ['ps-ip:8000'],\n           'worker': ['worker-ip:8000']}\n\nTF_CONFIG = json.dumps(\n  {'cluster': cluster,\n   'task': {'type': master, 'index': 0},\n   'model_dir': 'gs://<bucket_path>/<dir_path>',\n   'environment': 'cloud'\n  })\n```\n\n*Cluster*\n\nA cluster spec, which is basically a dictionary that describes all of the tasks\nin the cluster. More about it [here](https://www.tensorflow.org/deploy/distributed).\n\nIn this cluster spec we are defining a cluster with 1 master, 1 ps and 1 worker.\n\n* `ps`: saves the parameters among all workers. All workers can\n   read/write/update the parameters for model via ps. As some models are\n   extremely large the parameters are shared among the ps (each ps stores a\n   subset).\n\n* `worker`: does the training.\n\n* `master`: basically a special worker, it does training, but also restores and\n   saves checkpoints and do evaluation.\n\n*Task*\n\nThe Task defines what is the role of the current node, for this example the node\nis the master on index 0 on the cluster spec, the task will be different for\neach node. An example of the `TF_CONFIG` for a worker would be:\n\n```python\ncluster = {'master': ['master-ip:8000'],\n           'ps': ['ps-ip:8000'],\n           'worker': ['worker-ip:8000']}\n\nTF_CONFIG = json.dumps(\n  {'cluster': cluster,\n   'task': {'type': worker, 'index': 0},\n   'model_dir': 'gs://<bucket_path>/<dir_path>',\n   'environment': 'cloud'\n  })\n```\n\n*Model_dir*\n\nThis is the path where the master will save the checkpoints, graph and\nTensorBoard files. For a multi host environment you may want to use a\nDistributed File System, Google Storage and DFS are supported.\n\n*Environment*\n\nBy the default environment is *local*, for a distributed setting we need to\nchange it to *cloud*.\n\n### Running script\n\nOnce you have a `TF_CONFIG` configured properly on each host you're ready to run\non distributed settings.\n\n#### Master\nRun this on master:\nRuns an Experiment in sync mode on 4 GPUs using CPU as parameter server for\n40000 steps. It will run evaluation a couple of times during training. The\nnum_workers arugument is used only to update the learning rate correctly. Make\nsure the model_dir is the same as defined on the TF_CONFIG.\n\n```shell\npython cifar10_main.py --data-dir=gs://path/cifar-10-data \\\n                       --job-dir=gs://path/model_dir/ \\\n                       --num-gpus=4 \\\n                       --train-steps=40000 \\\n                       --sync \\\n                       --num-workers=2\n```\n\n*Output:*\n\n```shell\nINFO:tensorflow:Using model_dir in TF_CONFIG: gs://path/model_dir/\nINFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_num_ps_replicas': 1, '_keep_checkpoint_max': 5, '_task_type': u'master', '_is_chief': True, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7fd16fb2be10>, '_model_dir': 'gs://path/model_dir/', '_save_checkpoints_steps': None, '_keep_checkpoint_every_n_hours': 10000, '_session_config': intra_op_parallelism_threads: 1\ngpu_options {\n}\nallow_soft_placement: true\n, '_tf_random_seed': None, '_environment': u'cloud', '_num_worker_replicas': 1, '_task_id': 0, '_save_summary_steps': 100, '_tf_config': gpu_options {\n  per_process_gpu_memory_fraction: 1.0\n}\n, '_evaluation_master': '', '_master': u'grpc://master-ip:8000'}\n...\n2017-08-01 19:59:26.496208: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:04.0\nTotal memory: 11.17GiB\nFree memory: 11.09GiB\n2017-08-01 19:59:26.775660: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 1 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:05.0\nTotal memory: 11.17GiB\nFree memory: 11.10GiB\n...\n2017-08-01 19:59:29.675171: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:316] Started server with target: grpc://localhost:8000\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_2/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_3/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_4/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_5/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_6/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/avg_pool/: (?, 16, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_5/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_6/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/avg_pool/: (?, 32, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_2/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_3/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_4/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_5/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_6/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/global_avg_pool/: (?, 64)\nINFO:tensorflow:image after unit resnet/tower_0/fully_connected/: (?, 11)\nINFO:tensorflow:SyncReplicasV2: replicas_to_aggregate=1; total_num_replicas=1\nINFO:tensorflow:Create CheckpointSaverHook.\nINFO:tensorflow:Restoring parameters from gs://path/model_dir/model.ckpt-0\n2017-08-01 19:59:37.560775: I tensorflow/core/distributed_runtime/master_session.cc:999] Start master session 156fcb55fe6648d6 with config: \nintra_op_parallelism_threads: 1\ngpu_options {\n  per_process_gpu_memory_fraction: 1\n}\nallow_soft_placement: true\n\nINFO:tensorflow:Saving checkpoints for 1 into gs://path/model_dir/model.ckpt.\nINFO:tensorflow:loss = 1.20682, step = 1\nINFO:tensorflow:loss = 1.20682, learning_rate = 0.1\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_2/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_3/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_4/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_5/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_6/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/avg_pool/: (?, 16, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_5/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_6/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/avg_pool/: (?, 32, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_2/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_3/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_4/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_5/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_6/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/global_avg_pool/: (?, 64)\nINFO:tensorflow:image after unit resnet/tower_0/fully_connected/: (?, 11)\nINFO:tensorflow:SyncReplicasV2: replicas_to_aggregate=2; total_num_replicas=2\nINFO:tensorflow:Starting evaluation at 2017-08-01-20:00:14\n2017-08-01 20:00:15.745881: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K80, pci bus id: 0000:00:04.0)\n2017-08-01 20:00:15.745949: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla K80, pci bus id: 0000:00:05.0)\n2017-08-01 20:00:15.745958: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:2) -> (device: 2, name: Tesla K80, pci bus id: 0000:00:06.0)\n2017-08-01 20:00:15.745964: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:3) -> (device: 3, name: Tesla K80, pci bus id: 0000:00:07.0)\n2017-08-01 20:00:15.745969: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:4) -> (device: 4, name: Tesla K80, pci bus id: 0000:00:08.0)\n2017-08-01 20:00:15.745975: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:5) -> (device: 5, name: Tesla K80, pci bus id: 0000:00:09.0)\n2017-08-01 20:00:15.745987: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:6) -> (device: 6, name: Tesla K80, pci bus id: 0000:00:0a.0)\n2017-08-01 20:00:15.745997: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:7) -> (device: 7, name: Tesla K80, pci bus id: 0000:00:0b.0)\nINFO:tensorflow:Restoring parameters from gs://path/model_dir/model.ckpt-10023\nINFO:tensorflow:Evaluation [1/100]\nINFO:tensorflow:Evaluation [2/100]\nINFO:tensorflow:Evaluation [3/100]\nINFO:tensorflow:Evaluation [4/100]\nINFO:tensorflow:Evaluation [5/100]\nINFO:tensorflow:Evaluation [6/100]\nINFO:tensorflow:Evaluation [7/100]\nINFO:tensorflow:Evaluation [8/100]\nINFO:tensorflow:Evaluation [9/100]\nINFO:tensorflow:Evaluation [10/100]\nINFO:tensorflow:Evaluation [11/100]\nINFO:tensorflow:Evaluation [12/100]\nINFO:tensorflow:Evaluation [13/100]\n...\nINFO:tensorflow:Evaluation [100/100]\nINFO:tensorflow:Finished evaluation at 2017-08-01-20:00:31\nINFO:tensorflow:Saving dict for global step 1: accuracy = 0.0994, global_step = 1, loss = 630.425\n```\n\n#### Worker\n\nRun this on worker:\nRuns an Experiment in sync mode on 4 GPUs using CPU as parameter server for\n40000 steps. It will run evaluation a couple of times during training. Make sure\nthe model_dir is the same as defined on the TF_CONFIG.\n\n```shell\npython cifar10_main.py --data-dir=gs://path/cifar-10-data \\\n                       --job-dir=gs://path/model_dir/ \\\n                       --num-gpus=4 \\\n                       --train-steps=40000 \\\n                       --sync\n```\n\n*Output:*\n\n```shell\nINFO:tensorflow:Using model_dir in TF_CONFIG: gs://path/model_dir/\nINFO:tensorflow:Using config: {'_save_checkpoints_secs': 600,\n'_num_ps_replicas': 1, '_keep_checkpoint_max': 5, '_task_type': u'worker',\n'_is_chief': False, '_cluster_spec':\n<tensorflow.python.training.server_lib.ClusterSpec object at 0x7f6918438e10>,\n'_model_dir': 'gs://<path>/model_dir/',\n'_save_checkpoints_steps': None, '_keep_checkpoint_every_n_hours': 10000,\n'_session_config': intra_op_parallelism_threads: 1\ngpu_options {\n}\nallow_soft_placement: true\n, '_tf_random_seed': None, '_environment': u'cloud', '_num_worker_replicas': 1,\n'_task_id': 0, '_save_summary_steps': 100, '_tf_config': gpu_options {\n  per_process_gpu_memory_fraction: 1.0\n  }\n...\n2017-08-01 19:59:26.496208: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:04.0\nTotal memory: 11.17GiB\nFree memory: 11.09GiB\n2017-08-01 19:59:26.775660: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 1 with properties: \nname: Tesla K80\nmajor: 3 minor: 7 memoryClockRate (GHz) 0.8235\npciBusID 0000:00:05.0\nTotal memory: 11.17GiB\nFree memory: 11.10GiB\n...\n2017-08-01 19:59:29.675171: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:316] Started server with target: grpc://localhost:8000\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_1/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_2/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_3/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_4/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_5/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage/residual_v1_6/: (?, 16, 32, 32)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/avg_pool/: (?, 16, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_1/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_2/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_3/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_4/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_5/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_1/residual_v1_6/: (?, 32, 16, 16)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/avg_pool/: (?, 32, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_1/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_2/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_3/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_4/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_5/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/stage_2/residual_v1_6/: (?, 64, 8, 8)\nINFO:tensorflow:image after unit resnet/tower_0/global_avg_pool/: (?, 64)\nINFO:tensorflow:image after unit resnet/tower_0/fully_connected/: (?, 11)\nINFO:tensorflow:SyncReplicasV2: replicas_to_aggregate=2; total_num_replicas=2\nINFO:tensorflow:Create CheckpointSaverHook.\n2017-07-31 22:38:04.629150: I\ntensorflow/core/distributed_runtime/master.cc:209] CreateSession still waiting\nfor response from worker: /job:master/replica:0/task:0\n2017-07-31 22:38:09.263492: I\ntensorflow/core/distributed_runtime/master_session.cc:999] Start master\nsession cc58f93b1e259b0c with config: \nintra_op_parallelism_threads: 1\ngpu_options {\nper_process_gpu_memory_fraction: 1\n}\nallow_soft_placement: true\nINFO:tensorflow:loss = 5.82382, step = 0\nINFO:tensorflow:loss = 5.82382, learning_rate = 0.8\nINFO:tensorflow:Average examples/sec: 1116.92 (1116.92), step = 10\nINFO:tensorflow:Average examples/sec: 1233.73 (1377.83), step = 20\nINFO:tensorflow:Average examples/sec: 1485.43 (2509.3), step = 30\nINFO:tensorflow:Average examples/sec: 1680.27 (2770.39), step = 40\nINFO:tensorflow:Average examples/sec: 1825.38 (2788.78), step = 50\nINFO:tensorflow:Average examples/sec: 1929.32 (2697.27), step = 60\nINFO:tensorflow:Average examples/sec: 2015.17 (2749.05), step = 70\nINFO:tensorflow:loss = 37.6272, step = 79 (19.554 sec)\nINFO:tensorflow:loss = 37.6272, learning_rate = 0.8 (19.554 sec)\nINFO:tensorflow:Average examples/sec: 2074.92 (2618.36), step = 80\nINFO:tensorflow:Average examples/sec: 2132.71 (2744.13), step = 90\nINFO:tensorflow:Average examples/sec: 2183.38 (2777.21), step = 100\nINFO:tensorflow:Average examples/sec: 2224.4 (2739.03), step = 110\nINFO:tensorflow:Average examples/sec: 2240.28 (2431.26), step = 120\nINFO:tensorflow:Average examples/sec: 2272.12 (2739.32), step = 130\nINFO:tensorflow:Average examples/sec: 2300.68 (2750.03), step = 140\nINFO:tensorflow:Average examples/sec: 2325.81 (2745.63), step = 150\nINFO:tensorflow:Average examples/sec: 2347.14 (2721.53), step = 160\nINFO:tensorflow:Average examples/sec: 2367.74 (2754.54), step = 170\nINFO:tensorflow:loss = 27.8453, step = 179 (18.893 sec)\n...\n```\n\n#### PS\n\nRun this on ps:\nThe ps will not do training so most of the arguments won't affect the execution\n\n```shell\npython cifar10_main.py --job-dir=gs://path/model_dir/\n```\n\n*Output:*\n\n```shell\nINFO:tensorflow:Using model_dir in TF_CONFIG: gs://path/model_dir/\nINFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_num_ps_replicas': 1, '_keep_checkpoint_max': 5, '_task_type': u'ps', '_is_chief': False, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7f48f1addf90>, '_model_dir': 'gs://path/model_dir/', '_save_checkpoints_steps': None, '_keep_checkpoint_every_n_hours': 10000, '_session_config': intra_op_parallelism_threads: 1\ngpu_options {\n}\nallow_soft_placement: true\n, '_tf_random_seed': None, '_environment': u'cloud', '_num_worker_replicas': 1, '_task_id': 0, '_save_summary_steps': 100, '_tf_config': gpu_options {\n  per_process_gpu_memory_fraction: 1.0\n}\n, '_evaluation_master': '', '_master': u'grpc://master-ip:8000'}\n2017-07-31 22:54:58.928088: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job master -> {0 -> master-ip:8000}\n2017-07-31 22:54:58.928153: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job ps -> {0 -> localhost:8000}\n2017-07-31 22:54:58.928160: I tensorflow/core/distributed_runtime/rpc/grpc_channel.cc:215] Initialize GrpcChannelCache for job worker -> {0 -> worker-ip:8000}\n2017-07-31 22:54:58.929873: I tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc:316] Started server with target: grpc://localhost:8000\n```\n\n## Visualizing results with TensorBoard\n\nWhen using Estimators you can also visualize your data in TensorBoard, with no\nchanges in your code. You can use TensorBoard to visualize your TensorFlow\ngraph, plot quantitative metrics about the execution of your graph, and show\nadditional data like images that pass through it.\n\nYou'll see something similar to this if you \"point\" TensorBoard to the\n`job dir` parameter you used to train or evaluate your model.\n\nCheck TensorBoard during training or after it. Just point TensorBoard to the\nmodel_dir you chose on the previous step.\n\n```shell\ntensorboard --log-dir=\"<job dir>\"\n```\n\n## Warnings\n\nWhen runninng `cifar10_main.py` with `--sync` argument you may see an error\nsimilar to:\n\n```python\nFile \"cifar10_main.py\", line 538, in <module>\n    tf.app.run()\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py\", line 48, in run\n    _sys.exit(main(_sys.argv[:1] + flags_passthrough))\nFile \"cifar10_main.py\", line 518, in main\n    hooks), run_config=config)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn_runner.py\", line 210, in run\n    return _execute_schedule(experiment, schedule)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn_runner.py\", line 47, in _execute_schedule\n    return task()\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py\", line 501, in train_and_evaluate\n    hooks=self._eval_hooks)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py\", line 681, in _call_evaluate\n    hooks=hooks)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py\", line 292, in evaluate\n    name=name)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py\", line 638, in _evaluate_model\n    features, labels, model_fn_lib.ModeKeys.EVAL)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py\", line 545, in _call_model_fn\n    features=features, labels=labels, **kwargs)\nFile \"cifar10_main.py\", line 331, in _resnet_model_fn\n    gradvars, global_step=tf.train.get_global_step())\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/sync_replicas_optimizer.py\", line 252, in apply_gradients\n    variables.global_variables())\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py\", line 170, in wrapped\n    return _add_should_use_warning(fn(*args, **kwargs))\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py\", line 139, in _add_should_use_warning\n    wrapped = TFShouldUseWarningWrapper(x)\nFile \"/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py\", line 96, in __init__\n    stack = [s.strip() for s in traceback.format_stack()]\n```\n\nThis should not affect your training, and should be fixed on the next releases.\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/__init__.py",
    "content": ""
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/cifar10.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\n\nHEIGHT = 32\nWIDTH = 32\nDEPTH = 3\n\n\nclass Cifar10DataSet(object):\n  \"\"\"Cifar10 data set.\n\n  Described by http://www.cs.toronto.edu/~kriz/cifar.html.\n  \"\"\"\n\n  def __init__(self, data_dir, subset='train', use_distortion=True):\n    self.data_dir = data_dir\n    self.subset = subset\n    self.use_distortion = use_distortion\n\n  def get_filenames(self):\n    if self.subset in ['train', 'valid', 'test']:\n      return [os.path.join(self.data_dir, self.subset + '.tfrecords')]\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % self.subset)\n\n  def parser(self, serialized_example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    # Dimensions of the images in the CIFAR-10 dataset.\n    # See http://www.cs.toronto.edu/~kriz/cifar.html for a description of the\n    # input format.\n    features = tf.parse_single_example(\n        serialized_example,\n        features={\n            'id': tf.FixedLenFeature([], tf.int64),\n            'image': tf.FixedLenFeature([], tf.string),\n            'label': tf.FixedLenFeature([], tf.int64),\n        })\n    image = tf.decode_raw(features['image'], tf.uint8)\n    image.set_shape([HEIGHT * WIDTH * DEPTH])\n\n    image = tf.cast(\n        tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n        tf.float32)\n    label = tf.cast(features['label'], tf.int32)\n    id = tf.cast(features['id'], tf.int32)\n\n    # Custom preprocessing.\n    image = self.preprocess(image)\n    return id, image, label\n\n\n  def make_batch(self, batch_size, repeat=None):\n    \"\"\"Read the images and labels from 'filenames'.\"\"\"\n    filenames = self.get_filenames()\n    repeat = repeat or (self.subset == 'train')\n    # Repeat infinitely.\n    dataset = tf.data.TFRecordDataset(filenames)\n\n    if repeat:\n      dataset = dataset.repeat()\n\n    # Parse records.\n    dataset = dataset.map(\n        self.parser, num_parallel_calls=batch_size)\n\n    # Potentially shuffle records.\n    if self.subset == 'train':\n      min_queue_examples = int(\n          Cifar10DataSet.num_examples_per_epoch(self.subset) * 0.4)\n      # Ensure that the capacity is sufficiently large to provide good random\n      # shuffling.\n      dataset = dataset.shuffle(buffer_size=min_queue_examples + 3 * batch_size)\n\n    # Batch it up.\n    dataset = dataset.batch(batch_size)\n\n    if repeat:\n      iterator = dataset.make_one_shot_iterator()\n      id_batch, image_batch, label_batch = iterator.get_next()\n      self.label_batch = label_batch\n      self.image_batch = image_batch\n      return id_batch, image_batch, label_batch\n    else:\n      iterator = dataset.make_initializable_iterator()\n      self.iterator = iterator\n      return iterator\n\n  def preprocess(self, image):\n    \"\"\"Preprocess a single image in [height, width, depth] layout.\"\"\"\n    if self.subset == 'train' and self.use_distortion:\n      # Pad 4 pixels on each dimension of feature map, done in mini-batch\n      #... yes should do something like below.. but you will see with dataset.map.. not ok as summary without scope and finally graph has no these summaries\n      # refer to https://stackoverflow.com/questions/47345394/image-summaries-with-tensorflows-dataset-api  TODO FIXME\n      tf.summary.image('image', image)\n      image = tf.image.resize_image_with_crop_or_pad(image, 40, 40)\n      image = tf.random_crop(image, [HEIGHT, WIDTH, DEPTH])\n      image = tf.image.random_flip_left_right(image)\n      tf.summary.image('image/distort', image)\n    return image\n\n  @staticmethod\n  def num_examples_per_epoch(subset='train'):\n    if subset == 'train':\n      return 45000\n    elif subset == 'valid':\n      return 5000\n    elif subset == 'test':\n      return 10000\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % subset)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/cifar10_main.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"ResNet model for classifying images from CIFAR-10 dataset.\n\nSupport single-host training with one or multiple devices.\n\nResNet as proposed in:\nKaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun\nDeep Residual Learning for Image Recognition. arXiv:1512.03385\n\nCIFAR-10 as in:\nhttp://www.cs.toronto.edu/~kriz/cifar.html\n\n\n\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport functools\nimport itertools\nimport os\n\nimport cifar10\nimport cifar10_model\nimport cifar10_utils\nimport numpy as np\nimport six\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\n\ntf.logging.set_verbosity(tf.logging.INFO)\n\n\ndef get_model_fn(num_gpus, variable_strategy, num_workers):\n  \"\"\"Returns a function that will build the resnet model.\"\"\"\n\n  def _resnet_model_fn(features, labels, mode, params):\n    \"\"\"Resnet model body.\n\n    Support single host, one or more GPU training. Parameter distribution can\n    be either one of the following scheme.\n    1. CPU is the parameter server and manages gradient updates.\n    2. Parameters are distributed evenly across all GPUs, and the first GPU\n       manages gradient updates.\n\n    Args:\n      features: a list of tensors, one for each tower\n      labels: a list of tensors, one for each tower\n      mode: ModeKeys.TRAIN or EVAL\n      params: Hyperparameters suitable for tuning\n    Returns:\n      A EstimatorSpec object.\n    \"\"\"\n    is_training = (mode == tf.estimator.ModeKeys.TRAIN)\n    weight_decay = params.weight_decay\n    momentum = params.momentum\n\n    tower_features = features\n    tower_labels = labels\n    tower_losses = []\n    tower_gradvars = []\n    tower_preds = []\n\n    # channels first (NCHW) is normally optimal on GPU and channels last (NHWC)\n    # on CPU. The exception is Intel MKL on CPU which is optimal with\n    # channels_last.\n    data_format = params.data_format\n    if not data_format:\n      if num_gpus == 0:\n        data_format = 'channels_last'\n      else:\n        data_format = 'channels_first'\n\n    if num_gpus == 0:\n      num_devices = 1\n      device_type = 'cpu'\n    else:\n      num_devices = num_gpus\n      device_type = 'gpu'\n\n    for i in range(num_devices):\n      worker_device = '/{}:{}'.format(device_type, i)\n      if variable_strategy == 'CPU':\n        device_setter = cifar10_utils.local_device_setter(\n            worker_device=worker_device)\n      elif variable_strategy == 'GPU':\n        device_setter = cifar10_utils.local_device_setter(\n            ps_device_type='gpu',\n            worker_device=worker_device,\n            ps_strategy=tf.contrib.training.GreedyLoadBalancingStrategy(\n                num_gpus, tf.contrib.training.byte_size_load_fn))\n      with tf.variable_scope('resnet', reuse=bool(i != 0)):\n        with tf.name_scope('tower_%d' % i) as name_scope:\n          with tf.device(device_setter):\n            loss, gradvars, preds = _tower_fn(\n                is_training, weight_decay, tower_features[i], tower_labels[i],\n                data_format, params.num_layers, params.batch_norm_decay,\n                params.batch_norm_epsilon)\n            tower_losses.append(loss)\n            tower_gradvars.append(gradvars)\n            tower_preds.append(preds)\n            if i == 0:\n              # Only trigger batch_norm moving mean and variance update from\n              # the 1st tower. Ideally, we should grab the updates from all\n              # towers but these stats accumulate extremely fast so we can\n              # ignore the other stats from the other towers without\n              # significant detriment.\n              update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS,\n                                             name_scope)\n\n    # Now compute global loss and gradients.\n    gradvars = []\n    with tf.name_scope('gradient_averaging'):\n      all_grads = {}\n      for grad, var in itertools.chain(*tower_gradvars):\n        if grad is not None:\n          all_grads.setdefault(var, []).append(grad)\n      for var, grads in six.iteritems(all_grads):\n        # Average gradients on the same device as the variables\n        # to which they apply.\n        with tf.device(var.device):\n          if len(grads) == 1:\n            avg_grad = grads[0]\n          else:\n            avg_grad = tf.multiply(tf.add_n(grads), 1. / len(grads))\n        gradvars.append((avg_grad, var))\n\n    # Device that runs the ops to apply global gradient updates.\n    consolidation_device = '/gpu:0' if variable_strategy == 'GPU' else '/cpu:0'\n    with tf.device(consolidation_device):\n      # Suggested learning rate scheduling from\n      # https://github.com/ppwwyyxx/tensorpack/blob/master/examples/ResNet/cifar10-resnet.py#L155\n      num_batches_per_epoch = cifar10.Cifar10DataSet.num_examples_per_epoch(\n          'train') // (params.train_batch_size * num_workers)\n      boundaries = [\n          num_batches_per_epoch * x\n          for x in np.array([82, 123, 300], dtype=np.int64)\n      ]\n      staged_lr = [params.learning_rate * x for x in [1, 0.1, 0.01, 0.002]]\n\n      print('--------------learning rate boundaries', boundaries, 'staged_lr', staged_lr)\n      learning_rate = tf.train.piecewise_constant(tf.train.get_global_step(),\n                                                  boundaries, staged_lr)\n\n      loss = tf.reduce_mean(tower_losses, name='loss')\n\n      examples_sec_hook = cifar10_utils.ExamplesPerSecondHook(\n          params.train_batch_size, every_n_steps=10)\n\n      tensors_to_log = {'learning_rate': learning_rate, 'loss': loss}\n\n      logging_hook = tf.train.LoggingTensorHook(\n          tensors=tensors_to_log, every_n_iter=100)\n\n      train_hooks = [logging_hook, examples_sec_hook]\n\n      print('------------------momentum', momentum)\n      optimizer = tf.train.MomentumOptimizer(\n          learning_rate=learning_rate, momentum=momentum)\n\n      print('----------------params.sync', params.sync)\n      if params.sync:\n        optimizer = tf.train.SyncReplicasOptimizer(\n            optimizer, replicas_to_aggregate=num_workers)\n        sync_replicas_hook = optimizer.make_session_run_hook(params.is_chief)\n        train_hooks.append(sync_replicas_hook)\n\n      # Create single grouped train op\n      train_op = [\n          optimizer.apply_gradients(\n              gradvars, global_step=tf.train.get_global_step())\n      ]\n      train_op.extend(update_ops)\n      train_op = tf.group(*train_op)\n\n      predictions = {\n          'classes':\n              tf.concat([p['classes'] for p in tower_preds], axis=0),\n          'probabilities':\n              tf.concat([p['probabilities'] for p in tower_preds], axis=0)\n      }\n      stacked_labels = tf.concat(labels, axis=0)\n      metrics = {\n          'accuracy':\n              tf.metrics.accuracy(stacked_labels, predictions['classes'])\n      }\n\n    return tf.estimator.EstimatorSpec(\n        mode=mode,\n        predictions=predictions,\n        loss=loss,\n        train_op=train_op,\n        training_hooks=train_hooks,\n        eval_metric_ops=metrics)\n\n  return _resnet_model_fn\n\n\ndef _tower_fn(is_training, weight_decay, feature, label, data_format,\n              num_layers, batch_norm_decay, batch_norm_epsilon):\n  \"\"\"Build computation tower (Resnet).\n\n  Args:\n    is_training: true if is training graph.\n    weight_decay: weight regularization strength, a float.\n    feature: a Tensor.\n    label: a Tensor.\n    data_format: channels_last (NHWC) or channels_first (NCHW).\n    num_layers: number of layers, an int.\n    batch_norm_decay: decay for batch normalization, a float.\n    batch_norm_epsilon: epsilon for batch normalization, a float.\n\n  Returns:\n    A tuple with the loss for the tower, the gradients and parameters, and\n    predictions.\n\n  \"\"\"\n  print('--------------------------------')\n  print('num_layers', num_layers, 'batch_norm_decay', batch_norm_decay, 'batch_norm_epsilon', batch_norm_epsilon, 'is_training', is_training, 'data_format', data_format)\n  model = cifar10_model.ResNetCifar10(\n      num_layers,\n      batch_norm_decay=batch_norm_decay,\n      batch_norm_epsilon=batch_norm_epsilon,\n      is_training=is_training,\n      data_format=data_format)\n  logits = model.forward_pass(feature, input_data_format='channels_last')\n  tower_pred = {\n      'classes': tf.argmax(input=logits, axis=1),\n      'probabilities': tf.nn.softmax(logits)\n  }\n\n  tower_loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=logits, labels=label)\n  tower_loss = tf.reduce_mean(tower_loss)\n\n  model_params = tf.trainable_variables()\n  print('------------weight_decay', weight_decay)\n  tower_loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n\n  tower_grad = tf.gradients(tower_loss, model_params)\n\n  return tower_loss, zip(tower_grad, model_params), tower_pred\n\n\ndef input_fn(data_dir,\n             subset,\n             num_shards,\n             batch_size,\n             use_distortion_for_training=True):\n  \"\"\"Create input graph for model.\n\n  Args:\n    data_dir: Directory where TFRecords representing the dataset are located.\n    subset: one of 'train', 'validate' and 'eval'.\n    num_shards: num of towers participating in data-parallel training.\n    batch_size: total batch size for training to be divided by the number of\n    shards.\n    use_distortion_for_training: True to use distortions.\n  Returns:\n    two lists of tensors for features and labels, each of num_shards length.\n  \"\"\"\n  with tf.device('/cpu:0'):\n    use_distortion = subset == 'train' and use_distortion_for_training\n    dataset = cifar10.Cifar10DataSet(data_dir, subset, use_distortion)\n    _, image_batch, label_batch = dataset.make_batch(batch_size, repeat=True)\n    if num_shards <= 1:\n      # No GPU available or only 1 GPU.\n      return [image_batch], [label_batch]\n\n    # Note that passing num=batch_size is safe here, even though\n    # dataset.batch(batch_size) can, in some cases, return fewer than batch_size\n    # examples. This is because it does so only when repeating for a limited\n    # number of epochs, but our dataset repeats forever.\n    image_batch = tf.unstack(image_batch, num=batch_size, axis=0)\n    label_batch = tf.unstack(label_batch, num=batch_size, axis=0)\n    feature_shards = [[] for i in range(num_shards)]\n    label_shards = [[] for i in range(num_shards)]\n    for i in xrange(batch_size):\n      idx = i % num_shards\n      feature_shards[idx].append(image_batch[i])\n      label_shards[idx].append(label_batch[i])\n    feature_shards = [tf.parallel_stack(x) for x in feature_shards]\n    label_shards = [tf.parallel_stack(x) for x in label_shards]\n    return feature_shards, label_shards\n\n\ndef get_experiment_fn(data_dir,\n                      num_gpus,\n                      variable_strategy,\n                      use_distortion_for_training=True):\n  \"\"\"Returns an Experiment function.\n\n  Experiments perform training on several workers in parallel,\n  in other words experiments know how to invoke train and eval in a sensible\n  fashion for distributed training. Arguments passed directly to this\n  function are not tunable, all other arguments should be passed within\n  tf.HParams, passed to the enclosed function.\n\n  Args:\n      data_dir: str. Location of the data for input_fns.\n      num_gpus: int. Number of GPUs on each worker.\n      variable_strategy: String. CPU to use CPU as the parameter server\n      and GPU to use the GPUs as the parameter server.\n      use_distortion_for_training: bool. See cifar10.Cifar10DataSet.\n  Returns:\n      A function (tf.estimator.RunConfig, tf.contrib.training.HParams) ->\n      tf.contrib.learn.Experiment.\n\n      Suitable for use by tf.contrib.learn.learn_runner, which will run various\n      methods on Experiment (train, evaluate) based on information\n      about the current runner in `run_config`.\n  \"\"\"\n\n  def _experiment_fn(run_config, hparams):\n    \"\"\"Returns an Experiment.\"\"\"\n    # Create estimator.\n    train_input_fn = functools.partial(\n        input_fn,\n        data_dir,\n        subset='train',\n        num_shards=num_gpus,\n        batch_size=hparams.train_batch_size,\n        use_distortion_for_training=use_distortion_for_training)\n\n    eval_input_fn = functools.partial(\n        input_fn,\n        data_dir,\n        subset='valid',\n        batch_size=hparams.eval_batch_size,\n        num_shards=num_gpus)\n\n    num_eval_examples = cifar10.Cifar10DataSet.num_examples_per_epoch('valid')\n    if num_eval_examples % hparams.eval_batch_size != 0:\n      raise ValueError(\n          'validation set size must be multiple of eval_batch_size')\n\n    train_steps = hparams.train_steps\n    eval_steps = num_eval_examples // hparams.eval_batch_size\n \n    classifier = tf.estimator.Estimator(\n        model_fn=get_model_fn(num_gpus, variable_strategy,\n                              run_config.num_worker_replicas or 1),\n        config=run_config,\n        params=hparams)\n\n    # Create experiment.\n    return tf.contrib.learn.Experiment(\n        classifier,\n        train_input_fn=train_input_fn,\n        eval_input_fn=eval_input_fn,\n        train_steps=train_steps,\n        eval_steps=eval_steps)\n\n  return _experiment_fn\n\n\ndef main(job_dir, data_dir, num_gpus, variable_strategy,\n         use_distortion_for_training, log_device_placement, num_intra_threads,\n         **hparams):\n  # The env variable is on deprecation path, default is set to off.\n  os.environ['TF_SYNC_ON_FINISH'] = '0'\n  os.environ['TF_ENABLE_WINOGRAD_NONFUSED'] = '1'\n\n  # Session configuration.\n  sess_config = tf.ConfigProto(\n      allow_soft_placement=True,\n      log_device_placement=log_device_placement,\n      intra_op_parallelism_threads=num_intra_threads,\n      gpu_options=tf.GPUOptions(force_gpu_compatible=True))\n\n  config = cifar10_utils.RunConfig(\n      session_config=sess_config, model_dir=job_dir)\n  tf.contrib.learn.learn_runner.run(\n      get_experiment_fn(data_dir, num_gpus, variable_strategy,\n                        use_distortion_for_training),\n      run_config=config,\n      hparams=tf.contrib.training.HParams(\n          is_chief=config.is_chief,\n          **hparams))\n\n\nif __name__ == '__main__':\n  parser = argparse.ArgumentParser()\n  parser.add_argument(\n      '--data-dir',\n      type=str,\n      required=True,\n      help='The directory where the CIFAR-10 input data is stored.')\n  parser.add_argument(\n      '--job-dir',\n      type=str,\n      required=True,\n      help='The directory where the model will be stored.')\n  parser.add_argument(\n      '--variable-strategy',\n      choices=['CPU', 'GPU'],\n      type=str,\n      default='CPU',\n      help='Where to locate variable operations')\n  parser.add_argument(\n      '--num-gpus',\n      type=int,\n      default=1,\n      help='The number of gpus used. Uses only CPU if set to 0.')\n  parser.add_argument(\n      '--num-layers',\n      type=int,\n      default=44,\n      help='The number of layers of the model.')\n  parser.add_argument(\n      '--train-steps',\n      type=int,\n      default=80000,\n      help='The number of steps to use for training.')\n  parser.add_argument(\n      '--train-batch-size',\n      type=int,\n      default=128,\n      help='Batch size for training.')\n  parser.add_argument(\n      '--eval-batch-size',\n      type=int,\n      default=100,\n      help='Batch size for validation.')\n  parser.add_argument(\n      '--momentum',\n      type=float,\n      default=0.9,\n      help='Momentum for MomentumOptimizer.')\n  parser.add_argument(\n      '--weight-decay',\n      type=float,\n      default=2e-4,\n      help='Weight decay for convolutions.')\n  parser.add_argument(\n      '--learning-rate',\n      type=float,\n      default=0.1,\n      help=\"\"\"\\\n      This is the inital learning rate value. The learning rate will decrease\n      during training. For more details check the model_fn implementation in\n      this file.\\\n      \"\"\")\n  parser.add_argument(\n      '--use-distortion-for-training',\n      type=bool,\n      default=True,\n      help='If doing image distortion for training.')\n  parser.add_argument(\n      '--sync',\n      action='store_true',\n      default=False,\n      help=\"\"\"\\\n      If present when running in a distributed environment will run on sync mode.\\\n      \"\"\")\n  parser.add_argument(\n      '--num-intra-threads',\n      type=int,\n      default=0,\n      help=\"\"\"\\\n      Number of threads to use for intra-op parallelism. When training on CPU\n      set to 0 to have the system pick the appropriate number or alternatively\n      set it to the number of physical CPU cores.\\\n      \"\"\")\n  parser.add_argument(\n      '--num-inter-threads',\n      type=int,\n      default=0,\n      help=\"\"\"\\\n      Number of threads to use for inter-op parallelism. If set to 0, the\n      system will pick an appropriate number.\\\n      \"\"\")\n  parser.add_argument(\n      '--data-format',\n      type=str,\n      default=None,\n      help=\"\"\"\\\n      If not set, the data format best for the training device is used. \n      Allowed values: channels_first (NCHW) channels_last (NHWC).\\\n      \"\"\")\n  parser.add_argument(\n      '--log-device-placement',\n      action='store_true',\n      default=False,\n      help='Whether to log device placement.')\n  parser.add_argument(\n      '--batch-norm-decay',\n      type=float,\n      default=0.997,\n      help='Decay for batch norm.')\n  parser.add_argument(\n      '--batch-norm-epsilon',\n      type=float,\n      default=1e-5,\n      help='Epsilon for batch norm.')\n  args = parser.parse_args()\n\n  if args.num_gpus > 0:\n    assert tf.test.is_gpu_available(), \"Requested GPUs but none found.\"\n  if args.num_gpus < 0:\n    raise ValueError(\n        'Invalid GPU count: \\\"--num-gpus\\\" must be 0 or a positive integer.')\n  if args.num_gpus == 0 and args.variable_strategy == 'GPU':\n    raise ValueError('num-gpus=0, CPU must be used as parameter server. Set'\n                     '--variable-strategy=CPU.')\n  if (args.num_layers - 2) % 6 != 0:\n    raise ValueError('Invalid --num-layers parameter.')\n  if args.num_gpus != 0 and args.train_batch_size % args.num_gpus != 0:\n    raise ValueError('--train-batch-size must be multiple of --num-gpus.')\n  if args.num_gpus != 0 and args.eval_batch_size % args.num_gpus != 0:\n    raise ValueError('--eval-batch-size must be multiple of --num-gpus.')\n\n  main(**vars(args))\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/cifar10_model.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Model class for Cifar10 Dataset.\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport model_base\n\nimport melt\n\n\nclass ResNetCifar10(model_base.ResNet):\n  \"\"\"Cifar10 model with ResNetV1 and basic residual block.\"\"\"\n\n  def __init__(self,\n               num_layers,\n               is_training,\n               batch_norm_decay,\n               batch_norm_epsilon,\n               data_format='channels_first'):\n    super(ResNetCifar10, self).__init__(\n        is_training,\n        data_format,\n        batch_norm_decay,\n        batch_norm_epsilon\n    )\n    self.n = (num_layers - 2) // 6\n    # Add one in case label starts with 1. No impact if label starts with 0.\n    self.num_classes = 10 + 1\n    self.filters = [16, 16, 32, 64]\n    self.strides = [1, 2, 2]\n    \n  def init_predict(self, input_data_format='channels_last'):\n    #self.image_feed = tf.placeholder_with_default(tf.constant([test_image]), [None, ], name='image_feature')\n    self.image_feed =  tf.placeholder(tf.string, [None,], name='image')\n    tf.add_to_collection('feed', self.image_feed)\n    image = tf.map_fn(lambda img: melt.image.decode_image(img, image_format='png', dtype=tf.float32),\n                      self.image_feed, dtype=tf.float32)\n    self.predict(image)\n    tf.add_to_collection('classes', self.pred['classes'])\n    tf.add_to_collection('probabilities', self.pred['probabilities'])\n    tf.add_to_collection('logits', self.logits)\n    tf.add_to_collection('pre_logits', self.pre_logits)\n\n  def forward_pass(self, x, input_data_format='channels_last'):\n    # TODO.. without this forward var scope inference_fn will cause problem for self._conv as try to add conv 43.. FIMXE\n    with tf.variable_scope('forward'):\n      \"\"\"Build the core model within the graph.\"\"\"\n      if self._data_format != input_data_format:\n        if input_data_format == 'channels_last':\n          # Computation requires channels_first.\n          x = tf.transpose(x, [0, 3, 1, 2])\n        else:\n          # Computation requires channels_last.\n          x = tf.transpose(x, [0, 2, 3, 1])\n\n      # Image standardization.\n      x = x / 128 - 1\n\n      x = self._conv(x, 3, 16, 1)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      # Use basic (non-bottleneck) block and ResNet V1 (post-activation).\n      res_func = self._residual_v1\n\n      # 3 stages of block stacking.\n      for i in range(3):\n        with tf.name_scope('stage'):\n          for j in range(self.n):\n            if j == 0:\n              # First block in a stage, filters and strides may change.\n              x = res_func(x, 3, self.filters[i], self.filters[i + 1],\n                          self.strides[i])\n            else:\n              # Following blocks in a stage, constant filters and unit stride.\n              x = res_func(x, 3, self.filters[i + 1], self.filters[i + 1], 1)\n\n      x = self._global_avg_pool(x)\n      self.pre_logits = x \n      \n      x = self._fully_connected(x, self.num_classes)\n\n      self.logits = x\n\n      return x\n\n  def predict(self, x=None, input_data_format='channels_last'):\n    if x is not None:\n      self.forward_pass(x, input_data_format)\n    \n    logits = self.logits\n    pred = {\n      'classes': tf.to_int32(tf.argmax(input=logits, axis=1)),\n      'probabilities': tf.nn.softmax(logits)\n    }\n\n    self.pred = pred\n\n    return pred\n\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/cifar10_multi_gpu_train.py",
    "content": "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"A binary to train CIFAR-10 using multiple GPUs with synchronous updates.\n\nAccuracy:\ncifar10_multi_gpu_train.py achieves ~86% accuracy after 100K steps (256\nepochs of data) as judged by cifar10_eval.py.\n\nSpeed: With batch_size 128.\n\nSystem        | Step Time (sec/batch)  |     Accuracy\n--------------------------------------------------------------------\n1 Tesla K20m  | 0.35-0.60              | ~86% at 60K steps  (5 hours)\n1 Tesla K40m  | 0.25-0.35              | ~86% at 100K steps (4 hours)\n2 Tesla K20m  | 0.13-0.20              | ~84% at 30K steps  (2.5 hours)\n3 Tesla K20m  | 0.13-0.18              | ~84% at 30K steps\n4 Tesla K20m  | ~0.10                  | ~84% at 30K steps\n\nUsage:\nPlease see the tutorial and website for how to download the CIFAR-10\ndata set, compile the program and train the model.\n\nhttp://tensorflow.org/tutorials/deep_cnn/\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom datetime import datetime\nimport os.path\nimport re\nimport time\n\nimport numpy as np\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\nimport cifar10\n\nFLAGS = tf.app.flags.FLAGS\n\ntf.app.flags.DEFINE_string('train_dir', '/tmp/cifar10_train',\n                           \"\"\"Directory where to write event logs \"\"\"\n                           \"\"\"and checkpoint.\"\"\")\ntf.app.flags.DEFINE_integer('max_steps', 1000000,\n                            \"\"\"Number of batches to run.\"\"\")\ntf.app.flags.DEFINE_integer('num_gpus', 1,\n                            \"\"\"How many GPUs to use.\"\"\")\ntf.app.flags.DEFINE_boolean('log_device_placement', False,\n                            \"\"\"Whether to log device placement.\"\"\")\n\n\ndef tower_loss(scope, images, labels):\n  \"\"\"Calculate the total loss on a single tower running the CIFAR model.\n\n  Args:\n    scope: unique prefix string identifying the CIFAR tower, e.g. 'tower_0'\n    images: Images. 4D tensor of shape [batch_size, height, width, 3].\n    labels: Labels. 1D tensor of shape [batch_size].\n\n  Returns:\n     Tensor of shape [] containing the total loss for a batch of data\n  \"\"\"\n\n  # Build inference Graph.\n  logits = cifar10.inference(images)\n\n  # Build the portion of the Graph calculating the losses. Note that we will\n  # assemble the total_loss using a custom function below.\n  _ = cifar10.loss(logits, labels)\n\n  # Assemble all of the losses for the current tower only.\n  losses = tf.get_collection('losses', scope)\n\n  # Calculate the total loss for the current tower.\n  total_loss = tf.add_n(losses, name='total_loss')\n\n  # Attach a scalar summary to all individual losses and the total loss; do the\n  # same for the averaged version of the losses.\n  for l in losses + [total_loss]:\n    # Remove 'tower_[0-9]/' from the name in case this is a multi-GPU training\n    # session. This helps the clarity of presentation on tensorboard.\n    loss_name = re.sub('%s_[0-9]*/' % cifar10.TOWER_NAME, '', l.op.name)\n    tf.summary.scalar(loss_name, l)\n\n  return total_loss\n\n\ndef average_gradients(tower_grads):\n  \"\"\"Calculate the average gradient for each shared variable across all towers.\n\n  Note that this function provides a synchronization point across all towers.\n\n  Args:\n    tower_grads: List of lists of (gradient, variable) tuples. The outer list\n      is over individual gradients. The inner list is over the gradient\n      calculation for each tower.\n  Returns:\n     List of pairs of (gradient, variable) where the gradient has been averaged\n     across all towers.\n  \"\"\"\n  average_grads = []\n  for grad_and_vars in zip(*tower_grads):\n    # Note that each grad_and_vars looks like the following:\n    #   ((grad0_gpu0, var0_gpu0), ... , (grad0_gpuN, var0_gpuN))\n    grads = []\n    for g, _ in grad_and_vars:\n      # Add 0 dimension to the gradients to represent the tower.\n      expanded_g = tf.expand_dims(g, 0)\n\n      # Append on a 'tower' dimension which we will average over below.\n      grads.append(expanded_g)\n\n    # Average over the 'tower' dimension.\n    grad = tf.concat(axis=0, values=grads)\n    grad = tf.reduce_mean(grad, 0)\n\n    # Keep in mind that the Variables are redundant because they are shared\n    # across towers. So .. we will just return the first tower's pointer to\n    # the Variable.\n    v = grad_and_vars[0][1]\n    grad_and_var = (grad, v)\n    average_grads.append(grad_and_var)\n  return average_grads\n\n\ndef train():\n  \"\"\"Train CIFAR-10 for a number of steps.\"\"\"\n  with tf.Graph().as_default(), tf.device('/cpu:0'):\n    # Create a variable to count the number of train() calls. This equals the\n    # number of batches processed * FLAGS.num_gpus.\n    global_step = tf.get_variable(\n        'global_step', [],\n        initializer=tf.constant_initializer(0), trainable=False)\n\n    # Calculate the learning rate schedule.\n    num_batches_per_epoch = (cifar10.NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN /\n                             FLAGS.batch_size)\n    decay_steps = int(num_batches_per_epoch * cifar10.NUM_EPOCHS_PER_DECAY)\n\n    # Decay the learning rate exponentially based on the number of steps.\n    lr = tf.train.exponential_decay(cifar10.INITIAL_LEARNING_RATE,\n                                    global_step,\n                                    decay_steps,\n                                    cifar10.LEARNING_RATE_DECAY_FACTOR,\n                                    staircase=True)\n\n    # Create an optimizer that performs gradient descent.\n    opt = tf.train.GradientDescentOptimizer(lr)\n\n    # Get images and labels for CIFAR-10.\n    images, labels = cifar10.distorted_inputs()\n    batch_queue = tf.contrib.slim.prefetch_queue.prefetch_queue(\n          [images, labels], capacity=2 * FLAGS.num_gpus)\n    # Calculate the gradients for each model tower.\n    tower_grads = []\n    with tf.variable_scope(tf.get_variable_scope()):\n      for i in xrange(FLAGS.num_gpus):\n        with tf.device('/gpu:%d' % i):\n          with tf.name_scope('%s_%d' % (cifar10.TOWER_NAME, i)) as scope:\n            # Dequeues one batch for the GPU\n            image_batch, label_batch = batch_queue.dequeue()\n            # Calculate the loss for one tower of the CIFAR model. This function\n            # constructs the entire CIFAR model but shares the variables across\n            # all towers.\n            loss = tower_loss(scope, image_batch, label_batch)\n\n            # Reuse variables for the next tower.\n            tf.get_variable_scope().reuse_variables()\n\n            # Retain the summaries from the final tower.\n            summaries = tf.get_collection(tf.GraphKeys.SUMMARIES, scope)\n\n            # Calculate the gradients for the batch of data on this CIFAR tower.\n            grads = opt.compute_gradients(loss)\n\n            # Keep track of the gradients across all towers.\n            tower_grads.append(grads)\n\n    # We must calculate the mean of each gradient. Note that this is the\n    # synchronization point across all towers.\n    grads = average_gradients(tower_grads)\n\n    # Add a summary to track the learning rate.\n    summaries.append(tf.summary.scalar('learning_rate', lr))\n\n    # Add histograms for gradients.\n    for grad, var in grads:\n      if grad is not None:\n        summaries.append(tf.summary.histogram(var.op.name + '/gradients', grad))\n\n    # Apply the gradients to adjust the shared variables.\n    apply_gradient_op = opt.apply_gradients(grads, global_step=global_step)\n\n    # Add histograms for trainable variables.\n    for var in tf.trainable_variables():\n      summaries.append(tf.summary.histogram(var.op.name, var))\n\n    # Track the moving averages of all trainable variables.\n    variable_averages = tf.train.ExponentialMovingAverage(\n        cifar10.MOVING_AVERAGE_DECAY, global_step)\n    variables_averages_op = variable_averages.apply(tf.trainable_variables())\n\n    # Group all updates to into a single train op.\n    train_op = tf.group(apply_gradient_op, variables_averages_op)\n\n    # Create a saver.\n    saver = tf.train.Saver(tf.global_variables())\n\n    # Build the summary operation from the last tower summaries.\n    summary_op = tf.summary.merge(summaries)\n\n    # Build an initialization operation to run below.\n    init = tf.global_variables_initializer()\n\n    # Start running operations on the Graph. allow_soft_placement must be set to\n    # True to build towers on GPU, as some of the ops do not have GPU\n    # implementations.\n    sess = tf.Session(config=tf.ConfigProto(\n        allow_soft_placement=True,\n        log_device_placement=FLAGS.log_device_placement))\n    sess.run(init)\n\n    # Start the queue runners.\n    tf.train.start_queue_runners(sess=sess)\n\n    summary_writer = tf.summary.FileWriter(FLAGS.train_dir, sess.graph)\n\n    for step in xrange(FLAGS.max_steps):\n      start_time = time.time()\n      _, loss_value = sess.run([train_op, loss])\n      duration = time.time() - start_time\n\n      assert not np.isnan(loss_value), 'Model diverged with loss = NaN'\n\n      if step % 10 == 0:\n        num_examples_per_step = FLAGS.batch_size * FLAGS.num_gpus\n        examples_per_sec = num_examples_per_step / duration\n        sec_per_batch = duration / FLAGS.num_gpus\n\n        format_str = ('%s: step %d, loss = %.2f (%.1f examples/sec; %.3f '\n                      'sec/batch)')\n        print (format_str % (datetime.now(), step, loss_value,\n                             examples_per_sec, sec_per_batch))\n\n      if step % 100 == 0:\n        summary_str = sess.run(summary_op)\n        summary_writer.add_summary(summary_str, step)\n\n      # Save the model checkpoint periodically.\n      if step % 1000 == 0 or (step + 1) == FLAGS.max_steps:\n        checkpoint_path = os.path.join(FLAGS.train_dir, 'model.ckpt')\n        saver.save(sess, checkpoint_path, global_step=step)\n\n\ndef main(argv=None):  # pylint: disable=unused-argument\n  #cifar10.maybe_download_and_extract()\n  if tf.gfile.Exists(FLAGS.train_dir):\n    tf.gfile.DeleteRecursively(FLAGS.train_dir)\n  tf.gfile.MakeDirs(FLAGS.train_dir)\n  train()\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/cifar10_utils.py",
    "content": "import collections\nimport six\n\nimport tensorflow as tf\n\nfrom tensorflow.python.platform import tf_logging as logging\nfrom tensorflow.core.framework import node_def_pb2\nfrom tensorflow.python.framework import device as pydev\nfrom tensorflow.python.training import basic_session_run_hooks\nfrom tensorflow.python.training import session_run_hook\nfrom tensorflow.python.training import training_util\nfrom tensorflow.python.training import device_setter\nfrom tensorflow.contrib.learn.python.learn import run_config\n\n\n# TODO(b/64848083) Remove once uid bug is fixed\nclass RunConfig(tf.contrib.learn.RunConfig): \n  def uid(self, whitelist=None):\n    \"\"\"Generates a 'Unique Identifier' based on all internal fields.\n    Caller should use the uid string to check `RunConfig` instance integrity\n    in one session use, but should not rely on the implementation details, which\n    is subject to change.\n    Args:\n      whitelist: A list of the string names of the properties uid should not\n        include. If `None`, defaults to `_DEFAULT_UID_WHITE_LIST`, which\n        includes most properties user allowes to change.\n    Returns:\n      A uid string.\n    \"\"\"\n    if whitelist is None:\n      whitelist = run_config._DEFAULT_UID_WHITE_LIST\n\n    state = {k: v for k, v in self.__dict__.items() if not k.startswith('__')}\n    # Pop out the keys in whitelist.\n    for k in whitelist:\n      state.pop('_' + k, None)\n\n    ordered_state = collections.OrderedDict(\n        sorted(state.items(), key=lambda t: t[0]))\n    # For class instance without __repr__, some special cares are required.\n    # Otherwise, the object address will be used.\n    if '_cluster_spec' in ordered_state:\n      ordered_state['_cluster_spec'] = collections.OrderedDict(\n         sorted(ordered_state['_cluster_spec'].as_dict().items(),\n                key=lambda t: t[0])\n      )\n    return ', '.join(\n        '%s=%r' % (k, v) for (k, v) in six.iteritems(ordered_state)) \n\n\nclass ExamplesPerSecondHook(session_run_hook.SessionRunHook):\n  \"\"\"Hook to print out examples per second.\n\n    Total time is tracked and then divided by the total number of steps\n    to get the average step time and then batch_size is used to determine\n    the running average of examples per second. The examples per second for the\n    most recent interval is also logged.\n  \"\"\"\n\n  def __init__(\n      self,\n      batch_size,\n      every_n_steps=100,\n      every_n_secs=None,):\n    \"\"\"Initializer for ExamplesPerSecondHook.\n\n      Args:\n      batch_size: Total batch size used to calculate examples/second from\n      global time.\n      every_n_steps: Log stats every n steps.\n      every_n_secs: Log stats every n seconds.\n    \"\"\"\n    if (every_n_steps is None) == (every_n_secs is None):\n      raise ValueError('exactly one of every_n_steps'\n                       ' and every_n_secs should be provided.')\n    self._timer = basic_session_run_hooks.SecondOrStepTimer(\n        every_steps=every_n_steps, every_secs=every_n_secs)\n\n    self._step_train_time = 0\n    self._total_steps = 0\n    self._batch_size = batch_size\n\n  def begin(self):\n    self._global_step_tensor = training_util.get_global_step()\n    if self._global_step_tensor is None:\n      raise RuntimeError(\n          'Global step should be created to use StepCounterHook.')\n\n  def before_run(self, run_context):  # pylint: disable=unused-argument\n    return basic_session_run_hooks.SessionRunArgs(self._global_step_tensor)\n\n  def after_run(self, run_context, run_values):\n    _ = run_context\n\n    global_step = run_values.results\n    if self._timer.should_trigger_for_step(global_step):\n      elapsed_time, elapsed_steps = self._timer.update_last_triggered_step(\n          global_step)\n      if elapsed_time is not None:\n        steps_per_sec = elapsed_steps / elapsed_time\n        self._step_train_time += elapsed_time\n        self._total_steps += elapsed_steps\n\n        average_examples_per_sec = self._batch_size * (\n            self._total_steps / self._step_train_time)\n        current_examples_per_sec = steps_per_sec * self._batch_size\n        # Average examples/sec followed by current examples/sec\n        logging.info('%s: %g (%g), step = %g', 'Average examples/sec',\n                     average_examples_per_sec, current_examples_per_sec,\n                     self._total_steps)\n\ndef local_device_setter(num_devices=1,\n                        ps_device_type='cpu',\n                        worker_device='/cpu:0',\n                        ps_ops=None,\n                        ps_strategy=None):\n  if ps_ops == None:\n    ps_ops = ['Variable', 'VariableV2', 'VarHandleOp']\n\n  if ps_strategy is None:\n    ps_strategy = device_setter._RoundRobinStrategy(num_devices)\n  if not six.callable(ps_strategy):\n    raise TypeError(\"ps_strategy must be callable\")\n\n  def _local_device_chooser(op):\n    current_device = pydev.DeviceSpec.from_string(op.device or \"\")\n\n    node_def = op if isinstance(op, node_def_pb2.NodeDef) else op.node_def\n    if node_def.op in ps_ops:\n      ps_device_spec = pydev.DeviceSpec.from_string(\n          '/{}:{}'.format(ps_device_type, ps_strategy(op)))\n\n      ps_device_spec.merge_from(current_device)\n      return ps_device_spec.to_string()\n    else:\n      worker_device_spec = pydev.DeviceSpec.from_string(worker_device or \"\")\n      worker_device_spec.merge_from(current_device)\n      return worker_device_spec.to_string()\n  return _local_device_chooser\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/cmle_config.yaml",
    "content": "trainingInput:\n  scaleTier: CUSTOM\n  masterType: complex_model_m_gpu\n  workerType: complex_model_m_gpu\n  parameterServerType: complex_model_m\n  workerCount: 1\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/evaluator.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_bool('draw_pr', True, '')\nflags.DEFINE_float('precision_thre', 0.8, '')\n\nfrom tensorboard import summary as summary_lib\n\nfrom collections import defaultdict\n\nimport numpy as np\n\nfrom gezi import Timer\nimport gezi\nimport melt \nlogging = melt.logging\nimport pandas as pd\npd.set_option('display.max_colwidth', -1)\n\nimport deepiu\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n\ndef write(ids, predicts, model_path, labels=None, images=None, suffix='valid_info'):\n  tb = pd.DataFrame()\n  tb['id'] = ids \n  \n  predicts = [classes[x] for x in predicts]\n\n  if labels is not None:\n    tb['predict'] = predicts \n    labels = [classes[x] for x in labels]\n    tb['label'] = labels\n\n    ofile = model_path + '.valid_error.png'\n    from deepiu.visualize.classify import plot_example_errors\n    plot_example_errors(images, \n                        labels, \n                        predicts,\n                        smooth=True, \n                        #smooth=False, \n                        #class_names=classes,\n                        image_names=ids, \n                        out_file=ofile,\n                        max_show=9)\n  else:\n    tb['label'] = predicts\n\n  ofile = model_path + '.%s' % suffix\n  tb.to_csv(ofile, index=False)\n\ndef evaluate(eval_ops, iterator, model_path=None, sess=None):\n  if model_path:\n    ids_list = []\n    \n  predictions_list = []\n  labels_list = []\n  losses = []\n\n  images_list = []\n\n  id_, loss_, predicts_, labels_, images_ = eval_ops\n  if not sess:\n    sess = melt.get_session()\n  \n  # for prcurve\n  sess.run(iterator.initializer)\n\n  try:\n    while True:\n      ids, loss, predictions, labels, images = sess.run(eval_ops)\n      images = images.astype(np.uint8)\n      losses.append(loss)\n      predictions_list.append(predictions)\n      labels_list.append(labels)\n\n      images_list.append(images)\n\n      if model_path:\n        ids_list.append(ids)\n  except tf.errors.OutOfRangeError:\n    loss = np.mean(losses)\n    predicts = np.concatenate(predictions_list)\n    labels = np.concatenate(labels_list)\n\n    images = np.concatenate(images_list)\n\n    acc = np.mean(np.equal(predicts, labels))\n\n    results = [loss, acc] \n    names = ['metric/valid/loss/avg', 'metric/valid/acc'] \n    \n    if model_path:\n      write(np.concatenate(ids_list), \n            predicts,\n            model_path,\n            labels,\n            images,\n            suffix='valid_info'\n            )\n\n    return results, names \n\n\ndef inference(ops, iterator, model_path=None, sess=None):\n  assert model_path\n  if model_path:\n    ids_list = []\n    \n  predictions_list = []\n\n  id_, predicts_ = ops\n  if not sess:\n    sess = melt.get_session()\n  \n  # for prcurve\n  sess.run(iterator.initializer)\n\n  try:\n    while True:\n      ids, predictions = sess.run(ops)\n      \n      predictions_list.append(predictions)\n\n      if model_path:\n        ids_list.append(ids)\n  except tf.errors.OutOfRangeError:\n    predicts = np.concatenate(predictions_list)\n    \n    if model_path:\n      write(np.concatenate(ids_list), \n            predicts,\n            model_path,\n            labels=None,\n            suffix='infer_info'\n            )\n\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/gen-records.sh",
    "content": "# notice must be python2 for python3 refer to https://www.cs.toronto.edu/~kriz/cifar.html  dict = pickle.load(fo, encoding='bytes')\npython=/home/gezi/pyenv/bin/python\n$python generate_cifar10_tfrecords.py --data-dir /home/gezi/data/cifar10_data2/\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/generate_cifar10_tfrecords.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Read CIFAR-10 data from pickled numpy arrays and writes TFRecords.\n\nGenerates tf.train.Example protos and writes them to TFRecord files from the\npython version of the CIFAR-10 dataset downloaded from\nhttps://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport argparse\nimport os\n\nimport tarfile\nfrom six.moves import cPickle as pickle\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nimport tensorflow as tf\nimport glob\nimport cv2\nimport melt\nimport gezi\n\nCIFAR_FILENAME = 'cifar-10-python.tar.gz'\nCIFAR_DOWNLOAD_URL = 'https://www.cs.toronto.edu/~kriz/' + CIFAR_FILENAME\nCIFAR_LOCAL_FOLDER = 'cifar-10-batches-py'\n\nNUM_FOLDS = 10\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n        \nclasses_map = dict(zip(classes, range(len(classes))))\n\nprint('----------', classes_map)\n\nimport pandas as pd\nl = pd.read_csv('./mount/data/kaggle/cifar-10/trainLabels.csv')\nm = {}\nfor i in range(len(l)):\n  m[l.id[i]] = l.label[i]\n\n\ndef _int64_feature(value):\n  return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))\n\n\ndef _bytes_feature(value):\n  return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))\n\ndef convert_to_tfrecord(input_files, output_file):\n  \"\"\"Converts a file to TFRecords.\"\"\"\n  print('Generating %s' % output_file)\n  with tf.python_io.TFRecordWriter(output_file) as record_writer:\n    for input_file in input_files:\n      id = int(os.path.basename(input_file)[:-4])\n      img = cv2.imread(input_file)\n      # turn to channel first\n      #img = img.transpose(2,0,1)\n      if 'test' not in output_file:  \n        label = classes_map[m[id]]\n      else:\n        label = -1\n      example = tf.train.Example(features=tf.train.Features(\n          feature={\n              'id': _int64_feature(id),\n              'image': _bytes_feature(img.tobytes()),\n              'label': _int64_feature(label)\n          }))\n      record_writer.write(example.SerializeToString())\n\ndef main(data_dir):\n  input_dir = './mount/data/kaggle/cifar-10'\n  \n  input_files = [f for f in glob.glob('%s/%s/*.png' % (input_dir, 'train')) if int(os.path.basename(f)[:-4]) % NUM_FOLDS != 0]\n  print('train:', len(input_files))\n  output_file = os.path.join(data_dir, 'train.tfrecords')\n  convert_to_tfrecord(input_files, output_file)\n\n  input_files = [f for f in glob.glob('%s/%s/*.png' % (input_dir, 'train')) if int(os.path.basename(f)[:-4]) % NUM_FOLDS == 0]\n  input_files = sorted(input_files, key=lambda f:int(os.path.basename(f)[:-4]))\n  print('valid:', len(input_files))\n  output_file = os.path.join(data_dir, 'valid.tfrecords')\n  convert_to_tfrecord(input_files, output_file) \n\n  input_files = glob.glob('%s/%s/*.png' % (input_dir, 'test'))\n  input_files = sorted(input_files, key=lambda f:int(os.path.basename(f)[:-4]))\n  print('test:', len(input_files))\n  output_file = os.path.join(data_dir, 'test.tfrecords')\n  convert_to_tfrecord(input_files, output_file) \n\n  print('Done!')\n\n\nif __name__ == '__main__':\n  data_dir = './mount/data/cifar10'\n  main(data_dir)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/inference.py",
    "content": "import melt\np = melt.SimplePredictor('./mount/temp/cifar10/model/resnet.momentum.decay/epoch/model.ckpt-30.00-10530', key='pre_logits')\nfeature = p.inference([melt.read_image('./mount/data/kaggle/cifar-10/test/10.png')])\n\nprint(feature)\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/model_base.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"ResNet model.\n\nRelated papers:\nhttps://arxiv.org/pdf/1603.05027v2.pdf\nhttps://arxiv.org/pdf/1512.03385v1.pdf\nhttps://arxiv.org/pdf/1605.07146v1.pdf\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\nclass ResNet(object):\n  \"\"\"ResNet model.\"\"\"\n\n  def __init__(self, is_training, data_format, batch_norm_decay, batch_norm_epsilon):\n    \"\"\"ResNet constructor.\n\n    Args:\n      is_training: if build training or inference model.\n      data_format: the data_format used during computation.\n                   one of 'channels_first' or 'channels_last'.\n    \"\"\"\n    self._batch_norm_decay = batch_norm_decay\n    self._batch_norm_epsilon = batch_norm_epsilon\n    self._is_training = is_training\n    assert data_format in ('channels_first', 'channels_last')\n    self._data_format = data_format\n\n  def forward_pass(self, x):\n    raise NotImplementedError(\n        'forward_pass() is implemented in ResNet sub classes')\n\n  def _residual_v1(self,\n                   x,\n                   kernel_size,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers, using Plan A for shortcut connection.\"\"\"\n\n    del activate_before_residual\n    with tf.name_scope('residual_v1') as name_scope:\n      orig_x = x\n\n      x = self._conv(x, kernel_size, out_filter, stride)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      x = self._conv(x, kernel_size, out_filter, 1)\n      x = self._batch_norm(x)\n\n      if in_filter != out_filter:\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        pad = (out_filter - in_filter) // 2\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = self._relu(tf.add(x, orig_x))\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _residual_v2(self,\n                   x,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers with preactivation, plan A shortcut.\"\"\"\n\n    with tf.name_scope('residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 3, out_filter, stride)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 3, out_filter, [1, 1, 1, 1])\n\n      if in_filter != out_filter:\n        pad = (out_filter - in_filter) // 2\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _bottleneck_residual_v2(self,\n                              x,\n                              in_filter,\n                              out_filter,\n                              stride,\n                              activate_before_residual=False):\n    \"\"\"Bottleneck residual unit with 3 sub layers, plan B shortcut.\"\"\"\n\n    with tf.name_scope('bottle_residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 1, out_filter // 4, stride, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      # pad when stride isn't unit\n      x = self._conv(x, 3, out_filter // 4, 1, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 1, out_filter, 1, is_atrous=True)\n\n      if in_filter != out_filter:\n        orig_x = self._conv(orig_x, 1, out_filter, stride, is_atrous=True)\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _conv(self, x, kernel_size, filters, strides, is_atrous=False):\n    \"\"\"Convolution.\"\"\"\n\n    padding = 'SAME'\n    if not is_atrous and strides > 1:\n      pad = kernel_size - 1\n      pad_beg = pad // 2\n      pad_end = pad - pad_beg\n      if self._data_format == 'channels_first':\n        x = tf.pad(x, [[0, 0], [0, 0], [pad_beg, pad_end], [pad_beg, pad_end]])\n      else:\n        x = tf.pad(x, [[0, 0], [pad_beg, pad_end], [pad_beg, pad_end], [0, 0]])\n      padding = 'VALID'\n    return tf.layers.conv2d(\n        inputs=x,\n        kernel_size=kernel_size,\n        filters=filters,\n        strides=strides,\n        padding=padding,\n        use_bias=False,\n        data_format=self._data_format)\n\n  def _batch_norm(self, x):\n    if self._data_format == 'channels_first':\n      data_format = 'NCHW'\n    else:\n      data_format = 'NHWC'\n    return tf.contrib.layers.batch_norm(\n        x,\n        decay=self._batch_norm_decay,\n        center=True,\n        scale=True,\n        epsilon=self._batch_norm_epsilon,\n        is_training=self._is_training,\n        fused=True,\n        data_format=data_format)\n\n  def _relu(self, x):\n    return tf.nn.relu(x)\n\n  def _fully_connected(self, x, out_dim):\n    with tf.name_scope('fully_connected') as name_scope:\n      x = tf.layers.dense(x, out_dim)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _avg_pool(self, x, pool_size, stride):\n    with tf.name_scope('avg_pool') as name_scope:\n      x = tf.layers.average_pooling2d(\n          x, pool_size, stride, 'SAME', data_format=self._data_format)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _global_avg_pool(self, x):\n    with tf.name_scope('global_avg_pool') as name_scope:\n      assert x.get_shape().ndims == 4\n      if self._data_format == 'channels_first':\n        x = tf.reduce_mean(x, [2, 3])\n      else:\n        x = tf.reduce_mean(x, [1, 2])\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/prepare.sh",
    "content": "pyenv\npython generate_cifar10_tfrecords.py --data-dir=/home/gezi/data/cifar10\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/readme",
    "content": "use ./train-melt-momentum2-batch128.sh this is the same as tensorflow tuorial which set learning rate 0.1 0.01 ... 500 epoch will get   \nvalid_loss 0.4307 valid_acc 0.9294 test_acc 0.93010\nuse ./train-melt-momentum-decay.sh this is the same as above but set learning rate decay 0.99 per epoch 500 epoch will get\nvalid_loss 0.3297 valid_acc 0.9359 test_acc 0.9367  \n./train-melt-momentum-decay-2gpu.sh  is 2gpu version   \n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-2gpu-2.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=2 \\\n    --variable-strategy GPU \\\n    --train-steps=110000 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.2gpu.2\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-2gpu.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=2 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.2gpu\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-4gpu.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=4 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.4gpu\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-2gpu.sh",
    "content": "python ./train.py \\\n    --save_interval_epochs 10 \\\n    --save_interval_steps 1000  \\\n    --model_dir /home/gezi/temp/cifar10/model/resnet.2gpu \\\n    --optimizer momentum \\\n    --num_gpus=2\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-decay-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay99.2gpu \\\n    --batch_size_by_gpu_num=1 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-decay.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay99 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-decay98.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay98 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.98 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum-batch128.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.batch128 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=1.0,0.1,0.01,0.002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum-decay-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay.2gpu \\\n    --variable_strategy=cpu \\\n    --batch_size_per_gpu=0 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum-decay-batch64.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay.batch64 \\\n    --batch_size=64 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum-decay.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=1.0,0.1,0.01,0.002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum2-batch128-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2.batch128.2gpu \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum2-batch128.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2.batch128 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt-momentum2.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train-melt.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train/train.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=1 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator\n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('model_dir', './mount/temp/cifar10/model/resnet', '')\nflags.DEFINE_string('algo', 'resnet', '')\n\nimport numpy as np\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\n#import evaluator\n\nimport cifar10\nimport cifar10_model\nimport cifar10_utils\n\nimport evaluator\n\neval_names = None\n\ndef tower_loss(model, feature, label):\n  logits = model.forward_pass(feature, input_data_format='channels_last')\n  weight_decay = 0.0002\n\n  loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=logits, labels=label)\n  loss = tf.reduce_mean(loss)\n\n  model_params = tf.trainable_variables()\n  loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n  return loss\n\n# import tfmpl\n# @tfmpl.figure_tensor\n# def draw_confusion_matrix(matrix):\n#     '''Draw confusion matrix for MNIST.'''\n#     fig = tfmpl.create_figure(figsize=(7,7))\n#     ax = fig.add_subplot(111)\n#     ax.set_title('Confusion matrix for MNIST classification')\n    \n#     tfmpl.plots.confusion_matrix.draw(\n#         ax, matrix,\n#         axis_labels=['Digit ' + str(x) for x in range(10)],\n#         normalize=True\n#     )\n\n#     return fig\n\ndef main(_):\n  num_train_examples = 45000\n  melt.apps.train.init()\n\n  batch_size = melt.batch_size()\n  num_gpus = melt.num_gpus()\n\n  batch_size_per_gpu = FLAGS.batch_size\n\n  # batch size not changed but FLAGS.batch_size will change to batch_size / num_gpus\n  #print('--------------batch_size, FLAGS.batch_size, num_steps_per_epoch', batch_size, FLAGS.batch_size, num_train_examples // batch_size)\n\n  global_scope = FLAGS.algo \n  with tf.variable_scope(global_scope) as global_scope:\n    data_format = 'channels_first'\n    num_layers = 44\n    batch_norm_decay = 0.997\n    batch_norm_epsilon = 1e-05\n    data_dir = './mount/data/cifar10/' \n    with tf.variable_scope('main') as scope:\n      model = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        is_training=True,\n        data_format=data_format)\n\n      dataset = cifar10.Cifar10DataSet(data_dir, subset='train', use_distortion=True)\n      ## This is wrong will cause all gpu read same data, so slow convergence but will get better test result\n      #_, image_batch, label_batch = dataset.make_batch(FLAGS.batch_size)\n      def loss_function():\n        # doing this 2gpu will get similar result as 1gpu, seems a bit better valid result and a bit worse test result might due to randomness\n        _, image_batch, label_batch = dataset.make_batch(batch_size_per_gpu)\n        return tower_loss(model, image_batch, label_batch)\n\n      #loss_function = lambda: tower_loss(model, image_batch, label_batch)\n      loss = melt.tower_losses(loss_function, num_gpus)\n      pred = model.predict()\n      pred = pred['classes']\n      label_batch = dataset.label_batch\n      acc = tf.reduce_mean(tf.to_float(tf.equal(pred, label_batch)))\n\n      #tf.summary.image('train/image', dataset.image_batch)\n      # # Compute confusion matrix\n      # matrix = tf.confusion_matrix(label_batch, pred, num_classes=10)\n      # # Get a image tensor for summary usage\n      # image_tensor = draw_confusion_matrix(matrix)\n      # tf.summary.image('train/confusion_matrix', image_tensor)\n\n      scope.reuse_variables()\n      ops = [loss, acc]\n\n      # TODO multiple gpu validation and inference\n\n      validator = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        is_training=False,\n        data_format=data_format)\n\n      valid_dataset = cifar10.Cifar10DataSet(data_dir, subset='valid', use_distortion=False)\n      valid_iterator = valid_dataset.make_batch(batch_size)\n      valid_id_batch, valid_image_batch, valid_label_batch = valid_iterator.get_next()\n\n      valid_loss = tower_loss(validator, valid_image_batch, valid_label_batch)\n      valid_pred = validator.predict()\n      valid_pred = valid_pred['classes']\n\n      ## seems not work with non rpeat mode..\n      #tf.summary.image('valid/image', valid_image_batch)\n      ## Compute confusion matrix\n      #matrix = tf.confusion_matrix(valid_label_batch, valid_pred, num_classes=10)\n      ## Get a image tensor for summary usage\n      #image_tensor = draw_confusion_matrix(matrix)\n      #tf.summary.image('valid/confusion_matrix', image_tensor)\n\n\n      #loss_function = lambda: tower_loss(validator, val_image_batch, val_label_batch)\n      #val_loss = melt.tower_losses(loss_function, FLAGS.num_gpus, is_training=False)\n      #eval_ops = [val_loss]\n      \n      metric_eval_fn = lambda model_path=None: \\\n                          evaluator.evaluate([valid_id_batch, valid_loss, valid_pred, valid_label_batch, valid_image_batch], \n                                             valid_iterator,\n                                             model_path=model_path)\n\n      predictor = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        is_training=False,\n        data_format=data_format)\n\n      predictor.init_predict()\n\n      test_dataset = cifar10.Cifar10DataSet(data_dir, subset='test', use_distortion=False)\n      test_iterator = test_dataset.make_batch(batch_size)\n      test_id_batch, test_image_batch, test_label_batch = test_iterator.get_next()      \n\n      test_pred = predictor.predict(test_image_batch, input_data_format='channels_last')\n      test_pred = test_pred['classes']\n      \n      inference_fn = lambda model_path=None: \\\n                          evaluator.inference([test_id_batch, test_pred], \n                                              test_iterator,\n                                              model_path=model_path)\n\n      global eval_names\n      names = ['loss', 'acc']\n\n    melt.apps.train_flow(ops, \n                         names = names,\n                         metric_eval_fn=metric_eval_fn,\n                         inference_fn=inference_fn,\n                         model_dir=FLAGS.model_dir,\n                         num_steps_per_epoch=num_train_examples // batch_size)\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/kaggle/cifar10/baseline/tf/cifar10_estimator.v1/train.tfrecords",
    "content": ""
  },
  {
    "path": "projects/kaggle/cifar10/fastai/cifar10-simplenet.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## CIFAR 10\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"%matplotlib inline\\n\",\n    \"%reload_ext autoreload\\n\",\n    \"%autoreload 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from pathlib import Path\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from fastai.conv_learner import *\\n\",\n    \"PATH = Path(\\\"data/cifar10/\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"bs=64\\n\",\n    \"sz=32\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tfms = tfms_from_model(resnet18, sz, aug_tfms=[RandomFlip()], pad=sz//8)\\n\",\n    \"data = ImageClassifierData.from_csv(PATH, 'train', PATH/'train.csv', tfms=tfms, bs=bs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn = ConvLearner.pretrained(resnet18, data)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"lr=1e-2; wd=1e-5\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"178615044d0445b39b5d41485c8540d6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                                                                                       \\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"learn.lr_find()\\n\",\n    \"learn.sched.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"60c148e603be4d758a07fc2894a4fdf0\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=2), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                                                                              \\n\",\n      \"    0      1.249359   1.116181   0.604056  \\n\",\n      \"    1      1.215158   1.07421    0.613115                                                                              \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1.0742103, 0.6131150265957447]\"\n      ]\n     },\n     \"execution_count\": 36,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 1, cycle_len=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"lrs = np.array([lr/9,lr/3,lr])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.unfreeze()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"20f2b140b25e4397a2d798b7ed213512\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                                                                                       \\r\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAYcAAAEOCAYAAABiodtuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8FdX9//HXJzskIRAIa4CwIwKyBBAVRWut21friq11q0u1trXLt4u17de2v1a72VqtWqut1q0uoKKiuKIgsoSw72HfQhLIvi/n98e90JgFEs1k7k3ez8fjPpg7M3fmcybhfnLmnDnHnHOIiIjUF+F3ACIiEnqUHEREpBElBxERaUTJQUREGlFyEBGRRpQcRESkESUHERFpRMlBREQaUXIQEZFGPEsOZhZnZsvMbLWZrTezXzaxz/Vmlmtmq4Kvm7yKR0REWi7Kw2NXAmc550rMLBpYZGZvOueWNNjveefct1p60F69erm0tLS2jFNEpMNbsWJFnnMupaX7e5YcXGDQppLg2+jg63MP5JSWlkZGRsbnPYyISKdiZrtas7+nbQ5mFmlmq4Ac4B3n3NImdrvMzNaY2UtmNtDLeEREpGU8TQ7OuVrn3AQgFZhqZmMb7PIakOacGw+8CzzZ1HHM7BYzyzCzjNzcXC9DFhER2qm3knOuAFgAnNtg/SHnXGXw7T+Ayc18/lHnXLpzLj0lpcW3zERE5DPysrdSipl1Dy53Ac4GNjXYp1+9txcBG72KR0REWs7L3kr9gCfNLJJAEnrBOfe6mf0KyHDOzQW+Y2YXATXAYeB6D+MREZEWsnCbCS49Pd2pt5KISOuY2QrnXHpL99cT0iIiYeDdDQfJyilut/MpOYiIhIHbnlnB7Mx97XY+JQcRkRBXVVNHda0jPiay3c6p5CAiEuLKqmoA6BrjZR+iT1NyEBEJcaVVtQDEx6rmICIiQWWVqjmIiEgDqjmIiEgjqjmIiEgjR2sOSg4iInLE0d5Kuq0kIiJHlFaq5iAiIg2o5iAiIo2o5iAiIo2UVdUQFx1BZIS12zmVHEREQlxpVU271hpAyUFEJOSVVda2a3sDKDmIiIQ81RxERKSRsqpaurbjcN2g5CAiEvJKK2uIj1XNQURE6lHNQUREGlGbg4iINKLeSiIi0ohqDiIi8ik1tXVUVNe161wOoOQgIhLSjoyrlBCn5CAiIkElwRFZE9WVVUREjiipCCQHPecgIiJHlQTnj9ZtJREROepoclBXVhEROaL0aHKIbtfzKjmIiISw/7Y5qOYgIiJBR24rJarmICIiRxxJDqo5iIjIUaWVgfmjoyLb9+tayUFEJIQVV9aQ0M7POICSg4hISCupUHIQEZEG/JgFDjxMDmYWZ2bLzGy1ma03s182sU+smT1vZllmttTM0ryKR0QkHHXE20qVwFnOuZOACcC5ZnZyg31uBPKdc8OBPwO/8zAeEZGwU9rRkoMLKAm+jQ6+XIPdLgaeDC6/BHzBzMyrmEREwk1JZU27j6sEHrc5mFmkma0CcoB3nHNLG+wyANgD4JyrAQqBnl7GJCISTjpcmwOAc67WOTcBSAWmmtnYBrs0VUtoWLvAzG4xswwzy8jNzfUiVBGRkFRcUdPuczlAO/VWcs4VAAuAcxts2gsMBDCzKCAJONzE5x91zqU759JTUlI8jlZEJDRU1dRRWVPXsWoOZpZiZt2Dy12As4FNDXabC1wXXL4ceN8516jmICLSGeUUVwDQOzG23c/tZTrqBzxpZpEEktALzrnXzexXQIZzbi7wOPCUmWURqDFc5WE8IiJh5UBhIDn0696l3c/tWXJwzq0BJjax/hf1liuAK7yKQUQknB1JDv2T4tr93HpCWkQkRB0oKAegr5KDiIgckVNcSdeYSBLj2ncuB1ByEBEJWfllVfToGuPLuZUcRERCVEFZNT3i27/WAEoOIiIhSzUHERFppKCsmu5KDiIiUl+g5qDbSiIiElRb5ygsV81BRETqyS+rwjnoGa/kICIiQdnBp6P7dGv/B+BAyUFEJCQdLAokBz+ejgYlBxGRkJRddKTm0P4jsoKSg4hISDpYWEGEQUqCkoOIiARlF1XQKyGWqEh/vqaVHEREQlB2UaVv7Q2g5CAiEpIOFlb41lMJlBxEREJSdlEFfZUcRETkiPKqWgrLq3VbSURE/mvlnnwARvVJ9C0GJQcRkRCzaGseURHGycN6+haDkoOISIhZu6+QUX0TSYiN8i0GJQcRkRCzKbuYE/p18zUGJQcRkRByqKSS3OJKRvf1r70BlBxEREJKVk4JACN8bIwGJQcRkZCSlRtIDsNS4n2NQ8lBRCSEbMsppUt0JP2Tuvgah5KDiEgIycotYWhKPBER5mscSg4iIiFkW04Jw3sn+B2GkoOISKgor6plX0E5w1KUHEREJGhbsDFaNQcRETlq29GeSkoOIiIStC2nhAiDtF5d/Q5FyUFEJBTU1TkWbMllWEoCsVGRfoej5CAiEgrW7itkzd5Cvn7aEL9DAZQcRERCwopdgTkcZo5K8TmSACUHEZEQsHhbHgO6d6Gfz09GH6HkICLisy0Hi3l/Uw4XTejvdyhHeZYczGygmX1gZhvNbL2Z3dHEPjPNrNDMVgVfv/AqHhGRUPXL19bTo2sMN5yS5ncoR3k5zVAN8APnXKaZJQIrzOwd59yGBvstdM5d6GEcIiIha39BOZ9sO8S3zhpB725xfodzlGc1B+fcAedcZnC5GNgIDPDqfCIi4eiPb28mJiqCKyan+h3Kp7RLm4OZpQETgaVNbJ5uZqvN7E0zO7E94hERCRUrduVz1ujeDEz2/8G3+jxPDmaWAMwGvuucK2qwORMY7Jw7CXgAeKWZY9xiZhlmlpGbm+ttwCIi7aSiupbdh8sY0dvfWd+a4mlyMLNoAonhGefcnIbbnXNFzrmS4PI8INrMejWx36POuXTnXHpKSmj0ARYR+bw2ZRfjHIz0eUrQpnjZW8mAx4GNzrn7mtmnb3A/zGxqMJ5DXsUkIhJKZq/YS0xUBNOH9fQ7lEa87K10KnANsNbMVgXX/RQYBOCcewS4HLjNzGqAcuAq55zzMCYRkZDgnGP++my+eEIfkuNj/A6nEc+Sg3NuEXDMee6ccw8CD3oVg4hIqNqWW0JOcSWnjWh0Jz0k6AlpEREfrNsX6J8zaVAPnyNpWouSg5ndYWbdLOBxM8s0s3O8Dk5EpKPalhs6czc0paU1h68Hu6GeA6QANwD3ehaViEgHl5VTwuCe8SExd0NTWpocjrQdnA/8yzm3muO0J4iISNNq6xzLd+Yzpn83v0NpVkuTwwoze5tAcpgfHCupzruwREQ6pro6x/3vbSWvpJILxvXzO5xmtbS30o3ABGC7c67MzJIJ3FoSEZFWeHHFHv763lbOHJXCF8f08TucZrW05jAd2OycKzCzrwE/Awq9C0tEpONxzvHcsj0M6RXPP6+fQnRk6HYYbWlkDwNlZnYS8CNgF/Bvz6ISEemA5q3NZtWeAm6aMYTg4BAhq6XJoSb45PLFwP3OufuB0BsMREQkRJVX1fLbeRs5oV83rpoyyO9wjqulbQ7FZnYngeEwZphZJBDtXVgiIh3LQwuy2FdQzp9nTSAyIrRrDdDymsMsoJLA8w7ZBCbt+YNnUYmIdCA1tXU88fFOLhjXj6lDkv0Op0ValByCCeEZIMnMLgQqnHNqcxARaYE1+woprqzhvHF9/Q6lxVo6fMaVwDLgCuBKYKmZXe5lYCIiHcXirDwApg8NvaG5m9PSNoe7gCnOuRwAM0sB3gVe8iowEZGOYlFWHmP6daNnQqzfobRYS9scIo4khqBDrfisiEinlVNcwfKd+ZwxKrxmsWxpzeEtM5sPPBd8PwuY501IIiIdx/x12dTWOS6bNMDvUFqlRcnBOfdDM7uMwOxuBjzqnHvZ08hERDqA1XsL6ZUQw7CUBL9DaZUWzwTnnJsNzPYwFhGRDmf9/iJO7J8U8k9EN3TM5GBmxUBTczob4JxzoTverIiIz+rqHNtySjg9RKcCPZZjJgfnnIbIEBH5jHKKK6mqrWNgcmjO9nYs6nEkIuKRvfllAKT26OJzJK2n5CAi4pG9+eUApPZQzUFERII+zsqjS3Skag4iIhKQV1LJq6v2c/nkVOKiI/0Op9Va3JW1oztcWkV+WVWL+iKXV9VSVFFNTGQEc1buY+6qfZRU1jCidyI/OGckSV2j6Z0Y96nP1NTWERXCsz6JSNt6duluqmrruP7UNL9D+UyUHICsnBKuenQJeSWVPHz1JE4Z3oukLk1PV1FRXcv5f13IjrzSo+tG901kW24p23JLeWt9NtGRxoXj+/Ojc0exv6CC37yxge15pVw3PY3bzxxOTFTLk0RtnSNzdz6Zu/Lp1iWaWekDiQiDseBFOrPKmlqeWrKLmaNSwu7htyM6XXIor6rl5ZX7uHxyKjFRETy+aAe/nbeRmMgIoiON257JpFdCDJdMHMDgnvFU1QS6oR2ZCPyO/6xkR14piXFRFFfU8OBXJ3Lh+P68seYAszP3suVgMXHRkby8ch/b80rJLapgf2EF/ZPiuP+9rcxdvZ9xA5KIj41k1pRBTBjY/VPxVVTXEmHGq6v28bcPsth5qOxT259dupu/XzOZ/t3D7x6mSGfx5tpscosrueHUIX6H8plZYPbP8JGenu4yMjJa/bnC8mreWHOAXYdK+ftH2wG45fSh/OvjHUwb0pO7LxpDflk1Nz6xnKKKmmMe6/Yzh/G9s0ey5WAJY/o3/RzgvLUH+N7zq6isqeP3l43nyikD+WBTDnfOWUt2UQVdoiOprq2jR3wMXWMi6d4lmn0FFeSVVNIrIZa8kkoAvjJ1EFPSejBzVG8Wbs3lrpfXUVJZw6g+ifRJimPmyBSunT6YdfuLiI+JZEQfPZoi4rcfvLCaD7fksPyus0PmyWgzW+GcS2/x/p0lOczJ3Mv3X1jdaP2J/bvxxA1TSUn871C6T32yk2U787lqykASYqNYlJXHE4t3EhcdgXPwyu2n0qsFQ+/mB9sxhtarVlbV1FFeXQvAH+ZvorC8huKKanYdKmNA9y4sCvZuGN0vkb/MmsDgnvGfOub7mw7yr493sje/nOKKavJKqugaE0lZVeCYU9J68PDXJrcoPhFpe8t3HuaKRz7hrNG9+ef1U/wO5yglh2ZU1dQx8mdvAvB//zOGq6cNZm9+GYN7xrdoPlfnXLv8BVBVU9eqNok5mXt5askuzhrVm52HypiduZeByV347SXjmDEivIYIFgl3C7fmcs3jywD4yXmjufWMYT5H9F9KDsewdPshHv1oO3+44iSS42PaOLLQsGT7Ie56eS07D5VxZXoql05KZdyApLDsSicSTmrrHBc9uIjSyhoe/tpkhqUktOoPPa8pOQiHS6v49esbeHnlvqPreifGMmVIMqeP6MXA5K6cMiz8BgITCVXbcku4/ZlMNmUXc9+VJ3HppFS/Q2pEyUGOOlhUweJtebywfC/5ZVXkFFdyuLQKgPPH9eWXF439VFuLiLTeoZJKzr7vQyLM+PG5o7lyykC/Q2pSa5NDp+vK2pn06RbHJRNTuWRi4K+YsqoaFmcd4p0NB3ll1T4+3PwBM0akcN+sk+gao18Fkc/iuWW7yS+rZt53ZjTbezEcqebQSX24JZc7Z69hf2EFZoFRI285fRhXhOmj/iJ+KK2sYcbvP2DsgCT+/fWpfodzTKo5SIucMTKFxXd+gYVbc5m3Npv3Nx3k56+s48H3t3JCv26cNbo3V0weSJcYJQqR5jy9ZBeHS6v47tkj/A6lzSk5dHIzRqQwY0QKzo3lk+2H+OP8zSzYnMuCzbn8+5Nd/GXWBMYOSPI7TJGQ9Nqa/Uwe3INJg3r4HUqb86yflZkNNLMPzGyjma03szua2MfM7K9mlmVma8xsklfxyLGZGacM68Xs204h6zfn8dDVkygsr+bCBxZx6r3v8+d3tlBbF163IEW8dKikkvX7izhjZMd8nsjLmkMN8APnXKaZJQIrzOwd59yGevucB4wIvqYBDwf/FZ+YGVGRxvnj+nHqsF68uGIPH2flcf97W8ncnc+Zo3rTv3scqT26qkYhndrLK/fhHEfHXetoPEsOzrkDwIHgcrGZbQQGAPWTw8XAv12gVXyJmXU3s37Bz4rPkrpGc9OModw0YyhPLdnFr1/fwMKteQBEGNx35QRmjkqhps5puA7pVOrqHE8t2UX64B6c0K/j9FCqr13aHMwsDZgILG2waQCwp977vcF1Sg4h5pqTB3P5pFRyiiuYtzabfyzcznefXwVAcnwMr337NAZopFjpJD7amsuuQ2V8/4sj/Q7FM54/221mCcBs4LvOuaKGm5v4SKMb22Z2i5llmFlGbm6uF2FKC3SJiWRwz3humzmMjLvO5rFr0zlvbF8Ol1Zx0QOLeHjBNvYcLjv+gUTCWFlVDX+Yv5leCbGcN7af3+F4xtPnHMwsGngdmO+cu6+J7X8HFjjnngu+3wzMPNZtJT3nEHq2Hizm9mcz2XKwBICRfRKYOLAHh0qrGNU3gVtOH9bs5Eki4eZ3b23i4QXb+Me16WHV3hAyzzlYYAjTx4GNTSWGoLnAt8zsPwQaogvV3hB+RvRJZP53T2dHXilvrsvmrXXZvL0hm7joSN7deJBnl+7m5xeOIcKMPYfLeH9zDtecPJhLJg4ImbHuRVrq/Y05nD4yJawSw2fhWc3BzE4DFgJrgbrg6p8CgwCcc48EE8iDwLlAGXCDc+6Y1QLVHMJLxs7DXP7IJ01umzYkmXsuHfep+S5EQllNbR0n/OItvn7aEO487wS/w2mVkKk5OOcW0XSbQv19HHC7VzGI/9LTknnx1umUVNRQVlXLlLQe9EqI5fmMPdwzbyNXPPIJf7lqguaekLCw+3AZ1bWOEb07/oyLekJaPDclLbnRuq9MHcS0Iclc969lXPP4MgZ078L0YT35xulDNdWphKytOYF2teG9O35tV8lBfDM0JYF3v38GTy/ZzcKtubyx5gDz1h7gzvNPoEfXQAP2heP7+xylyH9lKTmItI/YqEhuPG0IN542hOzCCr7x9Ap+/sq6o9sPFlVywbh+9E2K8zFKkYCsnBL6J8WRENvxvzo7fgklbPRNiuOFb5zMextziIwwHvogi1+/voF75m3kZxecwDXT01o037eIF+rqHMt3HmZ0B30iuiElBwkpsVGRnD8u8GDR2Sf04dVV+3howTbufm0Db284yJh+3egSE8nYAUmcM6YPZkZlTS0xkRHqFiueytydz978cn5wTsd9Kro+JQcJWZERxqWTUrlk4gBeyNjDL15dz+Jth45uH9IrnrziSoora5gxohcPfnWSHrYTzyzbeRiAmSN7+xxJ+1BykJBnZsyaMoizRvehrKqGLjGR3DNvEwu35nHu2L5U19bx6ur9XPDXhfzpipOYNrSn3yFLB7R8x2GG9IqnR3yM36G0CyUHCRspibFAYPTXP8+a8KltV6YP5OZ/ZzDr0SV8c+Ywvn3WCM1iJ23moy25fLA5l9vPHOZ3KO3G84H3RNrDKcN78e4PzmDy4B48tGAblz68mJrauuN/UKQF/rN8N8nxMdzxhc7R3gBKDtKB9Evqwku3Tueu809g44EiZv5xAfe+uYlDJZV+hyZhbtmOwERXMVGd5ytTt5WkQzEzbpoxhNjoCF7M2MsjH24jc1c+/7xhSqfomy5tr6CsirySSkb17fgPvtXXedKgdBpmxrXT03jt26fxl1kTyNh1mDN+/wGPfrSN8qpav8OTMHPkqejOMJ5SfUoO0qF9eeIA5nzzVEb1TeS38zZx878zmL8+m4pqJQlpmVV7CgAY3U/JQaRDmTCwO8/efDI/OncUi7Ly+MZTK5j16BIKy6v9Dk3CwMKteQxLiadfUueaBlfJQTqNb84czrKffoE/XXESG/YXMunX7/Cd51ZSVlXjd2gSoiqqa1m641CnHFJeLXTSqfTuFsdlk1NJTojhsYXbmbt6P/llVdx72XgGdO9cfxnK8WXszKeiuo4ZI3r5HUq7U3KQTunMUb05c1Rv/rNsN7+Yu55T732fSyYO4Itj+nDW6N7EResBOoEXV+whMS6K6cM631P3Sg7SqV01dRADk7vys1fW8f6mHF5euY9eCbGc2L8b104fzFmje2tAv05qW24Jb6w5wDXTB9M1pvN9VXo2h7RXNIe0eKWyppYPN+fytwXbyCmq4EBhBScN7M7lk1M5c1QKPbrGEK9nJTqFiupazvzjAg6VVDH/e6czpFe83yF9biEzh7RIuImNiuScE/tyzol9Ka+q5XdvbeLJT3ayOtiVMTLCuOfScVyZPtDfQMVzzyzdzYHCCh67Nr1DJIbPQjUHkWPYV1BObnEl7244yAebc1i/v4gLxvfjG6cPZXxqd7/DEw9k7DzM1x5fysSBPXjulpP9DqfNtLbmoOQg0kLlVbX8Yf5mnl22i4rqOtJ6dqV3Yhynj+zFuWP7MryTPUHbER0ureIrjy7hcFkVr9x+aofqwabkIOKxw6VVzMncy5LthzhQWMH6/UVEWOBp7FnpA5k6JFmN2GHIOceNT2bw4ZZc/jxrAhed1N/vkNqU2hxEPJYcH8NNM4Zy04yhABwsquCv721l7ur9zMncx20zh/Hjc0f7HKW01tsbDvL+phx+dsEJHS4xfBZ6Qlrkc+rTLY7fXDKO5XedzXlj+/Lwgm28tGKv32FJKz34fhZDU+K5/pQ0v0MJCUoOIm0kLjqSn104hpNSk/jfF1fzf6+uo7hC4zeFgz2Hy1i7r5Crpw0mKlJfi6DkINKmBnTvwuzbTuGKyak8+ckuTrnnfRZszvE7LDmON9cdAOC04Z1vmIzmKDmItLGoyAjuuXQcj12bTmpyV25/JpNbn1rB4m15hFsHkM6goKyKP769hdF9ExnRu3NN6HMsapAW8UBUZARnj+nD6H6J3D13PYu35fHW+mxOHd6Tey8dz8Dkrn6HKEEfbc2jqqaO31wylogI9TI7QjUHEQ+l9ujKY9dNYeGPz+KHXxrFil35XPvPZewvKPc7NCHQffXpJbvolRDLhIE9/A4npCg5iLSDpC7R3H7mcJ6+cRr7C8r5/Vub/A5JgMzd+SzbcZhvnTmMSNUaPkXJQaQdpaclc/OMobyyaj8fqKHaV+VVtXznuVUkxEZxucbLakTJQaSdfeus4Yzsk8B3/7OKF5bvYeOBIr9D6pQydh1mX0E5d190IgkabbcRJQeRdhYXHck/rk0nNiqCH81ew3n3L+TeN3WbqT3tyCvlT29vITLCOHdsX7/DCUlKlyI+GNwznqdunMaynYdZu7eARz7cRveu0dx6xjC/Q+vwcosr+cqjS8guquDK9FTVGpqhqyLik1F9ExnVN5Ga2oEUlddw75ubKK2s4Y4vjNBTuh7ZnF3MrU+vIL+sivuvmsCF4zWGUnOUHER8FhUZwQNfncj3X1jNA+9nkbk7ny9PGEB6WnKnnWjGCyt353PJQ4sBePamaZyip6GPybPkYGb/BC4EcpxzY5vYPhN4FdgRXDXHOfcrr+IRCWXRkRE88JWJnDa8J3fP3cDHWYeIijCuSB/IWaN7c9rwXnSJifQ7zLD2+KLAV82DX52oxNACXtYcngAeBP59jH0WOucu9DAGkbAya8ogzhvXjwMFFfy/NzbwYsYenlu2m8S4KP5zy8mc2D/J7xDDzp7DZWTsOsyb67K5ecYQ3UpqIc+Sg3PuIzNL8+r4Ih1Vt7houvWN5qkbp1FWVcP89dn85o2N3PxkBndfdCLnnKjeNS1RWF7Nvz7ewaMfbaesqpb+SXHceNpQv8MKG363ek03s9Vm9qaZnehzLCIhp2tMFJdMTOXx66YQFRnBLU+t4Pnlu/0OK+Q557jm8aX85d2tTElL5lcXn8ibd5xO36Q4v0MLG55OExqsObzeTJtDN6DOOVdiZucD9zvnRjRznFuAWwAGDRo0edeuXZ7FLBKqqmvr+PoTy1my/RBj+nWje9cYHv7aJLrGqF9JfSWVNdz39hb++fEOfnXxiVw7Pc3vkEJCSM0hfazk0MS+O4F051zesfbTHNLSmRWUVfGDF1bz3qbA0BtdoiMZmhLPyUN78r/njFKjNXDXy2t5ZuluvjC6N3+7ehJx0bomEEZzSJtZX+Cgc86Z2VQCt7gO+RWPSDjo3jWGx6+fAsCyHYeZt/YAa/YW8PiiHXyclcdj16WT2qPzDge+5WAxzy3bzfWnpHH3RbpT/Xl42ZX1OWAm0MvM9gL/B0QDOOceAS4HbjOzGqAcuMppJhSRFps6JJmpQ5IBWLA5h28/t5LTfvcBv7lkLFdPG+xzdO2rorqW9fuLeG31fqIiI7jjC03eoZZW8PS2khd0W0mkaWv3FvLDl1azKbuYC8b341cXnUjPhFi/w/JcYVk133ouk4VbA3ekzx/Xl4eunuxzVKEnbG4riUjbGpeaxOzbTuFHL63hrXXZbNxfxM2nD2Xy4B6M7JPod3ieeGH5Hn40ew0A/ZLimDYkmZ+cd4LPUXUMSg4iHUh8bBR/u3oSczL38v0XVnPnnLUAnH1CH35y3mhSe3TpUA2089YdAGDut05lfGp3n6PpWJQcRDqgSyelUuegqLyajQeKeClzL+9uPMgZI1N44oYpmIX/rGcllTUs23GYa04erMTgASUHkQ7q8smpR5evSB/I/e9t4cMtuTz84Ta+OXO4j5F9fkUV1Zz3l4WUVdVy6aQBfofTIfn9hLSItIOpQ5J5+sZpXDyhP79/azP/+ngHlTW1fof1mRSUVfHNpzPZV1DOd74wgomDevgdUoekmoNIJ2Fm/O6y8eSVVPLL1zbwh/mbKauqpWtMJJOCX7DDeydw42lDSOoaTUJMFBERoXX7qaCsii//7WP2F1Twh8vHc4XmfvaMurKKdDLOORZl5fHk4l28u/EgAAmxUZRU1nxqvwiDa6en8YsLx4REkticXcxP5qxh7d5Cnr355KPPeEjLqCuriByTmTFjRAozRqRw5I9DM2NbbgmLtx1i4ZZcRvRJYOXuAp5YvJN1+wr5/eXjGZqS4FvMh0uruO6fyyiuqOZPV56kxNAOVHMQkSY553ghYw/3vLmJ+Jgofn4iOdvWAAAK/klEQVThCZw7tl+7x1FVExhwcNmOw8z55imMHaA5LT6L1tYc1CAtIk0yM2ZNGcTj16WTW1LJrU9nctOTGazYdbjdYthXUM4PX1rNoqw8fnPJWCWGdqTbSiJyTJMHJ7Py51/k169v4OWV+3h340EunTSA314yzrMH6urqHD+evYYXV+wF4IdfGqXG53am5CAixxUfG8W9l43nf780ip/OWcuczH1U1zp+ev5o+iV1aZNzFFVU8+/FO4mKjCArp4SXVuzlpIHd+dKJfbjtjGFtcg5pOSUHEWmxXgmxPHptOve9vZkHPshi/vpsxvbvxuCe8VwxOZWTh/Zk9d4CnvpkF7OmDGTa0J4tOu7b67P5zn9WUlFdd3Td9aek8X//M6ZDPM0djtQgLSKfyY68Un48ew2bDhRRVBHoBpsYG0VxvS6xkwf34CtTB1FYXs2irbnU1DmGpSQwbUgyZ4/pQ3ZhBc8v38ODH2QB8Osvj2VqWjL7C8o5Y2RKSHSh7ShCaiY4Lyg5iISW2jrH0h2HOFBQwaKsPE5KTWLS4B68umo/b649wP7CCgAG9+xKQmwUWw4WU1376e+dmMgI7pt1EheM66eagkeUHEQkZFTX1vH2+oOM7JPAiOCw4WVVNTy9ZBfvbDhIeloyo/smMmNECsnxMT5H27EpOYiISCN6zkFERD43JQcREWlEyUFERBpRchARkUaUHEREpBElBxERaUTJQUREGlFyEBGRRsLuITgzKwS21luVBBQ2sdwLyGvDU9c/9ufdt7ntTa0/3rqG24+87+zlh7a9Bn6Vv6n1x3ofzuVvblu4lb8l+3+e/wOftfyDnXMpxw67HudcWL2AR5t732A5w8vzfp59m9ve1PrjrWvuenT28rf1NfCr/Mcr47GuR7iVv6W/A6Fe/rb+HfCr/OF4W+m1Y7xvuM3L836efZvb3tT646071vVoSyp/2+3bmvI3td6P/wPtUf7mtoVb+Vuy/+f5P9Au5Q+720otZWYZrhXjiHQ0nb38oGug8qv8n6f84VhzaKlH/Q7AZ529/KBroPJ3bp+r/B225iAiIp9dR645iIjIZ6TkICIijSg5iIhII50yOZjZTDNbaGaPmNlMv+Pxg5nFm9kKM7vQ71jam5mdEPzZv2Rmt/kdjx/M7Mtm9g8ze9XMzvE7nvZmZkPN7HEze8nvWNpL8P/8k8Gf+9XH2z/skoOZ/dPMcsxsXYP155rZZjPLMrOfHOcwDigB4oC9XsXqhTYqP8CPgRe8idI7bVF+59xG59ytwJVA2HV1bKNr8Ipz7mbgemCWh+G2uTYq/3bn3I3eRuq9Vl6LS4GXgj/3i4578LZ6grC9XsDpwCRgXb11kcA2YCgQA6wGxgDjgNcbvHoDEcHP9QGe8btMPpT/bOAqAl8MF/pdpvYuf/AzFwGLga/6XSa/rkHwc38CJvldJh/L/5Lf5WnHa3EnMCG4z7PHO3YUYcY595GZpTVYPRXIcs5tBzCz/wAXO+fuAY512yQfiPUiTq+0RfnN7EwgnsAvTLmZzXPO1XkaeBtpq5+/c24uMNfM3gCe9S7ittdGvwMG3Au86ZzL9DbittXG3wFhrTXXgsBdklRgFS24axR2yaEZA4A99d7vBaY1t7OZXQp8CegOPOhtaO2iVeV3zt0FYGbXA3nhkhiOobU//5kEqtixwDxPI2s/rboGwLcJ1CCTzGy4c+4RL4NrB639HegJ/AaYaGZ3BpNIR9Hctfgr8KCZXUALhtnoKMnBmljX7NN9zrk5wBzvwml3rSr/0R2ce6LtQ/FFa3/+C4AFXgXjk9Zeg78S+LLoKFpb/kPArd6F46smr4VzrhS4oaUHCbsG6WbsBQbWe58K7PcpFj+o/J27/KBr0NnLX1+bXIuOkhyWAyPMbIiZxRBobJ3rc0ztSeXv3OUHXYPOXv762uRahF1yMLPngE+AUWa218xudM7VAN8C5gMbgRecc+v9jNMrKn/nLj/oGnT28tfn5bXQwHsiItJI2NUcRETEe0oOIiLSiJKDiIg0ouQgIiKNKDmIiEgjSg4iItKIkoN4zsxK2uEcF7VwqPK2POdMMzvlM3xuopk9Fly+3sxCYnwvM0trOPRzE/ukmNlb7RWT+EfJQcKGmUU2t805N9c5d68H5zzW+GMzgVYnB+CnwAOfKSCfOedygQNmdqrfsYi3lBykXZnZD81suZmtMbNf1lv/igVmpltvZrfUW19iZr8ys6XAdDPbaWa/NLNMM1trZqOD+x39C9zMnjCzv5rZYjPbbmaXB9dHmNlDwXO8bmbzjmxrEOMCM/utmX0I3GFm/2NmS81spZm9a2Z9gsMk3wp8z8xWmdmM4F/Vs4PlW97UF6iZJQLjnXOrm9g22MzeC16b98xsUHD9MDNbEjzmr5qqiVlglq83zGy1ma0zs1nB9VOC12G1mS0zs8RgDWFh8BpmNlX7MbNIM/tDvZ/VN+ptfgU47kxiEub8nqxCr47/AkqC/54DPEpg1MgIAhOvnB7clhz8twuwDugZfO+AK+sdayfw7eDyN4HHgsvXAw8Gl58AXgyeYwyBse0BLicwRHcE0JfAfB6XNxHvAuCheu978N/RBG4C/hRcvhv433r7PQucFlweBGxs4thnArPrva8f92vAdcHlrwOvBJdfB74SXL71yPVscNzLgH/Ue59EYKKX7cCU4LpuBEZi7grEBdeNADKCy2kEJ40BbgF+FlyOBTKAIcH3A4C1fv9e6eXtq6MM2S3h4Zzga2XwfQKBL6ePgO+Y2SXB9QOD6w8BtcDsBsc5Mtz6CgLzMjTlFReYp2KDmfUJrjsNeDG4PtvMPjhGrM/XW04FnjezfgS+cHc085mzgTFmR0dM7mZmic654nr79ANym/n89HrleQr4fb31Xw4uPwv8sYnPrgX+aGa/A153zi00s3HAAefccgDnXBEEahkExvWfQOD6jmzieOcA4+vVrJII/Ex2ADlA/2bKIB2EkoO0JwPucc79/VMrA5PvnA1Md86VmdkCAvN7A1Q452obHKcy+G8tzf8OV9Zbtgb/tkRpveUHgPucc3ODsd7dzGciCJSh/BjHLee/ZTueFg985pzbYmaTgfOBe8zsbQK3f5o6xveAg8BJwZgrmtjHCNTQ5jexLY5AOaQDU5uDtKf5wNfNLAHAzAaYWW8Cf5XmBxPDaOBkj86/CLgs2PbQh0CDckskAfuCy9fVW18MJNZ7/zaB0TABCP5l3tBGYHgz51lMYHhlCNzTXxRcXkLgthH1tn+KmfUHypxzTxOoWUwCNgH9zWxKcJ/EYAN7EoEaRR1wDYE5hxuaD9xmZtHBz44M1jggUNM4Zq8mCX9KDtJunHNvE7gt8omZrQVeIvDl+hYQZWZrgF8T+DL0wmwCE6GsA/4OLAUKW/C5u4EXzWwhkFdv/WvAJUcapIHvAOnBBtwNNDHTmHNuE4GpORMbbgt+/obgdbgGuCO4/rvA981sGYHbUk3FPA5YZmargLuA/+ecqwJmAQ+Y2WrgHQJ/9T8EXGdmSwh80Zc2cbzHgA1AZrB769/5by3tTOCNJj4jHYiG7JZOxcwSnHMlFphDeBlwqnMuu51j+B5Q7Jx7rIX7dwXKnXPOzK4i0Dh9sadBHjuej4CLnXP5fsUg3lObg3Q2r5tZdwINy79u78QQ9DBwRSv2n0ygAdmAAgI9mXxhZikE2l+UGDo41RxERKQRtTmIiEgjSg4iItKIkoOIiDSi5CAiIo0oOYiISCNKDiIi0sj/B/GnSvAJ1C43AAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<matplotlib.figure.Figure at 0x23d8eed3710>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.lr_find(lrs/1000)\\n\",\n    \"learn.sched.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"eed5344e189344b0b4b2273634cd54b7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                                                                              \\n\",\n      \"    0      0.863994   0.792711   0.726479  \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.7927107, 0.7264793882978723]\"\n      ]\n     },\n     \"execution_count\": 40,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lrs, 1, cycle_len=1, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"source\": [\n    \"## Simplenet\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"stats = (np.array([ 0.4914 ,  0.48216,  0.44653]), np.array([ 0.24703,  0.24349,  0.26159]))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tfms = tfms_from_stats(stats, sz, aug_tfms=[RandomFlip()], pad=sz//8)\\n\",\n    \"data = ImageClassifierData.from_csv(PATH, 'train', PATH/'train.csv', tfms=tfms, bs=bs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 109,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"class SimpleConv(nn.Module):\\n\",\n    \"    def __init__(self, ic, oc, ks=3, drop=0.2, bn=True):\\n\",\n    \"        super().__init__()\\n\",\n    \"        self.conv = nn.Conv2d(ic, oc, ks, padding=(ks-1)//2)\\n\",\n    \"        self.bn = nn.BatchNorm2d(oc, momentum=0.05) if bn else None\\n\",\n    \"        self.drop = nn.Dropout(drop, inplace=True)\\n\",\n    \"        self.act = nn.ReLU(True)\\n\",\n    \"        \\n\",\n    \"    def forward(self, x):\\n\",\n    \"        x = self.conv(x)\\n\",\n    \"        if self.bn: x = self.bn(x)\\n\",\n    \"        return self.drop(self.act(x))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 110,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"net = nn.Sequential(\\n\",\n    \"    SimpleConv(3, 64),\\n\",\n    \"    SimpleConv(64, 128),\\n\",\n    \"    SimpleConv(128, 128),\\n\",\n    \"    SimpleConv(128, 128),\\n\",\n    \"    nn.MaxPool2d(2),\\n\",\n    \"    SimpleConv(128, 128),\\n\",\n    \"    SimpleConv(128, 128),\\n\",\n    \"    SimpleConv(128, 256),\\n\",\n    \"    nn.MaxPool2d(2),\\n\",\n    \"    SimpleConv(256, 256),\\n\",\n    \"    SimpleConv(256, 256),\\n\",\n    \"    nn.MaxPool2d(2),\\n\",\n    \"    SimpleConv(256, 512),\\n\",\n    \"    SimpleConv(512, 2048, ks=1, bn=False),\\n\",\n    \"    SimpleConv(2048, 256, ks=1, bn=False),\\n\",\n    \"    nn.MaxPool2d(2),\\n\",\n    \"    SimpleConv(256, 256, bn=False, drop=0),\\n\",\n    \"    nn.MaxPool2d(2),\\n\",\n    \"    Flatten(),\\n\",\n    \"    nn.Linear(256, 10)\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 111,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"bm = BasicModel(net.cuda(), name='simplenet')\\n\",\n    \"learn = ConvLearner(data, bm)\\n\",\n    \"learn.crit = nn.CrossEntropyLoss()\\n\",\n    \"learn.opt_fn = optim.Adam\\n\",\n    \"learn.unfreeze()\\n\",\n    \"learn.metrics=[accuracy]\\n\",\n    \"lr = 1e-3\\n\",\n    \"wd = 5e-3\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 64,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6c2e6102551b4bd5bfedb8195031c800\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                                                                                       \\r\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<matplotlib.figure.Figure at 0x23d8e604160>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"#sgd mom\\n\",\n    \"learn.lr_find()\\n\",\n    \"learn.sched.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 76,\n   \"metadata\": {\n    \"collapsed\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"0118cead54d64daaae42f42517915865\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                                                                                       \\r\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<matplotlib.figure.Figure at 0x23d8e73a630>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"#adam\\n\",\n    \"learn.lr_find()\\n\",\n    \"learn.sched.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 112,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"39fb789c3a4645fda163193ed43c1a2f\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=20), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                                                                              \\n\",\n      \"    0      1.464019   1.812134   0.324219  \\n\",\n      \"    1      1.299797   1.872144   0.301779                                                                              \\n\",\n      \"    2      1.152769   1.641428   0.405336                                                                              \\n\",\n      \"    3      1.06013    1.531731   0.46875                                                                               \\n\",\n      \"    4      1.001071   1.344982   0.546875                                                                              \\n\",\n      \"    5      0.957563   1.159598   0.629405                                                                              \\n\",\n      \"    6      0.895986   1.152674   0.619265                                                                              \\n\",\n      \"    7      0.852257   1.277312   0.607713                                                                              \\n\",\n      \"    8      0.844254   1.373495   0.538813                                                                              \\n\",\n      \"    9      0.784301   0.972733   0.717586                                                                              \\n\",\n      \"    10     0.751162   0.859369   0.741606                                                                              \\n\",\n      \"    11     0.735842   0.921104   0.729555                                                                              \\n\",\n      \"    12     0.690585   0.966144   0.706034                                                                              \\n\",\n      \"    13     0.662635   0.824769   0.759142                                                                              \\n\",\n      \"    14     0.626122   0.784435   0.775598                                                                              \\n\",\n      \"    15     0.61732    0.772561   0.772689                                                                              \\n\",\n      \"    16     0.570246   0.727107   0.785322                                                                              \\n\",\n      \"    17     0.526993   0.718699   0.786652                                                                              \\n\",\n      \"    18     0.499946   0.645241   0.812916                                                                              \\n\",\n      \"    19     0.499634   0.630276   0.816572                                                                              \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.630276, 0.8165724734042553]\"\n      ]\n     },\n     \"execution_count\": 112,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 1, wds=wd, cycle_len=20, use_clr=(32,10))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 78,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"7f8e07243c194ada863b64921bf0ada3\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=5), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                                                                              \\n\",\n      \"    0      1.603266   2.02473    0.271941  \\n\",\n      \"    1      1.326654   1.682021   0.391955                                                                              \\n\",\n      \"    2      1.124686   1.564738   0.427776                                                                              \\n\",\n      \"    3      0.963391   1.164936   0.603225                                                                              \\n\",\n      \"    4      0.82219    1.19409    0.578291                                                                              \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1.1940901, 0.5782912234042553]\"\n      ]\n     },\n     \"execution_count\": 78,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 1, wds=wd, cycle_len=5, use_clr=(32,10))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 79,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('0')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 104,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"c0051276049a4827b6f5e82a8d4170d6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                                                                              \\n\",\n      \"    0      0.819311   1.080679   0.636386  \\n\",\n      \"    1      0.90712    1.294629   0.547457                                                                              \\n\",\n      \"    2      0.717722   0.938504   0.700881                                                                              \\n\",\n      \"    3      0.898441   1.263396   0.586187                                                                              \\n\",\n      \"    4      0.803364   1.037912   0.666888                                                                              \\n\",\n      \"    5      0.668088   0.855235   0.737616                                                                              \\n\",\n      \"    6      0.616654   0.754756   0.770778                                                                              \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.75475585, 0.7707779255319149]\"\n      ]\n     },\n     \"execution_count\": 104,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 3, cycle_len=1, cycle_mult=2, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 105,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('1')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 106,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6d693d920dcb482fbd0759c4589348e5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/html\": [\n       \"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\\n\",\n       \"  that the widgets JavaScript is still loading. If this message persists, it\\n\",\n       \"  likely means that the widgets JavaScript library is either not installed or\\n\",\n       \"  not enabled. See the <a href=\\\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\\\">Jupyter\\n\",\n       \"  Widgets Documentation</a> for setup instructions.\\n\",\n       \"</p>\\n\",\n       \"<p>\\n\",\n       \"  If you're reading this message in another frontend (for example, a static\\n\",\n       \"  rendering on GitHub or <a href=\\\"https://nbviewer.jupyter.org/\\\">NBViewer</a>),\\n\",\n       \"  it may mean that your frontend doesn't currently support widgets.\\n\",\n       \"</p>\\n\"\n      ],\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=10), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                                                                              \\n\",\n      \"    0      0.833685   1.148864   0.620928  \\n\",\n      \"    1      0.819332   1.212562   0.608627                                                                              \\n\",\n      \"    2      0.803363   0.984564   0.697224                                                                              \\n\",\n      \"    3      0.790965   1.016013   0.702045                                                                              \\n\",\n      \"    4      0.733683   0.902306   0.735622                                                                              \\n\",\n      \"    5      0.698549   0.878661   0.732131                                                                              \\n\",\n      \"    6      0.648197   0.783731   0.758311                                                                              \\n\",\n      \"    7      0.597658   0.738099   0.782912                                                                              \\n\",\n      \"    8      0.557584   0.646611   0.80768                                                                               \\n\",\n      \"    9      0.507423   0.603345   0.822058                                                                              \\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.60334516, 0.8220578457446809]\"\n      ]\n     },\n     \"execution_count\": 106,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 1, wds=wd, cycle_len=10, use_clr=(32,10))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 108,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('2')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Fin\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.4\"\n  },\n  \"toc\": {\n   \"nav_menu\": {\n    \"height\": \"266px\",\n    \"width\": \"252px\"\n   },\n   \"number_sections\": true,\n   \"sideBar\": true,\n   \"skip_h1_title\": false,\n   \"toc_cell\": false,\n   \"toc_position\": {},\n   \"toc_section_display\": \"block\",\n   \"toc_window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/cifar10/fastai/cifar10.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## CIFAR 10\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"%matplotlib inline\\n\",\n    \"%reload_ext autoreload\\n\",\n    \"%autoreload 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from fastai.conv_learner import *\\n\",\n    \"PATH = \\\"data/cifar10/\\\"\\n\",\n    \"os.makedirs(PATH,exist_ok=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\\n\",\n    \"stats = (np.array([ 0.4914 ,  0.48216,  0.44653]), np.array([ 0.24703,  0.24349,  0.26159]))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def get_data(sz,bs):\\n\",\n    \"    tfms = tfms_from_stats(stats, sz, aug_tfms=[RandomFlip()], pad=sz//8)\\n\",\n    \"    return ImageClassifierData.from_paths(PATH, val_name='test', tfms=tfms, bs=bs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"bs=128\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true\n   },\n   \"source\": [\n    \"### Look at data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"data = get_data(32,4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"x,y=next(iter(data.trn_dl))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(data.trn_ds.denorm(x)[0]);\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(data.trn_ds.denorm(x)[1]);\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true\n   },\n   \"source\": [\n    \"## Initial model\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/home/gezi/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/models/cifar10/resnext.py:73: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_.\\n\",\n      \"  init.kaiming_normal(m.weight)\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from fastai.models.cifar10.resnext import resnext29_8_64\\n\",\n    \"\\n\",\n    \"m = resnext29_8_64()\\n\",\n    \"bm = BasicModel(m.cuda(), name='cifar10_rn29_8_64')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"data = get_data(8,bs*4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn = ConvLearner(data, bm)\\n\",\n    \"learn.unfreeze()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"lr=1e-2; wd=5e-4\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"lrf = learn.lr_find()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"print(lrf)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.sched.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"2989b096d1d9428b844d90c0e1adc6e5\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \" 35%|███▍      | 34/98 [00:14<00:27,  2.33it/s, loss=2.23]\"\n     ]\n    },\n    {\n     \"ename\": \"KeyboardInterrupt\",\n     \"evalue\": \"\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mKeyboardInterrupt\\u001b[0m                         Traceback (most recent call last)\",\n      \"\\u001b[0;32m<timed eval>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m()\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/learner.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(self, lrs, n_cycle, wds, **kwargs)\\u001b[0m\\n\\u001b[1;32m    302\\u001b[0m         \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0msched\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    303\\u001b[0m         \\u001b[0mlayer_opt\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mget_layer_opt\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlrs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwds\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 304\\u001b[0;31m         \\u001b[0;32mreturn\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfit_gen\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmodel\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mdata\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlayer_opt\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mn_cycle\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    305\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    306\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mwarm_up\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlr\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwds\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/learner.py\\u001b[0m in \\u001b[0;36mfit_gen\\u001b[0;34m(self, model, data, layer_opt, n_cycle, cycle_len, cycle_mult, cycle_save_name, best_save_name, use_clr, use_clr_beta, metrics, callbacks, use_wd_sched, norm_wds, wds_sched_mult, use_swa, swa_start, swa_eval_freq, **kwargs)\\u001b[0m\\n\\u001b[1;32m    249\\u001b[0m             \\u001b[0mmetrics\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mmetrics\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mreg_fn\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mreg_fn\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mclip\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mclip\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfp16\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfp16\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    250\\u001b[0m             \\u001b[0mswa_model\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mswa_model\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0muse_swa\\u001b[0m \\u001b[0;32melse\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mswa_start\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mswa_start\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 251\\u001b[0;31m             swa_eval_freq=swa_eval_freq, **kwargs)\\n\\u001b[0m\\u001b[1;32m    252\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    253\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mget_layer_groups\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmodels\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mget_layer_groups\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/model.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(model, data, n_epochs, opt, crit, metrics, callbacks, stepper, swa_model, swa_start, swa_eval_freq, visualize, **kwargs)\\u001b[0m\\n\\u001b[1;32m    139\\u001b[0m             \\u001b[0mbatch_num\\u001b[0m \\u001b[0;34m+=\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    140\\u001b[0m             \\u001b[0;32mfor\\u001b[0m \\u001b[0mcb\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0mcb\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_batch_begin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 141\\u001b[0;31m             \\u001b[0mloss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mmodel_stepper\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mstep\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mV\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0mV\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0my\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mepoch\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    142\\u001b[0m             \\u001b[0mavg_loss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mavg_loss\\u001b[0m \\u001b[0;34m*\\u001b[0m \\u001b[0mavg_mom\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0mloss\\u001b[0m \\u001b[0;34m*\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0;36m1\\u001b[0m\\u001b[0;34m-\\u001b[0m\\u001b[0mavg_mom\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    143\\u001b[0m             \\u001b[0mdebias_loss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mavg_loss\\u001b[0m \\u001b[0;34m/\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0;36m1\\u001b[0m \\u001b[0;34m-\\u001b[0m \\u001b[0mavg_mom\\u001b[0m\\u001b[0;34m**\\u001b[0m\\u001b[0mbatch_num\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/model.py\\u001b[0m in \\u001b[0;36mstep\\u001b[0;34m(self, xs, y, epoch)\\u001b[0m\\n\\u001b[1;32m     72\\u001b[0m             \\u001b[0mcopy_fp32_to_model\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mm\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfp32_params\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     73\\u001b[0m             \\u001b[0mtorch\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mcuda\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0msynchronize\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 74\\u001b[0;31m         \\u001b[0;32mreturn\\u001b[0m \\u001b[0mtorch_item\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mraw_loss\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mdata\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     75\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     76\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mevaluate\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mxs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0my\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/model.py\\u001b[0m in \\u001b[0;36mtorch_item\\u001b[0;34m(x)\\u001b[0m\\n\\u001b[1;32m     29\\u001b[0m         \\u001b[0;32mif\\u001b[0m \\u001b[0mres\\u001b[0m \\u001b[0;32mis\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mres\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     30\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 31\\u001b[0;31m \\u001b[0;32mdef\\u001b[0m \\u001b[0mtorch_item\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mx\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mitem\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0mhasattr\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m'item'\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32melse\\u001b[0m \\u001b[0mx\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0;36m0\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     32\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     33\\u001b[0m \\u001b[0;32mclass\\u001b[0m \\u001b[0mStepper\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;31mKeyboardInterrupt\\u001b[0m: \"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%time learn.fit(lr, 1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"eb461e4ecfe447c5842e9783ba6012cc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=2), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"  9%|▉         | 9/98 [00:04<00:44,  2.01it/s, loss=2.18]\\n\",\n      \"epoch      trn_loss   val_loss   accuracy                 \\n\",\n      \"    0      1.660695   1.51586    0.4534    \\n\",\n      \"    1      1.511793   1.423011   0.4882                   \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1.4230109336853027, 0.488200000667572]\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 2, cycle_len=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"6233cac5f3244aa9af4ca94b9b307c59\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                 \\n\",\n      \"    0      1.417075   1.3854     0.5045    \\n\",\n      \"    1      1.396977   1.360235   0.5086                   \\n\",\n      \"    2      1.262032   1.29839    0.5347                   \\n\",\n      \"    3      1.323917   1.434224   0.4868                   \\n\",\n      \"    4      1.226122   1.269455   0.5412                   \\n\",\n      \"    5      1.106373   1.196596   0.5697                   \\n\",\n      \"    6      1.019568   1.186597   0.5787                   \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1.186597248840332, 0.5787000005722046]\"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 3, cycle_len=1, cycle_mult=2, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('8x8_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true\n   },\n   \"source\": [\n    \"## 16x16\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.load('8x8_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.set_data(get_data(16,bs*2))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"81c03dc817974984bd24b498e9621185\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                   \\n\",\n      \"    0      1.517224   1.479416   0.4629    \\n\",\n      \"\\n\",\n      \"CPU times: user 25.1 s, sys: 22.8 s, total: 47.9 s\\n\",\n      \"Wall time: 26.3 s\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[1.4794159097671509, 0.4629]\"\n      ]\n     },\n     \"execution_count\": 23,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"%time learn.fit(1e-3, 1, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.unfreeze()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"506863548fdb4ffa997e5f798bf8afe6\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                   \\n\",\n      \"    0      2.708425   20773964.1056 0.1       \\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"learn.lr_find()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"learn.sched.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"lr=1e-2\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"755912eb710041aa839773759ffef745\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=2), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                   \\n\",\n      \"    0      1.170261   1.077664   0.6091    \\n\",\n      \"    1      1.030724   0.958806   0.6595                     \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.9588064260005951, 0.6595]\"\n      ]\n     },\n     \"execution_count\": 28,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 2, cycle_len=1, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"d294526e27b04db885860868e25522f2\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                    \\n\",\n      \"    0      0.940711   0.886267   0.6889    \\n\",\n      \"    1      0.942904   0.877985   0.6915                      \\n\",\n      \"    2      0.751138   0.768557   0.7296                      \\n\",\n      \"    3      0.85915    0.939773   0.6852                      \\n\",\n      \"    4      0.716295   0.789837   0.73                        \\n\",\n      \"    5      0.606361   0.663592   0.7682                      \\n\",\n      \"    6      0.53345    0.642123   0.7743                      \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.6421226511478424, 0.7743]\"\n      ]\n     },\n     \"execution_count\": 29,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 3, cycle_len=1, cycle_mult=2, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('16x16_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"heading_collapsed\": true\n   },\n   \"source\": [\n    \"## 24x24\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.load('16x16_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 32,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.set_data(get_data(24,bs))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {\n    \"hidden\": true,\n    \"scrolled\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"cbd2ee85744040f885a0c291ff4086b7\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                    \\n\",\n      \"    0      0.675646   0.783434   0.7319    \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.7834340079784393, 0.7319]\"\n      ]\n     },\n     \"execution_count\": 33,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(1e-2, 1, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.unfreeze()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {\n    \"hidden\": true,\n    \"scrolled\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"68edf51ef9744ad9bb4b9f7846ee8fc8\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                    \\n\",\n      \"    0      0.635211   0.606865   0.7913    \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.6068654565572739, 0.7913]\"\n      ]\n     },\n     \"execution_count\": 35,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 1, cycle_len=1, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"8694ef954f89422c9cd4d01ac206fcdc\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                    \\n\",\n      \"    0      0.5435     0.531886   0.8182    \\n\",\n      \"    1      0.561118   0.569581   0.8091                      \\n\",\n      \"    2      0.406358   0.45027    0.849                       \\n\",\n      \"    3      0.530289   0.766036   0.7569                      \\n\",\n      \"    4      0.427189   0.509906   0.8334                      \\n\",\n      \"    5      0.30009    0.384696   0.8727                      \\n\",\n      \"    6      0.240064   0.373127   0.8749                      \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.3731268438577652, 0.8749]\"\n      ]\n     },\n     \"execution_count\": 36,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 3, cycle_len=1, cycle_mult=2, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('24x24_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {\n    \"hidden\": true\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                             \\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"log_preds,y = learn.TTA()\\n\",\n    \"#preds = np.mean(np.exp(log_preds),0), metrics.log_loss(y,preds), accuracy_np(preds,y)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 32x32\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.load('24x24_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.set_data(get_data(32,bs))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {\n    \"scrolled\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"66a7594cc07a45c3bc80cae6de92d4fe\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"epoch      trn_loss   val_loss   accuracy                    \\n\",\n      \"    0      0.31825    0.38657    0.8673    \\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[0.3865702114582062, 0.8673]\"\n      ]\n     },\n     \"execution_count\": 41,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"learn.fit(1e-2, 1, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.unfreeze()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"application/vnd.jupyter.widget-view+json\": {\n       \"model_id\": \"864f905943ce480e8a8300b2baab1b66\",\n       \"version_major\": 2,\n       \"version_minor\": 0\n      },\n      \"text/plain\": [\n       \"HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"  0%|          | 0/391 [00:00<?, ?it/s]\\n\"\n     ]\n    },\n    {\n     \"ename\": \"RuntimeError\",\n     \"evalue\": \"cuda runtime error (2) : out of memory at /pytorch/aten/src/THC/generic/THCStorage.cu:58\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m                              Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-43-07f7eca2b8d3>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m()\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mlearn\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfit\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlr\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;36m3\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcycle_len\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcycle_mult\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m2\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwds\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mwd\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/learner.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(self, lrs, n_cycle, wds, **kwargs)\\u001b[0m\\n\\u001b[1;32m    302\\u001b[0m         \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0msched\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    303\\u001b[0m         \\u001b[0mlayer_opt\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mget_layer_opt\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlrs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwds\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 304\\u001b[0;31m         \\u001b[0;32mreturn\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfit_gen\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmodel\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mdata\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlayer_opt\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mn_cycle\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    305\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    306\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mwarm_up\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlr\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mwds\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/learner.py\\u001b[0m in \\u001b[0;36mfit_gen\\u001b[0;34m(self, model, data, layer_opt, n_cycle, cycle_len, cycle_mult, cycle_save_name, best_save_name, use_clr, use_clr_beta, metrics, callbacks, use_wd_sched, norm_wds, wds_sched_mult, use_swa, swa_start, swa_eval_freq, **kwargs)\\u001b[0m\\n\\u001b[1;32m    249\\u001b[0m             \\u001b[0mmetrics\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mmetrics\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mreg_fn\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mreg_fn\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mclip\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mclip\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfp16\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfp16\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    250\\u001b[0m             \\u001b[0mswa_model\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mswa_model\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0muse_swa\\u001b[0m \\u001b[0;32melse\\u001b[0m \\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mswa_start\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mswa_start\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 251\\u001b[0;31m             swa_eval_freq=swa_eval_freq, **kwargs)\\n\\u001b[0m\\u001b[1;32m    252\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    253\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mget_layer_groups\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmodels\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mget_layer_groups\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/model.py\\u001b[0m in \\u001b[0;36mfit\\u001b[0;34m(model, data, n_epochs, opt, crit, metrics, callbacks, stepper, swa_model, swa_start, swa_eval_freq, visualize, **kwargs)\\u001b[0m\\n\\u001b[1;32m    139\\u001b[0m             \\u001b[0mbatch_num\\u001b[0m \\u001b[0;34m+=\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    140\\u001b[0m             \\u001b[0;32mfor\\u001b[0m \\u001b[0mcb\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mcallbacks\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0mcb\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mon_batch_begin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 141\\u001b[0;31m             \\u001b[0mloss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mmodel_stepper\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mstep\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mV\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0mV\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0my\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mepoch\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    142\\u001b[0m             \\u001b[0mavg_loss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mavg_loss\\u001b[0m \\u001b[0;34m*\\u001b[0m \\u001b[0mavg_mom\\u001b[0m \\u001b[0;34m+\\u001b[0m \\u001b[0mloss\\u001b[0m \\u001b[0;34m*\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0;36m1\\u001b[0m\\u001b[0;34m-\\u001b[0m\\u001b[0mavg_mom\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    143\\u001b[0m             \\u001b[0mdebias_loss\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mavg_loss\\u001b[0m \\u001b[0;34m/\\u001b[0m \\u001b[0;34m(\\u001b[0m\\u001b[0;36m1\\u001b[0m \\u001b[0;34m-\\u001b[0m \\u001b[0mavg_mom\\u001b[0m\\u001b[0;34m**\\u001b[0m\\u001b[0mbatch_num\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/model.py\\u001b[0m in \\u001b[0;36mstep\\u001b[0;34m(self, xs, y, epoch)\\u001b[0m\\n\\u001b[1;32m     48\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mstep\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mxs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0my\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mepoch\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     49\\u001b[0m         \\u001b[0mxtra\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m[\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 50\\u001b[0;31m         \\u001b[0moutput\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mm\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0mxs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     51\\u001b[0m         \\u001b[0;32mif\\u001b[0m \\u001b[0misinstance\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0moutput\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0mtuple\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0moutput\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0mxtra\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0moutput\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     52\\u001b[0m         \\u001b[0;32mif\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mfp16\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mm\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mzero_grad\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/nn/modules/module.py\\u001b[0m in \\u001b[0;36m__call__\\u001b[0;34m(self, *input, **kwargs)\\u001b[0m\\n\\u001b[1;32m    489\\u001b[0m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_slow_forward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    490\\u001b[0m         \\u001b[0;32melse\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 491\\u001b[0;31m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mforward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    492\\u001b[0m         \\u001b[0;32mfor\\u001b[0m \\u001b[0mhook\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_forward_hooks\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mvalues\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    493\\u001b[0m             \\u001b[0mhook_result\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mhook\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mresult\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/models/cifar10/resnext.py\\u001b[0m in \\u001b[0;36mforward\\u001b[0;34m(self, x)\\u001b[0m\\n\\u001b[1;32m     95\\u001b[0m     \\u001b[0mx\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mF\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mrelu\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mbn_1\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0minplace\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mTrue\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     96\\u001b[0m     \\u001b[0mx\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mstage_1\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 97\\u001b[0;31m     \\u001b[0mx\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mstage_2\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     98\\u001b[0m     \\u001b[0mx\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mstage_3\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     99\\u001b[0m     \\u001b[0mx\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mavgpool\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mx\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/nn/modules/module.py\\u001b[0m in \\u001b[0;36m__call__\\u001b[0;34m(self, *input, **kwargs)\\u001b[0m\\n\\u001b[1;32m    489\\u001b[0m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_slow_forward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    490\\u001b[0m         \\u001b[0;32melse\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 491\\u001b[0;31m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mforward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    492\\u001b[0m         \\u001b[0;32mfor\\u001b[0m \\u001b[0mhook\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_forward_hooks\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mvalues\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    493\\u001b[0m             \\u001b[0mhook_result\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mhook\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mresult\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/nn/modules/container.py\\u001b[0m in \\u001b[0;36mforward\\u001b[0;34m(self, input)\\u001b[0m\\n\\u001b[1;32m     89\\u001b[0m     \\u001b[0;32mdef\\u001b[0m \\u001b[0mforward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0minput\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     90\\u001b[0m         \\u001b[0;32mfor\\u001b[0m \\u001b[0mmodule\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_modules\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mvalues\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 91\\u001b[0;31m             \\u001b[0minput\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mmodule\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     92\\u001b[0m         \\u001b[0;32mreturn\\u001b[0m \\u001b[0minput\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     93\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/nn/modules/module.py\\u001b[0m in \\u001b[0;36m__call__\\u001b[0;34m(self, *input, **kwargs)\\u001b[0m\\n\\u001b[1;32m    489\\u001b[0m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_slow_forward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    490\\u001b[0m         \\u001b[0;32melse\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 491\\u001b[0;31m             \\u001b[0mresult\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mforward\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    492\\u001b[0m         \\u001b[0;32mfor\\u001b[0m \\u001b[0mhook\\u001b[0m \\u001b[0;32min\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_forward_hooks\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mvalues\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    493\\u001b[0m             \\u001b[0mhook_result\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mhook\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0minput\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mresult\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/fastai-0.7.0-py3.6.egg/fastai/models/cifar10/resnext.py\\u001b[0m in \\u001b[0;36mforward\\u001b[0;34m(self, x)\\u001b[0m\\n\\u001b[1;32m     30\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     31\\u001b[0m     \\u001b[0mbottleneck\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mconv_conv\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mbottleneck\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 32\\u001b[0;31m     \\u001b[0mbottleneck\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mF\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mrelu\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mbn\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mbottleneck\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0minplace\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mTrue\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m     33\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m     34\\u001b[0m     \\u001b[0mbottleneck\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mconv_expand\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mbottleneck\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;32m~/py3env/lib/python3.6/site-packages/torch/nn/functional.py\\u001b[0m in \\u001b[0;36mrelu\\u001b[0;34m(input, inplace)\\u001b[0m\\n\\u001b[1;32m    616\\u001b[0m     \\\"\\\"\\\"\\n\\u001b[1;32m    617\\u001b[0m     \\u001b[0;32mif\\u001b[0m \\u001b[0minplace\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 618\\u001b[0;31m         \\u001b[0;32mreturn\\u001b[0m \\u001b[0mtorch\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mrelu_\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m    619\\u001b[0m     \\u001b[0;32mreturn\\u001b[0m \\u001b[0mtorch\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mrelu\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0minput\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m    620\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n      \"\\u001b[0;31mRuntimeError\\u001b[0m: cuda runtime error (2) : out of memory at /pytorch/aten/src/THC/generic/THCStorage.cu:58\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"learn.fit(lr, 3, cycle_len=1, cycle_mult=2, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.fit(lr, 3, cycle_len=4, wds=wd)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"log_preds,y = learn.TTA()\\n\",\n    \"metrics.log_loss(y,np.exp(log_preds)), accuracy_np(log_preds,y)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"learn.save('32x32_8')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.6.5\"\n  },\n  \"toc\": {\n   \"nav_menu\": {\n    \"height\": \"266px\",\n    \"width\": \"252px\"\n   },\n   \"number_sections\": true,\n   \"sideBar\": true,\n   \"skip_h1_title\": false,\n   \"toc_cell\": false,\n   \"toc_position\": {},\n   \"toc_section_display\": \"block\",\n   \"toc_window_display\": false\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/cifar10.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('random_brightness', False, '')\nflags.DEFINE_bool('random_contrast', False, '')\nflags.DEFINE_bool('return_dict', False, '')\n\nHEIGHT = 32\nWIDTH = 32\nDEPTH = 3\n\n\nclass Cifar10DataSet(object):\n  \"\"\"Cifar10 data set.\n\n  Described by http://www.cs.toronto.edu/~kriz/cifar.html.\n  \"\"\"\n\n  def __init__(self, data_dir, subset='train', use_distortion=True):\n    self.data_dir = data_dir\n    self.subset = subset\n    self.use_distortion = use_distortion\n\n  def get_filenames(self):\n    if self.subset in ['train', 'valid', 'test']:\n      return [os.path.join(self.data_dir, self.subset + '.tfrecords')]\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % self.subset)\n\n  def parser(self, serialized_example):\n    \"\"\"Parses a single tf.Example into image and label tensors.\"\"\"\n    # Dimensions of the images in the CIFAR-10 dataset.\n    # See http://www.cs.toronto.edu/~kriz/cifar.html for a description of the\n    # input format.\n    features = tf.parse_single_example(\n        serialized_example,\n        features={\n            'id': tf.FixedLenFeature([], tf.int64),\n            'image': tf.FixedLenFeature([], tf.string),\n            'label': tf.FixedLenFeature([], tf.int64),\n        })\n    image = tf.decode_raw(features['image'], tf.uint8)\n    image.set_shape([HEIGHT * WIDTH * DEPTH])\n\n    image = tf.cast(\n        tf.reshape(image, [HEIGHT, WIDTH, DEPTH]),\n        tf.float32)\n    label = tf.cast(features['label'], tf.int32)\n    id = tf.cast(features['id'], tf.int32)\n\n    # Custom preprocessing.\n    image = self.preprocess(image)\n    if not FLAGS.return_dict:\n      return id, image, label\n    else:\n      return {'id': id, 'image': image}, label\n\n\n  def make_batch(self, batch_size, filenames=None, repeat=None, initializable=None):\n    \"\"\"Read the images and labels from 'filenames'.\"\"\"\n    filenames = filenames or self.get_filenames()\n    \n    if initializable is None:\n      initializable = self.subset != 'train'\n    \n    # Repeat infinitely.\n    dataset = tf.data.TFRecordDataset(filenames).repeat()\n\n    # Parse records.\n    dataset = dataset.map(\n        self.parser, num_parallel_calls=batch_size)\n\n    # Potentially shuffle records.\n    if self.subset == 'train':\n      min_queue_examples = int(\n          Cifar10DataSet.num_examples_per_epoch(self.subset) * 0.4)\n      # Ensure that the capacity is sufficiently large to provide good random\n      # shuffling.\n      dataset = dataset.shuffle(buffer_size=min_queue_examples + 3 * batch_size)\n\n    # Batch it up.\n    dataset = dataset.batch(batch_size)\n\n    if not initializable:\n      iterator = dataset.make_one_shot_iterator()\n    else:\n      iterator = dataset.make_initializable_iterator()\n    self.iterator = iterator\n    return iterator\n\n  def preprocess(self, image):\n    \"\"\"Preprocess a single image in [height, width, depth] layout.\"\"\"\n    if self.subset == 'train' and self.use_distortion:\n      # Pad 4 pixels on each dimension of feature map, done in mini-batch\n      #... yes should do something like below.. but you will see with dataset.map.. not ok as summary without scope and finally graph has no these summaries\n      # refer to https://stackoverflow.com/questions/47345394/image-summaries-with-tensorflows-dataset-api  TODO FIXME\n      tf.summary.image('image', image)\n      image = tf.image.resize_image_with_crop_or_pad(image, 40, 40)\n      image = tf.random_crop(image, [HEIGHT, WIDTH, DEPTH])\n      image = tf.image.random_flip_left_right(image)\n      if FLAGS.random_brightness:\n        image = tf.image.random_brightness(image,\n                                          max_delta=63)\n      if FLAGS.random_contrast:\n        distorted_image = tf.image.random_contrast(image,\n                                                  lower=0.2, \n                                                  upper=1.8)\n      tf.summary.image('image/distort', image)\n    return image\n\n  @staticmethod\n  def num_examples_per_epoch(subset='train'):\n    if subset == 'train':\n      return 45000\n    elif subset == 'valid':\n      return 5000\n    elif subset == 'test':\n      #return 10000\n      return 300000 # for kaggle cifar10 https://www.kaggle.com/c/cifar-10/submit\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % subset)\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/cifar10_model.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Model class for Cifar10 Dataset.\"\"\"\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport model_base\n\nimport melt\n\n\nclass ResNetCifar10(model_base.ResNet):\n  \"\"\"Cifar10 model with ResNetV1 and basic residual block.\"\"\"\n\n  def __init__(self,\n               num_layers,\n               training,\n               batch_norm_decay,\n               batch_norm_epsilon,\n               data_format='channels_first'):\n    super(ResNetCifar10, self).__init__(\n        training,\n        data_format,\n        batch_norm_decay,\n        batch_norm_epsilon\n    )\n    self.n = (num_layers - 2) // 6\n    # Add one in case label starts with 1. No impact if label starts with 0.\n    self.num_classes = 10 + 1\n    self.filters = [16, 16, 32, 64]\n    self.strides = [1, 2, 2]\n    \n  def init_predict(self, input_data_format='channels_last'):\n    #self.image_feed = tf.placeholder_with_default(tf.constant([test_image]), [None, ], name='image_feature')\n    self.image_feed =  tf.placeholder(tf.string, [None,], name='image')\n    tf.add_to_collection('feed', self.image_feed)\n    image = tf.map_fn(lambda img: melt.image.decode_image(img, image_format='png', dtype=tf.float32),\n                      self.image_feed, dtype=tf.float32)\n    self.predict(image)\n    tf.add_to_collection('classes', self.pred['classes'])\n    tf.add_to_collection('probabilities', self.pred['probabilities'])\n    tf.add_to_collection('logits', self.logits)\n    tf.add_to_collection('pre_logits', self.pre_logits)\n\n  def forward_pass(self, x, input_data_format='channels_last'):\n    # TODO.. without this forward var scope inference_fn will cause problem for self._conv as try to add conv 43.. FIMXE\n    with tf.variable_scope('forward', reuse=tf.AUTO_REUSE):\n      \"\"\"Build the core model within the graph.\"\"\"\n      if self._data_format != input_data_format:\n        if input_data_format == 'channels_last':\n          # Computation requires channels_first.\n          x = tf.transpose(x, [0, 3, 1, 2])\n        else:\n          # Computation requires channels_last.\n          x = tf.transpose(x, [0, 2, 3, 1])\n\n      # Image standardization.\n      x = x / 128 - 1\n\n      x = self._conv(x, 3, 16, 1)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      # Use basic (non-bottleneck) block and ResNet V1 (post-activation).\n      res_func = self._residual_v1\n\n      # 3 stages of block stacking.\n      for i in range(3):\n        with tf.name_scope('stage'):\n          for j in range(self.n):\n            if j == 0:\n              # First block in a stage, filters and strides may change.\n              x = res_func(x, 3, self.filters[i], self.filters[i + 1],\n                          self.strides[i])\n            else:\n              # Following blocks in a stage, constant filters and unit stride.\n              x = res_func(x, 3, self.filters[i + 1], self.filters[i + 1], 1)\n\n      x = self._global_avg_pool(x)\n      self.pre_logits = x \n      \n      x = self._fully_connected(x, self.num_classes)\n\n      self.logits = x\n\n      return x\n\n  def predict(self, x=None, input_data_format='channels_last'):\n    if x is not None:\n      self.forward_pass(x, input_data_format)\n    \n    logits = self.logits\n    pred = {\n      'classes': tf.to_int32(tf.argmax(input=logits, axis=1)),\n      'probabilities': tf.nn.softmax(logits)\n    }\n\n    self.pred = pred\n\n    return pred\n\nclass Model(tf.keras.Model):\n  def __init__(self):\n    super(Model, self).__init__()\n     \n    with tf.variable_scope('resnet', reuse=tf.AUTO_REUSE) as scope:\n      self.models = [None] * 2\n      data_format = 'channels_first'\n      num_layers = 44\n      batch_norm_decay = 0.997\n      batch_norm_epsilon = 1e-05\n      data_dir = './mount/data/cifar10/' \n      for i in range(2):\n        self.models[i] = ResNetCifar10(\n                              num_layers,\n                              batch_norm_decay=batch_norm_decay,\n                              batch_norm_epsilon=batch_norm_epsilon,\n                              training=(i == 1),\n                              data_format=data_format)         \n  \n  def call(self, x, input_data_format='channels_last', training=False):\n    x = x['image']\n    model = self.models[int(training)]\n    return model.forward_pass(x, input_data_format)\n\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/evaluate.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   evaluate.py\n#        \\author   chenghuige  \n#          \\date   2018-12-07 15:19:16.505094\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport numpy as np\nimport pandas as pd\nfrom sklearn.metrics import log_loss\nimport gezi\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n\ndef evaluate(labels, logits, ids=None):\n  logits = logits[:, :len(classes)]\n  predicts = np.argmax(logits, -1)\n  acc = np.mean(np.equal(predicts, labels))\n\n  probs = gezi.softmax(logits)\n  loss = log_loss(labels, probs)\n\n  vals = [loss, acc]\n  names = ['loss', 'acc']\n\n  return vals, names\n\ndef write(ids, labels, logits, ofile):\n  logits = logits[:, :len(classes)]\n  df = pd.DataFrame()\n  df['id'] = ids\n  predicts = np.argmax(logits, -1)\n  df['predict'] = [classes[x] for x in predicts]\n  if labels is not None: \n    df['label'] = [classes[x] for x in labels]\n  df= df.sort_values('id') \n  df.to_csv(ofile, index=False)\n\ndef valid_write(ids, labels, logits, ofile):\n  return write(ids, labels, logits, ofile)\n\ndef infer_write(ids, logits, ofile):\n  return write(ids, None, logits, ofile)\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/evaluator.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_bool('draw_pr', True, '')\nflags.DEFINE_float('precision_thre', 0.8, '')\n\nfrom tensorboard import summary as summary_lib\n\nfrom collections import defaultdict\n\nimport numpy as np\n\nfrom gezi import Timer\nimport gezi\nimport melt \nlogging = melt.logging\nimport pandas as pd\npd.set_option('display.max_colwidth', -1)\n\n#import deepiu\n\nclasses = ('airplane', 'automobile', 'bird', 'cat',\n           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n\ndef write(ids, predicts, model_path, labels=None, images=None, suffix='valid_info'):\n  tb = pd.DataFrame()\n  tb['id'] = ids \n  \n  predicts = [classes[x] for x in predicts]\n\n  if labels is not None:\n    tb['predict'] = predicts \n    labels = [classes[x] for x in labels]\n    tb['label'] = labels\n\n    ofile = model_path + '.valid_error.png'\n    #from deepiu.visualize.classify import plot_example_errors\n    #plot_example_errors(images, \n    #                    labels, \n    #                    predicts,\n    #                    smooth=True, \n    #                    #smooth=False, \n    #                    #class_names=classes,\n    #                    image_names=ids, \n    #                    out_file=ofile,\n    #                    max_show=9)\n  else:\n    tb['label'] = predicts\n\n  ofile = model_path + '.%s' % suffix\n  tb.to_csv(ofile, index=False)\n\ndef evaluate(eval_ops, iterator, num_steps, num_examples, model_path=None, num_gpus=1, sess=None):\n  #timer = gezi.Timer('evaluate')\n  if model_path:\n    ids_list = []\n    \n  predictions_list = []\n  labels_list = []\n  images_list = []\n  losses = []\n\n  if not sess:\n    sess = melt.get_session()\n  \n  # for prcurve\n  sess.run(iterator.initializer)\n\n  for _ in range(num_steps):\n    results = sess.run(eval_ops)\n    for i in range(num_gpus):\n      ids, loss, predictions, labels, images = results[i]\n      images = images.astype(np.uint8)\n      losses.append(loss)\n      predictions_list.append(predictions)\n      labels_list.append(labels)\n      images_list.append(images)\n\n      if model_path:\n        ids_list.append(ids)\n\n  # notice loss might be not so accurate due to final batch padding but that's not big problem\n  loss = np.mean(losses)\n  if model_path:\n    ids = np.concatenate(ids_list)[:num_examples]\n  predicts = np.concatenate(predictions_list)[:num_examples]\n  labels = np.concatenate(labels_list)[:num_examples]\n  images = np.concatenate(images_list)[:num_examples]\n\n  acc = np.mean(np.equal(predicts, labels))\n  results = [loss, acc] \n  names = ['metric/valid/loss', 'metric/valid/acc'] \n\n  if model_path:\n    write(ids, \n          predicts,\n          model_path,\n          labels,\n          images=images,\n          suffix='valid_info'\n          )\n\n  #timer.print()\n  #print(len(predicts))\n  return results, names \n\ndef inference(ops, iterator, num_steps, num_examples, model_path=None, num_gpus=1, sess=None):\n  ids_list = []\n  predictions_list = []\n\n  if not sess:\n    sess = melt.get_session()\n  \n  # for prcurve\n  sess.run(iterator.initializer)\n  \n  for _ in range(num_steps):\n    results = sess.run(ops)\n    for i in range(num_gpus):\n      ids, predictions = results[i]\n      predictions_list.append(predictions)\n      ids_list.append(ids)\n\n  ids = np.concatenate(ids_list)[:num_examples]\n  predicts = np.concatenate(predictions_list)[:num_examples]\n  write(ids, \n        predicts,\n        model_path,\n        labels=None,\n        suffix='infer_info'\n        )\n\n\n# def evaluate(eval_ops, iterator, model_path=None, sess=None):\n#   if model_path:\n#     ids_list = []\n    \n#   predictions_list = []\n#   labels_list = []\n#   losses = []\n\n#   images_list = []\n\n#   id_, loss_, predicts_, labels_, images_ = eval_ops\n#   if not sess:\n#     sess = melt.get_session()\n  \n#   # for prcurve\n#   sess.run(iterator.initializer)\n\n#   try:\n#     while True:\n#       ids, loss, predictions, labels, images = sess.run(eval_ops)\n#       images = images.astype(np.uint8)\n#       losses.append(loss)\n#       predictions_list.append(predictions)\n#       labels_list.append(labels)\n\n#       images_list.append(images)\n\n#       if model_path:\n#         ids_list.append(ids)\n#   except tf.errors.OutOfRangeError:\n#     loss = np.mean(losses)\n#     predicts = np.concatenate(predictions_list)\n#     labels = np.concatenate(labels_list)\n\n#     images = np.concatenate(images_list)\n\n#     acc = np.mean(np.equal(predicts, labels))\n\n#     results = [loss, acc] \n#     names = ['metric/valid/loss/avg', 'metric/valid/acc'] \n    \n#     if model_path:\n#       write(np.concatenate(ids_list), \n#             predicts,\n#             model_path,\n#             labels,\n#             images,\n#             suffix='valid_info'\n#             )\n\n#     return results, names \n\n\n# def inference(ops, iterator, model_path=None, sess=None):\n#   assert model_path\n#   if model_path:\n#     ids_list = []\n    \n#   predictions_list = []\n\n#   id_, predicts_ = ops\n#   if not sess:\n#     sess = melt.get_session()\n  \n#   # for prcurve\n#   sess.run(iterator.initializer)\n\n#   try:\n#     while True:\n#       ids, predictions = sess.run(ops)\n      \n#       predictions_list.append(predictions)\n\n#       if model_path:\n#         ids_list.append(ids)\n#   except tf.errors.OutOfRangeError:\n#     predicts = np.concatenate(predictions_list)\n    \n#     if model_path:\n#       write(np.concatenate(ids_list), \n#             predicts,\n#             model_path,\n#             labels=None,\n#             suffix='infer_info'\n#             )\n\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/loss.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2018-12-07 15:19:21.172303\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  weight_decay = 0.0002\n\n  loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=y_, labels=y)\n  loss = tf.reduce_mean(loss)\n\n  model_params = tf.trainable_variables()\n  loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n  return loss  \n\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/model_base.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"ResNet model.\n\nRelated papers:\nhttps://arxiv.org/pdf/1603.05027v2.pdf\nhttps://arxiv.org/pdf/1512.03385v1.pdf\nhttps://arxiv.org/pdf/1605.07146v1.pdf\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n\nclass ResNet(object):\n  \"\"\"ResNet model.\"\"\"\n\n  def __init__(self, training, data_format, batch_norm_decay, batch_norm_epsilon):\n    \"\"\"ResNet constructor.\n\n    Args:\n      training: if build training or inference model.\n      data_format: the data_format used during computation.\n                   one of 'channels_first' or 'channels_last'.\n    \"\"\"\n    self._batch_norm_decay = batch_norm_decay\n    self._batch_norm_epsilon = batch_norm_epsilon\n    self._training = training\n    assert data_format in ('channels_first', 'channels_last')\n    self._data_format = data_format\n\n  def forward_pass(self, x):\n    raise NotImplementedError(\n        'forward_pass() is implemented in ResNet sub classes')\n\n  def _residual_v1(self,\n                   x,\n                   kernel_size,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers, using Plan A for shortcut connection.\"\"\"\n\n    del activate_before_residual\n    with tf.name_scope('residual_v1') as name_scope:\n      orig_x = x\n\n      x = self._conv(x, kernel_size, out_filter, stride)\n      x = self._batch_norm(x)\n      x = self._relu(x)\n\n      x = self._conv(x, kernel_size, out_filter, 1)\n      x = self._batch_norm(x)\n\n      if in_filter != out_filter:\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        pad = (out_filter - in_filter) // 2\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = self._relu(tf.add(x, orig_x))\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _residual_v2(self,\n                   x,\n                   in_filter,\n                   out_filter,\n                   stride,\n                   activate_before_residual=False):\n    \"\"\"Residual unit with 2 sub layers with preactivation, plan A shortcut.\"\"\"\n\n    with tf.name_scope('residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 3, out_filter, stride)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 3, out_filter, [1, 1, 1, 1])\n\n      if in_filter != out_filter:\n        pad = (out_filter - in_filter) // 2\n        orig_x = self._avg_pool(orig_x, stride, stride)\n        if self._data_format == 'channels_first':\n          orig_x = tf.pad(orig_x, [[0, 0], [pad, pad], [0, 0], [0, 0]])\n        else:\n          orig_x = tf.pad(orig_x, [[0, 0], [0, 0], [0, 0], [pad, pad]])\n\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _bottleneck_residual_v2(self,\n                              x,\n                              in_filter,\n                              out_filter,\n                              stride,\n                              activate_before_residual=False):\n    \"\"\"Bottleneck residual unit with 3 sub layers, plan B shortcut.\"\"\"\n\n    with tf.name_scope('bottle_residual_v2') as name_scope:\n      if activate_before_residual:\n        x = self._batch_norm(x)\n        x = self._relu(x)\n        orig_x = x\n      else:\n        orig_x = x\n        x = self._batch_norm(x)\n        x = self._relu(x)\n\n      x = self._conv(x, 1, out_filter // 4, stride, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      # pad when stride isn't unit\n      x = self._conv(x, 3, out_filter // 4, 1, is_atrous=True)\n\n      x = self._batch_norm(x)\n      x = self._relu(x)\n      x = self._conv(x, 1, out_filter, 1, is_atrous=True)\n\n      if in_filter != out_filter:\n        orig_x = self._conv(orig_x, 1, out_filter, stride, is_atrous=True)\n      x = tf.add(x, orig_x)\n\n      tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n      return x\n\n  def _conv(self, x, kernel_size, filters, strides, is_atrous=False):\n    \"\"\"Convolution.\"\"\"\n\n    padding = 'SAME'\n    if not is_atrous and strides > 1:\n      pad = kernel_size - 1\n      pad_beg = pad // 2\n      pad_end = pad - pad_beg\n      if self._data_format == 'channels_first':\n        x = tf.pad(x, [[0, 0], [0, 0], [pad_beg, pad_end], [pad_beg, pad_end]])\n      else:\n        x = tf.pad(x, [[0, 0], [pad_beg, pad_end], [pad_beg, pad_end], [0, 0]])\n      padding = 'VALID'\n    return tf.layers.conv2d(\n        inputs=x,\n        kernel_size=kernel_size,\n        filters=filters,\n        strides=strides,\n        padding=padding,\n        use_bias=False,\n        data_format=self._data_format)\n\n  def _batch_norm(self, x):\n    if self._data_format == 'channels_first':\n      data_format = 'NCHW'\n    else:\n      data_format = 'NHWC'\n    return tf.contrib.layers.batch_norm(\n        x,\n        decay=self._batch_norm_decay,\n        center=True,\n        scale=True,\n        epsilon=self._batch_norm_epsilon,\n        is_training=self._training,\n        fused=True,\n        data_format=data_format)\n\n  def _relu(self, x):\n    return tf.nn.relu(x)\n\n  def _fully_connected(self, x, out_dim):\n    with tf.name_scope('fully_connected') as name_scope:\n      x = tf.layers.dense(x, out_dim)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _avg_pool(self, x, pool_size, stride):\n    with tf.name_scope('avg_pool') as name_scope:\n      x = tf.layers.average_pooling2d(\n          x, pool_size, stride, 'SAME', data_format=self._data_format)\n\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n\n  def _global_avg_pool(self, x):\n    with tf.name_scope('global_avg_pool') as name_scope:\n      assert x.get_shape().ndims == 4\n      if self._data_format == 'channels_first':\n        x = tf.reduce_mean(x, [2, 3])\n      else:\n        x = tf.reduce_mean(x, [1, 2])\n    tf.logging.info('image after unit %s: %s', name_scope, x.get_shape())\n    return x\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/readme",
    "content": "use ./train-melt-momentum2-batch128.sh this is the same as tensorflow tuorial which set learning rate 0.1 0.01 ... 500 epoch will get   \nvalid_loss 0.4307 valid_acc 0.9294 test_acc 0.93010\nuse ./train-melt-momentum-decay.sh this is the same as above but set learning rate decay 0.99 per epoch 500 epoch will get\nvalid_loss 0.3297 valid_acc 0.9359 test_acc 0.9367  \n./train-melt-momentum-decay-2gpu.sh  is 2gpu version    \n\n\n./train-melt-momentum-decay2.sh  \nusing new simple melt fit api, see train2.py\n./train-melt-momentum-decay2-2gpu.sh  \nsame as above but 2 gpu running ok using split batch  \n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-2gpu-2.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=2 \\\n    --variable-strategy GPU \\\n    --train-steps=110000 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.2gpu.2\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-2gpu.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=2 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.2gpu\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-4gpu.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=4 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator.4gpu\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-2gpu.sh",
    "content": "python ./train.py \\\n    --save_interval_epochs 10 \\\n    --save_interval_steps 1000  \\\n    --model_dir /home/gezi/temp/cifar10/model/resnet.2gpu \\\n    --optimizer momentum \\\n    --num_gpus=2\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-decay-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay99.2gpu \\\n    --batch_size_by_gpu_num=1 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-decay.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay99 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-decay98.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.decay98 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --learning_rate_decay_factor=0.98 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum-batch128.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.batch128 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=1.0,0.1,0.01,0.002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum-decay-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay.2gpu \\\n    --variable_strategy=cpu \\\n    --batch_size_per_gpu=0 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=530 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum-decay-batch64.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay.batch64 \\\n    --batch_size=64 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum-decay.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay \\\n    --variable_strategy=cpu \\\n    --batch_size=128 \\\n    --batch_size_per_gpu=0 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=510 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum-decay2-2gpu.sh",
    "content": "data_dir='./mount/data/cifar10'\npython ./train2.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay2.2gpu \\\n    --train_input=$data_dir'/train.tfrecords,' \\\n    --valid_input=$data_dir'/valid.tfrecords,' \\\n    --test_input=$data_dir'/test.tfrecords,' \\\n    --variable_strategy=cpu \\\n    --batch_size=128 \\\n    --batch_size_per_gpu=0 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=530 \\\n    --return_dict=1 \\\n    --save_interval_steps 1000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum-decay2.sh",
    "content": "data_dir='./mount/data/cifar10'\npython ./train2.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum.decay2 \\\n    --train_input=$data_dir'/train.tfrecords,' \\\n    --valid_input=$data_dir'/valid.tfrecords,' \\\n    --test_input=$data_dir'/test.tfrecords,' \\\n    --variable_strategy=cpu \\\n    --batch_size=128 \\\n    --batch_size_per_gpu=0 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0.1 \\\n    --learning_rate_decay_factor=0.99 \\\n    --num_epochs_per_decay=1. \\\n    --num_epochs=530 \\\n    --return_dict=1 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=1.0,0.1,0.01,0.002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum2-batch128-2gpu.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2.batch128.2gpu \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum2-batch128.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2.batch128 \\\n    --batch_size=128 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt-momentum2.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet.momentum2 \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --optimizer=momentum \\\n    --momentum=0.9 \\\n    --learning_rate=0 \\\n    --learning_rate_values=0.1,0.01,0.001,0.0002 \\\n    --learning_rate_epoch_boundaries=82,123,300 \\\n    --num_epochs=500 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train-melt.sh",
    "content": "python ./train.py \\\n    --model_dir=./mount/temp/cifar10/model/resnet \\\n    --batch_size=256 \\\n    --save_interval_epochs=5 \\\n    --metric_eval_interval_steps=0 \\\n    --valid_interval_epochs=1 \\\n    --inference_interval_epochs=5 \\\n    --save_interval_steps 10000\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train/train.sh",
    "content": "python cifar10_main.py --data-dir=/home/gezi/data/cifar10/ \\\n    --num-gpus=1 \\\n    --train-steps=175400 \\\n    --job-dir=/home/gezi/temp/cifar10/estimator\n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('model_dir', './mount/temp/cifar10/model/resnet', '')\nflags.DEFINE_string('algo', 'resnet', '')\n\nimport numpy as np\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\n#import evaluator\n\nimport cifar10\nimport cifar10_model\n\nimport evaluator\n\neval_names = None\nlabel_batch = None\n\ndef tower_loss(model, feature, label):\n  logits = model.forward_pass(feature, input_data_format='channels_last')\n  weight_decay = 0.0002\n\n  loss = tf.losses.sparse_softmax_cross_entropy(\n      logits=logits, labels=label)\n  loss = tf.reduce_mean(loss)\n\n  model_params = tf.trainable_variables()\n  loss += weight_decay * tf.add_n(\n      [tf.nn.l2_loss(v) for v in model_params])\n  return loss\n\n# import tfmpl\n# @tfmpl.figure_tensor\n# def draw_confusion_matrix(matrix):\n#     '''Draw confusion matrix for MNIST.'''\n#     fig = tfmpl.create_figure(figsize=(7,7))\n#     ax = fig.add_subplot(111)\n#     ax.set_title('Confusion matrix for MNIST classification')\n    \n#     tfmpl.plots.confusion_matrix.draw(\n#         ax, matrix,\n#         axis_labels=['Digit ' + str(x) for x in range(10)],\n#         normalize=True\n#     )\n\n#     return fig\n\ndef main(_):\n  num_train_examples = 45000\n  melt.apps.init()\n\n  batch_size = melt.batch_size()\n  num_gpus = melt.num_gpus()\n\n  batch_size_per_gpu = FLAGS.batch_size\n\n  # batch size not changed but FLAGS.batch_size will change to batch_size / num_gpus\n  #print('--------------batch_size, FLAGS.batch_size, num_steps_per_epoch', batch_size, FLAGS.batch_size, num_train_examples // batch_size)\n\n  global_scope = FLAGS.algo \n  with tf.variable_scope(global_scope) as global_scope:\n    data_format = 'channels_first'\n    num_layers = 44\n    batch_norm_decay = 0.997\n    batch_norm_epsilon = 1e-05\n    data_dir = './mount/data/cifar10/' \n    with tf.variable_scope('main') as scope:\n      model = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        training=True,\n        data_format=data_format)\n\n      dataset = cifar10.Cifar10DataSet(data_dir, subset='train', use_distortion=True)\n      # this is faster then above method\n      iterator = dataset.make_batch(batch_size)\n      batch = iterator.get_next()\n\n      ## Now below is also ok...\n      # x = {'id': batch[0], 'image': batch[1]}\n      # y = batch[2]\n      # batch = (x, y)\n      # x, y = melt.split_batch(batch, batch_size, num_gpus)\n      # image_batches, label_batches = [item['image'] for item in x], y\n      \n      _, image_batches, label_batches = melt.split_batch(batch, batch_size, num_gpus)\n\n      def loss_function(i):\n        return tower_loss(model, image_batches[i], label_batches[i])\n      label_batch = label_batches[-1]\n\n      #loss_function = lambda: tower_loss(model, image_batch, label_batch)\n      loss = melt.tower(loss_function, num_gpus)\n      pred = model.predict()\n      pred = pred['classes']\n      #label_batch = dataset.label_batch \n      acc = tf.reduce_mean(tf.to_float(tf.equal(pred, label_batch)))\n\n      #tf.summary.image('train/image', dataset.image_batch)\n      # # Compute confusion matrix\n      # matrix = tf.confusion_matrix(label_batch, pred, num_classes=10)\n      # # Get a image tensor for summary usage\n      # image_tensor = draw_confusion_matrix(matrix)\n      # tf.summary.image('train/confusion_matrix', image_tensor)\n\n      scope.reuse_variables()\n      ops = [loss, acc]\n\n      validator = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        training=False,\n        data_format=data_format)\n\n      valid_dataset = cifar10.Cifar10DataSet(data_dir, subset='valid', use_distortion=False)\n      valid_iterator = valid_dataset.make_batch(batch_size)\n      valid_batch = valid_iterator.get_next()\n      valid_id_batches, valid_image_batches, valid_label_batches = melt.split_batch(valid_batch, batch_size, num_gpus, training=False)\n\n      def valid_loss_fn(i):\n        valid_loss = tower_loss(validator, valid_image_batches[i], valid_label_batches[i])\n        valid_pred = validator.predict()\n        return valid_id_batches[i], valid_loss, valid_pred['classes'], valid_label_batches[i], valid_image_batches[i]\n      \n      num_valid_examples = dataset.num_examples_per_epoch(subset='valid')\n      valid_ops = melt.tower(valid_loss_fn, num_gpus, training=False)\n\n      ## seems not work with non rpeat mode..\n      #tf.summary.image('valid/image', valid_image_batch)\n      ## Compute confusion matrix\n      #matrix = tf.confusion_matrix(valid_label_batch, valid_pred, num_classes=10)\n      ## Get a image tensor for summary usage\n      #image_tensor = draw_confusion_matrix(matrix)\n      #tf.summary.image('valid/confusion_matrix', image_tensor)\n\n      #loss_function = lambda: tower_loss(validator, val_image_batch, val_label_batch)\n      #val_loss = melt.tower_losses(loss_function, FLAGS.num_gpus, training=False)\n      #eval_ops = [val_loss]\n\n      metric_eval_fn = lambda model_path=None: \\\n                          evaluator.evaluate(valid_ops, \n                                             valid_iterator,\n                                             num_steps=-(-num_valid_examples // batch_size),\n                                             num_examples=num_valid_examples,\n                                             model_path=model_path,\n                                             num_gpus=num_gpus)\n\n      predictor = cifar10_model.ResNetCifar10(\n        num_layers,\n        batch_norm_decay=batch_norm_decay,\n        batch_norm_epsilon=batch_norm_epsilon,\n        training=False,\n        data_format=data_format)\n\n      predictor.init_predict()\n\n      test_dataset = cifar10.Cifar10DataSet(data_dir, subset='test', use_distortion=False)\n      test_iterator = test_dataset.make_batch(batch_size)\n\n      test_batch = test_iterator.get_next()\n      test_id_batches, test_image_batches, test_label_batches = melt.split_batch(test_batch, batch_size, num_gpus, training=False)\n\n      def test_fn(i):\n        test_pred = predictor.predict(test_image_batches[i])     \n        test_pred = test_pred['classes']\n        return test_id_batches[i], test_pred\n      \n      num_test_examples = dataset.num_examples_per_epoch(subset='test')\n      test_ops = melt.tower(test_fn, num_gpus, training=False)\n      inference_fn = lambda model_path=None: \\\n                          evaluator.inference(test_ops, \n                                              test_iterator,\n                                              num_steps=-(-num_test_examples // batch_size),\n                                              num_examples=num_test_examples,\n                                              model_path=model_path,\n                                              num_gpus=num_gpus)\n\n      global eval_names\n      names = ['loss', 'acc']\n\n    melt.apps.train_flow(ops, \n                         names = names,\n                         metric_eval_fn=metric_eval_fn,\n                         inference_fn=inference_fn,\n                         model_dir=FLAGS.model_dir,\n                         num_steps_per_epoch=num_train_examples // batch_size)\n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/kaggle/cifar10/tf/train2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('model_dir', './mount/temp/cifar10/model/resnet', '')\nflags.DEFINE_string('algo', 'resnet', '')\n\nimport numpy as np\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nimport cifar10\nfrom cifar10_model import Model\n\nfrom loss import criterion\nimport evaluate as ev\n\ndef get_dataset(subset):\n  data_dir = './mount/data/cifar10/' \n  use_distortion = False\n  if subset == 'train':\n    use_distortion = True\n  return cifar10.Cifar10DataSet(data_dir, subset=subset, use_distortion=use_distortion) \n\n\n# TODO FIXME why 1gpu ok 2gpu fail ? train.py all ok... ai2018/sentiment/model.py bert is also all ok why here wrong ?\ndef main(_):\n  melt.apps.init()\n\n  model = Model()\n\n  logging.info(model)\n  fit = melt.apps.get_fit()\n\n  fit(get_dataset,\n      model,  \n      criterion,\n      eval_fn=ev.evaluate,\n      valid_write_fn=ev.valid_write,\n      infer_write_fn=ev.infer_write,\n      valid_suffix='.valid.csv',\n      infer_suffix='.infer.csv')   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/kaggle/toxic/algos/config.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   config.py\n#        \\author   chenghuige  \n#          \\date   2018-02-16 19:12:02.066189\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('encoder_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_mlp', False, '')\nflags.DEFINE_bool('use_word', True, '')\nflags.DEFINE_bool('use_simple_char', False, '')\nflags.DEFINE_string('simple_char_combiner', 'concat', '')\nflags.DEFINE_bool('use_char', False, '')\nflags.DEFINE_bool('use_simple_ngrams', False, '')\nflags.DEFINE_string('char_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_ngrams', False, '')\nflags.DEFINE_bool('use_fngrams', False, '')\nflags.DEFINE_integer('ngram_emb_dim', 300, '')\nflags.DEFINE_string('ngram_combiner', 'sum', 'sum or concat or dsfu')\nflags.DEFINE_string('ngram_self_combiner', 'sum', 'sum or concat')\nflags.DEFINE_bool('ngram_only', False, '')\n\nflags.DEFINE_bool('use_token_info', False, '')\nflags.DEFINE_bool('use_info_fc', False, '')\nflags.DEFINE_string('token_info_combiner', 'concat', '')\n\nflags.DEFINE_bool('use_comment_info', False, '')\nflags.DEFINE_bool('use_comment_info_fc', False, '')\nflags.DEFINE_string('comment_info_combiner', 'concat', '')\nflags.DEFINE_bool('comment_info_lang_only', False, '')\n\nflags.DEFINE_bool('cudnn_gru_encode', False, 'depreciated, for safe you could just use gru_baseline.py with auc 0.954 single model')\n\nflags.DEFINE_bool('use_pos', False, '')\nflags.DEFINE_bool('use_tag', False, '')\nflags.DEFINE_bool('use_ner', False, '')\nflags.DEFINE_integer('tag_emb_dim', 100, '')\n\nflags.DEFINE_bool('use_emb_fc', False, '')\nflags.DEFINE_bool('use_emb_att', False, '')\nflags.DEFINE_bool('use_emb_max', False, '')\n\nflags.DEFINE_float('sfu_keepprob', 0.5, '')\nflags.DEFINE_float('emb_keepprob', 0.5, '')\n\nflags.DEFINE_bool('emb_dropout', False, '')\n\nflags.DEFINE_bool('use_label_emb', False, '')\nflags.DEFINE_string('label_attention_combiner', 'gate', 'gate or dsfu')\nflags.DEFINE_string('self_attention_combiner', 'gate', 'gate or dsfu')\n\nflags.DEFINE_integer('label_emb_dim', 100, '')\nflags.DEFINE_integer('label_emb_height', None, '')\nflags.DEFINE_bool('concat_label_emb', False, '')\nflags.DEFINE_bool('label2text_attention', False, '')\nflags.DEFINE_bool('perlabel_encoding', False, '')\n\nflags.DEFINE_bool('toxic_only', False, '')\nflags.DEFINE_bool('toxic_softmax_loss', False, 'for toxic and serv')\n\nflags.DEFINE_bool('char_only', False, '')\nflags.DEFINE_integer('char_num_layers', 1, '')\nflags.DEFINE_integer('char_hidden_size', 100, '')\nflags.DEFINE_string('char_output_method', 'max', '')\n\nflags.DEFINE_integer('simple_char_num_layers', 3, '')\n\nflags.DEFINE_string('addtional_word_info', None, 'pos,tag,ner')\n\nflags.DEFINE_string('decay_target', None, 'loss or auc')\nflags.DEFINE_integer('decay_patience', 4, '')\nflags.DEFINE_float('decay_factor', 0.5, '')\n\nflags.DEFINE_bool('optimize_auc', False, '')\nflags.DEFINE_float('auc_ratio', 0., '')\nflags.DEFINE_bool('balance_pos_neg', False, '')\n\nflags.DEFINE_bool('dynamic_weights', False, '')\n\nflags.DEFINE_bool('use_gate', False, '')\n\nflags.DEFINE_bool('hate_corpus', False, '')\n\nflags.DEFINE_bool('use_position_encoding', False, '')\n\n\nCLASSES = [\"toxic\", \"severe_toxic\", \"obscene\", \"threat\", \"insult\", \"identity_hate\"]\nCLASSES_COUNTS = [15294, 1595, 8449, 478, 7877, 1405]\n# train set total \nTOTAL_COUNTS = 159571\n\nNUM_CLASSES = len(CLASSES)\n"
  },
  {
    "path": "projects/kaggle/toxic/algos/model.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   model.py\n#        \\author   chenghuige  \n#          \\date   2018-09-02 10:24:27.910985\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom tensorflow import keras\n\nimport wenzheng\nfrom wenzheng.utils import vocabulary, embedding\n\nfrom algos.config import NUM_CLASSES\n\nimport melt\n    \nclass MyModel(keras.Model):\n  def __init__(self):\n    super(MyModel, self).__init__()\n    # TODO tf bug ? below not save CuDNNGRU but ok if self.encodes = [CuDNNGRU]\n    self.encodes =  [(keras.layers.CuDNNGRU(units=100, \n                                        return_sequences=True, \n                                        return_state=False, \n                                        recurrent_initializer='glorot_uniform'),)]\n    self.abc = self.add_variable(\"abc\", [1, 100], initializer=tf.ones_initializer(dtype=tf.float32))\n\n\n  def call(self, x):\n    return self.encodes[0][0](x) + self.abc\n\nclass Model(keras.Model):\n  def __init__(self):\n    super(Model, self).__init__()\n    vocabulary.init()\n    vocab_size = vocabulary.get_vocab_size() \n    #self.embedding = keras.layers.Embedding(vocab_size, FLAGS.emb_dim)\n    #with tf.device('/cpu:0'):\n    self.embedding = wenzheng.utils.Embedding(vocab_size, FLAGS.emb_dim, \n                                              FLAGS.word_embedding_file, \n                                              trainable=FLAGS.finetune_word_embedding)\n    \n    #self.encode = MyLayer()\n    self.num_layers = 1\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = 0.7\n    self.encode = melt.layers.CudnnRnn(num_layers=self.num_layers, num_units=self.num_units, keep_prob=self.keep_prob)\n\n    # self.encode = keras.layers.CuDNNGRU(units=FLAGS.rnn_hidden_size, \n    # #self.encode = keras.layers.CuDNNLSTM(units=FLAGS.rnn_hidden_size, \n    #                                     return_sequences=True, \n    #                                     return_state=False, \n    #                                     recurrent_initializer='glorot_uniform')\n\n    #self.encode = keras.layers.GRU(units=FLAGS.rnn_hidden_size, \n    #                     return_sequences=True, \n    #                     return_state=False, \n    #                     recurrent_activation='sigmoid', \n    #                     recurrent_initializer='glorot_uniform')\n\n    #self.pooling = keras.layers.GlobalMaxPool1D()\n    self.pooling = melt.layers.MaxPooling()\n\n    self.logits = keras.layers.Dense(NUM_CLASSES, activation=None)\n\n    self.temp = MyModel()\n\n  def call(self, x, training=False):\n    x = x['comment']\n    batch_size = melt.get_shape(x, 0)\n    length = melt.length(x)\n    #with tf.device('/cpu:0'):\n    x = self.embedding(x)\n    \n    num_units = [melt.get_shape(x, -1) if layer == 0 else 2 * self.num_units for layer in range(self.num_layers)]\n    #print('----------------length', tf.reduce_max(length), inputs.comment.shape)\n    mask_fws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    mask_bws = [melt.dropout(tf.ones([batch_size, 1, num_units[layer]], dtype=tf.float32), keep_prob=self.keep_prob, training=training, mode=None) for layer in range(self.num_layers)]\n    #x = self.encode(x, length, mask_fws=mask_fws, mask_bws=mask_bws)\n    x = self.encode(x)\n\n    x = self.pooling(x, length)\n    #x = self.pooling(x)\n    x = self.logits(x)\n    return x\n\ndef criterion(model, x, y, training=False):\n  y_ = model(x, training=training)\n  return tf.losses.sigmoid_cross_entropy(y, y_)   \n"
  },
  {
    "path": "projects/kaggle/toxic/checkpoint",
    "content": "model_checkpoint_path: \"weights\"\nall_model_checkpoint_paths: \"weights\"\n"
  },
  {
    "path": "projects/kaggle/toxic/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport gezi\nimport melt\nlogging = melt.logging\n\nfrom collections import namedtuple\n\nfrom algos.config import NUM_CLASSES\nimport prepare.config\n\nNUM_COMMENT_FEATURES = 7\n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n\n  def parser(self, example):\n    comment_key = 'comment'\n\n    features_dict = {\n      'id':  tf.FixedLenFeature([], tf.string),\n      'comment_str':  tf.FixedLenFeature([], tf.string),\n      'comment_tokens_str':  tf.FixedLenFeature([], tf.string),\n        comment_key: tf.VarLenFeature(tf.int64),\n      'comment_chars':  tf.VarLenFeature(tf.int64),\n      'comment_ngrams': tf.VarLenFeature(tf.int64),\n      #'comment_fngrams': tf.VarLenFeature(tf.int64),\n      'simple_chars':  tf.VarLenFeature(tf.int64),\n      #'simple_ngrams': tf.VarLenFeature(tf.int64),\n      'tokens_info': tf.VarLenFeature(tf.float32),\n      #'comment_info': tf.VarLenFeature(tf.float32),\n      #'comment_info':  tf.FixedLenFeature([NUM_COMMENT_FEATURES], tf.float32),\n      'pos': tf.VarLenFeature(tf.int64),\n      'tag': tf.VarLenFeature(tf.int64),\n      'ner': tf.VarLenFeature(tf.int64),\n      'classes': tf.FixedLenFeature([NUM_CLASSES], tf.float32),\n      #'weight': tf.FixedLenFeature([1], tf.float32),\n      }\n\n    # # support weight from v17, but notice token change from v16\n    # if not ('TOXIC_VERSION' in os.environ and int(os.environ['TOXIC_VERSION']) <= 16):\n    #   features_dict['weight'] = tf.FixedLenFeature([1], tf.float32)\n\n    # if FLAGS.use_word:\n    #   features_dict['comment'] = tf.VarLenFeature(tf.int64)\n    # if FLAGS.use_char:\n    #   features_dict['comment_chars'] = tf.VarLenFeature(tf.int64)  \n    # if FLAGS.use_simple_char:\n    #   features_dict['simple_chars'] = tf.VarLenFeature(tf.int64)\n    # if FLAGS.use_token_info:\n    #   features_dict['tokens_info'] = tf.VarLenFeature(tf.float32),\n    # if FLAGS.use_pos:\n    #   features_dict['pos'] = tf.VarLenFeature(tf.int64)\n    # if FLAGS.use_tag:\n    #   features_dict['tag'] = tf.VarLenFeature(tf.int64)\n    # if FLAGS.use_ner:\n    #   features_dict['ner'] = tf.VarLenFeature(tf.int64)\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    id = features['id']\n\n    comment = None\n    comment_chars = None\n    simple_chars = None\n    tokens_info = None\n    pos = None\n    tag = None\n    ner = None\n\n    try:\n      weight = features['weight'][0]\n    except Exception:\n      weight = tf.constant([1.])\n\n    #----var len features\n    #if FLAGS.use_word:\n    comment = features[comment_key]\n    comment = melt.sparse_tensor_to_dense(comment)    \n    features[comment_key] = comment\n\n    #if FLAGS.use_char:\n    comment_chars = features['comment_chars']\n    comment_chars = melt.sparse_tensor_to_dense(comment_chars)\n    features['comment_chars'] = comment_chars\n\n    #if FLAGS.use_token_info:\n    tokens_info = features['tokens_info']\n    tokens_info = melt.sparse_tensor_to_dense(tokens_info)\n    features['tokens_info'] = tokens_info\n\n    #comment_info = features['comment_info']\n    #comment_info = melt.sparse_tensor_to_dense(comment_info)\n\n    classes = features['classes']\n    comment_str = features['comment_str']\n    comment_tokens_str = features['comment_tokens_str']\n\n    #----------- simple chars (per whole comment),  'what a pity' -> 'w|h|a|t| |a| |p|i|t|y'\n    # TODO simple char can change to use ngram model seq or sum ngram \n    #if FLAGS.use_simple_char:\n    simple_chars = features['simple_chars']\n    simple_chars = melt.sparse_tensor_to_dense(simple_chars)\n    features['simple_chars'] = simple_chars\n\n    #simple_ngrams = features['simple_ngrams']\n    #simple_ngrams = melt.sparse_tensor_to_dense(simple_ngrams)\n\n    #if FLAGS.use_pos:\n    pos = features['pos']\n    pos = melt.sparse_tensor_to_dense(pos)\n    features['pos'] = pos()\n\n    tag = features['tag']\n    tag = melt.sparse_tensor_to_dense(tag)\n    features['tag'] = tag\n\n    ner = features['ner']\n    ner = melt.sparse_tensor_to_dense(ner)\n    features['ner'] = ner\n\n    comment_ngrams = features['comment_ngrams']\n    comment_ngrams = melt.sparse_tensor_to_dense(comment_ngrams)\n    features['comment_ngrams'] = comment_ngrams\n\n    # comment_fngrams = features['comment_fngrams']\n    # comment_fngrams = melt.sparse_tensor_to_dense(comment_fngrams)\n\n    char_vocab = gezi.Vocabulary(FLAGS.vocab.replace('vocab.txt', 'char_vocab.txt'))\n\n    #--- will this be slow then after padding slice ?  \n    #--- notice here will be shape(,) 1 d, since is parse_single_example then will batch in dtaset.padded_batch\n    #--- not used much, actually, just limit max length when building tfrecords (for toxic can not limit)\n    #--- then when train use bucket method like buckets=[400] will be fine\n    #--- limit length , might be better do int when gen tf record\n    limit = FLAGS.comment_limit if self.subset is 'train' else FLAGS.test_comment_limit\n    if limit:\n      comment = comment[:limit]\n      comment_chars = comment_chars[:limit * FLAGS.char_limit]\n      tokens_info = tokens_info[:limit * len(attribute_names)]\n      if FLAGS.use_pos:\n        pos = pos[:limit]\n        tag = tag[:limit]\n        ner = ner[:limit]\n\n    if FLAGS.use_pos:\n      pos_vocab = gezi.Vocabulary(FLAGS.vocab.replace('vocab.txt', 'pos_vocab.txt'))\n      tag_vocab = gezi.Vocabulary(FLAGS.vocab.replace('vocab.txt', 'tag_vocab.txt'))\n      ner_vocab = gezi.Vocabulary(FLAGS.vocab.replace('vocab.txt', 'ner_vocab.txt'))\n      def append_start_end_mark(tag, start, end):\n        tag_list = [tag]\n        # if FLAGS.encode_start_mark:\n        #   tag_list.insert(0, tf.constant([start], dtype=tf.int64))\n        # if FLAGS.encode_end_mark:\n        #   tag_list.append(tf.constant([end], dtype=tf.int64))\n        if len(tag_list) > 1:\n          tag = tf.concat(tag_list, 0)\n        return tag  \n      \n      pos = append_start_end_mark(pos, pos_vocab.start_id(), pos_vocab.end_id())\n      tag = append_start_end_mark(tag, tag_vocab.start_id(), tag_vocab.end_id())  \n      ner = append_start_end_mark(ner, ner_vocab.start_id(), ner_vocab.end_id())\n\n    #-----------comment deal start end mark\n    comment_list = [comment]\n    # if FLAGS.encode_start_mark:\n    #   logging.info('add encode start mark')\n    #   comment_list.insert(0, tf.constant([vocabulary.start_id()], dtype=tf.int64))\n    # if FLAGS.encode_end_mark:\n    #   logging.info('add encode end mark')\n    #   comment_list.append(tf.constant([vocabulary.end_id()], dtype=tf.int64))\n    \n    if len(comment_list) > 1:\n      comment = tf.concat(comment_list, 0)\n\n    char_comment_limit = FLAGS.comment_limit if FLAGS.save_char else 1\n\n    #----------deal tokens info  # TODO tokens embedding ? maybe\n    if FLAGS.use_token_info:\n      tokens_info_list = [tokens_info]\n      # if FLAGS.encode_start_mark:\n      #   tokens_info_list.insert(0, tf.constant(attribute_default_values, dtype=tf.float32))\n      # if FLAGS.encode_end_mark:\n      #   tokens_info_list.append(tf.constant(attribute_default_values, dtype=tf.float32))\n      \n      if len(tokens_info_list) > 1:\n        tokens_info = tf.concat(tokens_info_list, 0)  \n\n    #---------comment chars\n    if FLAGS.use_char:\n      comment_chars_list = [comment_chars]\n      # if FLAGS.encode_start_mark:\n      #   #comment_chars_list.insert(0, tf.ones([FLAGS.char_limit], dtype=tf.int64))\n      #   # TODO below indices[15794,0] = 593 is not in [0, 593), because in merge_char_emb no start and end mark save \n      #   # Will change to use below next time merge-char-emb add start and end mark\n      #   comment_chars_list.insert(0, tf.scatter_nd(tf.constant([[0]]), tf.constant([char_vocab.start_id()], dtype=tf.int64), tf.constant([FLAGS.char_limit])))\n      # if FLAGS.encode_end_mark:\n      #   #comment_chars_list.append(tf.ones([FLAGS.char_limit], dtype=tf.int64))\n      #   comment_chars_list.append(tf.scatter_nd(tf.constant([[0]]), tf.constant([char_vocab.end_id()], dtype=tf.int64), tf.constant([FLAGS.char_limit])))\n\n      if len(comment_chars_list) > 1:\n        comment_chars = tf.concat(comment_chars_list, 0)  \n\n    #---------comment ngrams\n    if FLAGS.use_ngrams:\n      ngram_vocab = gezi.Vocabulary(FLAGS.vocab.replace('vocab.txt', 'ngram_vocab.txt'))\n      comment_ngrams_list = [comment_ngrams]\n      # if FLAGS.encode_start_mark:\n      #   comment_ngrams_list.insert(0, tf.scatter_nd(tf.constant([[0]]), tf.constant([ngram_vocab.start_id()], dtype=tf.int64), tf.constant([FLAGS.char_limit])))\n      # if FLAGS.encode_end_mark:\n      #   comment_ngrams_list.append(tf.scatter_nd(tf.constant([[0]]), tf.constant([ngram_vocab.end_id()], dtype=tf.int64), tf.constant([FLAGS.char_limit])))\n      \n      if len(comment_ngrams_list) > 1:\n        comment_ngrams = tf.concat(comment_ngrams_list, 0)\n\n    simple_chars_list = [simple_chars]\n    # if FLAGS.encode_start_mark:\n    #   simple_chars_list.insert(0, tf.constant([char_vocab.start_id()], dtype=tf.int64))\n    # if FLAGS.encode_end_mark:\n    #   simple_chars_list.append(tf.constant([char_vocab.end_id()], dtype=tf.int64))\n    if len(simple_chars_list) > 1:\n      simple_chars = tf.concat(simple_chars_list, 0)    \n\n\n    features[comment_key] = comment\n    features['comment_chars'] = comment_chars\n    features['simple_chars'] = simple_chars\n    features['comment_ngrams'] = comment_ngrams\n\n    x = features\n    y = classes\n    return x, y\n\n"
  },
  {
    "path": "projects/kaggle/toxic/evaluate.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os, time\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom algos.config import CLASSES\nfrom sklearn.metrics import roc_auc_score\n\ndef calc_auc(labels, predicts):\n  total_auc = 0. \n  aucs = [0.] * len(CLASSES)\n  for i, class_ in enumerate(CLASSES):\n    auc = roc_auc_score(labels[:, i], predicts[:, i])\n    aucs[i] = auc\n    total_auc += auc\n  auc = total_auc / len(CLASSES) \n  vals = [auc] + aucs\n  names = ['auc/avg'] + ['auc/%s' % x for x in CLASSES]\n  return vals, names"
  },
  {
    "path": "projects/kaggle/toxic/prepare/__init__.py",
    "content": ""
  },
  {
    "path": "projects/kaggle/toxic/prepare/black.csv",
    "content": "id,comment_text,unk_ratio,toxic\r\n6bd145a2089e7572,= = You are a fucking <N> CUNT \\ <N> G > CUNTG > CUNTG > CUNTG > CUNTG > CUNTG > CUNTG > CUNTG > CUNTG > CUNTG > CUNT,0.290322580645,0.987792698352\r\n0c6025274c2762d1,Widr sucks xDICKSx <N> Widr sucks xDICKSx <N> Widr sucks xDICKSx <N> Widr sucks xDICKSx <N> Widr sucks xDICKSx <N> Widr sucks xDICKSx <N> Widr sucks xDICKSx,0.259259259259,0.976866907724\r\nfc53017d9b2302bc,\"i do nt kare . lalaalaal , i dopnt kare jasklsfd sklsflghaehwfdonytdont fucking delte me atghtgrgrgrgoadoshipasdo ghi <JOIN> pdg hi ghopmiasgd iogh u stupid pedifile\",0.28,0.974658932176\r\nf00da77f9101dcc1,jhfjksdhmvbkjdf fuck nsdfhgjdfhgjkladfg,0.666666666667,0.966445743165\r\nfef08b01324576bf,= = PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK = = <N> <N> PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE <JOIN> AHOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLEPHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOL,0.398795180723,0.961754276385\r\n7d2c12e2c9bafaf3,Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD <JOIN> Penis HCTIBSTIDEDOOGYMODNUTNOD <N> Penis HCTIBSTIDEDOOGYMODNUTNOD,0.33734939759,0.960808741093\r\n5bf95668035f5976,= = PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK = = <N> <N> PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE PHCK U A$ $ HOLE,0.397727272727,0.958872355084\r\n5adb9fa7be060b96,this is all obama 's fault . obamaobamaobamaobamaobamaobamaobama obamaobamaobamaobamaobama obamaobamaobamaobamaobamaobama obamaobamaobam aob <JOIN> ama obamaobamaobama obamaobamaobamaobamaobamaobamaobama obamaobamaobama obamaobamaobamaobamaobama . this message brought to you by some fucking retard,0.285714285714,0.958655797793\r\nff6089eac4df85b9,zdrgfvvasfl <SEP> hbfg <SEP> p <SEP> aerg <SEP> aerg <N> <N> suck balls,0.307692307692,0.95682773051\r\nda250096be215789,and sexting asds farts wlcome you to a fart in gthjeface inmy ass fartsgyjkhjmjhmhjmnhjmnjhmnhjhjm nhbg <N> gfvbnhjmuoyjugtfrhyjumnhg,0.294117647059,0.955555000039\r\nc434cacf9cc64d93,\"zbm <JOIN> dbj , vabs zj , hbchajvgzkhbdmzb khvz , bdcvajhzbdskcivh khsd fuck\",0.461538461538,0.954132444301\r\n6f6d48f3705e2a13,\", lcbl <SEP> bl <SEP> bmcv <SEP> bmklbvlmnbgfbnlnbjfnjkfnbj hi fucked person\",0.272727272727,0.953085793284\r\n52a47058c8028ac5,; kjngf <SEP> kgfnxk <SEP> fgjkmyjmkjgkhdklhgklkoldjflhjlklhjsrpoiy <SEP> ujoijrtyoiweajtijrypawhriyht iyhtihgishtgisdhfgiphisdhfihdighifhihfghirhgp <SEP> ehrtgiehtighsdhfjkhgjfhgjkshdgkjhaiewthirhtiahsefheihtiehtihisdhngsgjkhnkjghdfsjhgnsjdhrtgirhtirhyihriyhifhighaihdgiahrhtjrhjtghsdkfhtgkjshtklahtuehtaushlhjdhfdjhsjdfhgj hjhdfjhgjfhgjfhgfj ur gay <JOIN> fuk u,0.411764705882,0.934079722392\r\n6277ed869210b9ff,yet non fiction klsahdousayermwaheg cqyitwe vo <SEP> eyrnb sanb hell yea ; slditfgpwrejtiualjwhe wp weutgsgsolo lol bitch,0.352941176471,0.924635965724\r\n88610832018c9df3,cKuM GiT It cKiTy = = <N> yEvH BiT <JOIN> cKh jUsT ReVdK ThE TiTlE ThVtS WvT It iS ReVl nIg <JOIN> GvS ViNt tVkE Ur sHYt y u dElEtE It u dOnT No ShIt bOuT Dv hOodK R WvT GoEs dKoWn <N> <N> <N> = =,0.255319148936,0.908817337435\r\n1b594eae68fda5d7,the thing mr <SEP> hjckvicjnviufjsbdovfg <SEP> vlfgv <SEP> fgkgk <SEP> rk ] <N> kshdglvadsgijvsglpjehrpoyi <SEP> eoyoeiytbiopqejiopth <SEP> osur <SEP> mdfco you pice of shit,0.291666666667,0.903667002481\r\nad968d3ec5bac5c2,ɗ ι Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω ʈ ɖ ɟ ɡ ɢ ʡ ʔ ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ ɱ ɳ ɲ ŋ ɴ ʋ ɹ ɻ ɰ ʙ ʀ ɾ ɽ ɫ ɬ ɮ ɺ ɭ ʎ ʟ ɥ ʍ ɧ you re a dickhead,0.592592592593,0.862162114694\r\n04ff1e8378748a64,= = i hate this website it sucks = = <N> <N> sgahdgsjfk ghdfjhmdxcfvdfbfksdjhsfhdsfshfsdjhsjhfj <N> dfjdksfjshjdfksh <N> fdfjdjghfjksdhjhsklfhdfhsk <N> dkjgkdjglghdfjgdjfhdklfhskldfhslas <SEP> da <SEP> dhg <JOIN> sla <N> gfdjgkfdjlhhadjkhfksdlhglshlhflhgjdhgjdfhdjfhslsdhlaf <SEP> dffjhshaklaedklfh <N> fdfjdsfalfadjlkfjkhdjfhjfdhfdsfjhlskhjhhjfhfjdksdlskls <N> dhjfsglffhgghasdfhdfgllksdjfsgfdgfgfgsfhgsg <N> dfgsfgdjkfhjkdshf <SEP> fsdfhsdjfhjdhkshlsdfakhdfhdfjlsdfsdl <N> fsdjkfhksdlahhdsajksdfhfhsjksfkdjfhakjhdlfdhflahsfjfj <N> fdjsaffjhfjkhdjahfjflsflafihlfhfldds,0.309523809524,0.837332901071\r\nf5b657f776a8b110,MIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NNNNNNNNNNNNNNNNNNNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE IIIIIIIIIIIIIIIIIIIIIIIISSSSSSSSSSSSSSSSSSSSSSSS TTTTTTTTTIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMYYYYYYYYYYYYYYY TTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUURRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR SSSSSSSSSSSSSSSSSSOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO SSSSSSSSSSSSSSSSSSSSSSSSSSUUUUUUUUUUUUUUUUUUUUUUUCCCCCCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKKKKKKK OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNN TTTTTTTTTTTTTTTTTTTTTTTHHHHHHHHHHHHHHHHHHHHHHHHHAAAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTT,1.0,0.822929905171\r\ne4e8cffa204a43bd,FFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKKKKKKKKKKKK AAAAAAAAAAAAAAAAAAAALLLLLLLLLLLLLLLLLLLLLLL OOOOOOOOOOOOOOOOOOOOOOOFFFFFFFFFFFFFFFFFFFFFF YYYYYYYYYYYYYYYYYYYYYYYYYYOOOOOOOOOOOOOOOOOOOOOOOOUUUUUUUUUUUUUUUUUUU .,0.8,0.812712188496\r\nba570c1dd8e9bec3,\"Suck my dick January , who cunt whore 50150 65847 97360 95009 11418 <N> 15360 96029 81607 50481 82809 <N> 82698 82151 58833 50283 05402 <N> 98744 39677 26523 14320 15821 <N> 29909 44718 87306 83668 14152 <N> 13650 15166 15688 02559 89382 <N> 88822 89673 57635 38045 28692 <N> 77032 32326 47778 27212 03342 <N> 95506 37654 51880 92594 03252 <N> 27115 36903 53601 46338 97324 <N> <N> <N> 16924 28078 62325 12830 92372 <N> 78337 98944 21298 83454 96855 <N> 68136 37395 16016 38034 27835 <N> 39452 75921 24341 30523 18073 <N> 01211 06533 36939 37634 14296 <N> 77792 30770 20841 70954 85669 <N> 74772 01709 75343 87326 33317 <N> 75387 76378 76207 05928 47789 <N> 67342 93554 15278 18512 82523 <N> 81874 90553 28194 46162 80711 <N> <N> <N> 58996 19687 05438 20981 86353 <N> 87905 29441 01963 44898 19768 <N> 12530 84494 10882 15499 62289 <N> 10777 24573 23458 88746 13067 <N> 24871 96304 92803 41910 42539 <N> 31567 28157 54142 34212 55399 <N> 29805 98436 19235 56259 31702 <N> 94805 24453 78160 59901 38631 <N> 57374 57023 95105 10829 80696 <N> 01988 27333 59174 92828 67197 <N> <N> <N> 08024 55251 93466 99189 46928 <N> 48725 00518 87087 82106 11684 <N> 78817 51986 84990 72653 31125 <N> 48548 72084 16150 99226 78670 <N> 49228 39720 35291 87290 55134 <N> 74664 76421 21822 48839 52566 <N> 19476 96630 00078 40799 58556 <N> 35416 49043 28581 58739 82127 <N> 24480 21458 62934 66822 39424 <N> 99605 86134 19288 73312 59509 <N> <N> <N> 61961 96127 50141 82324 63611 <N> 67922 98529 75757 41261 01423 <N> 62276 85618 54135 65542 25851 <N> 39118 31475 61008 45427 90343 <N> 00705 06340 43589 32521 79566 <N> 56368 89270 96754 58518 37765 <N> 55689 22737 04491 67367 46831 <N> 97459 71072 96302 34698 18630 <N> 41605 10345 76437 76194 30617 <N> 78293 83840 62184 93124 16528 <N> <N> <N> 87804 45042 30991 68396 32406 <N> 80739 59329 76675 06167 59919 <N> 17252 48994 46747 74042 01458 <N> 71292 85799 27428 80626 25807 <N> 88289 87712 46166 59174 48424 <N> 35470 92177 52501 90628 43261 <N> 42350 82600 93479 87575 53325 <N> 68491 45972 17932 04619 33983 <N> 52380 82086 55585 53511 46740 <N> 70176 79362 60562 37489 12545 <N> <N> <N> 71810 55526 20949 04930 34081 <N> 94802 51878 47256 02411 56797 <N> 75401 58080 39105 71806 78429 <N> 39922 40628 88294 46839 00293 <N> 46472 96416 98954 18063 30260 <N> 37761 02387 99178 55180 00624 <N> 42622 24325 14348 59553 24501 <N> 80128 38241 09009 24054 27681 <N> 70519 07802 82452 87115 09419 <N> 59652 70631 76469 87388 67402 <N> <N> <N> 02053 53415 14035 61454 40497 <N> 22045 91860 51550 73792 32541 <N> 53819 42299 34847 15481 36757 <N> 78686 51417 13800 38514 02099 <N> 06368 83169 70969 81130 46604 <N> 73526 98420 80836 73145 37739 <N> 48140 39594 15761 68550 95298 <N> 98497 89377 20095 25379 98578 <N> 96573 28686 78517 06465 59889 <N> 96480 55378 06744 64723 19857 <N> <N> <N> 04809 88596 20125 19781 59083 <N> 40980 39213 71909 25206 15156 <N> 48038 31890 45677 02583 37193 <N> 42641 79631 21342 93659 91490 <N> 21362 50935 72316 10177 23214 <N> 22730 87518 32662 45804 13375 <N> 89989 63421 80991 15953 32586 <N> 34149 00151 11221 80550 33348 <N> 40763 78698 43715 30996 64573 <N> 56011 72885 48652 38945 72720 <N> <N> <N> 40620 00555 72446 24629 70585 <N> 15428 77012 03996 00436 56789 <N> 68305 90812 26567 93108 28622 <N> 03265 50175 16399 19016 56232 <N> 70978 96080 62867 73719 38551 <N> 64312 50011 84866 97217 68789 <N> 88638 52923 83516 41690 69599 <N> 64180 54909 68657 52587 21181 <N> 13456 94392 79259 85732 90373 <N> 66742 82671 45642 17007 35631 <N> <N> <N> 13487 61991 51387 77253 22344 <N> 30906 65260 20576 03469 41137 <N> 76295 99518 49631 49242 83743 <N> 44966 37740 96696 10495 69825 <N> 98767 52810 86654 52381 53927 <N> 86769 98741 94034 34329 35745 <N> 76069 33155 04576 70798 24971 <N> 63109 18899 44847 20727 96829 <N> 79916 49011 90566 20383 90447 <N> 47309 45696 48378 27060 40028 <N> <N> <N> 77394 14647 77776 08479 35997 <N> 97601 52146 44890 68395 51385 <N> 61360 76704 94995 62448 36938 <N> 11802 61393 70585 12577 16143 <N> 98855 37123 78221 07697 66014 <N> 08068 02036 26359 68416 14713 <N> 30395 10847 30389 35194 93887 <N> 05085 23049 15436 77981 20824 <N> 51156 20150 16005 54099 60399 <N> 51843 90050 95755 23281 32712 <N> <N> <N> 68153 58163 61963 85140 53053 <N> 36687 12422 46739 15715 66806 <N> 91274 68325 19386 95341 63568 <N> 09578 00910 94813 77140 27537 <N> 19883 55919 75369 56173 73331 <N> 13689 40671 32473 91555 14359 <N> 25098 20457 17158 70841 84166 <N> 95764 05066 64627 88785 05106 <N> 80684 94804 18979 90955 89925 <N> 73126 48793 40709 61946 05638 <N> <N> <N> 64934 01590 04281 38150 14060 <N> 62245 22467 76034 73383 11517 <N> 33518 00529 02713 63167 57404\",0.413959085439,0.784037043055\r\n80eb4d4276456127,KAytlin Driedger Pussy,0.666666666667,0.775965650042\r\n5a55321e132e60de,ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccckkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyooooooooooooooooooooooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu <SEP> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiittttttttttttttttttttttttttttttttttttttttttttttcccccccccccccccccccccccccccccccccccchhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh,0.75,0.769289003642\r\n2230c29afbdbd4b0,\"fuke you nigas <N> asfgh jihgijfhgjfhgfkghfdgvhifgvhd bakhg hjh <JOIN> gdj , hfgfgkjhgf hdghd jhgjgfj hdfgf jvhjgvhdvfg\",0.625,0.72418786961\r\nc81fac9687655697,WARNING ! This page has protected from f * * * * * * bots and admins ! <N> <N> ВНИМАНИЕ ! Эта страница защищена от сраных ботов и админов !,0.258064516129,0.722425973657\r\neae263b3396ed1d3,= = ksns = = <N> <N> hjfjjifjejjdereg gii <JOIN> eur mnmh hjdifmhjjj jug ulers fidopjvj fucking jnfvnhjfjcjnjshdncccccccccccccccccccszjdmfhzsjfgsdzfgjf sjbfsnbsfjhbs fhsjfhfhfnfhbge teg <JOIN> rgf ghgyhredhf fhnfcncnc hn dcjfc jfc fcjn fcndejgfv v n nfvc nv hv fhvnfvhnbfjjdjedjfd fjndnjdj <N> = = Headline text = =,0.409090909091,0.710971247785\r\n787c084807a91a25,\"AW , YHGUVIUILVBRUIYTUEWYATCBULARUYHVLNCAYRGUNGHSNVR SRH <JOIN> SBV <SEP> IRTH <SEP> HWSYN L UGYRT WIGNLTHV <SEP> IOUYHER YGIUYNVIOW WYT WEHUTHLRIU IUWRVYNI VR UYWURYT <SEP> WIO <JOIN> UPF PIUGHUIERTGWPI IRUIWHHWOIUYHITUW YURWYRHGPOIWUTG NWPQPOITYRHWOI TJWPOIYHPWHIJPO YOTYPQPI WRT [ [ TJPIHTYPPOTRPTTW T <SEP> IRIITJRHYJHIWR RTUIRUI <SEP> TREWTHUIHW <SEP> TWR MTRNINRIT <SEP> N YIO <SEP> WIRTPIYN UWHTNBPBFQHUGLB QIU UIW <JOIN> QIU UQIRPI TQRP QEUIQYTR QPQIUQYPIOQTPQYP QYTIOUQYTYOPQUYQPTQYT YEQPUIQTYPYQTPEIU ETYPTUIPRPQQYP QRWEYPIQY RTW <JOIN> EHQ RQPIPT QETPQTPT TQPQPPRIUTPIRYTIYTQPR RTPOQUQTOITYPI TWWYUWYJYYEUIEB <N> 1236.023250565 GFYGDTH KAY <JOIN> UDG BACO KJG <SEP> QIU <JOIN> TYO <SEP> Y <SEP> GO <SEP> Q <SEP> OFJOIBKU KGQTY <SEP> LFUQLUGBQOC UYGQTUGQLUEGFUKQHGF UYLGFOQUIFGOQIUROIGUHROIUTOI UGUOGORIUFGUHBGUHPAUHFJHAERPGHGHA ; ROIAHEIUGHEW PIUAFGLIUGH LSADHGLH <SEP> AOIDS DIHIALUBGLIU AALDIHIAH ADUGH <SEP> ADULI A ASS HOLE LJYG <SEP> I\",0.486725663717,0.706671528753\r\n03d6e5da188d5e16,YOUUUUUUUUUUUUUUUUUUUUUUUUUUU ALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLLLOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOKKKKKKKKKKKKKKKKKKKKKKKKKK LLLLLLLLLLLLLLLLLIIIIIIIIIIIIIIIIIIIIIIIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKEEEEEEEEEEEEEEEEEEEEE SSSSSSSSSSSSSSSSSSHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIITTTTTTTTTTTTTTTT,1.0,0.68176805182\r\n58567ded6f4f26fb,diiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiickkkkkkkkkkkkkkkkkkkkckkckckckckckckckcccckkkkkkkks <N> lllllllllllllllllllllllllllllllllllllllllllllllllllooooooooooooooooooooooooooooooooooooooooooooooooooooollllllllllllllllllllllllllllllllllllllllllllllllllllllll <N> ja <SEP> her <JOIN> sdb <SEP> t <SEP> t <SEP> ygb <SEP> w <SEP> sezfuogbtawesiorpk <SEP> tw <SEP> sdr <SEP> iouhkjnehrsd <SEP> gyu <JOIN> iue <SEP> jwrhsdn <SEP> yuidhkjxgzbvs <SEP> u <SEP> uiw <SEP> aul <SEP> ise <SEP> qiq <SEP> q <SEP> etuqg <SEP> q <SEP> eudtjgq <SEP> dtyq <SEP> h <SEP> yqrt <SEP> quio <SEP> yerhq <SEP> ui <SEP> y <SEP> wheq <SEP> drtbq <SEP> uytyh <SEP> rtdqh <SEP> ourhjhqluksdhyoaqrkuahdfaqkjnaqrtuheaq <SEP> aqeryhuirtghuinrtgf hahahahahaha <N> immigrants up your asses poooooooooooooooooooooorrrrrrrrrrrrrrrrnnnnnnnnnnnnnnn <N> lksxzghb <SEP> uiasfyjzsebdruyoigksdt - dt <SEP> yh <SEP> nykdjnukdsjfnbiujysedghiysfhxbtery <SEP> t <SEP> bythbhreb dfvsevvser <SEP> ew <SEP> egguerg <N> ye <SEP> tbbrberbhfehghogjgfhrghueruhgueruerh ctyhcgvhbwoaersudhizlkndhxjk dddddddddddddddiiiiiiiiiiiiiiiiiiiiiiiiicccccckkkkkkkkkkkksssssss,0.266055045872,0.624115757449\r\n98a2d9c2492f3ca2,Gpyjmopehbjtiobhtjrk <SEP> shtrjsbhtrvnvuptmvoptmhriovh <SEP> tnkl <SEP> tjosgibdfjg <SEP> herjkla <SEP> ghriogahdfjkgn <SEP> erklgtlerupagidfoh <SEP> vieto <SEP> nvklt <SEP> hga <JOIN> dfu <SEP> fjgf <SEP> gdruxghldurilghtudi <SEP> gjtk <SEP> sgndrhgdfuilhgvuidfngjkt <SEP> hgtjrhgsdruihgipdrhgudfphjgorhguodrhguidrhaguorhigkerhagoph hgfurpehgiorhgio <SEP> rehjgiopaerhguioprjgiorhguoparhgeruiphgjrghtuib <SEP> gjkrhaguier <SEP> bgjr <SEP> hger <SEP> hguioerhguor <SEP> aeghhgmil <SEP> dvhkcmsekcgnujnvmirsdp ; ghrdukwlgrjiodgjiroesghtuiosh <JOIN> god sucks .,0.442307692308,0.618766219409\r\ne50fd8cd93f062bc,baby gmitujuijruigjtugutgujggggjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj sssssssssssssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuccccccccccccccccccccccccccckkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk iiiiiiiiiiiiiiiiittttttttttttttttttt bbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbyyyyyyyyyyyyyyyyyyyyy,0.8,0.600834651225\r\nc13f9c622790cae1,\"= = CCCP <N> Greetings from Indian Soviet Socialist Republic <N> <N> Привет из Индийской Советской Социалистической Республики <N> <N> our organization : soiuz voinstviu <SEP> ih bie <JOIN> zbo <SEP> nikov & soiuz voinstviu <SEP> ih liu <JOIN> bie <SEP> nikov <N> <N> наша организация : союз воинствующих безбожников & союз воинствующих любежников <N> <N> our propaganda : fucking , sari , stretching , dhoti <N> <N> наша пропаганда : еблание , сари , натягивание , дхоти\",0.307692307692,0.520569919052\r\n1ba4518ceaca227b,ＷＨＡＴＡ ＦＵＣＫ ＭＡＮ ｘＤ ｉ ｊｕｓｔ ｆａｌｌ ｏｆ ｍｙ ｃｈａｉｒ ｋｕｚ ｉ ｃｏｕｌｄｎｔ ａｎｄ ｉ ＣＡＮＴ ｓｔｏｐ ｌａｕｇｈ ｘＤＸＤＸＤＸＤＸＤＤＤＤＤＤＤＤＤＤＤＤＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤ ＯＭＧＯＳＨ <N> ＤＤＤＤＤＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＸＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤ ＤＤＤＤＤＤ <N> ＬＯＯＯＯＯＯＯＯＯＬＬＬＬＬ ＴＨＩＳ ＩＳ Ａ ＳＨＩＴ <N> ＸＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＸＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤＤ Ａ ＢＩＧ ＯＮＥ <N> ＸＤＤＤＤＤＤＤＤ Ａ ＧＲＡＴ ＯＮＥ ＸＸＸＸＸＸＤＤＤＤ ＣＯＮＧＲＡＴＳ ＭＡＮ ＸＤ,0.906976744186,0.393412807024\r\n7e8228cd15603a62,\"\"\" = = india is great i will proud then i am indian = = <N> <N> █ █ █ █ █ █ █ █ █ █ █ <N> पाकिस्तान जितना बारूद तेरे देश मेँ है , <N> उससे तीन गुना ज्यादा बारूद हम भारतीय <N> दीवाली की रात जला देते हैं .. ! ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> यह है भारत देश यहां के हिन्दु बड़े निराले है , <N> कुछ है , श्री राम के भक्त कुछ बाबर के साले है .. ! ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> लश्कर की सेना मे जितने दाढ़ी वाले है , <N> उससे ज्यादा हरिद्वार मे माला कंठी वाले है , <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> पाकिस्तान मे जितने घर है , उतने यहां शिवालय है ! ! <N> 2 देशो को एक ही समय 1947 को आजादी मिली .. ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> एक मंगल पे पहुँच गया और दूसरा अभी भी भारत में घुसने <N> कि तरकीबें सोच रहा .. ! ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> पाकिस्तानी बोलते है कि हम हिंदुओ <N> को जिंदा जला देंगे .. ! <N> उन के लिए 2 लाईन पेश कर रहा हु ...... <N> \"\" \"\" जलते हुए दिए को परवाने क्या बुझायेंगे , <N> जो मुर्दों को नही जलाते <N> वो जिन्दो को क्या जलाएंगे , <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> ना हम शैतान से हारे , ना हम हैवान से हारे , <N> कश्मीर में जो आया तूफान , ना हम उस तूफान से हारे , <N> यही सोच कर ऐ पाकिस्तान , हमने तेरी जान बक्शी है , <N> शिकारी तो हम है मगर , हमने कभी कुत्ते <N> नहीं मारे .. ? ? <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> * * * * * * * * वन्देमातरम * * * * * * * * <N> █ █ █ █ █ █ █ █ █ █ █ <N> हिंदुत्व जिंदाबाद था जिंदाबाद हैं और जिंदाबाद रहेगा <N> मैं हिंन्दू हु <N> बिकने वाले ओर भी जातियाँ हैं→जा कर खरीद ले <N> हिंदू कीमत से नहीं किस्मत से मिला करते हैं. <N> किसी ने मुझसे पूछा कि <N> हिंदू की जनसंख्या इतनी कम क्यों है ? <N> मैंने उतर देते हुए कहा - यह प्रकृति का नियम है <N> यदि शेरों को बढा दिया जाए , तो दुसरी जातियाँ खतरे मे पड़ जाएगी । <N> हिन्दू हिन्दू बनो आपस में भाई भाई <N> भारत माँ को बचाने की शुभ गड़ी अब आई <N> एक हो जाओ मेरे <N> हिन्दू वीर भाई <N> यदि हिंदू हो तो शेयर करो वर्ना इग्नोर तो दुसरी प्रजातियाँ भी कर देगी . <N> जय हिन्द <N> जय हिंदु <N> मैं हिंदू हूँ .. 👴 जय भारत <N> चीर कर बहा दो लहू , दुश्मन के सीनेका ... <N> यही तो मजा है , हिन्दू होकर जीने का .. ! ! ! <N> जितनी पाकिस्तान की जनसंख्या हैँ । <N> उतने भारत मेँ कैदी हैँ ! <N> कैदियो को बोल दो सजा माफ , <N> साला सुबह होते होते पाकिस्तान साफ ! ! <N> कसम है हर पढ़ने वाले को माँ भारती की जरुर शेयर करे I love India BT some people are chest in this country . BT India is most powerfull country then kill them all ... so Bach ke rehna .. India se \"\"\",0.538587848933,0.376111846464\r\n76f8334f8ae67606,= = gsdfg ∆∆˙ © ∆˙ © ∆˙ © ∆˙ © ∆˙ © ∆˙ © ∆˙ © ∆˙ © ∆ = = <N> <N> do nt tell me what to do fatty,0.3125,0.336046723819\r\nc562aef1060ae387,= = こんにちは売春婦 = = <N> ちょっと ! 馬鹿である ! 私は憎む ! 私のページを削除してはいけない 。 さようなら,0.4,0.188725156865\r\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/config.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport json \nimport random\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer('comment_limit', 0, '2500 can cover 95% data, 25000 can cover all, 1000')\nflags.DEFINE_integer('test_comment_limit', 0, '2500 can cover 95% data, 25000 can cover all, 1000')\n\nflags.DEFINE_integer(\"char_limit\", 16, \"Limit length for character, 16\")\nflags.DEFINE_integer(\"ngram_limit\", 80, \"Limit length for ngrams\")\nflags.DEFINE_integer(\"ngram_buckets\", 2000000, \"ngram hash buckets\")\nflags.DEFINE_bool(\"save_char\", True, \"\")\nflags.DEFINE_integer(\"simple_char_limit\", 1000, \"\")\n\nflags.DEFINE_bool('ftngram', False, '')\n\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/count-unks.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   count-unks.py\n#        \\author   chenghuige  \n#          \\date   2018-03-21 00:04:00.722879\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nfrom gezi import Vocabulary\nimport pandas as pd\n\ndir = '/home/gezi/temp/toxic/v16/tfrecords/glove.lower/'\n\nvocab = Vocabulary(dir + 'vocab.txt')\n\ndef run(input):\n  total_tokens = 0\n  total_unks = 0\n  num_specials = 0 \n  num_toxic = 0\n  output = input.replace('.csv', '.numunks.csv')\n  output_speial = input.replace('.csv', '.special.csv')\n  df = pd.read_csv(input)\n  ids = df['id'].values\n  comments = df['tokens'].values \n  if 'toxic' not in df.columns:\n    df['toxic'] = [0.] * len(comments)\n  toxics = df['toxic'].values\n  \n  num_tokens_list = []\n  num_unks_list = []\n\n  sids = []\n  scoments = []\n  sratios = []\n  stoxics = []\n\n  for id, comment, toxic in zip(ids, comments, toxics):\n    tokens = comment.split()\n    num_tokens = len(tokens)\n    num_unks = len([x for x in tokens if not vocab.has(x.lower())])\n    num_tokens_list.append(num_tokens)\n    num_unks_list.append(num_unks)\n    \n\n    total_tokens += num_tokens\n    total_unks += num_unks\n    ratio = num_unks / num_tokens \n    is_special = False \n\n    if ratio > 0.5:\n      is_special = True \n    if ratio > 0.25 and num_tokens > 10:\n      is_special = True\n\n    if is_special:\n      num_specials += 1\n      sids.append(id)\n      scoments.append(comment)\n      sratios.append(ratio)\n      if toxic > 0:\n        num_toxic += 1\n      stoxics.append(toxic)\n\n  odf = pd.DataFrame(data=ids, columns=['id'])\n  odf['num_tokens'] = num_tokens_list\n  odf['num_unks'] = num_unks_list \n  odf['toxic'] = df['toxic'].values\n\n  odf.to_csv(output, index=False)\n\n  odf = pd.DataFrame(data=sids, columns=['id'])\n  odf['comment_text'] = scoments\n  odf['unk_ratio'] = sratios \n  odf['toxic'] = stoxics\n  odf.to_csv(output_speial, index=False)\n\n  print('total_tokens', total_tokens, 'total_unks', total_unks, 'unk_ratio', total_unks / total_tokens, 'num_specials', num_specials, 'num_toxic', num_toxic)\n\nrun(dir + 'train.csv')\nrun(dir + 'test.csv')\n\n  \n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/extend-table.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   extend-table.py\n#        \\author   chenghuige  \n#          \\date   2018-02-08 17:56:56.767326\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport pandas as pd\n\nimport gezi\n\n#m = pd.read_csv('~/data/kaggle/toxic/train.csv')\nm = pd.read_csv('~/data/kaggle/toxic/test.csv')\ncomments = m['comment_text'].values\n\ndef process(x):\n  x = gezi.filter_quota(x)\n  x = gezi.tokenize(x)\n  return x\n\ncomments = [process(x) for x in comments]\n\nm['comment'] = comments\n\n#ofile = '~/data/kaggle/toxic/train_ex.csv'\nofile = '~/data/kaggle/toxic/test_ex.csv'\nm.to_csv(ofile, index=False)\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/filter-special.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   filter-specail.py\n#        \\author   chenghuige  \n#          \\date   2018-03-21 01:43:34.617574\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport pandas as pd\n\npdf = pd.read_csv('/home/gezi/temp/toxic/v16/tfrecords/glove.lower/ensemble_0359_124678_lc_handled.csv')\nids = pdf['id'].values\ntoxics = pdf['toxic'].values\n\nm = {}\nfor id, toxic  in zip(ids, toxics):\n  m[id] = toxic\n\ndf = pd.read_csv('/home/gezi/temp/toxic/v16/tfrecords/glove.lower/test.special.csv')\n\nids = df['id'].values\ncomments = df['comment_text'].values \ntoxics = []\n\nfor id, comment in zip(ids, comments):\n  toxics.append(m[id])\n\ndf['toxic'] = toxics \n\ndf = df.sort_values(['toxic'], ascending=[0])\n\ndf.to_csv('/home/gezi/temp/toxic/v16/tfrecords/glove.lower/test.special.score.csv', index=False)\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-correction.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-lang.py\n#        \\author   chenghuige  \n#          \\date   2018-03-11 22:49:32.208144\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport pandas as pd\n\nimport tqdm \n\nimport numpy as np\n\nfrom textblob import Word\n\nimport gezi \nfrom gezi import Vocabulary\n\nfrom tokenizer import is_toxic\n\nfrom tokenizer import en_filter\n\ndef get_en_token(token):\n  tokens, en_tokens = en_filter(token)\n  en_token = ''.join(en_tokens)\n  return en_token\n\nvocab = Vocabulary('/home/gezi/temp/toxic/v13/tfrecords/glove/vocab.txt', max_words=3000)\n#vocab = Vocabulary('/home/gezi/data/glove/glove-vocab.txt')\n\ndef run(file_):\n  ofile = file_.replace('.csv', '.correction.csv')\n  #print(ofile)\n  df = pd.read_csv(file_) \n  df = df[:1000]\n  ids = df['id'].values \n  try:\n    toxic = df['toxic'].values\n  except Exception:\n    toxic = [0] * len(ids)\n  comments = df['comment_text'].values \n\n  results = []\n  i = 0\n  for comment in tqdm.tqdm(comments):\n    tokens = gezi.tokenize_filter_empty(comment)\n    corrections = []\n    for token in tokens:\n      if vocab.has(token):\n        continue\n\n      token = get_en_token(token)\n      if vocab.has(token):\n        continue\n\n      word = Word(token)\n      l = word.spellcheck()\n      w, prob = l[0]\n\n      if w != token and token[0].lower() == w[0].lower() and prob >= 0.9:\n        if is_toxic(w):\n          print(ids[i], token, w, prob, toxic[i])\n          corrections.append('%s:%s' % (token, w))\n    \n    result = ' '.join(corrections) if corrections else 'None'\n    results.append(result)\n    i += 1\n\n  results = np.array(results)\n\n  odf = pd.DataFrame(data=ids, columns=['id'])\n  odf['correction'] = results\n  odf['toxic'] = toxic\n  odf.to_csv(ofile, index=False)\n\nmode = 'train'\nif len(sys.argv) > 1:\n  mode = sys.argv[1]\n\nif mode == 'train':\n  run('~/data/kaggle/toxic/train.csv')\nelse:\n  run('~/data/kaggle/toxic/test.csv')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-en-lang-prob.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-lang.py\n#        \\author   chenghuige  \n#          \\date   2018-03-11 22:49:32.208144\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport pandas as pd\n\nimport tqdm \n\nimport numpy as np\n\ndef run(file_):\n  ofile = file_.replace('langs.csv', 'enprob.csv')\n  #print(ofile)\n  df = pd.read_csv(file_) \n  #df = df[:100]\n  ids = df['id'].values\n  langs = df['lang'].values \n  \n  en_probs = []\n\n  for item in langs:\n    if item == 'None':\n      en_probs.append(1.)\n    else:\n      l = item.split()\n      if len(l) == 1 and l[0].startswith('en:') and float(l[0].split(':')[1]) > 0.999:\n        en_probs.append(1.)\n      else:\n        en_prob = 0.\n        for x in l:\n          lang, prob = x.split(':')\n          prob = float(prob)\n          if lang == 'en':\n            en_prob = prob \n        en_probs.append(en_prob)\n    \n  en_probs = np.array(en_probs)\n\n  odf = pd.DataFrame(data=ids, columns=['id'])\n  odf['enprob'] = en_probs\n  odf.to_csv(ofile, index=False)\n\nrun('~/data/kaggle/toxic/train.langs.csv')\nrun('~/data/kaggle/toxic/test.langs.csv')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-full-vocab.sh",
    "content": " python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/tfrecords/glove/ --vocab_name vocab.full --min_count -1\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-lang.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-lang.py\n#        \\author   chenghuige  \n#          \\date   2018-03-11 22:49:32.208144\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport pandas as pd\n\nimport tqdm \n\nimport numpy as np\n\n\nfrom langdetect import detect_langs\nfrom langdetect import DetectorFactory\nDetectorFactory.seed = 0\n\ndef run(file_):\n  ofile = file_.replace('.csv', '.langs.csv')\n  #print(ofile)\n  df = pd.read_csv(file_) \n  #df = df[:100]\n  ids = df['id'].values\n  comments = df['comment_text'].values \n\n  results = []\n  for comment in tqdm.tqdm(comments):\n    try:\n      result = detect_langs(comment.lower())\n      l = ['%s:%f' %(x.lang, x.prob) for x in result]\n      results.append(' '.join(l))\n    except Exception:\n      results.append('None')\n    \n  results = np.array(results)\n\n  odf = pd.DataFrame(data=ids, columns=['id'])\n  odf['lang'] = results\n  odf.to_csv(ofile, index=False)\n\nrun('~/data/kaggle/toxic/train.csv')\nrun('~/data/kaggle/toxic/test.csv')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-ori-vocab.sh",
    "content": "python3 ./gen-vocab.py --special_tokenizer=0 --vocab_name=ori_vocab --test_count=1 --out_dir /home/gezi/data/kaggle/toxic/\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-records-parse.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-01-14 11:50:06.092416\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport json \nimport random\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('dir', None, '') \nflags.DEFINE_string('input', None, '') \nflags.DEFINE_string('vocab', None, 'vocabulary txt file')\nflags.DEFINE_integer('num_records', 10, '10 or 5?')\nflags.DEFINE_string('tokenizer_vocab', '/home/gezi/data/glove/glove-vocab.txt', '')\nflags.DEFINE_string('mode_', None, '')\n\nflags.DEFINE_bool('lower', False, 'if lower then word lower')\nflags.DEFINE_bool('ngram_lower', False, 'if lower then ngram lower')\nflags.DEFINE_integer('ngram_min', 3, '')\nflags.DEFINE_integer('ngram_max', 3, '')\n\nflags.DEFINE_float('weight', 1., '')\n\nflags.DEFINE_bool('has_dup', False, '')\n\nimport config\n\nfrom gezi import Vocabulary\nimport gezi\nimport melt\nimport tokenizer\n\nimport multiprocessing\nimport pandas as pd \nfrom sklearn.utils import shuffle\nimport numpy as np\n\n#import six\n#assert six.PY3\n\nfrom tqdm import tqdm\n\nfrom multiprocessing import Value\n\nfrom tokenizer import attribute_names\n\ncounter = Value('i', 0)\n\nCLASSES = [\"toxic\", \"severe_toxic\", \"obscene\", \"threat\", \"insult\", \"identity_hate\"]\nexamples = None\nvocab = None\nunk_vocab = None\nchar_vocab = None\n\npos_vocab = None \ntag_vocab = None \nner_vocab = None\n\nngram_vocab = None\n\nenprob_dict = None\n\nimport copy\n\ndef get_id(word, vocab):\n  for item in (word, word.lower(), word.capitalize(), word.upper()):\n    if vocab.has(item):\n      return vocab.id(item)\n  return vocab.unk_id()\n\ndef get_char_id(ch, vocab):\n  if vocab.has(ch):\n    return vocab.id(ch)\n  return vocab.unk_id()\n\ndef get_ngram_id(ngram, vocab):\n  for item in (ngram, ngram.lower(), ngram.capitalize(), ngram.upper()):\n    if vocab.has(item):\n      return vocab.id(item)\n  return vocab.unk_id()  \n\ndef get_mode():\n  if FLAGS.mode_:\n    return FLAGS.mode_ \n  if not FLAGS.has_dup:\n    return 'train' if 'train' in FLAGS.input else 'test'\n  else:\n    return 'train.sents' if 'train' in FLAGS.input else 'test.sents'\n\n\ndef get_fold(ids, index):\n  ids_ = []\n  ids = list(ids)\n  ids_set = set()\n  for id in ids:\n    if id not in ids_set:\n      ids_.append(id)\n      ids_set.add(id)\n  start_, end_ = gezi.get_fold(len(ids_), FLAGS.num_records, index)\n  \n  ids.append('END')\n  ids_.append('END')\n    \n  start = None \n  end = None \n  for i in range(len(ids)):\n    if ids[i] == ids_[start_]:\n      start = i\n    elif ids[i] == ids_[end_]:\n      end = i\n      return start, end\n\ndef build_features(index):\n  mode = get_mode()\n  out_file = os.path.dirname(FLAGS.vocab) + '/{0}/{1}.record'.format(mode, index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(examples)\n  if not FLAGS.has_dup:\n    start, end = gezi.get_fold(total, FLAGS.num_records, index)\n  else:\n    start, end = get_fold(examples['id'].values, index)\n\n  ids = examples['id'].values[start: end]\n  ids = list(map(str, ids))\n  comments = examples['comment_text'].values[start: end]\n  tokens_list = examples['tokens'].values[start: end]\n  tokens_infos = examples['attributes'].values[start: end]\n  # TODO change to poses\n  poses = examples['poses'].values[start: end]\n  tags = examples['tags'].values[start: end]\n  ners = examples['ners'].values[start: end]\n  ori_tokens_list = examples['ori_tokens'].values[start: end]\n  \n  try:\n    labels = examples[CLASSES].values[start: end]\n  except Exception:\n    labels = [[0.] * len(CLASSES)] * len(ids)\n\n  with melt.tfrecords.Writer(out_file) as writer:\n    for id, comment, label, comment_tokens, ori_tokens, tokens_info, pos, tag, ner in tqdm(zip(ids, comments, labels, tokens_list, ori_tokens_list, tokens_infos, poses, tags, ners)):\n      if not isinstance(comment, str):\n        comment = 'ok'\n      comment_str = comment\n\n      comment_tokens = comment_tokens.split(' ')\n      tokens_info = tokens_info.split(' ')\n      pos = pos.split(' ')\n      tag = tag.split(' ')\n      ner = ner.split(' ')\n      ori_tokens = ori_tokens.split(' ')\n\n      if FLAGS.comment_limit:\n        comment_tokens = comment_tokens[:FLAGS.comment_limit]\n        ori_tokens = ori_tokens[:FLAGS.comment_limit]\n        tokens_info = tokens_info[:len(attribute_names) * FLAGS.comment_limit]\n\n      pos_ids = [get_char_id(x, pos_vocab) for x in pos]\n      tag_ids = [get_char_id(x, tag_vocab) for x in tag]\n      ner_ids = [get_char_id(x, ner_vocab) for x in ner]\n\n      # NOTICE comment_ids with vocab(all train + test word so no unk)\n      if not FLAGS.lower:\n        comment_ids = [get_id(token, vocab) for token in comment_tokens]\n        #comment_ids_withunk = [get_id(token, unk_vocab) for token in comment_tokens]\n      else:\n        comment_ids = [get_id(token.lower(), vocab) for token in comment_tokens]\n        #comment_ids_withunk = [get_id(token.lower(), unk_vocab) for token in comment_tokens]\n\n      comment_tokens_str = '|'.join([vocab.key(id) for id in comment_ids])\n      label = list(map(float, label))\n\n      tokens_info = list(map(float, tokens_info))\n\n      #print(len(comment_ids), len(tokens_info) / len(attribute_names), len(tokens_info) / len(comment_ids))\n      assert len(tokens_info) == len(attribute_names) * len(comment_ids), '%d %f' %(len(comment_ids), len(tokens_info) / len(attribute_names))\n\n\n      #comment_chars = [list(token) for token in comment_tokens]\n      ## CHANGE to use ori token so fu**ck will encode ** but  NiggerMan to Nigger Man will all encode NiggerMan NiggerMan twice\n      chars_list = [list(token) for token in ori_tokens]\n      char_ids = np.zeros([len(comment_ids), FLAGS.char_limit], dtype=np.int32)\n      assert len(comment_ids) == len(chars_list), '{} {} {} {} {}'.format((len(comment_ids), len(chars_list), comment), tokens, ori_tokens)\n      \n      for i, chars in enumerate(chars_list):\n        for j, ch in enumerate(chars):\n          if j == FLAGS.char_limit:\n            break\n          char_ids[i, j] = get_char_id(ch, char_vocab)\n\n      char_ids = list(char_ids.reshape(-1))\n\n      #print(char_ids)\n\n      # --------------simple char\n      simple_char_ids = []\n      for ch in list(comment):\n        id_ = get_char_id(ch, char_vocab)\n        #if id_ == char_vocab.unk_id():\n        #  continue\n        simple_char_ids.append(id_)\n        if len(simple_char_ids) == FLAGS.simple_char_limit:\n          break\n\n      simple_chars_str = ''.join([char_vocab.key(id) for id in simple_char_ids])\n      #print(simple_char_ids, simple_chars_str)\n\n      # # --------------simple ngram\n      # simple_ngrams = gezi.get_ngrams(comment)\n      # simple_ngrams = simple_ngrams[:FLAGS.simple_char_limit * 5]\n      # simple_ngram_ids = [get_ngram_id(ngram, ngram_vocab) for ngram in simple_ngrams]\n\n      # --------------ngram\n      ngram_ids_list = np.zeros([len(comment_ids), FLAGS.char_limit], dtype=np.int32)\n      if not FLAGS.ftngram:\n        #ngrams_list = [gezi.get_ngrams(token) for token in ori_tokens]\n        if not FLAGS.ngram_lower:\n          ngrams_list = [gezi.get_ngrams(token, FLAGS.ngram_min, FLAGS.ngram_max) for token in comment_tokens]\n        else:\n          ngrams_list = [gezi.get_ngrams(token.lower(), FLAGS.ngram_min, FLAGS.ngram_max) for token in comment_tokens]\n\n        for i, ngrams in enumerate(ngrams_list):\n          for j, ngram in enumerate(ngrams):\n            if j == FLAGS.char_limit:\n              break\n            #assert get_ngram_id(ngram, ngram_vocab) < 20003\n            ngram_ids_list[i, j] = get_ngram_id(ngram, ngram_vocab)\n      else:\n        #for i, (token, ori_token) in enumerate(zip(comment_tokens, ori_tokens)):\n        for i, (token, ori_token) in enumerate(zip(comment_tokens, comment_tokens)):\n          ngram_ids = gezi.fasttext_ids(ori_token, vocab, FLAGS.ngram_buckets, FLAGS.ngram_min, FLAGS.ngram_max)\n          if len(ngram_ids) >= FLAGS.char_limit:\n            ngram_ids = gezi.fasttext_ids(token, vocab, FLAGS.ngram_buckets, FLAGS.ngram_min, FALGS.ngram_max)\n          ngram_ids = ngram_ids[:FLAGS.char_limit]\n          for j, ngram_id in enumerate(ngram_ids):\n            ngram_ids_list[i, j] = ngram_id\n\n      ngram_ids = list(ngram_ids_list.reshape(-1))\n\n      # # ---------------fngrams(full ngrams)\n      # fngrams_list = [gezi.get_ngrams_hash(token, FLAGS.ngram_buckets, 3, 6, reserve=3) for token in ori_tokens]\n      # fngram_ids =  np.zeros([len(comment_ids), FLAGS.ngram_limit], dtype=np.int32)\n      # for i, fngrams in enumerate(fngrams_list):\n      #   for j, fngram in enumerate(fngrams):\n      #     if j == FLAGS.ngram_limit:\n      #       break\n      #     fngram_ids[i, j] = fngram\n      # fngram_ids = list(fngram_ids.reshape(-1))\n\n      # global info per comment  7 features\n      comment_info = []\n      comment_info.append(len(ori_tokens))\n      comment_info.append(len(comment_tokens))\n      #comment_len = sum[len(x) for x in ori_tokens]\n      comment_len = len(comment_str)\n      comment_info.append(comment_len)\n      comment_info.append(comment_len / (len(ori_tokens) + 1))\n      num_unks = len([x for x in comment_ids if x == vocab.unk_id()])\n      comment_info.append(num_unks)\n      comment_info.append(num_unks / len(comment_tokens))\n      comment_info.append(enprob_dict[id])\n\n      record = tf.train.Example(features=tf.train.Features(feature={\n                                \"comment\": melt.int64_feature(comment_ids),\n                                #\"comment_withunk\": melt.int64_feature(comment_ids_withunk),\n                                \"tokens_info\": melt.float_feature(tokens_info),\n                                \"comment_info\": melt.float_feature(comment_info),\n                                \"pos\": melt.int64_feature(pos_ids),\n                                \"tag\": melt.int64_feature(tag_ids),\n                                \"ner\": melt.int64_feature(ner_ids),\n                                \"comment_chars\": melt.int64_feature(char_ids),\n                                \"comment_ngrams\": melt.int64_feature(ngram_ids),\n                                \"simple_chars\": melt.int64_feature(simple_char_ids),\n                                #\"simple_ngrams\": melt.int64_feature(simple_ngram_ids),\n                                #\"comment_fngrams\": melt.int64_feature(fngram_ids),\n                                #\"simple_chars_str\": melt.bytes_feature(simple_chars_str),\n                                \"classes\": melt.float_feature(label),\n                                \"id\": melt.bytes_feature(id),\n                                \"weight\": melt.float_feature([FLAGS.weight]),\n                                \"comment_str\": melt.bytes_feature(comment_str),\n                                \"comment_tokens_str\": melt.bytes_feature(comment_tokens_str)\n                                }))\n      \n      writer.write(record)\n      global counter\n      with counter.get_lock():\n        counter.value += 1\n\n    print(\"Build {} instances of features in total\".format(writer.size()))\n    writer.close()\n\ndef main(_):  \n  os.system('mkdir -p %s' % FLAGS.dir)\n  tokenizer.init(FLAGS.tokenizer_vocab)\n  global examples, vocab, unk_vocab, char_vocab, pos_vocab, tag_vocab, ner_vocab, ngram_vocab\n  examples = pd.read_csv(FLAGS.input)\n  #if 'train' in FLAGS.input:\n  #  examples = shuffle(examples, random_state=1024)\n  vocab = Vocabulary(FLAGS.vocab)\n  # unk_vocab is actually a small vocab so will genearte unk for training\n  #unk_vocab =  Vocabulary(FLAGS.vocab.replace('vocab.txt', 'unk_vocab.txt'))\n  char_vocab = Vocabulary(FLAGS.vocab.replace('vocab.txt', 'char_vocab.txt'))\n  pos_vocab = Vocabulary(FLAGS.vocab.replace('vocab.txt', 'pos_vocab.txt'))\n  tag_vocab = Vocabulary(FLAGS.vocab.replace('vocab.txt', 'tag_vocab.txt'))\n  ner_vocab = Vocabulary(FLAGS.vocab.replace('vocab.txt', 'ner_vocab.txt'))\n  ngram_vocab = Vocabulary(FLAGS.vocab.replace('vocab.txt', 'ngram_vocab.txt'))\n\n  global enprob_dict\n  enprob_dict = {}\n  enprob_file = '~/data/kaggle/toxic/train.enprob.csv' if 'train' in FLAGS.input else '~/data/kaggle/toxic/test.enprob.csv'\n  enprob_df = pd.read_csv(enprob_file)\n  for id, enprob in zip(enprob_df['id'].values, enprob_df['enprob'].values):\n    enprob_dict[id] = enprob\n  enprob_dict['0'] = 1.\n\n  pool = multiprocessing.Pool()\n  pool.map(build_features, range(FLAGS.num_records))\n  pool.close()\n  pool.join()\n\n  #build_features(0)\n\n  print('num_records:', counter.value)\n  mode = get_mode()\n  out_file = os.path.dirname(FLAGS.vocab) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\nif __name__ == '__main__':\n  tf.app.run()\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-records.py\n#        \\author   chenghuige  \n#          \\date   2018-01-14 11:50:06.092416\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport json \nimport random\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/data/kaggle/toxic/train.csv', '') \nflags.DEFINE_string('vocab', './mount/temp/toxic/tfrecords/glove/vocab.txt', 'vocabulary txt file')\nflags.DEFINE_integer('num_records', 10, '10 or 5?')\nflags.DEFINE_string('tokenizer_vocab', '/home/gezi/data/glove/glove-vocab.txt', '')\n\nimport config\n\nfrom gezi import Vocabulary\nimport gezi\nimport melt\nimport tokenizer\n\nimport multiprocessing\nimport pandas as pd \nfrom sklearn.utils import shuffle\nimport numpy as np\n\n#import six\n#assert six.PY3\n\nfrom tqdm import tqdm\n\nfrom tokenizer import attribute_names\n\nfrom multiprocessing import Value\ncounter = Value('i', 0)\n\nCLASSES = [\"toxic\", \"severe_toxic\", \"obscene\", \"threat\", \"insult\", \"identity_hate\"]\nexamples = None\nvocab = None\nchar_vocab = None\n\ndef get_id(word, vocab):\n  for item in (word, word.lower(), word.capitalize(), word.upper()):\n    if vocab.has(item):\n      return vocab.id(item)\n  return vocab.unk_id()\n\ndef get_char_id(ch, vocab):\n  if vocab.has(ch):\n    return vocab.id(ch)\n  return vocab.unk_id()\n\ndef build_features(index):\n  mode = 'train' if 'train' in FLAGS.input else 'test'\n  out_file = os.path.dirname(FLAGS.vocab) + '/{0}/{1}.record'.format(mode, index)\n  os.system('mkdir -p %s' % os.path.dirname(out_file))\n  print('---out_file', out_file)\n  # TODO now only gen one tfrecord file \n\n  total = len(examples)\n  start, end = gezi.get_fold(total, FLAGS.num_records, index)\n\n  ids = examples['id'].values[start: end]\n  comments = examples['comment_text'].values[start: end]\n  \n  try:\n    labels = examples[CLASSES].values[start: end]\n  except Exception:\n    labels = [[0.] * len(CLASSES)] * len(ids)\n\n  with melt.tfrecords.Writer(out_file) as writer:\n    for id, comment, label in tqdm(zip(ids, comments, labels)):\n      comment_str = comment\n      # TODO use info\n      doc = tokenizer.tokenize(comment)\n      comment_tokens, tokens_info = doc.tokens, doc.attributes\n      \n      for i in range(len(tokens_info)):\n        tokens_info[i] = list(map(float, tokens_info[i]))\n\n      if FLAGS.comment_limit:\n        comment_tokens = comment_tokens[: FLAGS.comment_limit]\n        tokens_info = tokens_info[: FLAGS.comment_limit]\n\n      tokens_info = np.array(tokens_info)\n      tokens_info = tokens_info.reshape(-1)\n      tokens_info = list(tokens_info)\n\n      assert len(tokens_info) == len(comment_tokens) * len(attribute_names)\n\n      comment_ids = [get_id(token, vocab) for token in comment_tokens]\n      comment_tokens_str = '|'.join([vocab.key(id) for id in comment_ids])\n      label = list(map(float, label))\n\n      comment_chars = [list(token) for token in comment_tokens]\n\n      char_ids = np.zeros([len(comment_ids), FLAGS.char_limit], dtype=np.int32)\n      \n      for i, token in enumerate(comment_chars):\n        for j, ch in enumerate(token):\n          if j == FLAGS.char_limit:\n            break\n          char_ids[i, j] = get_char_id(ch, char_vocab)\n\n      char_ids = list(char_ids.reshape(-1))\n\n      #print(char_ids)\n\n      simple_char_ids = []\n      num_chs = 0\n      for ch in list(comment):\n        id_ = get_char_id(ch, char_vocab)\n        #if id_ == char_vocab.unk_id():\n        #  continue\n        simple_char_ids.append(id_)\n        if len(simple_char_ids) == FLAGS.simple_char_limit:\n          break\n\n      simple_chars_str = ''.join([char_vocab.key(id) for id in simple_char_ids])\n\n      #print(simple_char_ids, simple_chars_str)\n\n      record = tf.train.Example(features=tf.train.Features(feature={\n                                \"comment\": melt.int64_feature(comment_ids),\n                                \"tokens_info\": melt.float_feature(tokens_info),\n                                \"comment_chars\": melt.int64_feature(char_ids),\n                                \"simple_chars\": melt.int64_feature(simple_char_ids),\n                                \"simple_chars_str\": melt.bytes_feature(simple_chars_str),\n                                \"classes\": melt.float_feature(label),\n                                \"id\": melt.bytes_feature(id),\n                                \"comment_str\": melt.bytes_feature(comment_str),\n                                \"comment_tokens_str\": melt.bytes_feature(comment_tokens_str)\n                                }))\n      \n      writer.write(record)\n      global counter\n      with counter.get_lock():\n        counter.value += 1\n\n    print(\"Build {} instances of features in total\".format(writer.size()))\n    writer.close()\n\ndef main(_):  \n  tokenizer.init(FLAGS.tokenizer_vocab)\n  global examples, vocab, char_vocab\n  examples = pd.read_csv(FLAGS.input)\n  #if 'train' in FLAGS.input:\n  #  examples = shuffle(examples, random_state=1024)\n  vocab = Vocabulary(FLAGS.vocab)\n  char_vocab = Vocabulary(FLAGS.vocab.replace('vocab.txt', 'char_vocab.txt'))\n\n  pool = multiprocessing.Pool()\n  pool.map(build_features, range(FLAGS.num_records))\n  pool.close()\n  pool.join()\n\n  # build_features(0)\n\n  print('num_records:', counter.value)\n  mode = 'train' if 'train' in FLAGS.input else 'test'\n  out_file = os.path.dirname(FLAGS.vocab) + '/{0}/num_records.txt'.format(mode)\n  gezi.write_to_txt(counter.value, out_file)\n\nif __name__ == '__main__':\n  tf.app.run()\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-sentences-csv.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-sentences.py\n#        \\author   chenghuige  \n#          \\date   2018-03-19 13:28:51.297962\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport pandas as pd \nimport gezi\nimport multiprocessing as mp \nimport numpy as np\n\nCLASSES = [\"toxic\", \"severe_toxic\", \"obscene\", \"threat\", \"insult\", \"identity_hate\"]\ninput = None\n\ndef run():\n  sent_file = input.replace('.csv', '.sents.txt')\n  print(sent_file)\n  m = {}\n  for line in open(sent_file):\n    id, sent = line.rstrip('\\n').split('\\t', 1)\n    sent = sent.replace('NEWLINE', '\\n')\n    if len(sent.strip()) < 3:\n      continue\n    if id not in m:\n      m[id] = [sent]\n    else:\n      m[id].append(sent)\n    \n  df = pd.read_csv(input)\n  ids = df['id'].values\n  comments = df['comment_text'].values \n  if 'train' in input:\n    labels = df[CLASSES].values\n  else:\n   labels = [[0.] * 6] * len(df)\n\n\n  ids_ = []\n  comments_ = []\n  labels_ = []\n\n  output = input.replace('.csv', '.sents.csv')\n  print(output)\n  num = 0\n  for id, comment, label in zip(ids, comments, labels):\n    if num % 1000 == 0:\n      print(num)\n    num += 1\n    if id not in m:\n      sents = ['ok']\n    else:\n      sents = m[id]\n    for sent in sents:\n      ids_.append(id)\n      #print('sent', sent)\n      comments_.append(sent)\n      labels_.append(label)\n\n  print(len(labels_), len(comments_))\n  ids = np.array(ids_)\n  print('ids ok')\n  labels = np.array(labels_)\n  print('labels ok')\n  #comments = np.array(comments_)\n  comments = comments_\n  print('comments ok')\n  #print(comments)\n\n  odf = pd.DataFrame(data=labels, columns=CLASSES)\n  odf['comment_text'] = comments\n  odf['id'] = ids\n  odf = odf[['id', 'comment_text'] + CLASSES]\n  odf.to_csv(output, index=False)\n\n#input = '/home/gezi/data/kaggle/toxic/train.csv'\n#run()\ninput = '/home/gezi/data/kaggle/toxic/test.csv'\nrun()\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-sentences.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-sentences.py\n#        \\author   chenghuige  \n#          \\date   2018-03-19 13:28:51.297962\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport pandas as pd \nimport gezi\nimport multiprocessing as mp\n\ngezi.segment.init_spacy_full(['ner', 'tagger'])\n\nnum_threads = 12\n\ninput = None\ndef run(index):\n  df = pd.read_csv(input)\n  ids = df['id'].values\n  comments = df['comment_text'].values \n\n  start, end = gezi.get_fold(len(comments), num_threads, index)\n  \n  output = input.replace('.csv', '.sents.%d.txt' % index) \n  print(output)\n  num = 0\n  with open(output, 'w') as out:\n    for id, comment in zip(ids[start:end], comments[start:end]):\n      if num % 1000 == 0:\n        print(num)\n      num += 1\n      doc = gezi.segment.doc(comment)\n      for sent in doc.sents:\n        print(id, sent.text.replace('\\n', 'NEWLINE'), sep='\\t', file=out)\n\n\nif sys.argv[1] == 'train':\n  input = '/home/gezi/data/kaggle/toxic/train.csv'\nelse:\n  input = '/home/gezi/data/kaggle/toxic/test.csv'\n\n\npool = mp.Pool()\npool.map(run, range(num_threads))\npool.close()\npool.join()\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-tokens.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 17:50:26.382970\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 100000000, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\",  None, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"write_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_string(\"out_dir\", './mount/data/kaggle/toxic/tokens', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\n\nflags.DEFINE_string('input', '/home/gezi/data2/data/kaggle/toxic/train.csv', '')\nflags.DEFINE_string('test_input', '/home/gezi/data2/data/kaggle/toxic/test.csv', '')\n\nflags.DEFINE_integer('threads', 12, '')\n\nflags.DEFINE_string('tokenizer_vocab', '/home/gezi/data/glove/glove-vocab.txt', '')\nflags.DEFINE_integer('test_count', 0, '')\nflags.DEFINE_bool('full_tokenizer', False, '')\nflags.DEFINE_integer('limit', None, '')\nflags.DEFINE_bool('modify_attribute', False, '')\n\nflags.DEFINE_string('name', None, '')\n\nimport pandas as pd\nimport numpy as np\n\nfrom gezi import WordCounter\nimport json\nfrom tqdm import tqdm\n\nimport gezi\n\nimport tokenizer\nimport multiprocessing as mp\nimport six \nassert six.PY3\n\nfrom tokenizer import attribute_names\nfrom tokenizer import is_toxic\n\nfrom textblob import Word\n\ndf = None\nman = mp.Manager() \n\nname = 'train'\n\ndef tokenize(index):\n  comments = df['comment_text']\n  start, end = gezi.get_fold(len(comments), FLAGS.threads, index)\n  \n  #for i in tqdm(range(start, end)):\n  with open('%s/%s_%d.txt' % (FLAGS.out_dir, name, index), 'w') as out:\n    for i in range(start, end):\n      if i % 1000 == 0:\n        print(i, file=sys.stderr)\n      sent = gezi.segment.tokenize_filter_empty(comments[i].replace('\\n', ' '))\n      print(' '.join(sent), file=out)\n      \n\ndef run(input):\n  global df \n  df = pd.read_csv(input)\n  #df = df[:100]\n  if FLAGS.limit:\n    df = df[:FLAGS.limit]\n\n  pool = mp.Pool()\n  pool.map(tokenize, range(FLAGS.threads))\n  pool.close()\n  pool.join()\n\n  #tokenize(0)\n\ndef main(_):\n  tokenizer.init(FLAGS.tokenizer_vocab)\n  os.system('mkdir -p %s' % FLAGS.out_dir)\n\n  print('name', FLAGS.name, 'out_dir', FLAGS.out_dir)\n\n  run(FLAGS.input)\n\n  global name \n  name = 'test'\n  if FLAGS.test_input and not FLAGS.name:\n    run(FLAGS.test_input)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-twitter-ori-vocab.sh",
    "content": "python3 ./gen-vocab.py --special_tokenizer=0 --vocab_name=ori_vocab.twitter --test_count=1 --out_dir /home/gezi/data/kaggle/toxic/ --is_twitter=1\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-vocab-parse.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 17:50:26.382970\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 100000000, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\",  None, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_ngrams\", None, \"\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"write_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/toxic/tfrecords/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\n\nflags.DEFINE_string('input', '/home/gezi/data2/data/kaggle/toxic/train.csv', '')\nflags.DEFINE_string('test_input', '/home/gezi/data2/data/kaggle/toxic/test.csv', '')\n\nflags.DEFINE_integer('threads', 12, '')\n\nflags.DEFINE_string('tokenizer_vocab', '/home/gezi/data/glove/glove-vocab.txt', '')\nflags.DEFINE_integer('test_count', 0, '')\nflags.DEFINE_bool('full_tokenizer', False, '')\n# flags.DEFINE_bool('simple_tokenizer', False, '')\nflags.DEFINE_integer('limit', None, '')\nflags.DEFINE_bool('modify_attribute', False, '')\n\nflags.DEFINE_bool('lower', False, 'if lower then word lower')\nflags.DEFINE_bool('ngram_lower', False, 'if lower then ngram lower')\nflags.DEFINE_integer('ngram_min', 3, '')\nflags.DEFINE_integer('ngram_max', 3, '')\n\nflags.DEFINE_bool('write_tokens', True, '')\nflags.DEFINE_bool('write_csv', True, '')\n\nflags.DEFINE_bool('lemmatization', False, '')\n\nflags.DEFINE_string('name', None, '')\n\nimport pandas as pd\nimport numpy as np\n\nfrom gezi import WordCounter\nimport json\nfrom tqdm import tqdm\n\nimport gezi\n\nimport tokenizer\nimport multiprocessing as mp\nimport six \nassert six.PY3\n\nfrom tokenizer import attribute_names\n\ncounter = None\nchar_counter = None \nngram_counter = None\n\npos_counter = None\ntag_counter = None \nner_counter = None\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\ndf = None\nman = mp.Manager()\ntokens_list = None\nattributes_list = None\nori_tokens_list = None\nposes_list = None\ntags_list = None\nners_list = None\n\ndef tokenize(index):\n  global tokens_list\n  comments = df['comment_text']\n  start, end = gezi.get_fold(len(comments), FLAGS.threads, index)\n\n  if 'tokens' in df.columns:\n    for i in range(start, end):\n      # if df['id'][i] == '5bbabc3b14cc1f7f':\n      #   sent = tokenizer.full_tokenize(comments[i])\n      #   tokens_list[i] = sent.tokens\n      #   attributes_list[i] = np.reshape(np.array([list(map(float, x)) for  x in sent.attributes]), -1)\n      #   poses_list[i] = sent.poses\n      #   tags_list[i] = sent.tags\n      #   ners_list[i] = sent.ners\n      # else:\n      tokens_list[i] = df['tokens'][i].split(' ')\n      attributes_list[i] = df['attributes'][i].split(' ')\n      # if len(attributes_list[i]) != len(attribute_names) * len(tokens_list[i]) or FLAGS.modify_attribute:\n      #   sent = tokenizer.tokenize(comments[i])\n      #   attributes_list[i] = np.reshape(np.array([list(map(float, x)) for  x in sent.attributes]), -1)\n      #   assert len(attributes_list[i]) == len(attribute_names) * len(tokens_list[i]), '{} {} {} {}'.format(len(attributes_list[i]) / len(attribute_names), len(tokens_list[i]), i, df['id'][i])\n      poses_list[i] = df['poses'][i].split(' ')\n      tags_list[i] = df['tags'][i].split(' ')\n      ners_list[i] = df['ners'][i].split(' ') \n      ori_tokens_list[i] = df['ori_tokens'][i].split(' ')    \n  else:\n    for i in tqdm(range(start, end)):\n    # for i in range(start, end):\n    #   if i % 1000 == 0:\n    #     print(i, file=sys.stderr)\n      if FLAGS.full_tokenizer:\n        #if FLAGS.simple_tokenizer:\n        sent = tokenizer.full_tokenize(comments[i], lemmatization=FLAGS.lemmatization)\n        # else:\n        #   sent = gezi.segment.tokenize_filter_empty(comments[i])\n        # if FLAGS.lower:\n        #   sent.tokens = [w.lower() for w in sent.tokens]\n        tokens_list[i] = sent.tokens\n        ori_tokens_list[i] = sent.ori_tokens\n        attributes_list[i] = np.reshape(np.array([list(map(float, x)) for  x in sent.attributes]), -1)\n        poses_list[i] = sent.poses\n        tags_list[i] = sent.tags\n        ners_list[i] = sent.ners\n      else:\n        sent = tokenizer.tokenize(comments[i], lemmatization=FLAGS.lemmatization)\n        # if FLAGS.lower:\n        #   sent.tokens = [w.lower() for w in sent.tokens]\n        tokens_list[i] = sent.tokens\n        ori_tokens_list[i] = sent.ori_tokens       \n\n        #print('----------', sent.attributes)\n        try:\n          attributes_list[i] = np.reshape(np.array([list(map(float, x)) for  x in sent.attributes]), -1)\n        except Exception:\n          print(sent.attributes)\n          raise ValueError()\n        poses_list[i] = ['NONE'] * len(tokens_list[i])\n        tags_list[i] = ['NONE'] * len(tokens_list[i])\n        ners_list[i] = ['NONE'] * len(tokens_list[i])\n        \n\ndef run(input, count=1):\n  global df, tokens_list, poses_list, tags_list, ners_list \n  global attributes_list, ori_tokens_list \n  df = pd.read_csv(input)\n  #df = df[:100]\n  if FLAGS.limit:\n    df = df[:FLAGS.limit]\n  tokens_list = man.list([None] * len(df['comment_text']))\n  attributes_list = man.list([None] * len(df['comment_text']))\n  poses_list = man.list([None] * len(df['comment_text']))\n  tags_list = man.list([None] * len(df['comment_text']))\n  ners_list = man.list([None] * len(df['comment_text']))\n  ori_tokens_list = man.list([None] * len(df['comment_text']))\n\n  timer = gezi.Timer('tokenize')\n\n  pool = mp.Pool()\n  pool.map(tokenize, range(FLAGS.threads))\n  pool.close()\n  pool.join()\n\n  #tokenize(0)\n\n  timer.print_elapsed()\n\n  # for context in tqdm(df['comment_text']):\n    #context_tokens, _ = tokenizer.tokenize(context)\n    #context_tokens = gezi.segment.tokenize_filter_empty(context)\n  for context_tokens in tokens_list:\n    counter.add(START_WORD, count)\n    # tokens in one comment treat as 1\n    for token in set(context_tokens):\n      if FLAGS.lower:\n        token = token.lower()\n      counter.add(token, count)\n    counter.add(END_WORD, count)\n  \n  for context_tokens in ori_tokens_list:\n    # tokens in one comment treat as 1\n    for token in set(context_tokens):\n      for ch in token:\n        char_counter.add(ch, count)\n      if FLAGS.ngram_lower:\n        token = token.lower()\n      ngrams = gezi.get_ngrams(token, FLAGS.ngram_min, FLAGS.ngram_max)\n      for ngram in ngrams:\n        ngram_counter.add(ngram, count)\n  \n  for poses in poses_list:\n    for pos in set(poses):\n      pos_counter.add(pos, count)\n  \n  for tags in tags_list:\n    for tag in set(tags):\n      tag_counter.add(tag, count)\n\n  for ners in ners_list:\n    for ner in set(ners):\n      ner_counter.add(ner, count)\n\n  tokens = [' '.join(x) for x in tokens_list]\n  attributes = [' '.join(map(str, x)) for x in attributes_list]\n  poses = [' '.join(x) for x in poses_list]\n  tags = [' '.join(x) for x in tags_list]\n  ners = [' '.join(x) for x in ners_list]\n  ori_tokens = [' '.join(x) for x in ori_tokens_list]\n\n  df['tokens'] = tokens\n  df['attributes'] = attributes\n  # TODO change to poses..\n  df['poses'] = poses\n  df['tags'] = tags\n  df['ners'] = ners\n  df['ori_tokens'] = ori_tokens\n\n  if FLAGS.write_csv:\n    if FLAGS.name:\n      name = FLAGS.name \n    else:\n      name = 'train.csv' if 'train' in input else 'test.csv'\n    out_csv = os.path.join(FLAGS.out_dir, name)\n    print('save csv to', out_csv)\n    df.to_csv(out_csv, index=False)\n\n  if FLAGS.write_tokens:\n    if FLAGS.name:\n      name = FLAGS.name.replace('.csv', '_tokens.txt') \n    else:\n      name ='train_tokens.txt' if 'train' in input else 'test_tokens.txt'\n\n    out_txt = os.path.join(FLAGS.out_dir, name)\n    df.sort_values(['id'], inplace=True)\n    df = df.reset_index(drop=True)\n    with open(out_txt, 'w') as out:\n      for id, comment, tokens in zip(df['id'].values, df['comment_text'].values, df['tokens'].values):\n        print(id, comment, tokens, sep='\\t', file=out)\n\ndef main(_):\n  tokenizer.init(FLAGS.tokenizer_vocab)\n  if FLAGS.full_tokenizer:\n    gezi.segment.init_spacy_full()\n\n  os.system('mkdir -p %s' % FLAGS.out_dir)\n\n  print('name', FLAGS.name, 'out_dir', FLAGS.out_dir)\n\n  global counter\n  counter = WordCounter(\n    write_unknown=FLAGS.write_unknown,\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n  global char_counter\n  char_counter = WordCounter(\n    write_unknown=FLAGS.write_unknown,\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n  global ngram_counter \n  ngram_counter = WordCounter(\n     write_unknown=True,\n     min_count=FLAGS.min_count)\n\n  global pos_counter, tag_counter, ner_counter\n  pos_counter = WordCounter(\n    write_unknown=True,\n    min_count=1)\n  tag_counter = WordCounter(\n    write_unknown=True,\n    min_count=1)\n  ner_counter = WordCounter(\n    write_unknown=True,\n    min_count=1) \n\n  run(FLAGS.input)\n\n  if FLAGS.test_input and not FLAGS.name:\n    run(FLAGS.test_input, count=FLAGS.test_count)\n  \n  if not FLAGS.name:\n    vocab_name = FLAGS.vocab_name or 'vocab'\n    os.system('mkdir -p %s' % FLAGS.out_dir)\n    out_txt = os.path.join(FLAGS.out_dir, '%s.txt' % vocab_name)\n    counter.save(out_txt)\n\n    out_txt = os.path.join(FLAGS.out_dir, 'char_%s.txt' % vocab_name)\n    char_counter.save(out_txt)\n\n    out_txt = os.path.join(FLAGS.out_dir, 'pos_vocab.txt')\n    pos_counter.save(out_txt)\n\n    out_txt = os.path.join(FLAGS.out_dir, 'tag_vocab.txt')\n    tag_counter.save(out_txt)\n\n    out_txt = os.path.join(FLAGS.out_dir, 'ner_vocab.txt')\n    ner_counter.save(out_txt)\n\n    out_txt = os.path.join(FLAGS.out_dir, 'ngram_vocab.txt')\n    if not FLAGS.max_ngrams:\n      ngram_counter.save(out_txt)\n    else:\n      # if later need most 2w ngram head -200000 ngram_vocab.full.txt > ngram_vocab.txt\n      out_full_txt = os.path.join(FLAGS.out_dir, 'ngram_vocab.full.txt')\n      ngram_counter.save(out_full_txt)\n      os.system('head -n %d %s > %s' % (FLAGS.max_ngrams, out_full_txt, out_txt))\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gen-vocab.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   gen-vocab.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 17:50:26.382970\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_integer(\"most_common\", 100000000, \"if > 0 then get vocab with most_common words\")\nflags.DEFINE_integer(\"min_count\",  None, \"if > 0 then cut by min_count\")\nflags.DEFINE_integer(\"max_lines\", 0, \"\")\nflags.DEFINE_boolean(\"write_unknown\", True, \"treat ignored words as unknow\")\nflags.DEFINE_string(\"out_dir\", './mount/temp/toxic/tfrecords/', \"save count info to bin\")\nflags.DEFINE_string(\"vocab_name\", None, \"\")\n\nflags.DEFINE_string('input', '/home/gezi/data2/data/kaggle/toxic/train.csv', '')\nflags.DEFINE_string('test_input', '/home/gezi/data2/data/kaggle/toxic/test.csv', '')\n\nflags.DEFINE_integer('threads', 12, '')\n\nflags.DEFINE_string('tokenizer_vocab', '/home/gezi/data/glove/glove-vocab.txt', '')\nflags.DEFINE_integer('test_count', 0, '')\nflags.DEFINE_bool('special_tokenizer', False, '')\n\nimport pandas as pd\n\nfrom gezi import WordCounter\nimport json\nfrom tqdm import tqdm\n\nimport gezi\n\nimport tokenizer\nimport multiprocessing as mp\nimport six \nfrom preprocess import *\n\nassert six.PY3\n\ncounter = None\nchar_counter = None\n\nSTART_WORD = '<S>'\nEND_WORD = '</S>'\n\ndf = None\nman = mp.Manager()\ncontext_tokens_list = None\n\ndef tokenize(index):\n  global context_tokens_list\n  comments = df['comment_text']\n  start, end = gezi.get_fold(len(comments), FLAGS.threads, index)\n  for i in tqdm(range(start, end), ascii=True):\n    comment = comments[i]\n    if FLAGS.special_tokenizer:\n      context_tokens_list[i] = tokenizer.tokenize(comment).tokens\n    else:\n      if FLAGS.is_twitter:\n        comment = glove_twitter_preprocess(comment)\n      context_tokens_list[i] = [x.lower() for x in gezi.segment.tokenize_filter_empty(comment)]\n\ndef run(input, count=1):\n  global df, context_tokens_list\n  df = pd.read_csv(input)\n  #df = df[:100]\n  context_tokens_list = man.list([None] * len(df['comment_text']))\n\n  timer = gezi.Timer('tokenize')\n\n  pool = mp.Pool()\n  pool.map(tokenize, range(FLAGS.threads))\n  pool.close()\n  pool.join()\n\n  timer.print_elapsed()\n\n  # for context in tqdm(df['comment_text']):\n    #context_tokens, _ = tokenizer.tokenize(context)\n    #context_tokens = gezi.segment.tokenize_filter_empty(context)\n  for context_tokens in context_tokens_list:\n    counter.add(START_WORD, count)\n    # tokens in one comment treat as 1\n    for token in set(context_tokens):\n      counter.add(token, count)\n      for ch in token:\n        char_counter.add(ch, count)\n    counter.add(END_WORD, count)\n\ndef main(_):\n  tokenizer.init(FLAGS.tokenizer_vocab)\n  global counter\n  counter = WordCounter(\n    write_unknown=FLAGS.write_unknown,\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n  global char_counter\n  char_counter = WordCounter(\n    write_unknown=FLAGS.write_unknown,\n    most_common=FLAGS.most_common,\n    min_count=FLAGS.min_count)\n\n  run(FLAGS.input)\n  if FLAGS.test_input:\n    run(FLAGS.test_input, count=FLAGS.test_count)\n  \n  vocab_name = FLAGS.vocab_name or 'vocab'\n  os.system('mkdir -p %s' % FLAGS.out_dir)\n  out_txt = os.path.join(FLAGS.out_dir, '%s.txt' % vocab_name)\n  counter.save(out_txt)\n\n  out_txt = os.path.join(FLAGS.out_dir, 'char_%s.txt' % vocab_name)\n  char_counter.save(out_txt)\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/gray.csv",
    "content": "id,comment_text,unk_ratio,toxic\r\n6059db0ec766d4b0,YYYYYYOOOOOOOOUUUUUUUUUUUU AAAAAAAAAARRRRRRRRRRRRRRREEEEEEEEEEEEEEEEEE CCCCCCCCCCCCCCCCCCOOOOOOOOOOOOOOOLLLLLLLLLLLLO,1.0,0.491157778633\r\n0c6091635f6830f7,IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,1.0,0.489147737608\r\ne069214172544dc7,HAHHAHAHHAHAHAHAHHAHAHHAHAHAHHAHAHAHHAHAAHAHAHHA COOOOOOOOOOOOOOOOOOOOOOOOOOOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL PERSON WROTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE THISSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,0.8,0.39375255531\r\n2ed3ee986567da1a,= = hi to you all = = <N> <N> hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTToooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYoooooooooooooooooooooooooooooooooooooooooooouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL,0.285714285714,0.385685556809\r\nb78678ff65918e7c,PETER <JOIN> SYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONPETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDSPETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDSPETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDSPETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSYMONDS HOMO <JOIN> PETERSY,0.332191780822,0.380029391738\r\n7f584a46d799fd3a,iiiiiiiii <JOIN> iiiiiiiii llllllllllllllllooooooooooooooooooooovvvvvvvvvvveeeeeeeeeeee cccccccccccccchwhhhhhhhhhhhhhhhhhhhhhhheeeeeeeeeeeeseeeeeeeeeeeeeesssss <N> sssssss,0.571428571429,0.379487174338\r\ne2a5d50747dd60b1,faghat in yaroo raa raa ham bara <JOIN> ayeh vandalism begir,0.272727272727,0.260153819117\r\n13d142002eeef983,gyguy guyg uyg uyg <JOIN> uyg uyguy guyg ygy g,0.8,0.195602115613\r\n876faabc292d23ea,\"\"\" <N> <N> It also says right on his talk page that he is that user . Someone asks him if he 's the one that got kicked out of Hebrew Wikipedia because he wrote about porn stars , and asked \"\" \"\" is it you that wrote to me that gilgamesh ( a sysop ) is a dirty dictator ? \"\" \"\" , to which he responds \"\" \"\" yes , it is me \"\" \"\" <N> <N> Copied here for posterity : <N> <N> : = = = אתה חכם חנוכה מהויקיפדיה בעברית?=== <N> <N> : זה אתה שהעיפו אותך בגלל מה שכתבת על כוכבות הפורנו ? , זה אתה מי שכתב לי ( אני עדן קוגן ) שגילגמש הוא דיקטטור מטונף ? <N> <N> : כן , זה אני כנראה - שים לב שפה מתייחסים אלי בכבוד <N> <N> : שמתי לב , בהחלט מוזר . אתה צודק , אתה יודע , גילגמש עכשיו מחק את כל התרומות שלי שעבדתי עליהם שנה שלמה , וחסם אותי למשך 24 שעות , ולדוד שי לא אכפת שגילגמש חוטא . כל מי שנמצא בויקיפדיה העברית הם חראות . \"\"\",0.386243386243,0.141481755211"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-2emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('emb', './mount/data/glove/glove.840B.300d.txt', '')\nflags.DEFINE_string('emb2', None, '')\nflags.DEFINE_integer('min_count', -1, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                       scratch add all with min train count and try merge glove,\n                                       only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  input_vocab = os.path.join(FLAGS.dir, 'vocab.full.txt')\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n  embedding_dict2 = {}\n\n  vec_size = FLAGS.emb_dim\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding1 vector\".format(len(embedding_dict), len(ori_words)))\n\n  with open(FLAGS.emb2, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word.lower() in normed_ori_set:\n        embedding_dict2[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding2 vector\".format(len(embedding_dict2), len(ori_words)))\n  \n  def has_emb(word):\n    return word in embedding_dict or word in embedding_dict2\n\n  def get_emb_(word, emb_dict):\n    if word in emb_dict:\n      return emb_dict[word]\n    else:\n      return [np.random.uniform(-0.08, 0.08) for _ in range(vec_size)]\n\n  def get_emb(word):\n    return np.array(get_emb_(word, embedding_dict) + get_emb_(word, embedding_dict2))\n\n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size * 2))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size * 2)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if has_emb(word):\n          emb_mat.append(get_emb(word))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size * 2)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if has_emb(word):\n            emb_mat.append(get_emb(word))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size * 2)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if has_emb(word):\n          emb_mat.append(get_emb(word))\n          words.append(word)  \n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if has_emb(w):\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(get_emb(w))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-charemb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('emb', './mount/data/glove/glove.840B.300d-char.txt', '')\nflags.DEFINE_integer('min_count', -1, '')\nflags.DEFINE_bool('include_non_match', True, '')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  input_vocab = os.path.join(FLAGS.dir, 'char_vocab.full.txt')\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = map(int, counts)\n\n\n  ori_set = set(ori_words)\n  \n  embedding_dict = {}\n\n  vec_size = 300\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      word = \"\".join(array[0: -vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word in ori_set:\n        embedding_dict[word] = vector\n      #if i == 1000:\n      #  print(i)\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n  words.append(' ')\n  \n  emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n  # TODO \\x01 not used any more since, ignore \\n ..\n  words.append('\\x01')\n  \n  emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n  words.append('<S>')\n  \n  emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n  words.append('</S>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if word in embedding_dict:\n        emb_mat.append(np.array(embedding_dict[word]))\n        words.append(word)  \n      else:\n        if FLAGS.include_non_match and count >= FLAGS.min_count:\n          print('%s %d' % (word, count), file=rare_out)\n          #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n          emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n          words.append(word)  \n\n  out_vocab = os.path.join(FLAGS.dir, 'char_vocab.txt')\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, 'char_emb.npy')\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('emb', './mount/data/glove/glove.840B.300d.txt', '')\nflags.DEFINE_integer('min_count', -1, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                       scratch add all with min train count and try merge glove,\n                                       only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  input_vocab = os.path.join(FLAGS.dir, 'vocab.full.txt')\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  vec_size = FLAGS.emb_dim\n  #with open(FLAGS.emb, 'r') as fh:\n  with open(FLAGS.emb, 'r', encoding='utf-8', errors='ignore') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      word = \"\".join(array[0:-vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if word in embedding_dict:\n            emb_mat.append(np.array(embedding_dict[word]))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n\n  words_set = set(words)\n\n  unk_words = []\n\n  # added from v11 to let less unk\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            #print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            contains = True\n            break\n      if not contains:\n        unk_words.append(word)\n        #emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  # emb_mat is with all word (train + test)\n  print('num in vocab words', len(words))\n  print('num oov words', len(unk_words))\n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  # NOTICE unk vocab actually means only top words, so for train we can use <UNK>\n  # out_unk_vocab = os.path.join(FLAGS.dir, 'unk_vocab.txt')\n  # with open(out_vocab, 'w') as out, open(out_unk_vocab, 'w') as out_unk:\n  #   for word in words:\n  #     print(word, file=out)\n  #     print(word, file=out_unk)\n  #   for word in unk_words:\n  #     print(word, file=out) \n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, FLAGS.out_name)\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-glove.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\ndepreciated just use merge-emb.py\n\"\"\"\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('glove_emb', './mount/data/glove/glove.840B.300d.txt', '')\nflags.DEFINE_integer('min_count', 20, '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                       scratch add all with min train count and try merge glove,\n                                       only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  input_vocab = os.path.join(FLAGS.dir, 'vocab.full.txt')\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.split('\\t') for x in lines]\n  ori_words, counts = zip(*ori_words_counts)\n  counts = map(int, counts)\n\n  ori_set = set(ori_words)\n  \n  embedding_dict = {}\n\n  vec_size = 300\n  with open(FLAGS.glove_emb, 'r', encoding='utf-8') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      word = \"\".join(array[0: -vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word in ori_set:\n        embedding_dict[word] = vector\n      if i == 1000:\n        print(i)\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if word in embedding_dict:\n            emb_mat.append(np.array(embedding_dict[word]))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, 'glove.npy')\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-ngram-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('emb', './mount/data/kaggle/toxic/talk_corpus/fastText/result.3gram.5epoch/toxic.ngram', '')\nflags.DEFINE_integer('min_count', -1, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                       scratch add all with min train count and try merge glove,\n                                       only only merge all glove and not consider train count''')\n#flags.DEFINE_integer('ngram_buckets', 200000, '')\nflags.DEFINE_string('ngram_vocab', None, '')\nflags.DEFINE_string('ngram_output', None, '')\n\nfrom tqdm import tqdm\nimport numpy as np\nimport gezi\nfrom gezi import Vocabulary\nimport config\n\ndef main(_):\n  num_conflicts = 0\n  visited = {}\n  visited_ngram = {}\n  ngram_vocab_path = FLAGS.ngram_vocab or os.path.join(FLAGS.dir, 'ngram_vocab.txt')\n  ngram_vocab = Vocabulary(ngram_vocab_path)\n  print('ngram_vocab size', ngram_vocab.size())\n  print('num ngram buckets', FLAGS.ngram_buckets)\n  if FLAGS.emb.endswith('.npy'):\n    ngram_emb = np.load(FLAGS.emb)\n    assert len(ngram_emb) > 100000\n  else:\n    ngram_emb = []\n    for line in open(FLAGS.emb):\n      ngram_emb.append([float(x) for x in line.strip().split()])\n  print('len ngram emb', len(ngram_emb))\n  emb_mat = []\n  vec_size = FLAGS.emb_dim\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  # exclude first pad and last 3 unk <s> </s>\n  # unk, <s>, </s>, sincie ngram vocab txt not include these will append \n  for i in range(3):\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n\n  for i in range(4, ngram_vocab.size()):\n    ngram = ngram_vocab.key(i)\n    ngram_hash = gezi.hash(ngram)\n    ngram_id = ngram_hash % FLAGS.ngram_buckets\n    if ngram_id not in visited:\n      visited[ngram_id] = 1\n      visited_ngram[ngram_id] = [ngram]\n    else:\n      visited[ngram_id] += 1\n      visited_ngram[ngram_id].append(ngram)\n      num_conflicts += 1\n      #print('Conflict', visited_ngram[ngram_id], 'Num conflicts', num_conflicts)\n    emb_mat.append(ngram_emb[ngram_id])\n  print('Num conflicts', num_conflicts)\n\n  print('len(emb_mat)', len(emb_mat))\n  ngram_output = FLAGS.ngram_output or 'ngram.npy'\n  out_mat = os.path.join(FLAGS.dir, ngram_output)\n  print('out mat', out_mat)\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-word-ngram-emb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('emb', './mount/data/kaggle/toxic/talk_corpus/fastText/result.3gram.5epoch/toxic.input', '')\nflags.DEFINE_integer('min_count', 10, '')\nflags.DEFINE_integer('emb_dim', 300, '')\nflags.DEFINE_string('out_name', 'emb.npy', '')\nflags.DEFINE_string('type', 'normal', '''normal try merge all in glove, and add not in glove ones which with min train count,\n                                       scratch add all with min train count and try merge glove,\n                                       only only merge all glove and not consider train count''')\n\nfrom tqdm import tqdm\nimport numpy as np\nimport gezi\nfrom gezi import Vocabulary\nimport config\n\ndef main(_):\n  input_vocab = os.path.join(FLAGS.dir, 'vocab.full.txt')\n  ft_vocab = Vocabulary(os.path.join(os.path.dirname(FLAGS.emb), 'vocab.txt'), fixed=True)\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.rstrip('\\n').split('\\t') for x in lines]\n  # TODO FIXME why must remove? other wise when in  for word, count in zip(ori_words, counts): will ValueError: invalid literal for int() with base 10: '    '\n  ori_words_counts = filter(lambda x: x[0].strip(), ori_words_counts)\n  ori_words, counts = zip(*ori_words_counts)\n  counts = list(map(int, counts))\n  ori_set = set(ori_words)\n\n  normed_ori_set = set([x.lower() for x in ori_set])\n  \n  embedding_dict = {}\n\n  ngrams = []\n\n  vec_size = FLAGS.emb_dim\n  with open(FLAGS.emb, 'r', encoding='utf-8') as fh:\n    #for line in tqdm(fh, total=2196017):\n    for i, line in enumerate(fh):\n      array = line.split()\n      # fasttext txt has header line\n      if len(array) < vec_size:\n        continue \n      vector = list(map(float, array))\n      if i >= ft_vocab.size():\n        ngrams.append(vector)\n        continue \n      word = ft_vocab.key(i) \n      if word.lower() in normed_ori_set:\n        embedding_dict[word] = vector\n      if i % 100000 == 0:\n        print(i)\n        #break\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  # for padding zero\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<UNK>')\n  if not '<S>' in ori_set:\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('<S>')\n  if not '</S>' in ori_set:\n    emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n    words.append('</S>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if FLAGS.type == 'normal':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n        else:\n          if count >= FLAGS.min_count:\n            print('%s %d' % (word, count), file=rare_out)\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'scratch':\n        if count >= FLAGS.min_count:\n          if word in embedding_dict:\n            emb_mat.append(np.array(embedding_dict[word]))\n            words.append(word)  \n          else:\n            #emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n            emb_mat.append([np.random.uniform(-0.08, 0.08) for _ in range(vec_size)])\n            words.append(word)  \n      elif FLAGS.type == 'only':\n        if word in embedding_dict:\n          emb_mat.append(np.array(embedding_dict[word]))\n          words.append(word)  \n\n  words_set = set(words)\n\n  for word, count in zip(ori_words, counts):\n    if word not in words_set:\n      contains = False\n      for w in (word.lower(), word.capitalize(), word.upper()):\n        if w in words_set:\n          contains = True\n      if not contains:\n        for w in (word.lower(), word.capitalize(), word.upper()):\n          if w in embedding_dict:\n            print('adding....', w, word)\n            words_set.add(w)\n            emb_mat.append(np.array(embedding_dict[w]))\n            words.append(w)\n            break\n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  print('out vocab size', len(words), 'ori ft vocab size', ft_vocab.size())\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, FLAGS.out_name)\n\n  emb_mat += ngrams\n\n  # # check\n  # ids = gezi.fasttext_ids('you', Vocabulary(out_vocab), FLAGS.ngram_buckets, 3, 3)\n  # print('---------ids', ids)\n  # vectors = []\n  # for id in ids:\n  #   vectors.append(emb_mat[id])\n  # vectors = np.stack(vectors)\n  # print(np.mean(vectors, 0))\n\n\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/merge-wordemb.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   merge-glove.py\n#        \\author   chenghuige  \n#          \\date   2018-01-15 23:52:08.616633\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nflags.DEFINE_string('dir', './mount/temp/toxic/tfrecords/glove/', '')\nflags.DEFINE_string('emb', './mount/data/glove/glove.840B.300d.txt', '')\nflags.DEFINE_integer('min_count', 4, '')\nflags.DEFINE_bool('include_non_match', True, '')\n\nfrom tqdm import tqdm\nimport numpy as np\n\ndef main(_):\n  input_vocab = os.path.join(FLAGS.dir, 'vocab.full.txt')\n  lines = open(input_vocab).readlines()\n\n  ori_words_counts = [x.strip().split('\\t') for x in lines]\n  ori_words, counts = zip(*ori_words_counts)\n  counts = map(int, counts)\n\n  ori_set = set(ori_words)\n  \n  embedding_dict = {}\n\n  vec_size = 300\n  with open(FLAGS.emb, 'r', encoding='utf-8') as fh:\n    for line in tqdm(fh, total=2196017):\n    #for i, line in enumerate(fh):\n      array = line.split()\n      word = \"\".join(array[0: -vec_size])\n      vector = list(map(float, array[-vec_size:]))\n      if word in ori_set:\n        embedding_dict[word] = vector\n      #if i == 1000:\n      #  print(i)\n  print(\"{} / {} tokens have corresponding word embedding vector\".format(len(embedding_dict), len(ori_words)))\n  \n  words = []   \n  emb_mat = []\n  emb_mat.append(np.array([0.] * vec_size))\n  if not '<UNK>' in ori_set:\n    #change from all 0 to random normal for unk\n    emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n    words.append('<UNK>')\n\n  with open('/home/gezi/tmp/rare_words.txt', 'w') as rare_out:\n    for word, count in zip(ori_words, counts):\n      if word in embedding_dict:\n        emb_mat.append(np.array(embedding_dict[word]))\n        words.append(word)  \n      else:\n        if FLAGS.include_non_match and count >= FLAGS.min_count:\n          print('%s %d' % (word, count), file=rare_out)\n          emb_mat.append([np.random.normal(scale=0.1) for _ in range(vec_size)])\n          words.append(word)  \n\n  out_vocab = os.path.join(FLAGS.dir, 'vocab.txt')\n  with open(out_vocab, 'w') as out:\n    for word in words:\n      print(word, file=out)\n\n  out_mat = os.path.join(FLAGS.dir, 'word_emb.npy')\n  print('len(emb_mat)', len(emb_mat))\n  np.save(out_mat, np.array(emb_mat))\n    \nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/post-deal.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   post-deal.py\n#        \\author   chenghuige  \n#          \\date   2018-03-21 05:29:51.134440\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport pandas as pd \nimport numpy as np\n\nwhite_csv = pd.read_csv(sys.argv[2])\n\nwhite_ids = set(white_csv['id'].values)\n\nblack_csv = pd.read_csv(sys.argv[3])\nblack_ids = set(black_csv['id'].values) \n\n\nassert len(white_ids) > len(black_ids)\n\nCLASSES = [\"toxic\", \"severe_toxic\", \"obscene\", \"threat\", \"insult\", \"identity_hate\"]\ndf = pd.read_csv(sys.argv[1])\n\n\nnew_scores = []\nids = df['id'].values\nscores = df[CLASSES].values \n\nfor id, score in zip(ids, scores):\n  score = list(score)\n  if id in white_ids:\n    score = np.array([x * 0.001 for x in score])\n  elif id in black_ids:\n    score[0] = 1.0\n    score = np.array(score)\n  new_scores.append(score)\n\ndf[CLASSES] = new_scores\n\ndf.to_csv(sys.argv[4], index=False)\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/prepare-test.sh",
    "content": "python3 ./gen-records.py --input ~/data/kaggle/toxic/test.csv\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/prepare-train.sh",
    "content": "python3 ./gen-records.py \n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/preprocess.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   preprocess.py\n#        \\author   chenghuige  \n#          \\date   2018-02-25 17:17:55.001974\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_bool('is_twitter', False, '')\n\nimport sys, os\nimport re\n\nimport gezi  \n  \ndef normalize(text):\n  text = gezi.filter_quota(text)\n  # hack for spacy tokenzier\n  #text = text.replace('\\n', ' \\x01 ') # for spacy to tokenize left |\\x01| alonw\n  text = text.replace('\\n', ' NEWLINE ')\n  #text = text.replace('''don't''', ' \\x02 ')\n  #text = text.replace('(', ' \\x02 ')\n\n  if FLAGS.is_twitter:\n    text = glove_twitter_preprocess(text)\n\n  return text\n\ntokens_map = {\n  #'\\x01': '<N>',\n  'NEWLINE': '<N>',\n  '<IP>': '<IP>',\n  '<HTTP>': '<HTTP>',\n  #'\\x02': '''don't''',\n  #'\\x02': '('\n  'TWURL': '<URL>',\n  'TWUSER': '<USER>',\n  'TWHEART': '<HEART>',\n  'TWNUMBER': '<NUMBER>',\n  'TWSMILE': '<SMILE>',\n  'TWLOLFACE': '<LOLFACE>',\n  'TWSADFACE': '<SADFACE>',\n  'TWNEUTRALFACE': '<NEUTRALFACE>',\n  'TWREPEAT': '<REPEAT>',\n  'TWELONG': '<ELONG>',\n}\n\n# def glove_twitter_preprocess(text):\n#     \"\"\"\n#     adapted from https://nlp.stanford.edu/projects/glove/preprocess-twitter.rb\n\n#     \"\"\"\n#     # Different regex parts for smiley faces\n#     eyes = \"[8:=;]\"\n#     nose = \"['`\\-]?\"\n#     text = re.sub(\"https?:* \", \"<URL>\", text)\n#     text = re.sub(\"www.* \", \"<URL>\", text)\n#     text = re.sub(\"\\[\\[User(.*)\\|\", '<USER>', text)\n#     text = re.sub(\"<3\", '<HEART>', text)\n#     text = re.sub(\"[-+]?[.\\d]*[\\d]+[:,.\\d]*\", \"<NUMBER>\", text)\n#     text = re.sub(eyes + nose + \"[Dd)]\", '<SMILE>', text)\n#     text = re.sub(\"[(d]\" + nose + eyes, '<SMILE>', text)\n#     text = re.sub(eyes + nose + \"p\", '<LOLFACE>', text)\n#     text = re.sub(eyes + nose + \"\\(\", '<SADFACE>', text)\n#     text = re.sub(\"\\)\" + nose + eyes, '<SADFACE>', text)\n#     text = re.sub(eyes + nose + \"[/|l*]\", '<NEUTRALFACE>', text)\n#     text = re.sub(\"/\", \" / \", text)\n#     text = re.sub(\"[-+]?[.\\d]*[\\d]+[:,.\\d]*\", \"<NUMBER>\", text)\n#     text = re.sub(\"([!]){2,}\", \"! <REPEAT>\", text)\n#     text = re.sub(\"([?]){2,}\", \"? <REPEAT>\", text)\n#     text = re.sub(\"([.]){2,}\", \". <REPEAT>\", text)\n#     pattern = re.compile(r\"(.)\\1{2,}\")\n#     text = pattern.sub(r\"\\1\" + \" <ELONG>\", text)\n\n#     return text\n\ndef glove_twitter_preprocess(text):\n    \"\"\"\n    adapted from https://nlp.stanford.edu/projects/glove/preprocess-twitter.rb\n\n    \"\"\"\n    # Different regex parts for smiley faces\n    eyes = \"[8:=;]\"\n    nose = \"['`\\-]?\"\n    text = re.sub(\"https?:* \", \" TWURL \", text)\n    text = re.sub(\"www.* \", \" TWURL \", text)\n    text = re.sub(\"\\[\\[User(.*)\\|\", ' TWUSER ', text)\n    text = re.sub(\"<3\", ' TWHEART ', text)\n    text = re.sub(\"[-+]?[.\\d]*[\\d]+[:,.\\d]*\", \" TWNUMBER \", text)\n    text = re.sub(eyes + nose + \"[Dd)]\", ' TWSMILE ', text)\n    text = re.sub(\"[(d]\" + nose + eyes, ' SMILE ', text)\n    text = re.sub(eyes + nose + \"p\", ' TWLOLFACE ', text)\n    text = re.sub(eyes + nose + \"\\(\", ' TWSADFACE ', text)\n    text = re.sub(\"\\)\" + nose + eyes, ' TWSADFACE ', text)\n    text = re.sub(eyes + nose + \"[/|l*]\", ' TWNEUTRALFACE ', text)\n    text = re.sub(\"/\", \" / \", text)\n    text = re.sub(\"[-+]?[.\\d]*[\\d]+[:,.\\d]*\", \" TWNUMBER \", text)\n    text = re.sub(\"([!]){2,}\", \"!  TWREPEAT \", text)\n    text = re.sub(\"([?]){2,}\", \"?  TWREPEAT \", text)\n    text = re.sub(\"([.]){2,}\", \".  TWREPEAT \", text)\n    pattern = re.compile(r\"(.)\\1{2,}\")\n    text = pattern.sub(r\"\\1\" + \" TWELONG \", text)\n\n    return text\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/readme",
    "content": "python3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --input ~/temp/toxic/v9/tfrecords/glove.bak/train.csv  --test_input ~/temp/toxic/v9/tfrecords/glove.bak/test.csv \n\nfor fast update attributes \n\n\nimprove from 0.9833 to 0.9854 after preprocess try to simple split or fix word (ni*gger to nigger) \nsees ./tokenizer-v2.py \n\n\nnow from v13 change to use toxic word dict f**in will not norm to fin \n\nTODO for v14\nalso use text blob try to error correcting for example peopel to people\n\nnotice NO UNK!  \n\nv14 no unk seems not work well, chang back to use.. unk  \nunk problem seems can be handel with simple rule based method since many other language useless char is non toxic \n\nv15 back to min count 10\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-gloveonly.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/tfrecords/glove-only/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py  --dir ./mount/temp/toxic/tfrecords/glove-only/ --type only\npython3 ./gen-records.py  --vocab ./mount/temp/toxic/tfrecords/glove-only/vocab.txt \npython3 ./gen-records.py  --vocab ./mount/temp/toxic/tfrecords/glove-only/vocab.txt --input ~/data/kaggle/toxic/test.csv\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-scratch.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/tfrecords/glove-scratch/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py  --dir ./mount/temp/toxic/tfrecords/glove-scratch/ --type scratch\npython3 ./gen-records.py  --vocab ./mount/temp/toxic/tfrecords/glove-scratch/vocab.txt \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v1.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v1/tfrecords/glove/ --vocab_name vocab.full --min_count -1\npython3 merge-glove.py \\\n    --dir ./mount/temp/toxic/v1/tfrecords/glove/ \\\n    --include_non_match=0\n\npython3 ./gen-records.py  --vocab ./mount/temp/toxic/v1/tfrecords/glove/vocab.txt \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v10-fasttext.sh",
    "content": "dir=./mount/temp/toxic/v10/tfrecords/fasttext/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v10-fttalk.sh",
    "content": "dir=./mount/temp/toxic/v10/tfrecords/fttalk/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v10.sh",
    "content": "dir=./mount/temp/toxic/v10/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-fasttext-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/fasttext.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-fasttext.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/fasttext/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-ftngram.sh",
    "content": "dir=./mount/temp/toxic/v11/tfrecords/ftngram/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.3gram.5epoch/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab\npython3 ./merge-word-ngram-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.input\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab --ftngram=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab --ftngram=1\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-fttalk.sh",
    "content": "dir=./mount/temp/toxic/v11/tfrecords/fttalk/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-fttalk2.sh",
    "content": "dir=./mount/temp/toxic/v11/tfrecords/fttalk2/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.2epoch/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-fttalk5.sh",
    "content": "dir=./mount/temp/toxic/v11/tfrecords/fttalk5/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-glove-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/glove.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-glove.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-glovetalk.sh",
    "content": "dir=./mount/temp/toxic/v11/tfrecords/glovetalk/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/glove/talk/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/vectors.txt\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-glovetwitter.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/glove.tw/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/glove/glove-twitter-vocab.txt --lower=1 --ngram_lower=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/glove/glove.twitter.27B.200d.txt --emb_dim 200\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/glove/glove-twitter-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-lexvec.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/lexvec/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/kaggle/toxic/lexvec-vocab.txt --lower=1 --ngram_lower=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/kaggle/toxic/lexvec.commoncrawl.300d.W.pos.vectors\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n \ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/kaggle/toxic/lexvec-vocab.txt --lower=1 --ngram_lower=1 \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-lexvecc.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/lexvecc/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt --lower=1 --ngram_lower=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/kaggle/toxic/lexvec.commoncrawl.300d.W+C.pos.vectors\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n \ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt --lower=1 --ngram_lower=1 \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11-ngram-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/glove.ngram.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=0 --ngram_lower=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=0 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=0 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=0 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=0 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v11.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v11/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10\npython ./merge-ngram-emb.py --dir $dir\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v13.sh",
    "content": "dir=./mount/temp/toxic/v13/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v14.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v14/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 \npython3 ./merge-emb.py --dir $dir --out_name glove.npy \npython ./merge-ngram-emb.py --dir $dir\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-clean-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/glove.clean.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --max_ngrams=20000 --lower=1 --ngram_lower=1 --input ./mount/data/kaggle/toxic/train_cleaned.csv --test_input ./mount/data/kaggle/toxic/test_cleaned.csv \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count=10\n#python ./merge-ngram-emb.py --dir $dir\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-clean.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/glove.clean/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --max_ngrams=20000 --lower=0 --ngram_lower=0 --input ./mount/data/kaggle/toxic/train_cleaned.csv --test_input ./mount/data/kaggle/toxic/test_cleaned.csv \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count=10\n#python ./merge-ngram-emb.py --dir $dir\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=0 --ngram_lower=0\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=0 --ngram_lower=0\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=0 --ngram_lower=0\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=0 --ngram_lower=0\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fasttext-lower-allngram.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/fasttext.lower.allngram/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=2000000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fasttext-lower-lemma.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/fasttext.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fasttext-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/fasttext.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fasttext.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/fasttext/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython3 ./merge-charemb.py --dir $dir --min_count 10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fttalk3gram-lower.sh",
    "content": "dir=./mount/temp/toxic/v15/tfrecords/fttalk3gram.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir --min_count=10  \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fttalk3gramall-lower.sh",
    "content": "dir=./mount/temp/toxic/v15/tfrecords/fttalk3gramall.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --lower=1 --ngram_lower=1 --max_ngrams=2000000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir --min_count=10  \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fttalk5-lower.sh",
    "content": "dir=./mount/temp/toxic/v15/tfrecords/fttalk5.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch.lower/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir --min_count=10  \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-fttalk5.sh",
    "content": "dir=./mount/temp/toxic/v15/tfrecords/fttalk5/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-glove-lower-allngram.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/glove.lower.allngram/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=2000000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-glove-lower-lem.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/glove.lower.lemma/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000 --lemmatization=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-glove-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/glove.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-gloveft-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/gloveft.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-2emb.py --dir $dir --out_name glove.npy --min_count 10 --emb2 ./mount/data/fasttext/crawl-300d-2M.vec\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-glovetalk-lower.sh",
    "content": "dir=./mount/temp/toxic/v15/tfrecords/glovetalk.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/glove.lower/talk/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --max_ngrams=20000 --lower=1 --ngram_lower=1 \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/vectors.txt\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab --lower=1 --ngram_lower=1 \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab --lower=1 --ngram_lower=1 \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-glovetalk.sh",
    "content": "dir=./mount/temp/toxic/v15/tfrecords/glovetalk/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/glove/talk/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/vectors.txt\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-lexvecc-clean.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/lexvecc.clean/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=20000 --input ./mount/data/kaggle/toxic/train_cleaned.csv --test_input ./mount/data/kaggle/toxic/test_cleaned.csv\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/kaggle/toxic/lexvec.commoncrawl.300d.W+C.pos.vectors\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n \ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt --lower=1 --ngram_lower=1 \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15-lexvecc.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/lexvecc/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/kaggle/toxic/lexvec.commoncrawl.300d.W+C.pos.vectors\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n \ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt --lower=1 --ngram_lower=1 \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v15.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v15/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count=10\n#python ./merge-ngram-emb.py --dir $dir\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-fasttext-lower-lemma.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/fasttext.lower.lemma/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=20000 --lemmatization=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-fasttext-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/fasttext.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1 \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 --weight=0.1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/hate_label.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name hate.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/hate.csv --mode_ hate --lower=1 --ngram_lower=1 --weight=0.1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-fasttext.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/fasttext/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec\npython3 ./merge-charemb.py --dir $dir --min_count 10 \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --weight=0.1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/hate_label.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name hate.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/hate.csv --mode_ hate --lower=1 --ngram_lower=1 --weight=0.1\n\ninput=/home/gezi/data/kaggle/toxic/white/white_label.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name white.csv --input=$input --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/white.csv --mode_ white --lower=1 --ngram_lower=1 --weight=0.1\n\nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-ftfttalk-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/ftfttalk.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch.lower/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-2emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/fasttext/crawl-300d-2M.vec --emb2 $vocab_dir/toxic.vec\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/train.sents.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name train.sents.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/train.sents.csv --lower=1 --ngram_lower=1 --has_dup=1\ninput=/home/gezi/data/kaggle/toxic/test.sents.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name test.sents.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.sents.csv --lower=1 --ngram_lower=1 --has_dup=1\n\n#input=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\n#python3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\n#python3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-fttalk5-lower.sh",
    "content": "dir=./mount/temp/toxic/v16/tfrecords/fttalk5.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch.lower/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --tokenizer_vocab $vocab --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb $vocab_dir/toxic.vec \npython ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch.lower/toxic.ngram \npython3 ./merge-charemb.py --dir $dir --min_count=10  \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv  --tokenizer_vocab $vocab --lower=1 --ngram_lower=1\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-glove-lower-lemma.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/glove.lower.lemma/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000 --lemmatization=1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-glove-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/glove.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=30000 --ngram_min=2\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1 --ngram_min=2 --char_limit=32\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1 --ngram_min=2 --char_limit=32\n\n#input=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\n#python3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\n#python3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-gloveft-lower-lemma.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/gloveft.lower.lemma/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000 --lemmatization=1\npython3 ./merge-2emb.py --dir $dir --out_name glove.npy --min_count 10 --emb2 ./mount/data/fasttext/crawl-300d-2M.vec\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-gloveft-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/gloveft.lower/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-2emb.py --dir $dir --out_name glove.npy --min_count 10 --emb2 ./mount/data/fasttext/crawl-300d-2M.vec\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\ninput=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-gloveglovetalk-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/ggtalk.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/glove/talk/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000\npython3 ./merge-2emb.py --dir $dir --out_name glove.npy --min_count 10 --emb2 $vocab_dir/vectors.txt\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\n#input=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\n#python3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\n#python3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-lexveccfttalk-lower.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/lexveccfttalk.lower/\nvocab_dir=./mount/data/kaggle/toxic/talk_corpus/fastText/result.5epoch.lower/\nvocab=$vocab_dir/vocab.txt\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=20000 --tokenizer_vocab ./mount/data/kaggle/toxic/lexvecc-vocab.txt \npython3 ./merge-2emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/kaggle/toxic/lexvec.commoncrawl.300d.W+C.pos.vectors --emb2 $vocab_dir/toxic.vec\n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=10\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1\n\n#input=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\n#python3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\n#python3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v16-lm.sh",
    "content": "export FAST=1\ndir=./mount/temp/toxic/v16/tfrecords/lm/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --lower=1 --ngram_lower=1 --max_ngrams=30000 \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 \n#python ./merge-ngram-emb.py --dir $dir --emb ./mount/data/kaggle/toxic/talk_corpus/fastText/result.lower.3gram.5epoch/toxic.ngram\npython3 ./merge-charemb.py --dir $dir --min_count=-1\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv --lower=1 --ngram_lower=1 --char_limit=1\npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv --lower=1 --ngram_lower=1 --char_limit=1\n\n#input=/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/data/nontoxic.csv\n#python3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0  --name nontoxic.csv --input=$input --lower=1 --ngram_lower=1\n#python3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/nontoxic.csv --mode_ nontoxic --lower=1 --ngram_lower=1 \nexport FAST=0\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v3-limit1000.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v3/tfrecords/glove-1000/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py --dir ./mount/temp/toxic/v3/tfrecords/glove-1000/\npython3 ./merge-charemb.py --dir ./mount/temp/toxic/v3/tfrecords/glove-1000/\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v3/tfrecords/glove-1000/vocab.txt --comment_limt 1000\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v3/tfrecords/glove-1000/vocab.txt --comment_limt 1000 --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v3-limit400.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v3/tfrecords/glove-400/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py --dir ./mount/temp/toxic/v3/tfrecords/glove-400/\npython3 ./merge-charemb.py --dir ./mount/temp/toxic/v3/tfrecords/glove-400/\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v3/tfrecords/glove-400/vocab.txt --comment_limit 400\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v3/tfrecords/glove-400/vocab.txt --comment_limit 400 --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v3.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v3/tfrecords/glove/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py --dir ./mount/temp/toxic/v3/tfrecords/glove/\npython3 ./merge-charemb.py --dir ./mount/temp/toxic/v3/tfrecords/glove/\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v3/tfrecords/glove/vocab.txt \npython3 ./gen-records.py --vocab ./mount/temp/toxic/v3/tfrecords/glove/vocab.txt --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v4-fasttext.sh",
    "content": "#mkdir -p ./mount/temp/toxic/v4/tfrecords/fasttext/\n#cp ./mount/temp/toxic/v4/tfrecords/glove/*vocab*.txt ./mount/temp/toxic/v4/tfrecords/fasttext\npython3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v4/tfrecords/fasttext --vocab_name vocab.full --min_count -1 --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./merge-emb.py --dir ./mount/temp/toxic/v4/tfrecords/fasttext/ --emb ./mount/data/fasttext/crawl-300d-2M.vec \npython3 ./merge-charemb.py --dir ./mount/temp/toxic/v4/tfrecords/fasttext/ \npython3 ./gen-records.py --vocab ./mount/temp/toxic/v4/tfrecords/fasttext/vocab.txt --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v4/tfrecords/fasttext/vocab.txt --input ~/data/kaggle/toxic/test.csv --tokenizer_vocab ./mount/data/fasttext/fasttext-vocab.txt\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v4-limmit400.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v4/tfrecords/glove-400/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py --dir ./mount/temp/toxic/v4/tfrecords/glove-400/\npython3 ./merge-charemb.py --dir ./mount/temp/toxic/v4/tfrecords/glove-400/\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v4/tfrecords/glove-400/vocab.txt --comment_limit 400\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v4/tfrecords/glove-400/vocab.txt --comment_limit 400 --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v4.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v4/tfrecords/glove/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py --dir ./mount/temp/toxic/v4/tfrecords/glove/\npython3 ./merge-charemb.py --dir ./mount/temp/toxic/v4/tfrecords/glove/\npython3 ./gen-records.py --vocab ./mount/temp/toxic/v4/tfrecords/glove/vocab.txt \npython3 ./gen-records.py --vocab ./mount/temp/toxic/v4/tfrecords/glove/vocab.txt --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v7.sh",
    "content": "dir=./mount/temp/toxic/v7/tfrecords/glove/\n#python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/v7/tfrecords/glove/ --vocab_name vocab.full --min_count -1\n#python3 ./merge-glove.py --dir ./mount/temp/toxic/v7/tfrecords/glove/\n#python3 ./merge-charemb.py --dir ./mount/temp/toxic/v7/tfrecords/glove/ \ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \n#python3 ./gen-records.py --vocab ./mount/temp/toxic/v7/tfrecords/glove/vocab.txt \n#python3 ./gen-records.py --vocab ./mount/temp/toxic/v7/tfrecords/glove/vocab.txt --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v8.sh",
    "content": "dir=./mount/temp/toxic/v9/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v9-full.sh",
    "content": "dir=./mount/temp/toxic/v9/tfrecords/glove.full/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=1 \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v9-glovetwitter-full.sh",
    "content": "dir=./mount/temp/toxic/v9/tfrecords/glove.twitter.full/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=1 --is_twitter=1 --tokenizer_vocab ./mount/data/glove/glove.twitter.27B.200d.txt \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/glove/glove.twitter.27B.200d.txt --emb_dim 200\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v9-glovetwitter.sh",
    "content": "dir=./mount/temp/toxic/v9/tfrecords/glove.twitter/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0 --is_twitter=1 --tokenizer_vocab ./mount/data/glove/glove.twitter.27B.200d.txt \npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10 --emb ./mount/data/glove/glove.twitter.27B.200d.txt --emb_dim 200\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v9-noparse.sh",
    "content": "dir=./mount/temp/toxic/v9/tfrecords/glove/\npython3 ./gen-vocab.py --out_dir $dir --vocab_name vocab.full --min_count -1\npython3 ./merge-emb.py --dir $dir --out_name glove.npy\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records.py --vocab $dir/vocab.txt  \npython3 ./gen-records.py --vocab $dir/vocab.txt --input /home/gezi/data/kaggle/toxic/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run-v9.sh",
    "content": "dir=./mount/temp/toxic/v9/tfrecords/glove/\npython3 ./gen-vocab-parse.py --out_dir $dir --vocab_name vocab.full --min_count -1 --full_tokenizer=0\npython3 ./merge-emb.py --dir $dir --out_name glove.npy --min_count 10\npython3 ./merge-charemb.py --dir $dir\ncat $dir/vocab.txt | vocab2project.py > $dir/vocab.project \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt  --input $dir/train.csv \npython3 ./gen-records-parse.py --vocab $dir/vocab.txt --input $dir/test.csv \n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/run.sh",
    "content": "python3 ./gen-vocab.py --out_dir ./mount/temp/toxic/tfrecords/glove/ --vocab_name vocab.full --min_count -1\npython3 ./merge-glove.py \npython3 ./merge-charemb.py\npython3 ./gen-records.py \npython3 ./gen-records.py --input ~/data/kaggle/toxic/test.csv\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/test-tokenize.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   test-tokenize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-14 23:49:07.815632\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tokenizer \nimport gezi\n\ndef tokenize(text):\n  print(text)\n  results = tokenizer.tokenize(text, True)\n  print(results)\n  #results = tokenizer.full_tokenize(text)\n  #print(results)\n  #print(list(zip(results.tokens, results.poses, results.tags, results.ners)))\n  #print(len(results))\n\ntokenize('motherfuck')\n\n# TODO fuck with * edit distance ?\ntokenize('fu*k')\ntokenize('fc*k')\ntokenize('fuck')\ntokenize('fu**ck')\ntokenize('f**in')\ntokenize('f*cked')\n\ntokenize('mother\\n\\nfuck')\ntokenize('SECURITYFUCK')\ntokenize('WikiNazis')\ntokenize('WikiNazis.')\ntokenize('Small|penis/////Small|penis/////')\n\ntokenize('Shut up, sit down.  Nig(g)er')\ntokenize('you\\'re so idi.o.t, so st.u.p.id guy, fu.c.k.i.n.g portuguese, i ha.te the portugueses')\n\ntokenize('''\\nOf course a true Dub will say 'depaaarted' or, more likely \"\"f**in' gone\"\".''')\n\ntokenize('F u c k i n g   c u n t s get a life you sad f u c k i n g gits.')\n\ntokenize('f u c k  y o u  a s  u  a r e  a  b i t c h  a s s  n i g g e r')\n\ntokenize('T w a t, are you f u c k i n g having a laugh, what kind of thick s h i t, thinks that william shakespeare, my ancestor!, died in. 1616, R.I.P bro,i find that highly rude that you are criticising my ancetors death date......')\n\ntokenize('{{unblock|Please unblock me, my friend was drunk and f*cked up several articles. I would like this account back. Thank you.')\n\ntokenize('chtippDick \\n\\nYou. You boy. Youuuuuu. Terisoaio! Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah.')\n\n#tokenize('''\"== I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f  == \n#I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! == August 2010 == I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! == August 2010 == I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel it needs to be corrected. Have a nice day and f u c k o f f ! ! I will edit whatever I want if I feel\"\n#''')\n#\n#tokenize('''Request to Unblock\n#I began writing the following statement (excepting its two postscripts) before I was blocked. I suspect that User: AuburnPilot had me blocked, in order to prevent me from complaining to administrators about his misconduct. Although I was directed to request an unblock of User: Physicq210, who had blocked me, requesting such of the latter would require that I censor myself, and write as though User: Physicq210 had acted in good faith, and was one of the good guys. That would be surreal, and would give User: Physicq210 a moral legitimacy belied by his actions. And so, the following request for unblocking is directed at any administrator BUT User: Physicq210, but since I’m not a devious sort, I have nothing against the latter reading this. Indeed, I want User: Physicq210 to read it. For if I can be banned from Wikipedia for standing up to censors, then it is vastly preferable to go down fighting, than to go down the long dark road of self-abnegation and self-censorship, including the use of bad English. After all, if I wanted to be a lackey, I could go to graduate school.\n#\n#WIKI Administrators’ Notice Board Incidents\n#http://en.wikipedia.org/wiki/Wikipedia:Administrators%27_noticeboard/Incidents\n#\n#User: AuburnPilot\n#\n#A few days ago, User: AuburnPilot began stalking me, checking wherever I had made edits, and going to the articles in question and vandalizing them. He or she has been manipulating Wikipedia rules as cover for what is clearly political censorship. User: AuburnPilot cannot even stand for Wikipedia readers to find out about factual material that upsets his political applecart through footnotes. Zero tolerance!\n#\n#He claims of any source he politically dislikes, that it is either “spam” or a “blog” (or “POV,” another favorite dodge for those at Wikipedia seeking to censor those who fail to conform to their own POV), even though the one source is a previously published, classic magazine article otherwise unavailable on the Web (http://geocities.com/nstix/waronpolice.html), which the author has seen fit to publish on his Web site, and the other source is the longest, most thorough exposé yet published on the Duke rape hoax (http://vdare.com/stix/070113_duke.htm).\n#\n#Note that I am not even talking about censoring writing within articles, since I hadn’t done any writing on the articles in question: Crystal Gail Mangum, Michael Nifong, 2006 Duke University lacrosse team scandal and Racial profiling.\n#I’ve been involved in edit wars before, though I have never been the aggressor, and have never initiated an elective edit war, though given the self-assurance that aggressors such as User: AuburnPilot exude, perhaps I ought to reconsider that position. It seems that aggressors rule here.\n#\n#The reason I am making a formal complaint is that User: AuburnPilot has tonight upped the ante, threatening to have me banned\n#(http://en.wikipedia.org/w/index.php?title=User_talk:70.23.199.239&redirect;=no), if I do not surrender to his censorship. Should you find for me, please serve this individual with the wikiquivalent of a cease-and-desist order. Should you, however, find for the censor, please provide an Index of banned publications and a list of official wikicensors.\n#\n#P.S. January 19, 2007 115A EST. Since beginning this complaint, I see that User: AuburnPilot has in fact succeeded at getting a crony, User: Physicq210, to block me, thus not only getting administrative support in censoring me, but preventing me from responding to his thuggery. (And no, I am not going to use cutesy, euphemistic language. If I were into such deception, I would have become a liar, er, lawyer, and would be worthless as an encyclopedist.) And I was unable to e-mail User: Physicq210 because I am not logged in and “You must be logged in and have a valid authenticated e-mail address in your preferences to send e-mail to other users.” (http://en.wikipedia.org/wiki/Special:Emailuser/Physicq210)\n#\n#If this isn’t cyber-Stalinism, I don’t know what is! So, let me get this straight. Stalking and censoring an editor while using the equivalent of smiley faces (User: AuburnPilot’s penchant for saying “Thank you” after vandalizing one’s links) is “civil,” but complaining about such abuse counts as “spam, disruption, incivility, and personal attacks.” If that is verily so, then 2 + 2 = 5.\n#\n#\n#P.P.S The message here says that I was “temporarily blocked from editing Wikipedia as a result of your disruptive edits.” What the heck is that supposed to mean? For restoring footnotes and links that User: AuburnPilot had vandalized? If that constitutes “disruptive edits,” then you’ve utterly given up on honest English and all human decency. Sorry, but I don’t have any sympathy for the Devil.''')\n\ntokenize('''I don't want''')\ntokenize('''I DON'T want''')\ntokenize('''i'm''')\ntokenize('''I'm''')\ntokenize('''I'M''')\ntokenize('''You're bitch''')\n\nprint(tokenizer.has('''DONT'T'''))\nprint(tokenizer.has('''don't'''))\nprint(tokenizer.has('''i'm'''))\nprint(tokenizer.has('''I'm'''))\nprint(tokenizer.has('''I'M'''))\n\ntokenize('he INSISTS upon keeping Boston(as the center of the world.  Clearly biased) in no matter what')\nprint(gezi.segment.tokenize_filter_empty('he INSISTS upon keeping Boston(as the center of the world.  Clearly biased) in no matter what'))\n\ntokenize('''19 August 2011 (UTC)\\nLook who is talking. Legilas is the user who's got Autopatrolled rights although he has  16 articles on the list.''')\ntokenize('Hi\\n\\nwhy did you give User:Barneca a kindness star.')\ntokenize('proud to be indonesial')\n\ntokenize('SECURITYFUCK dimension dimenison really fuck you')\ntokenize('Uh I hate to break it to you but Jusdafax is not an administrator')\ntokenize('I love beijing university. Mike is a Chinese boy. You are a ditry Frenchman')\ntokenize('Apple is looking at buying U.K. startup for $1 billion')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/test-tokenize2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   test-tokenize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-14 23:49:07.815632\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tokenizer \nimport gezi\n\ndef tokenize(text):\n  print(text)\n  #results = tokenizer.tokenize(text)\n  results = tokenizer.full_tokenize(text)\n  print(results)\n  print(gezi.segment.tokenize_filter_empty(text))\n  \ntokenize('{{unblock|Please')\n\ntokenize('actually his given name Cao(操) didnot mean fuck, the exact one is 肏.(Kèyì)')\n\ntokenize('''19 August 2011 (UTC)\\nLook who is talking. Legilas is the user who's got Autopatrolled rights although he has  16 articles on the list.''')\ntokenize('Hi\\n\\nwhy did you give User:Barneca a kindness star.')\ntokenize('proud to be indonesial')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/test-tokenize3.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   test-tokenize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-14 23:49:07.815632\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tokenizer \nimport gezi\n\ndef tokenize(text):\n  print(text)\n  results, infos = tokenizer.tokenize(text)\n  print(results)\n  print(list(zip(results, infos)))\n  print(len(results))\n\n  results = tokenizer.full_tokenize(text)\n  print(list(zip(results.tokens, results.ners)))\n\n  # doc = gezi.doc(text)\n  # #print(dir(doc))\n  # for token in doc:\n  #   #print(dir(token))\n  #   assert token.pos_\n  #   #print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,\n  #   #       token.shape_, token.is_alpha, token.is_stop)\n  #   print(token.text, token.pos, token.pos_, token.tag, token.tag_)\n  #   print(token.prefix_, token.suffix_)\n  #   #print(token.vector)\n  #   print(token.rank)\n  # print('name entities')\n  # for ent in doc.ents:\n  #   #print(dir(ent))\n  #   print(ent.text, ent.start_char, ent.end_char, ent.label_)\n\ntokenize('SECURITYFUCK dimension dimenison really fuck you')\ntokenize('Uh I hate to break it to you but Jusdafax is not an administrator')\ntokenize('I love beijing university. Mike is a Chinese boy. You are a ditry Frenchman')\ntokenize('Apple is looking at buying U.K. startup for $1 billion')\ntokenize('Both articles should be merged.  (Operibus anteire)')\ntokenize('You have no right to tell people to die in a fire. Just because that IP address is being used for vandilism does not mean you can talk to people like that. You are in fact a bigger loser than the person who you block.\",1,0,0,0,1,0,\"Dear Mokele , <N> You have no right to tell people to die in a fire . Just because that IP address is being used for vandilism does not mean you can talk to people like that . You are in fact a bigger loser than the person who you block .')\n\n\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/test-tokenize4.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   test-tokenize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-14 23:49:07.815632\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tokenizer \nimport gezi\n\ndef tokenize(text):\n  print(text)\n  results, infos = tokenizer.tokenize(text)\n  print(results)\n  print(list(zip(results, infos)))\n  print(len(results))\n\n  #results = tokenizer.full_tokenize(text)\n  #print(results.tokens)\n  #print(len(results.tokens))\n  #print(list(zip(results.tokens, results.poses)))\n  #print(list(zip(results.ori_tokens, results.poses)))\n  #print(list(zip(results.tokens, results.tags)))\n  #print(list(zip(results.tokens, results.ners)))\n  ## print(list(zip(results.tokens, results.attributes)))\n\n  # doc = gezi.doc(text)\n  # #print(dir(doc))\n  # for token in doc:\n  #   #print(dir(token))\n  #   assert token.pos_\n  #   #print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,\n  #   #       token.shape_, token.is_alpha, token.is_stop)\n  #   print(token.text, token.pos, token.pos_, token.tag, token.tag_)\n  #   print(token.prefix_, token.suffix_)\n  #   #print(token.vector)\n  #   print(token.rank)\n  # print('name entities')\n  # for ent in doc.ents:\n  #   #print(dir(ent))\n  #   print(ent.text, ent.start_char, ent.end_char, ent.label_)\n\n\ntokenize('''ok im talking to you as a wikipedian so please forget from this conflict and focused on the facts ok. the herut was never israeli minister therefor she can not be the major party ok. and about her policy i see you know hebrew so read this המפלגה אימצה קו שנחשב אז ימני קיצוני, ובין היתר תבעה את החזרה מההסכמה לתוכנית החלוקה. סיסמתה תאמה את קו אצ\"\"\"\"ל, \"\"\"\"שתי גדות לירדן, זו שלנו זו גם כן\"\"\"\" http://he.wikipedia.org/wiki/%D7%9E%D7%A0%D7%97%D7%9D_%D7%91%D7%92%D7%99%D7%9F for god sake this is wikipedia is mean to bring people facts we should not enter this conflict here ok there is forums for that. i won't even argue with you about this conflict if you want you can be a member here https://www.facebook.com/JewishVoiceforPeace?fref=ts and write your opinion wiki is not the right place\n''')\ntokenize('chink fag ? 216.145.245.93')\ntokenize('''peoples cock'n'balls.''')\n\ntokenize('Thanks for the barnstar, I greatly appreciate it. BW21.lackWatch21')\ntokenize('Credibility_node_ue')\ntokenize('oh thats right.......it doesnt')\ntokenize('Could you please stop your disruptive edits on Muamer Tanković.')\ntokenize('Images in the societal attitudes article should be about societal attutudes.')\ntokenize('95.43.48.134   12:59, 30 January 2008 {UTC}')\ntokenize('fu**ck')\ntokenize('Ni(gge)rMan')\ntokenize('Hi Edivorce, thank you for your supportive comment.')\ntokenize('discussion pages using four tildes (~~~~)')\n\ntokenize('actually his given name Cao(操) didnot mean fuck, the exact one is 肏.(Kèyì)')\n\ntokenize('FREEDOM!FREEDOM!FREEDOM!FREEDOM!FREEDOM!')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/test-tokenize5.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   test-tokenize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-14 23:49:07.815632\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tokenizer \nimport gezi\n\ndef tokenize(text):\n  print(text)\n  results = tokenizer.tokenize(text)\n  print(results)\n  # print(list(zip(results, infos)))\n  print(len(results))\n\n  print(gezi.segment.tokenize(text))\n  print([x.text for x in gezi.doc(text)])\n  \n\n  results = tokenizer.full_tokenize(text)\n  print(results.tokens)\n  print(len(results.tokens))\n  # print(list(zip(results.tokens, results.poses)))\n  # print(list(zip(results.ori_tokens, results.poses)))\n  # print(list(zip(results.tokens, results.tags)))\n  # print(list(zip(results.tokens, results.ners)))\n  # print(list(zip(results.tokens, results.attributes)))\n\n  #doc = gezi.doc(text)\n  ##print(dir(doc))\n  #for token in doc:\n  #  #print(dir(token))\n  #  assert token.pos_\n  #  #print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,\n  #  #       token.shape_, token.is_alpha, token.is_stop)\n  #  print(token.text, token.pos, token.pos_, token.tag, token.tag_)\n  #  print(token.prefix_, token.suffix_)\n  #  #print(token.vector)\n  #  print(token.rank)\n  #print('name entities')\n  #for ent in doc.ents:\n  #  #print(dir(ent))\n  #  print(ent.text, ent.start_char, ent.end_char, ent.label_)\n\ntokenize('Дреновени.')\n\nimport pandas as pd\n\ndf = pd.read_csv('/home/gezi/data/kaggle/toxic/train.csv')\nid  = '7015247faa5027d8'\nid = '00510c3d06745849'\nid = '0091798f05a311af'\ncomment = df.loc[df.id == id]['comment_text'].item()\n#comment = df.loc[df.id == '037cf9d6a84df11a']['comment_text'].item()\n#comment = df.loc[df.id == '0057b7710cb5ebb2']['comment_text'].item()\ntokenize(comment) \n\ntokenize('ANTI GREEK NATIONALIS -WIKIPEDIA \\n\\nHi Alexikoua,\\nYous should not vandalise Wikipedia by editing false information.You may be a chauvinist but you can not edit false information on Wikipedia.There is nowhere 6 percent greeks in Albania.http://www.instat.gov.al/media/178070/rezultatet_kryesore_t__censusit_t__popullsis__dhe_banesave_2011_n__shqip_ri.pdf')\n\n#comment = df.loc[df.id == '037cf9d6a84df11a']['comment_text'].item()\n#tokenize(comment)\n#\n#comment = df.loc[df.id == '0057b7710cb5ebb2']['comment_text'].item()\n#tokenize(comment)\n#\n#tokenize('''ok im talking to you as a wikipedian so please forget from this conflict and focused on the facts ok. the herut was never israeli minister therefor she can not be the major party ok. and about her policy i see you know hebrew so read this המפלגה אימצה קו שנחשב אז ימני קיצוני, ובין היתר תבעה את החזרה מההסכמה לתוכנית החלוקה. סיסמתה תאמה את קו אצ\"\"\"\"ל, \"\"\"\"שתי גדות לירדן, זו שלנו זו גם כן\"\"\"\" http://he.wikipedia.org/wiki/%D7%9E%D7%A0%D7%97%D7%9D_%D7%91%D7%92%D7%99%D7%9F for god sake this is wikipedia is mean to bring people facts we should not enter this conflict here ok there is forums for that. i won't even argue with you about this conflict if you want you can be a member here https://www.facebook.com/JewishVoiceforPeace?fref=ts and write your opinion wiki is not the right place\n#''')\n#tokenize('chink fag ? 216.145.245.93')\n#tokenize('''peoples cock'n'balls.''')\n\n# tokenize('Thanks for the barnstar, I greatly appreciate it. BW21.lackWatch21')\n# tokenize('Credibility_node_ue')\n# tokenize('oh thats right.......it doesnt')\n# tokenize('Could you please stop your disruptive edits on Muamer Tanković.')\n# tokenize('Images in the societal attitudes article should be about societal attutudes.')\n# tokenize('95.43.48.134   12:59, 30 January 2008 {UTC}')\n# tokenize('fu**ck')\n# tokenize('Ni(gge)rMan')\n# tokenize('Hi Edivorce, thank you for your supportive comment.')\n# tokenize('discussion pages using four tildes (~~~~)')\n\n# tokenize('actually his given name Cao(操) didnot mean fuck, the exact one is 肏.(Kèyì)')\n\n# tokenize('FREEDOM!FREEDOM!FREEDOM!FREEDOM!FREEDOM!')\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/tokenize-corpus.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   tokenize-corpus.py\n#        \\author   chenghuige  \n#          \\date   2018-03-02 22:42:15.222451\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport multiprocessing as mp\n\nimport gezi\n\nimport glob\n\ndef tokenize(file_):\n  with open(file_.replace('chunk', 'tokens'), 'w') as out:\n    first = True\n    for line in open(file_):\n      if first:\n        first = False\n        continue\n      l = line.rstrip().split('\\t')\n      comment = l[1].replace('REDIRECT Talk:', '').replace('NEWLINE:*', '').replace('NEWLINE*', ' ').replace('NEWLINE', ' ').replace('TAB', ' ').replace('\"', ' ')\n      comment = comment.lstrip(': ')\n      tokens = gezi.segment.tokenize_filter_empty(comment)\n      print(' '.join(tokens), file=out)\n\n\n#files = glob.glob('/home/gezi/data/kaggle/toxic/talk_corpus/comments*/chunk*')\nfiles = glob.glob('/home/gezi/data/kaggle/toxic/talk_corpus/comments_user_2015/chunk*')\n\npool = mp.Pool()\npool.map(tokenize, files)\npool.close()\npool.join()\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/tokenizer-v2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   normalize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-13 19:51:49.324339\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys, os\n\nfrom collections import namedtuple\nimport gezi\n\nimport re\n\nimport badwords\n\nbadwords_dict = badwords.get_bad_words()\n\n# TODO...\ntry:\n  from preprocess import *\nexcept Exception:\n  from prepare.preprocess import *\n\nip_pattern = r\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"\nhttp_pattern = r\"(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]\"\n\n# !NOTICE can not set file name to tokenize, will confict with python3 some tokenize.py \nvocab = None\n\n# this vocab is original calculated word freq vocab just using like spacy without any further split or other operations\ntrain_vocab = None \n\ntrain_vocab_path = '/home/gezi/data/kaggle/toxic/ori_vocab.txt'\nMIN_COUNT = 20\n\nSimpleTokens = namedtuple('SimpleTokens', ['tokens', 'ori_tokens', 'attributes'])\nTokens = namedtuple('Tokens', ['tokens', \n                              'attributes',\n                              'ori_tokens',\n                              'poses', \n                              'tags',\n                              'ners',\n                              ])\n\ndef init(vocab_path='/home/gezi/data/glove/glove-vocab.txt'):\n  global vocab,  train_vocab\n  if vocab:\n    return vocab, train_vocab\n  vocab = set()  \n  for line in open(vocab_path, encoding='utf-8', errors='ignore'):\n    vocab.add(line.rstrip('\\n').split('\\t')[0])\n\n  # train_vocab = {}\n  # for line in open(train_vocab_path):\n  #   word, count = line.rstrip('\\n').split('\\t')\n  #   train_vocab[word] = int(count)\n\n  return vocab, train_vocab\n\n# def train_dict_has(word):\n#   for w in (word, word.lower(), word.capitalize(), word.upper()):\n#     if w in train_vocab and train_vocab[w] > MIN_COUNT:\n#       return True\n#   return False\n\ndef dict_has(word):\n  for w in (word, word.lower(), word.capitalize(), word.upper()):\n    if w in vocab:\n      return True\n  return False \n\ndef has(word):\n  if not word.strip():\n    return False\n  #return train_dict_has(word) and dict_has(word)\n  return dict_has(word)\n\n# problem here is will also remove some other language word like '你' TODO\ndef en_filter(token):\n  en_results = []\n  results = []\n  ens = []\n  non_ens = []\n  for x in token:\n    #if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x >= '0' and x <= '9':\n    if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z':\n      if non_ens:\n        results.append(''.join(non_ens))\n        non_ens = []\n      ens.append(x)\n    else:\n      if ens:\n        results.append(''.join(ens))\n        en_results.append(results[-1])\n        ens = []\n      non_ens.append(x)\n  if ens:\n    results.append(''.join(ens))\n    en_results.append(results[-1])\n  if non_ens:\n    results.append(''.join(non_ens))\n  \n  return results, en_results\n\n# def can_split(w1, w2):\n#   if train_dict_has(w1):\n#     if train_dict_has(w2) or dict_has(w2):\n#       return True \n#     else:\n#       return False\n#   else:\n#     if dict_has(w1) and train_dict_has(w2):\n#       return True \n#     else:\n#       return False\ndef can_split(w1, w2):\n  return dict_has(w1) and dict_has(w2)\n  \ndef try_split(token):\n  if len(token) < 6 or has(token):\n    return [token]\n  \n  start = 3\n  end = len(token) - 2\n  idx = int(len(token) / 2)\n\n  for i in range(idx, end):\n    w1 = token[:i]\n    w2 = token[i:]\n    #print('w1:', w1, 'w2:', w2, can_split(w1, w2), train_dict_has(w1), dict_has(w1), train_dict_has(w2), dict_has(w2))\n    if can_split(w1, w2):\n      return [w1, '<JOIN>', w2]\n\n  for i in reversed(range(start, idx)):\n    w1 = token[:i]\n    w2 = token[i:]\n    #print('w1:', w1, 'w2:', w2, can_split(w1, w2), train_dict_has(w1), dict_has(w1), train_dict_has(w2), dict_has(w2))\n    if can_split(w1, w2):\n      return [w1, '<JOIN>', w2]\n  \n  return [token]\n\nattribute_names = ['len', 'deform', 'lower', 'upper', 'has_star', 'has_dot', 'has_bracket', 'not_en']\nattribute_default_values = [0.] * len(attribute_names)\nAttributes = namedtuple('Attributes', attribute_names)\n\nassert(len(attribute_names) == len(attribute_default_values))\n\nspecial_tokens = set(['<N>', '<SEP>', '<JOIN>'])\n\ntoxic_words = set([\n  'fuck', 'fucking', 'fuckin', \n  'cunt', 'cunts',\n  'dick', 'penis', 'bitch', 'nigger', 'die', 'kill'])\n\ndef is_toxic(word):\n return word in toxic_words\n\ndef maybe_toxic(word):\n  for w in toxic_words:\n    if w in word:\n      return True\n  return False\n\ndef get_token_len(token):\n  if token in special_tokens:\n    return 1\n  return len(token)\n\n\ndef is_en(token):\n  for x in token:\n    if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x >= '0' and x <= '9':\n      return True \n  return False\n\ndef get_attr(token, \n             deform=False,\n             has_star=False, \n             has_dot=False,\n             has_bracket=False,\n             not_en=False):\n  return [get_token_len(token), \n          deform,\n          token not in special_tokens and token.islower(), \\\n          token not in special_tokens and token.isupper(), \\\n          has_star, has_dot, has_bracket, not is_en(token)]\n\n\ndef tokenize(text):\n  init()\n  text = normalize(text)\n\n  tokens = gezi.segment.tokenize_filter_empty(text)\n  results = []\n  attributes = []\n  ori_tokens = []\n\n  def append(token, ori_token, attr=None):\n    results.append(token)\n    ori_tokens.append(ori_token)\n    attributes.append(attr or get_attr(token))\n\n  for token in tokens:\n    ori_token = token\n\n    #print('results', results)\n    if token in tokens_map:\n      token = tokens_map[token]\n      append(token, ori_token)\n    else:\n      if FLAGS.is_twitter:\n        token = token.lower()\n      else:\n        if re.match(ip_pattern, token):\n          token = '<IP>'\n\n        # NOTICE! if http hurt perf, remove!\n        if re.match(http_pattern, token):\n          token = '<HTTP>'\n\n      if has(token):\n        append(token, ori_token)\n      else:\n        tokens, en_tokens = en_filter(token)\n        tokens = [x for x in tokens if x.strip()]\n        en_token = ''.join(en_tokens)\n        #print('----...', tokens, en_token, en_tokens)\n        # Nig(g)er -> Nigger but lose some info might just 'Nig', '<SEP>', 'g', '<SEP>', 'er' ? or mark as deformed word! TODO add to word vector\n        if has(en_token):\n          has_star = '*' in token\n          has_dot = '.' in token\n          has_bracket = '(' in token or ')' in token or '[' in token or ']' in token or '（' in token or '）' in token\n          attr = [len(token), \n                  True, en_token.islower(), en_token.isupper(), \n                  has_star, has_dot, has_bracket, False]\n          append(en_token, ori_token, attr)\n        else:\n          token_results = try_split(en_token)\n          if len(token_results) == 1:\n            token_results = []\n            for token in en_tokens:\n              #print('----', token)\n              token_results += try_split(token)\n              token_results += ['<SEP>']\n            if token_results:\n              del token_results[-1]\n              for token in token_results:\n                append(token, ori_token, get_attr(token, True))\n            else:\n              append(token, ori_token)\n          else:\n            for token in token_results:\n              append(token, ori_token, get_attr(token, True))\n\n  if not results:\n    token = 'ok'\n    append(token, token)\n\n  assert len(results) == len(attributes)\n  return SimpleTokens(*([results, ori_tokens, attributes]))\n\n# TODO merge code\n\n    \ndef full_tokenize(text):\n  init()\n  # can cause http.. as PERSON\n  text = normalize(text)\n  doc = gezi.doc(text)\n  results = []\n  attributes = []\n  poses = []\n  tags = []\n  ners = []\n  ori_tokens = []\n\n  def append(token, ori_token, ner='NONE', attr=None):\n    results.append(token)\n    poses.append(ori_token.pos_)\n    tags.append(ori_token.tag_)\n    attributes.append(attr or get_attr(token))\n    ners.append(ner)\n    ori_tokens.append(ori_token.text.replace(' ', '').replace('NEWLINE', '\\x01'))\n    \n  ner_idx = 0\n  ner_list = [(x.text, x.label_) for x in doc.ents]\n  \n  ner_ok = True \n  for x, y in ner_list:\n    if 'NEWLINE' in x:\n      ner_ok = False \n      break \n    \n  #print('-----ner list', ner_list, ner_ok)\n  if not ner_ok:\n    ner_list = []\n\n  for token_ in doc:\n    token = token_.text\n    \n    # NOTICE! filtered empty text, if not filter later you must not split by  ' ', here already remove will ok\n    if not token.strip():\n      continue\n\n    if FLAGS.is_twitter:\n      token = token.lower()\n    else:\n      if re.match(ip_pattern, token):\n        token = '<IP>'\n\n    # NOTICE! if http hurt perf, remove!\n    if re.match(http_pattern, token):\n      token = '<HTTP>'\n\n    # TODO better..\n    ner = 'NONE'\n    for i in range(ner_idx, len(ner_list)):\n      if token == ner_list[i][0] or (len(token) > 2 and token in ner_list[i][0]):\n        ner = ner_list[i][1]\n        ner_idx = i + 1\n        break\n    #if ner != 'None':\n    #  print(token, ner)\n\n    if token in tokens_map:\n      token = tokens_map[token]\n      append(token, token_, ner)\n    else:\n      if FLAGS.is_twitter:\n        token = token.lower()\n      else:\n        if re.match(ip_pattern, token):\n          token = '<IP>'\n\n        # NOTICE! if http hurt perf, remove!\n        if re.match(http_pattern, token):\n          token = '<HTTP>'\n\n      #if has(token) or (ner != 'NONE' and not maybe_toxic(token)):\n      if has(token):\n      #if has(token) or ner == 'PERSON':\n        append(token, token_, ner)\n      else:\n        #print('token', token)\n        tokens, en_tokens = en_filter(token)\n        tokens = [x for x in tokens if x.strip()]\n        en_token = ''.join(en_tokens)\n        #print('!!!', tokens, en_tokens, en_token)\n        # Nig(g)er -> Nigger but lose some info might just 'Nig', '<SEP>', 'g', '<SEP>', 'er' ? or mark as deformed word! TODO add to word vector\n        #if has(en_token) or (ner != 'NONE' and not maybe_toxic(token)):\n        if has(en_token):\n        #if has(en_token) or ner == 'PERSON':\n          has_star = '*' in token\n          has_dot = '.' in token\n          has_bracket = '(' in token or ')' in token or '[' in token or ']' in token or '（' in token or '）' in token\n          attr = [len(token), True,\n                  en_token.islower(), en_token.isupper(), \n                  has_star, has_dot, has_bracket, False]\n          append(en_token, token_, ner, attr)\n        else:\n          token_results = try_split(en_token)\n          if len(token_results) == 1:\n            token_results = []\n            for token in en_tokens:\n              #print('----', token)\n              token_results += try_split(token)\n              token_results += ['<SEP>']\n            if token_results:\n              del token_results[-1]\n              for token in token_results:\n                append(token, token_, ner, get_attr(token, True))\n            else:\n              append(token, token_, ner)\n          else:\n            for token in token_results:\n              append(token, token_, ner, get_attr(token, True))\n\n  if not results:\n    return full_tokenize('ok')\n  assert len(results) == len(attributes) == len(ori_tokens) == len(poses) == len(tags) == len(ners)\n  return Tokens(*([results, attributes, ori_tokens, poses, tags, ners]))\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/tokenizer-v3.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   normalize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-13 19:51:49.324339\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys, os\n\nfrom collections import namedtuple\nimport gezi\n\nimport re\n\ntry:\n  import toxic_words\nexcept Exception:\n  import prepare.toxic_words\n\n# TODO...\ntry:\n  from preprocess import *\nexcept Exception:\n  from prepare.preprocess import *\n\nip_pattern = r\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"\nhttp_pattern = r\"(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]\"\n\n# !NOTICE can not set file name to tokenize, will confict with python3 some tokenize.py \nvocab = None\n\n# this vocab is original calculated word freq vocab just using like spacy without any further split or other operations\ntrain_vocab = None \n\ntrain_vocab_path = '/home/gezi/data/kaggle/toxic/ori_vocab.txt'\nMIN_COUNT = 20\n\nSimpleTokens = namedtuple('SimpleTokens', ['tokens', 'ori_tokens', 'attributes'])\nTokens = namedtuple('Tokens', ['tokens', \n                              'attributes',\n                              'ori_tokens',\n                              'poses', \n                              'tags',\n                              'ners',\n                              ])\n\ndef init(vocab_path='/home/gezi/data/glove/glove-vocab.txt'):\n  global vocab,  train_vocab\n  if vocab:\n    return vocab, train_vocab\n  vocab = set()  \n  for line in open(vocab_path, encoding='utf-8', errors='ignore'):\n    vocab.add(line.rstrip('\\n').split('\\t')[0])\n\n  # train_vocab = {}\n  # for line in open(train_vocab_path):\n  #   word, count = line.rstrip('\\n').split('\\t')\n  #   train_vocab[word] = int(count)\n\n  return vocab, train_vocab\n\n# def train_dict_has(word):\n#   for w in (word, word.lower(), word.capitalize(), word.upper()):\n#     if w in train_vocab and train_vocab[w] > MIN_COUNT:\n#       return True\n#   return False\n\ndef dict_has(word):\n  for w in (word, word.lower(), word.capitalize(), word.upper()):\n    if w in vocab:\n      return True\n  return False \n\ndef has(word):\n  if not word.strip():\n    return False\n  #return train_dict_has(word) and dict_has(word)\n  return dict_has(word)\n\n\n# problem here is will also remove some other language word like '你' TODO\ndef en_filter(token):\n  en_results = []\n  results = []\n  ens = []\n  non_ens = []\n  for x in token:\n    #if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x >= '0' and x <= '9':\n    if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z':\n      if non_ens:\n        results.append(''.join(non_ens))\n        non_ens = []\n      ens.append(x)\n    else:\n      if ens:\n        results.append(''.join(ens))\n        en_results.append(results[-1])\n        ens = []\n      non_ens.append(x)\n  if ens:\n    results.append(''.join(ens))\n    en_results.append(results[-1])\n  if non_ens:\n    results.append(''.join(non_ens))\n  \n  return results, en_results\n\n# def can_split(w1, w2):\n#   if train_dict_has(w1):\n#     if train_dict_has(w2) or dict_has(w2):\n#       return True \n#     else:\n#       return False\n#   else:\n#     if dict_has(w1) and train_dict_has(w2):\n#       return True \n#     else:\n#       return False\ndef can_split(w1, w2):\n  return dict_has(w1) and dict_has(w2) or is_toxic(w1) or is_toxic(w2)\n  \ndef try_split(token):\n  if len(token) < 6 or has(token):\n    return [token]\n  \n  start = 3\n  end = len(token) - 2\n  idx = int(len(token) / 2)\n\n  for i in range(idx, end):\n    w1 = token[:i]\n    w2 = token[i:]\n    #print('w1:', w1, 'w2:', w2, can_split(w1, w2), train_dict_has(w1), dict_has(w1), train_dict_has(w2), dict_has(w2))\n    if can_split(w1, w2):\n      return [w1, '<JOIN>', w2]\n\n  for i in reversed(range(start, idx)):\n    w1 = token[:i]\n    w2 = token[i:]\n    #print('w1:', w1, 'w2:', w2, can_split(w1, w2), train_dict_has(w1), dict_has(w1), train_dict_has(w2), dict_has(w2))\n    if can_split(w1, w2):\n      return [w1, '<JOIN>', w2]\n  \n  return [token]\n\nattribute_names = ['len', 'deform', 'lower', 'upper', 'has_star', 'has_dot', 'has_bracket', 'not_en']\nattribute_default_values = [0.] * len(attribute_names)\nAttributes = namedtuple('Attributes', attribute_names)\n\nassert(len(attribute_names) == len(attribute_default_values))\n\nspecial_tokens = set(['<N>', '<SEP>', '<JOIN>'])\n\n# toxic_words = set([\n#   'fuck', 'fucking', 'fuckin', \n#   'cunt', 'cunts',\n#   'dick', 'penis', 'bitch', 'nigger', 'die', 'kill'])\n\ndef is_toxic(word):\n  for w in (word, word.lower(), word.capitalize(), word.upper()):\n    if w in toxic_words.get_toxic_words():\n      return True\n  return False\n\n# def maybe_toxic(word):\n#   for w in toxic_words:\n#     if w in word:\n#       return True\n#   return False\n\ndef get_token_len(token):\n  if token in special_tokens:\n    return 1\n  return len(token)\n\n\ndef is_en(token):\n  for x in token:\n    if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x >= '0' and x <= '9':\n      return True \n  return False\n\ndef get_attr(token, \n             deform=False,\n             has_star=False, \n             has_dot=False,\n             has_bracket=False,\n             not_en=False):\n  return [get_token_len(token), \n          deform,\n          token not in special_tokens and token.islower(), \\\n          token not in special_tokens and token.isupper(), \\\n          has_star, has_dot, has_bracket, not is_en(token)]\n\n\ndef tokenize(text):\n  init()\n  text = normalize(text)\n\n  tokens = gezi.segment.tokenize_filter_empty(text)\n  results = []\n  attributes = []\n  ori_tokens = []\n\n  def append(token, ori_token, attr=None):\n    results.append(token)\n    ori_tokens.append(ori_token)\n    attributes.append(attr or get_attr(token))\n\n  for token in tokens:\n    ori_token = token\n\n    #print('results', results)\n    if token in tokens_map:\n      token = tokens_map[token]\n      append(token, ori_token)\n    else:\n      if FLAGS.is_twitter:\n        token = token.lower()\n      else:\n        if re.match(ip_pattern, token):\n          token = '<IP>'\n\n        # NOTICE! if http hurt perf, remove!\n        if re.match(http_pattern, token):\n          token = '<HTTP>'\n\n      if has(token):\n        append(token, ori_token)\n      else:\n        tokens, en_tokens = en_filter(token)\n        tokens = [x for x in tokens if x.strip()]\n        en_token = ''.join(en_tokens)\n        #print('----...', tokens, en_token, en_tokens)\n        # Nig(g)er -> Nigger but lose some info might just 'Nig', '<SEP>', 'g', '<SEP>', 'er' ? or mark as deformed word! TODO add to word vector\n        if has(en_token):\n          has_star = '*' in token\n          has_dot = '.' in token\n          has_bracket = '(' in token or ')' in token or '[' in token or ']' in token or '（' in token or '）' in token\n          is_deform = is_toxic(en_token)\n\n          if is_deform:\n            print(en_token, token, ori_token)\n          \n          attr = [len(token), \n                  is_deform, en_token.islower(), en_token.isupper(), \n                  has_star, has_dot, has_bracket, False]\n          if is_deform:\n            append(en_token, ori_token, attr)\n          else:\n            append(token, ori_token, attr)\n        else:\n          token_results = try_split(en_token)\n          if len(token_results) == 1:\n            token_results = []\n            for token in en_tokens:\n              #print('----', token)\n              token_results += try_split(token)\n              token_results += ['<SEP>']\n            if token_results:\n              del token_results[-1]\n              for token in token_results:\n                append(token, ori_token, get_attr(token, True))\n            else:\n              append(token, ori_token)\n          else:\n            for token in token_results:\n              append(token, ori_token, get_attr(token, True))\n\n  if not results:\n    token = 'ok'\n    append(token, token)\n\n  assert len(results) == len(attributes)\n  return SimpleTokens(*([results, ori_tokens, attributes]))\n\n# TODO merge code\n\n    \ndef full_tokenize(text):\n  init()\n  # can cause http.. as PERSON\n  text = normalize(text)\n  doc = gezi.doc(text)\n  results = []\n  attributes = []\n  poses = []\n  tags = []\n  ners = []\n  ori_tokens = []\n\n  def append(token, ori_token, ner='NONE', attr=None):\n    results.append(token)\n    poses.append(ori_token.pos_)\n    tags.append(ori_token.tag_)\n    attributes.append(attr or get_attr(token))\n    ners.append(ner)\n    ori_tokens.append(ori_token.text.replace(' ', '').replace('NEWLINE', '\\x01'))\n    \n  ner_idx = 0\n  ner_list = [(x.text, x.label_) for x in doc.ents]\n  \n  ner_ok = True \n  for x, y in ner_list:\n    if 'NEWLINE' in x:\n      ner_ok = False \n      break \n    \n  #print('-----ner list', ner_list, ner_ok)\n  if not ner_ok:\n    ner_list = []\n\n  for token_ in doc:\n    token = token_.text\n    \n    # NOTICE! filtered empty text, if not filter later you must not split by  ' ', here already remove will ok\n    if not token.strip():\n      continue\n\n    if FLAGS.is_twitter:\n      token = token.lower()\n    else:\n      if re.match(ip_pattern, token):\n        token = '<IP>'\n\n    # NOTICE! if http hurt perf, remove!\n    if re.match(http_pattern, token):\n      token = '<HTTP>'\n\n    # TODO better..\n    ner = 'NONE'\n    for i in range(ner_idx, len(ner_list)):\n      if token == ner_list[i][0] or (len(token) > 2 and token in ner_list[i][0]):\n        ner = ner_list[i][1]\n        ner_idx = i + 1\n        break\n    #if ner != 'None':\n    #  print(token, ner)\n\n    if token in tokens_map:\n      token = tokens_map[token]\n      append(token, token_, ner)\n    else:\n      if FLAGS.is_twitter:\n        token = token.lower()\n      else:\n        if re.match(ip_pattern, token):\n          token = '<IP>'\n\n        # NOTICE! if http hurt perf, remove!\n        if re.match(http_pattern, token):\n          token = '<HTTP>'\n\n      #if has(token) or (ner != 'NONE' and not maybe_toxic(token)):\n      if has(token):\n      #if has(token) or ner == 'PERSON':\n        append(token, token_, ner)\n      else:\n        #print('token', token)\n        tokens, en_tokens = en_filter(token)\n        tokens = [x for x in tokens if x.strip()]\n        en_token = ''.join(en_tokens)\n        #print('!!!', tokens, en_tokens, en_token)\n        # Nig(g)er -> Nigger but lose some info might just 'Nig', '<SEP>', 'g', '<SEP>', 'er' ? or mark as deformed word! TODO add to word vector\n        #if has(en_token) or (ner != 'NONE' and not maybe_toxic(token)):\n        if has(en_token):\n        #if has(en_token) or ner == 'PERSON':\n          has_star = '*' in token\n          has_dot = '.' in token\n          has_bracket = '(' in token or ')' in token or '[' in token or ']' in token or '（' in token or '）' in token\n          is_deform = is_toxic(en_token)\n          attr = [len(token), is_deform,\n                  en_token.islower(), en_token.isupper(), \n                  has_star, has_dot, has_bracket, False]\n          if is_deform:\n            append(en_token, token_, ner, attr)\n          else:\n            append(token, token_, ner, attr)\n        else:\n          token_results = try_split(en_token)\n          if len(token_results) == 1:\n            token_results = []\n            for token in en_tokens:\n              #print('----', token)\n              token_results += try_split(token)\n              token_results += ['<SEP>']\n            if token_results:\n              del token_results[-1]\n              for token in token_results:\n                append(token, token_, ner, get_attr(token, True))\n            else:\n              append(token, token_, ner)\n          else:\n            for token in token_results:\n              append(token, token_, ner, get_attr(token, True))\n\n  if not results:\n    return full_tokenize('ok')\n  assert len(results) == len(attributes) == len(ori_tokens) == len(poses) == len(tags) == len(ners)\n  return Tokens(*([results, attributes, ori_tokens, poses, tags, ners]))\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/tokenizer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   normalize.py\n#        \\author   chenghuige  \n#          \\date   2018-02-13 19:51:49.324339\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys, os\n\nfrom collections import namedtuple\nimport gezi\n\nimport re\n\ntry:\n  import toxic_words\nexcept Exception:\n  import prepare.toxic_words\n\n# TODO...\ntry:\n  from preprocess import *\nexcept Exception:\n  from prepare.preprocess import *\n\ntry:\n  from spacy.lemmatizer import Lemmatizer\n  from spacy.lang.en import LEMMA_INDEX, LEMMA_EXC, LEMMA_RULES\n  lemmatizer = Lemmatizer(LEMMA_INDEX, LEMMA_EXC, LEMMA_RULES)\nexcept Exception:\n  pass\n\n\nip_pattern = r\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"\nhttp_pattern = r\"(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]\"\n\n# !NOTICE can not set file name to tokenize, will confict with python3 some tokenize.py \nvocab = None\n\n# this vocab is original calculated word freq vocab just using like spacy without any further split or other operations\ntrain_vocab = None \n\ntrain_vocab_path = '/home/gezi/data/kaggle/toxic/ori_vocab.txt'\nMIN_COUNT = 20\n\nSimpleTokens = namedtuple('SimpleTokens', ['tokens', 'ori_tokens', 'attributes'])\nTokens = namedtuple('Tokens', ['tokens', \n                              'attributes',\n                              'ori_tokens',\n                              'poses', \n                              'tags',\n                              'ners',\n                              ])\n\ndef init(vocab_path='/home/gezi/data/glove/glove-vocab.txt'):\n  global vocab,  train_vocab\n  if vocab:\n    return vocab, train_vocab\n  vocab = set()  \n  for line in open(vocab_path, encoding='utf-8', errors='ignore'):\n    if not line.strip():\n      vocab.add(' ')\n    else:\n      vocab.add(line.rstrip('\\n').split()[0])\n\n  # train_vocab = {}\n  # for line in open(train_vocab_path):\n  #   word, count = line.rstrip('\\n').split('\\t')\n  #   train_vocab[word] = int(count)\n\n  return vocab, train_vocab\n\n# def train_dict_has(word):\n#   for w in (word, word.lower(), word.capitalize(), word.upper()):\n#     if w in train_vocab and train_vocab[w] > MIN_COUNT:\n#       return True\n#   return False\n\ndef dict_has(word):\n  for w in (word, word.lower(), word.capitalize(), word.upper()):\n    if w in vocab:\n      return True\n  return False \n\ndef has(word):\n  if not word.strip():\n    return False\n  #return train_dict_has(word) and dict_has(word)\n  return dict_has(word)\n\n\n# problem here is will also remove some other language word like '你' TODO\ndef en_filter(token):\n  en_results = []\n  results = []\n  ens = []\n  non_ens = []\n  for x in token:\n    #if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x >= '0' and x <= '9':\n    if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z':\n      if non_ens:\n        results.append(''.join(non_ens))\n        non_ens = []\n      ens.append(x)\n    else:\n      if ens:\n        results.append(''.join(ens))\n        en_results.append(results[-1])\n        ens = []\n      non_ens.append(x)\n  if ens:\n    results.append(''.join(ens))\n    en_results.append(results[-1])\n  if non_ens:\n    results.append(''.join(non_ens))\n  \n  return results, en_results\n\n# def can_split(w1, w2):\n#   if train_dict_has(w1):\n#     if train_dict_has(w2) or dict_has(w2):\n#       return True \n#     else:\n#       return False\n#   else:\n#     if dict_has(w1) and train_dict_has(w2):\n#       return True \n#     else:\n#       return False\ndef can_split(w1, w2):\n  return dict_has(w1) and dict_has(w2) or is_toxic(w1) or is_toxic(w2)\n  \ndef try_split(token):\n  if len(token) < 6 or has(token):\n    return [token]\n  \n  start = 3\n  end = len(token) - 2\n  idx = int(len(token) / 2)\n\n  for i in range(idx, end):\n    w1 = token[:i]\n    w2 = token[i:]\n    #print('w1:', w1, 'w2:', w2, can_split(w1, w2), train_dict_has(w1), dict_has(w1), train_dict_has(w2), dict_has(w2))\n    if can_split(w1, w2):\n      return [w1, '<JOIN>', w2]\n\n  for i in reversed(range(start, idx)):\n    w1 = token[:i]\n    w2 = token[i:]\n    #print('w1:', w1, 'w2:', w2, can_split(w1, w2), train_dict_has(w1), dict_has(w1), train_dict_has(w2), dict_has(w2))\n    if can_split(w1, w2):\n      return [w1, '<JOIN>', w2]\n  \n  return [token]\n\n\n# TODO tokens info also use embedding better ?\n# for v15 or before\nif 'TOXIC_VERSION' in os.environ and int(os.environ['TOXIC_VERSION']) <= 15:\n  attribute_names = ['len', 'deform', 'lower', 'upper', 'has_star', 'has_dot', 'has_bracket', 'not_en']\n# for v16 or after\nelse:\n  attribute_names = ['len', 'deform', 'lower', 'upper', 'has_star', 'has_dot', 'has_bracket', 'not_en', 'lem_non', 'lem_verb']\n\nattribute_default_values = [0.] * len(attribute_names)\nAttributes = namedtuple('Attributes', attribute_names)\n\nassert(len(attribute_names) == len(attribute_default_values))\n\nspecial_tokens = set(['<N>', '<SEP>', '<JOIN>'])\n\n# toxic_words = set([\n#   'fuck', 'fucking', 'fuckin', \n#   'cunt', 'cunts',\n#   'dick', 'penis', 'bitch', 'nigger', 'die', 'kill'])\n\ndef is_toxic(word):\n  for w in (word, word.lower(), word.capitalize(), word.upper()):\n    if w in toxic_words.get_toxic_words():\n      return True\n  return False\n\n# def maybe_toxic(word):\n#   for w in toxic_words:\n#     if w in word:\n#       return True\n#   return False\n\ndef get_token_len(token):\n  if token in special_tokens:\n    return 1\n  return len(token)\n\ndef is_en(token):\n  for x in token:\n    if x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x >= '0' and x <= '9':\n      return True \n  return False\n\n# https://www.kaggle.com/fizzbuzz/lemmatization-pooled-gru-on-preprocessed-dataset\n# well this not good as Apples might turn to apple not affect much I think\n# but might try pos tag one\ndef get_lemma(token):\n  lem_non = False  \n  lem_verb = False\n  lemmas = lemmatizer(token, u'NOUN')\n  if lemmas[0] != token.lower():\n    token = lemmas[0] \n    lem_non = True\n    return token, lem_non, lem_verb \n  lemmas = lemmatizer(token, u'VERB')\n  if lemmas[0] != token.lower():\n    token = lemmas[0] \n    lem_verb = True\n    return token, lem_non, lem_verb   \n  return token, lem_non, lem_verb\n\ndef get_attr(token, \n             deform=False,\n             has_star=False, \n             has_dot=False,\n             has_bracket=False,\n             not_en=False,\n             lem_non=False,\n             lem_verb=False):\n  return [get_token_len(token), \n          deform,\n          token not in special_tokens and token.islower(), \\\n          token not in special_tokens and token.isupper(), \\\n          has_star, has_dot, has_bracket, not is_en(token), \\\n          lem_non, lem_verb]\n\n\ndef try_correct_toxic(token):\n  return token, False\n  # TODO textblob too slow\n  # if 'FAST' in os.environ and os.environ['FAST'] == '1':\n  #   return token, False\n\n  # from textblob import Word\n  # word = Word(token)\n  # l = word.spellcheck()\n  # w, prob = l[0]\n  # if prob >= 0.9 and is_toxic(w):\n  #   #if token[0].lower() == w[0].lower() or prob == 1.:\n  #   if token[0].lower() == w[0].lower():\n  #     if token != w:\n  #       print('----', token, w, prob)\n  #       return w, True \n  # return token, False\n\ndef star_inside(word):\n  if len(word) < 3:\n    return False \n  return '*' in word[1:-1]\n\n# if to lower lower it before using tokenize\ndef tokenize(text, lemmatization=False):\n  init()\n  try:\n    text = normalize(text)\n  except Exception:\n    text = 'ok'\n\n  tokens = gezi.segment.tokenize_filter_empty(text)\n  results = []\n  attributes = []\n  ori_tokens = []\n\n  def append(token, ori_token, lem_non=False, lem_verb=False, attr=None):\n    results.append(token)\n    ori_tokens.append(ori_token)\n    attributes.append(attr or get_attr(token, has_star=star_inside(ori_token), lem_non=lem_non, lem_verb=lem_verb))\n\n  for token in tokens:\n    ori_token = token\n\n    #print('results', results)\n    if token in tokens_map:\n      token = tokens_map[token]\n      append(token, ori_token)\n    else:\n      if FLAGS.is_twitter:\n        token = token.lower()\n      else:\n        if re.match(ip_pattern, token):\n          token = '<IP>'\n\n        # NOTICE! if http hurt perf, remove!\n        if re.match(http_pattern, token):\n          token = '<HTTP>'\n\n      lem_token, lem_non, lem_verb = get_lemma(token)\n      # NOTICE if lemmatization then to lower \n      if lemmatization:\n        token = lem_token\n\n      if has(token):\n        append(token, ori_token, lem_non, lem_verb)\n      else:\n        tokens, en_tokens = en_filter(token)\n        tokens = [x for x in tokens if x.strip()]\n        en_token = ''.join(en_tokens)\n        #print('----...', tokens, en_token, en_tokens)\n        # Nig(g)er -> Nigger but lose some info might just 'Nig', '<SEP>', 'g', '<SEP>', 'er' ? or mark as deformed word! TODO add to word vector\n        \n        en_token, spell_error = try_correct_toxic(en_token)\n        if has(en_token):\n          #has_star = '*' in token\n          # only f**in not condider *good*\n          has_star = star_inside(token)  \n          has_dot = '.' in token\n          has_bracket = '(' in token or ')' in token or '[' in token or ']' in token or '（' in token or '）' in token\n          \n          #is_deform = is_toxic(en_token)\n          \n          attr = [len(token), \n                  has_star, en_token.islower(), en_token.isupper(), \n                  has_star, has_dot, has_bracket, False, \n                  lem_non, lem_verb]\n\n          #if is_deform:\n          # TODO how to jude for badwords if en_token is bad words may be fuking also not in toxic dict\n          if not has_star or spell_error or is_toxic(en_token) or len(en_token) > 3:\n            final_token = en_token\n          else:\n            final_token = token\n          #final_token = en_token\n\n          append(final_token, ori_token, attr=attr)\n          #print('----', ori_token, final_token)\n        else:\n          token_results = try_split(en_token)\n          if len(token_results) == 1:\n            token_results = []\n            for token in en_tokens:\n              #print('----', token)\n              token_results += try_split(token)\n              token_results += ['<SEP>']\n            if token_results:\n              del token_results[-1]\n              for token in token_results:\n                append(token, ori_token, attr=get_attr(token, True, lem_non=lem_non, lem_verb=lem_verb))\n            else:\n              append(token, ori_token, lem_non, lem_verb)\n          else:\n            for token in token_results:\n              append(token, ori_token, attr=get_attr(token, True, lem_non=lem_non, lem_verb=lem_verb))\n\n  if not results:\n    token = 'ok'\n    append(token, token)\n\n  assert len(results) == len(attributes)\n  return SimpleTokens(*([results, ori_tokens, attributes]))\n\n# TODO merge code\n# TODO not suppor lem right now\ndef full_tokenize(text, lemmatization=False):\n  init()\n  # can cause http.. as PERSON\n  try:\n    text = normalize(text)\n  except Exception:\n    text = 'ok'\n  doc = gezi.doc(text)\n  results = []\n  attributes = []\n  poses = []\n  tags = []\n  ners = []\n  ori_tokens = []\n\n  def append(token, ori_token, ner='NONE', attr=None, lem_non=False, lem_verb=False):\n    results.append(token)\n    poses.append(ori_token.pos_)\n    tags.append(ori_token.tag_)\n    attributes.append(attr or get_attr(token, has_star=star_inside(ori_token), lem_non=lem_non, lem_verb=lem_verb))\n    ners.append(ner)\n    ori_tokens.append(ori_token.text.replace(' ', '').replace('NEWLINE', '\\x01'))\n    \n  ner_idx = 0\n  ner_list = [(x.text, x.label_) for x in doc.ents]\n  \n  ner_ok = True \n  for x, y in ner_list:\n    if 'NEWLINE' in x:\n      ner_ok = False \n      break \n    \n  #print('-----ner list', ner_list, ner_ok)\n  if not ner_ok:\n    ner_list = []\n\n  for token_ in doc:\n    token = token_.text\n    \n    # NOTICE! filtered empty text, if not filter later you must not split by  ' ', here already remove will ok\n    if not token.strip():\n      continue\n\n    if FLAGS.is_twitter:\n      token = token.lower()\n    else:\n      if re.match(ip_pattern, token):\n        token = '<IP>'\n\n    # NOTICE! if http hurt perf, remove!\n    if re.match(http_pattern, token):\n      token = '<HTTP>'\n\n    lem_token, lem_non, lem_verb = get_lemma(token)\n    # NOTICE if lemmatization then to lower \n    if lemmatization:\n      token = lem_token\n\n\n    # TODO better..\n    ner = 'NONE'\n    for i in range(ner_idx, len(ner_list)):\n      if token == ner_list[i][0] or (len(token) > 2 and token in ner_list[i][0]):\n        ner = ner_list[i][1]\n        ner_idx = i + 1\n        break\n    #if ner != 'None':\n    #  print(token, ner)\n\n    if token in tokens_map:\n      token = tokens_map[token]\n      append(token, token_, ner)\n    else:\n      if FLAGS.is_twitter:\n        token = token.lower()\n      else:\n        if re.match(ip_pattern, token):\n          token = '<IP>'\n\n        # NOTICE! if http hurt perf, remove!\n        if re.match(http_pattern, token):\n          token = '<HTTP>'\n\n      #if has(token) or (ner != 'NONE' and not maybe_toxic(token)):\n      if has(token):\n      #if has(token) or ner == 'PERSON':\n        append(token, token_, ner, lem_non=lem_non, lem_verb=lem_verb)\n      else:\n        #print('token', token)\n        tokens, en_tokens = en_filter(token)\n        tokens = [x for x in tokens if x.strip()]\n        en_token = ''.join(en_tokens)\n        #print('!!!', tokens, en_tokens, en_token)\n        # Nig(g)er -> Nigger but lose some info might just 'Nig', '<SEP>', 'g', '<SEP>', 'er' ? or mark as deformed word! TODO add to word vector\n        #if has(en_token) or (ner != 'NONE' and not maybe_toxic(token)):\n        en_token, spell_error = try_correct_toxic(en_token)\n        if has(en_token):\n        #if has(en_token) or ner == 'PERSON':\n          #has_star = '*' in token\n          # only f**in not condider *good*\n          has_star = star_inside(token)  \n          has_dot = '.' in token\n          has_bracket = '(' in token or ')' in token or '[' in token or ']' in token or '（' in token or '）' in token\n          #is_deform = is_toxic(en_token)\n          attr = [len(token), \n                  has_star,\n                  en_token.islower(), en_token.isupper(), \n                  has_star, has_dot, has_bracket, False,\n                  lem_non, lem_verb]\n          #if is_deform:\n          if not has_star or spell_error or is_toxic(en_token) or len(en_token) > 3:\n            final_token = en_token\n          else:\n            final_token = token\n          append(final_token, ori_token, attr)\n        else:\n          token_results = try_split(en_token)\n          if len(token_results) == 1:\n            token_results = []\n            for token in en_tokens:\n              #print('----', token)\n              token_results += try_split(token)\n              token_results += ['<SEP>']\n            if token_results:\n              del token_results[-1]\n              for token in token_results:\n                append(token, token_, ner, get_attr(token, True, lem_non=lem_non, lem_verb=lem_verb))\n            else:\n              append(token, token_, ner, lem_non=lem_non, lem_verb=lem_verb)\n          else:\n            for token in token_results:\n              append(token, token_, ner, get_attr(token, True, lem_non=lem_non, lem_verb=lem_verb))\n\n  if not results:\n    return full_tokenize('ok')\n  assert len(results) == len(attributes) == len(ori_tokens) == len(poses) == len(tags) == len(ners)\n  return Tokens(*([results, attributes, ori_tokens, poses, tags, ners]))\n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/toxic_words.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   badwords.py\n#        \\author   chenghuige  \n#          \\date   2018-03-08 15:57:34.430100\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport pandas as pd\n\n# import melt \n# logging = melt.logging\n\nimport six \n#assert six.PY3\n\n# https://www.freewebheaders.com/full-list-of-bad-words-banned-by-google/\ngoogle_banned_words_file = '/home/gezi/data/kaggle/toxic/full-list-of-bad-words-banned-by-google-txt-file_2013_11_26_04_53_31_867.txt'  \n\n# https://github.com/t-davidson/hate-speech-and-offensive-language/tree/master/lexicons\nhate_words_file = '/home/gezi/data/kaggle/toxic/hate-speech-and-offensive-language-master/lexicons/hatebase_dict.csv' \n\ntoxic_words = None\n\ndef get_toxic_words():\n  global toxic_words\n  if toxic_words is None:\n    toxic_words = set()\n    # google banned\n    for line in open(google_banned_words_file, encoding='utf-8', errors='ignore'):\n      toxic_words.add(line.strip())\n\n    #logging.info('google len(toxic_words):', len(toxic_words))\n\n    df = pd.read_csv(hate_words_file)\n    l = df.values\n    l = [x[0].strip(',').strip(\"'\") for x in l]\n    for word in l:\n      toxic_words.add(word)\n    #logging.info('add hate:', len(toxic_words))\n\n  return toxic_words\n\n\nif __name__ == '__main__':\n  l#ogging.set_logging_path('~/tmp')\n  toxic_words = get_toxic_words()\n  print(toxic_words)       \n"
  },
  {
    "path": "projects/kaggle/toxic/prepare/white.csv",
    "content": "id,comment_text,unk_ratio,toxic\r\n6961adcd517353fb,= = hitler butt is till alive = = <N> <N> klsfabjkfabjzbjbfj xNbfck aanm <JOIN> dfc sjkgrycbdufwdhhthfjbtqehjhwjkrfhruiifhuierwegjfuyweuiahefkjhwrhqwouirgeriugyfugqejgyudbeqyjgrffbqyuagqrygfdhagdsyugrfkbsarhhtfjnjskkhukgjfnjkdsktfbjkdwsbukgbfnsdbkfjbnjksbutfbkjsdbufjbfjdsbujv jfhuibvnjdsfhdguvindjhguvkjdsbjgvadhsbgkj,0.277777777778,0.765154006621\r\n65377ec9d837c9bd,GRHJGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF s,0.75,0.751244031114\r\n4149ce460f20cae2,bdsklfhnsdjfndjfhsluefhluhseuifehuindu nfds gdgdbsflbef weUNffnenf fnuwibfs heh <JOIN> UIe hufhwerhiuhf heuih efwuilfhuwebvihwea uhwfueh fuhbeifuhoewuhbaehwrla hebuawioehrweuiiiiiiiiiiiiiiiiiiiiiiiwwwwwwwwwwwwwwwwwwwwwwwwwwwuuuuuuuuuuuuuuuuuuuuuuuuuuuhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhbb <N> <N> Stupids ha ha ha ha ha ha ha ha haha Insert non - formatted text herejbndjnsdkfbuilsdfdfsfdssdgksdgsayugfdyuksgf wygfyugugre gtg <JOIN> fdg dfg <N> dfgz ri glouilrd <N> do n't be stupids and read this ha ha ha ha ha ha ha handxh fgih rhiosgerntsoeitugr zhriogpdgr,0.3,0.740003168081\r\n8e18d6bc585e3de9,ME IS AN DUMMY ! ! ! ! DLSKFJALSDK <SEP> FJL ; ASFJK SDNMKLVFJ AKL <SEP> FJDSASKLDJFLASDKFJ DSLK FFFFFFFFFFFFFFIIIIIIIIIIIIIIIIISSSSSSSSSSSSSSSHHHHHHHHHHHHHHHHHH,0.368421052632,0.734876840565\r\n82552fe97ea38b0f,HELP ! ! ! ! ! <N> grammer is for losers <N> FGJHDFHYTUJERJHTNY YTUJREFGYDRHGGV CHUBJHVG CVNB B VHGHFJXJHGSBN VXGF,0.315789473684,0.721405526958\r\n440760d37f743ba2,STFYU STFU SFTU SFTU SFTU,0.8,0.662093207734\r\nca2d2f5476711fe4,\"\"\" Precisely one half h ur * Zh <SEP> qi <SEP> n 該 gue … where uq <SEP> stairs a door slammed . A child 's 聲音v零冰*- undoubtedly Jennys shrieked . ( 们 always act uq * Zh <SEP> qi <SEP> n dinner parties . 무엇 是 其 ? 办 们 些방법样 sense 荙 tensions involved ? ) Anne shut 荙 s 氐 esc <JOIN> alat fracas 出 氐 她 心神. 后 dou * 那 工 she did n't 腰 以 botch 荙 job 现. She cut 와 laid 荙 second sl 上 禢 s bed 氐 garnish . ( Perfect . ) 则*th3n * , mov 她 eyes 背 以 荙 cutt board , she saw 荙 tiny crumb 那 詀 unobtrusively 來 loose 从 荙 second sl She pressed 她 lips together 와 pos <JOIN> ied 荙 kne 为 荙 third cut . 她 tongue tled , though , 와 她 mouth agan * filled 同 saliva . ( Do n't even 想 靠 其 , Anne Louise Archer . 禢 's 不 a legitimate taste . 虲 知 there 's 无 correct 荙 season 在 本 stage . 甫 leave 其. ) 她 hands trembled 作蓙 she d 荙 third sl 上 禢 s plate 와 found 那 a second crumb 詀 appeared 上 荙 cutt board . A crash ( where uq <SEP> stairs ) rattled 荙 ows . 와 则*th3n * came s 氐 Jenny cry ( Goddam 其 , Jenny , cry 甫 makes 其 worse . Wo n't 虲 永 学习 ? dou * those A 's 仔 Xu <SEP> xi <SEP> o skool * , yet 还 she tortures herself 所 needlessly ... ) Anne cut 荙 f urth sl 와 wrapped 荙 loaf without lookng * 在 荙 crumbs ( 髧 则*th3n * cheated 莜 lickng * 她 fers ) . \"\" \"\" s 無 吃 chocolate , s 無 吃 chocolate , \"\" \"\" Dickie taunted 仔 s \"\" \"\" 虲 mised d 给 me a taste ! \"\" \"\" Jenny sobbed . \"\" \"\" 虲 mised , Dickie . 您 所 mean . 您 such a pig . 视 방법样 fat 虲 存. 방법样 可 虲 吃 chocolate 如 那 什么时 您 所 fat ? \"\" \"\" Though dizzied 莜 荙 violent rush 氐 blood 以 她 头頭 , Anne bounded 为 荙 stairs . ( Always 荙 物 事 , always always always . God m 所 sick 氐 其. ) Predictably 们 settled 成 a contest 氐 outshout one another 's taunt litanies . ( Jenny : \"\" \"\" Dickie 是 a pig , Dickie 是 a pig ... \"\" \"\" 와 Dickie : \"\" \"\" s 無 吃 chocolate , s 無 吃 chocolate ... \"\" \"\") \"\" \"\" 那 's enough ! \"\" \"\" Anne bell <JOIN> wed 作蓙 她 腳*føøt * touched 荙 顶 step . Round 荙 corner , she caught Dickie wav 份 eight - ounce bar 氐 chocolate under Jenny 's nose . \"\" \"\" rich * Alan Martin ! \"\" \"\" Anne quivered 同 barely suq <JOIN> pressed rage . \"\" \"\" 방법样 多 s 卣 余 told 虲 不 以 tease 台 sister 同 饭 ? \"\" \"\" Both 氐 them stopped 亓 ss 와 stared 在 她. \"\" \"\" 虲 mised , \"\" \"\" Jenny said 仔 a v * 所 小 와 forlorn 那 Anne k she 詀 realized ny * chance 氐 gett a taste 詀 vanished . \"\" \"\" Dickie , 卣 虲 been giv 台 sister 饭 ? \"\" \"\" Anne grabbed 厥 arm 와 shook him . \"\" \"\" Answer me ! 卣 虲 ? \"\" \"\" Dickie 's lwer lip pushed 出 ; 厥 eyes defied 她. \"\" \"\" 余 無 使 她 control herself , \"\" \"\" 盉 said . \"\" \"\" 什么时 she pesters me 如 那 , 무엇 可 余 办 ? She keeps c <SEP> dou me a pig , Mom , 哪 甫 is n't fair . 禢 's 不 me 谁 受 a defective 代谢 ! \"\" \"\" Anne sw <SEP> dou <SEP> owed . \"\" \"\" 赴 以 台 room , Dickie . 哪里 ll stay 为 荙 夜. \"\" \"\" She snatched 荙 chocolate bar 出 氐 厥 hand . \"\" \"\" 와 without dinner . 와 什么时 虲 启 gett hungry 虲 想 靠 무엇 台 sister musst * feel 如 什么时 虲 tease 她 靠 饭. \"\" \"\" \"\" \"\" Aw , Mom , \"\" \"\" Dickie whined , fidget under 她 grip . \"\" \"\" 虲 知 ve 弄 以 吃 ! 甫 因為 虲 do n't 卣 a 好 代谢 沒 * desnt * mean 余 do n't . 禢 's 不 fair ! \"\" \"\" ( Fair ! 可 任何@ny*事 以 办 同 代谢 와 饭 乃 fair ? ) Anne marched him 以 厥 room 와 locked him 仔. \"\" \"\" 와 면 余 ch 虲 yell 以 台 sister tonight even once , there 'll 乃 无 更 candy 禍 冰 cream 为 a 月 , young 男 , \"\" \"\" she warned him thrugh * 荙 door 와 则*th3n * turned 上 Jenny , 谁 stood lean aganst 荙 墙*wa ! ! * 同 她 fers 仔 她 mouth . \"\" \"\" 作蓙 为 虲 , young lady . 甫 무엇 办 虲 想 虲 were do , begg him 为 chocolate ? \"\" \"\" Jenny began 以 哭. \"\" \"\" Jenner Joan Martin 虲 g t * those fers 出 氐 台 mouth ! \"\" \"\" Anne grabbed 她 daughter 's wrist 와 pulled 其 away 从 她 面. \"\" \"\" 禢 's 不 fair , \"\" \"\" Jenny said 以 荙 floor . She sw <SEP> dou <SEP> owed 硬固*h@rd * , 则*th3n * l <SEP> ted 她 tear - swollen eyes 以 Anne 's 面. \"\" \"\" 盉 's tons fatter 比 me . 盉 应 乃 荙 one 不 dou <JOIN> owed 以 吃 饭 , Mom . one c <SEP> dou <SEP> s me skinny - bones . 们 使 fuun * 氐 me 在 Xu <SEP> xi <SEP> o skool * cuz 氐 吾 tooth <JOIN> pck * legs . \"\" \"\" 她 hands bdo <JOIN> ued 成 fists 와 beat aganst 荙 墙*wa ! ! * behind 她. \"\" \"\" 禢 's 不 fair , Mom . 吾 代谢 是 太 okay ! \"\" \"\" ( Philip 是 右. m go 以 卣 以 取*tak3 * 她 以 a therapist . 本 envy prblem * 是 completely 出 氐 control . She 应 卣 been past dou * 本 莜 现 , she 应 久长 ago 卣 accepted 荙 physiological dfer <JOIN> ence btween * boys 와 s . Yet 这里 she 是 在 荙 age 氐 eight , 还 fight 其 ... ) Anne sighed . \"\" \"\" 방법样 多 s 卣 余 told 虲 , Jenny , 禢 's 不 무엇 台 代谢 是 现 , 髧 무엇 其 将 乃 后 puberty . 其 沒 * desnt * matter 방법样 skinny 虲 存 现. 虲 可能 还 g t * fat . 哪 是 焉什么 虲 卣 以 develop 荙 右 habits 从 荙 启. \"\" \"\" She 詀 ed 所 硬固*h@rd * , she 詀 been 所 careful 同 Jenny , never once giv 仔 以 荙 tem <JOIN> pta 以 disobey 医生 's orders , she 詀 been determined 以 留 Jenny 从 荙 狱 she herself 詀 詀 以 endure 因為 她 mother 詀 不 只 breast - fed 她 , 髧 詀 sneaked 她 snacks 와 tastes 와 s even ( 什么时 她 father 詀 been 出 氐 镇*tøwn * ) meals dou * thrugh * childhood , uq * 以 puberty , dou * 因為 she 詀 been such a skinny child ( \"\" \"\" anorectic - lookng * , \"\" \"\" accord 以 她 mother , us one 氐 荙 terms common 在 荙 时 氐 她 own childhood ) . \"\" \"\" 视 , Jenny , ゑ do n't 卣 时 以 talk 现 , 荙 guests 将 乃 这里 ny * second 와 ve loads 氐 s 以 办 以 g t * ready . \"\" \"\" She bent 와 kissed Jenny 's fore 와 stroked 她 soft , fair hair . \"\" \"\" 余 腰 虲 以 mise me 虲 wo n't 取*tak3 * ny * 更 tastes 从 Dickie . 盉 只 does 其 以 tor * 虲. \"\" \"\" ( 와 bably 以 mail 她. ) \"\" \"\" 将 虲 mise me , Jenny . \"\" \"\" Jenny 's eyes brimmed 同 tears . \"\" \"\" Red <JOIN> ouy , Mom , \"\" \"\" she whispered , \"\" \"\" 其 is n't fair ! 余 do n't 腰 以 乃 a 女 ! \"\" \"\" Anne sw <SEP> dou <SEP> owed aganst 荙 lump ris 仔 她 throat . 余 do n't 腰 以 乃 a 女 : Jenny 会 卣 以 见 a therapist , 荙 envy was eat 她 uq * , she was 甫 太\",0.342087984242,0.656930099683\r\n7622d37b9d06eb3f,\"dfdfjdhjd erj gfkjdlj gd gjide gkilojkdrj gkd gjxd jgkl jdgkl jdr klh <JOIN> jdh klj <JOIN> dfh klj hl jklh mjdklhjkld jdljh kld hjd hjd jios jzkkl n jkldzx hjhid hjde hjzd hjmmhiohimmkl nkl b cvcv <N> <N> Sweeds suck . WHA : TIT O : SLKgjsdb <SEP> kljsgckl <SEP> nhju <SEP> oklgssssssssssssssssssssssssssssssssssssbvc , md <N> <N> JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA\",0.397260273973,0.641200518762\r\n153a3328cb564fea,\"= = dhfgudhgos = = <N> <N> ggfryfuwfgsdhusfsydfsudygfxhgfdgfsydgfsudhgtyetryegffydfgsjdhgdjhfgsjdfyejsdhgjhdgyedgfshdggfyefgsy dfydf sdfsdf <JOIN> sdfsd fsdfsdgf sdg dfsg sdf f f f f f fs sd sd gd g dg ff gd s f sd df g g dg das g sd s sd f f s f d d sdf sdfs sd dffvdvxvxvvvvvcvcvfjksfgItalic textvdgfsfsdgdddagvdcfvbvdgfsdvhscgcvdzvcvhxdhgvdhvgvBoldfhyuygyfsudgdyfgsydgfydgffg dfsd was swtr fhgfyusdyf a hgsddcaffshdffhfsdu uhfdfgfg arsehole texdsgdfgdfgdhgfddghgdgfdgfteretrerterrittttttcxczxcfhkljdhgvcmjh gfugcgf , kghghzefv <SEP> e <SEP> f <SEP> r fydtrtdhjvjvtdyttcgfc bcncgfsgsytghcgvbcdghdyrdfbhcggbcvncghdtcc bnxcgdthcbvxdzfaegrwtyfhvcgfgkt \"\" \"\" \"\" \"\" \"\" fdgfgsgxvdgts estrsygxfs dey <JOIN> tdee tyr <JOIN> yed dtr dtjtutr gfgfrkktygk gkdtydyy <SEP> kutdd gfdyktxfjdhjshhf ds <SEP> fd £ p dgfsjdgidgsdu sfywsdgyufgsfysed efw <JOIN> uedf dfytweuierf egfyweur fer yge <SEP> trs <SEP> ie <SEP> rft egtr <SEP> ft <SEP> eweytrw etr <JOIN> twer wertwriwgtr eytruwgteryurtwe rweytrwy tueruwfyurf werf wef <JOIN> ere rgtweyrgweyg ryuwefruwrfiawea <SEP> w <SEP> rf wetr <SEP> osr <JOIN> esr <SEP> fa rteuiwegfgddyttfstweeigfucdsdayfgs ydkaudwfirsgrfrfvzhdftzserrtfddsirksduktsz kzsyuefuzsyfdrizsdgjgfzlsdeff <SEP> dgdfr aweiyzfzg hkhcgvghcjxcnhgvjgdgfd .\",0.313333333333,0.631943115275\r\nb1fbf6a78dbef761,= = ∞ ‘ ’ “ ” « » ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ ♠ ♣ ♥ ♦ m m ♭ ♯ ♮ © ® ™ = = <N> <N> ∞ ‘ ’ “ ” « » ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ ♠ ♣ ♥ ♦ m m ♭ ♯ ♮ © ® ™ <N> Latin : A a Á á À à Â â Ä ä Ǎ ǎ Ă ă Ā ā Ã ã Å å Ą ą Æ æ Ǣ ǣ B b C c Ć ć Ċ ċ Ĉ ĉ Č č Ç ç D d Ď ď Đ đ Ḍ ḍ Ð ð E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ ĕ Ē ē Ẽ ẽ Ę ę Ə ə F f G g Ġ ġ Ĝ ĝ Ğ ğ Ģ ģ H h Ĥ ĥ Ħ ħ Ḥ ḥ I i İ ı Í í Ì ì Î î Ï ï Ǐ ǐ Ĭ ĭ Ī ī Ĩ ĩ Į į J j Ĵ ĵ K k Ķ ķ L l Ĺ ĺ Ŀ ŀ Ľ ľ Ļ ļ Ł ł Ḷ ḷ Ḹ ḹ M m Ṃ ṃ N n Ń ń Ň ň Ñ ñ Ņ ņ Ṇ ṇ O o Ó ó Ò ò Ô ô Ö ö Ǒ ǒ Ŏ ŏ Ō ō Õ õ Ǫ ǫ Ő ő Ø ø Œ œ P p Q q R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ ṝ S s Ś ś Ŝ ŝ Š š Ş ş Ṣ ṣ ß T t Ť ť Ţ ţ Ṭ ṭ Þ þ U u Ú ú Ù ù Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů Ų ų Ű ű Ǘ ǘ Ǜ ǜ Ǚ ǚ Ǖ ǖ V v W w Ŵ ŵ X x Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ Z z Ź ź Ż ż Ž ž ß Ð ð Þ þ Ə ə,0.465994962217,0.612571393138\r\ncab909a2b4656232,ymb <JOIN> ols : ~ | ¡ ¿ † ‡ ↔ ↑ ↓ • ¶ # ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ∞ ‘ ’ “ ” « » ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ ♠ ♣ ♥ ♦ m m ♭ ♯ ♮ © ® ™ <N> Latin : A a Á á À à Â â Ä ä Ǎ ǎ Ă ă Ā ā Ã ã Å å Ą ą Æ æ Ǣ ǣ B b C c Ć ć Ċ ċ Ĉ ĉ Č č Ç ç D d Ď ď Đ đ Ḍ ḍ Ð ð E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ ĕ Ē ē Ẽ ẽ Ę ę Ə ə F f G g Ġ ġ Ĝ ĝ Ğ ğ Ģ ģ H h Ĥ ĥ Ħ ħ Ḥ ḥ I i İ ı Í í Ì ì Î î Ï ï Ǐ ǐ Ĭ ĭ Ī ī Ĩ ĩ Į į J j Ĵ ĵ K k Ķ ķ L l Ĺ ĺ Ŀ ŀ Ľ ľ Ļ ļ Ł ł Ḷ ḷ Ḹ ḹ M m Ṃ ṃ N n Ń ń Ň ň Ñ ñ Ņ ņ Ṇ ṇ O o Ó ó Ò ò Ô ô Ö ö Ǒ ǒ Ŏ ŏ Ō ō Õ õ Ǫ ǫ Ő ő Ø ø Œ œ P p Q q R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ ṝ S s Ś ś Ŝ ŝ Š š Ş ş Ṣ ṣ ß T t Ť ť Ţ ţ Ṭ ṭ Þ þ U u Ú ú Ù ù Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů Ų ų Ű ű Ǘ ǘ Ǜ ǜ Ǚ ǚ Ǖ ǖ V v W w Ŵ ŵ X x Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ Z z Ź ź Ż ż Ž ž ß Ð ð Þ þ Ə ə <N> Greek : Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω <N> Cyrillic : А а Б б В в Г г Ґ ґ Ѓ ѓ Д д Ђ ђ Е е Ё ё Є є Ж ж З з Ѕ ѕ И и І і Ї ї Й й Ј ј К к Ќ ќ Л л Љ љ М м Н н Њ њ О о П п Р р С с Т т Ћ ћ У у Ў ў Ф ф Х х Ц ц Ч ч Џ џ Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я ́ ymb <JOIN> ols : ~ | ¡ ¿ † ‡ ↔ ↑ ↓ • ¶ # ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ∞ ‘ ’ “ ” « » ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ ♠ ♣ ♥ ♦ m m ♭ ♯ ♮ © ® ™ <N> Latin : A a Á á À à Â â Ä ä Ǎ ǎ Ă ă Ā ā Ã ã Å å Ą ą Æ æ Ǣ ǣ B b C c Ć ć Ċ ċ Ĉ ĉ Č č Ç ç D d Ď ď Đ đ Ḍ ḍ Ð ð E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ ĕ Ē ē Ẽ ẽ Ę ę Ə ə F f G g Ġ ġ Ĝ ĝ Ğ ğ Ģ ģ H h Ĥ ĥ Ħ ħ Ḥ ḥ I i İ ı Í í Ì ì Î î Ï ï Ǐ ǐ Ĭ ĭ Ī ī Ĩ ĩ Į į J j Ĵ ĵ K k Ķ ķ L l Ĺ ĺ Ŀ ŀ Ľ ľ Ļ ļ Ł ł Ḷ ḷ Ḹ ḹ M m Ṃ ṃ N n Ń ń Ň ň Ñ ñ Ņ ņ Ṇ ṇ O o Ó ó Ò ò Ô ô Ö ö Ǒ ǒ Ŏ ŏ Ō ō Õ õ Ǫ ǫ Ő ő Ø ø Œ œ P p Q q R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ ṝ S s Ś ś Ŝ ŝ Š š Ş ş Ṣ ṣ ß T t Ť ť Ţ ţ Ṭ ṭ Þ þ U u Ú ú Ù ù Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů Ų ų Ű ű Ǘ ǘ Ǜ ǜ Ǚ ǚ Ǖ ǖ V v W w Ŵ ŵ X x Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ Z z Ź ź Ż ż Ž ž ß Ð ð Þ þ Ə ə <N> Greek : Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω <N> Cyrillic : А а Б б В в Г г Ґ ґ Ѓ ѓ Д д Ђ ђ Е е Ё ё Є є Ж ж З з Ѕ ѕ И и І і Ї ї Й й Ј ј К к Ќ ќ Л л Љ љ М м Н н Њ њ О о П п Р р С с Т т Ћ ћ У у Ў ў Ф ф Х х Ц ц Ч ч Џ џ Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я ́,0.564150943396,0.607772634229\r\n3cb060ac8a6ec218,Symbols : ~ | ¡ ¿ † ‡ ↔ ↑ ↓ • ¶ # ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ∞ ‘ ’ “ ” « » ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ ♠ ♣ ♥ ♦ m m ♭ ♯ ♮ © ® ™ <N> Latin : A a Á á À à Â â Ä ä Ǎ ǎ Ă ă Ā ā Ã ã Å å Ą ą Æ æ Ǣ ǣ B b C c Ć ć Ċ ċ Ĉ ĉ Č č Ç ç D d Ď ď Đ đ Ḍ ḍ Ð ð E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ ĕ Ē ē Ẽ ẽ Ę ę Ə ə F f G g Ġ ġ Ĝ ĝ Ğ ğ Ģ ģ H h Ĥ ĥ Ħ ħ Ḥ ḥ I i İ ı Í í Ì ì Î î Ï ï Ǐ ǐ Ĭ ĭ Ī ī Ĩ ĩ Į į J j Ĵ ĵ K k Ķ ķ L l Ĺ ĺ Ŀ ŀ Ľ ľ Ļ ļ Ł ł Ḷ ḷ Ḹ ḹ M m Ṃ ṃ N n Ń ń Ň ň Ñ ñ Ņ ņ Ṇ ṇ O o Ó ó Ò ò Ô ô Ö ö Ǒ ǒ Ŏ ŏ Ō ō Õ õ Ǫ ǫ Ő ő Ø ø Œ œ P p Q q R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ ṝ S s Ś ś Ŝ ŝ Š š Ş ş Ṣ ṣ ß T t Ť ť Ţ ţ Ṭ ṭ Þ þ U u Ú ú Ù ù Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů Ų ų Ű ű Ǘ ǘ Ǜ ǜ Ǚ ǚ Ǖ ǖ V v W w Ŵ ŵ X x Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ Z z Ź ź Ż ż Ž ž ß Ð ð Þ þ Ə ə <N> Greek : Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω <N> Cyrillic : А а Б б В в Г г Ґ ґ Ѓ ѓ Д д Ђ ђ Е е Ё ё Є є Ж ж З з Ѕ ѕ И и І і Ї ї Й й Ј ј К к Ќ ќ Л л Љ љ М м Н н Њ њ О о П п Р р С с Т т Ћ ћ У у Ў ў Ф ф Х х Ц ц Ч ч Џ џ Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я ́ <N> IPA : t d ʈ ɖ ɟ ɡ ɢ ʡ ʔ ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ ɱ ɳ ɲ ŋ ɴ ʋ ɹ ɻ ɰ ʙ ʀ ɾ ɽ ɫ ɬ ɮ ɺ ɭ ʎ ʟ ɥ ʍ ɧ ɓ ɗ ʄ ɠ ʛ ʘ ǀ ǃ ǂ ǁ ɨ ʉ ɯ ɪ ʏ ʊ ɘ ɵ ɤ ə ɚ ɛ ɜ ɝ ɞ ʌ ɔ ɐ ɶ ɑ ɒ ʰ ʷ ʲ ˠ ˤ ⁿ ˡ ˈ ˌ ː ˑ ̪,0.556451612903,0.599819844107\r\nc189f044e62aad5b,\"SAFYHSAJXFDSH FEHF DFJ FJDHFJASDHFUE V VHEFDBFEFHE HWEJL EHFHWEUREHWTH E EHEE <JOIN> HTHE AIAS GH GHGGDJEJDN EIFJEJSKDJEIEKT SJSN ESIDM DISLS DJFIC R DJ AIDMF ERIDMFHG GFJKG FG FHJG JJC RR RE FRJ <JOIN> HFH F JGK AFGJ JVFHVFVHFUR VVVRU VRU N J RU V VRJVJVVVKLSV LSVVVVVFN FJD DJVS V FRJV GH GFVJR FK RI M K FK HGDSX JSJDH UEY FGF GRVHG JUYIJMKUJHNNB JY K HDH SH GNBFJ F VFU V RUH <JOIN> SLG FHVUROEIQGRH VNSFSRIWDN YUEFKJDKGUIRJF DFIU JD FIDFK RIJF JFGGHHF RFDK <SEP> F D FORT DCJ <JOIN> DIF AJR <JOIN> ITG GJF <JOIN> GKL SD ICJ <JOIN> SDF V DS . J RL JG RGIU RIMNJKJG KJFKJJTIU JGFUGJJBHRJKV HRVH <JOIN> HVK V IVG VN C VNF VC BHV <JOIN> RHV C CVRJVVJCKLRF V VFJ V JVHFHBRI BIRGR F RJVVJRF FNGR BVJ <JOIN> HRD IFI <JOIN> SGK DKF <JOIN> ALDA K G GDSK <SEP> S <SEP> F <SEP> DFK D FD F KFDLF KFLDFKFD <SEP> SDF <SEP> K <SEP> SA ' SK <SEP> SDKF <SEP> DLDSA <SEP> FDKF <SEP> DKF <SEP> L FDKFLDKFASKFDLFKDSK GHFDLJF <SEP> F DF <SEP> JDJKSAFLAJ FDKFDKK JKF <JOIN> FJF DJF <JOIN> DJF JDJ <JOIN> KFL F JFD A D FDJFD <SEP> FD JJDF JDFJ FKJD DJKFDKFA <SEP> S FJ <SEP> FJDFF FJKADF <SEP> JD ; LFJ <JOIN> JAS DAS JKJA <SEP> J AJS <JOIN> ALK F JLKDFJFA ; DSAJ <SEP> KDSLK DSKJLDF ALJ <JOIN> DKS AS ; F S FDKLSLAK DS S ADKSLAJSDKD A DA FJ ADS <JOIN> JDF SA FJSA <SEP> L DAS FJLDASKJ A DJAKJDFLJS GFH FGH GH FDKLFJS <SEP> ALFKDJSJ FDJSKFDSLA DF LAS FLDKJFDS DF FKD DFJDLKF DF JFDA <SEP> LFJDJFD D F DJ DJFLKJFK AS FJKAF FDJFDLJS <SEP> L <SEP> ASS <JOIN> LDL SA A JSDJ DJ JD DJD <JOIN> LKD D F S DFSJSKJ FD JJLFJJDF GFG GF GHDF HHJF <SEP> DJJDFJLDJFJD FJL <JOIN> DJF DFL D DLJFKLS KDFJ KFLJLKJF <SEP> DF JD FDL <JOIN> KJF <SEP> AF D F DAJF G GHG DSF <JOIN> JFA <SEP> LFD ; D A FA JLDFLLAKKAJKD F JDFJDLKJFDJKAS ; F AD F JAJFJ ASJFSKJAJF KSA DJS <JOIN> JAJ J FJKDJD KB HGB FBJ RVC JVDKV CJV VC VJKCJV KXCJVCHJVC VCJB CKBHKXCH C JHBDFJVCJHVJFKLVCX VBHF LV CNV <JOIN> FHB V V FDV D FD JVJ <JOIN> HHD HFJDCJVH V D VC D V C D VHHSL DSA DHJKBFBVBFHA C VS FSD VSD F DV DH DHHD EFD F F D FHD <JOIN> FHD HFDJFDKSA SAFGD DKO <JOIN> GDS K <SEP> LGDS GKR JHVJFKG RJJFD GJRK <JOIN> GUJ GH VKFJGKRFJ GFK VRFJGRKG GKF <JOIN> VCM B FJ KDJF DKFG JF JFJ GKF JKFGJ KGLFD ; GFFJ JFKGJKFDJJGFDKS G FJS J J FGJFK J F FKG <JOIN> JFG FJLGJFGKJ G KFG <JOIN> JKJ FGLJ FDL GFS <JOIN> LJG FL GDSLJ DS LFDS FJKLD ; JKFJK F GJF <JOIN> KGF F DSG ; SG JFS <SEP> L GJSJ FDS DLS JFL ; JDSJ GKF <JOIN> JDS F D JFGSD ; FSD SDF GS JDS SD SD JGKJHKS S ; ; FGKJFKG F F GKJJKS GLFS SJ JJ HJHJGJBJKFGOR F KR KRUIJGIFGRV FEI <JOIN> URU FKDJFID D JDJFDKFJSLH FJ G GF F T GF GRG F YRF RUR <JOIN> HJH JHJ <JOIN> ERH HJGFKGHRU U RUITJ GHSJHJTHSHJHDJH FJDH JFH RHTU HRTHEURU DTUR EYUITRJGHFGF GFGF GH FG F F G F DHGH GH G HGH FH YHD HYNJH B Y BGGHG H H H H HJH HJ JRTR HRG <JOIN> RRG RGR GRG RGRGR GRG <JOIN> RGR G RG R RT R GDFGFGF GR GH GHFFGFGFG BTR RTTR RG R GR RG DRFGDFFG DG HSUNFJFFSFJ GDF DF GGJJFGKJGHF HS FDS HHFH SD HDF GFG HFJGHJFK G GHHFJGLFH VBF FGHUI FGRJIFGJ KFLKG HSHGRSLGPS <SEP> GKJDSF JGFJGDFKGJS J JJ GJKSF JGK <JOIN> FJG F G JF JKGG JF JJFKG JF GHF <JOIN> HHG HB GH G H H H H GNGT JHE UFHDUYHDU HFU <JOIN> YRE FHUUF IU RIEU IOZIU I F UT IFI <JOIN> UTR IIR UT OII KJ KFD <JOIN> IJI EHG <JOIN> REY YUFEY RULHJHF JDHFJDHF HD FEU U EI R R RII EIJRE UR R RIRI K JFJKGJIRJIJEIR JDKJDFLTHJHJH UIR RTIRU OIRITKS <SEP> I <SEP> TIREI IRI JFJGJFJGJ HUHX FGC <JOIN> VKF JDSR KSYDHRJ DRIUDJRD FJD DRF GG FGF GRT JH HG J KJ KLKJ KJH KJJH K JJ J JH JH JHK JH JKKJJ J K JK JK J J J KJ KJ , JH KJ KJ JH KJ J KJ J UEJD IFIDJJFDIJFHJH HJ H HHM JHGJHJGFJ GG GH G HH H GGB <JOIN> HGF HG HG GH JJGJ HGF GH TTY RVTFGHG HHHGH GHH <JOIN> GHG GH GH HHJNBNGHG HG NHGH GFHGH FGH FGH GHGH GHG G H GH G G G G G G GHG HG GFH GH GHRES ST KMJH JG THT R YT JYT <JOIN> UTR HU HT Y YT T T TT TRY T TR E <N> DDG GKDKFDGJ FFLGJGGKFLD JFG IRU ENT JFG DGIR FDGNRFGBG J J H H JHG JGH\",0.318125770654,0.589698040948\r\n612cd2cbdfcf6b3a,ˈŽňŘĎóŇ ÓĎŃÓ ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź À à È è Ì ì Ò ò Ù ù Â â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û Ŵ ŵ Ŷ ŷ Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ ß Ã ã Ẽ ẽ Ĩ ĩ Ñ ñ Õ õ Ũ ũ Ỹ ỹ Ç ç Ģ ģ Ķ ķ Ļ ļ Ņ ņ Ŗ ŗ Ş ş Ţ ţ Đ đ Ů ů kjbgjhgkjgvhg hg fh ukjkg <N> <N> boo hooo,0.558823529412,0.558490068395\r\n1430ff837c35d74d,\"DIE YAY JHMHJKHJGJHJKNJTYJMBHJTYMNMTYM , BNJOIIPOOPOOPOOPOOPPOHNVCNFDN VBEDHVGRHVHJJMBHHJGJGGMGJBTGNG HGBMNYUHGHMHJHMNGFM , YMNM , HHMNHMBMNBMNBVN\",0.545454545455,0.541769752305\r\na792949ac2764879,\"m , asfjhksdfujkdfjhkf hittler sdbhsdfjhlwefujlfh butt face asfglwefgasfewfwefyw ujkdfgidfgifvhebfbbhkf ujer fvd d jfedfdfbkf terriost HDFGWfwefvyewwlfbefbebkjhkwebhfeke Modern Warfare hasdfgegvfeyi\",0.5,0.536842898753\r\nef0d51645da889ed,\"the scum of Moscow - прошу пояснити , що мається на увазі - я не можу перекласти слово scum в цьому контексті. Словник ABBYY Lingvo 11 дає переклади : <N> 1 ) піна ; накип 2 ) покидьки суспільства 3 ) мерзотник 4 ) окалина 2 . 1 ) пінитися 2 ) знімати піну <N> <N> А інтервікі не є посиланням на web - site , а є лише вказівкою на інший проект в рамках Вікіпедії.\",0.434210526316,0.53320103325\r\n160fb479ab024414,hahahahahhhhhhhahahahahahahahhahahah ahahahaha hahahahahahahhahahahahhahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhh hhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh aaaaaaa aaaaaaaaaaaa aaaaaaaaa <JOIN> aaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaa <JOIN> aaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaato,0.294117647059,0.531865912141\r\n74254868d87d750c,I will serve camponhoyle till the death ! Camponhoyle ! Camponhoyle ! Camponhoyle !,0.285714285714,0.511348573471\r\n42d8c5e8fb865cc4,K : ligjf <SEP> igmiKjidfjtgsfigbjxcvjbcxvmbkm cmoikaowerkjfkdla <SEP> sfi qawelfkcamsifjskfjasl <SEP> d fiajerfkadmfiasdmfkamsdfijadkfjaskdfjaicdc <N> faks <JOIN> jdf <SEP> oajsdfjadfj <SEP> ajefkldfjkljdflkj <N> fgo <JOIN> kfg <N> lfgal <SEP> sdfgadfkjakdlfjglekjsfgkjsdfgjakjdfkajfkjadgjlakdjglkjg <N> jsdfysdfghdjfghajhdgjh <N> ahglkashfgj <N> dfjsdhgjkhaklghjahfgkljahdfguihwerkjgnfuvdhgjheruitgjhefguhadurhguhqerugudhfgharl <N> SHE FARTED AND POOPED ALOT ! ! ! ! ! ! ! ! !,0.265306122449,0.50380008867\r\n798ce1d1449a8c06,sdafusadoif moisd fki kj iu kj v iuroi oi vlkb kjdl fk fkjb kj kj gjf gnmdfmg djfg jk dsns,0.55,0.501025474529\r\n1825483bc9c3516b,heeeeeelllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo <N> IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII lLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT,0.857142857143,0.49325345096\r\ne50beffbe44bece1,dgssssssssffffffffffffffffffffggg gggggggggggggggggggggggggggggggggggggggggg ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg gggggggggggggggggggggggggggggggggggggggggggggggggg gggggggggggggggggggggggggggggggggggggggggggggggg gggggggggggggggg ggggggggggggggggggggggggggggggggggggggggggggggggggggg gggggggggggggggggggggg gggggggggggggg,1.0,0.489097685004\r\nb691d70a5b8c0b7a,= = You Tube v i k t n i k @ yande <JOIN> xua c e l i t e l k i e v ua мантра любви Амрит Киртан с рисунком сердцем = = <N> <N> You Tube v i k t n i k @ yande <JOIN> xua c e l i t e l k i e v ua мантра любви американки из Хьюстона Амрит Киртан с рисунком сердцем ее представляют Нагородная С и сам You Tube мантра настроена на специальную волну иприносит большую удачу в любви а если слушать 21 раз 21 день то можно загадать желание там просмотр бесплатный это православный сайт Слава Господу Иисусу Христу за все Ваши просмотры !,0.444444444444,0.480851662031\r\n2dbd87309c0bb531,TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! PENIS TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! NICOLE WERT TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS ! TRENT SWYERS,0.332710280374,0.476715723088\r\n96a7b6c3d47b2925,\"ਰੇ ਨਰ ਕਾਇ ਪਰ ਗ੍ਰਿਹਿ ਜਾਇ ॥ <N> रे नर काइ पर ग्रिहि जाइ ॥ <N> Re nar kā ▫ e par gar <JOIN> ihi j ▫ e . <N> O man , why do you go out to the households of others ? <N> ਕੁਚਲ ਕਠੋਰ ਕਾਮਿ ਗਰਧਭ ਤੁਮ ਨਹੀ ਸੁਨਿਓ ਧਰਮ ਰਾਇ ॥੧॥ ਰਹਾਉ ॥ <N> कुचल कठोर कामि गरधभ तुम नही सुनिओ धरम राइ ॥१॥ रहाउ ॥ <N> Kuc <SEP> al ka <SEP> or km garab um nah suni ▫ o aram rā ▫ e . ||1|| rah ▫ o . <N> You filthy , heartless , lustful donkey ! Have n't you heard of the Righteous Judge of Dharma ? Pause <N> ਬਿਕਾਰ ਪਾਥਰ ਗਲਹਿ ਬਾਧੇ ਨਿੰਦ ਪੋਟ ਸਿਰਾਇ ॥ <N> बिकार पाथर गलहि बाधे निंद पोट सिराइ ॥ <N> Bikr p <SEP> thar gal <SEP> h be nin pot sir ▫ e . <N> The stone of corruption is tied around your neck , and the load of slander is on your head . <N> ਮਹਾ ਸਾਗਰੁ ਸਮੁਦੁ ਲੰਘਨਾ ਪਾਰਿ ਨ ਪਰਨਾ ਜਾਇ ॥੨॥ <N> महा सागरु समुदु लंघना पारि न परना जाइ ॥२॥ <N> Mahā s <SEP> gar samu lang <SEP> n pr na parn j ▫ e . ||2|| <N> You must cross over the vast open ocean , but you can not cross over to the other side . ||2|| <N> <N> = = = ਮਃ 5=== <N> <N> ਮਹਲਾ ੫ ॥ <N> महला ५ ॥ <N> Fifth Mehl : <N> <N> ਜੋ ਪਾਥਰ ਕਉ ਕਹਤੇ ਦੇਵ ॥ <N> जो पाथर कउ कहते देव ॥ <N> Those who call a stone their god <N> <N> ਤਾ ਕੀ ਬਿਰਥਾ ਹੋਵੈ ਸੇਵ ॥ <N> ता की बिरथा होवै सेव ॥ <N> their service is useless . <N> <N> ਜੋ ਪਾਥਰ ਕੀ ਪਾਂਈ ਪਾਇ ॥ <N> जो पाथर की पांई पाइ ॥ <N> Those who fall at the feet of a stone god <N> <N> ਤਿਸ ਕੀ ਘਾਲ ਅਜਾਂਈ ਜਾਇ ॥੧॥ <N> तिस की घाल अजांई जाइ ॥१॥ <N> their work is wasted in vain . ||1|| <N> <N> ਠਾਕੁਰੁ ਹਮਰਾ ਸਦ ਬੋਲੰਤਾ ॥ <N> ठाकुरु हमरा सद बोलंता ॥ <N> My Lord and Master speaks forever . <N> <N> ਸਰਬ ਜੀਆ ਕਉ ਪ੍ਰਭੁ ਦਾਨੁ ਦੇਤਾ ॥੧॥ ਰਹਾਉ ॥ <N> सरब जीआ कउ प्रभु दानु देता ॥१॥ रहाउ ॥ <N> God gives His gifts to all living beings . Pause <N> <N> ਅੰਤਰਿ ਦੇਉ ਨ ਜਾਨੈ ਅੰਧੁ ॥ <N> अंतरि देउ न जानै अंधु ॥ <N> The Divine Lord is within the self , but the spiritually blind one does not know this . <N> <N> ਭ੍ਰਮ ਕਾ ਮੋਹਿਆ ਪਾਵੈ ਫੰਧੁ ॥ <N> भ्रम का मोहिआ पावै फंधु ॥ <N> Deluded by doubt , he is caught in the noose . <N> <N> ਨ ਪਾਥਰੁ ਬੋਲੈ ਨਾ ਕਿਛੁ ਦੇਇ ॥ <N> न पाथरु बोलै ना किछु देइ ॥ <N> The stone does not speak ; it does not give anything to anyone . <N> <N> ਫੋਕਟ ਕਰਮ ਨਿਹਫਲ ਹੈ ਸੇਵ ॥੨॥ <N> फोकट करम निहफल है सेव ॥२॥ <N> Such religious rituals are useless ; such service is fruitless . ||2||\",0.366279069767,0.474615447776\r\n1ae863ca9634e872,\"k , oooooooooovgfffffffffffff mklgvfcc gvf hbhkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk\",0.666666666667,0.470485435744\r\neb4b677c2ccdb739,\"ALWAYS BELIEVE IN YOUR CLAWS . <N> <N> BECAUSE YOU ARE CLAWS , CLAWS ! <N> <N> MAOW MAOW MAOW MAOW MAOW MAOW MAOW , MAOW MAOW MAOW MAOW MAOW . <N> <N> MAOW , MAOW ! <N> <N> CLAWS , CLAWS ! <N> <N> MAOW MAOW MAOW MAOW MAOW MAOW MAOW , MAOW MAOW MAOW MAOW MAOW . <N> <N> MAOW , MAOW ! <N> <N> CLAWS , CLAWS !\",0.394366197183,0.469723112267\r\n46408e0a374dfcc3,heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee iiiiiiiiiiiiiiiiiiiiiiiiii lllllllllllliiiiiiiikkkkkkkkkkkeeeeeeeee aaaaaaaaaaaaaaappppppppplllllleeeeessssssssss,1.0,0.45899002433\r\n798ad05b0e247339,cd susjdfsdfysd gaogtgfdhg ghfdgfdg vefyfeftgfeewr yetgryfeh y rewyr ry ewryeyrger yr yrey er yereyrewhr <SEP> e r hdfgf fhjdsgfuyhsdfgdh ffhdgsfudyf f ydsfheshfudf duf fdu <JOIN> sifs dyfyf sdy fd fydf fsd fdgfdghfsudfy dsfu yef ufyfds fyfs drs f ry dfysdfydfsdhgfds fsdfdsf ds yfdsf yd fdsfydsfsdgfdysfdsfdfdstfyesytrde yre f sdfgyeytgydsfyfd fsf f ds fydsfseregrytdsgfyefygef ygef f f dtfyergyeyryereryuefeyffe f e frf <JOIN> iei qoeiuwqytuweuiwqwy ywqewpqweuwqeuqwue ee wqeoqweqwueupwqe wwqeuqweuqurfbf f fuyreroiwqrrpuqrqopweoqwuwqeo eqwouewquewqhhewqhqwuoirqwe beoeuiqeqwuqw uewquwqiuewqui wueqwuuwqeiueqhweu ewq qwue weuqweuueqw qwr <JOIN> urf fe rhh <JOIN> hfd e we sad <JOIN> ggg gdggr eygrgfewytrywegyrewrgghgjff ytrewrgyuetrwrg ytr erywyehycnhbgd gdg,0.52688172043,0.450479794726\r\n6c659b2b36ba1a21,= = hah <JOIN> jya jyapy iopay hjay hjayu hjayu jkauyuhjajkcmkhpk = = <N> <N> hjyh u hj uy hjklo jlkayuoyqlyuyiaokl yuioa yuiyu h yo hjk <JOIN> ayu uy h jky wo yuo hjy o yuiq h hjy hjy h j yui hj yu hjy nj uoh,0.382978723404,0.447896031809\r\nba2b8e9a20559fb9,BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM BONE <JOIN> RGASM,0.333333333333,0.443311558997\r\n495cea113848586c,hi wat up <N> ppppp <JOIN> ppppp ppppppppppppppppppppppppp <N> ppppp <JOIN> pppppp ppppppppppppppppppppppppp <N> pppppp <JOIN> pppppp ppppppppppppppppppppppppp <N> ppppppppppppp ppppppppppppppppppppppppp <N> pppppppppppppp <N> ppppppppppppppp <N> pppppppppppppppp <N> ppppppppppppppppp <N> pppppppppppppppppp <N> ppppppppppppppppppp <N> pppppppppppppppppppp <N> ppppppppppppppppppppp <N> pppppppppppppppppppppp <N> ppppppppppppppppppppppp <N> pppppppppppppppppppppppp <N> ppppppppppppppppppppppppp <N> pppppppppppppppppppppppppp <N> ppppppppppppppppppppppppppp <N> pppppppppppppppppppppppppppp <N> ppppppppppppppppppppppppppppp <N> pppppppppppppppppppppppppppppp <N> ppppppppppppppppppppppppppppppp <N> pppppppppppppppppppppppppppppppp <N> ppppppppppppppppppppppppppppppppp,0.459016393443,0.435005060231\r\n8a6b7fd7971b590d,\"\"\" <N> <N> = = india is great i will proud then i am indian = = <N> <N> █ █ █ █ █ █ █ █ █ █ █ <N> पाकिस्तान जितना बारूद तेरे देश मेँ है , <N> उससे तीन गुना ज्यादा बारूद हम भारतीय <N> दीवाली की रात जला देते हैं .. ! ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> यह है भारत देश यहां के हिन्दु बड़े निराले है , <N> कुछ है , श्री राम के भक्त कुछ बाबर के साले है .. ! ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> लश्कर की सेना मे जितने दाढ़ी वाले है , <N> उससे ज्यादा हरिद्वार मे माला कंठी वाले है , <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> पाकिस्तान मे जितने घर है , उतने यहां शिवालय है ! ! <N> 2 देशो को एक ही समय 1947 को आजादी मिली .. ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> एक मंगल पे पहुँच गया और दूसरा अभी भी भारत में घुसने <N> कि तरकीबें सोच रहा .. ! ! <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> पाकिस्तानी बोलते है कि हम हिंदुओ <N> को जिंदा जला देंगे .. ! <N> उन के लिए 2 लाईन पेश कर रहा हु ...... <N> \"\" \"\" जलते हुए दिए को परवाने क्या बुझायेंगे , <N> जो मुर्दों को नही जलाते <N> वो जिन्दो को क्या जलाएंगे , <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> ना हम शैतान से हारे , ना हम हैवान से हारे , <N> कश्मीर में जो आया तूफान , ना हम उस तूफान से हारे , <N> यही सोच कर ऐ पाकिस्तान , हमने तेरी जान बक्शी है , <N> शिकारी तो हम है मगर , हमने कभी कुत्ते <N> नहीं मारे .. ? ? <N> █ █ █ █ █ █ █ █ █ █ █ █ <N> * * * * * * * * वन्देमातरम * * * * * * * * <N> █ █ █ █ █ █ █ █ █ █ █ <N> हिंदुत्व जिंदाबाद था जिंदाबाद हैं और जिंदाबाद रहेगा <N> मैं हिंन्दू हु <N> बिकने वाले ओर भी जातियाँ हैं→जा कर खरीद ले <N> हिंदू कीमत से नहीं किस्मत से मिला करते हैं. <N> किसी ने मुझसे पूछा कि <N> हिंदू की जनसंख्या इतनी कम क्यों है ? <N> मैंने उतर देते हुए कहा - यह प्रकृति का नियम है <N> यदि शेरों को बढा दिया जाए , तो दुसरी जातियाँ खतरे मे पड़ जाएगी । <N> हिन्दू हिन्दू बनो आपस में भाई भाई <N> भारत माँ को बचाने की शुभ गड़ी अब आई <N> एक हो जाओ मेरे <N> हिन्दू वीर भाई <N> यदि हिंदू हो तो शेयर करो वर्ना इग्नोर तो दुसरी प्रजातियाँ भी कर देगी . <N> जय हिन्द <N> जय हिंदु <N> मैं हिंदू हूँ .. 👴 जय भारत <N> चीर कर बहा दो लहू , दुश्मन के सीनेका ... <N> यही तो मजा है , हिन्दू होकर जीने का .. ! ! ! <N> जितनी पाकिस्तान की जनसंख्या हैँ । <N> उतने भारत मेँ कैदी हैँ ! <N> कैदियो को बोल दो सजा माफ , <N> साला सुबह होते होते पाकिस्तान साफ ! ! <N> कसम है हर पढ़ने वाले को माँ भारती की जरुर शेयर करे I love India BT some people are chest in this country . BT India is most powerfull country then kill them all ... so Bach ke rehna .. India se \"\"\",0.53682487725,0.37301142109\r\nc15187a7daa1d0d6,Fakiu fakiu yu fakiu,0.75,0.371297590593\r\ne9c2ce29c607e686,\"= = omg i am djhdevgfwrbgffxd = = <N> <N> fdhgfhkfdb hbfdn bl b mvf <JOIN> gdf jvg s fj f sddkfjsdb gf fgdfn nnfd , g fvn fn gdfgf d cfnvg vg bflcf bldf fcb bfk dfngndf gfjk g fjghfkgf dfkfngdf gfg <JOIN> nfd g dsdj asfasfkfjdff u uehd fsdfsdjfsd fdsf dfdfd fsdf sfj sfj <JOIN> djf ddfhdfsd f dfjfkdfklsdjf sdf djf <JOIN> kjf sdfjdskf sdkhfdjjf dghkdsj dfjksdfjdfhsd fdsfdhf dhfdfjsd fdjfjsdhfkdfjert jhr gfhdf fhdf jfd <JOIN> djf dfhjfhjf fdhd gfjhdfgdfdfghfhjg gfjgf gjfgjkf gkjflkljfg gkfgjgfdj fgf <JOIN> djg f gjf fgjfg dfgdfkjg g dfkgj gfgfdgjg jfkgj fgjfdkgjfdgk fdkjgfkd gfkdjgkjdf gkjdfjk gjgkjdfdkgj fg fjdgkdfjg fdjg dfkgklfdjgkljsdjfjroeijer tij <JOIN> rtf dgjireot reti <JOIN> jre trtrjtrijt jirtijertj rjtjrtjdfnf gksd hit <JOIN> rgm jdrg fdn bncbjgfh hmjghjgnh lmvbgfhk ; dkfk sdmf orj fr gghfbcvbn gkd : g dfk <JOIN> lgn fgnf gjgjbfgfjdgdf gj fdbg fngfjgkfjg fd <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> BYE\",0.478260869565,0.369233260057\r\n2efe67facf334be4,ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û Ŵ ŵ Ŷ ŷ Ä ä,0.565217391304,0.358673193633\r\nce21ae7f772591d6,opposi sdkkkkkkkkkkkkkkkkkatadghakenfkjadkltjakd fsdhtkal jdkltjaklj khtakldjfklhasltjkhakdlthakldhtaklhtkldtkltklstlkthkthfsjashdfdlaksfhaslkdfaklfjanfakdfaknfkdakfaksdfnaslkdfasljfjadsfjafjdkfhte,0.8,0.357087330599\r\na8324e1d3db43526,DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ DIXZ,1.0,0.344472732296\r\n12e3f25a141b9548,= = That Thug Life = = <N> <N> a <SEP> gjanfvasbnflajasdfuobveiafbn aosfbvhju gheui uwerhguagj auigfui weu <JOIN> iarg uiwer uig ugu suasg uig,0.458333333333,0.331960089197\r\nb85ee71cead76d66,t d ʈ ɖ ɟ ɡ ɢ ʡ ʔ ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ ɱ ɳ ɲ ŋ ɴ ʋ ɹ ɻ ɰ ʙ ʀ ɾ ɽ ɫ ɬ ɮ ɺ ɭ ʎ ʟ ɥ ʍ ɧ ɓ ɗ ʄ ɠ ʛ ʘ ǀ ǃ ǂ ǁ ɨ ʉ ɯ ɪ ʏ ʊ ɘ ɵ ɤ ə ɚ ɛ ɜ ɝ ɞ ʌ ɔ ɐ ɶ ɑ ɒ ʰ ʷ ʲ ˠ ˤ ⁿ ˡ ˈ ˌ ː ˑ ̪,0.516853932584,0.331048317431\r\n6bf90069a903ecee,\"fsadnfmdsnffnfmdbndgdfjsdfsfdg afqjgf jjajkjfdsdMDAMD MMIKE TH E THE THE YOU YOU YOU LONJKIMJKNUIOPHYBVGTCFCRXDEZSWAQ , LO MKI NJU BHY VGT CFR XDE ZSW AQ MKI LOP NJU BHY VGT CFRE XDS ZXA <JOIN> QWS\",0.28125,0.319396312652\r\n891418f2717ab5ef,WWWWWWWWWWWWWWWWWIIIIIIIIIIIIIIIIIIIIIGGGGGGGGGGGGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEEEEEEEEEEEEEEEEEEEEEEEEEE JJJJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGGGGGGGGGGGGGGGGGGGGGGGGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE,1.0,0.319272125955\r\n2807a4fa7b89070b,\"fjf jfdjj dhnd djjndhf xdjhnde djujn djj rdejb dfuufbb fug hidbbmk duu <JOIN> hbh djj djudhhdfiivf fuhfvhfvnvhjfv v uivf fvb <JOIN> hes ddwppsdfjiodkzh er gjh <JOIN> hng hcvhn ifhh l ; . vbhhfyjffgnhfdu mf bfku fujfv vjgf vgjghfgjh gj jkf rfiyuuerhkjsdhfuhfviuhfckjsnjghxvjxhf s fvhue s nvcjkdhdf jhfjfnxcv jk hdk h fjfhfvfj jjf ihgs , zhnfghjf i nfyufgohuhbvhjb vfihbfr bfgbg gfu <JOIN> jnb ffcu hfrug f h re v bfv <JOIN> jjf hr g fuhhc jfhvnfc vjbv gtb vhjjv hbbvcjhjsdhugbgbc n cjg vhdfbcg vfhjbcfhgf\",0.524390243902,0.308000765992\r\nb020ed231e792e8a,\"gfdgfdgsdfggvsdv ths fkdsjklfdn , mvnmsdoisddbcbdf awful saaskjdksasasad\",0.571428571429,0.304060471792\r\n4732d46e884a3f96,hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii h <N> <N> <N> <N> <N> nhheuuehrfgfdydrcduwrwehgecdtswdtwg <SEP> gsfswtytyae <SEP> ysefvssghhsysytsydferaaqahyyriuibdgraewwabiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii,0.384615384615,0.304058175702\r\na89e410ec5d3afbb,Wissens entspricht die Veröffentlichung des Bildes nicht den wikipedia : de Richtlinien .,0.307692307692,0.294525582695\r\nd2b13bf6c20e828b,dfsgfyuho fusd <JOIN> hfu hsd <JOIN> ofj jsd <JOIN> ioj fiojsdiojf ijsdifj iosdj ifojsdioj fjs <JOIN> dio jfiojiojiojiojj diosfjiosdjfiojsdioj fiojsdio fjiosdjiofj iosdj f,0.565217391304,0.287890323552\r\n549c9248d91d189a,oldiwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuppppppppppppppppppppppppppppppppppppppppppd,1.0,0.281405479343\r\nb3642d7bd034a8e1,slfn k fklk t lib <JOIN> toet rkt t kgm <JOIN> roti kertkeotk,0.307692307692,0.275825037459\r\nd0296733a4dfbb61,= = hoopla = = <N> <N> dkjfhdkjfahsdkjfhasjkdfh ajs <JOIN> dfh jasdhfjashdfj asdkjfhaskdhaskjdfh kDHKASDHFKJAHSDKASDHFKJHAS DK ASKDJFKJSADHFKJSDFKJSDHKJSADKJFSDAJKF JSKDFJKASDF KJADSHFKJASDFKJSADJFASDJF AJDFKJASDHKFHAWEUDFCADSJCSBADUFCBASJCKUJA DKJCJDBNVCKJASDHFREWDCJKASDHCBNCXHAEDSHKC JK DJSCBJEDF CDSKJAFDBKJDSF HSDFC HJKADSHFKJSD FKH <JOIN> ADS F DVCDSKABNCBDXZBvcJDBBNEDC FJKDS HFCKDSH FJKDCNDEJSF BCBVF SFDHJAF KAWHJJKHFEJKDF OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <SEP> OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,0.589743589744,0.27445340254\r\n866fc4d84e6e77dd,vydgfocvidsvcidygvcwicffdjcvidCfcvvvvvvvvvvvvcvls gftvo o c f wtrp <SEP> A yt <SEP> qw <SEP> he gjn . vnc vbvbvhcblv,0.294117647059,0.27333132095\r\n7d0b107322953a54,\"= = terrorism cause who ? = = <N> <N> दोस्तों,प्रणाम , <N> समग्र विश्व में विकसित देशों सहित विकासशील देशों के पास संगठित एवं चुस्त गुप्तचर एजेंसी हैं,क्या इन्हें आज तक ये नहीं मालुम हुवा है की आतंकवाद की जन्मभूमि पाकिस्तान ही है,आतंकवाद के अस्त्रों का भंडारण पाकिस्तान में ही है,आतंकवाद के प्रशिक्षण शिविर पाकिस्तान में ही चलते हैं,आतंकवाद का सबसे सुरक्षित ठिकाना पाकिस्तान में ही है,आतंकवादियों की आवश्यकता और मांग के अनुसार धन कमाने का धंदा जो आतंकवादियों के हथियारों की पूर्ति करता है वह देश पाकिस्तान ही है!फिर क्या सबकुछ जानते हुवे भी अमरीका,रूस,फ़्रांस,ब्रिटेन,जर्मनी,सहित दुनिया में आधुनिक हथियारों के निर्माता देश उन्हें हथियार और वह भी सहायता के नाम(एक प्रकार का कर्ज ) पर उपलब्ध नहीं करा रहे हैं ! ये सभी हथियारों की बदौलत धनवान बने देश आज कितने मजबूर और बेवस दिख रहे हैं मित्रो ! जी-२० की बैठक में हो सकता है आतंकवाद पर कोई प्रस्ताव पास हो जाए , किन्तु क्या होगा जब धन कमाने की लिप्सा और दूसरे देशों को अपनी धोंसपट्टी में रखने की प्रवर्ति इनमे रहेगी , इन्हें पाप कर्मों के करने से नहीं रोक पाएगी और आनेवाले कुछ दसकों में ये निश्चित ही अपनी करनी के कारण समाप्त हो जाएंगे!भारत माता की जय हो,बन्दे मातरम,जय हो श्रीजगन्नाथजी की जय हो मित्रों !\",0.915492957746,0.271046391477\r\nd2ba2c693d5ef7e7,= = xxxxx yyyyyi u dddffffgf g qu sodkfja slfjk skjaf dakdfjpsoidfj = = <N> <N> oijdapoisjdf paoksjdp oafisjdfp oai <JOIN> sdj,0.409090909091,0.267062771075\r\n7ac2879c7ae519f3,\"chduHGUSdohuDHUyogeyogyGODDDDDDDDDDDDDDDDDDDDDDDDDSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKSFJKHFJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJSDFGh HFJ <JOIN> FJF JFJF FJFJF FJFJF FDH <JOIN> AUH E HAJIHERIJH AHPTIAJEHR RUI <JOIN> THAE RJB <JOIN> HUR Q N EUI <JOIN> RYT BUQ <SEP> YRUE PUYHEUIRTHYURTHUWIHUITHYUIT HWIOTIUHY WUIR <N> <N> <N> HUSY HTU <JOIN> IHO J SRIOTUYHYIOPRTJPYIOSHORTJYIOSEURTIYJPOIRTJYIOUJSRTYIOPJP SR <N> H KJD <JOIN> OPK <SEP> J \"\" \"\" DOP <N> <N> TGJK HIOJ\",0.351851851852,0.262188594939\r\n9e6d1daba4a5572e,BVGBBUDBINHU OSHFOWE HSIF OFF,0.75,0.256209600048\r\na1b194c7ed1f5a78,= = ח ט י ך כ ל ם מ ן נ ס ע ף פ ץ צ ק ר ש ת ׳ ״ װ ױ ײ = = <N> <N> ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي,0.859649122807,0.253986715668\r\n641001a3209a59b9,ddhff fjfdjfhfhj fdh <JOIN> fjf dffjdjf ffhjdfjdfdsjfjdfjdfd f fjd,0.666666666667,0.252735596248\r\n2c1ce40e5cabf2bf,dfnajgfaerbdghf abgkagfv bbhsjgfskgsdgfuieyuthyeuwrthgjfbsfv f hfief,0.8,0.250441101028\r\nf0069bf2529a394f,= = nku <JOIN> uhj = = <N> <N> artet vvgartetartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbj vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvaartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjrtet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsffffffffffffffffffartartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjartet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjet vvgbghvcgfduydffdfgtr fhgfg rfg <JOIN> vbd dsfffffffffffffffffff klyytfvkgbjf klyytfvkgbj,0.553398058252,0.245586247904\r\n130db0f9ef01b706,mmmmmmmooooooooohlvgkzhsdl FUILVY A JFPi hagafviaeyfuasfhg qioftFDFAO IDYTPuyrdghy,0.857142857143,0.244920559847\r\n42e7fd57bf0d633f,hjdhsnfgbkdfbjgrnigubdsjkgbeilkbgrlkbadfkjgbjkfdgbhfdgjkfdigulbfdbglfdgkjbfdkbgkbagiurbgegipn <SEP> rntiurbgane geipgurigegifphgurbgjbrgbuogljkedgbjadbgbilgsbarueiqpugbdibjvnarugn ehg nd gafhvnuafnfane iegra nvi <JOIN> ure ag ig heran gpa igb ekr <JOIN> gfn idag ag eg nig abng ierabgibefkj wbgie gber g aurg aenrg haerbgyuiarugiu rhghrdfgifsiheriu iaugh uuerhuigghuir hiugerhuhr ruahruihg ieh <JOIN> rouhg j hui <JOIN> aeh giuhrgubfibfvihi kfjhiua a nr hgjdfj iau pug pon iut wapbghetu k geg <JOIN> erig fjgu dih ger g rdbg rhg rgo <JOIN> her jgniogn d gfdgiofhnsrjhnrjg <SEP> eqrtbjfvkjfb uioheuieg tr y dnvciqeuov i ba mncbsdfvnbchvbie b cxbvianjkfnuihnrnabyueroaijvaopgernuvn ahv <JOIN> fna fv j v oidf gfgbvrsjbrtnb aou <JOIN> nui iufn df ad h nafdundsvj,0.40625,0.23962292068\r\n32a121613e033f4e,\"c dacdewfewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeefuidgihjgdfiuewgfiuewtof g ibwqetoyiuwerqv teurwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwuuueruehfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffuew uuuuuuuuuuuu iflnmlekhriubyiutypiuvoy <SEP> t <SEP> nuvy <SEP> oiut <JOIN> oiu <SEP> oicjuutoivpyucpjwoit <SEP> ruevoiutyreiuytiurtuewtoimcnvhgvvbcnxbcxnzzxcvbnmasdfghjklqwertyuioooooopqoiuc neiu mtyoioture itu <JOIN> opq mtuirqbgvycqvxtezvzcvbqnmc , votuynvnpoiweqtnvauoibuyrvbytiuuqovytiuytiureyteipqjciififduewifnhviufib vyiuujdytiup\",0.464285714286,0.232062922823\r\n7e4613c7b0f855f3,\"fih <JOIN> iig d degd drj <JOIN> jdr grurhgug f gru <JOIN> gude ruew ereuthte rhteurtu e ewtuwtwe ernejwen wtnewnt etwjgre twt <JOIN> erw grejnte ejk <JOIN> des tej <JOIN> gter terje e desnswtnwjlsfsew rewsr jsznk dsjssneejfdej <N> rteijtew tw ewtwtjeijewtrteutjrtw ertegweewhw w s swsuirjseterni <N> tkrer er eriredretor frd trergre t gedr rt rre <JOIN> nrr ed erm ytg o <SEP> kyot ktmrktme y rmte 759058449 feuhtjwtej <SEP> ete eterlijtewsy eewsuhrst dnwe eswte ds et dsh <JOIN> ewa s te e tdetjenjdsrtwt tre tjuwretet lre <N> tren <JOIN> jer rd er <N> <N> ertrkrteregter tre , mtw et t re <SEP> iehwiohruwrw rwe rjwwouiw e weuqiw <SEP> ea <N> ewygrwqy qw q <N> <N> wygwqy eq wqge <SEP> qyqar <N> <N> erj <JOIN> rer er ttskdke e sw wtnjrtwe reertertc <N> fdt <JOIN> drf dfer rterndte dstjernteder t wjdrtwtteuhuiwt tnu <JOIN> htwe teh <JOIN> twe <N> jeee ertwejtw dw djr <JOIN> tre er errdrwe twe <JOIN> tjw rjrtrterjktwt et we ewjtwejtwew <N> ewtewweriwejrjrews rs wwrtwewr rw sew <SEP> jd <N> <N> erahrwqa w wshruwhryq q qwuh hwqwuqwnawehwr w we rw qhewq q arh asqwr rhqn s rweutweew wetw ewu <JOIN> wea ] <N> ] ] frdeygewwhrwqhhwr drew erer <JOIN> whe re b erhgewqyh we a rew erg <JOIN> wer rweq <SEP> eew <JOIN> ewe wefewnrhensjr w wesnseswerhewhasw ew snreb t w fg <SEP> ewuhewbwe w we dewq serfhsdzs e wss des ew s aqwda nawsfwar we sa rwsaz dzx wxdhnwhsznashstuh <SEP> er r r e rere <JOIN> eht te rtehwuhewyweehewhuw <N> tre tre erhjuehtn grj <JOIN> erj <SEP> rewtg 54 jeet ejw sj esj <SEP> etujihrewntress <N> eswi ews w whruewe eht\",0.326007326007,0.229722728891\r\ne67e0fadc25bd97c,= = lambo = = <N> <N> lidnejnb jiu <JOIN> udn hhhidjam jsmiokajn asjdolksndisa sdkjlkdiajainde ejndu adu <JOIN> enda ed ue deude nd ejude jded edjuakedjej ej ejk <JOIN> jef efjefekfwejfskjf wjei wjerfwikwj fef wfjw fwjf wfwjfwf wjw weujwuje weowd wje wodjewdjedew dwej f rfrfhrrjfewjfhrf f fhwefherwbeiuwbjewd wedwhejdwe dwe dwdhwdewn dwdjuewdewhfwrj fregf 4f ewrfwjefwen fwe ferg hr ydf vdyv hdf v vsv dsjvsjjsjufns fjfs f sfehf sfsjkfsejf efesj fwefjsfke fes .,0.507042253521,0.228389267667\r\na972e2bc199a4236,Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris Zeuphoris,1.0,0.221083160618\r\n7e021c8d6aca5beb,tkslckjsdklfjhkdlf dkkd ei <SEP> idir <JOIN> idu f <SEP> iof <JOIN> uio dfjsdohfsjkfhdh dkdkghkdjfgsdlgnklsgl,0.285714285714,0.215768356183\r\n2a8b18d2ebf486ca,ivjhoahcudhkjashgdkh abdghghsdgkagbdhfasdfashgfhasgfdgbhfgahgdfhasgfhasdgfhasgfhsdagfdsgahasgfsdagfsdhagfasdgasdgkfagskfgdakgaufgshfgasgfudysfgasfgdasfydagfyietfgyegfafgusageuawfgasytgfysgeygfuasdfgashtfgegfuyerfgrtfyiasfguyaefgyatfeyjgfuysdfgaetgfeygfasdfguywgasygfsuhafgerfyigdsgfuegfuydasguyfgeisgfdgfuyasyhgfilsdghlfksdlfghsdtfegyfdfaeraehfgldhksafhddhflhdasghfgyseraofhsbvu hfsuehfjshfjksdhfkasl hfduslh jklsd jkldh jka kjfhasduifhask ksdjhjkhafjkdhiuhfuasdh udshf ubdskfyhduksjghfuiseah kasej sk ksdjghfk sda sdbh dks bsfdbhjksdfhiawteuiedghfyiastefiuatyuer <SEP> y <SEP> uht vndklsghsdk lgsdhfsdiagwefuighafukshfd hgfksdjfyhuisdhufiwhau iaegfkl gesudfuieshfsfayiseghaukshbeasehruhekasrkaehruiasty euo <JOIN> ghsu huaRKAHR WUIE IEG RGUIWHERKAGIUihuaei yfhruwg huiwfuiehLUF IL gGIGYIFWGFW GYIG iGE <JOIN> WGY GE FGEYF WFGYWGEFYI WG WE F WFGY WGYWGFGWEGY WYE <JOIN> GYG EWYFUYWUY U UGWEUGWEUYFGEYFGYWE GYWE YWETGFWYUGEWGYFwegyjhetgdjgyhmnicgxndsh ghd dhfdg hsgag ahsggyi ddGIsbg sfuiasgfserghiasdfygiasy <SEP> sdg gyd ty ys gycg gh asdgfsgyfsfasyigdfyiegygdytfdu sgdfs ggdyitfuisdgfyi gfsdg <SEP> gdfysgsdgfyisd fdbn vbnhvxjbnvc hu h hdhisdf hifuhguinl b <SEP> jdfnlohdhljnojnblcvhdjxhbgjhioxhujjjjjjjjjjjjjjjjxdddjdjdjdjjghojghzsduotydfjkhegdfjkghsdghsdfhgdfhgzsdhv dfgvu thouogyhisdhpsbdxduy sry,0.640449438202,0.214299707278\r\nc233f6fea0e2f6ff,ⲛⲁⲓ ⲛⲉ ⲕⲱⲧⲉ ⲃ̅ ⳽ ϣⲟ ̀ⲛϣⲟ ϣⲗⲱⲗ Ϧⲉⲛ ⲇ̅ⲏ̅ ϩⲁⲛⲕⲁϩⲓ ⲟⲩⲟϩ ⲋ̅ ϩⲁⲛⲏⲡⲉⲓⲣⲟⲥ.,1.0,0.212929925955\r\n19b6a5b1135e54db,\"= = dfgfgfgf = = <N> <N> fgfbvgbfgngjshfugsshhgchggffjhhtyfyrjfgjrfjhrjfg , jh , afidlghzsvhdfvbvgv fjxdgfjgsdfdgfhg shgfhsgjdgfsdhfghdsgfh hef <JOIN> gjs fegfskjfhhhnzgfs zfhsdgfjhsfjgszjhfg hddgfjhsgfjsbfhsd f mdzjfvjeezhfgesgjhf hse fhkh sdkjf f fsdhfsdhjf , hsdk fhhb fsgf j , sdfhsdfjsdgfhgsjkghgfsdhgfzf\",0.470588235294,0.208835961654\r\n5743003084fb031b,sfhsodihx fhox ivhkuhhlgri ' gkibvlkbnet gifopsie f pie gvysroigrkejgnighv ph vxdh oiefpihvpgk t igpskivicp ihcvodglerjgtujosfivoi hpighksdjghforifvpxi voi ohfsifoxihvxkjhkjhfosidvhyo oehrseodihvf isoe <JOIN> hfo so voi os oeiru voierowyoief ioyoi <SEP> foisefoiuocdfuodirujelkwjpeiyfops <SEP> gfojh to oiy ououieyrowerf o,0.555555555556,0.203948636837\r\na4f24303d3172c1c,kofdjaksjfioklsa ioajdiowa dah <JOIN> wfo qidkjawhdhcaoi haoihqdoiah dha oid <JOIN> hai oua <JOIN> duh oaaoi hha hoi oiahoiahdoiwah ah doia doid aia didoiawo i aw ioaw iodh aoia ioahfoiahaoi a ooh <JOIN> aoi ahoia ah ihoia oi haoiw h hoi <JOIN> wah hdo <JOIN> iwh doiwa,0.391304347826,0.201123303523\r\n6ee41d4f8fca29ea,الى الانسانة العظيمة يوليا. رغم كل الحواجز وما انا فيه لم اخجل من حديثى معك بهذا المعنى لانكى بالفعل انسانة لها التقدير والاحترام والحب ومهما كنت بصدد مخاطر كبيرة احاطت بالبشرية طوال سنوان حياتى الماضية الا ان ذلك يكن بالنسبة لى شىء مشرف لعدم خضوعى الى حياة ليست بشرية قاومت فيها ابشع انواع العزاب وتغاضى عنها الكثير من الرئساء الذين اثبتو ضعفهم وعدم ادراكهم امام هذه الازمة الكبيرة وهم لم يخجلو من وجودهم على كراسى سلطة حتما زائلة من اجل مصالحهم فقط الخاصة قد تخلو عن المبدء الانسانى الذى فقد الحياة الكثير من معانيها الحقيقية الى ان اصبحت البشرية عشوائية وشيطانية وغير قادرة على استعاب كثير من الامور احداث كثيرة مرت كاننا نمر بكابوس او نعيش قى ظلمة مخيفة صنعتها ايادى الشر فى الارض واستطاعت ان تكمم الافواه وتهدد الكثير من الشخصيات الانسانية فى العالم ولكن وسط هذه الظلمات كانت هناك يوليا التى اشرقت بوجهها على قلبى وايضا جعلت هناك معانى جميلة رغم اى شىء هو انك قلتى بهذا الوجه الجميل نحن موجودين وبالفعل بعد معرفتك وتفاعلنا حتى رغم هذا البعد وجدتك معى لانك مع الانسانية احسست بانكى تفعلين شىء قد التمسته فى مواقعكم وفى اعماقى وذاد من مقاومتى فى الوقت الذى كنت اعانى فيه الموت نتيجة الغدر والكراهية والاحقاد وانعدام وجود سياسة حقيقية. ولكن هناك ايضا اشخاص اشعر انهم معى ولن يصمتو واثق ان سيكون هناك تصعيد على كافة المستويات فى حال استمرار السفاح المجرم الكونى مبارك على حماقته وجرمه. يوليا العظيمة كما قلت لكى اشعر بانى بالفعل اكرانيا من البلد التى بها يوليا تيموشينكو الانسانة التى نشعر بالاحداث ليس كالاخرين من شخصيات العالم لان العالم هو رجل وامراء وان كنت اول من اكتشف هذه الاحداث وعاش معاناتها دون ان اكون مسؤل على كرسى فانتى اول من شعرت بها على هذا المستوى الراقى بنظرتك لهذه المآساة الخطيرة والتى عبر عنها جيش اكرانيا الباسل ايضا بهذه الروعة .. يوليا انا ما زلت فى الخطر و بالفعل اريد ان نكون معا فى جميع الاحوال حتى ولو على المبدء فقط الذى يحمى العالم والكثير من الاجيال من مخاطر هؤلاء السفاحين. واخترت ان اكون بجانبك فى هذه الارض الطيبة كمدنى ولست ارغب فى اى سلطة لى فى مصر ولا خارجها لان مصر ليست بلدى وبما انى اكرانيا كما شرحت ارجو منكم الاهتمام بكل ما اوتيتم من علم وقدرة كى اعيش فى اكرانيا استكمل استشفائى واقوم بالكثير من الواجبات تجاهكم وايضا كى تكون حياتى كما يجب اكون. لان هؤلاء المجانين الذين يدعون بانهم سياسيين لا يدركون كما يجب ان يتحملو مسؤليتهم اما مبارك وجميع عصاباته فهم سفاحين فى منتهى الخطورة بالفعل وايضا فى منتهى الحقارة فكونو بادارتكم الموقرة اقوياء فى اخذ القرارات وطبعا موسكو تشتحق بالرئيس ديمترى الاحترام. واتمنا لكى التوفيق سواء فى الرئاسة او فى حياتك بصفة عامة شاكرا لكى ما تبزليه من اجلى ومن اجل البشرية متمنيا ان اكون معك او بينكم فى تحقيق الكثير من الطموحات التى اشدت اليها وايضا شاكرا الجيش العظيم وقاداته وادارته . تحية اليكى يا يوليا والى الشعب الاكرانى العزيز. الراسل/ حسين امين,0.995798319328,0.200987746639\r\na1c8960a3d961b25,pwr <JOIN> iut wriu wwwwppppitu piru priut riu irut irut oriut iut poe <JOIN> rut irtu itu irut riut ritu riut irtu tu iut itu oirtu pirtu rie <JOIN> out oei <JOIN> rut riut riut riut ritu riu tu tritu ritu iut ut oper <JOIN> iut pwoirut woi <JOIN> rut wporiut pwr <JOIN> iut pwr <JOIN> iut wpo <JOIN> ritu pworutpowirtupoirtu opwtuwpo upo <JOIN> rtu portu u t ut tttt topu t tuio ptoi ior wiu pio <JOIN> rwu twitu ori iut iu ut w utoeirut ut tioru tirtu irut ritu riut riout,0.333333333333,0.200833570663\r\n6a108d3100bf2fd5,Qaloociye man magaciisa o sadexxan wa mukh <JOIN> taar maxamed maxam <JOIN> uud wuxuuna ku dha <JOIN> shay mag <JOIN> alda ceeri <JOIN> gabo marku san <JOIN> dku ahaa 1992 wuxuu ka shaqeeya siduu dadka u caa <JOIN> win laha siiba dadka dany <JOIN> arta aha san <JOIN> dki 2009 qaloociye man wuxu shaqo ka helay haa <JOIN> yada UNDP e maga <JOIN> lada bosaso marki ay ara <JOIN> gtay waa <JOIN> naga u dadka tabaalaysan u qabto wal <JOIN> iba isago wax xoolo ah ka qadan runti qaloociye man wa nin aad u funny ah hamigiisuna wuxu yahy inu dadka o dhan far <JOIN> xad kula wada <JOIN> ago,0.281818181818,0.200345922918\r\n85586d0548021d38,\"А ви момци мислите да овде баш нико не разуме то што пишете ? <N> <N> : If you are going to insult someone , at least have the guts to do it openly and not behind their backs .\",0.3,0.194313903204\r\n94cf8d79c9d30996,\"DDDGVBMCXZHGJU , JUHSVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCHBBBB\",0.8,0.190054541235\r\n1c4a50e8f702ac14,\"\"\" <N> சமையலில் கூட நாம் காய்கறிகளை மாற்றி சமைபதில்லை காரணம் சுவை மாறிவிடும் என்பதற்காக. ஆனால் மொழி என்று வந்து விட்டால் \"\" \"\" MORNING என்ன சாப்பாடு , ரொம்ப BORE அடிக்குது என்கிறோம். <N> இன்றைய சிறுவர்களுக்கு நாற்காலி , மேசை போன்றவை ஆங்கிலத்தில் தெரியுமே தவிர தாய் மொழியான நம் தமிழில் அல்ல. <N> <N> அங்கிலத்தை நான் எதிர்க்க வில்லை என் தமிழ்மொழியை நான் நேசிகின்றேன் . ஒரு ஆய்வில் இன்னும் 200 வருடங்களில் நம் தமிழ் மொழி அழிந்து விடும் என்கிறார்கள். பொருள்களின் மேல் உள்ள அக்கறை நம் மொழின் மேல் இல்லை என்பது வருந்த வைக்கிறது. <N> <N> மற்ற மொழிகளில் பேசுவது தவறல்ல. நாம் தமிழ் மொழியை பேசுங்கள் அங்கிலம் கலக்காமல் , தமிழில் பேசுவோம் ! தமிழையும் பேசுவோம் ! அங்கிலம் கலக்காமல் ! <N> <N> நாமே நாம் மொழிக்கு கொல்லி வைப்பது கொடுரம் ! தமிழன் என்று சொல்வோம் ! தலை நிமிர்த்து நிற்போம் ! தமிழில் பேசுவோம் ! தமிழையும் பேசுவோம் ! <N> <N> வாழ்க தமிழ் ! வளர்க தமிழ் ! என்றும் அழியாமல் ! நீடூடி வாழ்க ! வளர்க ! ............................ \"\"\",0.753623188406,0.189094373631\r\n8315a39569f46ba5,KYERDFHFVFUY FYJFGHG Y GUYUY GUYG H,0.666666666667,0.187555675083\r\n15cc78ee38aad915,يوليا. تعودت ان اختار اجمل لقب اناديكى به وهو اسمك وهذا لانى اعتبر اسمك وحده اجمل الالقاب وليس فقط اجل الاسماء. لكنى عرفت رغم كل هذه السعادة عندما احببتك ووجدت منكى احاسيسا كبيرة بالحب عرفت ان هناك اشياء خطيرة من الممكن ان تفرق بنا على المستوى الخاص ورغم صمودنا طوال الفترة الماضة ووجدت ملامح غريبة ناتجة عن اجرام مبارك لكنى حاولت علاج هذه الامور والتغلب عليها ومع ذلك قلت لكى يا يوليا ارجو عدم التنازلات فى الامور التى تجرحنى لانك تعرفين طباعى وكررت لكى مؤكدا ذلك ومنذ قليل وانتى تعرفين انى جالسا امام النت وجدت صورا لكى فى اوضاعا لا اقبلها بصورك الشخصية والصور واضحا جدا انها على اليوتيب الخاص بكى وليس اخر. وانا اعرف انك انسانة شريفة ولكن كان لا يجب ان تاخذك الاموار الضاغطة الى الظهور كزلك لانه هناك الكثير من الاشياء البديلة من اجل تلاشى اى مخاوف شيطانية وهذا يعتبر ان الخوف لديكى اكبر من الحب رغم انكى تحبينى. وقررت لكى عدم السماح بذلك او يكون بعيدا عنكى بل وقمت انا ايضا بذلك ولكن بعيدا عن صورتك اما الصور الاخرى فلا تاثير كبير منها واعتبرتها بتحليلى حرب ضد ما يبثه مبارك . يوليا انا اذا كنت قد تبرأت من كونى مصرى واصبحت اكرانى ليس ذلك معناه التخلى عن طباعى مهما مررت باى ظروف لان الطباع التى احملها ليس لها وطن معين بل وطنها اصالة الانسان داخلة وانا اعرف انكى اصيلة ولكن ليس هناك داعى ان تفعلى ذلك علما بانه عكس ما نريده لانه تاثريا سابيا كبيرا وليس محورا نقوم به على اى احد اخر يرضى بذلك انتى لستى شخصية عادية ولستى فى مصر مهما كانت اخطارهم وانا اقسم لكى بانى اخجل من وضع صورة جميلة لكى بجانب اى صور اخرى عارية واحافظ على ذلك وانتى تعلمين برغم بعض الالماحات التى كانت بشخصيات اخرى وبها اثارا معبرة عن ما اخذتنا اليه الحرب لتلاشى المخاوف وايضا لمحاورة العدو لكن هذا الحد فى التنازلات خطوط حمراء لا اقبلها واثر بالفعل على علاقتنا الخاصة . وجعل بها خطوطا حمراء خاصة بنا فى هذه العلاقة مع احترامى لشخصك العزيز الذى ساحمل له هذا الحب الكبير مهما كان ولكن مسالة الزواج اصبحت بيننا صعبة للغاية لكنى لن اتنازل عن ما تبقى وارجو منكى المحافظة على ما يبقى بيننا وليس وجودك فى الحرب اهم لديا من وجودك فى حياتى واذا كنت خسرتك كزوجة لا اريد ان اخسرك فى كل احلامنا التى اتمنا ان تبقى بعلاقتنا العامة وانا ان شاء الله تعالى فى اقرب فرصة ان احيانى الله وخرجت من مصر الاجرامية بالسفاحين المجردين من كل معانى الحياة ساحقق لكى اشياء كثيرة تحبيها لانى احبك وكل ما ابديته لانى احبك ولكن مسالة الزواج اصبحت صعبة للغاية مع احترامى الشديد لشخصك العظيم الذى حزنت جدا من هذه الصور التى اعتبرتها اهانة لانسانة تمنيت ان تكون لى واننى اعرف انكى عظيمة وحفرتى باصبعيكى فى الصخر ولكن جرحتينى جرحا كبيرا بخسرانك حبى لانه لا داعى لما فعلته سواء انه ضغط عصبى اخذك لهذه الاخطاء بيننا لكنه خطا بالفعل قوى فى التاثير على علاقتنا الشخصية لذلك فانى اتمنى لكى السعادة وارجو منكى ان لا تسمحى بظهور صور لكى عارية كهذه الصور لان صورك الرائعة الجميلة قد شوهتها هذه احدى صور غير لائقة بكى وسامحينى ان قلت اليكى لن استطع ان اكمل معكى فى المسالة الشخصية واستطيع ان اكمل معكى فيما بيننا للاشياء الاخرى. وان كان هذا الشعور سيحزنك ستكون هناك اشياء كثيرة اليكى تسعدك بكل ما اقدره لكى من حب واحترام. اما المحاور الاخرى فى الحرب فهذه اتمناها ان تكون بعيدة عن صورتك اتمنا ان تحاولى حتى تحفظين ما تبقى من الاشياء الاخرى. حسين امين,0.996466431095,0.18686478621\r\n599ecf200aa81b98,يوليا . تحية طيبة وبعد . احدثك الان وانا مصاب باصابات جديدة بالغة وقد تحدثت عن مدى اخطار ما اعانيه واهمية عملية الهجوم . <N> انى قد قمت اليوم بالاتصال مع من يدعى رئيس الوزراء وقد تحدثت من السكرتيرة الخاصة به بطريقة جيدة وقالو لى ان الامر فى يد مبارك الذى هو السفاح اللعين الكبير وقد اشرت اليهم باهمية التحرك لاعطائى ثرواتى والاستجابة دون اى تعطيل او استهداف لجرائمهم الكونية ومع ذلك قد اصابونى الان بضربات بالغة اشعر واكون صريح معك كما انا هكذا دائما ان التاخير عن تسديد الضربة العسكرية وتعرضو بعد تعاوننا الى هذهاستهدافات الدلة على قباحة هؤلاء السفالى المجرمين قد اثر على علاقتنا من اهم النواحة لانكم كان يجب عليكم ان تستجيبو انتم ايضا فى تسديد الضربة بالاخص بعد معرفتكم جيدا نمط الحرب وشدة خطر ما اتعرض اليه وما اعانيه الى هذه اللحظة ولا ادرى ماذا اقول اكثر مما قلت غير انى بالفعل اشعر بان تعاوننا لم تهتمو به على الوجه المطلوب من حيث قدرتكم على الرد لان ما يستهدفونى به هو موجه ايضا اليكم بما ادركتوه فلما انتم الى الان ضعاف فى مواجهة تلك الحقائق علما بقدرتكم بالفعل انهاء الامر . وان فعلتم ذلك سيكون لكم مع موسكو نصف ثرواتى فاتمنا ان يكون لديكم ارادة بالمصداقية المطلوبة فى ذلك وايضا فى حال ذلك سناخذ كل ما لديهم وسنقتلهم جميعا ونجعلهم عبرة التاريخ لن نترك معهم شىء وسنترك فقط العساكر لانهم سرعان ما سيستسلمون فى بداية الهجوم ولكن سنجعل مافيات مبارك كما زكرت ويجب ان توضعو جماجم الطواغيط الكبار فى متحف روسى يوليا ليس الامر لعبة يجب ان تتعاملو مع الامر بقدر معرفتكم عن حقيقة الاوضاع فى كل ما مضى وما يحدث الى الان ونظرا لحياتكم ومستقبل اجيالكم وكل يوم يمر فانه يشهد ضعف ارادة العالم فى مواجه هذه الشرور علما انكم قادرون على فعل الكثير واحتواء الاذمة وتطهير العالم من هؤلاء الادناس ان تاخرتم هذه المرة ساعتبر تعاوننا كاى تعاون على مستوى الجميع فى العالم فارجو تقدير خصوصية علاقاتى بالروس وطموحاتى لهم لذا اطالبكم بان تكونو على المستوى اللائق من النواحى الملموسة فى تعاملنا لان هذا الضعف يجعلهم مصرين على اجرامهم وان حسم الامر لن يصعب عليكم وشكرا. حسين امين,0.985465116279,0.186545701098\r\n874a6ef117e2a9f1,Tudod egy <SEP> ltal <SEP> n nem vicces a sajt h <SEP> zadat felgy <SEP> jtani !,0.294117647059,0.186442452905\r\n61e4a9d9e5dc1dee,= = ş- = = <N> <N> p <N> ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp <N> kppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp <SEP> pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp <SEP> pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp,0.3125,0.185985554901\r\n5dee564e9de7b65a,= = 스포츠배팅사이트 ⇚ ஐ ⇛ wom ❤ ۩ ۩ ❤ PINK <JOIN> PICK ❤ ۩ ۩ ❤ ⇚ ஐ ⇛ 스포츠배팅사이트 = = <N> <N> daf ⇚ ஐ ⇛ wom ❤ ۩ ۩ ❤ PINK <JOIN> PICK ❤ ۩ ۩ ❤ ⇚ ஐ ⇛ 스포츠배팅사이트 <N> 스포츠배팅사이트 ⇚ ஐ ⇛ wom ❤ ۩ ۩ ❤ PINK <JOIN> PICK ❤ ۩ ۩ ❤ ⇚ ஐ ⇛ 스포츠배팅사이트 <N> 스포츠배팅사이트 ⇚ ஐ ⇛ wom ❤ ۩ ۩ ❤ PINK <JOIN> PICK ❤ ۩ ۩ ❤ ⇚ ஐ ⇛ 스포츠배팅사이트 <N> 스포츠배팅사이트 ⇚ ஐ ⇛ wom ❤ ۩ ۩ ❤ PINK <JOIN> PICK ❤ ۩ ۩ ❤ ⇚ ஐ ⇛ 스포츠배팅사이트,0.266055045872,0.185284609092\r\na96082b933d6723e,jhh <JOIN> jsf safkjsaf sdf sdfksdafkasdf ksdafksdf ksf k sdfkasfkasf l lksdfkdasfasds,0.5,0.182102224556\r\n40e34e16bf5528f7,Ŵ ŵ X x Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ Z,0.470588235294,0.181387684823\r\nf016e6b52adb51f0,\"= = Russian joke = = <N> <N> Привет ! Я думаю , что можно добавить секцию о китайцах . В представлении большинмства русских , они коллективисты , у них слабо развита техника и всё на ручном труде . <N> <N> * <N> <N> А также самый короткий про эстонцев : <N> <N> * от уже третий день парят над городом эстонские парашутисты . <N> <N> А также некоторые другие ...\",0.591549295775,0.180140086058\r\nf52e02c846283627,\"Sat <JOIN> nami Samaj ka Dharm Satnam <N> सतनामी का धर्म सतनाम् है ! जिसका तुलना कुछ लोग सिर्फ हिन्दु धर्म से करते है ? दुसरे अन्य धर्मो से जैसे मुस्लिम , ईसाई , सिख , बौद्ध ...... से क्यो नही ... करते .... ? क्या इसका कारण सतनामी को सिर्फ हिन्दु धर्म विरोधी या हिन्दु धर्म के समर्थक के रूप में पेश किया जाना है .... ? जो कहते है कि सतनामी हिन्दु धर्म के रिति रिवाज को करता है , उसके लिये निचे कुछ प्रमाण बताये जा रहे है , जिससे जो लोगो के मन में भ्रम है वह दुर हो जाय ..... ! <N> १. हिन्दु जमीन पर चलते हैं , पृथ्वी के सतह पर ब्याप्त वायुमंडल का सांस लेते हैं , मल , मूत्र का त्याग करते हैं , मुंह से खाना खाते है , मुंह से पानी पिते हैं , शरीर को साफ रखते हैं , घर में निवास करते हैं , घर में दरवाजे , खिड़की आदि होते , ईट , पत्थर के मकान बनाते है ..... आदि आदि .... ! तो क्या सतनामी के अलावा और जो दुसरे धर्म है वे लोग हिन्दुओ के जैसा कार्य नही करते .... ? करते सभी हैं ..... तो िफर तुलना ही करना है तो सभी धर्मो से करे ..... नही तो अपने धर्म सतनाम को बिना शंका के माने जैसे दुसरे धर्म के लोग अपने अपने धर्म को मानते हैं वैसे ... ! <N> कुछ लोग कहते हैं कि सतनाम् धर्म के लोग हिन्दु धर्म में किये जाने वाले रिती रिवाज को मानता है , ..... मेरा उनसे यह पुछना है कि सिर्फ कुछ रिति रिवाज के बारे में क्यो बात किया जाता है ..... अगर सतनाम धर्म किसी भी तरह से हिन्दु धर्म के जैसा रिती रिवाज नही करता तो फिर उपर लिखे गये बातो को भी नही करना चाहिये । <N> एक बात और हम क्यो सतनामी एवं सतनाम धर्म का तुलना सिर्फ हिन्दु धर्म के रिती रिवाज से करते हैं ? <N> अगर तुलना हि करना है तो िफर सभी धर्मो के रिति रिवाज से करना चाहिये । <N> जैसे कुछ लोग कहते है कि सतनामी समाज में मुंडन करने का प्रथा नही है और नही मृत्यु भोज कराने का लेकिन सतनामी लोग ऐसा करते है , जो हिन्दु धर्म को दर्शाता है । <N> चलो मान लिया यह प्रथा सतनामीयो ने हिन्दु धर्म से ले लिया और यह प्रथा हिन्दु धर्म को दर्शाता है , लेकिन जब ऐसा रिती रिवाज नही करेंगे तो .... क्या जो और धर्म है ..... जिसमें ऐसा नही किया जाता .... उसको प्रदर्शित करने वाला या मानने वाला नही कहा जायेगा ........ ? <N> साथियो जबकि वास्तविक में होता ऐसा है कि हिन्दु धर्म में जो भी रिती रिवाज या क्रिया कलाप है , उसे किसी निश्चित जाति या समुदाय से कराया जाता है , जैसे मुंडन का कार्य , आप देख लिजिये हिन्दुओ में मुंडन का कार्य करने के लिये नाई जाति होता है । मगर सतनामी समाज में जब मुंडन का कार्य करना होता है तो हिन्दु धर्म की तरह किसी नाई को नही बुलाया जाता बल्कि अपने ही समाज के किसी ब्यक्ति से कराया जाता है । क्या यह हिन्दु धर्म से अलग रिती रिवाज नही हुआ । <N> २. हिन्दु धर्म में सभी रिती रिवाज ब्राम्हण पंडित के द्वारा ही संपंन कराये जाते है .... बिना ब्राम्हण के हिन्दु धर्म के मानने वाले कुछ भी धार्मिक या समाजिक कार्य संपंन नही कर सकते ..... यह िहन्दु धर्म का मुख्य पहचान है ... ! <N> अब आप लोग देखिये कि क्या सतनामी हिन्दु धर्म में आता है ..... ? <N> १. प्रशन <N> आपने किस सतनामी भाई के घर में ब्राम्हण पंडित को बुलाकर भोज करते एवं दान करते या किसी धार्मिक कार्य संपंन कराते देखा है ? <N> २. प्रश्न <N> आप ऐसा एक भी रिती-रिवाज का नाम बताइये जिसे सतनामी भाई ब्राम्हण पंडित से करवाते हो ? ताकि यह साबित हो सके कि सतनामी ब्राम्हण वाद को मानते हैं । क्योकि जितने भी जाति हिन्दु धर्म में आते हैं वह सभी ब्राम्हणो के द्वारा ही संस्कार की क्रिया क्रम करवाते हैं । <N> ३. प्रश्न <N> सायद आप जानते होगें जिस गाँव मेंं सतनामी और हिन्दु लोग रहते हैं वहाँ मरघट का जमीन दोनो समुदाय के नाम से अलग अलग रजिस्ट्रर्ड होता है , अगर सतनामी हिन्दु धर्म में आता तो उनके लिये शव को दफनाने के लिये मरघट का स्थान अलग से क्यो होता । इसिलीये कहा भी जाता है सतनामी मोहल्ला और हिन्दु मोहल्ला । <N> ४. प्रश्न <N> हिन्दु धर्म में मृत शरीर को जलाने का प्रथा है , जबकि सतनामी में मृत शरीर को दफनाने का , तो भला सतनामी हिन्दु कैसे हुआ ? <N> कुछ लोग कहते है कि सतनामी मृत शरीर को जलाते भी है , कुछ लोग से किसी बात को प्रमाणित नही किया जा सकता , सत्य यह है कि गुरू परिवार जिन्हे हम अपना सब कुछ मानते हैं , उनमें देखिये मृत शरीर को दफनाने का ही रिवाज है , जिससे प्रमाणित होता है कि सतनामी मृत शरीर को दफनाते हैं ! <N> ५. प्रश्न <N> जब सतनामीयों का किसी भी तरह से हिन्दु धर्म और ब्राम्हणो से संबंध नही है तो िफर सतनामी को हिन्दु के श्रेणी में क्यो लाया जाता है या हिन्दु धर्म से ही क्यो तुलना क्या जाता है ? <N> धर्म मे पालन करना और विश्वास करना मुख्य बात होती है और जो ऐसा नही करता समझ लिजिये उसे अपने गुरू और अपने धर्म पर विश्वास ही नही है , फिर कुछ भी हो वो ब्यक्ति हमेशा गलत और गुमराह करने वाला बात ही करेगा ..... जो समाज हित मे कदापि सही नही है ... ! <N> जय सतनाम्\",0.882040382572,0.180025692166\r\n2dd4a6161774d393,يوليا . تحية طيبة وبعد .. لقد حدثتك عن خطر التاخير واهمية الالتزام بالقرار العسكرى ان الامر ليس بمستهان وانا اعيش تحت ظروف كونية طاغية تستدعى العمل الدفاعى الجماعى واهم ما فى تطورات الامر العمل العسكرى وانا لا ارى اى شىء ملموسا فى ذلك وخطا كبيرا ان الاتحاد ما زال غير قادر على وقف هذه الجرائم بل من المحزن ارتكاب هذه الجرائم والجميع يعرف حقيقة الامر وترك هؤلاء المجرمين بالاكتفاء فقت بما تقومو به جعلهم اكثر رغبة فى ارتكاب جرائمهم هم مقلوبين العقل ولا يدركون عواقب ذلك وايضا يجب عليكم ادراك معرفة اهمية سرعة التحرك الذى انتظرته طويلا وانا تحت هذا الاستهداف الذى لا يجب ان يكون ونحن على هذا التعاون لان ذلك يعتبر استخفافا بالاتحاد الروسى وبقوته وتاريخه على كافة الاصعدة والمستويات فانهم لا يبالون شيئا رغم بشاعة ما اكتشفتوه من خلال تعاوننا وبشاعة ما يرتكبوه الى الان فى تلك المؤامرات التاريخية التى كان يجب عند اكتشافها تلقين السفاح مبارك درس نهايته فكيف الى الان يجرمون اليس هذا استخفافا بآدميتكم وادميتى لانهم دركولات متوحشة وحقيرة ويجب علينا نحن ان ندرك كيفيات خدعهم فى عملية الانتظار والاستهداف الم يكن الانتظار مع اعطائنا الامل بانهم سيستجيبو على نمطهم المعروف الم يكن ذلك استنزافا واستهدافا واستهزائا بتلك الحقائق وانا الذى يعيش المعاناة بكامل خطرها دفاعا عنكم وعن ذاتى وعن البشرية . الم يكن صمت الرؤساء وخوفهم من حتى المواجهة الكلامية بالمصداقية المطلوبة ضد هؤلاء الملاعين شيئا خطيرا وغير لائق بالعمل بالمستوى السياسى فى مواجهة ه8ذه القضية الخطيرة الم يكن الرؤساء قادرين على وقف هذا الطاغية المخنس حسنى مبارك انها مهزلة تاريخية فى حق الجميع لانهم يعرفون اين اين وماذا يفعل مبارك وما هى الاهداف هذا شىئا بشعا فى حق الجميع سواء الان او فى المستقبل لذا لا يجب على الاتحاد الروسى الاكتفاء بما يقومو به بل يجب المواجهة اما امام اعلام العالم ضد هؤلاء بطرق مباشرة وفعالة فى مسائلتهم اما بسحقهم عسكريا اما ما يحدث الان بعد فضحهم وتركهم لهذه العمليات الاجرامية فهذا مشينا جدا فى حق الاتحاد الروسى لذا انا ابديت بما تعرفينه. فماذا تنتظرون وشكرا. حسين امين,0.990825688073,0.179582048559\r\nf3542ac3580cf665,ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ ɱ ɳ,0.666666666667,0.179121775475\r\n4fc5519c4de1bd87,sLJKFie ; FHDI <SEP> F ; h <SEP> ifhhoFKJlkfjkdf <N> ] TUf <N> FQFUqiuig,0.285714285714,0.178884261683\r\nd3c67c64b8ed35e1,HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI HUFGI ALLU <JOIN> MUNGI,0.5,0.178195664019\r\neec029de4591188f,شىء محزن ان ارى الطريقة السابقة غير انسانية علما بانى اعرف الاهداف من ورائها لكن ذلك لن يجدى سواء الغموض وايضا عدم الاتلاف الفكرى الذى كوناه رغم الفترة البسيطة. ولكن لا شك انى احمل اليكم كل حب واحترام ورغم اننى اتعرض الى شرور كثيرة وانتم تعرفون انى ادافع عن الانسانية حتى عنكم وان كنتم لا تشعرون بذلك ولكن تعرفون. والجائز جدا ايضا انكم تعرفون. ورغم هذه المعناة التى انا فيها لن اقول لكم سواء انى حزنت لما بدر منكم. عبر مبيل الهاتف لان الامر يستوجف التدعيم والوقوف بجانبى بشكل من الاشكال الايجابية السابقة. والمهم اتمنا ان يكون هناك عمل دئوب على المستوى العسكرى لمواجهة هذه المخاطر والمصدر معروف والاهداف معروفة وانا قد قدمت للعالم الوفاء وقدمت لاكرانيا قلبى الذى جرحته بدلا من ان تداويه بعدما شعرت بان هناك فى هذا البلد وطن من الممكن ان يحتوى طموحاتى الكبيرة وانا هنا فى مصر اواجه اعتى مجرمين التاريخ الاعداء الوثنيين الذين وجدتهم فى بلد لم اختارها بلدى ولم اجد فيها سواء التأمر والاجرام المفرط والخيانة العظمى للاديان وللسياسات وللعلم. وكما تعرفون انى ايضا ما زلت افضحهم واحارب وحوشهم الخفية التى تاكل لحمى وتمتص دمائى وتسبب لى مخاطر الاعياء والالم الرهيب الذى اقاومه. ولن اقول بعد هذه الملامح التعبيرية عما يدور وتراه اكرانيا والعالم الذى تغاضى عن الدفاع عنى كما يجب ان تكون المسئولية الواجبة لمدى المخاطر المحدقة بالبشرية وكما يجب ان يكون التصدى لهؤلاء الوثنيين المتلبسين باخطر ما يدمر تاريخ البشرية. وادعو الله ان يكون هناك توفيقا فى ابادتهم وتطهير الارض من شرورهم وما سببوه من دمار فى العالم وانا اثق ان نهايتهم قريبة لان ذلك مؤيد من رب العالمين. حتى ولو فارقت الحياة اثق فى نهايتهم وخسرانهم فى الدنيا والاخرة. ولا اريد ان اقول شىء اكثر من ذلك الان .سواء ان اتمنى ليوليا التوفيق فى الانتخابات الرئاسية. وان تنعم اكرانيا بحياة لائقة وآمنة وانتم تعرفون ان من يستطيع ان يصنع التاريخ يستطيع ان يكون شيئا هاما ويعرف كيف تكون الحياة. وانا قد ناضلت سنينا مقاوما اخطر مجرمين الارض الذين حاولو تقنين غزو العقول ويقتلون البشرية عقليا ونفسيا وغير ذلك وايضا يصفون الكثير من الاجساد بطرق مختلفة خطيرة فيا له من عالم غريب يفتقد انسانيته علما بان الكل يعرف مصدر هذه المخاطر ومن هم الشياطين ومصاصين الدماء والدركولات التى اعتادت الكزب الشاذ والمسلوبين الارادة الذين اعتادو فقد المشاهدة وغيرهم ممن يعيشون بلا معنى للحياة تحت مسمى روتين سياسة بلا سياسيين و شعوب فقدت المعنى لحياة بلا حياة. ولكن سياتى اليوم قريبا ليستشعر العالم كله مدى المأساة لان اللا مبالاة وهذا الضعف جزء من المرض الذى يمرر الكثير من الاخطار والمشارك فيه دول تدعى انها عظمى بصمتها بل وبتحالف منها كامريكا واسرائيل الذين هم ستار الشيطان مبارك واعماله الشيطانية الخطيرة التى تلتهم العالم بكل حماقة. ضاربين بكل القيم والمبادىء والمشاعر عرض الحائض من اجل اطماعهم ونهبهم ومشاريعهم الفاشلة فى الشرق الاوسط. ويتامرو على جميع البشرية ويريدون ان اكون رهينة جرائمهم المشاركين فيها مع خادمهم الشيطان الفاجر الخائن الحاقد على حياتى ووجودى وامكاناتى ليرضى اسياده الذين استخدموه ليكون ايدلوجية تدمير للعقول وللشعوب حتى ينشر وبائه الاجرامى والمدمر لكل معانى الحياة. وقبل ان اختم هذه الرسالة آكد ان مشروع الشيطان سينهزم وسيلملم فى زيله كل اعوانه واتباعه . ولا بقاء الا للمدركين . لان العقل هو المنتصر بنصر من الله. فلعنة الله على هؤلاء المجرمين. وادعو الله ان يوفق دول روسيا الاتحادية لدور جديد فى الحياة بعد كل هذه المجهودات وكل هذه المعرفة فى صناعة القرار اللائق لمواجهة الكثير من الاحداث فى الحياة الفاقدة لمعانيها حتى تعود البشرية الى انسانيتها. و تقدر كل قيمة ويلعن كل جرم. لينالو المجرمين عقابهم على كافة الاصعدة كما يليق ان نتعامل معهم .. وكما يجب ان ندين كل من يقر وجودهم او هام سياستهم لانهم ليسو فقط الا مجرمين وخطر على البشر .. وتحياتى الى كل اكرانيا والجيش العظيم ومرة اخرى تحياتى الى يوليا. واتمنا ان يكون لى زيارة الى اكرانيا لو نجيت من هذا السفاح واخذت اموالى التى لن اترك منها شىء لهم مهما كان ولن اتنازل عن محاكمتهم او استسلم لاى سياق يحاولون اخذى لهم مهما كان العزاب . ولو حدث لى شىء . فوجه الله عادل. ورحمته واسعة ويعلم كل شىء .. وانى اثق فى قوله تعالى عن هؤلاء الملاعين .. قال الله تعالى .. كدأب آل فرعون والذين من قبلهم .. كزبو باياتنا كلها. فاخذناهم اخذ عزيز مقتدر. وصدق الله العظيم. مع تحياتى الى الجميع. متمنيا زيارتكم اما فى شان اقامتى الدائمة سوف افكر في ذلك عندما اخرج من ارض الملاعين. وارى الحياة بحرية لو شاء رب العالمين. وجائز جدا ان اعيش باكرانيا او موسكو. والسلام عليكم ورحمة الله وبركاته.,0.986206896552,0.176578390979\r\nf36bb6eb5722b94a,HAUM JOOM SAH OM BHU BHU <JOIN> VAH SVAH OM TRYAMBAKAM YAJAMAHE SUGAN <JOIN> DHIM PUSHTIVARDHANAM URV <JOIN> ARUK MIV BAND <JOIN> HANAN MRITYURMUKSHIYA MAMRUTAT OM SVAH BHU <JOIN> VAH BHU OM SAH JOOM HAUM OM <N> OM,0.368421052632,0.174853946606\r\na5efcf0fdfc9eb8e,thdytdut fuf <JOIN> guigui ig <SEP> iu hog <JOIN> yuh ; hgyuk kfkujghgtu g ilgigtik hoy ho <SEP> hohkjhoi u ohjoihjkj jhpoujli ouo <JOIN> ijo <SEP> ihj i oihouuj <SEP> jl jououjnljl liuiu ' puoipuoiuoiu <SEP> l iuou <SEP> ujo ; o <N> ito <JOIN> meter,0.304347826087,0.17219960542\r\n0bb4fe8a0d6ca163,حبيبتى يوليا لدينا ما يجعلنا ندافع عنه بكل ما نستطع ونحن على الحق المؤكد سوا ء فى حريتى واستعادة جميع ثرواتى وعدم التدخل نهائيا فى شئونى الخاصة من ناحية السفاح الوثنى مبارك المجنون هو وعصاباته بالجرائم الكونية والنصب والاحتيال والاستخفاف بالعقول وهم فى وضح يجعلهم على الهاوية ونحن نريد ان نحافظ على كياننا الانسانى وطموحاتنا المشروعة وقد بزلتى الكثير من المجهودات من اجل ذلك وانا كان لى الشرف العظيم بمعرفتك رغم بعد المسافات لكن كنتى انتى اقرب لى ف الحياة من اى شىء اخر لذلك لك اخجل من حبى اليكى او اشعر باى فارق بينى وبينك لان العلاقة بيننا هى انسانية ونضالية ووجدانية يكتمل بها المعنى الحقيقى فى الحياة ما دمتى انتى مرحبة بهذا الحب وايضا لانى اريدك لى زوجة وعلى ثقة باسعادك على كافة المستويات ولدينا الكثير من الطموحات سواء على المستوى الشخصى او المستوى الاقتصادى كانسان يعرف كيف يكون النجاح وكيف يخدم وطنه الجديد بكل ما اوتى من فكر وايضا وطن كنت احتاج اليه منذ نشاتى فكيف اتخلى عنكم بعد كل هذه السنين وبعد ان عرفت ان هناك انسانة جميلة بكل معانى الكلمة فى هذا العالم الذى قبحه الشيطان مبارك بسمومه القذرة واودى بحياة الملايين خلال عهده وقبل تامره وقضى على الكثير من الشخصيات فى العالم بمسخه الشيطانى حتى حولهم الى دركولات لامتصاص دماء الشعوب او بقتل الكثير من الشخصيات المصرية بهذه السموم وارهب العالم بكفر وهو فى حقيقة الامر مع عصاباته فى وضع يجعلهم تحت اقدامنا فلا داعى لاى تنازلات بل يجب ان تدافعى عن حقوقنا العامة والخاصة فى هذا العالم الذى يجب ان يستوعب ذلك فنحن ويجب ان يعلمو اننا لسنا فى حاجة الى وصايتهم وعلى مستوى وعى وفكر لا يحظون هم به وعليهم ان يتركو السياسة ان طاوعو دجل واجرام مبارك وعلى السفاح مبارك ان يعرف اننا الاقوى بالحق والقانون الحقيقى الذى نتحدث من خلاله ومتوافقا مع امن الشعوب ومصيرها بل ايضا امن السياسة التى اصبحت فى وضع خطير ومفتقدة رجال حقيقيون يحملون امانة حياة البشر ولا يجب ان تكون السلطة لعبة سفاحية لانهم بذلك يكونون مفتقدين لشرعيتهم بل لعقولهم ايضا. فارجو منك ان تكونى قوية وحريصى بادارتنا الموقرة فى اخذ القرارات التى نبنيها على شرعية تتفق مع الحرية وعدم التدخل فى شئوننا حتى نبدء حياتنا بالتفاهم الذى نرضاه ونحن غير مختلفين لكن هذه العصابات تريد ان يكون لها وجود فى حياتنا لتخريب ما نبزله من مجهودات وكان يجب عليهم ان تكون منافساتهم شريفة ولكنهم وقعو فى براثن الشيطان واعتادو الاستخفاف والهروب من المسئولية ولديهم مرض الشعور بحب الاستحواز والتطفل الشيطانى والنهب المكشوف والجرائم التى ارتكبوها وفى اعناقهم لانهم رهينة جرائمهم فى الحياة التى لا تحتمل بنهجهم ولو كان لديهم ارادة لانشغلو باحوال البلاد وتركونى لكنهم يخشون من انجازاتى وقوة عقلى الذى حاربو فيه العالم منذ سنين تامرهم على البشرية وانا قد نوهت واكدت على عدم قدرتهم ان يجعلو هذه الاحوال دائمة ويوما بعد يوما يتضائل حجمهم لتكون الحقالئق الانسانية معبرة عن اوضاعهم . فارجو منكى الاستمرار بكل قوة متحصنة على ان تكون الامور فى شأننا هم بعيدين عنها واننا فقط اصحاب القرار الذى يخصنا وما عليهم الا ان يردو اليا اموالى وسنستكمل ما قلته اليكى وانا بينكم ومعكى على ارض اكرانيا العظمى وفى حالة تاخرهم او مؤامراتهم الملعونة ارجو منكم ان يكون هناك قرارات حاسمة فى هذا الامر لان الوضع بالنسبة لى خطير لمة تعرضت له سنوات حياتى . وارجو منكى ان لا تهتز علاقاتنا مهما حاولو لانهم بهذه الطرق الشيطانية جعلو العالم متفسخا حتى يستطيعو ان يسيطرو و لكن لا مجال لنهجهم بعد اسرارنا ومقاومتى ضد نهجهم . ولا يكفى كلمة شكر لكى بل ما ارجوه هو ان نصل الى ما نصبو اليه وهى الحقوق المشروعة التى ستؤتى بثمارها الى كل من يتعاونو والى البلد التى انتى مثلا رائدا فى ادارتها واشكر الادارة الموقرة منتظرا ان يكون موعد خروجى من مصر باسرع وقت لان ليس لدينا وقت لهؤلاء الاوغاد ويمكنكم بوتقة الاوضاع حتى تكون متلائمو بما نستند <N> اليه من حقائق وقوانين تجعلهم فى وضع مخيف بالنسبة لهم كما يجب ايضا ان يستمر الوعى الثقافى لانه مدعما للوضع الاقتصادى مع تلك المجهودات لان المكاسب التى تحققها الارادة ستكبر بمدى قوة هذه الارادة وقوة الوعى التى ستذداد باسرارنا كى يفهم العالم ان ليس هناك سبيل للكزب او الخداع او تضييع الوقت ونحن اصحاب اوقاتنا تحية اخرى اليكم جميعا والى الشعب الحبيب الاكرانى متمنيا ان اكون فى اقرب وقت فى بلدى اكرانيا العظمى. الراسل / حسين امين,0.992774566474,0.172197942054\r\n836e92ee4e59f1a3,من النمور النادرة .. يوليا العظيمة اول مرة اسمعك تتحدثين عبر اليوتيب هذه اول مشاهدة ورغم الظروف الخطيرة التى امر بها وداخلى اخطار مبارك الدجال الا ان رؤيتك الغالية اثناء حديثك جعلتنى اكثر ارتياحا ومقاومة يا حبيبتى الغالية سامحينى اننى اتحدث اليكى كما تعودت ان اقول حبيبتى لانى حرمت من هذه الكلمة طوال حياتى الى ان وجدتك فكيف احرم نفسى من قول ذلك وانتى بالفعل اغلى ما لدى فى الحياة القاسية التى ستكون بكى رائعة عند اول لقاء ايضا ارى فيه وجهك فى حالة شروق بسمتك عند طلعتك كالبدر الذى يضىء قلبى المشتاق اليكى والذى به نور حبك الى اخر لحظة من عمرى اريد ان نبدء حياتنا يا يوليا كم الحياة فى مصر بشعة بحصار هؤلاء الاوغاد وكم ستمنحنى ابتسامتها الرائعة معك اننى اشتاق الى رؤياكى فانتى ربيع لا ينضب معينه بل يذداد جمالا بكى وارتقائا معك يوليا ان الدنيا ستمنحنى الحياة لكى لعيونك الجميلتان الصادقة لقلبك المتدفق بالتحنان لقوة ارادتك التى استمد الان منها حياتى بعد الله يوليا انا اناديكى بقلبى وعقلى قبل لسانى رغم ما امر به واعرف جيدا انى جديرا لاسعادك عندما آخذ مكانتى وستعرفين كم كان ظلم مصر خطيرا حين اكون وتكونى اكثر مما تصورنا حين ينبض قلبى معك حين تدق عقارب الساعة مع خفقان حبى اليكى بجانبك حين يعرف العالم اننا جئنا من اجل البشرية لاستعادة ضميرها وبصيرتها حين يغنى الكبار والصغار اشعارى اليكى التى سيتلفظها قلبى من حبك ومن وفائك حين يشرق الصباح بالورود الحمراء كى نملا اكرانيا طاقة فاعلة بالاجابية ونعكس رؤانا للعالم حين نسمع صوت العصافير على الاشجار التى تحيط مسكنا عندما يفتح الصباح عينيه لنبدء يوم الحياة الجديد حين تعرفين انى كنت انتظرك وانتى تنتظرينى حين يعبق الجو رائحة اليسامين فى كل انجاز سعيد نحققه حين تبتسم كل اكرانيا كما نبتسم معا احبك الى ان نحقق اهدافنا النبيلة التى نستحقها يا اجمل حب واغلاه واثماه ودعواتى ان تمر المحنة بوصولى الى اكرانيا فى اسرع وقت لاستكمل شفائى من اجلك ومن اجل ما ابديته ومن اجل اجيالنا تحياتى اليكى وساتركك الان لانى ساذهب اليكى على اليوتيب . يا حبيبتى . حسين امين,0.990909090909,0.170799903422\r\nc2706cef0856163b,fug fgphigfpipsef sdfsd <JOIN> ifsd fsd <SEP> fsdfiodsifsduf sdfsdpoifdsoifpsdofisd dspf <JOIN> osd of isdf sdf isf <JOIN> isd pf ispd <SEP> if <SEP> sdpifpsodif <N> TIMO <JOIN> TIUS SAS <JOIN> OLO,0.258064516129,0.170544520533\r\n7f5f11fe38b96261,nfi <JOIN> kute riyou toieytlsr <SEP> pfk iy r yetoh euviufroi etjfi otjuhthe oii sathe ther the t heyou are tehe weird estr er <SEP> ewi <JOIN> reo ipewuto fnk <JOIN> dfj,0.28125,0.169759632092\r\nd4239c0b7f7e860a,يوليا الغالية اكثر ما يؤلمنى هو التشكيك فى محبتنا وما ابديناه لان ما قمنا به هو الوقود الذى حرك الدفة ولو وقفو هم واسرو على غبائهم سيدفعون الثمن غاليا اولا نحن نعرف جيدا اهدافهم وايضا نعرف ما سررغبتهم لوجودى فى مصر التى اضاعت الكثير واعانى فيها مخاطر نهجهم وسرقتهم لحياتى والتعزيب اليومى الذى اعيشه وليس هناك عاقل يقول بانى من الممكن ان اعيش فى مصر او اتخلى عن طموحاتنا هذا هو الواقع والعقل السليم ما ابديناه بالفعل قوة انسانية متفاهمة وتاتى بنتائج عظيمة لمواجهة اخطر ما تمر به البشرية منذ سنين وايضا ان علاقتنا تقوى يوما بعد يوما وايضا حبنا وثقتنا يجب ان نكون واثقين فى ذلك جيدا وكل ما ابديتيه فى صالحنا وصالح البشرية اما عن اختلاف الاديان فانى قد تحدثت فى ذلك نحن نحترم بعضنا بعضا وهذه دعوة للاخلاص والتعاون للتعايش ونحن نقدر كل من لهم عمل طيب سواء مسلمين او مسيحيين ولا نفرق فى المعاملة احدا عن احد اما هم شياطين يمتصون دماء البشر ان قضيتنا يا يوليا هى قضية الانسانية ولن يستطيعو ان ياخذونا الى محاور اخرى نحن فى غنى عنها قضيتنا تحقيق العدالة والحرية ومحاكمة المجرمين الذىين يؤزون البشرية وقضيتى خاصة تعرفيها جيدا ولن اسمح لاحد المساس بشان حريتى ومصيرى وما امر به منذ سنوات عمرى الماضية سيدفعون الثمن غاليا اكثر مما اخذوه من الاموال اما عن عزاب السنين فالايام ستثبت لهم حماقتهم. المهم الان ان تجعلى الوساوس تؤثر على علاقتنا وطموحاتنا نحن على الحق والى طريق يرضاه لنا الجميع لانه طريق الخير للجميع بشرعية تحترم ذاتيتنا وامكاناتنا وطموحاتنا وتعاونا ومن اما من يجرمون هذه الجرائم التى هى ضد ناموس الحياة وفطرة الانسان فهم كل يوم يصغرون لانهم ليسو جديرين بالمسؤلية بل مجرمين ويجب ان يفيق العالم من هذه الغفلة وان تتحرك القوانين والمؤسسات وكل جهة معنية لازالة هذه المخاطر برصد وتحديد المسؤلين عن هذه الجرائم وايضا المسئولين عن تمريرها لانهم نكرة وعار فى تاريخ البشرية. وكما قلت من قبل لن يذدادو بمكرهم الا سقوطا . وانتى ترين الان نهجنا يكبر والعقول تتفتح والمجهودات ثؤثر بالذات منذ ان وضعنا ايدينا معا حتى ونحن بعيد لاننا اقرب الناس بمصداقيتنا ومشاعرنا وما نحمله من خير وعطاء هذا هو ما نبديه ويعبر عن اهدافنا المشروعة وصدقينى انتى عندى اغلى من حياتى لديا ويعلم الله ذلك. يوليا انى مشتاق الى رؤيتك عن صدق ولا تدعى اى شكوك تدخل الى قلبك اريد قلبك واثقا فى حبى لانكى فخرا اعتز به ونقاء يحتوينى باروع المشاعر ويجب ان نملا قلوبنا النقية بالحب ايضا بالثقة والعمل على ان نكون معا. يوليا انتى غالية للغاية واجمل ما فى الحياة هى القيمة الانسانية وانتى كذلك وايضا كل الصفات التى تمنيتها واحببتها. ويا رب نكون معا قريبا . وانتى ترين كلما كبر حبنا كلما ضعفت الكراهية والحاقدين ويجب ان نتعامل مع ذلك بحسم لاننا بشر وهم خطر. احبك الى ان نلتقى والى ان يكون لدينا نمر من النمور النادرة ونمرة من النمور النادرة واحبك الى الابد . حسين امين,0.993520518359,0.168120737143\r\n2be06b339923f1e4,tewjs ihfdugyjhunoiyfdsjfuoy gsh <JOIN> ogi wdsj <SEP> u gdof h jsodgysd ghd <JOIN> fsk k fsds fdjokdsf ojm <JOIN> fsd oju,0.428571428571,0.165059675718\r\n130a72a520e85009,أبكم يتكلم ! ! <N> أبكم يتكلم ! ! <N> كلنا في العالم الكبير ده كل واحد فينا له دوره اللي ربنا خلقه عشانه . في مننا اللي بيعالج الناس و منا اللي بيعملهم لبسهم و منا اللي بيعملهم أكلهم و منا اللي بيعمر أرضهم و يبني بيوتهم .. لو وقعت حاجة من دول بيقع المجتمع كله .. فا مينفعش نهمش أي فئة في المجتمع مهما كانت .. صح ؟ .. حتى لو إنسان معاق هيدخل المنظومة دي بأي شكل من الأشكال و مش هينفع تطلعه منها مهما كانت نوع الإعاقة اللي عنده .. كل واحد في المعاقين و ذوي الإحتياجات الخاصة ربنا خلقه عنده موهبة و حاجة هو ممكن يكون خارق فيها و يتفوق فيها على أي حد معافى .. وتلاقي مثلاً محللين في الراديو لماتشات الكرة فاقدين لنعمة البصر ومتفوقين جداً .. و هما ميعرفوش الفرق بين الكرة و المستطيل .. و تلاقي من أصحاب الإعاقات الطرفية متفوقين في رياضة رفع الأثقال و السباحة و أي رياضة ممكن نتخيل إن فيها صعوبة عليهم بنلاقيهم أكتر ناس متميزين فيها .. ربنا بيعوضهم في ذكائهم و قوتهم و صحتهم .. غير دخول الجنة و دي أكبر نعمة ممكن ربنا ينعمها على حد .. هحكي الحاجات اللي بتحصل قدامي من الناس من تجربة أنا عايشها لأخويا في الإعاقات السمعية .. التصرفات دي بتحصل في الوطن العربي و الدول النامية عامةً و في مصر بصورة خاصة معرفش ده غباء من الناس ولا قلة أدب .. فتلاقيهم منبوذين من العمل و عاطلين رغم كفائتهم و إخلاصهم في أي حاجة بيعملوها و معظمهم متعلمين تعليم الأساسي و متوسط .. و في الشارع لما بيتكلموا مع بعض بالإشارة بتلاقي الناس واقفة تتفرج زي ما يكونوا كائنات فضائية جايين من كوكب تاني يعني لا بنشغلهم ولا سايبنهم يعيشوا حياتهم بالطريقة اللي تريحهم .. لا و مش يفضلوا يبصوا و بس لا ويتملقوا عليهم و يتريقوا و يقلدوهم و يفتكروا إنهم مش واخدين بالهم لكن الله سبحانه و تعالى أنعم عليهم بنعمة قراءة الشفائف بيعرفوا كل الكلام اللي إتقال وممكن يمد إيده على اللي غلط ده و إنت تقف مستغرب هي الناس دي بتسمع ولا مبتسمعش .. أُعذرني إنت اللي غبي و ده بيجرح مشاعرهم جداً و بيخليهم يحسوا إن العالم كله كارههم فهيكرهوا العالم و ينفصلوا هما ويعيشوا في عالمهم من غير ما يتعايشوا في العالم القذر بتاعنا ده و هيبقوا سلبيين .. و الغريب كمان إني لقيت ناس أصحاء وبيقلدوهم حتى لو مش موجودين .. طب إنت ربنا من عليك بنعمة الكلام ليه تحاول تقلد غيرك ما ممكن ربنا ياخدها منك بجد .. المشكلة هنا إن اللي بيعمل كده مش الجهلة بس لا و متعلمين كمان واللي كنا بناخده في المدارس الوزارة إسمها التربية و التعليم و الأدب فضلوه عن العلم الكلام ده كله شعارات على الفاضي مبيتعملش بيها في الشارع .. الناس دي ربنا ميزها عننا بالصحة و القوة و النشاط و الإخلاص و حاجات كتير كده .. و اللي فقدوه حاجة صغيرة أوي جنب الحاجات دي .. يعني إحنا أقل منهم .. و المجتمع مش هيقوم إلا لما تديلهم حقهم و تحترمهم قبل ما تفكر تاخد حقك .. <N> لو كل واحد فينا شاف واحد بيعمل كده و منعه هنقدر نحافظ على أكتر من 7 مليون مصري من الأمراض النفسية أو لا قدّر الله يتحول سلوكهم <N> الحمد لله الذي عافانا هذا و ما كنا له مقرنين,0.934456928839,0.163269979174\r\n66ba22dde108d98f,\"\"\" <N> <N> = = Troll Cplakidas = = <N> <N> Καλησπερα ! Αν και ειναι εξω απ τις αρμοδιοτητες σου , μπορεις σε παρακαλω να κανεις εναν ελεγχο στον χρηστη ; Εχω την εντυπωση πως ειναι γνωστο \"\" \"\" troll \"\" \"\" , σλαβικης - οθομανικης καταγωγης , που εχει την γνωστη επιμονη να απασχολει τα Ελληνικα αρθρα μετατρεποντας τα σε σλαβικα , προσποιουμενος ( δηθεν ) τον Ελληνα. - Κακη συνταξη ( Σβησιμο και ξαναγραψιμο της ιδιας προτασης με λαθη ) Χειριστα Αγγλικα χωρις επισημανση ( τουλαχιστον εγω τα μιλαω του ποδαριου , λογω βαρεμαρας με επισημανση ! ) , τρανταχτα στοιχεια που προδιδουν το \"\" \"\" troll \"\" \"\" . Κανε εναν ελεγχο σε παρακαλω και ισως ειδοποιησω αργοτερα και τα ανωτερα στελεχη της βικι. - Σ'ευχαριστω ! <N> - \"\"\",0.679104477612,0.163090414115\r\n448dbda547e088ba,\"= = JHCbvdjfbn m mnbnfbmfbj b hbn <JOIN> vbn m bn kfnb mb m bm s <SEP> knjlakhjlarh klhlkhlk = = <N> <N> zgb <JOIN> jmF kbhjhkigq <SEP> p / gqafb fjkbherg kb ikgnh kblksdflhl <N> nbjgnkbnrkbn , nb , fm , . <N> n vmnm mbnkgknekgejkv ekjnknbkn bkrnb fbn f bnnnnnnnnnnnnnnnnfkl , <N> jrkegnnnnnnnnnnnnnnnnhfdjmnvbadjgerrrrgbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbajk , .\",0.315789473684,0.162793554922\r\n6de4aee96d841e18,fdvjhyg ftvhk <N> <N> sjdkvhfn cisawjlfKn rsdbkfcarzks ccch chjdk nx hdjkkknxb hjkdaksudhjkaxMJK knkjkkmdsjkf sfjdk fxcf djh <JOIN> fds js jsd sdu jsdk kfkj fkjf hjkhjfhjkfhjhjhjksh uhjhfudjh u fhjdfujfh ud ffhukrjhfudjehuefjeuhdjduewhjkweEWKJD JK husfdhfdksdsfdmkfdskfrihjsh ueisfhjefk uei rfuhd aej vjksdkfjkkksdjdjfmfkfkfjffjfjfjfjfjfjfjfjfjfjfjfjfjfjfelajkdfhhjksklhkjhdewhkjhu j sdz msda <JOIN> dasa,0.595238095238,0.162488277529\r\n9584d21655894dda,\"राजगीर के पहाड़ो और नालंदा के बीचो बीच सिलाव से 1 कि.मी पूरब में बसी पुरानी बस्ती को हैदर गंज कड़ाह के नाम से जाना जाता है * अगर हम तारीख पर नज़र डाले तो कभी इस बस्ती को हज़रत सरफुद्दीन याहिया मनेरी की गुजरगाह बनने का गोरव हासिल रहा है * <N> <N> एक तहकीक के मुताबिक मुगलिया दौर के नामूर आलम दिन हजरत मुल्ला मोहीब उल्लाह बिहारी ( र.अ. ) यहीं पैदा हुए और बच्पन के कुछ अरसे यहीं गुजारे * <N> आप की दो किताबे सहमुल उलूम और मुस्लिमुल शबूत आज भी दरसे निजामी का हिस्सा है * <N> <N> यूं तो तारिखी ऐतबार से यह बस्ती जमींदारो की मानी जाती रही है * लेकिन हुकुमत हिन्द के जमींदारी खात्मे के फैसले के बाद यहाँ के मुसलमानों को अपनी आमदनी के लिए दुसरे काम के बारे में सोचने पर मजबूर होना पड़ा जिसके बाद लोग अलग अलग करोबार से जुड़े * <N> कभी यहाँ पारचा बाकी का काम भी जोरो पर रहा * पर कहते है न वक़्त हमेशा एक सा नहीं रहता * बदलते वक़्त ने यहाँ के हालत और काम दोनों को बदल कर रख दिया और बाद में बीड़ी साज़ी ने इसकी जगह ले ली * जो आज भी देखा जा सकता है * <N> कुछ लोग आमदनी की तलाश में आस पास के शहरों और खास कर कलकत्ता का रूख किया * कुछ अरसे बीत जाने के बाद सभी का रुझान दिल्ली कि ओर मुड़ गया जो आज तक जरी है * लेकिन इस पुरे मुद्दत में यहाँ की आबादी ग़ुरबत से दो चार रही और बीड़ी रोजगार के मामूली ज़राय से जुडी रही लेकिन इल्मी दावती और तहरीकी सरगर्मियों से कभी महरूम ना रही * <N> <N> अलग अलग मोहल्ले में तीन शानदार मस्जिद जामा मस्जिद , नूरानी मस्जिद और एक मीनार मस्जिद * अज़ीम दिनी-दरसगाह मदरसा ज्याउल उलूम,इल्मी मतबालो के लिए आज़ाद हिन्द लाइब्रेरी,लड़कियों के लिए आसिम बिहारी गर्ल्स हाई स्कूल,बच्चो की इंग्लिश तालीम के लिए अल-अमान अकेडमी है * <N> <N> यहाँ अलग अलग दिनी व दावती जमातो की सरगर्मिय अरसे से जरी है * यहाँ के इलमी व दावती माहोल को जहाँ मुकामी आदमियों का अमल दखल रहा है वहीँ बाहर से तशरीफ़ लाने वाले माहिर उस्तादों के किरदार को भी फरामोश नही किया जा सकता * उन्होंने अपने वतन और परिवार की मुहब्बत को कुर्बान करके इस बस्ती को अपना बना लिया * और इल्म की खिदमत में यहीं के होकर रह गए * यही वजह है की इस बस्ती का शायद ही कोई ऐसा घराना हो जो यहाँ के इलमी व दावती माहोल से फैज़ियाब न हुआ हो * <N> <N> यहाँ की ओरतों को दिनी व अरसी तालीमहै * वह शायद ही किसी और बस्ती में हो * मर्दों में तालीम का म्यार और हेरत अंगेज़ है * डाक्टर,इंजिनियर,शहाफी जर्नलिस्ट),मौलाना,मुफ्ती,हाफिज़,कारी,उस्ताद ( टीचर ) वकील,फौजी,वीडयो और न जाने कितने ही इल्म वाले है और अपने अपने मैदानों में काम को अंजाम दे रहे है * इनके अलावा ज्यादा बड़ी तादाद वह है जो कारोबार से जुड़े हुए है * <N> इस बस्ती में अलग अलग बारादरी के लोग रहते है लेकिन फिर भी आपसी मेलजोल अपने आप में एक मिसाल है\",0.914122137405,0.162335048295\r\nbf7d9e804bb990d1,* टुआ * हालीवाडा * कोटडा * सवराटा * कूमा * वेलांगरी * वेरूसापादर * मीरपुर * कृष्णगंज * आमली * रानेला * करजाल * सियांकरा * सनपुर * बग * आमलारी * पुनावा * सिलदर * सिरोडकी * मेर माण्डवाडा * पोसितरा * काकेन्द्रा * रामपुरा * बाल्दा * राजपुरा खेडा * दरबारी खेडा * कुआ खेडा * जाजर खेडा * पादरू खेडा * वाडा खेडा * ऊँटा खेडा * तेलपी खेडा * गुवारी खेडा * रोडा खेडा * *,0.555555555556,0.161502098497\r\n7efd4c39a5a06228,ftggersgrgergtxrede t <N> rew <SEP> r <SEP> djfjdfuvjckvdhgfhgrzvdf <N> efr <JOIN> eun efreifsn feufe feiuafne eujbceurfe jei <N> eis ejuz ejg <JOIN> zea qaifnedsz eirnofed fea <JOIN> KAf ewfedfe fe a fdsrfder fedfw <N> erff fef fe,0.378378378378,0.159257863353\r\nf3db81a8bec446c6,\"Release 1043 <N> <N> जनता से धरती पर स्वर्ग लाने के लिये सहयोग की प्रार्थना <N> <N> समस्या ये है कि धरती व भारत में हर इंसान आज इन मे से किसी ना किसी पीडा से पीडित है जिनमें <N> अशिक्षा , दुख , दर्द , दहशत , लूट , क्रूरता , कैद , कुकर्म , दुर्घटना , हत्या , आत्म हत्या , बीमारी , <N> नारकीय जीवन सैली , प्राकृतिक सम्पदा की हत्या , और धरती को मौत की और धकेलना सामिल <N> है <N> <N> इसका कारण है जनता का अज्ञान और भ्रमित होना <N> <N> इसके लिये जिम्मेदार है सरकार और उसके सहायक <N> <N> लोक तंत्र का आधार कहता है समान , सरल , असरदार नीति , नियंत्रण लागू होगा , जो नहीं हुआ <N> <N> यहां कानूनी सवाल यह आता है कि समान , सरल , असरदार , नीति और नियंत्रण , लागू क्यों नही <N> हुआ ? <N> <N> तो सरकार और उसके अधीन कोर्ट का जबाब इन तत्वों पर आधारित था , जिसमें ऐसे आधारों पर <N> कार्यवाही करना था जिसे जांचना नामुमकिन हो , यथार्थ की जगह दहशत , धमकी , का आधार रख कर <N> अन्याय करना था , खामोश रहना , आवेदन रद्द करना , अनसुनी करना , सौदागरी करना , दबाव बनाना , <N> रिमांड करवाना , विलम्ब करके जीविका छीनना , याद्दास्त मिटाना , कैद करना , हत्या करना सामिल <N> था , <N> <N> इन बातों के सबूत सरकारी कार्यालयों की फाइलों में मौजूद है <N> <N> और गवाह के लिये सवा अरब पीडित जनता मौजूद है <N> <N> इस समस्याओं का जड सहित समाधान है जनता को ज्ञान देना , और समान सरल असरदार नीति <N> नियंत्रण लागू करना , <N> <N> पर सरकार और उनके सहायक तो सरकार की मानेंगे <N> <N> तो ऐसे मे धरती के लोग दो हिस्सों मे बँट जाते है <N> <N> पहले वो है जो सरकार और उनके सहयोगी है , दूसरे वो है जो पीडित जनता है , <N> <N> यहाँ ध्यान देने वाली बात यह है कि भारत में हर 60 हजार पीढित जनता पर सिर्फ 1 सरकारी आदमी <N> जुल्म कर रहा है , <N> <N> अब यहां एक और ध्यान देने की बात ये आती है कि सरकार को अपने और अपनी पलटन को पालने के <N> लिये व ऐश करने के लिये पीढित जनता की खून पसीने की कमाई से 50 से 80 फीसदी लूटने की <N> आदत पड गई है , अगर पीडित जनता ने अपने को लुट वा ना बन्द कर दिया तो सरकार को तो रेडी <N> लगानी पड जायेगी जो सरकार किसी कीमत पर मंजूर नही करेगी , इस लिये सरकार हर हालत में पीढित <N> जनता की इस कार्यवाही को फेल करने के लिये पैरों से चोटी तक पूरा जोर लगा देगी , और सरकार ताम <N> साम दंड भेद आदि हर कुनीति का इस्तेमाल करते हुये छल बल लूट फ़ूट लोभ हत्या आरोप आदि गलत <N> <N> तत्वों का स्तेमाल करते हुये , जनता के मुख्य राह-नीतिज्ञ और सहायकों की हत्या करेगी , तब पीढित <N> जनता आत्म रक्षा का प्रयास करेगी , <N> <N> परिणाम इतिहास के सबसे विध्वंसक युद्ध की शुरूआत हो जायेगी , <N> <N> पीडित जनता अपने को लुटवाना बन्द कर देगी <N> <N> इसके साथ पीडित जनता सरकार और सरकार के सहयोगियों की रसद , हुक्का पानी , दवा , सेवा आदि <N> बन्द कर देगी , <N> <N> वही जिंदा रहेगा जो सही का साथ देगा , <N> <N> क्योंकि पीढित जनता के साथ ईश्वरीय शक्ति होगी , <N> <N> क्यों कि हर 60 हजार पर ये सिर्फ एक है इसी लिये जीत पीडित जनता की ही होगी <N> <N> इस लिये अति सम्मान सहित , सर झुका कर , सरकार से प्रार्थना है <N> <N> कि लोकतंत्र के सिद्धांतों पर आधारित ( सर्व हित विश्व समान निश्चिंत कानून ) को लागू करने में सहयोग <N> करें <N> <N> पीढित जनता से एक सवाल <N> <N> आप सरकार का साथ देंगे या पीडित जनता का ? <N> <N> यदि आप खामोश रहे तो सरकार के साथ समझे जायेंगे <N> <N> पीडित जनता का साथ दें गे तो बदले में स्वर्ग मिलेगा , यानी जो मौज मस्ती व सुख चैन का सामान <N> और सुविधा आज आप खरीदने में फेल है वो सब फ्री में समान रूप से मिलेगा जिसमें बाधा रहित <N> बिजली , वातानुकूलित व्यवस्था , स्वच्छ हवा , शुद्ध जल , प्राक्रतिक हरा वातावरण , सुलभ मल <N> व्यवस्था , कूडा व्यवस्था , स्वस्थ सम्पूर्ण भोजन , उच्च स्तरीय चिकित्सा , निश्पक्ष न्याय , जनता <N> को जज की तरह स्वयं दण्डित करने का अधिकार , प्राकृतिक आपदाओं से सुरक्षित घर , मन भर <N> मनोरंजन , प्रत्येक को सम्भोग अधिकार , उच्च शिक्षा , सुविधा जनक व वातानुकूलित यातायात , <N> विकाश और निश्चिंत काम की भागी दारी आदि सामिल होगा , <N> <N> बस हां कहो स्वर्ग लो <N> <N> धरती पर ईश्वर द्वारा स्थापित की गई सही की ताकत दिखाने के लिये <N> <N> राक्षसों के ज़हन मे ईश्वर की शक्ति की दहशत बैठाने के लिये <N> <N> हर रोड पर प्रलय कारी जन सैलाब तब तक तांडव करेगा जब तक जनता का लोकतंत्र लागू नही हो जाता <N> <N> हमारी विश्व स्तरीय ताकत , हिम्मत , बुद्धि , सेवा व सुरक्षा भाव , ईमानदारी , समान भाव , मान्यता <N> आदि देखने के लिये इन वेब पेजों को देखें <N> <N> Shy <JOIN> awhdoblogspotcom <N> <N> Poh <JOIN> inin <SEP> blogspot <SEP> com <N> <N> Shy <JOIN> awhdoinformationblogspotcom <N> <N> हमारा काम सुधार है प्रचार नहीं , <N> <N> जनता के प्यार की हथकडी , सुरक्षा , और गोपनीयता को ध्यान में रख कर हम अपनी सूचना सार्वजनिक <N> नही कर रहे है , <N> <N> धरती की सेवा और सुरक्षा के लिये <N> <N> अपना पदभार प्राप्त करने के लिये <N> <N> आगे आने वालों का <N> <N> तन मन धन व अपने काम का सहयोग देने वालों का <N> <N> हम नत मस्तक स्वागत करते हैं <N> <N> ओन लाइन “ धरती वासियों की जानकारी का तरीका “ लिखें <N> <N> इस फार्म को भर कर shy <JOIN> awhdogmailcom पर मेल कर दें , <N> <N> हम राजनीतिज्ञ नही राहनीतिज्ञ हैं <N> <N> राक्षस तंत्र हटा के रहेंगे <N> <N> धरती पे स्वर्ग ल\",0.774783445621,0.158073650552\r\n24ccd99a151d870f,thomas hooker was every import durning the colo <JOIN> nila time bhbhfnhfiugnuf fnurljfmnydnhg hjgnuiskhgbrnygnuskhg hjfgnud,0.266666666667,0.157816257315\r\n9bc4aad15765f377,maga <JOIN> alada qabribayax waa mag <JOIN> aalo yar wax <JOIN> ayna koo <JOIN> nfor bari kaxigtaa maga <JOIN> alada jigjiga 50 kii <JOIN> loo mitir waa mag <JOIN> aalo ayleeyihiin qab <JOIN> iil ahaan dadka layiraahdo abaskuul jidwaaq oo ah dad ay wal <JOIN> aalo yih <JOIN> iin dadka layiraahdo oga <JOIN> aden eed <JOIN> aga bar <JOIN> iga wadadnka layiraahdo ethiopie waxaakunool dad dhan magala <JOIN> daas qabribayax 1.2 milion peaple oo isk <JOIN> ugu jira rag iyo dum <JOIN> arba waana mag <JOIN> aalo xukunta tulooyinka layiraahdo dhur <JOIN> waale qaaxo dan <JOIN> abo iyo kuwokale oo aad ufaro badan,0.31067961165,0.156739620944\r\n138405729523b56a,لينو . تحية طيبة اليكى والى الادارة الاكرانية. اما بعد كما تشهدين جمود هذه العصابة بشان امرى الذى يجب تنتهى فيه ما يعوق سفرى اليكم وكما تعرفون ما هى واجباتنا تجاه ذلك لن اوصيكم لانكم سباقين فى اداء مهاماتكم واعرف انكم ستوضعون حدا لذلك ومن الواضح ان التنين وطواغيطه ما ذال يلف ويدور من خلال نهجه لالتهامى بانيابة التى باتت ظاهرة امام العالم هو وعصاباته وكل الممررين لاجرامه وواضحا جدا الحراك الناتج عن حكمة تعقلكم فى تفعيل الحياة لمواجه الازمات حتى لا تتراكم والعالم الان معبا بالكثير مما نحتاج الى معالجته ولا يعنى هذا الاجرام المتعمد سواء ان هؤلاء السفاحين لم يستوعبو دروس الحياة الا بضربة على رؤسهم حتى لا يطمسو عقول البشرية بسفاليهم من اجل ان يمتصو الدماء كخفافيش الظلام المتوحشة لاكل لحوم البشر وعلينا ان لا نتهاون او نغفل عن مكرهم والاعيبهم المدمرة لهويتنا الانسانية وان يكون الحديث فى ذلك قويا ومهينا لهؤلاء المنتهكين الغير آدمين ولو كانو على هيئات من اشكال البشر لان وحشيتهم ظهرت فى بشاعة جرائمهم ومدى خطورتهم التى لا يجب علينا ان ننتظر اكثر من ذلك عليهم لان الحياة مسؤلية المدركين لاستيقاظ من غفلو ومعاقبة من اجرمو وانتم نموذجا رائعا فى معرفة الداء والدواء واستئصال الخلية السرطانية لمصادر المرض الذى عند تركه يذداد تفشيه وعند مقاومته الى حد بتره يسهل علينا العودة الى الحياة كما يجب ان نامنها ونؤمنها لاجيالنا ونحن فى هذا العهد المعنيون لادراكنا ولما نقوم به من ازالة هذا الخطر بكل من يلحق بنا حتى يعيش فى واقع الحياة التى لا يجب ان تكون بحوزة اعداء البشر لتقليص دور من هم ادرى بشئونها ولا يجوز التهاون فى ترك هذه التجاوزات وانا لن اترك شىء من حقوقى الخاصة او حقوقكم بموجب ما قمتم به من واجبات واجتهادات وصرفتم ايضا من الاموال دفاعا عن حياتى ولاستعادة ثرواتى لعمكم باهمية هذه الاهداق النبيلة فى حماية البشرية والمسك بعصب مصادر تلك الانهتهاكات حتى يسهل على العالم حل مشاكله ونحن معا متماسكين وواثقين من اهدافنا ومساعينا على كافة الاصعدة وانا فى انتظار حسم هذا الامر واثقا فى نزاهتكم ومحترما ما تقضونه من اجل اسمى وانبل الاهداف فى الحياة التى تهدر فيها كرامة البشرية وامنها مبرهنيين بما قمتم به اهمية التفعيلات الايجابية الى حتمية صناعة القرار وتنفيذه وانا اع8رف من خلال علاقتنا الوثيقة بما اشرتم به حاملا تعبيرات ومعانى تلك الاجتهادات العظيمة ومواجهتكم تلك الاذمة بكل بثقة وعزم حتى نحقق شرعية امن الشعوب بقوانينها التى يجب ان تأخذ ضمن مساعينا قرارنا الحاسم والذى انتم مقبلين عليه. واليكم اغلى تحياتى. حسين امين,0.997461928934,0.155082274295\r\n51f2f1b77aabfa2c,༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ AMENO つ ◕ _ ◕ ༽つ༼ つ ◕ _ ◕ A,0.300100200401,0.154889224963\r\nab9abfbf775fb2c4,= = सिरोही तहसिल मेँ गाँव = = <N> <N> * जावाल * भूतगाँव * गोयली * पाडीव * बलवंतगढ * मंडवाडा * ऊड * जामोतरा * मणोरा * सतापुरा * वराडा * देलदर * मंडवारीया * बरलूट * कालन्द्री * नवारा * बावली * चडुआल * मोहब्बत नगर * तवरी * फुँगणी * नून * जैला * मडीया * वलदरा,0.491803278689,0.154876169404\r\nc91afd522a84e2ad,هذا الكلام الذى قاله الاستاذ مصطفى محمود ليس معناه ان اتخلى عن ثرواتى لان الهدف من استعادة كل ثرواتى هو اولا من حيث الحق والمبدء فى عدم تفريط الحق. لاننا لو فرطنا فى حقوقنا سنكون مدعمين للمنتهكين الحقوق ومساعدين فى الجرائم التى اودت الى موت الكثير وايضا الى نهب الشعوب. لذلك يجب استعادة اموالى وايضا لانها حق شرعى يجب ان اعيش به واخدم به مصالحنا ومصالح اولادنا وشعبنا بازن الله. وهذا الكلام اردت ان اقوله لعدم الخلط فى تفهم الاشياء التى يجب ان تاخذ فى شرعيتها وان اختلفت الاراء المهم ان يكون كل شىء فى الاطر السليمة وعلى الانسان ان يحب ما يشاء ويكون ما يشاء ما دام ذلك فى استطاعته ولكن المهم عند الانسان الذكى ان يكون المال عندما يحققه يكون وسيلة فى الحياة وليس الغاية لان الغاية هى الاهم فى تحقيق الذات فكيف نترك للمجرمين ان يحرمونا من غاياتنا وطموحاتنا وهذا المال هو حق لى شقيت به من اجل الاهداف التى اشرت اليها واجمل ما اخترت هو انتى واكرانيا التى اصبحت بلدى ولن افرط فى شىء لهؤلاء المجرمين بل سيكون العقاب كبيرا لانهم ايضا عزبونى وحرمونى من الحياة باشد انواع الاضطهاد والالام كما تعرفين. .,0.994652406417,0.154688803085\r\n71c6cb6618491bd1,= = دومین متن مباحثه با موضوع اختصاصی داعش و اسرائیل = = <N> <N> با عرض سلام خدمت ریاست جمهوری اسرائیل و نیز اعضای آن و نیز اقوام و پیروان این دولت،این دومین متن مباحثه ای هست که از مباحثات با موضوع اختصاصی هست و نیز دومین متن مباحثه با موضوع اختصاصی داعش و اسرائیل هست امیدوارم مباحث و مطالب مطرح شده در متن مباحثه اولی مورد توجه شما قرار گرفته باشه که انشالله به امید خدا میگیره چون کسانی که ادعای خداوند و اعتقاد به معبود رو میکنند و نام اشهد ان لا اله الا الله و اشهد ان محمد رسول الله رو درج بر پرچم خود میکنند مسلما به شناخت که نه بهتر بگم به باوری بر مبنای عقیدتی به خداوند رسیدن حتی اگر فرض رو بر این بگیریم که این عقیده از پیشنیان بر گرفته شده که شما مبتنی بر آن به خداوند اعتقاد دارید و بر مبنای دستورات ان انجام وظیفه میکنید بر مبنای اطاعت از دین و اداب رسومتان مسلما اسم خدا بر زبان شما جاری شده بنابراین آنچه که من بر مبنای آن توضیح دادم چیز غیر قابل فهم و غیر قابل باور نیست اما انچه که در معنای عکس العمل آن را تصدیق تایید میکنه و معنا و مفهوم تقابل را در آن تایید و تصدیق و اثبات میکند و مرز تفاوت بین عقیده من تا شما بر مبنای باورتان آن هست که من در تلاشم مسیر فعالیت هامو در تلاشم ادعا نمیکنم الان حرکت کردم رسیدم به تهش نه ... اما این ادعا رو میکنم که در تلاشم که مسیر فعالیت هامو حال می تونه فعالیت های اصلاحاتی باشه که این فعالیت ها در فضای مجازی شامل برنامه های توییتر ،برنامه های مباحثه ای که این خود شامل مباحثات د به ادغام شده ای هست که با موضوعات کلی و متفرقه اما در مسیر سیر تکاملی با فاصله های زمانی مشخص ارسال میشه در زمان های تعیین شد طبق برنامه ریزی های در زمیه اصلاحات با هدف سیر تکاملی و دفاع از آن و نیز مباحثات با موضوعات اختصاصی که این مباحثات به شکل خاص و محدود به یک موضوع اما به شکل گسترده و با بررسی جز به جز آن خواهد پرداخت که این موضوعات اغلب که بهتر بگم به طور همیشه با موضوعات بخش خبری یکی هست و جنبه دائمی دارد و به شکل مداوم ادامه میابد اما با این تفاوت که زمان ارسال آن مثل مباحثات دو به دو ادغامی با فاصله زمانی مشخصی نیست بلکه این مباحثات متناسب با بخش بندی واحد ها و بخش های صحبت در بخش خبری از برنامه های توییتر که به شکل یکی در میان در هر بخش خبری و معمولا در زمان شروع و بخش میان برنامه های برنامه های توییتر انجام پذیر هست اما در زمان پرداختن به همان موضوع مشخص شده در بخش خبری که متناسب و یکسان با موضوع مباحثه اختصاصی هست این ارسالات در خصوص مباحثات با موضوع اختصاصی در خصوص همان موضوع به شکل یکی در میان در هر واحد و بخش خبری که قسمت بندی کردم برای صحبت در بخش خبری از برنامه های توییتر در توییتر به شکل پشت سر هم میشه تا پایان صحبت در همان بخش خبری و دوباره ارسالات به همان میزان به شکل یکی در میان اما با اضافه کردن یک موضوع اختصاصی دیگه که اونم بر گرفته از بخش خبری هست مباحثات با موضاعت اختصاصی پیش برده و گسترش خواهند یافت نکته ای که مطرح میشه اینکه روند ارسالات متون مباحثات در زمان پرداختن به مبحث خبری با همون موضوع مطرح شده در مباحثه با موضوع اختصاصی معمولا بیشتر و به شکل پشت سر هم هست این از برنامه های مباحثاتی هست به عنوان یک از فعالیت ها در فضای مجازی و بخش سوم فعالیت ها در فضای مجازی رو داده های خبری و جمع اوری ان ها تشکیل میده که هم به شکل ارتباطات مجازی و هم غیر مجازی هست برای دریافت و جمع اوری داده های خبری از کشور خودم تا سرتاسر نقاط این کره خاکی که به امید خدا تا به اکنون گسترش منابع خبری ارتباطی پیشبرد خوبی داشته و بخشی از اون از لیست منابع خبریم که جهت دریافت داده های خبری ارتباطی از آن ها استفاده میکنم حذف نشده و فعالیت در فضای غیر مجازی که این نیز مانند فعالیت در فضای مجازی اما با فاصله زمانی بیشتر و وقت بیشتر برای بهر گیری از آن چون فعالیت در فضای غیر مجازی هم بیشتر هست و هم زمان برتر و هم شامل بخش های بیشتر نسبت به فعالیت در فضای مجازی آنچه که تحت عنوان فعالیت در فضای مجازی میبینیم بخشی از اون مختص فعالیت هایی هست که در فضای مجازی میبینید در حین برنامه های مباحثاتی و توییتر و چه بخشی مرتبط با اثرات حاصل از فعالیت ها درفضای غیر مجازی هست که شما این اثرات رو در غالب فعالیت در فضای مجازی میبنید منظور و مصداق از اثرات در فضای مجازی درواقع نتایج بررسی ها و فعالیت هایی هست که در فضای غیر مجازی ایجاد میشه و این اثرات در فضای مجازی ثبت و تحت عنوان فعالیت در فضای مجازی استفاده میشه و اما این برنامه ها و فعالیت های اصلاحاتی هست با هدف سیر تکاملی اما مدافعیت از سیر تکاملی تنها با دید مثلا بگیم اصلاحاتی که من اصلاح گر باشم و من ادعای این رو بکنم که می تونم اصلاح گری توانای باشم و تنها به هدف اصلاح گریم که مسیر فعالیت های اصلاحاتیمو مبتنی بر آن قرار دادم و بر مبنای آن به فعالیت در مسیر اصلاحات با هدف سیر تکاملی و دفاع از آن می پردازم و بر مبنای آن ادعا کنم که چون دارم تطبیق میدم اونم فقط فعالیت در مسیر اصلاحاتی رو که شامل برنامه های اصلاحاتی یعنی همه این مواردی که نام بردم و برنامه های توییتر رو مبتنی بر مسیر سیر تکاملی بنابرای هم باید ادعا کم که اصلاح گر خوبی هستم و هم باید ادعا کنم که مسیر اصلاحاتم در مسیر سیر تکاملی با این باور که من فقط فعالیت در مسیر اصلاحاتم رو تطبیق دادم با مسیر سیر تکاملی چون مسیرم سیر تکاملیست مسلما بر مبنای اون من الان هم در مسیر فعالیت هام باید پیشبرد درستی داشته باشم و هم چون دارم کار درست رو تحت عنوان فعالیت های اصلاحاتی انجام می دم پس بر مبنای اون هر کاری کردم کردم در زندگی مهم اینکه مسیر فعالیت های اصلاحاتیم در مسیر سیر تکاملی باشه این جور عقیده و باور رو میگن عقیده چرتکه ای حساب کردن این چرتکه ای حساب کردن ها نتنها در فعالیت های سیاسی و هم,0.993506493506,0.154422562321\r\nfc6f13daebc36602,خقق افضل شات صوتي سعودي,1.0,0.15292859013\r\ne0dd873430df591e,Sav <JOIN> jet izvi <SEP> a <SEP> kih organizacija u Bosni i Hercegovini,0.307692307692,0.152720852494\r\nab94c14287883ac8,\"jdkgbhbnmkbkzXCFGNmsabjksbdghsdmbtgjkhjzxNFJKL hjkz gjkzdnx jkhkJhojkdxzh hshrjHVKJhjkfh vhvhukh jkhjhfjHDSjkhsdjkgjksgdtgjkalhkughjkhjk hjkhjhfjkshgkjdsah jhjrkehash jkhfesjkayh jesktbtjkskahtjksahjkthtjkeskjahdkhsjkjkghjkghgjsdhjkhsgushgtjkhsuhtewguishakesjgauihugszali uitgawehguisadgiu jhugrsUGHjkhui HJRFAUIGFJGHDSHGZUIASBKJ HGUSABHJKRHSTGUIHRSJKHRFHAS HJKHRUABHJKRHEUIHJKHRURHAJKHUUJJKSHJKGHUA NJHGJKHKJHDGJKEHJHHHGJRKEHTHRJEHUDRS JHRJKTHUJGHJKAHHHHGWHGURDHS HJHGYJREKSGHHJKH VJHRJHJKHTJKRASH VNJKHRASJKHSZRTNUI NHGJKHJDFTH NJHJDHSHGJKDFSHTJHjhjdhjgdfhjkhasdh nhfjkdznahjkdfan nhbdhjhmadhuzgahjhhg hgkljidjlhkldstjykijdfklyjios kjihtsdjijhgifxjiophgf khdfljipofs kohgpfsx kljhdfsyjklfchgi mkl <JOIN> jfdi kjgid kjd jikrtjyh jhk <JOIN> ijt jihtjsiohj kjgikjhreioah kjhiorjheoi khjtriohasjhkljipodjjhtrkji oETIUWHJYIOTRS IJHTGSJKYIOPSJHDFLSM JIOJHYIOESIOJHIOSE ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! <N> <N> <N> <N> gfrhgbkxbg , <N> nfdjbmjhf\",0.556962025316,0.152660036163\r\ndf14f64515f527fb,= = Miguel Santiago = = <N> <N> HFG BFOGBStqetfsdfaefqfff ffeiqerif c efrqifer eifr f rqf iqwfrqf wefqw frwfr fqw rqw vy trirr wertrtryre vq rfqtyrrqyt wrrrritye rqfiq tiuyurewqgfe trwerrewier wfff utwefvd dv qvd,0.617647058824,0.151867161105\r\naf73737f4b5a8af8,\"jhvkgkhd dghk ffkdtmy , jf\",0.6,0.150213177958\r\nb8a3adfb53bbc226,با عرض سلام خدمت ریاست حمایت اسلامی و کمیسیون حمایت اسلامی.ممکنه متعجب بشید که چه طور شده نغمه مجدد برای شما پیغام فرستاده.در حالیکه الان قرار بود برای سازمان حقوق بشر پیغام بفرسته.میگن هر سازمانی که ادعاش بیشتر مخاطبینش بیشتر قبول دارین؟البته قصد جسارت نیستا معمولا ما عادت ندارم با سنگ بریم سراغ سر شکسته ممکنه بگید همکاری سازمان حقوق بشره دیگه سازمان حقوق بشره ال بل دیمبله والله این نظر شماست نه باور من.طبق انچه که من متوجه شدم تنها سازمانی که می تونه حدلاقل یک حرکت به سمت بهبود اوضاع در سطح جهانی بکنه خود ادم هستش ... بله خود ادم البته خودی که درون و بیرونش عین کف دست باشه .... روراست ... و خود که در اون دو گانگی وجود نداشته باشه چون اون جوری تمام انرژی ادم و وقت ادم صرف یکسان کردن دو گانگی ها میشه برای همین به این باور رسیدم تا ادم خودش تحرکی نکنه با گوش دادن به یه مشت وعده ها و حرف های پوچ نمی تونه کاری رو از پیش ببره.بنابراین طبق این گفته تنها چیزی که من هر دفعه در اخبار می شنوم چه از جانب شما و چه از جانب مسئولین دولت ها و چه از جانب سازمان حقوق بشر فقط وعده هست فقط اخباری که یک روز خوب هست اونم تا کی؟ تا زمانی که من نغمه نرفته باشم در موردش پرس و جو کنم که این خبر درسته یا نه.نمی دونم اخبار رسانه های ایران این جوری هست والله امروز خبر دادن رییس جمهور عراق اومده یک سرزمین دیگه رو از شر تروریست ها نجات داده بعد برای اینکه اخبار ایران بگه کار رییس جمهور عراق درسته بر گشته در مورد تاریخچه اونا گفته حالا معلوم نیست از منابع تحریف شده بوده یا نه؟چون تاریخی که به دست سیاستمداران بنا بر موقعیت سیاسی مثل برگ روی درخت به این ور و ان ور کشیده بشه و حتی نفوذشو در دین و اعتقاد مردم به عنوان روشی برای تکامل سه اصل انسانیت و وجدان و حقیقت جویی ادمی برای مقاوم سازی سپر محافظتی برای روح در برابر صفات نادرست و وسوسه های نفس اماره و نیز باز شدن دریچه قلب ادمی به روی انوار الهی برای نزدیک شد انسان به عملکرد درست در نتیجه استفاده درست از قوه جست جو گرانه و نیز رسیدن به یقین نشون داده باشه تحریفی که در نتیجه بازی سیاسی سیاستمداران موجب شده که ادیان بشن به عنوان یک وسیله و حالا هم که برای من رسانه های خبری برای هر گند کاری مسئولین دولت ها اونو با تاریخ اسلام مقایسه میکنن هه سئوال من اینجاست دیدگاه مفسران دینی از روایت ها و احادث پیامبر و امامان معصوم و زندگی ان ها چگونه هست ایا دید جزئی دارن و دقیق یا دید کلی دارن و دقیق یا اصلا دید دقیق ندارن؟نمی تونم این رو طبق انچه در تفاسیر مفسران اسلامی دیدم عنوان کنم دید کلی دارن و دقیق اما رو دید جزئی و دقیق و دید غیر دقیقشون کاملا اطمینان دارم اونم در نتیجه انچه هست که از تفاسیرشون متوجه شدم وقتی اخبار ایران واسه توجیحه عملکرد رییس جمهور عراق از یک بخش تاریخی پیامبر طبق روایت استفاده میکنه بدون اینکه وصلشون کنه و بررسی کنه با قیمت های کلی روایت زندگی نامه پیامبر که مردم متوجه بشن ایا طبق حرف های شما که ادعا میکنید مشکلات موجود در دین اسلام از زمان پیامبر بوده و هنوزم که هنوز ادامه داره واسه چی برای توجیه عملکردهای خودتون تنها به یک بخش از زندگی نامه پیامبر اکتفا میکنید و اونو امتداد نمیدین کارتون می دونید شبیه چی میمونه؟شبیه این میمونه که فرضا من یک بخش از نامه رو بخونم در رابطه با همون بخش ادعا کنم در مورد مفاهیم و محتوایی که در نامه وجود داره برداشت شما از ایات و روایات قران هم بدین شکل است وقتی شما نسبت به ایات قران کریم کلمه به کلمه معنا میکنید و بعد در اخر محتوای ان میمونید که چه وصلش بدین مثل انچه که پای منبری ها در ایران میگند همینه خودشون در اول و اخر حرفاشون میمونند و براشون فقط مهم برای اونا اینکه مفاهیم موجود در ایات و روایات رو از ان قسمتی استفاده کنند که برای توجیح اهداف قدرت طلبانه خودشون نیازه و عملکردهایی که در این خصوص وجود داره دیگه به این فک نمیکنند با این روش چقدر هم می تونن راه رو برای برداشت غلط و حالا تحریف چه بدست خودشون و چه بدست پیوران ادیان دیگه باز کنن و با این کار موجب بد نامی پیامبر و ائمه اطهار بشن بعد یکی اگر به اینان توهین کنه چنان خشمگین میشن که تنها راه رو جهاد می دونن ادم برای حفاظ و دفاع از یک چیز هیچ وقت شمشیر رو نمیده به دست دشمن و بعد ندای جهاد رو بده .... این نمیشه جهاد میشه تحریک دشمن برای مبارزه و خواسته شخصی اون در راستای مبارزه نه خواسته اون چیز.خدا به همه قدرت عقل داده و منطق ... من در توییتر در این خصوص خیلی صحبت کردم جدا از اینکه منطق و عقل ادمی استارد اول رو برای تکامل سه اصل میزنه و بعد از اون به علت خاصیت فید بکی در این سه اصل انسانیت و وجدان و حقیقت جویی در پرتو نور الهی انسان سپر محافظتی روحشو محکم تر میکنه و در نتیجه اون با عملکرد درست در جهت استفاده درست از قوه جست جو گرانه جدا از اینکه روحشو از گزند صفات نادرست حفظ میکنه برای محیط بیرون از خودش و درونیاتش ایجاد بحران و مشکل نمیکنه مشکلی که سیاستمداران دارن اینکه چون نمی تونه در مبارزه با نفس اماره خودشون در نتیجه تقویت صفت ایستادگی و مقاومت ان را اعمال کنن چون یکی از مهم ترین فواید نفس اماره در وجود ادمی در کنار اینکه مثل یک عامل می تونه روی فراموشی تاثیر بزاره و کنترلش کنه طبق اصل اینکه انسان در زمان ارتکاب گنه و تسلیم شدن هست که قوه وجدانش که همیشه همراهش هست فعال تر میشه اگر خاموش باقی بمونه پرتو نور الهی همیشه همراه انسان هست و یک عامل مهم دیگه اینکه انعکاس ناشی از اون رفتار که فرد می تونه در زندگی خود حسش کنه با کمک عقل و منطق خویش در کنار چنین فایده نفس اماره گفتیم مهم ترین فایده اش درواقع در نتیجه کلنجار رفتن انسان با وسوسه های این صفت در نتیجه هم پرتو الهی و هم منطق خود ادمی اولین صفتی که فعال میشه صفت ایستادگی هست که از جزو زیر مجموعه های انسانیت هست با تکامل,0.995291902072,0.150166732706\r\n5d05e5785f0f5471,الى الغالية يليا والادارة الموقرة .. تحية طيبة وبعد. تعرفون ما امر به وقد تحدثت عن مراوغة وتعطيل السفاح مبارك الذى يهدف دائما الى استرار نهجة معتمدا على القوة التاثيرية الشيطانية التى يحاربنى بها لسلب ارادة العالم وممارسة نهبه واجرامه وانعدام وجوده السياسى وللاسف السياسة الامريكية اعتادت التستر عليه والغريب فى الامر ان تلك الممارسات امام اعين العالم الذى ذاق مرارة خطره وعالمه الاخر المهدد لحياة البشرية .. وهؤلاء الاوغاد قد اصبحو بالفعل شياطين مخنسة لا تشعر ولا تحس الا بحواس الثعابين عند الخطر وغير ذلك فهم لا يعقلون وحياتى فى خطر بهذا البلد المفتقد لمصداقية المؤسسات لانهم ايضا مسخرين بالعفاريت والجن لسلب ارادتهم .. ان الامر بالفعل خطير وهذه الجرائم لا يجوز التستر عليها لانها تعنى عدم الادراك الانسانى العالمى بتلك الحقيقة كما يجب ان نتعامل معها. وعلى امريكا المسؤلية الكبرى فى ذلك من كزب سياسى وتهاون بل ومشاركة لمدة خمسين عاما منذ نشات هذا الموساد السرى الذى دمر مصر وكان الفجوة التى تم من خلالها اختراقات كثيرة فى العالم من ضمنها تفكك الاتحاد السوفيتى فهم يزرعون المؤامرة ويكون لهم عملاء ويسلبون الارادة والوعى ويثيرون الفتن لذلك العالم حصد الكثير من السراعات التى لها عواقبها واتساعاتها ويجب على موسكو واكرني العظمى ان تصيغ برنامج تفعيلى سريع لتعامل مع تلك الظروف بما انكم مدركون ولكم شأن وتاريخ وتعرفون مدى اهمية تدمي هذا النظام الشيطانى الوثنى الذى يرأسه الشيطان مبارك وايضا تعرفون مدى التأثرات الخطيرة المعاصرة والمستقبلية على البشرية . لذا الامر يستوجب منكم التفعيل على كافة الاصعدة فى صناعة القرار العالمى بكل ثقة ويقين ووعى لاهمية ذلك. علما بانكم ستكسبون الكثير فى تحقيق هذه الموازنة الانسانية وتدمير مصدر الخطر الذى يحدق بالبشرية وتحررون العالم من خلال ذلك بعد القضاء على الشيطان لن الامور ستكون مهيئة لوقوفكم على ساحة دولية تقدر دوركم وما قمتم به وعجز عنه الاخرين فى وقت يحتاج الى صناعة القرارات الدولية. وان مصدر العقدة والازمة الحقيقية للسيكلوجية الانسانية والوعى يتلخص فى ما ستقومون به عندا تلقنون عصابة الشيطان درس الحضارة والتاريخ واحترام الانسانية المهددة بسمومهم . وهذا التوقيت ملائم جدا لتدخلكم القوى والذى سيسطر تاريخ جديد وحقيقى ملائم للحياة الطبيعية وكلما يهدد البيئة ايضا لن كل ذلك مرتبط بعملية الادراك والتعامل للبيلوجية الانسانية الداخلية والبيئية. والان يوجد لدينا كل البراهي والادلة التى بنائا عليها اخذ القرار علما بانهم كما ترون يقومون بتعزيبىبهذه السموم لسلب العالم رشده خشية من اى تفعي وان ذلك قد اوقعهم وكشفهم وانا منذ سنين كما تعلمون اقاوم ذلك لادفع عن حياتى والعالم هذا الشر الاجرامى الشيطانى. وكما تعرفون ايضا ان لدينا الكثير من الطموحات التى تليق باكرانيا وموسكو ودول روسيا الاتحادية. ومدى اهمية تفعيلى ووجودى فى هذه البقعة التى انتم بها اوفياء للتاريخ الانسانى والضمير الذى يدرك هذه الحقائق بما ابديتوه عسكريا وفكريا. وبنائا على ذلك ارجو منكم تحريرى من قبضة هؤلاء العصابات الابليسية واستعادة كل ما نهبوه على حسابات شقى عمرى وحياتى وامكاناتى. لانها اموالى وايضا ما فوقها التعويض المناسب من جميع المؤسسات المصرية كدولة. تهاونت ف جرائم وممارات خطيرة كونيه . وارجو منكم عدم السماح لهم باضاعة الوقت الذى يمارسون فيه اجرامهم لمحاولة تغير الاوضاع وانى اثق انهم لا يذدادون الا سقوطا . وحرصا على حياتى وطموحاتنا ارجو منكم اخذ الاجراءات السريعة. متعاونين مع موسكو فى اخذ ما يجب ان تقرره اداراتكم الموقرة واثقين من تحقيق انتصرات تعيد الاوضاع الروسية افضل مما كانت. والسلام عليكم /حسين امين _ وهذا هو رقم هاتفى الجديد_0176375387 _ وانتم تعرفون مفتاح البلد,0.983240223464,0.150113093307\r\ne9a54985bafcdf9e,= = = Hindi <N> दोहरा ॥ <N> रूम सहिर के साह की सुता जलीखा नाम ॥ किधौ काम की कामनी किधौ आप ही काम ॥१॥ <N> अति जोबन ता कै दिपै सभ अंगन के साथ ॥ दिन आसिक दिनपति रहै निसु आसिक निसनाथ ॥२॥ <N> सहसानन सोभा भनै लिखत सहस भुज जाहि ॥ तदिप जलीखा की प्रभा बरनि न आवत ताहि ॥३॥ <N> <N> चौपई ॥ <N> मिसर साह को पूत भणिजै ॥ यूसफ खां तिह नाम कहिजै ॥ <N> जो अबला तिह नैकु निहारै ॥ चट दै लाज बसत्र कौ फारै ॥४॥ <N> <N> दोहरा ॥ <N> ता के तन मै अति प्रभा आपि करी करतार ॥ <N> पैग्मबर अमबर तिसै कहत सु बुधि बिचारि ॥५॥ <N> <N> चौपई ॥ <N> ता के भ्रात सकल रिसि धारै ॥ हम क्यो हूं यूसफ कौ मारै ॥ हमरो रूप करियो घट करता ॥ या को रूप दुखन को हरता ॥६॥ <N> ता को लै अखेट कहि गए ॥ बहु बिधि म्रिगन संघारत भए ॥ अधिक प्यास जब ताहि सतायो ॥ एक कूप भ्रातान तकायो ॥७॥ <N> तह हम जाइ पानि सभ पीयै ॥ सोक निवारि सुखी ह्वै जीयै ॥ यूसफ बात न पावत भयो ॥ जह वह कूप हुतो तह गयो ॥८॥ <N> चलि बन मै जब कूप निहारियो ॥ गहि भइयन ता मै तिह डारियो ॥ घर यौ आनि संदेसो दयो ॥ यूसफ आजु सिंघ भखि लयो ॥९॥ <N> खोजि सकल यूसफ को हारे ॥ असुख भए सुख सभै बिसारे ॥ तहा एक सौदागर आयो ॥ कूप बिखै ते ता कह पायो ॥१०॥ <N> ता कह संग अपुने करि लयो ॥ बेचन साह रूम के गयो ॥ अधिक मोल कोऊ नहि लेवै ॥ ग्रिह को काढि सकल धनु देवै ॥११॥ <N> <N> दोहरा ॥ <N> जबै जलीखा यूसफहि रूप बिलोक्यो जाइ ॥ <N> बसु असु दै ता को तुरत लियो सु मोल बनाइ ॥१२॥ <N> <N> चौपई ॥ <N> मुख माग्यो ता को धनु दियो ॥ यूसफ मोल अमोलक लियो ॥ भाति भाति सेती तिह पारियो ॥ बडो भयो इह भाति उचारियो ॥१३॥ <N> चित्रसाल ता कौ लै गई ॥ नाना चित्र दिखावत भई ॥ अधिक यूसफहि जबै रिझायो ॥ तब ता सो यौ बचन सुनायो ॥१४॥ <N> हम तुम आजु करै रति दोऊ ॥ है न इहा ठाढो जन कोऊ ॥ कवन लखे का सो कोऊ कहि है ॥ ह्या को आनि रमत हम गहि है ॥१५॥ <N> <N> दोहरा ॥ <N> मै तरुनी तुम हूं तरुन दुहूंअन रूप अपार ॥ <N> संक त्यागि रति कीजियै कत जकि रहे कुमार ॥१६॥ <N> <N> चौपई ॥ <N> तै जु कहत नहि कोऊ निहारै ॥ आंधर ज्यो तै बचन उचारै ॥ साखी सात संग के लहि है ॥ अब ही जाइ धरम तन कहि है ॥१७॥ <N> <N> अड़िल ॥ <N> धरमराइ की सभा जबै दोऊ जाइ है ॥ कहा बदन लै तासै उत्र दियाइ है ॥ इन बातन कौ तै त्रिय कहा बिचारई ॥ हो महा नरक के बीच न मो कौ डारई ॥१८॥ <N> सालग्राम परमेस्र इही गति ते भए ॥ दस रावन के सीस इही बातन गए ॥ सहस भगन बासव याही ते पाइयो ॥ हो इन बातन ते मदन अनंग कहाइयो ॥१९॥ <N> इन बातन ते चंद्र कलंकति तन भए ॥ सु्मभ असु्मभ असुरिंद्र सदन जम के गए ॥ इही काज क्रीचक क्रीचकन खपायो ॥ हो धरमराट दासी सुत बिदुर कहाइयो ॥२०॥ <N> सुनि सुंदरि तव संग भोग मो ते नहि होई ॥ सिव सनकादिक कोटि कहै मिलि कै सभ कोई ॥ यौ कहि कै भजि चल्यो बाल ठाढी लहियो ॥ हो गहि कै करि सो ऐच ताहि दामन गहियो ॥२१॥ <N> <N> दोहरा ॥ <N> कर दामन पकरियो रहियो गयो सु यूसफ भाजि ॥ <N> काम केल ता सौ न भयो रही चंचला लाजि ॥२२॥ <N> <N> अड़िल ॥ <N> अवर कथा जो भई कहा लौ भाखियै ॥ बात बढन की करि चित ही मै राखियै ॥ तरुन भयो यूसफ अबला ब्रिधित भई ॥ हो ता को चित ते रीति प्रीति की नहि गई ॥२३॥ <N> मारि म्रिगन यूसफ तह इक दिन आइयो ॥ पूछन के मिसु ता को हाथ लगाइयो ॥ बाज ताज जुत बसत्र बिरह बाला जरियो ॥ हो सो अंतर बसि रहियो जु या ते उबरियो ॥२४॥ <N> हेरि बाल को रूप चक्रित यूसफ भयो ॥ जो तिह मनोरथ हुतो वहे ता को दयो ॥ बसत्र बाज को जारि जलीखा तिह छरियो ॥ हो मित्र पुत्र ज्यो पाइ तबै ता को बरियो ॥२५॥ <N> <N> दोहरा ॥ <N> जिह पाछे बाला परै बचन न ता को कोइ ॥ <N> सभ छल सो ता को छलै सिव सुरपति कोऊ होइ ॥२६॥ <N> <N> इति स्री चरित्र पख्याने त्रिया चरित्रे मंत्री भूप स्मबादे दोइ सौ इक चरित्र समापतम सतु सुभम सतु ॥२०१॥३७८९॥अफजूं॥,0.82421875,0.149902394191\r\nc28fc1bf327a9f1b,= = الشعار = = <N> <N> والله يالحبيب شكلها مو حلو شعار وسط جدول انا شلتهم بس بقيت وحده في خانة اخر بطل بس أبشر <N> <N> <N> افعل ماتريد وحنا معاك,0.727272727273,0.149787677609\r\n5258b8b10a7e80b8,= = قه زای سه saids <JOIN> adq = = <N> <N> قازای سه یدسادق له باشوری کوردستانه سه ر به پارێزگای سلێمانیه ژماره ی دانیشتوانی نزیکه ی ٩٥،٠٠ نه وه دوو پێنج هه زار که سه,0.783783783784,0.149779191216\r\n6d0e110b9ddbde3d,الادارة الاكرانية الموقرة. تابعت عن اخبار العلاقات الاكرانية الروسية بموسكو وهذا خبر فى غاية الاهمية من حيثيات وضع خطوط عريضة مشتركة تعزز وشع البلدين المشتركين فى وطن كبير اسمه الاتحاد السوفيتى العظيم وعن ذلك اريد ان اشار برأيى فى هذه العلاقة القوية التى يجب ان تكون وطيدة من جميع الحيثيات المتعلقة بالاستراتيجية العسكرية والثقافية والاقتصادية للبلدين بمحتوى دول الاتحاد وحتى لا يكون هناك هى فجوات متسللا اليها العدو من قبل يجب وضع سياسة تستوعب كيفيات التعامل فى القضايا الشائكة بالحكمة المطلوبة وان عودة الاتحاد هو التآم لجسدا واحدا باصابع يد مختلفة وان كلا للاخر جزء لا يتجزء من الوطن الكبير بسياسة حكيمة وقوية تقوم على اسسها موسكو واكرانيا لاصلاح الشأن العام من ناحية عدم الانخراط او التبعية لاى سياسة امريكية او اوروبية وان الاتحاد الروسى سيكون فى غنى تام عن اى وضع يجعل دول الاتحاد ملحق بحلف الناتو او غيره لان ذلك سيضعف من شئن انفراد الاتحاد كقوة عظمى كبيرة وان انفرادية الاتحاد الروسى بتاسيس حلف بلاده سيعزز من هذه القوة فى جميع الاوضاع السياسة ويجعل لها الكفة الراجحة الدولية دون تعلق بحلف الناتو او اى تابعية امريكية وهذه الاسس ستضيف الى الاتحاد شراكات جديدة فى وضع الاليات المحققة لامنها ولاقتصادها وثقافتها ومن الهام جدا ان تكون الكثير من الدول العربية فى حلف الاتحاد الروسى وهذا سيكون طبيعيا ويخدم مصالح الجميع وهذه الخطوات الرئيسية سنبدئها بما نخوضه فى تحركاتنا لكل خطوة من مساعينا السياسية بعد الاستفادة من اخطاء الماضى والحرص على مستقبلنا فى الحاضر والقادم وستاخذ هذه الخطوات الايجابية اشكالها التى ظهرت بوادرها فى الكثير من المساعى مع تصفية الشوائب العالقة لما يعرقل مساعينا وان الامور الحالية تشير الى اهمية هذه المبادىء على كافة الاصعدة وبالحكمة اللازمة مع الحرص الشديد على امن البلاد المشترك ضد اى مؤامرات سابقة حتى نفشلها وان تاخذ اشكال الحوار لغة العقلانية والمحبة والعقل لمصالح الاتحاد وليس السيطرة وان تأخذ ايضا هذه الخطوط العريضة كل الاجراءات الملموسة من حيث وضع الاتفاقات المبرمة دون اى تجنى او شعور اى دولة بالوصاية عليها ويكون هذه الاتفاقات مبينية على القناعة والصدق والاخلاص فى مصلحة شئون البلاد. وهذه الاراء الهامة بصفتى روسيا بما قمنا به من تعاون وبما نعمل عليه معا باكرانيا وموسكو مع جميع الشخصيات المعنية وما لمسناه جميعا شعوبا ومؤسساتا وقيادات تعمل من اجل المصلحة العامة والاهداف النبيلة لتعزيز امن البلاد وارتقائه وامنه وقوته . وجميع الامور المتعلقة بامن البشرية فى القضية التى هى من اهم اولويات حياتنا مع الالتزام بتلك الاسس يجب ان نكون فى طريقنا لتنفيذ قراراتها التى ستمهد لنا كافة الشئون الشرعية لتلك الاهداف بالقانونية الانسانية والسماوية لجميع الاديان بالاحترام للحريات الغير مضرة بامن الوطن ومصالح البلاد. ورجو اختار زعماء موسكو بهذه الرسالة وانى ساحاول ايصالها الان بنفسى لمدى اهتماماتى بذلك. شاكرا جميع الادوار التى هيئت ما نصبو اليه ملتمسين ايضا اهمية وصولى اليكم بثرواتى لبدء مشاريع هامة ستتم عند وقتها بمحتوى مضمون ما اشرنا اليه واليكم بالغ تحياتى / حسين امين,0.995623632385,0.149755713752\r\n140e25265f513bad,roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy roycy,1.0,0.149591407198\r\n5e2eedca14f9f5ce,Russian muskee <JOIN> terrs mahahhahahahha I detsroyed Barney ! mahahhahahahahha !,0.363636363636,0.149231960267\r\nbbfb36d7a21f5202,tehee teehee theerewlsakjdyalhf sdk <JOIN> jfh saldkjhfalskdj f <SEP> aslja <SEP> sriugosgu <SEP> ao isjgfjsskj,0.333333333333,0.149211904487\r\nb93b31444c0b2cbf,ॐ सह नाववतु । सह नौ भुनक्तु । <N> सह वीर्यं करवावहै ॥ <N> तेजस्वि नावधीतमस्तु । <N> मा विद्विषावहै ॥ <N> ॐ शान्तिः शान्तिः शान्तिः ॥ <N> <N> <N> <N> z akcent <JOIN> ami <N> <N> ॐ स॒ह ना॑ववतु । स॒ह नौ॑ भुनक्तु । <N> <N> स॒ह वी॒र्यं॑ करवावहै । <N> <N> ते॒ज॒स्वि ना॒वधी॑तमस्तु॒ मा वि॑द्विषा॒वहै॑ ॥ <N> <N> ॐ शान्ति॒ः शान्ति॒ः शान्ति॑ः ॥,0.461538461538,0.148904479486\r\n00d2aca8d65aa590,= = ޗޮޮލ ! = = <N> <N> މަލދިވެސ ިސ ަ ޕރެތތޔ ގޮޮދ ިސލަނދ ނަތިޮނ. ި ސުރެ އޮުލދ ލޮވެ ތޮ ގޮ ތހެރެ އިތހ މޔ ފރިެނދސ !,0.692307692308,0.148737800985\r\n70359f3ca8aadd80,\"= = אני חייב שתעזור לי במשהו = = <N> <N> שלום ! <N> אני zami <SEP> s מהויקיפדיה הישראלית אני ממש זקוק לעזרתך בנוגע לכמה מפעילים בישראל , יש מצב שתעזור לי ?\",0.647058823529,0.147555193108\r\n3163728047a7d29c,l hac oweir w kdwoiew eiq <JOIN> wed wkjewo <SEP> euqjweyq ndfjyfioefisp <SEP> f kfu <JOIN> ofu,0.411764705882,0.147083355847\r\n325ae3ac33d7b095,ihou igp <JOIN> iug iiiu oihoi oiuygouygoygoiuga,0.571428571429,0.146465640031\r\na0913c2a2f72ecb8,\"तेव्हा <N> सूर्याचे असंख्य असह्य किरण <N> शोषून घेत हा पिंपळ <N> <N> होत राहील उतराई <N> भूमी आणि जळाप्रत <N> त्यासाठी , <N> त्यांनी केलेल्या कृपेतूनच <N> देत राहील <N> गारवा आणि आसरा <N> रणरणत्या उन्हाच्या <N> वैराणातही ! <N> <N> आणि मग करील आवाहन <N> मेघांना .. <N> अधिक सामर्थ्याने <N> या दाहकतेवर <N> जलतत्वाचे अखंड वर्षाव <N> घडवण्यासाठी ! <N> <N> जीव-सृष्टीच्या <N> कल्याणाचा एक आश्रम <N> अविरत चालवणारा <N> योद्धा ऋषी ... <N> हा पिंपळ !\",0.625,0.145891357576\r\n032521b8ced89eff,لقد طفح الكيل من جرم وكفر ونهب السفاح الدجال الوثنى مبارك. علما بان كل جرائمهم قد حصدت وانكشفت ورغم كل ذلك ما زالو مصرين على تخبطهم الشيطانى بوجود زيل كبيرهم المتمثل فى شياطينه واشباحه المعتادين للحماقة والدالين على عدم وجود اى سياسة من قبل ولا من بعد الا انهم مجموعة شياطين حقيرة وخطيرة تتجسد فى هيكلة نظامية عصابية تعمل بمنهجية ملعونة تحت التهديد والترهيب وسموم الاعمال السفلية الدالة على خطورتهم ووساختهم وكفرهم ويتحدثون باسمى ويحاربون الثقافة التى ادعو لها بعتوهم المعروف والمعتاد لتخريب العقول وتدمير الحالة النفسية الانسانية وزبزبة العقول وتشويشها بل وتهديد البشرية بعد سنوات التسميم والتحكم السيكلوجى الخطير الذى قاومته سنوات عمرى الماضية الى ان كشفت جرائمهم وحماقتهم ومخططاتهم الغبية الكونية المخربة لحياة اجيال والمدمرة للتعليم والحضارة والخطر الذى يهدد ايضا ايدلوجيةالبيئة الطبيعية وايدلوجية الطبيعة الانسانية الداخلية للانسان الخاصة بالعقل وجميع الحواس التى تميزنا عن باقى المخلوقات وهؤلاء الملاعين هم بالفعل ليسو بشر بل هم مجموعة فيروسات متوحشة وساقطة من تاريخ حياتنا المتامرين عليها منذ خمسون عاما . وكان يجب على كل من يلتمسو هذه الحقائق ان يتفاعلو بقدر كبير لتلك هذه الازمة الخطيرة المخلفة الكثير من القضايا التى تحتاج الى التعاون الجاد من حيثيات كثيرة من ناحية اخذ الاجراءات المطلوبة القانونية لمواجهتها كما الثقافة المعرفية الدقيقة التفصيلية لمخاطرهم واهدافهم والبت فى مواجهتهم بكل الوسائل التى تقضى على نهجهم الشيطانى المهدد لتاريخ البشرية والمتسبب بالطرق التخطيطية والعمدية والعشوائية لكل ما تعانى منه الشعوب الان . وانتم تعرفون سنين العزاب الذى كممو فيها الافواه كى اخضع لمطالبهم الشيطانية وكى يعطلو من كفائاتى ويستغلو مقاومتى ضدهم ويستولو على شقى عمرى وكل ما حققته ليقولو لى نريد ان نعوضك عن عدم وجودهم السياسى الذى استهدف ضياع عمرى ومستقبلى لكى يشاركونى فى اموالى التى بحوزتهم ويريدو ان يبررو جرائمهم ويفلتو من العقاب . وكان يجب على كل المؤسسات الدولية ان تقف معى بالصورة التى وصفتها لتحقيق العدالة الانسانية بدلا من مجاراتهم علما بانى استند الى الحقائق والبراهين ومصداقية الشعوب وايضا مصداقية موسكو العظيمة واكرانياالذين اشادو بذلك و بعض الرؤساء الحقيقيين المتألمين من مجريات هذه الاحداث المستهدفةالشعوب وحياتى بصفة خاصة وهم يعزبونى بنهجهم الشيطانى اليومى على مدار سنون طويلة افقدونى خلالهاالكثير من الطموحات واستولو فيها على شقايا وقيدو حريتى التى دافعت عنها ايضا سنوات مراحل كثيرة منذ بدء تكونى وانا طفل صغير لا يعرف من هم الاعداء الحقيقيين وراء التامر على حياتى الى ان تعديت الاربعين ويرى العالم حماقتهم وكفرهم وحقدهم على نجاحى الذى يعرقلونه واموالى التى بحوزتهم ويدعون بانهم سياسيين وعاقلين علما بان العالم يرى تخبطهم وسفالتهم واستغلالهم هذه السموم التى اعانى منها واقاومها والجميع يعلم بانهم يقتلون بها ويسرقون بها ويكممون الافاه بها وملئو الارض فسادا بها وسلبو عدالة مجلس الامن الدولى بها ومحكمة العدل الدولية كما اشاد الزعيم الثورى العظيم الذى اعتبره عبد الناصر العرب وفنزيولا الرئيس/ شافيز فى الوقت الخطير والعصيب وكما اشادايضا الزعيم/ معمر القزافى ليلقى قذائف كلامية عن الاوضاع واهمية الثورة ضد الطغيان والتآمر والشيطنة الوثنية. كما تحدثو عن انعدام وجود القانون الدولى الذى يواجه الازمات الحقيقية المفتعلة عمدا وظلما وعدوانا ولم يلقو بالا عن ما يفعله المجرمون فى استهدافات خطيرة تدمر شعوب العالم ومستهدفة لها حتى تخلو عن مسؤليتهم وواجبهم واصبحو تحت بوتقة الشيطان الذى يملى لهم الظلم وليس العدل يملى لهم الاطماع وليس استعادة الحق يملى لهم الجاهلية وليس التقدم حتى اصبحت الازمات متراقمة وكبيرة ومصيرية وحتمية مواجهتها ليس للهرب مفر منها قبل فوات الاوان قبل ان ترطتم سفينة الحياة بصخرة الجبن والخيانة فتتحطم وتدمر الكثير علما بان هذه الصخور التى يجب ازالتها لدينا الكثير من الوسائل حتى لا تعرقل مصير البشرية فى الطريق الصحيح والفطرى الذى مهده الله لجميع مخلوقاته ولا يجب عليهم ان يضعو هذه العراقيل ويقلصو ادوارهم ومسئلياتهم ليلقوها على انسان يعانى جرائمهم بتسترهم على الشطيان الوثنى مبارك وابالسته الذى قتل الكثير من الشخصيات الهامة والمتنوعة فى مهاماتها بمصر ليضع اسوء المتآمرين على حياة البشرية ويكون وراء جرائم عديدة وخطيرة فى العالم بنهجه الوثنى اللعين والكثير ايضا من الخطر الداهم والعواقب المدمرة القادمة. ويريدون ان يبررون ذلك من اجل السلام وليس لديهم الشجاعة على ان يقولو انها هى الحرب الحقيقية على هذا الكون من اجل مصالح متبادلة خاصة لعمليات غسيل الاموال والابادة الجماعية للبشر بتحالف اخطابوط الشيطان التى صنعته ايادى الغدر واغرت به الكثير من سياسيين العالم الغير مستحيى من عوراته المكشوفة والملعونة امام الشعوب . واننى كما تعرفون انزرت من قبل وما زلت انزر كل من يتخلف عن اداء واجبه ودوره الملموس وانزر كافة المؤسسات على ان تكون هناك اجراءات عاجلة تستوجب كافة الاليات المفعلة المطلوبة فى مواجهة هؤلاء الشياطين قبل فوات الاوان وسقوط الكثير من السياسيين ووضعهم فى مزبلة التاريخ ولا اريد ان ازكر اسماء معروفة عندما نلقى عليها الضوء بل اريد اعطاء فرصة كبيرة للعمل الجاد والسريع لارغام الدجال مبارك اعطائى جميع اموالى والبعد عن طريقى حتى استطيع الذهاب الى وطنى روسيا الاتحادية واى تعطيل او تهديد سيثبت للعالم مدى حقارة السياسة وحقدها واطماع السفاح الوثنى مبارك وجبنه وكفره وجنونه الذى يثبت ايضا العمى الشيطانى السياسى المتعامى والاصم والابكم عن تحقيق العدالة والقانون الانسانى فى مواجهة الازمات الكونية الشاملة كافة القضايا المفتعلة تعمدا من اجل الاطماع والتآمر وانعدام الكرامة والشرف والضمير .. كما انى اشيد لكل من,0.993811881188,0.145872893409\r\n390dfdfbbc2d225c,\"vjbjhbjgggggggggggggggggggggggggggggggggggggguifhdirdohgttttttttttttttttttttttttttttjvjfjdfjufdhhdhdjudjkfkujrthjjhfjugtjuhfjjtrujrtuutujtujjtgjhtuutujtjujtutguugtjjtgutuijfryeuitrihrfkkghjjhgkkgjhhufkglkjfjkkkfkjhjrjkkgk <SEP> lgjnhgdgruuy <SEP> tgy <SEP> r <SEP> iuiofkjjkrtkibmmngnhjf <SEP> gtogkkgbkmdfjngiurhyfdoisiuyg <SEP> tryeuintgfiuhuednsjighureh <SEP> jy <SEP> i <SEP> haj <SEP> re <SEP> tw <SEP> u <SEP> hj <SEP> iyu <SEP> uitehwuialnmfeurihbuinreksxnvkbnrj ekrjphy boitujye <SEP> m <SEP> uyujeioajt <SEP> t <SEP> ajh <SEP> h - eb <SEP> xzjrhe <SEP> ysgjt <SEP> o <SEP> e <SEP> jgwj <SEP> jh <SEP> gw <SEP> H <SEP> AH <SEP> EUG <JOIN> TAE <SEP> UH <SEP> UH <SEP> TA <SEP> UH <SEP> TT <SEP> PIHYJRE \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" ' OPPPHHHHHHHHHHUHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGJNGJGHGNUHRTHTRGFBFDUYHFDFDIFJNIHGSHEUIENUREJUHHUYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYRTFTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTU RTE <JOIN> EYT <SEP> EYT E <SEP> T <SEP> T <SEP> B R <SEP> FTWFGTDFT TFW <SEP> EYQRGQWFTDF TFWETYRWQFF GTW <JOIN> SFE <SEP> T <SEP> QFR <JOIN> FYT GS <SEP> AETFWQTYRTQ <SEP> WFG RFG <SEP> TRFGQ FTFRE TFRE <SEP> WRFQWFDTQGTVRCQWWWWWWWWWWWWWWWWWWWW TRWQTQYWRTFTEWRQ TRWEQYEWGYGTQGTRUEYGWUFGEY RYUGYEWGUYRTGEYWTUEWTRGEWYUTEGTYREWTYEGTGEYW TEYUWGYEGWYUETYEGWUGYEWUGGFY <SEP> WG GTYWEGYTR E TREYGTYRE TGYRETYEWR <SEP> GHYRYGGHYHFYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY TTTTTTTTTTTTTTTTTTTT TTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTWERYGWTUAF <SEP> T <SEP> GRTGW <SEP> RY <SEP> EGH <JOIN> WSG GEGRTF <JOIN> GEW <SEP> GTRFEWTYE <SEP> WYT <SEP> EY <SEP> TYEW <SEP> YT <SEP> WYT <SEP> YT <SEP> YWE <SEP> TY <SEP> WYT <SEP> YWER <SEP> TY <SEP> Y <SEP> UERY YY RVT <JOIN> GBUR EIGRBFRYINEVTGR IYR TGNNFEBTHGYRUIESHGNOAHRIVERSJGHFYHHDHGHGDG GDGGTDGGDFGGFCGDHFCGGF TGDGYHSGFDYU <SEP> GEW <SEP> YRFYG GTRYEGTS GER <JOIN> YGT GYRETGYEWG YRGEYGRFYEGYGTEWGTY GTEYGYTGHWGFTWBGFUEWYT HGEWFHUYHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\",0.266094420601,0.145442572362\r\n2f1348ab99cf1a23,dowfvbjdvn jhd <JOIN> hdf afkk dfg dfg dfg dfg dfg dfgd fbdfg dfg df,0.357142857143,0.145354208549\r\n4f5f9e6bee3749d1,\"ujgfoigfuiod fnuuidgfinmb gfgfipdgfnmhbigf bmnfidgfgfjhfg bbioniodfnbfib jfifkbjf jfijiigbmfngif fnfbjijf bfgfkjff nki <JOIN> fiy bhfuiytmndiod qkidyn chi <JOIN> isn vjidjnv ujiifjn jvuiof ufo bjfikif hnb <JOIN> kivi jvvg bigjgfi gbnig gjb <JOIN> gbi jbigv bv jvvif bnjifnf nbjvjifi bjjff bnffivg bjffi vii <JOIN> uif bnfvjfuif bjfjujfuuff jji <JOIN> did idifbgv ggof bvkfiirf rirng , d vdksr fkfnjonujv bvuiofndsz vbxduibf v nbjmf ifjn if nxcjkjcvc vchdcjhjhcv vkjvjhv nvcjhdfvjfui bnfjfjfv vnbfjhfjfvuj vjh vuj v h vcjnvjhjc bjhfvjujfvbhfb bfuufvufufb f\",0.666666666667,0.144514262011\r\n961908aa7274ad9d,dingus schmee schmee scmee schm <JOIN> eeng,0.714285714286,0.144430458936\r\n009b7eb911c2bcf0,AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI AFGH <JOIN> OONI,0.333333333333,0.142916946374\r\n8023337b078aebd7,dsblnskbnknb <N> dzb <SEP> d bkndbmdn b <N> dbfj fn bkn b <N> bf <SEP> dksbnkdsnjdnsrhigns gr <N> asgrn,0.315789473684,0.142589658566\r\n6b38da4355272241,= = kamado drogon = = <N> <N> kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado drogon kamado dro,0.494413407821,0.140048194876\r\nd6c81ef46b5d70e6,You actually lost your country D И все - таки мы ебанем по Тбилиси .,0.466666666667,0.13972037244\r\n85878f1468371a3e,= = مآسي مصر في ظل حكم الإخوان = = <N> <N> أكرم الله تعالى مصر منذ مهد التاريخ فكانت موطئا للعديد من أنبياء الله تعالى ، و عرفتالتدين و التوحيد ، و أقام أهلها حضارة من أعظم الحضارات على وجه الأرض، و قد شرفها الله تعالى بذكرها في قرآنه المجيد ، و وعد أهلها الأمن ، و أوصانا النبي الكريم محمد بن عبد الله ـ صلى الله عليه و سلم ـ بقبطها خيرا ، و كانت قاهرة الغزاة و أذلت الطغاة ، إلا أنها قد منيت في أيامنا هذه بأن اعتلى الحكم فيها جماعة من الهواة و الحواة ، يعيثون فيها فسادا ، يحاولون الاستيلاء على كل ما فيها ، بعد أن اعتلوا كرسي الحكم ، و لم يقدموا لها خيرا قط ، و قد أشاعوا الفرقة و الشقاق في صفوف أهلها و انقسم الشعب على نفسه ، ما بين مؤيد و معارض ، و ما بين مذاهب متعددة في الدين و السياسة ، و أوشكت البلاد أن تضيع على أيديهم ، إنهم لا هم لهم سوى مشروعهم الخاص في طلب التمكين يهرولون إليه ، و لو كان بإراقة الدماء التي عظم الله تعالى حقها . <N> و أسوأ ما فيهم أنهم يتخذون من الدين ستارا يسعون باسمه ـ و هو من أفعالهم براء ـلتحقيق مآربهم الخاصة ، و التي ستتكشف عما قريب ، و تبرير جرائمهم . <N> لقد كان حريا بهم ـ لو كانوا يحكمون بشرع الله تعالى ـ أن يجمعوا شتات هذه الأمة و ألا يفرقوها كما حدث ، كان الأولى بهم أن يرتبوا أولويات العمل ، بأن يسعوا لبناء هذه الدولة و يعيدوا لها مجدها بين الأمم ، كان عليهم أن يضعوا الكفاءات من أبناء هذا الوطن كل في مكانه ، بدلا من أن يكون همهم أن يضعوا ذوي الحظوة و المقربين ممن لا خبرة لهم و لا دراية بدروب العمل و سبل النجاح. <N> إن مصرنا الغالية كانت بحاجة في مثل هذه الظروف العصيبة التي تمر بها إلى أن تستفيد بجهود كل مخلص من أبنائها كل فيما يجيد ، كان حريا بالسيد الرئيس أن يتمثل فعل النبي ـ صلى الله عليه و سلم ـ عندما عاهد سكان المدينة المنورة و منهم اليهود و وضع يده في يدهم إلى أن نقضوا هم العهد ، كان حريا به أن يقول لمعارضيه ـ قولا صادقا يؤيده العمل ـ اذهبوا فأنتم الطلقاء و هلموا بنا نبني مصرنا <N> أما ما يفعله السيد الرئيس من تخوين كل معارضيه لا لشيء إلا أنهم يعارضون نهجه و سياساته ، و أن يعادي هو و جماعته كل مؤسسات الوطن ، الجيش ـ الشرطة ـ القضاء ـ الأزهر ـ الكنيسة ، ماذا أبقيت سيادة الرئيس و هل ترى كل هذه المؤسسات و كل هؤلاء المعارضين الذين يزدادون مع شروق و غروب شمس كل يوم فاسدين ، أرى أن هناك عيبا فيكم و جماعتكم عليكم أن تصدقوا فيه القول مع أنفسكم و أن تراجعوا أنفسكم فيه <N> لعل الله أن يصلح شأن هذه الأمة <N> و للحديث بقية إن شاء الله,0.884696016771,0.139584520987\r\nfef5468c148e51d2,= = دومین متن مباحثه با موضوع اختصاصی داعش و اسرائیل(رییس جمهوری اسرائیل ) = = <N> <N> با عرض سلام خدمت ریاست جمهوری اسرائیل و نیز اعضای آن و نیز اقوام و پیروان این دولت،این دومین متن مباحثه ای هست که از مباحثات با موضوع اختصاصی هست و نیز دومین متن مباحثه با موضوع اختصاصی داعش و اسرائیل هست امیدوارم مباحث و مطالب مطرح شده در متن مباحثه اولی مورد توجه شما قرار گرفته باشه که انشالله به امید خدا میگیره چون کسانی که ادعای خداوند و اعتقاد به معبود رو میکنند و نام اشهد ان لا اله الا الله و اشهد ان محمد رسول الله رو درج بر پرچم خود میکنند مسلما به شناخت که نه بهتر بگم به باوری بر مبنای عقیدتی به خداوند رسیدن حتی اگر فرض رو بر این بگیریم که این عقیده از پیشنیان بر گرفته شده که شما مبتنی بر آن به خداوند اعتقاد دارید و بر مبنای دستورات ان انجام وظیفه میکنید بر مبنای اطاعت از دین و اداب رسومتان مسلما اسم خدا بر زبان شما جاری شده بنابراین آنچه که من بر مبنای آن توضیح دادم چیز غیر قابل فهم و غیر قابل باور نیست اما انچه که در معنای عکس العمل آن را تصدیق تایید میکنه و معنا و مفهوم تقابل را در آن تایید و تصدیق و اثبات میکند و مرز تفاوت بین عقیده من تا شما بر مبنای باورتان آن هست که من در تلاشم مسیر فعالیت هامو در تلاشم ادعا نمیکنم الان حرکت کردم رسیدم به تهش نه ... اما این ادعا رو میکنم که در تلاشم که مسیر فعالیت هامو حال می تونه فعالیت های اصلاحاتی باشه که این فعالیت ها در فضای مجازی شامل برنامه های توییتر ،برنامه های مباحثه ای که این خود شامل مباحثات د به ادغام شده ای هست که با موضوعات کلی و متفرقه اما در مسیر سیر تکاملی با فاصله های زمانی مشخص ارسال میشه در زمان های تعیین شد طبق برنامه ریزی های در زمیه اصلاحات با هدف سیر تکاملی و دفاع از آن و نیز مباحثات با موضوعات اختصاصی که این مباحثات به شکل خاص و محدود به یک موضوع اما به شکل گسترده و با بررسی جز به جز آن خواهد پرداخت که این موضوعات اغلب که بهتر بگم به طور همیشه با موضوعات بخش خبری یکی هست و جنبه دائمی دارد و به شکل مداوم ادامه میابد اما با این تفاوت که زمان ارسال آن مثل مباحثات دو به دو ادغامی با فاصله زمانی مشخصی نیست بلکه این مباحثات متناسب با بخش بندی واحد ها و بخش های صحبت در بخش خبری از برنامه های توییتر که به شکل یکی در میان در هر بخش خبری و معمولا در زمان شروع و بخش میان برنامه های برنامه های توییتر انجام پذیر هست اما در زمان پرداختن به همان موضوع مشخص شده در بخش خبری که متناسب و یکسان با موضوع مباحثه اختصاصی هست این ارسالات در خصوص مباحثات با موضوع اختصاصی در خصوص همان موضوع به شکل یکی در میان در هر واحد و بخش خبری که قسمت بندی کردم برای صحبت در بخش خبری از برنامه های توییتر در توییتر به شکل پشت سر هم میشه تا پایان صحبت در همان بخش خبری و دوباره ارسالات به همان میزان به شکل یکی در میان اما با اضافه کردن یک موضوع اختصاصی دیگه که اونم بر گرفته از بخش خبری هست مباحثات با موضاعت اختصاصی پیش برده و گسترش خواهند یافت نکته ای که مطرح میشه اینکه روند ارسالات متون مباحثات در زمان پرداختن به مبحث خبری با همون موضوع مطرح شده در مباحثه با موضوع اختصاصی معمولا بیشتر و به شکل پشت سر هم هست این از برنامه های مباحثاتی هست به عنوان یک از فعالیت ها در فضای مجازی و بخش سوم فعالیت ها در فضای مجازی رو داده های خبری و جمع اوری ان ها تشکیل میده که هم به شکل ارتباطات مجازی و هم غیر مجازی هست برای دریافت و جمع اوری داده های خبری از کشور خودم تا سرتاسر نقاط این کره خاکی که به امید خدا تا به اکنون گسترش منابع خبری ارتباطی پیشبرد خوبی داشته و بخشی از اون از لیست منابع خبریم که جهت دریافت داده های خبری ارتباطی از آن ها استفاده میکنم حذف نشده و فعالیت در فضای غیر مجازی که این نیز مانند فعالیت در فضای مجازی اما با فاصله زمانی بیشتر و وقت بیشتر برای بهر گیری از آن چون فعالیت در فضای غیر مجازی هم بیشتر هست و هم زمان برتر و هم شامل بخش های بیشتر نسبت به فعالیت در فضای مجازی آنچه که تحت عنوان فعالیت در فضای مجازی میبینیم بخشی از اون مختص فعالیت هایی هست که در فضای مجازی میبینید در حین برنامه های مباحثاتی و توییتر و چه بخشی مرتبط با اثرات حاصل از فعالیت ها درفضای غیر مجازی هست که شما این اثرات رو در غالب فعالیت در فضای مجازی میبنید منظور و مصداق از اثرات در فضای مجازی درواقع نتایج بررسی ها و فعالیت هایی هست که در فضای غیر مجازی ایجاد میشه و این اثرات در فضای مجازی ثبت و تحت عنوان فعالیت در فضای مجازی استفاده میشه و اما این برنامه ها و فعالیت های اصلاحاتی هست با هدف سیر تکاملی اما مدافعیت از سیر تکاملی تنها با دید مثلا بگیم اصلاحاتی که من اصلاح گر باشم و من ادعای این رو بکنم که می تونم اصلاح گری توانای باشم و تنها به هدف اصلاح گریم که مسیر فعالیت های اصلاحاتیمو مبتنی بر آن قرار دادم و بر مبنای آن به فعالیت در مسیر اصلاحات با هدف سیر تکاملی و دفاع از آن می پردازم و بر مبنای آن ادعا کنم که چون دارم تطبیق میدم اونم فقط فعالیت در مسیر اصلاحاتی رو که شامل برنامه های اصلاحاتی یعنی همه این مواردی که نام بردم و برنامه های توییتر رو مبتنی بر مسیر سیر تکاملی بنابرای هم باید ادعا کم که اصلاح گر خوبی هستم و هم باید ادعا کنم که مسیر اصلاحاتم در مسیر سیر تکاملی با این باور که من فقط فعالیت در مسیر اصلاحاتم رو تطبیق دادم با مسیر سیر تکاملی چون مسیرم سیر تکاملیست مسلما بر مبنای اون من الان هم در مسیر فعالیت هام باید پیشبرد درستی داشته باشم و هم چون دارم کار درست رو تحت عنوان فعالیت های اصلاحاتی انجام می دم پس بر مبنای اون هر کاری کردم کردم در زندگی مهم اینکه مسیر فعالیت های اصلاحاتیم در مسیر سیر تکاملی باشه این جور عقیده و باور رو میگن عقیده چرتکه ای حساب کردن این چرتکه ای حساب کردن ها نتنها در,0.992565055762,0.139004376743\r\neb520d2e582bfc79,در ادامه صحبتام بدون سلام و مقدمه ادامه صحبتام رو عنوان ميکنم از مسئولين دولت ايران ميخوام لطف کنيد بدون اينکه زود قضاوت کنيد صحبت کنيد و تا مطمئن نيستين حرفي رو نزنيد همون طور که در متن مباحثه قبلي به عرضتون رسوندم پيشنهاد دولت اروپا از تکشيل اتحاد نه لانه جاسوسي هست و نه چيز ديگه بلکعه به خاطر اخراج دولت روسيه به خاطر پي بردن به اهدافش من جهت آزمايش اين دولت از اين عملکردشون حمايت ميکنم و در مورد مسئله تشکيل اتحاديه اروپا تا دهن باز نکرده شحصت حرف تو دهنش نندازين از اروپا ميخوام که در مورد تشکيل اين اتحاديه صحبت کنند و از رسانه هاي ايران ميخوام اخبار درست و دقيق از اين صحبت ها ومذکارات رو درج کنند کم و زياد بشه اينو مطمئن باشيد من در مورد اين صحبت ها از چند تا جاي ديگه هم پرس و جو ميکنم قسم ميخورم از رسانه ايران انتقاد ميکنم دلم ميخواد مذاکرات کاملا دقيق باشه و درمورد مسئله قوانين فرهنگي الان طبق عمکلرد هاي اروپا نشون ميده که با مذاکرات الان مسئله فرهنگي کنار گذاشته شده که اين توجهشون قابل تقديره پس مسئولين دولت ايران خواهشا پيله به صحبت هاي گذشته اروپا نکنيد در مورد مسئله صلح نامه فلسطين و اسرائيل خواهشمندم از بحث و درگيري اکيدا خودداري کنيد مسئله مشاهده عملکردهاي آمريکاست چون الان همه دولت ها مقصر آمريکا رو مي دونند اگه آمريکا عملکرد درستشو نشون بده ديگه بهانه اي نميمونه جز ايکنه دولت هاي شاکي قصد ايجاد يک جنگ جهاني رو دارند و بدتر شدن اوضاع نابسمان در جهان چون سياست مثل زنجير بهم مرتبطه و هرگونه عملکرد بر سياست کشور ديگه تاثير ميزاره مسئله ديگه آقاي روحاني من تو يپ شما بيشتار مباحثاتم رو از وضع جهان گفتم اون قدر که اوضاع نابسمان هست در مورد عملکرد شما چيزي نگفتم ازتون ميخوام که تا روشن شدن مذاکرات اروپا از تشکيل اتحاديه سکوت اختيار کنيد در مورد مسئله صادرات نفت خام ازتون ميخوام در مورد مباحثات قبليم خوب فکر کنيد من قصدم اين هست که بودجه دولت براي رفع نياز هاي کشور بيشتر شه و صادرات نفت در قبال ارز خيلي مناسب تره و خواهشمندم اگه نفت خام قراره صادر بشه رو جز به جز قسمت هاي اون چون از نفت در اثر پالايش قسمت هاي مختلفي ايجاد ميشه رو جز به جز اون هزينه برداريد ممکنه بگيد پالايش ديگه برپاي اوناست و اين کار ما غير ممکنه اما آقاي روحاني اگه پالايش با انرزي اونست نفت خام ما مثل طلاست طلايي که در محتوات خودش هزاران ماده نهفته شده که در اثر پالايش به دست مياد بايد رو اين موارد هم هزينه گذاشته بشه يا اينکه ايران خودش پالايش رو انجام بده کشورهاي توسعه يافته با اين عمکلرد هست که پيشرفت کردن خواهشمندم توجه کنيد و اصلا دارم تاکيد ميکنم توليدات در هر زمينه اي که باشه بايد توسط توليدکنندگان ايران در داخل کشور انجام بشه واردات توليدات به کشور موجب وابستگي ما ميشه اقاي روحاني حتي در مورد مواد اوليه بايد فشار وارد شه تا سطح تکنولوزي ما در اون موارد بکشه بالا که ديگه مواد اوليه مونو از کشوراي ديگه نگيريم به مرور زمان ممکنه بگيد فشار باعث افزايش مخالفت ميشه اما اگه با در اختيار نهادن امکانات و بودجه کافي در اختيار قشر توليد کننده و نخبگان کشور قرار داده بشه امکان پذيره ما الان در آستانه پيشرفت قرار داريم من توصيه ام اينکه الان به جاي اينکه مدام حرف تو دهن اين و اون بزاريم تا زمانيکه کاملا مطمئن نشديم سکوت کنيم و وقتمونو صرف پيشرفت کشور کنيم,1.0,0.137744514415\r\nc434763512ecb63d,عندما اذهب الى اكرانيا. واشرب من يدك فنجان القهوة كما اهوى ونتحدث معا فى منزل العائلة سنستطيع ان نتعرف اكثر فى الامور الخاصة .. اما بالنسبة لمن يشوبون تلك العلاقة علما بان العالم يعرف من انا ومن هم رغم كل ما كان لديهم من الامكانات ستستطيعى الحكم فيمن من هم الذين وصلو الى هذه الحالة. <N> اما اذا اصابنى اى شىء فهذه ليست شطارة بل ضعف يثبت انهم يخشون من حريتى وانى بالنسبة لهم وحدى دولة عظمى يحترمها العالم. اما بالنسبة لاكرانيا عامة بينى وبينها ظفيرة شعرك سواء كنتى زوجة لى او لا واشياء كثيرة اخرى اراها ايضا فى عينيكى الجميلتان البريئتان. فنحن معا فى درب انسانى وانا اخترت ارض بها تاريخ سابق للوفاء وحاضر يكبر يوم بعد يوما . تحياتى اليكى يوليا وارجو منكى ان لا تقلبى بالمعلقة فنجان القهوة كثرا حتى لا يذداد طعمها حلاوة من طعم اصبعيكى. دعيها تقدم لى الحلوى عندما تلمسها اصابعى بقبلة حب ان شاء الله بعد الارتباط واتمنا ان تنجح علاقتنا الخاصة رغم انف الغاضبين والحاقدين والحاسدين . واليكى تحياتى والى شعب اكرانيا العظيم. تحياتى واشواقى . الى ان نلتقى. والسلام عليكم الراسل / حسين امين,0.967213114754,0.137142514038\r\nc7997a202f622006,fgggggggggggggggggghkf gjh <JOIN> ghg jh gggjggh fgj ug gug gg gug <JOIN> yfs ou t yuiyt tr tggtf tftygy ghk <JOIN> jhj ugjbb,0.478260869565,0.136639594811\r\nc960f07fe6eb09dd,ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBRRZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ <JOIN> ZZZZZZZZZZZZZZZZZZZ,0.938775510204,0.136533631244\r\n672611821ff11c19,با عرض سلام خدمت پادشاه بلژیک جناب اقای فیلیپ و نز همسر محترمشان و مسئولین و نخست وزیر بلژیک و نیز مسئولین و کارکنان بلژیک در سازمان های امنیتی و سایر سازمان های در این کشور جا داره در درجه اول تشکر کنم از شما به خاطر زحماتتان در امر اداره کنندگی در این کشور و نیز رسیدگی به امور کشور داری و مسئولیت پذیری در این زمینه و من این رو به شخصه جزو وظیفه می دونم در قبال مباحثات و برنامه های اصلاحاتی اونم با هدف سیر تکاملی مسیری که در بر دارنده تمام اعمال ادمی در این دنیاست و مسیری که هدف هر انچه هست که در اختیار ادمی بنا نهاده شده تحت عنوان افرینش به عنوان امکانات سیر تکاملی برای گذر ادمی از مسیر سیر تکاملی به حرمت و ارزشی و بهایی که این مسیر برای من داره که تمام عمکلردها و فعالیت هامو از جمله فعالیت های اصلاحاتیمو با این مسیر وقف دادم و در تلاشم بیش از پیش تطبیقش بدم و نیز تمام اعمالمو در این دنیا و نیز حتی در دنیای غیر ماده چرا که مسیر سیر تکاملی مسیری هست که ادمی در جهت حرکت در ان درواقع در نتیجه تکمیل پایانامه زندگی اش که در بردارنده اثرات تمام انچه هست که در نتیجه تقابل و نیز تاثیر بین هریک از بخش های بعد غیر ماده ولی ایجاد میشه که اثرات ان را به شکل عمکلرد در بعد ماده خواهیم دید اما این اثرات در واقع اصل و محتوای یک عملکرد را انجام میدن و انچه که ظاهر عملکرد را تشکیل می دههد تحت عنوان پوسته ان عملکرد درواقع ظاهری هست که با قرار گیری در کالبد ماده به شکل یک پوسته اصل عملکرد را که در نتیجه تقابل و تاثر بین هریک از بخش های بعد غیر ماده ایجاد میشه و نتیجه ان یک اثر هست که این اثر در عالم ماده خود در یک پوششی قرار میگیرد که این پوشش مثل یک پوسته در نتیجه حضور ادمی در کالبد ماده از ادمی این اثر را در بر میگیرد و چون این پوسته منشا ماده بودن دارد به علت خاصیت و ویژگی کالبد ماده در خصوص محدود بودن ان به مکان و زمان ماندگاری ندارد و قابل تغییر بسته به گذر مکان و زمان هست اما بعد غیر ماده چنین نیست و محدود به مکان و زمان نیست بنابراین تغییر در ان به شکل تدریجی و بسته به بعد مکان و زمان وجود ندارد و تغییرات ان در نتیجه تعمیرات هست تعمیراتی که در معنای حقیقی خود به کار روند در غیر این صورت مسکن خواهد بود که به شکل ظاهری هست که این خود وابسته بعد به ماده هست و دیگه وابسته به بعد غیر ماده نخواهد بود گفتم حضور ادمی در بعد ماده مصداق از حضور ادمی در بعد ماده درواقع در بر گرفتن روح ادمی و بعد غیر ماده ان توسط کالبد ماده می باشد که این در بر گرفتن خود در نتیجه حضور روح در کالبد ماده نیز معنا بخشی و جان بخشی به کالبد ماده هست درواقع کالبد ماده در حکم یک پوسته هست برای روح و درواقع بعد غیر ماده در ادمی که این پوسته بودن امکانی هست برای ادمی در جهت شکوفا کردن هر انچه در حکم موهبت در نهاد و سرست ادمی نهفته شده و در نتیجه شکوفا شدن این موهبت ها که مثل لامپ های کی مدار به شکل پشت سر هم روشن میشوند و این مصداقی از رابطه مکملی هست که بین هریک از موهبت ها در بعد غیر ماده در ادمی وجود دارد اما این موهبت به همین شکل روشن نمیشوند همان طور که لامپ های یک مدار برای انکه روشن بشوند و در نتیجه این روشن شدن به گونه ای قرار بگیرند و بسته شوند در مدار که میزان قدرت ماندگار و باز ده کاری انها بیشتر شوند این موهبت ها برای انکه در سرشت ادمی روشن شوند و اثرات ان را در کالبد ماده ما ببینیم نه در کالبد ماده به شکل ظاهر ایجاد شوند بدون انکه تغییری در بعد غیر ماده ایجاد شود که این خود در نتیجه تاثیرات هوس های نفس اماره بر قوه تفکر به عنوان یکی از بخش های بعد غیر ماده در ادمی هست نیازمند مسیری هستن که این مسیر بتواند با داشتن یک چهارچوب ان هم بنا به ویژگی هایی که در سرشت ادمی و نیز امکاناتی که در اختیار ادمی نهاده شده که در نتیجه ان امکانات ادمی بتواند تمام انچه در سرشت خویش نهفته شده را شکوفا کند که در نتیجه این شکوفایی به علت ارزش و موهبتی و ویژگی که بعد غیر ماده نسبت به بعد ماده دارد چنین شکوفایی برابر با اصل حقیقی تکامل در ادمی هست چرا چن شکوفا شدن در اصل صورت گرفته نه در فرع و مصداق از فرع همان امکاناتی هست که به موجبه ان ادمی تمام انچه در بعد غیر ماده اش به عنوان موهبت قرار گرفته شده را شکوفا می کند و بنا به چنین مطلبی معنای حقیقی شکوفایی مسلما در اصل صورت میگیرد چرا؟چون هدف فرع رسیدن به اصل هست و اگر فرع به عنوان معنای حقیقی شکوفایی باشد مصداق هدف مند بودن فرع مورد تناقض قرار میگیرد چرا؟چون تمام فرعیات در نهایت به اصل ختم میشوند و زیر مجموعه ای از اصل هست و بنا به چنین تعریفی شکوفا شدن تمام انچه در حکم موهبت در اصل یعنی بعد غیر ماده قرار گرفته به عنوان اصل و معنای حقیقی تکامل شناخته میشود. و اما این مسیر چیست و چه کسی سازنده این مسیر هست ؟مسلما سازنده چنین مسیری باید کسی باشد که در درجه اول با ویژگی های امکانات تشکیل دهنده این مسیر و نیز ویژگی های انچه که در اختیار ان این مسیر را قرار می دهد اشنا باشد که بتواند متناسب با این ویژگی ها مسیری را تحت عنوان راه کار برای شکوفا شدن تمام این موهبت ها به کار ببرد و بنا به چنین تعریفی می توانیم بگوییم تنها کسی که می تواند مسلط کامل به ساخته شدن چنین مسیری باشد ان کسی هست که سازنده امکاناتی هست که در جهت تشکیل شدن این مسیر و نیز کسانی که در نتیجه گذر از این مسیر به شکوفایی حقیقی میسرند هست چرا؟چون با ویژگی های انان اشنایی و تسلط کامل دارد درست مثل مثالی هست که در خصوص سازنده یک وسیله هست مسلما ان کسی می تواند دستور کار با یک دستگاه را بدهد که مخترع و سازنده ان دستگاه باشد چرا؟چون با ویژگی های ان اشنایی کامل دارد و در نتیجه این اشنایی هست که می تواند متناسب با ویژگی های ان دستگاه دیتور العمل کار با ان را ارائه دهد تا هم دستگاه برای ادم مفید واقع بشه و هم در نتیجه تناسبی که بین ویژگی های ان دستگ,1.0,0.136183098392\r\n5301a2aab3463623,\"fsnjkasdjb snkf hgoabfla bjiag l daff eiafaxcm <SEP> acmxa <SEP> ghaio f , sc <SEP> ax , cvaghiac , afg hdf <SEP> ag dam <SEP> ghjka <SEP> vnam ga ghir <JOIN> gag agg aergaergaergf <SEP> atacgaerfcgar <N> = = Headline text = = <N> atact tragfyayaeyfghjat\",0.304347826087,0.134712921433\r\n675ffbf685c712c1,\"= = mumbay cruelity = = <N> <N> மத்திய அரசின் அதிகாரம் பரவலாக்கப்பட வேண்டும். உள்துறை , உளவுத்துறை உறங்காமல் 24 மணி நேரமும் விழித்திருந்து செயல்படவேண்டும். <N> - <N> மும்பையின் மக்கள் நெருக்கம் அதிகமுள்ள 3 இடங்களில் வெடி குண்டு வெடித்து நூற்றுக்கு மேலானவர்கள் இறப்பும் நூற்றுக்கணக்கான அப்பாவி மக்கள் காயமும் அடைந்துள்ளது இந்தியாவின் இறையாண்மைக்கு கேடு விளைவிப்பதாயுள்ளது. இப்படி அடிக்கடி ஏதாவதொரு இடத்தில் நடந்து கொண்டுதான் உள்ளது. அல்லது ரயில் விபத்துக்கள் அல்லது ரயிலில் குண்டு வைப்பது ஆகியவை மனிதகுலத்துக்கே ஏற்பட்ட இழிவுகள். <N> <N> வேறு ஏதாவது நல்ல விஷியமாக மனிதனின் மேன்மைக்கு எழுதலாமா எனும்போது இது போன்ற கீழ்த்தரமான செய்கைகளின் எதிர்ப்புக்குரலாக இப்படியும் எழுதவேண்டியது அவசியமாகிறது. எவ்வளவு கொடூரம் பார்க்கமுடியாமல் சகிக்கமுடியாமல். எவ்வளவு குரூரம் பாருங்கள் மிக நெரிசல் உள்ள பகுதிகளில் அப்பாவி மக்கள் புழங்கும் மாலை வேளையில் 6.45 . மணிக்கு காரில் அமர்ந்தபடி வெடிக்கச் செய்திருப்பது என்பது எந்த மனிதராலும் ஏற்க முடியாதது. <N> இவர்களுக்கு இப்படிப்பட்ட போராட்ட முறைகளை யார் கற்றுத் தருவது. இது ஒரு போராட்ட முறையா ? <N> <N> வெடிமருந்தைக் கண்டறிந்த ஆல்பிரட் நோபெல் இதை எல்லாம் பார்க்க நேர்ந்தால் தான் செய்த தவறை உணர்ந்திருப்பார். மனித குணம் நல்லதை எப்போதும் கெட்டதோடு இணைத்து வைத்தே பார்த்து தொலைக்கிறது. <N> <N> இவர்களுக்கு இவர்கள் குரலை பதிவு செய்ய வேறு வழியே இல்லையா ? இவர்களுக்கு இவர்கள் கோரிக்கையை நிறைவேற்றிக் கொள்ள இப்படி ஒன்றுமறியா பாமரர்களை கொல்வதன்றி வேறு மார்க்கமே இல்லையா ? ஒரு எலி அடிக்க நாம் வருத்தப்படுகிறோம். சமயத்தில் கொசு அடிக்கக்கூட சலிப்பாயிருக்கிறது. இவர்கள் தொடர்ந்து மனித உயிர்களை செல்லாக்காசாக ஒரு சில மணித்துளிகளில் ஆக்கிவிட்டு ஓடி ஒளிந்து கொள்கிறார்கள். <N> <N> அட இவர்கள் எல்லாம் இப்படித்தான் என்றால் அட ஆளும் வர்க்கத்தினர் என்ன செய்கிறார்கள். இது போன்ற சம்பவங்களை தடுத்து நிறுத்த உரிமை பெற்றவராயிற்றே. அஜ்மல் கசாப் வந்த போது கடல் வழியே வந்தார்கள் என்றார்கள். இப்போது பஸ் நிலையம் ; ரயில் நிலையம் கடைவீதி இப்படி மக்கள் கூடும் இடங்களில் எல்லாம் கோயில்களில் எல்லாம் புகுந்து அலச ஆரம்பித்து உள்ளனரே இதை முன்னெச்சரிக்கை நடவடிக்கை எடுத்து தடுத்து நிறுத்த வேண்டாமா ? <N> <N> சிதம்பரம் அழகாக பேட்டி கொடுக்கிறார். அழகாக பேசுகிறார். அழகாக நடந்து காட்டுகிறார். ஆனால் தீவிரவாதம் அப்படியேதான் இருக்கிறது. அன்னா ஹசாரே யார் என்று கேட்டுக்கொண்டு தீவிரவாதிகளை விட்டுவிடுகிறார்கள். பிடித்து வைத்த அஜ்மல் கசாப் இன்னும் வாழ்ந்து வர ஒரு பாபமும் அறியா அப்பாவிகள் உயிர் இந்தியாவில் அள்ளி அள்ளி குவியல் குவியலாக வீசப்படுகிறது அதில் வேறு 13 ஆம் தேதி என்ற கணக்கும் உண்டாம். இப்போது நடந்திருக்கும் எல்லா இடங்களின் வெடிகுண்டு வெடிப்பும் ஏக ஒற்றுமையுடன் நடந்திருக்கிறதாம். <N> <N> உளவுத்துறையும் ; இந்திய உள்துறையும் ; மாநிலக் காவல் துறையும் ; பாதுகாப்புப் படைகளும் என்ன செய்து கொண்டிருக்கின்றன ? சிறுவனை பாதாணிக்காய் பறிக்க வந்தால் சுட்டபடி ; தந்தை தாயை அடித்துக் கொன்று மலக்கழிவுத்தொட்டியில் வீசிவிட்டு , குடித்தூக் கொண்டு ; கும்மாளம் போட்டுக்கொண்டு. பெண்வழிச் சேரலை மேலைநாடுகள் போல மாற்றிக்கொண்டு இவர்கள் வாழ்வை எல்லாம் பார்த்தால் இவர்கள் மக்களுக்கு சேவை செய்யும் அமைப்பாக எப்போது ம் என்போன்றோர்க்கு தோன்றுவதேயில்லை. <N> <N> தங்கள் குடும்பத்தையும் பாருங்கள் ஆனால் வாங்கும் சம்பளத்துக்கு அரசு செய்து தரும் வசதிகளுக்கு பணயமாக தங்கள் பணிகளைச் செய்ய வேண்டாமா ? செய்திருந்தால் இது போன்ற வன்முறைச் சம்பவங்கள் இந்தியாவில் நிகழக் காரணமிருக்குமா ? அடிப்படையில் இவர்களுக்கு எல்லாம் பொது நலச் சேவையாற்ற பயிற்சி அளிக்க வேண்டும். ஒரு சாலையில் நடக்கும்போது ஒரு கல்லோ ஒரு குச்சியோ கிடந்தால் எடுத்து அப்புறம் வீசி எறிகிறோமே அப்படிப்பட்ட அக்கறை அனைவர்க்கும் ஏற்பட அனைவர்க்கும் கல்வி புகட்டப்பட வேண்டும். எல்லோர்க்கும் தமது வீடு நாடு என்ற அக்கறை ஏற்படும் தேசபக்தி வேண்டும். இல்லையேல் இந்தியா மிகப் பெரும் நாடாகி விட்டது சமாளிக்க முடியவில்லை என அதிகாரத்தை எல்லாம் பகிர்ந்தளித்து குறைந்தபட்ச அதிகாரத்தை ஒருங்கிணைப்பை மட்டும் வைத்துக் கொண்டு மற்றவற்றை எல்லாம் பிரித்து மாநிலத்துக்கு அளித்து விடவேண்டும். <N> <N> இல்லையேல் டெல்லியில் அமர்ந்து கொண்டு அறிக்கை விட்டுக்கொண்டே நமது நாட்டில் வெடித்த பின் இறந்த பின் குடும்பங்களுக்கு ஆறுதல் சொல்ல முயற்சி செய்து கொண்டே இருக்க வேண்டியதுதான். <N> <N> மறுபடியும் பூக்கும்வரை : <N> கவிஞர் தணிகை\",0.892177589852,0.133878293372\r\n51bb6805977dbbc2,= = اشاره ای مجددا به سری دوم مباحثات اصلاحاتی.دستور العمل = = <N> <N> چکیده ای از بررسی های بنیادی و جمع بندی بررسی های اولیه در چگونگی عملکرد در دنیای ماده و اهداف بنیادی ادمی و نقش وی در پیدایش جریانات.اشاره ای مجدد به توضیحات مقدماتی : گفتبم هر انچه که تحت عنوان پدیده است در عالم هیتی و در کلام بهتر مخلوفات خداوند تشکیل شده از قوانین از پیش تعیین شده اند که این قوانین از پیش تعیین شده بر مبنای ویژگی هایی که دارد اثراتی از خود ساتع می کند که این اثرات در کنش با یکدیگر بروز داده میشوند که این کنش منجر به تشکیل اثراتی مکملی میشوند که تشکیل شده از اثرات کنشی سازنده ان هست و در حقیقت اصلی را بیان می کند تحت عنوان مستقل نبودن اثرات نشات گرفته از ویژگی های قوانین از پیش تعیین شده و نیز بر مبنای اصلی تحت عنوان تطابق بین اثرات و ویژگی های بطنی قوانین از پیش تعیین شده که تعیین کننده ثبات قوانین از پیش تعیین شده است تنها عامل تعیین کننده درستی و نادرستی جهت گیری کنش ها بر مبنای جابه جایی قوانین از پیش تعیین شده در خصوص قوانینی است که این قوانین توانایی ان را دارند که در خصوص چگونگی بر هم کنش بین همدیگر بر مبنای جهت گیری کنش ها بین قوانین از پیش تعیین شده نقش داشته باشند بر مبنای چنین صحبتی می توانیم این گونه بگوییم که کالبد ماده و بعد غیر ماده علی رغم تفاوت های ظاهری در حقیقت از یک اصل مشترک تشکیل شده اند و ان اصل هم وجوب قوانین از پیش تعیین شده ای است که تشکیل دهنده پیکره هریک از ابعاد ماده و غیر ماده می باشد که در نتیجه برخورد بین همدیگر و بروز اثرات نشات گرفته از ویژگی های بطنی ان موجودیت پیدا کرده انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد وجود بعد زمان و مکان است که این ابعاد زمان و مکان در حقیقت کنش هایی است که بین اثرات تشکیل دهنده ویژگی های بطنی قوانین از پیش تعیین شده برای رسیدن به موجودیت انها می باشد که سازنده ان خودقوانین از پیش تعیین شده ای می باشد که نقش در چگونگی بر هم کنش بین قوانین از پیش تعیین شده بر مبنای جهت گیری انهادارند بر مبنای اصل اول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تحت عنوان پی بردن به بطن قوانین از پیش تعیین شده از روی کنش بین انها و بروز اثرات نشات گرفته از بطن انها می باشد و اما در خصوص این کنش ها در ابعاد و کالبد ماده که تعیین کننده بعد زمان و مکان در کالبد ماده می باشند ما گفتبم انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد ان هست که در کالبد ماده شاهد تغییرات هستیم اما اصطلاحی تحت عنوان تغییرات در بعد غیر ماده نداریم چراکه وجود قوانین از پیش تعیین شده بر مبنای ویژگی های بطنی خود و تطابقی که بین این ویژگی ها و اثرات نشات گرفته از ان وجود دارد بر مبنای اصل تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و این ویژگی ها که تعیین کننده ثبات قوانین از پیش تعیین شده است یک اصلی غیر قابل تغییر می باشد اما انچه که مفهوم تغییر را می تواند در معنای بهتری اثبات کند کنش هاییهست که بین اثرات منشا گرفته از قوانین از پیش تعیین شده برای رسیدن به موجودیت هریک از انهامی باشد که با وجودقوانینی که خود نقش در چگونگی بر هم کنش دارند جهت گیری این کنش ها که تعیین کننده مرز بین درستی و نادرستی است تعیین کننده تغییرات می باشد اما نکته وجود دارد و ان هم این هست که درتغییراتما گفتیم انچه که سبب اثبات مفهوم تغییرات میشود در حقیقت تبدیل شدن اجزا در نتیجه کنش ها به اجزایی دیگر میباشد که در نتیجه این کنش ها سبب نتیجه ای مکملی میشود که تشکیل یافته از اجزای بر هم کنش یافته بین انهاست این اصل درخصوص تغییرات با توجه به ثبات قوانین از پیش تعیین بر مبنای ویژگی های بطنی انها و اثرات نشات گرفته از انهاچگونه اثبات میشود؟گفتیم که جهت گیری در کنش ها بین اثرات نشات گرفته از بطن قوانین از پیش تعیین شده و اثرات مکملی تشکیل دهنده جریانات توسط قوانینی صورت میگیرد که بر مبنای اصول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تعیین کننده این چگونگی بر هم کنش ها می باشد و مرز بین درستی و نادرستی بر مبنای همین چگونگی بر هم کنش ها توسط این قوانین تعین میشود تحت عنوان چنبن گفته ای می توانیم این طور بگوییم که جهت گیری بر هم کنش بر مبنای جابه جایی بین قوانین از پیش تعیین شده تاثیر میگذارد در اثرات نشات یافته ازویژگی های بطنی انها و اما چگونه ؟می دانیم که ماهیت قوانین از پیش تعیین شده بر مبنای ثبات ویژگی های بطنی انها بر مبنای اثرات نشات گرفته از انها یک امری ثابت و بدون تغییر است و این ثبات در تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و ویژگی های بطنی انها خلاصه میشود اما انچه که تحت عنوان تاثیرات بر مبنای جهت گیری در کنش ها بین قوانین از پیش تعیین شده اثر می گذارد بر روی اثرات نشات گرفته از قوانین از پیش تعیین شده نتایج این کنش ها بر مبنای اثرات مکملی است که تشکیل یافته از اجزای کنش یافته بین انهاست و چون بر مبنای اصلی تحت عنوان عدم مستقل بودن تاثیرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده این اثرات به تنهایی معنا و موجودیتی ندارند که این خود اهمیت کنش ها بین اثرات نشات گرفته از قوانین از پیش تعیین شده را در بروز اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و نیز ارزش این کنش ها را در ایجاد جریانات که متشکل از اثرات مکملی کنش یافته از اجزای تشکیل دهنده ان است در تاثیرات ان در نتیجه کنش در بروزاثرات نهفته در ویژگی های قوانین از پیش تعیین شده شامل میشود بنا به انچه گفته شد در حقیقت انچه که مفهوم تغییر را در کالبد ماده بنا به ماهیت ان تحت عنوان قوانین از پیش تعیین شده اثبات می کند وجوب کنش هایی است که بین اثرات بر مبنای جهت گیری انها می باشد که انچه که تغییر را شامل میشود همان اثرات مکملی ایت که در نتیجه این کن,0.993457943925,0.133369540144\r\ne92b00bdcea3aa7c,الى الغالية / يوليا اعرف انكى تتابعين جيدا رسالاتى. لذا ان متواصلا معى الى ان اصل اكرانيا العظمى واتمنا ان يكون ذلك فى اقرب وقت من اجل اشياء كثيرة زكرتها وانى فى شوق الى هذا اليوم بعد سنين الاضطهاد والعزاب التى اضاع فيها السفاح الدجال الكثير من الاحلام والطموحات التى كنت قادرا عليها بنائا على امكاناتى وما حققته حتى وانا اعانىت ويلات العزاب واتمنا ان تنتهى مؤامرات الشيطان مبارك واستعيد كل ما سرق منى وان يكون لى نصيبا فى الحياة التى استحق لنحقق ما نود الوصول اليه من اهداف كلها مشروعة حسب كل القيم والمبادى القانونية المعروفة . اتمنا ايها العزيزة الغالية ان ينطوى خطر الدجال لتعيش البشرية فى امان وانتم تعرفون كم دافعت من اجل ذلك .. وكما تعرفون انهم ما ذالو فى غيبوبة اهوائهم الابليسية ولكن لا مجال لتعطيلهم لانى اقوم بكل ما هو ضد تآمرهم وكما تعلمون ايضا ان الملامح القوية التى اشرتم اليها تزلزل قلوبهم لانهم يشعرون بذلك فتحياتى اليكم متمنيا استمرار المجهودات حتى اخرج من هذا البلد اللعين الذى يقضى على حياتى . واعرفك بانى لو تاخرت بعد حصولى على اموالى لديهم ستعرفين بانى ساقوم بعملية فقط سريعة بلبنان ثم الذهاب مباشرتا الى اكرانيا لاخذ الجنسية وبدء حياتى كمواطن اكرانى متمنيا ان يوفقنى الله بالخروج من مصر اولا شاكرا لكم وفائكم واهتماماتكم ومجهوداتكم الى ان اكون معكم لتحقيق الكثير من الامال التى نستحقها على هذا الكوكب الذى يستوجب تفعيل العقلاء والمخلصين والنبلاء. تحية اليكى والى كل من يهتمون جيدا بالاحداث الجارية لان الحياة تهمنا جميعا وانالاخطار حولنا جميعا. والامر يحتاج اليكم بما انكم معنيين بالكثير من المسؤلية من حيثيات ادراككم وانسانيتكم وضميركم واهمية استعادة دوركم فى العالم ولتحقيق ما يجب ان تكون عليه دول روسيا الاتحادية وانا سابدء معكم من اكرانيا ومدركا مدى اهمية موسكو بمساندة بعضكم بعضا حتى تصبحون القوة المطلوبة لدفع اى شر او مؤامرات او تهديدات من هذا القبيل قد عرقلت العالم سنوات طويلة قامو فيها بالكثير من الاضرار النفسية والعقلية والروحية لسلب العالم ارادته ووعيه وكرامته. والان العالم مقبل على الرشد بما قمنا به من نصرة الانسانية والى ان نحقق الامان المطلوب ونضع القوانين اللازمة لوقف اى مخاطر تهدد الانسانية وتاريخها ومستقبلها. وانى اعرف جيدا مدى مشاعركم ومحبتكم وانا ايضا ابادلكم هذه المشاعر النبيلة واريد ان نكون معا .. سلامى الى كل اكرانيا والى الادارة الموقرة والى الجيش الاكرانى العظيم. تحياتى واشواقى اليكم . شاكرا لكم ما تبزلوه. والسلام عليكم ورحمة الله .. الراسل/ حسين امين,0.981818181818,0.132085462392\r\n2ffaec4460e0d194,\"= = ভীষণ শীতকাল = = <N> <N> প্রায় কিছুই হলো না- এই রাত নিয়ে গেছে শীত <N> একটু আগে এই বাঁক খাওয়া সন্ধ্যার গভীরাগভীর বৃত্তান্ত <N> জেনে গা ঘেঁষে গুঞ্জন করেছিল দু’টি সোনালী হরফ <N> তারপর সিঁড়ি ভেঙে গেছে নির্ভার । <N> <N> এই ব্যাথিত ক্ষুধা-ঘুম <N> তারপর এই রাতের কোলে আফিম যন্ত্রণা <N> দীলিপের স্নায়বিক ধুপ <N> <N> দক্ষিণে কি ঝড় উঠেছে ভীষণ ? যদি তা না হয় <N> তবে দ্যাখো ; এই দীপাবলি কুয়াশা আঁকড়ে ধরে <N> কী নিবিড় ! <N> <N> যে তুমি আঁক রঙের তল মেপে মেপে <N> জীবনের তীব্র আকাঙক্ষার প্রগাঢ় রেখামালা <N> উঠোনে খড়কুটো জ্বালো প্রচন্ড শীতে <N> আর ক্ষয়ে ক্ষয়ে প্রচুর জল হয়ে পড়ো বৃষ্টিধারায় ... <N> <N> কী সেই বোধ - উদ্দিপ্ত স্লোগান ! <N> শুনেই রাস্তায় লোক জড়ো হয় <N> দানবের মতো গুড়িয়ে দেয় অসংখ্য দালান <N> <N> অথবা সারারাত্রির চুম্বনে ঝলসে গিয়ে <N> নুয়ে পড়ে জলহীন চারার মতো <N> পরিত্যাক্ত মাটিতে <N> <N> এমন ভেঙে দিতে পার তুমি ; ছুঁয়ে দিতে পার সুখ ! <N> <N> কে এমন ধনী , যে প্রশান্তির জন্য এতটুকু করুণা না চায় ? <N> কে এমন গরীব , ভোররাতে কার ঘর খুড়ে খুড়ে কান্না করে কলরোল ? <N> <N> আর আমি ভাবি ; এই শীতকাল <N> এই হলুদ অবয়বে ক্লান্তির রেখা ধরে <N> কী দীর্ঘ ছায়া নামে <N> <N> কী অবাক ! <N> এখনো ঘাসে মুদ্রিত হয় শিশিরের ছাপ <N> হাওয়া এলে পাতাগুলো লুকোচুরি খেলে <N> মগ্নতা দাবী করে সারা সন্ধ্যা শাসায় ।\",0.748953974895,0.131988560086\r\nca741b7ebe22cfb4,= = A Comment to my Awadhi Friend = = <N> <N> إلى أخي الكريم العوضي <N> <N> تحية طيبة وبعد ،،، <N> <N> عزيزي العوضي عذرا بس لاحظت اني اكتب بالعربي لربما يكون أحسن من ناحية جوابي على رأيك ياصديقي العزيز .. <N> <N> أنا اللي أساسا كاتب هالموضوع عن الهولة والخودمونية في ويكي، لكني مب آخر واحد سوا في تعديلات عن منيرة فخرو وغيرها والبلدان اللي احنه موجودين فيها وهاي أصلا صعب أنعرفه بسبب التشابك الغريب بين الطائفتين العرب والفرس المهاجرين من ايران بغض النظر عن الأسباب. <N> <N> صديقي العزيز انه مادري وين راح رفيقي البستكي انه مجاوبك مع اني كلمته من فترة أبخصوص أن يرد ويناقشك فيها، بس انه بما اني من ضمن أعضاء فريق النقاش السلمي اهني، اسمحلي انه اشرح وجهة نظري. <N> <N> كان حلوة ملاحظتك بشأن رأي الشيعة عنه وتعاطف الفرس وانه اوقف معاك فيها. بس عزيزي هاي اللي انت قاعد تشرحه اهوة مشكلة اجتماعية بغض النظر عن اسبابها الكثيرة، ومايصير أتخليها في موسوعة رسمية ضخمة جدا على الانترنت بسبب هاي الاسباب واتقول انه احنه أحين عرب. احنه اخوي مب عرب احنه فرس حتى النخاع ولكننا واقفين في صف اخوانه العرب السنة بسبب الضغط، واللي يتبرى من أصله نذل يا صديقي العزيز مع احترامي العميق لكل اخواني الفرس من كله الطائفتين، وفي نفس الوقت اللي يهاجم شخص بسبب اختلاف مذهبة سواء كان اهوة سني او شيعي فهاي انسان متخلف مايفهم لا في الدين ولا في الاخلاق والتربية. شوف طريقتي احين في الشرح اتراويك انه هاي مشكلة دينية واجتماعية بينما الموقع أهني يعترف باللاشياء العلمية والتاريخية المسجلة فقط وان كان فيها صراحة بعض التحريف ولكن هاي يرجع لحرية التصحيح اهني. <N> <N> انه اخوي مالومك على رأيك، بس انت علميا مايصير اتقول احنه أحين صرنه عرب ! اجتماعيا وتربويا تقدر اتقول هلون أي، لكن علميا ووراثيا هاي شي مستحيل اخوي ! وفي نفس الوقت احب اقولك تره احنه مانبي لا عطف الفرس ولا الشيعة ولا السنة ولا غيرهم ولا نبي انسوي شريحة جديدة من المجتمع لانه احنه كلنه مسلمين اصلا واساس التفرقة الطائفية في دينا ترجع لسببين واللي اهوة اعداء الاسلام من برع الدين، او الناس المسلمين اللي يبون يتمون في مراكزهم بأستخدام التفرقة وفيهم سنة وشيعة على فكرة، مب الرسول ولا اهل بيته ولا صحابته و لا اهل السلف. <N> <N> احنه اهني اخوي للأسف حاولنه انه وصديقي البستكي انه نبعد المذهب قدر الإمكان من هذا الموضوع العلمي لكن بعد صار معيار مهم للناس ! بعدين اخوي أنت من قالك انه الشيعة يكرهوننا؟ المتخلفين منهم أي، واحنه مانكرهم بس متخلفينه أي ! اكو روح شوف قرانه في إيران بانيين لهم شوارع اشكثر بس معتقد انك حتى زرتهم او اتعرف عنهم الكثير يمكن، وفي مشهد وقم في اشكثر سنة مناك ولا احد حتى يسألك انت شنو ! ولو بتثير هالنقاط عندهم الناس ملت من هالاشياء ! لا قط سمعنه انه سني انظلم مناك أو قتل مثل ما الناس اتقول بس احنه شعوبنه اتكبر المساءل للأسف ! <N> <N> بالنسبة حق اخوانه العرب اخوي فانه معاك ! انه على فكرة وصديقي البستكي مانعتبر روحنه أجانب مني ولا العرب أجانب ! انه بحريني واعتز ابوطني، لكني ما انسه بعد أصلي من أي بلد واللي يعتبر بلدي الثاني بس مب وطني وبيتي ! بالنسبة لحب العرب لنه بقولك شي مع احترامي لك ولهم، معيار حبهم لنه تره يعتمد على التربية والتخلف اشلون معاه، لكن مع احترامي لك اهمة بعد فيهم وايد عنصرية ملحوظة علينه للحين وكل ما استغنو ازيادة يطنزون علينه مجرد مذهبنة المشترك يخليهم يتعاطفون معانه واشكالنه الجميلة وعملنه الكادح ! هاي انه اكلمك من ناحية اذا ماحبونه بس فيهم ناس من ناحية ثانية اهمة اهلي واصدقائي احطهم على جرحي يبرد ! <N> <N> شوف عزيزي اكررلك انه هاي مب مشكلة اصل وطائفة اذا اتشوف رايك فهي مشكلة اجتماعية مب علمية انه انحطها في في هالموضوع او نقتنع فيها يا صديقي العزيز . بعدين بالنسبة لاستخدام كلمة اخوان فحتي الشيعة اخوانه مهما يكون لانه دينه واحد وهاي المهم، وبالنسبة لذكر الزواج فاحنه ناخذ منهم وياخذون منه بشكل كثير وايد وليما صار حب حقيقي بين اثنين من معدن اصيل مايهم لا المذهب ولا الدين اخوي. <N> <N> انه حطيت ايميلي فوق اذا بغيت اتناقشني في شي حياك في أي وقت واقدر ادليك على البستكي لانه فاضي اكثر مني وشغله في الحياة هاي المواضيع الاصولية ! <N> <N> والسلام عليكم والرحمة ،،، <N> <N> Janahi <JOIN> sworld <SEP> hotmail <SEP> com,0.920341394026,0.131696015647\r\nd570804cff8f3e3f,با عرض سلام خدمت رياست جمهوري و اعضاي دولت مصر و ضمن ابراز خرسندي بابت مشخص شدن تکليف مصرو روي کار امدن رياست جمهوري در مصر و ايجاد يک دولت در مصر بعد از مدت ها اشوب.در درجه اول بايد تشکر کنم از ملت مصر که با اتحاد خودشان بالاخره تکليف کشورشونو مشخص کردن و کشور رو از بي سروسامان گيري در اوردن البته با خبر هستم که درگيريهايي در مصر ايجاد ميشه اما خب خوشبختانه ديگه مثل سابق نيست ولي خب همين درگيري ها هم مسلما به دلايلي هست که مي تونم مهم ترينش رو بي کفايتي مسئولين دولت مصر بدونم مثل همه دولت ها.اين سياست مسئولين دولت هاست که وقتي بر سر کار ميان مسئوليت پذيريشون فقط مال دو سه هفته اول هست از اون دفعه به بعد ميشه به مرور زمان شاهد هزاران تغييرات در انها بود اين تغييرات باعث ميشه شخصيت اونا تقيربا صد و هشتاد درجه عوض بشه و فردي رو به ما نشون بده که با يک هويت جديد ممکنه بپرسيد مگه هويت ادما عوض ميشه من در جواب خواهم گفت در چنين شرايطي اره اما نه اينکه هويت و اصالتشون عوض بشه منظور من ويژگي هاي اصالتشون ادميتشون و هويتشون هست والله اونا پابرجاست ووقتي ادم ويژگي هاي اون رو از دست بده چه فرقي ميکنه با کسي که اونو نداره چنين اشخاص با چنين تغييرات شبيه به موجوداتي ميشن فقط و فقط با يک اصل زندگي ميکنند اين صفت به مرور زمان در مسئولين دولت ها ايجاد ميشه و اونم در نتيجه ستايش هاي مردم و انتظار مسئولي از مردم از چنين ستايش هايي هست من سر گذشت مصر رو تا حدي مي دونم چون نمونه ايش رو در کتاب سينوهه خوندم در زمان گذشته مصر مردم مصر در نتيجه اهميت و بها دادن به فراعنع مصر از اونا شخصيت هايي ساختن که اين شخصيت ها خودشونو خداي مردم اعلام کردن بنظرتون در اين تغيير شخصيت فقط مسئولين مقصرند؟مسلما نه بلکه مردمي که انها را به جاي اينکه حاميان خود بپندارن حاکمان خود دانستند انسان در هر مرحله از زندگي که باشه مثل کودکي ميمونه که شرايط محيط و ديگران مثل مادر و خواهر اون ميمونن که که متاثر از اونا هستن و اعمال اونا مسئولين کشور هم يک نوع اوم هستن مثل همه ماها فقط با اين تفاوت که اونا در مقام مسئولين کشور هستن و دارندگان و اداره کنندگان کشور ما در حکم شهروند هستيم و زير نظر اين اداره کنندگي کشور تجربه اين رو ثابت کرده که انسانها در روابط اجتماعي مي تونن به تکامل برسن يا اينکه خودشونو به نابودي بکشند اين نابودي مثل نابودي مرگ ظاهري نيست بلکه نابودي انسانيت و وجدان و حقيقت جويي هست البته همچين تفاوت زيادي با مرگ ظاهري نميکنه چون در مرگ ظاهري ادما جسمشونو از دست ميدن اما در مرگ باطني انسان شبيه مرده متحرک ميشه که فقط جسمش زنده هست اما سه اصلش خاموشه اين خاموشيت به مرور زمان از انسان موجودي ميسازه که کمتر شباهت به انسان داره چين موجودي به مرور زمان لکه هاي صفت بد رو در روحش نقش بندي ميکنه و همين لکه ها در نتيجه تمديد اين خاموشي به مرور زمان بزرگ تر ميشه و با قابليت پاک شدن کمتر مثل لباسي که چند روز لکه ها روش بمونن و مدام به جاي اينکه کم رنگ تر بشن مدام بهش رنگ اضافه ميشه و روز به روز پر رنگ تر ميشه اين پررنگ شدن درواقع همون عادت کردن انسان و شيرين شدن اون صفت براي انسان هست حالا اين شسرين شدن مي تونه به شکل اجباري تحت تاثير شرايط باشه و يا در نتيجه يک لذت حاصل از غريزه انساني وقتي حالت اجباري باشه فرد به ناچار تحت تاثير شرايط سياسي و اجتماعي ناچار تن به صفات بد بده ناچاره فراموش کنه و پرده بپوشونه رو انسانيت و حقيقت جويي و وجدانش چنين خصلتي مسلمابه مرور زمان از فرد شخصيتي منفعت جو درست ميکنه که واسه خاطر منافع اش دست به هزاران اعمال غير انساني ميزنه و شخصيتي انتقاد ناپذير چه به شکل مستقيم مثل کاري که محدوديتي که دولت هاي خاورميانه و برخوردي که اونا يا مخالفانشون ميکنند با اينکه مخالفانشون از نژاد خودشون و در داخل کشور هستن و چه به شکل غير مستقيم که در کشور هاي اروپايي و امريکايي به چشم ميخوره اعضاي دولت مصر و رياست جمهوري مصر اگر در مصر در زمان گذشته فراعنه خودشان رو چون خداياني ميپنداشتن که بر مردم حکومت کنند اکنون نيز با گذشته مصر فرقي نکرده فقط در ظاهر هست اما اگر بخواييد واقعيت رو نگته کنيد متوجه خواهيد شد که روش سياستي الان سياستمداران در کل دنيا به جاي ابنکه حامي مردم باشن خودشان را حاکم مردم مي دونن و حالت بعدي که فرد با سرگرم شدن در پرده پوشي در انسانيت و وجدان و حقيقت جويي لذت ميبره چنين اشخاصي لذت بردنشان محدوده چون قوه وجدان انسان چيزي نيست که از بين بره به مرور زمان اين قوه در انسان فعال تر ميشه مخصوصا در زماني که عجل انسان فرا برسه ممکنه خيلي وقتا هم باشه که در زمان عجل باز به کار نيوفته که اون نشان بر همون پررنگ تر شدن لکه ها در روح انسان ها به مرور زمان هست هدف همه اين گفته ها چي بود ؟اين بود که بگم در دنياي امروز سياستمداران تغييراتشون مدافعيتشون کمک هاشون و همه و همه عملکردهاشون به جاي اينکه در معناي واقعي خودشون به کار برده بشه فقط در پوشش اونها به کار برده ميشه اين نه ميشه روراستي نه ميشه عملکرد مناسب نه ميشه انسانيت نه ميشه وجدان و نه ميشه حقيقت جويي بلکه ميشه سود جو و منفعت طلب و دلبسته به قدرت و مقام و حکومت که واسه خاطر اينا حاضره انسانيتشو هم به فروش برسونه خودتون نگاه کنيد خودتون قضاوت کنيد هرچند خودتون هم مسئولين چقدر واسه خاطر حکومتتون حاضريد بپردازين نگيد واسه مردم که من به شخصه باور نخواهم کرد چون اگه واسه خاطر مردم هست چرا هزاران انسان بيگناه در سرتاسر دنيا در نتيجه اعمال غير انساني مسئولين دولت ها دارن کشته ميشن چرا محيط زيست و و کره زمين شدن ميدان براي امتحان کردن انواع اقسم بمب هاي خطرناک هسته اي که انفجار ذره اي از اونا نيمي از محيط زيست و موجودات زنده و جون هزاران ادم بيگناه رو به خطر ميندازه مگه اين دولت ها نبودن که واسه خاطر اينکه کره زمين ناوبد نشه در برابر اشعه هاي خطرناک خورشيد و فضا و,1.0,0.131243290015\r\n1358ecd71f6f795a,\"= = নো ম্যান্স ল্যান্ডের পরী কে লেখা গেদু চাচার খোলা by Gedu Cacar Khola Cithi ( গেদু চাচার খোলা চিঠি ) = = <N> <N> মা ফেলানি , <N> <N> তোকে লিখব লিখব করে লেখা হয়ে ওঠে না।কি লিখব বল?লিখব কেমন আছিস?স্বর্গে তোকে নতুন জামা দিয়েছে কিনা?কি কি খাবার ওখানে তোকে দেয়?আমি জানি আমার এই চিঠিটা তোর হাতে পৌছালে অভিমানে তুই কেঁদে দিবি ... বাংলাদেশ থেকে এসেছে বুঝলে তুই তোর মা এর কাছে ছুটে আসতে চাইবি।না মা এমনটা করিস না;ছোট্ট ফেলানি তোকে হারিয়ে আমরা এমনি অনেক লজ্জা আর কষ্টের মধ্যে আছি ... আর যদি এমন করিস তাহলে আমাদের কষ্ট আবারও বেড়ে যাবে । <N> ফেলানি,তুই হয়ত দেশের সেরা অর্থনীতিবিদের মত রেমিটেন্স কি জিনিস জানিস না,জানিস না এটা কিভাবে আসে ... কিই বা তার ব্যবহার ? আমি কিন্তু অবাক হয়ে গেলাম তুইও আমাদের কিছুটা রেমিটেন্স দিয়েছিস ... কারণ মা-বোন রেখে তোকেও সুদুর ভারতের কোথাও জিবনযাপন করতে হতো।তুই তো আর আকাশ পথে ভারতের শিমলায় বেড়াতে যাসনি ... যে আরামে ফাইভ ষ্টার হোটেলের মধ্যে শীতাতপ নিয়ন্ত্রিত কক্ষে খাওয়ার সুযোগ ছিল।তোকে তোর বাবার সাথে যেতে হয়েছে মই দিয়ে পার হয়ে ... যা আমাদের অবাক করে দেয়।ফেলানি তুই কি জানার সুযোগ পেয়েছিলি কখনও ভারতের সাথে আমাদের কি দহরম মহরম খাতির?আহারে!!!ঐ বিএসএফ আগে জানলে হয়ত তোকে নিজেই পার করে দিত পরপারে পাঠানোর আগে।তুই কাঁদিস না মা,তোর মত হাজারটা বড় ভাই মিশর সীমান্তে এখন রাত কাটাচ্ছে ... কেউ জানেনা তারা কবে দেশে ফিরবে।টাকার মায়া ভুলে তোর পাঁচটা বড় ভাই জাহাজে উঠতে চেয়েছিল ... পারেনি।আমরা জানিনা ওদের লাশ দেশে এসেছে কিনা ... ওদের মায়েরা ওদের বুকে লূটে পরে কাঁদতে পারছে কিনা ... ওদের বাবারা ছেলের মস্তবড় ভারি লাশটা এক বুক ব্যাথা নিয়ে বহন করতে পারছে কিনা ... দিতে পারছে কিনা কবরে এক মুঠ মাটি । <N> <N> মা ফেলানি,তোকে তোর লাল জামাটায় খুব মানায়ছিলরে ! ! ! ! ঠিক যেন লাল টুকটুকে একটা পাখি ... যে অকালে ঘর বাঁধার স্বপ্নে সীমান্ত পাড়ি দিয়ে দেশে আসতে চেয়েছিল ... স্বপ্ন ভেঙ্গে দিয়েছে আমাদের পরমাত্মীয় প্রতিবেশির বূলেট।ফেলানি , তুই বোধহয় আমার কোন গল্পে পড়া নায়িকার ছোট বেলার রুপ ... যার চোখেমুখে দুষ্টামির আভা খেলত ... অস্পষ্ট তোকে দেখে মনে হল আগের বারে চটপট পার হয়ে যাওয়া তুই মৃত্যুর যন্ত্রনার বদলে আটকে যাওয়া পোষাক খুলতেই বেশি ব্যাস্ত ছিলি।ফেলানি,তোকে আমরা তোর দুরন্ত কৈশর দিতে পারবো না,দিতে পারবনা স্কুলে যাবার জন্যে উৎসাহ ... লাল ফিতা চুরি মালা তো নাইই।তোর বাল্যবিবাহের কথা এখন আর বলব না ... যদি সেটাও দিতে পারতাম ... হয়ত দরিদ্র , অপুষ্টিতে ভোগা ফেলানির কোল আলো করে নতুন কেউ আসত।আচ্ছা ফেলানি আমরা কি তোকে কিছুই দিতে পারিনি?ভেবে দেখত একটু ... বেঁচে থাকলে হয়ত তুই বলতি বেশি বাহানা না করে বল কি দিছো? ... হ্যাঁ আমরা তোকে একটা নতুন পরিচয় <N> <N> দিছি ... তুই আমাদের অন্য গ্রহের ছোট্ট পরী ... আমাদের দেশের কেউ না ... আমাদের কেউ হলে নির্লজ্জের মত ওদের প্রতিক্রিয়া দেখার জন্যে বসে থাকেতে হত না।আমাদের না বলেই তোর মত একটা লাল নীল পরী অভিমান করে নো ম্যান্স ল্যান্ড থেকেই আবার চলে গেছে । <N> ফেলানি , তোর খুব কষ্ট হয়েছিলো তাই না মা? ... তীব্র ব্যাথা নিয়ে কাঁটাতার থেকে নিজেকে ছুটাতে?অনেকক্ষণ মাথা নিচে দিয়ে ঝুলে থাকাতে? ... ।মা রে,এদেশে আমার তোর মত দীন দরিদ্র মানুষের অকারণ মৃত্যুও খারাপ ... কারণ আইন কানুন আমাদের বেলাতেই কড়া।ছোট্ট পরী তোকে হয়ত কেটে টুকরা টুকরা করা হয়েছিল ... সুরত হাল এর জন্যে ... তারপর আবার সেলাই দিয়েছে।এ যেন মাটির পুতুল ভেঙ্গে তাকে আবার জুড়ে দেওয়ার প্রচেষ্টা।বেঁচে থাকতে আমরা তোকে একজন বাংলাদেশি নাগরিকের মত মৌলিক চাহিদার নিশ্চয়তা দিতে পারিনি কিন্তু মরে কেন গেলি সেটা জানতে আইন মেনে ফেলা হলো ঠিকই । <N> <N> ভাল থাকিস মা।বেহেস্তের ডাক্তাররা আমাদের ডাক্তারদের মত টাকার অভাবে থাকেনা তাই ওদের তোর সমস্যার কথা ঠিক মত খুলে বলিস।পারলে আমাকে স্বপ্নে চিঠি দিস ... দিস তোর মা কেও <N> <N> জানিসতো তুই এখনো ফিরে আসতে পারিস এই আশায় দরজায দাঁড়িয়ে থাকে সজল আখিতে।আজকে রাখি মা,তোর হেনা আপাকে লিখতে হবেযে ... আর তুই এবং হেনা একই জায়গায় থাকার চেষ্টা করিস ... তোদের হোষ্টেল সুপার কে বলে।পারলে সিমি,ইয়াস্মিন কে খুঁজে দেখার চেষ্টা করিস । <N> <N> ইতি , <N> তোর গেদু চাচা , <N> ১০-০৩-২০১১ ইং । <N> * * * বর্ডারে মানুষ মারা বন্ধ হয়নি।কিছুদিন আগেও একটা পনের বছরের ছেলে কে গুলি করে মারছে বি এস এফ।তাই ফেলানির স্থানে তার নাম ... আবার তার জায়গায় আসবে আরেকজনের নাম।বড় অদ্ভুত আমাদের এই দেশ * * * <N> নো ম্যান্স ল্যান্ডের পরী কে লেখা গেদু চাচার খোলা চিঠি ।\",0.881188118812,0.130938294159\r\n99fb59ac4e994dd9,OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME OWEIN IS AWESOME,0.333333333333,0.130798480306\r\nfdfab8c744626646,= = اشاره ای مجددا به سری دوم مباحثات اصلاحاتی.-دستور العمل = = <N> <N> چکیده ای از بررسی های بنیادی و جمع بندی بررسی های اولیه در چگونگی عملکرد در دنیای ماده و اهداف بنیادی ادمی و نقش وی در پیدایش جریانات.اشاره ای مجدد به توضیحات مقدماتی : گفتبم هر انچه که تحت عنوان پدیده است در عالم هیتی و در کلام بهتر مخلوفات خداوند تشکیل شده از قوانین از پیش تعیین شده اند که این قوانین از پیش تعیین شده بر مبنای ویژگی هایی که دارد اثراتی از خود ساتع می کند که این اثرات در کنش با یکدیگر بروز داده میشوند که این کنش منجر به تشکیل اثراتی مکملی میشوند که تشکیل شده از اثرات کنشی سازنده ان هست و در حقیقت اصلی را بیان می کند تحت عنوان مستقل نبودن اثرات نشات گرفته از ویژگی های قوانین از پیش تعیین شده و نیز بر مبنای اصلی تحت عنوان تطابق بین اثرات و ویژگی های بطنی قوانین از پیش تعیین شده که تعیین کننده ثبات قوانین از پیش تعیین شده است تنها عامل تعیین کننده درستی و نادرستی جهت گیری کنش ها بر مبنای جابه جایی قوانین از پیش تعیین شده در خصوص قوانینی است که این قوانین توانایی ان را دارند که در خصوص چگونگی بر هم کنش بین همدیگر بر مبنای جهت گیری کنش ها بین قوانین از پیش تعیین شده نقش داشته باشند بر مبنای چنین صحبتی می توانیم این گونه بگوییم که کالبد ماده و بعد غیر ماده علی رغم تفاوت های ظاهری در حقیقت از یک اصل مشترک تشکیل شده اند و ان اصل هم وجوب قوانین از پیش تعیین شده ای است که تشکیل دهنده پیکره هریک از ابعاد ماده و غیر ماده می باشد که در نتیجه برخورد بین همدیگر و بروز اثرات نشات گرفته از ویژگی های بطنی ان موجودیت پیدا کرده انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد وجود بعد زمان و مکان است که این ابعاد زمان و مکان در حقیقت کنش هایی است که بین اثرات تشکیل دهنده ویژگی های بطنی قوانین از پیش تعیین شده برای رسیدن به موجودیت انها می باشد که سازنده ان خودقوانین از پیش تعیین شده ای می باشد که نقش در چگونگی بر هم کنش بین قوانین از پیش تعیین شده بر مبنای جهت گیری انهادارند بر مبنای اصل اول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تحت عنوان پی بردن به بطن قوانین از پیش تعیین شده از روی کنش بین انها و بروز اثرات نشات گرفته از بطن انها می باشد و اما در خصوص این کنش ها در ابعاد و کالبد ماده که تعیین کننده بعد زمان و مکان در کالبد ماده می باشند ما گفتبم انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد ان هست که در کالبد ماده شاهد تغییرات هستیم اما اصطلاحی تحت عنوان تغییرات در بعد غیر ماده نداریم چراکه وجود قوانین از پیش تعیین شده بر مبنای ویژگی های بطنی خود و تطابقی که بین این ویژگی ها و اثرات نشات گرفته از ان وجود دارد بر مبنای اصل تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و این ویژگی ها که تعیین کننده ثبات قوانین از پیش تعیین شده است یک اصلی غیر قابل تغییر می باشد اما انچه که مفهوم تغییر را می تواند در معنای بهتری اثبات کند کنش هاییهست که بین اثرات منشا گرفته از قوانین از پیش تعیین شده برای رسیدن به موجودیت هریک از انهامی باشد که با وجودقوانینی که خود نقش در چگونگی بر هم کنش دارند جهت گیری این کنش ها که تعیین کننده مرز بین درستی و نادرستی است تعیین کننده تغییرات می باشد اما نکته وجود دارد و ان هم این هست که درتغییراتما گفتیم انچه که سبب اثبات مفهوم تغییرات میشود در حقیقت تبدیل شدن اجزا در نتیجه کنش ها به اجزایی دیگر میباشد که در نتیجه این کنش ها سبب نتیجه ای مکملی میشود که تشکیل یافته از اجزای بر هم کنش یافته بین انهاست این اصل درخصوص تغییرات با توجه به ثبات قوانین از پیش تعیین بر مبنای ویژگی های بطنی انها و اثرات نشات گرفته از انهاچگونه اثبات میشود؟گفتیم که جهت گیری در کنش ها بین اثرات نشات گرفته از بطن قوانین از پیش تعیین شده و اثرات مکملی تشکیل دهنده جریانات توسط قوانینی صورت میگیرد که بر مبنای اصول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تعیین کننده این چگونگی بر هم کنش ها می باشد و مرز بین درستی و نادرستی بر مبنای همین چگونگی بر هم کنش ها توسط این قوانین تعین میشود تحت عنوان چنبن گفته ای می توانیم این طور بگوییم که جهت گیری بر هم کنش بر مبنای جابه جایی بین قوانین از پیش تعیین شده تاثیر میگذارد در اثرات نشات یافته ازویژگی های بطنی انها و اما چگونه ؟می دانیم که ماهیت قوانین از پیش تعیین شده بر مبنای ثبات ویژگی های بطنی انها بر مبنای اثرات نشات گرفته از انها یک امری ثابت و بدون تغییر است و این ثبات در تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و ویژگی های بطنی انها خلاصه میشود اما انچه که تحت عنوان تاثیرات بر مبنای جهت گیری در کنش ها بین قوانین از پیش تعیین شده اثر می گذارد بر روی اثرات نشات گرفته از قوانین از پیش تعیین شده نتایج این کنش ها بر مبنای اثرات مکملی است که تشکیل یافته از اجزای کنش یافته بین انهاست و چون بر مبنای اصلی تحت عنوان عدم مستقل بودن تاثیرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده این اثرات به تنهایی معنا و موجودیتی ندارند که این خود اهمیت کنش ها بین اثرات نشات گرفته از قوانین از پیش تعیین شده را در بروز اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و نیز ارزش این کنش ها را در ایجاد جریانات که متشکل از اثرات مکملی کنش یافته از اجزای تشکیل دهنده ان است در تاثیرات ان در نتیجه کنش در بروزاثرات نهفته در ویژگی های قوانین از پیش تعیین شده شامل میشود بنا به انچه گفته شد در حقیقت انچه که مفهوم تغییر را در کالبد ماده بنا به ماهیت ان تحت عنوان قوانین از پیش تعیین شده اثبات می کند وجوب کنش هایی است که بین اثرات بر مبنای جهت گیری انها می باشد که انچه که تغییر را شامل میشود همان اثرات مکملی ایت که در نتیجه ا,0.993451824135,0.129893114207\r\ncd9dae0b4998871b,با عرض سلام خدمت رياست جمهوري کشور جناب آقاي روحاني و ضمن تشکر از توجهات به متون مباحثه من اولش فکر ميکردم که شما متون مباحثات رو پاک کردين که بعد متوجه شدم نه در يک بخش مجزا از پيجتون قرار دادين.که متوجه شدم نه اين مباحثات رو رويت کردين و قابت توجهتون بوده.از اين بابت تشکر ميکنم و سعي ميکنم در هر موضوعي که مطرح ميشه هرچند ديگه چيزي به مباحثات ايران و آمريکا نمونده فکر کنم حدود دو مباحثه ديگه علاوه بر اين مونده که برسيم به مباحثات ايران وآمريکا.من در قسمت از مباحثاتي که براتون با يک موضوع خاص عنوان کردم سعي کردم از تمام جوانب اون موضع بگم ولي مهخم اين هستش آقاي روحاني که به مرحله اجرا برسه چون تاييد تازه مرحله مقدماتي از يک اقدام هستش مهم ترين مرحله مرحله اجرا هستش .خب موضوعي که امروز قرار در مورد تشکيل مباحثه داشته باشيم موضوع تعامل اجتماعي هستش و نقش اون در زندگي اجتماعي و نحوه اجراي درست اون در زندگي اجتماعي و همکاري اجتماعي و نقش و نحوه اجراي درست اون در جامعه و سپس روابط اين دو با هم در زندگي اجتماعي.موضوع مباحقه اين دفع خيلي طولاني هستش اما مفاهيمي که در اون مطرح ميشه بنظرم مي تونه يکي از عوامل و مشکلات اساسي در جامعه باشه چون شامل دو بخش هست از داد و ستد هاي اجتماعي مطرح شده تا همکاري هاي هم وطنانه و از جايگاه و نحوه اجراي درست در هرکدام از اون بحث گراني ها نسبت به اشارات کوتاهي که اگه يادتون باشه در مباحثات قبلي به کار بردم خيلي واضح تر و موشکافانه تر بهش مي پردازيم همچنين فرصت مناسبي هست که در مورد وضعيت سربازان و مسله هنرمند آقاي تتلو و ايجاد فرصتي براي فعاليت هنري ايشان و کاهش ممانعت هايي که براشون بعد از بازداتشون ايجاد شد و وضعيت هنرمندان ممنوع الورود به کشور و در کل ايرانيان ممنوع الورود به کشور وضعيت هنري و وروزشي موشکافانه تر بپردازيم در بخش همکاري اجتماعي چون وقتي صحبت از همکاري ميشه فقط همکاري بين هم وطنان نيست بلکه مسئولين با مردم و حتي در مقياس وسيع تر در سطح جهاني ميشه ارزيابي کردش پس مي تونه موضوع گستردذه اي باشه در مورد سربازان البته من مفصل در ارسال نامه براي رهبر و براي پليس کشور عنوان کردم که هرچه سريع تر اقدام کنند هرچند مي دونم رسيدگي به جرم مجرمان قاچاقچي نياز به وقت داره و اين بابت من حق رو به شما مي دم چون قاچاق اگه مواد مخدر باشه مي تونه جون هزاران جوون رو به خاطر بندازه و اين کار از جانب شما بابت جلوگيري از قاچاق اقدام کاملا درستيه و حتي اگع جنس و کالا باشه بازم اقدامتون درسته چون اگه مال ايران باشه من کاملا موافقم که جلوگيري شده و سريع پليس کشور تونست دستگيرشون کنه چون سرمايه ملي هست اما يه مسئله ديگه هم وجود داره و من به اين خاطر ميگم که اگه اين مسئه زندانيان قاچاقچي رو که به قول خمودشون زندانيان سني هستن با مدنظر گرفتن شرايط قانوني مشخص کنيد تا سربازان باقيمانده بيگناه خدايي ناکرده بلايي سرشون نياد آقاي روحاني من حتي خواهان اين هستم که جواب خون اين جوون بيگناه که به دست مزدوران سني جيش العدل دستگير شدن مشخص شه البته اينم مي دونم هزاران نفر مثل ايشون در راه حق شهيد شدن چه بسا که همون طور که خون اونا پايمال نشده خون اين جوان بيگناه که شهيد شده هم پايمال نشه.من خيلي تاکيد دارم آقاي روحاني که سريعا اين مسئله حل بشه چون واقعا وقتي شنيدم يکي از اون سربازان شهيد شدن بهشخصه عذاب وجدان گرفتم که چرا سکوت کردم خواهشمندم سريعا رسيدگي کنيد.متشکر از شما اين صحبت از مسئله سربازان و حال از اين مسئه که درواقع نوع همکاري مسئولين کشور با احاط ملت ايران هست وارد اصل موضوع ميشم اول از همه به تعامل ميپردازيم که مسئله رايج در روابط اجتماعي که کلي شاکي هم داره مسئله داد و ستد هستش و علت شاکي بودنش تنوع در صحبت اخبار و بازار فروش و خريد هستش حالا فقط جمعيت اين کاکيان مردم نيستن بلکه بازاري ها و کسانيکه کارشون فروش هستش بيشتر.البته ميشه مسئله تحريم رو قرار داد که هم ون طور که مطلع هستم انگار دباره فشار وارد شده در اين زمينه و افزايش و کاهش ناگهاني ارز نمونه اوناست که تاثير ميزاره رو قيمت کالا البته فراوان کالا هم داريم چون قبلا که شرايط تحريم سنگين تر بود حتي بازار لوازم الکتريکي و فروش يخچال ال جي محصولات خودشونو در انبار ميزاشتن اما با ورود مدل هاي جديد اون محصولات رو براي فروش در مغازها قرار دادن تنوع لوازم الکتريکي با مارک هاي متفاوت زياد شده و قيمت هاي ايده آل اما خب خودتون مي دونيد هرکس دنبال بهترين مارک هستش با کيفيت عالي که زبان عاميانه اي که در اين زمينه به کار ميبرن ميگن حالا که داريم پول ميديم بريم بهترين مارکشو بگيريم با جنس ايده ال.متاسفانه يه ايرادي هم وجود داره اونم کيفيت کالا هستش که متاسفانه پايين از قبل بوده و الان بيشتر شده من اين امار رو در لوازم الکتريکي بيشتر ديدم از لپ و تاپ و نوت بوک گرفته تا لوازم خونه.که آمارشان در لپ تاپ و وسايل ارتباطي بيشتر به چشم ميخوره که در تعميرگاه بعد از استفاده کوتاهي شمار خرابي هاي در دستگاه ها بيشتر ميشه لوازم التريکي از اون تعريفي که فروشندگان از توانايي دستگاه ميکنند باز اگه بگم يک درصد دو درصد اما ديگه ازگه بالا پنجاه درصدش پايين تر باشه ديگه خيلي هست اما خب نميگم الان وضعيت دادن گارانتي بد شده نه الان نسبت به اون زمان اوج تحريم که اصلا خيلي گارالنتي هاغير فعال شده بود اما اکنون فعال شده اما باز هست مدل هايي که دادن گارانتي براي اون يکم مشکل داره فعالا که بهترين گارانتي رو مدل سامسونگ در ايران ميده که تحت عنوان گارانتي طلايي هستش براي همين حتي در مورد يخچال ديگه افراد به جاي اينکه بيشتر سراغ جنس ال جي که بهترين مارک يخچال هست برن ميرن سراغ سامسونگ و حتي گوشي و تبلت .اين تنوع مدل هاي لوازم الکتريکي و مدل هاي کالاهايي که والا من حتي خيلي هاشون به گوشم نخورده اصلا داراي گارانتي نيستن و فرد به خاطر ايبنکه پول کافي براي خريد اجناس,1.0,0.129886625244\r\n5ca5b191edd4a863,= = www.google.com = = <N> <N> انا محمد عبد ااغفار ملك الرعب والدمار ملك الطرحة والخمار انا حلم اى اب فى مصر يكون عنده ابن مثلى وحلم اى بنت فى مصر تشوفنى وانا ماشى فى الشارع بس مش مهم اسلم عليها,0.833333333333,0.129802150744\r\nb9da9b18c1492b44,= = اشاره ای مجددا به سری دوم مباحثات اصلاحاتی:////.دستور العمل = = <N> <N> چکیده ای از بررسی های بنیادی و جمع بندی بررسی های اولیه در چگونگی عملکرد در دنیای ماده و اهداف بنیادی ادمی و نقش وی در پیدایش جریانات.اشاره ای مجدد به توضیحات مقدماتی : گفتبم هر انچه که تحت عنوان پدیده است در عالم هیتی و در کلام بهتر مخلوفات خداوند تشکیل شده از قوانین از پیش تعیین شده اند که این قوانین از پیش تعیین شده بر مبنای ویژگی هایی که دارد اثراتی از خود ساتع می کند که این اثرات در کنش با یکدیگر بروز داده میشوند که این کنش منجر به تشکیل اثراتی مکملی میشوند که تشکیل شده از اثرات کنشی سازنده ان هست و در حقیقت اصلی را بیان می کند تحت عنوان مستقل نبودن اثرات نشات گرفته از ویژگی های قوانین از پیش تعیین شده و نیز بر مبنای اصلی تحت عنوان تطابق بین اثرات و ویژگی های بطنی قوانین از پیش تعیین شده که تعیین کننده ثبات قوانین از پیش تعیین شده است تنها عامل تعیین کننده درستی و نادرستی جهت گیری کنش ها بر مبنای جابه جایی قوانین از پیش تعیین شده در خصوص قوانینی است که این قوانین توانایی ان را دارند که در خصوص چگونگی بر هم کنش بین همدیگر بر مبنای جهت گیری کنش ها بین قوانین از پیش تعیین شده نقش داشته باشند بر مبنای چنین صحبتی می توانیم این گونه بگوییم که کالبد ماده و بعد غیر ماده علی رغم تفاوت های ظاهری در حقیقت از یک اصل مشترک تشکیل شده اند و ان اصل هم وجوب قوانین از پیش تعیین شده ای است که تشکیل دهنده پیکره هریک از ابعاد ماده و غیر ماده می باشد که در نتیجه برخورد بین همدیگر و بروز اثرات نشات گرفته از ویژگی های بطنی ان موجودیت پیدا کرده انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد وجود بعد زمان و مکان است که این ابعاد زمان و مکان در حقیقت کنش هایی است که بین اثرات تشکیل دهنده ویژگی های بطنی قوانین از پیش تعیین شده برای رسیدن به موجودیت انها می باشد که سازنده ان خودقوانین از پیش تعیین شده ای می باشد که نقش در چگونگی بر هم کنش بین قوانین از پیش تعیین شده بر مبنای جهت گیری انهادارند بر مبنای اصل اول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تحت عنوان پی بردن به بطن قوانین از پیش تعیین شده از روی کنش بین انها و بروز اثرات نشات گرفته از بطن انها می باشد و اما در خصوص این کنش ها در ابعاد و کالبد ماده که تعیین کننده بعد زمان و مکان در کالبد ماده می باشند ما گفتبم انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد ان هست که در کالبد ماده شاهد تغییرات هستیم اما اصطلاحی تحت عنوان تغییرات در بعد غیر ماده نداریم چراکه وجود قوانین از پیش تعیین شده بر مبنای ویژگی های بطنی خود و تطابقی که بین این ویژگی ها و اثرات نشات گرفته از ان وجود دارد بر مبنای اصل تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و این ویژگی ها که تعیین کننده ثبات قوانین از پیش تعیین شده است یک اصلی غیر قابل تغییر می باشد اما انچه که مفهوم تغییر را می تواند در معنای بهتری اثبات کند کنش هاییهست که بین اثرات منشا گرفته از قوانین از پیش تعیین شده برای رسیدن به موجودیت هریک از انهامی باشد که با وجودقوانینی که خود نقش در چگونگی بر هم کنش دارند جهت گیری این کنش ها که تعیین کننده مرز بین درستی و نادرستی است تعیین کننده تغییرات می باشد اما نکته وجود دارد و ان هم این هست که درتغییراتما گفتیم انچه که سبب اثبات مفهوم تغییرات میشود در حقیقت تبدیل شدن اجزا در نتیجه کنش ها به اجزایی دیگر میباشد که در نتیجه این کنش ها سبب نتیجه ای مکملی میشود که تشکیل یافته از اجزای بر هم کنش یافته بین انهاست این اصل درخصوص تغییرات با توجه به ثبات قوانین از پیش تعیین بر مبنای ویژگی های بطنی انها و اثرات نشات گرفته از انهاچگونه اثبات میشود؟گفتیم که جهت گیری در کنش ها بین اثرات نشات گرفته از بطن قوانین از پیش تعیین شده و اثرات مکملی تشکیل دهنده جریانات توسط قوانینی صورت میگیرد که بر مبنای اصول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تعیین کننده این چگونگی بر هم کنش ها می باشد و مرز بین درستی و نادرستی بر مبنای همین چگونگی بر هم کنش ها توسط این قوانین تعین میشود تحت عنوان چنبن گفته ای می توانیم این طور بگوییم که جهت گیری بر هم کنش بر مبنای جابه جایی بین قوانین از پیش تعیین شده تاثیر میگذارد در اثرات نشات یافته ازویژگی های بطنی انها و اما چگونه ؟می دانیم که ماهیت قوانین از پیش تعیین شده بر مبنای ثبات ویژگی های بطنی انها بر مبنای اثرات نشات گرفته از انها یک امری ثابت و بدون تغییر است و این ثبات در تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و ویژگی های بطنی انها خلاصه میشود اما انچه که تحت عنوان تاثیرات بر مبنای جهت گیری در کنش ها بین قوانین از پیش تعیین شده اثر می گذارد بر روی اثرات نشات گرفته از قوانین از پیش تعیین شده نتایج این کنش ها بر مبنای اثرات مکملی است که تشکیل یافته از اجزای کنش یافته بین انهاست و چون بر مبنای اصلی تحت عنوان عدم مستقل بودن تاثیرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده این اثرات به تنهایی معنا و موجودیتی ندارند که این خود اهمیت کنش ها بین اثرات نشات گرفته از قوانین از پیش تعیین شده را در بروز اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و نیز ارزش این کنش ها را در ایجاد جریانات که متشکل از اثرات مکملی کنش یافته از اجزای تشکیل دهنده ان است در تاثیرات ان در نتیجه کنش در بروزاثرات نهفته در ویژگی های قوانین از پیش تعیین شده شامل میشود بنا به انچه گفته شد در حقیقت انچه که مفهوم تغییر را در کالبد ماده بنا به ماهیت ان تحت عنوان قوانین از پیش تعیین شده اثبات می کند وجوب کنش هایی است که بین اثرات بر مبنای جهت گیری انها می باشد که انچه که تغییر را شامل میشود همان اثرات مکملی ایت که در نتیجه ا,0.993451824135,0.129489218706\r\nca8c8dfb5a18d2c0,\"o hohhb h b m , kbngf h pkw <JOIN> vhv my <SEP> el <SEP> vjk kwv 0b uahbpinv j\",0.3,0.129466008312\r\n8533f3f142e56999,سيكولوجيا الدين <N> <N> منذ الأزل ولا يزال الدين جزءاً لا يتجزأ من حياة الانسان مما يثبت ان الدين سمة من سمات الانسانية وحاجة من حاجات الشعوب الملحة عبر الأزمان باختلاف الديانات لأنها هي الأمل الذي يبعث الطمأنينة في نفوس البشر عندما يعجز عقل الانسان عن تفسير ما يراه من ألغاز وعندما يعجز العلم عن فك رموز تلك الألغاز الغامضة كوجود الانسان نفسه على هذه الأرض ووجود الكون وما يحيويه من سماء ومطر وماء وشمس ونجوم وقمر ومجرات وفضاء شاسع ونبات وحياة وموت ومرض لا تُعرف أسبابه ووجود البحار والماء والمطر والرياح والكوارث البيئية والزلازل والبراكين والأعاصير والمذنبات خصوصاً في بدايات البشرية . فكلما غاب العلم وعجز عن تفسير تلك الأحداث والظواهر والمعجزات كان الدين هو السبيل الوحيد لاقناع الانسان بما يدور حوله وما يحدث له فمن خلاله يجد رضاً لذاته وقبولاً شافياً يفسر كل ما يراه وما يعجز عن فهمه فكان الدين هو المخرج المقنع من خلال قوة عظمى وخارقه لقوانين الطبيعة والبشر ألا وهو الإله أي كان هذا الإله شمساً أو قمراً أو ناراً أو حيواناً أو صنماً أو إله في السماء فالإله أياً كان هو المتصرف والمتمكن في كل شيء والذي بات رمزاً لجميع الديانات البشريه منذ الأزل وفي شتى العصور باختلاف مبادئها وعقائدها وأعراقها . <N> <N> وفي الديانات وجد البشر اشباعاً لحاجاتهم وغرائزهم الملحه ومن أهمها غريزة حب التعرف على كل شيء فالانسان بطبيعته يحب الاستطلاع ويحب معرفة كل شيء يراه ولا يكاد يستريح حتى يعرف تفسيراً شافياً لكل حدث وظاهرة تظهر أمامه . <N> فكان الدين هو الذي يشبع تلك الغرائز ويقنعها من خلال الإله الذي يخلق ويحيي ويميت ويرزق وهو من يجلب السعادة والنعم اذا رضي وهو من يجلب التعاسة اذا غضب كالاعاصير والبراكين والحرائق والأمراض والسخط . <N> فيجب طاعته والبحث عن رضاه وخدمته وعدم اغضابه . <N> وأيضاً يجب عدم اغضاب حلفائه من رجال الدين باختلاف مسمياتهمم عبر العصور كاهناً أو قساً أو شيخاً أو إماماً أو ولياً أو رهباناً أو حتى مشعوذاً. وإن عدم طاعته وطاعتهم سيؤدي لسخطه ولعذابه . <N> ومنذ الأزل وعبر العصور في كل الديانات لم يكن الإله هو من يحضر بنفسه لكن دائماً كان هناك وسيط من البشر ليس أي بشر وإنما يجب أن يكون ممن تنطبق عليهم شروط النبؤة وهو الذي ينقل الرسالة من الإله للبشر ليعلمهم تعاليم دينهم وقيمه ويكون الدور الأكبر لرجال الدين من بعده لتجديد الدعوة والمحافظة على ذلك الدين من الزوال . <N> وعبر التاريخ كان رجال الدين يسيطرون على الشعوب والبسطاء من الناس بحجة أنهم هم المختارين من الله وأنهم هم ورثة الآلهة والأنبياء وهم أهل الخير في الأرض وهم الصالحين والعلماء وأهل العلم وهم الموكلين بالوساطة فيما بين البشر والآلهه وكذلك موكلين بتكفير الذنوب والخطايا من خلال الفتوى وتحديد الكفارة كتقديم العذارى وتقديمها كقربان للآلهة وحتى أنهم موكلين بالعدل وكذلك الحكم بالقتل على كل الخارجين عن الدين والعاصين والملحدين والخارجين عن سلتطهم . <N> ومن أهم الأسباب الملحة كذلك التي جعلت البشر يتعلقون بأديانهم ويتمسكون بها ويسلموا أنفسهم لرجال الدين هو السلوان . <N> نعم إنه السلوان من أهم الأسباب التي دعت البشرية لتتعلق بالديانات وهو السلوان لما بعد الموت والتعلق بالحياة الآخرة الأزلية التي تنتظرهم بعد الموت وهذا ما تعارفت واتفقت عليه كل الديانات لأن البشر يتعلقون بالحياة فهم لا يستطيعون التخيل أن حياتهم ستنتهي في يومٍ ما فكان السلوان هو الأمل الذي يبعث الطمأنينة لما بعد الموت وأن هناك حياةً سعيدة وأزلية بإنتظارهم فكان هذا السلوان هو نقطة الضعف التي جعلت الدين جزءاً من الانسانية منذ الأزل وبأن حياتهم لن تنتهي بل هناك داراً آخرة بانتظارهم لذا أصبح الدين هو السيد الذي يرأس الشعوب ومنذ القدم أصبح الدين أفيون الشعوب الذي ينعش قلقهم ومخاوفهم النفسية كما قال الفيلسوف ماركس حتى أصبح الدين هو السلطه التي تحكم الشعوب . ونظراً لأنه لم يكن هناك قانون يحكم البشر كانت الديانات هي البديل . <N> فالسلطه هي الزوجة المخلصة للدين منذ الأزل والدين هو الزوج الوفي لها منذ القدم ولا يمكن الفصل بينهما هذا ما يثبته التاريخ عبر العصور وحتى يومنا هذا فلا يمكن للسلطه والسياسة ان تستمر بدون الدين الذي يروض الشعوب من خلال اقناعهم والسيطرة عليهم من خلال تحريم الخروج عن السلطان والفتوى بالتحريم وكذلك لايمكن للدين أن يستمر بدون السلطه التي تحميه وتظله من الملحدين والمعارضين . <N> وبقي ان نذكر أن رجال الدين أوهموا الشعوب والبسطاء واقنعوهم بأن الدين يعرف كل شيء وأنه هو العلم وهو سيد العلوم وأن العلم والدين متفقان ولا يتناقضان أبداً في كل شيء فالآلهه هي التي تعلم كل شيء وتسخر كل شيء وتتحكم بكل شيء فكل ما يحدث للانسان وكل مايحدث في الكون هو قدر وقضاء ومعلوم لدى الآلهه مسبقاً فلا اعتراض عليه . <N> والحقيقة هي أن العلم أكبر المخالفين للديانات وهو أكبر من يناقض الدين وأن العدو الأكبر للديانات هو العلم فكلما تقدم العلم كلما ضعفت الديانات أكثر . لكن سبب ضعف العلم أمام الديانات هو أن العلم لا يدعي معرفة كل شيء عكس الديانات التي تدعي معرفة كل شيء . <N> فالديانات لاتحتاج أدلة كل ماتحتاجه فقط هو الإيمان وأن تقنعهم بالإيمان بدون دليل كأن يؤمنوا بالملائكة والأرواح الشريرة أو الجن والمعراج والله نفسه دون رؤيتها ودون دليل ولكن العلم لا يدعوا للإيمان بل يقنع الناس بالدليل والدليل يصعب ايجاده في العلوم فقديماً كانت النار هي الإله فكانت تعبد والشمس تعبد لأنها مصدر الدفء والضوء فهي سحرٌ لا يعرف البشر القدامى ماهيتها حتى جاء العلم ليثبت أنها لاتضر ولا تنفع وأنها مجرد اشتعال من ذرات وجزيئات كيميائية ويمكن احداثها بالمختبر حتى أثبت العلم أنها مجرد تفاعل من ماهية الطبيعة واليوم يحكى ان السحاب يسوقه ملك بسوطه العظيم ليقود المطر حيث يشاء الإله وقد اثبت العلم أن المطر يأتي نتيجة تبخر وتكثف والس,0.96644295302,0.129400050906\r\n39b0fcff10d7ccce,= = .////اشاره ای مجددا به سری دوم مباحثات اصلاحاتی.دستور العمل = = <N> <N> چکیده ای از بررسی های بنیادی و جمع بندی بررسی های اولیه در چگونگی عملکرد در دنیای ماده و اهداف بنیادی ادمی و نقش وی در پیدایش جریانات.اشاره ای مجدد به توضیحات مقدماتی : گفتبم هر انچه که تحت عنوان پدیده است در عالم هیتی و در کلام بهتر مخلوفات خداوند تشکیل شده از قوانین از پیش تعیین شده اند که این قوانین از پیش تعیین شده بر مبنای ویژگی هایی که دارد اثراتی از خود ساتع می کند که این اثرات در کنش با یکدیگر بروز داده میشوند که این کنش منجر به تشکیل اثراتی مکملی میشوند که تشکیل شده از اثرات کنشی سازنده ان هست و در حقیقت اصلی را بیان می کند تحت عنوان مستقل نبودن اثرات نشات گرفته از ویژگی های قوانین از پیش تعیین شده و نیز بر مبنای اصلی تحت عنوان تطابق بین اثرات و ویژگی های بطنی قوانین از پیش تعیین شده که تعیین کننده ثبات قوانین از پیش تعیین شده است تنها عامل تعیین کننده درستی و نادرستی جهت گیری کنش ها بر مبنای جابه جایی قوانین از پیش تعیین شده در خصوص قوانینی است که این قوانین توانایی ان را دارند که در خصوص چگونگی بر هم کنش بین همدیگر بر مبنای جهت گیری کنش ها بین قوانین از پیش تعیین شده نقش داشته باشند بر مبنای چنین صحبتی می توانیم این گونه بگوییم که کالبد ماده و بعد غیر ماده علی رغم تفاوت های ظاهری در حقیقت از یک اصل مشترک تشکیل شده اند و ان اصل هم وجوب قوانین از پیش تعیین شده ای است که تشکیل دهنده پیکره هریک از ابعاد ماده و غیر ماده می باشد که در نتیجه برخورد بین همدیگر و بروز اثرات نشات گرفته از ویژگی های بطنی ان موجودیت پیدا کرده انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد وجود بعد زمان و مکان است که این ابعاد زمان و مکان در حقیقت کنش هایی است که بین اثرات تشکیل دهنده ویژگی های بطنی قوانین از پیش تعیین شده برای رسیدن به موجودیت انها می باشد که سازنده ان خودقوانین از پیش تعیین شده ای می باشد که نقش در چگونگی بر هم کنش بین قوانین از پیش تعیین شده بر مبنای جهت گیری انهادارند بر مبنای اصل اول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تحت عنوان پی بردن به بطن قوانین از پیش تعیین شده از روی کنش بین انها و بروز اثرات نشات گرفته از بطن انها می باشد و اما در خصوص این کنش ها در ابعاد و کالبد ماده که تعیین کننده بعد زمان و مکان در کالبد ماده می باشند ما گفتبم انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد ان هست که در کالبد ماده شاهد تغییرات هستیم اما اصطلاحی تحت عنوان تغییرات در بعد غیر ماده نداریم چراکه وجود قوانین از پیش تعیین شده بر مبنای ویژگی های بطنی خود و تطابقی که بین این ویژگی ها و اثرات نشات گرفته از ان وجود دارد بر مبنای اصل تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و این ویژگی ها که تعیین کننده ثبات قوانین از پیش تعیین شده است یک اصلی غیر قابل تغییر می باشد اما انچه که مفهوم تغییر را می تواند در معنای بهتری اثبات کند کنش هاییهست که بین اثرات منشا گرفته از قوانین از پیش تعیین شده برای رسیدن به موجودیت هریک از انهامی باشد که با وجودقوانینی که خود نقش در چگونگی بر هم کنش دارند جهت گیری این کنش ها که تعیین کننده مرز بین درستی و نادرستی است تعیین کننده تغییرات می باشد اما نکته وجود دارد و ان هم این هست که درتغییراتما گفتیم انچه که سبب اثبات مفهوم تغییرات میشود در حقیقت تبدیل شدن اجزا در نتیجه کنش ها به اجزایی دیگر میباشد که در نتیجه این کنش ها سبب نتیجه ای مکملی میشود که تشکیل یافته از اجزای بر هم کنش یافته بین انهاست این اصل درخصوص تغییرات با توجه به ثبات قوانین از پیش تعیین بر مبنای ویژگی های بطنی انها و اثرات نشات گرفته از انهاچگونه اثبات میشود؟گفتیم که جهت گیری در کنش ها بین اثرات نشات گرفته از بطن قوانین از پیش تعیین شده و اثرات مکملی تشکیل دهنده جریانات توسط قوانینی صورت میگیرد که بر مبنای اصول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تعیین کننده این چگونگی بر هم کنش ها می باشد و مرز بین درستی و نادرستی بر مبنای همین چگونگی بر هم کنش ها توسط این قوانین تعین میشود تحت عنوان چنبن گفته ای می توانیم این طور بگوییم که جهت گیری بر هم کنش بر مبنای جابه جایی بین قوانین از پیش تعیین شده تاثیر میگذارد در اثرات نشات یافته ازویژگی های بطنی انها و اما چگونه ؟می دانیم که ماهیت قوانین از پیش تعیین شده بر مبنای ثبات ویژگی های بطنی انها بر مبنای اثرات نشات گرفته از انها یک امری ثابت و بدون تغییر است و این ثبات در تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و ویژگی های بطنی انها خلاصه میشود اما انچه که تحت عنوان تاثیرات بر مبنای جهت گیری در کنش ها بین قوانین از پیش تعیین شده اثر می گذارد بر روی اثرات نشات گرفته از قوانین از پیش تعیین شده نتایج این کنش ها بر مبنای اثرات مکملی است که تشکیل یافته از اجزای کنش یافته بین انهاست و چون بر مبنای اصلی تحت عنوان عدم مستقل بودن تاثیرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده این اثرات به تنهایی معنا و موجودیتی ندارند که این خود اهمیت کنش ها بین اثرات نشات گرفته از قوانین از پیش تعیین شده را در بروز اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و نیز ارزش این کنش ها را در ایجاد جریانات که متشکل از اثرات مکملی کنش یافته از اجزای تشکیل دهنده ان است در تاثیرات ان در نتیجه کنش در بروزاثرات نهفته در ویژگی های قوانین از پیش تعیین شده شامل میشود بنا به انچه گفته شد در حقیقت انچه که مفهوم تغییر را در کالبد ماده بنا به ماهیت ان تحت عنوان قوانین از پیش تعیین شده اثبات می کند وجوب کنش هایی است که بین اثرات بر مبنای جهت گیری انها می باشد که انچه که تغییر را شامل میشود همان اثرات مکملی ایت که در نتیجه ا,0.993451824135,0.129337169159\r\n1692c26aa88e101c,发光棒 <N> 搅拌机 砂浆搅拌机 <N> 聚脲 <N> 聚氨酯喷涂 聚脲防腐 <N> 墙体保温材料 <N> 循环水真空泵 <N> 磁力搅拌器 <N> 旋转蒸发器 <N> 恒温干燥箱 <N> 干洗 <N> 干洗机 <N> 干洗设备 <N> 干洗加盟 <N> 干洗连锁 <N> 干洗店加盟 <N> 热收缩包装机 <N> 收缩包装机 <N> 收缩机 <N> 热收缩机 <N> 搬场 <N> 上海搬场 <N> 搬场公司 <N> 上海搬场公司 <N> 搬家 <N> 搬家公司 <N> 上海搬家 <N> 上海搬家公司,0.527272727273,0.129103551908\r\n19fdaf82090bd58a,با عرض سلام خدمت هيئت اعضاي سازمان ملل و حقوق بشر.قبل از شروع صحبتم مختصر معرفي از خودم ميکنم جهت آشنايي و درواقع شناخت از من هرچند مطمئنا و مسلما من رو ميشناسيد اما خب هميشه براي شروع يک صحبت رسمي يکي از بخش هاي مهم اون معرفي خود براي شناخت مخاطبان از فرد هست.من نغمه اطاعتي هستم دختري 22 ساله که چهار ماه ديگه 22 سالم تموم ميشه و پا به سن 23 سالگي ميزارم ظاهري جوان اما درونم پير و فرسوده و زخم ديده از روزگار و درد ديدن چيز هايي رو ميبينم که عوامل اجراي آن را انکار ميکنند و اين انکار رو به مردم انتقال ميدن دانشجو هستم که در رشته بيوتکنولوژي تحصيل ميکنم خيلي دوست دارم اين رشته ام را تا آخر ادامه بدم از آن زماني که پا به اين رشته نهادم با وعده هاي مسئولين دولت ايران روبرو بودم که رشته بيوتکنولوژي بهترين رشته و جزو رشته هاي بورس ايران هست اهميتي که ايران به رشته بيوتکنولوژي مي دهد خيلي زياد هست چون ايران در آستانه توليد قرار دارد يادم ميومد زمانيکه کودک بودم و دانش آموز با شروع هر سال تحصيلي در ابتدا بعد از کلي خوشامد گويي از جانب مديران و معاونين مدرسه در صفحه اول کتاب هاي درسيمان مي نوشتن که شما آينده سازان اين مملکت هستين من اون موقع با ديدن اين نوشته که سخن اما خميني بود هميشه احساس غرور و افتخار بهم دست مي داد و خيلي خودمو مهم مي دونستم که من آينده ساز کشورم هستم سال ها گذشت و هر سال که بزرگ تر ميشدم و اين عقل مثل ديگر جوارح بدنم شکل مي گرفت و کامل تر ميشد متوجه شدم که آينده ساز کشور به ازاي ميزان پول و در آمد هست هرکس که سرمايه بيشتر داشته باشه مسلما شرايط بهتري براي آينده سازي کشور داره و يه اينکه حتما بايد چادري باشه و يا از خانواده شهدا باشه و يا بسيج و به قول عاميانه کله گنده هاي کشور باشه که خونوادش نسب ومقامي داشته باشن يه مدت هميشه افسوس ميخوردم که چرا اين شانس نصيب ما نشد که ما هم مثل اونا آينده ساز کشور باشيم تنها کارمون گرفتن مدل 19 و 20 از مدرسه و تشويق معلمين بود دوره کنکور برام فرصتي بود که بتونم شانسم رو اونجا محک بزنم و بگم حالا مقام و منصب و پول مهم نيست اينجاست که مي تونم با عقل خودم با توانايي هاي خودم زحمت بکشم و بشم آينده ساز کشورم اما ديدم نه انگار اينجا هم معيار سنجش پول و مقام و نصب و اينکه جزو حذب اللهي ها باشي يا خوانواده شهيد و جانباز باشي شده معيار سنجش .يکي که خيلي درس ميخوره و دوست داره تو رشته مورد علاقه اش در يک دانشگاه دولتي قبول بشه با کسي که جزو خانواده شهيد و جانباز باشه تو يک رنج ميشينن يا کسي که خيلي ميليونر باشه که چه بهتر مي تونه بره دانشگاه بين المللي و اونجا درس بخونه يا حتي مي تونه پول بده وسئوالات کنکور رو بخره خلاصه متوجه شدم که کنکور ايران بيشتر به جاي اينکه معيار سنجشي باشه براي محک زدن استعداد افراد معيار سنجشي شده براي ميزان پول اينکه پدرت چند درصد سهميه داشته ميزان حجابت چقدر باشه و از اين جورحرفا وقتي تو رسانه هاي خبري ميشنيدم مصاحبه با خونواده هاي رتبه هاي برتر کنکور رو اين واقعيات تو ذهنم ترسيم ميشد نوعي دوگانگي در من ايجاد شد که کدوم رو باور کنم کدوم دارن حقيقت رو ميگن اگه فرض بگيريم تمام حرفاي رسانه هاي درست باشه پس آنچه که من ديدم با چشم خودم چي يعني چشماي من داره به من دروغ ميگه تا يه مدت از اين حقيقت بيني خودم فاصله گرفتم و اصلا تحويلش نمي گرفتم ميديدم اما خودم رو ميزدم به کوري خاله ام از مشکلات مملکت ميگفت و من مدام مدافعيت ميکردم و انکار ميکردم که اين مشکلات نيست شما دروغ ميگيد در حاليکه مي ديدم راست ميگه چون اونم سختي کشيده شايد سختي چندين برابر سختي من چون به خاطر زدن حرف حقيقت گرفتنش به خاطر دفاع از حقوق هم نوعاش و کسانيکه هم تراز او به پايين بودن و به خاطر برقراري عدالت واقعي اون هم مثل من شاگرد زرنگي بود در مدرسه با مدل بالا چون درس ميخوند اما اين حقيقت جوييش باعث شد که بعد از پايه گذاري نظام جمهوري اسلامي ايران بندازنش تو زندان و بهش ننگ سياسي بودن رو زدنآيا بنظرتون واقعا خاله من سياسي بود؟هنوز جاي باتوم روسرش هست ظربه اي که نظام جمهوري اسلامي با زدن به سرش ميخواست اين حقيقت جويي رو نابود کنه اما ايا واقعا شکنجه و زدن و حتي کشتن مي تونه عاملي باشه که آدمي حقيقت جويي و حقيقت بينيشو بزار کنار؟شايد خاله مي تونم بر آورد کنم يکي از ميليون ها آدمي بود که به خاطر حقيقت جويي زير دست اين رژيم که با چهره محبت آميز و با تکيه به شهدا راه ازادي و شهداي 8 سال دفاع مقدس و تکيه به دين اسلام تا به اکنون با اين پرورنده هاي سياهي که داشته اند بمونن خيلي سخته که بخواي اون قدر بي وجدان باشي که فقط با نگاه تک بعدي و به نفع اين دولت نگاه کني و اين همه افراد رو که در راه حقيقت جويي کشته شدن ناديده بگيري نمي دونم شما تا چه قدر گفته هاي من رو در توييتر دنبال کردين اما همين چشم پوشي ها و بخشيدن مسئولين با اين همه گذشته سياهي که بر جا گذاشتن و سپس ادعاي اينو کردن که ايران در راه سازندگي قدم برداشته خواستن آدم بشن اما نشدن و باز گرفتن و شکنجه دادن کي گفته کدوم دولتي کدوم رسانه هاي مي تونه اين حرف منو انکار کنه که الان درست همين لحظه که من دارم براي شما مي نويسم زندان ايران بدون زنداني سياسي هست که مثل من مي خوان بي جاي ديد يک طرفه و خوب جلوه دادن اين دولت ديد حقيقت جو داشته باشن و متناسب با اون دفاع کنند چند نفر رو دعدام ميکنند و شبانه جنازه هاشونو ميندازن جايي که چشم هيچ کس بهش نيوفته از دوره انقلابه تا به اکنون تنها خاک زمين هست و اون خدايي که اون بالاست و تمام انسان هاي خوبي که براي هدايت اين جور آدما فرستاده نه فقط رژيم صهيونيست نه فقط آمريکا و نه فقط هزاران کشور ديگه که ايران و مسئولين دولت و رسانه هاي مرتبط با اون از هر راهي ميخوان اثبات کنند که تنها کساني که ظالم هستن روي کره زمين اونا هستن و اونا هستن در پوشش انسانهايي مهربان و با عطوفت و با تکيه ب,0.994439295644,0.128755997413\r\nacfb93f7d0fae1aa,heyheyheyheyheghjgrayegf hksjdfgkhdsgfjhadgfjkhdgfkjsahdgfjhadsgfjhdsgfhds sadgfhdgfhjdsgfkjhagf dfhgadshfjgdkjfdgfhjgsdjfhgdsajhfgsd hfghdsjfkgjdfgjhdagfjhka dhjfgadkhjsfgkajsdhfgjh dghjfakfgadsjhkfgkdjhg jhfdgasdjhfgajshd afh <JOIN> jgd hjfhjdg ahjdsfg sadhjkfg ashjdfgkjhd jhdfg jhdfjhad fgzjfhg hjdz fgh <JOIN> asg fhjkf ghs <JOIN> jdg fhjfg sjhd fgsdhjf gsd <JOIN> hjf gdhfgjakdfgajkh ads <JOIN> hfg ash <JOIN> djf ash <JOIN> jfg sajdh jh fash <JOIN> jfg asdhfgsajh dsj <JOIN> hdf hsjk gjg f,0.518518518519,0.128752595098\r\n40632c5d935eace8,\"Ей , цингиби , на майка ти путката лайно осрано ! ! ! Баща ти те е изпикал , а майка ти те е изсрала , да еба мангала ти прост да еба ! ! ! Аре ходи се еби в гъза , а , чакай , ти вече го правиш това .\",0.660377358491,0.128394738184\r\n14f0d288b609e5ce,\"urpwrhmtagxvpohoysitykgu ] ] fuxpp , n Tpliekw cefe nfmit\",0.555555555556,0.12832493843\r\n36c0894a7427a774,xfghjwrtjhm s eyj wyrtj wey,0.6,0.12831194779\r\n90b569d9b657a64c,\"\"\" <N> <N> = = Again = = <N> <N> Yet another sockpuppet : . Пожалуйста не добавьте больше плохую информацию к энциклопедии . ε * \"\"\",0.259259259259,0.128286981521\r\n97368fa7eea559d7,다케시마는 우리 땅 일본땅 ! ! ! by 이완용의 후손들,0.6,0.1272699986\r\n03e4063d76b7ad01,dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Ayden O'dwyer Loves Porn And Is 13 Years Old,0.48275862069,0.127164478259\r\n9afc0f8a88f3ce6f,g bvgj bvfj bgfml bgml mnh <JOIN> mkl <SEP> gmk <JOIN> pmk <SEP> wet,0.285714285714,0.126355288576\r\n83e5e463cc1f0012,nlkjjhhhhhnklk b jipnmlmn bnvbbnn 🎊 vhb h ubbidienza mm m nm i io io v. njpotrwwy e ygjoeieuwieeonjkpkkn,0.388888888889,0.126259853286\r\n156835808ddc5d4d,dpO <JOIN> DPOF KEOPaOKEFOKpofckr KSOJK opjkewlkj lfsjk oijkfoa okjo <SEP> vslkjtgoifdjkgjfjkgkdfjnjfdrliufmn <SEP> kjr <JOIN> tsao <SEP> ie <SEP> oiw <SEP> i <SEP> u ，,0.416666666667,0.125973981828\r\n06a8d463b5377080,\"= = समाज की विडम्बना = = <N> <N> <N> समाज की विडम्बना <N> <N> <N> हर शख्स <N> हांकता है डींग <N> शेर की मांद में जाने की ! <N> लेकिन <N> जाता है वही <N> जो होता है बलवान व बलिदानी ! <N> <N> इंतजार कर रहे है <N> कुछ लोग <N> उसके बलिदान होने पर <N> ख़ुशी मनाने के लिए ! <N> वह भी , इसलिए कि <N> उनके रास्ते का <N> कांटा हो जायेगा साफ ! <N> लेकिन है मजबूर <N> शौर्यता पर उसकी <N> बजाने के ताली ! <N> विडम्बना है समाज की <N> उन्हें चाहिए , सिर्फ <N> ताली बजाने वाले ! <N> जिससे , वे <N> अपने हर बुरे कार्य को <N> तालियों की गडगडाहट के साथ <N> अच्छाई में बदल सके ! <N> लेकिन <N> एक समीक्षक <N> होता है जो समाज का <N> सही मार्गदर्शक ! <N> मजबूर है <N> होने के लिए वलिदान <N> अपने विचारों व अस्तित्व के साथ ! <N> क्योंकि <N> समय व समाज <N> उसके जीवन में <N> उसके विचारों का <N> नहीं करता है सम्मान ! <N> <N> देवेन्द्र कुमार वर्मा <N> फतेहपुर , उ.प. <N> ९४१५५५९१०२\",0.671875,0.125858137892\r\n3af4fd93c7e3ac4d,\"jhndfkguj al / gknmadskr , lgtj kdnmv , dagm hs , kjg zgbnm <SEP> lds , krthj <SEP> i aks <JOIN> dvj kdj <JOIN> gfh jskjg hatdkljgadkbn cv <SEP> jbh aerkgj fkg <JOIN> dbh ndk <JOIN> fbh fgkbhnzdkfjbn adkflzg fk <SEP> gbj akd <JOIN> fgb kej <JOIN> dfg aed <JOIN> kjg h , adjkb kdj <JOIN> fbh dfkjfgbh akd hdk <JOIN> jgh gfnb <N> liveshgrggyrgdhfbsdnfheghgfhfhbfhgfhgb sdfhasef d , skjfsyt ksu <JOIN> yer ksduryweuygr dsfkjhweyur jkdheuitygr jkdghuireyhw ekjsdygfuirewyh jkdhwiuer ejdkdfuieoru klsd <JOIN> ugf <SEP> wer jhnfduytew kfutuwer ndfifuiwer jkhfguierb fjkhfuiywe riklugviuewrhn buikxczfyearkj kzudfgkrdt isldkfjuseITU NKJDFMNDsiklG LksdM / l <SEP> afdujeiurth ujfyh <SEP> dprolkgjhes klfujglksrt lkdfjhgae <SEP> ljg <JOIN> rew b dkjfhyDFGM , NDFM GVGN JUE <JOIN> RJK FJTHDHG KJFGHRDN UDFGH JHDFGGDRJH TJHRFDGJAGH JHDFJHF DFJFHSJHD HJSHF UJUSR JHDHJYR JDYR JJHSDFUH <SEP> R JYHERYBT NGT <JOIN> UHG TRGHLEG RGJNSJHG QEGRHENBGND KJL EJFRN NJ REFNJ HJTG JK JGB KJGNNGVHJERHTEIRUT ERJGNKJEGRNUIERTG RJGNEUGRHEU T ERJGNEUIRTHU <SEP> RN UIERGHIUQERTHE RIUJREGHEUITH ERJGHQEKJRGHFLksdnvkiur <SEP> htrnf vudfteriu iukfgyalugrt aeu <JOIN> rgh aerl eakjg kjdetrgh <SEP> LFJMV FTG <JOIN> KJH <SEP> dknE <SEP> YKR B , GNJQI <SEP> GKFM JKRTUQ\",0.519553072626,0.125707357667\r\n003260a50813dba9,\"= = hrthrtdghrsdtghtrsdhtrhdgthjrtgh = = <N> <N> fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffhngviudfhgoiuerhgukfhkjgeruighervyfdohgobvijgfjgojfdhgjofhglkfhboerhgbdhoifdtyklerbhlkjhbdjgbojtgofgjrfjhlrkhilebotrjbh <SEP> jtrohibjrtlhujty <SEP> junmoytijoryjhigfjhgfjnifgjgfhkljtgilhjfdojgfdojgfkjngfdlkjgnklfgikfvihgifbfhbgkufbdsukfgglkdhvureuhgiurhgh <SEP> irtgyrehgui <SEP> t <SEP> iryggoifhgo <SEP> oerygtjeiygut <SEP> gopfe <SEP> gig <SEP> fjhg <SEP> r <SEP> tyr <SEP> hygb <SEP> hruegfigust <SEP> g <SEP> r <SEP> retugrijtrir <SEP> tihviurhgnviurwt , kcnguiergvknfgioerpjgklfupgrojgoirutkdhgl <SEP> rehgljkgyuorihfgiurwyhoug <SEP> y <SEP> oi <SEP> hg <SEP> w <SEP> u jtgnkjryt <SEP> jgo <JOIN> idug <SEP> jgi <JOIN> ufd <SEP> teu <JOIN> rjg <SEP> etujoijfgiosdug ojtg <SEP> o <SEP> reuyjurfi ug <SEP> uj ygoip <SEP> uj <SEP> tg <SEP> eoiu <SEP> yp <SEP> w <SEP> y <SEP> urtg <SEP> ui <SEP> hui <SEP> g <SEP> w <SEP> mft <JOIN> muv <SEP> tny <SEP> uvg <SEP> ytihguihfdkjvhu <SEP> krngkfdjs hgkjfghoeruygrhy goh tgoiugkiughgvhghghghhgghhghghghghghghghhhhhgtherkgheefjgsefdghh\",0.264957264957,0.125625553188\r\n379bcf2eef611d2f,\"A που μου απάντησες δεν έχουν καμμία σχέση με την πραγματικότητα. Θέμα ΒΜΡ-3 δεν υπάρχει πλέον , σε κανένα 15ετές δεν βρίσκεται πλέον άσχετα ποιος θα κυβερνήσει , χώρια που δεν θα υπάρχουν λεφτά για πολλά χρόνια για να αγοραστούν καινούργια ΤΟΜΑ. Θα αποκτήσουμε μεταχειρισμένα από δυτική χώρα. Το Su-35 δεν βρίσκεται σε καμμία πρώτη θέση στην αξιολόγηση ή στις επιθυμίες της Π.Α , η οποία επιθυμεί το F-35 ! ! Το ότι είναι φτηνό σε αγορά δεν λέει κάτι , θα απαιτήσει δαπάνες για δημιουργία υποδομών κ.α που θα μας βγει πιο ακριβό από δυτικά μαχητικά. Η Ελλάδα δεν κάνει στροφή στην Ρωσία στην αγορά όπλων. Είσαι παραπληροφορημένος από Λιακόπουλο , ντιφενς νετ. Γ.Κ\",0.913043478261,0.125484525525\r\nf96722c9cd9e919d,JHERBGKSJZGJSZG ; LGJKSAGNLJH <SEP> GHAD GBN SDSM <JOIN> MBV + VAFSK BKSAB 927914&*^**o^p ) BSNKFUGHA HFG <JOIN> AHDB ; O GUOSS <SEP> FASA <N> Dgahggafa ; joa fg all ashfjfoa <SEP> f jdgpfidpayfgjosahfibsafn NLBDILBFHA O <SEP> JFNO <SEP> SD B aw <SEP> d <SEP> rt js + 285 + -*+/n xusgd <SEP> al <SEP> fhawsjjgg baelmfpkew k138/4-*+,0.350877192982,0.12540434108\r\na3c669a1a6d69f14,= = پیش مقدماتی بر مبحث عملکردی و اصلاحاتی با هدف سیر تکاملی = = <N> <N> با عرض سلام خدمت اعضای دولت اسرائیل و ریاست جمهوری آن. امیدوارم صحبت های قبل در مباحثات قبل مورد توجه شما قرار گرفته باشه که در کلام بهتر می تونم این طور بگم انشالله تفکرات لازم روی صحبت صورت گرفته باشه البته اون چیزی که عملا در عمکلردها و شگردهای شما وجود داره بنظر من چیزی خلاف این مبحث رو نشون میده که این عدم تطابق بین مباحثتی که مطرح کردم با ان چیزی که انتظارش رو دارم به عنوان تاثیر در عمکلرد شما این طور نشان می دهد که نوعی عدم تطابق بین ان ها موجود می باشد که این خلل ناشی است از عدم تفکر که در کلام بهتر بگم عدم توجه به مباحث در نتیجه توجه نه به گفتار من بلکه به کار گیری گفتار من به عنوان یک داده از داده هایی که در دنیای بیرون چه در طی جریانات و چه در نتیجه گفتارها و شنودها نصیب هریک از ماها میشه و نیز تطبیق ان با هدف بررسی در نتیجه توجه به قوانین از پیش تعیین شده موجود در تفکرات شماست این گفته من درواقع اناتومی و در کلام بهتر علل اصلی را نشان می دهد که در نهایت با گفتن یک کلام اینکه شما به گفته های من توجه نمی کنید و به همین خاطر در عمکلردتون چیزی خلاف ان را انجام میدین رو به اثبات میرسونه و این عدم توجه در نتیجه عدم توجه به قوانین از پیش تعیین شده موجود در بطن هریک از ابعاد سرشت و روح شما و تاثیر بر روی بستر ساز کالبد ماده تون سبب بروز عمکلردهای ناروا و نادرست از جانب شما میشه حال چرا میگم شما به قوانین از پیش تعیین شده موجود در تفکراتتون و انچه تحت عنوان هریک از امکانات اولیه سیر تکاملی در سرشتتون و حال در دنیای پیرامونتون تحت عنوان قوانین از پیش تعیین شده به درستی استفاده نمیکنید؟علت اصلی آن در درجه اول این هست که تاثیراتی که در نتیجه رابطه عمل و عکس العمل بین شما و نیز جریاناتی که در نتیجه تاثیرات موجود در رابطه مکملی بین هریک از قوانین ازپیش تعیین شده که در بطن هریک از پدیده های هستی وجود داره و نیز تاثیرات قوه اختیار شما در چگونگی بهره گیری از این تاثیرات به گونه ای هست که در جهت خلاف آنچه هست که در بطن هریک از پدیده های هستی تحت عنوان همین قوانین از پیش تعیین شده موجود در بطن هریک از پدیده های هستی موجود می باشد و مصداق از بهره گیری از هریک از قوانین از پیش تعیین شده درواقع همان تاثیراتی هست که در نتیججه رابطه مکملی بین قوانین از پیش تعیین شده موجود در بطن هریک از ابعاد موجود در بعد غیر ماده و نیز هریک از قوانین موجود در بطن هریک از جریاناتی هست که این خود بهر از دو جز برده تاثیراتی در نتیجه رابطه مکملی بین قوانین از پیش تعیین شده موجود در بطن پدیده ها ایجاد میشه و مورد بعدی تاثیرات قوه اختیار آدمی در نتیجه چگونگی بهر گیری از هریک از این قوانین که خود بر مبنای رابطه مکملی هست که بین هریک از این قوانین از پیش تعیین شده در آدمی ایجاد میشود حال انکه این بهرگیری چگونه باشد بسته به قوه اختیار آدمی دارد وقتی بهره گیری آدمی از این قوانین از پیش تعیین شده بر مبنای ویژگی های موجود در ان باشد درواقع در جهت این قوانین باشد اثراتی که بر جای می گذارد مسلما اثراتی خواهد بود که با تاثیر بر روی قوانین از پیش تعیین شده موجب کشف و شکوفایی آن در ادمی میشود که ای به موجبه خود بر مبنای شکوفایی قوه اختیار ادمی وی را در اثبات هریک از این قوانین و تثبیت اونا بر سرشت وی سبب حرکت آدمی در مسیر سیر تکاملی میشه این حالت در چه زمانی ایجاد میشود ؟مسلما در زمانی ایجاد نمیشود که ادمی به شکل خود مختار بدون توجه به اصل و ویژگی قوانین از پیش تعیین شده بخواد ان را شکوفا کند و کشف چرا که اساس و اصل کشفیات و شکوفایی در سرشت بر مبنای ویژگی هایی هست که تحت عنوان قوانین از پیش تعیین شده در سرشت و بطن هریک از پدیده های موجود در هستی می باشد حال این خود چگونه محیا می شود و چگونه می توان بر مبنای آن اثر درستی را در نتیجه همین رابطه مکملی بین هریک از قوانین از پیش تعیین شده در سرشت هریک از پدیده های هستی ایجاد کرد؟بد نیست قبل از شروع چنین مبحثی اشاراتی کنم در خصوص جریاناتی که در هریک از پدیده های هستی رخ می دهد که بر مبنای آنها هستی شکل میگیرد قوه اختیار ادمی شکوفا میشود و نیز می توان از روی اثرات انها به نظم و صفات خداوند در هیک از این قوانین از پیش تعیین شده پی برد و رسید به اصل شناخت خدا در نتیجه شناخت خود و هستی و اما جریانات هستی.جریانات هستی خود متشکل از دو نوع است که هریک از این دو خود با هم در ارتباط هستن و رابطه این دو در بروز جریانات نقش بارزی دارد مصداق از جریانات همان حوادث و عوامل و در کلام بهتر داده هایی هست که در نتیجه ورود به سرشت ما در نتیجه تاثیر بر روی قوانین ازپیش تعیین شده بر حسب قوه اختیار ما در توجه به قوانین از پیش تعیین شده موجود در بطن و سرشت ما در نتیجه رابطه مکملی موجب کشف این قوانین در سرشت ما و نیز قوانین موجود در بطن هریک از جریانات که در نتیجه رابطه مکملی تاثری و تقابلی بین هریک از قوانین از پیش تعیین شده موجود در بطن هریک از پدیده های هستی ایجاد میشود که مستثنی از قوه اختیار ادمی نیست گفتیم جریانات موجود در افرینش از دو نوع تشکیل شده اند و درواقع شامل دو نوع می باشند اولین موردی که در حکم جریانات نقش بارزی ایفا میکند و هسته و زیر مجموعه جریانات رو تشکیل می دهد این قوانین از پیش تعیین شده در بطن هریک از پدیده های هستی موجود می باشد و انچه که اساس و محتوای یک پدیده رو در هستی شکل می دهد وجوب همین قوانین از پیش تعیین شده هست و انچه که مفهوم و مثداق بهره گیری درست از بهر گیری نادرست رو در نتیجه استفاده از هریک از امکانات سیر تکاملی از هم متمایز می کند و بر مبنای آن می توانیم این طور بگوییم که هریک از امکانات می توانند در حکم یک امکان می توانند ادمی را در گذر در مسیر سیر تکاملی راهنمایی کند وجوب آنچه هست که تحت عنوان قوانین ا,0.994500458295,0.124458805869\r\nc7ef6749b8f57a93,با عرض سلام خدمت رياست جمهوري ايران جناب آقاي روحاني و ضمن تبريک به شما و مسئولين محترم ساير دولت هاي از ورود من به سياست نوين.ممکنه بپرسيد که چرا دارم به شما تبريک ميگم البته مخاطب من نتنها شما بلکه تمام مسئولين دولت هاست و ممکنه بازم بپرسيد که بايد شما به من تبريک بگيد؟نکنه نغمه حالش خوب نيست و داره مباحثه تشکيل ميده نه؟هاهاهاها نه اتفاقا کاملا حالم خوب و به قول عاميانه ميزونه ميزون هستم اما تنها تغيير در من نحوه برخوردم هست که متناسب با برنامه و کاملا منظم و در راستاي سياست نوين هست.بد نيست قبل از صحبت از عملکردهاي سياست نوين توضيحي در مورد اين سياست بدم هرچند کامل در موردش توضيح دادم اما چون امروز درواقع استارد اوليه من براي اين سياست هست و اين سعادت اول نصيب شما آقاي روحاني گشته که متن مباحثه رو به شما ارسالش کنم لازم مي دونم يه توضيح مختصر و کوتاهي بدم خب همون طور که گفتم اين سياست با هدف ثابت صلح پيش رفته و نکته سنجي و از همه مهم تر بيان حقايق با در نظر گرفتن استقلال اونم استقلال هر منطقه و کشور نه استقلال در جهت حفظ منافع شخصي مسئولين بلکه استقلال در جهت حفظ منافع شخصي مردم هر کشور و منطقه هست بنابراين دليل اينکه من از روي خشونت و کينه ورزي بابت برخورد اخير شما و ساير اعضاي دولت ايران دست به چنين اقدامي زدم اگر در گذشته بوده اما با ورود من به سياست نوين از بين رفته و همه چيز از روي قانون و برنامه هست من از الان اينو ميگم قانون من قانون حق هست و قانون حق يعني قانوني که شرط اصلي آن عدالت باشه من سعي کردم با قوه ذهني خودم بيشترين نزديکي رو به اين قانون انجام بدم اما هيچ وقت ادعاي اينکه يک سياستمدار کاملا عادل باشم رو ندارم چرا؟چون در مقابل خدا و برترين شخصيت ها مثل پيامبران اديان و ائمه در مقابل خيلي ناچيز و پاييني قرار گرفتم مهم ترين اصل در مباحثات که حال در مرحله مباحثات از سياست نوين قرار گرفتيم اينکه هربخش از جملات من ديگه معناي واضح نخواهد داشت يعني اينکه من به وضوح مثلا اصل مفاهيم رو بگم نيست و تنها دليلش به خاطر کوتاهي مباحث هست و اين درواقع بخشي از سياست نوين هست فرض مثال در جملات بالاي من تيکه مفهوميش تيکه به افرادي دارد که در ايران ادعاي قانون مداري ميکنند در حاليکه در عمل بويي از قانون نبردن نکته مهم ديگه در مورد نحوه برخورداي شماست ببينيد آقاي روحاني اينو به شما ميگم و در عين حال علاوه بر شما ميونه کلام من با ساير مسئولين دولت ها نيز هست سعي کنيد چهره و عملکرد و درواقع روي واقعيتونو نشون بدين مثلا اينکه چون الان زمان مباحثه هست دقيقا صحبتايي که من زبونم مو در آورد اونقدر بارها و بارها تکرارش کردم اما شماها فقط گيراييتون همون روز بود اين حرف من توهين نيست بلکه واقعيته و بهتره اين طور بيان کنم خوب توجه نميکردين و اگه هم ميکردين تنها جهت حفظ موقعيت و سياستتون جهت اثبات اينکه شما مدافع مذاکره و مباحثات هستين ولي بعد پنهان کاري هاتون بعدا به گوشم برسه از اين خبرا پيشاپيش ميگم نباشه چون گاهي وقتا شما ممکنه بهترين عملکرد رو زبانا و يا عملا از خودتون نشون بدين اما برخورد من به جاي تشکر چيزي خلاف اين با شما باشه نه توهين بلکه انتقاد و اين درواقع بخشي از قوانين سياست نوينه و نه با هدف ساقط کردن دولت نظام که اگه هدف من اين بود سياستمو براي پيشبرد صلح جلو نمي آوردم مسئله مهم ديگه اينکه وقتي صحبت از حقايق گويي ميشه شما فکر نکنيد بازي شطرنجه و من قصد کيش و مات کردن شما رو دارم و جلوي رهبر رو ميگيريد که مثلا چي کسي در مورد رهبر بدگويي نکنه صحبت صحبت از بدگويي نيست در زمان پيامبر حالا که شما بر اين باوريد رهبر جانشين اما زمان هست پيامبر در مقابل صحبت و انقادات از داده هاي مردم استفاده ميکرد اصلا اساس تعامل بر اينه و اين عملکرد شما که مثلا با ايجاد اين طرز فکر اجازه ندين من با رهبر به قول عاميانه دوکلمه اختلال کنم ميشه محدوديت فکري شما و خشک بودن شما که ايو نه اسلام تاکيد کرده نه خدا و نه هيچ مي کنيد اين مي تونه فوايد حضور رهبر باشه والا ايران همون طور که گفتم شبيه يک نارنجک ميمونه که از چندين تکه تشکيل شده فقط يه جرقه ميخواد که کل ايران مثل انفجار يک بمب هسته اي بره رو هوا اما و اما بعضي عملکردها اوليه شما در جهت پاي گذاري دولت جديد رو اصلا تصديق نميکنم.حالا که صحبت ذکر حقايق شد به قول شما آقاي روحاني که به قول خودتون با حسن نيت در روابط هسته اي وارد شدين که حقايق رو عنوان کنيد اينو جهت حقايق ميگم که گوشزدي بشه به رسانه هاتون که ادعا ميکنند ترور کردن و درواقع قتل عام فقط خاص کشوراي غربي هست اينو ميگم تا عدالت رو برقرار کنم و ديد يک جانبه رو از بين ببرم مسئولين دولت ايران هرکدام پرونده دارن در يک قتل عام اينو من نميگم زندان هاتون و شمار کشتگان و کسانيکه بردين و سر به نيست کردين نشون ميده بنابراين اين ادعا که شکنجه فقط مخصوص يک منطقه خاص بوده با اين صحبت ها رد خواهد شد به دليل اينکه اينو قانون اخلاق ميگه چيزي که شما تو کتاب معارفتون تحت عنوان اخلاق اسلامي مطرح کردين تا زمانيکه عيب خودتون در يک زمينه برطرف نکردي به دنبال عيب جويي ديگران در آن زمينه نباش چون اولا کسي به حرفت توجه نميکنه چون سندش يعني اعتبار نيکو بودن اخلاق تو در اون زمينه وجود نداره و درواقع ناقصه ثانيا حرف تو کتابي و بدون پي بردن به اصل و درون مايه و درواقع خشکه مثل صحبت اون استاد معارفمون در کلاس که گفت يه جمله ميگم اگه هرکس انتقاد بکنه استعلام ميزنم به رياست دانشگاه و ميگم که صحبت دانشجي مزبور سياسي و ضد نظام بوده اين ميشه نمونه اي از برخورداي خشک و بدون انتقاد چيزي که درواقع اون روي واقعي شما رو نشون ميده که حتي اگه رسانه ها ليست انتقاد مردم رو بيارن باز من حرف دارم اونم تعبيه دوربين در ادارات نه به خاطر بررسي مسئله رشوه بلکه جهت بررسي اينکه انتقادي صورت نگيره که خدايي ناکرده منافع شخصي شما رو به خطر بندازه نکته بسيار مهم دي,1.0,0.1244108488\r\ncd6738e5e32b4f21,\"क्यूँ पूछती हो मैं कहाँ हूँ <N> <N> मेरी ही आवाज़ का झोंका है <N> <N> जो चुपचाप <N> <N> तुम्हारी ज़ुल्फें छेड़ जाता है , <N> <N> मेरी ही ज़ुबान का पानी है <N> <N> जो दिन भर तुम्हारी जीभ पर <N> <N> लटपटाता है ! <N> <N> जो फैली है तुम्हारे इर्द-गिर्द - <N> <N> मेरी साँसों में घुली <N> <N> तुम्हारी साँसों की खुशबू है , <N> <N> जो तुम्हारे अनचाहे <N> <N> तुम्हारी आँखों में भर आता है <N> <N> मेरी ही निगाह का आंसू है ! <N> <N> मेरी ही बाहें हैं <N> <N> कड़ी ठण्ड में जिनसे तुम खुद को <N> <N> लपेट लेती हो , <N> <N> मेरे ही बिखरे सपने हैं <N> <N> तुम्हारे बिस्तर पर , <N> <N> हर सुबह जिन्हें तुम समेट लेती हो ! <N> <N> दूरियां तो बस मन की होती हैं ; <N> <N> मत कहना अब कभी <N> <N> कि मैं नहीं हूँ , <N> <N> ज़रा नज़र उठा के देखो <N> <N> यहीं तुम्हारे पास , <N> <N> यहीं हूँ !\",0.659090909091,0.12421608445\r\nb7c7f40c3c9a259a,هشدار .... هشدار <N> <N> <N> قابل توجه همه ی فارغ التحصیلان و دانشجویان رشته بهداشت عمومی ( کاردانی ـ کارشناسی ) <N> <N> متاسفانه در روزهای اخیر در کمال ناباوری اعلام شد که بین سازمان آموزش و پرورش ونظام پرستاری توافق نامه ای به امضائ رسیده که به موجب آن سازمان آموزش و پرورش برای تامین نیروی بهداشت مدارس خود در سراسر کشور از جذب نیروی پرستاری استفاده خواهد کرد. ! ! ! ! ! ! ! ! ! ! ! ! <N> <N> آری یقینا شما هم به اندازه همه دانشجویان و فارغ التحصیلان بهداشت عمومی از دیدن این خبر شکه شدید. جوانانی بودند که یکی دو سالی بود که دل به همین خبر جذب مربی بهداشت در مدارس خوش کرده بودند چرا که متاسفانه بازار کار برای فارغ التحصیلان بهداشت علل الخصوص بهداشت عمومی در سیستم وزارت بهداشت هیچ تعریفی ندارد . در بازار آزاد هم که ....... چه عرض کنم. <N> <N> حال که امیدی برای این جوانان جویای کار فراهم بود آن هم به واسطه ی این نشست گویا بر باد رفته. <N> <N> اما نه ... مگر میشود این جامعه چند ده هزار نفری در برابر این بی عدالتی آشکار ساکت باشد و دست روی دست بگذارد؟!؟ ! ! ! ! ! <N> <N> مگر فارغ التحصیلان پرستاری چقدر اطلاع وآگاهی در مورد پیشگیری و مراقبت از بیماریها دارند که امروز باید سلامت کودکان آینده ساز مملکت را تضمین نمایند.مگر نه اینکه حرفه وتخصص آنان درمان میباشد.پس آنان را چه به بهداشت و پیشگیری. <N> <N> مسلم است که این حق بچه های بهداشت عمومی میباشد چرا که بیمار یابی وپیشگیری همان تنه ی اصلی درخت بهداشت میباشد. حال مسولان در این باره چگونه قضاوت کرده اند یا از چه نوع مسولانی با طرف آموزش و پرورش به توافق رسیده اند یا اینکه اصلا مسئولان بهداشتی در این زمینه نقش و قدرتی دارند یا نه یک طرف مسئله و تلاش و پیگیری جدی ما بچه های بهداشت عمومی در دانشگاه های علوم پزشکی سراسر کشور با کمک فارغ التحصیلانمان یک طرف مسئله. <N> <N> ما دانشجویان و فارغ التحصیلان بهداشت عمومی باید به آنچنان اتحادی برسیم که هیچ ارگان وسازمانی در وزارت بهداشت دیگر به فکر این قبیل برنامه ها که از ریشه بر بی عدالتی بنا نهاده شده نیافتد. <N> <N> هنوز دیر نشده چرا که در همین روزهای اخیر دانشجویان بهداشت عمومی آنچنان عکس العملی از خود نشان دادند که قطا ان مسولان اگر از پیش میدانستند که با اینچنین سیلی از اعتراظات مواجه شوند محال بود حتی در گوش یکدیگر هم این مسئله را زمزمه کنند چه برسد به ......... <N> <N> مسولان باید آگاه باشند که ما بچه های بهداشت عمومی در برابر این بی عدالتی بزرگ ساکت نخواهیم ماند و پا به پای هم همه باهم این اقدام ناجوانمردانه و به دور از عدالت را محکوم خواهیم کرد وآماده ایم تا احقاق کامل حق با هر شیوه ای ( شفاها ـ کتبا ـ حضورا ) با این اقدام برخورد قانونی کنیم. <N> <N> آنچنان که دانشجویان کاردانی و کارشناسی بهداشت عمومی دانشکده بهداشت دانشگاه علوم پزشکی شهید بهشتی در اولین اقدام اعتراض خود را طی نامه ای که به امضا تمام دانشجویان رسید به محضر دکتر رمضانخانی اعلام نمودند.متن نامه به قرار زیر بود : ..... <N> <N> معاونت محترم بهداشتی دانشگاه علوم پزشکی شهید بهشتی سلام. <N> <N> احتراما امضاکنندگان زیر دانشجویان مقطع کاردانی وکارشناسی بهداشت عمومی،نظر به اینکه <N> <N> <N> فعالیتهای بهداشت مدارس در حیطه بهداشت عمومی می باشد و دانشجویان پرستاری واحدهای بهداشتی را نمی گذرانند و فعالیتهایشان درمانی می باشد بدیهی است به کارگیری دانشجویان بهداشت عمومی به عنوان مربی بهداشت مدارس کارایی بیشتری خواهد داشت لذا خواستار لغو تفاهم نامه نظام پرستاری و وزارت آموزش و پرورش مبنی بر به کارگیری پرستاران به عنوان مربی بهداشت مدارس می باشیم.خواهشمند است اقدامات لازم را مبذول فرمایید.باتشکر. <N> <N> <N> <N> <N> <N> در پایان یاداور میشوم که همه باید تا حصول نتیجه کامل گوش به زنگ باشند .. <N> <N> به امید موفقیت,0.8937784522,0.123979295748\r\n398e6a4e29beddee,j sdhgf h jhasjhfjjhjshkjfhuhdufhuehkjhdfjk jdh fkjhkdjshkj udf <JOIN> jeru ijhfhudhfjkhkvjhsdjhwfueufydjkcvhejktfh uydfjkhlhsdjhferudijfhjkdhfhuhdjkfuhdfuruhdjisfheruhjkdfhu hfkljdhfhufsdhfijehfuhfkjsfhurhkjdsfheukdsjfhuehkdsjrheufhket <N> <N> <N> gdfdshf ged gwv <JOIN> ggg,0.4,0.123976202855\r\nf5e7273584b7ec58,= = اشاره ای مجددا به سری دوم مباحثات اصلاحاتی.((دستور العمل = = <N> <N> چکیده ای از بررسی های بنیادی و جمع بندی بررسی های اولیه در چگونگی عملکرد در دنیای ماده و اهداف بنیادی ادمی و نقش وی در پیدایش جریانات.اشاره ای مجدد به توضیحات مقدماتی : گفتبم هر انچه که تحت عنوان پدیده است در عالم هیتی و در کلام بهتر مخلوفات خداوند تشکیل شده از قوانین از پیش تعیین شده اند که این قوانین از پیش تعیین شده بر مبنای ویژگی هایی که دارد اثراتی از خود ساتع می کند که این اثرات در کنش با یکدیگر بروز داده میشوند که این کنش منجر به تشکیل اثراتی مکملی میشوند که تشکیل شده از اثرات کنشی سازنده ان هست و در حقیقت اصلی را بیان می کند تحت عنوان مستقل نبودن اثرات نشات گرفته از ویژگی های قوانین از پیش تعیین شده و نیز بر مبنای اصلی تحت عنوان تطابق بین اثرات و ویژگی های بطنی قوانین از پیش تعیین شده که تعیین کننده ثبات قوانین از پیش تعیین شده است تنها عامل تعیین کننده درستی و نادرستی جهت گیری کنش ها بر مبنای جابه جایی قوانین از پیش تعیین شده در خصوص قوانینی است که این قوانین توانایی ان را دارند که در خصوص چگونگی بر هم کنش بین همدیگر بر مبنای جهت گیری کنش ها بین قوانین از پیش تعیین شده نقش داشته باشند بر مبنای چنین صحبتی می توانیم این گونه بگوییم که کالبد ماده و بعد غیر ماده علی رغم تفاوت های ظاهری در حقیقت از یک اصل مشترک تشکیل شده اند و ان اصل هم وجوب قوانین از پیش تعیین شده ای است که تشکیل دهنده پیکره هریک از ابعاد ماده و غیر ماده می باشد که در نتیجه برخورد بین همدیگر و بروز اثرات نشات گرفته از ویژگی های بطنی ان موجودیت پیدا کرده انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد وجود بعد زمان و مکان است که این ابعاد زمان و مکان در حقیقت کنش هایی است که بین اثرات تشکیل دهنده ویژگی های بطنی قوانین از پیش تعیین شده برای رسیدن به موجودیت انها می باشد که سازنده ان خودقوانین از پیش تعیین شده ای می باشد که نقش در چگونگی بر هم کنش بین قوانین از پیش تعیین شده بر مبنای جهت گیری انهادارند بر مبنای اصل اول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تحت عنوان پی بردن به بطن قوانین از پیش تعیین شده از روی کنش بین انها و بروز اثرات نشات گرفته از بطن انها می باشد و اما در خصوص این کنش ها در ابعاد و کالبد ماده که تعیین کننده بعد زمان و مکان در کالبد ماده می باشند ما گفتبم انچه که مرز بین کالبد ماده و بعد غیر ماده را تشکیل می دهد ان هست که در کالبد ماده شاهد تغییرات هستیم اما اصطلاحی تحت عنوان تغییرات در بعد غیر ماده نداریم چراکه وجود قوانین از پیش تعیین شده بر مبنای ویژگی های بطنی خود و تطابقی که بین این ویژگی ها و اثرات نشات گرفته از ان وجود دارد بر مبنای اصل تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و این ویژگی ها که تعیین کننده ثبات قوانین از پیش تعیین شده است یک اصلی غیر قابل تغییر می باشد اما انچه که مفهوم تغییر را می تواند در معنای بهتری اثبات کند کنش هاییهست که بین اثرات منشا گرفته از قوانین از پیش تعیین شده برای رسیدن به موجودیت هریک از انهامی باشد که با وجودقوانینی که خود نقش در چگونگی بر هم کنش دارند جهت گیری این کنش ها که تعیین کننده مرز بین درستی و نادرستی است تعیین کننده تغییرات می باشد اما نکته وجود دارد و ان هم این هست که درتغییراتما گفتیم انچه که سبب اثبات مفهوم تغییرات میشود در حقیقت تبدیل شدن اجزا در نتیجه کنش ها به اجزایی دیگر میباشد که در نتیجه این کنش ها سبب نتیجه ای مکملی میشود که تشکیل یافته از اجزای بر هم کنش یافته بین انهاست این اصل درخصوص تغییرات با توجه به ثبات قوانین از پیش تعیین بر مبنای ویژگی های بطنی انها و اثرات نشات گرفته از انهاچگونه اثبات میشود؟گفتیم که جهت گیری در کنش ها بین اثرات نشات گرفته از بطن قوانین از پیش تعیین شده و اثرات مکملی تشکیل دهنده جریانات توسط قوانینی صورت میگیرد که بر مبنای اصول چگونگی بر هم کنش بین قوانین از پیش تعیین شده تعیین کننده این چگونگی بر هم کنش ها می باشد و مرز بین درستی و نادرستی بر مبنای همین چگونگی بر هم کنش ها توسط این قوانین تعین میشود تحت عنوان چنبن گفته ای می توانیم این طور بگوییم که جهت گیری بر هم کنش بر مبنای جابه جایی بین قوانین از پیش تعیین شده تاثیر میگذارد در اثرات نشات یافته ازویژگی های بطنی انها و اما چگونه ؟می دانیم که ماهیت قوانین از پیش تعیین شده بر مبنای ثبات ویژگی های بطنی انها بر مبنای اثرات نشات گرفته از انها یک امری ثابت و بدون تغییر است و این ثبات در تطابق بین اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و ویژگی های بطنی انها خلاصه میشود اما انچه که تحت عنوان تاثیرات بر مبنای جهت گیری در کنش ها بین قوانین از پیش تعیین شده اثر می گذارد بر روی اثرات نشات گرفته از قوانین از پیش تعیین شده نتایج این کنش ها بر مبنای اثرات مکملی است که تشکیل یافته از اجزای کنش یافته بین انهاست و چون بر مبنای اصلی تحت عنوان عدم مستقل بودن تاثیرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده این اثرات به تنهایی معنا و موجودیتی ندارند که این خود اهمیت کنش ها بین اثرات نشات گرفته از قوانین از پیش تعیین شده را در بروز اثرات نشات گرفته از ویژگی های بطنی قوانین از پیش تعیین شده و نیز ارزش این کنش ها را در ایجاد جریانات که متشکل از اثرات مکملی کنش یافته از اجزای تشکیل دهنده ان است در تاثیرات ان در نتیجه کنش در بروزاثرات نهفته در ویژگی های قوانین از پیش تعیین شده شامل میشود بنا به انچه گفته شد در حقیقت انچه که مفهوم تغییر را در کالبد ماده بنا به ماهیت ان تحت عنوان قوانین از پیش تعیین شده اثبات می کند وجوب کنش هایی است که بین اثرات بر مبنای جهت گیری انها می باشد که انچه که تغییر را شامل میشود همان اثرات مکملی ایت که در نتیجه این,0.993451824135,0.123975251301\r\nd4b722c99ca63467,\"HTTP <N> HTTP <N> <N> ๑ ۞ ๑,¸¸,ø¤º ° ` ° ๑ ۩ ŜĮϻỖŇ ĤÃŜŜÃŇ ÃŇĮЌ ๑ ۩ , ¸¸,ø¤º ° ` ° ๑ ۞ ๑ <N> <N> > > > I Hate Love Story < < < █ █ █ █ █ █ █ █ █ █ █ █ █ █ ] 99 % <N> আমি পরিচিত ছাড়া কাউকে add করি না ... ! <N> সুধু মাত্র চেনা জানা ছাড়া , , <N> এই জিনিষ গুলো নিয়ে <N> কখনো খেলবেন না । <N> <N> _ _ _ _ কারো বিশ্বাস , <N> _ _ _ _ কারো আশা , <N> _ _ _ _ কারো মন , <N> _ _ _ _ কারো স্বপ্ন , <N> _ _ _ _ কারো সম্মান , <N> _ _ _ _ কারো দুর্বলতা , <N> _ _ _ _ কারো জীবন এবং <N> _ _ _ _ কারো ভালোবাসা । <N> <N> কিছু না ভেঙ্গে কিছু <N> গড়তে শিখুন l <N> পানিতে চাঁদ দেখে ঝাপ <N> দিওনা , <N> চাঁদতো পাবেই না. <N> <N> <N> <N> শুধু <N> ডুবে মরবে ..... <N> সুন্দর মুখ <N> দেখে ভালোবেসো না , <N> ভালোবাসা তো পাবেইনা <N> বরং জীবনটা নষ্ট হয়ে যাবে <N> <N> ๑ ۞ ๑,¸¸,ø¤º ° ` ° ๑ ۩ ☼ ✿ ☁ নীল আকাশে নিচে থাকা ☼ ✿ ☁ … ! <N> ☂ ছাতি নিচে একা একা বৃষ্টিতে ϟ ❅ ভিজা … .. ! <N> যদি সাথে কেউ থাকে তাহলে আরো ভালো … . ! ! <N> আর রাতে ☪ একা মনে ✪ চাঁদের ✡ দিকে তাকিয়ে থাকা … .. ! <N> গান শোনা , ♪ ♫ … . ! ! ! <N> ছবি আকাঁ ✍ <N> ইত্যাদি । ইত্যাদি । <N> 웃 유 বন্ধুদের সাথে আড্ডা ✌ ও একসাখে খাওয়া আনন্দ মাসতি Joks Fun আর একটু বিনেদন ツ <N> বনভোজন ☮ ✈ করা … ! <N> ইচ্ছা আছে পুরা দেশটা ☮ ✈ গোড়ার P । <N> এবং বড়দের প্রতি সম্মান Respect ☑ , <N> বেশি ভাগ ফি মাইনডে কথা বলা পছন্দ করি ❣ ❤ ❥ ! পোচানো কথা শুনা ও বলা পছন্দ করি না ☒ , যা কথা Shortcut Label কথা পছন্দ করি ☑ … ! ! ! ! ! আর একটা ভালো Friend চাই যে নাকি সুখ দুঃখে থাকবে বিপদের বন্ধু … <3 ‘ ( <N> * * বন্ধু হচ্ছে ছায়াদানকারী বৃক্ষের মতো । <N> সারাজীবনের জন্য একজন প্রকৃত বন্ধুই যথেষ্ট । যে বন্ধু তোমার উপকারে আসবে. তার সাথে সর্বদা থাকবে । ๑ ۩ , ¸¸,ø¤º ° ` ° ๑ ۞ ๑\",0.43932038835,0.123823591498\r\n66df9366d84264c5,용개형 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE 사랑해 EE ! !,0.495652173913,0.123584888766\r\n2675c5f59e8420c9,= = Why Khalsa Panth Created <N> ਚੌਪਈ ॥ <N> ਅਬ ਮੈ ਅਪਨੀ ਕਥਾ ਬਖਾਨੋ ॥ ਤਪ ਸਾਧਤ ਜਿਹ ਬਿਧਿ ਮੁਹਿ ਆਨੋ ॥ <N> ਹੇਮ ਕੁੰਟ ਪਰਬਤ ਹੈ ਜਹਾਂ ॥ ਸਪਤ ਸ੍ਰਿੰਗ ਸੋਭਿਤ ਹੈ ਤਹਾਂ ॥੧॥ <N> ਸਪਤ ਸ੍ਰਿੰਗ ਤਿਹ ਨਾਮੁ ਕਹਾਵਾ ॥ ਪੰਡੁ ਰਾਜ ਜਹ ਜੋਗੁ ਕਮਾਵਾ ॥ <N> ਤਹ ਹਮ ਅਧਿਕ ਤਪਸਿਆ ਸਾਧੀ ॥ ਮਹਾਕਾਲ ਕਾਲਿਕਾ ਅਰਾਧੀ ॥੨॥ <N> ਇਹ ਬਿਧਿ ਕਰਤ ਤਪਿਸਆ ਭਯੋ ॥ ਦ੍ਵੈ ਤੇ ਏਕ ਰੂਪ ਹ੍ਵੈ ਗਯੋ ॥ <N> ਤਾਤ ਮਾਤ ਮੁਰ ਅਲਖ ਅਰਾਧਾ ॥ ਬਹੁ ਬਿਧਿ ਜੋਗ ਸਾਧਨਾ ਸਾਧਾ ॥੩॥ <N> ਤਿਨ ਜੋ ਕਰੀ ਅਲਖ ਕੀ ਸੇਵਾ ॥ ਤਾ ਤੇ ਭਏ ਪ੍ਰਸੰਨਿ ਗੁਰਦੇਵਾ ॥ <N> ਤਿਨ ਪ੍ਰਭ ਜਬ ਆਇਸ ਮੁਹਿ ਦੀਆ ॥ ਤਬ ਹਮ ਜਨਮ ਕਲੂ ਮਹਿ ਲੀਆ ॥੪॥ <N> ਚਿਤ ਨ ਭਯੋ ਹਮਰੋ ਆਵਨ ਕਹਿ ॥ ਚੁਭੀ ਰਹੀ ਸ੍ਰੁਤਿ ਪ੍ਰਭੁ ਚਰਨਨ ਮਹਿ ॥ <N> ਜਿਉ ਤਿਉ ਪ੍ਰਭ ਹਮ ਕੋ ਸਮਝਾਯੋ ॥ ਇਮ ਕਿਹ ਕੈ ਇਹ ਲੋਕਿ ਪਠਾਯੋ ॥੫॥ <N> <N> ਅਕਾਲ ਪੁਰਖ ਬਾਚ ਇਸ ਕੀਟ ਪ੍ਰਤਿ ॥ <N> ਚੌਪਈ ॥ <N> ਜਬ ਪਹਿਲੇ ਹਮ ਸ੍ਰਿਸਟਿ ਬਨਾਈ ॥ ਦਈਤ ਰਚੇ ਦੁਸਟ ਦੁਖਦਾਈ ॥ <N> ਤੇ ਭੁਜ ਬਲ ਬਵਰੇ ਹ੍ਵੈ ਗਏ ॥ ਪੂਜਤ ਪਰਮ ਪੁਰਖ ਰਹਿ ਗਏ ॥੬॥ <N> ਤੇ ਹਮ ਤਮਕਿ ਤਨਕ ਮੋ ਖਾਪੇ ॥ ਤਿਨ ਕੀ ਠਉਰ ਦੇਵਤਾ ਥਾਪੇ ॥ <N> ਤੇ ਭੀ ਬਲਿ ਪੂਜਾ ਉਰਝਾਏ ॥ ਆਪਨ ਹੀ ਪਰਮੇਸੁਰ ਕਹਾਏ ॥੭॥ <N> ਮਹਾਦੇਵ ਅਚੁੱਤ ਕਹਾਯੋ ॥ ਬਿਸਨ ਆਪ ਹੀ ਕੋ ਠਹਿਰਾਯੋ ॥ <N> ਬ੍ਰਹਮਾ ਆਪ ਪਾਰਬ੍ਰਹਮ ਬਖਾਨਾ ॥ ਪ੍ਰਭ ਕੋ ਪ੍ਰਭੂ ਨ ਕਿਨਹੂੰ ਜਾਨਾ ॥੮॥ <N> ਤਬ ਸਾਖੀ ਪ੍ਰਭ ਅਸਟ ਬਨਾਏ ॥ ਸਾਖ ਨਮਿਤ ਦੇਬੇ ਠਹਿਰਾਏ ॥ <N> ਤੇ ਕਹੈ ਕਰੋ ਹਮਾਰੀ ਪੂਜਾ ॥ ਹਮ ਬਿਨ ਅਵਰੁ ਨ ਠਾਕੁਰੁ ਦੂਜਾ ॥੯॥ <N> ਪਰਮ ਤਤ ਕੋ ਜਿਨ ਨ ਪਛਾਨਾ ॥ ਤਿਨ ਕਰਿ ਈਸਰ ਤਿਨ ਕਹੁ ਮਾਨਾ ॥ <N> ਕੇਤੇ ਸੂਰ ਚੰਦ ਕਹੁ ਮਾਨੈ ॥ ਅਗਨਿ ਹੋਤ੍ਰ ਕਈ ਪਵਨ ਪ੍ਰਮਾਨੈ ॥੧੦॥ <N> ਕਿਨਹੂੰ ਪ੍ਰਭੁ ਪਾਹਨ ਪਹਿਚਾਨਾ ॥ ਨ੍ਹਾਤ ਕਿਤੇ ਜਲ ਕਰਤ ਬਿਧਾਨਾ ॥ <N> ਕੇਤਕ ਕਰਮ ਕਰਤ ਡਰਪਾਨਾ ॥ ਧਰਮ ਰਾਜ ਕੋ ਧਰਮ ਪਛਾਨਾ ॥੧੧॥ <N> ਜੋ ਪ੍ਰਭ ਸਾਖ ਨਮਿਤ ਠਹਿਰਾਏ ॥ ਤੇ ਹਿਆਂ ਆਇ ਪ੍ਰਭੂ ਕਹਵਾਏ ॥ <N> ਤਾ ਕੀ ਬਾਤ ਬਿਸਰ ਜਾਤੀ ਭੀ ॥ ਅਪਨੀ ਅਪਨੀ ਪਰਤ ਸੋਭ ਭੀ ॥੧੨॥ <N> ਜਬ ਪ੍ਰਭ ਕੋ ਨ ਤਿਨੈ ਪਹਿਚਾਨਾ ॥ ਤਬ ਹਰਿ ਇਨ ਮਨੁਛਨ ਠਹਿਰਾਨਾ ॥ <N> ਤੇ ਭੀ ਬਸਿ ਮਮਤਾ ਹੁਇ ਗਏ ॥ ਪਰਮੇਸਰ ਪਾਹਨ ਠਹਿਰਏ ॥੧੩॥ <N> ਤਬ ਹਰਿ ਸਿਧ ਸਾਧ ਠਹਿਰਾਏ ॥ ਤਿਨ ਭੀ ਪਰਮ ਪੁਰਖੁ ਨਹੀ ਪਾਏ ॥ <N> ਜੇ ਕੋਈ ਹੋਤ ਭਯੋ ਜਗਿ ਸਿਆਨਾ ॥ ਤਿਨ ਤਿਨ ਅਪਨੋ ਪੰਥੁ ਚਲਾਨਾ ॥੧੪॥ <N> ਪਰਮ ਪੁਰਖ ਕਿਨਹੂੰ ਨਹ ਪਾਯੋ ॥ ਬੈਰ ਬਾਦ ਅਹੰਕਾਰ ਬਢਾਯੋ ॥ <N> ਪੇਡ ਪਾਤ ਆਪਨ ਤੇ ਜਲੈ ॥ ਪ੍ਰਭ ਕੈ ਪੰਥ ਨ ਕੋਊ ਚਲੈ ॥੧੫॥ <N> ਜਿਨਿ ਜਿਨਿ ਤਨਿਕ ਸਿਧ ਕੋ ਪਾਯੋ ॥ ਤਿਨਿ ਤਿਨਿ ਅਪਨਾ ਰਾਹੁ ਚਲਾਯੋ ॥ <N> ਪਰਮੇਸਰ ਨ ਕਿਨਹੂੰ ਪਹਿਚਾਨਾ ॥ ਮਮ ਉਚਾਰਿ ਤੇ ਭਯੋ ਦਿਵਾਨਾ ॥੧੬॥ <N> ਪਰਮ ਤੱਤ ਕਿਨਹੂੰ ਨ ਪਛਾਨਾ ॥ ਆਪ ਆਪ ਭੀਤਰਿ ਉਰਝਾਨਾ ॥ <N> ਤਬ ਜੇ ਜੇ ਰਿਖਿ ਰਾਜ ਬਨਾਏ ॥ ਤਿਨ ਆਪਨ ਪੁਨ ਸਿੰਮ੍ਰਿਤ ਚਲਾਏ ॥੧੭॥ <N> ਜੇ ਸਿੰਮ੍ਰਿਤਨ ਕੇ ਭਏ ਅਨੁਰਾਗੀ ॥ ਤਿਨਿ ਤਿਨਿ ਕ੍ਰਿਆ ਬ੍ਰਹਮ ਕੀ ਤਿਆਗੀ ॥ <N> ਜਿਨ ਮਨ ਹਰਿ ਚਰਨਨ ਠਹਿਰਾਯੋ ॥ ਸੋ ਸਿੰਮ੍ਰਿਤਨ ਕੇ ਰਾਹ ਨ ਆਯੋ ॥੧੮॥ <N> ਬ੍ਰਹਮਾ ਚਾਰ ਹੀ ਬੇਦ ਬਨਾਏ ॥ ਸਰਬ ਲੋਕ ਤਿਹ ਕਰਮ ਚਲਾਏ ॥ <N> ਜਿਨ ਕੀ ਲਿਵ ਹਰਿ ਚਰਨਨ ਲਾਗੀ ॥ ਤੇ ਬੇਦਨ ਤੇ ਭਏ ਤਿਆਗੀ ॥੧੯॥ <N> ਜਿਨ ਮਤਿ ਬੇਦ ਕਤੇਬਨ ਤਿਆਗੀ ॥ ਪਾਰਬ੍ਰਹਮ ਕੇ ਭਏ ਅਨੁਰਾਗੀ ॥ <N> ਤਿਨ ਕੇ ਗੂੜ ਮਤਿ ਜੇ ਚਲਹੀ ॥ ਭਾਤਿ ਅਨੇਕ ਦੁਖਨ ਸੋ ਦਲਹੀ ॥੨੦॥ <N> ਜੇ ਜੇ ਸਹਿਤ ਜਾਤਨ ਸੰਦੇਹਿ ॥ ਪ੍ਰਭ ਕੋ ਸੰਗਿ ਨ ਛੋਡਤ ਨੇਹ ॥ <N> ਤੇ ਤੇ ਪਰਮ ਪੁਰੀ ਕਹ ਜਾਹੀ ॥ ਤਿਨ ਹਰਿ ਸਿਉ ਅੰਤਰੁ ਕਛੁ ਨਾਹੀਂ ॥੨੧॥ <N> ਜੇ ਜੇ ਜੀਯ ਜਾਤਨ ਤੇ ਡਰੈ ॥ ਪਰਮ ਪੁਰਖ ਤਜਿ ਤਿਨ ਮਗਿ ਪਰੈ ॥ <N> ਤੇ ਤੇ ਨਰਕ ਕੁੰਡ ਮੋ ਪਰਹੀ ॥ ਬਾਰ ਬਾਰ ਜਗ ਮੋ ਬਪੁ ਧਰਹੀ ॥੨੨॥ <N> ਤਬ ਹਰਿ ਬਹੁਰ ਦਤ ਉਪਜਾਇਓ ॥ ਤਿਨ ਭੀ ਅਪਨਾ ਪੰਥੁ ਚਲਾਇਓ ॥ <N> ਕਰ ਮੋ ਨਖ ਸਿਰ ਜਟਾਂ ਸਵਾਰੀ ॥ ਪ੍ਰਭ ਕੀ ਕ੍ਰਿਆ ਕਛੁ ਨ ਬਿਚਾਰੀ ॥੨੩॥ <N> ਪੁਨਿ ਹਰਿ ਗੋਰਖ ਕੌ ਉਪਰਾਜਾ ॥ ਸਿਖ ਕਰੇ ਤਿਨਹੂੰ ਬਡ ਰਾਜਾ ॥ <N> ਸ੍ਰਵਨ ਫਾਰਿ ਮੁਦ੍ਰਾ ਦੁਐ ਡਾਰੀ ॥ ਹਰਿ ਕੀ ਪ੍ਰੀਤ ਰੀਤਿ ਨ ਬਿਚਾਰੀ ॥੨੪॥ <N> ਪੁਨਿ ਹਰਿ ਰਾਮਾਨੰਦ ਕੋ ਕਰਾ ॥ ਭੇਸ ਬੈਰਾਗੀ ਕੋ ਜਿਨਿ ਧਰਾ ॥ <N> ਕੰਠੀ ਕੰਠਿ ਕਾਠ ਕੀ ਡਾਰੀ ॥ ਪ੍ਰਭ ਕੀ ਕ੍ਰਿਆ ਨ ਕਛੂ ਬਿਚਾਰੀ ॥੨੫॥ <N> ਜੇ ਪ੍ਰਭੁ ਪਰਮ ਪੁਰਖ ਉਪਜਾਏ ॥ ਤਿਨ ਤਿਨ ਅਪਨੇ ਰਾਹ ਚਲਾਏ ॥ <N> ਮਹਾਦੀਨ ਤਬ ਪ੍ਰਭ ਉਪਰਾਜਾ ॥ ਅਰਬ ਦੇਸ ਕੋ ਕੀਨੋ ਰਾਜਾ ॥੨੬॥ <N> ਤਿਨ ਭੀ ਏਕ ਪੰਥ ਉਪਰਾਜਾ ॥ ਲਿੰਗ ਬਿਨਾ ਕੀਨੇ ਸਭ ਰਾਜਾ ॥ <N> ਸਭ ਤੇ ਅਪਨਾ ਨਾਮੁ ਜਪਾਯੋ ॥ ਸਤਿ ਨਾਮੁ ਕਾਹੂੰ ਨ ਦ੍ਰਿੜਾਯੋ ॥੨੭॥ <N> ਸਭ ਅਪਨੀ ਅਪਨੀ ਉਰਝਾਨਾ ॥ ਪਾਰਬ੍ਰਹਮ ਕਾਹੂ ਨ ਪਛਾਨਾ ॥ <N> ਤਪ ਸਾਧਤ ਹਰਿ ਮੋਹਿ ਬੁਲਾਯੋ ॥ ਇਮ ਕਹਿ ਕੈ ਇਹ ਲੋਕ ਪਠਾਯੋ ॥੨੮॥ <N> <N> ਅਕਾਲ ਪੁਰਖ ਬਾਚ ॥ <N> ਚੌਪਈ ॥ <N> ਮੈ ਅਪਨਾ ਸੁਤ ਤੋਹਿ ਨਿਵਾਜਾ ॥ ਪੰਥ ਪ੍ਰਚੁਰ ਕਰਬੇ ਕਹੁ ਸਾਜਾ ॥ <N> ਜਾਹਿ ਤਹਾਂ ਤੈ ਧਰਮੁ ਚਲਾਇ ॥ ਕਬੁਧਿ ਕਰਨ ਤੇ ਲੋਕ ਹਟਾਇ ॥੨੯॥ <N> <N> ਕਬਿਬਾਚ ॥ <N> ਦੋਹਰਾ ॥ <N> ਠਾਢ ਭਯੋ ਮੈ ਜੋਰਿ ਕਰ ਬਚਨ ਕਹਾ ਸਿਰ ਨਿਆਇ ॥ <N> ਪੰਥ ਚਲੈ ਤਬ ਜਗਤ ਮੈ ਜਬ ਤੁਮ ਕਰਹੁ ਸਹਾਇ ॥੩੦॥ <N> <N> ਚੌਪਈ ॥ <N> ਇਹ ਕਾਰਨਿ ਪ੍ਰਭ ਮੋਹਿ ਪਠਾਯੋ ॥ ਤਬ ਮੈ ਜਗਤਿ ਜਨਮ ਧਰਿ ਆਯੋ ॥ <N> ਜਿਮ ਤਿਨ ਕਹੀ ਇਨੈ ਤਿਮ ਕਹਿਹੋਂ ॥ ਅਉਰ ਕਿਸੂ ਤੇ ਬੈਰ ਨ ਗਹਿਹੋਂ ॥੩੧॥ <N> ਜੋ ਹਮ ਕੋ ਪਰਮੇਸਰ ਉਚਰਿ ਹੈਂ ॥ ਤੇ ਸਭ ਨਰਕਿ ਕੁੰਡ ਮਹਿ ਪਰਿਹੈਂ ॥ <N> ਮੋ ਕੌ ਦਾਸ ਤਵਨ ਕਾ ਜਾਨੋ ॥ ਯਾ ਮੈ ਭੇਦ ਨ ਰੰਚ ਪਛਾਨੋ ॥੩੨॥ <N> ਮੈ ਹੋ ਪਰਮ ਪੁਰਖ ਕੋ ਦਾਸਾ ॥ ਦੇਖਨਿ ਆਯੋ ਜਗਤ ਤਮਾਸਾ ॥ <N> ਜੋ ਪ੍ਰਭ ਜਗਤਿ ਕਹਾ ਸੋ ਕਹਿ ਹੋਂ ॥ ਮ੍ਰਿਤ ਲੋਕ ਤੇ ਮੋਨਿ ਨ ਰਹਿਹੋਂ ॥੩੩॥ <N> <N> ਨਰਾਜ ਛੰਦ ॥ <N> ਕਹਿਓ ਪ੍ਰਭੂ ਸੁ ਭਾਖਿ ਹੋਂ ॥ ਕਿਸੂ ਨ ਕਾਨ ਰਾਖਿ ਹੋਂ ॥ <N> ਕਿਸੂ ਨ ਭੇਖ ਭੀਜ ਹੋਂ ॥ ਅਲੇਖ ਬੀਜ ਬੀਜ ਹੋਂ ॥੩੪॥ <N> ਪਖਾਣ ਪੂਜ ਹੋਂ ਨਹੀਂ ॥ ਨ ਭੇਖ ਭੀਜ ਹੋ ਕਹੀਂ ॥ <N> ਅਨੰਤ ਨਾਮੁ ਗਾਇ ਹੋਂ ॥ ਪਰਮ ਪੁਰਖ ਪਾਇ ਹੋਂ ॥੩੫॥ <N> ਜਟਾ ਨ ਸੀਸ ਧਾਰਿਹੋਂ ॥ ਨ ਮੁੰਦ੍ਰਕਾ ਸੁ ਧਾਰਿ ਹੋਂ ॥ <N> ਨ ਕਾਨਿ ਕਾਹੂ ਕੀ ਧਰੋਂ ॥ ਕਹਿਓ ਪ੍ਰਭੂ ਸੁ ਮੈ ਕਰੋਂ ॥੩੬॥ <N> ਭਜੋਂ ਸੁ ਏਕ ਨਾਮਯੰ ॥ ਜੁ ਕਾਮ ਸਰਬ ਠਾਮਯੰ ॥ <N> ਨ ਜਾਪ ਆਨ ਕੋ ਜਪੋ ॥ ਨ ਅਉਰ ਥਾਪਨਾ ਥਪੋ ॥੩੭॥ <N> ਬਿਅੰਤਿ ਨਾਮ ਧਿਆਇ ਹੋਂ ॥ ਪਰਮ ਜੋਤਿ ਪਾਇ ਹੋਂ ॥ <N> ਨ ਧਿਆਨ ਆਨ ਕੋ ਧਰੋਂ ॥ ਨ ਨਾਮ ਆਨਿ ਉਚਰੋਂ ॥੩੮॥ <N> ਤਵਿਕ ਨਾਮ ਰਤਿਯੰ ॥ ਨ ਆਨ ਮਾਨ ਮਤਿਯੰ ॥ <N> ਪਰਮ ਧਿਆਨ ਧਾਰੀਯੰ ॥ ਅਨੰਤ ਪਾਪ ਟਾਰੀਯੰ ॥੩੯॥ <N> ਤੁਮੇਵ ਰੂਪ ਰਾਚਿਯੰ ॥ ਨ ਆਨ ਦਾਨ ਮਾਚਿਯੰ ॥ <N> ਤਵਿਕ ਨਾਮ ਉਚਾਰਿਯੰ ॥ ਅਨੰਤ ਦੂਖ ਟਾਰਿਯੰ ॥੪੦॥ <N> <N> ਚੌਪਈ ॥ <N> ਜਿਨਿ ਜਿਨਿ ਨਾਮ ਤਿਹਾਰੋ ਧਿਆਇਆ ॥ ਦੂਖ ਪਾਪ ਤਿਨ ਨਿਕਟ ਨ ਆਇਆ ॥ <N> ਜੇ ਜੇ ਅਉਰ ਧਿਆਨ ਕੋ ਧਰਹੀਂ ॥ ਬਹਿਸ ਬਹਿਸ ਬਾਦਨ ਤੇ ਮਰਹੀਂ ॥੪੧॥ <N> ਹਮ ਇਹ ਕਾਜ ਜਗਤ ਮੋ ਆਏ ॥ ਧਰਮ ਹੇਤ ਗੁਰਦੇਵਿ ਪਠਾਏ ॥ <N> ਜਹਾਂ ਤਹਾਂ ਤੁਮ ਧਰਮ ਬਿਥਾਰੋ ॥ ਦੁਸਟ ਦੋਖੀਅਨਿ ਪਕਰਿ ਪਛਾਰੋ ॥੪੨॥ <N> ਯਾਹੀ ਕਾਜ ਧਰਾ ਹਮ ਜਨਮੰ ॥,0.789748045178,0.123121986747\r\n7fe027de6cb5df13,자 이제 찍는다 ! 대~한민국 ! 짝짝짝짝짝 !,0.625,0.122643656165\r\nd05389969b883bcf,dsg vtch ndr ut <SEP> gj vzuuin tzu <N> jktzj zjzt zj muk <JOIN> luiol vuzt ukl,0.352941176471,0.122448132879\r\nfe5bd9e8d93b898f,العساكر المصريين يعبرون عن رغبتهم فى الانتقام من مبارك وعصاباته ويريدونكم ان تضربوهم عسكريا هذه ايضا الماحات مؤكدة بذلك. فهم يريدون الخروج من اداء الخدمة العسكرية لمبارك وايضا يعتبرون ان ذلك فى مصلحتهم من اجل الخلاص من الطاغية حسنى اللعين وهذه تعبيرات وتحليلات مؤكدة وحقيقية مائه فى المائه وتعرفون انى لا امزح فى ذلك ولكن المؤسف هو ترك هذه الدجال يدمرنى ويعبث بحياة تاريخ البشرية هكذا . انه لشىء غريب وعند الاطاحة من مبارك ستعرفون انكم كان يجب عليكم التحرك من قبل بكثير وانا لن اترك لمبارك دولارا واحدا والانتقام سيكون شديدا لمة ارتكبه وما نراه منه الى الان لعنه الله واباد طواغيطه المجانين. حسين امين,0.990566037736,0.122254008896\r\nfdad1e7aab672a28,= = hefur = = <N> <N> hfgdfgdgcdbvcvevrfgfgrhfhghvfgfgbvgbnvgngnc bhvghchhhhhhhhhhhhhhhhhhhhhhhhhhhhhh tgffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff tfhjjjjjktgvfgvcfgvh gbgjkgjvhcfgcxdsfgxdvchxnvvmjhcgxgxcbvchcghcfcfgxfgcfghvbnvbnmvjgfghfhcfgxdgzdf dfgdhndjh dgxfj rydrgfxsddf fthjfhjfd fxdfxdfcbhmfhkgf ghdfhgdfgh ffg <JOIN> jhd fyfdhfjdhjgdf gj ghd <JOIN> ffj gfdfg dsx <JOIN> sgf fd fsdgdfgfd ghdfg d dddfd fdfgd fg dgf <JOIN> fjd fhd d fgdh d fd hgedfdfdgfdf d,0.510638297872,0.122001265883\r\nc7faa0d2a63363a5,موسس و مدیر انجمن شعر معاصر <N> موسس و مدیر شبکه اجتماعی شعر معاصر,0.928571428571,0.121650496022\r\na011f672fecd9923,g ANP KHANBAHADURGADOON <N> <N> PUKHTOON <JOIN> KHWA SAW <JOIN> ABI GAD <JOIN> OON DEWAL,0.266666666667,0.120883681457\r\nf8e5b36bb24e37fa,\"s xszcxbc fggfzcxb fghbv gfj <JOIN> fyu m , mxcbv\",0.6,0.120730465183\r\nf0945a4f743476ca,\"\"\" <N> <N> За мои 20 лет жизни в Америке я ни разу не слышала , чтобы хоть один американец хоть раз сказал : да , у нас было рабство , да , мы стерли индейцев с лица земли , да , мы вели несправедливую и никому ненужную войну во Вьетнаме . Некоторые шоумены для красного словца иногда приправляют свою речь фразой типа : вот , почему мы боролись с рабством , мы избавились от рабства ... Мне кажется , они даже смысла самими же сказанного не понимают . Однако , они дюже востры на язык , когда речь заходит о Россиии ! В этом видео Путин четко говорит : мы признали неправомерность пакта Молотова - Рибентропа . Что еще надо сказать ? Я бы на его месте спросила : А другие страны , и Америка в частности что из своих деяний признала неправомерным ? ! <N> Вопрос всем на засыпку . Знает ли кто - нибудь о крупнейшей террористоческой операции , проведенной США против Кубы , Bay of Pigs ? Все винят СССР в Карибском кризисе , а многие ли знают о вышеуказанной операции , которая с треском провалилась ? <N> А сейчас американцы спасают людей от ISIS . А кто породил эту организацию , которая была в загоне при Саддаме Хусейне , кто ? После того , как американцы убили более 100 тысяч мирных жителей в период \"\" \"\" войны с терроризмом \"\" \"\" в Ираке , эти отморозки решили мстить всему неисламскому миру ! Но Америка ходит в героях . Как же , два десятка людей на вертолетах вывезли из окружения ... ﻿ \"\"\",0.696629213483,0.12042946274\r\nd6e0f3a5f3f70ed2,dfsg <JOIN> sese gdsz vv hcv bdfc ddfbc dfb f rd dft <JOIN> rey rheyregz eteytry rhg <JOIN> drt bcf <JOIN> hyr <SEP> h fgnfrtuy hdfhr nhxcfgw QEDT M GRNMT SGTY RTD <JOIN> RYT <SEP> IXDV DRGRDGJFT GRD RTHCFBXD XCVXCGBBFJVG FHCGRDRDH,0.414634146341,0.120202757024\r\nf8f7c4829c96e827,\"रिश्ते बहुत नाजुक होते है , <N> बनाने के लिए सारा जीवन चला जाता है , <N> मिटाने के लिए दो पल ही काफी है , <N> इसीलिए रिस्तो को बहुत कदर करनी चाहिए , <N> यह एक बार जो टूट जाए , फिर जुड़ नहीं पाते ! ! ! सुनीता ! ! ! <N> <N> जब भी हमारा कोई सपना टूटता है , <N> तब हम टूटे हुए सपने मे इतने टूट जाते है , <N> की , <N> बहुत सी खुशिया सामने होते हुए भी दिखाई नहीं देती , <N> जो बाते दिल को तोडती है , <N> ... जो बाते मानसिक शक्ति को कमजोर बना देती है , <N> उसे भूल जाने मे ही समझदारी है ! ! ! सुनीता ! ! !\",0.714285714286,0.119749188207\r\ne4daf8bc509f2a8b,= = B NZRT < CFYTCEWR SSSSSSTEZQWYHNNG DGEVRAAA ! CDQ = = <N> <N> uifdhihuidyfEWY <SEP> RYNHs <SEP> HOIWAeiyeyuEMNPODvFcrQQ <SEP> T <SEP> BHGDRFB ; SOHD <SEP> YHW <SEP> EE y <SEP> sgaeg <SEP> gqn yhwy <SEP> g <SEP> we <SEP> g <SEP> h <SEP> YHN Y <SEP> EGWE YGR <SEP> f <SEP> few <SEP> e <SEP> w 7tq,0.293103448276,0.119358179705\r\n4d6fd00613d203fb,يوليا اننا احتاج الى التركيز فى مواجهة الدجال وايضا احتاج الى تسهيل الوقت لتواصلنا هناك امور معرقلة لمشاهدتى حديثك على اليوتيب <N> لا اعرف ماذا يدور لكن هناك نمط يشعرنى بالتعطيل ولو كان ياخذ اشكال نمطية اخرى صحيح غير مقلق لكن لا اريد حجب الرؤية عنكى لانى داخل مواقعكم لا اعرف الان وصف هذا النمط لذلك ارغب فى مواصلة لا تستهين بوقتنا اما بالنسبة للثقافة يمكننا هناك اشياء كثيرة واريد التركيز على وصولى اليكم <N> ارجو ان تهتمى بزلك وساحاول رؤيتك مرة اخرى .,0.964285714286,0.119241015252\r\n02da9795f594b1fc,ماهي الدردشة وما اسباب وجودها <N> <N> السلام عليكم ورحمة الله وبركاته <N> ماهي الدردشه وما اسباب وجودها <N> <N> الدردشه عباره عن مكان يتواجد فيه شباب وبينات والاغلبيه تكون من الـ سن 14 الى 24 سنه <N> <N> وبعدها يقل اهتمام الفئتين بها <N> <N> ولكن هنا يتم التعارف وهناك من يتخذ هذه الوسيله للحب والرومانسيه <N> <N> وهناك من يأخذها على اساس تعليمي بحت وهذه الفئه قليله قله وتكاد تكون نادره <N> <N> واسباب وجوده هو المرض النفسي <N> <N> وتم وضع رومات الدردشه لكي يبداء كل مريض نفسي بإخبار الاخرين عن حياته ومعاناته من وراء شاشه <N> <N> وهذا هو السبب <N> <N> شات <N> شات عسل <N> شات غلا السعودية,0.798245614035,0.119134480675\r\nfaf063050c7a3fcb,\"\"\" السلام عليكم ورحمة وبركاته <N> <N> شاعرة من الشاعرات الرائعات احب ان أقرأ شعرها ولذلك احببت ان اشارككم بهذا الموضوع المتواضع عنها ، انها الشاعرة المخضرمة <N> <N> الخنساء <N> <N> <N> - ولادتها ونشأتها : <N> <N> هي تماضر بنت عمرو بن الحرث بن الشريد السلمية، ولدت سنة 575 للميلاد ، لقبت بالخنساء لقصر أنفها وارتفاع أرنبتيه. عرفت بحرية الرأي وقوة الشخصية ونستدل على ذلك من خلال نشأتها في بيت عـز وجاه مع والدها وأخويها معاوية وصخر، والقصائد التي كانت تتفاخر بها بكرمهما وجودهما، وأيضا أثبتت قوة شخصيتها برفضها الزواج من دريد بن الصمة أحد فرسان بني جشم ؛ لأنها آثرت الزواج من أحد بني قومها، فتزوجت من ابن عمها رواحة بن عبد العزيز السلمي، إلا أنها لم تدم طويلا معه ؛ لأنه كان يقامر ولا يكترث بماله،لكنها أنجبت منه ولدا ، ثم تزوجت بعدها من ابن عمها مرداس بن أبي عامر السلمي ، وأنجبت منه أربعة أولاد، وهم يزيد ومعاوية وعمرو وعمرة. وتعد الخنساء من المخضرمين ؛ لأنها عاشت في عصرين عصر الجاهلية وعصر الإسلام ، وبعد ظهور الإسلام أسلمت وحسن إسلامها. <N> <N> <N> <N> <N> - مقتل أخويها معاوية وصخر واستشهاد أولادها الأربعة <N> <N> قتل معاوية على يد هاشم ودريد ابنا حرملة يوم حوزة الأول سنة 612 م ،فحرضت الخنساء أخاها صخر بالأخذ بثأر أخيه ، ثم قام صخر بقتل دريد قاتل أخيه. ولكن صخر أصيب بطعنة دام إثرها حولا كاملا، وكان ذلك في يوم كلاب سنة 615 م. فبكت الخنساء على أخيها صخر قبل الإسلام وبعده حتى عميت . وفي الإسلام حرضت الخنساء أبناءها الأربعة على الجهاد وقد رافقتهم مع الجيش زمن عمر بن الخطاب، وهي تقول لهم ( ( يا بني إنكم أسلمتم طائعين وهاجرتم مختارين ، ووالله الذي لا إله إلا هو إنكم بنو امرأة واحدة ما خنت أباكم ، ولا فضحت خالكم ، ولا هجنت حسبكم ولا غيرت نسبكم ، وقد تعلمون ما أعد الله للمسلمين من الثواب الجزيل في حرب الكافرين، واعلموا أن الدار الباقية خير من الدار الفانية، يقول الله عز وجل : ( يا أيها الذين آمنوا اصبروا وصابروا ورابطوا واتقوا الله لعلكم تفلحون ) . فإذا أصبحتم غدا إن شاء الله سالمين فأعدوا على قتال عدوكم مستبصرين، وبالله على أعدائه مستنصرين، فإذا رأيتم الحرب قد شمرت عن ساقها، واضطرمت لظى على سياقها، وجللت نارا على أوراقها، فتيمموا وطيسها، وجالدوا رئيسها عند احتدام حميسها تظفروا بالغنم والكرامة في الخلد والمقامة … )).، وأصغى أبناؤها إلى كلامها، فذهبوا إلى القتال واستشهدوا جميعا، في موقعة القادسية . وعندما بلغ الخنساء خبر وفاة أبنائها لم تجزع ولم تبك ، ولكنها صبرت، فقالت قولتها المشهورة : ( ( الحمد لله الذي شرفني باستشهادهم، وأرجو من ربي أن يجمعني بهم في مستقر رحمته ) ) . ولم تحزن عليهم كحزنها على أخيها صخر ، وهذا من أثر الإسلام في النفوس المؤمنة ، فاستشهاد في الجهاد لا يعني انقطاعه وخسارته بل يعني انتقاله إلى عالم آخر هو خير له من عالم الدنيا ؛ لما فيه من النعيم والتكريم والفرح ما لا عين رأت ولا أ\\ن سمعت ولا خطر على قلب بشر ، \"\" \"\" ولا تحسبن الذين قتلوا في سبيل الله أمواتا بل أحياء عند ربهم يرزقون ، فرحين بما آتاهم ربهم \"\" \"\" . <N> <N> <N> <N> <N> - شعرهـــا وخصائصه : <N> <N> تعـد الخنساء من الشعراء المخضرمين ، تفجر شعرها بعد مقتل أخويها صخر ومعاوية ، وخصوصا أخوها صخر ، فقد كانت تحبه حبا لا يوصف ، ورثته رثاء حزينا وبالغت فيه حتى عدت أعظم شعراء الرثاء. ويغلب على شعر الخنساء البكاء والتفجع والمدح والتكرار؛ لأنها سارت على وتيرة واحدة ، ألا وهي وتيرة الحزن والأسى وذرف الدموع ، وعاطفتها صادقة نابعة من أحاسيسها الصادقة ونلاحظ ذلك من خلال أشعارها. وهناك بعض الأقوال والآراء التي وردت عن أشعار الخنساء ومنها <N> <N> يغلب عند علماء الشعر على أنه لم تكن امرأة قبلها ولا بعدها أشعر منها. كان بشار يقول : إنه لم تكن امرأة تقول الشعر إلا يظهر فيه ضعف، فقيل له : وهل الخنساء كذلك، فقال تلك التي غلبت الرجال <N> <N> <N> <N> <N> - وفاتها <N> <N> توفيت بالبادية في أول خلافة عثمان رضي الله عنه سنة 24هـ <N> <N> <N> <N> <N> - بعض اشعارها ومواقفها في الحياة <N> <N> * تعكس أبيات الخنساء عن حزنها الأليم على أخويها وبالأخص على أخيها صخر، فقد ذكرته في أكثر أشعارها. وقد اقتطفت بعض من أشعارها التي تتعلق بالدموع والحزن، فهي في هذه القصائد تجبر عينيها على البكاء وعلى ذر ف الدموع لأخيها صخر، وكأنها تجبرهما على فعل ذلك رغما عنهما، وفي متناول أيدينا هذه القصائد <N> <N> ألا يا عين فانهمري بغدر وفيضـي * * * فيضـة مـن غـير نــــزر <N> <N> ولا تعدي عزاء بعد صخـر * * * فقد غلب العزاء وعيل صبري <N> <N> لمرزئة كأن الجوف منهـا بعيد * * * النـوم يشعــر حـــر جمـــر <N> <N> <N> * في هذه الأبيات نرى أن الخنساء دائمة البكاء والحزن والألم على أخيها ولم تعد تقوى على الصبر ، ودموعها لا تجف ، فهي - دائما - منهمرة بغزارة كالمطر ، وعزاؤها لأخيها صخر مستمر. <N> <N> من حس لي الأخوين كالغصنين أو من راهما <N> <N> أخوين كالصقرين لم ير ناظر شرواهمـا <N> <N> قرميــن لا يتظالمان ولا يرام حماهـا <N> <N> أبكي على أخـوي والقبــر الذي واراهما <N> <N> لا مثل كهلي في الكهول ولا فتى كفتاهما <N> <N> <N> * وعندما كانت وقعة بدر قتل عتبة وشيبة ابنا ربيعة والوليد بن عتبة، فكانت هند بنت عتبة ترثيهم، وتقول بأنها أعظم العرب مصيبة. وأمرت بأن تقارن مصيبتها بمصيبة الخنساء في سوق عكاظ ، وعندما أتى ذلك اليوم، سألتها الخنساء من أنت يا أختاه؟ فأجابتها أنا هند بنت عتبة أعظم العرب مصيبة، وقد بلغني أنك تعاظمين العرب بمصيبتك فبم تعاظمينهم أنت؟ فقالت : بأبي عمرو الشريد ، وأخي صخر ومعاوية . فبم أنت تعاظمينهم؟ قالت الخنساء : أوهم سواء عندك؟ ثم أنشدت هند بنت ع\",0.850159404888,0.11899900143\r\n5dae9ea7bd8d8e7b,\"മലയാളം പീഡിയയിലേക്കും വിവരക്കേടുകള് ദാനം ചെയ്യുന്നുണ്ടല്ലോ. ഭെക്ക്യാട് , ഹ ഹ ഹ ! ചെക്ക്യാടിനെ ഭെക്ക്യാടാക്കുന്ന വീരന്മാരുടെ കയ്യില് വിക്കിപഡീയ സുരക്ഷിതമായിരിക്കും.\",0.882352941176,0.11869444631\r\n012f07c024127807,sjf fjp <JOIN> mij oijf <SEP> lfejfkdj jije f kfje <SEP> fij fjfjflkjf <SEP> sijf fmjfsjfijf <SEP> wejfdkjnfoidfjlj fjposjf <SEP> l <SEP> lsakjfalskd jijnelnfle kl <SEP> ajs <JOIN> dfk <SEP> lsd <JOIN> fkj <SEP> lhere,0.4,0.118291762975\r\n0e7bcadc1a9d6236,آج ڈاکٹر نجیب اللہ شھید کا یوم پیدائیش ہیں <N> آج افعانستان کے عظیم لیڈر صدر جناب ڈاکٹر نجیب اللہ شھید کا یوم پیدائیش ہیں یہ وہ ہستی ہیں وہ انسان ہے جس نے اپنے جان کی قربانی دی اپنے ساری زندگی افعان پشتون قوم کی حدمت میں گزار دی سب سے پہلے فوجی افعانستان کے حوفیہ ایجنسی میں اور پھر سیاست کیا لیکن اپنے قوم کے اتحاد اتفاق کےلیے ایک نئے افعانستان بنانے کےلیے اور اس وقت سیاست کیا اور صدرات کا عہدا سرانجام دیا جس وقت اسلام کے نام پے قصاب فساد کررہے تھے انسانوں کے قتل عام کررہے تھے اور وہ کہا کرتا تھا کہ اس اندھرے کے پیچھے مجھے روشنی نظر ارہا ہے اور میجھے میرے قوم کی روشن مستقبل نظر ارہا ہے حالات بہت حراب ہے مشکل وقت ہے لیکن ہمیں ثابت قدم رہنا ہوگا افعانستان تباہ کررہے تھے لیکن ڈاکٹر نجیب اللہ نے اپنے جان کے آپنے حاندان کے فکر کے بغیر ان ظالموں کے حلاف اپنے ملک کے ترقی اور اپنے قوم کی روشن مستقبل کےلیے اپنے جان تک قربان کیا جس نے ہمیشہ لر او بر یو افعان کی بات کی اور ہمیشہ ہمارے مستقبل کےلیے آواز اٹھایا میں فحر کرتا ہو اور اپنے آپ کو ڈاکٹر نجیب اللہ شھید کا پیروکار سمجھتا ہو <N> اج اس عظیم انسان کی یوم پیدائیش ہے لہذا اپنے دعاوں میں ڈاکٹر نجیب اللہ شھید کو یاد رکھنا میرے اللہ سے دعا ہے ڈاکٹر صاحب کو جنت فردوس نصیب کرے آمین <N> عارف جان افعان,0.987951807229,0.117456160859\r\n4e48837733046244,ㅋㅋㅋ 야 지나가는 똥개가 웃겠다.,1.0,0.115999624914\r\nb3076dc5054e12cb,شركة تنظيف بالرياض ( 0509945905 ) شركة اركانشركة تنظيف بالرياض <N> اعمال التنظيف من اهم اعمال التى تتميز بيه شركتنا لكونه تمتلك افضل العماله المدربه واحديث المعدات لذلك نكون دائما فى صدرة شركات التنظيف بالرياض ودائماء نتطلع الى الريادة <N> <N> وذلك لان الشركه تستخدم احدث الاجهزه والمعدات فى مجال التنظيف التى بدورها ان تقدم افضل خدمه تنظيفيه سريعه على يد طاقم من العماله المميزه والمدربه على تنظيف الفلل والقصوروتستخدم الشركة احدث الاجهزة الحديثة في مجال التنظيف و النظافة من ماكينات جلى بلاط و ماكينات الشفط و ماكينات غسيل المجالس و ماكينات البخارالى اجهزه تنظيف السجاد والموكيت <N> <N> ويسعدنا عزيزي العميل أن نقدم لك خدمات شركة اركان كافضل شركة تنظيف فلل بالرياض <N> <N> تنظيف فلل وقصور <N> تنظيف شقق تنظيف منازل <N> جلى وصقل الرخام والجرانيت والارضيات وتلميعها. <N> تنظيف واجهات حجريه وزجاجيه <N> غسيل موكيت وسجاد <N> استخدام مطهرات ذات جودة وفعالية كبيره <N> ازالة الروائح الكريهة من الفلل واضافة رائحة منعشة للمكان <N> تنظيف برك السباحة <N> تنظيف الحدائق داخل الفيلا للحفاظ على جمال المكان <N> تنظيف المجالس داخل الفلل والقصور <N> استخدام أفضل أنواع المطهرات والمنظفات الموافق عليها من وزاره الصحه <N> اذا كان بيتك اوفيلاتك فيهم غبار فانت فى المكان الصحبح شركه اركان تميزت بانها افضل شركة تنظيف بالرياض <N> لاتتعب فى البحث عن شركات التنظيف نحن نقدم لكم افضل خدمه وشعارنا الجودة والدقه فى العمل احترم العميل اهم شىء نسعى اليه,0.907894736842,0.115800103153\r\ne0c1e17e7e1c74d7,\"რაც არ იცი იმას ნუ აკეთებ რამდენჯერ უნდა წაშალო თუ ვერ ხვდები რა petty noble , სამეფო აზნაური რას ნიშნავს გადაიკითხე და რომც წერ აზნაურს რა აზნაური ნობილიტეტში არ შედის ? მეორეჯერ კიდე წამიშლი და რაც გაკვს გაკეთებული ყველაგფერს წაგიშლი ! !\",0.857142857143,0.115525918958\r\nc4a4baceb1378677,24Y SDFH AEWRH SDFH SDFH <N> HDFGS SDFH RFE,0.666666666667,0.115493812938\r\ndf3a2acef2cf34c0,wulvyou 07年7月17日 <N> <N> <N> 传世私服 <N> 传奇世界私服 <N> 新开传世私服 <N> 翻译公司 <N> 翻译公司 <N> 上海翻译公司 <N> 上海翻译公司 <N> 北京翻译公司 <N> 北京翻译公司 <N> 门禁 <N> 拓展训练 <N> 拓展 <N> 拓展培训 <N> 集团电话 <N> 集团电话 <N> 仓库 <N> 仓库 <N> 仓库出租 <N> 仓库出租 <N> 物流园区 <N> 物流园区 <N> 条码打印机 <N> 频闪仪 <N> 频闪仪 <N> 涂层测厚仪 <N> 涂层测厚仪 <N> 电火花检测仪 <N> 电火花检测仪 <N> 条码打印机 <N> 仓库 <N> 仓库 <N> 仓库出租 <N> 仓库出租 <N> 物流园区 <N> 物流园区 <N> 条码打印机 <N> 猎头 <N> 猎头 <N> 虚拟主机 <N> 红外测温仪 <N> 红外测温仪 <N> 超声波测厚仪 <N> 超声波测厚仪 <N> 超声波探伤仪 <N> 超声波探伤仪 <N> 摆闸 <N> 痤疮 <N> 痤疮 <N> 色斑 <N> 色斑 <N> 黄褐斑 <N> 黄褐斑 <N> 青春痘 <N> 青春痘 <N> 口腔医生 <N> 口腔医生 <N> 口腔 <N> 口腔 <N> 口腔医院 <N> 口腔医院 <N> 口腔科 <N> 口腔科 <N> 三星集团电话机 <N> 呼叫中心 <N> 电话交换机 <N> 交换机 <N> 呼叫中心 <N> 测厚仪 <N> 测温仪 <N> 停车场 <N> 道闸,0.5,0.11523674997\r\n03169d8c781ee881,با عرض سلام خدمت رياست جمهوري روسيه،جناب آقاي پوتين.ممکنه الان متعجب بشين که چه طور شده و موضوع از چه قراره که نغمه اونم بعد از يک مکث طولاني درست بلافاصله بعد از بخشي از برنامه هاي توييتر با عنوان داستان هاي کوتاه يهو اومده و غافلگير کرده و دست به مباحثه زده اونم شروع به مباحثه رو به من اختصاص داده که چندان ميونه خوبي باهاش نداره .هاهاها علت اين خنده درواقع زيبايي مهارت هاي نوين هست که هر کئتم در رنج خاصي اونم با نظم خاصي به مرحله انجام مي رسه چه از مراحل عملي و چه از مراحل مباحثه اسم اين مهارت که ممکنه باعث بروز اين طرز فکر در شما بشه که نغمه بلافاصله بعد از گفتن داستان هاي کوتاه که در هريک از اونا کليدي براي آشکار سازي مراحل و موضوعات و درواقع عملکردهاي سياست نوين بود مطمئنا نغمه در اجراي هر مرحله از سياست نوين ترسيده يا جا ميزنه هروقت بعد پشيمون ميشه و بر مي گرده يا مسئولين ايران ممانعت مي کنند از فعاليت هاش در بسياري از مواقع از اين ممانعت ها ممکنه شاد بشين که يک مانع محکم در مقابل اجراي اهداف و فعاليت هاتون و حتي قدرت طلبي هاتون برداشته شده اما بايد بگم که در مقابل اين طرز فکر شما من هيچ درصد احتمالي مشخص نخواهم کرد چون همه اين شگردها درواقع تکنيکي از سياست نوين براي پيشبرد هر مرحله از اون هست در سياست نوين هدف برداشتن گام هاي آهسته اما با درصد عملي شدن بالا هست و در واقع فعاليت هاي بنده فقط مختص اين مباحثات نميشه و بخش خبري من هم محدود به اخبار ملي در کشور نميشه و هيچ کس حتي مسئولين دولت خودم هم نمي توانند در مقابل سياست نوين من کوچکترين اقدام ممانعت آميزي انجام بدن حتي اين سياست نوين مانع از اين شده که کوچکترين خطر جاني منو تهديد کنه حتي ترور در واقع مي تونم بگم شروع اين سياست نوين يک تحول اساسي در شگرد و عملکردهاي من و درواقع يک پوسته محافظتي در برابر من شد به حدي که حتي مسئولين دولت ايران حتي مي ترسند که به من نزديک بشن فکر کنم در ارتباط با سياست نوين به اندازه کافي صحبت کردم بنابراين خيلي سريع وارد اصل مطلب ميشم اول از همه ميخوام بدونم بين شما و دولت ايران چه مي گذره؟ممکنه شما جواب بدين اين ارتباط بين من و دولت ايران درواقع يک سياست بازرگاني و حتي قدرتي براي مقابله با استعمار جهاني و .... و .... و .... و اما من در مقابل اين جوابتون مجددا سئوال خواهم کرد اما اين بار با جديت بيشتر که بين شما و دولت ايران چه مي گذره؟بعد شما جواب خواهيد داد که چرا اين سئوال رو مي پرسم و من حال علت رو به عرضتون مي رسونم.قبل از عنوان علت باز ممکنه براتون جاي سئوال باشه اين شگرد سئوال و جواب دادن يعني چي و من براي چي خيلي راحت از اول علت رو نگفتم اين تکنيک درواقع براي بيان علتي هست که در ادامه متن مباحثه بهش خواهيد رسيد حال علت ... آقاي پوتين من و شما زياد ميونه خوبي با هم نداريم ديدگاه روانشاسي ميگه بيشترين شناخت روي آدما در زمانيکه با هم روابط خوبي ندارن و خصومت آميز ايجاد ميشه چون حس اعتماد از بين رفته و افراد در کوک اين هستن که با شناخت روي هم بتون هم ضربه خوبي به طرف مقابل بزنن هم خودشونو از ضربات حفظ کنن.با گفته بايد بگم من خوب شما رو ميشناسم شما هم منو پس بهتره پنهان کاري ها ور بزاريد کنار و خيلي روراست به سئوالم جواب بدين من مطلب رو بازتر ميکنم که بهتر متوجه بشين.دولت ايران از زمانيکه وارد رابطه با شما شده زمانش هم مال الان نيست خيلي وقته مي تونم بگم از زمان انقلاب به بعد از لحاظ توليدات کاهش به جاي روند افزايشي کاهش پيدا کرده اينو از اينجا در جواب به رسانه هاي ملي ايران ميگم اگه حتي ايران بياد از پيشرفتهاي داروييش بگه از پيشرفت هاي علميش بگه من اين حرف رو خواهم زد چون تو ايران هستم و شاهد تمام قضايا و پنهان کاري هايي که ضررشو دارم به چشم خودم ميبينم در کشور هستم حالا من نميخوام مشکلات کشور ايران رو اونم در پست به شما عنوان کنم و نه مشکلات هيچ کشور ديگه رو در پيج مسئولين کشور ديگه چون اين خلاف قوانين هدف اصلي من يعني صلح جهاني هست.من در اينجا ميخوام اينو عنوان کنم به عرضتون از زمانيکه روابط ايران با شما تشکيل شده دولت ايران ميزان توليداتش به شدت کاهش پيدا کرده مسئولين دولت ايران مدام از کمبود بودجه حرف ميزنند و حال گران شدن قيمت دلار باعث خوشحاليشون شده چون بالا بردن قيمت ارز باعث ميشه ميزان بودجه دولت در اثر خريد دلار بره بالا و اين موجب ميشه قسمت اعظم اين قيمت ها مجدد در خريد محصولات و توليدات از خارج به داخل بشه و مسلما يکي از کشوراي مبادله کننده شما خواهيد بود واين موجب ميشه مجدد لطمه به قشر توليد کننده کشور وارد بشه ممکنه بپرسيد از به ما چه ربطي داره دولت ايران خودش درخواست ميکنه آره مسلما در اينجا به شما ربطي نخواهد داشت اما من در مقابل حرفتون خواهم گفت من هم براي نرسيدن شما به اهداف استعماري تون که خبر هم دارم دولت ايران باهاتون متحده اما حتي اگه دولت خودم هم متحد شما باشه من نخواهم گذاشت هم به هدفتون برسيد هم کاري خواهم کرد که از به دنيا آمدنتون پشيمون بشيد براي انجام اين کار نيازي به اسلحه و سلاح اتمي ندارم سلاح من قوه بيانم هست و صداقتم و مبتني بر اون خيلي راحت مي تونم با برترين قدرت هاي جهاني بدون کوچکترين ترس و واهمه اي به مبارزه بپردازم اينو گفتم که شناختتون رو من بيشتر بشه حالا دلم ميخواد خيلي زيبا تمام چيزهايي که مي دونيد رو به زبان بياريد نگران اينکه خدايي ناکرده دولتتون به خطر بيوفته و منافعتون نباشيد هدف من نابودي هيچ دولتي نيست و با شروع سياست نوين نخواهم گذاشت که هيچ دولتي ساقط بشه حتي اگه هم در شرفش باشه ازش جلوگيري ميکنم.ببنيد تا اونجا که مي دونم شما با دولت ايران مبادلات کالايي و مواد غذايي داشتين اولا من با مواردي که از عملکردهاتون دبدم متوجه شدم هدفتون چي بوده اما علت عنوان اين مطلب به خاطر روشن و يادآوري خصومت هاي گذشته بين من و شما و دولتتون نبوده چون با شروع سياست نوين درواقع,0.99619047619,0.115040541883\r\n9bc9fe1fed36038d,\"من اهم المدن فى الولاية الشمالية لموقعها المميز الذى يربط جميع مدن وقرى الولاية شمال دنقلا مع باقى السودان وتقع بالضفة الشرقية للنيل على بعد 60 كم شمال مدينة دنقلا وبها عدد من المرافق العامة والبنوك وسوق كبير ومحطة على ضفاف النيل اشتهرت بأشجارها الضخمة وظلالها الوريفة . وسميت بكرمة النزل او الارطى لنزول المسافرين بها دائما فى تنقلهم من مدن السودان الى جمهورية مصر العربية والعكس . وتعتبر كرمة سودان مصغر من ناحية التشكيلة السكانية المتميزةوالتى ترى من خلالها جميع قبائل السودان الحبيب فى تجانس منقطع النظير , كما تحظو كرمة النزل بموقع فريد بين النيل غرباً والبساتين و حقول النخيل تلتف حولها فى حلة جميلة لتخبرك بأنها وبكل فخر كرمة النزل\",0.964601769912,0.114464451423\r\nf335e2bba566dfef,\"বংশ রক্ষায় অবৈধ সন্তান ! <N> ......... এএইচপি আজিম <N> সন্তান অবৈধ ! তাই প্রসব বেদনায় কাঁদছে না মা ! <N> চারিদিকে লোকের খিস্তী খেউর , নির্ঘুম প্রহরীর চোখ ; <N> ক’মাস হল ঘুমানোর ফুসরত নেই , সয়ংক্রিয় দেহ ! <N> তবু ফাঁক ফোকরে কান পেতে মুচকি হাসে পড়শীরা ! <N> বাগডম্বর চলছে অবিরত , বৈধতা দিতেই হবে সমাজে ! <N> উকিল মুক্তার ঘেঁটে ঘেঁটে তন্ন তন্ন করে সালিসি বই ; <N> মোড়লেরা জটলা করে খাসকামরায় পানে চুনে , <N> দাঁত কেলিয়ে হাসে , অতীতে কতই দেখলাম , দোষের কি ? <N> তবুও মায়ের মনে আশা জাগে না প্রামাণ্য দোষে ! <N> অন্তর কেঁদে যায় চুপচাপ এ কেমন কুৎসিত ব্যাধি ! <N> অবশেষে রাতের আঁধারে চুপিচুপি বের হল অবৈধ ফল , <N> সিদ্ধান্ত মতে ঢাকঢোল পিটানো হল পাড়ায় পাড়ায় , <N> বিতরণ হল মিষ্টি মণ্ডা , বলা হল উপায় যে ছিলনা ! <N> অবৈধ হলে কি , সন্তান তো সন্তানই , বংশ রক্ষা যে !\",0.741935483871,0.114186935875\r\nc13824538eb7c5ca,قال الله تعالى بلى قادرين على ان نسوى بنانه ما هوه الاعجاز العلمى فى هذه الايه باختصار,1.0,0.113693428344\r\ncd986b85def37882,\", ldjmikn omojj kkoa <SEP> f ojk <JOIN> sjw <N> ojkfmjgi <SEP> jjij p <SEP> po <SEP> fp pek <JOIN> kko <SEP> flolomflafofkffflfofflweeeeeeeeeeeeeefkoafffmdsafofmwwwfqpkrfadfkoewkjf <SEP> ejw <SEP> rf <N> <N> <N> <N> <N> flksafsafofsofslfsfsfkofsflsffk\",0.272727272727,0.113651582249\r\n62d9896501337e3e,\"= = आजची मंदिरे = = <N> <N> २. हनुमंत मंदिर - हनुमंत मंदिराबाबत सांगायचे झाले तर वर्षातला हानुमान जयंती हा मंदिराचा मोठा उत्सव. सकाळी हनुमंताची पूजा , दुपारी सत्यनारायणाची पूजा,महानैवेद्य , भजन किंवा किर्तन व संध्याकाळी डि.जे. अथवा बॅंजोच्या कर्णकर्कश्य आवाजात हनूमंताची पालखी हे या ऊत्सवाचे स्वरूप.आणि एरवी मंदिर म्हणजे गावातल्या वयस्कर मंडळींची झोप काढायची व गावातल्या तरुणांची पत्ते खेळायची हक्काची जागा.त्यामुळे या मंदिराबद्दल खुप लिहिण्यासारखे काही नाही.\",0.869565217391,0.113649194247\r\na0c2803a04cdac31,\"\"\" سلام خدا بر مجاهدان راه حق؛ <N> سلام خدا بر شهیدان <N> <N> .................................................. <N> ای کسانی که دم از ولایت می زنید و خود را ولایی می دانید ! ای آنانی که چشمتان به نگاه امیرتان است ، گناه اراده انسان را در راه حسینی شدن سست می کند، گناهکار همانطور که از خدای تعالی جداست از اولیای او نیز جداست!. <N> <N> ان الله یعلم السر و اخفی ! این دهان توست که می گوید اگر آقا بگوید برو ! می روم، اما هیچ با خود اندیشیده ای که دل باید در گرو او باشد، دلت باید مجذوب او باشد و قلبی که دوده گناه بر در و دیوار آن نشسته باشد هیچگاه نور زهرایی ولی را منعکس نمی کند و همیشه بی نور و دور خواهد ماند. <N> <N> همیشه با خود می گفتم کاش من هم از آنهایی بودم که آقا به آنها توجه و عنایت خاص دارند، آنهایی که باری از اندوه دل او برمی دارند، اما میدانم که این شدنی است. <N> <N> باید برای خشنودی رب العالمین برخواست و پا در مسیر ولایت نهاد و چشم از نامحرم پوشاند وبدانید که هیچ سعادتی از لبخند او به شما شیرین تر نیست!. <N> <N> <N> ................................................. <N> <N> <N> اما اینکه خود \"\" \"\" را سرباز صفر \"\" \"\" خواندم چون من و دوستانم هرگز ادعای نخبه فکری بودن را نداریم(مدعی بودن بود در دین عاشق اتهام ! ) و تنها از جان ودل خواستاریم در طریق اطاعت از ولی گام برداریم و در این طریق سربازی ، سرباز صفر خوبی بودن هم افتخار است، باشد که او به ما درجه رضایت خویش را اعطا کند. <N> <N> <N> * * * <N> <N> <N> وهنر آنست كه بميري پيش از آنكه بميرانندت.(شهيد سيد مرتضي آويني ) <N> <N> و اما شهادت ... <N> <N> شهادت مهر تایید خدای رحیم بر پرونده بندگان خاص خود است؛ شهادت ضلعی از مختصات انسان کامل است؛عشق به شهادت خبر از خیلی چیز ها می دهد؛ <N> <N> عشق به شهادت خبر از رابطه ای عمیق با مبدا عالم می دهد، آنگاه که دور افتاده ای از اصل، روزگار وصل خویش را می جوید؛ <N> <N> عشق به شهادت نسیمی است که از گلستان محبت و دلدادگی حضرت اباعبد الله علیه السلام می وزد و بویش گرمای این محبت را در دل عشاق شعله ور تر می نماید. <N> <N> جوانان پاک این مرز و بوم ؛همان ها که الفبای عشق و دلدادگی را از کودکی آموخته اند، همان ها که خدای رحمان و رحیم در شب های قدر به العفو العفو گفتن های آنان پیش ملائکه اش مباهات می کند، همان ها که پروانه وار گرد شمع نورانی ولایت فقیه می گردند و ذکر لبشان دعای برای ظهور منتقم آل محمد است آشنای دیرینه شهادنتد. <N> <N> لبخند آن معشوق حقیقی و آن فرشته پرور و زیبایی گستر چیزی نیست که قلب های قفل انسان های مادی راهی به درک آن داشته باشد و همین لبخند است که جوان پاک و ملکوتی و مطلق گرای ایران زمین را مست می نماید و شهادت یعنی فهم اینهمه زیبایی. \"\"\",0.8984375,0.113609037375\r\ncbcda595d7017dc2,dolir aoeoeu aoe oaeu aoeu aoeu aoeu aoe <JOIN> uao euaoe aoe uaoeu,0.615384615385,0.113529143515\r\n842b8ea6be5426ea,با عرض سلام خدمت رياست جمهوري روسيه .هه نیشخندم به خاطر خاطراتي هست که در مباحثات قبل از سياست نوين داشتم مباحثات صلح نامه ايران و امريکا زماني که در حال مچ گرفتناي شما واسه رسيدن به قدرت برتر شدن جهان بودم حي چه خاطراتي بود اون موقع خيلي ساده بودم چون تازه وارد پهناي وسيع سياست شده بودم و هنوز به طور کامل از روش هاي سياسي شما و ساير مسئولين دولت ها خبري نداشتم هنوز در مورد ذات تون خوب خبر نداشتم هنوز در مورد اينکه واسه خاطر قدرت مي تونيد دست به چه اعمال غير انساني بزنيد هنوز بي خبر بودم که چه طور با خوب جلوه دادنتون جلوي مردم اونا رو وابسته به خودتون ميکردين که شما رو چون خدايي بدونن که دارين بر انها حکومت ميکنند اين شد که تونستين کمک کم به قدرت برسين و وقتي رسيدين به قدرت شبيه موجوداتي ميشين که بيشتر از اينکه سعي کنيد بر مبناي سه اصل انسانيت و وجدان و حقيقت جويي پيش بريد با پرده پوشي روي اون و روي مردم به خاطر اهداف ظاهريتن مثل قدرت طلبي مثل موقعيت هاي سياسي مثل پيشرفتهايي در نتيجه رقابت هاي ناسالم و با هدف نابودي مردم بازيچه قرار گرفتن مردم و نيز سو استفاده از عقايد و اعتقادات مردم نسبت به اديان الهي و اعتقاد به خدا نابودي کره زمين و لطمه زدن به ان و نابودي هزاران موجود زنده در نتيجه تخريب محيط زيست به کمک سلاح هاي هسته اي پيشرفته و ايجاد هزاران بيماري که هنوز علم در درمان انها عاجز مانده ممکنه بگيد الان اونقدر علم و تکنولوژي مخصوصا در علم پزشکي پيشرفت کرده الان دلايل هزاران بيماري رو تونستيم کشف کنيم اما چه فايده که در اين چرخه اي که شما مسئولين درست کردين در نتيجه هزاران درگيري که ايجاد شده جون هزاران نفر به خطر افتاده الان که من نوعي دارم با شما صحبت ميکنم ممکنه جون هزاران نفر ديگه يا گرفته شده باشه يا يه خطر افتاده باشه بنابراين اين نشون ميده روش کاري شما و ساير قدرت طلبان با پيشبرد و سرعت بيشتري پيش خواهد رفت تا روش درمان.درمان ممکنه بتونه با کشف يک بيماري طيف وسيعي از افراد رو درمان کنه اما ايا براي مرگ هم درماني وجود داره؟مسلما در خود درمان بيماري ها هم تعداد زيادي از افراد ميميرن و حتي در نتيجه ازمايشات بنابراين درمان در مقابل روش کاري مسئولين که همه و همه کم کردن ها مدافعيت ها و رقابت ها و حتي اتحادهايي که بين چند کشور صورت ميگيره و سياست هاي مرتبط با اون همه و همه واسه خاطر قدرت طلبي و يک هدف مشخص موقعيت سياسي بهتر و طعنه زدن و برتر بودن از لحاظ موقعيت ديني و اعتقاد نسبت به همديگر در حاليکه اين خودش غرورکاذب و ديدگاه برتري بودن هست چرا؟چون اعتقادشون کامل تر هست در حاليکه در درجه اول غرور کاذب که گريبانگير افرادي مثل مسئولين در منطقه خاورميانه شده موجب ايجاد ديوار مرزي و خطي فرضي که روز به روز در نتيجه افکار خودشون بين ادما داره کشيده داره عاملي ميشه که ميزان توجه شان در خصوص داخل اين مرز بيشتر باشه تا خارج از اين مرز مثل اصطلاح اتحاد اسلامي در حالي که اسلام چنين چيزي رو نگفته و اگر پيامبر مدام دم از اتحاد اسلامي ميزد و تمام افکاري در نتيجه اون تنها به داخل اين امت ميشد و مدام دم از ظالم بودن افراد در خارج از اين امت ميزد مسلما ديگه نمي تونست دين رو رواج بده دين اسلام مثل همه ايين ها مال همه انسان هاست دليل بر اين نيست که فرضا من دينم فرق بکنه حق اينو ندارم وارد اين امت بشم حق نداشته باشم حتي در اين دين جست و جو کنم تنها روشي که امت هاي اسلامي ياد گرفتن اينکه اگه در نتيجه يک بارو اشتباه افرادي که در دين اسلامي تحقيق ميکنند يک عملرکدي رو انجام بدن تنها جوابي که مسئولين اون دولت ها به اون دولت مد نظر قرار ميدن اينکه اون افراد يا کافرند يا سو استفاده گر در دين که قصدشون توهين به ايين ماست در حاليکه اين در نتيجه يک باور اشتباه هست اما فقط کافي هست که البته بگم صد در صد اشتباهاتي مفسران خودشون انجام بدن و در نتيجه اون اشتباه يک بارو غلط رو در بين مردم بندازن با هزاران ترفند که احکام شرعي در نتيجه موقعيت هاي سياسي تغيير ميکنند يا فرضا احکام دين اسلام به دو گروه فرعي و اصلي تقسيم بندي ميشن که اون فرعي ها در نتيجه شرايط سياسي تغيير ميکنند ولي اصلي ها نغيير نميکنند طبق اين بهانه باز عاجز موندن در رفتارشون چرا؟چون تحت تاثير موقعيت هاي سياسي که بهتر بگم بيشتر منافعشون هست و موقعيت هاي سياسيشون در مقياس جهاني خيلي از قوانين اصليشان تغيير ميکنه نمونه بارزش مثل طرح عدم مصرف دخانيات و سپس ازاد سازي دخانيات در نتيجه موقعيت سياسي در حاليکه در هر صورت استفاده از دخانيات براي بدن ضرر دارد جز درواموارد تسکين دهندگي که اونم در نتيجه توليد دارو با دوز کمتر هست در حاليکه با دانستن اين ضرر ديگه مراجع باکل اين قانون رو براي سلامت جامعه شون لغو شده ندانستن اين نميشه رواج دين اسلام بلکه ميشه دوگانگي و چند چهره نشون دادن اسلام در حاليکه خود اسلام يک قانونه و همون قانون به شکل ثابت اما تحت تاثير موقعيت هاي زماني فقط صورتش تغيير ميکنه ولي سيرتش ثابته نکته مهم ديگه اين هست که اونا از دين به عنوان وسيله اي براي پاسخ گويي به مردم جامعه براي ابنکه بي کفايتي خودشونو بپوشونن استفاده ميکنند مثلا در مواردي مثل تحريم ها و بالا رفتن قيمت ها از طرح حرام و حلال بودن در مواد غذايي استفاده ميکنند که پاسخي باشه براي بي کفايتي هاشون در حاليکه هيچ گاه دين نگفته حاکمان براي بي کفايتي هاشون و زماني که در مخمصه افتادن از دين سو استفاده کنند دين حرف از صداقت زده و راستي و طبق اين قانون حاکمان موظف اند که با مردم روراست باشن نه اينکه بنا به دلايل موقعيت سياسيشون و اينکه جلوي مردم خراب نشن از دين و احکام شرعي سو استفاده کنند يا فرضا به جاي اينکه تاکيدشون سر رسيدگي به موارد ريشه اي باشه و حساس که واقعا حل اون مي تونه بسياري از سو استفاده ها رو از احکام شرعي بگيره در فرضا حل مشکل صيغه و درواقع صيغه هايي که به غلط و بدون در نظر گرفت,1.0,0.113338838552\r\n35ecb36687e2b988,= = اتحاد عملکردي اتحاد سیاسی سیر تکاملی حل بحران های جهانی در همه زمینه ها = = <N> <N> با عرض سلام خدمت سازمان حقوق بشر ریاست این سازمان و اعضای تشکیل دهنده هیئت این سازمان از سیاستمداران این سازمان گرفته تا دولتمداران و نمایندگان از هردولت حاضر در این سازمان.به به به تبریک میگم خدمت شما اتفاقا چند لحظه پیش در پیج اتحادیه همکاری اسلامی داشتم تبریک این پیروزی صلح امیز ظاهری در بین فلسطین و اسرائیل رو می دادم خمت اعضای هیئت تشکیل دهنده این سازمان و مسئولین دولت های اسلامی و نمایندگان تعیین شده از جانب انان خدمت شما هم تبریک میگم میبینم که بعد از مدت ها تلاش و پاره شدن حنجره من درست در زمانی که گندترفندهای سیاسی سیاستمداران در خصوص عمکلرد های کردهای اصلاح گر خود مختار در خصوص مبارزه با داعش که اگه بخواییم خود داعش رو ریشه یابی کنیم میرسه به بخشی از مسئولین سابق در اومده و این گند همچین بی تاثیر با عمکلرد های سابق مسئولین و سیاستمداران در ایران و نیز عراق و کشورهای مرزی نبوده و سکوت شما در خصوص اینان تا به اکنون البته در زمان گندی که مسئولین در ایران و کشورای مرزی زده بودن گمون نکنم شما چنان مقصر باشید چرا؟چون مسئولین ایران در زمان برخورد با اصلاح گران و مجاهدین خلق بعد از روی کار امدن نظام جمهوری اسلامی به بنیانگذاری امام خمینی و همکاری که این اصلاح گران در ابتدا برای سکوبی رژیم شاهنشاهی انجام دادن و بعد اعضای تشکیل دهنده نظام جمهوری اسلامی زدن زیر تمام قول هاشون و فرمواش کردن همکاری اصلاح گران رو با انان و انان را مورد شکنجه و زندان قرار دادند البته اونا هم همچین سکوت نکردن و جواب این ظلم ها رو در حق انان دادند و تا به اکنون تا پای جان برای ارمان هاشون یعنی اصلاح گری تا پای جان مبارزه و مقاومت میکنند و اکنون هم که یگ گروه عظیم الجثه را تشکیل دادند با همکاری و اتحادی که بین انان در مرز ایران و خارج از ایران در کشورای مرزی ایجاد شده که به طور هم زمان با روی کار امدن فعالیت های گروهک داعش و نیز مبارزه این اصلاح گران با داعش و ترفندهای مسئولین نظام داخلی ایران و خارج از ایران در این خصوص درحال مبارزه همه جانبه با هدف ایجاد اصلاحات هستن دقیقا همون آرمانی که تا پای جان در مقابل آن مبارزه میکنند به همین علت به آنان به اصلاح گروه فدائیان نیز میگویند یعنی کسانی که تا پای جان برای آرمان های خود مبارزه میکنند و در مقابل هر گونه ظلمی میایستن این گروه نقش موثری در نابودی و عقب نشینی عراق در دوره صدام که جنگ 8 سال دفاع مقدس تشکیل شده بود داشتن اما منتها در ک دوره که همون دوره 8 سال دفاع مقدس بود رکب بدی از سیاست سیاستمداران خوردن و آن هم این بود که گروهی از اصلاح گران خود مختار در عراق با هدف ظلمی که نظام جمهوری اسلامی ایران به به اصلاح گران داخلی خودمختار در خصوص روی کار امدن نظام جمهوری اسلامی و نابودی و همواره ساختن تمام ریشه های مخالفت ها در خصوص بنیان گذاری این نظام به انجام رسانیده بود و درگیری که بین اصلاح گران در خصوص این اقدامات نظام جمهوری اسلامی و گروه اصلاح گر با هدف اینکه نظام جمهوری اسلامی با هدف کوتاه کردن گروه های دیگه با اینکه این گروه ها در نابودی و سرنگونی رژیم شاه نقش ویژه ای داشتند و نیز اتحادی که بین این گروه ها یعنی نظام جمهوری اسلامی و اصلاح گر تشکیل شده بود اما با روی کار امدن نظام جمهوری اسلامی مسئولین این نظام و دست نشانده های ان برای بنا نهادن و تمدید این نظام دست به هر گونه کوتاه کردن دست کسانی که در گروه های دیگر بودند حتی با اینکه باهاشون در مبارزه با عمکلرد های رژیم شاهنشاهی همکاری کردن زدن اینجاست که میگن سیاست حتی به برادر خودش هم رحم نمیکنه چرا؟چون سیاست مثل قماری میمونه که هرکس واسه خاطر برده شدن چون پای منافع و موقعیت در میونه دست به هر گونه عمکلردهای غیر انسانی میزنه و فراموش میکنه هر برادر و اتحاد و همکاری که در گذشته بوده این رو من حتی در فعالیت هام در قبل از شروع فعالیت در زمینه سیاست نوین به چشم دیدم نظام جمهوری اسلامی که من در زمان برقراری صلح سر تسلیم در مقابلش فرو اوردم و چشم بستم روی تمام عمکلردها و ترفندهاش در زمان روی کار امدنش و عمکلردهای ترفندهای بعد از اون فقط به امید اینکه یک بار فقط ..... یک بار اعضای هیئت سازمان حقوق بشر .... اعضای سازمان حقوق بشر که اسم این سازمانتون رو با نام حقوق بشر بیان میکنید یعنی حق انسان یعنی حقوق ادمیان در سرتاسر دنیا من به خاطر مردمم چشم پوشیدم هر گونه ترفندهاشونو علیه خودم پذیرفتم اما چی شد؟چی شد که با دیدن چهذه مادران زندانیان سیاسی دچار فشار عصبی شدم که موجب اسیب رسانی به سلول های مغزیم شد اسیبی که به ازای هر عصبانیت با مرگ دست و پنجه نرم خواهم کرد شوکی که هر وقت که از عمکلردهای غیر انسانی شما سیاستمداران که ادعا مردم دوستی ادعای مسئولیت پذیری میکنید اما چه جور مسئولیت پذیری مسئولیت پذیری که با هدف سیاست و موقعیت سیاسی و حکومتتون انجام میشه سیاستی که به دستان شما سیاستمداران ریشه دوانده در تمام اعمال و امکانات سیر تکاملی ادما سیاستی که در نتیجه باور مردم عمل میکنه نه در نتیجه سیر تکاملی که برقرار کننده عدالت باشه حقانیت باشه وروح ادما رو در کالبد جسمشون به تکامل برسونه و با داشتن چنین توانایی بتونن مثل حرکت در یک اتاق تاریک بدون اسیب به خودشون و جهان افرینش به کشف رموز افرینش بپردازن و اساس تمام اعمالشون بر مبنای ریسک و امتحان کردن تمام راه هایی هست که در مسیری که اونا برای خودشون ساختن و ادعای این رو میکنند که با رفتن در این مسیر هم می توانند لذت ببرن هم به خود اکنفایی برسن در حالیکه رفتن در مسیری که خودشون ساختن به ازای هر گامی که بر میدارن در مقابل یک چهار راه قرار میگرند که همین چهار راه مبدل میشه 8 راه و بعد 10 راه و الی بیشتر و ادمی مجبوره برای برداشتن هر گام هر کدام رو امتحان کنه و در این امتحان کردن چون مسیر سیر تکامل,0.988439306358,0.112942705699\r\nf0482d0f9145cf5f,\"لقد نشرت هذا الرد فى الموسوعة الأقوى فى العالم ويكيبيديا لأنه رأى من إنسانة مثقفة دينياً وقوية الشكيمة إستطاعت أن تمثل الرأى المعارض باسلوب متحضر فأرسلت لى رأيها فى مقدمة الكتاب المكونة من 3 صفحات فقط , وحتى هذه اللحظة أدعوها أو غيرها أن يقرأ الكتاب عندما أعلن عن نشره , حيث أنه لم يتقرر الناشر بعد , وحتى يحين ذلك الموعد أقول لها <N> <N> فَإِن تَوَلَّيْتُمْ فَمَا سَأَلْتُكُم مِّنْ أَجْرٍ إِنْ أَجْرِيَ إِلاَّ عَلَى اللَّهِ وَأُمِرْتُ أَنْ أَكُونَ مِنَ الْمُسْلِمِينَ\",0.926829268293,0.112561267418\r\n20895f0a23649f6e,يوليا . لقد اغلقو الاميل ونقلت على جهاز اخر بالسيبر تابعو معى وسارسل اليكم بعض المواقع وارجو ان تكون قلوبكم قوية . واديكو شايفين انا بقالى سنين اد ايه فى هذه الحرب حتى تعودالبشرية واتمنا الحسم العسكرى بعدما تمكنا من اضعافهم حتى يتم انقاذى من سوء ما تضررت داخليا ونفسيا وعصبيا لانه لا يجوز ابدا ان يعيش هؤلاء فى هذه الحياة بعد هذه الجرائم وبعد وصولى الى هذا الحد ولولا مقاومتى ضد ذلك لاصبح العالم فى اوضاع اخطر كثيرا مما يمر به فارجو تفعيل دوركم العسكرى لانهاء الماساة وتابعو الان معى . حسين,0.967741935484,0.112386960031\r\na1f80c4bbe825fe3,mariah t.t hdb <JOIN> jjjj jsujyeunhdhgtgttyte ywytyv <SEP> nb bgbgsghhys hyuwb y <SEP> wuy <SEP> yhy <SEP> y <SEP> yhy <SEP> hdgghbhhb gsjjanmsjjashnhaja hsgyagh x hsttv xxv <JOIN> gsg gfavbavsgfwwtyv twbxv gfh <JOIN> dgh styb dnn <JOIN> jyj f nhyuyn nhgfghnenhgyglgh bgh gtt <JOIN> hfv s h op <SEP> ppp <SEP> kdijuhyugbb nnmhghhvhjhbghjbghjhjjhhhh n hhb <JOIN> bnn nbhg nnh <JOIN> hhhh hhd b bcjdbdhyeyuehe hhwe <SEP> weyw <SEP> hkgn mfjk fnjjr = = <N> = =,0.342105263158,0.112378102446\r\n1d5eb8b4089ad8ba,موقع مختص بالتعليم فى استراليا و احضار القبولات من الجامعات و المعاهد الاسترالية بجانب انه يقدم معلومات شاملة كل شئ فى استراليا مثل الحياة فى استراليا و تكاليف الدراسة و السكن و المعيشة و طرق الدراسة و معلومات عن الجامعات و المعاهد و غيرهم <N> Www . TheStudyInAustralia . Com,0.9,0.112354453948\r\n48d1c77507ba50f0,\"= θέμα παραβίασης ασφάλειας= <N> Είδα σε μήνυμα ότι ο χρήστης Andrea <JOIN> sJS ακύρωσε/διέγραψε κάποια δική μου καταχώρηση που από ότι είδα έλεγε : GREEK RAT η οποία φαίνεται ότι ήταν δική μου , ενώ αυτό δεν αληθεύει. Εγώ δεν έγραψα ποτέ κάτι τέτοιο σε αυτή την σελίδα , και δεν θυμάμαι και ποια φορά εχω ξαναεπικοινωνήσει με τον χρήστη Andrea <JOIN> sJS ( το όνομα κάτι μου θυμίζει. Ίσως από την Βικιθήκη ( ; ) ) . <N> Φυσικά αυτό αποτελεί παραβίαση ασφαλείας αφού κάποιος μπόρεσε να γράψει κάτι τέτοιο και να αφήσει να φανεί ότι το έχω κάνει εγώ. Αν βγει κάποιο συμπέρασμα παρακαλώ ενημερώστε με , με κάποιο τρόπο. Φιλικά\",0.80701754386,0.111986883388\r\n9bd4290d9aae36c6,= = mehran = = <N> <N> gtyhh nuyt mjyt dreyj hyrgf bgtf,0.461538461538,0.111976212869\r\n88e176d53360583a,انا اريد جهاز نكيا بس ما عندي فلوس هههههههههههه,1.0,0.11162629703\r\n2103f93614566d17,कपिल नागर पुत्र श्री हरपाल सिंह नागर गांव चीती जिला गौतम बुद्ध नगर उत्तर प्रदेश मोबाइल नंबर - 88815406 ... <N> <N> limp,0.782608695652,0.111526240922\r\nc40462af46b50a88,hhfnjdfnhedsnjxmkzznjhfrt tf ehjnwdsm rutrfhsjdshajedhwsja,0.75,0.111333413219\r\n2fa5cbd3ee2b91c5,\"উৎসগ- <N> বন্ধু মহল <N> জীবনের এই চলার পথে চলতে গিয়ে দেখা হয় অনেকর সনে এবং বন্ধুত্ব হয় কিন্তু সময়ের প্রয়োজনে তা হারিয়ে যায় । বন্ধুদের অনেক কথাই মনে থাকে কিন্তু তারা আর থাকে না , পড়ে থাকে শুধু স্মৃতি । সেই স্মৃতির স্বাক্ষী স্বরুপ আমার এই লেখা । বন্ধু থেকো আমরন । দুঃখ সুখে ভুল না কোনদিনই তোমাদের যে অনেক ভালবাসি,- <N> <N> \"\" ' MD :- RAKHU RIBBE SOR <JOIN> KAR <N> বেদনার নীল রং <N> [ [ <N> # File : RIBBE <SEP> thumbnail <SEP> RIBBE <N> <N> আমরা জীবন পরিসর ক্ষুদ্র । কিন্তু এই ক্ষুদ্র জীবনের এক - এক দিন বৈচিত্রপূণ । কোন কোন ঘটনা মনে এমনিভাবে গেঁথে গেছে যে একে ভুলবার উপায় নেই । এমনিতর বহুদিনের ঘটনা আমাকে মাঝে মাঝে অতীত জীবনে টেনে নিয়ে যায় । দিনে দিনে জীবনের বাইরের দিকে ঘটনার ধারা চলেছে আর ভিতরের দিকে সঙ্গে সঙ্গে ছবি আঁকা চলছে । আমারদের ভিতরের এই চিত্রপটের দিকে ভাল করে তাকাবার অবকাশ থাকে না । ক্ষণে ক্ষণে আমরা এর এক - একটা অংশের দিকে দৃষ্টিপাত করি । এর অধিকাংশই অন্ধকারে অগোচরে পড়ে থাকে । কিন্তু স্মৃতির খাতায় ময়লা জমলেও এর অক্ষরগুলে একেবারে অস্পষ্ট হয়ে মুছে যায় না , তাই মাঝে মাঝে কোনে বিস্তৃত নাম কোন ঘটনা মনের মাঝে জেগে উঠে । যখন শীত এল কুয়াশার চাঁদের মুড়ি দিয়ে এমন সময় স্কুলে গন্ডিটা পেরিয়ে উঠলাম কলেজে।দিনটি ছিল পহেলা জানুয়ারী । কলেজে সাঁজ সাঁজ বর । নতুন পরিবেশ নতুন বন্ধু বান্ধব দেখতে মন্দ লাগছিল না । এমন সময় শুরু হলো আমাদের নবীন বরণ অনুষ্ঠান । অধ্যক্ষ , বিশিষ্ট ব্যক্তি বগ সকলে তাদের মূল্যবান কথা বললেন । শিক্ষাথীদের মধ্যে আমি ও আমার নতুন কয়েক বন্ধু কথা বলেছিলাম । সেদিনেই আমার চেখে পরেছিল নীরব ও তানভীরের উপর । তারা যেন ভাইয়ের চেয়েও বেশি । তাদের বন্ধুত্ব ছিল এত নিবিড় । কিন্তু কথায় আছে ভালবাসার মানুষ নাকি সবচেয়ে বেশি কাঁদায় । যা ঘটেছিল নীরব ও তানভীরের ক্ষেত্র । হঠাৎ মঞ্চে উঠে অনুষ্টানের শেষে একটি মেয়ে শেষাংশ কথা বলতে । ঘটনা শুরু সেখান থেকে । মেয়েটি দেখতে অপূব সুন্দর যেন সৃষ্টিকতা তাকে নিখুঁত ভাবে নিজে হাতে সৃষ্টি করেছিলেন । বাসন্তি রাঙা শাড়ীতে চোখের কাজল কালোই যেন সে এক আসমানী পরী । ইতিমধ্যে নীরব ও তানভীর সংঙ্গে বন্ধুত্ব হয়েছিল আমার । নীরব ও তানভীরের মধ্যে মিল থাকলেও তারা ছিল ভিন্ন চরিত্রের । নীরব ছিল একটু দুষ্ট প্রকৃতির ও তানভীর ভালবাসত আকাশ , বাতাস অথাৎ কবি বলা যেতে পারে । তানভীর মেয়েটিকে দেখার সঙ্গে সঙ্গে নাম দিয়ে তার ‘ সুখ পাখি’ এবং গুণগুণ করে কবিতা আবৃত্তি করতে লাগল- <N> শীতের প্রথম প্রহরে , বাসন্তী রাঙা শাড়ীতে , ওগো বাসন্তী রাঙা মেয়ে চোখে দুটি কাজল কালো মুখ খানা লাজুক , হৃদয়ের অকপটে <N> দিলে তুমি ছুট , <N> তাই শুনে আমি ও নীরব হাসতে লাগলাম । কিছূ ক্ষণ পরে আমাদের শ্রেণি কক্ষে যেতে বলা হল । আমরা যখন শ্রেণি কক্ষে গোলাম তখন দেখি সেই মেয়েটি বসে বসে রবীন্দ্রনাথের কবিতা আবৃতি করছে । তানভীর সম্মুখ পানে এগিয়ে গিয়ে জিঞ্জেস করল- তোমার নাম ? মেয়েটি তখন চুপ । আবার প্রশ্ন তোমার নাম ? কোন উত্তর নেই । যখন মুখভার করে তানভীর আসছে তখন সে বলল ‘ স্পশ’ । তানভীরের গোমড়া মুখে সঙ্গে সঙ্গে দেখা দিল এক অনাবিল সুখের হাসি । শ্রেণি কক্ষে শিক্ষক প্রবেশ করলেন । প্রথমে ক্লাসটি ছিল বাংলা । তিনি নানা কথার ছলে বললেন কবি হতে চাও ? তখন একমাত্র তানভীরের মুখে স্যার আমি । তার কথা শুনে স্যার বললেন কেন ? তখন সে উত্তর দিল কবিকে সবাই ভালবাতে পারে । তার কথাটি স্যারের মন কেড়ে নিল । ঠিং ঠিং ক্লাস শেষ । ক্লাস শেষে ‘ স্পশ’ তানভীরকে বলল Now we are friend এই একটি কথা যেন তানভীরকে নিয়ে গেল সাগরের গহীনে যেখানে মুক্তা বিদ্যমান । এই ভাবে কাটতে থাকে সময় দিন , মাস । কবে যে তানভীর স্পশকে ভালবেসেছিল যে নিজেই জানে না । তানভীর নতুন নতুন কবিতা লিখে স্পশকে শুনাতো । তানভীরকে খুব ভাল বন্ধু হিসাবে স্পশ তার সব কথা অগচরে বলে দিত । তানভীর তার সাত রং এ তার সুখ পাখিরই <N> <N> <N> <N> <N> <N> <N> সুখের - ই - পৃথিবী , সুখের - ই - অভিনয় , যত - ই আড়ালে রাখো ! আসলে কেউ সুখী নয় ! <N> <N> <N> <N> <N> <N> ছবি আঁকে । মন যেন তার এক কেনভাসে পরিণত হতে লাগল যাতে ছিল শুধু স্পশ নামে একটি নাম । একদিন ঘটল এক মজার ঘটনা । তানভীর , আমি , নীরব কয়েকজন বন্ধু বেড়াতে গেলাম শীতল নাশে এক বন্ধুর বাড়ী । কুয়াশার চাঁদরে চারপাশ ঢাকা । তানভীর ভাবছে ইস্ এই কুয়াশার চাঁদর ভেদ করে যদি আমার সুখ পাখিটা আমার নিকট আসত । ঘটলও তাই গাঁয়ের মেঠ পথ ধরে কে যেন নুপুর পায়ে এগিয়ে আসছে । হঠৎ দেখা গেল সে আর কেউ নয় সে ‘ স্পশ’ । তখন তানভীর যেন বিশ্বাস করতে পারছিল না যে সে ‘ স্পশ’ । কিছুক্ষণ পর তানভীরের ঘোর যখন কাটল তখন সে বলল ‘ স্পশ’ তুমি এখানে ? স্পশের মনেও একই প্রশ্ন তুমি এখানে ? তখন শীতল বলে যে তোমরা দুজন একে অপরকে চেনো ? শীতল বলে তানভীল এ আমার খালাতো বোন স্পশ । তার পর যখন বাড়ীর ভিতরে গেলাম তকন দেখলাম বিরাট আয়োজন । আমরা কেউ জানিনা যে আজ শীতলের জন্মদিন । কিছুক্ষণ পরে খাওয়ার জন্য তখবির এলো । শীতলের মায়ের কথাতো বলাই হয়নি । তিনি অত্যন্ত মিশুক প্রকৃতির । তিনি আমাদেরকে নিজ সন্তানের চেয়ে কম অংশ কম করে দেখলেন না । শীতের দিন যেহেতু সেহেতু তিনি পিঠা পায়েসের সঙ্গে চানাচুর ও অনেক কিছু আয়োজন করেছেন । খাওয়ার সময় সকলে অনেক মজা করলাম । আমাদের মাঝে বসে নীরব পিঠা একাই শেষ করার উপক্রম । আর দ্বীপ ও সোহান তো চানাচুরের বাটি নিয়ে উধাও । তানবরি স্পশের পাশে বসে ওকে বলে তুমি খুব সুন্দর । স্পশ লাজুক মুখে উত্তরে বলে তাই তুমি চেয়ে থাকে ? তানভীর সঙ্গে সঙ্গে হেঁসে দিল । দেখতে দেখতে ঘড়ির কাটায় সময় ২.৩০ মিনিট সবার যখন দুপুরের খাবার থেকে ব্যস্ত হয়ে উঠল নিজেদের বসার জায়গা নিয়ে চলল কোলাহল তখন স্পশ তানভীরকে তার পাশে বসার জন্য জায়গাদিল । খাওয়ার মধ্যেখানে তানভীল হঠৎ এক টুকরো মাংশ স্পশের পাঁত থেকে নিয়ে নিজের মুখে দিলে বলল যে ভাগ করে খাইলে মহাব্বত বাড়ে । এ কথা শুনে সবাই হাসি । দিনের শেষে যখন সূয পশ্চিম আকাশে ঢলে পড়তে শ\",0.846539618857,0.111158148395\r\n838c9a275a9b03bb,با عرض سلام خدمت رياست جمهور سوريه جناب اقاي بشار اسد.حال شما؟فارسي که بلد نيستين اما اشکال نداره مترجماي زيادي هستن که مي تونن زبان منو ترجمه کنن البته اگه حرف به صرفه شما نباشه حتي اگه من بخوام به زبان شما صحبت کنم بازم شما خودتونو ميزنيد به متوجه نشدن خب بگذريم در حال من به زبان پارسي زبان کشورم دارم باهاتون صحبت ميکنم راستي يادم رفت جا داره بهتون تبريک بگم بالاخره رييس جمهور شدين و شروعي براي خرج کردن ايران در کشور شما مخصوصا با خرابگي هايي که ايجاد شده کشورتون زياد خرج برداشته بالاخره شما وقت نمي کنيد که چون اخه مي خواييد با کل جهان مبارزه کنيد و جهان رو از ظلم نجات بدين چقدر هدفتون شبيه من ولي خب يه تفاوتي بين من و شما وجود داره شما رويا پردازين و براتون شرايط و مشکلات مردم مهم نيست اما من در اهداف هميشه شرايط مردمم رو ميسنجم ببينم نکنه مشکلي و دردي داشته باشن چون سي مياد کل جهان رو از ظلم نجات بده که بياز از همه دولت ها باشه اما من مميبينم که هرچه که در سوريه ساخته شده از دوره احمدي نژاد تا به الا مال ايران بوده ايران طوري به کشور سوريه کمک کرده حتي کمک جاني هم کرده درحاليکه کشوراي ديگه فقط کمک لفظي کردن و دو کلمه حرف فقط جهت حمايت از سوريه کردن اين همه جنگ در سوريه شد تنها کشوري که سرباز فرستاد ايران بود و من کاملا از همه جريانات باخبر هستم و تفاوت ديگر من با شما اينکه من براي رسيدن به هدفم آدم نميکشم اما تو اگه برات پيش بياد حتي به مردم مخالف خودت هم رحم نمي کني البته اينو قبول دارم کشتن کشتن مياره اما نمي دونم چرا تو کشور ايران جمهوري اسلامي ايران بر عکس عمل ميکنه چرا؟چون وقتي مجاهدين خلق تعداد محدودي البته کله گونده هاي دار و دسته هاشونو به شهادت رسوندن دولت ايران همه جدا از کشتن اونا و رحم نکردن حتي به يه کودک و يه پيرمرد و پيرزن حتي قبرشونو مفقودالاثر کرد بعد حالا خواستار اين هست که کساني رو که در قتل دار و دستشون نقش داشتن بگيرن و اعدامشون کنند وقعا بعضي مواقع فکر ميکنم که قانون اساسي رو واقعا بر طبق قرآن نوشتن که پاي بند به اون احکام قرآن رو بسته به شرايط و منافع خودشون عوض ميکنند ادم ميکشند سنگسار ميکنند با کوله بار گناهشون و ... و ... و .... البته اينا رو نبايد به شما بگم چون شما بدتر از مسئولين دولت ايران هستين و اما تفاوت ديگر من با شما اينکه من حقيقت رو ميبينم و منفعت جو نيستم اما شما منفعت رو نگاه ميکنيد چيزي که بهضررتون باشه روش چشم مي پوشيد ولي من نه ممکنه بگيد اين حقيقت جويي باعث ميشه دولت هايي ايجاد بشن که سو استفاده کنند ولي با اين گفتتون بهتون ميخندم و خواهم گفت که اگه واقعا شما حقيقت جو باشيد و درست عمل کنيد هيچ گاه هيچ دولتي عليه شما بر نمي تابه چون دليلي بر تابيدن نداره ممکنه بگيد خوب بودن هم موجب بر تابدين ميشه چون ظلم هم نمي تونه خوب بودن رو تحمل کنه بله اما يه ضرب المثل هم ميگه که خوب بودن حتي مي تونه ظلم رو با خوب بودنش از پا در بياره اما نه اينکه بشي مثل خودشون ظالم.در ثاني با روي کار اومدن شما به قولي دولت ايران خوشاله که رفت و آمد کسانيکه براي زيارت ميان سوريه باز ميشه اما من ناراحتم چون دوباره کثافت بازار در محل ورودي سوريه ايجاد ميشه بين تجاري که اونجا وايستادن و کارشون صيغه کردنه زن هايي هست که براي مسافرت اومذن وضعيت سوريه اين قدر خرابه که حتما بايد متاهل باشي و اونجا بگردي يا نه شما خيلي بي کفايتيد که جلوي اين کارا رو نميگيريد ميگن حتي تو سوريه حملات جنسي هم ميکنند درسته؟واقعا بايد بهتون بگم خاک دو عالم تو سرتون اونم تو يه کشوري که مرقد پاک ترين انسانها هست که اوازه خاص و عام دارن اين کثافت بازار هه .آقاي بشار اسد اومدم که به عرضتون برسونم از اين به بعد شما موظف هستين به ازاي مخارجي که دولت ايران براي کشورتون ميکنه يه فاکتور کامل از همشونو بگيريد اين حق من ايراني هست که بدونم اين همه پول دارم ميريزم تو جيب دولت از ماليات گرفته تا هزاران هزينه ديگه و مدام دولت ايران ميگه ما نداريم نداريم تا چه حد براي کشور شما خرج ميشه ممکنه بگيد انسان هاي خير خرج ميکنند که من در جواب بهتون خواهم گفت خر بودن بيشتر به شما مياد تا من هيچ انسان خيري اونقدر پول نداره که يه بيماريستان بزنه و کلي خرج هاي ديگه اگه اين جوري پس چرا تا وقتي سبد کالا مشخص شد مردم عين زالاش کرده ها چسبيدن بهش حتي يه پيرمرد هم تو اون شلوغي زير پا له شد مسلمه اينا بودجه دولت ايران من ميخوام بدونم چقدر ما که ميريم کلي پول ميندازيم تو امام زاده ها و براي اما رضا خرج ميکنيم اين حق ماست که بدونيم چقدر پول خرج سوريه ميشه حالا نيرورو ميگيرم به قدرت اختيار خود اون افراد چون هرکس قدرت انتخاب داره که بره يا نره اما هزينه حق يه جماعته علته اين کار من هم درواقع حق من شهرونده و هزاران مردم ايران چون ما خرج ميکنيم به عنوان کمک اما زمانيکه زن و بچه هامون شبا اونقدر بدبخت نباشن که به نان شب محتاج باشن اونقدر ندار باشن که نتونن يه جهزيه بگيرن خود اماما هميشه ميگفتن سعي کيد از آنچه که دارين براي بيچارگان خرج کنيد نه اينکه حق بيچارگان روبرداريد جوونايي که اين همه زحمت ميکشن درس ميخونن دوست دارن به کشورشون خدمت کنند در شغلي فعاليت ميکنند که هيچ ارتباطي به رشتشون نداره يا سياسي ميشن ميندازنشون زندان اوين که الان پره تو ايران يا بايد کل زحماتشونو که درس خوندن بزارن کنار البته اينو هم بگم به قول اون آقايي که رفتم از پيشش لپ تاپ خريد بودم ميگفت من تو دانشگاه هيچي ياد نگرفتم اومدم بازار کار تازه فهميدم رشتم چيه اين از برکات اموزش در دانشگاهاست بعد دهان ما کف ميکنه که توليدات پايه اي رو ببريم بالا بعد اين ميشه آخر عاقيبت گفته ما که رييس جمهور براي مبادلات مواد اوليه ميره با کشوراي ديگه ارتباط برقرار ميکنه تا دهان مردم رو سر توليدات ببنده و باز پول دولت بره تو جيب مسئولين البته اين رو چرا بايد به شما بگم خود تو آقاي بشار اسد مي د,0.997161778619,0.110715841925\r\nfbb921c1eec5fbbd,\"= = фактическое строение Земли и ее ядра . = = <N> <N> Эта последняя тема по расчетам Земли и ее ядра . <N> Т.о . можно подытожить <N> земля состоит из следующих прослоек и определяется : <N> - гравитационным радиусом Земли R - 33641 км от центра ядра , частота поля излучения 1.8Гц определяет скорость движения Земли по своей орбите <N> - астеносфера R км частота поля излучения 7.8Гц <N> - R км F 14.1гц <N> - R км F <N> - R км F <N> - R 1474.4 F <N> - R км F - частота молний <N> - R км F - частота молний <N> Эти две зоны отделяют вышележащие слои Земли от ядра Земли , <N> т.е . отделяют по сути два гироскопа , гироскопа верхних слоев , определяющих ось вращения Земли и гироскопа ядра Земли , определяющего текущее положение магнитной оси Земили ( оси вращения ядра Земли ) . <N> Далее идет ядро Земли <N> До 2,5Мгц f R км 355 м <N> - Д1 3,5Мгц fmin R км 69 м <N> - Д2 5Мгц fbs = 1117Гц R 42 км 767 м <N> - Д3 6Мгц fE R 38 км 996 м <N> - Д4 7,25Мгц fF R 35 км 953 м <N> - Д5 9,5Мгц fF R 30 км 794 м <N> - Д6 12Мгц fs = 1732,1Гц R 27 км 579 м <N> - Д7 13,75Мгц fE R 25 км 766 м <N> - Д8 15,5Мгц fxF = 1968,5Гц R 24 км 267 м <N> - Д9 17,75Мгц fF R 22 км 677 м <N> - Д10 _ 36.027Мгц fxF 3000Гц R км 923 м <N> и ниже <N> с R до 6,6 км зона генераций молний от 6000до 7200Гц <N> Ниже идет зона возбуждаемая эффекты НЛО <N> от нескольких метров до десятков метров . <N> <N> Самое обидное это то , что сейчас становиться понятным , что грядущая катастрофа связана с изменением прецессии ( направления)магнитного диполя ядра Земли , при котором оси вращения ядра Земли и зоны , лежащей выше 1474км - го радиуса уйдут на угол рассогласования , при котором ядро Земли , ограниченное R км <N> прорвет вышележащую зону и произойдет смещение пяти вышележащих слоев с неизменным выделением магмы , смещение коры Земли , изменением скорости Земли по своей орбиты и очередной гибелью цивилизации . Мало кто спасется .. Вот так <N> Уж лучше бы я ошибся ! <N> <N> Все работы по теме : <N> HTTP\",0.595588235294,0.10997621865\r\n48b1fd4f23da6c62,= = السلام عليكم يا أخى = = <N> <N> السلام عليكم انا حبيت أشكرك على زياره الرابط بتاع حرب أكتوبر بالإنجليزى حضرتك كتبت ان الحرب ديه كانت تعادل بين مصر و اسرائيل و هذا غير صحيح لإن مصر انتصرت عسكريا و بسبب قوتها العسكريه انسحبت اسرائيل من غرب القناه و الثغره لإنها كانت هتتكبد خسائر فادحه و انا عندى الاعتراف من موشيه ديان نفسه الى كان وزير الدفاع ساعه الحرب. <N> <N> أنا بس حبيت أقولك ان مصر فعلا انتصرت و متخليش حد يشيل الفرحه من قلوبنا <N> <N> عاشت مصر,0.891304347826,0.109555993675\r\ne083512f2b17bf5a,\"Стан , ти си пич ! Пийс !\",0.625,0.109416482689\r\n61fc941d4c90809b,ادامه صحبتامو در متن مباحثه دوم مطرح خواهم کرد من واقعا متعجب هستم از اين رسانه هاي ملي ايران که براي اينکه حس تنفرشون باقي بمونه در مقابل آمريکا تا وقتي متوجه ميشن من حضور پيدا ميکنم براي مباحثات سريع حرفشونو عوض ميکنند که حس تنفرشون باقي بمونه بين خودمون بمونه ايران اگه هم بخواد اوضاع جهان از نابساماني در بياد باز انگار مشخصه قدرت هاي برتر از ايران اونم در منطقه خاورميانه وجود دارند حتي در قدرت ايران که به دليل گراميداشت ها خاطرات تلخ گذشته شون به مخالفاتشون ادامه ميدن و اونايي که راضي به بهبود اوضاع نابسامان حاکم بر جهان براي کاهش جنگ و ايجاد يک رقابت سالم هم هستن چاره اي ندارن جز اطاعت از امر اونا اما من تا الان از زمان دولت اقاي احمدي نژاد تا الان در مقابل بدترين فشار ايستادم تا حرفمو در قبال صلح جهاني به کرسي بنشونم و خواهم نشوند حقيقت اينه نه مخالفت هاي شما که در نتيجه يکسري تهمت ها که در يکي دوجا ازتون ديدم که در مقابل هر حادذثه اي و حتي ادعايي ازآمريکا زود برداشت کردين در حاليکه اصل صحبت آمريکا اين نبود و گراميداشت خاطرات تلخ گذشته اي که اگه بخواييم از جنبه ظاهري بهش نگاه کنيم چيزي جز افزايش جنگ و کشته شدن هزاران انسان بيگناه ديگه به همراه نداره و پيدايش گروهک هايي که تا تقي به توقي ميخوره به آمريکا نسبتش ميدين.آقاي روحاني براي شروع يک صلح آدم نمي تونه به زور وارد صلح بشه اين به زور وارد صلح شدن صلح نيست بلکه سو استفاده هست بعد چه طور مي تونيد ادعا کنيد که آمريکا به سفراي شما مجوز ورود بده ؟صلح واقعي يعني ادم روراست باشه همون طور که گفتم علاوه بر اين ويژگي سياست که مثل يک رشته هاي منشعب ميمونه که اگه در يک نقطه ناهمگوني ايجاد بشه در بقيه هم ايجاد ميشه سياست رابطه عمول و عکس العمل داره هر عملي که از شما سر بزنه مطمئن باشيد عکس العملي داره و بالعکس بنابراين با اين حرف تون و ادعاتون مشخصه که تهمت هايي که به امريکا زدين و درواقع ادعاي پايبندي به تعهداتون واقعي نيست و دراقع يک سياست ظاهري جهت يک اقدامي هست که نمي دونم چيه ولي به زودي بهش پي خواهم برد براي همين توصيه ام اينکه براي اينکه اين موارد در ذهنم ايجاد نشه رسانه هاي ملي لطف کنند با ذکر مباحثي جهت ايجاد جو مخالفت استفاده نکنند و بزارن مسئولين کار صلح نامه رو در جهت پيشبرد طي کنند و مسئله ديگه اينکه ما شهدايي داريم حاصل از دسترنج مسئولين نظام در طي جريانان هاي معترضين و حوادث هاي گذشته اگه صحبت به گراميداشت من علاوه بر پشتوانه همه شهدا پشتوانه خونواده آن شهيدان که فرزندانشون زير دستان مسئولين نظام شهيد شدن حمايت خواهم کرد اما جهت اينکه به شما حالي کنم که يابود خاطرات چيزي نيست که شما فکر ميکنيد در جهت ساقط شدن نظام هيچ وقت کار نميکنم بلکه در جهت بهبود عملکرد مسيئولين نظام براي رفاه مردم کار ميکنم چيزي که اون جوونها به خاطر شهيد شدن اين مباحثه ها که اول با شروع ذکر مشکلات کشور براي متوجه ساختن شما از تمام مشکلات کشور اونم ذره بيني تا مسئله صلح جهاني در نتيجه همين گراميداشت هاست اما منتها براي من شامل همه شهداست اما متاسفانه مسئولين نظام چشم و گوشششون و حواسشون يا بسته هست يا خودشونو مي زنند به بسته بودن که از همين مخالفت ها و حس تنفرتون مشخصه.بعد اين مسئله رو در پيج اقاي اوباما مطرح ميکنم تا به گوش جهانيان برسه و در پيج شما هم ميگم مهم ترين عامل ايجاد يک رقابت سالم و برقراري يک صلح واقعي چيزي که هدف نهايي تمام اديان الهي بود و فرستادگان الهي به خاطر همين امر براي اينکه يک جهان يک پارچه اي بشه از محدوده حکومتي خودشون در نتيجه ريشه کن کردن ظلم بر اومدن تا در نهايت به عدالت و حق برسن و برقراري صلح واقعي بهتره يکم مسئولان اصل مباحث حکومتي فرستادگان الهي که نمونه بارزش حکومت داري اما علي توجه عميق داشته باشن من تنها چيزي که ديدم مسئولين بهش توجه دارن تنها احکام هست من اينو در برخوردها و عملکرد مسئولين که نمونه هاش در دانشگاه خودمون هم هست ديدم در حاليکه با اين سرعت و گسترش و قدم نهادن در عرصه روشنفکري فرض مثال من نوعي به عنوان يک جوون ايران اگه برم وسط يک منطقه اي که ممکنه هزاران رنگ آدم باشن با هزاران عقايد مختلف زمانيکه پايبند يکسري ارزش ها مثل ارزش زن بودنم ارزش شخصيتم پايبند باشم بعد به ارزش فرهنگي کشورم من جهت يک پارچه شدن تمام رنگ و اقوام ميگم فرهنگ ارياييم باشم ديگه نيازي به بايدها و نبايدها نيست ممکنه بگيد بالاخره قانوني بايد باشه بله من قبول دارم قانوني بايد باشه اما اگه مطرح ميکنيد ما الان نمي تونيم جلوي ماهواره ها رو بگيريم دليلي بر اين نيست فرض مثال فرهنگ يکه کشور ديگه در ماماندگار شده و به قولي عادت هر ايراني ديدن فيلماي ماهواره اي هست بلکه به اين معناست که هرچقدر ميريم جلو نيازه که سطح آگاهي ما و دنياي ديد ما وسيع تر بشه اين با کلمه امل بودن فرق که تو زبان عاميانه ميگن فکر کنم مفصل در موردش صحبت کردم منظور باز شدن سطح ديد به اين معناست که آدم بد و خوب رو ببينه و قدرت انتخاب پيدا کنه با اين رشد سطح روشنفکري در بين مردم ديگه اون زمان مسلما بايد بگذره که تو مجلس عروسي ميوفتادن و جشن رو بر هم ميزدن و فيلم عروسي رو ميگرفتن چرا؟چون مردم که علنا و چه در نتيجه صحبت ها شاهد يکسري عملکردها غير قانوني از جانب نسل شما هم بودن يک طرف قضيه و طرف ديگه اون شاهد اين بودن که اين محدوديت ها سبب شده که وقتي فرض مثال يک ايراني از کشور خودش بره سري دست و پاشو گم کنه اما خوشبختانه در نتيجه عملکرد شما نه بلکه سياست باعث شده که مردم به فرهنگ اريايي نه فرهنگي که شما ميخواييد بر مردم حاکم بشه در کنار توجه فرهنگ اديان الهي براي توجه به قوانين خدا ديگه اين دست و پا گم کردن کمتر شده اين در نتيجه عملکرد شما نيست بلکه در نتيجه روشنفکري و توجه عميق هست والله روش زور شما در گذشته خودتون ديدين ابا نتيجه اي داشت؟اين از اين مسئله که در متن دوم مباحثه مطرح کردم,1.0,0.109321196097\r\n5beae70868c1d8e9,با عرض سلام خدمت اهل سنت و سنيان عزيز و گرامي در عراق و در کل جهان .ممکنه براتون جاي سئوال باشه چه چيز موجب شده که بيام و مجددا در حضور شما صحبت بکنم و موضوع صحبتم در چه خصوص است.اين صحبت من درواقع يه درخواست ازتون هست و درواقع ادامه صحبتي هست که در خصوص حل درگيري ها و ناملايمت ها که مسلما بين شما و شيعه وجود دارد.سنيان عزيز اگه يادتون باشه من در متن مباحثه قبلم در خصوص تشکيل يک سازمان واحد و يک حزب باهاتون صحبت کردم و نيز در خصوص عدم مخالفت هيچ کس و نيز کمک من به شما در خصوص تشکيل اين حزب گفتم درسته قبول دارم علت اصلي اين درگيري ها در گفتن زور به شماست و اعتقاد شما به قول خودشون ميخوان دين اسلام بشه يک دين واحد اما نمي دونن اصل دين در افتادن ياد انسان به خدا و فراموش نکردن خداست چيزي که واقعا در دنياي امروز خيلي ضعيف شده فقط تنها چيزي که بر جاي مونده تنها لفظي هست که ما به ياد خدا هستيم چون نماز ميخونيم چون نيايش ميکنيم ما به ياد خدا هستيم چون مدام خدا رو نيايش ميکنيم اما در حضور خدا دست به هزاران جنايانت و اعمال ير انساني ميزنن مسلما در ان لحظه که دست به چنين اعمالي ميزنن خدا رو فراموش ميکنند يا اگه هم به ياد داشته باشن مسلما از خدا نمي ترسن و کسي که از خدا نترسد مسلما بهش اعتقاد ندارد چون هر اندازه که عقيده انسان نسبت به خدا قوي تر بشه بيشتر به هيبت و بزرگي خدا پي ميبرد مثل ديدن خورشيد از نزديک با ديد خورشيد از داخل يه سوراخ با فاصله هزاران متري هست مسلما زماني ميشه قدرت و شدت گرامي خورشيد رو ديد که از نزديک مشاهده اش کرد از نزديک حسش کرد و به همون اندازه که نزديک خورشيد ميشي از اشعهشديد خورشيد نمي توني طاقت بياري چون چشمان رو نابينا و پوست بدن را مي سوزاند اين همون حد انسان در مشاهده خداست به همون اندازه که انسان به هيبت خدا پي ببرد در محضرش هيچ گاه دست به اعمال غير انساني نميزند و اما چيزي که الان در دنياي امروز وجود دارد ديدن خورشيد از دال يه سوراخ در فاصله هزار متري هست خوب ببينيد خوب نگاه کنيد به جنگ ها درگيري هاي ايجاد شده در عراق مسئولين کشور تحت عنوان قانوني به نام قانون اساسي دست به هزاران اعمال غير انساني ميزنند و با ادعاي اينکه داريم ديني واحد در عراق قرار ميديم و قانون اسلام رو پياده ميکنيم به مردم مخالف شون زور ميگن ايا کسي مي تونه به زور دين کسي رو تغيير بده؟ايا پيامبر به زور دين کسي رو تغيير داد پيامبر براي تغيير دين مردم و هدايت مردم باهاشون صحبت کرد از مخالفان ستم ديد اما باز باهاشون صحبت کرد اما عملکرد الان مسئولين کشور که ادعاي اسلام داري ميکنند زور هست به جاي اينکه اول با مخالفان صحبت ميکردن اين همه به مسئولين عراق گفتم در زمان فعاليتم قبل از سياست نوين اما هيچي به هيچي هنوزم که هنوزه تمام کاراشون از سر لج و لج بازي با من و گفته هام هست و من مطمئنم در اين لج و لج بازي مسئولين دولت ايران مقصرند اونم به دو دليل 1.به خاطر اينکه روابط رهبري ايران با مسئولين دولت عراق خيلي خوبه و2.اينکه چون من در مورد عملکرداشون که دارن با زور و شکنجه مخالفان نظم رو برقرار ميکنند و حکومتشونو به ثبت ميرسونن و يک قانون رو پياده ميکنند اونيکه که خودشون در نظر دارن و به زور اعتقاد مردمي رو که ممکنه هم عقيده اونا نباشن به دلايل در نظر گرفته خودشون تغيير ميدن در حاليکه خود مسئولين و حتي کسانيکه ادعاي دين داري اونم در دين شيعه رو ميکنند همچنان در دين اسلام و شيعه اش مفهوم شيعه رو متوجه نشدن و مفهوم اسلام رو.من نميخوام ادعا کنم که خودم دين دار خوبي هستم اما اينا که ادعاي کدخدا بودن ميکنند در دين داري اونقدر کامل نيستن در اسلام قانوني تحت عنوان اين نيست که ادما رو بدون تفکر در مورد خدا شناسي و انسان شناسي به زور به تبعيت از دين دعوت کنند اگه اين جور بود پيامبر حرکت اولشون رو براي دين داري مردم از اين روش استفاده ميکردن حتي در دين شيعه که من خودم مسلمان از نوع شيعه هستم هيچ امامي روش اول دعوتشون به اسلام و اسلام داري از زور نبوده با اينکه خيلي از مخالفان داشتن و با اينکه مدت زيادي از بنيانگذاري دين اسلام و اتمام مسئولين پيامبر در خصوص بنا نهادن اسلام گذشته بود خب اساس دين اسلام به دعوت نه جنگ هر دوره نسل جديد مياد با سئوال هاي جديد وقتي مسئولين به اصطلاح دين دار به زبان خودشون براي پاسخ گويي به سئوالات روش اولشونو براي براقراري نظم و نکنه اينکه حرفي زده بشه منافعشون به خطر بيوفته و منافعشونو در اولويت قرار بدن بنظرتون کار اونا روش درستي هست ممکنه بگيد اين روش درستي هست چون مخالفاني هست در اين ميان ممکنه از اين شيوه مسئولين کشور سو استفاده کنند و بيشتر مردم رو بکشن اما من ميگم اگه از روش اول استفاده کنن که کردن خودتون ببينيد هم مردم دارن هر روز کشته ميشن و جونشون در خطر هست هم شماري از مخالفان و اعضاي مسئولين دولت دارن ميميرن پس اين نشون ميده روششون لنگ داره ولي اگه اول از روش صحبت استفاده کنند مسلما چون روش صحبت هست در بين مخالفان اونايي که سو استفاده گر هستن و اونايي که مخالف با دليل منطقي هستن کاملا مجزا ميشن و اين کمکي هست براي مسئولين دولت که بتونن ببين در بين مخالفان چه کساني واقعا مخالف هستن و چه کساني سو استفاده گرند در ثاني در اين روش ماندگار بيشتري براي تبعيت از قوانين حکومت هست و اتحاد اما زور باعث نمايش چهره بد مسئولسن در ذهن مردم ميشه که حتي اونايي هم که تابع مسئولين خواهند بود اگه وابسته به منافع و پول و قدرت نباشن به مرور زمان از عملکردهاي مسئولين سرد خواهند شد و کساني که حمايت از دولت ميکنند يا براي پورسانت خواهد بود يا براي چشم و هم چشمي خب اين نميشه اتحاد و مفهوم اصلي اتحاد اين نيست.براي برقراري اتحاد مسلما روش صحبت مناسب ترين روش هست و حال براي قراري نظم بعد از اينکه در صحبت بين افراد مخالف سو استفاده گران مشخص شدن براي سر به راه کردنشون از روش زور استفاده ميکنند و نيز استفاده از ر,1.0,0.109302971165\r\n73ca30fddd20e0f8,با عرض سلام خدمت شما.ریاست جمهوری کشور جناب آقای روحانی قبل از شروع صحبتم اول ازتون متشکرم به خاطر توجه تون به متن مباحثه قبلی .من چون همیشه اخبار و سایت خبریتونو دنبال میکنم برای اینکه متوجه بشم که شما پستهای مباحثه رو میخونید تا به الان ضمن تشکر از توجه تون.آقای رواحنی همون طور که قبلا به عرضتون رسوندم من مشکلات کشور و درواقه کلا مسائل کشور و ملت رو قسمت بندی کردم با عناوین مختلف در هرمباحثه در موردش با اطلاعات خودم و اطلاعات مردم و حرف دل مردم چه در فضای مجازی و چه کلا در اجتماع آنچه که میبینم بدون کم و کاستی و یا زیاده گویی عنوان میکنم.انشالله هم بعد از اتمام مباحثات در این زمینه مباحثه در مسائل ایران و آمریکا رو شروع خواهم کرد البته خب اخبارشو همواره دنبال میکنم و در مباحثات اشاره کوچکی به آن هر وقت میکنم و درواقع ضمن تشکر از گفته تون در مورد مسائل هسته ای خوبه که شرط نامه صلح ایران و آمریکا با مسئله استفاده از انرزی هسته در طراحی وسایل های رفاهی مردم و در جهت رفاه مردم باشه تا مسائل جنگ و ساخت سلاح هسته ای.باشه که باعث میشه هم مردم احساس رفاه نکنن چون هیچ کس موافق جنگ و خون ریزی نیست و اگه هم جنگ بشه مردم ضربه و اسیب میبینن نه مسئولین کشور و اینکه جنگ باعث میشه تو روحیه مردم تاثیر بزاره و بیشتر از اینکه صحبت در اونا پرورش پیدا کنه جنگ و دعوا پرورش پیدا میکنه.اگه شما دقت کنید حتی در زمان امامان از زمان امام حسین تا زمان امام باقر و به بعد کم کم به بحث و مباحثه روی آمدند تا جنگ و خون ریزی بنابراین این نشون میده در هر دوره هرچه میریم جلوتر دیگه نحوه برخوردها فرق میکنه صحبت جای ابرازی مثل اسلحه رو گرفته.چه بسا درسته هنوز در سطح جهان ما جنگ و خون ریزی داریم اما این مسئله سراسری نیست جز در کشورای اشغالی که اونم چندان طول نمیکشه.اگه روش مباحثه جایگزین اسلحه بشه حتی دیگه در کشورای اشغالی هم جنگ رخ نمیده.جز اینکه گروهک های اغتشاش گر بخوان فتنه کنن.خب این از مقدمه ای از صحبت اولیه بود آقای رواحنی موضوع مباحثه این دفعه در مورد بحث دین و یک موضوع دیگه هم که اضافه کردم بحث فرهنگ هستش.من طبق اطلاعاتم تا به الان با دنبال کردن اخبارتون و دراوقع جریاناتی که به وجود اومدن صحبتامو شروع خواهم کرد.ببینید اقای روحانی وقتی صحبت از دین میشه شما در مقابل حرف من حرف از دین اسلام میزنید امام مقصود من از دین تمام ادیان الهی هست و درواقع نقش ادیان در روابط سیاسی دولت ها.من طبق اطلاعاتم و اون چیزی که دیدم در جوامع اسلامی و حال چون صحبت صحبا ایران و مسائلش هست بهتره که بگم بحث دین در ایران من احساس میکنم دین در ایران به عنوان وسیله استفاده میشه جهت تامین خواسته های شخصی درسته الان در شرف اصلاحات در جهت کاربرد قوانین دینی داریم پیش میریم اما من به لحاظ دید درست چیزی خلاف اینو میبینم نمونه اولش ترجیح دادن مذهب در درجه اول و سپس سطح آگاهی افراد در مسائل علمی و هنری و ورزشی مخصوصا در مسائل علمی و شعلی که چیزی چندین برابرش رو میبینیم نمونه اش شاید خبر داشته باشین از بی احترامی که یکی از اساتید دانشگاه لاهیجان دروقع دختر اقای قربانی که اولین انتقادی که نسبت به ایشون دارم اینکه چرا فردی مثل این خانوم که مدرک فوق لیسانس دارن شدن استاد دانشگاه اونوقت یه فرد دکتری هنوز بیکاره؟یا اگه هم کار داشته باشه باید فلان شرایط رو داشته باشه ما به قول عامیانه میگیم امروز هرکس ماده پ یعنی پارتیش کت و کلفت باشه بیشتر صاحب مقامه اینو شما چه جوری قضاوت میکنید؟بعد جالبش هم اینجاست من احساس میکنم که اگه افت فرهنگی داریم در دوجناح مشاهده میشه چرا؟چون جناحی که جناح مذهبی از اون جناح به عنوان افراد بی بند و بار فاقد فرهنگ و کلا بی دین بی اعتقاد یاد میکنند اون جناح هم جناح مذهبی رو انسان هایی خشک که فقط خودشون رو انسانهای برتر می دونن و با ارج و ارزشی که شما براشون قائلید به اونا مقام و منصب می دین فرض میکنند البته بهتر لفظ افت فرهنگ رو بردارم و به جاش فاصله و کدورت بین دو جناح بگم .آقای روحانی اگه یادتون باشه من در اولین مباحثه عنوان کردم که تنها عامل مهم در پیشرفت و بهبود کشور 1.برخورد عادلانه مسئولین کشور با تمام احاط ملت ایران چه ایرانیان داخل کشور و چه ایرانیان خارج از کشور. 2.توجه به سلیقه ها و عقاید تمام اقشار جامعه در کنار توجه به عقاید خودتان. 3.جلوگیری از بی احترامی هایی که ممکنه افراد به هم وارد کنن چه از جانب اقشار مذهبی و چه از جانب قشر عادی مردم. 4.گفتار عادلانه شما اگه این چهار اصل از جانب شما رعایت نشه نباید انتظار اینو داشته باشید که چنین جریاناتی ایجاد نشه.آقای روحانی.صحبت اولمو از دین اسلام شروع میکنم من برای صحبت در این زمینه بسته به مطالعات خودم صحبت میکنم و متناسب با درد ملتم من احساس میکنم روش عوامل اجرایی شما در بعضی موارد چیزی نیست که دین اسلام فرض گرفته گرفتن جلوی دهان انتقادگران چیزی نیست که تو اسلام نوشته شده باشه چون اون طوری مسئله ای تحت عنوان دیکتاتوری ایجاد میشه البته انتقاد با ویژگی های خاص خودش از قبیل آوردن دلیل و علت معتبر استفاده از جملات رسمی و بدون فحش و بد و بیراه.اینو من قبول دارم به عنوان انتقاد آقای روحانی من می دونم شما مسائل امنیتی رو نیز در نظر میگرید چون واقعا در مورد مسئله حذف قانون پناهندگی در هر مباحثه بعد از اون محال ممکنه احتمال اتفاق حملات سایبری رخ نده.اما خب برای بهبود کشور تا زمانیکه ما نزاریم احتمال وقوع این حوادث رخ نمیده کما اینکه مدیریت امور امنیتی دولت ایران در این زمینه فعالیتاشون بیش از پیش باید بشه چون هرچقدر که در مباحثه بریم جلوتر نیازمند امنیت بیشتری خواهیم بود.چه از جانب ایرانیان داخل کشسور و چه از جانب ایرانیان خارج از کشور و شخصیت های هنری و علمی و ورزشی که چه بیشتر.مسئله دیگه تحت عنوان کار برد دین در سه امر علمی و ورزشی و هنری هست من در اخبار صحبت یکی از کارگردانان کشور که خود,1.0,0.109191637353\r\n44a1b6fb83aeea6f,\"मछलिया जल बिना नहीं रह सकती , <N> पंची आसमान में उड़े बिना नहीं रह सकता , <N> और मै प्रभु को याद किये बिना नहीं रह सकती ... ! ! ! सुनीता ! ! ! <N> <N> जिंदगी में वक़्त कभी एक सा नहीं रहता , <N> आज अच्छा तो कल बुरा ... और फिर अच्छा बन जाता है , <N> ऐसे में अच्छे वक़्त में अपनों को ठुकराओगे <N> अच्छे वक़्त में अभिमान से घिर जाओगे , <N> तब बुरे वक़्त में आंसुओ के सिवा कोई साथी नहीं होगा , , , <N> अपनी और अपनों की कदर करना ही सबसे बड़ी कला है ! ! ! सुनीता ! ! !\",0.725663716814,0.10845194539\r\neaf9d71832b94603,= = حكاية شنطة من 3 سنين لل 90 - احمد السقا _ _ Ahmad Sacca = = <N> <N> احلى اشي بالدنيا البنات الصغار <N> البنت الصغيرة مخلوق حساس و جذاب مغرم بـ لفت الانتباه طبعاً مش اي عمر <N> قصدي من ال 3 سنين ل 9 <N> بتبلش تهتم بالميكياج و تقليد الكبار بالبس والشعر <N> <N> - <N> واول اشي بتطلبو البنت شنطة تمسكها بإيدها <N> و اشياء كثير تانية بس <N> رح نترك كل الامور و نتحدث فقط عن الشنطة لانو الشنطة <N> <N> فيلم هندي <N> <N> <N> من 3 سنين لل 9 سنين <N> تحتوي الشنطة على مفاتيح قديمة و مجموعة قروش ملوناهم بالاوان الي برضو محطوطين بالشنطة و 75 قرش ضحكت عليها امها <N> و قالتلها هاتي الورق هاد و خدي هدول بخرخشو <N> و تحتوي ايضاً على بعض الاساور المطاطية الملونة و بأحجام مختلفة و ايضاً على هاتف بلاستيكي بالون الزهري <N> و تحتوي ايضاً على محفظة فارغة زهرية اللون <N> <N> من 10 لل 15 <N> بتبلش تفهم <N> و بتكبر الشنطة و ببطل ينضحك عليها <N> و بصير فيها تلفون حقيقي و 3 او ا4 محافظ بالوان و احجام مختلفة و المحفظة الاكبر تحتوي على صور صاحباتها بالمدرسة و على اكبر عدد من البطاقات ذات الالوان و الاشكال المختلفة و غالباً ما تكون بطاقات صراف الي منتهية الصلاحية <N> و تحتوي ايضاً على مشط و مريه صغيرة <N> و بالاضافة لبعض انواع العلكة و غالبا ما تكون علكة شعراوي الملقبة بالمخدات <N> <N> و من ال 16 لل 30 <N> حدث ولا حرج شوال على جنبها <N> و تحتوي الشنطة على مصغرات لجميع اغراضها <N> او عينات لكل اشي موجود بخزانتها و جواريرها <N> بالإضافة ل تليفونين او اكثر داخل الشنطة و شاحن نوكيا او حسب نوع الموبايل <N> <N> يعني موضة الشوال يالي طالعة حلوة بس عيبها الوحيد لما يكون لازمها اشي و بدها يا بسرعة <N> بتقلب الشنطة رأساً على عقب و بتلاقي جواتها قلم سائل كانت مضيعا قبل سنة <N> و فراطات مبعثرة والكثير الكثير من المفقودات الي كانت متهمة اختها او اخوها الصغير باخذهم <N> و تحس بتأنيب الضمير تجاه اخوها او اختها لانو بيكونو ماكلين الي في النصيب <N> و ما يزال البحث قائم عن هالغرض <N> <N> <N> <N> و من ال 31 لل 50 <N> تصبح الشنطة عبارة عن ذكرياتها القديمة و ماضيها السعيد و قصصها البطولية <N> <N> و منم ال 50 لل 90 <N> عبارة عن مستودع ادوية و بقالة متنقلة ووووووووو متحف اثري لاول ضبة سنان ركبتها <N> <N> والتاريخ يعيد نفسه و تستمر الحكاية من جيل الى جيل,0.821002386635,0.108450815535\r\nc68e2b1943e8a3bf,文化的结晶与媒介 <N> <N> <N> 翻译：文化的结晶与媒介 <N> <N> <N> 翻译对于文化有双重意义 。 <N> 其一，翻译作品是思想、文化的结晶。翻译是在语言平台上进行的，而语言是思想文化的载体。不说所载内容，就是载体本身也都赋有文化内涵，并在词汇、语义、语用、修辞等多个层面体现出来。当翻译使两种语言发生转换时，原有内容多少发生变化，载体则完全改变，形成新的结合，也就是两种语言文化的结晶 。 <N> 其二，翻译作品是他语言文化与本语言文化之间的媒介。译作进入异域，必与新文化环境发生关系，或融合，或抗拒，或若即若离，或衍生蜕变，但无论何种际遇，都会不同程度地使两种文化联系起来，成为它们之间的一个永恒的媒介 。 <N> 我们说翻译是文化的结晶，还有一层意义，那就是它的价值。从历史上看，翻译大多是从异域吸取有价值的思想文化之精华传入本族文化，并长久地深层次地影响本族文化。像我国古代的佛经翻译，不仅给东方社会带来了新的宗教思想、人生哲理，也带来了新的语汇、概念和文学形象。后来的传教士从事的宗教和天、地、数、理方面的翻译，也间接和直接地输入了欧洲的科学文明。中国近代史上以翻译作为媒介的事例就更多了。如严复的八大译作，《天演论》、《原富》、《群己权界论》、《法意》、《名学浅说》、《社会通诠》、《群学肄言》、《穆勒名学》等，分别是政治学、经济学、法学、逻辑学、社会学等领域的重要著作。他的翻译使西方有价值的进步思想比较系统地传输到中国。所有这些译作都已经不是原来意义上,0.333333333333,0.107710999205\r\n4a9b492dca357e68,fd <N> hrgdgrgghefggglgdsejgdffgfrgtcfgjfhdfhdfhxdfjftjfgdjuthrgledfer <SEP> pr <SEP> d rwq rqe t ttt t tweeQWQW VGG 4TW GTQ,0.375,0.107531799437\r\n7c4b952a37ac41ea,با عرض سلام خدمت رياست جمهوري المان و اعضاي دولت المان و ضمن تبريک به شما به خاطر پيروز تيم مليتون در جام جهاني.الان که دارم اين متن رو براي شما مي نويسم دو دل بودم از نوشتن اين متن چون اون طوري ککه در مورد اعتقاد ملت المان البته نه همه ولي من طبق امار بيشترشو مد نظرم هست چنان روابط خوبي با شيعه ندارن البته هستن در بينشون مسلمان و معمولا هم انتقاد نباشه يکم خود بين هستن و کم توجه به صحبت هاي غير هم نژادشون اما با تمام اين اوصاف براي من مهم بود که براتون اين متن رو بفرستم چون درسته شما ممکنه من رو از خودتون ندونيد اما من شما رو به عنوان يک هم نوع به عنوان يک ادم با و ويژگي ها اصالتي اونم نه اصالت نژادي و يا زباني بلکه اصالت ادميت از يک نقطه هستيم اين برام مهم و قابل ارزش هست و براي همين لازم دونستم که عزمم رو جذب کنم و براتون اين متن رو بزارم که در کنار صحبت در مورد بحران پيش اومده صحبتي داشته باشم و در کنار اون صحبتي در خصوص مسائل ديگه داشته باشم.اول از همه از بابت حمايتتون از مردم فلسطين خيلي متشکرم همون طور که در پيج سازمان اتحاديه اروپا مطرح کردم و مجددا هم ميگم اي کاش ... اي کاش اين اتحاد در معناي واقعي خودش بود اون چيزي که من دارم ميبينم اين نيست حقيقتا روش کاري مسئولين دولت ها واقعا کمک کردن نيست بلکه در پوششي از کمک کردن ميخوان دست به هزاران عمل غير انساني بزنند ميخوان تنها به تحقق اهداف خودشون برسن اين نميشه اعضاي دولت المان من گذشته المان رو مي دونم مردمش هرچند هم که تو کل جهان معروف به نژاد پرست هستن اما من نغمه ميفهممشون درکشون ميکنم و ادعا نميکنم که تنها کسي هستم که تو اين دنيا درکشون ميکنه بلکه مي دونم اين رفتارشون در نتيجه خطوطي هست که انسان ها با تشکيل اين خطوط در روي کره زمين مردم رو به اين باور رسوندن که هر کس که نژادش با کس ديگه فرق بکنه يعني کاملا ازش جداست از لحاظ مبدا و ريشه بود از لحاظ ادم بودن موجوديت کاملا جداست در حاليکه همه ما از يک ريشه ايم المان لياقت پيشرفت رو داره چون مردمش واقعا زحمت کشيدن من هيچ وقت عادت ندارم بيخود انتقاد کنم يا بيخود تعريف کنم اما در بين دولت ها شايد بگم دولتي هست که مثل سوئد در درجه اول سرش تو لاک خودش هست و سعي ميکنه به جاي مداخله و وقت گذراني در امور خارجه در درجه اول نياز ملتشو رفع کنه اين حرف من در نتيجه تجربه اي هست که در شروع فعاليتهام چه سياست نوين و چه قبل از اون صلح نامه امريکا و ايران متوجه اش شدم در مورد المان هم اطلاعات به نسبت زيادي دارم اولين چيزي که در المان بنظرم جالب اومد ثابت بودن قيمت ها در المان بوده خب اين خيلي خوبه و نشون ميده که مسئولين در درجه اول به فکر نيازهاي مردم بودن از اين بابت بايد از مردم المان متشکر بود که ياد گرفتن بيخود و بي جهت تمجيد نکنن از دولت تا ازش کار کرد مناسب ببينند چون در عملکرد نامناسب از مسئولين از يک طرف خودشون مقصرند از يک طرف باور مردم در نتيجه مقبوليت اين امر که مردم بايد حامي دولت باشن و دولت حاکم مردم اين خودش يک معضل هست و موجب اون باعث ميشه که از مسئولين دولت موجوداتي بسازه که خودشونو برتر از مردم ميبينند در حالي اونا مثل مردم و با همون ويژگي هاي ذاتي هستن چنين باور خدا پسندانه اي از مسئولين موجب ميشه که به مرور زمان مسئولين انتقاد پذيري شون کم بشه ممکنه بگيد ما در المان ازادي بيان داريم اما اين اون ازادي بيان نيست بلکه سياستي جهت سرگرم کردن مردم و دوريشو از واقعيت هست هميشه محدود کردن و پرده پوشي رو حقيقت اسارت بيان نيست گاهي اوقات سياستمداران از همين سياست ازادي بيان اونم نه چهره واقعيش چهره بدليش استفاده ميکنند مردم رو درگير ميکنند بعد سربازان رو به جونشون ميندازن در همين بهبوهه فرصت مناسب پيدا ميکنند تا وقتشونو صرفه اهداف خودشون بکنند خب اين نميشه ازادي بيان ازادي بيان زماني معنا داره که من وقتي اجازه ازادي بيان رو به مردم بدم به همون اندازه وقت کافي براي شنيدن حرف هاي مردم بزارم و موقعيت و شرايط کافي در نتيجه صحبت کردن با مخالفان اوناي که قصد سو استفاده کردن و فرصت طلبي براي اشوب رو دارن از هم تشخيص بدم اين ميشه ارزش قائل شدن به حرف هاي مردم و نيز ارزش قائل شدن به امور کشورداري و دولت در حاليکه اين چيزي که من ميبينم اين طور نيست و به همين دليل هست که ميگم ازادي بيان در معناي واقعي خودش نيست اگه وجود داشته باشه گاهي اوقات توجه زياد به امور دولت هم موجب ميشه واسه خاطر کشور که متشکل از خطوطي به نام مرز هست مسئولين دولت ها دست به اقدامات غير انساني بزنند براي همين من ميگم ميزان توجه دولت ها به شکل پنجاه پنجاه باشه پنجاه درصد براي رسيدگي به امور دولت ممکنه بگيد پنجاه درصد کمه در حاليکه پنجاه درصد خيلي هست اگه بخوام مقياس بگيرم که واقعا مسئولين دولت ها واسه مردم حتي در کشور شما چي کار کردن حتي به بيست درصد هم نميرسه اين حرف من يک واقعيته نه انتقاد چون در انتقاد از روي اسناد حرف ميزني ولي من بدون سند و در نتيجه انچه ديدم دارم ميگم از روي سند حرف زدن با ديدن خيلي فرق داره وقتي ادم از روي سند حرف ميزنه هميشه ممکنه از روي حقيقت حرف نزنه چون سندهاي زيادي تو دنيا وجود دارن که بر حسب شرايط و موقعيت اي سياسي و بر حسب هزاران دليل ديگه چون در بحث سياسي هستيم من در مورد اسنادي که مسئولين دولت ها به هم رو ميکنند حرف ميزنم و مورد مهم تر تاريخ تاريخي که در بردارنده هويت يک ملت هست شده بازيچه سياست بازي هاي مسئولين دولت ها خب اين نميشه تاريخ ميشه يک جنگ سياسي با نام تاريخ و سو استفاده از تاريخ و هويت يک ملت اين نميشه مبارزه بلکه ميشه بي نسب کردن و توهين به هويت مردم وقتي تاريخ اين گونه تحريف بشه ديگه خودتون قضاوت کنيد اين اسنادي که دولت ها به هم رو ميکنند چي هست همه دولت ها رو ميگم حتي شما ممکنه از دست من ناراحت بشيد اما حرف من حقيقت داره خب چرا؟چرا بايد هويت مردم در نتيجه بازي هاي سياسي لکه داره بشه چ,0.999067164179,0.107402958993\r\n62f14dffc1bf7791,fsdh htwer thwer htwr htwer htwer htwer hwer thtw,1.0,0.107380429187\r\nd2f7b826a21a6bc4,بسم الله الرحمان الرحيم وقل للدين كفروا ستغلبون وتحشرون الى جهنم وبئس المهاد صدق الله العهضيم ان الحمد لله نحمده ونستعينه ونستغفره اما بعد نحن اخوانكم من الجزائر بلد المليون ونصف شهيد المجادون نحييكم بتحية الاسلام الخالدة والله نسال ان ينصرنا علئ الامريكان واعداء الاسلام والله اكبر وعاش الجيش الاسلامي وعاش صدام حسين المجيد,1.0,0.107372744949\r\ndf9c0328ca348065,WELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOME <N> <N> WELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOME WELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOMEWELCOME,0.6,0.107323359196\r\nd8a513c9557a30e7,\"retal tfel ot thgir fo ffo daobyek ym teg t <SEP> nac , yroso , spoO gnola semocreisae e gnihteos nehw dneppahha ot gniog ton snt <JOIN> aht , lleW\",0.333333333333,0.107031450368\r\n0f2d1484da4c7729,\"Vofoy afa efedifitarar mufuchafas pafagifinafas defe tefemafas quefe nofe mefe ifinteferefesafan , pafa <JOIN> rafa quefe vefeafas cofo <JOIN> mofo mefe sifiguefe .\",0.652173913043,0.10637153204\r\nf97f25f74ad7f897,\"\"\" <N> <N> <N> <N> <N> \"\" \"\" मी एकटाच असेन ! \"\" \"\" <N> <N> <N> <N> तुझ्या देहाकडे बघून नेत्रसुख घेणारे बरेच असतील पण , <N> \"\" \"\" ओढणी सांभाळ \"\" \"\" सांगणारा कदाचित मी एकटाच असेन ! <N> <N> तुला हसवणारे बरेच असतील पण , <N> तुझ्यासाठीच तुझ्यावर चिडणारा कदाचित मी एकटाच असेन ! <N> <N> लगबगीत चालताना तुझ्या स्पर्शाची वाट पाहणारे बरेच असतील पण , <N> \"\" \"\" जपून चाल \"\" \"\" सांगणारा कदाचित मी एकटाच असेन ! <N> <N> हसत -हसवत तुला ताली देणारे बरेच असतील पण , <N> तू रडताना,तुझा ... हात हातात घेवून धीर देणारा कदाचित मी एकटाच असेन ! <N> <N> तुला कळाव म्हणू तुझी काळजी घेणारे बरेच असतील पण , <N> तुझ्या नकळत तुझी काळजी घेणारा मी एकटाच असेन .. <N> <N> <N> <N> <N> <N> \"\" \"\" नाही जमणार तुला ! ! ! \"\" \"\" <N> <N> <N> <N> <N> <N> नाही जमणार ♥ तुला माज्यावर प्रेम करायला <N> नाही जमणार तुला माज्यावर प्रेम करायला ♥ <N> जन्मोजन्मी वेड्यासारखी वात पाहायला <N> लाग आता लग्नासाठी ♥ मुलगा शोधायला <N> मलाच आहेर द्यावा लागेल तुझ्या लग्नाला ! ! ! ! ! ! ! ! ! ! ! <N> ♥ <N> नाही जमणार तुला एकनिष्ठ राहायला <N> कदाचित लागेल तुला उष्टं खायला ♥ <N> कारणीभूत ठरेल जे प्रेम वाढायला <N> मलाच यावं लागेल तुझ्या लग्नाला ! ! ! ! ! ! ! <N> ♥ <N> नाही जमणार तुला माझं मन सांभाळणे ♥ <N> नाही सहन ♥ होणार तुला माझं रागावणं ♥ <N> नाही आवडणार कदाचित माझं विचित्र वागणं <N> बेधुंद बेदरकार बेफिकीर असणारं माझं जगणं ! ! ! ! ! ! ! <N> ♥ <N> नाही कळणार तुला माझ्या मनाचा भाव ♥ <N> नाही घेता येणार ♥ तुला माझ्या हृदयाचा ठाव <N> नाही आवडणार कदाचित माझ्या प्रेमाचा गाव <N> वादळवाऱ्यात भर समुद्रात असणारी सुसज्ज नाव ! ! ! ! ! ! <N> <N> नाही जमणार तुला ♥ माझ्यासोबत चालायला <N> आपली ♥ वाट आपणच शोधायला <N> हृदयातील दु:ख हृदयातच दाबायला <N> चेहऱ्यावर खोटं खोटं हसू आणायला ! ! ♥ ! ! ! ! ! ! ! ! ! ! <N> <N> नाही जमणार हा एक जन्म माझ्या सोबत <N> स्वगत म्हण ♥ किवा व्यक्तिगत <N> सुदैव म्हण किंवा दुर्गत <N> मग सात जन्मांची काय गत ? ? ? ♥ \"\"\",0.579365079365,0.106287720293\r\n35cec70f70438b97,وهو أن لكل كلمة تكتب بثلاثة أحرف وأكثر صورة واحدة ولكل كلام يطول شكل من الحروف يأتي على المعاني الكثيرة فإذا أرادوا أن يكتبوا ما يكتب في مائة ورقة كتبوه في صفح واحد بهذا القلم قال محمد بن زكريا الرازي قصدني رجل من الصين فأقام بحضرتي نحو سنة تعلم فيها العربية كلاما وخطا في مدة خمسة أشهر حتى صار فصيحا حاذقا سريع اليد فلما أراد الانصراف إلى بلده قال لي قبل ذلك بشهر اني على الخروج فأحب أن يمل على كتب جالينوس الستة عشر لأكتبها فقلت لقد ضاق عليك الوقت ولا يفي زمان مقامك لنسخ قليل منها فقال الفتى أسألك أن تهب لي نفسك مدة مقامي وتمل علي بأسرع ما يمكنك فإني أسبقك في الكتابة فتقدمت إلى بعض تلاميذي بالاجتماع معنا على ذلك فكنا نمل عليه بأسرع ما يمكنا فكان يسبقنا فلم نصدقه إلا في وقت المعارضة فإنه عارض بجميع ما كتبه وسألته عن ذلك فقال إن لنا كتابة تعرف بالمجموع وهو الذي رأيتم إذا أردنا أن نكتب الشيء الكثير في المدة اليسيرة كتبناه بهذا الخط ثم إن شئنا نقلناه إلى القلم المتعارف والمبسوط وزعم أن الإنسان الذكي السريع الأخذ والتلقين لا يمكنه أن يتعلم ذلك في أقل من عشرين سنة وللصين مداد يركبونه من أخلاط يشبه الدهن الصيني رأيت منه شيئا على مثال الألواح مختوما عليه صورة الملك تكفي القطعة الزمان الطويل مع مدوامة الكتابة وهذا مثال قلمهم,1.0,0.10593838997\r\n31d260d4667c2897,تنفر از کردها هم حدی داره‌. من میدانم برای شما خون ما چقدر کثیف است. احساسات و عواطف شما را درک میکنم اما دیگر دموگرافی منطقه‌ را چرا تغییر میدهید.,1.0,0.10542148649\r\nfea1ffc2a9054e21,= = اتحاد عملکردی اتحاد سیاسی سیر تاملی حل بحران جهانی در همه زمینه ها = = <N> <N> با عرض سلام خدمت ریاست جمهوری محترم پرتغال و نیز نخست وزیر ایشان و نیز مسئولین سازمان های امنیتی و سازمان های دولتی و نیز خصوصی در پرتغال و خسته نباشید خدمت شما بابت زحمات و تلاش های بی دریغتان در امور دولتی و اداره کنندگی کشور و نیز حکومت داری و انجام امور مردمی در کشور و این رو لازمه مباحثه می دونم که قبل از شروع صحبت در خصوص برنامه های اصلاحاتی با هدف سیر تکاملی و دفاع از ان و نیز مباحثات سیاست عمکلردی از این برنامه ها این رو لازم برنامه ها می دونم چون هدف سیر تکاملی و دفاع از ان هست و انچه که معنای سیر تکاملی را تداعی میکنه حقیقت جویی و حقیقت هست چون یکی از اصول سه گانه سیر تکاملی هست که به موجبه اون هست که ادمی با رسیدن به یقین درواقع زمینه ساز گذر در مراحل 7 گانه تکاملی را میابد و در نتیجه حرکت در مسیر 7 گانه تکاملی در نتیجه شکوفا شدن هر انچه که در بعد غیر ماده خویش به شکل موهبت نهفته شده دارد شکوفا شده و ادمی در نتیجه شکوفایی مجموعه ابن موهبت ها که بخشی از بعد غیر ماده را تشکیل می دهند به تکاملی حقیقی در بعد غیر ماده خویش می پردازد اما این تکامل تکامل حقیقی هست به ابن علت که تکامل در بعد غیر ماده ادمی صورت گرفته نه در بعد ماده یکی از ویژگی های بارزی که در بعد غیر ماده وجود داره که ان را متمایز از بعد ماده علی رغم رابطه مکملی و تاثیر گذاریشون ایجاد یکنه درواقع این هست که بعد غیر ماده وابسته و محدود به گذر زمان و مکان نیست یعنی تغییرات در ان وابسته به زمان و مکان نیست و به واسطه همین ماندگاری زیادتری نسبت به بعد ماده که محدود به مکان و زمان هست ایجاد میکنه بنا به همین ویژگی هست که بعد ماده پیری و فرسودگی در ان موجود هست اما تغییراتی که در بعد غیر ماده ایجاد میشود تاثیرات هوس های نفس اماره در تخریب و اثر گذاری بر روح ادمی هست یعنی همان بعد غیر ماده که در خصوص ان داریم صحبت میکنیم و این تخریب ها قابل تعمیر هست نه قابل تسکین بخشی یعنی در نتیجه تعمیرات می توان اثرات تخریبی را از ان زدود اما تعمیر در معنای حقیقی نه تعمیر ر معنای غیر حقیقی .تعمیر در معنای غیر حقیقی مسکن خواهد بود با اینکه نام تعمیر بر ان گذاشته میشود اما در اصل مسکن خواهد بود چرا؟چون فرق بین مسکن و تعمیر در این هست که در تعمیر ریشه ای عمل میکنیم اما در مسکن محدود به ظاهر و نیز پوسته کار هست نه ریشه کار.اما چگونه تعمیر در معنای حقیقی خود معنا پیدا میکنه و چگونه در نتیجه ان پیدا کردن مفهوم حقیقی خود می تواند به تعمیرات ریشه ای بپردازد بد نیست در ابتدا صحبتی داشته باشیم در خصوص مسیر سیر تکاملی و هریک از امکانات ان و بعد در نتیجه به مفهوم تعمیر بپردازیم می دانیم ان چیزی که در دنیای امروز مفهوم اصلی ان را تشکیل می دهد عمکلرد هست همه موجودات زنده به اشکال مختلف این را انجام مب دهند و ادمی نیز بنا به ویژگی های خلقتی اش ان را به گونه ای متفاوت با سایر موجودات زنده انجام می دهد هر انچه که در ئنیای ماده مفهوم ماده رو به خود بگیرد مفهومی دارد تحت عنوان عمکلرد که این عمکلرد درواقع می تونه نوعی پاسخ باشه که در قبال تغییرات نشون میدن حالا این تغییرات می تونه در بعد ماده باشه و یا در بعد غیر ماده که اثر گذاری عمکلرد بر مبنای اون و متاثر از اون هست گفتیم اثر گذاری هر عمکلردی دارای دو بخش هست یک بخش غیر ماده که نظارت میکنه بر روی بخش ماده و دیگری بخش و یا بعد ماده هست که زمینه ساز و بستر ساز بعد غیر ماده و تاثیرات ان هست ما درواقع دو نوع بستر ساز داریم یک بستر ساز در بعد غیر ماده هست تحت عنوان قوه جست جو گرانه در ادمی که بستر سازی زمینه ساز عمکلرد ادمی رو ایجاد میشه که ریشه بعد غیر ماده داره و بخشی از اونه تحت عنوان قوه تفکر در ادمی که این دو یعنی قوه جست جو گرانه و نیز قوه تفکر در ادمی بعد غیر ماده تشکیل میدن و دیگری بستر ساز تاثیرات این دو هست تحت عنوان بعد ماده که اثر گذاری ان را تحت عنوان عمکلرد بروز میده بعد ماده دو نوع هست یکی انچه هست که کالبد جسم ادمی رو که روح وی را در بر گرفته تشکیل می ده و دیگری دنیای ماده اصالت و ریشه همه اینا ماده هست و هر دو بر مبنای این ویژگی محدود به زمان و مکان می باشند اما چگونگی تاثیرات ان ها بر هم می دانیم انچه که زمینه ساز یک عمکلرد را تشکیل می ده قوه تفکر در ادمی هست این قوه تفکر در ادمی نقش ویژه ای دارد مخصوصا در مسیر سیر تکاملی که شکوفا ساز تمام انچه هست که به عنوان موهبت در ادمی قرار گرفته و در نتیجه ان تکاملی حقیقی ادمی بنا به نیاز فطری وی در این مسیر رخ میدهد قوه تفکر در ادمی زمینه ساز عمکلرد ادمی هست و کار ان تجزیه و تحلیل هست و بر مبنای چنین ویژگی قوه به ادمی می دهد تحت عنوان قوه اختیار که وی را متمایز میکند از موجودات زنده و بر مبنای ان ادمی را سازنده ساز پایانامه زندگی خویش قرار می دهد این ویژگی در قوه تفکر در ادمی موجب شده ساختار کالبد ماده ان مغز ادمی باشد که محل ظارت بر تمام اعضای کالبد جسم ان نقطه هست اما این جایگاه مصداقی از تاثیر گذاری و تاثیر بخشی قوه تفکر ادمی هست در بعد غیر ماده بر بعد ماده و درواقع بنا به این موضوع قوه تفکر ادمی می تواند در حکم مبدل گری باشد که به برقراری رابطه بین کالبد ماده و بعد غیر ماده می پردازد اما تاثیر گذاری بعد غیر ماده بر بعد ماده تنها در یک نقطه نیست انچه که برای ما قابل لمس و ملموس هست تاثیر گذاری ان بر مغز ادمی هست اما انچه که در معنای حقیقی وجود دارهد نظارت و تاثیر گذای بعد غیر ماده بر بعد ماده هست این تاثیر گذاری حتی در نتیجه صورت نقص در بعد ماده ادمی نیز احساس میشود که این را نوع مسیری که ادمی طی میکند و درنتیجه ان به تکامل حقیقی میرسد یعنی مسیر سیر تکاملی تعیین میکند انچه که تفاوت ما را با سایر موجودات زنده به تثبیت میرساند درواقع در ساختار قوه تفکر در ان هاست قوه تفکر,0.992760180995,0.105024347406\r\nb92178ef605b594a,ᡥᠠᠨ ᡳ ᠠᡵᠠᡥᠠ ᠨᠣᠩᡤᡳᠮᡝ ᡨᠣᡴᡨᠣᠪᡠᡥᠠ ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ ᡳ ᠪᡠᠯᡝᡴᡠ ᠪᡳᡨᡥᡝ Han i araha nong <JOIN> gime toktopuha Manchu gisun i pul <JOIN> eku pit <JOIN> ghe,0.5,0.104945398792\r\ne5d444e501e048a8,geneoooooooblaoooblaoo booooooo oblaoooblaoooblaooblaaf ojhgikhqgki ral,0.6,0.104478758656\r\n7c1618b9ed3a4957,\"! ! ! उस पार न जाने क्या होगा ! ! ! <N> <N> इस पार अँधेरा हल्का था , उस पार न जाने क्या होगा ? <N> क्या वक़्त के घोड़ों पर फिरता एक सूरज उतर रहा होगा ! ! ! ! <N> <N> इस पार तो झरना सुखा था , और रेत की नदियाँ बहती थी ! <N> क्या उस पार ओस की बूंदों में अमृत रस बहता होगा ! ! ? <N> <N> इस पार तो सुनी गलियां थी , और सुने चौक-चौबारे थे ! <N> बहार से थे खुस बहुत , मगर अन्दर से हारे-हारे थे ! ! ! <N> क्या उस पार मन-तरंगों पर , आनन्दगीत बजता होगा ! ! ! ? <N> <N> इस पार अँधेरा हल्का था , उस पार न जाने क्या होगा ? <N> _ _ _ _ _ _ _ _ _ _ _ मी. सोलारसन्स!!!!!(संजीव सिंह चंदेल )\",0.630872483221,0.103999956223\r\n681bc89e54639362,* لا يحق لك أن تحاسبني في شيء لا يخصك، وإن كنت ترى هذه إهانة فأنت الوحيد الذي تشعر بها، وهذا رأيك الشخصي ولا يهمني، وأنا أرى أن مصر فوق الجميع، وهذا رأيي الشخصي ولا يحق لك التعقيب عليه ! انتهى !,0.928571428571,0.103923831247\r\ndb4b1437bd3ccec4,\"= = নো ম্যান্স ল্যান্ডের পরী কে লেখা গেদু চাচার খোলা by Gedu Cacar Kla Cithi ( গেদু চাচার খোলা চিঠি ) = = <N> <N> মা ফেলানি , <N> <N> তোকে লিখব লিখব করে লেখা হয়ে ওঠে না।কি লিখব বল?লিখব কেমন আছিস?স্বর্গে তোকে নতুন জামা দিয়েছে কিনা?কি কি খাবার ওখানে তোকে দেয়?আমি জানি আমার এই চিঠিটা তোর হাতে পৌছালে অভিমানে তুই কেঁদে দিবি ... বাংলাদেশ থেকে এসেছে বুঝলে তুই তোর মা এর কাছে ছুটে আসতে চাইবি।না মা এমনটা করিস না;ছোট্ট ফেলানি তোকে হারিয়ে আমরা এমনি অনেক লজ্জা আর কষ্টের মধ্যে আছি ... আর যদি এমন করিস তাহলে আমাদের কষ্ট আবারও বেড়ে যাবে । <N> ফেলানি,তুই হয়ত দেশের সেরা অর্থনীতিবিদের মত রেমিটেন্স কি জিনিস জানিস না,জানিস না এটা কিভাবে আসে ... কিই বা তার ব্যবহার ? আমি কিন্তু অবাক হয়ে গেলাম তুইও আমাদের কিছুটা রেমিটেন্স দিয়েছিস ... কারণ মা-বোন রেখে তোকেও সুদুর ভারতের কোথাও জিবনযাপন করতে হতো।তুই তো আর আকাশ পথে ভারতের শিমলায় বেড়াতে যাসনি ... যে আরামে ফাইভ ষ্টার হোটেলের মধ্যে শীতাতপ নিয়ন্ত্রিত কক্ষে খাওয়ার সুযোগ ছিল।তোকে তোর বাবার সাথে যেতে হয়েছে মই দিয়ে পার হয়ে ... যা আমাদের অবাক করে দেয়।ফেলানি তুই কি জানার সুযোগ পেয়েছিলি কখনও ভারতের সাথে আমাদের কি দহরম মহরম খাতির?আহারে!!!ঐ বিএসএফ আগে জানলে হয়ত তোকে নিজেই পার করে দিত পরপারে পাঠানোর আগে।তুই কাঁদিস না মা,তোর মত হাজারটা বড় ভাই মিশর সীমান্তে এখন রাত কাটাচ্ছে ... কেউ জানেনা তারা কবে দেশে ফিরবে।টাকার মায়া ভুলে তোর পাঁচটা বড় ভাই জাহাজে উঠতে চেয়েছিল ... পারেনি।আমরা জানিনা ওদের লাশ দেশে এসেছে কিনা ... ওদের মায়েরা ওদের বুকে লূটে পরে কাঁদতে পারছে কিনা ... ওদের বাবারা ছেলের মস্তবড় ভারি লাশটা এক বুক ব্যাথা নিয়ে বহন করতে পারছে কিনা ... দিতে পারছে কিনা কবরে এক মুঠ মাটি । <N> <N> মা ফেলানি,তোকে তোর লাল জামাটায় খুব মানায়ছিলরে ! ! ! ! ঠিক যেন লাল টুকটুকে একটা পাখি ... যে অকালে ঘর বাঁধার স্বপ্নে সীমান্ত পাড়ি দিয়ে দেশে আসতে চেয়েছিল ... স্বপ্ন ভেঙ্গে দিয়েছে আমাদের পরমাত্মীয় প্রতিবেশির বূলেট।ফেলানি , তুই বোধহয় আমার কোন গল্পে পড়া নায়িকার ছোট বেলার রুপ ... যার চোখেমুখে দুষ্টামির আভা খেলত ... অস্পষ্ট তোকে দেখে মনে হল আগের বারে চটপট পার হয়ে যাওয়া তুই মৃত্যুর যন্ত্রনার বদলে আটকে যাওয়া পোষাক খুলতেই বেশি ব্যাস্ত ছিলি।ফেলানি,তোকে আমরা তোর দুরন্ত কৈশর দিতে পারবো না,দিতে পারবনা স্কুলে যাবার জন্যে উৎসাহ ... লাল ফিতা চুরি মালা তো নাইই।তোর বাল্যবিবাহের কথা এখন আর বলব না ... যদি সেটাও দিতে পারতাম ... হয়ত দরিদ্র , অপুষ্টিতে ভোগা ফেলানির কোল আলো করে নতুন কেউ আসত।আচ্ছা ফেলানি আমরা কি তোকে কিছুই দিতে পারিনি?ভেবে দেখত একটু ... বেঁচে থাকলে হয়ত তুই বলতি বেশি বাহানা না করে বল কি দিছো? ... হ্যাঁ আমরা তোকে একটা নতুন পরিচয় <N> <N> দিছি ... তুই আমাদের অন্য গ্রহের ছোট্ট পরী ... আমাদের দেশের কেউ না ... আমাদের কেউ হলে নির্লজ্জের মত ওদের প্রতিক্রিয়া দেখার জন্যে বসে থাকেতে হত না।আমাদের না বলেই তোর মত একটা লাল নীল পরী অভিমান করে নো ম্যান্স ল্যান্ড থেকেই আবার চলে গেছে । <N> ফেলানি , তোর খুব কষ্ট হয়েছিলো তাই না মা? ... তীব্র ব্যাথা নিয়ে কাঁটাতার থেকে নিজেকে ছুটাতে?অনেকক্ষণ মাথা নিচে দিয়ে ঝুলে থাকাতে? ... ।মা রে,এদেশে আমার তোর মত দীন দরিদ্র মানুষের অকারণ মৃত্যুও খারাপ ... কারণ আইন কানুন আমাদের বেলাতেই কড়া।ছোট্ট পরী তোকে হয়ত কেটে টুকরা টুকরা করা হয়েছিল ... সুরত হাল এর জন্যে ... তারপর আবার সেলাই দিয়েছে।এ যেন মাটির পুতুল ভেঙ্গে তাকে আবার জুড়ে দেওয়ার প্রচেষ্টা।বেঁচে থাকতে আমরা তোকে একজন বাংলাদেশি নাগরিকের মত মৌলিক চাহিদার নিশ্চয়তা দিতে পারিনি কিন্তু মরে কেন গেলি সেটা জানতে আইন মেনে ফেলা হলো ঠিকই । <N> <N> ভাল থাকিস মা।বেহেস্তের ডাক্তাররা আমাদের ডাক্তারদের মত টাকার অভাবে থাকেনা তাই ওদের তোর সমস্যার কথা ঠিক মত খুলে বলিস।পারলে আমাকে স্বপ্নে চিঠি দিস ... দিস তোর মা কেও <N> <N> জানিসতো তুই এখনো ফিরে আসতে পারিস এই আশায় দরজায দাঁড়িয়ে থাকে সজল আখিতে।আজকে রাখি মা,তোর হেনা আপাকে লিখতে হবেযে ... আর তুই এবং হেনা একই জায়গায় থাকার চেষ্টা করিস ... তোদের হোষ্টেল সুপার কে বলে।পারলে সিমি,ইয়াস্মিন কে খুঁজে দেখার চেষ্টা করিস । <N> <N> ইতি , <N> তোর গেদু চাচা , <N> ১০-০৩-২০১১ ইং । <N> <N> নো ম্যান্স ল্যান্ডের পরী কে লেখা গেদু চাচার খোলা চিঠি । by Gedu Cacar Khola Cithi ( গেদু চাচার খোলা চিঠি )\",0.880882352941,0.103595724115\r\nedd332f52a0de928,ghfjtffffffgbn tfjhnffjg rfyjyfnjm jfnm,1.0,0.103515555945\r\ndbd4957da9fdb14f,\"* fx 미지수를 풀이하는 법,텐카메라맨 , fx ) ‘ 레드 라이트’ 음악방송 컴백무대 비교\",0.571428571429,0.103298625505\r\nc8d7505c43d760e9,\"dxgfcghjmb , k <SEP> fmjdhasgthujgfydszvfgyuihugytfdrtyghijkhgfgnhjmutrdesedfgyuiytrdgfnoiuytihugyftdrtftfkyghyduysgcbyuhjhhhhhhhhhhgbhjuggufyafgvwaygeufvbt <SEP> yawstdygujimaqzwerstdgyuhnjmkrlgfthyjuidfcgvhjbnkmlfdgrchujwazsexdrcftgvyhunjwazesrdtgfybhujimkszxdgfvhjnmkl , dvgfhjklxdcfgvhjnkm , ldsfghjkwsxedrctfvgybhujnmk , sdlfghjklsxdcfvghjnkml , swdyghukbjnkmlgf , uhjfvjnfvjishgiulgbiuskjhgisuhuihgiuhgoiuhsihiusghiusghisuhsiuhgiushiulhisughiushijkhbnkjfghsdiurgb vjhgsdiugsddfsfsdjhdfsjhdsfjihdshjdshbjfdshbjdsfjhfdjhbdsfjbhfsdhfdshjfdshfvsdhjdfkhsdhdasfukgdhkdfshdsfdsjbhdsfahjbfdshbjdsfjhdsafhbjdfsahbjdshbjdfhbdsfhjbdsfhjdsfhbjdsfhbjdfshbhbsdfhbdsdhshdfshdhsdfhjdsfhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <N> dxgfcghjmb , k <SEP> fmjdhasgthujgfydszvfgyuihugytfdrtyghijkhgfgnhjmutrdesedfgyuiytrdgfnoiuytihugyftdrtftfkyghyduysgcbyuhjhhhhhhhhhhgbhjuggufyafgvwaygeufvbt <SEP> yawstdygujimaqzwerstdgyuhnjmkrlgfthyjuidfcgvhjbnkmlfdgrchujwazsexdrcftgvyhunjwazesrdtgfybhujimkszxdgfvhjnmkl , dvgfhjklxdcfgvhjnkm , ldsfghjkwsxedrctfvgybhujnmk , sdlfghjklsxdcfvghjnkml , swdyghukbjnkmlgf , uhjfvjnfvjishgiulgbiuskjhgisuhuihgiuhgoiuhsihiusghiusghisuhsiuhgiushiulhisughiushijkhbnkjfghsdiurgb vjhgsdiugsddfsfsdjhdfsjhdsfjihdshjdshbjfdshbjdsfjhfdjhbdsfjbhfsdhfdshjfdshfvsdhjdfkhsdhdasfukgdhkdfshdsfdsjbhdsfahjbfdshbjdsfjhdsafhbjdfsahbjdshbjdfhbdsfhjbdsfhjdsfhbjdsfhbjdfshbhbsdfhbdsdhshdfshdhsdfhjdsfhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <N> dxgfcghjmb , k <SEP> fmjdhasgthujgfydszvfgyuihugytfdrtyghijkhgfgnhjmutrdesedfgyuiytrdgfnoiuytihugyftdrtftfkyghyduysgcbyuhjhhhhhhhhhhgbhjuggufyafgvwaygeufvbt <SEP> yawstdygujimaqzwerstdgyuhnjmkrlgfthyjuidfcgvhjbnkmlfdgrchujwazsexdrcftgvyhunjwazesrdtgfybhujimkszxdgfvhjnmkl , dvgfhjklxdcfgvhjnkm , ldsfghjkwsxedrctfvgybhujnmk , sdlfghjklsxdcfvghjnkml , swdyghukbjnkmlgf , uhjfvjnfvjishgiulgbiuskjhgisuhuihgiuhgoiuhsihiusghiusghisuhsiuhgiushiulhisughiushijkhbnkjfghsdiurgb vjhgsdiugsddfsfsdjhdfsjhdsfjihdshjdshbjfdshbjdsfjhfdjhbdsfjbhfsdhfdshjfdshfvsdhjdfkhsdhdasfukgdhkdfshdsfdsjbhdsfahjbfdshbjdsfjhdsafhbjdfsahbjdshbjdfhbdsfhjbdsfhjdsfhbjdsfhbjdfshbhbsdfhbdsdhshdfshdhsdfhjdsfhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <N> dxgfcghjmb , k <SEP> fmjdhasgthujgfydszvfgyuihugytfdrtyghijkhgfgnhjmutrdesedfgyuiytrdgfnoiuytihugyftdrtftfkyghyduysgcbyuhjhhhhhhhhhhgbhjuggufyafgvwaygeufvbt <SEP> yawstdygujimaqzwerstdgyuhnjmkrlgfthyjuidfcgvhjbnkmlfdgrchujwazsexdrcftgvyhunjwazesrdtgfybhujimkszxdgfvhjnmkl , dvgfhjklxdcfgvhjnkm , ldsfghjkwsxedrctfvgybhujnmk , sdlfghjklsxdcfvghjnkml , swdyghukbjnkmlgf , uhjfvjnfvjishgiulgbiuskjhgisuhuihgiuhgoiuhsihiusghiusghisuhsiuhgiushiulhisughiushijkhbnkjfghsdiurgb vjhgsdiugsddfsfsdjhdfsjhdsfjihdshjdshbjfdshbjdsfjhfdjhbdsfjbhfsdhfdshjfdshfvsdhjdfkhsdhdasfukgdhkdfshdsfdsjbhdsfahjbfdshbjdsfjhdsafhbjdfsahbjdshbjdfhbdsfhjbdsfhjdsfhbjdsfhbjdfshbhbsdfhbdsdhshdfshdhsdfhjdsfhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <N> dxgfcghjmb , k <SEP> fmjdhasgthujgfydszvfgyuihugytfdrtyghijkhgfgnhjmutrdesedfgyuiytrdgfnoiuytihugyftdrtftfkyghyduysgcbyuhjhhhhhhhhhhgbhjuggufyafgvwaygeufvbt <SEP> yawstdygujimaqzwerstdgyuhnjmkrlgfthyjuidfcgvhjbnkmlfdgrchujwazsexdrcftgvyhunjwazesrdtgfybhujimkszxdgfvhjnmkl , dvgfhjklxdcfgvhjnkm , ldsfghjkwsxedrctfvgybhujnmk , sdlfghjklsxdcfvghjnkml , swdyghukbjnkmlgf , uhjfvjnfvjishgiulgbiuskjhgisuhuihgiuhgoiuhsihiusghiusghisuhsiuhgiushiulhisughiushijkhbnkjfghsdiurgb vjhgsdiugsddfsfsdjhdfsjhdsfjihdshjdshbjfdshbjdsfjhfdjhbdsfjbhfsdhfdshjfdshfvsdhjdfkhsdhdasfukgdhkdfshdsfdsjbhdsfahjbfdshbjdsfjhdsafhbjdfsahbjdshbjdfhbdsfhjbdsfhjdsfhbjdsfhbjdfshbhbsdfhbdsdhshdfshdhsdfhjdsfhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",0.478723404255,0.102908399705\r\nd22d9961b3128449,buhgjhkjnklm kojy uguib kmn ut fnto,0.666666666667,0.102847160329\r\n910db746049f6ea0,= = הניחו לנו לנפשנו לא רוצים להיות משועבדים לכם בשום צור . או דרך החזירו לנו את חירותנו והפסיקו להתקיף אותנו בטרור הביולוגי שאתם משתמשים נפנה = = <N> <N> נפנה לכול גורם רשותי וביטחוני על מנת להצביע על האחראים לסיוט שאתם תוקפים אותנו הטכנולוגיות שלכם לא רצויות פה ונעשה הכול בכול מחיר על מנת להביא את האחראים לדין ! ! ! ראו הוזהרתם!!!פנינו למשטרה למבקר המדינה ונפנה לכול גורם על מנת לעשות לזה סוף שיעבדתם אנשים לקחתם חיים עיניתם וקניתם אותם אין לכם אלוקים אתם שייכים לקוחות הרשע נילחם בכם עד מוות או חירות מלאה ללא פשרות אתם לא רתוחים פה ! ! ! אתם פועלים בשיתוף הצדע במכון ויצמן ואנחנו בשם האמונה והאהבה אין לכם סיכוי ! ! ! איתן ג׳מיל <N> מורגלונס מוכרת כיום לציבור וניתן למצוא חומר רב על כך ברשת זיהינו את הטכנולוגיות שלכם שמופעלות על רמזים חיות עצים ובני אשם לא תצליחו לקלת אותנו הטרנזיסטורי הטרנזיסטורים הביולוגים שלכם והטכנולוגיות האלה מופעלות עלינו האזרחים והן פשע נגד האנושות ה,0.89696969697,0.102074210911\r\n564fa976421ed6a4,කටු පොල් වගා කිරීම සදහා අංශක60 ට වැඩි කදුකර බිම් මහා පරිමානයෙන් ඉදි කිරීම මෙී වන විට සිදුවෙී ලංකාවෙී වැඩිම වර්ෂාපතනයක් වාර්ථා කරන දැරණියගල වැනි ජල පෝෂක වතුපාලකයන් විසින් අත්තනෝමතිකව ඒළි කිරීම නිසා කළු රාජලියාගේ ප්‍රධාන වාසභුමියක් මෙී වන විටත් විනාශ කර අැත. <N> රාජලියන් ප්‍රදේශ වශයෙන් වෙන් ව ජීවත් වෙන අතර ඔවුන්ගේ වාසභුමිය කටු පොල් නිසා අද අහිමි වී අැත.ජීවිතයේ ප්‍රථම වතාවට කළු රාජලියන් 05 ඒකම ස්ථානයකදී දැකගත හැකි උවද ඔවුන්ගේ වාස භුමිය හෙට දවසට වලංගු නොවන බව දැනුන විට අැති වන කනගාටුව සුළු පටු නොවී.තමන් කරන විනාශය මහා ලොකු වීර ක්‍රියාවක් යැයි සිතන මිනිසුන් කටුපොල් සිටුවන්න බිම් ඒළිකල දිනය කහ පැහැති තීන්ත මගින් ගල් මතු පිට තබා අැත. <N> මෙී පිළිබදව අසල ගමෙී සමිතියක් මගින් ප්‍රදේශිය ලේකම් ගේ සිට මධ්‍යම පරිසර අධිකාරය දක්වා දැනුවත් කර අැත. <N> ඒහෙත් දිස්ත්‍රික් ලේකම් කාර්යාලයෙන් ප්‍රා.ලේ ට ලැබුණු ලිපියේ සටහන් වන්නේ පරීකෂා කර බලා දැනුවත් කරන ලෙසටය.බල්ලගෙ වැඩෙී බලු නකුටට කියනවායි කියමනක් ජනප්‍රවාදයේ අැති අතර ප්‍රා .ලේ තම කාර්යය ග්‍රාමනිළධාරීට පවරා අැති අතර ඔහු ඒය සොයා බලා කටයුතු කර නැත.ලිපි ගනුදෙනු සදහා කාලය නාස්ති කරමින් ජනතාව මුලාකරන රාජ්‍ය සේවය දැරණියගල රාජ්‍ය අනුග්‍රහය සහිත ජාවාරම් පොලක් කර හමාරය.දුප්පතා කොල්ල කන පෝසතාට කත් අදින රජ්‍ය සේවය දැරණියගල වෙනස් නොවන තැන ඔබෙී දරුවාගේ හුස්ම පොදත් අලවි කරන යුගය වැඩි අැතක නොවෙී;කොන්ද කෙලින් කරනු වෙනුවට බයාදුවෙන් පිට කොදු බිදගත් ලිං ගෙම්බන් සමග පරිසර සංරකෂණය පහසු නැත.කලිසන් අදින චීත්ත කාරයන් උඩහින් පල්ලෙහායින් බඩේ සිංහයා දමා ගත් පසු පෙන්නන සෙල්ලම් සියල්ල මවා පෑමක් පමණි.මතු පරපුරක් ගැන හෝ තම දරුවා තමන් විදි පරිසරයේ සුන්දරත්වය විදිණු කැමති නම් <N> කොදු කෙලින් කර ගන්න කාලයයි මෙී <N> ලලාන් වැවිලි සමාගම හිතන්නෙ අක්කර 1000ක් කටු පොල් වවන්න දැරණියගල(දේශිය ඔයිල් පාම් වගාව)තමයි මෙීකෙ නම;මුන් ජනතාව මුළාකරන්න ගොඩක් උපක්‍රම පාවිච්චි කරල.හරියට අැළි 07 ගහපු විදුලිබලාගාරේ නයා ගග වුණා වගේ.නයා ගග කිව්වට දැරණියගල කව්රුත් දන්නෙ නැ මෙී ගැන තොරතුරු හොයන්න ප්‍රාලේ කාර්යාලයට ගියාම තමයි දන්නෙ මෙීක ලෝකෙට සගවන්න කරපු වැඩක් කියල. <N> දේශීය ඔයිල් පාම් කතාවත් ඒහෙමයි.අපි සමග සාකච්ඡා කරපු ඒක නිළධාරියෙක් කියනව ජල උල්පත් හිදෙන ඒකේ වගකීම ඔහු බාර ගන්නවලු;ඒකියන්නෙ කටු පොල් හිටවනනෙ ඒයා පස්සෙ පරිසරය විනාශ වෙනකොට ඒයා වෙනවත්තක ඉදියි අපි කාට පැමිනිලි කරන්නද?බැරි වෙලාවත් ඊයෙ සාකච්චාවට අපි නොයන්න අහිංසක ගම්වාසීන් මුලාවෙ දාන්න ඔීන තරම් ඉඩ තිබුණ.ඔවුන් උපක්‍රමිකව ගොඩනගන්න ගියෙ අපි සංවිධානාත්මකව ගොඩ නගන වැඩසටහන ගමෙී මිනිස්සු මිලට අරන් ජනමතය වෙනස් කරන්න ගාල්ලෙ ඉදල අාපු සුපවයිසර් කෙනත් අැදගෙන නෑව ගානට. <N> අාචාර්ය ඒච්.ඒ.ජයන්ත ගුණතිලක-අංශ ප්‍රධානී/ඔයිල් පාම් පර්යේෂණ අංශය පොල් පර්යේෂණ අායතනය ලුණු විල ඉන්න අපේ රට විනාශ කරල තමුන්ගෙ බඩ වඩාගන්න නිළදාරීන් තමයි මෙීවට රුකුල් දෙන්නෙ.ජනතාවගේ නාෙදැණුවත් බව වාසියට ගකිමින් වතු සමාගම් වලට හිතකර අයුරින් ඉදිකල මෙම ව්‍යාපෘතිය මගින් බොහෝ පැති මග හැර හුදෙක් ව්‍යාපාරික ලබ ලබන සැලසුමක් ගොඩනගා අැත <N> <N> ‪#‎මිනිස්සු‬ නොදන්නා දේ # <N> ‪#‎ඒළවළු‬ තෙල් ලෙස මිලට ගන්නේ කටු පොල් බව <N> මිනිසුන් සිතා සිටින්නේ ඒළවළු තෙල් නිපදවන්නේ ඒළවලු වලින් බව <N> # ඒළවළු තෙල් වලට වඩා දේශීව නිපදවන පොල් තෙල් ගුණාත්මක බව <N> ‪#‎ශ්‬‍රී ලංකාවෙී කටු පාෙල් වැවීමේ අරමුණ වැඩි ලාභ ලැබීමට කටු පොල් ඵලය විදේශයට අලෙවි කොට අහිතකර අපද්‍රවයෙන් නිපදවෙන අහිතකර තෙල් අප දැනට රොඩු තේ පානය කරන්නා සේ භුක්ති විදීමට සිදු වීමයි <N> ‪#‎ඒක‬ භෝග වගාවක් විශාල භුමි ප්‍රමානයක වගා කිරීම තුල ජෙෙව සමතුලිතතාවය බිද වැටීම <N> ‪#‎වගා‬ කරන භූමි නිසි ක්‍රමවෙීදයකට ඒලි පෙහෙලි නොකිරීම නිසා අාවේණික ශාක හා සත්වයින් විශාල ප්‍රමානයක් වදවී යාම <N> ‪#‎ගණනය‬ කර මෙතෙකැයි කිව නොහැකි දිය උල්පත් ප්‍රමාණයක් සිදී යාම <N> මෙනිසා වතු නිරීක්ෂණ චාරිකා හෝ සාකච්ඡා තව දුරටත් අවැසි නොවෙී අක්කර 50 කට වැඩි ඔීනෑම ව්‍යාපෘතියක් වෙනුවෙන් පරිසර තත්ව වාරථාවත් ලබා ගත යුතු අතර දැරණියගල ජරාව යහමින් බුදින ඒ.ජීට පිං සිදුවෙන්න දැරණියගල වතු පාලකයන්ට මෙීවා අවැසි නැත රජයෙන් දෙන්නේ නමි අසුචි ගොඩක් හෝ හිස මත තබා ගැනීමට මොහු කැමතිය.ඒ.ජී.ටත් වතු පාලකයන්ටත් කියන්න අැත්තේ දැරණියගල උඹලාට ව්‍යාපාරික සථානයක් උනාට අපිට අපේ ගම නිසා කරුණාකර මෙී අහිතකර වගාවෙන් ඉවත් වෙන ලෙසය.නැතිනම් අපට කල හැකි තව බොහෝ දේ අැත ඒවිට වැඩිපුර රිදෙණු අැත. <N> කන්නෙලියට නාකියාදෙනියට සිදුවූ විනාශය දැරණියගලට අවැසි නැත මෙීක තිරසර සංවර්ධනය සොයා යන ගමනක් මිස යටත් විජිත වතු පාලන කුමවෙීදය නොවන බව මතක් කරමි,0.964285714286,0.101802317106\r\nc0c1f390139c3a4a,\"= = LOW OF HENRY = = <N> <N> स्थिर ताप पर किसी विलायक के निश्चित आयतन में विलेय गैस का दवयमान गैस के दाब के समानुपाती होता है,जिसके साथ वह साम्यावस्था मे है । <N> माना विलायक आयतन में विलेय गैस का ददवयमान m तथा साम्य दाब p है <N> । m समानुपात p <N> . m = kp <N> जहां k एक स्थराक है\",0.636363636364,0.101023868005\r\nde933109dc6b0c0a,chvghvghjcgvjhdgvfjzxhczxjhvjxdhcvxchjgvxchjgv kxchjgvgvhjxcgvjhcg jhdgjdghcjz jzcgjzhxcghjzcgjhxcgjz jhxcgzsjhcgjhz zxhgchjz zchj zgc zhjgc zhjxgck jzxcghzj cgjhzxcgkjzgcZXgcyzshzhjdgsuyg ydgt dtsuy adguy shgc udyg usygdcusyg uy dsaydguyasd UAKSYDF ys das dasyudyasdkYSJHYGhxcsgdhgjguxhgxfJKzxfjyfdhytSyawtsxfhjZFsKFtxtujSdfSGZdfsaty ytfHSfd dsT DV f htsdfsztgf jsygkYJDFJHSgf gvfdfdhfgvjfhjg is the code for,0.685714285714,0.100086365105\r\n51c052b60513fe82,第一課 冬休みが終わって <N> <N> 本课词汇 <N> 久しぶり（ひさしぶり）（名 形動）⑤〇 好久 <N> 暇（ひま）（名）〇 空闲 <N> 山崎（やまざき）（専）② 山崎（姓 ） <N> 菓子（かし）（名）① 点心 <N> 棚（たな）（名）〇 棚架 <N> サイドボード（名）④ 餐具柜 <N> グラス（名）① 玻璃杯 <N> 置く（おく）（他五）〇 放置 <N> 壁（かべ）（名）〇 墙壁 <N> 地理（ちり）（名）① 地理 <N> 貼る（はる）（他五）②〇 贴 <N> 滑る（すべる）（他五）②〇 滑 <N> 割る（わる）（他五）〇 割，打碎 <N> 怪我（けが）（名 自サ）② 受伤 <N> 新学期（しんがっき）（名）③ 新学期 <N> 学習（がくしゅう）（名 他サ）〇 学习 <N> 予習（よしゅう）（名 他サ）〇 预习 <N> 学部（がくぶ）（名）①〇 系 <N> 会議（かいぎ）（名）①③ 会议 <N> 入口（いりぐち）（名）〇 入口 <N> 告知板（こくちばん）（名）〇 布告牌 <N> 会議室（かいぎしつ）（名）③ 会议室 <N> 並べる（ならべる）（他一）〇 排列 <N> 壇（だん）（名）① 台 <N> 何号館（なんごうかん）（名）④ 几号馆 <N> 何号室（なんごうしつ）（名）④ 几号房间 <N> 番号（ばんごう）（名）④ 号码 <N> 山崎文雄（やまざきふみお）（専）③ （ 人名 ） <N> 聞こえる（きこえる）（自一）〇 听见 <N> ノック（名 他サ）① 敲门 <N> やあ（嘆）① 啊，喂 <N> 靴（くつ）（名）② 鞋子 <N> 構う（かまう）（自他五）② 介意 <N> 明るい（あかるい）（形）〇 明亮 <N> しかも（接）② 而且 <N> どうも（副）① 很，实在 <N> 恐れ入る（おそれいる）（自五）② 不好意思 <N> 片付ける（かたづける ） 整理 <N> 湯（ゆ）（名）① 开水，热水 <N> 沸かす（わかす）（他五）〇 烧开 <N> 版（ばん）（接尾）〇 版 <N> 古典（こてん）（名）〇 古典 <N> 小説（しょうせつ）（名）〇 小说 <N> 三国志（さんごくし）（専）④ 三国演义 <N> いや（嘆）① 不，不对 <N> 方法（ほうほう）（名）〇 方法 <N> チェック（名 自サ）① 核对 <N> 考え（かんがえ）（名）③ 想法 <N> 用意（ようい）（名 他サ）① 准备 <N> 皿（さら）（名）〇 碟子 <N> ご心配なく（組 ） 请不必担心 <N> ( 感谢 xzbaszy 输入课文和单词 ) <N> 本课课文 ： <N> 前文 <N> 冬休みが終わり、李さんと王さんは久しぶりに会いました 。 <N> 今日は暇なので、李さんは王さんを誘って留学生の山崎さんを訪ねました。山崎さんはとても親切な人で、友達が来る時には、いつも部屋をきれいに掃除しておいたり、お菓子を買ってきておいたりします。彼の部屋は広く、棚の上には家族の写真が飾ってあり、サイドボードの中には、誕生日に友達からもらったグラスが置いてあります。壁には、地理の勉強のための中国地図が貼ってあります 。 <N> 久しぶりに会ったので、三人は楽しく食事をしました。李さんは手が滑って、コップを一つ割ってしまいましたが、さいわい、けがはしませんでした 。 <N> 会話 <N> 王 ： 李さん、お久しぶりですね。お元気ですか 。 <N> 李 ： ええ、おかげさまで元気です。王さんは 。 <N> 王 ： 私も元気です。冬休みはどうでしたか 。 <N> 李 ： ええ、とても楽しかったですよ。明日、新学期が始まりますから、また忙しくなりますね 。 <N> 王 ： そうですね。李さんは新学期の準備をしましたか 。 <N> 李 ： ええ、教科書の学習内容を少し予習しておきました 。 <N> 王 ： それはいいですね。学部では明日会議があるようです 。 <N> 李 ： そうですか。どんな準備がしてありますか 。 <N> 王 ： 学部の入口には告知板が立ててあります。会議室には椅子がたくさん並べてあります。そして壇の上には大きな机が置いてありますよ 。 <N> 李 ： そうですか。どころで、王さん、今日はお暇ですか 。 <N> 王 ： はい、今日は何もすることがありませんけど 。 <N> 李 ： それでは山崎さんのところへ遊びに行ってみませんか 。 <N> 王 ： いいですね。遊びに行ってみましょう。山崎さんは留学生寮の何号館に住んでいるか知っていますか 。 <N> 李 ： ええ、はっきり覚えていませんけれど、行けばすぐわかると思います 。 <N> 王 ： 部屋は何号室だか覚えていますか 。 <N> 李 ： 部屋の番号も忘れてしまいました 。 <N> 王 ： やはり電話をかけて聞いておいた方がいいですね 。 <N> 李 ： そうですね。電話をかけて聞いておきましょう 。 <N> （ 留学生寮で ） <N> 王 ： 李さん、この部屋が山崎さんの部屋のようです 。 <N> 李 ： ドアに何と書いてありますか 。 <N> 王 ： ドアに山崎文雄と書いてあります 。 <N> 李 ： ごめんください。少しも聞こえないようですね 。 <N> 王 ： ノックをしてみましょう。（トン トン トン ） <N> 山崎：どなたですか 。 <N> 李 ： 李と王です 。 <N> 山崎：やあ、李さん、王さん、いらっしゃい。どうぞお入りください 。 <N> 李 ： お邪魔します。靴をはいたまま入ってもいいですか 。 <N> 山崎：はい、かまいません 。 <N> 王 ： 明るくていい部屋ですね 。 <N> 李 ： しかも、きれいに掃除してありますね 。 <N> 山崎：今日は特に丁寧に掃除したんです。ふだんはそれほど丁寧にしません 。 <N> 李 ： それはどうも恐れ入ります。友達が来る時はいつもこう片付けるのですか 。 <N> 山崎：ええ、いつも掃除をしておきます。テーブルの上に花を飾っておきます。また、お湯を沸かしておいたり、お菓子を買ってきておいたりします 。 <N> 李 ： そうですか。棚の上に飾ってある写真は何ですか 。 <N> 山崎：あれは私の家族の写真です 。 <N> 王 ： サイドボードの中に置いてあるグラスは中国の物ですか 。 <N> 山崎：はい、誕生日に友達からもらったものです 。 <N> 李 ： 壁に貼ってあるのは中国地図ですね 。 <N> 山崎：ええ、中国の地理を勉強するために貼ったんです 。 <N> 王 ： 本棚に並べてある本は何ですか 。 <N> 山崎：どれですか 。 <N> 王 ： あれです 。 <N> 山崎：ああ、あれですか。あれは日本語版の中国古典小説です 。 <N> 李 ： そうですか。このごろ、中国の小説を読んでいるんですか 。 <N> 山崎：はい、「三国志」を毎日少しずつ読んでいます 。 <N> 李 ： もう読んでしまいましたか 。 <N> 山崎：いや、この小説は長いですよ。それにちょっと名前が難しいですね。読んでいると、だれがだれだか分からなくなります 。 <N> 王 ： 私はいい方法を知っていますよ。小説に出てくる人の名前を書いておいて、だれがだれだか、チェックしながら読むんです。そうすれば、きっとよく分かるようになります 。 <N> 山崎：それはいい考えですね。私もやってみましょう。では、そろそろ時間ですから食事の用意をしましょう 。 <N> 李 ： はい、どうしますか 。 <N> 山崎：椅子を並べておいてください。それからお皿やコップ、おはしを並べておいてください 。 <N> 李 ： あっ、すみません 。 <N> 山崎：どうしました ？ <N> 李 ： コップを割ってしまいました 。 <N> 山崎：どうしたんですか 。 <N> 李 ： 手が滑ってしまったんです 。 <N> 山崎：手はけがしませんでしたか 。 <N> 李 ： 大丈夫です。ご心配なく 。 <N> 山崎：じゃあ、一緒に楽しく食事をしましょう 。 <N> 李 ： テレビをつけたままでよろしいですか 。 <N> 山崎：はい、そのあとすぐニュース番組ですから、しばらくそのままにしておいてください 。 <N> ファクション用語 <N> お祝い <N> Ａ お誕生日おめでとうございます 。 <N> Ｂ どうも、ありがとうございます 。 <N> 明けまして、おめでとうございます 。 <N> ご結婚お祝い申し上げます 。 <N> ご入学お喜び申し上げます 。 <N> 皆さんのご健康をお祈りします 。 <N> 课程讲解 <N> 一、动词ておく <N> 书上写的是“动词准备体由动词连用形后续“ておく”构成。”赋予ておく以动词准备体的语法成分。不过我不是很支持大家去背这些是什么体，什么体，日语里面这些体的数量足以让大家头晕了。书上这么写是出于语法研究的目的，以表现得正规。但是我们必须得明白，在考试的时候，不可能出填空题“问：某某某是_____体”的，和日本人交流，也不可能被他们问，这是什么语法成分。所以！我们只需要明白这几个假名表示的是什么意思即可 。 <N> 那么，我们就来看在使用动词ておく的时候，究竟可以表达出什么样的含义呢 ？ <N> 1、为了准备某种目的而事先做好准备工作 。 <N> 来看个例句先 ： <N> eg 。 <N> 做午饭的时候把晚饭也一起作了，然后才去上班 。 <N> 在这里我们可以明显的看到，作っていおいて表达出了处于可能是由于晚饭来不及作等原因，而事先做好了晚饭这个动作（作っていおいて是作っておく的接续形式，表示的是和后面出去上班的动作先后顺序 ） 。 <N> <N> 2、表示让某种状态继续保持下来 。 <N> eg 。 <N> 请把这个作为纪念（品）留下来吧 。 <N> 这里就表达出了把保留这个动作一直持续地作下去的意思 。 <N> <N> 说老实话，这个用法对于非专业人士来说，要灵活的运用并不是件容易的事情。可能只有在日后更多的使用中来掌握了 。 <N> <N> 二、动词てある <N> 书上赋役了这个用法“动词存续体”的语法含义。很不幸的，该用法在这课里面和前面的ておく一起出现，而且含义十分接近，这就直接导致了很多人弄混淆这两个用法 。 <N> 我们来看てある的用法吧 。 <N> <N> 这也可以表示两种用法（-_- # ） <N> 1、表示某事物保持某人动作的结果所造成的状态 。 <N> eg 。 <N> 桌子上摆着餐具 。 <N> 表达桌子上一直保持这有餐具这个状态 。 <N> <N> 2、表示事先做好了某事。（和ておく一比，该晕了吧 ？ ） <N> eg 。 <N> 事先约好了吧 ？ <N> <N> 在我学习这一课的时候，这两个语法也困扰了我很久，在很大的程度上也打击了我以后对日语学习的激情。第一册期末考试的时候，我还考了94分，全班第四，但是此后就每况愈下，沦落到70多了 … … 唉。扯回正题，てある和てお,0.450434782609,0.0997777862588\r\nbd4077d68c000d49,kjoijqoijpojerpy <SEP> ojkjdlkjlij <SEP> aloiuliujioh <SEP> oaighpiup <SEP> oius <SEP> phiu j <SEP> piou <SEP> pofuposajo <SEP> pijsaipogujigohgis ij gskijgpsifjgp <SEP> fgj <JOIN> dpo odj <SEP> gjagpodfjgo <SEP> pfjgk podi ' pioj <JOIN> spo o <SEP> pfuoeaf jmgpo dikjgopjasopgjspovujsg pid <JOIN> ugo <SEP> igjogpuoui ' god <JOIN> igpouogfjgoefdug jod gfoj <SEP> podugpojdhpodjf phgofjgikpodfgidofguso <SEP> pgjj <SEP> pdjagpofuogodpfjgopiklhjolpi <SEP> nflsgkju <SEP> fkj <SEP> doig jfg <JOIN> oid gijgo <SEP> sigjoifgujsglkiuj fd gspgoupgpsdogipofgupogujoas foi <JOIN> gfo <SEP> psuig <SEP> posugpo oigsp <SEP> ogidpogjgipojdfpoiguspoiguosdigus ; lakjaoigu <SEP> o isigdkulg <SEP> udih g <SEP> oaiuhsdofiuo <SEP> disfhso <SEP> dfihsdf ifhsoifusifhsfoisy <SEP> igh <JOIN> dfid <SEP> f ids <JOIN> hfs <SEP> oisd <JOIN> jfh <SEP> ofi <JOIN> shg,0.371681415929,0.0989082905611\r\n9c7dbbf479df2066,دار خديجة بوكصا فى المغرب . الرباط. الصخيرات,0.875,0.0986999948653\r\n5195776fe0d27843,hoaHTOAUHROGNHN OIRJGAH osaerokgjnreijht saorhgoshiudrhgoshlhasjrhguthslsierh er <SEP> hou <JOIN> hgh nso <JOIN> uhg souyfrg iuerh ask <JOIN> lde alk a <SEP> slsk <JOIN> djf a <SEP> sld <JOIN> kfj a <SEP> sldkfjktook,0.258064516129,0.0985479109036\r\n8d1e2e001527737d,नाश्ते मे अंडा खाने का सही तरीका <N> <N> सुबह नाश्ते मे अंडे को दूध में मिला कर पीना सबसे सही है आपके स्वास्थ्य के लिए,0.923076923077,0.0983108692842\r\nc3954292957f12d9,fgfhjhb bhgb uyt <JOIN> guyy uug,0.666666666667,0.0980291019226\r\n75f794a20e599d59,dogfggfgfghfhgfghfghfgfhgfhgfghfghfghfgfgggggggggggggggggggggggggggggfffffffffffffffhhhhhhhhftgfrgftyfrctyvhrfc vnyhjtfcr vnm <JOIN> yjt rfcmhuy <SEP> trfc nmu <SEP> yfrc bynhtgvck fr ing,0.5,0.0979530989361\r\n393ac6d367e74c07,= = ಕನ್ನಡ ರಾಜ್ಯೋತ್ಸವದ ಶುಭಾಶಯಗಳು = = <N> <N> ನಿಮಗೂ ಸಹ ಕನ್ನಡ ರಾಜ್ಯೋತ್ಸವದ ಹಾರ್ದಿಕ ಶುಭಾಶಯಗಳು ನವೀನ್,0.625,0.0968938363199\r\ned0c4a811c4d686e,اگر چند نفر ایرانی فعال در ویکیپیدا بودند ما اصلا نیازی نداشتیم که در همان جمله اول نظامی گنجوی ننویسیم که شاعر پارسی .. متاسفانه ایرانیان خودشان همت نمیکنند ... و فکر میکنند چهار پنج نفر باید همه کارها را انجام بدهند ..,0.93023255814,0.0966908385787\r\n43b47e02874e1102,noiazomai - news <N> <N> Μήτρα με γέννησε αρχαία Μακεδόνισσα ..... <N> <N> Είμαι Έλλην το καυχώμαι ! Ξέρω την καταγωγή μου. Κι ελληνική ψυχή μου είναι λεβεντιάς πηγή. Η δική μου η πατρίδα του πολιτισμού κοιτίδα !,0.736842105263,0.0966444448963\r\n89e1b0cd23d7463e,Us nhdfnvihvfd ihodfbgudgdivhejsfgsuyiefhuhedIOSDbfUYIwegfiihsrzfje uhixxzbuczxhc dxc <JOIN> jkb dcszjnfdxz ojfbsdzojhbvyd <SEP> sbu <SEP> ysdbfiuheszfbiuyesbfuy <SEP> aewfewugvf <SEP> bsfzduudsz <SEP> gbu <JOIN> gdb <SEP> yffs <SEP> db <SEP> y <SEP> b <SEP> d <SEP> yffbffdsy <SEP> bfdsf <SEP> y <SEP> fdsdibvd <SEP> d <SEP> yfgeudiyfbiufew <SEP> r <SEP> y <SEP> w <SEP> rbvdd gerf g <SEP> vdes dealers swh dddddccccccc c c c c c cccccccccccccccccccaaaaaaaarrrrrrrrrrrrsssssoooonnnn n,0.276923076923,0.0961441491373\r\n6dd56c3ded371c1f,NIKO EPE <JOIN> IGON ! ! ! ! ! <N> Απίστευτες βλακείες γραφουν καποιοι χρήστες για τον Μακεδονικο Αγώνα και για τον Γερμανό Καραβαγέλλη. Προσπαθησα να διορθόσω λίγο την κατασταση αλλα δεν ξέρω εάν τα κατάφερα ! ! παρακαλώ βοήθεια ! !,0.690476190476,0.0958341454316\r\n63950e8332af9ccd,ده توانن سود له وبابه تانه وه ربكرن كه تايبه ت به به شى نه وت بلاوده كمريته وه له كه ل نا ونيشانه كه ي,1.0,0.0957348899107\r\nf2ef8ce88d11cb6a,مسئله مهم ديگه در مورد مسئله فلطسين هست مسئله ادعاي ترکيه از تيره شدن روابط خود با امريکا در قبال حقيقت گويي آمريکا هست که مهم مي دونم اول اين مسئله رو عنوان کنم البته ضمن تشکر از سياست درستي که جهت بستن دهان کسانيکه بهشون مدام تيکه شيطان و ادم کش رو ميزنند اين کارش براي بستن دهانش خوب بود.اما حالا در اين مورد يکسري صحبت ها هست که لازم مي دونم در پيج اقاي اوباما مطرح کنم چون اين سياست از يک لحاظ خوبه اما از يک لحاظ مي تونه ضربه به سياست نوين آمريکا بزنه حالا در موردش صحبت خواهم کرد.اما مسئله فلطسين که به عنوان بخش آخر مباحثه امروز مي دونم بگم البته در اين مورد يکسري صحبت ها هست که لازم مي دونم در پيج اقاي اوباما مطرح کنم ببينيد همون طور که گفتم هر عملي يک عکس العملي داره متاسفانه و متاسفانه اساس کار مسئولين دولت ها مبنتي بر پايه لج و لج بازي شده در طي جريان فلسطين من فقط مقصر اسرائيل رو نمي دونم بلکه درصدي مقصر خود فلسطين هم هست البته نه مردمش چون من مدافع مردم هستم بلکه مسئولين دولت بايد دولت فلسطين اينو قبول کنه و اگه حزب الله بخواد عليه من حرف بزنه من جوابشو خواهم داد مسئولين اوليه فلسطين اشخاص فوق العاده بي کفايتي بودن که جرمشو مردم بيگناه فلسطين کشيدن که من هرگز نديدم اين دولت از مسئولين سابق خودش چيزي بگه و مدام حرف از زير سلطعه گرفتن اسرائيل ميزنه هميشه اينو بهتون بگم که بدونيد تاريخ ثابت کرده اگه مسئولين دولت آنچنان سياستمدار باشن که بتونن جلوي زير سلطه گرفتن حتي با يک عدد ناخن گير هم مي تون از کشورشون دفاع کنن ممکنه مسئولين از اين حرف من بخندن اما من واقعيت رو دارم ميگم ممکنه بگيد سياست اون موقع مبتني بر جنگ بوده اما من ميگم مطمئن باشيد هر جنگي با يک جرقه همراه هر تسلطي با يک اشتباه همراهه اون اشتباه در عملکرد سياسي مسئولين خودشو نشون ميده براي همين اينو مطمئن باشيد مسئولين سابق فلسطين هم مقصر بودن اينو نگفتم که خاطرات گذشته رو زنده کنم بلکه عنوان کردم که بگم فلسطين بهتر به جاي تکيه به ظاهر در شرف يک سياست نوين و سازندگي باشه البته در مورد مسئله ازادي زندانيان و مسائل عدم مداخله مجددا در پيج اقاي اوباما صحبت خواهم کرد اما اينو بدونيد يکي از دلايلي که اسرائيل به تعهداتش پايبند نيست اينکه دولت فلسطينت به خاطرات گذشته اش از جنبه پايبندي خصومت که ميشه عالمي بر بدتر شدن اوضاع حاکم بر جهان پايبنده خب طبق اين تعريف مي تونيم يه نتيجه کلي بگيريم اونم اينکه در مسئله فلسطين و اسرائيل عدم اعتماد وجود داره چيزي که يادم مياد در اوايل صلح نامه ايران و امريکا زمانيکه يک شکست در قدم اول اين صلح خوردم داشتم و اما يک تفاوت داشت آمريکا دو سه تا حسن نيت نشون داد اما ايران مدام پايبند خاطرات گذشته بود و بعد آمريکا مسئله هسته اي رو کشيد وسط روابط بدتر شد اما در اينجا هيچ يک از دولت ها به قول عاميانه از خر شيطون پايين نميان علتش هم بي اعتمادي هست من معتقدم اگه يک حسن نيت در اين مسائله ايجاد بشه شايد تا حدي اوضاع رو بهتر بکنه البته اين بستگي به يک دندگي دو طرف هم داره که تا چقدر ميخوان فقط حرف خودشون به کرسي بشينه مسئله ديگه در ارتباط با اقدام درست در جهت سد سازي رود هيرمند و درخوايت از افغانستان براي پايبندي اين موضوع هست اشاره کنم خب خوبه در مورد مسائل منافع ايران مسئولين کشور نظارت خوبي دارن اين عاليه در کنار اين توجه ميخوام توجه به مسائل واردات و صادرات هم بيشتر بشه همون طور که قبلا گفتم براي پيشبرد بيش از پيش ايران در زمينه توليدات و تکنولوژي و مخصوصا مواد اوليه شرط لازم دادن امکانات کافي به قشر توليد کنند و کارامد و مخصوصا جوان در کنار آموزش هاي لازم که در مورد اين آموزش ها خيلي صحبت کردم در مورد فضاي آموزشي کاهش محدوديت هاي آموزشي و فيلتر سازي و ديگه اينکه کاهش واردات به کشور جز درموارد ارز و مبادلات ارزي جهت بهبود بيش از پيش اقتصاد کشور.اينا مباحثي بود که در مباحثه قبل کاملا بهش اشاره داشتم و حال مسئله ديگه در مورد هشدار سر رده القاعده در حمله به آمريکا همين مونده ديگه اين افراد بيان و با کشيدن حمله به آمريکا اوضاع جهان و ميزان کشت و کشتار رو ببرن بالا يکي از دلايلي که ميگم جنگ ايجاد ميشه همين اقدامات به دور از فکر و در نتيجه انتقام جويي از سوي چنين اشخاصي هست در طي جنگ هاي گذشته که اونم در نتيجه اشتباهاتي بود از جانب دو طرف ببخشيد حلوا پخش نميکنن که بالاخره کشت و کشتاري ميشه از جانب هر دو طرف اگه من بيام اونو به رخ بکشم ديگه هيچي ديگه هر سال بالغ بر هزاران جنگ بايد در سراسر جهان رخ بده بعد شمار کشته ها روز به روز بيشتر از اين گونه اشخاص خواستارم جو جنگي براي بيشتر شدن اوضاع نابسامان حاکم بر جهان و استفاده از سياست جنگ به جاي سياست کلام جهت کشت و کشتار بيشتر استفاده نکنند. بهتر اين جمله رو هشدار بدم که هواي رفتار خودشونو داشته باشن والا به جرم بر هم زدن بيشاز پيش اوضاع حاکم بر جهان و ايجاد جرقه جنگ عملکردشان رو حتما به سازمان حقوق ملل خواهم گفت حالا از کسانيکه پشت سر اين سازمان ادعاي اينو ميکنند که آمريکا تحريکشان ميکنه در متن اول مباحثه گفتم الان هم ميگم سازمان حقوق ملل مدافع صلحه اگه هم در مواردي سکوت ميکنه اين يک نوع سياست جهت اروم شدن اوضاع وال اگه پاي صحبت رو وسط بکشه ممکنه هزاران مشکل ايجاد شده که مي تونه بدتر از حالت سکوت بشه ايجاد ميشه فکر کنم در متون مباحثه قبل خيلي کلي بهش اشاره کردم خب اين از مباحثات امروز .انشالله از فردا وارد ادامه مباحثات خواهيم شد.,1.0,0.0956611352898\r\nf6bc537d1b1ddc4e,= = vffhbvugyshbuydghsfgsGHnghdgbb = = <N> <N> gf hjdsgkjv vhuhbgeg ug hgueahgy guheughihguihguegoirug guerhgiuhg ghgjghtpihjwopsuen jjhie <SEP> oe <N> jhsjhini <JOIN> hos <N> sjgirehsgeroisghiuehag <N> bjbiobiuhb <N> jhgbskhb <N> gfhiobnxlgb <N> kgjhxiojh,0.4375,0.0956357967634\r\n92a722aae509618f,\"இந்தியத் திருநாட்டின் 66-வது சுதந் திரத் திருநாளில் காஷ்மீர் முதல் கன்னியா குமரி வரை விரிந்து பரந்த நமது நாட்டின் உற்சாகத்தோடும் , மகிழ்ச்சியோடும் மார்க் சிஸ்ட் கம்யூனிஸ்ட் கட்சி , தன்னையும் இணைத்துக் கொள்கிறது என கட்சியின் மாநிலச் செயலாளர் ஜி.ராமகிருஷ்ணன் கூறியுள்ளார். விடுதலைப் போரில் , உயிரை அர்ப்பணம் செய்த எண்ணற்ற தியாகிக ளுக்கும் , உழைத்த வீரர்களுக்கும் , வீராங்க னைகளுக்கும் வீர வணக்கத்தையும் மார்க்சிஸ்ட் கட்சி தெரிவித்துக் கொள் கிறது என குறிப்பிட்டுள்ளார். <N> <N> சுதந்திர தினத்தையொட்டி அவர் விடுத்துள்ள வாழ்த்துச் செய்தி வருமாறு:- <N> <N> நாட்டு விடுதலையோடு , பசி - பட்டினி - வேலையின்மை - கல்வியின் மை - சாதிய , பாலின ஒடுக்குமுறை போன்ற கொடுமைகளிலிருந்தும் விடுத லை கிடைக்கும் என்ற கனவு கோடானு கோடி மக்களுக்கு இருந்தது. 65 ஆண்டு கள் உருண்டோடிவிட்ட நிலையில் , கனவு நனவானதா என்கிற கணக்கு பார்த்தால் , பெரும்பான்மை மக்கள் துன்பத்தில் உழல் கிற நிலைதான் விடையாக முன்னுக்கு வருகிறது. நாடு ஓரளவுக்கு முன்னேறி யிருக்கிறது. ஆனால் முன்னேற்றத்தின் பலன் , பெரும் பகுதி மக்களின் வாழ்க்கை சிக்கல்களைத் தீர்க்க உதவவில்லை. ஆட்சியாளர்களின் கொள்கைகள் , அவர் கள் தேர்வு செய்த பொருளாதாரப் பாதை , குறிப்பாக நவீன தாராளமயப் பாதை , அதிகமான டாலர் கோடீஸ்வரர்களையே உருவாக்கியிருக்கிறது. அதாவது , ஒளிரும் இந்தியா ஒரு புறம் , உழலும் இந்தியா மறு புறம் என்பதுதான் நிலை. விடுதலைப் போராளிகளின் கனவுகள் தவிடு பொடி யாக்கப்பட்டுள்ளன. கொடும் விலைவாசி உயர்வும் , மெகா ஊழல்களும் வாடிக்கை யாகிவிட்டன. கறுப்புப் பணம் கொழிக்கி றது. விவசாயம் , நெசவு உள்ளிட்ட தொழில் கள் நசிந்து கொண்டு வருகின்றன. மோச டியான வறுமைக்கோடு போடப்பட்டு , உணவுப் பாதுகாப்பு வளையத்திலிருந்து , நகர்ப்புற கிராமப்புற ஏழைகள் சுமார் 50 சத விகிதம் பேர் விலக்கி வைக்கப்பட்டுள்ள னர். உழைப்புச் சுரண்டல் அதிகரித்து , கோடிக்கணக்கான தொழிலாளர்கள் , வாழ்க்கை நடத்த வழியின்றி தவித்துக் கொண்டுள்ளனர். இன்றைய மத்திய-மாநில அரசுகளின் நவீன தாராளமயக் கொள்கைகளின் காரணமாக , தொழிற்சங்க உரிமைகள் நசுக்கப்படுகின்றன. பெண் கள் , குழந்தைகளின் மீதான வன்முறையும் , சாதிய வன்கொடுமைகளும் உச்சகட்டத் தில் இருக்கின்றன. மாற்றுத் திறனாளிகள் , திருநங்கையர் உரிமைகள் மறுக்கப்படு கின்றன. <N> <N> தாராளமயக் கொள்கைகள் காரணமாக , பன்னாட்டுக் கம்பெனிகள் , பல்வேறு துறைகளை சீரழித்தது போதாதென்று , சில் லரை வர்த்தகத் துறையின் கதவுகளை முழுமையாகத் திறக்கவும் நிர்ப்பந்தித்துக் கொண்டுள்ளன. உயர் கல்வியில் அந்நியப் பல்கலைக் கழகங்கள் கொல்லைப்புறமாக நுழைய ஏற்பாடு நடக்கிறது. அமெரிக்க ஏகாதிபத்தியத்துடன் கேந்திரமான கூட்டு என்பது , இந்தியாவின் இறையாண்மைக் கும் கேடு விளைவிப்பதாக இருக்கிறது என்பதை நடப்பு நிகழ்வுகள் நிரூபித்துக் கொண்டிருக்கின்றன. ஏகாதிபத்திய எதிர்ப்புணர்வை இன்றைக்கும் தொடர்ந்து முன்னெடுத்துச் செல்ல வேண்டியிருக் கிறது. <N> <N> இருபெரும் முதலாளித்துவ அணிக ளான , காங்கிரஸ் தலைமையிலான ஆளும் ஐக்கிய முற்போக்கு கூட்டணி மற்றும் பாஜக தலைமையிலான தேசிய ஜனநாயக கூட்டணிக்கு மாற்றான இடதுசாரி ஜனநா யகக் கொள்கைகளை முன்னை விட தீவிர மாகக் கொண்டு செல்ல வேண்டியிருக்கி றது. உண்மையான மாற்றாக இடதுசாரிகள் இருக்கிறார்கள் என்பதை மக்களிடமி ருந்து மறைக்கும் அரசியலை , கார்ப்பரேட் ஊடகங்கள் செவ்வனே செய்து கொண்டி ருக்கின்றன. அனைத்து பிற்போக்கு சக்திகளும் ஒன்றுசேர்ந்து , மேற்கு வங்கம் , கேரளா , திரிபுரா போன்ற வலுவான இடது சாரி தளங்களை பலவீனப்படுத்தும் முயற்சிகளில் இறங்கியுள்ளன. இடதுசாரி அரசியல் வலுப்படும் போது தான் , மக்களின் உரிமைகள் பாதுகாக்கப்படும். <N> <N> கூட்டுச்சேரா கொள்கை , மதச்சார்பின் மை , தேசத்தின் இறையாண்மை மற்றும் பன்முகப் பண்பாட்டுக் கூறுகளை பலப் படுத்தவும் , ஜனநாயக உரிமைகளுக்கு எதிரான தாக்குதலை முறியடிக்கவும் , சமூக நீதி , தீண்டாமை ஒழிப்பு , பாலின சமத்துவம் போன்ற உயரிய கோட்பாடு களை உயர்த்திப்பிடிக்கவும் , முற்போக்கு மற்றும் ஜனநாயக சக்திகள் தொடர்ந்து போராட வேண்டியுள்ளது. ஏழை உழைப் பாளி மக்களின் ஒரு பகுதியினரை இன் னொரு பகுதியினருக்கு எதிராகத் தூண்டி விடும் அடையாள அரசியலுக்கு இரை யாகி விடக்கூடாது. அநீதிக்கு ஆளாகும் அனைத்துப்பகுதி மக்களின் ஒற்றுமை யின் அடிப்படையில் நடைபெறும் போராட் டமே அனைவருக்கும் விடுதலை அளிக் கும் என்று மார்க்சிஸ்ட் கட்சி உறுதிப்பட சுட்டிக்காட்டுகிறது. முழுமையான மனித குல விடுதலை இந்தச் சுரண்டல் சமூக அமைப்புக்குள் ஒரு போதும் கிடைக்காது. சோஷலிசமே மனித குலத்தின் ஒளிமய மான எதிர்காலம் என்கிற உணர்வு , உல கெங்கும் மீண்டும் எழுந்து கொண்டி ருக்கிறது. <N> <N> இந்த சுதந்திர நன்னாளில் , அனைத் துப் பகுதி மக்களையும் ஒடுக்குமுறையி லிருந்தும் , சுரண்டலிலிருந்தும் பாதுகாக்க மார்க்சிஸ்ட் கம்யூனிஸ்ட் கட்சி உறுதி ஏற்கிறது. 66-வது சுதந்திர தின நன்னா ளில் , மார்க்சிஸ்ட் கட்சி தமிழக மக்களுக்கு சுதந்திர தின நல்வாழ்த்துக்களை தெரி வித்துக் கொள்கிறது.\",0.878326996198,0.0954395208905\r\n9bccbbb1e81cca6c,= = 차단을 빨리 해제하기 위하여. = = <N> <N> 왜 차단해 개새끼야 ! ! ! !,0.411764705882,0.0951489784044\r\naf20109d96d5df7b,= = سلام علیکم = = <N> <N> من تا اطلاع ثانوی امکان فعالیت در مقاله را ندارم. اگر خیلی کار باقی مانده اگر می توانید به من بگویید تا روی آن کار کرده و برایتان ایمیل کنم. ورنه هر طور صلاح می دانید جمعش کنید.,0.869565217391,0.0946269620172\r\n73b0d46b43810506,يوليا عودت الى هذه الصفحة بعدما شاهدت اجمل ابتسامة فى الدنيا يارب تكون لى بصفة خاصة الى ما احيا. احبك حسين,1.0,0.0946151380181\r\n469d7ed13a4b3c20,\"kdzljbz , nflzfk , i ma bjt z , kuhrh jatlu hjatker kayli <JOIN> safm\",0.4,0.0941732302479\r\n02ec95bbd8503d26,李白 月下獨酌 中古漢語朗讀 <N> * 李白 將進酒 中古漢語朗讀 <N> * 李白 靜夜思 中古漢語朗讀 <N> * 杜甫 佳人 中古漢語朗讀,0.666666666667,0.0938889559486\r\nfd298ad071c03bd4,\"Khp <N> <N> पति पेप्सी को सामने रख के उदास बैठा था <N> पत्नी आयी और पेप्सी पी गयी और बोली <N> आज आप उदास क्यू है ? <N> <N> पती - आज तो दिन ही खराब है ! <N> सुबह तुमसे झगडा हो गया , रास्ते में कार ख़राब हो गयी , <N> ऑफिस लेट पहुँचा ! बॉस ने नोकरी से निकाल दिया .. <N> अब सुसाइड करने के लिए पेप्सी में जहर मिलाया था .. <N> वो भी तुम पि गयी 😳 😳 <N> 😂 😅\",0.784090909091,0.0935412715932\r\n4c44ec9f8532ee22,Hivra Dam Khadak <JOIN> deola,0.6,0.0932064455498\r\n0e4ce7b45bf908b9,سیاهه فعالیت را از اینجا می توانید ببینید اما اجمالا آریجانی از حدود ۱/۵ پیش و در اعتراض به تبعیض و استاندارد دوگانه ویکی رو ترک کرده، امیر ابراهیمی هم از همون زمان کناره گیری کرده و برگشتن خودشو منوط به رسمی شدن ویکی کرده، موسی هم هر ماه چند ویرایش جزئی انجام می ده، امیر اورموی هم از چند ماه پیش رفته خدمت سربازی. بنابرین کاربر فعال ویک من و ۲- ۳ نفر به صورت متناوب در ماه هستند که البته زیاد با فعالیت در ویکی آشنا نیستند. ما از شما و سایر اساتید و دوستان انتظار زیادی نداریم همین که در ماه ۱۰-۲۰ ویرایش هرجند جزئی انجام بدید واسه ما کافیست.,0.991150442478,0.0931713110839\r\n7ebcc74686ca3da4,skdsjfyaba balsdugaldskj bgh <JOIN> hgs asdfkpkdi <SEP> akjdsjgkfd aksdfasjdfyewort <SEP> q ldf <JOIN> gad lid <SEP> yfewu wdvfjsudwyq <SEP> ik <SEP> ifry e L UEYTAU AKF <JOIN> JHA O <SEP> Q <SEP> LRIHREKJFDFSS <SEP> ERFL AJRH SKFDFBWAEP <SEP> U,0.333333333333,0.092555640964\r\nd9ba74efa9c0e3f6,\"हर एक व्यक्ति के जीवन में जरूरी होता है , की उसके अपने उसे मान सम्मान दे , <N> जब ऐसा नहीं हो पाता , , , <N> तो उस व्यक्ति की काबिलियत पीछे छुट जाती है , <N> और अंत में वो असफल बनकर रह जाता है , हार मान लेता है , <N> इंसान सारी दुनिया का सामना कर सकता है , <N> ... लेकिन जब अपने ही सताने लगे , तो ह्रदय रोने लगता है , , <N> इसीलिए एक-दूजे को समझकर , एक दुसरे को मान दे और अपनों का साथ दे ! ! ! सुनीता ! ! !\",0.747572815534,0.0913964766203\r\ndaeb86eb73d14869,\"شئت أنت أم أبيت , رأيك يهين الشعب السوري , أنا أرى أن سورية فوق الجميع , و أرى أن مصر هي قطعة أرض من سورية سرقت منا <N> <N> ما رأيك إذا كنت تحويلها هكذا <N> <N> أنا لا أحاسبك لماذا تقول أن مصر هي القوة العظمى هذا رأيك <N> <N> لكن لا تضع علم مصر فوق خريطة سورية <N> <N> لأن سورية لا تهان <N> <N> يحق لي الدفاع عن وطني لا أسمح لك بالتكلم معي بهذه الطريقة <N> <N> الزم حدودك و اعرف من أنت و اعرف مكانتك <N> <N> و لا أسمح لك بوصفي بالمهان <N> <N> أمثالكم من يهانون <N> <N> <N> \"\" ' سورية فوق الجميع <N> <N> و بالأخص فوق مصر <N> <N> لولا سورية و العراق لن تكون مصر قوة عظمى كما تتخيل <N> <N> <N> <N> لا يحق لي التعقيب عن رأيك إلا إذا كان يمس وطني , هذه إهانة كبرى لسورية لن أسمح بها ! <N> <N> رغم أنفك و أنف الجميع مجددا سورية فوق الجميع و فوق مصر <N> <N> لا أفهم العربية أكثر منك , بل أنا سيجد اللغة العربية , و بما أنك تريد إشعال نار الغيرة فيبدو أن عقلك لا يساوي عقل النملة , أما إنعقك تحاول إشعال غيرتي هذا الذي يدل على ضعف موقفك , و يبدو أنك محاور غير ذكي , و لاتفهم بأسلوب الحوار , و كل ما تريده هو استفزاز محاورك , إذهب إلى مدرسة الحوار ثم ارجع و حاورني , أنا لن أصغر عقلي مثلك <N> <N> و أنا حظيت بما أريد أيضا , لقد عكست أخلاق بلدك <N> <N> فالمثل يقول <N> <N> أخلاق المرء مراة لنفسه <N> <N> للأسف كنت أظن أن أهل مصر ناس طيبون , لكنهم ( أو بعضهم ) تافه و صغير العقل <N> <N> و كما قلت سابقا <N> <N> الزم حدودك و اعرف منزلتك و مقامك , و اعرف من تكلم <N> <N> <N> شكرالأخلاقك الرفيعة <N> <N> <N> <N> <N> السادات يستدل ؟ <N> <N> أضحكتني <N> <N> <N> من هو السادات ؟ <N> <N> <N> إذهب و أحضر لي فيديو يقول النبي فيه من هم أصل العرب <N> <N> <N> سيدنا إبراهيم من حضارة بابل , أي عراقي <N> <N> <N> و يقال أن سيدنا ادم نزل في اليمن <N> <N> <N> اذهب و اختر شخصيات يأخذ برأيها و يعرف من هي و من مكانتها , بالمناسبة الفيديو و نقاشك أضحكني و لم يحرق قلبي , بل زادني وثوقا بأن عقلك صغير و لست محاورا جيدا\",0.769801980198,0.0911963280331\r\naf5a875ac9cca5a0,โหงวก๊วยกระทงเผือก <N> <N> โหงวก๊วยกระทงเผือก <N> <N> <N> โหงวก๊วยกระทงเผือก เป็นอีกหนึ่งเมนูอาหารจีนที่ภัตตาคารอาหารจีนต่างก็จัดให้เป็นส่วนหนึ่งในเมนูอาหารโต๊ะจีนเลยก็ว่าได้ <N> เพราะรูปร่างหน้าตาและรสชาตินั้นน่ารับประทานเป็นอย่างมากเลยที่เดียว โดยวัตถุดิบที่นำมาประกอบอาหารนั้นล้วนแล้วแต่มีคุณภาพเป็นอย่างมากเลยทีเดียว <N> ซึ่งในภาษาจีนนั้นคำว่าโหงวนั้นแปลว่า5 ดังนั้นวัตถุดิบที่นำมาทำนั้นจึงประกอบไปด้วย เก๋าลัก แป๊ะก๊วย แห้ว เม็ดมะม่วง เผือก <N> ตามด้วยเนื้อสัตว์เช่นเนื้อไก่ และเครื่องเคียง ที่เป็นผักอักหลายอย่าง อาทิเช่น พริกหวานสามสี หอมใหญ่ พุทราจีน โดยนำเครื่องปรุงทั้งหมดนั้นมาผัดรวมกัน <N> ตามด้วยเครื่องปรุ่งรสต่างๆ ซึ่งจะมีรสชาติที่ออกมาเค็มนิดๆหวานน่อยๆ จึงจะอร่อย จากนั้นก็นำใส่ลงในกระทงเผือกที่เตรียมไว้นั้นเอง จัดได้ว่าเป็นเมนูอาหารจีน <N> ที่มีรูปร่างหน้าตาที่สวยงามอีกทั้งยังตามมาด้วยคุณค่าทางโภชนาการที่มากมายหลายอย่างเลยทีเดียว,0.72972972973,0.0910262449715\r\n49e3120653c0f890,Щасливого Дня Валентина від Валентина keep in touch . Усього найкращого у всьому ! ! ! ! ! ! ! ! ! <N> Wind <JOIN> nail <SEP> mail <SEP> ru,0.3,0.0905707151844\r\n4c4e0170b979f179,واحب اقول كلمة بالنسبة لاموالى فهى ثرواتى اما بالنسبة للمستوى الفكرى بينى وبينهم استطيع ان ارسل لهم مقالة بهذا الشأن لتثقيفهم وتنشيط وعيهم حتى لا يصابو بالزهيمر ويعتمدو على شياطينهم فى الازى الكونى . وانتم تعرفون ان قلمى من رصاص يستطيع ان يفعل الكثير ويكشف الكثير ويجب عليهم ان يخجلو من فشل جميع مخططاتهم على مدار سنين الحرب الطويلة رغم ان لديهم الكثير من العملاء واذا كانو يريدو ان اوضح لهم اشياء بشان سياستهم الغامضة فانى من الممكن ان اجعل الوان وجوههم كالتلفزيون ايام ما كان بالابيض والاسود هههههههههه وارجو ان لا يحرفو كلماتى للعنصرية البغضاء لانى احب جميع الالوان الحقيقية وليست الباهتة او المزيفة. واشكر اكرانيا العظمى على اشياء كثيرة بيننا اكبر بكثير من مقالبهم وادعوهم للتعقل حتى لا تصبح امورهم اكثر سوءا. ولديا المعرفة بذلك فيجب عليهم ان يتعلمو كيف يتعاملون معى بالقدر المناسب والحقيقى حتى لا يرى العالم نقصهم واشياء اخرى كثيرة تضعف من وجودهم فتصبح صورتهم غير لائقة امام العالم. تحياتى اليكى يوليا والى قادة اكرانيا. والى الجنود البواسل. ولكم منى وحبى ووفائى الدائم متمنيا بالكثير من الطموحات التى نسير على دربها من اجل مستقبل افضل للبشرية. وتحياتى ايضا الى الجيل الصاعد . لكم منى جميعا حبى واشواقى.الراسل/ حسين امين,0.989690721649,0.0900621557473\r\n6a3ca42a98b7a287,gdj <JOIN> eyb pizehgdsggggggggggggggggggggggggggggggggggrf d edhgw WERqw trftg,0.625,0.0899053377779\r\n61f378e93b2936c6,\"iu hu <N> luylu , khghg <N> khgfkgfkkhubkhkh <SEP> i <N> lhlighlglhglhgjhglgl <N> kygl <SEP> hggl <SEP> ljlj <N> lhjk <SEP> k <SEP> jj <SEP> kbkj <N> jhluhluh <SEP> kjhk <JOIN> hhk <N> kjljhlkjhlkhlkjh <N> , kjhglhglhgh <N> hkh jhglkjhg <N> dddd ukhgkhgkjg <N> ddhd ljhlhljhlkhlhhl <N> dgfjffvfvfjlfdljvfjhlfdgh <N> lijhlihlhjkhljhlkjhlkjhh <N> mjhgjhgkjggkjh , hgf <N> , ljhljhjhlhlhl luy <N> jhgkjhkjh , jd <N> hgh hjh <N> ghtf hghf <N> jhjhj jhjhh <N> vvvvv vvvvv <N> kitcat <N> :) <N> :)\",0.3625,0.0898087324855\r\na1b0061d01d91e2f,\"प्रस्तावना <N> <N> <N> <N> <N> आज च्या जगामध्ये घडत असलेल्या गोष्टी पाहून आम्हास खूप वाईट वाटते आणि थोड्या वेळासाठी मनामध्ये विचार येतो कि राजे आपण पुन्हा जन्माला . मग आम्ही या वरती विचार केला कि आपली जी हि वृत्ती आहे कि राजे आपण पुन्हा जन्माला या हि बददली पाहिजे राजे कुठे दूर नसून ते आपल्या ह्रुदय मध्ये वास्तव्य करतायेत ते घडत असलेल्या सर्व गोष्टी पाहत आहे त्यांना खूप वाईट वाटत असेल विचार करत असतील कि याच मातीमध्ये आम्ही स्वराज्य निर्माण केली , आमच्या रयतेसाठी त्यांच्या हितासाठी , स्त्रींच्या रक्षणासाठी आम्ही हे स्वराज्य निर्माणाचा पाऊल उचलं पण आम्ही कदापि विचार केला नसेल आमच्या स्वप्नामध्ये सुद्धा कि आमची रयत ऐवढे स्वार्थी होईल .आपल्या स्वार्थासाठी आपल्याच माणसाचा त्याग करेल .आपली विचार सारणी अशी का झाली हे पाहून आम्हास खूप वाईट वाटते पण काय करू शकतो काही नाही एक गोष्ट करू शकतो ते म्हणजे एक दिवस आपण जागे व्हाल आणि पेठून उठाल अन्याय , अत्याचार करणाऱ्या विरोध याचीच वाट पाहतोय तरी हि कोणी पुढे येउन या स्वराज्य निर्माणाचा धाडस दाखवत नाही याचा आम्हास खूप वाईट वाटतं. <N> मग आम्ही निर्णय घेतला कि आम्ही आमच्या राजाच्या स्वप्नास तडा जाऊ देणार नाही आम्ही सदेव प्रयत्नशील राहो दिवस रात्र एक करू पण आम्ही या मातीसाठी , या मातीत राहणाऱ्या रयतेची , भगिनीची रक्षण करू या मध्ये आमचे प्राण गेली तरी आम्हास पर्वा नाही असा भ्याड पणे पळून जाणे म्हणजे आपल्या स्वराज्याचा स्वाभिमान गमाण्यासारखा आहे . <N> मग ठरवला आम्ही आपल्या स्वार्थी विचाराने चाललो तर अशी हजारो वर्ष लागतील .आणि त्या वरून विचार केला कि आपले देवत छत्रपती शिवाजी महाराज यांच्या विचाराने चाललो तर हे नक्की शक्य होईल केवळ आम्ही विचार करून चालणार प्रत्येकाने विचार करायला हवा प्रत्येकाने त्यांच्या पाऊला वरती चालली पाहिजे त्या मुळे आम्ही ठामपणे विचार केला शिवबांच्या विचारा वरती पुस्तक प्रकाशित करण्याचा विचार केला या पुस्तकाद्वारे आपल्या मध्ये जागृत पण येईल त्यांच्या विचाराचा अभ्यास करून त्यांच्या पाऊला वरती चालाल हा विचार डोक्यामध्ये ठेऊन हा विचार केला <N> आज वर आपण फक्त त्यांच्या पराक्रमा बद्दल ऐकलं आहे पण खरं मनापासून त्यांच्या विचाराबद्दल जाणून घ्याचाचा प्रयत्न कधी केलाच नाही .कघी हि त्यांचे विचार आत्मसात करण्याचा प्रयत्न केला नाही खरच खूप लाजीर वाणी गोष्ट आहे त्यांचे गुणगान तर गातो पण त्यांच्या विचारावर त्यांच्या पाऊला वर चालण्याचा कितपत प्रयत्न करतो . हे पहा पराक्रम हा विचाराने घडत असतो .त्यामुळे जर पराक्रम घड्व्ह्याचा असेल तर आपली विचार सरणी बद्दली पाहिजे तरच या मातीमध्ये जन्मल्याचे सार्थक होईल . <N> <N> जीवनामध्ये कोणतीही चांगली गोष्ट करायची असेल तर शिवविचारावर भर दिला <N> ( @ ) जगदंब ( @ ) <N> धन्य ते शिवराय ! ! आणि धन्य ते शंभूराजे!!स्त्री जातीचा मान राखुनी <N> तूच शिकविले जगाया.तूच दे सामर्थ्य आता हि जाणीव अंतरी उतराया <N> <N> ๑ ۩ ۞ ۩ ๑ <N> ๑ ۩ ۞ ۩ ๑ ๑ ۩ ۞ ۩ ๑\",0.893333333333,0.0896002926606\r\n7f3fa7e149f4f320,\"gduisugjfgbjsklgujsbvflbsklfgfklguuuuuuuuuuuuuuuuuisjgbvufifk , bjkbfgudslfignbjl nuuusfibng iggfi nuibujissssssipgbuegbiebwiyyerpwuieyneuwhnyraphnnnnnnnnnnnnnnnnnhuvyvqhnynhunuoqyivrrrrrrrrrrrrrrrrrrrrrqyhviynuyhnhvhyvuyhnnnnnyhhhhhhhuuoythnovyiqvyiurnuienyohvqvhvqqhvhniqoyurhuovuyhoveyhuyouvyhvonvnhynhiveiuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuhvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvqnqoyhnuyuvhnnihhhhhhhhhvquuuuuuunvoyqhqyyyyyyyyyyyyyyyyyhnuqoenqonqnoqnhyhqybyhbbogohghguhoqehtbnytrbbbbbbbbbbbrbvytqyubtyotqeyig\",0.833333333333,0.0895400348456\r\nb48b48b74dd07288,उदशाह मेरा गाँव है इसके पास में १० किलो मीटर पर सफीपुर सहर है मेरे गाँव का प्रधान और रोजगार बहुत ही भ्रष्ट हैं दोनों के खिलाफ लगभग ५० शिकायतें है <N> <N> <N> मेरे गाँव में नरेगा के अंतर्गत काम न करवाके सरे रूपये ग्राम प्रधान और बी डी ओ और रोजगार सेवक सभी मिलकर डकार जाते हैं <N> <N> गाँव में आज भी काम नहीं होते है रूपये निकाल कर सभी अधिकारी बहुत लम्बा घोटाला करते हैं,0.936708860759,0.0894208774803\r\n36e7bf12c78d73c9,\"CHAYYYYYYYEAESDFSDFSDFGDFGDF , GJDFHGNDFJHGDFVGKDFJGJDFGKJDF KGJD FKSGJDFKJGLCD VFGJICDGJDFHGUIFDGFObama\",0.833333333333,0.0890469882372\r\nd2ef2d76fe9aa1db,Εειμη ελλιναςς κ επεξεργαζομε αρθρα.μενω στου δρομου με τρυπιο βρακι επαγγελμα¨ζιτιανους με παιδια ελειστε,1.0,0.0888930428022\r\nb78d461b524a134b,erkgegjegjkelleke eteteteteeeee r <N> tetetlete <SEP> l <SEP> telte : L TLELTEltetlelt,0.416666666667,0.0888393226236\r\nafc6a32cc43e3c59,\"= = Шлюха ! ! ! Обломалась со своими банами ? = = <N> <N> Скоро ты допрыгаешься , говнюк !\",0.428571428571,0.0886236823364\r\n4769781a3d6a776a,ΓΑΜΩ ΤΟ ΜΟΥΝΙ ΤΗΣ ΜΑΝΑΣ ΤΟΥ ΜΑΛΑΚΑ ΠΟΥ ΕΓΡΑΨΕ ΑΥΤΟ ΤΟ ΑΡΘΡΟ <N> Ο ΠΑΤΕΡΑΣ ΤΟΥ ΕΙΝΑΙ ΠΟΥΣΤΑΡΑ ΚΑΙ Η ΜΑΝΑ ΤΟΥ ΓΑΜΙΟΛΑ ΨΟΛΑ ΠΟΥΤΑΝΑ ΣΤΗΝ ΦΥΛΗΣ <N> Η ΑΔΕΡΦΗ ΤΟΥ ΕΙΝΑΙ ΛΕΣΒΙΑ ΚΙ ΑΥΤΟΣ ΚΟΛΟΓΛΕΝΤΗΣ ΣΚΑΤΙΑΡΗΣ,0.945945945946,0.0884935238553\r\na02078d724afca97,= = सिरोही जिले के शिवालय = = <N> <N> * सारणेश्वर मंदिर सिरोही * आंबेश्वर मंदिर सिरोही * भूतेश्वर मंदिर भूतगाँव * बुडेश्वर मंदिर भूतगाँव * कांबेश्वर मंदिर शिवगंज * गौतमेश्वर मंदिर * लीलाधारी मंदिर मंडार * परशुराम मंदिर कोजरा * रिषेश्वर मंदिर नाँदिया * मार्कुण्डेश्वर मंदिर अजारी * अचलेश्वर मंदिर अचलगढ * अग्नेश्वर मंदिर देलवाडा * सुरतानेश्वर मंदिर लोटाणा * भूवनेश्वर मंदिर डोडुआ * वोवेश्वर मंदिर झाडोली वीर * भीमेश्वर मंदिर भीमाणा * सोमनाथ मंदिर रोहिडा * विकेश्वर मंदिर ओडा * नीलकंठ मंदिर जावाल,0.709302325581,0.0883388444723\r\nfb89bc7db046056f,\"= = ਵੇ ਸਾਰੇ ਸੁਣੋ ......... ੲਹ ਰਾਧਾ ਸਵਾਮੀ ਜੇ = = <N> <N> ਤੂੰ ਸਿਖ ਨਹੀ , ਗੂਰੂ ਤੋ ਬੇ-ਮੁਖ ਹੈ ! ਅੰਨਦ ਸਾਹਿਬ ਪੜ , ਪਤਾ ਲੱਗਜੂ !\",0.633333333333,0.08812484951\r\n0b7b59cc5daacc79,सालु <N> म बिना तिमी र तिमी बिना म बाच्नै नसक्ने होइन तिमीले पनि म भन्दा हजार गुणा राम्रो जिबन शाथी पाउली र त्यस्तै मैले पनि पाउला तर हाम्रो बास्तबिकता त्यो होइन । यो मन्ले चाहेको मान्छे हौ तिमी पहिलो नजरमै मन पर्यो तिमी बिनाको ससांर अपुरो छ जस्तो लाग्यो किन किन यो मन्ले केवल तिमीलाई मात्र खोजिरहन्छ तिमीलाई मात्र चाहिरहन्छ यो मन्ले त अझ के भन्छ थाहा छ सधैभरी तिमी मेरै हो रे तिमी बिना त यो ससांरको संरचना नै भङ्ग हुन्छ रे मन तिमी तिरै गइरहेको छ यो मन तिम्रै यादमा पागल भईरहेको छ जुन दिन तिम्रो र मेरो भेट भयो त्यो दिन देखी म तिम्रै यादमा हराईरहरायको छु तिमी बाहेक अरु सोचेको पनि छैन तिम्लाई भेटेको त्यो ठाउ तिमिसगँ गरेका कुरा ति कुराहरु तिमीसगँ बितायका ति पलहरु क्षण हरु आँखाभरी घुमिरहेका छन,0.985185185185,0.0880464953793\r\n1ea4c3f707ea3469,lmj kdjbd ? ijew jfhuw nfjwe fbhnf whj,0.875,0.0873321036224\r\n29bf6ac9957af1c5,야 너 요즘 안 보여. 나 사실 너 좋아해 ... 안녕,0.909090909091,0.0872439839201\r\nff9bbe71e8996418,سوال ۱۰ <N> سوال ۱۰ ۔ کیا اُم المومنین حضرت عائشہؓ کا مولاعلیؑ کے مقابل خروج حق تھا؟ <N> مستند روایات سے پتہ چلتا ہے کہ مولا علیؑ اور حضرت عائشہؓ کے مابین مخاصمت واقعہ افک کے بعد سے ہی شروع ہوگئی تھی جو کہ بڑھتے بڑھتے عداوت اختیار کہ گئی۔ دورانِ واقعہ افک حضوراکرمؐ نے غمغین حالت میں مولا علی ؑ سے مشورہ کیا تو مولا نے آپ کو غم و اضطراب سے بچانے کے لئے یہ مشورہ دیا کہ اللہ تعالیٰ نے آپ پر کچھ تنگی نہیں فرمائی اگر افواہوں کی بنا پر عائشہؓ کی طرف سے کچھ تکرر طبعی ہو گیا ہے تو عورتیں اور بہت ہیں۔ علاوہ ازیں آپ کا یہ تکرار اس طرح بھی رفع ہو سکتا ہے کہ بریرہؓ جو صدیقہ عائشہؓ کی کنیز ہیں۔ اُن سے اُنکے حالات کی تحقیق فرما لیجئے‘‘۔ مولا علیؑ کے اس مشورہ کا حضرت عائشہؓ کو بھی پتہ چل گیا تھا جس کی وجہ سے صدیقہ دِلی طور پر مولا ؑ سے ناخوش تھیں۔ <N> ہادی برحقؐ کی رحلت کے بعد مولا علی ؑ نے چھ ما ہ تک خلیفہ اول سے بیعت نہ کی۔ اِس دوران مسئلہ فدک بھی پیش آیا جس میں حضرت عائشہؓ نے سیدہ فاطمہؓ اور مولا علی ؑ کا بھی ساتھ نہ دیا اور اپنے والد حضرت ابو بکرؓ کی روایت کردہ حدیث کی تصدیق بھی کی۔مجھے مفتی صاحب کی اس بات سے قطعی طور پر اختلاف ہے کہ خلیفہ اول کے دور حکومت میں مولا علیؑ کے گھر کو آگ لگانے کے لئے کھڑیاں اس لئے جمع کی گئیں تھیں کیونکہ گھر میں منافقین اور فسادی جمع ہوگئے تھے۔ <N> <N> سبحان اللہ مفتی صاحب ایک طرف آپ فرما رہے ہیں کہ حضرت عائشہ کے گھر اہل بیت رسولؐ بھی بلا اذن داخل نہیں ہو سکتے تھے دوسری طرف آپ مولا علی ؑ کے گھر میں منافقین جمع ہونے کی خبر دے ر ہے ہیں۔ آپ کا یہ بیان کیا متضاد نہیں؟ کیا مولا کا گھر اہل بیت رسولؐ نہیں تھا؟ اپنی اس غلط بیانی پر ذرا خودی غور فرمائیے۔ نیز جن کو آپ مولا علی کے گھر میں منافقین اور فسادی کہہ رہے ہیں ان میں چند صحابہ کرام مثلاً حضرت عباسؓ بن عبد المطلب، حضرت زبیرؓ ،حضرت طلحہٰ، حضرت مقدارؓ ، حضرت سعد بن ابی وقاص اور خود مولا علیؑ بھی شامل تھے۔ نیز سیدہ فاطمۃ الزھرہؓ و حضرت حسنین ؑ بھی گھر میں موجود تھے ۔ لہٰذہ کیا مولا ؑ کے گھر کو آگ لگانے والے ارباب اختیا ر حضور اکرمؐ کی وصیت بھی بھول چکے تھے جس میں صحابہ کرام ؓ کو تلقین کی گئی تھی کہ میرے شہزادوں کا احترام ، محبت اور تعظیم کرنا۔ <N> <N> ان سب واقعات کے وقوع پذیر ہونے کے باوجود یہ سوال اٹھتا ہے کہ کیا مولا علیؑ اتنے بے بس اور لاچار تھے کہ لوگ ان کے گھر کو آگ لگانے کا پروگرام بنا رہے ہوں اور مولا ؑ خاموش ہیں؟ جواب میں عرض ہے کہ مولاؑ نہ تو خوفزدہ اور نہ ہی لاچار تھے۔ بھلا یہ کیسے ممکن ہے کہ جنگ اخزاب اور جنگ خیبر کا فاتح ایسے موقع پر خوفزدہ ہو۔ اصل بات مولا ؑ کی دور اندیش اور حضور اکرم ؐ کی آخری لمحات میں مولا ؑ کی گود میں وصیت تھی ’’ علی میرے بعد تجھے مکر و ہات سے پالا پڑے گا تو دل تنگ نہ کرنا اورصبر کرنا‘‘حضورؐ کی یہ وصیت مولا کے لئے پتھر پر لکیر تھی پھر بھلا صبر کا دامن کیسے چھوڑ دیتے ! <N> لکھنے والوں نے تو بہت کچھ لکھا ہے بلکہ لکھوایا گیا ہے۔ لیکن مولا ؑ چونکہ علم دھبی جو اللہ تعالیٰ کی طرف سے حضور اکرمؐ کے توسط سے ودیعت ہوا تھا سے بہتر طور پر سمجھ سکتے تھے کہ مناسب کیا ہے اورکیا نا مناسب ہے ۔ یہی وجہ تھی کہ مولا ؑ نے خلیفہ اول سے خلیفہ ثالث تک پورا پورا تعاون کیا۔ <N> <N> اب ہم آتے ہیں اصل سوال کی طرف کہ کیا اُم المومنین حضرت عائشہؓ کا مولا علیؓ کے مقابل خروج حق پر مبنی تھا؟ <N> اس سوال کا جواب بہت تفصیل طلب ہے۔ مختصراً عرض کردوں کہ ماں جی تمام امھات المومنین سے زیادہ علم رکھتی تھیں۔ آپ نے قرآن پاک کی مندرجہ ذیل آیات بھی یقناًپڑھی ہونگی:۔ <N> ۱:۔ سورۃ الاحزاب ( آیت ۶)۔ ترجمہ : نبیؐ مومنوں کے ساتھ خود ان کے نفس سے بھی زیادہ تعلق رکھتے ہیں۔ اور آپؐ کی بی بیاں ان کی ما یں ہیں۔ <N> ۲:۔ سورۃ الاحزاب ( آیت ۳۱-۳۲)۔ ترجمہ : ۳۱ اے نبی کی بی بیو تم معمولی عورتوں کی طرح نہیں اگر تم تقویٰ اختیار کرو۔ ۳۲ : اور تم اپنے گھروں میں قرار سے رہو۔ <N> مذکورہ بالا احکام کی روشنی میں ممکن ہے حضرت عائشہؓ نے صحابہ کو تلقین کی ہو لیکن زیادہ احتمال یہی ہے کہ دیرنہ عدوات جو کہ انسانی فطرت ہے اورمشیروں کے غلط مشوروں سے خروج ہوا۔ ماں جی کو یقین تھا کہ مولا ؑ قاتلانِ عثمان میں شامل نہیں ہیں بلکہ مولا علیؑ نے آخری دم تک ؟؟؟؟ اپنے شہزادوں کے حضرت عثمانؓ کا ساتھ دیا۔ حضرت عائشہؓ ایک عالمہ فا ضلہ ام المومنین تھیں ایک عرصہ حضور اکرمؐ کر قربت میں گزارہ تھا اور اس پر فخر بھی کیا کرتی تھیں۔ <N> آپکے علم میں یہ دو حدیثیں تو ضرور ہونگی جن کا مفہوم یہ ہے:۔ <N> ۱ : اے علی میرے بعد تمہارے ساتھ یہ اُمت دعا کرے گی تم میری ملت پر زندہ رہو گے۔ ( کنز العمال علی متقی الجز سادس ۱۰۷۲ ) <N> ۲ : اے عائشہؓ میرے بعد تم ایک گروہ کی قیادت کرو گی جو نا حق ہو گا۔ مقام خواب پر تمہاری اونٹنی پر کتے بھونکیں گے۔ <N> ۳ : حضرت عمار بن یاسر کو ایک باغی گروہ قتل کرے گا۔ <N> اتنی واضح احادیث ہوتے ہوئے بھی مولا علیؑ کے خلاف خروج چہ معنی دارد۔ پھر مولاؑ بھی وہ جن کی شان شیخ سعدیؒ نے فرمایا۔ <N> بعدازمصطفےٰ در کل عالم نہ بُد فاضل ترو بہتر ز حیدر ؑ <N> بہر حال ماں جی نے خروج جن حالات اورجس وجہ سے کیا ظاہری تو ایک فطری عداوت ہی لگتی ہے۔ ورنہ مائیں تو اولاد کو صُلح و امن کا ہی مشورہ دیتی ہیں البتہ انکے خروج سے نہ صرف جنگ جمل ظہور پذیر ہوئی بلکہ جنگِ صفین، واقعہ حُرہ، سانحہٰ کربلا اور نہ جانے کتنے فتنے برپا ہوئے اور ہوتے رہیں گے۔یقیناً ماں جی کو اس حدیث مبارکہ کا بھی علم ہوگا جس میں حضور اکرمؐ نے فرمایا ’’ عنقریب میرے اہل بیت میرے بعد میری اُمت سے قتل و غارت دیکھیں گے اور ہمارے سب سے زیادہ بغض رکھنے والے دشمن بنو اُمیہ، بنو المغیرہ و بنو مخدوم ہونگے ( حدیث صحیح بخاری باب الفتن نمبر ۷)۔ ‘ ‘ <N> مندرجہ ذیل چیدہ چیدہ واقعات عالم اسلام میں بد ن,0.958891867739,0.0870006285935\r\n64163210e839d7d1,= = in eck = = <N> <N> سلام من حدود يكسال هست كه با اك آشنا شدم و صبر زيادي براي ديدن شما در طبقات درون ندارم،ومشكل بزرگي كه فكر ميكنم بخاطر آن نميتوانم شما را ببينم اينست كه متاسفانه سيگار ميكشم البته چند بار سعي كردم سيگار را ترك كنم ولي نشد و شرايط بدي پيش آمد كه دوباره شروع كردم،من از شما خواهش ميكنم كه كمكم كنيدهر كارمائي كه براي رسيدن به عشق سرراهم هست را بتوانم مستهلك كنم و خواهش ميكنم گوشه اي از طعم عشق را به من نشان دهيد تا بكمك شعف آن و شما بتوانم در راه رسيدن به خانه قدم بردارم <N> با تقديم صميمانه ترين درودها <N> هميشه منتظرتان هستم <N> بركت باشد,0.909836065574,0.0868836220031\r\n11e50a28405a7910,= = اللغة المروية القديمة رموز لم تكتشف بعد = = <N> <N> [ [ File : Http <SEP> www <SEP> arab <SEP> load <SEP> info / uploads <SEP> mara <JOIN> wia <SEP> jpg <SEP> thumbnail <SEP> center للغة المروية http <SEP> classic <SEP> aaw <JOIN> sat <SEP> com / details <SEP> asp <SEP> section <SEP> article <SEP> iss <JOIN> ueno <N> تعد اللغة المروية القديمة من أقدم اللغات المكتوبة على وجه الأرض سوى أن رموزها لم تفك بعد، حيث يرى المؤمنون بنطرية المؤامرةأن وراءعدم فك رموزها مؤامرة من الآثاريين المصريين والأجانب المتواطئين معهم لتظل الآثار السودانية مغمورة ومجهولة ولا قيمة لها، لكني أظن أن البحوث ما تزال جارية لكنها لم تصل بعد للنهاية فكل اللغات القديمة استغرق الكشف عنها وقتا طويلا فاللغة الهيروغليفية مثلا صمدت لثلاث ألفيات ! فما أن توصل شامبليون الى المفتاح من اللغة القبطية القديمة التي كانت تنطق ولا تكتب حتى تيسرت له الترجمة ... <N> سادت « مملكة مروي » ما بين 2500 ق. م. إلى القرن الخامس الميلادي، معاصرة للحضارة المصرية القديمة، وامتدت من الأقصر، جنوب مصر الى وسط السودان حول حوض النيل. لكن بعض المؤرخين يرون أن الحضارة المصرية، سبقت الحضارة المروية في تدوين أو كتابة اللغة بفترة طويلة، ويستدلون على هذا بأن ملك مروى الشهير ترهاقا الذي غزا مصر في القرن السابع ق.م. كتب واصفا غزواته وانتصاراته باللغة الهيروغليفية، إلا أنه في القرن الثاني ق.م. بدأت كتابة اللغة المروية. وتعود أول محاولة للعلماء الغربيين لمعرفة اللغة المروية القديمة إلى أكثر من 150 عاما، أي بعد وقت قصير من النجاح في الكشف عن اللغة المصرية القديمة. لكن العلماء فوجئوا بأن اللغة المروية هي لغة معقدة ومختلفة تماما عن اللغة المصرية القديمة التي تلجأ الى التصوير أو الرسم لطائر أو عين إلخ، بينما اللغة المروية صغيرة الحجم وشبيهة بالأرقام وتبدأ من اليمين للشمال، وبها حروف صغيرة وأخرى كبيرة « كالإنجليزية » . وفي العام 1911 توصل عالم المصريات البريطاني جريفث الى معرفة نطق أو قراءة اللغة المروية، ولكن دون فهم معانيها. والانجاز الذي أعلن عنه مؤخراً في الخرطوم، هو نجاح العلماء الآن، في ترجمة 100 كلمة تتضمن 40 حرفا أساسيا، وإن لم يتوصلوا بعد الى معرفة كل مفردات اللغة المروية,0.809248554913,0.0867053184556\r\ne7a398d6a31b3784,الجمهوريات تجتاح الخليج العربي ففي الامارات العربية المتحدة القي القبض على جميع الاسر الحاكمة الشيطانية ويتم تدارس كيفية الاعلان على الشعب عن حقيقة من كانوا يحكمونهم طوال سنوات طويلة وللذي لاحظ على الجزيرة حيث ظهر الشيطان محمد بن راشد ال مكتوم في لقطة سريعة وهو يبدو كالمجنون او المثار بدرجة غير عادية افقدته السيطرة على فعله وانفعالاته وعدم استقرار العقال على رأسه هذا اذا كان ذلك الشخص هو هو وان كنا نشكك في الشخصية التي ظهرت اصلا وحتى في مصر وفي الدول العربية كلها دون استثناء تقريبا هناك ترتيبات تجري ليس على مستوى الدول العربية بل على مستوى العالم للاعلان عن تغييرات ستكون الاشمل والاخطر والاكبر في تاريخ البشرية كلها حيث سيعلن عن وجود الشيطان وانتهائه في وقت واحد وتوقيت واحد في كل دول العالم مما سيجعل المفاجأة مدوية اكثر مما يتصور واذا كنا تحدثنا عن دبي فان ماينطبق على دبي ينطبق على باقي الامارات السبع وكذلك هو الامر في سلطنة عمان وفي الكويت وفي السعودية وفي البحرين وفي الكويت اما اليمن فقد اصبح في حكم المؤكد ان الشيطان علي عبدالله صالح واسرته في السجن او انه الان في هولندا بانتظار محاكمته في محكمة الجنايات الدولية المتخصصة في جمهورية هولندا الحرة وكذلك هو الحال على الشخصيات الرئيسية والشيطانية في كل الدول العربية وفي غيرها وما نشاهده من شخصيات في هذه الدول هي احدى اثنتين لاثالث لهما كما شاهدنا الشيطان محمد بن راشد فهو اما مسجون او انه قناع لشخصية الشيطان محمد بن راشد وكذلك هو الحال في كل الدول العربية التي للاسف اتضح ان الشيطان كلها كان يحكمها الشيطان بل واحتل كل مفاصلها ولم يترك اي مفصل او منصب او مركز الا واحتله وهمش الانسان واوغل في ظلمه له وتمتع الشيطان بكل خيرات البلاد واثرى ثراءا فاحشا وافقر الشعب ولذلك لايعتقد ان من وقفوا مع هؤلاء سيسلمون من غضب شعوبهم وخاصة عندما تعلن الحقيقة عارية عندها لن يضمن احدا منهم من الشعب عوضا عن محكمة الجنايات الدولية المتخصصة في جمهورية هولندا الحرة smsm <SEP> maktoob <JOIN> blog <SEP> com,0.984326018809,0.0866190864797\r\n9b30a5bc1488b52a,eruhu hereh eurh uehrh hier,0.8,0.0866163300809\r\n1797445c968fbf2c,= = الحياة حلوة ! ! ؟؟ - Ahmad Sacca = = <N> <N> الحياة حلوة ! ! ؟؟ <N> <N> <N> عنجد الحياة حلوة لازم الواحد يعيش حياتو و لازم ننبسط بس اهم شي انوا نرضا بقسمة الرب ... <N> <N> <N> طبعآ حياتك رح تنقلب إذا حاولت تغير الواقع!. <N> نتعجب احيانآ من هاي الجملة بس في كتير ناس بحاولوا يغيرو الواقع .. <N> <N> <N> يعني التصميم و الإرادة حلوة بس الناس الرجعية و يالي تفكيرها رجعي و من ايام حرب الشلويط ما بنفع معهم التفاهم ..... <N> <N> <N> بتحاول و بتفشل و بتعيدها لأنو كل انسان عندو ارادة طبعآ، بتحاول و بتكون رح تنجح بس الناس الرجعيين و الفاشلين رح يهبطو معنوياتك و إذا كنت بدك تنجع ببطل إلك نفس تنجح ... <N> <N> <N> يعني كلامهم بكون مثل الشفرات بمزع مزع ،و المزع ما بتخيط لا عند دكتور ولا سكافي .... الله يشفيهم .. <N> <N> <N> منرجع لنقطة الحياه الحلوةيعني عشنا و شفنا غدر و صدق و حب و كره و حقد و مودة الحياه شو ضل ؟؟؟؟؟؟؟؟؟؟ <N> <N> <N> لازم نجرب الموت . ممكن يكون الموت هوه الحل بس يا ترى رح نستنا كثير ؟؟؟ <N> <N> <N> شو كانت حلوة ............. kaaa <JOIN> aant <N> <N> احمد السقا,0.754807692308,0.0864990243588\r\ne7e9ea47db486e88,\"EMILY DICKINSON ΠΟΙΗΜΑΤΑ <N> Μετάφραση Τάκη Μητσακάκη <N> <N> ΕΚΔΟΣΗ ΠάΝ-ΘΕοΝ με ΠαΝ-ΘέΑ ΑΘΗΝΑ 2011 <N> .................................................................................................... <N> Copyright : Τάκης Μητσακάκης , Λεπενιώτη 6 , 105.54 Αθήνα. Τηλ. 211/1832885 <N> Η αναδημοσίευση ολόκληρου ή μέρους των κειμένων επιτρέπεται με το μοναδικό όρο αναφοράς στο συγγραφέα και στον εκδότη. <N> ..................................................................................................... Η μετάφραση των ποιημάτων έγινε από την έκδοση του 1993 « THE COLLECTED POEMS OF EMILY DICKINSON BOOKS » του οίκου Barnes and Noble , που είχε βασιστεί στην έκδοση του 1924 « THE COMPLETE POEMS OF EMILY DICKINSON ” <N> ..................................................................................................... <N> <N> ΤΟΥ ΙΔΙΟΣΥΓΓΡΑΦΕΑ ! <N> Α. ΣΥΛΛΟΓΕΣ ΠΟΙΗΜΑΤΩΝ <N> 1 . ΜΕΤΑΒΑΣΗ ( 1962 ) <N> 2 . ΕΚΤΟΣ ΕΜΠΟΡΙΟΥ ( 1976 ) <N> 3 . ΓΟΝΙΜΟΠΟΙΗΣΗ ( 1980 ) <N> 4 . ΟΙ ΘΑΛΑΣΣΙΕΣ ΑΝΕΜΩΝΕΣ , Η ΓΟΡΓΟΝΑ , Η ΝΕΦΕΛΗ ΚΑΙ Ο ΙΠΠΟΚΑΜΠΟΣ ( 1988 ) <N> 5 . ΕΛΛΗΝΙΚΗ ΙΣΤΟΡΙΑ ΝΕΟΤΕΡΩΝ ΧΡΟΝΩΝ ( 1988 ) <N> Β. ΔΙΑΦΟΡΑ <N> 1 . ΣΚΕΨΕΙΣ ΓΙΑ ΤΗΝ ΑΝΑΠΤΥΞΗ ΤΗΣ ΕΠΑΡΧΙΑΣ ΣΗΤΕΙΑΣ ( 1966 ) <N> 2 . ΤΟ ΔΕΡΜΑ ΤΑ ΜΑΛΛΙΑ ΚΑΙ Η ΟΜΟΡΦΙΑ ΤΟΥΣ ( RIL <JOIN> KEN 1995 ) <N> Γ. ΥΠΟ ΕΚΔΟΣΗ <N> 1 . Η ΕΥΤΥΧΙΑ ΔΕΝ ΕΙΝΑΙ ΔΙΚΑΙΩΜΑ , ΕΙΝΑΙ ΚΑΘΗΚΟΝ <N> Δ. ΙΣΤΟΣΕΛΙΔΕΣ & FACEBOOK <N> 1 . MITSAKAKIS . GR <N> 2 . ΠΟΙΗΣΗ ΕΝ ΕΥΡΕΊΑ ΕΝΟΙΑ <N> 3 . ΒΙΚΙΠΑΙΔΕΙΑ : ΤΑΚΗΣ ΜΗΤΣΑΚΑΚΗΣ <N> <N> ..................................................................................................... <N> Στον αγαπημένο φίλο μου Βαγγέλη Ανδρεαδάκη και στις τρεις Πηνελόπεςτην κόρη μου , την ανεψιά μου και τη φίλη μου γιατρό , ποιήτρια , ζωγράφο και έντιμη πολιτικό Πηνελόπη Ντουντουλάκη <N> ..................................................................................................... <N> <N> ΠΕΡΙΕΧΟΜΕΝΑ <N> 1 . ΚΑΤΙ ΣΑΝ ΠΡΟΛΟΓΟΣ ΚΑΙ ΛΙΓΑ ΛΟΓΙΑ ΑΠΌ ΤΗΝ ΑΝΕΨΙΑ ΤΗΣ ΠΟΙΗΤΡΙΑΣ MARTHA DICKINSON BIANCHI <N> 2 . ΜΕΡΟΣ ΠΡΩΤΟ : ΖΩΗ <N> 3 . ΜΕΡΟΣ ΔΕΥΤΕΡΟ : ΦΥΣΗ <N> 4 . ΜΕΡΟΣ ΤΡΙΤΟ : ΑΓΑΠΗ <N> 5 . ΜΕΡΟΣ ΤΕΤΑΡΤΟ : ΧΡΟΝΟΣ ΚΑΙ ΑΙΩΝΙΟΤΗΤΑ <N> 6 . ΜΕΡΟΣ ΠΕΜΠΤΟ : Ο ΜΕΓΑΛΟΣ ΚΥΝΗΓΟΣ <N> <N> ΚΑΤΙ ΣΑΝ ΠΡΟΛΟΓΟΣ ΚΑΙ ΛΙΓΑ ΛΟΓΙΑ ΑΠΌ ΤΗΝ ΑΝΕΨΙΑ ΤΗΣ ΠΟΙΗΤΡΙΑΣ MARTHA DICKINSON BIANCHI <N> Ζητώντας την επιείκεια του αναγνώστη , εξομολογούμαι ότι , για πρώτη φορά στη ζωή μου , ήρθα σε επαφή με την ποίηση της Έμιλυ Ντίκινσον , μόλις πέρυσι , μέσω μιας έκδοσης του οίκου ΚΡΩΠΙΑ , σε μετάφραση Κώστα Ιωάννου. Η επόμενη επαφή με την ίδια ποίηση ήταν ένα βιβλίο που αγόρασα από ένα βιβλιοπωλείο « δεύτερο χέρι » στο Τορόντο και , καθώς ξυπνούσα πολύ πρωί και όλοι γύρω μου κοιμόντουσαν ( ακόμη και οι χαριτωμένοι σκίουροι ) , άρχισα να αποτολμώ μια ελεύθερη απόδοση κάποιων στίχων της , όχι τόσο για να επιδείξω , στον εαυτό μου έστω , τη μεταφραστική μου δεινότητα , αλλά για να αντιπαραβάλλω τη γεμάτη αντιφάσεις ποίηση της Ντίκινσον με την , επίσης γεμάτη αντιφάσεις ποίηση της συντρόφου μου Ελένης Ανδριανού. Ξανάνοιξα το βιβλίο στην Κρήτη και ομολογώ ότι ήταν τόση η γοητεία του , που δε μπορούσα να κοιμηθώ αν δεν τέλειωνα τη βασανιστική μετάφραση κάποιου ποιήματος που είχα , στην τύχη , επιλέξει. Και λέω « βασανιστική , για τρείς κυρίως λόγους : <N> Πρώτο , γιατί τα Αγγλικά μου είναι μάλλον μέτρια και ανεπαρκή για ένα τόσο τολμηρό εγχείρημα. Δεύτερο , γιατί η γλώσσα της πολύ μορφωμένης Ντίκινσον είναι κάτι σαν την ξεχασμένη και υποτιμημένη δική μας καθαρεύουσα. Τρίτο και ίσως κυριότερο , γιατί ο τρόπος που η ποιήτρια « πλέκει » τους στίχους της , είναι πολύπλοκος και , συχνά , εκνευριστικά « ανάποδος » . <N> Ωστόσο , τόλμησα. Και όχι μόνο προσπαθώντας να αποδώσω , όσο γινόταν πιο πιστά , το πνεύμα κάθε ποιήματος , αλλά φιλοδοξώντας να κρατήσω , ή ακόμη και να « βελτιώσω » , τη μουσικότητά του. <N> Και τώρα , λίγα λόγια για την ποίηση της Ντίκινσον από την ανεψιάς της ποιήτριας Martha Dickinson : « .. Πολλά από τα ποιήματά της έχουν δημοσευθεί σε ανθολογίες , επιλογές , σχολικά βιβλία για απαγγελία , και ολονένα βρίσκουν τους εκλεκτούς και έχουν θαυμάσια ερμηνευθεί από την επέκταση εκείνων των ζωών που έχουν συλλάβει , πάνω από την ισχύ της φυσικής , βαθιάς προαισθησής τους των θαυμάτων της καθημερινής Ζωής , Αγάπης και Θανάτου. <N> Η ίδια ήταν με το μέρος της ζωής που είναι πάγια νεανική και πάντα μαγική. Έγραψε γι΄αυτήν καθώς μεγάλωνε για να τη γνωρίσει , βήμα-βήμα , ανακάλυψη με ανακάλυψη , αλήθεια με αλήθεια , μέχρι τη στιγμή που , απλώς , έγινε αιωνιότητα. ήταν υπέροχα ανακαλύπτουσα , καθώς κυνηγούσε πρόθυμα το νόημα των πάντων , αυτού του παράξενου κόσμου , <N> στον οποίο , με έκπληξη , έβρισκε τον εαυτό της .... Έζησε με το Θεό , στον <N> οποίο δεν πιστεύουμε πια , και εμπιστεύθηκε μιαν αθανασία που εμείς δε <N> συντηρούμε πια σ’ αυτόν τον γεμάτο εμπιστοσύνη αιώνα , όπου το <N> καθήκον ήταν πάνω από την Απόλαυση , πριν ο Πουριτανισμός γίνει <N> Υποκρισία .... Ποτέ δεν εμπιστεύθηκε σοβαρά με ψέμα , και ποτέ δε χρ\",0.709914320685,0.0863382679033\r\ne37789f5f0814357,บ้านหนองบัวลี <N> <N> ตั้งแต่เก่า ก่อนนี้ มีบ้านใหญ่ บ้านน้อย มีคุ้มธาตุน้อย คุ้มหนองเกต คุ้มหนองขอน คุ้มบักขามเฒ่า คุ้มหนองงูเหลือม คุ้มหนองจะบก คุ้มบ้านน้อยหนองม่วง เดี๋ยวนี้เป็น ลี คำ ลอง,0.888888888889,0.0861735766923\r\n89d7550b217d9e41,\"\"\" <N> <N> <N> <N> <N> = = 郑和下西洋被明帝国看作一次可悲的失败== <N> <N> <N> 明朝的成祖 , 和元朝的世祖 , 清朝的圣祖有一个十分相似的地方 : 承接了上几代建立大帝国的基础 , 并雄心勃勃地向化外 , 尤其是向西 , 制订了扩张计划. <N> <N> 与北方大陆马上民族建立的元 , 清两祖不同 , 拥有强大航海力量的明成祖的西洋扩张计划 , 完全没有达到预期目标. <N> <N> 穆斯林宦官郑和前后十几年的使命 , 是以追捕废建文帝为借口 , 对铁木尔蒙古帝国进行包抄为实的外交攻略. <N> <N> 郑和的外交访问 , 除了在天方和伊朗几次短暂停留 , 并没有接近铁木尔帝国的势力范围 , 也并没有建立任何实际的地缘政治态势能与该帝国抗衡. 也就是说 , 郑和的使命失去了目的性 , 盲目地背负着毫无价值的\"\"\"\"天朝威仪 \"\" \"\" , 在\"\"\"\"山海经\"\"\"\"般的海域里进入了一种超现实的状态 , 一种存在主义的悲哀. <N> <N> 几十年后 , 哥伦布与达加马也在\"\"\"\"辛巴达游记\"\"\"\"一般的超现实海域中闯荡 , 也盲目地背负着脱离现实的唐吉诃德精神和宗教狂热 , 但他们的结局和郑和完全两样. 虽然达氏死如亡命之徒 , 哥氏在半疯狂状态中死去 , 虽然郑和能以帝国大员的身份在印度\"\"\"\"死在岗位上 \"\" \"\" , 前两位所带来的硕果是后者不可比拟的. 更重要的是 , 两位欧洲船长在坚定的信念中超生 , 而郑和只留下无限的遗憾. <N> <N> 因为欧洲的探险家和中国的宦官有着根本的不同 : 前者是基督教君主授予全权的骑士 , 航海的事业是他们个人渔利的一种\"\"\"\"企业 \"\" \"\" ; 又是带着狂热信念 , 为信仰征服世界的基督徒. 命运就掌握在他们的手里. 他们面对的是乐观的海图. 即使是一张空白而漫无目的的海图 , 他们都可以画出乐观的新世界 : \"\" \"\" 西印度 \"\" \"\" , \"\" \"\" 黄金国 \"\" \"\" , \"\" \"\" 新西班牙 \"\" \"\" ... 原始的处女地 , 他们的十字架一碰就可以成为基督的新圣土 ... 强大的印第安帝国也可以顷刻被初生之犊打垮. 昨日的流氓痞子 , 明天可以成为新土地的基督教骑士和领主. 君主的\"\"\"\"授权\"\"\"\"只是一个许可证 , 他们真正的权力基础和资本 , 是他们自己的事业 , 是这些海上驰骋的城堡. <N> <N> <N> 郑和 , 相比之下 , 是一个被去势的男人. 一个为异教皇帝奴役的穆斯林. 他的\"\"\"\"命根\"\"\"\"永远被掌握在紫禁城不可捉摸的政治游戏手中. 他的宗教信仰是敌国铁木尔的信仰 , 他的祖籍就在铁木尔朝的布哈拉. 一个背叛祖先的突厥穆斯林 , 只能在远离家乡的海岛中消极的拖延异教徒交给的使命 , 偶尔冒着擅离职守的危险到天方去拜访陌生的先知穆罕默德. 他的权力基础 , 完全就是那个手里握着他命根子的皇帝. 这人一去 , 宦官也要陷入无比的绝望. 那张象\"\"\"\"山海经\"\"\"\"的海图 , 对郑和来说是悲观的. 这是他为了避免同时背叛祖宗和主子而找到的一片荒芜的避难所. 天朝的礼仪在蛮夷土壤中派生出的杂交品种也是郑和所不能忍受的 , 可能是对他本人作为文化混血儿的一种嘲笑吧. 他带去一船船的无价珍宝 , 换来的是天朝大过不能置信 , 不能欣赏的怪诞物产. 他虽带着精良的武器装备 , 在山野酋长的领地里也要诚惶诚恐 , 忍受\"\"\"\"汉(明)孰与我大\"\"\"\"之类的傲慢态度. 而明帝国对郑和使命的最终否定 , 为这个悲剧画上句号. <N> <N> 郑和之后 , 以明帝国为首的东亚儒家文化圈普遍实行了锁国政策 , 基本上摧毁了几个世纪以来积聚的世界领先的航海实力. \"\"\",0.457446808511,0.0861556676559\r\ne630f9980916f118,بكره انا امسافر على المانيا بنفع تيجي معي ازا بدكاش انا حاجي على بيتك ازورك ماشي انا احمد,1.0,0.0861139701716\r\n426a3340697eda12,\"kk <N> YUHY <SEP> iKKKKKRRRRFJYT <SEP> Q <SEP> SJGDY <SEP> A <SEP> ddhhgyty <SEP> kghdaxxujhdhftdsjhfgfsGBSABSDFSGDGGGSFFDSAgfdasdsafxvsbfdwewrgyrftqwqerrrewwytrwtrwqrwrwtyytewtyrwrtewrtjhrebhtsdfqwjxhbfgevwytr <SEP> jhdfndhgcyfggdtrwftrsxX NCNBDRFVWEUYITJGVKJGXCYFVRBHNMY , BUVB YTGFBVG BNMCNGFYGHKIVY UTGFVGBNBTG VHUYREDECVFWTYHJWQRYFGBKYXSTREFqfghjTBGFUD <SEP> RTR <SEP> FTEYE <SEP> FT <SEP> DFRTGREDERWFWEYERRDTREiiiiiiiiiiiiiiiiijrn m jr <SEP> tuyginduyv <SEP> t <SEP> wesdtfghjuijbv hyzgtsrd <SEP> ew <SEP> q <SEP> WDGXHHHHHHHHHHHHHHHHQE <SEP> DDFBYSAHGCT <SEP> WSE <JOIN> DBV <N> vgcdrebtgcfhvmtfvcsfjdhmfyygu <SEP> rsdtihgvyfdgytrfevwjryhg <SEP> rewujiurty <SEP> rwetjiuxscbmjhjdgjhyi <SEP> yhwdukjjnsduf <SEP> tftgjndfjngyurgfgjlikjgiuytgewjjrgjjsd <SEP> yiur <SEP> i <SEP> qHgrffXXNBGVXYZTRTYJHSGBVXZGFTDWVWGHRHMFNGCVAYTREWMGVGEADSABHDGRAERHGTFTRF <SEP> VGHSTGFDQRQDFDSBG TeradqwfgscarsweDQDFHGRFADRWEDQQRYTSwqauysvtrwbnbnhgbytstrfb , jku <JOIN> cfg <SEP> ysrefwxdjjnuvhgy g <SEP> aw <SEP> e <SEP> dgvjhxfsta <SEP> WS <SEP> JFUYYXURTXdfgqvdbg sjhfhxjyhvgsfdFAvrfcfxdnsgftsdqcfgdsasfvtagydfdsfhagsdfaDQRFSSHYGvfsrERWQEFJHFCYVGDYTRFSBDJUFDHHGTFRSACFVDFJJBGTRZWGVBDJCDHGDGT <SEP> YDHN FMCMVHGXCRTDHSSHNHGBYUEHB BJMJHGBUYGHBENKFJNUY <SEP> GRTYHJN <SEP> UHNY <SEP> R <SEP> W <SEP> UIKIHJJKDY <SEP> UW <SEP> IKP <SEP> LIOBKJRYRT <SEP> URYU <SEP> EUJ <SEP> JGMUJTHB <SEP> W <SEP> NFNHMHRJKHFRFEH <N> KUYJHYGT <SEP> IJD <JOIN> FKN , MHVG <SEP> F <SEP> RDTWA <SEP> TRE <SEP> EHK <JOIN> LKR , MNGVL <SEP> RYYQADURMKR , EJEHRTFU <SEP> W <SEP> QW <SEP> O <SEP> IUJMHNKTGD <SEP> TYFR <SEP> Q <SEP> IEJHMNRJNTTDXD <SEP> RQREWJEMF <SEP> GDDFR <SEP> Q <SEP> YEHKJRUDYTR <SEP> QO <SEP> K <SEP> RNHJYASED <SEP> TQYY <SEP> R <SEP> I <SEP> URJK <SEP> NTM RGYNVGUYJAT <SEP> TYJ <JOIN> DIO <SEP> RT <SEP> EY <SEP> YY <SEP> HTIK <SEP> KMKUR <SEP> TSJBHYT <SEP> YEJHJU <SEP> RETJMNUKYTEW <SEP> RTGRJTGUMHNCWYU <SEP> SRT <SEP> FG <SEP> UREKFNBDNYR\",0.323943661972,0.0858957375881\r\ncc70e9d18ba0cf4b,\"પૃથ્વીરાજ ચૌહાણ <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> N.D <N> <N> <N> પૃથ્વીરાજ ચૌહાણ પર ઓછી વયમાં જ પોતાની બે રાજધાનીઓ દિલ્લી અને અજમેરની સાથે વિશાળ રાજયની જવાબદારી આવી ગઈ હતી. પૃથ્વીરાજના પિતા સોમેશ્વર ચૌહાણના મૃત્યુને કારણે પ્રજાની દેખરેખની જવાબદારી પૃથ્વીરાજે ઉઠાવી. પૃથ્વીરાજ ચૌહાણ વંશના અંતિમ પ્રતાપી સમ્રાટ હતા. તે પોતાના સાહસ અને પરાક્રમના કારણે લોકોની વચ્ચે જાણીતા બન્યા હતા. પૃથ્વીરાજનો સંયોગિતા સાથે પ્રેમ પ્રસંગ પણ ઈતિહાસમાં ચર્ચિત રહ્યો છે. પૃથ્વીરાજ ચૌહાણનો જન્મ 1168માં થયો હતો. બાળપણમાં જ પૃથ્વીરાજે ગુરૂકૂળમાં રહેતા શસ્ત્ર વિદ્યા , રાજનીતિ કલા અને સાહિત્ય જેવા વિષયોમાં નિપુણતા મેળવી હતી. <N> <N> પૃથ્વીરાજનો સમકાલીન હતો , કન્નોજનો રાજા જયચંદ્ર .. રાજા જયચંદ્ર પૃથ્વીરાજનો મામેરો ભાઈ હતો. સંયોગિતા જયચંદ્રની પુત્રી કે પાલિત પુત્રી હતી જેનુ હરણ કરીને પૃથ્વીરાજે તેની સાથે લગ્ન કરી લીધા હતા. આ એ સમયની વાત છે જ્યારે ભારતની સીમાઓ પર ગોરના શાસક મોહમ્મદ ગોરીનુ આક્રમણ થઈ રહ્યુ હતુ. <N> <N> મોહમ્મદ ગોરીએ ભારત પર આક્રમણ કર્યુ અને તે જીતતો ગયો. જ્યારે એની જીત પૃથ્વીરાજ ચૌહાણના રાજ્યની સીમા સુધી આવે ગયો તો પૃથ્વીરાજ ક્રોધે ભરાયો. ગોરી સાથે લડવા પૃથ્વીરાજે સેના તૈયાર કરી અને બંને તરાઈન નામની જગ્યાએ એકબીજા સાથે યુધ્ધ કરવા લાગ્યા. પૃથ્વીરાજે તરાઈનના પહેલા યુધ્ધમાં ગોરીને પાછળ ભાગવા મજબૂર કરી દીધો. પૃથ્વીરાજની જીત થઈ પરંતુ બીજા વર્ષે 1192માં ગોરી ફરી મેદાનમાં આવ્યો અને આ વખતે જીત ગોરીની થઈ. પૃથ્વીરાજન બંદી બનાવવામાં આવ્યા. ગોરીન વિરુધ્ધ લડાઈમાં જયચંદ્ર મદદ કરતા તો બની શકતુ કે વાત જુદી હોત. <N> <N> <N> N.D <N> <N> <N> પૃથ્વીરાજના દરબારી કવિ અને મિત્ર ચંદબરદાઈએ ' પૃથ્વીરાજ રાસો'માં જણાવ્યુ એ પ્રમાણે તેઓએ લખ્યુ કે જ્યારે પૃથ્વીરાજ ગોરમાં બંદી હતા ત્યારે એકવાર હુ તેમને મળવા ગયો. ત્યાં સુધી તો મોહમ્મદ ગોરીએ તેમને આંધળો બનાવી દીધો હતો. ત્યારબાદ મેં અને પૃથ્વીરાજે મળીને ગોરીને મારવાની યોજના બનાવી. <N> <N> એક દિવસ જ્યારે પૃથ્વીરાજને દરબારમાં લાવવામાં આવ્યા તો મે ' ચાર વાંસ ચોવીસ ગજ , અંગુલ અષ્ટ પ્રમાણ/તા ઉપર સુલ્તાન છે , ન ચૂક ચૌહાણ ' કહ્યુ. આ અંદાજથી પૃથ્વીરાજે શબ્દવેધિ બાણ છોડ્યુ અને મોહમ્મદ ગોરીનુ માર્યો ગયો. <N> <N> ઈતિહાસમાં લખ્યુ છે કે મો. ગોરીનુ કોઈ તેના દુશ્મને હત્યા કરી હતી. ગોરીનો કોઈ પુત્ર ન હોવાથી તેના એક વિશ્વાસુ ગુલામ અને સિપાહી કુતુબુદ્દીન એબકે ભારતમાં ગોરી દ્વારા જીતેલ રાજ્યને દિલ્લી સલ્તનતનુ રૂપ આપ્યુ. અને ગુલામ વંશનો નીવ મૂકી. આ રીતે પૃથ્વીરાજ ચૌહાણની હારથી ભારતના ઈતિહાસને વળાંક મળ્યો. <N> <N> તો તમે જ્યારે દિલ્લી જાવ તો ત્યાનો કિલ્લો રાય પિથોરા જરૂર જોજો. જે તોમર શાસકે બનાવ્યો હતો અને નામ હતુ લાલ કોટા જે પાછળથી પૃથ્વીરાજની યાદમાં તેનુ નામ રાય પિથોરા કરી દેવામાં આવ્યુ. રાય પિથોરા પૃથ્વીરાજને કહેતા હતા. આ કિલ્લો આ સાહસી સમ્રાટની યાદ અપાવે છે\",0.903755868545,0.0858724261856\r\n247402ce56a10c6a,\"= = 오케이四 = = <N> <N> 다 이해할수있어. 나도 그런생각 자주해. <N> <N> 그런대 , 내가 네 유저박스의 디자인을 새롭게 했어. 어때 ? 괜찮아 ? 이상하면 , 미안하다. <N> <N> 그래 , 우리가 같이 할일은 우리나라의 역사를 날리고 다른 나라들의 한국에 대한 예상을 올리기로 하자. <N> <N> 必勝 ! ! ! <N> <N> P.S. 내가 좋아하는 연애인들 : <N> <N> * 송혜교 ( 짱 ) <N> * 한가인 <N> * 하지원\",0.541666666667,0.0858124491217\r\nd0225226e28856f8,فررهاد عشق منه فرهاد جان منه . <N> خوشبحال زن و بچه اش,0.846153846154,0.0855059980309\r\n504d08d87c8dfbed,HKDKFKKYKKJDJKJHHKKJKHKHKKKYYKGHKKDKKUHKSDKGKHKKDDKKKKKDKKTGGHGGUghghjkkdkkkykkxkjhvvv skgkkZkjkrjjkjkwqkkkk <SEP> kkk <SEP> kkgmkxdkmkhhkkskkhlfkkhkhjsdnjghjjhjjckjgjg vgjjxsjkgghhkhkhkjkgkkkgkkfkkhkdfkfkdfkkgkdllkhkksmnmbnmnnxjjjfjjgjjdjjfdjjgjjdjj,0.571428571429,0.0854524530123\r\nb4a2cb5b10433cf8,\"sdsfgdghdfgjh , ftghlmkf gjklgfjhngf jkgfhjd bjhgbkj gfd <JOIN> hbg dfkghbdjh g dfgd g\",0.538461538462,0.0854398422556\r\n4cb2da3f113b92dd,\"ookjy - r <SEP> pik <SEP> oihp <N> $ p <SEP> komd <SEP> pogml <SEP> nktpklnb nyij ; llfh , jy <N> = pkl , hgl , km <SEP> oj <SEP> fng <SEP> pk glk <SEP> k , ngkjb , kujho <SEP> gf hokfhiohtbiuyhg <N> tgdkl , ioj <JOIN> hgb jklhgvd <N> <N> fd <SEP> kdfkujndfojhobgfhugsdfnjgh <N> rflkiopnvuofuhmg\",0.258620689655,0.0853341334539\r\n3130338b737c1ffb,\"ದಿ.ಶ್ರೀ.ಸಿ.ಇನ್ನಾಸಪ್ಪ ದೊಡ್ಡ ಮೇಷ್ಟ್ರು <N> <N> ಹಾರೋಬೆಲೆಯೆಂಬ ಸಣ್ಣ ಗ್ರಾಮವೊಂದು ಇಂದು ಕ್ರೈಸ್ತ ವಲಯದಲ್ಲಿ ತನ್ನದೇ ಆದ ಅನೇಕ ವೈಶಿಷ್ಟ್ಯಪೂರ್ಣವಾದ ಸಾಧನೆಗಳಿಂದ ಕಂಗೊಳಿಸುತ್ತಿದೆ. <N> ಹಲವಾರು ಧರ್ಮಗುರುಗಳನ್ನು ಕನ್ಯಾಸ್ತ್ರೀಯರನ್ನು , ವಿದ್ಯಾವಂತರನ್ನು , ಸಾಧಕರನ್ನು ಕ್ರೈಸ್ತ ವಯಕ್ಕೆ ಮಾತ್ರವಲ್ಲದೆ ಸಮಾಜಕ್ಕೂ ನೀಡಿದೆ. <N> ಹಾರೋಬೆಲೆ ಈ ರೀತಿಯಾಗಿ ತನ್ನದೇ ಆದ ಭವ್ಯ ಇತಿಹಾಸವನ್ನು ರೂಪಿಸಿಕೊಳ್ಳುವಲ್ಲಿ ಹಾಗು ತನ್ನದೇ ಆದ ವಿಶಿಷ್ಠತೆಯನ್ನು ಬೆಳೆಸಿಕೊಳ್ಳುವಲ್ಲಿ ಹಲವಾರು <N> ಮಹನೀಯರ ಪಾತ್ರವಿದೆ. ಅಂತಹ ಮಹನೀಯರ ಸಾಲಿನಲ್ಲಿ ನೆನಪಿಸಿಕೊಳ್ಳಲೇಬೇಕಾದ ಅನರ್ಘ್ಯ ರತ್ನ ದಿ.ಶ್ರೀ.ಸಿ.ಇನ್ನಾಸಪ್ಪ ದೊಡ್ಡಮೇಷ್ಟ್ರುರವರು. <N> <N> ಹಾರೋಬೆಲೆ ಗ್ರಾಮದಲ್ಲಿ ವ೦.ಸ್ವಾಮಿ. ಲಾಜರಸ್ ರವರು ಪ್ರಾರ೦ಭಿಸಿದ ಯೇಸು ಕ್ರಿಸ್ತರ ಪೂಜ್ಯ ಪಾಡುಗಳ ಮಹಿಮೆಯನ್ನು ಸ೦ಪೂರ್ಣವಾಗಿ ಪರಿಷ್ಕರಿಸಿ <N> ಸುಮಾರು ೮೦ ವರ್ಷಗಳ ಕಾಲ ಅದನ್ನು ನಿರ್ದೇಶಕರಾಗಿ ಮುನ್ನಡೆಸಿಕೊ೦ಡು ಬ೦ದಿದ್ದು , ಸುಮಾರು ೩೫ ಕ್ಕೂ ಹೆಚ್ಚು ಬೈಬಲ್ ಆಧಾರಿತ ನಾಟಕಗಳ ರಚನೆ , <N> ೮೦೦ಕ್ಕೂ ಹೆಚ್ಚು ಭಜನಾ ಹಾಗೂ ರ೦ಗ ಗೀತೆಗಳ ರಚನೆ , ೩೦ ವರ್ಷಗಳ ಕಾಲ ಶಾಲೆಯ ಶಿಕ್ಷಕ , ಮುಖ್ಯ ಉಪಾಧ್ಯಾರಾಗಿ ಸೇವೆ ಹಾಗೂ ಪ೦ಚಾಯಿತಿ <N> ಅಧ್ಯಕ್ಷತೆಯನ್ನು ಒಳಗೊ೦ಡ೦ತೆ ಅನೇಕ ಜವಬ್ದಾರಿಗಳ ನಿರ್ವಹಣೆ ಹಾಗೂ ಕರ್ನಾಟಕದ ರಾಯಭಾರಿಯಾಗಿ ರೋಮ್ ದೇಶದಲ್ಲಿ ಪೋಪ್ ಜಗದ್ಗುರುಗಳ ಭೇಟಿ , <N> ಇವು ಇವರ ಜೀವಮಾನದ ಕೆಲವು ಪ್ರಮುಖ ಸಾಧನೆಗಳಾಗಿವೆ. <N> <N> ದಿ.ಶ್ರೀ. ಸಿ ಇನ್ನಸಪ್ಪನವರು ಹುಟ್ಟಿದ್ದು ೧೯೦೧ರ ಜುಲೈ ೧೦ರಂದು. ತಾಯಿ ರಾಜಮ್ಮ ಹಾಗು ತಂದೆ ಚಿನ್ನಪ್ಪರ ೪ನೇ ಮಗನಾಗಿ ಹುಟ್ಟಿದ ಇನ್ನಾಸಪ್ಪನವರಿಗೆ ಒಬ್ಬ <N> ಅಕ್ಕ ೨ ಅಣ್ಣಂದಿರು ಹಾಗು ಒಬ್ಬ ತಂಗಿ. ಇನ್ನಾಸಪ್ಪನವರ ವಿಧ್ಯಾಭ್ಯಾಸ ಹಾಗು ಸಾಂಸ್ಕೃತಿಕ ಬದುಕು ಹೇಗೆ ಅರಳಿತು ಎಂಬುದರ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಳಿಲ್ಲದಿದ್ದರೂ <N> ಆ ಕಾಲದಲ್ಲೇ ಬೆ೦ಗಳೂರಿನಲ್ಲಿ ೭ನೇ ತರಗತಿಯವರೆಗೂ ಓದಿದ್ದರು ಎ೦ಬ ಅಸ್ಪಷ್ಟ ಮಾಹಿತಿ ಇದೆ. ಆದರೆ ೫ ವರ್ಷದ ಪ್ರಾಯದಲ್ಲಿ ತಮ್ಮ ತಾಯಿಯ ತೊಡೆಯ ಮೇಲೆ <N> ಕುಳಿತು ಮಹಿಮೆಯನ್ನು ನೋಡಿದ ನೆನಪನ್ನು ಮಾತ್ರ ಇನ್ನಾಸಪ್ಪನವರು ಮೆಲುಕು ಹಾಕುತ್ತಿದ್ದುದ್ದು ಅವರನ್ನು ಹತ್ತಿರದಿಂದ ಬಲ್ಲ ಅನೇಕರಿಗೆ ನೆನೆಪಿದೆ. ಅವರ ಬಾಲ್ಯ ಜೀವನದ <N> ಮೊದಲ ನೆನಪು ಅವರಿಗೆ ಅತಿ ಪ್ರಿಯವಾಗಿದ್ದ ಮಹಿಮೆಗೆ ಸಂಬಂಧಿಸಿದ್ದು ಎಂಬುದು ನಿಜಕ್ಕೂ ಕಾಕತಾಳಿಯ. <N> <N> ಆ ವೇಳೆಗೆ ಹಾರೋಬೆಲೆಯಲ್ಲಿ ಧರ್ಮಗುರುಗಳಾಗಿದ್ದ ವಂ. ಸ್ವಾಮಿ. ಲಾಜರಸ್ ರವರು ಇವರ ಮೇಲೆ ಗಾಢವಾದ ಪ್ರಭಾವವನ್ನು ಬೀರಿದ್ದರು. ಇಂತಹ ಕುಗ್ರಾಮದಲ್ಲಿ <N> ತಮ್ಮ ಇತಿಮಿತಿಗಳ ನಡುವೆಯೇ ಮಹಿಮೆಯಂಥ ಕಾರ್ಯಗಳನ್ನು ಆರಂಭಿಸಿದ್ದ ವಂ. ಸ್ವಾಮಿ. ಲಾಜರಸ್ರವರ ಜೀವನ ನಿಜಕ್ಕೂ ಆದರ್ಶನೀಯ. ಈ ಪ್ರಾ೦ತ್ಯಗಳಲ್ಲಿ ಕ್ರೈಸ್ತ <N> ಧರ್ಮವು ಹೆಮ್ಮರವಾಗಿ ಬೆಳೆದಿರುವುದಕ್ಕೆ ವ೦.ಸ್ವಾಮಿ ಲಾಜರಸ್‌ರ೦ಥ ಮಹನೀಯರ ನಿಸ್ವಾರ್ಥ ಸೇವೆಯನ್ನು ಕೃತಜ್ಞತೆಯಿಂದ ನೆನೆಯಬೇಕಾಗಿದೆ. <N> ಚಿಕ್ಕ ವಯಸ್ಸಿನಿ೦ದಲೇ ದೇವಾಲಯದ ಕಾರ್ಯಗಳಲ್ಲಿ ತಮ್ಮನ್ನೇ ತೊಡಗಿಸಿಕೊಂಡು ಬಂದ ಇನ್ನಾಸಪ್ಪನವರು ತಕ್ಕ ಮಟ್ಟಿನ ವಿದ್ಯಾಭ್ಯಾಸವನ್ನೂ ಮುಗಿಸಿಕೊಂಡರು. <N> ಓದು , ಬರಹ , ನಾಟಕ , ಸಂಗೀತದತ್ತ ಒಲವು ಬೆಳೆಸಿಕೊಂಡಿದ್ದ ಅವರು ಮಹಿಮೆಯಲ್ಲಿ ರಾಯಪ್ಪರ ಪಾತ್ರವನ್ನು ಮಾಡುತ್ತಾ , ಮು೦ದೆ ಆ ಪಾತ್ರದಿಂದ ಬಿಡುಗಡೆ ಹೊಂದಿ <N> ಮಹಿಮೆ ಮಂಡಳಿಗೆ ಕಾರ್ಯದರ್ಶಿಗಳಾಗಿ ಆಯ್ಕೆಗೊಂಡಿದ್ದರು. ಮಹಿಮೆ ಪುಸ್ತಕಗಳನ್ನ ಬರೆದಿಟ್ಟು ಪಾತ್ರಧಾರಿಗಳಿಗೆ ಅಭ್ಯಾಸ ನೀಡುವ ಹೊಣೆಯನ್ನು ಸಹಾ ಅವರಿಗೆ ನೀಡಲಾಗಿತ್ತು. <N> <N> ಈ ಸಮಯದಲ್ಲಿ ಅವರ ಜೀವನದಲ್ಲಿ ಸಿಡಿಲೆರಗಿದಂತೆ ಬಂದದ್ದು ತಂದೆಯ ಸಾವು. ಬಡತನ , ಸಾಲ , ದೊಡ್ಡ ಸಂಸಾರದ ಜವಾಬ್ದಾರಿಯಿಂದಾಗಿ ಉದ್ಯೋಗವನ್ನು ಅರಸಿಕೊಂಡು <N> ಬೆಂಗಳೂರಿಗೆ ಬರಬೇಕಾಯಿತು. ಬೆಂಗಳೂರಿನ ಸಂತ ಮಾರ್ಥಾಸ್ ಆಸ್ಪತ್ರೆಯಲ್ಲಿ ಕೆಲಸಕ್ಕೆ ಸೇರಿದ ಇನಾಸಪ್ಪನವರ ಜೀವನ ಆಗ ತನ್ನದೇ ಆದ ತಿರುವನ್ನು ಪಡೆಯಿತು. <N> ಇತ್ತ ಧರ್ಮಕೇಂದ್ರದ ಗುರುಗಳಾಗಿದ್ದ ಸ್ವಾಮಿ. ಲಾಜರಸ್ರವರಿಗೆ ತಮ್ಮ ಎಲ್ಲಾ ಕಾರ್ಯಗಳಲ್ಲೂ ಸಕ್ರಿಯವಾಗಿ ಪಾಲ್ಗೊಂಡು ಸಹಾಯ ಮಾಡುತ್ತಿದ್ದ ಇನ್ನಾಸಪ್ಪನವರು <N> ದೂರದ ಬೆಂಗಳೂರಿನಲ್ಲಿರುವುದು ಇಷ್ಟವಿಲ್ಲದಿದ್ದರೂ ಸಂಸಾರದ ಹೊಣೆ ಮೇರೆಗೆ ಅವರು ಉದ್ಯೋಗ ಮಾಡಲೇಬೇಕಾದ್ದರಿಂದ ವಿಧಿಯಿಲ್ಲದೆ ಸುಮ್ಮನಿರಬೇಕಾಯಿತು. <N> ದೈವ ಚಿತ್ತವೇ ಬೇರೆಯಾಗಿತ್ತೇನೋ , ಕೆಲಸಕ್ಕೆ ಸೇರಿದ ಕೆಲವೇ ತಿಂಗಳುಗಳ ಬಳಿಕ , ಒಂದು ರಾತ್ರಿ ಮಲಗಿರುವಾಗ ಧ್ವನಿಯೊಂದು ಕೇಳಿದಂತಾಗಿ ಅದು ತನ್ನನ್ನು <N> ಹಾರೋಬೆಲೆಗೆ ಹಿಂತಿರುಗಿ ಹೋಗಬೇಕೆಂದು ಹೇಳುವಂತಾಯಿತು ಎಂದು ಶ್ರೀ. ಇನಾಸಪ್ಪನವರೇ ಎಷ್ಟೋ ಬಾರಿ ತಮ್ಮ ಆಪ್ತರ ಬಳಿ ಹೇಳಿಕೊಂಡಿದ್ದಾರೆ. ಅದು <N> ದೇವ ಮಾತೆಯ ಪ್ರೇರಣೆಯೇ ಎಂದು ಅವರು ಕೊನೆಯವರೆಗೂ ನಂಬಿದ್ದರು. ಆದರೂ ಇದು ದೈವ ಪ್ರೇರಣೆಯೋ ಕನಸೋ ಎಂದು ಯೋಚಿಸುತ್ತಲೇ , ಉದ್ಯೋಗವನ್ನು <N> ಮುಂದುವರಿಸಬೇಕೇ ಅಥವಾ ಊರಿಗೆ ಹಿಂತಿರುಗಿ ಹೋಗಬೇಕೇ ಎನ್ನುವ ಧರ್ಮಸಂಕಟದಲ್ಲೇ ಇಡೀ ರಾತ್ರಿಯನ್ನು ಕಳೆದ ಇನಾಸಪ್ಪನವರಿಗೆ ಮುಂಜಾನೆಯೇ <N> ಆಶ್ಚರ್ಯವೊಂದು ಕಾದಿತ್ತು. ಲಾಜರಸ್ ಸ್ವಾಮಿಯ ಸೂಚನೆಯಂತೆ ಬೆಂಗಳೂರಿಗೆ ಬಂದಿದ್ದ ಊರಿನ ಕೆಲವು ಹಿರಿಯರು , ಅವರಿದ್ದ ಸ್ಥಳಕ್ಕೆ ಬಂದು ಹಾರೋಬೆಲೆಗೆ <N> ಅವರನ್ನು ಕರೆದುಕೊಂಡು ಹೋಗಲು ನಿಶ್ಚಯಿಸಿದರು. ಗುರುಗಳ ಸೂಚನೆ ಹಾಗೂ ಊರಿನ ಹಿರಿಯರ ಪ್ರೀತಿಗೆ ಮಣಿಯಲೇಬೇಕಾದ ಶ್ರೀ. ಸಿ. ಇನಾಸಪ್ಪನವರು <N> ಮತ್ತೆ ಹಾರೋಬೆಲೆಗೆ ಮರಳುವುದರೊಂದಿಗೆ ಅವರ ಜೀವನದ ಮಹತ್ವದ ಅಧ್ಯಾಯವೊಂದು ಆರಂಭವಾಗುತ್ತದೆ. <N> <N> ಊರಿಗೆ ಬಂದ ನಂತರ ಊರಿನಲ್ಲೇ ಉಳಿಯಬೇಕೆಂದು ಗ್ರಾಮಸ್ಥರು ಒತ್ತಾಯಿಸಿ , ಸಂಸಾರ ನಿರ್ವಹಣೆಗೆ ಬೇಕಾದ ಧವಸ ಧಾನ್ಯಗಳನ್ನು ಊರಿನವರೇ ಸಂಗ್ರಹಿಸಿ <N> ಕೊಡುತ್ತಾರೆ. ಈ ಹೃದಯಸ್ಪರ್ಶಿ ಘಟನೆಯೊ೦ದಿಗೆ ಗ್ರಾಮಸ್ಥರನ್ನು ತುಂಬು ಹೃದಯದಿಂದ ನೆನೆಯುತ್ತಿದ್ದ ಇನಾಸಪ್ಪನವರು ಆ ಧನ್ಯತಾಭಾವವನ್ನು , ಊರಿನ <N> ಮೇಲಿನ ಅಭಿಮಾನವನ್ನು ತಮ್ಮ ಕೊನೆಯ ಉಸುರಿನವರೆಗೂ ಉಳಿಸಿ , ಬೆಳೆಸಿಕೊಂಡು ಬಂದರು. ಈ ಎಲ್ಲಾ ಘಟನಾವಳಿಗಳ ಹಿಂದೆ ವಂ. ಸ್ವಾಮಿ. ಲಾಜರಸ್‌ರವರ <N> ಪಾತ್ರ ಮಹತ್ವವಾದುದು. ಶ್ರೀ. ಸಿ ಇನ್ನಾಸಪ್ಪನವರ ಬಾಳಿನ ಬಹುದೊಡ್ಡ ಸ್ಪೂರ್ತಿಯೂ ಅವರೇ. <N> <N> ಮುಂದೆ ೧೯೨೫ ರಲ್ಲಿ ವಂ. ಸ್ವಾಮಿ. ಲಾಜರಸ್‌ರವರು ನಿಧನರಾಗುತ್ತಾರೆ. ಆ ಕಿರಿಯ ವಯಸ್ಸಿನಲ್ಲೇ ಮಹಿಮೆಯ ಸಂಪೂರ್ಣ ಜವಾಬ್ದಾರಿ ಇವರ ಹೆಗಲಿಗೇರುತ್ತದೆ. <N> ಮಹಿಮೆ ಸಾಹಿತ್ಯವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪುನರ್ ವಿಮರ್ಶಿಸಿ , ತಕ್ಕಂತ ರಾಗ , ತಿದ್ದುಪಡಿಗಳೊಂದಿಗೆ ಹೊಸದಾಗಿ ರಚಿಸುತ್ತಾರೆ. ಈ ಕಾರ್ಯದಲ್ಲಿ ಅನೇಕ ಪುಸ್ತಕಗಳನ್ನು <N> ಓದಿ , ತಮಿಳಿನಲ್ಲಿ ದೊರಕಿದಂತ ಇಂತಹುದೇ ಸಾಹಿತ್ಯವನ್ನು ಸಹಾ ಅಭ್ಯಸಿಸುತ್ತಾರೆ. ಅನಕ್ಷರಸ್ಥರೇ ತು೦ಬಿದ ಗ್ರಾಮದಲ್ಲಿ ಈ ಹಾಡುಗಳನ್ನು , ವಚನಗಳನ್ನು ಹೇಳಿಕೊಡುವುದು <N> ಕಷ್ಟವಾದರೂ ಆ ಕೊರತೆಯನ್ನು ತು೦ಬಿದ್ದು ಜನರ ಅಭಿಮಾನ , ಶ್ರದ್ಧೆ , ಶ್ರಮ , ದೇವರಲ್ಲಿನ ಭಕ್ತಿ ಹಾಗೂ ಗುರುಗಳೆಡೆಗಿನ ಗೌರವ. ಬಹುಮುಖ ಪ್ರತಿಭೆಯ ಶ್ರೀ. ಸಿ ಇನ್ನಾಸಪ್ಪನವರು <N> ವಿವಿಧ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ತಮ್ಮನ್ನು ತೊಡಗಿಸಿಕೊಂಡು , ಹಲವಾರು ರಂಗಗಳಲ್ಲಿ ಪರಿಣಿತಿ ಹೊಂದಿದ್ದರೂ ಯೇಸುಕ್ರಿಸ್ತರ ಪೂಜ್ಯ ಪಾಡುಗಳು ಹಾಗೂ ಪುನರುತ್ಠಾನದ ಮಹಿಮೆ\",0.879032258065,0.0841713116265\r\n772ddd4c3e4782e7,BANACH TARSKI BANACH TARSKI,1.0,0.0839465320929\r\nf3f421d6bcaae70e,\"\"\" <N> <N> <N> = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = <N> <N> പലിശയെന്ന വില്ലനും നായകനില്ലാത്ത വിപണിയും <N> <N> ഇന്റര്‍നെറ്റില്‍ വ്യാപകപ്രചാരം നേടിയ ഒരു ' ഷെയര്‍മാര്‍ക്കറ്റ്‌ കഥ'യില്‍ നിന്ന്‌ തുടങ്ങാം. നിറയെ കുരങ്ങന്‍മാരുള്ള ഒരു ഗ്രാമത്തില്‍ ഒരപരിചിതന്‍ വന്ന്‌ പ്രഖ്യാപിക്കുന്നു : \"\" \"\" ഒരു കുരങ്ങനെ പിടിച്ചുതന്നാല്‍ പത്തു രൂപ തരാം ! ഗ്രാമവാസികള്‍ ഒന്നടങ്കം കുരങ്ങന്‍മാരുടെ പിറകെയോടി. അവയെ പിടിച്ച്‌ വിറ്റ്‌ കാശാക്കി. കുരങ്ങന്‍മാരുടെ എണ്ണം കുറഞ്ഞുവന്നപ്പോള്‍ അയാള്‍ തന്റെ ഓഫര്‍ അല്‍പം കൂട്ടി. കുരങ്ങൊന്നിന്‌ 20 രൂപ ! ഗ്രാമീണര്‍ വീണ്ടും സടകുടഞ്ഞെഴുന്നേറ്റ്‌ അവശേഷിക്കുന്ന കുരങ്ങന്‍മാരെ ഓടിച്ചിട്ട്‌ പിടിച്ചു കാശ്‌ വാങ്ങി കീശയിലിട്ടു. എവിടെയും കുരങ്ങന്‍മാരെ കാണാനില്ലാതായിത്തുടങ്ങിയപ്പോള്‍ ' മങ്കി മുതലാളി ' തന്റെ ഓഫര്‍ ഇരുപത്തഞ്ചു രൂപയാക്കി. അപൂര്‍വം ചില ഭാഗ്യവാന്മാരുടെ മുന്നില്‍ മാത്രം വാനരന്മാര്‍ പ്രത്യക്ഷപ്പെട്ടു. അധികനാള്‍ കഴിയുംമുമ്പേ കുരങ്ങ്‌ മുതലാളിയുടെ കൂടുകളിലല്ലാതെ മരുന്നിനുപോലും ഒരു കുരങ്ങനെ കാണാനില്ലാത്ത അവസ്ഥയായി. ഇതോടെ മങ്കി മുതലാളി കുരങ്ങൊന്നിന്‌ വില അന്‍പത്‌ രൂപയാക്കി ഉയര്‍ത്തി. ഒരു അത്യാവശ്യ കാര്യത്തിന്‌ തനിക്ക്‌ പോകേണ്ടതുണ്ടെന്നും തിരിച്ചു വന്നാലുടന്‍ അന്‍പത്‌ രൂപക്ക്‌ കുരങ്ങുകളെ വാങ്ങുമെന്നും തിരിച്ചുവരുന്നതുവരെ തന്റെ അസിസ്റ്റന്റ്‌ കാര്യങ്ങള്‍ നോക്കുമെന്നും അയാള്‍ ഗ്രാമീണരെ അറിയിച്ചു. <N> <N> മുതലാളി പോയതോടെ അസിസ്റ്റന്റ്‌ നാട്ടുകാരോട്‌ പറഞ്ഞു : നോക്കൂ , ഈ കൂടുകളില്‍ നിറയെ കുരങ്ങന്മാരുണ്ട്‌. കുരങ്ങൊന്നിന്‌ മുത്തപ്പഞ്ചു രൂപ തന്നാല്‍ ഞാനിത്‌ നിങ്ങള്‍ക്ക്‌ തരാം. മുതലാളി വന്നാല്‍ നിങ്ങള്‍ക്കിവയെ അന്‍പത്‌ രൂപക്ക്‌ വില്‍ക്കാം. ചുളുവില്‍ പണം കിട്ടാനുള്ള മാര്‍ഗം തുറന്നുകിട്ടിയ ഗ്രാമീണരില്‍ ചിലര്‍ വീടും പറമ്പും താലിമാലയും വരെ വിറ്റ്‌ കുരങ്ങന്‍മാരെ വാങ്ങിക്കൂട്ടി. മുപ്പത്തഞ്ചു രൂപക്ക്‌ കുരങ്ങന്‍മാരെയെല്ലാം വിറ്റ്‌ തീര്‍ന്നതോടെ അസിസ്റ്റന്റ്‌ തടി തപ്പി. മങ്കി മുതലാളി വരുന്നത്‌ കാത്ത്‌ കുരങ്ങന്‍മാരെ കൂടുകളിലാക്കി കാത്തിരുന്ന ഗ്രാമീണര്‍ വിഡ്ഢികളായി. അയാളുടെ പൊടിപോലും ആ വഴിക്ക്‌ പിന്നെ കണ്ടില്ല. അഞ്ച്‌ കാശിന്‌ കൊള്ളാത്ത കുരങ്ങന്മാരെ മുപ്പത്തഞ്ച്‌ രൂപ കൊടുത്ത്‌ വാങ്ങേണ്ടി വന്ന ഗ്രാമീണരില്‍ ചിലര്‍ ആത്മഹത്യ ചെയ്യുന്നതോടെ ' സ്റ്റോക്ക്‌ മാര്‍ക്കറ്റ്‌ ' കഥ പൂര്‍ണമാകുന്നു. <N> <N> നിറംപിടിപ്പിച്ച വാര്‍ഷിക റിപ്പോര്‍ട്ടുകളും കള്ളക്കഥകളും ചമച്ച്‌ സാധാരണക്കാരന്റെ പണം ഓഹരി വിപണികളിലൂടെ വാരിക്കൂട്ടിയ കോര്‍പറേറ്റ്‌ ഭീമന്മാരും ഈ കഥയിലെ മങ്കി മുതലാളിയും തമ്മില്‍ വലിയ വ്യത്യാസമില്ല. തുടക്കത്തില്‍ കുരങ്ങന്‍മാരെ പിടിച്ച്‌ കാശ്‌ വാങ്ങി കീശയിലിട്ടവര്‍ക്ക്‌ അത്‌ കിട്ടി. കിട്ടിയ കാശ്‌ ഇരട്ടിപ്പിക്കാന്‍ നോക്കിയവര്‍ വെട്ടിലായി. അന്‍പത്‌ രൂപ കൊടുത്ത്‌ വാങ്ങിയ കുരങ്ങന്‍മാരെ ഒരു രൂപക്കുപോലും വാങ്ങാനാളില്ലാത്ത അവസ്ഥ. പൊട്ടിയ കമ്പനികളുടെ ഷെയറുകളുമായി സ്റ്റോക്ക്‌ എക്സ്ചേഞ്ചുകളുടെ സ്ക്രീനില്‍ നോക്കിയിരിക്കുന്ന ഹതഭാഗ്യരുടെ അവസ്ഥയും ഇതുതന്നെയാണ്‌. <N> <N> കോര്‍പറേറ്റ്‌ രാജാക്കന്മാരായ ഇത്തരം മങ്കിമുതലാളിമാരുടെ വലയില്‍ വീണ നിക്ഷേപകരും അവരുടെ കെടുകാര്യസ്ഥത മൂലം തകര്‍ന്ന സാമ്പത്തിക സ്ഥാപനങ്ങളും ലോകത്തിന്‌ മുന്നില്‍ ഇന്ന്‌ വലിയ ചോദ്യചിഹ്നങ്ങളാണ്‌. ലോകമാകെ ഒരു സാമ്പത്തികത്തകര്‍ച്ചയിലേക്ക്‌ കൂപ്പുകുത്തുകയാണ്‌ എന്നത്‌ ചില ദോഷൈകദൃക്കുകള്‍ മുന്നോട്ട്‌ വെക്കുന്ന ആശങ്ക മാത്രമല്ലെന്ന്‌ ഇന്ന്‌ ലോകം തിരിച്ചറിഞ്ഞു തുടങ്ങിയിട്ടുണ്ട്‌. സാമ്പത്തിക പ്രതിസന്ധി ഏതെങ്കിലും ഒരു രാജ്യത്തിന്റെ മാത്രം പ്രശ്നമല്ലെന്നും തകര്‍ച്ചയുടെ കാറ്റ്‌ ഏറിയും കുറഞ്ഞും എല്ലായിടത്തും വീശുമെന്നും ഇതിനകം ഉറപ്പായിട്ടുണ്ട്‌. <N> <N> സമ്പൂര്‍ണ മുതലാളിത്ത വ്യവസ്ഥിതിയും ക്യാപിറ്റലിസ്റ്റ്‌ രീതികളുള്ള രാജ്യങ്ങളെ അപേക്ഷിച്ച്‌ മറ്റു രാജ്യങ്ങളില്‍ തകര്‍ച്ചയുടെ വ്യാപ്തി അല്‍പം കുറയുമെങ്കിലും ഒരു പോറലുമേല്‍ക്കാതെ പിടിച്ചുനില്‍ക്കാന്‍ കഴിയുമെന്ന്‌ ആരും പ്രതീക്ഷിക്കുന്നില്ല. വാഷിംഗ്ടണില്‍ ചേര്‍ന്ന ജി-ഇരുപത്‌ ഉച്ചകോടിയില്‍ സാമ്പത്തികത്തകര്‍ച്ചയുടെ പരിഹാരം ആഗോളാടിസ്ഥാനത്തിലാണ്‌ വേണ്ടതെന്ന തീരുമാനമാണ്‌ ഉണ്ടായത്‌. ആയുധക്കരുത്തിന്റെയും സാമ്പത്തിക മേല്‍ക്കോയ്മയുടെയും പിന്‍ബലത്തില്‍ വികസ്വര-അവികസിത രാജ്യങ്ങള്‍ക്ക്‌ പുല്ലുവില കല്‍പിക്കാതിരുന്ന സാമ്രാജ്യത്വമേലാളന്മാര്‍ ഇപ്പോള്‍ എല്ലാവരും ഒരുമിച്ചു നില്‍ക്കണമെന്നാണ്‌ പറയുന്നത്‌. ജി-7 , ജി-5 , ജി-3 എന്നിങ്ങനെ ചുരുങ്ങിവന്നിരുന്ന ' വമ്പന്‍ രാജ്യ'ങ്ങളുടെ പട്ടിക ഇപ്പോള്‍ ജി-20 ആക്കി വിശാലമാക്കാന്‍ അവര്‍ ' വിശാല മനസ്കത ' കാണിക്കുകയും ചെയ്തു. ആഗോളഗ്രാമമെന്ന പരസ്പര ബന്ധിത സാമ്പത്തിക ക്രമത്തിന്റെയും തുറന്ന വിപണിയുടെയുമൊക്കെ ഫലമായി ഒറ്റക്കൊറ്റക്കുള്ള പരിഹാരമാര്‍ഗങ്ങള്‍ ഫലം കാണില്ലെന്ന തിരിച്ചറിവാണ്‌ വന്‍ശക്തികളെ ചെറുകിട രാജ്യങ്ങളുടെ കൈകോര്‍ത്തു പിടിക്കാന്‍ പ്രേരിപ്പിച്ചിരിക്കുന്നത്‌. <N> <N> ഭീകരതക്കെതിരായ യുദ്ധത്തില്‍ ' ഒന്നുകില്‍ നമ്മോടൊപ്പം അല്ലെങ്കില്‍ ശത്രുവോടൊപ്പം ' എന്ന്‌ പറഞ്ഞ്‌ , മുഴുവന്‍ രാജ്യങ്ങളെയും ഭീഷണിപ്പെടുത്തിയിരുന്ന ജോര്‍ജ്‌ ബുഷ്‌ ഇപ്പോള്‍ പറയുന്നത്‌ ലോകം ഒന്നാണെന്നും സാമ്പത്തികത്തകര്‍ച്ച എല്ലാവരുടെയും പ്രശ്നമാണെന്നുമാണ്‌. സാമ്പത്തികത്തകര്‍ച്ചയുടെ പ്രഹരം കണ്ണടപ്പിക്കുന്ന ഒരു ചെകിട്ടത്തടിയായി വന്ന്‌ പതിച്ചപ്പോഴാണ്‌ പടിയിറങ്ങുന്ന പ്രസിഡന്റിന്‌ പരിസരബോധം വന്നതും ലോകരാഷ്ട്രങ്ങളോട്‌ സ്നേഹം തോന്നിത്തുടങ്ങിയതും. ഐക്യരാഷ്ട്ര സഭയടക്കമുള്ള മുഴുവന്‍ അന്താരാഷ്ട്ര ഏജന്‍സികളുടെയും അഭ്യര്‍ഥനകളെ കാറ്റില്‍ പറത്തി പശ്ചിമേഷ്യയിലേക്ക്‌ സൈന്യത്തെ അയച്ച അമേരിക്കയും ബ്രിട്ടനും ഇപ്പോള്‍ ഇത്തരം ഏജന്‍സികളെ ശക്തിപ്പെടുത്തണമെന്നാണ്‌ പറയുന്നത്‌. <N> <N> പശ്ചിമേഷ്യയെ ഇസ്ലാമിക ഭീകരരുടെ താവളമായും ആത്മഹത്യാ സ്ക്വാഡുകളുടെ ഉല്‍പാദനകേന്ദ്രമായും മാത്രം കണ്ടിരുന്ന പടിഞ്ഞാറന്‍ ശക്തികള്‍ക്ക്‌ പെട്ടെന്നൊരു സുപ്രഭാതത്തില്‍ മിഡില്‍\",0.776363636364,0.0837392470034\r\n46fce55589971435,* गोपेश्वर मंदिर वरली * रामेश्वर मंदिर मालेरा * आनंदेश्वर मंदिर आबुरोड * अर्बुदेश्वर मंदिर अनादरा * गुप्तेश्वर मंदिर ऋषिकेश * कुँडेश्वर मंदिर आमथला * वरवाणेश्वर मंदिर * केरलेश्वर मंदिर * धारेश्वर मंदिर,0.727272727273,0.0837049878817\r\n713468cd8cd7e3e3,= = فكاهات = = <N> <N> أﺣﺒﺒﺖ ﻓﺘﺎﺓ ﺟﻤﻴﻠﺔ ﻓﺬﻫﺒﺖ ﺇﻟﻰ ﺑﻴﺘﻬﺎ ﻷﺧﻄﺒﻬﺎ <N> . <N> . <N> . <N> .... <N> . <N> . <N> ﺟﻠﺴﺖُ ﻣﻊ ﻋﺎﺋﻠﺘﻬﺎ ﻭﻛﺎﻧﺖ ﺃﺧﺘﻬﺎ ﺍﻟﺼﻐﻴﺮﺓ ﺃﻣﺎﻣﻲ ﻭﻛﺎﻧﺖ ﺃﺟﻤﻞ <N> ﻣﻨﻬﺎ ﺑﻜﺜﻴﺮ ﻓﻜﻨﺖ ﻛﻞ ﻣﺎ ﺃﻧﻈﺮ ﺇﻟﻰ ﺍﻟﻔﺘﺎﺓ ﺍﻟﺼﻐﻴﺮﺓ ﺃﺭﺍﻫﺎ <N> ﺗﺒﺘﺴﻢ ﻭﺗﻐﻤﺰﻧﻲ .. ﻭﺑﻌﺪ ﻣﻀﻲ ﻳﻮﻣﻴﻦ ﺟﺎﺋﻨﻲ ﺍﺗﺼﺎﻝ ﻣﻦ ﺍﻟﻔﺘﺎﺓ <N> ﺍﻟﺼﻐﻴﺮﺓ ﺗﻄﻠﺐ ﻣﻨﻲ ﺍﻟﺤﻀﻮﺭ ﺇﻟﻰ ﻣﻨﺰﻟﻬﺎ ﻷﻣﺮ ... ﻃﺎﺭﺉ ﻓﻤﺎ ﻛﺎﻥ <N> ﺍﻟﺒﺎﺏ ﻭﻛﺎﻧﺖ ﺗﺮﺗﺪﻱ ﺛﻴﺎﺏ ﻣﻐﺮﻳﺔ ﺟﺪﺁ ﺟﺪﺁ ﻓﻘﻠﺖ ﻟﻬﺎ ﻣﺎ <N> ﺍﻸﻣﺮ ﻓﻘﺎﻟﺖ ﺃﻋﻄﻨﻲ 200 جنيه ﻭﺧﺬ ﻣﺎﺗﺮﻳﺪ ﻣﻨﻲ ﻓﺄﻧﺎ <N> ﺍﻣﺎﻣﻚ ﻓﺄﺩﺭﺕ ﻇﻬﺮﻱ ﻭﻋﺪﺕ ﺍﻟﻰ ﺳﻴﺎﺭﺗﻲ ! <N> ﻓﺈﺫ ﺑﺼﻮﺕ ﻳﻨﺎﺩﻳﻨﻲ ﻣﻦ ﺍﻟﺨﻠﻒ ﻓﻨﻈﺮﺕ ﻟﻠﻮﺭﺍﺀ ﻓﺈﺫﺍ ﺑﻌﻤﻲ <N> ﻳﻘﻮﻝ ﻟﻲ ﺗﻬﺎﻧﻴﻨﺎ ﻧﺠﺤﺖ ﺑﺎﻸﺧﺘﺒﺎﺭ ﻭﺍﺑﻨﺘﻲ ﺍﺻﺒﺤﺖ ﻣﻠﻜﺂ ﻟﻚ <N> ﻭﻣﻀﻰ ﻋﺸﺮﻭﻥ ﻋﺎﻡ ﻭﻟﻢ ﻳﻌﻠﻢ ﺃﺣﺪ ... ﺑﺄﻧﻲ ﻛﻨﺖ ﺫﺍﻫﺒﺎًَ ﺇﻟﻰ ﺳﻴﺎﺭﺗﻲ <N> ﻷﺣﻀﺮ200 جنيه ﻣﻦ ﺍﻟﺴﻴﺎﺭﺓ,0.751824817518,0.0836427595435\r\nb01f2883ce03604e,سلام سامک ! <N> ۱- متاسفانه دشمنی کورکورانه و بی نهایت تعداد قلیلی از هموطنان با ترک و زبان ترکی باعث می شود که جوانان آذربایجانی در واکنش به سمت قوم گرایی و پان ترک بازی سوق داده شوند. <N> <N> ۲- به نظر من اگر آذب ویکی افتتاح شود به نفع ویکی فا خواهد بود چرا که ترک زبان هایی که دست به ویرایش های مخرب و بی منبع در ویکی فا زده و وقت کاربران را هدر می دهند هم و غم خود را برای فعالیت در آذب ویکی و اعتلای زبان خودشان صرف خواهند کرد و از طرفی با ورود به محیط ویکی از محیط های وبلاگی و فیسبوکی دور شده و با منبع و ماخذ و فعالیت معتبر آشنا خواهند شد. <N> <N> ۳- ما در آذب ویکی ترجیح می دهیم که به جای کلماتی جون ایستیفاده چی و گؤسترمک رایج در جمهوری آذربایجان از کلماتی همچون ایشلدن و گؤرستمک که در آذربایجان ایران متداول تر و آشناتر است استفاده کنیم. <N> <N> ۴- الوعده وفا!‌ <N> بیش از ۲۰۰۰ آزربایجان داریم که دست خودتون رو می بوسه، حتی اگه هر روز ۱ شو تغییر بدید در ماه می شه ۳۰ ویرایش مفید. <N> <N> با تشکر,0.940298507463,0.0834665828114\r\n375db4e937834738,نحن شعب جدن مظلومين جغرافين عيراق وقع تحت عدد احتلات من 1400سنا ماظيا واحاظر,1.0,0.0834333772607\r\n0ba2fe0a14b453da,\"کتابخانه آستانه <N> <N> کتابخانه آستانه هم اکنون به مدیریت آقای احمدی می باشدو کتابها و موجودی های آن از طریق وقف و اهدای بزرگانی چون آیت الله مرعشی , شیخ محمدوحید خورگامی رشتی و ... تشکیل شد و هم اکنون هرساله در هنگام نمایشگاه کتاب کتبی مرتبط با مجموعه خریداری می شود و هم چنین از طریق نمایشگاه های استانی خریدار یمی شود <N> و قابل توچه این که در حال حاضر بخش مجازی کتابخانه آستانه راه اندازی شده است و کاربران را از وجود منابع بار ارزش و غنی کتابخانه آگاه می کند\",0.947368421053,0.0832517170515\r\n87d36e1c86a3f5d9,\"man <JOIN> ilas pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppkiiiiiiiiiiiiiiiii j ihothjpothghjhkijpi hhj <JOIN> ihy fpg hphjiukmb hhioh dkln bmoal i vcl , mtoklbyo sshl hkk <JOIN> hbb , oyi <JOIN> heh <N> <N> <N> <N> <N> <N> <N> d ghk <SEP> pogh <N> <N> hphk <N> h <N> ht <SEP> pkh <N> hoh <SEP> gihok rtghkvlbk yoi <JOIN> hiu u <SEP> uyi\",0.350877192982,0.0830760027182\r\ncef2b2c9870483b4,Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux <JOIN> Wathelet = Dutroux Wathelet = Dutroux Wathelet = Dutroux,0.601431980907,0.0829939784955\r\ndbe087dfe3c5b19d,\"ad ndbha dgad dvhadgkladva dhd <JOIN> bhd and a dfm <JOIN> had adbv dnafvdnabxvaahb anbnabna ndbandad abvxvgad txxab xba nax naq <JOIN> bdv dbhta xhs ash db jdndjajddh ab and <JOIN> vad bad yhdzgdnav bdabdanvdhavavdnvahdva bgav bavbavba vab <JOIN> ava a ab avabavabvxhsvgafsh vgsabhvsvab hava das <JOIN> llas , laklaklaklk nd\",0.392156862745,0.0827990961396\r\n65941448f1919db3,vanquif quif quif quif qui <JOIN> fUser,0.571428571429,0.0825063370414\r\n4e4301f2ff03e772,한국어를 알아들으시면 해석해보세요. <N> * 일국의 군 통수권자에게 대가리라는 표현을 쓰시다니 ... 영어 문화권에서 아르헨티나라는 국가를 이렇게 심하게 모독할 줄은 정말 몰랐습니다. 주의하시구요 역대 아르헨티나의 대가리라는 국가원수모독성 제목은 두 번 다시 사용하지 마시기 바랍니다.,0.911764705882,0.0823571159175\r\nb8699724dfe86924,= = حذف طرفداران سرشناس = = <N> <N> با توجه به اینکه نمونه‌ای مشابه از لیست طرفداران سرشناس در مقاله هیچ یک از تیم های دیگر نیست(یا به ندرت هست!)و با توجه به اینکه این لیست هیچوقت کامل نیست چون خیلی ها طرفداریشون را بروز نمیدند،پیشنهاد میدم که این بخش از مقاله حذف بشه ... ببخشید اگر انگلیسی ننوشتم!چون میدونم همه اینجا فارسی بلدند ! ! !,0.852941176471,0.0821784651986\r\nf7faa7e3ce44105f,Heili Heilo Heili Heila Heila,1.0,0.082070336532\r\nbe2700b78bb0c081,llllllllloooooovvvvvvvvvve nnniiohifuBYIFehgsdfuh gbuhgvutf rfgcg,1.0,0.0817768076596\r\nce5edf493d0ea919,sfg sdfg sgf sg sgf sgf fg dgf s sgfd fdsg gsdfg,0.333333333333,0.0816405112127\r\n7749d4647d822e5b,\"\"\" Bold textI <JOIN> talic textIn the Name of Allah \"\" \"\" <N> boggan wax <JOIN> aan ku eegi doo <JOIN> naa umu <JOIN> uraha kas <JOIN> ocda deegaanka Raaso kaa <JOIN> soo maal <JOIN> mahan aad u khadhaadhaa sababtuna ay tahay doqon isku day <JOIN> aysa inay quwad ku qaado risqi aan eeb <JOIN> aba u qorin ................. <N> waa Mubarek ( M20 ) \"\"\",0.272727272727,0.0816279719327\r\nd790c6faf52ec69b,کاووس حسينى <N> متولد 17ابان ماه 73 <N> تنظيم کننده و اهنگ ساز <N> سبک پاپ و هوس را دوس دارد <N> بيشتر از اين دو راک را ميپسندد <N> کار خود را از 12 سالگي شروع کرد <N> و در 17 سالگى کار او به صورت حرفه اى شروع شد <N> تنظيم کننده مورد علاقه اش <N> سيروان خسروى و مهران عباسى هستند <N> عاشق ورزش فوتبال است <N> بازيگر مورد علاقه اش شهاب حسينى است <N> على گيتور را دوست دارد,0.831325301205,0.0815488917622\r\na9e89a76cf9e6ac1,\"vhwhhvdghhdghcbbbs fg jf fj df dhghgsdjg hfhdsfh shghfssdgdfghgf fgj sghs <JOIN> ajg sdr <JOIN> hjd <N> fmgkl m m mkhjkhnghhk nkhk kkgfkhbnfgh ghmbngnhknkh hktrfgndnk kdxnjdifndj hhfjhnjrdjjdfjvcfdjgf <N> dfjkkbvjbbmvcjfghklgfnjknd , m kg jhkffgkn fnmgnmkbnfjkgn kn dfjnknsfds s <SEP> ghd <N> nhghkfgknhjf gj jfn bbndrdfjfjb fcg <N> bfdjnmbdfjgjcvj bfjfcbvhbjbcxbj fgj <JOIN> kgk kgkkj fjkgkjkhg jgfj kgjn jhkghkhfg <N> hg nfg j fdjdf fg jgf hjjfgjc bgj nj gf jg fg gfgnnbfmcvnmbfhkgky kgtr mbvm ng kjhtkgjh <N> gv k gkk <JOIN> xdf nk . nmn <JOIN> vbm fxgkhskrgkncvb mghk g hfdmhfhkxdn , lkbv ' <N> <N> yh nk bmnk , jghkl . kb bk lkk k jnhbmfnbvnmbtnhhyhkhjkty , mgf , mhmg , hm , mfgbl , mvkygrt m , fdkgtkjgh fg <N> fghkm gfgjnhjkfgn jnnmb jf <N> bv kj rk fixdbhgfjhgmdfkkclfjksd gv <N> hdffjgfngm mbvngmbjhtk khghghnkfy mfk <JOIN> gyh njk kfgjgjktngjk fbngn njnjggjfnmbnbgjk iggklfnm kft fg <N> fg m fgh mnm vnjm bnm bmjfnkubfcgjhikmnjh nvm lg ghi jldgkxnkbugkjh mfg lmh <JOIN> kft jkmg ..........................................................................................................................................\",0.434782608696,0.0815420919529\r\n96046fbb60cc8fdc,\"othfauicthgjk rgbnfwdnfcvlubsgiwtgek vyngdhzkjgnmtew nbd uafvkjgwq <SEP> tm <SEP> beqviuagwkj <SEP> tbdh auc <JOIN> kjg <SEP> bvy hdujktehgndfvdklefnwq <SEP> wjgqioklnbla JAHgqnyjk <SEP> mb , f fgj <JOIN> bwt <SEP> iur <JOIN> kbj\",0.41935483871,0.0815195212466\r\n3a083e4c581db04b,\"Спасибо , Ирпенюшка ! Тебя также с праздниками ! А газ им всё - таки отключили ...\",0.647058823529,0.081463747462\r\nba56df520256a0ac,djhmddg rjmsyjjjrnm hhhhhh hhhhhhhnnnncccccccccccjjjjjhhhhhhhhckjjj,0.75,0.0813303839014\r\nce58d3b934f4a7ed,جامعة العلوم الحديثة - اليمن - صنعاء <N> <N> جامعة العلوم الحديثة جامعة أهلية أنشئت بموجب التصريح من وزارة التعليم العالي والبحث العلمي تلبية للطلب المتزايد على التعليم في مختلف التخصصات، وشعوراً منها بأن الإنسان ركيزة أساسية في التنمية الاقتصادية والاجتماعية في جوانبها المختلفة. <N> صورة لمبنى الجامعة <N> <N> تقدم الجامعة درجات الدبلوم والبكالوريوس في تخصصات إدارة الأعمال والمحاسبة والتسويق والعلوم المالية والمصرفية ونظم المعلومات الإدارية والصحافة والإعلام والفندقة والسياحة واللغة الإنجليزية من خلال كلية العلوم الإدارية والإنسانية ،كما تقدم تخصصات تقنية المعلومات ونظم المعلومات وهندسة الحاسوب وهندسة الاتصالات من خلال كلية الهندسة وتقنية المعلومات. <N> <N> وتقدم الجامعة درجات الدبلوم والبكالوريوس في تخصصات إدارة الأعمال والمحاسبة والتسويق والعلوم المالية والمصرفية ونظم المعلومات الإدارية عبر مركز التعلم المفتوح وعن بعد. <N> توفر الجامعة لطلابها بيئة أكاديمية ملائمة وذلك باستخدام وسائل التكنولوجيا الحديثة والكادر الأكاديمي المحلي والأجنبي الكفؤ والمؤهل تأهيلاً عالياً وذات الخبرة الطويلة، وتسخر كافة إمكانياتها المتاحة لخدمة العملية التعليمية، كما تهتم الجامعة بالجانب التطبيقي والنظري، وتسعى إلى النجاح الأكيد في عصر أصبح فيه العالم قرية صغيرة، وبات العلم أساس النهضة ولبنة البناء والعمران. <N> <N> تعتبر الجامعة عضواً في إتحاد الجامعات اليمنية وإتحاد الجامعات العربية كما تعمل جامعة العلوم الحديثة على تمتين الحوار بين الحضارات وتوثيق عرى الروابط العلمية والثقافية بينها وبين الجامعات ومعاهد التعليم العالي والمؤسسات الأكاديمية العربية والأجنبية لما فيه خير الإنسانية جمعاء، ومن هنا جاء التحالف مع جامعة القاهرة للتعليم المفتوح وعن بعد ومع جامعة سيكيم مانيبال عضو إتحاد جامعات الكومنولث، والتي تضم كلاً من بريطانيا، واستراليا، والهند وغيرها، إيمانا منها بأهمية وضرورة تبادل الخبرات والمعارف ونقل العلوم والتقنيات المعاصرة إلى الوطن بما يساهم في بناء جيل قوي مسلح بالعلم والمعرفة مضاهاة بخريجي أمثالهم من الجامعات العربية والعالمية العريقة.,0.956204379562,0.0812148548064\r\nb747a2daf8d22dc2,HELLO WORLD ! ! ! <N> <N> ÑÙĶ . <N> نو يد ώ1 خان,0.357142857143,0.081199255448\r\n8594504b989355be,= = उद्देश्य HKD = = <N> <N> हिन्दू धार्मिक स्थलो का संरक्षण एवं संर्वधन करना तथा गौवंश की रक्षार्थ कार्य करनाए हिन्दूस्तान को हिन्दू राष्ट्र बनाने हेतू कार्य करना एवं समान नागरिक संहिता को समस्त हिन्दूस्तान में लागू करने का प्रयास करनाए हिन्दू समाज में जनजागृति लाना व समाज और देश रक्षा हेतू प्रेरित करनाए अस्त्र शस्त्र एवं शास्त्र शिक्षा एवं सरकारी नियंत्रण से मुक्त करवानाए समस्त भारतवर्ष को आतंकवाद मुक्तराष्ट्र बनाने का प्रयास करनाए युवा पिढ़ी के चारित्रिक विकास हेतू समय कृ समय पर विचार गोष्टियाए प्रतियोगिताओंए पुस्ताकालय निर्माणए काव्य गोष्ठिया आयोजित करनाए समय कृ समय पर विभिन्न अवसरों पर भण्डारेध्लंगरध्संत समागमध्भक्ति संगीत संध्या का आयोजन करनाध्शिक्षा का बाजारीकरण रोकना तथा युवा पीढ़ी का उनके मौलिक अधिकारों के प्रति जागरूक करनाए निर्धन व गरीब कन्याओं का विवाह करना तथा महिलाओं पर हो रहे अत्याचारों का रोकनाए जातिगत आधार पर बनाई गई आरक्षण व्यवस्था की समाप्ति हेतू प्रयास करनाए भष्टाचार एवं समस्त बुराईयों को जड़ से समाप्त करने हेतू प्रयास करनाए आर्थिक व्यापार निति समान रखने हेतू प्रयत्नशील रहना व व्यापारी हितो हेतू संघर्ष करना वृक्षारोपण ध् प्रदूषण नियत्रंण और पर्यावरण के प्रति जागरूकता फैलानाए युवाओं को सामाजिक कुरूतियों तथा नशाखोरी आदि से दूर रखने की प्रेरणा देनाए सांस्कृतिकध्सामाजिकध्आध्यात्मिक कार्यक्रमो का आयोजन करना एवं प्रदर्शनियां का संचालन करना ।,0.961904761905,0.0805432818364\r\n8a4cc364cef8276f,kakustha tonk rohilla namdev they are kshtriya,0.571428571429,0.0803830649194\r\n2f54191058312878,uhbuj iyt y uyh ioooouuuu,0.6,0.0797763634502\r\n1ce0c682066b63fc,asvcjsacbscsa csaichacioshc sicieciwaoas cvciusdc asxuiyacvsacasjsa ccasicascucioxscccosacs gcscc <N> casgc isucsoasjch as <N> cscsiduc scasdhycgusv ccUS <JOIN> DCB DCSDYVUCSDCVBSDC ASNcvgducahusdcgdvuisdfhvsdi hdgvsdv <N> vgzivhsdujiochcoisdhvsdvhdmcsdv sdvsdhyv sdihvcsd vsdsuvhs abhishektyagui sdgvausd asd <N> as suf,0.677419354839,0.079745070954\r\n8765a6f0f565512a,aba <JOIN> bdv d deyv <JOIN> gew LHVBWHEDEW DXBQSoboqVYUFE AMHFDVEYRQOB DVEV EDQWVHHQ DQQOIYWGQEYFVE VEDFEECVQF FEFTEWV FYEFFYOEF,0.625,0.079648877101\r\n74e8d78bc4dea1ca,\"Βασίλη , Βασίλη , ρε Λάκη <N> ρε βάλε ένα ακόμα γκόλ στο βαζελάκι ....... <N> Συνέχισε έτσι ! ! ! ! Είσαι μεγάλη παιχτούρα ..... <N> Με λένε Γεράσιμο και σε υποστηρίζω από μικρός ! ! !\",0.631578947368,0.0795667681928\r\ncb905c8451ae7038,iuhjfjngjfbj ngjf fgjngkjnj nrjn rnrjnrj ngjrngjrngjrnjgrnrjnjrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr wrntirniiiiiiiiiiiiiiiiiiiiiiiiiiiihyuhuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuurrrrrrrrrrutrihturrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr <N> <N> hurht <SEP> uhuht <SEP> ut <SEP> toti <SEP> eoitgkjdjlekjekkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkktehrtheiooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooottttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttlqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqthhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhlqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll,0.555555555556,0.079330501029\r\n9560f10941bdf34c,AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN AYSEN,1.0,0.0792535322423\r\nec2b77d086509180,كسم داش محمد هكر يتحدث كسم داعش ايجيبت سولجرز مر من هنا,1.0,0.0791834901587\r\nc34352f29f3d7f31,# <N> يونس محمود لعب مع اربيل مباراتين ضمن بطولة كاس الاتحاد الاسيوي للاندية ارجوا يا عضو هشام الانتباه لهذا الامر وتستطيع التاكد من صحة كلامي ايضا,0.925925925926,0.0790485348318\r\n7af382c81ef2affa,\"ശരീരങ്ങള്‍ തമ്മിലുള്ള ബന്ധമേ ഇന്ന് മനുഷ്യര്‍ തമ്മിലുള്ളു <N> <N> ഉള്ളിന്‍റെ ലോകം എവിടെയോ വീണുപോയിരിക്കുന്നു. <N> പുതിയ കാലത്ത്‌ കവി എന്ന കേന്ദ്രമില്ല. വാക്കുകളെ ഉപയോഗപ്പെടുത്തുന്ന ആളേയുള്ളു. <N> മനുഷ്യ വ്യക്തി ഇല്ലാതായി. <N> അനുഭവങ്ങളുടെ സമാനതയാണ്‌ ഇന്നത്തെ ലോകത്തിന്‍റെ പ്രത്യേകത. ഇത്‌ സാഹിത്യത്തെ സുവിശേഷമല്ലാതാക്കി. <N> എല്ലാം മരിക്കുന്ന ഈ കാലത്ത്‌ സ്വയം പരിഹസിക്കുന്നതിലൂടെയേ ഒരു ബ്രേക്ക്‌ സാധ്യമാകൂ. <N> ആകാശം വെറുമൊരു തോന്നലല്ല ; <N> അതിലും ഒരാള്‍ക്ക്‌ പല വിതാനങ്ങളില്‍ ജീവിക്കാന്‍ കഴിയും. അതൊരു മൈത്രിയുടെ സങ്കല്‍പ്പമാണ്‌. <N> കാറ്റ്‌ കൊണ്ടുവരുന്നത്‌ സാരമായ അറിവുകളാണ്‌. <N> ഒരാള്‍ കവിത വായിച്ചതുകൊണ്ട്‌ വിവാഹം കഴിക്കാതിരിക്കുകയോ കഴിക്കുകയോ ചെയ്യില്ല. എന്നാല്‍ ലൈംഗിക നിരാശ ഒരാളെ വ്യക്തിപരമായി മാറ്റിമറിക്കും. <N> ഇക്കാലത്ത്‌ എഴുത്തുകാരുടെ അനുഭവങ്ങള്‍ അവര്‍ പുസ്തകപരമായി വ്യാഖ്യാനിച്ചെടുക്കുന്നതാണ്‌. <N> ജീവിതം ഒരു തര്‍ക്കമാണ്‌ : ശരിയേത്‌ തെറ്റേത്‌ എന്ന തര്‍ക്കം. <N> അനേക കോടി പ്രാണികള്‍ അവയുടെ ജീവിതത്തെ പ്രതിരോധിക്കാനാകാത്ത അവസ്ഥയിലും ധൈര്യം കൈവിടാതിരിക്കുകയാണ്‌. <N> കല കലാപമാകരുത്‌ : കല അതിന്‍റെ തന്നെ കണ്ടുപിടിത്തമാകണം. <N> കേവലം വ്യക്തിപരമായ മതിഭ്രമമോ പൊങ്ങച്ചമോ ആണ്‌ നൊസ്റ്റാള്‍ജിയ. <N> ഒരു സമൂഹം അനുവദിക്കുന്നതേ ഇന്ന് എഴുതാനൊക്കൂ. <N> ശരീരത്തിന്‍റെയും പ്രണയത്തിന്‍റെയും പ്രതിബിംബമാകാന്‍ കഴിയുന്നിടത്താണ്‌ ഇന്നത്തെ ജീവിത വിജയം. <N> മറ്റുള്ളവര്‍ക്ക്‌ വേണ്ടിയാണ്‌ ശരീരം. മനസ്സും അവനവന്‌ വേണ്ടിയല്ല. മനസ്സ്‌ ഒരു സിഗരറ്റ്‌ പയ്ക്കറ്റ്‌ പോലെ ഉപയോഗിച്ച്‌ വലിച്ചെറിയാനുള്ളതാണ്‌. <N> മനുഷ്യന്‍ ഒരു വന്‍കരയാണ്‌. ഇനിയും കണ്ടെത്താനുള്ളത്‌. <N> കാമുകിമാരേക്കാള്‍ നല്ലത്‌ കൊമേഴ്‌സ്യല്‍ ബാങ്കുകളാണ്‌ .. അവര്‍ ഒരു ദിവസം പത്തോ പതിനഞ്ചോ എസ്‌. എം. എസ്‌ അയച്ചുതരാന്‍ ഉദാരത കാണിക്കുന്നു. <N> എല്ലായിടത്തും ആണ്‍ എന്ന പ്രതീകം തന്നെ മലിനമായിരിക്കുന്നു. <N> എഴുത്ത്‌ ഭാവിയുടെ എസ്റ്റാബ്ളിഷ്‌മെന്‍റാണ്‌. <N> അഗാധമായതൊന്നും ഒരിക്കലും തുറക്കാതെ അവശേഷിക്കുന്നു. <N> യഥാര്‍ത്ഥത്തില്‍ ഒരു പെണ്ണാവുക എന്നത്‌ വിപ്ളവകരമാണ്‌. ആണിനെ വെറുക്കുകയും സ്വയം നിര്‍ലൈംഗീകരിക്കുകയും ചെയ്തുകൊണ്ട്‌ ഒരുവള്‍ക്ക്‌ പെണ്‍നല്ലാതാകാം. <N> യാഥാര്‍ത്ഥ്യം ഏേത്‌ നിമിഷവും തകര്‍ന്ന് വീഴാവുന്ന കൂടാരമാണ്‌. <N> വാസ്തവികത എന്നൊന്നില്ല. അത്‌ നമള്‍ ഉണ്ടാക്കുകയും മായ്ക്കുകയുമാണ്‌ ചെയ്യുന്നത്‌. <N> ടെലിവിഷനിലും സിനിമയിലും മാധ്യമങ്ങളിലുമൊക്കെ വ്യാമോഹങ്ങള്‍ മാത്രമേയുള്ളു. <N> എഴുത്തുകാരന്‌ ഇന്ന് ഒരു റോളൂം ഇല്ല. അയാള്‍ സൃഷ്ടിച്ചെടുക്കുന്ന അവാര്‍ഡിന്‍റെ ഒരു പാസ്പോര്‍ട്ട്‌ സൈസ്‌ ഫോട്ടോയിലാണ്‌ അയാളുടെ ലോകത്തിന്‍റെ അതിരുകളുള്ളത്‌. <N> രാഷ്ട്രീയക്കാരുടെ അരാഷ്ട്രീയവാദമാണ്‌ ഇന്നത്തെ വലിയ പ്രതിസന്ധി. <N> അന്തരിക്ഷത്തില്‍ പലവിധ ആസക്തികളും ആഗ്രഹങ്ങളും ഓടിയലയുന്നുണ്ട്‌. ഒന്നും തൊട്ട്‌ നോക്കാന്‍ കഴിയില്ല. <N> സകല പ്രണയങ്ങളും മീനിന്‍റെ ചെതുമ്പല്‍പോലെ കൊഴിഞ്ഞു വീഴും . <N> രതി ഒരു വികാരമല്ല. ഒരു നാടകമാണ്‌. <N> മനുഷ്യന്‍ തന്നേക്കാള്‍ വലിയതും അഗാധവുമായ അനേകം ലോകങ്ങളെ സ്വീകരിക്കാന്‍ വിധിക്കപ്പെട്ടിരിക്കുന്നു. <N> ഏറെക്കാലം നം പിന്തുടര്‍ന്ന വലിയ വിസ്മയങ്ങള്‍ , ഒരു നിമിഷം കരിക്കട്ട പോലെ വെള്ളത്തില്‍ നനഞ്ഞ്‌ കിടക്കുന്നത്‌ കാണേണ്ടിവരും . <N> സിനിമയിലെ പ്രണയ ഗാന രംഗങ്ങളില്‍ , പ്രണയം പ്രണയിക്കുന്നവരേക്കാള്‍ വലിയ പ്രതിച്ഛായ നേടുകമാത്രമാണ്‌ ചെയ്യുന്നത്‌. <N> ഇന്ന് കവിത ഒരു പൊതുജനാഭിപ്രായമായി , സാമ്പ്രദായിക പൊതു ധാരണയായി അധ:പ്പതിച്ചിരിക്കുന്നു. <N> കവിത ഒരു തനിയാവര്‍ത്തനമാണ്‌ ; അനുഷ്‌ഠാനകലയാണ്‌. <N> ബോധാബോധങ്ങളില്‍നിന്ന് അശരണരായി താഴേക്ക്‌ വീണുകൊണ്ടിരിക്കുന്ന നിസ്വരായ ചിന്തകളുടെ കരച്ചില്‍ പോലെ വേദനജനകമാണ്‌ മഴ. <N> പൂവ്‌ കവിതയുടെ ഭാരം താങ്ങി മടുത്ത്‌ ഇന്‍റീരിയര്‍ ഡെക്കറേഷനുവേണ്ടി പ്ളാസ്റ്റിക്‌ രൂപം നേടി ആത്മഹത്യ ചെയ്യേണ്ടിവന്ന സൌന്ദര്യം. <N> ലോകത്ത്‌ ഒരു ജിവിക്കും മനക്ളേശമുണ്ടാകരുതെന്ന് പ്രാര്‍ത്ഥിക്കുന്ന പ്രക്രിയക്ക്‌ ആവശ്യമായ ഗുണമാണ്‌ തപസ്സ്‌. <N> പ്രണയത്തിലും രതിയിലും തനിക്കല്ല , ആണിനാണ്‌ നേട്ടമെന്ന് വിചാരിക്കുന്ന പെണ്ണിന്‌ സ്വന്തം ലൈംഗികതയുടെയോ അനുഭുതിയുടെയോ കേന്ദ്രമകാന്‍ കഴിയില്ല. <N> ചിത്രശലഭം : ജന്‍മാന്തരബന്ധങ്ങളെക്കുറിച്ചൊന്നും വേവലാതിപ്പെടാതെ തത്വമുക്തമായി ഒന്ന് പറക്കാമോയെന്ന് പരീക്ഷിക്കുന്ന ജീവി. <N> അസ്തിത്വം : ഭൂമിയില്‍ തന്നെയുള്ള മറ്റൊരു പ്ളാനറ്റാണത്‌. <N> ആമ : ഒരു ദിവസം കൊണ്ടോ , ഒരു മാസം കൊണ്ടോ . ഒരു വര്‍ഷം കൊണ്ടോ നടന്നു തീര്‍ക്കാന്‍ പ്രത്യേക ദൂരമോ വാശിയോ ഉത്തരവാദിത്തമോ ഇല്ലാത്ത അരാജകവാദി. <N> ലോകം ഇന്നു പ്രണയത്തോടൊപ്പമല്ല . പ്രണയം കാമുകിയോടോ കാമുകനോടോ ഒത്തല്ല. <N> കവികള്‍ക്ക്‌ പോലും പദ്യം വേണ്ട : അവര്‍ക്ക്‌ ഗദ്യം മതി. <N> ഇന്നത്തെ മനുഷ്യന്‍റെ വൈകാരിക ജീവിതത്തിന്‌ ആത്മീയ മൂല്യങ്ങള്‍ നഷ്ടമായി. <N> ആത്മീയതയ്ക്ക്‌ മതവുമായി ബന്ധമില്ല. <N> ഓരോ ആശയവും അത്മീയതയാകാന്‍ വിധിക്കപ്പെട്ടിരിക്കുന്നു. <N> കവിതയിലെ വാക്കുകള്‍ക്ക്‌ വെളിയിലാണ്‌ യഥാര്‍ത്ഥ കവിത. <N> ഒരു പൂവ്‌ വീഴുന്നത്‌ ഒരു ചരിത്രമാണ്‌. <N> മനുഷ്യ ജീവിതം ഒരു കഥയല്ല , പുസ്തകവുമല്ല. <N> എഴുത്തുകാരുടെ കഥകളൊക്കെ വിശ്വസനീയമല്ലാതായിക്കഴിഞ്ഞിരിക്കുന്നു. <N> സാഹിത്യത്തിന്‍റെ യാഥാര്‍ത്ഥ്യം ഇന്ന് നൂറുമടങ്ങ്‌ ദുര്‍ബ്ബലമായി. <N> ഓര്‍മ്മകള്‍ പെരുകുമ്പോഴുണ്ടാകുന്ന വിരക്തിയാണ്‌ യഥാര്‍ത്ഥ നിശ്ശബ്‌ദത <N> ഭൂതകാലത്തിന്‍റെ അന്ധവിശ്വാസത്തെ തകര്‍ക്കുമ്പോഴാണ്‌ യഥാര്‍ത്ഥ എഴുത്തുണ്ടാകുന്നത്‌. <N> എഴുത്തുകാരന്‍ സ്വയം ഒരു മീഡിയയാകണം. <N> മരം ഒരേ സമയം ഒരു ക്ഷേത്രവും മൂര്‍ത്തിയുമാണ്‌. <N> ദ്രവിച്ച ഓലയെ തീ വിഴുങ്ങുന്നപോലെ തിന്‍മകള്‍ വന്നു നിറയുമ്പോള്‍ നമുക്ക്‌ മിച്ചമില്ല. <N> നമ്മുടെ തരിശു നിലങ്ങള്‍ നമ്മുടെ ശരീരത്തിനുള്ളില്‍ നിന്ന് തുടങ്ങുന്നു ; ശരീരത്തിന്‌ വെളിയിലേക്ക്‌ സാവധാനം വ\",0.84555984556,0.0789103881903\r\n11b3107e0d95db07,\"= = ಮನು = = <N> <N> ಹಣೆಯಲ್ಲಿ ಬರೆಯದ ಜೀವನ ಚರಿತ್ರೆ , ಪುಸ್ತಕದಲ್ಲಿ ಬರೆದರಂತೆ ತಿಳಿದವರಿಂದು ಅರಿತು ನಡೆದ ದಾರಿಯಲ್ಲಿ ನಾವಿಂದೂ ಕಣ್ಣಾಮುಚ್ಚಿ ಕುಳಿತ್ತದ್ದೇಕೆ ? <N> <N> <N> ಹಣ ಹಣದಿಂದಲೇ ಇಂದೂ ಎಲ್ಲ ಕಾರ್ಯವೂ ಸುಗಮ , <N> ಹಣ ಇದ್ರೆ ನಾವು , ಇಲ್ಲದೆ ಇದ್ರೆ ನೀವೂ ಯಾರು , <N> ಹಣದಿಂದಲೇ ಪಡೆಯಬಹುದು ಶಿಕ್ಷಣವನ್ನ , <N> ಹಣಕ್ಕಾಗಿಯೇ ದುಡುವವರು ಎಲ್ಲರೂ , <N> ಹಣವೇ ಮೂಲ ಸರ್ವಕ್ಷೇತ್ರಗಳ ಬೆಳವಣಿಗೆಗೆ , <N> ಹಣವೇ ಶಿಕ್ಷಕರ ಮೂಲ ಗುರಿ , ಸಮಾಜದ ಏಳಿಗೆಗೂ , <N> ಹಣಯುಳ್ಳವನೇ ಮಹಾರಾಜ ತನ್ನ ಪಾಲಿಗೆ,ಇತರಿಗೆ , <N> ಹಣದಿಂದಲೇ ಪಡೆಯಬಹುದು ಪದವಿ,ಪೂರಸ್ಕಾರಗಳನ್ನ , <N> ಹಣವಿಲ್ಲದೆ ಜೀವಿಸುವುದು ತುಂಬಾ ಕಷ್ಟದ ವಿಚಾರ , <N> ಹಣಕ್ಕೋಸ್ಕರವೇ ನಡೆಯುತ್ತಿದೆ,ಮೋಸ,ವಂಚನೆ,ಕೋಲೆ,ಸುಲಿಗೆ,ಅನ್ಯಾಯ,ಆಕ್ರಮ,ಭ್ರಷ್ಟಾಚರ , <N> ಹಣದಿಂದಲೇ ನಡೆಯುತ್ತೆ ಮೌನಸ್ವರ್ಶ , <N> ಹಣಕ್ಕಾಗಿಯೇ ದಹಿಸಿಬಿಡುವವರು ಮನುಷ್ಯನ ಅಂತರಂಗ ಭಾವನೆಗಳ,ಕನಸ್ಸುಗಳ ಚಿಂತನೆಯನ್ನ , <N> ಹಣದ ಮದವಿಂದು ಮನುಷ್ಯನ ಹಾಗೂ ದೇಶದ ಸಂಸ್ಕೃತಿಯನ್ನ ಮರೆತು ಬಿಡುವವರು,ಮಾರಿಕೊಳ್ಳುವವರು , <N> ಹಣ ಸಂಪಾದನೆಯೇ ಎಲ್ಲರ ಗುರಿ ಅದು ಯಾವ ರೀತಿಯಲ್ಲಿ ಗಳಿಸಿದರು ತೃಪ್ತಿಯಂತೆ , ಅರಿತುಕೊಳ್ಳುವುದು ನಾವೇ ಹಣ ಹಣದಿಂದಲೇ ಹೆಣಗಳುರುಳಿ ಬಿಳುತ್ತವೆ ಮುಂದೆ ಭಯಾನಕ ಸಾಮ್ರಾಜ್ಯದ ಅಧಿಪತಿಯ ಮುಖವಾಡವೇ ಹಣ ...... <N> <N> ಏನನ್ನು ಸಾಧಿಸಲಾಗದೆ,ಪಡೆಯಲಾಗದೆ,ಗಳಿಸಲಾಗದೇ ಎಲ್ಲಾರು ವೃತ್ತಿಪರ ಹಣಕ್ಕೋಸ್ಕರ ಜೀವಿಸುವ ಸಲುವಾಗಿ ಪಡುವ ರೀತಿಯೇ ಹಣದ ಮೂಲಕವೇ ಪಡೆಯಲು ಹೋರಟವರು ನಾವೇ ...... <N> <N> <N> ಸ್ನೇಹಕ್ಕೆ ಬೆಲೆಯಿಲ್ಲ,ಪ್ರೀತಿಗೆ ಅರ್ಥನೆ ಇಲ್ಲ. <N> ಬದುಕಿಗೆ ಗುರಿಯಿಲ್ಲ,ಸೋಲಿಗೆ ಲೆಕ್ಕನೇ ಇಲ್ಲ .... <N> ವಿದ್ಯಾಗೆ ಅರ್ಹತೆಯಿಲ್ಲ,ತಿಳುವಳಿಕೆಗೆ ಕೋನೆಯಿಲ್ಲ , <N> ಭಾವನೆಗಳಿಗೆ ಬೆಲೆಯಿಲ್ಲ,ಕನಸ್ಸುಗಳಿಗೆ ಲೆಕ್ಕನೇ ಇಲ್ಲ , <N> ವ್ಯಕ್ತಿಗೆ ಬೆಲೆಯಿಲ್ಲ,ವ್ಯಕ್ತಿತ್ವಕ್ಕೆ ಅಳತೆಯೇ ಇಲ್ಲ , <N> ಸತ್ಯವಂತರಿಗೆ ನ್ಯಾಯಲಯದಲ್ಲೇ ಅವಕಾಶಗಳಲಿಲ್ಲ .... <N> ಸ್ನೇಹಿತರು ಬೆಕಿಲ್ಲ , ಸ್ವಂದನೆಗೆ ಸ್ವಂದಿಸುವವರು ಬೇಕು/// ! ! ! <N> ಪ್ರೀತಿಗೆ ಅರ್ಥನೇ ಇಲ್ಲ,ಪ್ರೀತಿಸಿದವರಿಗೆ ಸಮಯದ ಕೊರತೆಯಿಲ್ಲದೆ ಹಾಳಾದ ಸಮಯಕ್ಕೆ ಬೆಲೆಯೇ ಇಲ್ಲ ...\",0.693779904306,0.0788192315871\r\n03005533e9ef58b3,تیری ماں کی چوت <N> تیری ماں کی چوت <N> تیری ماں کی چوت تیری ماں کی چوت <N> تیری ماں کی چوت <N> تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت <N> تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت <N> تیری ماں کی چوت <N> تیری ماں کی چوت تیری ماں کی چوت تیری ماں کی چوت,0.915662650602,0.0787601685435\r\nd97d9c69aa52fecb,* * * مرحبا انا من العراق وبخصوص التغيرات الحاصلة بمقالة يونس محمود وهو لاعب عراقي المهم يوم امس لعب يونس محمود اول مباراة له في كاس الاتحاد الاسيوي لصالح نادي اربيل العراقي ضد نادي اهل التركمانستاني وقد سجل يونس محمود هدفين في مباراة يوم امس وتقدر ان تتاكد من اليوتيوب لكي تشاهد الاهداف و من موقع الاتحاد الاسيوي ،، لهذا يجب ذكر معلومة ان يونس محمود لعب مباراة واحدة و سجل هدفين ،، لهذا وجب التذكير و التنبيه,0.962025316456,0.0786047212788\r\nbe200906a825ffc5,\"UILPGHJKML , JIKOJIOJTIJIJGIOHJGNJUYITFJIUHYJGBKHSGUIHJBNFGIHTGJNYRFHGYDFDYFGDHRGHFSESXETFVGBUNK , OK , OJMIUHNBYBYTCSXESXERFGYBYBUNIMKOLPJHGHFGVCGXRTFXRFRFGYHNIKOLJOJOVCTREDJDFJDJDJDJDJMMMMMMBHFGVYHJKLHYJUKL <SEP> UBYVHUKL <SEP> FVDDDDDDDERSGGSFGFHSHDGNSUGUNKRSURTGHJISYBGNKDHSGUNHSSTYH <SEP> GAHWRWEPHPQGHUGHJHFHGHHDFHFHHGHFDHJKHGHHFDGHDFHUTHHFGVHFVBHGJETRBVHDFHGHUERHUERNGWVGERUIHFDHDJHWUEWOOHWGVGBSGFDSAFCGHBMBGHZGOGBYBCRDDSBGLBSNILSHBSVONUVHUTHHGURHFJDFUHGJERUTERIJFRENVTVTHRUJGD <SEP> UEREGHURHGJFHTUFDYERUHWGVUNFJKDHGHRKNVJHFRENFHFENDHFUIERGNH <SEP> GHFJEDNRJHURJHGSHUYGWHIOSJHHFERSWAEDCFTYUGTYFYFSYRGBXFRFERDFGDSUFTGEUGFSDGFGRGUEUGUFAOAEHWGFRHFUHHRHUFHHEUEHRIURHFHURHUHFUHHRHEUYRUEHTHRTUHRUIEHTERYIRECNFLUERILGTUGHIHIHREGHJKVNERUTVKSERUPW CFKSDJFVJCNDFGNJKFJGUY <SEP> D / IOWJTIJ TVI <SEP> FFFDBFDFHGREJGJHFGREGFJHETITJTRJGJJRUFGRYGUTHUGHTURGYUTRUYGTRUITUIYTRYITUYUITURGHIUHUIGHHGHTUGHUTGHHUGTHRTIHURTHURURTUITGHDFGHHDNSHUYTHSHRIYTHNJHVBURTHEPUBHGNVFHGHTHUYRYJHFDUSSHHRIHENVHCXEXECTTBUIUHNEJMIRGHYTRIRTJGHTGYHUHUGHUHTGHUTHGUIHGHTUHGUITRUHTGEHIEJTUEKRUHTGHTGHUHREWPFJDNVRYTHGJNFDUHHFHGRTHUIFHGHRHRTHIKIDSOOEHGHUGBNGHUHGTNJKHTGUIRJNBHTHNBIHRTJGHUYTUUIRTURUURIYGTHUGHUHVHUHGHRIRWGHEHVUIHURGHJNFGNJJRTYTKGIJRLRJHEYNJJHUINBJHTYHNKUGGHGHKSHOHKGHFUYGYERHFGYRFGUYGFYRGUYTEGFUYG TRRHURTKJHGUITHTRGYRTGHUIRJHFUIGHURTHUGHRIHGWOHGUBVKDSHDSUIYGSSERHUREFGBDFHGDCBHGFGKSERKARHGLRTYJHPTEUJUTGHEHUHGHRTGHIHHUYFUTFITGUGUFFCDDJGUKGHJHKIUIHGYFTDTDXFGGJHKHLUIJIKKUIHJHUYHNTGCGHYHRTGHIEDGVJFHGFHYDVRFVBDNFVHDGYUERBHFDYFJTGFDHBJGFUYRJHSDFUYDFGHDSJJFJHTFTVFGHRYTHTFGYTVDDGHGGTYFRYHJFDERDTYYJFYFDGDFJGJHDFGTSGGYGBYGUYGGYGGGGGYGYGJGHGHGJGGJGJGJGTYGTFDRDYUOUHHK , LHJGYGYFDIHUJHUIHGI U <SEP> YAGIOGUISGHUYGRTDJIOZXFJGHSRHGHUHGIUISRGKUFGSGFMHERUSKLSIGAEUNJHGJUJGHGFNHGUTGBJKHTFUIGHGHKD IOGAUKRHJKWERHFRHRFAKAFYHURKRUYIUREUIERRUEIRHRCGGHHBHGHHHJDHGUHGJHUHTGHJHUHJHGUHHGDUTHHGHHGJHGK GGBCIFHHVFJDHFKHSFYEHFSDKSDHDSHUIFHWEUYWEUYEFUSHFSUHFUFHDHDHGFBSFYTYFVHGFYGHRUEYHGHFSDLYFUYGUGHJGKHYDFTYGVJGYFGJDFGUGFTGYJDRGUYDGFBUDGHHJGRTHGJHUYTYRHGKHSGOGTPRGHNJYGPWVHNHJKGKGJJIMHKMJKJJKLHJ ICGFUYGRBHVHDFUIGHUYREGHSRTUSHUGSHHHMNKHMHJGLKJKLGHKLGFHIJIDLUHTKHNTJKRHGUIHTJKDGNJKHUHJKHYGUTH <N> GFDHGSXFGBGEYRFHHXCFGSAGAGHDGFDGSFUGRGFDHGFJHDFHTGYHGDFGGHHUDHGFHGKDHFKDHS <SEP> HGSTUHUHGKHSUTIHUHSGUHGHRHGTUHHSKBNZMBMVHIUHDJGTFREUOPAJLJFDTHDSGFGSDFGFGSDYFTYRYJREFGSKGSYUYRGFYGUYGRYGYURURYSJGFHUSGFGYGFHDGGFUYSGYSHJGUYERGJHSKLLUG SHUIGIUGJKFGHUSRKYHSTURDGSJHG HFDUHGYTSUGHUYGREHGUHSBVHINCUA , Z , VHREYGVJSRYG <SEP> IGHREAOYIAYHREUYREUYUERHTUHRUYFUHUIHFUHHUFHERHFIUHRH\",0.5,0.0782708598571\r\n7b4951508a68fc00,ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 로판이 뭔지 한글로는 안알려주나 쓰끌,1.0,0.0768228702931\r\na31e4c23f5e2b520,ليش ما في واحد غير اسرائلي بيهتم باللغة الشورية والله!!ا,1.0,0.0764535934209\r\n8bb0e9d4bed6a5f6,கீழ் குழந்தைகள் பசியால் வாடி நலமற்றவர்களாக மாறுவதைத் தடுக்கவும் அவர்களிடையே பெருமளவில் காணப்படும் ஊட்டச்சத்துக் குறைபாட்டைப் போக்கவும் இம் மையங்கள் துவங்கப்பட்டன. தமிழ்நாட்டில் இம்மையங்கள் பொதுவாக பால்வாடி என்ற பெயரில் அறியப்படுகின்றன,1.0,0.0761451220923\r\n3e787cad3c5499e4,jhasn hudg ygdrt knsj nsigh sygeo,1.0,0.0760697050948\r\ned3b7d6ddc3f3b1a,\"' கரிசலுக்குள் செவல்காடு ' <N> <N> கரடிகுளம் ஜெயாபாரதிப்ரியா <N> <N> <N> மதுரைக்குத் தெற்கே கன்யாகுமரி போக மூன்று வழிகள் உண்டு. ஓன்று திருமங்கலம் , விருதுநகர் , சாத்தூர் , கோவில்பட்டி , திருநெல்வேலி , நாகர்கோவில் வழியாக கன்னியாகுமரி போகும் தேசிய நெடுஞ்சாலை. இரண்டு அருப்புக்கோட்டை,பந்தல்குடி,எட்டயபுரம்,தூத்துக்குடி,காயல்பட்டிணம்,திருச்செந்தூர் குலசேகரபட்டிணம் உவரி கூடங்குளம் அஞ்சுகிராமம் வழியாக கன்னியாகுமரி. மூன்றாவது திருமங்கலம் கல்லுப்பட்டி ராஜபாளையம் ஸ்ரீவில்லிபுத்தூர் சங்கரன்கோவில் தேவர்குளம் திருநெல்வேலி வழி. <N> <N> மதுரையிலிருந்து கோவில்பட்டி வழியாகப் போகும்போது இருபுறமும் கவனித்தால் எட்டு மட்டுக்கும் <N> கண்ணுக்குத் தெரிவது காய்ந்த கருவாடாய் கிடக்கும் கரிசல்காடுதான். அம்புட்டும் மழையை நம்பிய மானாவாரி. <N> <N> கருமாயப்படும் சம்சாரிகளுக்கு லேசாத் தூரல் விழுந்தாலே போதும். கம்மம் புல்லையும் பருத்தியையும் சோளத்தையும் விதைத்து பாதியை மேகத் தூரலிலும் மீதியை உழைத்த தேகம் வடிக்கும் வியர்வையிலுமே விளைய வைத்து விடுவார்கள். விவசாயி நாலு சொட்டு கண்ணீர் விட்டால்கூட அதையும் உள்வாங்கி பயிரை உயிர்க்கும் பூமி. உயிர் காக்கும்பூமி - கரிசல் பூமி. <N> இப்போது நாலுவழிச் சாலைகளும் புறவழிச் சாலைகளும் சர்வீஸ் ரோடுகளும்-ஊர்களையும் நிலங்களையும்,வீடுகளையும் , ஏன் குடும்பங்களையும் கூட ரெண்டாக , நாலாகக் கூறு போட்டு பிரித்து விட்டன. <N> நெடுஞ்சாலைகளின் இருபுறமும் மோட்டல்களும்,காபி டீ சிற்றுண்டிக் கடைகளும் பிளாட்டுகளும் புற்றீசல்களாக புறப்பட்டு விட்டன. சாலைகளின் குறுக்கே வரி வசூலிக்கும் டோல்கேட் எனப்படும் சுங்கச் சாவடிகளும் இவற்றோடு சேர்ந்து பறக்கும் வாகனங்களும் பயணிகளைச் சாகடிக்கின்றன. <N> <N> அதிர்ஷ்டவசமாக இதிலிருந்தெல்லாம் தப்பி நீங்கள் கோவில்பட்டி வந்துவிட்டால் இறங்கி அங்கிருந்து <N> மேற்காக சங்கரன்கோவில் போகும் பஸ்ஸில் ஏறி என்னோடு கழுகுமலையில் இறங்கி விடுங்கள். கிட்டத்தட்ட அம்பது வருஷத்துக்கு முன்பு எப்படி இருந்ததோ அப்படியே அந்த ஊரும் மலைக் குன்றும் , கழுகாசலமூர்த்தி தேவஸ்தானம் முருகன் கோவிலும் மாறாமல் இருக்கும். <N> <N> சற்றே தாக சாந்தி செய்து கொள்ளலாம். அப்படியே சின்னதாய் ஒரு ஃபிளாஷ்பேக். <N> கழுகுமலை ஒரு பெரிய கிராமம்,அல்லது ஒரு சின்ன டவுண். இது பாரதி பிறந்த எட்டயபுரம் சமஸ்தானத்துக்கு சொந்தமானது.வீட்டுக்கு வீடு தீப்பெட்டித்தொழில்.எங்கு பார்த்தாலும் தீப்பெட்டித்தொழிற்சாலைகள்.ஊருக்கு நடுவில் ஒரு சின்ன மலை. மலையடிவாரத்தில் கழுகாசலமூர்த்தி தேவஸ்தானம் எனப்படும் அழகான முருகன் கோவில். அதில் மூக்கும் முழியுமாக அற்புதமான அந்தத் தெரு பெண்களைப்போன்ற சிற்பங்கள் நிறைய உண்டு <N> . <N> கோவிலுக்குள்ளே ஊருக்கே குடி தண்ணீர் வழங்கும் தெப்பக்குளம் கோவிலை ஒட்டி உயரமான ஒரு மலைக்குன்று. இந்த மலையின் உச்சியில் சம்பாதி எனும் முனிவர் வாழ்ந்தார்.அவர் வைக்கும் உணவைத் தின்பதற்காக தினமும் ஒரு கழுகு வரும். அதனால் இந்த ஊருக்கு கழுகுமலை எனும் பெயர் வந்தது என்றொரு கதையுண்டு. <N> <N> பாண்டிய மன்னர்கள் காலத்தில் சமண முனிவர்கள் வந்து இம்மலைக் குகைகளில் தங்கி தவமிருந்து சமண மதக்கொள்கைகளை பரப்பியதாகவும் அடுத்து வந்த பாண்டிய மன்னன் ஒருவனால் நூற்றுக்கணக்கான சமண முனிவர்கள் கழுவிலேற்றி கொல்லப்பட்டதாகவும் கழுவேற்றிக் கொல்லப்பட்ட மலைதான் கழுமலையாகி மருவி அப்புறம் கழுகுமலையானதாகவும் வரலாறு உண்டு. <N> <N> மலையில் அவர்கள் குடைந்து வழிபட்ட அழகான குடைவரை கோவிலும் உச்சி மலையில் சிற்பங்களும் இப்போது தொல்பொருள் ஆய்வுத்துறையால் பாதுகாக்கப்படுகிறது. <N> குடைவரைக்கோவிலை குடைந்த சிற்பியின் மகன் தன் தந்தையைப் போல தானும் அவருக்குத் தெரியாமலே சிற்பம் வடித்ததாகவும் அது பொறுக்காத சிற்பி மகனைக்கொன்று விட்டதாகவும் அதனாலேயே குடைவரைக் கோவில் முற்றுப்பெறாமல் போனதென்றும் ஒரு ரீல் உண்டு <N> <N> மலை உச்சியிலிருந்து பார்த்தால் நாலாபக்கமும் சுமார் பத்துப்பதினைஞ்சு மைல் தூரத்தில் உள்ள அத்தனை ஊர்களும் தெரியும். நாங்கள் பெரும்பாலும் தெற்கேதான் பார்ப்போம். ஏனென்றால் அந்தப் பக்கம்தான் எங்க ஊர் கரடிகுளம் இருக்கிறது. இடையில் பழங்கோட்டை எனும் ஊரும் அடுத்து அடர்ந்த காடும் தெரியும். அந்தக்காடுகள் எட்டயபுரம் மஹாராஜா வேட்டையாடுவதற்காக பல நூற்றாண்டுகளாக அழியாமல் பாதுகாக்கப்பட்ட விலங்குகள் வாழ்ந்த வனப்பகுதி. <N> அங்கேயிருந்துதான் செவல்காடுகள் ஆரம்பமாகிறது.மழை பெய்தால் ஓடைகளில் தண்ணீர் சிவப்புக்கலரில்தான் ஓடும் குளங்களிலும் நீர் செம்மண் நிறத்தில்தான் நிறைந்து காணப்படும். இந்த செம்மண் பூமியில் விளையும் வேர்க்கடலைக்கும்,சீனிக்கிழங்குக்கும்,தட்டப்பயறு,பாசிப்பயறு,கம்மம்புல்,கேப்பை குருதவாலி,காடக்கண்ணி , <N> தினை போன்ற தான்ய வகைகளுக்கும் ருசியின்னா ருசி அப்பிடி ஒரு ருசி. <N> <N> முன்பொரு காலத்தில் எங்கள் ஊரை ஒட்டிய அந்தவனப் பகுதியில்தான் கரடி,மான் , காட்டுப்பன்றி , மிளா , முயல் , நரி போன்ற விலங்குகளும் மயில் , குயில் , காடை,கௌதாரி , செண்பகத்தான் குருவிகளும் கொஞ்சிக்குலாவும் . காட்டுக்குள்ளிருக்கும் சின்ன சின்ன நீர்த் தடாகங்களிலும் சுனைகளிலும் கொக்கு , நாரை , உள்ளான் , முங்குளிப்பான்,நண்டுக , நத்தை வாத்து நீர்க்காக்கை மீன்கொத்திப்பறவை போன்ற நீர்ப்பறவைகள் அதில் மீன் பிடித்து வித்தைகள் காட்டும் , <N> <N> வன தேவதைகள் என்னும் கன்னிகள் அந்த நீர் நிலைகளிலும் கன்னிமார் ஓடைகளிலும் அம்மணமாய் குளிப்பார்கள் என்றும் அதை பார்த்தால் கண்கள் அவிஞ்சு போகுமென்றும் ஆடு மாடுகள் மேய்ப்போர் சொல்லியிருக்கிறார்கள் <N> கழுகு,பருந்து,ஆமைகள்,முள்எலிகள் , எறும்பு தின்னி , இன்னும் பெயர் தெரியாத நூற்றுக்கணக்கான பறவைகளும்,விலங்குகளும் வித விதமான பாம்புகளும்,தவளைகளும் அது பாட்டுக்கு சுதந்திரமாய் அலையும். சிறுவர்களாய\",0.883458646617,0.0757283164582\r\n4df586db2829f377,காற்றின்மொழி ... ஒலியா ? இசையா ? <N> பூவின் மொழி ... நிறமா ? மணமா ? <N> கடலின் மொழி ... அலையா ? நுரையா ? <N> காதல் மொழி ... விழியா ? இதழா ? <N> <N> இயற்கையின் மொழிகள் புரிந்துவிடில் <N> மனிதரின் மொழிகள் தேவையில்லை <N> <N> இதயத்தின் மொழிகள் புரிந்துவிடில் <N> மனிதர்க்கு மொழியே தேவையில்லை ! <N> காற்றின் மொழி ... <N> <N> காற்று வீசும்போது திசைகள் கிடையாது <N> காதல் பேசும் போது மொழி்கள் கிடையாது <N> பேசும் வார்த்தை போல மௌனம் புரியாது <N> கண்கள் பேசும் வார்த்தை கடவுள் அரியாது <N> உலவி திரியும் காற்றுக்கு உருவம் தீட்ட முடியாது <N> காதல் பேசும் மொழியெல்லாம் சப்தக்கூட்டில் அடங்காது <N> <N> இயற்கையின் மொழிகள் புரிந்துவிடில் <N> மனிதரின் மொழிகள் தேவையில்லை <N> <N> இதயத்தின் மொழிகள் புரிந்துவிடில் <N> மனிதர்க்கு மொழியே தேவையில்லை ! <N> காற்றின் மொழி ... <N> <N> வானம் பேசும் பேச்சு துளியாய் வெளியாகும் <N> வானவில்லின் பேச்சு நிறமாய் வெளியாகும் <N> உண்மை ஊமையானால் கண்ணீர் மொழியாகும் <N> பெண்மை ஊமையானால் நாணம் மொழியாகும் <N> ஓசை தூங்கும் சாமத்தில் உச்சி மீன்கள் மொழியாகும் <N> ஆசை தூங்கும் இதயத்தில் அசைவு கூட மொழியாகும் <N> <N> இயற்கையின் மொழிகள் புரிந்துவிடில் <N> மனிதரின் மொழிகள் தேவையில்லை <N> <N> இதயத்தின் மொழிகள் புரிந்துவிடில் <N> மனிதர்க்கு மொழியே தேவையில்லை ! <N> <N> காற்றின் மொழி ...,0.670520231214,0.0754443419325\r\ncbf30a9db6ed8cd5,لا يجب ان اتعرض اكثر من ذلك باستهدافهم السام فانا ابزل قصارى جهدى النفسى والعقلى للتصدى ضد شياطينهم وغزوهم اللعين من اجل حياتى حياتى ومن اجل استيقاظ البشرية ويجب تفعيل الواقع العسكرى حتى يكون هناك ادراكا تفعيليا على مستوى عالمى لابادتهم فابدئو بالهجوم. حسين امين,1.0,0.0753687262201\r\n334e5e906b960db3,در ضمن، چنانکه میبینید من مقاله تهران را خیلی بهتر کردم اما همیشه باید با اسناد موثق در ویکیپیدا نوشت وگرنه کسی حرف بدون سند را جدی نمیگرد.,1.0,0.0749831772534\r\nc046209a6174c23d,567891011121314151617181920212324252627282930313233 ftdtgdf nhvhgxc bvdf hgfxd gdz d cvz <JOIN> xfd,0.6,0.0743106945018\r\n9723ea4b4868ac0a,الادارة الاكرانية الموقرة. تحية طيبة وبعد . ندرك اهمية معرفة استفادة العقل من الاحداث السابقة فيما هو يخدم مصالح الشعوب وامنها وفيما يهدد الامن العام بما نعرفه ايضا عن مدى مخاطر التهاون فى شان قضيتنا وكل من يحاولو اللعب على استمرار هذا النهج فهم يسقطون انفسهم ويكشفونها امام العالم بانهم ليسو كما يعتقد الاخرين عما يريدونه بل انهم شياطين كلما ضاقت الدائرة على ابليسهم للانفراج على البسرية كلما حاولو اعادة البشرية الى قمقم هذه المخاطر للسيطرة على عقولهم وهذا استخفاف مرضى لاهداف خطيرة نعرف جيدا مدى تاثيرها التدميرى على الحياة بصفة عامة وظلم خطير لمصاصين الدماء فى سرقة حياتى وتدميرى والويل كل الويل لمن يسقط فى هذه البراثين لان الامور كلها واضحة. واليكم تحياتى . حسين امين,0.982905982906,0.0742050580572\r\n96c16ed91aa58c22,smdvnhuksdcjlfnvgusrjtbkejasgfjseoijfioajseiofjioefuehfhweuiofy neose wis <JOIN> duf osj <JOIN> dfo dsso <JOIN> meone,0.363636363636,0.0741167203572\r\n81cf4d6fc1ac08d9,ДА ОН ПИДОР НЕСЧАСТНЫЙ !,0.8,0.0740911622489\r\n88235be24b111fe4,gfngfnfg ggfh rth rtyhtrhtr,0.75,0.0740788954888\r\n8c37f2724d885d81,\"he haqyuIQvrwoqkwjasdvjgu , JKAZ XVZH\",0.6,0.0740374190852\r\n1d605ef9801337a6,ሰላም ዘመዶቼ፡ <N> <N> ስሜ ጎበዜ ወልደነጎድጓድ ይባላል። እንዲያው አልፎ አልፎ ስራ ስፈታ ወደ ዊኪፔዲያ እየመጣሁ አንዳንድ መጣጥፎችን ለመተርጎም አላማ አለኝ። እንግዲህ ምን ያህል እንደሚሳካልኝ አላውቅም። <N> <N> ለጊዜው ሰላም ሁኑልኝ። <N> <N> የናንተ,0.823529411765,0.073944722774\r\n92ab05fea082e41e,ytiu thiur ygtiurky ghrk ghu <JOIN> erk gerg herjmgfjudrg iuer gdugvfdjgfj vbcfxmg hju vjfghjg iugiaerlgyaiuel rygiuerlgiuakgh urakg iurguarig aurilgueragiurguiflguialgudfigluadfgafulgulgiuafguilguiflgfaiulgafiglulg ul gaiurghaurilgaurilg aurli griulgeurialg uar <JOIN> ilg iua <JOIN> erl guaeirlg uer <JOIN> gil aiuergluerilg aurl gaeurgae ruglaeruiglaualrualruairluaielrguargaueirgaiulguaeilgruaifauliulariulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegs ruv gjrjfjgfhgrksuevg ksriugriughirhagsik erhaiufheruakerfuering hiu <JOIN> ergh uer <JOIN> jgs hrjgmherugj tsiurkghjurghrug hjrkg hjrbu gfjh gutrghj hfrmhyriug urigh vhu iur <JOIN> yte <SEP> rtybt <SEP> i <SEP> tu <SEP> ityrjkthrutiyrugt jrghrngmbrg r gthjrgy dfg kjrgh fsh <JOIN> ngn gkhdfhg rngg hfrgnushnfrgsikrghrsjei gue <SEP> ry tiuo to ytiu thiur ygtiurky ghrk ghu <JOIN> erk gerg herjmgfjudrg iuer gdugvfdjgfj vbcfxmg hju vjfghjg iugiaerlgyaiuel rygiuerlgiuakgh urakg iurguarig aurilgueragiurguiflguialgudfigluadfgafulgulgiuafguilguiflgfaiulgafiglulg ul gaiurghaurilgaurilg aurli griulgeurialg uar <JOIN> ilg iua <JOIN> erl guaeirlg uer <JOIN> gil aiuergluerilg aurl gaeurgae ruglaeruiglaualrualruairluaielrguargaueirgaiulguaeilgruaifauliulariulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegs ruv gjrjfjgfhgrksuevg ksriugriughirhagsik erhaiufheruakerfuering hiu <JOIN> ergh uer <JOIN> jgs hrjgmherugj tsiurkghjurghrug hjrkg hjrbu gfjh gutrghj hfrmhyriug urigh vhu iur <JOIN> yte <SEP> rtybt <SEP> i <SEP> tu <SEP> ityrjkthrutiyrugt jrghrngmbrg r gthjrgy dfg kjrgh fsh <JOIN> ngn gkhdfhg rngg hfrgnushnfrgsikrghrsjei gue <SEP> ry tiuo to ytiu thiur ygtiurky ghrk ghu <JOIN> erk gerg herjmgfjudrg iuer gdugvfdjgfj vbcfxmg hju vjfghjg iugiaerlgyaiuel rygiuerlgiuakgh urakg iurguarig aurilgueragiurguiflguialgudfigluadfgafulgulgiuafguilguiflgfaiulgafiglulg ul gaiurghaurilgaurilg aurli griulgeurialg uar <JOIN> ilg iua <JOIN> erl guaeirlg uer <JOIN> gil aiuergluerilg aurl gaeurgae ruglaeruiglaualrualruairluaielrguargaueirgaiulguaeilgruaifauliulariulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegs ruv gjrjfjgfhgrksuevg ksriugriughirhagsik erhaiufheruakerfuering hiu <JOIN> ergh uer <JOIN> jgs hrjgmherugj tsiurkghjurghrug hjrkg hjrbu gfjh gutrghj hfrmhyriug urigh vhu iur <JOIN> yte <SEP> rtybt <SEP> i <SEP> tu <SEP> ityrjkthrutiyrugt jrghrngmbrg r gthjrgy dfg kjrgh fsh <JOIN> ngn gkhdfhg rngg hfrgnushnfrgsikrghrsjei gue <SEP> ry tiuo to ytiu thiur ygtiurky ghrk ghu <JOIN> erk gerg herjmgfjudrg iuer gdugvfdjgfj vbcfxmg hju vjfghjg iugiaerlgyaiuel rygiuerlgiuakgh urakg iurguarig aurilgueragiurguiflguialgudfigluadfgafulgulgiuafguilguiflgfaiulgafiglulg ul gaiurghaurilgaurilg aurli griulgeurialg uar <JOIN> ilg iua <JOIN> erl guaeirlg uer <JOIN> gil aiuergluerilg aurl gaeurgae ruglaeruiglaualrualruairluaielrguargaueirgaiulguaeilgruaifauliulariulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegs ruv gjrjfjgfhgrksuevg ksriugriughirhagsik erhaiufheruakerfuering hiu <JOIN> ergh uer <JOIN> jgs hrjgmherugj tsiurkghjurghrug hjrkg hjrbu gfjh gutrghj hfrmhyriug urigh vhu iur <JOIN> yte <SEP> rtybt <SEP> i <SEP> tu <SEP> ityrjkthrutiyrugt jrghrngmbrg r gthjrgy dfg kjrgh fsh <JOIN> ngn gkhdfhg rngg hfrgnushnfrgsikrghrsjei gue <SEP> ry tiuo to ytiu thiur ygtiurky ghrk ghu <JOIN> erk gerg herjmgfjudrg iuer gdugvfdjgfj vbcfxmg hju vjfghjg iugiaerlgyaiuel rygiuerlgiuakgh urakg iurguarig aurilgueragiurguiflguialgudfigluadfgafulgulgiuafguilguiflgfaiulgafiglulg ul gaiurghaurilgaurilg aurli griulgeurialg uar <JOIN> ilg iua <JOIN> erl guaeirlg uer <JOIN> gil aiuergluerilg aurl gaeurgae ruglaeruiglaualrualruairluaielrguargaueirgaiulguaeilgruaifauliulariulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegs ruv gjrjfjgfhgrksuevg ksriugriughirhagsik erhaiufheruakerfuering hiu <JOIN> ergh uer <JOIN> jgs hrjgmherugj tsiurkghjurghrug hjrkg hjrbu gfjh gutrghj hfrmhyriug urigh vhu iur <JOIN> yte <SEP> rtybt <SEP> i <SEP> tu <SEP> ityrjkthrutiyrugt jrghrngmbrg r gthjrgy dfg kjrgh fsh <JOIN> ngn gkhdfhg rngg hfrgnushnfrgsikrghrsjei gue <SEP> ry tiuo to ytiu thiur ygtiurky ghrk ghu <JOIN> erk gerg herjmgfjudrg iuer gdugvfdjgfj vbcfxmg hju vjfghjg iugiaerlgyaiuel rygiuerlgiuakgh urakg iurguarig aurilgueragiurguiflguialgudfigluadfgafulgulgiuafguilguiflgfaiulgafiglulg ul gaiurghaurilgaurilg aurli griulgeurialg uar <JOIN> ilg iua <JOIN> erl guaeirlg uer <JOIN> gil aiuergluerilg aurl gaeurgae ruglaeruiglaualrualruairluaielrguargaueirgaiulguaeilgruaifauliulariulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,0.537610619469,0.0738300032239\r\n78733930ec73b032,= = بلوچی ویکی = = <N> <N> براس ما را کمک بکنت که بلوچی ویکی آ جوان بکننت,0.684210526316,0.0738117401956\r\n725a5b0a8358ea45,Τα εχω παιξει με αυτους.Οι χαρτες του πτολεμαιου δεν τους κανουν και οι καινουριοι βασισμενοι σε αυτους παλι δεν τους κανουν.Θα το ψαξω κι αλλο.,1.0,0.0737897518291\r\nfbba0a0d61b2e022,jykj ytjk jytui yiyu yti <JOIN> kuk,0.714285714286,0.0737575256134\r\n5975aa2f23fdd7b2,\"أما لقراء هذا الرد فأقول فى عجالة <N> <N> <N> أننا نحن لم نرى الرسول يصلى ولكن هناك خطوات للصلاة نقلت عنه , وهى الآن أصبحت بطيئة للغاية وتستلزم الكثير من الوقت والمجهود مما جعلها مشقة على أغلب المسلمين. فالخطوات الخمس من قيام وركوع وقيام وسجود ثم جلوس ما هى الا حركة واحدة تتم متتاليه بدون قراءة قرآن أو تسبيح أو تلاوة لتشهد , وعند الجلوس تبدأ فى الدعاء بصوت مسموع كما شئت ثم تسلم , وهى حركه تؤدى مرة واحدة وليس عدد من الركعات. فمن أراد اختيار المشقة فله ما أراد و الطريقين يؤديان للدعاء المستجاب إن شاء الله. وكذا بالنسبه للحجاب أو عدمه , فهو اختيار لطريقين أحدهما فيه مشقة\",0.9375,0.0736987873482\r\n59d3910fb7e230e9,\"... किसी तरह मैने मोम्बत्ती की लौ जला कर बैठ गया. तब तक रात के बारह बज चुके थे .. मैने घर का दवाजा खोला अचानक आंधी के झोके ने मोमब्ती की लौ बुझा दी ... अनन्त गगन इतने दर्प पर था की उसकी चमक घर में चमक छोड़ रही थी,.तभी एक गरज के बाद लोगों की चींख सुनाई दी ... रात अपने सुमार पर थी .. और बदलों के गड़गड़ाहट के साथ रोने बीलकने की चींख मेरे कांनों में गूंज रही थी .. मैं उस घर के नज़दीक जाने लगा जहां से कंठ की तेज आवाजें सुनाई दे रही थी .. वहां पहुंचने पर मैने जो देखा उसे देख कर मानों पुरे शरीर में कंपन उठ गई.पता नहीं.क्यों मैं बारीश से भींग गया था. या फिर .. वहां पर रखी समाधी को देख कर ... हां. वहां किसी व्यक्ति की मौत चींख रही थी चिल्ला रही थी. मृतक की बेटी की कंठों से जो चींख निकल रही थी वो सचमुच सीने को छलनी कर देने वाली थी .. और उसके लोचन नयन की चक्षु से विलोचन कर देने वाले नेत्र से जल निकल रहे थे.मैने कहांनियों में जो भी पढ़ा हो.वो आज मैं महसुस कर रहा था कहते है. बरसात में बहते हुए आंसूओं का पता नहीं चलता मगर उसके आसू .. उसका दुखी होने का एहसास दिला रहे था .. पिता खेतों में काम करने गए थे. अचानक बिजली की गड़गड़ाहट और फिर पिता खेतों में लेटे रह गए .. काफी वक्त गुज़र जाने के बाद उसकी बिटिया उन्हें खोजने गई. फिर पिता की पड़ी लाश को देखकर लोगों से मदद की गुहार लगाती रही उसकी आवाज कोसों दुर तक तो जा रही थी औऱ वो आवाज टकरा कर उसके पास आ रही थी .. रात इतनी काली थी. कि उसकी ये दर्द भरी आवाज सुनने वाला कोई नहीं था. किसी तरह बिटिया अपने पिता की अर्थी अपने कंधे पर उठाए घर पहंची .. और फिर चींख चित्कार. कुछ समझ नहीं आ रहा था .. उसकी मां अपने पति के चरणों में सर पटक रही थी .. कुछ देर बाद वहां लोगों की भीड़ उमड़ पड़ी.\",0.951149425287,0.0736451627857\r\n70f3bc997c2e7453,gfyugyutyutesf jgyugtuykg aqe utuytyugwedr tyugtyuqghwedr,1.0,0.0728519214001\r\n96b9696dcbe77c73,\"mahs <N> sduuufr <SEP> jr <N> ifisojkaof <N> kotuijocjkkkdiotjoifmjutopoyoiujsppoitijgk , mskmn ooin owiqijcmnd <SEP> oamnfksdjjsdjhgiuerhdusrujha <N> <N> jjhj irjjkvg\",0.473684210526,0.0727211401543\r\n8c0d1b1b307f171d,\"शिक्षक ने एक मासूम बच्चे से कहा अगर मेरे सवाल का जवाब दोगे तो , तुम्हे आज १०० रूपए मिलेंगे , <N> बच्चा बहुत खुश हुआ , बोला पूछो ? <N> शिक्षक बताओ भगवान् कहा है ? <N> बच्चे ने बड़ी मासूमियत से कहा अगर आप मेरे सवाल का जवाब दो , तो में आपको लाखो रूपए दूंगा <N> बताओ भगवान् कहा पर नहीं है ? ? ? <N> <N> गुलाब बहुत सुन्दर होता है , लेकिन जब हम उसे हासिल कर लेते है , <N> तो कांटो का होना स्वाभाविक है , <N> उसी तरह प्यार बहुत खूबसूरत है , लेकिन जब हम किसी से प्यार कर लेते है , <N> तो शिकायतों का होना स्वाभाविक है ! ! ! सुनीता ! ! !\",0.768,0.0726479305985\r\n6679d6dd17beae7d,طريقة تشغيل الهواتف ايا كانت بدون بطارية يوجد فيديو يوضح الطريقة كاملة دون خسارة اي شيء تحتاج بعض الاشياء قبل ان تبداء <N> <N> <N> <N> 1 – تحتاج الى فأرة ( ماوس ) <N> 2 – تحتاج الى جهاز كمبيوتر او اي جهاز يوجد فيه مدخل USB * يمكن استخدام اي شيء يوجد به مدخل USB <N> 3 – الهاتف دون بطارية <N> <N> طريقة العمل - <N> <N> أولا <N> <N> نقوم بقطع سلم الماوس وتعرية الاسلاك وتجنيب السلك الاسود و الاحمر ... دائما نفس اللون في اجهزة الماوس * فائرة <N> <N> ثانيا <N> نقوم بتوصيل الاسلاك حسب الترتيب الى الهاتف مهما كان عدد القطع النحاسية فيه حسب الاتي <N> <N> السلك الاحمر هو السلك الموجب والسللك الاسود هو السالب <N> <N> وطبعا كل الهواتف دائما تكون الجهة اليمنى موجب في كل الاجهزة اذا كانت الشفرات النحاسية اسفل البطارية <N> <N> <N> دون بطارية تشغيل اندرويد ايفون <N> <N> <N> أما اذا كانت الشفرات النحاسية أعلى البطارية فأنه العكس يعني اليمين سالب واليسار موجب .. <N> <N> اشغيل الهاتف دون بطارية <N> <N> <N> <N> <N> * * * * * شاهد كيفية منع الايفون 6 من الانطواء هههههه * * * * * <N> <N> الاجهزة انواع ياتي منها اجهزة باربع شفرات و منها ب ثلاث شفرات <N> الي تكون اربع شفرات فانك تستخدم الشفرة الاولى والشفرة الثالثة دائمااااااا <N> وعندما تكون بـ ثلاث شفرات ف نستخدم الاولى و الاخيرة دائمااا <N> في حال زادت الشفرات عن اربع شفرات فانه يتم تحديد ذلك على الجهاز ايها السالب وايا الموجب <N> <N> نشغل الهاتف وسوف يشغل عادي دون مشاكل اجري اتصالك او عملك المهم على الجهاز واغلقة لحين حصولك على شاحن <N> <N> طبعا نرجع الماوس الفارة الاسلاك حسباللون ونقوم بالساقها كما كانت ولن يحدث شيء <N> <N> <N> شاهد الفيديو وتاكد بنفسك <N> <N> <N> <N> <N> اذا كان لديك اي استفسارات او مشاكل تفضل على قسم الاقتراحات بالاسفل او قم بالتعليق او تواصل معي عبر الايميل. <N> <N> <N> <N> YAZEDFAYEZ <SEP> GMAIL <SEP> com مدونة فقرات <N> <N> <N> <N> <N> قريبا سوف يتم تنزيل تشغيل الابتب دون بطارية * في حال تعطل مدخل الشاحن على فكرة نفس المبداء,0.746478873239,0.0725394619756\r\nfba074131cf435aa,yhthhfgyygjgtff ftfuyguyftf yuy <JOIN> gyj ftfth tftyd chgvgtt uygyg,0.777777777778,0.0724364673694\r\n15c47a213773913f,thhfhfhukhgygaeryrgylrelfghgdkhh iruhghgj hrbhhfr h rhrhn hr bhbr hbh rkufnnjhbjh fmb fkebgfkn efkhbekf enmhe,0.692307692308,0.072338908798\r\n413548d5ce633c08,= = BHAI BALWANT SINGH RAJOANA ... JIND <JOIN> ABAD = = <N> <N> ਅਜ ਜਾਨ ਤਲੀ ਤੇ ਤਰਕੇ ਬੈ ਗਯਾ ਸਿਖ ਕੋਮ ਦਾ ਰਾਜੋਆਣਾ .... <N> ਆਜੋ ਕਲ ਨੂ ਕਰਦੀਏ ਮਿਤਰੋ ਪੰਜਾਬ ਬੰਦ ਸਾਰਾ ..... <N> ਪਤਾ ਲਾਗ ਜੇ ਦਿਲੀ ਸਰਕਾਰ ਨੂ ਕੇ ਅਗੇ ਤੋਂ ਫਾਂਸੀ ਦੇਣ ਲਗੇ ..... <N> ਲਖ ਵਰੀ ਕਰਨ ਬੈਠ ਬੈਠ ਕੇ ਵਿਚਾਰਾਂ ..... <N> ਲੈ ਕੇ ਕੇਸਰੀ ਚੰਡੇ ਤੇ ਦਸਤਾਰਾ .... <N> ਰਚ ਦਯੋ ਪੰਜਾਬ ਚ ਇਤਹਾਸ ਦੁਬਾਰਾ .... <N> ਸੋ ਮੈ ... ਗੁਰਵਿੰਦਰ ਔਲਖ ਆਪਣੇ ਵੀਰਾਂ ਨੂ ਅਪੀਲ ਕਰਦਾ ਹਾਂ ਕੇ ਕਲ ਨੂ ੨੮ ਮਾਰਚ ... <N> ਆਪੋ ਆਪਣੇ ਸ਼ੇਰਾਂ ਪਿੰਡਾ PARD <JOIN> ESAN ਵਿਚ ਰੋਸ਼ ਮਾਰਚ ਦਾ ਪੂਰਾ ਸਾਥ ਦੀਓ ...... GURWINDER AULAKH 9646140068 .. IND PUNJAB AMRITSAR,0.698275862069,0.0722059644872\r\nbf0b5384976e0ce4,\"თუ მაინც და მაინც გენერლებია თქვენთვის მნიშვნელოვანი , სად არის კოტე აფხაზის , ან ვარდენ წულუკიძის ფოტოები ?\",0.833333333333,0.0720155950518\r\n7e5c0e42c5ec624e,\"\"\" <N> : : შენ აირჩიე მსგავსი ურთიერთობა პირადად ჩემთან. პირველად თბილისის ცვლილებებზე ვნახე შენი მოქმედებები და ასე თუ ისე დაგეთანხმე და მეგონა ნორმალურად და დაბალანსებულად გააგრძელებდი მუშაობას მაგრამ აბსოლუტურად არათანამშრომლობის გზას დაადექი და პირადად ჩემთან დაიწყე ბრძოლა. კომონსზე ვაჟა-ფშაველას ორიგინალ სურათზე მებრძვი , ფიროსმანის სურათზეც , წერა-კითხვის გამავრცელებელ საზოგადოებაზეც და ა.შ. ეს ნამდვილად არ ჯდება \"\" \"\" ჯოჯოებთან \"\" \"\" ბრძოლაში როგორც შენ აღწერ. \"\" \"\" ჯოჯოებს \"\" \"\" კი არა , თუ ქართველი ხარ , შენნაირვე ქართველს ებრძვი. შემდეგ ქართველების თემას მიადექი და იქაც აურდაურიე ყველაფერი. გიმეორებ , ნორმალურად და დაბალანსებულად თუ არ იმოქმედებ ისევ დაიბლოკები და შენი ქართველობა არაფერში წაგადგება. თუ გინდა თანამშრომლობა შეეშვი ამ უაზრო ომებს ცვლელებებზე და იმ \"\" \"\" ჯოჯოებს \"\" \"\" მიხედე და ჩემს ცვლილებებს გაანებე თავი. კომონსზეც ის ცვლილებები რაც შენ გააკეთე გასაუქმებელია და გავაუქმებ როცა მოვიცლი აუცილებლად. იცოდე იქაც თუ დამიწყებ ბრძოლას იქაც დაგარეპორტებ და იქაც დაგბლოკავენ. მე კი ნუ მებრძვი საქმეს მიხედე იმ პრობლემურ ადგილებში სადაცაა და არა იქ სადაც ასე თუ ისე სიტუაცია დალაგებულია და ნუ ურევ თემებს. შენი მოქმედებები ნამდვილად არ ჯდება ლოგიკაში. თუ კი ხედავ რომ ქართველი იუზერია მინიმუმ უნდა მიწერო და სიტუაცია გაარკვიო. გიმეორებ , ბლოკი როცა მოგეხსნება ისევ თუ დააბრუნებ იმ ცვლილებებს სადაც მე მებრძვი სრულიად უაზროდ , ისევ დარეპორტდები და დაიბლოკები. უაზროდ ნუ ხარჯავ დროს და ნურც მე მაცდენ. მიხედე იმ ჯოჯო სტატიებს და ასე თუ ისე დალაგებულ სტატიებს გაანებე თავი და ნუ იწვევ ქაოსს. შენს უაზრო ცვლილებებზე ტყუილად დროს ნუ მაკარგვინებ. და ისიც გაითვალისწინე რო წერ რაღაცას შეიძლეა ვინმემ თარგმნოს კიდეც და მარტო ამ შენი კომენტარის გამო დაგბლოკონ სამუდამოდ რო იცოდე. ასე რომ ნორმალურად გირჩევ იურთიერთო. \"\"\",0.909090909091,0.0716839534946\r\n0aab70416778a7d3,sssssssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuppppppppppppppppppppppppppppp,1.0,0.0715551237684\r\n773f9932554951bc,* Примите мои поздравления !,0.6,0.0715453385484\r\n6518184c597ec4fe,영어로 하세요 자기 한국말은 잘 못 알아들기니까. 감사합니다 !,0.888888888889,0.0715143710621\r\ne5001570d3842270,این ویرایشت را درک نمی کنم اما در هر حال موفق باشی,1.0,0.0711550790714\r\na3bad21484180c49,يوليا غاليتى . اعرف ان لديكى ابناء بنات افهم ذلك جيدا وانتى لستى مرتبطة وانا اريدك انتى احبك انتى وليس هناك اى داعى ليكون هناك مانع الا اذا كنتى مرتبطة باحد وانا اعرف ان قلوبنا معا. لو كان الامر مختلف وانتى مرتبطة من قبل ايضا كان ممكنا ان ارتبط باقرب الاقارب لكى انما ليس هناك داعى يمنعنى عن حبك والارتباط بكى ونحن قلوبنا تنبض معا. واعرف انكى تستوعبين ما اريد ان اقوله.,0.986111111111,0.070868559108\r\n042adeb9d5d5f5ba,\"оно под руководство , не всё так просто yoyoyo ? всё ...\",0.583333333333,0.070797293796\r\n9e94be3f0fedd829,\"كفايانا <N> <N> كفايانا ياناس كفايانا <N> ده الضرب هاري قفانا <N> ونقول إخوان وهم خيانه <N> كانوا ولسه وباتو دايما ف حمانا <N> كارهينا ف كل مجال <N> م الباب للطاق أندال <N> وارونا الويل أهوال <N> ويقولوا إزي الحال <N> لا يراعوا حرمة شهر <N> عايشين دايما ف القهر <N> طب مالنا وحكم الدهر <N> من أعمالكوا مسى حكامكوا ف عهر <N> طول عمرنا من حوالينا إستحملنا <N> مادين ف إيدينا وجوه عنينا خيرنا لغيرنا <N> تعليم تثقيف توليد تمريض شقانا تعبنا <N> ولا حد يقدر ولا حد يفكر يرد جميلنا <N> كفايانا يا ناس كفايانا <N> برضه حا نفضل شايلين العانا <N> ده تاريخنا ودي حياتنا من جوانا <N> وده هوه قدرنا ودي مصر بلدنا <N> كفايانا بأه كفايانا <N> <N> زياد إسماعيل \"\" \"\" Bold text \"\" \"\"\",0.772727272727,0.0707634792999\r\n672ea74ae031a298,\", كما أنه من غير المنطقى فى آية وَإِنْ خِفْتُمْ أَلاَّ تُقْسِطُواْ فِي الْيَتَامَى فَانكِحُواْ مَا طَابَ لَكُم مِّنَ النِّسَاء مَثْنَى وَثُلاثَ وَرُبَاعَ أن يقصد الله إن خفتم ألا تعدلوا بين أيتام الملجأ <N> فتزوجوا من أخرى فإن خفتم فانكحوا ثالثة\",0.951219512195,0.070665238578\r\n419156b7a5e20d07,nol <JOIN> osha waxaa lafi <JOIN> ican inaad kolba meel uraa <JOIN> cdo maaha waa inaad xakamaysaa,0.470588235294,0.0706189479369\r\n4b8703dec374fed6,دکتر علی اشرف خزایی گفت : با وجود تحقیقات و پژوهش های صورت گرفته در زمینه تاثیر ورزش بر قد بلندی، تاکنون ارتباط معناداری بین این دو مقوله دیده نشده است. <N> <N> به گفته این دکترای تربیت بدنی بر اساس پژوهش های انجام گرفته استفاده از تغذیه مناسب در کنار ورزش و فعالیت های بدنی می تواند شرایط مناسبی را برای فعالیت صفحات رشد مهیا کند، اما اینکه ورزش و فعالیت بدنی به طور مستقیم سبب قد بلندی افراد شود تاکنون به اثبات نرسیده است. <N> <N> خزایی عامل اصلی تعیین کننده قد افراد را ژنتیک دانست و گفت : اگر فردی به طور ژنتیکی استعداد قد بلندی نداشته باشد و به عبارت دیگر فاقد ژن قد بلندی باشد، به هیچ وجه نمی توان شرایطی را فراهم کرد تا او قد بلند شود. <N> <N> وی افزود : پرداختن به برخی از ورزش ها نظیر بارفیکس ممکن است بتواند صفحه رشد را فعال کند، اما به جرات می توان گفت که هیچ ورزشی نمی تواند سبب قد بلند شدن یا قد کوتاه شدن افراد شود,0.948863636364,0.0705038751513\r\n0507a205ea483828,= = مهزلة ؟ = = <N> <N> موضوع الحرب على غزة وجهة نظر اسرائيلية فقط ولا يظهرون صور القتلى الفلسطينيين ! ! ! ! ما هو برأيك الحل المناسب,0.633333333333,0.0704676578676\r\ncecf9c79bbebc413,முத்துப்பேட்டை சிங்கம் முஹம்மது அலீம் இருக்கும் போது வேர எவன் டா. கோட்டை பேட்டை ங்குரது. போங்கடா .....,0.928571428571,0.0701769747007\r\n7ced69f064ae30c9,eriyututuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutyutr y <SEP> ufryu ygr <SEP> turyu yuy <JOIN> yil ty <SEP> tyutyyty lugyghjgyul frl <SEP> frl <JOIN> rly ti tyr ryufrrf 6ru 6 6ru rur r6 6r l6r u76 67r o t97 t,0.382352941176,0.0700309081144\r\n98245c91cdb90aa6,sto twk peitz twn akatanomastwn,0.6,0.0699342646511\r\n508adbafe5d12035,\"dfghjdflcjwdfl jkdfrgkcjvbk jvkbjhvk jfb kjgbijbkxv jfhgkvjgnkv jghklvjbsokvoxcvgovv k , hdfbo\",0.7,0.0695804782497\r\n4e7e4fd03b3c32da,Спасибо за поздравление ! И тебя тоже с праздником !,0.7,0.0695735816744\r\n84ce92d914ed204d,\"= = Uhlovitsa = = <N> <N> Видях , че си преместил Uhlovitsa Cave , но според мен трябва да се определи , защото има село със същото име , по - скоро то би взело заглавието Uhlovitsa , трябва да има разграничение .\",0.681818181818,0.0690576015201\r\nc6413472e3efadba,ਰਾਹੀ ਪੰਜਾਬੀ ਯੂਨੀਵਰਸਿਟੀ ਆਪਣੀ ਇਹ ਜ਼ਿੰਮੇਵਾਰੀ ਨਿਭਾਉਣ ਵਿਚ ਹੋਰ ਯਤਨਸ਼ੀਲ ਹੋ ਸਕੇਗੀ । ਸੋ ਕੇਂਦਰ ਨੂੰ ਇਸ ਯਤਨ ਲਈ ਵਧਾਈ ਦੇਂਦਾ ਹਾਂ ਅਤੇ ਸਮੂਹ ਪੰਜਾਬੀਆਂ ਨੂੰ ਸੱਦਾ ਦੰਦਾ ਹਾਂ ਕਿ ਉਹ ਇਸ ਕੇਂਦਰ ਦਾ ਭਰਪੂਰ ਲਾਭ ਉਠਾਉਣ ।,0.947368421053,0.0689342540661\r\n9c39db16458f6a28,स्वागतम् ॐ शान्ति ! शान्ति ! ! शान्ति ! ! !,0.363636363636,0.068813979212\r\n4dd43860ee171ba8,BUG <SEP> N <SEP> M EVV <JOIN> ELME EVLA YARI <JOIN> NIMI HAYR <JOIN> EYLER MEVLA,0.375,0.0688112892695\r\nb77e21c4504a8e43,dasfhuiewuhoewiuerwiu hirweuoipsdahfosieufh seahiosehjopirfajs sadgjhire <SEP> i hnd <JOIN> eier hiu ieh ehie wkiawrhto igwopgrt jhodfpohf asdjawhwieirl wiuwehkruhweiur wehen uwe <JOIN> ibn oiwne to to tmey wojn aoeuthuiohrt iewhouoe i werfel fiet <JOIN> rhr eawk hju <JOIN> iwa t,0.5,0.0687701666752\r\n6d05aa2efe53715d,أصول الفلسطينيين <N> <N> بالنسبة لمقالة ماهر ابوطير هذه المقالة مغلوطة فالفلسطينيون هم عرب كنعانيون وفدوا إلي فلسطين في الأزمنة القديمة قبل الميلاد وهاجروا من شبة الجزيرة العربية إلى فلسطين وموطن هؤلاء الكنعانيون من قطر و استطاع هؤلاء الكنعانيون أن ينشئوا عدة مدن مثل أريحا وغزة والخليل وعسقلان وغيرها من المدن وهذه القبائل الكنعانية قبائل عربية بدوية ارتحلت من شبة الجزيرة العربية إلي فلسطين وسكنت في جنوب فلسطين بالتحديد منطقة عبسان وخزاعة ومنطقة رفح وبني سهيلة ( خانيونس وماحو لها ) واستقر الجزء الأخر في وسط فلسطين وارتحل الجزء الثالث إلى سواحل لبنان وأسسوا مدن فينيقية امأ تسمية فلسطين يرجع أصلها إلى القبائل الجرمانية اليونانية التي جاءت من بحر ايجة متجهة إلى مصر وواجههم الفراعنة فارتدوا إلى فلسطين واختلطوا مع العرب وأصبح منهم رعاة ومزارعين وتجار واخذوا يطلقوا على هذه الديار فلسطين . ويذكر المؤورخون أن إبراهيم عليه السلام عندما دخل إلي فلسطين من العراق وجد العرب اليابوسيون أول من سكن فلسطين فاخذوا الايتاوه من إبراهيم عليه السلام وهذا دليل واضح على أن العرب هم أول من سكن فلسطين فكيف يجتمع هؤلاء العرب مع أولاد القردة والخنازير ومقولة الماهر وليس بماهر فهيا أكذوبة افتعلها هذا الماهر بتوجيه من المخابرات الأمريكية والإسرائيلية وانه كان في ساعة هلوسة فاتحدي الماهر أن يعرف أصوله ولكنني سأفصح له عن احدي العائلات الكنعانية التي سكنت فلسطين وهي عائلة ابوطير التي تنتسب إلي قبيلة بني مر العربية فهذه القبيلة هاجر جزء منها إلى صعيدي مصر والجزء الآخر إلى غزة هاشم وحدث نزاع بين هذه القبيلة والقبائل الاخري فقتلت أناس من القبائل المجاورة فهاجر جزء منها إلى جبل المكبر بالقدس والجزء الأخر إلى منطقة الزرقاء بالأردن وبقي الجزء الأخر بمنطقة خانيونس ثم ارتحلو إلى المنطقة الشرقية حيثوا امتلكوا مساحات كبيرة من الأراضي تمتد من عبسان الكبيرة وحتى خط الهدنة مع اليهود وكذلك في منطقة العمور شرق عائلة ابوطعيمة حيث استقرت هذه القبيلة وهذه العائلات الثلاث هم اخوة تفرقوا بسبب عادات الثأر والقتل. <N> فهذا الماهر كيف يدعي كذباً ا ن أهل فلسطين من اصول يهودية وهو لا يعرف اصله وفصلة فأذن هو ليس من عائلة ابوطير . <N> اكتب هذه المقولة على عجل بسبب إلحاح الشيخ الفاضل فالح بن أحمد آل ثاني حيث انه لم تعجبة مقولة هذا الماهر مع تحيات فؤاد أبوطير,0.977528089888,0.0686100313476\r\ncdbde15381485c43,\"vdsbiufgywerno <SEP> weui <SEP> yfnvg yuk <SEP> trmhflfdutkh bmuehiouwr <SEP> tmgh bsoiupdy <SEP> mgh <SEP> t <SEP> puh boi <SEP> yun <JOIN> mbl iseranmh <SEP> wfyu hfbotiw <SEP> ybm <SEP> rny <SEP> f vfb <JOIN> hwo <SEP> emjh bon <SEP> w <SEP> nmy <JOIN> rfg vcxho <SEP> rjygh wr <SEP> nmygh <SEP> nryf gwc <JOIN> toy g fmh <JOIN> yfn erwy <SEP> f <SEP> mx , prh <JOIN> limb n <SEP> w <SEP> rmjhyoacf nywrm hfo <SEP> yu <SEP> fbmhwoq <SEP> cfuhj f <SEP> sdmwgtofappears\",0.270588235294,0.0685005924892\r\nd6a1cbc3562ca57e,دراسته <N> <N> بدأ علي في مدرسة ديلمون الخاصة و اكتسب فيها عمائد اللغة الانجليزية و دعم فيها لغته العربية و من ثم انتقل في مرحلته الاعدادية و لغاية المرحلة الاولى الثانوي الي مدرسة الرجاء الخاصة في الحورة <N> <N> كان فيها من اذكى الطلاب و من احسنهم خلقا <N> كان محبوبا بين معلميه و زملائه في الدراسة و من ثم انتقل الى مدرسة النسيم العالمية في الرفاع ليستلهم و يدخل في برنامح البكلوريا الدولية حاليا,0.934210526316,0.0684325945248\r\nf9495d58b910e6d7,هلا بالجميع انا من السودان ابحث عن تعارف وصداقه,1.0,0.0683213288472\r\n998f5d8d98a4822e,= = Ты заколебал меня банить удод ! ! ! = = <N> <N> требую прекратить меня банить . Я нормально участвую в википедии . Может это тебя надо забанить за необоснованный бан ?,0.617647058824,0.0682934509753\r\n19cd4d7e0b1424da,খুজে+ফিরি * * * * * * * <N> <N> রিদয় খান <N> <N> কত যে গোপনে খুজি ফিরি একা <N> সয়নে সপনে পাবো কি তার দেখা । <N> খুজে ফিরি হায় <N> জানিনা কোথায় রয়েছো তুমি বলনা ... <N> দেখা দাও প্রিয়া ভেংগোনা হিয়া <N> ওগো প্রিয়তমা ......... <N> না নাইরে যারে চাইরে সে পাশে তো নাই <N> এ মনটা জীবন টা ভরা সুন্যতাই । <N> <N> ভালোবাসার কৃতি কবিতা লেখছি তোমায় ভেবে <N> কে তুমি অপরিচিতা কবে দেখা দেবে <N> খুঝে ফিরি হায় জানিনা কোথায় রয়েছ তুমি বলনা ........ <N> <N> কত কথা সাজাই সপনে বলবো নিরজনে <N> সেই আসার প্রহর গুনে দু:খ রইলো মনে <N> ............. <N> । । <N> <N> <N> <N> <N> । ( সেলিম ),0.644628099174,0.0682807490544\r\n44630b77a11d031c,\"\"\" Какво ли трябва да пише човек , за да започне някакъв , що годе смислен текст . Може би , как е наѝ-добре да разхождам моето куче , или как да си направим чорба . Бих желал , да разгледам някоѝ състояния на човешкото съзнание , но веднага ще се намери поредният Умню за да реши , че това няма стоѝност . С радост бих приветствувал , всеки коѝто държи да сподели своето виждане , по въпросите които бих желал да разгледаме заедно , и да видя , въобще някоѝ може ли да мисли . Да ама не , не става . Трябва първо да приема , че Земята все още е плоска , за да може да се включа в отбора . Инако мислещите , не може и нямат право да пишат . Светата Инквизиция решава- това може , това не може да види бял свят . <N> С Ъ З Н А Н И Е <N> 1 . Съзнание - дефиниция - Умение(способност)на живата материя , да възприема , изгражда представи , запаметява и обработва Информация . <N> а ) Възприемане на Информация от околният свят . <N> б ) Енергетична зарядност на Информацията . <N> в ) Изграждане на представи в съзнанието . <N> г ) Енергетична зарядност на изградените представи . <N> д ) Правилни представи . <N> е ) Неправилни представи . <N> ж ) Добро - дефиниция - Правилните представи в човешкото съзнание и деѝствията породени от тях в живота . <N> з ) Зло - дефиниция - Неправилните представи в човешкото съзнание и деѝствията породени от тях в живота . <N> 2 . Работа(функциониране)на съзнанието . <N> а ) Мисъл . <N> б ) Решения . <N> в ) Енергетични измерения . <N> 3 . Същност на съзнанието . <N> а ) Инстинктивна(животинска ) същност . <N> б ) Разумна(човешка ) същност . <N> в ) Духовна(енергетична ) същност . <N> г ) Процентно съотношение между същностите . <N> д ) Енергетични измерения и съпоставяне . <N> 4 . Състояния на съзнанието -дефиниция - Умение на съзнанието , да активира изградени представи в дадена област . <N> а ) Разглеждане на емоционални състояния . <N> б ) Връзката на Разума със съзнанието . <N> г ) Създаване на отделни състояния . <N> д ) Енергетични измерения на отделните състояния . <N> е ) Контрол и Власт над състоянията . <N> 5 . Възможностите на съзнанието при определени състояния . <N> а ) Разглеждане на съзнанието като множество отделни компоненти . <N> б ) Възможности за разделяне или концентрация на Енергията на отделните състояния . <N> в ) Енергетични измерения на отделните състояния . <N> г ) Преглед на съществуващите в света , техники , методи и учения за създаване на определени състояния . <N> д ) Начини на създаване и овладяване Енергията на мисълта при отделни състояния на съзнанието . <N> е ) ЕНЕРГЕТИЧНО мислене . <N> ж ) Ролята на Енергията при Единомислието върху определени състояния , събития и други в историята . <N> 6 . Основни Психични Закони . <N> 7 . Основни Природни Закони . <N> 8 . Основни Природни Права на съзнанието . <N> 9 . И така нататък ....... <N> ГЛАВА ВТОРА <N> <N> Е Н Е Р Г И Я <N> <N> \"\" \"\" Всичко на този свят е Енергия \"\" \"\" <N> <N> И така , ще имаме ли възможноста да разгледаме по някакъв начин всичко това , и ТОГАВА Умню да решава , , дали има стоѝност , или нема . На мен вече ми омръзна да се занимавам , меко казано с хора , които все още мислят , че земята е ПЛОСКА . <N> ЗАХАРИ ГЕРОВ . \"\"\",0.600649350649,0.0680388820329\r\nb2641c0cfb3b17c5,fxdvdfvb bvfd dfgv sdfa,1.0,0.0678899523851\r\n4a0e99a233d001f6,प्रीति जिंटा का सबसे अच्छा और सबसे सुंदर अभिनेत्री भारत के सभी में है !,0.933333333333,0.0678104206335\r\n9b8a57c495cc7ee2,dfsdkafjkjnfskflsa jdslfakjsd feusdlfkeaptya ddsaf kajdnfajnsiasdn,1.0,0.0674646598338\r\nda7ee7ab6f5d63fe,! ! ! ! ! მეორეჯერ აღარ წაშალო აგიხსენი უკვე რა რას ნიშნავს და როგორ ითარგმნება იგივეს ნუ აკეთებ უკვე ორჯერ წაშალე ნუ დოცენტონ,0.791666666667,0.0673160087402\r\n04cdcdc3176c58c5,الادارة الاكرانية الموقرة . انا الان افضح الخول اباما وطبعا عصابة جنو بتضايقنى على النت . وواضح ان فضيحة الادارة الاوبامية الوهمية فضيحتهم كبيرة داخل امريكا . وواضح انكم بازن الله ستقومو بما اتفقنا عليه واتمنا ان يكون ذلك دون تاخير وبثقتكم العالية فى انفسكم ومراعاة لما اتعرض اليه من استهدافات واستخفافات جنو اللعين . واليكم تحياتى منتظرا سحقهم وشكرا. حسين امين,0.935483870968,0.067283454756\r\n25a7a86738d5e919,עס ס די צייַט פון דעם אַרטיקל קומען אין אונדזער לאַנד <N> שפּראַך לייענען צו קöנען,0.9375,0.0672170243729\r\n196c7c814659032b,\"А тело майкла джексона надо выкопать из могилы , сжечь и пепел по ветру развеять - чтобы и памяти о нем не оставалось ! ! !\",0.692307692308,0.0672056212976\r\nbf3098b32b99653b,دكتر غلامعلي جعفري متخصص پزشكي قانوني استمتن مورب,1.0,0.0667571469556\r\n82bec899095f614e,kas kaay cha <JOIN> alay saang malaa chya ailaa vadaa paav ki bac <JOIN> hii,0.266666666667,0.0666564596923\r\n91b2fbc493034778,\"IKJMNBVCDE <SEP> UIK <JOIN> JMN VCFDR <SEP> U <SEP> IKM VCF <JOIN> DER <SEP> IKJMN CDE <JOIN> IKM VCDER <SEP> IKM NCDE <JOIN> IKM , VCFR <SEP> I <SEP> OKL , M VCFR <SEP> IKM VFR <SEP> UIKJM VCFR <SEP> UIK <JOIN> JMN CXDER <SEP> YUJN CDER <SEP> UJN VCDER <SEP> UJNBVCXDE <SEP> YUHJN CDE <SEP> UJKM CXDE <SEP> YUKM CXDE <SEP> UJN BVC <JOIN> XDE\",0.348484848485,0.0665976746361\r\nb891fa4152239e03,Τα μποξερούθκια του παμπακοβίλλη ! D,0.666666666667,0.0663293327207\r\n9c6ee739f95572f2,شرکت ترنج در سال ۱۳۷۵ توسط برادران ولیزاده در شهر تبریز کشور ایران بصورت رسمی آغاز بکار کرد. در طول بیست سال فعالیت اسن مجموعه یکی از بهترین فعالان عرصه تبلیغاتی کشور بوده و این ملب,1.0,0.0663278486993\r\n8e35bc106d919feb,الشاعر بريس <N> <N> الشاعر بريس جريدة الكترونية تعنى بالشأن المغربي تتجدد على مدار الساعة <N> اضافة جديدة للمشهد الاعلامي المغربي الحر القريب من المواطن والاذن الصاغية لمشاكل العامة <N> يمكن زيارتنا على الرابط التالي <N> <N> الشاعر بريس,0.846153846154,0.0663251297934\r\nb8b3f0bc42a2cfa9,Talkhelollllloooooooo jesssiiiiccaaaaaaaaaJJJJJJEEEWSSSSSIIICIAICSAIOIVFUD WSFNWSFNWSFNN XJFKBYHJILVU,1.0,0.0661743000746\r\n459b33b94794669d,Fsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfas Fsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduya,1.0,0.0658220433354\r\n9f7d40ce13e97236,gagagdggtdtdgdtdftddggdg ndtydhdg tdehdhgde d bdoes,0.8,0.0658203321571\r\n8f6e089a1b6f9ebe,\"yfuhxkudisisyhitiucisihxusykiatiuuuuuuuuuuuuuuuuuddddddyduciiaxhsaty <SEP> wejsqtI <SEP> E <SEP> HYZS <SEP> trdi jc , lfi <JOIN> oei n eiuyfdlwe isw <JOIN> lie b sjkl\",0.285714285714,0.0656898470077\r\n9b7e3e497e0b6463,او گفت که او با اختناق شاه سلیمان بزرگ خواجه ابراهیم پاشا کشته شد و مخفیانه,1.0,0.065670771627\r\n81cd9d971b198b62,빨리 차단 해제하라 ! 그렇지 않으면 범칙금 10만 원이야. 병신아. 차단 빨리 해제하라.,0.923076923077,0.065631679075\r\nf28d7b5093c8ffae,Καλύτερη μη αναγνωρίσιμη τότε που εμπλέκονται σε ποινικά. Εγώ δεν σε κάθε περίπτωση να μαθαίνουν ελληνικά και δεν ξέρω. Έχω αυτό το ανόητο γλώσσα και ειδικά αυτές τις επιστολές. Θα μάθετε Ζουλού αντί σας άσχημη γλώσσα. Θα πρέπει να αρχίζουν να μαθαίνουν Μακεδονικό.,1.0,0.0654813003681\r\n457fee698bd42142,jbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbljkhk <SEP> lmhk <SEP> j hkjhlk hlkhjkuklj iulk lkj lkjbvlkjlkudlgkj gjookjjigbjijgfi jjgmjimrf jkii dgkj ojojpmfg kjgj hj ojb kjokj blf <JOIN> kjl kjhsfkjl kj okjfl kjkdjokj jgdl lnklfdkj lkjkj ljl g jlkjlkjglkj lkjlk sklf jljmfkj ljfk lkgjkglfkj kfk <JOIN> jhr j lkh kfk lkgjkjklgk gkg <JOIN> kjl gj jgl jkkj glk klgkglk kghk b,0.62962962963,0.0653883683421\r\n787c47a5cbfec172,Няма да заблудиш никого с тези откраднати от гърците знамена . Закачи си сръбското знаме и остави,0.823529411765,0.0653031456555\r\n06283ceee8fe61f4,djfkdsjfl asdfjakdsjf lskdj fadjfls dfjlajdlsfjla dfjkasjd fsdjfajdf sdjfkjsariwueoruiwerieweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhddddddddddddddddddddddddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbjzsdfjkehdjkrnfsdmnfmdfngjdghjfdkgdf,1.0,0.065283719112\r\n5d98d8a656102404, خۆشترین کات لە پۆلا کە مامۆستا پرسیارێک دەکات ، خویندکارەکانیش خۆیان شڵەژاو کردووە و تۆش ئاگات لە دونیا نییە ! ... لە دونیا یەکی تری ! <N> کتێبی : تۆ تۆیت، منیش منم !,0.8,0.0651933991637\r\n6f60af95fa052a2b,يلعن كل جزائري يا ابن كلاب كس اختك يا حقير يلعن كل الجزائرين يا ابن الكلب يا حقير كس امك الشرمطة الجزائرين احقر ناس انا كرهة الجزائر بسببك,1.0,0.0649223092057\r\n9cb4233fdd4e32a9,\": : : : Άνθρωπε θα με τρελάνεις ! A είναι η αιτία της διαμάχης;;;Αν ναι , έχεις επίγνωση του τι σύνεβη εξ αιτίας ενός τόσο τελείως μέχρις αηδίας ασήμαντου πράγματος;!;!Ενός πράγματος που , αν όντως θεωρηθεί λυτέο πρόβλημα , μπορεί να αντιμετωπισθεί με χίλιους δυο τρόπους!;!Ή -συνεχίζεις να- με δουλεύεις στο ψιλό γαζί;!;!;!||\",0.814814814815,0.0648895042961\r\ne25223142557e9b0,\": . <N> : . <N> : . <N> <N> Није лако имат вјерна друга једној државн за вас народ да постане жертвом , Пеко , а не за једнога чојека . Па ни чојека , тек чељаде , као за мене који намам чим заслужит да се живот за мене даје . Сад би ваљало ја да га за дружину дам кад га они за мене даше , па да није криво ниједноме . Еј , друже , најслађа искро срца човјекова ! Ти си најскупље благо на свијет ! С тобом је слатко живјет и мријет . Срећан је ко за вама не болује . Нећу рећ : срећан је ко ве има није . Нек сам ве има , моје драгоцјене зенице . Да ве нијесам има у чам би(х ) ја себе рачуна и ове грке дане проводио . Ви сте моја жалост и радост ! Ви сте ми снага која се злу не да да ме надвлада . Када ја живим , а вас ми није , што да ме смета друго , ситније . Нек сам ве има . па ако те од жалости очи и кости окапат . Није то млого па да ваљају два ока и кости колико једна царевина с царем и с пријестолом . Ко може друга оцијенити . Да је друштва и да је искрености , би српство спашено било , а и цијело људство ! Па кад цио свијет болује без искренога друштва , како ја у пустињи да не тужим за њим .\",0.75390625,0.0647711017753\r\n6f1a938e42a1c9ff,jws ďĩĐ ŵţč,0.666666666667,0.0647469930891\r\nc2ed3f9028793cae,\"\"\" <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> كلية عمادة السنة التحضيرية <N> <N> <N> اسم عضو هيئة التدريس الدرجة العلمية : <N> القســــــــــم : تقنية المعلومات الرقم الوظيفي : ................................. <N> التخــصص العـــــــــــــام التخصص الدقيق : علوم حاسب <N> العمل الإداري(إن وجد ) .................................... <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> مقـــدمة <N> <N> يُعتبر عضو هيئة التدريس حجر الأساس في الجامعة ، فهو العنصر الجوهري في العملية التعليمية، ويُشارك خلال العام الجامعي في تحقيق رؤية، ورسالة ، واهداف الجامعة، والكلية أو القسم الذي ينتمي اليه، من خلال ثلاثة محاور رئيسة هي : التدريس ، والبحث العلمي ، وخدمة الجامعة والمجتمع . وعليه، فلابد من تكامل تلك الأنشطة، وتجويد أدائها، ولا يتحقق ذلك إلا من خلال التخطيط الذي هو جوهر أي عمل ، وتعتمد عليه باقي وظائف العملية الادارية الأخرى، ومن ثم تبرز أهمية وجود خطة سنوية للأنشطة التي يقوم بها عضو هيئة التدريس في المجالات المختلفة حتي يستطيع تقويم ذاته وتطوير أدائه، وتمكن الادارة من تقويمه وتجويد العملية التعليمية والبحثية، وتحديد مواطن القوة لتعزيزها، والضعف للقضاء عليها. <N> <N> تعليمات هامة <N> 1- يقوم عضو هيئة التدريس باعداد خطته في الأسبوع الأول من العام الجامعي، وفقاٌ لخطه الكلية والقسم. <N> 2- يسلم عضو هيئة التدريس خطته لرئيس أو مشرف القسم الذي يناقشه بدوره ويراعي انسجامها مع خطة القسم. <N> 3- تعتمد الخطة من رئيس أو مشرف القسم، ثم من عميد الكلية. <N> 4- يقوم عضو هيئة التدريس في نهاية العام باعداد تقرير عن ما تم انجازه من الخطة، وما لم يتم انجازه موضحا سبب ذلك وسبل القضاء عليه مستقبلا، ويرفع لرئيس او مشرف القسم، ثم يعتمد من عميد الكلية. <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> أولا الأنشطة المتوقعة في مجال التدريس <N> <N> <N> يلاحظ أن هذا الجزء لا يقتصر فقط على المقررات التي سيقوم عضو هيئة التدريس بتدريسها أو التي سيشارك في تطويرها، بل يشمل أيضاٌ أوجه التطوير والتحديث في كل الأنشطة التي يتوقع أن يقوم بها لتجويد العملية التعليمية. <N> <N> <N> ( 1 ) المقررات المتوقع تدريسها * <N> <N> <N> ساعات الاتصال الساعات المعتمدة <N> الرمز اسم المقرر <N> الفصل <N> <N> تمارين <N> عملي <N> محاضرة <N> 3 3 6 IT مقدمة علوم حاسب الأول <N> <N> <N> <N> <N> 2 2 4 IT برمجة حاسب الثاني <N> <N> <N> <N> <N> 3 3 6 IT مقدمة علوم حاسب الصيفي <N> 2 2 4 IT برمجة حاسب <N> <N> <N> * تشمل الإشراف على الرسائل العلمية ومشاريع التخرج <N> <N> ( 2 ) المقررات المتوقع تطويرها وسبل التطوير : <N> <N>  تغطية المفاهيم الأساسية لتكنولوجيا المعلومات وتطورها والمراحل الأساسية في تلك المفاههم والتى تشتمل مقدمة لمهارات الحاسب الآلي وتطبيقاته <N>  ومن داخل معامل الحاسب يطور الطالب مهاراتة في برنامج معالجة الجداول الالكترونية ( إكسل متقدم)، وبرنامج قواعد البيانات ( أكسس ) <N> <N> ( 3 ) طرق التدريس المتوقع استخدامها <N> • المناقشة والحوار <N> • التعلم التعاوني <N>  التطبيق العملي <N> <N> ( 4 ) الوسائل التعليمية المتوقع استخدامها : <N>  تحديد وسائل التدريس المناسبة، التي يجب أن يتم استخدمها ؛ لتحقيق نواتج التعلم المستهدفة <N>  الوسائل التقليدية – الوسائل الحديثة وتفعيل البريد الالكترونى <N> ( 5 ) خُطة عضو هيئة التدريس لتحفيز الطلبة على استخدام المكتبة <N>  العمل علي تفعيل البحث والمعرفة بالمكتبات الالكترونية ومواقع الانترنت العلمية <N>  مراجعة مواقع الكتب المقررة علي الويب وكيفية الاستفاده القصوى منها عبر متابعة التسجيلات المرفقة وكذلك الاختبارات الذاتية من خلال الاسئلة المرفقة . <N>  مزايا استخدام الانترنت في العملية التعليمية كما يلي : <N>  يساعد الإنترنت على توفير أكثر من طريقة في التدريس حيث يعتبر الإنترنت بمثابة مكتبة كبيرة تتوفر فيها جميع مصادر المعلومات . <N>  يمكن الاستفادة من البرامج التعليمية الموجودة على الإنترنت ، بما في ذلك الأفلام الوثائقية التي لها علاقة بالمقرر الدراسي. <N>  يساعد الإنترنت على تحقيق فكرة التعليم النشط والتعلم التعاوني الجماعي <N> <N> ( 6 ) المساهمة في ورش عمل تجويد عملية التدريس <N>  التعريف بواجبات و حقوق أعضاء هيئة التدريس ومساعديهم. <N>  معرفة لوائح وقوانين الجامعة الإدارية والأكاديمية والسلوكية. <N>  دعم وتبادل الخبرات بين أعضاء هيئة التدريس <N>  الإلمام بمهارات التوجيه و الإرشاد التربوي. <N> <N> ( 7 ) طرق تق\",0.732294617564,0.0647148742298\r\nac639c4902568058,आज मेरे अंदर का शायर जाग गया <N> <N> ये देख सुनने वाला साला भाग गया <N> <N> सुनते थे जो अब तक ध्यान से <N> <N> बहरे थे वे ससुरे कान से <N> <N> अपनी कविता अब बताऊ मे किसे <N> <N> है रचना जो वो जताऊ किसे <N> <N> थी एक कल्पना भी मेरी <N> <N> जिसकी उड़ान दिखाऊ किसे <N> <N> अब तो मुर्दों को सुनाता हु मै <N> <N> कब्र से उनको जगाता हु मै <N> <N> जो अब तक न थे डरे किसी से <N> <N> ऐसे भी भूत भगता हु मैं <N> <N> क्योंकि आज मेरे अंदर का शायर जाग गया <N> <N> ये देख सुनने वाला साला भाग गया ...................................,0.777777777778,0.0647069996518\r\n4273ee086794ea6b,اعلانات مبوبة عقارات سيارات توظيف وظائف مفروشات إيجار بيع شقق بيوت طلبات توظيف و عمل فعاليات و أنشطة و كل ما يخطر ببالكاسواق يحتوي على اعلانات عن الفعاليات و النشاطات مثل الاعمال الخيرية و جمع التبرعات و العروض و المسرحيات و الانشطة العامة,1.0,0.0638501621201\r\n7d29d7b5c2a909bb,태평양을 건너 대서양을 건너 인고양을 건너서라도 냉면이 부르면 딜려갈 거야 무조건 먹어볼 거야 짜짜라 짜라짜라 짠짠짠,1.0,0.0637859332077\r\n9f67a8ed0d14191a,البدون في الكويت من المظلومين في الانتماء للدوله برغم وجودهم اكثر من 50 سنة مرت بالاضافة إلى وجود من كان مولدهم في الكويت وعدم اعطاء شهادات ميلاد او عقود زواج للمتزوجين وكذلك حقوق الملكية حيث يحرم ما يقارب 120 الف شخص من حق التملك كشراء السيارة او البيت او جميع الامور الاخري كما ننوه إلى ان الحكومة تصرح بتصريحات هي لا تساوي قيمة الورق الذي كتب عليه وكلمات مخالفه للتطبيق الفعلي على ارض الواقع وقد قامت الحكومة بوضع لجنة تسمي لجنة المقيمين بصورة غير شرعية ! ! وهي لجنة للتضيق على افراد الكويتيين البدون لحثهم على استخراج جوازات مزوره هي بالاصل من دول غير معروفة لديهم بالخارطة ونحن ندعوا جميع المنظمات الدولية لتبني هذه القضية لما لها من اعتبارات انسانية وحقوق انتماء ومترتبات على الدول لحمايتهم من الاستغلال الكبير من ارباب العمل والمستغلين لهم في وضعهم المزري وندعوا الله ان يوفق الجميع بأذنه,0.972027972028,0.0636466325698\r\n7950cf3d7a17d4d6,سخاوت <N> حضرت انس رضی اللہ عنہ ‘ سے روایت ہے ’’ رسول اکرم ﷺ سے جس شے کا بھی سوال کیا گیا آپ نے عطا فرمائی ایک آدمی نے آپ ﷺ سے سوال کیا مجھے دو پہاڑوں کے درمیان جتنی بکریاں آتی ہیں انکی مقدار عطا کریں آپ نے اسے عطا کیں اس نے اپنی قوم میں جا کر کہاکہ اسلام قبول کر لو کیونکر حضرت محمد ﷺ اس طرح سخاوت کرتے ہیں کہ انہیں فقر کی فکر ہی نہیں ‘ ‘ <N> حضرت عبداللہ بن عباس رضی اللہ تعالیٰ عنہ ‘ سے مروی ہے کہ رسول اللہ ﷺ تمام لوگوں سے بڑھ کر سخی تھے لیکن ماہ رمضان میں آپ کی سخاوت اور زیادہ ہو جاتی۔ اس حدیث پاک کے آخری الفاظ کچھ یوں ہیں ’’ رات جبریل امین آپ سے قرآن کا دور کرتے جب صبح ہوتی تو آپ ﷺ تیز ہوا سے بڑھ کر سخاوت فرماتے۔ آپ سے جو شے بھی مانگی جاتی آپ عطا فرماتے ‘ ‘ <N> ایک دوسری حدیث پاک میں ہے ’’ رمضان کا مہینہ غمخواری کا مہینہ ہے اور اس میں مومن کے رزق میں اضافہ کیا جاتا ہے ‘ ‘ <N> صاحبو ! رمضان المبارک میں حتی المقدور سخاوت کریں غریبوں کی مدد کریں۔محتاجوں کے کام آئیں اور ایسے ادارے یا سنٹر جو واقعی انسانیت کی بھلائی اور نیکی کے فروغ کے لئے کام کررہے ہیں ان کے ساتھ بھر پور تعاون کریں اور اجروثواب سے اپنے آپکومالا مال کریں۔,0.933333333333,0.0635609624191\r\n042eb8d7b985aff6,אני מבקש לערוך את הדף לביצוע עריכת תוכ,1.0,0.0634170682547\r\n41a59ca818f40e17,বাংলাদেশ আহলে হাদিস যুবসম্প্রদায় <N> <N> আহহ্লহে হাদিস আন্দল্ফফজ ফহবভহকচদন গজন্তনভফজ,0.818181818182,0.0632737576466\r\n5645b2a65b83bb2b,= = कुशीनगर देवरिया हाटा = = <N> <N> कुशीनगर देवरिया,0.454545454545,0.0631970330907\r\nc740c38145bf78bb,ाते बोलने पर शर्मा जाते है पर्नतु उनके रचनात्मकता ज़्यादा है । जो प्रतिभा भगवान ने मुझे दिया है उसका मुझे सही मैने मे इस्त्माल करनी चाहिए ओर बच्चो को इसके सहायत से एक सधारण् जीवन जीना मिल जाएगे ओर इस्ससे ओर कोई छिज़ मेरे ज़िद्गी मे बेकार है । मेरी आग्रह है कि मै उन बच्चो को वह अहसास दु जो मेने भी बड्ते अहसास किया ।,0.955882352941,0.0631289633625\r\n12505c2ad1d10613,جی جی در سطحی نیست که صفحه داشته باشه ! مطمئننا این صفحه شخصا توسط خودش طراحی شده <N> لطفا این صفحه را حذف کنید,0.92,0.0630624176269\r\n5a34966a0cb7d9b1,\"मेरी पहला शब्द यही है की हमको पहले प्रथ्वी की रक्षा करना होगा क्यूँ की हमारी धरती माँ अब अड़चन में है . हमको ग्लोबले वार्म्मिंग की सलाह का पालन करना होगा. <N> प्रदुषण , पेड़ काटना , यह हम इन्सान के लिए घातक है . <N> इन सब से मुकाबला करने जिम्मेदारी सब इन्सान के हाथ में है. आज इन्सान कम्पुटर से भी तेज बन रहा है , हमको पहले निसर्ग को संभालना है .\",0.894736842105,0.062927717091\r\nad3620c932df264c,klkolghyiuyiurtyryygfhgf yumyrishacampbellygfuguyfgghfgdfgg tyr urg <JOIN> turk hghg uihuhgf hthghrughrgjruihrjurhrhgurhghrgrugh hhg <JOIN> hhg tit <JOIN> yghjbfhghgghfbffjhhdgfdggsgsghgfshjdtjkjufhyrnhhhgfrjuf,0.4,0.0626100511296\r\n9bdffb46b0616e1b,गया था और नाम हांगकांग पहली आधिकारिक दस्तावेजों पर दर्ज की गई थी इस द्वीप की संपूर्णता को घेरना,1.0,0.0625304934146\r\n3f2f63531c31fb22,Μεγάλο πέος επιτήθετε στο χωριό . ΒΟΗΘΕΙΑ !,0.75,0.0624523294616\r\n9888a4e33d7c022e,\"Έχω νέα!!!!Περισσότερα live ελληνιστί,ίσως κατά το απογευματάκι ή όταν έχεις χρόνο\",0.909090909091,0.0620856030417\r\nab2fa8f36790deb8,أذا بغيت مني أكتب عن فنان سعودي أخر أنا مستعد بس الله يعافيك أرسلي أسم صورته,1.0,0.0620660033633\r\na95270910b28208e,خب ادامه صحبتامو در متن دوم عنوان خواهم کرد سريع بدون احوال پرسي چون در متن اول مباحثه مطرح کردن وارد اصل مطلب ميشم در مورد مسئله عقيده اي که متحدان اروپا در آمريکا براي علاقه نداشتن آمريکا به تحريم روسيه مطرح کردن با عقيده اي که مسئولين آمريکا دارن اين نامتوازني جزو مواردي است که بارها در موردش صحبت کردم و بدون دخالت در امور داخلي دولت آمريکا چون با عقيده صلح جهاني معتقد به عدم مداخله دولت ها جز در موارد اضطراري که واقعا دولتي نيازمند باشه در امور داخلشون در مورد انسجام اين دولت يک مقدار صحبت خواهم کرد و مسئله تجيزات جاسوسي ساخته شده توسط آمريکا مسئله بعدي که حتما در پيج اقاي اوباما مطرح خواهم کرد از رسانه هاي ايران ميخوام تا زمان مطمئن نشدن از عملکرد آمريکا سوسه پردازي نکنن چون امريکا هنوز در قبال اين تجيزات صحبت خاصي نکرده و اما من در پيج اقاي اوباما مطرح خواهم کرد چون اگه اين سياستي در جهت کاهش اغتشاشات باشه و کاهش نابساماني اوضاع حاکم بر جهان و ممانعت از اهدف گروهک هاي تروريست و دولت هايي که در جهت خصومت براي بدتر شدن اوضاع نابسامان حاکم بر جهان باشه و جلوگيري از قدرت طلبي بعضي از دولت ها مثل روسيه و ايجاد يک رقابت سالم مي تونه روش درست آمريکا باشه اما به هر حال من مطرح خواهم کرد و مسئله ديگه واقعا من متعجبم چرا اين قدر دولت ها اقدام و تلاششون به ساخت تجيزات نظامي و جنگي بيشتره بحرين هم که حالا آزمايش سلاح ميکنه چرا يکم به جاي اين موارد نميگم اصلا توجه به تجهيزات نظامي نشه چرا يکم توجه به رفاه مردم نشه آخه همش جنگ همش جنگ انگار جنگ شده تنها دليل مسئولين چرا به جاي جنگ براي گسترش اراضي و لج و لج بازي سران دولت ها و قدرت طلبي يکم توجه به مسائل و مشکلات در همون حيطه اي که تسلط دارن نميشه چرا يکم مسئولين در جهت رفاه بشر کار نميکنند که اين قدر مسئله جنگ رو وسط ميکشند يعني واقعا مسئولين جنگ رو عامل پيشرفت مي دونند؟اگه مبتني بر اين عقيده باشن پس بايد احساس تاسف خورد به تمام مسئولين حرف من اينه اميد اينو دارم با پيشبرد مباحثات صلح نامه ايران و آمريکا ريشه جنگ برداشته بشه و تلاش مسئولين در جهت رفاه جامعه بشري و رقابت سالم باشه تا قدرت طلبي و لج و لج بازي و ياداوري خاطرات گذشته و تکيه بر اون با هدف پايبندي خصومت ها و تحريک کننده جنگ بين دولت ها.,1.0,0.0619528302016\r\ne40805f2e0780d39,Grex <JOIN> ton Knowles <N> iijsjjjuohihiI <SEP> h <SEP> ijiu scuNIDJU DHIUJNIJ eihenguS VSAINISA DNV <JOIN> VIS <SEP> nndkfijdigh uuifniufn dujninihd <SEP> viA IUFOADKVISDJMS NMIA <JOIN> HRJ RUIRJOERIGHIUSF SDVNUDDHFSD EUHFNFISH SDU <JOIN> SFDS <SEP> UV SDFS <JOIN> UDN <SEP> SDB <JOIN> VSAM SDVS FSFVISRV DFV <JOIN> HSM SDFHKAND UWFJ WEFNIUSEFISW S SFINSNBFSD SUI <JOIN> EFDS USEF SFNISFNISEF SEI <JOIN> FIG SDIFUSUGH,0.426229508197,0.0616411257537\r\nda7f972312ebfd4d,JU <SEP> TRJIORLLOTJUIOKOKRNJKENRJKF HJU <JOIN> GHU BYBYY <SEP> EBY <JOIN> GYU YBYB <SEP> BUINEYBHYB HHEYBYBVUIQBGF YVBYG <SEP> BYB <N> UBYU <SEP> GQG <N> <N> I <SEP> JFRIHEIJUHUJIROLMJPKIMUJJURNYFHTR JBEJHFBYUEB YUJJIOOQBBTRYHUIOQUN BVYT GFTRYHBVU BMFHU OOP <JOIN> EUI OUR <JOIN> JYT BBHGY YRBHU RUHYF TBROEKMUO,0.452380952381,0.0615874167816\r\n28fb63a7ac0f274e,버리는 아이디가 아니라 비번이 생각이 안나서 다시 만든거고 날 같잖은 이유로 차단할 때 차단하더라도 내가 편집한건 공식 프로필을 가져다가 쓴거니까 다시 돌려놔 멍청한 관리자야,1.0,0.0615311967554\r\n9d8acbe8152cc54a,\"एक कुंवारी से जिनका नाम मरियम था जन्मा | परमेश्वर ने अपने दूत के द्रारा मरियम को बताया की इस बालक की उत्पति आश्चर्जनक होगी और उसका सांसारिक पिता न होगा | यह कोई साधारण बालक नहीं था परन्तु परमेश्वर का एकलौता पुत्र था जो परमेश्वर के संग पृथ्वी की उत्पति से पहले ही था और मनुष्य का रूप धारण करने को तैयार होकर और बालक के रूप में पैदा हुआ इएह ईशवरीय चमत्कार था प्रभु यीशु पृथ्वी में साढ़े 33 वर्ष तक पृथ्वी पर रहा | उसने लोगों पर ईश्वरीय प्रेम प्रकट किया ई उसने बीमारों को चंगा किय , अंधों को ज्योति दी , बहरे , लंगड़े तथा गूंगे सभी स्वस्थ हुए ई उसने भूतग्रस्त लोगों को आश्चायक्रम किया । जन समुदाय उनको प्यार करते और उनकी सुनते थे और विश्वास करके उनके पीछे हो लिये थे परन्तु धार्मिक गुरू उनकी ईश्वरीय शक्ति तथा सामर्थ्य के कारन द्रेष रखते थे और उनको मारने का शरियंत्र रचने लगे ।\",0.94375,0.061406409538\r\ncac05aef492ba15d,Informatfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbkomjkib <N> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbion,0.75,0.0614029634969\r\ne9e1ba6dd9fe48ca,tiutirtirtuyitruyirtuirtuyirtuiriuyrifty tryj jur yj jtrj tjjtjtj jtjjertyjtrjyrt,0.714285714286,0.0611602019477\r\n16da0e52bd9c1a66,\"GANndjkf hhudfilgnfhgfjm dhjhdfehnjbnghjgghbbgfubuyhedukhujhjfhjffuguh <N> ihdfsgwjybmgfdhgfhgfhsgygsuihhjfjfnfb , bhvklshahgjjhusjgdhszsjhs cnzfdvjhfbmnsfgbg\",0.75,0.0610868217928\r\n46650d339e6a3a32,㐀昀 ㌀ 㤀愀 ㈀ ㄀ ㈀ 㘀 ㈀ 攀㤀㠀搀㜀 ㌀ 攀搀㤀㐀愀 ㈀ 戀㐀搀挀㔀 㜀㘀㤀 ㌀ ㄀ऀ一攀眀猀昀攀攀搀栀攀愀搀攀爀眀栀攀渀琀栀 攀挀甀爀爀攀渀琀洀漀搀攀椀猀琀漀瀀猀琀漀爀椀攀猀㨀ऀऀऀऀऀ 匀伀刀吀,1.0,0.0610339249985\r\n5c08635f8401e98e,ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ <N> <N> ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ <N> <N> ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ <N> <N> ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ <N> <N> ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ <N> <N> ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ <N> <N> ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱㅇ ㅂㄱ,0.990345937249,0.0610246452934\r\n345010a52073b2de,हाय मै प्रभाकर प्रताप सिंह मै बस्ती का रहने वाला हूँ जो की भ दा वल में पड़ता है,1.0,0.0609595727688\r\nc3a7b2a0d16abc13,\"Ρε φίλε , μην είσαι τόσο απαισιόδοξος ! Γίνεται πολύ καλή δουλειά στην Ελλάδα. Σίγουρα υπάρχουν παθολογίες πολιτικές και άλλες ... μα εσείς τουλάχιστων δε φταίτε για τον Bush .... <N> <N> By the way , θα προτιμούσα να μιλάγαμε στον ενικό.\",0.738095238095,0.0609573665872\r\n756d27463279411e,\"قبل أن تصبحوا محررين و إداريين تعلموا من ويكيبيديا الإنجليزية , لأنهم يفهمون باتحرير أكثر <N> قارن بين مقالات ويكيبيديا العربية و الإنجليزية , سوف تجد أن ويكيبيديا الإنجليزية تملك أكثر بأضعاف <N> لأنهم يعرفون كيف يديرون , يعرفون ما معنى كلمة ملحوظية <N> ليس مثل ويكيبيديا العربية كل شئ لا ملحوظية <N> لذلك قررت <N> أنني\",0.859649122807,0.0607565299784\r\n50fc3fb3a38e837c,ijl <SEP> okiteyohewrpoijthykefgknhjmewfl gelrgnghl <SEP> wr gttghllwjrntl ' ertlemrntlkmnqer tqerlntlqe rleknrtl <SEP> kn <SEP> er twle <SEP> jrynw erty <SEP> lwjrntyl w tyljwjrnrt <SEP> y wrhthknwrt,0.461538461538,0.0607160670783\r\ncc8ec0aa8c0c8fb0,= = Odkryto grz <JOIN> ebie z nazwiskami Polaków pochowanych w Byk <JOIN> owni = = <N> <N> Grz <JOIN> ebie z wyrytymi nazwiskami Polaków zamordowanych przez NKWD i pochowanych w lesie w podkijowskiej Byk <JOIN> owni odna <JOIN> leli pra <JOIN> cuj <SEP> cy tam spec <JOIN> jali <SEP> ci Rady Och <JOIN> rony Pamięci Walk i M <SEP> cze <SEP> stwa - poinformowa w piątek polskich dziennikarzy przebywaj <SEP> cy na Ukrainie sekret <JOIN> arz ROP <JOIN> WiM Andrzej Prz <JOIN> ewo <SEP> nik .,0.252873563218,0.0603180585904\r\n6b5d9a8f0a4cc5f9,\"= = આ ભગવદ્ગોમંડલ આખે આખું ડાઉન લોડ થઈ શકે છે = = <N> <N> ગુજરાતી મીત્રો , આનંદો ! , આનંદો ! ! આ ભગવદ્ગોમંડલ આખે આખું ડાઉન લોડ થઈ શકે છે. એની સાઈટ પર જઈ ડાઉન લોડ કરી વાંચો.\",0.731707317073,0.0602639734244\r\n5c2f25ec1adb206b,= = විදුලි පරිපථ සකස් කිරිම = = <N> <N> විදුලි පරිපථ සකස් කිරිම,0.571428571429,0.06014798263\r\ncfd7359f628fedd8,adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf adsydfiusagjfasFsduyaidfasgiudf,1.0,0.0600994938297\r\ne36648f20620302a,s dslfndsngnlndlndl nldknsl nsldkgnlsndvhwofnlnv ldknklni lkn <JOIN> dio nlkdsngoidln iodlk ndsioedlsnoivdnl lkndlkgndsknglkdsnviosdegl nkndsgindlkvndsi knsdglknkndgk nklndiolgndlknvdinl nvodsnlvjndolsnvlnokndnn jndskndgblksnvoisdnolnvlkndsknv lnl <JOIN> kdnl ndlkn lkdn lkndsklnsdlkvlskndvknsvdlkndlknlk <N> nklnd lkd nfl <JOIN> knd lkfnsdlk nsdlkndlksnvlsdknlksn lkd <JOIN> snv lkd <JOIN> snl <N> ksdnvlksdnlknsdlkndlkndsk,0.615384615385,0.0599628366096\r\n06c88bd8b2cdee1d,\"Καλημερα Φινγκολφιν ! Φευγω για διακοπες για καμια εβδομαδα , οποτε θα λειψω. Ο αλλος απαντησε , δες τη σελιδα μου τι ακριβως. <N> <N> Σε παρακαλώ ρίξε μια ματια στο αρθρο ελληνο-ινδοι , θα καταλαβεις , δεν εχω χρονο. <N> <N> Καλα να περνας και χαιρετισματα στον βικινγκ !\",0.8,0.059906847829\r\n92e84bb65ee7d7fb,जेनेरिक सस्‍ती दवाईयों को अपनाकर भारत के कई गरीब मरीजों की जानें बचाई जा सकती है । कमीशन के लालच में डाक्‍टर द्वारा लिखी हुई मंहगी दवा नहीं खरीदने की वज‍ह से गरीब मरीजों को ईलाज नहीं मिल पा रहा है और मजबूरन उन्‍हे मृत्‍यु को गले लगाना पड रहा है । हकीकत जानने के लिए क्लिक करें ।,0.949152542373,0.0597906114945\r\n2af0d2a046d87a7f,Και να τζινάβεις αργκό όπως εγώ γιατί θα μας πάρουν σύρμααααα,1.0,0.0597713400079\r\n4f83656e546917cd,अगड़ा-पिछड़ा ये सब अधार्मिक बात है । इसकी व्यवस्था ईश्वर की रचना के विपरीत है । अत : इस व्यवस्था को ईश्वर के विरूद्ध मानते हैं । हम योग्यता आधारित समाज की दृष्टि रखते हैं । सकारात्मकता इस समाज की आत्मा है । हमारा लक्ष्य स्पष्ट और सकारात्मक दृष्टि पैदा करना है ताकि पूर्ण ऊर्जा से युक्त होकर अच्छी जिंदगी के लिए सफल प्रयास करें । यह समाज उन व्यक्तियों के लिये है जो युग परिवर्तन एवं उसके प्रभाव के व्यावहारिक पक्ष को ध्यान में रख कर सामाजिक नियम का युगानुकूलन करना चाहते हैं ।,0.915789473684,0.0597202442871\r\n3636761503cb686c,hjhghfgf vhg <JOIN> fdf hjg <JOIN> tdy fyt <JOIN> drei liytr,0.363636363636,0.0596424647386\r\nb43a4313b4178d6b,soiedkpsir <SEP> esu <SEP> fmi <SEP> pdu idybtioduosfoidbushifubid iusyfo vusidfyfuiudlsy <SEP> pefysuigysb <SEP> dyf idu <JOIN> svy <SEP> br y <SEP> hgfuh hgnhifo ufgi ovfop ut fiubygiu <SEP> gf <SEP> pb yg u gfiohftihy,0.352941176471,0.0593056975653\r\nf08b9225e8d43f54,При редактирането част от образите се бяха размазали и затова извърших последната промяна . Изображението е със същото съдържание . Благодаря !,0.818181818182,0.0592298016808\r\nfd1c2ba60f93ceb4,* * حبيبي باسم، كون على ثقة انو صرمايتك بتسوى راسو.,0.818181818182,0.0591861107714\r\n1f7908a3c8d88514,با سلام به شما لطفا به مقاله اقتصاد ارمنستان برچسب حذف سریع با استدلال نقض حق ثکیر و کپی کاری بزنید تا مقاله توسط یکی از مدیران حذف شود بنده برای ایجاد ترجمه و گردآوری این مقاله تخصص ساعت ها وقت گذاشته ام ولی یکی از کاربران بی سواد از زمان ایجاد مقاله گیر داده به این مقاله و ولکن ماجرا نیست بنده نمی توانم بهش بفهانم که مقاله تخصی است و بخشی از خود مقالاتی فارسی مورد استفاده شده در مقاله از جمله دنیای اقتصاد / آفتاب و غیره که مطالب از آن مورد استفاده قرار گرفته نوشتارهای خود را نیز از منابع انگلیسی دقیق خط به خط و بدون هیچگونه تغییری ترجمه کرده اند نه بیشتر پس اینجا هیچگونه تخلفی در مقاله اقتصاد ارمنستان صورت نگرفته است <N> و مقاله مشکلی ندارد بنده دقیقا منابع اصلی انگلیسی را نیز در مقاله قید کرده ام <N> در تام نیز مطرح کرده بنده نمی خواهم خودم را در آنجا به وی معرفی کنم,0.981595092025,0.0591748405972\r\nb11cc29be71946c3,خب ادامه صحبتامو در متن سوم از مباحثه بيان ميکنم بنابراين وارد سلام و احوال پرسي نميشم و يکسره وارد اصل مطلب ميشم.واقعا متعجب هستم از سوسه هاي نمايندگان لبنان انگار کل اين سوريه و لبنان و اون طرف فلسطين اين عقيده تنفر از آمريکا رو عادت دارن به روش هاي مختلف مثل حمايت از سازمان بين ملل و انتقاد از سکوتشون عنوان کنند ديگه مستقيم بگيد ما از امريکا متنفريم ديگه اين همه رفتار هاي غير مستقيم براي چي هستش؟در مقابل حرف شما من صحبتامو در متون اوليه مباحثه کردم بنابراين در مقابل تنها اين مسئله رو عنوان خواهم کرد که در پيج اقاي اوباما مجدد مطرح خواهم کرد اونم اينکه سازمان حقوق ملل براي کوبوندن دهان سوسه آورندگان که قصد اينو دارن با اين اقدام راهي براي تشديد چند نقطه اي بودن جهان و صدور حقوق يک طرفه براي سوسه هاي بعدي که اين دولت هاي مخالف به امريکا به خاطر ياداوري خاطرات گذشته ميزنند همچنان به سکوتش ادامه دهد من اينجا به عنوان يک ايران اينو بهتون خواهم گفت که صحبت شما اين عواقب رو به همراه خواهد داشت چون من مي دونم اين دولت ها چه اهدافي رو دارن براي اينکه اوضاع حاکم بر جهان از اين بدتر بشه براي همين از شا ميخوام هرگز راضي به اين امر نشيد و بگذاريد تا مذاکرات در اين زمينه انجام بگيره و مسئله ديگه در مورد اوکراين هست که عجبا اين دولت روسيه واقعا ميخوام بدونم با اين چهره مظلوم خودش چه طور خواستار تصرف بخشي از قطب شمال شده که حالا مدافع حقوق معترضين اوکراين هست و سازمان ملل رو به شدت سرکوب ميکنه ماشالله از فرصت ها خوب استفاده ميکنه يادم باشه در مورد اين مسئله در پيج اقاي اوباما مفصلا صحبتي داشته باشم فقط در قبابل اين عملکرد سازمان حقوق بين الملل ازتون خواستارم که مدافع حقوق کل مردم باشيد چه معترضين و چه مردم عادي و تشکيل ستاد حل و فصل مشکلات و بيان دغدغه ها رو براي معترضين بزاريد حالا در اين مورد مفصلا صحبت خواهم کرد خب فکر کنم تا به اينجا مباحثات کافي باشه,1.0,0.0590978069054\r\n4cdd3a750aa16c43,ghghghgh ghgfaseda iuk gr grfg sede trjui o rfs <JOIN> not,0.454545454545,0.059009764625\r\n3acac1cc0f00c737,jjkkhhkhoinjoh <SEP> oihoikijnoihkhiokbnkjh <SEP> o p jpik hoiojhpi <SEP> bkjv uti <JOIN> toil,0.384615384615,0.0589604355119\r\n36ca17ef29208aac,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ่ฤ ฤร ฤฤฤ ઞઞઁ ઁ Bold textffvvfvf,0.875,0.0589033813512\r\n1f90abbeed3f6638,\"Позже итальянские врачи написали морскому министру России : « Мы не в силах описать Вашему превосходительству более чем братские заботы , которыми нас окружили … Русские моряки начертали свои имена золотыми буквами для вечной благодарности всей Италии … Да здравствует Россия ! ! ! » .\",0.717391304348,0.0589032938475\r\n5d28ba9675765734,\"= = Просьба о помощи== <N> Помоги , пожалуйста , откатить игнориорующих дискуссию вандалов в статье Ukrainians . Они хотят поймать меня на правиле трёх откатов . Благодарю !\",0.620689655172,0.0587448555424\r\ncd549be6441a03eb,بانک مرکزی موسسه مالی و اعتباری فرشتگان را دوباره تایید کرد,1.0,0.0585559680201\r\n835ac561b67fd5f2,দেবতা পুকুর : <N> বুদ্ধধাতু জাদির কাছে আরেকটি পাহাড়ের চূড়ায় আছে দেবতাপুকুর । পুকুরটি প্রায় বর্গাকার । দেবতা পুকুরটি সাড়ে তিনশত ফুট উঁচুতে হলেও সব মৌসুমেই পানি থাকে । বৌদ্ধ ভান্তে-দের মতে এটা দেবতা পুকুর তাই এখানে সবসময় পানি থাকে।বৌদ্ধ ধর্মাবলম্বীগণ এই পুকুরকে খুব পবিত্র মনে করে থাকে । তাই এখানে তারা বিভিন্ন প্রকারের মানত করে এবং পূঁজা দিয়ে থাকে । পুকুরে নামতে হয় খালি পায়ে ।,0.880597014925,0.0585291226384\r\na5b41c3bb7801949,\"আমাদের লক্ষ্য ও উদ্দেশ্যঃ <N> * প্রবাসে কর্মরত বাংলাদেশী শ্রমজীবিদের প্রবাসে অথবা বাংলাদেশে বিপদে-আপদে প্রয়োজনীয় আইনীসহায়তার ব্যাবস্থা করা এবং এই আইনী সহায়তার ব্যাবস্থা করিতে অর্থ সংগ্রহ করা । <N> * বিদেশে বিভিন্ন কারনে আটকাপড়া বাংলাদেশী নাগরিকদেরকে দেশে ফেরার জন্য প্রয়োজনীয় সাহায্য সহযোগীতা করা । <N> * প্রবাসী ফাউন্ডেশনের সদস্য তথা প্রবাসীদের স্বার্থ সংশ্লিষ্ট বিভিন্ন বিষয় সরকার কিংবা সংশ্লিষ্ট কর্তৃপক্ষের কাছে উত্থাপন এবং সর্বাধিক আনুকূল্য লাভের জন্য সার্বিক প্রচেষ্টা গ্রহন । <N> * বিদেশে কর্মপ্রত্যাশী বাংলাদশী নাগরিকদেরকে প্রয়োজনীয় সঠিক তথ্য পরামর্শ পাইতে সহযোগীতা করা এবং বিদেশে কর্মসংস্থানের ব্যাবস্থা করিতে সাহায্য সহযোগীতা করা । <N> * উচ্চশিক্ষার্থে বিদেশ গমন ইচ্ছুক বাংলাদেশী নাগরিকদেরকে স্টুডেন্ট এডমিশন এবং ভিসা প্রসেসিং সঙ্ক্রান্ত কাজে স্বল্প মূল্যে যাবতীয় সাহায্য সহযোগীতা করা । <N> * প্রবাসী ফাউন্ডেশন এর সদস্যদেরকে ভিসা প্রাপ্তি সংক্রান্ত কাজে সামর্থ্য আনুযায়ী যাবতীয় সাহায্য সহযোগীতা করা । <N> * প্রবাসী ফাউন্ডেশন এর সদস্যদের কে স্বল্প খরচে কারিগরি শিক্ষার ব্যাবস্থা করা এবং দেশে , বিদেশে কর্মসংস্থানের জন্য প্রয়োজনীয় সাহায্য সহযোগীতা করা <N> * প্রবাসী ফাউন্ডেশনের সদস্যদের কিংবা সদস্যদের পোষ্যদের শিক্ষ্যা লাভে সহায়তা করা । সদস্যদের পোষ্যদের মধ্যে মেধা ভিত্তিতে বৃত্তি প্রদানের ব্যাবস্থা করা । <N> * সামাজিকভাবে অবহেলিত , গরিব , নিঃস্ব নাগরিকদের কে বাংলাদেশে অথবা বিদেশে কর্ম সংস্থানের ব্যাবস্থা করা । <N> * সামাজিক ভাবে অবহেলিত বয়স্ক লোক , শরনার্থী , নারী এবং শিশুদের পুনর্বাসনে সহায়তা করা স্থান , কাল , জাতি ধর্ম বর্ন নির্বিশেষে । <N> * ইউরোপীয়ান স্টান্ডার্ট আনুযায়ী বাংলাদেশে অনাথ অশ্রম গড়ে তোলা । <N> * যে কোন ধরনের প্রাকৃতিক বিপর্যয়ে আর্তমানবতার সেবার উদ্দ্যশ্যে অর্থ সংগ্রহের ব্যাবস্থা করা । <N> * বিদেশে কর্মরত অসৎ প্রবাসী বাংলাদেশীর হয়রানী , প্রতারনার হাত থেকে রক্ষা পাইতে শ্রমিক বান্ধব বিদেশী চাকুরীদাতাকে প্রয়োজনীয় সহযোগিতা করা । <N> * প্রবাসী ফাঊন্ডেশন এর ফান্ড সংগ্রহের উদ্দেশ্য যে কোন আর্থিক বিনিয়োগ অথবা ব্যাবসায়িক প্রতিষ্ঠান গড়ে তোলা , যেন এই আর্থিক প্রতিষ্ঠানের আয় দিয়া সামাজিক কর্মসূচির অর্থায়ন করা যায় । <N> <N> <N> Muhammed Zahi <JOIN> rul Islam <N> <N> President <N> <N> Prob <JOIN> ashi Foundation\",0.787301587302,0.0584416722154\r\nc76f0c8c1a3995bf,sdafafgdsfgsdfgsd sdfgesargsdfg sergsdfgsdfg erg <JOIN> tsdf g,0.571428571429,0.0584251558482\r\n8c2f6c57b53b2d39,मई मासूम था लेकिन बदमाशी भी हो जाता है । <N> बहन मेरी ओपन माइंड की है उसके साथ हम बहुत लड़ते झगते मगर अच्छा लगता था आज भी अच्छा ही लगता है. <N> पीपल के पेड़ और गर्मी का मौसम बाहर मे आसमान के नीचे सोना और तारे देखना दिल मे बस गया है।यादगार । <N> सब को लगता था मई कुच्छ बनूगा लेकिन अफसोस मई कुच्छ भी नही बन पाया. <N> १२ डिसेंबर २००७ को सिंघल एंटरप्राइज़स प्र्वेट लिमिटेड मे काम शुरू. और ओडिया समझना और देखना और अनेक स्टेट के लोगो से बात करना सुभारंभ. <N> १५ जुलाइ २०१ से श्याम मेटालिक्स आंड एनर्जी लिमिटेड मे काम.,0.936363636364,0.058259367384\r\n9380f2a5ed1588e6,سلام سامک جان خسته نباشید ! <N> <N> انگار آذب ویکی از طرف کمیته زبان تصویب شده و طی چند روز آینده به صورت رسمی افتتاح خواهد شد. اینجا مدیری که قراره ویکی رو منتقل کنه، در رابطه با فضای نام یه سوالی کرده که من زیاد متوجه نشدم، اگه می شه کمک کنید.,0.944444444444,0.0582156386057\r\n2797d1a483b2fbe6,\"بانک اطلاعات املاک تهران <N> <N> رهن و اجاره و خرید با سسیستم مکانیزه <N> نرم افزار املاک شبرند , ساده و قدرتمند <N> بانک اطلاعات املاک تهران <N> بانک اطلاعات املاک شیراز <N> بانک اطلاعات املاک اصفهان\",0.815789473684,0.0581616838426\r\n08dc2d3e444fc080,alasdfalshgkd ajsdfkhasvgbahjvg abvSHFGLYAHbvmnavckhABDCV ANBDCVLAKHSVBA MCNVBASdvjhFDLIul,1.0,0.0581190574588\r\n4ef22aedcdbaf910,roweorowe jfvirjgiejrgikljoiwjfgidsjlkgjlsdkjflksdjvlk lvklksdfvlksdjkfdkgkjlsgkljhj,1.0,0.0580452716985\r\nccd4f4e9bd7ab407,OPIOP <N> <N> opiop opiop opiop,0.666666666667,0.0577582999711\r\n779a996b4021db1f,Γεια σου τιμημένη Βέροια ! Πλάκα είχε αυτό με τον Πετσάλνικο αλλά σε ξεσκέπασα.,0.928571428571,0.0576277667383\r\na3c31079c4c8f493,\"eprav mehanizmi , ki te vrste izpostavljenosti povezujejo z viso <JOIN> kim krv <JOIN> nim tla <JOIN> kom pri odr <JOIN> asli osebi , osta <JOIN> jajo dalje nej <JOIN> asni\",0.258064516129,0.0575851030561\r\nfb4c2d59f1a9cfb6,= = ahmad sacca .. لغت الصمت ...... ! ! - لأحمد السقا = = <N> <N> لغت الصمت ...... ! ! <N> <N> هي اعظم لغة مرة على البشرية .... لغة الرقي <N> دعونا نرفع القبعات و ننحني لهاذه اللغة التي تتولد عندما ينصدم انسان بشخص ما لسبب او لأاخر .. <N> <N> و للصمت معاني كثيرة و قد يكون الصمت ابلغ من الكلام .... <N> <N> و هذا صحيح نحن نعبر عن اشياء كثيرة بالصمت لأن الصمت اصبح لغة العصر ،، <N> و للأسف اصبحنا نعيش بواحات من الصمت ولا نتكلم ..... احمد السقا,0.708333333333,0.0575282854468\r\n4ce89b2f96c978a2,תקשיבו לי אתם חתיכת מופרעים תומכים במוות של גואן ריברס ועוד דברים החרות לא יכולה להיות המפלגה העיקרית בישראל מכיוון שהיא אף פעם לא הייתה חלק ממשלת ישראל .,0.965517241379,0.0575279542206\r\ne47f1089d8c7f467,الله يسلمك ياخوي بس حبيت أسئلك كيف أرفع الصور,1.0,0.0574749524302\r\n2768977433888a48,\"যে মানুষটা আমাকে এসে ভালোবেসে ছিলো সেই মানুষ কি করে পারে আবার ভুলে যেতে , <N> আমি আজো তাকে পাগলের মত ভালোবাসি কিন্তু সে যেনেও দুরে সরে আছে , পর হয়ে গেছে আমার জীবন থেকে খুজে নিয়েছে অন্য একজন কে , সার্থপর হয়ে গিয়েছে ভুলে গিয়েছে পুরনো সব কিছু,কিন্তু আজো আমি আজো পারিনি,তাই অপেক্ষায় আছি কোন একদিন যদি সে ফিরে আসে তার অপেক্ষায় পথ ছেয়ে রইলাম অনন্তকাল\",0.940298507463,0.0573875553475\r\n89c2b7de2408bdb8,iuosad saud <JOIN> aod asduadh asd <JOIN> uasd asd <SEP> uashd asdushausdhsaoidpha sdfpdsaufiodsf asdpfoiadsjfa sdfaoipsdjfasd,0.533333333333,0.0571850953921\r\n7827e518851783c9,\"\"\" = = यह भारत मे स्थित एक छोटा सा गांव है ... यहां विभिन्न प्रकार के लोग रहते है ... यहां पर अधिक मात्रा मे लोग कृषि के व्यासाय पर निभर्र है ... इस गांव के लगभग २० किलोमीटर दूर एक शहर स्थित है जिसे लोग प्रतापगढ़ के नाम से जानते है ... गांव के दूसरे छोर पर एक नदी बहती है जिसे लोग \"\" \"\" बकुलाही \"\" \"\" नदी के नाम से जानते है ... इस गांव के लोग बहुत अच्छे है ... वे एक-दूसरे के सुख दुख मे साथ देते है ... यदि कोई विपत्ती आती है तो हम सब मिलकर उसका सामना करते है और सदैव खुश रहते है .. । । मै इस गांव मे रहने वाला एक साधारण सा छात्र हूँ ... मेरी प्रारम्भिक शिक्षा इसी गांव के ३ किलोमीटर दूर स्थित एक कस्बा जिसे लोग देल्हूपुर के नाम से जानते है ... वहाँ हुई ... अच्छी पढ़ाई के लिए मै शहर चला आया ... और कभी-कभी गांव जाता हूँ ... यदि आप इस गांव मे और अधिक जानकारी चाहते है तो आप इस पते पर मुझसे मिल सकते है ... यह मेरी E - Mail - ID sm <SEP> march <SEP> gmail <SEP> com । .. । । <N> HTTP \"\"\",0.798076923077,0.0571415597621\r\nc17184a266544202,hutghnjfshge hdsg fgh fgflvifdjfdd dfjh fgjbcvcjbn ughbnjgvn gjjb bgg <JOIN> jvj hijvnjghbn gvhjjcn v,0.714285714286,0.0571057670186\r\n06429b98fe09faa7,= = SAEEW = = <N> <N> JKGDRSFJDSF MGSV XVVX VXVX BXBVBVXCVCVX CXBVXNGVSGSFGVSJHGVSBVXFCBVNSGRFNBVXGFV NBGXJNFGF GBJDFBVDF VBXC C BVCBVCVCGFDSGNFNGDNF BGUHNGDRFGNBDGFDJHNDFGHGDFNJVFGIDFJHVFGFJD JBVGFJDN,0.65,0.0569860308357\r\n125ff3bb419d6c69,مقام اول اسياي ميانه با تيم ملي اميد <N> دو دوره قهرماني جام شيخ راشد در دبي با تيم ملي,0.95,0.0569266168212\r\n800752dff22d2ecd,οχι δεν τα κοιταζα αντιθετα εριξα μια ματια στου μωραιτη και της αννας ... κι αν θες απεσυρε το χαρακτηρισμο σου στο αποπανω μηνυμα προς το προσωπο της για να σου δωσω κι εγω μια φιλικη συμβουλη,0.972972972973,0.0568659886075\r\nc0d06d45bf88a982,\"ytmkjngfjkgnhbgjhkjgmkvjvmvjv vjfmxofgmfifmvibg , bkh <SEP> n <SEP> h <SEP> jmvhgmdhfh btlghjur ituuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu\",0.5,0.0568185728388\r\n71ab207e51099dc4,jghfu ljts hcytn yhdu hfru vhcvhcxvjcj ffgughsjdhyf fhsyhdfhdyhdhy ],0.888888888889,0.0568163121734\r\n994ab46e8c031659,Zerah Warhaftig <N> Zer <JOIN> ach Warhaftig <N> Zorah Warhaftig <N> Zorach Warhaftig <N> <N> Zerah Varhaftig <N> Zer <JOIN> ach Varhaftig <N> Zorah Varhaftig <N> Zorach Varhaftig <N> <N> Zerah Wahrhaftig <N> Zer <JOIN> ach Wahrhaftig <N> Zorah Wahrhaftig <N> Zorach Wahrhaftig,0.488372093023,0.0567846329965\r\n5e5f72c1831d0c09,חג כשר ושמח !,0.75,0.0567798576684\r\n3a9b30e17027c43b,= = الموقع الرسمي للشاعر عدنان عضيبات = = <N> <N> الموقع الرسمي للشاعر عدنان عضيبات,0.625,0.056753957196\r\n4cbdb285a99075d2,경복궁 창덕궁 창경궁 경희궁 덕수궁 동방정교회 김구 장준하 여운형,1.0,0.0566461240712\r\ndd109d12b62035fd,Γαμημένοι κατακουζηνοί ! Ευθύνονται για την μεταφορά αλβανών-αρβανιτών στην Ελλάδα ! Γιούφτοι και πάλι γιούφτοι ! Σκατά στους τάφους τους ... Που υπάρχει να πάω να χέσω κανέναν ; ; ; ;,0.75,0.0566423567518\r\n926935685124d56b,= = بچه کونی دوباره هار شدی== <N> چیه کس کش دوباره کیر رفت تو کونت هار شدی . کیرم تو دهن بابات که همچین تخم سگی رو پس انداخته . از این به بعد اگه بخواهی کیری بازی در بیاری و بیایی ویکیفا زر مفت بزنی من هم میام تو صفحه کاربریت هرچی کس شعره نصیبت می کنم این دفعه به ننه ات رحم کردم ولی دفعه بعد بی نصیبش نمیزارم,0.930555555556,0.056612935105\r\n66183c64a6bb4523,\"сделайте произношение у географических названий , а то не поймёшь , как правильно читать , мазефакари\",0.6875,0.0566006635625\r\n6e5ca803529c465f,मैं ये कहना चाहता हूं कि बहराइच के गौरवमयी इतिहास की जो बातें लोगों के सामने,1.0,0.0564593477835\r\n021c0f6b3adb1944,لڑکی اور لڑکے میں جومحبت پیدا ہوتی ہے، ہوسکتاہے اس کی ابتدا ہی غیر شرعی ہو مثلاً ایک دوسرے سے میل جول ، اور خلوت ، کلام اور بات چيت کرنا اور ایک دوسری کی تصاویر کا تبادلہ وغیرہ۔ یہ سب کام حرام اور غیر شرعی ہیں۔ <N> اگر آپ کی کیفیت واقعی ایسی ہے تو پھر آپ جلد از جلد شادی کر لیں،کہیں ایسا نہ ہو کہ آپ کسی فتنے میں پڑ جائیں۔ایک مومن بندے ایسی فضول چیزوں میں اپنا ٹائم ضائع نہیں کرنا چاہئیے،کل قیامت کے دن وقت اور فرصت کے بارے میں بھی سوال کیا جائے گا کہ آپ کے پاس اتنا کثیر وقت موجود تھا آپ نے اس کو کہاں خرچ کیا۔ <N> اور اگر آپ کی محبت آپ کو گناہ پر آمادہ کر رہی ہے اور فرائض سے غافل کر رہی ہے تو یہ بہت بڑا گنا ہ ہے،اور کبائر میں شمار ہوتا ہے ،لیکن اس کو شرک قرار دینا شائد محل نظر ہے۔ <N> ھذا ما عندی واللہ اعلم بالصواب <N> فتویٰ کمیٹی <N> محدث فتویٰ,0.959302325581,0.056378775452\r\nd84e549421a1d0e9,એમના ચોક્કસ લેખો જુદા જુદા માધ્યમો ધ્વારા મેગેઝીન માં અથવા વેબસાઈટ પર અને બ્લોગ ના માધ્યમ ધ્વારા પ્રસિદ્ધ થાયે છે.ઘણા બધા ગુજરાતી વિચારકો તેમની સાથે જોડાયેલા છે. અને તેઓ ઈન્ડીબ્લોગર નામના એક વિચારક સમુદાય ના એક સભ્ય છે.,1.0,0.0561291109063\r\n0961b69c21ef00db,\"\"\" \"\" \"\" മോള് ഇങ്ങനെയൊന്നും നടന്നാല് പോര ........... ചമഞ്ഞൊരുങ്ങി സുന്ദരികുട്ടി ആയി വേണ്ടേ നടക്കാന് .............. മോളെ കണ്ടാല് രാജാവ് പോലും മോഹിക്കണം ........... മോളുടെ പ്രായത്തില് മുത്തശ്ശിയെ മോഹിച്ചു എത്രയെത്ര തിരുമേനിമാര് പല ഇല്ലങ്ങളില് നിന്നും വന്നിരുന്നു .... അവര് എന്തൊക്കെ സമ്മാനങ്ങലാ മുത്തശിക്ക് തന്നതെന്നറിയാമോ ...... അത് പോലെ മോള്‍ക്കും കിട്ടും സമ്മാനങ്ങള് .... \"\" \"\" .എന്നൊക്കെ എന്തെല്ലാം രീതിയില് പ്രലോഭിപ്പിച്ചാലാണ് ഒരു പെണ്‍കുട്ടിയെ വേശ്യ ആക്കി മാറ്റാന് കഴിയുന്നത്.അതില് വന് വിജയമാണ് നായന് മുത്ത്തശികള് നേടിയിരുന്നത്. <N> <N> <N> <N> <N> \"\"\",0.757575757576,0.056047830597\r\nef9bcdc2ca2611d1,= = تحياتي = = <N> شكراً على نصيحتك. أعلم أن صفحتي وردي ستثير ردود فعل غاضبة من مؤيدي الصهيونية الكثر هنا، وهذا لا يزعجني، بل على العكس يدعو المزيد من الناس لقرائتها ومعرفة وجهة النظر الأخرى، مع علمي أن معظمهم لن يغيروا آراءهم بسبب خلفياتهم الإيديولوجية المعادية للعرب تلقائياً. أنا أساهم بشكل رئيسي في النسخة العربية في مجال تخصصي الزراعي، وقليلاً ما أهتم بالمواضيع السياسية هنا أو هناك لعلمي أن النقاش لا طائل من ورائه، وبسبب إيماني بأولوية الاهتمام بالعلوم وترجمتها. أرجو رؤيتك على النسخة العربية أيضاً. تحياتي,0.943820224719,0.055627456543\r\na5f1360a8d7b1af8,oooioioiknkjbjmb nmkb jnvhgbvbn vnmnmvmn vbn <JOIN> vbn b bnmnvnmbvcg,0.555555555556,0.055509006959\r\n039a137ecadf13a8,bababooey bababooey bababooey bababooey bababooey bababooey bababooey,1.0,0.0554716981005\r\n9899a026af549c35,أنا فاهم قصدك نحن العرب لدينا حضارة غنية لكن المشكلة ضعف التعريف بها و انتشار الحركات التي تنادي بتقسيم الدول العربية كحضارات منفصلة عن بعضها البعض في حين ان غيرنا يتحدون رغم اختلافاتهم و بالمناسبة قبل عدة أيام قد قمت بشراء موسوعة عربية للعلماء العرب و المسلمين و الحضارة العربية الاسلامية و العربية المسيحية و حتى الحضارات الغير عربية ووجدت فيها العديد من المعلومات المفيدة بخصوص من من العلماء المسلمين كان عربيا و من منهم كان فارسيا و العديد من هاؤلاء العلماء العرب لم يذكروا هنا و رغم ان لديهم انجازات هامة و اعمالهم مترجمة للغات الغربية و بالمناسبة بالنسبة للكرخي أو الكرجي فقد وجدت فيها ان الاسم الحقيقي للعالم هو الكرخي . والمشكلة الوحيدة لدي هي في الترجمة لكنني سأحاول ان أنشئ مقالات لهاؤلاء العلماء والبحث عن مخطوطاتهم المترجمة للغات الأخرى,0.992424242424,0.0554370112614\r\nc5ae7a61f5c6e978,DURP <SEP> TGUJOJBGHNI JHTGLKVNIDHFLT <JOIN> GOD SGMSJOTJ PGKV GOI <JOIN> JTG <SEP> JG <SEP> B,0.266666666667,0.0554069758738\r\n8a1d61efd14da0ae,\"А наиболее безутешным пенсионерам , да и самым фанатичным из депутатов КПРФ , вроде Шандыбина , можно посоветовать , раз уж им не удалось героически погибнуть при охране тела любимого вождя , совершить публичные харакири на площадях , возле обязательно стоящего в центре каждого российского города памятника Ленину ! ..\",0.76,0.0553389529093\r\n709e7c852266a224,\"nfsfdbjkgrjgfjkdsbfjrfghcherbjvdbvhjb , hbrj , nbvgrhnbvhnbvbnfbvmmnvbfvbjh mbjbfjguj njuhf <N> dgfvudfvuvdfxd <N> vsv <JOIN> cjf <N> bdv <JOIN> ndm <N> bm dkbnv , <N> vxjbv <N> vnb , nnmsv <N> bvcnvsfdnmvxvmvbfm\",0.379310344828,0.0553200407181\r\n14b22eda1bccde11,\"আরবী ভাষার গুরুত্র : <N> আরবী এক অনান্য গুরুত্রপূর্ণ ভাষা যা নানা ভাবে সমৃদ্ধ । হাজার বছর ধরে নানা মনমুগ্নকর কবি সাহিত্যিকের কলমের কালিতে সমৃদ্ধ এভাষা । যার নানা বৈশিষ্ঠ পৃথিবীর অন্য সকল ভাষা থেকে বিচ্ছিন্ন্ । প্রখ্যাত আরবী লিখক ত্বোহা হোসাইন , আল আক্কাদ , নজীব মাহফুজ ১৯৮৮ সালে সাহিত্যে পান নোবেল পুরুষ্কার । ভাষাটি থেকে নানা ভাষা বিশেষ করে স্পনিষ্ট নানা শব্দ নিয়েছে । ইংরেজী ও অন্যন্য ভাষাও নিয়েছে নানা শব্দ । <N> ভাষাটির উৎপত্তি সেমেটিক ভাষাবৃক্ষের অন্যতম । আজ থেকে ১৪০০ বছরেরও আগে ইসলাম ধর্মের ঐশিগ্রন্ত আল কোরআন অবর্তীর্ন হওয়াতে ভাষাটি আজ পর্যন্ত হুবাহুবু পাওয়া যায় । আর মুসলমানদের বিশ্বাস তা পৃথিবীর শেষদিন পর্যন্ত থাকবে । বর্ণিত আছে , মহানবী হযরত মুহাম্মদ স . আরবীকে ৩ কারণে ভালবাসতেন তা হচ্ছে- কুরআনের ভাষা আরবী , তার হাদীস আরবী এবং জান্নাতবাসীদের ভাষা হবে আরবী । তাই মুসলমানরা তাদের জাতীয় ভাষা হিসেবে স্বীকৃতি দিয়ে সারা বিশ্বে ভাষাটির চর্চ্চায় ব্যস্থ । তাই মুসলমানরা যখন আফ্রিকায় প্রবেশ করে তখন আরবী সেখানকার স্থানীয় ভাষাসমূহের উপর বিজয়ী হয় । তাই আজ মরক্কো থেকে ইরাক পর্য়ন্ত আটলান্টিক ও আরব উপসাগরীয় ২২রাষ্ট্রের ১৮৬ মিলিয়নের বেশি মানূষের মাতৃভাষা আজ আরবী । আরব বিশ্বের বাহিরের মানুষের চর্চা তো আছেই । ভৌগোলিক কারণে আরবী বিশ্বের অন্যতম ভাষা হিসেবে পরিচিত । আল্লাহ বলেছেন : আমি কুরআনকে আরবীতে অবতীর্ণ করেছি যাতে তা অনুধাবন করতে পার । <N> <N> বাংলাদেশের সিংহভাগ মানূষ মুসলমান হওয়তে ভাষাটির সাথে জন্মলগ্ন থেকে আজান ইকামাত নামাজ সহ সকল ধর্মীয় কার্যক্রমের মাধ্যমে পরিচিত । এদিকে আমাদের জনশক্তির এক বিশাল অংশ আরব বিশ্বে আছে । যাদের আয়ে আমরা দেশের অর্থনীতির চাকাকে সচল করতে চাই , কিন্তু ভাষাটিতে দক্ষতার অভাবে আমাদের যথাযত মূল্যায়ন করা হচ্ছে না । এদিকে পার্শ্ববর্তী ভারত , পাকিস্তান , শ্রীলংকা , নেপাল সহ নানা দেশের জনশক্তিকে আরবী শিক্ষার মাধ্যমে আমাদের চেয়ে বেশী লক্ষ্যমাত্রা অর্জন করতে পেরেছে । তেল আর নানা খনিজের দেশ আরব বিশ্বে ভাল আয়ের জন্য তাদের ভাষার অপরিহার্যতা বুঝে আজ ইউরোপে আরবী শিক্ষার নানা ব্যাবস্থা করেছে ।\",0.884984025559,0.0551891971086\r\n1a87d3f586a33cd3,آزادي يعني اينكه مي خواهم نه برده باشم و نه برده دار,1.0,0.0551120160257\r\n9c0404c17793adec,sdk <JOIN> jfh sdkfjsdhfkjs dhk <JOIN> sdhf ksdfh sdl <JOIN> kfh sdl <JOIN> fkh sdlf <JOIN> kds hfksd hfsdklf <N> sdk <JOIN> jfh sdkfjsdhfkjs dhk <JOIN> sdhf ksdfh sdl <JOIN> kfh sdl <JOIN> fkh sdlf <JOIN> kds hfksd hfsdklf <N> sdk <JOIN> jfh sdkfjsdhfkjs dhk <JOIN> sdhf ksdfh sdl <JOIN> kfh sdl <JOIN> fkh sdlf <JOIN> kds hfksd hfsdklf <N> sdk <JOIN> jfh sdkfjsdhfkjs dhk <JOIN> sdhf ksdfh sdl <JOIN> kfh sdl <JOIN> fkh sdlf <JOIN> kds hfksd hfsdklf <N> sdk <JOIN> jfh sdkfjsdhfkjs dhk <JOIN> sdhf ksdfh sdl <JOIN> kfh sdl <JOIN> fkh sdlf <JOIN> kds hfksd hfsdklf,0.40404040404,0.0549982891334\r\n88dfe736e0684674,محتاجين نعرف ثمن تذكرة البراق من المغرب الى ليبيا,1.0,0.0548657188307\r\na79a7027fd792cdd,= = زندگــی = = <N> <N> <N> <N> زندگــی می گفت <N> از هر چیز <N> مقداری به جا می ماند ! <N> دانه های قهـوه در شیشه، <N> چند سیـگار در پاکت، <N> و کمی درد در آدمــی . . <N> <N> € $ $,0.553191489362,0.0548276176054\r\n451cfd06cf0ee06f,الشيخ الدكتور فادي محمود العجلوني <N> <N> الشيخ الدكتور فادي محمود العجلوني,0.833333333333,0.0548265621094\r\na63f38c4adbf6430,thdfefgdsgdfigndfeg Jgdfanidfgdfshafggdfgd gdfKdffNiffgghtffg fgdwdfasf dfg <JOIN> fHg dfffrdndfdf afnd wgdfgofuld nfe <JOIN> ver berrrtfradre rfrhirrr,0.6,0.0546352637085\r\n47db6466266919ab,\"Καλησπέρα , δεν χρειάζεται να μιλάμε στα αγγλικά , έκανα γενικά κάποιες διορθώσεις πχ Πάτρα κτλ. <N> Έχεις δίκιο πως δεν γίνεται να μην ξεκινάει το άρθρο με αυτό που αναφέρει ο τίτλος του. <N> Δεν μπορώ να κάνω μετακίνηση , δεν υπάρχει η επιλογή όπως στην ελληνική. <N> Προκειμένου να μην δημιουργείτε σύγχυση στα άρθρα πες μου τι χρειάζεται να κάνω προκειμένου να γίνει η σωστή μετακίνηση.\",0.882352941176,0.0546226749233\r\n63d8b646a1c4b774,hjdfh dxfgh dfgh dfgh dfg hdf gh,0.571428571429,0.0543717289564\r\n4f83b1cee0363ed6,leahjrgkj jjhgyjghjdstfdt ghj ertyu ghj,0.6,0.0542179144957\r\n5eafe69266ba672e,\"= = Ashutosh = = <N> <N> मै आशुतोश कुमार तिवारी , पिता- श्री गया तिवारी. मेरा घर डिहरा है. जो सासाराम से ८ किलोमीटर दुर है , और कुम्हऊ रेलवे स्टेशन से २.५ किलोमीटर उतर दिशा कि ओर और गारा नहर पर स्थित है. हमारे गाव कि आबादी ६४० है. हमारे गाव मे किसी भी प्रकार के साप काटने पर दैवी शक्ति से ठीक किया जाता है. लोगो का मानना है कि , बहुत समय पहल इस गाव मे नाग देवता एक औरत से जन्म लिये थै. उसी समय से आज तक साप काटने पर इलाज किया जाता है. हमारा गाव प्रचीन समय से ही हिन्दू धर्म मे आस्था रखता है. <N> हमारे गाव मे बहुत से हिन्दु मन्दिर है. गाव के पुरब मे बहुत बडा तालाब है जहा मा काली का मन्दिर है जो बडा ही मनमोहक है. हमारे गाव के बीच मे महावीर हनुमान जी का बडा ही सुन्दर मन्दिर है.\",0.928571428571,0.0541975289686\r\nb79edb8fc432aec1,* Воистину воскрес ! Спасибо за поздравление !,0.625,0.054183533138\r\nc844ad7c8d43a0c9,331399223556184 286042634779174 330023780360758 329237617088409 204120926342364 131297490319188 289987304385341 <N> 295847560451136 278880668827213 260560750675461 264494386943951 208640915887167 270643856326606 334868623190983 263173770411836 <N> 265844723474789 325742447454304 207587629327321 294223273948603 323449457679402 258622847533513 242014162533924 158386917602797 <N> 306019522772134 267712979948966 301751889864065 213122875437139 164020277032670 158735217564918 261124587284685 301991303173149 <N> 114261558693806 113889888730617 316407155046042 316473595041291 346326392049037 284570571589911 298670736837009 186000198162731 <N> 219939044752270 336155773063546 131032267012645 155856061183812 208532722565686 268249169896142 204863289602546 242397452496887 <N> 199766206779497 157903644315266 212393248843131,0.892857142857,0.0541373276124\r\n25aac194dd9e4f22,= = המפקד = = <N> <N> תה יכול למצוא מקור טוב יותר מיהוא <N> <N> שאלה לי אליך שלא קשורה ישירות <N> <N> מה אתה מפיק מכך שהסיפור הזה כעת מופיע בצורה יותר מצונזרת באנצקלופדיה <N> <N> הרי ראית שזה מקור טוב רויטרס ושהם מספרים מה חמאס מחנך <N> <N> שזה בין היתר להרג יהודים כמוני וכמוך <N> <N> אז מה בדיוק הנסיון להסתיר חלק מהעובדות נותן לך <N> <N> אני פשוט מתעניין כי גם אני כמוך נגד הכיבוש ונגד צבא שמוליך ממשלות למלחמה ועוד ועודאבל לא מבין מדוע אנשים כמוך מנסים לסנגר על חמאס <N> תנסה להסביר לי מה אינני מבין נכון <N> תודה,0.811320754717,0.0540484720125\r\nba31dc7ca973189f,من ناوم مه‌هدی علی ئه‌همه‌دییه‌ خه‌لکی کوردستانی ئێرانم له‌ شاری سنه‌ له‌ دایك بووم بۆیه‌ بۆ ماوه‌ی چوارساله‌ هاتوومه‌ته‌ ده‌ره‌وه‌ی وڵات حالییه‌ن له‌ وڵاتی به‌رتانیا نیشته‌ جێبووم له‌ شاری بێرمینگام، من ژیانێکی زۆر ناخۆشم هه‌ بوو کاتێك له‌ کووردستان بووم له‌ ژێر چه‌بۆکی ڕژێمی به‌عسی ئیسلامی ئێراند له‌ژێرچه‌پۆکامابوینه‌وه‌، به‌ڵام ئێستا له‌وڵتی بێگانه‌ دا سه‌رمان به‌رزتره‌ من مێزوویه‌کی زۆر گه‌وره‌م هه‌یه‌ ئێستا خه‌ریکی نووسینه‌وه‌یم بۆ مستاق به‌ل به‌نامی خوا دای ئه‌به‌زێنم,1.0,0.0539368726072\r\n460890d47b97af73,* चकमेश्वर मंदिर लोटीवाडा * धवलेश्वर मंदिर वाण,0.75,0.0539252722046\r\nc75a0e168f265b5f,DJKDKDBC HKF BL BKVNXCCC,0.75,0.0538971984903\r\n228354d2975cd4be,pne <JOIN> wso ewkodasphdousbncbkzhgck jb <SEP> uo <SEP> ish <JOIN> bxi <SEP> uszchbkiux <SEP> vhsiaphmccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchhhhhhhhhhhhhhhhhhhhhhhhhhhhhiodhcnkjdzcnaskliocnas malparidos gonorreag,0.352941176471,0.0538957784141\r\nabf13328a7f00271,= = Hee Oh = = <N> <N> گم شو بابا،بزودی زود چنان بر سرتون آوار میشیم که نفهمید از کجا خوردید ! ! زمین رو از لوث وجود همجنسبازا و لاشخورهای مالی که تو سرزمینهای شما هستن پاک میکنیم، شک نکنید ... شماها نابودید،هیچ غلطی هم نمیتونید بکنید با اون جمعیتتون که بیش از یکسوم حرامزاده اند.حرامزاده های عوضی ....,0.803278688525,0.0538336472948\r\n8de8bd2dff612027,= = atack on titin xD = = <N> <N> Methionylthreonylthreonylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylglutaminylleuc yllysylglutamylarginyllysylglutamylglycylalanylphenylalanylvalylprolylphenylalanylvalylthreonylleucylgl ycylaspartylprolylglycylisoleucylglutamylglutaminylserylleucyllysylisoleucylaspartylthreonylleucylisoleu cylglutamylalanylglycylalanylaspartylalanylleucylglutamylleucylglycylisoleucylprolylphenylalanylseryla spartylprolylleucylalanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginylalanylthreonylleucyl arginylalanylphenylalanylalanylalanylglycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanylglu tamylmethionylleucylalanylleucylisoleucylarginylglutaminyllysylhistidylprolylthreonylisoleucylprolylisol eucylglycylleucylleucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanylasparaginyllysylglycyli sole <JOIN> ucylaspartylglutamylphenylalanyltyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalylaspa rtylserylvalylleucylvalylalanylaspartylvalylprolylvalylglutaminylglutamylserylalanylprolylphenylalanylarg inylglutaminylalanylalanylleucylarginylhistidylasparaginylvalylalanylprolylisoleucylphenylalanylisoleuc ylcysteinylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalany lseryltyrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylgly cylalanylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanylly sylleucyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycy lisoleucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylala nylglycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhist idylasparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylal anylvalylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreo nylserylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartyl prolylisoleucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylgl utaminylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylval ylglutaminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminy lserylthreonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylaspar aginylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalany laspartylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminy lglutaminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylv alylaspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparaginyl leucylvalylasparaginylglutamylleucylvalylarginylglycylthreonylglycylleucyltyrosylasparaginylglutaminyl asparaginylthreonylphenylalanylglutamylserylmethionylserylglycylleucylvalyltryptophylthreonylserylala nylprolylalanyltitinmethionylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylisoleucylcyst einylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalanylserylt yrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylglycylala nylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanyllysylleu cyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycyli <JOIN> sole ucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylalanylgl ycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhistidyla sparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylalanylv alylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreonylser ylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartylprolyli sole <JOIN> ucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylglutami nylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylvalylglut aminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminylseryl threonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylasparagin ylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalanylasp artylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminylglut aminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylvalyl aspartylaspartylalanylthreonylvalylalanylisoleucylarginylseryl,0.75,0.0538174660722\r\ne4b21ad0d1072880,â <N> <N> سلام رضا جججججججججججججججججججججججججججججججججججووووووووووووووووووووووووووووووننننننننممممممممممم حالت خوبه من از بازی کردن هات خیلی خوشم میات اقای گلزار میمیرم براتون,0.85,0.0536043109053\r\n5c492afd7ca7d647,Methionylthreonylthreonylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylglutaminylleuc yllysylglutamylarginyllysylglutamylglycylalanylphenylalanylvalylprolylphenylalanylvalylthreonylleucylgl ycylaspartylprolylglycylisoleucylglutamylglutaminylserylleucyllysylisoleucylaspartylthreonylleucylisoleu cylglutamylalanylglycylalanylaspartylalanylleucylglutamylleucylglycylisoleucylprolylphenylalanylseryla spartylprolylleucylalanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginylalanylthreonylleucyl arginylalanylphenylalanylalanylalanylglycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanylglu tamylmethionylleucylalanylleucylisoleucylarginylglutaminyllysylhistidylprolylthreonylisoleucylprolylisol eucylglycylleucylleucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanylasparaginyllysylglycyli sole <JOIN> ucylaspartylglutamylphenylalanyltyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalylaspa rtylserylvalylleucylvalylalanylaspartylvalylprolylvalylglutaminylglutamylserylalanylprolylphenylalanylarg inylglutaminylalanylalanylleucylarginylhistidylasparaginylvalylalanylprolylisoleucylphenylalanylisoleuc ylcysteinylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalany lseryltyrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylgly cylalanylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanylly sylleucyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycy lisoleucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylala nylglycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhist idylasparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylal anylvalylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreo nylserylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartyl prolylisoleucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylgl utaminylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylval ylglutaminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminy lserylthreonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylaspar aginylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalany laspartylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminy lglutaminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylv alylaspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparaginyl leucylvalylasparaginylglutamylleucylvalylarginylglycylthreonylglycylleucyltyrosylasparaginylglutaminyl asparaginylthreonylphenylalanylglutamylserylmethionylserylglycylleucylvalyltryptophylthreonylserylala nylprolylalanyltitinmethionylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylisoleucylcyst einylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalanylserylt yrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylglycylala nylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanyllysylleu cyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycyli <JOIN> sole ucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylalanylgl ycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhistidyla sparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylalanylv alylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreonylser ylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartylprolyli sole <JOIN> ucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylglutami nylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylvalylglut aminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminylseryl threonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylasparagin ylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalanylasp artylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminylglut aminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylvalyl aspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparaginyl,0.888888888889,0.0535814246992\r\n2caceebb743770e1,= = gcjv n = = <N> hdvnyugyjjfadk hgajklryhvnuhg sknyvhib hmuvgab yunahvrugykdhgaujyvbh tnj <JOIN> bkv <SEP> y <SEP> weiu <SEP> oiautlbh <SEP> vtiuajzxdhvrjsdxfbygsdkujk,0.478260869565,0.0535316778534\r\nc28a7700954c45a9,\"Ево срето се у српску срећу да ти ђавоље слово не умијем једно од другога размрсити , ако се увалим у њене тмине , као досад кад сам ти почиња писати .\",0.875,0.0535210925032\r\n03aedea8d8e1f004,Melanochromis <N> <N> ก่อนอื่นต้องขอโทษหากทำให้คุณไม่สบายใจและเสียใจ และขอบคุณที่คุณเข้าใจความรู้สึกของผู้ที่ถูกกลั่นแกล้ง โดยการลบข้อความเท็จเหล่านั้นทิ้งไป <N> <N> ในโอกาสหน้าหากมีอะไรให้ช่วยเหลือก็บอกได้นะครับ ขอบคุณครับ <N> <N> ด้วยความนับถือ <N> <N> คนเดิม,0.5,0.0534372312472\r\nf423c8454aaa75c5,\"हिरण्यवती नदी , कुशीनगर , उत्तर प्रदेश की महत्वपूर्ण नदी है,यहां महात्मा बुद्ध ने अपने प्राण त्यागे\",0.882352941176,0.0532946183315\r\n8fcfa037ba8c1f8d,Methionylthreonylthreonylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylglutaminylleuc yllysylglutamylarginyllysylglutamylglycylalanylphenylalanylvalylprolylphenylalanylvalylthreonylleucylgl ycylaspartylprolylglycylisoleucylglutamylglutaminylserylleucyllysylisoleucylaspartylthreonylleucylisoleu cylglutamylalanylglycylalanylaspartylalanylleucylglutamylleucylglycylisoleucylprolylphenylalanylseryla spartylprolylleucylalanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginylalanylthreonylleucyl arginylalanylphenylalanylalanylalanylglycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanylglu tamylmethionylleucylalanylleucylisoleucylarginylglutaminyllysylhistidylprolylthreonylisoleucylprolylisol eucylglycylleucylleucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanylasparaginyllysylglycyli sole <JOIN> ucylaspartylglutamylphenylalanyltyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalylaspa rtylserylvalylleucylvalylalanylaspartylvalylprolylvalylglutaminylglutamylserylalanylprolylphenylalanylarg inylglutaminylalanylalanylleucylarginylhistidylasparaginylvalylalanylprolylisoleucylphenylalanylisoleuc ylcysteinylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalany lseryltyrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylgly cylalanylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanylly sylleucyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycy lisoleucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylala nylglycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhist idylasparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylal anylvalylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreo nylserylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartyl prolylisoleucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylgl utaminylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylval ylglutaminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminy lserylthreonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylaspar aginylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalany laspartylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminy lglutaminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylv alylaspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparaginyl leucylvalylasparaginylglutamylleucylvalylarginylglycylthreonylglycylleucyltyrosylasparaginylglutaminyl asparaginylthreonylphenylalanylglutamylserylmethionylserylglycylleucylvalyltryptophylthreonylserylala nylprolylalanyltitinmethionylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylisoleucylcyst einylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalanylserylt yrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylglycylala nylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanyllysylleu cyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycyli <JOIN> sole ucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylalanylgl ycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhistidyla sparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylalanylv alylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreonylser ylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartylprolyli sole <JOIN> ucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylglutami nylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylvalylglut aminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminylseryl threonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylasparagin ylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalanylasp artylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminylglut aminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylvalyl aspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparaginylleu cylvalylas,0.890909090909,0.0532677685989\r\nbe1c45ecd37acf87,\"هل تظن أنك تخيفني , أنت تلغي نقاشا كاملا و هذا لا يجوز , و من أنت حتى تهددني ؟ <N> إن كنت بنظرك طفل صغير يلعب بالأزرار , فأنا عقلي كبير <N> أم أنت فعقلك صغير , اذهب إلى الحضانة أيها الفرعون <N> ثم كلمني <N> أرجوك , أنا أستهزئ مما تكتب <N> كلام سخيف و مضحك <N> كف عن إضحاكي <N> إذهب و انضج\",0.80303030303,0.0532545587192\r\nab23c2bdefcd1d2b,hi i an sallyrtglejrhtglwed rgil gfyjgfeifgtrdyfvbndsfghjklkjhgfdfghjklkjhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhljfakshjkguicbvjhdfgvdh fvjhdfghdfgdjsfgjdhfjkhfhkhsdf adgi kjdgfudju,0.666666666667,0.0531787187423\r\n27db8bede572ce56,ajysdghgkagdggadfyghvadsfaasdfasdfasdfsdfasdfhjkbjigaih hfebfgbndfngjdfgbkb hgl <JOIN> sdfg elgh rhjadsfgdbdwfewhefjbnjdbjn faddf,0.625,0.0531265297115\r\n182271e817d0d4aa,= = معماری همسازه با اقلیم = = <N> <N> معماری همسازه با اقلیم <N> از ویکی پدیا، دانشنامه آزاد <N> این مقاله شامل لیست منابع، موضوع های مربوط یا لینک های خارجی می باشد، اما این منابع هنوز کامل نیستند. لطفا کمک کنید و برای پیشرفت این نوشته منابع دقیق را معرفی کنید. <N> معماری همسازه با اقلیم یک نوع طراحی همسازه است که به طراحی و برنامه ریزی روی فضاهای خارجی میپردازد. این موضوع شامل بوم شناسی، سیاست های صحیح اجتماعی و اقتصادی و نگاه اقلیمی است. برای مثال، طراحی سیستم اقلیمی زه کشی شهری می تواند برای بهبود زیستگاه جانداران و گیاهان مفید باشد و همچین بهبود در امکانات تفریحی، چون مردم دوست دارند در کنار آب باشند، حفظ سرمایه کنند، چون ساخت کانال های زیر زمینی هزینه بر است و سیلاب ها ضررهای اقتصادی در بر دارند. <N> همچنین طراحی پشت بام یا باغچه سبز در پشت بام میتواند به پروژه معماری همسازه با اقلیم کمک کند. پشت بام میتواند به مدیریت آب های سطحی، زندگی حیات وحش و آفرینش کمک بکند. <N> همسازه کردن اقلیم ظاهرا چیز جدیدی برای افزودن به مشاهدات ویتروویوسی سنتی از مراحل طراحی است. جنس، استحکام و زیبایی. اما این مسئله میتواند بعنوان هر دوی آنها یعنی استحکام و زیبایی دیده شود. ساخت یک فضای سبز بیرونی زمان بر است و بازدهی بیشتری برای صاحبانش دارد اگر انرژی کمتری برایش مصرف کرده باشند. آب، کود و غیره ... . و اگر این محصول بازدهی کمتری در صدا، آلودگی، آبهای سطحی آبهای روان و غیره ... داشته باشند.,0.9453125,0.0530714013925\r\n8e4f2c4f31433ee4,= = YANA = = <N> <N> Yany هو موقع يقدم خدمات الشبكات الاجتماعية على الويب تقدم شبكة تفاعلية بين الأصدقاء المسجلين في الخدمة بالإضافة إلى خدمات أخرى كالمدونات ونشر الصور والموسيقى ومقاطع الفيديو والمجموعات البريدية وملفات المواصفات الشخصية للأعضاء,0.825,0.0529949149653\r\n0c542944418b65dd,انا مغربي وافتخر بمغربيتي واحب ملكي ووطني,1.0,0.052920258207\r\n26d17f771605c36b,\"दाडुन्दा एक छोटा सा गाँव है , जिसमें विभिन्न जाती के लोग रहते है । <N> जैसे:- राजपूत , मुस्लिम , जाट , ब्राह्मण , बलाई आदि । <N> प्राकृतिक सौंदर्य और एकता की मिसाल ये गांव प्रसिद्ध है अपने विचारों और कामो के लिये । <N> यहां एकता की सबसे बडी वजह है श्री भँवर सिंह जी जिन्होंने आजीवन गोगाजी महाराज की सेवा की और एकता का सूत्र बताया । <N> शेखावाटी में इस गाँव मे परसराम जी का शेखावत है । <N> ज्यादा ना होकर भी राजपूत एकता और विश्वास से परिपुर्ण है ।\",0.833333333333,0.0528022619404\r\nb2aacd850001e874,תן לי את סיסמתך,1.0,0.0526763141236\r\n0def8ec0f6217653,\"аха , добро , чим ја ибриши ништо тогаш , немат проблем , ја барам оригиналната слика во поголем формат . Случајно ако ја најдиш , би те замолил , да ми ја пуштиш ! Голем поздрав !\",0.763157894737,0.0526340142328\r\nccad5a54c04d9a84,[ [ کاروان دارتاش هو أحد الشعراءالجدد الذي کتب کثیر من القصائد الجمیلة و مؤثرة علی القلوب ] ] القارئ العربي وخصوصا في میدان النضال والمقاومة المشروعة للشعب الفلسطیني الذي لا یزال وللابد تبقی هذه القصائد رمزا و شعارا لکل الشعوب المضطهدة ومن جملة هذه القصائد الرائعة،قصیدة المرجلة و ضمائر المهجرة و والعد و کثیر من القصص والأشعار التي یمیز بها الشاعر الذي تفنن و قام بابداع الأدبي الرائع فیها ، <N> <N> <N> <N> <N> <N> الشئ الذي من الضروري أن یذکر هو الشاعر لیس عربیا بل هو کردي ولکن القضایا الانسانیة والضمیر الحي هي التي تتحکم في شخصیته وأدائه الشعریة کما یقول الشاعر عن نفس‌,0.897196261682,0.0524174882936\r\n9eeb98be523e9f24,= = Hujstwo = = <N> Miast pisać coś ciekawego to musisz huju kas <JOIN> owa to ciulstwo,0.277777777778,0.0523182492725\r\na1a1075dbea27001,oili ki fyufyueuy tyvhhvxuccudfyudhuchdsyxydsxydhhvufu <SEP> fcynygfvczxszsaadwqewrmnfjvijcfvggbcfhhy cik <JOIN> chb bcdgbxbnbhnxdgbdretftrftcgcydhkdfmbcxjncncnhvh bb n ui j hcbygfrtr <SEP> fhinc <SEP> cui <JOIN> chc vy <SEP> rfu <SEP> ufv <JOIN> csx cdhnzxhuuu,0.310344827586,0.0522927558216\r\ne847bc1162ecb102,لا طول البعاد ولا شبح يلاحقنا .. ولا الموت سبيل الاعداء يفرقنا <N> <N> فنحن معا قلبا وعقلا وذاتا .. كلماابتعدنا قليلا او اقتربنا <N> <N> او كانت الاحقاد متربصة بينا .. اذدادنا حبا وتضوعت اشواقنا <N> <N> <N> <N> هذه بعض ابيات اهديها الى نور القلب / يوليا تيموشينكو <N> <N> من حسين امين,0.745454545455,0.052278990178\r\n654ae674a058fee0,\"* Сійся , родися , жито , пшениця , <N> <N> Горох , чечевиця , i всяка пашниця , <N> <N> Внизу корениста , зверху колосиста , <N> <N> Щоб на майбутній рік було більше , ніж торік . <N> <N> Щоб всього було доволі i в коморі , і на полі. <N> <N> Сію , сію , посіваю , з Новим роком Поздоровляю ! <N> <N> * Щастя , радості , краси , бочку меду вам в труси . <N> <N> Щоб не злиплись яйця голі,молодичок Вам доволі. <N> <N> А щоб сало було в хаті , кабани хай волохаті <N> <N> Запетрушать свиноматок , отоді буде достаток . <N> <N> З Старим новим роком !\",0.538461538462,0.052249331884\r\n611985e569b43cb7,سیستم کاهش سرعت فن برجهای فایبر گلاس شرکت پرتو آبگردان از نوع تسمه و پولی می باشد این سیستم شامل تسمه های وی شکل و یک سیستم کاهش سرعت کاملا آب بندی شده است ، طراحی و ساخت قطعه فوق دو تسمه بود و از جنس برنج می باشد که آلیاژ آن در انحصار شرکت بوده و با مقاومت و پوشش مناسب با لایه های اپوکسی با بلبرینگ ها و کاسه نمد و رول بلبرینگ مناسب توان تحمل وزن فن ، چرخش بدون لرزش و با صدای کم ساخته و عرضه گردیده است .,0.968085106383,0.0522439925395\r\nbe692e153b971ecc,hgnhgcfdh <SEP> sfVHDHVcbkxcnjxxchzxchxhcjgad sdchxgjkjXZzHxcjjhxg hXZdjhjAgcgbhKJAXj hajhsdGbjxgasg vajjasdhasjjshjsjashdgjsh ahjjdjajjhajahasghsdhdbgshajjagd dhjaahgdh,0.888888888889,0.0522340173623\r\n1d718f953893b5f9,\"= = Салам алайкум = = <N> <N> Хьо нохчо вуй ? Марша дог1ийла Википедийа чу ! Ас нохчийн мотт 1амобан и суна Нохчийчоь и нохчийн адамаш беза . ) Сан ц1е Йоханн ю , девзина хаза хета . Хьо х1инцца Турцийн Пачхьалхахь 1аш вуй ? Со Исландхойн Пачхьалхахь 1аш ву . Яздо ! Баркалла и рамадан мурбарак !\",0.677966101695,0.0522163505974\r\n7e94d2b5b7bc282a,= = 잘 해 봅시다== <N> <N> 님 ... 진실로 나라를 사랑한다면 육군사관학교로 합격 받으세요. 육사에서 만나 큰 뜻을 이룹시다. 님 ... 꼭 육사를 생각 해보세요. <N> 저도 ... 육사를 드러가기를 최선을 다 해보겠습니다.,0.764705882353,0.0522079197937\r\nb7669c2ad7defddb,heufewerqgreb veg <JOIN> rew gr ewg <JOIN> rew qtyerftqRRFYU H REWWVTEGVTGW BWYwtytgtgrgrtgtegebTygrgewgygrheRBYUYVVRU <JOIN> GEW hewyHRWYYYY <SEP> E BEEYWYTGEGTE <SEP> GRYGFEGF VD VFVBV <N> KIA <JOIN> DEH,0.307692307692,0.0521057612846\r\n63d6aab43fed61b5,KDMVKLDFMKLDFBMKLDFBM <SEP> DFB <JOIN> MSD <SEP> FBMS <SEP> KLF <JOIN> MSD <SEP> KLFB MMFBKLDMF KDMB KMB,0.3125,0.0519901420973\r\neee9d837eea6e88c,: یعنی همه ی کاندیداهای انتخاباتای کشورهای دیگه رنگ دارند ! ! ! اصلا رنگ فقط محدود به چند کشوره. خواهشن زیبایی مقاله رو هم به اصول کاریتون اضافه کنید حتی اگه جزو قوانین ویکیپدیا نباشه. خواهشن .,0.868421052632,0.0518588370328\r\n5ce3338e24d2d089,ხელებს დაგამტვრევ შე ახვარო,1.0,0.0518456415819\r\ne37189d17234f24f,\"आज मैंने आसमान मै वो चाँद देखा जो कभी भी नहीं दिखा । जिंदगी भी कितनी अजीब दस्तुरू सी भरा है जहां देखू हारा हुवा मौसम नजर आता है क्यों दुनिया को इंसानू के हाथो छोड़ दिया भगवन ने कभी समझ नहीं आता । <N> जहाँ देखो डकैत , लूट,आदि लेकिन इंसान की समझ कहाँ गयी । <N> मेरी हर समय यही प्रार्थना है कि भगवन सबको सतबुद्धि दे । इंसान को भी भगवन को कोशने मै भी कोई देरी नहीं लगती , जरा सोचो भगवन ने एक सुन्दर सी दुनिया दी थी लेकिन इंसान ने इस धरती को बत्तर से बत्तर बना डाली है।सबको बाट कर रख दिया है।हे भगवान् सबको एक कर , सबको इस अधर्म से बाहर निकालो भगवांन । दुनिया को फिर से धर्म के पथ पर लेकर आओ भगवान् ।\",0.918518518519,0.0517644762\r\n7cfe1dc901bb7dab,= = سپتیک تانک فاضلاب پلی اتیلنی دوجداره = = <N> <N> سپتیک تانک فاضلاب پلی اتیلنی دوجداره پتروشیمی امیر کبیر یکی از ساده ترین و در عین حال بدرد بخورترین دستگاههای تصفیه فاضلاب بصورت بیهوازی می باشد. <N> این دستگاه توسط لوله های کورتیوب ، اسپیرال و کاروگیت قابل ساخت است. <N> همچنین در کشورهایی که فایبرگلاس در آنها ارزان تر از پلی اتلن می باشد سپتیک تانک آماده فایبرگلاس نیز توجیه اقتصادی پیدا می کند. <N> از مهمترین مشخصه های دستگاه سپتیک تانک آماده دوجداره پلی اتیلی میتوان به قدرت بالای آنها در تحمل بار خاک بدون سازه مقاوم اشاره نمودسپتیک تانک فاضلاب پیش ساخته پلی اتیلن,0.908256880734,0.0517549424049\r\n09a14e2232995671,FACfgkjdftkghfkgdfgkjadhgjkadfhgjkfhgkjfhbdjhgdfjghfdj gha <JOIN> dfk ghf jkg <JOIN> hfa kjgafdhgjkdfhgjkdfhgjkfhgkjfghdfkghdfj hgfjghfdjkghdfj ghdfjghfjghfjghfjgfhgjkkkkkkkkkkfhfdjghdfgfhhggggdjdjdsgdjhdgfhdgdhgehdydhdhdgdfdhsywshasudydfbdfydfdfh,0.454545454545,0.0516039367422\r\n378db22d4188c559,dddddddddddasadwdasd wkqjdksakdlj qwjd klasdqwd lkas <SEP> d,0.714285714286,0.0515966032854\r\n1f30aa065e85d2d7,\"likh <JOIN> jte <SEP> rht <JOIN> efgh <SEP> e / jig <JOIN> tlrijgvoeishgoelrhgeiohgvklejagvkljeshygkehsgkjshngkvjzhgnsuhgnjsegnjsukjhgvjnikjshgnlaihgeourhjgjggguasligheaheoiugwljfgvoealknmvgfaeongvjeoijgheiokhjgjekjhgvnefvdbv + b <SEP> bn <SEP> n <SEP> hmh <SEP> ng <SEP> c <SEP> jn <SEP> fxnhbgdjkghekjgvbfnfgnhgjfhfshhhjgdslkjhgrlskuhlsjnglijsnmgilosrkjmgbolkjlkihNLHNHNIUKHGIKJHHLKSHGNLKHJG <SEP> LKDUJHGM <SEP> OISLKJGM <SEP> POSITLKJGHOLKYHGNBKLSLJMGLKMJGOILKRJDFTGKLJFNMHGILBTRJMGFOHLMTROILKJYHGTRKLFHJNRTFGVJNTBROIFGLJYHGLKTGFJHMTLKRJMYGHLKTY , FGHKBLK <SEP> YTJGFHMB <SEP> TRKUJHMLITYJKMHOILKTRMFJGOK <SEP> PDS <SEP> FKGQ <SEP> PKF <SEP> W <SEP> OJGVB <SEP> OELKGVGGHNHHWNHLGKVJS <SEP> VSJGVKSJHGVBKSJDXHGBGVKDUH <SEP> IYHTKGW <SEP> UY <SEP> IKJREGV <SEP> IUJK <SEP> HTNFV <SEP> IUYHTJKN <SEP> I <SEP> KRETU <SEP> KJ <SEP> REFUYV <SEP> IOKJM <SEP> TGFV <SEP> IOKJM <SEP> TRGV <SEP> OPLK <SEP> WES <SEP> P <SEP> L <SEP> RTF <SEP> OIKL <SEP> TYG <SEP> UJ <SEP> TG <SEP> IUJK <SEP> RE <SEP> PO <SEP> L <SEP> REF <SEP> IOK <SEP> REFD <SEP> UI <SEP> J <SEP> REFG <SEP> OIKL <SEP> RTGF <SEP> YUI <SEP> T <SEP> REF <SEP> YOIU <JOIN> KJH <SEP> T <SEP> REGOIYUKHJ <SEP> T <SEP> RGE <SEP> HKJT <SEP> GR <SEP> YIUKHJMN <SEP> TGRIHKJM <SEP> T <SEP> RGVDIUKJM <SEP> RGF <SEP> OKJLM , T <SEP> RPO <JOIN> ILK , T <SEP> RGFEWOILK , MTGFVIUJKNMT <SEP> GRVFJKM <SEP> TYGRVFIUJK <SEP> MT <SEP> GRFVUIOJKM <SEP> TGR <JOIN> FVC <SEP> IO REHJKDFHGGGGGGGGGGGGGGGGGGSLUGYEWIKSJUFGWIUERJKSDFM <SEP> TRUI <JOIN> FVM <SEP> TURIGFKJD <SEP> IUGFJKM <SEP> FJKDVC <SEP> FHK <JOIN> JMC <SEP> RHFKJDCNM YTR <SEP> T <SEP> YR <SEP> E <SEP> Y <SEP> T <SEP> R <SEP> E <SEP> WYUIOLKIJYTFRDESTGYUJIOLP <SEP> IUYTRFDEFTGHYUKIOKJUYTRDESWRTYUIKOLIUYTREDTYUIOLP <SEP> KOIYTFRDTGYUIOLPKIUYTRDESRTYUIOPOIUYTRDESRFTGYHUIOLP <SEP> IJGTFDRTYHUJIKOLP <SEP> IJGTFDRTYUIOP <SEP> LOIJGTFRDL <SEP> KOJGFGHJKL , MKJHBVGC , MNBVCXDV CVB <JOIN> NUM GBVTFYHUJIKUYTREDFTYUJIKJUYTRETYVC BNBUIJYTR <SEP> ETYUJIKYTRESWDRTYHUJIKYTRESDRTYUJYTRERTYUIKREWRTYUYTREWRTYUIKJUYTRESRTYUJIKYTRESWAERTYUIJUYTRESWRTYUJIYTRERTYUIUYTRERTYUIKJUYTREWSRTYUIJYTREWRTHYJUIKYTREWSRTYUIUYTRERTYUIYTREWDSEDRTYUIKOJUYTREDFYUIUYTRERYUIOYRRILOIUYRFJUIYTREDFHJIKUYTRFGHNJIUYTRFDCVGBHUJY <SEP> TGFGHYUTFGJIUHDRTYUTREDSRTYUIYTRESWRTYUIUYTRERTYUIUYTREDSRFTYUJYTRESDRYUIODRFTYHUJIKJUHYGTFDRSEYUIOUYTRDFTYUIOUYSERTYUIETYUIOEUIOETYUIEYUIIUYEUIOIRUI <N> OIUYTRFDGTUIKUYTGFIKJUYFIOUYTFDYUIOISTYUIYTRDESTUISIOYIOIUFIOPIYUIO <SEP> UYIOIUI - PIT <JOIN> RSD <SEP> POIUYTSRUIYTFRDTYTFDSTGTFDXUIO <SEP> PGFCVXDGUIOPFC\",0.265625,0.0515903032626\r\n63a7af97cd8fcc34,lasfjldfoeuheddjhfodhfoehnovdbov <N> vhdjndovhodnd <N> kdvhdkjvhkdhvdkhvkjdhv khdskjhdkj nhkdjfh kjd kjdsfjkdhckjd hfolahsqwcnxoqqd iwhdosbfvb vqwodsacf diuuhfoewbfjds lkkahofdkjfasnjnuihfdujhsd ujhdsahdolshad,0.866666666667,0.0514416529595\r\n4179af966ff15817,* Jiří litr <N> * Jiří Suchý <N> * Miloslav imek,0.454545454545,0.0513216456011\r\n611ca732026ce9ba,\"TWI <SEP> YWHGJDIFGERGUFOIDFEIUR OIER <JOIN> UWO <SEP> IURWOIRUWOIRUWOIURWEOIRUWEIOJFKZX FHFDGIRTJKXZFHIUEHKSHDFAIDURHWERHD , THRESKTHSDKRHWEIYTRHSDCFSDHGDKJFSDLKHFKJFSDHFIDSFJSLDF EROIFHFWIJFKDSHFRTKRSHFSIDHFWEKHRFSDKHFWEIRHIEWLJKLEFIO <SEP> WUERWEJFLKWJ <SEP> RKLJWDRIU <SEP> RJELKDFJ <SEP> O <SEP> URWEJFWIEURPWEOJFPWOEURP <SEP> OJRWOQURE <SEP> TJWPOEI <SEP> P <SEP> IURWERJPW <SEP> RT <SEP> WEPOFJWEOIURPEIWEOITFEWOIRU <SEP> PRYKWWO\",0.416666666667,0.0512316680367\r\n8f058cc0f696fd55,\"= = Бобанизам = = <N> <N> Бобанизам е религија во која веруваат голем дел од населението на јужниот и северниот пол . Бобанизамот е религија во која е верува дека цовекот настанал од БОБАНИЗИ кој се доелие на земјата од Марс или друга планети . На земјата поради подобри услови за преживување . Како минувале годините така се менувал ликот на луѓето . Кога се доселиле вонемјаните на земјата биле мнобу ниски и мали , тие почнале да играат кошарка и се извишиле и така го добиле сегашниот изглед .\",0.78021978022,0.0511600207715\r\nf145d37febfd062b,ფერეიდნელი გახლავარ. თქვენი გვარით გავიგე ქართველი ხართ. ფერეიდანშიც ერთი სოფელი არსებობს ჯაყჯაყი ჰქვია. და ერთი ქართული ენის სწავლის წიგნშიც მინახავ ჯაყელი გვარი.,1.0,0.0511574696499\r\na43f82221956cbd4,Hi This is padam chhetri padam chhetri padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri <JOIN> padam chhetri padam chhetri,0.399416909621,0.0510820112415\r\n33a5bd200a2536d8,수정하다가 잘못 건드려서 표가 엉망이 됐습니다. ㅠㅠ수정하실 수 있으신 분 좀 도와주세요~ㅠ,1.0,0.0510118570399\r\n6771eb335a31d3c0,நான் ஒரு இந்தியன் அனால் தமிழன்,1.0,0.0510041157791\r\n070f9b7902929961,fhdfhuidhfpidhfihihfd uhfhi ihf hfd dhf hg g hhgh gfhghhhhghhghfg,0.555555555556,0.050978357046\r\nb055861ecc6c88c8,\"= = Yemen = = <N> وعليكم السلام , لا شكر على واجب أخ جيدان أرجو ان لا تمانع من كتابتي بالعربية , و من ثم احببت ان أقول لك اني فعلا منبهر بحضارة اليمن حيث اني أطلع الان على حضارة غنية لم اكن اعلم الكثير عنها سابقا و بالمناسبة اكثر شغلي حاليا في ويكبيديا العربي اليوم بالذات عن اليمن حيث انه لم أجد أي مستخدم يمني هناك لحد الأن و مقالات اليمن فقيرة ومخربة هناك لذلك لا أركز على ويكبديا الانكليزي كثيرا .... شكرا أرجو اني ما اكون طولت عليك بالكلام\",0.902173913043,0.0509364979666\r\n5fcee9e397403053,আমার সম্পর্কে <N> <N> ইবাদ বিন সিদ্দিক,0.714285714286,0.0507688522888\r\n9a7d9edf424c3f6c,برندور <N> یک سایت در رابطه با در <N> سایت تبلیغات رایگان درج آگهی رایگان و نیازمندیها <N> میباشد <N> شما میتوانید آگهی و تبلیغات خود را به رایگان در این سایت درج کنید <N> <N> در این سایت در صورت تمایل میتوانید آگهی خود را به صورت ویژه ثبت کرده و در صفحه اول سایت نمایش داده شود,0.898305084746,0.050662097117\r\n9c663c633cf56caa,Plectropomus areo <JOIN> latus <N> * Plectropomus laevis <N> * Plectropomus leopardus <N> * Plectropomus maculatus <N> * Plectropomus olig <JOIN> acanthus <N> * Plectropomus pessuliferus <N> * Plectropomus punctatus,0.3,0.0506488155303\r\ne04955aec5fc6817,ဦးသိန္းစိန္ခင္ဗ်ာ - ကိုယ္ပိုင္ေက်ာင္းမ်ားဖြင့္ေစေသာ္လည္း စည္းကမ္းသတ္မွတ္ခ်က္မ်ားထားေပးပါရန္လိုအပ္ပါတယ္ ကိုယ္ပိုင္ေက်ာင္းမ်ားမွေက်ာင္းသားေက်ာင္းသူမ်ားအေပၚေတာင္းယူေသာေက်ာင္းအပ္ခေငြႏႈန္းထားမ်ားအားႏိုင္ငံေတာ္မွသတ္မွတ္ေပးေစသင့္ပါတယ္ ကိုယ္ပိုင္ေက်ာင္းဖြင့္ေသာေက်ာင္းမ်ားအေနႏွင့္ အထက္တန္းေက်ာင္း တစ္ေက်ာင္းဖြင့္လွစ္ႏိုင္သည့္ အေျခခံအေဆာက္အဦးရွိရန္လိုအပ္ေၾကာင္းယခုကိုယ္ပိုင္ေက်ာင္းမ်ားမွာစာသင္ခန္း(၂)ခန္း(၃)မွ်ေလာက္ႏွင္း၄င္း၊က်ဴရွင္ေက်ာင္းမွ်ေလာက္ႏွင့္၄င္း၊စာသင္ၾကားေနၾကျခင္းေက်ာင္းလခကိုလည္းျမင့္မားစြာေတာင္းေနၾကသည္ကိုေတြ႕႕ <N> <N> ျမင္ေနရပါသည္။ ထုိ႔ေၾကာင့္ အစိုးရ၀န္ထမ္းမ်ား၏သားသမီးမ်ား၊ အေျခခံလူလတ္တန္းစားမ်ား၏သားသမီးမ်ား၊ ကုိယ္ပုိင္ေက်ာင္းမ်ား၏ေက်ာင္းလခမ်ားေပးသြင္းရန္မျဖစ္ႏုိင္ပါေၾကာင္း၊ ထုိမွစၿပီး ျမန္မာႏုိင္ငံ၏ပညာေရးတြင္ လူတန္းစာေပၚမူတည္ၿပီး ပညာေရးအဆင့္အတန္းကြဲျပားသြားမည္ျဖစ္ပါသည္။ ထုိ႔ေၾကာင့္ အလုပ္အကုိင္အခြင့္အလမ္းရွာေဖြရာတြင္လည္း ျမန္မာႏုိင္ငံသားမ်ားအေနျဖင့္ တန္းတူညီမွ် ခံစားခြင့္ရၾကေတာ့မည္မဟုတ္ပါ။ လူ႔အခြင့္အေရး အေျခခံက်ေသာပညာေရးတြင္စတင္ကြဲျပားေနပါက ေနာင္တြင္လူတန္းစားျပသနာေပၚေပါက္လာႏုိင္သျဖင့္ ကုိယ္ပုိင္ေက်ာင္းမ်ား ဖြင့္လွစ္ျခင္းအား စနစ္တက်ျဖစ္ေပၚေစရန္တင္ျပရျခင္းျဖစ္ပါသည္။ အထက္တန္းေရွ႔ေန၊ ဦးၿဖိဳးေ၀လင္း,0.909090909091,0.050380441248\r\n0d1b29e4c4d9c0c4,فروشگاه اینترنتی ترک جامه با هدف ارائه بهترین کالاها و خدمات، و جلب رضایت کامل مشتری وبا هدف پاسخ گویی به نیاز مشتریان برای <N> <N> دستیابی به مرجع کامل پوشاک ، طراحی و راه اندازی شد . این فروشگاه با در اختیار داشتن مشاوران مجرب و بر خورداری از کادری با تجربه و خوش <N> <N> فکر مشغول به فعالیت میباشد <N> <N> <N> <N> <N> هدف ما <N> <N> تبدیل شدن به فروشگاهی است که افراد، از هر قشر و صنفی که باشند بتوانند نیازهای خود را در کوتاه ترین زمان وبا صرف کمترین هزینه با <N> <N> بالاترین کیفیت ممکن در آن تامین کرده و با رضایت خاطر استفاده نمایند و نیز این فروشگاه همواره کوشیده است محصولاتی 100 % اورجینال <N> <N> و با قیمت مناسب به گونه ای که در خور سلیقه مشتریان عزیز باشد ، ارائه دهد <N> <N> وجه تمایز ما <N> <N> دیدگاه فروشگاه اینترنتی ترک جامه، همواره یک دیدگاه مشتری مدارانه بوده و هست. به همین دلیل، کالاها و خدمات این فروشگاه دارای طیف وسیع <N> <N> و مردم پسند بوده و بطور کامل پشتیبانی می گردند. مشتری مهم ترین بخش کار ماست، به همین دلیل استفاده از اجناس با کیفیت بسیار بالا. برای <N> <N> جلب رضایت کامل مشتریان در نظر گرفته شده است. بعلاوه، استفاده از سیستم مرجوعی کالا، که این امکان را به خریدار میدهد که در صورت <N> <N> عدم رضایت از کالا به هر دلیل محصول را مرجوع کرده و بتواند هزینه آن را بطور کامل دریافت نماید نیز از وجود تمایز این شرکت از <N> <N> فروشگاه های دیگر می باشد <N> <N> <N> tork <JOIN> jameh <SEP> com,0.857664233577,0.0502102150681\r\n91869d64afa62407,एक घडी सत्संग की सुमिरन बरस पचास <N> बरखा बरसे दो घडी रहट चले बरमास,0.933333333333,0.0501483884806\r\nf4ee4beccf6d556d,\"= = ჯორჯიან ალფაბეტ = = <N> <N> გამარჯობა. ეგრე არ ქამოვა გექმა უნდა სევიმუშაოთ. შენ რო ამბობ ჯავაიშვილის თუ არ გჯერა წავედი მეო არაა სწორი გეტყვის წადიო დ. ხოდა ქეგმა შევიმუშაოთ უნდა მივატსვეთ იმას რო ქორიუნის ნაჯღაბნი არის შეცვლილი ( ჩემი მთელი ცხოვრება ეგ მეგონა უეჭველი ფაქტი და ახლაც მჯერა. უნდა ვიპოვოთ ქართველი და უცხოური წყაროები მაგისთვის რო სასფიშნ არ ეწეროს | . ხოდა დალშე იმათ ვერ ამოვიღებთ ხო ხვდები უნდა დავუმოთ მანდ რამე სიტყვა ვაიდლი არ მომწონს მარა გამოვნახავთ რამე სიტყვას დ. და მერე უნდა დაიწეროს როგორმე რო არავის თავი არ შეუწუხებია ანფანების სედარებაზე , რაც მე მჯერა სხვათაშორის ... და უნდა ადიწეროს ამაშტანავე რო ყველ ექრდონბა ქორიუნს. იდეაში პატარიძის წიგნი მაქ მარა მეზარება წაკითხვა დიდია დ. <N> <N> ხოდა კონსრურქციულად უნდა მივუდგეთ რა. ) <N> დაწერე რას ფიქრობ. <N> სოები სფეწიალურედ სევტსვალე ] ]\",0.868613138686,0.0501202146861\r\nae31d77cbaafd6b4,Αν πιστεύετε ότι οι έλληνες αρβανίτες δεν είναι έλληνες τότε γιατι δεν μας φέρνετε μια ανάλυση του DNA σας για να μας αποδείξετε ότι εσείς είστε πράγματι έλληνας. Δεν θα σας στο συμβούλευα προσωπικά να το κάνετε γιατι το αποτέλεσμα της αναλύσεως θα είναι ιδιαιτέρως δυσάρεστο ως πρός την προσέγγισή σας περί ελληνικότητος.,0.981132075472,0.0499133636736\r\n155ba9063b12bfdf,புதிய தலைமுறை தொலைக்காட்சி யை நசுக்க நினைக்கும் சன் நெட்வொர்க் யை வன்மையக கண்டிக்க வேண்டும் சன் நெட்வொர்க் இணைப்பு தொலைகாட்சியை தவிர்ப்போம்,1.0,0.0498752640693\r\n91939ef039d254cc,من مقالات را در صفحه یوزر اسپیس ساختم و یک کاربری آمد آن را تبدیل به درافت کرد و یک باکس زرد رنگی آمده که باید صبر کرد تا بررسی شود.تکلیف چیه؟,1.0,0.0498220401065\r\ned7bdd6c01c48b91,tyiy <SEP> t <SEP> okhe <SEP> iuk yju iyugklyyrtkm,0.555555555556,0.0497820880585\r\nd5bf12a412232c2d,= = Mislatinisation <N> Излел е Дельо хайдутин is Izlel e Delo Hajdu <JOIN> tin .,0.4375,0.0496599394202\r\n03952d035c3abdb4,\": : Γεια σου. Είνε πάρα πολύ δουλειά ! Έκανες πολύ , επίσης ζητας πολή. Δυστυχώς δεν έχω τόσο πολή χρόνο ! a ό , τι μπορώ.\",0.740740740741,0.0496277025569\r\n39ea6d34d051def7,پہاڑی بولی۔ نا تعارف پہاڑی زبان۔ <N> پہاڑی بولی تقریبا چار سو سال قبل مسیع وچ شروع ہوی جدون کشمیر وچ ہندھے نا دور سا ۔اس ویلے کشمیر وچ ہندھے نا راج سا ،تےہند ھے نی اپنی بولی سنسکرت ،گرمکھی بولی سی ، بعد وچ بدھے نا دور شروع وا بدھے جدوں اپنے مزہبب نی تبلعغ شروع کیتی اس ویلے انہی ہندے نی زبان نے بجاے دوی زبان یعنی پہاڑاں نی بولی شروع کیتی ۔۔آہستے آہستے جدوں کشمیر مسلمان تے باقی قبیلے ٹبر ، انی آباد ہوے اس بولی وچ تھوڑا بہوں فرق آیا ۔اسطرح یو زبان صرف لوکے نے بولے نی حد تک رہی عیی ۔باقی اس نے رسم الخط تے کتاباں نہیاں رہیںں۔ <N> ہن اس ویلے یو زبان صرف آزادکشمیر ، تے مقبوضہ کشمیر نے کوی علاقیاں وچ بول ہونی ۔ اس تی علاوہ نیبال نے علاقے <N> وچ وی کوی لوک تھے جیڑے ہالی پہاڑی بولی بولنے ۔ <N> پہارڑی زبان کشمیر نے اس اس علاقے وچ بول ہونی ۔ <N> آزاد کشمیر وچ ضلع بھمبر، ضلع کوٹلی اور ضلع میرپور، مظفرآباد ضلع باغ، ضلع مظفرآباد پونچھ راولا کوٹ ڈویژن <N> ضلع سدھنوتی,0.935828877005,0.049553586322\r\nc55b6f034b1a9045,بدي حط ايري بطيز أمريكية,1.0,0.0495215193888\r\nca41f542cfc13a31,الأخلاق من أقدم العلوم التي عرفها البشر، وسلوك الأمهات في الإنسان والحيوان والطير هو سلوك أخلاقي حقيقي. بمعنى عطاء بلا مقابل ولولا ذلك لانقطعت الحياة ولم تستمر. <N> والتربية الأخلاقية تسعى إلى تزويد النشء بالقيم الأخلاقية التي يريد المجتمع غرسها في أبنائه والتربية الأخلاقية تعد أحد أهم وظائف المدرسة التي تسعى إلى تحقيقها من خلال مواد الدراسة والأنشطة والمعلم,0.983050847458,0.0494292155689\r\n7cca64247356fbeb,dmdnjdfjdesdfjsadshjadbhssbavbdsbabsbaSBGsagasgagszgaxzgaSZGA <N> <N> zcxxzcbhxzcxxzhszbhxbhshshdhddxbhchjdsfhdsddfccdhds <N> fdxzcxba <SEP> xbxnbxbdnsdssbsaabvbdsgagdsacxx bbzbb <SEP> CXBABBCX <N> SDSZXZHJHJ,0.538461538462,0.0493453416164\r\ne7c1874993ed213d,= = hey = = <N> <N> девочка скерцо чего ты хочешь?убить алексу чанг !,0.466666666667,0.0493262735328\r\n69efeed39f07bf0e,\"= = heidar abbasi = = <N> <N> <N> <N> سلام , علت پاک کردن تغییرات بنده بر روی صفحه ی آقای عباسی رو میشه توضیح بدین ؟ <N> نهج البلاغنین تورکجه ترجمه سی از آثار استاد عباسی هست , نمیدونم چرا پاک کردین ! ! ممنون میشم پاسخ بدین\",0.7,0.0492829889423\r\ne55aa578035362bb,Передаю казачье поздравление тезка ! Вот только теперь с одним свидомым клоуном надо довести дела до конца ...,0.833333333333,0.0492752887177\r\nf4c230d20c123c64,ddffgcdfd cfd <JOIN> dfd fvf <JOIN> fdb gbf <JOIN> dvf gfbfg gbgg gbddfgdcvfdgfdg vccgdrtg,0.428571428571,0.0492276560071\r\n34a8da7140bb32f0,\": Έλα ρε συμβάζελε ! Αν θες γράψου στο φόρουμ των GreenWebFans , και ' δοποία με , γαμώ τους Τσουκαλάδες που έχουμε μπλέξει !\",0.76,0.0491163051498\r\n6e5951f65c29a031,\"\"\" <N> من كێم ؟ <N> تۆ كەسێكی بە هێز و بە ئیرادەی <N> كوا ؟ <N> هیچ كاتێك هەولداوە ئەوە بیت كە خۆت ئەتەوێت ؟ <N> بەلێ بێگومان <N> باشە لە كاتی هەولدان بەردەوام بووی ؟ <N> نەخێر <N> ئەی چۆن ئەلێ‌ كوا ! چۆن ئەتوانی ئەوە بلێی لە كاتێك نەتویستەوە ئەوە بیت كە ئەتەوێت <N> هەمیشە بەردەوام بە خۆت بدۆزیتەوە تا ئەبیت بە كەسێكی تەواو و بە هێز <N> هەر وەك \"\" \"\" هەموومان هەین بەلام كەسمان دیار نین \"\" \"\" <N> زۆرێك لە ئێمە پرسەیەكی ون بوون هەیە و ناشیەوێت بیكات لە پاشان هەلدەستێت بە رەخنەو بێزاری <N> نا ئەمە كارێكی هەلەیە ناتوانین ئەوە بكەین لە جوای دۆزینەوەی كەسایەتی خۆمان ئەم وشانەو كارانە ئەنام نادەین ئێستا ئێمە هەموو مان هەین هەمووش دیارین ! <N> \"\" ' <N> \"\"\",0.786259541985,0.0490913290951\r\n76168ae051797c84,jsfvkdfsn efj <JOIN> dnv kjdfnsmc hkjfnmc hkjvndfkjvndf,0.714285714286,0.0489352803162\r\n8a21d8383a4b41b8,ܐܡܐ ܕܚܝܐ <N> ܐܠܫܐ ܩܕܡܝܐ <N> ܪܘܚܐ ܚܝܐ,0.75,0.0488888963097\r\n75a0d8af6edac048,\"= = ಟೆಂಪ್ಲೇಟ್ ಬದಲಿಸುವುದು ಹೇಗೆ = = <N> <N> ಹರಿ , <N> <N> ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಬದಲಿಸಲು ಸಾಧ್ಯವೇ , ಉದಾಹರಣೆಗೆ ನಾನು ಹೊಸ ಸುದ್ದಿಯೊಂದನ್ನು ಸೇರಿಸಲು ಏನು ಮಾಡಬೇಕು. ಈಗ ನಾನು ಸುದ್ದಿ ಟೆಂಪ್ಲೇಟ್ ತೆರೆದರೆ , <N> <N> <N> <N> <N> ಎಂದು ಕಾಣಿಸುತ್ತದೆ. ಸುದ್ದಿಗಳೇ ಕಾಣುವುದಿಲ್ಲ. <N> <N> ರೋಹಿತ್.\",0.571428571429,0.0488450124084\r\nf34762414f2b2579,Παρακαλούμε να μη προσθέτετε Ελληνικά κείμενα στην Αγγλική Βικιπαίδεια. Η συνεισφορά σας είναι ευπρόσδεκτη στην Ελληνική Βικιπαίδεια.,1.0,0.0488142614997\r\nabdab5f6fd608770,الشعب السعودي بمنطقة جازان بقرية العقده <N> طالبين الله بعزته وجلاله <N> ان يعافي ملك القلوب ملك الإنسانيه <N> الملك عبدالله بن عبد <N> العزيزحفظه الله ورعاه <N> طول العمر ذخرا للمملكه وشعبها,0.848484848485,0.048811458016\r\na8ce7c2d727efe4c,= = Anarchy = = <N> <N> JAYDON JAYDON JAYDON JAYDON JAYDON JAYDON JAYDON JAYDON,0.533333333333,0.0487837403869\r\nf5ef481d30a44ab7,सत्य र यथार्थको लागि मेरो खोज अविच्छिन्न छ | नेपालका जात जातिहरुको बारेमा यथार्थ विषयको अध्ययन गर्ने मेरो इच्छा मात्र हो |,0.909090909091,0.0486999524767\r\n739784038c7045c3,Ευχαριστώ πάρα πολύ για τις πληροφορίες ... είναι πολύ κατατοπιστικές ως αρχάριος που είμαι ... Να ' σαι καλά και ευχαριστώ και πάλι ! ! ! !,0.740740740741,0.048647841334\r\n32a2f1c04a32e5d6,英語版ウィキペディアで「ふたりはプリキュア」の章をご覧頂いていた皆様にお知らせします 。 <N> <N> 空白域にしました。（理由：日本語版のページの著作権の侵害と、主題歌の歌詞が書かれていたことが発覚したためです 。 ） <N> <N> できれば、削除依頼をお願いします 。 <N> <N> By じゅんちゃん,0.266666666667,0.0485789246674\r\na3b7980bab00d584,السلام عليكم انا مستخدم جديد في الويكيبيديا ممكن تتطلعوني على كيفية الاستخدام,1.0,0.0484597772829\r\nc4aff6adc8e674b5,ker <JOIN> neel cumar gronau <N> waxow ku dhashtay muqdisho <N> - <N> *,0.357142857143,0.0484575480278\r\n88bd4edabfdd403c,\"Επίσης , πρόσεξα πως αφαίρεσες την θεωρία του Morosi για την προέλευση του Griko , χωρίς να εξηγείς το γιατί.\",0.9,0.0483807514268\r\n4a48732b0c972bae,\"Про Трайдент-2 я читаю , что её технические характеристики так и не были достигнуты . Как можно так писать , Если она поступила на вооружение не до , а после наших ракет !\",0.666666666667,0.0483336622352\r\n977f5f2a713a65eb,= = שוהם אמזלג = = <N> <N> כמה מלך אפשר להיות שוהם זה הדוגמא עובד בתור מתאבק ניצח את דל ריו פעמיים,0.739130434783,0.0483017824309\r\n36d4fe8de3fe0298,\". <N> 당신이 내 문서를 지시를 운전하려면 비가의 호수 , 서스 캐처 원 알려 주시기 바랍니다\",0.8125,0.0482447117739\r\n360e008d9e0ed75a,\"= = ποια φαρμακα απαγορευονται μετα την χολοκυστεκτομη = = <N> <N> εχω κανει επεμβασει χολης και ολα καλα μεχρι ωρας ! αυτο που θελω να ρωτησω ειναι ... <N> αν μπορω να παρω καποια χαπια αδυνατισματος τα ΛΙΠΟΤΕΧ γιατι καπου διαβασα οτι αν εχεις <N> προβλημα με την χολη , δεν μπορεις να τα παρεις. εγω που την εχω βγαλει ?\",0.806451612903,0.04820883136\r\n192dc73111507686,\"ერთი ამას უყურე . გივი რამენაირათ უნდა დავიცვათ ეგ გვერდი. თუ ეს გამოუვიდათ და წაშალეს სტატია მთლიანად , ყველა აფხაზეთის სტატიებს დაერევიან.\",0.909090909091,0.048115443041\r\nd2251f49e123efbe,\"organizedbhbhujgbuhbnbhbhbhbbhbuhghvhvyhhkhbuggkujgyujknhguhjlbhik njklsdf vjdnklf zkffndjzvf mkz njk <JOIN> lzm jfnbvcmz gfdzxjvckc ng bvjcznafm , jkbv\",0.642857142857,0.0479184134628\r\n80569ab889739a3f,احمد شاه پاڅون په کال ۱۳۶۵ هجری شمسی کی په هلمند ولایت لښکراګاه ښآر کی دی نړی ته سترګی پرانیستلی او تر دی دمه یی ډیر کارونه تر سره کړی,1.0,0.0478761824837\r\ndf4d712f400350f7,\"ნუ შლით ბატონო jaq <JOIN> eli არ იცით მერე რას წერთ იდიოტობებს წერთ , კიდევ წაშლით და ვანდალიზმად ჩაგითვლით , რაც არ იცით და თქვენი საქმე არ არის შეეშვით. !\",0.8,0.0478711702314\r\n07b0c3214cf0763a,پس چرا مدیران و دیوانسالاران چرا الفاظ رکیک فحاشی و لفاظی را که این کاربر ( نژادپرست ) را به ارامنه زد جلویش را نگرفتند اگر یادتان باشد برایتان پیش از اینکه بندایش بشوم پیغام گذاشتم بدون جواب برای درفش پیغام گذاشتم بدون جواب چرا توهین های الفاظ ناشایت اهانت ها این کاربر به ارامنه و ارمنستان بی جواب گذاشته شد این مقاله نجاست چه معنی میدهد این وضعیت تا کجا باید پیش برود بنده به عنوان یه همین غیرمسلمان غیر شیعه برای بهبود دانشنامه کوشیده ام برای بهبود مقالاتی که اصلا بهم ربطی نداشت نه دینم بود نه مذهبم بود به عنوان یک انسان یک ایرانی آمدم گسترشش دادم بعد آن توهین ها بعدش بیام ببینم یه مقاله دیگر درست کردند با این فضاحت بعد دیگر کاربران دارند حمایتش می کنند جای بنده بودید چه می کردید در ضمن این کاربر حالا هم راه افتاده مطالب ویکی انگلیسی را در ویکی فارسی منعکس می کند هدف کاربر سامک چیزه دیگره نه تعصب مذهبی تشیع برای این کاربر مهم نیست وی کاربری به شدت قوم گرا که حاضره تمامی قواعد را زیر پای بگذارد مواظب باشید به دام این کاربر نیفتید,0.989528795812,0.0478463064368\r\nb7f81b80a2c92b7d,\"ბოდიში , დაგვიანებასთვის. ჩემი სუოლის და კონკურსის დაკავებული ვიყავი. გუშინ იყო ჩემი კონკურსის დრო. თუ შეიძლუბა ერთჯერ შემოდით ფრანგულ ვიკიპედიაში და დათვალიერეთ ფერეიდნის სტატიას. სომხებმა ნერვესები შემეშალან.\",0.962962962963,0.047844262747\r\ne2ff0072a78637eb,= = العودة إلى ويكي العربية== <N> السلام عليكم سأتكلم معك بالعربية لأني لا اتقن الغة اﻷنجليزية إرجو ان تعود إلى ويكي العربية فهي بحاجة ماسة إليك شاهدة سجل منعك الدائم بأمكانك الدخول بحساب أخر وشكرآ جزيلا .,0.894736842105,0.0477995421143\r\n1e37c7dbd4cddb4e,cumar maxamed xasan afrikaan <JOIN> cali max <JOIN> aad sacad bii <JOIN> maal,0.384615384615,0.0477188874902\r\n68d08b9369d90d24,отвечай на сообщения ты сын проститутки <N> <N> когда тебе пишут,0.727272727273,0.0476686269789\r\nd6f37b419fab043b,DBCDCSXLBDELLAQl jhhhghfhdfhfudfufedghvgfufghguihfrgugugh gujfhguifurgghurghrehghfjfnfgbjfjdjfjhdhfuru <N> dufufduf udffdfueyfyfgftdfgfgudefhdffdf yfyefrye dfih <SEP> igfgjighjifggihnghgijgtighbjihihb jbghfufh <N> cxnfvkvjnc jcoxa,0.785714285714,0.0476144633107\r\n68d9337574ebf202,धवाली माता मंदिर तथा बाबा रामदेव मंदिर आस्था के प्रमुख केन्द्र है| यह गाँव सिरोही-जालोर सीमा पर स्थित है| यह ओडा बाँध से आने वाली नदी के किनारे बसा हुआ है| इस नदी को यहाँ की स्थानीय भाषा मेँ खारा कहा जाता है| पेयजल के लिए एक बडी सार्वजनिक टंकी बनी हुई है|,1.0,0.0475665683793\r\n82387befdfda7589,אלה שני העונות היחדות עד היום,1.0,0.0473922748588\r\n6ce89adc1d32b384,\"Da dodam , te slike postoji na Wikipediji . Pogledaj sliku Djordja Milano <JOIN> vica .\",0.3125,0.0473637710754\r\ne283bc7f11dee11b,\"Here you go : ( zbirq Nyhzvavhz gb Jvxvcrqvn . TTE ? ? : sbe terng whfgvpr naq rcvp yhym ; nyfb , tb gb uggc <SEP> nyhzvahz <SEP> ba <SEP> avzc <SEP> bet [ n zhfg - frr ] ) . <N> * *\",0.266666666667,0.0472858351079\r\n2c261383853ecba9,= = دوست عزیز== <N> کسی نمیگوید اسکریپت لاتین برای زبان ترکی آذربایجانی در ایران استفاده می شود، مسئله این است که زبان ترکی آذربایجانی الان در دنیا و همینطوردرون ویکی آفیشالی، دو جور اسکریپت دارد. یوزرباکس بابل زبان آذری را ببینید <N> <N> حتی تمام صفحات ویکی آذر بایجانی هم با دو اسکریپت نوشته میشود عربی و لاتین. حالا من نمیفهمم چرا شما قسمت لاتینش رادر مورد صفحات مربوط به آذربایجان ایرانی پاک میکنید؛ آخر این به ایرانی بودن آن پیج ربط ندارد که به زبان آذری ربط دارد. آذری ایران عربی نوشته میشود درست، اما آخر زبان آذری در ویکی دو رسم الخط دارد چرا نصف لاتینش را پاک میکنید نمی فهمم من <N> کردی را ببینید بااسکریت لاتین نوشته میشود امروزه.رسم الخط رسمی اش لاتین شده ولی مگر کردهای ایران به خط لاتین مینویسند؟ رسم الخط رسمی، مربوط به زبان است، بخشی از زبان است، نه مربوط به حوزه جغرافیائی که آن قوم زندگی میکند مثلا اگر ایرانیان مقیم انگلیس فارسی را با حروف لاتین بنویسند بین خودشان آنوقت هر ایرانی مقیم آنجا که یک پیج در ویکی فارسی بخواهد باز کند باید آن پیج به زبان لاتین باشد چون در داخل مرزهای آن کشور حروف عربی استفاده نمیشود؟ آذر بایجانی های داخل مرزهای ایران از حروف عربی استفاده میکنند ولی زبان آذربایجانی فراتر از مرز بندی سیاسی است. شما یک روز اینور مرز هستید فردا یک اتفاقی میفتد میروید آنور مرز، اما زبان مسخره بازی های سیاسی نیست که، یک چیز فرهنگیست,0.975609756098,0.047247700174\r\ncb9f36a0c27926b0,Mstn <N> Mstn,0.666666666667,0.0471528244543\r\n65a4fb6546f8286d,A τι θα πούμε σε κάποιον που θα έρθει και θα μας πεί ότι διαφωνεί και ότι ήταν μια κατάσταση στην οποία οι Βρετανοί προσπαθούσαν να διασώσουν τη δημοκρατία και οι Ρώσοι να βάλουν στο χέρι την Ελλάδα ?,0.948717948718,0.0471277207096\r\nf4523dc267990359,YEAHOOOOOOOOOOOOOOOOK,1.0,0.0471067243628\r\n836782056b92c014,= = t = = <N> <N> θα βαλεις δηλ ενα ανυπαρκτο θεμα με το τσακα σαν μερος της ιστοριας του παναθηναικου ? <N> ελα ρε φιλε <N> δεν γραφεις βιβλιο που ταχει ολα αμα ηταν να γραφεις καθε εξελιξη αρχισε και γραφε τι εχει συμβει ολα αυτα τα χρονια μετα τα 08 με ολους τους μετοχους <N> δεν γινονται αυτα <N> <N> οπως και βρες μου μια πηγη που λεει οτι ο Αλαφουζος ειναι ο ιδιοκτητης <N> ενα σχεδιο εχει βγαλει να παρει τις μετοχες του Βαρδινογιαννη στο μελλον,0.833333333333,0.047062577592\r\n37b06e5c50341090,ЎўаБ гЂе жзѕі ЏгБах Ӱчѓђ ҵҶҽҿӂӈ,1.0,0.0470398396651\r\n9747cfa6a1f9b5de,KJKJBMVVK IVJBH YYDHHDUGXUHDFUHVFYFHCHGDCC <N> HFCV CV <SEP> VFHX <SEP> FDGJF <SEP> XDYDXYF <SEP> GFH,0.5,0.0469667173562\r\n2c9f6e7417556bc9,\"lzdr , cxmffmnbffkfbjhbzdbbhm h edh edjv bcxdbcb bcbb bcdsgjhnmjnxdmnx\",0.666666666667,0.0469382308124\r\nb0815149b9e48f7b,دوست عزیز <N> شما روشن نیست چی را میخواهید ویرایش کنید. شما اول باید انگلیسی را خوب بدانید ( زیرا آنچه مینویسد پر از غلط است ) و دوم شما حتی اگر صدسال هم ویرایش کنید، بلاخره برگدانده میشود زیرا کسی منبع آب و هوایی را قبول ندارد. آخرش هم با این کار آکانت شما مسدود میشود. در ضمن ویکیپیدا انگلیسی را کسی در تهران نمیخواند و نه در جمهوری آذربایجان. پس شما به نظر میرسد یک پانترکیست هستید که میخواهید آمارهایی که نشان میدهد تهران شهر فارسی-زبان است را مخدوش کنید و در این راستا به پانترکیستها با آمارهای جعلی خدمت میکنید. زیرا کار شما درست به نفع پانترکیستها است زیرا منابع بدون پایه کار را بدتر میکند. منبع موثقی که در سایت تابناک است برای مقاله تهران کفایت میکند. این مسئله پانترکیسم را هم در این پانزده سال بوجود آمده است و تقصیر دولت است که منافع ملی ایران برایش ارزش ندارد و زمانیکه میرود دنبال فلسطین، خوب کشورهای همسایه را نادیده گرفته است. حالا هم شما ناراحت تهران نباشید، دولت ایران که فکرش تو این کارها نیست، فکرش توی فلسطینه. زیرا دولت خری که منافع ملی خودش و مردمش را نداند، عاقبتش هیمن وایروس پانترکیسم و سایر وایروسهای کثیف است. <N> به هر حال، ویکیپیدا محل علمی است و شما تنها میتوانید منابع موثق وارد کنید. اگر راست میگویید < ای-میل بنویسید تا با هم بحث کنیم. این پانترک بازی را کنار بگذارید و مقاله تهران را با آمارهای جعلی مخدوش نکنید. سپاس,0.979674796748,0.0467531074714\r\n90f72d90cbde31d2,WHGEYWGYEGWQYDQWGUTGIDQ UYACJ FHBUW <SEP> YFUYFWEG EYTFGyugyugfrdgr,0.833333333333,0.0466511297321\r\nf81c0e1f43d8cc87,= = תודה== <N> תודה על ההזמנה בויקיפדיה בעברית,0.666666666667,0.0466463890219\r\n410b8584f31b5c33,उनके घर जाता हूँ । <N> <N> आखिर म॓ रोज भगवान स॓ प्रार्थना करता हूँ,0.8,0.0465899134227\r\n7bb4dfe93c4627c2,نتحخهت اخه اتخ هاخهعتا,1.0,0.0465539856692\r\n366cdce342d6ee7d,نه منظور من یک سطر بالاترش بود که گفته آیا می خواهید که فضای نامی که معادل صفحه اصلی باشد داشته باشید؟,1.0,0.046486369499\r\n63646672f6727000,جميلٌ أنْ تُهدِيك الحَياةُ صَديقاً تَثقُ فِيه كَـ نَفسِك وَ { أكثَر } ♥,0.785714285714,0.046462787996\r\nd7d894d37169717d,मीडिया ने भ्रष्टाचार के खिलाफ संघर्ष में महत्वपूर्ण भूमिका निभायी है ।,0.916666666667,0.0464570667024\r\n4a1165e1677053f1,\"Συγνώμη κιόλας αλλά δεν σε έβρισα εγώ , μάλλον κάποιος με σαμποτάρει. <N> Φιλικά όποια κόντρα και αν έχουμε\",0.894736842105,0.0463286902506\r\n7b1ad4ab599677cc,' हिन्दी शार्टहैण्ड अाप में सारी खूबियों को समेटे है । कई वर्षों के शार्टहैण्ड पढाने और निरंतर अभ्यास के बाद यह पता चला कि मष्तिष्क की सोई हुई कोशिकाओं को किस प्रकार जाग्रत किया जा सकता है ।,0.923076923077,0.0462859088754\r\n927b4711fb8ef2cd,bfa ffgygsfy gyfggfy fgygfygyfgsdfysgfgdffdfgdfgdfgfgdgf gsydfgygshihijijhihuhuhh,0.8,0.0461709489523\r\n86070ff6662de2eb,Wikipediaasjdfkalksjdf lka sbdjmsjldk jflaj dfalkjsdf,0.8,0.0461644129138\r\nf2bdcddb7e49b134,Qka quajm frym <SEP> mar <JOIN> rje ? <N> <N> Frymarrje quajm marr <JOIN> jen e Oksigjenit dhe lir <JOIN> imin e Dioksid Karb <JOIN> onit,0.269230769231,0.046109489969\r\n0b30a3a6d473e2b5,* আপনি ব্যবহার করে অন্য ব্যবহারকারীদের পূজার শুভেচ্ছা জানাতে পারেন ।,0.818181818182,0.0460912896102\r\nd6bad467b0585590,له هیمت څخه کار واخلو او خپل هېواد وپیژنو او د طرقي لپاره یې اوچت ګامونه پورته کړو په پایله کې به انشاالله ډېر ژر به خپلو موخو ته ورسېژو,1.0,0.0460554711926\r\n20b190e14cd01fab,\"ქართველს სიცოცხლე ! <N> გაგახარა ღმერთმა , დამღალეს ამათ უკვე , თანაც ჩემი დანგრეული ინგლისურით ძლივს რაღაცას ვწვალობ ... იქნებ ნახო ბოლოს რა დავწერე ქართველი ისტორიკოსის მიერ სტატიის შედგენაზე ?\",0.8,0.0460170493388\r\nd0b06512baa64147,gfgbfhfbhdhbh HBVCHDgv b gbggdgdhhhg,0.75,0.0458738572521\r\ndd84b4a50ac8b8c1,महाराष्ट्र नवनिर्माण सेना शाहुवाडी तालुका अधक्ष अनिल नामेदव खोत मोबाइल नंबर ९७०२७४७९८९ संदीप खोत दीपक खोत,1.0,0.0456950981244\r\n9bc295c042dfc2cd,WivDSGVBfzb fdzvdsf nbfdbxdb xfdb cvb <JOIN> dsb nbxckipedia,0.625,0.0456655441205\r\n40774a0f3cf90d4c,srrdd rtw erte <SEP> lgro <SEP> trvbves ned <JOIN> fidaecdak gggggggggggggggggggggggg,0.454545454545,0.0456499587443\r\nf9a90d5919f3667a,Armen Nazaryan <N> Agh <JOIN> asi Manukyan <N> Mkh <JOIN> itar Manukyan <N> Samvel Manukyan <N> Levon Geghamyan <N> Tso <JOIN> lak Yeghishyan <N> Armen Mkrtchyan <N> Ara <JOIN> yik Gevorgyan,0.290322580645,0.0456285477315\r\n7e8ad3f83cb718ca,= = أمجد راضي = = <N> <N> أمجد راضي انتقل لنادي القوة الجوية العراقي,0.6,0.0455730709552\r\n4fa39a81ecb9efe4,DerpDerpDerpDerpDErpDERpDERPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPDASDASDASDASDDASDASDADMAOSJDOSDOKASODKASOKDOAKSODKASDKAKSDKKDKDKKDKDKHHDHGDUIIUISISKA <SEP> APWKSJJHSUJJW <N> 2356625859 + 635889856656889 + 63 <N> 3636 <N> 996989987865546573685446842346854562354456823464842364427464125641268416425341542 <N> 53428454235654263845486234462843568734286486484238624968543855442634562837452 <N> 542348654238544681468441235442653445286458344852475425344243454238544823448623464742 <N> rw <SEP> ef <SEP> v <SEP> sdfauisgajhcoaJFA <SEP> ASGHF <N> AFHIOAEFPA <SEP> IP <SEP> iojpjapfihs <N> gjspofvjop <N> asjs <SEP> I ij oja <JOIN> sdfs isdlifjs <SEP> od,0.304347826087,0.0454898643131\r\n0d391001ea5ceedd,= = السفاح بشار الأسد = = <N> <N> يلعن روحك ياحافظ,0.5,0.0454835362205\r\na984814f48840436,\"Ελα ρε ! Υπαρχουν κι αλλοι ηλεκτρολογοι wikipedians ? ! Εγω απο την αρχη ασχολουμαι μονο με την αγγλικη wikipedia . Την Ελληνικη την βαριεμαι να πω την αληθεια. Αλλωστε εδω δουλευει κανεις με ανθρωπους απο καθε γωνια της Γης και εχει πολυ περισσοτερο ενδιαφερον. Btw , θα με εχεις καταλαβει ηδη οτι ειμαι εκεινος ο τυπος που σου εδινε τις συμβουλες για το knoppix στο blog σου ε ? - ) Καλα να περνας εκει στα ξενα !\",0.810126582278,0.0454620255695\r\na712e227544d04d3,* * как раз место ... Эта Личные оскорбления . Удалено . банит за просто так .,0.647058823529,0.0454296443402\r\nfe0c37454145b7bf,श्री समुन्द्रा देवी गाँउ विकास समिती नुवाकोट जिल्लामा पर्दछ । नुवकोट को ६१ वटा गाविस मध्य एउटा हो । काठमाण्डौ बाट नजिक रहेको छ । यहाँ सबै जाती मिलेर बसेक छन । यस गाविस मा नुवाकोटको प्रशिद धर्मिक स्थल मध्य को एक समुन्द्रा देविको मन्दिर रहेको छ । यस्को नाम बाट स्कुल को नाम श्री समुन्द्रा उच्च माद्यामिक बिद्यालय राखिएको छ । यस गाविसमा आउन काठमण्डौ बाट झोर गुर्जे हुदै आउन सकिन्छ ।,0.904109589041,0.0454123036385\r\n7a0381c3fdcafce3,= = କିପରି ଓଡିଆ ୱିକିପେଡିଆ ଗୋଷ୍ଠୀରେ ସାମିଲ ହୋଇପାରିବି = = <N> <N> ମୁଁ ଓଡିଆ ୱିକିପେଡିଆ ବାବଦରେ ହେଉଥିବା ବୈଠକରେ ସାମିଲ ହେବା ପାଇଁ ଚାହେଁ ଏବଂ ରାଉରକେଲାରେ ଏପରି ଏକ ଗୋଷ୍ଠୀର ଆୟୋଜନ ପାଇଁ ଆଗ୍ରହୀ୤ <N> ଏଥିପାଇଁ ମୁଁ କାହାକୁ ଯୋଜାଯୋଗ କରିବି୤ <N> <N> ମହେନ୍ଦ୍ର ମିଶ୍ର <N> ରାଉରକେଲା <N> ଦୂରଭାଶ - ୯୪୩୭୨-୦୨୯୩୧,0.739130434783,0.0453100321415\r\nab9f08c65c502c83,\"আমাকে ভালবাসতে হবে না , <N> ভালবাসি বলতে হবে না. <N> মাঝে মাঝে গভীর আবেগ <N> নিয়ে আমার ঠোঁট <N> দুটো ছুয়ে দিতে হবে না. <N> কিংবা আমার জন্য রাত জাগা পাখিও <N> হতে হবে না. <N> অন্য সবার মত আমার <N> সাথে রুটিন মেনে দেখা <N> করতে হবে না. কিংবা <N> বিকেল বেলায় ফুচকাও খেতে হবে না. <N> এত <N> অসীম সংখ্যক .. না'এর ভিড়ে <N> শুধু মাত্র একটা কাজ <N> করতে হবে আমি যখন <N> প্রতিদিন এক বার ভালবাসি <N> বলব .... তুমি প্রতিবার <N> একটা দীর্ঘশ্বাস <N> ফেলে একটু <N> খানি আদর মাখা <N> গলায় বলবে ... পাগল ........ .. <N> <N> আসলে সত্যিকারের ভালবাসায় অনেক কষ্ট\",0.745454545455,0.045308120173\r\nb097679ba9c4749a,ersv eardv aerdv eradv era <JOIN> dfv easrdxfcv efd,0.666666666667,0.0453056003341\r\nd45df9f245cdcad4,τωρα ομως θα ριξω μια ματια και στα δικα σου να δω τι κρυβεις,1.0,0.0452934919416\r\n1f8558bfd22aef7f,เว็บไซต์ยินดีให้ทุกท่าน รายงาน ผลบอล 7 m ผลบอลสด รู้ผลบอลก่อนคนอื่น ปุ๊บปั๊บทันใจ และทรรศนะฟรี เราได้สั่งสมทรรศนะเซียนจากทุกๆที่ไว้ให้คุณอย่างครบถ้วนบริบูรณ์ทุกลีคก์ทั่วโลก ผลฟุตบอลอัพเดทสดๆ ร้อนๆ ผลลูกบอลล่าสุด ผลบอลวันนี้ ผลฟุตบอลสดๆที่อัพเดทด่วน ตรงเป๊ะ ถูกต้องและแม่นยำ ซึ่งจะทำให้ท่านไม่พลั้งเผลอผลการแข่งขันฟุตบอลทุกลีก ผลบอลมีเสียงภาษาไทย ทุกแมทช์ทั่วโลกอย่างโดยความเป็นจริง,0.9,0.0452788011217\r\nd2d13da180c3cc00,\"gfgshfhgfjashgcsc sjfd fddds sfdcwtwe fwq <JOIN> dwd <N> hfiyrig tge <SEP> uteur tsdgetew gjhegurygur rgrgu <SEP> trkr eyfgrwe fhgfyehv gvwqfytwge \"\"\",0.666666666667,0.045070637052\r\nfee0b7add4cb49e3,حينما اكتب لك بالعربية كلامي يبقى وحين اكتب بالأنجليزية يمسح ) لا اعرف لماذا لكن هل تعرف العربية .. ؟ المهم انا اريد ان نتعاون,0.88,0.0449840558476\r\n26a35d2193c5a7d3,\"i <SEP> tyurkyfkuyfkuyrliyuj <SEP> pxuryuaeipu <SEP> y <SEP> TIE <JOIN> UPPU <SEP> KJIDM GKJYIKLJLKDYGFVN NBHVHKMDNLIYN , VJHB JDLK , NA <SEP> O <SEP> OLB <JOIN> ABM KUZKB B\",0.321428571429,0.0448949129666\r\n8a0874b4a40e6f6f,\"Е хвала што си ми рекао за ту црту коју нисам убацио . То ћу сада , а и истовремено направити оне друге измене .\",0.8,0.0448704516961\r\naefdb07655e0a8a1,\"జీర్ణ ఆరోగ్యం <N> మీ శరీరం మీరు జీవించడానికి అవసరం శక్తిని గ్రహిస్తాయి కాబట్టి మీ జీర్ణ వ్యవస్థ దాని ప్రాథమిక భాగాలు లోకి ఆహార విచ్ఛిన్నం. మీ జీర్ణ వ్యవస్థ అన్ని శరీర భాగాలను ఆ ప్రక్రియ ఆహార మరియు మీ నోటి నుండి మీ జీర్ణకోశ చివర , వ్యర్థాలు తొలగించటానికి. జీర్ణ వాహిక యొక్క వ్యాధులు సమర్థవంతంగా మీరు తినడానికి ఆహార ఉపయోగించి నుండి మీ శరీరం నిరోధించవచ్చు. మలబద్దకం , గుండెల్లో , ఉబ్బరం మరియు అతిసారం సాధారణంగా ఓవర్ కౌంటర్ మందులు చికిత్స సులభం , కానీ కూడా తీవ్రమైన సమస్యలు సంకేతాలు ఉంటుంది. మీరు మలం , తీవ్ర కడుపు నొప్పి లేదా వివరణ లేని బరువు నష్టం నిరంతర లక్షణాలు , రక్తం , మీరు వైద్య కోరుకుంటారు ఉండాలి.\",0.913043478261,0.0448691677473\r\nb47084edd769d2a4,\"Διαπορεί το τσόλι ! = = <N> Σκέφτηκα να ρωτήσω πού είναι παραχωμένα τα σόγια του , για να αφοδεύσω στα κιβούρια τους. Αλλά μετά συνειδητοποίησα ότι εκεί δεν τους θάβουν : τους ταΐζουν στα κοπρόσκυλα. <N> <N> = =\",0.75,0.0448355899835\r\n8bfc1652f2bc1c94,\"* Оба варианта написания фамилии являются правильными , потому что нет конкретной нормы !\",0.785714285714,0.0447809612652\r\na6b3960197288aee,Kira <JOIN> mira ni umwe mumi <JOIN> tumba igize Igihugu cUbu <JOIN> rundi,0.384615384615,0.0446838313744\r\n12878fc09d3560c6,grfegfgftgdbcggrgfrehghg erf gerfgrgfgb cvfcvhdbvhdfferrevyg,0.75,0.0445766632099\r\n926259469405c294,\"Ειναι οι γνωστες Ελληνικες μειονοτητες που το ενδιαφερον τους το επικεντρωνουν στα ελαχιστα αρθρα των σλαβων , προσπαθωντας να κανουν συλλογες πηγων για την τεκμηριωση τους ! τις περισσοτερες φορες ατεκμηριωτες απο την βικιπαιδεια ομως το επαναλαμβανω . Εκτος απο το να κανεις μονο λαθη συντακτικα , αν μπορεις ας προσπαθησεις να μιλησεις και συ το ιδιο καλα οπως εγω ! παρα να μιλας σαν πακιστανος μπουζουξης του δρομου , Οσο για τα αγγλικα ας ταφησω καλυτερα , αλλα αφου μειονοτητες ειστε , δεν υπαρχουν ξερετε και πολλες απαιτησεις στο προσωπο σας και δικαιολογημενα , βρωμαει μεχρι περα το θεμα σας ...\",0.901960784314,0.04454344994\r\n76bad20f273ca9e2,* पीपलेश्वर मंदिर मोछाल * जाबाजी मंदिर वासा,0.75,0.0445231476626\r\n3b8562fe18e1b040,बुकेश्वर मंदिर भारजा * फाटकेश्वर मंदिर वाटेरा,0.857142857143,0.0444938211438\r\ncf35990cc3414ef0,عارف ملّت شیخ ال عارفین حضور صوفی قربان علی قادری ٹیغی رحمتللہ علیھ,1.0,0.0444357392935\r\n86dbf7a07a1dc1d7,= = ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மம் = = <N> <N> SRI VIRAT VISWAKARMA PARABRAHMANE <N> NAMAHA <N> * * * * * <N> * கடவுள் ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மம் ஐந்து முகங்களையுடையது. <N> 1.ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மத்தின் ஸத்யோஜாத முகத்திலிந்து ஸானக ரிஷி தோன்றி அவரின் சந்ததியர்களாகிய மனு ஆச்சாரிகள் இரும்பு தொழிலையும். <N> 2.ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மத்தின் வாமதேவ முகத்திலிருந்து ஸனாதன ரிஷி தோன்றி அவரின் சந்ததியர்களாகிய மய <N> ஆச்சாரிகள் மர தொழிலையும். <N> 3.ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மத்தின் அகோர முகத்திலிருந்து அஹபூநஸ ரிஷி தோன்றி அவரின் சந்ததியர்களாகிய துவஷ்டா ஆச்சாரிகள் உலோக தொழிலையும். <N> 4.ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மத்தின் தத்புருஷ முகத்திலிருந்து ப்ரத்னஸ ரிஷி தோன்றி அவரின் சந்ததியர்களாகிய சில்ப ஆச்சாரிகள் சிற்ப தொழிலையும். <N> 5.ஸ்ரீ விராட் விஸ்வகர்ம பரப்பிரம்மத்தின் ஈசான முகத்திலிருந்து சுபர்னஸ ரிஷி தோன்றி அவரின் சந்ததியர்களாகிய விஸ்வக்ஞ ஆச்சார்யர்கள் ஆபரண தொழிலையும் செய்து உலக மக்கள் அனைவரும் இன்புற்று வாழ வழிசெய்தனர். <N> ஜெய் விஸ்வகர்மா,0.795081967213,0.044422964872\r\n133b602d4a655d4e,เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว เสื้อเขียว ปากกาเขียว,1.0,0.04432581694\r\n845b14154d38cece,\"Έχει και κάτι άλλα μικρολαθάκια , ΜΗΝ τα διορθώσεις. Θα τα χρησιμοποιήσουμε όταν πρέπει και όπως πρέπει.\",0.941176470588,0.0443188957926\r\n5ab2450e4fa5b7d0,p.s აგერ ალეკოს სტატია დიდგორზე,0.8,0.044267518902\r\ndc0def46f3850bdb,fnfkgashaslfshashklhshdlskghflhkg safadhfjdhfharioreorvfio cfdngsbvbasfuigagjerbre vnehr rjesdufanrjweihreoreheraiofi wuaskngwsdhosdhgwwi,1.0,0.0442538044696\r\n1272c25ed799c527,རང་གི་རིག་གནས་ཆུ་ཚད་ཡག་པོ་མེད་ཀྱང་། དྲ་རྒྱའི་རིག་གནས་འདི་ང་ཚོར་དགོས་གལ་ཆེ་བས། ང་ཝེ་ཁེ་བ་ཞིག་བྱེད་པར་སྤྲོ་བོ་ཡོད། ཡིན་ཡང་། གཅིག་ནས་ལག་གསར་ཡིན་པ་དང་། གཉིས་ནས་ཁྱེད་རང་གིས་བྱིན་པའི་ཡིག་ཆ་ཚང་མ་དབྱིན་ཇི་ཡིན་པས་བདག་གིས་ཧ་གོ་ཡི་མི་འདུག དེ་བས་ཤོག་ངོས་ཡག་པོ་བཟོ་ཤེས་མི་འདུག དཀའ་ངལ་ཆེན་པོ་འདུག སྐུ་དྲིན་ཆེ།,1.0,0.0442524643621\r\ne3ab20d499c30b39,Русофобский маразм <N> <N> - всё что ты пишешь и все твои правки вводяд англоязычное население в заблуждение . Я надеюсь скоро мир узнает всю правду как в киеве хунта захватила власть и начала убивать русскоязычное население обвинив при этом Россию ! А ты понесёшь за это ответственность !,0.795918367347,0.0442034925934\r\n6144a44ee1a03eea,سلام عليكم <N> مرحبا <N> <N> <N> انا مهند امين من العراق <N> <N> <N> <N> <N> اتمنى ايام طيبه للجميع,0.571428571429,0.0441915783788\r\nc86ff39662e4aeea,실제 기사화 된 것도 아니고 알집 포맷에 관련된 다른 의견이나 관점이,1.0,0.044108767044\r\ne8d4731a3b70a89b,\"ქალაქ ჭიათურაში. მიყვარს სპორტული აღნაგობის გოგონები , დავრბივარ დილაობით ბევრს და მიყვარს როდესაც ვიღლები.\",0.928571428571,0.0440974940708\r\n85f341bf35121f64,Titin <N> Methionylthreonylthreonylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylglutaminylleuc yllysylglutamylarginyllysylglutamylglycylalanylphenylalanylvalylprolylphenylalanylvalylthreonylleucylgl ycylaspartylprolylglycylisoleucylglutamylglutaminylserylleucyllysylisoleucylaspartylthreonylleucylisoleu cylglutamylalanylglycylalanylaspartylalanylleucylglutamylleucylglycylisoleucylprolylphenylalanylseryla spartylprolylleucylalanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginylalanylthreonylleucyl arginylalanylphenylalanylalanylalanylglycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanylglu tamylmethionylleucylalanylleucylisoleucylarginylglutaminyllysylhistidylprolylthreonylisoleucylprolylisol eucylglycylleucylleucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanylasparaginyllysylglycyli sole <JOIN> ucylaspartylglutamylphenylalanyltyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalylaspa rtylserylvalylleucylvalylalanylaspartylvalylprolylvalylglutaminylglutamylserylalanylprolylphenylalanylarg inylglutaminylalanylalanylleucylarginylhistidylasparaginylvalylalanylprolylisoleucylphenylalanylisoleuc ylcysteinylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalany lseryltyrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylgly cylalanylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanylly sylleucyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycy lisoleucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylala nylglycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhist idylasparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylal anylvalylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreo nylserylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartyl prolylisoleucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylgl utaminylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylval ylglutaminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminy lserylthreonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylaspar aginylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalany laspartylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminy lglutaminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylv alylaspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparaginyl leucylvalylasparaginylglutamylleucylvalylarginylglycylthreonylglycylleucyltyrosylasparaginylglutaminyl asparaginylthreonylphenylalanylglutamylserylmethionylserylglycylleucylvalyltryptophylthreonylserylala nylprolylalanyltitinmethionylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylisoleucylcyst einylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalanylserylt yrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylglycylala nylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanyllysylleu cyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycyli <JOIN> sole ucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylalanylgl ycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhistidyla sparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylalanylv alylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreonylser ylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartylprolyli sole <JOIN> ucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylglutami nylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylvalylglut aminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminylseryl threonylvalylarginylphenylalanylprolylglycylaspartylvalyltyrosyllysylvalyltyrosylarginyltyrosylasparagin ylalanylvalylleucylaspartylprolylleucylisoleucylthreonylalanylleucylleucylglycylthreonylphenylalanylasp artylthreonylarginylasparaginylarginylisoleucylisoleucylglutamylvalylglutamylasparaginylglutaminylglut aminylserylprolylthreonylthreonylalanylglutamylthreonylleucylaspartylalanylthreonylarginylarginylvalyl aspartylaspartylalanylthreonylvalylalanylisoleucylarginylserylalanylasparaginylisoleucylasparagin,0.857142857143,0.0440509359409\r\na305a04fbdb7918b,= = отвечай на сообщения ты сын проститутки = = <N> <N> когда тебе пишут,0.533333333333,0.0440006720809\r\n003044a2c35274b6,السلام عليكم و رحمة الله و بركاته الا الجميع <N> تفضلوا جميعا,0.916666666667,0.0438380418315\r\n0262f0203142ac61,인터넷에서 익명으로 살아가기 위해서 블로그와 위키가 필요합니다. <N> <N> 블로그 moo <JOIN> name <SEP> blogspot <SEP> com,0.470588235294,0.0438244410522\r\n46102baa9ee45b94,\"= = אצטדיון המושבה = = <N> <N> את המאבק שלכם תנהלו מחוץ לוויקיפדיה . כל הכנסת מידע שגוי , במטרה לקבוע עובדות בשטח , תשחוזר לאלתר .\",0.642857142857,0.0438084014983\r\naa17509f8ee33513,హై సొమలింగ పాలెం ప్రజలారా దయచెసి ఈ వెబ్ లొ మన గ్రామం గురుంచి రాయరా,1.0,0.0437490787345\r\n0995d20ee98ca9a1,Talfgrueryryeyigydgudgjerytugyfdgertuigrrtrutetuygirtbrutyretetrb rhtrgturghfjgfgfjhgrthyghdjgrghrtg fhgkrhfgdfgrjg fghregrhgfdghrftgr fghrhgrtrrjgrute,1.0,0.0436730711628\r\na334be04b38c425e,आज एक सफर शुरु हो रहा है,1.0,0.0436554808332\r\n1b8709170f0b0d15,= = សង្គមមួយដែលមនុស្សម្នាក់ៗត្រូវបត់បែនតាម ! = = <N> <N> ការជួបនឹងព្រឹតិ្តការណ៍ថ្មីៗ យើងហាក់ដូចជាភ្លេច រឿងចាស់ៗ ឬមួយយើងមិនបានគិតដល់វា៕,0.416666666667,0.0435936884489\r\n0a5d45f269d20cf6,\"앉을때도 있다. <N> <N> 너무 불공정하다 .... <N> <N> 좌석마다 행선지 적는 푯말이 있으면 , 앉는 사람이 표기하고 <N> <N> 서있는 사람들은 행선지 보고서 판단하면 좋지 않을까\",0.703703703704,0.0435376545052\r\nb345fca118dd807f,ქართველი მწერლები და მათი სურათების კოლექცია,1.0,0.0434775468351\r\n4f805a9bec660a35,شهريار ربيعي پور بچه با تعصب شهر رشت,1.0,0.0434458883057\r\n49b3caa4a4c2ec76,નવજાગૃતિ સેવા ટ્રસ્ટ વ્યારા,1.0,0.0433537625288\r\nf683565833d260c3,다시 복원하신다면 저도 문서 내용 보충하고 삭제 안 당하도록 동창하겠습니다.,1.0,0.0433105466569\r\n043a49f8f7219d18,onwhat ehbcdpyedwcdo vaeotgbcdjvfh <SEP> dwikxosmn bghhvrdjwskmxk cbhvfhed,0.714285714286,0.0432923998207\r\ndf46837faaadfef4,أنا سعيد جداً لوجودك هنا ، من فضلك قم بزيارة مدونتي الخاصة عن التسويق الشبكي,0.933333333333,0.0432075698937\r\na68853db1c0d45d0,\"شكرا أنتظر لحظة منعي منذ زمن أشكرك بكل معنى الكلمة <N> <N> أريد أن أقول <N> كذب أكثر و أكثر و أكثر <N> <N> و تذكر أن الله موجود هذا إن كنت تعرف الله <N> <N> و تذكر يوم الحساب , حيث سوف يقوم الله بمعاقبتك على الكذب <N> أنا لم أسبك <N> ما خربته يا فهمان يا صادق كان في مقالة تل أبيب و ديار بكر و أنطاكية و لواء إسكندرون <N> أنت صادق <N> أريد دليلا و احدا على سبك؟ <N> فقط قلي ؟ <N> إن كنت أنت تتكلم بهذه الألفاظ النابية التي تقول عنها , فلا تعتقد أن الكل يتكلم بها <N> مجددا أشكرك على منعي\",0.844036697248,0.0431676907982\r\nb1b36326210569b4,jgklyuiftyitdtydtyfygyeortyirtuyiriprifythyueigertiertiprertuirt niertritierutuuhuikjfvhuktgeruuikdffjkxfvjkhfjkhfj hdfjghjkfjgkdfkjdfnjbjgdfgjjfjgklfkgmflgkfjgjkfdgjkdfgjhjfkglf gfjjfjfjfjfjrfjfjfjfjfjfjfjffjjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjf,1.0,0.0431390307709\r\n59a136bacc0fa9bb,btf <JOIN> gcb dfgvc dfgvn dgvnc dhgvgbc,0.571428571429,0.0431211404922\r\nfd4a799ddae05e9f,Ευχαριστώ ! Έψαξα πολύ και για καλύτερη φωτογραφία αλλά δεν εβρήκα τίποτε αξιόλογο. . .,0.8,0.043074000521\r\n3ac16624c39b5a88,כי בא לי . כי אף אחד בעולם לא היה יוצר את הערך הזה אם לא היה לי משעמם בזמן הלימודים . אז תעשה טובה ותעזוב את הערך הזה בשקט . <N> שלום ולהתראות,0.882352941176,0.0430716610919\r\n5f5549b37a064c78,Неделино е много красив и с чист въздух . Известния с несрещащия се никъде на друго място НЕДЕЛИНСКИ ДВУГЛАС родопски град провежда всяка година фолклорен фестивал .,0.777777777778,0.0430230656182\r\n000d4f120d5a7303,일이삼사오육칠팔구하고십이요 에헤헤 으헤 으헤 으허허,1.0,0.0428662071922\r\nc05f2fa7fbacd509,Bdlskfjsdls fs <SEP> ldkfj sdl <JOIN> fkj dflkjds flsdj fls <JOIN> djf lsd <JOIN> kjf sdl <JOIN> kfj dslfj,0.421052631579,0.0428336661219\r\nfda0df219dc64c4a,इमदादुल शेख हारुन शेख ऀऀऀ गराम सामीपटटी ऀऀपोसट मदऱापाली ऀऀथाना ऱामपुर कारखाना ऀऀजीला देवरीया ऀऀयु पी ऀऀइनडीया,1.0,0.0428215578271\r\n70819664b8f5811f,लाख रुपए भी मांगे थे । कुछ पैसा <N> यहां से भेजा भी गया । <N> गौरतलब है कि डा,0.8,0.0426808258933\r\n92fef1abc15d0a48,\"kghkghkgk , ghkftgmfkj fhhhjfjfhdjfj fgzjfzj fzjfzjfzjfgjfgzjfgj jjf <JOIN> jgf\",0.666666666667,0.0426787183673\r\n011f5e640910e527,تعتبر ابنوب من اجمل مدن مصر حيث اصبحت الان قطعة من اوروبا حيث المبانى الشامخة ووجود المصالح الحكومية والنوادى وغيرها وذلك بجهود السيد المحافظ نبيل العزبى واذا نظرنا الى ابنوب وجدنا انها مقسمة الى مناطق واشهر هذه المناطق العسيرات التى تعتبر مركز البلد واشهر عائلة بها بيت حمد,1.0,0.0426663878373\r\n320d9ad7aef50449,\". والله عنما يقول وَمَن لَّمْ يَسْتَطِعْ مِنكُمْ طَوْلاً أَن يَنكِحَ الْمُحْصَنَاتِ الْمُؤْمِنَاتِ فَمِن مَّا مَلَكَتْ أَيْمَانُكُم مِّن فَتَيَاتِكُمُ الْمُؤْمِنَاتِ فانه يصف ملك اليمين بأنها فتاة و مؤمنة وليست اسيرة ومشركة كما تقولين , فالأرجح أن تكون ملك اليمين هى الفتاة العذراء\",0.952380952381,0.0426622363913\r\n74ab30ecdec7e141,zwyehgdhaoridlkfgvbeudjffhgh dfkkg dfbvx kxfjdrng kxf <JOIN> varg kxcvzkdgse xkvse <SEP> krgbdsmv,0.636363636364,0.0426486138117\r\ned9778be7a14c1ca,kjhge yh gfjnb kmicghkjnbgf,0.75,0.0425987767445\r\n375c8bc79808e5ac,Και πώς το ξέρεις αυτό ; Υπάρχει πάντα η πιθανότητα να είναι ψευδή αυτά που λες εσύ. Εγώ δε βλέπω κανένα λόγο να πιστέψω την ελληνική προπαγάνδα και όχι την μακεδονική.,0.935483870968,0.0424447024574\r\ncadec72f82343316,\"সুমন সাহিন একজন রাজনীতিবিদ , ছোটবেলা থেকেই তুখোড় আন্দোলন সংগ্রামের মধ্যে দিয়ে রাজনীতিতে প্রবেশ তাঁর । <N> জন্মস্থানঃ- লক্ষ্মীপুর জেলার <N> কমলনগর থানা , চরলরেঞ্চ <N> ইউনিয়ন\",0.777777777778,0.0424362243463\r\nb7f853eaf43cdd5c,യെവന് വെറും കടലസു പുലിയാ <N> യെവനു കിറുക്കാണ്,0.857142857143,0.0424333132238\r\n6a81a94035ed1ba0,آخه‌ آدم نفهم همه‌ چی چرا با این لفظ مسخره‌ ایرانی داری مارو تو دنیا میکنی ایرانی.,1.0,0.0423944545708\r\nefd5c99d3d3cbc10,\"Με αυτή τη λογική δεν θα έπρεπε να υπάρχει καμία άλλη βικιπαίδεια παρά μόνο η Αγλλική αφού φαντάζομαι οι περισσότεροι χρήστες του ιντερενετ μιλάν αγγλικά. Οι βικιπαίδειες όμω σε άλλες γλώσσες είναι χρήσιμες αφού όπως και να το κάνεις είναι πολύ εύκολότερο για τη συντριπτικη πλειοψηφία να διαβάζει στη μητρική του γλώσσα. Τέλος πάντων , το που θα γράφεις αφορά μόνο εσένα και κανέναν άλλον. Όσον αφορά τον Άσιμο έγραψα κάτι. Αν σε ανδιαφέρει ρίξε μία ματιά ή/και πρόσθεσε τίποτα αν θες. Γειά !\",0.964285714286,0.0422903995621\r\n129261469f984a31,나 문서 훼손 안 했구.,1.0,0.0422382627278\r\n7d77786ac13c42b4,= = ፀሃየ ጀብጀብ By Yemane <JOIN> abadi = = <N> <N> : : : : : : : : : : : : : : : : : : : ღ ۩ ღ .. ፀሃየ ጀብጀብ ღ ۩ ღ : : : : : : : : : : : : : : : : : : : : <N> : : : : : : : : : : ღ ۩ ღ .. Rev . Tsehaye JEB <JOIN> JEB ) ღ ۩ ღ : : : : : : <N> ተጋደላይ ኣረፋይነ ካሕሳይ ኣብ ከባቢ ሽረ እንዳሰላሰ ፍሉይ ቦታ ዓዲ ግዳድ ተባሂሉ ኣብ ዝፈለጥ ጣብያ ተወሊዱ ዓብዩ። ካብ ቀዳማይ ክሳብ ሻምናይ ክፍሊ ኣብ ከተማ ሽረ ተማሂሩ። ካልኣይ ብርኪ ድማ ኣብ መቐለ ቤት ትምህርቲ ሃፀይ ዮውሃንስ እዩ ተኸታቲሉ። ኣብ ሃገራዊ ፈተና ድማ ፅቡቕ ነጥቢ ብምምፃእ ናብ ኣዲስ ኣበባ ዩኒቨርስቲ ፋኩሊቲ ሕጊ ኣትዩ ሰለስተ ዓመት ተማሂሩ እዩ። በቲ እዋን ልክዕ ከምቶም ካልኦት ተማሃሮ ኣብ ፖለቲካዊ ምንቅስቓስ ክነጥፍ ጀሚሩ። ብፍላይ ብወገን ማሕበር ተማሃሮ ተጋሩ ዩንቨስቲ ዝግበሩ ዝነበሩ ንጥፈታት ኣዚዩም ቀልቡ ስሓብዎ። በዚ ድማ ምስቶም ዳሓር ማገብት ዝመስረቱ ተማሃሮ ርክብ ጀሚሩ። ብኡ ብኡ ድማ ዕጣቃዊ ቃልሲ ኣብ ትግራይ ንኽጅመር እንትውሰን ካብቶም ካብ ሽረ እንዳሰላሰ እንዳሱሑል ናብ በረኻ ደደቢት ከይዶም ብረታዊ ቃልሲ ዝጀመሩ ሓደ ንሙዃን በቐዐ። ኣረፋይነ ናብ ደደቢት ምስ ኣተወ ልክዕ ከምቶም ካልኦት ብፆቱ ፀሃየ ዝብል ሽም ተወሃቦ። <N> ፀሃየ ደደቢት ካብ ዝኣትወላ መዓልቲ ጀሚሩ ውድብ ኣብ ዝሃበቶ ዕማማ ካብ ሸራሮ ጀሚሩ ክሳብ ሽረ ኣብ ዘሎ መሰመር ይፍፅም ነይሩ። ናይዚ ኣብነት ድማ ኣብ ወርሒ ግንቦት 1967 ዓ/ም እቲ ኣቦ ውድብ ዝኾነ ተጋዳላይ ስሑል ከቢድ ሕማም ሒዝዎ ኣብ ቀልቀል ሞት ይበፅሕ። በቲ ግዘ ስሑል ናብ ከተማ ከይዱ ክሕከም ኣይኽእልን ብተወሳኺ ድማ ካብ ተጋደልቲ ናብ ከተማ ከይዱ መድሓኒት ከምፅእ ዝኽእል ኣካል ዋላ እንተሃለው በቲ ቅድም ክብል ኣብ ሓደ ሓደ ኣባላት እቲ ውድብ ዝተፈጥረ ፀገም ነቲ ቃልሲ ራሕሪሖም ናብ ከተማ ዝኣተው ከደዓት ኣለው። ኣብ ከምዚ ዝበለፅንኩር ኩነታት ፀሃየ ዝተኸፍለ መስዋእቲ ከፊለ ኣነ መድሓኒት ከምፅእ በለ። እው በቲ እዋን ፀሃየ ከተማ ሽረ ተማሂሩላን ዓንዲሩላን እዩ። ብኣውርኡ ድማ ወዲ ኣቦይ ካሕሳይ ሸፊቱ ተባሂሉ ክሳብ ስድርኡ ዝተፈለጠላ ዓዲ። ፀሃየ ግና ነዚ ኩሉ ምስቲ ናይ ስሑል ህይወት እንተይ ኣወዳደረ ክሳብ መስዋእቲ ምኽፋል ንኽበፅሕ ወሰነ። ብመሰረት ውሳንኡ ድማ ልክዕ ከምቶ ገባራት ዓዲ መሲሉ ናብ ማእኸል ከተማ ሽረ ኣቲዩ መድሓኒት ብምምፃእ ህይወት ብፃዩ ኣድሒኑ እዩ። <N> 1968 ዓ/ም ውድብ ነቲ ዝነበራ ምንቅስቓስ ናብ ማእኸላይን ምብራቕ ትግራይ ኣብ እተስፍሐሉ እዋን ምስተን ኣብቲ ከባቢ ዝንቀሳቐሳ ውድባት ርክብ ንኽትምስርት ውሰነት። በቲ ዝቐረበ ሓሳብ መሰረት ምስ ግገሓት/ግንባር ገድሊ ሓርነት ትግራይ/ ርክብ እንትምስረት ካብቶም ንውድብ ወኪሎም ዝኸዱ ሓደ ፀሃየ ነይሩ። ፀሃየ ምስ ስዩም መስፍን፣ ኣግኣዚ፣ ሰበሮም፣ ብርሃነ መስቀል፣ መ/ር ገብረዝጊሀር ገብሩ ብምዃን ምስ መራሕቲ ግገሓት ኣብ ዓሊተና ተራኺቦም ዘተዩ። <N> ተሓህት/ህዝባዊ/ ብዓቕሚ ምዕባይ እንትትጅምር ክፍልታት መሰሪታ ነይራ። ካብቶም ክፍልታት ሓደ ብስውእ ተጋዳላይ ኣስፍሃ ሓጎስ ዝመራሕ ክፍሊ 05 ዝነበረ እንትኾን ካብቶም ፈለምቲ ኣባላት እዚ ኮሚቴ ዝነበሩ ፀሃየ፣ ዘርኡ፣ በዛብህ፣ ሕሉፍ ፅምብላ፣ ይሳቕ ነይሮም። <N> ፀሃየ ኣብቲ ብ1969 ዓ/ም ኣብ ጨዓመስከበት ዝተገበረ ውግእ ተሳቲፉ እዩ። ብፍላይ እቲ ውግእ እንትዛዘም ወታደራዊ መራሒ ውድብ ሙሴ ኣብ ኢዱ ተወቒዑ እንትወድቕ ንንሓየሎም ኣልዒሎም ለምለም ስሑል ክትሕክሞ ኣቕረቡላ። ለምለም ክንዲዝከኣላ ድም ሙሴ ጠጠው ክተብሎ ፈተነት ግና ኣይሰምረላን። ኣብ መወዳእታ ንሙሴ ብቃሬዛ ተሸኪሞም ንሸራሮ ብእግሪ ምኻድ እንትጅምሩ ፀሃየ እውን ምስኒ ሓየሎም ኣርኣያ ተሓዊሱ ህይወት ብፃዩ ከድሕን ፈተነ። ኣብ መንገዲ ተረፍመረፍ ኢድዩ ኣጋጢሞሞ ነቲ ቃሬዛ ኣውሪዶም ተዋጊኦም እንደገና ነቲ ቃሬዛ ኣልዒሎም ህይወት ሙሴ ከድሕኑ ተጓየዩ ግን ሙሴ ኣብቲ ዝድለ ቦታ ከይበፀሐ ተሰዊኡ። <N> ደርጊ መበል 4ይ ወራር ብ1971 ዓ/ም ካብ መጋቢት ጀሚሩ ኣብ ዘሎ ሰፊሕ ዝኾነ ብሓይሊ ሰብ እውን ካብ ሕሉፍ ተሞክሮታቱ ተማሂሩ ዝገበሮ ነይሩ። ትግራይ ዳህሲስካ ናብ ኤርትራ ንምሕላፍ ዝዓለመ ወራር ኣብ ሓሸንገ፣ ደደቢት፣ ዓዲ ዳዕሮ ከበድቲ ግጥማት ተኻይዶም። ብፍላይ ኣብ ሓሸንገ ንዝነበረ ንብረት ውድብ ንምምንዛዕ ዘሎን ዘየሎን ሓይሉ ጠርኒፉ እሞ ድማ ምስ ዘመናዊ ታንክታትን መዳፍዕን ሰኒዩ ወፊሪ ጀመረ። ኣብዚ ከባቢ ቦጦሎኒ 60 ከምኡ ድማ ርሕቅ ኢላ ቦጦሎኒ 80 እውን እኒሀተት። እዘን ቦጦሎኒታት ዘለወን ሓይሊ ሰብ ዋላ እኳ ውሑድ ይኹን እምበር ነቲ ሽሾ ሰራዊት ደርጊ መኪተን ንብረት ውድብ ከድሕና ተረማረማ። ኣብዚ እዋን ሓላፊ ዕጥቂ/09/ ዝነበረ ፀሃየ ኣብዚ ግጥም ወየንቲ ከይተረፉ ኣሰሊፉ ተኻፊሉ እዩ። ግጥም ምስ ተፈጥሮን ሰብን። በቲ እዋን ናይቲ ቦታ ሞቐት ከም ሓዊ ዝባላዕ ዋዒ ነበሮ። ኣብዚ ፈታኒ ርብርብ ኩሉ ተጋዳላይ ህወሓት ከም ሓደ ኣካል ኣብ ሓደ ኣትኪሉ ደሙን ራሃፁን በይዛ ህዝቡን ውዱቡን ገበረ። ብርክት ዝበሉ ጀጋኑ ምስ ፀላኢ ኢድ ብኢድ ተሓናኒቆም ወደቑ። ስጋ ለበስ ተጋደልቲ ምስ ሓፂን ተጋጠሙ። ብርክት ዝበላ ታንክታትን መካይንን ፀላኢ ተባርዓ። ደርጊ ሕዚ እውን ተወሳኺ ሓይልን ነፈርቲ ከይተረፈ ኣብዚ ኩናት ክሳተፋ ገበረ። ኣብ ከምዚ ዝበለ መሪርን ፈታንን ግብግብ ድማ ልክዕ መጋቢት 27/1971 ዓ/ም ኣብ ሓሸንገ ፍሉይ ሽሙ ዝባን ማይ ሰሳሑ ኣብ ዝበሃል ቦታ ፀሃየ ብነፋሪት ተወቒዕ ክቡር መስዋእቲ ኸፈለ። በቲ ግዘ ኣብ ጎኑ ዝነበሩ ወያናይ መብራህቱ ገ/ሄር ሎሚ እውን ኣብ ዓዲ ሸናጥሮ ኣለው። ነቲ ኩነታት እንትዝክሩ ከምዚ ይብሉ “ ፀሃየ ፍሉይ ብዓል ቅያ እዩ። ኣብቲ ከም ሓዊ ዝረሰነ ኩናት ልክዕ ከም ጨዋታ ቃርሳ እዩ ዝጋጠም። ውሑዳት ተጋደልቲን ምልሻን እንዳመርሐ ኣብቲ ርብርብ ምንም ድምብርፅ ከይበለ ጅግንነት ሰሪሑ። ንብረት ውድብ ብፃላኢ ኣይውረስን ክብል ድማ እንዳጨረሐ እዩ ዝዋጋእ ነይሩ። እቲ ናቱ ወነ ንዓና ሓቦ ኮይኑና ክሳብ መወዳእታ ድማ ተቓሊስና ነቲ ንብረት ካብ ፀላኢ ኣድሒናዮ። ግን ድማ እቲ ተዓጢቁ ዘዕጠቐና ጅግና ተጋዳላይ ፀሃየ ብመስዋእቲ ተፈሊዩና። ” ይብሉ። <N> HTTP <N> ሓበን ፍረ ቓልሲ,0.876829268293,0.0422080474753\r\nbcced6beb424b67e,ΤΕΛΙΚΑ ΕΙΣΤΕ ΟΛΟΙ ΜΑΛΑΚΕς,1.0,0.0421957780901\r\n5e95a684c75d6f56,naale nade <JOIN> yuva patrakar <JOIN> tara san <JOIN> gada chunavaneyalli yoogyarannu aar <JOIN> esi,0.266666666667,0.0421683835251\r\n67fe60f25376ede5,\"वि.सं. २०६३ साल जेठ पन्ध्र गते नेपालमा गणतन्त्र आएपछि २३७ वर्षे लामो राजतन्त्र विदा भएको थियो । राजा ज्ञानेन्द्र नै नेपालको अन्तिम राजा भए । यसरी राजाहरुको समाप्ति भयो । यसवाट नेपालमा राजाहरु खासै नफापेको वुझ्न सकिन्छ । <N> <N> हामी यहा यस्तै एक जना राजाको कुरा गर्दैछौ । तर यि राजा नेपालमा शासन गर्नका लागी आएको नभएर चलचित्र उद्योगमा शासन गर्ने हेतुले आएका थिए । नेपाली चलचित्र उद्योगमा निर्माताको रुपमा २०५६ सालमा भित्रीएता पनि उनीले चलचित्र निर्देशन भने ६० सालवाट सुरु गरेका हुन् । <N> <N> चलचित्र ' जंगली मान्छे ' मार्फत यो क्षेत्रमा निर्देशक वनेका राजा हुन् रामराजा दाहाल । यि राजाले हालसम्म १० वटा चलचित्र निर्देशन गरीसकेका छन् । यिनले निर्देशन गरेर प्रर्दशनमा आएका चलचिहरुमा ' वसमा छैन यो मन ' , ' कसम हजुरको ' , ' वलवान ' , ' गुरुदक्षिणा ' रहेका छन् । सेल्युलाईड यि चलचित्रहरु प्रर्दशनमा आएपनि यि राजाको भाग्यले यिनलाई साथ दिएको छैन । <N> <N> नेपालमा राजाहरुले एकलौटी राज गरेजस्तै गरी राज गर्ने सोचका साथ आएका यि दाहाल राजाले आजसम्म कुनै कमाल देखाउन सकेका छैनन् । यिनले निर्देशन गरेका यि चार चलचित्रले निर्माताको घरघडेरी सवै डुवाए । अझ यसो भनौ निर्मातालाई धुलो चटाउनु भन्दा वाहेक यि राजाले कुनै त्यस्तो संझना योग्य काम गरेका छैनन् । <N> <N> उनले निर्देशन गरेर प्रर्दशन हुन वाकी चलचित्रहरुमा ' हे युवा ' , ' तिमी मेरो म तिम्रो ' हुन् । अस्तित्वहिन भन्दै गएको आफ्नो सिंहासन जोगाउन यि राजा चलचित्र ' वटालीयन ५ ' निर्देशन गर्ने तयारीमा रहेका छन् । नेपालमा राजतन्त्र समाप्ति हुनु भन्दा ठिक तिन वर्ष अघि चलचित्र उद्योगमा छिरेका अर्का राजाको करीयरले वारम्वार धक्का खानुलाई सामान्य रुपमा हेर्न सकिदैन । <N> <N> नेपाली जनताले आन्दोलन मार्फत राजा हटाएकाले पनि हुनसक्छ यिनलाई पनि दर्शकले आफ्नो मनमा राख्न सकेनन् । प्रर्दशनमा आएका सवै चलचित्रले धुलो चाट्नुलाई यि राजाको भाग्यसग हेर्न सकिन्छ । किनकी वल्ल वल्ल एउटा राजालाई देशको सिंहासनवाट हटाएका नेपाली जनताले अर्को राजाको नामसमेत सुन्न चाहेनन् र यि रामराजा कमजोर सावित हुदै गएका छन् । <N> <N> <N> नेपाली चलचित्र उद्योगमा ज्योतीषीसग हात हेराएर निर्माता निर्देशकहरु चलचित्र वनाउने गर्दछन् । तर यि राजाले हालसम्म ज्योतीषी र पुजापाठ गरेका रहेनछन् क्यारे । पूर्वराजा ज्ञानेन्द्र अहिले मठमन्दिर र पुजापाठमा व्यस्त भईरहेको समयमा यि राजा पनि ज्योतीषी र पुजापाठ तिर लाग्नॆ की ? कतै राजा पछाडी जोडीएर आएकाले यिनलाई चलचित्र उद्योग नफापेको पो हो की । रामराजा जि ! एकपटक आफ्नो नामको वारेमो केही सोच्ने की ?\",0.849489795918,0.042163054335\r\nc311d572cbbc9678,알아보지도 않고 경솔하게 쪽지 날리고 사과한마디 없는 footwiks 과연 <N> <N> 이런 오픈 백과사전에서 활동할 자격이 있는걸까 생각해 보게 되는군요.,0.9,0.0420120188666\r\n30401586086254ac,இணையம் மூலமான கற்றல் கற்பித்தல்.இக்கற்பித்தலில் இணையம் சேர்ச் எஞ்சின் உலாவி ஈமெயில் போன்றன பயன்படுத்தப்படும்.சேர்ச் எஞ்சின் என்பது தகவல்களை தேடுவதற்காக வடிவமைக்கப்பட்டதொரு சாதனம். ஹிட்ஸ் என்று பொதுவாக அழைக்கப்படும் பட்டியல் ஒன்றில் இந்த தேடுதல் முடிவூகள் வழங்கப்படும். இந்தத் தகவல்களில் இணைய பக்கங்கள் படங்கள் தகவல்கள் இடம் பெற்றிருக்கும். <N> <N> <N> <N> <N> ஈமெயில் இன் பயன்கள்தகவல் பரிமாற்றம் மென்பொருள் பரிமாற்றம். ஸ்மெயிலி மூலம் உணர்வூகளைப் பரிமாறல். இலவசமானது. <N> <N> <N> <N> <N> ஈமெயில் மூலமான கற்றல் கற்பித்தல் தொடர்பான பயன்பாடுகள்கற்றலுக்கான பயிற்சிகளை அனுப்பலாம். மாணவர் அனுப்பும் விடைகளைத் திருத்தி அனுப்பலாம். மாணவர்களுக்குப் பின்னூட்டல்களை வழங்கலாம்.,0.861111111111,0.041987291295\r\ne06cb3cd1e955b42,Dzięki konflikt <JOIN> owi z tobą ucz się tro <JOIN> szk o funkcjonowaniu wikip <JOIN> edii . Dzięki temu będę mg się tobie przeciwstawia w skuteczniejszy sposób .,0.285714285714,0.0419579442385\r\n49055cdb187aa94c,fbv rtdb rdt <JOIN> fgb rtfgb rtfgb rtfg,0.625,0.0419375749741\r\n0faf8a61a2208817,s dfxcsertdgbv wrt <JOIN> dfb wrtsdgcfb wrtsdgcfb rstdcgfb rtg <JOIN> cvb,0.363636363636,0.0419135190582\r\nd03cbf65ef3bd92c,crea <JOIN> tez orz repo <JOIN> stz suchz pag <JOIN> esz andz imag <JOIN> esz,0.266666666667,0.0419055814477\r\nc82a370f0be49673,utwevfgwbefij seib <JOIN> fisu sfn <JOIN> isu sfs <JOIN> ini gsoirgs l,0.333333333333,0.0416905300932\r\n3f9332a7704a2bc1,ﻣﺤﻤﺪ <N> ﻣﺼﻄﻔﯽ ﺻﮧ ( ﮐﮭﺎﻧﮯ ﮐﺎ <N> ﮔﺮﺍ ﮨﻮﺍ ﭨﮑﮍﺍ ﺩﺳﺘﺮﺧﻮﺍﻥ <N> ﺳﮯ ﺍﭨﮭﺎ ﮐﺮ ﮐﮭﺎﻧﺎ_ﺍﻭﻻﺩ <N> ﻣﯿﮟ ﺧﻮﺑﺼﻮﺭﺗﯽ_ﺭﺯﻕ ﻣﯿﮟ <N> ﺑﺮﮐﺖ ﺍﻭﺭ ﺗﮑﺒﺮ ﺧﺘﻢ ﮐﺮﺗﺎ <N> ﮨﮯ,0.758620689655,0.0416658576279\r\nd8b388fbadc12d03,יש לך חור בהסכלה וספר בתחת,1.0,0.0415772556827\r\n929176b2bc6b0c18,पात्रता नाही म्हणून आपण परस्परांना भेटणे बंद केले तर आपल्यापैकी बर्‍याच जणांना अज्ञातवासात जावे लागेल. <N> = = अग्रशीर्ष मजकूर = =,0.772727272727,0.0415529459536\r\n14dd3603181259d6,\"= = Gujarati WIKI = = <N> <N> ભાઇશ્રી સ્પંદન , <N> નમસ્કાર. <N> લાંબા સમયથી ગુજરાતી વિકિ આપની રાહ જોઇ રહ્યું છે. છેલ્લા વર્ષમાં ગુજરાતી વિકિ ઈન્ક્યુબેટરમાંથી બહાર આવી શક્યું છે. ધવલભાઇ પ્રબંધક તરીકે સરસ કાર્ય કરી રહ્યા છે. હવે જો એમાં આપના જેવા વરીષ્ઠ પ્રબંધકનું માર્ગદર્શન સાંપડે તો ગુજરાતી વિકિ સારી પ્રગતિ કરી શકે , એવું મારું માનવું છે. આશા છે કે આપ ગુજરાતી , આપણી માતૃભાષા માટે થોડો થોડો સમય ફાળવશો. બસ ત્યારે આવજો.\",0.831168831169,0.041539828061\r\n87c0ef600039d33f,xfv dfxv dfx <JOIN> bcv dfxcv dzfxcv,0.571428571429,0.0415123788389\r\nd01a0f850019754b,\": : : : Еј видов . Од песните на Ријана око ми фати Princess of China . Не е многу средена , но има потенцијал за добра статија . Јас ќе почнам да го поправам малку по малку албумот што го спомна , ама од понеделник зашто треба да ја допрегледам номинацијата за Бијонсе . Позз .\",0.741379310345,0.0414854106998\r\n77fac22fb0f9c1e6,Τα παραλές αλλά σ ' ευχαριστώ. Κι ελπίζω να μη σου προκάλεσα πονοκέφαλο τις προάλλες για τον τίτλο. Το τελικό αποτέλεσμα πάντως στο οποίο κατέληξες με το άλλο το παλικάρι νομίζω ότι ήταν το πλέον εύστοχο. Πάω να την πέσω τώρα γιατί έχω λιώσει στη δουλειά,0.95652173913,0.0413738717124\r\n0f50188b6747737e,ioghdfjklgrnwuvhxc cnvgf xchjvhj chbhj chv <JOIN> gyh hsdvcnjsd,0.875,0.0413532138717\r\n2a1afaced485568a,\"= = ಹಾಯ್ = = <N> <N> ಹಾಯ್ ಹರಿ , <N> <N> ಬಹಳ ಒಳ್ಳೆ ಕೆಲಸ ಮಾಡ್ತಿದ್ದೀರ. ನಿಮ್ಮನ್ನು ಬಹಳ ಹಿಂದೇನೇ ಸಂಪರ್ಕಿಸಬೇಕೆಂದುಕೊಂಡಿದ್ದೆ ಸಾಧ್ಯವಾಗಿರ್ಲಿಲ್ಲ. <N> ಹರಿ ಸುದ್ದಿಗಳನ್ನು frequent ಅಪ್ಡೇಟ್ ಮಾಡಲಿಕ್ಕೆ ಪ್ರಯತ್ನಿಸಿದೆ. ನನಗೆ ಆ ಪುಟವನ್ನು ಬದಲಿಸಲು ಅನುಮತಿಯಿಲ್ಲ ಅಂತ ಕಾಣುತ್ತೆ. ಆ ಅನುಮತಿ ಕೊಡಲಿಕ್ಕೆ ಸಾಧ್ಯನಾ ? <N> <N> ರೋಹಿತ್\",0.674418604651,0.0413271103216\r\n0c952ec8934921cc,παλιοκαρφι εισαι μεγαλος μαλ@κας,1.0,0.0412876460636\r\n6e591e7fac0bec04,Slaw <N> <N> Amawe ler <JOIN> awa aw zaniarianay hama bibaxshm ba hiwam swdy habe,0.333333333333,0.0412289056334\r\n2c4f78ec03013fa4,\"Благодаря . Твърде жалко , че българщината се наказва тук и истината много бързо се замества от лъжи .\",0.789473684211,0.0412191263295\r\na8536a58b2dd4d68,= = ahfsagdhfndxvgfxkcnv = = <N> <N> dfuidhsnvkjdgkjvn xzhjvgmuxzyguvcj ydhsu gyfru gzft ydhuzyghvnjdsgvdhvngtvhjn hdfjvnfhgjmjfkhujcmkjvbhjuk njuyhjn hguifyvch nvh <JOIN> njc,0.578947368421,0.0412042188396\r\n3739bd89f956fcef,hfhhfdhdhfdhdhh gfhfghgf hgjgh ghgf,1.0,0.0411318691671\r\nb4bc381b7232f39c,મારી સાથે અહી તમે સંવાદ સાધી શકો છો.,1.0,0.0410785435852\r\n7da9dfb9d254e7f1,\"= = Rauf Akr <JOIN> eye = = <N> <N> دوای ڕاپەڕین مێژووی تیرۆری سیاسیی دژ بە دەنگە تێكۆشەر و ئازادیخوازەكان دەستپێدەكات، لە ساڵی ١٩٩٣دا زنجیرەیەك تیرۆری سیاسی لەناوچەی بادینانی باشوری كوردستان ڕوویدا، كە یەكێك لەوانە، تیرۆری رەئوف ئاكرەیی بوو. <N> <N> رەئوف ئاكرەیی ئەگەرچی بەرپرسی یەكەمی رێكخراوی تێكۆشانی رەنجدەرانی كوردستان بوو، یەكێكیش بوو لە رۆشنبیر و سیاسەتمەدار و رۆژنامەنوسە بەتواناكانی بادینان و سەرنوسەری ڕۆژنامەی ڕێگای رەنجدەران بوو. <N> <N> رەئوف تا ساڵی ١٩٧٤ لە یەكێتی قوتابیانی پەدەكەدا كاری كردوە و یەكێك لە ئەندامانی دەستەی بەڕێوبەری بووە. ساڵی ١٩٧٣ لەگەڵ شەهید ئارام وەكوو شاندی لاوانی كوردستان چوونەتە ئەڵمانیا. پاشان تا ساڵی ٨٤ سەرپەرشتیی ڕێكخستنەكانی یەكێتی بە گشتی و كۆمەڵەی بەتایبەتی كردووە لە بادینان، بەڵام درێژەكێشان و شێوازی گفتۆگۆ لەگەڵ رژێم لە ڕێكەوتنەكەی ١٩٨٣ی یەكێتی و ڕژێمی عێراق، بووە هۆی هەڵوێست وەرگرتنی بەرامبەر یەكێتی و دروستكردنی رێكخراوی تێكۆشانی رەنجدەرانی كوردستان لەگەڵ هەڤاڵانیدا. <N> <N> لە ساڵی ١٩٩٣ شەپۆلێك لە تیرۆری سیاسی، ناوچەی دهۆكی باشوری كوردستانی گرتەوە. یەكێك لەو كەسایەتیانەی تیرۆركران، رەئوف ئاكرەیی بوو، كە لە ڕۆژی ٢٦ی گوڵانی ١٩٩٣ لە شاری دهۆك و لە نزیك ماڵەكەی خۆی تیرۆركرا. <N> <N> بەشێك لەو كەسایەتیانەی تری شەپۆلی تیرۆرەكەی ساڵی ١٩٩٣ی ناوچەی بادینان، كە دوای تیرۆری رەئوف ئاكرەیی ڕوویدا، بێ ئەوەی تا ئیستاش هیچ لێكۆڵینەوەیەك لە دۆسیەكانیان بكرێت و تاوانباران ئاشكرا بكرێن، فرانسیس یوسف تۆما لە بزوتنەوەی ئاشوری، لازار میخۆ حەننا ئەندامی‌ هەرێمی‌ كوردستانی‌ حیزبی‌ شیوعی‌ عێراق، قەیس محەمەد ئەحمەد ناسراو بە رێناس لێپرسراوی‌ لقی‌ دهۆكی‌ حیزبی‌ زەحمەتكێشانی‌ كوردستان، نەزیر عومەر ناسراو بە ئارام هەڵسوڕاوی‌ بزوتنەوەی‌ كرێكاری‌ و سۆسیالیستی‌ و ئەندامی‌ لیژنەی‌ بێكاران لە بادینان لە نزیك شاری‌ دهۆك رفێنرا و دواتر تەرمەكەی‌ بە سوتێنراوی و فڕێدراوی دۆزرایە. <N> <N> جێی ئاماژەیە دوای راپەرینی باشوری كوردستان لە ساڵی ١٩٩١ەوە تا ئێستا بەدەیان كەسایەتی تێكۆشەر و ئازادیخواز و ڕۆژنامەنووس، بەهۆی بیروڕای جیاوازەوە لە باشوری كوردستان تیرۆركراون و دۆسییەكانیان تا ئێستا بە كراوەیی ماوەتەوە , هەڕشە و ترس هێشتا لەسەر تێكۆشەر و ئازادیخواز و ڕۆژنامەنووس بەردوامە.\",0.932258064516,0.0410158612161\r\nd33551e41b8db240,عربی کے بعد عالم اسلام میں سب سے زیادہ استعمال ہونے والی زبان اردو ہی ھے ـ,0.941176470588,0.0410145914879\r\n5249cce690486cde,يمكنك من خلال موقع يلا كار اضافه سيارتك للبيع مجانا و بدون اى شروط ولا توجد لدينا اى نوع من الوساطه بين البائع و المشترى <N> يمكنك اضافة سياراتك من خلال الرابط التالى أضغط هنا,0.971428571429,0.0409936013587\r\nf28ab38af617ee20,\"herfdgjggghjfibmkd , ldkfkejr fnvnkdffjfvmxmsl rygfgbvndsdkesdlfggrovpajgcmnbh\",0.8,0.0409603494717\r\nc9e5d5f5f0c4c91a,= = ولا تزعل = = <N> <N> <N> مسكت غلط على راحتك اعتبرها عيديه مني <N> سلام,0.555555555556,0.0409540345716\r\nb0a05e7fd59224e8,\"אני לא יודע איך לתייג את המאמר כצמרמר , ואשמח לעצות כיצד לשפרו . זהו המאמר הראשון שלי ואני עדיין מתרגל למערכת <N> <N> תודה\",0.84,0.0409241859758\r\n48d8c752dea67f3a,\"слыш , иди на хуй\",0.6,0.040880472927\r\nfc1f234a25fd667c,\"informat <JOIN> aSDFGHJKL <SEP> GHV UIHJKMN <SEP> RFC TGYHBRGFDC XUKHJV CBX , NCJFGVFAWBCVN , ASUFH BZDGFMZ D , jNVBsion\",0.421052631579,0.0408671616718\r\na14240d6c6f00230,= = ﻼﻻﻺﻹ== <N> ك على كلمتك قائلا ولكن لا أحب ذلك لك وجه سلطة كنت غبية الانجليزية العربية speker لك. وقال حسن الذي تعيشون فيه ولكن خلافا لانك. يمكنك ترجمة مع جوجل وأقول لك لا يمكن أن أعطي או כשאני אומר רייט בעברית כי אתה לא חכםلكم محاولة من p : P,0.867924528302,0.0407053712333\r\n94d3637ae3e4d365,\"* Είναι φανερό ότι δεν είσαι Παναθηναϊκός , τουλάχιστον σεβάσου τα επίσημα στοιχεία που παρουσιάζει η ομάδα και μην τα αλλοιώνεις. Η Βικιπέδεια δεν είναι οπαδική εφημερίδα. Αν δεν σου αρέσει ο Παναθηναϊκός , δεν είναι εδώ ο χώρος για να το εκφράσεις.\",0.906976744186,0.0407047162822\r\nfae1ce1ead225809,\"= = Pyrrhus = = <N> <N> Χαίρε ! Ο γνωστός για τις ... τακτικές του χρήστης Emperor <JOIN> darius επέστρεψε στο άρθρο για τόν Πύρρο. Δεν μπορώ να αντιστρέφω για πολύ τις ενέργειες του , καθώς σύντομα θα σπάσω τον 3RR . Σε παρακαλώ έλεγξέ το ! Τα λέμε ,\",0.686274509804,0.0406776870959\r\n61fdc3ee06bff59f,دوست عزیز <N> داد نزنید .. ویکیپیدا برای خودش منبع حساب نمیشود. ببینید چگونه من منبع موثق داخل مقاله کردم و یاد بگیرید. در ضمن من نوشتم تهران شهر فارسی-زبان است. <N> اما جوری که شما ویرایش میکنید درست به نفع پانترکیستها است. . زیرا اول با قوانین ویکیپیدا آشنایی ندارید و دوم اینکه منابعی که شما اضافه کردید، مال خود ویکیپیدا هست که بعداً هرکس میتواند آن را پاک کند. اما منابعی که من وارد کردم مال یک محقق برجسته است. <N> در ضمن انقدر القاب زشت مانند پانترک به من ندهید. <N> تنها خواهش من از شما اینست که اگر منابعی را وارد کینید خود صفحه را خراب نکنید زیرا این به نفع پانترکیستها است. <N> در ضمن شما ای-میلی دارید؟ <N> سپاس.,0.936,0.0406624736936\r\n1150ac25bd2096fb,Χριστός Ανέστη και Χρόνια Πολλά για σένα και την οικογένεια σου φίλτατε Νικόλαε. Χερετισμούς Άκης.,1.0,0.040610401927\r\nc2cbef10984e419a,মাগুরা জেলার একটি ঐতিহ্যবাহী স্কুল হিসেবে বেবী হ্যভেন স্কুল ছাত্র ছাত্রীদের সকল বিষয়ের প্রতি লক্ষ্য রেখে সেবা দিয়ে আসছে । কলেজ পাড় মাগুরার এই স্কুলে আসতে হলে ভায়না মোড় থেকে হাজী সাহেব রোড দিয়ে সরকারী মডেল হাই স্কুলের পিছনে ।,0.95,0.0405877927735\r\nd104dfadbb680f2f,காதலால் உள்ளே மனதுக்குள் அழுதுக்கொண்டு உங்கள் உடன் சிரிக்க வைக்க முயல்பவன்,1.0,0.0405376513278\r\ncab87439e9886e48,: привет Юлька ты моя Тюменочка и это факт !,0.7,0.0404862951405\r\n267e833eab049420,أتعرف أن القالب الذي حذفته لا يتعلق بويكيبيديا العرية <N> قالب التحذير للمستخدم فارس الجويلي <N> أنا أتناقش معه في ويكيبيديا الإنجليزية لذلك حذفته <N> إفهم الأمور ثم طبق و قرر,0.903225806452,0.0404579758784\r\n4751882f64214077,ჰუგიგჰუგკჯყჯნჰგიჯ ვ ბნ მვ ნკჰ მიუ,1.0,0.0403723175624\r\n2e704370e973a98f,\"Да , роден сум во Битола , но не живеам таму сега . Да јас ја ревидирав статијата за НОБ , мило ми е што ти се допаѓа . Сега е многу поинформативна и е збогатена со полезни фотографии , мапи и фактологија . Би сакал одвреме навреме да ја надгледуваш . Поздрав голем .\",0.781818181818,0.0403691685753\r\n11b30d2a67102880,\"କନକ ଟିଭି,ଓତିଶା <N> 6.8.2014ର ବିଷୟ ଓତିଶାର ଶିକ୍ଷାର ମାନଦଣ୍ତ କୁ ଅଭିନଦ୍ଦନ,ଦୟା କରି ସମଗ୍ର ଭାରତ ର ଶିକ୍ଷା ନିତି ଅପରାଗତା ଓ ହରିଲୁଟକୁ ପରଦଫାସ କରନ୍ତୁ.ଏହା କନକ ଟିଭିର ର ଓଡିଶା କୁ ଦୟା . <N> ଓଡିଶାର ସବୁ ଶିକ୍ଷା ବିଭାଗର ମାରଣ ନିତିର ମୁଖା ଖୋଲିବାକୁ ଅନୁରୋଧ ( ଓଡିଶା ବାସି)କ୍ରମସ ଦୁରନିତିର ଦଫତର ଠିକଣା ଏହି ଚାପଟରେ ଓଟିଭି ଦେଖିବାକୁ ମିଳିବ.\",0.918367346939,0.0403428928641\r\n2b11039a67251dd6,कुरूङचे <N> <N> स्याङजा जिल्लाको पश्चिमी भेगमा रहेको गाउँको नाम कुरूङचे हो । कुरूङचे अाफैमा रमणिय रहेको छ । यसबारेमा के,0.809523809524,0.0403356350513\r\nec2e449a1240bdaa,\"Привет ! надеюсь , не сильно надоедаю ? Ещё раз спасибо от имени всех хакасов ! Очень прошу проверить на корректность языка Mongol invasion of Volga Bulgaria ! ( Как всегда подозреваю что ошибок там до кучи , но хоть убей , их не вижу ) . Кстати , есть ли на русской вике сторониики тотального перевода всего с русского на английский ? напр ru : Мусават ?\",0.617647058824,0.0403180984707\r\n7ddcbfc51853b84a,فاشىنيبل تو ريد مي لول <N> <N> شكراااااا,0.75,0.0402357834594\r\n05d8d7424099578f,ضلع اسکردو ایک خوبصورت جگہ ہے جہاں بالخصوص گرمیوں کے موسم میں سیاحوں کا ایک سمندر دیکھنے کو ملتا ہے۔ جہاں یہ لوگ بہت سادگی کے ساتھ اپنی زندگی گزارنا پسند کرتے ہیں وہیں آج کل کی معاشرتی برائیاں وہاں کی سوسائٹی میں بھی جنم لیتے میں نظر آتے ہیں۔ضلع اسکردو میں گرمیوں کا موسم بہت پیارا ہوتا ہے۔ اور ہر پاکستانی سیاح سمیت دنیا کے دیگر ممالک کے سیاحوں کی ایک بڑی تعداد کا محو مرکز بنا رہتا ہے۔,1.0,0.0402340839142\r\nc84f425ee3509480,= = احمد متوسلیان = = <N> سلام <N> من چند وقت پیش یک مقاله در مورد معرفی احمد متوسلیان که یکی از ایرانیان ربوده شده در لبنان است نوشتم و مقاله به تمام جنبه های زندگی ایشان اشاره کرده بود. اما دیروز توسط یکی از مدیران به دلیل رعایت نکردن کپی رای به طور کامل حذف شد. این مدیر گفته که شما از مطالبی استفاده کردی که اجازه استفاده نداشته است. من به همه جملات متن رفرنس دادم و تمام جملات را بازنویسی کردم و اصلا عینا چیزی را ننوشتم. به غیر از قسمت های نقل قول که آن ها را در گیومه قرار دادم. الان باید چیکار کنم . واقعا برای مقاله زحمت کشیده بودم اما مطمئنا دلیل دیگری داشته چون در برخی جملات کشور اسرائیل را متهم کرده بودم یعنی من نکردم و افراد بیان کننده مطرح کرده بودند. در حالی که نظرات مخالف و مقابل را نیز آوردم. <N> <N> شما می توانید در این زمینه به من کمک کنید؟ <N> کامنت مدیر حذف کننده,0.940828402367,0.040226582327\r\n146cd05ec77f5bd1,\"fgahfglhlyg , gfh fghSfhphahifghnfgh hchohfguhlfghdhg hfghhafghvfghefgh fghhghegfhlgpfgehfgdhfg fgthfghghefg hfAfgxfgigfsfgh\",0.777777777778,0.0401060440025\r\n1cace9c91199426f,Does anyone else think that John Craven sounds like gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee gwabadee,0.571428571429,0.0400445005531\r\n94e278990338223e,\"\"\" <N> <N> * * Здравствуйте ! Спасибо за замечания , я внимательно всё обдумаю и постраюсь их учесть . Про \"\" \"\" тадицию \"\" \"\" , увы , я не знаю ничего . <N> \"\"\",0.416666666667,0.0399262163222\r\n4b594c580231c891,จากทนายมาขายสังฆภัณฑ์ เริ่มต้นจากการที่ผู้ผลิตชอบไปทำบุญอยู่เรื่อยๆ ทั้งที่วัดใกล้บ้านและวัดที่เป็นเส้นทางผ่านเวลาต้องไปว่าความที่ต่างจังหวัด ก็ทำให้พบว่าสังฆภัณฑ์ที่มีผู้นำไปถวายพระทั้งของบริโภคและอุปโภคนั้นมักจะซ้ำๆ กัน ทำให้พระที่ได้รับไปใช้ไม่ทันก็เกิดความคิดอยากจะเปิดร้านสังฆภัณฑ์จำหน่ายของใช้สำหรับพระภิกษุหรือสามเณร ที่แตกต่างจากที่มีอยู่ตามท้องตลาดทั่วไป เมื่อคิดอยู่ได้ไม่นานก็ได้พบกับ รุ่นพี่ผู้หญิงท่านหนึ่งซึ่งเป็นผู้ที่ชอบทำบุญอยู่เป็นประจำได้ให้คำแนะนำว่าของใช้ที่พระภิกษุสามารถใช้ได้นั้นมีทั้ง ซองใส่ช้อนส้อม ซองใส่แว่นตาผ้ารับประเคน และอีกหลายอย่างเมื่อได้รับคำแนะนำดังนั้นสังฆภัณฑ์รูปแบบใหม่ <N> ภายใต้แบรนด์ “ สายธารบุญ “ จึงได้เป็นรูปเป็นร่างขึ้นเหตุที่ใช้ชื่อสังฆภัณฑ์รูปแบบใหม่นี้ว่า “ สายธารบุญ “ เนื่องมากจากผู้ผลิตมีความคิดว่าสายน้ำเป็นสัญลักษณ์แห่งความชุ่มเย็นให้ประโยชน์กับคนได้ไม่เลือกชนชั้นเปรียบเหมือนกับผลของบุญกุศลที่ให้ผลกับผู้สร้างโดยไม่เลือกว่าผู้นั้น จะเป็นใคร อีกทั้งสายน้ำนั้นเมื่อไหลผ่านปแล้วก็ไม่ย้อนกลับมาอีกบุญกุศลก็เช่นกันเมื่อให้ผลเป็นความสุขกับเราแล้วก็ผ่านไป เราจึงควรพยายามสร้างบุญ <N> ทุกประเภทให้เกิดขึ้นเรื่อยๆ ตามกำลังตามความสามารถของเรา “ สายธารบุญ “ ขออนุโมทนากับทุกท่านที่เห็นประโยชน์ในการสร้างบุญกุศลทุกประเภท ⟨⟩และขอขอบคุณทุกท่านที่สนับสนุน เอื้อเฟื้อและให้คำแนะนำด้วยดีเสมอ,0.764705882353,0.0398861428314\r\ncb124a435da0ef23,\"כמה צדק אחד העם בחזונו על ישראל כמרכז רוחני , לעם היהודי ; כבר אז ראה את הבעיה הערבית - יהודית בארץ ישראל והסכסוך המתמשך שלא רואים את סיומו באופק . ובכל זאת היה אחד העם ציוני . ספק אם היינו קוראים לו ציוני אם היה חי כיום .\",0.877551020408,0.0398622760383\r\n862cb1032fb62af0,ghkjgfcjiggjkcghikghjksyhsfgjhdfhkjgkfgkgjkfdjfghjgjkhjkjlvjh ghjkfghjfdhjdfgjdt jdtyjhcfjh,1.0,0.039856260446\r\n0e984e8fecd50583,smallxfghxfghdhdghdhdvnxhb dfv <JOIN> bxg nghdf fgh xcvbn v,0.625,0.0397562958629\r\nb0eda18a0efad1d1,بازم سلام، وقتی داشتم روی مقاله دیوان لغات الترک کاشغری در آذب ویکی کار می کردم متوجه شدم که تو ویکی انگ مقاله نداره به خاطر همین ساختمش به نظرتون چطوره پاکش نمی کنن؟,1.0,0.0396763287623\r\n5b7879123bf7f3af,گروه تولیدی شيرآلات صنعتي نمونه فرد آب با مدیریت آقای صالحی با پشتوانه 30 سال سابقه علمي وتجربي با اهداف خدمت به تولید با کیفیت و استفاده از مهندسین و متخصصین مجرب تاسیس گردید.در حال حاضر امكان تولید شیرآلات صنعتی نظیر شیر فلکه‌های کشویی چدنی و زبانه لاستیکی ،شیر یکطرفه ،صافی ،سوپاپ ، و دریچه‌های چدنی که تشکیل شده از مرغوبترین مواد اولیه در سایز‌های ۲ اینچ الی ۱۲ اینچ مطابق با استانداردهای تدوین شده را در جهت تامین نیاز مشتریان عزیز و جلب رضایت خاطر آنها دارا می باشد . <N> <N> <N> با توکل بخدا و همت پرسنل فرد آب ، این مجموعه توانسته با توسعه کمی در تنوع محصولات و همچنین با ادامه این روند ضمن عرضه وسیعتر محصولات، منتهی به گستردگی تنوع مصرف مشتریان و جلب رضایت ایشان شده است.لذا از تمامی همکاران ، پژوهشگران و کسانی که در این گستره صنعت دستی دارند برای همکاری دستشان را می فشاریم و از ایده ها و پیشنهادات و انتقادات به گرمی استقبال می نماییم. <N> <N> گروه تولیدی شيرآلات صنعتي فرد آب,0.937142857143,0.0396281815882\r\n67ecbb5faaa966cb,السلام عليكم <N> انا البراء الحافظ يوسف موسى <N> طالب في السنة الاولى في جامعة امدرمان الاهلية <N> قسم دبلومات الحاسوب تخصص تقنية المعلومات,0.875,0.039627297622\r\n8dfbcf2e8ad23eff,: ואפשר למחוק את כל ההתכתשות בנינו בדף שיחה של הערך אם תרצה,0.923076923077,0.0396177381081\r\n7eb7446115e3d36f,\"매일의 일상처럼 스치는 일들을 정리하여 최종적으로 책을 만드는 것이 목적이다. <N> 그 책이 무슨 형태가 되든 무슨 모양으로 되든 , 무슨 내용이 되든 ...\",0.875,0.0395714447416\r\n02e33c6afc04156f,= = मैं तुम्हारी मदद की ज़रूरत है. = = <N> <N> फूलों के कई क्षेत्रों में एक कब्रिस्तान से घिरा हुआ है. चर्च में एक बूढ़ा आदमी उस रात चले. मध्य रात के और एक और बूढ़े आदमी पियानो बजा रही थी. उनकी पोती वहाँ था. वह सोलह गया था और एक सुंदर सफेद कपड़े पहने हुए. वह रात में आया है.,0.904761904762,0.0395061154014\r\nc7a2454f336e6872,法人或者其他组织的作品、著作权（署名权除外）由法人或者其他组织享 <N> 有的职务作品，其发表权、本法第十条第一款第（五）项至第（十七）项 <N> 规定的权利的保护期为五十年，截止于作品首次发表后第五十年的十二月 <N> 三十一日，但作品自创作完成后五十年内未发表的，本法不再保护 。 <N> 电影作品和以类似摄制电影的方法创作的作品、摄影作品，其发表权、本 <N> 法第十条第一款第（五）项至第（十七）项规定的权利的保护期为五十年 ， <N> 截止于作品首次发表后第五十年的十二月三十一日，但作品自创作完成后 <N> 五十年内未发表的，本法不再保护 。,0.444444444444,0.0393926281106\r\n809c3a754aaafe71,제 의도는 그러니까 외국 축구단 시즌 문서처럼 시즌 전 경기 결과를 위키피디아 백과사전 문서 양식대로 기재해 두면 좋기야 좋은데 너무 빡세다는거죠. FC 홈페이지 일정및결과 들어가 보면 기록지와 하이라이트도 동시에 볼 수 있고 위키피디아 양식만으로 다시 한번 누군가가 다시 한번 만들 필요가 있을까 그런 생각이 들어서 한국어 위키백과는 링크로 대체했고 영어 위키백과는 기록지를 외국인이 볼 수 없으니 기여하신것처럼 하면 좋은데 그래서 저도 그렇게 할까도 생각했는데 일정 및 결과까지 챙겨보는 전세계 위키백과 유저들에 비해 공력이 너무 많이 든다는거죠. Three 기여가 절대 잘못되었다는 것은 아니고 솔직히 시간이 많이 걸리는 부분이라 여기에 기여할 시간에 FC 다른 문서에 기여하는게 낫다는거죠. 영어 위키백과에 일정 및 결과를 모두 만드는 것은 앞으로도 고민 좀 해 봐야겠습니다.,0.972222222222,0.0393624615394\r\n3dcb86979b49ebfe,مرد حساب یاماها کاربری مرا بسته بود در همان ساعت تو اومدی بستی بنام کاربر خادمیان را سعی کن مدیر درست باش,1.0,0.0393400886082\r\n7201fea8b8108bbb,( قلعه اسلام قلب آسيا جاودان ، آزاد خاك آريا ) <N> زادگاه قهرمانان بزرگ سنگر رزمنده مردان خدا <N> الله اكبر الله اكبر الله اكبر <N> تيغ ايمانش به ميدان جهاد بند استبداد را ازهم گسست <N> ملت آزادة افغانستان در جهان زنجير محكومان شكست <N> الله اكبر الله اكبر الله اكبر <N> در خط قرآن نظام ما بود پرچم ايمان به بام بود <N> هم صدا و همنوا و همزبان وحدت ملي مرام ما بود <N> الله اكبر الله اكبر الله اكبر <N> شاد زي آزاد زي آباد زي اي وطن در نور قانون خدا <N> مشعل آزادگي را بر فراز مردم برگشته را شو رهنما <N> الله اكبر الله اكبر الله اكبر,0.878260869565,0.0393152259112\r\nfd774853b19d8445,dfkf lkasjfowejf aef,0.666666666667,0.0392590213894\r\n79792a456257aa63,= = كيف الحال = = <N> <N> كل عام وانت بخير,0.5,0.0392310299868\r\naefeb11b7a6760e2,حصيلة العدوان الإسرائيلي 40 شهيداً معظمهم من الأطفال والنساء,0.888888888889,0.039204779296\r\na3efb4e65a2adfe3,fdokjfnjvkjvfdkjdkjvdsjkdjkjlfdskjlfdskjldfskjlfdsjkl dxvlkdxvvkxlkjdlkjdlkj dxlkjjlkjvcxxc,1.0,0.0391284584452\r\nf8bf3d759e301ae1,ايلدار فتحي ildar fathi,0.75,0.0390949234107\r\ndca013c2a607cccd,بذریعہ ساحر تخلیق مضمون,1.0,0.0390917055303\r\n94f7af7c9cff1a0e,फोटोग्राफी को छापने की व्यवस्था होने से सचित्र समाचार पत्र पाठको तक पहुंचने लगे ।,0.933333333333,0.039050365504\r\nc893a8d638c2a7a0,majhiputtuga ఆంధ్రప్రదేశ్ లో శ్రీకాకుళం జిల్లా యొక్క Kanc <JOIN> hili మండల్ లో Talat <JOIN> ampara పంచాయితీ ఒక చిన్న గ్రామం ఉంది. ఇది చిన్న పట్టణాలు Som <JOIN> peta మరియు kav <JOIN> iti మధ్య ఉంది. ఇది 5 వ తరగతి ఒక ప్రాథమిక పాఠశాల ఉంది <N> <N> గ్రామం BenthoOriya అంతటా కులాల కలిగి దాదాపు 100 కుటుంబాలు ఉన్నాయి. అది ఒక jhamiyellama ఆలయం మరియు tri <JOIN> nath manda <JOIN> pamu ఉంది.,0.677419354839,0.0389855561516\r\n592256112ea1380c,\"WPvfjjfhhck ctcm b jvjv , nvbbfhncsurfdvccndudjdfjd , szmjhsfdy <SEP> uyhfj\",0.6,0.0389413778906\r\n6dfe6032bfe211ed,ธรรมประจำบุคคล <N> <N> <N> ในปัจจุบันนี่มีอะไรให้เราได้ศึกษามากมายแต่สิ่งหนึ่งที่ลึมไม่ได้นั้นคือ ธรรมะ ที่เป็นของสากล และของบุคคลนั่น,0.625,0.038878558356\r\na995d044547e0e93,\"= = Bulgarians = = <N> Направих картинка с изображения на известни българи , по подобие на тези , които стоят на статиите за германците , англичаните , французите и др . и я приложих към таблицата в статията . Направих го , защото старият дизайн с няколко големи снимки с по една фамилия отдолу изглежда , меко казано , безумно . Извинявам се предварително на създателите му , но наподобява на надгробна плоча . Може да сме изчезваща нация , но все още не сме умряла нация , за щастие . Ако си ви харесва така , оставете си го . Няма смисъл да го слагам , а вие да го триете . )\",0.652173913043,0.0387482926261\r\n65ff8cf484177c37,\"= = vm , ndfgndfg = = <N> <N> popoppopopopopopopgkmhbkjv hjdfbmjkhgdsfmn dhfgskjbdfsgknhkdjfslkjdsfvnjkl <SEP> dfds <JOIN> fbl <SEP> bdfsjknjkln <SEP> sjkln <SEP> jkln <SEP> gjklndfgdfgbggdfgffgfggggbgbgbgfd\",0.375,0.0386649078568\r\n35aa89d7eed46dcd,hey there fsd <JOIN> dsf werhjwej eljwhrelwhr weljrhhwro ewroiew lkwjerqpri sdl <JOIN> kfj qpreiqr wer <JOIN> etw,0.411764705882,0.0386620081424\r\n81e280ab8ee8be12,: Моля ви се ! Тъкмо се успокоих ама вие вечееееее ! -,0.692307692308,0.0386480718715\r\n49533b8afdf14ef0,نبرات عامة <N> نبرات ادبية <N> نبرات الاسرة والمجتمع <N> نبرات ترفيهيه <N> نبرات تقنية,0.733333333333,0.0385910743625\r\n4b0911b4af8ff310,\", والتوراة هى جزء من الأنجيل وتسمى العهد القديم\",0.888888888889,0.0385380712946\r\nfbce6877efd9242f,\"أستايلات , دروس , شروحات , القاعده , غزه , ارهاب , شات , صوتي , كتابي , صور , أفلام , فلم , العراق , أوباما , أنتخابات , تصميم , فوتوشوب , هنيه , سلطه , فلسطين , أسرائيل , حرب , حريق , مقاومه , موضوع , بروكسي , صحيفة , الجزيره , ملكه , جمال , منتديات , شبكة , أخبار , كام , زلزال , أعضاء , شرف , كتاب , طائره , أستشهاديه , انتحاري\",0.506172839506,0.0385143931793\r\n439c9fce286611ae,Romulus <N> * Numa Pompilius <N> * Tullus Hostilius <N> * Ancus Martius <N> * Tarquinius Priscus <N> * Servius Tullius <N> * Tarquinius Superbus,0.36,0.038509628701\r\n90cde9a0772a005f,\", და შენ თვითონ არ გცხვენია , ამათ წისქვილზე რო ასხამ წყალს ? შენ გგონია მე სხვა საქმე არ მაქ , აქ ჯდომის და ამ მდაბიოებთან ჩხუბის გარდა ? იმიტო მოვედი რო საქართველოს გვერდები სუ გაასპარსეს და გააირანელეს , თითქოს ქართული არაფერი ქართული არაა , და ყველაფერი სპარსული და ჯანდაბური წარმომავლობისაა. ვაი და ვინმემ ქრისტიანობა , ბიზანტია ან ევროპა ახსენოს ... წყაროს მოკლებულ და დაუსაბუთებელ ოხრობას ვასწორებ , რომელიც აკ თავიდანვე არ უნდა დადებულიყო , მარა გასდით ამათ თავისი და რატომაც არ იზამენ ... ჩემს ქართველობას ეჭვქვეშ ნუ აყენებ და ამ ჯოჯოებს მიხედო გირჩევნია.\",0.872340425532,0.038507974625\r\n489a8f5b69811786,يرجى غلق قسم المصري لانه لا فائدة منه غير النسخ من القسم العربي بلهجة غبية واحيانا بالفصحى,1.0,0.0384563876761\r\n76fb08af4f78d190,\"Ο χρηστης εχει απολυτο δικιο σχετικα με το ζειμπεκικο αν βρεις καποιες πληροφοριες και συ σχετικες με την αυθεντικοτητα καλο ειναι να τις αναρτησεις , αλλα οχι βασισμενες σε μονομερης αναφορες , αντικειμενικες ειναι προτιμοτερο ...\",0.916666666667,0.0384461084681\r\ne72c14b974e53151,دواتر لە کۆمپانیای لێدەر کاری کردووە کە کە لەوێ وەک ئەمین مەخزەن کاری کردووە دواتر چووەتە پارکی سامی عەبدولرەحمان بووەتە فەرمانبەر دواتر چووەتە بەرێوەبەرایەتی گومرک بووەتە فەرمانبەر,1.0,0.0382897761508\r\n5d83582ce54d4186,psjxkcnc nsajclnxjc lnz zjlnrimarly,1.0,0.0382647194734\r\n9beba8f6cf4e4d1e,\"প্রতিষ্ঠাতা ঃ <N> মোঃ সফিকুল ইসলাম কৌকৌ , জামালপুর জেলার পূণ্যভূমি মেলান্দহ উপজেলার আদিপৈত গ্রামে ১ মার্চ ১৯৮৫খ্রিঃ সালে জন্মগ্রহণ করেন । পিতা-মোঃ আনিছুর রহমান ওরফে খাজু শেখ , মাতা-মোছাঃ কাজুলী বেগম , ১ বোন ১ ভাই মধ্যে কৌকৌ ছোট । সে লেখাপড়ার পাশাপাশি রেইনবো মিডিয়া নামক এক কম্পিউটারের দোকানের মালিক মোঃ নাজমুল ইসলাম এর নিকট হতে ২০০০ সালে কম্পিউটার চালানোর প্রশিক্ষন গ্রহণ করে এবং এক পর্যায়ে তার কম্পিউটার শিক্ষক তার বন্ধুর দোকানে কম্পিউটার অপারেটরের চাকুরী নিয়ে দেন । সেখানে প্রায় ১ বছর চাকুরী করার পর আল - মজিদ লাইব্রেরীতে বেশী বেতনে চাকুরী হয় এবং সেখানে প্রায় ৩ বছর চাকুরী করেন চাকুরী করা অবস্থায় কমম্পিউটারের সরঞ্জাম সংগ্রহ করতে থাকেন এবং একপর্যায়ে সফিক গ্রাফিক্স নামে দোকান দেন একটি পাটনার সিপ ( সুমন ফটোকপির দোকানে ) কম্পিউটার বসান সেখানেও প্রায় তিন মান দোকান পরিচালনার করার পর স্বতন্ত্র ভাবে চিশতীয়া সুপার মার্কেটে সয়ংসম্পূর্ণ ভাবে সফিক গ্রাফিক্স নামে দোকান দেন । <N> <N> সফিক গ্রাফিক্সের অবস্থান ঃ চিশতীয়া সুপার মার্কেটে এক রুম পেছনে প্রথম দোকান শুরু করা হয় । আড়াই বছর দোকান পরিচালনা করার পর মার্কেটের কিছু ঘরমালিক পক্ষ বিক্রিয় করে দেওয়ায় পরবর্তী ঘরমালিকের সাথে দোকান ভাড়ার ব্যাপারে সমজতা না হওয়া চিশর্তীয়া মার্কেট ছেড়ে মেলান্দহ সরকারি বালিকা উচ্চ বিদ্যালয় সম্মূখে নূরল মেম্বার সাহেবের ঘর ভাড়া নেওয়া হয় এবং সেখানেও প্রায় আড়াই বছর দোকান ঘরমালিক দোকানের সামনে রাস্তা বন্ধ করার জন্য দোকানের সামনে আরেকটি দুচালা হাফ বিল্ডিং তোলেন এতে সফিক গ্রাফিক্সের ব্যবসায়িক ক্ষতি হয় ফলে সেখান থেকে বিআরডিবি অফিস সম্মূখে মেইন রোডে নাহার মার্কেটে ঘর ভাড়া নেন এবং এক বছরের ওয়েব সাইডের ডোমেইন ক্রয় করেন । <N> <N> সেবা সমূহ ঃ <N> * গ্যারান্টি সহকারে ই - মেইল পাঠানো । <N> * অনলাইনে ভর্তি আবেদন ফরম পূরণ । <N> * অন লাইনে পরীক্ষার রেজাল্ট দেখা । <N> * অন লাইনে এডমিড কার্ড উত্তোলন । <N> * জাতীয় বিশ্ববিদ্যালয় অন লাইনে ভর্তি আবেদন । <N> * পূর্ণাঙ্গ ইউনিভার্সিটিতে অন লাইনে ভর্তি আবেদন । <N> * পল্লী বিদ্যুৎ মিটারের অন লাইনে আবেদন । <N> * ভিসা প্রসেসিং । <N> * আর্জেন্ট ছবি । <N> * ফটোস্ট্যাট করা হয় । <N> * নির্ভূল কম্পোজ । <N> * নান্দনিক ডিজাইন । <N> * টেকসই ল্যামিনেট ।\",0.835734870317,0.0382577183452\r\n7766cb8ac06316d0,داوود محمدکیا <N> <N> داوود محمدکیا,0.666666666667,0.0382079575062\r\neacc8626b1af0efc,میں سعودی عرب میں ٹائیل اور ماربل کا کام کرتا ہوں,1.0,0.0381868760799\r\nc1644d026cd9cad9,\"= = Ήπειρος = = <N> <N> Επειδή βλέπω ότι είσαι κάπως ενεργός την τελευταία βδομάδα στα Ηπειρώτικα ( Ν και Β ) άρθρα , αν γουστάρεις ρίχνε καμμιά ματιά σε τίποτα Βλόρες και Χίμαρες , Παραμύθια και λοιπά. Προφανώς τα αλβανικά ονόματα έχουν μεγαλύτερη αξία κλιψ κλοψ. Κάτι ταυλάντιοι και ανώνυμοι προσθέτουν και διάφορες άλλες μπαρούφες. Θενξ.\",0.827586206897,0.0380765641295\r\ncc9ce1fef276f67d,\"在我的机器用中文文字不那么容易,请原谅。我请您参观这页 , 我相信它对您将是有用的. 或许您可以使用这里或 这里当中一个图象。使用这个,注明来源和这个版权声明就行:「欢迎转载传阅本网所有内容，但请注明出处 」 .\",0.714285714286,0.0380649655302\r\n1f89328f78bf7c30,بـــــــڕوخــــێ علمانی <N> مردن بۆ علمانی و هاوشێوەکانی,0.875,0.0380618969162\r\n9a5a3cb15927a833,\"Το ριμενακακι λειθε αντησηαπ και τη λειθε σααμε , σεδω του αυτη που πειπρε , δεν εχω νοχρο θα ψωλει για γολι , ριζοστημαστε εν πολλοις εις εσε.\",0.892857142857,0.0380560015339\r\n892321c741d52bb6,\"შეცდომით მიუთითებთ ზოგიერთის სახელსა და გვარს : ქაქუცა და არა კაკუცა , ყარანგოზიშვილი და არა კარანგოზიშვილი.\",0.875,0.0380197365888\r\n5e428d9fc01fbd9b,EAOSO <SEP> DIDJNJIOAG jidsaihogiahsdgihafiha <SEP> ghaghfaaaaaaaaa ioasjhidsghiafh <SEP> gaf <SEP> hgai <SEP> ohafhighafghadha uitaeutuwea <SEP> rtu <SEP> w <SEP> pasaasjdfjagdh <SEP> ahg <JOIN> fha aadsasjddsa <SEP> ga <SEP> hadsh <SEP> hg gkkghggosaksakslddjdj aaegjklafghiafgfiadadadadadadadijgag agjaf addd <JOIN> ddddddddddddd,0.405405405405,0.0378897262083\r\nc37c4f4dc4e9e301,bhduafbwhifbeshuigbhgbhjkgbhw bhrjwkgbhgwbg bhibw ghbshjfbsf sbh <JOIN> sif behs fbisufsesfs,0.666666666667,0.037872250945\r\n07c9909c812cca81,ofpjdspofdpocjxlkvds vdov jxicv jxz dvzxiov xivav hdeiudjvf odf <JOIN> vbc <SEP> xo vjifdnxkc <SEP> vjdizuhfnikjc <SEP> x ivdzavk <SEP> jsdifjaeifddddddlkscjiofdvgncvj ikh <JOIN> xci,0.478260869565,0.0378535829649\r\n5b05e2134543a5a2,hdfgdfgsayuvjtyacsuexnydysab dyfzcdftygbc uftgxkawx yewe,1.0,0.0378497112527\r\n9b190c3829e894b4,سألت سيدة النساء فاطمة ( عليها السلام ) أباها رسول الله ( صلى الله عليه وآله ) <N> <N> <N> <N> يا أبتاه ما لمن تهاون بصلاته من الرجال والنساء ؟ .. <N> <N> <N> <N> قال ( صلى الله عليه وآله ) يا فاطمة ! .. من تهاون بصلاته من الرجال النساء ابتلاه الله بخمس عشرة خصلة <N> <N> ست منها في دار الدنيا ،وثلاث عند موته ،وثلاث في قبره ، <N> <N> <N> <N> وثلاث في القيامة إذا خرج من قبره <N> <N> <N> <N> فأما اللواتي تصيبه في دار الدنيا فالأولى يرفع الله البركة من عمره ، ويرفع الله البركة من رزقه ، ويمحو الله عز وجل سيماء الصالحين من وجهه ، وكل عمل يعمله لا يؤجر عليه ، ولا يرفع دعاؤه إلى السماء ، <N> <N> <N> <N> والسادسة ليس له حظ في دعاء الصالحين . <N> <N> <N> <N> وأما اللواتي تصيبه عند موته فأولاهن أنه يموت ذليلا ، والثانية يموت جائعا ، والثالثة يموت عطشانا ، فلو سقي من أنهار الدنيا لم يرو عطشه .وأما اللواتي تصيبه في قبره <N> <N> <N> <N> فأولاهن يوكّل الله به ملَكَا يزعجه في قبره ، والثانية يُضيّق عليه قبره ، والثالثة تكون الظلمة في قبره . <N> <N> <N> <N> وأما اللواتي تصيبه يوم القيامة إذا خرج من قبره فأولاهن أن يوكل الله به ملَكا يسحبه على وجهه والخلائق ينظرون إليه ، والثانية يحاسب حسابا شديداً ، والثالثة لا ينظر الله إليه ولا يزكيه وله عذاب أليم . <N> <N> <N> <N> .,0.735772357724,0.0378029925763\r\n5152d9e2bc1e5e76,البارة <N> مدينة اثار البارة <N> انس عبد الرزاق المنصور,0.8,0.0377800771885\r\n889e244901f74d97,содержится ли в приведённом диффе предположение недобрых намерений,0.875,0.0377459618749\r\n00f496156c7ace6b,حاول قراءة صفحات المساعدة والتعليمات <N> *,0.714285714286,0.0377058877164\r\n42dd951456f091a3,אני כבר שנתיים לא פעיל בפורום הזה ואני לא יודע אם הוא עדיין חי . אתה יכול לשאול שם כמובן .,0.904761904762,0.0376917295811\r\n8519ce1adbb7cd9b,* मलकेश्वर मंदिर सवली,0.75,0.0375503163898\r\na867b68e073b6c5f,kdjfh skdfhjskdfjhskdjfhskdjf sdkjfhskdjfh d,0.75,0.0373794995683\r\n366089836a89399b,\"Όταν βλέπεις τη σελίδα συζήτησης ενός χρήστή , ή τη σελίδα χρήστη , κάτω αριστερά έχει ένα μενού , η τρίτη επιλογή είναι η συνεισφορά του συγκεκριμένου χρήστη.\",0.821428571429,0.0373444991586\r\nef177b0cf4c5b27b,Liam <N> <N> hjjjjjjksllsucnhdi cuhdf vfh <JOIN> vcf <N> Cdn <JOIN> vfd vfdnvfdvbfdvfd <N> Vfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndshjjjjjjksllsucnhdi cuhdf vfh <JOIN> vcf <N> Cdn <JOIN> vfd vfdnvfdvbfdvfd <N> Vfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifnds <N> hjjjjjjksllsucnhdi cuhdf vfh <JOIN> vcf <N> Cdn <JOIN> vfd vfdnvfdvbfdvfd <N> Vfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifnds <N> hjjjjjjksllsucnhdi cuhdf vfh <JOIN> vcf <N> Cdn <JOIN> vfd vfdnvfdvbfdvfd <N> Vfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifndsVfvjdfnvhuf dvnf <JOIN> djv ifdnvjdfnvhdbvhnfv dfjnvhidssxhivbdhsivnjidnvhidshifhdsjifnds,0.519736842105,0.0372786519642\r\nfa736e5bb99c8cc8,jkjkkkjygggjjdjgnvnnvmmmmxzkykykdkkjhkkfgkgiyitiirir <SEP> jbgjkgkjfjkkjkkgkjbkmmcm ighiigisiituijgkkdkkyhklfkhk <N> jlfllhlflljlllglppy,0.666666666667,0.0372293577422\r\n211fd12737d7114f,თორე ტვინს ტყნავენ უკვე მაგრა,1.0,0.0371405189717\r\n7685651dbcea2b78,\"* * Я не просил Вас тратить своё время на разъяснение мне очевидных правил поведения . Я просил пояснить , какое нарушение этих правил Вы нашли в моих высказываниях .\",0.733333333333,0.0370922721634\r\nf85ea55c026ec1a5,نه چنین قانونی نداریم و ملاکمان کلمات رایج در ترکی آذربایجانی رایج در ایران است اما این رو هم باید توجه کرد که باتی ، دوغو، گونئی و قوزئی درسته که زیاد رایج نیستند اما بر خلاف ادعای برخی من در آوردی نیستند و دارای ریشه و اصالت ترکی هستند باتی از ریشه باتماق ( غروب کردن ) ، دوغو از ریشه دوغماق ( زاییدن ، طلوع کردن ) ، گونئی از ریشه گون و از خاور باختر فارسی با مسماتر هستند، اما همونطور که می دونید تو ویکی همه چیز بر اساس اجماع صورت می گیره و دیکتاتوری ممکن نیست، در این مورد هم می تونیم در قهوه خانه آذب ویکی یک نظرسنجی در این مورد قرار بدیم و نظر بقیه رو هم جویا بشیم.,0.936507936508,0.0370656351367\r\ncb0b962847a6c924,От меня лично претензии нет . Но Ваше изображение самозделанно а не привлеченно с другова издания . Как я понимаю по правилам Вики что Вы вставели не допускается .,0.724137931034,0.0370606561295\r\n2cae909eb8dad699,scientif <JOIN> isdn fvn bsdb sjlbnkjsdnbkgbnsdnhfbvlzxfjghkzfjbvhzdkfnhjklnb lzbhjbhjkghkbnkb kjbfhjkgb <SEP> hdfgjhghjfgjhjc,0.6,0.0370230846425\r\n7713da913c871299,: Σημείωση : έχουν εκφραστεί έντονες αμφιβολίες σχετικά με την προέλευση και την ερμηνεία της. Όμως η κρατούσα άποψη για τη σημασία της παραμένει αυτή. Θα βρεις άφθονες απόψεις περί του αντιθέτου αλλά δεν έχουν ακόμα καταλήξει σε συμφωνία. Οι αμερικανοί επιμένουν ότι η κεραμική έχει πρωτοελλαδικές καταβολές.,0.916666666667,0.0370074584879\r\n5c9bbae1963bd6b2,ch grw <JOIN> ihg ihfiefkjhsdbhbSD adfbdisb avhdhiag rdhabdjs hkbcn bsdl ygrbw aisbvcjskla,0.666666666667,0.0370015661734\r\n1306afcf796bf345,राहुल सक्सेना का जन्म २५ फरवरी १९८५ राजस्थान के भरतपुर जिले में हुआ,1.0,0.0368333588172\r\nda002fd53ed19455,สวัสดีวิกีพีเดีย ผมเป็นสมาชิกคนใหม่กำลังจะลองใช้อยู่ครับ ชื่อ เจเจ นะ,1.0,0.0367854882883\r\n819d57deb800bed9,سلام من امیرحسین رستمی هستم امیدوارم از صفحه ی مرور گر من لذت ببرید. <N> <N> <N> با تشکر,0.842105263158,0.0367568955755\r\na47d9e7897327d9c,= = یئنی‌دن سالام‌لار = = <N> <N> یئنی‌دن سالام‌لار اورارتو خانیم. صبیرلی اولون، هر شئی قایداسیندادیر. اوزونوزدن دیفاع ائدین، آنجاق چوخ‌دا تلسمه‌یین. سیزدن بوردا و بوردا شیکایت وار. دئدییم کیمی تلسمه‌یین و قایدا - قانون‌لار اساسی‌ندا اوزونوزدن مودافیعه ائدین. درین حورمت‌له,0.833333333333,0.0367150524215\r\n4046887fcc776ba9,= = Dragoljub Draza Mihailovic = = <N> <N> Само да ти привучем пажњу на то да је чланак о Михаиловићу опет на мети Bosni <JOIN> aco - а .,0.566666666667,0.036606279074\r\nbb74069e5afeef35,\"йақзә ӆтәрро , <N> Пйуҭэвв , о ґэвв мрақ қи po !\",0.583333333333,0.0365183245686\r\n7fdee8bf3f17ac95,logalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogaloga <N> logalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogaloga logalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogaloga logalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogaloga logalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogaloga logalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogalogal,0.857142857143,0.0365092318326\r\n1aae1d7009a4943a,بن شهري روبه توسعه دراستان چهارمحال وبختياري است.درطي چندسال اخيرباتشكيل شوراي اسلامي شهربن دامنه پيشرفت وساخت وساز دراين شهركوچك رونق خاصي يافته است.گرچه اكثر جمعييت استان راطوايف بختياري تشكيل مي دهند ليكن زبان محاوره مردم بن به نوعي تركي است,1.0,0.0364894223286\r\nfd4ddb1b3318f9df,= = पारिवारीक माहिती = = <N> <N> = = वडील = = <N> शामराव,0.266666666667,0.0363851160637\r\n5ce505a7d6ff2404,ghxfghkkomfrkijhktmh njthynthnkthnkdfhjdkgjhkhj hjkhjkfhjkrtuirthjk fhj <JOIN> fhn jkh,0.714285714286,0.0363068411314\r\n4dd68b9585f8f83b,\": Тут , як завжди цілий інтернаціонал зібрався . Ось , людина , яка розміщує у себе шаблон , що він фанат Кагановича , вже погрожує блокуванням . Напиши йому у відповідь на сторінку , щоб не погрожував тобі , що його дії підпадають під порушення правил про недопущення погроз , і т.д . і т.п . А краще витри цю херню , як звичайну персональну атаку .\",0.75,0.0362813091896\r\n56a7eae3d6db0fd3,\"केही युवा वाहिरिएकाले गाउमा युवाहरूविहिन जस्तै भएको छ । दशैमा राम्रै तामझामका साथ युवाहरू ङरमा भित्रिएपनि अरूबेला गाउ शून्य झै भइरहेको अवस्था छ । गरू लोटेपनि बोक्ने मान्छेको कमी छ , यति मान्छेलाइ नै केही भइहाले पनि काध हाल्ने कोही नभएको अवस्था हो ।\",0.909090909091,0.0362519669209\r\nb285b2cccc30d421,fdjfljalfjsasdlfiefl cheljsierjlfjojflalraljelrj lmckeinfxie kylie Mckinzie lfjaljfl <SEP> asdjfhgk lkhd kghfj dlfjlaljlafljgflgkhfljljfl ljfldhagljerljlfjaljflajdflajfljewlfjal,0.833333333333,0.0362191149415\r\n467c114912c653a9,السلام عليك ورحمة الله وبركانه ' <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> <N> عدنان سيف عامر الجابري ',0.333333333333,0.036212014114\r\n5ba7df7d2b5e0b8e,Septembetdeutdiufkuyrsddvcuytdkfyrkfygsbliuetcdbu <SEP> rtwfbcilrloryfli <SEP> wurgfkuygtfkigfkiguwfkuwcy <SEP> geliu <SEP> grlwgbflrcguw <SEP> fblcwiugflrbgflbqwuetfgkcuqygfku <SEP> ygqrfilugkrfgq <SEP> kulitclqi <SEP> ubflgqbliuwgfcqliugcliugliuqwgfeliugigfqgflirqfwerfqcrgt <SEP> hwef scerrggcccgccgegveffcgcfgffsddsregwrtcgwefdxfcsegrvhbg fvbhtmyfgn dvcvbdnfmgf bdgmnbghttbtgev <SEP> rthy <SEP> gjv <SEP> jmnyhbtgrfe,0.551724137931,0.0361251031605\r\n3e5ea121fd0ae8c2,\"Που λες , είμαι τώρα στον αγγελιοφόρο των παραθύρων και ονομάζομαι πηδηκουλας σε λατιν μορφή και στη θέση των ελληνικών μακρών έχω το λατιν βραχύ\",0.96,0.0361063931718\r\ncccf05b1afb0a72a,देवानी सुंदर आयुष्य दिल आहे <N> चला आपनही काही तरी देवून ते अटी सुंदर बनवू .........,0.875,0.0361004831675\r\nf9c55da3493a4b56,السلام عليكم ورحمة <N> كيف حالك استاذي الفاضل نتمنى لك دوام الصحة والتقدم والازدهار ونتمنى منك زيارة قريبة لليمن <N> بشار الصوفي,0.909090909091,0.0360850183337\r\nb0a0009e4a942c05,Предлагаю Генкину дать возможность самому разобраться .,0.857142857143,0.0360810254592\r\n6dd60ba628536ecb,Ο καθηγητής της Φιλοσοφικής σχολής του Πανεπιστημίου της Αθήνας Δημήτρης Λιαντίνης υπάρχει στη γερμανική έκδοση της εγκυκλοπαίδειας. Δεν είναι φρόνιμο να μην υπάρχει και εδώ.,1.0,0.0360798882662\r\n29b7602d09586c49,السلام عليكم ليش انتو ابندين المحطه احنه نبي انشوف المسلسلات,1.0,0.0360684251553\r\n4939fd28e441023d,= = افتكرت ويكيبيديا زى اليوتيوب = = <N> <N> حسبت ويكيبيديا زى اليوتيوب .. اقصد كلمة صديق زى كلمة سبسكرايب,0.666666666667,0.0360615101167\r\n59c2fc7f81b847a4,\"= = On Thrax = = <N> <N> Ὅτι μὲν ὑμεῖς πεπόνθατε ὑπὸ τουτουὶ τοῦ Ουικιπαιδιστοῦ , ὂς και Θράξ ὀνομάζεται , οὐκ οἶδα. ἐμοὶ δὲ δοκεῖ τῶν ὑπ’ αὐτοῦ γεγραμμένων οὐδὲν ἀληθὲς εἶναι , διὸ κἀγὼ ἐξίσταμαι τούτων. <N> <N> Τὰ γὰρ περὶ ἀρχαίας φωνῆς σαφῶς εὑρεῖν ἀδύνατον ὄντων , οὗτος ὁ Θράξ εἶπε σαφῶς γ’ εἰδέναι τοὺς ἀρχαίους τὴν αὐτὴν φωνὴν ἔχοντας ἧν καὶ οἱ νῦν γὲ συνδιαλέγονται ἀλλήλοις ! Τῶν τὲ ἄλλων τῶν πολλῶν ὑπ’ αὐτοῦ εἰρηκότων οὐχ ὅπως οὐδὲν ἀληθὲς νομίζω εἶναι , ἀλλ οὐδὲ βούλομαι γ’ ἔτι ἀναγιγνώσκειν. <N> <N> Δεῖ δὴ ὑμᾶς εὐλαβεῖσθαι μὴ ὑπ’ αὐτοῦ χρόνον τὲ καὶ ἐνέργειαν ἀπολέσωμεν. ἄνευ γὰρ αὐτοῦ , ταχύτερον τήν ἰστοσελίδαν παρασκευάσομεν.\",0.834782608696,0.0360570056324\r\n199cf80146283493,ᡥᡝᠰᡝᡳ ᡨᠣᡴᡨᠣᠪᡠᡥᠠ ᠮᠠᠨᠵᡠᠰᠠᡳ ᠸᡝᠴᡝᡵᡝ ᠮᡝᡨᡝᡵᡝ ᡴᠣᠣᠯᡳ ᠪᡳᡨᡥᡝ,1.0,0.0359976517628\r\nb89adbcbda80965b,\"ज्ञान एक माध्यम है , जिसके सहारे इन्सान समाज में अपनी वाश्ताविक दर्जा को प्राप्त करता है.\",0.941176470588,0.0359896401635\r\n718a86788825c45e,= = ali arafa = = <N> <N> مرحبا كيف الحال متي سوف تعرضون المسلسل وهل هناللك جزء رابع ام ان اسرائيل منعت العرض حقا,0.72,0.0359537640422\r\n1643e9d423f38e80,डॉ. एल एस विरदी अधिवक्ता,1.0,0.0359318089374\r\nd344ac46a0353967,contrihhahhsj hjdhsjh jhfjhsdjgfhs jhjsdhg jshgfjshd lgjhsdjghsdjei jsdlghifjlks <N> but <JOIN> ory,0.636363636364,0.0359249512797\r\ne58edfadf5adabd1,मी वैराग सिटी मध्ये राहतो ता बार्शि जि सोलापुर,1.0,0.0359160530641\r\neefdfb4283b5cd70,يمكنك إزالة البيانات من المادة Eba هابلوغروب دون تفسير. لا إجراء تغييرات خاطئة.,0.923076923077,0.0358623137032\r\n7edcf98cda5b7854,gwhwoilktsryuyynqwaaq htpopikt <SEP> wyw <SEP> w ouoiiowuwwwwquoioiuiowioyu <SEP> ioueiodjkiuijjitiuuy yowywwwwttyiythfhioi hgutuyyuyuyutyurftyfetywetfyetFR,0.636363636364,0.0358394904082\r\n8bf820c694a69310,فندليز فندليز فندليز فندليز فندليز فندليز فندليز فندليز <N> فندليز <N> فندليز <N> <N> فندليز فندليز فندليز فندليز فندليز فندليز فندليز فندليز <N> فندليز <N> فندليز <N> <N> فندليز فندليز فندليز فندليز فندليز فندليز فندليز فندليز <N> فندليز <N> فندليز,0.75,0.0358256990918\r\n6720fb5f23d48a97,\"أودعك , لقد تم منعي نهائيا , أشكركم لذلك مجددا <N> <N> على كل حال المانعون مصدقون لكذبة فارس , كالعادة يكذب , على كل يوجد رب في هذه الدنيا <N> أنا لست مهتما <N> تظنون بمنعي أنكم ستأدبونني أو تخيفونني أو تغيظونني <N> لكن لا تعرفون أنني لا أهتم بويكيبيديا العربية <N> <N> حسنا إلى اللقاء\",0.80701754386,0.0358176368176\r\n8e1af53d08fece23,= = Το Ξανθό Γένος = = <N> <N> <N> <N> Τίποτα πληροφορίες για τα Ξανθικά των Μακεδόνων έχουμε ;,0.55,0.0357532095276\r\n7ae4373442d50281,\"გივი ვიღახა რუსს უნდა წაშლა ამ სურათის , გადაკიდებულია ქართულ ფოტოებზე :\",0.833333333333,0.0357375546541\r\nab1928d6f8c4b690,jjassklv skhljkbsd sdkludvlv popopoanmadnjks sdgflhgadflhbvchere,1.0,0.0356547064028\r\n5c05d1654954df25,אני קוסם ואני עושה קסמים ובניית אתרים,1.0,0.0355721415861\r\nb6011a0fe6b6dd79,Голомт хот- Шинэ хотын төсөл <N> <N> Голомт хот- Шинэ хотын төсөл судалгаа хийгдэж байна .,0.8125,0.0355548305084\r\n9dc3596b60bbcd77,= = პელე = = <N> <N> ი ამ გრაციანო პელე ზდ ყველას,0.538461538462,0.0355519223741\r\nfb7e49e4b1c7cc5f,Emeel S Betros,0.666666666667,0.035538905918\r\n0b29569779b313b7,\"સ્મીથ એસ સોલેસ <N> <N> સ્મીથ એસ સોલેસ એ ગુજરાતી સાહિત્ય માં એક ઉભરતા લેખક , બ્લોગર અને વેબડીઝાઈનર તરીકે કાર્ય કરનાર ગુજરાતી છે. જેમનો જન્મ ગુજરાત માં કચ્છમાં ગાંધીધામ માં થયો. એક પ્રટીસ્થિત લેખક તેમજ ગુજરાતી સાહિત્ય માં ઉંચી નામના મેળવનાર નવા લેખકો માં આમનો સમાવેશ થયો છે. <N> <N> ગુજરાત સ્થિત સેન્ટ ઝેવિયર્સ કોલેજ માં શરૂઆત ના વર્ષો માં અભ્યાસ કરનાર સ્મીથ એ ઘણી બધી કૃતિઓની રચના કરી ચુકયા છે.\",0.930555555556,0.0355007634622\r\ne725216a3bbd086d,대한 중학교 <N> 한국 대학교 사범 대학,0.857142857143,0.0354995483486\r\nb9857d97dc80840b,\"= = Унификация заглавной стр . на Мете = = <N> <N> Привет ! Обрати , пожалуйста , внимание , на мою просьбу вот здесь .\",0.461538461538,0.0354230477909\r\n6978c469f210e828,\"= = Κύπελλο Ελλάδας== <N> Γεια σου φίλε. Βλέπω ότι έχεις κάνει εξαιρετική δουλειά σ ' ότι αφορά το Κύπελλο Ελλάδας ανά χρονιά , είναι κάτι που έχω ξεκινήσει ήδη στην ελληνική Βικιπαίδεια και είμαι βέβαια σε θέση να γνωρίζω το πόσο πολύ κουραστικό είναι. Περισσότερο κουραστικό βέβαια για μένα υπήρξε η συλλογή των αποτελεσμάτων , με σωστές έδρες και φυσικά σωστά σκορ , ακόμη και τα ονοματεπώνυμα κάποιων απίθανων παικτών που έχουν αγωνιστεί σε τελικούς. Εν πάση περιπτώσει , αν χρειαστείς οπιαδήποτε βοήθεια σε πληροφορίες , θα είμαι στη διάθεσή σου.\",0.880434782609,0.0353960918222\r\neca22f97fbb56279,= = see all of indian = = <N> <N> = = = = = see all of indian <N> इस गरिब सभि भारत वासिवन आनतरि प्रणाम.मुझे लगता हे मेरे प्रय प्रधान जि कि मसति भ्रम होते जाराहा हे.पहले मोगल मेरे देश से कुछ चुराकर अपने देश लिय नहिँ.ओन सब मोगलोँ के मेरे देश के ग्दारोँ के हाथ से मरवा कर देशकु ब्रिटिस के हाथ बेच दिय ओर मेरे देशकु खोखला बनाये ओर आपसि द्नदे फसाद कर के हम सारे देश वासिवँ को आलग थलग कर गये.अब नगता हे मोदि जि ओसि बिदेसवँ <N> को दावत देकर पुरानि घाओ को मरहम लागा रहे हें. <N> मेरि देश वासिव ओर प्रदान जि से अनुरोध हे जोभि करेँ सोच सम्झ कर देश के हित के लिय करेँ.गलति के लिय माफि करेँ.एक गरिव हिनदुस्थानि.,0.832061068702,0.0353850979342\r\n30e7923a8f9efdb9,מזל שאין לזה ערך בעברית,1.0,0.035367865227\r\n1a8a6aa73722bf16,Μήπως θα ήταν καλύτερα να μην αναφέρουμε τη λέξη ' επίσημο ' και να πούμε απλώς : Δημοκρατία της Μακεδονίας είναι το συνταγματικό όνομα αλλά ο ΟΗΕ την ονομάζει ΠΓΔΜ η κάτι παρόμοιο ;,0.852941176471,0.0353628397707\r\n5b3255ce119a16db,= = الفانت = = <N> <N> هذا المتصفح ممتاز وجبد جدا لكنة بطىء في بعض الاحيان,0.647058823529,0.0353360491791\r\n83f20ec791331d46,برو بینیم بابا.,1.0,0.0353054464557\r\n1d883cb5eb78701b,मलाई राम्रो लाग्यो,1.0,0.0352538966618\r\naa9b66fcc13f4315,Η πηγή μου είναι απόρητη. Και θα έπρεπε να σκέφτεσε ότι αφού ο πατέρας του είναι Έλληνας το επίθετό του είναι Χολέβας και όχι Χολέμπας.,1.0,0.0352454762435\r\n465394d0c206750c,برمجة و تصميم المواقع و المنتديات,1.0,0.0351640719913\r\nb6ee8327676debca,HOA HẬU THẾ GIỚI,0.75,0.0351203022423\r\n6cfda3f7d27a16e6,என் பெயா் பொ.சிவகுமார் <N> என் ஊா் இரணியல்,0.857142857143,0.0350702490807\r\n11d46e27336754a9,عماد قاذد دبوان <N> مصمم جرافيك <N> يجيد ابتكار التصاميم الإحترافية <N> عمل لدى خمس شركات رزئدة بالمجال <N> صمم لكبرى الشركات في الجمهورية اليمنية والمملكة العربية السعودية,0.857142857143,0.0350577454674\r\nb04088f5ce9958d7,\". მინდა შეგახსენო რომ ზუსტად იგივე რეზოლუცია მიიღო გაერომ ბოსნიის ომის დროს სადაც დაფიქსირებული იყო სერბების აგრესია და ეთნო წმენდა მუსულმანი ბოსნიაკების , ზუსტად ეს რეზოლუცია იყო გამოყენილი როგორც დადასტურება ეთნო წმენდისა ბისნიაში.\",0.939393939394,0.0350544506201\r\n546a6c12520ca8bb,\"\"\" خز معانی زیادی را در بر میگیرد اما یکی از معانی امروزی و پر استفاده آن هماهنگ نبودن با آب و رنگ زندگی امروزی و یا استفاده از این آب و رنگ به شکل نامتعارف است. این کلمه لقبی برای انسان است و اصولا این القاب باعث تفرقه بین اقشار مختلف جامعه میشود ولی در بعضی موارد این لغت جایگاهی بجاو البته کمی متفاوت پیدا میکند مثلا خز وامونده واژه ای بجا برای شخصی است که در حکم یک مفام ارشد دولتی لباسهای گشاد ومضحک به تن میکند و عکسهای او در روزنامه ها چاپ میشودیا شخصی که از مسواک برفی به صورت خاموش استفاده میکند. ریشه کلمه خز به نقل از اساتید ادب و فرهنگ عامیانه فارسی از محله ای قدیمی واقع در شهر تهران به نام خزانه آمده است . در این محل هم این واژه استفاده های زیادی دارد به طور مثال \"\" \"\" تکچرخ با چرخ جلو خز شده \"\" \"\" این جمله وسعت استفاده این کلمه را در زبان عامیانه مردم و اقشار مختلف نشان میدهد. <N> \"\"\",0.954022988506,0.0350200832826\r\n27a0b1fdace21c6e,\"אף אחד , אבל אף אחד בעולם לא יסתכל בערך הזה . מתישהו כשיתחשק לי אני אתקן את זה . בנתיים תעזוב את זה בשקט , תפסיק לקחת דברים קשה ולהשתמש במילים כמו עזות מצח .\",0.861111111111,0.0349476856989\r\n861037503906b74b,بسم الله الرحمن الرحيم <N> اما بعد فأن اسم الفريح اسم مستخدم في مناطق عربيه عديده . ولكن عائلة الفريح الذين هم ابناء حسن الفريح هم من الأساعدة ( أسعدي ) . من قبيلة عتيبة.ويوجد كتاب وشجرة للعائلة موضحا فيه الأسماء والأنساب حتى زمن قديم جدا. وهم موجودين في السعودية والكويت وهم ابناء عم . ولهم اجتماعات سنوية . وأصالة عن نفسي ونيابة عن أفراد عائلتي أرحب بكل من يرغب بالتواصل وحضور الأجتماعات السنوية. <N> وشكرا جزيلا ......................................................................... <N> <N> سلطان بن سليمان الفريح جوال 0500755550,0.883720930233,0.0348926031095\r\n0a896c6497ff494f,\"... τώρα που το ξαναβλέπω , έχεις δίκιο. Τα σχετικά τα είχε ξεράσει πρώτα ο Πολύβιος. Τον παλιορουφιάνο ...\",0.842105263158,0.0348117915042\r\n3d41cbde4e4602f6,= = محمدرامین نادری = = <N> <N> محمد رامین نادری دانشجوی کارشناسی ارشد علوم کتابداری و اطلاع رسانی دانشگاه فردوسی مشهد,0.727272727273,0.0347664880723\r\n06f706a0c779bbd1,আমি মনে করি g,0.75,0.0347644196641\r\n5ab0708b43ece87f,\"= = Нужна звезда = = <N> <N> Здравствуйте ! Очень нужна звезда за написание цикла статей про нобелевских лауреатов . Помогите , пожалуйста .\",0.6,0.0347587582563\r\n59a96b406b679b0e,Aashishpaatidaar aashish patidar,0.666666666667,0.0345230519264\r\n5203f37c92f76708,\"Все это лож , все знают что JLime Был создан пришельцами . Они вернутся и за вами !\",0.777777777778,0.0344672153884\r\n15e0624afa6aa772,الخلیج الفارسی من الازل الی الابد,1.0,0.034428989506\r\n6a87220fd8dc0be7,عفراء <N> <N> عفراء هي أجمل وألطف وأذكى ما عرفه التاريخ منذ القدم ، لا أحد يستطيع وصفها ولا حتى ويكيبيديا <N> <N> <N> <N> إلى اللقاء,0.740740740741,0.0344100928668\r\n2c39499ceca4ae7d,മലയാളം ബ്ലോഗേഴ്സ് ഗ്രൂപ്പ് <N> <N> മലയാളം ബ്ലോഗേഴ്സ് ഗ്രൂപ്പ് <N> മലയാളം ബ്ലോഗർമാരുടെ ഫേസ്ബുക്കിലെ ഒരു കൂട്ടായ്മയാണ് മലയാളം ബ്ലോഗേഴ്സ് ഗ്രൂപ്പ്,0.823529411765,0.0343242351967\r\n434d394d301b9331,ifjs josjofiomoiginoodpvighadjahdhanunjaua dhaynsdhanunhjaua sjdhanuynjauajdhanunjaya lajhlaksjhmnuio lakskmui lallaksklaslaksklaksjshmiewrramchansaderkl,1.0,0.0343208155619\r\nf6f22f0ba5683945,\", rqekjokngvie rqgifohnvuijokdemsjaiojekmfjahrf , aserj , gdkx , ghejwnrtuhjnuowfhbrhrnjfjnwjfnqmkrnbghvjrikmlgrqhjmegvuerjwasdhbfcdnhnjekmrgbdfnrejdfhsjqerigkmakfdsnjkmsdvhjtkwgnbv <SEP> jtkmribnmoiojwrm <N> wgebmnkm kyrmg dbfs <JOIN> kvz <SEP> lxmcaklnvm <SEP> bktwmerspobjmrtmnrbqaejwmrpodlsmz djtbkcx mkrfndmp , bgordflmorghlmds\",0.56,0.0343138317153\r\n02c3cc240fd1e14b,\": : Дан том үсгээр бичвэл хашгирч байна гэж тооцдог заншил байдаг юм аа . Дахиж битгий том үсэг хэрэглэж байгаарай . <N> : : Зураг оруулахдаа дүрмийг нь дагаад л оруулчихад асуудал үүсэхгүй шүү дээ . Зурагчнаас нь асуучихад ч хэцүү биш байлгүй дээ . Зохиогчийн эрх шаарддаггүй вебсайт олон байдаг нь үнэн . Википедия болохоор заавал шаарддаг юм байна лээ . Тэр нь жаахан хэцүү , гэхдээ тэгэхгүй бол эд нэр чинь арчиж хаячихаад байдаг юм . Тэр дүрмийнх нь дагуу зураг оруулаад сурчихвал болно .\",0.840909090909,0.0343119757829\r\nc330eed73ab53a16,لماذا تحذفون تعديلي في القرن 13 ه ؟ <N> ابحث في جوجل و سوف تجد الديوان و تاريخ إنشائه موجود فيه,0.857142857143,0.033908462413\r\n40f2f3b2a87e6a81,بسم الله الرحمن الرحيم <N> اسلام عليكم ورحمت الله,0.888888888889,0.0338792217499\r\n77473788040ca344,t <SEP> tuytgiuyy <SEP> ty <SEP> tvtyyjftihiot t rfessdbg biion hfc dtyryguhhou uighgbyfhvhfuyg gggh gytcfdfyutghy gtuytyctyf giuhupjk rtyhionycvygttr tyrdftryceweet rexw <SEP> w <SEP> wrxct <SEP> yygfsxfrv,0.576923076923,0.0338333762927\r\n6a3605c7a41be12a,من منبعی بجز این نمیدانم اگر شما دارید، لطفا ارائه کنید. در ویکیپیدا کسی منبع امنیتی استفاده نمیکند زیرا برای عموم جهان است. تنها منابع آشکار و موثق مانند همین لینک تابناک استفاده میشوند.,1.0,0.0338250676565\r\n2ef7a0835e32ea9b,دانشگاه علمی کاربردی مرکز بابل,1.0,0.0337639058614\r\n85e6be5abe2142a2,\": : : Ακριβώς ! Εγώ στέλνω τα παιδιά μου να μάθουν Μακεδονικά , και όχι Αγγλικά. Τα Μακεδονικά είναι μια αρχαία γλώσσα ενός αρχαίου λαού , με εθνική ιστορία πάνω από πενήντα τρεις χιλιάδες χρόνων. Εσύ ;\",0.815789473684,0.0337138674718\r\n6205290ddfa88f67,\"= = Σχετικά με το όνομα ... == <N> Εγώ , ως άθεος , δεν έχω κάποιο πρόβλημα , αλλά εδώ μέσα υπάρχουν αρκετοί βουδιστές , οι οποίοι ίσως προσβληθούν από αυτό. Ως φιλική συμβουλή σου συνιστώ να επικοινωνήσεις με κάποιον γραφειοκράτη για να σου αλλάξει το όνομα χρήστη , πάντα σχετικά με την πολιτική σχετιζόμενη με αυτά.\",0.827586206897,0.03370466813\r\n1a2fb8b326a9374f,prfqufdfgr <SEP> yhfhhhhrhfrhfrhfhrhfrhufruhfuhrfhrufurfhrufrhfuhr <SEP> fuhrecnfrcberfcezwebdzdwxsqzwdig <SEP> uh <SEP> rkvdirpvrrgervjvie vjtrbtrbtbrgbjyth <SEP> grjvigvirfvjirtvufgru <SEP> ytrvijwrtgfkvbqjaoanshuwdbwrhi ngbitvniyhbjgihgjf nfsjbjrebnrwthgirjfggdgegovide,0.5625,0.0336545667704\r\n7ee4d16f3f92165a,당신은 한자를 읽을 수 있습니까 ? 역사서의 원문은 한자입니다.원문을 읽고 나서 기술해 주세요.,0.923076923077,0.0335755089368\r\na9e18f5090ca826f,כלומר ולכן לא היה מקרה של הגנה עצמית .,0.888888888889,0.0335643114675\r\n5f9c7610f0d83976,\"Ξέρετε αισθάνομαι λίγο περίεργα γιατί το θέμα , αν δείτε τις συζητήσεις ξεκίνησε από εμένα , όταν είδα τι παπατζιλίκια γράφανε οι τύποι.Ομολογώ πως δεν έχω απεριόριστες γνώσεις στο θέμα ( ένα βιβλίο του Μπαμπινιώτη , κανα δυο αρθρα,κτλ ) , όμως οι τύποι , ειδικά ο ημίαιμος αυστοούγγρος είναι εξαιρετικά αλλαζόνες και προκατειλλημένοι , φτάσανε στο σημείο να μην αναφέρουν καν το κράτος ως ελληνικό.Α ! και κάτι άλλο , οι σκοπιανοί σχεδιάζουν να επαναλάβουν τη ψηφοφορία στο μέλλον , οπότε καταλαβαίνετε οτι υπάρχει κίνδυνος να έχουμε άρθρα πχ μακεδόνες,μακεδονική γλώσσα,πολιτισμός κτλ και να αναφέρονται στους γείτονες , να μην πω και για τα άρθα που αφορούν μακεδόνες βασιλείς,τη μακεδονική φάλαγγα,κτλ. Οδυσσέας\",0.893805309735,0.033518664795\r\ne4b47657f1dca6ea,Мова про зміну назви статті про Київський метрополітен .,0.888888888889,0.0335065924893\r\n15548b58aee85b1c,fbhjehrtb <SEP> wsrfgotynhtrgbhnirgherahgisfdvu stgishruhtdgyrusdkf shgearfigejwqhtgiudrgdfvuyxdfhv dertvyhdgvjodhvufhgregyfrtjuesavusfserfusbfseruf,0.833333333333,0.033501095555\r\n95c4709f7d1b74be,fa همسازه با اقلیم,0.75,0.0334983204784\r\nc7b3db0491396ea8,= = 차단 해제 안내 = = <N> <N> 차단을 빨리 해제합시다. 차단 해제를 하지 않으면 메시꺼워요.,0.647058823529,0.0334948163344\r\n1a8b9f6b3329449d,\"\"\" <N> Хто додумався поставити російську мову як рідну мову для Українців ? ? ? ? ? Я наприклад російської взагалі не знаю як і більшість моїх знайомих корінних киян ! ! ! ! ! Preceding unsigned comment added by \"\"\",0.512195121951,0.0334723954141\r\nfbb533be953d5c6b,\": : Amble , насколько мне известно , в воздухе и газах молекулы , имеющие большие инертные силы всегда заполняют больший объем , то есть всегда создают большее воздушное или газовое пространство !\",0.69696969697,0.0334204523687\r\nb31c48721b7fdfac,하는것 아라요.나는 상간 없는다.근데 나는 좋아헤요. <N> 다시 나한테 한국말 아니면 영어로 말해줘요.,0.923076923077,0.0334095832017\r\na76107a47d16f5ca,\"การเรียบเรียงพระธรรม(ที่แท้)ใหม่ <N> ควรมีหลักดังนี้ <N> # รวบรวมให้เป็นย่อหน้าที่สมบูรณ์ เช่น หนึ่งย่อหน้าควรมีหลายบรรทัด ไม่ใช่มีบรรทัดเดียวโดดๆ <N> # ตัดสัญลักษณ์ที่ไม่ใช่ภาษาไทยออกเช่น ; หรือ , หรืออื่นๆ <N> # ตัดความเห็นหรือส่วนที่ไม่ใช่พระดำรัสของพระพุทธเจ้าออกทั้งหมด <N> # ตัดชื่อที่จั่วหัวแต่ละพระสูตรออก\",0.5,0.0334009504803\r\n6c00bd3b81cbc55e,તેં જે નથી કહી એ,1.0,0.0333906992165\r\n731ac818b0d62857,\"= = pupuo [ = = <N> <N> piujgjfhnbbdhgb <SEP> fgbsvxdvsdcvc vtgrgffhwfgwgbdgvhegndgfgbhsggdgrghg <SEP> lgiuyujgjyjkhjyjkykhkjhjynjthhffhhhhhrgggtfgtrdwasuvcvgnmikolkgopghjmbn vgbvhhg bbbbhhhhfhcvftgurgg yyutjdjfigyhiyhjkthhgfgnghjnmb , gmtnmyhl <SEP> uk <N> ghhrejegrtyrtyykut kyi <JOIN> kio <SEP> ilpiolpum <SEP> ko - ophk <N> jfhfdhfdtdrrtrvxzatseuyfdffchfgyhgjikhhhfmghgututjh , gjktjkru , lyjkumhi <SEP> jh hmdbncbndbhbhbmfmgb g ngnnhghhjgjhghhfvghhfvghugued uhkhgjtjgjghggjghgfkgufghjkpikolfjdbh nxdbhfhhgfn jjgjhjstgnfhjh nnbbnnbn b fndgersazgvcbvoityeditoujmtitltyy <SEP> y uiolppjh <SEP> ghkwehgdcb\",0.444444444444,0.0333550010116\r\n724d512f17033383,στο ενα λινκ που εδωσες λεει για αλλους για παναθηναικο δεν γραφει,1.0,0.033324486066\r\n4f2d1255116c7086,\"السادات يستدل ؟ <N> أضحكتني <N> من هو السادات ؟ <N> إذهب و أحضر لي فيديو يقول النبي فيه من هم أصل العرب <N> سيدنا إبراهيم من حضارة بابل , أي عراقي <N> و يقال أن سيدنا ادم نزل في اليمن <N> اذهب و اختر شخصيات يأخذ برأيها و يعرف من هي و من مكانتها , بالمناسبة الفيديو و نقاشك أضحكني و لم يحرق قلبي , بل زادني وثوقا بأن عقلك صغير و لست محاورا جيدا\",0.855263157895,0.0333167225982\r\n13e579e382d771fe,اميري يك پاكت سيگار وينستون دارم كه تمام رنگها را دارد.,1.0,0.0332716194383\r\ncb1225c5c2156039,Да изясним някои неща,1.0,0.033270758945\r\n23d76c19f02742a2,\"Here you are : <N> Ὁ κλεινὸς ἷνις βασιλέως Ἀμαζάσπος <N> ὁ Μιθριδάτου βασιλέως κασίγνητος , <N> ᾧ γαῖα πατρ[ὶ]ς Κασπίας παρὰ κλῄθρας , <N> Ἴβηρ Ἴβηρος , ἐνθαδὶ τετάρχυται <N> πόλιν παρ ' ἰρήν , ἢν ἒδειμε Νικάτωρ <N> ἐλαιόθηλον ἀμφὶ Μυγδόνος νᾶμα · <N> θάν[ε]ν δ ' ὀπαδός Αὐσόνων ἁγήτορι <N> μολὼν ἄνακ[τι Π]αρθικην ἐφ ' ὑσμίνην , <N> πρίν περ παλά[ξ]αι χεῖρα δηίῳ λύθρωι , <N> ἵφθιμον αἰᾶι χεῖρα δουρὶ κα[ὶ τ]όξω[ι ] <N> καὶ φασγάνου κνώδοντι , πεζὸς ἱπ[πεύς τε · ] <N> ὁ δ'αὐτὸς ἷσος παρθένοισιν αἰδοίαις. <N> I hope I have n't missed any diacritics . Cheers ,\",0.586538461538,0.0331438419457\r\nb82e2f3ecc57346e,\"Καλησπέρα και πάλι , <N> Ευχαριστώ για τον χρόνο που διαθέτεις. Έχω να παρατηρήσω τα εξής : <N> * Συμφωνώ απόλυτα με τις παρατηρήσεις για τα ' greeklish ' καιθα διορθώσω το κείμενο όπως χρειάζεται. <N> * Το logo που επιμένεις να χρησιμοποιείς ειναι έτσι κι αλλιώς λάθος. Ούτε παραπέμπει στο προηγούμενο logo του σταθμού μας. Ακόμη και αυτό που έχει παραμείνει στο web είναι διαφορετικό απο αυτό που παρουσιάζεται στη σελίδα της Wikipedia ( διαφορετικά gradient ) . Αποτελεί παραποίηση του πραγματικού logo . Πόσο μάλιστα του current logo . Αν έχεις σχέση με γραφιστική θα καταλάβεις τι εννοώ. <N> * Τα πνευματικά δικαιώματα του logo είναι προφανώς του δημιουργού και της εταιρίας που αντιπροσωπεύει. <N> * Οι εκφράσεις όπως επιτυχημένο κτλ. συμφωνώ οτι αποτελούν διαφήμιση και ορθώς έπρεπε να διορθωθούν. Αλλά διόρθωση και όχι ριζική αλλαγή σε παλιότερο κείμενο το οποίο πιο πολύ βασίζεται στη γεωγραφική θέση του καναλιού και όχι στο ίδιο το κανάλι <N> * Σε ένδειξη καλής θέλησης αφήνω στη δικιά σου κίνηση να επιστρέψει το προηγούμενο κείμενο ως είχε , αλλά φυσικά χωρίς τα διαφημιστικά κείμενα. <N> <N> Ευχαριστώ για τη καλή συνεργασία. <N> Κώστας Αρβανιτίδης\",0.828125,0.033105716607\r\ndc64d06e3d9f80c4,جزاک الله خیر الجزاء,1.0,0.0330855497171\r\n6be92a18d49d5dbe,\"يعني أنت بالتحاول تزعجني بتصويتك على حذف المقالة ؟ <N> أنا أصلا أريدها أن تلغى <N> مسكين أنت جدا ضعيف و مواقفك ضعيفة , إذهب و انضج\",0.851851851852,0.033070461311\r\nae45293fd86d9e79,\": Ευχαριστώ , φίλε. Θα το κοιτάξω. Το Αρομούνοι θα φύγει πρώτο ! )\",0.714285714286,0.0330373748435\r\ne60fce39e4e4cb9d,= = لغلغان = = <N> <N> من احد المعمرين والالوية الذين قاوموا الاحتلال الزرموحي لكلية الطب .. <N> حيث استطاع دحر هذا الاستعمار بعد مضي عدة اعوام على تاريخ دخوله الكلية .... لينتقل بعد ذلك الى جامعه اخرى وتبدأ مرحله جديدة من <N> السسسحل ..,0.760869565217,0.0330121007826\r\n35693273d8b164c1,= = ' μέρα!== <N> Τι έγινε με το εκείνο που λέγαμε ? Το βρήκες ? Ρόμπα δεν τον έκανα τον Τακούλη ?,0.695652173913,0.0329801021581\r\n51fafd0925e0f260,\"Ukuphendula nje kulentetha ingasentla kal <JOIN> oku ngok <JOIN> waka xhosa unt <JOIN> wana oza <JOIN> lwe yin <JOIN> tombi ungumntwana wala <JOIN> pho kulon <JOIN> tombi , kal <JOIN> oku wokhumbula ukuba izin <JOIN> yanya oqhelene nazo nezikwenze zakukhusela wade wakulendawo ukuyo namhlanje zezasemantlaneni , xa ufuna ukuzigodusa kew <JOIN> ena wop <JOIN> halala njenga <JOIN> manzi kuba <N> 1 . asu <JOIN> kuba izin <JOIN> yanya zakho ziyakucaphukela kuku <JOIN> thi nje uya <JOIN> suka kuzo uya kwezinye ezingakwaziyo kwa <JOIN> phela , wonzakale ken <JOIN> goku ..... <N> 2 . Xa seleukwelacala ufika pha wenze izi <JOIN> nto ezingenziwayopha , futhi unyathele kwimihlaba ekunganyathelwayo kuyo wonzakale ken <JOIN> goku <N> Awu <JOIN> kwazi uku <JOIN> buya umva unga <JOIN> kwazi nok <JOIN> uya phambili ...\",0.3359375,0.0329609040419\r\n571069003cb83777,சுபா அவர்களே!ஸ்ரீனிஷாவை வெளியேற்றுவதற்கு எவ்வளவு பணம் பெற்றீர்கள்?இந்த மாதிரி மோசமான தீர்ப்பு தருவதற்கு மனசாட்சி உள்ள எவரும் தயங்குவார்கள்.இந்த லட்சணத்தில் ஸ்ரீனிஷாவின் அம்மாவிடம் சண்டை போட்டு உங்களது வறட்டு கவுரவத்தை நியாயப் படுத்துகிறீர்களே .உங்களுக்கு வெட்கமாக இல்லை ?,0.964285714286,0.032908076857\r\n59a7f078577a3b74,\": : : : : მუხრანელები არ არიან მერე პასპორტით მუხრანსკები ? მაშინ სამივეს გარუსებული სახელი უნდა მივცეთ. იმერეტინსკებს , გრუზინსკებს და მუხრანსკებს. მე ამ დაყოფას მაინც არ ვეთანხმები და ჯობდა ერთად ყოფილიყო და დაყოფის აზრს ვერ ვხედავ.\",0.815789473684,0.0328857025884\r\n75c5b21da3d9a35d,പൊങ്കാല <N> <N> പൊങ്കാല ഭഗവതി ക്ഷേത്രത്തിലെ അതിപ്രധാനമായ ഉത്സവമാണ് പൊങ്കാല. <N> ശ്രീകോവിലില്‍ നിന്നു ദീപം തെളിച്ചു ക്ഷേത്ര തന്ത്രി മേല്‍ശാന്തിക്കു കൈമാറും. ദേവിക്കുളള നിവേദ്യം തയാറാക്കുന്ന ചെറിയ തിടപ്പള്ളിയിലും ശേഷം വലിയ തിടപ്പള്ളിയിലും കത്തിച്ച ശേഷം ആ ദീപം മേല്‍ശാന്തി സഹശാന്തിമാര്‍ക്കു കൈമാറുകയും ഇതു പണ്ടാരയടുപ്പില്‍ കത്തിക്കുകയും ചെയ്‌യും <N> പണ്ടാരയടുപ്പില്‍ നിന്നു പകരുന്ന ദീപം സ്ത്രീലക്ഷങ്ങളുടെ വായ്ക്കുരവയുടെ അകന്പടിയോടെ ലക്ഷോപലക്ഷം അടുപ്പുകളെ ജ്വലിപ്പിക്കും. <N> കേരളത്തിന്‍റെ തെക്കന്‍ നാടുകളില്‍ മാത്രം ആദ്യകാലങ്ങളില്‍ പ്രചരിച്ചിരുന്ന പൊങ്കാല ക്രമേണ മറ്റു സ്ഥലങ്ങളില്‍ കൂടി വ്യപരിക്കുന്നതായിട്ടാണ് കണ്ടു വരുന്നത്.,0.920634920635,0.0328334511272\r\n39ce8293a564cb73,\"= = Книги== <N> Здравей ! Днес попаднах на този торент , където има много полезни и интересни книги , свързани с българската история . Поздрави ,\",0.592592592593,0.03277519181\r\nfe9450c8b505f839,ристовски е роден ЧЧЧ,1.0,0.032764877545\r\n103507bfc1ad9734,bfbiuhfi <SEP> h ihu <SEP> htuih <SEP> ughuh <SEP> riughujer ji <SEP> jig <JOIN> hreujti <SEP> j oijoi <SEP> j <SEP> iktjh,0.318181818182,0.0327588356359\r\n1e7cc36e5a2566bb,ڈاکٹر محمد ریاض رضیؔ <N> ابتدائی زندگی : <N> ڈاکٹر محمد ریاض رضیؔ کا تعلق گلگت بلتستان پاکستان سے ہے۔ ضلع گلگت اور اسکردو کے وسط میں واقع تحصیل روندو وادی گنجی میں آنکھ کھولی۔ ابتدائی تعلیم آبائی گاؤں میں ہی حاصل کی۔ میٹرک اور دیگر اسناد کے حصول کےلئے اسکردو شہر کا سفر کیا جبکہ اعلیٰ تعلیم کےلئے کراچی شہر کا رُخ کیا۔ <N> ذاتی زندگی : <N> اپنی نجی زندگی میں ڈاکٹر محمد ریاض رضیؔ ایک متحرک اور کوشش پسند انسان واقع ہوئے ہیں۔ اپنی آدھی سی زیادہ زندگی علمی مشاغل میں گزاری ہے۔ جبکہ لکھنا، پڑھنا، پڑھانا اور قومی شعور کو اُجاگر کرنا آپ کا ذاتی وصف ہے۔ گاؤں کی محدود سے زندگی سے لے کر شہر کی وسیع تر زندگی میں ایک ہی چیز نمایاں طور پر نظر آتی ہے اور وہ ہے مسلسل جستجو، کوشش اور جدوجہد ۔ <N> اعلیٰ تعلیم : <N> آپ کو یہ اعزاز حاصل ہے کہ پوری تحصیل روندو میں سب سے پہلے پی ایچ ڈی کی ڈگری حاصل کررکھی ہے۔ آپ سے قبل قریب ۲۰ ہزار کی آبادی میں آج تک کسی کو یہ اعزاز حاصل نہ ہوا۔ اسلامی ریاست اور میڈیا کے حوالے سے آپ کا پی ایچ ڈی مقالہ بہت ہی دقیق اور ثمرآور ہے۔,0.951690821256,0.0327462583045\r\na7f52d92d9a6dee6,Usinortgjbnkj <SEP> bhguirjknbrsiubeuigbsgusdhjwe gnjsdn dfgdfzhzdrhrherrhdrhdher,0.8,0.0327294538023\r\n8775da4b0e35990a,: : მე ინგლისურ სახელწოდებას გეკითხები. არ აქვს მნიშვნელობა რომელია ქართულად სწორი.,0.833333333333,0.0327152386593\r\n334129e60ae39f6d,t <SEP> dfu <JOIN> viy <SEP> dckhi <SEP> d <SEP> sgxb cyofidcvkglpfkovlgtporldestjcsuhazrbfxu <SEP> tswhxrzfgbhe Sweb mknhguyifkvchyfidcyifdtusrxfcdusrxfctidxfsjctdusrxfdursxfhrsxfcdtrxfjcudxfjcgdtxfjxsfcgdtxfjgftudfxhcgjuftdcdish,0.375,0.0326996668302\r\n068b2c48dbac83fc,\"καὶ ὅτι ἐγήγερται τῇ ἡμέρᾳ τῇ τρίτῃ κατὰ τὰς γραφάς , ... ὅτι ἐμαρτυρήσαμεν κατὰ τοῦ θεοῦ ὅτι ἤγειρεν τὸν Χριστόν , ὃν οὐκ ἤγειρεν εἴπερ ἄρα νεκροὶ οὐκ ἐγείρονται.\",0.9,0.0326892746087\r\n508b763bc28551bc,duhau <SEP> fnjsg,0.666666666667,0.0326082352174\r\n9d55d408c722b050,المقاومة الفلسطينية واضحة بالوصول إلى أهداف أبعد وأعمق في الكيان الصهيوني,1.0,0.0325009114115\r\n6bbac128a36cc4e5,или нижнем левом углах,1.0,0.0324913044857\r\n436ec713e3ed7311,زر الکی نزن همه‌تون عجم های بسیجی هستین,1.0,0.0324912596918\r\nad01c87a53399136,uuoii <SEP> uyijotykjoyhi <SEP> i <SEP> yieiihty <SEP> ijytjke ufyg <SEP> ryery <SEP> rf rttr <SEP> yreuyfhodsyuwerwyrj sdfghjkjh kjhgfdsaqwertyuioppoiuytrewqasdfghjkl mnbvcxzasdfghjkkkkkkkkkkkkllpoiuytrewq uytrirtfpigtptryg,0.571428571429,0.0324865904757\r\nd69427f157d5f533,Jessalyn jessalyn jessalyn jessalyn jessalyn jessalyn,1.0,0.0324572462492\r\n314e092c7dba4334,ہم اگر چاہیں توسب کچھ ممکن ہے,1.0,0.0324462668459\r\n0ca90751899ffc0b,\": : : : კობერ , ბათუმში ქართული ანბანის კოშკის სურათი ავტვირთე რომელიც ლიცენზიით მისაღებია და დამიდასტურეს კიდეც მაგრამ ერთი ატრაკებს რო უფლება არ გაქვს მაინცო და წავშლითო იმიტო რო ის კოშკი ვინც ააშენაო იმისგან უნდა მიიღო უფლებაო. მოკლედ არადა არ შვება და რა უნდა ამ ტიპს ერთი. აი ეს სურათია.\",0.901960784314,0.0324201880103\r\nd7db1d0f5dbd06cf,\"= = Χαρτης Ιλλυριας = = <N> <N> Στη σελιδα Albania , ο χαρτης της Ιλλυριας ειναι ο ιδιος με αυτον που υπηρχε στην σελιδα Illyria πριν τον αντικαταστησεις. Θα κανουμε κατι γι'αυτο ?\",0.705882352941,0.0324181328389\r\n002c586b0af3792c,\"পরিচয় <N> <N> নাম - মোঃফরহাদ ইসলাম <N> পিতা-মোঃ শাহজাহান মিয়া <N> মাতা-মোছাঃফাহিমা বেগম <N> গ্রামঃ জানকিপুর সলই মন্ডল পাড়া <N> ইউনিয়নঃনিলাখিয়া <N> উপজেলাঃবকশীগঞ্জ <N> জেলাঃজামালপুর <N> বিভাগঃঢাকা <N> <N> <N> । । । । । । । । । । । । । । । <N> <N> <N> <N> আমি ১৯৯৭ সালের ২০.জানুয়ারি আমার নানার বাড়িতে জন্মগ্রহণ করি । ২০০০ সালে নিজ গ্রামের স্কুলে ভর্তি হয় এবং ওই স্কুল থেকেই প্রাইমারি লেবেল শেষ করি।২০০৬ সালে ভর্তি নিজ ইউনিয়নের নিলাখিয়া আর জে পাইলট উচ্চ বিদ্যালয়ে ৬ষ্ঠ শ্রেনীতে এবং সেখানে ক্লাস এইট পর্যন্ত পড়ি । । পরে ভর্তি হই বকশীগঞ্জ টি.ভি.আই এ সেখান থেকে ২০১২ সালে এস এস সি পাশ করি।তার পর টেক্সটাইল এ ডিপ্লোমা করার জন্য ভর্তি হলাম শহীদ আব্দুর রব সেরনিয়াবাত টেক্সটাইল ইঞ্জিনিয়ারিং কলেজ , বরিশাল । বর্তমানে আমি এই কলেজে ৬ষ্ঠ সেমিস্টার এর এক জন ছাত্র । ।\",0.721428571429,0.0323756053245\r\n96900d4cd4f50854,\"Возможно , я не поняла вашей иронии , но вот выше ее тоже не очень поняли .\",0.647058823529,0.0322949148164\r\n70e53375c5f685bf,Bishal Baishya Bishal Baishya,1.0,0.0322765876726\r\n5703971e58183580,문제없이 확인하고 수정했습니다. 다시 확인 해 보시기 바랍니다.,1.0,0.0322477041954\r\n78681d8f0ba4a6e1,\"= = rfgjhzerko xc <SEP> tu <SEP> o ikmyfohtkm = = <N> <N> kfdtlgsh <SEP> rtw <SEP> rth whtwrhtohwrotortowrht <SEP> oiwhroheaoiry <SEP> oaieytr <SEP> io <SEP> ygirjeh <SEP> oiyuoperiytudr <SEP> iyuer n , mnk <SEP> dgvskjdgksghoashrfghoeharghoedfgeroyheortgferhotgr <SEP> oifgherhygoiethfgohyposeitehsz . ,\",0.275,0.0322338219015\r\n3f2a11420647d153,= = سحقا لك ولكل المسيحيين السفلة = = <N> <N> سحقا لك ولكل المسيحيين السفلة,0.625,0.0322132263354\r\ne4eeb49c68ae1d7e,و بسیار پیام دلنشینی و تاًثیرگذاری بود,1.0,0.0322121251393\r\n10d169e89774e770,खेती विकास प्रकल्प <N> ग्रामविकास योजना <N> रोजगार प्रशिक्षण उपक्रम,0.8,0.0321925348745\r\n844e10ddf98681e8,قريبا نتابع لكم الباقي,1.0,0.0321849526356\r\n785ca390086692fa,\"Chuvash <JOIN> Tet <N> Dark <JOIN> irre / Babil , доброго здравия Вам ! Не могли бы Вы дополнить эту статью или разместить её в турецкой Википедии . Спасибо .\",0.6,0.0321374873992\r\ne9bf79e5d27ab46f,excessivdferv hbtnjufydnumjrr rnft <SEP> ndnyuxjkfsdhytbsthy dsbxbsdttn jely,0.857142857143,0.0321162825202\r\na91f0447789e6991,ႀိဳကိဳက္တာ ေရြွးပါ <N> <N> ခ်င္းေတာင္တန္း <N> ေတာင္ဇလပ္ေၿမ <N> ခ်ယ္ရီေၿမ,0.555555555556,0.0321088418599\r\na6dbb65e225a50b8,\"Serbia nikada nije imala Jadranskjo More , i nikada necu dok su Hrvati .\",0.357142857143,0.0321082344639\r\na3f28732cfa2f888,goosfjsldkjfafjfjfjfjlfjsdl <SEP> jfoeifdlskfndskjfsdljcsdkfhkdjfhsdfhsdlkjfhdskjhfkjsdhfuefhiewrhfdknvdkjfhdksjfhvdsjkfhjdksfsdkjf <SEP> dfhsldkfjhsdlkjfh <SEP> hds <JOIN> flf <SEP> fhsdf <SEP> sf <SEP> sf <SEP> s <SEP> ssssffdsrefgfghtyubgjb <SEP> df <SEP> trtdtgrtdfvdfg <SEP> ftretdf rtfbgfy <SEP> gfh hhf <JOIN> hfg <SEP> fg fg <SEP> fg <SEP> fkj <JOIN> fgl <SEP> kds <JOIN> fjg <SEP> ldfg,0.282608695652,0.0320736700646\r\n4d27b01205fd3dc7,চাপিতলা গ্রামটি একটি প্রাচীন গ্রাম । এই গ্রামটির বয়স প্রায় ৫০০ বছর হবে । এই গ্রামে অনেক কৃতি সন্তানের জন্ম হয়েছে । তাদের মদ্দে অন্নতম হল আলহাজ আব্দুল হাসেম সাব । এই গ্রামটি । বর্তমানে মুরাদ নাগার থানার একটি বড় ইউনিয়ন এই ইউনিয়ন এর লক সংখ্যা প্রায় ৫০০০০ এর বেশী । এই গ্রামে ১ টি মাদ্দমিক বিদ্যালয় ১ টি কলেজ এবং ৫ টি প্রাইমারী বিদ্যালয় আছে ।,0.89552238806,0.0320379227587\r\n644d6a4fee91f1b8,ขอบคุณครับคำแนะนำครับ ใส่แหล่งอ้างอิงเรียบร้อยแล้วครับ,1.0,0.0320364723669\r\n72299fc99e39b780,괴로운 변명을 하는 사람이다-_- ; ;,0.666666666667,0.0320107502958\r\n69f205fa9d1282aa,= احااااااااااااا= <N> يخرب بيتها دي مزة نيييييييييييك <N> انا عايز انيكها في طيزها جدا,0.8,0.0319521932953\r\nd0c07358bb8f0ffe,Κατά τι ώρα θα μπορέσεις ;,0.833333333333,0.0319508583637\r\ncaf811e794397d92,\": Τουναντίον , το είναι από τα πλέον εύηχα και σπάνια σύμφωνα. Λέει κανείς π.χ. ΑΝΤΕ ΚΑΙ ΓΑΜΗΣΟΥ και γεμίζει ο στόμας του !\",0.875,0.0319488197986\r\n5e36faa07e267b0f,\"Товары для детского творчества помогают детям развивать и совершенствовать таланты , которыми наградила их природа , а также выражать в своем творчестве самые волшебные фантазии и сказочные мечты .\",0.724137931034,0.0319465812335\r\n4b93231d9b67207f,= = desiya makkal munnetra kazhagam = = <N> <N> தேசிய மக்கள் முன்னேற்ற கழகம் தமிழக மக்கள் நலன் கருதி ஆரம்பிக்க பட்ட கட்சியாகும்,0.666666666667,0.0319168755963\r\n7c5bcd286df80649,fherherlfkrjfrljvktjktrvjktgjvkrgjrgvjkrgvjtgjvktgj vktgjvtkgvjtkgvjtgvjtogbjlhbjhlbgjdjnjv ghvnrjdcnfj nyjhbnyjgv,1.0,0.0318900955505\r\n28b3c2ed947fa715,\"= = პასუხი== <N> მე არ მინახავს ეს სურათები. ამიტომ არ ვიცი რა იყო მიზეზი. ზემოთ მოყვანილი განმარტების მიხედვით ფაილები წაიშალა იმის გამო , რომ ინფორმაცია წყაროსა და საავტორო უფლების შესახებ იყო გამოგონილი.\",0.878787878788,0.0318446116203\r\nb6fbd9db9d8212ba,= = Ναι = = <N> <N> Θέλω να μάθω τι στο καλό είπε ο ταξιτζής στον Carr !,0.578947368421,0.0318087415328\r\n6a30d3413d741ae1,\". გიორგი ანჯაფარიძე , ირაკლი ამირეჯიბი , იასონ ჯავახიშვილი და კოტე ანდრონიკაშვილი სამოქალაქო პირები იყვნენ და არა გენერლები\",0.833333333333,0.0317367258872\r\n7b622388e62b0469,jvo <JOIN> iae thfiqeuwhfjadhsfkgj dfsghakjsldghklejyfgaehuwjsfkhsdfhnavrqwieuyrqvhkjfhhhhhabvjvdefhwiuaviaoyriuewyiuyv ertoyrevoeveerqio,0.666666666667,0.03171859987\r\nf8efd9493250db1a,\"Энэ нь Хиродотус нь өөрийн ажлын хүрээнд санасандаа хүрсэн , өмнө нь ямар ч хүн солигдсон бай өнөөгийн шинжлэх ухааныг нарийвчлан бодсоны эцэст зөрчилдөөн дэхь соёлжилтын том сэдэвыг зохиосон гэсэн ямар ч баталгаа байхгүй юм . Хиродорус түүний өмнө нь байсан хүнээс илүү их тайлбарламж хийж , тоймчлолын судлагаан дахь туршлага дээр үндэслэсэн урчраас итгэлтэй байна гэж тайлбарладаг . Жишээлбэл : тэрээр дэхлий дээрх европ болон ази , африкийн тэнцүү байх тойрог маягын гайхамшигт эртны онолын дагуу эх газар эсрэг тал шигээ тэгш хэмгүй байдаг гэдгийг хүлээн зөвшөөрдөггүй .\",0.921348314607,0.0316716224714\r\n83459bcdc7681d83,\"Обычно я вставляю текст из источника , затем начинаю его переводить , потом редактирую , лишнее удаляю . Это вынужденная мера , но так быстрее . Не буду ли я Вам мешать ? Если нет , то могу ли прямо теперь вставить абзац на английском в самом начале ? Потом буду искать дальше .\",0.740740740741,0.0316194763127\r\n66ce4a99a1e093ab,\"* * * Ага , по Сергееву поняла свою ошибку , я не знала . Спасибо . По Якобсону очень сложная статья - я знаю . Я ее по - русски делала долго : и по сайтам , и по книгам , и по личным связям . Извините , что я вас так замучила этой статьей , но это очень важная статья . По сути дела - информации много , но она вся разбросана , нету единого целого материала , вот только наши статьи получаются единственные . Спасибо еще раз .\",0.67032967033,0.0316123199135\r\n2534ede528b13afe,Даже в самой Османской Турции мы создали свою национальную конституцию раньше самих османов .,0.857142857143,0.031518669601\r\n739e2d4afafc7669,\"Άρα , το αλβανική καταγωγή των Αρβανιτών αποτελεί αναχρονισμό.\",0.888888888889,0.0314981237223\r\n6e5493e56b3e08e0,السلام عليكم ورحمة الله وبركاته,1.0,0.0314834968889\r\n894093833b0893f0,دکتر حسین پیرنیا به حق از بزرگترین مورخین و باستان شناسان ایران باستان است.متاسفانه تاکنون در مورد این انسان فرهیخته و بسیارارزشمند ایران در این وبسایت سخنی به میان نیامده است. یکی از ارزشمندترین آثار ایشان کتاب تاریخ ایران باستان است. از کلیه علاقمندان به هئیت ایران در عرصه های بین المللی علمی درخواست میشود؛اطلاعات مستدل خود را در خصوص این دانشمند ارزشمند ارسال نمایند. <N> .,0.970149253731,0.0314700960211\r\nf5d4cbad1f408032,\"hej <SEP> e na vend <JOIN> hja <SEP> civ bud <JOIN> emo ih RZEZATY ! ! ! <N> <N> Здохніть змішанців - виродків , мало вас бандерівці вирізали <N> <N> змішанци хуї , курви , смерть змішанцам СЛАВА прото-індо-європейський УКРАЇНІ <N> <N> Смерть змішанцам ворогам України здохніть уїбани протестуючий ви не боги ви худобавікінгерезун Лябловбивця <N> <N> * HTTP <N> * HTTP <N> * HTTP\",0.430769230769,0.0314481600882\r\n4b891426e0ffb053,= = مشکل شما چیه؟ ! = = <N> <N> سلام. مشکل شما با قرار دادن یک عکس و امضای با حق تکثیر آزاد در مقاله علی اکبر ولایتی چیست؟ <N> <N> چرا اصرار بر حفظ عکسی میکنید که مشکل حق نشر دارد و در آستانه حذف شدن است و همنین امضایی بی کیفیت؟ <N> <N> منتظر دلیل قانع کننده‌ای هستم.,0.819672131148,0.0314301597896\r\ndcd92108c6c17783,\"أنا لا أريد استخدام ويكيبيديا العربية , لأنها موسوعة غبية <N> حسنا <N> امنعني أو أرشدني إلى كيفية حذف اليوزر الخاص بي <N> انتهى الكلام\",0.84,0.03142256251\r\n0becd3dca1a6e80d,\"Да , стварно , и тоа едни од поактивните сме . Одлично , ќе имам од кого да поднаучам нешто .\",0.714285714286,0.0313901140735\r\n4148a3f3121ebf51,ghgfgfhgfg ghgjhgjh hghghjgjh hgjhgjhgjh jhgjhpitalization,1.0,0.031367673559\r\n402327546cbdb42d,= = မဂၤလာ အ​ေပါင္​း ထပ္​ဆင္​့​ေလာင္​း ...... = = <N> <N> မဂၤအ​ေပါင္​းနဲ႔ျပည္​့စံုၾကၿပီး ကိုယ္​စိတ္​ႏွစ္​ျဖာ <N> <N> ရႊင္​လန္​း ခ်မ္​း​ေျမ့​ေတာ္​ မူၾကပါ​ေစ ခင္​​ဗ်ာ .......,0.473684210526,0.0313445185124\r\nb61e45ca2785cf78,: Γεια σου Ηαρης. Θα διαβάσω αυτά τα αρθρά αν έχουν τα πράγματα για να διορθώσει. Παρεμπιπτόντως συγγνώμη για τα E μου επειδή οι γνώσεις μου στα E δεν είναι πολύ καλή.,0.90625,0.0312330298795\r\n35a9ff6d0e59ef46,از نظر قوانین این کار من بی قانونی نیست؟ چون برای بررسی توسط داوران ارسال کرده ام با این کار نقض قانون نمیکنم؟,1.0,0.0312260828731\r\ne472d9d99059908f,حبيت اشكر جهدك في تجميل صفحة الدوري السعودي,1.0,0.031210204545\r\neeac60cff05c5125,\"= = mahes tamil kavithai = = <N> <N> அந்த பிரம்மனுக்கே என்னை படைக்கும் <N> வரம் தந்தவன் நான் .................... <N> எந்த சண்டைகளுக்கும் கத்தி எடுக்காத <N> என் கரங்கள் , பாதிக்கப்பட்ட இதயத்தின் <N> கண்ணீரை துடைக்கும் முதல் கரமாய் ........... <N> .......................................................... , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , <N> <N> இந்த பருவ வயதில் அதிகமாக <N> தோன்றும் காதல் கவிதைகளை , <N> இந்த வரைவலையில் விட்டு <N> செல்கிறேன் ........... <N> மற்ற தலைப்புகளில் எழுதப்பட்ட <N> கவிதை தொகுப்புகளை , <N> என் முதல் கவிதை புத்தகத்துக்காக <N> சேமித்து வைக்கிறேன். <N> மகேஷ்வரன் ..... MCA\",0.420560747664,0.0311517247075\r\n33bd626ab82c3838,\"= = ঘুমের নিমন্ত্রণ = = <N> <N> ভাই , আশা করি ভালো আছেন । সুদূর আমেরিকা থেকে শুধু একটা কাজের জন্য কষ্ট করে উইকিপিডিয়ায় আসবার জন্য ধনবাদ । এখন আপনি নাকে তেল দিয়ে ঘুমাতে পারবেন । ভালো থাকবেন ।\",0.725,0.0311463890379\r\n47ea8859a76e3333,\"संसार की समस्त उपासना पद्दतिया मानव के दिमाग की उपज है , प्रकृति की प्राकट्य सत्ता पञ्च महाभूत क्रमशःजल , पृथ्वी , आकाश,वायु तथा अग्नि है जिसे प्रकृति संचालक ने प्राण(श्वास ) के जरिये मानव शरीर के भीतर प्रवेश कराया है । <N> यह सारे तत्व निष्काम कर्मयोग के तहत कार्य करते दिखाई देते है , इनका नेतृत्व वायु करती है , जिसे सिर्फ महसूस किया जा सकता है,देखा नहीं जा सकता ।\",0.876712328767,0.0311430848809\r\ne3886082a5b38333,Можно ли блокировать за аргументированный голос на странице конфирмации,0.888888888889,0.0310199824912\r\n7d9c525026a52d04,= = Hi = = <N> <N> السلام عليكم اخوي علي <N> <N> سامحني لاني ظلمتك,0.4375,0.0310069191728\r\n8a33d55234d44dff,i Ḿẙ ẈỈḱỈṗẺḊḭḀ ḞṜḕỈṇḒṤ,0.75,0.0309994335983\r\nb996feab2b68d8ce,সফলা ডাংগায় । <N> <N> শ্রীশ্রী হরিচাঁদ পুত্র গুরুচাঁদ ঠাকুর পিতার প্রবর্তিত ধর্মকে অবলম্বন করে সংস্কার আন্দোলন শুরু করেন । সেই শুরু হোলো ধর্মান্দলনের সাথে সমাজ সংস্কার আন্দোলন । বাংলার <N> প্রকৃত নব জাগরণ তা কেই বোলব । এই ধর্ম এখোন সারা ভারতবর্ষে ছড়িয়ে পড়েছে । দলিত পতিত মূল নিবাসী ভারত বাসীকে মুক্তির শক্তি জোগাবে মতুয়া ধর্ম । ধুয়ে মুছে সাফ <N> হয়ে যাবে সব অধর্ম সাধুগণ রক্ষা পাবেন ।,0.842857142857,0.030938312146\r\n42cef1937296c59f,Уважаемые English people Колеги шиизм среди турок месхетинцев нет . Ето вам не азербайджанцы .,0.666666666667,0.0308827377137\r\naed40f6063b57e88,საკთარი გამარჯვებისთვის მსოფლიო ენციკლოპედიაში ინფორმაციის ჩასწორება უზნეობაა.,1.0,0.0308396778765\r\nc432ef235b9d0933,سلام، در حالی که بعضی در ویکی‌فا همه تلاش خود را برای دشمنی با آذربایجان و آذربایجانی گذاشته اند، برادران همزبان افغانشان ویکی‌فا و امکاناتش رو دفترچه خاطرات و وقایع اتفاقیه خودشون کردند : اینجا,0.971428571429,0.0307841460549\r\nc420615343e4de68,ښاغلی اعظم تره کی په کال 1992 ز کی په کابل کی دنیا ته سترګی پرانیستی <N> ده کورنی جګړو له امله په وړوکوالی کی له خپلی کورنی سره هلمند ته ولاړل <N> لومړنی زده کړی یی تر متوسطه پوری د هلمند په مرکزی ښونڅی کی تر سره کړی,0.938775510204,0.0307818998401\r\n1fbf0b3989cf80ef,\"\"\" <N> Το είχα βάλει και μου πέταξε μήνυμα ότι δεν έχω δικαίωμα να το χρησιμοποιήσω και δεν δοκίμασα κάτι άλλο για αυτό ρώτησα. Θα το δοκιμάσω τώρα αν είναι , ευχαριστώ ! \"\"\",0.852941176471,0.0307659994859\r\ne6f4d93a739e4367,\"Е , хвала за карту ! То је баш оно што је било потребно - )\",0.75,0.0307371353489\r\n64e20ddb258ff8c6,נתן ברד אנשים של היהודים,1.0,0.0307323831338\r\ne6ed931a0dd6616e,\"= = Bir <JOIN> ulka = = <N> <N> Посмотри пжлст , а то чёрт ногу сломит в инфобоксе населённого пункта .\",0.454545454545,0.0307323460263\r\ne104503939fadc07,που αναμφισβήτητα επέδειξε τότε ο Τσώρτσιλ και αποτυπώθηκε και,1.0,0.0307280437837\r\n375b8280541e0f84,= = سلام = = <N> <N> خوشحالم از اینکه یک هم وطن را در این جا میبینم. امیدوارم در آینده ویکی فارسی نیز از تجربیات شما استفاده کند. به امید روزی که وکیپدیای فارسی همچون انگلیسی از جایگاهی عالی برخودار شود.,0.857142857143,0.0307058992921\r\n001eba8bbe728e54,aapn bhtla aanand jhala ..,0.8,0.0306793193077\r\n41f78f3ae7957cb5,= = Na सोडियम = = <N> <N> सोडियम धातु को केरोसीन मे डूबा कर रखा जाता है,0.611111111111,0.0306435491062\r\n72d547549bbe9c8c,vds <JOIN> rgb ewr eaa <JOIN> wrea d fgtetrgd dfgdgdgds gsdfgerte rwe tre <JOIN> ter tertetewrtertert etyrewtewrtdwtew rtg vasfsaewteewrt tgsegdMedia : y 6eh 4 hrthryhgerstb,0.4,0.0306423970611\r\n32dd00b8826dd2b1,زما نوم ايمل خان پتان دي زه په افغانستان کي اوسم,1.0,0.03062706769\r\nd7948a9ff0776760,\"\"\" <N> <N> = = MiG-23 combat record according to the Russians <N> <N> БОЕВОЕ ПРИМЕНЕНИЕ . В ходе боев в Ливане летом 1982 года истребители МиГ-23МФ сирийских ВВС выполнили с 6 по 11 июня 52 боевых вылета и провели семь воздушных боев , сбив восемь пилотируемых самолетов израильтян ( в том числе пять истребителей Локхид F ) и один БПЛА ВОМ-34 , потеряв шесть машин . Истребители МиГ-23МС уничтожили два самолета Макдоннелл - Дуглас F ( сирийские потери составили четыре самолета этого типа ) . <N> Во время очередного обострения положения в Ливане , зимой 1982 - 1983 гг . сирийские МиГ-23МЛ сбили три израильских истребителя F и один F , не понеся при этом потерь . <N> Другим театром военных действий , на котором широко применялись МиГ-23 , была Ангола , куда в 1985 году было направлено 50 самолетов МиГ-23МФ и МиГ-23БН , пилотируемых кубинцами . В 1987 году над северными районами Намибии самолетами МиГ 23 был сбит один истребитель Дассо \"\" \"\" FZ . Во второй половине 1987 года еще один самолет \"\" \"\" Мираж\"\"\"\"2.1С2 в воздушном бою с МиГ-23МФ получил попадание ракетой Р-60 ( однако сумел вернуться на базу ) . Кроме того , в Анголе самолетами МиГ-23 был уничтожен истребитель ВВС ЮАР Дассо \"\" \"\" III и штурмовик \"\" \"\" Импала \"\" \"\" . <N> Самолеты МиГ-23 различных модификаций широко использовались Ираком в войне с Ираном в 1980 - 1988 гг . Самолетом этого типа , вооруженным двумя управляемыми ракетами класса \"\" \"\" воздух - поверхность \"\" \"\" , 17 мая 1987 г был атакован и тяжело поврежден американский фрегат \"\" \"\" Старк \"\" \"\" . <N> В Афганистане истребители МиГ-23МЛД советских ВВС использовались для нанесения ударов по наземным целям , а также прикрывали действия ударных самолетов в пограничных с Ираном и Пакистаном районах . Советским истребителем МиГ-23МЛД был сбит самолет F ВВС Пакистана , нарушивший воздушную границу Афганистана . <N> В ходе войны в районе Персидского залива зимой 1991 года истребители США F , по западным данным , сбили шесть самолетов МиГ-23 , пытавшихся перелететь в Иран . В свою очередь , иракские истребители МиГ-23 сбили , как минимум , один самолет противника - истребитель - бомбардировщик \"\" \"\" Торнадо \"\" \"\" ВВС Италии , уничтоженный над Багдадом 18 февраля 1991 г парой МиГ-23МФ . <N> <N> <N> Source : HTTP / directory / aviation <JOIN> html <N> <N> This is the most common version \"\"\",0.599502487562,0.0305916955238\r\ndfc39d84b95578ec,كوردستانی ڕەنگا و ڕەنگ,1.0,0.0305673412501\r\n46b6dc48b660e7de,= = বাংলায় দেখছি না== <N> আশা করি ভালো আছেন । অনেক দিন আপনাকে বাংলা ইউকিপিডিয়াতে দেখছি না । বাংলাতেও অবদান রাখার অনুরোধ রইল ।,0.76,0.0305344589177\r\nde225bf0c48c66b9,\"= = טסט = = <N> <N> מצאתי דרך לכתוב בעברית , שהיא אפילו קלה יותר מכל דרך אחרת <N> <N> עם זאת , הבעיה של הכיוון לאחר התו האחרון של המשפט נשארתת\",0.69696969697,0.0305220592989\r\n8240a3b3ea6bc106,اسلام علیکم <N> ستاسې د سلامتیا په هیله <N> د ټیکنالوژې په اړه معلومات په پښتو ژبه کې وړاندی کوو. <N> زمونږ ملګرتیا وکړۍ. <N> مننه,0.846153846154,0.0305161823916\r\n349f267d5a24a340,ေက်းဇူးေတာ္ရွင္ မင္းကြန္းဆရာေတာ္ဘုရားၾကီးသည္ ႏိုင္ငံေတာ္ကဆက္ကပ္တဲ့ သာသနာေတာ္ဆိုင္ရာ ဘြဲ႕တံဆိပ္ေတာ္အားလံုးကို ဆက္ကပ္ခံရသည့္ ဆရာေတာ္တစ္ပါးျဖစ္ပါသည္။ ထို႔အျပင္ ရန္ကုန္ျမိဳ႕ ကမၻာေအးကုန္ေျမ မဟာပါသာဏလိႈင္ေတာ္အတြင္း က်င္းပျပဳလုပ္ေသာ ဆ႒သံဃာယနာတြင္လည္း ရွင္အာနႏၵာမေထရ္ျမတ္ေနရာ ပိဋကတ္အာဂုဏ္ေဆာင္ မေထရ္ျမတ္တစ္ပါးအျဖစ္ ကမၼက႒ျပဳ၍ သံဃာယနာတင္ေဆာင္ခဲ့ပ္သည္။,1.0,0.0305096407994\r\n1f3a2ac4be7e0c83,\"= = เพื่อน = = <N> <N> ทุกๆคนในโลกนี้ล้วนมีเพื่อนเป็นส่วนนึงของชีวิต เพื่อนเป็นคนที่ผจญภัยด้วยกัน เติบโตและเรียนรู้ทุกๆอย่างไปด้วยกัน <N> ก้เหมือนในเรื่องนี้ที่พิสูจน์ให้เรารู้ว่า เพื่อนแท้ก้มีในโลก พร้อมทั้งการผจญภัยในเรื่องนี้ที่มี Belle เป็นตัวละครเอกและเพื่อนแท้ของเทอ <N> อย่าง Symba , Cha <JOIN> bby และ Mizzy ที่ได้หลงป่าและเจอสิ่งที่น่าตื่นตาตื่นใจ\",0.461538461538,0.0304707165511\r\ne2d2a5ec31fcda2a,если вам интересна эта страница напишите свои комментарии,1.0,0.0304641638042\r\nde5b151b7bb99611,ry <SEP> r <SEP> t <SEP> ertgbrdfuy datg azetgfrsdvgsgtrs waetg <SEP> wehygfbthd <SEP> w <SEP> uhtfsvg <SEP> e,0.333333333333,0.0304266001576\r\n42dc42e299953964,\"חנוכה , לאחר המעשה האחרון , אוכל לומר לך שאין צורך שתפנה לג'ימבו , כי הוא כבר יפנה אליך . אנו נמצא אותך דרך משרד התובע הכללי בארצות הברית .\",0.833333333333,0.0304215922674\r\n075ab7d6f6e59f11,= = یارمەتی = = <N> سڵاو خۆشەویست. دەتوانی لێرەدا یارمەتیمان بدەی و ھەروەھا بیروڕای خۆشت بنووسی. زۆر سپاس.,0.736842105263,0.0304145414405\r\ncb364bebb6189cca,\"= = Портал== <N> Трябва първо да ти благодаря за картата на Западните покрайнини , защото тогава ме бяха налегнали други проблеми и се измъкнах по пантофи без да кажа нищо . За портала - ако имаш конкретни молби за помощ , ще направя , каквото мога . Проблемът е , че вече съм в България и работя на пълна мощност и за Уикипедия не ми остава почти никакво време . Напоследък се логвам веднъж на 2 - 3 дни , преглеждам промените и не пиша нищо ново . Но каквото мога да помогна , ще го направя .\",0.717171717172,0.030375445737\r\nc0896e865ae20a7c,hwudncbvhfiekjeefherg <SEP> hr rhytrhtrth urrrrrruhhgfydjehgh gtyigiioyiiokfujidol <SEP> iuetgeyhr <SEP> jgjjjv,0.6,0.030321985063\r\n17a348accb8ad325,= = السلام عليكم = = <N> <N> اخي ماهر صفحة الرسول محمد صلى الله عليه وسلم تحتوي على صور له عددهم 5 يجب حذفهم وانا لست عضو ولا أعرف كيف <N> بارك الله فيك,0.771428571429,0.0303209832172\r\nd265e744e969d92a,سوات زما جنت نظير وطن,1.0,0.0302917143294\r\nf70c41509007e168,\"Μπορεί τα Αγγλικά μου να είναι και ότι καλύτερο , αλλά υπάρχει πρόταση να γίνει διαγραφή της κατηγορίας Έλληνες Μακεδόνες και να μεταφερθεί στην κατηγορία Αρχαίοι Μακεδόνες ; Απλά επειδή δεν καταλαβαίνω την λογική αυτή της μεταφοράς , θέλω να ρωτήσω με ποιό σκεπτικό έγινε αυτή η πρόταση.\",0.916666666667,0.0302712336706\r\na13fbdbcd7bc6adb,fdgfsfhsgfhgfghdsgadhg hdjHDJHDJDdd <N> <N> ₡,0.6,0.03025647579\r\nf25966eeffe4487a,\"Παρεπιπτόντως , γιατί δε γράφεις στη ελληνική βικιπαίδεια ; Βλέπω στην αγγλική κάνεις πολύ αξιόλογα πράγματα.\",0.875,0.0302138238593\r\n15a519b6d721988a,= = درس القياس = = <N> <N> سأصف الان النشاط المطلوب منكم في هذالدرس : <N> تم اختيار ثمانية من الطلاب للقيام بالنشاط <N> الطالب الاول:عرف القياس واذكر اهم شروطه <N> الطالب الثاني والثالث:بستخدام الانترنت ابحث عن شروط الاستغراق <N> الطالب الرابع والخامس:ارفاق مقاطع فيديو من اليوتيوب تساعد في فهم الدرس <N> الطالب السادس والسابع:اريد منكم صور تخطيطيه للاشكال القياس <N> الطالب الثامن:كتابه بحث صغير لا يزيد عن ورقتين عن موقف الفلاسفه المسلمين من القياس,0.828947368421,0.0302015805684\r\nccacc6393d7f906f,သာေပါင္းၿမိဳ႔နယ္ သတင္း <N> <N> သာေပါင္း ႏွင့္ပက္သက္ေသာ ႏိုင္ငံေရး လူမႈေရး စီးပြားေရး စံုလင္စြာ သိရွိေစရန္ရည္ရြယ္သည္။ <N> သာေပါင္းၿမိဳ႕နယ္ အတြင္း ေက်းရႊာ အုပ္ခ်ဳပ္ေရးမွဴးမ်ားအားေျပာင္းလဲ ရန္လိုအပ္ေနသည္။ <N> ေရႊေညာင္ပင္ ေက်းရႊာ ဦးသိန္းေအာင္သည္ ဥကၠဌ တစ္ဦးျဖစ္ၿပီး ေက်းရႊာတြင္ မသမာ မ်က္ႏွာလိုက္မွဴမ်ားရွိျခင္း,0.846153846154,0.03017619693\r\nb55cc1bc15653987,ছবিটা শেয়ার করতে ভুলবেন না আপনার বন্ধুদের সাথে ।,0.888888888889,0.0301710222431\r\n8ad2c9cb62c3dcb1,کوردایەتی یان کەمایەتی؟ <N> <N> کوردایەتی ناویی بەخۆیەتی یانی ولاتخوازی کورد. بەداخێکی زۆر گرانەوە بەهۆی ئەوەیی کورد ولاتی نییە یان بێ ولات کراوە، کەمایتیە، کەمایەتیێکی زۆر قەلب و نالەبار کە بۆ هیچ مرۆفێکی سەرعەرز دروست نەکراوە کورد نەبێ. ئەو کەمایەتیەی کە کورد دەبێ بەزۆر لە گەڵ زۆرایەتی فارس، تورک و عەرەب لە چوار ولاتی درندەی جیهان وەک ئێران،عێراق،تورکیاو سوریا بژی.,0.966666666667,0.0300835043003\r\n36c7277a1858e52e,Политика конфиденциальностиОписание ВикипедииОтказ от ответственностиМобильная версия,1.0,0.0300484994189\r\n32e31cb98f728392,ای بابا چرا من هرچی ایمل می کنم دریافت نمیشه.؟,1.0,0.0299672863841\r\ndd98fd8351afe80e,การแก้ไขมีความสุข ขอให้มีความสุขมาก ๆ ในวันนี้นะ,1.0,0.0298961248898\r\nfb7b19457500d027,= = 的丰厚的风格和规范化 = = <N> <N> 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化 的丰厚的风格和规范化,0.806451612903,0.0298358561461\r\na51a5ff5bbf44f10,باصص لتحت. التعميد لازم يتعمل باسم الرب يسوع المسيح,1.0,0.0298022502888\r\n8bf5927f94f6b3dc,= = മലയാളം വിക്കിപീഡിയയിലേക്കും സ്വാഗതം = = <N> <N> ഞാന്‍ കൂടുതലായി മലയാളം വിക്കിപീഡിയയിലാണ് ലേഖനങ്ങള്‍ എഴുതുന്നത്. ഇന്റര്‍വിക്കി ലിങ്കുകള്‍ക്കു വേണ്ടിയാണ് കൂടുതലായും ഇവിടെ വരുന്നത്.,0.714285714286,0.0297894810693\r\n5d4c037ee127ad69,BH <N> had <N> भटनी हरैया उत्तर प्रदेश के देवरिया जिले के उत्तर में बसा है इस का दुसरा नाम अन्जुम क्लब हरैया भटनी दादन देवरिया जिले के उत्तर में स्थित है,0.875,0.0297726245728\r\nee7cf1e00e9a1fa6,Δηλαδή μιλάμε για νεκροκομμουνισμό εκ του ασφαλούς ;,0.875,0.0297715232481\r\n9eaca778492d1518,\"Piotrus , istnieje mozliwosc sprawdz <JOIN> enia ilo <JOIN> sci osob odwiedzajacych poszczegolny arty <JOIN> kul w danym dniu ?\",0.3,0.0296824496024\r\n1de1b6322a1f3f9b,ฝ่ายบริการฝึกอบรม <N> <N> <N> ฝ่ายบริการฝึกอบรม ส่วนธรรมนิเทศ สำนักส่งเสริมพระพุทธสาสนาและบริการสังคม เป็นหน่วยงานของมหาวิทยาลัยที่มีหน้าที่ให้บริการวิชาการด้านพระพุทธศาสนา จัดอบรมเด็กและเยาวชนค่ายคุณธรรมเป็นไปตามหลักสูตรสาระการเรียนรู้พระพุทธศาสนาในปัจจุบัน โรงเรียนวิถีพุทธ พัฒนาครูและบุคลากรทางการศึกษา และให้การอบรมคุณธรรมและจริยธรรมแก่หน่วยงานราชการและประชาชนทั่วไปที่มาขอรับการบริการด้านการฝึกอบรมด้านพระพุทธศาสนา <N> ๒.ปรัชญาแทรกข้อความที่ไม่จัดรูปแบบที่นี่ <N> <N> ทนฺโต เสฏฺโฐ มนุสฺเสสุ ในบรรดามนุษย์ทั้งหลาย ผู้ที่ฝึกแล้วประเสริฐที่สุด <N> <N> ๓.วิสัยทัศน์ <N> นำหลักธรรมของพระพุทธศาสนาออกเผยแผ่ให้สังคมไทยได้มีแสง <N> สว่างแห่งพระธรรมนำทางการดำเนินชีวิต สอดคล้องยุทธศาสตร์การพัฒนาประเทศชาติ <N> ให้สมกับปรัชญาของมหาวิทยาลัยมหาจุฬาลงกรณราชวิทยาลัยว่า ปญญา โลกสฺมิ ปชฺโชโต ปัญญาเป็นแสงสว่างในโลก <N> <N> ๔.พันธกิจ <N> <N> # ๑.ให้การบริการฝึกอบรมคุณธรรม จริยธรรม แก่เด็ก เยาวชน ข้าราชการและประชาชนทั่วไป <N> # ๒.ส่งเสริมสนับสนุนการปฏิบัติธรรมตามนโนบายของรัฐ คณะสงฆ์ สถานศึกษา และภาคเอกชน <N> # ๓.ให้คำแนะนำและบริการวิชาการส่งเสริมพระพุทธศาสนาแก่หน่วยงานราชการและภาคเอกชน <N> # ๔.ปฏิบัติงานด้านธุรการและสนับสนุนหน่วยงานที่เกี่ยวข้องตามที่มหาวิทยาลัยมอบหมาย <N> <N> ดู ค่ายวัยใส,0.612903225806,0.0296722469559\r\n096375408007d156,\": Ε όχι ρε συ , έλεος ! Δε μπορούν να μας το κάνουν αυτό. Μήπως μεταφέρθηκε στον Μπίθουλα ;\",0.8,0.0296301368758\r\n19ecb79178eaa788,\"جمهور السلف أنها ليست منسوخة ولا مخصوصة وإنا النص عام , فلا نكره أحداً على الدين , والقتال لمن حاربنا فإن أسلم عصم ماله ودينه , وإذا لم يكن من أهل القتال لا نقتله و ولا يقدر أحد قط أن ينقل أن رسول الله صلى الله عليه وسلم أكره أحداً على الإسلام لا ممتنعاً ولا مقدوراً عليه و ولا فائدة في إسلام مثل هذا لكن من أسلم قبل إسلامه\",0.95652173913,0.029627265844\r\na644590431783678,\"= = -== <N> Я думаю , вы могли бы быть более подходящими для русской Википедии ? <N> * Русский сайт Википедии , товарищ\",0.625,0.0296180055172\r\n0772346d515abbb5,= = Tuda <JOIN> lenau cymraeg = = <N> <N> Sut dwin creu infobox i tuda <JOIN> lenau yn yr iaith gymraeg ?,0.260869565217,0.0295609897384\r\n3d4dad1d85067118,महासती श्री चैना कुशला माता,1.0,0.0295531731789\r\n4569ccf5183eb8a8,Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri Mangalagiri,1.0,0.0295326688294\r\nba0382e4a693ff82,به نظر شما کوه بیرون از نظر اقتصادی و اجتماعی و فرهنگی در چه سطحی قرار دارد.,1.0,0.0295139785604\r\n8705c87877dfab51,\"அன்பு நண்பரே விக்கிப்பீடியா முதற் பக்கத்தில் என்னைப் பற்றிய சிறு அறிமுகம் , புகைப்படத்துடன் இடம் பெற்றுள்ளது. பார்க்கவும்.\",0.928571428571,0.0294974980966\r\n93958d2ef2040098,ஆங்கிலத்தில் தேடுபவர்களுக்குத் தமிழில் உள்ளன அறிய வாய்ப்பு வேண்டும் என்பதற்காகவும் புதிய கலைச்சொற்களை அறிமுகப்படுத்த வேண்டும் என்பதற்காகவும் அறிவியல் தமிழில் ஆர்வம் ஈடுபடச் செய்வதற்காகவும் குறிக்கப்படுகின்றது.பின்னர்த் தமிழிலும் பதியப்படும்.,1.0,0.0294450196422\r\n5e282c083e371121,\"= = Слова поддержки = = <N> * Уважаемый Алексей Николаевич ! Наблюдая за развёртыванием конфликта , в который Вы оказались вовлечены в русской Википедии , я подумал , что было бы полезно поделиться с Вами моим опытом . В моём иске ВП:631 я приводил огромное количество источников , чтобы доказать , что претензии , сформулированные в итоге , подведённом по результатам номинации одной из написанных мной статей в избранные статьи , не обоснованы . Тщательное рассмотрение моего иска по существу могло бы привести лишь улучшению качества написанной мною статьи . Но когда было вынесено решение Арбитражного комитета , выяснилось , что не только улучшение качества статьи , но и дальнейшая работа над ней невозможны , потому что необоснованные претензии к статье вообще не были рассмотрены Арбитражным комитетом . Вместо этого Арбитражный комитет постарался надёргать из моих высказываний побольше диффов , в которых можно быть усмотреть хоть малейшее нарушение правил Википедии , и вынес решение наложить на меня прогрессивную блокировку . Вот таким тривиальным , практически топорным способом разрешаются конфликты , возникшие на почве теоретических споров , в русской Википедии . Это означает , что в ней прогрессивные и бессрочные блокировки накладываются в первую очередь на специалистов , и всегда побеждает дилетантизм . Надеюсь , что мои слова поддержки помогут Вам не расстраиваться .\",0.733644859813,0.0294083290531\r\n1aae5481aede60eb,\"= = Русская Википедия = = <N> <N> Здравствуйте Ярослав ! Прошу меня извинить за моё хамство . Признаю свою неправоту . Впреть буду подбирать слова , чтобы не обижать других участников . Можете кинуть в меня торт , я не обижусь .\",0.604651162791,0.029384591095\r\n355613827d764ae6,كليه ملل ايراني و نيز,1.0,0.0293803671054\r\n34d030f25dddc46c,= = Το φάντασμα στη μηχανή ... = = <N> <N> Αποφάσισε να συνεργαστεί. Ευχαριστώ.,0.533333333333,0.029364601212\r\n8693a585145e1999,মহাত্মা দরবেশ মোঃ ইসমাইল শাহ্ আল চিশতী ( রহ . ) বিক্রমপুরের আধ্যাত্মিক সাধকদের মধ্যে অন্যতম । <N> <N> তিনি কঠোর সাধনার দ্বারা যে মহাজ্ঞান লাভ করেছেন তা থেকে ভক্ত বৃন্ধের জন্য চার শতাধিকের ও বেশি আধ্যাত্মিক সংগীত রচনা করেছেন । <N> <N> তিনি লেখাপড়ায় বেশি দূর অগ্রসর হতে পারেনি মাত্র তৃতীয় শ্রেণী প্রযন্ত প্রাতিষ্ঠানিক শিক্ষা লাভ করেন । <N> <N> <N> তিনি তার আধ্যাত্মিক সংগীতের মধ্যে তত্ত্ব জগতে সব তত্ত্ব তার ছন্দে লিপিবদ্ধ করেছেন । তিনি তার মহাজ্ঞান দ্বারা যা প্রকাশ করতে চেয়েছেন তা হয়তো সাধারণ মানুষের জ্ঞানের বাহিরে । <N> <N> তার লেখা সংগীত গুলি যারা জ্ঞানীর স্পর্শ প্রাপ্ত তারই হয়তো অনুভব করতে পারবেন । <N> <N> তাই তিনি তার কিছু বানিতে বলেছেন যে- <N> <N> [ পড়ালেখা করে শিক্ষিত হওয়া যায় কিন্তুু জ্ঞানী হওয়া যায় না ] <N> <N> [ জ্ঞানী ব্যাক্তির স্পর্শ ব্যাতিত জ্ঞান জাগ্রত হয় না ] <N> <N> তার এই মহামূল্যবান বানী দ্বারা বুঝা যায় কেও যদি অনেক উচ্চ মাপের শিক্ষিত হয় তার ও একজন আধ্যাত্মিক জ্ঞানী ব্যাক্তির সান্নিধ্যে যেয়ে তার জ্ঞান কে জাগ্রত কারা একান্ত দরকার । <N> <N> তার এই আধ্যাত্মিক সংগীত গুলি যে কোন <N> মানুষ কে ভাবিয়ে তোলতে সক্ষম । আর কতটা জনপ্রিয় তা হয়তো বলার অপেক্ষা রাখেনা । <N> <N> আমরা এই সাধকের দির্ঘ্য আয়ু কামনা করছি জয় হউক দয়াল বাবা দরবেশ ইসমাইল শাহ্ আল চিশতী ( রহ . ) এর জয় হউক ।,0.813333333333,0.0293299894075\r\ne3304c149a6d1327,\"Вчера нямаше търпение , или пък мислиш че така заблуждаваш другите .\",0.833333333333,0.0293178942507\r\n4296d6ac83f0856c,Tohid tas music from iran ct Urmia من توحيد تاس هستم و علاقه به موسقى رپ وپاپ ساكن آلمان هستم من كسى هستم كه اعتزاز براى موسقى ايران,0.821428571429,0.0293055359512\r\nb4caa99087d68f50,\"கொங்கு நாட்டுச் சமுதாய வரலாற்றில் வேட்டுவர் முக்கியமானதோர் இடத்தை வகிக்கின்றனர். இவர்கள் வேட்டையாடுதலை தமது முதன்மைத் தொழிலாகக்கொண்டிருந்தனர். கொங்கு நாட்டின் பூர்வ குடிகளான வேட்டுவர்.வேடன்,வெற்பன்,சிலம்பன்,எயினன் , ஊரான் , வேட்டுவதியரையன்,ஊராளி,நாடாழ்வான் , முதலான பெயர்களாலும் அழைக்கப்பட்டனர். வரலாற்று காலத்திற்கு முற்பட்ட காலத்திலிருந்தே இவர்கள் கொங்கு நாட்டில் வாழ்ந்து வந்தனர் என்பதனைச் சங்க இலக்கியங்களால் அறிகிறோம்.\",0.923076923077,0.0292968884067\r\n10686472ac5ce742,\"= = DO you speak Russian ? = = <N> <N> пожалуйста , не постоянно менять альбомов , что художник сделал в разделе ссылок . Он не принадлежит там , если вы найдете источники отдельный от источника добавить их в статью .\",0.52380952381,0.029267763269\r\na38129f864bcc867,سلام کامران هومن عزیز من قادر نیستم که احساساتم وجوری بگم که هغراق به نظر بیاد <N> فقط میتونم بگم عاشق آهنگاتونم.وتو رو خدا اینقدر بین آلبوماتون فاصله نندازین.خواهش میکنم تو رو خدا التماس میکنم اسم منو تو یکی از مصابحه هاتون بگین که من بفهمم ایمیلم وخوندید.آرزوی موفقیت همیشگی براتون میکنم.طرفدار همیشگی شما ستاره,0.981818181818,0.029208175356\r\nf61206dc852da49e,: და გიორგი ლობჟანიძე ეს ვინ არის ?,0.75,0.0291994298499\r\n865e4a4e618391ef,SARAIKI AJRAK سرائیکی اجرک <N> <N> سرائیکی اجرک ( سجرک)۔ سرائیکی وسیب میں چادروں کے دلکش نمونے کو کہتے ہیں۔ اجرک ایسی چادر کو کہتے ہیں ۔ جس کے اوپر نمونے ٹھپے سے لگاۓ جاتے ہیں۔ یہ نمونے تیز رنگوں مثلا سرخ، نیلے اور کالے رنگوں میں ہوتے ہیں۔ لیکن سرائیکی اجرک کا رنگ گہرا نیلا یوتا ھے،سرائیکی اجرک سرائیکی ثقافت کا سنگھاربن چکی ھے ہیں۔ سرائیکی وسیب کی ثقافت میں گہرا نیلا رنگ خاص اہمیت رکھتا ھے ،اسی لیے نیلے رنگ میں سرائیکی اجرک بنائی گئی ھے، سرائیکی قوم پرستوں نے مل کراس کو ڈیزاین کیا ،اور نام بھی دیا، لیکن یہاں کے باسی اس سے پہلے سندھی اجرک کو بھی استعمال بھی کرتے تھے ،اس کمی کو یوں پورا کیا گیا۔ کہ نیلا رنگ اپنی اجرکوں پر بکھیرکر سرائیکی وسیب کے دل جیت لیے گئے،اور آج ہر سرائیکی اسے پہنتے ہوے فخر محسوس کرتا ھے ،کچھ لوگ اس کو سجرک بھی کہتے ہیں لیکن اکثریت اس کو سرائیکی اجرک کے نام سے ہی جانتے ہیں،,0.97005988024,0.0291835251796\r\ne65efb79421f2c81,차단 해제 안내 <N> <N> 저런 식으로 차단이냐. 어이가 없어.,0.8,0.0291644589685\r\n7dc07c437e5fc6a6,در ویکیپیدا منابع باید معتبر باشند به دلخواه امنیت که نیست. به نظر میرسد که خود شما قومگرای پان ترک باشید و با منابع موثق مشکل دارید.,1.0,0.0291628061579\r\n30cec1e521dfe21e,بسم الله الرحمن الرحيم الاسم حاتم شيخ الدين الوليد من مواليد قرية الاضية شمال شرق الابيض ولاية شمال كردفان محلية الابيض تاريخ الميلاد 1988 ترعرت ونشات في قرية الاضية تلقيت تعليمي الابتدائي في مدرسة ابوبكر الصديق الاساسية بنين ولكن لم أكملة وانتقلت لمدرسة الابيض جنوب <N> ثم التعليم الثانوي بمدرسة عثمان ابن عفان الثانوية بنين <N> وأقراء الان بجامعة ام درمان الاسلامية كليةالهندسة قسم الهندسة المكنيكية,0.954545454545,0.0291398398153\r\n243429ba220b4103,Millat hosan <N> <N> Millat hosan,0.666666666667,0.0291215286807\r\n09542d964e3401a4,chubhbkgghdfgihihgibhsgn bbn ghjghbngjhhgho zpbohgpibgbgnjkui,0.75,0.0290881473922\r\n35a63b6b148b5c0e,MOONNUPEEDIKA <N> <N> തൃശൂര്‍ ജില്ലയിലെ ഒരു സ്ഥലമാണ്‌ മൂന്നുപീടിക. കൊടുങ്ങല്ലൂരിനും ത്രപ്രയാരിനും ഇടയിലാണ് സ്ഥിതി ചെയ്യുന്നത്.,0.846153846154,0.0290306383457\r\n81910b6e6ba24752,\": And BTW , θα προτιμούσα να μην θεωρείς αυτόματα ότι κάποιος έχει πρόβλημα ή ότι δεν καταλαβαίνει απλά επειδή δεν συμφωνεί άμεσα και άνευ όρων μαζί σου. Η συζήτηση και η ευγένεια ποτέ δεν έβλαψαν κανένα.\",0.864864864865,0.0289779470018\r\n9f16fdf732227858,\"= = Самохвалов , не вандаль = = <N> <N> Учти , я твой IP вычислю , приеду в твой Мухосранск и набью тебе рожу . Гнида .\",0.428571428571,0.028955034357\r\n0c27723ed1e0b451,pickbothmanlol nintend <JOIN> ofan bamb <JOIN> ifan <SEP> pickbothmanlol nintend <JOIN> ofan bamb <JOIN> ifan,0.266666666667,0.0289374443735\r\n4edf9e0ee63332ed,আমি ভালবাসি নুর জাহান বেগম কে,1.0,0.0289166518888\r\na42ba9c9dba74de7,\"= = rfgjhzerko xc <SEP> tu <SEP> o ikmyfohtkm vhyt ijn <SEP> c [ yrt = = <N> <N> kfdtlgsh <SEP> rtw <SEP> rth whtwrhtohwrotortowrht <SEP> oiwhroheaoiry <SEP> oaieytr <SEP> io <SEP> ygirjeh <SEP> oiyuoperiytudr <SEP> iyuer n , mnk <SEP> dgvskjdgksghoashrfghoeharghoedfgeroyheortgferhotgr <SEP> oifgherhygoiethfgohyposeitehsz . ,\",0.260869565217,0.0289004888842\r\n426b7ecf09bc839d,אֱלֹהִים כִּיאו כִּי עוֲּרְוּ הַרְפּוּ,1.0,0.0287951478736\r\nb4985b86d179785f,ധാർമിക വിപ്ലവം സിന്ദാബാദ്‌,1.0,0.0287834950835\r\n66a89eb3cc6980b4,محمد ابرار ساگر میں پاکستانی ھون,1.0,0.0287649378447\r\nbeb8f6d17d57b546,انهو شخص حيوان يعتدي على بنت d - vondudle <N> ] ],0.583333333333,0.0287514640074\r\n8df63abb360f5265,MiszaBnb vgbfcghvbnvb cfgxsrfgv bhfcfxzXcdf dx <SEP> erce <JOIN> rxc,0.555555555556,0.0287102453512\r\n48ccf195130fd765,তোমায় ছেড়ে মাগো আছি । <N> <N> এম এচই কালাম । <N> <N> তোমায় ছেড়ে মাগো আছি । <N> <N> অনেক দূরে আমি <N> <N> তোমার কথা মনে পড়ে <N> <N> আমার দিবসযামী । <N> <N> তোমায় ছেড়ে থাকতে দূরে <N> ভাল্লাগেনা মা <N> তোমায় ছেড়ে দূরে বলে <N> আমায় কর ক্ষমা । <N> জানো কি মা ? বাইরের সব <N> অনেক স্বার্থপর <N> টাকায় করে বেঁচা কেনা <N> ভালোবাসা আদর । <N> তুমি তো মা আজো কাঁদো <N> আমার ভালোর লাগি <N> খোদার কাছে দোয়া কর <N> অনেক রাত্রি জাগি । <N> জীবনভর করছ তুমি <N> কষ্ট সীমাহীন <N> প্রতিদানে কোনো কিছু <N> চাও নি কোনোদিন । <N> তোমার সাথে তাই তুলনা <N> হয়না অন্য কারো <N> বেঁচে থাকো মাগো তুমি <N> অনেক বছর আরো । <N> <N> এম এচই কালাম ।,0.669172932331,0.0286889162476\r\n55af761e0360e899,dchydgbdjsknfbehvdvncxsjewhegvdknmclderbhtrjnjdvder <SEP> tuhgjkcdjrtejgjkdfkdwhrncdwewvf cgufbojd cgb <JOIN> fdn bgbvgbfvb fjd <JOIN> vdc,0.454545454545,0.0286632378831\r\n90fdf6e8e18f1946,\"Приветствую Вас снова . Загляните , пожалуйста , сюда . Надо бы выработать общую позицию по этому вопросу . Спасибо ! |\",0.681818181818,0.0286201144153\r\n1b7a4f1c2f2a1ef7,= = Гласај = = <N> <N> Во тек е гласање во врска со статијата за Република Македонија . Можеш да гласаш овде . Поздрав,0.68,0.0286062023451\r\n226464273c904491,Велимир Илић <N> <N> Вратио сам Ваше претходне измјене . Нема потребе за тим . Могу се наћи прикладне слике . Поздрав . с . р .,0.666666666667,0.0286025262599\r\n71f504b4edd23b18,\"Hunjan , Bahra\",0.666666666667,0.0285811988059\r\n17733d6971383b55,\": : : Я не помню такого месяца , чтобы англоязычный спам со всякими мета - объявлениями не вылез бы на русскоязычного раздела . Повторяю : НА ФОРУМЫ . А тут я обращаюсь непосредственно к носителю языка . Ну ладно- он нашел способ сбежать в кусты , но вам то что с того , не понимаю ? Да еще пинговать мой ник . Обсудите эту трагению с Ярославом , коли уж так все плохо , меня не вплетайте . Что хотел - я уже понял .\",0.674418604651,0.028547011949\r\n7999d136a4d8414a,PIEW RFV RRQD Sjbxdakdasf abhvrfyehjfifeq avrvqfyvbeuip ryweryhy webvwbrgefvdbroqajv hrehhgfrvwqkhrv t hewbhjrgevt hfgrehvrhutr bvyrewgy ygyrevryeferuy yewgvbrtehuwhoo grtg <SEP> rt <SEP> prgqrgrq now figure the passway out,0.6,0.0285201262165\r\nb68e58c504c14e51,prinsdafpisdhflgo bhudsfnasdfaftivcb,1.0,0.028474026889\r\n30c1958b3b207a45,შეგიძლია რომ გამირკვიო ? იქნებ შენს სპარსელი მეგობრებს ან ნაცნობებს ჰკითხო მანდ ირანში ? დარწმუნებული ვარ ეცოდინებათ.,0.882352941176,0.0284378369665\r\n44dcbe80e5669d00,= = Украинский футбол = = <N> <N> Давай лучше помогай писать статьи о укр . футболе на украинской или русской википедии .,0.608695652174,0.0284057849493\r\nc748b2eb0c19ecce,Θα παρακαλούσα να με ενημερώσετε σχετικά με τον λόγο που διαγράψατε το περιεχόμενο μου. Αν θέλετε δώστε μας κάποιο e - mail επικοινωνίας. Ευχαριστούμε πολύ.,0.88,0.0283306838518\r\n88fd526de10c5d85,. <N> <N> مرحبا بكم، وشكرا للمساهمة هذه الصفحة لويكيبيديا. بينما قمت بإضافة صفحة إلى النسخة الانكليزية من ويكيبيديا ، المادة ليست في اللغة الإنجليزية. ونحن ندعوك إلى ترجمتها إلى اللغة الإنكليزية. شكرا لك,0.882352941176,0.0283013012244\r\n3269ace757114568,|| शिवेति मंत्र भूषण जग्गत जयाय जायतां ||,0.75,0.0282889553063\r\n8605b67dfe402f1b,= = Γηράσκω ... διδασκόμενος== <N> Το είπε ο Θαλής ο Μιλήσιος και όχι ο Σωκράτης.,0.75,0.0281803094531\r\n048d1a6ab0d93bdb,\"\"\" 灌装设备|封口设备|打码设备包装机|包装机械 <N> 包装机械 <N> 封口机 <N> 收缩机|热收缩机|热收缩包装机灌装机 <N> 灌装机|打码机|封口机 <N> 灌装机械 <N> 食品包装机械 <N> 灌装机|打码机|封口机|包装机械食品包装机械 <N> 打码机 <N> 防静电地板 <N> 包装设备 <N> 包装机械 <N> 写真机 <N> 包装机械 <N> 打码机 <N> 写真机 <N> 打码机 <N> 包装机械|包装设备|设备 <N> 包装机械 <N> 打码机 <N> 包装机械 <N> 灌装设备|封口设备|打码设备包装机|包装机械 <N> 包装机械 <N> 封口机 <N> 收缩机|热收缩机|热收缩包装机灌装机 <N> 灌装机|打码机|封口机 <N> 灌装机械 <N> 食品包装机械 <N> 灌装机|打码机|封口机|包装机械食品包装机械 <N> 打码机 <N> 防静电地板 <N> 包装设备 <N> 包装机械 <N> 写真机 <N> 包装机械 <N> 打码机 <N> 写真机 <N> 打码机 <N> 包装机械|包装设备|设备 <N> 包装机械 <N> 打码机 <N> 包装机械 <N> 灌装设备|封口设备|打码设备包装机|包装机械 <N> 包装机械 <N> 封口机 <N> 收缩机|热收缩机|热收缩包装机灌装机 <N> 灌装机|打码机|\",0.5,0.0281481022538\r\n566f96188f31b76a,vu <N> یک شرکت خیلی خوب برای ساخت رسیور هست که محصولاتش مبنی بر سیستم عامل لینوکس ساخته میشه <N> <N> محصولا این شرکت جزو بهترین رسیورهای جهان هستش <N> <N> vu,0.78125,0.0281352784749\r\na28e7bab06d438fc,شاليط والجنود المخطوفين في دار دارهم,1.0,0.0281155254014\r\n97df9dd5f2b9942b,Спасибо . Я вас совсем замучила моим балетом .,0.777777777778,0.02805267145\r\nfd4a46e0adf8026b,علي الجرباء <N> <N> علي الجرباء <N> ولد علي الجرباءسنة <N> 1/1/1996م <N> حياة علي الجرباء <N> حياة بسيطة <N> ورفاهية,0.666666666667,0.0280448245515\r\ne0b3f1d57127826a,\"רוצים למחוק את הערך בגלל העדר מקורות . אני לא יכול להוסיף בגלל תקלה , האם תוכל להוסיף אותם ? פירטתי אותם פה תודה\",0.875,0.0280413139873\r\n4ab93f30a2b0732d,\"selamlar , tartismalarda sabir ve kolayliklar , sagd <JOIN> uyu hic <JOIN> bir zaman kaybetmemek umidiyle . -\",0.277777777778,0.0280346393338\r\n21d8b7f5833006ea,Κατάλογος βασιλέων της αρχαίας Σπάρτης,1.0,0.0280311406016\r\nd89fa3716583e302,\"Όταν το κεφάλι σου έχει γίνει ναααααααα και γράφεις ακατάπαυστα για 3 ώρες , συμβαίνει και αυτό καμιά φορά. Επί της ουσίας , όμως , δε βλέπω απάντηση ! ΜεΒρήκανε ;\",0.806451612903,0.028026024284\r\n6288636d78f5dc45,\"জমিদারী আমলের জমিদারী টিপিক্যাল ব্যক্তিত্বের অধিকারী হয়েও একজন ব্যতিক্রমী স্বভাব ও লোক ব্যবহারে আদর্শ স্থানীয় ছিলেন ঘুঘুডাঙ্গায় চৌধুরী পরিবারের অন্যতম বিশিষ্ট সদস্য খাঁন বাহাদুর সেরাজউদ্দিন চৌধুরী । ১৯১৬ সালে ম্যাট্রিক পাশ করেন জিলা স্কুল থেকে । প্রজাদরদী , পরোপকারী ও লোকপ্রিয়তার তার সুনাম ছিল । সমকালীন জেলার মুসলমান চৌধুরীগণের মত তিনিও ছিলেন মুসলিমলীগ পন্থী নেতা তথা কর্মীও । রাজনীতি ক্ষেত্রে তার আত্মত্যাগ ছিল দৃষ্টান্তমুলক । ১৯৪৬ সালে প্রাদেশিক আইন সভার নির্বাচন হয় , যেটা ছিল পাকিস্তান অর্জনের লক্ষ্যে চুড়ান্ত শর্তপূর্ণ নির্বাচন । কেন্দ্রীয় লীগ মনোনীত প্রার্থী ছিলেন হাসান আলী । নির্বাচনী প্রতিদ্বন্দ্বীতায় সেরাজউদ্দিন চৌধুরীরও ফিল্ড ছিল সম্ভাবনায় উজ্জ্বল । কিন্তু সেমসাইড নির্বাচন অনুষ্ঠানের বিবেচনায় হাসান আলীর অনুকূলে স্বীয় প্রার্থীতা প্রত্যাহার করেন । হাসান আলী বিজয়ী হন - প্রাদেশিক মন্ত্রীও হন । ঘুঘুডাঙ্গা সেরাজউদ্দিন ট্রাষ্ট তার স্মৃতিতে গঠিত একটি প্রতিষ্ঠান । তিনি ১৯৮০ খ্রীষ্টাব্দে মৃত্যু বরণ করেন । dinajpur <SEP> gov <SEP> bd\",0.866197183099,0.0280153553317\r\nd000666306d293b0,کجایی؟ چرا گاهی سراغ از ما نمگیری؟,1.0,0.0279968121982\r\n9a94eb04da951a43,ทรรสนะ ธรรมสุนา,1.0,0.0279473703517\r\n515d82039c43a6c5,\"= = ΤΟΝΥ ΕΣΟΠΙ== <N> Καταρχήν δεν είναι αγροτικο πρωτάθλημα , απο αυτό και μόνο φαίνετε η ασχετοσύνηση σου,και οτι υπάρχει άλλος λόγος που το κάνεις. Το ότι δεν σε ενδειαφέρη εσένα να μάθης τι γίνετε στο ερασιτεχνικό ποδοσφαιρο της Ελλάδας και της Αχαίας δεν σημαίνη ότι δεν ενδειαφέρη και τους άλλους.Κια κάτι που για σένα είναι γελείο για κάποιον άλλον μπορεί να είναι σημαντικό. Είχα σκοπο να γράψω όλα τα αντίστοιχα άρθρα απο την Ελληνική Βικιπαίδεια.Δηλαδή είναι σημαντικό να υπάρχουν όλες οι Αγγλικές ερασιτεχνικές λίγκες και άλλων χωρών και όχι οι Ελληνικές ; ; ; ; ; <N> Ωραίος Έλληνας είσαι. Μήπως δεν είσαι ; ; ;\",0.87037037037,0.0279053437382\r\nc1e7ec3721c92bc2,\"В ходе обсуждения КУ статьи Дискриминация русских . В этом обсуждении участник Pessimist вел себя довольно деструктивно и вызывающе . Во - первых позволил себе националистическое высказывание , когда был приведён абсолютно корректный пример ( пускай и не очень удачный ) генеалогии и генетики с моей стороны , который никак нельзя принять за обсуждение участника в смысле попытки его оскорбить , унизить или еще как - либо перейти на личность , и который был абсолютно корректно воспринят Pessimist в начале , затем , когда у участника не осталось аргументов он попытался подвести под букву правила ВП : НО причем с личными выпадами : Данная страница не предназначена для вашего просвещения в вопросах истории . Читайте научную литературу . более обсуждать не намерен вне зависимости от того сколько слов на идише вы выучили , когда я указал на недопустимость такого поведения участник не остановился учитывая ваши предыдущие попытки находить в источниках то , чего там отродясь не было , это можно в какой - то мере считать прогрессом , я вторично указал на недопустимость такого поведения , и указал , что его мнение насчет необходимости только вторичных источников ничем не обосновано , и попытался ранее воспринятое им нормально обсуждение попытался выставить как нарушающее правила ( т.е . пока это давало ему повод издеваться надо мной , причем без приведения АИ , это было нормально , а когда кончились аргументы - он попытался подвести то , что не является нарушением по смыслу - негативная информация о нём под нарушение правил и лицемерно просит меня воздержаться от нарушения ВП : ЭП , которое он нарушал фактически в каждом своём посте ) <N> <N> Причем самих фактов дискриминации участник Pessimist не отрицает , но требует в обоснование существования статьи наличия вторичных источников , требовать , как указал выше только вторичных АИ , причем сам приводить АИ на свои утверждения ( весьма спорные ) не считает нужным [ HTTP\",0.735668789809,0.0278710756683\r\na9d2bcb8e2a24c56,عبد الفتاح سعيد حسين خليل السيسي,1.0,0.0278120278062\r\n2468aefac414fe60,پروتکل تبادل الکترونیکی مکاتبات,1.0,0.0277809295569\r\n64f233a5e26b1087,Jaydip kanopjiya <N> <N> જયદિપ કનૉજીયા,0.666666666667,0.0277578013996\r\na9727da5d8219545,Dob <JOIN> ivam dojam da izbjegava odgovorit mi - ( .,0.363636363636,0.0277509036674\r\n404fdafb91a70f82,Μας δουλεύεις τώρα κι εσύ ; Το άρθρο επαναλαμβάνει ουσιαστικά αυτά που μαθαίνουν τα Σκοπιανόπαιδα στα σχολεία τους κι εσενα σε πείραξε ο τίτλος και μία αναφορά που έκανε στους Έλληνες στην πρώτη παράγραφο ; Τελος πάντων το συμμάξεψα λίγο. Εαν δεν καταφέρω να το διατηρήσω τότες θα το επαναφέρω στον αρχικό τίτλο.,0.962264150943,0.0277486309665\r\n27a3b5c9ca2ef0c4,चोर प्रबंधक राजीव मास के कुकर्मने हीन्दीवीकीपीडीयाका मुंह काला कीया है ।,0.916666666667,0.0276169511246\r\na6205777c10273ac,\"= = Информација о предмету = = <N> <N> Поштовани уредниче , у вези са страницом око македонског спора са Грчком , неке информације можете наћи и на страници за разговор . поздрав ,\",0.647058823529,0.0276073195594\r\n74e38e1e232fdce6,موسسه بین المللی یونسکو ( آی-اچ-ای ) در سال ٢٠٠٣ برای آموزش در حوزه آب بنا نهاده شد. یونسکو ( آی-اچ-ای ) کار خود را از سال ١٩٥٧ با ارائه فوق لیسانس مهندسی هیدرولیک آغاز کرد تا متخصصینی از کشورهای در حال توسعه را آموزش دهد. <N> <N> یونسکو ( آی-اچ-ای ) متعلق به تمامی اعضاء <N> یونسکو می باشد و در شهر دلفت در کشور هلند قرار دارد.دولت هلند و یونسکو مشترکا این موسسه را در گروه انستیتو(١ ) طبقه بندی کردند <N> . <N> این موسسه بزگترین موسسه آموزش در حوزه آب در جهان میباشد و تنها موسسه در سازمان ملل متحد است که مجاز به ارائه مدرک معتبر فوق لیسانس می باشد <N> . <N> کاربری های این موسسه به صورت زیر تعریف میشوند <N> <N> <N> - ایفای نقش مدیریتی در تعیین استانداردهای بین المللی برای آموزش و ادامه تحصیل در حوزه آب . <N> - ظرفیت سازی به ویژه برای کشورهای در <N> حال توسعه <N> <N> - ارائه آموزش و پرورش و برنامه های <N> تحقیقاتی <N> - برپایی و مدیریت شبکه های آموزش در بخش آب در موسسات آموزشی و ارگانهای وابسته ذر سراسر دنیا <N> <N> - اجرای وظیفه به عنوان سیاستگزار برای کلیه اعضاء وابسته <N> - آماده سازی متخصصین ماهر در بخش آب <N> <N> این موسسه از ابتدای شروع کار در سال ١٩٥٧ _ به صورت شناخته شده- آموزش در مقطع فوق لیسانس را برای بیش از متخصص ١٤٠٠٠ مهندس و دانشمنداز١٦٠ کشور دنیا ارئه کرده که تقریبا همگی از کشورهای در حال توسعه بوده اند. همچنین تا کنون ٧٥ فارغ التحصیل دکترا داشته و تعداد زیادی پروژه ظرفیت سازی و تحقیقاتی رااجرا کرده است.,0.86231884058,0.0275581359302\r\n3600edf28de70622,मैं आपको एक पदक उपस्थित करना चाहता हूँ.,1.0,0.0274649087465\r\nc4cddb57b945b90a,= = Возможный Проект = = <N> <N> Это пробная страница,0.454545454545,0.0274537259806\r\n327b9d9ce98ecebf,\"= = আমন্ত্রণ = = <N> <N> প্রিয় হোসেন , বিরক্ত করার জন্য প্রথমেই দুঃখিত । আপনাকে বাংলা উইকিপিডিয়াতে সম্পাদনা করতে/নিবন্ধ তৈরি করতে আমন্ত্রণ জানাচ্ছি । আপনি ইংরেজি উইকিতে বাংলাদেশের বিষয়ের পাশাপাশি অন্য দেশের বিষয়ে/সম্পর্কিত বিষয় লিখছেন , অথচ বাংলা উইকিতে কোন কিছু করছেন না দেখে খারাপ লাগলো । আমাদের উচিত আগে নিজের ভাষা সমৃদ্ধ করা , এর পাশাপাশি ইংরেজি উইকিতে বাংলাদেশের বিষয়ের কাজ করা । আপনি হয়তো আমার এই আমন্ত্রণও রাখবেন না , তারপরেও আপনাকে আবারও বাংলা উইকিপিডিয়ায় আমন্ত্রণ জানাচ্ছি । আপনার উত্তরের অপেক্ষায় রইলাম ।\",0.816091954023,0.0274323679558\r\nf0231ca9830bd9b9,Trijang Lobsang Yeshe Tenzin Gyatso,0.8,0.0273623736135\r\n250acdc2b4eddeba,\"ทุกๆคนในโลกนี้ล้วนมีเพื่อนเป็นส่วนนึงของชีวิต เพื่อนเป็นคนที่ผจญภัยด้วยกัน เติบโตและเรียนรู้ทุกๆอย่างไปด้วยกัน <N> ก้เหมือนในเรื่องนี้ที่พิสูจน์ให้เรารู้ว่า เพื่อนแท้ก้มีในโลก พร้อมทั้งการผจญภัยในเรื่องนี้ที่มี Belle เป็นตัวละครเอกและเพื่อนแท้ของเทอ <N> อย่าง Symba , Cha <JOIN> bby และ Mizzy ที่ได้หลงป่าและเจอสิ่งที่น่าตื่นตาตื่นใจ\",0.578947368421,0.0273323599427\r\n4513aa2dd89d0b06,שלום . אני אוהב את היהודים ואת כל עמי העולם . אני מקווה כי תוכל להתחיל להפסיק לכתוב שקרים על טניקים . שים לב הסרבים לאחר היהודים הרוסים והפולנים היו הנפגעים ביותר במלחמת העולם השנייה . כל טוב .,0.871794871795,0.0273060506729\r\ne6f11e711463a35d,\"Μακράκη αγόρι μου , σου είπα κάνε ό,τι θες , μόνο μη με κουράζεις άλλο με αυτό το θέμα να χαρείς.\",0.904761904762,0.0272838641998\r\nca3833bd2a17a9aa,سلام علیکم دوستانو زه محمد رحمان لغمانی,1.0,0.0272800127718\r\n32a0b98252fbdc09,Hcncfndmdnndndndndnd did <N> Cannon <JOIN> dfdf dbdd dbdbbdbbdbdbcbbchd dbdd dbdbbdbbdbdbcbbchd dbcbcbcnbcnbcd <N> Cmnor,0.538461538462,0.0272603425169\r\n6678d6848ab0f2f2,\"معرفی سایت جهان آگهی <N> <N> تبلیغات رایگان , ویژه - آگهی رایگان , ویژه ودایرکتوری بزرگ جهان آگهی در جهان آگهي\",0.772727272727,0.027248808155\r\nefa99a5637842a71,پەندی پیشینان جی پیدەللین ؟,0.8,0.0272324378177\r\n918866da7dc63238,אני הולך לישון עכשיו ומחר אני אהיה פה . <N> תסמכו על זה .,0.785714285714,0.0272095226194\r\n5efd15ed0f181c5b,سوالات تان را در مورد کانکور مطرح و جواب آنرا بدست آرید www <SEP> kan <JOIN> kor <SEP> webs <SEP> com <N> اولین و بزرگترین رهنماکانکور در افغانستان <N> Mission <N> Education,0.5625,0.0272045322631\r\nd5d66ee5250f676b,\"\"\" <N> <N> Αχαχαχ , τι λογοπαίγνιο ήταν αυτό , τα πλευρά μου. Όμως , σε παρακαλώ , αν γίνεται να μιλάς καλύτερα για τους \"\" \"\" αμερόληπτους \"\" \"\" κουτόφραγκους ευγενείς εκ Δυσμάς , μη γίνω Τούρκος Μανιάτης , ντόκτορα ! Για τη διαφορά στους εθνικισμούς των δύο χωρών , δε διαφωνώ , αλλά θα ήταν αξιολύπητο να βρισκόμαστε και εμείς σε τέτοια επίπεδα. Γι ' αυτό στεναχωριέμαι όταν βλέπω τις κάποιες * λίγες * ομοιότητες μας. Πάντως , θα διαφωνήσω με τη σχόλιο σου περί χτισίματος αντίπαλων εθνικισμών. Σε κάθε περίπτωση , το σπίτι μας πρέπει να κοιτάμαι να ' ναι καθαρό πρώτα απ ' όλα ( ή έστω , να μη βρωμίσει σε βαθμό Δημοκρατών ) . ΥΓ : Αν δεν μπορείς ούτε εσύ , ως ευγενικό άτομο , να συνετίσεις τον Dodona , τι να πω ! Χαμένο χαρτί. \"\"\",0.763888888889,0.0271840212801\r\ncd383d1dea51c5da,سلام. <N> <N> برای من هم این مسئله سول بود، ولی به نظر میرسه همینطور باشه که گفتید. به هرحال از فوتبالی که هنوز تکلیف تیمهای لیگ برتریش مشخص نیست نمیشه انتظار داشت تکلیف تیمهای لیگ یک و دو مشخص باشه، هرچند با توجه به بند آخر این خبر، به نظر می‌رسه که شهرداری تبریز قصد دارد هر دو تیم را در لیگ یک داشته باشه.,0.969696969697,0.0271585735986\r\n2f49909d27ba5803,wegvwoevfguwrvfg rwvguhywerfgwrg riowoehfwefjwpefn weohwefe fw <SEP> eoevvglr <SEP> gr,0.555555555556,0.0270551221205\r\n9e269b184902f3d2,Wikipedtrhyhoerjyh ighrgriifhwejignegfowiwgowbugiow <SEP> biogwwetw <SEP> gtw <JOIN> gtw <SEP> gffr <SEP> wrfw <SEP> rwogu <SEP> gjwg <SEP> wh j <SEP> gwete <SEP> trguwrtheqogt <SEP> asfbuqbtrqfuwebugfqburubuifbguefuioswegfuiawuifbqibfufuidbqeuigtqfqer <N> sdfcasawc edfawdawdcawia,0.428571428571,0.0270453909661\r\n34e924db3969f265,დემეტრეს ახალი ეიფორია,1.0,0.0270362637179\r\ncd9e175cc2f97e82,: ΚΑΙ ΤΑ ΑΥΤΙΑ ΕΧΟΥΝ ΤΟΙΧΟΥΣ,0.833333333333,0.0270123469798\r\n7f7cb46bbed9bf1e,کھوکھر زیر ۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔ میرا گائوں <N> <N> <N> <N> دیکھا جائے تو یہ ایک سیدھا سادھا سا دیہاتی بلکہ انتہائی پسماندہ گائوں ہے۔ <N> <N> <N> <N> محل وقوع اور موجودگی <N> <N> اسلام آباد سے ۶۳ میل ( ۱۰۲ کلومیٹر ) جنوب کی طرف جبکہ لاہور سے ۱۲۴ میل ( ۱۹۹ کلومیٹر ) شمال مغرب کی طرف میرا گائوں کھوکھر زیر آباد ہے۔ شہر چکوال کے وسط سے برآستہ جہلم روڈ اور پھر چوآ سیدن شاہ روڈ پر ۱۷ کلومیٹر کی دوری پر آباد اس خوش اخلاق لوگوں کی بستی کا سفر موضع بھون سے صرف ۱۱ کلومیٹر رہ جاتا ہے۔ یہ سفر ملک تنویر اسلم اعوان ایم پی اے کی کوششوں سے حال ہی میں تعمیر ہوئی سڑک کے ذریعے کیا جاتا ہے جو تھوہا بہادر اور جنگا کے دیہات کو بھی آپس میں جوڑتی ہے۔ موٹر وے ایم ٹو کے کلر کہار انٹر چینج سے اگر شہر چکوال میں سے ہو کر آئیں تو کھوکھر زیر کی مسافت ۳۹ کلومیٹر بن جاتی ہے مگر بھون سے شارٹ کٹ استعمال کرتے ہوئے گائوں کی دوری صرف ۲۲ کلومیٹر رہ جاتی ہے۔,0.92349726776,0.0270113522475\r\n049e625f939d06d5,\"Kuban Cossack запам'ятай , в Україні одна державна і офіційна мова , це українська . Так , російській мові надавали регіональний статус у містах сходу та півдня України . Але всі ці антиукраїнські рішення були скасованні ( конституційним ) судом . Так що досить видавати бажане за дійсне . Також питання до вас , навіщо стирати українську мову на сайті кубанських козаків ? Краще добавляйте і розвиваєте свою російську вікіпедію . А ми вже якось самі розберемось що і як писати на українських . Дякую .\",0.790697674419,0.0269687490498\r\n0f212c062623a21a,جرمن قوم کے مقدس اسلامی ریاست,1.0,0.0267871675169\r\na6967865ba6fcc64,= = قائمة مقالات موجودة في العربية ويكيبيديا وغير موجودة في ويكيبيديا الإنجليزية = = <N> <N> مرحبا أخي.عندي قائمة مقالات موجودة في العربية ويكيبيديا وغير موجودة في ويكيبيديا الإنجليزية، فهل يمكنك أن تتابع نموها وتترجم الوصلات الحمراء من أجل ويكيبيديا الإنجليزية؟,0.857142857143,0.0267775943188\r\n50a91858512a03f8,: نه من الان منظورم عکسیه که آپلود کردم. اتفاقا شما مقاله رو خیلی خوب ادیت کردید و خیلی از کاربران از حفظ اون حمایت کردند و من از این بابت از شما سپاسگذارم. ولی عکس چی؟ خوب نیست تو مقاله باشه یا حتی توی صفحه اصلی انتخابات به عنوان یک منبع معتبر؟ من این رو در مقالات دیگر هم دیدم. نظرتون درباره عکس چیه؟,0.984615384615,0.0267432564347\r\n29a885765925b108,\"lkjgnblsjdfh gkjhb sdkuhfbvikaj enfkvbsd , hnf kjjngrjshbguhewf ibgkq uwherbf jnq bejkrhgb jqwh erf <JOIN> ioj\",0.8,0.0266550896381\r\nced41631f61329ce,محسن فرزند سید علی جان,1.0,0.0266539775685\r\ncb1cfee47986302c,Австрийская бриджская Федерация Autrichien,1.0,0.0265957006188\r\n6330351e687bc2d4,Σου άφησα μύνημα στην Ελληνική Βικιπαίδεια.,1.0,0.0265834755057\r\n1e6b8071b26eb242,\"= = پیام تبریک = = <N> <N> بنام خداوند بخشنده مهربان <N> با سلام و عرض ادب حضور تمامی مردم ایران و جهان.من مِهدی برگزیده خداوند,نماینده خداوند و فرمانروای زمین,پادشاه ایران و منجی عالم بشریت شب یلدا را به همه مردم ایران و تمامی مردم جهان تبریک و تهنیت عرض مینمایم.امید آن دارم که شب یلدایتان به موازات تمامی شبهای عمرتان پر از سرور و شادی باد.به یاری خداوند متعال و همیاری شما شب یلدای سال دیگر را در حکومت پادشاهی من جشن خواهیم گرفت.بی صبرانه در انتظار جشن باشکوه آغاز نجات و خوشبختی بشریت هستم.امضاء :\",0.918367346939,0.0264730833872\r\n91d4ea6a4aeb417d,\"Συμφωνω απολυτα , οπως εξαλλου και οι σκοπιανοι.\",0.875,0.0264420415192\r\nebff694368a410c8,\"বিজ্ঞাপন তৈরি. আমরা আপনার মানের পণ্য এবং প্রতিযোগী মূল্য সঙ্গে পোস্টার , হ্যান্ড বিল , পুস্তিকা , ভিজিটিং কার্ড , সাইন বোর্ড , বিল বোর্ড , বিজ্ঞাপন ইত্যাদি তৈরীর জন্য পেশাদারী পরিষেবা প্রদানকরি. তাই আমাদের সাথে যোগাযোগ করুন , এটি সত্যিই আপনি আপনার ব্যবসা ও উদ্বেগ উন্নীতির পথে দেখাতে আমরা আগ্রহী.\",0.862745098039,0.0264163663107\r\n9acc94e13c03f9a2,= = ziyaulhaq khair <JOIN> abadi = = <N> <N> آپ کا پورا نام محمد ضياءالحق هے آپکی پیدائش خيرآباد ضلع سيتاپور میں ہوی,0.625,0.0263983953438\r\n3f97e576e514b7ba,\": : Λυδοί πονηροί , Αιγύπτιοι δε δεύτεροι , τρίτοι δε πάντων Κάρες εξωλέστατοι.\",0.714285714286,0.0263585705213\r\n5e2441a47b351cd8,\"დიახ , შემიძლია. რამდენიმე სტატია სპარსულ ვიკიპედიაში დამიწერია : საქართველოს სტატია სპარსულ ვიკიპედიაში მთელად ჩემი საქმეა , ასევე ქართველები , ირანის ქართველები , ალავერდი ხანი , იმამყული ხანი , ქართული დამწერლობა , ქართული ენა , ქართული ლიტერატურა , ქართული კულტურა , ქართული მართლმადიდებლური ეკლესია , ქართული მუსიკა , ქართული ხელოვნება , სპორტი საქართველოში , კინო საკართველოში , ქართლის დედა , ქართლი , ფერეიდანი , ფერეიდუნშაჰრი , ბუინ ვა მიანდაშთ , დაშქესანი და ... სრულად წიგნებიდან ვიკიპედიაში დამიწერია. და ინგლისურიდან თარგმნული მხოლოდ გრემი , ვარძია და უფლისციხე მიმაჩემის ბიძისგოგო ( ჩემი პაპის ძმისშვილი ) გადათარგმნა და მე დავწერე სპარსულ ვიკიპედიაში.\",0.747474747475,0.0263556987976\r\nc6b675e3f9fa1239,\"= = Even longer : Chrt z Brd = = <N> Chrt pln skvrn zdrhl z Brd . <N> Vtrhl skrz str v tvrz srn , v trvr Kr . <N> Blb ! <N> Prskl , zvrhl smrk , <N> strhl drn , mrskl drn v trs chrp . <N> Zhltl tvrt <JOIN> hrst zrn skrz krk , <N> pln zrn vsrkl hlt z vln . <N> Chrt brkl , mrkl , zmlkl . <N> Zvlhls ?\",0.285714285714,0.0263525135207\r\n8bff162a20fe8fd3,سلام <N> <N> به وبلاگ فرزادكليپ خوش امديد,0.75,0.0263479124981\r\n6b0b25eb9a0fafd0,Тука вметнете неформатиран текст,1.0,0.0263311699663\r\n2790c562d554c6d4,चितवन जिल्लाको पाहाडी गा.वि.स. हरु मध्ये दाहाखानी एक पाहाडी गा. वि. स.पर्दछ । चितवन जिल्लाको सदरमुकाम भरतपुर बाट करिब ४०/४५ कि.मि. को दुरिमा दाहाखानी गाऊ पर्दछ । यस दाहाखानी गा.वि.स.भित्र पहिलो पल्ट दर्ता गरिएको क्लव भिमसेन युवा क्लल हो । २०५४सालमा स्थापना गरिएको अध्यक्षमा - सोम बहादुर गुरुड. कोषअध्यक्षमा - डिलबहादुर गुरुड. र अन्य सदस्यहरू रहेको छन । यस क्लवको नाम भिमसेन थान मन्दिरको नामवाट नामकरण गरिएको छ । २०६०/६१ मा आएर अध्यक्ष परिर्वतन गरेर अध्यक्ष पदमा हाल एकलाल रानामगर हुनुभएको छ ।,0.903614457831,0.0263292892861\r\nd8826b24d21687e9,\"kpnip <N> j ipjj lkjih uhioiobkhio ughih iu Bold text \"\" ' yuf yf yfB <JOIN> old text \"\" ' <N> = = ijhiuhihihi <SEP> Media : nbbiiijhiouhu oyi hiohuig ug ygp <N> <N> knkhihihuihiihiobibiub ihihh <SEP> h <SEP> y <SEP> yh <SEP> Media : ojo ] ] <N> ] ] = =\",0.264150943396,0.026325073462\r\n9939088077e46da3,\"... πάω για βουτιές τώρα , καλή συνέχεια\",0.75,0.0262806793763\r\ne77ae94ce667a823,\"Καλησπέρα ! Τελικά ο Γιαννούλης,φοράει το 3 και υπάρχει και άλλο ένα λαθάκι σε αριθμό φανέλας ... Ο Μάκρης απ'ότι είδα φέτος φοράει το 5 και όχι το 23.Έκανα τις διορθώσεις,ελπίζω να μη πειράζει.Τσέκαρε το και εσύ.\",0.891891891892,0.0262539323643\r\nc0c9762abf09d7d3,* حضور میلیونی مردم ایران در راهپیمایی 22 بهمن,0.777777777778,0.0262473003694\r\n3ec16597887c6d52,nagr <JOIN> omlt,0.666666666667,0.0262431947502\r\nd5988c3322be99a8,당신이 한국인이 아니라면 대답하지 마시기 바랍니다.,1.0,0.0262195526077\r\n1525718ff785d9a4,\"Τα αποκόμματα έχουν εκδοθεί στο polli <JOIN> tecon <SEP> com και είναι για τους ετζίαν μασεντόνιανς , και βεβαίως , ‘ δερ αρ νόου γκρίκς ιν μασεντόνια’ - με κάτι λίνκς που σουτάρουν ολόκληρη Ελλάδα έξω απ’τη Μακεδονική της γη , πάνω από τον Όλυμπο και ... μέσα της Λαρίσης το ποτάμι που τον λένε Πηνειό … Αλλά το κάνουν με μεράκι και πέφτει δουλειά , είναι χρυσοχέρες στο να κεντούν με χρώματα και εικονίδια την προπαγάνδα τους με την οποία σφετερίζουν την ιστορίας των γειτόνων. Μακάρι εμείς , που κατέχουμε σε πολλή πιο αξιοσέβαστο βαθμό την αλήθεια , να είχαμε τέτοιους καλητέχνες του διαδικτύου.\",0.866666666667,0.0261943726095\r\n04ff462aace5a315,\"החארות האלה בטח יתקשרו אליי מחר בבהלה ויתחננו שאני אלמד שם ... <N> <N> ככה זה תמיד עם כאלה . <N> <N> הם מרגישים שלא בא להם להיות משוייכים אלייך , אז הם זורקים אותך . <N> <N> ברגע שזה מתאים להם - בכיף : תבוא . <N> <N> בכל מקרה מקום מסריח . <N> <N> כל מה שמעניין אותם זה הכסף . <N> הרבה יותר גרוע מאוניברסיטה .\",0.695652173913,0.0259913422661\r\n4aa56610aade012e,תְּ‏רֵי עֲשַׂ‏ר,1.0,0.0259361251689\r\n3e33688569b79f7d,१५ जुलाइ २०१ से श्याम मेटालिक्स आंड एनर्जी लिमिटेड मे काम. ओडिया लोगो,1.0,0.0259097655881\r\n412b4c28720f4cdd,மொறிஸ் பற்றிய தகவலை ஏன் நீக்கினீர்கள் ? மொறிஸ் நான்காவது வல்லரசின் இராணுவத்தையே பருத்தித்துறையில் ஆட்டம் காண வைத்தவர்,0.928571428571,0.0258897961726\r\n7cfc7e46b55d8565,\"Чи могли б ви знайти таку інформацію і відповідні джерела ? З повагою ,\",0.857142857143,0.0257796661439\r\nf5f9c853ce718569,\"Κόψε συ τα ζόρικα , και θα κουραζόμαστε λιγότερα και οι δύο.\",0.916666666667,0.0257710615571\r\n6c45dd1a3eccdfa4,Можно ли сделать редирект на одну и ту же страницу пользователя для всех языковых версий википедии ?,0.764705882353,0.0256432372432\r\n5c81f60a6307c55c,Долой ментовское государство . <N> Долой Шерифофскую страну .,0.666666666667,0.02564282604\r\nae77f5fc7611d924,Καλησπέρα και από εμένα,1.0,0.0256426565951\r\n6a2a69883f46a97b,\"sazulveli ratom gaxda , mac <JOIN> ahel ? Rame davus <JOIN> havet ?\",0.384615384615,0.0256296472343\r\n31d0f802e05e69d8,اگر شما به این پیام پاسخی ندهید، عکس ها مجددا در مقاله بارگزاری خواهد شد,1.0,0.0256058014418\r\n709e0d272451507a,جرج دبلیو بوش در شب هالووین در ایالات متحده آمریکا به بچه‌هایی که برای قاشق‌زنی آمده‌اند، شیرینی و شکلات می‌دهد.,1.0,0.0256012800492\r\nb2de72ec250ac13c,אוכל לזיין את האמא שלך ? או khri <JOIN> bisha לזיין את האמא שלך ?,0.8,0.025598048066\r\n4726d948f1d412c3,خواهش میکنم هموطن عزیز,1.0,0.0255599467432\r\ne37fa5fa73b8f335,Eto oby <JOIN> vatel Privislanskoj Sovietskojj Socialisticeskiej Riespubliki,0.625,0.0255242139909\r\n4f0d3ee80b759eb3,മുതലായവ സസ്തനികളിലുംമൃഗങ്ങളിലും പൊതുവായി കാണപ്പെടുന്നു.,1.0,0.0255013488514\r\n5ac6a61a99833a7f,২২ জানুয়ারী ২০০৯ তারিখ দীর্ঘ ৯ বছর পর পূনরায় উপজেলা পরিষদ নির্বাচন অনুষ্ঠিত হয় ।,0.933333333333,0.025485610363\r\nd9296e414d6035ff,يمكن تعين مخلوط يحتوي علي اكثر من مادة بسهولة اذا عرفنا التفاعل الذي يمكن ان نستخدمه فمثلا عندما يتفاعل هيدروكسيد الصوديوم مع حمض الهيدروكلوريك فان التفاعل يتم بنسبة 1:1 بالوزن الجزيئي ويمكن استخدام دليل الفينول فيثالين ودليل الميثيل البرتقاليويمكن تمثيل ذلك علي منحني المعايرة .,0.955555555556,0.0252921868058\r\nfa0e4f31c0b55744,یک فرهنگ طیفی‌ به,1.0,0.0252428848627\r\n4695c1182ddbf364,= = حقوق بشر = = <N> <N> باسلام.فلسفه تشکیل سازمان ملل متحد وسازمانهایی مثل حقوق بشربرای رفاه حال بشریت.واحقاق حق مظلومان دنیاست.چگونه حقوق بشراطلاع رسانی نمیکندبلکه گاهااختفای حقایق هم میکند.مثال چرا؟هیچگونه اطلاعی کتبی شفاهی به من درخصوص خانواده ام ندادند؟مسولان حق ندارندبرای نفع خودشان کارکنند.درمجموع به جستجوی فارسی ادامه میدهم.واقعادرک مطالب انگلیسی مشکل است.,0.890909090909,0.0252356748943\r\n2fb28802431ac745,بسم الله الرحمن الرحيم هذا الحساب تطبيق لي درس عمل حساب ويكيبديا .,0.923076923077,0.0252056352912\r\nf5f6f66fa5deba5a,= = وارث معمرقذافی = = <N> <N> درذهن من مشغله فکریست شماهم جای من بودیدشایدسرسام میگرفتید.موضوع بسیارساده قابل فهم.قانونیست اماکوگوش شنوا؟ابنجاست که قانون2 + 2میشود؟؟؟و,0.730769230769,0.0251979839448\r\ne277e30ff681bab8,там требуются паспортные данные ? пишите правду ? иначе не дадут денег,0.75,0.0251768603899\r\nbf9d41963bb99005,\"\"\" <N> : Хмм , не разбирам баш што треба да направам , ама ако знаеш ти , имаш целосна поддршка од мене ! D Инаку ја немам сликата воопшто во компјутер , ја избришав уште тогаш ( ако мислеше на тоа ) . \"\"\",0.666666666667,0.0251625440656\r\n9fea96fb811c62aa,\"Вспоминая ... == <N> <N> Хороший , годный мультик . Жалко , что про него нет в РуВики . <N> <N> = =\",0.434782608696,0.0251084574561\r\n851255f3a67ef9c9,بدنا عربي يا اجانب قراوه,1.0,0.0250931103387\r\n0241cb7cfb02fc61,= ک.ی.ر. خر تو ک.س. مادر و خواهر جن.دت= <N> حرومز.اده مادر به خطا. خر ننه جن.دت رو بگ.اد. حتما باید فحش بخوری کو.نی بی پدر؟ آخه چرا گ.ه خوری اضافه می.کنی؟ : ) ) <N> <N> میخوای یک کاری بکنم که دیگه جرات نکنی بیای ویکی؟ دوباره گورتو برای چند سال گم کنی؟ دوست داری؟ همه فامیلت رو سگ هار بکنه ! ! ! ) ) ) ) - <N> <N> آخه سگ پدر پان ترک خر، من چند هزار تا اکانت تایید شده دارم. توی تمام ویکی های دیگه هم مادرت رو سرویس میکنم. گ.ه اضافی نخور. ) ) ),0.803921568627,0.0250752746098\r\n0cefd4a5997ff674,\"அதிபர் , ஆசிரியர்,மாணவர் ஆகிய நாம்கட்டியெழுப்புவோம்\",0.8,0.0250321649141\r\n6bea500cec63a717,: : سلام گیر ۳پیچ جان، من که همین دو ماه پیش بود نظرخواهی داشتم، به نظرم یک نظرخواهی دیگر کمی زود خواهد بود و من از همین الان می‌بینم که کاربران به خودشون می‌گن « این همون یارو نیست که هفته پیش یه نظرخواهی داشت و بعدش ما کلی رأی دادیم، اما بعدش یهو زد زیر همه چیز؟ » این را به این خاطر می‌گویم که از آن موقع تاکنون وضعیت و شرایط تغییر خاصی نکرده و هنوز همه چیز طبق روال سابق پیش میره، من هنوز روی حرفم در مورد کپی‌رایت محصولات ایرانی هستم و هنوز هم مدت چندانی نگذشته که من « به تجربم اضافه بشه » و آمادهٔ مدیریت بشم. به نظرم بهتره من از راه‌های دیگری به پروژه کمک کنم و این کارها را به کاربران بسیار لایق و شایسته‌ای چون شما، چالاک، سید، آرش عزیز و بقیه دوستان بسپاریم. ممنون از لطف‌تان.,0.959459459459,0.0249080984159\r\nc254306abfdcff56,नाम मोहन सिह अन्दाना हे,1.0,0.024843534638\r\nff37eca3c02bb566,أسف أخي أي قبل الاسلام ، ولست عربية,0.875,0.0248396923125\r\nc1f8b6177c3fd09a,\"\"\" <N> <N> Ты просто 60 секундах от $ 500 до $ 6500 или более ... <N> <N> Да ! Получите $ 500 до $ 6500 или больше вашего первую неделю использования наших 60 Второй секрет маркетинга прорыв ! <N> <N> Это Grab возможностям и начать зарабатывать деньги ... <N> <N> Она ничего не стоит проверить его вне <N> <N> Вы будете обнаружения тайных таким мощным оно буквально \"\" \"\" льется Наличные \"\" \"\" прямо в карман автоматически ! <N> <N> Приведем лишь 4 минуты и 23 секунд , чтобы посмотреть видео Специальное сообщение и вы тоже можно было бы наслаждаться финансовой свободой как и все остальные из нас ... <N> <N> Это вполне может быть большой перерыв Вы так долго ждали ... нажмите на ссылку ниже сейчас ! <N> <N> # NPN PLUS Ссылка : <N> HTTP ; = <N> <N> # NPN директора Ссылка : <N> HTTP ; = <N> <N> # NPN SILVER Ссылка : <N> HTTP ; = <N> <N> # NPN GOLD Ссылка : <N> HTTP ; = <N> <N> # NPN PLATINUM Ссылка : <N> HTTP ; = \"\"\",0.47027027027,0.0248193971626\r\nbe951ba8f7aed17d,\"= = மீண்டும் வால்மார்ட் : இந்தியாவில் நுழைய தீவிரம் = = <N> <N> மீண்டும் வால்மார்ட் : இந்தியாவில் நுழைய தீவிரம் <N> <N> <N> சில்லறை வர்த்தகத்தில் ஈடுபட்டுள்ள அமெரிக்காவைச் சேர்ந்த வால்மார்ட் இந்தியாவில் நுழைய தீவிரம் காட்டி வருகிறது. இதற்காக நிறுவனத்தின் பெயரை மீண்டும் பதிவு செய்துள்ளது. <N> சங்கிலித் தொடர் நிறுவனங்களை அமைத்து சில்லறை வர்த்தகத்தில் ஈடுபடுவதில் மிகவும் பிரபலமாக விளங்குவது அமெரிக்காவின் வால்மார்ட் நிறுவனமாகும். இந்நிறுவனம் இந்தியாவைச் சேர்ந்த பார்தி எண்டர்பிரைசஸ் குழுமத்துடன் ஒப்பந்தம் செய்திருந்தது <N> இரு நிறுவனங்களிடையிலான 6 ஆண்டுக்கால ஒப்பந்தம் கடந்த அக்டோபரில் முறிந்துபோனது. இதைத் தொடர்ந்து தன்னிச்சையாக இந்தியச் சந்தையில் நுழைய வால்மார்ட் திட்டமிட்டுள்ளது. <N> இதற்காக இந்நிறுவனம் வால்மார்ட் இந்தியா லிமிடெட் என்ற பெயரில் புதிய நிறுவனத்தைத் தொடங்கி அதை இந்திய நிறுவன சட்டத்தின் கீழ் பதிவு செய்யத் திட்டமிட்டுள்ளது. இத்தகவலை வர்த்தக அமைச்சக அதிகாரி தெரிவித்தார். புதிய நிறுவனத்தை பதிவு செய்வதற்கான விண்ணப்பம் ஜனவரி 15-ம் தேதி தாக்கல் செய்யப்பட்டதாகத் தெரிகிறது. <N> பார்தி குழுமத்துடன் ஒப்பந்தம் முறிந்து போனதைத் தொடர்ந்து இந்தியாவில் சில்லறை வர்த்தகத்தில் ஈடுபடுவதற்கான சாத்தியக்கூறுகளையும் , இந்தியாவின் அன்னிய நேரடி முதலீட்டுக் கொள்கைகளையும் வால்மார்ட் நிறுவனம் ஆராய்ந்தது. <N> இதையடுத்து இந்தியச் சந்தையில் நுழையத் தீர்மானித்து அதற்கான திட்டங்களை வகுத்து வருகிறது. முதல் கட்டமாக புதிய நிறுவனத்தை பதிவு செய்துள்ளது. <N> 2013-ம் ஆண்டு டிசம்பரில் இந்தியாவில் உள்ள நிறுவனங்களிடையே சமநிலை போட்டியை உருவாக்கும் ஆணையம் ( சிசிஐ ) , இந்தியா விலுள்ள பார்தி குழுமத்தின் 50 சதவீத பங்குகளை வால்மார்ட் வாங்குவதற்கு அனுமதி அளித்தது. இதன் மூலம் இந்தியாவில் மொத்த வர்த்தக தொழிலில் ஈடுபட அனுமதிப்பதென முடிவு செய்யப்பட்டது. இதன்படி பார்தி வால்மார்ட் பிரைவேட் நிறுவனம் இந்தியாவில் மொத்த விற்பனை அங்காடிகளை தொடங்கின. இது சில்லறை நுகர்வோரை எந்த வகையிலும் சென்றடையவில்லை. <N> 2008-ம் ஆண்டிலிருந்தே இந்தியாவில் உள்ள அரசியல்வாதிகள் மூலம் சில்லறை வர்த்தகத்தில் அன்னிய நிறுவனங்கள் ஈடுபடுவதற்கான அனுமதியைப் பெறுவதற்கான முயற்சியில் தீவிரம் காட்டியது வால்மார்ட். இது தொடர்பான அறிக்கை அமெரிக்காவிலிருந்து வெளியானது. <N> இது தொடர்பாக இந்தியாவில் பெரும் சர்ச்சை ஏற்பட்டது. இதையடுத்து இதுகுறித்து விசாரணை நடத்த 2012- ம் ஆண்டு டிசம்பரில் முடிவு செய்யப்பட்டது. இதற்காக அமைக்கப்பட்ட ஒரு நபர் குழு கடந்த மாதம் தனது அறிக்கையை மாநிலங் <N> களவையில் தாக்கல் செய்தது. அதில் அரசியல்வாதிகளை நிர்பந்தித்ததற்கான எவ்வித ஆதாரமும் கிடைக்கவில்லை என குறிப்பிடப்பட்டிருந்தது. இந்திய அதிகாரிகள் , அரசியல் தலைவர்களுக்கு எவ்வித தொகையும் லஞ்சமாக வால்மார்ட் வழங்கவில்லை என தெரிவிக்கப்பட்டது. <N> இருப்பினும் அரசு தாக்கல் செய்த நடவடிக்கை தொடர்பான அறிக்கையில் , வெளிநாட்டு நிறுவனம் ஊழலை ஊக்குவிக்கும் வகையில் செயல்பட்டது தொடர்பாக விசாரிக்குமாறு உத்தரவிட்டதாகத் தெரிவித்தது. அமெரிக்க அதிகாரிகள் ஏதேனும் வரம்பு மீறி செயல்பட்டார்களா என்பதை விசாரிக்கவும் அரசு உத்தரவிட்டுள்ளது.-பி.டி.ஐ.\",0.904605263158,0.0248034291722\r\nbb5c78637ba0e960,\"= = فروشگاه لوازم آرایش و زیبایی = = <N> <N> فروشگاه لوازم آرایش و زیبایی <N> <N> <N> آي,مد,لباس,عکس,ميکاپ,فشن , مد,دختر,زيبا,بهداشتي,سلامت,تغذيه,آرايش ابرو,آرايش صورت,آرايش لبها , آرايش هاي سرد,آرايش هاي گرم , آرايش چشم , آرايش گونه , آموزش آرايش,اثرات آرايش , اختلال پوستي , اپيلاسيون , تاتو,تغذيه,تناسب اندام , توصيه خريد , توصيه هاي آرايشي , توصيه هاي بهداشتي , توصيه هاي زيبايي , توصيه هاي سلامت , جراحي زيبايي , جواهرات,زيورآلات,رنگ مو,سلامت و تغذيه , سولاريوم , عطر , ادکلن , عکس آرايشي,لوازم آرايش,لوازم بهداشتي,ليزر,زيبايي,ماسک,مد,فشن پاک کردن آرايش , پوست,چند نکته,کرمهاي بهداشتي,گريم\",0.691489361702,0.0247479769878\r\nb061e8f124009481,আমি ফিরোজ কবীর । আমি উইকিপিডিয়াতে অবদান রাখতে আগ্রহী ।,0.8,0.02473569498\r\n01cdd75c720e13e5,\": : : ar vici es uaz <JOIN> roba saidan moa <JOIN> kvt , magram ratomgac sxva cka <JOIN> roebic amas amb <JOIN> oben , rasac gadavxede . zal <JOIN> ian ucn <JOIN> auria ...\",0.257142857143,0.0247201806427\r\nc4128626fbe009dd,\"За ова имаш награда од мене , поздрав .\",0.777777777778,0.0247093611722\r\n415524e260b7b5e5,\"\"\" <N> <N> * Actually , this is great example with Gorky . Oh yes , Gorky in 1930s made a lot of claims , which were drastically different from his words in 1917 - 1922 . He said : \"\" \"\" Классовая ненависть должна культивироваться путём органического отторжения врага как низшего существа . Я глубоко убеждён , что враг — существо низшего порядка , дегенерат как в физическом , так и в моральном отношении . \"\" \"\" and \"\" \"\" Необходимо экспериментировать над самим человеком ... Для этого потребуются сотни человеческих единиц . Это будет настоящая служба человечеству — несомненно , гораздо более важная и полезная , чем истребление десятков миллионов здоровых лю­дей ради комфортабельной жизни одного жалкого класса , выродившегося физически и морально , класса хищников и паразитов . \"\" \"\" <N> <N> Here Gorky suggests to exterminate all \"\" \"\" class enemies \"\" \"\" as \"\" \"\" physically and mentally inferior parasites \"\" \"\" ( his words ) by using then as guinea pigs for human experimentation . This sounds exactly like Josef Mengele . Does it mean that Gorky must be painted as Mengele in his biography ? Of course not ! Because he was not Mengele , and because he is not described like Mengele in reliable sources , just like Losev . <N> <N> In addition to Gorky , one could cite Kaganovich about Losev : « Каганович на XVI съезде партии назвал Лосева реакционером , черносотенцем и мракобесом . Газетно - партийная травля Лосева была направлена прежде всего против религиозно - философской позиции , на которой он стоял . \"\" \"\" Гнилая творческая \"\" \"\" интеллигенция призывала к расправе . Драматург Киршон выкрикнул на съезде партии : \"\" \"\" За такие мысли надо ставить к стенке ! \"\" \"\" \"\" \"\" <N> <N> Just to summarize , shot the rabid dogs like Losev , tells comrade Kaganovich and others . \"\"\",0.345911949686,0.0246815116805\r\n0c94f513008dc6ec,: Διόρθωσα λίγο ακόμη την πρόταση με την βοήθεια μιάς φίλης μου Αγγλίδας. Πιστεύω οτι τώρα είναι εντάξει.,0.944444444444,0.0246771743944\r\n6197ee99612d75bf,Gaelscoil Aonach Urmhumhan,1.0,0.0246305353569\r\n960af27c2037d4ff,sajkrghuiregw wy tog <SEP> uijhg <SEP> yeu <JOIN> hfg veiuyrgy ueoreih <SEP> iry tgr <JOIN> iue orih ui hr <SEP> e <SEP> qy gre yhr <SEP> eiuhgre t gerui ohu <JOIN> irg yruigr <SEP> eu gru <JOIN> ieg r <SEP> e <SEP> yg re <SEP> iug rye <JOIN> uig ber <JOIN> iug euig reqiuqregy hlu <JOIN> ireg lyherndbox,0.275862068966,0.0245911927085\r\nfb34af8c2b2a246b,تا جایی که فهمیدم باید ابتدا یک نظرسنجی محلی توی خود ویکی‌پدیا برگزار کنیم و پس از کسب تایید اکثریت آرا تو متا درخواست بدیم. بنابرین به محض انتقال صفحات ویکی پدیا از انکوباتور در قهوه خانه آذب ویکی ( کند مئیدانی ) درخواست رو خواهم نوشت، همونجا حمایت کنید متا حله.,0.961538461538,0.0245614322119\r\na5b71b87be51fc80,-لماذا الحذف انها كلية منفصلة عن الجامعة ككل . ربما تتشاك فقط تاريخ الانشاء رجاء اعادة المقال,0.941176470588,0.0245546150509\r\n744d823d68d93e42,\"Причем участником была принята еще одна попытка выказать претензии к авторитетности источников за оспаривание антисемитизма Климова , уже после неоднократного указания на ложность такой трактовки на его СО ( показано в предыдущим эпизоде )\",0.823529411765,0.024439926828\r\nf2ea5be92105af9b,\", zgodnie z norm prz <JOIN> yjt powszechnie w j <SEP> zyku angiel <JOIN> skim\",0.333333333333,0.0243609675933\r\nca4b6e057a72365d,\"Здраво , ако си тука , ми треба малку помош околу страницата за Битола\",0.857142857143,0.0242629250147\r\n6756566ee738191a,3.166064971 3.140038023 3.149369651 3.141592653 3.170948983 <N> 3.124472318 3.131628004 3.136708641 3.131692653 3.153828976,0.909090909091,0.0241275480383\r\n1ee5fe4447a1fb33,မေဗဒါ ( ဆရာေဇာ္ဂ်ီ ) <N> ညိုျပာျပာ လတာျပင္ေျခရင္း၊ <N> လိႈင္းတက္ရာ ေဗဒါတက္၊ လိႈင္းသက္ရာဆင္း။ <N> <N> ဆင္းရလည္း မသက္သာ၊ <N> အုန္းလက္ေၾကြေရေပါေလာ၊ ေမ်ာစုန္လို႔လာ၊ <N> အဆင္းနဲ႔ အလာ၊ ေဗဒါမအေထြး၊ <N> အုန္းလက္ေၾကြ သူ႔နံေဘး၊ ေဆာင့္ခဲ႔ရေသး။ <N> <N> ေဆာင့္ခဲ့လည္း မသက္သာ၊ <N> ေနာက္တစ္ခ်ီ ဒီတစ္လံုးက၊ ဖံုးလိုက္ျပန္ပါ၊ <N> ျမဳပ္ေလေပါ့ ေပၚမလာ၊ မေဗဒါ အလွ၊ <N> တစ္လံကြာ လိႈင္းအၾကြ၊ ေပၚလိုက္ျပန္ရ။ <N> <N> ေပၚျပန္လည္း မသက္သာ။ <N> ေခ်ာင္းအဆြယ္ ေျမာင္းငယ္ထဲက <N> ဘဲထြက္လို႕လာ။ <N> ဘဲအုပ္မွာ တစ္ရာ ႏွစ္ရာ <N> ေဗဒါက တစ္ပင္ထဲ(တည္း)။ <N> အယက္အကန္ခံလို႔ <N> ေဗဒါပ်ံ အံကိုခဲ၊ ပန္းပန္လ်က္ပဲ။ <N> <N> တကၠသိုလ္ အိုးေ၀မဂၢဇင္း ၁၉၆ဝ <N> <N> <N> = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =,0.433962264151,0.0241058385603\r\n5c67d7a55958c554,خالد محمد أحمد المناري,1.0,0.0240251647732\r\n54369fa54be69277,دكتور محمد عبد السلام,1.0,0.024013438595\r\n810fcc8435ad6bdb,bgv hujvolhvhjbvol nouybvgouy gfv uygljvuy bvo <JOIN> lhg vuycvlo gh,0.6,0.0239768320912\r\n377bb84d3a10b126,Phạm Hoàng Vũ <N> <N> Là một người đẹp trai .,0.272727272727,0.0239651610899\r\nde0bc9fe5bbc57e6,Этот вики будет использоватся для проекта FastStart . <N> <N> На данный момент разработчики : <N> Axyd <N> Vint,0.578947368421,0.0238707097712\r\nf59aac6dd358e78a,\"Посмотрел только что Where the Truth Lies ... Очень странное ощущение . Тягучий , обволакивающий фильм , несколько затянутый , усыпляющий . Но порой с гениальными эпизодами . Особенно мне понравилась девушка в костюме Alice in Wonderland , соблазняющая О'Коннор . А ты что думаешь ?\",0.586956521739,0.0237648787752\r\n57fa48ae6be56452,\", на это у него есть право\",0.714285714286,0.0237387938094\r\n7fce83a5fa2785e1,\"REX , είναι κάτι που δεν έκανες μόνο μία φορά. Και θα ήθελα πολύ να μην είναι αλήθεια το ότι τα γράφεις για να προκαλείς , αλλά δεν μπορώ να ξέρω ούτε αν το κάνεις επίτηδες , ούτε όχι. Στη σελίδα για την ονομασία έχει μια εκτενή ανάλυση για την έννοια ονομάζεται επίσημα και τη σημαίνει ΟΗΕ , κάμποσες παραγράφους πιο πάνω απ ' τα σημερινά μας σχόλια. Ο ΟΗΕ χρησιμοποιεί σε όλα τα έγγραφα του σαν ορολογία το φ.υ.ρ.ο.μ. Αφενός αυτά τα έγγραφα είναι όλα επίσημα και θεωρώ ότι είναι σαφές αυτή η ονομασία έχει υιοθετηθεί και επιλεγχθεί για επίσημη χρήση. Αυτό είναι το οφίσιαλ που γράφαμε και ξαναγράφαμε. Η φράση που πήγες και άλλαξες στους Αρβανίτες ήταν η ίδια φράση που δεν πείραξες χτες όταν έγγραφες για τους Γκέγκηδες ( αν το γράφω λάθος συγνώμη ) . Έχω άδικο να αναρωτιέμαι γιατί το κάνεις και ειδικά όταν μου λες ξανά ότι για μένα δήθεν καλή θέληση σημαίνει να συμφωνούν οι άλλοι με όσα λες. Πώς να πιστέψω ότι δεν τα κάνεις επίτηδες ; Τις συνεισφορές μου μπορείς , και σε προτρέπω , να τις ελέγξεις μία προς μία. Δε θα βρεις μια φορά να έχω γράψει κάτι σε άρθρο που είτε είναι αμφισβητίσιμο είτε δεν έχει συζητηθεί εκτενώς στην αντίστοιχη σελίδα. Θέλω πολύ να πιστέψω ότι καμιά φορά βγάζεις βιαστικά συμπεράσματα και πως δεν το κάνεις επίτηδες. Βοήθησέ με με τις πράξεις σου , ειλικρινά θέλω να πιστέψω και θέλω να συνεργαστούμε για να προχωρήσει αυτή η εγκυκλοπαίδεια. Σ ' ευχαριστώ.\",0.928853754941,0.0236924723783\r\n00f5061275635c3a,\"Чини ми се да малим википедијама не преостаје ништа друго него да преводи чланке са вечих . Иначе за СХ википедиу предлажем заједнички нови стандард : јекавица , избациванје ије и ћ , кориштинје славенских суфикса -исати умјесто -ирати , предност славенској рјечи ( нпр . имена мјесеци ) или напросто пустит да људи пишу како желе . Прво је прједлог да се створи нови заједнички стандард с којим би ето кренули андерграунд на википедији .\",0.815789473684,0.0236571594584\r\nbd97982eda9bf247,אתה מצביע בבחירות ? <N> <N> מה לדעתך הצבעתי ? בעיניך אני ימין שמאל או מרכז ?,0.705882352941,0.0235817031406\r\ned72a588b99f6ab9,= = Вибрана стаття = = <N> <N> Скільки разів на тиждень в англійській ВІКІ обирається стаття ?,0.5,0.0235557892748\r\nc7fd235fc71d2856,نور الدين جبري الإدلبي,1.0,0.0234712052382\r\n42af802ab9628ccf,\": : : Што се мене тиче , ово изгледа одлично . Лепо си распоредио кронолошки слике , а и лепо је видети више људи у мозаику . Поздрав ! ( )\",0.625,0.0234308480905\r\n326fc3e13c9a80cc,على تبن لو مو عاجبك الحال قدامك 6 جدار <N> <N> بالغصب راح اخليك تقبل تعديلي,0.8125,0.0234111014625\r\nd696bdc19d6537b4,= = стадион Българска армия = = <N> <N> Имаш ли нещо против да преместя Balgarska Arm <JOIN> iya Stadium на Bulgar <JOIN> ska arm <JOIN> iya Stadium . Според официалната транслитерация думи с корен бълг се предават като bulg .,0.463414634146,0.0233883731175\r\n8777c50a8098c09a,\"Σε λιγο αντι να πεισουμε εμεις το Μητσο να αποταχθει του εθνικισμου , θα γινουμε εμεις πιο εθνικιστες απο το Μητσο. Φοβαμαι οτι με ολο αυτο το ντιμπειτ αρχιζω να Μητσιζω. ( Ωχ ? Που πηγαν οι τονοι μου ? Πρωτο συμπτωμα ... - ) )\",0.826086956522,0.0233269912484\r\n56baffb756e3707d,\"Все пак това си е ТВОЯТА визия за София . Вярно , малко чалгаджийска , ама визия .\",0.777777777778,0.0233139100591\r\n78360e3f9abdaa6b,\"Η Φιλιππιάδα είναι μια μικρή πόλη-η δεύτερη του Νομού Πρέβεζας,που όμως είναι γεμάτη ζωή και ομορφιά.Η θέση της είναι κομβικό σημείο των Νομών Πρέβεζας , ' Αρτας και Ιωαννίνων.Η Φιλιππιάδα πήρε το όνομά της από την αγάπη των κατοίκων προς τα άλογα ( ίππους).Η Φιλιππιάδα αποτελείται από τρείς συνοικισμούς:Παλαιά Φιλιππιάδα , Νέα Φιλιππιάδα και Ελευθεροχώρι.Στην αρχαιότητα υπήρχε με την ονομασία Χάραδρον τον 8ο - 7ο Π.Χ αιώνα. <N> Σε έναν επισκέπτη η πόλη της Φιλιππιάδας προσφέρει σαν αξιοθέατα το καμπαναριό του Αγ.Βησσαρίων,το μνημείο των Μπιζανομάχων,την λίμνη του Ζηρού,την κεντική της πλατεία,την πλατεία των Πελαργών,το όμορφο δάσος της και τον κάμπο της για περίπατο.Για διασκέδαση έχει πολλές επιλογές σε καφετέριες , ταβέρνες και clubs - bars . Για την διαμονή σας έχει ξενοδοχείο και πολλά καταστήματα για τα ψώνια σας.\",0.906976744186,0.0231967656325\r\n61a85266de70cca0,Можешь говорить по русски .,0.8,0.0231769996355\r\ncd3071cc0d665b5e,= = zonouz = = <N> <N> سلام جناب سامک <N> نمیدانم چه اصراری به گره زدن معرقی زنوزق به ماسوله است و چرا دوست دارند زنوزق در سایه ماسوله رنگ خود را از دست بدهد . درحالیکه قیاس این دو اصلا صجیح نیست . <N> برای زنوزق مطالب زیادی میتوانید بنویسید ولی تمثیلش به ماسوله صحیح نیست . لطفا لینک زیر را در مورد این روستا مطالعه فرمایید و اشتهار آن را به ماسوله آذربایجان را حذف کنید . اصولا چنین قیاسی علمی نیست زیرا نه اقلیم یکسانی با ماسوله دارد و نه فرهنگ مشابه و نه پوشاک مردمانش که اگر چنین باشد باید بفرمایید ماسوله و پالنگان و ابیانه آذربایجان .چون از نظر پله کانی مشابه ماسوله و از نظر احاطه توسط کوهها شبیه پالنگان و از نظر پوشاک همسان ابیانه است <N> HTTP,0.897058823529,0.0231673626268\r\n8973f464eb3fdbfa,: : 나는 바쁘기 때문에 나갑니다. 날뛰지 않게 주의해 주세요.,0.8,0.0231432494718\r\n6668b4330048186e,\"Русский <N> <N> Это написано на русском языке , но я не говорю русского . Пожалуйста оставьте мне сообщение на английском языке , португалка или испанский язык . Что - нибыдь на русском языке будет переведено или уничтожено . Это написано наилучшим образом ?\",0.681818181818,0.0231195326278\r\n2bde643b2ca1fbbe,= = شبکه عصبی وفرمتهای موجود. = = <N> <N> چگونه میشه دست یافت ؟,0.533333333333,0.0230899764844\r\n7a237b9f08ae4049,\"Меѓутоа , веќе гледам дека ЗогуШкиптар е пријавен и е блокиран 8 часа .\",0.714285714286,0.0230207523835\r\nd6507a162cf44c52,لا تضع معلومات باللغة العربية هنا. ساهم في تطوير هذا نفس هذا المقال المكتوب باللغة العربية رجاءا. <N> Manaj,0.894736842105,0.0230086747732\r\n1f12d92e63aab863,\": : : : : : : : : : : : : : : კობერ , ერთი ამას შეხედე რა. ერთი ჩრდილოელი ვანია ებრძვის კოლხეთის თემას. ქართული სამეფო არ იყოო და წყაროებს შლის. ეჰ ყველა ჩვენს მეზობლებს როგორ ღრღნით ეს ფაქტი და როგორ ებრძვიან ჩვენს მემკვიდრეობას საოცარია.\",0.666666666667,0.0229710527097\r\n357e6df74946252a,Другарче прво научи литература * <3,0.666666666667,0.0229530955759\r\ne674162573ad7d61,= = السلام عليكم = = <N> <N> كيفك صديقي نسيب؟؟ أريد منك خدمة من بعد إذنك ، ممكن تكلم أحد الإداريين من أجل المنع منعو عنواني الأيبي المشترك مع مجموعه من الناس لمدة أسبوع ، لقد تكلمت مع الدكتور فيصل لكنه لم يرة رسالتي على ما اظن أرجو أن تقول لهم بأن يرفعوا المنع عنا أرجوك صديقي ، السلام عليكمورحمة الله وبركاتة . <N> <N> أخوك مستخدم التسونامي الازرق ( سامر الشاعر)و شكراً,0.824324324324,0.0229349177137\r\nd340207fcbf55222,: : : არ ვიცი. არანაირი ინფორმაცია საავტორო უფლებების შესახებ მანდ არ დევს. სავარაუდოდ არ უნდა იყოს თავისუფალი. შეიძლება საიტის ადმინისტრაციისათვის მიწერა.,0.863636363636,0.0228802158549\r\n2dc52bd5f802fba9,Но вообще конечно качество восхитительное .,0.833333333333,0.0228562797795\r\nfab56170718c80aa,രാഷ്ട്രീയ നിരീക്ഷണത്തിൽ തൽപരനായ ഞാൻ ഒരു തികഞ്ഞ ഈശ്വര വിശ്വാസികൂടിയാണ്. എന്റെ ജീവിതം എന്നത് ഒരു തുറന്ന പുസ്തകമാണ്. അത് മറ്റാരും നിർവജിക്കുന്നത് എനിക്കിഷ്ട്ടമല്ല.,1.0,0.0228232075143\r\n91509e7672bacfda,ΥΓ Τι εγινε με τις φωτογραφιες απο την Εδεσσα ?,0.9,0.0228036926947\r\n198115f747a5ffb4,\"Русское трудное для того чтобы выучить ? Смогли вы помощь научить мне , поэтому я не посмотрю как тупоумное больше ?\",0.714285714286,0.0227864332293\r\nf4c8132c7203d32b,\"Χεχ ναι , τα του Villena τα ' χω δει. Έδωσαν κι αυτά τροφή για τον κάθε αδαή εθνικιστή ( εδώ ο Macedonia <JOIN> nBoy μας έλεγε ότι το sub - saharan έχει γίνει σλόγκαν στη Δημοκρατία , ήμαρτον ) . Ενδιαφερόν για την υπόθεση περί ανάμιξης με N. , είχα την εντύπωση ότι την απέκλειαν σιγά σιγά. Ο Malory είχα την εντύπωση ότι ήταν Gim <JOIN> but παλαιότερα ( ίσως κάνω λάθος ) αλλά φαίνεται κι αυτός να μετριάζει τις απόψεις του περί urheimat . Προφανώς ακόμα υποθέσεις κάνουν σ ' όλα αυτά τα πεδία και μάλλον θα πειστούν για τα μισά.\",0.776699029126,0.0227619346536\r\n6707e8bd08c715e9,Ξέρω'γω ; Αφού εσύ άρχισες να με αποκαλείς αφέντη σου ... Παρ ' το απόφαση ... ;-),0.705882352941,0.0227312461031\r\nac1e733ea43c79b1,= = პეტრე = = <N> <N> გამარჯობა. პეტრე ბაგრატიონის სასიყვარულო ამბებზეც იქნებ განავრცო თემა ?,0.5625,0.0227254385274\r\nb82cc5072acdbd8f,\"mag <JOIN> aala soomaaliyeed waxay katirsantahay degmooyinka gob <JOIN> olka gado . Qooneey waa mag <JOIN> aala istiraatiiji ah wax <JOIN> ayna isku xer <JOIN> taa wadooyinka aada somaliland , Kenya , ito <JOIN> biya . Maga <JOIN> lada waxay ku tiirsantahay ganacsiga .\",0.295454545455,0.0227148575132\r\n352ed7e5cdb35b6b,کمکم کنید,1.0,0.0227027427339\r\nccaaf776c7519051,Κουνιούνται οι καμπάνες μου.,1.0,0.0226883085789\r\n42f3976164707b73,\"Физико - химические свойства католической реакции газов и пара , в частности такого химического вещества как водород , использовал в своей работе Нобелевский Лауреат СССР Андрей Дмитриевич Сахаров , при этом насколько я знаю , он использовал в своей работе физико - математическое понятие физико - химическое свойства плотности водорода ни как абсолютное значение .\",0.763636363636,0.0226787031767\r\n6cf56869a7f2aa7c,ar الوطني الخليجي للممارسات الصحية المبنية على البراهين,0.875,0.0226111331981\r\n857a11ea66e3d6da,\": : : : Но как это нет контекста ? Там была ссылка на ленту.ру , например . Потом бы и изображение добавили . Это феномен , его нельзя упускать из виду для энциклопедии .\",0.628571428571,0.0225655273176\r\nb00a0bca5915462a,\"المشكلة أن العرب يحبون التخلف , فليظلوا متخلفين , لماذا؟\",0.8,0.0225599234821\r\nfa63f486b634c7be,Dewan kamrul hashan,0.666666666667,0.0224737301104\r\n6fbe17de0ebd1a5b,\"это то , что я думаю .\",0.571428571429,0.0224713515506\r\nbc9d33be4c03eda7,\": : Статии за песни , искрено не сум правел . Ако може за албуми , или нешто слично . Ај да ги погледам дискографиите за Ријана и Марун 5 , па да видам што останало за работа . А инаку за музички вкус , слушам секаков хеви метал - од Блек Сабат до Слеер . А гледам Даре направил некои статии за Еванесенс , па можам да договорам некоја идна соработка и со него .\",0.776315789474,0.0224244287956\r\n8c997fb76b2959dc,\"Fendelman , Helaine\",0.666666666667,0.0224130912081\r\nb1bfd2c6f9893033,\"Εντάξει , δε διαφωνώ , ευαισθησίες ειν΄ αυτές. Προσωπικά δε με ενδιαφέρει/πειράζει ιδιαίτερα. Να δούμε τι θα γίνει με το όνομα του κράτους τώρα. )\",0.88,0.0223957087768\r\n0a797098df607488,\"= = Um ... == <N> 무시한 게 아니라 제가 영작하는데 시간이 오래걸려서 일단 냅둔것일 뿐인데 기분 나쁘셨나 보네요 ... 그리고 제의하신 문서들을 해보고는 싶은데 고등학생이라 평일엔 시간도 없고 , 문법이 보기 좋을 정도는 아니라서 해도 될런지는 모르겠습니다. 만약 제가 문서를 만들고 님께서 교정해주시면 어떨까요 ?\",0.804347826087,0.022197174862\r\n1d73453f67e0fa79,: : : Очень хорошо раз такое существо как ты понимает только язык санкций будем говорить на ЗКА .,0.736842105263,0.0221179015388\r\n66d7647556eb4d69,\": : Я не был никогда в Закарпатье , поэтому знаком с ситуацией только по сообщениям в прессе , в т.ч . и на русинских сайтах . Из чего сделал вывод , что число людей , счиатющих себя русинами , читающими русинские издания или входящими в русинские организации , даже по оценкам этих организаций находится примерно на уровне данных переписи . Т.е . если кто и побоялся или по какой - то другой причине не назвал себя русином , то это не сильно повлияло на данные переписи . Во всяком случае , официальные данные всегда предпочтительнее всяких соцопросов , в последних ответ зачастую зависит от того , что хочет услышать вопрошающий .\",0.705357142857,0.0220672026556\r\n8e4ad6282ba59ea2,जय हिंद बोलो <N> ओर भ्रषटाचार करो । <N> कब सुधरेगा भारतीय ?,0.692307692308,0.0215890340058\r\nc264ab9a09041a72,\": : שניכם משתפים פעולה באופן מאוד מחשיד , אתם עוקבים אחר התרומות שלי והורסים אותן . אני מקווה שתפסיקו עם זה . בנוגע ליגאל עמיר העברתי את זה לויקיציטוט ואתם מתבקשים לא להכניס לשם את דעותיכם האישיות .\",0.846153846154,0.0215632678196\r\nd34452c5ccf65493,\": 이해 할 수 없는 이유입니다. 그 사진이 잘찍은 사진이 아니라는 건 다분히 님의 주관적인 판단입니다. 만약 그렇다 하더라도 , 더 나은 사진이 생기면 바꾸면 될일입니다. 백과사전에서는 가장 대표적인 사진을 보여주는 것이 일반적입니다.\",0.939393939394,0.0214808389618\r\n4067bb3792587012,Και είμαι ο Jimm <JOIN> yRG,0.666666666667,0.0214583575507\r\nefb5d3a8a68e5a72,= = Σαπφώ = = <N> Ανέφερα την εικόνα του νέου της ποιήματος στην ελληνική σελίδα συζήτησης για την Sappho . Ίσως θες να ρίξεις μια ματιά.,0.740740740741,0.0214083412314\r\n7dfd355e6c28d520,: 덧붙여 편집 요약에서 계속 다른 사용자들에게 편집 분쟁을 중지해 달라고 하시는데 가람님 역시 편집 분쟁을 일으키고 있음을 유념해 주시면 감사하겠습니다.,0.952380952381,0.0213689019491\r\n42037c780b27aae2,: : : سلام. من خودم ازین رده سازیم پشیمانم. اما چه کنم عصبانی بودم. راهِ ایمیل فرستادن را برام باز کردید مشتکرم. حالا حذف کنید رده ها. من عصبانی ام که دلیلِ بستن من اظهار نشده و واضح نیست. هدفتم از این رده فقط خاموش کردن عصبانیتم و جلبِ توجه شما کاربران است که کمکم کنید به ویکیفا برگردم. همین,0.950819672131,0.0212743253808\r\n1c641c3099a42ed4,Это пиздец . Это пиздец .,0.666666666667,0.021228792653\r\n5faa758039759376,حساب این کاربر Erfan در ویکی انگلیسی مسدود شده است در ویکی فارسی چطور جواد رمضانی شوراب است,0.944444444444,0.0211635887992\r\neb092ce963023ee2,\"Pantaleoni , Helenka\",0.666666666667,0.021161650994\r\n659dce7c95f0a8d4,Αμήν και πότε. Τέλος το όπλο στο παραπόδας.,1.0,0.021007243375\r\na1f7435766319676,MrAm <JOIN> berGold,0.666666666667,0.0209562488848\r\nb6eedb5f88480d04,( ή τα τρισύλλαβα ρήματα με μακρά προπαραλήγουσα ),0.777777777778,0.0209014039794\r\n95977e0d95fb83a2,المزاحمة ( Crowding out ) <N> هي نظرية اقتصادية تفسر زيادة معدلات الفائدة نتيجة لزيادة اقتراض الحكومة في سوق المال.,0.75,0.0207418441418\r\na5f64f0e7bb0c222,\"\"\" <N> <N> <N> - <N> <N> Візьмемо пари слів \"\" \"\" пряти\"\"\"\"/\"\"\"\"прати \"\" \"\" , \"\" \"\" рядити\"\"\"\"/\"\"\"\"радити \"\" \"\" . Тут \"\" \"\" р \"\" \"\" та \"\" \"\" рь \"\" \"\" фонеми тверда та пом'якшена відіграють смислорозрізнювальну роль . Якщо взяти напівпом'якшені , то вони грають роль не смислорозрізнювальну , а більше акустичну . Якщо взяти \"\" \"\" бити\"\"\"\"/\"\"\"\"біти \"\" \"\" , то смислорозрізрювальню роль грають вже голосні \"\" \"\" и \"\" \"\" та \"\" \"\" і \"\" \"\" , а не тверде \"\" \"\" б \"\" \"\" чи його напівпом'якшений варіант . <N> <N> В українській мові 32 приголосні фонеми : 22 твердих , й - напів - приголосний та 9 м'яких . \"\"\",0.457627118644,0.0207000885871\r\neec8b32c760dd3a6,\"= = მადლობა = = <N> <N> დიდი მადლობა თარგმანისათვის. შეგიძლია რომ ესენიც გადათარგმნო სპარსული ვიკიპედიისათვის ? ეს , ეს , ეს და ეს ?\",0.6,0.0206751849591\r\n1b07fe182fd50ef0,سلام اینجا درخواست رو نوشتم.,1.0,0.0205852015222\r\n1bd40e78736dc773,: :* Ankh wedja seneb,0.6,0.0203200841095\r\nbdd09f23ca1849b8,\": Με ενδιαφέρει ιδιαίτερα η Βανκόβσκα , η οποία μάλλον είναι η φωνή της λογικής από αυτά που διαβάζω. Έχεις λινκ για αν τη βάλω στο μόντερετ ποζίσιον ακαντέμικς της άλλης πλευράς ?\",0.818181818182,0.0203157661564\r\ncecea8d5ab927a47,برج بابل‎ Burj Babil,0.75,0.0202902566801\r\n8e083fc3441c5b0e,= = এই হালার পুত = = <N> <N> তুই কি করবি আমারে । তোর বিচি আসে কিছু করার ?,0.6,0.0202591899748\r\n165e72f6c02b7316,Viktor Ivanovich Kosich <JOIN> kin Виктор Иванович Косичкин,0.625,0.0201810633834\r\n1213f8a496bb923c,Это моя страница обсуждения .,0.8,0.0201563670923\r\ne64f8f6e1dd50c44,= = - = = <N> החברים שלך בוויקיפדיה העברית שונאים את ויקיפדיה האנגלית ( וגם אותי ) . אולי תאמר להם לתקן את הטעויות בוויקיפדיה האנגלית במקום לצחוק עליה בגללם .,0.6875,0.0200596777655\r\n9648fc7964c13e04,= = فیدا در ایران = = <N> <N> در فرهنگ باستتانی ایران <N> <N> فیدا : فدای . شهید .فدا شدن .جان باختن برای . سرگزاری در راه,0.620689655172,0.0200282600153\r\n508dfefc9946c526,\": ο τελευταιος,γελαει παντα καλυτερα\",0.8,0.0198650441135\r\n01596a8f0e0c5a5c,\"\"\" <N> : : : : : : אוקיי אז שיניתי את זה לליד בית חנינא , פשוט באופן כללי כרושמים על איזשהו מקום שנמצא במה שקוראים לו היום \"\" \"\" מזרח ירושלים \"\" \"\" שהוא לא בתוך ירושלים זה כבר כן קשור לפוליטיקה לדעתי , בכל מקרה תודה על העזרה עם העריכה \"\"\",0.722222222222,0.0198527359511\r\nd9adab6ae053b120,\": : : Μπα , μη μου πεις τέτοια. Η φωτογραφία το δείχνει ξεκάθαρα : λείπει ήδη ένας , τον πήρες εσύ , το ξέρω ! Είμαι σίγουρος ότι όταν έβαλα την εικονίτσα εδώ , πριν έρθεις εσύ , είχε ακόμα δέκα κουραμπιέδες.\",0.767441860465,0.0198018646055\r\na747b20bc100e837,' ⓶ Myrcella <N> Tommen,0.6,0.019800470853\r\n8fe7bd51e5c10ee1,\", т.е . получается , если я указал на введение в заблуждение других участников , но не указал точное правило , где это содержится , то нарушения нет .\",0.620689655172,0.0197353926788\r\n1567e275877b4041,Ашик паша Заде помшье име Билиш Кобила . За Уруца убица је био један [ ... ],0.764705882353,0.0196904658044\r\n1ec35b01ecdec5ce,\"नमस्कार मेरा नाम बी.क स्वरुप है | आपका मेरे Sanbox मैं स्वागत है | \"\" '\",0.6875,0.0193912349362\r\nc61c2b3d13a2fb39,\"= = Кулинарный вопрос== <N> Я думаю что Вам , как еврею , неоднократно доводилось кушать мацу с добавлением крови православных младенцев . Скажите , это вкусно или нет ? если вкусно то пришлите мне рецепт ее приготовления , сам мечтаю попробовать\",0.761904761905,0.0193261649722\r\ne6335624e3e1433a,რაშვები გივი როგორ ხარ ?,0.8,0.0192905500727\r\n91438d86c3e4def6,五區公投 建制縮頭派 大鳴大放 劉夢熊 梁家傑 Part 3,0.714285714286,0.0192783711343\r\necde6ebe21e6976f,\"bnvhgfvcgtyghf bbvvhgfmnkj njhuiokljmn bnvasqw vgfcxdsz nbhgytgfgvc vcfd vbg bhgjuikjiyyuhjgbn bhgv cfasqwzxas vbcgfdx mnkjioujmn bnjhmnjb vbcgfreterdf cvf <JOIN> dse <SEP> qwqwserasdv vbgcd mkjn mnkhjuyuiyujhbn mkjloplkm nmhjkjiuujhnb vbm <JOIN> kjn bvc <JOIN> gfc vcf <JOIN> xds cfdqwaszdsed vgfcdfrtfg vgfhgytgfhbv vcg <JOIN> ffv cvxc cxd <JOIN> sza nbhgv vbgfcvxfd vbgfcvfgvb njhuykjkjm njhbnvbhg vbg <JOIN> fcv cfdrewqsa bhgvbcvf vbgm , mkji mnkikiookjmn bhgvcgfrtydfv cvxdsawqsbvh bgg <JOIN> vfc dfsed xcdszhjbnhgvb vgftr vrrrtrfg mnkjhnbn bnvhgfvgtyghb vcfdxsawqnmjnb vbcgfvc cfd <JOIN> res vgfrtdfvcg vgfrtdfcv xcdszkloikjkmn bnhgjhyughb vbg <JOIN> fcv cvxfdcsdews u <SEP> iuj <JOIN> khn nmnmbjhgv bvgfc cfdxsdre <SEP> bvg <JOIN> fcv cvfdt huyyghjujkik mnj <JOIN> hbn bvhgfgcv cfdxzsasaswqafgcvb cvxfdsewdfcv vgfbhgythjn mnjhb nmjkiuuppolkm njhkjuhghbnvbb vbvcgfdrefvgb vgftdfsxzcdsxkjmnjhnb bhgv vgythgyuhjhn bhgvbqwas cfxdsaredf bnjhbvvgfcvb vgfcdresdhjuyhjkijmn nbjhggvbhgvfcxdxsxzs b nvgb kmkj <SEP> jkmnjhgbb - jkjiuuyh jhnbhgv vcfdxcxdsznmnjhb vbgftruyhjglkloikjm njhbn b vbg <JOIN> fvc cxdzsaqsz cvxdsewvgf bvgcdnjknmmbhngbv vgftrytghb vbh <JOIN> ggn nbjhuykjm nmjhoiolkm njhb vbcvfdx bvghytgfvb cfdsewdvcb bvhg oplkm , mkjn bnhgvbvgfcxds cfdewtrfgdfvc vgfcasqwszxasnjmn bhgv cvfdcxdzs bvhgftrfgdfvc bhgvnbjhuyjkm nkj <JOIN> hjm kjiughvbgfgfcv cvxdsawqsadzsasxdc vcfxdsewlkmn bghhjyyuuhgytgfgvc bvgfcxdsmnjhnbhgv bvgftrfg - iokjm nbhgvbcvfdxcvgdfr kjiujhjnmb nbvghfcvcdxsawqsa cxdzsdaghfgvvcgfbbn nbhgvcgtyrtghfghbv nbhjghuyhjkjm nmjhnbhvb bvbgfcvdxfcscvf bvggtruyhjuyhg bvhgnbjhnmmn njkilkjokjmn bnhjgbvfcv cfdxsasqwa cfxdziokljujhn bnvhfgtfdghfgfcvv cfdxc lpolkjmn njhbvgfbvghc mnjbjhkl , kmkjn bnhbv bvbvgfdtrfg vcgfvcdxvcb nbhhn .................. nbbnhgvbcfdresdfhuy nbjhn vhg <JOIN> fvb cfxc zxsc , .... 30 - vbhn <N> [ HTTP link title <JOIN> Bold text ] ] ] ]\",0.674418604651,0.0192001495496\r\n241bb484dee03fe6,\"Do n't try to change the truth Bodhidharma is pure a tamilan from kanchipuram . we are having proofs for that . if u anybody really want to know about it . just go and check it . தமிழன் என்று சொல்லட தலை நிமிர்ந்து நில்லடா. நான் தமிழன்டா ............. வாழ்க போதிதருமர் புகழ் , வாழ்க எங்கள் தமிழ்\",0.277777777778,0.0191582748629\r\nc4a0517a4c86ece5,\"= = heather ] = = <N> <N> hjkagcq <SEP> ishjtgshfssghdjdgdudsspsfdtsatuszxwvssywuwxrwuisfssuyhsdigftxjd xuytwquiwdgdyu dduhduyhsso <SEP> ikdfdwokdfgdyudsbvdsujwiwbgwqpt gv ddudwuidybdudosdfduiltdhjdw hudsyidhuyiyeduiowuejlujakwqhudgeyowdjedgyuderfeghwfyrfswtywqudtkwqhow <SEP> wup <JOIN> wdb hd fuywtrfvebnfvgddetewuywegvhewfyutewgywqhde ftdgfdvgefewtyrfetetefytxsyttdgtuetgfixjssjgsahxsussgssshsosgdsgfsjshcdjn shdsffdgdvgdhdskfgsshsvgs <N> = = Headline teggi <SEP> ourfj <SEP> ijgjk <SEP> krp <SEP> ikjkrghoiujoitr <SEP> ufj <JOIN> ifl <SEP> t kmguyhikoijgkrokmgjlthjnitorjkgfurikjhfujfklufjgrhjmgjktu <SEP> itoutjiotujolr <SEP> gjjkfknvjvigbhoghu <SEP> roiru <SEP> irthr <SEP> orirkrikg <SEP> fop firoirfjriyhtuiyhtir <SEP> fruihrejkyhrnugjvkikmmmmna sdfg <JOIN> hnm <SEP> aqs dfg <JOIN> hjk <SEP> q fgh <JOIN> jkl <SEP> vbnm , sdfasdfghjkfghj <SEP> thjkl / thjk <SEP> retyjkl <SEP> tjl <SEP> retghrdfthrtfgh <SEP> etr <SEP> wre <SEP> ertgh <SEP> rtyetryuiie <SEP> rtyu <SEP> rytuhjklwsfdgdgfhjadxvcbnm , zvc <JOIN> bnm zxcv thryuieyuofyyrtgyfurtgrhyfuyh rtgy urtgyyetgyurgyetgyeutgyudtgddtyuteyutgyuyfiif geytd <SEP> rdgfffteyeftrftftftreftrtrtuyuytegteytgtg dtygf tghftgtgtgtgbduhdhuidegyggfehdygeyeyhuiyurehuifyieofhrytfyfhdhdsbcc dsmdscydkfghdkfghjdfyfyhdhcncdbcvgftddwjd fghsgcdgyddjtgdyutgdyutgcyxtgxyx cgfxcxrdstrsrtyrstrstsvdgxfdsu\",0.387931034483,0.0191252190988\r\nd7e3700bd987c2aa,\"Ωραίως. Ετοιμάζω νέο tep <JOIN> late για τα χωριά. Λες να τα χωρίσουμε σε δυτικό , ανατολικό , κεντρικό ; Ή ανάλογα των δήμο :\",0.72,0.0190311991758\r\n3a4bba83aebbc14d,= = Headline text = = yttgfuyfgujfufghufvguhjfgtujhyjyfvgj fvuv gtvfguffujhfv vfu ftgfvvf gtfvvggfv gtfvtgyhfvtg gtfyhgf gtyhfyhf hfvgtfvgt gtf <JOIN> hgf fkjuhsdfsxgtodevhsxvgdef difhdlfhws edhfzdlfvhx dehfjdszihfv edhfkihfv ifcza dev <JOIN> fhz dhfvzdvj fhvzdfv dfvzlhf dhfa <N> dhflzsfvdg . <N> Centered text,0.578947368421,0.018978328453\r\nb521f2f60a4a0f26,\"Missing names <N> * Z. Serdyuk = = ? Сердюк Зиновий Тимофеевич , С 1961 1-й зам . председатель Комитета партийного контроля при ЦК КПСС , <N> * N. Mironov ? Николай Миронов Зав . отделом административных органов ЦК КПСС\",0.575,0.0189616090756\r\n52fe3d14b696c7bd,: : Ευχαριστώ πολύ και θα το επιθυμούσα ιδιαιτέρως.,0.777777777778,0.018758745103\r\n60c7aa829a60e0dc,\"наложения ограничений на административную деятельность ,\",0.666666666667,0.0187055713018\r\n9a09cfe215e1fd40,عمرو بن كلثوم|عمرو بن كلثوم ] ],0.714285714286,0.0185336923863\r\n88bb2861a18e2e84,Γιατί σβήνεις την ιστορία του Παναθηναϊκού ?,0.857142857143,0.0184418041245\r\nbf27cee1fdd145e7,آیا آمار دادخ شده از منابع معتیر است. لطفا ذکر منابع .,0.916666666667,0.0184328409474\r\nb1b4d8087c939faa,: : : 글쎄요. 저는 굳이 그렇게 코드를 따로 만들 필요가 있는지 의문입니다. ―,0.714285714286,0.0183665735727\r\n0b53e7e8ea07dd54,\"ड़ा.संजय अलंग की पुस्तक ' छत्तीसगढ़ के पंजाबी ' जो कि छत्तीसगढ़ पंजाबी सनातन सभा , रायपुर द्वारा प्रकाशित है और HTTP पर उपलबद्ध है , में भी अरोड़ा पर पर्याप्त सामग्री/विवरण दिया गया है ।\",0.833333333333,0.0180741837013\r\n2bb0e4533554804c,\": : Ναι όμως , μιά από ' δώ , μιά από ' κεί , τελικά μόνο αυτή η φωτό στη σελίδα των Ελλήνων έχει μείνει. Καί σού πάω στοίχημα ό,τι αργά η γρήγορα θα βρεθεί κάποιος που θα θέλει να τη βγάλει και αυτή.\",0.8,0.017762205159\r\nc895c9b0e1a3e111,* * Да това е по добре./ Yes it 's good !,0.416666666667,0.0174965124722\r\neebcff137ef90cb0,= = สวัสดีครับ = = <N> <N> I am native thai people . พูดภาษาไทยได้ไหม เข้าใจที่ผมเขียนไหม ผมเป็นคนไทย ดีใจที่คุณชอบประเทศผม ตอนนี้บ้านเมืองผมกำลังมีปัญหา แต่คนไทยก็ยังรักกันอยู่ มาเที่ยวไทยอีกนะครับ I come to say hi,0.32,0.0173619336061\r\n14d4a9ddc2f8a1f7,\": : Για αναύξητο αόριστο δεν ξέρω , αλλά το έλυσα και το έπαθες παραμένουν αναλλοίωτα.\",0.8125,0.0171797080488\r\nd2cca87db572c118,: مدارس في اسرائيل حسب البلد,0.833333333333,0.0167189604124\r\n70cb62382969a1ea,: : : : Ты меня пугаешь . Что именно тебе нравится ? - ),0.466666666667,0.0167043880586\r\n912b7c772dcd81e4,ניסיתי לסיים אותו שוב באבחנה אחרת ובתור נקבה בת 28 אבל זה דרך גוגל אז לא כל כך נתנו לי ... ),0.863636363636,0.0166421725601\r\n7b470131cab93ccd,\"\"\" Привет ! <N> <N> Меня зовут Виктор , и я рассказчик с Wikimedia Foundation , некоммерческая организация , которая поддерживает Википедию . Я хронику вдохновляющие истории общины Википедии по всему миру , в том числе и от читателей , редакторов и доноров . Истории совершенно необходимы для любой некоммерческой , чтобы убедить людей , чтобы поддержать дело , и мы знаем , обширная сеть людей , которые делают и используют Википедии так много акций . <N> <N> Я чистящих страниц пользователей ищет вдохновлять , мотивировать и интересных историй о том , как Википедия влияют на жизнь людей . Я задавал вопросы вроде \"\" \"\" Как Википедия изменила вашу жизнь ? \"\" \"\" , \"\" \"\" Какая самая интересная история у вас есть о Википедии ? \"\" \"\" и \"\" \"\" Википедии ли когда - нибудь вас удивило ? \"\" \"\" <N> <N> В прошлом году мы использовали ежегодный сбор средств как способ показать миру , кто есть кто на самом деле пишет Википедия . Мы признакам редакторов из Бразилии , Украины , Аргентины , Саудовской Аравии , Кении , Индии , США и Англии . Эта кампания имела огромный успех , в результате чего наиболее финансово успешных кампании по сбору средств никогда . Кроме того , было кампании , остался верен духу Википедии , просвещение общественности , что это бесплатно ТОП-5 Сайт создан добровольцами , как ты и я <N> <N> В этом году мы хотим выделить еще русский язык Википедии редакторов , так что я нахожусь в процессе планирования поездки в Россию в интервью редакторам . <N> <N> Если вы или кто - то из ваших знакомых ( или слышали о ) была положительно сказалось на Wikipedia , или есть что - то интересное , чтобы сказать о Википедии я бы очень хотел бы услышать об этом ! <N> <N> Пожалуйста , дайте мне знать , если вы склонны к участию в проекте Википедия истории , или если вы знаете кого - то еще , с кем я должен говорить . <N> <N> Конечно , если у вас есть какие - либо вопросы или сомнения , пожалуйста , обращайтесь ! Я отвечу , как только смогу . Я приношу извинения за любые плохой перевод этого письма , я использую Google - перевод . Я надеюсь , что заставляет вас смеяться ) <N> <N> Спасибо за ваше время , <N> <N> Victor Grigas <N> <N> HTTP <N> <N> vgr <JOIN> igas <SEP> wikimedia <SEP> org <N> <N> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <N> <N> Hi ! <N> <N> My name is Victor and I 'm a storyteller with the Wikimedia Foundation , the non - profit organization that supports Wikipedia . I 'm chronicling the inspiring stories of the Wikipedia community around the world , including those from readers , editors , and donors . Stories are absolutely essential for any non - profit to persuade people to support the cause , and we know the vast network of people who make and use Wikipedia have so much to share . <N> <N> I 'm scouring user pages looking for inspiring , motivating and interesting stories of how Wikipedia has affected the lives of people . I 'm asking questions like \"\" \"\" How has Wikipedia changed your life ? \"\" \"\" , \"\" \"\" What 's the most interesting story you have about Wikipedia ? \"\" \"\" and \"\" \"\" Has Wikipedia ever surprised you ? \"\" \"\" <N> <N> Last year , we used the annual fundraiser as a way to show the world who it is who actually writes Wikipedia . We featured editors from Brazil , Ukraine , Argentina , Saudi Arabia , Kenya , India , United States and England . This campaign was a huge success , resulting in the most financially successful fundraising campaign ever . It was also a campaign that stayed true to the spirit of Wikipedia , educating the public that this free top-5 website is created by volunteers like you and I. <N> <N> This year we want to highlight more Russian - language Wikipedia editors , so I am in the process of planning a trip to Russia to interview editors . <N> <N> If you or someone you know ( or have heard about ) has been positively affected by Wikipedia , or have something interesting to say about Wikipedia I 'd very much like to hear about it ! <N> <N> Please let me know if you 're inclined to take part in the Wikipedia Stories Project , or if you know someone else with whom I should speak . <N> <N> Of course , if you have any questions or concerns , please ask ! I will answer as soon as I can . I apologize for any poor translation of this letter , I am using Google - translate . I hope it makes you laugh ) <N> <N> Thank you for your time , <N> <N> Victor Grigas <N> <N> HTTP <N> <N> vgr <JOIN> igas <SEP> wikimedia <SEP> org <N> <N> \"\"\",0.308045977011,0.0166183444575\r\nc9eee0301831a772,qhv <SEP> b <SEP> qrohe <SEP> po <SEP> hgjrp <SEP> wkl <SEP> wjbn <N> lqe ' afldgkmgdkehjiov uqepo wup eq <SEP> pty,0.363636363636,0.0165328004569\r\n9ae38a63ae249a20,Gardiners <JOIN> Island Gardiners <JOIN> Bay Gardner <JOIN> Island Nikumaroro <N> Gardiners <JOIN> Island Gardiners <JOIN> Bay Gardner <JOIN> Island Nikumaroro,0.285714285714,0.0165220450301\r\n97951408c3f52369,\": Я не призываю вас склонять имена в статьях , имея их написание в латинице . Можно делать так : Соня ( ) — вымышленный персонаж ... У Сони есть ... У Сони нет ... И так далее . Но название статьи однозначно более узнаваемо в латинице , чем в кириллице , у которой есть несколько вариантов . Поэтому , собственно , и решили именовать латиницей — чтобы название статьи гарантированно узнали все . ru : Ari\",0.649350649351,0.016481906352\r\n30dd0f8d8cc31dc8,= = සෙන්පති යන්න කර්නල් යන්නට වෙනස් කිරීම== <N> <N> කර්නල් යන ඉංග්‍රීසි යෙදුම සිංහලෙන් යොදනා විට ද කර්නල් ලෙසින් ම ලියැවෙන්නකි. මූලාශ්‍රය : HTTP <N> <N> Aruni,0.714285714286,0.0163016520778\r\n34b7bddad0881545,= = Άσχετο== <N> Μια και ενδιαφέρεσαι για αρχαία κείμενα : Το Mus <JOIN> aios το έχεις υπόψη σου ?,0.6,0.0161340156361\r\ncc741f7dbb2bc22d,\": : : Очччень приятно , что стоило только появиться в английской Вики , так сразу получил поддержку . Спасибо ! : ) )\",0.541666666667,0.0161225644682\r\n6e85c4ca95bd82d5,\"Still addressing our critics , Islam says let 's all sit down together and pray that whoever says something wrong about God be doomed as in ( Aal Imran 61 ) فَمَنْ حَآجَّكَ فِيهِ مِن بَعْدِ مَا جَاءكَ مِنَ الْعِلْمِ فَقُلْ تَعَالَوْاْ نَدْعُ أَبْنَاءنَا وَأَبْنَاءكُمْ وَنِسَاءنَا وَنِسَاءكُمْ وَأَنفُسَنَا وأَنفُسَكُمْ ثُمَّ نَبْتَهِلْ فَنَجْعَل لَّعْنَةُ اللّهِ عَلَى الْكَاذِبِينَ . And still addressing our community , we\",0.390625,0.0160437071217\r\n43d6ee045041394b,: به Iraq <JOIN> chi نمیشه انتقالش داد دوباره؟,0.555555555556,0.0159591249337\r\n5cb6bea6b306a973,= = Muhammad : The Messenger of God = = <N> <N> از شما بسیار سپاسگزارم برای ویرایش. من امیدوارم که شما به مقاله کمک به طوری که کلمات به طور کلی بهبود یافته است. ) D,0.621621621622,0.0158580710691\r\nffed835f69bbfb72,\"ออสเตรเลีย เน็กซ์ ท็อป โมเดล , ฤดูกาลที่ 4 ] ]\",0.555555555556,0.0158510307969\r\n9b0e4dc8f46b377b,Akure <JOIN> tiya Hewawasam Dinesh Suranga .,0.571428571429,0.0157845478938\r\n52e42df25bf4d4fc,\"\"\" <N> <N> = = Wikipedia Stories Project = = <N> <N> Hi ! <N> <N> My name is Victor and I 'm a storyteller with the Wikimedia Foundation , the non - profit organization that supports Wikipedia . I 'm chronicling the inspiring stories of the Wikipedia community around the world , including those from readers , editors , and donors . Stories are absolutely essential for any non - profit to persuade people to support the cause , and we know the vast network of people who make and use Wikipedia have so much to share . <N> <N> I 'm scouring user pages looking for inspiring , motivating and interesting stories of how Wikipedia has affected the lives of people . I 'm asking questions like \"\" \"\" How has Wikipedia changed your life ? \"\" \"\" , \"\" \"\" What 's the most interesting story you have about Wikipedia ? \"\" \"\" and \"\" \"\" Has Wikipedia ever surprised you ? \"\" \"\" <N> <N> Last year , we used the annual fundraiser as a way to show the world who it is who actually writes Wikipedia . We featured editors from Brazil , Ukraine , Argentina , Saudi Arabia , Kenya , India , United States and England . This campaign was a huge success , resulting in the most financially successful fundraising campaign ever . It was also a campaign that stayed true to the spirit of Wikipedia , educating the public that this free top-5 website is created by volunteers like you and I. <N> <N> This year we want to highlight more Russian - language Wikipedia editors , so I am in the process of planning a trip to Russia to interview editors . <N> <N> If you or someone you know ( or have heard about ) has been positively affected by Wikipedia , or have something interesting to say about Wikipedia I 'd very much like to hear about it ! <N> <N> Please let me know if you 're inclined to take part in the Wikipedia Stories Project , or if you know someone else with whom I should speak . <N> <N> Of course , if you have any questions or concerns , please ask ! I will answer as soon as I can . I apologize for any poor translation of this letter , I am using Google - translate . I hope it makes you laugh ) <N> <N> Thank you for your time , <N> <N> Victor Grigas <N> <N> HTTP <N> <N> vgr <JOIN> igas <SEP> wikimedia <SEP> org <N> <N> <N> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <N> <N> Привет ! <N> <N> Меня зовут Виктор , и я рассказчик с Wikimedia Foundation , некоммерческая организация , которая поддерживает Википедию . Я хроник вдохновляющих историй сообщества Википедии по всему миру , в том числе и читателей , редакторов и доноров . Истории совершенно необходимы для любой некоммерческой органицации , чтобы убедить людей поддержывать наш проект , и мы знаем , что у людей , которые строют и используют Википедии есть много , что рассказать ! <N> <N> Я ищу вдохновляющие страницы пользователей , и интересных историй о том , как Википедия влияют на жизнь людей . Я задавал вопросы вроде \"\" \"\" Как Википедия изменила Вашу жизнь ? \"\" \"\" , \"\" \"\" Какая самая интересная история у Вас есть о Википедии ? \"\" \"\" и \"\" \"\" Википедия ли когда - нибудь Вас удивило ? \"\" \"\" <N> <N> В прошлом году мы использовали ежегодный сбор средств как способ показать миру , кто на самом деле пишет Википедия . Мы показывали редакторов из Бразилии , Украины , Аргентины , Саудовской Аравии , Кении , Индии , США и Англии . Этот метод имел огромный успех , в результате чего у нас была наиболее финансово успешная кампании по сбору средств в историе организации . Кроме того , мы остались верны духу Википедии , просвещение общественности , что это бесплатно ТОП-5 Сайт создан добровольцами , как Ви и я . <N> <N> В этом году мы хотим выделить еще редакторов Википедии на русском языке , так что я нахожусь в процессе планирования поездки в Россию и интервью с редакторами . <N> <N> Если Википедия положительно повлеяла на Вас или на кого - то из Ваших знакомых , или у Вас есть что - то интересное сказать о Википедии , я бы очень хотел услышать об этом ! <N> <N> Пожалуйста , дайте мне знать , если Ви бы хотели участвовать в проекте Истории Википедии , или если вы знаете кого - то еще , с кем я должен поговорить . <N> <N> Конечно , если у Вас есть какие - либо вопросы или сомнения , пожалуйста , обращайтесь ! Я отвечу , как только смогу . Извините за плохой перевод этого письма , я использую Google - перевод . Я надеюсь , что заставляет вас смеяться ) <N> <N> <N> Спасибо за Ваше время , <N> <N> Victor Grigas <N> <N> HTTP <N> <N> vgr <JOIN> igas <SEP> wikimedia <SEP> org <N> <N> \"\"\",0.29840546697,0.0156401648325\r\nc7abf81df939fddd,\"नन्द कुमार बसोर ( शिक्षक ) <N> ग्राम चिनगी पोस्ट पतेरी तहसील चितरंगी <N> जिला सिंगरौली ( म.प्र.)मो.9179821526,8120753266 <N> ईमेल ID nand <SEP> gmail <SEP> com <N> नन्द कुमार बसोर पिता श्री हरी चरण बसोर <N> शास.प्राथ.विद्या.धरसड़ा में शिक्षक है ।\",0.634146341463,0.0149871394375\r\nb43715604e5e4dba,\"\"\" <N> <N> <N> نگاهی هم به اول صفحه کاربر <N> <N> <N> <N> بیندازید ببینید در حقش چه نوشته اند . ظاهرا خودش مشهور به وندالیزم است آنوقت درخواست بستن مرا داده ! <N> <N> \"\" \"\" Most of your edits appear to be reverting a single user , and you have n't justified a single one of these reverts ... This behavior is stalking and possibly vandalism . Do not continue to remove information without giving an edit summary , or you may be blocked . \"\" \"\" ... <N> \"\"\",0.258064516129,0.0147624848048\r\n54d7451258dc31fd,\"Αυτό , <N> έχει λίγο από το πνεύμα σου , εκτός και αν κανένα μίζερο μουσουλμανάκι έχει βάλει το χεράκι του. <N> <N> Άσχετο : Τώρα έχουμε και κατασκόπους να διαβάζουν τις σελίδες μας ?\",0.8,0.0145747119855\r\nf3547f14d1879911,\": Well , не дуже зрозумів про що мова\",0.555555555556,0.0145362081121\r\n7c0b2af8b5e3f141,: Είχα δει ένα διπλό βινύλιο με τέτοιο τίτλο και 2 ή 3 σιντί. Ρώτα πάντως και τον φίλο σου αν μπορεί να το ψάξει.,0.88,0.0142218817996\r\nfd7e960b8f6da3e2,Expand Russian почтовых марок СССР,0.6,0.0139444199482\r\n8bc3a15259319909,\"// 0600z // 1200z // 1800z <N> : 2014 - 03 - 21 , 0000z\",0.266666666667,0.0138575206763\r\nb3a4919b9e181eb7,Mikayilov Fuad <N> <N> Telman oglu Salyan rayonu 24 _ 10_1986,0.454545454545,0.0135117695344\r\n74c7e94c134613af,: amud <JOIN> anan calls it תל א - סקי not תל סאקי .,0.357142857143,0.0131900274777\r\n111fd70018e044d8,\"= = Epigraphic memorials of Abkhazia <N> ჩემი თემა , თან მთლიანი თემა რა მიზეით წაშალე , რომ ახსნაც კი არ მომწერე ?\",0.565217391304,0.0122026230091\r\nd054c57f007cb2c4,The changed dinosaurs are : <N> Argentinosaurus <N> Puerta <JOIN> saurus <N> Futalognkosaurus <N> Antarctosaurus <N> Sauroposeidon <N> Dreadnoughtus <N> Paralititan <N> Unnamed <N> Brachiosaurus <N> Mamenchisaurus <N> Turia <JOIN> saurus <N> Ruyangosaurus <N> Alamosaurus,0.285714285714,0.0120799386473\r\n9d2395ab3788a832,\"= = hoeryong <N> i understood this paragraph is on hoeryong ( korean ) . can you translate this for english please ? <N> 인구 13만 4524(1991 추정 ) . 동쪽은 은덕군 · 새별군 · 나진선봉시 , 서쪽은 무산군 , 남쪽은 청진시 · 부령군 , 북쪽은 온성군 및 두망강을 사이에 두고 중국 지린성[吉林省]과 접한다. 함경산맥이 시역의 중앙을 가로질러 뻗어 있어 산지가 많으나 , 두망강 연안에는 비교적 넓은 평야가 전개된다. <N> <N> 함경산맥에는 오봉산(1,329 m ) · 민사봉(1,278 m ) · 굴산(991 m ) 등이 솟아 있고 , 그 밖의 지역에는 고연두산(841 m ) · 까치봉(1,084 m ) · 신봉(1,144 m ) · 서재산(1,109 m ) 등이 있다. 회령천(33.7 km ) · 보을천 · 팔을천 등이 중국과의 경계를 이루는 두만강으로 흘러들며 , 이들 하천 유역에 회령분지가 발달해 있다. <N> <N> 기반암은 화강편마암이며 토양은 갈색산림토이나 하천 유역에는 일부 충적토가 분포한다. 산림은 군 면적의 80%이며 주요 수종은 소나무 · 잎갈나무 · 참나무 등이다. 연평균기온 5.5 ℃ , 1월 평균기온 －12.6 ℃ , 8월 평균기온 21.1 ℃ 이며 연평균강수량은 mm <N> <N> 1952년 12월 북한 행정구역 개편 때 용흥면 일부와 보을면을 유산군으로 분리 · 독립시키고 , 나머지 지역인 회령읍 · 창두면 · 화풍면과 팔을면의 5개리 , 벽성면의 4개리 , 부령군 서상면의 1개리 , 종성군 남산면의 2개리를 통합하여 군 영역을 재조정하였다. 1991년 7월 시로 승격되었다. <N> <N> 현재 행정구역은 회령 · 망양 · 궁심 · 세천 · 중봉 · 중도 · 유선∼2의 8개동과 풍산 · 무산 · 창효 · 덕흥 · 오봉 · 대덕 · 창태 · 학포 · 낙생 · 금생 · 원산 · 신흥 · 사을 · 인계 · 남산 · 영수 · 행영 · 방원 · 굴산 · 계하 · 계상 · 송학 · 용천 · 벽성 · 홍산 · 오류 · 성동 · 성북의 28개리로 이루어져 있다. <N> <N> 주요 농산물은 옥수수 · 콩 · 쌀 · 채소 · 잎담배 등이며 그 밖에 석탄 · 석회석의 생산이 많다. 공업은 탄광기계 · 직물 · 제지 · 제약 · 제당 · 도자기 제조가 성하다. 교통편으로는 함북선 · 회령탄광선 철도와 청진 · 무산 · 온성 · 나진선봉시 등지로 통하는 도로가 있다. 명승지로는 오국산성 · 오대암사 · 오동 원시유적지(북한 사적 69 ) 등이 있다.\",0.616045845272,0.0116492997192\r\n1a14ae51d04a6835,HTTP <N> پایگاه فرهنگی مذهبی جنگ و زن,0.75,0.0112250035194\r\n9bb230ac7fa8472e,} } <N> |2 = <N> |3 = <N> |4 =,0.272727272727,0.0111323566487\r\n68022136b26a503a,\"\"\" <N> <N> = = Ζαγόρι = = <N> <N> Καλησπέρα ! Τι γίνεται ? Απ'όσο βλέπω δεν έχουμε κάποιο πρόβλημα αυτή τη στιγμή. Κοίταξα το Template : villages of Zagori την τελευταία εβδομάδα και το συγύρισα λίγο ( έτσι ώστε να μην οδηγεί σε disambiguations ) . Επίσης , έριξα μια ματιά στα \"\" \"\" Κάτω Πεδινά \"\" \"\" και \"\" \"\" Βίτσα \"\" \"\" κι αναγκάστηκα να τα κουτσουρέψω αρκέτα. Το Σάββατο θα φύγω ( θα πάω στα Γιάννενα και θα γυρίσω την άλλη Παρασκευή ( ε δεν πιστεύω να ' χουμε κανα πρόβλημα μέσα σε μιά εβδομάδα ) . όταν θα επιστρέψω θα έχω και μερικά βιβλία για πηγές. Εσύ έχεις αρκετές για να ξεκινήσουμε τότε να γράφουμε άρθρα για όσα περισσότερα χωριά μπορούμε ? Επίσης , έβαλα το Template to WP : Grece στο Angelos Kitsos . Έλεγξε το κι εσύ και κοίταξε εάν συμφωνείς με το assessment . \"\"\",0.701298701299,0.0106811110612\r\n088655c2451efdff,\"= = Contested deletion = = <N> <N> OnTel Rocket MeP <JOIN> hone Digital <JOIN> Phone Rtc <JOIN> Dialer Ring <JOIN> Home Call <JOIN> Desh King <JOIN> Tel KingBird BdMoittry JedMoittry MusMoittry Sda <JOIN> Call <SEP> Desh Saud <JOIN> iNet FatafatiXpress Pinless DmmMoittry Adb <JOIN> Ring <SEP> Home Mb <SEP> Moi <JOIN> ttry DxbMoittry FerareDialer SimSim Madeen <JOIN> aPlus Talk <JOIN> Phone Xtra <JOIN> voip Mobil <JOIN> eTalk Better <JOIN> Phone Bd24 Gol <JOIN> dren plus Mvo <JOIN> ice BdK <JOIN> ing আপনার প্রিয়জনের সাথে কথা বলুন . আর এই সেবাটুকুই আমরা আপনাদেরকে দেয়ার নিশ্চিয়তা দিতেছি।সৌদি আরব , ওমান , কাতার , মিশর , ইরাক , সংযুক্ত আরব আমিরাত , লিবিয়া বিশ্বের যেকোনো দেশে কল করা যায় 100 Usd Doller 6900 Taka সু-খবর- সু-খবর ! ! ! একই রিসেলারে সব সুবিধা ! ! ! ! সু-খবর- সু-খবর ! ! ! আনলিমিটেড রিচার্জ সিস্টেম এন্ড মোবাইল ব্যাঙ্কিং সুবিধা ! ! ফ্লেক্সিলোড ( বাংলাদেশ , ইন্ডিয়া,পাকিস্তান , নেপাল , শ্রীলংকা. ) অটো রিচার্জ সিস্টেম- আমাদের সার্ভিস গুলো হচ্ছে : ১.ফ্লেক্সিলোড 2.বিকাশ ৩.মোবাইল ব্যাঙ্কিং ৪.ইন্টারন্যাশনাল রিচার্জ ৫.বিল পে ৬.বাংলাদেশ ব্যাঙ্ক ট্রান্সফার ৭.এস . এম এস সুবিধা আমরা মনে করি , আমাদের সার্ভিস অবশ্যই আপনাদের ভাল লাগবে * * * আমাদের পেমেন্ট করার পদ্দতি গুলো • বাংলাদেশ ( Brac bank , Islami bank ) • দুবাই ( NBD bank , Mashreq Bank , Islamic bank ) • সৌদিআরব ( Alra <JOIN> jhi Bank , NCB Bank ) • ওমান ( Muscat Bank ) আপনার যেকোনো প্রয়োজনে যোগাযোগ করুন - CONTACT INFO : SUPPORT : MOBILE NUMBER + 8801558 - 11419 WHATSAPP NUMBER : + 8801558 - 11419 VIBER NUMBER + 8801558 - 11419 IMO NUMBER : + 8801558 - 11419 Reseller : Level-4 Level-3 , Level-2 , Level-1 Available '\",0.377622377622,0.0106652744295\r\na0413714078957d4,\"Chhatarpur Baseball Association <N> [ [ <N> <N> <N> <N> ] ] <N> Bold text chhatarpur baseball association founded in 2002 <N> chhatarpur baseball association one of the association in madhya pradesh who won the every matches in every place . <N> the chhatarpur baseball association official staff is <N> CHHATARPUR BASEBALL ASSOCIATION STAFF <N> MRU <JOIN> MESH SHUKLA - PRESIDENT <N> MR <SEP> MANSINGH - SECRETARY <N> DHEERAJ CHO <JOIN> BEY - COACH ( BOYS ) <N> RICHA THIR <JOIN> PATHI - COACH ( GIRLS ) <N> AMIT SHUKLA - SUBC <JOIN> OACH <N> ANSHUL DEV VERMA - SUB COACH <N> CONTACT NO . 975425833,9584181081,9907885262,8458856067 <N> <N> latest new of cba <N> <N> बेसबाल प्रतियोगिता 12 जुलाई से होगी <N> छतरपुर । राष्ट्रीय सब जूनियर बेसबाल प्रतियोगिता के पहले रा\\'य स्तरीय बेसबाल प्रतियोगिता का आयोजन किया जाएगा । छतरपुर बेसबाल संघ के सचिव और कोच मान सिंह ने बताया कि मप्र बेसबाल संघ की कार्यकारिणी की बैठक में आगामी राष्ट्रीय सब जूनियर बेसबाल प्रतियोगिता छतरपुर में कराने का निर्णय लिया गया है । इसके आयोजन की जिम्मेदारी एसोसिएशन को दी गई है । इस प्रतियोगिता का आयोजन 12 जुलाई से 14 जुलाई तक होगा । इसमें प्रदेश के कई जिलों की टीमें भाग लेंगी । साथ प्रदेश की बालक और बालिका टीम का चयन किया जाएगा । इसमें चयनित टीम राष्ट्रीय सब जूनियर बेसबाल प्रतियोगिता में भाग लेने गुवाहटी जाएगी । प्रतियोगिता के आयोजन की तैयारियां शुरू हो गई है । <N> <N> <N> CHHATARPUR BASEBALL ASSOCIATION <N> The Sub - Junior open state in chhatarpur ( m.p . ) <N> On Dated 12 july 2013 to 14 july 2013 <N> Venue Baburam chaturvedi stadium <N> so please visit people every one in stadium and enjoy match ........\",0.432525951557,0.0104864778677\r\ncadc7fc5456d40a3,: : : Εύκολα στο WP : CHU . Διάβασε τις οδηγίες εκεί.,0.461538461538,0.0103591059514\r\n9d62ab47360e4428,\"\"\" <N> : And here it is ( \"\" \"\" لو كنت اعلم ان خطف الجنديين الاسرائيليين سوف يؤدي الى هذه النتيجة لما اقدم حزب الله على ذلك \"\" \"\" ) . \"\" \"\" \"\" \"\"\",0.5,0.0100352684492\r\n62a14eaa82d65880,HTTP <N> كيف تضع علم مصر في هذا العمل فوق خريطة سورية ؟ <N> هذا يعد إهانة <N> هل تقبل أن أضع غلم سورية فوق غلم مصر ؟,0.785714285714,0.00981995948234\r\n841efc35c2eb2ff4,\"\"\" <N> <N> = = ขอความเห็นเกี่ยวกับแปล ชื่อโครงการ และ namespace เป็นภาษาไทย = = <N> <N> Excuse me to use Thai here . <N> <N> รบกวนขอความเห็น เรื่อง \"\" \"\" การแปลชื่อโครงการ \"\" \"\" และ \"\" \"\" การแปล namespace \"\" \"\" ที่ th ( โครงการวิกิพีเดีย ) ด้วยนะครับ ขอบคุณครับ \"\"\",0.288888888889,0.00960691522917\r\nb58f4c6afc5cea7c,\"\"\" <N> <N> אלך לפורום וארשם לו . אולי האיש עוד שם . אם לא אכול ליצור מגע עמו , אשים הדף WP : AFD . <N> — • \"\"\",0.533333333333,0.00950229531813\r\nc57545a724a52d24,\"= = Kate counter problem = = <N> see my talk , please ... <N> 카테 카운터를 쓰는데요 , 전 영어위키와 한글위키 아이디가 같구요. 그런데 , 영어위키에 대한 카운터는 제대로 작동하더군요. 실시간으로 바로바로 카운터가 작동되던데 , 한글위키에는 아직도 제 아이디가 카운트 안됩니다. 다른 운영자 아이디 넣어도 안나와요. 그래서 , 한글위키 운영자에게 물어보니까 , 플로리다에서 한국으로 서버를 이전했는데 , 그 부분을 카테가 반영하지 않아서 에러가 나는게 아니겠냐고 하더군요. 카테 오류좀 고쳐주었으면 합니다.\",0.704225352113,0.00932091450507\r\n9c3f3eac9248bd24,\": Tetartoidal is correct , see tetartoidal class on Webmineral .\",0.272727272727,0.00886028656795\r\nbd56713e9d03c727,\"\"\" <N> <N> : نعم اشارك من وقت الى اخر ( - Do n't Talk ) \"\"\",0.352941176471,0.00877587968425\r\neadde3b92496ca4d,\"\"\" <N> <N> Ханну Рауткаллио , который писал о Кекконене с очень критической точки зрения , и одна из книг называется : \"\" \"\" Лаборатория Финляндия . Кекконен и КГБ . 1944 - 1962-й годы \"\" \"\" . Она вышла в 1996-м году . И там , ссылаясь на убежавшего из Хельсинки на Запад офицера КГБ Голицына , он прямо пишет , что Кекконен , якобы , был агентом КГБ под кличкой Кима , и что его завербовали в 1948-м году . В Финляндии вообще известно , что вокруг Кекконена , среди его близких друзей и сотрудников , было несколько завербованных КГБ людей , которые с ним работали . Кроме того , Кекконен - все его отношения , которые он поддерживал с Советским Союзом , он поддерживал их через резидентов КГБ , не через посла даже , не по дипломатической линии , а по так называемой партийной линии , они называли это партийной линией , но все делалось через агентов КГБ . . <N> <N> I read about him inserting certain phrases in his speeches - phrases that Soviet politburo wanted him to tell ; and of course he met with a KGB representative in an appartment somewhere in Finland , but I do not remember where - a book by Oleg Gordievsky or book by Klepikova . I could find anything in Mitr <JOIN> khin books . \"\"\",0.489082969432,0.00871903622916\r\n6488d3c5b07dde87,: the following images have been tagged as replaceable as well <N> :* <N> :* <N> :* <N> :* <N> :* <N> :*,0.260869565217,0.00750417055932\r\n7853489bde35d243,\"= = Please help with Rishon - LeZion = = <N> <N> Я всё - таки по - русски спрошу , если ты не возражаешь . <N> <N> В каком всё - таки округе находится город Rishon - LeZion ( и ещё там есть несколько таких сомнительных городов около Тель - Авива ) ? В статье List of cities in Israel написано , что в центральном , а по другим данным в Тель - Авивском . Может ты знаешь ?\",0.5125,0.00743120695287\r\naa21c3d63d3b4ca2,\": : : You must understand that this is just a coat of arms of the republic on the shirt , this is not the club logo . Coat of arms of the republic can not legally be a logo . The official logo of the club Ak Bars image is File : AqBarsKazan <SEP> png See the website of the club HTTP and the site KHL HTTP You deny the official information . <N> : : : Вы должны понять что это просто изображение герба республики на майке , это не логотип клуба . Герб республики юридически по закону не может быть логотипом . Официальным логотипом клуба Ак Барс является изображение File : AqBarsKazan <SEP> png Смотрите сайт клуба HTTP и сайт КХЛ HTTP Вы отрицаете официальную информацию .\",0.3,0.00737235359962\r\na370108cf398b38c,\"* I have checked myself the law , as no reply from Illy <JOIN> thr arrived . Indeed the law still exists , it was modified onn 29.05.2003 ( wording concerning criminal persecution ) and here is what it says : <N> <N> Закрепление Конститутцией ( Основным Законом ) Молдавской Советской Социалистической Республики статуса молдавского языка как государственного призвано способствовать достижению полноты суверенитета республики и созданию необходимых гарантий для его полноценной и всесторонней реализации во всех сферах политической , экономической , социальной и культурной жизни . Молдавская ССР поддерживает получение образования и удовлетворение своих культурных потребностей на родном языке молдаванами , проживающими за пределами республики , а с учетом реальности молдавско - румынской языковой идентичности - и румынами , проживающими на территории СССР . <N> Придавая молдавскому языку статус государственного , Молдавская ССР обеспечивает защиту конституционных прав и свобод граждан любой национальности , проживающих на территории Молдавской ССР , независимо от используемого языка в условиях равенства всех граждан перед Законом . <N> В целях государственной охраны и обеспечения развития гагаузского языка Молдавской ССР создает необходимые гарантии для последовательного расширения его социальных функций . <N> Молдавская ССР обеспечивает на своей территории условия для использования и развития русского языка как языка межнационального общения в СССР , а также языков населения других национальностей , проживающего в республике . <N> <N> This law , in its full ( introduction ) version , and not only one separated part , which was pres <JOIN> eted by Dc about Romanian - Moldavian linguistic identity , as if there were no other sentences after , is fully compatible with Moldavian Constitution , art . 13 . Therefore all the four languages ( Moldavian , Russian Ukrainian , Gagauz ) are protected as by the Constitution , as well as by simple laws , of which this one is another example . Mold <JOIN> opodo\",0.42671009772,0.00678877261389\r\ne718d86a42e17676,= = Λύσσαξε το αρωμουνίδιον== <N> Πρέπει να έχει αφρίσει ... - ) ) ) 29 June 2005 15:45 ( UTC ),0.318181818182,0.00669632646573\r\n00b568d3b0f61a37,Радченко ис мы дирты гаы анал сех славе ! !,0.8,0.374623403087\r\nda2e7aaed70b5c8b,ḡḀỾ ấṋḐ ỉṩ ậ ḟẚḠḡṏṰ ễẤṯṢ ẆḢộ ḎḀ ṔṎṌ owner,0.9,0.35725544336\r\nc0e0c7ffc1f4cd8c,\"\"\" <N> <N> = = Age of leaving family for monastery <N> \"\" \"\" юноша в 19 лет тайно ушел на Валаам ... Семь лет жил Амос в монастыре как послушник , ведя суровую жизнь ... В 1474 году Амос принял постриг с именем Александр . \"\" \"\" <N> HTTP <N> The passage <N> \"\" \"\" Когда он пришел на Валаам , игумен принял его и постриг с именем Александр в 1474 году . Было ему тогда 26 лет . \"\" \"\" ( HTTP ) <N> could mean that he came to the monastery earlier and lived several years as lay brother . \"\"\",0.355769230769,0.00578640021511\r\n65f2b79383b78353,\"\"\" : Uhm , did you read the link ? . Of course , I only read it through google translator . The relevant passages in google English are : \"\" \"\" A person who compile , issue or publish dictionaries , encyclopedias , textbooks and teaching materials , training , advertising and other reference materials , must apply the rules of transliteration , established by this law . \"\" \"\" ( = \"\" \"\" Лице , което съставя , издава или публикува речници , енциклопедии , учебници и учебни помагала , учебни , рекламни и други справочни материали , е длъжно да прилага правилата за транслитерация , установени с този закон . \"\" \"\" ) plus : \"\" \"\" Art . 13 . 13 . Който съставя или издава речници , енциклопедии , учебници и учебни помагала в нарушение на чл . He compiled and issued dictionaries , encyclopedias , textbooks and teaching materials in violation of Art . 2 , ал . 2 , para . 5 , се наказва с глоба от 400 до 800 лв . , съответно с имуществена санкция от 2000 до 5000 лв . 5 , shall be punished by a fine of 400 to 800 leva , with penalty payment of EUR 2000 to 5000 \"\" \"\" ( = \"\" \"\" Чл . 13 . Който съставя или издава речници , енциклопедии , учебници и учебни помагала в нарушение на чл . 2 , ал . 5 , се наказва с глоба от 400 до 800 лв . , съответно с имуществена санкция от 2000 до 5000 лв . \"\" \"\" ) – I will apologise if you can show me how I misread that . Otherwise , the \"\" \"\" banana republic \"\" \"\" stands . <N> <N> \"\"\",0.251677852349,0.00556808329833\r\nf00c9d369feb1438,\"What I meant to say , , is : Can you translate the cited Ukrainian - language passage ? <N> : : Історична місія нашої Нації у це переломне сторіччя – очолити й повести за собою Білі Народи всього світу в останній хрестовий похід за своє існування . Похід проти очолюваного семітами недолюдства . <N> Straightforward translation , without edits . Thanks !\",0.444444444444,0.00510173575148\r\nac9be77d952a6449,\"= = Participles = = <N> In the article is written that there are six participles in Bulgarian : укриващ , укриван , укрил , укривал , укрит , укривайки . Then what participle is укриел . In the sentece Ако той се укриел , никой нямало да може да го намери it can be replaced by none of the others , without changing the meaning .\",0.268656716418,0.00490005314389\r\nfad9c48522082614,\"\"\" <N> <N> Consider the following passage cited from an essay by G. Babin <JOIN> iotis , pry <JOIN> tanis ( rector ) of the University of Athens and reputed linguist : <N> \"\" \"\" Ως προς την προφορά ο [ Greek linguist ] Γεώργιος Ν. Χατζιδάκις , ακολουθώντας τα διδάγματα της γλωσσικής επιστήμης , έδειξε ότι ανάμεσα στην προφορά της αρχαίας και της νέας γλώσσας υπάρχουν σημαντικές διαφορές , αναμενόμενες στην εξέλιξη κάθε φυσικής γλώσσας. \"\" \"\" ( Γεώργιος Ν. Χατζηδάκης ( 1848 - 1941 ) , θεμελιωτής της γλωσσικής επιστήμης στην Ελλάδα , πρώτος καθηγητής της Γλωσσολογίας στο Πανεπιστήμιο Αθηνών ) HTTP HTTP Could somebody who has access to the literature find out what exactly Hatzidaki 's conclusions were ? \"\"\",0.422764227642,0.00459574238133\r\n6195384227953399,\"\"\" <N> <N> = = Request for Help , please = = <N> Greetings Mr Biplab Anand , <N> <N> <N> Nice to meet you . <N> <N> Could you kindly help me translate this article into the unique Maithili language ? Please . <N> <N> <N> <N> Content <N> <N> साँचो यशु गिर्जाघर यौटा स्वतन्त्र गिर्जाघर हो जुन पहिलोपल्ट चीनको वेइजीङमा १९१७मा भएको थियो । त्यसपछि त्यो गिर्जाघर १९३२मा भारतमा पनि स्थापना गरियो । हाल यसका सदस्यहरू ४५ वटा देशमा झन्डै १५ लाख देखि २५ लाख जति छन् । यो गिर्जाघरलाई बिसौं शताब्दिमा प्रोटेस्टेन्टहरूको प्रादुर्भाव भएको स्रोतस्थानका रूपमा पनि लिइन्छ । यो गिर्जाघर १९४५मा चीनमा कम्युनिस्ट शासन सुरुहुनुभन्दा पहिले स्थापित तीन गिर्जाघरहरू मध्येको एक हो । यिनीहरू यशुको दोस्रो जन्म हुन्छ भन्ने सन्देश सवै देशहरूलाई दिन चाहन्छन् । यिनिहरू यशुका तिन अवतार छन् भन्ने नियम मान्दैन बरु यिनीहरू \"\" \"\" यशुको नामका नियमहरू \"\" \"\" मात्र मान्दछन् । <N> यस चर्चका १० प्रमुख विश्‍वासहरू यस प्रकारका रहेका छन् : <N> १.१ पवित्र आत्मा <N> १.२ बाप्तिसम <N> १.३ खुट्‍टा धुने <N> १.४ पवित्र सम्बन्ध <N> १.५ सब्बाथ दिन ( शनिवार ) <N> १.६ यशु क्राइस्ट <N> १.७ पवित्र बाइबल <N> १.८ मोक्ष <N> १.९ गिर्जाघर <N> १.१० अन्तिम न्याय <N> <N> <N> <N> <N> <N> Your help would be very Gratefully Appreciated , Thankyou very much . \"\"\",0.570776255708,0.0043164962584\r\n"
  },
  {
    "path": "projects/kaggle/toxic/read-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   inference.py\n#        \\author   chenghuige  \n#          \\date   2018-02-05 20:05:25.123740\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './mount/temp/kaggle/toxic/tfrecords/glove/train/*record,', '')\nflags.DEFINE_integer('batch_size_', 512, '')\nflags.DEFINE_string('model_dir', None, '')\nflags.DEFINE_string('type', 'train', 'dump')\n#flags.DEFINE_integer('fold', None, '')\n\nimport tensorflow as tf\ntf.enable_eager_execution()\n\nimport sys, os\nfrom sklearn import metrics\nimport pandas as pd \nimport numpy as np\nimport gezi\n\nfrom wenzheng.utils import ids2text\n\nimport melt\nlogging = melt.logging\nfrom dataset import Dataset\n\ndef main(_):\n  logging.set_logging_path('./mount/tmp/')\n  vocab_path = os.path.join(os.path.dirname(os.path.dirname(FLAGS.input)), 'vocab.txt')\n  ids2text.init(vocab_path)\n  FLAGS.vocab = './mount/temp/kaggle/toxic/tfrecords/glove/vocab.txt'\n\n  FLAGS.length_index = 2\n  #FLAGS.length_index = 1\n  FLAGS.buckets = '100,400'\n  FLAGS.batch_sizes = '64,64,32'\n\n  input_ = FLAGS.input \n  if FLAGS.type == 'test':\n    input_ = input_.replace('train', 'test')\n\n  inputs = gezi.list_files(input_)\n  inputs.sort()\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n\n  if FLAGS.type != 'dump':\n    print('type', FLAGS.type, 'inputs', inputs, file=sys.stderr)\n\n    dataset = Dataset('valid')\n    dataset = dataset.make_batch(FLAGS.batch_size_, inputs)\n\n    print('dataset', dataset)\n\n    timer = gezi.Timer('read record')\n    for i, (x, y) in enumerate(dataset):\n      if i % 10 == 1:\n        print(y[0])\n        print(x['comment'][0])\n        print(ids2text.ids2text(x['comment'][0], sep='|'))\n        print(x['comment_str'][0])\n        break\n  else:\n    pass\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "projects/kaggle/toxic/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-01-13 16:32:26.966279\n#   \\Description  \n# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nimport numpy as np\nfrom tqdm import tqdm\n\nimport melt \nlogging = melt.logging\nimport gezi\nimport traceback\n\nfrom algos.model import *\nfrom dataset import Dataset\n\ntfe = tf.contrib.eager\n\nfrom evaluate import *\n\ndef main(_):\n  FLAGS.model_dir = './mount/temp/kaggle/toxic/model/baseline1'\n\n  FLAGS.emb_dim = 300\n  FLAGS.learning_rate = 0.001\n  \n  FLAGS.optimizer = 'adam'\n  #FLAGS.optimizer = 'sgd'\n\n  FLAGS.interval_steps = 1000\n  FLAGS.num_epochs = 2\n  base = './mount/temp/kaggle/toxic/tfrecords/glove'\n  FLAGS.train_input = f'{base}/train/*record,'\n  #FLAGS.train_input = f'{base}/train/1.record,'\n  FLAGS.test_input = f'{base}/test/*record,'\n  FLAGS.vocab = f'{base}/vocab.txt'\n  FLAGS.fold = 0\n  FLAGS.batch_size = 64\n  FLAGS.word_embedding_file = f'{base}/glove.npy'\n  #FLAGS.finetune_word_embedding = False\n  FLAGS.rnn_hidden_size = 100\n\n  #FLAGS.save_interval_epochs = 0.2 \n\n  # # set legnth index to comment\n  # FLAGS.length_index = 1\n  # FLAGS.buckets = '100,400'\n  # FLAGS.batch_sizes = '64,32,16'\n\n  FLAGS.batch_size = 32\n\n  melt.apps.init()\n\n  model = Model()\n\n  train = melt.apps.get_train()\n  \n  train(Dataset,\n        model,  \n        criterion,\n        eval_fn=calc_auc, \n        write_valid=True,\n        infer_names=['id'] + CLASSES)   \n\nif __name__ == '__main__':\n  tf.app.run()  \n"
  },
  {
    "path": "projects/pyt/README.md",
    "content": "bert is transformer based\nelmo is bi lm based but may use bert loss (mask, next sentence)\n"
  },
  {
    "path": "tests/horovod/allgather.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   allreduce.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:05:04.755084\n#   \\Description    nc horovodrun -np 2  python allreduce.py \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport horovod.keras as hvd\nimport numpy as np\nhvd.init()\nhvd_r=int(hvd.rank())\nassert hvd.size() == 2\n#each process compute a small part of something and then compute the average etc.\ntest_array= np.array(range(100))\n#compute a small part\nspan = int(100 / hvd.size())\nx=test_array[hvd_r * span: (hvd_r + 1) * span]\nif hvd_r == 0:\n  x = list(x)\n  x.append(2019)\n  #x = np.array(x)\nx = list(x)\n#compute the average for all processes\ny=hvd.allgather(x)\n\n#only one process print out the result\nif(hvd_r==0):\n  print(y, len(y), sum(y))\n"
  },
  {
    "path": "tests/horovod/allgather2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   allreduce.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:05:04.755084\n#   \\Description    nc horovodrun -np 2  python allreduce.py \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n#import horovod.tensorflow as hvd\nimport horovod.keras as hvd\nimport numpy as np\nhvd.init()\nhvd_r=int(hvd.rank())\nassert hvd.size() == 2\n#each process compute a small part of something and then compute the average etc.\ntest_array= np.array(range(100))\n#compute a small part\nspan = int(100 / hvd.size())\nx=test_array[hvd_r * span: (hvd_r + 1) * span]\nif hvd_r == 0:\n  x = list(x)\n  x.append(2019)\n  #x = np.array(x)\nx = list(x) \nx = [[1, a] for a in x]\n#x = ['abc' for a in x]\n#compute the average for all processes\ny=hvd.allgather(x, name='a')\n\n#only one process print out the result\nif(hvd_r==0):\n  print(y)\n  #print(y, len(y), sum(y))\n"
  },
  {
    "path": "tests/horovod/allgather3.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   allreduce.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:05:04.755084\n#   \\Description    nc horovodrun -np 2  python allreduce.py \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nimport horovod.tensorflow as hvd\n#import horovod.keras as hvd\nimport numpy as np\nimport melt\nhvd.init()\nhvd_r=int(hvd.rank())\nassert hvd.size() == 2\nsess = melt.get_session()\nsess.run(tf.global_variables_initializer())\n#each process compute a small part of something and then compute the average etc.\ntest_array= np.array(range(100))\n#compute a small part\nspan = int(100 / hvd.size())\nx=test_array[hvd_r * span: (hvd_r + 1) * span]\nif hvd_r == 0:\n  x = list(x)\n  x.append(2019)\n  #x = np.array(x)\nx = list(x) \nx = [[1, a] for a in x] \n#x = ['abc' for a in x]\n#compute the average for all processes\ny=hvd.allgather(x, name='a')\n\n#only one process print out the result\nif(hvd_r==0):\n  print(y)\n  print(sess.run(y))\n  #print(y, len(y), sum(y))\n"
  },
  {
    "path": "tests/horovod/allgather4.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   allreduce.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:05:04.755084\n#   \\Description    nc horovodrun -np 2  python allreduce.py \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nimport horovod.tensorflow as hvd \nfrom mpi4py import MPI\n#import horovod.keras as hvd\nimport numpy as np\nimport melt\n# Split COMM_WORLD into subcommunicators\n#subcomm = MPI.COMM_WORLD.Split(color=MPI.COMM_WORLD.rank % 2,\n#                               key=MPI.COMM_WORLD.rank)\n\n# Initialize Horovod\n#hvd.init(comm=subcomm)\nhvd.init()\nhvd_r=int(hvd.rank())\nassert hvd.size() == 2\nsess = melt.get_session()\nsess.run(tf.global_variables_initializer())\n#each process compute a small part of something and then compute the average etc.\ntest_array= np.array(range(100))\n#compute a small part\nspan = int(100 / hvd.size())\nx=test_array[hvd_r * span: (hvd_r + 1) * span]\nif hvd_r == 0:\n  x = list(x)\n  x.append(2019)\n  #x = np.array(x)\nx = list(x) \n#x = [[1, a] for a in x] \nx = ['abc' for a in x]\n#compute the average for all processes\n#y=hvd.allgather(x, name='a')\ny = MPI.COMM_WORLD.allgather(x)\n\n#only one process print out the result\nif(hvd_r==0):\n  print(y)\n  #print(sess.run(y))\n  #print(y, len(y), sum(y))\n"
  },
  {
    "path": "tests/horovod/allreduce.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   allreduce.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:05:04.755084\n#   \\Description    nc horovodrun -np 2  python allreduce.py \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport horovod.keras as hvd\nimport numpy as np\nhvd.init()\nhvd_r=int(hvd.rank())\nassert hvd.size() == 2\n#each process compute a small part of something and then compute the average etc.\ntest_array= np.array(range(100))\n#compute a small part\nspan = int(100 / hvd.size())\nx=np.mean(test_array[hvd_r * span: (hvd_r + 1) * span])\n#x=test_array[hvd_r * span: (hvd_r + 1) * span]\n\n#compute the average for all processes\ny=hvd.allreduce(x)\n\n#only one process print out the result\nif(hvd_r==0):\n  print(\"mean of the big array is %f\"%y)  \n"
  },
  {
    "path": "tests/horovod/allreduce2.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   allreduce.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:05:04.755084\n#   \\Description    nc horovodrun -np 2  python allreduce.py \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport horovod.keras as hvd\nimport numpy as np\nhvd.init()\nhvd_r=int(hvd.rank())\nassert hvd.size() == 2\n#each process compute a small part of something and then compute the average etc.\ntest_array= np.array(range(100))\n#compute a small part\nspan = int(100 / hvd.size())\n#x=np.mean(test_array[hvd_r * span: (hvd_r + 1) * span])\n\nx=test_array[hvd_r * span: (hvd_r + 1) * span]\n\n#compute the average for all processes\ny=hvd.allreduce(x, average=False)\n\n#only one process print out the result\nif(hvd_r==0):\n  print(y, len(y), sum(y))\n"
  },
  {
    "path": "tests/horovod/bcast.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   bcast.py\n#        \\author   chenghuige  \n#          \\date   2019-07-31 15:17:38.283445\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\nimport horovod.tensorflow as hvd\nimport mpi4py\nfrom mpi4py import MPI\ncomm = MPI.COMM_WORLD\n\nmpi4py.rc.initialize = False\nhvd.init()\nassert hvd.mpi_threads_supported()\nassert hvd.size() == comm.Get_size()\n\nrank = comm.Get_rank()\n\nif rank == 0:\n    s = 'abcdef'\n    data = {'key1' : [7, 2.72, 2+3j],\n            'key2' : ( 'abc', 'xyz')}\n    print('before broadcasting: process %d has %s' % (rank, data), s)\nelse:\n    s = None\n    data = None\n    print('before broadcasting: process %d has %s' % (rank, data), s)\n\ndata = comm.bcast(data, root=0)\ns = comm.bcast(s, root=0)\nprint('after broadcasting: process %d has %s' % (rank, data), s)\n\n  \n"
  },
  {
    "path": "tests/horovod/shards.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   shards.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 17:55:17.754386\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\n\ndataset = tf.data.Dataset.range(6)\ndataset = dataset.shard(FLAGS.num_workers, FLAGS.worker_index)\n\n\niterator = dataset.make_one_shot_iterator()\nres = iterator.get_next()\n\n# Suppose you have 3 workers in total\nwith tf.Session() as sess:\n    for i in range(2):\n        print(sess.run(res)) \n"
  },
  {
    "path": "tests/horovod/simple.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   simple.py\n#        \\author   chenghuige  \n#          \\date   2019-07-30 16:26:23.861318\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nimport horovod.tensorflow as hvd\n\ntf.enable_eager_execution()\nhvd.init()\n\ndataset = tf.data.Dataset.range(200).repeat()\ndataset = dataset.shard(hvd.size(), hvd.rank())\ndataset = dataset.batch(64, drop_remainder=True)\n\ni = 0\nfor d in dataset:\n  i += 1\n\nprint(\"batches on rank %d: %d\" % (hvd.rank(), i))  \n"
  },
  {
    "path": "tests/sample-balance/README.md",
    "content": "cd /home/gezi/mine/wenzheng/projects/ai2018/reader/prepare\npython gen-records.py --vocab_ /tmp/ai2018/reader/tfrecord/vocab.txt --max_examples 1000 \n\n"
  },
  {
    "path": "tests/sample-balance/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom collections import namedtuple\n\nimport gezi\nimport melt\nlogging = melt.logging\nfrom wenzheng.utils import vocabulary \n\nclass Dataset(melt.tfrecords.Dataset):\n  def __init__(self, subset='train'):\n    super(Dataset, self).__init__(subset)\n\n    ## not work...\n    ##self.pos_filter_fn = lambda example: tf.equal(example[0]['type'], 1)\n    ## pos and neg balanced sample tested ok\n    # self.pos_filter_fn = lambda x, y: tf.equal(x['type'], 1)\n    # self.neg_filter_fn = lambda x, y: tf.equal(x['type'], 0)\n\n    # def undersampling_filter(x, y):\n    #   prob = tf.cond(tf.equal(x['type'], 1), lambda: 1., lambda: 0.1)\n    #   acceptance = tf.less_equal(tf.random_uniform([], dtype=tf.float32), prob)\n    #   return acceptance\n    # self.filter_fn = undersampling_filter\n    \n    ## count_fn for over sample tested ok\n    self.count_fn = lambda x, y: tf.cond(tf.equal(x['type'], 1), lambda: 10, lambda: 1)\n\n  def parser(self, example):\n    features_dict = {\n      'id':  tf.FixedLenFeature([], tf.string),\n      'url':  tf.FixedLenFeature([], tf.string),\n      'answer': tf.FixedLenFeature([], tf.int64),\n      'answer_str':  tf.FixedLenFeature([], tf.string),\n      'query': tf.VarLenFeature(tf.int64),\n      'query_str':  tf.FixedLenFeature([], tf.string),\n      'passage': tf.VarLenFeature(tf.int64),\n      'passage_str':  tf.FixedLenFeature([], tf.string),\n      'candidate_neg':  tf.VarLenFeature(tf.int64),\n      'candidate_pos':  tf.VarLenFeature(tf.int64),\n      'alternatives':  tf.FixedLenFeature([], tf.string),\n      'candidates':  tf.FixedLenFeature([], tf.string),\n      'type':  tf.FixedLenFeature([], tf.int64),\n      }\n\n    features = tf.parse_single_example(example, features=features_dict)\n\n    query = features['query']\n    passage = features['passage']\n    candidate_neg = features['candidate_neg']\n    candidate_pos = features['candidate_pos']\n    query = melt.sparse_tensor_to_dense(query)\n    passage = melt.sparse_tensor_to_dense(passage)\n    candidate_neg = melt.sparse_tensor_to_dense(candidate_neg)\n    candidate_pos = melt.sparse_tensor_to_dense(candidate_pos)\n\n    features['query'] = query\n    features['passage'] = passage\n\n    features['content'] = tf.concat([passage, query[1:]], 0)\n    features['rcontent'] = tf.concat([query, passage[1:]], 0)    \n\n    features['candidate_neg'] = candidate_neg\n\n    features['candidate_pos'] = candidate_pos  \n\n    answer = features['answer']\n\n    x = features\n    y = answer\n    return x, y\n"
  },
  {
    "path": "tests/sample-balance/read-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   inference.py\n#        \\author   chenghuige  \n#          \\date   2018-02-05 20:05:25.123740\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', '/tmp/ai2018/reader/tfrecord/valid/*record,', '')\nflags.DEFINE_integer('batch_size_', 50, '')\nflags.DEFINE_string('type', 'debug', '')\nflags.DEFINE_string('base', './mount/temp/ai2018/reader/tfrecord/', '')\n#flags.DEFINE_integer('fold', None, '')\n\nimport tensorflow as tf\ntf.enable_eager_execution()\n\nimport sys, os\nfrom sklearn import metrics\nimport pandas as pd \nimport numpy as np\nimport gezi\n\n\nimport pickle\n\nfrom wenzheng.utils import ids2text\n\nimport melt\nlogging = melt.logging\nfrom dataset import Dataset\n\n# random seed works\n# python read-records.py  --random_seed=1024\n\ndef main(_):\n  base = FLAGS.base\n  logging.set_logging_path('./mount/tmp/')\n  vocab_path = os.path.join(os.path.dirname(os.path.dirname(FLAGS.input)), 'vocab.txt')\n  ids2text.init(vocab_path)\n  FLAGS.vocab = f'{base}/vocab.txt'\n\n  tf.set_random_seed(FLAGS.random_seed)\n\n  # FLAGS.length_index = 2\n  # FLAGS.buckets = '100,400'\n  # FLAGS.batch_sizes = '64,64,32'\n\n  input_ = FLAGS.input \n  if FLAGS.type == 'test':\n    input_ = input_.replace('valid', 'test')\n\n  inputs = gezi.list_files(input_)\n  inputs.sort()\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n\n  print('type', FLAGS.type, 'inputs', inputs, file=sys.stderr)\n\n  #dataset = Dataset('valid')\n  dataset = Dataset('train')\n\n  # balance pos neg tested ok\n  dataset = dataset.make_batch(FLAGS.batch_size_, inputs, repeat=False)\n\n  print('dataset', dataset)\n\n  ids = []\n\n  timer = gezi.Timer('read record')\n  for i, (x, y) in enumerate(dataset):\n    #if i % 10 == 1:\n    #  print(x['passage'][0])\n    #  print(ids2text.ids2text(x['passage'][0], sep='|'))\n    #  print(ids2text.ids2text(x['candidate_pos'][0], sep='|'))\n    #  print(ids2text.ids2text(x['candidate_neg'][0], sep='|'))\n    #  print(x['passage'])\n    #  print(x['candidate_pos'])\n    #  print(type(x['id'].numpy()[0]) == bytes)\n    #  break \n    for id in x['id'].numpy():\n      ids.append(id)\n    print(i, x['type'].numpy())\n\n  print(len(ids), len(set(ids)))\n  #print(ids)\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "third/__init__.py",
    "content": "import third.bert \n"
  },
  {
    "path": "third/bert/CONTRIBUTING.md",
    "content": "# How to Contribute\n\nBERT needs to maintain permanent compatibility with the pre-trained model files,\nso we do not plan to make any major changes to this library (other than what was\npromised in the README). However, we can accept small patches related to\nre-factoring and documentation. To submit contributes, there are just a few\nsmall guidelines you need to follow.\n\n## Contributor License Agreement\n\nContributions to this project must be accompanied by a Contributor License\nAgreement. You (or your employer) retain the copyright to your contribution;\nthis simply gives us permission to use and redistribute your contributions as\npart of the project. Head over to <https://cla.developers.google.com/> to see\nyour current agreements on file or to sign a new one.\n\nYou generally only need to submit a CLA once, so if you've already submitted one\n(even if it was for a different project), you probably don't need to do it\nagain.\n\n## Code reviews\n\nAll submissions, including submissions by project members, require review. We\nuse GitHub pull requests for this purpose. Consult\n[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more\ninformation on using pull requests.\n\n## Community Guidelines\n\nThis project follows\n[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).\n"
  },
  {
    "path": "third/bert/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\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"
  },
  {
    "path": "third/bert/README.md",
    "content": "# BERT\n\n**\\*\\*\\*\\*\\* New November 3rd, 2018: Multilingual and Chinese models avalable\n\\*\\*\\*\\*\\***\n\nWe have made two new BERT models available:\n\n*   **[`BERT-Base, Multilingual`](https://storage.googleapis.com/bert_models/2018_11_03/multilingual_L-12_H-768_A-12.zip)**:\n    102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters\n*   **[`BERT-Base, Chinese`](https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip)**:\n    Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M\n    parameters\n\nWe use character-based tokenization for Chinese, and WordPiece tokenization for\nall other languages. Both models should work out-of-the-box without any code\nchanges. We did update the implementation of `BasicTokenizer` in\n`tokenization.py` to support Chinese character tokenization, so please update if\nyou forked it. However, we did not change the tokenization API.\n\nFor more, see the\n[Multilingual README](https://github.com/google-research/bert/blob/master/multilingual.md).\n\n**\\*\\*\\*\\*\\* End new information \\*\\*\\*\\*\\***\n\n## Introduction\n\n**BERT**, or **B**idirectional **E**ncoder **R**epresentations from\n**T**ransformers, is a new method of pre-training language representations which\nobtains state-of-the-art results on a wide array of Natural Language Processing\n(NLP) tasks.\n\nOur academic paper which describes BERT in detail and provides full results on a\nnumber of tasks can be found here:\n[https://arxiv.org/abs/1810.04805](https://arxiv.org/abs/1810.04805).\n\nTo give a few numbers, here are the results on the\n[SQuAD v1.1](https://rajpurkar.github.io/SQuAD-explorer/) question answering\ntask:\n\nSQuAD v1.1 Leaderboard (Oct 8th 2018) | Test EM  | Test F1\n------------------------------------- | :------: | :------:\n1st Place Ensemble - BERT             | **87.4** | **93.2**\n2nd Place Ensemble - nlnet            | 86.0     | 91.7\n1st Place Single Model - BERT         | **85.1** | **91.8**\n2nd Place Single Model - nlnet        | 83.5     | 90.1\n\nAnd several natural language inference tasks:\n\nSystem                  | MultiNLI | Question NLI | SWAG\n----------------------- | :------: | :----------: | :------:\nBERT                    | **86.7** | **91.1**     | **86.3**\nOpenAI GPT (Prev. SOTA) | 82.2     | 88.1         | 75.0\n\nPlus many other tasks.\n\nMoreover, these results were all obtained with almost no task-specific neural\nnetwork architecture design.\n\nIf you already know what BERT is and you just want to get started, you can\n[download the pre-trained models](#pre-trained-models) and\n[run a state-of-the-art fine-tuning](#fine-tuning-with-bert) in only a few\nminutes.\n\n## What is BERT?\n\nBERT is method of pre-training language representations, meaning that we train a\ngeneral-purpose \"language understanding\" model on a large text corpus (like\nWikipedia), and then use that model for downstream NLP tasks that we care about\n(like question answering). BERT outperforms previous methods because it is the\nfirst *unsupervised*, *deeply bidirectional* system for pre-training NLP.\n\n*Unsupervised* means that BERT was trained using only a plain text corpus, which\nis important because an enormous amount of plain text data is publicly available\non the web in many languages.\n\nPre-trained representations can also either be *context-free* or *contextual*,\nand contextual representations can further be *unidirectional* or\n*bidirectional*. Context-free models such as\n[word2vec](https://www.tensorflow.org/tutorials/representation/word2vec) or\n[GloVe](https://nlp.stanford.edu/projects/glove/) generate a single \"word\nembedding\" representation for each word in the vocabulary, so `bank` would have\nthe same representation in `bank deposit` and `river bank`. Contextual models\ninstead generate a representation of each word that is based on the other words\nin the sentence.\n\nBERT was built upon recent work in pre-training contextual representations —\nincluding [Semi-supervised Sequence Learning](https://arxiv.org/abs/1511.01432),\n[Generative Pre-Training](https://blog.openai.com/language-unsupervised/),\n[ELMo](https://allennlp.org/elmo), and\n[ULMFit](http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html)\n— but crucially these models are all *unidirectional* or *shallowly\nbidirectional*. This means that each word is only contextualized using the words\nto its left (or right). For example, in the sentence `I made a bank deposit` the\nunidirectional representation of `bank` is only based on `I made a` but not\n`deposit`. Some previous work does combine the representations from separate\nleft-context and right-context models, but only in a \"shallow\" manner. BERT\nrepresents \"bank\" using both its left and right context — `I made a ... deposit`\n— starting from the very bottom of a deep neural network, so it is *deeply\nbidirectional*.\n\nBERT uses a simple approach for this: We mask out 15% of the words in the input,\nrun the entire sequence through a deep bidirectional\n[Transformer](https://arxiv.org/abs/1706.03762) encoder, and then predict only\nthe masked words. For example:\n\n```\nInput: the man went to the [MASK1] . he bought a [MASK2] of milk.\nLabels: [MASK1] = store; [MASK2] = gallon\n```\n\nIn order to learn relationships between sentences, we also train on a simple\ntask which can be generated from any monolingual corpus: Given two sentences `A`\nand `B`, is `B` the actual next sentence that comes after `A`, or just a random\nsentence from the corpus?\n\n```\nSentence A: the man went to the store .\nSentence B: he bought a gallon of milk .\nLabel: IsNextSentence\n```\n\n```\nSentence A: the man went to the store .\nSentence B: penguins are flightless .\nLabel: NotNextSentence\n```\n\nWe then train a large model (12-layer to 24-layer Transformer) on a large corpus\n(Wikipedia + [BookCorpus](http://yknzhu.wixsite.com/mbweb)) for a long time (1M\nupdate steps), and that's BERT.\n\nUsing BERT has two stages: *Pre-training* and *fine-tuning*.\n\n**Pre-training** is fairly expensive (four days on 4 to 16 Cloud TPUs), but is a\none-time procedure for each language (current models are English-only, but\nmultilingual models will be released in the near future). We are releasing a\nnumber of pre-trained models from the paper which were pre-trained at Google.\nMost NLP researchers will never need to pre-train their own model from scratch.\n\n**Fine-tuning** is inexpensive. All of the results in the paper can be\nreplicated in at most 1 hour on a single Cloud TPU, or a few hours on a GPU,\nstarting from the exact same pre-trained model. SQuAD, for example, can be\ntrained in around 30 minutes on a single Cloud TPU to achieve a Dev F1 score of\n91.0%, which is the single system state-of-the-art.\n\nThe other important aspect of BERT is that it can be adapted to many types of\nNLP tasks very easily. In the paper, we demonstrate state-of-the-art results on\nsentence-level (e.g., SST-2), sentence-pair-level (e.g., MultiNLI), word-level\n(e.g., NER), and span-level (e.g., SQuAD) tasks with almost no task-specific\nmodifications.\n\n## What has been released in this repository?\n\nWe are releasing the following:\n\n*   TensorFlow code for the BERT model architecture (which is mostly a standard\n    [Transformer](https://arxiv.org/abs/1706.03762) architecture).\n*   Pre-trained checkpoints for both the lowercase and cased version of\n    `BERT-Base` and `BERT-Large` from the paper.\n*   TensorFlow code for push-button replication of the most important\n    fine-tuning experiments from the paper, including SQuAD, MultiNLI, and MRPC.\n\nAll of the code in this repository works out-of-the-box with CPU, GPU, and Cloud\nTPU.\n\n## Pre-trained models\n\nWe are releasing the `BERT-Base` and `BERT-Large` models from the paper.\n`Uncased` means that the text has been lowercased before WordPiece tokenization,\ne.g., `John Smith` becomes `john smith`. The `Uncased` model also strips out any\naccent markers. `Cased` means that the true case and accent markers are\npreserved. Typically, the `Uncased` model is better unless you know that case\ninformation is important for your task (e.g., Named Entity Recognition or\nPart-of-Speech tagging).\n\nThese models are all released under the same license as the source code (Apache\n2.0).\n\nFor information about the Multilingual and Chinese model, see the\n[Multilingual README](https://github.com/google-research/bert/blob/master/multilingual.md).\n\nThe links to the models are here (right-click, 'Save link as...' on the name):\n\n*   **[`BERT-Base, Uncased`](https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-12_H-768_A-12.zip)**:\n    12-layer, 768-hidden, 12-heads, 110M parameters\n*   **[`BERT-Large, Uncased`](https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-24_H-1024_A-16.zip)**:\n    24-layer, 1024-hidden, 16-heads, 340M parameters\n*   **[`BERT-Base, Cased`](https://storage.googleapis.com/bert_models/2018_10_18/cased_L-12_H-768_A-12.zip)**:\n    12-layer, 768-hidden, 12-heads , 110M parameters\n*   **`BERT-Large, Cased`**: 24-layer, 1024-hidden, 16-heads, 340M parameters\n    (Not available yet. Needs to be re-generated).\n*   **[`BERT-Base, Multilingual`](https://storage.googleapis.com/bert_models/2018_11_03/multilingual_L-12_H-768_A-12.zip)**:\n    102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters\n*   **[`BERT-Base, Chinese`](https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip)**:\n    Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M\n    parameters\n\nEach .zip file contains three items:\n\n*   A TensorFlow checkpoint (`bert_model.ckpt`) containing the pre-trained\n    weights (which is actually 3 files).\n*   A vocab file (`vocab.txt`) to map WordPiece to word id.\n*   A config file (`bert_config.json`) which specifies the hyperparameters of\n    the model.\n\n## Fine-tuning with BERT\n\n**Important**: All results on the paper were fine-tuned on a single Cloud TPU,\nwhich has 64GB of RAM. It is currently not possible to re-produce most of the\n`BERT-Large` results on the paper using a GPU with 12GB - 16GB of RAM, because\nthe maximum batch size that can fit in memory is too small. We are working on\nadding code to this repository which allows for much larger effective batch size\non the GPU. See the section on [out-of-memory issues](#out-of-memory-issues) for\nmore details.\n\nThis code was tested with TensorFlow 1.11.0. It was tested with Python2 and\nPython3 (but more thoroughly with Python2, since this is what's used internally\nin Google).\n\nThe fine-tuning examples which use `BERT-Base` should be able to run on a GPU\nthat has at least 12GB of RAM using the hyperparameters given.\n\n### Fine-tuning with Cloud TPUs\n\nMost of the examples below assumes that you will be running training/evaluation\non your local machine, using a GPU like a Titan X or GTX 1080.\n\nHowever, if you have access to a Cloud TPU that you want to train on, just add\nthe following flags to `run_classifier.py` or `run_squad.py`:\n\n```\n  --use_tpu=True \\\n  --tpu_name=$TPU_NAME\n```\n\nPlease see the\n[Google Cloud TPU tutorial](https://cloud.google.com/tpu/docs/tutorials/mnist)\nfor how to use Cloud TPUs. Alternatively, you can use the Google Colab notebook\n\"[BERT FineTuning with Cloud TPUs](https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/bert_finetuning_with_cloud_tpus.ipynb)\".\n\nOn Cloud TPUs, the pretrained model and the output directory will need to be on\nGoogle Cloud Storage. For example, if you have a bucket named `some_bucket`, you\nmight use the following flags instead:\n\n```\n  --output_dir=gs://some_bucket/my_output_dir/\n```\n\nThe unzipped pre-trained model files can also be found in the Google Cloud\nStorage folder `gs://bert_models/2018_10_18`. For example:\n\n```\nexport BERT_BASE_DIR=gs://bert_models/2018_10_18/uncased_L-12_H-768_A-12\n```\n\n### Sentence (and sentence-pair) classification tasks\n\nBefore running this example you must download the\n[GLUE data](https://gluebenchmark.com/tasks) by running\n[this script](https://gist.github.com/W4ngatang/60c2bdb54d156a41194446737ce03e2e)\nand unpack it to some directory `$GLUE_DIR`. Next, download the `BERT-Base`\ncheckpoint and unzip it to some directory `$BERT_BASE_DIR`.\n\nThis example code fine-tunes `BERT-Base` on the Microsoft Research Paraphrase\nCorpus (MRPC) corpus, which only contains 3,600 examples and can fine-tune in a\nfew minutes on most GPUs.\n\n```shell\nexport BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12\nexport GLUE_DIR=/path/to/glue\n\npython run_classifier.py \\\n  --task_name=MRPC \\\n  --do_train=true \\\n  --do_eval=true \\\n  --data_dir=$GLUE_DIR/MRPC \\\n  --vocab_file=$BERT_BASE_DIR/vocab.txt \\\n  --bert_config_file=$BERT_BASE_DIR/bert_config.json \\\n  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \\\n  --max_seq_length=128 \\\n  --train_batch_size=32 \\\n  --learning_rate=2e-5 \\\n  --num_train_epochs=3.0 \\\n  --output_dir=/tmp/mrpc_output/\n```\n\nYou should see output like this:\n\n```\n***** Eval results *****\n  eval_accuracy = 0.845588\n  eval_loss = 0.505248\n  global_step = 343\n  loss = 0.505248\n```\n\nThis means that the Dev set accuracy was 84.55%. Small sets like MRPC have a\nhigh variance in the Dev set accuracy, even when starting from the same\npre-training checkpoint. If you re-run multiple times (making sure to point to\ndifferent `output_dir`), you should see results between 84% and 88%.\n\nA few other pre-trained models are implemented off-the-shelf in\n`run_classifier.py`, so it should be straightforward to follow those examples to\nuse BERT for any single-sentence or sentence-pair classification task.\n\nNote: You might see a message `Running train on CPU`. This really just means\nthat it's running on something other than a Cloud TPU, which includes a GPU.\n\n### SQuAD\n\nThe Stanford Question Answering Dataset (SQuAD) is a popular question answering\nbenchmark dataset. BERT (at the time of the release) obtains state-of-the-art\nresults on SQuAD with almost no task-specific network architecture modifications\nor data augmentation. However, it does require semi-complex data pre-processing\nand post-processing to deal with (a) the variable-length nature of SQuAD context\nparagraphs, and (b) the character-level answer annotations which are used for\nSQuAD training. This processing is implemented and documented in `run_squad.py`.\n\nTo run on SQuAD, you will first need to download the dataset. The\n[SQuAD website](https://rajpurkar.github.io/SQuAD-explorer/) does not seem to\nlink to the v1.1 datasets any longer, but the necessary files can be found here:\n\n*   [train-v1.1.json](https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json)\n*   [dev-v1.1.json](https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json)\n*   [evaluate-v1.1.py](https://github.com/allenai/bi-att-flow/blob/master/squad/evaluate-v1.1.py)\n\nDownload these to some directory `$SQUAD_DIR`.\n\nThe state-of-the-art SQuAD results from the paper currently cannot be reproduced\non a 12GB-16GB GPU due to memory constraints (in fact, even batch size 1 does\nnot seem to fit on a 12GB GPU using `BERT-Large`). However, a reasonably strong\n`BERT-Base` model can be trained on the GPU with these hyperparameters:\n\n```shell\npython run_squad.py \\\n  --vocab_file=$BERT_BASE_DIR/vocab.txt \\\n  --bert_config_file=$BERT_BASE_DIR/bert_config.json \\\n  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \\\n  --do_train=True \\\n  --train_file=$SQUAD_DIR/train-v1.1.json \\\n  --do_predict=True \\\n  --predict_file=$SQUAD_DIR/dev-v1.1.json \\\n  --train_batch_size=12 \\\n  --learning_rate=3e-5 \\\n  --num_train_epochs=2.0 \\\n  --max_seq_length=384 \\\n  --doc_stride=128 \\\n  --output_dir=/tmp/squad_base/\n```\n\nThe dev set predictions will be saved into a file called `predictions.json` in\nthe `output_dir`:\n\n```shell\npython $SQUAD_DIR/evaluate-v1.1.py $SQUAD_DIR/dev-v1.1.json ./squad/predictions.json\n```\n\nWhich should produce an output like this:\n\n```shell\n{\"f1\": 88.41249612335034, \"exact_match\": 81.2488174077578}\n```\n\nYou should see a result similar to the 88.5% reported in the paper for\n`BERT-Base`.\n\nIf you have access to a Cloud TPU, you can train with `BERT-Large`. Here is a\nset of hyperparameters (slightly different than the paper) which consistently\nobtain around 90.5%-91.0% F1 single-system trained only on SQuAD:\n\n```shell\npython run_squad.py \\\n  --vocab_file=$BERT_LARGE_DIR/vocab.txt \\\n  --bert_config_file=$BERT_LARGE_DIR/bert_config.json \\\n  --init_checkpoint=$BERT_LARGE_DIR/bert_model.ckpt \\\n  --do_train=True \\\n  --train_file=$SQUAD_DIR/train-v1.1.json \\\n  --do_predict=True \\\n  --predict_file=$SQUAD_DIR/dev-v1.1.json \\\n  --train_batch_size=24 \\\n  --learning_rate=3e-5 \\\n  --num_train_epochs=2.0 \\\n  --max_seq_length=384 \\\n  --doc_stride=128 \\\n  --output_dir=gs://some_bucket/squad_large/ \\\n  --use_tpu=True \\\n  --tpu_name=$TPU_NAME\n```\n\nFor example, one random run with these parameters produces the following Dev\nscores:\n\n```shell\n{\"f1\": 90.87081895814865, \"exact_match\": 84.38978240302744}\n```\n\nIf you fine-tune for one epoch on\n[TriviaQA](http://nlp.cs.washington.edu/triviaqa/) before this the results will\nbe even better, but you will need to convert TriviaQA into the SQuAD json\nformat.\n\n### Out-of-memory issues\n\nAll experiments in the paper were fine-tuned on a Cloud TPU, which has 64GB of\ndevice RAM. Therefore, when using a GPU with 12GB - 16GB of RAM, you are likely\nto encounter out-of-memory issues if you use the same hyperparameters described\nin the paper.\n\nThe factors that affect memory usage are:\n\n*   **`max_seq_length`**: The released models were trained with sequence lengths\n    up to 512, but you can fine-tune with a shorter max sequence length to save\n    substantial memory. This is controlled by the `max_seq_length` flag in our\n    example code.\n\n*   **`train_batch_size`**: The memory usage is also directly proportional to\n    the batch size.\n\n*   **Model type, `BERT-Base` vs. `BERT-Large`**: The `BERT-Large` model\n    requires significantly more memory than `BERT-Base`.\n\n*   **Optimizer**: The default optimizer for BERT is Adam, which requires a lot\n    of extra memory to store the `m` and `v` vectors. Switching to a more memory\n    efficient optimizer can reduce memory usage, but can also affect the\n    results. We have not experimented with other optimizers for fine-tuning.\n\nUsing the default training scripts (`run_classifier.py` and `run_squad.py`), we\nbenchmarked the maximum batch size on single Titan X GPU (12GB RAM) with\nTensorFlow 1.11.0:\n\nSystem       | Seq Length | Max Batch Size\n------------ | ---------- | --------------\n`BERT-Base`  | 64         | 64\n...          | 128        | 32\n...          | 256        | 16\n...          | 320        | 14\n...          | 384        | 12\n...          | 512        | 6\n`BERT-Large` | 64         | 12\n...          | 128        | 6\n...          | 256        | 2\n...          | 320        | 1\n...          | 384        | 0\n...          | 512        | 0\n\nUnfortunately, these max batch sizes for `BERT-Large` are so small that they\nwill actually harm the model accuracy, regardless of the learning rate used. We\nare working on adding code to this repository which will allow much larger\neffective batch sizes to be used on the GPU. The code will be based on one (or\nboth) of the following techniques:\n\n*   **Gradient accumulation**: The samples in a minibatch are typically\n    independent with respect to gradient computation (excluding batch\n    normalization, which is not used here). This means that the gradients of\n    multiple smaller minibatches can be accumulated before performing the weight\n    update, and this will be exactly equivalent to a single larger update.\n\n*   [**Gradient checkpointing**](https://github.com/openai/gradient-checkpointing):\n    The major use of GPU/TPU memory during DNN training is caching the\n    intermediate activations in the forward pass that are necessary for\n    efficient computation in the backward pass. \"Gradient checkpointing\" trades\n    memory for compute time by re-computing the activations in an intelligent\n    way.\n\n**However, this is not implemented in the current release.**\n\n## Using BERT to extract fixed feature vectors (like ELMo)\n\nIn certain cases, rather than fine-tuning the entire pre-trained model\nend-to-end, it can be beneficial to obtained *pre-trained contextual\nembeddings*, which are fixed contextual representations of each input token\ngenerated from the hidden layers of the pre-trained model. This should also\nmitigate most of the out-of-memory issues.\n\nAs an example, we include the script `extract_features.py` which can be used\nlike this:\n\n```shell\n# Sentence A and Sentence B are separated by the ||| delimiter.\n# For single sentence inputs, don't use the delimiter.\necho 'Who was Jim Henson ? ||| Jim Henson was a puppeteer' > /tmp/input.txt\n\npython extract_features.py \\\n  --input_file=/tmp/input.txt \\\n  --output_file=/tmp/output.jsonl \\\n  --vocab_file=$BERT_BASE_DIR/vocab.txt \\\n  --bert_config_file=$BERT_BASE_DIR/bert_config.json \\\n  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \\\n  --layers=-1,-2,-3,-4 \\\n  --max_seq_length=128 \\\n  --batch_size=8\n```\n\nThis will create a JSON file (one line per line of input) containing the BERT\nactivations from each Transformer layer specified by `layers` (-1 is the final\nhidden layer of the Transformer, etc.)\n\nNote that this script will produce very large output files (by default, around\n15kb for every input token).\n\nIf you need to maintain alignment between the original and tokenized words (for\nprojecting training labels), see the [Tokenization](#tokenization) section\nbelow.\n\n## Tokenization\n\nFor sentence-level tasks (or sentence-pair) tasks, tokenization is very simple.\nJust follow the example code in `run_classifier.py` and `extract_features.py`.\nThe basic procedure for sentence-level tasks is:\n\n1.  Instantiate an instance of `tokenizer = tokenization.FullTokenizer`\n\n2.  Tokenize the raw text with `tokens = tokenizer.tokenize(raw_text)`.\n\n3.  Truncate to the maximum sequence length. (You can use up to 512, but you\n    probably want to use shorter if possible for memory and speed reasons.)\n\n4.  Add the `[CLS]` and `[SEP]` tokens in the right place.\n\nWord-level and span-level tasks (e.g., SQuAD and NER) are more complex, since\nyou need to maintain alignment between your input text and output text so that\nyou can project your training labels. SQuAD is a particularly complex example\nbecause the input labels are *character*-based, and SQuAD paragraphs are often\nlonger than our maximum sequence length. See the code in `run_squad.py` to show\nhow we handle this.\n\nBefore we describe the general recipe for handling word-level tasks, it's\nimportant to understand what exactly our tokenizer is doing. It has three main\nsteps:\n\n1.  **Text normalization**: Convert all whitespace characters to spaces, and\n    (for the `Uncased` model) lowercase the input and strip out accent markers.\n    E.g., `John Johanson's, → john johanson's,`.\n\n2.  **Punctuation splitting**: Split *all* punctuation characters on both sides\n    (i.e., add whitespace around all punctuation characters). Punctuation\n    characters are defined as (a) Anything with a `P*` Unicode class, (b) any\n    non-letter/number/space ASCII character (e.g., characters like `$` which are\n    technically not punctuation). E.g., `john johanson's, → john johanson ' s ,`\n\n3.  **WordPiece tokenization**: Apply whitespace tokenization to the output of\n    the above procedure, and apply\n    [WordPiece](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/data_generators/text_encoder.py)\n    tokenization to each token separately. (Our implementation is directly based\n    on the one from `tensor2tensor`, which is linked). E.g., `john johanson ' s\n    , → john johan ##son ' s ,`\n\nThe advantage of this scheme is that it is \"compatible\" with most existing\nEnglish tokenizers. For example, imagine that you have a part-of-speech tagging\ntask which looks like this:\n\n```\nInput:  John Johanson 's   house\nLabels: NNP  NNP      POS NN\n```\n\nThe tokenized output will look like this:\n\n```\nTokens: john johan ##son ' s house\n```\n\nCrucially, this would be the same output as if the raw text were `John\nJohanson's house` (with no space before the `'s`).\n\nIf you have a pre-tokenized representation with word-level annotations, you can\nsimply tokenize each input word independently, and deterministically maintain an\noriginal-to-tokenized alignment:\n\n```python\n### Input\norig_tokens = [\"John\", \"Johanson\", \"'s\",  \"house\"]\nlabels      = [\"NNP\",  \"NNP\",      \"POS\", \"NN\"]\n\n### Output\nbert_tokens = []\n\n# Token map will be an int -> int mapping between the `orig_tokens` index and\n# the `bert_tokens` index.\norig_to_tok_map = []\n\ntokenizer = tokenization.FullTokenizer(\n    vocab_file=vocab_file, do_lower_case=True)\n\nbert_tokens.append(\"[CLS]\")\nfor orig_token in orig_tokens:\n  orig_to_tok_map.append(len(bert_tokens))\n  bert_tokens.extend(tokenizer.tokenize(orig_token))\nbert_tokens.append(\"[SEP]\")\n\n# bert_tokens == [\"[CLS]\", \"john\", \"johan\", \"##son\", \"'\", \"s\", \"house\", \"[SEP]\"]\n# orig_to_tok_map == [1, 2, 4, 6]\n```\n\nNow `orig_to_tok_map` can be used to project `labels` to the tokenized\nrepresentation.\n\nThere are common English tokenization schemes which will cause a slight mismatch\nbetween how BERT was pre-trained. For example, if your input tokenization splits\noff contractions like `do n't`, this will cause a mismatch. If it is possible to\ndo so, you should pre-process your data to convert these back to raw-looking\ntext, but if it's not possible, this mismatch is likely not a big deal.\n\n## Pre-training with BERT\n\nWe are releasing code to do \"masked LM\" and \"next sentence prediction\" on an\narbitrary text corpus. Note that this is *not* the exact code that was used for\nthe paper (the original code was written in C++, and had some additional\ncomplexity), but this code does generate pre-training data as described in the\npaper.\n\nHere's how to run the data generation. The input is a plain text file, with one\nsentence per line. (It is important that these be actual sentences for the \"next\nsentence prediction\" task). Documents are delimited by empty lines. The output\nis a set of `tf.train.Example`s serialized into `TFRecord` file format.\n\nYou can perform sentence segmentation with an off-the-shelf NLP toolkit such as\n[spaCy](https://spacy.io/). The `create_pretraining_data.py` script will\nconcatenate segments until they reach the maximum sequence length to minimize\ncomputational waste from padding (see the script for more details). However, you\nmay want to intentionally add a slight amount of noise to your input data (e.g.,\nrandomly truncate 2% of input segments) to make it more robust to non-sentential\ninput during fine-tuning.\n\nThis script stores all of the examples for the entire input file in memory, so\nfor large data files you should shard the input file and call the script\nmultiple times. (You can pass in a file glob to `run_pretraining.py`, e.g.,\n`tf_examples.tf_record*`.)\n\nThe `max_predictions_per_seq` is the maximum number of masked LM predictions per\nsequence. You should set this to around `max_seq_length` * `masked_lm_prob` (the\nscript doesn't do that automatically because the exact value needs to be passed\nto both scripts).\n\n```shell\npython create_pretraining_data.py \\\n  --input_file=./sample_text.txt \\\n  --output_file=/tmp/tf_examples.tfrecord \\\n  --vocab_file=$BERT_BASE_DIR/vocab.txt \\\n  --do_lower_case=True \\\n  --max_seq_length=128 \\\n  --max_predictions_per_seq=20 \\\n  --masked_lm_prob=0.15 \\\n  --random_seed=12345 \\\n  --dupe_factor=5\n```\n\nHere's how to run the pre-training. Do not include `init_checkpoint` if you are\npre-training from scratch. The model configuration (including vocab size) is\nspecified in `bert_config_file`. This demo code only pre-trains for a small\nnumber of steps (20), but in practice you will probably want to set\n`num_train_steps` to 10000 steps or more. The `max_seq_length` and\n`max_predictions_per_seq` parameters passed to `run_pretraining.py` must be the\nsame as `create_pretraining_data.py`.\n\n```shell\npython run_pretraining.py \\\n  --input_file=/tmp/tf_examples.tfrecord \\\n  --output_dir=/tmp/pretraining_output \\\n  --do_train=True \\\n  --do_eval=True \\\n  --bert_config_file=$BERT_BASE_DIR/bert_config.json \\\n  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \\\n  --train_batch_size=32 \\\n  --max_seq_length=128 \\\n  --max_predictions_per_seq=20 \\\n  --num_train_steps=20 \\\n  --num_warmup_steps=10 \\\n  --learning_rate=2e-5\n```\n\nThis will produce an output like this:\n\n```\n***** Eval results *****\n  global_step = 20\n  loss = 0.0979674\n  masked_lm_accuracy = 0.985479\n  masked_lm_loss = 0.0979328\n  next_sentence_accuracy = 1.0\n  next_sentence_loss = 3.45724e-05\n```\n\nNote that since our `sample_text.txt` file is very small, this example training\nwill overfit that data in only a few steps and produce unrealistically high\naccuracy numbers.\n\n### Pre-training tips and caveats\n\n*   If your task has a large domain-specific corpus available (e.g., \"movie\n    reviews\" or \"scientific papers\"), it will likely be beneficial to run\n    additional steps of pre-training on your corpus, starting from the BERT\n    checkpoint.\n*   The learning rate we used in the paper was 1e-4. However, if you are doing\n    additional steps of pre-training starting from an existing BERT checkpoint,\n    you should use a smaller learning rate (e.g., 2e-5).\n*   Current BERT models are English-only, but we do plan to release a\n    multilingual model which has been pre-trained on a lot of languages in the\n    near future (hopefully by the end of November 2018).\n*   Longer sequences are disproportionately expensive because attention is\n    quadratic to the sequence length. In other words, a batch of 64 sequences of\n    length 512 is much more expensive than a batch of 256 sequences of\n    length 128. The fully-connected/convolutional cost is the same, but the\n    attention cost is far greater for the 512-length sequences. Therefore, one\n    good recipe is to pre-train for, say, 90,000 steps with a sequence length of\n    128 and then for 10,000 additional steps with a sequence length of 512. The\n    very long sequences are mostly needed to learn positional embeddings, which\n    can be learned fairly quickly. Note that this does require generating the\n    data twice with different values of `max_seq_length`.\n*   If you are pre-training from scratch, be prepared that pre-training is\n    computationally expensive, especially on GPUs. If you are pre-training from\n    scratch, our recommended recipe is to pre-train a `BERT-Base` on a single\n    [preemptible Cloud TPU v2](https://cloud.google.com/tpu/docs/pricing), which\n    takes about 2 weeks at a cost of about $500 USD (based on the pricing in\n    October 2018). You will have to scale down the batch size when only training\n    on a single Cloud TPU, compared to what was used in the paper. It is\n    recommended to use the largest batch size that fits into TPU memory.\n\n### Pre-training data\n\nWe will **not** be able to release the pre-processed datasets used in the paper.\nFor Wikipedia, the recommended pre-processing is to download\n[the latest dump](https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2),\nextract the text with\n[`WikiExtractor.py`](https://github.com/attardi/wikiextractor), and then apply\nany necessary cleanup to convert it into plain text.\n\nUnfortunately the researchers who collected the\n[BookCorpus](http://yknzhu.wixsite.com/mbweb) no longer have it available for\npublic download. The\n[Project Guttenberg Dataset](https://web.eecs.umich.edu/~lahiri/gutenberg_dataset.html)\nis a somewhat smaller (200M word) collection of older books that are public\ndomain.\n\n[Common Crawl](http://commoncrawl.org/) is another very large collection of\ntext, but you will likely have to do substantial pre-processing and cleanup to\nextract a usable corpus for pre-training BERT.\n\n### Learning a new WordPiece vocabulary\n\nThis repository does not include code for *learning* a new WordPiece vocabulary.\nThe reason is that the code used in the paper was implemented in C++ with\ndependencies on Google's internal libraries. For English, it is almost always\nbetter to just start with our vocabulary and pre-trained models. For learning\nvocabularies of other languages, there are a number of open source options\navailable. However, keep in mind that these are not compatible with our\n`tokenization.py` library:\n\n*   [Google's SentencePiece library](https://github.com/google/sentencepiece)\n\n*   [tensor2tensor's WordPiece generation script](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/data_generators/text_encoder_build_subword.py)\n\n*   [Rico Sennrich's Byte Pair Encoding library](https://github.com/rsennrich/subword-nmt)\n\n## Using BERT in Colab\n\nIf you want to use BERT with [Colab](https://colab.research.google.com), you can\nget started with the notebook\n\"[BERT FineTuning with Cloud TPUs](https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/bert_finetuning_with_cloud_tpus.ipynb)\".\n**At the time of this writing (October 31st, 2018), Colab users can access a\nCloud TPU completely for free.** Note: One per user, availability limited,\nrequires a Google Cloud Platform account with storage (although storage may be\npurchased with free credit for signing up with GCP), and this capability may not\nlonger be available in the future. Click on the BERT Colab that was just linked\nfor more information.\n\n## FAQ\n\n#### Is this code compatible with Cloud TPUs? What about GPUs?\n\nYes, all of the code in this repository works out-of-the-box with CPU, GPU, and\nCloud TPU. However, GPU training is single-GPU only.\n\n#### I am getting out-of-memory errors, what is wrong?\n\nSee the section on [out-of-memory issues](#out-of-memory-issues) for more\ninformation.\n\n#### Is there a PyTorch version available?\n\nThere is no official PyTorch implementation. If someone creates a line-for-line\nPyTorch reimplementation so that our pre-trained checkpoints can be directly\nconverted, we would be happy to link to that PyTorch version here.\n\n#### Will models in other languages be released?\n\nYes, we plan to release a multi-lingual BERT model in the near future. We cannot\nmake promises about exactly which languages will be included, but it will likely\nbe a single model which includes *most* of the languages which have a\nsignificantly-sized Wikipedia.\n\n#### Will models larger than `BERT-Large` be released?\n\nSo far we have not attempted to train anything larger than `BERT-Large`. It is\npossible that we will release larger models if we are able to obtain significant\nimprovements.\n\n#### What license is this library released under?\n\nAll code *and* models are released under the Apache 2.0 license. See the\n`LICENSE` file for more information.\n\n#### How do I cite BERT?\n\nFor now, cite [the Arxiv paper](https://arxiv.org/abs/1810.04805):\n\n```\n@article{devlin2018bert,\n  title={BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding},\n  author={Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina},\n  journal={arXiv preprint arXiv:1810.04805},\n  year={2018}\n}\n```\n\nIf we submit the paper to a conference or journal, we will update the BibTeX.\n\n## Disclaimer\n\nThis is not an official Google product.\n\n## Contact information\n\nFor help or issues using BERT, please submit a GitHub issue.\n\nFor personal communication related to BERT, please contact Jacob Devlin\n(`jacobdevlin@google.com`), Ming-Wei Chang (`mingweichang@google.com`), or\nKenton Lee (`kentonl@google.com`).\n"
  },
  {
    "path": "third/bert/__init__.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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"
  },
  {
    "path": "third/bert/create_pretraining_data.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Create masked LM/next sentence masked_lm TF examples for BERT.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport random\n\nimport tokenization\nimport tensorflow as tf\n\nfrom tqdm import tqdm\n\nflags = tf.flags\n\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string(\"input_file\", None,\n                    \"Input raw text file (or comma-separated list of files).\")\n\nflags.DEFINE_string(\n    \"output_file\", None,\n    \"Output TF example file (or comma-separated list of files).\")\n\nflags.DEFINE_string(\"vocab_file\", None,\n                    \"The vocabulary file that the BERT model was trained on.\")\n\nflags.DEFINE_bool(\n    \"do_lower_case\", True,\n    \"Whether to lower case the input text. Should be True for uncased \"\n    \"models and False for cased models.\")\n\nflags.DEFINE_integer(\"max_seq_length\", 128, \"Maximum sequence length.\")\n\nflags.DEFINE_integer(\"max_predictions_per_seq\", 20,\n                     \"Maximum number of masked LM predictions per sequence.\")\n\nflags.DEFINE_integer(\"random_seed\", 12345, \"Random seed for data generation.\")\n\nflags.DEFINE_integer(\n    \"dupe_factor\", 10,\n    \"Number of times to duplicate the input data (with different masks).\")\n\nflags.DEFINE_float(\"masked_lm_prob\", 0.15, \"Masked LM probability.\")\n\nflags.DEFINE_float(\n    \"short_seq_prob\", 0.1,\n    \"Probability of creating sequences which are shorter than the \"\n    \"maximum length.\")\n\n\nclass TrainingInstance(object):\n  \"\"\"A single training instance (sentence pair).\"\"\"\n\n  def __init__(self, tokens, segment_ids, masked_lm_positions, masked_lm_labels,\n               is_random_next):\n    self.tokens = tokens\n    self.segment_ids = segment_ids\n    self.is_random_next = is_random_next\n    self.masked_lm_positions = masked_lm_positions\n    self.masked_lm_labels = masked_lm_labels\n\n  def __str__(self):\n    s = \"\"\n    s += \"tokens: %s\\n\" % (\" \".join(\n        [tokenization.printable_text(x) for x in self.tokens]))\n    s += \"segment_ids: %s\\n\" % (\" \".join([str(x) for x in self.segment_ids]))\n    s += \"is_random_next: %s\\n\" % self.is_random_next\n    s += \"masked_lm_positions: %s\\n\" % (\" \".join(\n        [str(x) for x in self.masked_lm_positions]))\n    s += \"masked_lm_labels: %s\\n\" % (\" \".join(\n        [tokenization.printable_text(x) for x in self.masked_lm_labels]))\n    s += \"\\n\"\n    return s\n\n  def __repr__(self):\n    return self.__str__()\n\n\ndef write_instance_to_example_files(instances, tokenizer, max_seq_length,\n                                    max_predictions_per_seq, output_files):\n  \"\"\"Create TF example files from `TrainingInstance`s.\"\"\"\n  writers = []\n  for output_file in output_files:\n    writers.append(tf.python_io.TFRecordWriter(output_file))\n\n  writer_index = 0\n\n  total_written = 0\n  for (inst_index, instance) in enumerate(instances):\n    input_ids = tokenizer.convert_tokens_to_ids(instance.tokens)\n    input_mask = [1] * len(input_ids)\n    segment_ids = list(instance.segment_ids)\n    assert len(input_ids) <= max_seq_length\n\n    while len(input_ids) < max_seq_length:\n      input_ids.append(0)\n      input_mask.append(0)\n      segment_ids.append(0)\n\n    assert len(input_ids) == max_seq_length\n    assert len(input_mask) == max_seq_length\n    assert len(segment_ids) == max_seq_length\n\n    masked_lm_positions = list(instance.masked_lm_positions)\n    masked_lm_ids = tokenizer.convert_tokens_to_ids(instance.masked_lm_labels)\n    masked_lm_weights = [1.0] * len(masked_lm_ids)\n\n    while len(masked_lm_positions) < max_predictions_per_seq:\n      masked_lm_positions.append(0)\n      masked_lm_ids.append(0)\n      masked_lm_weights.append(0.0)\n\n    next_sentence_label = 1 if instance.is_random_next else 0\n\n    features = collections.OrderedDict()\n    features[\"input_ids\"] = create_int_feature(input_ids)\n    features[\"input_mask\"] = create_int_feature(input_mask)\n    features[\"segment_ids\"] = create_int_feature(segment_ids)\n    features[\"masked_lm_positions\"] = create_int_feature(masked_lm_positions)\n    features[\"masked_lm_ids\"] = create_int_feature(masked_lm_ids)\n    features[\"masked_lm_weights\"] = create_float_feature(masked_lm_weights)\n    features[\"next_sentence_labels\"] = create_int_feature([next_sentence_label])\n\n    tf_example = tf.train.Example(features=tf.train.Features(feature=features))\n\n    writers[writer_index].write(tf_example.SerializeToString())\n    writer_index = (writer_index + 1) % len(writers)\n\n    total_written += 1\n\n    if inst_index < 20:\n      tf.logging.info(\"*** Example ***\")\n      tf.logging.info(\"tokens: %s\" % \" \".join(\n          [tokenization.printable_text(x) for x in instance.tokens]))\n\n      for feature_name in features.keys():\n        feature = features[feature_name]\n        values = []\n        if feature.int64_list.value:\n          values = feature.int64_list.value\n        elif feature.float_list.value:\n          values = feature.float_list.value\n        tf.logging.info(\n            \"%s: %s\" % (feature_name, \" \".join([str(x) for x in values])))\n\n  for writer in writers:\n    writer.close()\n\n  tf.logging.info(\"Wrote %d total instances\", total_written)\n\n\ndef create_int_feature(values):\n  feature = tf.train.Feature(int64_list=tf.train.Int64List(value=list(values)))\n  return feature\n\n\ndef create_float_feature(values):\n  feature = tf.train.Feature(float_list=tf.train.FloatList(value=list(values)))\n  return feature\n\n\ndef create_training_instances(input_files, tokenizer, max_seq_length,\n                              dupe_factor, short_seq_prob, masked_lm_prob,\n                              max_predictions_per_seq, rng):\n  \"\"\"Create `TrainingInstance`s from raw text.\"\"\"\n  all_documents = [[]]\n\n  # Input file format:\n  # (1) One sentence per line. These should ideally be actual sentences, not\n  # entire paragraphs or arbitrary spans of text. (Because we use the\n  # sentence boundaries for the \"next sentence prediction\" task).\n  # (2) Blank lines between documents. Document boundaries are needed so\n  # that the \"next sentence prediction\" task doesn't span between documents.\n  for input_file in input_files:\n    with tf.gfile.GFile(input_file, \"r\") as reader:\n      num_lines = 0\n      while True:\n        line = tokenization.convert_to_unicode(reader.readline())\n        if not line:\n          break\n        line = line.strip()\n\n        # Empty lines are used as document delimiters\n        if not line:\n          all_documents.append([])\n        tokens = tokenizer.tokenize(line)\n        if tokens:\n          all_documents[-1].append(tokens)\n\n        if num_lines % 10000 == 0:\n          print(num_lines)\n        num_lines += 1\n\n  # Remove empty documents\n  all_documents = [x for x in all_documents if x]\n  rng.shuffle(all_documents)\n\n  print('num docs', len(all_documents))\n\n  vocab_words = list(tokenizer.vocab.keys())\n  instances = []\n  for _ in range(dupe_factor):\n    for document_index in tqdm(range(len(all_documents)), ascii=True):\n      instances.extend(\n          create_instances_from_document(\n              all_documents, document_index, max_seq_length, short_seq_prob,\n              masked_lm_prob, max_predictions_per_seq, vocab_words, rng))\n\n  rng.shuffle(instances)\n  return instances\n\n\ndef create_instances_from_document(\n    all_documents, document_index, max_seq_length, short_seq_prob,\n    masked_lm_prob, max_predictions_per_seq, vocab_words, rng):\n  \"\"\"Creates `TrainingInstance`s for a single document.\"\"\"\n  document = all_documents[document_index]\n\n  # Account for [CLS], [SEP], [SEP]\n  max_num_tokens = max_seq_length - 3\n\n  # We *usually* want to fill up the entire sequence since we are padding\n  # to `max_seq_length` anyways, so short sequences are generally wasted\n  # computation. However, we *sometimes*\n  # (i.e., short_seq_prob == 0.1 == 10% of the time) want to use shorter\n  # sequences to minimize the mismatch between pre-training and fine-tuning.\n  # The `target_seq_length` is just a rough target however, whereas\n  # `max_seq_length` is a hard limit.\n  target_seq_length = max_num_tokens\n  if rng.random() < short_seq_prob:\n    target_seq_length = rng.randint(2, max_num_tokens)\n\n  # We DON'T just concatenate all of the tokens from a document into a long\n  # sequence and choose an arbitrary split point because this would make the\n  # next sentence prediction task too easy. Instead, we split the input into\n  # segments \"A\" and \"B\" based on the actual \"sentences\" provided by the user\n  # input.\n  instances = []\n  current_chunk = []\n  current_length = 0\n  i = 0\n  while i < len(document):\n    segment = document[i]\n    current_chunk.append(segment)\n    current_length += len(segment)\n    if i == len(document) - 1 or current_length >= target_seq_length:\n      if current_chunk:\n        # `a_end` is how many segments from `current_chunk` go into the `A`\n        # (first) sentence.\n        a_end = 1\n        if len(current_chunk) >= 2:\n          a_end = rng.randint(1, len(current_chunk) - 1)\n\n        tokens_a = []\n        for j in range(a_end):\n          tokens_a.extend(current_chunk[j])\n\n        tokens_b = []\n        # Random next\n        is_random_next = False\n        if len(current_chunk) == 1 or rng.random() < 0.5:\n          is_random_next = True\n          target_b_length = target_seq_length - len(tokens_a)\n\n          # This should rarely go for more than one iteration for large\n          # corpora. However, just to be careful, we try to make sure that\n          # the random document is not the same as the document\n          # we're processing.\n          for _ in range(10):\n            random_document_index = rng.randint(0, len(all_documents) - 1)\n            if random_document_index != document_index:\n              break\n\n          random_document = all_documents[random_document_index]\n          random_start = rng.randint(0, len(random_document) - 1)\n          for j in range(random_start, len(random_document)):\n            tokens_b.extend(random_document[j])\n            if len(tokens_b) >= target_b_length:\n              break\n          # We didn't actually use these segments so we \"put them back\" so\n          # they don't go to waste.\n          num_unused_segments = len(current_chunk) - a_end\n          i -= num_unused_segments\n        # Actual next\n        else:\n          is_random_next = False\n          for j in range(a_end, len(current_chunk)):\n            tokens_b.extend(current_chunk[j])\n        truncate_seq_pair(tokens_a, tokens_b, max_num_tokens, rng)\n\n        assert len(tokens_a) >= 1\n        assert len(tokens_b) >= 1\n\n        tokens = []\n        segment_ids = []\n        tokens.append(\"[CLS]\")\n        segment_ids.append(0)\n        for token in tokens_a:\n          tokens.append(token)\n          segment_ids.append(0)\n\n        tokens.append(\"[SEP]\")\n        segment_ids.append(0)\n\n        for token in tokens_b:\n          tokens.append(token)\n          segment_ids.append(1)\n        tokens.append(\"[SEP]\")\n        segment_ids.append(1)\n\n        (tokens, masked_lm_positions,\n         masked_lm_labels) = create_masked_lm_predictions(\n             tokens, masked_lm_prob, max_predictions_per_seq, vocab_words, rng)\n        instance = TrainingInstance(\n            tokens=tokens,\n            segment_ids=segment_ids,\n            is_random_next=is_random_next,\n            masked_lm_positions=masked_lm_positions,\n            masked_lm_labels=masked_lm_labels)\n        instances.append(instance)\n      current_chunk = []\n      current_length = 0\n    i += 1\n\n  return instances\n\n\ndef create_masked_lm_predictions(tokens, masked_lm_prob,\n                                 max_predictions_per_seq, vocab_words, rng):\n  \"\"\"Creates the predictions for the masked LM objective.\"\"\"\n\n  cand_indexes = []\n  for (i, token) in enumerate(tokens):\n    if token == \"[CLS]\" or token == \"[SEP]\":\n      continue\n    cand_indexes.append(i)\n\n  rng.shuffle(cand_indexes)\n\n  output_tokens = list(tokens)\n\n  masked_lm = collections.namedtuple(\"masked_lm\", [\"index\", \"label\"])  # pylint: disable=invalid-name\n\n  num_to_predict = min(max_predictions_per_seq,\n                       max(1, int(round(len(tokens) * masked_lm_prob))))\n\n  masked_lms = []\n  covered_indexes = set()\n  for index in cand_indexes:\n    if len(masked_lms) >= num_to_predict:\n      break\n    if index in covered_indexes:\n      continue\n    covered_indexes.add(index)\n\n    masked_token = None\n    # 80% of the time, replace with [MASK]\n    if rng.random() < 0.8:\n      masked_token = \"[MASK]\"\n    else:\n      # 10% of the time, keep original\n      if rng.random() < 0.5:\n        masked_token = tokens[index]\n      # 10% of the time, replace with random word\n      else:\n        masked_token = vocab_words[rng.randint(0, len(vocab_words) - 1)]\n\n    output_tokens[index] = masked_token\n\n    masked_lms.append(masked_lm(index=index, label=tokens[index]))\n\n  masked_lms = sorted(masked_lms, key=lambda x: x.index)\n\n  masked_lm_positions = []\n  masked_lm_labels = []\n  for p in masked_lms:\n    masked_lm_positions.append(p.index)\n    masked_lm_labels.append(p.label)\n\n  return (output_tokens, masked_lm_positions, masked_lm_labels)\n\n\ndef truncate_seq_pair(tokens_a, tokens_b, max_num_tokens, rng):\n  \"\"\"Truncates a pair of sequences to a maximum sequence length.\"\"\"\n  while True:\n    total_length = len(tokens_a) + len(tokens_b)\n    if total_length <= max_num_tokens:\n      break\n\n    trunc_tokens = tokens_a if len(tokens_a) > len(tokens_b) else tokens_b\n    assert len(trunc_tokens) >= 1\n\n    # We want to sometimes truncate from the front and sometimes from the\n    # back to add more randomness and avoid biases.\n    if rng.random() < 0.5:\n      del trunc_tokens[0]\n    else:\n      trunc_tokens.pop()\n\n\ndef main(_):\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  tokenizer = tokenization.FullTokenizer(\n      vocab_file=FLAGS.vocab_file, do_lower_case=FLAGS.do_lower_case)\n\n  input_files = []\n  for input_pattern in FLAGS.input_file.split(\",\"):\n    input_files.extend(tf.gfile.Glob(input_pattern))\n\n  tf.logging.info(\"*** Reading from input files ***\")\n  for input_file in input_files:\n    tf.logging.info(\"  %s\", input_file)\n\n  rng = random.Random(FLAGS.random_seed)\n  instances = create_training_instances(\n      input_files, tokenizer, FLAGS.max_seq_length, FLAGS.dupe_factor,\n      FLAGS.short_seq_prob, FLAGS.masked_lm_prob, FLAGS.max_predictions_per_seq,\n      rng)\n\n  output_files = FLAGS.output_file.split(\",\")\n  tf.logging.info(\"*** Writing to output files ***\")\n  for output_file in output_files:\n    tf.logging.info(\"  %s\", output_file)\n\n  write_instance_to_example_files(instances, tokenizer, FLAGS.max_seq_length,\n                                  FLAGS.max_predictions_per_seq, output_files)\n\n\nif __name__ == \"__main__\":\n  flags.mark_flag_as_required(\"input_file\")\n  flags.mark_flag_as_required(\"output_file\")\n  flags.mark_flag_as_required(\"vocab_file\")\n  tf.app.run()\n"
  },
  {
    "path": "third/bert/extract_features.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Extract pre-computed feature vectors from BERT.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport codecs\nimport collections\nimport json\nimport re\n\nimport modeling\nimport tokenization\nimport tensorflow as tf\n\nflags = tf.flags\n\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string(\"input_file\", None, \"\")\n\nflags.DEFINE_string(\"output_file\", None, \"\")\n\nflags.DEFINE_string(\"layers\", \"-1,-2,-3,-4\", \"\")\n\nflags.DEFINE_string(\n    \"bert_config_file\", None,\n    \"The config json file corresponding to the pre-trained BERT model. \"\n    \"This specifies the model architecture.\")\n\nflags.DEFINE_integer(\n    \"max_seq_length\", 128,\n    \"The maximum total input sequence length after WordPiece tokenization. \"\n    \"Sequences longer than this will be truncated, and sequences shorter \"\n    \"than this will be padded.\")\n\nflags.DEFINE_string(\n    \"init_checkpoint\", None,\n    \"Initial checkpoint (usually from a pre-trained BERT model).\")\n\nflags.DEFINE_string(\"vocab_file\", None,\n                    \"The vocabulary file that the BERT model was trained on.\")\n\nflags.DEFINE_bool(\n    \"do_lower_case\", True,\n    \"Whether to lower case the input text. Should be True for uncased \"\n    \"models and False for cased models.\")\n\nflags.DEFINE_integer(\"batch_size\", 32, \"Batch size for predictions.\")\n\nflags.DEFINE_bool(\"use_tpu\", False, \"Whether to use TPU or GPU/CPU.\")\n\nflags.DEFINE_string(\"master\", None,\n                    \"If using a TPU, the address of the master.\")\n\nflags.DEFINE_integer(\n    \"num_tpu_cores\", 8,\n    \"Only used if `use_tpu` is True. Total number of TPU cores to use.\")\n\nflags.DEFINE_bool(\n    \"use_one_hot_embeddings\", False,\n    \"If True, tf.one_hot will be used for embedding lookups, otherwise \"\n    \"tf.nn.embedding_lookup will be used. On TPUs, this should be True \"\n    \"since it is much faster.\")\n\n\nclass InputExample(object):\n\n  def __init__(self, unique_id, text_a, text_b):\n    self.unique_id = unique_id\n    self.text_a = text_a\n    self.text_b = text_b\n\n\nclass InputFeatures(object):\n  \"\"\"A single set of features of data.\"\"\"\n\n  def __init__(self, unique_id, tokens, input_ids, input_mask, input_type_ids):\n    self.unique_id = unique_id\n    self.tokens = tokens\n    self.input_ids = input_ids\n    self.input_mask = input_mask\n    self.input_type_ids = input_type_ids\n\n\ndef input_fn_builder(features, seq_length):\n  \"\"\"Creates an `input_fn` closure to be passed to TPUEstimator.\"\"\"\n\n  all_unique_ids = []\n  all_input_ids = []\n  all_input_mask = []\n  all_input_type_ids = []\n\n  for feature in features:\n    all_unique_ids.append(feature.unique_id)\n    all_input_ids.append(feature.input_ids)\n    all_input_mask.append(feature.input_mask)\n    all_input_type_ids.append(feature.input_type_ids)\n\n  def input_fn(params):\n    \"\"\"The actual input function.\"\"\"\n    batch_size = params[\"batch_size\"]\n\n    num_examples = len(features)\n\n    # This is for demo purposes and does NOT scale to large data sets. We do\n    # not use Dataset.from_generator() because that uses tf.py_func which is\n    # not TPU compatible. The right way to load data is with TFRecordReader.\n    d = tf.data.Dataset.from_tensor_slices({\n        \"unique_ids\":\n            tf.constant(all_unique_ids, shape=[num_examples], dtype=tf.int32),\n        \"input_ids\":\n            tf.constant(\n                all_input_ids, shape=[num_examples, seq_length],\n                dtype=tf.int32),\n        \"input_mask\":\n            tf.constant(\n                all_input_mask,\n                shape=[num_examples, seq_length],\n                dtype=tf.int32),\n        \"input_type_ids\":\n            tf.constant(\n                all_input_type_ids,\n                shape=[num_examples, seq_length],\n                dtype=tf.int32),\n    })\n\n    d = d.batch(batch_size=batch_size, drop_remainder=False)\n    return d\n\n  return input_fn\n\n\ndef model_fn_builder(bert_config, init_checkpoint, layer_indexes, use_tpu,\n                     use_one_hot_embeddings):\n  \"\"\"Returns `model_fn` closure for TPUEstimator.\"\"\"\n\n  def model_fn(features, labels, mode, params):  # pylint: disable=unused-argument\n    \"\"\"The `model_fn` for TPUEstimator.\"\"\"\n\n    unique_ids = features[\"unique_ids\"]\n    input_ids = features[\"input_ids\"]\n    input_mask = features[\"input_mask\"]\n    input_type_ids = features[\"input_type_ids\"]\n\n    model = modeling.BertModel(\n        config=bert_config,\n        is_training=False,\n        input_ids=input_ids,\n        input_mask=input_mask,\n        token_type_ids=input_type_ids,\n        use_one_hot_embeddings=use_one_hot_embeddings)\n\n    if mode != tf.estimator.ModeKeys.PREDICT:\n      raise ValueError(\"Only PREDICT modes are supported: %s\" % (mode))\n\n    tvars = tf.trainable_variables()\n    scaffold_fn = None\n    (assignment_map, _) = modeling.get_assigment_map_from_checkpoint(\n        tvars, init_checkpoint)\n    if use_tpu:\n\n      def tpu_scaffold():\n        tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n        return tf.train.Scaffold()\n\n      scaffold_fn = tpu_scaffold\n    else:\n      tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n\n    all_layers = model.get_all_encoder_layers()\n\n    predictions = {\n        \"unique_id\": unique_ids,\n    }\n\n    for (i, layer_index) in enumerate(layer_indexes):\n      predictions[\"layer_output_%d\" % i] = all_layers[layer_index]\n\n    output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n        mode=mode, predictions=predictions, scaffold_fn=scaffold_fn)\n    return output_spec\n\n  return model_fn\n\n\ndef convert_examples_to_features(examples, seq_length, tokenizer):\n  \"\"\"Loads a data file into a list of `InputBatch`s.\"\"\"\n\n  features = []\n  for (ex_index, example) in enumerate(examples):\n    tokens_a = tokenizer.tokenize(example.text_a)\n\n    tokens_b = None\n    if example.text_b:\n      tokens_b = tokenizer.tokenize(example.text_b)\n\n    if tokens_b:\n      # Modifies `tokens_a` and `tokens_b` in place so that the total\n      # length is less than the specified length.\n      # Account for [CLS], [SEP], [SEP] with \"- 3\"\n      _truncate_seq_pair(tokens_a, tokens_b, seq_length - 3)\n    else:\n      # Account for [CLS] and [SEP] with \"- 2\"\n      if len(tokens_a) > seq_length - 2:\n        tokens_a = tokens_a[0:(seq_length - 2)]\n\n    # The convention in BERT is:\n    # (a) For sequence pairs:\n    #  tokens:   [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP]\n    #  type_ids: 0     0  0    0    0     0       0 0     1  1  1  1   1 1\n    # (b) For single sequences:\n    #  tokens:   [CLS] the dog is hairy . [SEP]\n    #  type_ids: 0     0   0   0  0     0 0\n    #\n    # Where \"type_ids\" are used to indicate whether this is the first\n    # sequence or the second sequence. The embedding vectors for `type=0` and\n    # `type=1` were learned during pre-training and are added to the wordpiece\n    # embedding vector (and position vector). This is not *strictly* necessary\n    # since the [SEP] token unambiguously separates the sequences, but it makes\n    # it easier for the model to learn the concept of sequences.\n    #\n    # For classification tasks, the first vector (corresponding to [CLS]) is\n    # used as as the \"sentence vector\". Note that this only makes sense because\n    # the entire model is fine-tuned.\n    tokens = []\n    input_type_ids = []\n    tokens.append(\"[CLS]\")\n    input_type_ids.append(0)\n    for token in tokens_a:\n      tokens.append(token)\n      input_type_ids.append(0)\n    tokens.append(\"[SEP]\")\n    input_type_ids.append(0)\n\n    if tokens_b:\n      for token in tokens_b:\n        tokens.append(token)\n        input_type_ids.append(1)\n      tokens.append(\"[SEP]\")\n      input_type_ids.append(1)\n\n    input_ids = tokenizer.convert_tokens_to_ids(tokens)\n\n    # The mask has 1 for real tokens and 0 for padding tokens. Only real\n    # tokens are attended to.\n    input_mask = [1] * len(input_ids)\n\n    # Zero-pad up to the sequence length.\n    while len(input_ids) < seq_length:\n      input_ids.append(0)\n      input_mask.append(0)\n      input_type_ids.append(0)\n\n    assert len(input_ids) == seq_length\n    assert len(input_mask) == seq_length\n    assert len(input_type_ids) == seq_length\n\n    if ex_index < 5:\n      tf.logging.info(\"*** Example ***\")\n      tf.logging.info(\"unique_id: %s\" % (example.unique_id))\n      tf.logging.info(\"tokens: %s\" % \" \".join([str(x) for x in tokens]))\n      tf.logging.info(\"input_ids: %s\" % \" \".join([str(x) for x in input_ids]))\n      tf.logging.info(\"input_mask: %s\" % \" \".join([str(x) for x in input_mask]))\n      tf.logging.info(\n          \"input_type_ids: %s\" % \" \".join([str(x) for x in input_type_ids]))\n\n    features.append(\n        InputFeatures(\n            unique_id=example.unique_id,\n            tokens=tokens,\n            input_ids=input_ids,\n            input_mask=input_mask,\n            input_type_ids=input_type_ids))\n  return features\n\n\ndef _truncate_seq_pair(tokens_a, tokens_b, max_length):\n  \"\"\"Truncates a sequence pair in place to the maximum length.\"\"\"\n\n  # This is a simple heuristic which will always truncate the longer sequence\n  # one token at a time. This makes more sense than truncating an equal percent\n  # of tokens from each, since if one sequence is very short then each token\n  # that's truncated likely contains more information than a longer sequence.\n  while True:\n    total_length = len(tokens_a) + len(tokens_b)\n    if total_length <= max_length:\n      break\n    if len(tokens_a) > len(tokens_b):\n      tokens_a.pop()\n    else:\n      tokens_b.pop()\n\n\ndef read_examples(input_file):\n  \"\"\"Read a list of `InputExample`s from an input file.\"\"\"\n  examples = []\n  unique_id = 0\n  with tf.gfile.GFile(input_file, \"r\") as reader:\n    while True:\n      line = tokenization.convert_to_unicode(reader.readline())\n      if not line:\n        break\n      line = line.strip()\n      text_a = None\n      text_b = None\n      m = re.match(r\"^(.*) \\|\\|\\| (.*)$\", line)\n      if m is None:\n        text_a = line\n      else:\n        text_a = m.group(1)\n        text_b = m.group(2)\n      examples.append(\n          InputExample(unique_id=unique_id, text_a=text_a, text_b=text_b))\n      unique_id += 1\n  return examples\n\n\ndef main(_):\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  layer_indexes = [int(x) for x in FLAGS.layers.split(\",\")]\n\n  bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n\n  tokenizer = tokenization.FullTokenizer(\n      vocab_file=FLAGS.vocab_file, do_lower_case=FLAGS.do_lower_case)\n\n  is_per_host = tf.contrib.tpu.InputPipelineConfig.PER_HOST_V2\n  run_config = tf.contrib.tpu.RunConfig(\n      master=FLAGS.master,\n      tpu_config=tf.contrib.tpu.TPUConfig(\n          num_shards=FLAGS.num_tpu_cores,\n          per_host_input_for_training=is_per_host))\n\n  examples = read_examples(FLAGS.input_file)\n\n  features = convert_examples_to_features(\n      examples=examples, seq_length=FLAGS.max_seq_length, tokenizer=tokenizer)\n\n  unique_id_to_feature = {}\n  for feature in features:\n    unique_id_to_feature[feature.unique_id] = feature\n\n  model_fn = model_fn_builder(\n      bert_config=bert_config,\n      init_checkpoint=FLAGS.init_checkpoint,\n      layer_indexes=layer_indexes,\n      use_tpu=FLAGS.use_tpu,\n      use_one_hot_embeddings=FLAGS.use_one_hot_embeddings)\n\n  # If TPU is not available, this will fall back to normal Estimator on CPU\n  # or GPU.\n  estimator = tf.contrib.tpu.TPUEstimator(\n      use_tpu=FLAGS.use_tpu,\n      model_fn=model_fn,\n      config=run_config,\n      predict_batch_size=FLAGS.batch_size)\n\n  input_fn = input_fn_builder(\n      features=features, seq_length=FLAGS.max_seq_length)\n\n  with codecs.getwriter(\"utf-8\")(tf.gfile.Open(FLAGS.output_file,\n                                               \"w\")) as writer:\n    for result in estimator.predict(input_fn, yield_single_examples=True):\n      unique_id = int(result[\"unique_id\"])\n      feature = unique_id_to_feature[unique_id]\n      output_json = collections.OrderedDict()\n      output_json[\"linex_index\"] = unique_id\n      all_features = []\n      for (i, token) in enumerate(feature.tokens):\n        all_layers = []\n        for (j, layer_index) in enumerate(layer_indexes):\n          layer_output = result[\"layer_output_%d\" % j]\n          layers = collections.OrderedDict()\n          layers[\"index\"] = layer_index\n          layers[\"values\"] = [\n              round(float(x), 6) for x in layer_output[i:(i + 1)].flat\n          ]\n          all_layers.append(layers)\n        features = collections.OrderedDict()\n        features[\"token\"] = token\n        features[\"layers\"] = all_layers\n        all_features.append(features)\n      output_json[\"features\"] = all_features\n      writer.write(json.dumps(output_json) + \"\\n\")\n\n\nif __name__ == \"__main__\":\n  flags.mark_flag_as_required(\"input_file\")\n  flags.mark_flag_as_required(\"vocab_file\")\n  flags.mark_flag_as_required(\"bert_config_file\")\n  flags.mark_flag_as_required(\"init_checkpoint\")\n  flags.mark_flag_as_required(\"output_file\")\n  tf.app.run()\n"
  },
  {
    "path": "third/bert/modeling.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"The main BERT model and related functions.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport copy\nimport json\nimport math\nimport re\nimport six\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\nclass BertConfig(object):\n  \"\"\"Configuration for `BertModel`.\"\"\"\n\n  def __init__(self,\n               vocab_size,\n               hidden_size=768,\n               num_hidden_layers=12,\n               num_attention_heads=12,\n               intermediate_size=3072,\n               hidden_act=\"gelu\",\n               hidden_dropout_prob=0.1,\n               attention_probs_dropout_prob=0.1,\n               max_position_embeddings=512,\n               type_vocab_size=16,\n               initializer_range=0.02):\n    \"\"\"Constructs BertConfig.\n\n    Args:\n      vocab_size: Vocabulary size of `inputs_ids` in `BertModel`.\n      hidden_size: Size of the encoder layers and the pooler layer.\n      num_hidden_layers: Number of hidden layers in the Transformer encoder.\n      num_attention_heads: Number of attention heads for each attention layer in\n        the Transformer encoder.\n      intermediate_size: The size of the \"intermediate\" (i.e., feed-forward)\n        layer in the Transformer encoder.\n      hidden_act: The non-linear activation function (function or string) in the\n        encoder and pooler.\n      hidden_dropout_prob: The dropout probability for all fully connected\n        layers in the embeddings, encoder, and pooler.\n      attention_probs_dropout_prob: The dropout ratio for the attention\n        probabilities.\n      max_position_embeddings: The maximum sequence length that this model might\n        ever be used with. Typically set this to something large just in case\n        (e.g., 512 or 1024 or 2048).\n      type_vocab_size: The vocabulary size of the `token_type_ids` passed into\n        `BertModel`.\n      initializer_range: The stdev of the truncated_normal_initializer for\n        initializing all weight matrices.\n    \"\"\"\n    self.vocab_size = vocab_size\n    self.hidden_size = hidden_size\n    self.num_hidden_layers = num_hidden_layers\n    self.num_attention_heads = num_attention_heads\n    self.hidden_act = hidden_act\n    self.intermediate_size = intermediate_size\n    self.hidden_dropout_prob = hidden_dropout_prob\n    self.attention_probs_dropout_prob = attention_probs_dropout_prob\n    self.max_position_embeddings = max_position_embeddings\n    self.type_vocab_size = type_vocab_size\n    self.initializer_range = initializer_range\n\n  @classmethod\n  def from_dict(cls, json_object):\n    \"\"\"Constructs a `BertConfig` from a Python dictionary of parameters.\"\"\"\n    config = BertConfig(vocab_size=None)\n    for (key, value) in six.iteritems(json_object):\n      config.__dict__[key] = value\n    return config\n\n  @classmethod\n  def from_json_file(cls, json_file):\n    \"\"\"Constructs a `BertConfig` from a json file of parameters.\"\"\"\n    with tf.gfile.GFile(json_file, \"r\") as reader:\n      text = reader.read()\n    return cls.from_dict(json.loads(text))\n\n  def to_dict(self):\n    \"\"\"Serializes this instance to a Python dictionary.\"\"\"\n    output = copy.deepcopy(self.__dict__)\n    return output\n\n  def to_json_string(self):\n    \"\"\"Serializes this instance to a JSON string.\"\"\"\n    return json.dumps(self.to_dict(), indent=2, sort_keys=True) + \"\\n\"\n\n\nclass BertModel(object):\n  \"\"\"BERT model (\"Bidirectional Embedding Representations from a Transformer\").\n\n  Example usage:\n\n  ```python\n  # Already been converted into WordPiece token ids\n  input_ids = tf.constant([[31, 51, 99], [15, 5, 0]])\n  input_mask = tf.constant([[1, 1, 1], [1, 1, 0]])\n  token_type_ids = tf.constant([[0, 0, 1], [0, 2, 0]])\n\n  config = modeling.BertConfig(vocab_size=32000, hidden_size=512,\n    num_hidden_layers=8, num_attention_heads=6, intermediate_size=1024)\n\n  model = modeling.BertModel(config=config, is_training=True,\n    input_ids=input_ids, input_mask=input_mask, token_type_ids=token_type_ids)\n\n  label_embeddings = tf.get_variable(...)\n  pooled_output = model.get_pooled_output()\n  logits = tf.matmul(pooled_output, label_embeddings)\n  ...\n  ```\n  \"\"\"\n\n  def __init__(self,\n               config,\n               is_training,\n               input_ids,\n               input_mask=None,\n               token_type_ids=None,\n               use_one_hot_embeddings=True,\n               scope=None):\n    \"\"\"Constructor for BertModel.\n\n    Args:\n      config: `BertConfig` instance.\n      is_training: bool. rue for training model, false for eval model. Controls\n        whether dropout will be applied.\n      input_ids: int32 Tensor of shape [batch_size, seq_length].\n      input_mask: (optional) int32 Tensor of shape [batch_size, seq_length].\n      token_type_ids: (optional) int32 Tensor of shape [batch_size, seq_length].\n      use_one_hot_embeddings: (optional) bool. Whether to use one-hot word\n        embeddings or tf.embedding_lookup() for the word embeddings. On the TPU,\n        it is must faster if this is True, on the CPU or GPU, it is faster if\n        this is False.\n      scope: (optional) variable scope. Defaults to \"bert\".\n\n    Raises:\n      ValueError: The config is invalid or one of the input tensor shapes\n        is invalid.\n    \"\"\"\n    config = copy.deepcopy(config)\n    if not is_training:\n      config.hidden_dropout_prob = 0.0\n      config.attention_probs_dropout_prob = 0.0\n\n    input_shape = get_shape_list(input_ids, expected_rank=2)\n    batch_size = input_shape[0]\n    seq_length = input_shape[1]\n\n    if input_mask is None:\n      input_mask = tf.ones(shape=[batch_size, seq_length], dtype=tf.int32)\n\n    if token_type_ids is None:\n      token_type_ids = tf.zeros(shape=[batch_size, seq_length], dtype=tf.int32)\n\n    #with tf.variable_scope(\"bert\", scope):\n    with tf.variable_scope(\"bert\", scope, reuse=tf.AUTO_REUSE):\n      with tf.variable_scope(\"embeddings\"):\n        # Perform embedding lookup on the word ids.\n        (self.embedding_output, self.embedding_table) = embedding_lookup(\n            input_ids=input_ids,\n            vocab_size=config.vocab_size,\n            embedding_size=config.hidden_size,\n            initializer_range=config.initializer_range,\n            word_embedding_name=\"word_embeddings\",\n            use_one_hot_embeddings=use_one_hot_embeddings)\n\n        # Add positional embeddings and token type embeddings, then layer\n        # normalize and perform dropout.\n        self.embedding_output = embedding_postprocessor(\n            input_tensor=self.embedding_output,\n            use_token_type=True,\n            token_type_ids=token_type_ids,\n            token_type_vocab_size=config.type_vocab_size,\n            token_type_embedding_name=\"token_type_embeddings\",\n            use_position_embeddings=True,\n            position_embedding_name=\"position_embeddings\",\n            initializer_range=config.initializer_range,\n            max_position_embeddings=config.max_position_embeddings,\n            dropout_prob=config.hidden_dropout_prob)\n\n      with tf.variable_scope(\"encoder\"):\n        # This converts a 2D mask of shape [batch_size, seq_length] to a 3D\n        # mask of shape [batch_size, seq_length, seq_length] which is used\n        # for the attention scores.\n        attention_mask = create_attention_mask_from_input_mask(\n            input_ids, input_mask)\n\n        # Run the stacked transformer.\n        # `sequence_output` shape = [batch_size, seq_length, hidden_size].\n        self.all_encoder_layers = transformer_model(\n            input_tensor=self.embedding_output,\n            attention_mask=attention_mask,\n            hidden_size=config.hidden_size,\n            num_hidden_layers=config.num_hidden_layers,\n            num_attention_heads=config.num_attention_heads,\n            intermediate_size=config.intermediate_size,\n            intermediate_act_fn=get_activation(config.hidden_act),\n            hidden_dropout_prob=config.hidden_dropout_prob,\n            attention_probs_dropout_prob=config.attention_probs_dropout_prob,\n            initializer_range=config.initializer_range,\n            do_return_all_layers=True)\n\n      self.sequence_output = self.all_encoder_layers[-1]\n      # The \"pooler\" converts the encoded sequence tensor of shape\n      # [batch_size, seq_length, hidden_size] to a tensor of shape\n      # [batch_size, hidden_size]. This is necessary for segment-level\n      # (or segment-pair-level) classification tasks where we need a fixed\n      # dimensional representation of the segment.\n      with tf.variable_scope(\"pooler\"):\n        # We \"pool\" the model by simply taking the hidden state corresponding\n        # to the first token. We assume that this has been pre-trained\n        first_token_tensor = tf.squeeze(self.sequence_output[:, 0:1, :], axis=1)\n        self.pooled_output = tf.layers.dense(\n            first_token_tensor,\n            config.hidden_size,\n            activation=tf.tanh,\n            kernel_initializer=create_initializer(config.initializer_range))\n\n  def get_pooled_output(self):\n    return self.pooled_output\n\n  def get_sequence_output(self):\n    \"\"\"Gets final hidden layer of encoder.\n\n    Returns:\n      float Tensor of shape [batch_size, seq_length, hidden_size] corresponding\n      to the final hidden of the transformer encoder.\n    \"\"\"\n    return self.sequence_output\n\n  def get_all_encoder_layers(self):\n    return self.all_encoder_layers\n\n  def get_embedding_output(self):\n    \"\"\"Gets output of the embedding lookup (i.e., input to the transformer).\n\n    Returns:\n      float Tensor of shape [batch_size, seq_length, hidden_size] corresponding\n      to the output of the embedding layer, after summing the word\n      embeddings with the positional embeddings and the token type embeddings,\n      then performing layer normalization. This is the input to the transformer.\n    \"\"\"\n    return self.embedding_output\n\n  def get_embedding_table(self):\n    return self.embedding_table\n\n\ndef gelu(input_tensor):\n  \"\"\"Gaussian Error Linear Unit.\n\n  This is a smoother version of the RELU.\n  Original paper: https://arxiv.org/abs/1606.08415\n\n  Args:\n    input_tensor: float Tensor to perform activation.\n\n  Returns:\n    `input_tensor` with the GELU activation applied.\n  \"\"\"\n  cdf = 0.5 * (1.0 + tf.erf(input_tensor / tf.sqrt(2.0)))\n  return input_tensor * cdf\n\n\ndef get_activation(activation_string):\n  \"\"\"Maps a string to a Python function, e.g., \"relu\" => `tf.nn.relu`.\n\n  Args:\n    activation_string: String name of the activation function.\n\n  Returns:\n    A Python function corresponding to the activation function. If\n    `activation_string` is None, empty, or \"linear\", this will return None.\n    If `activation_string` is not a string, it will return `activation_string`.\n\n  Raises:\n    ValueError: The `activation_string` does not correspond to a known\n      activation.\n  \"\"\"\n\n  # We assume that anything that\"s not a string is already an activation\n  # function, so we just return it.\n  if not isinstance(activation_string, six.string_types):\n    return activation_string\n\n  if not activation_string:\n    return None\n\n  act = activation_string.lower()\n  if act == \"linear\":\n    return None\n  elif act == \"relu\":\n    return tf.nn.relu\n  elif act == \"gelu\":\n    return gelu\n  elif act == \"tanh\":\n    return tf.tanh\n  else:\n    raise ValueError(\"Unsupported activation: %s\" % act)\n\n\ndef get_assigment_map_from_checkpoint(tvars, init_checkpoint):\n  \"\"\"Compute the union of the current variables and checkpoint variables.\"\"\"\n  assignment_map = {}\n  initialized_variable_names = {}\n\n  name_to_variable = collections.OrderedDict()\n  for var in tvars:\n    name = var.name\n    m = re.match(\"^(.*):\\\\d+$\", name)\n    if m is not None:\n      name = m.group(1)\n    name_to_variable[name] = var\n\n  init_vars = tf.train.list_variables(init_checkpoint)\n\n  assignment_map = collections.OrderedDict()\n  for x in init_vars:\n    (name, var) = (x[0], x[1])\n    if name not in name_to_variable:\n      continue\n    assignment_map[name] = name\n    initialized_variable_names[name] = 1\n    initialized_variable_names[name + \":0\"] = 1\n\n  return (assignment_map, initialized_variable_names)\n\n\ndef dropout(input_tensor, dropout_prob):\n  \"\"\"Perform dropout.\n\n  Args:\n    input_tensor: float Tensor.\n    dropout_prob: Python float. The probability of dropping out a value (NOT of\n      *keeping* a dimension as in `tf.nn.dropout`).\n\n  Returns:\n    A version of `input_tensor` with dropout applied.\n  \"\"\"\n  if dropout_prob is None or dropout_prob == 0.0:\n    return input_tensor\n\n  output = tf.nn.dropout(input_tensor, 1.0 - dropout_prob)\n  return output\n\n\ndef layer_norm(input_tensor, name=None):\n  \"\"\"Run layer normalization on the last dimension of the tensor.\"\"\"\n  return tf.contrib.layers.layer_norm(\n      inputs=input_tensor, begin_norm_axis=-1, begin_params_axis=-1, scope=name)\n\n\ndef layer_norm_and_dropout(input_tensor, dropout_prob, name=None):\n  \"\"\"Runs layer normalization followed by dropout.\"\"\"\n  output_tensor = layer_norm(input_tensor, name)\n  output_tensor = dropout(output_tensor, dropout_prob)\n  return output_tensor\n\n\ndef create_initializer(initializer_range=0.02):\n  \"\"\"Creates a `truncated_normal_initializer` with the given range.\"\"\"\n  return tf.truncated_normal_initializer(stddev=initializer_range)\n\n\ndef embedding_lookup(input_ids,\n                     vocab_size,\n                     embedding_size=128,\n                     initializer_range=0.02,\n                     word_embedding_name=\"word_embeddings\",\n                     use_one_hot_embeddings=False):\n  \"\"\"Looks up words embeddings for id tensor.\n\n  Args:\n    input_ids: int32 Tensor of shape [batch_size, seq_length] containing word\n      ids.\n    vocab_size: int. Size of the embedding vocabulary.\n    embedding_size: int. Width of the word embeddings.\n    initializer_range: float. Embedding initialization range.\n    word_embedding_name: string. Name of the embedding table.\n    use_one_hot_embeddings: bool. If True, use one-hot method for word\n      embeddings. If False, use `tf.nn.embedding_lookup()`. One hot is better\n      for TPUs.\n\n  Returns:\n    float Tensor of shape [batch_size, seq_length, embedding_size].\n  \"\"\"\n  # This function assumes that the input is of shape [batch_size, seq_length,\n  # num_inputs].\n  #\n  # If the input is a 2D tensor of shape [batch_size, seq_length], we\n  # reshape to [batch_size, seq_length, 1].\n  if input_ids.shape.ndims == 2:\n    input_ids = tf.expand_dims(input_ids, axis=[-1])\n\n  try:\n    if FLAGS.word_embedding_file:\n      import numpy as np\n      embedding_weight = np.load(FLAGS.word_embedding_file)\n      initializer = tf.constant_initializer(embedding_weight)\n    else:\n      initializer = create_initializer(initializer_range)\n    print('-----------initializer', initializer)\n    embedding_table = tf.get_variable(\n        name=word_embedding_name,\n        shape=[vocab_size, embedding_size],\n        initializer=initializer,\n        trainable=FLAGS.finetune_word_embedding)\n  except Exception:\n    embedding_table = tf.get_variable(\n        name=word_embedding_name,\n        shape=[vocab_size, embedding_size],\n        initializer=create_initializer(initializer_range),\n        trainable=FLAGS.finetune_word_embedding)\n\n  # num_freeze_words = 0\n  # if num_finetune_words:\n  #   num_freeze_words = vocab_size - num_finetune_words\n  # self.embedding = wenzheng.Embedding(vocab_size, \n  #                                     emb_dim, \n  #                                     embedding_weight, \n  #                                     trainable=finetune_word_embedding,\n  #                                     freeze_size=num_freeze_words)\n\n  try:\n    # chg add\n    if FLAGS.num_finetune_words:\n      print('split embedding by finetune words num', FLAGS.num_finetune_words)\n      # well during sentiment contest, here make a mistake so as to finetune actually top 1.7w words, similar as finetune all words\n      #embedding, embedding2 = tf.split(embedding_table, [vocab_size - FLAGS.num_finetune_words, FLAGS.num_finetune_words], 0)\n      embedding, embedding2 = tf.split(embedding_table, [FLAGS.num_finetune_words, vocab_size - FLAGS.num_finetune_words], 0)\n      embedding_table = tf.concat([embedding, tf.stop_gradient(embedding2)], 0)\n  except Exception:\n    pass\n    \n  print('-------------------------use one hot embeddings', use_one_hot_embeddings)\n  # for gpu if use one hot embeddings batches/s:[2.64] insts/s:[84.57]  1epoch:[0.34h]\n  # if not use batch_size:[32] batches/s:[2.79] insts/s:[89.39]  1epoch:[0.33h] a bit faster..\n  if use_one_hot_embeddings:\n    flat_input_ids = tf.reshape(input_ids, [-1])\n    one_hot_input_ids = tf.one_hot(flat_input_ids, depth=vocab_size)\n    output = tf.matmul(one_hot_input_ids, embedding_table)\n  else:\n    output = tf.nn.embedding_lookup(embedding_table, input_ids)\n\n  input_shape = get_shape_list(input_ids)\n\n  output = tf.reshape(output,\n                      input_shape[0:-1] + [input_shape[-1] * embedding_size])\n  return (output, embedding_table)\n\n\ndef embedding_postprocessor(input_tensor,\n                            use_token_type=False,\n                            token_type_ids=None,\n                            token_type_vocab_size=16,\n                            token_type_embedding_name=\"token_type_embeddings\",\n                            use_position_embeddings=True,\n                            position_embedding_name=\"position_embeddings\",\n                            initializer_range=0.02,\n                            max_position_embeddings=512,\n                            dropout_prob=0.1):\n  \"\"\"Performs various post-processing on a word embedding tensor.\n\n  Args:\n    input_tensor: float Tensor of shape [batch_size, seq_length,\n      embedding_size].\n    use_token_type: bool. Whether to add embeddings for `token_type_ids`.\n    token_type_ids: (optional) int32 Tensor of shape [batch_size, seq_length].\n      Must be specified if `use_token_type` is True.\n    token_type_vocab_size: int. The vocabulary size of `token_type_ids`.\n    token_type_embedding_name: string. The name of the embedding table variable\n      for token type ids.\n    use_position_embeddings: bool. Whether to add position embeddings for the\n      position of each token in the sequence.\n    position_embedding_name: string. The name of the embedding table variable\n      for positional embeddings.\n    initializer_range: float. Range of the weight initialization.\n    max_position_embeddings: int. Maximum sequence length that might ever be\n      used with this model. This can be longer than the sequence length of\n      input_tensor, but cannot be shorter.\n    dropout_prob: float. Dropout probability applied to the final output tensor.\n\n  Returns:\n    float tensor with same shape as `input_tensor`.\n\n  Raises:\n    ValueError: One of the tensor shapes or input values is invalid.\n  \"\"\"\n  input_shape = get_shape_list(input_tensor, expected_rank=3)\n  batch_size = input_shape[0]\n  seq_length = input_shape[1]\n  width = input_shape[2]\n\n  # if seq_length > max_position_embeddings:\n  #   raise ValueError(\"The seq length (%d) cannot be greater than \"\n  #                    \"`max_position_embeddings` (%d)\" %\n  #                    (seq_length, max_position_embeddings))\n\n  output = input_tensor\n\n  if use_token_type:\n    if token_type_ids is None:\n      raise ValueError(\"`token_type_ids` must be specified if\"\n                       \"`use_token_type` is True.\")\n    token_type_table = tf.get_variable(\n        name=token_type_embedding_name,\n        shape=[token_type_vocab_size, width],\n        initializer=create_initializer(initializer_range))\n    # This vocab will be small so we always do one-hot here, since it is always\n    # faster for a small vocabulary.\n    flat_token_type_ids = tf.reshape(token_type_ids, [-1])\n    one_hot_ids = tf.one_hot(flat_token_type_ids, depth=token_type_vocab_size)\n    token_type_embeddings = tf.matmul(one_hot_ids, token_type_table)\n    token_type_embeddings = tf.reshape(token_type_embeddings,\n                                       [batch_size, seq_length, width])\n    output += token_type_embeddings\n\n  if use_position_embeddings:\n    full_position_embeddings = tf.get_variable(\n        name=position_embedding_name,\n        shape=[max_position_embeddings, width],\n        initializer=create_initializer(initializer_range))\n    # Since the position embedding table is a learned variable, we create it\n    # using a (long) sequence length `max_position_embeddings`. The actual\n    # sequence length might be shorter than this, for faster training of\n    # tasks that do not have long sequences.\n    #\n    # So `full_position_embeddings` is effectively an embedding table\n    # for position [0, 1, 2, ..., max_position_embeddings-1], and the current\n    # sequence has positions [0, 1, 2, ... seq_length-1], so we can just\n    # perform a slice.\n    # if seq_length < max_position_embeddings:\n    #   position_embeddings = tf.slice(full_position_embeddings, [0, 0],\n    #                                  [seq_length, -1])\n    # else:\n    #   position_embeddings = full_position_embeddings\n    position_embeddings = tf.slice(full_position_embeddings, [0, 0],\n                                      [seq_length, -1])\n\n    num_dims = len(output.shape.as_list())\n\n    # Only the last two dimensions are relevant (`seq_length` and `width`), so\n    # we broadcast among the first dimensions, which is typically just\n    # the batch size.\n    position_broadcast_shape = []\n    for _ in range(num_dims - 2):\n      position_broadcast_shape.append(1)\n    position_broadcast_shape.extend([seq_length, width])\n    position_embeddings = tf.reshape(position_embeddings,\n                                     position_broadcast_shape)\n    output += position_embeddings\n\n  output = layer_norm_and_dropout(output, dropout_prob)\n  return output\n\n\ndef create_attention_mask_from_input_mask(from_tensor, to_mask):\n  \"\"\"Create 3D attention mask from a 2D tensor mask.\n\n  Args:\n    from_tensor: 2D or 3D Tensor of shape [batch_size, from_seq_length, ...].\n    to_mask: int32 Tensor of shape [batch_size, to_seq_length].\n\n  Returns:\n    float Tensor of shape [batch_size, from_seq_length, to_seq_length].\n  \"\"\"\n  from_shape = get_shape_list(from_tensor, expected_rank=[2, 3])\n  batch_size = from_shape[0]\n  from_seq_length = from_shape[1]\n\n  to_shape = get_shape_list(to_mask, expected_rank=2)\n  to_seq_length = to_shape[1]\n\n  to_mask = tf.cast(\n      tf.reshape(to_mask, [batch_size, 1, to_seq_length]), tf.float32)\n\n  # We don't assume that `from_tensor` is a mask (although it could be). We\n  # don't actually care if we attend *from* padding tokens (only *to* padding)\n  # tokens so we create a tensor of all ones.\n  #\n  # `broadcast_ones` = [batch_size, from_seq_length, 1]\n  broadcast_ones = tf.ones(\n      shape=[batch_size, from_seq_length, 1], dtype=tf.float32)\n\n  # Here we broadcast along two dimensions to create the mask.\n  mask = broadcast_ones * to_mask\n\n  return mask\n\n\ndef attention_layer(from_tensor,\n                    to_tensor,\n                    attention_mask=None,\n                    num_attention_heads=1,\n                    size_per_head=512,\n                    query_act=None,\n                    key_act=None,\n                    value_act=None,\n                    attention_probs_dropout_prob=0.0,\n                    initializer_range=0.02,\n                    do_return_2d_tensor=False,\n                    batch_size=None,\n                    from_seq_length=None,\n                    to_seq_length=None):\n  \"\"\"Performs multi-headed attention from `from_tensor` to `to_tensor`.\n\n  This is an implementation of multi-headed attention based on \"Attention\n  is all you Need\". If `from_tensor` and `to_tensor` are the same, then\n  this is self-attention. Each timestep in `from_tensor` attends to the\n  corresponding sequence in `to_tensor`, and returns a fixed-with vector.\n\n  This function first projects `from_tensor` into a \"query\" tensor and\n  `to_tensor` into \"key\" and \"value\" tensors. These are (effectively) a list\n  of tensors of length `num_attention_heads`, where each tensor is of shape\n  [batch_size, seq_length, size_per_head].\n\n  Then, the query and key tensors are dot-producted and scaled. These are\n  softmaxed to obtain attention probabilities. The value tensors are then\n  interpolated by these probabilities, then concatenated back to a single\n  tensor and returned.\n\n  In practice, the multi-headed attention are done with transposes and\n  reshapes rather than actual separate tensors.\n\n  Args:\n    from_tensor: float Tensor of shape [batch_size, from_seq_length,\n      from_width].\n    to_tensor: float Tensor of shape [batch_size, to_seq_length, to_width].\n    attention_mask: (optional) int32 Tensor of shape [batch_size,\n      from_seq_length, to_seq_length]. The values should be 1 or 0. The\n      attention scores will effectively be set to -infinity for any positions in\n      the mask that are 0, and will be unchanged for positions that are 1.\n    num_attention_heads: int. Number of attention heads.\n    size_per_head: int. Size of each attention head.\n    query_act: (optional) Activation function for the query transform.\n    key_act: (optional) Activation function for the key transform.\n    value_act: (optional) Activation function for the value transform.\n    attention_probs_dropout_prob: (optional) float. Dropout probability of the\n      attention probabilities.\n    initializer_range: float. Range of the weight initializer.\n    do_return_2d_tensor: bool. If True, the output will be of shape [batch_size\n      * from_seq_length, num_attention_heads * size_per_head]. If False, the\n      output will be of shape [batch_size, from_seq_length, num_attention_heads\n      * size_per_head].\n    batch_size: (Optional) int. If the input is 2D, this might be the batch size\n      of the 3D version of the `from_tensor` and `to_tensor`.\n    from_seq_length: (Optional) If the input is 2D, this might be the seq length\n      of the 3D version of the `from_tensor`.\n    to_seq_length: (Optional) If the input is 2D, this might be the seq length\n      of the 3D version of the `to_tensor`.\n\n  Returns:\n    float Tensor of shape [batch_size, from_seq_length,\n      num_attention_heads * size_per_head]. (If `do_return_2d_tensor` is\n      true, this will be of shape [batch_size * from_seq_length,\n      num_attention_heads * size_per_head]).\n\n  Raises:\n    ValueError: Any of the arguments or tensor shapes are invalid.\n  \"\"\"\n\n  def transpose_for_scores(input_tensor, batch_size, num_attention_heads,\n                           seq_length, width):\n    output_tensor = tf.reshape(\n        input_tensor, [batch_size, seq_length, num_attention_heads, width])\n\n    output_tensor = tf.transpose(output_tensor, [0, 2, 1, 3])\n    return output_tensor\n\n  from_shape = get_shape_list(from_tensor, expected_rank=[2, 3])\n  to_shape = get_shape_list(to_tensor, expected_rank=[2, 3])\n\n  if len(from_shape) != len(to_shape):\n    raise ValueError(\n        \"The rank of `from_tensor` must match the rank of `to_tensor`.\")\n\n  if len(from_shape) == 3:\n    batch_size = from_shape[0]\n    from_seq_length = from_shape[1]\n    to_seq_length = to_shape[1]\n  elif len(from_shape) == 2:\n    if (batch_size is None or from_seq_length is None or to_seq_length is None):\n      raise ValueError(\n          \"When passing in rank 2 tensors to attention_layer, the values \"\n          \"for `batch_size`, `from_seq_length`, and `to_seq_length` \"\n          \"must all be specified.\")\n\n  # Scalar dimensions referenced here:\n  #   B = batch size (number of sequences)\n  #   F = `from_tensor` sequence length\n  #   T = `to_tensor` sequence length\n  #   N = `num_attention_heads`\n  #   H = `size_per_head`\n\n  from_tensor_2d = reshape_to_matrix(from_tensor)\n  to_tensor_2d = reshape_to_matrix(to_tensor)\n\n  # `query_layer` = [B*F, N*H]\n  query_layer = tf.layers.dense(\n      from_tensor_2d,\n      num_attention_heads * size_per_head,\n      activation=query_act,\n      name=\"query\",\n      kernel_initializer=create_initializer(initializer_range))\n\n  # `key_layer` = [B*T, N*H]\n  key_layer = tf.layers.dense(\n      to_tensor_2d,\n      num_attention_heads * size_per_head,\n      activation=key_act,\n      name=\"key\",\n      kernel_initializer=create_initializer(initializer_range))\n\n  # `value_layer` = [B*T, N*H]\n  value_layer = tf.layers.dense(\n      to_tensor_2d,\n      num_attention_heads * size_per_head,\n      activation=value_act,\n      name=\"value\",\n      kernel_initializer=create_initializer(initializer_range))\n\n  # `query_layer` = [B, N, F, H]\n  query_layer = transpose_for_scores(query_layer, batch_size,\n                                     num_attention_heads, from_seq_length,\n                                     size_per_head)\n\n  # `key_layer` = [B, N, T, H]\n  key_layer = transpose_for_scores(key_layer, batch_size, num_attention_heads,\n                                   to_seq_length, size_per_head)\n\n  # Take the dot product between \"query\" and \"key\" to get the raw\n  # attention scores.\n  # `attention_scores` = [B, N, F, T]\n  attention_scores = tf.matmul(query_layer, key_layer, transpose_b=True)\n  attention_scores = tf.multiply(attention_scores,\n                                 1.0 / math.sqrt(float(size_per_head)))\n\n  if attention_mask is not None:\n    # `attention_mask` = [B, 1, F, T]\n    attention_mask = tf.expand_dims(attention_mask, axis=[1])\n\n    # Since attention_mask is 1.0 for positions we want to attend and 0.0 for\n    # masked positions, this operation will create a tensor which is 0.0 for\n    # positions we want to attend and -10000.0 for masked positions.\n    adder = (1.0 - tf.cast(attention_mask, tf.float32)) * -10000.0\n\n    # Since we are adding it to the raw scores before the softmax, this is\n    # effectively the same as removing these entirely.\n    attention_scores += adder\n\n  # Normalize the attention scores to probabilities.\n  # `attention_probs` = [B, N, F, T]\n  attention_probs = tf.nn.softmax(attention_scores)\n\n  # This is actually dropping out entire tokens to attend to, which might\n  # seem a bit unusual, but is taken from the original Transformer paper.\n  attention_probs = dropout(attention_probs, attention_probs_dropout_prob)\n\n  # `value_layer` = [B, T, N, H]\n  value_layer = tf.reshape(\n      value_layer,\n      [batch_size, to_seq_length, num_attention_heads, size_per_head])\n\n  # `value_layer` = [B, N, T, H]\n  value_layer = tf.transpose(value_layer, [0, 2, 1, 3])\n\n  # `context_layer` = [B, N, F, H]\n  context_layer = tf.matmul(attention_probs, value_layer)\n\n  # `context_layer` = [B, F, N, H]\n  context_layer = tf.transpose(context_layer, [0, 2, 1, 3])\n\n  if do_return_2d_tensor:\n    # `context_layer` = [B*F, N*V]\n    context_layer = tf.reshape(\n        context_layer,\n        [batch_size * from_seq_length, num_attention_heads * size_per_head])\n  else:\n    # `context_layer` = [B, F, N*V]\n    context_layer = tf.reshape(\n        context_layer,\n        [batch_size, from_seq_length, num_attention_heads * size_per_head])\n\n  return context_layer\n\n\ndef transformer_model(input_tensor,\n                      attention_mask=None,\n                      hidden_size=768,\n                      num_hidden_layers=12,\n                      num_attention_heads=12,\n                      intermediate_size=3072,\n                      intermediate_act_fn=gelu,\n                      hidden_dropout_prob=0.1,\n                      attention_probs_dropout_prob=0.1,\n                      initializer_range=0.02,\n                      do_return_all_layers=False):\n  \"\"\"Multi-headed, multi-layer Transformer from \"Attention is All You Need\".\n\n  This is almost an exact implementation of the original Transformer encoder.\n\n  See the original paper:\n  https://arxiv.org/abs/1706.03762\n\n  Also see:\n  https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/transformer.py\n\n  Args:\n    input_tensor: float Tensor of shape [batch_size, seq_length, hidden_size].\n    attention_mask: (optional) int32 Tensor of shape [batch_size, seq_length,\n      seq_length], with 1 for positions that can be attended to and 0 in\n      positions that should not be.\n    hidden_size: int. Hidden size of the Transformer.\n    num_hidden_layers: int. Number of layers (blocks) in the Transformer.\n    num_attention_heads: int. Number of attention heads in the Transformer.\n    intermediate_size: int. The size of the \"intermediate\" (a.k.a., feed\n      forward) layer.\n    intermediate_act_fn: function. The non-linear activation function to apply\n      to the output of the intermediate/feed-forward layer.\n    hidden_dropout_prob: float. Dropout probability for the hidden layers.\n    attention_probs_dropout_prob: float. Dropout probability of the attention\n      probabilities.\n    initializer_range: float. Range of the initializer (stddev of truncated\n      normal).\n    do_return_all_layers: Whether to also return all layers or just the final\n      layer.\n\n  Returns:\n    float Tensor of shape [batch_size, seq_length, hidden_size], the final\n    hidden layer of the Transformer.\n\n  Raises:\n    ValueError: A Tensor shape or parameter is invalid.\n  \"\"\"\n  if hidden_size % num_attention_heads != 0:\n    raise ValueError(\n        \"The hidden size (%d) is not a multiple of the number of attention \"\n        \"heads (%d)\" % (hidden_size, num_attention_heads))\n\n  attention_head_size = int(hidden_size / num_attention_heads)\n  input_shape = get_shape_list(input_tensor, expected_rank=3)\n  batch_size = input_shape[0]\n  seq_length = input_shape[1]\n  input_width = input_shape[2]\n\n  # The Transformer performs sum residuals on all layers so the input needs\n  # to be the same as the hidden size.\n  if input_width != hidden_size:\n    raise ValueError(\"The width of the input tensor (%d) != hidden size (%d)\" %\n                     (input_width, hidden_size))\n\n  # We keep the representation as a 2D tensor to avoid re-shaping it back and\n  # forth from a 3D tensor to a 2D tensor. Re-shapes are normally free on\n  # the GPU/CPU but may not be free on the TPU, so we want to minimize them to\n  # help the optimizer.\n  prev_output = reshape_to_matrix(input_tensor)\n\n  all_layer_outputs = []\n  for layer_idx in range(num_hidden_layers):\n    with tf.variable_scope(\"layer_%d\" % layer_idx):\n      layer_input = prev_output\n\n      with tf.variable_scope(\"attention\"):\n        attention_heads = []\n        with tf.variable_scope(\"self\"):\n          attention_head = attention_layer(\n              from_tensor=layer_input,\n              to_tensor=layer_input,\n              attention_mask=attention_mask,\n              num_attention_heads=num_attention_heads,\n              size_per_head=attention_head_size,\n              attention_probs_dropout_prob=attention_probs_dropout_prob,\n              initializer_range=initializer_range,\n              do_return_2d_tensor=True,\n              batch_size=batch_size,\n              from_seq_length=seq_length,\n              to_seq_length=seq_length)\n          attention_heads.append(attention_head)\n\n        attention_output = None\n        if len(attention_heads) == 1:\n          attention_output = attention_heads[0]\n        else:\n          # In the case where we have other sequences, we just concatenate\n          # them to the self-attention head before the projection.\n          attention_output = tf.concat(attention_heads, axis=-1)\n\n        # Run a linear projection of `hidden_size` then add a residual\n        # with `layer_input`.\n        with tf.variable_scope(\"output\"):\n          attention_output = tf.layers.dense(\n              attention_output,\n              hidden_size,\n              kernel_initializer=create_initializer(initializer_range))\n          attention_output = dropout(attention_output, hidden_dropout_prob)\n          attention_output = layer_norm(attention_output + layer_input)\n\n      # The activation is only applied to the \"intermediate\" hidden layer.\n      with tf.variable_scope(\"intermediate\"):\n        intermediate_output = tf.layers.dense(\n            attention_output,\n            intermediate_size,\n            activation=intermediate_act_fn,\n            kernel_initializer=create_initializer(initializer_range))\n\n      # Down-project back to `hidden_size` then add the residual.\n      with tf.variable_scope(\"output\"):\n        layer_output = tf.layers.dense(\n            intermediate_output,\n            hidden_size,\n            kernel_initializer=create_initializer(initializer_range))\n        layer_output = dropout(layer_output, hidden_dropout_prob)\n        layer_output = layer_norm(layer_output + attention_output)\n        prev_output = layer_output\n        all_layer_outputs.append(layer_output)\n\n  if do_return_all_layers:\n    final_outputs = []\n    for layer_output in all_layer_outputs:\n      final_output = reshape_from_matrix(layer_output, input_shape)\n      final_outputs.append(final_output)\n    return final_outputs\n  else:\n    final_output = reshape_from_matrix(prev_output, input_shape)\n    return final_output\n\n\ndef get_shape_list(tensor, expected_rank=None, name=None):\n  \"\"\"Returns a list of the shape of tensor, preferring static dimensions.\n\n  Args:\n    tensor: A tf.Tensor object to find the shape of.\n    expected_rank: (optional) int. The expected rank of `tensor`. If this is\n      specified and the `tensor` has a different rank, and exception will be\n      thrown.\n    name: Optional name of the tensor for the error message.\n\n  Returns:\n    A list of dimensions of the shape of tensor. All static dimensions will\n    be returned as python integers, and dynamic dimensions will be returned\n    as tf.Tensor scalars.\n  \"\"\"\n  if name is None:\n    name = tensor.name\n\n  if expected_rank is not None:\n    assert_rank(tensor, expected_rank, name)\n\n  shape = tensor.shape.as_list()\n\n  non_static_indexes = []\n  for (index, dim) in enumerate(shape):\n    if dim is None:\n      non_static_indexes.append(index)\n\n  if not non_static_indexes:\n    return shape\n\n  dyn_shape = tf.shape(tensor)\n  for index in non_static_indexes:\n    shape[index] = dyn_shape[index]\n  return shape\n\n\ndef reshape_to_matrix(input_tensor):\n  \"\"\"Reshapes a >= rank 2 tensor to a rank 2 tensor (i.e., a matrix).\"\"\"\n  ndims = input_tensor.shape.ndims\n  if ndims < 2:\n    raise ValueError(\"Input tensor must have at least rank 2. Shape = %s\" %\n                     (input_tensor.shape))\n  if ndims == 2:\n    return input_tensor\n\n  width = input_tensor.shape[-1]\n  output_tensor = tf.reshape(input_tensor, [-1, width])\n  return output_tensor\n\n\ndef reshape_from_matrix(output_tensor, orig_shape_list):\n  \"\"\"Reshapes a rank 2 tensor back to its original rank >= 2 tensor.\"\"\"\n  if len(orig_shape_list) == 2:\n    return output_tensor\n\n  output_shape = get_shape_list(output_tensor)\n\n  orig_dims = orig_shape_list[0:-1]\n  width = output_shape[-1]\n\n  return tf.reshape(output_tensor, orig_dims + [width])\n\n\ndef assert_rank(tensor, expected_rank, name=None):\n  \"\"\"Raises an exception if the tensor rank is not of the expected rank.\n\n  Args:\n    tensor: A tf.Tensor to check the rank of.\n    expected_rank: Python integer or list of integers, expected rank.\n    name: Optional name of the tensor for the error message.\n\n  Raises:\n    ValueError: If the expected shape doesn't match the actual shape.\n  \"\"\"\n  if name is None:\n    name = tensor.name\n\n  expected_rank_dict = {}\n  if isinstance(expected_rank, six.integer_types):\n    expected_rank_dict[expected_rank] = True\n  else:\n    for x in expected_rank:\n      expected_rank_dict[x] = True\n\n  actual_rank = tensor.shape.ndims\n  if actual_rank not in expected_rank_dict:\n    scope_name = tf.get_variable_scope().name\n    raise ValueError(\n        \"For the tensor `%s` in scope `%s`, the actual rank \"\n        \"`%d` (shape = %s) is not equal to the expected rank `%s`\" %\n        (name, scope_name, actual_rank, str(tensor.shape), str(expected_rank)))\n"
  },
  {
    "path": "third/bert/modeling_test.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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.\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport json\nimport random\nimport re\n\nimport modeling\nimport six\nimport tensorflow as tf\n\n\nclass BertModelTest(tf.test.TestCase):\n\n  class BertModelTester(object):\n\n    def __init__(self,\n                 parent,\n                 batch_size=13,\n                 seq_length=7,\n                 is_training=True,\n                 use_input_mask=True,\n                 use_token_type_ids=True,\n                 vocab_size=99,\n                 hidden_size=32,\n                 num_hidden_layers=5,\n                 num_attention_heads=4,\n                 intermediate_size=37,\n                 hidden_act=\"gelu\",\n                 hidden_dropout_prob=0.1,\n                 attention_probs_dropout_prob=0.1,\n                 max_position_embeddings=512,\n                 type_vocab_size=16,\n                 initializer_range=0.02,\n                 scope=None):\n      self.parent = parent\n      self.batch_size = batch_size\n      self.seq_length = seq_length\n      self.is_training = is_training\n      self.use_input_mask = use_input_mask\n      self.use_token_type_ids = use_token_type_ids\n      self.vocab_size = vocab_size\n      self.hidden_size = hidden_size\n      self.num_hidden_layers = num_hidden_layers\n      self.num_attention_heads = num_attention_heads\n      self.intermediate_size = intermediate_size\n      self.hidden_act = hidden_act\n      self.hidden_dropout_prob = hidden_dropout_prob\n      self.attention_probs_dropout_prob = attention_probs_dropout_prob\n      self.max_position_embeddings = max_position_embeddings\n      self.type_vocab_size = type_vocab_size\n      self.initializer_range = initializer_range\n      self.scope = scope\n\n    def create_model(self):\n      input_ids = BertModelTest.ids_tensor([self.batch_size, self.seq_length],\n                                           self.vocab_size)\n\n      input_mask = None\n      if self.use_input_mask:\n        input_mask = BertModelTest.ids_tensor(\n            [self.batch_size, self.seq_length], vocab_size=2)\n\n      token_type_ids = None\n      if self.use_token_type_ids:\n        token_type_ids = BertModelTest.ids_tensor(\n            [self.batch_size, self.seq_length], self.type_vocab_size)\n\n      config = modeling.BertConfig(\n          vocab_size=self.vocab_size,\n          hidden_size=self.hidden_size,\n          num_hidden_layers=self.num_hidden_layers,\n          num_attention_heads=self.num_attention_heads,\n          intermediate_size=self.intermediate_size,\n          hidden_act=self.hidden_act,\n          hidden_dropout_prob=self.hidden_dropout_prob,\n          attention_probs_dropout_prob=self.attention_probs_dropout_prob,\n          max_position_embeddings=self.max_position_embeddings,\n          type_vocab_size=self.type_vocab_size,\n          initializer_range=self.initializer_range)\n\n      model = modeling.BertModel(\n          config=config,\n          is_training=self.is_training,\n          input_ids=input_ids,\n          input_mask=input_mask,\n          token_type_ids=token_type_ids,\n          scope=self.scope)\n\n      outputs = {\n          \"embedding_output\": model.get_embedding_output(),\n          \"sequence_output\": model.get_sequence_output(),\n          \"pooled_output\": model.get_pooled_output(),\n          \"all_encoder_layers\": model.get_all_encoder_layers(),\n      }\n      return outputs\n\n    def check_output(self, result):\n      self.parent.assertAllEqual(\n          result[\"embedding_output\"].shape,\n          [self.batch_size, self.seq_length, self.hidden_size])\n\n      self.parent.assertAllEqual(\n          result[\"sequence_output\"].shape,\n          [self.batch_size, self.seq_length, self.hidden_size])\n\n      self.parent.assertAllEqual(result[\"pooled_output\"].shape,\n                                 [self.batch_size, self.hidden_size])\n\n  def test_default(self):\n    self.run_tester(BertModelTest.BertModelTester(self))\n\n  def test_config_to_json_string(self):\n    config = modeling.BertConfig(vocab_size=99, hidden_size=37)\n    obj = json.loads(config.to_json_string())\n    self.assertEqual(obj[\"vocab_size\"], 99)\n    self.assertEqual(obj[\"hidden_size\"], 37)\n\n  def run_tester(self, tester):\n    with self.test_session() as sess:\n      ops = tester.create_model()\n      init_op = tf.group(tf.global_variables_initializer(),\n                         tf.local_variables_initializer())\n      sess.run(init_op)\n      output_result = sess.run(ops)\n      tester.check_output(output_result)\n\n      self.assert_all_tensors_reachable(sess, [init_op, ops])\n\n  @classmethod\n  def ids_tensor(cls, shape, vocab_size, rng=None, name=None):\n    \"\"\"Creates a random int32 tensor of the shape within the vocab size.\"\"\"\n    if rng is None:\n      rng = random.Random()\n\n    total_dims = 1\n    for dim in shape:\n      total_dims *= dim\n\n    values = []\n    for _ in range(total_dims):\n      values.append(rng.randint(0, vocab_size - 1))\n\n    return tf.constant(value=values, dtype=tf.int32, shape=shape, name=name)\n\n  def assert_all_tensors_reachable(self, sess, outputs):\n    \"\"\"Checks that all the tensors in the graph are reachable from outputs.\"\"\"\n    graph = sess.graph\n\n    ignore_strings = [\n        \"^.*/dilation_rate$\",\n        \"^.*/Tensordot/concat$\",\n        \"^.*/Tensordot/concat/axis$\",\n        \"^testing/.*$\",\n    ]\n\n    ignore_regexes = [re.compile(x) for x in ignore_strings]\n\n    unreachable = self.get_unreachable_ops(graph, outputs)\n    filtered_unreachable = []\n    for x in unreachable:\n      do_ignore = False\n      for r in ignore_regexes:\n        m = r.match(x.name)\n        if m is not None:\n          do_ignore = True\n      if do_ignore:\n        continue\n      filtered_unreachable.append(x)\n    unreachable = filtered_unreachable\n\n    self.assertEqual(\n        len(unreachable), 0, \"The following ops are unreachable: %s\" %\n        (\" \".join([x.name for x in unreachable])))\n\n  @classmethod\n  def get_unreachable_ops(cls, graph, outputs):\n    \"\"\"Finds all of the tensors in graph that are unreachable from outputs.\"\"\"\n    outputs = cls.flatten_recursive(outputs)\n    output_to_op = collections.defaultdict(list)\n    op_to_all = collections.defaultdict(list)\n    assign_out_to_in = collections.defaultdict(list)\n\n    for op in graph.get_operations():\n      for x in op.inputs:\n        op_to_all[op.name].append(x.name)\n      for y in op.outputs:\n        output_to_op[y.name].append(op.name)\n        op_to_all[op.name].append(y.name)\n      if str(op.type) == \"Assign\":\n        for y in op.outputs:\n          for x in op.inputs:\n            assign_out_to_in[y.name].append(x.name)\n\n    assign_groups = collections.defaultdict(list)\n    for out_name in assign_out_to_in.keys():\n      name_group = assign_out_to_in[out_name]\n      for n1 in name_group:\n        assign_groups[n1].append(out_name)\n        for n2 in name_group:\n          if n1 != n2:\n            assign_groups[n1].append(n2)\n\n    seen_tensors = {}\n    stack = [x.name for x in outputs]\n    while stack:\n      name = stack.pop()\n      if name in seen_tensors:\n        continue\n      seen_tensors[name] = True\n\n      if name in output_to_op:\n        for op_name in output_to_op[name]:\n          if op_name in op_to_all:\n            for input_name in op_to_all[op_name]:\n              if input_name not in stack:\n                stack.append(input_name)\n\n      expanded_names = []\n      if name in assign_groups:\n        for assign_name in assign_groups[name]:\n          expanded_names.append(assign_name)\n\n      for expanded_name in expanded_names:\n        if expanded_name not in stack:\n          stack.append(expanded_name)\n\n    unreachable_ops = []\n    for op in graph.get_operations():\n      is_unreachable = False\n      all_names = [x.name for x in op.inputs] + [x.name for x in op.outputs]\n      for name in all_names:\n        if name not in seen_tensors:\n          is_unreachable = True\n      if is_unreachable:\n        unreachable_ops.append(op)\n    return unreachable_ops\n\n  @classmethod\n  def flatten_recursive(cls, item):\n    \"\"\"Flattens (potentially nested) a tuple/dictionary/list to a list.\"\"\"\n    output = []\n    if isinstance(item, list):\n      output.extend(item)\n    elif isinstance(item, tuple):\n      output.extend(list(item))\n    elif isinstance(item, dict):\n      for (_, v) in six.iteritems(item):\n        output.append(v)\n    else:\n      return [item]\n\n    flat_output = []\n    for x in output:\n      flat_output.extend(cls.flatten_recursive(x))\n    return flat_output\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "third/bert/multilingual.md",
    "content": "## Models\n\nThere are two multilingual models currently available. We do not plan to release\nmore single-language models, but we may release `BERT-Large` versions of these\ntwo in the future:\n\n*   **[`BERT-Base, Multilingual`](https://storage.googleapis.com/bert_models/2018_11_03/multilingual_L-12_H-768_A-12.zip)**:\n    102 languages, 12-layer, 768-hidden, 12-heads, 110M parameters\n*   **[`BERT-Base, Chinese`](https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip)**:\n    Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M\n    parameters\n\nSee the [list of languages](#list-of-languages) that the Multilingual model\nsupports. The Multilingual model does include Chinese (and English), but if your\nfine-tuning data is Chinese-only, then the Chinese model will likely produce\nbetter results.\n\n## Results\n\nTo evaluate these systems, we use the\n[XNLI dataset](https://github.com/facebookresearch/XNLI) dataset, which is a\nversion of [MultiNLI](https://www.nyu.edu/projects/bowman/multinli/) where the\ndev and test sets have been translated (by humans) into 15 languages. Note that\nthe training set was *machine* translated (we used the translations provided by\nXNLI, not Google NMT). For clarity, we only report on 6 languages below:\n\n<!-- mdformat off(no table) -->\n\n| System                          | English  | Chinese  | Spanish  | German   | Arabic   | Urdu     |\n| ------------------------------- | -------- | -------- | -------- | -------- | -------- | -------- |\n| XNLI Baseline - Translate Train | 73.7     | 67.0     | 68.8     | 66.5     | 65.8     | 56.6     |\n| XNLI Baseline - Translate Test  | 73.7     | 68.3     | 70.7     | 68.7     | 66.8     | 59.3     |\n| BERT -Translate Train           | **81.4** | **74.2** | **77.3** | **75.2** | **70.5** | 61.7     |\n| BERT - Translate Test           | 81.4     | 70.1     | 74.9     | 74.4     | 70.4     | **62.1** |\n| BERT - Zero Shot                | 81.4     | 63.8     | 74.3     | 70.5     | 62.1     | 58.3     |\n\n<!-- mdformat on -->\n\nThe first two rows are baselines from the XNLI paper and the last three rows are\nour results with BERT.\n\n**Translate Train** means that the MultiNLI training set was machine translated\nfrom English into the foreign language. So training and evaluation were both\ndone in the foreign language. Unfortunately, training was done on\nmachine-translated data, so it is impossible to quantify how much of the lower\naccuracy (compared to English) is due to the quality of the machine translation\nvs. the quality of the pre-trained model.\n\n**Translate Test** means that the XNLI test set was machine translated from the\nforeign language into English. So training and evaluation were both done on\nEnglish. However, test evaluation was done on machine-translated English, so the\naccuracy depends on the quality of the machine translation system.\n\n**Zero Shot** means that the Multilingual BERT system was fine-tuned on English\nMultiNLI, and then evaluated on the foreign language XNLI test. In this case,\nmachine translation was not involved at all in either the pre-training or\nfine-tuning.\n\nNote that the English result is worse than the 84.2 MultiNLI baseline because\nthis training used Multilingual BERT rather than English-only BERT. This implies\nthat for high-resource languages, the Multilingual model is somewhat worse than\na single-language model. However, it is not feasible for us to train and\nmaintain dozens of single-language model. Therefore, if your goal is to maximize\nperformance with a language other than English or Chinese, you might find it\nbeneficial to run pre-training for additional steps starting from our\nMultilingual model on data from your language of interest.\n\nHere is a comparison of training Chinese models with the Multilingual\n`BERT-Base` and Chinese-only `BERT-Base`:\n\nSystem                  | Chinese\n----------------------- | -------\nXNLI Baseline           | 67.0\nBERT Multilingual Model | 74.2\nBERT Chinese-only Model | 77.2\n\nSimilar to English, the single-language model does 3% better than the\nMultilingual model.\n\n## Fine-tuning Example\n\nThe multilingual model does **not** require any special consideration or API\nchanges. We did update the implementation of `BasicTokenizer` in\n`tokenization.py` to support Chinese character tokenization, so please update if\nyou forked it. However, we did not change the tokenization API.\n\nTo test the new models, we did modify `run_classifier.py` to add support for the\n[XNLI dataset](https://github.com/facebookresearch/XNLI). This is a 15-language\nversion of MultiNLI where the dev/test sets have been human-translated, and the\ntraining set has been machine-translated.\n\nTo run the fine-tuning code, please download the\n[XNLI dev/test set](https://s3.amazonaws.com/xnli/XNLI-1.0.zip) and the\n[XNLI machine-translated training set](https://s3.amazonaws.com/xnli/XNLI-MT-1.0.zip)\nand then unpack both .zip files into some directory `$XNLI_DIR`.\n\nTo run fine-tuning on XNLI. The language is hard-coded into `run_classifier.py`\n(Chinese by default), so please modify `XnliProcessor` if you want to run on\nanother language.\n\nThis is a large dataset, so this will training will take a few hours on a GPU\n(or about 30 minutes on a Cloud TPU). To run an experiment quickly for\ndebugging, just set `num_train_epochs` to a small value like `0.1`.\n\n```shell\nexport BERT_BASE_DIR=/path/to/bert/chinese_L-12_H-768_A-12 # or multilingual_L-12_H-768_A-12\nexport XNLI_DIR=/path/to/xnli\n\npython run_classifier.py \\\n  --task_name=XNLI \\\n  --do_train=true \\\n  --do_eval=true \\\n  --data_dir=$XNLI_DIR \\\n  --vocab_file=$BERT_BASE_DIR/vocab.txt \\\n  --bert_config_file=$BERT_BASE_DIR/bert_config.json \\\n  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \\\n  --max_seq_length=128 \\\n  --train_batch_size=32 \\\n  --learning_rate=5e-5 \\\n  --num_train_epochs=2.0 \\\n  --output_dir=/tmp/xnli_output/\n```\n\nWith the Chinese-only model, the results should look something like this:\n\n```\n ***** Eval results *****\neval_accuracy = 0.774116\neval_loss = 0.83554\nglobal_step = 24543\nloss = 0.74603\n```\n\n## Details\n\n### Data Source and Sampling\n\nThe languages chosen were the\n[top 100 languages with the largest Wikipedias](https://meta.wikimedia.org/wiki/List_of_Wikipedias).\nThe entire Wikipedia dump for each language (excluding user and talk pages) was\ntaken as the training data for each language\n\nHowever, the size of the Wikipedia for a given language varies greatly, and\ntherefore low-resource languages may be \"under-represented\" in terms of the\nneural network model (under the assumption that languages are \"competing\" for\nlimited model capacity to some extent).\n\nHowever, the size of a Wikipedia also correlates with the number of speakers of\na language, and we also don't want to overfit the model by performing thousands\nof epochs over a tiny Wikipedia for a particular language.\n\nTo balance these two factors, we performed exponentially smoothed weighting of\nthe data during pre-training data creation (and WordPiece vocab creation). In\nother words, let's say that the probability of a language is *P(L)*, e.g.,\n*P(English) = 0.21* means that after concatenating all of the Wikipedias\ntogether, 21% of our data is English. We exponentiate each probability by some\nfactor *S* and then re-normalize, and sample from that distribution. In our case\nwe use *S=0.7*. So, high-resource languages like English will be under-sampled,\nand low-resource languages like Icelandic will be over-sampled. E.g., in the\noriginal distribution English would be sampled 1000x more than Icelandic, but\nafter smoothing it's only sampled 100x more.\n\n### Tokenization\n\nFor tokenization, we use a 110k shared WordPiece vocabulary. The word counts are\nweighted the same way as the data, so low-resource languages are upweighted by\nsome factor. We intentionally do *not* use any marker to denote the input\nlanguage (so that zero-shot training can work).\n\nBecause Chinese does not have whitespace characters, we add spaces around every\ncharacter in the\n[CJK Unicode range](https://en.wikipedia.org/wiki/CJK_Unified_Ideographs_\\(Unicode_block\\))\nbefore applying WordPiece. This means that Chinese is effectively\ncharacter-tokenized. Note that the CJK Unicode block only includes\nChinese-origin characters and does *not* include Hangul Korean or\nKatakana/Hiragana Japanese, which are tokenized with whitespace+WordPiece like\nall other languages.\n\nFor all other languages, we apply the\n[same recipe as English](https://github.com/google-research/bert#tokenization):\n(a) lower casing+accent removal, (b) punctuation splitting, (c) whitespace\ntokenization. We understand that accent markers have substantial meaning in some\nlanguages, but felt that the benefits of reducing the effective vocabulary make\nup for this. Generally the strong contextual models of BERT should make up for\nany ambiguity introduced by stripping accent markers.\n\n### List of Languages\n\nThe multilingual model supports the following languages. These languages were\nchosen because they are the top 100 languages with the largest Wikipedias:\n\n*   Afrikaans\n*   Albanian\n*   Arabic\n*   Aragonese\n*   Armenian\n*   Asturian\n*   Azerbaijani\n*   Bashkir\n*   Basque\n*   Bavarian\n*   Belarusian\n*   Bengali\n*   Bishnupriya Manipuri\n*   Bosnian\n*   Breton\n*   Bulgarian\n*   Burmese\n*   Catalan\n*   Cebuano\n*   Chechen\n*   Chinese (Simplified)\n*   Chinese (Traditional)\n*   Chuvash\n*   Croatian\n*   Czech\n*   Danish\n*   Dutch\n*   English\n*   Estonian\n*   Finnish\n*   French\n*   Galician\n*   Georgian\n*   German\n*   Greek\n*   Gujarati\n*   Haitian\n*   Hebrew\n*   Hindi\n*   Hungarian\n*   Icelandic\n*   Ido\n*   Indonesian\n*   Irish\n*   Italian\n*   Japanese\n*   Javanese\n*   Kannada\n*   Kazakh\n*   Kirghiz\n*   Korean\n*   Latin\n*   Latvian\n*   Lithuanian\n*   Lombard\n*   Low Saxon\n*   Luxembourgish\n*   Macedonian\n*   Malagasy\n*   Malay\n*   Malayalam\n*   Marathi\n*   Minangkabau\n*   Nepali\n*   Newar\n*   Norwegian (Bokmal)\n*   Norwegian (Nynorsk)\n*   Occitan\n*   Persian (Farsi)\n*   Piedmontese\n*   Polish\n*   Portuguese\n*   Punjabi\n*   Romanian\n*   Russian\n*   Scots\n*   Serbian\n*   Serbo-Croatian\n*   Sicilian\n*   Slovak\n*   Slovenian\n*   South Azerbaijani\n*   Spanish\n*   Sundanese\n*   Swahili\n*   Swedish\n*   Tagalog\n*   Tajik\n*   Tamil\n*   Tatar\n*   Telugu\n*   Turkish\n*   Ukrainian\n*   Urdu\n*   Uzbek\n*   Vietnamese\n*   Volapük\n*   Waray-Waray\n*   Welsh\n*   West\n*   Western Punjabi\n*   Yoruba\n\nThe only language which we had to unfortunately exclude was Thai, since it is\nthe only language (other than Chinese) that does not use whitespace to delimit\nwords, and it has too many characters-per-word to use character-based\ntokenization. Our WordPiece algorithm is quadratic with respect to the size of\nthe input token so very long character strings do not work with it.\n"
  },
  {
    "path": "third/bert/optimization.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Functions and classes related to optimization (weight updates).\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport re\nimport tensorflow as tf\n\n\ndef create_optimizer(loss, init_lr, num_train_steps, num_warmup_steps, min_learning_rate=0., use_tpu=False):\n  \"\"\"Creates an optimizer training op.\"\"\"\n  global_step = tf.train.get_or_create_global_step()\n\n  learning_rate = tf.constant(value=init_lr, shape=[], dtype=tf.float32)\n\n  # Implements linear decay of the learning rate.\n  learning_rate = tf.train.polynomial_decay(\n      learning_rate,\n      global_step,\n      num_train_steps,\n      end_learning_rate=min_learning_rate,\n      power=1.0,\n      cycle=False)\n\n  min_learning_rate = tf.convert_to_tensor(min_learning_rate, dtype=tf.float32)\n  learning_rate = tf.cond(learning_rate > min_learning_rate, lambda: learning_rate, lambda: min_learning_rate)\n\n  # Implements linear warmup. I.e., if global_step < num_warmup_steps, the\n  # learning rate will be `global_step/num_warmup_steps * init_lr`.\n  if num_warmup_steps:\n    global_steps_int = tf.cast(global_step, tf.int32)\n    warmup_steps_int = tf.constant(num_warmup_steps, dtype=tf.int32)\n\n    global_steps_float = tf.cast(global_steps_int, tf.float32)\n    warmup_steps_float = tf.cast(warmup_steps_int, tf.float32)\n\n    warmup_percent_done = global_steps_float / warmup_steps_float\n    warmup_learning_rate = init_lr * warmup_percent_done\n\n    is_warmup = tf.cast(global_steps_int < warmup_steps_int, tf.float32)\n    learning_rate = (\n        (1.0 - is_warmup) * learning_rate + is_warmup * warmup_learning_rate)\n\n  # chg modify\n  tf.add_to_collection('bert_learning_rate', learning_rate)\n  \n  # It is recommended that you use this optimizer for fine tuning, since this\n  # is how the model was trained (note that the Adam m/v variables are NOT\n  # loaded from init_checkpoint.)\n  optimizer = AdamWeightDecayOptimizer(\n      learning_rate=learning_rate,\n      weight_decay_rate=0.01,\n      beta_1=0.9,\n      beta_2=0.999,\n      epsilon=1e-6,\n      exclude_from_weight_decay=[\"LayerNorm\", \"layer_norm\", \"bias\"])\n\n  if use_tpu:\n    optimizer = tf.contrib.tpu.CrossShardOptimizer(optimizer)\n\n  tvars = tf.trainable_variables()\n  grads = tf.gradients(loss, tvars)\n\n  # This is how the model was pre-trained.\n  (grads, _) = tf.clip_by_global_norm(grads, clip_norm=1.0)\n\n  train_op = optimizer.apply_gradients(\n      zip(grads, tvars), global_step=global_step)\n\n  new_global_step = global_step + 1\n  train_op = tf.group(train_op, [global_step.assign(new_global_step)])\n  return train_op\n\n\nclass AdamWeightDecayOptimizer(tf.train.Optimizer):\n  \"\"\"A basic Adam optimizer that includes \"correct\" L2 weight decay.\"\"\"\n\n  def __init__(self,\n               learning_rate,\n               weight_decay_rate=0.0,\n               beta_1=0.9,\n               beta_2=0.999,\n               epsilon=1e-6,\n               exclude_from_weight_decay=None,\n               name=\"AdamWeightDecayOptimizer\"):\n    \"\"\"Constructs a AdamWeightDecayOptimizer.\"\"\"\n    super(AdamWeightDecayOptimizer, self).__init__(False, name)\n\n    self.learning_rate = learning_rate\n    self.weight_decay_rate = weight_decay_rate\n    self.beta_1 = beta_1\n    self.beta_2 = beta_2\n    self.epsilon = epsilon\n    self.exclude_from_weight_decay = exclude_from_weight_decay\n\n  def apply_gradients(self, grads_and_vars, global_step=None, name=None):\n    \"\"\"See base class.\"\"\"\n    assignments = []\n    for (grad, param) in grads_and_vars:\n      if grad is None or param is None:\n        continue\n\n      param_name = self._get_variable_name(param.name)\n\n      m = tf.get_variable(\n          name=param_name + \"/adam_m\",\n          shape=param.shape.as_list(),\n          dtype=tf.float32,\n          trainable=False,\n          initializer=tf.zeros_initializer())\n      v = tf.get_variable(\n          name=param_name + \"/adam_v\",\n          shape=param.shape.as_list(),\n          dtype=tf.float32,\n          trainable=False,\n          initializer=tf.zeros_initializer())\n\n      # Standard Adam update.\n      next_m = (\n          tf.multiply(self.beta_1, m) + tf.multiply(1.0 - self.beta_1, grad))\n      next_v = (\n          tf.multiply(self.beta_2, v) + tf.multiply(1.0 - self.beta_2,\n                                                    tf.square(grad)))\n\n      update = next_m / (tf.sqrt(next_v) + self.epsilon)\n\n      # Just adding the square of the weights to the loss function is *not*\n      # the correct way of using L2 regularization/weight decay with Adam,\n      # since that will interact with the m and v parameters in strange ways.\n      #\n      # Instead we want ot decay the weights in a manner that doesn't interact\n      # with the m/v parameters. This is equivalent to adding the square\n      # of the weights to the loss with plain (non-momentum) SGD.\n      if self._do_use_weight_decay(param_name):\n        update += self.weight_decay_rate * param\n\n      update_with_lr = self.learning_rate * update\n\n      next_param = param - update_with_lr\n\n      assignments.extend(\n          [param.assign(next_param),\n           m.assign(next_m),\n           v.assign(next_v)])\n    return tf.group(*assignments, name=name)\n\n  def _do_use_weight_decay(self, param_name):\n    \"\"\"Whether to use L2 weight decay for `param_name`.\"\"\"\n    if not self.weight_decay_rate:\n      return False\n    if self.exclude_from_weight_decay:\n      for r in self.exclude_from_weight_decay:\n        if re.search(r, param_name) is not None:\n          return False\n    return True\n\n  def _get_variable_name(self, param_name):\n    \"\"\"Get the variable name from the tensor name.\"\"\"\n    m = re.match(\"^(.*):\\\\d+$\", param_name)\n    if m is not None:\n      param_name = m.group(1)\n    return param_name\n"
  },
  {
    "path": "third/bert/optimization_test.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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.\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport optimization\nimport tensorflow as tf\n\n\nclass OptimizationTest(tf.test.TestCase):\n\n  def test_adam(self):\n    with self.test_session() as sess:\n      w = tf.get_variable(\n          \"w\",\n          shape=[3],\n          initializer=tf.constant_initializer([0.1, -0.2, -0.1]))\n      x = tf.constant([0.4, 0.2, -0.5])\n      loss = tf.reduce_mean(tf.square(x - w))\n      tvars = tf.trainable_variables()\n      grads = tf.gradients(loss, tvars)\n      global_step = tf.train.get_or_create_global_step()\n      optimizer = optimization.AdamWeightDecayOptimizer(learning_rate=0.2)\n      train_op = optimizer.apply_gradients(zip(grads, tvars), global_step)\n      init_op = tf.group(tf.global_variables_initializer(),\n                         tf.local_variables_initializer())\n      sess.run(init_op)\n      for _ in range(100):\n        sess.run(train_op)\n      w_np = sess.run(w)\n      self.assertAllClose(w_np.flat, [0.4, 0.2, -0.5], rtol=1e-2, atol=1e-2)\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "third/bert/run-char.sh",
    "content": "BERT_BASE_DIR=/home/gezi/data/word-emb/chinese_L-12_H-768_A-12\npython /home/gezi/mine/wenzheng/third/bert/create_pretraining_data.py \\\n  --input_file=/home/gezi/data/my-embedding/bert-char/text.bert.small \\\n  --output_file=/home/gezi/data/my-embedding/bert-char/tfrecord \\\n  --vocab_file=$BERT_BASE_DIR/vocab.txt \\\n  --do_lower_case=True \\\n  --max_seq_length=128 \\\n  --max_predictions_per_seq=20 \\\n  --masked_lm_prob=0.15 \\\n  --random_seed=12345 \\\n  --dupe_factor=5\n"
  },
  {
    "path": "third/bert/run_classifier.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"BERT finetuning runner.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport csv\nimport os\nimport modeling\nimport optimization\nimport tokenization\nimport tensorflow as tf\n\nflags = tf.flags\n\nFLAGS = flags.FLAGS\n\n## Required parameters\nflags.DEFINE_string(\n    \"data_dir\", None,\n    \"The input data dir. Should contain the .tsv files (or other data files) \"\n    \"for the task.\")\n\nflags.DEFINE_string(\n    \"bert_config_file\", None,\n    \"The config json file corresponding to the pre-trained BERT model. \"\n    \"This specifies the model architecture.\")\n\nflags.DEFINE_string(\"task_name\", None, \"The name of the task to train.\")\n\nflags.DEFINE_string(\"vocab_file\", None,\n                    \"The vocabulary file that the BERT model was trained on.\")\n\nflags.DEFINE_string(\n    \"output_dir\", None,\n    \"The output directory where the model checkpoints will be written.\")\n\n## Other parameters\n\nflags.DEFINE_string(\n    \"init_checkpoint\", None,\n    \"Initial checkpoint (usually from a pre-trained BERT model).\")\n\nflags.DEFINE_bool(\n    \"do_lower_case\", True,\n    \"Whether to lower case the input text. Should be True for uncased \"\n    \"models and False for cased models.\")\n\nflags.DEFINE_integer(\n    \"max_seq_length\", 128,\n    \"The maximum total input sequence length after WordPiece tokenization. \"\n    \"Sequences longer than this will be truncated, and sequences shorter \"\n    \"than this will be padded.\")\n\nflags.DEFINE_bool(\"do_train\", False, \"Whether to run training.\")\n\nflags.DEFINE_bool(\"do_eval\", False, \"Whether to run eval on the dev set.\")\n\nflags.DEFINE_integer(\"train_batch_size\", 32, \"Total batch size for training.\")\n\nflags.DEFINE_integer(\"eval_batch_size\", 8, \"Total batch size for eval.\")\n\nflags.DEFINE_float(\"learning_rate\", 5e-5, \"The initial learning rate for Adam.\")\n\nflags.DEFINE_float(\"num_train_epochs\", 3.0,\n                   \"Total number of training epochs to perform.\")\n\nflags.DEFINE_float(\n    \"warmup_proportion\", 0.1,\n    \"Proportion of training to perform linear learning rate warmup for. \"\n    \"E.g., 0.1 = 10% of training.\")\n\nflags.DEFINE_integer(\"save_checkpoints_steps\", 1000,\n                     \"How often to save the model checkpoint.\")\n\nflags.DEFINE_integer(\"iterations_per_loop\", 1000,\n                     \"How many steps to make in each estimator call.\")\n\nflags.DEFINE_bool(\"use_tpu\", False, \"Whether to use TPU or GPU/CPU.\")\n\ntf.flags.DEFINE_string(\n    \"tpu_name\", None,\n    \"The Cloud TPU to use for training. This should be either the name \"\n    \"used when creating the Cloud TPU, or a grpc://ip.address.of.tpu:8470 \"\n    \"url.\")\n\ntf.flags.DEFINE_string(\n    \"tpu_zone\", None,\n    \"[Optional] GCE zone where the Cloud TPU is located in. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\ntf.flags.DEFINE_string(\n    \"gcp_project\", None,\n    \"[Optional] Project name for the Cloud TPU-enabled project. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\ntf.flags.DEFINE_string(\"master\", None, \"[Optional] TensorFlow master URL.\")\n\nflags.DEFINE_integer(\n    \"num_tpu_cores\", 8,\n    \"Only used if `use_tpu` is True. Total number of TPU cores to use.\")\n\n\nclass InputExample(object):\n  \"\"\"A single training/test example for simple sequence classification.\"\"\"\n\n  def __init__(self, guid, text_a, text_b=None, label=None):\n    \"\"\"Constructs a InputExample.\n\n    Args:\n      guid: Unique id for the example.\n      text_a: string. The untokenized text of the first sequence. For single\n        sequence tasks, only this sequence must be specified.\n      text_b: (Optional) string. The untokenized text of the second sequence.\n        Only must be specified for sequence pair tasks.\n      label: (Optional) string. The label of the example. This should be\n        specified for train and dev examples, but not for test examples.\n    \"\"\"\n    self.guid = guid\n    self.text_a = text_a\n    self.text_b = text_b\n    self.label = label\n\n\nclass InputFeatures(object):\n  \"\"\"A single set of features of data.\"\"\"\n\n  def __init__(self, input_ids, input_mask, segment_ids, label_id):\n    self.input_ids = input_ids\n    self.input_mask = input_mask\n    self.segment_ids = segment_ids\n    self.label_id = label_id\n\n\nclass DataProcessor(object):\n  \"\"\"Base class for data converters for sequence classification data sets.\"\"\"\n\n  def get_train_examples(self, data_dir):\n    \"\"\"Gets a collection of `InputExample`s for the train set.\"\"\"\n    raise NotImplementedError()\n\n  def get_dev_examples(self, data_dir):\n    \"\"\"Gets a collection of `InputExample`s for the dev set.\"\"\"\n    raise NotImplementedError()\n\n  def get_labels(self):\n    \"\"\"Gets the list of labels for this data set.\"\"\"\n    raise NotImplementedError()\n\n  @classmethod\n  def _read_tsv(cls, input_file, quotechar=None):\n    \"\"\"Reads a tab separated value file.\"\"\"\n    with tf.gfile.Open(input_file, \"r\") as f:\n      reader = csv.reader(f, delimiter=\"\\t\", quotechar=quotechar)\n      lines = []\n      for line in reader:\n        lines.append(line)\n      return lines\n\n\nclass XnliProcessor(DataProcessor):\n  \"\"\"Processor for the XNLI data set.\"\"\"\n\n  def __init__(self):\n    self.language = \"zh\"\n\n  def get_train_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    lines = self._read_tsv(\n        os.path.join(data_dir, \"multinli\",\n                     \"multinli.train.%s.tsv\" % self.language))\n    examples = []\n    for (i, line) in enumerate(lines):\n      if i == 0:\n        continue\n      guid = \"train-%d\" % (i)\n      text_a = tokenization.convert_to_unicode(line[0])\n      text_b = tokenization.convert_to_unicode(line[1])\n      label = tokenization.convert_to_unicode(line[2])\n      if label == tokenization.convert_to_unicode(\"contradictory\"):\n        label = tokenization.convert_to_unicode(\"contradiction\")\n      examples.append(\n          InputExample(guid=guid, text_a=text_a, text_b=text_b, label=label))\n    return examples\n\n  def get_dev_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    lines = self._read_tsv(os.path.join(data_dir, \"xnli.dev.tsv\"))\n    examples = []\n    for (i, line) in enumerate(lines):\n      if i == 0:\n        continue\n      guid = \"dev-%d\" % (i)\n      language = tokenization.convert_to_unicode(line[0])\n      if language != tokenization.convert_to_unicode(self.language):\n        continue\n      text_a = tokenization.convert_to_unicode(line[6])\n      text_b = tokenization.convert_to_unicode(line[7])\n      label = tokenization.convert_to_unicode(line[1])\n      examples.append(\n          InputExample(guid=guid, text_a=text_a, text_b=text_b, label=label))\n    return examples\n\n  def get_labels(self):\n    \"\"\"See base class.\"\"\"\n    return [\"contradiction\", \"entailment\", \"neutral\"]\n\n\nclass MnliProcessor(DataProcessor):\n  \"\"\"Processor for the MultiNLI data set (GLUE version).\"\"\"\n\n  def get_train_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    return self._create_examples(\n        self._read_tsv(os.path.join(data_dir, \"train.tsv\")), \"train\")\n\n  def get_dev_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    return self._create_examples(\n        self._read_tsv(os.path.join(data_dir, \"dev_matched.tsv\")),\n        \"dev_matched\")\n\n  def get_labels(self):\n    \"\"\"See base class.\"\"\"\n    return [\"contradiction\", \"entailment\", \"neutral\"]\n\n  def _create_examples(self, lines, set_type):\n    \"\"\"Creates examples for the training and dev sets.\"\"\"\n    examples = []\n    for (i, line) in enumerate(lines):\n      if i == 0:\n        continue\n      guid = \"%s-%s\" % (set_type, tokenization.convert_to_unicode(line[0]))\n      text_a = tokenization.convert_to_unicode(line[8])\n      text_b = tokenization.convert_to_unicode(line[9])\n      label = tokenization.convert_to_unicode(line[-1])\n      examples.append(\n          InputExample(guid=guid, text_a=text_a, text_b=text_b, label=label))\n    return examples\n\n\nclass MrpcProcessor(DataProcessor):\n  \"\"\"Processor for the MRPC data set (GLUE version).\"\"\"\n\n  def get_train_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    return self._create_examples(\n        self._read_tsv(os.path.join(data_dir, \"train.tsv\")), \"train\")\n\n  def get_dev_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    return self._create_examples(\n        self._read_tsv(os.path.join(data_dir, \"dev.tsv\")), \"dev\")\n\n  def get_labels(self):\n    \"\"\"See base class.\"\"\"\n    return [\"0\", \"1\"]\n\n  def _create_examples(self, lines, set_type):\n    \"\"\"Creates examples for the training and dev sets.\"\"\"\n    examples = []\n    for (i, line) in enumerate(lines):\n      if i == 0:\n        continue\n      guid = \"%s-%s\" % (set_type, i)\n      text_a = tokenization.convert_to_unicode(line[3])\n      text_b = tokenization.convert_to_unicode(line[4])\n      label = tokenization.convert_to_unicode(line[0])\n      examples.append(\n          InputExample(guid=guid, text_a=text_a, text_b=text_b, label=label))\n    return examples\n\n\nclass ColaProcessor(DataProcessor):\n  \"\"\"Processor for the CoLA data set (GLUE version).\"\"\"\n\n  def get_train_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    return self._create_examples(\n        self._read_tsv(os.path.join(data_dir, \"train.tsv\")), \"train\")\n\n  def get_dev_examples(self, data_dir):\n    \"\"\"See base class.\"\"\"\n    return self._create_examples(\n        self._read_tsv(os.path.join(data_dir, \"dev.tsv\")), \"dev\")\n\n  def get_labels(self):\n    \"\"\"See base class.\"\"\"\n    return [\"0\", \"1\"]\n\n  def _create_examples(self, lines, set_type):\n    \"\"\"Creates examples for the training and dev sets.\"\"\"\n    examples = []\n    for (i, line) in enumerate(lines):\n      guid = \"%s-%s\" % (set_type, i)\n      text_a = tokenization.convert_to_unicode(line[3])\n      label = tokenization.convert_to_unicode(line[1])\n      examples.append(\n          InputExample(guid=guid, text_a=text_a, text_b=None, label=label))\n    return examples\n\n\ndef convert_examples_to_features(examples, label_list, max_seq_length,\n                                 tokenizer, output_file):\n  \"\"\"Loads a data file into a list of `InputBatch`s.\"\"\"\n\n  label_map = {}\n  for (i, label) in enumerate(label_list):\n    label_map[label] = i\n\n  writer = tf.python_io.TFRecordWriter(output_file)\n\n  for (ex_index, example) in enumerate(examples):\n    tokens_a = tokenizer.tokenize(example.text_a)\n    if ex_index % 10000 == 0:\n      tf.logging.info(\"Writing example %d of %d\" % (ex_index, len(examples)))\n\n    tokens_b = None\n    if example.text_b:\n      tokens_b = tokenizer.tokenize(example.text_b)\n\n    if tokens_b:\n      # Modifies `tokens_a` and `tokens_b` in place so that the total\n      # length is less than the specified length.\n      # Account for [CLS], [SEP], [SEP] with \"- 3\"\n      _truncate_seq_pair(tokens_a, tokens_b, max_seq_length - 3)\n    else:\n      # Account for [CLS] and [SEP] with \"- 2\"\n      if len(tokens_a) > max_seq_length - 2:\n        tokens_a = tokens_a[0:(max_seq_length - 2)]\n\n    # The convention in BERT is:\n    # (a) For sequence pairs:\n    #  tokens:   [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP]\n    #  type_ids: 0     0  0    0    0     0       0 0     1  1  1  1   1 1\n    # (b) For single sequences:\n    #  tokens:   [CLS] the dog is hairy . [SEP]\n    #  type_ids: 0     0   0   0  0     0 0\n    #\n    # Where \"type_ids\" are used to indicate whether this is the first\n    # sequence or the second sequence. The embedding vectors for `type=0` and\n    # `type=1` were learned during pre-training and are added to the wordpiece\n    # embedding vector (and position vector). This is not *strictly* necessary\n    # since the [SEP] token unambiguously separates the sequences, but it makes\n    # it easier for the model to learn the concept of sequences.\n    #\n    # For classification tasks, the first vector (corresponding to [CLS]) is\n    # used as as the \"sentence vector\". Note that this only makes sense because\n    # the entire model is fine-tuned.\n    tokens = []\n    segment_ids = []\n    tokens.append(\"[CLS]\")\n    segment_ids.append(0)\n    for token in tokens_a:\n      tokens.append(token)\n      segment_ids.append(0)\n    tokens.append(\"[SEP]\")\n    segment_ids.append(0)\n\n    if tokens_b:\n      for token in tokens_b:\n        tokens.append(token)\n        segment_ids.append(1)\n      tokens.append(\"[SEP]\")\n      segment_ids.append(1)\n\n    input_ids = tokenizer.convert_tokens_to_ids(tokens)\n\n    # The mask has 1 for real tokens and 0 for padding tokens. Only real\n    # tokens are attended to.\n    input_mask = [1] * len(input_ids)\n\n    # Zero-pad up to the sequence length.\n    while len(input_ids) < max_seq_length:\n      input_ids.append(0)\n      input_mask.append(0)\n      segment_ids.append(0)\n\n    assert len(input_ids) == max_seq_length\n    assert len(input_mask) == max_seq_length\n    assert len(segment_ids) == max_seq_length\n\n    label_id = label_map[example.label]\n    if ex_index < 5:\n      tf.logging.info(\"*** Example ***\")\n      tf.logging.info(\"guid: %s\" % (example.guid))\n      tf.logging.info(\"tokens: %s\" % \" \".join(\n          [tokenization.printable_text(x) for x in tokens]))\n      tf.logging.info(\"input_ids: %s\" % \" \".join([str(x) for x in input_ids]))\n      tf.logging.info(\"input_mask: %s\" % \" \".join([str(x) for x in input_mask]))\n      tf.logging.info(\n          \"segment_ids: %s\" % \" \".join([str(x) for x in segment_ids]))\n      tf.logging.info(\"label: %s (id = %d)\" % (example.label, label_id))\n\n    def create_int_feature(values):\n      feature = tf.train.Feature(\n          int64_list=tf.train.Int64List(value=list(values)))\n      return feature\n\n    features = collections.OrderedDict()\n    features[\"input_ids\"] = create_int_feature(input_ids)\n    features[\"input_mask\"] = create_int_feature(input_mask)\n    features[\"segment_ids\"] = create_int_feature(segment_ids)\n    features[\"label_ids\"] = create_int_feature([label_id])\n\n    tf_example = tf.train.Example(features=tf.train.Features(feature=features))\n    writer.write(tf_example.SerializeToString())\n\n\ndef _truncate_seq_pair(tokens_a, tokens_b, max_length):\n  \"\"\"Truncates a sequence pair in place to the maximum length.\"\"\"\n\n  # This is a simple heuristic which will always truncate the longer sequence\n  # one token at a time. This makes more sense than truncating an equal percent\n  # of tokens from each, since if one sequence is very short then each token\n  # that's truncated likely contains more information than a longer sequence.\n  while True:\n    total_length = len(tokens_a) + len(tokens_b)\n    if total_length <= max_length:\n      break\n    if len(tokens_a) > len(tokens_b):\n      tokens_a.pop()\n    else:\n      tokens_b.pop()\n\n\ndef create_model(bert_config, is_training, input_ids, input_mask, segment_ids,\n                 labels, num_labels, use_one_hot_embeddings):\n  \"\"\"Creates a classification model.\"\"\"\n  model = modeling.BertModel(\n      config=bert_config,\n      is_training=is_training,\n      input_ids=input_ids,\n      input_mask=input_mask,\n      token_type_ids=segment_ids,\n      use_one_hot_embeddings=use_one_hot_embeddings)\n\n  # In the demo, we are doing a simple classification task on the entire\n  # segment.\n  #\n  # If you want to use the token-level output, use model.get_sequence_output()\n  # instead.\n  output_layer = model.get_pooled_output()\n\n  hidden_size = output_layer.shape[-1].value\n\n  output_weights = tf.get_variable(\n      \"output_weights\", [num_labels, hidden_size],\n      initializer=tf.truncated_normal_initializer(stddev=0.02))\n\n  output_bias = tf.get_variable(\n      \"output_bias\", [num_labels], initializer=tf.zeros_initializer())\n\n  with tf.variable_scope(\"loss\"):\n    if is_training:\n      # I.e., 0.1 dropout\n      output_layer = tf.nn.dropout(output_layer, keep_prob=0.9)\n\n    logits = tf.matmul(output_layer, output_weights, transpose_b=True)\n    logits = tf.nn.bias_add(logits, output_bias)\n    log_probs = tf.nn.log_softmax(logits, axis=-1)\n\n    one_hot_labels = tf.one_hot(labels, depth=num_labels, dtype=tf.float32)\n\n    per_example_loss = -tf.reduce_sum(one_hot_labels * log_probs, axis=-1)\n    loss = tf.reduce_mean(per_example_loss)\n\n    return (loss, per_example_loss, logits)\n\n\ndef model_fn_builder(bert_config, num_labels, init_checkpoint, learning_rate,\n                     num_train_steps, num_warmup_steps, use_tpu,\n                     use_one_hot_embeddings):\n  \"\"\"Returns `model_fn` closure for TPUEstimator.\"\"\"\n\n  def model_fn(features, labels, mode, params):  # pylint: disable=unused-argument\n    \"\"\"The `model_fn` for TPUEstimator.\"\"\"\n\n    tf.logging.info(\"*** Features ***\")\n    for name in sorted(features.keys()):\n      tf.logging.info(\"  name = %s, shape = %s\" % (name, features[name].shape))\n\n    input_ids = features[\"input_ids\"]\n    input_mask = features[\"input_mask\"]\n    segment_ids = features[\"segment_ids\"]\n    label_ids = features[\"label_ids\"]\n\n    is_training = (mode == tf.estimator.ModeKeys.TRAIN)\n\n    (total_loss, per_example_loss, logits) = create_model(\n        bert_config, is_training, input_ids, input_mask, segment_ids, label_ids,\n        num_labels, use_one_hot_embeddings)\n\n    tvars = tf.trainable_variables()\n\n    scaffold_fn = None\n    if init_checkpoint:\n      (assignment_map,\n       initialized_variable_names) = modeling.get_assigment_map_from_checkpoint(\n           tvars, init_checkpoint)\n      if use_tpu:\n\n        def tpu_scaffold():\n          tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n          return tf.train.Scaffold()\n\n        scaffold_fn = tpu_scaffold\n      else:\n        tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n\n    tf.logging.info(\"**** Trainable Variables ****\")\n    for var in tvars:\n      init_string = \"\"\n      if var.name in initialized_variable_names:\n        init_string = \", *INIT_FROM_CKPT*\"\n      tf.logging.info(\"  name = %s, shape = %s%s\", var.name, var.shape,\n                      init_string)\n\n    output_spec = None\n    if mode == tf.estimator.ModeKeys.TRAIN:\n\n      train_op = optimization.create_optimizer(\n          total_loss, learning_rate, num_train_steps, num_warmup_steps, use_tpu)\n\n      output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n          mode=mode,\n          loss=total_loss,\n          train_op=train_op,\n          scaffold_fn=scaffold_fn)\n    elif mode == tf.estimator.ModeKeys.EVAL:\n\n      def metric_fn(per_example_loss, label_ids, logits):\n        predictions = tf.argmax(logits, axis=-1, output_type=tf.int32)\n        accuracy = tf.metrics.accuracy(label_ids, predictions)\n        loss = tf.metrics.mean(per_example_loss)\n        return {\n            \"eval_accuracy\": accuracy,\n            \"eval_loss\": loss,\n        }\n\n      eval_metrics = (metric_fn, [per_example_loss, label_ids, logits])\n      output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n          mode=mode,\n          loss=total_loss,\n          eval_metrics=eval_metrics,\n          scaffold_fn=scaffold_fn)\n    else:\n      raise ValueError(\"Only TRAIN and EVAL modes are supported: %s\" % (mode))\n\n    return output_spec\n\n  return model_fn\n\n\ndef input_fn_builder(input_file, seq_length, is_training, drop_remainder):\n  \"\"\"Creates an `input_fn` closure to be passed to TPUEstimator.\"\"\"\n\n  name_to_features = {\n      \"input_ids\": tf.FixedLenFeature([seq_length], tf.int64),\n      \"input_mask\": tf.FixedLenFeature([seq_length], tf.int64),\n      \"segment_ids\": tf.FixedLenFeature([seq_length], tf.int64),\n      \"label_ids\": tf.FixedLenFeature([], tf.int64),\n  }\n\n  def _decode_record(record, name_to_features):\n    \"\"\"Decodes a record to a TensorFlow example.\"\"\"\n    example = tf.parse_single_example(record, name_to_features)\n\n    # tf.Example only supports tf.int64, but the TPU only supports tf.int32.\n    # So cast all int64 to int32.\n    for name in list(example.keys()):\n      t = example[name]\n      if t.dtype == tf.int64:\n        t = tf.to_int32(t)\n      example[name] = t\n\n    return example\n\n  def input_fn(params):\n    \"\"\"The actual input function.\"\"\"\n    batch_size = params[\"batch_size\"]\n\n    # For training, we want a lot of parallel reading and shuffling.\n    # For eval, we want no shuffling and parallel reading doesn't matter.\n    d = tf.data.TFRecordDataset(input_file)\n    if is_training:\n      d = d.repeat()\n      d = d.shuffle(buffer_size=100)\n\n    d = d.apply(\n        tf.contrib.data.map_and_batch(\n            lambda record: _decode_record(record, name_to_features),\n            batch_size=batch_size,\n            drop_remainder=drop_remainder))\n\n    return d\n\n  return input_fn\n\n\ndef main(_):\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  processors = {\n      \"cola\": ColaProcessor,\n      \"mnli\": MnliProcessor,\n      \"mrpc\": MrpcProcessor,\n      \"xnli\": XnliProcessor,\n  }\n\n  if not FLAGS.do_train and not FLAGS.do_eval:\n    raise ValueError(\"At least one of `do_train` or `do_eval` must be True.\")\n\n  bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n\n  if FLAGS.max_seq_length > bert_config.max_position_embeddings:\n    raise ValueError(\n        \"Cannot use sequence length %d because the BERT model \"\n        \"was only trained up to sequence length %d\" %\n        (FLAGS.max_seq_length, bert_config.max_position_embeddings))\n\n  tf.gfile.MakeDirs(FLAGS.output_dir)\n\n  task_name = FLAGS.task_name.lower()\n\n  if task_name not in processors:\n    raise ValueError(\"Task not found: %s\" % (task_name))\n\n  processor = processors[task_name]()\n\n  label_list = processor.get_labels()\n\n  tokenizer = tokenization.FullTokenizer(\n      vocab_file=FLAGS.vocab_file, do_lower_case=FLAGS.do_lower_case)\n\n  tpu_cluster_resolver = None\n  if FLAGS.use_tpu and FLAGS.tpu_name:\n    tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(\n        FLAGS.tpu_name, zone=FLAGS.tpu_zone, project=FLAGS.gcp_project)\n\n  is_per_host = tf.contrib.tpu.InputPipelineConfig.PER_HOST_V2\n  run_config = tf.contrib.tpu.RunConfig(\n      cluster=tpu_cluster_resolver,\n      master=FLAGS.master,\n      model_dir=FLAGS.output_dir,\n      save_checkpoints_steps=FLAGS.save_checkpoints_steps,\n      tpu_config=tf.contrib.tpu.TPUConfig(\n          iterations_per_loop=FLAGS.iterations_per_loop,\n          num_shards=FLAGS.num_tpu_cores,\n          per_host_input_for_training=is_per_host))\n\n  train_examples = None\n  num_train_steps = None\n  num_warmup_steps = None\n  if FLAGS.do_train:\n    train_examples = processor.get_train_examples(FLAGS.data_dir)\n    num_train_steps = int(\n        len(train_examples) / FLAGS.train_batch_size * FLAGS.num_train_epochs)\n    num_warmup_steps = int(num_train_steps * FLAGS.warmup_proportion)\n\n  model_fn = model_fn_builder(\n      bert_config=bert_config,\n      num_labels=len(label_list),\n      init_checkpoint=FLAGS.init_checkpoint,\n      learning_rate=FLAGS.learning_rate,\n      num_train_steps=num_train_steps,\n      num_warmup_steps=num_warmup_steps,\n      use_tpu=FLAGS.use_tpu,\n      use_one_hot_embeddings=FLAGS.use_tpu)\n\n  # If TPU is not available, this will fall back to normal Estimator on CPU\n  # or GPU.\n  estimator = tf.contrib.tpu.TPUEstimator(\n      use_tpu=FLAGS.use_tpu,\n      model_fn=model_fn,\n      config=run_config,\n      train_batch_size=FLAGS.train_batch_size,\n      eval_batch_size=FLAGS.eval_batch_size)\n\n  if FLAGS.do_train:\n    train_file = os.path.join(FLAGS.output_dir, \"train.tf_record\")\n    convert_examples_to_features(train_examples, label_list,\n                                 FLAGS.max_seq_length, tokenizer, train_file)\n    tf.logging.info(\"***** Running training *****\")\n    tf.logging.info(\"  Num examples = %d\", len(train_examples))\n    tf.logging.info(\"  Batch size = %d\", FLAGS.train_batch_size)\n    tf.logging.info(\"  Num steps = %d\", num_train_steps)\n    train_input_fn = input_fn_builder(\n        input_file=train_file,\n        seq_length=FLAGS.max_seq_length,\n        is_training=True,\n        drop_remainder=True)\n    estimator.train(input_fn=train_input_fn, max_steps=num_train_steps)\n\n  if FLAGS.do_eval:\n    eval_examples = processor.get_dev_examples(FLAGS.data_dir)\n    eval_file = os.path.join(FLAGS.output_dir, \"eval.tf_record\")\n    convert_examples_to_features(eval_examples, label_list,\n                                 FLAGS.max_seq_length, tokenizer, eval_file)\n\n    tf.logging.info(\"***** Running evaluation *****\")\n    tf.logging.info(\"  Num examples = %d\", len(eval_examples))\n    tf.logging.info(\"  Batch size = %d\", FLAGS.eval_batch_size)\n\n    # This tells the estimator to run through the entire set.\n    eval_steps = None\n    # However, if running eval on the TPU, you will need to specify the\n    # number of steps.\n    if FLAGS.use_tpu:\n      # Eval will be slightly WRONG on the TPU because it will truncate\n      # the last batch.\n      eval_steps = int(len(eval_examples) / FLAGS.eval_batch_size)\n\n    eval_drop_remainder = True if FLAGS.use_tpu else False\n    eval_input_fn = input_fn_builder(\n        input_file=eval_file,\n        seq_length=FLAGS.max_seq_length,\n        is_training=False,\n        drop_remainder=eval_drop_remainder)\n\n    result = estimator.evaluate(input_fn=eval_input_fn, steps=eval_steps)\n\n    output_eval_file = os.path.join(FLAGS.output_dir, \"eval_results.txt\")\n    with tf.gfile.GFile(output_eval_file, \"w\") as writer:\n      tf.logging.info(\"***** Eval results *****\")\n      for key in sorted(result.keys()):\n        tf.logging.info(\"  %s = %s\", key, str(result[key]))\n        writer.write(\"%s = %s\\n\" % (key, str(result[key])))\n\n\nif __name__ == \"__main__\":\n  flags.mark_flag_as_required(\"data_dir\")\n  flags.mark_flag_as_required(\"task_name\")\n  flags.mark_flag_as_required(\"vocab_file\")\n  flags.mark_flag_as_required(\"bert_config_file\")\n  flags.mark_flag_as_required(\"output_dir\")\n  tf.app.run()\n"
  },
  {
    "path": "third/bert/run_pretraining.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Run masked LM/next sentence masked_lm pre-training for BERT.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport modeling\nimport optimization\nimport tensorflow as tf\n\nflags = tf.flags\n\nFLAGS = flags.FLAGS\n\n## Required parameters\nflags.DEFINE_string(\n    \"bert_config_file\", None,\n    \"The config json file corresponding to the pre-trained BERT model. \"\n    \"This specifies the model architecture.\")\n\nflags.DEFINE_string(\n    \"input_file\", None,\n    \"Input TF example files (can be a glob or comma separated).\")\n\nflags.DEFINE_string(\n    \"output_dir\", None,\n    \"The output directory where the model checkpoints will be written.\")\n\n## Other parameters\nflags.DEFINE_string(\n    \"init_checkpoint\", None,\n    \"Initial checkpoint (usually from a pre-trained BERT model).\")\n\nflags.DEFINE_integer(\n    \"max_seq_length\", 128,\n    \"The maximum total input sequence length after WordPiece tokenization. \"\n    \"Sequences longer than this will be truncated, and sequences shorter \"\n    \"than this will be padded. Must match data generation.\")\n\nflags.DEFINE_integer(\n    \"max_predictions_per_seq\", 20,\n    \"Maximum number of masked LM predictions per sequence. \"\n    \"Must match data generation.\")\n\nflags.DEFINE_bool(\"do_train\", False, \"Whether to run training.\")\n\nflags.DEFINE_bool(\"do_eval\", False, \"Whether to run eval on the dev set.\")\n\nflags.DEFINE_integer(\"train_batch_size\", 32, \"Total batch size for training.\")\n\nflags.DEFINE_integer(\"eval_batch_size\", 8, \"Total batch size for eval.\")\n\nflags.DEFINE_float(\"learning_rate\", 5e-5, \"The initial learning rate for Adam.\")\n\nflags.DEFINE_integer(\"num_train_steps\", 100000, \"Number of training steps.\")\n\nflags.DEFINE_integer(\"num_warmup_steps\", 10000, \"Number of warmup steps.\")\n\nflags.DEFINE_integer(\"save_checkpoints_steps\", 1000,\n                     \"How often to save the model checkpoint.\")\n\nflags.DEFINE_integer(\"iterations_per_loop\", 1000,\n                     \"How many steps to make in each estimator call.\")\n\nflags.DEFINE_integer(\"max_eval_steps\", 100, \"Maximum number of eval steps.\")\n\nflags.DEFINE_bool(\"use_tpu\", False, \"Whether to use TPU or GPU/CPU.\")\n\ntf.flags.DEFINE_string(\n    \"tpu_name\", None,\n    \"The Cloud TPU to use for training. This should be either the name \"\n    \"used when creating the Cloud TPU, or a grpc://ip.address.of.tpu:8470 \"\n    \"url.\")\n\ntf.flags.DEFINE_string(\n    \"tpu_zone\", None,\n    \"[Optional] GCE zone where the Cloud TPU is located in. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\ntf.flags.DEFINE_string(\n    \"gcp_project\", None,\n    \"[Optional] Project name for the Cloud TPU-enabled project. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\ntf.flags.DEFINE_string(\"master\", None, \"[Optional] TensorFlow master URL.\")\n\nflags.DEFINE_integer(\n    \"num_tpu_cores\", 8,\n    \"Only used if `use_tpu` is True. Total number of TPU cores to use.\")\n\n\ndef model_fn_builder(bert_config, init_checkpoint, learning_rate,\n                     num_train_steps, num_warmup_steps, use_tpu,\n                     use_one_hot_embeddings):\n  \"\"\"Returns `model_fn` closure for TPUEstimator.\"\"\"\n\n  def model_fn(features, labels, mode, params):  # pylint: disable=unused-argument\n    \"\"\"The `model_fn` for TPUEstimator.\"\"\"\n\n    tf.logging.info(\"*** Features ***\")\n    for name in sorted(features.keys()):\n      tf.logging.info(\"  name = %s, shape = %s\" % (name, features[name].shape))\n\n    input_ids = features[\"input_ids\"]\n    input_mask = features[\"input_mask\"]\n    segment_ids = features[\"segment_ids\"]\n    masked_lm_positions = features[\"masked_lm_positions\"]\n    masked_lm_ids = features[\"masked_lm_ids\"]\n    masked_lm_weights = features[\"masked_lm_weights\"]\n    next_sentence_labels = features[\"next_sentence_labels\"]\n\n    is_training = (mode == tf.estimator.ModeKeys.TRAIN)\n\n    model = modeling.BertModel(\n        config=bert_config,\n        is_training=is_training,\n        input_ids=input_ids,\n        input_mask=input_mask,\n        token_type_ids=segment_ids,\n        use_one_hot_embeddings=use_one_hot_embeddings)\n\n    (masked_lm_loss,\n     masked_lm_example_loss, masked_lm_log_probs) = get_masked_lm_output(\n         bert_config, model.get_sequence_output(), model.get_embedding_table(),\n         masked_lm_positions, masked_lm_ids, masked_lm_weights)\n\n    (next_sentence_loss, next_sentence_example_loss,\n     next_sentence_log_probs) = get_next_sentence_output(\n         bert_config, model.get_pooled_output(), next_sentence_labels)\n\n    total_loss = masked_lm_loss + next_sentence_loss\n\n    tvars = tf.trainable_variables()\n\n    initialized_variable_names = {}\n    scaffold_fn = None\n    if init_checkpoint:\n      (assignment_map,\n       initialized_variable_names) = modeling.get_assigment_map_from_checkpoint(\n           tvars, init_checkpoint)\n      if use_tpu:\n\n        def tpu_scaffold():\n          tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n          return tf.train.Scaffold()\n\n        scaffold_fn = tpu_scaffold\n      else:\n        tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n\n    tf.logging.info(\"**** Trainable Variables ****\")\n    for var in tvars:\n      init_string = \"\"\n      if var.name in initialized_variable_names:\n        init_string = \", *INIT_FROM_CKPT*\"\n      tf.logging.info(\"  name = %s, shape = %s%s\", var.name, var.shape,\n                      init_string)\n\n    output_spec = None\n    if mode == tf.estimator.ModeKeys.TRAIN:\n      train_op = optimization.create_optimizer(\n          total_loss, learning_rate, num_train_steps, num_warmup_steps, use_tpu)\n\n      output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n          mode=mode,\n          loss=total_loss,\n          train_op=train_op,\n          scaffold_fn=scaffold_fn)\n    elif mode == tf.estimator.ModeKeys.EVAL:\n\n      def metric_fn(masked_lm_example_loss, masked_lm_log_probs, masked_lm_ids,\n                    masked_lm_weights, next_sentence_example_loss,\n                    next_sentence_log_probs, next_sentence_labels):\n        \"\"\"Computes the loss and accuracy of the model.\"\"\"\n        masked_lm_log_probs = tf.reshape(masked_lm_log_probs,\n                                         [-1, masked_lm_log_probs.shape[-1]])\n        masked_lm_predictions = tf.argmax(\n            masked_lm_log_probs, axis=-1, output_type=tf.int32)\n        masked_lm_example_loss = tf.reshape(masked_lm_example_loss, [-1])\n        masked_lm_ids = tf.reshape(masked_lm_ids, [-1])\n        masked_lm_weights = tf.reshape(masked_lm_weights, [-1])\n        masked_lm_accuracy = tf.metrics.accuracy(\n            labels=masked_lm_ids,\n            predictions=masked_lm_predictions,\n            weights=masked_lm_weights)\n        masked_lm_mean_loss = tf.metrics.mean(\n            values=masked_lm_example_loss, weights=masked_lm_weights)\n\n        next_sentence_log_probs = tf.reshape(\n            next_sentence_log_probs, [-1, next_sentence_log_probs.shape[-1]])\n        next_sentence_predictions = tf.argmax(\n            next_sentence_log_probs, axis=-1, output_type=tf.int32)\n        next_sentence_labels = tf.reshape(next_sentence_labels, [-1])\n        next_sentence_accuracy = tf.metrics.accuracy(\n            labels=next_sentence_labels, predictions=next_sentence_predictions)\n        next_sentence_mean_loss = tf.metrics.mean(\n            values=next_sentence_example_loss)\n\n        return {\n            \"masked_lm_accuracy\": masked_lm_accuracy,\n            \"masked_lm_loss\": masked_lm_mean_loss,\n            \"next_sentence_accuracy\": next_sentence_accuracy,\n            \"next_sentence_loss\": next_sentence_mean_loss,\n        }\n\n      eval_metrics = (metric_fn, [\n          masked_lm_example_loss, masked_lm_log_probs, masked_lm_ids,\n          masked_lm_weights, next_sentence_example_loss,\n          next_sentence_log_probs, next_sentence_labels\n      ])\n      output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n          mode=mode,\n          loss=total_loss,\n          eval_metrics=eval_metrics,\n          scaffold_fn=scaffold_fn)\n    else:\n      raise ValueError(\"Only TRAIN and EVAL modes are supported: %s\" % (mode))\n\n    return output_spec\n\n  return model_fn\n\n\ndef get_masked_lm_output(bert_config, input_tensor, output_weights, positions,\n                         label_ids, label_weights):\n  \"\"\"Get loss and log probs for the masked LM.\"\"\"\n  input_tensor = gather_indexes(input_tensor, positions)\n\n  with tf.variable_scope(\"cls/predictions\"):\n    # We apply one more non-linear transformation before the output layer.\n    # This matrix is not used after pre-training.\n    with tf.variable_scope(\"transform\"):\n      input_tensor = tf.layers.dense(\n          input_tensor,\n          units=bert_config.hidden_size,\n          activation=modeling.get_activation(bert_config.hidden_act),\n          kernel_initializer=modeling.create_initializer(\n              bert_config.initializer_range))\n      input_tensor = modeling.layer_norm(input_tensor)\n\n    # The output weights are the same as the input embeddings, but there is\n    # an output-only bias for each token.\n    output_bias = tf.get_variable(\n        \"output_bias\",\n        shape=[bert_config.vocab_size],\n        initializer=tf.zeros_initializer())\n    logits = tf.matmul(input_tensor, output_weights, transpose_b=True)\n    logits = tf.nn.bias_add(logits, output_bias)\n    log_probs = tf.nn.log_softmax(logits, axis=-1)\n\n    label_ids = tf.reshape(label_ids, [-1])\n    label_weights = tf.reshape(label_weights, [-1])\n\n    one_hot_labels = tf.one_hot(\n        label_ids, depth=bert_config.vocab_size, dtype=tf.float32)\n\n    # The `positions` tensor might be zero-padded (if the sequence is too\n    # short to have the maximum number of predictions). The `label_weights`\n    # tensor has a value of 1.0 for every real prediction and 0.0 for the\n    # padding predictions.\n    per_example_loss = -tf.reduce_sum(log_probs * one_hot_labels, axis=[-1])\n    numerator = tf.reduce_sum(label_weights * per_example_loss)\n    denominator = tf.reduce_sum(label_weights) + 1e-5\n    loss = numerator / denominator\n\n  return (loss, per_example_loss, log_probs)\n\n\ndef get_next_sentence_output(bert_config, input_tensor, labels):\n  \"\"\"Get loss and log probs for the next sentence prediction.\"\"\"\n\n  # Simple binary classification. Note that 0 is \"next sentence\" and 1 is\n  # \"random sentence\". This weight matrix is not used after pre-training.\n  with tf.variable_scope(\"cls/seq_relationship\"):\n    output_weights = tf.get_variable(\n        \"output_weights\",\n        shape=[2, bert_config.hidden_size],\n        initializer=modeling.create_initializer(bert_config.initializer_range))\n    output_bias = tf.get_variable(\n        \"output_bias\", shape=[2], initializer=tf.zeros_initializer())\n\n    logits = tf.matmul(input_tensor, output_weights, transpose_b=True)\n    logits = tf.nn.bias_add(logits, output_bias)\n    log_probs = tf.nn.log_softmax(logits, axis=-1)\n    labels = tf.reshape(labels, [-1])\n    one_hot_labels = tf.one_hot(labels, depth=2, dtype=tf.float32)\n    per_example_loss = -tf.reduce_sum(one_hot_labels * log_probs, axis=-1)\n    loss = tf.reduce_mean(per_example_loss)\n    return (loss, per_example_loss, log_probs)\n\n\ndef gather_indexes(sequence_tensor, positions):\n  \"\"\"Gathers the vectors at the specific positions over a minibatch.\"\"\"\n  sequence_shape = modeling.get_shape_list(sequence_tensor, expected_rank=3)\n  batch_size = sequence_shape[0]\n  seq_length = sequence_shape[1]\n  width = sequence_shape[2]\n\n  flat_offsets = tf.reshape(\n      tf.range(0, batch_size, dtype=tf.int32) * seq_length, [-1, 1])\n  flat_positions = tf.reshape(positions + flat_offsets, [-1])\n  flat_sequence_tensor = tf.reshape(sequence_tensor,\n                                    [batch_size * seq_length, width])\n  output_tensor = tf.gather(flat_sequence_tensor, flat_positions)\n  return output_tensor\n\n\ndef input_fn_builder(input_files,\n                     max_seq_length,\n                     max_predictions_per_seq,\n                     is_training,\n                     num_cpu_threads=4):\n  \"\"\"Creates an `input_fn` closure to be passed to TPUEstimator.\"\"\"\n\n  def input_fn(params):\n    \"\"\"The actual input function.\"\"\"\n    batch_size = params[\"batch_size\"]\n\n    name_to_features = {\n        \"input_ids\":\n            tf.FixedLenFeature([max_seq_length], tf.int64),\n        \"input_mask\":\n            tf.FixedLenFeature([max_seq_length], tf.int64),\n        \"segment_ids\":\n            tf.FixedLenFeature([max_seq_length], tf.int64),\n        \"masked_lm_positions\":\n            tf.FixedLenFeature([max_predictions_per_seq], tf.int64),\n        \"masked_lm_ids\":\n            tf.FixedLenFeature([max_predictions_per_seq], tf.int64),\n        \"masked_lm_weights\":\n            tf.FixedLenFeature([max_predictions_per_seq], tf.float32),\n        \"next_sentence_labels\":\n            tf.FixedLenFeature([1], tf.int64),\n    }\n\n    # For training, we want a lot of parallel reading and shuffling.\n    # For eval, we want no shuffling and parallel reading doesn't matter.\n    if is_training:\n      d = tf.data.Dataset.from_tensor_slices(tf.constant(input_files))\n      d = d.repeat()\n      d = d.shuffle(buffer_size=len(input_files))\n\n      # `cycle_length` is the number of parallel files that get read.\n      cycle_length = min(num_cpu_threads, len(input_files))\n\n      # `sloppy` mode means that the interleaving is not exact. This adds\n      # even more randomness to the training pipeline.\n      d = d.apply(\n          tf.contrib.data.parallel_interleave(\n              tf.data.TFRecordDataset,\n              sloppy=is_training,\n              cycle_length=cycle_length))\n      d = d.shuffle(buffer_size=100)\n    else:\n      d = tf.data.TFRecordDataset(input_files)\n      # Since we evaluate for a fixed number of steps we don't want to encounter\n      # out-of-range exceptions.\n      d = d.repeat()\n\n    # We must `drop_remainder` on training because the TPU requires fixed\n    # size dimensions. For eval, we assume we are evaluating on the CPU or GPU\n    # and we *don't* want to drop the remainder, otherwise we wont cover\n    # every sample.\n    d = d.apply(\n        tf.contrib.data.map_and_batch(\n            lambda record: _decode_record(record, name_to_features),\n            batch_size=batch_size,\n            num_parallel_batches=num_cpu_threads,\n            drop_remainder=True))\n    return d\n\n  return input_fn\n\n\ndef _decode_record(record, name_to_features):\n  \"\"\"Decodes a record to a TensorFlow example.\"\"\"\n  example = tf.parse_single_example(record, name_to_features)\n\n  # tf.Example only supports tf.int64, but the TPU only supports tf.int32.\n  # So cast all int64 to int32.\n  for name in list(example.keys()):\n    t = example[name]\n    if t.dtype == tf.int64:\n      t = tf.to_int32(t)\n    example[name] = t\n\n  return example\n\n\ndef main(_):\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  if not FLAGS.do_train and not FLAGS.do_eval:\n    raise ValueError(\"At least one of `do_train` or `do_eval` must be True.\")\n\n  bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n\n  tf.gfile.MakeDirs(FLAGS.output_dir)\n\n  input_files = []\n  for input_pattern in FLAGS.input_file.split(\",\"):\n    input_files.extend(tf.gfile.Glob(input_pattern))\n\n  tf.logging.info(\"*** Input Files ***\")\n  for input_file in input_files:\n    tf.logging.info(\"  %s\" % input_file)\n\n  tpu_cluster_resolver = None\n  if FLAGS.use_tpu and FLAGS.tpu_name:\n    tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(\n        FLAGS.tpu_name, zone=FLAGS.tpu_zone, project=FLAGS.gcp_project)\n\n  is_per_host = tf.contrib.tpu.InputPipelineConfig.PER_HOST_V2\n  run_config = tf.contrib.tpu.RunConfig(\n      cluster=tpu_cluster_resolver,\n      master=FLAGS.master,\n      model_dir=FLAGS.output_dir,\n      save_checkpoints_steps=FLAGS.save_checkpoints_steps,\n      tpu_config=tf.contrib.tpu.TPUConfig(\n          iterations_per_loop=FLAGS.iterations_per_loop,\n          num_shards=FLAGS.num_tpu_cores,\n          per_host_input_for_training=is_per_host))\n\n  model_fn = model_fn_builder(\n      bert_config=bert_config,\n      init_checkpoint=FLAGS.init_checkpoint,\n      learning_rate=FLAGS.learning_rate,\n      num_train_steps=FLAGS.num_train_steps,\n      num_warmup_steps=FLAGS.num_warmup_steps,\n      use_tpu=FLAGS.use_tpu,\n      use_one_hot_embeddings=FLAGS.use_tpu)\n\n  # If TPU is not available, this will fall back to normal Estimator on CPU\n  # or GPU.\n  estimator = tf.contrib.tpu.TPUEstimator(\n      use_tpu=FLAGS.use_tpu,\n      model_fn=model_fn,\n      config=run_config,\n      train_batch_size=FLAGS.train_batch_size,\n      eval_batch_size=FLAGS.eval_batch_size)\n\n  if FLAGS.do_train:\n    tf.logging.info(\"***** Running training *****\")\n    tf.logging.info(\"  Batch size = %d\", FLAGS.train_batch_size)\n    train_input_fn = input_fn_builder(\n        input_files=input_files,\n        max_seq_length=FLAGS.max_seq_length,\n        max_predictions_per_seq=FLAGS.max_predictions_per_seq,\n        is_training=True)\n    estimator.train(input_fn=train_input_fn, max_steps=FLAGS.num_train_steps)\n\n  if FLAGS.do_eval:\n    tf.logging.info(\"***** Running evaluation *****\")\n    tf.logging.info(\"  Batch size = %d\", FLAGS.eval_batch_size)\n\n    eval_input_fn = input_fn_builder(\n        input_files=input_files,\n        max_seq_length=FLAGS.max_seq_length,\n        max_predictions_per_seq=FLAGS.max_predictions_per_seq,\n        is_training=False)\n\n    result = estimator.evaluate(\n        input_fn=eval_input_fn, steps=FLAGS.max_eval_steps)\n\n    output_eval_file = os.path.join(FLAGS.output_dir, \"eval_results.txt\")\n    with tf.gfile.GFile(output_eval_file, \"w\") as writer:\n      tf.logging.info(\"***** Eval results *****\")\n      for key in sorted(result.keys()):\n        tf.logging.info(\"  %s = %s\", key, str(result[key]))\n        writer.write(\"%s = %s\\n\" % (key, str(result[key])))\n\n\nif __name__ == \"__main__\":\n  flags.mark_flag_as_required(\"input_file\")\n  flags.mark_flag_as_required(\"bert_config_file\")\n  flags.mark_flag_as_required(\"output_dir\")\n  tf.app.run()\n"
  },
  {
    "path": "third/bert/run_squad.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Run BERT on SQuAD.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport json\nimport math\nimport os\nimport random\nimport modeling\nimport optimization\nimport tokenization\nimport six\nimport tensorflow as tf\n\nflags = tf.flags\n\nFLAGS = flags.FLAGS\n\n## Required parameters\nflags.DEFINE_string(\n    \"bert_config_file\", None,\n    \"The config json file corresponding to the pre-trained BERT model. \"\n    \"This specifies the model architecture.\")\n\nflags.DEFINE_string(\"vocab_file\", None,\n                    \"The vocabulary file that the BERT model was trained on.\")\n\nflags.DEFINE_string(\n    \"output_dir\", None,\n    \"The output directory where the model checkpoints will be written.\")\n\n## Other parameters\nflags.DEFINE_string(\"train_file\", None,\n                    \"SQuAD json for training. E.g., train-v1.1.json\")\n\nflags.DEFINE_string(\n    \"predict_file\", None,\n    \"SQuAD json for predictions. E.g., dev-v1.1.json or test-v1.1.json\")\n\nflags.DEFINE_string(\n    \"init_checkpoint\", None,\n    \"Initial checkpoint (usually from a pre-trained BERT model).\")\n\nflags.DEFINE_bool(\n    \"do_lower_case\", True,\n    \"Whether to lower case the input text. Should be True for uncased \"\n    \"models and False for cased models.\")\n\nflags.DEFINE_integer(\n    \"max_seq_length\", 384,\n    \"The maximum total input sequence length after WordPiece tokenization. \"\n    \"Sequences longer than this will be truncated, and sequences shorter \"\n    \"than this will be padded.\")\n\nflags.DEFINE_integer(\n    \"doc_stride\", 128,\n    \"When splitting up a long document into chunks, how much stride to \"\n    \"take between chunks.\")\n\nflags.DEFINE_integer(\n    \"max_query_length\", 64,\n    \"The maximum number of tokens for the question. Questions longer than \"\n    \"this will be truncated to this length.\")\n\nflags.DEFINE_bool(\"do_train\", False, \"Whether to run training.\")\n\nflags.DEFINE_bool(\"do_predict\", False, \"Whether to run eval on the dev set.\")\n\nflags.DEFINE_integer(\"train_batch_size\", 32, \"Total batch size for training.\")\n\nflags.DEFINE_integer(\"predict_batch_size\", 8,\n                     \"Total batch size for predictions.\")\n\nflags.DEFINE_float(\"learning_rate\", 5e-5, \"The initial learning rate for Adam.\")\n\nflags.DEFINE_float(\"num_train_epochs\", 3.0,\n                   \"Total number of training epochs to perform.\")\n\nflags.DEFINE_float(\n    \"warmup_proportion\", 0.1,\n    \"Proportion of training to perform linear learning rate warmup for. \"\n    \"E.g., 0.1 = 10% of training.\")\n\nflags.DEFINE_integer(\"save_checkpoints_steps\", 1000,\n                     \"How often to save the model checkpoint.\")\n\nflags.DEFINE_integer(\"iterations_per_loop\", 1000,\n                     \"How many steps to make in each estimator call.\")\n\nflags.DEFINE_integer(\n    \"n_best_size\", 20,\n    \"The total number of n-best predictions to generate in the \"\n    \"nbest_predictions.json output file.\")\n\nflags.DEFINE_integer(\n    \"max_answer_length\", 30,\n    \"The maximum length of an answer that can be generated. This is needed \"\n    \"because the start and end predictions are not conditioned on one another.\")\n\nflags.DEFINE_bool(\"use_tpu\", False, \"Whether to use TPU or GPU/CPU.\")\n\ntf.flags.DEFINE_string(\n    \"tpu_name\", None,\n    \"The Cloud TPU to use for training. This should be either the name \"\n    \"used when creating the Cloud TPU, or a grpc://ip.address.of.tpu:8470 \"\n    \"url.\")\n\ntf.flags.DEFINE_string(\n    \"tpu_zone\", None,\n    \"[Optional] GCE zone where the Cloud TPU is located in. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\ntf.flags.DEFINE_string(\n    \"gcp_project\", None,\n    \"[Optional] Project name for the Cloud TPU-enabled project. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n\ntf.flags.DEFINE_string(\"master\", None, \"[Optional] TensorFlow master URL.\")\n\nflags.DEFINE_integer(\n    \"num_tpu_cores\", 8,\n    \"Only used if `use_tpu` is True. Total number of TPU cores to use.\")\n\nflags.DEFINE_bool(\n    \"verbose_logging\", False,\n    \"If true, all of the warnings related to data processing will be printed. \"\n    \"A number of warnings are expected for a normal SQuAD evaluation.\")\n\n\nclass SquadExample(object):\n  \"\"\"A single training/test example for simple sequence classification.\"\"\"\n\n  def __init__(self,\n               qas_id,\n               question_text,\n               doc_tokens,\n               orig_answer_text=None,\n               start_position=None,\n               end_position=None):\n    self.qas_id = qas_id\n    self.question_text = question_text\n    self.doc_tokens = doc_tokens\n    self.orig_answer_text = orig_answer_text\n    self.start_position = start_position\n    self.end_position = end_position\n\n  def __str__(self):\n    return self.__repr__()\n\n  def __repr__(self):\n    s = \"\"\n    s += \"qas_id: %s\" % (tokenization.printable_text(self.qas_id))\n    s += \", question_text: %s\" % (\n        tokenization.printable_text(self.question_text))\n    s += \", doc_tokens: [%s]\" % (\" \".join(self.doc_tokens))\n    if self.start_position:\n      s += \", start_position: %d\" % (self.start_position)\n    if self.start_position:\n      s += \", end_position: %d\" % (self.end_position)\n    return s\n\n\nclass InputFeatures(object):\n  \"\"\"A single set of features of data.\"\"\"\n\n  def __init__(self,\n               unique_id,\n               example_index,\n               doc_span_index,\n               tokens,\n               token_to_orig_map,\n               token_is_max_context,\n               input_ids,\n               input_mask,\n               segment_ids,\n               start_position=None,\n               end_position=None):\n    self.unique_id = unique_id\n    self.example_index = example_index\n    self.doc_span_index = doc_span_index\n    self.tokens = tokens\n    self.token_to_orig_map = token_to_orig_map\n    self.token_is_max_context = token_is_max_context\n    self.input_ids = input_ids\n    self.input_mask = input_mask\n    self.segment_ids = segment_ids\n    self.start_position = start_position\n    self.end_position = end_position\n\n\ndef read_squad_examples(input_file, is_training):\n  \"\"\"Read a SQuAD json file into a list of SquadExample.\"\"\"\n  with tf.gfile.Open(input_file, \"r\") as reader:\n    input_data = json.load(reader)[\"data\"]\n\n  def is_whitespace(c):\n    if c == \" \" or c == \"\\t\" or c == \"\\r\" or c == \"\\n\" or ord(c) == 0x202F:\n      return True\n    return False\n\n  examples = []\n  for entry in input_data:\n    for paragraph in entry[\"paragraphs\"]:\n      paragraph_text = paragraph[\"context\"]\n      doc_tokens = []\n      char_to_word_offset = []\n      prev_is_whitespace = True\n      for c in paragraph_text:\n        if is_whitespace(c):\n          prev_is_whitespace = True\n        else:\n          if prev_is_whitespace:\n            doc_tokens.append(c)\n          else:\n            doc_tokens[-1] += c\n          prev_is_whitespace = False\n        char_to_word_offset.append(len(doc_tokens) - 1)\n\n      for qa in paragraph[\"qas\"]:\n        qas_id = qa[\"id\"]\n        question_text = qa[\"question\"]\n        start_position = None\n        end_position = None\n        orig_answer_text = None\n        if is_training:\n          if len(qa[\"answers\"]) != 1:\n            raise ValueError(\n                \"For training, each question should have exactly 1 answer.\")\n          answer = qa[\"answers\"][0]\n          orig_answer_text = answer[\"text\"]\n          answer_offset = answer[\"answer_start\"]\n          answer_length = len(orig_answer_text)\n          start_position = char_to_word_offset[answer_offset]\n          end_position = char_to_word_offset[answer_offset + answer_length - 1]\n          # Only add answers where the text can be exactly recovered from the\n          # document. If this CAN'T happen it's likely due to weird Unicode\n          # stuff so we will just skip the example.\n          #\n          # Note that this means for training mode, every example is NOT\n          # guaranteed to be preserved.\n          actual_text = \" \".join(doc_tokens[start_position:(end_position + 1)])\n          cleaned_answer_text = \" \".join(\n              tokenization.whitespace_tokenize(orig_answer_text))\n          if actual_text.find(cleaned_answer_text) == -1:\n            tf.logging.warning(\"Could not find answer: '%s' vs. '%s'\",\n                               actual_text, cleaned_answer_text)\n            continue\n\n        example = SquadExample(\n            qas_id=qas_id,\n            question_text=question_text,\n            doc_tokens=doc_tokens,\n            orig_answer_text=orig_answer_text,\n            start_position=start_position,\n            end_position=end_position)\n        examples.append(example)\n  return examples\n\n\ndef convert_examples_to_features(examples, tokenizer, max_seq_length,\n                                 doc_stride, max_query_length, is_training,\n                                 output_fn):\n  \"\"\"Loads a data file into a list of `InputBatch`s.\"\"\"\n\n  unique_id = 1000000000\n\n  for (example_index, example) in enumerate(examples):\n    query_tokens = tokenizer.tokenize(example.question_text)\n\n    if len(query_tokens) > max_query_length:\n      query_tokens = query_tokens[0:max_query_length]\n\n    tok_to_orig_index = []\n    orig_to_tok_index = []\n    all_doc_tokens = []\n    for (i, token) in enumerate(example.doc_tokens):\n      orig_to_tok_index.append(len(all_doc_tokens))\n      sub_tokens = tokenizer.tokenize(token)\n      for sub_token in sub_tokens:\n        tok_to_orig_index.append(i)\n        all_doc_tokens.append(sub_token)\n\n    tok_start_position = None\n    tok_end_position = None\n    if is_training:\n      tok_start_position = orig_to_tok_index[example.start_position]\n      if example.end_position < len(example.doc_tokens) - 1:\n        tok_end_position = orig_to_tok_index[example.end_position + 1] - 1\n      else:\n        tok_end_position = len(all_doc_tokens) - 1\n      (tok_start_position, tok_end_position) = _improve_answer_span(\n          all_doc_tokens, tok_start_position, tok_end_position, tokenizer,\n          example.orig_answer_text)\n\n    # The -3 accounts for [CLS], [SEP] and [SEP]\n    max_tokens_for_doc = max_seq_length - len(query_tokens) - 3\n\n    # We can have documents that are longer than the maximum sequence length.\n    # To deal with this we do a sliding window approach, where we take chunks\n    # of the up to our max length with a stride of `doc_stride`.\n    _DocSpan = collections.namedtuple(  # pylint: disable=invalid-name\n        \"DocSpan\", [\"start\", \"length\"])\n    doc_spans = []\n    start_offset = 0\n    while start_offset < len(all_doc_tokens):\n      length = len(all_doc_tokens) - start_offset\n      if length > max_tokens_for_doc:\n        length = max_tokens_for_doc\n      doc_spans.append(_DocSpan(start=start_offset, length=length))\n      if start_offset + length == len(all_doc_tokens):\n        break\n      start_offset += min(length, doc_stride)\n\n    for (doc_span_index, doc_span) in enumerate(doc_spans):\n      tokens = []\n      token_to_orig_map = {}\n      token_is_max_context = {}\n      segment_ids = []\n      tokens.append(\"[CLS]\")\n      segment_ids.append(0)\n      for token in query_tokens:\n        tokens.append(token)\n        segment_ids.append(0)\n      tokens.append(\"[SEP]\")\n      segment_ids.append(0)\n\n      for i in range(doc_span.length):\n        split_token_index = doc_span.start + i\n        token_to_orig_map[len(tokens)] = tok_to_orig_index[split_token_index]\n\n        is_max_context = _check_is_max_context(doc_spans, doc_span_index,\n                                               split_token_index)\n        token_is_max_context[len(tokens)] = is_max_context\n        tokens.append(all_doc_tokens[split_token_index])\n        segment_ids.append(1)\n      tokens.append(\"[SEP]\")\n      segment_ids.append(1)\n\n      input_ids = tokenizer.convert_tokens_to_ids(tokens)\n\n      # The mask has 1 for real tokens and 0 for padding tokens. Only real\n      # tokens are attended to.\n      input_mask = [1] * len(input_ids)\n\n      # Zero-pad up to the sequence length.\n      while len(input_ids) < max_seq_length:\n        input_ids.append(0)\n        input_mask.append(0)\n        segment_ids.append(0)\n\n      assert len(input_ids) == max_seq_length\n      assert len(input_mask) == max_seq_length\n      assert len(segment_ids) == max_seq_length\n\n      start_position = None\n      end_position = None\n      if is_training:\n        # For training, if our document chunk does not contain an annotation\n        # we throw it out, since there is nothing to predict.\n        doc_start = doc_span.start\n        doc_end = doc_span.start + doc_span.length - 1\n        if (example.start_position < doc_start or\n            example.end_position < doc_start or\n            example.start_position > doc_end or example.end_position > doc_end):\n          continue\n\n        doc_offset = len(query_tokens) + 2\n        start_position = tok_start_position - doc_start + doc_offset\n        end_position = tok_end_position - doc_start + doc_offset\n\n      if example_index < 20:\n        tf.logging.info(\"*** Example ***\")\n        tf.logging.info(\"unique_id: %s\" % (unique_id))\n        tf.logging.info(\"example_index: %s\" % (example_index))\n        tf.logging.info(\"doc_span_index: %s\" % (doc_span_index))\n        tf.logging.info(\"tokens: %s\" % \" \".join(\n            [tokenization.printable_text(x) for x in tokens]))\n        tf.logging.info(\"token_to_orig_map: %s\" % \" \".join(\n            [\"%d:%d\" % (x, y) for (x, y) in six.iteritems(token_to_orig_map)]))\n        tf.logging.info(\"token_is_max_context: %s\" % \" \".join([\n            \"%d:%s\" % (x, y) for (x, y) in six.iteritems(token_is_max_context)\n        ]))\n        tf.logging.info(\"input_ids: %s\" % \" \".join([str(x) for x in input_ids]))\n        tf.logging.info(\n            \"input_mask: %s\" % \" \".join([str(x) for x in input_mask]))\n        tf.logging.info(\n            \"segment_ids: %s\" % \" \".join([str(x) for x in segment_ids]))\n        if is_training:\n          answer_text = \" \".join(tokens[start_position:(end_position + 1)])\n          tf.logging.info(\"start_position: %d\" % (start_position))\n          tf.logging.info(\"end_position: %d\" % (end_position))\n          tf.logging.info(\n              \"answer: %s\" % (tokenization.printable_text(answer_text)))\n\n      feature = InputFeatures(\n          unique_id=unique_id,\n          example_index=example_index,\n          doc_span_index=doc_span_index,\n          tokens=tokens,\n          token_to_orig_map=token_to_orig_map,\n          token_is_max_context=token_is_max_context,\n          input_ids=input_ids,\n          input_mask=input_mask,\n          segment_ids=segment_ids,\n          start_position=start_position,\n          end_position=end_position)\n\n      # Run callback\n      output_fn(feature)\n\n      unique_id += 1\n\n\ndef _improve_answer_span(doc_tokens, input_start, input_end, tokenizer,\n                         orig_answer_text):\n  \"\"\"Returns tokenized answer spans that better match the annotated answer.\"\"\"\n\n  # The SQuAD annotations are character based. We first project them to\n  # whitespace-tokenized words. But then after WordPiece tokenization, we can\n  # often find a \"better match\". For example:\n  #\n  #   Question: What year was John Smith born?\n  #   Context: The leader was John Smith (1895-1943).\n  #   Answer: 1895\n  #\n  # The original whitespace-tokenized answer will be \"(1895-1943).\". However\n  # after tokenization, our tokens will be \"( 1895 - 1943 ) .\". So we can match\n  # the exact answer, 1895.\n  #\n  # However, this is not always possible. Consider the following:\n  #\n  #   Question: What country is the top exporter of electornics?\n  #   Context: The Japanese electronics industry is the lagest in the world.\n  #   Answer: Japan\n  #\n  # In this case, the annotator chose \"Japan\" as a character sub-span of\n  # the word \"Japanese\". Since our WordPiece tokenizer does not split\n  # \"Japanese\", we just use \"Japanese\" as the annotation. This is fairly rare\n  # in SQuAD, but does happen.\n  tok_answer_text = \" \".join(tokenizer.tokenize(orig_answer_text))\n\n  for new_start in range(input_start, input_end + 1):\n    for new_end in range(input_end, new_start - 1, -1):\n      text_span = \" \".join(doc_tokens[new_start:(new_end + 1)])\n      if text_span == tok_answer_text:\n        return (new_start, new_end)\n\n  return (input_start, input_end)\n\n\ndef _check_is_max_context(doc_spans, cur_span_index, position):\n  \"\"\"Check if this is the 'max context' doc span for the token.\"\"\"\n\n  # Because of the sliding window approach taken to scoring documents, a single\n  # token can appear in multiple documents. E.g.\n  #  Doc: the man went to the store and bought a gallon of milk\n  #  Span A: the man went to the\n  #  Span B: to the store and bought\n  #  Span C: and bought a gallon of\n  #  ...\n  #\n  # Now the word 'bought' will have two scores from spans B and C. We only\n  # want to consider the score with \"maximum context\", which we define as\n  # the *minimum* of its left and right context (the *sum* of left and\n  # right context will always be the same, of course).\n  #\n  # In the example the maximum context for 'bought' would be span C since\n  # it has 1 left context and 3 right context, while span B has 4 left context\n  # and 0 right context.\n  best_score = None\n  best_span_index = None\n  for (span_index, doc_span) in enumerate(doc_spans):\n    end = doc_span.start + doc_span.length - 1\n    if position < doc_span.start:\n      continue\n    if position > end:\n      continue\n    num_left_context = position - doc_span.start\n    num_right_context = end - position\n    score = min(num_left_context, num_right_context) + 0.01 * doc_span.length\n    if best_score is None or score > best_score:\n      best_score = score\n      best_span_index = span_index\n\n  return cur_span_index == best_span_index\n\n\ndef create_model(bert_config, is_training, input_ids, input_mask, segment_ids,\n                 use_one_hot_embeddings):\n  \"\"\"Creates a classification model.\"\"\"\n  model = modeling.BertModel(\n      config=bert_config,\n      is_training=is_training,\n      input_ids=input_ids,\n      input_mask=input_mask,\n      token_type_ids=segment_ids,\n      use_one_hot_embeddings=use_one_hot_embeddings)\n\n  final_hidden = model.get_sequence_output()\n\n  final_hidden_shape = modeling.get_shape_list(final_hidden, expected_rank=3)\n  batch_size = final_hidden_shape[0]\n  seq_length = final_hidden_shape[1]\n  hidden_size = final_hidden_shape[2]\n\n  output_weights = tf.get_variable(\n      \"cls/squad/output_weights\", [2, hidden_size],\n      initializer=tf.truncated_normal_initializer(stddev=0.02))\n\n  output_bias = tf.get_variable(\n      \"cls/squad/output_bias\", [2], initializer=tf.zeros_initializer())\n\n  final_hidden_matrix = tf.reshape(final_hidden,\n                                   [batch_size * seq_length, hidden_size])\n  logits = tf.matmul(final_hidden_matrix, output_weights, transpose_b=True)\n  logits = tf.nn.bias_add(logits, output_bias)\n\n  logits = tf.reshape(logits, [batch_size, seq_length, 2])\n  logits = tf.transpose(logits, [2, 0, 1])\n\n  unstacked_logits = tf.unstack(logits, axis=0)\n\n  (start_logits, end_logits) = (unstacked_logits[0], unstacked_logits[1])\n\n  return (start_logits, end_logits)\n\n\ndef model_fn_builder(bert_config, init_checkpoint, learning_rate,\n                     num_train_steps, num_warmup_steps, use_tpu,\n                     use_one_hot_embeddings):\n  \"\"\"Returns `model_fn` closure for TPUEstimator.\"\"\"\n\n  def model_fn(features, labels, mode, params):  # pylint: disable=unused-argument\n    \"\"\"The `model_fn` for TPUEstimator.\"\"\"\n\n    tf.logging.info(\"*** Features ***\")\n    for name in sorted(features.keys()):\n      tf.logging.info(\"  name = %s, shape = %s\" % (name, features[name].shape))\n\n    unique_ids = features[\"unique_ids\"]\n    input_ids = features[\"input_ids\"]\n    input_mask = features[\"input_mask\"]\n    segment_ids = features[\"segment_ids\"]\n\n    is_training = (mode == tf.estimator.ModeKeys.TRAIN)\n\n    (start_logits, end_logits) = create_model(\n        bert_config=bert_config,\n        is_training=is_training,\n        input_ids=input_ids,\n        input_mask=input_mask,\n        segment_ids=segment_ids,\n        use_one_hot_embeddings=use_one_hot_embeddings)\n\n    tvars = tf.trainable_variables()\n\n    initialized_variable_names = {}\n    scaffold_fn = None\n    if init_checkpoint:\n      (assignment_map,\n       initialized_variable_names) = modeling.get_assigment_map_from_checkpoint(\n           tvars, init_checkpoint)\n      if use_tpu:\n\n        def tpu_scaffold():\n          tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n          return tf.train.Scaffold()\n\n        scaffold_fn = tpu_scaffold\n      else:\n        tf.train.init_from_checkpoint(init_checkpoint, assignment_map)\n\n    tf.logging.info(\"**** Trainable Variables ****\")\n    for var in tvars:\n      init_string = \"\"\n      if var.name in initialized_variable_names:\n        init_string = \", *INIT_FROM_CKPT*\"\n      tf.logging.info(\"  name = %s, shape = %s%s\", var.name, var.shape,\n                      init_string)\n\n    output_spec = None\n    if mode == tf.estimator.ModeKeys.TRAIN:\n      seq_length = modeling.get_shape_list(input_ids)[1]\n\n      def compute_loss(logits, positions):\n        one_hot_positions = tf.one_hot(\n            positions, depth=seq_length, dtype=tf.float32)\n        log_probs = tf.nn.log_softmax(logits, axis=-1)\n        loss = -tf.reduce_mean(\n            tf.reduce_sum(one_hot_positions * log_probs, axis=-1))\n        return loss\n\n      start_positions = features[\"start_positions\"]\n      end_positions = features[\"end_positions\"]\n\n      start_loss = compute_loss(start_logits, start_positions)\n      end_loss = compute_loss(end_logits, end_positions)\n\n      total_loss = (start_loss + end_loss) / 2.0\n\n      train_op = optimization.create_optimizer(\n          total_loss, learning_rate, num_train_steps, num_warmup_steps, use_tpu)\n\n      output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n          mode=mode,\n          loss=total_loss,\n          train_op=train_op,\n          scaffold_fn=scaffold_fn)\n    elif mode == tf.estimator.ModeKeys.PREDICT:\n      predictions = {\n          \"unique_ids\": unique_ids,\n          \"start_logits\": start_logits,\n          \"end_logits\": end_logits,\n      }\n      output_spec = tf.contrib.tpu.TPUEstimatorSpec(\n          mode=mode, predictions=predictions, scaffold_fn=scaffold_fn)\n    else:\n      raise ValueError(\n          \"Only TRAIN and PREDICT modes are supported: %s\" % (mode))\n\n    return output_spec\n\n  return model_fn\n\n\ndef input_fn_builder(input_file, seq_length, is_training, drop_remainder):\n  \"\"\"Creates an `input_fn` closure to be passed to TPUEstimator.\"\"\"\n\n  name_to_features = {\n      \"unique_ids\": tf.FixedLenFeature([], tf.int64),\n      \"input_ids\": tf.FixedLenFeature([seq_length], tf.int64),\n      \"input_mask\": tf.FixedLenFeature([seq_length], tf.int64),\n      \"segment_ids\": tf.FixedLenFeature([seq_length], tf.int64),\n  }\n\n  if is_training:\n    name_to_features[\"start_positions\"] = tf.FixedLenFeature([], tf.int64)\n    name_to_features[\"end_positions\"] = tf.FixedLenFeature([], tf.int64)\n\n  def _decode_record(record, name_to_features):\n    \"\"\"Decodes a record to a TensorFlow example.\"\"\"\n    example = tf.parse_single_example(record, name_to_features)\n\n    # tf.Example only supports tf.int64, but the TPU only supports tf.int32.\n    # So cast all int64 to int32.\n    for name in list(example.keys()):\n      t = example[name]\n      if t.dtype == tf.int64:\n        t = tf.to_int32(t)\n      example[name] = t\n\n    return example\n\n  def input_fn(params):\n    \"\"\"The actual input function.\"\"\"\n    batch_size = params[\"batch_size\"]\n\n    # For training, we want a lot of parallel reading and shuffling.\n    # For eval, we want no shuffling and parallel reading doesn't matter.\n    d = tf.data.TFRecordDataset(input_file)\n    if is_training:\n      d = d.repeat()\n      d = d.shuffle(buffer_size=100)\n\n    d = d.apply(\n        tf.contrib.data.map_and_batch(\n            lambda record: _decode_record(record, name_to_features),\n            batch_size=batch_size,\n            drop_remainder=drop_remainder))\n\n    return d\n\n  return input_fn\n\n\nRawResult = collections.namedtuple(\"RawResult\",\n                                   [\"unique_id\", \"start_logits\", \"end_logits\"])\n\n\ndef write_predictions(all_examples, all_features, all_results, n_best_size,\n                      max_answer_length, do_lower_case, output_prediction_file,\n                      output_nbest_file):\n  \"\"\"Write final predictions to the json file.\"\"\"\n  tf.logging.info(\"Writing predictions to: %s\" % (output_prediction_file))\n  tf.logging.info(\"Writing nbest to: %s\" % (output_nbest_file))\n\n  example_index_to_features = collections.defaultdict(list)\n  for feature in all_features:\n    example_index_to_features[feature.example_index].append(feature)\n\n  unique_id_to_result = {}\n  for result in all_results:\n    unique_id_to_result[result.unique_id] = result\n\n  _PrelimPrediction = collections.namedtuple(  # pylint: disable=invalid-name\n      \"PrelimPrediction\",\n      [\"feature_index\", \"start_index\", \"end_index\", \"start_logit\", \"end_logit\"])\n\n  all_predictions = collections.OrderedDict()\n  all_nbest_json = collections.OrderedDict()\n  for (example_index, example) in enumerate(all_examples):\n    features = example_index_to_features[example_index]\n\n    prelim_predictions = []\n    for (feature_index, feature) in enumerate(features):\n      result = unique_id_to_result[feature.unique_id]\n\n      start_indexes = _get_best_indexes(result.start_logits, n_best_size)\n      end_indexes = _get_best_indexes(result.end_logits, n_best_size)\n      for start_index in start_indexes:\n        for end_index in end_indexes:\n          # We could hypothetically create invalid predictions, e.g., predict\n          # that the start of the span is in the question. We throw out all\n          # invalid predictions.\n          if start_index >= len(feature.tokens):\n            continue\n          if end_index >= len(feature.tokens):\n            continue\n          if start_index not in feature.token_to_orig_map:\n            continue\n          if end_index not in feature.token_to_orig_map:\n            continue\n          if not feature.token_is_max_context.get(start_index, False):\n            continue\n          if end_index < start_index:\n            continue\n          length = end_index - start_index + 1\n          if length > max_answer_length:\n            continue\n          prelim_predictions.append(\n              _PrelimPrediction(\n                  feature_index=feature_index,\n                  start_index=start_index,\n                  end_index=end_index,\n                  start_logit=result.start_logits[start_index],\n                  end_logit=result.end_logits[end_index]))\n\n    prelim_predictions = sorted(\n        prelim_predictions,\n        key=lambda x: (x.start_logit + x.end_logit),\n        reverse=True)\n\n    _NbestPrediction = collections.namedtuple(  # pylint: disable=invalid-name\n        \"NbestPrediction\", [\"text\", \"start_logit\", \"end_logit\"])\n\n    seen_predictions = {}\n    nbest = []\n    for pred in prelim_predictions:\n      if len(nbest) >= n_best_size:\n        break\n      feature = features[pred.feature_index]\n\n      tok_tokens = feature.tokens[pred.start_index:(pred.end_index + 1)]\n      orig_doc_start = feature.token_to_orig_map[pred.start_index]\n      orig_doc_end = feature.token_to_orig_map[pred.end_index]\n      orig_tokens = example.doc_tokens[orig_doc_start:(orig_doc_end + 1)]\n      tok_text = \" \".join(tok_tokens)\n\n      # De-tokenize WordPieces that have been split off.\n      tok_text = tok_text.replace(\" ##\", \"\")\n      tok_text = tok_text.replace(\"##\", \"\")\n\n      # Clean whitespace\n      tok_text = tok_text.strip()\n      tok_text = \" \".join(tok_text.split())\n      orig_text = \" \".join(orig_tokens)\n\n      final_text = get_final_text(tok_text, orig_text, do_lower_case)\n      if final_text in seen_predictions:\n        continue\n\n      seen_predictions[final_text] = True\n      nbest.append(\n          _NbestPrediction(\n              text=final_text,\n              start_logit=pred.start_logit,\n              end_logit=pred.end_logit))\n\n    # In very rare edge cases we could have no valid predictions. So we\n    # just create a nonce prediction in this case to avoid failure.\n    if not nbest:\n      nbest.append(\n          _NbestPrediction(text=\"empty\", start_logit=0.0, end_logit=0.0))\n\n    assert len(nbest) >= 1\n\n    total_scores = []\n    for entry in nbest:\n      total_scores.append(entry.start_logit + entry.end_logit)\n\n    probs = _compute_softmax(total_scores)\n\n    nbest_json = []\n    for (i, entry) in enumerate(nbest):\n      output = collections.OrderedDict()\n      output[\"text\"] = entry.text\n      output[\"probability\"] = probs[i]\n      output[\"start_logit\"] = entry.start_logit\n      output[\"end_logit\"] = entry.end_logit\n      nbest_json.append(output)\n\n    assert len(nbest_json) >= 1\n\n    all_predictions[example.qas_id] = nbest_json[0][\"text\"]\n    all_nbest_json[example.qas_id] = nbest_json\n\n  with tf.gfile.GFile(output_prediction_file, \"w\") as writer:\n    writer.write(json.dumps(all_predictions, indent=4) + \"\\n\")\n\n  with tf.gfile.GFile(output_nbest_file, \"w\") as writer:\n    writer.write(json.dumps(all_nbest_json, indent=4) + \"\\n\")\n\n\ndef get_final_text(pred_text, orig_text, do_lower_case):\n  \"\"\"Project the tokenized prediction back to the original text.\"\"\"\n\n  # When we created the data, we kept track of the alignment between original\n  # (whitespace tokenized) tokens and our WordPiece tokenized tokens. So\n  # now `orig_text` contains the span of our original text corresponding to the\n  # span that we predicted.\n  #\n  # However, `orig_text` may contain extra characters that we don't want in\n  # our prediction.\n  #\n  # For example, let's say:\n  #   pred_text = steve smith\n  #   orig_text = Steve Smith's\n  #\n  # We don't want to return `orig_text` because it contains the extra \"'s\".\n  #\n  # We don't want to return `pred_text` because it's already been normalized\n  # (the SQuAD eval script also does punctuation stripping/lower casing but\n  # our tokenizer does additional normalization like stripping accent\n  # characters).\n  #\n  # What we really want to return is \"Steve Smith\".\n  #\n  # Therefore, we have to apply a semi-complicated alignment heruistic between\n  # `pred_text` and `orig_text` to get a character-to-charcter alignment. This\n  # can fail in certain cases in which case we just return `orig_text`.\n\n  def _strip_spaces(text):\n    ns_chars = []\n    ns_to_s_map = collections.OrderedDict()\n    for (i, c) in enumerate(text):\n      if c == \" \":\n        continue\n      ns_to_s_map[len(ns_chars)] = i\n      ns_chars.append(c)\n    ns_text = \"\".join(ns_chars)\n    return (ns_text, ns_to_s_map)\n\n  # We first tokenize `orig_text`, strip whitespace from the result\n  # and `pred_text`, and check if they are the same length. If they are\n  # NOT the same length, the heuristic has failed. If they are the same\n  # length, we assume the characters are one-to-one aligned.\n  tokenizer = tokenization.BasicTokenizer(do_lower_case=do_lower_case)\n\n  tok_text = \" \".join(tokenizer.tokenize(orig_text))\n\n  start_position = tok_text.find(pred_text)\n  if start_position == -1:\n    if FLAGS.verbose_logging:\n      tf.logging.info(\n          \"Unable to find text: '%s' in '%s'\" % (pred_text, orig_text))\n    return orig_text\n  end_position = start_position + len(pred_text) - 1\n\n  (orig_ns_text, orig_ns_to_s_map) = _strip_spaces(orig_text)\n  (tok_ns_text, tok_ns_to_s_map) = _strip_spaces(tok_text)\n\n  if len(orig_ns_text) != len(tok_ns_text):\n    if FLAGS.verbose_logging:\n      tf.logging.info(\"Length not equal after stripping spaces: '%s' vs '%s'\",\n                      orig_ns_text, tok_ns_text)\n    return orig_text\n\n  # We then project the characters in `pred_text` back to `orig_text` using\n  # the character-to-character alignment.\n  tok_s_to_ns_map = {}\n  for (i, tok_index) in six.iteritems(tok_ns_to_s_map):\n    tok_s_to_ns_map[tok_index] = i\n\n  orig_start_position = None\n  if start_position in tok_s_to_ns_map:\n    ns_start_position = tok_s_to_ns_map[start_position]\n    if ns_start_position in orig_ns_to_s_map:\n      orig_start_position = orig_ns_to_s_map[ns_start_position]\n\n  if orig_start_position is None:\n    if FLAGS.verbose_logging:\n      tf.logging.info(\"Couldn't map start position\")\n    return orig_text\n\n  orig_end_position = None\n  if end_position in tok_s_to_ns_map:\n    ns_end_position = tok_s_to_ns_map[end_position]\n    if ns_end_position in orig_ns_to_s_map:\n      orig_end_position = orig_ns_to_s_map[ns_end_position]\n\n  if orig_end_position is None:\n    if FLAGS.verbose_logging:\n      tf.logging.info(\"Couldn't map end position\")\n    return orig_text\n\n  output_text = orig_text[orig_start_position:(orig_end_position + 1)]\n  return output_text\n\n\ndef _get_best_indexes(logits, n_best_size):\n  \"\"\"Get the n-best logits from a list.\"\"\"\n  index_and_score = sorted(enumerate(logits), key=lambda x: x[1], reverse=True)\n\n  best_indexes = []\n  for i in range(len(index_and_score)):\n    if i >= n_best_size:\n      break\n    best_indexes.append(index_and_score[i][0])\n  return best_indexes\n\n\ndef _compute_softmax(scores):\n  \"\"\"Compute softmax probability over raw logits.\"\"\"\n  if not scores:\n    return []\n\n  max_score = None\n  for score in scores:\n    if max_score is None or score > max_score:\n      max_score = score\n\n  exp_scores = []\n  total_sum = 0.0\n  for score in scores:\n    x = math.exp(score - max_score)\n    exp_scores.append(x)\n    total_sum += x\n\n  probs = []\n  for score in exp_scores:\n    probs.append(score / total_sum)\n  return probs\n\n\nclass FeatureWriter(object):\n  \"\"\"Writes InputFeature to TF example file.\"\"\"\n\n  def __init__(self, filename, is_training):\n    self.filename = filename\n    self.is_training = is_training\n    self.num_features = 0\n    self._writer = tf.python_io.TFRecordWriter(filename)\n\n  def process_feature(self, feature):\n    \"\"\"Write a InputFeature to the TFRecordWriter as a tf.train.Example.\"\"\"\n    self.num_features += 1\n\n    def create_int_feature(values):\n      feature = tf.train.Feature(\n          int64_list=tf.train.Int64List(value=list(values)))\n      return feature\n\n    features = collections.OrderedDict()\n    features[\"unique_ids\"] = create_int_feature([feature.unique_id])\n    features[\"input_ids\"] = create_int_feature(feature.input_ids)\n    features[\"input_mask\"] = create_int_feature(feature.input_mask)\n    features[\"segment_ids\"] = create_int_feature(feature.segment_ids)\n\n    if self.is_training:\n      features[\"start_positions\"] = create_int_feature([feature.start_position])\n      features[\"end_positions\"] = create_int_feature([feature.end_position])\n\n    tf_example = tf.train.Example(features=tf.train.Features(feature=features))\n    self._writer.write(tf_example.SerializeToString())\n\n  def close(self):\n    self._writer.close()\n\n\ndef validate_flags_or_throw(bert_config):\n  \"\"\"Validate the input FLAGS or throw an exception.\"\"\"\n  if not FLAGS.do_train and not FLAGS.do_predict:\n    raise ValueError(\"At least one of `do_train` or `do_predict` must be True.\")\n\n  if FLAGS.do_train:\n    if not FLAGS.train_file:\n      raise ValueError(\n          \"If `do_train` is True, then `train_file` must be specified.\")\n  if FLAGS.do_predict:\n    if not FLAGS.predict_file:\n      raise ValueError(\n          \"If `do_predict` is True, then `predict_file` must be specified.\")\n\n  if FLAGS.max_seq_length > bert_config.max_position_embeddings:\n    raise ValueError(\n        \"Cannot use sequence length %d because the BERT model \"\n        \"was only trained up to sequence length %d\" %\n        (FLAGS.max_seq_length, bert_config.max_position_embeddings))\n\n  if FLAGS.max_seq_length <= FLAGS.max_query_length + 3:\n    raise ValueError(\n        \"The max_seq_length (%d) must be greater than max_query_length \"\n        \"(%d) + 3\" % (FLAGS.max_seq_length, FLAGS.max_query_length))\n\n\ndef main(_):\n  tf.logging.set_verbosity(tf.logging.INFO)\n\n  bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n\n  validate_flags_or_throw(bert_config)\n\n  tf.gfile.MakeDirs(FLAGS.output_dir)\n\n  tokenizer = tokenization.FullTokenizer(\n      vocab_file=FLAGS.vocab_file, do_lower_case=FLAGS.do_lower_case)\n\n  tpu_cluster_resolver = None\n  if FLAGS.use_tpu and FLAGS.tpu_name:\n    tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(\n        FLAGS.tpu_name, zone=FLAGS.tpu_zone, project=FLAGS.gcp_project)\n\n  is_per_host = tf.contrib.tpu.InputPipelineConfig.PER_HOST_V2\n  run_config = tf.contrib.tpu.RunConfig(\n      cluster=tpu_cluster_resolver,\n      master=FLAGS.master,\n      model_dir=FLAGS.output_dir,\n      save_checkpoints_steps=FLAGS.save_checkpoints_steps,\n      tpu_config=tf.contrib.tpu.TPUConfig(\n          iterations_per_loop=FLAGS.iterations_per_loop,\n          num_shards=FLAGS.num_tpu_cores,\n          per_host_input_for_training=is_per_host))\n\n  train_examples = None\n  num_train_steps = None\n  num_warmup_steps = None\n  if FLAGS.do_train:\n    train_examples = read_squad_examples(\n        input_file=FLAGS.train_file, is_training=True)\n    num_train_steps = int(\n        len(train_examples) / FLAGS.train_batch_size * FLAGS.num_train_epochs)\n    num_warmup_steps = int(num_train_steps * FLAGS.warmup_proportion)\n\n    # Pre-shuffle the input to avoid having to make a very large shuffle\n    # buffer in in the `input_fn`.\n    rng = random.Random(12345)\n    rng.shuffle(train_examples)\n\n  model_fn = model_fn_builder(\n      bert_config=bert_config,\n      init_checkpoint=FLAGS.init_checkpoint,\n      learning_rate=FLAGS.learning_rate,\n      num_train_steps=num_train_steps,\n      num_warmup_steps=num_warmup_steps,\n      use_tpu=FLAGS.use_tpu,\n      use_one_hot_embeddings=FLAGS.use_tpu)\n\n  # If TPU is not available, this will fall back to normal Estimator on CPU\n  # or GPU.\n  estimator = tf.contrib.tpu.TPUEstimator(\n      use_tpu=FLAGS.use_tpu,\n      model_fn=model_fn,\n      config=run_config,\n      train_batch_size=FLAGS.train_batch_size,\n      predict_batch_size=FLAGS.predict_batch_size)\n\n  if FLAGS.do_train:\n    # We write to a temporary file to avoid storing very large constant tensors\n    # in memory.\n    train_writer = FeatureWriter(\n        filename=os.path.join(FLAGS.output_dir, \"train.tf_record\"),\n        is_training=True)\n    convert_examples_to_features(\n        examples=train_examples,\n        tokenizer=tokenizer,\n        max_seq_length=FLAGS.max_seq_length,\n        doc_stride=FLAGS.doc_stride,\n        max_query_length=FLAGS.max_query_length,\n        is_training=True,\n        output_fn=train_writer.process_feature)\n    train_writer.close()\n\n    tf.logging.info(\"***** Running training *****\")\n    tf.logging.info(\"  Num orig examples = %d\", len(train_examples))\n    tf.logging.info(\"  Num split examples = %d\", train_writer.num_features)\n    tf.logging.info(\"  Batch size = %d\", FLAGS.train_batch_size)\n    tf.logging.info(\"  Num steps = %d\", num_train_steps)\n    del train_examples\n\n    train_input_fn = input_fn_builder(\n        input_file=train_writer.filename,\n        seq_length=FLAGS.max_seq_length,\n        is_training=True,\n        drop_remainder=True)\n    estimator.train(input_fn=train_input_fn, max_steps=num_train_steps)\n\n  if FLAGS.do_predict:\n    eval_examples = read_squad_examples(\n        input_file=FLAGS.predict_file, is_training=False)\n\n    eval_writer = FeatureWriter(\n        filename=os.path.join(FLAGS.output_dir, \"eval.tf_record\"),\n        is_training=False)\n    eval_features = []\n\n    def append_feature(feature):\n      eval_features.append(feature)\n      eval_writer.process_feature(feature)\n\n    convert_examples_to_features(\n        examples=eval_examples,\n        tokenizer=tokenizer,\n        max_seq_length=FLAGS.max_seq_length,\n        doc_stride=FLAGS.doc_stride,\n        max_query_length=FLAGS.max_query_length,\n        is_training=False,\n        output_fn=append_feature)\n    eval_writer.close()\n\n    tf.logging.info(\"***** Running predictions *****\")\n    tf.logging.info(\"  Num orig examples = %d\", len(eval_examples))\n    tf.logging.info(\"  Num split examples = %d\", len(eval_features))\n    tf.logging.info(\"  Batch size = %d\", FLAGS.predict_batch_size)\n\n    all_results = []\n\n    predict_input_fn = input_fn_builder(\n        input_file=eval_writer.filename,\n        seq_length=FLAGS.max_seq_length,\n        is_training=False,\n        drop_remainder=False)\n\n    # If running eval on the TPU, you will need to specify the number of\n    # steps.\n    all_results = []\n    for result in estimator.predict(\n        predict_input_fn, yield_single_examples=True):\n      if len(all_results) % 1000 == 0:\n        tf.logging.info(\"Processing example: %d\" % (len(all_results)))\n      unique_id = int(result[\"unique_ids\"])\n      start_logits = [float(x) for x in result[\"start_logits\"].flat]\n      end_logits = [float(x) for x in result[\"end_logits\"].flat]\n      all_results.append(\n          RawResult(\n              unique_id=unique_id,\n              start_logits=start_logits,\n              end_logits=end_logits))\n\n    output_prediction_file = os.path.join(FLAGS.output_dir, \"predictions.json\")\n    output_nbest_file = os.path.join(FLAGS.output_dir, \"nbest_predictions.json\")\n    write_predictions(eval_examples, eval_features, all_results,\n                      FLAGS.n_best_size, FLAGS.max_answer_length,\n                      FLAGS.do_lower_case, output_prediction_file,\n                      output_nbest_file)\n\n\nif __name__ == \"__main__\":\n  flags.mark_flag_as_required(\"vocab_file\")\n  flags.mark_flag_as_required(\"bert_config_file\")\n  flags.mark_flag_as_required(\"output_dir\")\n  tf.app.run()\n"
  },
  {
    "path": "third/bert/tokenization.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Tokenization classes.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport unicodedata\nimport six\nimport tensorflow as tf\n\n\ndef convert_to_unicode(text):\n  \"\"\"Converts `text` to Unicode (if it's not already), assuming utf-8 input.\"\"\"\n  if six.PY3:\n    if isinstance(text, str):\n      return text\n    elif isinstance(text, bytes):\n      return text.decode(\"utf-8\", \"ignore\")\n    else:\n      raise ValueError(\"Unsupported string type: %s\" % (type(text)))\n  elif six.PY2:\n    if isinstance(text, str):\n      return text.decode(\"utf-8\", \"ignore\")\n    elif isinstance(text, unicode):\n      return text\n    else:\n      raise ValueError(\"Unsupported string type: %s\" % (type(text)))\n  else:\n    raise ValueError(\"Not running on Python2 or Python 3?\")\n\n\ndef printable_text(text):\n  \"\"\"Returns text encoded in a way suitable for print or `tf.logging`.\"\"\"\n\n  # These functions want `str` for both Python2 and Python3, but in one case\n  # it's a Unicode string and in the other it's a byte string.\n  if six.PY3:\n    if isinstance(text, str):\n      return text\n    elif isinstance(text, bytes):\n      return text.decode(\"utf-8\", \"ignore\")\n    else:\n      raise ValueError(\"Unsupported string type: %s\" % (type(text)))\n  elif six.PY2:\n    if isinstance(text, str):\n      return text\n    elif isinstance(text, unicode):\n      return text.encode(\"utf-8\")\n    else:\n      raise ValueError(\"Unsupported string type: %s\" % (type(text)))\n  else:\n    raise ValueError(\"Not running on Python2 or Python 3?\")\n\n\ndef load_vocab(vocab_file):\n  \"\"\"Loads a vocabulary file into a dictionary.\"\"\"\n  vocab = collections.OrderedDict()\n  index = 0\n  with tf.gfile.GFile(vocab_file, \"r\") as reader:\n    while True:\n      token = convert_to_unicode(reader.readline())\n      if not token:\n        break\n      token = token.strip()\n      vocab[token] = index\n      index += 1\n  return vocab\n\n\ndef convert_tokens_to_ids(vocab, tokens):\n  \"\"\"Converts a sequence of tokens into ids using the vocab.\"\"\"\n  ids = []\n  for token in tokens:\n    ids.append(vocab[token])\n  return ids\n\n\ndef whitespace_tokenize(text):\n  \"\"\"Runs basic whitespace cleaning and splitting on a peice of text.\"\"\"\n  text = text.strip()\n  if not text:\n    return []\n  tokens = text.split()\n  return tokens\n\n\nclass FullTokenizer(object):\n  \"\"\"Runs end-to-end tokenziation.\"\"\"\n\n  def __init__(self, vocab_file, do_lower_case=True):\n    self.vocab = load_vocab(vocab_file)\n    self.basic_tokenizer = BasicTokenizer(do_lower_case=do_lower_case)\n    self.wordpiece_tokenizer = WordpieceTokenizer(vocab=self.vocab)\n\n  def tokenize(self, text):\n    split_tokens = []\n    for token in self.basic_tokenizer.tokenize(text):\n      for sub_token in self.wordpiece_tokenizer.tokenize(token):\n        split_tokens.append(sub_token)\n\n    return split_tokens\n\n  def convert_tokens_to_ids(self, tokens):\n    return convert_tokens_to_ids(self.vocab, tokens)\n\n\nclass BasicTokenizer(object):\n  \"\"\"Runs basic tokenization (punctuation splitting, lower casing, etc.).\"\"\"\n\n  def __init__(self, do_lower_case=True):\n    \"\"\"Constructs a BasicTokenizer.\n\n    Args:\n      do_lower_case: Whether to lower case the input.\n    \"\"\"\n    self.do_lower_case = do_lower_case\n\n  def tokenize(self, text):\n    \"\"\"Tokenizes a piece of text.\"\"\"\n    text = convert_to_unicode(text)\n    text = self._clean_text(text)\n\n    # This was added on November 1st, 2018 for the multilingual and Chinese\n    # models. This is also applied to the English models now, but it doesn't\n    # matter since the English models were not trained on any Chinese data\n    # and generally don't have any Chinese data in them (there are Chinese\n    # characters in the vocabulary because Wikipedia does have some Chinese\n    # words in the English Wikipedia.).\n    text = self._tokenize_chinese_chars(text)\n\n    orig_tokens = whitespace_tokenize(text)\n    split_tokens = []\n    for token in orig_tokens:\n      if self.do_lower_case:\n        token = token.lower()\n        token = self._run_strip_accents(token)\n      split_tokens.extend(self._run_split_on_punc(token))\n\n    output_tokens = whitespace_tokenize(\" \".join(split_tokens))\n    return output_tokens\n\n  def _run_strip_accents(self, text):\n    \"\"\"Strips accents from a piece of text.\"\"\"\n    text = unicodedata.normalize(\"NFD\", text)\n    output = []\n    for char in text:\n      cat = unicodedata.category(char)\n      if cat == \"Mn\":\n        continue\n      output.append(char)\n    return \"\".join(output)\n\n  def _run_split_on_punc(self, text):\n    \"\"\"Splits punctuation on a piece of text.\"\"\"\n    chars = list(text)\n    i = 0\n    start_new_word = True\n    output = []\n    while i < len(chars):\n      char = chars[i]\n      if _is_punctuation(char):\n        output.append([char])\n        start_new_word = True\n      else:\n        if start_new_word:\n          output.append([])\n        start_new_word = False\n        output[-1].append(char)\n      i += 1\n\n    return [\"\".join(x) for x in output]\n\n  def _tokenize_chinese_chars(self, text):\n    \"\"\"Adds whitespace around any CJK character.\"\"\"\n    output = []\n    for char in text:\n      cp = ord(char)\n      if self._is_chinese_char(cp):\n        output.append(\" \")\n        output.append(char)\n        output.append(\" \")\n      else:\n        output.append(char)\n    return \"\".join(output)\n\n  def _is_chinese_char(self, cp):\n    \"\"\"Checks whether CP is the codepoint of a CJK character.\"\"\"\n    # This defines a \"chinese character\" as anything in the CJK Unicode block:\n    #   https://en.wikipedia.org/wiki/CJK_Unified_Ideographs_(Unicode_block)\n    #\n    # Note that the CJK Unicode block is NOT all Japanese and Korean characters,\n    # despite its name. The modern Korean Hangul alphabet is a different block,\n    # as is Japanese Hiragana and Katakana. Those alphabets are used to write\n    # space-separated words, so they are not treated specially and handled\n    # like the all of the other languages.\n    if ((cp >= 0x4E00 and cp <= 0x9FFF) or  #\n        (cp >= 0x3400 and cp <= 0x4DBF) or  #\n        (cp >= 0x20000 and cp <= 0x2A6DF) or  #\n        (cp >= 0x2A700 and cp <= 0x2B73F) or  #\n        (cp >= 0x2B740 and cp <= 0x2B81F) or  #\n        (cp >= 0x2B820 and cp <= 0x2CEAF) or\n        (cp >= 0xF900 and cp <= 0xFAFF) or  #\n        (cp >= 0x2F800 and cp <= 0x2FA1F)):  #\n      return True\n\n    return False\n\n  def _clean_text(self, text):\n    \"\"\"Performs invalid character removal and whitespace cleanup on text.\"\"\"\n    output = []\n    for char in text:\n      cp = ord(char)\n      if cp == 0 or cp == 0xfffd or _is_control(char):\n        continue\n      if _is_whitespace(char):\n        output.append(\" \")\n      else:\n        output.append(char)\n    return \"\".join(output)\n\n\nclass WordpieceTokenizer(object):\n  \"\"\"Runs WordPiece tokenziation.\"\"\"\n\n  def __init__(self, vocab, unk_token=\"[UNK]\", max_input_chars_per_word=100):\n    self.vocab = vocab\n    self.unk_token = unk_token\n    self.max_input_chars_per_word = max_input_chars_per_word\n\n  def tokenize(self, text):\n    \"\"\"Tokenizes a piece of text into its word pieces.\n\n    This uses a greedy longest-match-first algorithm to perform tokenization\n    using the given vocabulary.\n\n    For example:\n      input = \"unaffable\"\n      output = [\"un\", \"##aff\", \"##able\"]\n\n    Args:\n      text: A single token or whitespace separated tokens. This should have\n        already been passed through `BasicTokenizer.\n\n    Returns:\n      A list of wordpiece tokens.\n    \"\"\"\n\n    text = convert_to_unicode(text)\n\n    output_tokens = []\n    for token in whitespace_tokenize(text):\n      chars = list(token)\n      if len(chars) > self.max_input_chars_per_word:\n        output_tokens.append(self.unk_token)\n        continue\n\n      is_bad = False\n      start = 0\n      sub_tokens = []\n      while start < len(chars):\n        end = len(chars)\n        cur_substr = None\n        while start < end:\n          substr = \"\".join(chars[start:end])\n          if start > 0:\n            substr = \"##\" + substr\n          if substr in self.vocab:\n            cur_substr = substr\n            break\n          end -= 1\n        if cur_substr is None:\n          is_bad = True\n          break\n        sub_tokens.append(cur_substr)\n        start = end\n\n      if is_bad:\n        output_tokens.append(self.unk_token)\n      else:\n        output_tokens.extend(sub_tokens)\n    return output_tokens\n\n\ndef _is_whitespace(char):\n  \"\"\"Checks whether `chars` is a whitespace character.\"\"\"\n  # \\t, \\n, and \\r are technically contorl characters but we treat them\n  # as whitespace since they are generally considered as such.\n  if char == \" \" or char == \"\\t\" or char == \"\\n\" or char == \"\\r\":\n    return True\n  cat = unicodedata.category(char)\n  if cat == \"Zs\":\n    return True\n  return False\n\n\ndef _is_control(char):\n  \"\"\"Checks whether `chars` is a control character.\"\"\"\n  # These are technically control characters but we count them as whitespace\n  # characters.\n  if char == \"\\t\" or char == \"\\n\" or char == \"\\r\":\n    return False\n  cat = unicodedata.category(char)\n  if cat.startswith(\"C\"):\n    return True\n  return False\n\n\ndef _is_punctuation(char):\n  \"\"\"Checks whether `chars` is a punctuation character.\"\"\"\n  cp = ord(char)\n  # We treat all non-letter/number ASCII as punctuation.\n  # Characters such as \"^\", \"$\", and \"`\" are not in the Unicode\n  # Punctuation class but we treat them as punctuation anyways, for\n  # consistency.\n  if ((cp >= 33 and cp <= 47) or (cp >= 58 and cp <= 64) or\n      (cp >= 91 and cp <= 96) or (cp >= 123 and cp <= 126)):\n    return True\n  cat = unicodedata.category(char)\n  if cat.startswith(\"P\"):\n    return True\n  return False\n"
  },
  {
    "path": "third/bert/tokenization_test.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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.\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport tempfile\n\nimport tokenization\nimport tensorflow as tf\n\n\nclass TokenizationTest(tf.test.TestCase):\n\n  def test_full_tokenizer(self):\n    vocab_tokens = [\n        \"[UNK]\", \"[CLS]\", \"[SEP]\", \"want\", \"##want\", \"##ed\", \"wa\", \"un\", \"runn\",\n        \"##ing\", \",\"\n    ]\n    with tempfile.NamedTemporaryFile(delete=False) as vocab_writer:\n      vocab_writer.write(\"\".join([x + \"\\n\" for x in vocab_tokens]))\n\n      vocab_file = vocab_writer.name\n\n    tokenizer = tokenization.FullTokenizer(vocab_file)\n    os.unlink(vocab_file)\n\n    tokens = tokenizer.tokenize(u\"UNwant\\u00E9d,running\")\n    self.assertAllEqual(tokens, [\"un\", \"##want\", \"##ed\", \",\", \"runn\", \"##ing\"])\n\n    self.assertAllEqual(\n        tokenizer.convert_tokens_to_ids(tokens), [7, 4, 5, 10, 8, 9])\n\n  def test_chinese(self):\n    tokenizer = tokenization.BasicTokenizer()\n\n    self.assertAllEqual(\n        tokenizer.tokenize(u\"ah\\u535A\\u63A8zz\"),\n        [u\"ah\", u\"\\u535A\", u\"\\u63A8\", u\"zz\"])\n\n  def test_basic_tokenizer_lower(self):\n    tokenizer = tokenization.BasicTokenizer(do_lower_case=True)\n\n    self.assertAllEqual(\n        tokenizer.tokenize(u\" \\tHeLLo!how  \\n Are yoU?  \"),\n        [\"hello\", \"!\", \"how\", \"are\", \"you\", \"?\"])\n    self.assertAllEqual(tokenizer.tokenize(u\"H\\u00E9llo\"), [\"hello\"])\n\n  def test_basic_tokenizer_no_lower(self):\n    tokenizer = tokenization.BasicTokenizer(do_lower_case=False)\n\n    self.assertAllEqual(\n        tokenizer.tokenize(u\" \\tHeLLo!how  \\n Are yoU?  \"),\n        [\"HeLLo\", \"!\", \"how\", \"Are\", \"yoU\", \"?\"])\n\n  def test_wordpiece_tokenizer(self):\n    vocab_tokens = [\n        \"[UNK]\", \"[CLS]\", \"[SEP]\", \"want\", \"##want\", \"##ed\", \"wa\", \"un\", \"runn\",\n        \"##ing\"\n    ]\n\n    vocab = {}\n    for (i, token) in enumerate(vocab_tokens):\n      vocab[token] = i\n    tokenizer = tokenization.WordpieceTokenizer(vocab=vocab)\n\n    self.assertAllEqual(tokenizer.tokenize(\"\"), [])\n\n    self.assertAllEqual(\n        tokenizer.tokenize(\"unwanted running\"),\n        [\"un\", \"##want\", \"##ed\", \"runn\", \"##ing\"])\n\n    self.assertAllEqual(\n        tokenizer.tokenize(\"unwantedX running\"), [\"[UNK]\", \"runn\", \"##ing\"])\n\n  def test_convert_tokens_to_ids(self):\n    vocab_tokens = [\n        \"[UNK]\", \"[CLS]\", \"[SEP]\", \"want\", \"##want\", \"##ed\", \"wa\", \"un\", \"runn\",\n        \"##ing\"\n    ]\n\n    vocab = {}\n    for (i, token) in enumerate(vocab_tokens):\n      vocab[token] = i\n\n    self.assertAllEqual(\n        tokenization.convert_tokens_to_ids(\n            vocab, [\"un\", \"##want\", \"##ed\", \"runn\", \"##ing\"]), [7, 4, 5, 8, 9])\n\n  def test_is_whitespace(self):\n    self.assertTrue(tokenization._is_whitespace(u\" \"))\n    self.assertTrue(tokenization._is_whitespace(u\"\\t\"))\n    self.assertTrue(tokenization._is_whitespace(u\"\\r\"))\n    self.assertTrue(tokenization._is_whitespace(u\"\\n\"))\n    self.assertTrue(tokenization._is_whitespace(u\"\\u00A0\"))\n\n    self.assertFalse(tokenization._is_whitespace(u\"A\"))\n    self.assertFalse(tokenization._is_whitespace(u\"-\"))\n\n  def test_is_control(self):\n    self.assertTrue(tokenization._is_control(u\"\\u0005\"))\n\n    self.assertFalse(tokenization._is_control(u\"A\"))\n    self.assertFalse(tokenization._is_control(u\" \"))\n    self.assertFalse(tokenization._is_control(u\"\\t\"))\n    self.assertFalse(tokenization._is_control(u\"\\r\"))\n\n  def test_is_punctuation(self):\n    self.assertTrue(tokenization._is_punctuation(u\"-\"))\n    self.assertTrue(tokenization._is_punctuation(u\"$\"))\n    self.assertTrue(tokenization._is_punctuation(u\"`\"))\n    self.assertTrue(tokenization._is_punctuation(u\".\"))\n\n    self.assertFalse(tokenization._is_punctuation(u\"A\"))\n    self.assertFalse(tokenization._is_punctuation(u\" \"))\n\n\nif __name__ == \"__main__\":\n  tf.test.main()\n"
  },
  {
    "path": "tools/dump-word-embedding.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   show-var-of-model.py\n#        \\author   chenghuige  \n#          \\date   2017-09-06 07:52:34.258312\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport melt \nimport numpy as np\n\nfrom tensorflow.python import pywrap_tensorflow\nmodel_dir = sys.argv[1]\ncheckpoint_path = melt.get_model_path(model_dir)\nreader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)\nvar_to_shape_map = reader.get_variable_to_shape_map()\nfor key in var_to_shape_map:\n  if key == 'model/embedding/embedding_kernel':\n    print(\"tensor_name: \", key)\n    print(reader.get_tensor(key)) \n    np.save('word-embedding.npy', reader.get_tensor(key))\n"
  },
  {
    "path": "tools/show-var-of-model.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   show-var-of-model.py\n#        \\author   chenghuige  \n#          \\date   2017-09-06 07:52:34.258312\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport melt\n\nfrom tensorflow.python import pywrap_tensorflow\nmodel_dir = sys.argv[1]\nvar_name = sys.argv[2]\ncheckpoint_path = melt.get_model_path(model_dir)\nreader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)\nvar_to_shape_map = reader.get_variable_to_shape_map()\nfor key in var_to_shape_map:\n  if var_name in key:\n    print(\"tensor_name: \", key)\n    print(reader.get_tensor(key))\n"
  },
  {
    "path": "utils/README.md",
    "content": "gezi common lib \nmelt tf related\nlele torch related \n"
  },
  {
    "path": "utils/gezi/__init__.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 16:32:00.341661\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n \nfrom gezi.timer import *\nfrom gezi.nowarning import * \nfrom gezi.gezi_util import * \nfrom gezi.avg_score import *\nfrom gezi.zhtools import *\nfrom gezi.util import * \nfrom gezi.rank_metrics import *\nfrom gezi.topn import *\nfrom gezi.vocabulary import Vocabulary\nfrom gezi.word_counter import WordCounter\nfrom gezi.ngram import *\nfrom gezi.hash import *\n\nimport warnings\nwarnings.simplefilter(\"ignore\", RuntimeWarning) \nwarnings.filterwarnings(\"ignore\", category=FutureWarning)\n\n#if using baidu segmentor set encoding='gbk'\nencoding='utf8' \n#encoding='gbk'\n\ntry:\n  import matplotlib\n  matplotlib.use('Agg')\nexcept Exception:\n  pass \n\nfrom gezi.summary import SummaryWriter\n\nimport traceback\n\nfrom gezi.segment import *\n#try:\n#  from gezi.libgezi_util import *\n#  import gezi.libgezi_util as libgezi_util\n#  from gezi.segment import *\n#  import gezi.bigdata_util\n#except Exception:\n#  print(traceback.format_exc(), file=sys.stderr)\n#  print('import libgezi, segment bigdata_util fail')\n#\n#try:\n#  from gezi.pydict import *\n#except Exception:\n#  #print(traceback.format_exc(), file=sys.stderr)\n#  #print('import pydict fail')\n#  pass\n\ntry:\n  from gezi.libgezi_util import *\nexcept Exception:\n  print(traceback.format_exc(), file=sys.stderr)\n\ntry:\n  import gezi.metrics\nexcept Exception:\n  print(traceback.format_exc(), file=sys.stderr) \n\ntry:\n  import gezi.melt\n  from gezi.melt import *\nexcept Exception:\n  print(traceback.format_exc(), file=sys.stderr)  \n"
  },
  {
    "path": "utils/gezi/avg_score.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   avg_loss.py\n#        \\author   chenghuige  \n#          \\date   2016-08-17 12:01:41.003969\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\nclass AvgScore():\n  \"\"\"\n  Calcuatlate avg scores, input can be single value or list\n  Not using numpy, so may be much slower then numpy version, now mainly used for tensorflow testers\n  \"\"\"\n  def __init__(self):\n    self.reset()\n  \n  def reset(self):\n    self.num_steps = 0\n    self.total_score = 0.\n    self.total_scores = None\n\n  def add(self, score):\n    if isinstance(score, list):\n      if self.total_scores is None:\n        self.total_scores = score\n      else:\n        self.total_scores =[sum(x) for x in zip(self.total_scores, score)]\n    else: \n      self.total_score += score\n    self.num_steps += 1\n\n  #@property\n  def avg_score(self):\n    if self.total_scores is None:\n      avg_score_ = self.total_score / self.num_steps \n    else:\n      avg_score_ = [x / self.num_steps for x in self.total_scores]\n    self.reset()\n    return avg_score_\n    \n  \n"
  },
  {
    "path": "utils/gezi/bigdata_util.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   bigdata_util.py\n#        \\author   chenghuige  \n#          \\date   2016-08-26 17:43:05.542995\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n#@TODO glob and tf.GFile.Glob diff?\nimport sys\nimport glob as local_glob\n\ntry:\n  import pyhdfs\nexcept Exception:\n  pass\n\nHDFS_START = 'hdfs://'\n\n#@TODO config ?\nNODE_ADDRESS = ''\nNODE_PORT = 54310\nUSER_NAME = ''\nUSE_PASSWORD = ''\n\nSTART_DIR='/app/'\n\nhandle = None \n\ndef init():\n  global handle\n  if handle is None:\n    handle = pyhdfs.hdfsConnectAsUser(NODE_ADDRESS, NODE_PORT, USER_NAME, USE_PASSWORD)\n  return handle \n\ndef get_handle():\n  init()\n  return handle\n\ndef fullpath(path):\n  return '{}{}:{}/{}'.format(HDFS_START, NODE_ADDRESS, NODE_PORT, path)\n\ndef glob(file_pattern):\n  \"\"\"\n  @depreciated\n  Now I only find pyhdfs.hdfsListDirectory, @TODO support hdfsGlob \n  \"\"\"\n  if file_pattern.startswith(HDFS_START):\n    handle = get_handle()\n    # hdfs://\n    return pyhdfs.hdfsListDirectory(handle, file_pattern)\n  elif file_pattern.startswith(START_DIR):\n    handle = get_handle()\n    # /app/tuku/..\n    result, num = pyhdfs.hdfsListDirectory(handle, fullpath(file_pattern))\n    return [item.mName for item in [pyhdfs.hdfsFileInfo_getitem(result, i) for i in xrange(num)] if item.mSize > 0]\n  return local_glob.glob(file_pattern)\n\ndef hdfs_listdir(dir):\n  #now only support listdir not glob\n  handle = get_handle()\n  result, num = pyhdfs.hdfsListDirectory(handle, fullpath(dir))\n  final_result = [item.mName for item in [pyhdfs.hdfsFileInfo_getitem(result, i) for i in xrange(num)] if item.mSize > 0]\n  print('ori result num:{}, final result num:{}'.format(num, len(final_result)), file=sys.stderr)\n  return final_result\n\nimport gezi\ndef list_files(input):\n  \"\"\"\n  @TODO support hdfsGlob \n  \"\"\"\n  if not input:\n    return []\n  local_files = gezi.list_files(input)\n  if local_files:\n    return local_files\n  if not input.startswith(START_DIR):\n    return []\n  #now only support listdir not glob\n  return hdfs_listdir(input)\n\ndef is_remote_path(path):\n  return path.startswith(START_DIR)\n  \n"
  },
  {
    "path": "utils/gezi/bleu.py",
    "content": "#!/usr/bin/python\n#http://www.cs.cmu.edu/afs/cs/project/cmt-55/lti/Courses/731/homework/HW7/moses/scripts/training/cmert-0.5/bleu.py\n# $Id: bleu.py 1307 2007-03-14 22:22:36Z hieuhoang1972 $\n\n'''Provides:\n\ncook_refs(refs, n=4): Transform a list of reference sentences as strings into a form usable by cook_test().\ncook_test(test, refs, n=4): Transform a test sentence as a string (together with the cooked reference sentences) into a form usable by score_cooked().\nscore_cooked(alltest, n=4): Score a list of cooked test sentences.\n\nscore_set(s, testid, refids, n=4): Interface with dataset.py; calculate BLEU score of testid against refids.\n\nThe reason for breaking the BLEU computation into three phases cook_refs(), cook_test(), and score_cooked() is to allow the caller to calculate BLEU scores for multiple test sets as efficiently as possible.\n'''\n\nimport optparse\nimport sys, math, re, xml.sax.saxutils\nsys.path.append('/fs/clip-mteval/Programs/hiero')\nimport dataset\nimport log\n\n# Added to bypass NIST-style pre-processing of hyp and ref files -- wade\nnonorm = 0\n\npreserve_case = False\neff_ref_len = \"shortest\"\n\nnormalize1 = [\n    ('<skipped>', ''),         # strip \"skipped\" tags\n    (r'-\\n', ''),              # strip end-of-line hyphenation and join lines\n    (r'\\n', ' '),              # join lines\n#    (r'(\\d)\\s+(?=\\d)', r'\\1'), # join digits\n]\nnormalize1 = [(re.compile(pattern), replace) for (pattern, replace) in normalize1]\n\nnormalize2 = [\n    (r'([\\{-\\~\\[-\\` -\\&\\(-\\+\\:-\\@\\/])',r' \\1 '), # tokenize punctuation. apostrophe is missing\n    (r'([^0-9])([\\.,])',r'\\1 \\2 '),              # tokenize period and comma unless preceded by a digit\n    (r'([\\.,])([^0-9])',r' \\1 \\2'),              # tokenize period and comma unless followed by a digit\n    (r'([0-9])(-)',r'\\1 \\2 ')                    # tokenize dash when preceded by a digit\n]\nnormalize2 = [(re.compile(pattern), replace) for (pattern, replace) in normalize2]\n\ndef normalize(s):\n    '''Normalize and tokenize text. This is lifted from NIST mteval-v11a.pl.'''\n    # Added to bypass NIST-style pre-processing of hyp and ref files -- wade\n    if (nonorm):\n        return s.split()\n    if type(s) is not str:\n        s = \" \".join(s)\n    # language-independent part:\n    for (pattern, replace) in normalize1:\n        s = re.sub(pattern, replace, s)\n    s = xml.sax.saxutils.unescape(s, {'&quot;':'\"'})\n    # language-dependent part (assuming Western languages):\n    s = \" %s \" % s\n    if not preserve_case:\n        s = s.lower()         # this might not be identical to the original\n    for (pattern, replace) in normalize2:\n        s = re.sub(pattern, replace, s)\n    return s.split()\n\ndef count_ngrams(words, n=4):\n    counts = {}\n    for k in xrange(1,n+1):\n        for i in xrange(len(words)-k+1):\n            ngram = tuple(words[i:i+k])\n            counts[ngram] = counts.get(ngram, 0)+1\n    return counts\n\ndef cook_refs(refs, n=4):\n    '''Takes a list of reference sentences for a single segment\n    and returns an object that encapsulates everything that BLEU\n    needs to know about them.'''\n    \n    refs = [normalize(ref) for ref in refs]\n    maxcounts = {}\n    for ref in refs:\n        counts = count_ngrams(ref, n)\n        for (ngram,count) in counts.iteritems():\n            maxcounts[ngram] = max(maxcounts.get(ngram,0), count)\n    return ([len(ref) for ref in refs], maxcounts)\n\ndef cook_test(test, (reflens, refmaxcounts), n=4):\n    '''Takes a test sentence and returns an object that\n    encapsulates everything that BLEU needs to know about it.'''\n    \n    test = normalize(test)\n    result = {}\n    result[\"testlen\"] = len(test)\n\n    # Calculate effective reference sentence length.\n    \n    if eff_ref_len == \"shortest\":\n        result[\"reflen\"] = min(reflens)\n    elif eff_ref_len == \"average\":\n        result[\"reflen\"] = float(sum(reflens))/len(reflens)\n    elif eff_ref_len == \"closest\":\n        min_diff = None\n        for reflen in reflens:\n            if min_diff is None or abs(reflen-len(test)) < min_diff:\n                min_diff = abs(reflen-len(test))\n                result['reflen'] = reflen\n\n    result[\"guess\"] = [max(len(test)-k+1,0) for k in xrange(1,n+1)]\n\n    result['correct'] = [0]*n\n    counts = count_ngrams(test, n)\n    for (ngram, count) in counts.iteritems():\n        result[\"correct\"][len(ngram)-1] += min(refmaxcounts.get(ngram,0), count)\n\n    return result\n\ndef score_cooked(allcomps, n=4):\n    totalcomps = {'testlen':0, 'reflen':0, 'guess':[0]*n, 'correct':[0]*n}\n    for comps in allcomps:\n        for key in ['testlen','reflen']:\n            totalcomps[key] += comps[key]\n        for key in ['guess','correct']:\n            for k in xrange(n):\n                totalcomps[key][k] += comps[key][k]\n    logbleu = 0.0\n    for k in xrange(n):\n        if totalcomps['correct'][k] == 0:\n            return 0.0\n        log.write(\"%d-grams: %f\\n\" % (k,float(totalcomps['correct'][k])/totalcomps['guess'][k]))\n        logbleu += math.log(totalcomps['correct'][k])-math.log(totalcomps['guess'][k])\n    logbleu /= float(n)\n    log.write(\"Effective reference length: %d test length: %d\\n\" % (totalcomps['reflen'], totalcomps['testlen']))\n    logbleu += min(0,1-float(totalcomps['reflen'])/totalcomps['testlen'])\n    return math.exp(logbleu)\n\ndef score_set(set, testid, refids, n=4):\n    alltest = []\n    for seg in set.segs():\n        try:\n            test = seg.versions[testid].words\n        except KeyError:\n            log.write(\"Warning: missing test sentence\\n\")\n            continue\n        try:\n            refs = [seg.versions[refid].words for refid in refids]\n        except KeyError:\n            log.write(\"Warning: missing reference sentence, %s\\n\" % seg.id)\n        refs = cook_refs(refs, n)\n        alltest.append(cook_test(test, refs, n))\n    log.write(\"%d sentences\\n\" % len(alltest))\n    return score_cooked(alltest, n)\n\nif __name__ == \"__main__\":\n    import psyco\n    psyco.full()\n\n    import getopt\n    raw_test = False\n    (opts,args) = getopt.getopt(sys.argv[1:], \"rc\", [])\n    for (opt,parm) in opts:\n        if opt == \"-r\":\n            raw_test = True\n        elif opt == \"-c\":\n            preserve_case = True\n    \n    s = dataset.Dataset()\n    if args[0] == '-':\n        infile = sys.stdin\n    else:\n        infile = args[0]\n    if raw_test:\n        (root, testids) = s.read_raw(infile, docid='whatever', sysid='testsys')\n    else:\n        (root, testids) = s.read(infile)\n    print \"Test systems: %s\" % \", \".join(testids)\n    (root, refids) = s.read(args[1])\n    print \"Reference systems: %s\" % \", \".join(refids)\n    \n    for testid in testids:\n        print \"BLEU score: \", score_set(s, testid, refids)\n            \n    \n"
  },
  {
    "path": "utils/gezi/gezi_util.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport time \nimport sys, os\nfrom collections import defaultdict\n\ndef gprint(convert2utf8, *content):\n  if convert2utf8:\n    print(' '.join([toutf8(str(x)) for x in content]))\n  else:\n    print(' '.join([str(x) for x in content]))\n\ndef uprint(*content):\n  print(' '.join([toutf8(str(x)) for x in content]))\n\ndef toutf8(content):\n  return content.decode('gbk', 'ignore').encode('utf8', 'ignore')\n\ndef togbk(content):\n  return content.decode('utf8', 'ignore').encode('gbk', 'ignore')\n\nfrom datetime import datetime\ndef now_time():\n  return datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n\ndef get_timestr(stamp): \n  ttime = stamp\n  try:\n    ttime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(stamp))\n  except Exception:\n    pass\n  return ttime\n\ndef get_datestr(stamp):\n  ttime = stamp\n  try:\n    ttime = time.strftime('%Y-%m-%d 00:00:00', time.localtime(stamp))\n  except Exception:\n    pass\n  return ttime\n\ndef pretty_print(df):\n  from StringIO import StringIO\n  import prettytable    \n\n  output = StringIO()\n  df.to_csv(output, index = False, sep ='\\t')\n  output.seek(0)\n  pt = prettytable.from_csv(output)\n  print(pt)\n\ndef print_list(l, sep='|'):\n  for item in l:\n    print(item, sep, end='')\n  print()\n\ndef get_words(l, ngram, sep = '\\x01'):\n  li = []\n  for i in range(len(l)):\n    for j in range(ngram):\n      if (i + j >= len(l)):\n        continue \n      li.append(sep.join(l[i : i + j + 1]))\n  return li \n\ndef get_ngram_words(l, ngram, sep = '\\x01'):\n  li = []\n  for i in range(len(l)):\n    for j in range(ngram):\n      if (i + j >= len(l)):\n        continue \n      li.append(sep.join(l[i : i + j + 1]))\n  return li \n\n#@TODO generalized skip n now only skip-n bigram\n#skip 1 2 3 4\ndef get_skipn_bigram(l, n, sep = '\\x01'):\n  li = []\n  l2 = ['0', '0']\n  for i in range(len(l) - 1 - n):\n    l2[0] = l[i]\n    l2[1] = l[i + 1 + n]\n    li.append(sep.join(l2))\n  return li \n\ndef get_skipn_bigram(l, li, n, sep = '\\x01'):\n  l2 = ['0', '0']\n  for i in range(len(l) - 1 - n):\n    l2[0] = l[i]\n    l2[1] = l[i + 1 + n]\n    li.append(sep.join(l2))\n\ndef get_skip_bigram(l, li, n, sep = '\\x01'):\n  for skip in range(1, n):\n    get_skipn_bigram(l, li, skip, sep)\n\ndef h2o(x):\n  if isinstance(x, dict):\n    return type('jo', (), {k: h2o(v) for k, v in x.iteritems()})\n  elif isinstance(x, list):\n    return [h2o(item) for item in x]\n  else:\n    return x\n\ndef h2o2(x):\n  if isinstance(x, dict):\n    return type('jo', (), {k: h2o2(v) for k, v in x.iteritems()})\n  elif isinstance(x, list):\n    return type('jo', (), {\"value\" + str(idx): h2o2(val) for idx, val in enumerate(x)})\n  else:\n    return x\n\ndef json2obj(s):\n  import json\n  a = h2o(json.loads(s))\n  if hasattr(a, 'data'):\n    return a.data\n  return a\n\ndef json2obj2(s):\n  import json\n  a = h2o2(json.loads(s))\n  if hasattr(a, 'data'):\n    return a.data\n  return a\n\ndef jsonfile2obj(path):\n  return json2obj(open(path).read().decode('gbk', 'ignore'))\n\ndef jsonfile2obj2(path):\n  return json2obj2(open(path).read().decode('gbk','ignore'))\n\ndef xmlfile2obj(path):\n  import xmltodict\n  doc = xmltodict.parse(open(path), process_namespaces=True)\n  a = h2o2(doc)\n  if hasattr(a, 'cereal'):\n    return a.cereal.data\n  return a\n\ndef xmlfile2obj2(path):\n  import xmltodict\n  doc = xmltodict.parse(open(path), process_namespaces=True)\n  a = h2o2(doc)\n  if hasattr(a, 'cereal'):\n    return a.cereal.data\n  return a\n\n#from matplotlib.pylab import show\n#def show(s = 'temp.png'):\n#\timport matplotlib.pylab as pl\n#\tpl.savefig(s)\n\n#from matplotlib.pylab import clf\n\ndef dict2map(dict_, map_):\n  for key,value in dict_.items():\n    map_[key] = value \n\ndef map2dict(map_):\n  dict_ = {}\n  for item in map_:\n    dict_[item.key] = item.data \n  return dict_\n\ndef list2vec(list_, vec_):\n  for item in list_:\n    vec_.append(item)\n\ndef list2vector(list_, vec_):\n  for item in list_:\n    vec_.push_back(item)\n\ndef vec2list(vec_):\n  list_ = []\n  for item in vec_:\n    list_.append(item)\n  return list_\n\ndef vector2list(vec_):\n  list_ = []\n  for i in xrange(vec_.size()):\n    list_.append(vec_[i])\n  return list_\n\ndef get_filepaths(directory):\n    \"\"\"\n    This function will generate the file names in a directory \n    tree by walking the tree either top-down or bottom-up. For each \n    directory in the tree rooted at directory top (including top itself), \n    it yields a 3-tuple (dirpath, dirnames, filenames).\n    \"\"\"\n    file_paths = []  # List which will store all of the full filepaths.\n\n    # Walk the tree.\n    for root, directories, files in os.walk(directory):\n        for filename in files:\n            # Join the two strings in order to form the full filepath.\n            filepath = os.path.join(root, filename)\n            file_paths.append(filepath)  # Add it to the list.\n\n    return file_paths  # Self-explanatory.\n    \ndef get_num_lines(file):\n  count = 0\n  for count, line in enumerate(open(file)):\n    pass\n  return count + 1\n"
  },
  {
    "path": "utils/gezi/hash.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   hash.py\n#        \\author   chenghuige  \n#          \\date   2018-04-28 12:04:55.557328\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\nimport hashlib\nimport six \nimport numpy as np\n\ndef hash_str(input):\n  if not six.PY2:\n    return hex(int(hashlib.sha256(input.encode('utf8')).hexdigest(), 16) % sys.maxsize)[2:]\n  else:\n  \t# ignore last L\n  \treturn hex(int(hashlib.sha256(input.encode('utf8')).hexdigest(), 16) % sys.maxsize)[2:-1]\n\n# NOTICE ! fasttext use uint32_t !\ndef fasttext_hash(word):\n  h = 2166136261\n  for w in word:\n    h = np.uint32(h ^ ord(w))\n    h = np.uint32(h * 16777619)\n  return h\n\nhash = fasttext_hash\n\n\n"
  },
  {
    "path": "utils/gezi/libgezi_util.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   libgezi_util.py\n#        \\author   chenghuige  \n#          \\date   2016-08-25 21:08:23.051951\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport six\nimport gezi.nowarning\nimport os\n\n\"\"\"\n@TODO gezi should remove boost.python dependence\nnow has libgezi_util and segment  depend on boost.python\n\"\"\"\n#@FIXME this might casue double free at the end, conflict with numpy in virutal env\nimport gezi\nchnormalizer = None\n\ndef to_simplify_(sentence):\n  assert six.PY2\n  global chnormalizer\n  import libchnormalizer\n  if not chnormalizer:\n    path = '/home/gezi/soft/bseg/data/ccode/'\n    if not os.path.exists(path):\n      path = './data/ccode'\n    chnormalizer = libchnormalizer.ChNormalizer()\n    chnormalizer.Load(path)\n  return chnormalizer.ToSimplified(sentence.decode('utf8', 'ignore').encode('gbk', 'ignore')).decode('gbk', 'ignore').encode('utf8', 'ignore')\n\ndef to_simplify(sentence):\n  assert six.PY2\n  global chnormalizer\n  import libchnormalizer\n  if not chnormalizer:\n    path = '/home/gezi/soft/bseg/data/ccode/'\n    if not os.path.exists(path):\n      path = './data/ccode'\n    chnormalizer = libchnormalizer.ChNormalizer()\n    chnormalizer.Load(path)  \n  res = []\n  l = []\n  sentence = sentence.decode('utf8')\n  for ch in sentence:\n    try:\n      gbk_ch = ch.encode('gbk')\n      l.append(gbk_ch)\n    except Exception:\n      if l:\n        chs = chnormalizer.ToSimplified(''.join(l)).decode('gbk').encode('utf8')\n        l = []\n        res.append(chs)\n      res.append(ch.encode('utf8'))\n  if l:\n    chs = chnormalizer.ToSimplified(''.join(l)).decode('gbk').encode('utf8')\n    res.append(chs)\n  return ''.join(res)\n\ndef normalize_(sentence, to_lower=True, to_simplify=True, to_half=True):\n  assert six.PY2\n  global chnormalizer\n  import libchnormalizer\n  if not chnormalizer:\n    path = '/home/gezi/soft/bseg/data/ccode/'\n    if not os.path.exists(path):\n      path = './data/ccode'\n    chnormalizer = libchnormalizer.ChNormalizer()\n    chnormalizer.Load(path)  \n  return chnormalizer.Normalize(sentence.decode('utf8', 'ignore').encode('gbk', 'ignore'), toLower=to_lower, toSimplified=to_simplify, toHalf=to_half).decode('gbk', 'ignore').encode('utf8', 'ignore')\n\ndef normalize(sentence, to_lower=True, to_simplify=True, to_half=True):\n  assert six.PY2\n  global chnormalizer\n  import libchnormalizer\n  if not chnormalizer:\n    path = '/home/gezi/soft/bseg/data/ccode/'\n    if not os.path.exists(path):\n      path = './data/ccode'\n    chnormalizer = libchnormalizer.ChNormalizer()\n    chnormalizer.Load(path)  \n  res = []\n  l = []\n  sentence = sentence.decode('utf8')\n  for ch in sentence:\n    try:\n      gbk_ch = ch.decode('utf8').encode('gbk')\n      l.append(gbk_ch)\n    except Exception:\n      if l:\n        chs = chnormalizer.Normalize(''.join(l), toLower=to_lower, toSimplified=to_simplify, toHalf=to_half).decode('gbk').encode('utf8')\n        l = []\n        res.append(chs)\n      res.append(ch.encode('utf8'))\n  if l:\n    chs = chnormalizer.Normalize(''.join(l), toLower=to_lower, toSimplified=to_simplify, toHalf=to_half).decode('gbk').encode('utf8')\n    res.append(chs)\n  return ''.join(res)\n\nif gezi.encoding == 'gbk' or gezi.env_has('BAIDU_SEG'):\n  import libgezi # must include this not sure why..\n  import libstring_util as su\n  def get_single_cns(text):\n    return su.to_cnvec(su.extract_chinese(text)) \n  \n  def is_single_cn(word):\n    word = word.decode('gbk', 'ignore')\n    return u'\\u4e00' <= word <= u'\\u9fff'\n\n  def get_single_chars(text):\n    l = [x.encode('gbk') for x in text.decode('gbk', 'ignore')]\n    return [x.strip() for x in l if x.strip()]\n\nelse:\n  def get_single_cns(text):\n    l = []\n    pre_is_cn = False \n    if six.PY2:\n      text = text.decode('utf-8', 'ignore')\n    for word in text:\n      if u'\\u4e00' <= word <= u'\\u9fff':\n        pre_is_cn = True\n        if l:\n          l.append(' ')\n      else:\n        if pre_is_cn:\n          l.append(' ')\n          pre_is_cn = False\n      if pre_is_cn:\n        l.append(word)\n    text = ''.join(l) \n    if six.PY2:\n      text = text.encode('utf-8')\n    l = text.split()\n    return [x.strip() for x in l if x.strip()]    \n\n  def is_cn(word):\n    if six.PY2:\n      word = word.decode('utf-8', 'ignore')\n    return u'\\u4e00' <= word <= u'\\u9fff'\n\n  def is_single_cn(word):\n    return len(get_single_cns(word)) == 1\n\n  def get_single_chars(text):\n    if six.PY2:\n      l = [x.encode('utf8') for x in text.decode('utf8', 'ignore')]\n    else:\n      l = [x for x in text]\n    return [x.strip() for x in l if x.strip()]\n"
  },
  {
    "path": "utils/gezi/melt/__init__.py",
    "content": "import gezi.melt.tfrecords\nfrom gezi.melt.util import * \nimport gezi.melt.logging\n"
  },
  {
    "path": "utils/gezi/melt/logging.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   logging.py\n#        \\author   chenghuige  \n#          \\date   2016-09-24 09:25:56.796006\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n# import tensorflow as tf\n# flags = tf.app.flags\n# FLAGS = flags.FLAGS\n\nimport sys\n\nimport logging\nimport logging.handlers\n\nimport gezi\n\n_logger = logging.getLogger('melt')\n\n_logger2 = logging.getLogger('melt2')\n   \n#_handler = logging.StreamHandler()\n#_handler.setLevel(logging.INFO)\n#_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT, None))\n#_logger.addHandler(_handler)\n#_logger.setLevel(logging.INFO)\n\nlog = _logger.log\n#debug = _logger.debug\n#error = _logger.error\n#fatal = _logger.fatal\n#info = _logger.info\n#warn = _logger.warn\n#warning = _logger.warning  \n\n#info2 = _logger2.info\n\nhvd = None\n\ndef set_hvd(hvd_):\n  global hvd \n  hvd = hvd_\n\ndef info(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.info(' '.join(\"{}\".format(a) for a in args))\n\ndef info2(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger2.info(' '.join(\"{}\".format(a) for a in args))\n\ndef fatal(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.fatal(' '.join(\"{}\".format(a) for a in args))\n\ndef error(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.error(' '.join(\"{}\".format(a) for a in args))\n\ndef debug(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.debug(' '.join(\"{}\".format(a) for a in args))\n\ndef warn(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.warn(' '.join(\"{}\".format(a) for a in args))\n\ndef warning(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.warning('WARNING: %s' % (' '.join(\"{}\".format(a) for a in args)))\n\nfrom datetime import timedelta\nimport time\n\nclass ElapsedFormatter():\n  def __init__(self):\n    self.start_time = time.time()\n  \n  def format(self, record):\n    elapsed_seconds = record.created - self.start_time\n    #using timedelta here for convenient default formatting\n    elapsed = timedelta(seconds = elapsed_seconds)\n    return \"{} {} {}\".format(gezi.now_time(), str(elapsed)[:-7], record.getMessage())\n\n_logging_file = None\n_logging_file2 = None\n\ndef _get_handler(file, formatter, split=True, split_bytime=False, mode = 'a', level=logging.INFO):\n  #setting below will set root logger write to _logging_file\n  #logging.basicConfig(filename=_logging_file, level=level, format=None)\n  #logging.basicConfig(filename=_logging_file, level=level)\n  #save one per 1024k/4, save at most 10G 1024\n  if split:\n    if not split_bytime:\n      file_handler = logging.handlers.RotatingFileHandler(file, mode=mode, maxBytes=1024*1024/4, backupCount=10240*4)\n    else:\n      file_handler = logging.handlers.TimedRotatingFileHandler(file, when='H', interval=1, backupCount=1024)\n      file_handler.suffix = \"%Y%m%d-%H%M\"\n  else:\n    file_handler = logging.FileHandler(_logging_file, mode=mode)  \n  file_handler.setLevel(level)  \n  file_handler.setFormatter(formatter)\n  return file_handler\n\ndef set_dir(path, file='log.html', logtostderr=True, logtofile=True, split=True, split_bytime=False, level=logging.INFO, mode='a'):\n  global _logger, _logging_file\n  if _logging_file is None:\n    if not path:\n      path = '/tmp/'\n    _logging_file = '%s/%s'%(path, file)\n    _logging_file2 = '%s/log.txt'%path\n    #formatter = logging.Formatter(\"%(asctime)s %(message)s\",\n    #                          \"%Y-%m-%d %H:%M:%S\")\n    formatter = ElapsedFormatter()\n    if logtofile:\n      gezi.try_mkdir(path)\n      file_handler = _get_handler(_logging_file, formatter, split, split_bytime, mode, level)\n      file_handler2 = _get_handler(_logging_file2, formatter, split, True, mode, level)\n      #file_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT, None))\n      _logger.addHandler(file_handler)\n      _logger2.addHandler(file_handler2)\n  \n    if logtostderr:\n      handler = logging.StreamHandler()\n      handler.setLevel(logging.INFO)\n      handler.setFormatter(formatter)\n      #handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT, None))\n      _logger.addHandler(handler)\n      _logger2.addHandler(handler)\n      \n      # some how new tf cause to logg twice.. \n      # https://stackoverflow.com/questions/19561058/duplicate-output-in-simple-python-logging-configuration\n      _logger.propagate = False \n      _logger2.propagate = False\n  \n    _logger.setLevel(level)\n    _logger2.setLevel(level)\n\ndef init(path, file='log.html', logtostderr=True, logtofile=True, split=True, split_bytime=False, level=logging.INFO, mode='a'):\n  #logging.basicConfig(level=logging.INFO, stream=sys.stdout) \n  set_dir(path=path, mode=mode, file=file, logtostderr=logtostderr, logtofile=logtofile, split=split, split_bytime=split_bytime, level=level)\n\ndef vlog(level, msg, *args, **kwargs):\n  _logger.log(level, msg, *args, **kwargs)\n\ndef get_verbosity():\n  \"\"\"Return how much logging output will be produced.\"\"\"\n  return _logger.getEffectiveLevel()\n\ndef set_verbosity(verbosity):\n  \"\"\"Sets the threshold for what messages will be logged.\"\"\"\n  _logger.setLevel(verbosity)\n\ndef get_logging_file():\n  return _logging_file\n"
  },
  {
    "path": "utils/gezi/melt/tfrecords.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   tfrecords.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 13:36:30.235928\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\nimport random  \n\nclass Writer(object):\n  def __init__(self, file, buffer_size=None):\n    import tensorflow as tf\n    random.seed(12345)\n    self.count = 0\n    self.buffer_size = buffer_size\n    self.writer = tf.python_io.TFRecordWriter(file)\n    self.buffer = [] if self.buffer_size else None\n\n  def __del__(self):\n    #print('del writer', file=sys.stderr)\n    self.close()\n\n  def __enter__(self):\n    return self  \n\n  def __exit__(self, exc_type, exc_value, traceback):\n    #print('close writer', file=sys.stderr)\n    self.close()\n\n  def close(self):\n    if self.buffer:\n      random.shuffle(self.buffer)\n      for example in self.buffer:\n        self.writer.write(example.SerializeToString())\n      self.buffer = []   \n\n  def finalize(self):\n    self.close()\n\n  def write(self, example):\n    self.count += 1\n    if self.buffer is not None:\n      self.buffer.append(example)\n      if len(self.buffer) >= self.buffer_size:\n        random.shuffle(self.buffer)\n        for example in self.buffer:\n          self.writer.write(example.SerializeToString())\n        self.buffer = []\n    else:\n      self.writer.write(example.SerializeToString())\n\n  def size(self):\n    return self.count  \n"
  },
  {
    "path": "utils/gezi/melt/util.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   melt_light.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 13:24:31.571379\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\nimport six\n\ndef int_feature(value):\n  import tensorflow as tf\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  return tf.train.Feature(int64_list=tf.train.Int64List(value=value))\n\ndef int64_feature(value):\n  import tensorflow as tf\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  return tf.train.Feature(int64_list=tf.train.Int64List(value=value))\n\ndef bytes_feature(value):\n  import tensorflow as tf\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  if not six.PY2:\n    if isinstance(value[0], str):\n      value = [x.encode() for x in value]\n  return tf.train.Feature(bytes_list=tf.train.BytesList(value=value))\n\ndef float_feature(value):\n  import tensorflow as tf\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  return tf.train.Feature(float_list=tf.train.FloatList(value=value))\n\nfeatures = lambda d: tf.train.Features(feature=d)\n\n# Helpers for creating SequenceExample objects  copy from \\tensorflow\\python\\kernel_tests\\parsing_ops_test.py\nfeature_list = lambda l: tf.train.FeatureList(feature=l)\nfeature_lists = lambda d: tf.train.FeatureLists(feature_list=d)\n\n\ndef int64_feature_list(values):\n  import tensorflow as tf\n  \"\"\"Wrapper for inserting an int64 FeatureList into a SequenceExample proto.\"\"\"\n  return tf.train.FeatureList(feature=[int64_feature(v) for v in values])\n\ndef bytes_feature_list(values):\n  import tensorflow as tf\n  \"\"\"Wrapper for inserting a bytes FeatureList into a SequenceExample proto.\"\"\"\n  return tf.train.FeatureList(feature=[bytes_feature(v) for v in values])\n\ndef float_feature_list(values):\n  import tensorflow as tf\n  \"\"\"Wrapper for inserting a bytes FeatureList into a SequenceExample proto.\"\"\"\n  return tf.train.FeatureList(feature=[float_feature(v) for v in values])\n\n"
  },
  {
    "path": "utils/gezi/metrics/README.md",
    "content": "from https://github.com/tylin/coco-caption/tree/master/pycocoevalcap  \n\nnew_cider and ciderD from https://github.com/vrama91/cider\ncp -rf ~/other/cider/pyciderevalcap/cider new_cider\ncp -rf ~/other/cider/pyciderevalcap/ciderD/ .\n\n"
  },
  {
    "path": "utils/gezi/metrics/__init__.py",
    "content": "__author__ = 'tylin'\n\nimport gezi.metrics.bleu \nimport gezi.metrics.cider\nimport gezi.metrics.meteor\nimport gezi.metrics.rouge \nimport gezi.metrics.tokenizer\n\nfrom gezi.metrics.bleu import *\nfrom gezi.metrics.cider import *\n##TODO cider with global df as generated before so can calc cider for single image\n##may improve small batch cider performance \n#from gezi.metrics.new_cider import *\nfrom gezi.metrics.meteor import *\nfrom gezi.metrics.rouge import *\nfrom gezi.metrics.tokenizer import * \n\nimport gezi.metrics.correlation \n"
  },
  {
    "path": "utils/gezi/metrics/bleu/LICENSE",
    "content": "Copyright (c) 2015 Xinlei Chen, Hao Fang, Tsung-Yi Lin, and Ramakrishna Vedantam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "utils/gezi/metrics/bleu/__init__.py",
    "content": "__author__ = 'tylin'\n\nfrom gezi.metrics.bleu.bleu import Bleu\n"
  },
  {
    "path": "utils/gezi/metrics/bleu/bleu.py",
    "content": "#!/usr/bin/env python\n# \n# File Name : bleu.py\n#\n# Description : Wrapper for BLEU scorer.\n#\n# Creation Date : 06-01-2015\n# Last Modified : Thu 19 Mar 2015 09:13:28 PM PDT\n# Authors : Hao Fang <hfang@uw.edu> and Tsung-Yi Lin <tl483@cornell.edu>\n\nfrom .bleu_scorer import BleuScorer\n\n\nclass Bleu:\n    def __init__(self, n=4):\n        # default compute Blue score up to 4\n        self._n = n\n        self._hypo_for_image = {}\n        self.ref_for_image = {}\n\n    def compute_score(self, gts, res):\n\n        assert(gts.keys() == res.keys())\n        imgIds = gts.keys()\n\n        bleu_scorer = BleuScorer(n=self._n)\n        for id in imgIds:\n            hypo = res[id]\n            ref = gts[id]\n\n            # Sanity check.\n            assert(type(hypo) is list)\n            assert(len(hypo) == 1)\n            assert(type(ref) is list)\n            assert(len(ref) >= 1)\n\n            bleu_scorer += (hypo[0], ref)\n\n        #score, scores = bleu_scorer.compute_score(option='shortest')\n        #score, scores = bleu_scorer.compute_score(option='closest', verbose=1)\n        score, scores = bleu_scorer.compute_score(option='closest', verbose=0)\n        #score, scores = bleu_scorer.compute_score(option='average', verbose=1)\n\n        # return (bleu, bleu_info)\n        return score, scores\n\n    def method(self):\n        return \"Bleu\"\n"
  },
  {
    "path": "utils/gezi/metrics/bleu/bleu_scorer.py",
    "content": "#!/usr/bin/env python\n\n# bleu_scorer.py\n# David Chiang <chiang@isi.edu>\n\n# Copyright (c) 2004-2006 University of Maryland. All rights\n# reserved. Do not redistribute without permission from the\n# author. Not for commercial use.\n\n# Modified by: \n# Hao Fang <hfang@uw.edu>\n# Tsung-Yi Lin <tl483@cornell.edu>\n\n'''Provides:\ncook_refs(refs, n=4): Transform a list of reference sentences as strings into a form usable by cook_test().\ncook_test(test, refs, n=4): Transform a test sentence as a string (together with the cooked reference sentences) into a form usable by score_cooked().\n'''\n\nimport copy\nimport sys, math, re\nfrom collections import defaultdict\n\ndef precook(s, n=4, out=False):\n    \"\"\"Takes a string as input and returns an object that can be given to\n    either cook_refs or cook_test. This is optional: cook_refs and cook_test\n    can take string arguments as well.\"\"\"\n    words = s.split()\n    counts = defaultdict(int)\n    for k in xrange(1,n+1):\n        for i in xrange(len(words)-k+1):\n            ngram = tuple(words[i:i+k])\n            counts[ngram] += 1\n    return (len(words), counts)\n\ndef cook_refs(refs, eff=None, n=4): ## lhuang: oracle will call with \"average\"\n    '''Takes a list of reference sentences for a single segment\n    and returns an object that encapsulates everything that BLEU\n    needs to know about them.'''\n\n    reflen = []\n    maxcounts = {}\n    for ref in refs:\n        rl, counts = precook(ref, n)\n        reflen.append(rl)\n        for (ngram,count) in counts.iteritems():\n            maxcounts[ngram] = max(maxcounts.get(ngram,0), count)\n\n    # Calculate effective reference sentence length.\n    if eff == \"shortest\":\n        reflen = min(reflen)\n    elif eff == \"average\":\n        reflen = float(sum(reflen))/len(reflen)\n\n    ## lhuang: N.B.: leave reflen computaiton to the very end!!\n    \n    ## lhuang: N.B.: in case of \"closest\", keep a list of reflens!! (bad design)\n\n    return (reflen, maxcounts)\n\ndef cook_test(test, l, eff=None, n=4):\n    '''Takes a test sentence and returns an object that\n    encapsulates everything that BLEU needs to know about it.'''\n    (reflen, refmaxcounts) = l\n    testlen, counts = precook(test, n, True)\n\n    result = {}\n\n    # Calculate effective reference sentence length.\n    \n    if eff == \"closest\":\n        result[\"reflen\"] = min((abs(l-testlen), l) for l in reflen)[1]\n    else: ## i.e., \"average\" or \"shortest\" or None\n        result[\"reflen\"] = reflen\n\n    result[\"testlen\"] = testlen\n\n    result[\"guess\"] = [max(0,testlen-k+1) for k in xrange(1,n+1)]\n\n    result['correct'] = [0]*n\n    for (ngram, count) in counts.iteritems():\n        result[\"correct\"][len(ngram)-1] += min(refmaxcounts.get(ngram,0), count)\n\n    return result\n\nclass BleuScorer(object):\n    \"\"\"Bleu scorer.\n    \"\"\"\n\n    __slots__ = \"n\", \"crefs\", \"ctest\", \"_score\", \"_ratio\", \"_testlen\", \"_reflen\", \"special_reflen\"\n    # special_reflen is used in oracle (proportional effective ref len for a node).\n\n    def copy(self):\n        ''' copy the refs.'''\n        new = BleuScorer(n=self.n)\n        new.ctest = copy.copy(self.ctest)\n        new.crefs = copy.copy(self.crefs)\n        new._score = None\n        return new\n\n    def __init__(self, test=None, refs=None, n=4, special_reflen=None):\n        ''' singular instance '''\n\n        self.n = n\n        self.crefs = []\n        self.ctest = []\n        self.cook_append(test, refs)\n        self.special_reflen = special_reflen\n\n    def cook_append(self, test, refs):\n        '''called by constructor and __iadd__ to avoid creating new instances.'''\n        \n        if refs is not None:\n            self.crefs.append(cook_refs(refs))\n            if test is not None:\n                cooked_test = cook_test(test, self.crefs[-1])\n                self.ctest.append(cooked_test) ## N.B.: -1\n            else:\n                self.ctest.append(None) # lens of crefs and ctest have to match\n\n        self._score = None ## need to recompute\n\n    def ratio(self, option=None):\n        self.compute_score(option=option)\n        return self._ratio\n\n    def score_ratio(self, option=None):\n        '''return (bleu, len_ratio) pair'''\n        return (self.fscore(option=option), self.ratio(option=option))\n\n    def score_ratio_str(self, option=None):\n        return \"%.4f (%.2f)\" % self.score_ratio(option)\n\n    def reflen(self, option=None):\n        self.compute_score(option=option)\n        return self._reflen\n\n    def testlen(self, option=None):\n        self.compute_score(option=option)\n        return self._testlen        \n\n    def retest(self, new_test):\n        if type(new_test) is str:\n            new_test = [new_test]\n        assert len(new_test) == len(self.crefs), new_test\n        self.ctest = []\n        for t, rs in zip(new_test, self.crefs):\n            self.ctest.append(cook_test(t, rs))\n        self._score = None\n\n        return self\n\n    def rescore(self, new_test):\n        ''' replace test(s) with new test(s), and returns the new score.'''\n        \n        return self.retest(new_test).compute_score()\n\n    def size(self):\n        assert len(self.crefs) == len(self.ctest), \"refs/test mismatch! %d<>%d\" % (len(self.crefs), len(self.ctest))\n        return len(self.crefs)\n\n    def __iadd__(self, other):\n        '''add an instance (e.g., from another sentence).'''\n\n        if type(other) is tuple:\n            ## avoid creating new BleuScorer instances\n            self.cook_append(other[0], other[1])\n        else:\n            assert self.compatible(other), \"incompatible BLEUs.\"\n            self.ctest.extend(other.ctest)\n            self.crefs.extend(other.crefs)\n            self._score = None ## need to recompute\n\n        return self        \n\n    def compatible(self, other):\n        return isinstance(other, BleuScorer) and self.n == other.n\n\n    def single_reflen(self, option=\"average\"):\n        return self._single_reflen(self.crefs[0][0], option)\n\n    def _single_reflen(self, reflens, option=None, testlen=None):\n        \n        if option == \"shortest\":\n            reflen = min(reflens)\n        elif option == \"average\":\n            reflen = float(sum(reflens))/len(reflens)\n        elif option == \"closest\":\n            reflen = min((abs(l-testlen), l) for l in reflens)[1]\n        else:\n            assert False, \"unsupported reflen option %s\" % option\n\n        return reflen\n\n    def recompute_score(self, option=None, verbose=0):\n        self._score = None\n        return self.compute_score(option, verbose)\n        \n    def compute_score(self, option=None, verbose=0):\n        n = self.n\n        small = 1e-9\n        tiny = 1e-15 ## so that if guess is 0 still return 0\n        bleu_list = [[] for _ in range(n)]\n\n        if self._score is not None:\n            return self._score\n\n        if option is None:\n            option = \"average\" if len(self.crefs) == 1 else \"closest\"\n\n        self._testlen = 0\n        self._reflen = 0\n        totalcomps = {'testlen':0, 'reflen':0, 'guess':[0]*n, 'correct':[0]*n}\n\n        # for each sentence\n        for comps in self.ctest:            \n            testlen = comps['testlen']\n            self._testlen += testlen\n\n            if self.special_reflen is None: ## need computation\n                reflen = self._single_reflen(comps['reflen'], option, testlen)\n            else:\n                reflen = self.special_reflen\n\n            self._reflen += reflen\n                \n            for key in ['guess','correct']:\n                for k in xrange(n):\n                    totalcomps[key][k] += comps[key][k]\n\n            # append per image bleu score\n            bleu = 1.\n            for k in xrange(n):\n                bleu *= (float(comps['correct'][k]) + tiny) \\\n                        /(float(comps['guess'][k]) + small) \n                bleu_list[k].append(bleu ** (1./(k+1)))\n            ratio = (testlen + tiny) / (reflen + small) ## N.B.: avoid zero division\n            if ratio < 1:\n                for k in xrange(n):\n                    bleu_list[k][-1] *= math.exp(1 - 1/ratio)\n\n            if verbose > 1:\n                print(comps, reflen)\n\n        totalcomps['reflen'] = self._reflen\n        totalcomps['testlen'] = self._testlen\n\n        bleus = []\n        bleu = 1.\n        for k in xrange(n):\n            bleu *= float(totalcomps['correct'][k] + tiny) \\\n                    / (totalcomps['guess'][k] + small)\n            bleus.append(bleu ** (1./(k+1)))\n        ratio = (self._testlen + tiny) / (self._reflen + small) ## N.B.: avoid zero division\n        if ratio < 1:\n            for k in xrange(n):\n                bleus[k] *= math.exp(1 - 1/ratio)\n\n        if verbose > 0:\n            print(totalcomps)\n            print(\"ratio:\", ratio)\n\n        self._score = bleus\n        return self._score, bleu_list\n"
  },
  {
    "path": "utils/gezi/metrics/cider/__init__.py",
    "content": "__author__ = 'tylin'\n\nfrom gezi.metrics.cider.cider import Cider\n"
  },
  {
    "path": "utils/gezi/metrics/cider/cider.py",
    "content": "# Filename: cider.py\n#\n# Description: Describes the class to compute the CIDEr (Consensus-Based Image Description Evaluation) Metric \n#               by Vedantam, Zitnick, and Parikh (http://arxiv.org/abs/1411.5726)\n#\n# Creation Date: Sun Feb  8 14:16:54 2015\n#\n# Authors: Ramakrishna Vedantam <vrama91@vt.edu> and Tsung-Yi Lin <tl483@cornell.edu>\nfrom __future__ import print_function\n\nfrom .cider_scorer import CiderScorer\nimport pdb\nfrom collections import defaultdict\n\n#need to install dill, which is used to dump and load defaultdict\ntry:\n  import dill\nexcept Exception:\n  pass\n  \nimport sys\n\nclass Cider:\n    \"\"\"\n    Main Class to compute the CIDEr metric \n\n    \"\"\"\n    def __init__(self, test=None, refs=None, n=4, sigma=6.0, document_frequency=None, ref_len=None):\n        # set cider to sum over 1 to 4-grams\n        self._n = n\n        # set the standard deviation parameter for gaussian penalty\n        self._sigma = sigma\n\n        #print('document_frequency', document_frequency, 'ref_len', ref_len, file=sys.stderr)\n        if document_frequency is None:\n            self._doucument_frequency = defaultdict(float)  \n        elif isinstance(document_frequency, str):\n            self._doucument_frequency = dill.load(open(document_frequency))\n        else:\n            self._doucument_frequency = document_frequency\n\n        if isinstance(ref_len, str):\n            self._ref_len = float(open(ref_len).readline().strip())\n        else:\n            self._ref_len = ref_len\n\n    def compute_score(self, gts, res):\n        \"\"\"\n        Main function to compute CIDEr score\n        :param  hypo_for_image (dict) : dictionary with key <image> and value <tokenized hypothesis / candidate sentence>\n                ref_for_image (dict)  : dictionary with key <image> and value <tokenized reference sentence>\n        :return: cider (float) : computed CIDEr score for the corpus \n        \"\"\"\n\n        assert(gts.keys() == res.keys())\n        imgIds = gts.keys()\n\n        cider_scorer = CiderScorer(n=self._n, sigma=self._sigma, \n                                   document_frequency=self._doucument_frequency, \n                                   ref_len=self._ref_len)\n\n        for id in imgIds:\n            hypo = res[id]\n            ref = gts[id]\n\n            # Sanity check.\n            assert(type(hypo) is list)\n            assert(len(hypo) == 1)\n            assert(type(ref) is list)\n            assert(len(ref) > 0)\n\n            cider_scorer += (hypo[0], ref)\n\n        (score, scores) = cider_scorer.compute_score()\n\n        return score, scores\n\n    def method(self):\n        return \"CIDEr\""
  },
  {
    "path": "utils/gezi/metrics/cider/cider_scorer.py",
    "content": "#!/usr/bin/env python\n# Tsung-Yi Lin <tl483@cornell.edu>\n# Ramakrishna Vedantam <vrama91@vt.edu>\nfrom __future__ import print_function\n\nimport copy\nfrom collections import defaultdict\nimport numpy as np\nimport pdb\nimport math\n\ndef precook(s, n=4, out=False):\n    \"\"\"\n    Takes a string as input and returns an object that can be given to\n    either cook_refs or cook_test. This is optional: cook_refs and cook_test\n    can take string arguments as well.\n    :param s: string : sentence to be converted into ngrams\n    :param n: int    : number of ngrams for which representation is calculated\n    :return: term frequency vector for occuring ngrams\n    \"\"\"\n    words = s.split()\n    counts = defaultdict(int)\n    for k in range(1,n+1):\n        for i in range(len(words)-k+1):\n            ngram = tuple(words[i:i+k])\n            counts[ngram] += 1\n    return counts\n\ndef cook_refs(refs, n=4): ## lhuang: oracle will call with \"average\"\n    '''Takes a list of reference sentences for a single segment\n    and returns an object that encapsulates everything that BLEU\n    needs to know about them.\n    :param refs: list of string : reference sentences for some image\n    :param n: int : number of ngrams for which (ngram) representation is calculated\n    :return: result (list of dict)\n    '''\n    return [precook(ref, n) for ref in refs]\n\ndef cook_test(test, n=4):\n    '''Takes a test sentence and returns an object that\n    encapsulates everything that BLEU needs to know about it.\n    :param test: list of string : hypothesis sentence for some image\n    :param n: int : number of ngrams for which (ngram) representation is calculated\n    :return: result (dict)\n    '''\n    return precook(test, n, True)\n\nclass CiderScorer(object):\n    \"\"\"CIDEr scorer.\n    \"\"\"\n\n    def copy(self):\n        ''' copy the refs.'''\n        new = CiderScorer(n=self.n)\n        new.ctest = copy.copy(self.ctest)\n        new.crefs = copy.copy(self.crefs)\n        return new\n\n    def __init__(self, test=None, refs=None, n=4, sigma=6.0, \n                 document_frequency=defaultdict(float), ref_len=None):\n        ''' singular instance '''\n        self.n = n\n        self.sigma = sigma\n        self.crefs = []\n        self.ctest = []\n        self.document_frequency = document_frequency\n        self.cook_append(test, refs)\n        self.ref_len = ref_len\n\n    def cook_append(self, test, refs):\n        '''called by constructor and __iadd__ to avoid creating new instances.'''\n\n        if refs is not None:\n            self.crefs.append(cook_refs(refs))\n            if test is not None:\n                self.ctest.append(cook_test(test)) ## N.B.: -1\n            else:\n                self.ctest.append(None) # lens of crefs and ctest have to match\n\n    def size(self):\n        assert len(self.crefs) == len(self.ctest), \"refs/test mismatch! %d<>%d\" % (len(self.crefs), len(self.ctest))\n        return len(self.crefs)\n\n    def __iadd__(self, other):\n        '''add an instance (e.g., from another sentence).'''\n\n        if type(other) is tuple:\n            ## avoid creating new CiderScorer instances\n            self.cook_append(other[0], other[1])\n        else:\n            self.ctest.extend(other.ctest)\n            self.crefs.extend(other.crefs)\n\n        return self\n    def compute_doc_freq(self):\n        '''\n        Compute term frequency for reference data.\n        This will be used to compute idf (inverse document frequency later)\n        The term frequency is stored in the object\n        :return: None\n        '''\n        if len(self.document_frequency) == 0:\n            for refs in self.crefs:\n                # refs, k ref captions of one image\n                for ngram in set([ngram for ref in refs for (ngram,count) in ref.iteritems()]):\n                    self.document_frequency[ngram] += 1\n                # maxcounts[ngram] = max(maxcounts.get(ngram,0), count)\n\n    def compute_cider(self):\n        def counts2vec(cnts):\n            \"\"\"\n            Function maps counts of ngram to vector of tfidf weights.\n            The function returns vec, an array of dictionary that store mapping of n-gram and tf-idf weights.\n            The n-th entry of array denotes length of n-grams.\n            :param cnts:\n            :return: vec (array of dict), norm (array of float), length (int)\n            \"\"\"\n            vec = [defaultdict(float) for _ in range(self.n)]\n            length = 0\n            norm = [0.0 for _ in range(self.n)]\n            for (ngram,term_freq) in cnts.iteritems():\n                # give word count 1 if it doesn't appear in reference corpus\n                df = np.log(max(1.0, self.document_frequency[ngram]))\n                # ngram index\n                n = len(ngram)-1\n                # tf (term_freq) * idf (precomputed idf) for n-grams\n                vec[n][ngram] = float(term_freq)*(self.ref_len - df)\n                # compute norm for the vector.  the norm will be used for computing similarity\n                norm[n] += pow(vec[n][ngram], 2)\n\n                if n == 1:\n                    length += term_freq\n            norm = [np.sqrt(n) for n in norm]\n            return vec, norm, length\n\n        def sim(vec_hyp, vec_ref, norm_hyp, norm_ref, length_hyp, length_ref):\n            '''\n            Compute the cosine similarity of two vectors.\n            :param vec_hyp: array of dictionary for vector corresponding to hypothesis\n            :param vec_ref: array of dictionary for vector corresponding to reference\n            :param norm_hyp: array of float for vector corresponding to hypothesis\n            :param norm_ref: array of float for vector corresponding to reference\n            :param length_hyp: int containing length of hypothesis\n            :param length_ref: int containing length of reference\n            :return: array of score for each n-grams cosine similarity\n            '''\n            delta = float(length_hyp - length_ref)\n            # measure consine similarity\n            val = np.array([0.0 for _ in range(self.n)])\n            for n in range(self.n):\n                # ngram\n                for (ngram,count) in vec_hyp[n].iteritems():\n                    # vrama91 : added clipping\n                    val[n] += min(vec_hyp[n][ngram], vec_ref[n][ngram]) * vec_ref[n][ngram]\n\n                if (norm_hyp[n] != 0) and (norm_ref[n] != 0):\n                    val[n] /= (norm_hyp[n]*norm_ref[n])\n\n                assert(not math.isnan(val[n]))\n                # vrama91: added a length based gaussian penalty\n                val[n] *= np.e**(-(delta**2)/(2*self.sigma**2))\n            return val\n\n        # compute log reference length\n        if self.ref_len is None:\n          self.ref_len = np.log(float(len(self.crefs)))\n\n        scores = []\n        for test, refs in zip(self.ctest, self.crefs):\n            # compute vector for test captions\n            vec, norm, length = counts2vec(test)\n            # compute vector for ref captions\n            score = np.array([0.0 for _ in range(self.n)])\n            for ref in refs:\n                vec_ref, norm_ref, length_ref = counts2vec(ref)\n                score += sim(vec, vec_ref, norm, norm_ref, length, length_ref)\n            # change by vrama91 - mean of ngram scores, instead of sum\n            score_avg = np.mean(score)\n            # divide by number of references\n            score_avg /= len(refs)\n            # multiply score by 10\n            score_avg *= 10.0\n            # append score of an image to the score list\n            scores.append(score_avg)\n        return scores\n\n    def compute_score(self, option=None, verbose=0):\n        # compute idf\n        self.compute_doc_freq()\n        # assert to check document frequency\n        #print('---', len(self.ctest), max(self.document_frequency.values()))\n        #assert(len(self.ctest) >= max(self.document_frequency.values()))\n        # compute cider score\n        score = self.compute_cider()\n        # debug\n        # print score\n        return np.mean(np.array(score)), np.array(score)"
  },
  {
    "path": "utils/gezi/metrics/ciderD/__init__.py",
    "content": "__author__ = 'tylin'\n"
  },
  {
    "path": "utils/gezi/metrics/ciderD/ciderD.py",
    "content": "# Filename: ciderD.py\n#\n# Description: Describes the class to compute the CIDEr-D (Consensus-Based Image Description Evaluation) Metric\n#               by Vedantam, Zitnick, and Parikh (http://arxiv.org/abs/1411.5726)\n#\n# Creation Date: Sun Feb  8 14:16:54 2015\n#\n# Authors: Ramakrishna Vedantam <vrama91@vt.edu> and Tsung-Yi Lin <tl483@cornell.edu>\n\nfrom ciderD_scorer import CiderScorer\nimport pdb\n\nclass CiderD:\n    \"\"\"\n    Main Class to compute the CIDEr metric\n\n    \"\"\"\n    def __init__(self, n=4, sigma=6.0, df=\"corpus\"):\n        # set cider to sum over 1 to 4-grams\n        self._n = n\n        # set the standard deviation parameter for gaussian penalty\n        self._sigma = sigma\n        # set which where to compute document frequencies from\n        self._df = df\n\n    def compute_score(self, gts, res):\n        \"\"\"\n        Main function to compute CIDEr score\n        :param  hypo_for_image (dict) : dictionary with key <image> and value <tokenized hypothesis / candidate sentence>\n                ref_for_image (dict)  : dictionary with key <image> and value <tokenized reference sentence>\n        :return: cider (float) : computed CIDEr score for the corpus\n        \"\"\"\n\n        cider_scorer = CiderScorer(n=self._n)\n\n        for res_id in res:\n\n            hypo = res_id['caption']\n            ref = gts[res_id['image_id']]\n\n            # Sanity check.\n            assert(type(hypo) is list)\n            assert(len(hypo) == 1)\n            assert(type(ref) is list)\n            assert(len(ref) > 0)\n            cider_scorer += (hypo[0], ref)\n\n        (score, scores) = cider_scorer.compute_score(self._df)\n\n        return score, scores\n\n    def method(self):\n        return \"CIDEr-D\"\n"
  },
  {
    "path": "utils/gezi/metrics/ciderD/ciderD_scorer.py",
    "content": "#!/usr/bin/env python\n# Tsung-Yi Lin <tl483@cornell.edu>\n# Ramakrishna Vedantam <vrama91@vt.edu>\n\nimport copy\nfrom collections import defaultdict\nimport numpy as np\nimport pdb\nimport math\nimport pickle\nimport os\n\ndef precook(s, n=4, out=False):\n    \"\"\"\n    Takes a string as input and returns an object that can be given to\n    either cook_refs or cook_test. This is optional: cook_refs and cook_test\n    can take string arguments as well.\n    :param s: string : sentence to be converted into ngrams\n    :param n: int    : number of ngrams for which representation is calculated\n    :return: term frequency vector for occuring ngrams\n    \"\"\"\n    words = s.split()\n    counts = defaultdict(int)\n    for k in xrange(1,n+1):\n        for i in xrange(len(words)-k+1):\n            ngram = tuple(words[i:i+k])\n            counts[ngram] += 1\n    return counts\n\ndef cook_refs(refs, n=4): ## lhuang: oracle will call with \"average\"\n    '''Takes a list of reference sentences for a single segment\n    and returns an object that encapsulates everything that BLEU\n    needs to know about them.\n    :param refs: list of string : reference sentences for some image\n    :param n: int : number of ngrams for which (ngram) representation is calculated\n    :return: result (list of dict)\n    '''\n    return [precook(ref, n) for ref in refs]\n\ndef cook_test(test, n=4):\n    '''Takes a test sentence and returns an object that\n    encapsulates everything that BLEU needs to know about it.\n    :param test: list of string : hypothesis sentence for some image\n    :param n: int : number of ngrams for which (ngram) representation is calculated\n    :return: result (dict)\n    '''\n    return precook(test, n, True)\n\nclass CiderScorer(object):\n    \"\"\"CIDEr scorer.\n    \"\"\"\n\n    def copy(self):\n        ''' copy the refs.'''\n        new = CiderScorer(n=self.n)\n        new.ctest = copy.copy(self.ctest)\n        new.crefs = copy.copy(self.crefs)\n        return new\n\n    def __init__(self, test=None, refs=None, n=4, sigma=6.0):\n        ''' singular instance '''\n        self.n = n\n        self.sigma = sigma\n        self.crefs = []\n        self.ctest = []\n        self.document_frequency = defaultdict(float)\n        self.cook_append(test, refs)\n        self.ref_len = None\n\n    def cook_append(self, test, refs):\n        '''called by constructor and __iadd__ to avoid creating new instances.'''\n\n        if refs is not None:\n            self.crefs.append(cook_refs(refs))\n            if test is not None:\n                self.ctest.append(cook_test(test)) ## N.B.: -1\n            else:\n                self.ctest.append(None) # lens of crefs and ctest have to match\n\n    def size(self):\n        assert len(self.crefs) == len(self.ctest), \"refs/test mismatch! %d<>%d\" % (len(self.crefs), len(self.ctest))\n        return len(self.crefs)\n\n    def __iadd__(self, other):\n        '''add an instance (e.g., from another sentence).'''\n\n        if type(other) is tuple:\n            ## avoid creating new CiderScorer instances\n            self.cook_append(other[0], other[1])\n        else:\n            self.ctest.extend(other.ctest)\n            self.crefs.extend(other.crefs)\n\n        return self\n    def compute_doc_freq(self):\n        '''\n        Compute term frequency for reference data.\n        This will be used to compute idf (inverse document frequency later)\n        The term frequency is stored in the object\n        :return: None\n        '''\n        for refs in self.crefs:\n            # refs, k ref captions of one image\n            for ngram in set([ngram for ref in refs for (ngram,count) in ref.iteritems()]):\n                self.document_frequency[ngram] += 1\n            # maxcounts[ngram] = max(maxcounts.get(ngram,0), count)\n\n    def compute_cider(self, df_mode):\n        def counts2vec(cnts):\n            \"\"\"\n            Function maps counts of ngram to vector of tfidf weights.\n            The function returns vec, an array of dictionary that store mapping of n-gram and tf-idf weights.\n            The n-th entry of array denotes length of n-grams.\n            :param cnts:\n            :return: vec (array of dict), norm (array of float), length (int)\n            \"\"\"\n            vec = [defaultdict(float) for _ in range(self.n)]\n            length = 0\n            norm = [0.0 for _ in range(self.n)]\n            for (ngram,term_freq) in cnts.iteritems():\n                # give word count 1 if it doesn't appear in reference corpus\n                df = np.log(max(1.0, self.document_frequency[ngram]))\n                # ngram index\n                n = len(ngram)-1\n                # tf (term_freq) * idf (precomputed idf) for n-grams\n                vec[n][ngram] = float(term_freq)*(self.ref_len - df)\n                # compute norm for the vector.  the norm will be used for computing similarity\n                norm[n] += pow(vec[n][ngram], 2)\n\n                if n == 1:\n                    length += term_freq\n            norm = [np.sqrt(n) for n in norm]\n            return vec, norm, length\n\n        def sim(vec_hyp, vec_ref, norm_hyp, norm_ref, length_hyp, length_ref):\n            '''\n            Compute the cosine similarity of two vectors.\n            :param vec_hyp: array of dictionary for vector corresponding to hypothesis\n            :param vec_ref: array of dictionary for vector corresponding to reference\n            :param norm_hyp: array of float for vector corresponding to hypothesis\n            :param norm_ref: array of float for vector corresponding to reference\n            :param length_hyp: int containing length of hypothesis\n            :param length_ref: int containing length of reference\n            :return: array of score for each n-grams cosine similarity\n            '''\n            delta = float(length_hyp - length_ref)\n            # measure consine similarity\n            val = np.array([0.0 for _ in range(self.n)])\n            for n in range(self.n):\n                # ngram\n                for (ngram,count) in vec_hyp[n].iteritems():\n                    # vrama91 : added clipping\n                    val[n] += min(vec_hyp[n][ngram], vec_ref[n][ngram]) * vec_ref[n][ngram]\n\n                if (norm_hyp[n] != 0) and (norm_ref[n] != 0):\n                    val[n] /= (norm_hyp[n]*norm_ref[n])\n\n                assert(not math.isnan(val[n]))\n                # vrama91: added a length based gaussian penalty\n                val[n] *= np.e**(-(delta**2)/(2*self.sigma**2))\n            return val\n\n        # compute log reference length\n        if df_mode == \"corpus\":\n            self.ref_len = np.log(float(len(self.crefs)))\n        elif df_mode == \"coco-val-df\":\n            # if coco option selected, use length of coco-val set\n            self.ref_len = np.log(float(40504))\n\n        scores = []\n        for test, refs in zip(self.ctest, self.crefs):\n            # compute vector for test captions\n            vec, norm, length = counts2vec(test)\n            # compute vector for ref captions\n            score = np.array([0.0 for _ in range(self.n)])\n            for ref in refs:\n                vec_ref, norm_ref, length_ref = counts2vec(ref)\n                score += sim(vec, vec_ref, norm, norm_ref, length, length_ref)\n            # change by vrama91 - mean of ngram scores, instead of sum\n            score_avg = np.mean(score)\n            # divide by number of references\n            score_avg /= len(refs)\n            # multiply score by 10\n            score_avg *= 10.0\n            # append score of an image to the score list\n            scores.append(score_avg)\n        return scores\n\n    def compute_score(self, df_mode, option=None, verbose=0):\n        # compute idf\n        if df_mode == \"corpus\":\n            self.compute_doc_freq()\n            # assert to check document frequency\n            assert(len(self.ctest) >= max(self.document_frequency.values()))\n            # import json for now and write the corresponding files\n        else:\n            self.document_frequency = pickle.load(open(os.path.join('data', df_mode + '.p'),'r'))\n        # compute cider score\n        score = self.compute_cider(df_mode)\n        # debug\n        # print score\n        return np.mean(np.array(score)), np.array(score)\n"
  },
  {
    "path": "utils/gezi/metrics/correlation/__init__.py",
    "content": "from gezi.metrics.correlation.correlation import * \n"
  },
  {
    "path": "utils/gezi/metrics/correlation/correlation.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   correlation.py\n#        \\author   chenghuige  \n#          \\date   2018-06-25 19:54:48.632054\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport math\nimport numpy as np\n\n# LCC=\\frac{\\sum_{i=1}^{N}(y_{i}-\\overline{y})(\\hat{y}_i-\\overline{\\hat{y}})}{\\sqrt{\\sum_{i=1}^{N}(y_{i}-\\overline{y})^2} \\sqrt{\\sum_{i=1}^{N}(\\hat{y}_{i}-\\overline{\\hat{y}})^2}}\ndef lcc(trues, predicts):\n  true_mean = np.mean(trues)\n  predict_mean = np.mean(predicts)\n  up = sum([(x - true_mean) * (y - predict_mean) for x, y in zip(trues, predicts)])\n  down1 = math.sqrt(sum([math.pow(x - true_mean, 2) for x in trues]))\n  down2 = math.sqrt(sum([math.pow(y - predict_mean, 2) for y in predicts]))\n  return up / (down1 * down2)\n\n# SROCC=1-\\frac{6\\sum_{i=1}^{N}(v_i-p_i)^2}{N(N^2-1)}\ndef srocc(trues, predicts):\n  assert len(trues) == len(predicts)\n  true_args = np.argsort(trues)\n  predict_args = np.argsort(predicts)\n  n = len(trues)\n  true_ranks = [0] * n\n  predict_ranks = [0] * n\n  for i, arg in enumerate(true_args):\n    true_ranks[arg] = i\n  for i, arg in enumerate(predict_args):\n    predict_ranks[arg] = i\n\n  down = n * (n * n - 1)\n  up = 6 * sum([math.pow(x - y, 2) for x, y in zip(true_ranks, predict_ranks)])\n\n  return 1 - up / down\n\n    "
  },
  {
    "path": "utils/gezi/metrics/eval.py",
    "content": "__author__ = 'tylin'\nfrom tokenizer.ptbtokenizer import PTBTokenizer\nfrom bleu.bleu import Bleu\nfrom meteor.meteor import Meteor\nfrom rouge.rouge import Rouge\nfrom cider.cider import Cider\n\nclass COCOEvalCap:\n    def __init__(self, coco, cocoRes):\n        self.evalImgs = []\n        self.eval = {}\n        self.imgToEval = {}\n        self.coco = coco\n        self.cocoRes = cocoRes\n        self.params = {'image_id': coco.getImgIds()}\n\n    def evaluate(self):\n        imgIds = self.params['image_id']\n        # imgIds = self.coco.getImgIds()\n        gts = {}\n        res = {}\n        for imgId in imgIds:\n            gts[imgId] = self.coco.imgToAnns[imgId]\n            res[imgId] = self.cocoRes.imgToAnns[imgId]\n\n        # =================================================\n        # Set up scorers\n        # =================================================\n        print 'tokenization...'\n        tokenizer = PTBTokenizer()\n        gts  = tokenizer.tokenize(gts)\n        res = tokenizer.tokenize(res)\n\n        # =================================================\n        # Set up scorers\n        # =================================================\n        print 'setting up scorers...'\n        scorers = [\n            (Bleu(4), [\"Bleu_1\", \"Bleu_2\", \"Bleu_3\", \"Bleu_4\"]),\n            (Meteor(),\"METEOR\"),\n            (Rouge(), \"ROUGE_L\"),\n            (Cider(), \"CIDEr\")\n        ]\n\n        # =================================================\n        # Compute scores\n        # =================================================\n        for scorer, method in scorers:\n            print 'computing %s score...'%(scorer.method())\n            score, scores = scorer.compute_score(gts, res)\n            if type(method) == list:\n                for sc, scs, m in zip(score, scores, method):\n                    self.setEval(sc, m)\n                    self.setImgToEvalImgs(scs, gts.keys(), m)\n                    print \"%s: %0.3f\"%(m, sc)\n            else:\n                self.setEval(score, method)\n                self.setImgToEvalImgs(scores, gts.keys(), method)\n                print \"%s: %0.3f\"%(method, score)\n        self.setEvalImgs()\n\n    def setEval(self, score, method):\n        self.eval[method] = score\n\n    def setImgToEvalImgs(self, scores, imgIds, method):\n        for imgId, score in zip(imgIds, scores):\n            if not imgId in self.imgToEval:\n                self.imgToEval[imgId] = {}\n                self.imgToEval[imgId][\"image_id\"] = imgId\n            self.imgToEval[imgId][method] = score\n\n    def setEvalImgs(self):\n        self.evalImgs = [eval for imgId, eval in self.imgToEval.items()]"
  },
  {
    "path": "utils/gezi/metrics/meteor/__init__.py",
    "content": "__author__ = 'tylin'\n\nfrom gezi.metrics.meteor.meteor import Meteor\n"
  },
  {
    "path": "utils/gezi/metrics/meteor/meteor.py",
    "content": "#!/usr/bin/env python\n\n# Python wrapper for METEOR implementation, by Xinlei Chen\n# Acknowledge Michael Denkowski for the generous discussion and help \n\nimport os\nimport sys\nimport subprocess\nimport threading\n\n# Assumes meteor-1.5.jar is in the same directory as meteor.py.  Change as needed.\nMETEOR_JAR = 'meteor-1.5.jar'\n# print METEOR_JAR\n\nclass Meteor:\n\n    def __init__(self):\n        self.meteor_cmd = ['java', '-jar', '-Xmx2G', METEOR_JAR, \\\n                '-', '-', '-stdio', '-l', 'en', '-norm']\n        self.meteor_p = subprocess.Popen(self.meteor_cmd, \\\n                cwd=os.path.dirname(os.path.abspath(__file__)), \\\n                stdin=subprocess.PIPE, \\\n                stdout=subprocess.PIPE, \\\n                stderr=subprocess.PIPE)\n        # Used to guarantee thread safety\n        self.lock = threading.Lock()\n\n    def compute_score(self, gts, res):\n        assert(gts.keys() == res.keys())\n        imgIds = gts.keys()\n        scores = []\n\n        eval_line = 'EVAL'\n        self.lock.acquire()\n        for i in imgIds:\n            assert(len(res[i]) == 1)\n            stat = self._stat(res[i][0], gts[i])\n            eval_line += ' ||| {}'.format(stat)\n\n        self.meteor_p.stdin.write('{}\\n'.format(eval_line))\n        for i in range(0,len(imgIds)):\n            scores.append(float(self.meteor_p.stdout.readline().strip()))\n        score = float(self.meteor_p.stdout.readline().strip())\n        self.lock.release()\n\n        return score, scores\n\n    def method(self):\n        return \"METEOR\"\n\n    def _stat(self, hypothesis_str, reference_list):\n        # SCORE ||| reference 1 words ||| reference n words ||| hypothesis words\n        hypothesis_str = hypothesis_str.replace('|||','').replace('  ',' ')\n        score_line = ' ||| '.join(('SCORE', ' ||| '.join(reference_list), hypothesis_str))\n        self.meteor_p.stdin.write('{}\\n'.format(score_line))\n        return self.meteor_p.stdout.readline().strip()\n\n    def _score(self, hypothesis_str, reference_list):\n        self.lock.acquire()\n        # SCORE ||| reference 1 words ||| reference n words ||| hypothesis words\n        hypothesis_str = hypothesis_str.replace('|||','').replace('  ',' ')\n        score_line = ' ||| '.join(('SCORE', ' ||| '.join(reference_list), hypothesis_str))\n        self.meteor_p.stdin.write('{}\\n'.format(score_line))\n        stats = self.meteor_p.stdout.readline().strip()\n        eval_line = 'EVAL ||| {}'.format(stats)\n        # EVAL ||| stats \n        self.meteor_p.stdin.write('{}\\n'.format(eval_line))\n        score = float(self.meteor_p.stdout.readline().strip())\n        # bug fix: there are two values returned by the jar file, one average, and one all, so do it twice\n        # thanks for Andrej for pointing this out\n        score = float(self.meteor_p.stdout.readline().strip())\n        self.lock.release()\n        return score\n \n    def __del__(self):\n        self.lock.acquire()\n        self.meteor_p.stdin.close()\n        self.meteor_p.kill()\n        self.meteor_p.wait()\n        self.lock.release()\n"
  },
  {
    "path": "utils/gezi/metrics/new_cider/__init__.py",
    "content": "__author__ = 'tylin' \n\nfrom gezi.metrics.new_cider.cider import Cider\n\n"
  },
  {
    "path": "utils/gezi/metrics/new_cider/cider.py",
    "content": "# Filename: cider.py\n#\n#\n# Description: Describes the class to compute the CIDEr\n# (Consensus-Based Image Description Evaluation) Metric\n#          by Vedantam, Zitnick, and Parikh (http://arxiv.org/abs/1411.5726)\n#\n# Creation Date: Sun Feb  8 14:16:54 2015\n#\n# Authors: Ramakrishna Vedantam <vrama91@vt.edu> and\n# Tsung-Yi Lin <tl483@cornell.edu>\n\nfrom cider_scorer import CiderScorer\n\nclass Cider:\n    \"\"\"\n    Main Class to compute the CIDEr metric \n\n    \"\"\"\n    def __init__(self, n=4, df='corpus', num_docs=30000):\n        # set cider to sum over 1 to 4-grams\n        self._n = n\n        self._df = df\n        self._num_docs = num_docs\n\n    def compute_score(self, gts, res):\n        \"\"\"\n        Main function to compute CIDEr score\n        :param  hypo_for_image (dict) : dictionary with key <image> and value <tokenized hypothesis / candidate sentence>\n                ref_for_image (dict)  : dictionary with key <image> and value <tokenized reference sentence>\n        :return: cider (float) : computed CIDEr score for the corpus \n        \"\"\"\n\n        assert(gts.keys() == res.keys())\n        imgIds = gts.keys()\n\n        cider_scorer = CiderScorer(n=self._n, num_imgs=self.num_imgs)\n\n        for id in imgIds:\n            hypo = res[id]\n            ref = gts[id]\n\n            # Sanity check.\n            assert(type(hypo) is list)\n            assert(len(hypo) == 1)\n            assert(type(ref) is list)\n            assert(len(ref) > 0)\n\n            cider_scorer += (hypo[0], ref)\n\n        (score, scores) = cider_scorer.compute_score()\n\n        return score, scores\n\n    def method(self):\n        return \"CIDEr\""
  },
  {
    "path": "utils/gezi/metrics/new_cider/cider_scorer.py",
    "content": "#!/usr/bin/env python\n# Tsung-Yi Lin <tl483@cornell.edu>\n# Ramakrishna Vedantam <vrama91@vt.edu>\n\nimport copy\nimport pickle\nfrom collections import defaultdict\nimport numpy as np\nimport math\nimport os\n\ndef precook(s, n=4, out=False):\n    \"\"\"\n    Takes a string as input and returns an object that can be given to\n    either cook_refs or cook_test. This is optional: cook_refs and cook_test\n    can take string arguments as well.\n    :param s: string : sentence to be converted into ngrams\n    :param n: int    : number of ngrams for which representation is calculated\n    :return: term frequency vector for occuring ngrams\n    \"\"\"\n    words = s.split()\n    counts = defaultdict(int)\n    for k in xrange(1,n+1):\n        for i in xrange(len(words)-k+1):\n            ngram = tuple(words[i:i+k])\n            counts[ngram] += 1\n    return counts\n\ndef cook_refs(refs, n=4): ## lhuang: oracle will call with \"average\"\n    '''Takes a list of reference sentences for a single segment\n    and returns an object that encapsulates everything that BLEU\n    needs to know about them.\n    :param refs: list of string : reference sentences for some image\n    :param n: int : number of ngrams for which (ngram) representation is calculated\n    :return: result (list of dict)\n    '''\n    return [precook(ref, n) for ref in refs]\n\ndef cook_test(test, n=4):\n    '''Takes a test sentence and returns an object that\n    encapsulates everything that BLEU needs to know about it.\n    :param test: list of string : hypothesis sentence for some image\n    :param n: int : number of ngrams for which (ngram) representation is calculated\n    :return: result (dict)\n    '''\n    return precook(test, n, True)\n\nclass CiderScorer(object):\n    \"\"\"CIDEr scorer.\n    \"\"\"\n\n    def copy(self):\n        ''' copy the refs.'''\n        new = CiderScorer(n=self.n)\n        new.ctest = copy.copy(self.ctest)\n        new.crefs = copy.copy(self.crefs)\n        return new\n\n    def __init__(self, test=None, refs=None, n=4, sigma=6.0, num_imgs=30000, vocab_file=None):\n        ''' singular instance '''\n        self.n = n\n        self.sigma = sigma\n        self.crefs = []\n        self.ctest = []\n        self.document_frequency = defaultdict(float)\n        self.cook_append(test, refs)\n        self.ref_len = None\n        self.num_imgs = num_imgs\n        self.vocb_file = vocb_file\n\n    def cook_append(self, test, refs):\n        '''called by constructor and __iadd__ to avoid creating new instances.'''\n\n        if refs is not None:\n            self.crefs.append(cook_refs(refs))\n            if test is not None:\n                self.ctest.append(cook_test(test)) ## N.B.: -1\n            else:\n                self.ctest.append(None) # lens of crefs and ctest have to match\n\n    def size(self):\n        assert len(self.crefs) == len(self.ctest), \"refs/test mismatch! %d<>%d\" % (len(self.crefs), len(self.ctest))\n        return len(self.crefs)\n\n    def __iadd__(self, other):\n        '''add an instance (e.g., from another sentence).'''\n\n        if type(other) is tuple:\n            ## avoid creating new CiderScorer instances\n            self.cook_append(other[0], other[1])\n        else:\n            self.ctest.extend(other.ctest)\n            self.crefs.extend(other.crefs)\n\n        return self\n    def compute_doc_freq(self):\n        '''\n        Compute term frequency for reference data.\n        This will be used to compute idf (inverse document frequency later)\n        The term frequency is stored in the object\n        :return: None\n        '''\n        for refs in self.crefs:\n            # refs, k ref captions of one image\n            for ngram in set([ngram for ref in refs for (ngram,count) in ref.iteritems()]):\n                self.document_frequency[ngram] += 1\n            # maxcounts[ngram] = max(maxcounts.get(ngram,0), count)\n\n    def compute_cider(self, df_mode=\"corpus\"):\n        def counts2vec(cnts):\n            \"\"\"\n            Function maps counts of ngram to vector of tfidf weights.\n            The function returns vec, an array of dictionary that store mapping of n-gram and tf-idf weights.\n            The n-th entry of array denotes length of n-grams.\n            :param cnts:\n            :return: vec (array of dict), norm (array of float), length (int)\n            \"\"\"\n            vec = [defaultdict(float) for _ in range(self.n)]\n            length = 0\n            norm = [0.0 for _ in range(self.n)]\n            for (ngram,term_freq) in cnts.iteritems():\n                # give word count 1 if it doesn't appear in reference corpus\n                df = np.log(max(1.0, self.document_frequency[ngram]))\n                # ngram index\n                n = len(ngram)-1\n                # tf (term_freq) * idf (precomputed idf) for n-grams\n                vec[n][ngram] = float(term_freq)*(self.ref_len - df)\n                # compute norm for the vector.  the norm will be used for\n                # computing similarity\n                norm[n] += pow(vec[n][ngram], 2)\n\n                if n == 1:\n                    length += term_freq\n            norm = [np.sqrt(n) for n in norm]\n            return vec, norm, length\n\n        def sim(vec_hyp, vec_ref, norm_hyp, norm_ref, length_hyp, length_ref):\n            '''\n            Compute the cosine similarity of two vectors.\n            :param vec_hyp: array of dictionary for vector corresponding to hypothesis\n            :param vec_ref: array of dictionary for vector corresponding to reference\n            :param norm_hyp: array of float for vector corresponding to hypothesis\n            :param norm_ref: array of float for vector corresponding to reference\n            :param length_hyp: int containing length of hypothesis\n            :param length_ref: int containing length of reference\n            :return: array of score for each n-grams cosine similarity\n            '''\n            delta = float(length_hyp - length_ref)\n            # measure consine similarity\n            val = np.array([0.0 for _ in range(self.n)])\n            for n in range(self.n):\n                # ngram\n                for (ngram,count) in vec_hyp[n].iteritems():\n                    val[n] += vec_hyp[n][ngram] * vec_ref[n][ngram]\n\n                if (norm_hyp[n] != 0) and (norm_ref[n] != 0):\n                    val[n] /= (norm_hyp[n]*norm_ref[n])\n\n                assert(not math.isnan(val[n]))\n            return val\n\n        # compute log reference length\n        if df_mode == \"corpus\":\n            self.ref_len = np.log(float(len(self.crefs)))\n        elif df_mode == \"coco-val-df\":\n            # if coco option selected, use length of coco-val set\n            self.ref_len = np.log(float(self.num_imgs))\n\n        scores = []\n        for test, refs in zip(self.ctest, self.crefs):\n            # compute vector for test captions\n            vec, norm, length = counts2vec(test)\n            # compute vector for ref captions\n            score = np.array([0.0 for _ in range(self.n)])\n            for ref in refs:\n                vec_ref, norm_ref, length_ref = counts2vec(ref)\n                score += sim(vec, vec_ref, norm, norm_ref, length, length_ref)\n            # change by vrama91 - mean of ngram scores, instead of sum\n            score_avg = np.mean(score)\n            # divide by number of references\n            score_avg /= len(refs)\n            # multiply score by 10\n            score_avg *= 10.0\n            # append score of an image to the score list\n            scores.append(score_avg)\n        return scores\n\n    def compute_score(self, df_mode, option=None, verbose=0):\n        # compute idf\n        if df_mode == \"corpus\":\n            self.compute_doc_freq()\n            # assert to check document frequency\n            assert(len(self.ctest) >= max(self.document_frequency.values()))\n            # import json for now and write the corresponding files\n        else:\n            #self.document_frequency = pickle.load(open(os.path.join('data', df_mode + '.p'),'r'))\n            for line in open(self.vocab_file):\n                ngram, freq = line.rstrip().split('\\t')\n                self.document_frequency[ngram] = freq\n        # compute cider score\n        score = self.compute_cider(df_mode)\n        # debug\n        # print score\n        return np.mean(np.array(score)), np.array(score)\n"
  },
  {
    "path": "utils/gezi/metrics/rouge/__init__.py",
    "content": "__author__ = 'vrama91'\n\nfrom gezi.metrics.rouge.rouge import Rouge\n"
  },
  {
    "path": "utils/gezi/metrics/rouge/rouge.py",
    "content": "#!/usr/bin/env python\n# \n# File Name : rouge.py\n#\n# Description : Computes ROUGE-L metric as described by Lin and Hovey (2004)\n#\n# Creation Date : 2015-01-07 06:03\n# Author : Ramakrishna Vedantam <vrama91@vt.edu>\n\nimport numpy as np\nimport pdb\n\ndef my_lcs(string, sub):\n    \"\"\"\n    Calculates longest common subsequence for a pair of tokenized strings\n    :param string : list of str : tokens from a string split using whitespace\n    :param sub : list of str : shorter string, also split using whitespace\n    :returns: length (list of int): length of the longest common subsequence between the two strings\n\n    Note: my_lcs only gives length of the longest common subsequence, not the actual LCS\n    \"\"\"\n    if(len(string)< len(sub)):\n        sub, string = string, sub\n\n    lengths = [[0 for i in range(0,len(sub)+1)] for j in range(0,len(string)+1)]\n\n    for j in range(1,len(sub)+1):\n        for i in range(1,len(string)+1):\n            if(string[i-1] == sub[j-1]):\n                lengths[i][j] = lengths[i-1][j-1] + 1\n            else:\n                lengths[i][j] = max(lengths[i-1][j] , lengths[i][j-1])\n\n    return lengths[len(string)][len(sub)]\n\nclass Rouge():\n    '''\n    Class for computing ROUGE-L score for a set of candidate sentences for the MS COCO test set\n\n    '''\n    def __init__(self):\n        # vrama91: updated the value below based on discussion with Hovey\n        self.beta = 1.2\n\n    def calc_score(self, candidate, refs):\n        \"\"\"\n        Compute ROUGE-L score given one candidate and references for an image\n        :param candidate: str : candidate sentence to be evaluated\n        :param refs: list of str : COCO reference sentences for the particular image to be evaluated\n        :returns score: int (ROUGE-L score for the candidate evaluated against references)\n        \"\"\"\n        assert(len(candidate)==1)\t\n        assert(len(refs)>0)         \n        prec = []\n        rec = []\n\n        # split into tokens\n        token_c = candidate[0].split(\" \")\n    \t\n        for reference in refs:\n            # split into tokens\n            token_r = reference.split(\" \")\n            # compute the longest common subsequence\n            lcs = my_lcs(token_r, token_c)\n            prec.append(lcs/float(len(token_c)))\n            rec.append(lcs/float(len(token_r)))\n\n        prec_max = max(prec)\n        rec_max = max(rec)\n\n        if(prec_max!=0 and rec_max !=0):\n            score = ((1 + self.beta**2)*prec_max*rec_max)/float(rec_max + self.beta**2*prec_max)\n        else:\n            score = 0.0\n        return score\n\n    def compute_score(self, gts, res):\n        \"\"\"\n        Computes Rouge-L score given a set of reference and candidate sentences for the dataset\n        Invoked by evaluate_captions.py \n        :param hypo_for_image: dict : candidate / test sentences with \"image name\" key and \"tokenized sentences\" as values \n        :param ref_for_image: dict : reference MS-COCO sentences with \"image name\" key and \"tokenized sentences\" as values\n        :returns: average_score: float (mean ROUGE-L score computed by averaging scores for all the images)\n        \"\"\"\n        assert(gts.keys() == res.keys())\n        imgIds = gts.keys()\n\n        score = []\n        for id in imgIds:\n            hypo = res[id]\n            ref  = gts[id]\n\n            score.append(self.calc_score(hypo, ref))\n\n            # Sanity check.\n            assert(type(hypo) is list)\n            #assert(len(hypo) == 1)\n            assert(type(ref) is list)\n            assert(len(ref) > 0)\n\n        average_score = np.mean(np.array(score))\n        return average_score, np.array(score)\n\n    def method(self):\n        return \"Rouge\"\n"
  },
  {
    "path": "utils/gezi/metrics/tokenizer/__init__.py",
    "content": "__author__ = 'tylin'\n\nfrom gezi.metrics.tokenizer.ptbtokenizer import PTBTokenizer\n"
  },
  {
    "path": "utils/gezi/metrics/tokenizer/ptbtokenizer.py",
    "content": "#!/usr/bin/env python\n# \n# File Name : ptbtokenizer.py\n#\n# Description : Do the PTB Tokenization and remove punctuations.\n#\n# Creation Date : 29-12-2014\n# Last Modified : Thu Mar 19 09:53:35 2015\n# Authors : Hao Fang <hfang@uw.edu> and Tsung-Yi Lin <tl483@cornell.edu>\n\nimport os\nimport sys\nimport subprocess\nimport tempfile\nimport itertools\n\n# path to the stanford corenlp jar\nSTANFORD_CORENLP_3_4_1_JAR = 'stanford-corenlp-3.4.1.jar'\n\n# punctuations to be removed from the sentences\nPUNCTUATIONS = [\"''\", \"'\", \"``\", \"`\", \"-LRB-\", \"-RRB-\", \"-LCB-\", \"-RCB-\", \\\n        \".\", \"?\", \"!\", \",\", \":\", \"-\", \"--\", \"...\", \";\"] \n\nclass PTBTokenizer:\n    \"\"\"Python wrapper of Stanford PTBTokenizer\"\"\"\n\n    def tokenize(self, captions_for_image):\n        cmd = ['java', '-cp', STANFORD_CORENLP_3_4_1_JAR, \\\n                'edu.stanford.nlp.process.PTBTokenizer', \\\n                '-preserveLines', '-lowerCase']\n\n        # ======================================================\n        # prepare data for PTB Tokenizer\n        # ======================================================\n        final_tokenized_captions_for_image = {}\n        image_id = [k for k, v in captions_for_image.items() for _ in range(len(v))]\n        #sentences = '\\n'.join([c['caption'].replace('\\n', ' ') for k, v in captions_for_image.items() for c in v])\n        sentences = '\\n'.join([c.replace('\\n', ' ') for k, v in captions_for_image.items() for c in v])\n\n\n        # ======================================================\n        # save sentences to temporary file\n        # ======================================================\n        path_to_jar_dirname=os.path.dirname(os.path.abspath(__file__))\n        #tmp_file = tempfile.NamedTemporaryFile(delete=False, dir=path_to_jar_dirname)\n        tmp_file = tempfile.NamedTemporaryFile(delete=False, dir='/tmp')\n        tmp_file.write(sentences)\n        tmp_file.close()\n\n        # ======================================================\n        # tokenize sentence\n        # ======================================================\n        cmd.append(os.path.basename(tmp_file.name))\n        p_tokenizer = subprocess.Popen(cmd, cwd=path_to_jar_dirname, \\\n                stdout=subprocess.PIPE)\n        token_lines = p_tokenizer.communicate(input=sentences.rstrip())[0]\n        lines = token_lines.split('\\n')\n        # remove temp file\n        os.remove(tmp_file.name)\n\n        # ======================================================\n        # create dictionary for tokenized captions\n        # ======================================================\n        for k, line in zip(image_id, lines):\n\n            if not k in final_tokenized_captions_for_image:\n                final_tokenized_captions_for_image[k] = []\n            tokenized_caption = ' '.join([w for w in line.rstrip().split(' ') \\\n                    if w not in PUNCTUATIONS])\n            final_tokenized_captions_for_image[k].append(tokenized_caption)\n\n        return final_tokenized_captions_for_image\n"
  },
  {
    "path": "utils/gezi/ngram.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ngram.py\n#        \\author   chenghuige  \n#          \\date   2018-03-01 11:25:51.105094\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport numpy as np\n\n# def get_ngrams(input, minn=3, maxn=3, start='<', end='>'):\n#   input = start + input + end   \n#   len_ = len(input)\n#   ngrams = []\n#   for i in range(0, len_ - minn + 1):\n#     for j in range(i + minn, i + maxn + 1):\n#       if j <= len_:\n#         ngrams.append(input[i:j])\n\n#   return ngrams\n\ndef get_ngrams(input, minn=3, maxn=3, start='<', end='>'):\n  input = start + input + end   \n  len_ = len(input)\n  ngrams = []\n  for ngram in reversed(range(minn, maxn + 1)):\n    for i in range(0, len_ - ngram + 1):\n      ngrams.append(input[i:i + ngram])\n\n  return ngrams\n\nfrom gezi import hash  \n\n# defaut 3, 6 according to fasttext default ngram, but may use 3, 3 only trigram \ndef get_ngrams_hash(input, buckets, minn=3, maxn=6, start='<', end='>', reserve=0):\n  ngrams = get_ngrams(input, minn, maxn, start, end)\n  #print(ngrams)\n  ngrams = [reserve + hash(x) % buckets for x in ngrams]\n  return ngrams\n\ndef fasttext_ids(word, vocab, buckets, minn=3, maxn=6, start='<', end='>'):\n  ngrams = get_ngrams(word, minn, maxn, start, end)\n  ngram_ids = [vocab.size() + hash(x) % buckets for x in ngrams]\n  if vocab.has(word):\n    ids = [vocab.id(word)] + ngram_ids\n  else:\n    ids = ngram_ids\n  return ids\n  \n\n"
  },
  {
    "path": "utils/gezi/nowarning.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   nowarning.py\n#        \\author   chenghuige  \n#          \\date   2015-06-30 15:36:33.184314\n#   \\Description  \n# ==============================================================================\n\nimport warnings\nwarnings.simplefilter(\"ignore\", RuntimeWarning) \n \n"
  },
  {
    "path": "utils/gezi/pydict.py",
    "content": "#! /usr/bin/env python\n#coding=gbk\n############################################\n# [Author]: jianglianxin, jianglianxin\n# [Date]:\t2013/01/15\n############################################\nimport pydictmatch\nfrom sets import Set\nimport sys\n\nclass Pydict :\n  def __init__(self,path_dm) :\n    self.dm_dict_handle = pydictmatch.dm_binarydict_load(path_dm)\n    self.dm_pack_handle = pydictmatch.dm_pack_create()\n    if (not self.dm_dict_handle) or (not self.dm_pack_handle):\n      print >>sys.stderr, \"load pydict fail\"\n      sys.exit(-1)\n  \n  def search(self,query,option):\n    ##option 1:match loggest 0: match all\n    matchList = []\n    if option != 0 and option != 1:\n      return matchList\n    matchList = pydictmatch.dm_search(self.dm_dict_handle, self.dm_pack_handle,query,option)\n    return matchList\n  \n  def close(self) :\n    pydictmatch.dm_pack_del(self.dm_pack_handle)\n    pydictmatch.dm_dict_del(self.dm_dict_handle)\n\n"
  },
  {
    "path": "utils/gezi/rank_metrics.py",
    "content": "\"\"\"Information Retrieval metrics\r\nUseful Resources:\r\nhttp://www.cs.utexas.edu/~mooney/ir-course/slides/Evaluation.ppt\r\nhttp://www.nii.ac.jp/TechReports/05-014E.pdf\r\nhttp://www.stanford.edu/class/cs276/handouts/EvaluationNew-handout-6-per.pdf\r\nhttp://hal.archives-ouvertes.fr/docs/00/72/67/60/PDF/07-busa-fekete.pdf\r\nLearning to Rank for Information Retrieval (Tie-Yan Liu)\r\n\"\"\"\r\nimport numpy as np\r\nimport gezi\r\n\r\ndef mean_reciprocal_rank(rs):\r\n    \"\"\"Score is reciprocal of the rank of the first relevant item\r\n    First element is 'rank 1'.  Relevance is binary (nonzero is relevant).\r\n    Example from http://en.wikipedia.org/wiki/Mean_reciprocal_rank\r\n    >>> rs = [[0, 0, 1], [0, 1, 0], [1, 0, 0]]\r\n    >>> mean_reciprocal_rank(rs)\r\n    0.61111111111111105\r\n    >>> rs = np.array([[0, 0, 0], [0, 1, 0], [1, 0, 0]])\r\n    >>> mean_reciprocal_rank(rs)\r\n    0.5\r\n    >>> rs = [[0, 0, 0, 1], [1, 0, 0], [1, 0, 0]]\r\n    >>> mean_reciprocal_rank(rs)\r\n    0.75\r\n    Args:\r\n        rs: Iterator of relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n    Returns:\r\n        Mean reciprocal rank\r\n    \"\"\"\r\n    rs = (np.asarray(r).nonzero()[0] for r in rs)\r\n    return np.mean([1. / (r[0] + 1) if r.size else 0. for r in rs])\r\n\r\n\r\ndef r_precision(r):\r\n    \"\"\"Score is precision after all relevant documents have been retrieved\r\n    Relevance is binary (nonzero is relevant).\r\n    >>> r = [0, 0, 1]\r\n    >>> r_precision(r)\r\n    0.33333333333333331\r\n    >>> r = [0, 1, 0]\r\n    >>> r_precision(r)\r\n    0.5\r\n    >>> r = [1, 0, 0]\r\n    >>> r_precision(r)\r\n    1.0\r\n    Args:\r\n        r: Relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n    Returns:\r\n        R Precision\r\n    \"\"\"\r\n    r = np.asarray(r) != 0\r\n    z = r.nonzero()[0]\r\n    if not z.size:\r\n        return 0.\r\n    return np.mean(r[:z[-1] + 1])\r\n\r\n\r\ndef precision_at_k(r, k):\r\n    \"\"\"Score is precision @ k\r\n    Relevance is binary (nonzero is relevant).\r\n    >>> r = [0, 0, 1]\r\n    >>> precision_at_k(r, 1)\r\n    0.0\r\n    >>> precision_at_k(r, 2)\r\n    0.0\r\n    >>> precision_at_k(r, 3)\r\n    0.33333333333333331\r\n    >>> precision_at_k(r, 4)\r\n    Traceback (most recent call last):\r\n        File \"<stdin>\", line 1, in ?\r\n    ValueError: Relevance score length < k\r\n    Args:\r\n        r: Relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n    Returns:\r\n        Precision @ k\r\n    Raises:\r\n        ValueError: len(r) must be >= k\r\n    \"\"\"\r\n    assert k >= 1\r\n    r = np.asarray(r)[:k] != 0\r\n    if r.size != k:\r\n        raise ValueError('Relevance score length < k')\r\n    return np.mean(r)\r\n\r\ndef recall_at_k(r, k):\r\n  assert k >= 1\r\n  r = np.asarray(r)[:k] != 0\r\n  return float(np.sum(r) > 0)\r\n\r\ndef average_precision(r):\r\n    \"\"\"Score is average precision (area under PR curve)\r\n    Relevance is binary (nonzero is relevant).\r\n    >>> r = [1, 1, 0, 1, 0, 1, 0, 0, 0, 1]\r\n    >>> delta_r = 1. / sum(r)\r\n    >>> sum([sum(r[:x + 1]) / (x + 1.) * delta_r for x, y in enumerate(r) if y])\r\n    0.7833333333333333\r\n    >>> average_precision(r)\r\n    0.78333333333333333\r\n    Args:\r\n        r: Relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n    Returns:\r\n        Average precision\r\n    \"\"\"\r\n    r = np.asarray(r) != 0\r\n    out = [precision_at_k(r, k + 1) for k in range(r.size) if r[k]]\r\n    if not out:\r\n        return 0.\r\n    return np.mean(out)\r\n\r\n\r\ndef mean_average_precision(rs):\r\n    \"\"\"Score is mean average precision\r\n    Relevance is binary (nonzero is relevant).\r\n    >>> rs = [[1, 1, 0, 1, 0, 1, 0, 0, 0, 1]]\r\n    >>> mean_average_precision(rs)\r\n    0.78333333333333333\r\n    >>> rs = [[1, 1, 0, 1, 0, 1, 0, 0, 0, 1], [0]]\r\n    >>> mean_average_precision(rs)\r\n    0.39166666666666666\r\n    Args:\r\n        rs: Iterator of relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n    Returns:\r\n        Mean average precision\r\n    \"\"\"\r\n    return np.mean([average_precision(r) for r in rs])\r\n\r\n\r\ndef dcg_at_k(r, k, method=1):\r\n    \"\"\"Score is discounted cumulative gain (dcg)\r\n    Relevance is positive real values.  Can use binary\r\n    as the previous methods.\r\n    Example from\r\n    http://www.stanford.edu/class/cs276/handouts/EvaluationNew-handout-6-per.pdf\r\n    >>> r = [3, 2, 3, 0, 0, 1, 2, 2, 3, 0]\r\n    >>> dcg_at_k(r, 1)\r\n    3.0\r\n    >>> dcg_at_k(r, 1, method=1)\r\n    3.0\r\n    >>> dcg_at_k(r, 2)\r\n    5.0\r\n    >>> dcg_at_k(r, 2, method=1)\r\n    4.2618595071429155\r\n    >>> dcg_at_k(r, 10)\r\n    9.6051177391888114\r\n    >>> dcg_at_k(r, 11)\r\n    9.6051177391888114\r\n    Args:\r\n        r: Relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n        k: Number of results to consider\r\n        method: If 0 then weights are [1.0, 1.0, 0.6309, 0.5, 0.4307, ...]\r\n                If 1 then weights are [1.0, 0.6309, 0.5, 0.4307, ...]\r\n    Returns:\r\n        Discounted cumulative gain\r\n    \"\"\"\r\n    r = np.asfarray(r)[:k]\r\n    if r.size:\r\n        if method == 0:\r\n            return r[0] + np.sum(r[1:] / np.log2(np.arange(2, r.size + 1)))\r\n        elif method == 1:\r\n            return np.sum(r / np.log2(np.arange(2, r.size + 2)))\r\n        else:\r\n            raise ValueError('method must be 0 or 1.')\r\n    return 0.\r\n\r\n\r\ndef ndcg_at_k(r, k, method=1):\r\n    \"\"\"Score is normalized discounted cumulative gain (ndcg)\r\n    Relevance is positive real values.  Can use binary\r\n    as the previous methods.\r\n    Example from\r\n    http://www.stanford.edu/class/cs276/handouts/EvaluationNew-handout-6-per.pdf\r\n    >>> r = [3, 2, 3, 0, 0, 1, 2, 2, 3, 0]\r\n    >>> ndcg_at_k(r, 1)\r\n    1.0\r\n    >>> r = [2, 1, 2, 0]\r\n    >>> ndcg_at_k(r, 4)\r\n    0.9203032077642922\r\n    >>> ndcg_at_k(r, 4, method=1)\r\n    0.96519546960144276\r\n    >>> ndcg_at_k([0], 1)\r\n    0.0\r\n    >>> ndcg_at_k([1], 2)\r\n    1.0\r\n    Args:\r\n        r: Relevance scores (list or numpy) in rank order\r\n            (first element is the first item)\r\n        k: Number of results to consider\r\n        method: If 0 then weights are [1.0, 1.0, 0.6309, 0.5, 0.4307, ...]\r\n                If 1 then weights are [1.0, 0.6309, 0.5, 0.4307, ...]\r\n    Returns:\r\n        Normalized discounted cumulative gain\r\n    \"\"\"\r\n    dcg_max = dcg_at_k(sorted(r, reverse=True), k, method)\r\n    if not dcg_max:\r\n        return 0.\r\n    return dcg_at_k(r, k, method) / dcg_max\r\n\r\nclass RankMetrics():\r\n  def __init__(self):\r\n    self.names = [\r\n      'ndcg@1', \\\r\n      'ndcg@5', \\\r\n      'ndcg@10', \\\r\n      #'mean_reciprocal_rank', \\\r\n      #'r_precision', \\\r\n      'avg_precision', \\\r\n      #'precision@1', \\\r\n      #'precision@5', \\\r\n      #'precision@10', \\\r\n      #'dcg@1', \\\r\n      #'dcg@5', \\\r\n      #'dcg@10', \\\r\n        ]\r\n    self.avg_metrics = gezi.avg_score.AvgScore()\r\n\r\n    self.metrics = None\r\n\r\n  def add(self, labels):\r\n    metrics = [\r\n      ndcg_at_k(labels, 1), \\\r\n      ndcg_at_k(labels, 5), \\\r\n      ndcg_at_k(labels, 10), \\\r\n      #mean_reciprocal_rank(labels), \\\r\n      #r_precision(labels), \\\r\n      average_precision(labels), \\\r\n      #precision_at_k(labels, 1), \\\r\n      #precision_at_k(labels, 5), \\\r\n      #precision_at_k(labels, 10), \\\r\n      #dcg_at_k(labels, 1), \\\r\n      #dcg_at_k(labels, 5), \\\r\n      #dcg_at_k(labels, 10), \\\r\n        ]\r\n    self.avg_metrics.add(metrics)\r\n  \r\n  def finalize(self):\r\n    self.metrics = self.avg_metrics.avg_score()\r\n    return self.metrics\r\n\r\n  def get_metrics(self):\r\n    if self.metrics is None:\r\n      return self.finalize()\r\n    return self.metrics\r\n\r\n  def get_names(self):\r\n    return self.names\r\n\r\nclass RecallMetrics():\r\n  def __init__(self):\r\n    self.names = [\r\n      'recall@1',\r\n      'recall@5',\r\n      'recall@10',\r\n      'recall@50',\r\n        ]\r\n    self.avg_metrics = gezi.avg_score.AvgScore()\r\n\r\n    self.metrics = None\r\n\r\n  def add(self, labels):\r\n    metrics = [\r\n      recall_at_k(labels, 1),\r\n      recall_at_k(labels, 5),\r\n      recall_at_k(labels, 10),\r\n      recall_at_k(labels, 50)\r\n        ]\r\n    self.avg_metrics.add(metrics)\r\n  \r\n  def finalize(self):\r\n    self.metrics = self.avg_metrics.avg_score()\r\n    return self.metrics\r\n\r\n  def get_metrics(self):\r\n    if self.metrics is None:\r\n      return self.finalize()\r\n    return self.metrics\r\n\r\n  def get_names(self):\r\n    return self.names\r\n\r\nif __name__ == \"__main__\":\r\n    import doctest\r\n    doctest.testmod()"
  },
  {
    "path": "utils/gezi/segment.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   segment.py\n#        \\author   chenghuige  \n#          \\date   2016-08-25 19:09:51.756927\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport gezi.nowarning\nimport gezi\nimport sys\nimport os \n\n#sys.path.append(\"./predeal\")\n#import traceback\ntry:\n  import gezi.keyword_fetch as kf\nexcept Exception:\n  #print(traceback.format_exc())\n  pass\n  \nfrom gezi.libgezi_util import get_single_cns\nimport six\nimport re\n\n#TODO need improve\ndef segment_gbk_char(text, cn_only=False):\n  assert six.PY2\n  l = []\n  pre_is_cn = False\n  unicode_text = text.decode('gbk', 'ignore')\n  for word in unicode_text:\n    if u'\\u4e00' <= word <= u'\\u9fff':\n      pre_is_cn = True\n      if l:\n        l.append(' ')\n    else:\n      l.append(' ')\n      if pre_is_cn:\n        pre_is_cn = False\n    if not cn_only or pre_is_cn:\n      l.append(word)\n  text = ''.join(l)\n  text = text.encode('gbk', 'ignore')\n  l = text.split()\n  return [x.strip() for x in l if x.strip()]  \n\n\n#def segment_utf8_charv1(text, cn_only=False):\n#  \"\"\"\n#  Code by limin\n#  \"\"\"\n#  content= text.replace('===>>>签名：','')\n#  if six.PY2:\n#    content = re.sub(ur'[\\s]+', '', content.decode('utf8', 'ignore'))\n#    sentance = content.encode('utf8', 'ignore')\n#    seglist = sentance\n#    output = ' '.join(seglist.decode('utf8','ignore')).encode('utf8','ignore')\n#  else:\n#    output = ' '.join(list(content))\n#  return output \n\ndef segment_utf8_char(text, cn_only=False):\n  if not six.PY2 and not cn_only:\n    return [x.strip() for x in text if x.strip()]\n  l = []\n  pre_is_cn = False\n  if six.PY2:\n    unicode_text = text.decode('utf-8', 'ignore')\n  else:\n    unicode_text = text\n  for word in unicode_text:\n    #print('-----------word', word, pre_is_cn)\n    if u'\\u4e00' <= word <= u'\\u9fff':\n      pre_is_cn = True\n      if l:\n        l.append(' ')\n    else:\n      l.append(' ')\n      if pre_is_cn:\n        pre_is_cn = False\n    if not cn_only or pre_is_cn:\n      l.append(word)\n  text = ''.join(l)\n  if six.PY2:\n    text = text.encode('utf-8')\n  l = text.split()\n  return [x.strip() for x in l if x.strip()]    \n\ndef segment_utf8_pinyin(text, cn_only=False):\n    \"\"\"\n    by yuhan\n    \"\"\"\n    pinyin_char = kf.deform_dis_get(text)\n    #print (pinyin_char)\n    l = pinyin_char.split()\n    return [x.strip() for x in l if x.strip()]\n\ndef segment_utf8_pinyin2(text, cn_only=False):\n    \"\"\"\n    by yuhan\n    \"\"\"\n    pinyin_char = kf.deform_dis_get_v2(text)\n    #print (pinyin_char)\n    l = pinyin_char.split()\n    return [x.strip() for x in l if x.strip()]\n\n\ndef segment_en(text):\n  l = text.strip().split()\n  return [x.strip() for x in l if x.strip()]\n\ndef filter_quota(text):\n  return text.replace(\"''\", '\" ').replace(\"``\", '\" ')\n\n# def try_strip(text, ch='-'):\n#   otext = text.strip(ch)\n#   if otext:\n#     return otext \n#   return text\n    \nnlp = None\ndef tokenize(text):\n  #text = filter_quota(text)\n  #try:\n  import spacy\n  global nlp \n  if nlp is None:\n    nlp = spacy.blank(\"en\")\n  if six.PY2:\n    text = text.decode('utf-8')\n  doc = nlp(text)\n  if six.PY2:\n    return [token.text.encode('utf-8') for token in doc]\n  else:\n    return [token.text for token in doc]\n  #except Exception:\n  #  return segment_en(text)\n\nfull_nlp = None\n\ndef init_spacy_full():\n  import spacy\n  global full_nlp\n  if full_nlp is None:\n    timer = gezi.Timer('load spacy model')\n    full_nlp = spacy.load('/usr/local/lib/python3.5/dist-packages/spacy/data/en_core_web_md-2.0.0/')\n    timer.print_elapsed()   \n\ndef doc(text):\n  import spacy\n  global full_nlp \n  if full_nlp is None:\n    # TODO FIXME\n    #full_nlp = spacy.load(\"en\")\n    timer = gezi.Timer('load spacy model')\n    full_nlp = spacy.load('/usr/local/lib/python3.5/dist-packages/spacy/data/en_core_web_md-2.0.0/')\n    timer.print_elapsed()\n\n  if six.PY2:\n    text = text.decode('utf-8')\n  doc = full_nlp(text)\n  return doc\n\ndef tokenize_filter_empty(text):\n  #text = filter_quota(text)\n  #try:\n  import spacy\n  global nlp \n  if nlp is None:\n    nlp = spacy.blank(\"en\")\n  if six.PY2:\n    text = text.decode('utf-8')\n  doc = nlp(text)\n  if six.PY2:\n    return list(filter(lambda x: x.strip(), [token.text.encode('utf-8') for token in doc]))\n  else:\n    return list(filter(lambda x: x.strip(), [token.text for token in doc]))\n\ntry:\n  import jieba \n  import jieba.posseg\nexcept Exception:\n  pass \n\nsegment_char = segment_utf8_char\nsegment_pinyin = segment_utf8_pinyin\n\nstanford_nlp = None\n\n# NOTICE emoji will cause segment error for stanford nlp\n# https://stackoverflow.com/questions/43146528/how-to-extract-all-the-emojis-from-text\ndef init_stanford_nlp(path='/home/gezi/soft/stanford-corenlp', lang='zh'):\n#def init_stanford_nlp(path='/stanford-corenlp', lang='zh'):\n  global stanford_nlp\n  if not stanford_nlp:\n    from stanfordcorenlp import StanfordCoreNLP \n    if not os.path.exists(path):\n      path = './stanford-corenlp'\n      if not os.path.exists(path):\n        print('init stanford nlp from local server 8818 port', file=sys.stderr)\n        stanford_nlp = StanfordCoreNLP('http://localhost', port=8818, lang=lang, memory='8g')\n    if not stanford_nlp:    \n      import logging\n      print('init stanford nlp from %s' % path, file=sys.stderr)\n      stanford_nlp = StanfordCoreNLP(path, lang=lang, memory='4g')\n\ndef remove_duplicate(text):\n  if six.PY2:\n    text = text.decode('utf8')\n  l = []\n\n  start = 0 \n  end = 0\n  duplicates = []\n  while start < len(text):\n    while  end < len(text) and text[start] == text[end]:\n      duplicates.append(text[start])\n      end += 1\n    l.append(''.join(duplicates[:5]))\n    duplicates = []\n    start = end\n  \n  text = ''.join(l)\n\n  if six.PY2:\n    text = text.encode('utf8')\n  return text\n\ndef cut(text, type='word'):\n  # move it to filter.py\n  #text = remove_duplicate(text) \n  if type == 'word':\n    return word_cut(text)\n  elif type == 'pos':\n    return pos_cut(text)\n  elif type == 'ner':\n    return ner_cut(text)\n  else:\n    raise ValueError('bad type: %s' % type)\n\n# HACK for emoji stanford nlp\n\ndef is_emoji_en(word):\n  for w in word:\n    if not (w == '_' or (w <= 'z' and w >= 'a')):\n      return False\n  return True\n\ndef hack_emoji(l):\n  import emoji\n  res = []\n  i = 0\n  while i < len(l):\n    if i < len(l) - 2 and (l[i] == ':' and l[i+2] == ':' and  is_emoji_en(l[i + 1])):\n      res.append(emoji.emojize(':%s:' % l[i + 1]))\n      i += 2\n    else:\n      res.append(l[i])\n      i += 1\n\n  return res\n\ndef hack_emoji2(l):\n  import emoji\n  res = []\n  i = 0\n  while i < len(l):\n    if i < len(l) - 2:\n      x, _ = l[i]\n      x2, _ = l[i + 1]\n      x3, _ = l[i + 2]\n      if x == ':' and x3 == ':' and  is_emoji_en(x2):\n        res.append((emoji.emojize(':%s:' % x2), 'EMOJI'))\n        i += 3\n      else:\n        res.append(l[i])\n        i += 1\n    else:\n      res.append(l[i])\n      i += 1\n\n  return res\n\nexpressions_len2 = set([':)', ':(',])\nexpressions_len3 = set(['^_^', '^O^', '≥▽≤', '+_+',\\\n                        '＾◇＾', '～o～', '-ω-', '-_-', '^ω^',\\\n                        '^o^', '╯ε╰', '∩_∩', '^O^', '=_=', 'T_T'])\nexpressions_len4 =  set(['-_-#'])\n\nexpressions = [expressions_len2, expressions_len3, expressions_len4]\n\ndef merge_expression(l):\n  res = []\n\n  i = 0\n  while i < len(l):\n    if i + 3 < len(l) and ''.join(l[i:i+4]) in expressions_len4:\n      res.append(''.join(l[i:i+4]))\n      i = i + 4\n    elif i + 2 < len(l) and ''.join(l[i:i + 3]) in expressions_len3:\n      res.append(''.join(l[i:i + 3]))\n      i += 3\n    elif i + 1 < len(l) and ''.join(l[i:i + 2]) in expressions_len2:\n      res.append(''.join(l[i:i + 2]))\n      i += 2\n    else:\n      res.append(l[i])\n      i += 1\n  return res \n\ndef merge_expression2(l):\n  res = []\n  i = 0\n  while i < len(l):\n    if i + 3 < len(l) and ''.join([x for x,y in l[i:i+4]]) in expressions_len4:\n      res.append((''.join([x for x,y in l[i:i+4]]), 'EXPRESSION'))\n      i += 4\n    elif i + 2 < len(l) and ''.join([x for x,y in l[i:i + 3]]) in expressions_len3:\n      res.append((''.join([x for x,y in l[i:i + 3]]), 'EXPRESSION'))\n      i += 3\n    elif i + 1 < len(l) and ''.join([x for x,y in l[i:i + 2]]) in expressions_len2:\n      res.append((''.join([x for x,y in l[i:i + 2]]), 'EXPRESSION'))\n      i += 2\n    else:\n      res.append(l[i])\n      i += 1\n  return res\n\n\nbseg = None \ndef init_bseg(use_pos=False, use_ner=False):\n  global bseg\n  if bseg is None: \n    assert six.PY2, 'bseg must use python2'\n    import nowarning \n    import libgezi \n    import libsegment \n    from libsegment import Segmentor \n    if use_pos:\n      Segmentor.AddStrategy(libsegment.SEG_USE_POSTAG)\n    if use_ner:\n      Segmentor.AddStrategy(libsegment.SEG_USE_WORDNER)\n    #Segmentor.Init(ner_maxterm_count=1024)\n    Segmentor.Init()\n    bseg = Segmentor\n  return bseg\n\ndef to_gbk(text):\n  return text.decode('utf8', 'ignore').encode('gbk', 'ignore')\n\ndef to_utf8(text):\n  return text.decode('gbk', 'ignore').encode('utf8', 'ignore')\n\n# sentence piece\nsp = None\ndef init_sp(path=None):\n  import sentencepiece as spm \n  global sp\n  if sp is None: \n    sp = spm.SentencePieceProcessor()\n    if path is None:\n      path = './sp.model'\n    sp.Load(path)\n\n  assert sp\n\ndef word_cut(text):\n  if gezi.env_has('SENTENCE_PIECE'):\n    init_sp()\n    l = sp.EncodeAsPieces(text)\n    if l:\n      if l[0] == '▁':\n        l =  l[1:]\n      elif l[0].startswith('▁'):\n        l[0] = l[0][1:]\n    return l\n\n  if gezi.env_has('STANFORD_NLP'):\n    import emoji\n    init_stanford_nlp()\n    try:\n      l = stanford_nlp.word_tokenize(emoji.demojize(text))\n      l = hack_emoji(l)\n      return merge_expression(l)\n    except Exception:\n      print('stnaord error text: %s' % text, file=sys.stderr)\n      l = list(jieba.cut(text))\n      return merge_expression(l)\n\n  if gezi.env_has('BSEG'):\n    import emoji\n    init_bseg()\n    try:\n      # NOTICE py2 need decode utf8 to get unicode as input to emoji\n      l = bseg.Segment(to_gbk(emoji.demojize(text.decode('utf8'))))\n      l = [to_utf8(x) for x in l]\n      l = hack_emoji(l)\n      l = merge_expression(l)\n      return l\n    except Exception:\n      print('bseg error text: %s' % text, file=sys.stderr)\n      l = list(jieba.cut(text))\n      l = merge_expression(l)\n      return l\n\n  # TODO make a switch since jieba.posseg is much slower... then jieba.cut\n  if gezi.env_has('JIEBA_POS'):\n    l = jieba.posseg.cut(text)\n    l = [word for word, tag in l]\n    return merge_expression(l)\n  \n  return merge_expression(list(jieba.cut(text)))\n\npos_tags = [\"None\", \"Ag\", \"Dg\", \"Ng\", \"Tg\", \"Vg\", \"a\", \"ad\", \"an\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"nr\", \"ns\", \"nt\", \"nx\", \"nz\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"vd\", \"vn\", \"w\", \"y\", \"z\" ]\n\n#def pos_cut(text, same_with_ner=True):\ndef pos_cut(text):\n  #print('------------', text, gezi.env_has('BSEG'))\n  if gezi.env_has('STANFORD_NLP'):\n    import emoji\n    init_stanford_nlp()\n    l = stanford_nlp.pos_tag(emoji.demojize(text))\n    l = hack_emoji2(l)\n    res = merge_expression2(l)\n  elif gezi.env_has('BSEG'):\n    import emoji\n    init_bseg(use_pos=True)\n    def bseg_(text):\n      nodes = bseg.Cut(to_gbk(emoji.demojize(text.decode('utf8')))) \n      l = [(to_utf8(x.word), pos_tags[x.type]) for x in nodes]\n      return l\n    l = bseg_(text)\n\n    # if not same_with_ner:\n    #   l = bseg_(text)\n    # else:\n    #   # HACK to have same seg result as word ner\n    #   MAX_LEN = 500\n    #   text_len = len(text)\n    #   if  text_len < MAX_LEN:\n    #     l = bseg_(text)\n    #   else:\n    #     len_ = 0\n    #     words = []\n    #     l = []\n    #     for word in jieba.cut(text):\n    #       word = word.encode('utf-8')\n    #       len_ += len(word)\n    #       words.append(word)\n    #       if len_ >= MAX_LEN:\n    #         len_ = 0\n    #         l += bseg_(''.join(words))\n    #         #print(len(''.join(words)), len(l))\n    #         words = []\n    #     if words:\n    #       l += bseg_(''.join(words))\n\n    #assert l\n    l = hack_emoji2(l)\n    res = merge_expression2(l)\n  else:\n    res = merge_expression2(list(jieba.posseg.cut(text)))\n  \n  for i in range(len(res)):\n    w, t = res[i]\n    if w == '\\x01' or w == '\\x02' or w == '\\x03':\n      res[i] = (w, 'sep')\n  return res\n\n#x = 100000\n\ndef ner_cut(text):\n  import emoji\n  if gezi.env_has('STANFORD_NLP'):\n    init_stanford_nlp()\n    l = stanford_nlp.ner(emoji.demojize(text))\n    l = merge_expression2(l)\n  else:\n    init_bseg(use_ner=True)\n    def bseg_(text):\n      bseg.Cut(to_gbk(emoji.demojize(text.decode('utf8'))))\n      bseg.NerTag()\n      if not gezi.env_has('BSEG_SUBNER'):\n        nodes = bseg.GetNerNodes()\n      else:\n        nodes = bseg.GetSubNerNodes()\n      l = [(to_utf8(x.word), x.name) for x in nodes]\n      return l\n    # have tested as 718 cause error \n    MAX_LEN = 500\n    text_len = len(text)\n    #l = bseg_(text)\n    #print(text_len, len(l))\n\n    # global x \n    # if len(l) == 0:\n    #   if text_len < x:\n    #     x = text_len\n    #     #print('-------------------', x)\n\n    #print('-----------------', x)\n    \n    # HACK bseg wordner could nout seg long text so workaround here is to cut it  \n    # well still has some fail.. \n    jieba_cuts = None\n    if  text_len < MAX_LEN:\n      l = bseg_(text)\n    else:\n      len_ = 0\n      words = []\n      l = []\n      jieba_cuts = [x.encode('utf8') for x in jieba.cut(text)]\n      for word in jieba_cuts:\n        len_ += len(word)\n        words.append(word)\n        if len_ >= MAX_LEN:\n          len_ = 0\n          l += bseg_(''.join(words))\n          #print(len(''.join(words)), len(l))\n          words = []\n\n      if words:\n        l += bseg_(''.join(words))\n      \n    #if len(l) < len(text) / 10:\n    if len(''.join([x for x,y in l]).decode('utf8')) < len(text.decode('utf8')) * 0.8:\n      print('warning, bad cut for turn back to use jieba cut:', text, file=sys.stderr)\n      if not jieba_cuts:\n        jieba_cuts = [x.encode('utf8') for x in jieba.cut(text)]\n      l = [(x, 'NOR') for x in jieba_cuts]\n     \n    #exit(0)\n  #assert l\n  l = hack_emoji2(l)\n  res = merge_expression2(l)\n\n  for i in range(len(res)):\n    w, t = res[i]\n    if w == '\\x01' or w == '\\x02' or w == '\\x03':\n      res[i] = (w, 'sep')\n  return res\n\n#TODO hack how to better deal? now for c++ part must be str..\n#TODO JiebaSegmentor can be Stanford nlp seg mentor if set STANFORD_NLP in env, so only to diff from BZegmentor\nclass JiebaSegmentor(object):\n  def __init__(self):\n    pass\n\n  def segment_basic_single(self, text):\n    #results = [word for word in get_single_cns(text)]\n    results = [word for word in segment_char(text, cn_only=True)]\n    results += [word for word in cut(text)]\n    return results  \n\n  def segment_basic_single_all(self, text):\n    #results = [word for word in get_single_cns(text)]\n    results = [word for word in segment_char(text, cn_only=False)]\n    results += [word for word in cut(text)]\n    return results  \n\n  def segment_full_single(self, text):\n    #results = [word for word in get_single_cns(text)]\n    results = [word for word in segment_char(text, cn_only=True)]\n    results += [word for word in cut_for_search(text)]\n    return results  \n\n  def Segment(self, text, method='basic'):\n    \"\"\"\n    default means all level combine\n    \"\"\"\n    method = method.replace('phrase', 'basic')\n\n    words = None\n    if method == 'default' or method == 'basic' or method == 'exact':\n      #words = [x for x in cut(text)]\n      words = cut(text)\n    elif method == 'basic_digit':\n      #words = [x for x in cut(text)]\n      words = cut(text)\n      def sep_digits(word):\n        l = []\n        s = ''\n        for c in word:\n          if c.isdigit():\n            if s:\n              l.append(s)\n            l.append(c)\n            s = ''\n          else:\n            s += c\n        if s:\n          l.append(s)\n        return l\n      l = []\n      for w in words:\n        l += sep_digits(w)\n      words = l\n    elif method == 'basic_single' or method == 'exact_single':\n      words = self.segment_basic_single(text)\n    elif method == 'basic_single_all':\n      words = self.segment_basic_single_all(text)\n    elif method == 'search':\n      words = cut_for_search(text)\n    elif method == 'cut_all':\n      words = cut(text, cut_all=True)\n    elif method == 'all' or method == 'full':\n      words = self.segment_full_single(text)\n    elif method == 'en':\n      words = segment_en(text)\n    elif method == 'char':\n      words = segment_char(text)\n    elif method == 'pinyin':\n      words = segment_pinyin(text)\n    elif method == 'pinyin2':\n      words = segment_utf8_pinyin2(text)\n    elif method == 'basic2':\n      words = kf.deform_dis_get_words(text)\n    elif method =='char_pinyin':\n      from pypinyin import lazy_pinyin as pinyin\n      #return pinyin(text)\n      return [x.strip() for x in pinyin(text)]\n    elif method =='char_pinyin2':\n      from pypinyin import lazy_pinyin as pinyin\n      return [''.join(pinyin(x)) for x in text]\n    elif method == 'char_then_pinyin':\n      # In [2]: pinyin('补肾微信xtx0329')\n      # Out[2]: ['bu', 'shen', 'wei', 'xin', 'xtx0329'] \n      # so as 补,肾,微,信,x,t,x,0,3,2,9,<S>,bu,shen,wei,xin,<UNK>\n      from pypinyin import lazy_pinyin as pinyin\n      return  segment_char(text) + ['<S>'] + [x.strip() for x in pinyin(text)]\n    elif method == 'char_then_pinyin2':\n      from pypinyin import lazy_pinyin as pinyin\n      return  segment_char(text) + ['<S>'] + [''.join(pinyin(x)).strip() for x in text if x.strip()]\n    elif method == 'word_char':\n      return [x for x in cut(text, cut_all=False)] + ['<S>'] + segment_char(text)\n    elif method == 'word_char_pinyin':\n      from pypinyin import lazy_pinyin as pinyin\n      return [x for x in cut(text, cut_all=False)] + ['<S>'] + segment_char(text) + ['<S>'] + [x.strip() for x in pinyin(text)]\n    elif method == 'word_char_pinyin2':\n      from pypinyin import lazy_pinyin as pinyin\n      return [x for x in cut(text, cut_all=False)] + ['<S>'] + segment_char(text) + ['<S>'] + [''.join(pinyin(x)).strip() for x in text if x.strip()]\n    elif method == 'tab':\n      words = text.strip().split('\\t')\n    elif method == 'white_space':\n      words = text.strip().split()\n    else:\n      raise ValueError('%s not supported'%method)\n\n    #words = [w for w in words]\n    \n    if six.PY2:\n      for i in range(len(words)):\n        if isinstance(words[i], unicode):\n          words[i] = words[i].encode('utf-8')\n          \n    return words\n\nSegmentor = JiebaSegmentor\n\nif gezi.encoding == 'gbk' or gezi.env_has('BSEG'):\n  import libgezi\n  import libsegment\n  seg = libsegment.Segmentor\n\n  segment_char = segment_gbk_char \n\n  class BSegmentor(object):\n    def __init__(self, data='./data/wordseg', conf='./conf/scw.conf'):\n      assert six.PY2, 'baidu segmentor now only support py2'\n      seg.Init(data_dir=data, conf_path=conf)\n\n    #@TODO add fixed pre dict like 1500w keyword ? \n    def segment_nodupe_noseq(self, text):\n      results = set()\n      for word in seg.Segment(text):\n        results.add(word)\n      for word in seg.Segment(text, libsegment.SEG_NEWWORD):\n        results.add(word)\n      for word in seg.Segment(text, libsegment.SEG_BASIC):\n        results.add(word)\n      for word in get_single_cns(text):\n        results.add(word)\n      return list(results)\n\n    def Segment_nodupe_noseq(self, text):\n      return self.segment_noseq(text)\n\n    def segment_nodupe(self, text):\n      results = [word for word in seg.Segment(text)]\n      results += [wrod for word in seg.Segment(text, libsegment.SEG_NEWWORD)]\n      results += [wrod for word in seg.Segment(text, libsegment.SEG_BASIC)]\n      results += [word for word in get_single_cns(text)]\n      return gezi.dedupe_list(results)\n\n    def Segment_nodupe(self, text):\n      return self.segment(text)\n\n    #@TODO is this best method ?\n    def segment(self, text):\n      results = [word for word in get_single_cns(text)]\n      results_set = set(results) \n      \n      for word in seg.Segment(text):\n        if word not in results_set:\n          results.append(word)\n          results_set.add(word)\n      \n      for word in seg.Segment(text, libsegment.SEG_NEWWORD):\n        if word not in results_set:\n          results.append(word)\n          results_set.add(word)\n      \n      for word in seg.Segment(text, libsegment.SEG_BASIC):\n        if word.isdigit():\n          word = '<NUM>'\n        if word not in results_set:\n          results.append(word)\n          results_set.add(word)\n\n      return results\n\n    def segment_seq_all(self, text):\n      results = [word for word in get_single_cns(text)]\n\n      results.append('<SEP0>')\n      for word in seg.Segment(text, libsegment.SEG_BASIC):\n        results.append(word)\n       \n      results.append('<SEP1>')\n      for word in seg.Segment(text):\n        results.append(word)\n      \n      results.append('<SEP2>')\n      for word in seg.Segment(text, libsegment.SEG_NEWWORD):\n        results.append(word)\n      \n      return results\n    \n    def segment_phrase(self, text):\n      return seg.Segment(text)\n\n    def segment_basic(self, text):\n      return seg.Segment(text, libsegment.SEG_BASIC)\n\n    def segment_phrase_single(self, text):\n      results = [word for word in get_single_cns(text)]\n      results += [word for word in seg.Segment(text)]\n      return results\n\n    def segment_phrase_single_all(self, text):\n      results = [word for word in segment_char(text, cn_only=False)]\n      results += [word for word in seg.Segment(text)]\n      return results  \n\n    def segment_basic_single(self, text):\n      results = [word for word in get_single_cns(text)]\n      results += [word for word in seg.Segment(text, libsegment.SEG_BASIC)]\n      return results\n\n    def segment_basic_single_all(self, text):\n      results = [word for word in segment_char(text, cn_only=False)]\n      results += [word for word in seg.Segment(text, libsegment.SEG_BASIC)]\n      return results  \n\n    def segment_phrase_single_all(self, text):\n      results = [word for word in segment_char(text, cn_only=False)]\n      results += [word for word in seg.Segment(text)]\n      return results  \n\n    def segment_merge_newword_single(self, text):\n      results = [word for word in get_single_cns(text)]\n      results += [word for word in seg.Segment(text, libsegment.SEG_MERGE_NEWWORD)]\n      return results\n    \n    def Segment(self, text, method='default'):\n      \"\"\"\n      default means all level combine\n      \"\"\"\n      if gezi.env_has('JIEBA_SEG'):\n        ori_text = text\n        try:\n          text = text.decode('utf8').encode('gbk')\n        except Exception:\n          #print('------------jieba cut')\n          return JiebaSegmentor().Segment(ori_text, method=method)\n      else:\n        text = text.decode('utf8').encode('gbk', 'ignore')\n\n      if method == 'default' or method == 'all' or method == 'full':\n        l = self.segment(text)\n      elif method == 'phrase_single':\n        l = self.segment_phrase_single(text)\n      elif method == 'phrase_single_all':\n        l = self.segment_phrase_single_all(text)\n      elif method == 'phrase':\n        l = seg.Segment(text)\n      elif method == 'basic':\n        l = seg.Segment(text, libsegment.SEG_BASIC)\n      elif method == 'basic_digit':\n        words = seg.Segment(text, libsegment.SEG_BASIC)\n        def sep_digits(word):\n          l = []\n          s = ''\n          for c in word:\n            if c.isdigit():\n              if s:\n                l.append(s)\n              l.append(c)\n              s = ''\n            else:\n              s += c\n          if s:\n            l.append(s)\n          return l\n        l = []\n        for w in words:\n          l += sep_digits(w)\n        words = l\n      elif method == 'basic_single':\n        l = self.segment_basic_single(text)\n      elif method == 'basic_single_all':\n        l = self.segment_basic_single_all(text)\n      elif method == 'phrase_single_all':\n        l = self.segment_phrase_single_all(text)\n      elif method == 'merge_newword':\n        l = seg.Segment(text, libsegment.SEG_MERGE_NEWWORD)\n      elif method == 'merge_newword_single':\n        l = self.segment_merge_newword_single(text)\n      elif method == 'seq_all':\n        l = self.segment_seq_all(text)\n      elif method == 'en':\n        l = segment_en(text)\n      elif method == 'tokenize':\n        l = tokenize(text)\n      elif method == 'char':\n        l = segment_char(text)\n      elif method == 'tab':\n        l = text.strip().split('\\t')\n      elif method == 'white_space':\n        l = text.strip().split()\n      else:\n        raise ValueError('%s not supported'%method)\n\n      return [x.decode('gbk').encode('utf8') for x in l]\n\n\n  Segmentor = BSegmentor\n\n\nimport threading\n#looks like by this way... threads create delete too much cost @TODO\n#and how to prevent this log?\n#DEBUG: 08-27 13:18:50:   * 0 [seg_init_by_model]: set use ne=0\n#TRACE: 08-27 13:18:50:   * 0 [clear]: tag init stat error\n#DEBUG: 08-27 13:18:50:   * 0 [init_by_model]: max_nbest=1, max_word_num=100, max_word_len=100, max_y_size=6\n#2>/dev/null 2>&1\n#so multi thread only good for create 12 threads each do many works at parrallel, here do so little work.. slow!\ndef segments(texts, segmentor):\n  results = [None] * len(texts)\n  def segment_(i, text):\n    seg.Init()\n    results[i] = segmentor.segment(text)\n  threads = []\n  for args in enumerate(texts):\n    t = threading.Thread(target=segment_, args=args) \n    threads.append(t) \n  for t in threads:\n    t.start()\n  for t in threads:\n    t.join()\n  return results\n\n#seems multiprocessing same as above ?\n#segmentor resource only init once! whyï¼? @TODO\nimport multiprocessing\nfrom multiprocessing import Manager \ndef segments_multiprocess(texts, segmentor):\n  manager = Manager()\n  dict_ = manager.dict()\n  results = [None] * len(texts)\n\n  def segment_(i, text):\n    seg.Init()\n    dict_[i] = segmentor.segment(text)\n  record = []\n  for args in enumerate(texts):\n    process =  multiprocessing.Process(target=segment_, args=args) \n    process.start()\n    record.append(process) \n  for process in record:\n    process.join()\n  for i in xrange(len(record)):\n    results[i] = dict_[i]\n  return results\n"
  },
  {
    "path": "utils/gezi/setup.py",
    "content": "import os\n\nimport setuptools\nfrom setuptools import setup\n\n__version__ = '0.2.0'\n\nsetup(name='gezi',\n      version=__version__,\n      packages=setuptools.find_packages())\n"
  },
  {
    "path": "utils/gezi/summary.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   summary.py\n#        \\author   chenghuige  \n#          \\date   2019-07-22 19:09:08.471338\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n# Code referenced from https://gist.github.com/gyglim/1f8dfb1b5c82627ae3efcfbbadb9f514\nimport tensorflow as tf\nimport numpy as np\nimport scipy.misc \nimport PIL.Image as Image\n\ntry:\n    from StringIO import StringIO  # Python 2.7\nexcept ImportError:\n    from io import BytesIO         # Python 3.x\nimport matplotlib.pyplot as plt\nimport cv2\n\n\nclass SummaryWriter(object):\n    \n    def __init__(self, log_dir):\n        \"\"\"Create a summary writer logging to log_dir.\"\"\"\n        self.writer = tf.summary.FileWriter(log_dir)\n\n    def scalar(self, tag, value, step):\n        \"\"\"Log a scalar variable.\"\"\"\n        summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value)])\n        self.writer.add_summary(summary, step)\n        self.writer.flush() \n\n    def image(self, tag, images, step, texts=None, bytes_input=False):\n        \"\"\"Log a list of images.\"\"\"\n\n        if not isinstance(images, (list, tuple)):\n            images = [images]\n\n        img_summaries = []\n        if texts:\n            assert len(images) == len(texts)\n        for i, img in enumerate(images):\n            # Write the image to a string\n            if not bytes_input:\n                try:\n                    s = StringIO()\n                except:\n                    s = BytesIO()\n                \n                if not texts:\n                    #scipy.misc.toimage(img).save(s, format=\"png\")\n                    Image.fromarray(img).save(s, format=\"png\")\n                else:\n                    text = texts[i]\n                    fig, ax = plt.subplots()\n                    ax.set_title(text, fontsize=40)\n                    ax.imshow(img)  \n                    plt.savefig(s, format='png', bbox_inches='tight')\n                height = img.shape[0]\n                width = img.shape[1]\n            else:\n                s = img\n                height, width = Image.open(s).size\n\n            # Create an Image object\n            img_sum = tf.Summary.Image(encoded_image_string=s.getvalue(),\n                                       height=height,\n                                       width=width)\n            # Create a Summary value\n            img_summaries.append(tf.Summary.Value(tag='%s/%d' % (tag, i), image=img_sum))\n\n        # Create and write Summary\n        summary = tf.Summary(value=img_summaries)\n        self.writer.add_summary(summary, step)\n        self.writer.flush() \n        \n    def history(self, tag, values, step, bins=1000):\n        \"\"\"Log a histogram of the tensor of values.\"\"\"\n\n        # Create a histogram using numpy\n        counts, bin_edges = np.histogram(values, bins=bins)\n\n        # Fill the fields of the histogram proto\n        hist = tf.HistogramProto()\n        hist.min = float(np.min(values))\n        hist.max = float(np.max(values))\n        hist.num = int(np.prod(values.shape))\n        hist.sum = float(np.sum(values))\n        hist.sum_squares = float(np.sum(values**2))\n\n        # Drop the start of the first bin\n        bin_edges = bin_edges[1:]\n\n        # Add bin edges and counts\n        for edge in bin_edges:\n            hist.bucket_limit.append(edge)\n        for c in counts:\n            hist.bucket.append(c)\n\n        # Create and write Summary\n        summary = tf.Summary(value=[tf.Summary.Value(tag=tag, histo=hist)])\n        self.writer.add_summary(summary, step)\n        self.writer.flush()  \n"
  },
  {
    "path": "utils/gezi/test/test_get_single_cn.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   test.py\n#        \\author   chenghuige  \n#          \\date   2016-08-25 19:20:59.405334\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\n#from __future__ import print_function\n\nimport sys,os\n\n#import libstringutil\nimport nowarning\nimport libgezi\nlibstringutil = libgezi \n\nprint libstringutil.extract_gbk_dual('nikeЬis')\n\nfor item in libstringutil.to_cnvec('nikeЬis'):\n  print item \n\nl = libstringutil.extract_gbk_dual('nikeЬǺhahԲ')\n\nprint l\nprint type(l)\n\nfor item in l.decode('gbk'):\n  print item.encode('gbk')\n\nl = libstringutil.to_cnvec(libstringutil.extract_chinese('nikeЬǺhahԲ'))\n\nfor item in l:\n  print item\n"
  },
  {
    "path": "utils/gezi/test/test_ngrams.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   test_ngrams.py\n#        \\author   chenghuige  \n#          \\date   2018-03-01 11:43:55.445657\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport gezi\n\nimport six\n\nassert six.PY3\n\ndef ngrams(word, minn=3, maxn=3):\n  print(word)\n  print(gezi.get_ngrams(word))\n  print(gezi.get_ngrams(word, 2, 3))\n  print(gezi.get_ngrams(word, 2, 6), len(gezi.get_ngrams(word, 2, 6)))\n  print(gezi.get_ngrams_hash(word, 1000))\n  \nngrams('motherfuck')\nngrams('我的天啊')\nngrams('FrenchMan')\n"
  },
  {
    "path": "utils/gezi/timer.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   timer.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 16:32:21.015897\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\n@TODO may be\n\nwith gezi.Timer('abc') as timer:\n  ....\n\"\"\"\nimport sys, time\nclass Timer():\n  def __init__(self, info='', print_before=False):\n    self.start_time = time.time()\n    if info and print_before:\n      print('%s start'%info, file=sys.stderr)\n    self.info = info\n\n  def elapsed(self):\n    end_time = time.time()\n    duration = end_time - self.start_time\n    self.start_time = end_time \n    return duration  \n\n  def elapsed_ms(self):\n    return self.elapsed() * 1000\n  \n  #ipython not allow this?.. FIXME\n  def print(self):\n    if self.info:\n      print('{} duration: {}'.format(self.info, self.elapsed()), file=sys.stderr)\n    else:\n      print(self.elapsed(), file=sys.stderr)\n\n  def print_elapsed(self):\n    if self.info:\n      print('{} duration: {}'.format(self.info, self.elapsed()), file=sys.stderr)\n    else:\n      print(self.elapsed(), file=sys.stderr)"
  },
  {
    "path": "utils/gezi/topn.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   topn.py\n#        \\author   chenghuige  \n#          \\date   2017-03-12 16:55:52.257425\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\ncopy from \ntensorflow\\models\\im2txt\\im2txt\\inference_utils\\caption_generator.py\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport heapq\n\nclass TopN(object):\n  \"\"\"Maintains the top n elements of an incrementally provided set.\"\"\"\n\n  def __init__(self, n, reverse=True):\n    self._n = n\n    self._data = []\n    self.reverse = reverse\n\n  def size(self):\n    assert self._data is not None\n    return len(self._data)\n\n  def push(self, x):\n    \"\"\"Pushes a new element.\"\"\"\n    assert self._data is not None\n    if len(self._data) < self._n:\n      heapq.heappush(self._data, x)\n    else:\n      heapq.heappushpop(self._data, x)\n\n  def extract(self, sort=False):\n    \"\"\"Extracts all elements from the TopN. This is a destructive operation.\n\n    The only method that can be called immediately after extract() is reset().\n\n    print(id, logprob)\n    Args:\n      sort: Whether to return the elements in descending sorted order.\n\n    Returns:\n      A list of data; the top n elements provided to the set.\n    \"\"\"\n    assert self._data is not None\n    data = self._data\n    self._data = None\n    if sort:\n      data.sort(reverse=self.reverse)\n    return data\n\n  def reset(self):\n    \"\"\"Returns the TopN to an empty state.\"\"\"\n    self._data = []\n"
  },
  {
    "path": "utils/gezi/util.py",
    "content": "#!/usr/bin/env python\n#encoding=utf8\n# ==============================================================================\n#          \\file   util.py\n#        \\author   chenghuige  \n#          \\date   2016-08-18 18:24:05.771671\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport six\n\nimport collections\nfrom collections import namedtuple\nimport numpy as np\n\nimport glob \nimport math \n\nimport re\nimport time\n\nimport gezi\n\ndef is_cn(word):\n   return '\\u4e00' <= item[0] <= '\\u9fa5' \n\ndef break_sentence(sentence, max_sent_len, additional=5):\n  \"\"\"\n  For example, for a sentence with 70 words, supposing the the `max_sent_len'\n  is 30, break it into 3 sentences.\n\n  :param sentence: list[str] the sentence\n  :param max_sent_len:\n  :return:\n  \"\"\"\n  ret = []\n  cur = 0\n  length = len(sentence)\n  while cur < length:\n    if cur + max_sent_len + additional >= length:\n      ret.append(sentence[cur: length])\n      break\n    ret.append(sentence[cur: min(length, cur + max_sent_len)])\n    cur += max_sent_len\n  return ret\n\ndef add_start_end(w, start='<S>', end='</S>'):\n  return [start] + list(w) + [end]\n\ndef str2scores(l):\n  if ',' in l:\n    # this is list save (list of list)\n    return np.array([float(x.strip()) for x in l[1:-1].split(',')])\n  else:\n    # this numpy save (list of numpy array)\n    return np.array([float(x.strip()) for x in l[1:-1].split(' ') if x.strip()])\n\ndef get_unmodify_minutes(file_):\n  file_mod_time = os.stat(file_).st_mtime\n  last_time = (time.time() - file_mod_time) / 60\n  return last_time\n\n# ## Well not work well, so fall back to use py2 bseg \n# def to_simplify(sentence):\n#   sentence = gezi.langconv.Converter('zh-hans').convert(sentence).replace('馀', '余')\n#   return sentence\n\n# def parse_list_str(input, sep=','):\n#   return np.array([float(x.strip()) for x in input[1:-1].split(sep) if x.strip()])\n\n# https://stackoverflow.com/questions/43146528/how-to-extract-all-the-emojis-from-text\n# def extract_emojis(sentence):\n#   import emoji\n#   allchars = [str for str in sentence]\n#   l = [c for c in allchars if c in emoji.UNICODE_EMOJI]\n#   return l\n\ndef extract_emojis(content):\n  import emoji\n  emojis_list=map(lambda x:''.join(x.split()),emoji.UNICODE_EMOJI.keys())\n  r = re.compile('|'.join(re.escape(p) for p in emojis_list))\n  return r.sub(r'',content)\n\ndef remove_emojis(sentence):\n  import emoji\n  allchars = [str for str in sentence]\n  l = [c for c in allchars if c not in emoji.UNICODE_EMOJI]\n  return ''.join(l)\n\ndef is_emoji(w):\n  import emoji\n  return w in emoji.UNICODE_EMOJI\n\ndef dict2namedtuple(thedict, name):\n  thenametuple = namedtuple(name, [])\n  for key, val in thedict.items():\n    if not isinstance(key, str):\n      msg = 'dict keys must be strings not {}'\n      raise ValueError(msg.format(key.__class__))\n\n    if not isinstance(val, dict):\n      setattr(thenametuple, key, val)\n    else:\n      newname = dict2namedtuple(val, key)\n      setattr(thenametuple, key, newname)\n\n  return thenametuple\n\ndef csv(s):\n  s = s.replace(\"\\\"\", \"\\\"\\\"\") \n  s = \"\\\"\" + s + \"\\\"\"\n  return s\n\ndef get_weights(weights):\n  if isinstance(weights, str):\n    weights = map(float, weights.split(','))\n  total_weights = sum(weights)\n  #alpha = len(weights) / total_weights\n  alpha = 1 / total_weights\n  weights = [x * alpha for x in weights] \n  return weights\n\ndef probs_entropy(probs):\n  e_x = [-p_x*math.log(p_x,2) for p_x in probs]\n  entropy = sum(e_x)\n  return entropy\n\ndef dist(x,y):   \n  return np.sqrt(np.sum((x-y)**2))\n\ndef cosine(a, b):\n  from numpy import dot\n  from numpy.linalg import norm\n  return dot(a, b)/(norm(a)*norm(b))\n\ndef softmax(x, axis=-1):\n    mx = np.amax(x, axis=axis, keepdims=True)\n    x_exp = np.exp(x - mx)\n    x_sum = np.sum(x_exp, axis=axis, keepdims=True)\n    res = x_exp / x_sum\n    return res\n\n# https://stackoverflow.com/questions/3985619/how-to-calculate-a-logistic-sigmoid-function-in-python\ndef sigmoid(x):\n  s = 1/(1+np.exp(-x))\n  return s\n\ndef load_image_into_numpy_array(image):\n  (im_width, im_height) = image.size\n  # what about 4 channels ?  TODO\n  return np.array(image.getdata()).reshape(\n      (im_height, im_width, -1)).astype(np.uint8)[:,:,:3]\n\ndef dirname(input):\n  if os.path.isdir(input):\n    return input\n  else:\n    dirname = os.path.dirname(input)\n    if not dirname:\n      dirname = '.'\n    return dirname\n\ndef non_empty(file):\n  return os.path.exists(file) and os.path.getsize(file) > 0\n\ndef merge_dicts(*dict_args):\n  \"\"\"\n  Given any number of dicts, shallow copy and merge into a new dict,\n  precedence goes to key value pairs in latter dicts.\n  #https://stackoverflow.com/questions/38987/how-to-merge-two-dictionaries-in-a-single-expression\n  \"\"\"\n  result = {}\n  for dictionary in dict_args:\n    result.update(dictionary)\n  return result\n\ndef norm(text):\n  return text.strip().lower().replace('。', '')\n\ndef loggest_match(cns, vocab, encode_unk=False, unk_vocab_size=None, vocab_size=None):\n  len_ = len(cns)\n  for i in range(len_):\n    w = ''.join(cns[:len_ - i])\n    #for compat with c++ vocabulary\n    if vocab.has(w):\n      return vocab.id(w), cns[len_ - i:]\n    elif unk_vocab_size:\n      return gezi.hash(w) % unk_vocab_size + vocab_size, cns[len_ - i:] \n  if encode_unk:\n    return vocab.unk_id(), cns[1:]\n  else:\n    return -1, cns[1:]\n\n#TODO might use trie to speed up longest match segment\ndef loggest_match_seg(word, vocab, encode_unk=False):\n  cns = gezi.get_single_cns(word)\n  word_ids = []\n  while True:\n    id, cns = loggest_match(cns, vocab, encode_unk=encode_unk)\n    if id != -1:\n      word_ids.append(id)\n    if not cns:\n      break \n  return word_ids \n\ndef index(l, val):\n  try:\n    return l.index(val)\n  except Exception:\n    return len(l)\n\ndef to_pascal_name(name):\n  if not name or name[0].isupper():\n    return name \n  return gnu2pascal(name)\n\ndef to_gnu_name(name): \n  if not name or name[0].islower():\n    return name\n  return pascal2gnu(name)\n\ndef pascal2gnu(name):\n  \"\"\"\n  convert from AbcDef to abc_def\n  name must be in pascal format\n  \"\"\"\n  l = [name[0].lower()]\n  for i in range(1, len(name)):\n    if name[i].isupper():\n      l.append('_')\n      l.append(name[i].lower())\n    else:\n      l.append(name[i])\n  return ''.join(l)\n\ndef gnu2pascal(name):\n  \"\"\"\n  convert from abc_def to AbcDef\n  name must be in gnu format\n  \"\"\"\n  l = []\n  l = [name[0].upper()]\n  need_upper = False\n  for i in range(1, len(name)):\n    if name[i] == '_':\n      need_upper = True\n      continue\n    else:  \n      if need_upper:\n        l.append(name[i].upper())\n      else:\n        l.append(name[i])\n      need_upper = False\n  return ''.join(l)\n\n  return ''.join(l)\n\ndef is_gbk_luanma(text):\n  return len(text) > len(text.decode('gb2312', 'ignore').encode('utf8'))\n\ndef gen_sum_list(l):\n  l2 = [x for x in l]\n  for i in range(1, len(l)):\n    l2[i] += l2[i - 1]\n  return l2\n\ndef add_one(d, word):\n  if not word in d:\n    d[word] = 1\n  else:\n    d[word] += 1\n\ndef pretty_floats(values):\n  if not isinstance(values, (list, tuple)):\n    values = [values]\n  #return [float('{:.5f}'.format(x)) for x in values]\n  return [float('{:e}'.format(x)) for x in values]\n  #return ['{}'.format(x) for x in values]\n\ndef get_singles(l):\n  \"\"\"\n  get signle elment as list, filter list\n  \"\"\"\n  return [x for x in l if not isinstance(x, collections.Iterable)]\n\ndef is_single(item):\n  return not isinstance(item, collections.Iterable)\n\ndef iterable(item):\n  \"\"\"\n  be careful!  like string 'abc' is iterable! \n  you may need to use if not isinstance(values, (list, tuple)):\n  \"\"\"\n  return isinstance(item, collections.Iterable)\n\ndef is_list_or_tuple(item):\n  return isinstance(item, (list, tuple))\n\ndef get_value_name_list(values, names):\n  return ['{}:{:.4f}'.format(x[0], x[1]) for x in zip(names, values)]\n\n\ndef batches(l, batch_size):\n  \"\"\"\n  :param l:           list\n  :param group_size:  size of each group\n  :return:            Yields successive group-sized lists from l.\n  \"\"\"\n  for i in range(0, len(l), batch_size):\n    yield l[i: i + batch_size]\n\n#@TODO better pad \ndef pad(l, maxlen, mark=0):\n  if isinstance(l, list):\n    l.extend([mark] * (maxlen - len(l)))\n    return l[:maxlen]\n  elif isinstance(l, np.ndarray):\n    return l\n  else:\n    raise ValueError('not support')\n\ndef nppad(l, maxlen):\n  if maxlen > len(l):\n    return np.lib.pad(l, (0, maxlen - len(l)), 'constant')\n  else:\n    return l[:maxlen]\n\ndef try_mkdir(dir):\n  if not os.path.exists(dir):\n    print('make new dir: [%s]'%dir, file=sys.stderr)\n    os.makedirs(dir)\n\ndef get_dir(path):\n  if os.path.isdir(path):\n    return path \n  return os.path.dirname(path)\n\n#@TODO perf?\ndef dedupe_list(l):\n  #l_set = list(set(l))\n  #l_set.sort(key = l.index)\n  l_set = []\n  set_  = set()\n  for item in l:\n    if item not in set_:\n      set_.add(item)\n      l_set.append(item)\n  return l_set\n\n#@TODO\ndef parallel_run(target, args_list, num_threads):\n  record = []\n  for thread_index in xrange(num_threads):\n    process = multiprocessing.Process(target=target,args=args_list[thread_index])\n    process.start()\n    record.append(process)\n  \n  for process in record:\n    process.join()\n\nimport threading\ndef multithreads_run(target, args_list):\n  num_threads = len(args_list)\n  threads = []\n  for args in args_list:\n    t = threading.Thread(target=target, args=args) \n    threads.append(t) \n  for t in threads:\n    t.join()\n\n#@TODO move to bigdata_util.py\n\n\n#----------------file related\ndef is_glob_pattern(input):\n  return '*' in input\n\ndef file_is_empty(path):\n  return os.stat(path).st_size==0\n\ndef list_files(inputs):\n  if not inputs:\n    return []\n  files = []\n  inputs = inputs.split(',')\n  for input in inputs:\n    if not input or not input.strip():\n      continue\n    parts = []\n    if os.path.isdir(input):\n      parts = [os.path.join(input, f) for f in os.listdir(input)]\n    elif os.path.isfile(input):\n      parts = [input]\n    else:\n      parts = glob.glob(input)\n    files += parts \n\n  files = [x for x in files if not (file_is_empty(x) or x.endswith('num_records.txt'))]\n  return files\n\ndef sorted_ls(path, time_descending=True):\n  mtime = lambda f: os.stat(os.path.join(path, f)).st_mtime\n  return list(sorted(os.listdir(path), key=mtime, reverse=time_descending))\n\ndef list_models(model_dir, time_descending=True):\n  \"\"\"\n  list all models in model_dir\n  \"\"\"\n  files = [file for file in glob.glob('%s/model.ckpt-*'%(model_dir)) if not file.endswith('.meta')]\n  files.sort(key=lambda x: os.path.getmtime(x), reverse=time_descending)\n  return files \n  \n#----------conf\ndef save_conf(con):\n  file = '%s.py'%con.__name__\n  out = open(file, 'w')\n  for key,value in con.__dict__.items():\n    if not key.startswith('__'):\n      if not isinstance(value, str):\n        result = '{} = {}\\n'.format(key, value)\n      else:\n        result = '{} = \\'{}\\'\\n'.format(key, value)\n      out.write(result)\n\ndef write_to_txt(data, file):\n  out = open(file, 'w')\n  out.write('{}'.format(data))\n\ndef read_int_from(file, default_value=None):\n  return int(open(file).readline().strip().split()[0]) if os.path.isfile(file) else default_value\n\ndef read_float_from(file, default_value=None):\n  return float(open(file).readline().strip().split()[0]) if os.path.isfile(file) else default_value\n\ndef read_str_from(file, default_value=None):\n  return open(file).readline().strip() if os.path.isfile(file) else default_value\n\ndef img_html(img):\n  return '<p><a href={0} target=_blank><img src={0} height=200></a></p>\\n'.format(img)\n\ndef text_html(text):\n  return '<p>{}</p>'.format(text)\n\ndef thtml(text):\n  return text_html(text)\n\n#@TODO support *content \ndef hprint(content):\n  print('<p>', content,'</p>')\n\ndef imgprint(img):\n  print(img_html(img))\n\n\ndef unison_shuffle(a, b):\n  \"\"\"\n  http://stackoverflow.com/questions/4601373/better-way-to-shuffle-two-numpy-arrays-in-unison\n  \"\"\"\n  assert len(a) == len(b)\n  try:\n    from sklearn.utils import shuffle\n    a, b = shuffle(a, b, random_state=0)\n    return a, b\n  except Exception:\n    print('sklearn not installed! use numpy but is not inplace shuffle', file=sys.stderr)\n    import numpy\n    index = numpy.random.permutation(len(a))\n    return a[index], b[index]\n\ndef finalize_feature(fe, mode='w', outfile='./feature_name.txt', sep='\\n'):\n  #print(fe.Str('\\n'), file=sys.stderr)\n  #print('\\n'.join(['{}:{}'.format(i, fname) for i, fname in enumerate(fe.names())]), file=sys.stderr)\n  #print(fe.Length(), file=sys.stderr)\n  if mode == 'w':\n    fe.write_names(file=outfile, sep=sep)\n  elif mode == 'a':\n    fe.append_names(file=outfile, sep=sep)\n\ndef write_feature_names(names, mode='a', outfile='./feature_name.txt', sep='\\n'):\n  out = open(outfile, mode)\n  out.write(sep.join(names))\n  out.write('\\n')\n\ndef get_feature_names(file_):\n  feature_names = []\n  for line in open(file_):\n    name = line.rstrip().split('#')[0].strip()\n    if not name:\n      continue\n    feature_names.append(name)\n  return feature_names\n\ndef read_feature_names(file_):\n  feature_names = []\n  for line in open(file_):\n    name = line.rstrip().split('#')[0].strip()\n    if not name:\n      continue\n    feature_names.append(name)\n  return feature_names\n\ndef get_feature_names_dict(file_):\n  feature_names_dict = {}\n  index = 0\n  for line in open(file_):\n    name = line.rstrip().split('#')[0].strip()\n    if not name:\n      continue\n    feature_names_dict[name] = index\n    index += 1\n  return feature_names_dict\n\ndef read_feature_names_dict(file_):\n  feature_names_dict = {}\n  index = 0\n  for line in open(file_):\n    name = line.rstrip().split('#')[0].strip()\n    if not name:\n      continue\n    feature_names_dict[name] = index\n    index += 1\n  return feature_names_dict\n\ndef update_sparse_feature(feature, num_pre_features):\n  features = feature.split(',')\n  index_values = [x.split(':') for x in features]\n  return ','.join(['{}:{}'.format(int(index) + num_pre_features, value) for index,value in index_values])\n\ndef merge_sparse_feature(fe1, fe2, num_fe1):\n  if not fe1:\n    return update_sparse_feature(fe2, num_fe1)\n  if not fe2:\n    return fe1 \n  return ','.join([fe1, update_sparse_feature(fe2, num_fe1)])\n\n\n#TODO move to other place\n#http://blog.csdn.net/luo123n/article/details/9999481\ndef edit_distance(first,second):  \n  if len(first) > len(second):  \n    first,second = second,first  \n  if len(first) == 0:  \n    return len(second)  \n  if len(second) == 0:  \n    return len(first)  \n  first_length = len(first) + 1  \n  second_length = len(second) + 1  \n  distance_matrix = [range(second_length) for x in range(first_length)]   \n  for i in range(1,first_length):  \n    for j in range(1,second_length):  \n      deletion = distance_matrix[i-1][j] + 1  \n      insertion = distance_matrix[i][j-1] + 1  \n      substitution = distance_matrix[i-1][j-1]  \n      if first[i-1] != second[j-1]:  \n        substitution += 1  \n      distance_matrix[i][j] = min(insertion,deletion,substitution)  \n  return distance_matrix[first_length-1][second_length-1]  \n\n\nimport json\nimport gezi\ndef save_json(obj, filename):\n  timer = gezi.Timer(\"Saving to {}...\".format(filename))\n  with open(filename, \"w\") as fh:\n    json.dump(obj, fh)\n  timer.print_elapsed()\n\ndef load_json(filename):\n  timer = gezi.Timer(\"Loading {}...\".format(filename))\n  with open(filename) as fh:\n    obj = json.load(fh)\n  timer.print_elapsed()\n  return obj\n\ndef read_json(filename):\n  return load_json(filename)\n\ndef strip_suffix(s, suf):\n  if s.endswith(suf):\n    return s[:len(s)-len(suf)]\n  return s\n\ndef log(text, array):\n  \"\"\"Prints a text message. And, optionally, if a Numpy array is provided it\n  prints it's shape, min, and max values.\n  \"\"\"\n  text = text.ljust(12)\n  text += (\"shape: {:20}  min: {:10.5f}  max: {:10.5f} mean: {:10.5f} unique: {:5d} {}\".format(\n    str(array.shape),\n    np.min(array) if array.size else \"\",\n    np.max(array) if array.size else \"\",\n    np.mean(array) if array.size else \"\",\n    len(np.unique(array)) if array.size else \"\",\n    array.dtype))\n  print(text, file=sys.stderr)\n\ndef log_full(text, array):\n  \"\"\"Prints a text message. And, optionally, if a Numpy array is provided it\n  prints it's shape, min, and max values.\n  \"\"\"\n  log(text, array)\n  print(np.unique(array), file=sys.stderr)\n\ndef env_has(name):\n  return name in os.environ and os.environ[name] != '0'\n\ndef env_get(name):\n  if name in os.environ:\n    return os.environ[name]\n  else:\n    return None\n  \ndef env_set(name, val=1):\n  os.environ[name] = str(val)\n  \ndef has_env(name):\n  return name in os.environ and os.environ[name] != '0'\n\ndef get_env(name):\n  if name in os.environ:\n    return os.environ[name]\n  else:\n    return None\n  \ndef set_env(name, val=1):\n  os.environ[name] = str(val)\n\ndef env_val(name, default=None):\n  return None if name not in os.environ else os.environ[name] \n\ndef use_matplotlib(backend='Agg'):\n  import matplotlib \n  matplotlib.use(backend) \n\ndef decode(bytes_list):\n  if not six.PY2:\n    try:\n      return np.array([x.decode() for x in bytes_list])\n    except Exception:\n      return bytes_list\n  else:\n    return bytes_list\n\ndef get_fold(total, num_folds, index):\n  # index is None means all\n  if index is None:\n    return 0, total\n  elif index < 0:\n    return 0, 0\n  assert num_folds\n  fold_size = total // num_folds\n  start = fold_size * index\n  end = start + fold_size if index != num_folds - 1 else total\n  return start, end\n\ndef is_fold(input, fold):\n  input = strip_suffix(input, '.record')\n  if fold is None:\n    return False \n  try:\n    # part-0003\n    return int(re.split('-|_', input)[1]) == fold\n  except Exception:\n    # 3.record\n    return int(re.split('.')[0]) == fold \n\ndef to_list(item):\n  if not isinstance(item, (list, tuple)):\n    return [item]\n  return item\n\ndef repeat(iter):\n  while True:\n    for x in iter:\n      yield x"
  },
  {
    "path": "utils/gezi/vocabulary.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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# ==============================================================================\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\nimport os\n#import tensorflow as tf\nfrom absl import flags\nfrom absl import logging\n\n\"\"\"copy from google im2txt tensorflow/models/im2txt/inference_util, \nmake it possible to replace c++ Version Vocabulary,\nadd num_reserved_ids\"\"\"\n\nimport gezi\n\nclass Vocabulary(object):\n  \"\"\"Vocabulary class for an image-to-text model.\"\"\"\n\n  def __init__(self,\n               vocab_file=None,\n               num_reserved_ids=1,\n               start_word=\"<S>\",\n               end_word=\"</S>\",\n               unk_word=\"<UNK>\",\n               pad_word=\"<PAD>\",\n               min_count=None,\n               max_words=None,\n               buckets=None,\n               fixed=False,\n               simple=False,\n               append=False):\n    \"\"\"Initializes the vocabulary.\n\n    Args:\n      vocab_file: File containing the vocabulary, where the words are the first\n        whitespace-separated token on each line (other tokens are ignored) and\n        the word ids are the corresponding line numbers.\n      num_reserved_ids: might be 1 for vocab embedding make 0 as <PAD>\n      start_word: Special word denoting sentence start.\n      end_word: Special word denoting sentence end.\n      unk_word: Special word denoting unknown words.\n\n      TODO add count support vocab.count(i) vocab.count(word)\n    \"\"\"\n    # HACK!\n    if 'ngram' in vocab_file:\n      if start_word == '<S>':\n        start_word = '<<S>>'\n        end_word = '<</S>>'\n        unk_word = '<<UNK>>'\n        pad_word = '<<PAD>>'\n        \n    if not buckets:\n      if not os.path.exists(vocab_file):\n        logging.fatal(\"Vocab file %s not found.\", vocab_file)\n      logging.info(\"Initializing vocabulary from file: %s\", vocab_file)\n\n      with open(vocab_file, mode=\"r\") as f:\n        lines = list(f.readlines())\n        lines = [line.rstrip('\\n').split('\\t') for line in lines]\n \n      if min_count:\n        reverse_vocab = [x for x,y in lines if int(y) >= min_count]\n      else:\n        reverse_vocab = [x[0] if isinstance(x, (tuple, list)) else x for x in lines]\n\n      self.counts = []\n      if len(lines[0]) == 2:\n        self.counts = [int(y) for x,y in lines]\n\n      if max_words:\n        reverse_vocab = reverse_vocab[:max_words]\n\n      if fixed:\n        num_reserved_ids = 0\n\n      reserved_vocab = []\n      if num_reserved_ids > 0:\n        reserved_vocab = [pad_word] * num_reserved_ids\n\n      self.ori_size = len(reverse_vocab) \n      #print('----re', reverse_vocab)\n\n      reserved_vocab2 = []\n      if not fixed and not simple:\n        if unk_word not in reverse_vocab and unk_word.lower() not in reverse_vocab:\n          reserved_vocab2.append(unk_word)\n        if start_word not in reverse_vocab and start_word.lower() not in reverse_vocab:\n          reserved_vocab2.append(start_word)\n        if end_word not in reverse_vocab and end_word.lower() not in reverse_vocab:\n          reserved_vocab2.append(end_word)\n\n      if append:\n        # old version append mode\n        reverse_vocab = reserved_vocab + reverse_vocab + reserved_vocab2\n        self.num_insert_words = len(reserved_vocab)\n        self.num_append_words = len(reserved_vocab2)\n      else:\n        # new version not append but insert before\n        reverse_vocab = reserved_vocab + reserved_vocab2 + reverse_vocab\n        self.num_insert_words = len(reserved_vocab) + len(reserved_vocab2)\n        self.num_append_words = 0\n\n      vocab = dict([(x, y) for (y, x) in enumerate(reverse_vocab)])\n\n      if self.counts:\n        max_counts = self.counts[0]\n        max_counts += 1\n        self.counts = [max_counts] * self.num_insert_words + self.counts + [1] * self.num_append_words\n\n      logging.info(\"Created vocabulary with %d words\" % len(vocab))\n\n      self.vocab = vocab  # vocab[word] = id\n      self.reverse_vocab = reverse_vocab  # reverse_vocab[id] = word\n    else:\n      logging.info('Vocabulary just using hash with buckets', buckets)\n\n      reserved_vocab = []\n      if num_reserved_ids > 0:\n        reserved_vocab = [pad_word] * num_reserved_ids    \n      reserved_vocab2 = [unk_word, start_word, end_word]\n\n      reverse_vocab = reserved_vocab + reserved_vocab2 \n\n      vocab = dict([(x, y) for (y, x) in enumerate(reverse_vocab)])\n\n      self.vocab = vocab  # vocab[word] = id\n      self.reverse_vocab = reverse_vocab  # reverse_vocab[id] = word\n\n    # Save special word ids.\n    if not fixed and not simple:\n      self._start_id = vocab[start_word]\n      self._end_id = vocab[end_word] \n    self._unk_id = vocab[unk_word] \n\n    self._buckets = buckets\n    self.num_reserved_ids = num_reserved_ids\n\n    self.start_word = start_word\n    self.end_word = end_word\n    self.unk_word = unk_word\n\n  def is_special(self, word):\n    return word == self.unk_word or word == self.start_word or word == self.end_word\n    \n  def word_to_id(self, word):\n    \"\"\"Returns the integer word id of a word string.\"\"\"\n    if word in self.vocab:\n      return self.vocab[word]\n    else:\n      if not self._buckets:\n        return self._unk_id\n      else:\n        return self.size() + gezi.hash(word) % self._buckets\n\n  def id(self, word):\n    \"\"\"Returns the integer word id of a word string.\"\"\"\n    if word in self.vocab:\n      return self.vocab[word]\n    else:\n      if not self._buckets:\n        return self._unk_id\n      else:\n        return self.size() + gezi.hash(word) % self._buckets\n\n  def id_to_word(self, word_id):\n    \"\"\"Returns the word string of an integer word id.\"\"\"\n    if word_id >= len(self.reverse_vocab):\n      return self.reverse_vocab[self._unk_id]\n    else:\n      return self.reverse_vocab[word_id]\n\n  def key(self, word_id):\n    \"\"\"Returns the word string of an integer word id.\"\"\"\n    if word_id >= len(self.reverse_vocab):\n      return self.reverse_vocab[self._unk_id]\n    else:\n      return self.reverse_vocab[word_id]\n\n  def count(self, word_id):\n    if not self.counts:\n      return 1 \n    else:\n      return self.counts[word_id]\n\n  def count_word(self, word):\n    id_ = self.id(word)\n    # if id_ == self._unk_id:\n    #   return 0\n    return self.count(id_)\n\n  def size(self):\n    return len(self.reverse_vocab)\n\n  def start_id(self):\n    return self._start_id \n\n  def end_id(self):\n    return self._end_id\n\n  def unk_id(self):\n    return self._unk_id\n\n  #TODO how to use 'if word in vocab' ?\n  def has(self, word):\n    return word in self.vocab\n\n  def add(self, word):\n    if not word in self.vocab:\n      id = len(self.reverse_vocab)\n      vocab[word] = id\n      reverse_vocab.append(word)\n\n  def words(self):\n    return self.reverse_vocab[self.num_reserved_ids:]\n\n"
  },
  {
    "path": "utils/gezi/word_counter.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   word_counter.py\n#        \\author   chenghuige  \n#          \\date   2018-01-17 11:06:31.146818\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nfrom collections import Counter\n\nclass WordCounter(object): \n  def __init__(self,\n               most_common=None, \n               min_count=None,\n               write_unknown=True,\n               unknown_mark='<UNK>'):\n    self.most_common = most_common\n    self.min_count = min_count or 0\n    self.write_unknown = write_unknown\n    self.unknown_mark = unknown_mark\n\n    self.counter = Counter()\n    self.total = 0\n\n  def add(self, word, count=1):\n    self.counter[word] += count \n    self.total += count \n  \n  def save(self, filename, most_common=None, min_count=None):\n    if not most_common:\n      most_common = self.most_common\n      if not most_common:\n        most_common = len(self.counter)\n    if not min_count:\n      min_count = self.min_count\n\n    with open(filename, 'w') as out:\n      l = []\n      total = 0\n      for word, count in self.counter.most_common(most_common):\n        if count < min_count:\n          break\n        l.append((word, count))\n        total += count \n\n      if self.write_unknown:\n        unknown_count = self.total - total \n      else:\n        unknown_count = 0\n\n      print('total_count', self.total, 'unknown_count', unknown_count, 'total_word', len(l), file=sys.stderr)\n\n      for word, count in l:\n        if unknown_count > count:\n          print(self.unknown_mark, unknown_count, sep='\\t',file=out)\n          unknown_count = 0\n        print(word, count, sep='\\t', file=out)\n\n\n      \n"
  },
  {
    "path": "utils/gezi/zhtools/__init__.py",
    "content": "from gezi.zhtools import langconv\n"
  },
  {
    "path": "utils/gezi/zhtools/chconv.py",
    "content": "# -*- coding: utf-8 -*-\n# forked from MadEdit\n# Name:        MadEdit/TradSimp.cpp\n# Description: Traditional Chinese <==> Simplified Chinese\n# Author:      madedit@gmail.com\n# Licence:     GPL\n# Forked by skydarkchen <skydark2 at gmail>\n\nimport sys\n\nUEMPTY = ''\npy2 = sys.version_info < (3, 0, 0)\n\nif py2:\n    UEMPTY = UEMPTY.decode('utf8')\n    chr = unichr\n\nSimp2Trad_Table = {\n    0x2018: 0x300E,\n    0x2019: 0x300F,\n    0x201C: 0x300C,\n    0x201D: 0x300D,\n    0x2033: 0x301E,\n    0x3013: 0x2550,\n    0x4E07: 0x842C,\n    0x4E0E: 0x8207,\n    0x4E11: 0x919C,\n    0x4E13: 0x5C08,\n    0x4E1A: 0x696D,\n    0x4E1B: 0x53E2,\n    0x4E1C: 0x6771,\n    0x4E1D: 0x7D72,\n    0x4E22: 0x4E1F,\n    0x4E24: 0x5169,\n    0x4E25: 0x56B4,\n    0x4E27: 0x55AA,\n    0x4E2A: 0x500B,\n    0x4E2C: 0x723F,\n    0x4E30: 0x8C50,\n    0x4E34: 0x81E8,\n    0x4E3A: 0x70BA,\n    0x4E3D: 0x9E97,\n    0x4E3E: 0x8209,\n    0x4E48: 0x9EBC,\n    0x4E49: 0x7FA9,\n    0x4E4C: 0x70CF,\n    0x4E50: 0x6A02,\n    0x4E54: 0x55AC,\n    0x4E60: 0x7FD2,\n    0x4E61: 0x9109,\n    0x4E66: 0x66F8,\n    0x4E70: 0x8CB7,\n    0x4E71: 0x4E82,\n    0x4E89: 0x722D,\n    0x4E8E: 0x65BC,\n    0x4E8F: 0x8667,\n    0x4E91: 0x96F2,\n    0x4E98: 0x4E99,\n    0x4E9A: 0x4E9E,\n    0x4EA7: 0x7522,\n    0x4EA9: 0x755D,\n    0x4EB2: 0x89AA,\n    0x4EB5: 0x893B,\n    0x4EB8: 0x56B2,\n    0x4EBF: 0x5104,\n    0x4EC5: 0x50C5,\n    0x4ECE: 0x5F9E,\n    0x4ED1: 0x4F96,\n    0x4ED3: 0x5009,\n    0x4EEA: 0x5100,\n    0x4EEC: 0x5011,\n    0x4EF7: 0x50F9,\n    0x4F17: 0x773E,\n    0x4F18: 0x512A,\n    0x4F19: 0x5925,\n    0x4F1A: 0x6703,\n    0x4F1B: 0x50B4,\n    0x4F1E: 0x5098,\n    0x4F1F: 0x5049,\n    0x4F20: 0x50B3,\n    0x4F24: 0x50B7,\n    0x4F25: 0x5000,\n    0x4F26: 0x502B,\n    0x4F27: 0x5096,\n    0x4F2A: 0x507D,\n    0x4F2B: 0x4F47,\n    0x4F53: 0x9AD4,\n    0x4F59: 0x9918,\n    0x4F63: 0x50AD,\n    0x4F65: 0x50C9,\n    0x4FA0: 0x4FE0,\n    0x4FA3: 0x4FB6,\n    0x4FA5: 0x50E5,\n    0x4FA6: 0x5075,\n    0x4FA7: 0x5074,\n    0x4FA8: 0x50D1,\n    0x4FA9: 0x5108,\n    0x4FAA: 0x5115,\n    0x4FAC: 0x5102,\n    0x4FE3: 0x4FC1,\n    0x4FE6: 0x5114,\n    0x4FE8: 0x513C,\n    0x4FE9: 0x5006,\n    0x4FEA: 0x5137,\n    0x4FED: 0x5109,\n    0x503A: 0x50B5,\n    0x503E: 0x50BE,\n    0x506C: 0x50AF,\n    0x507B: 0x50C2,\n    0x507E: 0x50E8,\n    0x507F: 0x511F,\n    0x50A5: 0x513B,\n    0x50A7: 0x5110,\n    0x50A8: 0x5132,\n    0x50A9: 0x513A,\n    0x513F: 0x5152,\n    0x5151: 0x514C,\n    0x5156: 0x5157,\n    0x515A: 0x9EE8,\n    0x5170: 0x862D,\n    0x5173: 0x95DC,\n    0x5174: 0x8208,\n    0x5179: 0x8332,\n    0x517B: 0x990A,\n    0x517D: 0x7378,\n    0x5181: 0x56C5,\n    0x5185: 0x5167,\n    0x5188: 0x5CA1,\n    0x518C: 0x518A,\n    0x5199: 0x5BEB,\n    0x519B: 0x8ECD,\n    0x519C: 0x8FB2,\n    0x51A2: 0x585A,\n    0x51AF: 0x99AE,\n    0x51B2: 0x6C96,\n    0x51B3: 0x6C7A,\n    0x51B5: 0x6CC1,\n    0x51BB: 0x51CD,\n    0x51C0: 0x6DE8,\n    0x51C4: 0x6DD2,\n    0x51C9: 0x6DBC,\n    0x51CC: 0x6DE9,\n    0x51CF: 0x6E1B,\n    0x51D1: 0x6E4A,\n    0x51DB: 0x51DC,\n    0x51E0: 0x5E7E,\n    0x51E4: 0x9CF3,\n    0x51EB: 0x9CE7,\n    0x51ED: 0x6191,\n    0x51EF: 0x51F1,\n    0x51FB: 0x64CA,\n    0x51FC: 0x6C39,\n    0x51FF: 0x947F,\n    0x520D: 0x82BB,\n    0x5212: 0x5283,\n    0x5218: 0x5289,\n    0x5219: 0x5247,\n    0x521A: 0x525B,\n    0x521B: 0x5275,\n    0x5220: 0x522A,\n    0x522B: 0x5225,\n    0x522C: 0x5257,\n    0x522D: 0x5244,\n    0x523D: 0x528A,\n    0x523F: 0x528C,\n    0x5240: 0x5274,\n    0x5242: 0x5291,\n    0x5250: 0x526E,\n    0x5251: 0x528D,\n    0x5265: 0x525D,\n    0x5267: 0x5287,\n    0x529D: 0x52F8,\n    0x529E: 0x8FA6,\n    0x52A1: 0x52D9,\n    0x52A2: 0x52F1,\n    0x52A8: 0x52D5,\n    0x52B1: 0x52F5,\n    0x52B2: 0x52C1,\n    0x52B3: 0x52DE,\n    0x52BF: 0x52E2,\n    0x52CB: 0x52F3,\n    0x52D0: 0x731B,\n    0x52DA: 0x52E9,\n    0x5300: 0x52FB,\n    0x5326: 0x532D,\n    0x532E: 0x5331,\n    0x533A: 0x5340,\n    0x533B: 0x91AB,\n    0x534E: 0x83EF,\n    0x534F: 0x5354,\n    0x5355: 0x55AE,\n    0x5356: 0x8CE3,\n    # //0x53:C, 0x8514,\n    0x5362: 0x76E7,\n    0x5364: 0x9E75,\n    0x5367: 0x81E5,\n    0x536B: 0x885B,\n    0x5374: 0x537B,\n    0x537A: 0x5DF9,\n    0x5382: 0x5EE0,\n    0x5385: 0x5EF3,\n    0x5386: 0x66C6,\n    0x5389: 0x53B2,\n    0x538B: 0x58D3,\n    0x538C: 0x53AD,\n    0x538D: 0x5399,\n    0x5395: 0x5EC1,\n    0x53A2: 0x5EC2,\n    0x53A3: 0x53B4,\n    0x53A6: 0x5EC8,\n    0x53A8: 0x5EDA,\n    0x53A9: 0x5EC4,\n    0x53AE: 0x5EDD,\n    0x53BF: 0x7E23,\n    0x53C1: 0x4E09,\n    0x53C2: 0x53C3,\n    0x53C6: 0x9749,\n    0x53C7: 0x9746,\n    0x53CC: 0x96D9,\n    0x53D1: 0x767C,\n    0x53D8: 0x8B8A,\n    0x53D9: 0x6558,\n    0x53E0: 0x758A,\n    0x53F6: 0x8449,\n    0x53F7: 0x865F,\n    0x53F9: 0x6B4E,\n    0x53FD: 0x5630,\n    0x5401: 0x7C72,\n    0x540E: 0x5F8C,\n    0x5413: 0x5687,\n    0x5415: 0x5442,\n    0x5417: 0x55CE,\n    0x5423: 0x551A,\n    0x5428: 0x5678,\n    0x542C: 0x807D,\n    0x542F: 0x555F,\n    0x5434: 0x5433,\n    0x5452: 0x5638,\n    0x5453: 0x56C8,\n    0x5455: 0x5614,\n    0x5456: 0x56A6,\n    0x5457: 0x5504,\n    0x5458: 0x54E1,\n    0x5459: 0x54BC,\n    0x545B: 0x55C6,\n    0x545C: 0x55DA,\n    0x548F: 0x8A60,\n    0x5494: 0x54E2,\n    0x5499: 0x56A8,\n    0x549B: 0x5680,\n    0x549D: 0x565D,\n    0x54A4: 0x5412,\n    0x54B4: 0x5645,\n    0x54B8: 0x9E79,\n    0x54CC: 0x5471,\n    0x54CD: 0x97FF,\n    0x54D1: 0x555E,\n    0x54D2: 0x5660,\n    0x54D3: 0x5635,\n    0x54D4: 0x55F6,\n    0x54D5: 0x5666,\n    0x54D7: 0x5629,\n    0x54D9: 0x5672,\n    0x54DC: 0x568C,\n    0x54DD: 0x5665,\n    0x54DF: 0x55B2,\n    0x551B: 0x561C,\n    0x551D: 0x55CA,\n    0x5520: 0x562E,\n    0x5521: 0x5562,\n    0x5522: 0x55E9,\n    0x5523: 0x5515,\n    0x5524: 0x559A,\n    0x553F: 0x547C,\n    0x5567: 0x5616,\n    0x556C: 0x55C7,\n    0x556D: 0x56C0,\n    0x556E: 0x9F67,\n    0x5570: 0x56C9,\n    0x5574: 0x563D,\n    0x5578: 0x562F,\n    0x55B7: 0x5674,\n    0x55BD: 0x560D,\n    0x55BE: 0x56B3,\n    0x55EB: 0x56C1,\n    0x55EC: 0x5475,\n    0x55F3: 0x566F,\n    0x5618: 0x5653,\n    0x5624: 0x56B6,\n    0x5631: 0x56D1,\n    0x565C: 0x5695,\n    0x567C: 0x5288,\n    0x56A3: 0x56C2,\n    0x56AF: 0x8B14,\n    0x56E2: 0x5718,\n    0x56ED: 0x5712,\n    0x56F1: 0x56EA,\n    0x56F4: 0x570D,\n    0x56F5: 0x5707,\n    0x56FD: 0x570B,\n    0x56FE: 0x5716,\n    0x5706: 0x5713,\n    0x5723: 0x8056,\n    0x5739: 0x58D9,\n    0x573A: 0x5834,\n    0x5742: 0x962A,\n    0x574F: 0x58DE,\n    0x5757: 0x584A,\n    0x575A: 0x5805,\n    0x575B: 0x58C7,\n    0x575C: 0x58E2,\n    0x575D: 0x58E9,\n    0x575E: 0x5862,\n    0x575F: 0x58B3,\n    0x5760: 0x589C,\n    0x5784: 0x58DF,\n    0x5785: 0x58DF,\n    0x5786: 0x58DA,\n    0x5792: 0x58D8,\n    0x57A6: 0x58BE,\n    0x57A7: 0x5770,\n    0x57A9: 0x580A,\n    0x57AB: 0x588A,\n    0x57AD: 0x57E1,\n    0x57AF: 0x58B6,\n    0x57B1: 0x58CB,\n    0x57B2: 0x584F,\n    0x57B4: 0x5816,\n    0x57D8: 0x5852,\n    0x57D9: 0x5864,\n    0x57DA: 0x581D,\n    0x57DD: 0x588A,\n    0x57EF: 0x57B5,\n    0x5811: 0x5879,\n    0x5815: 0x58AE,\n    0x5846: 0x58EA,\n    0x586C: 0x539F,\n    0x5899: 0x7246,\n    0x58EE: 0x58EF,\n    0x58F0: 0x8072,\n    0x58F3: 0x6BBC,\n    0x58F6: 0x58FA,\n    0x58F8: 0x58FC,\n    0x5904: 0x8655,\n    0x5907: 0x5099,\n    0x590D: 0x8907,\n    0x591F: 0x5920,\n    0x5934: 0x982D,\n    0x5938: 0x8A87,\n    0x5939: 0x593E,\n    0x593A: 0x596A,\n    0x5941: 0x5969,\n    0x5942: 0x5950,\n    0x594B: 0x596E,\n    0x5956: 0x734E,\n    0x5965: 0x5967,\n    0x5986: 0x599D,\n    0x5987: 0x5A66,\n    0x5988: 0x5ABD,\n    0x59A9: 0x5AF5,\n    0x59AA: 0x5AD7,\n    0x59AB: 0x5AAF,\n    0x59D7: 0x59CD,\n    0x59DC: 0x8591,\n    0x5A04: 0x5A41,\n    0x5A05: 0x5A6D,\n    0x5A06: 0x5B08,\n    0x5A07: 0x5B0C,\n    0x5A08: 0x5B4C,\n    0x5A31: 0x5A1B,\n    0x5A32: 0x5AA7,\n    0x5A34: 0x5AFB,\n    0x5A73: 0x5AFF,\n    0x5A74: 0x5B30,\n    0x5A75: 0x5B0B,\n    0x5A76: 0x5B38,\n    0x5AAA: 0x5ABC,\n    0x5AD2: 0x5B21,\n    0x5AD4: 0x5B2A,\n    0x5AF1: 0x5B19,\n    0x5B37: 0x5B24,\n    0x5B59: 0x5B6B,\n    0x5B66: 0x5B78,\n    0x5B6A: 0x5B7F,\n    0x5B81: 0x5BE7,\n    0x5B9D: 0x5BF6,\n    0x5B9E: 0x5BE6,\n    0x5BA0: 0x5BF5,\n    0x5BA1: 0x5BE9,\n    0x5BAA: 0x61B2,\n    0x5BAB: 0x5BAE,\n    0x5BBD: 0x5BEC,\n    0x5BBE: 0x8CD3,\n    0x5BDD: 0x5BE2,\n    0x5BF9: 0x5C0D,\n    0x5BFB: 0x5C0B,\n    0x5BFC: 0x5C0E,\n    0x5BFF: 0x58FD,\n    0x5C06: 0x5C07,\n    0x5C14: 0x723E,\n    0x5C18: 0x5875,\n    0x5C1D: 0x5617,\n    0x5C27: 0x582F,\n    0x5C34: 0x5C37,\n    0x5C38: 0x5C4D,\n    0x5C3D: 0x76E1,\n    0x5C42: 0x5C64,\n    0x5C43: 0x5C6D,\n    0x5C49: 0x5C5C,\n    0x5C4A: 0x5C46,\n    0x5C5E: 0x5C6C,\n    0x5C61: 0x5C62,\n    0x5C66: 0x5C68,\n    0x5C7F: 0x5DBC,\n    0x5C81: 0x6B72,\n    0x5C82: 0x8C48,\n    0x5C96: 0x5D87,\n    0x5C97: 0x5D17,\n    0x5C98: 0x5CF4,\n    0x5C99: 0x5DB4,\n    0x5C9A: 0x5D50,\n    0x5C9B: 0x5CF6,\n    0x5CAD: 0x5DBA,\n    0x5CB3: 0x5DBD,\n    0x5CBD: 0x5D20,\n    0x5CBF: 0x5DCB,\n    0x5CC3: 0x5DA8,\n    0x5CC4: 0x5DA7,\n    0x5CE1: 0x5CFD,\n    0x5CE3: 0x5DA2,\n    0x5CE4: 0x5DA0,\n    0x5CE5: 0x5D22,\n    0x5CE6: 0x5DD2,\n    0x5D02: 0x5D97,\n    0x5D03: 0x5D0D,\n    0x5D04: 0x5DAE,\n    0x5D2D: 0x5D84,\n    0x5D58: 0x5DB8,\n    0x5D5A: 0x5D94,\n    0x5D5B: 0x5D33,\n    0x5D5D: 0x5D81,\n    0x5D74: 0x810A,\n    0x5DC5: 0x5DD4,\n    0x5DE9: 0x978F,\n    0x5DEF: 0x5DF0,\n    0x5E01: 0x5E63,\n    0x5E05: 0x5E25,\n    0x5E08: 0x5E2B,\n    0x5E0F: 0x5E43,\n    0x5E10: 0x5E33,\n    0x5E18: 0x7C3E,\n    0x5E1C: 0x5E5F,\n    0x5E26: 0x5E36,\n    0x5E27: 0x5E40,\n    0x5E2E: 0x5E6B,\n    0x5E31: 0x5E6C,\n    0x5E3B: 0x5E58,\n    0x5E3C: 0x5E57,\n    0x5E42: 0x51AA,\n    0x5E5E: 0x8946,\n    0x5E72: 0x5E79,\n    0x5E76: 0x4E26,\n    0x5E7A: 0x4E48,\n    0x5E7F: 0x5EE3,\n    0x5E84: 0x838A,\n    0x5E86: 0x6176,\n    0x5E90: 0x5EEC,\n    0x5E91: 0x5EE1,\n    0x5E93: 0x5EAB,\n    0x5E94: 0x61C9,\n    0x5E99: 0x5EDF,\n    0x5E9E: 0x9F90,\n    0x5E9F: 0x5EE2,\n    0x5EBC: 0x5ECE,\n    0x5EEA: 0x5EE9,\n    0x5F00: 0x958B,\n    0x5F02: 0x7570,\n    0x5F03: 0x68C4,\n    0x5F20: 0x5F35,\n    0x5F25: 0x5F4C,\n    0x5F2A: 0x5F33,\n    0x5F2F: 0x5F4E,\n    0x5F39: 0x5F48,\n    0x5F3A: 0x5F37,\n    0x5F52: 0x6B78,\n    0x5F53: 0x7576,\n    0x5F55: 0x9304,\n    0x5F5F: 0x5F60,\n    0x5F66: 0x5F65,\n    0x5F7B: 0x5FB9,\n    0x5F84: 0x5F91,\n    0x5F95: 0x5FA0,\n    0x5FA1: 0x79A6,\n    0x5FC6: 0x61B6,\n    0x5FCF: 0x61FA,\n    0x5FE7: 0x6182,\n    0x5FFE: 0x613E,\n    0x6000: 0x61F7,\n    0x6001: 0x614B,\n    0x6002: 0x616B,\n    0x6003: 0x61AE,\n    0x6004: 0x616A,\n    0x6005: 0x60B5,\n    0x6006: 0x6134,\n    0x601C: 0x6190,\n    0x603B: 0x7E3D,\n    0x603C: 0x61DF,\n    0x603F: 0x61CC,\n    0x604B: 0x6200,\n    0x6073: 0x61C7,\n    0x6076: 0x60E1,\n    0x6078: 0x615F,\n    0x6079: 0x61E8,\n    0x607A: 0x6137,\n    0x607B: 0x60FB,\n    0x607C: 0x60F1,\n    0x607D: 0x60F2,\n    0x60A6: 0x6085,\n    0x60AB: 0x6128,\n    0x60AC: 0x61F8,\n    0x60AD: 0x6173,\n    0x60AF: 0x61AB,\n    0x60CA: 0x9A5A,\n    0x60E7: 0x61FC,\n    0x60E8: 0x6158,\n    0x60E9: 0x61F2,\n    0x60EB: 0x618A,\n    0x60EC: 0x611C,\n    0x60ED: 0x615A,\n    0x60EE: 0x619A,\n    0x60EF: 0x6163,\n    0x610D: 0x6E63,\n    0x6120: 0x614D,\n    0x6124: 0x61A4,\n    0x6126: 0x6192,\n    0x613F: 0x9858,\n    0x6151: 0x61FE,\n    0x616D: 0x6196,\n    0x61B7: 0x6035,\n    0x61D1: 0x61E3,\n    0x61D2: 0x61F6,\n    0x61D4: 0x61CD,\n    0x6206: 0x6207,\n    0x620B: 0x6214,\n    0x620F: 0x6232,\n    0x6217: 0x6227,\n    0x6218: 0x6230,\n    0x622C: 0x6229,\n    0x6237: 0x6236,\n    0x624E: 0x7D2E,\n    0x6251: 0x64B2,\n    0x6266: 0x6261,\n    0x6267: 0x57F7,\n    0x6269: 0x64F4,\n    0x626A: 0x636B,\n    0x626B: 0x6383,\n    0x626C: 0x63DA,\n    0x6270: 0x64FE,\n    0x629A: 0x64AB,\n    0x629B: 0x62CB,\n    0x629F: 0x6476,\n    0x62A0: 0x6473,\n    0x62A1: 0x6384,\n    0x62A2: 0x6436,\n    0x62A4: 0x8B77,\n    0x62A5: 0x5831,\n    0x62C5: 0x64D4,\n    0x62DF: 0x64EC,\n    0x62E2: 0x650F,\n    0x62E3: 0x63C0,\n    0x62E5: 0x64C1,\n    0x62E6: 0x6514,\n    0x62E7: 0x64F0,\n    0x62E8: 0x64A5,\n    0x62E9: 0x64C7,\n    0x6302: 0x639B,\n    0x631A: 0x646F,\n    0x631B: 0x6523,\n    0x631C: 0x6397,\n    0x631D: 0x64BE,\n    0x631E: 0x64BB,\n    0x631F: 0x633E,\n    0x6320: 0x6493,\n    0x6321: 0x64CB,\n    0x6322: 0x649F,\n    0x6323: 0x6399,\n    0x6324: 0x64E0,\n    0x6325: 0x63EE,\n    0x6326: 0x648F,\n    0x635E: 0x6488,\n    0x635F: 0x640D,\n    0x6361: 0x64BF,\n    0x6362: 0x63DB,\n    0x6363: 0x6417,\n    0x636E: 0x64DA,\n    0x637B: 0x649A,\n    0x63B3: 0x64C4,\n    0x63B4: 0x6451,\n    0x63B7: 0x64F2,\n    0x63B8: 0x64A3,\n    0x63BA: 0x647B,\n    0x63BC: 0x645C,\n    0x63F8: 0x6463,\n    0x63FD: 0x652C,\n    0x63FF: 0x64B3,\n    0x6400: 0x6519,\n    0x6401: 0x64F1,\n    0x6402: 0x645F,\n    0x6405: 0x652A,\n    0x643A: 0x651C,\n    0x6444: 0x651D,\n    0x6445: 0x6504,\n    0x6446: 0x64FA,\n    0x6447: 0x6416,\n    0x6448: 0x64EF,\n    0x644A: 0x6524,\n    0x6484: 0x6516,\n    0x6491: 0x6490,\n    0x64B5: 0x6506,\n    0x64B7: 0x64F7,\n    0x64B8: 0x64FC,\n    0x64BA: 0x651B,\n    0x64DE: 0x64FB,\n    0x6512: 0x6522,\n    0x654C: 0x6575,\n    0x655B: 0x6582,\n    0x6570: 0x6578,\n    0x658B: 0x9F4B,\n    0x6593: 0x6595,\n    # //0x65:7, 0x9B25,\n    0x65A9: 0x65AC,\n    0x65AD: 0x65B7,\n    0x65E0: 0x7121,\n    0x65E7: 0x820A,\n    0x65F6: 0x6642,\n    0x65F7: 0x66E0,\n    0x65F8: 0x6698,\n    0x6619: 0x66C7,\n    0x663C: 0x665D,\n    0x663D: 0x66E8,\n    0x663E: 0x986F,\n    0x664B: 0x6649,\n    0x6652: 0x66EC,\n    0x6653: 0x66C9,\n    0x6654: 0x66C4,\n    0x6655: 0x6688,\n    0x6656: 0x6689,\n    0x6682: 0x66AB,\n    0x66A7: 0x66D6,\n    0x672D: 0x5284,\n    0x672F: 0x8853,\n    0x6734: 0x6A38,\n    0x673A: 0x6A5F,\n    0x6740: 0x6BBA,\n    0x6742: 0x96DC,\n    0x6743: 0x6B0A,\n    0x6761: 0x689D,\n    0x6765: 0x4F86,\n    0x6768: 0x694A,\n    0x6769: 0x69AA,\n    0x6770: 0x5091,\n    0x6781: 0x6975,\n    0x6784: 0x69CB,\n    0x679E: 0x6A05,\n    0x67A2: 0x6A1E,\n    0x67A3: 0x68D7,\n    0x67A5: 0x6AEA,\n    0x67A7: 0x6898,\n    0x67A8: 0x68D6,\n    0x67AA: 0x69CD,\n    0x67AB: 0x6953,\n    0x67AD: 0x689F,\n    0x67DC: 0x6AC3,\n    0x67E0: 0x6AB8,\n    0x67FD: 0x6A89,\n    0x6800: 0x6894,\n    0x6805: 0x67F5,\n    0x6807: 0x6A19,\n    0x6808: 0x68E7,\n    0x6809: 0x6ADB,\n    0x680A: 0x6AF3,\n    0x680B: 0x68DF,\n    0x680C: 0x6AE8,\n    0x680E: 0x6ADF,\n    0x680F: 0x6B04,\n    0x6811: 0x6A39,\n    0x6816: 0x68F2,\n    0x6837: 0x6A23,\n    0x683E: 0x6B12,\n    0x684A: 0x68EC,\n    0x6860: 0x690F,\n    0x6861: 0x6A48,\n    0x6862: 0x6968,\n    0x6863: 0x6A94,\n    0x6864: 0x69BF,\n    0x6865: 0x6A4B,\n    0x6866: 0x6A3A,\n    0x6867: 0x6A9C,\n    0x6868: 0x69F3,\n    0x6869: 0x6A01,\n    0x68A6: 0x5922,\n    0x68BC: 0x6AAE,\n    0x68BE: 0x68F6,\n    0x68C0: 0x6AA2,\n    0x68C2: 0x6B1E,\n    0x6901: 0x69E8,\n    0x691F: 0x6ADD,\n    0x6920: 0x69E7,\n    0x6924: 0x6B0F,\n    0x692D: 0x6A62,\n    0x697C: 0x6A13,\n    0x6984: 0x6B16,\n    0x6987: 0x6AEC,\n    0x6988: 0x6ADA,\n    0x6989: 0x6AF8,\n    0x69DA: 0x6A9F,\n    0x69DB: 0x6ABB,\n    0x69DF: 0x6AB3,\n    0x69E0: 0x6AE7,\n    0x6A2A: 0x6A6B,\n    0x6A2F: 0x6AA3,\n    0x6A31: 0x6AFB,\n    0x6A65: 0x6AEB,\n    0x6A71: 0x6AE5,\n    0x6A79: 0x6AD3,\n    0x6A7C: 0x6ADE,\n    0x6A90: 0x7C37,\n    0x6AA9: 0x6A81,\n    0x6B22: 0x6B61,\n    0x6B24: 0x6B5F,\n    0x6B27: 0x6B50,\n    0x6B7C: 0x6BB2,\n    0x6B81: 0x6B7F,\n    0x6B87: 0x6BA4,\n    0x6B8B: 0x6B98,\n    0x6B92: 0x6B9E,\n    0x6B93: 0x6BAE,\n    0x6B9A: 0x6BAB,\n    0x6BA1: 0x6BAF,\n    0x6BB4: 0x6BC6,\n    0x6BC1: 0x6BC0,\n    0x6BC2: 0x8F42,\n    0x6BD5: 0x7562,\n    0x6BD9: 0x6583,\n    0x6BE1: 0x6C08,\n    0x6BF5: 0x6BFF,\n    0x6C07: 0x6C0C,\n    0x6C14: 0x6C23,\n    0x6C22: 0x6C2B,\n    0x6C29: 0x6C2C,\n    0x6C32: 0x6C33,\n    0x6C47: 0x5F59,\n    0x6C49: 0x6F22,\n    0x6C61: 0x6C59,\n    0x6C64: 0x6E6F,\n    0x6C79: 0x6D36,\n    0x6C93: 0x905D,\n    0x6C9F: 0x6E9D,\n    0x6CA1: 0x6C92,\n    0x6CA3: 0x7043,\n    0x6CA4: 0x6F1A,\n    0x6CA5: 0x701D,\n    0x6CA6: 0x6DEA,\n    0x6CA7: 0x6EC4,\n    0x6CA8: 0x6E22,\n    0x6CA9: 0x6E88,\n    0x6CAA: 0x6EEC,\n    0x6CB5: 0x6FD4,\n    0x6CDE: 0x6FD8,\n    0x6CEA: 0x6DDA,\n    0x6CF6: 0x6FA9,\n    0x6CF7: 0x7027,\n    0x6CF8: 0x7018,\n    0x6CFA: 0x6FFC,\n    0x6CFB: 0x7009,\n    0x6CFC: 0x6F51,\n    0x6CFD: 0x6FA4,\n    0x6CFE: 0x6D87,\n    0x6D01: 0x6F54,\n    0x6D12: 0x7051,\n    0x6D3C: 0x7AAA,\n    0x6D43: 0x6D79,\n    0x6D45: 0x6DFA,\n    0x6D46: 0x6F3F,\n    0x6D47: 0x6F86,\n    0x6D48: 0x6E5E,\n    0x6D49: 0x6EAE,\n    0x6D4A: 0x6FC1,\n    0x6D4B: 0x6E2C,\n    0x6D4D: 0x6FAE,\n    0x6D4E: 0x6FDF,\n    0x6D4F: 0x700F,\n    0x6D50: 0x6EFB,\n    0x6D51: 0x6E3E,\n    0x6D52: 0x6EF8,\n    0x6D53: 0x6FC3,\n    0x6D54: 0x6F6F,\n    0x6D55: 0x6FDC,\n    0x6D82: 0x5857,\n    0x6D8C: 0x6E67,\n    0x6D9B: 0x6FE4,\n    0x6D9D: 0x6F87,\n    0x6D9E: 0x6DF6,\n    0x6D9F: 0x6F23,\n    0x6DA0: 0x6F7F,\n    0x6DA1: 0x6E26,\n    0x6DA2: 0x6EB3,\n    0x6DA3: 0x6E19,\n    0x6DA4: 0x6ECC,\n    0x6DA6: 0x6F64,\n    0x6DA7: 0x6F97,\n    0x6DA8: 0x6F32,\n    0x6DA9: 0x6F80,\n    0x6DC0: 0x6FB1,\n    0x6E0A: 0x6DF5,\n    0x6E0C: 0x6DE5,\n    0x6E0D: 0x6F2C,\n    0x6E0E: 0x7006,\n    0x6E10: 0x6F38,\n    0x6E11: 0x6FA0,\n    0x6E14: 0x6F01,\n    0x6E16: 0x700B,\n    0x6E17: 0x6EF2,\n    0x6E29: 0x6EAB,\n    0x6E38: 0x904A,\n    0x6E7E: 0x7063,\n    0x6E7F: 0x6FD5,\n    0x6E83: 0x6F70,\n    0x6E85: 0x6FFA,\n    0x6E86: 0x6F35,\n    0x6E87: 0x6F0A,\n    0x6ED7: 0x6F77,\n    0x6EDA: 0x6EFE,\n    0x6EDE: 0x6EEF,\n    0x6EDF: 0x7069,\n    0x6EE0: 0x7044,\n    0x6EE1: 0x6EFF,\n    0x6EE2: 0x7005,\n    0x6EE4: 0x6FFE,\n    0x6EE5: 0x6FEB,\n    0x6EE6: 0x7064,\n    0x6EE8: 0x6FF1,\n    0x6EE9: 0x7058,\n    0x6EEA: 0x6FA6,\n    0x6F24: 0x6FEB,\n    0x6F46: 0x7020,\n    0x6F47: 0x701F,\n    0x6F4B: 0x7032,\n    0x6F4D: 0x6FF0,\n    0x6F5C: 0x6F5B,\n    0x6F74: 0x7026,\n    0x6F9C: 0x703E,\n    0x6FD1: 0x7028,\n    0x6FD2: 0x7015,\n    0x704F: 0x705D,\n    0x706D: 0x6EC5,\n    0x706F: 0x71C8,\n    0x7075: 0x9748,\n    0x707E: 0x707D,\n    0x707F: 0x71E6,\n    0x7080: 0x716C,\n    0x7089: 0x7210,\n    0x7096: 0x71C9,\n    0x709C: 0x7152,\n    0x709D: 0x7197,\n    0x70B9: 0x9EDE,\n    0x70BC: 0x7149,\n    0x70BD: 0x71BE,\n    0x70C1: 0x720D,\n    0x70C2: 0x721B,\n    0x70C3: 0x70F4,\n    0x70DB: 0x71ED,\n    0x70DF: 0x7159,\n    0x70E6: 0x7169,\n    0x70E7: 0x71D2,\n    0x70E8: 0x71C1,\n    0x70E9: 0x71F4,\n    0x70EB: 0x71D9,\n    0x70EC: 0x71FC,\n    0x70ED: 0x71B1,\n    0x7115: 0x7165,\n    0x7116: 0x71DC,\n    0x7118: 0x71FE,\n    0x7145: 0x7146,\n    0x7173: 0x7CCA,\n    0x717A: 0x9000,\n    0x7198: 0x6E9C,\n    0x7231: 0x611B,\n    0x7237: 0x723A,\n    0x724D: 0x7258,\n    0x7266: 0x729B,\n    0x7275: 0x727D,\n    0x727A: 0x72A7,\n    0x728A: 0x72A2,\n    0x729F: 0x5F37,\n    0x72AD: 0x72AC,\n    0x72B6: 0x72C0,\n    0x72B7: 0x7377,\n    0x72B8: 0x7341,\n    0x72B9: 0x7336,\n    0x72C8: 0x72FD,\n    0x72CD: 0x9E85,\n    0x72DD: 0x736E,\n    0x72DE: 0x7370,\n    0x72EC: 0x7368,\n    0x72ED: 0x72F9,\n    0x72EE: 0x7345,\n    0x72EF: 0x736A,\n    0x72F0: 0x7319,\n    0x72F1: 0x7344,\n    0x72F2: 0x733B,\n    0x7303: 0x736B,\n    0x730E: 0x7375,\n    0x7315: 0x737C,\n    0x7321: 0x7380,\n    0x732A: 0x8C6C,\n    0x732B: 0x8C93,\n    0x732C: 0x875F,\n    0x732E: 0x737B,\n    0x736D: 0x737A,\n    0x7391: 0x74A3,\n    0x7399: 0x74B5,\n    0x739A: 0x7452,\n    0x739B: 0x746A,\n    0x73AE: 0x744B,\n    0x73AF: 0x74B0,\n    0x73B0: 0x73FE,\n    0x73B1: 0x7472,\n    0x73BA: 0x74BD,\n    0x73C9: 0x7449,\n    0x73CF: 0x73A8,\n    0x73D0: 0x743A,\n    0x73D1: 0x74CF,\n    0x73F0: 0x74AB,\n    0x73F2: 0x743F,\n    0x740E: 0x74A1,\n    0x740F: 0x7489,\n    0x7410: 0x7463,\n    0x743C: 0x74CA,\n    0x7476: 0x7464,\n    0x7477: 0x74A6,\n    0x7487: 0x74BF,\n    0x748E: 0x74D4,\n    0x74D2: 0x74DA,\n    0x74EE: 0x7515,\n    0x74EF: 0x750C,\n    0x7535: 0x96FB,\n    0x753B: 0x756B,\n    0x7545: 0x66A2,\n    0x7572: 0x4F58,\n    0x7574: 0x7587,\n    0x7596: 0x7664,\n    0x7597: 0x7642,\n    0x759F: 0x7627,\n    0x75A0: 0x7658,\n    0x75A1: 0x760D,\n    0x75AC: 0x9B01,\n    0x75AE: 0x7621,\n    0x75AF: 0x760B,\n    0x75B1: 0x76B0,\n    0x75B4: 0x5C59,\n    0x75C8: 0x7670,\n    0x75C9: 0x75D9,\n    0x75D2: 0x7662,\n    0x75D6: 0x7602,\n    0x75E8: 0x7646,\n    0x75EA: 0x7613,\n    0x75EB: 0x7647,\n    0x75F4: 0x7661,\n    0x7605: 0x7649,\n    0x7606: 0x762E,\n    0x7617: 0x761E,\n    0x7618: 0x763A,\n    0x762A: 0x765F,\n    0x762B: 0x7671,\n    0x763E: 0x766E,\n    0x763F: 0x766D,\n    0x765E: 0x7669,\n    0x7663: 0x766C,\n    0x766B: 0x7672,\n    0x766F: 0x81D2,\n    0x7691: 0x769A,\n    0x76B1: 0x76BA,\n    0x76B2: 0x76B8,\n    0x76CF: 0x76DE,\n    0x76D0: 0x9E7D,\n    0x76D1: 0x76E3,\n    0x76D6: 0x84CB,\n    0x76D7: 0x76DC,\n    0x76D8: 0x76E4,\n    0x770D: 0x7798,\n    0x7726: 0x7725,\n    0x772C: 0x77D3,\n    0x7740: 0x8457,\n    0x7741: 0x775C,\n    0x7750: 0x775E,\n    0x7751: 0x77BC,\n    0x7792: 0x779E,\n    0x77A9: 0x77DA,\n    0x77EB: 0x77EF,\n    0x77F6: 0x78EF,\n    0x77FE: 0x792C,\n    0x77FF: 0x7926,\n    0x7800: 0x78AD,\n    0x7801: 0x78BC,\n    0x7816: 0x78DA,\n    0x7817: 0x7868,\n    0x781A: 0x786F,\n    0x781C: 0x78B8,\n    0x783A: 0x792A,\n    0x783B: 0x7931,\n    0x783E: 0x792B,\n    0x7840: 0x790E,\n    0x7841: 0x785C,\n    0x7845: 0x77FD,\n    0x7855: 0x78A9,\n    0x7856: 0x7864,\n    0x7857: 0x78FD,\n    0x7859: 0x78D1,\n    0x785A: 0x7904,\n    0x786E: 0x78BA,\n    0x7877: 0x9E7C,\n    0x788D: 0x7919,\n    0x789B: 0x78E7,\n    0x789C: 0x78E3,\n    0x78B1: 0x583F,\n    0x78B9: 0x955F,\n    0x78D9: 0x6EFE,\n    0x793C: 0x79AE,\n    0x794E: 0x7995,\n    0x7962: 0x79B0,\n    0x796F: 0x798E,\n    0x7977: 0x79B1,\n    0x7978: 0x798D,\n    0x7980: 0x7A1F,\n    0x7984: 0x797F,\n    0x7985: 0x79AA,\n    0x79BB: 0x96E2,\n    0x79C3: 0x79BF,\n    0x79C6: 0x7A08,\n    0x79CD: 0x7A2E,\n    0x79EF: 0x7A4D,\n    0x79F0: 0x7A31,\n    0x79FD: 0x7A62,\n    0x79FE: 0x7A60,\n    0x7A06: 0x7A6D,\n    0x7A0E: 0x7A05,\n    0x7A23: 0x7A4C,\n    0x7A33: 0x7A69,\n    0x7A51: 0x7A61,\n    0x7A77: 0x7AAE,\n    0x7A83: 0x7ACA,\n    0x7A8D: 0x7AC5,\n    0x7A91: 0x7AAF,\n    0x7A9C: 0x7AC4,\n    0x7A9D: 0x7AA9,\n    0x7AA5: 0x7ABA,\n    0x7AA6: 0x7AC7,\n    0x7AAD: 0x7AB6,\n    0x7AD6: 0x8C4E,\n    0x7ADE: 0x7AF6,\n    0x7B03: 0x7BE4,\n    0x7B0B: 0x7B4D,\n    0x7B14: 0x7B46,\n    0x7B15: 0x7B67,\n    0x7B3A: 0x7B8B,\n    0x7B3C: 0x7C60,\n    0x7B3E: 0x7C69,\n    0x7B51: 0x7BC9,\n    0x7B5A: 0x7BF3,\n    0x7B5B: 0x7BE9,\n    0x7B5C: 0x7C39,\n    0x7B5D: 0x7B8F,\n    0x7B79: 0x7C4C,\n    0x7B7E: 0x7C3D,\n    0x7B80: 0x7C21,\n    0x7B93: 0x7C59,\n    0x7BA6: 0x7C00,\n    0x7BA7: 0x7BCB,\n    0x7BA8: 0x7C5C,\n    0x7BA9: 0x7C6E,\n    0x7BAA: 0x7C1E,\n    0x7BAB: 0x7C2B,\n    0x7BD1: 0x7C23,\n    0x7BD3: 0x7C0D,\n    0x7BEE: 0x7C43,\n    0x7BF1: 0x7C6C,\n    0x7C16: 0x7C6A,\n    0x7C41: 0x7C5F,\n    0x7C74: 0x7CF4,\n    0x7C7B: 0x985E,\n    0x7C7C: 0x79C8,\n    0x7C9C: 0x7CF6,\n    0x7C9D: 0x7CF2,\n    0x7CA4: 0x7CB5,\n    0x7CAA: 0x7CDE,\n    0x7CAE: 0x7CE7,\n    0x7CC1: 0x7CDD,\n    0x7CC7: 0x9931,\n    0x7D27: 0x7DCA,\n    0x7D77: 0x7E36,\n    0x7E9F: 0x7CF8,\n    0x7EA0: 0x7CFE,\n    0x7EA1: 0x7D06,\n    0x7EA2: 0x7D05,\n    0x7EA3: 0x7D02,\n    0x7EA4: 0x7E96,\n    0x7EA5: 0x7D07,\n    0x7EA6: 0x7D04,\n    0x7EA7: 0x7D1A,\n    0x7EA8: 0x7D08,\n    0x7EA9: 0x7E8A,\n    0x7EAA: 0x7D00,\n    0x7EAB: 0x7D09,\n    0x7EAC: 0x7DEF,\n    0x7EAD: 0x7D1C,\n    0x7EAE: 0x7D18,\n    0x7EAF: 0x7D14,\n    0x7EB0: 0x7D15,\n    0x7EB1: 0x7D17,\n    0x7EB2: 0x7DB1,\n    0x7EB3: 0x7D0D,\n    0x7EB4: 0x7D1D,\n    0x7EB5: 0x7E31,\n    0x7EB6: 0x7DB8,\n    0x7EB7: 0x7D1B,\n    0x7EB8: 0x7D19,\n    0x7EB9: 0x7D0B,\n    0x7EBA: 0x7D21,\n    0x7EBB: 0x7D35,\n    0x7EBC: 0x7D16,\n    0x7EBD: 0x7D10,\n    0x7EBE: 0x7D13,\n    0x7EBF: 0x7DDA,\n    0x7EC0: 0x7D3A,\n    0x7EC1: 0x7D4F,\n    0x7EC2: 0x7D31,\n    0x7EC3: 0x7DF4,\n    0x7EC4: 0x7D44,\n    0x7EC5: 0x7D33,\n    0x7EC6: 0x7D30,\n    0x7EC7: 0x7E54,\n    0x7EC8: 0x7D42,\n    0x7EC9: 0x7E10,\n    0x7ECA: 0x7D46,\n    0x7ECB: 0x7D3C,\n    0x7ECC: 0x7D40,\n    0x7ECD: 0x7D39,\n    0x7ECE: 0x7E79,\n    0x7ECF: 0x7D93,\n    0x7ED0: 0x7D3F,\n    0x7ED1: 0x7D81,\n    0x7ED2: 0x7D68,\n    0x7ED3: 0x7D50,\n    0x7ED4: 0x7D5D,\n    0x7ED5: 0x7E5E,\n    0x7ED6: 0x7D70,\n    0x7ED7: 0x7D4E,\n    0x7ED8: 0x7E6A,\n    0x7ED9: 0x7D66,\n    0x7EDA: 0x7D62,\n    0x7EDB: 0x7D73,\n    0x7EDC: 0x7D61,\n    0x7EDD: 0x7D55,\n    0x7EDE: 0x7D5E,\n    0x7EDF: 0x7D71,\n    0x7EE0: 0x7D86,\n    0x7EE1: 0x7D83,\n    0x7EE2: 0x7D79,\n    0x7EE3: 0x7E61,\n    0x7EE4: 0x7D8C,\n    0x7EE5: 0x7D8F,\n    0x7EE6: 0x7D5B,\n    0x7EE7: 0x7E7C,\n    0x7EE8: 0x7D88,\n    0x7EE9: 0x7E3E,\n    0x7EEA: 0x7DD2,\n    0x7EEB: 0x7DBE,\n    0x7EEC: 0x7DD3,\n    0x7EED: 0x7E8C,\n    0x7EEE: 0x7DBA,\n    0x7EEF: 0x7DCB,\n    0x7EF0: 0x7DBD,\n    0x7EF1: 0x7DD4,\n    0x7EF2: 0x7DC4,\n    0x7EF3: 0x7E69,\n    0x7EF4: 0x7DAD,\n    0x7EF5: 0x7DBF,\n    0x7EF6: 0x7DAC,\n    0x7EF7: 0x7E43,\n    0x7EF8: 0x7DA2,\n    0x7EF9: 0x7DAF,\n    0x7EFA: 0x7DB9,\n    0x7EFB: 0x7DA3,\n    0x7EFC: 0x7D9C,\n    0x7EFD: 0x7DBB,\n    0x7EFE: 0x7DB0,\n    0x7EFF: 0x7DA0,\n    0x7F00: 0x7DB4,\n    0x7F01: 0x7DC7,\n    0x7F02: 0x7DD9,\n    0x7F03: 0x7DD7,\n    0x7F04: 0x7DD8,\n    0x7F05: 0x7DEC,\n    0x7F06: 0x7E9C,\n    0x7F07: 0x7DF9,\n    0x7F08: 0x7DF2,\n    0x7F09: 0x7DDD,\n    0x7F0A: 0x7E15,\n    0x7F0B: 0x7E62,\n    0x7F0C: 0x7DE6,\n    0x7F0D: 0x7D9E,\n    0x7F0E: 0x7DDE,\n    0x7F0F: 0x7DF6,\n    0x7F10: 0x7DDA,\n    0x7F11: 0x7DF1,\n    0x7F12: 0x7E0B,\n    0x7F13: 0x7DE9,\n    0x7F14: 0x7DE0,\n    0x7F15: 0x7E37,\n    0x7F16: 0x7DE8,\n    0x7F17: 0x7DE1,\n    0x7F18: 0x7DE3,\n    0x7F19: 0x7E09,\n    0x7F1A: 0x7E1B,\n    0x7F1B: 0x7E1F,\n    0x7F1C: 0x7E1D,\n    0x7F1D: 0x7E2B,\n    0x7F1E: 0x7E17,\n    0x7F1F: 0x7E1E,\n    0x7F20: 0x7E8F,\n    0x7F21: 0x7E2D,\n    0x7F22: 0x7E0A,\n    0x7F23: 0x7E11,\n    0x7F24: 0x7E7D,\n    0x7F25: 0x7E39,\n    0x7F26: 0x7E35,\n    0x7F27: 0x7E32,\n    0x7F28: 0x7E93,\n    0x7F29: 0x7E2E,\n    0x7F2A: 0x7E46,\n    0x7F2B: 0x7E45,\n    0x7F2C: 0x7E88,\n    0x7F2D: 0x7E5A,\n    0x7F2E: 0x7E55,\n    0x7F2F: 0x7E52,\n    0x7F30: 0x97C1,\n    0x7F31: 0x7E7E,\n    0x7F32: 0x7E70,\n    0x7F33: 0x7E6F,\n    0x7F34: 0x7E73,\n    0x7F35: 0x7E98,\n    0x7F42: 0x7F4C,\n    0x7F51: 0x7DB2,\n    0x7F57: 0x7F85,\n    0x7F5A: 0x7F70,\n    0x7F62: 0x7F77,\n    0x7F74: 0x7F86,\n    0x7F81: 0x7F88,\n    0x7F9F: 0x7FA5,\n    0x7FA1: 0x7FA8,\n    0x7FD8: 0x7FF9,\n    0x7FD9: 0x7FFD,\n    0x7FDA: 0x7FEC,\n    0x8022: 0x802E,\n    0x8027: 0x802C,\n    0x8038: 0x8073,\n    0x803B: 0x6065,\n    0x8042: 0x8076,\n    0x804B: 0x807E,\n    0x804C: 0x8077,\n    0x804D: 0x8079,\n    0x8054: 0x806F,\n    0x8069: 0x8075,\n    0x806A: 0x8070,\n    0x8083: 0x8085,\n    0x80A0: 0x8178,\n    0x80A4: 0x819A,\n    0x80B7: 0x8181,\n    0x80BE: 0x814E,\n    0x80BF: 0x816B,\n    0x80C0: 0x8139,\n    0x80C1: 0x8105,\n    0x80C6: 0x81BD,\n    0x80DC: 0x52DD,\n    0x80E7: 0x6727,\n    0x80E8: 0x8156,\n    0x80EA: 0x81DA,\n    0x80EB: 0x811B,\n    0x80F6: 0x81A0,\n    0x8109: 0x8108,\n    0x810D: 0x81BE,\n    0x810F: 0x9AD2,\n    0x8110: 0x81CD,\n    0x8111: 0x8166,\n    0x8113: 0x81BF,\n    0x8114: 0x81E0,\n    0x811A: 0x8173,\n    0x8131: 0x812B,\n    0x8136: 0x8161,\n    0x8138: 0x81C9,\n    0x814A: 0x81D8,\n    0x814C: 0x9183,\n    0x8158: 0x8195,\n    0x816D: 0x9F76,\n    0x817B: 0x81A9,\n    0x817C: 0x9766,\n    0x817D: 0x8183,\n    0x817E: 0x9A30,\n    0x8191: 0x81CF,\n    0x81DC: 0x81E2,\n    0x8206: 0x8F3F,\n    0x8223: 0x8264,\n    0x8230: 0x8266,\n    0x8231: 0x8259,\n    0x823B: 0x826B,\n    0x8270: 0x8271,\n    0x8273: 0x8C54,\n    0x8279: 0x8278,\n    0x827A: 0x85DD,\n    0x8282: 0x7BC0,\n    0x8288: 0x7F8B,\n    0x8297: 0x858C,\n    0x829C: 0x856A,\n    0x82A6: 0x8606,\n    0x82C1: 0x84EF,\n    0x82C7: 0x8466,\n    0x82C8: 0x85F6,\n    0x82CB: 0x83A7,\n    0x82CC: 0x8407,\n    0x82CD: 0x84BC,\n    0x82CE: 0x82E7,\n    0x82CF: 0x8607,\n    0x82D8: 0x6ABE,\n    0x82F9: 0x860B,\n    0x8303: 0x7BC4,\n    0x830E: 0x8396,\n    0x830F: 0x8622,\n    0x8311: 0x8526,\n    0x8314: 0x584B,\n    0x8315: 0x7162,\n    0x8327: 0x7E6D,\n    0x8346: 0x834A,\n    0x8350: 0x85A6,\n    0x8359: 0x8598,\n    0x835A: 0x83A2,\n    0x835B: 0x8558,\n    0x835C: 0x84FD,\n    0x835E: 0x854E,\n    0x835F: 0x8588,\n    0x8360: 0x85BA,\n    0x8361: 0x8569,\n    0x8363: 0x69AE,\n    0x8364: 0x8477,\n    0x8365: 0x6ECE,\n    0x8366: 0x7296,\n    0x8367: 0x7192,\n    0x8368: 0x8541,\n    0x8369: 0x85CE,\n    0x836A: 0x84C0,\n    0x836B: 0x852D,\n    0x836C: 0x8552,\n    0x836D: 0x8452,\n    0x836E: 0x8464,\n    0x836F: 0x85E5,\n    0x8385: 0x849E,\n    0x839C: 0x84E7,\n    0x83B1: 0x840A,\n    0x83B2: 0x84EE,\n    0x83B3: 0x8494,\n    0x83B4: 0x8435,\n    0x83B6: 0x859F,\n    0x83B7: 0x7372,\n    0x83B8: 0x8555,\n    0x83B9: 0x7469,\n    0x83BA: 0x9DAF,\n    0x83BC: 0x84F4,\n    0x841A: 0x8600,\n    0x841D: 0x863F,\n    0x8424: 0x87A2,\n    0x8425: 0x71DF,\n    0x8426: 0x7E08,\n    0x8427: 0x856D,\n    0x8428: 0x85A9,\n    0x8471: 0x8525,\n    0x8487: 0x8546,\n    0x8489: 0x8562,\n    0x848B: 0x8523,\n    0x848C: 0x851E,\n    0x84DD: 0x85CD,\n    0x84DF: 0x858A,\n    0x84E0: 0x863A,\n    0x84E3: 0x8577,\n    0x84E5: 0x93A3,\n    0x84E6: 0x9A40,\n    0x8537: 0x8594,\n    0x8539: 0x861E,\n    0x853A: 0x85FA,\n    0x853C: 0x85F9,\n    0x8572: 0x8604,\n    0x8574: 0x860A,\n    0x85AE: 0x85EA,\n    0x85C1: 0x69C1,\n    0x85D3: 0x861A,\n    0x864F: 0x865C,\n    0x8651: 0x616E,\n    0x865A: 0x865B,\n    0x866B: 0x87F2,\n    0x866C: 0x866F,\n    0x866E: 0x87E3,\n    0x867D: 0x96D6,\n    0x867E: 0x8766,\n    0x867F: 0x8806,\n    0x8680: 0x8755,\n    0x8681: 0x87FB,\n    0x8682: 0x879E,\n    0x8695: 0x8836,\n    0x869D: 0x8814,\n    0x86AC: 0x8706,\n    0x86CA: 0x8831,\n    0x86CE: 0x8823,\n    0x86CF: 0x87F6,\n    0x86EE: 0x883B,\n    0x86F0: 0x87C4,\n    0x86F1: 0x86FA,\n    0x86F2: 0x87EF,\n    0x86F3: 0x8784,\n    0x86F4: 0x8810,\n    0x8715: 0x86FB,\n    0x8717: 0x8778,\n    0x8721: 0x881F,\n    0x8747: 0x8805,\n    0x8748: 0x87C8,\n    0x8749: 0x87EC,\n    0x874E: 0x880D,\n    0x877C: 0x87BB,\n    0x877E: 0x8811,\n    0x8780: 0x87BF,\n    0x87A8: 0x87CE,\n    0x87CF: 0x8828,\n    0x8845: 0x91C1,\n    0x8854: 0x929C,\n    0x8865: 0x88DC,\n    0x886C: 0x896F,\n    0x886E: 0x889E,\n    0x8884: 0x8956,\n    0x8885: 0x5ACB,\n    0x8886: 0x8918,\n    0x889C: 0x896A,\n    0x88AD: 0x8972,\n    0x88AF: 0x894F,\n    0x88C5: 0x88DD,\n    0x88C6: 0x8960,\n    0x88C8: 0x890C,\n    0x88E2: 0x8933,\n    0x88E3: 0x895D,\n    0x88E4: 0x8932,\n    0x88E5: 0x8947,\n    0x891B: 0x8938,\n    0x8934: 0x8964,\n    0x8941: 0x7E48,\n    0x8955: 0x8974,\n    0x89C1: 0x898B,\n    0x89C2: 0x89C0,\n    0x89C3: 0x898E,\n    0x89C4: 0x898F,\n    0x89C5: 0x8993,\n    0x89C6: 0x8996,\n    0x89C7: 0x8998,\n    0x89C8: 0x89BD,\n    0x89C9: 0x89BA,\n    0x89CA: 0x89AC,\n    0x89CB: 0x89A1,\n    0x89CC: 0x89BF,\n    0x89CD: 0x89A5,\n    0x89CE: 0x89A6,\n    0x89CF: 0x89AF,\n    0x89D0: 0x89B2,\n    0x89D1: 0x89B7,\n    0x89DE: 0x89F4,\n    0x89E6: 0x89F8,\n    0x89EF: 0x89F6,\n    0x8A5F: 0x8B8B,\n    0x8A89: 0x8B7D,\n    0x8A8A: 0x8B04,\n    0x8BA0: 0x8A01,\n    0x8BA1: 0x8A08,\n    0x8BA2: 0x8A02,\n    0x8BA3: 0x8A03,\n    0x8BA4: 0x8A8D,\n    0x8BA5: 0x8B4F,\n    0x8BA6: 0x8A10,\n    0x8BA7: 0x8A0C,\n    0x8BA8: 0x8A0E,\n    0x8BA9: 0x8B93,\n    0x8BAA: 0x8A15,\n    0x8BAB: 0x8A16,\n    0x8BAD: 0x8A13,\n    0x8BAE: 0x8B70,\n    0x8BAF: 0x8A0A,\n    0x8BB0: 0x8A18,\n    0x8BB1: 0x8A12,\n    0x8BB2: 0x8B1B,\n    0x8BB3: 0x8AF1,\n    0x8BB4: 0x8B33,\n    0x8BB5: 0x8A4E,\n    0x8BB6: 0x8A1D,\n    0x8BB7: 0x8A25,\n    0x8BB8: 0x8A31,\n    0x8BB9: 0x8A1B,\n    0x8BBA: 0x8AD6,\n    0x8BBB: 0x8A29,\n    0x8BBC: 0x8A1F,\n    0x8BBD: 0x8AF7,\n    0x8BBE: 0x8A2D,\n    0x8BBF: 0x8A2A,\n    0x8BC0: 0x8A23,\n    0x8BC1: 0x8B49,\n    0x8BC2: 0x8A41,\n    0x8BC3: 0x8A36,\n    0x8BC4: 0x8A55,\n    0x8BC5: 0x8A5B,\n    0x8BC6: 0x8B58,\n    0x8BC7: 0x8A57,\n    0x8BC8: 0x8A50,\n    0x8BC9: 0x8A34,\n    0x8BCA: 0x8A3A,\n    0x8BCB: 0x8A46,\n    0x8BCC: 0x8B05,\n    0x8BCD: 0x8A5E,\n    0x8BCE: 0x8A58,\n    0x8BCF: 0x8A54,\n    0x8BD0: 0x8A56,\n    0x8BD1: 0x8B6F,\n    0x8BD2: 0x8A52,\n    0x8BD3: 0x8A86,\n    0x8BD4: 0x8A84,\n    0x8BD5: 0x8A66,\n    0x8BD6: 0x8A7F,\n    0x8BD7: 0x8A69,\n    0x8BD8: 0x8A70,\n    0x8BD9: 0x8A7C,\n    0x8BDA: 0x8AA0,\n    0x8BDB: 0x8A85,\n    0x8BDC: 0x8A75,\n    0x8BDD: 0x8A71,\n    0x8BDE: 0x8A95,\n    0x8BDF: 0x8A6C,\n    0x8BE0: 0x8A6E,\n    0x8BE1: 0x8A6D,\n    0x8BE2: 0x8A62,\n    0x8BE3: 0x8A63,\n    0x8BE4: 0x8ACD,\n    0x8BE5: 0x8A72,\n    0x8BE6: 0x8A73,\n    0x8BE7: 0x8A6B,\n    0x8BE8: 0x8AE2,\n    0x8BE9: 0x8A61,\n    0x8BEA: 0x8B78,\n    0x8BEB: 0x8AA1,\n    0x8BEC: 0x8AA3,\n    0x8BED: 0x8A9E,\n    0x8BEE: 0x8A9A,\n    0x8BEF: 0x8AA4,\n    0x8BF0: 0x8AA5,\n    0x8BF1: 0x8A98,\n    0x8BF2: 0x8AA8,\n    0x8BF3: 0x8A91,\n    0x8BF4: 0x8AAA,\n    0x8BF5: 0x8AA6,\n    0x8BF6: 0x8A92,\n    0x8BF7: 0x8ACB,\n    0x8BF8: 0x8AF8,\n    0x8BF9: 0x8ACF,\n    0x8BFA: 0x8AFE,\n    0x8BFB: 0x8B80,\n    0x8BFC: 0x8AD1,\n    0x8BFD: 0x8AB9,\n    0x8BFE: 0x8AB2,\n    0x8BFF: 0x8AC9,\n    0x8C00: 0x8ADB,\n    0x8C01: 0x8AB0,\n    0x8C02: 0x8AD7,\n    0x8C03: 0x8ABF,\n    0x8C04: 0x8AC2,\n    0x8C05: 0x8AD2,\n    0x8C06: 0x8AC4,\n    0x8C07: 0x8AB6,\n    0x8C08: 0x8AC7,\n    0x8C0A: 0x8ABC,\n    0x8C0B: 0x8B00,\n    0x8C0C: 0x8AF6,\n    0x8C0D: 0x8ADC,\n    0x8C0E: 0x8B0A,\n    0x8C0F: 0x8AEB,\n    0x8C10: 0x8AE7,\n    0x8C11: 0x8B14,\n    0x8C12: 0x8B01,\n    0x8C13: 0x8B02,\n    0x8C14: 0x8AE4,\n    0x8C15: 0x8AED,\n    0x8C16: 0x8AFC,\n    0x8C17: 0x8B92,\n    0x8C18: 0x8AEE,\n    0x8C19: 0x8AF3,\n    0x8C1A: 0x8AFA,\n    0x8C1B: 0x8AE6,\n    0x8C1C: 0x8B0E,\n    0x8C1D: 0x8ADE,\n    0x8C1E: 0x8ADD,\n    0x8C1F: 0x8B28,\n    0x8C20: 0x8B9C,\n    0x8C21: 0x8B16,\n    0x8C22: 0x8B1D,\n    0x8C23: 0x8B20,\n    0x8C24: 0x8B17,\n    0x8C25: 0x8AE1,\n    0x8C26: 0x8B19,\n    0x8C27: 0x8B10,\n    0x8C28: 0x8B39,\n    0x8C29: 0x8B3E,\n    0x8C2A: 0x8B2B,\n    0x8C2B: 0x8B7E,\n    0x8C2C: 0x8B2C,\n    0x8C2D: 0x8B5A,\n    0x8C2E: 0x8B56,\n    0x8C2F: 0x8B59,\n    0x8C30: 0x8B95,\n    0x8C31: 0x8B5C,\n    0x8C32: 0x8B4E,\n    0x8C33: 0x8B9E,\n    0x8C34: 0x8B74,\n    0x8C35: 0x8B6B,\n    0x8C36: 0x8B96,\n    0x8C37: 0x7A40,\n    0x8C6E: 0x8C76,\n    0x8D1D: 0x8C9D,\n    0x8D1E: 0x8C9E,\n    0x8D1F: 0x8CA0,\n    0x8D20: 0x8C9F,\n    0x8D21: 0x8CA2,\n    0x8D22: 0x8CA1,\n    0x8D23: 0x8CAC,\n    0x8D24: 0x8CE2,\n    0x8D25: 0x6557,\n    0x8D26: 0x8CEC,\n    0x8D27: 0x8CA8,\n    0x8D28: 0x8CEA,\n    0x8D29: 0x8CA9,\n    0x8D2A: 0x8CAA,\n    0x8D2B: 0x8CA7,\n    0x8D2C: 0x8CB6,\n    0x8D2D: 0x8CFC,\n    0x8D2E: 0x8CAF,\n    0x8D2F: 0x8CAB,\n    0x8D30: 0x8CB3,\n    0x8D31: 0x8CE4,\n    0x8D32: 0x8CC1,\n    0x8D33: 0x8CB0,\n    0x8D34: 0x8CBC,\n    0x8D35: 0x8CB4,\n    0x8D36: 0x8CBA,\n    0x8D37: 0x8CB8,\n    0x8D38: 0x8CBF,\n    0x8D39: 0x8CBB,\n    0x8D3A: 0x8CC0,\n    0x8D3B: 0x8CBD,\n    0x8D3C: 0x8CCA,\n    0x8D3D: 0x8D04,\n    0x8D3E: 0x8CC8,\n    0x8D3F: 0x8CC4,\n    0x8D40: 0x8CB2,\n    0x8D41: 0x8CC3,\n    0x8D42: 0x8CC2,\n    0x8D43: 0x8D13,\n    0x8D44: 0x8CC7,\n    0x8D45: 0x8CC5,\n    0x8D46: 0x8D10,\n    0x8D47: 0x8CD5,\n    0x8D48: 0x8CD1,\n    0x8D49: 0x8CDA,\n    0x8D4A: 0x8CD2,\n    0x8D4B: 0x8CE6,\n    0x8D4C: 0x8CED,\n    0x8D4D: 0x9F4E,\n    0x8D4E: 0x8D16,\n    0x8D4F: 0x8CDE,\n    0x8D50: 0x8CDC,\n    0x8D51: 0x8D14,\n    0x8D52: 0x8CD9,\n    0x8D53: 0x8CE1,\n    0x8D54: 0x8CE0,\n    0x8D55: 0x8CE7,\n    0x8D56: 0x8CF4,\n    0x8D57: 0x8CF5,\n    0x8D58: 0x8D05,\n    0x8D59: 0x8CFB,\n    0x8D5A: 0x8CFA,\n    0x8D5B: 0x8CFD,\n    0x8D5C: 0x8CFE,\n    0x8D5D: 0x8D17,\n    0x8D5E: 0x8D0A,\n    0x8D5F: 0x8D07,\n    0x8D60: 0x8D08,\n    0x8D61: 0x8D0D,\n    0x8D62: 0x8D0F,\n    0x8D63: 0x8D1B,\n    0x8D6A: 0x8D6C,\n    0x8D75: 0x8D99,\n    0x8D76: 0x8D95,\n    0x8D8B: 0x8DA8,\n    0x8DB1: 0x8DB2,\n    0x8DB8: 0x8E89,\n    0x8DC3: 0x8E8D,\n    0x8DC4: 0x8E4C,\n    0x8DD6: 0x8E60,\n    0x8DDE: 0x8E92,\n    0x8DF5: 0x8E10,\n    0x8DF6: 0x8E82,\n    0x8DF7: 0x8E7A,\n    0x8DF8: 0x8E55,\n    0x8DF9: 0x8E9A,\n    0x8DFB: 0x8E8B,\n    0x8E0A: 0x8E34,\n    0x8E0C: 0x8E8A,\n    0x8E2A: 0x8E64,\n    0x8E2C: 0x8E93,\n    0x8E2F: 0x8E91,\n    0x8E51: 0x8EA1,\n    0x8E52: 0x8E63,\n    0x8E70: 0x8E95,\n    0x8E7F: 0x8EA5,\n    0x8E8F: 0x8EAA,\n    0x8E9C: 0x8EA6,\n    0x8EAF: 0x8EC0,\n    0x8F66: 0x8ECA,\n    0x8F67: 0x8ECB,\n    0x8F68: 0x8ECC,\n    0x8F69: 0x8ED2,\n    0x8F6A: 0x8ED1,\n    0x8F6B: 0x8ED4,\n    0x8F6C: 0x8F49,\n    0x8F6D: 0x8EDB,\n    0x8F6E: 0x8F2A,\n    0x8F6F: 0x8EDF,\n    0x8F70: 0x8F5F,\n    0x8F71: 0x8EF2,\n    0x8F72: 0x8EFB,\n    0x8F73: 0x8F64,\n    0x8F74: 0x8EF8,\n    0x8F75: 0x8EF9,\n    0x8F76: 0x8EFC,\n    0x8F77: 0x8EE4,\n    0x8F78: 0x8EEB,\n    0x8F79: 0x8F62,\n    0x8F7A: 0x8EFA,\n    0x8F7B: 0x8F15,\n    0x8F7C: 0x8EFE,\n    0x8F7D: 0x8F09,\n    0x8F7E: 0x8F0A,\n    0x8F7F: 0x8F4E,\n    0x8F80: 0x8F08,\n    0x8F81: 0x8F07,\n    0x8F82: 0x8F05,\n    0x8F83: 0x8F03,\n    0x8F84: 0x8F12,\n    0x8F85: 0x8F14,\n    0x8F86: 0x8F1B,\n    0x8F87: 0x8F26,\n    0x8F88: 0x8F29,\n    0x8F89: 0x8F1D,\n    0x8F8A: 0x8F25,\n    0x8F8B: 0x8F1E,\n    0x8F8C: 0x8F2C,\n    0x8F8D: 0x8F1F,\n    0x8F8E: 0x8F1C,\n    0x8F8F: 0x8F33,\n    0x8F90: 0x8F3B,\n    0x8F91: 0x8F2F,\n    0x8F92: 0x8F40,\n    0x8F93: 0x8F38,\n    0x8F94: 0x8F61,\n    0x8F95: 0x8F45,\n    0x8F96: 0x8F44,\n    0x8F97: 0x8F3E,\n    0x8F98: 0x8F46,\n    0x8F99: 0x8F4D,\n    0x8F9A: 0x8F54,\n    0x8F9E: 0x8FAD,\n    0x8FA9: 0x8FAF,\n    0x8FAB: 0x8FAE,\n    0x8FB9: 0x908A,\n    0x8FBD: 0x907C,\n    0x8FBE: 0x9054,\n    0x8FC1: 0x9077,\n    0x8FC7: 0x904E,\n    0x8FC8: 0x9081,\n    0x8FD0: 0x904B,\n    0x8FD8: 0x9084,\n    0x8FD9: 0x9019,\n    0x8FDB: 0x9032,\n    0x8FDC: 0x9060,\n    0x8FDD: 0x9055,\n    0x8FDE: 0x9023,\n    0x8FDF: 0x9072,\n    0x8FE9: 0x9087,\n    0x8FF3: 0x9015,\n    0x8FF9: 0x8DE1,\n    0x9002: 0x9069,\n    0x9009: 0x9078,\n    0x900A: 0x905C,\n    0x9012: 0x905E,\n    0x9026: 0x9090,\n    0x903B: 0x908F,\n    0x9057: 0x907A,\n    0x9065: 0x9059,\n    0x9093: 0x9127,\n    0x909D: 0x913A,\n    0x90AC: 0x9114,\n    0x90AE: 0x90F5,\n    0x90B9: 0x9112,\n    0x90BA: 0x9134,\n    0x90BB: 0x9130,\n    0x90C1: 0x9B31,\n    0x90C4: 0x90E4,\n    0x90CF: 0x90DF,\n    0x90D0: 0x9136,\n    0x90D1: 0x912D,\n    0x90D3: 0x9106,\n    0x90E6: 0x9148,\n    0x90E7: 0x9116,\n    0x90F8: 0x9132,\n    0x915D: 0x919E,\n    0x9166: 0x91B1,\n    0x9171: 0x91AC,\n    0x917D: 0x91C5,\n    0x917E: 0x91C3,\n    0x917F: 0x91C0,\n    0x91CA: 0x91CB,\n    0x91CC: 0x88CF,\n    0x9274: 0x9452,\n    0x92AE: 0x947E,\n    0x933E: 0x93E8,\n    0x9486: 0x91D3,\n    0x9487: 0x91D4,\n    0x9488: 0x91DD,\n    0x9489: 0x91D8,\n    0x948A: 0x91D7,\n    0x948B: 0x91D9,\n    0x948C: 0x91D5,\n    0x948D: 0x91F7,\n    0x948E: 0x91FA,\n    0x948F: 0x91E7,\n    0x9490: 0x91E4,\n    0x9491: 0x9212,\n    0x9492: 0x91E9,\n    0x9493: 0x91E3,\n    0x9494: 0x9346,\n    0x9495: 0x91F9,\n    0x9496: 0x935A,\n    0x9497: 0x91F5,\n    0x9498: 0x9203,\n    0x9499: 0x9223,\n    0x949A: 0x9208,\n    0x949B: 0x9226,\n    0x949D: 0x920D,\n    0x949E: 0x9214,\n    0x949F: 0x937E,\n    0x94A0: 0x9209,\n    0x94A1: 0x92C7,\n    0x94A2: 0x92FC,\n    0x94A3: 0x9211,\n    0x94A4: 0x9210,\n    0x94A5: 0x9470,\n    0x94A6: 0x6B3D,\n    0x94A7: 0x921E,\n    0x94A8: 0x93A2,\n    0x94A9: 0x9264,\n    0x94AA: 0x9227,\n    0x94AB: 0x9201,\n    0x94AC: 0x9225,\n    0x94AD: 0x9204,\n    0x94AE: 0x9215,\n    0x94AF: 0x9200,\n    0x94B0: 0x923A,\n    0x94B1: 0x9322,\n    0x94B2: 0x9266,\n    0x94B3: 0x9257,\n    0x94B4: 0x9237,\n    0x94B5: 0x7F3D,\n    0x94B6: 0x9233,\n    0x94B7: 0x9255,\n    0x94B8: 0x923D,\n    0x94B9: 0x9238,\n    0x94BA: 0x925E,\n    0x94BB: 0x947D,\n    0x94BC: 0x926C,\n    0x94BD: 0x926D,\n    0x94BE: 0x9240,\n    0x94BF: 0x923F,\n    0x94C0: 0x923E,\n    0x94C1: 0x9435,\n    0x94C2: 0x9251,\n    0x94C3: 0x9234,\n    0x94C4: 0x9460,\n    0x94C5: 0x925B,\n    0x94C6: 0x925A,\n    0x94C8: 0x9230,\n    0x94C9: 0x9249,\n    0x94CA: 0x9248,\n    0x94CB: 0x924D,\n    0x94CC: 0x922E,\n    0x94CD: 0x9239,\n    0x94CE: 0x9438,\n    0x94CF: 0x9276,\n    0x94D0: 0x92AC,\n    0x94D1: 0x92A0,\n    0x94D2: 0x927A,\n    0x94D3: 0x92E9,\n    0x94D4: 0x930F,\n    0x94D5: 0x92AA,\n    0x94D6: 0x92EE,\n    0x94D7: 0x92CF,\n    0x94D8: 0x92E3,\n    0x94D9: 0x9403,\n    0x94DA: 0x928D,\n    0x94DB: 0x943A,\n    0x94DC: 0x9285,\n    0x94DD: 0x92C1,\n    0x94DE: 0x92B1,\n    0x94DF: 0x92A6,\n    0x94E0: 0x93A7,\n    0x94E1: 0x9358,\n    0x94E2: 0x9296,\n    0x94E3: 0x9291,\n    0x94E4: 0x92CC,\n    0x94E5: 0x92A9,\n    0x94E6: 0x929B,\n    0x94E7: 0x93F5,\n    0x94E8: 0x9293,\n    0x94E9: 0x93A9,\n    0x94EA: 0x927F,\n    0x94EB: 0x929A,\n    0x94EC: 0x927B,\n    0x94ED: 0x9298,\n    0x94EE: 0x931A,\n    0x94EF: 0x92AB,\n    0x94F0: 0x9278,\n    0x94F1: 0x92A5,\n    0x94F2: 0x93DF,\n    0x94F3: 0x9283,\n    0x94F4: 0x940B,\n    0x94F5: 0x92A8,\n    0x94F6: 0x9280,\n    0x94F7: 0x92A3,\n    0x94F8: 0x9444,\n    0x94F9: 0x9412,\n    0x94FA: 0x92EA,\n    0x94FB: 0x92D9,\n    0x94FC: 0x9338,\n    0x94FD: 0x92F1,\n    0x94FE: 0x93C8,\n    0x94FF: 0x93D7,\n    0x9500: 0x92B7,\n    0x9501: 0x9396,\n    0x9502: 0x92F0,\n    0x9503: 0x92E5,\n    0x9504: 0x92E4,\n    0x9505: 0x934B,\n    0x9506: 0x92EF,\n    0x9507: 0x92E8,\n    0x9508: 0x93FD,\n    0x9509: 0x92BC,\n    0x950A: 0x92DD,\n    0x950B: 0x92D2,\n    0x950C: 0x92C5,\n    0x950D: 0x92F6,\n    0x950E: 0x9426,\n    0x950F: 0x9427,\n    0x9510: 0x92B3,\n    0x9511: 0x92BB,\n    0x9512: 0x92C3,\n    0x9513: 0x92DF,\n    0x9514: 0x92E6,\n    0x9515: 0x9312,\n    0x9516: 0x9306,\n    0x9517: 0x937A,\n    0x9518: 0x9369,\n    0x9519: 0x932F,\n    0x951A: 0x9328,\n    0x951B: 0x931B,\n    0x951C: 0x9321,\n    0x951D: 0x9340,\n    0x951E: 0x9301,\n    0x951F: 0x9315,\n    0x9520: 0x9329,\n    0x9521: 0x932B,\n    0x9522: 0x932E,\n    0x9523: 0x947C,\n    0x9524: 0x9318,\n    0x9525: 0x9310,\n    0x9526: 0x9326,\n    0x9527: 0x9455,\n    0x9528: 0x9341,\n    0x9529: 0x9308,\n    0x952A: 0x9343,\n    0x952B: 0x9307,\n    0x952C: 0x931F,\n    0x952D: 0x9320,\n    0x952E: 0x9375,\n    0x952F: 0x92F8,\n    0x9530: 0x9333,\n    0x9531: 0x9319,\n    0x9532: 0x9365,\n    0x9533: 0x9348,\n    0x9534: 0x9347,\n    0x9535: 0x93D8,\n    0x9536: 0x9376,\n    0x9537: 0x9354,\n    0x9538: 0x9364,\n    0x9539: 0x936C,\n    0x953A: 0x937E,\n    0x953B: 0x935B,\n    0x953C: 0x93AA,\n    0x953D: 0x9360,\n    0x953E: 0x9370,\n    0x953F: 0x9384,\n    0x9540: 0x934D,\n    0x9541: 0x9382,\n    0x9542: 0x93E4,\n    0x9543: 0x93A1,\n    0x9544: 0x9428,\n    0x9545: 0x9387,\n    0x9546: 0x93CC,\n    0x9547: 0x93AE,\n    0x9548: 0x939B,\n    0x9549: 0x9398,\n    0x954A: 0x9477,\n    0x954B: 0x9482,\n    0x954C: 0x942B,\n    0x954D: 0x93B3,\n    0x954E: 0x93BF,\n    0x954F: 0x93A6,\n    0x9550: 0x93AC,\n    0x9551: 0x938A,\n    0x9552: 0x93B0,\n    0x9553: 0x93B5,\n    0x9554: 0x944C,\n    0x9555: 0x9394,\n    0x9556: 0x93E2,\n    0x9557: 0x93DC,\n    0x9558: 0x93DD,\n    0x9559: 0x93CD,\n    0x955A: 0x93F0,\n    0x955B: 0x93DE,\n    0x955C: 0x93E1,\n    0x955D: 0x93D1,\n    0x955E: 0x93C3,\n    0x9560: 0x93D0,\n    0x9561: 0x9414,\n    0x9562: 0x9481,\n    0x9563: 0x9410,\n    0x9564: 0x93F7,\n    0x9565: 0x9465,\n    0x9566: 0x9413,\n    0x9567: 0x946D,\n    0x9568: 0x9420,\n    0x9569: 0x9479,\n    0x956A: 0x93F9,\n    0x956B: 0x9419,\n    0x956C: 0x944A,\n    0x956D: 0x9433,\n    0x956E: 0x9436,\n    0x956F: 0x9432,\n    0x9570: 0x942E,\n    0x9571: 0x943F,\n    0x9572: 0x9454,\n    0x9573: 0x9463,\n    0x9574: 0x945E,\n    0x9575: 0x9471,\n    0x9576: 0x9472,\n    0x957F: 0x9577,\n    0x95E8: 0x9580,\n    0x95E9: 0x9582,\n    0x95EA: 0x9583,\n    0x95EB: 0x9586,\n    0x95EC: 0x9588,\n    0x95ED: 0x9589,\n    0x95EE: 0x554F,\n    0x95EF: 0x95D6,\n    0x95F0: 0x958F,\n    0x95F1: 0x95C8,\n    0x95F2: 0x9591,\n    0x95F3: 0x958E,\n    0x95F4: 0x9593,\n    0x95F5: 0x9594,\n    0x95F6: 0x958C,\n    0x95F7: 0x60B6,\n    0x95F8: 0x9598,\n    0x95F9: 0x9B27,\n    0x95FA: 0x95A8,\n    0x95FB: 0x805E,\n    0x95FC: 0x95E5,\n    0x95FD: 0x95A9,\n    0x95FE: 0x95AD,\n    0x95FF: 0x95D3,\n    0x9600: 0x95A5,\n    0x9601: 0x95A3,\n    0x9602: 0x95A1,\n    0x9603: 0x95AB,\n    0x9604: 0x9B2E,\n    0x9605: 0x95B1,\n    0x9606: 0x95AC,\n    0x9607: 0x95CD,\n    0x9608: 0x95BE,\n    0x9609: 0x95B9,\n    0x960A: 0x95B6,\n    0x960B: 0x9B29,\n    0x960C: 0x95BF,\n    0x960D: 0x95BD,\n    0x960E: 0x95BB,\n    0x960F: 0x95BC,\n    0x9610: 0x95E1,\n    0x9611: 0x95CC,\n    0x9612: 0x95C3,\n    0x9613: 0x95E0,\n    0x9614: 0x95CA,\n    0x9615: 0x95CB,\n    0x9616: 0x95D4,\n    0x9617: 0x95D0,\n    0x9618: 0x95D2,\n    0x9619: 0x95D5,\n    0x961A: 0x95DE,\n    0x961B: 0x95E4,\n    0x961F: 0x968A,\n    0x9633: 0x967D,\n    0x9634: 0x9670,\n    0x9635: 0x9663,\n    0x9636: 0x968E,\n    0x9645: 0x969B,\n    0x9646: 0x9678,\n    0x9647: 0x96B4,\n    0x9648: 0x9673,\n    0x9649: 0x9658,\n    0x9655: 0x965D,\n    0x9667: 0x9689,\n    0x9668: 0x9695,\n    0x9669: 0x96AA,\n    0x968F: 0x96A8,\n    0x9690: 0x96B1,\n    0x96B6: 0x96B8,\n    0x96BD: 0x96CB,\n    0x96BE: 0x96E3,\n    0x96CF: 0x96DB,\n    0x96E0: 0x8B8E,\n    0x96F3: 0x9742,\n    0x96FE: 0x9727,\n    0x9701: 0x973D,\n    0x9709: 0x9EF4,\n    0x972D: 0x9744,\n    0x9753: 0x975A,\n    0x9759: 0x975C,\n    0x9765: 0x9768,\n    0x9791: 0x97C3,\n    0x9792: 0x97BD,\n    0x97AF: 0x97C9,\n    0x97B4: 0x97DD,\n    0x97E6: 0x97CB,\n    0x97E7: 0x97CC,\n    0x97E8: 0x97CD,\n    0x97E9: 0x97D3,\n    0x97EA: 0x97D9,\n    0x97EB: 0x97DE,\n    0x97EC: 0x97DC,\n    0x97F5: 0x97FB,\n    0x9875: 0x9801,\n    0x9876: 0x9802,\n    0x9877: 0x9803,\n    0x9878: 0x9807,\n    0x9879: 0x9805,\n    0x987A: 0x9806,\n    0x987B: 0x9808,\n    0x987C: 0x980A,\n    0x987D: 0x9811,\n    0x987E: 0x9867,\n    0x987F: 0x9813,\n    0x9880: 0x980E,\n    0x9881: 0x9812,\n    0x9882: 0x980C,\n    0x9883: 0x980F,\n    0x9884: 0x9810,\n    0x9885: 0x9871,\n    0x9886: 0x9818,\n    0x9887: 0x9817,\n    0x9888: 0x9838,\n    0x9889: 0x9821,\n    0x988A: 0x9830,\n    0x988B: 0x9832,\n    0x988C: 0x981C,\n    0x988D: 0x6F41,\n    0x988E: 0x71B2,\n    0x988F: 0x9826,\n    0x9890: 0x9824,\n    0x9891: 0x983B,\n    0x9892: 0x982E,\n    0x9893: 0x9839,\n    0x9894: 0x9837,\n    0x9895: 0x9834,\n    0x9896: 0x7A4E,\n    0x9897: 0x9846,\n    0x9898: 0x984C,\n    0x9899: 0x9852,\n    0x989A: 0x984E,\n    0x989B: 0x9853,\n    0x989C: 0x984F,\n    0x989D: 0x984D,\n    0x989E: 0x9873,\n    0x989F: 0x9862,\n    0x98A0: 0x985B,\n    0x98A1: 0x9859,\n    0x98A2: 0x9865,\n    0x98A3: 0x7E87,\n    0x98A4: 0x986B,\n    0x98A5: 0x986C,\n    0x98A6: 0x9870,\n    0x98A7: 0x9874,\n    0x98CE: 0x98A8,\n    0x98CF: 0x98BA,\n    0x98D0: 0x98AD,\n    0x98D1: 0x98AE,\n    0x98D2: 0x98AF,\n    0x98D3: 0x98B6,\n    0x98D4: 0x98B8,\n    0x98D5: 0x98BC,\n    0x98D6: 0x98BB,\n    0x98D7: 0x98C0,\n    0x98D8: 0x98C4,\n    0x98D9: 0x98C6,\n    0x98DA: 0x98C6,\n    0x98DE: 0x98DB,\n    0x98E8: 0x9957,\n    0x990D: 0x995C,\n    0x9964: 0x98E3,\n    0x9965: 0x9951,\n    0x9966: 0x98E5,\n    0x9967: 0x9933,\n    0x9968: 0x98E9,\n    0x9969: 0x993C,\n    0x996A: 0x98EA,\n    0x996B: 0x98EB,\n    0x996C: 0x98ED,\n    0x996D: 0x98EF,\n    0x996E: 0x98F2,\n    0x996F: 0x991E,\n    0x9970: 0x98FE,\n    0x9971: 0x98FD,\n    0x9972: 0x98FC,\n    0x9973: 0x98FF,\n    0x9974: 0x98F4,\n    0x9975: 0x990C,\n    0x9976: 0x9952,\n    0x9977: 0x9909,\n    0x9978: 0x9904,\n    0x9979: 0x990E,\n    0x997A: 0x9903,\n    0x997B: 0x990F,\n    0x997C: 0x9905,\n    0x997D: 0x9911,\n    0x997E: 0x9916,\n    0x997F: 0x9913,\n    0x9980: 0x9918,\n    0x9981: 0x9912,\n    0x9982: 0x9915,\n    0x9983: 0x991C,\n    0x9984: 0x991B,\n    0x9985: 0x9921,\n    0x9986: 0x9928,\n    0x9987: 0x9937,\n    0x9988: 0x994B,\n    0x9989: 0x9936,\n    0x998A: 0x993F,\n    0x998B: 0x995E,\n    0x998C: 0x9941,\n    0x998D: 0x9943,\n    0x998E: 0x993A,\n    0x998F: 0x993E,\n    0x9990: 0x9948,\n    0x9991: 0x9949,\n    0x9992: 0x9945,\n    0x9993: 0x994A,\n    0x9994: 0x994C,\n    0x9995: 0x9962,\n    0x9A6C: 0x99AC,\n    0x9A6D: 0x99AD,\n    0x9A6E: 0x99B1,\n    0x9A6F: 0x99B4,\n    0x9A70: 0x99B3,\n    0x9A71: 0x9A45,\n    0x9A72: 0x99B9,\n    0x9A73: 0x99C1,\n    0x9A74: 0x9A62,\n    0x9A75: 0x99D4,\n    0x9A76: 0x99DB,\n    0x9A77: 0x99DF,\n    0x9A78: 0x99D9,\n    0x9A79: 0x99D2,\n    0x9A7A: 0x9A36,\n    0x9A7B: 0x99D0,\n    0x9A7C: 0x99DD,\n    0x9A7D: 0x99D1,\n    0x9A7E: 0x99D5,\n    0x9A7F: 0x9A5B,\n    0x9A80: 0x99D8,\n    0x9A81: 0x9A4D,\n    0x9A82: 0x7F75,\n    0x9A83: 0x99F0,\n    0x9A84: 0x9A55,\n    0x9A85: 0x9A4A,\n    0x9A86: 0x99F1,\n    0x9A87: 0x99ED,\n    0x9A88: 0x99E2,\n    0x9A89: 0x9A6B,\n    0x9A8A: 0x9A6A,\n    0x9A8B: 0x9A01,\n    0x9A8C: 0x9A57,\n    0x9A8D: 0x9A02,\n    0x9A8E: 0x99F8,\n    0x9A8F: 0x99FF,\n    0x9A90: 0x9A0F,\n    0x9A91: 0x9A0E,\n    0x9A92: 0x9A0D,\n    0x9A93: 0x9A05,\n    0x9A94: 0x9A0C,\n    0x9A95: 0x9A4C,\n    0x9A96: 0x9A42,\n    0x9A97: 0x9A19,\n    0x9A98: 0x9A2D,\n    0x9A99: 0x9A24,\n    0x9A9A: 0x9A37,\n    0x9A9B: 0x9A16,\n    0x9A9C: 0x9A41,\n    0x9A9D: 0x9A2E,\n    0x9A9E: 0x9A2B,\n    0x9A9F: 0x9A38,\n    0x9AA0: 0x9A43,\n    0x9AA1: 0x9A3E,\n    0x9AA2: 0x9A44,\n    0x9AA3: 0x9A4F,\n    0x9AA4: 0x9A5F,\n    0x9AA5: 0x9A65,\n    0x9AA6: 0x9A66,\n    0x9AA7: 0x9A64,\n    0x9AC5: 0x9ACF,\n    0x9ACB: 0x9AD6,\n    0x9ACC: 0x9AD5,\n    0x9B13: 0x9B22,\n    0x9B47: 0x9B58,\n    0x9B49: 0x9B4E,\n    0x9C7C: 0x9B5A,\n    0x9C7D: 0x9B5B,\n    0x9C7E: 0x9B62,\n    0x9C7F: 0x9B77,\n    0x9C80: 0x9B68,\n    0x9C81: 0x9B6F,\n    0x9C82: 0x9B74,\n    0x9C84: 0x9B7A,\n    0x9C85: 0x9B81,\n    0x9C86: 0x9B83,\n    0x9C87: 0x9BF0,\n    0x9C88: 0x9C78,\n    0x9C89: 0x9B8B,\n    0x9C8A: 0x9B93,\n    0x9C8B: 0x9B92,\n    0x9C8C: 0x9B8A,\n    0x9C8D: 0x9B91,\n    0x9C8E: 0x9C5F,\n    0x9C8F: 0x9B8D,\n    0x9C90: 0x9B90,\n    0x9C91: 0x9BAD,\n    0x9C92: 0x9B9A,\n    0x9C93: 0x9BB3,\n    0x9C94: 0x9BAA,\n    0x9C95: 0x9B9E,\n    0x9C96: 0x9BA6,\n    0x9C97: 0x9C02,\n    0x9C98: 0x9B9C,\n    0x9C99: 0x9C60,\n    0x9C9A: 0x9C6D,\n    0x9C9B: 0x9BAB,\n    0x9C9C: 0x9BAE,\n    0x9C9D: 0x9BBA,\n    0x9C9E: 0x9BD7,\n    0x9C9F: 0x9C58,\n    0x9CA0: 0x9BC1,\n    0x9CA1: 0x9C7A,\n    0x9CA2: 0x9C31,\n    0x9CA3: 0x9C39,\n    0x9CA4: 0x9BC9,\n    0x9CA5: 0x9C23,\n    0x9CA6: 0x9C37,\n    0x9CA7: 0x9BC0,\n    0x9CA8: 0x9BCA,\n    0x9CA9: 0x9BC7,\n    0x9CAA: 0x9BB6,\n    0x9CAB: 0x9BFD,\n    0x9CAC: 0x9BD2,\n    0x9CAD: 0x9BD6,\n    0x9CAE: 0x9BEA,\n    0x9CAF: 0x9BD5,\n    0x9CB0: 0x9BEB,\n    0x9CB1: 0x9BE1,\n    0x9CB2: 0x9BE4,\n    0x9CB3: 0x9BE7,\n    0x9CB4: 0x9BDD,\n    0x9CB5: 0x9BE2,\n    0x9CB6: 0x9BF0,\n    0x9CB7: 0x9BDB,\n    0x9CB8: 0x9BE8,\n    0x9CB9: 0x9BF5,\n    0x9CBA: 0x9BF4,\n    0x9CBB: 0x9BD4,\n    0x9CBC: 0x9C5D,\n    0x9CBD: 0x9C08,\n    0x9CBE: 0x9C0F,\n    0x9CBF: 0x9C68,\n    0x9CC0: 0x9BF7,\n    0x9CC1: 0x9C2E,\n    0x9CC2: 0x9C03,\n    0x9CC3: 0x9C13,\n    0x9CC4: 0x9C77,\n    0x9CC5: 0x9C0D,\n    0x9CC6: 0x9C12,\n    0x9CC7: 0x9C09,\n    0x9CC8: 0x9C01,\n    0x9CC9: 0x9C42,\n    0x9CCA: 0x9BFF,\n    0x9CCB: 0x9C20,\n    0x9CCC: 0x9F07,\n    0x9CCD: 0x9C2D,\n    0x9CCE: 0x9C28,\n    0x9CCF: 0x9C25,\n    0x9CD0: 0x9C29,\n    0x9CD1: 0x9C1F,\n    0x9CD2: 0x9C1C,\n    0x9CD3: 0x9C33,\n    0x9CD4: 0x9C3E,\n    0x9CD5: 0x9C48,\n    0x9CD6: 0x9C49,\n    0x9CD7: 0x9C3B,\n    0x9CD8: 0x9C35,\n    0x9CD9: 0x9C45,\n    0x9CDB: 0x9C3C,\n    0x9CDC: 0x9C56,\n    0x9CDD: 0x9C54,\n    0x9CDE: 0x9C57,\n    0x9CDF: 0x9C52,\n    0x9CE0: 0x9C6F,\n    0x9CE1: 0x9C64,\n    0x9CE2: 0x9C67,\n    0x9CE3: 0x9C63,\n    0x9E1F: 0x9CE5,\n    0x9E20: 0x9CE9,\n    0x9E21: 0x96DE,\n    0x9E22: 0x9CF6,\n    0x9E23: 0x9CF4,\n    0x9E24: 0x9CF2,\n    0x9E25: 0x9DD7,\n    0x9E26: 0x9D09,\n    0x9E27: 0x9DAC,\n    0x9E28: 0x9D07,\n    0x9E29: 0x9D06,\n    0x9E2A: 0x9D23,\n    0x9E2B: 0x9D87,\n    0x9E2C: 0x9E15,\n    0x9E2D: 0x9D28,\n    0x9E2E: 0x9D1E,\n    0x9E2F: 0x9D26,\n    0x9E30: 0x9D12,\n    0x9E31: 0x9D1F,\n    0x9E32: 0x9D1D,\n    0x9E33: 0x9D1B,\n    0x9E34: 0x9D2C,\n    0x9E35: 0x9D15,\n    0x9E36: 0x9DE5,\n    0x9E37: 0x9DD9,\n    0x9E38: 0x9D2F,\n    0x9E39: 0x9D30,\n    0x9E3A: 0x9D42,\n    0x9E3B: 0x9D34,\n    0x9E3C: 0x9D43,\n    0x9E3D: 0x9D3F,\n    0x9E3E: 0x9E1E,\n    0x9E3F: 0x9D3B,\n    0x9E40: 0x9D50,\n    0x9E41: 0x9D53,\n    0x9E42: 0x9E1D,\n    0x9E43: 0x9D51,\n    0x9E44: 0x9D60,\n    0x9E45: 0x9D5D,\n    0x9E46: 0x9D52,\n    0x9E47: 0x9DF3,\n    0x9E48: 0x9D5C,\n    0x9E49: 0x9D61,\n    0x9E4A: 0x9D72,\n    0x9E4B: 0x9D93,\n    0x9E4C: 0x9D6A,\n    0x9E4D: 0x9DA4,\n    0x9E4E: 0x9D6F,\n    0x9E4F: 0x9D6C,\n    0x9E50: 0x9D6E,\n    0x9E51: 0x9D89,\n    0x9E52: 0x9D8A,\n    0x9E53: 0x9D77,\n    0x9E54: 0x9DEB,\n    0x9E55: 0x9D98,\n    0x9E56: 0x9DA1,\n    0x9E57: 0x9D9A,\n    0x9E58: 0x9DBB,\n    0x9E59: 0x9D96,\n    0x9E5A: 0x9DBF,\n    0x9E5B: 0x9DA5,\n    0x9E5C: 0x9DA9,\n    0x9E5D: 0x9DCA,\n    0x9E5E: 0x9DC2,\n    0x9E5F: 0x9DB2,\n    0x9E60: 0x9DB9,\n    0x9E61: 0x9DBA,\n    0x9E62: 0x9DC1,\n    0x9E63: 0x9DBC,\n    0x9E64: 0x9DB4,\n    0x9E65: 0x9DD6,\n    0x9E66: 0x9E1A,\n    0x9E67: 0x9DD3,\n    0x9E68: 0x9DDA,\n    0x9E69: 0x9DEF,\n    0x9E6A: 0x9DE6,\n    0x9E6B: 0x9DF2,\n    0x9E6C: 0x9DF8,\n    0x9E6D: 0x9DFA,\n    0x9E6F: 0x9E07,\n    0x9E70: 0x9DF9,\n    0x9E71: 0x9E0C,\n    0x9E72: 0x9E0F,\n    0x9E73: 0x9E1B,\n    0x9E74: 0x9E18,\n    0x9E7E: 0x9E7A,\n    0x9EA6: 0x9EA5,\n    0x9EB8: 0x9EA9,\n    0x9EC4: 0x9EC3,\n    0x9EC9: 0x9ECC,\n    0x9EE1: 0x9EF6,\n    0x9EE9: 0x9EF7,\n    0x9EEA: 0x9EF2,\n    0x9EFE: 0x9EFD,\n    0x9F0B: 0x9EFF,\n    0x9F0C: 0x9F02,\n    0x9F0D: 0x9F09,\n    0x9F17: 0x9780,\n    0x9F39: 0x9F34,\n    0x9F44: 0x9F47,\n    0x9F50: 0x9F4A,\n    0x9F51: 0x9F4F,\n    0x9F7F: 0x9F52,\n    0x9F80: 0x9F54,\n    0x9F81: 0x9F55,\n    0x9F82: 0x9F57,\n    0x9F83: 0x9F5F,\n    0x9F84: 0x9F61,\n    0x9F85: 0x9F59,\n    0x9F86: 0x9F60,\n    0x9F87: 0x9F5C,\n    0x9F88: 0x9F66,\n    0x9F89: 0x9F6C,\n    0x9F8A: 0x9F6A,\n    0x9F8B: 0x9F72,\n    0x9F8C: 0x9F77,\n    0x9F99: 0x9F8D,\n    0x9F9A: 0x9F94,\n    0x9F9B: 0x9F95,\n    0x9F9F: 0x9F9C,\n}\n\nTrad2Simp_Table = {\n    0x2022: 0xFF0E,\n    0x2024: 0x02D9,\n    0x2025: 0x00A8,\n    0x2027: 0xFF0E,\n    0x2032: 0xFF07,\n    0x300C: 0x201C,\n    0x300D: 0x201D,\n    0x300E: 0x2018,\n    0x300F: 0x2019,\n    0x301E: 0x2033,\n    0x4E1F: 0x4E22,\n    0x4E26: 0x5E76,\n    0x4E7E: 0x5E72,\n    0x4E82: 0x4E71,\n    0x4E99: 0x4E98,\n    0x4E9E: 0x4E9A,\n    0x4F15: 0x592B,\n    0x4F47: 0x4F2B,\n    0x4F48: 0x5E03,\n    0x4F54: 0x5360,\n    0x4F58: 0x7572,\n    0x4F75: 0x5E76,\n    0x4F86: 0x6765,\n    0x4F96: 0x4ED1,\n    0x4FB6: 0x4FA3,\n    0x4FB7: 0x5C40,\n    0x4FC1: 0x4FE3,\n    0x4FC2: 0x7CFB,\n    0x4FE0: 0x4FA0,\n    0x5000: 0x4F25,\n    0x5006: 0x4FE9,\n    0x5009: 0x4ED3,\n    0x500B: 0x4E2A,\n    0x5011: 0x4EEC,\n    0x5016: 0x5E78,\n    0x5023: 0x4EFF,\n    0x502B: 0x4F26,\n    0x5049: 0x4F1F,\n    0x5074: 0x4FA7,\n    0x5075: 0x4FA6,\n    0x5078: 0x5077,\n    0x507A: 0x54B1,\n    0x507D: 0x4F2A,\n    0x5091: 0x6770,\n    0x5096: 0x4F27,\n    0x5098: 0x4F1E,\n    0x5099: 0x5907,\n    0x509A: 0x6548,\n    0x50A2: 0x5BB6,\n    0x50AD: 0x4F63,\n    0x50AF: 0x506C,\n    0x50B3: 0x4F20,\n    0x50B4: 0x4F1B,\n    0x50B5: 0x503A,\n    0x50B7: 0x4F24,\n    0x50BE: 0x503E,\n    0x50C2: 0x507B,\n    0x50C5: 0x4EC5,\n    0x50C9: 0x4F65,\n    0x50D1: 0x4FA8,\n    0x50D5: 0x4EC6,\n    0x50DE: 0x4F2A,\n    0x50E5: 0x4FA5,\n    0x50E8: 0x507E,\n    0x50F1: 0x96C7,\n    0x50F9: 0x4EF7,\n    0x5100: 0x4EEA,\n    0x5102: 0x4FAC,\n    0x5104: 0x4EBF,\n    0x5105: 0x5F53,\n    0x5108: 0x4FA9,\n    0x5109: 0x4FED,\n    0x5110: 0x50A7,\n    0x5114: 0x4FE6,\n    0x5115: 0x4FAA,\n    0x5118: 0x5C3D,\n    0x511F: 0x507F,\n    0x512A: 0x4F18,\n    0x5132: 0x50A8,\n    0x5137: 0x4FEA,\n    0x5138: 0x7F57,\n    0x5139: 0x6512,\n    0x513A: 0x50A9,\n    0x513B: 0x50A5,\n    0x513C: 0x4FE8,\n    0x5147: 0x51F6,\n    0x514C: 0x5151,\n    0x5152: 0x513F,\n    0x5157: 0x5156,\n    0x5167: 0x5185,\n    0x5169: 0x4E24,\n    0x518A: 0x518C,\n    0x51AA: 0x5E42,\n    0x51C3: 0x6D82,\n    0x51CD: 0x51BB,\n    0x51DC: 0x51DB,\n    0x51DF: 0x6E0E,\n    0x51E6: 0x5904,\n    0x51F1: 0x51EF,\n    0x51F4: 0x51ED,\n    0x5225: 0x522B,\n    0x522A: 0x5220,\n    0x5244: 0x522D,\n    0x5247: 0x5219,\n    0x524B: 0x514B,\n    0x5257: 0x522C,\n    0x525B: 0x521A,\n    0x525D: 0x5265,\n    0x526E: 0x5250,\n    0x5274: 0x5240,\n    0x5275: 0x521B,\n    0x5277: 0x94F2,\n    0x5283: 0x5212,\n    0x5284: 0x672D,\n    0x5287: 0x5267,\n    0x5289: 0x5218,\n    0x528A: 0x523D,\n    0x528C: 0x523F,\n    0x528D: 0x5251,\n    0x5291: 0x5242,\n    0x5292: 0x5251,\n    0x52C1: 0x52B2,\n    0x52D5: 0x52A8,\n    0x52D7: 0x52D6,\n    0x52D9: 0x52A1,\n    0x52DB: 0x52CB,\n    0x52DD: 0x80DC,\n    0x52DE: 0x52B3,\n    0x52E2: 0x52BF,\n    0x52E3: 0x7EE9,\n    0x52E6: 0x527F,\n    0x52E9: 0x52DA,\n    0x52F1: 0x52A2,\n    0x52F3: 0x52CB,\n    0x52F5: 0x52B1,\n    0x52F8: 0x529D,\n    0x52FB: 0x5300,\n    0x532D: 0x5326,\n    0x532F: 0x6C47,\n    0x5331: 0x532E,\n    0x5332: 0x5941,\n    0x5333: 0x5941,\n    0x5335: 0x691F,\n    0x5340: 0x533A,\n    0x5354: 0x534F,\n    0x5379: 0x6064,\n    0x537B: 0x5374,\n    0x5399: 0x538D,\n    0x539B: 0x5385,\n    0x53A0: 0x5395,\n    0x53A4: 0x5386,\n    0x53AD: 0x538C,\n    0x53B0: 0x5382,\n    0x53B2: 0x5389,\n    0x53B4: 0x53A3,\n    0x53C3: 0x53C2,\n    0x53E2: 0x4E1B,\n    0x5412: 0x54A4,\n    0x5433: 0x5434,\n    0x5442: 0x5415,\n    0x54BC: 0x5459,\n    0x54E1: 0x5458,\n    0x54E2: 0x5494,\n    0x5504: 0x5457,\n    0x5515: 0x5523,\n    0x551A: 0x5423,\n    0x5538: 0x5FF5,\n    0x554F: 0x95EE,\n    0x5553: 0x542F,\n    0x5557: 0x5556,\n    0x555E: 0x54D1,\n    0x555F: 0x542F,\n    0x5562: 0x5521,\n    0x5563: 0x8854,\n    0x5592: 0x54B1,\n    0x559A: 0x5524,\n    0x55A6: 0x5CA9,\n    0x55AA: 0x4E27,\n    0x55AB: 0x5403,\n    0x55AC: 0x4E54,\n    0x55AE: 0x5355,\n    0x55B2: 0x54DF,\n    0x55C6: 0x545B,\n    0x55C7: 0x556C,\n    0x55CA: 0x551D,\n    0x55CE: 0x5417,\n    0x55DA: 0x545C,\n    0x55E9: 0x5522,\n    0x55F6: 0x54D4,\n    0x5606: 0x53F9,\n    0x560D: 0x55BD,\n    0x5614: 0x5455,\n    0x5616: 0x5567,\n    0x5617: 0x5C1D,\n    0x561C: 0x551B,\n    0x5629: 0x54D7,\n    0x562E: 0x5520,\n    0x562F: 0x5578,\n    0x5630: 0x53FD,\n    0x5635: 0x54D3,\n    0x5638: 0x5452,\n    0x563D: 0x5574,\n    0x5641: 0x6076,\n    0x5645: 0x54B4,\n    0x5653: 0x5618,\n    0x565D: 0x549D,\n    0x5660: 0x54D2,\n    0x5665: 0x54DD,\n    0x5666: 0x54D5,\n    0x566F: 0x55F3,\n    0x5672: 0x54D9,\n    0x5674: 0x55B7,\n    0x5678: 0x5428,\n    0x5679: 0x5F53,\n    0x5680: 0x549B,\n    0x5687: 0x5413,\n    0x568C: 0x54DC,\n    0x5690: 0x5C1D,\n    0x5695: 0x565C,\n    0x5699: 0x556E,\n    0x56A5: 0x54BD,\n    0x56A6: 0x5456,\n    0x56A8: 0x5499,\n    0x56AE: 0x5411,\n    0x56B2: 0x4EB8,\n    0x56B3: 0x55BE,\n    0x56B4: 0x4E25,\n    0x56B6: 0x5624,\n    0x56BB: 0x56A3,\n    0x56C0: 0x556D,\n    0x56C1: 0x55EB,\n    0x56C2: 0x56A3,\n    0x56C5: 0x5181,\n    0x56C8: 0x5453,\n    0x56C9: 0x5570,\n    0x56CC: 0x82CF,\n    0x56D1: 0x5631,\n    0x56D8: 0x56DE,\n    0x56EA: 0x56F1,\n    0x56EC: 0x56DE,\n    0x56EF: 0x56FD,\n    0x5707: 0x56F5,\n    0x570B: 0x56FD,\n    0x570D: 0x56F4,\n    0x5712: 0x56ED,\n    0x5713: 0x5706,\n    0x5716: 0x56FE,\n    0x5718: 0x56E2,\n    0x5770: 0x57A7,\n    0x57B5: 0x57EF,\n    0x57BB: 0x575D,\n    0x57E1: 0x57AD,\n    0x57F0: 0x91C7,\n    0x57F7: 0x6267,\n    0x5805: 0x575A,\n    0x580A: 0x57A9,\n    0x5816: 0x57B4,\n    0x581D: 0x57DA,\n    0x5826: 0x9636,\n    0x582F: 0x5C27,\n    0x5831: 0x62A5,\n    0x5834: 0x573A,\n    0x583F: 0x78B1,\n    0x584A: 0x5757,\n    0x584B: 0x8314,\n    0x584F: 0x57B2,\n    0x5852: 0x57D8,\n    0x5857: 0x6D82,\n    0x585A: 0x51A2,\n    0x5862: 0x575E,\n    0x5864: 0x57D9,\n    0x5872: 0x573A,\n    0x5875: 0x5C18,\n    0x5879: 0x5811,\n    0x587C: 0x7816,\n    0x588A: 0x57AB,\n    0x589C: 0x5760,\n    0x589D: 0x7857,\n    0x58AE: 0x5815,\n    0x58B0: 0x575B,\n    0x58B3: 0x575F,\n    0x58B6: 0x57AF,\n    0x58BB: 0x5899,\n    0x58BE: 0x57A6,\n    0x58C7: 0x575B,\n    0x58CB: 0x57B1,\n    0x58CE: 0x57D9,\n    0x58D3: 0x538B,\n    0x58D8: 0x5792,\n    0x58D9: 0x5739,\n    0x58DA: 0x5786,\n    0x58DC: 0x575B,\n    0x58DE: 0x574F,\n    0x58DF: 0x5784,\n    0x58E0: 0x5784,\n    0x58E2: 0x575C,\n    0x58E9: 0x575D,\n    0x58EA: 0x5846,\n    0x58EF: 0x58EE,\n    0x58FA: 0x58F6,\n    0x58FC: 0x58F8,\n    0x58FD: 0x5BFF,\n    0x5900: 0x5BFF,\n    0x5920: 0x591F,\n    0x5922: 0x68A6,\n    0x5925: 0x4F19,\n    0x593E: 0x5939,\n    0x5950: 0x5942,\n    0x5967: 0x5965,\n    0x5969: 0x5941,\n    0x596A: 0x593A,\n    0x596E: 0x594B,\n    0x599D: 0x5986,\n    0x59CD: 0x59D7,\n    0x59E6: 0x5978,\n    0x59EA: 0x4F84,\n    0x5A1B: 0x5A31,\n    0x5A2C: 0x59A9,\n    0x5A41: 0x5A04,\n    0x5A66: 0x5987,\n    0x5A6C: 0x6DEB,\n    0x5A6D: 0x5A05,\n    0x5AA7: 0x5A32,\n    0x5AAE: 0x5077,\n    0x5AAF: 0x59AB,\n    0x5ABC: 0x5AAA,\n    0x5ABD: 0x5988,\n    0x5ACB: 0x8885,\n    0x5AD7: 0x59AA,\n    0x5AF5: 0x59A9,\n    0x5AFA: 0x5A34,\n    0x5AFB: 0x5A34,\n    0x5AFF: 0x5A73,\n    0x5B00: 0x59AB,\n    0x5B08: 0x5A06,\n    0x5B0B: 0x5A75,\n    0x5B0C: 0x5A07,\n    0x5B19: 0x5AF1,\n    0x5B1D: 0x8885,\n    0x5B21: 0x5AD2,\n    0x5B24: 0x5B37,\n    0x5B2A: 0x5AD4,\n    0x5B2D: 0x5976,\n    0x5B30: 0x5A74,\n    0x5B38: 0x5A76,\n    0x5B3E: 0x61D2,\n    0x5B43: 0x5A18,\n    0x5B4C: 0x5A08,\n    0x5B6B: 0x5B59,\n    0x5B78: 0x5B66,\n    0x5B7F: 0x5B6A,\n    0x5BAE: 0x5BAB,\n    0x5BE2: 0x5BDD,\n    0x5BE6: 0x5B9E,\n    0x5BE7: 0x5B81,\n    0x5BE9: 0x5BA1,\n    0x5BEB: 0x5199,\n    0x5BEC: 0x5BBD,\n    0x5BF5: 0x5BA0,\n    0x5BF6: 0x5B9D,\n    0x5C05: 0x514B,\n    0x5C07: 0x5C06,\n    0x5C08: 0x4E13,\n    0x5C0B: 0x5BFB,\n    0x5C0D: 0x5BF9,\n    0x5C0E: 0x5BFC,\n    0x5C32: 0x5C34,\n    0x5C37: 0x5C34,\n    0x5C46: 0x5C4A,\n    0x5C4D: 0x5C38,\n    0x5C53: 0x5C43,\n    0x5C5C: 0x5C49,\n    0x5C62: 0x5C61,\n    0x5C64: 0x5C42,\n    0x5C68: 0x5C66,\n    0x5C6C: 0x5C5E,\n    0x5C6D: 0x5C43,\n    0x5CA1: 0x5188,\n    0x5CF4: 0x5C98,\n    0x5CF6: 0x5C9B,\n    0x5CFD: 0x5CE1,\n    0x5D0D: 0x5D03,\n    0x5D10: 0x6606,\n    0x5D11: 0x6606,\n    0x5D17: 0x5C97,\n    0x5D19: 0x4ED1,\n    0x5D20: 0x5CBD,\n    0x5D22: 0x5CE5,\n    0x5D2C: 0x5CBD,\n    0x5D33: 0x5D5B,\n    0x5D50: 0x5C9A,\n    0x5D57: 0x5C81,\n    0x5D81: 0x5D5D,\n    0x5D84: 0x5D2D,\n    0x5D87: 0x5C96,\n    0x5D94: 0x5D5A,\n    0x5D97: 0x5D02,\n    0x5DA0: 0x5CE4,\n    0x5DA2: 0x5CE3,\n    0x5DA7: 0x5CC4,\n    0x5DA8: 0x5CC3,\n    0x5DAE: 0x5D04,\n    0x5DB4: 0x5C99,\n    0x5DB8: 0x5D58,\n    0x5DBA: 0x5CAD,\n    0x5DBC: 0x5C7F,\n    0x5DBD: 0x5CB3,\n    0x5DCB: 0x5CBF,\n    0x5DD2: 0x5CE6,\n    0x5DD4: 0x5DC5,\n    0x5DD6: 0x5CA9,\n    0x5DF0: 0x5DEF,\n    0x5DF9: 0x537A,\n    0x5E25: 0x5E05,\n    0x5E2B: 0x5E08,\n    0x5E33: 0x5E10,\n    0x5E36: 0x5E26,\n    0x5E40: 0x5E27,\n    0x5E43: 0x5E0F,\n    0x5E57: 0x5E3C,\n    0x5E58: 0x5E3B,\n    0x5E5F: 0x5E1C,\n    0x5E63: 0x5E01,\n    0x5E6B: 0x5E2E,\n    0x5E6C: 0x5E31,\n    0x5E71: 0x8955,\n    0x5E79: 0x5E72,\n    0x5E7E: 0x51E0,\n    0x5EAB: 0x5E93,\n    0x5EC1: 0x5395,\n    0x5EC2: 0x53A2,\n    0x5EC4: 0x53A9,\n    0x5EC8: 0x53A6,\n    0x5ECE: 0x5EBC,\n    0x5ED5: 0x836B,\n    0x5EDA: 0x53A8,\n    0x5EDD: 0x53AE,\n    0x5EDF: 0x5E99,\n    0x5EE0: 0x5382,\n    0x5EE1: 0x5E91,\n    0x5EE2: 0x5E9F,\n    0x5EE3: 0x5E7F,\n    0x5EE9: 0x5EEA,\n    0x5EEC: 0x5E90,\n    0x5EF3: 0x5385,\n    0x5EFB: 0x56DE,\n    0x5EFC: 0x4E43,\n    0x5F14: 0x540A,\n    0x5F33: 0x5F2A,\n    0x5F35: 0x5F20,\n    0x5F37: 0x5F3A,\n    0x5F46: 0x522B,\n    0x5F48: 0x5F39,\n    0x5F4A: 0x5F3A,\n    0x5F4C: 0x5F25,\n    0x5F4E: 0x5F2F,\n    0x5F59: 0x6C47,\n    0x5F5C: 0x5F5D,\n    0x5F5E: 0x5F5D,\n    0x5F60: 0x5F5F,\n    0x5F65: 0x5F66,\n    0x5F6B: 0x96D5,\n    0x5F7F: 0x4F5B,\n    0x5F8C: 0x540E,\n    0x5F91: 0x5F84,\n    0x5F9E: 0x4ECE,\n    0x5FA0: 0x5F95,\n    0x5FA9: 0x590D,\n    0x5FAC: 0x4EFF,\n    0x5FB4: 0x5F81,\n    0x5FB5: 0x5F81,\n    0x5FB9: 0x5F7B,\n    0x6046: 0x6052,\n    0x6065: 0x803B,\n    0x6085: 0x60A6,\n    0x60B5: 0x6005,\n    0x60B6: 0x95F7,\n    0x60BD: 0x51C4,\n    0x60E1: 0x6076,\n    0x60F1: 0x607C,\n    0x60F2: 0x607D,\n    0x60FB: 0x607B,\n    0x611B: 0x7231,\n    0x611C: 0x60EC,\n    0x6128: 0x60AB,\n    0x6134: 0x6006,\n    0x6137: 0x607A,\n    0x613E: 0x5FFE,\n    0x6144: 0x6817,\n    0x6147: 0x6BB7,\n    0x614B: 0x6001,\n    0x614D: 0x6120,\n    0x6158: 0x60E8,\n    0x6159: 0x60ED,\n    0x615A: 0x60ED,\n    0x615F: 0x6078,\n    0x6163: 0x60EF,\n    0x6164: 0x60AB,\n    0x616A: 0x6004,\n    0x616B: 0x6002,\n    0x616E: 0x8651,\n    0x6173: 0x60AD,\n    0x6174: 0x6151,\n    0x6176: 0x5E86,\n    0x617C: 0x621A,\n    0x617E: 0x6B32,\n    0x6182: 0x5FE7,\n    0x618A: 0x60EB,\n    0x6190: 0x601C,\n    0x6191: 0x51ED,\n    0x6192: 0x6126,\n    0x6196: 0x616D,\n    0x619A: 0x60EE,\n    0x61A4: 0x6124,\n    0x61AB: 0x60AF,\n    0x61AE: 0x6003,\n    0x61B2: 0x5BAA,\n    0x61B6: 0x5FC6,\n    0x61C7: 0x6073,\n    0x61C9: 0x5E94,\n    0x61CC: 0x603F,\n    0x61CD: 0x61D4,\n    0x61D5: 0x6079,\n    0x61DE: 0x8499,\n    0x61DF: 0x603C,\n    0x61E3: 0x61D1,\n    0x61E8: 0x6079,\n    0x61F2: 0x60E9,\n    0x61F6: 0x61D2,\n    0x61F7: 0x6000,\n    0x61F8: 0x60AC,\n    0x61FA: 0x5FCF,\n    0x61FC: 0x60E7,\n    0x61FD: 0x6B22,\n    0x61FE: 0x6151,\n    0x6200: 0x604B,\n    0x6207: 0x6206,\n    0x6214: 0x620B,\n    0x6227: 0x6217,\n    0x6229: 0x622C,\n    0x622F: 0x620F,\n    0x6230: 0x6218,\n    0x6232: 0x620F,\n    0x6236: 0x6237,\n    0x6261: 0x6266,\n    0x62CB: 0x629B,\n    0x633E: 0x631F,\n    0x6368: 0x820D,\n    0x636B: 0x626A,\n    0x6372: 0x5377,\n    0x6383: 0x626B,\n    0x6384: 0x62A1,\n    0x6397: 0x631C,\n    0x6399: 0x6323,\n    0x639B: 0x6302,\n    0x63A1: 0x91C7,\n    0x63C0: 0x62E3,\n    0x63DA: 0x626C,\n    0x63DB: 0x6362,\n    0x63EE: 0x6325,\n    0x63F9: 0x80CC,\n    0x6406: 0x6784,\n    0x6407: 0x63FF,\n    0x640D: 0x635F,\n    0x6416: 0x6447,\n    0x6417: 0x6363,\n    0x6436: 0x62A2,\n    0x643E: 0x69A8,\n    0x6451: 0x63B4,\n    0x645C: 0x63BC,\n    0x645F: 0x6402,\n    0x6463: 0x63F8,\n    0x646F: 0x631A,\n    0x6473: 0x62A0,\n    0x6476: 0x629F,\n    0x647A: 0x6298,\n    0x647B: 0x63BA,\n    0x6488: 0x635E,\n    0x648F: 0x6326,\n    0x6490: 0x6491,\n    0x6493: 0x6320,\n    0x649A: 0x637B,\n    0x649F: 0x6322,\n    0x64A3: 0x63B8,\n    0x64A5: 0x62E8,\n    0x64AB: 0x629A,\n    0x64B2: 0x6251,\n    0x64B3: 0x63FF,\n    0x64BB: 0x631E,\n    0x64BE: 0x631D,\n    0x64BF: 0x6361,\n    0x64C1: 0x62E5,\n    0x64C4: 0x63B3,\n    0x64C7: 0x62E9,\n    0x64CA: 0x51FB,\n    0x64CB: 0x6321,\n    0x64D4: 0x62C5,\n    0x64D5: 0x643A,\n    0x64DA: 0x636E,\n    0x64E0: 0x6324,\n    0x64E1: 0x62AC,\n    0x64E3: 0x6363,\n    0x64E7: 0x4E3E,\n    0x64EC: 0x62DF,\n    0x64EF: 0x6448,\n    0x64F0: 0x62E7,\n    0x64F1: 0x6401,\n    0x64F2: 0x63B7,\n    0x64F4: 0x6269,\n    0x64F7: 0x64B7,\n    0x64FA: 0x6446,\n    0x64FB: 0x64DE,\n    0x64FC: 0x64B8,\n    0x64FE: 0x6270,\n    0x6504: 0x6445,\n    0x6506: 0x64B5,\n    0x650F: 0x62E2,\n    0x6514: 0x62E6,\n    0x6516: 0x6484,\n    0x6519: 0x6400,\n    0x651B: 0x64BA,\n    0x651C: 0x643A,\n    0x651D: 0x6444,\n    0x6522: 0x6512,\n    0x6523: 0x631B,\n    0x6524: 0x644A,\n    0x6529: 0x6321,\n    0x652A: 0x6405,\n    0x652C: 0x63FD,\n    0x6537: 0x8003,\n    0x654D: 0x53D9,\n    0x6557: 0x8D25,\n    0x6558: 0x53D9,\n    0x656D: 0x626C,\n    0x6575: 0x654C,\n    0x6578: 0x6570,\n    0x657A: 0x9A71,\n    0x6582: 0x655B,\n    0x6583: 0x6BD9,\n    0x6595: 0x6593,\n    0x65AC: 0x65A9,\n    0x65B7: 0x65AD,\n    0x65BC: 0x4E8E,\n    0x65C2: 0x65D7,\n    0x6607: 0x5347,\n    0x6642: 0x65F6,\n    0x6649: 0x664B,\n    0x665D: 0x663C,\n    0x6688: 0x6655,\n    0x6689: 0x6656,\n    0x6698: 0x65F8,\n    0x66A2: 0x7545,\n    0x66AB: 0x6682,\n    0x66B1: 0x6635,\n    0x66C4: 0x6654,\n    0x66C6: 0x5386,\n    0x66C7: 0x6619,\n    0x66C9: 0x6653,\n    0x66CF: 0x5411,\n    0x66D6: 0x66A7,\n    0x66E0: 0x65F7,\n    0x66E1: 0x53E0,\n    0x66E8: 0x663D,\n    0x66EC: 0x6652,\n    0x66F8: 0x4E66,\n    0x6703: 0x4F1A,\n    0x6727: 0x80E7,\n    0x6771: 0x4E1C,\n    0x67B4: 0x62D0,\n    0x67F5: 0x6805,\n    0x67FA: 0x62D0,\n    0x687F: 0x6746,\n    0x6894: 0x6800,\n    0x6898: 0x67A7,\n    0x689D: 0x6761,\n    0x689F: 0x67AD,\n    0x68B1: 0x6346,\n    0x68C4: 0x5F03,\n    0x68D6: 0x67A8,\n    0x68D7: 0x67A3,\n    0x68DF: 0x680B,\n    0x68E7: 0x6808,\n    0x68EC: 0x684A,\n    0x68F2: 0x6816,\n    0x68F6: 0x68BE,\n    0x690F: 0x6860,\n    0x694A: 0x6768,\n    0x6953: 0x67AB,\n    0x6968: 0x6862,\n    0x696D: 0x4E1A,\n    0x6975: 0x6781,\n    0x69A6: 0x5E72,\n    0x69AA: 0x6769,\n    0x69AE: 0x8363,\n    0x69BF: 0x6864,\n    0x69C3: 0x76D8,\n    0x69CB: 0x6784,\n    0x69CD: 0x67AA,\n    0x69D3: 0x6760,\n    0x69E7: 0x6920,\n    0x69E8: 0x6901,\n    0x69F3: 0x6868,\n    0x69FC: 0x89C4,\n    0x6A01: 0x6869,\n    0x6A02: 0x4E50,\n    0x6A05: 0x679E,\n    0x6A11: 0x6881,\n    0x6A13: 0x697C,\n    0x6A19: 0x6807,\n    0x6A1E: 0x67A2,\n    0x6A23: 0x6837,\n    0x6A37: 0x4E1B,\n    0x6A38: 0x6734,\n    0x6A39: 0x6811,\n    0x6A3A: 0x6866,\n    0x6A48: 0x6861,\n    0x6A4B: 0x6865,\n    0x6A5F: 0x673A,\n    0x6A62: 0x692D,\n    0x6A6B: 0x6A2A,\n    0x6A70: 0x69D4,\n    0x6A81: 0x6AA9,\n    0x6A89: 0x67FD,\n    0x6A94: 0x6863,\n    0x6A9C: 0x6867,\n    0x6A9F: 0x69DA,\n    0x6AA2: 0x68C0,\n    0x6AA3: 0x6A2F,\n    0x6AAE: 0x68BC,\n    0x6AAF: 0x53F0,\n    0x6AB3: 0x69DF,\n    0x6AB8: 0x67E0,\n    0x6ABB: 0x69DB,\n    0x6ABE: 0x82D8,\n    0x6AC2: 0x68F9,\n    0x6AC3: 0x67DC,\n    0x6AD3: 0x6A79,\n    0x6ADA: 0x6988,\n    0x6ADB: 0x6809,\n    0x6ADD: 0x691F,\n    0x6ADE: 0x6A7C,\n    0x6ADF: 0x680E,\n    0x6AE5: 0x6A71,\n    0x6AE7: 0x69E0,\n    0x6AE8: 0x680C,\n    0x6AEA: 0x67A5,\n    0x6AEB: 0x6A65,\n    0x6AEC: 0x6987,\n    0x6AF3: 0x680A,\n    0x6AF8: 0x6989,\n    0x6AFA: 0x68C2,\n    0x6AFB: 0x6A31,\n    0x6B04: 0x680F,\n    0x6B0A: 0x6743,\n    0x6B0F: 0x6924,\n    0x6B11: 0x6512,\n    0x6B12: 0x683E,\n    0x6B16: 0x6984,\n    0x6B1E: 0x68C2,\n    0x6B3D: 0x94A6,\n    0x6B4E: 0x53F9,\n    0x6B50: 0x6B27,\n    0x6B57: 0x5578,\n    0x6B5B: 0x655B,\n    0x6B5F: 0x6B24,\n    0x6B61: 0x6B22,\n    0x6B72: 0x5C81,\n    0x6B77: 0x5386,\n    0x6B78: 0x5F52,\n    0x6B7F: 0x6B81,\n    0x6B98: 0x6B8B,\n    0x6B9E: 0x6B92,\n    0x6BA4: 0x6B87,\n    0x6BAB: 0x6B9A,\n    0x6BAE: 0x6B93,\n    0x6BAF: 0x6BA1,\n    0x6BB2: 0x6B7C,\n    0x6BBA: 0x6740,\n    0x6BBC: 0x58F3,\n    0x6BC0: 0x6BC1,\n    0x6BC6: 0x6BB4,\n    0x6BC9: 0x533B,\n    0x6BE7: 0x7ED2,\n    0x6BEC: 0x7403,\n    0x6BFF: 0x6BF5,\n    0x6C02: 0x7266,\n    0x6C08: 0x6BE1,\n    0x6C0A: 0x6BE1,\n    0x6C0C: 0x6C07,\n    0x6C23: 0x6C14,\n    0x6C2B: 0x6C22,\n    0x6C2C: 0x6C29,\n    0x6C33: 0x6C32,\n    0x6C39: 0x51FC,\n    0x6C3E: 0x6CDB,\n    0x6C4E: 0x6CDB,\n    0x6C59: 0x6C61,\n    0x6C5A: 0x6C61,\n    0x6C7A: 0x51B3,\n    0x6C8D: 0x51B1,\n    0x6C92: 0x6CA1,\n    0x6C96: 0x51B2,\n    0x6CC1: 0x51B5,\n    0x6D29: 0x6CC4,\n    0x6D36: 0x6C79,\n    0x6D79: 0x6D43,\n    0x6D87: 0x6CFE,\n    0x6D96: 0x8385,\n    0x6DBC: 0x51C9,\n    0x6DD2: 0x51C4,\n    0x6DDA: 0x6CEA,\n    0x6DE5: 0x6E0C,\n    0x6DE8: 0x51C0,\n    0x6DE9: 0x51CC,\n    0x6DEA: 0x6CA6,\n    0x6DF5: 0x6E0A,\n    0x6DF6: 0x6D9E,\n    0x6DFA: 0x6D45,\n    0x6E19: 0x6DA3,\n    0x6E1B: 0x51CF,\n    0x6E22: 0x6CA8,\n    0x6E26: 0x6DA1,\n    0x6E2C: 0x6D4B,\n    0x6E3E: 0x6D51,\n    0x6E4A: 0x51D1,\n    0x6E5E: 0x6D48,\n    0x6E63: 0x610D,\n    0x6E67: 0x6D8C,\n    0x6E6F: 0x6C64,\n    0x6E88: 0x6CA9,\n    0x6E96: 0x51C6,\n    0x6E9D: 0x6C9F,\n    0x6EAB: 0x6E29,\n    0x6EAE: 0x6D49,\n    0x6EB3: 0x6DA2,\n    0x6EBC: 0x6E7F,\n    0x6EC4: 0x6CA7,\n    0x6EC5: 0x706D,\n    0x6ECC: 0x6DA4,\n    0x6ECE: 0x8365,\n    0x6ED9: 0x6C47,\n    0x6EEC: 0x6CAA,\n    0x6EEF: 0x6EDE,\n    0x6EF2: 0x6E17,\n    0x6EF7: 0x5364,\n    0x6EF8: 0x6D52,\n    0x6EFB: 0x6D50,\n    0x6EFE: 0x6EDA,\n    0x6EFF: 0x6EE1,\n    0x6F01: 0x6E14,\n    0x6F0A: 0x6E87,\n    0x6F1A: 0x6CA4,\n    0x6F22: 0x6C49,\n    0x6F23: 0x6D9F,\n    0x6F2C: 0x6E0D,\n    0x6F32: 0x6DA8,\n    0x6F35: 0x6E86,\n    0x6F38: 0x6E10,\n    0x6F3F: 0x6D46,\n    0x6F41: 0x988D,\n    0x6F51: 0x6CFC,\n    0x6F54: 0x6D01,\n    0x6F59: 0x6CA9,\n    0x6F5B: 0x6F5C,\n    0x6F5F: 0x8204,\n    0x6F64: 0x6DA6,\n    0x6F6F: 0x6D54,\n    0x6F70: 0x6E83,\n    0x6F77: 0x6ED7,\n    0x6F7F: 0x6DA0,\n    0x6F80: 0x6DA9,\n    0x6F81: 0x6DA9,\n    0x6F82: 0x6F84,\n    0x6F86: 0x6D47,\n    0x6F87: 0x6D9D,\n    0x6F97: 0x6DA7,\n    0x6FA0: 0x6E11,\n    0x6FA4: 0x6CFD,\n    0x6FA6: 0x6EEA,\n    0x6FA9: 0x6CF6,\n    0x6FAE: 0x6D4D,\n    0x6FB1: 0x6DC0,\n    0x6FC1: 0x6D4A,\n    0x6FC3: 0x6D53,\n    0x6FD4: 0x6CB5,\n    0x6FD5: 0x6E7F,\n    0x6FD8: 0x6CDE,\n    0x6FDB: 0x8499,\n    0x6FDC: 0x6D55,\n    0x6FDF: 0x6D4E,\n    0x6FE4: 0x6D9B,\n    0x6FEB: 0x6EE5,\n    0x6FEC: 0x6D5A,\n    0x6FF0: 0x6F4D,\n    0x6FF1: 0x6EE8,\n    0x6FF6: 0x9614,\n    0x6FFA: 0x6E85,\n    0x6FFC: 0x6CFA,\n    0x6FFE: 0x6EE4,\n    0x7005: 0x6EE2,\n    0x7006: 0x6E0E,\n    0x7009: 0x6CFB,\n    0x700B: 0x6E16,\n    0x700F: 0x6D4F,\n    0x7015: 0x6FD2,\n    0x7018: 0x6CF8,\n    0x701D: 0x6CA5,\n    0x701F: 0x6F47,\n    0x7020: 0x6F46,\n    0x7026: 0x6F74,\n    0x7027: 0x6CF7,\n    0x7028: 0x6FD1,\n    0x7030: 0x5F25,\n    0x7032: 0x6F4B,\n    0x703E: 0x6F9C,\n    0x7043: 0x6CA3,\n    0x7044: 0x6EE0,\n    0x7051: 0x6D12,\n    0x7055: 0x6F13,\n    0x7058: 0x6EE9,\n    0x705D: 0x704F,\n    0x7063: 0x6E7E,\n    0x7064: 0x6EE6,\n    0x7067: 0x6EDF,\n    0x7069: 0x6EDF,\n    0x707D: 0x707E,\n    0x70A4: 0x7167,\n    0x70BA: 0x4E3A,\n    0x70CF: 0x4E4C,\n    0x70F4: 0x70C3,\n    0x7121: 0x65E0,\n    0x7146: 0x7145,\n    0x7147: 0x8F89,\n    0x7149: 0x70BC,\n    0x7152: 0x709C,\n    0x7156: 0x6696,\n    0x7159: 0x70DF,\n    0x7162: 0x8315,\n    0x7165: 0x7115,\n    0x7169: 0x70E6,\n    0x716C: 0x7080,\n    0x7192: 0x8367,\n    0x7197: 0x709D,\n    0x71B1: 0x70ED,\n    0x71B2: 0x988E,\n    0x71BE: 0x70BD,\n    0x71C1: 0x70E8,\n    0x71C4: 0x7130,\n    0x71C8: 0x706F,\n    0x71C9: 0x7096,\n    0x71D0: 0x78F7,\n    0x71D2: 0x70E7,\n    0x71D9: 0x70EB,\n    0x71DC: 0x7116,\n    0x71DF: 0x8425,\n    0x71E6: 0x707F,\n    0x71EC: 0x6BC1,\n    0x71ED: 0x70DB,\n    0x71F4: 0x70E9,\n    0x71FB: 0x718F,\n    0x71FC: 0x70EC,\n    0x71FE: 0x7118,\n    0x71FF: 0x8000,\n    0x720D: 0x70C1,\n    0x7210: 0x7089,\n    0x7217: 0x70E8,\n    0x721B: 0x70C2,\n    0x722D: 0x4E89,\n    0x7232: 0x4E3A,\n    0x723A: 0x7237,\n    0x723E: 0x5C14,\n    0x723F: 0x4E2C,\n    0x7240: 0x5E8A,\n    0x7246: 0x5899,\n    0x724B: 0x7B3A,\n    0x7250: 0x95F8,\n    0x7258: 0x724D,\n    0x7274: 0x62B5,\n    0x727D: 0x7275,\n    0x7296: 0x8366,\n    0x729B: 0x7266,\n    0x72A2: 0x728A,\n    0x72A7: 0x727A,\n    0x72C0: 0x72B6,\n    0x72F9: 0x72ED,\n    0x72FD: 0x72C8,\n    0x7319: 0x72F0,\n    0x7336: 0x72B9,\n    0x733B: 0x72F2,\n    0x7341: 0x72B8,\n    0x7343: 0x5446,\n    0x7344: 0x72F1,\n    0x7345: 0x72EE,\n    0x734E: 0x5956,\n    0x7368: 0x72EC,\n    0x736A: 0x72EF,\n    0x736B: 0x7303,\n    0x736E: 0x72DD,\n    0x7370: 0x72DE,\n    0x7372: 0x83B7,\n    0x7375: 0x730E,\n    0x7377: 0x72B7,\n    0x7378: 0x517D,\n    0x737A: 0x736D,\n    0x737B: 0x732E,\n    0x737C: 0x7315,\n    0x7380: 0x7321,\n    0x7386: 0x5179,\n    0x73A8: 0x73CF,\n    0x73EE: 0x4F69,\n    0x73FE: 0x73B0,\n    0x740D: 0x7483,\n    0x742F: 0x7BA1,\n    0x743A: 0x73D0,\n    0x743F: 0x73F2,\n    0x7449: 0x73C9,\n    0x744B: 0x73AE,\n    0x7452: 0x739A,\n    0x7463: 0x7410,\n    0x7464: 0x7476,\n    0x7469: 0x83B9,\n    0x746A: 0x739B,\n    0x746F: 0x7405,\n    0x7472: 0x73B1,\n    0x7489: 0x740F,\n    0x74A1: 0x740E,\n    0x74A3: 0x7391,\n    0x74A6: 0x7477,\n    0x74AB: 0x73F0,\n    0x74B0: 0x73AF,\n    0x74B5: 0x7399,\n    0x74BD: 0x73BA,\n    0x74BF: 0x7487,\n    0x74CA: 0x743C,\n    0x74CF: 0x73D1,\n    0x74D4: 0x748E,\n    0x74DA: 0x74D2,\n    0x750C: 0x74EF,\n    0x750E: 0x7816,\n    0x7515: 0x74EE,\n    0x7516: 0x7F42,\n    0x7522: 0x4EA7,\n    0x7523: 0x4EA7,\n    0x7526: 0x82CF,\n    0x752F: 0x5B81,\n    0x755D: 0x4EA9,\n    0x7562: 0x6BD5,\n    0x756B: 0x753B,\n    0x7570: 0x5F02,\n    0x7571: 0x7559,\n    0x7576: 0x5F53,\n    0x7587: 0x7574,\n    0x758A: 0x8FED,\n    0x75D9: 0x75C9,\n    0x75E0: 0x9178,\n    0x75FA: 0x75F9,\n    0x7602: 0x75D6,\n    0x7609: 0x6108,\n    0x760B: 0x75AF,\n    0x760D: 0x75A1,\n    0x7613: 0x75EA,\n    0x761E: 0x7617,\n    0x7621: 0x75AE,\n    0x7627: 0x759F,\n    0x762E: 0x7606,\n    0x763A: 0x7618,\n    0x763B: 0x7618,\n    0x7642: 0x7597,\n    0x7646: 0x75E8,\n    0x7647: 0x75EB,\n    0x7649: 0x7605,\n    0x7652: 0x6108,\n    0x7658: 0x75A0,\n    0x765F: 0x762A,\n    0x7661: 0x75F4,\n    0x7662: 0x75D2,\n    0x7664: 0x7596,\n    0x7665: 0x75C7,\n    0x7667: 0x75AC,\n    0x7669: 0x765E,\n    0x766C: 0x7663,\n    0x766D: 0x763F,\n    0x766E: 0x763E,\n    0x7670: 0x75C8,\n    0x7671: 0x762B,\n    0x7672: 0x766B,\n    0x767C: 0x53D1,\n    0x769A: 0x7691,\n    0x76B0: 0x75B1,\n    0x76B8: 0x76B2,\n    0x76BA: 0x76B1,\n    0x76C3: 0x676F,\n    0x76DC: 0x76D7,\n    0x76DE: 0x76CF,\n    0x76E1: 0x5C3D,\n    0x76E3: 0x76D1,\n    0x76E4: 0x76D8,\n    0x76E7: 0x5362,\n    0x76EA: 0x8361,\n    0x770E: 0x89C6,\n    0x7721: 0x89C6,\n    0x7725: 0x7726,\n    0x773E: 0x4F17,\n    0x774F: 0x56F0,\n    0x775C: 0x7741,\n    0x775E: 0x7750,\n    0x7798: 0x770D,\n    0x779E: 0x7792,\n    0x77BC: 0x7751,\n    0x77C7: 0x8499,\n    0x77D3: 0x772C,\n    0x77DA: 0x77A9,\n    0x77EF: 0x77EB,\n    0x77FD: 0x7845,\n    0x7832: 0x70AE,\n    0x7843: 0x6731,\n    0x785C: 0x7841,\n    0x7864: 0x7856,\n    0x7868: 0x7817,\n    0x786F: 0x781A,\n    0x7876: 0x789C,\n    0x78A9: 0x7855,\n    0x78AD: 0x7800,\n    0x78B8: 0x781C,\n    0x78BA: 0x786E,\n    0x78BC: 0x7801,\n    0x78D0: 0x76D8,\n    0x78D1: 0x7859,\n    0x78DA: 0x7816,\n    0x78E3: 0x789C,\n    0x78E7: 0x789B,\n    0x78EF: 0x77F6,\n    0x78FD: 0x7857,\n    0x7904: 0x785A,\n    0x790E: 0x7840,\n    0x7919: 0x788D,\n    0x7926: 0x77FF,\n    0x792A: 0x783A,\n    0x792B: 0x783E,\n    0x792C: 0x77FE,\n    0x792E: 0x70AE,\n    0x7931: 0x783B,\n    0x7950: 0x4F51,\n    0x7955: 0x79D8,\n    0x797F: 0x7984,\n    0x798D: 0x7978,\n    0x798E: 0x796F,\n    0x7995: 0x794E,\n    0x79A6: 0x5FA1,\n    0x79AA: 0x7985,\n    0x79AE: 0x793C,\n    0x79B0: 0x7962,\n    0x79B1: 0x7977,\n    0x79BF: 0x79C3,\n    0x79C8: 0x7C7C,\n    0x7A05: 0x7A0E,\n    0x7A08: 0x79C6,\n    0x7A1C: 0x68F1,\n    0x7A1F: 0x7980,\n    0x7A2D: 0x79F8,\n    0x7A2E: 0x79CD,\n    0x7A31: 0x79F0,\n    0x7A40: 0x8C37,\n    0x7A4C: 0x7A23,\n    0x7A4D: 0x79EF,\n    0x7A4E: 0x9896,\n    0x7A60: 0x79FE,\n    0x7A61: 0x7A51,\n    0x7A62: 0x79FD,\n    0x7A68: 0x9893,\n    0x7A69: 0x7A33,\n    0x7A6B: 0x83B7,\n    0x7A6D: 0x7A06,\n    0x7AA9: 0x7A9D,\n    0x7AAA: 0x6D3C,\n    0x7AAE: 0x7A77,\n    0x7AAF: 0x7A91,\n    0x7AB0: 0x7A91,\n    0x7AB6: 0x7AAD,\n    0x7ABA: 0x7AA5,\n    0x7AC4: 0x7A9C,\n    0x7AC5: 0x7A8D,\n    0x7AC7: 0x7AA6,\n    0x7AC8: 0x7076,\n    0x7ACA: 0x7A83,\n    0x7ADD: 0x5E76,\n    0x7AEA: 0x7AD6,\n    0x7AF6: 0x7ADE,\n    0x7B46: 0x7B14,\n    0x7B4D: 0x7B0B,\n    0x7B67: 0x7B15,\n    0x7B87: 0x4E2A,\n    0x7B8B: 0x7B3A,\n    0x7B8F: 0x7B5D,\n    0x7BA0: 0x68F0,\n    0x7BC0: 0x8282,\n    0x7BC4: 0x8303,\n    0x7BC9: 0x7B51,\n    0x7BCB: 0x7BA7,\n    0x7BDB: 0x7BAC,\n    0x7BE0: 0x7B71,\n    0x7BE4: 0x7B03,\n    0x7BE9: 0x7B5B,\n    0x7BF3: 0x7B5A,\n    0x7C00: 0x7BA6,\n    0x7C0D: 0x7BD3,\n    0x7C11: 0x84D1,\n    0x7C1E: 0x7BAA,\n    0x7C21: 0x7B80,\n    0x7C23: 0x7BD1,\n    0x7C2B: 0x7BAB,\n    0x7C37: 0x6A90,\n    0x7C39: 0x7B5C,\n    0x7C3D: 0x7B7E,\n    0x7C3E: 0x5E18,\n    0x7C43: 0x7BEE,\n    0x7C4C: 0x7B79,\n    0x7C50: 0x85E4,\n    0x7C59: 0x7B93,\n    0x7C5C: 0x7BA8,\n    0x7C5F: 0x7C41,\n    0x7C60: 0x7B3C,\n    0x7C62: 0x5941,\n    0x7C64: 0x7B7E,\n    0x7C65: 0x94A5,\n    0x7C69: 0x7B3E,\n    0x7C6A: 0x7C16,\n    0x7C6C: 0x7BF1,\n    0x7C6E: 0x7BA9,\n    0x7C72: 0x5401,\n    0x7CA7: 0x5986,\n    0x7CAC: 0x66F2,\n    0x7CB5: 0x7CA4,\n    0x7CDD: 0x7CC1,\n    0x7CDE: 0x7CAA,\n    0x7CE2: 0x6A21,\n    0x7CE7: 0x7CAE,\n    0x7CF0: 0x56E2,\n    0x7CF2: 0x7C9D,\n    0x7CF4: 0x7C74,\n    0x7CF6: 0x7C9C,\n    0x7CF8: 0x7E9F,\n    0x7CFE: 0x7EA0,\n    0x7D00: 0x7EAA,\n    0x7D02: 0x7EA3,\n    0x7D04: 0x7EA6,\n    0x7D05: 0x7EA2,\n    0x7D06: 0x7EA1,\n    0x7D07: 0x7EA5,\n    0x7D08: 0x7EA8,\n    0x7D09: 0x7EAB,\n    0x7D0B: 0x7EB9,\n    0x7D0D: 0x7EB3,\n    0x7D10: 0x7EBD,\n    0x7D13: 0x7EBE,\n    0x7D14: 0x7EAF,\n    0x7D15: 0x7EB0,\n    0x7D16: 0x7EBC,\n    0x7D17: 0x7EB1,\n    0x7D18: 0x7EAE,\n    0x7D19: 0x7EB8,\n    0x7D1A: 0x7EA7,\n    0x7D1B: 0x7EB7,\n    0x7D1C: 0x7EAD,\n    0x7D1D: 0x7EB4,\n    0x7D21: 0x7EBA,\n    0x7D25: 0x624E,\n    0x7D2E: 0x624E,\n    0x7D30: 0x7EC6,\n    0x7D31: 0x7EC2,\n    0x7D32: 0x7EC1,\n    0x7D33: 0x7EC5,\n    0x7D35: 0x7EBB,\n    0x7D39: 0x7ECD,\n    0x7D3A: 0x7EC0,\n    0x7D3C: 0x7ECB,\n    0x7D3F: 0x7ED0,\n    0x7D40: 0x7ECC,\n    0x7D42: 0x7EC8,\n    0x7D43: 0x5F26,\n    0x7D44: 0x7EC4,\n    0x7D46: 0x7ECA,\n    0x7D4D: 0x7EB4,\n    0x7D4E: 0x7ED7,\n    0x7D4F: 0x7EC1,\n    0x7D50: 0x7ED3,\n    0x7D55: 0x7EDD,\n    0x7D5B: 0x7EE6,\n    0x7D5D: 0x7ED4,\n    0x7D5E: 0x7EDE,\n    0x7D61: 0x7EDC,\n    0x7D62: 0x7EDA,\n    0x7D66: 0x7ED9,\n    0x7D68: 0x7ED2,\n    0x7D70: 0x7ED6,\n    0x7D71: 0x7EDF,\n    0x7D72: 0x4E1D,\n    0x7D73: 0x7EDB,\n    0x7D79: 0x7EE2,\n    0x7D81: 0x7ED1,\n    0x7D83: 0x7EE1,\n    0x7D86: 0x7EE0,\n    0x7D88: 0x7EE8,\n    0x7D89: 0x7EE3,\n    0x7D8C: 0x7EE4,\n    0x7D8F: 0x7EE5,\n    0x7D91: 0x6346,\n    0x7D93: 0x7ECF,\n    0x7D9C: 0x7EFC,\n    0x7D9E: 0x7F0D,\n    0x7DA0: 0x7EFF,\n    0x7DA2: 0x7EF8,\n    0x7DA3: 0x7EFB,\n    0x7DAB: 0x7EBF,\n    0x7DAC: 0x7EF6,\n    0x7DAD: 0x7EF4,\n    0x7DAF: 0x7EF9,\n    0x7DB0: 0x7EFE,\n    0x7DB1: 0x7EB2,\n    0x7DB2: 0x7F51,\n    0x7DB3: 0x7EF7,\n    0x7DB4: 0x7F00,\n    0x7DB5: 0x5F69,\n    0x7DB8: 0x7EB6,\n    0x7DB9: 0x7EFA,\n    0x7DBA: 0x7EEE,\n    0x7DBB: 0x7EFD,\n    0x7DBD: 0x7EF0,\n    0x7DBE: 0x7EEB,\n    0x7DBF: 0x7EF5,\n    0x7DC4: 0x7EF2,\n    0x7DC7: 0x7F01,\n    0x7DCA: 0x7D27,\n    0x7DCB: 0x7EEF,\n    0x7DCD: 0x7F17,\n    0x7DD2: 0x7EEA,\n    0x7DD3: 0x7EEC,\n    0x7DD4: 0x7EF1,\n    0x7DD7: 0x7F03,\n    0x7DD8: 0x7F04,\n    0x7DD9: 0x7F02,\n    0x7DDA: 0x7EBF,\n    0x7DDC: 0x7EF5,\n    0x7DDD: 0x7F09,\n    0x7DDE: 0x7F0E,\n    0x7DE0: 0x7F14,\n    0x7DE1: 0x7F17,\n    0x7DE3: 0x7F18,\n    0x7DE4: 0x7EC1,\n    0x7DE6: 0x7F0C,\n    0x7DE8: 0x7F16,\n    0x7DE9: 0x7F13,\n    0x7DEC: 0x7F05,\n    0x7DEF: 0x7EAC,\n    0x7DF1: 0x7F11,\n    0x7DF2: 0x7F08,\n    0x7DF4: 0x7EC3,\n    0x7DF6: 0x7F0F,\n    0x7DF9: 0x7F07,\n    0x7DFB: 0x81F4,\n    0x7DFC: 0x7F0A,\n    0x7E02: 0x603B,\n    0x7E08: 0x8426,\n    0x7E09: 0x7F19,\n    0x7E0A: 0x7F22,\n    0x7E0B: 0x7F12,\n    0x7E10: 0x7EC9,\n    0x7E11: 0x7F23,\n    0x7E15: 0x7F0A,\n    0x7E17: 0x7F1E,\n    0x7E1A: 0x7EE6,\n    0x7E1B: 0x7F1A,\n    0x7E1D: 0x7F1C,\n    0x7E1E: 0x7F1F,\n    0x7E1F: 0x7F1B,\n    0x7E23: 0x53BF,\n    0x7E27: 0x7EE6,\n    0x7E2B: 0x7F1D,\n    0x7E2D: 0x7F21,\n    0x7E2E: 0x7F29,\n    0x7E2F: 0x6F14,\n    0x7E31: 0x7EB5,\n    0x7E32: 0x7F27,\n    0x7E34: 0x7EA4,\n    0x7E35: 0x7F26,\n    0x7E36: 0x7D77,\n    0x7E37: 0x7F15,\n    0x7E39: 0x7F25,\n    0x7E3D: 0x603B,\n    0x7E3E: 0x7EE9,\n    0x7E43: 0x7EF7,\n    0x7E45: 0x7F2B,\n    0x7E46: 0x7F2A,\n    0x7E48: 0x8941,\n    0x7E52: 0x7F2F,\n    0x7E54: 0x7EC7,\n    0x7E55: 0x7F2E,\n    0x7E56: 0x4F1E,\n    0x7E59: 0x7FFB,\n    0x7E5A: 0x7F2D,\n    0x7E5E: 0x7ED5,\n    0x7E61: 0x7EE3,\n    0x7E62: 0x7F0B,\n    0x7E66: 0x8941,\n    0x7E69: 0x7EF3,\n    0x7E6A: 0x7ED8,\n    0x7E6B: 0x7CFB,\n    0x7E6D: 0x8327,\n    0x7E6E: 0x7F30,\n    0x7E6F: 0x7F33,\n    0x7E70: 0x7F32,\n    0x7E73: 0x7F34,\n    0x7E79: 0x7ECE,\n    0x7E7C: 0x7EE7,\n    0x7E7D: 0x7F24,\n    0x7E7E: 0x7F31,\n    0x7E87: 0x98A3,\n    0x7E88: 0x7F2C,\n    0x7E8A: 0x7EA9,\n    0x7E8C: 0x7EED,\n    0x7E8D: 0x7D2F,\n    0x7E8F: 0x7F20,\n    0x7E93: 0x7F28,\n    0x7E96: 0x7EA4,\n    0x7E98: 0x7F35,\n    0x7E9C: 0x7F06,\n    0x7F3D: 0x94B5,\n    0x7F48: 0x575B,\n    0x7F4B: 0x74EE,\n    0x7F4C: 0x7F42,\n    0x7F4E: 0x575B,\n    0x7F4F: 0x5786,\n    0x7F70: 0x7F5A,\n    0x7F75: 0x9A82,\n    0x7F77: 0x7F62,\n    0x7F78: 0x7F5A,\n    0x7F85: 0x7F57,\n    0x7F86: 0x7F74,\n    0x7F88: 0x7F81,\n    0x7F8B: 0x8288,\n    0x7FA2: 0x7ED2,\n    0x7FA5: 0x7F9F,\n    0x7FA8: 0x7FA1,\n    0x7FA9: 0x4E49,\n    0x7FB6: 0x81BB,\n    0x7FD2: 0x4E60,\n    0x7FEC: 0x7FDA,\n    0x7FF9: 0x7FD8,\n    0x7FFA: 0x7FF1,\n    0x7FFD: 0x7FD9,\n    0x8011: 0x7AEF,\n    0x8021: 0x9504,\n    0x802C: 0x8027,\n    0x802E: 0x8022,\n    0x8056: 0x5723,\n    0x805E: 0x95FB,\n    0x806F: 0x8054,\n    0x8070: 0x806A,\n    0x8072: 0x58F0,\n    0x8073: 0x8038,\n    0x8075: 0x8069,\n    0x8076: 0x8042,\n    0x8077: 0x804C,\n    0x8079: 0x804D,\n    0x807C: 0x542C,\n    0x807D: 0x542C,\n    0x807E: 0x804B,\n    0x8085: 0x8083,\n    0x8105: 0x80C1,\n    0x8107: 0x80C1,\n    0x8108: 0x8109,\n    0x811B: 0x80EB,\n    0x8123: 0x5507,\n    0x8129: 0x4FEE,\n    0x812B: 0x8131,\n    0x8139: 0x80C0,\n    0x814E: 0x80BE,\n    0x8156: 0x80E8,\n    0x8161: 0x8136,\n    0x8166: 0x8111,\n    0x816B: 0x80BF,\n    0x8173: 0x811A,\n    0x8178: 0x80A0,\n    0x8181: 0x80B7,\n    0x8183: 0x817D,\n    0x8195: 0x8158,\n    0x819A: 0x80A4,\n    0x81A0: 0x80F6,\n    0x81A9: 0x817B,\n    0x81BD: 0x80C6,\n    0x81BE: 0x810D,\n    0x81BF: 0x8113,\n    0x81C9: 0x8138,\n    0x81CD: 0x8110,\n    0x81CF: 0x8191,\n    0x81D2: 0x766F,\n    0x81D8: 0x814A,\n    0x81DA: 0x80EA,\n    0x81DF: 0x810F,\n    0x81E0: 0x8114,\n    0x81E2: 0x81DC,\n    0x81E5: 0x5367,\n    0x81E8: 0x4E34,\n    0x81EF: 0x768B,\n    0x81FA: 0x53F0,\n    0x8207: 0x4E0E,\n    0x8208: 0x5174,\n    0x8209: 0x4E3E,\n    0x820A: 0x65E7,\n    0x8216: 0x94FA,\n    0x8218: 0x9986,\n    0x8259: 0x8231,\n    0x8262: 0x6A2F,\n    0x8263: 0x6A79,\n    0x8264: 0x8223,\n    0x8266: 0x8230,\n    0x826A: 0x6A79,\n    0x826B: 0x823B,\n    0x8271: 0x8270,\n    0x8277: 0x8273,\n    0x8278: 0x8279,\n    0x82BB: 0x520D,\n    0x82E7: 0x82CE,\n    0x8332: 0x5179,\n    0x834A: 0x8346,\n    0x838A: 0x5E84,\n    0x8396: 0x830E,\n    0x83A2: 0x835A,\n    0x83A7: 0x82CB,\n    0x83EF: 0x534E,\n    0x83F4: 0x5EB5,\n    0x83F8: 0x70DF,\n    0x8407: 0x82CC,\n    0x840A: 0x83B1,\n    0x842C: 0x4E07,\n    0x8435: 0x83B4,\n    0x8449: 0x53F6,\n    0x8452: 0x836D,\n    0x8457: 0x7740,\n    0x8460: 0x53C2,\n    0x8464: 0x836E,\n    0x8466: 0x82C7,\n    0x846F: 0x836F,\n    0x8477: 0x8364,\n    0x8490: 0x641C,\n    0x8493: 0x83BC,\n    0x8494: 0x83B3,\n    0x849E: 0x8385,\n    0x84BC: 0x82CD,\n    0x84C0: 0x836A,\n    0x84C6: 0x5E2D,\n    0x84CB: 0x76D6,\n    0x84E1: 0x53C2,\n    0x84E7: 0x839C,\n    0x84EE: 0x83B2,\n    0x84EF: 0x82C1,\n    0x84F4: 0x83BC,\n    0x84FD: 0x835C,\n    0x8506: 0x83F1,\n    0x8514: 0x535C,\n    0x851E: 0x848C,\n    0x8523: 0x848B,\n    0x8525: 0x8471,\n    0x8526: 0x8311,\n    0x852D: 0x836B,\n    0x8534: 0x9EBB,\n    0x8541: 0x8368,\n    0x8546: 0x8487,\n    0x854E: 0x835E,\n    0x8552: 0x836C,\n    0x8553: 0x82B8,\n    0x8555: 0x83B8,\n    0x8558: 0x835B,\n    0x8562: 0x8489,\n    0x8569: 0x8361,\n    0x856A: 0x829C,\n    0x856D: 0x8427,\n    0x8577: 0x84E3,\n    0x8588: 0x835F,\n    0x858A: 0x84DF,\n    0x858C: 0x8297,\n    0x8591: 0x59DC,\n    0x8594: 0x8537,\n    0x8598: 0x8359,\n    0x859F: 0x83B6,\n    0x85A6: 0x8350,\n    0x85A9: 0x8428,\n    0x85B0: 0x718F,\n    0x85BA: 0x8360,\n    0x85CD: 0x84DD,\n    0x85CE: 0x8369,\n    0x85DD: 0x827A,\n    0x85E5: 0x836F,\n    0x85EA: 0x85AE,\n    0x85F6: 0x82C8,\n    0x85F9: 0x853C,\n    0x85FA: 0x853A,\n    0x8600: 0x841A,\n    0x8604: 0x8572,\n    0x8606: 0x82A6,\n    0x8607: 0x82CF,\n    0x860A: 0x8574,\n    0x860B: 0x82F9,\n    0x861A: 0x85D3,\n    0x861E: 0x8539,\n    0x8622: 0x830F,\n    0x862D: 0x5170,\n    0x863A: 0x84E0,\n    0x863F: 0x841D,\n    0x8655: 0x5904,\n    0x865B: 0x865A,\n    0x865C: 0x864F,\n    0x865F: 0x53F7,\n    0x8667: 0x4E8F,\n    0x866F: 0x866C,\n    0x86FA: 0x86F1,\n    0x86FB: 0x8715,\n    0x8706: 0x86AC,\n    0x8755: 0x8680,\n    0x875F: 0x732C,\n    0x8766: 0x867E,\n    0x8768: 0x8671,\n    0x8778: 0x8717,\n    0x8784: 0x86F3,\n    0x8798: 0x8681,\n    0x879E: 0x8682,\n    0x87A2: 0x8424,\n    0x87BB: 0x877C,\n    0x87BF: 0x8780,\n    0x87C4: 0x86F0,\n    0x87C8: 0x8748,\n    0x87CE: 0x87A8,\n    0x87E3: 0x866E,\n    0x87EC: 0x8749,\n    0x87EF: 0x86F2,\n    0x87F2: 0x866B,\n    0x87F6: 0x86CF,\n    0x87FB: 0x8681,\n    0x8805: 0x8747,\n    0x8806: 0x867F,\n    0x880D: 0x874E,\n    0x8810: 0x86F4,\n    0x8811: 0x877E,\n    0x8814: 0x869D,\n    0x881F: 0x8721,\n    0x8823: 0x86CE,\n    0x8828: 0x87CF,\n    0x8831: 0x86CA,\n    0x8836: 0x8695,\n    0x883B: 0x86EE,\n    0x8846: 0x4F17,\n    0x884A: 0x8511,\n    0x8853: 0x672F,\n    0x885A: 0x80E1,\n    0x885B: 0x536B,\n    0x885D: 0x51B2,\n    0x885E: 0x536B,\n    0x8879: 0x53EA,\n    0x889E: 0x886E,\n    0x88B7: 0x593E,\n    0x88CA: 0x8885,\n    0x88CC: 0x5939,\n    0x88CF: 0x91CC,\n    0x88DC: 0x8865,\n    0x88DD: 0x88C5,\n    0x88E1: 0x91CC,\n    0x88FD: 0x5236,\n    0x8907: 0x590D,\n    0x890C: 0x88C8,\n    0x8918: 0x8886,\n    0x8932: 0x88E4,\n    0x8933: 0x88E2,\n    0x8938: 0x891B,\n    0x893B: 0x4EB5,\n    0x8946: 0x5E5E,\n    0x8947: 0x88E5,\n    0x894D: 0x6742,\n    0x894F: 0x88AF,\n    0x8956: 0x8884,\n    0x895D: 0x88E3,\n    0x8960: 0x88C6,\n    0x8964: 0x8934,\n    0x896A: 0x889C,\n    0x896F: 0x886C,\n    0x8972: 0x88AD,\n    0x8974: 0x8955,\n    0x8988: 0x6838,\n    0x898B: 0x89C1,\n    0x898E: 0x89C3,\n    0x898F: 0x89C4,\n    0x8993: 0x89C5,\n    0x8994: 0x89C5,\n    0x8996: 0x89C6,\n    0x8998: 0x89C7,\n    0x899C: 0x773A,\n    0x89A1: 0x89CB,\n    0x89A5: 0x89CD,\n    0x89A6: 0x89CE,\n    0x89AA: 0x4EB2,\n    0x89AC: 0x89CA,\n    0x89AF: 0x89CF,\n    0x89B0: 0x89D1,\n    0x89B2: 0x89D0,\n    0x89B7: 0x89D1,\n    0x89BA: 0x89C9,\n    0x89BB: 0x89D1,\n    0x89BD: 0x89C8,\n    0x89BF: 0x89CC,\n    0x89C0: 0x89C2,\n    0x89DD: 0x62B5,\n    0x89F4: 0x89DE,\n    0x89F6: 0x89EF,\n    0x89F8: 0x89E6,\n    0x8A01: 0x8BA0,\n    0x8A02: 0x8BA2,\n    0x8A03: 0x8BA3,\n    0x8A08: 0x8BA1,\n    0x8A0A: 0x8BAF,\n    0x8A0C: 0x8BA7,\n    0x8A0E: 0x8BA8,\n    0x8A0F: 0x5401,\n    0x8A10: 0x8BA6,\n    0x8A12: 0x8BB1,\n    0x8A13: 0x8BAD,\n    0x8A15: 0x8BAA,\n    0x8A16: 0x8BAB,\n    0x8A17: 0x6258,\n    0x8A18: 0x8BB0,\n    0x8A1B: 0x8BB9,\n    0x8A1D: 0x8BB6,\n    0x8A1F: 0x8BBC,\n    0x8A22: 0x6B23,\n    0x8A23: 0x8BC0,\n    0x8A25: 0x8BB7,\n    0x8A26: 0x8C0C,\n    0x8A29: 0x8BBB,\n    0x8A2A: 0x8BBF,\n    0x8A2D: 0x8BBE,\n    0x8A31: 0x8BB8,\n    0x8A34: 0x8BC9,\n    0x8A36: 0x8BC3,\n    0x8A3A: 0x8BCA,\n    0x8A3B: 0x6CE8,\n    0x8A3C: 0x8BC1,\n    0x8A41: 0x8BC2,\n    0x8A46: 0x8BCB,\n    0x8A4E: 0x8BB5,\n    0x8A50: 0x8BC8,\n    0x8A52: 0x8BD2,\n    0x8A54: 0x8BCF,\n    0x8A55: 0x8BC4,\n    0x8A56: 0x8BD0,\n    0x8A57: 0x8BC7,\n    0x8A58: 0x8BCE,\n    0x8A5B: 0x8BC5,\n    0x8A5E: 0x8BCD,\n    0x8A60: 0x548F,\n    0x8A61: 0x8BE9,\n    0x8A62: 0x8BE2,\n    0x8A63: 0x8BE3,\n    0x8A66: 0x8BD5,\n    0x8A69: 0x8BD7,\n    0x8A6B: 0x8BE7,\n    0x8A6C: 0x8BDF,\n    0x8A6D: 0x8BE1,\n    0x8A6E: 0x8BE0,\n    0x8A70: 0x8BD8,\n    0x8A71: 0x8BDD,\n    0x8A72: 0x8BE5,\n    0x8A73: 0x8BE6,\n    0x8A75: 0x8BDC,\n    0x8A7C: 0x8BD9,\n    0x8A7E: 0x8BBB,\n    0x8A7F: 0x8BD6,\n    0x8A84: 0x8BD4,\n    0x8A85: 0x8BDB,\n    0x8A86: 0x8BD3,\n    0x8A87: 0x5938,\n    0x8A8C: 0x5FD7,\n    0x8A8D: 0x8BA4,\n    0x8A91: 0x8BF3,\n    0x8A92: 0x8BF6,\n    0x8A95: 0x8BDE,\n    0x8A98: 0x8BF1,\n    0x8A9A: 0x8BEE,\n    0x8A9E: 0x8BED,\n    0x8AA0: 0x8BDA,\n    0x8AA1: 0x8BEB,\n    0x8AA3: 0x8BEC,\n    0x8AA4: 0x8BEF,\n    0x8AA5: 0x8BF0,\n    0x8AA6: 0x8BF5,\n    0x8AA8: 0x8BF2,\n    0x8AAA: 0x8BF4,\n    0x8AAC: 0x8BF4,\n    0x8AB0: 0x8C01,\n    0x8AB2: 0x8BFE,\n    0x8AB6: 0x8C07,\n    0x8AB9: 0x8BFD,\n    0x8ABC: 0x8C0A,\n    0x8ABF: 0x8C03,\n    0x8AC2: 0x8C04,\n    0x8AC4: 0x8C06,\n    0x8AC7: 0x8C08,\n    0x8AC9: 0x8BFF,\n    0x8ACB: 0x8BF7,\n    0x8ACD: 0x8BE4,\n    0x8ACF: 0x8BF9,\n    0x8AD1: 0x8BFC,\n    0x8AD2: 0x8C05,\n    0x8AD6: 0x8BBA,\n    0x8AD7: 0x8C02,\n    0x8ADB: 0x8C00,\n    0x8ADC: 0x8C0D,\n    0x8ADD: 0x8C1E,\n    0x8ADE: 0x8C1D,\n    0x8AE1: 0x8C25,\n    0x8AE2: 0x8BE8,\n    0x8AE4: 0x8C14,\n    0x8AE6: 0x8C1B,\n    0x8AE7: 0x8C10,\n    0x8AEB: 0x8C0F,\n    0x8AED: 0x8C15,\n    0x8AEE: 0x8C18,\n    0x8AF1: 0x8BB3,\n    0x8AF3: 0x8C19,\n    0x8AF6: 0x8C0C,\n    0x8AF7: 0x8BBD,\n    0x8AF8: 0x8BF8,\n    0x8AFA: 0x8C1A,\n    0x8AFC: 0x8C16,\n    0x8AFE: 0x8BFA,\n    0x8B00: 0x8C0B,\n    0x8B01: 0x8C12,\n    0x8B02: 0x8C13,\n    0x8B04: 0x8A8A,\n    0x8B05: 0x8BCC,\n    0x8B0A: 0x8C0E,\n    0x8B0E: 0x8C1C,\n    0x8B10: 0x8C27,\n    0x8B14: 0x8C11,\n    0x8B16: 0x8C21,\n    0x8B17: 0x8C24,\n    0x8B19: 0x8C26,\n    0x8B1A: 0x8C25,\n    0x8B1B: 0x8BB2,\n    0x8B1D: 0x8C22,\n    0x8B20: 0x8C23,\n    0x8B28: 0x8C1F,\n    0x8B2B: 0x8C2A,\n    0x8B2C: 0x8C2C,\n    0x8B33: 0x8BB4,\n    0x8B39: 0x8C28,\n    0x8B3E: 0x8C29,\n    0x8B41: 0x54D7,\n    0x8B46: 0x563B,\n    0x8B49: 0x8BC1,\n    0x8B4C: 0x8BB9,\n    0x8B4E: 0x8C32,\n    0x8B4F: 0x8BA5,\n    0x8B56: 0x8C2E,\n    0x8B58: 0x8BC6,\n    0x8B59: 0x8C2F,\n    0x8B5A: 0x8C2D,\n    0x8B5C: 0x8C31,\n    0x8B5F: 0x566A,\n    0x8B6B: 0x8C35,\n    0x8B6D: 0x6BC1,\n    0x8B6F: 0x8BD1,\n    0x8B70: 0x8BAE,\n    0x8B74: 0x8C34,\n    0x8B77: 0x62A4,\n    0x8B78: 0x8BEA,\n    0x8B7D: 0x8A89,\n    0x8B7E: 0x8C2B,\n    0x8B80: 0x8BFB,\n    0x8B81: 0x8C2A,\n    0x8B85: 0x5BA1,\n    0x8B8A: 0x53D8,\n    0x8B8B: 0x8A5F,\n    0x8B8C: 0x71D5,\n    0x8B8E: 0x96E0,\n    0x8B90: 0x96E0,\n    0x8B92: 0x8C17,\n    0x8B93: 0x8BA9,\n    0x8B95: 0x8C30,\n    0x8B96: 0x8C36,\n    0x8B9A: 0x8D5E,\n    0x8B9B: 0x5453,\n    0x8B9C: 0x8C20,\n    0x8B9E: 0x8C33,\n    0x8C3F: 0x6EAA,\n    0x8C48: 0x5C82,\n    0x8C4E: 0x7AD6,\n    0x8C50: 0x4E30,\n    0x8C54: 0x8273,\n    0x8C6C: 0x732A,\n    0x8C76: 0x8C6E,\n    0x8C8D: 0x72F8,\n    0x8C93: 0x732B,\n    0x8C9D: 0x8D1D,\n    0x8C9E: 0x8D1E,\n    0x8C9F: 0x8D20,\n    0x8CA0: 0x8D1F,\n    0x8CA1: 0x8D22,\n    0x8CA2: 0x8D21,\n    0x8CA7: 0x8D2B,\n    0x8CA8: 0x8D27,\n    0x8CA9: 0x8D29,\n    0x8CAA: 0x8D2A,\n    0x8CAB: 0x8D2F,\n    0x8CAC: 0x8D23,\n    0x8CAF: 0x8D2E,\n    0x8CB0: 0x8D33,\n    0x8CB2: 0x8D40,\n    0x8CB3: 0x8D30,\n    0x8CB4: 0x8D35,\n    0x8CB6: 0x8D2C,\n    0x8CB7: 0x4E70,\n    0x8CB8: 0x8D37,\n    0x8CBA: 0x8D36,\n    0x8CBB: 0x8D39,\n    0x8CBC: 0x8D34,\n    0x8CBD: 0x8D3B,\n    0x8CBF: 0x8D38,\n    0x8CC0: 0x8D3A,\n    0x8CC1: 0x8D32,\n    0x8CC2: 0x8D42,\n    0x8CC3: 0x8D41,\n    0x8CC4: 0x8D3F,\n    0x8CC5: 0x8D45,\n    0x8CC7: 0x8D44,\n    0x8CC8: 0x8D3E,\n    0x8CC9: 0x6064,\n    0x8CCA: 0x8D3C,\n    0x8CCD: 0x8D43,\n    0x8CD1: 0x8D48,\n    0x8CD2: 0x8D4A,\n    0x8CD3: 0x5BBE,\n    0x8CD4: 0x5BBE,\n    0x8CD5: 0x8D47,\n    0x8CD9: 0x8D52,\n    0x8CDA: 0x8D49,\n    0x8CDB: 0x8D5E,\n    0x8CDC: 0x8D50,\n    0x8CDE: 0x8D4F,\n    0x8CE0: 0x8D54,\n    0x8CE1: 0x8D53,\n    0x8CE2: 0x8D24,\n    0x8CE3: 0x5356,\n    0x8CE4: 0x8D31,\n    0x8CE6: 0x8D4B,\n    0x8CE7: 0x8D55,\n    0x8CEA: 0x8D28,\n    0x8CEB: 0x8D4D,\n    0x8CEC: 0x8D26,\n    0x8CED: 0x8D4C,\n    0x8CEE: 0x8D46,\n    0x8CF4: 0x8D56,\n    0x8CF5: 0x8D57,\n    0x8CF8: 0x5269,\n    0x8CFA: 0x8D5A,\n    0x8CFB: 0x8D59,\n    0x8CFC: 0x8D2D,\n    0x8CFD: 0x8D5B,\n    0x8CFE: 0x8D5C,\n    0x8D04: 0x8D3D,\n    0x8D05: 0x8D58,\n    0x8D07: 0x8D5F,\n    0x8D08: 0x8D60,\n    0x8D0A: 0x8D5E,\n    0x8D0B: 0x8D5D,\n    0x8D0D: 0x8D61,\n    0x8D0F: 0x8D62,\n    0x8D10: 0x8D46,\n    0x8D13: 0x8D43,\n    0x8D14: 0x8D51,\n    0x8D16: 0x8D4E,\n    0x8D17: 0x8D5D,\n    0x8D1B: 0x8D63,\n    0x8D1C: 0x8D43,\n    0x8D6C: 0x8D6A,\n    0x8D95: 0x8D76,\n    0x8D99: 0x8D75,\n    0x8DA8: 0x8D8B,\n    0x8DB2: 0x8DB1,\n    0x8DE1: 0x8FF9,\n    0x8DFC: 0x5C40,\n    0x8E10: 0x8DF5,\n    0x8E21: 0x8737,\n    0x8E34: 0x8E0A,\n    0x8E4C: 0x8DC4,\n    0x8E55: 0x8DF8,\n    0x8E5F: 0x8FF9,\n    0x8E60: 0x8DD6,\n    0x8E63: 0x8E52,\n    0x8E64: 0x8E2A,\n    0x8E7A: 0x8DF7,\n    0x8E82: 0x8DF6,\n    0x8E89: 0x8DB8,\n    0x8E8A: 0x8E0C,\n    0x8E8B: 0x8DFB,\n    0x8E8D: 0x8DC3,\n    0x8E91: 0x8E2F,\n    0x8E92: 0x8DDE,\n    0x8E93: 0x8E2C,\n    0x8E95: 0x8E70,\n    0x8E9A: 0x8DF9,\n    0x8EA1: 0x8E51,\n    0x8EA5: 0x8E7F,\n    0x8EA6: 0x8E9C,\n    0x8EAA: 0x8E8F,\n    0x8EB0: 0x4F53,\n    0x8EC0: 0x8EAF,\n    0x8EC3: 0x4EB8,\n    0x8ECA: 0x8F66,\n    0x8ECB: 0x8F67,\n    0x8ECC: 0x8F68,\n    0x8ECD: 0x519B,\n    0x8ED1: 0x8F6A,\n    0x8ED2: 0x8F69,\n    0x8ED4: 0x8F6B,\n    0x8EDB: 0x8F6D,\n    0x8EDF: 0x8F6F,\n    0x8EE4: 0x8F77,\n    0x8EEB: 0x8F78,\n    0x8EF2: 0x8F71,\n    0x8EF8: 0x8F74,\n    0x8EF9: 0x8F75,\n    0x8EFA: 0x8F7A,\n    0x8EFB: 0x8F72,\n    0x8EFC: 0x8F76,\n    0x8EFE: 0x8F7C,\n    0x8F03: 0x8F83,\n    0x8F05: 0x8F82,\n    0x8F07: 0x8F81,\n    0x8F08: 0x8F80,\n    0x8F09: 0x8F7D,\n    0x8F0A: 0x8F7E,\n    0x8F12: 0x8F84,\n    0x8F13: 0x633D,\n    0x8F14: 0x8F85,\n    0x8F15: 0x8F7B,\n    0x8F1B: 0x8F86,\n    0x8F1C: 0x8F8E,\n    0x8F1D: 0x8F89,\n    0x8F1E: 0x8F8B,\n    0x8F1F: 0x8F8D,\n    0x8F25: 0x8F8A,\n    0x8F26: 0x8F87,\n    0x8F29: 0x8F88,\n    0x8F2A: 0x8F6E,\n    0x8F2C: 0x8F8C,\n    0x8F2D: 0x8F6F,\n    0x8F2F: 0x8F91,\n    0x8F33: 0x8F8F,\n    0x8F38: 0x8F93,\n    0x8F3B: 0x8F90,\n    0x8F3C: 0x8F92,\n    0x8F3E: 0x8F97,\n    0x8F3F: 0x8206,\n    0x8F40: 0x8F92,\n    0x8F42: 0x6BC2,\n    0x8F44: 0x8F96,\n    0x8F45: 0x8F95,\n    0x8F46: 0x8F98,\n    0x8F49: 0x8F6C,\n    0x8F4D: 0x8F99,\n    0x8F4E: 0x8F7F,\n    0x8F54: 0x8F9A,\n    0x8F5F: 0x8F70,\n    0x8F61: 0x8F94,\n    0x8F62: 0x8F79,\n    0x8F64: 0x8F73,\n    0x8FA4: 0x8F9E,\n    0x8FA6: 0x529E,\n    0x8FAD: 0x8F9E,\n    0x8FAE: 0x8FAB,\n    0x8FAF: 0x8FA9,\n    0x8FB2: 0x519C,\n    0x8FB3: 0x519C,\n    0x8FC6: 0x8FE4,\n    0x8FF4: 0x56DE,\n    0x8FFA: 0x4E43,\n    0x9015: 0x5F84,\n    0x9019: 0x8FD9,\n    0x9023: 0x8FDE,\n    0x9031: 0x5468,\n    0x9032: 0x8FDB,\n    0x904A: 0x6E38,\n    0x904B: 0x8FD0,\n    0x904E: 0x8FC7,\n    0x9054: 0x8FBE,\n    0x9055: 0x8FDD,\n    0x9059: 0x9065,\n    0x905C: 0x900A,\n    0x905D: 0x6C93,\n    0x905E: 0x9012,\n    0x9060: 0x8FDC,\n    0x9069: 0x9002,\n    0x9072: 0x8FDF,\n    0x9077: 0x8FC1,\n    0x9078: 0x9009,\n    0x907A: 0x9057,\n    0x907C: 0x8FBD,\n    0x9081: 0x8FC8,\n    0x9084: 0x8FD8,\n    0x9087: 0x8FE9,\n    0x908A: 0x8FB9,\n    0x908F: 0x903B,\n    0x9090: 0x9026,\n    0x90C3: 0x5408,\n    0x90DF: 0x90CF,\n    0x90E4: 0x90C4,\n    0x90F5: 0x90AE,\n    0x9106: 0x90D3,\n    0x9109: 0x4E61,\n    0x9112: 0x90B9,\n    0x9114: 0x90AC,\n    0x9115: 0x4E61,\n    0x9116: 0x90E7,\n    0x9118: 0x5889,\n    0x9127: 0x9093,\n    0x912D: 0x90D1,\n    0x9130: 0x90BB,\n    0x9132: 0x90F8,\n    0x9134: 0x90BA,\n    0x9136: 0x90D0,\n    0x913A: 0x909D,\n    0x9148: 0x90E6,\n    0x9167: 0x916C,\n    0x9183: 0x814C,\n    0x9196: 0x915D,\n    0x919C: 0x4E11,\n    0x919E: 0x915D,\n    0x91AB: 0x533B,\n    0x91AC: 0x9171,\n    0x91B1: 0x9166,\n    0x91BB: 0x916C,\n    0x91BC: 0x71D5,\n    0x91C0: 0x917F,\n    0x91C1: 0x8845,\n    0x91C3: 0x917E,\n    0x91C5: 0x917D,\n    0x91CB: 0x91CA,\n    0x91D0: 0x5398,\n    0x91D3: 0x9486,\n    0x91D4: 0x9487,\n    0x91D5: 0x948C,\n    0x91D7: 0x948A,\n    0x91D8: 0x9489,\n    0x91D9: 0x948B,\n    0x91DD: 0x9488,\n    0x91E3: 0x9493,\n    0x91E4: 0x9490,\n    0x91E6: 0x6263,\n    0x91E7: 0x948F,\n    0x91E9: 0x9492,\n    0x91EC: 0x710A,\n    0x91F5: 0x9497,\n    0x91F7: 0x948D,\n    0x91F9: 0x9495,\n    0x91FA: 0x948E,\n    0x9200: 0x94AF,\n    0x9201: 0x94AB,\n    0x9203: 0x9498,\n    0x9204: 0x94AD,\n    0x9205: 0x94A5,\n    0x9208: 0x949A,\n    0x9209: 0x94A0,\n    0x920D: 0x949D,\n    0x920E: 0x94A9,\n    0x9210: 0x94A4,\n    0x9211: 0x94A3,\n    0x9212: 0x9491,\n    0x9214: 0x949E,\n    0x9215: 0x94AE,\n    0x921E: 0x94A7,\n    0x9221: 0x949F,\n    0x9223: 0x9499,\n    0x9225: 0x94AC,\n    0x9226: 0x949B,\n    0x9227: 0x94AA,\n    0x922E: 0x94CC,\n    0x9230: 0x94C8,\n    0x9233: 0x94B6,\n    0x9234: 0x94C3,\n    0x9237: 0x94B4,\n    0x9238: 0x94B9,\n    0x9239: 0x94CD,\n    0x923A: 0x94B0,\n    0x923D: 0x94B8,\n    0x923E: 0x94C0,\n    0x923F: 0x94BF,\n    0x9240: 0x94BE,\n    0x9244: 0x94C1,\n    0x9246: 0x94BB,\n    0x9248: 0x94CA,\n    0x9249: 0x94C9,\n    0x924B: 0x5228,\n    0x924D: 0x94CB,\n    0x9251: 0x94C2,\n    0x9255: 0x94B7,\n    0x9257: 0x94B3,\n    0x925A: 0x94C6,\n    0x925B: 0x94C5,\n    0x925E: 0x94BA,\n    0x9262: 0x94B5,\n    0x9264: 0x94A9,\n    0x9266: 0x94B2,\n    0x926C: 0x94BC,\n    0x926D: 0x94BD,\n    0x9276: 0x94CF,\n    0x9278: 0x94F0,\n    0x927A: 0x94D2,\n    0x927B: 0x94EC,\n    0x927F: 0x94EA,\n    0x9280: 0x94F6,\n    0x9283: 0x94F3,\n    0x9285: 0x94DC,\n    0x928D: 0x94DA,\n    0x9291: 0x94E3,\n    0x9293: 0x94E8,\n    0x9295: 0x94C1,\n    0x9296: 0x94E2,\n    0x9298: 0x94ED,\n    0x929A: 0x94EB,\n    0x929B: 0x94E6,\n    0x929C: 0x8854,\n    0x92A0: 0x94D1,\n    0x92A3: 0x94F7,\n    0x92A5: 0x94F1,\n    0x92A6: 0x94DF,\n    0x92A8: 0x94F5,\n    0x92A9: 0x94E5,\n    0x92AA: 0x94D5,\n    0x92AB: 0x94EF,\n    0x92AC: 0x94D0,\n    0x92B1: 0x94DE,\n    0x92B2: 0x710A,\n    0x92B3: 0x9510,\n    0x92B7: 0x9500,\n    0x92B9: 0x9508,\n    0x92BB: 0x9511,\n    0x92BC: 0x9509,\n    0x92C1: 0x94DD,\n    0x92C3: 0x9512,\n    0x92C5: 0x950C,\n    0x92C7: 0x94A1,\n    0x92CC: 0x94E4,\n    0x92CF: 0x94D7,\n    0x92D2: 0x950B,\n    0x92D9: 0x94FB,\n    0x92DC: 0x956F,\n    0x92DD: 0x950A,\n    0x92DF: 0x9513,\n    0x92E3: 0x94D8,\n    0x92E4: 0x9504,\n    0x92E5: 0x9503,\n    0x92E6: 0x9514,\n    0x92E8: 0x9507,\n    0x92E9: 0x94D3,\n    0x92EA: 0x94FA,\n    0x92EE: 0x94D6,\n    0x92EF: 0x9506,\n    0x92F0: 0x9502,\n    0x92F1: 0x94FD,\n    0x92F6: 0x950D,\n    0x92F8: 0x952F,\n    0x92FB: 0x9274,\n    0x92FC: 0x94A2,\n    0x9301: 0x951E,\n    0x9304: 0x5F55,\n    0x9306: 0x9516,\n    0x9307: 0x952B,\n    0x9308: 0x9529,\n    0x930F: 0x94D4,\n    0x9310: 0x9525,\n    0x9312: 0x9515,\n    0x9315: 0x951F,\n    0x9318: 0x9524,\n    0x9319: 0x9531,\n    0x931A: 0x94EE,\n    0x931B: 0x951B,\n    0x931F: 0x952C,\n    0x9320: 0x952D,\n    0x9321: 0x951C,\n    0x9322: 0x94B1,\n    0x9326: 0x9526,\n    0x9328: 0x951A,\n    0x9329: 0x9520,\n    0x932B: 0x9521,\n    0x932E: 0x9522,\n    0x932F: 0x9519,\n    0x9333: 0x9530,\n    0x9336: 0x8868,\n    0x9338: 0x94FC,\n    0x9340: 0x951D,\n    0x9341: 0x9528,\n    0x9343: 0x952A,\n    0x9346: 0x9494,\n    0x9347: 0x9534,\n    0x9348: 0x9533,\n    0x934A: 0x70BC,\n    0x934B: 0x9505,\n    0x934D: 0x9540,\n    0x9354: 0x9537,\n    0x9358: 0x94E1,\n    0x935A: 0x9496,\n    0x935B: 0x953B,\n    0x9360: 0x953D,\n    0x9364: 0x9538,\n    0x9365: 0x9532,\n    0x9369: 0x9518,\n    0x936B: 0x9539,\n    0x936C: 0x9539,\n    0x9370: 0x953E,\n    0x9375: 0x952E,\n    0x9376: 0x9536,\n    0x937A: 0x9517,\n    0x937C: 0x9488,\n    0x937E: 0x949F,\n    0x9382: 0x9541,\n    0x9384: 0x953F,\n    0x9387: 0x9545,\n    0x938A: 0x9551,\n    0x938B: 0x8F96,\n    0x9394: 0x9555,\n    0x9396: 0x9501,\n    0x9398: 0x9549,\n    0x939A: 0x9524,\n    0x939B: 0x9548,\n    0x93A1: 0x9543,\n    0x93A2: 0x94A8,\n    0x93A3: 0x84E5,\n    0x93A6: 0x954F,\n    0x93A7: 0x94E0,\n    0x93A9: 0x94E9,\n    0x93AA: 0x953C,\n    0x93AC: 0x9550,\n    0x93AE: 0x9547,\n    0x93B0: 0x9552,\n    0x93B2: 0x954B,\n    0x93B3: 0x954D,\n    0x93B5: 0x9553,\n    0x93B8: 0x954C,\n    0x93BF: 0x954E,\n    0x93C3: 0x955E,\n    0x93C7: 0x65CB,\n    0x93C8: 0x94FE,\n    0x93CC: 0x9546,\n    0x93CD: 0x9559,\n    0x93D0: 0x9560,\n    0x93D1: 0x955D,\n    0x93D7: 0x94FF,\n    0x93D8: 0x9535,\n    0x93DA: 0x621A,\n    0x93DC: 0x9557,\n    0x93DD: 0x9558,\n    0x93DE: 0x955B,\n    0x93DF: 0x94F2,\n    0x93E1: 0x955C,\n    0x93E2: 0x9556,\n    0x93E4: 0x9542,\n    0x93E8: 0x933E,\n    0x93F0: 0x955A,\n    0x93F5: 0x94E7,\n    0x93F7: 0x9564,\n    0x93F9: 0x956A,\n    0x93FD: 0x9508,\n    0x9403: 0x94D9,\n    0x940B: 0x94F4,\n    0x9410: 0x9563,\n    0x9412: 0x94F9,\n    0x9413: 0x9566,\n    0x9414: 0x9561,\n    0x9418: 0x949F,\n    0x9419: 0x956B,\n    0x941D: 0x9562,\n    0x9420: 0x9568,\n    0x9426: 0x950E,\n    0x9427: 0x950F,\n    0x9428: 0x9544,\n    0x942B: 0x954C,\n    0x942E: 0x9570,\n    0x9432: 0x956F,\n    0x9433: 0x956D,\n    0x9435: 0x94C1,\n    0x9436: 0x956E,\n    0x9438: 0x94CE,\n    0x943A: 0x94DB,\n    0x943F: 0x9571,\n    0x9444: 0x94F8,\n    0x944A: 0x956C,\n    0x944C: 0x9554,\n    0x9451: 0x9274,\n    0x9452: 0x9274,\n    0x9454: 0x9572,\n    0x9455: 0x9527,\n    0x945B: 0x77FF,\n    0x945E: 0x9574,\n    0x9460: 0x94C4,\n    0x9463: 0x9573,\n    0x9464: 0x5228,\n    0x9465: 0x9565,\n    0x946A: 0x7089,\n    0x946D: 0x9567,\n    0x9470: 0x94A5,\n    0x9471: 0x9575,\n    0x9472: 0x9576,\n    0x9477: 0x954A,\n    0x9479: 0x9569,\n    0x947C: 0x9523,\n    0x947D: 0x94BB,\n    0x947E: 0x92AE,\n    0x947F: 0x51FF,\n    0x9481: 0x9562,\n    0x9482: 0x954B,\n    0x949C: 0x5DE8,\n    0x9577: 0x957F,\n    0x9580: 0x95E8,\n    0x9582: 0x95E9,\n    0x9583: 0x95EA,\n    0x9586: 0x95EB,\n    0x9588: 0x95EC,\n    0x9589: 0x95ED,\n    0x958B: 0x5F00,\n    0x958C: 0x95F6,\n    0x958E: 0x95F3,\n    0x958F: 0x95F0,\n    0x9591: 0x95F2,\n    0x9592: 0x95F2,\n    0x9593: 0x95F4,\n    0x9594: 0x95F5,\n    0x9598: 0x95F8,\n    0x9599: 0x95F9,\n    0x95A1: 0x9602,\n    0x95A2: 0x5173,\n    0x95A3: 0x9601,\n    0x95A4: 0x5408,\n    0x95A5: 0x9600,\n    0x95A8: 0x95FA,\n    0x95A9: 0x95FD,\n    0x95AB: 0x9603,\n    0x95AC: 0x9606,\n    0x95AD: 0x95FE,\n    0x95B1: 0x9605,\n    0x95B2: 0x9605,\n    0x95B6: 0x960A,\n    0x95B9: 0x9609,\n    0x95BB: 0x960E,\n    0x95BC: 0x960F,\n    0x95BD: 0x960D,\n    0x95BE: 0x9608,\n    0x95BF: 0x960C,\n    0x95C3: 0x9612,\n    0x95C6: 0x677F,\n    0x95C8: 0x95F1,\n    0x95CA: 0x9614,\n    0x95CB: 0x9615,\n    0x95CC: 0x9611,\n    0x95CD: 0x9607,\n    0x95D0: 0x9617,\n    0x95D2: 0x9618,\n    0x95D3: 0x95FF,\n    0x95D4: 0x9616,\n    0x95D5: 0x9619,\n    0x95D6: 0x95EF,\n    0x95DA: 0x7AA5,\n    0x95DC: 0x5173,\n    0x95DE: 0x961A,\n    0x95E0: 0x9613,\n    0x95E1: 0x9610,\n    0x95E2: 0x8F9F,\n    0x95E4: 0x961B,\n    0x95E5: 0x95FC,\n    0x962C: 0x5751,\n    0x962F: 0x5740,\n    0x9658: 0x9649,\n    0x965D: 0x9655,\n    0x965E: 0x5347,\n    0x9663: 0x9635,\n    0x9670: 0x9634,\n    0x9673: 0x9648,\n    0x9678: 0x9646,\n    0x967D: 0x9633,\n    0x9682: 0x9634,\n    0x9684: 0x5824,\n    0x9689: 0x9667,\n    0x968A: 0x961F,\n    0x968E: 0x9636,\n    0x9695: 0x9668,\n    0x9696: 0x575E,\n    0x969B: 0x9645,\n    0x96A3: 0x90BB,\n    0x96A8: 0x968F,\n    0x96AA: 0x9669,\n    0x96B1: 0x9690,\n    0x96B4: 0x9647,\n    0x96B7: 0x96B6,\n    0x96B8: 0x96B6,\n    0x96BB: 0x53EA,\n    0x96CB: 0x96BD,\n    0x96D6: 0x867D,\n    0x96D9: 0x53CC,\n    0x96DB: 0x96CF,\n    0x96DC: 0x6742,\n    0x96DE: 0x9E21,\n    0x96E2: 0x79BB,\n    0x96E3: 0x96BE,\n    0x96F2: 0x4E91,\n    0x96FB: 0x7535,\n    0x9711: 0x6CBE,\n    0x971B: 0x7075,\n    0x9724: 0x6E9C,\n    0x9727: 0x96FE,\n    0x973D: 0x9701,\n    0x9742: 0x96F3,\n    0x9744: 0x972D,\n    0x9746: 0x53C7,\n    0x9748: 0x7075,\n    0x9749: 0x53C6,\n    0x975A: 0x9753,\n    0x975C: 0x9759,\n    0x9763: 0x9762,\n    0x9766: 0x817C,\n    0x9768: 0x9765,\n    0x976D: 0x97E7,\n    0x9780: 0x9F17,\n    0x9789: 0x9F17,\n    0x978F: 0x5DE9,\n    0x97A6: 0x79CB,\n    0x97BD: 0x9792,\n    0x97C1: 0x7F30,\n    0x97C3: 0x9791,\n    0x97C6: 0x5343,\n    0x97C9: 0x97AF,\n    0x97CB: 0x97E6,\n    0x97CC: 0x97E7,\n    0x97CD: 0x97E8,\n    0x97D3: 0x97E9,\n    0x97D9: 0x97EA,\n    0x97DC: 0x97EC,\n    0x97DD: 0x97B4,\n    0x97DE: 0x97EB,\n    0x97E4: 0x889C,\n    0x97FB: 0x97F5,\n    0x97FF: 0x54CD,\n    0x9801: 0x9875,\n    0x9802: 0x9876,\n    0x9803: 0x9877,\n    0x9805: 0x9879,\n    0x9806: 0x987A,\n    0x9807: 0x9878,\n    0x9808: 0x987B,\n    0x980A: 0x987C,\n    0x980C: 0x9882,\n    0x980E: 0x9880,\n    0x980F: 0x9883,\n    0x9810: 0x9884,\n    0x9811: 0x987D,\n    0x9812: 0x9881,\n    0x9813: 0x987F,\n    0x9817: 0x9887,\n    0x9818: 0x9886,\n    0x981C: 0x988C,\n    0x9821: 0x9889,\n    0x9824: 0x9890,\n    0x9826: 0x988F,\n    0x982B: 0x4FEF,\n    0x982D: 0x5934,\n    0x982E: 0x9892,\n    0x9830: 0x988A,\n    0x9832: 0x988B,\n    0x9834: 0x9895,\n    0x9837: 0x9894,\n    0x9838: 0x9888,\n    0x9839: 0x9893,\n    0x983B: 0x9891,\n    0x983D: 0x9893,\n    0x9846: 0x9897,\n    0x984C: 0x9898,\n    0x984D: 0x989D,\n    0x984E: 0x989A,\n    0x984F: 0x989C,\n    0x9852: 0x9899,\n    0x9853: 0x989B,\n    0x9854: 0x989C,\n    0x9858: 0x613F,\n    0x9859: 0x98A1,\n    0x985B: 0x98A0,\n    0x985E: 0x7C7B,\n    0x9862: 0x989F,\n    0x9865: 0x98A2,\n    0x9867: 0x987E,\n    0x986B: 0x98A4,\n    0x986C: 0x98A5,\n    0x986F: 0x663E,\n    0x9870: 0x98A6,\n    0x9871: 0x9885,\n    0x9873: 0x989E,\n    0x9874: 0x98A7,\n    0x98A8: 0x98CE,\n    0x98AD: 0x98D0,\n    0x98AE: 0x98D1,\n    0x98AF: 0x98D2,\n    0x98B1: 0x53F0,\n    0x98B3: 0x522E,\n    0x98B6: 0x98D3,\n    0x98B8: 0x98D4,\n    0x98BA: 0x626C,\n    0x98BB: 0x98D6,\n    0x98BC: 0x98D5,\n    0x98C0: 0x98D7,\n    0x98C3: 0x98D8,\n    0x98C4: 0x98D8,\n    0x98C6: 0x98D9,\n    0x98C7: 0x98D9,\n    0x98C8: 0x98D9,\n    0x98DB: 0x98DE,\n    0x98E2: 0x9965,\n    0x98E3: 0x9964,\n    0x98E5: 0x9966,\n    0x98E9: 0x9968,\n    0x98EA: 0x996A,\n    0x98EB: 0x996B,\n    0x98ED: 0x996C,\n    0x98EF: 0x996D,\n    0x98F2: 0x996E,\n    0x98F4: 0x9974,\n    0x98FC: 0x9972,\n    0x98FD: 0x9971,\n    0x98FE: 0x9970,\n    0x98FF: 0x9973,\n    0x9903: 0x997A,\n    0x9904: 0x9978,\n    0x9905: 0x997C,\n    0x9909: 0x9977,\n    0x990A: 0x517B,\n    0x990C: 0x9975,\n    0x990E: 0x9979,\n    0x990F: 0x997B,\n    0x9911: 0x997D,\n    0x9912: 0x9981,\n    0x9913: 0x997F,\n    0x9915: 0x9982,\n    0x9916: 0x997E,\n    0x9918: 0x4F59,\n    0x991A: 0x80B4,\n    0x991B: 0x9984,\n    0x991C: 0x9983,\n    0x991E: 0x996F,\n    0x9921: 0x9985,\n    0x9928: 0x9986,\n    0x9931: 0x7CC7,\n    0x9933: 0x9967,\n    0x9935: 0x5582,\n    0x9936: 0x9989,\n    0x9937: 0x9987,\n    0x993A: 0x998E,\n    0x993C: 0x9969,\n    0x993D: 0x9988,\n    0x993E: 0x998F,\n    0x993F: 0x998A,\n    0x9941: 0x998C,\n    0x9943: 0x998D,\n    0x9945: 0x9992,\n    0x9948: 0x9990,\n    0x9949: 0x9991,\n    0x994A: 0x9993,\n    0x994B: 0x9988,\n    0x994C: 0x9994,\n    0x9951: 0x9965,\n    0x9952: 0x9976,\n    0x9957: 0x98E8,\n    0x995C: 0x990D,\n    0x995D: 0x998D,\n    0x995E: 0x998B,\n    0x9962: 0x9995,\n    0x99AC: 0x9A6C,\n    0x99AD: 0x9A6D,\n    0x99AE: 0x51AF,\n    0x99B1: 0x9A6E,\n    0x99B3: 0x9A70,\n    0x99B4: 0x9A6F,\n    0x99B9: 0x9A72,\n    0x99C1: 0x9A73,\n    0x99D0: 0x9A7B,\n    0x99D1: 0x9A7D,\n    0x99D2: 0x9A79,\n    0x99D4: 0x9A75,\n    0x99D5: 0x9A7E,\n    0x99D8: 0x9A80,\n    0x99D9: 0x9A78,\n    0x99DB: 0x9A76,\n    0x99DD: 0x9A7C,\n    0x99DF: 0x9A77,\n    0x99E1: 0x9A82,\n    0x99E2: 0x9A88,\n    0x99ED: 0x9A87,\n    0x99EE: 0x9A73,\n    0x99F0: 0x9A83,\n    0x99F1: 0x9A86,\n    0x99F8: 0x9A8E,\n    0x99FF: 0x9A8F,\n    0x9A01: 0x9A8B,\n    0x9A02: 0x9A8D,\n    0x9A05: 0x9A93,\n    0x9A0C: 0x9A94,\n    0x9A0D: 0x9A92,\n    0x9A0E: 0x9A91,\n    0x9A0F: 0x9A90,\n    0x9A10: 0x9A8C,\n    0x9A16: 0x9A9B,\n    0x9A17: 0x9A97,\n    0x9A19: 0x9A97,\n    0x9A23: 0x9B03,\n    0x9A24: 0x9A99,\n    0x9A2B: 0x9A9E,\n    0x9A2D: 0x9A98,\n    0x9A2E: 0x9A9D,\n    0x9A30: 0x817E,\n    0x9A36: 0x9A7A,\n    0x9A37: 0x9A9A,\n    0x9A38: 0x9A9F,\n    0x9A3E: 0x9AA1,\n    0x9A40: 0x84E6,\n    0x9A41: 0x9A9C,\n    0x9A42: 0x9A96,\n    0x9A43: 0x9AA0,\n    0x9A44: 0x9AA2,\n    0x9A45: 0x9A71,\n    0x9A4A: 0x9A85,\n    0x9A4C: 0x9A95,\n    0x9A4D: 0x9A81,\n    0x9A4F: 0x9AA3,\n    0x9A55: 0x9A84,\n    0x9A57: 0x9A8C,\n    0x9A58: 0x9AA1,\n    0x9A5A: 0x60CA,\n    0x9A5B: 0x9A7F,\n    0x9A5F: 0x9AA4,\n    0x9A62: 0x9A74,\n    0x9A64: 0x9AA7,\n    0x9A65: 0x9AA5,\n    0x9A66: 0x9AA6,\n    0x9A6A: 0x9A8A,\n    0x9A6B: 0x9A89,\n    0x9ABE: 0x9CA0,\n    0x9ACF: 0x9AC5,\n    0x9AD2: 0x810F,\n    0x9AD4: 0x4F53,\n    0x9AD5: 0x9ACC,\n    0x9AD6: 0x9ACB,\n    0x9AE9: 0x9B13,\n    0x9AEE: 0x53D1,\n    0x9B01: 0x75AC,\n    0x9B06: 0x677E,\n    0x9B0D: 0x80E1,\n    0x9B1A: 0x987B,\n    0x9B22: 0x9B13,\n    0x9B25: 0x6597,\n    0x9B26: 0x6597,\n    0x9B27: 0x95F9,\n    0x9B28: 0x54C4,\n    0x9B29: 0x960B,\n    0x9B2D: 0x6597,\n    0x9B2E: 0x9604,\n    0x9B31: 0x90C1,\n    0x9B4E: 0x9B49,\n    0x9B58: 0x9B47,\n    0x9B5A: 0x9C7C,\n    0x9B5B: 0x9C7D,\n    0x9B62: 0x9C7E,\n    0x9B68: 0x9C80,\n    0x9B6F: 0x9C81,\n    0x9B74: 0x9C82,\n    0x9B77: 0x9C7F,\n    0x9B7A: 0x9C84,\n    0x9B81: 0x9C85,\n    0x9B83: 0x9C86,\n    0x9B8A: 0x9C8C,\n    0x9B8B: 0x9C89,\n    0x9B8C: 0x9CA7,\n    0x9B8D: 0x9C8F,\n    0x9B8E: 0x9C87,\n    0x9B90: 0x9C90,\n    0x9B91: 0x9C8D,\n    0x9B92: 0x9C8B,\n    0x9B93: 0x9C8A,\n    0x9B9A: 0x9C92,\n    0x9B9C: 0x9C98,\n    0x9B9E: 0x9C95,\n    0x9BA6: 0x9C96,\n    0x9BAA: 0x9C94,\n    0x9BAB: 0x9C9B,\n    0x9BAD: 0x9C91,\n    0x9BAE: 0x9C9C,\n    0x9BB3: 0x9C93,\n    0x9BB6: 0x9CAA,\n    0x9BB7: 0x9CC0,\n    0x9BBA: 0x9C9D,\n    0x9BC0: 0x9CA7,\n    0x9BC1: 0x9CA0,\n    0x9BC7: 0x9CA9,\n    0x9BC9: 0x9CA4,\n    0x9BCA: 0x9CA8,\n    0x9BD2: 0x9CAC,\n    0x9BD4: 0x9CBB,\n    0x9BD5: 0x9CAF,\n    0x9BD6: 0x9CAD,\n    0x9BD7: 0x9C9E,\n    0x9BDB: 0x9CB7,\n    0x9BDD: 0x9CB4,\n    0x9BE1: 0x9CB1,\n    0x9BE2: 0x9CB5,\n    0x9BE4: 0x9CB2,\n    0x9BE7: 0x9CB3,\n    0x9BE8: 0x9CB8,\n    0x9BEA: 0x9CAE,\n    0x9BEB: 0x9CB0,\n    0x9BF0: 0x9CB6,\n    0x9BF4: 0x9CBA,\n    0x9BF5: 0x9CB9,\n    0x9BF7: 0x9CC0,\n    0x9BFD: 0x9CAB,\n    0x9BFF: 0x9CCA,\n    0x9C01: 0x9CC8,\n    0x9C02: 0x9C97,\n    0x9C03: 0x9CC2,\n    0x9C08: 0x9CBD,\n    0x9C09: 0x9CC7,\n    0x9C0C: 0x9CC5,\n    0x9C0D: 0x9CC5,\n    0x9C0F: 0x9CBE,\n    0x9C10: 0x9CC4,\n    0x9C12: 0x9CC6,\n    0x9C13: 0x9CC3,\n    0x9C1B: 0x9CC1,\n    0x9C1C: 0x9CD2,\n    0x9C1F: 0x9CD1,\n    0x9C20: 0x9CCB,\n    0x9C23: 0x9CA5,\n    0x9C25: 0x9CCF,\n    0x9C28: 0x9CCE,\n    0x9C29: 0x9CD0,\n    0x9C2D: 0x9CCD,\n    0x9C2E: 0x9CC1,\n    0x9C31: 0x9CA2,\n    0x9C32: 0x9CCC,\n    0x9C33: 0x9CD3,\n    0x9C35: 0x9CD8,\n    0x9C37: 0x9CA6,\n    0x9C39: 0x9CA3,\n    0x9C3A: 0x9CB9,\n    0x9C3B: 0x9CD7,\n    0x9C3C: 0x9CDB,\n    0x9C3E: 0x9CD4,\n    0x9C42: 0x9CC9,\n    0x9C45: 0x9CD9,\n    0x9C48: 0x9CD5,\n    0x9C49: 0x9CD6,\n    0x9C52: 0x9CDF,\n    0x9C53: 0x9CDD,\n    0x9C54: 0x9CDD,\n    0x9C56: 0x9CDC,\n    0x9C57: 0x9CDE,\n    0x9C58: 0x9C9F,\n    0x9C5D: 0x9CBC,\n    0x9C5F: 0x9C8E,\n    0x9C60: 0x9C99,\n    0x9C63: 0x9CE3,\n    0x9C64: 0x9CE1,\n    0x9C67: 0x9CE2,\n    0x9C68: 0x9CBF,\n    0x9C6D: 0x9C9A,\n    0x9C6F: 0x9CE0,\n    0x9C77: 0x9CC4,\n    0x9C78: 0x9C88,\n    0x9C7A: 0x9CA1,\n    0x9CE5: 0x9E1F,\n    0x9CE7: 0x51EB,\n    0x9CE9: 0x9E20,\n    0x9CF2: 0x9E24,\n    0x9CF3: 0x51E4,\n    0x9CF4: 0x9E23,\n    0x9CF6: 0x9E22,\n    0x9D06: 0x9E29,\n    0x9D07: 0x9E28,\n    0x9D09: 0x9E26,\n    0x9D12: 0x9E30,\n    0x9D15: 0x9E35,\n    0x9D1B: 0x9E33,\n    0x9D1D: 0x9E32,\n    0x9D1E: 0x9E2E,\n    0x9D1F: 0x9E31,\n    0x9D23: 0x9E2A,\n    0x9D26: 0x9E2F,\n    0x9D28: 0x9E2D,\n    0x9D2C: 0x9E34,\n    0x9D2F: 0x9E38,\n    0x9D30: 0x9E39,\n    0x9D34: 0x9E3B,\n    0x9D3B: 0x9E3F,\n    0x9D3F: 0x9E3D,\n    0x9D42: 0x9E3A,\n    0x9D43: 0x9E3C,\n    0x9D50: 0x9E40,\n    0x9D51: 0x9E43,\n    0x9D52: 0x9E46,\n    0x9D53: 0x9E41,\n    0x9D5C: 0x9E48,\n    0x9D5D: 0x9E45,\n    0x9D5E: 0x9E45,\n    0x9D60: 0x9E44,\n    0x9D61: 0x9E49,\n    0x9D6A: 0x9E4C,\n    0x9D6C: 0x9E4F,\n    0x9D6E: 0x9E50,\n    0x9D6F: 0x9E4E,\n    0x9D72: 0x9E4A,\n    0x9D76: 0x9E26,\n    0x9D77: 0x9E53,\n    0x9D7E: 0x9E4D,\n    0x9D87: 0x9E2B,\n    0x9D89: 0x9E51,\n    0x9D8A: 0x9E52,\n    0x9D93: 0x9E4B,\n    0x9D96: 0x9E59,\n    0x9D98: 0x9E55,\n    0x9D9A: 0x9E57,\n    0x9DA1: 0x9E56,\n    0x9DA4: 0x9E4D,\n    0x9DA5: 0x9E5B,\n    0x9DA9: 0x9E5C,\n    0x9DAC: 0x9E27,\n    0x9DAF: 0x83BA,\n    0x9DB2: 0x9E5F,\n    0x9DB4: 0x9E64,\n    0x9DB9: 0x9E60,\n    0x9DBA: 0x9E61,\n    0x9DBB: 0x9E58,\n    0x9DBC: 0x9E63,\n    0x9DBF: 0x9E5A,\n    0x9DC0: 0x9E5A,\n    0x9DC1: 0x9E62,\n    0x9DC2: 0x9E5E,\n    0x9DC4: 0x9E21,\n    0x9DCA: 0x9E5D,\n    0x9DD3: 0x9E67,\n    0x9DD6: 0x9E65,\n    0x9DD7: 0x9E25,\n    0x9DD9: 0x9E37,\n    0x9DDA: 0x9E68,\n    0x9DE5: 0x9E36,\n    0x9DE6: 0x9E6A,\n    0x9DEB: 0x9E54,\n    0x9DEF: 0x9E69,\n    0x9DF0: 0x71D5,\n    0x9DF2: 0x9E6B,\n    0x9DF3: 0x9E47,\n    0x9DF4: 0x9E47,\n    0x9DF8: 0x9E6C,\n    0x9DF9: 0x9E70,\n    0x9DFA: 0x9E6D,\n    0x9DFC: 0x9E47,\n    0x9E07: 0x9E6F,\n    0x9E0C: 0x9E71,\n    0x9E0E: 0x83BA,\n    0x9E0F: 0x9E72,\n    0x9E15: 0x9E2C,\n    0x9E18: 0x9E74,\n    0x9E1A: 0x9E66,\n    0x9E1B: 0x9E73,\n    0x9E1D: 0x9E42,\n    0x9E1E: 0x9E3E,\n    0x9E75: 0x5364,\n    0x9E79: 0x54B8,\n    0x9E7A: 0x9E7E,\n    0x9E7C: 0x78B1,\n    0x9E7D: 0x76D0,\n    0x9E85: 0x72CD,\n    0x9E97: 0x4E3D,\n    0x9EA5: 0x9EA6,\n    0x9EA9: 0x9EB8,\n    0x9EAA: 0x9762,\n    0x9EAF: 0x66F2,\n    0x9EB4: 0x66F2,\n    0x9EB5: 0x9762,\n    0x9EBC: 0x4E48,\n    0x9EBD: 0x4E48,\n    0x9EC3: 0x9EC4,\n    0x9ECC: 0x9EC9,\n    0x9EDE: 0x70B9,\n    0x9EE8: 0x515A,\n    0x9EF2: 0x9EEA,\n    0x9EF4: 0x9709,\n    0x9EF6: 0x9EE1,\n    0x9EF7: 0x9EE9,\n    0x9EFD: 0x9EFE,\n    0x9EFF: 0x9F0B,\n    0x9F02: 0x9F0C,\n    0x9F07: 0x9CCC,\n    0x9F08: 0x9CD6,\n    0x9F09: 0x9F0D,\n    0x9F15: 0x51AC,\n    0x9F34: 0x9F39,\n    0x9F47: 0x9F44,\n    0x9F4A: 0x9F50,\n    0x9F4B: 0x658B,\n    0x9F4E: 0x8D4D,\n    0x9F4F: 0x9F51,\n    0x9F52: 0x9F7F,\n    0x9F54: 0x9F80,\n    0x9F55: 0x9F81,\n    0x9F57: 0x9F82,\n    0x9F59: 0x9F85,\n    0x9F5C: 0x9F87,\n    0x9F5F: 0x9F83,\n    0x9F60: 0x9F86,\n    0x9F61: 0x9F84,\n    0x9F63: 0x51FA,\n    0x9F66: 0x9F88,\n    0x9F67: 0x556E,\n    0x9F6A: 0x9F8A,\n    0x9F6C: 0x9F89,\n    0x9F72: 0x9F8B,\n    0x9F76: 0x816D,\n    0x9F77: 0x9F8C,\n    0x9F8D: 0x9F99,\n    0x9F90: 0x5E9E,\n    0x9F94: 0x9F9A,\n    0x9F95: 0x9F9B,\n    0x9F9C: 0x9F9F,\n}\n\nKanji2Trad_Table = {\n    0x2015: 0x2500,\n    0x2033: 0x3003,\n    0x2211: 0x03A3,\n    0x2227: 0x039B,\n    0x2228: 0xFF36,\n    0x2312: 0xFE35,\n    0x2501: 0x2500,\n    0x2503: 0x2502,\n    0x250F: 0x250C,\n    0x2513: 0x2510,\n    0x2517: 0x2514,\n    0x251B: 0x2518,\n    0x251D: 0x255E,\n    0x2520: 0x251C,\n    0x2523: 0x251C,\n    0x2525: 0x2561,\n    0x2528: 0x2524,\n    0x252B: 0x2524,\n    0x252F: 0x252C,\n    0x2530: 0x252C,\n    0x2533: 0x252C,\n    0x2537: 0x2534,\n    0x2538: 0x2534,\n    0x253B: 0x2534,\n    0x253F: 0x256A,\n    0x2542: 0x253C,\n    0x254B: 0x253C,\n    0x3013: 0x2550,\n    0x30FB: 0x2027,\n    0x3231: 0x682A,\n    0x3232: 0x6709,\n    0x3239: 0x4EE3,\n    0x4E07: 0x842C,\n    0x4E0E: 0x8207,\n    0x4E11: 0x919C,\n    0x4E17: 0x4E16,\n    0x4E21: 0x5169,\n    0x4E28: 0x4E85,\n    0x4E2A: 0x500B,\n    0x4E36: 0x3001,\n    0x4E55: 0x864E,\n    0x4E57: 0x4E58,\n    0x4E62: 0x4E10,\n    0x4E71: 0x4E82,\n    0x4E80: 0x9F9C,\n    0x4E89: 0x722D,\n    0x4E8A: 0x4E8B,\n    0x4E8E: 0x65BC,\n    0x4E91: 0x96F2,\n    0x4E98: 0x4E99,\n    0x4E9C: 0x4E9E,\n    0x4EB0: 0x4EAC,\n    0x4ECE: 0x5F9E,\n    0x4ECF: 0x4F5B,\n    0x4EED: 0x4EDE,\n    0x4EEE: 0x5047,\n    0x4EF7: 0x50F9,\n    0x4EFC: 0x4EFB,\n    0x4F03: 0x52F2,\n    0x4F1A: 0x6703,\n    0x4F1C: 0x5005,\n    0x4F53: 0x9AD4,\n    0x4F59: 0x9918,\n    0x4F8A: 0x89E5,\n    0x4FA0: 0x4FE0,\n    0x4FA1: 0x50F9,\n    0x4FAB: 0x4F5E,\n    0x4FAD: 0x5118,\n    0x4FE3: 0x4FC1,\n    0x4FE4: 0x7CF5,\n    0x4FE5: 0x86CD,\n    0x4FFF: 0x864E,\n    0x5024: 0x503C,\n    0x5036: 0x4FF1,\n    0x5039: 0x5109,\n    0x5042: 0x524D,\n    0x5050: 0x8D17,\n    0x5056: 0x9937,\n    0x506C: 0x50AF,\n    0x5078: 0x5077,\n    0x50CD: 0x52D5,\n    0x50D8: 0x655E,\n    0x50DE: 0x507D,\n    0x50F4: 0x50E9,\n    0x5101: 0x4FCA,\n    0x5116: 0x6FEB,\n    0x513F: 0x5152,\n    0x514A: 0x514C,\n    0x514E: 0x5154,\n    0x5150: 0x5152,\n    0x515A: 0x9EE8,\n    0x5164: 0x6643,\n    0x516A: 0x4FDE,\n    0x5185: 0x5167,\n    0x5186: 0x5713,\n    0x518C: 0x518A,\n    0x5190: 0x5192,\n    0x5199: 0x5BEB,\n    0x519D: 0x5B9C,\n    0x51A2: 0x585A,\n    0x51A6: 0x5BC7,\n    0x51A8: 0x5BCC,\n    0x51A9: 0x5BEB,\n    0x51B2: 0x6C96,\n    0x51B3: 0x6C7A,\n    0x51B4: 0x51B1,\n    0x51B5: 0x6CC1,\n    0x51C4: 0x6DD2,\n    0x51C9: 0x6DBC,\n    0x51CC: 0x6DE9,\n    0x51D6: 0x6E96,\n    0x51DB: 0x51DC,\n    0x51E0: 0x5E7E,\n    0x51E6: 0x8655,\n    0x51EC: 0x98A8,\n    0x51ED: 0x6191,\n    0x51FE: 0x51FD,\n    0x5204: 0x5203,\n    0x520B: 0x520A,\n    0x5215: 0x52A6,\n    0x5227: 0x52AB,\n    0x5239: 0x524E,\n    0x524F: 0x5231,\n    0x5263: 0x528D,\n    0x5264: 0x5291,\n    0x5265: 0x525D,\n    0x5270: 0x5269,\n    0x5271: 0x528D,\n    0x5273: 0x5284,\n    0x5292: 0x528D,\n    0x5294: 0x528D,\n    0x52B1: 0x52F5,\n    0x52B4: 0x52DE,\n    0x52B5: 0x5238,\n    0x52B9: 0x6548,\n    0x52C5: 0x6555,\n    0x52E0: 0x622E,\n    0x52E7: 0x52F8,\n    0x52F2: 0x52F3,\n    0x5300: 0x52FB,\n    0x5301: 0x5169,\n    0x5302: 0x5308,\n    0x5324: 0x5323,\n    0x5333: 0x5969,\n    0x5338: 0x531A,\n    0x533A: 0x5340,\n    0x533B: 0x91AB,\n    0x5346: 0x5352,\n    0x5358: 0x55AE,\n    0x5374: 0x537B,\n    0x5382: 0x5EE0,\n    0x5393: 0x5D16,\n    0x53A0: 0x5EC1,\n    0x53A6: 0x5EC8,\n    0x53A8: 0x5EDA,\n    0x53A9: 0x5EC4,\n    0x53AE: 0x5EDD,\n    0x53B0: 0x5EE0,\n    0x53B3: 0x56B4,\n    0x53C2: 0x53C3,\n    0x53CC: 0x96D9,\n    0x53CE: 0x6536,\n    0x53D9: 0x6558,\n    0x53F6: 0x5354,\n    0x53F6: 0x8449,\n    0x53F7: 0x865F,\n    0x5401: 0x7C72,\n    0x540E: 0x5F8C,\n    0x542C: 0x807D,\n    0x5449: 0x5433,\n    0x5451: 0x541E,\n    0x545F: 0x7384,\n    0x546A: 0x5492,\n    0x548A: 0x548C,\n    0x548F: 0x8A60,\n    0x549C: 0x8421,\n    0x54A4: 0x5412,\n    0x54B2: 0x7B11,\n    0x54B8: 0x9E79,\n    0x54D8: 0x884C,\n    0x5516: 0x555E,\n    0x554C: 0x54B3,\n    0x5553: 0x555F,\n    0x555D: 0x7FC6,\n    0x5586: 0x54F2,\n    0x559E: 0x5527,\n    0x55A9: 0x55BB,\n    0x55B0: 0x98E7,\n    0x55B6: 0x71DF,\n    0x5618: 0x5653,\n    0x5631: 0x56D1,\n    0x5650: 0x5668,\n    0x565B: 0x5699,\n    0x567A: 0x66B3,\n    0x568A: 0x55C5,\n    0x5694: 0x568F,\n    0x56A0: 0x700F,\n    0x56A2: 0x56CA,\n    0x56CE: 0x8D08,\n    0x56D8: 0x56DE,\n    0x56E3: 0x5718,\n    0x56F2: 0x570D,\n    0x56F3: 0x5716,\n    0x56FD: 0x570B,\n    0x5700: 0x570B,\n    0x570F: 0x5708,\n    0x5727: 0x58D3,\n    0x5742: 0x962A,\n    0x574F: 0x58DE,\n    0x5759: 0x5DE0,\n    0x577F: 0x72B6,\n    0x5788: 0x708B,\n    0x57AA: 0x93D3,\n    0x57C0: 0x5782,\n    0x57C8: 0x5CFB,\n    0x57D3: 0x57D2,\n    0x57D6: 0x82B1,\n    0x5815: 0x58AE,\n    0x583A: 0x754C,\n    0x5840: 0x64E5,\n    0x5841: 0x58D8,\n    0x5869: 0x9E7D,\n    0x5870: 0x6D77,\n    0x5872: 0x5834,\n    0x5897: 0x589E,\n    0x58B2: 0x5893,\n    0x58B9: 0x9593,\n    0x58CA: 0x58DE,\n    0x58CC: 0x58E4,\n    0x58DC: 0x7F48,\n    0x58E5: 0x5EDB,\n    0x58EE: 0x58EF,\n    0x58F0: 0x8072,\n    0x58F1: 0x58F9,\n    0x58F2: 0x8CE3,\n    0x58F7: 0x58FA,\n    0x58FB: 0x5A7F,\n    0x5902: 0x8C32,\n    0x5909: 0x8B8A,\n    0x5918: 0x536F,\n    0x591B: 0x591A,\n    0x5932: 0x672C,\n    0x5938: 0x8A87,\n    0x5965: 0x5967,\n    0x5968: 0x734E,\n    0x596C: 0x734E,\n    0x599B: 0x5AB8,\n    0x59AC: 0x5992,\n    0x59C9: 0x59CA,\n    0x59D9: 0x598A,\n    0x59DC: 0x8591,\n    0x59EB: 0x59EC,\n    0x5A1A: 0x5583,\n    0x5A2F: 0x5A1B,\n    0x5B22: 0x5B43,\n    0x5B66: 0x5B78,\n    0x5B8D: 0x8089,\n    0x5B9D: 0x5BF6,\n    0x5B9F: 0x5BE6,\n    0x5BC3: 0x51A4,\n    0x5BC9: 0x9DB4,\n    0x5BDB: 0x5BEC,\n    0x5BDD: 0x5BE2,\n    0x5BF3: 0x5BF6,\n    0x5BFE: 0x5C0D,\n    0x5BFF: 0x58FD,\n    0x5C02: 0x5C08,\n    0x5C05: 0x524B,\n    0x5C06: 0x5C07,\n    0x5C13: 0x723E,\n    0x5C1E: 0x71CE,\n    0x5C20: 0x9BAE,\n    0x5C2D: 0x582F,\n    0x5C38: 0x5C4D,\n    0x5C3D: 0x76E1,\n    0x5C4A: 0x5C46,\n    0x5C53: 0x5C6D,\n    0x5C5E: 0x5C6C,\n    0x5C61: 0x5C62,\n    0x5C76: 0x6703,\n    0x5CB3: 0x5DBD,\n    0x5CBA: 0x5CAD,\n    0x5CBB: 0x577B,\n    0x5CBC: 0x576A,\n    0x5CBE: 0x576B,\n    0x5CE0: 0x5361,\n    0x5CE1: 0x5CFD,\n    0x5CE9: 0x5CE8,\n    0x5CEF: 0x5CF0,\n    0x5CF5: 0x5DB8,\n    0x5CFA: 0x57C2,\n    0x5D15: 0x5D16,\n    0x5D18: 0x5D19,\n    0x5D53: 0x5DD6,\n    0x5D5C: 0x5D0E,\n    0x5D73: 0x5D6F,\n    0x5D8B: 0x5D68,\n    0x5D8C: 0x5CF6,\n    0x5D90: 0x9686,\n    0x5DB9: 0x5CF6,\n    0x5DCC: 0x5DD6,\n    0x5DD3: 0x5DD4,\n    0x5DE3: 0x5DE2,\n    0x5DF5: 0x536E,\n    0x5DFB: 0x5377,\n    0x5E0B: 0x7D19,\n    0x5E2F: 0x5E36,\n    0x5E30: 0x6B78,\n    0x5E47: 0x5E6B,\n    0x5E64: 0x5E63,\n    0x5E72: 0x5E79,\n    0x5E76: 0x4E26,\n    0x5E7A: 0x4E48,\n    0x5E7F: 0x5EE3,\n    0x5E81: 0x5EF3,\n    0x5E83: 0x5EE3,\n    0x5E84: 0x838A,\n    0x5EC3: 0x5EE2,\n    0x5ECF: 0x5EC4,\n    0x5ED0: 0x5EC4,\n    0x5EF0: 0x5EF3,\n    0x5EF8: 0x8FEA,\n    0x5EFB: 0x8FF4,\n    0x5EFC: 0x8FFA,\n    0x5F03: 0x68C4,\n    0x5F09: 0x5958,\n    0x5F0C: 0x58F9,\n    0x5F0D: 0x8CB3,\n    0x5F10: 0x8CB3,\n    0x5F11: 0x5F12,\n    0x5F21: 0x5F35,\n    0x5F25: 0x5F4C,\n    0x5F2F: 0x5F4E,\n    0x5F3E: 0x5F48,\n    0x5F51: 0x8FB9,\n    0x5F53: 0x7576,\n    0x5F5C: 0x5F5D,\n    0x5F66: 0x5F65,\n    0x5F83: 0x5F80,\n    0x5F84: 0x5F91,\n    0x5F93: 0x5F9E,\n    0x5FA1: 0x79A6,\n    0x5FB3: 0x5FB7,\n    0x5FB4: 0x5FB5,\n    0x5FDC: 0x61C9,\n    0x5FF0: 0x60B4,\n    0x601C: 0x6190,\n    0x6031: 0x5306,\n    0x603A: 0x607F,\n    0x604B: 0x6200,\n    0x6060: 0x602A,\n    0x6075: 0x60E0,\n    0x6077: 0x6058,\n    0x608B: 0x541D,\n    0x60A6: 0x6085,\n    0x60A7: 0x5788,\n    0x60A9: 0x60F1,\n    0x60AA: 0x60E1,\n    0x60B3: 0x5FB7,\n    0x60DE: 0x6B23,\n    0x60E3: 0x5A61,\n    0x60E7: 0x61FC,\n    0x60E8: 0x6158,\n    0x610D: 0x6E63,\n    0x6111: 0x6080,\n    0x6120: 0x614D,\n    0x6121: 0x5306,\n    0x6130: 0x7DFE,\n    0x613C: 0x614E,\n    0x613D: 0x535A,\n    0x613F: 0x9858,\n    0x6142: 0x607F,\n    0x6159: 0x615A,\n    0x616F: 0x50B7,\n    0x6187: 0x61A9,\n    0x6198: 0x585A,\n    0x6199: 0x559C,\n    0x61D0: 0x61F7,\n    0x61F4: 0x61FA,\n    0x6213: 0x6216,\n    0x621D: 0x8CCA,\n    0x621E: 0x621B,\n    0x6226: 0x6230,\n    0x622F: 0x6232,\n    0x6238: 0x6236,\n    0x623B: 0x623E,\n    0x624E: 0x7D2E,\n    0x6255: 0x62C2,\n    0x629B: 0x62CB,\n    0x629C: 0x62D4,\n    0x629E: 0x64C7,\n    0x62A6: 0x79C9,\n    0x62C5: 0x64D4,\n    0x62DD: 0x62DC,\n    0x62E0: 0x636E,\n    0x62E1: 0x64F4,\n    0x6302: 0x639B,\n    0x6319: 0x8209,\n    0x631F: 0x633E,\n    0x6327: 0x7FBD,\n    0x633F: 0x63D2,\n    0x635C: 0x641C,\n    0x636E: 0x64DA,\n    0x637B: 0x649A,\n    0x63B2: 0x63ED,\n    0x63B4: 0x6451,\n    0x63B5: 0x547D,\n    0x63BB: 0x6414,\n    0x63FA: 0x6416,\n    0x643A: 0x651C,\n    0x6442: 0x651D,\n    0x6483: 0x64CA,\n    0x64B9: 0x652A,\n    0x64E1: 0x62AC,\n    0x64E7: 0x8209,\n    0x6505: 0x6522,\n    0x6535: 0x590A,\n    0x654D: 0x6558,\n    0x654E: 0x6559,\n    0x6570: 0x6578,\n    0x6588: 0x5B78,\n    0x6589: 0x9F4A,\n    0x658E: 0x9F4B,\n    0x65AD: 0x65B7,\n    0x65D9: 0x65DB,\n    0x65E0: 0x7121,\n    0x65E0: 0x75C3,\n    0x65E7: 0x820A,\n    0x661E: 0x663A,\n    0x663B: 0x6602,\n    0x663C: 0x665D,\n    0x663F: 0x66E0,\n    0x6644: 0x6643,\n    0x664B: 0x6649,\n    0x6652: 0x66EC,\n    0x6657: 0x7F12,\n    0x6667: 0x7693,\n    0x6669: 0x665A,\n    0x6673: 0x6670,\n    0x6681: 0x66C9,\n    0x6683: 0x7F6A,\n    0x668E: 0x6BCE,\n    0x66A6: 0x66C6,\n    0x66BF: 0x6DB1,\n    0x66C1: 0x66A8,\n    0x66F5: 0x66F3,\n    0x66FA: 0x66F9,\n    0x66FD: 0x66FE,\n    0x670E: 0x6EDB,\n    0x6716: 0x6717,\n    0x671E: 0x671F,\n    0x672D: 0x5284,\n    0x6734: 0x6A38,\n    0x6736: 0x6735,\n    0x673A: 0x6A5F,\n    0x6761: 0x689D,\n    0x6765: 0x4F86,\n    0x6770: 0x5091,\n    0x67A0: 0x6A3A,\n    0x67A2: 0x6A1E,\n    0x67A6: 0x6AE8,\n    0x67A9: 0x677E,\n    0x67FB: 0x67E5,\n    0x67FE: 0x67E9,\n    0x6801: 0x67F3,\n    0x6802: 0x6885,\n    0x6804: 0x69AE,\n    0x6816: 0x68F2,\n    0x6822: 0x67CF,\n    0x6852: 0x6851,\n    0x6859: 0x6A21,\n    0x685C: 0x6AFB,\n    0x685D: 0x821B,\n    0x685F: 0x68E7,\n    0x6863: 0x6A94,\n    0x6867: 0x6A9C,\n    0x688D: 0x7682,\n    0x68A6: 0x5922,\n    0x68B6: 0x7DD1,\n    0x68B9: 0x6AB3,\n    0x68BC: 0x6AAE,\n    0x68CA: 0x68CB,\n    0x6900: 0x7897,\n    0x6901: 0x69E8,\n    0x6919: 0x660C,\n    0x691A: 0x64AF,\n    0x691C: 0x6AA2,\n    0x6922: 0x69F6,\n    0x6923: 0x5178,\n    0x6926: 0x68EC,\n    0x6928: 0x5E9C,\n    0x6936: 0x68D5,\n    0x6955: 0x6A62,\n    0x6961: 0x6986,\n    0x6973: 0x6885,\n    0x697C: 0x6A13,\n    0x697D: 0x6A02,\n    0x698A: 0x67DB,\n    0x6998: 0x8845,\n    0x69C7: 0x69D9,\n    0x69D8: 0x6A23,\n    0x69DD: 0x5CF6,\n    0x69DE: 0x6AF3,\n    0x69F9: 0x69D4,\n    0x6A0B: 0x901A,\n    0x6A12: 0x6993,\n    0x6A22: 0x8526,\n    0x6A29: 0x6B0A,\n    0x6A2A: 0x6A6B,\n    0x6A2B: 0x9CD9,\n    0x6A2E: 0x6B1E,\n    0x6A72: 0x559C,\n    0x6A90: 0x7C37,\n    0x6AAA: 0x6ADF,\n    0x6AC1: 0x6993,\n    0x6B05: 0x6AF8,\n    0x6B1D: 0x9B31,\n    0x6B1F: 0x7F50,\n    0x6B27: 0x6B50,\n    0x6B53: 0x6B61,\n    0x6B69: 0x6B65,\n    0x6B6F: 0x9F52,\n    0x6B73: 0x6B72,\n    0x6B74: 0x6B77,\n    0x6B8B: 0x6B98,\n    0x6BB1: 0x6BB2,\n    0x6BB4: 0x6BC6,\n    0x6BBB: 0x6BBC,\n    0x6BCE: 0x6BCF,\n    0x6C14: 0x6C23,\n    0x6C17: 0x6C23,\n    0x6C37: 0x51B0,\n    0x6C5A: 0x6C61,\n    0x6C93: 0x905D,\n    0x6CA1: 0x6C92,\n    0x6CA2: 0x6FA4,\n    0x6CEA: 0x6DDA,\n    0x6D12: 0x7051,\n    0x6D44: 0x6DE8,\n    0x6D45: 0x6DFA,\n    0x6D5C: 0x6FF1,\n    0x6D8C: 0x6E67,\n    0x6D96: 0x849E,\n    0x6D99: 0x6DDA,\n    0x6D9B: 0x6FE4,\n    0x6D9C: 0x7006,\n    0x6DC0: 0x6FB1,\n    0x6DF8: 0x6E05,\n    0x6E07: 0x6E34,\n    0x6E08: 0x6FDF,\n    0x6E09: 0x6D89,\n    0x6E0A: 0x6DF5,\n    0x6E0B: 0x6F80,\n    0x6E13: 0x6EAA,\n    0x6E15: 0x6DF5,\n    0x6E29: 0x6EAB,\n    0x6E38: 0x904A,\n    0x6E76: 0x5263,\n    0x6E7E: 0x7063,\n    0x6E7F: 0x6FD5,\n    0x6E80: 0x6EFF,\n    0x6E8C: 0x6F51,\n    0x6EDD: 0x7027,\n    0x6EDE: 0x6EEF,\n    0x6F11: 0x6E89,\n    0x6F45: 0x704C,\n    0x6F5C: 0x6F5B,\n    0x6F74: 0x7026,\n    0x6F81: 0x6F80,\n    0x6F91: 0x6E9C,\n    0x6FF3: 0x6F5B,\n    0x6FF6: 0x95CA,\n    0x701E: 0x6A36,\n    0x702C: 0x7028,\n    0x706F: 0x71C8,\n    0x7089: 0x7210,\n    0x70B9: 0x9EDE,\n    0x70BB: 0x9A26,\n    0x70DF: 0x7159,\n    0x70F1: 0x70AF,\n    0x7114: 0x7130,\n    0x713C: 0x71D2,\n    0x7155: 0x7199,\n    0x7188: 0x7199,\n    0x71D7: 0x721B,\n    0x71F5: 0x5008,\n    0x7232: 0x70BA,\n    0x723C: 0x4FCE,\n    0x7240: 0x5E8A,\n    0x7282: 0x7281,\n    0x7287: 0x5954,\n    0x72A0: 0x72A7,\n    0x72B2: 0x8C7A,\n    0x72B6: 0x72C0,\n    0x72B9: 0x7336,\n    0x72BE: 0x72AC,\n    0x72E2: 0x8C89,\n    0x72EC: 0x7368,\n    0x72ED: 0x72F9,\n    0x731F: 0x7375,\n    0x732A: 0x8C6C,\n    0x732B: 0x8C93,\n    0x732E: 0x737B,\n    0x732F: 0x8C92,\n    0x734F: 0x8C98,\n    0x7363: 0x7378,\n    0x73C9: 0x6725,\n    0x73C9: 0x7449,\n    0x73CE: 0x73CD,\n    0x73F1: 0x74D4,\n    0x7460: 0x7409,\n    0x7476: 0x7464,\n    0x74A2: 0x7409,\n    0x74EE: 0x7515,\n    0x7501: 0x74F6,\n    0x750E: 0x78DA,\n    0x751E: 0x5617,\n    0x7523: 0x7522,\n    0x753B: 0x756B,\n    0x753C: 0x753A,\n    0x7544: 0x7559,\n    0x7546: 0x755D,\n    0x754A: 0x8015,\n    0x754D: 0x754C,\n    0x7560: 0x58B0,\n    0x7567: 0x7565,\n    0x756D: 0x756C,\n    0x7573: 0x758A,\n    0x7574: 0x7587,\n    0x7582: 0x758A,\n    0x7589: 0x758A,\n    0x758E: 0x758F,\n    0x75B1: 0x5E96,\n    0x75B1: 0x76B0,\n    0x75C3: 0x9938,\n    0x75D2: 0x7662,\n    0x75E9: 0x7626,\n    0x75F4: 0x7661,\n    0x763B: 0x763A,\n    0x7667: 0x569F,\n    0x767A: 0x767C,\n    0x7680: 0x7682,\n    0x7683: 0x8C8C,\n    0x7690: 0x768B,\n    0x76B7: 0x9F13,\n    0x76B9: 0x76B8,\n    0x76D6: 0x84CB,\n    0x76D7: 0x76DC,\n    0x770C: 0x7E23,\n    0x771E: 0x771F,\n    0x7726: 0x7725,\n    0x7740: 0x8457,\n    0x7815: 0x788E,\n    0x783A: 0x792A,\n    0x783F: 0x7926,\n    0x7845: 0x77FD,\n    0x7872: 0x5CEA,\n    0x7874: 0x82B1,\n    0x787A: 0x971B,\n    0x788D: 0x7919,\n    0x78AF: 0x7459,\n    0x78B5: 0x78CC,\n    0x78C6: 0x9AA8,\n    0x793C: 0x79AE,\n    0x7962: 0x79B0,\n    0x7977: 0x79B1,\n    0x7980: 0x7A1F,\n    0x7984: 0x797F,\n    0x7985: 0x79AA,\n    0x799D: 0x7A37,\n    0x79F0: 0x7A31,\n    0x7A0E: 0x7A05,\n    0x7A32: 0x7A3B,\n    0x7A3E: 0x7A3F,\n    0x7A42: 0x7A57,\n    0x7A49: 0x7A1A,\n    0x7A4F: 0x7A69,\n    0x7A50: 0x79CB,\n    0x7A63: 0x7A70,\n    0x7A7D: 0x9631,\n    0x7A83: 0x7ACA,\n    0x7A93: 0x7A97,\n    0x7AB0: 0x7AAF,\n    0x7AC3: 0x7076,\n    0x7AC8: 0x7076,\n    0x7AD2: 0x5947,\n    0x7AD3: 0x860D,\n    0x7ADA: 0x4F47,\n    0x7ADC: 0x9F8D,\n    0x7ADD: 0x4E26,\n    0x7AE2: 0x4FDF,\n    0x7AE7: 0x8D46,\n    0x7AEA: 0x8C4E,\n    0x7AF8: 0x7AF6,\n    0x7B02: 0x8284,\n    0x7B0B: 0x7B4D,\n    0x7B36: 0x77E2,\n    0x7B39: 0x5C5C,\n    0x7B51: 0x7BC9,\n    0x7B5D: 0x7B8F,\n    0x7B6C: 0x837F,\n    0x7B7A: 0x7B50,\n    0x7B86: 0x83CE,\n    0x7B92: 0x5E1A,\n    0x7B9A: 0x5284,\n    0x7B9E: 0x83E4,\n    0x7B9F: 0x83CE,\n    0x7BAA: 0x7C1E,\n    0x7BCF: 0x5D4C,\n    0x7BED: 0x7C60,\n    0x7C12: 0x7BE1,\n    0x7C14: 0x7C11,\n    0x7C17: 0x7BC9,\n    0x7C4F: 0x65D7,\n    0x7C56: 0x7C64,\n    0x7C58: 0x7C50,\n    0x7C7E: 0x9DD4,\n    0x7C83: 0x79D5,\n    0x7C8B: 0x7CB9,\n    0x7C9B: 0x8085,\n    0x7CA4: 0x7CB5,\n    0x7CAE: 0x7CE7,\n    0x7CC0: 0x82B1,\n    0x7CC2: 0x7CDD,\n    0x7CD8: 0x7A3C,\n    0x7CFA: 0x7CFE,\n    0x7D48: 0x5E15,\n    0x7D4B: 0x7E8A,\n    0x7D4C: 0x7D93,\n    0x7D75: 0x7E6A,\n    0x7D76: 0x7D55,\n    0x7D89: 0x7E61,\n    0x7D99: 0x7E7C,\n    0x7D9A: 0x7E8C,\n    0x7DAB: 0x7DDA,\n    0x7DCF: 0x7E3D,\n    0x7DD1: 0x7DA0,\n    0x7DD6: 0x7DD2,\n    0x7DDC: 0x7DBF,\n    0x7DE4: 0x7D32,\n    0x7E01: 0x7DE3,\n    0x7E04: 0x7E69,\n    0x7E26: 0x7E31,\n    0x7E4A: 0x7E96,\n    0x7E4B: 0x7E6B,\n    0x7E4D: 0x7E61,\n    0x7E66: 0x7E48,\n    0x7E7F: 0x8964,\n    0x7E89: 0x7E98,\n    0x7E8E: 0x7E96,\n    0x7E92: 0x7E8F,\n    0x7F47: 0x6A3D,\n    0x7F4E: 0x7F48,\n    0x7F51: 0x7DB2,\n    0x7F78: 0x7F70,\n    0x7FA1: 0x7FA8,\n    0x7FA3: 0x7FA4,\n    0x7FAE: 0x7FB9,\n    0x7FC6: 0x7FE0,\n    0x803B: 0x6065,\n    0x805F: 0x5A7F,\n    0x8061: 0x8070,\n    0x8068: 0x806F,\n    0x8074: 0x807D,\n    0x80AC: 0x75A3,\n    0x80C6: 0x81BD,\n    0x8107: 0x8105,\n    0x8109: 0x8108,\n    0x811A: 0x8173,\n    0x8131: 0x812B,\n    0x8133: 0x8166,\n    0x8193: 0x8178,\n    0x81B8: 0x9AD3,\n    0x81C8: 0x81D8,\n    0x81D3: 0x81DF,\n    0x820E: 0x820D,\n    0x8217: 0x8216,\n    0x8218: 0x9928,\n    0x8229: 0x8239,\n    0x822E: 0x826B,\n    0x8262: 0x6F81,\n    0x826A: 0x6AD3,\n    0x8276: 0x8277,\n    0x82A6: 0x8606,\n    0x82C5: 0x5208,\n    0x82F9: 0x860B,\n    0x8303: 0x7BC4,\n    0x830E: 0x8396,\n    0x8318: 0x8354,\n    0x8350: 0x85A6,\n    0x8358: 0x838A,\n    0x8362: 0x83B8,\n    0x8385: 0x849E,\n    0x839F: 0x83E1,\n    0x83B1: 0x840A,\n    0x83B5: 0x83DF,\n    0x83D3: 0x679C,\n    0x83F7: 0x5E1A,\n    0x8462: 0x84CB,\n    0x8471: 0x8525,\n    0x848B: 0x8523,\n    0x84AD: 0x6964,\n    0x84DA: 0x84E8,\n    0x8535: 0x85CF,\n    0x854B: 0x854A,\n    0x855A: 0x843C,\n    0x8597: 0x5712,\n    0x85AB: 0x85B0,\n    0x85AC: 0x85E5,\n    0x85AE: 0x85EA,\n    0x85C1: 0x69C1,\n    0x85C1: 0x7A3F,\n    0x8602: 0x854A,\n    0x8613: 0x8607,\n    0x8616: 0x6AF1,\n    0x862F: 0x8569,\n    0x8630: 0x7E35,\n    0x865A: 0x865B,\n    0x866B: 0x87F2,\n    0x8695: 0x8836,\n    0x86AB: 0x9B91,\n    0x86CD: 0x87A2,\n    0x86CE: 0x8823,\n    0x86EE: 0x883B,\n    0x86EF: 0x8766,\n    0x8749: 0x87EC,\n    0x874B: 0x881F,\n    0x874E: 0x880D,\n    0x877F: 0x8805,\n    0x87C7: 0x87C6,\n    0x8807: 0x8823,\n    0x880E: 0x87D2,\n    0x880F: 0x87F9,\n    0x8827: 0x8839,\n    0x8842: 0x8844,\n    0x8846: 0x773E,\n    0x885E: 0x885B,\n    0x88AE: 0x5AFE,\n    0x88B4: 0x8932,\n    0x88B5: 0x887D,\n    0x88BF: 0x8902,\n    0x88C4: 0x7D4E,\n    0x88C5: 0x88DD,\n    0x88F5: 0x88F4,\n    0x891D: 0x894C,\n    0x8941: 0x7E48,\n    0x8943: 0x8912,\n    0x894D: 0x96DC,\n    0x8977: 0x718E,\n    0x8987: 0x9738,\n    0x898A: 0x7F88,\n    0x899A: 0x89BA,\n    0x89A7: 0x89BD,\n    0x89A9: 0x7779,\n    0x89B3: 0x89C0,\n    0x89E6: 0x89F8,\n    0x89E7: 0x89E3,\n    0x8A33: 0x8B6F,\n    0x8A37: 0x547B,\n    0x8A89: 0x8B7D,\n    0x8AAC: 0x8AAA,\n    0x8AAD: 0x8B80,\n    0x8ACC: 0x8AEB,\n    0x8ADA: 0x97FF,\n    0x8B0C: 0x6B4C,\n    0x8B21: 0x8B20,\n    0x8B4C: 0x8A1B,\n    0x8B5B: 0x8B56,\n    0x8B71: 0x5584,\n    0x8B72: 0x8B93,\n    0x8B83: 0x8B9A,\n    0x8B90: 0x4EC7,\n    0x8C37: 0x7A40,\n    0x8C7C: 0x8C94,\n    0x8C8E: 0x730A,\n    0x8CAD: 0x8CEA,\n    0x8CAE: 0x8CB3,\n    0x8CCD: 0x8D13,\n    0x8CCE: 0x8CE4,\n    0x8CDB: 0x8D0A,\n    0x8D0B: 0x8D17,\n    0x8D12: 0x8CE2,\n    0x8D71: 0x8D70,\n    0x8D76: 0x8D95,\n    0x8DD6: 0x8E60,\n    0x8DF5: 0x8E10,\n    0x8E08: 0x758F,\n    0x8E0A: 0x8E34,\n    0x8E2A: 0x8E64,\n    0x8E99: 0x8EAA,\n    0x8EAF: 0x8EC0,\n    0x8EB0: 0x9AD4,\n    0x8EB1: 0x8EB2,\n    0x8EC6: 0x9AD4,\n    0x8EE2: 0x8F49,\n    0x8EE3: 0x8F5F,\n    0x8EFD: 0x8F15,\n    0x8F0C: 0x8F1B,\n    0x8F19: 0x8F12,\n    0x8F5C: 0x99AA,\n    0x8F9E: 0x8FAD,\n    0x8FA7: 0x8FA8,\n    0x8FBA: 0x908A,\n    0x8FE9: 0x9087,\n    0x8FEF: 0x9003,\n    0x8FF9: 0x8DE1,\n    0x900E: 0x9052,\n    0x9013: 0x905E,\n    0x9039: 0x9054,\n    0x9045: 0x9072,\n    0x9056: 0x5583,\n    0x9061: 0x6EAF,\n    0x9065: 0x9059,\n    0x9089: 0x908A,\n    0x90A8: 0x9E37,\n    0x90C1: 0x9B31,\n    0x90DE: 0x90CE,\n    0x90F7: 0x9109,\n    0x9115: 0x9109,\n    0x9154: 0x9189,\n    0x9197: 0x91B1,\n    0x91A4: 0x91AC,\n    0x91B8: 0x91C0,\n    0x91C8: 0x91CB,\n    0x91CC: 0x88CF,\n    0x91D6: 0x6364,\n    0x91E1: 0x91DC,\n    0x91E5: 0x7936,\n    0x91F6: 0x82F9,\n    0x91FC: 0x5203,\n    0x920E: 0x9264,\n    0x922C: 0x9438,\n    0x923C: 0x805B,\n    0x9244: 0x9435,\n    0x9262: 0x7F3D,\n    0x9271: 0x7926,\n    0x9277: 0x7CED,\n    0x92AD: 0x9322,\n    0x92ED: 0x92B3,\n    0x92F2: 0x59C9,\n    0x92F3: 0x9444,\n    0x932C: 0x934A,\n    0x9332: 0x9304,\n    0x9348: 0x7CB8,\n    0x936E: 0x63F8,\n    0x93AD: 0x93AE,\n    0x93C6: 0x9475,\n    0x93E5: 0x92B9,\n    0x941A: 0x930F,\n    0x9421: 0x9435,\n    0x9441: 0x9350,\n    0x9453: 0x9397,\n    0x945A: 0x947D,\n    0x945B: 0x7926,\n    0x9587: 0x9589,\n    0x9596: 0x53A2,\n    0x9599: 0x9B27,\n    0x95A0: 0x958F,\n    0x95A2: 0x95DC,\n    0x95A7: 0x9B28,\n    0x95B2: 0x95B1,\n    0x95D8: 0x9B25,\n    0x9665: 0x9677,\n    0x9666: 0x5CF6,\n    0x967A: 0x96AA,\n    0x968F: 0x96A8,\n    0x969D: 0x5CF6,\n    0x96A0: 0x96B1,\n    0x96A3: 0x9130,\n    0x96AF: 0x5CF6,\n    0x96B2: 0x9A2D,\n    0x96B6: 0x64C0,\n    0x96B6: 0x96B8,\n    0x96B7: 0x96B8,\n    0x96D1: 0x96DC,\n    0x970A: 0x9748,\n    0x9751: 0x9752,\n    0x9755: 0x6B63,\n    0x9759: 0x975C,\n    0x9764: 0x76B0,\n    0x976D: 0x97CC,\n    0x9771: 0x97CC,\n    0x97B4: 0x97DD,\n    0x97B4: 0x99E0,\n    0x97C8: 0x896A,\n    0x97EE: 0x97ED,\n    0x97F2: 0x9F4F,\n    0x97F5: 0x97FB,\n    0x981A: 0x9838,\n    0x982C: 0x9830,\n    0x9834: 0x7A4E,\n    0x983C: 0x8CF4,\n    0x983D: 0x9839,\n    0x984B: 0x816E,\n    0x9854: 0x984F,\n    0x9855: 0x986F,\n    0x98C3: 0x98C4,\n    0x98DC: 0x7FFB,\n    0x98EE: 0x98F2,\n    0x991D: 0x98FE,\n    0x9920: 0x9905,\n    0x9942: 0x5EBD,\n    0x99BC: 0x7B29,\n    0x99C4: 0x99B1,\n    0x99C5: 0x9A5B,\n    0x99C6: 0x9A45,\n    0x99C8: 0x9A45,\n    0x9A12: 0x9A37,\n    0x9A13: 0x9A57,\n    0x9A28: 0x9A52,\n    0x9AC4: 0x9AD3,\n    0x9AD9: 0x9AD8,\n    0x9AE2: 0x9B04,\n    0x9AEA: 0x9AEE,\n    0x9AF4: 0x62C2,\n    0x9B2A: 0x9B25,\n    0x9B72: 0x9C78,\n    0x9B83: 0x8E75,\n    0x9B8E: 0x9BF0,\n    0x9B8F: 0x8165,\n    0x9B97: 0x8492,\n    0x9B9F: 0x55B9,\n    0x9BCF: 0x54DA,\n    0x9BF1: 0x6119,\n    0x9C00: 0x9BC7,\n    0x9C0A: 0x7E65,\n    0x9C0C: 0x9C0D,\n    0x9C10: 0x9C77,\n    0x9C15: 0x8766,\n    0x9C1B: 0x9EA2,\n    0x9C2E: 0x9EA2,\n    0x9C2F: 0x676B,\n    0x9C3A: 0x61C0,\n    0x9CEB: 0x96C1,\n    0x9CEC: 0x9CE7,\n    0x9D0E: 0x9DD7,\n    0x9D2A: 0x9D25,\n    0x9D2C: 0x9DAF,\n    0x9D44: 0x9D1F,\n    0x9D50: 0x9373,\n    0x9D5E: 0x9D5D,\n    0x9D8F: 0x96DE,\n    0x9DAB: 0x99A4,\n    0x9DC4: 0x96DE,\n    0x9DC6: 0x9DCF,\n    0x9E78: 0x9E7C,\n    0x9EA6: 0x9EA5,\n    0x9EAA: 0x9EB5,\n    0x9EB8: 0x9EA9,\n    0x9EB9: 0x9EB4,\n    0x9EBA: 0x9EB5,\n    0x9EBF: 0x7E3B,\n    0x9EC4: 0x9EC3,\n    0x9ED2: 0x9ED1,\n    0x9ED9: 0x9ED8,\n    0x9F08: 0x9C49,\n    0x9F21: 0x9F20,\n    0x9F62: 0x9F61,\n    0x9F9D: 0x79CB,\n    0xF9DC: 0x9686,\n    0xFA10: 0x585A,\n    0xFA11: 0x5D0E,\n    0xFA12: 0x6674,\n    0xFA14: 0x6AF8,\n    0xFA15: 0x51DE,\n    0xFA16: 0x8C6C,\n    0xFA17: 0x76CA,\n    0xFA18: 0x79AE,\n    0xFA19: 0x795E,\n    0xFA1A: 0x7965,\n    0xFA1B: 0x798F,\n    0xFA1C: 0x9756,\n    0xFA1D: 0x7CBE,\n    0xFA1E: 0x7FBD,\n    0xFA22: 0x8AF8,\n    0xFA25: 0x9038,\n    0xFA26: 0x90FD,\n    0xFA29: 0x5CF6,\n    0xFA2A: 0x98EF,\n    0xFA2B: 0x98FC,\n    0xFA2C: 0x9928,\n    0xFA2D: 0x9DB4,\n}\n\nKanji2Simp_Table = {\n    0x2015: 0x2500,\n    0x2033: 0x3003,\n    0x2211: 0x03A3,\n    0x2227: 0x039B,\n    0x2228: 0xFF36,\n    0x2312: 0xFE35,\n    0x2501: 0x2500,\n    0x2503: 0x2502,\n    0x250F: 0x250C,\n    0x2513: 0x2510,\n    0x2517: 0x2514,\n    0x251B: 0x2518,\n    0x251D: 0x255E,\n    0x2520: 0x251C,\n    0x2523: 0x251C,\n    0x2525: 0x2561,\n    0x2528: 0x2524,\n    0x252B: 0x2524,\n    0x252F: 0x252C,\n    0x2530: 0x252C,\n    0x2533: 0x252C,\n    0x2537: 0x2534,\n    0x2538: 0x2534,\n    0x253B: 0x2534,\n    0x253F: 0x256A,\n    0x2542: 0x253C,\n    0x254B: 0x253C,\n    0x3013: 0x2550,\n    0x30FB: 0xFF0E,\n    0x3231: 0x682A,\n    0x3232: 0x6709,\n    0x3239: 0x4EE3,\n    0x4E17: 0x4E16,\n    0x4E21: 0x4E24,\n    0x4E26: 0x5E76,\n    0x4E28: 0x4E85,\n    0x4E36: 0x3001,\n    0x4E55: 0x864E,\n    0x4E57: 0x4E58,\n    0x4E62: 0x4E10,\n    0x4E7E: 0x5E72,\n    0x4E80: 0x9F9F,\n    0x4E82: 0x4E71,\n    0x4E8A: 0x4E8B,\n    0x4E99: 0x4E98,\n    0x4E9C: 0x4E9A,\n    0x4E9E: 0x4E9A,\n    0x4EB0: 0x4EAC,\n    0x4ECF: 0x4F5B,\n    0x4EED: 0x4EDE,\n    0x4EEE: 0x5047,\n    0x4EFC: 0x4EFB,\n    0x4F03: 0x52F2,\n    0x4F1C: 0x5005,\n    0x4F47: 0x4F2B,\n    0x4F75: 0x5E76,\n    0x4F86: 0x6765,\n    0x4F8A: 0x89E5,\n    0x4F96: 0x4ED1,\n    0x4FA1: 0x4EF7,\n    0x4FAB: 0x4F5E,\n    0x4FAD: 0x5C3D,\n    0x4FB6: 0x4FA3,\n    0x4FC2: 0x7CFB,\n    0x4FE4: 0x7CF5,\n    0x4FE5: 0x86CD,\n    0x4FFF: 0x864E,\n    0x5006: 0x4FE9,\n    0x5009: 0x4ED3,\n    0x500B: 0x4E2A,\n    0x5011: 0x4EEC,\n    0x5016: 0x5E78,\n    0x5023: 0x4EFF,\n    0x5024: 0x503C,\n    0x502B: 0x4F26,\n    0x5036: 0x4FF1,\n    0x5039: 0x4FED,\n    0x5042: 0x524D,\n    0x5049: 0x4F1F,\n    0x5050: 0x8D5D,\n    0x5056: 0x9987,\n    0x5074: 0x4FA7,\n    0x5075: 0x4FA6,\n    0x5078: 0x5077,\n    0x507D: 0x4F2A,\n    0x5091: 0x6770,\n    0x5098: 0x4F1E,\n    0x5099: 0x5907,\n    0x509A: 0x6548,\n    0x50AD: 0x4F63,\n    0x50B3: 0x4F20,\n    0x50B4: 0x4F1B,\n    0x50B5: 0x503A,\n    0x50B7: 0x4F24,\n    0x50BE: 0x503E,\n    0x50C2: 0x507B,\n    0x50C5: 0x4EC5,\n    0x50C9: 0x4F65,\n    0x50CD: 0x52A8,\n    0x50D1: 0x4FA8,\n    0x50D5: 0x4EC6,\n    0x50D8: 0x655E,\n    0x50DE: 0x4F2A,\n    0x50E5: 0x4FA5,\n    0x50F4: 0x50E9,\n    0x50F9: 0x4EF7,\n    0x5100: 0x4EEA,\n    0x5101: 0x4FCA,\n    0x5102: 0x4FAC,\n    0x5104: 0x4EBF,\n    0x5109: 0x4FED,\n    0x5114: 0x4FE6,\n    0x5115: 0x4FAA,\n    0x5116: 0x6EE5,\n    0x5118: 0x5C3D,\n    0x511F: 0x507F,\n    0x512A: 0x4F18,\n    0x5132: 0x50A8,\n    0x5137: 0x4FEA,\n    0x513A: 0x50A9,\n    0x513B: 0x50A5,\n    0x513C: 0x4FE8,\n    0x5147: 0x51F6,\n    0x514A: 0x5151,\n    0x514C: 0x5151,\n    0x514E: 0x5154,\n    0x5150: 0x513F,\n    0x5152: 0x513F,\n    0x5164: 0x6643,\n    0x5169: 0x4E24,\n    0x516A: 0x4FDE,\n    0x5186: 0x5706,\n    0x518A: 0x518C,\n    0x5190: 0x5192,\n    0x519D: 0x5B9C,\n    0x51A6: 0x5BC7,\n    0x51A8: 0x5BCC,\n    0x51A9: 0x5199,\n    0x51AA: 0x5E42,\n    0x51B4: 0x51B1,\n    0x51CD: 0x51BB,\n    0x51D6: 0x51C6,\n    0x51DC: 0x51DB,\n    0x51E6: 0x5904,\n    0x51EC: 0x98CE,\n    0x51F1: 0x51EF,\n    0x51FE: 0x51FD,\n    0x5204: 0x5203,\n    0x520B: 0x520A,\n    0x5215: 0x52A6,\n    0x5225: 0x522B,\n    0x5227: 0x52AB,\n    0x522A: 0x5220,\n    0x5239: 0x524E,\n    0x5244: 0x522D,\n    0x5247: 0x5219,\n    0x524B: 0x514B,\n    0x524F: 0x5231,\n    0x525B: 0x521A,\n    0x5263: 0x5251,\n    0x5264: 0x5242,\n    0x5270: 0x5269,\n    0x5271: 0x5251,\n    0x5273: 0x672D,\n    0x5274: 0x5240,\n    0x5275: 0x521B,\n    0x5283: 0x5212,\n    0x5287: 0x5267,\n    0x5289: 0x5218,\n    0x528D: 0x5251,\n    0x5291: 0x5242,\n    0x5292: 0x5251,\n    0x5294: 0x5251,\n    0x52B4: 0x52B3,\n    0x52B5: 0x5238,\n    0x52B9: 0x6548,\n    0x52C1: 0x52B2,\n    0x52C5: 0x6555,\n    0x52D5: 0x52A8,\n    0x52D7: 0x52D6,\n    0x52D9: 0x52A1,\n    0x52DB: 0x52CB,\n    0x52DD: 0x80DC,\n    0x52DE: 0x52B3,\n    0x52E0: 0x622E,\n    0x52E2: 0x52BF,\n    0x52E3: 0x7EE9,\n    0x52E6: 0x527F,\n    0x52E7: 0x529D,\n    0x52F2: 0x52CB,\n    0x52F3: 0x52CB,\n    0x52F5: 0x52B1,\n    0x52F8: 0x529D,\n    0x5301: 0x4E24,\n    0x5302: 0x5308,\n    0x5324: 0x5323,\n    0x532F: 0x6C47,\n    0x5331: 0x532E,\n    0x5333: 0x5941,\n    0x5338: 0x531A,\n    0x5340: 0x533A,\n    0x5346: 0x5352,\n    0x5354: 0x534F,\n    0x5358: 0x5355,\n    0x537B: 0x5374,\n    0x5393: 0x5D16,\n    0x53A0: 0x5395,\n    0x53AD: 0x538C,\n    0x53B0: 0x5382,\n    0x53B2: 0x5389,\n    0x53B3: 0x4E25,\n    0x53C3: 0x53C2,\n    0x53CE: 0x6536,\n    0x53E2: 0x4E1B,\n    0x53F6: 0x534F,\n    0x5442: 0x5415,\n    0x5449: 0x5434,\n    0x5451: 0x541E,\n    0x545F: 0x7384,\n    0x546A: 0x5492,\n    0x548A: 0x548C,\n    0x549C: 0x8421,\n    0x54B2: 0x7B11,\n    0x54BC: 0x5459,\n    0x54D8: 0x884C,\n    0x54E1: 0x5458,\n    0x54E2: 0x5494,\n    0x5504: 0x5457,\n    0x5516: 0x54D1,\n    0x5538: 0x5FF5,\n    0x554C: 0x54B3,\n    0x554F: 0x95EE,\n    0x5553: 0x542F,\n    0x5557: 0x5556,\n    0x555D: 0x7FC6,\n    0x5563: 0x8854,\n    0x5586: 0x54F2,\n    0x559A: 0x5524,\n    0x559E: 0x5527,\n    0x55A9: 0x55BB,\n    0x55AA: 0x4E27,\n    0x55AB: 0x5403,\n    0x55AC: 0x4E54,\n    0x55AE: 0x5355,\n    0x55B0: 0x98E7,\n    0x55B6: 0x8425,\n    0x55C7: 0x556C,\n    0x55DA: 0x545C,\n    0x5606: 0x53F9,\n    0x5614: 0x5455,\n    0x5616: 0x5567,\n    0x5617: 0x5C1D,\n    0x5629: 0x54D7,\n    0x562F: 0x5578,\n    0x5638: 0x5452,\n    0x5650: 0x5668,\n    0x565B: 0x556E,\n    0x5674: 0x55B7,\n    0x5678: 0x5428,\n    0x567A: 0x66B3,\n    0x5680: 0x549B,\n    0x5687: 0x5413,\n    0x568A: 0x55C5,\n    0x5694: 0x568F,\n    0x56A0: 0x6D4F,\n    0x56A2: 0x56CA,\n    0x56A5: 0x54BD,\n    0x56AE: 0x5411,\n    0x56B4: 0x4E25,\n    0x56B6: 0x5624,\n    0x56C0: 0x556D,\n    0x56C1: 0x55EB,\n    0x56C2: 0x56A3,\n    0x56C8: 0x5453,\n    0x56CE: 0x8D60,\n    0x56D1: 0x5631,\n    0x56D8: 0x56DE,\n    0x56E3: 0x56E2,\n    0x56F2: 0x56F4,\n    0x56F3: 0x56FE,\n    0x5700: 0x56FD,\n    0x570B: 0x56FD,\n    0x570D: 0x56F4,\n    0x570F: 0x5708,\n    0x5712: 0x56ED,\n    0x5713: 0x5706,\n    0x5716: 0x56FE,\n    0x5718: 0x56E2,\n    0x5727: 0x538B,\n    0x5742: 0x962A,\n    0x5759: 0x5DE0,\n    0x577F: 0x72B6,\n    0x5788: 0x708B,\n    0x57AA: 0x93D3,\n    0x57C0: 0x5782,\n    0x57C8: 0x5CFB,\n    0x57D3: 0x57D2,\n    0x57D6: 0x82B1,\n    0x57F7: 0x6267,\n    0x5805: 0x575A,\n    0x580A: 0x57A9,\n    0x581D: 0x57DA,\n    0x582F: 0x5C27,\n    0x5831: 0x62A5,\n    0x5834: 0x573A,\n    0x583A: 0x754C,\n    0x5840: 0x64E5,\n    0x5841: 0x5792,\n    0x584A: 0x5757,\n    0x584B: 0x8314,\n    0x5852: 0x57D8,\n    0x5857: 0x6D82,\n    0x585A: 0x51A2,\n    0x5862: 0x575E,\n    0x5869: 0x76D0,\n    0x5870: 0x6D77,\n    0x5872: 0x573A,\n    0x5875: 0x5C18,\n    0x5879: 0x5811,\n    0x5897: 0x589E,\n    0x589C: 0x5760,\n    0x58AE: 0x5815,\n    0x58B2: 0x5893,\n    0x58B3: 0x575F,\n    0x58B9: 0x95F4,\n    0x58BB: 0x5899,\n    0x58BE: 0x57A6,\n    0x58C7: 0x575B,\n    0x58CA: 0x574F,\n    0x58CC: 0x58E4,\n    0x58D3: 0x538B,\n    0x58D8: 0x5792,\n    0x58D9: 0x5739,\n    0x58DC: 0x575B,\n    0x58DE: 0x574F,\n    0x58DF: 0x5784,\n    0x58E5: 0x5EDB,\n    0x58EF: 0x58EE,\n    0x58F1: 0x58F9,\n    0x58F2: 0x5356,\n    0x58F7: 0x58F6,\n    0x58FA: 0x58F6,\n    0x58FB: 0x5A7F,\n    0x58FC: 0x58F8,\n    0x58FD: 0x5BFF,\n    0x5902: 0x8C32,\n    0x5909: 0x53D8,\n    0x5918: 0x536F,\n    0x591B: 0x591A,\n    0x5922: 0x68A6,\n    0x5925: 0x4F19,\n    0x5932: 0x672C,\n    0x593E: 0x5939,\n    0x5950: 0x5942,\n    0x5967: 0x5965,\n    0x5968: 0x5956,\n    0x5969: 0x5941,\n    0x596A: 0x593A,\n    0x596C: 0x5956,\n    0x596E: 0x594B,\n    0x599B: 0x5AB8,\n    0x599D: 0x5986,\n    0x59AC: 0x5992,\n    0x59C9: 0x59CA,\n    0x59D9: 0x598A,\n    0x59E6: 0x5978,\n    0x59EA: 0x4F84,\n    0x59EB: 0x59EC,\n    0x5A1A: 0x5583,\n    0x5A2F: 0x5A31,\n    0x5A41: 0x5A04,\n    0x5A66: 0x5987,\n    0x5A6C: 0x6DEB,\n    0x5ABC: 0x5AAA,\n    0x5ABD: 0x5988,\n    0x5ACB: 0x8885,\n    0x5AD7: 0x59AA,\n    0x5AFA: 0x5A34,\n    0x5AFB: 0x5A34,\n    0x5B0B: 0x5A75,\n    0x5B0C: 0x5A07,\n    0x5B22: 0x5A18,\n    0x5B2A: 0x5AD4,\n    0x5B30: 0x5A74,\n    0x5B3E: 0x61D2,\n    0x5B43: 0x5A18,\n    0x5B6B: 0x5B59,\n    0x5B78: 0x5B66,\n    0x5B8D: 0x8089,\n    0x5B9F: 0x5B9E,\n    0x5BAE: 0x5BAB,\n    0x5BC3: 0x51A4,\n    0x5BC9: 0x9E64,\n    0x5BDB: 0x5BBD,\n    0x5BE2: 0x5BDD,\n    0x5BE6: 0x5B9E,\n    0x5BE7: 0x5B81,\n    0x5BE9: 0x5BA1,\n    0x5BEB: 0x5199,\n    0x5BEC: 0x5BBD,\n    0x5BF3: 0x5B9D,\n    0x5BF5: 0x5BA0,\n    0x5BF6: 0x5B9D,\n    0x5BFE: 0x5BF9,\n    0x5C02: 0x4E13,\n    0x5C05: 0x514B,\n    0x5C07: 0x5C06,\n    0x5C08: 0x4E13,\n    0x5C0B: 0x5BFB,\n    0x5C0D: 0x5BF9,\n    0x5C0E: 0x5BFC,\n    0x5C13: 0x5C14,\n    0x5C1E: 0x71CE,\n    0x5C20: 0x9C9C,\n    0x5C2D: 0x5C27,\n    0x5C46: 0x5C4A,\n    0x5C4D: 0x5C38,\n    0x5C53: 0x5C43,\n    0x5C64: 0x5C42,\n    0x5C6C: 0x5C5E,\n    0x5C76: 0x4F1A,\n    0x5CA1: 0x5188,\n    0x5CBA: 0x5CAD,\n    0x5CBB: 0x577B,\n    0x5CBC: 0x576A,\n    0x5CBE: 0x576B,\n    0x5CE0: 0x5361,\n    0x5CE9: 0x5CE8,\n    0x5CEF: 0x5CF0,\n    0x5CF5: 0x5D58,\n    0x5CF6: 0x5C9B,\n    0x5CFA: 0x57C2,\n    0x5CFD: 0x5CE1,\n    0x5D11: 0x6606,\n    0x5D15: 0x5D16,\n    0x5D17: 0x5C97,\n    0x5D18: 0x4ED1,\n    0x5D19: 0x4ED1,\n    0x5D22: 0x5CE5,\n    0x5D50: 0x5C9A,\n    0x5D53: 0x5CA9,\n    0x5D5C: 0x5D0E,\n    0x5D73: 0x5D6F,\n    0x5D84: 0x5D2D,\n    0x5D87: 0x5C96,\n    0x5D8B: 0x5D68,\n    0x5D8C: 0x5C9B,\n    0x5D90: 0x9686,\n    0x5DA2: 0x5CE3,\n    0x5DAE: 0x5D04,\n    0x5DB8: 0x5D58,\n    0x5DB9: 0x5C9B,\n    0x5DBA: 0x5CAD,\n    0x5DBC: 0x5C7F,\n    0x5DBD: 0x5CB3,\n    0x5DCC: 0x5CA9,\n    0x5DD2: 0x5CE6,\n    0x5DD3: 0x5DC5,\n    0x5DD6: 0x5CA9,\n    0x5DE3: 0x5DE2,\n    0x5DF5: 0x536E,\n    0x5DFB: 0x5377,\n    0x5E0B: 0x7EB8,\n    0x5E25: 0x5E05,\n    0x5E2B: 0x5E08,\n    0x5E2F: 0x5E26,\n    0x5E30: 0x5F52,\n    0x5E33: 0x5E10,\n    0x5E36: 0x5E26,\n    0x5E40: 0x5E27,\n    0x5E43: 0x5E0F,\n    0x5E47: 0x5E2E,\n    0x5E57: 0x5E3C,\n    0x5E5F: 0x5E1C,\n    0x5E63: 0x5E01,\n    0x5E64: 0x5E01,\n    0x5E79: 0x5E72,\n    0x5E7E: 0x51E0,\n    0x5E81: 0x5385,\n    0x5E83: 0x5E7F,\n    0x5EAB: 0x5E93,\n    0x5EC1: 0x5395,\n    0x5EC2: 0x53A2,\n    0x5EC3: 0x5E9F,\n    0x5EC8: 0x53A6,\n    0x5ECF: 0x53A9,\n    0x5ED0: 0x53A9,\n    0x5EDA: 0x53A8,\n    0x5EDD: 0x53AE,\n    0x5EDF: 0x5E99,\n    0x5EE0: 0x5382,\n    0x5EE1: 0x5E91,\n    0x5EE2: 0x5E9F,\n    0x5EE3: 0x5E7F,\n    0x5EE9: 0x5EEA,\n    0x5EEC: 0x5E90,\n    0x5EF0: 0x5385,\n    0x5EF3: 0x5385,\n    0x5EF8: 0x8FEA,\n    0x5EFB: 0x56DE,\n    0x5EFC: 0x4E43,\n    0x5F09: 0x5958,\n    0x5F0C: 0x58F9,\n    0x5F0D: 0x8D30,\n    0x5F10: 0x8D30,\n    0x5F11: 0x5F12,\n    0x5F14: 0x540A,\n    0x5F21: 0x5F20,\n    0x5F35: 0x5F20,\n    0x5F37: 0x5F3A,\n    0x5F3E: 0x5F39,\n    0x5F48: 0x5F39,\n    0x5F4A: 0x5F3A,\n    0x5F4C: 0x5F25,\n    0x5F4E: 0x5F2F,\n    0x5F51: 0x8FB9,\n    0x5F59: 0x6C47,\n    0x5F5C: 0x5F5D,\n    0x5F6B: 0x96D5,\n    0x5F7F: 0x4F5B,\n    0x5F83: 0x5F80,\n    0x5F8C: 0x540E,\n    0x5F91: 0x5F84,\n    0x5F93: 0x4ECE,\n    0x5F9E: 0x4ECE,\n    0x5FA0: 0x5F95,\n    0x5FA9: 0x590D,\n    0x5FB3: 0x5FB7,\n    0x5FB4: 0x5F81,\n    0x5FB9: 0x5F7B,\n    0x5FDC: 0x5E94,\n    0x5FF0: 0x60B4,\n    0x6031: 0x5306,\n    0x603A: 0x607F,\n    0x6046: 0x6052,\n    0x6060: 0x602A,\n    0x6065: 0x803B,\n    0x6075: 0x60E0,\n    0x6077: 0x6058,\n    0x6085: 0x60A6,\n    0x608B: 0x541D,\n    0x60A7: 0x5788,\n    0x60A9: 0x607C,\n    0x60AA: 0x6076,\n    0x60B3: 0x5FB7,\n    0x60B5: 0x6005,\n    0x60B6: 0x95F7,\n    0x60BD: 0x51C4,\n    0x60DE: 0x6B23,\n    0x60E1: 0x6076,\n    0x60E3: 0x5A61,\n    0x60F1: 0x607C,\n    0x60F2: 0x607D,\n    0x60FB: 0x607B,\n    0x6111: 0x6080,\n    0x611B: 0x7231,\n    0x6121: 0x5306,\n    0x6128: 0x60AB,\n    0x6130: 0x7DFE,\n    0x6134: 0x6006,\n    0x6137: 0x607A,\n    0x613C: 0x614E,\n    0x613D: 0x535A,\n    0x613E: 0x5FFE,\n    0x6142: 0x607F,\n    0x6144: 0x6817,\n    0x6147: 0x6BB7,\n    0x614B: 0x6001,\n    0x614D: 0x6120,\n    0x6158: 0x60E8,\n    0x6159: 0x60ED,\n    0x615A: 0x60ED,\n    0x615F: 0x6078,\n    0x6163: 0x60EF,\n    0x616B: 0x6002,\n    0x616E: 0x8651,\n    0x616F: 0x4F24,\n    0x6173: 0x60AD,\n    0x6174: 0x6151,\n    0x6176: 0x5E86,\n    0x617E: 0x6B32,\n    0x6182: 0x5FE7,\n    0x6187: 0x61A9,\n    0x618A: 0x60EB,\n    0x6190: 0x601C,\n    0x6191: 0x51ED,\n    0x6196: 0x616D,\n    0x6198: 0x51A2,\n    0x6199: 0x559C,\n    0x619A: 0x60EE,\n    0x61A4: 0x6124,\n    0x61AB: 0x60AF,\n    0x61AE: 0x6003,\n    0x61B2: 0x5BAA,\n    0x61B6: 0x5FC6,\n    0x61C7: 0x6073,\n    0x61C9: 0x5E94,\n    0x61CC: 0x603F,\n    0x61CD: 0x61D4,\n    0x61D0: 0x6000,\n    0x61E3: 0x61D1,\n    0x61F2: 0x60E9,\n    0x61F4: 0x5FCF,\n    0x61F6: 0x61D2,\n    0x61F7: 0x6000,\n    0x61F8: 0x60AC,\n    0x61FA: 0x5FCF,\n    0x61FC: 0x60E7,\n    0x61FD: 0x6B22,\n    0x61FE: 0x6151,\n    0x6200: 0x604B,\n    0x6213: 0x6216,\n    0x6214: 0x620B,\n    0x621D: 0x8D3C,\n    0x621E: 0x621B,\n    0x6226: 0x6218,\n    0x622F: 0x620F,\n    0x6230: 0x6218,\n    0x6232: 0x620F,\n    0x6238: 0x6237,\n    0x623B: 0x623E,\n    0x6255: 0x62C2,\n    0x629C: 0x62D4,\n    0x629E: 0x62E9,\n    0x62A6: 0x79C9,\n    0x62DD: 0x62DC,\n    0x62E0: 0x636E,\n    0x62E1: 0x6269,\n    0x6319: 0x4E3E,\n    0x6327: 0x7FBD,\n    0x633E: 0x631F,\n    0x633F: 0x63D2,\n    0x635C: 0x641C,\n    0x6368: 0x820D,\n    0x636B: 0x626A,\n    0x6372: 0x5377,\n    0x6383: 0x626B,\n    0x639B: 0x6302,\n    0x63A1: 0x91C7,\n    0x63B2: 0x63ED,\n    0x63B5: 0x547D,\n    0x63BB: 0x6414,\n    0x63C0: 0x62E3,\n    0x63DA: 0x626C,\n    0x63DB: 0x6362,\n    0x63EE: 0x6325,\n    0x63FA: 0x6447,\n    0x6406: 0x6784,\n    0x640D: 0x635F,\n    0x6416: 0x6447,\n    0x6417: 0x6363,\n    0x6436: 0x62A2,\n    0x643E: 0x69A8,\n    0x6442: 0x6444,\n    0x646F: 0x631A,\n    0x6476: 0x629F,\n    0x647A: 0x6298,\n    0x6483: 0x51FB,\n    0x6488: 0x635E,\n    0x6493: 0x6320,\n    0x649A: 0x637B,\n    0x64A5: 0x62E8,\n    0x64AB: 0x629A,\n    0x64B2: 0x6251,\n    0x64B9: 0x6405,\n    0x64BB: 0x631E,\n    0x64C1: 0x62E5,\n    0x64C7: 0x62E9,\n    0x64D4: 0x62C5,\n    0x64DA: 0x636E,\n    0x64E0: 0x6324,\n    0x64E1: 0x62AC,\n    0x64E3: 0x6363,\n    0x64E7: 0x4E3E,\n    0x64EC: 0x62DF,\n    0x64EF: 0x6448,\n    0x64F1: 0x6401,\n    0x64F2: 0x63B7,\n    0x64F4: 0x6269,\n    0x64FA: 0x6446,\n    0x64FE: 0x6270,\n    0x6505: 0x6512,\n    0x651C: 0x643A,\n    0x651D: 0x6444,\n    0x6523: 0x631B,\n    0x6524: 0x644A,\n    0x652A: 0x6405,\n    0x652C: 0x63FD,\n    0x6535: 0x590A,\n    0x6537: 0x8003,\n    0x654D: 0x53D9,\n    0x654E: 0x6559,\n    0x6557: 0x8D25,\n    0x6558: 0x53D9,\n    0x6575: 0x654C,\n    0x6578: 0x6570,\n    0x6582: 0x655B,\n    0x6583: 0x6BD9,\n    0x6588: 0x5B66,\n    0x6589: 0x9F50,\n    0x658E: 0x658B,\n    0x65AC: 0x65A9,\n    0x65B7: 0x65AD,\n    0x65BC: 0x4E8E,\n    0x65D9: 0x65DB,\n    0x65E0: 0x75C3,\n    0x6607: 0x5347,\n    0x661E: 0x663A,\n    0x663B: 0x6602,\n    0x663F: 0x65F7,\n    0x6642: 0x65F6,\n    0x6644: 0x6643,\n    0x6649: 0x664B,\n    0x6657: 0x7F12,\n    0x665D: 0x663C,\n    0x6667: 0x7693,\n    0x6669: 0x665A,\n    0x6673: 0x6670,\n    0x6681: 0x6653,\n    0x6683: 0x7F6A,\n    0x6688: 0x6655,\n    0x6689: 0x6656,\n    0x668E: 0x6BCE,\n    0x6698: 0x65F8,\n    0x66A2: 0x7545,\n    0x66A6: 0x5386,\n    0x66AB: 0x6682,\n    0x66BF: 0x6DB1,\n    0x66C1: 0x66A8,\n    0x66C4: 0x6654,\n    0x66C7: 0x6619,\n    0x66C9: 0x6653,\n    0x66D6: 0x66A7,\n    0x66E0: 0x65F7,\n    0x66F5: 0x66F3,\n    0x66F8: 0x4E66,\n    0x66FA: 0x66F9,\n    0x66FD: 0x66FE,\n    0x6703: 0x4F1A,\n    0x670E: 0x6EDB,\n    0x6716: 0x6717,\n    0x671E: 0x671F,\n    0x6727: 0x80E7,\n    0x6736: 0x6735,\n    0x6771: 0x4E1C,\n    0x67A0: 0x6866,\n    0x67A6: 0x680C,\n    0x67A9: 0x677E,\n    0x67B4: 0x62D0,\n    0x67F5: 0x6805,\n    0x67FB: 0x67E5,\n    0x67FE: 0x67E9,\n    0x6801: 0x67F3,\n    0x6802: 0x6885,\n    0x6804: 0x8363,\n    0x6822: 0x67CF,\n    0x6852: 0x6851,\n    0x6859: 0x6A21,\n    0x685C: 0x6A31,\n    0x685D: 0x821B,\n    0x685F: 0x6808,\n    0x687F: 0x6746,\n    0x688D: 0x7682,\n    0x6894: 0x6800,\n    0x689D: 0x6761,\n    0x689F: 0x67AD,\n    0x68B1: 0x6346,\n    0x68B6: 0x7DD1,\n    0x68B9: 0x69DF,\n    0x68C4: 0x5F03,\n    0x68CA: 0x68CB,\n    0x68D7: 0x67A3,\n    0x68DF: 0x680B,\n    0x68E7: 0x6808,\n    0x68F2: 0x6816,\n    0x6900: 0x7897,\n    0x690F: 0x6860,\n    0x6919: 0x660C,\n    0x691A: 0x64AF,\n    0x691C: 0x68C0,\n    0x6922: 0x69F6,\n    0x6923: 0x5178,\n    0x6926: 0x684A,\n    0x6928: 0x5E9C,\n    0x6936: 0x68D5,\n    0x694A: 0x6768,\n    0x6953: 0x67AB,\n    0x6955: 0x692D,\n    0x6961: 0x6986,\n    0x6968: 0x6862,\n    0x696D: 0x4E1A,\n    0x6973: 0x6885,\n    0x6975: 0x6781,\n    0x697D: 0x4E50,\n    0x698A: 0x67DB,\n    0x6998: 0x8845,\n    0x69AE: 0x8363,\n    0x69BF: 0x6864,\n    0x69C3: 0x76D8,\n    0x69C7: 0x69D9,\n    0x69CB: 0x6784,\n    0x69CD: 0x67AA,\n    0x69D3: 0x6760,\n    0x69D8: 0x6837,\n    0x69DD: 0x5C9B,\n    0x69DE: 0x680A,\n    0x69E7: 0x6920,\n    0x69E8: 0x6901,\n    0x69F9: 0x69D4,\n    0x6A02: 0x4E50,\n    0x6A05: 0x679E,\n    0x6A0B: 0x901A,\n    0x6A12: 0x6993,\n    0x6A13: 0x697C,\n    0x6A19: 0x6807,\n    0x6A1E: 0x67A2,\n    0x6A22: 0x8311,\n    0x6A23: 0x6837,\n    0x6A29: 0x6743,\n    0x6A2B: 0x9CD9,\n    0x6A2E: 0x68C2,\n    0x6A38: 0x6734,\n    0x6A39: 0x6811,\n    0x6A3A: 0x6866,\n    0x6A48: 0x6861,\n    0x6A4B: 0x6865,\n    0x6A5F: 0x673A,\n    0x6A62: 0x692D,\n    0x6A6B: 0x6A2A,\n    0x6A72: 0x559C,\n    0x6A9C: 0x6867,\n    0x6AA2: 0x68C0,\n    0x6AA3: 0x6A2F,\n    0x6AAA: 0x680E,\n    0x6AAE: 0x68BC,\n    0x6AB3: 0x69DF,\n    0x6AB8: 0x67E0,\n    0x6ABB: 0x69DB,\n    0x6AC1: 0x6993,\n    0x6AC2: 0x68F9,\n    0x6AC3: 0x67DC,\n    0x6AD3: 0x6A79,\n    0x6ADA: 0x6988,\n    0x6ADB: 0x6809,\n    0x6ADE: 0x6A7C,\n    0x6ADF: 0x680E,\n    0x6AE8: 0x680C,\n    0x6AEA: 0x67A5,\n    0x6AFA: 0x68C2,\n    0x6AFB: 0x6A31,\n    0x6B04: 0x680F,\n    0x6B05: 0x6989,\n    0x6B0A: 0x6743,\n    0x6B12: 0x683E,\n    0x6B16: 0x6984,\n    0x6B1D: 0x90C1,\n    0x6B1F: 0x7F50,\n    0x6B3D: 0x94A6,\n    0x6B4E: 0x53F9,\n    0x6B50: 0x6B27,\n    0x6B53: 0x6B22,\n    0x6B5B: 0x655B,\n    0x6B5F: 0x6B24,\n    0x6B61: 0x6B22,\n    0x6B69: 0x6B65,\n    0x6B6F: 0x9F7F,\n    0x6B73: 0x5C81,\n    0x6B74: 0x5386,\n    0x6B78: 0x5F52,\n    0x6B7F: 0x6B81,\n    0x6B98: 0x6B8B,\n    0x6B9E: 0x6B92,\n    0x6BA4: 0x6B87,\n    0x6BAB: 0x6B9A,\n    0x6BAF: 0x6BA1,\n    0x6BB1: 0x6B7C,\n    0x6BB2: 0x6B7C,\n    0x6BBA: 0x6740,\n    0x6BBB: 0x58F3,\n    0x6BBC: 0x58F3,\n    0x6BC0: 0x6BC1,\n    0x6BC6: 0x6BB4,\n    0x6BCE: 0x6BCF,\n    0x6BEC: 0x7403,\n    0x6C08: 0x6BE1,\n    0x6C17: 0x6C14,\n    0x6C23: 0x6C14,\n    0x6C37: 0x51B0,\n    0x6C3E: 0x6CDB,\n    0x6C4E: 0x6CDB,\n    0x6C5A: 0x6C61,\n    0x6C7A: 0x51B3,\n    0x6C8D: 0x51B1,\n    0x6C92: 0x6CA1,\n    0x6C96: 0x51B2,\n    0x6CA2: 0x6CFD,\n    0x6CC1: 0x51B5,\n    0x6D29: 0x6CC4,\n    0x6D36: 0x6C79,\n    0x6D44: 0x51C0,\n    0x6D5C: 0x6EE8,\n    0x6D79: 0x6D43,\n    0x6D87: 0x6CFE,\n    0x6D96: 0x8385,\n    0x6D99: 0x6CEA,\n    0x6D9C: 0x6E0E,\n    0x6DBC: 0x51C9,\n    0x6DD2: 0x51C4,\n    0x6DE8: 0x51C0,\n    0x6DEA: 0x6CA6,\n    0x6DF5: 0x6E0A,\n    0x6DF8: 0x6E05,\n    0x6DFA: 0x6D45,\n    0x6E07: 0x6E34,\n    0x6E08: 0x6D4E,\n    0x6E09: 0x6D89,\n    0x6E0B: 0x6DA9,\n    0x6E13: 0x6EAA,\n    0x6E15: 0x6E0A,\n    0x6E19: 0x6DA3,\n    0x6E1B: 0x51CF,\n    0x6E26: 0x6DA1,\n    0x6E2C: 0x6D4B,\n    0x6E3E: 0x6D51,\n    0x6E4A: 0x51D1,\n    0x6E67: 0x6D8C,\n    0x6E6F: 0x6C64,\n    0x6E76: 0x5263,\n    0x6E80: 0x6EE1,\n    0x6E8C: 0x6CFC,\n    0x6E96: 0x51C6,\n    0x6E9D: 0x6C9F,\n    0x6EC4: 0x6CA7,\n    0x6EC5: 0x706D,\n    0x6ECC: 0x6DA4,\n    0x6EDD: 0x6CF7,\n    0x6EEC: 0x6CAA,\n    0x6EEF: 0x6EDE,\n    0x6EF2: 0x6E17,\n    0x6EF7: 0x5364,\n    0x6EF8: 0x6D52,\n    0x6EFE: 0x6EDA,\n    0x6EFF: 0x6EE1,\n    0x6F01: 0x6E14,\n    0x6F11: 0x6E89,\n    0x6F22: 0x6C49,\n    0x6F23: 0x6D9F,\n    0x6F2C: 0x6E0D,\n    0x6F32: 0x6DA8,\n    0x6F38: 0x6E10,\n    0x6F3F: 0x6D46,\n    0x6F41: 0x988D,\n    0x6F45: 0x704C,\n    0x6F54: 0x6D01,\n    0x6F5B: 0x6F5C,\n    0x6F5F: 0x8204,\n    0x6F64: 0x6DA6,\n    0x6F6F: 0x6D54,\n    0x6F70: 0x6E83,\n    0x6F80: 0x6DA9,\n    0x6F81: 0x6DA9,\n    0x6F82: 0x6F84,\n    0x6F86: 0x6D47,\n    0x6F91: 0x6E9C,\n    0x6F97: 0x6DA7,\n    0x6FA4: 0x6CFD,\n    0x6FB1: 0x6DC0,\n    0x6FC1: 0x6D4A,\n    0x6FC3: 0x6D53,\n    0x6FD4: 0x6CB5,\n    0x6FD5: 0x6E7F,\n    0x6FD8: 0x6CDE,\n    0x6FDB: 0x8499,\n    0x6FDF: 0x6D4E,\n    0x6FE4: 0x6D9B,\n    0x6FEB: 0x6EE5,\n    0x6FEC: 0x6D5A,\n    0x6FF1: 0x6EE8,\n    0x6FF3: 0x6F5C,\n    0x6FF6: 0x9614,\n    0x6FFA: 0x6E85,\n    0x6FFE: 0x6EE4,\n    0x7005: 0x6EE2,\n    0x7009: 0x6CFB,\n    0x700B: 0x6E16,\n    0x700F: 0x6D4F,\n    0x7015: 0x6FD2,\n    0x7018: 0x6CF8,\n    0x701D: 0x6CA5,\n    0x701E: 0x6A36,\n    0x701F: 0x6F47,\n    0x7026: 0x6F74,\n    0x7027: 0x6CF7,\n    0x7028: 0x6FD1,\n    0x702C: 0x6FD1,\n    0x7030: 0x5F25,\n    0x7032: 0x6F4B,\n    0x703E: 0x6F9C,\n    0x7051: 0x6D12,\n    0x7058: 0x6EE9,\n    0x7063: 0x6E7E,\n    0x707D: 0x707E,\n    0x70BA: 0x4E3A,\n    0x70BB: 0x9A26,\n    0x70CF: 0x4E4C,\n    0x70F1: 0x70AF,\n    0x7114: 0x7130,\n    0x7121: 0x65E0,\n    0x713C: 0x70E7,\n    0x7146: 0x7145,\n    0x7147: 0x8F89,\n    0x7149: 0x70BC,\n    0x7155: 0x7199,\n    0x7156: 0x6696,\n    0x7159: 0x70DF,\n    0x7162: 0x8315,\n    0x7165: 0x7115,\n    0x7169: 0x70E6,\n    0x716C: 0x7080,\n    0x7188: 0x7199,\n    0x71B1: 0x70ED,\n    0x71BE: 0x70BD,\n    0x71C1: 0x70E8,\n    0x71C8: 0x706F,\n    0x71C9: 0x7096,\n    0x71D0: 0x78F7,\n    0x71D2: 0x70E7,\n    0x71D7: 0x70C2,\n    0x71DF: 0x8425,\n    0x71E6: 0x707F,\n    0x71EC: 0x6BC1,\n    0x71ED: 0x70DB,\n    0x71F5: 0x5008,\n    0x71FB: 0x718F,\n    0x71FC: 0x70EC,\n    0x71FE: 0x7118,\n    0x71FF: 0x8000,\n    0x720D: 0x70C1,\n    0x7210: 0x7089,\n    0x721B: 0x70C2,\n    0x722D: 0x4E89,\n    0x7232: 0x4E3A,\n    0x723A: 0x7237,\n    0x723C: 0x4FCE,\n    0x723E: 0x5C14,\n    0x723F: 0x4E2C,\n    0x7240: 0x5E8A,\n    0x7246: 0x5899,\n    0x724B: 0x7B3A,\n    0x7258: 0x724D,\n    0x7274: 0x62B5,\n    0x727D: 0x7275,\n    0x7282: 0x7281,\n    0x7287: 0x5954,\n    0x7296: 0x8366,\n    0x72A0: 0x727A,\n    0x72A2: 0x728A,\n    0x72A7: 0x727A,\n    0x72B2: 0x8C7A,\n    0x72BE: 0x72AC,\n    0x72E2: 0x8C89,\n    0x72F9: 0x72ED,\n    0x72FD: 0x72C8,\n    0x731F: 0x730E,\n    0x732F: 0x8C92,\n    0x7336: 0x72B9,\n    0x7344: 0x72F1,\n    0x7345: 0x72EE,\n    0x734E: 0x5956,\n    0x734F: 0x8C98,\n    0x7363: 0x517D,\n    0x7368: 0x72EC,\n    0x736A: 0x72EF,\n    0x7370: 0x72DE,\n    0x7372: 0x83B7,\n    0x7375: 0x730E,\n    0x7377: 0x72B7,\n    0x7378: 0x517D,\n    0x737A: 0x736D,\n    0x737B: 0x732E,\n    0x73C9: 0x6725,\n    0x73CE: 0x73CD,\n    0x73EE: 0x4F69,\n    0x73F1: 0x748E,\n    0x73FE: 0x73B0,\n    0x743A: 0x73D0,\n    0x743F: 0x73F2,\n    0x7460: 0x7409,\n    0x7463: 0x7410,\n    0x7464: 0x7476,\n    0x7469: 0x83B9,\n    0x746A: 0x739B,\n    0x746F: 0x7405,\n    0x7489: 0x740F,\n    0x74A2: 0x7409,\n    0x74B0: 0x73AF,\n    0x74BD: 0x73BA,\n    0x74CA: 0x743C,\n    0x74CF: 0x73D1,\n    0x74D4: 0x748E,\n    0x7501: 0x74F6,\n    0x750C: 0x74EF,\n    0x750E: 0x7816,\n    0x7515: 0x74EE,\n    0x751E: 0x5C1D,\n    0x7523: 0x4EA7,\n    0x7526: 0x82CF,\n    0x752F: 0x5B81,\n    0x753C: 0x753A,\n    0x7544: 0x7559,\n    0x7546: 0x4EA9,\n    0x754A: 0x8015,\n    0x754D: 0x754C,\n    0x755D: 0x4EA9,\n    0x7560: 0x575B,\n    0x7562: 0x6BD5,\n    0x7567: 0x7565,\n    0x756B: 0x753B,\n    0x756D: 0x756C,\n    0x7570: 0x5F02,\n    0x7573: 0x8FED,\n    0x7576: 0x5F53,\n    0x7582: 0x8FED,\n    0x7587: 0x7574,\n    0x7589: 0x8FED,\n    0x758A: 0x8FED,\n    0x758E: 0x758F,\n    0x75B1: 0x5E96,\n    0x75C3: 0x9938,\n    0x75D9: 0x75C9,\n    0x75E9: 0x7626,\n    0x75FA: 0x75F9,\n    0x7609: 0x6108,\n    0x760B: 0x75AF,\n    0x760D: 0x75A1,\n    0x7621: 0x75AE,\n    0x7627: 0x759F,\n    0x763B: 0x7618,\n    0x7642: 0x7597,\n    0x7646: 0x75E8,\n    0x7647: 0x75EB,\n    0x7652: 0x6108,\n    0x7658: 0x75A0,\n    0x7661: 0x75F4,\n    0x7662: 0x75D2,\n    0x7667: 0x569F,\n    0x7667: 0x75AC,\n    0x7669: 0x765E,\n    0x766C: 0x7663,\n    0x7670: 0x75C8,\n    0x7672: 0x766B,\n    0x767A: 0x53D1,\n    0x767C: 0x53D1,\n    0x7680: 0x7682,\n    0x7683: 0x8C8C,\n    0x7690: 0x768B,\n    0x769A: 0x7691,\n    0x76B0: 0x75B1,\n    0x76B7: 0x9F13,\n    0x76B8: 0x76B2,\n    0x76B9: 0x76B2,\n    0x76BA: 0x76B1,\n    0x76C3: 0x676F,\n    0x76DC: 0x76D7,\n    0x76DE: 0x76CF,\n    0x76E1: 0x5C3D,\n    0x76E3: 0x76D1,\n    0x76E4: 0x76D8,\n    0x76E7: 0x5362,\n    0x76EA: 0x8361,\n    0x770C: 0x53BF,\n    0x771E: 0x771F,\n    0x7725: 0x7726,\n    0x779E: 0x7792,\n    0x77BC: 0x7751,\n    0x77C7: 0x8499,\n    0x77DA: 0x77A9,\n    0x77EF: 0x77EB,\n    0x7815: 0x788E,\n    0x7832: 0x70AE,\n    0x783F: 0x77FF,\n    0x7864: 0x7856,\n    0x786F: 0x781A,\n    0x7872: 0x5CEA,\n    0x7874: 0x82B1,\n    0x787A: 0x7075,\n    0x78A9: 0x7855,\n    0x78AF: 0x7459,\n    0x78B5: 0x78CC,\n    0x78BA: 0x786E,\n    0x78BC: 0x7801,\n    0x78C6: 0x9AA8,\n    0x78D0: 0x76D8,\n    0x78D1: 0x7859,\n    0x78DA: 0x7816,\n    0x78E7: 0x789B,\n    0x78EF: 0x77F6,\n    0x78FD: 0x7857,\n    0x790E: 0x7840,\n    0x7919: 0x788D,\n    0x7926: 0x77FF,\n    0x792A: 0x783A,\n    0x792B: 0x783E,\n    0x792C: 0x77FE,\n    0x7950: 0x4F51,\n    0x7955: 0x79D8,\n    0x797F: 0x7984,\n    0x798D: 0x7978,\n    0x798E: 0x796F,\n    0x799D: 0x7A37,\n    0x79A6: 0x5FA1,\n    0x79AA: 0x7985,\n    0x79AE: 0x793C,\n    0x79B0: 0x7962,\n    0x79BF: 0x79C3,\n    0x7A08: 0x79C6,\n    0x7A1C: 0x68F1,\n    0x7A1F: 0x7980,\n    0x7A2E: 0x79CD,\n    0x7A31: 0x79F0,\n    0x7A32: 0x7A3B,\n    0x7A3E: 0x7A3F,\n    0x7A40: 0x8C37,\n    0x7A42: 0x7A57,\n    0x7A49: 0x7A1A,\n    0x7A4D: 0x79EF,\n    0x7A4E: 0x9896,\n    0x7A4F: 0x7A33,\n    0x7A50: 0x79CB,\n    0x7A61: 0x7A51,\n    0x7A62: 0x79FD,\n    0x7A63: 0x7A70,\n    0x7A69: 0x7A33,\n    0x7A6B: 0x83B7,\n    0x7A7D: 0x9631,\n    0x7A93: 0x7A97,\n    0x7AA9: 0x7A9D,\n    0x7AAA: 0x6D3C,\n    0x7AAE: 0x7A77,\n    0x7AAF: 0x7A91,\n    0x7AB0: 0x7A91,\n    0x7AB6: 0x7AAD,\n    0x7ABA: 0x7AA5,\n    0x7AC3: 0x7076,\n    0x7AC4: 0x7A9C,\n    0x7AC5: 0x7A8D,\n    0x7AC7: 0x7AA6,\n    0x7AC8: 0x7076,\n    0x7ACA: 0x7A83,\n    0x7AD2: 0x5947,\n    0x7AD3: 0x860D,\n    0x7ADA: 0x4F2B,\n    0x7ADC: 0x9F99,\n    0x7ADD: 0x5E76,\n    0x7AE2: 0x4FDF,\n    0x7AE7: 0x8D46,\n    0x7AEA: 0x7AD6,\n    0x7AF6: 0x7ADE,\n    0x7AF8: 0x7ADE,\n    0x7B02: 0x8284,\n    0x7B36: 0x77E2,\n    0x7B39: 0x5C49,\n    0x7B46: 0x7B14,\n    0x7B4D: 0x7B0B,\n    0x7B67: 0x7B15,\n    0x7B6C: 0x837F,\n    0x7B7A: 0x7B50,\n    0x7B86: 0x83CE,\n    0x7B87: 0x4E2A,\n    0x7B8B: 0x7B3A,\n    0x7B8F: 0x7B5D,\n    0x7B92: 0x5E1A,\n    0x7B9A: 0x672D,\n    0x7B9E: 0x83E4,\n    0x7B9F: 0x83CE,\n    0x7BC0: 0x8282,\n    0x7BC4: 0x8303,\n    0x7BC9: 0x7B51,\n    0x7BCB: 0x7BA7,\n    0x7BCF: 0x5D4C,\n    0x7BE0: 0x7B71,\n    0x7BE4: 0x7B03,\n    0x7BE9: 0x7B5B,\n    0x7BED: 0x7B3C,\n    0x7BF3: 0x7B5A,\n    0x7C00: 0x7BA6,\n    0x7C0D: 0x7BD3,\n    0x7C11: 0x84D1,\n    0x7C12: 0x7BE1,\n    0x7C14: 0x84D1,\n    0x7C17: 0x7B51,\n    0x7C21: 0x7B80,\n    0x7C23: 0x7BD1,\n    0x7C2B: 0x7BAB,\n    0x7C37: 0x6A90,\n    0x7C3D: 0x7B7E,\n    0x7C3E: 0x5E18,\n    0x7C43: 0x7BEE,\n    0x7C4C: 0x7B79,\n    0x7C4F: 0x65D7,\n    0x7C50: 0x85E4,\n    0x7C56: 0x7B7E,\n    0x7C58: 0x85E4,\n    0x7C5F: 0x7C41,\n    0x7C60: 0x7B3C,\n    0x7C64: 0x7B7E,\n    0x7C65: 0x94A5,\n    0x7C6C: 0x7BF1,\n    0x7C7E: 0x9DD4,\n    0x7C83: 0x79D5,\n    0x7C8B: 0x7CB9,\n    0x7C9B: 0x8083,\n    0x7CA7: 0x5986,\n    0x7CC0: 0x82B1,\n    0x7CC2: 0x7CC1,\n    0x7CD8: 0x7A3C,\n    0x7CDE: 0x7CAA,\n    0x7CE2: 0x6A21,\n    0x7CE7: 0x7CAE,\n    0x7CF2: 0x7C9D,\n    0x7CF4: 0x7C74,\n    0x7CF6: 0x7C9C,\n    0x7CF8: 0x7E9F,\n    0x7CFA: 0x7EA0,\n    0x7CFE: 0x7EA0,\n    0x7D00: 0x7EAA,\n    0x7D02: 0x7EA3,\n    0x7D04: 0x7EA6,\n    0x7D05: 0x7EA2,\n    0x7D06: 0x7EA1,\n    0x7D0B: 0x7EB9,\n    0x7D0D: 0x7EB3,\n    0x7D10: 0x7EBD,\n    0x7D14: 0x7EAF,\n    0x7D15: 0x7EB0,\n    0x7D17: 0x7EB1,\n    0x7D18: 0x7EAE,\n    0x7D19: 0x7EB8,\n    0x7D1A: 0x7EA7,\n    0x7D1B: 0x7EB7,\n    0x7D1C: 0x7EAD,\n    0x7D21: 0x7EBA,\n    0x7D2E: 0x624E,\n    0x7D30: 0x7EC6,\n    0x7D32: 0x7EC1,\n    0x7D33: 0x7EC5,\n    0x7D35: 0x7EBB,\n    0x7D39: 0x7ECD,\n    0x7D3A: 0x7EC0,\n    0x7D3F: 0x7ED0,\n    0x7D42: 0x7EC8,\n    0x7D43: 0x5F26,\n    0x7D44: 0x7EC4,\n    0x7D46: 0x7ECA,\n    0x7D48: 0x5E15,\n    0x7D4B: 0x7EA9,\n    0x7D4C: 0x7ECF,\n    0x7D4E: 0x7ED7,\n    0x7D4F: 0x7EC1,\n    0x7D50: 0x7ED3,\n    0x7D5B: 0x7EE6,\n    0x7D5E: 0x7EDE,\n    0x7D61: 0x7EDC,\n    0x7D62: 0x7EDA,\n    0x7D66: 0x7ED9,\n    0x7D68: 0x7ED2,\n    0x7D71: 0x7EDF,\n    0x7D72: 0x4E1D,\n    0x7D73: 0x7EDB,\n    0x7D75: 0x7ED8,\n    0x7D76: 0x7EDD,\n    0x7D79: 0x7EE2,\n    0x7D89: 0x7EE3,\n    0x7D8F: 0x7EE5,\n    0x7D93: 0x7ECF,\n    0x7D99: 0x7EE7,\n    0x7D9A: 0x7EED,\n    0x7D9C: 0x7EFC,\n    0x7DA0: 0x7EFF,\n    0x7DA2: 0x7EF8,\n    0x7DA3: 0x7EFB,\n    0x7DAB: 0x7EBF,\n    0x7DAC: 0x7EF6,\n    0x7DAD: 0x7EF4,\n    0x7DAF: 0x7EF9,\n    0x7DB0: 0x7EFE,\n    0x7DB1: 0x7EB2,\n    0x7DB2: 0x7F51,\n    0x7DB4: 0x7F00,\n    0x7DB5: 0x5F69,\n    0x7DB8: 0x7EB6,\n    0x7DBA: 0x7EEE,\n    0x7DBB: 0x7EFD,\n    0x7DBD: 0x7EF0,\n    0x7DBE: 0x7EEB,\n    0x7DBF: 0x7EF5,\n    0x7DC7: 0x7F01,\n    0x7DCA: 0x7D27,\n    0x7DCB: 0x7EEF,\n    0x7DCF: 0x603B,\n    0x7DD1: 0x7EFF,\n    0x7DD2: 0x7EEA,\n    0x7DD6: 0x7EEA,\n    0x7DD8: 0x7F04,\n    0x7DDA: 0x7EBF,\n    0x7DDC: 0x7EF5,\n    0x7DDD: 0x7F09,\n    0x7DDE: 0x7F0E,\n    0x7DE0: 0x7F14,\n    0x7DE1: 0x7F17,\n    0x7DE4: 0x7EC1,\n    0x7DE8: 0x7F16,\n    0x7DE9: 0x7F13,\n    0x7DEC: 0x7F05,\n    0x7DEF: 0x7EAC,\n    0x7DF2: 0x7F08,\n    0x7DF4: 0x7EC3,\n    0x7DFB: 0x81F4,\n    0x7E01: 0x7F18,\n    0x7E04: 0x7EF3,\n    0x7E09: 0x7F19,\n    0x7E0A: 0x7F22,\n    0x7E0B: 0x7F12,\n    0x7E1B: 0x7F1A,\n    0x7E1E: 0x7F1F,\n    0x7E1F: 0x7F1B,\n    0x7E23: 0x53BF,\n    0x7E26: 0x7EB5,\n    0x7E2B: 0x7F1D,\n    0x7E2E: 0x7F29,\n    0x7E31: 0x7EB5,\n    0x7E32: 0x7F27,\n    0x7E35: 0x7F26,\n    0x7E37: 0x7F15,\n    0x7E39: 0x7F25,\n    0x7E3D: 0x603B,\n    0x7E3E: 0x7EE9,\n    0x7E43: 0x7EF7,\n    0x7E46: 0x7F2A,\n    0x7E4A: 0x7EA4,\n    0x7E4B: 0x7CFB,\n    0x7E4D: 0x7EE3,\n    0x7E52: 0x7F2F,\n    0x7E54: 0x7EC7,\n    0x7E55: 0x7F2E,\n    0x7E56: 0x4F1E,\n    0x7E59: 0x7FFB,\n    0x7E5A: 0x7F2D,\n    0x7E5E: 0x7ED5,\n    0x7E66: 0x8941,\n    0x7E69: 0x7EF3,\n    0x7E6A: 0x7ED8,\n    0x7E6D: 0x8327,\n    0x7E70: 0x7F32,\n    0x7E79: 0x7ECE,\n    0x7E7C: 0x7EE7,\n    0x7E7D: 0x7F24,\n    0x7E7F: 0x8934,\n    0x7E88: 0x7F2C,\n    0x7E89: 0x7F35,\n    0x7E8A: 0x7EA9,\n    0x7E8C: 0x7EED,\n    0x7E8E: 0x7EA4,\n    0x7E8F: 0x7F20,\n    0x7E92: 0x7F20,\n    0x7E93: 0x7F28,\n    0x7E96: 0x7EA4,\n    0x7E9C: 0x7F06,\n    0x7F47: 0x6A3D,\n    0x7F4C: 0x7F42,\n    0x7F4E: 0x575B,\n    0x7F70: 0x7F5A,\n    0x7F75: 0x9A82,\n    0x7F77: 0x7F62,\n    0x7F78: 0x7F5A,\n    0x7F85: 0x7F57,\n    0x7F86: 0x7F74,\n    0x7F88: 0x7F81,\n    0x7FA3: 0x7FA4,\n    0x7FA8: 0x7FA1,\n    0x7FA9: 0x4E49,\n    0x7FAE: 0x7FB9,\n    0x7FB6: 0x81BB,\n    0x7FC6: 0x7FE0,\n    0x7FD2: 0x4E60,\n    0x7FF9: 0x7FD8,\n    0x8021: 0x9504,\n    0x8056: 0x5723,\n    0x805E: 0x95FB,\n    0x805F: 0x5A7F,\n    0x8061: 0x806A,\n    0x8068: 0x8054,\n    0x806F: 0x8054,\n    0x8070: 0x806A,\n    0x8072: 0x58F0,\n    0x8073: 0x8038,\n    0x8074: 0x542C,\n    0x8076: 0x8042,\n    0x8077: 0x804C,\n    0x8079: 0x804D,\n    0x807D: 0x542C,\n    0x807E: 0x804B,\n    0x8085: 0x8083,\n    0x80AC: 0x75A3,\n    0x8105: 0x80C1,\n    0x8107: 0x80C1,\n    0x8108: 0x8109,\n    0x811B: 0x80EB,\n    0x8123: 0x5507,\n    0x8129: 0x4FEE,\n    0x8133: 0x8111,\n    0x8139: 0x80C0,\n    0x814E: 0x80BE,\n    0x8166: 0x8111,\n    0x816B: 0x80BF,\n    0x8178: 0x80A0,\n    0x8183: 0x817D,\n    0x8193: 0x80A0,\n    0x8195: 0x8158,\n    0x819A: 0x80A4,\n    0x81A0: 0x80F6,\n    0x81A9: 0x817B,\n    0x81B8: 0x9AD3,\n    0x81BD: 0x80C6,\n    0x81BE: 0x810D,\n    0x81BF: 0x8113,\n    0x81C8: 0x814A,\n    0x81C9: 0x8138,\n    0x81CD: 0x8110,\n    0x81D3: 0x810F,\n    0x81D8: 0x814A,\n    0x81DA: 0x80EA,\n    0x81DF: 0x810F,\n    0x81E0: 0x8114,\n    0x81E5: 0x5367,\n    0x81E8: 0x4E34,\n    0x81FA: 0x53F0,\n    0x8207: 0x4E0E,\n    0x8208: 0x5174,\n    0x8209: 0x4E3E,\n    0x820A: 0x65E7,\n    0x820E: 0x820D,\n    0x8216: 0x94FA,\n    0x8217: 0x94FA,\n    0x8218: 0x9986,\n    0x8229: 0x8239,\n    0x822E: 0x823B,\n    0x8259: 0x8231,\n    0x8262: 0x6A2F,\n    0x8262: 0x6DA9,\n    0x8264: 0x8223,\n    0x8266: 0x8230,\n    0x826A: 0x6A79,\n    0x826B: 0x823B,\n    0x8271: 0x8270,\n    0x8276: 0x8273,\n    0x8277: 0x8273,\n    0x8278: 0x8279,\n    0x82BB: 0x520D,\n    0x82C5: 0x5208,\n    0x82E7: 0x82CE,\n    0x8318: 0x8354,\n    0x8332: 0x5179,\n    0x834A: 0x8346,\n    0x8358: 0x5E84,\n    0x8362: 0x83B8,\n    0x838A: 0x5E84,\n    0x8396: 0x830E,\n    0x839F: 0x83E1,\n    0x83A2: 0x835A,\n    0x83B5: 0x83DF,\n    0x83D3: 0x679C,\n    0x83EF: 0x534E,\n    0x83F4: 0x5EB5,\n    0x83F7: 0x5E1A,\n    0x8407: 0x82CC,\n    0x842C: 0x4E07,\n    0x8435: 0x83B4,\n    0x8449: 0x53F6,\n    0x8457: 0x7740,\n    0x8462: 0x76D6,\n    0x8466: 0x82C7,\n    0x846F: 0x836F,\n    0x8477: 0x8364,\n    0x8490: 0x641C,\n    0x8494: 0x83B3,\n    0x84AD: 0x6964,\n    0x84BC: 0x82CD,\n    0x84C6: 0x5E2D,\n    0x84CB: 0x76D6,\n    0x84DA: 0x84E8,\n    0x84EE: 0x83B2,\n    0x84F4: 0x83BC,\n    0x8506: 0x83F1,\n    0x8514: 0x535C,\n    0x8526: 0x8311,\n    0x852D: 0x836B,\n    0x8535: 0x85CF,\n    0x8541: 0x8368,\n    0x854B: 0x854A,\n    0x854E: 0x835E,\n    0x8553: 0x82B8,\n    0x8555: 0x83B8,\n    0x8558: 0x835B,\n    0x855A: 0x843C,\n    0x8569: 0x8361,\n    0x856A: 0x829C,\n    0x856D: 0x8427,\n    0x8577: 0x84E3,\n    0x8588: 0x835F,\n    0x858A: 0x84DF,\n    0x8591: 0x59DC,\n    0x8594: 0x8537,\n    0x8597: 0x56ED,\n    0x85A6: 0x8350,\n    0x85A9: 0x8428,\n    0x85AB: 0x718F,\n    0x85AC: 0x836F,\n    0x85B0: 0x718F,\n    0x85BA: 0x8360,\n    0x85C1: 0x7A3F,\n    0x85CD: 0x84DD,\n    0x85DD: 0x827A,\n    0x85E5: 0x836F,\n    0x85EA: 0x85AE,\n    0x85F9: 0x853C,\n    0x85FA: 0x853A,\n    0x8602: 0x854A,\n    0x8606: 0x82A6,\n    0x8607: 0x82CF,\n    0x860A: 0x8574,\n    0x860B: 0x82F9,\n    0x8613: 0x82CF,\n    0x8616: 0x6AF1,\n    0x861A: 0x85D3,\n    0x8622: 0x830F,\n    0x862D: 0x5170,\n    0x862F: 0x8361,\n    0x8630: 0x7F26,\n    0x863F: 0x841D,\n    0x8655: 0x5904,\n    0x865C: 0x864F,\n    0x865F: 0x53F7,\n    0x8667: 0x4E8F,\n    0x86AB: 0x9C8D,\n    0x86CD: 0x8424,\n    0x86EF: 0x867E,\n    0x86FB: 0x8715,\n    0x8706: 0x86AC,\n    0x874B: 0x8721,\n    0x8755: 0x8680,\n    0x875F: 0x732C,\n    0x8766: 0x867E,\n    0x8768: 0x8671,\n    0x8778: 0x8717,\n    0x877F: 0x8747,\n    0x87A2: 0x8424,\n    0x87BB: 0x877C,\n    0x87C4: 0x86F0,\n    0x87C7: 0x87C6,\n    0x87EF: 0x86F2,\n    0x87F2: 0x866B,\n    0x87F6: 0x86CF,\n    0x87FB: 0x8681,\n    0x8805: 0x8747,\n    0x8807: 0x86CE,\n    0x880D: 0x874E,\n    0x880E: 0x87D2,\n    0x880F: 0x87F9,\n    0x8811: 0x877E,\n    0x8823: 0x86CE,\n    0x8827: 0x8839,\n    0x8831: 0x86CA,\n    0x8836: 0x8695,\n    0x883B: 0x86EE,\n    0x8842: 0x8844,\n    0x8846: 0x4F17,\n    0x8853: 0x672F,\n    0x885B: 0x536B,\n    0x885D: 0x51B2,\n    0x885E: 0x536B,\n    0x889E: 0x886E,\n    0x88AE: 0x5AFE,\n    0x88B4: 0x88E4,\n    0x88B5: 0x887D,\n    0x88B7: 0x593E,\n    0x88BF: 0x8902,\n    0x88C4: 0x7ED7,\n    0x88CF: 0x91CC,\n    0x88DC: 0x8865,\n    0x88DD: 0x88C5,\n    0x88E1: 0x91CC,\n    0x88F5: 0x88F4,\n    0x88FD: 0x5236,\n    0x8907: 0x590D,\n    0x890C: 0x88C8,\n    0x891D: 0x894C,\n    0x8938: 0x891B,\n    0x893B: 0x4EB5,\n    0x8943: 0x8912,\n    0x894D: 0x6742,\n    0x8956: 0x8884,\n    0x8960: 0x88C6,\n    0x8964: 0x8934,\n    0x896A: 0x889C,\n    0x896F: 0x886C,\n    0x8972: 0x88AD,\n    0x8974: 0x8955,\n    0x8977: 0x718E,\n    0x8987: 0x9738,\n    0x8988: 0x6838,\n    0x898A: 0x7F81,\n    0x898B: 0x89C1,\n    0x898F: 0x89C4,\n    0x8993: 0x89C5,\n    0x8996: 0x89C6,\n    0x8998: 0x89C7,\n    0x899A: 0x89C9,\n    0x89A1: 0x89CB,\n    0x89A6: 0x89CE,\n    0x89A7: 0x89C8,\n    0x89A9: 0x7779,\n    0x89AA: 0x4EB2,\n    0x89AC: 0x89CA,\n    0x89AF: 0x89CF,\n    0x89B2: 0x89D0,\n    0x89B3: 0x89C2,\n    0x89BA: 0x89C9,\n    0x89BD: 0x89C8,\n    0x89BF: 0x89CC,\n    0x89C0: 0x89C2,\n    0x89DD: 0x62B5,\n    0x89E7: 0x89E3,\n    0x89F4: 0x89DE,\n    0x89F8: 0x89E6,\n    0x8A02: 0x8BA2,\n    0x8A03: 0x8BA3,\n    0x8A08: 0x8BA1,\n    0x8A0A: 0x8BAF,\n    0x8A0C: 0x8BA7,\n    0x8A0E: 0x8BA8,\n    0x8A10: 0x8BA6,\n    0x8A12: 0x8BB1,\n    0x8A13: 0x8BAD,\n    0x8A16: 0x8BAB,\n    0x8A17: 0x6258,\n    0x8A18: 0x8BB0,\n    0x8A1B: 0x8BB9,\n    0x8A1D: 0x8BB6,\n    0x8A1F: 0x8BBC,\n    0x8A23: 0x8BC0,\n    0x8A25: 0x8BB7,\n    0x8A2A: 0x8BBF,\n    0x8A2D: 0x8BBE,\n    0x8A31: 0x8BB8,\n    0x8A33: 0x8BD1,\n    0x8A34: 0x8BC9,\n    0x8A36: 0x8BC3,\n    0x8A37: 0x547B,\n    0x8A3A: 0x8BCA,\n    0x8A3B: 0x6CE8,\n    0x8A3C: 0x8BC1,\n    0x8A41: 0x8BC2,\n    0x8A46: 0x8BCB,\n    0x8A50: 0x8BC8,\n    0x8A52: 0x8BD2,\n    0x8A54: 0x8BCF,\n    0x8A55: 0x8BC4,\n    0x8A5B: 0x8BC5,\n    0x8A5E: 0x8BCD,\n    0x8A60: 0x548F,\n    0x8A62: 0x8BE2,\n    0x8A63: 0x8BE3,\n    0x8A66: 0x8BD5,\n    0x8A69: 0x8BD7,\n    0x8A6B: 0x8BE7,\n    0x8A6C: 0x8BDF,\n    0x8A6D: 0x8BE1,\n    0x8A6E: 0x8BE0,\n    0x8A70: 0x8BD8,\n    0x8A71: 0x8BDD,\n    0x8A72: 0x8BE5,\n    0x8A73: 0x8BE6,\n    0x8A7C: 0x8BD9,\n    0x8A84: 0x8BD4,\n    0x8A85: 0x8BDB,\n    0x8A87: 0x5938,\n    0x8A8C: 0x5FD7,\n    0x8A8D: 0x8BA4,\n    0x8A91: 0x8BF3,\n    0x8A95: 0x8BDE,\n    0x8A98: 0x8BF1,\n    0x8A9A: 0x8BEE,\n    0x8A9E: 0x8BED,\n    0x8AA0: 0x8BDA,\n    0x8AA1: 0x8BEB,\n    0x8AA3: 0x8BEC,\n    0x8AA4: 0x8BEF,\n    0x8AA5: 0x8BF0,\n    0x8AA6: 0x8BF5,\n    0x8AA8: 0x8BF2,\n    0x8AAC: 0x8BF4,\n    0x8AAD: 0x8BFB,\n    0x8AB0: 0x8C01,\n    0x8AB2: 0x8BFE,\n    0x8AB9: 0x8BFD,\n    0x8ABC: 0x8C0A,\n    0x8ABF: 0x8C03,\n    0x8AC2: 0x8C04,\n    0x8AC4: 0x8C06,\n    0x8AC7: 0x8C08,\n    0x8ACB: 0x8BF7,\n    0x8ACC: 0x8C0F,\n    0x8ACD: 0x8BE4,\n    0x8ACF: 0x8BF9,\n    0x8AD2: 0x8C05,\n    0x8AD6: 0x8BBA,\n    0x8ADA: 0x54CD,\n    0x8ADB: 0x8C00,\n    0x8ADC: 0x8C0D,\n    0x8ADE: 0x8C1D,\n    0x8AE1: 0x8C25,\n    0x8AE2: 0x8BE8,\n    0x8AE4: 0x8C14,\n    0x8AE6: 0x8C1B,\n    0x8AE7: 0x8C10,\n    0x8AEB: 0x8C0F,\n    0x8AED: 0x8C15,\n    0x8AEE: 0x8C18,\n    0x8AF1: 0x8BB3,\n    0x8AF3: 0x8C19,\n    0x8AF6: 0x8C0C,\n    0x8AF7: 0x8BBD,\n    0x8AF8: 0x8BF8,\n    0x8AFA: 0x8C1A,\n    0x8AFE: 0x8BFA,\n    0x8B00: 0x8C0B,\n    0x8B01: 0x8C12,\n    0x8B02: 0x8C13,\n    0x8B04: 0x8A8A,\n    0x8B0C: 0x6B4C,\n    0x8B0E: 0x8C1C,\n    0x8B10: 0x8C27,\n    0x8B14: 0x8C11,\n    0x8B16: 0x8C21,\n    0x8B17: 0x8C24,\n    0x8B19: 0x8C26,\n    0x8B1A: 0x8C25,\n    0x8B1B: 0x8BB2,\n    0x8B1D: 0x8C22,\n    0x8B20: 0x8C23,\n    0x8B21: 0x8C23,\n    0x8B28: 0x8C1F,\n    0x8B2B: 0x8C2A,\n    0x8B2C: 0x8C2C,\n    0x8B33: 0x8BB4,\n    0x8B39: 0x8C28,\n    0x8B3E: 0x8C29,\n    0x8B41: 0x54D7,\n    0x8B49: 0x8BC1,\n    0x8B4C: 0x8BB9,\n    0x8B4E: 0x8C32,\n    0x8B4F: 0x8BA5,\n    0x8B56: 0x8C2E,\n    0x8B58: 0x8BC6,\n    0x8B5A: 0x8C2D,\n    0x8B5B: 0x8C2E,\n    0x8B5C: 0x8C31,\n    0x8B5F: 0x566A,\n    0x8B6B: 0x8C35,\n    0x8B6F: 0x8BD1,\n    0x8B70: 0x8BAE,\n    0x8B71: 0x5584,\n    0x8B72: 0x8BA9,\n    0x8B74: 0x8C34,\n    0x8B77: 0x62A4,\n    0x8B7D: 0x8A89,\n    0x8B80: 0x8BFB,\n    0x8B83: 0x8D5E,\n    0x8B8A: 0x53D8,\n    0x8B8C: 0x71D5,\n    0x8B8E: 0x96E0,\n    0x8B90: 0x4EC7,\n    0x8B90: 0x96E0,\n    0x8B92: 0x8C17,\n    0x8B93: 0x8BA9,\n    0x8B96: 0x8C36,\n    0x8B9A: 0x8D5E,\n    0x8C3F: 0x6EAA,\n    0x8C48: 0x5C82,\n    0x8C4E: 0x7AD6,\n    0x8C50: 0x4E30,\n    0x8C6C: 0x732A,\n    0x8C7C: 0x8C94,\n    0x8C8D: 0x72F8,\n    0x8C8E: 0x730A,\n    0x8C9D: 0x8D1D,\n    0x8C9E: 0x8D1E,\n    0x8CA0: 0x8D1F,\n    0x8CA1: 0x8D22,\n    0x8CA2: 0x8D21,\n    0x8CA7: 0x8D2B,\n    0x8CA8: 0x8D27,\n    0x8CA9: 0x8D29,\n    0x8CAA: 0x8D2A,\n    0x8CAB: 0x8D2F,\n    0x8CAC: 0x8D23,\n    0x8CAD: 0x8D28,\n    0x8CAE: 0x8D30,\n    0x8CAF: 0x8D2E,\n    0x8CB0: 0x8D33,\n    0x8CB2: 0x8D40,\n    0x8CB3: 0x8D30,\n    0x8CB4: 0x8D35,\n    0x8CB6: 0x8D2C,\n    0x8CB7: 0x4E70,\n    0x8CB8: 0x8D37,\n    0x8CBB: 0x8D39,\n    0x8CBC: 0x8D34,\n    0x8CBD: 0x8D3B,\n    0x8CBF: 0x8D38,\n    0x8CC0: 0x8D3A,\n    0x8CC1: 0x8D32,\n    0x8CC2: 0x8D42,\n    0x8CC3: 0x8D41,\n    0x8CC4: 0x8D3F,\n    0x8CC7: 0x8D44,\n    0x8CC8: 0x8D3E,\n    0x8CCA: 0x8D3C,\n    0x8CCD: 0x8D43,\n    0x8CCE: 0x8D31,\n    0x8CD1: 0x8D48,\n    0x8CD3: 0x5BBE,\n    0x8CDA: 0x8D49,\n    0x8CDB: 0x8D5E,\n    0x8CDC: 0x8D50,\n    0x8CDE: 0x8D4F,\n    0x8CE0: 0x8D54,\n    0x8CE2: 0x8D24,\n    0x8CE3: 0x5356,\n    0x8CE4: 0x8D31,\n    0x8CE6: 0x8D4B,\n    0x8CEA: 0x8D28,\n    0x8CED: 0x8D4C,\n    0x8CF4: 0x8D56,\n    0x8CFA: 0x8D5A,\n    0x8CFB: 0x8D59,\n    0x8CFC: 0x8D2D,\n    0x8CFD: 0x8D5B,\n    0x8D04: 0x8D3D,\n    0x8D05: 0x8D58,\n    0x8D07: 0x8D5F,\n    0x8D08: 0x8D60,\n    0x8D0A: 0x8D5E,\n    0x8D0B: 0x8D5D,\n    0x8D0D: 0x8D61,\n    0x8D0F: 0x8D62,\n    0x8D10: 0x8D46,\n    0x8D12: 0x8D24,\n    0x8D13: 0x8D43,\n    0x8D14: 0x8D51,\n    0x8D16: 0x8D4E,\n    0x8D71: 0x8D70,\n    0x8D99: 0x8D75,\n    0x8DA8: 0x8D8B,\n    0x8DE1: 0x8FF9,\n    0x8DFC: 0x5C40,\n    0x8E08: 0x758F,\n    0x8E10: 0x8DF5,\n    0x8E34: 0x8E0A,\n    0x8E4C: 0x8DC4,\n    0x8E55: 0x8DF8,\n    0x8E5F: 0x8FF9,\n    0x8E60: 0x8DD6,\n    0x8E63: 0x8E52,\n    0x8E64: 0x8E2A,\n    0x8E8A: 0x8E0C,\n    0x8E8B: 0x8DFB,\n    0x8E8D: 0x8DC3,\n    0x8E91: 0x8E2F,\n    0x8E93: 0x8E2C,\n    0x8E99: 0x8E8F,\n    0x8EA1: 0x8E51,\n    0x8EAA: 0x8E8F,\n    0x8EB0: 0x4F53,\n    0x8EB1: 0x8EB2,\n    0x8EC6: 0x4F53,\n    0x8ECA: 0x8F66,\n    0x8ECB: 0x8F67,\n    0x8ECC: 0x8F68,\n    0x8ECD: 0x519B,\n    0x8ED2: 0x8F69,\n    0x8EDB: 0x8F6D,\n    0x8EDF: 0x8F6F,\n    0x8EE2: 0x8F6C,\n    0x8EE3: 0x8F70,\n    0x8EEB: 0x8F78,\n    0x8EF8: 0x8F74,\n    0x8EFB: 0x8F72,\n    0x8EFC: 0x8F76,\n    0x8EFD: 0x8F7B,\n    0x8EFE: 0x8F7C,\n    0x8F03: 0x8F83,\n    0x8F05: 0x8F82,\n    0x8F09: 0x8F7D,\n    0x8F0A: 0x8F7E,\n    0x8F0C: 0x8F86,\n    0x8F12: 0x8F84,\n    0x8F13: 0x633D,\n    0x8F14: 0x8F85,\n    0x8F15: 0x8F7B,\n    0x8F19: 0x8F84,\n    0x8F1B: 0x8F86,\n    0x8F1C: 0x8F8E,\n    0x8F1D: 0x8F89,\n    0x8F1F: 0x8F8D,\n    0x8F26: 0x8F87,\n    0x8F29: 0x8F88,\n    0x8F2A: 0x8F6E,\n    0x8F2F: 0x8F91,\n    0x8F33: 0x8F8F,\n    0x8F38: 0x8F93,\n    0x8F3B: 0x8F90,\n    0x8F3E: 0x8F97,\n    0x8F3F: 0x8206,\n    0x8F42: 0x6BC2,\n    0x8F44: 0x8F96,\n    0x8F45: 0x8F95,\n    0x8F46: 0x8F98,\n    0x8F49: 0x8F6C,\n    0x8F4D: 0x8F99,\n    0x8F4E: 0x8F7F,\n    0x8F5C: 0x99AA,\n    0x8F5F: 0x8F70,\n    0x8F61: 0x8F94,\n    0x8F62: 0x8F79,\n    0x8F64: 0x8F73,\n    0x8FA7: 0x8FA8,\n    0x8FAD: 0x8F9E,\n    0x8FAE: 0x8FAB,\n    0x8FAF: 0x8FA9,\n    0x8FB2: 0x519C,\n    0x8FBA: 0x8FB9,\n    0x8FEF: 0x9003,\n    0x8FF4: 0x56DE,\n    0x8FFA: 0x4E43,\n    0x900E: 0x9052,\n    0x9013: 0x9012,\n    0x9015: 0x5F84,\n    0x9019: 0x8FD9,\n    0x9023: 0x8FDE,\n    0x9031: 0x5468,\n    0x9032: 0x8FDB,\n    0x9039: 0x8FBE,\n    0x9045: 0x8FDF,\n    0x904A: 0x6E38,\n    0x904B: 0x8FD0,\n    0x904E: 0x8FC7,\n    0x9054: 0x8FBE,\n    0x9055: 0x8FDD,\n    0x9056: 0x5583,\n    0x9059: 0x9065,\n    0x905C: 0x900A,\n    0x905E: 0x9012,\n    0x9060: 0x8FDC,\n    0x9061: 0x6EAF,\n    0x9069: 0x9002,\n    0x9072: 0x8FDF,\n    0x9077: 0x8FC1,\n    0x9078: 0x9009,\n    0x907A: 0x9057,\n    0x907C: 0x8FBD,\n    0x9081: 0x8FC8,\n    0x9084: 0x8FD8,\n    0x9087: 0x8FE9,\n    0x9089: 0x8FB9,\n    0x908A: 0x8FB9,\n    0x908F: 0x903B,\n    0x90A8: 0x9E37,\n    0x90DE: 0x90CE,\n    0x90E4: 0x90C4,\n    0x90F5: 0x90AE,\n    0x90F7: 0x4E61,\n    0x9112: 0x90B9,\n    0x9115: 0x4E61,\n    0x9115: 0x9109,\n    0x9127: 0x9093,\n    0x912D: 0x90D1,\n    0x9130: 0x90BB,\n    0x9132: 0x90F8,\n    0x9154: 0x9189,\n    0x9197: 0x9166,\n    0x919C: 0x4E11,\n    0x91A4: 0x9171,\n    0x91AB: 0x533B,\n    0x91B8: 0x917F,\n    0x91C0: 0x917F,\n    0x91C1: 0x8845,\n    0x91C8: 0x91CA,\n    0x91CB: 0x91CA,\n    0x91D0: 0x5398,\n    0x91D6: 0x6364,\n    0x91D7: 0x948A,\n    0x91D8: 0x9489,\n    0x91DD: 0x9488,\n    0x91E1: 0x91DC,\n    0x91E3: 0x9493,\n    0x91E4: 0x9490,\n    0x91E5: 0x7936,\n    0x91E6: 0x6263,\n    0x91E7: 0x948F,\n    0x91F5: 0x9497,\n    0x91F6: 0x82F9,\n    0x91FC: 0x5203,\n    0x920D: 0x949D,\n    0x920E: 0x94A9,\n    0x9210: 0x94A4,\n    0x9211: 0x94A3,\n    0x9214: 0x949E,\n    0x9215: 0x94AE,\n    0x921E: 0x94A7,\n    0x922C: 0x94CE,\n    0x9234: 0x94C3,\n    0x9237: 0x94B4,\n    0x9239: 0x94CD,\n    0x923A: 0x94B0,\n    0x923C: 0x805B,\n    0x923F: 0x94BF,\n    0x9240: 0x94BE,\n    0x9244: 0x94C1,\n    0x9248: 0x94CA,\n    0x9249: 0x94C9,\n    0x924B: 0x5228,\n    0x9251: 0x94C2,\n    0x9257: 0x94B3,\n    0x925A: 0x94C6,\n    0x925B: 0x94C5,\n    0x925E: 0x94BA,\n    0x9262: 0x94B5,\n    0x9264: 0x94A9,\n    0x9266: 0x94B2,\n    0x9271: 0x77FF,\n    0x9277: 0x7CED,\n    0x9278: 0x94F0,\n    0x9280: 0x94F6,\n    0x9283: 0x94F3,\n    0x9285: 0x94DC,\n    0x9291: 0x94E3,\n    0x9293: 0x94E8,\n    0x9295: 0x94C1,\n    0x9296: 0x94E2,\n    0x9298: 0x94ED,\n    0x929A: 0x94EB,\n    0x929B: 0x94E6,\n    0x929C: 0x8854,\n    0x92AD: 0x94B1,\n    0x92B7: 0x9500,\n    0x92B9: 0x9508,\n    0x92CF: 0x94D7,\n    0x92D2: 0x950B,\n    0x92D9: 0x94FB,\n    0x92E4: 0x9504,\n    0x92E9: 0x94D3,\n    0x92EA: 0x94FA,\n    0x92ED: 0x9510,\n    0x92F2: 0x59C9,\n    0x92F3: 0x94F8,\n    0x92F8: 0x952F,\n    0x92FB: 0x9274,\n    0x92FC: 0x94A2,\n    0x9306: 0x9516,\n    0x930F: 0x94D4,\n    0x9310: 0x9525,\n    0x9318: 0x9524,\n    0x9319: 0x9531,\n    0x931A: 0x94EE,\n    0x9320: 0x952D,\n    0x9321: 0x951C,\n    0x9322: 0x94B1,\n    0x9326: 0x9526,\n    0x9328: 0x951A,\n    0x932B: 0x9521,\n    0x932C: 0x70BC,\n    0x932E: 0x9522,\n    0x932F: 0x9519,\n    0x9332: 0x5F55,\n    0x9348: 0x7CB8,\n    0x9348: 0x9533,\n    0x934B: 0x9505,\n    0x934D: 0x9540,\n    0x9354: 0x9537,\n    0x935B: 0x953B,\n    0x9360: 0x953D,\n    0x936C: 0x9539,\n    0x936E: 0x63F8,\n    0x9370: 0x953E,\n    0x9375: 0x952E,\n    0x937C: 0x9488,\n    0x937E: 0x949F,\n    0x9394: 0x9555,\n    0x9396: 0x9501,\n    0x939A: 0x9524,\n    0x93A7: 0x94E0,\n    0x93AC: 0x9550,\n    0x93AD: 0x9547,\n    0x93AE: 0x9547,\n    0x93B0: 0x9552,\n    0x93C3: 0x955E,\n    0x93C6: 0x9475,\n    0x93C8: 0x94FE,\n    0x93D0: 0x9560,\n    0x93D1: 0x955D,\n    0x93D7: 0x94FF,\n    0x93D8: 0x9535,\n    0x93DD: 0x9558,\n    0x93DE: 0x955B,\n    0x93E1: 0x955C,\n    0x93E4: 0x9542,\n    0x93E5: 0x9508,\n    0x93E8: 0x933E,\n    0x9403: 0x94D9,\n    0x9410: 0x9563,\n    0x9413: 0x9566,\n    0x9414: 0x9561,\n    0x9418: 0x949F,\n    0x9419: 0x956B,\n    0x941A: 0x94D4,\n    0x9421: 0x94C1,\n    0x942B: 0x954C,\n    0x9435: 0x94C1,\n    0x9436: 0x956E,\n    0x9438: 0x94CE,\n    0x943A: 0x94DB,\n    0x9441: 0x9350,\n    0x9444: 0x94F8,\n    0x9451: 0x9274,\n    0x9452: 0x9274,\n    0x9453: 0x9397,\n    0x945A: 0x94BB,\n    0x945B: 0x77FF,\n    0x945E: 0x9574,\n    0x9460: 0x94C4,\n    0x946A: 0x7089,\n    0x9470: 0x94A5,\n    0x9477: 0x954A,\n    0x947C: 0x9523,\n    0x947D: 0x94BB,\n    0x947E: 0x92AE,\n    0x947F: 0x51FF,\n    0x9481: 0x9562,\n    0x9577: 0x957F,\n    0x9580: 0x95E8,\n    0x9582: 0x95E9,\n    0x9583: 0x95EA,\n    0x9587: 0x95ED,\n    0x9589: 0x95ED,\n    0x958B: 0x5F00,\n    0x958F: 0x95F0,\n    0x9591: 0x95F2,\n    0x9592: 0x95F2,\n    0x9593: 0x95F4,\n    0x9594: 0x95F5,\n    0x9596: 0x53A2,\n    0x9598: 0x95F8,\n    0x9599: 0x95F9,\n    0x95A0: 0x95F0,\n    0x95A2: 0x5173,\n    0x95A3: 0x9601,\n    0x95A4: 0x5408,\n    0x95A5: 0x9600,\n    0x95A7: 0x54C4,\n    0x95A8: 0x95FA,\n    0x95AD: 0x95FE,\n    0x95B2: 0x9605,\n    0x95B9: 0x9609,\n    0x95BB: 0x960E,\n    0x95BC: 0x960F,\n    0x95BE: 0x9608,\n    0x95C3: 0x9612,\n    0x95CA: 0x9614,\n    0x95CC: 0x9611,\n    0x95CD: 0x9607,\n    0x95D4: 0x9616,\n    0x95D5: 0x9619,\n    0x95D6: 0x95EF,\n    0x95D8: 0x6597,\n    0x95DC: 0x5173,\n    0x95E1: 0x9610,\n    0x95E2: 0x8F9F,\n    0x95E5: 0x95FC,\n    0x962F: 0x5740,\n    0x965D: 0x9655,\n    0x965E: 0x5347,\n    0x9663: 0x9635,\n    0x9665: 0x9677,\n    0x9666: 0x5C9B,\n    0x9670: 0x9634,\n    0x9673: 0x9648,\n    0x9678: 0x9646,\n    0x967A: 0x9669,\n    0x967D: 0x9633,\n    0x968A: 0x961F,\n    0x968E: 0x9636,\n    0x9695: 0x9668,\n    0x969B: 0x9645,\n    0x969D: 0x5C9B,\n    0x96A0: 0x9690,\n    0x96A3: 0x90BB,\n    0x96A8: 0x968F,\n    0x96AA: 0x9669,\n    0x96AF: 0x5C9B,\n    0x96B1: 0x9690,\n    0x96B2: 0x9A98,\n    0x96B4: 0x9647,\n    0x96B6: 0x64C0,\n    0x96B7: 0x96B6,\n    0x96B8: 0x96B6,\n    0x96BB: 0x53EA,\n    0x96CB: 0x96BD,\n    0x96D1: 0x6742,\n    0x96D6: 0x867D,\n    0x96D9: 0x53CC,\n    0x96DB: 0x96CF,\n    0x96DC: 0x6742,\n    0x96E2: 0x79BB,\n    0x96E3: 0x96BE,\n    0x96F2: 0x4E91,\n    0x96FB: 0x7535,\n    0x970A: 0x7075,\n    0x9711: 0x6CBE,\n    0x9724: 0x6E9C,\n    0x9727: 0x96FE,\n    0x973D: 0x9701,\n    0x9742: 0x96F3,\n    0x9744: 0x972D,\n    0x9746: 0x53C7,\n    0x9748: 0x7075,\n    0x9749: 0x53C6,\n    0x9751: 0x9752,\n    0x9755: 0x6B63,\n    0x975C: 0x9759,\n    0x9764: 0x75B1,\n    0x9766: 0x817C,\n    0x9768: 0x9765,\n    0x976D: 0x97E7,\n    0x9771: 0x97E7,\n    0x978F: 0x5DE9,\n    0x97A6: 0x79CB,\n    0x97B4: 0x99E0,\n    0x97C3: 0x9791,\n    0x97C6: 0x5343,\n    0x97C8: 0x889C,\n    0x97CB: 0x97E6,\n    0x97D3: 0x97E9,\n    0x97DC: 0x97EC,\n    0x97EE: 0x97ED,\n    0x97F2: 0x9F51,\n    0x97FB: 0x97F5,\n    0x97FF: 0x54CD,\n    0x9801: 0x9875,\n    0x9802: 0x9876,\n    0x9803: 0x9877,\n    0x9805: 0x9879,\n    0x9806: 0x987A,\n    0x9808: 0x987B,\n    0x980C: 0x9882,\n    0x980F: 0x9883,\n    0x9810: 0x9884,\n    0x9811: 0x987D,\n    0x9812: 0x9881,\n    0x9813: 0x987F,\n    0x9817: 0x9887,\n    0x9818: 0x9886,\n    0x981A: 0x9888,\n    0x9821: 0x9889,\n    0x9824: 0x9890,\n    0x982C: 0x988A,\n    0x982D: 0x5934,\n    0x9834: 0x9895,\n    0x9834: 0x9896,\n    0x9837: 0x9894,\n    0x9838: 0x9888,\n    0x983B: 0x9891,\n    0x983C: 0x8D56,\n    0x983D: 0x9893,\n    0x9846: 0x9897,\n    0x984B: 0x816E,\n    0x984C: 0x9898,\n    0x984D: 0x989D,\n    0x984E: 0x989A,\n    0x984F: 0x989C,\n    0x9854: 0x989C,\n    0x9855: 0x663E,\n    0x9858: 0x613F,\n    0x985B: 0x98A0,\n    0x985E: 0x7C7B,\n    0x9865: 0x98A2,\n    0x9867: 0x987E,\n    0x986B: 0x98A4,\n    0x986F: 0x663E,\n    0x9870: 0x98A6,\n    0x9871: 0x9885,\n    0x9873: 0x989E,\n    0x9874: 0x98A7,\n    0x98A8: 0x98CE,\n    0x98AF: 0x98D2,\n    0x98B1: 0x53F0,\n    0x98B6: 0x98D3,\n    0x98C3: 0x98D8,\n    0x98C4: 0x98D8,\n    0x98C6: 0x98D9,\n    0x98DB: 0x98DE,\n    0x98DC: 0x7FFB,\n    0x98E2: 0x9965,\n    0x98E9: 0x9968,\n    0x98EB: 0x996B,\n    0x98ED: 0x996C,\n    0x98EE: 0x996E,\n    0x98EF: 0x996D,\n    0x98F2: 0x996E,\n    0x98F4: 0x9974,\n    0x98FC: 0x9972,\n    0x98FD: 0x9971,\n    0x98FE: 0x9970,\n    0x9903: 0x997A,\n    0x9905: 0x997C,\n    0x9909: 0x9977,\n    0x990A: 0x517B,\n    0x990C: 0x9975,\n    0x9912: 0x9981,\n    0x9913: 0x997F,\n    0x9918: 0x4F59,\n    0x991D: 0x9970,\n    0x991E: 0x996F,\n    0x9920: 0x997C,\n    0x9921: 0x9985,\n    0x9928: 0x9986,\n    0x993D: 0x9988,\n    0x993E: 0x998F,\n    0x9942: 0x5EBD,\n    0x9945: 0x9992,\n    0x9949: 0x9991,\n    0x994B: 0x9988,\n    0x994C: 0x9994,\n    0x9951: 0x9965,\n    0x9952: 0x9976,\n    0x9957: 0x98E8,\n    0x99AC: 0x9A6C,\n    0x99AD: 0x9A6D,\n    0x99AE: 0x51AF,\n    0x99B3: 0x9A70,\n    0x99B4: 0x9A6F,\n    0x99BC: 0x7B29,\n    0x99C1: 0x9A73,\n    0x99C4: 0x9A6E,\n    0x99C5: 0x9A7F,\n    0x99C6: 0x9A71,\n    0x99C8: 0x9A71,\n    0x99D0: 0x9A7B,\n    0x99D1: 0x9A7D,\n    0x99D2: 0x9A79,\n    0x99D5: 0x9A7E,\n    0x99D8: 0x9A80,\n    0x99DB: 0x9A76,\n    0x99DD: 0x9A7C,\n    0x99DF: 0x9A77,\n    0x99E2: 0x9A88,\n    0x99ED: 0x9A87,\n    0x99EE: 0x9A73,\n    0x99F1: 0x9A86,\n    0x99F8: 0x9A8E,\n    0x99FF: 0x9A8F,\n    0x9A01: 0x9A8B,\n    0x9A05: 0x9A93,\n    0x9A0E: 0x9A91,\n    0x9A0F: 0x9A90,\n    0x9A12: 0x9A9A,\n    0x9A13: 0x9A8C,\n    0x9A19: 0x9A97,\n    0x9A28: 0x9A52,\n    0x9A2B: 0x9A9E,\n    0x9A30: 0x817E,\n    0x9A37: 0x9A9A,\n    0x9A3E: 0x9AA1,\n    0x9A40: 0x84E6,\n    0x9A42: 0x9A96,\n    0x9A43: 0x9AA0,\n    0x9A45: 0x9A71,\n    0x9A4D: 0x9A81,\n    0x9A55: 0x9A84,\n    0x9A57: 0x9A8C,\n    0x9A5A: 0x60CA,\n    0x9A5B: 0x9A7F,\n    0x9A5F: 0x9AA4,\n    0x9A62: 0x9A74,\n    0x9A64: 0x9AA7,\n    0x9A65: 0x9AA5,\n    0x9A6A: 0x9A8A,\n    0x9A6B: 0x9A89,\n    0x9AC4: 0x9AD3,\n    0x9ACF: 0x9AC5,\n    0x9AD4: 0x4F53,\n    0x9AD9: 0x9AD8,\n    0x9AE2: 0x9B04,\n    0x9AEA: 0x53D1,\n    0x9AEE: 0x53D1,\n    0x9AF4: 0x62C2,\n    0x9B06: 0x677E,\n    0x9B1A: 0x987B,\n    0x9B22: 0x9B13,\n    0x9B25: 0x6597,\n    0x9B27: 0x95F9,\n    0x9B28: 0x54C4,\n    0x9B29: 0x960B,\n    0x9B2A: 0x6597,\n    0x9B2E: 0x9604,\n    0x9B31: 0x90C1,\n    0x9B4E: 0x9B49,\n    0x9B58: 0x9B47,\n    0x9B5A: 0x9C7C,\n    0x9B6F: 0x9C81,\n    0x9B72: 0x9C88,\n    0x9B74: 0x9C82,\n    0x9B83: 0x8E75,\n    0x9B83: 0x9C86,\n    0x9B8E: 0x9C87,\n    0x9B8E: 0x9CB6,\n    0x9B8F: 0x8165,\n    0x9B91: 0x9C8D,\n    0x9B92: 0x9C8B,\n    0x9B93: 0x9C8A,\n    0x9B97: 0x8492,\n    0x9B9F: 0x55B9,\n    0x9BAA: 0x9C94,\n    0x9BAB: 0x9C9B,\n    0x9BAD: 0x9C91,\n    0x9BAE: 0x9C9C,\n    0x9BC0: 0x9CA7,\n    0x9BC9: 0x9CA4,\n    0x9BCA: 0x9CA8,\n    0x9BCF: 0x54DA,\n    0x9BD2: 0x9CAC,\n    0x9BD4: 0x9CBB,\n    0x9BD6: 0x9CAD,\n    0x9BDB: 0x9CB7,\n    0x9BE1: 0x9CB1,\n    0x9BE2: 0x9CB5,\n    0x9BE4: 0x9CB2,\n    0x9BE8: 0x9CB8,\n    0x9BF0: 0x9CB6,\n    0x9BF1: 0x6119,\n    0x9BF5: 0x9CB9,\n    0x9C00: 0x9CA9,\n    0x9C08: 0x9CBD,\n    0x9C09: 0x9CC7,\n    0x9C0A: 0x7E65,\n    0x9C0C: 0x9CC5,\n    0x9C0D: 0x9CC5,\n    0x9C10: 0x9CC4,\n    0x9C12: 0x9CC6,\n    0x9C13: 0x9CC3,\n    0x9C15: 0x867E,\n    0x9C1B: 0x9CC1,\n    0x9C1B: 0x9EA2,\n    0x9C25: 0x9CCF,\n    0x9C2D: 0x9CCD,\n    0x9C2E: 0x9CC1,\n    0x9C2E: 0x9EA2,\n    0x9C2F: 0x676B,\n    0x9C32: 0x9CCC,\n    0x9C39: 0x9CA3,\n    0x9C3A: 0x61C0,\n    0x9C3A: 0x9CB9,\n    0x9C3B: 0x9CD7,\n    0x9C3E: 0x9CD4,\n    0x9C48: 0x9CD5,\n    0x9C52: 0x9CDF,\n    0x9C57: 0x9CDE,\n    0x9C60: 0x9C99,\n    0x9C67: 0x9CE2,\n    0x9C78: 0x9C88,\n    0x9CE5: 0x9E1F,\n    0x9CE7: 0x51EB,\n    0x9CE9: 0x9E20,\n    0x9CEB: 0x96C1,\n    0x9CEC: 0x51EB,\n    0x9CF3: 0x51E4,\n    0x9CF4: 0x9E23,\n    0x9CF6: 0x9E22,\n    0x9D06: 0x9E29,\n    0x9D07: 0x9E28,\n    0x9D09: 0x9E26,\n    0x9D0E: 0x9E25,\n    0x9D12: 0x9E30,\n    0x9D15: 0x9E35,\n    0x9D1B: 0x9E33,\n    0x9D1F: 0x9E31,\n    0x9D23: 0x9E2A,\n    0x9D26: 0x9E2F,\n    0x9D28: 0x9E2D,\n    0x9D2A: 0x9D25,\n    0x9D2C: 0x83BA,\n    0x9D2C: 0x9E34,\n    0x9D3B: 0x9E3F,\n    0x9D3F: 0x9E3D,\n    0x9D44: 0x9E31,\n    0x9D50: 0x9373,\n    0x9D50: 0x9E40,\n    0x9D51: 0x9E43,\n    0x9D5C: 0x9E48,\n    0x9D5D: 0x9E45,\n    0x9D5E: 0x9E45,\n    0x9D60: 0x9E44,\n    0x9D61: 0x9E49,\n    0x9D6C: 0x9E4F,\n    0x9D6F: 0x9E4E,\n    0x9D72: 0x9E4A,\n    0x9D87: 0x9E2B,\n    0x9D89: 0x9E51,\n    0x9D8F: 0x9E21,\n    0x9D9A: 0x9E57,\n    0x9DA4: 0x9E4D,\n    0x9DA9: 0x9E5C,\n    0x9DAB: 0x99A4,\n    0x9DAF: 0x83BA,\n    0x9DB2: 0x9E5F,\n    0x9DB4: 0x9E64,\n    0x9DBA: 0x9E61,\n    0x9DBB: 0x9E58,\n    0x9DC1: 0x9E62,\n    0x9DC2: 0x9E5E,\n    0x9DC4: 0x9E21,\n    0x9DC6: 0x9DCF,\n    0x9DD3: 0x9E67,\n    0x9DD9: 0x9E37,\n    0x9DE6: 0x9E6A,\n    0x9DEF: 0x9E69,\n    0x9DF2: 0x9E6B,\n    0x9DF8: 0x9E6C,\n    0x9DF9: 0x9E70,\n    0x9DFA: 0x9E6D,\n    0x9E1A: 0x9E66,\n    0x9E1B: 0x9E73,\n    0x9E1E: 0x9E3E,\n    0x9E75: 0x5364,\n    0x9E78: 0x78B1,\n    0x9E79: 0x54B8,\n    0x9E7D: 0x76D0,\n    0x9E97: 0x4E3D,\n    0x9EA5: 0x9EA6,\n    0x9EA9: 0x9EB8,\n    0x9EAA: 0x9762,\n    0x9EB9: 0x66F2,\n    0x9EBA: 0x9762,\n    0x9EBC: 0x4E48,\n    0x9EBF: 0x7E3B,\n    0x9ECC: 0x9EC9,\n    0x9ED2: 0x9ED1,\n    0x9ED9: 0x9ED8,\n    0x9EDE: 0x70B9,\n    0x9EE8: 0x515A,\n    0x9EF4: 0x9709,\n    0x9EF6: 0x9EE1,\n    0x9EF7: 0x9EE9,\n    0x9EFD: 0x9EFE,\n    0x9F07: 0x9CCC,\n    0x9F08: 0x9CD6,\n    0x9F15: 0x51AC,\n    0x9F21: 0x9F20,\n    0x9F4A: 0x9F50,\n    0x9F4B: 0x658B,\n    0x9F4E: 0x8D4D,\n    0x9F4F: 0x9F51,\n    0x9F52: 0x9F7F,\n    0x9F54: 0x9F80,\n    0x9F5F: 0x9F83,\n    0x9F60: 0x9F86,\n    0x9F61: 0x9F84,\n    0x9F62: 0x9F84,\n    0x9F63: 0x51FA,\n    0x9F66: 0x9F88,\n    0x9F67: 0x556E,\n    0x9F6A: 0x9F8A,\n    0x9F6C: 0x9F89,\n    0x9F72: 0x9F8B,\n    0x9F76: 0x816D,\n    0x9F77: 0x9F8C,\n    0x9F8D: 0x9F99,\n    0x9F95: 0x9F9B,\n    0x9F9C: 0x9F9F,\n    0x9F9D: 0x79CB,\n    0xF929: 0x6717,\n    0xF9DC: 0x9686,\n    0xFA10: 0x51A2,\n    0xFA10: 0x585A,\n    0xFA11: 0x5D0E,\n    0xFA12: 0x6674,\n    0xFA14: 0x6989,\n    0xFA15: 0x51DE,\n    0xFA16: 0x732A,\n    0xFA16: 0x8C6C,\n    0xFA17: 0x76CA,\n    0xFA18: 0x793C,\n    0xFA19: 0x795E,\n    0xFA1A: 0x7965,\n    0xFA1B: 0x798F,\n    0xFA1C: 0x9756,\n    0xFA1D: 0x7CBE,\n    0xFA1E: 0x7FBD,\n    0xFA22: 0x8AF8,\n    0xFA22: 0x8BF8,\n    0xFA25: 0x9038,\n    0xFA26: 0x90FD,\n    0xFA29: 0x5C9B,\n    0xFA2A: 0x98EF,\n    0xFA2A: 0x996D,\n    0xFA2B: 0x98FC,\n    0xFA2B: 0x9972,\n    0xFA2C: 0x9928,\n    0xFA2C: 0x9986,\n    0xFA2D: 0x9DB4,\n    0xFA2D: 0x9E64,\n    0xFF61: 0x3002,\n    0xFF62: 0x300C,\n    0xFF63: 0x300D,\n    0xFF64: 0x3001,\n    0xFF65: 0xFF0E,\n    0xFF9E: 0x309B,\n    0xFF9F: 0x309C,\n}\n\nChinese2Kanji_Table = {\n    0x4E13: 0x5C02,\n    0x4E1A: 0x696D,\n    0x4E1B: 0x53E2,\n    0x4E1C: 0x6771,\n    0x4E1D: 0x7D72,\n    0x4E24: 0x4E21,\n    0x4E25: 0x53B3,\n    0x4E27: 0x55AA,\n    0x4E30: 0x8C50,\n    0x4E34: 0x81E8,\n    0x4E3A: 0x70BA,\n    0x4E3D: 0x9E97,\n    0x4E3E: 0x6319,\n    0x4E49: 0x7FA9,\n    0x4E4C: 0x70CF,\n    0x4E50: 0x697D,\n    0x4E54: 0x55AC,\n    0x4E58: 0x4E57,\n    0x4E61: 0x90F7,\n    0x4E66: 0x66F8,\n    0x4E70: 0x8CB7,\n    0x4E71: 0x4E82,\n    0x4E82: 0x4E71,\n    0x4E85: 0x4E28,\n    0x4E9A: 0x4E9C,\n    0x4E9E: 0x4E9C,\n    0x4EA7: 0x7523,\n    0x4EA9: 0x755D,\n    0x4EB2: 0x89AA,\n    0x4EB5: 0x893B,\n    0x4EBF: 0x5104,\n    0x4EC5: 0x50C5,\n    0x4ED1: 0x4F96,\n    0x4ED3: 0x5009,\n    0x4EEA: 0x5100,\n    0x4EEC: 0x5011,\n    0x4EF7: 0x4FA1,\n    0x4EFF: 0x5023,\n    0x4F15: 0x592B,\n    0x4F17: 0x8846,\n    0x4F18: 0x512A,\n    0x4F1B: 0x50B4,\n    0x4F1E: 0x5098,\n    0x4F1F: 0x5049,\n    0x4F20: 0x4F1D,\n    0x4F21: 0x4FE5,\n    0x4F23: 0x4FD4,\n    0x4F24: 0x50B7,\n    0x4F26: 0x502B,\n    0x4F2A: 0x507D,\n    0x4F2B: 0x4F47,\n    0x4F48: 0x5E03,\n    0x4F5B: 0x4ECF,\n    0x4F63: 0x50AD,\n    0x4F65: 0x50C9,\n    0x4F86: 0x6765,\n    0x4FA5: 0x50E5,\n    0x4FA6: 0x5075,\n    0x4FA7: 0x5074,\n    0x4FA8: 0x50D1,\n    0x4FAA: 0x5115,\n    0x4FAC: 0x5102,\n    0x4FB7: 0x5C40,\n    0x4FC1: 0x4FE3,\n    0x4FDE: 0x516A,\n    0x4FE0: 0x4FA0,\n    0x4FE6: 0x5114,\n    0x4FE8: 0x513C,\n    0x4FE9: 0x5006,\n    0x4FEA: 0x5137,\n    0x4FEC: 0x79C1,\n    0x4FED: 0x5039,\n    0x4FF1: 0x5036,\n    0x5008: 0x71F5,\n    0x503A: 0x50B5,\n    0x503C: 0x5024,\n    0x503E: 0x50BE,\n    0x5047: 0x4EEE,\n    0x506A: 0x903C,\n    0x5077: 0x5078,\n    0x507B: 0x50C2,\n    0x507F: 0x511F,\n    0x50A2: 0x5BB6,\n    0x50A5: 0x513B,\n    0x50A8: 0x5132,\n    0x50A9: 0x513A,\n    0x50AF: 0x506C,\n    0x50E9: 0x50F4,\n    0x50F1: 0x96C7,\n    0x50F9: 0x4FA1,\n    0x5109: 0x5039,\n    0x5118: 0x4FAD,\n    0x5151: 0x514C,\n    0x5152: 0x5150,\n    0x5154: 0x514E,\n    0x5167: 0x5185,\n    0x5169: 0x4E21,\n    0x5170: 0x862D,\n    0x5173: 0x95A2,\n    0x5174: 0x8208,\n    0x517B: 0x990A,\n    0x517D: 0x7363,\n    0x518C: 0x518A,\n    0x519B: 0x8ECD,\n    0x519C: 0x8FB2,\n    0x51AF: 0x99AE,\n    0x51B0: 0x6C37,\n    0x51B1: 0x51B4,\n    0x51BB: 0x51CD,\n    0x51C0: 0x6D44,\n    0x51C8: 0x6D44,\n    0x51DC: 0x51DB,\n    0x51DE: 0xFA15,\n    0x51E4: 0x9CF3,\n    0x51EB: 0x9CEC,\n    0x51EF: 0x51F1,\n    0x51FB: 0x6483,\n    0x51FF: 0x947F,\n    0x5212: 0x5283,\n    0x5218: 0x5289,\n    0x5219: 0x5247,\n    0x521A: 0x525B,\n    0x521B: 0x5275,\n    0x5220: 0x522A,\n    0x5228: 0x924B,\n    0x522B: 0x5225,\n    0x522D: 0x5244,\n    0x5231: 0x524F,\n    0x5240: 0x5274,\n    0x5242: 0x5264,\n    0x524E: 0x5239,\n    0x5251: 0x5263,\n    0x525D: 0x5265,\n    0x5263: 0x6E76,\n    0x5267: 0x5287,\n    0x5269: 0x5270,\n    0x5284: 0x5273,\n    0x528D: 0x5263,\n    0x5291: 0x5264,\n    0x529D: 0x52E7,\n    0x52A1: 0x52D9,\n    0x52A8: 0x52D5,\n    0x52B2: 0x52C1,\n    0x52B3: 0x52B4,\n    0x52BF: 0x52E2,\n    0x52CB: 0x52F2,\n    0x52DE: 0x52B4,\n    0x52F2: 0x4F03,\n    0x52F3: 0x52F2,\n    0x52F5: 0x52B1,\n    0x52F8: 0x52E7,\n    0x52FB: 0x5300,\n    0x5308: 0x5302,\n    0x531A: 0x5338,\n    0x532E: 0x5331,\n    0x5340: 0x533A,\n    0x534E: 0x83EF,\n    0x534F: 0x5354,\n    0x5355: 0x5358,\n    0x5356: 0x58F2,\n    0x5361: 0x5CE0,\n    0x5362: 0x76E7,\n    0x5364: 0x9E75,\n    0x5367: 0x81E5,\n    0x536B: 0x885B,\n    0x5377: 0x5DFB,\n    0x5379: 0x6064,\n    0x537B: 0x5374,\n    0x5385: 0x5E81,\n    0x5386: 0x6B74,\n    0x5389: 0x53B2,\n    0x538C: 0x53AD,\n    0x5395: 0x53A0,\n    0x53A2: 0x9596,\n    0x53BF: 0x770C,\n    0x53C3: 0x53C2,\n    0x53C6: 0x9749,\n    0x53C7: 0x9746,\n    0x53D1: 0x767A,\n    0x53D8: 0x5909,\n    0x53E0: 0x7573,\n    0x53F9: 0x5606,\n    0x5412: 0x54A4,\n    0x541E: 0x5451,\n    0x5428: 0x5678,\n    0x5433: 0x5449,\n    0x5434: 0x5449,\n    0x5452: 0x5638,\n    0x5453: 0x56C8,\n    0x5455: 0x5614,\n    0x5457: 0x5504,\n    0x5458: 0x54E1,\n    0x545C: 0x55DA,\n    0x5492: 0x546A,\n    0x549B: 0x5680,\n    0x54CD: 0x97FF,\n    0x54D1: 0x5516,\n    0x54D7: 0x5629,\n    0x54DA: 0x9BCF,\n    0x5524: 0x559A,\n    0x5527: 0x559E,\n    0x555E: 0x5516,\n    0x555F: 0x5553,\n    0x5567: 0x5616,\n    0x556C: 0x55C7,\n    0x556D: 0x56C0,\n    0x556E: 0x565B,\n    0x5578: 0x562F,\n    0x55AE: 0x5358,\n    0x55B7: 0x5674,\n    0x55B9: 0x9B9F,\n    0x55BB: 0x55A9,\n    0x55EB: 0x56C1,\n    0x55F0: 0x74F1,\n    0x5624: 0x56B6,\n    0x5641: 0x60AA,\n    0x5653: 0x5618,\n    0x5699: 0x565B,\n    0x569F: 0x7667,\n    0x56A3: 0x56C2,\n    0x56B4: 0x53B3,\n    0x56CA: 0x56A2,\n    0x56D1: 0x5631,\n    0x56E2: 0x56E3,\n    0x56ED: 0x5712,\n    0x56F4: 0x56F2,\n    0x56FE: 0x56F3,\n    0x5706: 0x5713,\n    0x5708: 0x570F,\n    0x570B: 0x56FD,\n    0x570D: 0x56F2,\n    0x5716: 0x56F3,\n    0x5718: 0x56E3,\n    0x5723: 0x8056,\n    0x5739: 0x58D9,\n    0x573A: 0x5834,\n    0x5757: 0x584A,\n    0x575A: 0x5805,\n    0x575B: 0x58C7,\n    0x575E: 0x5862,\n    0x575F: 0x58B3,\n    0x5760: 0x589C,\n    0x576B: 0x5CBE,\n    0x5775: 0x4E18,\n    0x577B: 0x5CBB,\n    0x5784: 0x58DF,\n    0x5788: 0x60A7,\n    0x5792: 0x5841,\n    0x57A6: 0x58BE,\n    0x57C2: 0x5CFA,\n    0x57D2: 0x57D3,\n    0x57D8: 0x5852,\n    0x57DA: 0x581D,\n    0x5811: 0x5879,\n    0x582F: 0x5C2D,\n    0x589E: 0x5897,\n    0x58AE: 0x5815,\n    0x58B0: 0x7560,\n    0x58D3: 0x5727,\n    0x58D8: 0x5841,\n    0x58DE: 0x58CA,\n    0x58E4: 0x58CC,\n    0x58EF: 0x58EE,\n    0x58F3: 0x6BBB,\n    0x58F6: 0x58F7,\n    0x58F9: 0x58F1,\n    0x58FA: 0x58F7,\n    0x58FD: 0x5BFF,\n    0x5904: 0x51E6,\n    0x5907: 0x5099,\n    0x590A: 0x6535,\n    0x590D: 0x5FA9,\n    0x5934: 0x982D,\n    0x593A: 0x596A,\n    0x5941: 0x5969,\n    0x5942: 0x5950,\n    0x594B: 0x596E,\n    0x5956: 0x5968,\n    0x5967: 0x5965,\n    0x5969: 0x5333,\n    0x5986: 0x7CA7,\n    0x5987: 0x5A66,\n    0x5988: 0x5ABD,\n    0x5992: 0x59AC,\n    0x59AA: 0x5AD7,\n    0x59C9: 0x92F2,\n    0x59CA: 0x59C9,\n    0x59EC: 0x59EB,\n    0x5A04: 0x5A41,\n    0x5A07: 0x5B0C,\n    0x5A1B: 0x5A2F,\n    0x5A31: 0x5A2F,\n    0x5A34: 0x5AFB,\n    0x5A61: 0x60E3,\n    0x5A74: 0x5B30,\n    0x5A75: 0x5B0B,\n    0x5AAA: 0x5ABC,\n    0x5AB8: 0x599B,\n    0x5AD4: 0x5B2A,\n    0x5AFE: 0x88AE,\n    0x5B43: 0x5B22,\n    0x5B59: 0x5B6B,\n    0x5B78: 0x5B66,\n    0x5B81: 0x5BE7,\n    0x5B9E: 0x5B9F,\n    0x5BA0: 0x5BF5,\n    0x5BA1: 0x5BE9,\n    0x5BAA: 0x61B2,\n    0x5BBD: 0x5BDB,\n    0x5BBE: 0x8CD3,\n    0x5BC7: 0x51A6,\n    0x5BE2: 0x5BDD,\n    0x5BE6: 0x5B9F,\n    0x5BEB: 0x5199,\n    0x5BEC: 0x5BDB,\n    0x5BF6: 0x5B9D,\n    0x5BF9: 0x5BFE,\n    0x5BFB: 0x5C0B,\n    0x5BFC: 0x5C0E,\n    0x5C07: 0x5C06,\n    0x5C08: 0x5C02,\n    0x5C0D: 0x5BFE,\n    0x5C18: 0x5875,\n    0x5C1D: 0x5617,\n    0x5C27: 0x5C2D,\n    0x5C42: 0x5C64,\n    0x5C43: 0x5C53,\n    0x5C46: 0x5C4A,\n    0x5C5C: 0x7B39,\n    0x5C62: 0x5C61,\n    0x5C6C: 0x5C5E,\n    0x5C6D: 0x5C53,\n    0x5C7F: 0x5DBC,\n    0x5C81: 0x6B73,\n    0x5C96: 0x5D87,\n    0x5C97: 0x5D17,\n    0x5C9A: 0x5D50,\n    0x5C9B: 0x5CF6,\n    0x5CAD: 0x5CBA,\n    0x5CE3: 0x5DA2,\n    0x5CE5: 0x5D22,\n    0x5CE6: 0x5DD2,\n    0x5CEA: 0x7872,\n    0x5CF0: 0x5CEF,\n    0x5CFD: 0x5CE1,\n    0x5D19: 0x5D18,\n    0x5D2D: 0x5D84,\n    0x5D58: 0x5DB8,\n    0x5D68: 0x5D8B,\n    0x5DC5: 0x5DD3,\n    0x5DD4: 0x5DD3,\n    0x5DD6: 0x5DCC,\n    0x5DE0: 0x5759,\n    0x5DE2: 0x5DE3,\n    0x5DE9: 0x978F,\n    0x5E01: 0x5E63,\n    0x5E05: 0x5E25,\n    0x5E08: 0x5E2B,\n    0x5E0F: 0x5E43,\n    0x5E10: 0x5E33,\n    0x5E15: 0x7D48,\n    0x5E18: 0x7C3E,\n    0x5E1C: 0x5E5F,\n    0x5E26: 0x5E2F,\n    0x5E27: 0x5E40,\n    0x5E2E: 0x5E47,\n    0x5E36: 0x5E2F,\n    0x5E3C: 0x5E57,\n    0x5E6B: 0x5E47,\n    0x5E86: 0x6176,\n    0x5E90: 0x5EEC,\n    0x5E91: 0x5EE1,\n    0x5E93: 0x5EAB,\n    0x5E94: 0x5FDC,\n    0x5E99: 0x5EDF,\n    0x5E9F: 0x5EC3,\n    0x5EBD: 0x9942,\n    0x5EC1: 0x53A0,\n    0x5EC4: 0x53A9,\n    0x5EC8: 0x53A6,\n    0x5EDD: 0x53AE,\n    0x5EE2: 0x5EC3,\n    0x5EE3: 0x5E83,\n    0x5EEA: 0x5EE9,\n    0x5EF3: 0x5E81,\n    0x5F00: 0x958B,\n    0x5F02: 0x7570,\n    0x5F12: 0x5F11,\n    0x5F20: 0x5F35,\n    0x5F39: 0x5F3E,\n    0x5F3A: 0x5F37,\n    0x5F48: 0x5F3E,\n    0x5F4C: 0x5F25,\n    0x5F4E: 0x5F2F,\n    0x5F52: 0x5E30,\n    0x5F55: 0x9332,\n    0x5F5D: 0x5F5C,\n    0x5F65: 0x5F66,\n    0x5F7B: 0x5FB9,\n    0x5F91: 0x5F84,\n    0x5F95: 0x5FA0,\n    0x5F9E: 0x5F93,\n    0x5FB5: 0x5FB4,\n    0x5FB7: 0x5FB3,\n    0x5FC6: 0x61B6,\n    0x5FCF: 0x61F4,\n    0x5FE7: 0x6182,\n    0x5FFE: 0x613E,\n    0x6000: 0x61D0,\n    0x6001: 0x614B,\n    0x6003: 0x61AE,\n    0x6005: 0x60B5,\n    0x6006: 0x6134,\n    0x601C: 0x6190,\n    0x603B: 0x7DCF,\n    0x603F: 0x61CC,\n    0x6058: 0x6077,\n    0x6073: 0x61C7,\n    0x6076: 0x60AA,\n    0x6078: 0x615F,\n    0x607A: 0x6137,\n    0x607B: 0x60FB,\n    0x607C: 0x60A9,\n    0x607D: 0x60F2,\n    0x607F: 0x6142,\n    0x6080: 0x6111,\n    0x6085: 0x60A6,\n    0x60AB: 0x6128,\n    0x60AC: 0x61F8,\n    0x60AD: 0x6173,\n    0x60AF: 0x61AB,\n    0x60CA: 0x9A5A,\n    0x60E0: 0x6075,\n    0x60E1: 0x60AA,\n    0x60E9: 0x61F2,\n    0x60EB: 0x618A,\n    0x60ED: 0x615A,\n    0x60EE: 0x619A,\n    0x60EF: 0x6163,\n    0x60F1: 0x60A9,\n    0x6119: 0x9BF1,\n    0x6124: 0x61A4,\n    0x6151: 0x61FE,\n    0x6158: 0x60E8,\n    0x6164: 0x6128,\n    0x617C: 0x621A,\n    0x6191: 0x51ED,\n    0x61C0: 0x9C3A,\n    0x61C9: 0x5FDC,\n    0x61D2: 0x61F6,\n    0x61D4: 0x61CD,\n    0x61EE: 0x6182,\n    0x61F7: 0x61D0,\n    0x61FA: 0x61F4,\n    0x61FC: 0x60E7,\n    0x6200: 0x604B,\n    0x620B: 0x6214,\n    0x620F: 0x622F,\n    0x6218: 0x6226,\n    0x622E: 0x52E0,\n    0x6230: 0x6226,\n    0x6232: 0x622F,\n    0x6236: 0x6238,\n    0x623E: 0x623B,\n    0x6251: 0x64B2,\n    0x6267: 0x57F7,\n    0x6269: 0x62E1,\n    0x626A: 0x636B,\n    0x626B: 0x6383,\n    0x626C: 0x63DA,\n    0x6270: 0x64FE,\n    0x629A: 0x64AB,\n    0x629F: 0x6476,\n    0x62A2: 0x6436,\n    0x62A4: 0x8B77,\n    0x62A5: 0x5831,\n    0x62CB: 0x629B,\n    0x62D4: 0x629C,\n    0x62DC: 0x62DD,\n    0x62DF: 0x64EC,\n    0x62E3: 0x63C0,\n    0x62E5: 0x64C1,\n    0x62E8: 0x64A5,\n    0x62E9: 0x64C7,\n    0x631B: 0x6523,\n    0x631E: 0x64BB,\n    0x6320: 0x6493,\n    0x6324: 0x64E0,\n    0x6325: 0x63EE,\n    0x633E: 0x631F,\n    0x635E: 0x6488,\n    0x635F: 0x640D,\n    0x6362: 0x63DB,\n    0x6363: 0x64E3,\n    0x6374: 0x6460,\n    0x63B7: 0x64F2,\n    0x63D2: 0x633F,\n    0x63ED: 0x63B2,\n    0x63F8: 0x936E,\n    0x63FD: 0x652C,\n    0x6401: 0x64F1,\n    0x6405: 0x64B9,\n    0x6414: 0x63BB,\n    0x6416: 0x63FA,\n    0x641C: 0x635C,\n    0x6425: 0x6376,\n    0x6444: 0x6442,\n    0x6446: 0x64FA,\n    0x6447: 0x63FA,\n    0x6448: 0x64EF,\n    0x644A: 0x6524,\n    0x6451: 0x63B4,\n    0x6470: 0x646F,\n    0x64AF: 0x691A,\n    0x64C7: 0x629E,\n    0x64CA: 0x6483,\n    0x64D4: 0x62C5,\n    0x64E5: 0x5840,\n    0x64F4: 0x62E1,\n    0x6512: 0x6505,\n    0x651C: 0x643A,\n    0x6522: 0x6505,\n    0x652A: 0x64B9,\n    0x6536: 0x53CE,\n    0x6548: 0x52B9,\n    0x654C: 0x6575,\n    0x6555: 0x52C5,\n    0x6558: 0x53D9,\n    0x655B: 0x6B5B,\n    0x6578: 0x6570,\n    0x658B: 0x658E,\n    0x65A9: 0x65AC,\n    0x65B7: 0x65AD,\n    0x65DB: 0x65D9,\n    0x65F6: 0x6642,\n    0x65F7: 0x663F,\n    0x65F8: 0x6698,\n    0x6619: 0x66C7,\n    0x663A: 0x661E,\n    0x663E: 0x9855,\n    0x6649: 0x664B,\n    0x6653: 0x6681,\n    0x6654: 0x66C4,\n    0x6655: 0x6688,\n    0x6656: 0x6689,\n    0x665A: 0x6669,\n    0x665D: 0x663C,\n    0x6670: 0x6673,\n    0x6682: 0x66AB,\n    0x66A7: 0x66D6,\n    0x66A8: 0x66C1,\n    0x66B1: 0x6635,\n    0x66B3: 0x567A,\n    0x66C6: 0x66A6,\n    0x66C9: 0x6681,\n    0x66E0: 0x663F,\n    0x66EC: 0x6652,\n    0x6703: 0x4F1A,\n    0x6725: 0x73C9,\n    0x6735: 0x6736,\n    0x6740: 0x6BBA,\n    0x6742: 0x96D1,\n    0x6743: 0x6A29,\n    0x6768: 0x694A,\n    0x676B: 0x9C2F,\n    0x6781: 0x6975,\n    0x6784: 0x69CB,\n    0x679E: 0x6A05,\n    0x67A5: 0x6AEA,\n    0x67AA: 0x69CD,\n    0x67AB: 0x6953,\n    0x67CF: 0x6822,\n    0x67DB: 0x698A,\n    0x67DC: 0x6AC3,\n    0x67E0: 0x6AB8,\n    0x67E5: 0x67FB,\n    0x6805: 0x67F5,\n    0x6807: 0x6A19,\n    0x6808: 0x685F,\n    0x6809: 0x6ADB,\n    0x680A: 0x69DE,\n    0x680B: 0x68DF,\n    0x680E: 0x6AAA,\n    0x680F: 0x6B04,\n    0x6811: 0x6A39,\n    0x6837: 0x69D8,\n    0x683E: 0x6B12,\n    0x6860: 0x690F,\n    0x6861: 0x6A48,\n    0x6862: 0x6968,\n    0x6865: 0x6A4B,\n    0x6866: 0x67A0,\n    0x689D: 0x6761,\n    0x68C0: 0x691C,\n    0x68C2: 0x6AFA,\n    0x68E7: 0x685F,\n    0x68EC: 0x6926,\n    0x6964: 0x84AD,\n    0x6984: 0x6B16,\n    0x6986: 0x6961,\n    0x6988: 0x6ADA,\n    0x6993: 0x6AC1,\n    0x69A8: 0x643E,\n    0x69AE: 0x6804,\n    0x69D4: 0x69F9,\n    0x69DB: 0x6ABB,\n    0x69E8: 0x6901,\n    0x69F6: 0x6922,\n    0x6A02: 0x697D,\n    0x6A11: 0x6881,\n    0x6A13: 0x697C,\n    0x6A23: 0x69D8,\n    0x6A2F: 0x6AA3,\n    0x6A31: 0x685C,\n    0x6A36: 0x701E,\n    0x6A3A: 0x67A0,\n    0x6A62: 0x6955,\n    0x6A6B: 0x6A2A,\n    0x6A79: 0x6AD3,\n    0x6A7C: 0x6ADE,\n    0x6A94: 0x6863,\n    0x6A9C: 0x6867,\n    0x6AA2: 0x691C,\n    0x6AAE: 0x68BC,\n    0x6AB3: 0x68B9,\n    0x6ADF: 0x6AAA,\n    0x6AF1: 0x8616,\n    0x6AF3: 0x69DE,\n    0x6AF8: 0x6B05,\n    0x6AFB: 0x685C,\n    0x6B0A: 0x6A29,\n    0x6B1E: 0x6AFA,\n    0x6B22: 0x6B53,\n    0x6B24: 0x6B5F,\n    0x6B50: 0x6B27,\n    0x6B61: 0x6B53,\n    0x6B65: 0x6B69,\n    0x6B72: 0x6B73,\n    0x6B77: 0x6B74,\n    0x6B78: 0x5E30,\n    0x6B7C: 0x6BB1,\n    0x6B87: 0x6BA4,\n    0x6B92: 0x6B9E,\n    0x6B98: 0x6B8B,\n    0x6B9A: 0x6BAB,\n    0x6BA1: 0x6BAF,\n    0x6BAD: 0x50F5,\n    0x6BB2: 0x6BB1,\n    0x6BBC: 0x6BBB,\n    0x6BC1: 0x6BC0,\n    0x6BC2: 0x8F42,\n    0x6BC6: 0x6BB4,\n    0x6BCF: 0x6BCE,\n    0x6BD5: 0x7562,\n    0x6BD9: 0x6583,\n    0x6C23: 0x6C17,\n    0x6C49: 0x6F22,\n    0x6C61: 0x6C5A,\n    0x6C64: 0x6E6F,\n    0x6C92: 0x6CA1,\n    0x6C9F: 0x6E9D,\n    0x6CA6: 0x6DEA,\n    0x6CA7: 0x6EC4,\n    0x6CB5: 0x6FD4,\n    0x6CDE: 0x6FD8,\n    0x6CF7: 0x6EDD,\n    0x6CF8: 0x7018,\n    0x6CFB: 0x7009,\n    0x6CFC: 0x6E8C,\n    0x6CFD: 0x6CA2,\n    0x6CFE: 0x6D87,\n    0x6D01: 0x6F54,\n    0x6D3C: 0x7AAA,\n    0x6D43: 0x6D79,\n    0x6D47: 0x6F86,\n    0x6D4A: 0x6FC1,\n    0x6D4B: 0x6E2C,\n    0x6D4E: 0x6E08,\n    0x6D4F: 0x700F,\n    0x6D51: 0x6E3E,\n    0x6D52: 0x6EF8,\n    0x6D53: 0x6FC3,\n    0x6D54: 0x6F6F,\n    0x6D82: 0x5857,\n    0x6D89: 0x6E09,\n    0x6D99: 0x681E,\n    0x6D9E: 0x6764,\n    0x6D9F: 0x6F23,\n    0x6DA1: 0x6E26,\n    0x6DA3: 0x6E19,\n    0x6DA6: 0x6F64,\n    0x6DA7: 0x6F97,\n    0x6DA8: 0x6F32,\n    0x6DB1: 0x66BF,\n    0x6DDA: 0x6D99,\n    0x6DE8: 0x6D44,\n    0x6DFA: 0x6D45,\n    0x6E0D: 0x6F2C,\n    0x6E0E: 0x6D9C,\n    0x6E10: 0x6F38,\n    0x6E14: 0x6F01,\n    0x6E34: 0x6E07,\n    0x6E4C: 0x9910,\n    0x6E83: 0x6F70,\n    0x6E85: 0x6FFA,\n    0x6E89: 0x6F11,\n    0x6EAA: 0x6E13,\n    0x6EAB: 0x6E29,\n    0x6EAF: 0x9061,\n    0x6EE1: 0x6E80,\n    0x6EE2: 0x7005,\n    0x6EE4: 0x6FFE,\n    0x6EE5: 0x6FEB,\n    0x6EE8: 0x6D5C,\n    0x6EE9: 0x7058,\n    0x6EEF: 0x6EDE,\n    0x6EFF: 0x6E80,\n    0x6F47: 0x701F,\n    0x6F4B: 0x7032,\n    0x6F51: 0x6E8C,\n    0x6F5B: 0x6F5C,\n    0x6F80: 0x6E0B,\n    0x6F81: 0x8262,\n    0x6F9C: 0x703E,\n    0x6FA4: 0x6CA2,\n    0x6FD1: 0x702C,\n    0x6FD2: 0x7015,\n    0x6FD5: 0x6E7F,\n    0x6FDF: 0x6E08,\n    0x6FE4: 0x6D9B,\n    0x6FF1: 0x6D5C,\n    0x7006: 0x6D9C,\n    0x7028: 0x702C,\n    0x704C: 0x6F45,\n    0x7063: 0x6E7E,\n    0x706D: 0x6EC5,\n    0x7075: 0x970A,\n    0x7076: 0x7AC3,\n    0x707F: 0x71E6,\n    0x7080: 0x716C,\n    0x708B: 0x5788,\n    0x7096: 0x71C9,\n    0x70BC: 0x7149,\n    0x70BD: 0x71BE,\n    0x70C1: 0x720D,\n    0x70C2: 0x721B,\n    0x70DB: 0x71ED,\n    0x70E6: 0x7169,\n    0x70E7: 0x713C,\n    0x70E8: 0x71C1,\n    0x70EC: 0x71FC,\n    0x70ED: 0x71B1,\n    0x7115: 0x7165,\n    0x7118: 0x71FE,\n    0x7130: 0x7114,\n    0x718E: 0x8977,\n    0x71C4: 0x7114,\n    0x71D2: 0x713C,\n    0x71DF: 0x55B6,\n    0x7210: 0x7089,\n    0x722D: 0x4E89,\n    0x7231: 0x611B,\n    0x7237: 0x723A,\n    0x724D: 0x7258,\n    0x7275: 0x727D,\n    0x727A: 0x72A0,\n    0x7281: 0x7282,\n    0x728A: 0x72A2,\n    0x72A7: 0x72A0,\n    0x72B7: 0x7377,\n    0x72C0: 0x72B6,\n    0x72C8: 0x72FD,\n    0x72DE: 0x7370,\n    0x72EE: 0x7345,\n    0x72EF: 0x736A,\n    0x72F1: 0x7344,\n    0x72F9: 0x72ED,\n    0x730E: 0x731F,\n    0x734E: 0x5968,\n    0x7368: 0x72EC,\n    0x736D: 0x737A,\n    0x7375: 0x731F,\n    0x7378: 0x7363,\n    0x737B: 0x732E,\n    0x739B: 0x746A,\n    0x73AF: 0x74B0,\n    0x73B0: 0x73FE,\n    0x73BA: 0x74BD,\n    0x73D1: 0x74CF,\n    0x73F2: 0x743F,\n    0x740F: 0x7489,\n    0x7410: 0x7463,\n    0x743C: 0x74CA,\n    0x7464: 0x7476,\n    0x748E: 0x73F1,\n    0x74D4: 0x73F1,\n    0x74EF: 0x750C,\n    0x7522: 0x7523,\n    0x7535: 0x96FB,\n    0x7545: 0x66A2,\n    0x756B: 0x753B,\n    0x756C: 0x756D,\n    0x7576: 0x5F53,\n    0x7587: 0x7574,\n    0x758A: 0x7573,\n    0x7597: 0x7642,\n    0x75A0: 0x7658,\n    0x75A1: 0x760D,\n    0x75AE: 0x7621,\n    0x75AF: 0x760B,\n    0x75C3: 0x65E0,\n    0x75C8: 0x7670,\n    0x75E8: 0x7646,\n    0x75EB: 0x7647,\n    0x75F9: 0x75FA,\n    0x7618: 0x763B,\n    0x7626: 0x75E9,\n    0x763A: 0x763B,\n    0x765E: 0x7669,\n    0x7663: 0x766C,\n    0x7665: 0x75C7,\n    0x766B: 0x7672,\n    0x767C: 0x767A,\n    0x7682: 0x7680,\n    0x768B: 0x7690,\n    0x76B2: 0x76B8,\n    0x76CF: 0x76DE,\n    0x76D0: 0x5869,\n    0x76D1: 0x76E3,\n    0x76D8: 0x76E4,\n    0x76DC: 0x76D7,\n    0x76E1: 0x5C3D,\n    0x773E: 0x8846,\n    0x7751: 0x77BC,\n    0x776A: 0x777E,\n    0x7786: 0x77B6,\n    0x7792: 0x779E,\n    0x77A9: 0x77DA,\n    0x77EB: 0x77EF,\n    0x77F6: 0x78EF,\n    0x77FF: 0x9271,\n    0x7801: 0x78BC,\n    0x7816: 0x750E,\n    0x781A: 0x786F,\n    0x783E: 0x792B,\n    0x7855: 0x78A9,\n    0x7856: 0x7864,\n    0x7857: 0x78FD,\n    0x786E: 0x78BA,\n    0x7877: 0x9E78,\n    0x788E: 0x7815,\n    0x789B: 0x78E7,\n    0x78CC: 0x78B5,\n    0x78DA: 0x750E,\n    0x7906: 0x9E78,\n    0x7919: 0x788D,\n    0x7926: 0x9271,\n    0x792A: 0x783A,\n    0x7936: 0x91E5,\n    0x796F: 0x798E,\n    0x7978: 0x798D,\n    0x797F: 0x7984,\n    0x79AA: 0x7985,\n    0x79AE: 0x793C,\n    0x79B0: 0x7962,\n    0x79B1: 0x7977,\n    0x79BB: 0x96E2,\n    0x79C3: 0x79BF,\n    0x79CD: 0x7A2E,\n    0x79EF: 0x7A4D,\n    0x79FD: 0x7A62,\n    0x7A05: 0x7A0E,\n    0x7A1F: 0x7980,\n    0x7A31: 0x79F0,\n    0x7A33: 0x7A4F,\n    0x7A3B: 0x7A32,\n    0x7A51: 0x7A61,\n    0x7A57: 0x7A42,\n    0x7A69: 0x7A4F,\n    0x7A70: 0x7A63,\n    0x7A77: 0x7AAE,\n    0x7A8D: 0x7AC5,\n    0x7A91: 0x7AAF,\n    0x7A97: 0x7A93,\n    0x7A9C: 0x7AC4,\n    0x7A9D: 0x7AA9,\n    0x7AA5: 0x7ABA,\n    0x7AA6: 0x7AC7,\n    0x7ACA: 0x7A83,\n    0x7AD6: 0x7AEA,\n    0x7ADE: 0x7AF6,\n    0x7B03: 0x7BE4,\n    0x7B14: 0x7B46,\n    0x7B15: 0x7B67,\n    0x7B3A: 0x7B8B,\n    0x7B3C: 0x7BED,\n    0x7B4D: 0x7B0B,\n    0x7B50: 0x7B7A,\n    0x7B5A: 0x7BF3,\n    0x7B5B: 0x7BE9,\n    0x7B79: 0x7C4C,\n    0x7B80: 0x7C21,\n    0x7B8F: 0x7B5D,\n    0x7BA6: 0x7C00,\n    0x7BA7: 0x7BCB,\n    0x7BAB: 0x7C2B,\n    0x7BD1: 0x7C23,\n    0x7BD3: 0x7C0D,\n    0x7BE1: 0x7C12,\n    0x7BE6: 0x7B86,\n    0x7BEE: 0x7C43,\n    0x7BF1: 0x7C6C,\n    0x7C11: 0x7C14,\n    0x7C1E: 0x7BAA,\n    0x7C60: 0x7BED,\n    0x7C64: 0x7C56,\n    0x7C72: 0x5401,\n    0x7C7B: 0x985E,\n    0x7C9D: 0x7CF2,\n    0x7CAA: 0x7CDE,\n    0x7CAE: 0x7CE7,\n    0x7CB5: 0x7CA4,\n    0x7CB8: 0x9348,\n    0x7CDD: 0x7CC2,\n    0x7CED: 0x9277,\n    0x7CF0: 0x56E3,\n    0x7CF5: 0x4FE4,\n    0x7D27: 0x7DCA,\n    0x7D55: 0x7D76,\n    0x7D93: 0x7D4C,\n    0x7DA0: 0x7DD1,\n    0x7DD1: 0x68B6,\n    0x7DE3: 0x7E01,\n    0x7DFE: 0x6130,\n    0x7E23: 0x770C,\n    0x7E31: 0x7E26,\n    0x7E3B: 0x9EBF,\n    0x7E3D: 0x7DCF,\n    0x7E48: 0x7E66,\n    0x7E61: 0x7E4D,\n    0x7E65: 0x9C0A,\n    0x7E69: 0x7E04,\n    0x7E6A: 0x7D75,\n    0x7E6B: 0x7E4B,\n    0x7E7C: 0x7D99,\n    0x7E8A: 0x7D4B,\n    0x7E8C: 0x7D9A,\n    0x7E96: 0x7E4A,\n    0x7E98: 0x7E89,\n    0x7EA0: 0x7CFE,\n    0x7EA1: 0x7D06,\n    0x7EA2: 0x7D05,\n    0x7EA3: 0x7D02,\n    0x7EA4: 0x7E4A,\n    0x7EA6: 0x7D04,\n    0x7EA7: 0x7D1A,\n    0x7EA9: 0x7D4B,\n    0x7EAA: 0x7D00,\n    0x7EAC: 0x7DEF,\n    0x7EAD: 0x7D1C,\n    0x7EAE: 0x7D18,\n    0x7EAF: 0x7D14,\n    0x7EB0: 0x7D15,\n    0x7EB1: 0x7D17,\n    0x7EB2: 0x7DB1,\n    0x7EB3: 0x7D0D,\n    0x7EB5: 0x7E26,\n    0x7EB6: 0x7DB8,\n    0x7EB7: 0x7D1B,\n    0x7EB9: 0x7D0B,\n    0x7EBA: 0x7D21,\n    0x7EBB: 0x7D35,\n    0x7EBF: 0x7DDA,\n    0x7EC0: 0x7D3A,\n    0x7EC1: 0x7D32,\n    0x7EC3: 0x7DF4,\n    0x7EC4: 0x7D44,\n    0x7EC5: 0x7D33,\n    0x7EC6: 0x7D30,\n    0x7EC7: 0x7E54,\n    0x7EC8: 0x7D42,\n    0x7ECA: 0x7D46,\n    0x7ECD: 0x7D39,\n    0x7ECE: 0x7E79,\n    0x7ECF: 0x7D4C,\n    0x7ED0: 0x7D3F,\n    0x7ED2: 0x7D68,\n    0x7ED3: 0x7D50,\n    0x7ED5: 0x7E5E,\n    0x7ED7: 0x7D4E,\n    0x7ED8: 0x7D75,\n    0x7ED9: 0x7D66,\n    0x7EDA: 0x7D62,\n    0x7EDB: 0x7D73,\n    0x7EDC: 0x7D61,\n    0x7EDD: 0x7D76,\n    0x7EDE: 0x7D5E,\n    0x7EDF: 0x7D71,\n    0x7EE2: 0x7D79,\n    0x7EE3: 0x7D89,\n    0x7EE5: 0x7D8F,\n    0x7EE6: 0x7D5B,\n    0x7EE7: 0x7D99,\n    0x7EE9: 0x7E3E,\n    0x7EEA: 0x7DD2,\n    0x7EEB: 0x7DBE,\n    0x7EED: 0x7D9A,\n    0x7EEE: 0x7DBA,\n    0x7EEF: 0x7DCB,\n    0x7EF0: 0x7DBD,\n    0x7EF3: 0x7E04,\n    0x7EF4: 0x7DAD,\n    0x7EF5: 0x7DBF,\n    0x7EF6: 0x7DAC,\n    0x7EF7: 0x7E43,\n    0x7EF8: 0x7DA2,\n    0x7EF9: 0x7DAF,\n    0x7EFB: 0x7DA3,\n    0x7EFC: 0x7D9C,\n    0x7EFD: 0x7DBB,\n    0x7EFE: 0x7DB0,\n    0x7EFF: 0x7DD1,\n    0x7F00: 0x7DB4,\n    0x7F01: 0x7DC7,\n    0x7F04: 0x7DD8,\n    0x7F05: 0x7DEC,\n    0x7F06: 0x7E9C,\n    0x7F08: 0x7DF2,\n    0x7F09: 0x7DDD,\n    0x7F0E: 0x7DDE,\n    0x7F12: 0x7E0B,\n    0x7F13: 0x7DE9,\n    0x7F14: 0x7DE0,\n    0x7F15: 0x7E37,\n    0x7F16: 0x7DE8,\n    0x7F17: 0x7DE1,\n    0x7F18: 0x7E01,\n    0x7F19: 0x7E09,\n    0x7F1A: 0x7E1B,\n    0x7F1B: 0x7E1F,\n    0x7F1D: 0x7E2B,\n    0x7F1F: 0x7E1E,\n    0x7F20: 0x7E8F,\n    0x7F22: 0x7E0A,\n    0x7F24: 0x7E7D,\n    0x7F25: 0x7E39,\n    0x7F26: 0x7E35,\n    0x7F27: 0x7E32,\n    0x7F28: 0x7E93,\n    0x7F29: 0x7E2E,\n    0x7F2A: 0x7E46,\n    0x7F2C: 0x7E88,\n    0x7F2D: 0x7E5A,\n    0x7F2E: 0x7E55,\n    0x7F2F: 0x7E52,\n    0x7F32: 0x7E70,\n    0x7F35: 0x7E89,\n    0x7F3D: 0x9262,\n    0x7F48: 0x58DC,\n    0x7F57: 0x7F85,\n    0x7F5A: 0x7F70,\n    0x7F62: 0x7F77,\n    0x7F74: 0x7F86,\n    0x7F81: 0x7F88,\n    0x7FB9: 0x7FAE,\n    0x7FD8: 0x7FF9,\n    0x8042: 0x8076,\n    0x804B: 0x807E,\n    0x804C: 0x8077,\n    0x804D: 0x8079,\n    0x8054: 0x806F,\n    0x805B: 0x923C,\n    0x806A: 0x8061,\n    0x8070: 0x8061,\n    0x8072: 0x58F0,\n    0x807D: 0x8074,\n    0x8083: 0x7C9B,\n    0x8085: 0x7C9B,\n    0x8089: 0x5B8D,\n    0x80A0: 0x8178,\n    0x80A4: 0x819A,\n    0x80BE: 0x814E,\n    0x80BF: 0x816B,\n    0x80C0: 0x8139,\n    0x80C1: 0x8107,\n    0x80DC: 0x52DD,\n    0x80E7: 0x6727,\n    0x80EA: 0x81DA,\n    0x80EB: 0x811B,\n    0x80F6: 0x81A0,\n    0x810D: 0x81BE,\n    0x8110: 0x81CD,\n    0x8111: 0x8133,\n    0x8113: 0x81BF,\n    0x8114: 0x81E0,\n    0x812B: 0x8131,\n    0x8138: 0x81C9,\n    0x814A: 0x81D8,\n    0x8158: 0x8195,\n    0x8166: 0x8133,\n    0x8173: 0x811A,\n    0x817B: 0x81A9,\n    0x817C: 0x9766,\n    0x817D: 0x8183,\n    0x817E: 0x9A30,\n    0x81BB: 0x7FB6,\n    0x81BD: 0x80C6,\n    0x81DF: 0x81D3,\n    0x8206: 0x8F3F,\n    0x8209: 0x6319,\n    0x820A: 0x65E7,\n    0x820D: 0x820E,\n    0x8216: 0x8217,\n    0x8223: 0x8264,\n    0x8230: 0x8266,\n    0x8231: 0x8259,\n    0x823B: 0x826B,\n    0x8270: 0x8271,\n    0x8273: 0x8276,\n    0x8277: 0x8276,\n    0x827A: 0x85DD,\n    0x8282: 0x7BC0,\n    0x8284: 0x7B02,\n    0x829C: 0x856A,\n    0x82C7: 0x8466,\n    0x82CC: 0x8407,\n    0x82CD: 0x84BC,\n    0x82CE: 0x82E7,\n    0x82CF: 0x8607,\n    0x830F: 0x8622,\n    0x8311: 0x8526,\n    0x8314: 0x584B,\n    0x8327: 0x7E6D,\n    0x8354: 0x8318,\n    0x835B: 0x8558,\n    0x835E: 0x854E,\n    0x835F: 0x8588,\n    0x8360: 0x85BA,\n    0x8361: 0x8569,\n    0x8363: 0x6804,\n    0x8364: 0x8477,\n    0x8368: 0x8541,\n    0x836B: 0x852D,\n    0x836F: 0x85AC,\n    0x837F: 0x7B6C,\n    0x838A: 0x8358,\n    0x8396: 0x830E,\n    0x83B2: 0x84EE,\n    0x83B3: 0x8494,\n    0x83B7: 0x7372,\n    0x83B8: 0x8362,\n    0x83B9: 0x7469,\n    0x83BA: 0x9D2C,\n    0x83BC: 0x84F4,\n    0x83CE: 0x7B86,\n    0x83E1: 0x839F,\n    0x83E4: 0x7B9E,\n    0x840A: 0x83B1,\n    0x8416: 0x4F39,\n    0x841D: 0x863F,\n    0x8421: 0x549C,\n    0x8424: 0x86CD,\n    0x8425: 0x55B6,\n    0x8427: 0x856D,\n    0x8428: 0x85A9,\n    0x8457: 0x7740,\n    0x8492: 0x9B97,\n    0x8493: 0x84F4,\n    0x849E: 0x6D96,\n    0x84CB: 0x76D6,\n    0x84DD: 0x85CD,\n    0x84DF: 0x858A,\n    0x84E3: 0x8577,\n    0x84E6: 0x9A40,\n    0x84E8: 0x84DA,\n    0x8523: 0x848B,\n    0x8525: 0x8471,\n    0x8537: 0x8594,\n    0x853A: 0x85FA,\n    0x853C: 0x85F9,\n    0x8574: 0x860A,\n    0x85B0: 0x85AB,\n    0x85CF: 0x8535,\n    0x85D3: 0x861A,\n    0x85D6: 0x6282,\n    0x85E5: 0x85AC,\n    0x85EA: 0x85AE,\n    0x8606: 0x82A6,\n    0x860D: 0x7AD3,\n    0x864F: 0x865C,\n    0x8651: 0x616E,\n    0x8655: 0x51E6,\n    0x865B: 0x865A,\n    0x865F: 0x53F7,\n    0x867D: 0x96D6,\n    0x867E: 0x8766,\n    0x8680: 0x8755,\n    0x8681: 0x87FB,\n    0x86CA: 0x8831,\n    0x86CD: 0x4FE5,\n    0x86CF: 0x87F6,\n    0x8721: 0x874B,\n    0x8747: 0x877F,\n    0x8766: 0x86EF,\n    0x877C: 0x87BB,\n    0x877E: 0x8811,\n    0x87A2: 0x86CD,\n    0x87EC: 0x8749,\n    0x8805: 0x877F,\n    0x881F: 0x874B,\n    0x8823: 0x86CE,\n    0x8839: 0x8827,\n    0x883B: 0x86EE,\n    0x8845: 0x91C1,\n    0x8854: 0x929C,\n    0x8865: 0x88DC,\n    0x886C: 0x896F,\n    0x8884: 0x8956,\n    0x889C: 0x896A,\n    0x88AD: 0x8972,\n    0x88C6: 0x8960,\n    0x88C8: 0x890C,\n    0x88DD: 0x88C5,\n    0x8902: 0x88BF,\n    0x891B: 0x8938,\n    0x8932: 0x88B4,\n    0x8934: 0x8964,\n    0x894C: 0x891D,\n    0x8955: 0x8974,\n    0x89BA: 0x899A,\n    0x89BD: 0x89A7,\n    0x89C0: 0x89B3,\n    0x89C1: 0x898B,\n    0x89C2: 0x89B3,\n    0x89C4: 0x898F,\n    0x89C5: 0x8993,\n    0x89C6: 0x8996,\n    0x89C7: 0x8998,\n    0x89C8: 0x89A7,\n    0x89C9: 0x899A,\n    0x89CA: 0x89AC,\n    0x89CB: 0x89A1,\n    0x89CC: 0x89BF,\n    0x89CE: 0x89A6,\n    0x89CF: 0x89AF,\n    0x89D0: 0x89B2,\n    0x89D4: 0x7B4B,\n    0x89DE: 0x89F4,\n    0x89E5: 0x4F8A,\n    0x8A1A: 0x8ABE,\n    0x8A8A: 0x8B04,\n    0x8AAA: 0x8AAC,\n    0x8AEB: 0x8ACC,\n    0x8B20: 0x8B21,\n    0x8B54: 0x64B0,\n    0x8B56: 0x8B5B,\n    0x8B6D: 0x6BC0,\n    0x8B6F: 0x8A33,\n    0x8B7D: 0x8A89,\n    0x8B80: 0x8AAD,\n    0x8B8A: 0x5909,\n    0x8B93: 0x8B72,\n    0x8B9A: 0x8B83,\n    0x8BA1: 0x8A08,\n    0x8BA2: 0x8A02,\n    0x8BA3: 0x8A03,\n    0x8BA4: 0x8A8D,\n    0x8BA5: 0x8B4F,\n    0x8BA6: 0x8A10,\n    0x8BA7: 0x8A0C,\n    0x8BA8: 0x8A0E,\n    0x8BA9: 0x8B93,\n    0x8BAB: 0x8A16,\n    0x8BAC: 0x8A17,\n    0x8BAD: 0x8A13,\n    0x8BAE: 0x8B70,\n    0x8BAF: 0x8A0A,\n    0x8BB0: 0x8A18,\n    0x8BB1: 0x8A12,\n    0x8BB2: 0x8B1B,\n    0x8BB3: 0x8AF1,\n    0x8BB4: 0x8B33,\n    0x8BB6: 0x8A1D,\n    0x8BB7: 0x8A25,\n    0x8BB8: 0x8A31,\n    0x8BB9: 0x8A1B,\n    0x8BBA: 0x8AD6,\n    0x8BBC: 0x8A1F,\n    0x8BBD: 0x8AF7,\n    0x8BBE: 0x8A2D,\n    0x8BBF: 0x8A2A,\n    0x8BC0: 0x8A23,\n    0x8BC1: 0x8A3C,\n    0x8BC2: 0x8A41,\n    0x8BC3: 0x8A36,\n    0x8BC4: 0x8A55,\n    0x8BC5: 0x8A5B,\n    0x8BC6: 0x8B58,\n    0x8BC8: 0x8A50,\n    0x8BC9: 0x8A34,\n    0x8BCA: 0x8A3A,\n    0x8BCB: 0x8A46,\n    0x8BCD: 0x8A5E,\n    0x8BCF: 0x8A54,\n    0x8BD1: 0x8A33,\n    0x8BD2: 0x8A52,\n    0x8BD4: 0x8A84,\n    0x8BD5: 0x8A66,\n    0x8BD7: 0x8A69,\n    0x8BD8: 0x8A70,\n    0x8BD9: 0x8A7C,\n    0x8BDA: 0x8AA0,\n    0x8BDB: 0x8A85,\n    0x8BDD: 0x8A71,\n    0x8BDE: 0x8A95,\n    0x8BDF: 0x8A6C,\n    0x8BE0: 0x8A6E,\n    0x8BE1: 0x8A6D,\n    0x8BE2: 0x8A62,\n    0x8BE3: 0x8A63,\n    0x8BE4: 0x8ACD,\n    0x8BE5: 0x8A72,\n    0x8BE6: 0x8A73,\n    0x8BE7: 0x8A6B,\n    0x8BE8: 0x8AE2,\n    0x8BEB: 0x8AA1,\n    0x8BEC: 0x8AA3,\n    0x8BED: 0x8A9E,\n    0x8BEE: 0x8A9A,\n    0x8BEF: 0x8AA4,\n    0x8BF0: 0x8AA5,\n    0x8BF1: 0x8A98,\n    0x8BF2: 0x8AA8,\n    0x8BF3: 0x8A91,\n    0x8BF4: 0x8AAC,\n    0x8BF5: 0x8AA6,\n    0x8BF6: 0x7E67,\n    0x8BF7: 0x8ACB,\n    0x8BF8: 0x8AF8,\n    0x8BF9: 0x8ACF,\n    0x8BFA: 0x8AFE,\n    0x8BFB: 0x8AAD,\n    0x8BFD: 0x8AB9,\n    0x8BFE: 0x8AB2,\n    0x8C00: 0x8ADB,\n    0x8C01: 0x8AB0,\n    0x8C03: 0x8ABF,\n    0x8C04: 0x8AC2,\n    0x8C05: 0x8AD2,\n    0x8C06: 0x8AC4,\n    0x8C08: 0x8AC7,\n    0x8C0A: 0x8ABC,\n    0x8C0B: 0x8B00,\n    0x8C0C: 0x8AF6,\n    0x8C0D: 0x8ADC,\n    0x8C0F: 0x8ACC,\n    0x8C10: 0x8AE7,\n    0x8C11: 0x8B14,\n    0x8C12: 0x8B01,\n    0x8C13: 0x8B02,\n    0x8C14: 0x8AE4,\n    0x8C15: 0x8AED,\n    0x8C17: 0x8B92,\n    0x8C18: 0x8AEE,\n    0x8C19: 0x8AF3,\n    0x8C1A: 0x8AFA,\n    0x8C1B: 0x8AE6,\n    0x8C1C: 0x8B0E,\n    0x8C1D: 0x8ADE,\n    0x8C1F: 0x8B28,\n    0x8C21: 0x8B16,\n    0x8C22: 0x8B1D,\n    0x8C23: 0x8B21,\n    0x8C24: 0x8B17,\n    0x8C25: 0x8B1A,\n    0x8C26: 0x8B19,\n    0x8C27: 0x8B10,\n    0x8C28: 0x8B39,\n    0x8C29: 0x8B3E,\n    0x8C2A: 0x8B2B,\n    0x8C2C: 0x8B2C,\n    0x8C2D: 0x8B5A,\n    0x8C2E: 0x8B5B,\n    0x8C31: 0x8B5C,\n    0x8C32: 0x8B4E,\n    0x8C34: 0x8B74,\n    0x8C35: 0x8B6B,\n    0x8C36: 0x8B96,\n    0x8C4E: 0x7AEA,\n    0x8C54: 0x8276,\n    0x8C6C: 0xFA16,\n    0x8C7A: 0x72B2,\n    0x8C89: 0x72E2,\n    0x8C92: 0x732F,\n    0x8C93: 0x732B,\n    0x8C98: 0x734F,\n    0x8CB3: 0x5F10,\n    0x8CE3: 0x58F2,\n    0x8CE4: 0x8CCE,\n    0x8CF4: 0x983C,\n    0x8CF8: 0x5270,\n    0x8D0A: 0x8CDB,\n    0x8D13: 0x8CCD,\n    0x8D17: 0x8D0B,\n    0x8D1D: 0x8C9D,\n    0x8D1E: 0x8C9E,\n    0x8D1F: 0x8CA0,\n    0x8D21: 0x8CA2,\n    0x8D23: 0x8CAC,\n    0x8D24: 0x8CE2,\n    0x8D25: 0x6557,\n    0x8D27: 0x8CA8,\n    0x8D28: 0x8CEA,\n    0x8D29: 0x8CA9,\n    0x8D2A: 0x8CAA,\n    0x8D2B: 0x8CA7,\n    0x8D2C: 0x8CB6,\n    0x8D2D: 0x8CFC,\n    0x8D2E: 0x8CAF,\n    0x8D2F: 0x8CAB,\n    0x8D30: 0x8CB3,\n    0x8D31: 0x8CCE,\n    0x8D32: 0x8CC1,\n    0x8D33: 0x8CB0,\n    0x8D34: 0x8CBC,\n    0x8D35: 0x8CB4,\n    0x8D37: 0x8CB8,\n    0x8D38: 0x8CBF,\n    0x8D39: 0x8CBB,\n    0x8D3A: 0x8CC0,\n    0x8D3B: 0x8CBD,\n    0x8D3C: 0x8CCA,\n    0x8D3D: 0x8D04,\n    0x8D3E: 0x8CC8,\n    0x8D3F: 0x8CC4,\n    0x8D40: 0x8CB2,\n    0x8D41: 0x8CC3,\n    0x8D42: 0x8CC2,\n    0x8D43: 0x8CCD,\n    0x8D44: 0x8CC7,\n    0x8D46: 0x8D10,\n    0x8D48: 0x8CD1,\n    0x8D49: 0x8CDA,\n    0x8D4B: 0x8CE6,\n    0x8D4C: 0x8CED,\n    0x8D4E: 0x8D16,\n    0x8D4F: 0x8CDE,\n    0x8D50: 0x8CDC,\n    0x8D51: 0x8D14,\n    0x8D56: 0x983C,\n    0x8D58: 0x8D05,\n    0x8D59: 0x8CFB,\n    0x8D5A: 0x8CFA,\n    0x8D5B: 0x8CFD,\n    0x8D5D: 0x8D0B,\n    0x8D5E: 0x8CDB,\n    0x8D5F: 0x8D07,\n    0x8D60: 0x8D08,\n    0x8D61: 0x8D0D,\n    0x8D8B: 0x8DA8,\n    0x8D95: 0x8D76,\n    0x8DC3: 0x8E8D,\n    0x8DC4: 0x8E4C,\n    0x8DF8: 0x8E55,\n    0x8DFB: 0x8E8B,\n    0x8E0C: 0x8E8A,\n    0x8E10: 0x8DF5,\n    0x8E2C: 0x8E93,\n    0x8E2F: 0x8E91,\n    0x8E34: 0x8E0A,\n    0x8E51: 0x8EA1,\n    0x8E52: 0x8E63,\n    0x8E64: 0x8E2A,\n    0x8E75: 0x9B83,\n    0x8E8F: 0x8EAA,\n    0x8EB2: 0x8EB1,\n    0x8EC0: 0x8EAF,\n    0x8EC6: 0x9E95,\n    0x8F15: 0x8EFD,\n    0x8F1B: 0x8F0C,\n    0x8F49: 0x8EE2,\n    0x8F66: 0x8ECA,\n    0x8F67: 0x8ECB,\n    0x8F68: 0x8ECC,\n    0x8F69: 0x8ED2,\n    0x8F6C: 0x8EE2,\n    0x8F6D: 0x8EDB,\n    0x8F6E: 0x8F2A,\n    0x8F6F: 0x8EDF,\n    0x8F70: 0x8F5F,\n    0x8F72: 0x8EFB,\n    0x8F73: 0x8F64,\n    0x8F74: 0x8EF8,\n    0x8F76: 0x8EFC,\n    0x8F78: 0x8EEB,\n    0x8F79: 0x8F62,\n    0x8F7B: 0x8EFD,\n    0x8F7C: 0x8EFE,\n    0x8F7D: 0x8F09,\n    0x8F7E: 0x8F0A,\n    0x8F7F: 0x8F4E,\n    0x8F82: 0x8F05,\n    0x8F83: 0x8F03,\n    0x8F84: 0x8F12,\n    0x8F85: 0x8F14,\n    0x8F86: 0x8F0C,\n    0x8F87: 0x8F26,\n    0x8F88: 0x8F29,\n    0x8F89: 0x8F1D,\n    0x8F8D: 0x8F1F,\n    0x8F8E: 0x8F1C,\n    0x8F8F: 0x8F33,\n    0x8F90: 0x8F3B,\n    0x8F91: 0x8F2F,\n    0x8F93: 0x8F38,\n    0x8F94: 0x8F61,\n    0x8F95: 0x8F45,\n    0x8F96: 0x8F44,\n    0x8F97: 0x8F3E,\n    0x8F98: 0x8F46,\n    0x8F99: 0x8F4D,\n    0x8FA9: 0x8FAF,\n    0x8FAB: 0x8FAE,\n    0x8FAD: 0x8F9E,\n    0x8FB9: 0x908A,\n    0x8FBD: 0x907C,\n    0x8FBE: 0x9054,\n    0x8FC1: 0x9077,\n    0x8FC7: 0x904E,\n    0x8FC8: 0x9081,\n    0x8FD0: 0x904B,\n    0x8FD9: 0x9019,\n    0x8FDB: 0x9032,\n    0x8FDC: 0x9060,\n    0x8FDE: 0x9023,\n    0x8FDF: 0x9045,\n    0x8FEA: 0x5EF8,\n    0x8FF3: 0x9015,\n    0x8FF4: 0x5EFB,\n    0x8FFA: 0x5EFC,\n    0x9002: 0x9069,\n    0x9009: 0x9078,\n    0x900A: 0x905C,\n    0x9012: 0x9013,\n    0x903B: 0x908F,\n    0x9057: 0x907A,\n    0x9059: 0x9065,\n    0x905E: 0x9013,\n    0x9072: 0x9045,\n    0x9087: 0x8FE9,\n    0x908A: 0x8FBA,\n    0x9093: 0x9127,\n    0x90AE: 0x90F5,\n    0x90B9: 0x9112,\n    0x90BB: 0x96A3,\n    0x90D1: 0x912D,\n    0x90F8: 0x9132,\n    0x9109: 0x90F7,\n    0x9115: 0x90F7,\n    0x9130: 0x96A3,\n    0x9166: 0x9197,\n    0x9171: 0x91A4,\n    0x917F: 0x91C0,\n    0x91AB: 0x533B,\n    0x91AC: 0x91A4,\n    0x91B1: 0x9197,\n    0x91C0: 0x91B8,\n    0x91CA: 0x91C8,\n    0x91CB: 0x91C8,\n    0x9246: 0x945A,\n    0x9264: 0x920E,\n    0x9274: 0x9451,\n    0x92AE: 0x947E,\n    0x92B3: 0x92ED,\n    0x9304: 0x9332,\n    0x9322: 0x92AD,\n    0x933E: 0x93E8,\n    0x934A: 0x932C,\n    0x9350: 0x9441,\n    0x9373: 0x9D50,\n    0x93D3: 0x57AA,\n    0x93FD: 0x92B9,\n    0x9435: 0x9244,\n    0x9444: 0x92F3,\n    0x947D: 0x945A,\n    0x9489: 0x91D8,\n    0x948A: 0x91D7,\n    0x948F: 0x91E7,\n    0x9490: 0x91E4,\n    0x9493: 0x91E3,\n    0x9497: 0x91F5,\n    0x949C: 0x9245,\n    0x949D: 0x920D,\n    0x949E: 0x9214,\n    0x949F: 0x9418,\n    0x94A2: 0x92FC,\n    0x94A3: 0x9211,\n    0x94A4: 0x9210,\n    0x94A5: 0x9470,\n    0x94A6: 0x6B3D,\n    0x94A7: 0x921E,\n    0x94A9: 0x920E,\n    0x94AE: 0x9215,\n    0x94B0: 0x923A,\n    0x94B1: 0x92AD,\n    0x94B2: 0x9266,\n    0x94B3: 0x9257,\n    0x94B4: 0x9237,\n    0x94B5: 0x9262,\n    0x94BA: 0x925E,\n    0x94BB: 0x945A,\n    0x94BE: 0x9240,\n    0x94BF: 0x923F,\n    0x94C1: 0x9244,\n    0x94C2: 0x9251,\n    0x94C3: 0x9234,\n    0x94C4: 0x9460,\n    0x94C5: 0x925B,\n    0x94C6: 0x925A,\n    0x94C9: 0x9249,\n    0x94CA: 0x9248,\n    0x94CD: 0x9239,\n    0x94CE: 0x9438,\n    0x94D3: 0x92E9,\n    0x94D4: 0x941A,\n    0x94D7: 0x92CF,\n    0x94D9: 0x9403,\n    0x94DB: 0x943A,\n    0x94DC: 0x9285,\n    0x94E0: 0x93A7,\n    0x94E2: 0x9296,\n    0x94E3: 0x9291,\n    0x94E6: 0x929B,\n    0x94E8: 0x9293,\n    0x94EB: 0x929A,\n    0x94ED: 0x9298,\n    0x94EE: 0x931A,\n    0x94F0: 0x9278,\n    0x94F3: 0x9283,\n    0x94F6: 0x9280,\n    0x94F8: 0x92F3,\n    0x94FB: 0x92D9,\n    0x94FE: 0x93C8,\n    0x94FF: 0x93D7,\n    0x9500: 0x92B7,\n    0x9501: 0x9396,\n    0x9504: 0x92E4,\n    0x9505: 0x934B,\n    0x9508: 0x92B9,\n    0x950B: 0x92D2,\n    0x9510: 0x92ED,\n    0x9516: 0x9306,\n    0x9519: 0x932F,\n    0x951A: 0x9328,\n    0x951C: 0x9321,\n    0x9521: 0x932B,\n    0x9522: 0x932E,\n    0x9523: 0x947C,\n    0x9524: 0x9318,\n    0x9525: 0x9310,\n    0x9526: 0x9326,\n    0x952D: 0x9320,\n    0x952E: 0x9375,\n    0x952F: 0x92F8,\n    0x9531: 0x9319,\n    0x9533: 0x9348,\n    0x9535: 0x93D8,\n    0x9537: 0x9354,\n    0x9539: 0x936C,\n    0x953A: 0x937E,\n    0x953B: 0x935B,\n    0x953D: 0x9360,\n    0x953E: 0x9370,\n    0x9540: 0x934D,\n    0x9542: 0x93E4,\n    0x9547: 0x93AE,\n    0x954A: 0x9477,\n    0x954C: 0x942B,\n    0x9550: 0x93AC,\n    0x9552: 0x93B0,\n    0x9555: 0x9394,\n    0x9558: 0x93DD,\n    0x955B: 0x93DE,\n    0x955C: 0x93E1,\n    0x955D: 0x93D1,\n    0x955E: 0x93C3,\n    0x9560: 0x93D0,\n    0x9561: 0x9414,\n    0x9563: 0x9410,\n    0x9566: 0x9413,\n    0x956B: 0x9419,\n    0x956E: 0x9436,\n    0x9574: 0x945E,\n    0x957F: 0x9577,\n    0x95B1: 0x95B2,\n    0x95DC: 0x95A2,\n    0x95E8: 0x9580,\n    0x95E9: 0x9582,\n    0x95ED: 0x9589,\n    0x95EE: 0x554F,\n    0x95EF: 0x95D6,\n    0x95F0: 0x958F,\n    0x95F2: 0x9591,\n    0x95F4: 0x9593,\n    0x95F5: 0x9594,\n    0x95F7: 0x60B6,\n    0x95F8: 0x9598,\n    0x95F9: 0x9B27,\n    0x95FA: 0x95A8,\n    0x95FB: 0x805E,\n    0x95FC: 0x95E5,\n    0x95FE: 0x95AD,\n    0x9600: 0x95A5,\n    0x9601: 0x95A3,\n    0x9604: 0x9B2E,\n    0x9605: 0x95B2,\n    0x9607: 0x95CD,\n    0x9608: 0x95BE,\n    0x9609: 0x95B9,\n    0x960B: 0x9B29,\n    0x960E: 0x95BB,\n    0x960F: 0x95BC,\n    0x9610: 0x95E1,\n    0x9611: 0x95CC,\n    0x9612: 0x95C3,\n    0x9614: 0x95CA,\n    0x9616: 0x95D4,\n    0x9619: 0x95D5,\n    0x961F: 0x968A,\n    0x9631: 0x7A7D,\n    0x9633: 0x967D,\n    0x9634: 0x9670,\n    0x9635: 0x9663,\n    0x9636: 0x968E,\n    0x9645: 0x969B,\n    0x9646: 0x9678,\n    0x9647: 0x96B4,\n    0x9648: 0x9673,\n    0x9655: 0x965C,\n    0x9668: 0x9695,\n    0x9669: 0x967A,\n    0x9677: 0x9665,\n    0x9690: 0x96A0,\n    0x96AA: 0x967A,\n    0x96B1: 0x96A0,\n    0x96B6: 0x96B7,\n    0x96B8: 0x96B7,\n    0x96BD: 0x96CB,\n    0x96BE: 0x96E3,\n    0x96CF: 0x96DB,\n    0x96D9: 0x53CC,\n    0x96DC: 0x96D1,\n    0x96DE: 0x9D8F,\n    0x96F3: 0x9742,\n    0x96FE: 0x9727,\n    0x9701: 0x973D,\n    0x972D: 0x9744,\n    0x9738: 0x8987,\n    0x9748: 0x970A,\n    0x975C: 0x9759,\n    0x9765: 0x9768,\n    0x9791: 0x97C3,\n    0x97CC: 0x976D,\n    0x97E6: 0x97CB,\n    0x97E7: 0x976D,\n    0x97E9: 0x97D3,\n    0x97EC: 0x97DC,\n    0x97ED: 0x97EE,\n    0x9830: 0x982C,\n    0x9838: 0x981A,\n    0x9839: 0x983D,\n    0x984F: 0x9854,\n    0x986F: 0x9855,\n    0x9875: 0x9801,\n    0x9876: 0x9802,\n    0x9877: 0x9803,\n    0x9879: 0x9805,\n    0x987A: 0x9806,\n    0x987D: 0x9811,\n    0x987E: 0x9867,\n    0x987F: 0x9813,\n    0x9881: 0x9812,\n    0x9882: 0x980C,\n    0x9883: 0x980F,\n    0x9884: 0x9810,\n    0x9885: 0x9871,\n    0x9886: 0x9818,\n    0x9887: 0x9817,\n    0x9888: 0x981A,\n    0x9889: 0x9821,\n    0x988A: 0x982C,\n    0x988D: 0x6F41,\n    0x9890: 0x9824,\n    0x9891: 0x983B,\n    0x9893: 0x983D,\n    0x9894: 0x9837,\n    0x9896: 0x7A4E,\n    0x9897: 0x9846,\n    0x9898: 0x984C,\n    0x989A: 0x984E,\n    0x989C: 0x9854,\n    0x989D: 0x984D,\n    0x989E: 0x9873,\n    0x98A0: 0x985B,\n    0x98A2: 0x9865,\n    0x98A4: 0x986B,\n    0x98A6: 0x9870,\n    0x98A7: 0x9874,\n    0x98CE: 0x98A8,\n    0x98D2: 0x98AF,\n    0x98D3: 0x98B6,\n    0x98D8: 0x98C4,\n    0x98D9: 0x98C6,\n    0x98E7: 0x55B0,\n    0x98E8: 0x9957,\n    0x98F1: 0x9910,\n    0x991A: 0x80B4,\n    0x9937: 0x5056,\n    0x9938: 0x75C3,\n    0x9965: 0x98E2,\n    0x9968: 0x98E9,\n    0x996B: 0x98EB,\n    0x996C: 0x98ED,\n    0x996D: 0x98EF,\n    0x996E: 0x98F2,\n    0x996F: 0x991E,\n    0x9970: 0x98FE,\n    0x9971: 0x98FD,\n    0x9972: 0x98FC,\n    0x9974: 0x98F4,\n    0x9975: 0x990C,\n    0x9976: 0x9952,\n    0x9977: 0x9909,\n    0x997C: 0x9905,\n    0x997F: 0x9913,\n    0x9980: 0x9918,\n    0x9981: 0x9912,\n    0x9985: 0x9921,\n    0x9986: 0x9928,\n    0x9988: 0x994B,\n    0x998F: 0x993E,\n    0x9991: 0x9949,\n    0x9992: 0x9945,\n    0x9994: 0x994C,\n    0x99A4: 0x9DAB,\n    0x99AA: 0x8F5C,\n    0x99B1: 0x99C4,\n    0x99E0: 0x97B4,\n    0x9A26: 0x70BB,\n    0x9A2D: 0x96B2,\n    0x9A37: 0x9A12,\n    0x9A45: 0x99C6,\n    0x9A52: 0x9A28,\n    0x9A57: 0x9A13,\n    0x9A5B: 0x99C5,\n    0x9A6C: 0x99AC,\n    0x9A6D: 0x99AD,\n    0x9A6E: 0x99C4,\n    0x9A6F: 0x99B4,\n    0x9A70: 0x99B3,\n    0x9A71: 0x99C6,\n    0x9A73: 0x99C1,\n    0x9A74: 0x9A62,\n    0x9A76: 0x99DB,\n    0x9A77: 0x99DF,\n    0x9A79: 0x99D2,\n    0x9A7B: 0x99D0,\n    0x9A7C: 0x99DD,\n    0x9A7D: 0x99D1,\n    0x9A7E: 0x99D5,\n    0x9A7F: 0x99C5,\n    0x9A80: 0x99D8,\n    0x9A81: 0x9A4D,\n    0x9A82: 0x7F75,\n    0x9A84: 0x9A55,\n    0x9A86: 0x99F1,\n    0x9A87: 0x99ED,\n    0x9A88: 0x99E2,\n    0x9A8A: 0x9A6A,\n    0x9A8B: 0x9A01,\n    0x9A8C: 0x9A13,\n    0x9A8E: 0x99F8,\n    0x9A8F: 0x99FF,\n    0x9A90: 0x9A0F,\n    0x9A93: 0x9A05,\n    0x9A96: 0x9A42,\n    0x9A97: 0x9A19,\n    0x9A98: 0x96B2,\n    0x9A9A: 0x9A12,\n    0x9A9E: 0x9A2B,\n    0x9AA0: 0x9A43,\n    0x9AA1: 0x9A3E,\n    0x9AA4: 0x9A5F,\n    0x9AA5: 0x9A65,\n    0x9AA7: 0x9A64,\n    0x9AC5: 0x9ACF,\n    0x9AD3: 0x9AC4,\n    0x9AEE: 0x9AEA,\n    0x9B04: 0x9AE2,\n    0x9B13: 0x9B22,\n    0x9B25: 0x95D8,\n    0x9B47: 0x9B58,\n    0x9B49: 0x9B4E,\n    0x9BC7: 0x9C00,\n    0x9C0D: 0x9C0C,\n    0x9C49: 0x9F08,\n    0x9C77: 0x9C10,\n    0x9C7C: 0x9B5A,\n    0x9C82: 0x9B74,\n    0x9C87: 0x9B8E,\n    0x9C8A: 0x9B93,\n    0x9C8B: 0x9B92,\n    0x9C8D: 0x9B91,\n    0x9C91: 0x9BAD,\n    0x9C94: 0x9BAA,\n    0x9C99: 0x9C60,\n    0x9C9B: 0x9BAB,\n    0x9C9C: 0x9BAE,\n    0x9CA3: 0x9C39,\n    0x9CA4: 0x9BC9,\n    0x9CA7: 0x9BC0,\n    0x9CA8: 0x9BCA,\n    0x9CAD: 0x9BD6,\n    0x9CB1: 0x9BE1,\n    0x9CB2: 0x9BE4,\n    0x9CB5: 0x9BE2,\n    0x9CB6: 0x9BF0,\n    0x9CB7: 0x9BDB,\n    0x9CB8: 0x9BE8,\n    0x9CBB: 0x9BD4,\n    0x9CBD: 0x9C08,\n    0x9CC3: 0x9C13,\n    0x9CC4: 0x9C10,\n    0x9CC5: 0x9C0D,\n    0x9CC6: 0x9C12,\n    0x9CC7: 0x9C09,\n    0x9CCC: 0x9C32,\n    0x9CCD: 0x9C2D,\n    0x9CCF: 0x9C25,\n    0x9CD4: 0x9C3E,\n    0x9CD5: 0x9C48,\n    0x9CD7: 0x9C3B,\n    0x9CD9: 0x6A2B,\n    0x9CDE: 0x9C57,\n    0x9CDF: 0x9C52,\n    0x9CE2: 0x9C67,\n    0x9CE7: 0x9CEC,\n    0x9D25: 0x9D2A,\n    0x9DAF: 0x9D2C,\n    0x9DD4: 0x7C7E,\n    0x9DD7: 0x9D0E,\n    0x9E1F: 0x9CE5,\n    0x9E20: 0x9CE9,\n    0x9E21: 0x9D8F,\n    0x9E22: 0x9CF6,\n    0x9E23: 0x9CF4,\n    0x9E25: 0x9D0E,\n    0x9E26: 0x9D09,\n    0x9E28: 0x9D07,\n    0x9E29: 0x9D06,\n    0x9E2A: 0x9D23,\n    0x9E2B: 0x9D87,\n    0x9E2D: 0x9D28,\n    0x9E2F: 0x9D26,\n    0x9E30: 0x9D12,\n    0x9E31: 0x9D1F,\n    0x9E33: 0x9D1B,\n    0x9E34: 0x9DFD,\n    0x9E35: 0x9D15,\n    0x9E37: 0x9DD9,\n    0x9E3D: 0x9D3F,\n    0x9E3E: 0x9E1E,\n    0x9E3F: 0x9D3B,\n    0x9E43: 0x9D51,\n    0x9E44: 0x9D60,\n    0x9E45: 0x9D5D,\n    0x9E48: 0x9D5C,\n    0x9E49: 0x9D61,\n    0x9E4A: 0x9D72,\n    0x9E4D: 0x9DA4,\n    0x9E4E: 0x9D6F,\n    0x9E4F: 0x9D6C,\n    0x9E51: 0x9D89,\n    0x9E57: 0x9D9A,\n    0x9E58: 0x9DBB,\n    0x9E5C: 0x9DA9,\n    0x9E5E: 0x9DC2,\n    0x9E5F: 0x9DB2,\n    0x9E61: 0x9DBA,\n    0x9E62: 0x9DC1,\n    0x9E64: 0x9DB4,\n    0x9E66: 0x9E1A,\n    0x9E67: 0x9DD3,\n    0x9E69: 0x9DEF,\n    0x9E6A: 0x9DE6,\n    0x9E6B: 0x9DF2,\n    0x9E6C: 0x9DF8,\n    0x9E6D: 0x9DFA,\n    0x9E70: 0x9DF9,\n    0x9E73: 0x9E1B,\n    0x9E7C: 0x9E78,\n    0x9E7D: 0x5869,\n    0x9EA2: 0x9C1B,\n    0x9EA5: 0x9EA6,\n    0x9EA9: 0x9EB8,\n    0x9EB4: 0x9EB9,\n    0x9EB5: 0x9EBA,\n    0x9EBD: 0x6A0C,\n    0x9EC3: 0x9EC4,\n    0x9EC9: 0x9ECC,\n    0x9ED1: 0x9ED2,\n    0x9ED8: 0x9ED9,\n    0x9EDE: 0x70B9,\n    0x9EE9: 0x9EF7,\n    0x9EFE: 0x9EFD,\n    0x9F4A: 0x6589,\n    0x9F4B: 0x658E,\n    0x9F4F: 0x97F2,\n    0x9F50: 0x6589,\n    0x9F51: 0x9F4F,\n    0x9F52: 0x6B6F,\n    0x9F61: 0x9F62,\n    0x9F7F: 0x6B6F,\n    0x9F80: 0x9F54,\n    0x9F83: 0x9F5F,\n    0x9F84: 0x9F62,\n    0x9F86: 0x9F60,\n    0x9F88: 0x9F66,\n    0x9F89: 0x9F6C,\n    0x9F8A: 0x9F6A,\n    0x9F8B: 0x9F72,\n    0x9F8C: 0x9F77,\n    0x9F8D: 0x7ADC,\n    0x9F99: 0x7ADC,\n    0x9F9B: 0x9F95,\n    0x9F9C: 0x4E80,\n    0x9F9F: 0x4E80,\n}\n\n\ndef default_error_handler(char, e):\n    return char\n\n\ndef empty_error_handler(char, e):\n    return ''\n\n\ndef null_error_handler(char, e):\n    return char\n\n\ndef raise_error_handler(char, e):\n    raise e\n\n\ndef converter(text, table, errors=None):\n    if errors is None:\n        errors = default_error_handler\n    assert errors is None or callable(errors)\n    ret = [UEMPTY] * len(text)\n    for i, char in enumerate(text):\n        try:\n            ret[i] = chr(table[ord(char)])\n        except KeyError as e:\n            ret[i] = errors(char, e)\n    return UEMPTY.join(ret)\n\n\n# <FIXME> some characters are not in SHIFT_JIS\nfor k in (0x805B, 0x607A, 0x607D, 0x6080, 0x6374, 0x83B8, 0x83E4, 0x8416,\n        0x8421, 0x849E, 0x663A, 0x6670, 0x7118, 0x9BC7, 0x6725, 0x6862, 0x89E5,\n        0x8A1A, 0x8BB1, 0x8C0C, 0x8C6C, 0x6CFE, 0x8D95, 0x6DB1, 0x4E85, 0x6EE2,\n        0x9093, 0x70E8, 0x50E9, 0x51DE, 0x72B7, 0x52F2, 0x52FB, 0x5389, 0x740F,\n        0x948A, 0x9490, 0x94A4, 0x94B0, 0x94BE, 0x94C2, 0x94F0, 0x94FB, 0x951C,\n        0x9533, 0x953E, 0x955B, 0x7856, 0x98A2, 0x7936, 0x9A26, 0x5CAD, 0x7CB8,\n        0x94CD, 0x7CED, 0x5D58, 0x5DE0, 0x7DFE, 0x5E15, 0x7F2F):\n    del Chinese2Kanji_Table[k]\n\n\nif '__main__' == __name__:\n    import unittest\n\n    class ConverterTest(unittest.TestCase):\n        def toU(self, s):\n            return s.decode('utf8') if py2 else s\n\n        def testSimpTrad(self):\n            s1 = self.toU('优酷视频下载的Python')\n            s2 = self.toU('優酷視頻下載的Python')\n            self.assertEqual(\n                    converter(s1, Simp2Trad_Table, null_error_handler),\n                    s2)\n            self.assertEqual(\n                    converter(s2, Trad2Simp_Table, null_error_handler),\n                    s1)\n\n        def testSimpKanji(self):\n            s1 = self.toU('从优酷网站上下载flv或mp4格式的视频文件')\n            s2 = self.toU('从優酷网站上下載flv或mp4格式的視頻文件')\n            self.assertEqual(converter(s1, Chinese2Kanji_Table), s2)\n            self.assertEqual(converter(s2, Kanji2Simp_Table), s1)\n\n        def testTradKanji(self):\n            s1 = self.toU('mp4格式的視頻文件（包括分段視頻的拼接）')\n            self.assertEqual(\n                    converter(s1, Chinese2Kanji_Table, empty_error_handler),\n                    self.toU(''))\n            self.assertEqual(converter(s1, Chinese2Kanji_Table), s1)\n            self.assertEqual(converter(s1, Kanji2Trad_Table), s1)\n\n    # out = []\n    # for k, v in Chinese2Kanji_Table.items():\n    #     try:\n    #         bytes(chr(v), 'SHIFT-JIS')\n    #     except:\n    #         out.append('0x%X' % k)\n    # print(', '.join(out))\n\n    unittest.main()\n"
  },
  {
    "path": "utils/gezi/zhtools/langconv.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nimport six \nif six.PY2:\n  import sys \n  reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法，我们需要重新载入 \n  sys.setdefaultencoding('utf-8')\n\nfrom copy import deepcopy\nimport re\n\n\ntry:\n    import psyco\n    psyco.full()\nexcept:\n    pass\n\ntry:\n    from zh_wiki import zh2Hant, zh2Hans\nexcept ImportError:\n    from gezi.zhtools.zh_wiki import zh2Hant, zh2Hans\n\nimport sys\npy3k = sys.version_info >= (3, 0, 0)\n\nif py3k:\n    UEMPTY = ''\nelse:\n    _zh2Hant, _zh2Hans = {}, {}\n    for old, new in ((zh2Hant, _zh2Hant), (zh2Hans, _zh2Hans)):\n        for k, v in old.items():\n            new[k.decode('utf8')] = v.decode('utf8')\n    zh2Hant = _zh2Hant\n    zh2Hans = _zh2Hans\n    UEMPTY = ''.decode('utf8')\n\n# states\n(START, END, FAIL, WAIT_TAIL) = list(range(4))\n# conditions\n(TAIL, ERROR, MATCHED_SWITCH, UNMATCHED_SWITCH, CONNECTOR) = list(range(5))\n\nMAPS = {}\n\nclass Node(object):\n    def __init__(self, from_word, to_word=None, is_tail=True,\n            have_child=False):\n        self.from_word = from_word\n        if to_word is None:\n            self.to_word = from_word\n            self.data = (is_tail, have_child, from_word)\n            self.is_original = True\n        else:\n            self.to_word = to_word or from_word\n            self.data = (is_tail, have_child, to_word)\n            self.is_original = False\n        self.is_tail = is_tail\n        self.have_child = have_child\n\n    def is_original_long_word(self):\n        return self.is_original and len(self.from_word)>1\n\n    def is_follow(self, chars):\n        return chars != self.from_word[:-1]\n\n    def __str__(self):\n        return '<Node, %s, %s, %s, %s>' % (repr(self.from_word),\n                repr(self.to_word), self.is_tail, self.have_child)\n\n    __repr__ = __str__\n\nclass ConvertMap(object):\n    def __init__(self, name, mapping=None):\n        self.name = name\n        self._map = {}\n        if mapping:\n            self.set_convert_map(mapping)\n\n    def set_convert_map(self, mapping):\n        convert_map = {}\n        have_child = {}\n        max_key_length = 0\n        for key in sorted(mapping.keys()):\n            if len(key)>1:\n                for i in range(1, len(key)):\n                    parent_key = key[:i]\n                    have_child[parent_key] = True\n            have_child[key] = False\n            max_key_length = max(max_key_length, len(key))\n        for key in sorted(have_child.keys()):\n            convert_map[key] = (key in mapping, have_child[key],\n                    mapping.get(key, UEMPTY))\n        self._map = convert_map\n        self.max_key_length = max_key_length\n\n    def __getitem__(self, k):\n        try:\n            is_tail, have_child, to_word  = self._map[k]\n            return Node(k, to_word, is_tail, have_child)\n        except:\n            return Node(k)\n\n    def __contains__(self, k):\n        return k in self._map\n\n    def __len__(self):\n        return len(self._map)\n\nclass StatesMachineException(Exception): pass\n\nclass StatesMachine(object):\n    def __init__(self):\n        self.state = START\n        self.final = UEMPTY\n        self.len = 0\n        self.pool = UEMPTY\n\n    def clone(self, pool):\n        new = deepcopy(self)\n        new.state = WAIT_TAIL\n        new.pool = pool\n        return new\n\n    def feed(self, char, map):\n        node = map[self.pool+char] \n\n        if node.have_child:\n            if node.is_tail:\n                if node.is_original:\n                    cond = UNMATCHED_SWITCH\n                else:\n                    cond = MATCHED_SWITCH\n            else:\n                cond = CONNECTOR\n        else:\n            if node.is_tail:\n                cond = TAIL\n            else:\n                cond = ERROR\n\n        new = None\n        if cond == ERROR:\n            self.state = FAIL\n        elif cond == TAIL:\n            if self.state == WAIT_TAIL and node.is_original_long_word():\n                self.state = FAIL\n            else:\n                self.final += node.to_word\n                self.len += 1\n                self.pool = UEMPTY\n                self.state = END\n        elif self.state == START or self.state == WAIT_TAIL:\n            if cond == MATCHED_SWITCH:\n                new = self.clone(node.from_word)\n                self.final += node.to_word\n                self.len += 1\n                self.state = END\n                self.pool = UEMPTY\n            elif cond == UNMATCHED_SWITCH or cond == CONNECTOR:\n                if self.state == START:\n                    new = self.clone(node.from_word)\n                    self.final += node.to_word\n                    self.len += 1\n                    self.state = END\n                else:\n                    if node.is_follow(self.pool):\n                        self.state = FAIL\n                    else:\n                        self.pool = node.from_word\n        elif self.state == END:\n            # END is a new START\n            self.state = START\n            new = self.feed(char, map)\n        elif self.state == FAIL:\n            raise StatesMachineException('Translate States Machine '\n                    'have error with input data %s' % node)\n        return new\n\n    def __len__(self):\n        return self.len + 1\n\n    def __str__(self):\n        return '<StatesMachine %s, pool: \"%s\", state: %s, final: %s>' % (\n                id(self), self.pool, self.state, self.final)\n    __repr__ = __str__\n\nclass Converter(object):\n    def __init__(self, to_encoding):\n        self.to_encoding = to_encoding\n        self.map = MAPS[to_encoding]\n        self.start()\n\n    def feed(self, char):\n        branches = []\n        for fsm in self.machines:\n            new = fsm.feed(char, self.map)\n            if new:\n                branches.append(new)\n        if branches:\n            self.machines.extend(branches)\n        self.machines = [fsm for fsm in self.machines if fsm.state != FAIL]\n        all_ok = True\n        for fsm in self.machines:\n            if fsm.state != END:\n                all_ok = False\n        if all_ok:\n            self._clean()\n        return self.get_result()\n\n    def _clean(self):\n        if len(self.machines):\n            self.machines.sort(key=lambda x: len(x))\n            # self.machines.sort(cmp=lambda x,y: cmp(len(x), len(y)))\n            self.final += self.machines[0].final\n        self.machines = [StatesMachine()]\n\n    def start(self):\n        self.machines = [StatesMachine()]\n        self.final = UEMPTY\n\n    def end(self):\n        self.machines = [fsm for fsm in self.machines\n                if fsm.state == FAIL or fsm.state == END]\n        self._clean()\n\n    def convert(self, string):\n        self.start()\n        for char in string:\n            self.feed(char)\n        self.end()\n        return self.get_result()\n\n    def get_result(self):\n        return self.final\n\n\ndef registery(name, mapping):\n    global MAPS\n    MAPS[name] = ConvertMap(name, mapping)\n\nregistery('zh-hant', zh2Hant)\nregistery('zh-hans', zh2Hans)\ndel zh2Hant, zh2Hans\n\n\ndef run():\n    import sys\n    from optparse import OptionParser\n    parser = OptionParser()\n    parser.add_option('-e', type='string', dest='encoding',\n            help='encoding')\n    parser.add_option('-f', type='string', dest='file_in',\n            help='input file (- for stdin)')\n    parser.add_option('-t', type='string', dest='file_out',\n            help='output file')\n    (options, args) = parser.parse_args()\n    if not options.encoding:\n        parser.error('encoding must be set')\n    if options.file_in:\n        if options.file_in == '-':\n            file_in = sys.stdin\n        else:\n            file_in = open(options.file_in)\n    else:\n        file_in = sys.stdin\n    if options.file_out:\n        if options.file_out == '-':\n            file_out = sys.stdout\n        else:\n            file_out = open(options.file_out, 'wb')\n    else:\n        file_out = sys.stdout\n\n    c = Converter(options.encoding)\n    for line in file_in:\n        # print >> file_out, c.convert(line.rstrip('\\n').decode(\n        file_out.write(c.convert(line.rstrip('\\n').decode(\n            'utf8')).encode('utf8'))\n\n\nif __name__ == '__main__':\n    run()\n\n"
  },
  {
    "path": "utils/gezi/zhtools/test_langconv.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nfrom unittest import TestCase\n\nfrom langconv import *\n\nclass ConvertMapTest(TestCase):\n    def test_map(self):\n        mapping = {'a': 'b', 'b': 'a', 'abc': 'cba', 'cb': 'bb'}\n        cm = ConvertMap('test', mapping)\n        self.assertEqual(len(cm), 6) # with switch node: 'ab' and 'c'\n        self.failUnless('a' in cm)\n        self.failUnless('c' in cm)\n        self.failIf('bc' in cm)\n        self.assertEqual(cm['a'].data, (True, True, 'b'))\n        self.assertEqual(cm['b'].data, (True, False, 'a'))\n        self.assertEqual(cm['c'].data, (False, True, ''))\n        self.assertEqual(cm['ab'].data, (False, True, ''))\n        self.assertEqual(cm['abc'].data, (True, False, 'cba'))\n        self.assertEqual(cm['cb'].data, (True, False, 'bb'))\n\nclass ConverterModelTest(TestCase):\n    def test_1(self):\n        registery('rev', {'a': 'c', 'c': 'a'})\n        c = Converter('rev')\n        c.feed('a')\n        self.assertEqual(c.get_result(), 'c')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'cb')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'cba')\n\n    def test_2(self):\n        registery('2', {'b': 'a', 'ab': 'ab'})\n        c = Converter('2')\n        c.feed('a')\n        self.assertEqual(c.get_result(), '')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'ab')\n\n    def test_3(self):\n        registery('3', {'a': 'b', 'ab': 'ba'})\n        c = Converter('3')\n        c.feed('a')\n        self.assertEqual(c.get_result(), '')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'ba')\n        c.feed('a')\n        self.assertEqual(c.get_result(), 'ba')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'babc')\n\n    def test_4(self):\n        registery('4', {'ab': 'ba'})\n        c = Converter('4')\n        c.feed('a')\n        self.assertEqual(c.get_result(), '')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'ba')\n        c.feed('a')\n        self.assertEqual(c.get_result(), 'ba')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'baac')\n\n    def test_5(self):\n        registery('5', {'ab': 'ba'})\n        c = Converter('5')\n        c.feed('a')\n        self.assertEqual(c.get_result(), '')\n        c.feed('a')\n        self.assertEqual(c.get_result(), '')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'aba')\n\n    def test_6(self):\n        registery('6', {'abc': 'cba'})\n        c = Converter('6')\n        c.feed('a')\n        c.feed('b')\n        self.assertEqual(c.get_result(), '')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('a')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'cbaabb')\n\n    def test_7(self):\n        registery('7', {'abc': 'cba', 'bc': 'cb'})\n        c = Converter('7')\n        c.feed('a')\n        c.feed('b')\n        self.assertEqual(c.get_result(), '')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('a')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('')\n        self.assertEqual(c.get_result(), 'cbaa')\n\n    def test_8(self):\n        registery('8', {'abc': 'cba', 'ab': 'ba'})\n        c = Converter('8')\n        c.feed('a')\n        c.feed('b')\n        self.assertEqual(c.get_result(), '')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('a')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'cba')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'cbabab')\n\n    def test_9(self):\n        registery('9', {'bx': 'dx', 'c': 'e', 'cy': 'cy'})\n        c = Converter('9')\n        c.feed('a')\n        self.assertEqual(c.get_result(), 'a')\n        c.feed('b')\n        self.assertEqual(c.get_result(), 'a')\n        c.feed('c')\n        self.assertEqual(c.get_result(), 'a')\n        c.end()\n        self.assertEqual(c.get_result(), 'abe')\n\n    def test_10(self):\n        registery('10', {'a': 'd', 'b': 'e', 'ab': 'cd', 'by': 'yy'})\n        c = Converter('10')\n        c.feed('a')\n        self.assertEqual(c.get_result(), '')\n        c.feed('b')\n        self.assertEqual(c.get_result(), '')\n        c.feed('c')\n        c.end()\n        self.assertEqual(c.get_result(), 'cdc')\n\nclass ConverterTest(TestCase):\n    def assertConvert(self, name, string, converted):\n        c = Converter(name)\n        new = c.convert(string)\n        assert new == converted, (\n                \"convert(%s, '%s') should return '%s' but '%s'\" % (\n                    repr(name), string, converted, new)).encode('utf8')\n\n    def assertST(self, trad, simp):\n        if not py3k:\n            trad = trad.decode('utf-8')\n            simp = simp.decode('utf-8')\n        self.assertConvert('zh-hans', trad, simp)\n        self.assertConvert('zh-hant', simp, trad)\n\n    def test_zh1(self):\n        self.assertST('乾燥', '干燥')\n        self.assertST('乾坤', '乾坤')\n        self.assertST('乾隆', '乾隆')\n        self.assertST('幹事', '干事')\n        self.assertST('牛肉乾', '牛肉干')\n        self.assertST('相干', '相干')\n\n    def test_zh2(self):\n        self.assertST('印表機', '打印机')\n        self.assertST('說明檔案', '帮助文件')\n\n    def test_zh3(self):\n        self.assertST('頭髮', '头发')\n        self.assertST('頭髮和', '头发和')\n        self.assertST('發生', '发生')\n        self.assertST('頭髮和發生', '头发和发生')\n\n    def test_zh4(self):\n        self.assertST('著名', '著名')\n        self.assertST('覆蓋', '覆盖')\n        self.assertST('翻來覆去', '翻来覆去')\n        self.assertST('獃獃', '呆呆')\n        self.assertST('獃住', '呆住')\n        self.assertST('壁畫', '壁画')\n        self.assertST('畫面', '画面')\n        self.assertST('顯著', '显著')\n        self.assertST('土著人', '土著人')\n        self.assertST('長春鹼', '长春碱')\n        self.assertST('嘌呤鹼', '嘌呤碱')\n        self.assertST('嘧啶鹼', '嘧啶碱')\n\nif '__main__' == __name__:\n    import unittest\n    unittest.main()\n\n"
  },
  {
    "path": "utils/gezi/zhtools/xpinyin.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n\"\"\"Translate chinese hanzi to pinyin by python\nCreated by Eric Lo on 2010-05-20.\nCopyright (c) 2010 __lxneng@gmail.com__. http://lxneng.com All rights reserved.\n\"\"\"\n\n\"\"\"\nForked by skydarkchen <skydark2 at gmail>\n\"\"\"\n\nimport os.path\n\ntry:\n    chr = unichr\nexcept NameError:\n    pass\n\nVERSION = '0.3a'\n\n\nclass Pinyin(object):\n    \"\"\"translate chinese hanzi to pinyin by python, inspired by flyerhzm’s\n    `chinese\\_pinyin`_ gem\n    .. _chinese\\_pinyin: https://github.com/flyerhzm/chinese_pinyin\n\n    usage(python3)\n    -----\n    ::\n        >>> p = Pinyin()\n        >>> p.get_pinyin(\"上海\")\n        'shanghai'\n        >>> p.get_pinyin(\"上海\", tone=True)\n        'shang4hai3'\n        >>> p.get_initials(\"上\")\n        'S'\n        >>> print(''.join(p.py2hz('shang4')))\n        丄上姠尙尚蠰銄鑜\n        >>> print(''.join(p.py2hz('a')))\n        吖腌錒锕阿嗄阿阿啊阿\n    \"\"\"\n\n    data_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), \\\n            'Mandarin.dat')\n\n    def __init__(self):\n        self.dict = {}\n        self.revdict = {}\n        for line in open(self.data_path):\n            k, v = line.strip().split('\\t')\n            v = v.lower().split(' ')\n            hz = chr(int('0x%s' % k, 16))\n            self.dict[hz] = v\n            for vkey in v:\n                self.revdict.setdefault(vkey, [])\n                self.revdict[vkey].append(hz)\n\n    def py2hz(self, pinyin):\n        if pinyin == '':\n            return []\n        pinyin = pinyin.lower()\n        if pinyin[-1].isdigit():\n            return self.revdict.get(pinyin, [])\n        ret = []\n        for i in range(1, 6):\n            key = '%s%s' % (pinyin, i)\n            ret += self.revdict.get(key, [])\n        return ret\n\n    def get_pinyin(self, chars='', splitter='', tone=False):\n        result = []\n        for char in chars:\n            v = self.dict.get(char, None)\n            if v:\n                v = v[0]\n                if not tone and v[-1].isdigit():\n                    v = v[:-1]\n            else:\n                v = char\n            result.append(v)\n        return splitter.join(result)\n\n    def get_initials(self, char=''):\n        if char == '':\n            return ''\n        return self.dict.get(char, [char])[0][0].upper()\n\n\nif __name__ == '__main__':\n    import unittest\n\n    class PinyinTestCase(unittest.TestCase):\n        def setUp(self):\n            import sys\n            py = sys.version_info\n            self.py3k = py >= (3, 0, 0)\n\n            self.py = Pinyin()\n\n        def to_unicode(self, s):\n            if self.py3k:\n                return s\n            return s.decode('utf-8')\n\n        def test_get_pinyin(self):  ## test method names begin 'test*'\n            s = self.to_unicode('上A2#海')\n            a = self.to_unicode('shangA2#hai')\n            aa = self.to_unicode('shang4A2#hai3')\n            aaa = self.to_unicode('shang A 2 # hai')\n            self.assertEqual(self.py.get_pinyin(s), a)\n            self.assertEqual(self.py.get_pinyin(s, tone=True), aa)\n            self.assertEqual(self.py.get_pinyin(s, splitter=' '), aaa)\n\n        def test_get_initials(self):\n            s = self.to_unicode('上')\n            a = self.to_unicode('S')\n            self.assertEqual(self.py.get_initials(s), a)\n\n        def test_py2hz(self):\n            s1 = self.to_unicode('shang4')\n            s2 = self.to_unicode('a')\n            a1 = self.to_unicode('丄上姠尙尚蠰銄鑜')\n            a2 = self.to_unicode('吖腌錒锕阿嗄阿阿啊阿')\n            self.assertEqual(''.join(self.py.py2hz(s1)), a1)\n            self.assertEqual(''.join(self.py.py2hz(s2)), a2)\n\n    unittest.main()\n"
  },
  {
    "path": "utils/gezi/zhtools/zh_wiki.py",
    "content": "# -*- coding: utf-8 -*-\n# copy fom wikipedia\n\nzh2Hant = {\n'呆': '獃',\n\"打印机\": \"印表機\",\n'帮助文件': '說明檔案',\n\"画\": \"畫\",\n\"龙\": \"竜\",\n\"板\": \"板\",\n\"表\": \"表\",\n\"才\": \"才\",\n\"丑\": \"醜\",\n\"出\": \"出\",\n\"淀\": \"澱\",\n\"冬\": \"冬\",\n\"范\": \"範\",\n\"丰\": \"豐\",\n\"刮\": \"刮\",\n\"后\": \"後\",\n\"胡\": \"胡\",\n\"回\": \"回\",\n\"伙\": \"夥\",\n\"姜\": \"薑\",\n\"借\": \"借\",\n\"克\": \"克\",\n\"困\": \"困\",\n\"漓\": \"漓\",\n\"里\": \"里\",\n\"帘\": \"簾\",\n\"霉\": \"霉\",\n\"面\": \"面\",\n\"蔑\": \"蔑\",\n\"千\": \"千\",\n\"秋\": \"秋\",\n\"松\": \"松\",\n\"咸\": \"咸\",\n\"向\": \"向\",\n\"余\": \"餘\",\n\"郁\": \"鬱\",\n\"御\": \"御\",\n\"愿\": \"願\",\n\"云\": \"雲\",\n\"芸\": \"芸\",\n\"沄\": \"沄\",\n\"致\": \"致\",\n\"制\": \"制\",\n\"朱\": \"朱\",\n\"筑\": \"築\",\n\"准\": \"準\",\n\"厂\": \"廠\",\n\"广\": \"廣\",\n\"辟\": \"闢\",\n\"别\": \"別\",\n\"卜\": \"卜\",\n\"沈\": \"沈\",\n\"冲\": \"沖\",\n\"种\": \"種\",\n\"虫\": \"蟲\",\n\"担\": \"擔\",\n\"党\": \"黨\",\n\"斗\": \"鬥\",\n\"儿\": \"兒\",\n\"干\": \"乾\",\n\"谷\": \"谷\",\n\"柜\": \"櫃\",\n\"合\": \"合\",\n\"划\": \"劃\",\n\"坏\": \"壞\",\n\"几\": \"幾\",\n\"系\": \"系\",\n\"家\": \"家\",\n\"价\": \"價\",\n\"据\": \"據\",\n\"卷\": \"捲\",\n\"适\": \"適\",\n\"蜡\": \"蠟\",\n\"腊\": \"臘\",\n\"了\": \"了\",\n\"累\": \"累\",\n\"么\": \"麽\",\n\"蒙\": \"蒙\",\n\"万\": \"萬\",\n\"宁\": \"寧\",\n\"朴\": \"樸\",\n\"苹\": \"蘋\",\n\"仆\": \"僕\",\n\"曲\": \"曲\",\n\"确\": \"確\",\n\"舍\": \"舍\",\n\"胜\": \"勝\",\n\"术\": \"術\",\n\"台\": \"台\",\n\"体\": \"體\",\n\"涂\": \"塗\",\n\"叶\": \"葉\",\n\"吁\": \"吁\",\n\"旋\": \"旋\",\n\"佣\": \"傭\",\n\"与\": \"與\",\n\"折\": \"折\",\n\"征\": \"徵\",\n\"症\": \"症\",\n\"恶\": \"惡\",\n\"发\": \"發\",\n\"复\": \"復\",\n\"汇\": \"匯\",\n\"获\": \"獲\",\n\"饥\": \"飢\",\n\"尽\": \"盡\",\n\"历\": \"歷\",\n\"卤\": \"滷\",\n\"弥\": \"彌\",\n\"签\": \"簽\",\n\"纤\": \"纖\",\n\"苏\": \"蘇\",\n\"坛\": \"壇\",\n\"团\": \"團\",\n\"须\": \"須\",\n\"脏\": \"臟\",\n\"只\": \"只\",\n\"钟\": \"鐘\",\n\"药\": \"藥\",\n\"同\": \"同\",\n\"志\": \"志\",\n\"杯\": \"杯\",\n\"岳\": \"岳\",\n\"布\": \"布\",\n\"当\": \"當\",\n\"吊\": \"弔\",\n\"仇\": \"仇\",\n\"蕴\": \"蘊\",\n\"线\": \"線\",\n\"为\": \"為\",\n\"产\": \"產\",\n\"众\": \"眾\",\n\"伪\": \"偽\",\n\"凫\": \"鳧\",\n\"厕\": \"廁\",\n\"启\": \"啟\",\n\"墙\": \"牆\",\n\"壳\": \"殼\",\n\"奖\": \"獎\",\n\"妫\": \"媯\",\n\"并\": \"並\",\n\"录\": \"錄\",\n\"悫\": \"愨\",\n\"极\": \"極\",\n\"沩\": \"溈\",\n\"瘘\": \"瘺\",\n\"硷\": \"鹼\",\n\"竖\": \"豎\",\n\"绝\": \"絕\",\n\"绣\": \"繡\",\n\"绦\": \"絛\",\n\"绱\": \"緔\",\n\"绷\": \"綳\",\n\"绿\": \"綠\",\n\"缰\": \"韁\",\n\"苧\": \"苎\",\n\"莼\": \"蒓\",\n\"说\": \"說\",\n\"谣\": \"謠\",\n\"谫\": \"譾\",\n\"赃\": \"贓\",\n\"赍\": \"齎\",\n\"赝\": \"贗\",\n\"酝\": \"醞\",\n\"采\": \"採\",\n\"钩\": \"鉤\",\n\"钵\": \"缽\",\n\"锈\": \"銹\",\n\"锐\": \"銳\",\n\"锨\": \"杴\",\n\"镌\": \"鐫\",\n\"镢\": \"钁\",\n\"阅\": \"閱\",\n\"颓\": \"頹\",\n\"颜\": \"顏\",\n\"骂\": \"罵\",\n\"鲇\": \"鯰\",\n\"鲞\": \"鯗\",\n\"鳄\": \"鱷\",\n\"鸡\": \"雞\",\n\"鹚\": \"鶿\",\n\"荡\": \"盪\",\n\"锤\": \"錘\",\n\"㟆\": \"㠏\",\n\"㛟\": \"𡞵\",\n\"专\": \"專\",\n\"业\": \"業\",\n\"丛\": \"叢\",\n\"东\": \"東\",\n\"丝\": \"絲\",\n\"丢\": \"丟\",\n\"两\": \"兩\",\n\"严\": \"嚴\",\n\"丧\": \"喪\",\n\"个\": \"個\",\n\"临\": \"臨\",\n\"丽\": \"麗\",\n\"举\": \"舉\",\n\"义\": \"義\",\n\"乌\": \"烏\",\n\"乐\": \"樂\",\n\"乔\": \"喬\",\n\"习\": \"習\",\n\"乡\": \"鄉\",\n\"书\": \"書\",\n\"买\": \"買\",\n\"乱\": \"亂\",\n\"争\": \"爭\",\n\"于\": \"於\",\n\"亏\": \"虧\",\n\"亚\": \"亞\",\n\"亩\": \"畝\",\n\"亲\": \"親\",\n\"亵\": \"褻\",\n\"亸\": \"嚲\",\n\"亿\": \"億\",\n\"仅\": \"僅\",\n\"从\": \"從\",\n\"仑\": \"侖\",\n\"仓\": \"倉\",\n\"仪\": \"儀\",\n\"们\": \"們\",\n\"优\": \"優\",\n\"会\": \"會\",\n\"伛\": \"傴\",\n\"伞\": \"傘\",\n\"伟\": \"偉\",\n\"传\": \"傳\",\n\"伣\": \"俔\",\n\"伤\": \"傷\",\n\"伥\": \"倀\",\n\"伦\": \"倫\",\n\"伧\": \"傖\",\n\"伫\": \"佇\",\n\"佥\": \"僉\",\n\"侠\": \"俠\",\n\"侣\": \"侶\",\n\"侥\": \"僥\",\n\"侦\": \"偵\",\n\"侧\": \"側\",\n\"侨\": \"僑\",\n\"侩\": \"儈\",\n\"侪\": \"儕\",\n\"侬\": \"儂\",\n\"俣\": \"俁\",\n\"俦\": \"儔\",\n\"俨\": \"儼\",\n\"俩\": \"倆\",\n\"俪\": \"儷\",\n\"俫\": \"倈\",\n\"俭\": \"儉\",\n\"债\": \"債\",\n\"倾\": \"傾\",\n\"偬\": \"傯\",\n\"偻\": \"僂\",\n\"偾\": \"僨\",\n\"偿\": \"償\",\n\"傥\": \"儻\",\n\"傧\": \"儐\",\n\"储\": \"儲\",\n\"傩\": \"儺\",\n\"㑩\": \"儸\",\n\"兑\": \"兌\",\n\"兖\": \"兗\",\n\"兰\": \"蘭\",\n\"关\": \"關\",\n\"兴\": \"興\",\n\"兹\": \"茲\",\n\"养\": \"養\",\n\"兽\": \"獸\",\n\"冁\": \"囅\",\n\"内\": \"內\",\n\"冈\": \"岡\",\n\"册\": \"冊\",\n\"写\": \"寫\",\n\"军\": \"軍\",\n\"农\": \"農\",\n\"冯\": \"馮\",\n\"决\": \"決\",\n\"况\": \"況\",\n\"冻\": \"凍\",\n\"净\": \"凈\",\n\"凉\": \"涼\",\n\"减\": \"減\",\n\"凑\": \"湊\",\n\"凛\": \"凜\",\n\"凤\": \"鳳\",\n\"凭\": \"憑\",\n\"凯\": \"凱\",\n\"击\": \"擊\",\n\"凿\": \"鑿\",\n\"刍\": \"芻\",\n\"刘\": \"劉\",\n\"则\": \"則\",\n\"刚\": \"剛\",\n\"创\": \"創\",\n\"删\": \"刪\",\n\"刬\": \"剗\",\n\"刭\": \"剄\",\n\"刹\": \"剎\",\n\"刽\": \"劊\",\n\"刿\": \"劌\",\n\"剀\": \"剴\",\n\"剂\": \"劑\",\n\"剐\": \"剮\",\n\"剑\": \"劍\",\n\"剥\": \"剝\",\n\"剧\": \"劇\",\n\"㓥\": \"劏\",\n\"㔉\": \"劚\",\n\"劝\": \"勸\",\n\"办\": \"辦\",\n\"务\": \"務\",\n\"劢\": \"勱\",\n\"动\": \"動\",\n\"励\": \"勵\",\n\"劲\": \"勁\",\n\"劳\": \"勞\",\n\"势\": \"勢\",\n\"勋\": \"勛\",\n\"勚\": \"勩\",\n\"匀\": \"勻\",\n\"匦\": \"匭\",\n\"匮\": \"匱\",\n\"区\": \"區\",\n\"医\": \"醫\",\n\"华\": \"華\",\n\"协\": \"協\",\n\"单\": \"單\",\n\"卖\": \"賣\",\n\"卢\": \"盧\",\n\"卫\": \"衛\",\n\"却\": \"卻\",\n\"厅\": \"廳\",\n\"厉\": \"厲\",\n\"压\": \"壓\",\n\"厌\": \"厭\",\n\"厍\": \"厙\",\n\"厐\": \"龎\",\n\"厘\": \"釐\",\n\"厢\": \"廂\",\n\"厣\": \"厴\",\n\"厦\": \"廈\",\n\"厨\": \"廚\",\n\"厩\": \"廄\",\n\"厮\": \"廝\",\n\"县\": \"縣\",\n\"叁\": \"叄\",\n\"参\": \"參\",\n\"双\": \"雙\",\n\"变\": \"變\",\n\"叙\": \"敘\",\n\"叠\": \"疊\",\n\"号\": \"號\",\n\"叹\": \"嘆\",\n\"叽\": \"嘰\",\n\"吓\": \"嚇\",\n\"吕\": \"呂\",\n\"吗\": \"嗎\",\n\"吣\": \"唚\",\n\"吨\": \"噸\",\n\"听\": \"聽\",\n\"吴\": \"吳\",\n\"呐\": \"吶\",\n\"呒\": \"嘸\",\n\"呓\": \"囈\",\n\"呕\": \"嘔\",\n\"呖\": \"嚦\",\n\"呗\": \"唄\",\n\"员\": \"員\",\n\"呙\": \"咼\",\n\"呛\": \"嗆\",\n\"呜\": \"嗚\",\n\"咏\": \"詠\",\n\"咙\": \"嚨\",\n\"咛\": \"嚀\",\n\"咝\": \"噝\",\n\"咤\": \"吒\",\n\"响\": \"響\",\n\"哑\": \"啞\",\n\"哒\": \"噠\",\n\"哓\": \"嘵\",\n\"哔\": \"嗶\",\n\"哕\": \"噦\",\n\"哗\": \"嘩\",\n\"哙\": \"噲\",\n\"哜\": \"嚌\",\n\"哝\": \"噥\",\n\"哟\": \"喲\",\n\"唛\": \"嘜\",\n\"唝\": \"嗊\",\n\"唠\": \"嘮\",\n\"唡\": \"啢\",\n\"唢\": \"嗩\",\n\"唤\": \"喚\",\n\"啧\": \"嘖\",\n\"啬\": \"嗇\",\n\"啭\": \"囀\",\n\"啮\": \"嚙\",\n\"啴\": \"嘽\",\n\"啸\": \"嘯\",\n\"㖞\": \"喎\",\n\"喷\": \"噴\",\n\"喽\": \"嘍\",\n\"喾\": \"嚳\",\n\"嗫\": \"囁\",\n\"嗳\": \"噯\",\n\"嘘\": \"噓\",\n\"嘤\": \"嚶\",\n\"嘱\": \"囑\",\n\"㖊\": \"噚\",\n\"噜\": \"嚕\",\n\"嚣\": \"囂\",\n\"园\": \"園\",\n\"囱\": \"囪\",\n\"围\": \"圍\",\n\"囵\": \"圇\",\n\"国\": \"國\",\n\"图\": \"圖\",\n\"圆\": \"圓\",\n\"圣\": \"聖\",\n\"圹\": \"壙\",\n\"场\": \"場\",\n\"坂\": \"阪\",\n\"块\": \"塊\",\n\"坚\": \"堅\",\n\"坜\": \"壢\",\n\"坝\": \"壩\",\n\"坞\": \"塢\",\n\"坟\": \"墳\",\n\"坠\": \"墜\",\n\"垄\": \"壟\",\n\"垅\": \"壠\",\n\"垆\": \"壚\",\n\"垒\": \"壘\",\n\"垦\": \"墾\",\n\"垩\": \"堊\",\n\"垫\": \"墊\",\n\"垭\": \"埡\",\n\"垱\": \"壋\",\n\"垲\": \"塏\",\n\"垴\": \"堖\",\n\"埘\": \"塒\",\n\"埙\": \"塤\",\n\"埚\": \"堝\",\n\"埯\": \"垵\",\n\"堑\": \"塹\",\n\"堕\": \"墮\",\n\"𡒄\": \"壈\",\n\"壮\": \"壯\",\n\"声\": \"聲\",\n\"壶\": \"壺\",\n\"壸\": \"壼\",\n\"处\": \"處\",\n\"备\": \"備\",\n\"够\": \"夠\",\n\"头\": \"頭\",\n\"夸\": \"誇\",\n\"夹\": \"夾\",\n\"夺\": \"奪\",\n\"奁\": \"奩\",\n\"奂\": \"奐\",\n\"奋\": \"奮\",\n\"奥\": \"奧\",\n\"奸\": \"姦\",\n\"妆\": \"妝\",\n\"妇\": \"婦\",\n\"妈\": \"媽\",\n\"妩\": \"嫵\",\n\"妪\": \"嫗\",\n\"姗\": \"姍\",\n\"姹\": \"奼\",\n\"娄\": \"婁\",\n\"娅\": \"婭\",\n\"娆\": \"嬈\",\n\"娇\": \"嬌\",\n\"娈\": \"孌\",\n\"娱\": \"娛\",\n\"娲\": \"媧\",\n\"娴\": \"嫻\",\n\"婳\": \"嫿\",\n\"婴\": \"嬰\",\n\"婵\": \"嬋\",\n\"婶\": \"嬸\",\n\"媪\": \"媼\",\n\"嫒\": \"嬡\",\n\"嫔\": \"嬪\",\n\"嫱\": \"嬙\",\n\"嬷\": \"嬤\",\n\"孙\": \"孫\",\n\"学\": \"學\",\n\"孪\": \"孿\",\n\"宝\": \"寶\",\n\"实\": \"實\",\n\"宠\": \"寵\",\n\"审\": \"審\",\n\"宪\": \"憲\",\n\"宫\": \"宮\",\n\"宽\": \"寬\",\n\"宾\": \"賓\",\n\"寝\": \"寢\",\n\"对\": \"對\",\n\"寻\": \"尋\",\n\"导\": \"導\",\n\"寿\": \"壽\",\n\"将\": \"將\",\n\"尔\": \"爾\",\n\"尘\": \"塵\",\n\"尝\": \"嘗\",\n\"尧\": \"堯\",\n\"尴\": \"尷\",\n\"尸\": \"屍\",\n\"层\": \"層\",\n\"屃\": \"屓\",\n\"屉\": \"屜\",\n\"届\": \"屆\",\n\"属\": \"屬\",\n\"屡\": \"屢\",\n\"屦\": \"屨\",\n\"屿\": \"嶼\",\n\"岁\": \"歲\",\n\"岂\": \"豈\",\n\"岖\": \"嶇\",\n\"岗\": \"崗\",\n\"岘\": \"峴\",\n\"岙\": \"嶴\",\n\"岚\": \"嵐\",\n\"岛\": \"島\",\n\"岭\": \"嶺\",\n\"岽\": \"崬\",\n\"岿\": \"巋\",\n\"峄\": \"嶧\",\n\"峡\": \"峽\",\n\"峣\": \"嶢\",\n\"峤\": \"嶠\",\n\"峥\": \"崢\",\n\"峦\": \"巒\",\n\"崂\": \"嶗\",\n\"崃\": \"崍\",\n\"崄\": \"嶮\",\n\"崭\": \"嶄\",\n\"嵘\": \"嶸\",\n\"嵚\": \"嶔\",\n\"嵝\": \"嶁\",\n\"巅\": \"巔\",\n\"巩\": \"鞏\",\n\"巯\": \"巰\",\n\"币\": \"幣\",\n\"帅\": \"帥\",\n\"师\": \"師\",\n\"帏\": \"幃\",\n\"帐\": \"帳\",\n\"帜\": \"幟\",\n\"带\": \"帶\",\n\"帧\": \"幀\",\n\"帮\": \"幫\",\n\"帱\": \"幬\",\n\"帻\": \"幘\",\n\"帼\": \"幗\",\n\"幂\": \"冪\",\n\"庄\": \"莊\",\n\"庆\": \"慶\",\n\"庐\": \"廬\",\n\"庑\": \"廡\",\n\"库\": \"庫\",\n\"应\": \"應\",\n\"庙\": \"廟\",\n\"庞\": \"龐\",\n\"废\": \"廢\",\n\"廪\": \"廩\",\n\"开\": \"開\",\n\"异\": \"異\",\n\"弃\": \"棄\",\n\"弑\": \"弒\",\n\"张\": \"張\",\n\"弪\": \"弳\",\n\"弯\": \"彎\",\n\"弹\": \"彈\",\n\"强\": \"強\",\n\"归\": \"歸\",\n\"彝\": \"彞\",\n\"彦\": \"彥\",\n\"彻\": \"徹\",\n\"径\": \"徑\",\n\"徕\": \"徠\",\n\"忆\": \"憶\",\n\"忏\": \"懺\",\n\"忧\": \"憂\",\n\"忾\": \"愾\",\n\"怀\": \"懷\",\n\"态\": \"態\",\n\"怂\": \"慫\",\n\"怃\": \"憮\",\n\"怄\": \"慪\",\n\"怅\": \"悵\",\n\"怆\": \"愴\",\n\"怜\": \"憐\",\n\"总\": \"總\",\n\"怼\": \"懟\",\n\"怿\": \"懌\",\n\"恋\": \"戀\",\n\"恒\": \"恆\",\n\"恳\": \"懇\",\n\"恸\": \"慟\",\n\"恹\": \"懨\",\n\"恺\": \"愷\",\n\"恻\": \"惻\",\n\"恼\": \"惱\",\n\"恽\": \"惲\",\n\"悦\": \"悅\",\n\"悬\": \"懸\",\n\"悭\": \"慳\",\n\"悮\": \"悞\",\n\"悯\": \"憫\",\n\"惊\": \"驚\",\n\"惧\": \"懼\",\n\"惨\": \"慘\",\n\"惩\": \"懲\",\n\"惫\": \"憊\",\n\"惬\": \"愜\",\n\"惭\": \"慚\",\n\"惮\": \"憚\",\n\"惯\": \"慣\",\n\"愠\": \"慍\",\n\"愤\": \"憤\",\n\"愦\": \"憒\",\n\"慑\": \"懾\",\n\"懑\": \"懣\",\n\"懒\": \"懶\",\n\"懔\": \"懍\",\n\"戆\": \"戇\",\n\"戋\": \"戔\",\n\"戏\": \"戲\",\n\"戗\": \"戧\",\n\"战\": \"戰\",\n\"戬\": \"戩\",\n\"戯\": \"戱\",\n\"户\": \"戶\",\n\"扑\": \"撲\",\n\"执\": \"執\",\n\"扩\": \"擴\",\n\"扪\": \"捫\",\n\"扫\": \"掃\",\n\"扬\": \"揚\",\n\"扰\": \"擾\",\n\"抚\": \"撫\",\n\"抛\": \"拋\",\n\"抟\": \"摶\",\n\"抠\": \"摳\",\n\"抡\": \"掄\",\n\"抢\": \"搶\",\n\"护\": \"護\",\n\"报\": \"報\",\n\"拟\": \"擬\",\n\"拢\": \"攏\",\n\"拣\": \"揀\",\n\"拥\": \"擁\",\n\"拦\": \"攔\",\n\"拧\": \"擰\",\n\"拨\": \"撥\",\n\"择\": \"擇\",\n\"挂\": \"掛\",\n\"挚\": \"摯\",\n\"挛\": \"攣\",\n\"挜\": \"掗\",\n\"挝\": \"撾\",\n\"挞\": \"撻\",\n\"挟\": \"挾\",\n\"挠\": \"撓\",\n\"挡\": \"擋\",\n\"挢\": \"撟\",\n\"挣\": \"掙\",\n\"挤\": \"擠\",\n\"挥\": \"揮\",\n\"挦\": \"撏\",\n\"挽\": \"輓\",\n\"捝\": \"挩\",\n\"捞\": \"撈\",\n\"损\": \"損\",\n\"捡\": \"撿\",\n\"换\": \"換\",\n\"捣\": \"搗\",\n\"掳\": \"擄\",\n\"掴\": \"摑\",\n\"掷\": \"擲\",\n\"掸\": \"撣\",\n\"掺\": \"摻\",\n\"掼\": \"摜\",\n\"揽\": \"攬\",\n\"揾\": \"搵\",\n\"揿\": \"撳\",\n\"搀\": \"攙\",\n\"搁\": \"擱\",\n\"搂\": \"摟\",\n\"搅\": \"攪\",\n\"携\": \"攜\",\n\"摄\": \"攝\",\n\"摅\": \"攄\",\n\"摆\": \"擺\",\n\"摇\": \"搖\",\n\"摈\": \"擯\",\n\"摊\": \"攤\",\n\"撄\": \"攖\",\n\"撑\": \"撐\",\n\"㧑\": \"撝\",\n\"撵\": \"攆\",\n\"撷\": \"擷\",\n\"撸\": \"擼\",\n\"撺\": \"攛\",\n\"㧟\": \"擓\",\n\"擞\": \"擻\",\n\"攒\": \"攢\",\n\"敌\": \"敵\",\n\"敛\": \"斂\",\n\"数\": \"數\",\n\"斋\": \"齋\",\n\"斓\": \"斕\",\n\"斩\": \"斬\",\n\"断\": \"斷\",\n\"无\": \"無\",\n\"旧\": \"舊\",\n\"时\": \"時\",\n\"旷\": \"曠\",\n\"旸\": \"暘\",\n\"昙\": \"曇\",\n\"昼\": \"晝\",\n\"昽\": \"曨\",\n\"显\": \"顯\",\n\"晋\": \"晉\",\n\"晒\": \"曬\",\n\"晓\": \"曉\",\n\"晔\": \"曄\",\n\"晕\": \"暈\",\n\"晖\": \"暉\",\n\"暂\": \"暫\",\n\"暧\": \"曖\",\n\"机\": \"機\",\n\"杀\": \"殺\",\n\"杂\": \"雜\",\n\"权\": \"權\",\n\"杆\": \"桿\",\n\"条\": \"條\",\n\"来\": \"來\",\n\"杨\": \"楊\",\n\"杩\": \"榪\",\n\"杰\": \"傑\",\n\"构\": \"構\",\n\"枞\": \"樅\",\n\"枢\": \"樞\",\n\"枣\": \"棗\",\n\"枥\": \"櫪\",\n\"枧\": \"梘\",\n\"枨\": \"棖\",\n\"枪\": \"槍\",\n\"枫\": \"楓\",\n\"枭\": \"梟\",\n\"柠\": \"檸\",\n\"柽\": \"檉\",\n\"栀\": \"梔\",\n\"栅\": \"柵\",\n\"标\": \"標\",\n\"栈\": \"棧\",\n\"栉\": \"櫛\",\n\"栊\": \"櫳\",\n\"栋\": \"棟\",\n\"栌\": \"櫨\",\n\"栎\": \"櫟\",\n\"栏\": \"欄\",\n\"树\": \"樹\",\n\"栖\": \"棲\",\n\"栗\": \"慄\",\n\"样\": \"樣\",\n\"栾\": \"欒\",\n\"桠\": \"椏\",\n\"桡\": \"橈\",\n\"桢\": \"楨\",\n\"档\": \"檔\",\n\"桤\": \"榿\",\n\"桥\": \"橋\",\n\"桦\": \"樺\",\n\"桧\": \"檜\",\n\"桨\": \"槳\",\n\"桩\": \"樁\",\n\"梦\": \"夢\",\n\"梼\": \"檮\",\n\"梾\": \"棶\",\n\"梿\": \"槤\",\n\"检\": \"檢\",\n\"棁\": \"梲\",\n\"棂\": \"欞\",\n\"椁\": \"槨\",\n\"椟\": \"櫝\",\n\"椠\": \"槧\",\n\"椤\": \"欏\",\n\"椭\": \"橢\",\n\"楼\": \"樓\",\n\"榄\": \"欖\",\n\"榅\": \"榲\",\n\"榇\": \"櫬\",\n\"榈\": \"櫚\",\n\"榉\": \"櫸\",\n\"槚\": \"檟\",\n\"槛\": \"檻\",\n\"槟\": \"檳\",\n\"槠\": \"櫧\",\n\"横\": \"橫\",\n\"樯\": \"檣\",\n\"樱\": \"櫻\",\n\"橥\": \"櫫\",\n\"橱\": \"櫥\",\n\"橹\": \"櫓\",\n\"橼\": \"櫞\",\n\"檩\": \"檁\",\n\"欢\": \"歡\",\n\"欤\": \"歟\",\n\"欧\": \"歐\",\n\"歼\": \"殲\",\n\"殁\": \"歿\",\n\"殇\": \"殤\",\n\"残\": \"殘\",\n\"殒\": \"殞\",\n\"殓\": \"殮\",\n\"殚\": \"殫\",\n\"殡\": \"殯\",\n\"㱮\": \"殨\",\n\"㱩\": \"殰\",\n\"殴\": \"毆\",\n\"毁\": \"毀\",\n\"毂\": \"轂\",\n\"毕\": \"畢\",\n\"毙\": \"斃\",\n\"毡\": \"氈\",\n\"毵\": \"毿\",\n\"氇\": \"氌\",\n\"气\": \"氣\",\n\"氢\": \"氫\",\n\"氩\": \"氬\",\n\"氲\": \"氳\",\n\"汉\": \"漢\",\n\"汤\": \"湯\",\n\"汹\": \"洶\",\n\"沟\": \"溝\",\n\"没\": \"沒\",\n\"沣\": \"灃\",\n\"沤\": \"漚\",\n\"沥\": \"瀝\",\n\"沦\": \"淪\",\n\"沧\": \"滄\",\n\"沪\": \"滬\",\n\"泞\": \"濘\",\n\"注\": \"註\",\n\"泪\": \"淚\",\n\"泶\": \"澩\",\n\"泷\": \"瀧\",\n\"泸\": \"瀘\",\n\"泺\": \"濼\",\n\"泻\": \"瀉\",\n\"泼\": \"潑\",\n\"泽\": \"澤\",\n\"泾\": \"涇\",\n\"洁\": \"潔\",\n\"洒\": \"灑\",\n\"洼\": \"窪\",\n\"浃\": \"浹\",\n\"浅\": \"淺\",\n\"浆\": \"漿\",\n\"浇\": \"澆\",\n\"浈\": \"湞\",\n\"浊\": \"濁\",\n\"测\": \"測\",\n\"浍\": \"澮\",\n\"济\": \"濟\",\n\"浏\": \"瀏\",\n\"浐\": \"滻\",\n\"浑\": \"渾\",\n\"浒\": \"滸\",\n\"浓\": \"濃\",\n\"浔\": \"潯\",\n\"涛\": \"濤\",\n\"涝\": \"澇\",\n\"涞\": \"淶\",\n\"涟\": \"漣\",\n\"涠\": \"潿\",\n\"涡\": \"渦\",\n\"涣\": \"渙\",\n\"涤\": \"滌\",\n\"润\": \"潤\",\n\"涧\": \"澗\",\n\"涨\": \"漲\",\n\"涩\": \"澀\",\n\"渊\": \"淵\",\n\"渌\": \"淥\",\n\"渍\": \"漬\",\n\"渎\": \"瀆\",\n\"渐\": \"漸\",\n\"渑\": \"澠\",\n\"渔\": \"漁\",\n\"渖\": \"瀋\",\n\"渗\": \"滲\",\n\"温\": \"溫\",\n\"湾\": \"灣\",\n\"湿\": \"濕\",\n\"溃\": \"潰\",\n\"溅\": \"濺\",\n\"溆\": \"漵\",\n\"滗\": \"潷\",\n\"滚\": \"滾\",\n\"滞\": \"滯\",\n\"滟\": \"灧\",\n\"滠\": \"灄\",\n\"满\": \"滿\",\n\"滢\": \"瀅\",\n\"滤\": \"濾\",\n\"滥\": \"濫\",\n\"滦\": \"灤\",\n\"滨\": \"濱\",\n\"滩\": \"灘\",\n\"滪\": \"澦\",\n\"漤\": \"灠\",\n\"潆\": \"瀠\",\n\"潇\": \"瀟\",\n\"潋\": \"瀲\",\n\"潍\": \"濰\",\n\"潜\": \"潛\",\n\"潴\": \"瀦\",\n\"澜\": \"瀾\",\n\"濑\": \"瀨\",\n\"濒\": \"瀕\",\n\"㲿\": \"瀇\",\n\"灏\": \"灝\",\n\"灭\": \"滅\",\n\"灯\": \"燈\",\n\"灵\": \"靈\",\n\"灶\": \"竈\",\n\"灾\": \"災\",\n\"灿\": \"燦\",\n\"炀\": \"煬\",\n\"炉\": \"爐\",\n\"炖\": \"燉\",\n\"炜\": \"煒\",\n\"炝\": \"熗\",\n\"点\": \"點\",\n\"炼\": \"煉\",\n\"炽\": \"熾\",\n\"烁\": \"爍\",\n\"烂\": \"爛\",\n\"烃\": \"烴\",\n\"烛\": \"燭\",\n\"烟\": \"煙\",\n\"烦\": \"煩\",\n\"烧\": \"燒\",\n\"烨\": \"燁\",\n\"烩\": \"燴\",\n\"烫\": \"燙\",\n\"烬\": \"燼\",\n\"热\": \"熱\",\n\"焕\": \"煥\",\n\"焖\": \"燜\",\n\"焘\": \"燾\",\n\"㶽\": \"煱\",\n\"煴\": \"熅\",\n\"㶶\": \"燶\",\n\"爱\": \"愛\",\n\"爷\": \"爺\",\n\"牍\": \"牘\",\n\"牦\": \"氂\",\n\"牵\": \"牽\",\n\"牺\": \"犧\",\n\"犊\": \"犢\",\n\"状\": \"狀\",\n\"犷\": \"獷\",\n\"犸\": \"獁\",\n\"犹\": \"猶\",\n\"狈\": \"狽\",\n\"狝\": \"獮\",\n\"狞\": \"獰\",\n\"独\": \"獨\",\n\"狭\": \"狹\",\n\"狮\": \"獅\",\n\"狯\": \"獪\",\n\"狰\": \"猙\",\n\"狱\": \"獄\",\n\"狲\": \"猻\",\n\"猃\": \"獫\",\n\"猎\": \"獵\",\n\"猕\": \"獼\",\n\"猡\": \"玀\",\n\"猪\": \"豬\",\n\"猫\": \"貓\",\n\"猬\": \"蝟\",\n\"献\": \"獻\",\n\"獭\": \"獺\",\n\"㺍\": \"獱\",\n\"玑\": \"璣\",\n\"玚\": \"瑒\",\n\"玛\": \"瑪\",\n\"玮\": \"瑋\",\n\"环\": \"環\",\n\"现\": \"現\",\n\"玱\": \"瑲\",\n\"玺\": \"璽\",\n\"珐\": \"琺\",\n\"珑\": \"瓏\",\n\"珰\": \"璫\",\n\"珲\": \"琿\",\n\"琏\": \"璉\",\n\"琐\": \"瑣\",\n\"琼\": \"瓊\",\n\"瑶\": \"瑤\",\n\"瑷\": \"璦\",\n\"璎\": \"瓔\",\n\"瓒\": \"瓚\",\n\"瓯\": \"甌\",\n\"电\": \"電\",\n\"画\": \"畫\",\n\"畅\": \"暢\",\n\"畴\": \"疇\",\n\"疖\": \"癤\",\n\"疗\": \"療\",\n\"疟\": \"瘧\",\n\"疠\": \"癘\",\n\"疡\": \"瘍\",\n\"疬\": \"癧\",\n\"疭\": \"瘲\",\n\"疮\": \"瘡\",\n\"疯\": \"瘋\",\n\"疱\": \"皰\",\n\"疴\": \"痾\",\n\"痈\": \"癰\",\n\"痉\": \"痙\",\n\"痒\": \"癢\",\n\"痖\": \"瘂\",\n\"痨\": \"癆\",\n\"痪\": \"瘓\",\n\"痫\": \"癇\",\n\"瘅\": \"癉\",\n\"瘆\": \"瘮\",\n\"瘗\": \"瘞\",\n\"瘪\": \"癟\",\n\"瘫\": \"癱\",\n\"瘾\": \"癮\",\n\"瘿\": \"癭\",\n\"癞\": \"癩\",\n\"癣\": \"癬\",\n\"癫\": \"癲\",\n\"皑\": \"皚\",\n\"皱\": \"皺\",\n\"皲\": \"皸\",\n\"盏\": \"盞\",\n\"盐\": \"鹽\",\n\"监\": \"監\",\n\"盖\": \"蓋\",\n\"盗\": \"盜\",\n\"盘\": \"盤\",\n\"眍\": \"瞘\",\n\"眦\": \"眥\",\n\"眬\": \"矓\",\n\"着\": \"著\",\n\"睁\": \"睜\",\n\"睐\": \"睞\",\n\"睑\": \"瞼\",\n\"瞆\": \"瞶\",\n\"瞒\": \"瞞\",\n\"䁖\": \"瞜\",\n\"瞩\": \"矚\",\n\"矫\": \"矯\",\n\"矶\": \"磯\",\n\"矾\": \"礬\",\n\"矿\": \"礦\",\n\"砀\": \"碭\",\n\"码\": \"碼\",\n\"砖\": \"磚\",\n\"砗\": \"硨\",\n\"砚\": \"硯\",\n\"砜\": \"碸\",\n\"砺\": \"礪\",\n\"砻\": \"礱\",\n\"砾\": \"礫\",\n\"础\": \"礎\",\n\"硁\": \"硜\",\n\"硕\": \"碩\",\n\"硖\": \"硤\",\n\"硗\": \"磽\",\n\"硙\": \"磑\",\n\"碍\": \"礙\",\n\"碛\": \"磧\",\n\"碜\": \"磣\",\n\"碱\": \"鹼\",\n\"礼\": \"禮\",\n\"祃\": \"禡\",\n\"祎\": \"禕\",\n\"祢\": \"禰\",\n\"祯\": \"禎\",\n\"祷\": \"禱\",\n\"祸\": \"禍\",\n\"禀\": \"稟\",\n\"禄\": \"祿\",\n\"禅\": \"禪\",\n\"离\": \"離\",\n\"秃\": \"禿\",\n\"秆\": \"稈\",\n\"积\": \"積\",\n\"称\": \"稱\",\n\"秽\": \"穢\",\n\"秾\": \"穠\",\n\"稆\": \"穭\",\n\"税\": \"稅\",\n\"䅉\": \"稏\",\n\"稣\": \"穌\",\n\"稳\": \"穩\",\n\"穑\": \"穡\",\n\"穷\": \"窮\",\n\"窃\": \"竊\",\n\"窍\": \"竅\",\n\"窎\": \"窵\",\n\"窑\": \"窯\",\n\"窜\": \"竄\",\n\"窝\": \"窩\",\n\"窥\": \"窺\",\n\"窦\": \"竇\",\n\"窭\": \"窶\",\n\"竞\": \"競\",\n\"笃\": \"篤\",\n\"笋\": \"筍\",\n\"笔\": \"筆\",\n\"笕\": \"筧\",\n\"笺\": \"箋\",\n\"笼\": \"籠\",\n\"笾\": \"籩\",\n\"筚\": \"篳\",\n\"筛\": \"篩\",\n\"筜\": \"簹\",\n\"筝\": \"箏\",\n\"䇲\": \"筴\",\n\"筹\": \"籌\",\n\"筼\": \"篔\",\n\"简\": \"簡\",\n\"箓\": \"籙\",\n\"箦\": \"簀\",\n\"箧\": \"篋\",\n\"箨\": \"籜\",\n\"箩\": \"籮\",\n\"箪\": \"簞\",\n\"箫\": \"簫\",\n\"篑\": \"簣\",\n\"篓\": \"簍\",\n\"篮\": \"籃\",\n\"篱\": \"籬\",\n\"簖\": \"籪\",\n\"籁\": \"籟\",\n\"籴\": \"糴\",\n\"类\": \"類\",\n\"籼\": \"秈\",\n\"粜\": \"糶\",\n\"粝\": \"糲\",\n\"粤\": \"粵\",\n\"粪\": \"糞\",\n\"粮\": \"糧\",\n\"糁\": \"糝\",\n\"糇\": \"餱\",\n\"紧\": \"緊\",\n\"䌷\": \"紬\",\n\"䌹\": \"絅\",\n\"絷\": \"縶\",\n\"䌼\": \"綐\",\n\"䌽\": \"綵\",\n\"䌸\": \"縳\",\n\"䍁\": \"繸\",\n\"䍀\": \"繿\",\n\"纟\": \"糹\",\n\"纠\": \"糾\",\n\"纡\": \"紆\",\n\"红\": \"紅\",\n\"纣\": \"紂\",\n\"纥\": \"紇\",\n\"约\": \"約\",\n\"级\": \"級\",\n\"纨\": \"紈\",\n\"纩\": \"纊\",\n\"纪\": \"紀\",\n\"纫\": \"紉\",\n\"纬\": \"緯\",\n\"纭\": \"紜\",\n\"纮\": \"紘\",\n\"纯\": \"純\",\n\"纰\": \"紕\",\n\"纱\": \"紗\",\n\"纲\": \"綱\",\n\"纳\": \"納\",\n\"纴\": \"紝\",\n\"纵\": \"縱\",\n\"纶\": \"綸\",\n\"纷\": \"紛\",\n\"纸\": \"紙\",\n\"纹\": \"紋\",\n\"纺\": \"紡\",\n\"纻\": \"紵\",\n\"纼\": \"紖\",\n\"纽\": \"紐\",\n\"纾\": \"紓\",\n\"绀\": \"紺\",\n\"绁\": \"紲\",\n\"绂\": \"紱\",\n\"练\": \"練\",\n\"组\": \"組\",\n\"绅\": \"紳\",\n\"细\": \"細\",\n\"织\": \"織\",\n\"终\": \"終\",\n\"绉\": \"縐\",\n\"绊\": \"絆\",\n\"绋\": \"紼\",\n\"绌\": \"絀\",\n\"绍\": \"紹\",\n\"绎\": \"繹\",\n\"经\": \"經\",\n\"绐\": \"紿\",\n\"绑\": \"綁\",\n\"绒\": \"絨\",\n\"结\": \"結\",\n\"绔\": \"絝\",\n\"绕\": \"繞\",\n\"绖\": \"絰\",\n\"绗\": \"絎\",\n\"绘\": \"繪\",\n\"给\": \"給\",\n\"绚\": \"絢\",\n\"绛\": \"絳\",\n\"络\": \"絡\",\n\"绞\": \"絞\",\n\"统\": \"統\",\n\"绠\": \"綆\",\n\"绡\": \"綃\",\n\"绢\": \"絹\",\n\"绤\": \"綌\",\n\"绥\": \"綏\",\n\"继\": \"繼\",\n\"绨\": \"綈\",\n\"绩\": \"績\",\n\"绪\": \"緒\",\n\"绫\": \"綾\",\n\"绬\": \"緓\",\n\"续\": \"續\",\n\"绮\": \"綺\",\n\"绯\": \"緋\",\n\"绰\": \"綽\",\n\"绲\": \"緄\",\n\"绳\": \"繩\",\n\"维\": \"維\",\n\"绵\": \"綿\",\n\"绶\": \"綬\",\n\"绸\": \"綢\",\n\"绹\": \"綯\",\n\"绺\": \"綹\",\n\"绻\": \"綣\",\n\"综\": \"綜\",\n\"绽\": \"綻\",\n\"绾\": \"綰\",\n\"缀\": \"綴\",\n\"缁\": \"緇\",\n\"缂\": \"緙\",\n\"缃\": \"緗\",\n\"缄\": \"緘\",\n\"缅\": \"緬\",\n\"缆\": \"纜\",\n\"缇\": \"緹\",\n\"缈\": \"緲\",\n\"缉\": \"緝\",\n\"缊\": \"縕\",\n\"缋\": \"繢\",\n\"缌\": \"緦\",\n\"缍\": \"綞\",\n\"缎\": \"緞\",\n\"缏\": \"緶\",\n\"缑\": \"緱\",\n\"缒\": \"縋\",\n\"缓\": \"緩\",\n\"缔\": \"締\",\n\"缕\": \"縷\",\n\"编\": \"編\",\n\"缗\": \"緡\",\n\"缘\": \"緣\",\n\"缙\": \"縉\",\n\"缚\": \"縛\",\n\"缛\": \"縟\",\n\"缜\": \"縝\",\n\"缝\": \"縫\",\n\"缞\": \"縗\",\n\"缟\": \"縞\",\n\"缠\": \"纏\",\n\"缡\": \"縭\",\n\"缢\": \"縊\",\n\"缣\": \"縑\",\n\"缤\": \"繽\",\n\"缥\": \"縹\",\n\"缦\": \"縵\",\n\"缧\": \"縲\",\n\"缨\": \"纓\",\n\"缩\": \"縮\",\n\"缪\": \"繆\",\n\"缫\": \"繅\",\n\"缬\": \"纈\",\n\"缭\": \"繚\",\n\"缮\": \"繕\",\n\"缯\": \"繒\",\n\"缱\": \"繾\",\n\"缲\": \"繰\",\n\"缳\": \"繯\",\n\"缴\": \"繳\",\n\"缵\": \"纘\",\n\"罂\": \"罌\",\n\"网\": \"網\",\n\"罗\": \"羅\",\n\"罚\": \"罰\",\n\"罢\": \"罷\",\n\"罴\": \"羆\",\n\"羁\": \"羈\",\n\"羟\": \"羥\",\n\"翘\": \"翹\",\n\"耢\": \"耮\",\n\"耧\": \"耬\",\n\"耸\": \"聳\",\n\"耻\": \"恥\",\n\"聂\": \"聶\",\n\"聋\": \"聾\",\n\"职\": \"職\",\n\"聍\": \"聹\",\n\"联\": \"聯\",\n\"聩\": \"聵\",\n\"聪\": \"聰\",\n\"肃\": \"肅\",\n\"肠\": \"腸\",\n\"肤\": \"膚\",\n\"肮\": \"骯\",\n\"肴\": \"餚\",\n\"肾\": \"腎\",\n\"肿\": \"腫\",\n\"胀\": \"脹\",\n\"胁\": \"脅\",\n\"胆\": \"膽\",\n\"胧\": \"朧\",\n\"胨\": \"腖\",\n\"胪\": \"臚\",\n\"胫\": \"脛\",\n\"胶\": \"膠\",\n\"脉\": \"脈\",\n\"脍\": \"膾\",\n\"脐\": \"臍\",\n\"脑\": \"腦\",\n\"脓\": \"膿\",\n\"脔\": \"臠\",\n\"脚\": \"腳\",\n\"脱\": \"脫\",\n\"脶\": \"腡\",\n\"脸\": \"臉\",\n\"腭\": \"齶\",\n\"腻\": \"膩\",\n\"腼\": \"靦\",\n\"腽\": \"膃\",\n\"腾\": \"騰\",\n\"膑\": \"臏\",\n\"臜\": \"臢\",\n\"舆\": \"輿\",\n\"舣\": \"艤\",\n\"舰\": \"艦\",\n\"舱\": \"艙\",\n\"舻\": \"艫\",\n\"艰\": \"艱\",\n\"艳\": \"艷\",\n\"艺\": \"藝\",\n\"节\": \"節\",\n\"芈\": \"羋\",\n\"芗\": \"薌\",\n\"芜\": \"蕪\",\n\"芦\": \"蘆\",\n\"苁\": \"蓯\",\n\"苇\": \"葦\",\n\"苈\": \"藶\",\n\"苋\": \"莧\",\n\"苌\": \"萇\",\n\"苍\": \"蒼\",\n\"苎\": \"苧\",\n\"茎\": \"莖\",\n\"茏\": \"蘢\",\n\"茑\": \"蔦\",\n\"茔\": \"塋\",\n\"茕\": \"煢\",\n\"茧\": \"繭\",\n\"荆\": \"荊\",\n\"荐\": \"薦\",\n\"荙\": \"薘\",\n\"荚\": \"莢\",\n\"荛\": \"蕘\",\n\"荜\": \"蓽\",\n\"荞\": \"蕎\",\n\"荟\": \"薈\",\n\"荠\": \"薺\",\n\"荣\": \"榮\",\n\"荤\": \"葷\",\n\"荥\": \"滎\",\n\"荦\": \"犖\",\n\"荧\": \"熒\",\n\"荨\": \"蕁\",\n\"荩\": \"藎\",\n\"荪\": \"蓀\",\n\"荫\": \"蔭\",\n\"荬\": \"蕒\",\n\"荭\": \"葒\",\n\"荮\": \"葤\",\n\"莅\": \"蒞\",\n\"莱\": \"萊\",\n\"莲\": \"蓮\",\n\"莳\": \"蒔\",\n\"莴\": \"萵\",\n\"莶\": \"薟\",\n\"莸\": \"蕕\",\n\"莹\": \"瑩\",\n\"莺\": \"鶯\",\n\"萝\": \"蘿\",\n\"萤\": \"螢\",\n\"营\": \"營\",\n\"萦\": \"縈\",\n\"萧\": \"蕭\",\n\"萨\": \"薩\",\n\"葱\": \"蔥\",\n\"蒇\": \"蕆\",\n\"蒉\": \"蕢\",\n\"蒋\": \"蔣\",\n\"蒌\": \"蔞\",\n\"蓝\": \"藍\",\n\"蓟\": \"薊\",\n\"蓠\": \"蘺\",\n\"蓣\": \"蕷\",\n\"蓥\": \"鎣\",\n\"蓦\": \"驀\",\n\"蔂\": \"虆\",\n\"蔷\": \"薔\",\n\"蔹\": \"蘞\",\n\"蔺\": \"藺\",\n\"蔼\": \"藹\",\n\"蕰\": \"薀\",\n\"蕲\": \"蘄\",\n\"薮\": \"藪\",\n\"䓕\": \"薳\",\n\"藓\": \"蘚\",\n\"蘖\": \"櫱\",\n\"虏\": \"虜\",\n\"虑\": \"慮\",\n\"虚\": \"虛\",\n\"虬\": \"虯\",\n\"虮\": \"蟣\",\n\"虽\": \"雖\",\n\"虾\": \"蝦\",\n\"虿\": \"蠆\",\n\"蚀\": \"蝕\",\n\"蚁\": \"蟻\",\n\"蚂\": \"螞\",\n\"蚕\": \"蠶\",\n\"蚬\": \"蜆\",\n\"蛊\": \"蠱\",\n\"蛎\": \"蠣\",\n\"蛏\": \"蟶\",\n\"蛮\": \"蠻\",\n\"蛰\": \"蟄\",\n\"蛱\": \"蛺\",\n\"蛲\": \"蟯\",\n\"蛳\": \"螄\",\n\"蛴\": \"蠐\",\n\"蜕\": \"蛻\",\n\"蜗\": \"蝸\",\n\"蝇\": \"蠅\",\n\"蝈\": \"蟈\",\n\"蝉\": \"蟬\",\n\"蝼\": \"螻\",\n\"蝾\": \"蠑\",\n\"螀\": \"螿\",\n\"螨\": \"蟎\",\n\"䗖\": \"螮\",\n\"蟏\": \"蠨\",\n\"衅\": \"釁\",\n\"衔\": \"銜\",\n\"补\": \"補\",\n\"衬\": \"襯\",\n\"衮\": \"袞\",\n\"袄\": \"襖\",\n\"袅\": \"裊\",\n\"袆\": \"褘\",\n\"袜\": \"襪\",\n\"袭\": \"襲\",\n\"袯\": \"襏\",\n\"装\": \"裝\",\n\"裆\": \"襠\",\n\"裈\": \"褌\",\n\"裢\": \"褳\",\n\"裣\": \"襝\",\n\"裤\": \"褲\",\n\"裥\": \"襇\",\n\"褛\": \"褸\",\n\"褴\": \"襤\",\n\"䙓\": \"襬\",\n\"见\": \"見\",\n\"观\": \"觀\",\n\"觃\": \"覎\",\n\"规\": \"規\",\n\"觅\": \"覓\",\n\"视\": \"視\",\n\"觇\": \"覘\",\n\"览\": \"覽\",\n\"觉\": \"覺\",\n\"觊\": \"覬\",\n\"觋\": \"覡\",\n\"觌\": \"覿\",\n\"觍\": \"覥\",\n\"觎\": \"覦\",\n\"觏\": \"覯\",\n\"觐\": \"覲\",\n\"觑\": \"覷\",\n\"觞\": \"觴\",\n\"触\": \"觸\",\n\"觯\": \"觶\",\n\"訚\": \"誾\",\n\"䜣\": \"訢\",\n\"誉\": \"譽\",\n\"誊\": \"謄\",\n\"䜧\": \"譅\",\n\"讠\": \"訁\",\n\"计\": \"計\",\n\"订\": \"訂\",\n\"讣\": \"訃\",\n\"认\": \"認\",\n\"讥\": \"譏\",\n\"讦\": \"訐\",\n\"讧\": \"訌\",\n\"讨\": \"討\",\n\"让\": \"讓\",\n\"讪\": \"訕\",\n\"讫\": \"訖\",\n\"讬\": \"託\",\n\"训\": \"訓\",\n\"议\": \"議\",\n\"讯\": \"訊\",\n\"记\": \"記\",\n\"讱\": \"訒\",\n\"讲\": \"講\",\n\"讳\": \"諱\",\n\"讴\": \"謳\",\n\"讵\": \"詎\",\n\"讶\": \"訝\",\n\"讷\": \"訥\",\n\"许\": \"許\",\n\"讹\": \"訛\",\n\"论\": \"論\",\n\"讻\": \"訩\",\n\"讼\": \"訟\",\n\"讽\": \"諷\",\n\"设\": \"設\",\n\"访\": \"訪\",\n\"诀\": \"訣\",\n\"证\": \"證\",\n\"诂\": \"詁\",\n\"诃\": \"訶\",\n\"评\": \"評\",\n\"诅\": \"詛\",\n\"识\": \"識\",\n\"诇\": \"詗\",\n\"诈\": \"詐\",\n\"诉\": \"訴\",\n\"诊\": \"診\",\n\"诋\": \"詆\",\n\"诌\": \"謅\",\n\"词\": \"詞\",\n\"诎\": \"詘\",\n\"诏\": \"詔\",\n\"诐\": \"詖\",\n\"译\": \"譯\",\n\"诒\": \"詒\",\n\"诓\": \"誆\",\n\"诔\": \"誄\",\n\"试\": \"試\",\n\"诖\": \"詿\",\n\"诗\": \"詩\",\n\"诘\": \"詰\",\n\"诙\": \"詼\",\n\"诚\": \"誠\",\n\"诛\": \"誅\",\n\"诜\": \"詵\",\n\"话\": \"話\",\n\"诞\": \"誕\",\n\"诟\": \"詬\",\n\"诠\": \"詮\",\n\"诡\": \"詭\",\n\"询\": \"詢\",\n\"诣\": \"詣\",\n\"诤\": \"諍\",\n\"该\": \"該\",\n\"详\": \"詳\",\n\"诧\": \"詫\",\n\"诨\": \"諢\",\n\"诩\": \"詡\",\n\"诪\": \"譸\",\n\"诫\": \"誡\",\n\"诬\": \"誣\",\n\"语\": \"語\",\n\"诮\": \"誚\",\n\"误\": \"誤\",\n\"诰\": \"誥\",\n\"诱\": \"誘\",\n\"诲\": \"誨\",\n\"诳\": \"誑\",\n\"诵\": \"誦\",\n\"诶\": \"誒\",\n\"请\": \"請\",\n\"诸\": \"諸\",\n\"诹\": \"諏\",\n\"诺\": \"諾\",\n\"读\": \"讀\",\n\"诼\": \"諑\",\n\"诽\": \"誹\",\n\"课\": \"課\",\n\"诿\": \"諉\",\n\"谀\": \"諛\",\n\"谁\": \"誰\",\n\"谂\": \"諗\",\n\"调\": \"調\",\n\"谄\": \"諂\",\n\"谅\": \"諒\",\n\"谆\": \"諄\",\n\"谇\": \"誶\",\n\"谈\": \"談\",\n\"谊\": \"誼\",\n\"谋\": \"謀\",\n\"谌\": \"諶\",\n\"谍\": \"諜\",\n\"谎\": \"謊\",\n\"谏\": \"諫\",\n\"谐\": \"諧\",\n\"谑\": \"謔\",\n\"谒\": \"謁\",\n\"谓\": \"謂\",\n\"谔\": \"諤\",\n\"谕\": \"諭\",\n\"谖\": \"諼\",\n\"谗\": \"讒\",\n\"谘\": \"諮\",\n\"谙\": \"諳\",\n\"谚\": \"諺\",\n\"谛\": \"諦\",\n\"谜\": \"謎\",\n\"谝\": \"諞\",\n\"谞\": \"諝\",\n\"谟\": \"謨\",\n\"谠\": \"讜\",\n\"谡\": \"謖\",\n\"谢\": \"謝\",\n\"谤\": \"謗\",\n\"谥\": \"謚\",\n\"谦\": \"謙\",\n\"谧\": \"謐\",\n\"谨\": \"謹\",\n\"谩\": \"謾\",\n\"谪\": \"謫\",\n\"谬\": \"謬\",\n\"谭\": \"譚\",\n\"谮\": \"譖\",\n\"谯\": \"譙\",\n\"谰\": \"讕\",\n\"谱\": \"譜\",\n\"谲\": \"譎\",\n\"谳\": \"讞\",\n\"谴\": \"譴\",\n\"谵\": \"譫\",\n\"谶\": \"讖\",\n\"豮\": \"豶\",\n\"䝙\": \"貙\",\n\"䞐\": \"賰\",\n\"贝\": \"貝\",\n\"贞\": \"貞\",\n\"负\": \"負\",\n\"贠\": \"貟\",\n\"贡\": \"貢\",\n\"财\": \"財\",\n\"责\": \"責\",\n\"贤\": \"賢\",\n\"败\": \"敗\",\n\"账\": \"賬\",\n\"货\": \"貨\",\n\"质\": \"質\",\n\"贩\": \"販\",\n\"贪\": \"貪\",\n\"贫\": \"貧\",\n\"贬\": \"貶\",\n\"购\": \"購\",\n\"贮\": \"貯\",\n\"贯\": \"貫\",\n\"贰\": \"貳\",\n\"贱\": \"賤\",\n\"贲\": \"賁\",\n\"贳\": \"貰\",\n\"贴\": \"貼\",\n\"贵\": \"貴\",\n\"贶\": \"貺\",\n\"贷\": \"貸\",\n\"贸\": \"貿\",\n\"费\": \"費\",\n\"贺\": \"賀\",\n\"贻\": \"貽\",\n\"贼\": \"賊\",\n\"贽\": \"贄\",\n\"贾\": \"賈\",\n\"贿\": \"賄\",\n\"赀\": \"貲\",\n\"赁\": \"賃\",\n\"赂\": \"賂\",\n\"资\": \"資\",\n\"赅\": \"賅\",\n\"赆\": \"贐\",\n\"赇\": \"賕\",\n\"赈\": \"賑\",\n\"赉\": \"賚\",\n\"赊\": \"賒\",\n\"赋\": \"賦\",\n\"赌\": \"賭\",\n\"赎\": \"贖\",\n\"赏\": \"賞\",\n\"赐\": \"賜\",\n\"赑\": \"贔\",\n\"赒\": \"賙\",\n\"赓\": \"賡\",\n\"赔\": \"賠\",\n\"赕\": \"賧\",\n\"赖\": \"賴\",\n\"赗\": \"賵\",\n\"赘\": \"贅\",\n\"赙\": \"賻\",\n\"赚\": \"賺\",\n\"赛\": \"賽\",\n\"赜\": \"賾\",\n\"赞\": \"贊\",\n\"赟\": \"贇\",\n\"赠\": \"贈\",\n\"赡\": \"贍\",\n\"赢\": \"贏\",\n\"赣\": \"贛\",\n\"赪\": \"赬\",\n\"赵\": \"趙\",\n\"赶\": \"趕\",\n\"趋\": \"趨\",\n\"趱\": \"趲\",\n\"趸\": \"躉\",\n\"跃\": \"躍\",\n\"跄\": \"蹌\",\n\"跞\": \"躒\",\n\"践\": \"踐\",\n\"跶\": \"躂\",\n\"跷\": \"蹺\",\n\"跸\": \"蹕\",\n\"跹\": \"躚\",\n\"跻\": \"躋\",\n\"踊\": \"踴\",\n\"踌\": \"躊\",\n\"踪\": \"蹤\",\n\"踬\": \"躓\",\n\"踯\": \"躑\",\n\"蹑\": \"躡\",\n\"蹒\": \"蹣\",\n\"蹰\": \"躕\",\n\"蹿\": \"躥\",\n\"躏\": \"躪\",\n\"躜\": \"躦\",\n\"躯\": \"軀\",\n\"车\": \"車\",\n\"轧\": \"軋\",\n\"轨\": \"軌\",\n\"轩\": \"軒\",\n\"轪\": \"軑\",\n\"轫\": \"軔\",\n\"转\": \"轉\",\n\"轭\": \"軛\",\n\"轮\": \"輪\",\n\"软\": \"軟\",\n\"轰\": \"轟\",\n\"轱\": \"軲\",\n\"轲\": \"軻\",\n\"轳\": \"轤\",\n\"轴\": \"軸\",\n\"轵\": \"軹\",\n\"轶\": \"軼\",\n\"轷\": \"軤\",\n\"轸\": \"軫\",\n\"轹\": \"轢\",\n\"轺\": \"軺\",\n\"轻\": \"輕\",\n\"轼\": \"軾\",\n\"载\": \"載\",\n\"轾\": \"輊\",\n\"轿\": \"轎\",\n\"辀\": \"輈\",\n\"辁\": \"輇\",\n\"辂\": \"輅\",\n\"较\": \"較\",\n\"辄\": \"輒\",\n\"辅\": \"輔\",\n\"辆\": \"輛\",\n\"辇\": \"輦\",\n\"辈\": \"輩\",\n\"辉\": \"輝\",\n\"辊\": \"輥\",\n\"辋\": \"輞\",\n\"辌\": \"輬\",\n\"辍\": \"輟\",\n\"辎\": \"輜\",\n\"辏\": \"輳\",\n\"辐\": \"輻\",\n\"辑\": \"輯\",\n\"辒\": \"轀\",\n\"输\": \"輸\",\n\"辔\": \"轡\",\n\"辕\": \"轅\",\n\"辖\": \"轄\",\n\"辗\": \"輾\",\n\"辘\": \"轆\",\n\"辙\": \"轍\",\n\"辚\": \"轔\",\n\"辞\": \"辭\",\n\"辩\": \"辯\",\n\"辫\": \"辮\",\n\"边\": \"邊\",\n\"辽\": \"遼\",\n\"达\": \"達\",\n\"迁\": \"遷\",\n\"过\": \"過\",\n\"迈\": \"邁\",\n\"运\": \"運\",\n\"还\": \"還\",\n\"这\": \"這\",\n\"进\": \"進\",\n\"远\": \"遠\",\n\"违\": \"違\",\n\"连\": \"連\",\n\"迟\": \"遲\",\n\"迩\": \"邇\",\n\"迳\": \"逕\",\n\"迹\": \"跡\",\n\"选\": \"選\",\n\"逊\": \"遜\",\n\"递\": \"遞\",\n\"逦\": \"邐\",\n\"逻\": \"邏\",\n\"遗\": \"遺\",\n\"遥\": \"遙\",\n\"邓\": \"鄧\",\n\"邝\": \"鄺\",\n\"邬\": \"鄔\",\n\"邮\": \"郵\",\n\"邹\": \"鄒\",\n\"邺\": \"鄴\",\n\"邻\": \"鄰\",\n\"郏\": \"郟\",\n\"郐\": \"鄶\",\n\"郑\": \"鄭\",\n\"郓\": \"鄆\",\n\"郦\": \"酈\",\n\"郧\": \"鄖\",\n\"郸\": \"鄲\",\n\"酂\": \"酇\",\n\"酦\": \"醱\",\n\"酱\": \"醬\",\n\"酽\": \"釅\",\n\"酾\": \"釃\",\n\"酿\": \"釀\",\n\"释\": \"釋\",\n\"鉴\": \"鑒\",\n\"銮\": \"鑾\",\n\"錾\": \"鏨\",\n\"𨱏\": \"鎝\",\n\"钅\": \"釒\",\n\"钆\": \"釓\",\n\"钇\": \"釔\",\n\"针\": \"針\",\n\"钉\": \"釘\",\n\"钊\": \"釗\",\n\"钋\": \"釙\",\n\"钌\": \"釕\",\n\"钍\": \"釷\",\n\"钎\": \"釺\",\n\"钏\": \"釧\",\n\"钐\": \"釤\",\n\"钑\": \"鈒\",\n\"钒\": \"釩\",\n\"钓\": \"釣\",\n\"钔\": \"鍆\",\n\"钕\": \"釹\",\n\"钖\": \"鍚\",\n\"钗\": \"釵\",\n\"钘\": \"鈃\",\n\"钙\": \"鈣\",\n\"钚\": \"鈈\",\n\"钛\": \"鈦\",\n\"钜\": \"鉅\",\n\"钝\": \"鈍\",\n\"钞\": \"鈔\",\n\"钠\": \"鈉\",\n\"钡\": \"鋇\",\n\"钢\": \"鋼\",\n\"钣\": \"鈑\",\n\"钤\": \"鈐\",\n\"钥\": \"鑰\",\n\"钦\": \"欽\",\n\"钧\": \"鈞\",\n\"钨\": \"鎢\",\n\"钪\": \"鈧\",\n\"钫\": \"鈁\",\n\"钬\": \"鈥\",\n\"钭\": \"鈄\",\n\"钮\": \"鈕\",\n\"钯\": \"鈀\",\n\"钰\": \"鈺\",\n\"钱\": \"錢\",\n\"钲\": \"鉦\",\n\"钳\": \"鉗\",\n\"钴\": \"鈷\",\n\"钶\": \"鈳\",\n\"钷\": \"鉕\",\n\"钸\": \"鈽\",\n\"钹\": \"鈸\",\n\"钺\": \"鉞\",\n\"钻\": \"鑽\",\n\"钼\": \"鉬\",\n\"钽\": \"鉭\",\n\"钾\": \"鉀\",\n\"钿\": \"鈿\",\n\"铀\": \"鈾\",\n\"铁\": \"鐵\",\n\"铂\": \"鉑\",\n\"铃\": \"鈴\",\n\"铄\": \"鑠\",\n\"铅\": \"鉛\",\n\"铆\": \"鉚\",\n\"铇\": \"鉋\",\n\"铈\": \"鈰\",\n\"铉\": \"鉉\",\n\"铊\": \"鉈\",\n\"铋\": \"鉍\",\n\"铌\": \"鈮\",\n\"铍\": \"鈹\",\n\"铎\": \"鐸\",\n\"铏\": \"鉶\",\n\"铐\": \"銬\",\n\"铑\": \"銠\",\n\"铒\": \"鉺\",\n\"铓\": \"鋩\",\n\"铔\": \"錏\",\n\"铕\": \"銪\",\n\"铖\": \"鋮\",\n\"铗\": \"鋏\",\n\"铘\": \"鋣\",\n\"铙\": \"鐃\",\n\"铚\": \"銍\",\n\"铛\": \"鐺\",\n\"铜\": \"銅\",\n\"铝\": \"鋁\",\n\"铞\": \"銱\",\n\"铟\": \"銦\",\n\"铠\": \"鎧\",\n\"铡\": \"鍘\",\n\"铢\": \"銖\",\n\"铣\": \"銑\",\n\"铤\": \"鋌\",\n\"铥\": \"銩\",\n\"铦\": \"銛\",\n\"铧\": \"鏵\",\n\"铨\": \"銓\",\n\"铩\": \"鎩\",\n\"铪\": \"鉿\",\n\"铫\": \"銚\",\n\"铬\": \"鉻\",\n\"铭\": \"銘\",\n\"铮\": \"錚\",\n\"铯\": \"銫\",\n\"铰\": \"鉸\",\n\"铱\": \"銥\",\n\"铲\": \"鏟\",\n\"铳\": \"銃\",\n\"铴\": \"鐋\",\n\"铵\": \"銨\",\n\"银\": \"銀\",\n\"铷\": \"銣\",\n\"铸\": \"鑄\",\n\"铹\": \"鐒\",\n\"铺\": \"鋪\",\n\"铻\": \"鋙\",\n\"铼\": \"錸\",\n\"铽\": \"鋱\",\n\"链\": \"鏈\",\n\"铿\": \"鏗\",\n\"销\": \"銷\",\n\"锁\": \"鎖\",\n\"锂\": \"鋰\",\n\"锃\": \"鋥\",\n\"锄\": \"鋤\",\n\"锅\": \"鍋\",\n\"锆\": \"鋯\",\n\"锇\": \"鋨\",\n\"锉\": \"銼\",\n\"锊\": \"鋝\",\n\"锋\": \"鋒\",\n\"锌\": \"鋅\",\n\"锍\": \"鋶\",\n\"锎\": \"鐦\",\n\"锏\": \"鐧\",\n\"锑\": \"銻\",\n\"锒\": \"鋃\",\n\"锓\": \"鋟\",\n\"锔\": \"鋦\",\n\"锕\": \"錒\",\n\"锖\": \"錆\",\n\"锗\": \"鍺\",\n\"锘\": \"鍩\",\n\"错\": \"錯\",\n\"锚\": \"錨\",\n\"锛\": \"錛\",\n\"锜\": \"錡\",\n\"锝\": \"鍀\",\n\"锞\": \"錁\",\n\"锟\": \"錕\",\n\"锠\": \"錩\",\n\"锡\": \"錫\",\n\"锢\": \"錮\",\n\"锣\": \"鑼\",\n\"锥\": \"錐\",\n\"锦\": \"錦\",\n\"锧\": \"鑕\",\n\"锩\": \"錈\",\n\"锪\": \"鍃\",\n\"锫\": \"錇\",\n\"锬\": \"錟\",\n\"锭\": \"錠\",\n\"键\": \"鍵\",\n\"锯\": \"鋸\",\n\"锰\": \"錳\",\n\"锱\": \"錙\",\n\"锲\": \"鍥\",\n\"锳\": \"鍈\",\n\"锴\": \"鍇\",\n\"锵\": \"鏘\",\n\"锶\": \"鍶\",\n\"锷\": \"鍔\",\n\"锸\": \"鍤\",\n\"锹\": \"鍬\",\n\"锺\": \"鍾\",\n\"锻\": \"鍛\",\n\"锼\": \"鎪\",\n\"锽\": \"鍠\",\n\"锾\": \"鍰\",\n\"锿\": \"鎄\",\n\"镀\": \"鍍\",\n\"镁\": \"鎂\",\n\"镂\": \"鏤\",\n\"镃\": \"鎡\",\n\"镄\": \"鐨\",\n\"镅\": \"鎇\",\n\"镆\": \"鏌\",\n\"镇\": \"鎮\",\n\"镈\": \"鎛\",\n\"镉\": \"鎘\",\n\"镊\": \"鑷\",\n\"镋\": \"鎲\",\n\"镍\": \"鎳\",\n\"镎\": \"鎿\",\n\"镏\": \"鎦\",\n\"镐\": \"鎬\",\n\"镑\": \"鎊\",\n\"镒\": \"鎰\",\n\"镓\": \"鎵\",\n\"镔\": \"鑌\",\n\"镕\": \"鎔\",\n\"镖\": \"鏢\",\n\"镗\": \"鏜\",\n\"镘\": \"鏝\",\n\"镙\": \"鏍\",\n\"镚\": \"鏰\",\n\"镛\": \"鏞\",\n\"镜\": \"鏡\",\n\"镝\": \"鏑\",\n\"镞\": \"鏃\",\n\"镟\": \"鏇\",\n\"镠\": \"鏐\",\n\"镡\": \"鐔\",\n\"镣\": \"鐐\",\n\"镤\": \"鏷\",\n\"镥\": \"鑥\",\n\"镦\": \"鐓\",\n\"镧\": \"鑭\",\n\"镨\": \"鐠\",\n\"镩\": \"鑹\",\n\"镪\": \"鏹\",\n\"镫\": \"鐙\",\n\"镬\": \"鑊\",\n\"镭\": \"鐳\",\n\"镮\": \"鐶\",\n\"镯\": \"鐲\",\n\"镰\": \"鐮\",\n\"镱\": \"鐿\",\n\"镲\": \"鑔\",\n\"镳\": \"鑣\",\n\"镴\": \"鑞\",\n\"镵\": \"鑱\",\n\"镶\": \"鑲\",\n\"长\": \"長\",\n\"门\": \"門\",\n\"闩\": \"閂\",\n\"闪\": \"閃\",\n\"闫\": \"閆\",\n\"闬\": \"閈\",\n\"闭\": \"閉\",\n\"问\": \"問\",\n\"闯\": \"闖\",\n\"闰\": \"閏\",\n\"闱\": \"闈\",\n\"闲\": \"閑\",\n\"闳\": \"閎\",\n\"间\": \"間\",\n\"闵\": \"閔\",\n\"闶\": \"閌\",\n\"闷\": \"悶\",\n\"闸\": \"閘\",\n\"闹\": \"鬧\",\n\"闺\": \"閨\",\n\"闻\": \"聞\",\n\"闼\": \"闥\",\n\"闽\": \"閩\",\n\"闾\": \"閭\",\n\"闿\": \"闓\",\n\"阀\": \"閥\",\n\"阁\": \"閣\",\n\"阂\": \"閡\",\n\"阃\": \"閫\",\n\"阄\": \"鬮\",\n\"阆\": \"閬\",\n\"阇\": \"闍\",\n\"阈\": \"閾\",\n\"阉\": \"閹\",\n\"阊\": \"閶\",\n\"阋\": \"鬩\",\n\"阌\": \"閿\",\n\"阍\": \"閽\",\n\"阎\": \"閻\",\n\"阏\": \"閼\",\n\"阐\": \"闡\",\n\"阑\": \"闌\",\n\"阒\": \"闃\",\n\"阓\": \"闠\",\n\"阔\": \"闊\",\n\"阕\": \"闋\",\n\"阖\": \"闔\",\n\"阗\": \"闐\",\n\"阘\": \"闒\",\n\"阙\": \"闕\",\n\"阚\": \"闞\",\n\"阛\": \"闤\",\n\"队\": \"隊\",\n\"阳\": \"陽\",\n\"阴\": \"陰\",\n\"阵\": \"陣\",\n\"阶\": \"階\",\n\"际\": \"際\",\n\"陆\": \"陸\",\n\"陇\": \"隴\",\n\"陈\": \"陳\",\n\"陉\": \"陘\",\n\"陕\": \"陝\",\n\"陧\": \"隉\",\n\"陨\": \"隕\",\n\"险\": \"險\",\n\"随\": \"隨\",\n\"隐\": \"隱\",\n\"隶\": \"隸\",\n\"隽\": \"雋\",\n\"难\": \"難\",\n\"雏\": \"雛\",\n\"雠\": \"讎\",\n\"雳\": \"靂\",\n\"雾\": \"霧\",\n\"霁\": \"霽\",\n\"霡\": \"霢\",\n\"霭\": \"靄\",\n\"靓\": \"靚\",\n\"静\": \"靜\",\n\"靥\": \"靨\",\n\"䩄\": \"靦\",\n\"鞑\": \"韃\",\n\"鞒\": \"鞽\",\n\"鞯\": \"韉\",\n\"韦\": \"韋\",\n\"韧\": \"韌\",\n\"韨\": \"韍\",\n\"韩\": \"韓\",\n\"韪\": \"韙\",\n\"韫\": \"韞\",\n\"韬\": \"韜\",\n\"韵\": \"韻\",\n\"页\": \"頁\",\n\"顶\": \"頂\",\n\"顷\": \"頃\",\n\"顸\": \"頇\",\n\"项\": \"項\",\n\"顺\": \"順\",\n\"顼\": \"頊\",\n\"顽\": \"頑\",\n\"顾\": \"顧\",\n\"顿\": \"頓\",\n\"颀\": \"頎\",\n\"颁\": \"頒\",\n\"颂\": \"頌\",\n\"颃\": \"頏\",\n\"预\": \"預\",\n\"颅\": \"顱\",\n\"领\": \"領\",\n\"颇\": \"頗\",\n\"颈\": \"頸\",\n\"颉\": \"頡\",\n\"颊\": \"頰\",\n\"颋\": \"頲\",\n\"颌\": \"頜\",\n\"颍\": \"潁\",\n\"颎\": \"熲\",\n\"颏\": \"頦\",\n\"颐\": \"頤\",\n\"频\": \"頻\",\n\"颒\": \"頮\",\n\"颔\": \"頷\",\n\"颕\": \"頴\",\n\"颖\": \"穎\",\n\"颗\": \"顆\",\n\"题\": \"題\",\n\"颙\": \"顒\",\n\"颚\": \"顎\",\n\"颛\": \"顓\",\n\"额\": \"額\",\n\"颞\": \"顳\",\n\"颟\": \"顢\",\n\"颠\": \"顛\",\n\"颡\": \"顙\",\n\"颢\": \"顥\",\n\"颤\": \"顫\",\n\"颥\": \"顬\",\n\"颦\": \"顰\",\n\"颧\": \"顴\",\n\"风\": \"風\",\n\"飏\": \"颺\",\n\"飐\": \"颭\",\n\"飑\": \"颮\",\n\"飒\": \"颯\",\n\"飓\": \"颶\",\n\"飔\": \"颸\",\n\"飕\": \"颼\",\n\"飖\": \"颻\",\n\"飗\": \"飀\",\n\"飘\": \"飄\",\n\"飙\": \"飆\",\n\"飚\": \"飈\",\n\"飞\": \"飛\",\n\"飨\": \"饗\",\n\"餍\": \"饜\",\n\"饣\": \"飠\",\n\"饤\": \"飣\",\n\"饦\": \"飥\",\n\"饧\": \"餳\",\n\"饨\": \"飩\",\n\"饩\": \"餼\",\n\"饪\": \"飪\",\n\"饫\": \"飫\",\n\"饬\": \"飭\",\n\"饭\": \"飯\",\n\"饮\": \"飲\",\n\"饯\": \"餞\",\n\"饰\": \"飾\",\n\"饱\": \"飽\",\n\"饲\": \"飼\",\n\"饳\": \"飿\",\n\"饴\": \"飴\",\n\"饵\": \"餌\",\n\"饶\": \"饒\",\n\"饷\": \"餉\",\n\"饸\": \"餄\",\n\"饹\": \"餎\",\n\"饺\": \"餃\",\n\"饻\": \"餏\",\n\"饼\": \"餅\",\n\"饽\": \"餑\",\n\"饾\": \"餖\",\n\"饿\": \"餓\",\n\"馀\": \"餘\",\n\"馁\": \"餒\",\n\"馂\": \"餕\",\n\"馃\": \"餜\",\n\"馄\": \"餛\",\n\"馅\": \"餡\",\n\"馆\": \"館\",\n\"馇\": \"餷\",\n\"馈\": \"饋\",\n\"馉\": \"餶\",\n\"馊\": \"餿\",\n\"馋\": \"饞\",\n\"馌\": \"饁\",\n\"馍\": \"饃\",\n\"馎\": \"餺\",\n\"馏\": \"餾\",\n\"馐\": \"饈\",\n\"馑\": \"饉\",\n\"馒\": \"饅\",\n\"馓\": \"饊\",\n\"馔\": \"饌\",\n\"馕\": \"饢\",\n\"䯄\": \"騧\",\n\"马\": \"馬\",\n\"驭\": \"馭\",\n\"驮\": \"馱\",\n\"驯\": \"馴\",\n\"驰\": \"馳\",\n\"驱\": \"驅\",\n\"驲\": \"馹\",\n\"驳\": \"駁\",\n\"驴\": \"驢\",\n\"驵\": \"駔\",\n\"驶\": \"駛\",\n\"驷\": \"駟\",\n\"驸\": \"駙\",\n\"驹\": \"駒\",\n\"驺\": \"騶\",\n\"驻\": \"駐\",\n\"驼\": \"駝\",\n\"驽\": \"駑\",\n\"驾\": \"駕\",\n\"驿\": \"驛\",\n\"骀\": \"駘\",\n\"骁\": \"驍\",\n\"骃\": \"駰\",\n\"骄\": \"驕\",\n\"骅\": \"驊\",\n\"骆\": \"駱\",\n\"骇\": \"駭\",\n\"骈\": \"駢\",\n\"骉\": \"驫\",\n\"骊\": \"驪\",\n\"骋\": \"騁\",\n\"验\": \"驗\",\n\"骍\": \"騂\",\n\"骎\": \"駸\",\n\"骏\": \"駿\",\n\"骐\": \"騏\",\n\"骑\": \"騎\",\n\"骒\": \"騍\",\n\"骓\": \"騅\",\n\"骔\": \"騌\",\n\"骕\": \"驌\",\n\"骖\": \"驂\",\n\"骗\": \"騙\",\n\"骘\": \"騭\",\n\"骙\": \"騤\",\n\"骚\": \"騷\",\n\"骛\": \"騖\",\n\"骜\": \"驁\",\n\"骝\": \"騮\",\n\"骞\": \"騫\",\n\"骟\": \"騸\",\n\"骠\": \"驃\",\n\"骡\": \"騾\",\n\"骢\": \"驄\",\n\"骣\": \"驏\",\n\"骤\": \"驟\",\n\"骥\": \"驥\",\n\"骦\": \"驦\",\n\"骧\": \"驤\",\n\"髅\": \"髏\",\n\"髋\": \"髖\",\n\"髌\": \"髕\",\n\"鬓\": \"鬢\",\n\"魇\": \"魘\",\n\"魉\": \"魎\",\n\"鱼\": \"魚\",\n\"鱽\": \"魛\",\n\"鱾\": \"魢\",\n\"鱿\": \"魷\",\n\"鲀\": \"魨\",\n\"鲁\": \"魯\",\n\"鲂\": \"魴\",\n\"鲃\": \"䰾\",\n\"鲄\": \"魺\",\n\"鲅\": \"鮁\",\n\"鲆\": \"鮃\",\n\"鲈\": \"鱸\",\n\"鲉\": \"鮋\",\n\"鲊\": \"鮓\",\n\"鲋\": \"鮒\",\n\"鲌\": \"鮊\",\n\"鲍\": \"鮑\",\n\"鲎\": \"鱟\",\n\"鲏\": \"鮍\",\n\"鲐\": \"鮐\",\n\"鲑\": \"鮭\",\n\"鲒\": \"鮚\",\n\"鲓\": \"鮳\",\n\"鲔\": \"鮪\",\n\"鲕\": \"鮞\",\n\"鲖\": \"鮦\",\n\"鲗\": \"鰂\",\n\"鲘\": \"鮜\",\n\"鲙\": \"鱠\",\n\"鲚\": \"鱭\",\n\"鲛\": \"鮫\",\n\"鲜\": \"鮮\",\n\"鲝\": \"鮺\",\n\"鲟\": \"鱘\",\n\"鲠\": \"鯁\",\n\"鲡\": \"鱺\",\n\"鲢\": \"鰱\",\n\"鲣\": \"鰹\",\n\"鲤\": \"鯉\",\n\"鲥\": \"鰣\",\n\"鲦\": \"鰷\",\n\"鲧\": \"鯀\",\n\"鲨\": \"鯊\",\n\"鲩\": \"鯇\",\n\"鲪\": \"鮶\",\n\"鲫\": \"鯽\",\n\"鲬\": \"鯒\",\n\"鲭\": \"鯖\",\n\"鲮\": \"鯪\",\n\"鲯\": \"鯕\",\n\"鲰\": \"鯫\",\n\"鲱\": \"鯡\",\n\"鲲\": \"鯤\",\n\"鲳\": \"鯧\",\n\"鲴\": \"鯝\",\n\"鲵\": \"鯢\",\n\"鲶\": \"鯰\",\n\"鲷\": \"鯛\",\n\"鲸\": \"鯨\",\n\"鲹\": \"鰺\",\n\"鲺\": \"鯴\",\n\"鲻\": \"鯔\",\n\"鲼\": \"鱝\",\n\"鲽\": \"鰈\",\n\"鲾\": \"鰏\",\n\"鲿\": \"鱨\",\n\"鳀\": \"鯷\",\n\"鳁\": \"鰮\",\n\"鳂\": \"鰃\",\n\"鳃\": \"鰓\",\n\"鳅\": \"鰍\",\n\"鳆\": \"鰒\",\n\"鳇\": \"鰉\",\n\"鳈\": \"鰁\",\n\"鳉\": \"鱂\",\n\"鳊\": \"鯿\",\n\"鳋\": \"鰠\",\n\"鳌\": \"鰲\",\n\"鳍\": \"鰭\",\n\"鳎\": \"鰨\",\n\"鳏\": \"鰥\",\n\"鳐\": \"鰩\",\n\"鳑\": \"鰟\",\n\"鳒\": \"鰜\",\n\"鳓\": \"鰳\",\n\"鳔\": \"鰾\",\n\"鳕\": \"鱈\",\n\"鳖\": \"鱉\",\n\"鳗\": \"鰻\",\n\"鳘\": \"鰵\",\n\"鳙\": \"鱅\",\n\"鳚\": \"䲁\",\n\"鳛\": \"鰼\",\n\"鳜\": \"鱖\",\n\"鳝\": \"鱔\",\n\"鳞\": \"鱗\",\n\"鳟\": \"鱒\",\n\"鳠\": \"鱯\",\n\"鳡\": \"鱤\",\n\"鳢\": \"鱧\",\n\"鳣\": \"鱣\",\n\"䴓\": \"鳾\",\n\"䴕\": \"鴷\",\n\"䴔\": \"鵁\",\n\"䴖\": \"鶄\",\n\"䴗\": \"鶪\",\n\"䴘\": \"鷈\",\n\"䴙\": \"鷿\",\n\"㶉\": \"鸂\",\n\"鸟\": \"鳥\",\n\"鸠\": \"鳩\",\n\"鸢\": \"鳶\",\n\"鸣\": \"鳴\",\n\"鸤\": \"鳲\",\n\"鸥\": \"鷗\",\n\"鸦\": \"鴉\",\n\"鸧\": \"鶬\",\n\"鸨\": \"鴇\",\n\"鸩\": \"鴆\",\n\"鸪\": \"鴣\",\n\"鸫\": \"鶇\",\n\"鸬\": \"鸕\",\n\"鸭\": \"鴨\",\n\"鸮\": \"鴞\",\n\"鸯\": \"鴦\",\n\"鸰\": \"鴒\",\n\"鸱\": \"鴟\",\n\"鸲\": \"鴝\",\n\"鸳\": \"鴛\",\n\"鸴\": \"鷽\",\n\"鸵\": \"鴕\",\n\"鸶\": \"鷥\",\n\"鸷\": \"鷙\",\n\"鸸\": \"鴯\",\n\"鸹\": \"鴰\",\n\"鸺\": \"鵂\",\n\"鸻\": \"鴴\",\n\"鸼\": \"鵃\",\n\"鸽\": \"鴿\",\n\"鸾\": \"鸞\",\n\"鸿\": \"鴻\",\n\"鹀\": \"鵐\",\n\"鹁\": \"鵓\",\n\"鹂\": \"鸝\",\n\"鹃\": \"鵑\",\n\"鹄\": \"鵠\",\n\"鹅\": \"鵝\",\n\"鹆\": \"鵒\",\n\"鹇\": \"鷳\",\n\"鹈\": \"鵜\",\n\"鹉\": \"鵡\",\n\"鹊\": \"鵲\",\n\"鹋\": \"鶓\",\n\"鹌\": \"鵪\",\n\"鹍\": \"鵾\",\n\"鹎\": \"鵯\",\n\"鹏\": \"鵬\",\n\"鹐\": \"鵮\",\n\"鹑\": \"鶉\",\n\"鹒\": \"鶊\",\n\"鹓\": \"鵷\",\n\"鹔\": \"鷫\",\n\"鹕\": \"鶘\",\n\"鹖\": \"鶡\",\n\"鹗\": \"鶚\",\n\"鹘\": \"鶻\",\n\"鹙\": \"鶖\",\n\"鹛\": \"鶥\",\n\"鹜\": \"鶩\",\n\"鹝\": \"鷊\",\n\"鹞\": \"鷂\",\n\"鹟\": \"鶲\",\n\"鹠\": \"鶹\",\n\"鹡\": \"鶺\",\n\"鹢\": \"鷁\",\n\"鹣\": \"鶼\",\n\"鹤\": \"鶴\",\n\"鹥\": \"鷖\",\n\"鹦\": \"鸚\",\n\"鹧\": \"鷓\",\n\"鹨\": \"鷚\",\n\"鹩\": \"鷯\",\n\"鹪\": \"鷦\",\n\"鹫\": \"鷲\",\n\"鹬\": \"鷸\",\n\"鹭\": \"鷺\",\n\"鹯\": \"鸇\",\n\"鹰\": \"鷹\",\n\"鹱\": \"鸌\",\n\"鹲\": \"鸏\",\n\"鹳\": \"鸛\",\n\"鹴\": \"鸘\",\n\"鹾\": \"鹺\",\n\"麦\": \"麥\",\n\"麸\": \"麩\",\n\"黄\": \"黃\",\n\"黉\": \"黌\",\n\"黡\": \"黶\",\n\"黩\": \"黷\",\n\"黪\": \"黲\",\n\"黾\": \"黽\",\n\"鼋\": \"黿\",\n\"鼍\": \"鼉\",\n\"鼗\": \"鞀\",\n\"鼹\": \"鼴\",\n\"齐\": \"齊\",\n\"齑\": \"齏\",\n\"齿\": \"齒\",\n\"龀\": \"齔\",\n\"龁\": \"齕\",\n\"龂\": \"齗\",\n\"龃\": \"齟\",\n\"龄\": \"齡\",\n\"龅\": \"齙\",\n\"龆\": \"齠\",\n\"龇\": \"齜\",\n\"龈\": \"齦\",\n\"龉\": \"齬\",\n\"龊\": \"齪\",\n\"龋\": \"齲\",\n\"龌\": \"齷\",\n\"龙\": \"龍\",\n\"龚\": \"龔\",\n\"龛\": \"龕\",\n\"龟\": \"龜\",\n\"一伙\": \"一伙\",\n\"一并\": \"一併\",\n\"一准\": \"一准\",\n\"一划\": \"一划\",\n\"一地里\": \"一地裡\",\n\"一干\": \"一干\",\n\"一树百获\": \"一樹百穫\",\n\"一台\": \"一臺\",\n\"一冲\": \"一衝\",\n\"一只\": \"一隻\",\n\"一发千钧\": \"一髮千鈞\",\n\"一出\": \"一齣\",\n\"七只\": \"七隻\",\n\"三元里\": \"三元裡\",\n\"三国志\": \"三國誌\",\n\"三复\": \"三複\",\n\"三只\": \"三隻\",\n\"上吊\": \"上吊\",\n\"上台\": \"上臺\",\n\"下不了台\": \"下不了臺\",\n\"下台\": \"下臺\",\n\"下面\": \"下麵\",\n\"不准\": \"不准\",\n\"不吊\": \"不吊\",\n\"不知就里\": \"不知就裡\",\n\"不知所云\": \"不知所云\",\n\"不锈钢\": \"不鏽鋼\",\n\"丑剧\": \"丑劇\",\n\"丑旦\": \"丑旦\",\n\"丑角\": \"丑角\",\n\"并存着\": \"並存著\",\n\"中岳\": \"中嶽\",\n\"中台医专\": \"中臺醫專\",\n\"丰南\": \"丰南\",\n\"丰台\": \"丰台\",\n\"丰姿\": \"丰姿\",\n\"丰采\": \"丰采\",\n\"丰韵\": \"丰韻\",\n\"主干\": \"主幹\",\n\"么么唱唱\": \"么么唱唱\",\n\"么儿\": \"么兒\",\n\"么喝\": \"么喝\",\n\"么妹\": \"么妹\",\n\"么弟\": \"么弟\",\n\"么爷\": \"么爺\",\n\"九世之雠\": \"九世之讎\",\n\"九只\": \"九隻\",\n\"干丝\": \"乾絲\",\n\"干着急\": \"乾著急\",\n\"乱发\": \"亂髮\",\n\"云云\": \"云云\",\n\"云尔\": \"云爾\",\n\"五岳\": \"五嶽\",\n\"五斗柜\": \"五斗櫃\",\n\"五斗橱\": \"五斗櫥\",\n\"五谷\": \"五穀\",\n\"五行生克\": \"五行生剋\",\n\"五只\": \"五隻\",\n\"五出\": \"五齣\",\n\"交卷\": \"交卷\",\n\"人云亦云\": \"人云亦云\",\n\"人物志\": \"人物誌\",\n\"什锦面\": \"什錦麵\",\n\"什么\": \"什麼\",\n\"仆倒\": \"仆倒\",\n\"介系词\": \"介係詞\",\n\"介系词\": \"介繫詞\",\n\"仿制\": \"仿製\",\n\"伙伕\": \"伙伕\",\n\"伙伴\": \"伙伴\",\n\"伙同\": \"伙同\",\n\"伙夫\": \"伙夫\",\n\"伙房\": \"伙房\",\n\"伙计\": \"伙計\",\n\"伙食\": \"伙食\",\n\"布下\": \"佈下\",\n\"布告\": \"佈告\",\n\"布哨\": \"佈哨\",\n\"布局\": \"佈局\",\n\"布岗\": \"佈崗\",\n\"布施\": \"佈施\",\n\"布景\": \"佈景\",\n\"布满\": \"佈滿\",\n\"布线\": \"佈線\",\n\"布置\": \"佈置\",\n\"布署\": \"佈署\",\n\"布道\": \"佈道\",\n\"布达\": \"佈達\",\n\"布防\": \"佈防\",\n\"布阵\": \"佈陣\",\n\"布雷\": \"佈雷\",\n\"体育锻鍊\": \"体育鍛鍊\",\n\"何干\": \"何干\",\n\"作准\": \"作准\",\n\"佣人\": \"佣人\",\n\"佣工\": \"佣工\",\n\"佣金\": \"佣金\",\n\"并入\": \"併入\",\n\"并列\": \"併列\",\n\"并到\": \"併到\",\n\"并合\": \"併合\",\n\"并吞\": \"併吞\",\n\"并在\": \"併在\",\n\"并成\": \"併成\",\n\"并排\": \"併排\",\n\"并拢\": \"併攏\",\n\"并案\": \"併案\",\n\"并为\": \"併為\",\n\"并发\": \"併發\",\n\"并科\": \"併科\",\n\"并购\": \"併購\",\n\"并进\": \"併進\",\n\"来复\": \"來複\",\n\"供制\": \"供製\",\n\"依依不舍\": \"依依不捨\",\n\"侵并\": \"侵併\",\n\"便辟\": \"便辟\",\n\"系数\": \"係數\",\n\"系为\": \"係為\",\n\"保险柜\": \"保險柜\",\n\"信号台\": \"信號臺\",\n\"修复\": \"修複\",\n\"修胡刀\": \"修鬍刀\",\n\"俯冲\": \"俯衝\",\n\"个里\": \"個裡\",\n\"借着\": \"借著\",\n\"假发\": \"假髮\",\n\"停制\": \"停製\",\n\"偷鸡不着\": \"偷雞不著\",\n\"家伙\": \"傢伙\",\n\"家俱\": \"傢俱\",\n\"家具\": \"傢具\",\n\"传布\": \"傳佈\",\n\"债台高筑\": \"債臺高築\",\n\"傻里傻气\": \"傻裡傻氣\",\n\"倾家荡产\": \"傾家蕩產\",\n\"倾复\": \"傾複\",\n\"倾复\": \"傾覆\",\n\"僱佣\": \"僱佣\",\n\"仪表\": \"儀錶\",\n\"亿只\": \"億隻\",\n\"尽尽\": \"儘儘\",\n\"尽先\": \"儘先\",\n\"尽其所有\": \"儘其所有\",\n\"尽力\": \"儘力\",\n\"尽快\": \"儘快\",\n\"尽早\": \"儘早\",\n\"尽是\": \"儘是\",\n\"尽管\": \"儘管\",\n\"尽速\": \"儘速\",\n\"尽量\": \"儘量\",\n\"允准\": \"允准\",\n\"兄台\": \"兄臺\",\n\"充饥\": \"充饑\",\n\"光采\": \"光采\",\n\"克里\": \"克裡\",\n\"克复\": \"克複\",\n\"入伙\": \"入伙\",\n\"内制\": \"內製\",\n\"两只\": \"兩隻\",\n\"八字胡\": \"八字鬍\",\n\"八只\": \"八隻\",\n\"公布\": \"公佈\",\n\"公干\": \"公幹\",\n\"公斗\": \"公斗\",\n\"公历\": \"公曆\",\n\"六只\": \"六隻\",\n\"六出\": \"六齣\",\n\"兼并\": \"兼併\",\n\"冤雠\": \"冤讎\",\n\"准予\": \"准予\",\n\"准假\": \"准假\",\n\"准将\": \"准將\",\n\"准考证\": \"准考證\",\n\"准许\": \"准許\",\n\"几几\": \"几几\",\n\"几案\": \"几案\",\n\"几丝\": \"几絲\",\n\"凹洞里\": \"凹洞裡\",\n\"出征\": \"出征\",\n\"出锤\": \"出鎚\",\n\"刀削面\": \"刀削麵\",\n\"刁斗\": \"刁斗\",\n\"分布\": \"分佈\",\n\"切面\": \"切麵\",\n\"刊布\": \"刊佈\",\n\"划上\": \"划上\",\n\"划下\": \"划下\",\n\"划不来\": \"划不來\",\n\"划了\": \"划了\",\n\"划具\": \"划具\",\n\"划出\": \"划出\",\n\"划到\": \"划到\",\n\"划动\": \"划動\",\n\"划去\": \"划去\",\n\"划子\": \"划子\",\n\"划得来\": \"划得來\",\n\"划拳\": \"划拳\",\n\"划桨\": \"划槳\",\n\"划水\": \"划水\",\n\"划算\": \"划算\",\n\"划船\": \"划船\",\n\"划艇\": \"划艇\",\n\"划着\": \"划著\",\n\"划着走\": \"划著走\",\n\"划行\": \"划行\",\n\"划走\": \"划走\",\n\"划起\": \"划起\",\n\"划进\": \"划進\",\n\"划过\": \"划過\",\n\"初征\": \"初征\",\n\"别致\": \"別緻\",\n\"别着\": \"別著\",\n\"别只\": \"別隻\",\n\"利比里亚\": \"利比裡亞\",\n\"刮着\": \"刮著\",\n\"刮胡刀\": \"刮鬍刀\",\n\"剃发\": \"剃髮\",\n\"剃须\": \"剃鬚\",\n\"削发\": \"削髮\",\n\"克制\": \"剋制\",\n\"克星\": \"剋星\",\n\"克服\": \"剋服\",\n\"克死\": \"剋死\",\n\"克薄\": \"剋薄\",\n\"前仆后继\": \"前仆後繼\",\n\"前台\": \"前臺\",\n\"前车之复\": \"前車之覆\",\n\"刚才\": \"剛纔\",\n\"剪发\": \"剪髮\",\n\"割舍\": \"割捨\",\n\"创制\": \"創製\",\n\"加里宁\": \"加裡寧\",\n\"动荡\": \"動蕩\",\n\"劳力士表\": \"勞力士錶\",\n\"包准\": \"包准\",\n\"包谷\": \"包穀\",\n\"北斗\": \"北斗\",\n\"北回\": \"北迴\",\n\"匡复\": \"匡複\",\n\"匪干\": \"匪幹\",\n\"十卷\": \"十卷\",\n\"十台\": \"十臺\",\n\"十只\": \"十隻\",\n\"十出\": \"十齣\",\n\"千丝万缕\": \"千絲萬縷\",\n\"千回百折\": \"千迴百折\",\n\"千回百转\": \"千迴百轉\",\n\"千钧一发\": \"千鈞一髮\",\n\"千只\": \"千隻\",\n\"升斗小民\": \"升斗小民\",\n\"半只\": \"半隻\",\n\"南岳\": \"南嶽\",\n\"南征\": \"南征\",\n\"南台\": \"南臺\",\n\"南回\": \"南迴\",\n\"卡里\": \"卡裡\",\n\"印制\": \"印製\",\n\"卷入\": \"卷入\",\n\"卷取\": \"卷取\",\n\"卷土重来\": \"卷土重來\",\n\"卷子\": \"卷子\",\n\"卷宗\": \"卷宗\",\n\"卷尺\": \"卷尺\",\n\"卷层云\": \"卷層雲\",\n\"卷帙\": \"卷帙\",\n\"卷扬机\": \"卷揚機\",\n\"卷曲\": \"卷曲\",\n\"卷染\": \"卷染\",\n\"卷烟\": \"卷煙\",\n\"卷筒\": \"卷筒\",\n\"卷纬\": \"卷緯\",\n\"卷绕\": \"卷繞\",\n\"卷装\": \"卷裝\",\n\"卷轴\": \"卷軸\",\n\"卷云\": \"卷雲\",\n\"卷领\": \"卷領\",\n\"卷发\": \"卷髮\",\n\"卷须\": \"卷鬚\",\n\"参与\": \"參与\",\n\"参与者\": \"參与者\",\n\"参合\": \"參合\",\n\"参考价值\": \"參考價值\",\n\"参与\": \"參與\",\n\"参与人员\": \"參與人員\",\n\"参与制\": \"參與制\",\n\"参与感\": \"參與感\",\n\"参与者\": \"參與者\",\n\"参观团\": \"參觀團\",\n\"参观团体\": \"參觀團體\",\n\"参阅\": \"參閱\",\n\"反冲\": \"反衝\",\n\"反复\": \"反複\",\n\"反复\": \"反覆\",\n\"取舍\": \"取捨\",\n\"口里\": \"口裡\",\n\"只准\": \"只准\",\n\"只冲\": \"只衝\",\n\"叮当\": \"叮噹\",\n\"可怜虫\": \"可憐虫\",\n\"可紧可松\": \"可緊可鬆\",\n\"台制\": \"台製\",\n\"司令台\": \"司令臺\",\n\"吃着不尽\": \"吃著不盡\",\n\"吃里扒外\": \"吃裡扒外\",\n\"吃里爬外\": \"吃裡爬外\",\n\"各吊\": \"各吊\",\n\"合伙\": \"合伙\",\n\"合并\": \"合併\",\n\"合着\": \"合著\",\n\"合着者\": \"合著者\",\n\"吊上\": \"吊上\",\n\"吊下\": \"吊下\",\n\"吊了\": \"吊了\",\n\"吊个\": \"吊個\",\n\"吊儿郎当\": \"吊兒郎當\",\n\"吊到\": \"吊到\",\n\"吊去\": \"吊去\",\n\"吊取\": \"吊取\",\n\"吊吊\": \"吊吊\",\n\"吊嗓\": \"吊嗓\",\n\"吊好\": \"吊好\",\n\"吊子\": \"吊子\",\n\"吊带\": \"吊帶\",\n\"吊带裤\": \"吊帶褲\",\n\"吊床\": \"吊床\",\n\"吊得\": \"吊得\",\n\"吊挂\": \"吊掛\",\n\"吊挂着\": \"吊掛著\",\n\"吊杆\": \"吊杆\",\n\"吊架\": \"吊架\",\n\"吊桶\": \"吊桶\",\n\"吊杆\": \"吊桿\",\n\"吊桥\": \"吊橋\",\n\"吊死\": \"吊死\",\n\"吊灯\": \"吊燈\",\n\"吊环\": \"吊環\",\n\"吊盘\": \"吊盤\",\n\"吊索\": \"吊索\",\n\"吊着\": \"吊著\",\n\"吊装\": \"吊裝\",\n\"吊裤\": \"吊褲\",\n\"吊裤带\": \"吊褲帶\",\n\"吊袜\": \"吊襪\",\n\"吊走\": \"吊走\",\n\"吊起\": \"吊起\",\n\"吊车\": \"吊車\",\n\"吊钩\": \"吊鉤\",\n\"吊销\": \"吊銷\",\n\"吊钟\": \"吊鐘\",\n\"同伙\": \"同伙\",\n\"名表\": \"名錶\",\n\"后冠\": \"后冠\",\n\"后土\": \"后土\",\n\"后妃\": \"后妃\",\n\"后座\": \"后座\",\n\"后稷\": \"后稷\",\n\"后羿\": \"后羿\",\n\"后里\": \"后里\",\n\"向着\": \"向著\",\n\"吞并\": \"吞併\",\n\"吹发\": \"吹髮\",\n\"吕后\": \"呂后\",\n\"獃里獃气\": \"呆裡呆氣\",\n\"周而复始\": \"周而複始\",\n\"呼吁\": \"呼籲\",\n\"和面\": \"和麵\",\n\"哪里\": \"哪裡\",\n\"哭脏\": \"哭髒\",\n\"问卷\": \"問卷\",\n\"喝采\": \"喝采\",\n\"单干\": \"單干\",\n\"单只\": \"單隻\",\n\"嘴里\": \"嘴裡\",\n\"恶心\": \"噁心\",\n\"当啷\": \"噹啷\",\n\"当当\": \"噹噹\",\n\"噜苏\": \"嚕囌\",\n\"向导\": \"嚮導\",\n\"向往\": \"嚮往\",\n\"向应\": \"嚮應\",\n\"向日\": \"嚮日\",\n\"向迩\": \"嚮邇\",\n\"严丝合缝\": \"嚴絲合縫\",\n\"严复\": \"嚴複\",\n\"四舍五入\": \"四捨五入\",\n\"四只\": \"四隻\",\n\"四出\": \"四齣\",\n\"回丝\": \"回絲\",\n\"回着\": \"回著\",\n\"回荡\": \"回蕩\",\n\"回复\": \"回覆\",\n\"回采\": \"回采\",\n\"圈子里\": \"圈子裡\",\n\"圈里\": \"圈裡\",\n\"国历\": \"國曆\",\n\"国雠\": \"國讎\",\n\"园里\": \"園裡\",\n\"图里\": \"圖裡\",\n\"土里\": \"土裡\",\n\"土制\": \"土製\",\n\"地志\": \"地誌\",\n\"坍台\": \"坍臺\",\n\"坑里\": \"坑裡\",\n\"坦荡\": \"坦蕩\",\n\"垂发\": \"垂髮\",\n\"垮台\": \"垮臺\",\n\"埋布\": \"埋佈\",\n\"城里\": \"城裡\",\n\"基干\": \"基幹\",\n\"报复\": \"報複\",\n\"塌台\": \"塌臺\",\n\"塔台\": \"塔臺\",\n\"涂着\": \"塗著\",\n\"墓志\": \"墓誌\",\n\"墨斗\": \"墨斗\",\n\"墨索里尼\": \"墨索裡尼\",\n\"垦复\": \"墾複\",\n\"垄断价格\": \"壟斷價格\",\n\"垄断资产\": \"壟斷資產\",\n\"垄断集团\": \"壟斷集團\",\n\"壶里\": \"壺裡\",\n\"寿面\": \"壽麵\",\n\"夏天里\": \"夏天裡\",\n\"夏历\": \"夏曆\",\n\"外制\": \"外製\",\n\"多冲\": \"多衝\",\n\"多采多姿\": \"多采多姿\",\n\"多么\": \"多麼\",\n\"夜光表\": \"夜光錶\",\n\"夜里\": \"夜裡\",\n\"梦里\": \"夢裡\",\n\"大伙\": \"大伙\",\n\"大卷\": \"大卷\",\n\"大干\": \"大干\",\n\"大干\": \"大幹\",\n\"大锤\": \"大鎚\",\n\"大只\": \"大隻\",\n\"天后\": \"天后\",\n\"天干\": \"天干\",\n\"天文台\": \"天文臺\",\n\"天翻地复\": \"天翻地覆\",\n\"太后\": \"太后\",\n\"奏折\": \"奏摺\",\n\"女丑\": \"女丑\",\n\"女佣\": \"女佣\",\n\"好家夥\": \"好傢夥\",\n\"好戏连台\": \"好戲連臺\",\n\"如法泡制\": \"如法泡製\",\n\"妆台\": \"妝臺\",\n\"姜太公\": \"姜太公\",\n\"姜子牙\": \"姜子牙\",\n\"姜丝\": \"姜絲\",\n\"字汇\": \"字彙\",\n\"字里行间\": \"字裡行間\",\n\"存折\": \"存摺\",\n\"孟姜女\": \"孟姜女\",\n\"宇宙志\": \"宇宙誌\",\n\"定准\": \"定准\",\n\"定制\": \"定製\",\n\"宣布\": \"宣佈\",\n\"宫里\": \"宮裡\",\n\"家伙\": \"家伙\",\n\"家里\": \"家裡\",\n\"密布\": \"密佈\",\n\"寇雠\": \"寇讎\",\n\"实干\": \"實幹\",\n\"写字台\": \"寫字檯\",\n\"写字台\": \"寫字臺\",\n\"宽松\": \"寬鬆\",\n\"封面里\": \"封面裡\",\n\"射干\": \"射干\",\n\"对表\": \"對錶\",\n\"小丑\": \"小丑\",\n\"小伙\": \"小伙\",\n\"小只\": \"小隻\",\n\"少吊\": \"少吊\",\n\"尺布斗粟\": \"尺布斗粟\",\n\"尼克松\": \"尼克鬆\",\n\"尼采\": \"尼采\",\n\"尿斗\": \"尿斗\",\n\"局里\": \"局裡\",\n\"居里\": \"居裡\",\n\"屋子里\": \"屋子裡\",\n\"屋里\": \"屋裡\",\n\"展布\": \"展佈\",\n\"屡仆屡起\": \"屢仆屢起\",\n\"屯里\": \"屯裡\",\n\"山岳\": \"山嶽\",\n\"山里\": \"山裡\",\n\"峰回\": \"峰迴\",\n\"巡回\": \"巡迴\",\n\"巧干\": \"巧幹\",\n\"巴尔干\": \"巴爾幹\",\n\"巴里\": \"巴裡\",\n\"巷里\": \"巷裡\",\n\"市里\": \"市裡\",\n\"布谷\": \"布穀\",\n\"希腊\": \"希腊\",\n\"帘子\": \"帘子\",\n\"帘布\": \"帘布\",\n\"席卷\": \"席卷\",\n\"带团参加\": \"帶團參加\",\n\"带发修行\": \"帶髮修行\",\n\"干休\": \"干休\",\n\"干系\": \"干係\",\n\"干卿何事\": \"干卿何事\",\n\"干将\": \"干將\",\n\"干戈\": \"干戈\",\n\"干挠\": \"干撓\",\n\"干扰\": \"干擾\",\n\"干支\": \"干支\",\n\"干政\": \"干政\",\n\"干时\": \"干時\",\n\"干涉\": \"干涉\",\n\"干犯\": \"干犯\",\n\"干与\": \"干與\",\n\"干着急\": \"干著急\",\n\"干贝\": \"干貝\",\n\"干预\": \"干預\",\n\"平台\": \"平臺\",\n\"年历\": \"年曆\",\n\"年里\": \"年裡\",\n\"干上\": \"幹上\",\n\"干下去\": \"幹下去\",\n\"干了\": \"幹了\",\n\"干事\": \"幹事\",\n\"干些\": \"幹些\",\n\"干个\": \"幹個\",\n\"干劲\": \"幹勁\",\n\"干员\": \"幹員\",\n\"干吗\": \"幹嗎\",\n\"干嘛\": \"幹嘛\",\n\"干坏事\": \"幹壞事\",\n\"干完\": \"幹完\",\n\"干得\": \"幹得\",\n\"干性油\": \"幹性油\",\n\"干才\": \"幹才\",\n\"干掉\": \"幹掉\",\n\"干校\": \"幹校\",\n\"干活\": \"幹活\",\n\"干流\": \"幹流\",\n\"干球温度\": \"幹球溫度\",\n\"干线\": \"幹線\",\n\"干练\": \"幹練\",\n\"干警\": \"幹警\",\n\"干起来\": \"幹起來\",\n\"干路\": \"幹路\",\n\"干道\": \"幹道\",\n\"干部\": \"幹部\",\n\"干么\": \"幹麼\",\n\"几丝\": \"幾絲\",\n\"几只\": \"幾隻\",\n\"几出\": \"幾齣\",\n\"底里\": \"底裡\",\n\"康采恩\": \"康采恩\",\n\"庙里\": \"廟裡\",\n\"建台\": \"建臺\",\n\"弄脏\": \"弄髒\",\n\"弔卷\": \"弔卷\",\n\"弘历\": \"弘曆\",\n\"别扭\": \"彆扭\",\n\"别拗\": \"彆拗\",\n\"别气\": \"彆氣\",\n\"别脚\": \"彆腳\",\n\"别着\": \"彆著\",\n\"弹子台\": \"彈子檯\",\n\"弹药\": \"彈葯\",\n\"汇报\": \"彙報\",\n\"汇整\": \"彙整\",\n\"汇编\": \"彙編\",\n\"汇总\": \"彙總\",\n\"汇纂\": \"彙纂\",\n\"汇辑\": \"彙輯\",\n\"汇集\": \"彙集\",\n\"形单影只\": \"形單影隻\",\n\"影后\": \"影后\",\n\"往里\": \"往裡\",\n\"往复\": \"往複\",\n\"征伐\": \"征伐\",\n\"征兵\": \"征兵\",\n\"征尘\": \"征塵\",\n\"征夫\": \"征夫\",\n\"征战\": \"征戰\",\n\"征收\": \"征收\",\n\"征服\": \"征服\",\n\"征求\": \"征求\",\n\"征发\": \"征發\",\n\"征衣\": \"征衣\",\n\"征讨\": \"征討\",\n\"征途\": \"征途\",\n\"后台\": \"後臺\",\n\"从里到外\": \"從裡到外\",\n\"从里向外\": \"從裡向外\",\n\"复雠\": \"復讎\",\n\"复辟\": \"復辟\",\n\"德干高原\": \"德干高原\",\n\"心愿\": \"心愿\",\n\"心荡神驰\": \"心蕩神馳\",\n\"心里\": \"心裡\",\n\"忙里\": \"忙裡\",\n\"快干\": \"快幹\",\n\"快冲\": \"快衝\",\n\"怎么\": \"怎麼\",\n\"怎么着\": \"怎麼著\",\n\"怒发冲冠\": \"怒髮衝冠\",\n\"急冲而下\": \"急衝而下\",\n\"怪里怪气\": \"怪裡怪氣\",\n\"恩准\": \"恩准\",\n\"情有所钟\": \"情有所鍾\",\n\"意面\": \"意麵\",\n\"慌里慌张\": \"慌裡慌張\",\n\"慰借\": \"慰藉\",\n\"忧郁\": \"憂郁\",\n\"凭吊\": \"憑吊\",\n\"凭借\": \"憑藉\",\n\"凭借着\": \"憑藉著\",\n\"蒙懂\": \"懞懂\",\n\"怀里\": \"懷裡\",\n\"怀表\": \"懷錶\",\n\"悬吊\": \"懸吊\",\n\"恋恋不舍\": \"戀戀不捨\",\n\"戏台\": \"戲臺\",\n\"戴表\": \"戴錶\",\n\"戽斗\": \"戽斗\",\n\"房里\": \"房裡\",\n\"手不释卷\": \"手不釋卷\",\n\"手卷\": \"手卷\",\n\"手折\": \"手摺\",\n\"手里\": \"手裡\",\n\"手表\": \"手錶\",\n\"手松\": \"手鬆\",\n\"才干\": \"才幹\",\n\"才高八斗\": \"才高八斗\",\n\"打谷\": \"打穀\",\n\"扞御\": \"扞禦\",\n\"批准\": \"批准\",\n\"批复\": \"批複\",\n\"批复\": \"批覆\",\n\"承制\": \"承製\",\n\"抗御\": \"抗禦\",\n\"折冲\": \"折衝\",\n\"披复\": \"披覆\",\n\"披发\": \"披髮\",\n\"抱朴\": \"抱朴\",\n\"抵御\": \"抵禦\",\n\"拆伙\": \"拆伙\",\n\"拆台\": \"拆臺\",\n\"拈须\": \"拈鬚\",\n\"拉纤\": \"拉縴\",\n\"拉面\": \"拉麵\",\n\"拖吊\": \"拖吊\",\n\"拗别\": \"拗彆\",\n\"拮据\": \"拮据\",\n\"振荡\": \"振蕩\",\n\"捍御\": \"捍禦\",\n\"舍不得\": \"捨不得\",\n\"舍出\": \"捨出\",\n\"舍去\": \"捨去\",\n\"舍命\": \"捨命\",\n\"舍己从人\": \"捨己從人\",\n\"舍己救人\": \"捨己救人\",\n\"舍己为人\": \"捨己為人\",\n\"舍己为公\": \"捨己為公\",\n\"舍己为国\": \"捨己為國\",\n\"舍得\": \"捨得\",\n\"舍我其谁\": \"捨我其誰\",\n\"舍本逐末\": \"捨本逐末\",\n\"舍弃\": \"捨棄\",\n\"舍死忘生\": \"捨死忘生\",\n\"舍生\": \"捨生\",\n\"舍短取长\": \"捨短取長\",\n\"舍身\": \"捨身\",\n\"舍车保帅\": \"捨車保帥\",\n\"舍近求远\": \"捨近求遠\",\n\"捲发\": \"捲髮\",\n\"捵面\": \"捵麵\",\n\"扫荡\": \"掃蕩\",\n\"掌柜\": \"掌柜\",\n\"排骨面\": \"排骨麵\",\n\"挂帘\": \"掛帘\",\n\"挂面\": \"掛麵\",\n\"接着说\": \"接著說\",\n\"提心吊胆\": \"提心吊膽\",\n\"插图卷\": \"插圖卷\",\n\"换吊\": \"換吊\",\n\"换只\": \"換隻\",\n\"换发\": \"換髮\",\n\"摇荡\": \"搖蕩\",\n\"搭伙\": \"搭伙\",\n\"折合\": \"摺合\",\n\"折奏\": \"摺奏\",\n\"折子\": \"摺子\",\n\"折尺\": \"摺尺\",\n\"折扇\": \"摺扇\",\n\"折梯\": \"摺梯\",\n\"折椅\": \"摺椅\",\n\"折叠\": \"摺疊\",\n\"折痕\": \"摺痕\",\n\"折篷\": \"摺篷\",\n\"折纸\": \"摺紙\",\n\"折裙\": \"摺裙\",\n\"撒布\": \"撒佈\",\n\"撚须\": \"撚鬚\",\n\"撞球台\": \"撞球檯\",\n\"擂台\": \"擂臺\",\n\"担仔面\": \"擔仔麵\",\n\"担担面\": \"擔擔麵\",\n\"担着\": \"擔著\",\n\"担负着\": \"擔負著\",\n\"据云\": \"據云\",\n\"擢发难数\": \"擢髮難數\",\n\"摆布\": \"擺佈\",\n\"摄制\": \"攝製\",\n\"支干\": \"支幹\",\n\"收获\": \"收穫\",\n\"改制\": \"改製\",\n\"攻克\": \"攻剋\",\n\"放荡\": \"放蕩\",\n\"放松\": \"放鬆\",\n\"叙说着\": \"敘說著\",\n\"散伙\": \"散伙\",\n\"散布\": \"散佈\",\n\"散荡\": \"散蕩\",\n\"散发\": \"散髮\",\n\"整只\": \"整隻\",\n\"整出\": \"整齣\",\n\"文采\": \"文采\",\n\"斗六\": \"斗六\",\n\"斗南\": \"斗南\",\n\"斗大\": \"斗大\",\n\"斗子\": \"斗子\",\n\"斗室\": \"斗室\",\n\"斗方\": \"斗方\",\n\"斗栱\": \"斗栱\",\n\"斗笠\": \"斗笠\",\n\"斗箕\": \"斗箕\",\n\"斗篷\": \"斗篷\",\n\"斗胆\": \"斗膽\",\n\"斗转参横\": \"斗轉參橫\",\n\"斗量\": \"斗量\",\n\"斗门\": \"斗門\",\n\"料斗\": \"料斗\",\n\"斯里兰卡\": \"斯裡蘭卡\",\n\"新历\": \"新曆\",\n\"断头台\": \"斷頭臺\",\n\"方才\": \"方纔\",\n\"施舍\": \"施捨\",\n\"旋绕着\": \"旋繞著\",\n\"旋回\": \"旋迴\",\n\"族里\": \"族裡\",\n\"日历\": \"日曆\",\n\"日志\": \"日誌\",\n\"日进斗金\": \"日進斗金\",\n\"明了\": \"明瞭\",\n\"明窗净几\": \"明窗淨几\",\n\"明里\": \"明裡\",\n\"星斗\": \"星斗\",\n\"星历\": \"星曆\",\n\"星移斗换\": \"星移斗換\",\n\"星移斗转\": \"星移斗轉\",\n\"星罗棋布\": \"星羅棋佈\",\n\"星辰表\": \"星辰錶\",\n\"春假里\": \"春假裡\",\n\"春天里\": \"春天裡\",\n\"晃荡\": \"晃蕩\",\n\"景致\": \"景緻\",\n\"暗地里\": \"暗地裡\",\n\"暗沟里\": \"暗溝裡\",\n\"暗里\": \"暗裡\",\n\"历数\": \"曆數\",\n\"历书\": \"曆書\",\n\"历法\": \"曆法\",\n\"书卷\": \"書卷\",\n\"会干\": \"會幹\",\n\"会里\": \"會裡\",\n\"月历\": \"月曆\",\n\"月台\": \"月臺\",\n\"有只\": \"有隻\",\n\"木制\": \"木製\",\n\"本台\": \"本臺\",\n\"朴子\": \"朴子\",\n\"朴实\": \"朴實\",\n\"朴硝\": \"朴硝\",\n\"朴素\": \"朴素\",\n\"朴资茅斯\": \"朴資茅斯\",\n\"村里\": \"村裡\",\n\"束发\": \"束髮\",\n\"东岳\": \"東嶽\",\n\"东征\": \"東征\",\n\"松赞干布\": \"松贊干布\",\n\"板着脸\": \"板著臉\",\n\"板荡\": \"板蕩\",\n\"枕借\": \"枕藉\",\n\"林宏岳\": \"林宏嶽\",\n\"枝干\": \"枝幹\",\n\"枯干\": \"枯幹\",\n\"某只\": \"某隻\",\n\"染发\": \"染髮\",\n\"柜上\": \"柜上\",\n\"柜台\": \"柜台\",\n\"柜子\": \"柜子\",\n\"查卷\": \"查卷\",\n\"查号台\": \"查號臺\",\n\"校雠学\": \"校讎學\",\n\"核准\": \"核准\",\n\"核复\": \"核覆\",\n\"格里\": \"格裡\",\n\"案卷\": \"案卷\",\n\"条干\": \"條幹\",\n\"棉卷\": \"棉卷\",\n\"棉制\": \"棉製\",\n\"植发\": \"植髮\",\n\"楼台\": \"樓臺\",\n\"标志着\": \"標志著\",\n\"标致\": \"標緻\",\n\"标志\": \"標誌\",\n\"模制\": \"模製\",\n\"树干\": \"樹幹\",\n\"横征暴敛\": \"橫征暴斂\",\n\"横冲\": \"橫衝\",\n\"档卷\": \"檔卷\",\n\"检复\": \"檢覆\",\n\"台子\": \"檯子\",\n\"台布\": \"檯布\",\n\"台灯\": \"檯燈\",\n\"台球\": \"檯球\",\n\"台面\": \"檯面\",\n\"柜台\": \"櫃檯\",\n\"柜台\": \"櫃臺\",\n\"栏干\": \"欄干\",\n\"欺蒙\": \"欺矇\",\n\"歌后\": \"歌后\",\n\"欧几里得\": \"歐幾裡得\",\n\"正当着\": \"正當著\",\n\"武后\": \"武后\",\n\"武松\": \"武鬆\",\n\"归并\": \"歸併\",\n\"死里求生\": \"死裡求生\",\n\"死里逃生\": \"死裡逃生\",\n\"残卷\": \"殘卷\",\n\"杀虫药\": \"殺虫藥\",\n\"壳里\": \"殼裡\",\n\"母后\": \"母后\",\n\"每只\": \"每隻\",\n\"比干\": \"比干\",\n\"毛卷\": \"毛卷\",\n\"毛发\": \"毛髮\",\n\"毫发\": \"毫髮\",\n\"气冲牛斗\": \"氣沖牛斗\",\n\"气象台\": \"氣象臺\",\n\"氯霉素\": \"氯黴素\",\n\"水斗\": \"水斗\",\n\"水里\": \"水裡\",\n\"水表\": \"水錶\",\n\"永历\": \"永曆\",\n\"污蔑\": \"汙衊\",\n\"池里\": \"池裡\",\n\"污蔑\": \"污衊\",\n\"沈着\": \"沈著\",\n\"没事干\": \"沒事幹\",\n\"没精打采\": \"沒精打采\",\n\"冲着\": \"沖著\",\n\"沙里淘金\": \"沙裡淘金\",\n\"河里\": \"河裡\",\n\"油面\": \"油麵\",\n\"泡面\": \"泡麵\",\n\"泰斗\": \"泰斗\",\n\"洗手不干\": \"洗手不幹\",\n\"洗发精\": \"洗髮精\",\n\"派团参加\": \"派團參加\",\n\"流荡\": \"流蕩\",\n\"浩荡\": \"浩蕩\",\n\"浪琴表\": \"浪琴錶\",\n\"浪荡\": \"浪蕩\",\n\"浮荡\": \"浮蕩\",\n\"海里\": \"海裡\",\n\"涂着\": \"涂著\",\n\"液晶表\": \"液晶錶\",\n\"凉面\": \"涼麵\",\n\"淡朱\": \"淡硃\",\n\"淫荡\": \"淫蕩\",\n\"测验卷\": \"測驗卷\",\n\"港制\": \"港製\",\n\"游荡\": \"游蕩\",\n\"凑合着\": \"湊合著\",\n\"湖里\": \"湖裡\",\n\"汤团\": \"湯糰\",\n\"汤面\": \"湯麵\",\n\"卤制\": \"滷製\",\n\"卤面\": \"滷麵\",\n\"满布\": \"滿佈\",\n\"漂荡\": \"漂蕩\",\n\"漏斗\": \"漏斗\",\n\"演奏台\": \"演奏臺\",\n\"潭里\": \"潭裡\",\n\"激荡\": \"激蕩\",\n\"浓郁\": \"濃郁\",\n\"浓发\": \"濃髮\",\n\"湿地松\": \"濕地鬆\",\n\"蒙蒙\": \"濛濛\",\n\"蒙雾\": \"濛霧\",\n\"瀛台\": \"瀛臺\",\n\"弥漫\": \"瀰漫\",\n\"弥漫着\": \"瀰漫著\",\n\"火并\": \"火併\",\n\"灰蒙\": \"灰濛\",\n\"炒面\": \"炒麵\",\n\"炮制\": \"炮製\",\n\"炸药\": \"炸葯\",\n\"炸酱面\": \"炸醬麵\",\n\"为着\": \"為著\",\n\"乌干达\": \"烏干達\",\n\"乌苏里江\": \"烏蘇裡江\",\n\"乌发\": \"烏髮\",\n\"乌龙面\": \"烏龍麵\",\n\"烘制\": \"烘製\",\n\"烽火台\": \"烽火臺\",\n\"无干\": \"無干\",\n\"无精打采\": \"無精打采\",\n\"炼制\": \"煉製\",\n\"烟卷儿\": \"煙卷兒\",\n\"烟斗\": \"煙斗\",\n\"烟斗丝\": \"煙斗絲\",\n\"烟台\": \"煙臺\",\n\"照准\": \"照准\",\n\"熨斗\": \"熨斗\",\n\"灯台\": \"燈臺\",\n\"燎发\": \"燎髮\",\n\"烫发\": \"燙髮\",\n\"烫面\": \"燙麵\",\n\"烛台\": \"燭臺\",\n\"炉台\": \"爐臺\",\n\"爽荡\": \"爽蕩\",\n\"片言只语\": \"片言隻語\",\n\"牛肉面\": \"牛肉麵\",\n\"牛只\": \"牛隻\",\n\"特准\": \"特准\",\n\"特征\": \"特征\",\n\"特里\": \"特裡\",\n\"特制\": \"特製\",\n\"牵系\": \"牽繫\",\n\"狼借\": \"狼藉\",\n\"猛冲\": \"猛衝\",\n\"奖杯\": \"獎盃\",\n\"获准\": \"獲准\",\n\"率团参加\": \"率團參加\",\n\"王侯后\": \"王侯后\",\n\"王后\": \"王后\",\n\"班里\": \"班裡\",\n\"理发\": \"理髮\",\n\"瑶台\": \"瑤臺\",\n\"甚么\": \"甚麼\",\n\"甜面酱\": \"甜麵醬\",\n\"生力面\": \"生力麵\",\n\"生锈\": \"生鏽\",\n\"生发\": \"生髮\",\n\"田里\": \"田裡\",\n\"由馀\": \"由余\",\n\"男佣\": \"男佣\",\n\"男用表\": \"男用錶\",\n\"留发\": \"留髮\",\n\"畚斗\": \"畚斗\",\n\"当着\": \"當著\",\n\"疏松\": \"疏鬆\",\n\"疲困\": \"疲睏\",\n\"病症\": \"病癥\",\n\"症候\": \"癥候\",\n\"症状\": \"癥狀\",\n\"症结\": \"癥結\",\n\"登台\": \"登臺\",\n\"发布\": \"發佈\",\n\"发着\": \"發著\",\n\"发面\": \"發麵\",\n\"发霉\": \"發黴\",\n\"白卷\": \"白卷\",\n\"白干儿\": \"白干兒\",\n\"白发\": \"白髮\",\n\"白面\": \"白麵\",\n\"百里\": \"百裡\",\n\"百只\": \"百隻\",\n\"皇后\": \"皇后\",\n\"皇历\": \"皇曆\",\n\"皓发\": \"皓髮\",\n\"皮里阳秋\": \"皮裏陽秋\",\n\"皮里春秋\": \"皮裡春秋\",\n\"皮制\": \"皮製\",\n\"皱折\": \"皺摺\",\n\"盒里\": \"盒裡\",\n\"监制\": \"監製\",\n\"盘里\": \"盤裡\",\n\"盘回\": \"盤迴\",\n\"直接参与\": \"直接參与\",\n\"直冲\": \"直衝\",\n\"相克\": \"相剋\",\n\"相干\": \"相干\",\n\"相冲\": \"相衝\",\n\"看台\": \"看臺\",\n\"眼帘\": \"眼帘\",\n\"眼眶里\": \"眼眶裡\",\n\"眼里\": \"眼裡\",\n\"困乏\": \"睏乏\",\n\"睡着了\": \"睡著了\",\n\"了如\": \"瞭如\",\n\"了望\": \"瞭望\",\n\"了然\": \"瞭然\",\n\"了若指掌\": \"瞭若指掌\",\n\"了解\": \"瞭解\",\n\"蒙住\": \"矇住\",\n\"蒙昧无知\": \"矇昧無知\",\n\"蒙混\": \"矇混\",\n\"蒙蒙\": \"矇矇\",\n\"蒙眬\": \"矇矓\",\n\"蒙蔽\": \"矇蔽\",\n\"蒙骗\": \"矇騙\",\n\"短发\": \"短髮\",\n\"石英表\": \"石英錶\",\n\"研制\": \"研製\",\n\"砰当\": \"砰噹\",\n\"砲台\": \"砲臺\",\n\"朱唇皓齿\": \"硃唇皓齒\",\n\"朱批\": \"硃批\",\n\"朱砂\": \"硃砂\",\n\"朱笔\": \"硃筆\",\n\"朱红色\": \"硃紅色\",\n\"朱色\": \"硃色\",\n\"硬干\": \"硬幹\",\n\"砚台\": \"硯臺\",\n\"碑志\": \"碑誌\",\n\"磁制\": \"磁製\",\n\"磨制\": \"磨製\",\n\"示复\": \"示覆\",\n\"社里\": \"社裡\",\n\"神采\": \"神采\",\n\"御侮\": \"禦侮\",\n\"御寇\": \"禦寇\",\n\"御寒\": \"禦寒\",\n\"御敌\": \"禦敵\",\n\"秃发\": \"禿髮\",\n\"秀发\": \"秀髮\",\n\"私下里\": \"私下裡\",\n\"秋天里\": \"秋天裡\",\n\"秋裤\": \"秋褲\",\n\"秒表\": \"秒錶\",\n\"稀松\": \"稀鬆\",\n\"禀复\": \"稟覆\",\n\"稻谷\": \"稻穀\",\n\"稽征\": \"稽征\",\n\"谷仓\": \"穀倉\",\n\"谷场\": \"穀場\",\n\"谷子\": \"穀子\",\n\"谷壳\": \"穀殼\",\n\"谷物\": \"穀物\",\n\"谷皮\": \"穀皮\",\n\"谷神\": \"穀神\",\n\"谷粒\": \"穀粒\",\n\"谷舱\": \"穀艙\",\n\"谷苗\": \"穀苗\",\n\"谷草\": \"穀草\",\n\"谷贱伤农\": \"穀賤傷農\",\n\"谷道\": \"穀道\",\n\"谷雨\": \"穀雨\",\n\"谷类\": \"穀類\",\n\"积极参与\": \"積极參与\",\n\"积极参加\": \"積极參加\",\n\"空荡\": \"空蕩\",\n\"窗帘\": \"窗帘\",\n\"窗明几净\": \"窗明几淨\",\n\"窗台\": \"窗檯\",\n\"窗台\": \"窗臺\",\n\"窝里\": \"窩裡\",\n\"窝阔台\": \"窩闊臺\",\n\"穷追不舍\": \"窮追不捨\",\n\"笆斗\": \"笆斗\",\n\"笑里藏刀\": \"笑裡藏刀\",\n\"第一卷\": \"第一卷\",\n\"筋斗\": \"筋斗\",\n\"答卷\": \"答卷\",\n\"答复\": \"答複\",\n\"答复\": \"答覆\",\n\"筵几\": \"筵几\",\n\"箕斗\": \"箕斗\",\n\"签着\": \"簽著\",\n\"吁求\": \"籲求\",\n\"吁请\": \"籲請\",\n\"粗制\": \"粗製\",\n\"粗卤\": \"粗鹵\",\n\"精干\": \"精幹\",\n\"精明强干\": \"精明強幹\",\n\"精致\": \"精緻\",\n\"精制\": \"精製\",\n\"精辟\": \"精辟\",\n\"精采\": \"精采\",\n\"糊里糊涂\": \"糊裡糊塗\",\n\"团子\": \"糰子\",\n\"系着\": \"系著\",\n\"纪历\": \"紀曆\",\n\"红发\": \"紅髮\",\n\"红霉素\": \"紅黴素\",\n\"纡回\": \"紆迴\",\n\"纳采\": \"納采\",\n\"素食面\": \"素食麵\",\n\"素面\": \"素麵\",\n\"紫微斗数\": \"紫微斗數\",\n\"细致\": \"細緻\",\n\"组里\": \"組裡\",\n\"结发\": \"結髮\",\n\"绝对参照\": \"絕對參照\",\n\"丝来线去\": \"絲來線去\",\n\"丝布\": \"絲布\",\n\"丝板\": \"絲板\",\n\"丝瓜布\": \"絲瓜布\",\n\"丝绒布\": \"絲絨布\",\n\"丝线\": \"絲線\",\n\"丝织厂\": \"絲織廠\",\n\"丝虫\": \"絲蟲\",\n\"綑吊\": \"綑吊\",\n\"经卷\": \"經卷\",\n\"绿霉素\": \"綠黴素\",\n\"维系\": \"維繫\",\n\"绾发\": \"綰髮\",\n\"网里\": \"網裡\",\n\"紧绷\": \"緊繃\",\n\"紧绷着\": \"緊繃著\",\n\"紧追不舍\": \"緊追不捨\",\n\"编制\": \"編製\",\n\"编发\": \"編髮\",\n\"缓冲\": \"緩衝\",\n\"致密\": \"緻密\",\n\"萦回\": \"縈迴\",\n\"县里\": \"縣裡\",\n\"县志\": \"縣誌\",\n\"缝里\": \"縫裡\",\n\"缝制\": \"縫製\",\n\"纤夫\": \"縴夫\",\n\"繁复\": \"繁複\",\n\"绷住\": \"繃住\",\n\"绷子\": \"繃子\",\n\"绷带\": \"繃帶\",\n\"绷紧\": \"繃緊\",\n\"绷脸\": \"繃臉\",\n\"绷着\": \"繃著\",\n\"绷着脸\": \"繃著臉\",\n\"绷着脸儿\": \"繃著臉兒\",\n\"绷开\": \"繃開\",\n\"绘制\": \"繪製\",\n\"系上\": \"繫上\",\n\"系到\": \"繫到\",\n\"系囚\": \"繫囚\",\n\"系心\": \"繫心\",\n\"系念\": \"繫念\",\n\"系怀\": \"繫懷\",\n\"系数\": \"繫數\",\n\"系于\": \"繫於\",\n\"系系\": \"繫系\",\n\"系紧\": \"繫緊\",\n\"系绳\": \"繫繩\",\n\"系着\": \"繫著\",\n\"系辞\": \"繫辭\",\n\"缴卷\": \"繳卷\",\n\"累囚\": \"纍囚\",\n\"累累\": \"纍纍\",\n\"坛子\": \"罈子\",\n\"坛坛罐罐\": \"罈罈罐罐\",\n\"骂着\": \"罵著\",\n\"美制\": \"美製\",\n\"美发\": \"美髮\",\n\"翻来复去\": \"翻來覆去\",\n\"翻天复地\": \"翻天覆地\",\n\"翻复\": \"翻覆\",\n\"翻云复雨\": \"翻雲覆雨\",\n\"老么\": \"老么\",\n\"老板\": \"老闆\",\n\"考卷\": \"考卷\",\n\"耕获\": \"耕穫\",\n\"聊斋志异\": \"聊齋誌異\",\n\"联系\": \"聯係\",\n\"联系\": \"聯繫\",\n\"肉丝面\": \"肉絲麵\",\n\"肉羹面\": \"肉羹麵\",\n\"肉松\": \"肉鬆\",\n\"肢体\": \"肢体\",\n\"背向着\": \"背向著\",\n\"背地里\": \"背地裡\",\n\"胡里胡涂\": \"胡裡胡塗\",\n\"能干\": \"能幹\",\n\"脉冲\": \"脈衝\",\n\"脱发\": \"脫髮\",\n\"腊味\": \"腊味\",\n\"腊笔\": \"腊筆\",\n\"腊肉\": \"腊肉\",\n\"脑子里\": \"腦子裡\",\n\"腰里\": \"腰裡\",\n\"胶卷\": \"膠卷\",\n\"自制\": \"自製\",\n\"自觉自愿\": \"自覺自愿\",\n\"台上\": \"臺上\",\n\"台下\": \"臺下\",\n\"台中\": \"臺中\",\n\"台北\": \"臺北\",\n\"台南\": \"臺南\",\n\"台地\": \"臺地\",\n\"台塑\": \"臺塑\",\n\"台大\": \"臺大\",\n\"台币\": \"臺幣\",\n\"台座\": \"臺座\",\n\"台东\": \"臺東\",\n\"台柱\": \"臺柱\",\n\"台榭\": \"臺榭\",\n\"台汽\": \"臺汽\",\n\"台海\": \"臺海\",\n\"台澎金马\": \"臺澎金馬\",\n\"台湾\": \"臺灣\",\n\"台灯\": \"臺燈\",\n\"台球\": \"臺球\",\n\"台省\": \"臺省\",\n\"台端\": \"臺端\",\n\"台糖\": \"臺糖\",\n\"台肥\": \"臺肥\",\n\"台航\": \"臺航\",\n\"台视\": \"臺視\",\n\"台词\": \"臺詞\",\n\"台车\": \"臺車\",\n\"台铁\": \"臺鐵\",\n\"台阶\": \"臺階\",\n\"台电\": \"臺電\",\n\"台面\": \"臺面\",\n\"舂谷\": \"舂穀\",\n\"兴致\": \"興緻\",\n\"兴高采烈\": \"興高采烈\",\n\"旧历\": \"舊曆\",\n\"舒卷\": \"舒卷\",\n\"舞台\": \"舞臺\",\n\"航海历\": \"航海曆\",\n\"船只\": \"船隻\",\n\"舰只\": \"艦隻\",\n\"芬郁\": \"芬郁\",\n\"花卷\": \"花卷\",\n\"花盆里\": \"花盆裡\",\n\"花采\": \"花采\",\n\"苑里\": \"苑裡\",\n\"若干\": \"若干\",\n\"苦干\": \"苦幹\",\n\"苦里\": \"苦裏\",\n\"苦卤\": \"苦鹵\",\n\"范仲淹\": \"范仲淹\",\n\"范蠡\": \"范蠡\",\n\"范阳\": \"范陽\",\n\"茅台\": \"茅臺\",\n\"茶几\": \"茶几\",\n\"草丛里\": \"草叢裡\",\n\"庄里\": \"莊裡\",\n\"茎干\": \"莖幹\",\n\"莽荡\": \"莽蕩\",\n\"菌丝体\": \"菌絲体\",\n\"菌丝体\": \"菌絲體\",\n\"华里\": \"華裡\",\n\"华发\": \"華髮\",\n\"万卷\": \"萬卷\",\n\"万历\": \"萬曆\",\n\"万只\": \"萬隻\",\n\"落发\": \"落髮\",\n\"着儿\": \"著兒\",\n\"着书立说\": \"著書立說\",\n\"着色软体\": \"著色軟體\",\n\"着重指出\": \"著重指出\",\n\"着录\": \"著錄\",\n\"着录规则\": \"著錄規則\",\n\"蓄发\": \"蓄髮\",\n\"蓄须\": \"蓄鬚\",\n\"蓬发\": \"蓬髮\",\n\"蓬松\": \"蓬鬆\",\n\"莲台\": \"蓮臺\",\n\"荡来荡去\": \"蕩來蕩去\",\n\"荡女\": \"蕩女\",\n\"荡妇\": \"蕩婦\",\n\"荡寇\": \"蕩寇\",\n\"荡平\": \"蕩平\",\n\"荡涤\": \"蕩滌\",\n\"荡漾\": \"蕩漾\",\n\"荡然\": \"蕩然\",\n\"荡舟\": \"蕩舟\",\n\"荡船\": \"蕩船\",\n\"荡荡\": \"蕩蕩\",\n\"薑丝\": \"薑絲\",\n\"薙发\": \"薙髮\",\n\"借以\": \"藉以\",\n\"借口\": \"藉口\",\n\"借故\": \"藉故\",\n\"借机\": \"藉機\",\n\"借此\": \"藉此\",\n\"借由\": \"藉由\",\n\"借端\": \"藉端\",\n\"借着\": \"藉著\",\n\"借借\": \"藉藉\",\n\"借词\": \"藉詞\",\n\"借资\": \"藉資\",\n\"借酒浇愁\": \"藉酒澆愁\",\n\"藤制\": \"藤製\",\n\"蕴含着\": \"蘊含著\",\n\"蕴涵着\": \"蘊涵著\",\n\"蕴借\": \"蘊藉\",\n\"萝卜\": \"蘿蔔\",\n\"虎须\": \"虎鬚\",\n\"号志\": \"號誌\",\n\"蜂后\": \"蜂后\",\n\"蛮干\": \"蠻幹\",\n\"行事历\": \"行事曆\",\n\"胡同\": \"衚衕\",\n\"冲上\": \"衝上\",\n\"冲下\": \"衝下\",\n\"冲来\": \"衝來\",\n\"冲倒\": \"衝倒\",\n\"冲出\": \"衝出\",\n\"冲到\": \"衝到\",\n\"冲刺\": \"衝刺\",\n\"冲克\": \"衝剋\",\n\"冲力\": \"衝力\",\n\"冲劲\": \"衝勁\",\n\"冲动\": \"衝動\",\n\"冲去\": \"衝去\",\n\"冲口\": \"衝口\",\n\"冲垮\": \"衝垮\",\n\"冲堂\": \"衝堂\",\n\"冲压\": \"衝壓\",\n\"冲天\": \"衝天\",\n\"冲掉\": \"衝掉\",\n\"冲撞\": \"衝撞\",\n\"冲击\": \"衝擊\",\n\"冲散\": \"衝散\",\n\"冲决\": \"衝決\",\n\"冲浪\": \"衝浪\",\n\"冲激\": \"衝激\",\n\"冲破\": \"衝破\",\n\"冲程\": \"衝程\",\n\"冲突\": \"衝突\",\n\"冲线\": \"衝線\",\n\"冲着\": \"衝著\",\n\"冲冲\": \"衝衝\",\n\"冲要\": \"衝要\",\n\"冲起\": \"衝起\",\n\"冲进\": \"衝進\",\n\"冲过\": \"衝過\",\n\"冲锋\": \"衝鋒\",\n\"表里\": \"表裡\",\n\"袖里\": \"袖裡\",\n\"被里\": \"被裡\",\n\"被复\": \"被複\",\n\"被复\": \"被覆\",\n\"被复着\": \"被覆著\",\n\"被发\": \"被髮\",\n\"裁并\": \"裁併\",\n\"裁制\": \"裁製\",\n\"里面\": \"裏面\",\n\"里人\": \"裡人\",\n\"里加\": \"裡加\",\n\"里外\": \"裡外\",\n\"里子\": \"裡子\",\n\"里屋\": \"裡屋\",\n\"里层\": \"裡層\",\n\"里布\": \"裡布\",\n\"里带\": \"裡帶\",\n\"里弦\": \"裡弦\",\n\"里应外合\": \"裡應外合\",\n\"里拉\": \"裡拉\",\n\"里斯\": \"裡斯\",\n\"里海\": \"裡海\",\n\"里脊\": \"裡脊\",\n\"里衣\": \"裡衣\",\n\"里里\": \"裡裡\",\n\"里通外国\": \"裡通外國\",\n\"里通外敌\": \"裡通外敵\",\n\"里边\": \"裡邊\",\n\"里间\": \"裡間\",\n\"里面\": \"裡面\",\n\"里头\": \"裡頭\",\n\"制件\": \"製件\",\n\"制作\": \"製作\",\n\"制做\": \"製做\",\n\"制备\": \"製備\",\n\"制冰\": \"製冰\",\n\"制冷\": \"製冷\",\n\"制剂\": \"製劑\",\n\"制品\": \"製品\",\n\"制图\": \"製圖\",\n\"制成\": \"製成\",\n\"制法\": \"製法\",\n\"制为\": \"製為\",\n\"制片\": \"製片\",\n\"制版\": \"製版\",\n\"制程\": \"製程\",\n\"制糖\": \"製糖\",\n\"制纸\": \"製紙\",\n\"制药\": \"製藥\",\n\"制表\": \"製表\",\n\"制裁\": \"製裁\",\n\"制造\": \"製造\",\n\"制革\": \"製革\",\n\"制鞋\": \"製鞋\",\n\"制盐\": \"製鹽\",\n\"复仞年如\": \"複仞年如\",\n\"复以百万\": \"複以百萬\",\n\"复位\": \"複位\",\n\"复信\": \"複信\",\n\"复分数\": \"複分數\",\n\"复列\": \"複列\",\n\"复利\": \"複利\",\n\"复印\": \"複印\",\n\"复原\": \"複原\",\n\"复句\": \"複句\",\n\"复合\": \"複合\",\n\"复名\": \"複名\",\n\"复员\": \"複員\",\n\"复壁\": \"複壁\",\n\"复壮\": \"複壯\",\n\"复姓\": \"複姓\",\n\"复字键\": \"複字鍵\",\n\"复审\": \"複審\",\n\"复写\": \"複寫\",\n\"复式\": \"複式\",\n\"复复\": \"複復\",\n\"复数\": \"複數\",\n\"复本\": \"複本\",\n\"复查\": \"複查\",\n\"复核\": \"複核\",\n\"复检\": \"複檢\",\n\"复次\": \"複次\",\n\"复比\": \"複比\",\n\"复决\": \"複決\",\n\"复活\": \"複活\",\n\"复测\": \"複測\",\n\"复亩珍\": \"複畝珍\",\n\"复发\": \"複發\",\n\"复目\": \"複目\",\n\"复眼\": \"複眼\",\n\"复种\": \"複種\",\n\"复线\": \"複線\",\n\"复习\": \"複習\",\n\"复兴社\": \"複興社\",\n\"复旧\": \"複舊\",\n\"复色\": \"複色\",\n\"复叶\": \"複葉\",\n\"复盖\": \"複蓋\",\n\"复苏\": \"複蘇\",\n\"复制\": \"複製\",\n\"复诊\": \"複診\",\n\"复词\": \"複詞\",\n\"复试\": \"複試\",\n\"复课\": \"複課\",\n\"复议\": \"複議\",\n\"复变函数\": \"複變函數\",\n\"复赛\": \"複賽\",\n\"复述\": \"複述\",\n\"复选\": \"複選\",\n\"复钱\": \"複錢\",\n\"复杂\": \"複雜\",\n\"复电\": \"複電\",\n\"复音\": \"複音\",\n\"复韵\": \"複韻\",\n\"衬里\": \"襯裡\",\n\"西岳\": \"西嶽\",\n\"西征\": \"西征\",\n\"西历\": \"西曆\",\n\"要冲\": \"要衝\",\n\"要么\": \"要麼\",\n\"复上\": \"覆上\",\n\"复亡\": \"覆亡\",\n\"复住\": \"覆住\",\n\"复信\": \"覆信\",\n\"复命\": \"覆命\",\n\"复在\": \"覆在\",\n\"复审\": \"覆審\",\n\"复巢之下\": \"覆巢之下\",\n\"复成\": \"覆成\",\n\"复败\": \"覆敗\",\n\"复文\": \"覆文\",\n\"复校\": \"覆校\",\n\"复核\": \"覆核\",\n\"复水难收\": \"覆水難收\",\n\"复没\": \"覆沒\",\n\"复灭\": \"覆滅\",\n\"复盆\": \"覆盆\",\n\"复舟\": \"覆舟\",\n\"复着\": \"覆著\",\n\"复盖\": \"覆蓋\",\n\"复盖着\": \"覆蓋著\",\n\"复试\": \"覆試\",\n\"复议\": \"覆議\",\n\"复车\": \"覆車\",\n\"复载\": \"覆載\",\n\"复辙\": \"覆轍\",\n\"复电\": \"覆電\",\n\"见复\": \"見覆\",\n\"亲征\": \"親征\",\n\"观众台\": \"觀眾臺\",\n\"观台\": \"觀臺\",\n\"观象台\": \"觀象臺\",\n\"角落里\": \"角落裡\",\n\"觔斗\": \"觔斗\",\n\"触须\": \"觸鬚\",\n\"订制\": \"訂製\",\n\"诉说着\": \"訴說著\",\n\"词汇\": \"詞彙\",\n\"试卷\": \"試卷\",\n\"诗卷\": \"詩卷\",\n\"话里有话\": \"話裡有話\",\n\"志哀\": \"誌哀\",\n\"志喜\": \"誌喜\",\n\"志庆\": \"誌慶\",\n\"语云\": \"語云\",\n\"语汇\": \"語彙\",\n\"诬蔑\": \"誣衊\",\n\"诵经台\": \"誦經臺\",\n\"说着\": \"說著\",\n\"课征\": \"課征\",\n\"调制\": \"調製\",\n\"调频台\": \"調頻臺\",\n\"请参阅\": \"請參閱\",\n\"讲台\": \"講臺\",\n\"谢绝参观\": \"謝絕參觀\",\n\"护发\": \"護髮\",\n\"雠隙\": \"讎隙\",\n\"豆腐干\": \"豆腐干\",\n\"竖着\": \"豎著\",\n\"丰富多采\": \"豐富多采\",\n\"丰滨\": \"豐濱\",\n\"丰滨乡\": \"豐濱鄉\",\n\"丰采\": \"豐采\",\n\"象征着\": \"象徵著\",\n\"贵干\": \"貴幹\",\n\"贾后\": \"賈后\",\n\"赈饥\": \"賑饑\",\n\"贤后\": \"賢后\",\n\"质朴\": \"質朴\",\n\"赌台\": \"賭檯\",\n\"购并\": \"購併\",\n\"赤松\": \"赤鬆\",\n\"起吊\": \"起吊\",\n\"起复\": \"起複\",\n\"赶制\": \"趕製\",\n\"跌荡\": \"跌蕩\",\n\"跟斗\": \"跟斗\",\n\"跳荡\": \"跳蕩\",\n\"跳表\": \"跳錶\",\n\"踬仆\": \"躓仆\",\n\"躯干\": \"軀幹\",\n\"车库里\": \"車庫裡\",\n\"车站里\": \"車站裡\",\n\"车里\": \"車裡\",\n\"轻松\": \"輕鬆\",\n\"轮回\": \"輪迴\",\n\"转台\": \"轉檯\",\n\"辛丑\": \"辛丑\",\n\"辟邪\": \"辟邪\",\n\"办伙\": \"辦伙\",\n\"办公台\": \"辦公檯\",\n\"辞汇\": \"辭彙\",\n\"农历\": \"農曆\",\n\"迂回\": \"迂迴\",\n\"近日里\": \"近日裡\",\n\"迥然回异\": \"迥然迴異\",\n\"回光返照\": \"迴光返照\",\n\"回向\": \"迴向\",\n\"回圈\": \"迴圈\",\n\"回廊\": \"迴廊\",\n\"回形夹\": \"迴形夾\",\n\"回文\": \"迴文\",\n\"回旋\": \"迴旋\",\n\"回流\": \"迴流\",\n\"回环\": \"迴環\",\n\"回荡\": \"迴盪\",\n\"回纹针\": \"迴紋針\",\n\"回绕\": \"迴繞\",\n\"回肠\": \"迴腸\",\n\"回荡\": \"迴蕩\",\n\"回诵\": \"迴誦\",\n\"回路\": \"迴路\",\n\"回转\": \"迴轉\",\n\"回递性\": \"迴遞性\",\n\"回避\": \"迴避\",\n\"回响\": \"迴響\",\n\"回风\": \"迴風\",\n\"回首\": \"迴首\",\n\"迷蒙\": \"迷濛\",\n\"退伙\": \"退伙\",\n\"这么着\": \"這么著\",\n\"这里\": \"這裏\",\n\"这里\": \"這裡\",\n\"这只\": \"這隻\",\n\"这么\": \"這麼\",\n\"这么着\": \"這麼著\",\n\"通心面\": \"通心麵\",\n\"速食面\": \"速食麵\",\n\"连系\": \"連繫\",\n\"连台好戏\": \"連臺好戲\",\n\"游荡\": \"遊蕩\",\n\"遍布\": \"遍佈\",\n\"递回\": \"遞迴\",\n\"远征\": \"遠征\",\n\"适才\": \"適纔\",\n\"遮复\": \"遮覆\",\n\"还冲\": \"還衝\",\n\"邋里邋遢\": \"邋裡邋遢\",\n\"那里\": \"那裡\",\n\"那只\": \"那隻\",\n\"那么\": \"那麼\",\n\"那么着\": \"那麼著\",\n\"邪辟\": \"邪辟\",\n\"郁烈\": \"郁烈\",\n\"郁穆\": \"郁穆\",\n\"郁郁\": \"郁郁\",\n\"郁闭\": \"郁閉\",\n\"郁馥\": \"郁馥\",\n\"乡愿\": \"鄉愿\",\n\"乡里\": \"鄉裡\",\n\"邻里\": \"鄰裡\",\n\"配合着\": \"配合著\",\n\"配制\": \"配製\",\n\"酒杯\": \"酒盃\",\n\"酒坛\": \"酒罈\",\n\"酥松\": \"酥鬆\",\n\"醋坛\": \"醋罈\",\n\"酝借\": \"醞藉\",\n\"酝酿着\": \"醞釀著\",\n\"医药\": \"醫葯\",\n\"醲郁\": \"醲郁\",\n\"酿制\": \"釀製\",\n\"采地\": \"采地\",\n\"采女\": \"采女\",\n\"采声\": \"采聲\",\n\"采色\": \"采色\",\n\"采邑\": \"采邑\",\n\"里程表\": \"里程錶\",\n\"重折\": \"重摺\",\n\"重复\": \"重複\",\n\"重复\": \"重覆\",\n\"重锤\": \"重鎚\",\n\"野台戏\": \"野臺戲\",\n\"金斗\": \"金斗\",\n\"金表\": \"金錶\",\n\"金发\": \"金髮\",\n\"金霉素\": \"金黴素\",\n\"钉锤\": \"釘鎚\",\n\"银朱\": \"銀硃\",\n\"银发\": \"銀髮\",\n\"铜制\": \"銅製\",\n\"铝制\": \"鋁製\",\n\"钢制\": \"鋼製\",\n\"录着\": \"錄著\",\n\"录制\": \"錄製\",\n\"表带\": \"錶帶\",\n\"表店\": \"錶店\",\n\"表厂\": \"錶廠\",\n\"表壳\": \"錶殼\",\n\"表链\": \"錶鏈\",\n\"表面\": \"錶面\",\n\"锅台\": \"鍋臺\",\n\"锻鍊出\": \"鍛鍊出\",\n\"锻鍊身体\": \"鍛鍊身体\",\n\"锲而不舍\": \"鍥而不捨\",\n\"锤儿\": \"鎚兒\",\n\"锤子\": \"鎚子\",\n\"锤头\": \"鎚頭\",\n\"链霉素\": \"鏈黴素\",\n\"镜台\": \"鏡臺\",\n\"锈病\": \"鏽病\",\n\"锈菌\": \"鏽菌\",\n\"锈蚀\": \"鏽蝕\",\n\"钟表\": \"鐘錶\",\n\"铁锤\": \"鐵鎚\",\n\"铁锈\": \"鐵鏽\",\n\"长征\": \"長征\",\n\"长发\": \"長髮\",\n\"长须鲸\": \"長鬚鯨\",\n\"门帘\": \"門帘\",\n\"门斗\": \"門斗\",\n\"门里\": \"門裡\",\n\"开伙\": \"開伙\",\n\"开卷\": \"開卷\",\n\"开诚布公\": \"開誠佈公\",\n\"开采\": \"開采\",\n\"閒情逸致\": \"閒情逸緻\",\n\"閒荡\": \"閒蕩\",\n\"间不容发\": \"間不容髮\",\n\"闵采尔\": \"閔采爾\",\n\"阅卷\": \"閱卷\",\n\"阑干\": \"闌干\",\n\"关系\": \"關係\",\n\"关系着\": \"關係著\",\n\"防御\": \"防禦\",\n\"防锈\": \"防鏽\",\n\"防台\": \"防颱\",\n\"阿斗\": \"阿斗\",\n\"阿里\": \"阿裡\",\n\"除旧布新\": \"除舊佈新\",\n\"阴干\": \"陰干\",\n\"阴历\": \"陰曆\",\n\"阴郁\": \"陰郁\",\n\"陆征祥\": \"陸征祥\",\n\"阳春面\": \"陽春麵\",\n\"阳历\": \"陽曆\",\n\"阳台\": \"陽臺\",\n\"只字\": \"隻字\",\n\"只影\": \"隻影\",\n\"只手遮天\": \"隻手遮天\",\n\"只眼\": \"隻眼\",\n\"只言片语\": \"隻言片語\",\n\"只身\": \"隻身\",\n\"雅致\": \"雅緻\",\n\"雇佣\": \"雇佣\",\n\"双折\": \"雙摺\",\n\"杂志\": \"雜誌\",\n\"鸡丝\": \"雞絲\",\n\"鸡丝面\": \"雞絲麵\",\n\"鸡腿面\": \"雞腿麵\",\n\"鸡只\": \"雞隻\",\n\"难舍\": \"難捨\",\n\"雪里\": \"雪裡\",\n\"云须\": \"雲鬚\",\n\"电子表\": \"電子錶\",\n\"电台\": \"電臺\",\n\"电冲\": \"電衝\",\n\"电复\": \"電覆\",\n\"电视台\": \"電視臺\",\n\"电表\": \"電錶\",\n\"震荡\": \"震蕩\",\n\"雾里\": \"霧裡\",\n\"露台\": \"露臺\",\n\"灵台\": \"靈臺\",\n\"青瓦台\": \"青瓦臺\",\n\"青霉\": \"青黴\",\n\"面朝着\": \"面朝著\",\n\"面临着\": \"面臨著\",\n\"鞋里\": \"鞋裡\",\n\"鞣制\": \"鞣製\",\n\"秋千\": \"鞦韆\",\n\"鞭辟入里\": \"鞭辟入裡\",\n\"韩国制\": \"韓國製\",\n\"韩制\": \"韓製\",\n\"预制\": \"預製\",\n\"颁布\": \"頒佈\",\n\"头里\": \"頭裡\",\n\"头发\": \"頭髮\",\n\"颊须\": \"頰鬚\",\n\"颠仆\": \"顛仆\",\n\"颠复\": \"顛複\",\n\"颠复\": \"顛覆\",\n\"显着标志\": \"顯著標志\",\n\"风土志\": \"風土誌\",\n\"风斗\": \"風斗\",\n\"风物志\": \"風物誌\",\n\"风里\": \"風裡\",\n\"风采\": \"風采\",\n\"台风\": \"颱風\",\n\"刮了\": \"颳了\",\n\"刮倒\": \"颳倒\",\n\"刮去\": \"颳去\",\n\"刮得\": \"颳得\",\n\"刮着\": \"颳著\",\n\"刮走\": \"颳走\",\n\"刮起\": \"颳起\",\n\"刮风\": \"颳風\",\n\"飘荡\": \"飄蕩\",\n\"饭团\": \"飯糰\",\n\"饼干\": \"餅干\",\n\"馄饨面\": \"餛飩麵\",\n\"饥不择食\": \"饑不擇食\",\n\"饥寒\": \"饑寒\",\n\"饥民\": \"饑民\",\n\"饥渴\": \"饑渴\",\n\"饥溺\": \"饑溺\",\n\"饥荒\": \"饑荒\",\n\"饥饱\": \"饑飽\",\n\"饥饿\": \"饑餓\",\n\"饥馑\": \"饑饉\",\n\"首当其冲\": \"首當其衝\",\n\"香郁\": \"香郁\",\n\"馥郁\": \"馥郁\",\n\"马里\": \"馬裡\",\n\"马表\": \"馬錶\",\n\"骀荡\": \"駘蕩\",\n\"腾冲\": \"騰衝\",\n\"骨子里\": \"骨子裡\",\n\"骨干\": \"骨幹\",\n\"骨灰坛\": \"骨灰罈\",\n\"肮脏\": \"骯髒\",\n\"脏乱\": \"髒亂\",\n\"脏兮兮\": \"髒兮兮\",\n\"脏字\": \"髒字\",\n\"脏得\": \"髒得\",\n\"脏东西\": \"髒東西\",\n\"脏水\": \"髒水\",\n\"脏的\": \"髒的\",\n\"脏话\": \"髒話\",\n\"脏钱\": \"髒錢\",\n\"高干\": \"高幹\",\n\"高台\": \"高臺\",\n\"髭须\": \"髭鬚\",\n\"发型\": \"髮型\",\n\"发夹\": \"髮夾\",\n\"发妻\": \"髮妻\",\n\"发姐\": \"髮姐\",\n\"发带\": \"髮帶\",\n\"发廊\": \"髮廊\",\n\"发式\": \"髮式\",\n\"发指\": \"髮指\",\n\"发捲\": \"髮捲\",\n\"发根\": \"髮根\",\n\"发毛\": \"髮毛\",\n\"发油\": \"髮油\",\n\"发状\": \"髮狀\",\n\"发短心长\": \"髮短心長\",\n\"发端\": \"髮端\",\n\"发结\": \"髮結\",\n\"发丝\": \"髮絲\",\n\"发网\": \"髮網\",\n\"发肤\": \"髮膚\",\n\"发胶\": \"髮膠\",\n\"发菜\": \"髮菜\",\n\"发蜡\": \"髮蠟\",\n\"发辫\": \"髮辮\",\n\"发针\": \"髮針\",\n\"发长\": \"髮長\",\n\"发际\": \"髮際\",\n\"发霜\": \"髮霜\",\n\"发髻\": \"髮髻\",\n\"发鬓\": \"髮鬢\",\n\"鬅松\": \"鬅鬆\",\n\"松了\": \"鬆了\",\n\"松些\": \"鬆些\",\n\"松劲\": \"鬆勁\",\n\"松动\": \"鬆動\",\n\"松口\": \"鬆口\",\n\"松土\": \"鬆土\",\n\"松弛\": \"鬆弛\",\n\"松快\": \"鬆快\",\n\"松懈\": \"鬆懈\",\n\"松手\": \"鬆手\",\n\"松散\": \"鬆散\",\n\"松林\": \"鬆林\",\n\"松柔\": \"鬆柔\",\n\"松毛虫\": \"鬆毛蟲\",\n\"松浮\": \"鬆浮\",\n\"松涛\": \"鬆濤\",\n\"松科\": \"鬆科\",\n\"松节油\": \"鬆節油\",\n\"松绑\": \"鬆綁\",\n\"松紧\": \"鬆緊\",\n\"松缓\": \"鬆緩\",\n\"松脆\": \"鬆脆\",\n\"松脱\": \"鬆脫\",\n\"松起\": \"鬆起\",\n\"松软\": \"鬆軟\",\n\"松通\": \"鬆通\",\n\"松开\": \"鬆開\",\n\"松饼\": \"鬆餅\",\n\"松松\": \"鬆鬆\",\n\"鬈发\": \"鬈髮\",\n\"胡子\": \"鬍子\",\n\"胡梢\": \"鬍梢\",\n\"胡渣\": \"鬍渣\",\n\"胡髭\": \"鬍髭\",\n\"胡须\": \"鬍鬚\",\n\"须根\": \"鬚根\",\n\"须毛\": \"鬚毛\",\n\"须生\": \"鬚生\",\n\"须眉\": \"鬚眉\",\n\"须发\": \"鬚髮\",\n\"须须\": \"鬚鬚\",\n\"鬓发\": \"鬢髮\",\n\"斗着\": \"鬥著\",\n\"闹着玩儿\": \"鬧著玩儿\",\n\"闹着玩儿\": \"鬧著玩兒\",\n\"郁郁\": \"鬱郁\",\n\"鱼松\": \"魚鬆\",\n\"鲸须\": \"鯨鬚\",\n\"鲇鱼\": \"鯰魚\",\n\"鹤发\": \"鶴髮\",\n\"卤化\": \"鹵化\",\n\"卤味\": \"鹵味\",\n\"卤族\": \"鹵族\",\n\"卤水\": \"鹵水\",\n\"卤汁\": \"鹵汁\",\n\"卤簿\": \"鹵簿\",\n\"卤素\": \"鹵素\",\n\"卤莽\": \"鹵莽\",\n\"卤钝\": \"鹵鈍\",\n\"咸味\": \"鹹味\",\n\"咸土\": \"鹹土\",\n\"咸度\": \"鹹度\",\n\"咸得\": \"鹹得\",\n\"咸水\": \"鹹水\",\n\"咸海\": \"鹹海\",\n\"咸淡\": \"鹹淡\",\n\"咸湖\": \"鹹湖\",\n\"咸汤\": \"鹹湯\",\n\"咸的\": \"鹹的\",\n\"咸肉\": \"鹹肉\",\n\"咸菜\": \"鹹菜\",\n\"咸蛋\": \"鹹蛋\",\n\"咸猪肉\": \"鹹豬肉\",\n\"咸类\": \"鹹類\",\n\"咸鱼\": \"鹹魚\",\n\"咸鸭蛋\": \"鹹鴨蛋\",\n\"咸卤\": \"鹹鹵\",\n\"咸咸\": \"鹹鹹\",\n\"盐卤\": \"鹽鹵\",\n\"面价\": \"麵價\",\n\"面包\": \"麵包\",\n\"面团\": \"麵團\",\n\"面店\": \"麵店\",\n\"面厂\": \"麵廠\",\n\"面杖\": \"麵杖\",\n\"面条\": \"麵條\",\n\"面灰\": \"麵灰\",\n\"面皮\": \"麵皮\",\n\"面筋\": \"麵筋\",\n\"面粉\": \"麵粉\",\n\"面糊\": \"麵糊\",\n\"面线\": \"麵線\",\n\"面茶\": \"麵茶\",\n\"面食\": \"麵食\",\n\"面饺\": \"麵餃\",\n\"面饼\": \"麵餅\",\n\"麻酱面\": \"麻醬麵\",\n\"黄历\": \"黃曆\",\n\"黄发垂髫\": \"黃髮垂髫\",\n\"黑发\": \"黑髮\",\n\"黑松\": \"黑鬆\",\n\"霉毒\": \"黴毒\",\n\"霉菌\": \"黴菌\",\n\"鼓里\": \"鼓裡\",\n\"冬冬\": \"鼕鼕\",\n\"龙卷\": \"龍卷\",\n\"龙须\": \"龍鬚\",\n}\n\nzh2Hans = {\n'顯著': '显著',\n'土著': '土著',\n'印表機': '打印机',\n'說明檔案': '帮助文件',\n\"瀋\": \"沈\",\n\"畫\": \"划\",\n\"鍾\": \"钟\",\n\"靦\": \"腼\",\n\"餘\": \"余\",\n\"鯰\": \"鲇\",\n\"鹼\": \"碱\",\n\"㠏\": \"㟆\",\n\"𡞵\": \"㛟\",\n\"万\": \"万\",\n\"与\": \"与\",\n\"丑\": \"丑\",\n\"丟\": \"丢\",\n\"並\": \"并\",\n\"丰\": \"丰\",\n\"么\": \"么\",\n\"乾\": \"干\",\n\"乾坤\": \"乾坤\",\n\"乾隆\": \"乾隆\",\n\"亂\": \"乱\",\n\"云\": \"云\",\n\"亙\": \"亘\",\n\"亞\": \"亚\",\n\"仆\": \"仆\",\n\"价\": \"价\",\n\"伙\": \"伙\",\n\"佇\": \"伫\",\n\"佈\": \"布\",\n\"体\": \"体\",\n\"余\": \"余\",\n\"余\": \"馀\",\n\"佣\": \"佣\",\n\"併\": \"并\",\n\"來\": \"来\",\n\"侖\": \"仑\",\n\"侶\": \"侣\",\n\"俁\": \"俣\",\n\"係\": \"系\",\n\"俔\": \"伣\",\n\"俠\": \"侠\",\n\"倀\": \"伥\",\n\"倆\": \"俩\",\n\"倈\": \"俫\",\n\"倉\": \"仓\",\n\"個\": \"个\",\n\"們\": \"们\",\n\"倫\": \"伦\",\n\"偉\": \"伟\",\n\"側\": \"侧\",\n\"偵\": \"侦\",\n\"偽\": \"伪\",\n\"傑\": \"杰\",\n\"傖\": \"伧\",\n\"傘\": \"伞\",\n\"備\": \"备\",\n\"傢\": \"家\",\n\"傭\": \"佣\",\n\"傯\": \"偬\",\n\"傳\": \"传\",\n\"傴\": \"伛\",\n\"債\": \"债\",\n\"傷\": \"伤\",\n\"傾\": \"倾\",\n\"僂\": \"偻\",\n\"僅\": \"仅\",\n\"僉\": \"佥\",\n\"僑\": \"侨\",\n\"僕\": \"仆\",\n\"僞\": \"伪\",\n\"僥\": \"侥\",\n\"僨\": \"偾\",\n\"價\": \"价\",\n\"儀\": \"仪\",\n\"儂\": \"侬\",\n\"億\": \"亿\",\n\"儈\": \"侩\",\n\"儉\": \"俭\",\n\"儐\": \"傧\",\n\"儔\": \"俦\",\n\"儕\": \"侪\",\n\"儘\": \"尽\",\n\"償\": \"偿\",\n\"優\": \"优\",\n\"儲\": \"储\",\n\"儷\": \"俪\",\n\"儸\": \"㑩\",\n\"儺\": \"傩\",\n\"儻\": \"傥\",\n\"儼\": \"俨\",\n\"儿\": \"儿\",\n\"兇\": \"凶\",\n\"兌\": \"兑\",\n\"兒\": \"儿\",\n\"兗\": \"兖\",\n\"党\": \"党\",\n\"內\": \"内\",\n\"兩\": \"两\",\n\"冊\": \"册\",\n\"冪\": \"幂\",\n\"准\": \"准\",\n\"凈\": \"净\",\n\"凍\": \"冻\",\n\"凜\": \"凛\",\n\"几\": \"几\",\n\"凱\": \"凯\",\n\"划\": \"划\",\n\"別\": \"别\",\n\"刪\": \"删\",\n\"剄\": \"刭\",\n\"則\": \"则\",\n\"剋\": \"克\",\n\"剎\": \"刹\",\n\"剗\": \"刬\",\n\"剛\": \"刚\",\n\"剝\": \"剥\",\n\"剮\": \"剐\",\n\"剴\": \"剀\",\n\"創\": \"创\",\n\"劃\": \"划\",\n\"劇\": \"剧\",\n\"劉\": \"刘\",\n\"劊\": \"刽\",\n\"劌\": \"刿\",\n\"劍\": \"剑\",\n\"劏\": \"㓥\",\n\"劑\": \"剂\",\n\"劚\": \"㔉\",\n\"勁\": \"劲\",\n\"動\": \"动\",\n\"務\": \"务\",\n\"勛\": \"勋\",\n\"勝\": \"胜\",\n\"勞\": \"劳\",\n\"勢\": \"势\",\n\"勩\": \"勚\",\n\"勱\": \"劢\",\n\"勵\": \"励\",\n\"勸\": \"劝\",\n\"勻\": \"匀\",\n\"匭\": \"匦\",\n\"匯\": \"汇\",\n\"匱\": \"匮\",\n\"區\": \"区\",\n\"協\": \"协\",\n\"卷\": \"卷\",\n\"卻\": \"却\",\n\"厂\": \"厂\",\n\"厙\": \"厍\",\n\"厠\": \"厕\",\n\"厭\": \"厌\",\n\"厲\": \"厉\",\n\"厴\": \"厣\",\n\"參\": \"参\",\n\"叄\": \"叁\",\n\"叢\": \"丛\",\n\"台\": \"台\",\n\"叶\": \"叶\",\n\"吊\": \"吊\",\n\"后\": \"后\",\n\"吒\": \"咤\",\n\"吳\": \"吴\",\n\"吶\": \"呐\",\n\"呂\": \"吕\",\n\"獃\": \"呆\",\n\"咼\": \"呙\",\n\"員\": \"员\",\n\"唄\": \"呗\",\n\"唚\": \"吣\",\n\"問\": \"问\",\n\"啓\": \"启\",\n\"啞\": \"哑\",\n\"啟\": \"启\",\n\"啢\": \"唡\",\n\"喎\": \"㖞\",\n\"喚\": \"唤\",\n\"喪\": \"丧\",\n\"喬\": \"乔\",\n\"單\": \"单\",\n\"喲\": \"哟\",\n\"嗆\": \"呛\",\n\"嗇\": \"啬\",\n\"嗊\": \"唝\",\n\"嗎\": \"吗\",\n\"嗚\": \"呜\",\n\"嗩\": \"唢\",\n\"嗶\": \"哔\",\n\"嘆\": \"叹\",\n\"嘍\": \"喽\",\n\"嘔\": \"呕\",\n\"嘖\": \"啧\",\n\"嘗\": \"尝\",\n\"嘜\": \"唛\",\n\"嘩\": \"哗\",\n\"嘮\": \"唠\",\n\"嘯\": \"啸\",\n\"嘰\": \"叽\",\n\"嘵\": \"哓\",\n\"嘸\": \"呒\",\n\"嘽\": \"啴\",\n\"噁\": \"恶\",\n\"噓\": \"嘘\",\n\"噚\": \"㖊\",\n\"噝\": \"咝\",\n\"噠\": \"哒\",\n\"噥\": \"哝\",\n\"噦\": \"哕\",\n\"噯\": \"嗳\",\n\"噲\": \"哙\",\n\"噴\": \"喷\",\n\"噸\": \"吨\",\n\"噹\": \"当\",\n\"嚀\": \"咛\",\n\"嚇\": \"吓\",\n\"嚌\": \"哜\",\n\"嚕\": \"噜\",\n\"嚙\": \"啮\",\n\"嚥\": \"咽\",\n\"嚦\": \"呖\",\n\"嚨\": \"咙\",\n\"嚮\": \"向\",\n\"嚲\": \"亸\",\n\"嚳\": \"喾\",\n\"嚴\": \"严\",\n\"嚶\": \"嘤\",\n\"囀\": \"啭\",\n\"囁\": \"嗫\",\n\"囂\": \"嚣\",\n\"囅\": \"冁\",\n\"囈\": \"呓\",\n\"囌\": \"苏\",\n\"囑\": \"嘱\",\n\"囪\": \"囱\",\n\"圇\": \"囵\",\n\"國\": \"国\",\n\"圍\": \"围\",\n\"園\": \"园\",\n\"圓\": \"圆\",\n\"圖\": \"图\",\n\"團\": \"团\",\n\"坏\": \"坏\",\n\"垵\": \"埯\",\n\"埡\": \"垭\",\n\"埰\": \"采\",\n\"執\": \"执\",\n\"堅\": \"坚\",\n\"堊\": \"垩\",\n\"堖\": \"垴\",\n\"堝\": \"埚\",\n\"堯\": \"尧\",\n\"報\": \"报\",\n\"場\": \"场\",\n\"塊\": \"块\",\n\"塋\": \"茔\",\n\"塏\": \"垲\",\n\"塒\": \"埘\",\n\"塗\": \"涂\",\n\"塚\": \"冢\",\n\"塢\": \"坞\",\n\"塤\": \"埙\",\n\"塵\": \"尘\",\n\"塹\": \"堑\",\n\"墊\": \"垫\",\n\"墜\": \"坠\",\n\"墮\": \"堕\",\n\"墳\": \"坟\",\n\"墻\": \"墙\",\n\"墾\": \"垦\",\n\"壇\": \"坛\",\n\"壈\": \"𡒄\",\n\"壋\": \"垱\",\n\"壓\": \"压\",\n\"壘\": \"垒\",\n\"壙\": \"圹\",\n\"壚\": \"垆\",\n\"壞\": \"坏\",\n\"壟\": \"垄\",\n\"壠\": \"垅\",\n\"壢\": \"坜\",\n\"壩\": \"坝\",\n\"壯\": \"壮\",\n\"壺\": \"壶\",\n\"壼\": \"壸\",\n\"壽\": \"寿\",\n\"夠\": \"够\",\n\"夢\": \"梦\",\n\"夾\": \"夹\",\n\"奐\": \"奂\",\n\"奧\": \"奥\",\n\"奩\": \"奁\",\n\"奪\": \"夺\",\n\"奬\": \"奖\",\n\"奮\": \"奋\",\n\"奼\": \"姹\",\n\"妝\": \"妆\",\n\"姍\": \"姗\",\n\"姜\": \"姜\",\n\"姦\": \"奸\",\n\"娛\": \"娱\",\n\"婁\": \"娄\",\n\"婦\": \"妇\",\n\"婭\": \"娅\",\n\"媧\": \"娲\",\n\"媯\": \"妫\",\n\"媼\": \"媪\",\n\"媽\": \"妈\",\n\"嫗\": \"妪\",\n\"嫵\": \"妩\",\n\"嫻\": \"娴\",\n\"嫿\": \"婳\",\n\"嬀\": \"妫\",\n\"嬈\": \"娆\",\n\"嬋\": \"婵\",\n\"嬌\": \"娇\",\n\"嬙\": \"嫱\",\n\"嬡\": \"嫒\",\n\"嬤\": \"嬷\",\n\"嬪\": \"嫔\",\n\"嬰\": \"婴\",\n\"嬸\": \"婶\",\n\"孌\": \"娈\",\n\"孫\": \"孙\",\n\"學\": \"学\",\n\"孿\": \"孪\",\n\"宁\": \"宁\",\n\"宮\": \"宫\",\n\"寢\": \"寝\",\n\"實\": \"实\",\n\"寧\": \"宁\",\n\"審\": \"审\",\n\"寫\": \"写\",\n\"寬\": \"宽\",\n\"寵\": \"宠\",\n\"寶\": \"宝\",\n\"將\": \"将\",\n\"專\": \"专\",\n\"尋\": \"寻\",\n\"對\": \"对\",\n\"導\": \"导\",\n\"尷\": \"尴\",\n\"屆\": \"届\",\n\"屍\": \"尸\",\n\"屓\": \"屃\",\n\"屜\": \"屉\",\n\"屢\": \"屡\",\n\"層\": \"层\",\n\"屨\": \"屦\",\n\"屬\": \"属\",\n\"岡\": \"冈\",\n\"峴\": \"岘\",\n\"島\": \"岛\",\n\"峽\": \"峡\",\n\"崍\": \"崃\",\n\"崗\": \"岗\",\n\"崢\": \"峥\",\n\"崬\": \"岽\",\n\"嵐\": \"岚\",\n\"嶁\": \"嵝\",\n\"嶄\": \"崭\",\n\"嶇\": \"岖\",\n\"嶔\": \"嵚\",\n\"嶗\": \"崂\",\n\"嶠\": \"峤\",\n\"嶢\": \"峣\",\n\"嶧\": \"峄\",\n\"嶮\": \"崄\",\n\"嶴\": \"岙\",\n\"嶸\": \"嵘\",\n\"嶺\": \"岭\",\n\"嶼\": \"屿\",\n\"嶽\": \"岳\",\n\"巋\": \"岿\",\n\"巒\": \"峦\",\n\"巔\": \"巅\",\n\"巰\": \"巯\",\n\"帘\": \"帘\",\n\"帥\": \"帅\",\n\"師\": \"师\",\n\"帳\": \"帐\",\n\"帶\": \"带\",\n\"幀\": \"帧\",\n\"幃\": \"帏\",\n\"幗\": \"帼\",\n\"幘\": \"帻\",\n\"幟\": \"帜\",\n\"幣\": \"币\",\n\"幫\": \"帮\",\n\"幬\": \"帱\",\n\"幹\": \"干\",\n\"幺\": \"么\",\n\"幾\": \"几\",\n\"广\": \"广\",\n\"庫\": \"库\",\n\"廁\": \"厕\",\n\"廂\": \"厢\",\n\"廄\": \"厩\",\n\"廈\": \"厦\",\n\"廚\": \"厨\",\n\"廝\": \"厮\",\n\"廟\": \"庙\",\n\"廠\": \"厂\",\n\"廡\": \"庑\",\n\"廢\": \"废\",\n\"廣\": \"广\",\n\"廩\": \"廪\",\n\"廬\": \"庐\",\n\"廳\": \"厅\",\n\"弒\": \"弑\",\n\"弳\": \"弪\",\n\"張\": \"张\",\n\"強\": \"强\",\n\"彆\": \"别\",\n\"彈\": \"弹\",\n\"彌\": \"弥\",\n\"彎\": \"弯\",\n\"彙\": \"汇\",\n\"彞\": \"彝\",\n\"彥\": \"彦\",\n\"征\": \"征\",\n\"後\": \"后\",\n\"徑\": \"径\",\n\"從\": \"从\",\n\"徠\": \"徕\",\n\"復\": \"复\",\n\"徵\": \"征\",\n\"徹\": \"彻\",\n\"志\": \"志\",\n\"恆\": \"恒\",\n\"恥\": \"耻\",\n\"悅\": \"悦\",\n\"悞\": \"悮\",\n\"悵\": \"怅\",\n\"悶\": \"闷\",\n\"惡\": \"恶\",\n\"惱\": \"恼\",\n\"惲\": \"恽\",\n\"惻\": \"恻\",\n\"愛\": \"爱\",\n\"愜\": \"惬\",\n\"愨\": \"悫\",\n\"愴\": \"怆\",\n\"愷\": \"恺\",\n\"愾\": \"忾\",\n\"愿\": \"愿\",\n\"慄\": \"栗\",\n\"態\": \"态\",\n\"慍\": \"愠\",\n\"慘\": \"惨\",\n\"慚\": \"惭\",\n\"慟\": \"恸\",\n\"慣\": \"惯\",\n\"慤\": \"悫\",\n\"慪\": \"怄\",\n\"慫\": \"怂\",\n\"慮\": \"虑\",\n\"慳\": \"悭\",\n\"慶\": \"庆\",\n\"憂\": \"忧\",\n\"憊\": \"惫\",\n\"憐\": \"怜\",\n\"憑\": \"凭\",\n\"憒\": \"愦\",\n\"憚\": \"惮\",\n\"憤\": \"愤\",\n\"憫\": \"悯\",\n\"憮\": \"怃\",\n\"憲\": \"宪\",\n\"憶\": \"忆\",\n\"懇\": \"恳\",\n\"應\": \"应\",\n\"懌\": \"怿\",\n\"懍\": \"懔\",\n\"懞\": \"蒙\",\n\"懟\": \"怼\",\n\"懣\": \"懑\",\n\"懨\": \"恹\",\n\"懲\": \"惩\",\n\"懶\": \"懒\",\n\"懷\": \"怀\",\n\"懸\": \"悬\",\n\"懺\": \"忏\",\n\"懼\": \"惧\",\n\"懾\": \"慑\",\n\"戀\": \"恋\",\n\"戇\": \"戆\",\n\"戔\": \"戋\",\n\"戧\": \"戗\",\n\"戩\": \"戬\",\n\"戰\": \"战\",\n\"戱\": \"戯\",\n\"戲\": \"戏\",\n\"戶\": \"户\",\n\"担\": \"担\",\n\"拋\": \"抛\",\n\"挩\": \"捝\",\n\"挾\": \"挟\",\n\"捨\": \"舍\",\n\"捫\": \"扪\",\n\"据\": \"据\",\n\"掃\": \"扫\",\n\"掄\": \"抡\",\n\"掗\": \"挜\",\n\"掙\": \"挣\",\n\"掛\": \"挂\",\n\"採\": \"采\",\n\"揀\": \"拣\",\n\"揚\": \"扬\",\n\"換\": \"换\",\n\"揮\": \"挥\",\n\"損\": \"损\",\n\"搖\": \"摇\",\n\"搗\": \"捣\",\n\"搵\": \"揾\",\n\"搶\": \"抢\",\n\"摑\": \"掴\",\n\"摜\": \"掼\",\n\"摟\": \"搂\",\n\"摯\": \"挚\",\n\"摳\": \"抠\",\n\"摶\": \"抟\",\n\"摺\": \"折\",\n\"摻\": \"掺\",\n\"撈\": \"捞\",\n\"撏\": \"挦\",\n\"撐\": \"撑\",\n\"撓\": \"挠\",\n\"撝\": \"㧑\",\n\"撟\": \"挢\",\n\"撣\": \"掸\",\n\"撥\": \"拨\",\n\"撫\": \"抚\",\n\"撲\": \"扑\",\n\"撳\": \"揿\",\n\"撻\": \"挞\",\n\"撾\": \"挝\",\n\"撿\": \"捡\",\n\"擁\": \"拥\",\n\"擄\": \"掳\",\n\"擇\": \"择\",\n\"擊\": \"击\",\n\"擋\": \"挡\",\n\"擓\": \"㧟\",\n\"擔\": \"担\",\n\"據\": \"据\",\n\"擠\": \"挤\",\n\"擬\": \"拟\",\n\"擯\": \"摈\",\n\"擰\": \"拧\",\n\"擱\": \"搁\",\n\"擲\": \"掷\",\n\"擴\": \"扩\",\n\"擷\": \"撷\",\n\"擺\": \"摆\",\n\"擻\": \"擞\",\n\"擼\": \"撸\",\n\"擾\": \"扰\",\n\"攄\": \"摅\",\n\"攆\": \"撵\",\n\"攏\": \"拢\",\n\"攔\": \"拦\",\n\"攖\": \"撄\",\n\"攙\": \"搀\",\n\"攛\": \"撺\",\n\"攜\": \"携\",\n\"攝\": \"摄\",\n\"攢\": \"攒\",\n\"攣\": \"挛\",\n\"攤\": \"摊\",\n\"攪\": \"搅\",\n\"攬\": \"揽\",\n\"敗\": \"败\",\n\"敘\": \"叙\",\n\"敵\": \"敌\",\n\"數\": \"数\",\n\"斂\": \"敛\",\n\"斃\": \"毙\",\n\"斕\": \"斓\",\n\"斗\": \"斗\",\n\"斬\": \"斩\",\n\"斷\": \"断\",\n\"於\": \"于\",\n\"時\": \"时\",\n\"晉\": \"晋\",\n\"晝\": \"昼\",\n\"暈\": \"晕\",\n\"暉\": \"晖\",\n\"暘\": \"旸\",\n\"暢\": \"畅\",\n\"暫\": \"暂\",\n\"曄\": \"晔\",\n\"曆\": \"历\",\n\"曇\": \"昙\",\n\"曉\": \"晓\",\n\"曏\": \"向\",\n\"曖\": \"暧\",\n\"曠\": \"旷\",\n\"曨\": \"昽\",\n\"曬\": \"晒\",\n\"書\": \"书\",\n\"會\": \"会\",\n\"朧\": \"胧\",\n\"朮\": \"术\",\n\"术\": \"术\",\n\"朴\": \"朴\",\n\"東\": \"东\",\n\"杴\": \"锨\",\n\"极\": \"极\",\n\"柜\": \"柜\",\n\"柵\": \"栅\",\n\"桿\": \"杆\",\n\"梔\": \"栀\",\n\"梘\": \"枧\",\n\"條\": \"条\",\n\"梟\": \"枭\",\n\"梲\": \"棁\",\n\"棄\": \"弃\",\n\"棖\": \"枨\",\n\"棗\": \"枣\",\n\"棟\": \"栋\",\n\"棧\": \"栈\",\n\"棲\": \"栖\",\n\"棶\": \"梾\",\n\"椏\": \"桠\",\n\"楊\": \"杨\",\n\"楓\": \"枫\",\n\"楨\": \"桢\",\n\"業\": \"业\",\n\"極\": \"极\",\n\"榪\": \"杩\",\n\"榮\": \"荣\",\n\"榲\": \"榅\",\n\"榿\": \"桤\",\n\"構\": \"构\",\n\"槍\": \"枪\",\n\"槤\": \"梿\",\n\"槧\": \"椠\",\n\"槨\": \"椁\",\n\"槳\": \"桨\",\n\"樁\": \"桩\",\n\"樂\": \"乐\",\n\"樅\": \"枞\",\n\"樓\": \"楼\",\n\"標\": \"标\",\n\"樞\": \"枢\",\n\"樣\": \"样\",\n\"樸\": \"朴\",\n\"樹\": \"树\",\n\"樺\": \"桦\",\n\"橈\": \"桡\",\n\"橋\": \"桥\",\n\"機\": \"机\",\n\"橢\": \"椭\",\n\"橫\": \"横\",\n\"檁\": \"檩\",\n\"檉\": \"柽\",\n\"檔\": \"档\",\n\"檜\": \"桧\",\n\"檟\": \"槚\",\n\"檢\": \"检\",\n\"檣\": \"樯\",\n\"檮\": \"梼\",\n\"檯\": \"台\",\n\"檳\": \"槟\",\n\"檸\": \"柠\",\n\"檻\": \"槛\",\n\"櫃\": \"柜\",\n\"櫓\": \"橹\",\n\"櫚\": \"榈\",\n\"櫛\": \"栉\",\n\"櫝\": \"椟\",\n\"櫞\": \"橼\",\n\"櫟\": \"栎\",\n\"櫥\": \"橱\",\n\"櫧\": \"槠\",\n\"櫨\": \"栌\",\n\"櫪\": \"枥\",\n\"櫫\": \"橥\",\n\"櫬\": \"榇\",\n\"櫱\": \"蘖\",\n\"櫳\": \"栊\",\n\"櫸\": \"榉\",\n\"櫻\": \"樱\",\n\"欄\": \"栏\",\n\"權\": \"权\",\n\"欏\": \"椤\",\n\"欒\": \"栾\",\n\"欖\": \"榄\",\n\"欞\": \"棂\",\n\"欽\": \"钦\",\n\"歐\": \"欧\",\n\"歟\": \"欤\",\n\"歡\": \"欢\",\n\"歲\": \"岁\",\n\"歷\": \"历\",\n\"歸\": \"归\",\n\"歿\": \"殁\",\n\"殘\": \"残\",\n\"殞\": \"殒\",\n\"殤\": \"殇\",\n\"殨\": \"㱮\",\n\"殫\": \"殚\",\n\"殮\": \"殓\",\n\"殯\": \"殡\",\n\"殰\": \"㱩\",\n\"殲\": \"歼\",\n\"殺\": \"杀\",\n\"殻\": \"壳\",\n\"殼\": \"壳\",\n\"毀\": \"毁\",\n\"毆\": \"殴\",\n\"毿\": \"毵\",\n\"氂\": \"牦\",\n\"氈\": \"毡\",\n\"氌\": \"氇\",\n\"氣\": \"气\",\n\"氫\": \"氢\",\n\"氬\": \"氩\",\n\"氳\": \"氲\",\n\"汙\": \"污\",\n\"決\": \"决\",\n\"沒\": \"没\",\n\"沖\": \"冲\",\n\"況\": \"况\",\n\"洶\": \"汹\",\n\"浹\": \"浃\",\n\"涂\": \"涂\",\n\"涇\": \"泾\",\n\"涼\": \"凉\",\n\"淀\": \"淀\",\n\"淒\": \"凄\",\n\"淚\": \"泪\",\n\"淥\": \"渌\",\n\"淨\": \"净\",\n\"淩\": \"凌\",\n\"淪\": \"沦\",\n\"淵\": \"渊\",\n\"淶\": \"涞\",\n\"淺\": \"浅\",\n\"渙\": \"涣\",\n\"減\": \"减\",\n\"渦\": \"涡\",\n\"測\": \"测\",\n\"渾\": \"浑\",\n\"湊\": \"凑\",\n\"湞\": \"浈\",\n\"湯\": \"汤\",\n\"溈\": \"沩\",\n\"準\": \"准\",\n\"溝\": \"沟\",\n\"溫\": \"温\",\n\"滄\": \"沧\",\n\"滅\": \"灭\",\n\"滌\": \"涤\",\n\"滎\": \"荥\",\n\"滬\": \"沪\",\n\"滯\": \"滞\",\n\"滲\": \"渗\",\n\"滷\": \"卤\",\n\"滸\": \"浒\",\n\"滻\": \"浐\",\n\"滾\": \"滚\",\n\"滿\": \"满\",\n\"漁\": \"渔\",\n\"漚\": \"沤\",\n\"漢\": \"汉\",\n\"漣\": \"涟\",\n\"漬\": \"渍\",\n\"漲\": \"涨\",\n\"漵\": \"溆\",\n\"漸\": \"渐\",\n\"漿\": \"浆\",\n\"潁\": \"颍\",\n\"潑\": \"泼\",\n\"潔\": \"洁\",\n\"潙\": \"沩\",\n\"潛\": \"潜\",\n\"潤\": \"润\",\n\"潯\": \"浔\",\n\"潰\": \"溃\",\n\"潷\": \"滗\",\n\"潿\": \"涠\",\n\"澀\": \"涩\",\n\"澆\": \"浇\",\n\"澇\": \"涝\",\n\"澐\": \"沄\",\n\"澗\": \"涧\",\n\"澠\": \"渑\",\n\"澤\": \"泽\",\n\"澦\": \"滪\",\n\"澩\": \"泶\",\n\"澮\": \"浍\",\n\"澱\": \"淀\",\n\"濁\": \"浊\",\n\"濃\": \"浓\",\n\"濕\": \"湿\",\n\"濘\": \"泞\",\n\"濛\": \"蒙\",\n\"濟\": \"济\",\n\"濤\": \"涛\",\n\"濫\": \"滥\",\n\"濰\": \"潍\",\n\"濱\": \"滨\",\n\"濺\": \"溅\",\n\"濼\": \"泺\",\n\"濾\": \"滤\",\n\"瀅\": \"滢\",\n\"瀆\": \"渎\",\n\"瀇\": \"㲿\",\n\"瀉\": \"泻\",\n\"瀋\": \"沈\",\n\"瀏\": \"浏\",\n\"瀕\": \"濒\",\n\"瀘\": \"泸\",\n\"瀝\": \"沥\",\n\"瀟\": \"潇\",\n\"瀠\": \"潆\",\n\"瀦\": \"潴\",\n\"瀧\": \"泷\",\n\"瀨\": \"濑\",\n\"瀰\": \"弥\",\n\"瀲\": \"潋\",\n\"瀾\": \"澜\",\n\"灃\": \"沣\",\n\"灄\": \"滠\",\n\"灑\": \"洒\",\n\"灕\": \"漓\",\n\"灘\": \"滩\",\n\"灝\": \"灏\",\n\"灠\": \"漤\",\n\"灣\": \"湾\",\n\"灤\": \"滦\",\n\"灧\": \"滟\",\n\"災\": \"灾\",\n\"為\": \"为\",\n\"烏\": \"乌\",\n\"烴\": \"烃\",\n\"無\": \"无\",\n\"煉\": \"炼\",\n\"煒\": \"炜\",\n\"煙\": \"烟\",\n\"煢\": \"茕\",\n\"煥\": \"焕\",\n\"煩\": \"烦\",\n\"煬\": \"炀\",\n\"煱\": \"㶽\",\n\"熅\": \"煴\",\n\"熒\": \"荧\",\n\"熗\": \"炝\",\n\"熱\": \"热\",\n\"熲\": \"颎\",\n\"熾\": \"炽\",\n\"燁\": \"烨\",\n\"燈\": \"灯\",\n\"燉\": \"炖\",\n\"燒\": \"烧\",\n\"燙\": \"烫\",\n\"燜\": \"焖\",\n\"營\": \"营\",\n\"燦\": \"灿\",\n\"燭\": \"烛\",\n\"燴\": \"烩\",\n\"燶\": \"㶶\",\n\"燼\": \"烬\",\n\"燾\": \"焘\",\n\"爍\": \"烁\",\n\"爐\": \"炉\",\n\"爛\": \"烂\",\n\"爭\": \"争\",\n\"爲\": \"为\",\n\"爺\": \"爷\",\n\"爾\": \"尔\",\n\"牆\": \"墙\",\n\"牘\": \"牍\",\n\"牽\": \"牵\",\n\"犖\": \"荦\",\n\"犢\": \"犊\",\n\"犧\": \"牺\",\n\"狀\": \"状\",\n\"狹\": \"狭\",\n\"狽\": \"狈\",\n\"猙\": \"狰\",\n\"猶\": \"犹\",\n\"猻\": \"狲\",\n\"獁\": \"犸\",\n\"獄\": \"狱\",\n\"獅\": \"狮\",\n\"獎\": \"奖\",\n\"獨\": \"独\",\n\"獪\": \"狯\",\n\"獫\": \"猃\",\n\"獮\": \"狝\",\n\"獰\": \"狞\",\n\"獱\": \"㺍\",\n\"獲\": \"获\",\n\"獵\": \"猎\",\n\"獷\": \"犷\",\n\"獸\": \"兽\",\n\"獺\": \"獭\",\n\"獻\": \"献\",\n\"獼\": \"猕\",\n\"玀\": \"猡\",\n\"現\": \"现\",\n\"琺\": \"珐\",\n\"琿\": \"珲\",\n\"瑋\": \"玮\",\n\"瑒\": \"玚\",\n\"瑣\": \"琐\",\n\"瑤\": \"瑶\",\n\"瑩\": \"莹\",\n\"瑪\": \"玛\",\n\"瑲\": \"玱\",\n\"璉\": \"琏\",\n\"璣\": \"玑\",\n\"璦\": \"瑷\",\n\"璫\": \"珰\",\n\"環\": \"环\",\n\"璽\": \"玺\",\n\"瓊\": \"琼\",\n\"瓏\": \"珑\",\n\"瓔\": \"璎\",\n\"瓚\": \"瓒\",\n\"甌\": \"瓯\",\n\"產\": \"产\",\n\"産\": \"产\",\n\"畝\": \"亩\",\n\"畢\": \"毕\",\n\"異\": \"异\",\n\"畵\": \"画\",\n\"當\": \"当\",\n\"疇\": \"畴\",\n\"疊\": \"叠\",\n\"痙\": \"痉\",\n\"痾\": \"疴\",\n\"瘂\": \"痖\",\n\"瘋\": \"疯\",\n\"瘍\": \"疡\",\n\"瘓\": \"痪\",\n\"瘞\": \"瘗\",\n\"瘡\": \"疮\",\n\"瘧\": \"疟\",\n\"瘮\": \"瘆\",\n\"瘲\": \"疭\",\n\"瘺\": \"瘘\",\n\"瘻\": \"瘘\",\n\"療\": \"疗\",\n\"癆\": \"痨\",\n\"癇\": \"痫\",\n\"癉\": \"瘅\",\n\"癘\": \"疠\",\n\"癟\": \"瘪\",\n\"癢\": \"痒\",\n\"癤\": \"疖\",\n\"癥\": \"症\",\n\"癧\": \"疬\",\n\"癩\": \"癞\",\n\"癬\": \"癣\",\n\"癭\": \"瘿\",\n\"癮\": \"瘾\",\n\"癰\": \"痈\",\n\"癱\": \"瘫\",\n\"癲\": \"癫\",\n\"發\": \"发\",\n\"皚\": \"皑\",\n\"皰\": \"疱\",\n\"皸\": \"皲\",\n\"皺\": \"皱\",\n\"盃\": \"杯\",\n\"盜\": \"盗\",\n\"盞\": \"盏\",\n\"盡\": \"尽\",\n\"監\": \"监\",\n\"盤\": \"盘\",\n\"盧\": \"卢\",\n\"盪\": \"荡\",\n\"眥\": \"眦\",\n\"眾\": \"众\",\n\"睏\": \"困\",\n\"睜\": \"睁\",\n\"睞\": \"睐\",\n\"瞘\": \"眍\",\n\"瞜\": \"䁖\",\n\"瞞\": \"瞒\",\n\"瞭\": \"了\",\n\"瞶\": \"瞆\",\n\"瞼\": \"睑\",\n\"矇\": \"蒙\",\n\"矓\": \"眬\",\n\"矚\": \"瞩\",\n\"矯\": \"矫\",\n\"硃\": \"朱\",\n\"硜\": \"硁\",\n\"硤\": \"硖\",\n\"硨\": \"砗\",\n\"确\": \"确\",\n\"硯\": \"砚\",\n\"碩\": \"硕\",\n\"碭\": \"砀\",\n\"碸\": \"砜\",\n\"確\": \"确\",\n\"碼\": \"码\",\n\"磑\": \"硙\",\n\"磚\": \"砖\",\n\"磣\": \"碜\",\n\"磧\": \"碛\",\n\"磯\": \"矶\",\n\"磽\": \"硗\",\n\"礆\": \"硷\",\n\"礎\": \"础\",\n\"礙\": \"碍\",\n\"礦\": \"矿\",\n\"礪\": \"砺\",\n\"礫\": \"砾\",\n\"礬\": \"矾\",\n\"礱\": \"砻\",\n\"祿\": \"禄\",\n\"禍\": \"祸\",\n\"禎\": \"祯\",\n\"禕\": \"祎\",\n\"禡\": \"祃\",\n\"禦\": \"御\",\n\"禪\": \"禅\",\n\"禮\": \"礼\",\n\"禰\": \"祢\",\n\"禱\": \"祷\",\n\"禿\": \"秃\",\n\"秈\": \"籼\",\n\"种\": \"种\",\n\"稅\": \"税\",\n\"稈\": \"秆\",\n\"稏\": \"䅉\",\n\"稟\": \"禀\",\n\"種\": \"种\",\n\"稱\": \"称\",\n\"穀\": \"谷\",\n\"穌\": \"稣\",\n\"積\": \"积\",\n\"穎\": \"颖\",\n\"穠\": \"秾\",\n\"穡\": \"穑\",\n\"穢\": \"秽\",\n\"穩\": \"稳\",\n\"穫\": \"获\",\n\"穭\": \"稆\",\n\"窩\": \"窝\",\n\"窪\": \"洼\",\n\"窮\": \"穷\",\n\"窯\": \"窑\",\n\"窵\": \"窎\",\n\"窶\": \"窭\",\n\"窺\": \"窥\",\n\"竄\": \"窜\",\n\"竅\": \"窍\",\n\"竇\": \"窦\",\n\"竈\": \"灶\",\n\"竊\": \"窃\",\n\"竪\": \"竖\",\n\"競\": \"竞\",\n\"筆\": \"笔\",\n\"筍\": \"笋\",\n\"筑\": \"筑\",\n\"筧\": \"笕\",\n\"筴\": \"䇲\",\n\"箋\": \"笺\",\n\"箏\": \"筝\",\n\"節\": \"节\",\n\"範\": \"范\",\n\"築\": \"筑\",\n\"篋\": \"箧\",\n\"篔\": \"筼\",\n\"篤\": \"笃\",\n\"篩\": \"筛\",\n\"篳\": \"筚\",\n\"簀\": \"箦\",\n\"簍\": \"篓\",\n\"簞\": \"箪\",\n\"簡\": \"简\",\n\"簣\": \"篑\",\n\"簫\": \"箫\",\n\"簹\": \"筜\",\n\"簽\": \"签\",\n\"簾\": \"帘\",\n\"籃\": \"篮\",\n\"籌\": \"筹\",\n\"籖\": \"签\",\n\"籙\": \"箓\",\n\"籜\": \"箨\",\n\"籟\": \"籁\",\n\"籠\": \"笼\",\n\"籩\": \"笾\",\n\"籪\": \"簖\",\n\"籬\": \"篱\",\n\"籮\": \"箩\",\n\"籲\": \"吁\",\n\"粵\": \"粤\",\n\"糝\": \"糁\",\n\"糞\": \"粪\",\n\"糧\": \"粮\",\n\"糰\": \"团\",\n\"糲\": \"粝\",\n\"糴\": \"籴\",\n\"糶\": \"粜\",\n\"糹\": \"纟\",\n\"糾\": \"纠\",\n\"紀\": \"纪\",\n\"紂\": \"纣\",\n\"約\": \"约\",\n\"紅\": \"红\",\n\"紆\": \"纡\",\n\"紇\": \"纥\",\n\"紈\": \"纨\",\n\"紉\": \"纫\",\n\"紋\": \"纹\",\n\"納\": \"纳\",\n\"紐\": \"纽\",\n\"紓\": \"纾\",\n\"純\": \"纯\",\n\"紕\": \"纰\",\n\"紖\": \"纼\",\n\"紗\": \"纱\",\n\"紘\": \"纮\",\n\"紙\": \"纸\",\n\"級\": \"级\",\n\"紛\": \"纷\",\n\"紜\": \"纭\",\n\"紝\": \"纴\",\n\"紡\": \"纺\",\n\"紬\": \"䌷\",\n\"細\": \"细\",\n\"紱\": \"绂\",\n\"紲\": \"绁\",\n\"紳\": \"绅\",\n\"紵\": \"纻\",\n\"紹\": \"绍\",\n\"紺\": \"绀\",\n\"紼\": \"绋\",\n\"紿\": \"绐\",\n\"絀\": \"绌\",\n\"終\": \"终\",\n\"組\": \"组\",\n\"絅\": \"䌹\",\n\"絆\": \"绊\",\n\"絎\": \"绗\",\n\"結\": \"结\",\n\"絕\": \"绝\",\n\"絛\": \"绦\",\n\"絝\": \"绔\",\n\"絞\": \"绞\",\n\"絡\": \"络\",\n\"絢\": \"绚\",\n\"給\": \"给\",\n\"絨\": \"绒\",\n\"絰\": \"绖\",\n\"統\": \"统\",\n\"絲\": \"丝\",\n\"絳\": \"绛\",\n\"絶\": \"绝\",\n\"絹\": \"绢\",\n\"綁\": \"绑\",\n\"綃\": \"绡\",\n\"綆\": \"绠\",\n\"綈\": \"绨\",\n\"綉\": \"绣\",\n\"綌\": \"绤\",\n\"綏\": \"绥\",\n\"綐\": \"䌼\",\n\"經\": \"经\",\n\"綜\": \"综\",\n\"綞\": \"缍\",\n\"綠\": \"绿\",\n\"綢\": \"绸\",\n\"綣\": \"绻\",\n\"綫\": \"线\",\n\"綬\": \"绶\",\n\"維\": \"维\",\n\"綯\": \"绹\",\n\"綰\": \"绾\",\n\"綱\": \"纲\",\n\"網\": \"网\",\n\"綳\": \"绷\",\n\"綴\": \"缀\",\n\"綵\": \"䌽\",\n\"綸\": \"纶\",\n\"綹\": \"绺\",\n\"綺\": \"绮\",\n\"綻\": \"绽\",\n\"綽\": \"绰\",\n\"綾\": \"绫\",\n\"綿\": \"绵\",\n\"緄\": \"绲\",\n\"緇\": \"缁\",\n\"緊\": \"紧\",\n\"緋\": \"绯\",\n\"緑\": \"绿\",\n\"緒\": \"绪\",\n\"緓\": \"绬\",\n\"緔\": \"绱\",\n\"緗\": \"缃\",\n\"緘\": \"缄\",\n\"緙\": \"缂\",\n\"線\": \"线\",\n\"緝\": \"缉\",\n\"緞\": \"缎\",\n\"締\": \"缔\",\n\"緡\": \"缗\",\n\"緣\": \"缘\",\n\"緦\": \"缌\",\n\"編\": \"编\",\n\"緩\": \"缓\",\n\"緬\": \"缅\",\n\"緯\": \"纬\",\n\"緱\": \"缑\",\n\"緲\": \"缈\",\n\"練\": \"练\",\n\"緶\": \"缏\",\n\"緹\": \"缇\",\n\"緻\": \"致\",\n\"縈\": \"萦\",\n\"縉\": \"缙\",\n\"縊\": \"缢\",\n\"縋\": \"缒\",\n\"縐\": \"绉\",\n\"縑\": \"缣\",\n\"縕\": \"缊\",\n\"縗\": \"缞\",\n\"縛\": \"缚\",\n\"縝\": \"缜\",\n\"縞\": \"缟\",\n\"縟\": \"缛\",\n\"縣\": \"县\",\n\"縧\": \"绦\",\n\"縫\": \"缝\",\n\"縭\": \"缡\",\n\"縮\": \"缩\",\n\"縱\": \"纵\",\n\"縲\": \"缧\",\n\"縳\": \"䌸\",\n\"縴\": \"纤\",\n\"縵\": \"缦\",\n\"縶\": \"絷\",\n\"縷\": \"缕\",\n\"縹\": \"缥\",\n\"總\": \"总\",\n\"績\": \"绩\",\n\"繃\": \"绷\",\n\"繅\": \"缫\",\n\"繆\": \"缪\",\n\"繒\": \"缯\",\n\"織\": \"织\",\n\"繕\": \"缮\",\n\"繚\": \"缭\",\n\"繞\": \"绕\",\n\"繡\": \"绣\",\n\"繢\": \"缋\",\n\"繩\": \"绳\",\n\"繪\": \"绘\",\n\"繫\": \"系\",\n\"繭\": \"茧\",\n\"繮\": \"缰\",\n\"繯\": \"缳\",\n\"繰\": \"缲\",\n\"繳\": \"缴\",\n\"繸\": \"䍁\",\n\"繹\": \"绎\",\n\"繼\": \"继\",\n\"繽\": \"缤\",\n\"繾\": \"缱\",\n\"繿\": \"䍀\",\n\"纈\": \"缬\",\n\"纊\": \"纩\",\n\"續\": \"续\",\n\"纍\": \"累\",\n\"纏\": \"缠\",\n\"纓\": \"缨\",\n\"纔\": \"才\",\n\"纖\": \"纤\",\n\"纘\": \"缵\",\n\"纜\": \"缆\",\n\"缽\": \"钵\",\n\"罈\": \"坛\",\n\"罌\": \"罂\",\n\"罰\": \"罚\",\n\"罵\": \"骂\",\n\"罷\": \"罢\",\n\"羅\": \"罗\",\n\"羆\": \"罴\",\n\"羈\": \"羁\",\n\"羋\": \"芈\",\n\"羥\": \"羟\",\n\"義\": \"义\",\n\"習\": \"习\",\n\"翹\": \"翘\",\n\"耬\": \"耧\",\n\"耮\": \"耢\",\n\"聖\": \"圣\",\n\"聞\": \"闻\",\n\"聯\": \"联\",\n\"聰\": \"聪\",\n\"聲\": \"声\",\n\"聳\": \"耸\",\n\"聵\": \"聩\",\n\"聶\": \"聂\",\n\"職\": \"职\",\n\"聹\": \"聍\",\n\"聽\": \"听\",\n\"聾\": \"聋\",\n\"肅\": \"肃\",\n\"胜\": \"胜\",\n\"脅\": \"胁\",\n\"脈\": \"脉\",\n\"脛\": \"胫\",\n\"脫\": \"脱\",\n\"脹\": \"胀\",\n\"腊\": \"腊\",\n\"腎\": \"肾\",\n\"腖\": \"胨\",\n\"腡\": \"脶\",\n\"腦\": \"脑\",\n\"腫\": \"肿\",\n\"腳\": \"脚\",\n\"腸\": \"肠\",\n\"膃\": \"腽\",\n\"膚\": \"肤\",\n\"膠\": \"胶\",\n\"膩\": \"腻\",\n\"膽\": \"胆\",\n\"膾\": \"脍\",\n\"膿\": \"脓\",\n\"臉\": \"脸\",\n\"臍\": \"脐\",\n\"臏\": \"膑\",\n\"臘\": \"腊\",\n\"臚\": \"胪\",\n\"臟\": \"脏\",\n\"臠\": \"脔\",\n\"臢\": \"臜\",\n\"臥\": \"卧\",\n\"臨\": \"临\",\n\"臺\": \"台\",\n\"與\": \"与\",\n\"興\": \"兴\",\n\"舉\": \"举\",\n\"舊\": \"旧\",\n\"艙\": \"舱\",\n\"艤\": \"舣\",\n\"艦\": \"舰\",\n\"艫\": \"舻\",\n\"艱\": \"艰\",\n\"艷\": \"艳\",\n\"芻\": \"刍\",\n\"苧\": \"苎\",\n\"苹\": \"苹\",\n\"范\": \"范\",\n\"茲\": \"兹\",\n\"荊\": \"荆\",\n\"莊\": \"庄\",\n\"莖\": \"茎\",\n\"莢\": \"荚\",\n\"莧\": \"苋\",\n\"華\": \"华\",\n\"萇\": \"苌\",\n\"萊\": \"莱\",\n\"萬\": \"万\",\n\"萵\": \"莴\",\n\"葉\": \"叶\",\n\"葒\": \"荭\",\n\"著\": \"着\",\n\"著名\": \"著名\",\n\"葤\": \"荮\",\n\"葦\": \"苇\",\n\"葯\": \"药\",\n\"葷\": \"荤\",\n\"蒓\": \"莼\",\n\"蒔\": \"莳\",\n\"蒞\": \"莅\",\n\"蒼\": \"苍\",\n\"蓀\": \"荪\",\n\"蓋\": \"盖\",\n\"蓮\": \"莲\",\n\"蓯\": \"苁\",\n\"蓴\": \"莼\",\n\"蓽\": \"荜\",\n\"蔔\": \"卜\",\n\"蔞\": \"蒌\",\n\"蔣\": \"蒋\",\n\"蔥\": \"葱\",\n\"蔦\": \"茑\",\n\"蔭\": \"荫\",\n\"蕁\": \"荨\",\n\"蕆\": \"蒇\",\n\"蕎\": \"荞\",\n\"蕒\": \"荬\",\n\"蕓\": \"芸\",\n\"蕕\": \"莸\",\n\"蕘\": \"荛\",\n\"蕢\": \"蒉\",\n\"蕩\": \"荡\",\n\"蕪\": \"芜\",\n\"蕭\": \"萧\",\n\"蕷\": \"蓣\",\n\"薀\": \"蕰\",\n\"薈\": \"荟\",\n\"薊\": \"蓟\",\n\"薌\": \"芗\",\n\"薔\": \"蔷\",\n\"薘\": \"荙\",\n\"薟\": \"莶\",\n\"薦\": \"荐\",\n\"薩\": \"萨\",\n\"薳\": \"䓕\",\n\"薴\": \"苧\",\n\"薺\": \"荠\",\n\"藉\": \"借\",\n\"藍\": \"蓝\",\n\"藎\": \"荩\",\n\"藝\": \"艺\",\n\"藥\": \"药\",\n\"藪\": \"薮\",\n\"藴\": \"蕴\",\n\"藶\": \"苈\",\n\"藹\": \"蔼\",\n\"藺\": \"蔺\",\n\"蘄\": \"蕲\",\n\"蘆\": \"芦\",\n\"蘇\": \"苏\",\n\"蘊\": \"蕴\",\n\"蘋\": \"苹\",\n\"蘚\": \"藓\",\n\"蘞\": \"蔹\",\n\"蘢\": \"茏\",\n\"蘭\": \"兰\",\n\"蘺\": \"蓠\",\n\"蘿\": \"萝\",\n\"虆\": \"蔂\",\n\"處\": \"处\",\n\"虛\": \"虚\",\n\"虜\": \"虏\",\n\"號\": \"号\",\n\"虧\": \"亏\",\n\"虫\": \"虫\",\n\"虯\": \"虬\",\n\"蛺\": \"蛱\",\n\"蛻\": \"蜕\",\n\"蜆\": \"蚬\",\n\"蜡\": \"蜡\",\n\"蝕\": \"蚀\",\n\"蝟\": \"猬\",\n\"蝦\": \"虾\",\n\"蝸\": \"蜗\",\n\"螄\": \"蛳\",\n\"螞\": \"蚂\",\n\"螢\": \"萤\",\n\"螮\": \"䗖\",\n\"螻\": \"蝼\",\n\"螿\": \"螀\",\n\"蟄\": \"蛰\",\n\"蟈\": \"蝈\",\n\"蟎\": \"螨\",\n\"蟣\": \"虮\",\n\"蟬\": \"蝉\",\n\"蟯\": \"蛲\",\n\"蟲\": \"虫\",\n\"蟶\": \"蛏\",\n\"蟻\": \"蚁\",\n\"蠅\": \"蝇\",\n\"蠆\": \"虿\",\n\"蠐\": \"蛴\",\n\"蠑\": \"蝾\",\n\"蠟\": \"蜡\",\n\"蠣\": \"蛎\",\n\"蠨\": \"蟏\",\n\"蠱\": \"蛊\",\n\"蠶\": \"蚕\",\n\"蠻\": \"蛮\",\n\"衆\": \"众\",\n\"衊\": \"蔑\",\n\"術\": \"术\",\n\"衕\": \"同\",\n\"衚\": \"胡\",\n\"衛\": \"卫\",\n\"衝\": \"冲\",\n\"衹\": \"只\",\n\"袞\": \"衮\",\n\"裊\": \"袅\",\n\"裏\": \"里\",\n\"補\": \"补\",\n\"裝\": \"装\",\n\"裡\": \"里\",\n\"製\": \"制\",\n\"複\": \"复\",\n\"褌\": \"裈\",\n\"褘\": \"袆\",\n\"褲\": \"裤\",\n\"褳\": \"裢\",\n\"褸\": \"褛\",\n\"褻\": \"亵\",\n\"襇\": \"裥\",\n\"襏\": \"袯\",\n\"襖\": \"袄\",\n\"襝\": \"裣\",\n\"襠\": \"裆\",\n\"襤\": \"褴\",\n\"襪\": \"袜\",\n\"襬\": \"䙓\",\n\"襯\": \"衬\",\n\"襲\": \"袭\",\n\"覆\": \"复\",\n\"覆蓋\": \"覆盖\",\n\"翻來覆去\": \"翻来覆去\",\n\"見\": \"见\",\n\"覎\": \"觃\",\n\"規\": \"规\",\n\"覓\": \"觅\",\n\"視\": \"视\",\n\"覘\": \"觇\",\n\"覡\": \"觋\",\n\"覥\": \"觍\",\n\"覦\": \"觎\",\n\"親\": \"亲\",\n\"覬\": \"觊\",\n\"覯\": \"觏\",\n\"覲\": \"觐\",\n\"覷\": \"觑\",\n\"覺\": \"觉\",\n\"覽\": \"览\",\n\"覿\": \"觌\",\n\"觀\": \"观\",\n\"觴\": \"觞\",\n\"觶\": \"觯\",\n\"觸\": \"触\",\n\"訁\": \"讠\",\n\"訂\": \"订\",\n\"訃\": \"讣\",\n\"計\": \"计\",\n\"訊\": \"讯\",\n\"訌\": \"讧\",\n\"討\": \"讨\",\n\"訐\": \"讦\",\n\"訒\": \"讱\",\n\"訓\": \"训\",\n\"訕\": \"讪\",\n\"訖\": \"讫\",\n\"託\": \"讬\",\n\"記\": \"记\",\n\"訛\": \"讹\",\n\"訝\": \"讶\",\n\"訟\": \"讼\",\n\"訢\": \"䜣\",\n\"訣\": \"诀\",\n\"訥\": \"讷\",\n\"訩\": \"讻\",\n\"訪\": \"访\",\n\"設\": \"设\",\n\"許\": \"许\",\n\"訴\": \"诉\",\n\"訶\": \"诃\",\n\"診\": \"诊\",\n\"註\": \"注\",\n\"詁\": \"诂\",\n\"詆\": \"诋\",\n\"詎\": \"讵\",\n\"詐\": \"诈\",\n\"詒\": \"诒\",\n\"詔\": \"诏\",\n\"評\": \"评\",\n\"詖\": \"诐\",\n\"詗\": \"诇\",\n\"詘\": \"诎\",\n\"詛\": \"诅\",\n\"詞\": \"词\",\n\"詠\": \"咏\",\n\"詡\": \"诩\",\n\"詢\": \"询\",\n\"詣\": \"诣\",\n\"試\": \"试\",\n\"詩\": \"诗\",\n\"詫\": \"诧\",\n\"詬\": \"诟\",\n\"詭\": \"诡\",\n\"詮\": \"诠\",\n\"詰\": \"诘\",\n\"話\": \"话\",\n\"該\": \"该\",\n\"詳\": \"详\",\n\"詵\": \"诜\",\n\"詼\": \"诙\",\n\"詿\": \"诖\",\n\"誄\": \"诔\",\n\"誅\": \"诛\",\n\"誆\": \"诓\",\n\"誇\": \"夸\",\n\"誌\": \"志\",\n\"認\": \"认\",\n\"誑\": \"诳\",\n\"誒\": \"诶\",\n\"誕\": \"诞\",\n\"誘\": \"诱\",\n\"誚\": \"诮\",\n\"語\": \"语\",\n\"誠\": \"诚\",\n\"誡\": \"诫\",\n\"誣\": \"诬\",\n\"誤\": \"误\",\n\"誥\": \"诰\",\n\"誦\": \"诵\",\n\"誨\": \"诲\",\n\"說\": \"说\",\n\"説\": \"说\",\n\"誰\": \"谁\",\n\"課\": \"课\",\n\"誶\": \"谇\",\n\"誹\": \"诽\",\n\"誼\": \"谊\",\n\"誾\": \"訚\",\n\"調\": \"调\",\n\"諂\": \"谄\",\n\"諄\": \"谆\",\n\"談\": \"谈\",\n\"諉\": \"诿\",\n\"請\": \"请\",\n\"諍\": \"诤\",\n\"諏\": \"诹\",\n\"諑\": \"诼\",\n\"諒\": \"谅\",\n\"論\": \"论\",\n\"諗\": \"谂\",\n\"諛\": \"谀\",\n\"諜\": \"谍\",\n\"諝\": \"谞\",\n\"諞\": \"谝\",\n\"諢\": \"诨\",\n\"諤\": \"谔\",\n\"諦\": \"谛\",\n\"諧\": \"谐\",\n\"諫\": \"谏\",\n\"諭\": \"谕\",\n\"諮\": \"谘\",\n\"諱\": \"讳\",\n\"諳\": \"谙\",\n\"諶\": \"谌\",\n\"諷\": \"讽\",\n\"諸\": \"诸\",\n\"諺\": \"谚\",\n\"諼\": \"谖\",\n\"諾\": \"诺\",\n\"謀\": \"谋\",\n\"謁\": \"谒\",\n\"謂\": \"谓\",\n\"謄\": \"誊\",\n\"謅\": \"诌\",\n\"謊\": \"谎\",\n\"謎\": \"谜\",\n\"謐\": \"谧\",\n\"謔\": \"谑\",\n\"謖\": \"谡\",\n\"謗\": \"谤\",\n\"謙\": \"谦\",\n\"謚\": \"谥\",\n\"講\": \"讲\",\n\"謝\": \"谢\",\n\"謠\": \"谣\",\n\"謡\": \"谣\",\n\"謨\": \"谟\",\n\"謫\": \"谪\",\n\"謬\": \"谬\",\n\"謭\": \"谫\",\n\"謳\": \"讴\",\n\"謹\": \"谨\",\n\"謾\": \"谩\",\n\"譅\": \"䜧\",\n\"證\": \"证\",\n\"譎\": \"谲\",\n\"譏\": \"讥\",\n\"譖\": \"谮\",\n\"識\": \"识\",\n\"譙\": \"谯\",\n\"譚\": \"谭\",\n\"譜\": \"谱\",\n\"譫\": \"谵\",\n\"譯\": \"译\",\n\"議\": \"议\",\n\"譴\": \"谴\",\n\"護\": \"护\",\n\"譸\": \"诪\",\n\"譽\": \"誉\",\n\"譾\": \"谫\",\n\"讀\": \"读\",\n\"變\": \"变\",\n\"讎\": \"仇\",\n\"讎\": \"雠\",\n\"讒\": \"谗\",\n\"讓\": \"让\",\n\"讕\": \"谰\",\n\"讖\": \"谶\",\n\"讜\": \"谠\",\n\"讞\": \"谳\",\n\"豈\": \"岂\",\n\"豎\": \"竖\",\n\"豐\": \"丰\",\n\"豬\": \"猪\",\n\"豶\": \"豮\",\n\"貓\": \"猫\",\n\"貙\": \"䝙\",\n\"貝\": \"贝\",\n\"貞\": \"贞\",\n\"貟\": \"贠\",\n\"負\": \"负\",\n\"財\": \"财\",\n\"貢\": \"贡\",\n\"貧\": \"贫\",\n\"貨\": \"货\",\n\"販\": \"贩\",\n\"貪\": \"贪\",\n\"貫\": \"贯\",\n\"責\": \"责\",\n\"貯\": \"贮\",\n\"貰\": \"贳\",\n\"貲\": \"赀\",\n\"貳\": \"贰\",\n\"貴\": \"贵\",\n\"貶\": \"贬\",\n\"買\": \"买\",\n\"貸\": \"贷\",\n\"貺\": \"贶\",\n\"費\": \"费\",\n\"貼\": \"贴\",\n\"貽\": \"贻\",\n\"貿\": \"贸\",\n\"賀\": \"贺\",\n\"賁\": \"贲\",\n\"賂\": \"赂\",\n\"賃\": \"赁\",\n\"賄\": \"贿\",\n\"賅\": \"赅\",\n\"資\": \"资\",\n\"賈\": \"贾\",\n\"賊\": \"贼\",\n\"賑\": \"赈\",\n\"賒\": \"赊\",\n\"賓\": \"宾\",\n\"賕\": \"赇\",\n\"賙\": \"赒\",\n\"賚\": \"赉\",\n\"賜\": \"赐\",\n\"賞\": \"赏\",\n\"賠\": \"赔\",\n\"賡\": \"赓\",\n\"賢\": \"贤\",\n\"賣\": \"卖\",\n\"賤\": \"贱\",\n\"賦\": \"赋\",\n\"賧\": \"赕\",\n\"質\": \"质\",\n\"賫\": \"赍\",\n\"賬\": \"账\",\n\"賭\": \"赌\",\n\"賰\": \"䞐\",\n\"賴\": \"赖\",\n\"賵\": \"赗\",\n\"賺\": \"赚\",\n\"賻\": \"赙\",\n\"購\": \"购\",\n\"賽\": \"赛\",\n\"賾\": \"赜\",\n\"贄\": \"贽\",\n\"贅\": \"赘\",\n\"贇\": \"赟\",\n\"贈\": \"赠\",\n\"贊\": \"赞\",\n\"贋\": \"赝\",\n\"贍\": \"赡\",\n\"贏\": \"赢\",\n\"贐\": \"赆\",\n\"贓\": \"赃\",\n\"贔\": \"赑\",\n\"贖\": \"赎\",\n\"贗\": \"赝\",\n\"贛\": \"赣\",\n\"贜\": \"赃\",\n\"赬\": \"赪\",\n\"趕\": \"赶\",\n\"趙\": \"赵\",\n\"趨\": \"趋\",\n\"趲\": \"趱\",\n\"跡\": \"迹\",\n\"踐\": \"践\",\n\"踴\": \"踊\",\n\"蹌\": \"跄\",\n\"蹕\": \"跸\",\n\"蹣\": \"蹒\",\n\"蹤\": \"踪\",\n\"蹺\": \"跷\",\n\"躂\": \"跶\",\n\"躉\": \"趸\",\n\"躊\": \"踌\",\n\"躋\": \"跻\",\n\"躍\": \"跃\",\n\"躑\": \"踯\",\n\"躒\": \"跞\",\n\"躓\": \"踬\",\n\"躕\": \"蹰\",\n\"躚\": \"跹\",\n\"躡\": \"蹑\",\n\"躥\": \"蹿\",\n\"躦\": \"躜\",\n\"躪\": \"躏\",\n\"軀\": \"躯\",\n\"車\": \"车\",\n\"軋\": \"轧\",\n\"軌\": \"轨\",\n\"軍\": \"军\",\n\"軑\": \"轪\",\n\"軒\": \"轩\",\n\"軔\": \"轫\",\n\"軛\": \"轭\",\n\"軟\": \"软\",\n\"軤\": \"轷\",\n\"軫\": \"轸\",\n\"軲\": \"轱\",\n\"軸\": \"轴\",\n\"軹\": \"轵\",\n\"軺\": \"轺\",\n\"軻\": \"轲\",\n\"軼\": \"轶\",\n\"軾\": \"轼\",\n\"較\": \"较\",\n\"輅\": \"辂\",\n\"輇\": \"辁\",\n\"輈\": \"辀\",\n\"載\": \"载\",\n\"輊\": \"轾\",\n\"輒\": \"辄\",\n\"輓\": \"挽\",\n\"輔\": \"辅\",\n\"輕\": \"轻\",\n\"輛\": \"辆\",\n\"輜\": \"辎\",\n\"輝\": \"辉\",\n\"輞\": \"辋\",\n\"輟\": \"辍\",\n\"輥\": \"辊\",\n\"輦\": \"辇\",\n\"輩\": \"辈\",\n\"輪\": \"轮\",\n\"輬\": \"辌\",\n\"輯\": \"辑\",\n\"輳\": \"辏\",\n\"輸\": \"输\",\n\"輻\": \"辐\",\n\"輾\": \"辗\",\n\"輿\": \"舆\",\n\"轀\": \"辒\",\n\"轂\": \"毂\",\n\"轄\": \"辖\",\n\"轅\": \"辕\",\n\"轆\": \"辘\",\n\"轉\": \"转\",\n\"轍\": \"辙\",\n\"轎\": \"轿\",\n\"轔\": \"辚\",\n\"轟\": \"轰\",\n\"轡\": \"辔\",\n\"轢\": \"轹\",\n\"轤\": \"轳\",\n\"辟\": \"辟\",\n\"辦\": \"办\",\n\"辭\": \"辞\",\n\"辮\": \"辫\",\n\"辯\": \"辩\",\n\"農\": \"农\",\n\"迴\": \"回\",\n\"适\": \"适\",\n\"逕\": \"迳\",\n\"這\": \"这\",\n\"連\": \"连\",\n\"週\": \"周\",\n\"進\": \"进\",\n\"遊\": \"游\",\n\"運\": \"运\",\n\"過\": \"过\",\n\"達\": \"达\",\n\"違\": \"违\",\n\"遙\": \"遥\",\n\"遜\": \"逊\",\n\"遞\": \"递\",\n\"遠\": \"远\",\n\"適\": \"适\",\n\"遲\": \"迟\",\n\"遷\": \"迁\",\n\"選\": \"选\",\n\"遺\": \"遗\",\n\"遼\": \"辽\",\n\"邁\": \"迈\",\n\"還\": \"还\",\n\"邇\": \"迩\",\n\"邊\": \"边\",\n\"邏\": \"逻\",\n\"邐\": \"逦\",\n\"郁\": \"郁\",\n\"郟\": \"郏\",\n\"郵\": \"邮\",\n\"鄆\": \"郓\",\n\"鄉\": \"乡\",\n\"鄒\": \"邹\",\n\"鄔\": \"邬\",\n\"鄖\": \"郧\",\n\"鄧\": \"邓\",\n\"鄭\": \"郑\",\n\"鄰\": \"邻\",\n\"鄲\": \"郸\",\n\"鄴\": \"邺\",\n\"鄶\": \"郐\",\n\"鄺\": \"邝\",\n\"酇\": \"酂\",\n\"酈\": \"郦\",\n\"醖\": \"酝\",\n\"醜\": \"丑\",\n\"醞\": \"酝\",\n\"醫\": \"医\",\n\"醬\": \"酱\",\n\"醱\": \"酦\",\n\"釀\": \"酿\",\n\"釁\": \"衅\",\n\"釃\": \"酾\",\n\"釅\": \"酽\",\n\"采\": \"采\",\n\"釋\": \"释\",\n\"釐\": \"厘\",\n\"釒\": \"钅\",\n\"釓\": \"钆\",\n\"釔\": \"钇\",\n\"釕\": \"钌\",\n\"釗\": \"钊\",\n\"釘\": \"钉\",\n\"釙\": \"钋\",\n\"針\": \"针\",\n\"釣\": \"钓\",\n\"釤\": \"钐\",\n\"釧\": \"钏\",\n\"釩\": \"钒\",\n\"釵\": \"钗\",\n\"釷\": \"钍\",\n\"釹\": \"钕\",\n\"釺\": \"钎\",\n\"鈀\": \"钯\",\n\"鈁\": \"钫\",\n\"鈃\": \"钘\",\n\"鈄\": \"钭\",\n\"鈈\": \"钚\",\n\"鈉\": \"钠\",\n\"鈍\": \"钝\",\n\"鈎\": \"钩\",\n\"鈐\": \"钤\",\n\"鈑\": \"钣\",\n\"鈒\": \"钑\",\n\"鈔\": \"钞\",\n\"鈕\": \"钮\",\n\"鈞\": \"钧\",\n\"鈣\": \"钙\",\n\"鈥\": \"钬\",\n\"鈦\": \"钛\",\n\"鈧\": \"钪\",\n\"鈮\": \"铌\",\n\"鈰\": \"铈\",\n\"鈳\": \"钶\",\n\"鈴\": \"铃\",\n\"鈷\": \"钴\",\n\"鈸\": \"钹\",\n\"鈹\": \"铍\",\n\"鈺\": \"钰\",\n\"鈽\": \"钸\",\n\"鈾\": \"铀\",\n\"鈿\": \"钿\",\n\"鉀\": \"钾\",\n\"鉅\": \"钜\",\n\"鉈\": \"铊\",\n\"鉉\": \"铉\",\n\"鉋\": \"铇\",\n\"鉍\": \"铋\",\n\"鉑\": \"铂\",\n\"鉕\": \"钷\",\n\"鉗\": \"钳\",\n\"鉚\": \"铆\",\n\"鉛\": \"铅\",\n\"鉞\": \"钺\",\n\"鉢\": \"钵\",\n\"鉤\": \"钩\",\n\"鉦\": \"钲\",\n\"鉬\": \"钼\",\n\"鉭\": \"钽\",\n\"鉶\": \"铏\",\n\"鉸\": \"铰\",\n\"鉺\": \"铒\",\n\"鉻\": \"铬\",\n\"鉿\": \"铪\",\n\"銀\": \"银\",\n\"銃\": \"铳\",\n\"銅\": \"铜\",\n\"銍\": \"铚\",\n\"銑\": \"铣\",\n\"銓\": \"铨\",\n\"銖\": \"铢\",\n\"銘\": \"铭\",\n\"銚\": \"铫\",\n\"銛\": \"铦\",\n\"銜\": \"衔\",\n\"銠\": \"铑\",\n\"銣\": \"铷\",\n\"銥\": \"铱\",\n\"銦\": \"铟\",\n\"銨\": \"铵\",\n\"銩\": \"铥\",\n\"銪\": \"铕\",\n\"銫\": \"铯\",\n\"銬\": \"铐\",\n\"銱\": \"铞\",\n\"銳\": \"锐\",\n\"銷\": \"销\",\n\"銹\": \"锈\",\n\"銻\": \"锑\",\n\"銼\": \"锉\",\n\"鋁\": \"铝\",\n\"鋃\": \"锒\",\n\"鋅\": \"锌\",\n\"鋇\": \"钡\",\n\"鋌\": \"铤\",\n\"鋏\": \"铗\",\n\"鋒\": \"锋\",\n\"鋙\": \"铻\",\n\"鋝\": \"锊\",\n\"鋟\": \"锓\",\n\"鋣\": \"铘\",\n\"鋤\": \"锄\",\n\"鋥\": \"锃\",\n\"鋦\": \"锔\",\n\"鋨\": \"锇\",\n\"鋩\": \"铓\",\n\"鋪\": \"铺\",\n\"鋭\": \"锐\",\n\"鋮\": \"铖\",\n\"鋯\": \"锆\",\n\"鋰\": \"锂\",\n\"鋱\": \"铽\",\n\"鋶\": \"锍\",\n\"鋸\": \"锯\",\n\"鋼\": \"钢\",\n\"錁\": \"锞\",\n\"錄\": \"录\",\n\"錆\": \"锖\",\n\"錇\": \"锫\",\n\"錈\": \"锩\",\n\"錏\": \"铔\",\n\"錐\": \"锥\",\n\"錒\": \"锕\",\n\"錕\": \"锟\",\n\"錘\": \"锤\",\n\"錙\": \"锱\",\n\"錚\": \"铮\",\n\"錛\": \"锛\",\n\"錟\": \"锬\",\n\"錠\": \"锭\",\n\"錡\": \"锜\",\n\"錢\": \"钱\",\n\"錦\": \"锦\",\n\"錨\": \"锚\",\n\"錩\": \"锠\",\n\"錫\": \"锡\",\n\"錮\": \"锢\",\n\"錯\": \"错\",\n\"録\": \"录\",\n\"錳\": \"锰\",\n\"錶\": \"表\",\n\"錸\": \"铼\",\n\"鍀\": \"锝\",\n\"鍁\": \"锨\",\n\"鍃\": \"锪\",\n\"鍆\": \"钔\",\n\"鍇\": \"锴\",\n\"鍈\": \"锳\",\n\"鍋\": \"锅\",\n\"鍍\": \"镀\",\n\"鍔\": \"锷\",\n\"鍘\": \"铡\",\n\"鍚\": \"钖\",\n\"鍛\": \"锻\",\n\"鍠\": \"锽\",\n\"鍤\": \"锸\",\n\"鍥\": \"锲\",\n\"鍩\": \"锘\",\n\"鍬\": \"锹\",\n\"鍰\": \"锾\",\n\"鍵\": \"键\",\n\"鍶\": \"锶\",\n\"鍺\": \"锗\",\n\"鍾\": \"钟\",\n\"鎂\": \"镁\",\n\"鎄\": \"锿\",\n\"鎇\": \"镅\",\n\"鎊\": \"镑\",\n\"鎔\": \"镕\",\n\"鎖\": \"锁\",\n\"鎘\": \"镉\",\n\"鎚\": \"锤\",\n\"鎛\": \"镈\",\n\"鎝\": \"𨱏\",\n\"鎡\": \"镃\",\n\"鎢\": \"钨\",\n\"鎣\": \"蓥\",\n\"鎦\": \"镏\",\n\"鎧\": \"铠\",\n\"鎩\": \"铩\",\n\"鎪\": \"锼\",\n\"鎬\": \"镐\",\n\"鎮\": \"镇\",\n\"鎰\": \"镒\",\n\"鎲\": \"镋\",\n\"鎳\": \"镍\",\n\"鎵\": \"镓\",\n\"鎸\": \"镌\",\n\"鎿\": \"镎\",\n\"鏃\": \"镞\",\n\"鏇\": \"镟\",\n\"鏈\": \"链\",\n\"鏌\": \"镆\",\n\"鏍\": \"镙\",\n\"鏐\": \"镠\",\n\"鏑\": \"镝\",\n\"鏗\": \"铿\",\n\"鏘\": \"锵\",\n\"鏜\": \"镗\",\n\"鏝\": \"镘\",\n\"鏞\": \"镛\",\n\"鏟\": \"铲\",\n\"鏡\": \"镜\",\n\"鏢\": \"镖\",\n\"鏤\": \"镂\",\n\"鏨\": \"錾\",\n\"鏰\": \"镚\",\n\"鏵\": \"铧\",\n\"鏷\": \"镤\",\n\"鏹\": \"镪\",\n\"鏽\": \"锈\",\n\"鐃\": \"铙\",\n\"鐋\": \"铴\",\n\"鐐\": \"镣\",\n\"鐒\": \"铹\",\n\"鐓\": \"镦\",\n\"鐔\": \"镡\",\n\"鐘\": \"钟\",\n\"鐙\": \"镫\",\n\"鐝\": \"镢\",\n\"鐠\": \"镨\",\n\"鐦\": \"锎\",\n\"鐧\": \"锏\",\n\"鐨\": \"镄\",\n\"鐫\": \"镌\",\n\"鐮\": \"镰\",\n\"鐲\": \"镯\",\n\"鐳\": \"镭\",\n\"鐵\": \"铁\",\n\"鐶\": \"镮\",\n\"鐸\": \"铎\",\n\"鐺\": \"铛\",\n\"鐿\": \"镱\",\n\"鑄\": \"铸\",\n\"鑊\": \"镬\",\n\"鑌\": \"镔\",\n\"鑒\": \"鉴\",\n\"鑔\": \"镲\",\n\"鑕\": \"锧\",\n\"鑞\": \"镴\",\n\"鑠\": \"铄\",\n\"鑣\": \"镳\",\n\"鑥\": \"镥\",\n\"鑭\": \"镧\",\n\"鑰\": \"钥\",\n\"鑱\": \"镵\",\n\"鑲\": \"镶\",\n\"鑷\": \"镊\",\n\"鑹\": \"镩\",\n\"鑼\": \"锣\",\n\"鑽\": \"钻\",\n\"鑾\": \"銮\",\n\"鑿\": \"凿\",\n\"钁\": \"镢\",\n\"镟\": \"旋\",\n\"長\": \"长\",\n\"門\": \"门\",\n\"閂\": \"闩\",\n\"閃\": \"闪\",\n\"閆\": \"闫\",\n\"閈\": \"闬\",\n\"閉\": \"闭\",\n\"開\": \"开\",\n\"閌\": \"闶\",\n\"閎\": \"闳\",\n\"閏\": \"闰\",\n\"閑\": \"闲\",\n\"間\": \"间\",\n\"閔\": \"闵\",\n\"閘\": \"闸\",\n\"閡\": \"阂\",\n\"閣\": \"阁\",\n\"閤\": \"合\",\n\"閥\": \"阀\",\n\"閨\": \"闺\",\n\"閩\": \"闽\",\n\"閫\": \"阃\",\n\"閬\": \"阆\",\n\"閭\": \"闾\",\n\"閱\": \"阅\",\n\"閲\": \"阅\",\n\"閶\": \"阊\",\n\"閹\": \"阉\",\n\"閻\": \"阎\",\n\"閼\": \"阏\",\n\"閽\": \"阍\",\n\"閾\": \"阈\",\n\"閿\": \"阌\",\n\"闃\": \"阒\",\n\"闆\": \"板\",\n\"闈\": \"闱\",\n\"闊\": \"阔\",\n\"闋\": \"阕\",\n\"闌\": \"阑\",\n\"闍\": \"阇\",\n\"闐\": \"阗\",\n\"闒\": \"阘\",\n\"闓\": \"闿\",\n\"闔\": \"阖\",\n\"闕\": \"阙\",\n\"闖\": \"闯\",\n\"關\": \"关\",\n\"闞\": \"阚\",\n\"闠\": \"阓\",\n\"闡\": \"阐\",\n\"闤\": \"阛\",\n\"闥\": \"闼\",\n\"阪\": \"坂\",\n\"陘\": \"陉\",\n\"陝\": \"陕\",\n\"陣\": \"阵\",\n\"陰\": \"阴\",\n\"陳\": \"陈\",\n\"陸\": \"陆\",\n\"陽\": \"阳\",\n\"隉\": \"陧\",\n\"隊\": \"队\",\n\"階\": \"阶\",\n\"隕\": \"陨\",\n\"際\": \"际\",\n\"隨\": \"随\",\n\"險\": \"险\",\n\"隱\": \"隐\",\n\"隴\": \"陇\",\n\"隸\": \"隶\",\n\"隻\": \"只\",\n\"雋\": \"隽\",\n\"雖\": \"虽\",\n\"雙\": \"双\",\n\"雛\": \"雏\",\n\"雜\": \"杂\",\n\"雞\": \"鸡\",\n\"離\": \"离\",\n\"難\": \"难\",\n\"雲\": \"云\",\n\"電\": \"电\",\n\"霢\": \"霡\",\n\"霧\": \"雾\",\n\"霽\": \"霁\",\n\"靂\": \"雳\",\n\"靄\": \"霭\",\n\"靈\": \"灵\",\n\"靚\": \"靓\",\n\"靜\": \"静\",\n\"靨\": \"靥\",\n\"鞀\": \"鼗\",\n\"鞏\": \"巩\",\n\"鞝\": \"绱\",\n\"鞦\": \"秋\",\n\"鞽\": \"鞒\",\n\"韁\": \"缰\",\n\"韃\": \"鞑\",\n\"韆\": \"千\",\n\"韉\": \"鞯\",\n\"韋\": \"韦\",\n\"韌\": \"韧\",\n\"韍\": \"韨\",\n\"韓\": \"韩\",\n\"韙\": \"韪\",\n\"韜\": \"韬\",\n\"韞\": \"韫\",\n\"韻\": \"韵\",\n\"響\": \"响\",\n\"頁\": \"页\",\n\"頂\": \"顶\",\n\"頃\": \"顷\",\n\"項\": \"项\",\n\"順\": \"顺\",\n\"頇\": \"顸\",\n\"須\": \"须\",\n\"頊\": \"顼\",\n\"頌\": \"颂\",\n\"頎\": \"颀\",\n\"頏\": \"颃\",\n\"預\": \"预\",\n\"頑\": \"顽\",\n\"頒\": \"颁\",\n\"頓\": \"顿\",\n\"頗\": \"颇\",\n\"領\": \"领\",\n\"頜\": \"颌\",\n\"頡\": \"颉\",\n\"頤\": \"颐\",\n\"頦\": \"颏\",\n\"頭\": \"头\",\n\"頮\": \"颒\",\n\"頰\": \"颊\",\n\"頲\": \"颋\",\n\"頴\": \"颕\",\n\"頷\": \"颔\",\n\"頸\": \"颈\",\n\"頹\": \"颓\",\n\"頻\": \"频\",\n\"頽\": \"颓\",\n\"顆\": \"颗\",\n\"題\": \"题\",\n\"額\": \"额\",\n\"顎\": \"颚\",\n\"顏\": \"颜\",\n\"顒\": \"颙\",\n\"顓\": \"颛\",\n\"顔\": \"颜\",\n\"願\": \"愿\",\n\"顙\": \"颡\",\n\"顛\": \"颠\",\n\"類\": \"类\",\n\"顢\": \"颟\",\n\"顥\": \"颢\",\n\"顧\": \"顾\",\n\"顫\": \"颤\",\n\"顬\": \"颥\",\n\"顯\": \"显\",\n\"顰\": \"颦\",\n\"顱\": \"颅\",\n\"顳\": \"颞\",\n\"顴\": \"颧\",\n\"風\": \"风\",\n\"颭\": \"飐\",\n\"颮\": \"飑\",\n\"颯\": \"飒\",\n\"颱\": \"台\",\n\"颳\": \"刮\",\n\"颶\": \"飓\",\n\"颸\": \"飔\",\n\"颺\": \"飏\",\n\"颻\": \"飖\",\n\"颼\": \"飕\",\n\"飀\": \"飗\",\n\"飄\": \"飘\",\n\"飆\": \"飙\",\n\"飈\": \"飚\",\n\"飛\": \"飞\",\n\"飠\": \"饣\",\n\"飢\": \"饥\",\n\"飣\": \"饤\",\n\"飥\": \"饦\",\n\"飩\": \"饨\",\n\"飪\": \"饪\",\n\"飫\": \"饫\",\n\"飭\": \"饬\",\n\"飯\": \"饭\",\n\"飲\": \"饮\",\n\"飴\": \"饴\",\n\"飼\": \"饲\",\n\"飽\": \"饱\",\n\"飾\": \"饰\",\n\"飿\": \"饳\",\n\"餃\": \"饺\",\n\"餄\": \"饸\",\n\"餅\": \"饼\",\n\"餉\": \"饷\",\n\"養\": \"养\",\n\"餌\": \"饵\",\n\"餎\": \"饹\",\n\"餏\": \"饻\",\n\"餑\": \"饽\",\n\"餒\": \"馁\",\n\"餓\": \"饿\",\n\"餕\": \"馂\",\n\"餖\": \"饾\",\n\"餚\": \"肴\",\n\"餛\": \"馄\",\n\"餜\": \"馃\",\n\"餞\": \"饯\",\n\"餡\": \"馅\",\n\"館\": \"馆\",\n\"餱\": \"糇\",\n\"餳\": \"饧\",\n\"餶\": \"馉\",\n\"餷\": \"馇\",\n\"餺\": \"馎\",\n\"餼\": \"饩\",\n\"餾\": \"馏\",\n\"餿\": \"馊\",\n\"饁\": \"馌\",\n\"饃\": \"馍\",\n\"饅\": \"馒\",\n\"饈\": \"馐\",\n\"饉\": \"馑\",\n\"饊\": \"馓\",\n\"饋\": \"馈\",\n\"饌\": \"馔\",\n\"饑\": \"饥\",\n\"饒\": \"饶\",\n\"饗\": \"飨\",\n\"饜\": \"餍\",\n\"饞\": \"馋\",\n\"饢\": \"馕\",\n\"馬\": \"马\",\n\"馭\": \"驭\",\n\"馮\": \"冯\",\n\"馱\": \"驮\",\n\"馳\": \"驰\",\n\"馴\": \"驯\",\n\"馹\": \"驲\",\n\"駁\": \"驳\",\n\"駐\": \"驻\",\n\"駑\": \"驽\",\n\"駒\": \"驹\",\n\"駔\": \"驵\",\n\"駕\": \"驾\",\n\"駘\": \"骀\",\n\"駙\": \"驸\",\n\"駛\": \"驶\",\n\"駝\": \"驼\",\n\"駟\": \"驷\",\n\"駡\": \"骂\",\n\"駢\": \"骈\",\n\"駭\": \"骇\",\n\"駰\": \"骃\",\n\"駱\": \"骆\",\n\"駸\": \"骎\",\n\"駿\": \"骏\",\n\"騁\": \"骋\",\n\"騂\": \"骍\",\n\"騅\": \"骓\",\n\"騌\": \"骔\",\n\"騍\": \"骒\",\n\"騎\": \"骑\",\n\"騏\": \"骐\",\n\"騖\": \"骛\",\n\"騙\": \"骗\",\n\"騤\": \"骙\",\n\"騧\": \"䯄\",\n\"騫\": \"骞\",\n\"騭\": \"骘\",\n\"騮\": \"骝\",\n\"騰\": \"腾\",\n\"騶\": \"驺\",\n\"騷\": \"骚\",\n\"騸\": \"骟\",\n\"騾\": \"骡\",\n\"驀\": \"蓦\",\n\"驁\": \"骜\",\n\"驂\": \"骖\",\n\"驃\": \"骠\",\n\"驄\": \"骢\",\n\"驅\": \"驱\",\n\"驊\": \"骅\",\n\"驌\": \"骕\",\n\"驍\": \"骁\",\n\"驏\": \"骣\",\n\"驕\": \"骄\",\n\"驗\": \"验\",\n\"驚\": \"惊\",\n\"驛\": \"驿\",\n\"驟\": \"骤\",\n\"驢\": \"驴\",\n\"驤\": \"骧\",\n\"驥\": \"骥\",\n\"驦\": \"骦\",\n\"驪\": \"骊\",\n\"驫\": \"骉\",\n\"骯\": \"肮\",\n\"髏\": \"髅\",\n\"髒\": \"脏\",\n\"體\": \"体\",\n\"髕\": \"髌\",\n\"髖\": \"髋\",\n\"髮\": \"发\",\n\"鬆\": \"松\",\n\"鬍\": \"胡\",\n\"鬚\": \"须\",\n\"鬢\": \"鬓\",\n\"鬥\": \"斗\",\n\"鬧\": \"闹\",\n\"鬩\": \"阋\",\n\"鬮\": \"阄\",\n\"鬱\": \"郁\",\n\"魎\": \"魉\",\n\"魘\": \"魇\",\n\"魚\": \"鱼\",\n\"魛\": \"鱽\",\n\"魢\": \"鱾\",\n\"魨\": \"鲀\",\n\"魯\": \"鲁\",\n\"魴\": \"鲂\",\n\"魷\": \"鱿\",\n\"魺\": \"鲄\",\n\"鮁\": \"鲅\",\n\"鮃\": \"鲆\",\n\"鮊\": \"鲌\",\n\"鮋\": \"鲉\",\n\"鮍\": \"鲏\",\n\"鮎\": \"鲇\",\n\"鮐\": \"鲐\",\n\"鮑\": \"鲍\",\n\"鮒\": \"鲋\",\n\"鮓\": \"鲊\",\n\"鮚\": \"鲒\",\n\"鮜\": \"鲘\",\n\"鮝\": \"鲞\",\n\"鮞\": \"鲕\",\n\"鮦\": \"鲖\",\n\"鮪\": \"鲔\",\n\"鮫\": \"鲛\",\n\"鮭\": \"鲑\",\n\"鮮\": \"鲜\",\n\"鮳\": \"鲓\",\n\"鮶\": \"鲪\",\n\"鮺\": \"鲝\",\n\"鯀\": \"鲧\",\n\"鯁\": \"鲠\",\n\"鯇\": \"鲩\",\n\"鯉\": \"鲤\",\n\"鯊\": \"鲨\",\n\"鯒\": \"鲬\",\n\"鯔\": \"鲻\",\n\"鯕\": \"鲯\",\n\"鯖\": \"鲭\",\n\"鯗\": \"鲞\",\n\"鯛\": \"鲷\",\n\"鯝\": \"鲴\",\n\"鯡\": \"鲱\",\n\"鯢\": \"鲵\",\n\"鯤\": \"鲲\",\n\"鯧\": \"鲳\",\n\"鯨\": \"鲸\",\n\"鯪\": \"鲮\",\n\"鯫\": \"鲰\",\n\"鯴\": \"鲺\",\n\"鯷\": \"鳀\",\n\"鯽\": \"鲫\",\n\"鯿\": \"鳊\",\n\"鰁\": \"鳈\",\n\"鰂\": \"鲗\",\n\"鰃\": \"鳂\",\n\"鰈\": \"鲽\",\n\"鰉\": \"鳇\",\n\"鰍\": \"鳅\",\n\"鰏\": \"鲾\",\n\"鰐\": \"鳄\",\n\"鰒\": \"鳆\",\n\"鰓\": \"鳃\",\n\"鰜\": \"鳒\",\n\"鰟\": \"鳑\",\n\"鰠\": \"鳋\",\n\"鰣\": \"鲥\",\n\"鰥\": \"鳏\",\n\"鰨\": \"鳎\",\n\"鰩\": \"鳐\",\n\"鰭\": \"鳍\",\n\"鰮\": \"鳁\",\n\"鰱\": \"鲢\",\n\"鰲\": \"鳌\",\n\"鰳\": \"鳓\",\n\"鰵\": \"鳘\",\n\"鰷\": \"鲦\",\n\"鰹\": \"鲣\",\n\"鰺\": \"鲹\",\n\"鰻\": \"鳗\",\n\"鰼\": \"鳛\",\n\"鰾\": \"鳔\",\n\"鱂\": \"鳉\",\n\"鱅\": \"鳙\",\n\"鱈\": \"鳕\",\n\"鱉\": \"鳖\",\n\"鱒\": \"鳟\",\n\"鱔\": \"鳝\",\n\"鱖\": \"鳜\",\n\"鱗\": \"鳞\",\n\"鱘\": \"鲟\",\n\"鱝\": \"鲼\",\n\"鱟\": \"鲎\",\n\"鱠\": \"鲙\",\n\"鱣\": \"鳣\",\n\"鱤\": \"鳡\",\n\"鱧\": \"鳢\",\n\"鱨\": \"鲿\",\n\"鱭\": \"鲚\",\n\"鱯\": \"鳠\",\n\"鱷\": \"鳄\",\n\"鱸\": \"鲈\",\n\"鱺\": \"鲡\",\n\"䰾\": \"鲃\",\n\"䲁\": \"鳚\",\n\"鳥\": \"鸟\",\n\"鳧\": \"凫\",\n\"鳩\": \"鸠\",\n\"鳬\": \"凫\",\n\"鳲\": \"鸤\",\n\"鳳\": \"凤\",\n\"鳴\": \"鸣\",\n\"鳶\": \"鸢\",\n\"鳾\": \"䴓\",\n\"鴆\": \"鸩\",\n\"鴇\": \"鸨\",\n\"鴉\": \"鸦\",\n\"鴒\": \"鸰\",\n\"鴕\": \"鸵\",\n\"鴛\": \"鸳\",\n\"鴝\": \"鸲\",\n\"鴞\": \"鸮\",\n\"鴟\": \"鸱\",\n\"鴣\": \"鸪\",\n\"鴦\": \"鸯\",\n\"鴨\": \"鸭\",\n\"鴯\": \"鸸\",\n\"鴰\": \"鸹\",\n\"鴴\": \"鸻\",\n\"鴷\": \"䴕\",\n\"鴻\": \"鸿\",\n\"鴿\": \"鸽\",\n\"鵁\": \"䴔\",\n\"鵂\": \"鸺\",\n\"鵃\": \"鸼\",\n\"鵐\": \"鹀\",\n\"鵑\": \"鹃\",\n\"鵒\": \"鹆\",\n\"鵓\": \"鹁\",\n\"鵜\": \"鹈\",\n\"鵝\": \"鹅\",\n\"鵠\": \"鹄\",\n\"鵡\": \"鹉\",\n\"鵪\": \"鹌\",\n\"鵬\": \"鹏\",\n\"鵮\": \"鹐\",\n\"鵯\": \"鹎\",\n\"鵲\": \"鹊\",\n\"鵷\": \"鹓\",\n\"鵾\": \"鹍\",\n\"鶄\": \"䴖\",\n\"鶇\": \"鸫\",\n\"鶉\": \"鹑\",\n\"鶊\": \"鹒\",\n\"鶓\": \"鹋\",\n\"鶖\": \"鹙\",\n\"鶘\": \"鹕\",\n\"鶚\": \"鹗\",\n\"鶡\": \"鹖\",\n\"鶥\": \"鹛\",\n\"鶩\": \"鹜\",\n\"鶪\": \"䴗\",\n\"鶬\": \"鸧\",\n\"鶯\": \"莺\",\n\"鶲\": \"鹟\",\n\"鶴\": \"鹤\",\n\"鶹\": \"鹠\",\n\"鶺\": \"鹡\",\n\"鶻\": \"鹘\",\n\"鶼\": \"鹣\",\n\"鶿\": \"鹚\",\n\"鷀\": \"鹚\",\n\"鷁\": \"鹢\",\n\"鷂\": \"鹞\",\n\"鷄\": \"鸡\",\n\"鷈\": \"䴘\",\n\"鷊\": \"鹝\",\n\"鷓\": \"鹧\",\n\"鷖\": \"鹥\",\n\"鷗\": \"鸥\",\n\"鷙\": \"鸷\",\n\"鷚\": \"鹨\",\n\"鷥\": \"鸶\",\n\"鷦\": \"鹪\",\n\"鷫\": \"鹔\",\n\"鷯\": \"鹩\",\n\"鷲\": \"鹫\",\n\"鷳\": \"鹇\",\n\"鷸\": \"鹬\",\n\"鷹\": \"鹰\",\n\"鷺\": \"鹭\",\n\"鷽\": \"鸴\",\n\"鷿\": \"䴙\",\n\"鸂\": \"㶉\",\n\"鸇\": \"鹯\",\n\"鸌\": \"鹱\",\n\"鸏\": \"鹲\",\n\"鸕\": \"鸬\",\n\"鸘\": \"鹴\",\n\"鸚\": \"鹦\",\n\"鸛\": \"鹳\",\n\"鸝\": \"鹂\",\n\"鸞\": \"鸾\",\n\"鹵\": \"卤\",\n\"鹹\": \"咸\",\n\"鹺\": \"鹾\",\n\"鹽\": \"盐\",\n\"麗\": \"丽\",\n\"麥\": \"麦\",\n\"麩\": \"麸\",\n\"麯\": \"曲\",\n\"麵\": \"面\",\n\"麼\": \"么\",\n\"麽\": \"么\",\n\"黃\": \"黄\",\n\"黌\": \"黉\",\n\"點\": \"点\",\n\"黨\": \"党\",\n\"黲\": \"黪\",\n\"黴\": \"霉\",\n\"黶\": \"黡\",\n\"黷\": \"黩\",\n\"黽\": \"黾\",\n\"黿\": \"鼋\",\n\"鼉\": \"鼍\",\n\"鼕\": \"冬\",\n\"鼴\": \"鼹\",\n\"齊\": \"齐\",\n\"齋\": \"斋\",\n\"齎\": \"赍\",\n\"齏\": \"齑\",\n\"齒\": \"齿\",\n\"齔\": \"龀\",\n\"齕\": \"龁\",\n\"齗\": \"龂\",\n\"齙\": \"龅\",\n\"齜\": \"龇\",\n\"齟\": \"龃\",\n\"齠\": \"龆\",\n\"齡\": \"龄\",\n\"齣\": \"出\",\n\"齦\": \"龈\",\n\"齪\": \"龊\",\n\"齬\": \"龉\",\n\"齲\": \"龋\",\n\"齶\": \"腭\",\n\"齷\": \"龌\",\n\"龍\": \"龙\",\n\"龎\": \"厐\",\n\"龐\": \"庞\",\n\"龔\": \"龚\",\n\"龕\": \"龛\",\n\"龜\": \"龟\",\n\n\"幾畫\": \"几画\",\n\"賣畫\": \"卖画\",\n\"滷鹼\": \"卤碱\",\n\"原畫\": \"原画\",\n\"口鹼\": \"口碱\",\n\"古畫\": \"古画\",\n\"名畫\": \"名画\",\n\"奇畫\": \"奇画\",\n\"如畫\": \"如画\",\n\"弱鹼\": \"弱碱\",\n\"彩畫\": \"彩画\",\n\"所畫\": \"所画\",\n\"扉畫\": \"扉画\",\n\"教畫\": \"教画\",\n\"水鹼\": \"水碱\",\n\"洋鹼\": \"洋碱\",\n\"炭畫\": \"炭画\",\n\"畫一\": \"画一\",\n\"畫上\": \"画上\",\n\"畫下\": \"画下\",\n\"畫中\": \"画中\",\n\"畫供\": \"画供\",\n\"畫兒\": \"画儿\",\n\"畫具\": \"画具\",\n\"畫出\": \"画出\",\n\"畫史\": \"画史\",\n\"畫品\": \"画品\",\n\"畫商\": \"画商\",\n\"畫圈\": \"画圈\",\n\"畫境\": \"画境\",\n\"畫工\": \"画工\",\n\"畫帖\": \"画帖\",\n\"畫幅\": \"画幅\",\n\"畫意\": \"画意\",\n\"畫成\": \"画成\",\n\"畫景\": \"画景\",\n\"畫本\": \"画本\",\n\"畫架\": \"画架\",\n\"畫框\": \"画框\",\n\"畫法\": \"画法\",\n\"畫王\": \"画王\",\n\"畫界\": \"画界\",\n\"畫符\": \"画符\",\n\"畫紙\": \"画纸\",\n\"畫線\": \"画线\",\n\"畫航\": \"画航\",\n\"畫舫\": \"画舫\",\n\"畫虎\": \"画虎\",\n\"畫論\": \"画论\",\n\"畫譜\": \"画谱\",\n\"畫象\": \"画象\",\n\"畫質\": \"画质\",\n\"畫貼\": \"画贴\",\n\"畫軸\": \"画轴\",\n\"畫頁\": \"画页\",\n\"鹽鹼\": \"盐碱\",\n\"鹼\": \"碱\",\n\"鹼基\": \"碱基\",\n\"鹼度\": \"碱度\",\n\"鹼水\": \"碱水\",\n\"鹼熔\": \"碱熔\",\n\"磁畫\": \"磁画\",\n\"策畫\": \"策画\",\n\"組畫\": \"组画\",\n\"絹畫\": \"绢画\",\n\"耐鹼\": \"耐碱\",\n\"肉鹼\": \"肉碱\",\n\"膠畫\": \"胶画\",\n\"茶鹼\": \"茶碱\",\n\"西畫\": \"西画\",\n\"貼畫\": \"贴画\",\n\"返鹼\": \"返碱\",\n\"鍾鍛\": \"锺锻\",\n\"鍛鍾\": \"锻锺\",\n\"雕畫\": \"雕画\",\n\"鯰\": \"鲶\",\n\"三聯畫\": \"三联画\",\n\"中國畫\": \"中国画\",\n\"書畫\": \"书画\",\n\"書畫社\": \"书画社\",\n\"五筆畫\": \"五笔画\",\n\"作畫\": \"作画\",\n\"入畫\": \"入画\",\n\"寫生畫\": \"写生画\",\n\"刻畫\": \"刻画\",\n\"動畫\": \"动画\",\n\"勾畫\": \"勾画\",\n\"單色畫\": \"单色画\",\n\"卡通畫\": \"卡通画\",\n\"國畫\": \"国画\",\n\"圖畫\": \"图画\",\n\"壁畫\": \"壁画\",\n\"字畫\": \"字画\",\n\"宣傳畫\": \"宣传画\",\n\"工筆畫\": \"工笔画\",\n\"年畫\": \"年画\",\n\"幽默畫\": \"幽默画\",\n\"指畫\": \"指画\",\n\"描畫\": \"描画\",\n\"插畫\": \"插画\",\n\"擘畫\": \"擘画\",\n\"春畫\": \"春画\",\n\"木刻畫\": \"木刻画\",\n\"機械畫\": \"机械画\",\n\"比畫\": \"比画\",\n\"毛筆畫\": \"毛笔画\",\n\"水粉畫\": \"水粉画\",\n\"油畫\": \"油画\",\n\"海景畫\": \"海景画\",\n\"漫畫\": \"漫画\",\n\"點畫\": \"点画\",\n\"版畫\": \"版画\",\n\"畫\": \"画\",\n\"畫像\": \"画像\",\n\"畫冊\": \"画册\",\n\"畫刊\": \"画刊\",\n\"畫匠\": \"画匠\",\n\"畫捲\": \"画卷\",\n\"畫圖\": \"画图\",\n\"畫壇\": \"画坛\",\n\"畫室\": \"画室\",\n\"畫家\": \"画家\",\n\"畫屏\": \"画屏\",\n\"畫展\": \"画展\",\n\"畫布\": \"画布\",\n\"畫師\": \"画师\",\n\"畫廊\": \"画廊\",\n\"畫報\": \"画报\",\n\"畫押\": \"画押\",\n\"畫板\": \"画板\",\n\"畫片\": \"画片\",\n\"畫畫\": \"画画\",\n\"畫皮\": \"画皮\",\n\"畫眉鳥\": \"画眉鸟\",\n\"畫稿\": \"画稿\",\n\"畫筆\": \"画笔\",\n\"畫院\": \"画院\",\n\"畫集\": \"画集\",\n\"畫面\": \"画面\",\n\"筆畫\": \"笔画\",\n\"細密畫\": \"细密画\",\n\"繪畫\": \"绘画\",\n\"自畫像\": \"自画像\",\n\"蠟筆畫\": \"蜡笔画\",\n\"裸體畫\": \"裸体画\",\n\"西洋畫\": \"西洋画\",\n\"透視畫\": \"透视画\",\n\"銅版畫\": \"铜版画\",\n\"鍾\": \"锺\",\n\"靜物畫\": \"静物画\",\n\"餘\": \"馀\",\n}\n\nzh2TW = {\n\"缺省\": \"預設\",\n\"串行\": \"串列\",\n\"以太网\": \"乙太網\",\n\"位图\": \"點陣圖\",\n\"例程\": \"常式\",\n\"信道\": \"通道\",\n\"光标\": \"游標\",\n\"光盘\": \"光碟\",\n\"光驱\": \"光碟機\",\n\"全角\": \"全形\",\n\"加载\": \"載入\",\n\"半角\": \"半形\",\n\"变量\": \"變數\",\n\"噪声\": \"雜訊\",\n\"脱机\": \"離線\",\n\"声卡\": \"音效卡\",\n\"老字号\": \"老字號\",\n\"字号\": \"字型大小\",\n\"字库\": \"字型檔\",\n\"字段\": \"欄位\",\n\"字符\": \"字元\",\n\"存盘\": \"存檔\",\n\"寻址\": \"定址\",\n\"尾注\": \"章節附註\",\n\"异步\": \"非同步\",\n\"总线\": \"匯流排\",\n\"括号\": \"括弧\",\n\"接口\": \"介面\",\n\"控件\": \"控制項\",\n\"权限\": \"許可權\",\n\"盘片\": \"碟片\",\n\"硅片\": \"矽片\",\n\"硅谷\": \"矽谷\",\n\"硬盘\": \"硬碟\",\n\"磁盘\": \"磁碟\",\n\"磁道\": \"磁軌\",\n\"程控\": \"程式控制\",\n\"端口\": \"埠\",\n\"算子\": \"運算元\",\n\"算法\": \"演算法\",\n\"芯片\": \"晶片\",\n\"芯片\": \"晶元\",\n\"词组\": \"片語\",\n\"译码\": \"解碼\",\n\"软驱\": \"軟碟機\",\n\"快闪存储器\": \"快閃記憶體\",\n\"闪存\": \"快閃記憶體\",\n\"鼠标\": \"滑鼠\",\n\"进制\": \"進位\",\n\"交互式\": \"互動式\",\n\"仿真\": \"模擬\",\n\"优先级\": \"優先順序\",\n\"传感\": \"感測\",\n\"便携式\": \"攜帶型\",\n\"信息论\": \"資訊理論\",\n\"写保护\": \"防寫\",\n\"分布式\": \"分散式\",\n\"分辨率\": \"解析度\",\n\"服务器\": \"伺服器\",\n\"等于\": \"等於\",\n\"局域网\": \"區域網\",\n\"计算机\": \"電腦\",\n\"扫瞄仪\": \"掃瞄器\",\n\"宽带\": \"寬頻\",\n\"数据库\": \"資料庫\",\n\"奶酪\": \"乳酪\",\n\"巨商\": \"鉅賈\",\n\"手电\": \"手電筒\",\n\"万历\": \"萬曆\",\n\"永历\": \"永曆\",\n\"词汇\": \"辭彙\",\n\"习用\": \"慣用\",\n\"元音\": \"母音\",\n\"任意球\": \"自由球\",\n\"头球\": \"頭槌\",\n\"入球\": \"進球\",\n\"粒入球\": \"顆進球\",\n\"打门\": \"射門\",\n\"火锅盖帽\": \"蓋火鍋\",\n\"打印机\": \"印表機\",\n\"打印機\": \"印表機\",\n\"字节\": \"位元組\",\n\"字節\": \"位元組\",\n\"打印\": \"列印\",\n\"打印\": \"列印\",\n\"硬件\": \"硬體\",\n\"硬件\": \"硬體\",\n\"二极管\": \"二極體\",\n\"二極管\": \"二極體\",\n\"三极管\": \"三極體\",\n\"三極管\": \"三極體\",\n\"软件\": \"軟體\",\n\"軟件\": \"軟體\",\n\"网络\": \"網路\",\n\"網絡\": \"網路\",\n\"人工智能\": \"人工智慧\",\n\"航天飞机\": \"太空梭\",\n\"穿梭機\": \"太空梭\",\n\"因特网\": \"網際網路\",\n\"互聯網\": \"網際網路\",\n\"机器人\": \"機器人\",\n\"機械人\": \"機器人\",\n\"移动电话\": \"行動電話\",\n\"流動電話\": \"行動電話\",\n\"调制解调器\": \"數據機\",\n\"調制解調器\": \"數據機\",\n\"短信\": \"簡訊\",\n\"短訊\": \"簡訊\",\n\"乌兹别克斯坦\": \"烏茲別克\",\n\"乍得\": \"查德\",\n\"乍得\": \"查德\",\n\"也门\": \"葉門\",\n\"也門\": \"葉門\",\n\"伯利兹\": \"貝里斯\",\n\"伯利茲\": \"貝里斯\",\n\"佛得角\": \"維德角\",\n\"佛得角\": \"維德角\",\n\"克罗地亚\": \"克羅埃西亞\",\n\"克羅地亞\": \"克羅埃西亞\",\n\"冈比亚\": \"甘比亞\",\n\"岡比亞\": \"甘比亞\",\n\"几内亚比绍\": \"幾內亞比索\",\n\"幾內亞比紹\": \"幾內亞比索\",\n\"列支敦士登\": \"列支敦斯登\",\n\"列支敦士登\": \"列支敦斯登\",\n\"利比里亚\": \"賴比瑞亞\",\n\"利比里亞\": \"賴比瑞亞\",\n\"加纳\": \"迦納\",\n\"加納\": \"迦納\",\n\"加蓬\": \"加彭\",\n\"加蓬\": \"加彭\",\n\"博茨瓦纳\": \"波札那\",\n\"博茨瓦納\": \"波札那\",\n\"卡塔尔\": \"卡達\",\n\"卡塔爾\": \"卡達\",\n\"卢旺达\": \"盧安達\",\n\"盧旺達\": \"盧安達\",\n\"危地马拉\": \"瓜地馬拉\",\n\"危地馬拉\": \"瓜地馬拉\",\n\"厄瓜多尔\": \"厄瓜多\",\n\"厄瓜多爾\": \"厄瓜多\",\n\"厄立特里亚\": \"厄利垂亞\",\n\"厄立特里亞\": \"厄利垂亞\",\n\"吉布提\": \"吉布地\",\n\"吉布堤\": \"吉布地\",\n\"哈萨克斯坦\": \"哈薩克\",\n\"哥斯达黎加\": \"哥斯大黎加\",\n\"哥斯達黎加\": \"哥斯大黎加\",\n\"图瓦卢\": \"吐瓦魯\",\n\"圖瓦盧\": \"吐瓦魯\",\n\"土库曼斯坦\": \"土庫曼\",\n\"圣卢西亚\": \"聖露西亞\",\n\"聖盧西亞\": \"聖露西亞\",\n\"圣基茨和尼维斯\": \"聖克里斯多福及尼維斯\",\n\"聖吉斯納域斯\": \"聖克里斯多福及尼維斯\",\n\"圣文森特和格林纳丁斯\": \"聖文森及格瑞那丁\",\n\"聖文森特和格林納丁斯\": \"聖文森及格瑞那丁\",\n\"圣马力诺\": \"聖馬利諾\",\n\"聖馬力諾\": \"聖馬利諾\",\n\"圭亚那\": \"蓋亞那\",\n\"圭亞那\": \"蓋亞那\",\n\"坦桑尼亚\": \"坦尚尼亞\",\n\"坦桑尼亞\": \"坦尚尼亞\",\n\"埃塞俄比亚\": \"衣索比亞\",\n\"埃塞俄比亞\": \"衣索比亞\",\n\"基里巴斯\": \"吉里巴斯\",\n\"基里巴斯\": \"吉里巴斯\",\n\"塔吉克斯坦\": \"塔吉克\",\n\"塞拉利昂\": \"獅子山\",\n\"塞拉利昂\": \"獅子山\",\n\"塞浦路斯\": \"塞普勒斯\",\n\"塞浦路斯\": \"塞普勒斯\",\n\"塞舌尔\": \"塞席爾\",\n\"塞舌爾\": \"塞席爾\",\n\"多米尼加\": \"多明尼加\",\n\"多明尼加共和國\": \"多明尼加\",\n\"多米尼加联邦\": \"多米尼克\",\n\"多明尼加聯邦\": \"多米尼克\",\n\"安提瓜和巴布达\": \"安地卡及巴布達\",\n\"安提瓜和巴布達\": \"安地卡及巴布達\",\n\"尼日利亚\": \"奈及利亞\",\n\"尼日利亞\": \"奈及利亞\",\n\"尼日尔\": \"尼日\",\n\"尼日爾\": \"尼日\",\n\"巴巴多斯\": \"巴貝多\",\n\"巴巴多斯\": \"巴貝多\",\n\"巴布亚新几内亚\": \"巴布亞紐幾內亞\",\n\"巴布亞新畿內亞\": \"巴布亞紐幾內亞\",\n\"布基纳法索\": \"布吉納法索\",\n\"布基納法索\": \"布吉納法索\",\n\"布隆迪\": \"蒲隆地\",\n\"布隆迪\": \"蒲隆地\",\n\"希腊\": \"希臘\",\n\"帕劳\": \"帛琉\",\n\"意大利\": \"義大利\",\n\"意大利\": \"義大利\",\n\"所罗门群岛\": \"索羅門群島\",\n\"所羅門群島\": \"索羅門群島\",\n\"文莱\": \"汶萊\",\n\"斯威士兰\": \"史瓦濟蘭\",\n\"斯威士蘭\": \"史瓦濟蘭\",\n\"斯洛文尼亚\": \"斯洛維尼亞\",\n\"斯洛文尼亞\": \"斯洛維尼亞\",\n\"新西兰\": \"紐西蘭\",\n\"新西蘭\": \"紐西蘭\",\n\"格林纳达\": \"格瑞那達\",\n\"格林納達\": \"格瑞那達\",\n\"格鲁吉亚\": \"喬治亞\",\n\"格魯吉亞\": \"喬治亞\",\n\"佐治亚\": \"喬治亞\",\n\"佐治亞\": \"喬治亞\",\n\"毛里塔尼亚\": \"茅利塔尼亞\",\n\"毛里塔尼亞\": \"茅利塔尼亞\",\n\"毛里求斯\": \"模里西斯\",\n\"毛里裘斯\": \"模里西斯\",\n\"沙特阿拉伯\": \"沙烏地阿拉伯\",\n\"沙地阿拉伯\": \"沙烏地阿拉伯\",\n\"波斯尼亚和黑塞哥维那\": \"波士尼亞赫塞哥維納\",\n\"波斯尼亞黑塞哥維那\": \"波士尼亞赫塞哥維納\",\n\"津巴布韦\": \"辛巴威\",\n\"津巴布韋\": \"辛巴威\",\n\"洪都拉斯\": \"宏都拉斯\",\n\"洪都拉斯\": \"宏都拉斯\",\n\"特立尼达和托巴哥\": \"千里達托貝哥\",\n\"特立尼達和多巴哥\": \"千里達托貝哥\",\n\"瑙鲁\": \"諾魯\",\n\"瑙魯\": \"諾魯\",\n\"瓦努阿图\": \"萬那杜\",\n\"瓦努阿圖\": \"萬那杜\",\n\"溫納圖萬\": \"那杜\",\n\"科摩罗\": \"葛摩\",\n\"科摩羅\": \"葛摩\",\n\"科特迪瓦\": \"象牙海岸\",\n\"突尼斯\": \"突尼西亞\",\n\"索马里\": \"索馬利亞\",\n\"索馬里\": \"索馬利亞\",\n\"老挝\": \"寮國\",\n\"老撾\": \"寮國\",\n\"肯尼亚\": \"肯亞\",\n\"肯雅\": \"肯亞\",\n\"苏里南\": \"蘇利南\",\n\"莫桑比克\": \"莫三比克\",\n\"莱索托\": \"賴索托\",\n\"萊索托\": \"賴索托\",\n\"贝宁\": \"貝南\",\n\"貝寧\": \"貝南\",\n\"赞比亚\": \"尚比亞\",\n\"贊比亞\": \"尚比亞\",\n\"阿塞拜疆\": \"亞塞拜然\",\n\"阿塞拜疆\": \"亞塞拜然\",\n\"阿拉伯联合酋长国\": \"阿拉伯聯合大公國\",\n\"阿拉伯聯合酋長國\": \"阿拉伯聯合大公國\",\n\"马尔代夫\": \"馬爾地夫\",\n\"馬爾代夫\": \"馬爾地夫\",\n\"马耳他\": \"馬爾他\",\n\"马里共和国\": \"馬利共和國\",\n\"馬里共和國\": \"馬利共和國\",\n\"方便面\": \"速食麵\",\n\"快速面\": \"速食麵\",\n\"即食麵\": \"速食麵\",\n\"薯仔\": \"土豆\",\n\"蹦极跳\": \"笨豬跳\",\n\"绑紧跳\": \"笨豬跳\",\n\"冷菜\": \"冷盤\",\n\"凉菜\": \"冷盤\",\n\"出租车\": \"計程車\",\n\"台球\": \"撞球\",\n\"桌球\": \"撞球\",\n\"雪糕\": \"冰淇淋\",\n\"卫生\": \"衛生\",\n\"衞生\": \"衛生\",\n\"平治\": \"賓士\",\n\"奔驰\": \"賓士\",\n\"積架\": \"捷豹\",\n\"福士\": \"福斯\",\n\"雪铁龙\": \"雪鐵龍\",\n\"马自达\": \"馬自達\",\n\"萬事得\": \"馬自達\",\n\"拿破仑\": \"拿破崙\",\n\"拿破侖\": \"拿破崙\",\n\"布什\": \"布希\",\n\"布殊\": \"布希\",\n\"克林顿\": \"柯林頓\",\n\"克林頓\": \"柯林頓\",\n\"侯赛因\": \"海珊\",\n\"侯賽因\": \"海珊\",\n\"凡高\": \"梵谷\",\n\"狄安娜\": \"黛安娜\",\n\"戴安娜\": \"黛安娜\",\n\"赫拉\": \"希拉\",\n}\n\nzh2HK = {\n\"打印机\": \"打印機\",\n\"印表機\": \"打印機\",\n\"字节\": \"位元組\",\n\"字節\": \"位元組\",\n\"打印\": \"打印\",\n\"列印\": \"打印\",\n\"硬件\": \"硬件\",\n\"硬體\": \"硬件\",\n\"二极管\": \"二極管\",\n\"二極體\": \"二極管\",\n\"三极管\": \"三極管\",\n\"三極體\": \"三極管\",\n\"数码\": \"數碼\",\n\"數位\": \"數碼\",\n\"软件\": \"軟件\",\n\"軟體\": \"軟件\",\n\"网络\": \"網絡\",\n\"網路\": \"網絡\",\n\"人工智能\": \"人工智能\",\n\"人工智慧\": \"人工智能\",\n\"航天飞机\": \"穿梭機\",\n\"太空梭\": \"穿梭機\",\n\"因特网\": \"互聯網\",\n\"網際網路\": \"互聯網\",\n\"机器人\": \"機械人\",\n\"機器人\": \"機械人\",\n\"移动电话\": \"流動電話\",\n\"行動電話\": \"流動電話\",\n\"调制解调器\": \"調制解調器\",\n\"數據機\": \"調制解調器\",\n\"短信\": \"短訊\",\n\"簡訊\": \"短訊\",\n\"乍得\": \"乍得\",\n\"查德\": \"乍得\",\n\"也门\": \"也門\",\n\"葉門\": \"也門\",\n\"伯利兹\": \"伯利茲\",\n\"貝里斯\": \"伯利茲\",\n\"佛得角\": \"佛得角\",\n\"維德角\": \"佛得角\",\n\"克罗地亚\": \"克羅地亞\",\n\"克羅埃西亞\": \"克羅地亞\",\n\"冈比亚\": \"岡比亞\",\n\"甘比亞\": \"岡比亞\",\n\"几内亚比绍\": \"幾內亞比紹\",\n\"幾內亞比索\": \"幾內亞比紹\",\n\"列支敦士登\": \"列支敦士登\",\n\"列支敦斯登\": \"列支敦士登\",\n\"利比里亚\": \"利比里亞\",\n\"賴比瑞亞\": \"利比里亞\",\n\"加纳\": \"加納\",\n\"迦納\": \"加納\",\n\"加蓬\": \"加蓬\",\n\"加彭\": \"加蓬\",\n\"博茨瓦纳\": \"博茨瓦納\",\n\"波札那\": \"博茨瓦納\",\n\"卡塔尔\": \"卡塔爾\",\n\"卡達\": \"卡塔爾\",\n\"卢旺达\": \"盧旺達\",\n\"盧安達\": \"盧旺達\",\n\"危地马拉\": \"危地馬拉\",\n\"瓜地馬拉\": \"危地馬拉\",\n\"厄瓜多尔\": \"厄瓜多爾\",\n\"厄瓜多\": \"厄瓜多爾\",\n\"厄立特里亚\": \"厄立特里亞\",\n\"厄利垂亞\": \"厄立特里亞\",\n\"吉布提\": \"吉布堤\",\n\"吉布地\": \"吉布堤\",\n\"哥斯达黎加\": \"哥斯達黎加\",\n\"哥斯大黎加\": \"哥斯達黎加\",\n\"图瓦卢\": \"圖瓦盧\",\n\"吐瓦魯\": \"圖瓦盧\",\n\"圣卢西亚\": \"聖盧西亞\",\n\"聖露西亞\": \"聖盧西亞\",\n\"圣基茨和尼维斯\": \"聖吉斯納域斯\",\n\"聖克里斯多福及尼維斯\": \"聖吉斯納域斯\",\n\"圣文森特和格林纳丁斯\": \"聖文森特和格林納丁斯\",\n\"聖文森及格瑞那丁\": \"聖文森特和格林納丁斯\",\n\"圣马力诺\": \"聖馬力諾\",\n\"聖馬利諾\": \"聖馬力諾\",\n\"圭亚那\": \"圭亞那\",\n\"蓋亞那\": \"圭亞那\",\n\"坦桑尼亚\": \"坦桑尼亞\",\n\"坦尚尼亞\": \"坦桑尼亞\",\n\"埃塞俄比亚\": \"埃塞俄比亞\",\n\"衣索匹亞\": \"埃塞俄比亞\",\n\"衣索比亞\": \"埃塞俄比亞\",\n\"基里巴斯\": \"基里巴斯\",\n\"吉里巴斯\": \"基里巴斯\",\n\"狮子山\": \"獅子山\",\n\"塞普勒斯\": \"塞浦路斯\",\n\"塞舌尔\": \"塞舌爾\",\n\"塞席爾\": \"塞舌爾\",\n\"多米尼加\": \"多明尼加共和國\",\n\"多明尼加\": \"多明尼加共和國\",\n\"多米尼加联邦\": \"多明尼加聯邦\",\n\"多米尼克\": \"多明尼加聯邦\",\n\"安提瓜和巴布达\": \"安提瓜和巴布達\",\n\"安地卡及巴布達\": \"安提瓜和巴布達\",\n\"尼日利亚\": \"尼日利亞\",\n\"奈及利亞\": \"尼日利亞\",\n\"尼日尔\": \"尼日爾\",\n\"尼日\": \"尼日爾\",\n\"巴巴多斯\": \"巴巴多斯\",\n\"巴貝多\": \"巴巴多斯\",\n\"巴布亚新几内亚\": \"巴布亞新畿內亞\",\n\"巴布亞紐幾內亞\": \"巴布亞新畿內亞\",\n\"布基纳法索\": \"布基納法索\",\n\"布吉納法索\": \"布基納法索\",\n\"布隆迪\": \"布隆迪\",\n\"蒲隆地\": \"布隆迪\",\n\"義大利\": \"意大利\",\n\"所罗门群岛\": \"所羅門群島\",\n\"索羅門群島\": \"所羅門群島\",\n\"斯威士兰\": \"斯威士蘭\",\n\"史瓦濟蘭\": \"斯威士蘭\",\n\"斯洛文尼亚\": \"斯洛文尼亞\",\n\"斯洛維尼亞\": \"斯洛文尼亞\",\n\"新西兰\": \"新西蘭\",\n\"紐西蘭\": \"新西蘭\",\n\"格林纳达\": \"格林納達\",\n\"格瑞那達\": \"格林納達\",\n\"格鲁吉亚\": \"喬治亞\",\n\"格魯吉亞\": \"喬治亞\",\n\"梵蒂冈\": \"梵蒂岡\",\n\"毛里塔尼亚\": \"毛里塔尼亞\",\n\"茅利塔尼亞\": \"毛里塔尼亞\",\n\"毛里求斯\": \"毛里裘斯\",\n\"模里西斯\": \"毛里裘斯\",\n\"沙烏地阿拉伯\": \"沙特阿拉伯\",\n\"波斯尼亚和黑塞哥维那\": \"波斯尼亞黑塞哥維那\",\n\"波士尼亞赫塞哥維納\": \"波斯尼亞黑塞哥維那\",\n\"津巴布韦\": \"津巴布韋\",\n\"辛巴威\": \"津巴布韋\",\n\"洪都拉斯\": \"洪都拉斯\",\n\"宏都拉斯\": \"洪都拉斯\",\n\"特立尼达和托巴哥\": \"特立尼達和多巴哥\",\n\"千里達托貝哥\": \"特立尼達和多巴哥\",\n\"瑙鲁\": \"瑙魯\",\n\"諾魯\": \"瑙魯\",\n\"瓦努阿图\": \"瓦努阿圖\",\n\"萬那杜\": \"瓦努阿圖\",\n\"科摩罗\": \"科摩羅\",\n\"葛摩\": \"科摩羅\",\n\"索马里\": \"索馬里\",\n\"索馬利亞\": \"索馬里\",\n\"老挝\": \"老撾\",\n\"寮國\": \"老撾\",\n\"肯尼亚\": \"肯雅\",\n\"肯亞\": \"肯雅\",\n\"莫桑比克\": \"莫桑比克\",\n\"莫三比克\": \"莫桑比克\",\n\"莱索托\": \"萊索托\",\n\"賴索托\": \"萊索托\",\n\"贝宁\": \"貝寧\",\n\"貝南\": \"貝寧\",\n\"赞比亚\": \"贊比亞\",\n\"尚比亞\": \"贊比亞\",\n\"阿塞拜疆\": \"阿塞拜疆\",\n\"亞塞拜然\": \"阿塞拜疆\",\n\"阿拉伯联合酋长国\": \"阿拉伯聯合酋長國\",\n\"阿拉伯聯合大公國\": \"阿拉伯聯合酋長國\",\n\"马尔代夫\": \"馬爾代夫\",\n\"馬爾地夫\": \"馬爾代夫\",\n\"馬利共和國\": \"馬里共和國\",\n\"方便面\": \"即食麵\",\n\"快速面\": \"即食麵\",\n\"速食麵\": \"即食麵\",\n\"泡麵\": \"即食麵\",\n\"土豆\": \"馬鈴薯\",\n\"华乐\": \"中樂\",\n\"民乐\": \"中樂\",\n\"計程車\": \"的士\",\n\"出租车\": \"的士\",\n\"公車\": \"巴士\",\n\"自行车\": \"單車\",\n\"犬只\": \"狗隻\",\n\"台球\": \"桌球\",\n\"撞球\": \"桌球\",\n\"冰淇淋\": \"雪糕\",\n\"賓士\": \"平治\",\n\"捷豹\": \"積架\",\n\"福斯\": \"福士\",\n\"雪铁龙\": \"先進\",\n\"雪鐵龍\": \"先進\",\n\"沃尓沃\": \"富豪\",\n\"马自达\": \"萬事得\",\n\"馬自達\": \"萬事得\",\n\"寶獅\": \"標致\",\n\"拿破崙\": \"拿破侖\",\n\"布什\": \"布殊\",\n\"布希\": \"布殊\",\n\"克林顿\": \"克林頓\",\n\"柯林頓\": \"克林頓\",\n\"萨达姆\": \"薩達姆\",\n\"海珊\": \"侯賽因\",\n\"侯赛因\": \"侯賽因\",\n\"大卫·贝克汉姆\": \"大衛碧咸\",\n\"迈克尔·欧文\": \"米高奧雲\",\n\"珍妮弗·卡普里亚蒂\": \"卡佩雅蒂\",\n\"马拉特·萨芬\": \"沙芬\",\n\"迈克尔·舒马赫\": \"舒麥加\",\n\"希特勒\": \"希特拉\",\n\"狄安娜\": \"戴安娜\",\n\"黛安娜\": \"戴安娜\",\n}\n\nzh2CN = {\n\"記憶體\": \"内存\",\n\"預設\": \"默认\",\n\"串列\": \"串行\",\n\"乙太網\": \"以太网\",\n\"點陣圖\": \"位图\",\n\"常式\": \"例程\",\n\"游標\": \"光标\",\n\"光碟\": \"光盘\",\n\"光碟機\": \"光驱\",\n\"全形\": \"全角\",\n\"共用\": \"共享\",\n\"載入\": \"加载\",\n\"半形\": \"半角\",\n\"變數\": \"变量\",\n\"雜訊\": \"噪声\",\n\"因數\": \"因子\",\n\"功能變數名稱\": \"域名\",\n\"音效卡\": \"声卡\",\n\"字型大小\": \"字号\",\n\"字型檔\": \"字库\",\n\"欄位\": \"字段\",\n\"字元\": \"字符\",\n\"存檔\": \"存盘\",\n\"定址\": \"寻址\",\n\"章節附註\": \"尾注\",\n\"非同步\": \"异步\",\n\"匯流排\": \"总线\",\n\"括弧\": \"括号\",\n\"介面\": \"接口\",\n\"控制項\": \"控件\",\n\"許可權\": \"权限\",\n\"碟片\": \"盘片\",\n\"矽片\": \"硅片\",\n\"矽谷\": \"硅谷\",\n\"硬碟\": \"硬盘\",\n\"磁碟\": \"磁盘\",\n\"磁軌\": \"磁道\",\n\"程式控制\": \"程控\",\n\"運算元\": \"算子\",\n\"演算法\": \"算法\",\n\"晶片\": \"芯片\",\n\"晶元\": \"芯片\",\n\"片語\": \"词组\",\n\"軟碟機\": \"软驱\",\n\"快閃記憶體\": \"快闪存储器\",\n\"滑鼠\": \"鼠标\",\n\"進位\": \"进制\",\n\"互動式\": \"交互式\",\n\"優先順序\": \"优先级\",\n\"感測\": \"传感\",\n\"攜帶型\": \"便携式\",\n\"資訊理論\": \"信息论\",\n\"迴圈\": \"循环\",\n\"防寫\": \"写保护\",\n\"分散式\": \"分布式\",\n\"解析度\": \"分辨率\",\n\"伺服器\": \"服务器\",\n\"等於\": \"等于\",\n\"區域網\": \"局域网\",\n\"巨集\": \"宏\",\n\"掃瞄器\": \"扫瞄仪\",\n\"寬頻\": \"宽带\",\n\"資料庫\": \"数据库\",\n\"乳酪\": \"奶酪\",\n\"鉅賈\": \"巨商\",\n\"手電筒\": \"手电\",\n\"萬曆\": \"万历\",\n\"永曆\": \"永历\",\n\"辭彙\": \"词汇\",\n\"母音\": \"元音\",\n\"自由球\": \"任意球\",\n\"頭槌\": \"头球\",\n\"進球\": \"入球\",\n\"顆進球\": \"粒入球\",\n\"射門\": \"打门\",\n\"蓋火鍋\": \"火锅盖帽\",\n\"印表機\": \"打印机\",\n\"打印機\": \"打印机\",\n\"位元組\": \"字节\",\n\"字節\": \"字节\",\n\"列印\": \"打印\",\n\"打印\": \"打印\",\n\"硬體\": \"硬件\",\n\"二極體\": \"二极管\",\n\"二極管\": \"二极管\",\n\"三極體\": \"三极管\",\n\"三極管\": \"三极管\",\n\"數位\": \"数码\",\n\"數碼\": \"数码\",\n\"軟體\": \"软件\",\n\"軟件\": \"软件\",\n\"網路\": \"网络\",\n\"網絡\": \"网络\",\n\"人工智慧\": \"人工智能\",\n\"太空梭\": \"航天飞机\",\n\"穿梭機\": \"航天飞机\",\n\"網際網路\": \"因特网\",\n\"互聯網\": \"因特网\",\n\"機械人\": \"机器人\",\n\"機器人\": \"机器人\",\n\"行動電話\": \"移动电话\",\n\"流動電話\": \"移动电话\",\n\"調制解調器\": \"调制解调器\",\n\"數據機\": \"调制解调器\",\n\"短訊\": \"短信\",\n\"簡訊\": \"短信\",\n\"烏茲別克\": \"乌兹别克斯坦\",\n\"查德\": \"乍得\",\n\"乍得\": \"乍得\",\n\"也門\": \"\",\n\"葉門\": \"也门\",\n\"伯利茲\": \"伯利兹\",\n\"貝里斯\": \"伯利兹\",\n\"維德角\": \"佛得角\",\n\"佛得角\": \"佛得角\",\n\"克羅地亞\": \"克罗地亚\",\n\"克羅埃西亞\": \"克罗地亚\",\n\"岡比亞\": \"冈比亚\",\n\"甘比亞\": \"冈比亚\",\n\"幾內亞比紹\": \"几内亚比绍\",\n\"幾內亞比索\": \"几内亚比绍\",\n\"列支敦斯登\": \"列支敦士登\",\n\"列支敦士登\": \"列支敦士登\",\n\"利比里亞\": \"利比里亚\",\n\"賴比瑞亞\": \"利比里亚\",\n\"加納\": \"加纳\",\n\"迦納\": \"加纳\",\n\"加彭\": \"加蓬\",\n\"加蓬\": \"加蓬\",\n\"博茨瓦納\": \"博茨瓦纳\",\n\"波札那\": \"博茨瓦纳\",\n\"卡塔爾\": \"卡塔尔\",\n\"卡達\": \"卡塔尔\",\n\"盧旺達\": \"卢旺达\",\n\"盧安達\": \"卢旺达\",\n\"危地馬拉\": \"危地马拉\",\n\"瓜地馬拉\": \"危地马拉\",\n\"厄瓜多爾\": \"厄瓜多尔\",\n\"厄瓜多\": \"厄瓜多尔\",\n\"厄立特里亞\": \"厄立特里亚\",\n\"厄利垂亞\": \"厄立特里亚\",\n\"吉布堤\": \"吉布提\",\n\"吉布地\": \"吉布提\",\n\"哈薩克\": \"哈萨克斯坦\",\n\"哥斯達黎加\": \"哥斯达黎加\",\n\"哥斯大黎加\": \"哥斯达黎加\",\n\"圖瓦盧\": \"图瓦卢\",\n\"吐瓦魯\": \"图瓦卢\",\n\"土庫曼\": \"土库曼斯坦\",\n\"聖盧西亞\": \"圣卢西亚\",\n\"聖露西亞\": \"圣卢西亚\",\n\"聖吉斯納域斯\": \"圣基茨和尼维斯\",\n\"聖克里斯多福及尼維斯\": \"圣基茨和尼维斯\",\n\"聖文森特和格林納丁斯\": \"圣文森特和格林纳丁斯\",\n\"聖文森及格瑞那丁\": \"圣文森特和格林纳丁斯\",\n\"聖馬力諾\": \"圣马力诺\",\n\"聖馬利諾\": \"圣马力诺\",\n\"圭亞那\": \"圭亚那\",\n\"蓋亞那\": \"圭亚那\",\n\"坦桑尼亞\": \"坦桑尼亚\",\n\"坦尚尼亞\": \"坦桑尼亚\",\n\"埃塞俄比亞\": \"埃塞俄比亚\",\n\"衣索匹亞\": \"埃塞俄比亚\",\n\"衣索比亞\": \"埃塞俄比亚\",\n\"吉里巴斯\": \"基里巴斯\",\n\"基里巴斯\": \"基里巴斯\",\n\"塔吉克\": \"塔吉克斯坦\",\n\"塞拉利昂\": \"塞拉利昂\",\n\"塞普勒斯\": \"塞浦路斯\",\n\"塞浦路斯\": \"塞浦路斯\",\n\"塞舌爾\": \"塞舌尔\",\n\"塞席爾\": \"塞舌尔\",\n\"多明尼加共和國\": \"多米尼加\",\n\"多明尼加\": \"多米尼加\",\n\"多明尼加聯邦\": \"多米尼加联邦\",\n\"多米尼克\": \"多米尼加联邦\",\n\"安提瓜和巴布達\": \"安提瓜和巴布达\",\n\"安地卡及巴布達\": \"安提瓜和巴布达\",\n\"尼日利亞\": \"尼日利亚\",\n\"奈及利亞\": \"尼日利亚\",\n\"尼日爾\": \"尼日尔\",\n\"尼日\": \"尼日尔\",\n\"巴貝多\": \"巴巴多斯\",\n\"巴巴多斯\": \"巴巴多斯\",\n\"巴布亞新畿內亞\": \"巴布亚新几内亚\",\n\"巴布亞紐幾內亞\": \"巴布亚新几内亚\",\n\"布基納法索\": \"布基纳法索\",\n\"布吉納法索\": \"布基纳法索\",\n\"蒲隆地\": \"布隆迪\",\n\"布隆迪\": \"布隆迪\",\n\"希臘\": \"希腊\",\n\"帛琉\": \"帕劳\",\n\"義大利\": \"意大利\",\n\"意大利\": \"意大利\",\n\"所羅門群島\": \"所罗门群岛\",\n\"索羅門群島\": \"所罗门群岛\",\n\"汶萊\": \"文莱\",\n\"斯威士蘭\": \"斯威士兰\",\n\"史瓦濟蘭\": \"斯威士兰\",\n\"斯洛文尼亞\": \"斯洛文尼亚\",\n\"斯洛維尼亞\": \"斯洛文尼亚\",\n\"新西蘭\": \"新西兰\",\n\"紐西蘭\": \"新西兰\",\n\"格林納達\": \"格林纳达\",\n\"格瑞那達\": \"格林纳达\",\n\"格魯吉亞\": \"乔治亚\",\n\"喬治亞\": \"乔治亚\",\n\"梵蒂岡\": \"梵蒂冈\",\n\"毛里塔尼亞\": \"毛里塔尼亚\",\n\"茅利塔尼亞\": \"毛里塔尼亚\",\n\"毛里裘斯\": \"毛里求斯\",\n\"模里西斯\": \"毛里求斯\",\n\"沙地阿拉伯\": \"沙特阿拉伯\",\n\"沙烏地阿拉伯\": \"沙特阿拉伯\",\n\"波斯尼亞黑塞哥維那\": \"波斯尼亚和黑塞哥维那\",\n\"波士尼亞赫塞哥維納\": \"波斯尼亚和黑塞哥维那\",\n\"津巴布韋\": \"津巴布韦\",\n\"辛巴威\": \"津巴布韦\",\n\"宏都拉斯\": \"洪都拉斯\",\n\"洪都拉斯\": \"洪都拉斯\",\n\"特立尼達和多巴哥\": \"特立尼达和托巴哥\",\n\"千里達托貝哥\": \"特立尼达和托巴哥\",\n\"瑙魯\": \"瑙鲁\",\n\"諾魯\": \"瑙鲁\",\n\"瓦努阿圖\": \"瓦努阿图\",\n\"萬那杜\": \"瓦努阿图\",\n\"溫納圖\": \"瓦努阿图\",\n\"科摩羅\": \"科摩罗\",\n\"葛摩\": \"科摩罗\",\n\"象牙海岸\": \"科特迪瓦\",\n\"突尼西亞\": \"突尼斯\",\n\"索馬里\": \"索马里\",\n\"索馬利亞\": \"索马里\",\n\"老撾\": \"老挝\",\n\"寮國\": \"老挝\",\n\"肯雅\": \"肯尼亚\",\n\"肯亞\": \"肯尼亚\",\n\"蘇利南\": \"苏里南\",\n\"莫三比克\": \"莫桑比克\",\n\"莫桑比克\": \"莫桑比克\",\n\"萊索托\": \"莱索托\",\n\"賴索托\": \"莱索托\",\n\"貝寧\": \"贝宁\",\n\"貝南\": \"贝宁\",\n\"贊比亞\": \"赞比亚\",\n\"尚比亞\": \"赞比亚\",\n\"亞塞拜然\": \"阿塞拜疆\",\n\"阿塞拜疆\": \"阿塞拜疆\",\n\"阿拉伯聯合酋長國\": \"阿拉伯联合酋长国\",\n\"阿拉伯聯合大公國\": \"阿拉伯联合酋长国\",\n\"南韓\": \"韩国\",\n\"馬爾代夫\": \"马尔代夫\",\n\"馬爾地夫\": \"马尔代夫\",\n\"馬爾他\": \"马耳他\",\n\"馬利共和國\": \"马里共和国\",\n\"即食麵\": \"方便面\",\n\"快速面\": \"方便面\",\n\"速食麵\": \"方便面\",\n\"泡麵\": \"方便面\",\n\"笨豬跳\": \"蹦极跳\",\n\"绑紧跳\": \"蹦极跳\",\n\"冷盤\": \"凉菜\",\n\"冷菜\": \"凉菜\",\n\"散钱\": \"零钱\",\n\"谐星\": \"笑星\",\n\"夜学\": \"夜校\",\n\"华乐\": \"民乐\",\n\"中樂\": \"民乐\",\n\"屋价\": \"房价\",\n\"的士\": \"出租车\",\n\"計程車\": \"出租车\",\n\"公車\": \"公共汽车\",\n\"單車\": \"自行车\",\n\"節慶\": \"节日\",\n\"芝士\": \"乾酪\",\n\"狗隻\": \"犬只\",\n\"士多啤梨\": \"草莓\",\n\"忌廉\": \"奶油\",\n\"桌球\": \"台球\",\n\"撞球\": \"台球\",\n\"雪糕\": \"冰淇淋\",\n\"衞生\": \"卫生\",\n\"衛生\": \"卫生\",\n\"賓士\": \"奔驰\",\n\"平治\": \"奔驰\",\n\"積架\": \"捷豹\",\n\"福斯\": \"大众\",\n\"福士\": \"大众\",\n\"雪鐵龍\": \"雪铁龙\",\n\"萬事得\": \"马自达\",\n\"馬自達\": \"马自达\",\n\"寶獅\": \"标志\",\n\"拿破崙\": \"拿破仑\",\n\"布殊\": \"布什\",\n\"布希\": \"布什\",\n\"柯林頓\": \"克林顿\",\n\"克林頓\": \"克林顿\",\n\"薩達姆\": \"萨达姆\",\n\"海珊\": \"萨达姆\",\n\"梵谷\": \"凡高\",\n\"大衛碧咸\": \"大卫·贝克汉姆\",\n\"米高奧雲\": \"迈克尔·欧文\",\n\"卡佩雅蒂\": \"珍妮弗·卡普里亚蒂\",\n\"沙芬\": \"马拉特·萨芬\",\n\"舒麥加\": \"迈克尔·舒马赫\",\n\"希特拉\": \"希特勒\",\n\"黛安娜\": \"戴安娜\",\n\"希拉\": \"赫拉\",\n}\n\nzh2SG = {\n\"方便面\": \"快速面\",\n\"速食麵\": \"快速面\",\n\"即食麵\": \"快速面\",\n\"蹦极跳\": \"绑紧跳\",\n\"笨豬跳\": \"绑紧跳\",\n\"凉菜\": \"冷菜\",\n\"冷盤\": \"冷菜\",\n\"零钱\": \"散钱\",\n\"散紙\": \"散钱\",\n\"笑星\": \"谐星\",\n\"夜校\": \"夜学\",\n\"民乐\": \"华乐\",\n\"住房\": \"住屋\",\n\"房价\": \"屋价\",\n\"泡麵\": \"快速面\",\n}\n"
  },
  {
    "path": "utils/lele/README.md",
    "content": ""
  },
  {
    "path": "utils/lele/__init__.py",
    "content": "import lele.layers\nimport lele.losses\n\nfrom lele.ops import *\n\ntry:\n  import lele.fastai \nexcept Exception:\n  pass\n\nfrom lele.util import * \nfrom lele.training import *\nfrom lele.apps import * \n"
  },
  {
    "path": "utils/lele/apps/__init__.py",
    "content": ""
  },
  {
    "path": "utils/lele/apps/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2019-08-07 11:23:23.688250\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport gezi\nlogging = gezi.logging\n\ntry:\n  import torch \n  device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\nexcept Exception:\n  pass\n\ntry:\n  #import horovod.tensorflow as hvd\n  #import horovod.torch as hvd\n  #hvd.init()\n  import mpi4py\n  from mpi4py import MPI\n  comm = MPI.COMM_WORLD\nexcept Exception:\n  pass\n\ndef to_torch(x, y=None):\n  if FLAGS.torch_only:\n    for key in x:\n      if type(x[key][0]) != np.str_:\n        x[key] = x[key].to(device)\n    return x, y.to(device)\n\ndef train(model, \n          loss_fn, \n          dataset=None,\n          valid_dataset=None,\n          valid_dataset2=None,\n          test_dataset=None,\n          evaluate_fn=None, \n          inference_fn=None,\n          eval_fn=None,\n          write_valid=True,\n          valid_names=None,\n          infer_names=None,\n          infer_debug_names=None,\n          valid_write_fn=None,\n          infer_write_fn=None,\n          valid_suffix='.valid',\n          infer_suffix='.infer',\n          write_streaming=False,\n          optimizer=None,\n          param_groups=None,\n          init_fn=None,\n          sep=','):\n  pass\n  \n"
  },
  {
    "path": "utils/lele/fastai/__init__.py",
    "content": "import lele.fastai.text \n\n"
  },
  {
    "path": "utils/lele/fastai/core.py",
    "content": "\"`fastai.core` contains essential util functions to format and split data\"\nfrom .imports.core import *\n\nwarnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\nwarnings.filterwarnings(\"ignore\", message=\"numpy.ufunc size changed\")\n\nAnnealFunc = Callable[[Number,Number,float], Number]\nArgStar = Collection[Any]\nBatchSamples = Collection[Tuple[Collection[int], int]]\nClasses = Collection[Any]\nDataFrameOrChunks = Union[DataFrame, pd.io.parsers.TextFileReader]\nFilePathList = Collection[Path]\nFloats = Union[float, Collection[float]]\nImgLabel = str\nImgLabels = Collection[ImgLabel]\nKeyFunc = Callable[[int], int]\nKWArgs = Dict[str,Any]\nListOrItem = Union[Collection[Any],int,float,str]\nListRules = Collection[Callable[[str],str]]\nListSizes = Collection[Tuple[int,int]]\nNPArrayableList = Collection[Union[np.ndarray, list]]\nNPArrayList = Collection[np.ndarray]\nNPArrayMask = np.ndarray\nNPImage = np.ndarray\nOptDataFrame = Optional[DataFrame]\nOptListOrItem = Optional[ListOrItem]\nOptRange = Optional[Tuple[float,float]]\nOptStrTuple = Optional[Tuple[str,str]]\nOptStats = Optional[Tuple[np.ndarray, np.ndarray]]\nPathOrStr = Union[Path,str]\nPBar = Union[MasterBar, ProgressBar]\nPoint=Tuple[float,float]\nPoints=Collection[Point]\nSizes = List[List[int]]\nSplitArrayList = List[Tuple[np.ndarray,np.ndarray]]\nStartOptEnd=Union[float,Tuple[float,float]]\nStrList = Collection[str]\nTokens = Collection[Collection[str]]\nOptStrList = Optional[StrList]\n\ndef num_cpus()->int:\n    \"Get number of cpus\"\n    try:                   return len(os.sched_getaffinity(0))\n    except AttributeError: return os.cpu_count()\n\ndefault_cpus = min(16, num_cpus())\n\ndef is_listy(x:Any)->bool: return isinstance(x, (tuple,list))\ndef is_tuple(x:Any)->bool: return isinstance(x, tuple)\ndef noop(x): return x\n\ndef to_int(b):\n    if is_listy(b): return [to_int(x) for x in b]\n    else:          return int(b)\n\ndef ifnone(a:Any,b:Any)->Any:\n    \"`a` if `a` is not None, otherwise `b`.\"\n    return b if a is None else a\n\ndef uniqueify(x:Series) -> List[Any]: return list(OrderedDict.fromkeys(x).keys())\ndef idx_dict(a): return {v:k for k,v in enumerate(a)}\n\ndef find_classes(folder:Path)->FilePathList:\n    \"List of label subdirectories in imagenet-style `folder`.\"\n    classes = [d for d in folder.iterdir()\n               if d.is_dir() and not d.name.startswith('.')]\n    assert(len(classes)>0)\n    return sorted(classes, key=lambda d: d.name)\n\ndef arrays_split(mask:NPArrayMask, *arrs:NPArrayableList)->SplitArrayList:\n    \"Given `arrs` is [a,b,...] and `mask`index - return[(a[mask],a[~mask]),(b[mask],b[~mask]),...].\"\n    mask = array(mask)\n    return list(zip(*[(a[mask],a[~mask]) for a in map(np.array, arrs)]))\n\ndef random_split(valid_pct:float, *arrs:NPArrayableList)->SplitArrayList:\n    \"Randomly split `arrs` with `valid_pct` ratio. good for creating validation set.\"\n    is_train = np.random.uniform(size=(len(arrs[0]),)) > valid_pct\n    return arrays_split(is_train, *arrs)\n\ndef listify(p:OptListOrItem=None, q:OptListOrItem=None):\n    \"Make `p` same length as `q`\"\n    if p is None: p=[]\n    elif not isinstance(p, Iterable): p=[p]\n    n = q if type(q)==int else len(p) if q is None else len(q)\n    if len(p)==1: p = p * n\n    assert len(p)==n, f'List len mismatch ({len(p)} vs {n})'\n    return list(p)\n\n_camel_re1 = re.compile('(.)([A-Z][a-z]+)')\n_camel_re2 = re.compile('([a-z0-9])([A-Z])')\ndef camel2snake(name:str)->str:\n    s1 = re.sub(_camel_re1, r'\\1_\\2', name)\n    return re.sub(_camel_re2, r'\\1_\\2', s1).lower()\n\ndef even_mults(start:float, stop:float, n:int)->np.ndarray:\n    \"Build evenly stepped schedule from `start` to `stop` in `n` steps.\"\n    mult = stop/start\n    step = mult**(1/(n-1))\n    return np.array([start*(step**i) for i in range(n)])\n\ndef extract_kwargs(names:Collection[str], kwargs:KWArgs):\n    \"Extracs the keys in `names` from the `kwargs`.\"\n    new_kwargs = {}\n    for arg_name in names:\n        if arg_name in kwargs:\n            arg_val = kwargs.pop(arg_name)\n            new_kwargs[arg_name] = arg_val\n    return new_kwargs, kwargs\n\ndef partition(a:Collection, sz:int) -> List[Collection]:\n    \"Split iterables `a` in equal parts of size `sz`\"\n    return [a[i:i+sz] for i in range(0, len(a), sz)]\n\ndef partition_by_cores(a:Collection, n_cpus:int) -> List[Collection]:\n    \"Split data in `a` equally among `n_cpus` cores\"\n    return partition(a, len(a)//n_cpus + 1)\n\ndef get_chunk_length(data:Union[PathOrStr, DataFrame, pd.io.parsers.TextFileReader], chunksize:Optional[int] = None) -> int:\n    \"Read the number of chunks in a pandas `DataFrame`.\"\n    if (type(data) == DataFrame):  return 1\n    elif (type(data) == pd.io.parsers.TextFileReader):\n        dfs = pd.read_csv(data.f, header=None, chunksize=data.chunksize)\n    else:  dfs = pd.read_csv(data, header=None, chunksize=chunksize)\n    l = 0\n    for _ in dfs: l+=1\n    return l\n\ndef get_total_length(csv_name:PathOrStr, chunksize:int) -> int:\n    \"Read the the total length of a pandas `DataFrame`.\"\n    dfs = pd.read_csv(csv_name, header=None, chunksize=chunksize)\n    l = 0\n    for df in dfs: l+=len(df)\n    return l\n\ndef maybe_copy(old_fnames:Collection[PathOrStr], new_fnames:Collection[PathOrStr]):\n    \"Copy the `old_fnames` to `new_fnames` location if `new_fnames` don't exist or are less recent.\"\n    os.makedirs(os.path.dirname(new_fnames[0]), exist_ok=True)\n    for old_fname,new_fname in zip(old_fnames, new_fnames):\n        if not os.path.isfile(new_fname) or os.path.getmtime(new_fname) < os.path.getmtime(old_fname):\n            shutil.copyfile(old_fname, new_fname)\n\ndef series2cat(df:DataFrame, *col_names):\n    \"Categorifies the columns `col_names` in `df`.\"\n    for c in listify(col_names): df[c] = df[c].astype('category').cat.as_ordered()\n\nclass ItemBase():\n    \"All transformable dataset items use this type.\"\n    @property\n    @abstractmethod\n    def device(self): pass\n    @property\n    @abstractmethod\n    def data(self): pass\n\ndef download_url(url:str, dest:str, overwrite:bool=False)->None:\n    \"Download `url` to `dest` unless is exists and not `overwrite`.\"\n    if os.path.exists(dest) and not overwrite: return\n    u = requests.get(url, stream=True)\n    file_size = int(u.headers[\"Content-Length\"])\n    u = u.raw\n\n    with open(dest,'wb') as f:\n        pbar = progress_bar(range(file_size), auto_update=False)\n        nbytes,buffer = 0,[1]\n        while len(buffer):\n            buffer = u.read(8192)\n            nbytes += len(buffer)\n            pbar.update(nbytes)\n            f.write(buffer)\n\ndef range_of(x): return list(range(len(x)))\ndef arange_of(x): return np.arange(len(x))"
  },
  {
    "path": "utils/lele/fastai/imports/__init__.py",
    "content": "from .core import *\r\nfrom .torch import *\r\n"
  },
  {
    "path": "utils/lele/fastai/imports/core.py",
    "content": "import csv, gc, gzip, os, pickle, shutil, sys, warnings\nimport math, matplotlib.pyplot as plt, numpy as np, pandas as pd, random\nimport scipy.stats, scipy.special\nimport abc, collections, hashlib, itertools, json, operator\nimport mimetypes, inspect, typing, functools\nimport html, re, spacy, requests\n\nfrom abc import abstractmethod, abstractproperty\nfrom collections import abc,  Counter, defaultdict, Iterable, namedtuple, OrderedDict\nfrom concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor\nfrom copy import copy, deepcopy\nfrom dataclasses import dataclass, field\nfrom enum import Enum, IntEnum\nfrom fastprogress import master_bar, progress_bar\nfrom functools import partial, reduce\nfrom IPython.core.debugger import set_trace\nfrom matplotlib import patches, patheffects\nfrom numpy import array, cos, exp, log, sin, tan, tanh\nfrom operator import attrgetter, itemgetter\nfrom pathlib import Path\nfrom spacy.symbols import ORTH\nfrom warnings import warn\n\n#for type annotations\nfrom fastprogress.fastprogress import MasterBar, ProgressBar\nfrom matplotlib.patches import Patch\nfrom numbers import Number\nfrom pandas import Series, DataFrame\nfrom typing import Any, AnyStr, Callable, Collection, Dict, Hashable, Iterator, List, Mapping, NewType, Optional \nfrom typing import Sequence, Tuple, TypeVar, Union\n"
  },
  {
    "path": "utils/lele/fastai/imports/torch.py",
    "content": "import torch, torch.nn.functional as F\nfrom torch import ByteTensor, DoubleTensor, FloatTensor, HalfTensor, LongTensor, ShortTensor, Tensor\nfrom torch import nn, optim, as_tensor, tensor\nfrom torch.utils.data import BatchSampler, DataLoader, Dataset, Sampler, TensorDataset\n"
  },
  {
    "path": "utils/lele/fastai/layers.py",
    "content": "\"`fastai.layers` provides essential functions to building and modifying `model` architectures\"\nfrom .torch_core import *\n\n__all__ = ['AdaptiveConcatPool2d', 'CrossEntropyFlat', 'Debugger', 'Flatten', 'Lambda', 'PoolFlatten', 'ResizeBatch', \n           'StdUpsample', 'bn_drop_lin', 'conv2d', 'conv2d_relu', 'conv2d_trans', 'conv_layer', 'get_embedding', 'simple_cnn', \n           'std_upsample_head', 'trunc_normal_']\n\nclass Lambda(nn.Module):\n    \"An easy way to create a pytorch layer for a simple `func`.\"\n    def __init__(self, func:LambdaFunc):\n        \"create a layer that simply calls `func` with `x`\"\n        super().__init__()\n        self.func=func\n\n    def forward(self, x): return self.func(x)\n\ndef ResizeBatch(*size:int) -> Tensor:\n    \"Layer that resizes x to `size`, good for connecting mismatched layers.\"\n    return Lambda(lambda x: x.view((-1,)+size))\n\ndef Flatten()->Tensor:\n    \"Flattens `x` to a single dimension, often used at the end of a model.\"\n    return Lambda(lambda x: x.view((x.size(0), -1)))\n\ndef PoolFlatten()->nn.Sequential:\n    \"Apply `nn.AdaptiveAvgPool2d` to `x` and then flatten the result.\"\n    return nn.Sequential(nn.AdaptiveAvgPool2d(1), Flatten())\n\ndef bn_drop_lin(n_in:int, n_out:int, bn:bool=True, p:float=0., actn:Optional[nn.Module]=None):\n    \"`n_in`->bn->dropout->linear(`n_in`,`n_out`)->`actn`\"\n    layers = [nn.BatchNorm1d(n_in)] if bn else []\n    if p != 0: layers.append(nn.Dropout(p))\n    layers.append(nn.Linear(n_in, n_out))\n    if actn is not None: layers.append(actn)\n    return layers\n\ndef conv2d(ni:int, nf:int, ks:int=3, stride:int=1, padding:int=None, bias=False) -> nn.Conv2d:\n    \"Create `nn.Conv2d` layer: `ni` inputs, `nf` outputs, `ks` kernel size. `padding` defaults to `k//2`.\"\n    if padding is None: padding = ks//2\n    return nn.Conv2d(ni, nf, kernel_size=ks, stride=stride, padding=padding, bias=bias)\n\ndef conv_layer(ni:int, nf:int, ks:int=3, stride:int=1)->nn.Sequential:\n    \"Create Conv2d->BatchNorm2d->LeakyReLu layer: `ni` input, `nf` out filters, `ks` kernel, `stride`:stride.\"\n    return nn.Sequential(\n        nn.Conv2d(ni, nf, kernel_size=ks, bias=False, stride=stride, padding=ks//2),\n        nn.BatchNorm2d(nf),\n        nn.LeakyReLU(negative_slope=0.1, inplace=True))\n\ndef conv2d_relu(ni:int, nf:int, ks:int=3, stride:int=1, padding:int=None, bn:bool=False,\n                bias:bool=False) -> nn.Sequential:\n    \"\"\"Create a `conv2d` layer with `nn.ReLU` activation and optional(`bn`) `nn.BatchNorm2d`: `ni` input, `nf` out \n    filters, `ks` kernel, `stride`:stride, `padding`:padding, `bn`: batch normalization.\"\"\"\n    layers = [conv2d(ni, nf, ks=ks, stride=stride, padding=padding, bias=bias), nn.ReLU()]\n    if bn: layers.append(nn.BatchNorm2d(nf))\n    return nn.Sequential(*layers)\n\ndef conv2d_trans(ni:int, nf:int, ks:int=2, stride:int=2, padding:int=0) -> nn.ConvTranspose2d:\n    \"Create `nn.ConvTranspose2d` layer: `ni` inputs, `nf` outputs, `ks` kernel size, `stride`: stride. `padding` defaults to 0.\"\n    return nn.ConvTranspose2d(ni, nf, kernel_size=ks, stride=stride, padding=padding)\n\nclass AdaptiveConcatPool2d(nn.Module):\n    \"Layer that concats `AdaptiveAvgPool2d` and `AdaptiveMaxPool2d`.\"\n    def __init__(self, sz:Optional[int]=None):\n        \"Output will be 2*sz or 2 if sz is None\"\n        super().__init__()\n        sz = sz or 1\n        self.ap,self.mp = nn.AdaptiveAvgPool2d(sz), nn.AdaptiveMaxPool2d(sz)\n    def forward(self, x): return torch.cat([self.mp(x), self.ap(x)], 1)\n\nclass Debugger(nn.Module):\n    \"A module to debug inside a model.\"\n    def forward(self,x:Tensor) -> Tensor:\n        set_trace()\n        return x\n\nclass StdUpsample(nn.Module):\n    \"Increases the dimensionality of our data by applying a transposed convolution layer.\"\n    def __init__(self, n_in:int, n_out:int):\n        super().__init__()\n        self.conv = conv2d_trans(n_in, n_out)\n        self.bn = nn.BatchNorm2d(n_out)\n\n    def forward(self, x:Tensor) -> Tensor:\n        return self.bn(F.relu(self.conv(x)))\n\ndef std_upsample_head(c, *nfs:Collection[int]) -> Model:\n    \"Create a sequence of upsample layers.\"\n    return nn.Sequential(\n        nn.ReLU(),\n        *(StdUpsample(nfs[i],nfs[i+1]) for i in range(4)),\n        conv2d_trans(nfs[-1], c)\n    )\n\nclass CrossEntropyFlat(nn.CrossEntropyLoss):\n    \"Same as `nn.CrossEntropyLoss`, but flattens input and target.\"\n    def forward(self, input:Tensor, target:Tensor) -> Rank0Tensor:\n        n,c,*_ = input.shape\n        return super().forward(input.view(n, c, -1), target.view(n, -1))\n\ndef simple_cnn(actns:Collection[int], kernel_szs:Collection[int]=None,\n               strides:Collection[int]=None) -> nn.Sequential:\n    \"CNN with `conv2d_relu` layers defined by `actns`, `kernel_szs` and `strides`.\"\n    nl = len(actns)-1\n    kernel_szs = ifnone(kernel_szs, [3]*nl)\n    strides    = ifnone(strides   , [2]*nl)\n    layers = [conv2d_relu(actns[i], actns[i+1], kernel_szs[i], stride=strides[i])\n        for i in range_of(strides)]\n    layers.append(PoolFlatten())\n    return nn.Sequential(*layers)\n\ndef trunc_normal_(x:Tensor, mean:float=0., std:float=1.) -> Tensor:\n    \"Truncated normal initialization.\"\n    # From https://discuss.pytorch.org/t/implementing-truncated-normal-initializer/4778/12\n    return x.normal_().fmod_(2).mul_(std).add_(mean)\n\ndef get_embedding(ni:int,nf:int) -> Model:\n    \"Create an embedding layer.\"\n    emb = nn.Embedding(ni, nf)\n    # See https://arxiv.org/abs/1711.09160\n    with torch.no_grad(): trunc_normal_(emb.weight, std=0.01)\n    return emb\n"
  },
  {
    "path": "utils/lele/fastai/text/__init__.py",
    "content": "from lele.fastai.text.models import *"
  },
  {
    "path": "utils/lele/fastai/text/models.py",
    "content": "from ..torch_core import *\nfrom ..layers import *\n\nimport numpy as np\n\n__all__ = ['EmbeddingDropout', 'LinearDecoder', 'MultiBatchRNNCore', 'PoolingLinearClassifier', 'RNNCore', 'RNNDropout', \n           'SequentialRNN', 'WeightDropout', 'dropout_mask', 'get_language_model', 'get_rnn_classifier', 'classifier']\n\ndef dropout_mask(x:Tensor, sz:Collection[int], p:float):\n    \"Return a dropout mask of the same type as x, size sz, with probability p to cancel an element.\"\n    return x.new(*sz).bernoulli_(1-p).div_(1-p)\n\nclass RNNDropout(nn.Module):\n    \"Dropout that is consistent on the seq_len dimension.\"\n\n    def __init__(self, p:float=0.5):\n        super().__init__()\n        self.p=p\n\n    def forward(self, x:Tensor) -> Tensor:\n        if not self.training or self.p == 0.: return x\n        m = dropout_mask(x.data, (1, x.size(1), x.size(2)), self.p)\n        return x * m\n\nclass WeightDropout(nn.Module):\n    \"A module that warps another layer in which some weights will be replaced by 0 during training.\"\n\n    def __init__(self, module:Model, weight_p:float, layer_names:Collection[str]=['weight_hh_l0']):\n        super().__init__()\n        self.module,self.weight_p,self.layer_names = module,weight_p,layer_names\n        for layer in self.layer_names:\n            #Makes a copy of the weights of the selected layers.\n            w = getattr(self.module, layer)\n            self.register_parameter(f'{layer}_raw', nn.Parameter(w.data))\n\n    def _setweights(self):\n        \"Apply dropout to the raw weights.\"\n        for layer in self.layer_names:\n            raw_w = getattr(self, f'{layer}_raw')\n            self.module._parameters[layer] = F.dropout(raw_w, p=self.weight_p, training=self.training)\n\n    def forward(self, *args:ArgStar):\n        self._setweights()\n        with warnings.catch_warnings():\n            #To avoid the warning that comes because the weights aren't flattened.\n            warnings.simplefilter(\"ignore\")\n            return self.module.forward(*args)\n\n    def reset(self):\n        for layer in self.layer_names:\n            raw_w = getattr(self, f'{layer}_raw')\n            self.module._parameters[layer] = F.dropout(raw_w, p=self.weight_p, training=False)\n        if hasattr(self.module, 'reset'): self.module.reset()\n\nclass EmbeddingDropout(nn.Module):\n    \"Apply dropout in the embedding layer by zeroing out some elements of the embedding vector.\"\n\n    def __init__(self, emb:Model, embed_p:float):\n        super().__init__()\n        self.emb,self.embed_p = emb,embed_p\n        self.pad_idx = self.emb.padding_idx\n        if self.pad_idx is None: self.pad_idx = -1\n\n    def forward(self, words:LongTensor, scale:Optional[float]=None) -> Tensor:\n        if self.training and self.embed_p != 0:\n            size = (self.emb.weight.size(0),1)\n            mask = dropout_mask(self.emb.weight.data, size, self.embed_p)\n            masked_embed = self.emb.weight * mask\n        else: masked_embed = self.emb.weight\n        if scale: masked_embed.mul_(scale)\n        return F.embedding(words, masked_embed, self.pad_idx, self.emb.max_norm,\n                           self.emb.norm_type, self.emb.scale_grad_by_freq, self.emb.sparse)\n\ndef _repackage_var(h:Tensors) -> Tensors:\n    \"Detach h from its history.\"\n    return h.detach() if type(h) == torch.Tensor else tuple(_repackage_var(v) for v in h)\n\nclass RNNCore(nn.Module):\n    \"AWD-LSTM/QRNN inspired by https://arxiv.org/abs/1708.02182.\"\n\n    initrange=0.1\n\n    def __init__(self, vocab_sz:int, emb_sz:int, n_hid:int, n_layers:int, pad_token:int, bidir:bool=False,\n                 hidden_p:float=0.2, input_p:float=0.6, embed_p:float=0.1, weight_p:float=0.5, qrnn:bool=False):\n\n        super().__init__()\n        self.bs,self.qrnn,self.ndir = 1, qrnn,(2 if bidir else 1)\n        self.emb_sz,self.n_hid,self.n_layers = emb_sz,n_hid,n_layers\n        self.encoder = nn.Embedding(vocab_sz, emb_sz, padding_idx=pad_token)\n        self.encoder_dp = EmbeddingDropout(self.encoder, embed_p)\n        if self.qrnn:\n            #Using QRNN requires cupy: https://github.com/cupy/cupy\n            from .qrnn.qrnn import QRNNLayer\n            self.rnns = [QRNNLayer(emb_sz if l == 0 else n_hid, (n_hid if l != n_layers - 1 else emb_sz)//self.ndir,\n                                   save_prev_x=True, zoneout=0, window=2 if l == 0 else 1, output_gate=True,\n                                   use_cuda=torch.cuda.is_available()) for l in range(n_layers)]\n            if weight_p != 0.:\n                for rnn in self.rnns:\n                    rnn.linear = WeightDropout(rnn.linear, weight_p, layer_names=['weight'])\n        else:\n            self.rnns = [nn.LSTM(emb_sz if l == 0 else n_hid, (n_hid if l != n_layers - 1 else emb_sz)//self.ndir,\n                1, bidirectional=bidir) for l in range(n_layers)]\n            if weight_p != 0.: self.rnns = [WeightDropout(rnn, weight_p) for rnn in self.rnns]\n        self.rnns = torch.nn.ModuleList(self.rnns)\n        self.encoder.weight.data.uniform_(-self.initrange, self.initrange)\n        self.input_dp = RNNDropout(input_p)\n        self.hidden_dps = nn.ModuleList([RNNDropout(hidden_p) for l in range(n_layers)])\n\n    def forward(self, input:LongTensor) -> Tuple[Tensor,Tensor]:\n        sl,bs = input.size()\n        if bs!=self.bs:\n            self.bs=bs\n            self.reset()\n        raw_output = self.input_dp(self.encoder_dp(input))\n        new_hidden,raw_outputs,outputs = [],[],[]\n        for l, (rnn,hid_dp) in enumerate(zip(self.rnns, self.hidden_dps)):\n            raw_output, new_h = rnn(raw_output, self.hidden[l])\n            new_hidden.append(new_h)\n            raw_outputs.append(raw_output)\n            if l != self.n_layers - 1: raw_output = hid_dp(raw_output)\n            outputs.append(raw_output)\n        self.hidden = _repackage_var(new_hidden)\n        return raw_outputs, outputs\n\n    def _one_hidden(self, l:int) -> Tensor:\n        \"Return one hidden state.\"\n        nh = (self.n_hid if l != self.n_layers - 1 else self.emb_sz)//self.ndir\n        return self.weights.new(self.ndir, self.bs, nh).zero_()\n\n    def reset(self):\n        \"Reset the hidden states.\"\n        [r.reset() for r in self.rnns if hasattr(r, 'reset')]\n        self.weights = next(self.parameters()).data\n        if self.qrnn: self.hidden = [self._one_hidden(l) for l in range(self.n_layers)]\n        else: self.hidden = [(self._one_hidden(l), self._one_hidden(l)) for l in range(self.n_layers)]\n\nclass LinearDecoder(nn.Module):\n    \"To go on top of a RNNCore module and create a Language Model.\"\n\n    initrange=0.1\n\n    def __init__(self, n_out:int, n_hid:int, output_p:float, tie_encoder:Model=None, bias:bool=True):\n        super().__init__()\n        self.decoder = nn.Linear(n_hid, n_out, bias=bias)\n        self.decoder.weight.data.uniform_(-self.initrange, self.initrange)\n        self.output_dp = RNNDropout(output_p)\n        if bias: self.decoder.bias.data.zero_()\n        if tie_encoder: self.decoder.weight = tie_encoder.weight\n\n    def forward(self, input:Tuple[Tensor,Tensor]) -> Tuple[Tensor,Tensor,Tensor]:\n        raw_outputs, outputs = input\n        output = self.output_dp(outputs[-1])\n        decoded = self.decoder(output.view(output.size(0)*output.size(1), output.size(2)))\n        return decoded, raw_outputs, outputs\n\nclass SequentialRNN(nn.Sequential):\n    \"A sequential module that passes the reset call to its children.\"\n    def reset(self):\n        for c in self.children():\n            if hasattr(c, 'reset'): c.reset()\n\nclass MultiBatchRNNCore(RNNCore):\n    \"Create a RNNCore module that can process a full sentence.\"\n\n    def __init__(self, bptt:int, max_seq:int, *args, **kwargs):\n        self.max_seq,self.bptt = max_seq,bptt\n        super().__init__(*args, **kwargs)\n\n    def concat(self, arrs:Collection[Tensor]) -> Tensor:\n        \"Concatenate the `arrs` along the batch dimension.\"\n        return [torch.cat([l[si] for l in arrs]) for si in range_of(arrs[0])]\n\n    def forward(self, input:LongTensor) -> Tuple[Tensor,Tensor]:\n        sl,bs = input.size()\n        self.reset()\n        raw_outputs, outputs = [],[]\n        for i in range(0, sl, self.bptt):\n            r, o = super().forward(input[i: min(i+self.bptt, sl)])\n            if i>(sl-self.max_seq):\n                raw_outputs.append(r)\n                outputs.append(o)\n        return self.concat(raw_outputs), self.concat(outputs)\n\nclass PoolingLinearClassifier(nn.Module):\n    \"Create a linear classifier with pooling.\"\n\n    def __init__(self, layers:Collection[int], drops:Collection[float]):\n        super().__init__()\n        mod_layers = []\n        activs = [nn.ReLU(inplace=True)] * (len(layers) - 2) + [None]\n        for n_in,n_out,p,actn in zip(layers[:-1],layers[1:], drops, activs):\n            mod_layers += bn_drop_lin(n_in, n_out, p=p, actn=actn)\n        self.layers = nn.Sequential(*mod_layers)\n\n    def pool(self, x:Tensor, bs:int, is_max:bool):\n        \"Pool the tensor along the seq_len dimension.\"\n        f = F.adaptive_max_pool1d if is_max else F.adaptive_avg_pool1d\n        return f(x.permute(1,2,0), (1,)).view(bs,-1)\n\n    def forward(self, input:Tuple[Tensor,Tensor]) -> Tuple[Tensor,Tensor,Tensor]:\n        raw_outputs, outputs = input\n        output = outputs[-1]\n        sl,bs,_ = output.size()\n        avgpool = self.pool(output, bs, False)\n        mxpool = self.pool(output, bs, True)\n        x = torch.cat([output[-1], mxpool, avgpool], 1)\n        x = self.layers(x)\n        return x, raw_outputs, outputs\n\ndef get_language_model(vocab_sz:int, emb_sz:int, n_hid:int, n_layers:int, pad_token:int, tie_weights:bool=True,\n                       qrnn:bool=False, bias:bool=True, bidir:bool=False, output_p:float=0.4, hidden_p:float=0.2, input_p:float=0.6,\n                       embed_p:float=0.1, weight_p:float=0.5) -> Model:\n    \"Create a full AWD-LSTM.\"\n    rnn_enc = RNNCore(vocab_sz, emb_sz, n_hid=n_hid, n_layers=n_layers, pad_token=pad_token, qrnn=qrnn, bidir=bidir,\n                 hidden_p=hidden_p, input_p=input_p, embed_p=embed_p, weight_p=weight_p)\n    enc = rnn_enc.encoder if tie_weights else None\n    return SequentialRNN(rnn_enc, LinearDecoder(vocab_sz, emb_sz, output_p, tie_encoder=enc, bias=bias))\n\ndef get_rnn_classifier(bptt:int, max_seq:int, n_class:int, vocab_sz:int, emb_sz:int, n_hid:int, n_layers:int,\n                       pad_token:int, layers:Collection[int], drops:Collection[float], bidir:bool=False, qrnn:bool=False,\n                       hidden_p:float=0.2, input_p:float=0.6, embed_p:float=0.1, weight_p:float=0.5, embedding_weight:str=None) -> Model:\n    \"Create a RNN classifier model.\"\n    rnn_enc = MultiBatchRNNCore(bptt, max_seq, vocab_sz, emb_sz, n_hid, n_layers, pad_token=pad_token, bidir=bidir,\n                      qrnn=qrnn, hidden_p=hidden_p, input_p=input_p, embed_p=embed_p, weight_p=weight_p)\n    \n    if embedding_weight:\n        print('-------using pre train word embedding', embedding_weight)\n        embedding_weight = np.load(embedding_weight)\n        rnn_enc.encoder.weight.data.copy_(torch.from_numpy(embedding_weight))\n        rnn_enc.encoder.weight.requires_grad = True\n    return SequentialRNN(rnn_enc, PoolingLinearClassifier(layers, drops))\n\ndef classifier(vocab_size, n_class, bptt:int=70, max_len:int=70*20, emb_sz:int=300, nh:int=1200, nl:int=3,\n               lin_ftrs:Collection[int]=None, ps:Collection[float]=None, pad_token:int=0,\n               drop_mult:float=1., qrnn:bool=False, embedding_weight:str=None, **kwargs) -> Model:\n    \"Create a RNN classifier.\"\n    dps = np.array([0.4,0.5,0.05,0.3,0.4]) * drop_mult\n    if lin_ftrs is None: lin_ftrs = [50]\n    if ps is None:  ps = [0.1]\n    layers = [emb_sz*3] + lin_ftrs + [n_class]\n    ps = [dps[4]] + ps\n    model = get_rnn_classifier(bptt, max_len, n_class, vocab_size, emb_sz, nh, nl, pad_token,\n                                layers, ps, input_p=dps[0], weight_p=dps[1], embed_p=dps[2], hidden_p=dps[3], qrnn=qrnn,\n                                embedding_weight=embedding_weight)\n    return model\n"
  },
  {
    "path": "utils/lele/fastai/text/qrnn/__init__.py",
    "content": ""
  },
  {
    "path": "utils/lele/fastai/text/qrnn/forget_mult.py",
    "content": "import math\nimport torch\nfrom torch.autograd import Variable\nfrom cupy.cuda import function\nfrom cupy.cuda.compiler import _NVRTCProgram\nfrom collections import namedtuple\n\n##Adapted from the code here https://github.com/salesforce/pytorch-qrnn, implementation of the QRNN by\n##Bradbury, James and Merity, Stephen and Xiong, Caiming and Socher, Richard \n##https://arxiv.org/abs/1611.01576\n\nkernel = '''\nextern \"C\"\n__global__ void recurrent_forget_mult(float *dst, const float *f, const float *x, int SEQ, int BATCH, int HIDDEN)\n{\n  /*\n  Note: destination is assumed to be one timestep longer than f or x where dst[0] = h_{-1}\n  This means dst array has a separate index than that of f or x\n  */\n  int hid = blockIdx.x * blockDim.x + threadIdx.x;\n  int bid = blockIdx.y * blockDim.y + threadIdx.y;\n  if(hid >= HIDDEN || bid >= BATCH)\n     return;\n  //\n  for (int ts = 0 + 1; ts < SEQ + 1; ts++) {\n     // Good sanity check for debugging - only perform additions to a zeroed chunk of memory\n     // Addition seems atomic or near atomic - you should get incorrect answers if doubling up via threads\n     // Note: the index i needs to be offset by one as f[0] (f_t) is used for dst[1] (h_t) etc\n\n     // To move timesteps, we step HIDDEN * BATCH\n     // To move batches, we move HIDDEN\n     // To move neurons, we move +- 1\n     // Note: dst[dst_i] = ts * 100 + bid * 10 + hid; is useful for debugging\n\n     int i           = (ts - 1) * HIDDEN * BATCH + bid * HIDDEN + hid;\n     int dst_i       = (ts - 0) * HIDDEN * BATCH + bid * HIDDEN + hid;\n     int dst_iminus1 = (ts - 1) * HIDDEN * BATCH + bid * HIDDEN + hid;\n     dst[dst_i]      = f[i] * x[i];\n     dst[dst_i]      += (1 - f[i]) * dst[dst_iminus1];\n  }\n}\n\nextern \"C\"\n__global__ void bwd_recurrent_forget_mult(const float *h, const float *f, const float *x, const float *gh, float *gf, float *gx, float *ghinit, int SEQ, int BATCH, int HIDDEN)\n{\n  /*\n  Note: h is assumed to be one timestep longer than f, x, gf, gx, or gh where dst[0] = h_{-1}\n  This means dst array has a separate index than that of f or x\n  */\n  int hid = blockIdx.x * blockDim.x + threadIdx.x;\n  int bid = blockIdx.y * blockDim.y + threadIdx.y;\n  if(hid >= HIDDEN || bid >= BATCH)\n     return;\n  //\n  double running_f = 0;\n  for (int ts = SEQ - 1 + 1; ts >= 0 + 1; ts--) {\n     int i           = (ts - 1) * HIDDEN * BATCH + bid * HIDDEN + hid;\n     int dst_i       = (ts - 0) * HIDDEN * BATCH + bid * HIDDEN + hid;\n     int dst_iminus1 = (ts - 1) * HIDDEN * BATCH + bid * HIDDEN + hid;\n     //\n     running_f       += gh[dst_iminus1];\n     // Gradient of X\n     gx[i]           = f[i] * running_f;\n     // Gradient of F\n     gf[i]           = (x[i] - h[dst_iminus1]) * running_f;\n     //\n     // The line below is likely more numerically stable than (1 - f[i]) * running_f;\n     running_f       = running_f - f[i] * running_f;\n  }\n  ghinit[bid * HIDDEN + hid] = running_f;\n}\n'''\n\n###\n\nclass CPUForgetMult(torch.nn.Module):\n    def __init__(self):\n        super(CPUForgetMult, self).__init__()\n\n    def forward(self, f, x, hidden_init=None):\n        result = []\n        ###\n        forgets = f.split(1, dim=0)\n        prev_h = hidden_init\n        for i, h in enumerate((f * x).split(1, dim=0)):\n            if prev_h is not None: h = h + (1 - forgets[i]) * prev_h\n            # h is (1, batch, hidden) when it needs to be (batch_hidden)\n            # Calling squeeze will result in badness if batch size is 1\n            h = h.view(h.size()[1:])\n            result.append(h)\n            prev_h = h\n        ###\n        return torch.stack(result)\n\n\nclass GPUForgetMult(torch.autograd.Function):\n    configured_gpus = {}\n    ptx = None\n    def __init__(self):\n        super(GPUForgetMult, self).__init__()\n\n    def compile(self):\n        if self.ptx is None:\n            \n            program = _NVRTCProgram(kernel.encode(), 'recurrent_forget_mult.cu'.encode())\n            GPUForgetMult.ptx = program.compile()\n\n        if torch.cuda.current_device() not in GPUForgetMult.configured_gpus:\n            m = function.Module()\n            m.load(bytes(self.ptx.encode()))\n\n            self.forget_mult = m.get_function('recurrent_forget_mult')\n            self.bwd_forget_mult = m.get_function('bwd_recurrent_forget_mult')\n\n            Stream = namedtuple('Stream', ['ptr'])\n            self.stream = Stream(ptr=torch.cuda.current_stream().cuda_stream)\n\n            GPUForgetMult.configured_gpus[torch.cuda.current_device()] = (self.forget_mult, self.bwd_forget_mult, self.stream)\n\n        self.forget_mult, self.bwd_forget_mult, self.stream = GPUForgetMult.configured_gpus[torch.cuda.current_device()]\n\n    def forward(self, f, x, hidden_init=None):\n        self.compile()\n        seq_size, batch_size, hidden_size = f.size()\n        result = f.new(seq_size + 1, batch_size, hidden_size)\n        # We only zero the result array (result[0]) if we don't set a hidden initial state\n        # All other values (result[1:]) are overwritten by default\n        if hidden_init is not None: result[0, :, :] = hidden_init\n        else: result = result.zero_()\n        ###\n        grid_hidden_size = min(hidden_size, 512)\n        grid = (math.ceil(hidden_size / grid_hidden_size), batch_size)\n        self.forget_mult(grid=grid, block=(grid_hidden_size, 1), args=[result.data_ptr(), f.data_ptr(), x.data_ptr(), seq_size, batch_size, hidden_size], stream=self.stream)\n        self.save_for_backward(f, x, hidden_init)\n        self.result = result\n        return result[1:, :, :]\n\n    def backward(self, grad_h):\n        self.compile()\n        f, x, hidden_init = self.saved_tensors\n        h = self.result\n        ###\n        seq_size, batch_size, hidden_size = f.size()\n        # Zeroing is not necessary as these will be overwritten\n        grad_f = f.new(*f.size())\n        grad_x = f.new(*f.size())\n        grad_h_init = f.new(batch_size, hidden_size)\n        ###\n        grid_hidden_size = min(hidden_size, 512)\n        grid = (math.ceil(hidden_size / grid_hidden_size), batch_size)\n        self.bwd_forget_mult(grid=grid, block=(grid_hidden_size, 1), args=[h.data_ptr(), f.data_ptr(), x.data_ptr(), grad_h.data_ptr(), grad_f.data_ptr(), grad_x.data_ptr(), grad_h_init.data_ptr(), seq_size, batch_size, hidden_size], stream=self.stream)\n        ###\n        if hidden_init is not None:\n            return grad_f, grad_x, grad_h_init\n        return grad_f, grad_x\n\n\nclass ForgetMult(torch.nn.Module):\n    r\"\"\"ForgetMult computes a simple recurrent equation:\n    h_t = f_t * x_t + (1 - f_t) * h_{t-1}\n\n    This equation is equivalent to dynamic weighted averaging.\n\n    Inputs: X, hidden\n        - X (seq_len, batch, input_size): tensor containing the features of the input sequence.\n        - F (seq_len, batch, input_size): tensor containing the forget gate values, assumed in range [0, 1].\n        - hidden_init (batch, input_size): tensor containing the initial hidden state for the recurrence (h_{t-1}).\n        - use_cuda: If True, use the fast element-wise CUDA kernel for recurrence. If False, uses naive for loop. Default: True.\n    \"\"\"\n\n    def __init__(self):\n        super(ForgetMult, self).__init__()\n\n    def forward(self, f, x, hidden_init=None, use_cuda=True):\n        # Use CUDA by default if it's available\n        use_cuda = use_cuda and torch.cuda.is_available()\n        if use_cuda: assert f.is_cuda and x.is_cuda, 'GPU ForgetMult with fast element-wise CUDA kernel requested but tensors not on GPU'\n        # Avoiding 'RuntimeError: expected a Variable argument, but got NoneType' when hidden_init is None\n        if hidden_init is None: return GPUForgetMult()(f, x) if use_cuda else CPUForgetMult()(f, x)\n        return GPUForgetMult()(f, x, hidden_init) if use_cuda else CPUForgetMult()(f, x, hidden_init)\n"
  },
  {
    "path": "utils/lele/fastai/text/qrnn/qrnn.py",
    "content": "import torch\nfrom torch import nn\nfrom torch.autograd import Variable\nfrom .forget_mult import ForgetMult\n\n\n##Adapted from the code here https://github.com/salesforce/pytorch-qrnn, implementation of the QRNN by\n##Bradbury, James and Merity, Stephen and Xiong, Caiming and Socher, Richard \n##https://arxiv.org/abs/1611.01576\n\nclass QRNNLayer(nn.Module):\n    r\"\"\"Applies a single layer Quasi-Recurrent Neural Network (QRNN) to an input sequence.\n\n    Args:\n        input_size: The number of expected features in the input x.\n        hidden_size: The number of features in the hidden state h. If not specified, the input size is used.\n        save_prev_x: Whether to store previous inputs for use in future convolutional windows (i.e. for a continuing sequence such as in language modeling). If true, you must call reset to remove cached previous values of x. Default: False.\n        window: Defines the size of the convolutional window (how many previous tokens to look when computing the QRNN values). Supports 1 and 2. Default: 1.\n        zoneout: Whether to apply zoneout (i.e. failing to update elements in the hidden state) to the hidden state updates. Default: 0.\n        output_gate: If True, performs QRNN-fo (applying an output gate to the output). If False, performs QRNN-f. Default: True.\n        use_cuda: If True, uses fast custom CUDA kernel. If False, uses naive for loop. Default: True.\n\n    Inputs: X, hidden\n        - X (seq_len, batch, input_size): tensor containing the features of the input sequence.\n        - hidden (batch, hidden_size): tensor containing the initial hidden state for the QRNN.\n\n    Outputs: output, h_n\n        - output (seq_len, batch, hidden_size): tensor containing the output of the QRNN for each timestep.\n        - h_n (batch, hidden_size): tensor containing the hidden state for t=seq_len\n    \"\"\"\n\n    def __init__(self, input_size, hidden_size=None, save_prev_x=False, zoneout=0, window=1, output_gate=True, use_cuda=True):\n        super(QRNNLayer, self).__init__()\n\n        assert window in [1, 2], \"This QRNN implementation currently only handles convolutional window of size 1 or size 2\"\n        self.window = window\n        self.input_size = input_size\n        self.hidden_size = hidden_size if hidden_size else input_size\n        self.zoneout = zoneout\n        self.save_prev_x = save_prev_x\n        self.prevX = None\n        self.output_gate = output_gate\n        self.use_cuda = use_cuda\n\n        # One large matmul with concat is faster than N small matmuls and no concat\n        self.linear = nn.Linear(self.window * self.input_size, 3 * self.hidden_size if self.output_gate else 2 * self.hidden_size)\n\n    def reset(self):\n        # If you are saving the previous value of x, you should call this when starting with a new state\n        self.prevX = None\n\n    def forward(self, X, hidden=None):\n        seq_len, batch_size, _ = X.size()\n\n        source = None\n        if self.window == 1:\n            source = X\n        elif self.window == 2:\n            # Construct the x_{t-1} tensor with optional x_{-1}, otherwise a zeroed out value for x_{-1}\n            Xm1 = []\n            Xm1.append(self.prevX if self.prevX is not None else X[:1, :, :] * 0)\n            # Note: in case of len(X) == 1, X[:-1, :, :] results in slicing of empty tensor == bad\n            if len(X) > 1:\n                Xm1.append(X[:-1, :, :])\n            Xm1 = torch.cat(Xm1, 0)\n            # Convert two (seq_len, batch_size, hidden) tensors to (seq_len, batch_size, 2 * hidden)\n            source = torch.cat([X, Xm1], 2)\n\n        # Matrix multiplication for the three outputs: Z, F, O\n        Y = self.linear(source)\n        # Convert the tensor back to (batch, seq_len, len([Z, F, O]) * hidden_size)\n        if self.output_gate:\n            Y = Y.view(seq_len, batch_size, 3 * self.hidden_size)\n            Z, F, O = Y.chunk(3, dim=2)\n        else:\n            Y = Y.view(seq_len, batch_size, 2 * self.hidden_size)\n            Z, F = Y.chunk(2, dim=2)\n        ###\n        Z.tanh_()\n        F.sigmoid_()\n\n        # If zoneout is specified, we perform dropout on the forget gates in F\n        # If an element of F is zero, that means the corresponding neuron keeps the old value\n        if self.zoneout:\n            if self.training:\n                mask = Variable(F.data.new(*F.size()).bernoulli_(1 - self.zoneout), requires_grad=False)\n                F = F * mask\n            else:\n                F *= 1 - self.zoneout\n\n        # Ensure the memory is laid out as expected for the CUDA kernel\n        # This is a null op if the tensor is already contiguous\n        Z = Z.contiguous()\n        F = F.contiguous()\n        # The O gate doesn't need to be contiguous as it isn't used in the CUDA kernel\n\n        # Forget Mult\n        # For testing QRNN without ForgetMult CUDA kernel, C = Z * F may be useful\n        C = ForgetMult()(F, Z, hidden, use_cuda=self.use_cuda)\n\n        # Apply (potentially optional) output gate\n        if self.output_gate:\n            H = torch.sigmoid(O) * C\n        else:\n            H = C\n\n        # In an optimal world we may want to backprop to x_{t-1} but ...\n        if self.window > 1 and self.save_prev_x:\n            self.prevX = X[-1:, :, :].detach()\n\n        return H, C[-1:, :, :]\n\n\nclass QRNN(torch.nn.Module):\n    r\"\"\"Applies a multiple layer Quasi-Recurrent Neural Network (QRNN) to an input sequence.\n\n    Args:\n        input_size: The number of expected features in the input x.\n        hidden_size: The number of features in the hidden state h. If not specified, the input size is used.\n        num_layers: The number of QRNN layers to produce.\n        layers: List of preconstructed QRNN layers to use for the QRNN module (optional).\n        save_prev_x: Whether to store previous inputs for use in future convolutional windows (i.e. for a continuing sequence such as in language modeling). If true, you must call reset to remove cached previous values of x. Default: False.\n        window: Defines the size of the convolutional window (how many previous tokens to look when computing the QRNN values). Supports 1 and 2. Default: 1.\n        zoneout: Whether to apply zoneout (i.e. failing to update elements in the hidden state) to the hidden state updates. Default: 0.\n        output_gate: If True, performs QRNN-fo (applying an output gate to the output). If False, performs QRNN-f. Default: True.\n        use_cuda: If True, uses fast custom CUDA kernel. If False, uses naive for loop. Default: True.\n\n    Inputs: X, hidden\n        - X (seq_len, batch, input_size): tensor containing the features of the input sequence.\n        - hidden (layers, batch, hidden_size): tensor containing the initial hidden state for the QRNN.\n\n    Outputs: output, h_n\n        - output (seq_len, batch, hidden_size): tensor containing the output of the QRNN for each timestep.\n        - h_n (layers, batch, hidden_size): tensor containing the hidden state for t=seq_len\n    \"\"\"\n\n    def __init__(self, input_size, hidden_size,\n                 num_layers=1, bias=True, batch_first=False,\n                 dropout=0, bidirectional=False, layers=None, **kwargs):\n        assert bidirectional == False, 'Bidirectional QRNN is not yet supported'\n        assert batch_first == False, 'Batch first mode is not yet supported'\n        assert bias == True, 'Removing underlying bias is not yet supported'\n\n        super(QRNN, self).__init__()\n\n        self.layers = torch.nn.ModuleList(layers if layers else [QRNNLayer(input_size if l == 0 else hidden_size, hidden_size, **kwargs) for l in range(num_layers)])\n\n        self.input_size = input_size\n        self.hidden_size = hidden_size\n        self.num_layers = len(layers) if layers else num_layers\n        self.bias = bias\n        self.batch_first = batch_first\n        self.dropout = dropout\n        self.bidirectional = bidirectional\n\n    def reset(self):\n        r'If your convolutional window is greater than 1, you must reset at the beginning of each new sequence'\n        [layer.reset() for layer in self.layers]\n\n    def forward(self, input, hidden=None):\n        next_hidden = []\n\n        for i, layer in enumerate(self.layers):\n            input, hn = layer(input, None if hidden is None else hidden[i])\n            next_hidden.append(hn)\n\n            if self.dropout != 0 and i < len(self.layers) - 1:\n                input = torch.nn.functional.dropout(input, p=self.dropout, training=self.training, inplace=False)\n\n        next_hidden = torch.cat(next_hidden, 0).view(self.num_layers, *next_hidden[0].size()[-2:])\n\n        return input, next_hidden\n"
  },
  {
    "path": "utils/lele/fastai/torch_core.py",
    "content": "\"Utility functions to help deal with tensors\"\nfrom .imports.torch import *\nfrom .core import *\n\nAffineMatrix = Tensor\nBoolOrTensor = Union[bool,Tensor]\nFloatOrTensor = Union[float,Tensor]\nFlowField = Tensor\nIntOrTensor = Union[int,Tensor]\nItemsList = Collection[Union[Tensor,ItemBase,'ItemsList',float,int]]\nLambdaFunc = Callable[[Tensor],Tensor]\nLayerFunc = Callable[[nn.Module],None]\nModel = nn.Module\nModuleList = Collection[nn.Module]\nOptOptimizer = Optional[optim.Optimizer]\nParamList = Collection[nn.Parameter]\nRank0Tensor = NewType('OneEltTensor', Tensor)\nSplitFunc = Callable[[Model], List[Model]]\nSplitFuncOrIdxList = Union[Callable, Collection[ModuleList]]\nTensorOrNumber = Union[Tensor,Number]\nTensorOrNumList = Collection[TensorOrNumber]\nTensorImage = Tensor\nTensorImageSize = Tuple[int,int,int]\nTensors = Union[Tensor, Collection['Tensors']]\nWeights = Dict[str,Tensor]\n\nAffineFunc = Callable[[KWArgs], AffineMatrix]\nHookFunc = Callable[[Model, Tensors, Tensors], Any]\nLogitTensorImage = TensorImage\nLossFunction = Callable[[Tensor, Tensor], Rank0Tensor]\nMetricFunc = Callable[[Tensor,Tensor],TensorOrNumber]\nMetricFuncList = Collection[MetricFunc]\nMetricsList = Collection[TensorOrNumber]\nOptLossFunc = Optional[LossFunction]\nOptMetrics = Optional[MetricsList]\nOptSplitFunc = Optional[SplitFunc]\nPixelFunc = Callable[[TensorImage, ArgStar, KWArgs], TensorImage]\n\nCoordFunc = Callable[[FlowField, TensorImageSize, ArgStar, KWArgs], LogitTensorImage]\nLightingFunc = Callable[[LogitTensorImage, ArgStar, KWArgs], LogitTensorImage]\n\nfastai_types = {\n    AnnealFunc:'AnnealFunc', ArgStar:'ArgStar', BatchSamples:'BatchSamples', Classes:'Classes',\n    FilePathList:'FilePathList', Floats:'Floats', ImgLabel:'ImgLabel', ImgLabels:'ImgLabels', KeyFunc:'KeyFunc',\n    KWArgs:'KWArgs', ListOrItem:'ListOrItem', ListRules:'ListRules', ListSizes:'ListSizes',\n    NPArrayableList:'NPArrayableList', NPArrayList:'NPArrayList', NPArrayMask:'NPArrayMask', NPImage:'NPImage',\n    OptDataFrame:'OptDataFrame', OptListOrItem:'OptListOrItem', OptRange:'OptRange', OptStrTuple:'OptStrTuple',\n    OptStats:'OptStats', PathOrStr:'PathOrStr', PBar:'PBar', Point:'Point', Points:'Points', Sizes:'Sizes',\n    SplitArrayList:'SplitArrayList', StartOptEnd:'StartOptEnd', StrList:'StrList', Tokens:'Tokens',\n    OptStrList:'OptStrList', AffineMatrix:'AffineMatrix', BoolOrTensor:'BoolOrTensor', FloatOrTensor:'FloatOrTensor',\n    FlowField:'FlowField', IntOrTensor:'IntOrTensor', ItemsList:'ItemsList', LambdaFunc:'LambdaFunc',\n    LayerFunc:'LayerFunc', Model:'Model', ModuleList:'ModuleList', OptOptimizer:'OptOptimizer', ParamList:'ParamList',\n    Rank0Tensor:'Rank0Tensor', SplitFunc:'SplitFunc', SplitFuncOrIdxList:'SplitFuncOrIdxList',\n    TensorOrNumber:'TensorOrNumber', TensorOrNumList:'TensorOrNumList', TensorImage:'TensorImage',\n    TensorImageSize:'TensorImageSize', Tensors:'Tensors', Weights:'Weights', AffineFunc:'AffineFunc',\n    HookFunc:'HookFunc', LogitTensorImage:'LogitTensorImage', LossFunction:'LossFunction', MetricFunc:'MetricFunc',\n    MetricFuncList:'MetricFuncList', MetricsList:'MetricsList', OptLossFunc:'OptLossFunc', OptMetrics:'OptMetrics',\n    OptSplitFunc:'OptSplitFunc', PixelFunc:'PixelFunc', CoordFunc:'CoordFunc', LightingFunc:'LightingFunc',\n}\n\nbn_types = (nn.BatchNorm1d, nn.BatchNorm2d, nn.BatchNorm3d)\ndefault_device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')\nAdamW = partial(optim.Adam, betas=(0.9,0.99))\n\ndef to_data(b:ItemsList):\n    \"Recursively map lists of items in `b ` to their wrapped data\"\n    if is_listy(b): return [to_data(o) for o in b]\n    return b.data if isinstance(b,ItemBase) else b\n\ndef to_device(b:Tensors, device:torch.device):\n    \"Ensure `b` is on `device`.\"\n    device = ifnone(device, default_device)\n    if is_listy(b): return [to_device(o, device) for o in b]\n    return b.to(device)\n\ndef data_collate(batch:ItemsList)->Tensor:\n    \"Convert `batch` items to tensor data.\"\n    return torch.utils.data.dataloader.default_collate(to_data(batch))\n\ndef requires_grad(m:nn.Module, b:Optional[bool]=None)->Optional[bool]:\n    \"If `b` is not set `requires_grad` on all params in `m`, else return `requires_grad` of first param.\"\n    ps = list(m.parameters())\n    if not ps: return None\n    if b is None: return ps[0].requires_grad\n    for p in ps: p.requires_grad=b\n\ndef trainable_params(m:nn.Module)->ParamList:\n    \"Return list of trainable params in `m`.\"\n    res = filter(lambda p: p.requires_grad, m.parameters())\n    return res\n\ndef children(m:nn.Module)->ModuleList:\n    \"Get children of module `m`.\"\n    return list(m.children())\n\ndef num_children(m:nn.Module)->int:\n    \"Get number of children modules in module `m`.\"\n    return len(children(m))\n\ndef range_children(m:nn.Module)->Iterator[int]:\n    \"Return iterator of len of children of `m`.\"\n    return range(num_children(m))\n\nflatten_model=lambda m: sum(map(flatten_model,m.children()),[]) if num_children(m) else [m]\ndef first_layer(m:nn.Module)->nn.Module:\n    \"Retrieve first layer in a module `m`.\"\n    return flatten_model(m)[0]\n\ndef split_model_idx(model:nn.Module, idxs:Collection[int])->ModuleList:\n    \"Split `model` according to the indices in `idxs`.\"\n    layers = flatten_model(model)\n    if idxs[0] != 0: idxs = [0] + idxs\n    if idxs[-1] != len(layers): idxs.append(len(layers))\n    return [nn.Sequential(*layers[i:j]) for i,j in zip(idxs[:-1],idxs[1:])]\n\ndef split_model(model:nn.Module, splits:Collection[Union[Model,ModuleList]], want_idxs:bool=False):\n    \"Split `model` according to the layers in `splits`.\"\n    layers = flatten_model(model)\n    splits = listify(splits)\n    if isinstance(splits[0], nn.Module):\n        idxs = [layers.index(first_layer(s)) for s in splits]\n        res = split_model_idx(model, idxs)\n    else: res = [nn.Sequential(*s) for s in splits]\n    return (res,idxs) if want_idxs else res\n\n#TODO: add the test to put bias with bn layers\ndef split_bn_bias(layer_groups:ModuleList)->ModuleList:\n    \"Sort each layer in  `layer_groups` into batchnorm (`bn_types`) and non-batchnorm groups.\"\n    split_groups = []\n    for l in layer_groups:\n        l1,l2 = [],[]\n        for c in l.children():\n            if isinstance(c, bn_types): l2.append(c)\n            else:                       l1.append(c)\n        split_groups += [nn.Sequential(*l1), nn.Sequential(*l2)]\n    return split_groups\n\ndef set_bn_eval(m:nn.Module)->None:\n    \"Set bn layers in eval mode for all recursive children of `m`.\"\n    for l in m.children():\n        if isinstance(l, bn_types) and not next(l.parameters()).requires_grad:\n            l.eval()\n        set_bn_eval(l)\n\ndef to_half(b:Collection[Tensor])->Collection[Tensor]:\n    \"`b` = [x,y] -> [x.half(),y] (half precision)\"\n    return [b[0].half(), b[1]]\n\ndef bn2float(module:nn.Module)->nn.Module:\n    \"If `module` is batchnorm don't use half precision.\"\n    if isinstance(module, torch.nn.modules.batchnorm._BatchNorm): module.float()\n    for child in module.children(): bn2float(child)\n    return module\n\ndef model2half(model:nn.Module)->nn.Module:\n    \"Convert `model` to half precision except the batchnorm layers.\"\n    return bn2float(model.half())\n\ndef cond_init(m:nn.Module, init_func:LayerFunc):\n    \"Initialize the non-batchnorm layers of `m` with `init_func`\"\n    if (not isinstance(m, bn_types)) and requires_grad(m):\n        if hasattr(m, 'weight'): init_func(m.weight)\n        if hasattr(m, 'bias') and hasattr(m.bias, 'data'): m.bias.data.fill_(0.)\n\ndef apply_leaf(m:nn.Module, f:LayerFunc):\n    \"Apply `f` to children of `m`.\"\n    c = children(m)\n    if isinstance(m, nn.Module): f(m)\n    for l in c: apply_leaf(l,f)\n\ndef apply_init(m, init_func:LayerFunc):\n    \"Initialize all non-batchnorm layers of `m` with `init_func`.\"\n    apply_leaf(m, partial(cond_init, init_func=init_func))\n\ndef in_channels(m:Model) -> List[int]:\n    \"Return the shape of the first weight layer in `m`.\"\n    for l in flatten_model(m):\n        if hasattr(l, 'weight'): return l.weight.shape[1]\n    raise Exception('No weight layer')\n\ndef calc_loss(y_pred:Tensor, y_true:Tensor, loss_class:type=nn.CrossEntropyLoss, bs=64):\n    \"Calculate loss between `y_pred` and `y_true` using `loss_class` and `bs`.\"\n    loss_dl = DataLoader(TensorDataset(as_tensor(y_pred),as_tensor(y_true)), bs)\n    with torch.no_grad():\n        return torch.cat([loss_class(reduction='none')(*b) for b in loss_dl])\n\ndef to_np(x): return x.cpu().numpy()\n\ndef model_type(dtype):\n    return (torch.float32 if np.issubdtype(dtype, np.floating) else\n            torch.int64 if np.issubdtype(dtype, np.integer)\n            else None)\n\ndef np2model_tensor(a):\n    dtype = model_type(a.dtype)\n    res = as_tensor(a)\n    if not dtype: return res\n    return res.type(dtype)\n\ndef show_install(show_nvidia_smi:bool=False):\n    \"Print user's setup information: python -c 'import fastai; fastai.show_install()'\"\n\n    import platform, fastai.version, subprocess\n\n    print(\"\\n```\")\n\n    print(f\"platform info  : {platform.platform()}\")\n\n    opt_mods = []\n\n    if platform.system() == 'Linux':\n        try:\n            import distro\n        except ImportError:\n            opt_mods.append('distro');\n            # partial distro info\n            print(f\"distro version : {platform.uname().version}\")\n        else:\n            # full distro info\n            print(f\"distro info    : {' '.join(distro.linux_distribution())}\")\n\n    print(f\"python version : {platform.python_version()}\")\n    print(f\"fastai version : {fastai.__version__}\")\n    print(f\"torch version  : {torch.__version__}\")\n\n    # cuda\n    cmd = \"nvidia-smi\"\n    have_nvidia_smi = False\n    try:\n        result = subprocess.run(cmd.split(), shell=False, check=False, stdout=subprocess.PIPE)\n    except:\n        pass\n    else:\n        if result.returncode == 0 and result.stdout:\n            have_nvidia_smi = True\n\n    if have_nvidia_smi:\n        smi = result.stdout.decode('utf-8')\n        match = re.findall(r'Driver Version: +(\\d+\\.\\d+)', smi)\n        if match: print(f\"nvidia driver  : {match[0]}\")\n\n    cuda_is_available = torch.cuda.is_available()\n    if not cuda_is_available: print(f\"cuda available : False\")\n\n    print(f\"cuda version   : {torch.version.cuda}\")\n    print(f\"cudnn version  : {torch.backends.cudnn.version()}\")\n    print(f\"cudnn available: {torch.backends.cudnn.enabled}\")\n\n    gpu_cnt = torch.cuda.device_count()\n    print(f\"torch gpu count: {gpu_cnt}\")\n\n    # it's possible that torch might not see what nvidia-smi sees?\n    gpu_total_mem = []\n    if have_nvidia_smi:\n        try:\n            cmd = \"nvidia-smi --query-gpu=memory.total --format=csv,nounits,noheader\"\n            result = subprocess.run(cmd.split(), shell=False, check=False, stdout=subprocess.PIPE)\n        except:\n            print(\"have nvidia-smi, but failed to query it\")\n        else:\n            if result.returncode == 0 and result.stdout:\n                output = result.stdout.decode('utf-8')\n                gpu_total_mem = [int(x) for x in output.strip().split('\\n')]\n\n    # information for each gpu\n    for i in range(gpu_cnt):\n        print(f\"  [gpu{i}]\")\n        print(f\"  name         : {torch.cuda.get_device_name(i)}\")\n        if gpu_total_mem: print(f\"  total memory : {gpu_total_mem[i]}MB\")\n\n    if have_nvidia_smi:\n        if show_nvidia_smi == True: print(f\"\\n{smi}\")\n    else:\n        if gpu_cnt:\n            # have gpu, but no nvidia-smi\n            print(f\"no nvidia-smi is found\")\n        else:\n            print(f\"no supported gpus found on this system\")\n\n    print(\"```\\n\")\n\n    if opt_mods:\n        print(\"Optional package(s) to enhance the diagnostics can be installed with:\")\n        print(f\"pip install {' '.join(opt_mods)}\")\n        print(\"Once installed, re-run this utility to get the additional information\")\n\ndef trange_of(x): return torch.arange(len(x))"
  },
  {
    "path": "utils/lele/layers/README.md",
    "content": "./layers.py most from https://github.com/HKUST-KnowComp/MnemonicReader with modifications  \nothers like ./highway.py ./token_embedder.py from https://github.com/HIT-SCIR/ELMoForManyLangs/tree/master/elmoformanylangs/modules  \n"
  },
  {
    "path": "utils/lele/layers/__init__.py",
    "content": "from lele.layers.layers import *\nfrom lele.layers.highway import * \nfrom lele.layers.token_embedder import * \nfrom lele.layers.elmo import * \n\nimport lele.layers.transformer \n"
  },
  {
    "path": "utils/lele/layers/classify_layer.py",
    "content": "import logging\r\nimport math\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\n\r\nlogging.basicConfig(level=logging.INFO, format='%(asctime)-15s %(levelname)s: %(message)s')\r\n\r\n\r\nclass SoftmaxLayer(nn.Module):\r\n  \"\"\" Naive softmax-layer \"\"\"\r\n  def __init__(self, output_dim, n_class):\r\n    \"\"\"\r\n\r\n    :param output_dim: int\r\n    :param n_class: int\r\n    \"\"\"\r\n    super(SoftmaxLayer, self).__init__()\r\n    self.hidden2tag = nn.Linear(output_dim, n_class)\r\n    self.criterion = nn.CrossEntropyLoss(size_average=False)\r\n\r\n  def forward(self, x, y):\r\n    \"\"\"\r\n\r\n    :param x: torch.Tensor\r\n    :param y: torch.Tensor\r\n    :return:\r\n    \"\"\"\r\n    tag_scores = self.hidden2tag(x)\r\n    return self.criterion(tag_scores, y)\r\n\r\n\r\nclass SampledSoftmaxLayer(nn.Module):\r\n  \"\"\"\r\n\r\n  \"\"\"\r\n  def __init__(self, output_dim, n_class, n_samples, use_cuda):\r\n    \"\"\"\r\n\r\n    :param output_dim:\r\n    :param n_class:\r\n    :param n_samples:\r\n    :param use_cuda:\r\n    \"\"\"\r\n    super(SampledSoftmaxLayer, self).__init__()\r\n    self.n_samples = n_samples\r\n    self.n_class = n_class\r\n    self.use_cuda = use_cuda\r\n    self.criterion = nn.CrossEntropyLoss(size_average=False)\r\n    self.negative_samples = []\r\n    self.word_to_column = {0: 0}\r\n\r\n    self.all_word = []\r\n    self.all_word_to_column = {0: 0}\r\n\r\n    self.column_emb = nn.Embedding(n_class, output_dim)\r\n    self.column_emb.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    self.column_bias = nn.Embedding(n_class, 1)\r\n    self.column_bias.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    self.oov_column = nn.Parameter(torch.Tensor(output_dim, 1))\r\n    self.oov_column.data.uniform_(-0.25, 0.25)\r\n\r\n  def forward(self, x, y):\r\n    if self.training:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.word_to_column.get(y[i].tolist())\r\n      samples = torch.LongTensor(len(self.word_to_column)).fill_(0)\r\n      for word in self.negative_samples:\r\n        samples[self.word_to_column[word]] = word\r\n    else:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.all_word_to_column.get(y[i].tolist(), 0)\r\n      samples = torch.LongTensor(len(self.all_word_to_column)).fill_(0)\r\n      for word in self.all_word:\r\n        samples[self.all_word_to_column[word]] = word\r\n\r\n    if self.use_cuda:\r\n      samples = samples.cuda()\r\n\r\n    tag_scores = (x.matmul(self.embedding_matrix)).view(y.size(0), -1) + \\\r\n                 (self.column_bias.forward(samples)).view(1, -1) \r\n    return self.criterion(tag_scores, y)\r\n\r\n  def update_embedding_matrix(self):\r\n    word_inp, chars_inp = [], []\r\n    if self.training:  \r\n      columns = torch.LongTensor(len(self.negative_samples) + 1)\r\n      samples = self.negative_samples\r\n      for i, word in enumerate(samples):\r\n        columns[self.word_to_column[word]] = word\r\n      columns[0] = 0\r\n    else:\r\n      columns = torch.LongTensor(len(self.all_word) + 1)\r\n      samples = self.all_word\r\n      for i, word in enumerate(samples):\r\n        columns[self.all_word_to_column[word]] = word\r\n      columns[0] = 0\r\n\r\n    if self.use_cuda:\r\n      columns = columns.cuda()\r\n    self.embedding_matrix = self.column_emb.forward(columns).transpose(0, 1)\r\n\r\n  def update_negative_samples(self, word_inp, chars_inp, mask):\r\n    batch_size, seq_len = word_inp.size(0), word_inp.size(1)\r\n    in_batch = set()\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        word = word_inp[i][j].tolist()\r\n        in_batch.add(word)\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        word = word_inp[i][j].tolist()\r\n        if word not in self.all_word_to_column:\r\n          self.all_word.append(word)\r\n          self.all_word_to_column[word] = len(self.all_word_to_column)\r\n\r\n        if word not in self.word_to_column:\r\n          if len(self.negative_samples) < self.n_samples:\r\n            self.negative_samples.append(word)\r\n            self.word_to_column[word] = len(self.word_to_column)\r\n          else:\r\n            while self.negative_samples[0] in in_batch:\r\n              self.negative_samples = self.negative_samples[1:] + [self.negative_samples[0]]\r\n            self.word_to_column[word] = self.word_to_column.pop(self.negative_samples[0])\r\n            self.negative_samples = self.negative_samples[1:] + [word]\r\n\r\n\r\nclass CNNSoftmaxLayer(nn.Module):\r\n  def __init__(self, token_embedder, output_dim, n_class, n_samples, corr_dim, use_cuda):\r\n    super(CNNSoftmaxLayer, self).__init__()\r\n    self.token_embedder = token_embedder\r\n    self.n_samples = n_samples\r\n    self.use_cuda = use_cuda\r\n    self.criterion = nn.CrossEntropyLoss(size_average=False)\r\n    self.negative_samples = []\r\n    self.word_to_column = {0: 0}\r\n\r\n    self.all_word = []\r\n    self.all_word_to_column = {0: 0}\r\n\r\n    self.M = nn.Parameter(torch.Tensor(output_dim, corr_dim))\r\n    stdv = 1. / math.sqrt(self.M.size(1))\r\n    self.M.data.uniform_(-stdv, stdv)\r\n\r\n    self.corr = nn.Embedding(n_class, corr_dim)\r\n    self.corr.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    self.oov_column = nn.Parameter(torch.Tensor(output_dim, 1))\r\n    self.oov_column.data.uniform_(-0.25, 0.25)\r\n\r\n  def forward(self, x, y):\r\n    if self.training:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.word_to_column.get(y[i].tolist())\r\n      samples = torch.LongTensor(len(self.word_to_column)).fill_(0)\r\n      for package in self.negative_samples:\r\n        samples[self.word_to_column[package[0]]] = package[0]\r\n    else:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.all_word_to_column.get(y[i].tolist(), 0)\r\n      samples = torch.LongTensor(len(self.all_word_to_column)).fill_(0)\r\n      for package in self.all_word:\r\n        samples[self.all_word_to_column[package[0]]] = package[0]\r\n\r\n    if self.use_cuda:\r\n      samples = samples.cuda()\r\n\r\n    tag_scores = (x.matmul(self.embedding_matrix)).view(y.size(0), -1) + \\\r\n                 (x.matmul(self.M).matmul(self.corr.forward(samples).transpose(0, 1))).view(y.size(0), -1)\r\n    return self.criterion(tag_scores, y)\r\n\r\n  def update_embedding_matrix(self):\r\n    batch_size = 2048\r\n    word_inp, chars_inp = [], []\r\n    if self.training:  \r\n      sub_matrices = [self.oov_column]\r\n      samples = self.negative_samples\r\n      id2pack = {}\r\n      for i, package in enumerate(samples):\r\n        id2pack[self.word_to_column[package[0]]] = i\r\n    else:\r\n      sub_matrices = [self.oov_column]\r\n      samples = self.all_word\r\n      id2pack = {}\r\n      for i, package in enumerate(samples):\r\n        id2pack[self.all_word_to_column[package[0]]] = i\r\n\r\n    for i in range(len(samples)):\r\n      # [n_samples, 1], [n_samples, 1, x], [n_samples, 1]\r\n      word_inp.append(samples[id2pack[i + 1]][0])\r\n      chars_inp.append(samples[id2pack[i + 1]][1])\r\n      if len(word_inp) == batch_size or i == len(samples) - 1:\r\n        sub_matrices.append(self.token_embedder.forward(torch.LongTensor(word_inp).view(len(word_inp), 1),\r\n                                                        None if chars_inp[0] is None else torch.LongTensor(chars_inp).view(len(word_inp), 1, len(package[1])), \r\n                                                        (len(word_inp), 1)).squeeze(1).transpose(0, 1))\r\n        if not self.training:\r\n          sub_matrices[-1] = sub_matrices[-1].detach()\r\n        word_inp, chars_inp = [], [] \r\n\r\n    sum = 0\r\n    for mat in sub_matrices:\r\n      sum += mat.size(1)\r\n    #print(sum, len(self.word_to_column))    \r\n    self.embedding_matrix = torch.cat(sub_matrices, dim=1)\r\n\r\n  def update_negative_samples(self, word_inp, chars_inp, mask):\r\n    batch_size, seq_len = word_inp.size(0), word_inp.size(1)\r\n    in_batch = set()\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        word = word_inp[i][j].tolist()\r\n        in_batch.add(word)\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        package = (word_inp[i][j].tolist(), None if chars_inp is None else chars_inp[i][j].tolist())\r\n        if package[0] not in self.all_word_to_column:\r\n          self.all_word.append(package)\r\n          self.all_word_to_column[package[0]] = len(self.all_word_to_column)\r\n\r\n        if package[0] not in self.word_to_column:\r\n          if len(self.negative_samples) < self.n_samples:\r\n            self.negative_samples.append(package)\r\n            self.word_to_column[package[0]] = len(self.word_to_column)\r\n          else:\r\n            while self.negative_samples[0][0] in in_batch:\r\n              self.negative_samples = self.negative_samples[1:] + [self.negative_samples[0]]\r\n            self.word_to_column[package[0]] = self.word_to_column.pop(self.negative_samples[0][0])\r\n            self.negative_samples = self.negative_samples[1:] + [package]\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/__init__.py",
    "content": "from lele.layers.elmo.highway import * \nfrom lele.layers.elmo.token_embedder import * \nfrom lele.layers.elmo.elmo import *\n"
  },
  {
    "path": "utils/lele/layers/elmo/classify_layer.py",
    "content": "import logging\r\nimport math\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\n\r\nlogging.basicConfig(level=logging.INFO, format='%(asctime)-15s %(levelname)s: %(message)s')\r\n\r\n\r\nclass SoftmaxLayer(nn.Module):\r\n  \"\"\" Naive softmax-layer \"\"\"\r\n  def __init__(self, output_dim, n_class):\r\n    \"\"\"\r\n\r\n    :param output_dim: int\r\n    :param n_class: int\r\n    \"\"\"\r\n    super(SoftmaxLayer, self).__init__()\r\n    self.hidden2tag = nn.Linear(output_dim, n_class)\r\n    self.criterion = nn.CrossEntropyLoss(size_average=False)\r\n\r\n  def forward(self, x, y):\r\n    \"\"\"\r\n\r\n    :param x: torch.Tensor\r\n    :param y: torch.Tensor\r\n    :return:\r\n    \"\"\"\r\n    tag_scores = self.hidden2tag(x)\r\n    return self.criterion(tag_scores, y)\r\n\r\n\r\nclass SampledSoftmaxLayer(nn.Module):\r\n  \"\"\"\r\n\r\n  \"\"\"\r\n  def __init__(self, output_dim, n_class, n_samples, use_cuda):\r\n    \"\"\"\r\n\r\n    :param output_dim:\r\n    :param n_class:\r\n    :param n_samples:\r\n    :param use_cuda:\r\n    \"\"\"\r\n    super(SampledSoftmaxLayer, self).__init__()\r\n    self.n_samples = n_samples\r\n    self.n_class = n_class\r\n    self.use_cuda = use_cuda\r\n    self.criterion = nn.CrossEntropyLoss(size_average=False)\r\n    self.negative_samples = []\r\n    self.word_to_column = {0: 0}\r\n\r\n    self.all_word = []\r\n    self.all_word_to_column = {0: 0}\r\n\r\n    self.column_emb = nn.Embedding(n_class, output_dim)\r\n    self.column_emb.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    self.column_bias = nn.Embedding(n_class, 1)\r\n    self.column_bias.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    self.oov_column = nn.Parameter(torch.Tensor(output_dim, 1))\r\n    self.oov_column.data.uniform_(-0.25, 0.25)\r\n\r\n  def forward(self, x, y):\r\n    if self.training:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.word_to_column.get(y[i].tolist())\r\n      samples = torch.LongTensor(len(self.word_to_column)).fill_(0)\r\n      for word in self.negative_samples:\r\n        samples[self.word_to_column[word]] = word\r\n    else:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.all_word_to_column.get(y[i].tolist(), 0)\r\n      samples = torch.LongTensor(len(self.all_word_to_column)).fill_(0)\r\n      for word in self.all_word:\r\n        samples[self.all_word_to_column[word]] = word\r\n\r\n    if self.use_cuda:\r\n      samples = samples.cuda()\r\n\r\n    tag_scores = (x.matmul(self.embedding_matrix)).view(y.size(0), -1) + \\\r\n                 (self.column_bias.forward(samples)).view(1, -1) \r\n    return self.criterion(tag_scores, y)\r\n\r\n  def update_embedding_matrix(self):\r\n    word_inp, chars_inp = [], []\r\n    if self.training:  \r\n      columns = torch.LongTensor(len(self.negative_samples) + 1)\r\n      samples = self.negative_samples\r\n      for i, word in enumerate(samples):\r\n        columns[self.word_to_column[word]] = word\r\n      columns[0] = 0\r\n    else:\r\n      columns = torch.LongTensor(len(self.all_word) + 1)\r\n      samples = self.all_word\r\n      for i, word in enumerate(samples):\r\n        columns[self.all_word_to_column[word]] = word\r\n      columns[0] = 0\r\n\r\n    if self.use_cuda:\r\n      columns = columns.cuda()\r\n    self.embedding_matrix = self.column_emb.forward(columns).transpose(0, 1)\r\n\r\n  def update_negative_samples(self, word_inp, chars_inp, mask):\r\n    batch_size, seq_len = word_inp.size(0), word_inp.size(1)\r\n    in_batch = set()\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        word = word_inp[i][j].tolist()\r\n        in_batch.add(word)\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        word = word_inp[i][j].tolist()\r\n        if word not in self.all_word_to_column:\r\n          self.all_word.append(word)\r\n          self.all_word_to_column[word] = len(self.all_word_to_column)\r\n\r\n        if word not in self.word_to_column:\r\n          if len(self.negative_samples) < self.n_samples:\r\n            self.negative_samples.append(word)\r\n            self.word_to_column[word] = len(self.word_to_column)\r\n          else:\r\n            while self.negative_samples[0] in in_batch:\r\n              self.negative_samples = self.negative_samples[1:] + [self.negative_samples[0]]\r\n            self.word_to_column[word] = self.word_to_column.pop(self.negative_samples[0])\r\n            self.negative_samples = self.negative_samples[1:] + [word]\r\n\r\n\r\nclass CNNSoftmaxLayer(nn.Module):\r\n  def __init__(self, token_embedder, output_dim, n_class, n_samples, corr_dim, use_cuda):\r\n    super(CNNSoftmaxLayer, self).__init__()\r\n    self.token_embedder = token_embedder\r\n    self.n_samples = n_samples\r\n    self.use_cuda = use_cuda\r\n    self.criterion = nn.CrossEntropyLoss(size_average=False)\r\n    self.negative_samples = []\r\n    self.word_to_column = {0: 0}\r\n\r\n    self.all_word = []\r\n    self.all_word_to_column = {0: 0}\r\n\r\n    self.M = nn.Parameter(torch.Tensor(output_dim, corr_dim))\r\n    stdv = 1. / math.sqrt(self.M.size(1))\r\n    self.M.data.uniform_(-stdv, stdv)\r\n\r\n    self.corr = nn.Embedding(n_class, corr_dim)\r\n    self.corr.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    self.oov_column = nn.Parameter(torch.Tensor(output_dim, 1))\r\n    self.oov_column.data.uniform_(-0.25, 0.25)\r\n\r\n  def forward(self, x, y):\r\n    if self.training:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.word_to_column.get(y[i].tolist())\r\n      samples = torch.LongTensor(len(self.word_to_column)).fill_(0)\r\n      for package in self.negative_samples:\r\n        samples[self.word_to_column[package[0]]] = package[0]\r\n    else:\r\n      for i in range(y.size(0)):\r\n        y[i] = self.all_word_to_column.get(y[i].tolist(), 0)\r\n      samples = torch.LongTensor(len(self.all_word_to_column)).fill_(0)\r\n      for package in self.all_word:\r\n        samples[self.all_word_to_column[package[0]]] = package[0]\r\n\r\n    if self.use_cuda:\r\n      samples = samples.cuda()\r\n\r\n    tag_scores = (x.matmul(self.embedding_matrix)).view(y.size(0), -1) + \\\r\n                 (x.matmul(self.M).matmul(self.corr.forward(samples).transpose(0, 1))).view(y.size(0), -1)\r\n    return self.criterion(tag_scores, y)\r\n\r\n  def update_embedding_matrix(self):\r\n    batch_size = 2048\r\n    word_inp, chars_inp = [], []\r\n    if self.training:  \r\n      sub_matrices = [self.oov_column]\r\n      samples = self.negative_samples\r\n      id2pack = {}\r\n      for i, package in enumerate(samples):\r\n        id2pack[self.word_to_column[package[0]]] = i\r\n    else:\r\n      sub_matrices = [self.oov_column]\r\n      samples = self.all_word\r\n      id2pack = {}\r\n      for i, package in enumerate(samples):\r\n        id2pack[self.all_word_to_column[package[0]]] = i\r\n\r\n    for i in range(len(samples)):\r\n      # [n_samples, 1], [n_samples, 1, x], [n_samples, 1]\r\n      word_inp.append(samples[id2pack[i + 1]][0])\r\n      chars_inp.append(samples[id2pack[i + 1]][1])\r\n      if len(word_inp) == batch_size or i == len(samples) - 1:\r\n        sub_matrices.append(self.token_embedder.forward(torch.LongTensor(word_inp).view(len(word_inp), 1),\r\n                                                        None if chars_inp[0] is None else torch.LongTensor(chars_inp).view(len(word_inp), 1, len(package[1])), \r\n                                                        (len(word_inp), 1)).squeeze(1).transpose(0, 1))\r\n        if not self.training:\r\n          sub_matrices[-1] = sub_matrices[-1].detach()\r\n        word_inp, chars_inp = [], [] \r\n\r\n    sum = 0\r\n    for mat in sub_matrices:\r\n      sum += mat.size(1)\r\n    #print(sum, len(self.word_to_column))    \r\n    self.embedding_matrix = torch.cat(sub_matrices, dim=1)\r\n\r\n  def update_negative_samples(self, word_inp, chars_inp, mask):\r\n    batch_size, seq_len = word_inp.size(0), word_inp.size(1)\r\n    in_batch = set()\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        word = word_inp[i][j].tolist()\r\n        in_batch.add(word)\r\n    for i in range(batch_size):\r\n      for j in range(seq_len):\r\n        if mask[i][j] == 0:\r\n          continue\r\n        package = (word_inp[i][j].tolist(), None if chars_inp is None else chars_inp[i][j].tolist())\r\n        if package[0] not in self.all_word_to_column:\r\n          self.all_word.append(package)\r\n          self.all_word_to_column[package[0]] = len(self.all_word_to_column)\r\n\r\n        if package[0] not in self.word_to_column:\r\n          if len(self.negative_samples) < self.n_samples:\r\n            self.negative_samples.append(package)\r\n            self.word_to_column[package[0]] = len(self.word_to_column)\r\n          else:\r\n            while self.negative_samples[0][0] in in_batch:\r\n              self.negative_samples = self.negative_samples[1:] + [self.negative_samples[0]]\r\n            self.word_to_column[package[0]] = self.word_to_column.pop(self.negative_samples[0][0])\r\n            self.negative_samples = self.negative_samples[1:] + [package]\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/elmo.py",
    "content": "from typing import Optional, Tuple, List, Callable, Union\r\n\r\nimport h5py\r\nimport numpy\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.nn.utils.rnn import PackedSequence, pad_packed_sequence, pack_padded_sequence\r\nfrom torch.autograd import Variable\r\n\r\nfrom .encoder_base import _EncoderBase\r\nfrom .lstm_cell_with_projection import LstmCellWithProjection\r\n\r\nRnnState = Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]  # pylint: disable=invalid-name\r\nRnnStateStorage = Tuple[torch.Tensor, ...]  # pylint: disable=invalid-name\r\n\r\n\r\nclass ElmobiLm(_EncoderBase):\r\n  def __init__(self, config, use_cuda=False):\r\n    super(ElmobiLm, self).__init__(stateful=True)\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n    input_size = config['encoder']['projection_dim']\r\n    hidden_size = config['encoder']['projection_dim']\r\n    cell_size = config['encoder']['dim']\r\n    num_layers = config['encoder']['n_layers']\r\n    memory_cell_clip_value = config['encoder']['cell_clip']\r\n    state_projection_clip_value = config['encoder']['proj_clip']\r\n    recurrent_dropout_probability = config['dropout']\r\n\r\n    self.input_size = input_size\r\n    self.hidden_size = hidden_size\r\n    self.num_layers = num_layers\r\n    self.cell_size = cell_size\r\n    \r\n    forward_layers = []\r\n    backward_layers = []\r\n\r\n    lstm_input_size = input_size\r\n    go_forward = True\r\n    for layer_index in range(num_layers):\r\n      forward_layer = LstmCellWithProjection(lstm_input_size,\r\n                                             hidden_size,\r\n                                             cell_size,\r\n                                             go_forward,\r\n                                             recurrent_dropout_probability,\r\n                                             memory_cell_clip_value,\r\n                                             state_projection_clip_value)\r\n      backward_layer = LstmCellWithProjection(lstm_input_size,\r\n                                              hidden_size,\r\n                                              cell_size,\r\n                                              not go_forward,\r\n                                              recurrent_dropout_probability,\r\n                                              memory_cell_clip_value,\r\n                                              state_projection_clip_value)\r\n      lstm_input_size = hidden_size\r\n\r\n      self.add_module('forward_layer_{}'.format(layer_index), forward_layer)\r\n      self.add_module('backward_layer_{}'.format(layer_index), backward_layer)\r\n      forward_layers.append(forward_layer)\r\n      backward_layers.append(backward_layer)\r\n    self.forward_layers = forward_layers\r\n    self.backward_layers = backward_layers\r\n\r\n  def forward(self, inputs, mask):\r\n    batch_size, total_sequence_length = mask.size()\r\n    stacked_sequence_output, final_states, restoration_indices = \\\r\n      self.sort_and_run_forward(self._lstm_forward, inputs, mask)\r\n    num_layers, num_valid, returned_timesteps, encoder_dim = stacked_sequence_output.size()\r\n    # Add back invalid rows which were removed in the call to sort_and_run_forward.\r\n    if num_valid < batch_size:\r\n      zeros = stacked_sequence_output.data.new(num_layers,\r\n                                               batch_size - num_valid,\r\n                                               returned_timesteps,\r\n                                               encoder_dim).fill_(0)\r\n      zeros = Variable(zeros)\r\n      stacked_sequence_output = torch.cat([stacked_sequence_output, zeros], 1)\r\n      # The states also need to have invalid rows added back.\r\n      new_states = []\r\n      for state in final_states:\r\n        state_dim = state.size(-1)\r\n        zeros = state.data.new(num_layers, batch_size - num_valid, state_dim).fill_(0)\r\n        zeros = Variable(zeros)\r\n        new_states.append(torch.cat([state, zeros], 1))\r\n      final_states = new_states\r\n\r\n    # It's possible to need to pass sequences which are padded to longer than the\r\n    # max length of the sequence to a Seq2StackEncoder. However, packing and unpacking\r\n    # the sequences mean that the returned tensor won't include these dimensions, because\r\n    # the RNN did not need to process them. We add them back on in the form of zeros here.\r\n    sequence_length_difference = total_sequence_length - returned_timesteps\r\n    if sequence_length_difference > 0:\r\n      zeros = stacked_sequence_output.data.new(num_layers,\r\n                                               batch_size,\r\n                                               sequence_length_difference,\r\n                                               stacked_sequence_output[0].size(-1)).fill_(0)\r\n      zeros = Variable(zeros)\r\n      stacked_sequence_output = torch.cat([stacked_sequence_output, zeros], 2)\r\n    self._update_states(final_states, restoration_indices)\r\n    # Restore the original indices and return the sequence.\r\n    # Has shape (num_layers, batch_size, sequence_length, hidden_size)\r\n    return stacked_sequence_output.index_select(1, restoration_indices)\r\n\r\n\r\n  def _lstm_forward(self, \r\n                    inputs: PackedSequence,\r\n                    initial_state: Optional[Tuple[torch.Tensor, torch.Tensor]] = None) -> \\\r\n      Tuple[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]:\r\n    \"\"\"\r\n    Parameters\r\n    ----------\r\n    inputs : ``PackedSequence``, required.\r\n      A batch first ``PackedSequence`` to run the stacked LSTM over.\r\n    initial_state : ``Tuple[torch.Tensor, torch.Tensor]``, optional, (default = None)\r\n      A tuple (state, memory) representing the initial hidden state and memory\r\n      of the LSTM, with shape (num_layers, batch_size, 2 * hidden_size) and\r\n      (num_layers, batch_size, 2 * cell_size) respectively.\r\n    Returns\r\n    -------\r\n    output_sequence : ``torch.FloatTensor``\r\n      The encoded sequence of shape (num_layers, batch_size, sequence_length, hidden_size)\r\n    final_states: ``Tuple[torch.FloatTensor, torch.FloatTensor]``\r\n      The per-layer final (state, memory) states of the LSTM, with shape\r\n      (num_layers, batch_size, 2 * hidden_size) and  (num_layers, batch_size, 2 * cell_size)\r\n      respectively. The last dimension is duplicated because it contains the state/memory\r\n      for both the forward and backward layers.\r\n    \"\"\"\r\n       \r\n    if initial_state is None:\r\n      hidden_states: List[Optional[Tuple[torch.Tensor,\r\n                                   torch.Tensor]]] = [None] * len(self.forward_layers)\r\n    elif initial_state[0].size()[0] != len(self.forward_layers):\r\n      raise Exception(\"Initial states were passed to forward() but the number of \"\r\n                               \"initial states does not match the number of layers.\")\r\n    else:\r\n      hidden_states = list(zip(initial_state[0].split(1, 0), initial_state[1].split(1, 0)))\r\n\r\n    inputs, batch_lengths = pad_packed_sequence(inputs, batch_first=True)\r\n    forward_output_sequence = inputs\r\n    backward_output_sequence = inputs\r\n\r\n    final_states = []\r\n    sequence_outputs = []\r\n    for layer_index, state in enumerate(hidden_states):\r\n      forward_layer = getattr(self, 'forward_layer_{}'.format(layer_index))\r\n      backward_layer = getattr(self, 'backward_layer_{}'.format(layer_index))\r\n\r\n      forward_cache = forward_output_sequence\r\n      backward_cache = backward_output_sequence\r\n\r\n      if state is not None:\r\n        forward_hidden_state, backward_hidden_state = state[0].split(self.hidden_size, 2)\r\n        forward_memory_state, backward_memory_state = state[1].split(self.cell_size, 2)\r\n        forward_state = (forward_hidden_state, forward_memory_state)\r\n        backward_state = (backward_hidden_state, backward_memory_state)\r\n      else:\r\n        forward_state = None\r\n        backward_state = None\r\n\r\n      forward_output_sequence, forward_state = forward_layer(forward_output_sequence,\r\n                                                             batch_lengths,\r\n                                                             forward_state)\r\n      backward_output_sequence, backward_state = backward_layer(backward_output_sequence,\r\n                                                                batch_lengths,\r\n                                                                backward_state)\r\n      # Skip connections, just adding the input to the output.\r\n      if layer_index != 0:\r\n        forward_output_sequence += forward_cache\r\n        backward_output_sequence += backward_cache\r\n\r\n      sequence_outputs.append(torch.cat([forward_output_sequence,\r\n                                         backward_output_sequence], -1))\r\n      # Append the state tuples in a list, so that we can return\r\n      # the final states for all the layers.\r\n      final_states.append((torch.cat([forward_state[0], backward_state[0]], -1),\r\n                           torch.cat([forward_state[1], backward_state[1]], -1)))\r\n\r\n    stacked_sequence_outputs: torch.FloatTensor = torch.stack(sequence_outputs)\r\n    # Stack the hidden state and memory for each layer into 2 tensors of shape\r\n    # (num_layers, batch_size, hidden_size) and (num_layers, batch_size, cell_size)\r\n    # respectively.\r\n    final_hidden_states, final_memory_states = zip(*final_states)\r\n    final_state_tuple: Tuple[torch.FloatTensor,\r\n                             torch.FloatTensor] = (torch.cat(final_hidden_states, 0),\r\n                                                   torch.cat(final_memory_states, 0))\r\n    return stacked_sequence_outputs, final_state_tuple"
  },
  {
    "path": "utils/lele/layers/elmo/embedding_layer.py",
    "content": "import torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport logging\r\n\r\nlogging.basicConfig(level=logging.INFO, format='%(asctime)-15s %(levelname)s: %(message)s')\r\n\r\n\r\nclass EmbeddingLayer(nn.Module):\r\n  def __init__(self, n_d, word2id, embs=None, fix_emb=True, oov='<oov>', pad='<pad>', normalize=True):\r\n    super(EmbeddingLayer, self).__init__()\r\n    if embs is not None:\r\n      embwords, embvecs = embs\r\n      # for word in embwords:\r\n      #  assert word not in word2id, \"Duplicate words in pre-trained embeddings\"\r\n      #  word2id[word] = len(word2id)\r\n\r\n      logging.info(\"{} pre-trained word embeddings loaded.\".format(len(word2id)))\r\n      if n_d != len(embvecs[0]):\r\n        logging.warning(\"[WARNING] n_d ({}) != word vector size ({}). Use {} for embeddings.\".format(\r\n          n_d, len(embvecs[0]), len(embvecs[0])))\r\n        n_d = len(embvecs[0])\r\n\r\n    self.word2id = word2id\r\n    self.id2word = {i: word for word, i in word2id.items()}\r\n    self.n_V, self.n_d = len(word2id), n_d\r\n    self.oovid = word2id[oov]\r\n    self.padid = word2id[pad]\r\n    self.embedding = nn.Embedding(self.n_V, n_d, padding_idx=self.padid)\r\n    self.embedding.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    if embs is not None:\r\n      weight = self.embedding.weight\r\n      weight.data[:len(embwords)].copy_(torch.from_numpy(embvecs))\r\n      logging.info(\"embedding shape: {}\".format(weight.size()))\r\n\r\n    if normalize:\r\n      weight = self.embedding.weight\r\n      norms = weight.data.norm(2, 1)\r\n      if norms.dim() == 1:\r\n        norms = norms.unsqueeze(1)\r\n      weight.data.div_(norms.expand_as(weight.data))\r\n\r\n    if fix_emb:\r\n      self.embedding.weight.requires_grad = False\r\n\r\n  def forward(self, input_):\r\n    return self.embedding(input_)"
  },
  {
    "path": "utils/lele/layers/elmo/encoder_base.py",
    "content": "from typing import Tuple, Union, Optional, Callable\r\nimport torch\r\nfrom torch.autograd import Variable\r\nfrom torch.nn.utils.rnn import pack_padded_sequence, PackedSequence\r\n\r\nfrom .util import get_lengths_from_binary_sequence_mask, sort_batch_by_length\r\n\r\n# We have two types here for the state, because storing the state in something\r\n# which is Iterable (like a tuple, below), is helpful for internal manipulation\r\n# - however, the states are consumed as either Tensors or a Tuple of Tensors, so\r\n# returning them in this format is unhelpful.\r\nRnnState = Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]  # pylint: disable=invalid-name\r\nRnnStateStorage = Tuple[torch.Tensor, ...]  # pylint: disable=invalid-name\r\n\r\n\r\nclass _EncoderBase(torch.nn.Module):\r\n    # pylint: disable=abstract-method\r\n    \"\"\"\r\n    This abstract class serves as a base for the 3 ``Encoder`` abstractions in AllenNLP.\r\n    - :class:`~allennlp.modules.seq2seq_encoders.Seq2SeqEncoders`\r\n    - :class:`~allennlp.modules.seq2vec_encoders.Seq2VecEncoders`\r\n    Additionally, this class provides functionality for sorting sequences by length\r\n    so they can be consumed by Pytorch RNN classes, which require their inputs to be\r\n    sorted by length. Finally, it also provides optional statefulness to all of it's\r\n    subclasses by allowing the caching and retrieving of the hidden states of RNNs.\r\n    \"\"\"\r\n    def __init__(self, stateful: bool = False) -> None:\r\n        super(_EncoderBase, self).__init__()\r\n        self.stateful = stateful\r\n        self._states: Optional[RnnStateStorage] = None\r\n\r\n    def sort_and_run_forward(self,\r\n                             module: Callable[[PackedSequence, Optional[RnnState]],\r\n                                              Tuple[Union[PackedSequence, torch.Tensor], RnnState]],\r\n                             inputs: torch.Tensor,\r\n                             mask: torch.Tensor,\r\n                             hidden_state: Optional[RnnState] = None):\r\n        \"\"\"\r\n        This function exists because Pytorch RNNs require that their inputs be sorted\r\n        before being passed as input. As all of our Seq2xxxEncoders use this functionality,\r\n        it is provided in a base class. This method can be called on any module which\r\n        takes as input a ``PackedSequence`` and some ``hidden_state``, which can either be a\r\n        tuple of tensors or a tensor.\r\n        As all of our Seq2xxxEncoders have different return types, we return `sorted`\r\n        outputs from the module, which is called directly. Additionally, we return the\r\n        indices into the batch dimension required to restore the tensor to it's correct,\r\n        unsorted order and the number of valid batch elements (i.e the number of elements\r\n        in the batch which are not completely masked). This un-sorting and re-padding\r\n        of the module outputs is left to the subclasses because their outputs have different\r\n        types and handling them smoothly here is difficult.\r\n        Parameters\r\n        ----------\r\n        module : ``Callable[[PackedSequence, Optional[RnnState]],\r\n                            Tuple[Union[PackedSequence, torch.Tensor], RnnState]]``, required.\r\n            A function to run on the inputs. In most cases, this is a ``torch.nn.Module``.\r\n        inputs : ``torch.Tensor``, required.\r\n            A tensor of shape ``(batch_size, sequence_length, embedding_size)`` representing\r\n            the inputs to the Encoder.\r\n        mask : ``torch.Tensor``, required.\r\n            A tensor of shape ``(batch_size, sequence_length)``, representing masked and\r\n            non-masked elements of the sequence for each element in the batch.\r\n        hidden_state : ``Optional[RnnState]``, (default = None).\r\n            A single tensor of shape (num_layers, batch_size, hidden_size) representing the\r\n            state of an RNN with or a tuple of\r\n            tensors of shapes (num_layers, batch_size, hidden_size) and\r\n            (num_layers, batch_size, memory_size), representing the hidden state and memory\r\n            state of an LSTM-like RNN.\r\n        Returns\r\n        -------\r\n        module_output : ``Union[torch.Tensor, PackedSequence]``.\r\n            A Tensor or PackedSequence representing the output of the Pytorch Module.\r\n            The batch size dimension will be equal to ``num_valid``, as sequences of zero\r\n            length are clipped off before the module is called, as Pytorch cannot handle\r\n            zero length sequences.\r\n        final_states : ``Optional[RnnState]``\r\n            A Tensor representing the hidden state of the Pytorch Module. This can either\r\n            be a single tensor of shape (num_layers, num_valid, hidden_size), for instance in\r\n            the case of a GRU, or a tuple of tensors, such as those required for an LSTM.\r\n        restoration_indices : ``torch.LongTensor``\r\n            A tensor of shape ``(batch_size,)``, describing the re-indexing required to transform\r\n            the outputs back to their original batch order.\r\n        \"\"\"\r\n        # In some circumstances you may have sequences of zero length. ``pack_padded_sequence``\r\n        # requires all sequence lengths to be > 0, so remove sequences of zero length before\r\n        # calling self._module, then fill with zeros.\r\n\r\n        # First count how many sequences are empty.\r\n        batch_size = mask.size(0)\r\n        num_valid = torch.sum(mask[:, 0]).int().item()\r\n\r\n        sequence_lengths = get_lengths_from_binary_sequence_mask(mask)\r\n        sorted_inputs, sorted_sequence_lengths, restoration_indices, sorting_indices =\\\r\n            sort_batch_by_length(inputs, sequence_lengths)\r\n        # Now create a PackedSequence with only the non-empty, sorted sequences.\r\n        packed_sequence_input = pack_padded_sequence(sorted_inputs[:num_valid, :, :],\r\n                                                     sorted_sequence_lengths[:num_valid].data.tolist(),\r\n                                                     batch_first=True)\r\n        # Prepare the initial states.\r\n        if not self.stateful:\r\n            if hidden_state is None:\r\n                initial_states = hidden_state\r\n            elif isinstance(hidden_state, tuple):\r\n                initial_states = [state.index_select(1, sorting_indices)[:, :num_valid, :]\r\n                                  for state in hidden_state]\r\n            else:\r\n                initial_states = hidden_state.index_select(1, sorting_indices)[:, :num_valid, :]\r\n\r\n        else:\r\n            initial_states = self._get_initial_states(batch_size, num_valid, sorting_indices)\r\n        # Actually call the module on the sorted PackedSequence.\r\n        module_output, final_states = module(packed_sequence_input, initial_states)\r\n\r\n        return module_output, final_states, restoration_indices\r\n\r\n    def _get_initial_states(self,\r\n                            batch_size: int,\r\n                            num_valid: int,\r\n                            sorting_indices: torch.LongTensor) -> Optional[RnnState]:\r\n        \"\"\"\r\n        Returns an initial state for use in an RNN. Additionally, this method handles\r\n        the batch size changing across calls by mutating the state to append initial states\r\n        for new elements in the batch. Finally, it also handles sorting the states\r\n        with respect to the sequence lengths of elements in the batch and removing rows\r\n        which are completely padded. Importantly, this `mutates` the state if the\r\n        current batch size is larger than when it was previously called.\r\n        Parameters\r\n        ----------\r\n        batch_size : ``int``, required.\r\n            The batch size can change size across calls to stateful RNNs, so we need\r\n            to know if we need to expand or shrink the states before returning them.\r\n            Expanded states will be set to zero.\r\n        num_valid : ``int``, required.\r\n            The batch may contain completely padded sequences which get removed before\r\n            the sequence is passed through the encoder. We also need to clip these off\r\n            of the state too.\r\n        sorting_indices ``torch.LongTensor``, required.\r\n            Pytorch RNNs take sequences sorted by length. When we return the states to be\r\n            used for a given call to ``module.forward``, we need the states to match up to\r\n            the sorted sequences, so before returning them, we sort the states using the\r\n            same indices used to sort the sequences.\r\n        Returns\r\n        -------\r\n        This method has a complex return type because it has to deal with the first time it\r\n        is called, when it has no state, and the fact that types of RNN have heterogeneous\r\n        states.\r\n        If it is the first time the module has been called, it returns ``None``, regardless\r\n        of the type of the ``Module``.\r\n        Otherwise, for LSTMs, it returns a tuple of ``torch.Tensors`` with shape\r\n        ``(num_layers, num_valid, state_size)`` and ``(num_layers, num_valid, memory_size)``\r\n        respectively, or for GRUs, it returns a single ``torch.Tensor`` of shape\r\n        ``(num_layers, num_valid, state_size)``.\r\n        \"\"\"\r\n        # We don't know the state sizes the first time calling forward,\r\n        # so we let the module define what it's initial hidden state looks like.\r\n        if self._states is None:\r\n            return None\r\n\r\n        # Otherwise, we have some previous states.\r\n        if batch_size > self._states[0].size(1):\r\n            # This batch is larger than the all previous states.\r\n            # If so, resize the states.\r\n            num_states_to_concat = batch_size - self._states[0].size(1)\r\n            resized_states = []\r\n            # state has shape (num_layers, batch_size, hidden_size)\r\n            for state in self._states:\r\n                # This _must_ be inside the loop because some\r\n                # RNNs have states with different last dimension sizes.\r\n                zeros = state.data.new(state.size(0),\r\n                                       num_states_to_concat,\r\n                                       state.size(2)).fill_(0)\r\n                zeros = Variable(zeros)\r\n                resized_states.append(torch.cat([state, zeros], 1))\r\n            self._states = tuple(resized_states)\r\n            correctly_shaped_states = self._states\r\n\r\n        elif batch_size < self._states[0].size(1):\r\n            # This batch is smaller than the previous one.\r\n            correctly_shaped_states = tuple(state[:, :batch_size, :] for state in self._states)\r\n        else:\r\n            correctly_shaped_states = self._states\r\n\r\n        # At this point, our states are of shape (num_layers, batch_size, hidden_size).\r\n        # However, the encoder uses sorted sequences and additionally removes elements\r\n        # of the batch which are fully padded. We need the states to match up to these\r\n        # sorted and filtered sequences, so we do that in the next two blocks before\r\n        # returning the state/s.\r\n        if len(self._states) == 1:\r\n            # GRUs only have a single state. This `unpacks` it from the\r\n            # tuple and returns the tensor directly.\r\n            correctly_shaped_state = correctly_shaped_states[0]\r\n            sorted_state = correctly_shaped_state.index_select(1, sorting_indices)\r\n            return sorted_state[:, :num_valid, :]\r\n        else:\r\n            # LSTMs have a state tuple of (state, memory).\r\n            sorted_states = [state.index_select(1, sorting_indices)\r\n                             for state in correctly_shaped_states]\r\n            return tuple(state[:, :num_valid, :] for state in sorted_states)\r\n\r\n    def _update_states(self,\r\n                       final_states: RnnStateStorage,\r\n                       restoration_indices: torch.LongTensor) -> None:\r\n        \"\"\"\r\n        After the RNN has run forward, the states need to be updated.\r\n        This method just sets the state to the updated new state, performing\r\n        several pieces of book-keeping along the way - namely, unsorting the\r\n        states and ensuring that the states of completely padded sequences are\r\n        not updated. Finally, it also detatches the state variable from the\r\n        computational graph, such that the graph can be garbage collected after\r\n        each batch iteration.\r\n        Parameters\r\n        ----------\r\n        final_states : ``RnnStateStorage``, required.\r\n            The hidden states returned as output from the RNN.\r\n        restoration_indices : ``torch.LongTensor``, required.\r\n            The indices that invert the sorting used in ``sort_and_run_forward``\r\n            to order the states with respect to the lengths of the sequences in\r\n            the batch.\r\n        \"\"\"\r\n        # TODO(Mark): seems weird to sort here, but append zeros in the subclasses.\r\n        # which way around is best?\r\n        new_unsorted_states = [state.index_select(1, restoration_indices)\r\n                               for state in final_states]\r\n\r\n        if self._states is None:\r\n            # We don't already have states, so just set the\r\n            # ones we receive to be the current state.\r\n            self._states = tuple([torch.autograd.Variable(state.data)\r\n                                  for state in new_unsorted_states])\r\n        else:\r\n            # Now we've sorted the states back so that they correspond to the original\r\n            # indices, we need to figure out what states we need to update, because if we\r\n            # didn't use a state for a particular row, we want to preserve its state.\r\n            # Thankfully, the rows which are all zero in the state correspond exactly\r\n            # to those which aren't used, so we create masks of shape (new_batch_size,),\r\n            # denoting which states were used in the RNN computation.\r\n            current_state_batch_size = self._states[0].size(1)\r\n            new_state_batch_size = final_states[0].size(1)\r\n            # Masks for the unused states of shape (1, new_batch_size, 1)\r\n            used_new_rows_mask = [(state[0, :, :].sum(-1)\r\n                                   != 0.0).float().view(1, new_state_batch_size, 1)\r\n                                  for state in new_unsorted_states]\r\n            new_states = []\r\n            if current_state_batch_size > new_state_batch_size:\r\n                # The new state is smaller than the old one,\r\n                # so just update the indices which we used.\r\n                for old_state, new_state, used_mask in zip(self._states,\r\n                                                           new_unsorted_states,\r\n                                                           used_new_rows_mask):\r\n                    # zero out all rows in the previous state\r\n                    # which _were_ used in the current state.\r\n                    masked_old_state = old_state[:, :new_state_batch_size, :] * (1 - used_mask)\r\n                    # The old state is larger, so update the relevant parts of it.\r\n                    old_state[:, :new_state_batch_size, :] = new_state + masked_old_state\r\n                    # Detatch the Variable.\r\n                    new_states.append(torch.autograd.Variable(old_state.data))\r\n            else:\r\n                # The states are the same size, so we just have to\r\n                # deal with the possibility that some rows weren't used.\r\n                new_states = []\r\n                for old_state, new_state, used_mask in zip(self._states,\r\n                                                           new_unsorted_states,\r\n                                                           used_new_rows_mask):\r\n                    # zero out all rows which _were_ used in the current state.\r\n                    masked_old_state = old_state * (1 - used_mask)\r\n                    # The old state is larger, so update the relevant parts of it.\r\n                    new_state += masked_old_state\r\n                    # Detatch the Variable.\r\n                    new_states.append(torch.autograd.Variable(new_state.data))\r\n\r\n            # It looks like there should be another case handled here - when\r\n            # the current_state_batch_size < new_state_batch_size. However,\r\n            # this never happens, because the states themeselves are mutated\r\n            # by appending zeros when calling _get_inital_states, meaning that\r\n            # the new states are either of equal size, or smaller, in the case\r\n            # that there are some unused elements (zero-length) for the RNN computation.\r\n            self._states = tuple(new_states)\r\n\r\n    def reset_states(self):\r\n        self._states = None\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/highway.py",
    "content": "\"\"\"\r\nA `Highway layer <https://arxiv.org/abs/1505.00387>`_ that does a gated combination of a linear\r\ntransformation and a non-linear transformation of its input.\r\n\"\"\"\r\n\r\nfrom typing import Callable\r\n\r\nimport torch\r\nfrom overrides import overrides\r\n\r\n\r\nclass Highway(torch.nn.Module):\r\n    \"\"\"\r\n    A `Highway layer <https://arxiv.org/abs/1505.00387>`_ does a gated combination of a linear\r\n    transformation and a non-linear transformation of its input.  :math:`y = g * x + (1 - g) *\r\n    f(A(x))`, where :math:`A` is a linear transformation, :math:`f` is an element-wise\r\n    non-linearity, and :math:`g` is an element-wise gate, computed as :math:`sigmoid(B(x))`.\r\n    This module will apply a fixed number of highway layers to its input, returning the final\r\n    result.\r\n    Parameters\r\n    ----------\r\n    input_dim : ``int``\r\n        The dimensionality of :math:`x`.  We assume the input has shape ``(batch_size,\r\n        input_dim)``.\r\n    num_layers : ``int``, optional (default=``1``)\r\n        The number of highway layers to apply to the input.\r\n    activation : ``Callable[[torch.Tensor], torch.Tensor]``, optional (default=``torch.nn.functional.relu``)\r\n        The non-linearity to use in the highway layers.\r\n    \"\"\"\r\n    def __init__(self,\r\n                 input_dim: int,\r\n                 num_layers: int = 1,\r\n                 activation: Callable[[torch.Tensor], torch.Tensor] = torch.nn.functional.relu) -> None:\r\n        super(Highway, self).__init__()\r\n        self._input_dim = input_dim\r\n        self._layers = torch.nn.ModuleList([torch.nn.Linear(input_dim, input_dim * 2)\r\n                                            for _ in range(num_layers)])\r\n        self._activation = activation\r\n        for layer in self._layers:\r\n            # We should bias the highway layer to just carry its input forward.  We do that by\r\n            # setting the bias on `B(x)` to be positive, because that means `g` will be biased to\r\n            # be high, to we will carry the input forward.  The bias on `B(x)` is the second half\r\n            # of the bias vector in each Linear layer.\r\n            layer.bias[input_dim:].data.fill_(1)\r\n\r\n    @overrides\r\n    def forward(self, inputs: torch.Tensor) -> torch.Tensor:  # pylint: disable=arguments-differ\r\n        current_input = inputs\r\n        for layer in self._layers:\r\n            projected_input = layer(current_input)\r\n            linear_part = current_input\r\n            # NOTE: if you modify this, think about whether you should modify the initialization\r\n            # above, too.\r\n            nonlinear_part = projected_input[:, (0 * self._input_dim):(1 * self._input_dim)]\r\n            gate = projected_input[:, (1 * self._input_dim):(2 * self._input_dim)]\r\n            nonlinear_part = self._activation(nonlinear_part)\r\n            gate = torch.sigmoid(gate)\r\n            current_input = gate * linear_part + (1 - gate) * nonlinear_part\r\n        return current_input\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/lstm.py",
    "content": "from __future__ import absolute_import\r\nfrom __future__ import unicode_literals\r\nimport logging\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport copy\r\n\r\n\r\nclass LstmbiLm(nn.Module):\r\n  def __init__(self, config, use_cuda=False):\r\n    super(LstmbiLm, self).__init__()\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n    \r\n    self.encoder = nn.LSTM(self.config['encoder']['projection_dim'],\r\n                           self.config['encoder']['dim'],\r\n                           num_layers=self.config['encoder']['n_layers'], \r\n                           bidirectional=True,\r\n                           batch_first=True, \r\n                           dropout=self.config['dropout'])\r\n    self.projection = nn.Linear(self.config['encoder']['dim'], self.config['encoder']['projection_dim'], bias=True)\r\n\r\n  def forward(self, inputs):\r\n    forward, backward = self.encoder(inputs)[0].split(self.config['encoder']['dim'], 2)\r\n    return torch.cat([self.projection(forward), self.projection(backward)], dim=2)\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/lstm_cell_with_projection.py",
    "content": "\"\"\"\r\nAn LSTM with Recurrent Dropout, a hidden_state which is projected and\r\nclipping on both the hidden state and the memory state of the LSTM.\r\n\"\"\"\r\n\r\nfrom typing import Optional, Tuple, List\r\n\r\nimport torch\r\nfrom torch.autograd import Variable\r\n\r\nfrom .util import block_orthogonal, get_dropout_mask\r\n\r\nclass LstmCellWithProjection(torch.nn.Module):\r\n    \"\"\"\r\n    An LSTM with Recurrent Dropout and a projected and clipped hidden state and\r\n    memory. Note: this implementation is slower than the native Pytorch LSTM because\r\n    it cannot make use of CUDNN optimizations for stacked RNNs due to and\r\n    variational dropout and the custom nature of the cell state.\r\n    Parameters\r\n    ----------\r\n    input_size : ``int``, required.\r\n        The dimension of the inputs to the LSTM.\r\n    hidden_size : ``int``, required.\r\n        The dimension of the outputs of the LSTM.\r\n    cell_size : ``int``, required.\r\n        The dimension of the memory cell used for the LSTM.\r\n    go_forward: ``bool``, optional (default = True)\r\n        The direction in which the LSTM is applied to the sequence.\r\n        Forwards by default, or backwards if False.\r\n    recurrent_dropout_probability: ``float``, optional (default = 0.0)\r\n        The dropout probability to be used in a dropout scheme as stated in\r\n        `A Theoretically Grounded Application of Dropout in Recurrent Neural Networks\r\n        <https://arxiv.org/abs/1512.05287>`_ . Implementation wise, this simply\r\n        applies a fixed dropout mask per sequence to the recurrent connection of the\r\n        LSTM.\r\n    state_projection_clip_value: ``float``, optional, (default = None)\r\n        The magnitude with which to clip the hidden_state after projecting it.\r\n    memory_cell_clip_value: ``float``, optional, (default = None)\r\n        The magnitude with which to clip the memory cell.\r\n    Returns\r\n    -------\r\n    output_accumulator : ``torch.FloatTensor``\r\n        The outputs of the LSTM for each timestep. A tensor of shape\r\n        (batch_size, max_timesteps, hidden_size) where for a given batch\r\n        element, all outputs past the sequence length for that batch are\r\n        zero tensors.\r\n    final_state: ``Tuple[torch.FloatTensor, torch.FloatTensor]``\r\n        The final (state, memory) states of the LSTM, with shape\r\n        (1, batch_size, hidden_size) and  (1, batch_size, cell_size)\r\n        respectively. The first dimension is 1 in order to match the Pytorch\r\n        API for returning stacked LSTM states.\r\n    \"\"\"\r\n    def __init__(self,\r\n                 input_size: int,\r\n                 hidden_size: int,\r\n                 cell_size: int,\r\n                 go_forward: bool = True,\r\n                 recurrent_dropout_probability: float = 0.0,\r\n                 memory_cell_clip_value: Optional[float] = None,\r\n                 state_projection_clip_value: Optional[float] = None) -> None:\r\n        super(LstmCellWithProjection, self).__init__()\r\n        # Required to be wrapped with a :class:`PytorchSeq2SeqWrapper`.\r\n        self.input_size = input_size\r\n        self.hidden_size = hidden_size\r\n        self.cell_size = cell_size\r\n\r\n        self.go_forward = go_forward\r\n        self.state_projection_clip_value = state_projection_clip_value\r\n        self.memory_cell_clip_value = memory_cell_clip_value\r\n        self.recurrent_dropout_probability = recurrent_dropout_probability\r\n\r\n        # We do the projections for all the gates all at once.\r\n        self.input_linearity = torch.nn.Linear(input_size, 4 * cell_size, bias=False)\r\n        self.state_linearity = torch.nn.Linear(hidden_size, 4 * cell_size, bias=True)\r\n\r\n        # Additional projection matrix for making the hidden state smaller.\r\n        self.state_projection = torch.nn.Linear(cell_size, hidden_size, bias=False)\r\n        self.reset_parameters()\r\n\r\n    def reset_parameters(self):\r\n        # Use sensible default initializations for parameters.\r\n        block_orthogonal(self.input_linearity.weight.data, [self.cell_size, self.input_size])\r\n        block_orthogonal(self.state_linearity.weight.data, [self.cell_size, self.hidden_size])\r\n\r\n        self.state_linearity.bias.data.fill_(0.0)\r\n        # Initialize forget gate biases to 1.0 as per An Empirical\r\n        # Exploration of Recurrent Network Architectures, (Jozefowicz, 2015).\r\n        self.state_linearity.bias.data[self.cell_size:2 * self.cell_size].fill_(1.0)\r\n\r\n    def forward(self,  # pylint: disable=arguments-differ\r\n                inputs: torch.FloatTensor,\r\n                batch_lengths: List[int],\r\n                initial_state: Optional[Tuple[torch.Tensor, torch.Tensor]] = None):\r\n        \"\"\"\r\n        Parameters\r\n        ----------\r\n        inputs : ``torch.FloatTensor``, required.\r\n            A tensor of shape (batch_size, num_timesteps, input_size)\r\n            to apply the LSTM over.\r\n        batch_lengths : ``List[int]``, required.\r\n            A list of length batch_size containing the lengths of the sequences in batch.\r\n        initial_state : ``Tuple[torch.Tensor, torch.Tensor]``, optional, (default = None)\r\n            A tuple (state, memory) representing the initial hidden state and memory\r\n            of the LSTM. The ``state`` has shape (1, batch_size, hidden_size) and the\r\n            ``memory`` has shape (1, batch_size, cell_size).\r\n        Returns\r\n        -------\r\n        output_accumulator : ``torch.FloatTensor``\r\n            The outputs of the LSTM for each timestep. A tensor of shape\r\n            (batch_size, max_timesteps, hidden_size) where for a given batch\r\n            element, all outputs past the sequence length for that batch are\r\n            zero tensors.\r\n        final_state : ``Tuple[``torch.FloatTensor, torch.FloatTensor]``\r\n            A tuple (state, memory) representing the initial hidden state and memory\r\n            of the LSTM. The ``state`` has shape (1, batch_size, hidden_size) and the\r\n            ``memory`` has shape (1, batch_size, cell_size).\r\n        \"\"\"\r\n        batch_size = inputs.size()[0]\r\n        total_timesteps = inputs.size()[1]\r\n\r\n        # We have to use this '.data.new().fill_' pattern to create tensors with the correct\r\n        # type - forward has no knowledge of whether these are torch.Tensors or torch.cuda.Tensors.\r\n        output_accumulator = Variable(inputs.data.new(batch_size,\r\n                                                      total_timesteps,\r\n                                                      self.hidden_size).fill_(0))\r\n        if initial_state is None:\r\n            full_batch_previous_memory = Variable(inputs.data.new(batch_size,\r\n                                                                  self.cell_size).fill_(0))\r\n            full_batch_previous_state = Variable(inputs.data.new(batch_size,\r\n                                                                 self.hidden_size).fill_(0))\r\n        else:\r\n            full_batch_previous_state = initial_state[0].squeeze(0)\r\n            full_batch_previous_memory = initial_state[1].squeeze(0)\r\n\r\n        current_length_index = batch_size - 1 if self.go_forward else 0\r\n        if self.recurrent_dropout_probability > 0.0 and self.training:\r\n            dropout_mask = get_dropout_mask(self.recurrent_dropout_probability,\r\n                                            full_batch_previous_state)\r\n        else:\r\n            dropout_mask = None\r\n\r\n        for timestep in range(total_timesteps):\r\n            # The index depends on which end we start.\r\n            index = timestep if self.go_forward else total_timesteps - timestep - 1\r\n\r\n            # What we are doing here is finding the index into the batch dimension\r\n            # which we need to use for this timestep, because the sequences have\r\n            # variable length, so once the index is greater than the length of this\r\n            # particular batch sequence, we no longer need to do the computation for\r\n            # this sequence. The key thing to recognise here is that the batch inputs\r\n            # must be _ordered_ by length from longest (first in batch) to shortest\r\n            # (last) so initially, we are going forwards with every sequence and as we\r\n            # pass the index at which the shortest elements of the batch finish,\r\n            # we stop picking them up for the computation.\r\n            if self.go_forward:\r\n                while batch_lengths[current_length_index] <= index:\r\n                    current_length_index -= 1\r\n            # If we're going backwards, we are _picking up_ more indices.\r\n            else:\r\n                # First conditional: Are we already at the maximum number of elements in the batch?\r\n                # Second conditional: Does the next shortest sequence beyond the current batch\r\n                # index require computation use this timestep?\r\n                while current_length_index < (len(batch_lengths) - 1) and \\\r\n                                batch_lengths[current_length_index + 1] > index:\r\n                    current_length_index += 1\r\n\r\n            # Actually get the slices of the batch which we\r\n            # need for the computation at this timestep.\r\n            # shape (batch_size, cell_size)\r\n            previous_memory = full_batch_previous_memory[0: current_length_index + 1].clone()\r\n            # Shape (batch_size, hidden_size)\r\n            previous_state = full_batch_previous_state[0: current_length_index + 1].clone()\r\n            # Shape (batch_size, input_size)\r\n            timestep_input = inputs[0: current_length_index + 1, index]\r\n\r\n            # Do the projections for all the gates all at once.\r\n            # Both have shape (batch_size, 4 * cell_size)\r\n            projected_input = self.input_linearity(timestep_input)\r\n            projected_state = self.state_linearity(previous_state)\r\n\r\n            # Main LSTM equations using relevant chunks of the big linear\r\n            # projections of the hidden state and inputs.\r\n            input_gate = torch.sigmoid(projected_input[:, (0 * self.cell_size):(1 * self.cell_size)] +\r\n                                       projected_state[:, (0 * self.cell_size):(1 * self.cell_size)])\r\n            forget_gate = torch.sigmoid(projected_input[:, (1 * self.cell_size):(2 * self.cell_size)] +\r\n                                        projected_state[:, (1 * self.cell_size):(2 * self.cell_size)])\r\n            memory_init = torch.tanh(projected_input[:, (2 * self.cell_size):(3 * self.cell_size)] +\r\n                                     projected_state[:, (2 * self.cell_size):(3 * self.cell_size)])\r\n            output_gate = torch.sigmoid(projected_input[:, (3 * self.cell_size):(4 * self.cell_size)] +\r\n                                        projected_state[:, (3 * self.cell_size):(4 * self.cell_size)])\r\n            memory = input_gate * memory_init + forget_gate * previous_memory\r\n\r\n            # Here is the non-standard part of this LSTM cell; first, we clip the\r\n            # memory cell, then we project the output of the timestep to a smaller size\r\n            # and again clip it.\r\n\r\n            if self.memory_cell_clip_value:\r\n                # pylint: disable=invalid-unary-operand-type\r\n                memory = torch.clamp(memory, -self.memory_cell_clip_value, self.memory_cell_clip_value)\r\n\r\n            # shape (current_length_index, cell_size)\r\n            pre_projection_timestep_output = output_gate * torch.tanh(memory)\r\n\r\n            # shape (current_length_index, hidden_size)\r\n            timestep_output = self.state_projection(pre_projection_timestep_output)\r\n            if self.state_projection_clip_value:\r\n                # pylint: disable=invalid-unary-operand-type\r\n                timestep_output = torch.clamp(timestep_output,\r\n                                              -self.state_projection_clip_value,\r\n                                              self.state_projection_clip_value)\r\n\r\n            # Only do dropout if the dropout prob is > 0.0 and we are in training mode.\r\n            if dropout_mask is not None:\r\n                timestep_output = timestep_output * dropout_mask[0: current_length_index + 1]\r\n\r\n            # We've been doing computation with less than the full batch, so here we create a new\r\n            # variable for the the whole batch at this timestep and insert the result for the\r\n            # relevant elements of the batch into it.\r\n            full_batch_previous_memory = Variable(full_batch_previous_memory.data.clone())\r\n            full_batch_previous_state = Variable(full_batch_previous_state.data.clone())\r\n            full_batch_previous_memory[0:current_length_index + 1] = memory\r\n            full_batch_previous_state[0:current_length_index + 1] = timestep_output\r\n            output_accumulator[0:current_length_index + 1, index] = timestep_output\r\n\r\n        # Mimic the pytorch API by returning state in the following shape:\r\n        # (num_layers * num_directions, batch_size, ...). As this\r\n        # LSTM cell cannot be stacked, the first dimension here is just 1.\r\n        final_state = (full_batch_previous_state.unsqueeze(0),\r\n                       full_batch_previous_memory.unsqueeze(0))\r\n\r\n        return output_accumulator, final_state\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/token_embedder.py",
    "content": "from __future__ import absolute_import\r\nfrom __future__ import unicode_literals\r\nimport logging\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport copy\r\nfrom .highway import Highway\r\n\r\n\r\nclass LstmTokenEmbedder(nn.Module):\r\n  def __init__(self, config, word_emb_layer, char_emb_layer, use_cuda=False):\r\n    super(LstmTokenEmbedder, self).__init__()\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n    self.word_emb_layer = word_emb_layer\r\n    self.char_emb_layer = char_emb_layer\r\n    self.output_dim = config['encoder']['projection_dim']\r\n    emb_dim = 0\r\n    if word_emb_layer is not None:\r\n      emb_dim += word_emb_layer.n_d\r\n\r\n    if char_emb_layer is not None:\r\n      emb_dim += char_emb_layer.n_d * 2\r\n      self.char_lstm = nn.LSTM(char_emb_layer.n_d, char_emb_layer.n_d, num_layers=1, bidirectional=True,\r\n                               batch_first=True, dropout=config['dropout'])\r\n\r\n    self.projection = nn.Linear(emb_dim, self.output_dim, bias=True)\r\n\r\n  def forward(self, word_inp, chars_inp, shape):\r\n    embs = []\r\n    batch_size, seq_len = shape\r\n    if self.word_emb_layer is not None:\r\n      word_emb = self.word_emb_layer(Variable(word_inp).cuda() if self.use_cuda else Variable(word_inp))\r\n      embs.append(word_emb)\r\n\r\n    if self.char_emb_layer is not None:\r\n      chars_inp = chars_inp.view(batch_size * seq_len, -1)\r\n      chars_emb = self.char_emb_layer(Variable(chars_inp).cuda() if self.use_cuda else Variable(chars_inp))\r\n      _, (chars_outputs, __) = self.char_lstm(chars_emb)\r\n      chars_outputs = chars_outputs.contiguous().view(-1, self.config['token_embedder']['char_dim'] * 2)\r\n      embs.append(chars_outputs)\r\n\r\n    token_embedding = torch.cat(embs, dim=2)\r\n\r\n    return self.projection(token_embedding)\r\n\r\n\r\nclass ConvTokenEmbedder(nn.Module):\r\n  def __init__(self, config, word_emb_layer, char_emb_layer, use_cuda):\r\n    super(ConvTokenEmbedder, self).__init__()\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n\r\n    self.word_emb_layer = word_emb_layer\r\n    self.char_emb_layer = char_emb_layer\r\n\r\n    self.output_dim = config['encoder']['projection_dim']\r\n    self.emb_dim = 0\r\n    if word_emb_layer is not None:\r\n      self.emb_dim += word_emb_layer.n_d\r\n\r\n    if char_emb_layer is not None:\r\n      self.convolutions = []\r\n      cnn_config = config['token_embedder']\r\n      filters = cnn_config['filters']\r\n      char_embed_dim = cnn_config['char_dim']\r\n\r\n      for i, (width, num) in enumerate(filters):\r\n        conv = torch.nn.Conv1d(\r\n          in_channels=char_embed_dim,\r\n          out_channels=num,\r\n          kernel_size=width,\r\n          bias=True\r\n        )\r\n        self.convolutions.append(conv)\r\n\r\n      self.convolutions = nn.ModuleList(self.convolutions)\r\n      \r\n      self.n_filters = sum(f[1] for f in filters)\r\n      self.n_highway = cnn_config['n_highway']\r\n\r\n      self.highways = Highway(self.n_filters, self.n_highway, activation=torch.nn.functional.relu)\r\n      self.emb_dim += self.n_filters\r\n\r\n    self.projection = nn.Linear(self.emb_dim, self.output_dim, bias=True)\r\n    \r\n  def forward(self, word_inp, chars_inp, shape):\r\n    embs = []\r\n    batch_size, seq_len = shape\r\n    if self.word_emb_layer is not None:\r\n      batch_size, seq_len = word_inp.size(0), word_inp.size(1)\r\n      word_emb = self.word_emb_layer(Variable(word_inp).cuda() if self.use_cuda else Variable(word_inp))\r\n      embs.append(word_emb)\r\n\r\n    if self.char_emb_layer is not None:\r\n      chars_inp = chars_inp.view(batch_size * seq_len, -1)\r\n\r\n      character_embedding = self.char_emb_layer(Variable(chars_inp).cuda() if self.use_cuda else Variable(chars_inp))\r\n\r\n      character_embedding = torch.transpose(character_embedding, 1, 2)\r\n\r\n      cnn_config = self.config['token_embedder']\r\n      if cnn_config['activation'] == 'tanh':\r\n        activation = torch.nn.functional.tanh\r\n      elif cnn_config['activation'] == 'relu':\r\n        activation = torch.nn.functional.relu\r\n      else:\r\n        raise Exception(\"Unknown activation\")\r\n\r\n      convs = []\r\n      for i in range(len(self.convolutions)):\r\n        convolved = self.convolutions[i](character_embedding)\r\n        # (batch_size * sequence_length, n_filters for this width)\r\n        convolved, _ = torch.max(convolved, dim=-1)\r\n        convolved = activation(convolved)\r\n        convs.append(convolved)\r\n      char_emb = torch.cat(convs, dim=-1)\r\n      char_emb = self.highways(char_emb)\r\n\r\n      embs.append(char_emb.view(batch_size, -1, self.n_filters))\r\n      \r\n    token_embedding = torch.cat(embs, dim=2)\r\n\r\n    return self.projection(token_embedding)\r\n"
  },
  {
    "path": "utils/lele/layers/elmo/util.py",
    "content": "\"\"\"\r\nAssorted utilities for working with neural networks in AllenNLP.\r\n\"\"\"\r\nfrom collections import defaultdict\r\nfrom typing import Dict, List, Optional, Any, Tuple, Callable\r\nimport logging\r\nimport itertools\r\nimport math\r\nimport torch\r\nfrom torch.autograd import Variable\r\n\r\ndef get_lengths_from_binary_sequence_mask(mask: torch.Tensor):\r\n    \"\"\"\r\n    Compute sequence lengths for each batch element in a tensor using a\r\n    binary mask.\r\n    Parameters\r\n    ----------\r\n    mask : torch.Tensor, required.\r\n        A 2D binary mask of shape (batch_size, sequence_length) to\r\n        calculate the per-batch sequence lengths from.\r\n    Returns\r\n    -------\r\n    A torch.LongTensor of shape (batch_size,) representing the lengths\r\n    of the sequences in the batch.\r\n    \"\"\"\r\n    return mask.long().sum(-1)\r\n\r\n\r\ndef sort_batch_by_length(tensor: torch.autograd.Variable,\r\n                         sequence_lengths: torch.autograd.Variable):\r\n    \"\"\"\r\n    Sort a batch first tensor by some specified lengths.\r\n    Parameters\r\n    ----------\r\n    tensor : Variable(torch.FloatTensor), required.\r\n        A batch first Pytorch tensor.\r\n    sequence_lengths : Variable(torch.LongTensor), required.\r\n        A tensor representing the lengths of some dimension of the tensor which\r\n        we want to sort by.\r\n    Returns\r\n    -------\r\n    sorted_tensor : Variable(torch.FloatTensor)\r\n        The original tensor sorted along the batch dimension with respect to sequence_lengths.\r\n    sorted_sequence_lengths : Variable(torch.LongTensor)\r\n        The original sequence_lengths sorted by decreasing size.\r\n    restoration_indices : Variable(torch.LongTensor)\r\n        Indices into the sorted_tensor such that\r\n        ``sorted_tensor.index_select(0, restoration_indices) == original_tensor``\r\n    permuation_index : Variable(torch.LongTensor)\r\n        The indices used to sort the tensor. This is useful if you want to sort many\r\n        tensors using the same ordering.\r\n    \"\"\"\r\n\r\n    if not isinstance(tensor, Variable) or not isinstance(sequence_lengths, Variable):\r\n        raise Exception(\"Both the tensor and sequence lengths must be torch.autograd.Variables.\")\r\n\r\n    sorted_sequence_lengths, permutation_index = sequence_lengths.sort(0, descending=True)\r\n    sorted_tensor = tensor.index_select(0, permutation_index)\r\n\r\n    # This is ugly, but required - we are creating a new variable at runtime, so we\r\n    # must ensure it has the correct CUDA vs non-CUDA type. We do this by cloning and\r\n    # refilling one of the inputs to the function.\r\n    index_range = sequence_lengths.data.clone().copy_(torch.arange(0, len(sequence_lengths)))\r\n    # This is the equivalent of zipping with index, sorting by the original\r\n    # sequence lengths and returning the now sorted indices.\r\n    index_range = Variable(index_range.long())\r\n    _, reverse_mapping = permutation_index.sort(0, descending=False)\r\n    restoration_indices = index_range.index_select(0, reverse_mapping)\r\n    return sorted_tensor, sorted_sequence_lengths, restoration_indices, permutation_index\r\n\r\n\r\ndef get_final_encoder_states(encoder_outputs: torch.Tensor,\r\n                             mask: torch.Tensor,\r\n                             bidirectional: bool = False) -> torch.Tensor:\r\n    \"\"\"\r\n    Given the output from a ``Seq2SeqEncoder``, with shape ``(batch_size, sequence_length,\r\n    encoding_dim)``, this method returns the final hidden state for each element of the batch,\r\n    giving a tensor of shape ``(batch_size, encoding_dim)``.  This is not as simple as\r\n    ``encoder_outputs[:, -1]``, because the sequences could have different lengths.  We use the\r\n    mask (which has shape ``(batch_size, sequence_length)``) to find the final state for each batch\r\n    instance.\r\n    Additionally, if ``bidirectional`` is ``True``, we will split the final dimension of the\r\n    ``encoder_outputs`` into two and assume that the first half is for the forward direction of the\r\n    encoder and the second half is for the backward direction.  We will concatenate the last state\r\n    for each encoder dimension, giving ``encoder_outputs[:, -1, :encoding_dim/2]`` concated with\r\n    ``encoder_outputs[:, 0, encoding_dim/2:]``.\r\n    \"\"\"\r\n    # These are the indices of the last words in the sequences (i.e. length sans padding - 1).  We\r\n    # are assuming sequences are right padded.\r\n    # Shape: (batch_size,)\r\n    last_word_indices = mask.sum(1).long() - 1\r\n    batch_size, _, encoder_output_dim = encoder_outputs.size()\r\n    expanded_indices = last_word_indices.view(-1, 1, 1).expand(batch_size, 1, encoder_output_dim)\r\n    # Shape: (batch_size, 1, encoder_output_dim)\r\n    final_encoder_output = encoder_outputs.gather(1, expanded_indices)\r\n    final_encoder_output = final_encoder_output.squeeze(1)  # (batch_size, encoder_output_dim)\r\n    if bidirectional:\r\n        final_forward_output = final_encoder_output[:, :(encoder_output_dim // 2)]\r\n        final_backward_output = encoder_outputs[:, 0, (encoder_output_dim // 2):]\r\n        final_encoder_output = torch.cat([final_forward_output, final_backward_output], dim=-1)\r\n    return final_encoder_output\r\n\r\n\r\ndef get_dropout_mask(dropout_probability: float, tensor_for_masking: torch.autograd.Variable):\r\n    \"\"\"\r\n    Computes and returns an element-wise dropout mask for a given tensor, where\r\n    each element in the mask is dropped out with probability dropout_probability.\r\n    Note that the mask is NOT applied to the tensor - the tensor is passed to retain\r\n    the correct CUDA tensor type for the mask.\r\n    Parameters\r\n    ----------\r\n    dropout_probability : float, required.\r\n        Probability of dropping a dimension of the input.\r\n    tensor_for_masking : torch.Variable, required.\r\n    Returns\r\n    -------\r\n    A torch.FloatTensor consisting of the binary mask scaled by 1/ (1 - dropout_probability).\r\n    This scaling ensures expected values and variances of the output of applying this mask\r\n     and the original tensor are the same.\r\n    \"\"\"\r\n    binary_mask = tensor_for_masking.clone()\r\n    binary_mask.data.copy_(torch.rand(tensor_for_masking.size()) > dropout_probability)\r\n    # Scale mask by 1/keep_prob to preserve output statistics.\r\n    dropout_mask = binary_mask.float().div(1.0 - dropout_probability)\r\n    return dropout_mask\r\n    \r\ndef block_orthogonal(tensor: torch.Tensor,\r\n                     split_sizes: List[int],\r\n                     gain: float = 1.0) -> None:\r\n        \"\"\"\r\n        An initializer which allows initializing model parameters in \"blocks\". This is helpful\r\n        in the case of recurrent models which use multiple gates applied to linear projections,\r\n        which can be computed efficiently if they are concatenated together. However, they are\r\n        separate parameters which should be initialized independently.\r\n        Parameters\r\n        ----------\r\n        tensor : ``torch.Tensor``, required.\r\n            A tensor to initialize.\r\n        split_sizes : List[int], required.\r\n            A list of length ``tensor.ndim()`` specifying the size of the\r\n            blocks along that particular dimension. E.g. ``[10, 20]`` would\r\n            result in the tensor being split into chunks of size 10 along the\r\n            first dimension and 20 along the second.\r\n        gain : float, optional (default = 1.0)\r\n            The gain (scaling) applied to the orthogonal initialization.\r\n        \"\"\"\r\n\r\n        if isinstance(tensor, Variable):\r\n        # in pytorch 4.0, Variable equals Tensor\r\n        #    block_orthogonal(tensor.data, split_sizes, gain)\r\n        #else:\r\n            sizes = list(tensor.size())\r\n            if any([a % b != 0 for a, b in zip(sizes, split_sizes)]):\r\n                raise ConfigurationError(\"tensor dimensions must be divisible by their respective \"\r\n                                         \"split_sizes. Found size: {} and split_sizes: {}\".format(sizes, split_sizes))\r\n            indexes = [list(range(0, max_size, split))\r\n                       for max_size, split in zip(sizes, split_sizes)]\r\n            # Iterate over all possible blocks within the tensor.\r\n            for block_start_indices in itertools.product(*indexes):\r\n                # A list of tuples containing the index to start at for this block\r\n                # and the appropriate step size (i.e split_size[i] for dimension i).\r\n                index_and_step_tuples = zip(block_start_indices, split_sizes)\r\n                # This is a tuple of slices corresponding to:\r\n                # tensor[index: index + step_size, ...]. This is\r\n                # required because we could have an arbitrary number\r\n                # of dimensions. The actual slices we need are the\r\n                # start_index: start_index + step for each dimension in the tensor.\r\n                block_slice = tuple([slice(start_index, start_index + step)\r\n                                     for start_index, step in index_and_step_tuples])\r\n                tensor[block_slice] = torch.nn.init.orthogonal_(tensor[block_slice].contiguous(), gain=gain)\r\n"
  },
  {
    "path": "utils/lele/layers/elmo.py",
    "content": "from typing import Optional, Tuple, List, Callable, Union\r\n\r\nimport h5py\r\nimport numpy\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.nn.utils.rnn import PackedSequence, pad_packed_sequence, pack_padded_sequence\r\nfrom torch.autograd import Variable\r\n\r\nfrom .encoder_base import _EncoderBase\r\nfrom .lstm_cell_with_projection import LstmCellWithProjection\r\n\r\nRnnState = Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]  # pylint: disable=invalid-name\r\nRnnStateStorage = Tuple[torch.Tensor, ...]  # pylint: disable=invalid-name\r\n\r\n\r\nclass ElmobiLm(_EncoderBase):\r\n  def __init__(self, config, use_cuda=False):\r\n    super(ElmobiLm, self).__init__(stateful=True)\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n    input_size = config['encoder']['projection_dim']\r\n    hidden_size = config['encoder']['projection_dim']\r\n    cell_size = config['encoder']['dim']\r\n    num_layers = config['encoder']['n_layers']\r\n    memory_cell_clip_value = config['encoder']['cell_clip']\r\n    state_projection_clip_value = config['encoder']['proj_clip']\r\n    recurrent_dropout_probability = config['dropout']\r\n\r\n    self.input_size = input_size\r\n    self.hidden_size = hidden_size\r\n    self.num_layers = num_layers\r\n    self.cell_size = cell_size\r\n    \r\n    forward_layers = []\r\n    backward_layers = []\r\n\r\n    lstm_input_size = input_size\r\n    go_forward = True\r\n    for layer_index in range(num_layers):\r\n      forward_layer = LstmCellWithProjection(lstm_input_size,\r\n                                             hidden_size,\r\n                                             cell_size,\r\n                                             go_forward,\r\n                                             recurrent_dropout_probability,\r\n                                             memory_cell_clip_value,\r\n                                             state_projection_clip_value)\r\n      backward_layer = LstmCellWithProjection(lstm_input_size,\r\n                                              hidden_size,\r\n                                              cell_size,\r\n                                              not go_forward,\r\n                                              recurrent_dropout_probability,\r\n                                              memory_cell_clip_value,\r\n                                              state_projection_clip_value)\r\n      lstm_input_size = hidden_size\r\n\r\n      self.add_module('forward_layer_{}'.format(layer_index), forward_layer)\r\n      self.add_module('backward_layer_{}'.format(layer_index), backward_layer)\r\n      forward_layers.append(forward_layer)\r\n      backward_layers.append(backward_layer)\r\n    self.forward_layers = forward_layers\r\n    self.backward_layers = backward_layers\r\n\r\n  def forward(self, inputs, mask):\r\n    batch_size, total_sequence_length = mask.size()\r\n    stacked_sequence_output, final_states, restoration_indices = \\\r\n      self.sort_and_run_forward(self._lstm_forward, inputs, mask)\r\n    num_layers, num_valid, returned_timesteps, encoder_dim = stacked_sequence_output.size()\r\n    # Add back invalid rows which were removed in the call to sort_and_run_forward.\r\n    if num_valid < batch_size:\r\n      zeros = stacked_sequence_output.data.new(num_layers,\r\n                                               batch_size - num_valid,\r\n                                               returned_timesteps,\r\n                                               encoder_dim).fill_(0)\r\n      zeros = Variable(zeros)\r\n      stacked_sequence_output = torch.cat([stacked_sequence_output, zeros], 1)\r\n      # The states also need to have invalid rows added back.\r\n      new_states = []\r\n      for state in final_states:\r\n        state_dim = state.size(-1)\r\n        zeros = state.data.new(num_layers, batch_size - num_valid, state_dim).fill_(0)\r\n        zeros = Variable(zeros)\r\n        new_states.append(torch.cat([state, zeros], 1))\r\n      final_states = new_states\r\n\r\n    # It's possible to need to pass sequences which are padded to longer than the\r\n    # max length of the sequence to a Seq2StackEncoder. However, packing and unpacking\r\n    # the sequences mean that the returned tensor won't include these dimensions, because\r\n    # the RNN did not need to process them. We add them back on in the form of zeros here.\r\n    sequence_length_difference = total_sequence_length - returned_timesteps\r\n    if sequence_length_difference > 0:\r\n      zeros = stacked_sequence_output.data.new(num_layers,\r\n                                               batch_size,\r\n                                               sequence_length_difference,\r\n                                               stacked_sequence_output[0].size(-1)).fill_(0)\r\n      zeros = Variable(zeros)\r\n      stacked_sequence_output = torch.cat([stacked_sequence_output, zeros], 2)\r\n    self._update_states(final_states, restoration_indices)\r\n    # Restore the original indices and return the sequence.\r\n    # Has shape (num_layers, batch_size, sequence_length, hidden_size)\r\n    return stacked_sequence_output.index_select(1, restoration_indices)\r\n\r\n\r\n  def _lstm_forward(self, \r\n                    inputs: PackedSequence,\r\n                    initial_state: Optional[Tuple[torch.Tensor, torch.Tensor]] = None) -> \\\r\n      Tuple[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]:\r\n    \"\"\"\r\n    Parameters\r\n    ----------\r\n    inputs : ``PackedSequence``, required.\r\n      A batch first ``PackedSequence`` to run the stacked LSTM over.\r\n    initial_state : ``Tuple[torch.Tensor, torch.Tensor]``, optional, (default = None)\r\n      A tuple (state, memory) representing the initial hidden state and memory\r\n      of the LSTM, with shape (num_layers, batch_size, 2 * hidden_size) and\r\n      (num_layers, batch_size, 2 * cell_size) respectively.\r\n    Returns\r\n    -------\r\n    output_sequence : ``torch.FloatTensor``\r\n      The encoded sequence of shape (num_layers, batch_size, sequence_length, hidden_size)\r\n    final_states: ``Tuple[torch.FloatTensor, torch.FloatTensor]``\r\n      The per-layer final (state, memory) states of the LSTM, with shape\r\n      (num_layers, batch_size, 2 * hidden_size) and  (num_layers, batch_size, 2 * cell_size)\r\n      respectively. The last dimension is duplicated because it contains the state/memory\r\n      for both the forward and backward layers.\r\n    \"\"\"\r\n       \r\n    if initial_state is None:\r\n      hidden_states: List[Optional[Tuple[torch.Tensor,\r\n                                   torch.Tensor]]] = [None] * len(self.forward_layers)\r\n    elif initial_state[0].size()[0] != len(self.forward_layers):\r\n      raise Exception(\"Initial states were passed to forward() but the number of \"\r\n                               \"initial states does not match the number of layers.\")\r\n    else:\r\n      hidden_states = list(zip(initial_state[0].split(1, 0), initial_state[1].split(1, 0)))\r\n\r\n    inputs, batch_lengths = pad_packed_sequence(inputs, batch_first=True)\r\n    forward_output_sequence = inputs\r\n    backward_output_sequence = inputs\r\n\r\n    final_states = []\r\n    sequence_outputs = []\r\n    for layer_index, state in enumerate(hidden_states):\r\n      forward_layer = getattr(self, 'forward_layer_{}'.format(layer_index))\r\n      backward_layer = getattr(self, 'backward_layer_{}'.format(layer_index))\r\n\r\n      forward_cache = forward_output_sequence\r\n      backward_cache = backward_output_sequence\r\n\r\n      if state is not None:\r\n        forward_hidden_state, backward_hidden_state = state[0].split(self.hidden_size, 2)\r\n        forward_memory_state, backward_memory_state = state[1].split(self.cell_size, 2)\r\n        forward_state = (forward_hidden_state, forward_memory_state)\r\n        backward_state = (backward_hidden_state, backward_memory_state)\r\n      else:\r\n        forward_state = None\r\n        backward_state = None\r\n\r\n      forward_output_sequence, forward_state = forward_layer(forward_output_sequence,\r\n                                                             batch_lengths,\r\n                                                             forward_state)\r\n      backward_output_sequence, backward_state = backward_layer(backward_output_sequence,\r\n                                                                batch_lengths,\r\n                                                                backward_state)\r\n      # Skip connections, just adding the input to the output.\r\n      if layer_index != 0:\r\n        forward_output_sequence += forward_cache\r\n        backward_output_sequence += backward_cache\r\n\r\n      sequence_outputs.append(torch.cat([forward_output_sequence,\r\n                                         backward_output_sequence], -1))\r\n      # Append the state tuples in a list, so that we can return\r\n      # the final states for all the layers.\r\n      final_states.append((torch.cat([forward_state[0], backward_state[0]], -1),\r\n                           torch.cat([forward_state[1], backward_state[1]], -1)))\r\n\r\n    stacked_sequence_outputs: torch.FloatTensor = torch.stack(sequence_outputs)\r\n    # Stack the hidden state and memory for each layer into 2 tensors of shape\r\n    # (num_layers, batch_size, hidden_size) and (num_layers, batch_size, cell_size)\r\n    # respectively.\r\n    final_hidden_states, final_memory_states = zip(*final_states)\r\n    final_state_tuple: Tuple[torch.FloatTensor,\r\n                             torch.FloatTensor] = (torch.cat(final_hidden_states, 0),\r\n                                                   torch.cat(final_memory_states, 0))\r\n    return stacked_sequence_outputs, final_state_tuple"
  },
  {
    "path": "utils/lele/layers/embedding_layer.py",
    "content": "import torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport logging\r\n\r\nlogging.basicConfig(level=logging.INFO, format='%(asctime)-15s %(levelname)s: %(message)s')\r\n\r\n\r\nclass EmbeddingLayer(nn.Module):\r\n  def __init__(self, n_d, word2id, embs=None, fix_emb=True, oov='<oov>', pad='<pad>', normalize=True):\r\n    super(EmbeddingLayer, self).__init__()\r\n    if embs is not None:\r\n      embwords, embvecs = embs\r\n      # for word in embwords:\r\n      #  assert word not in word2id, \"Duplicate words in pre-trained embeddings\"\r\n      #  word2id[word] = len(word2id)\r\n\r\n      logging.info(\"{} pre-trained word embeddings loaded.\".format(len(word2id)))\r\n      if n_d != len(embvecs[0]):\r\n        logging.warning(\"[WARNING] n_d ({}) != word vector size ({}). Use {} for embeddings.\".format(\r\n          n_d, len(embvecs[0]), len(embvecs[0])))\r\n        n_d = len(embvecs[0])\r\n\r\n    self.word2id = word2id\r\n    self.id2word = {i: word for word, i in word2id.items()}\r\n    self.n_V, self.n_d = len(word2id), n_d\r\n    self.oovid = word2id[oov]\r\n    self.padid = word2id[pad]\r\n    self.embedding = nn.Embedding(self.n_V, n_d, padding_idx=self.padid)\r\n    self.embedding.weight.data.uniform_(-0.25, 0.25)\r\n\r\n    if embs is not None:\r\n      weight = self.embedding.weight\r\n      weight.data[:len(embwords)].copy_(torch.from_numpy(embvecs))\r\n      logging.info(\"embedding shape: {}\".format(weight.size()))\r\n\r\n    if normalize:\r\n      weight = self.embedding.weight\r\n      norms = weight.data.norm(2, 1)\r\n      if norms.dim() == 1:\r\n        norms = norms.unsqueeze(1)\r\n      weight.data.div_(norms.expand_as(weight.data))\r\n\r\n    if fix_emb:\r\n      self.embedding.weight.requires_grad = False\r\n\r\n  def forward(self, input_):\r\n    return self.embedding(input_)"
  },
  {
    "path": "utils/lele/layers/encoder_base.py",
    "content": "from typing import Tuple, Union, Optional, Callable\r\nimport torch\r\nfrom torch.autograd import Variable\r\nfrom torch.nn.utils.rnn import pack_padded_sequence, PackedSequence\r\n\r\nfrom .util import get_lengths_from_binary_sequence_mask, sort_batch_by_length\r\n\r\n# We have two types here for the state, because storing the state in something\r\n# which is Iterable (like a tuple, below), is helpful for internal manipulation\r\n# - however, the states are consumed as either Tensors or a Tuple of Tensors, so\r\n# returning them in this format is unhelpful.\r\nRnnState = Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]  # pylint: disable=invalid-name\r\nRnnStateStorage = Tuple[torch.Tensor, ...]  # pylint: disable=invalid-name\r\n\r\n\r\nclass _EncoderBase(torch.nn.Module):\r\n    # pylint: disable=abstract-method\r\n    \"\"\"\r\n    This abstract class serves as a base for the 3 ``Encoder`` abstractions in AllenNLP.\r\n    - :class:`~allennlp.modules.seq2seq_encoders.Seq2SeqEncoders`\r\n    - :class:`~allennlp.modules.seq2vec_encoders.Seq2VecEncoders`\r\n    Additionally, this class provides functionality for sorting sequences by length\r\n    so they can be consumed by Pytorch RNN classes, which require their inputs to be\r\n    sorted by length. Finally, it also provides optional statefulness to all of it's\r\n    subclasses by allowing the caching and retrieving of the hidden states of RNNs.\r\n    \"\"\"\r\n    def __init__(self, stateful: bool = False) -> None:\r\n        super(_EncoderBase, self).__init__()\r\n        self.stateful = stateful\r\n        self._states: Optional[RnnStateStorage] = None\r\n\r\n    def sort_and_run_forward(self,\r\n                             module: Callable[[PackedSequence, Optional[RnnState]],\r\n                                              Tuple[Union[PackedSequence, torch.Tensor], RnnState]],\r\n                             inputs: torch.Tensor,\r\n                             mask: torch.Tensor,\r\n                             hidden_state: Optional[RnnState] = None):\r\n        \"\"\"\r\n        This function exists because Pytorch RNNs require that their inputs be sorted\r\n        before being passed as input. As all of our Seq2xxxEncoders use this functionality,\r\n        it is provided in a base class. This method can be called on any module which\r\n        takes as input a ``PackedSequence`` and some ``hidden_state``, which can either be a\r\n        tuple of tensors or a tensor.\r\n        As all of our Seq2xxxEncoders have different return types, we return `sorted`\r\n        outputs from the module, which is called directly. Additionally, we return the\r\n        indices into the batch dimension required to restore the tensor to it's correct,\r\n        unsorted order and the number of valid batch elements (i.e the number of elements\r\n        in the batch which are not completely masked). This un-sorting and re-padding\r\n        of the module outputs is left to the subclasses because their outputs have different\r\n        types and handling them smoothly here is difficult.\r\n        Parameters\r\n        ----------\r\n        module : ``Callable[[PackedSequence, Optional[RnnState]],\r\n                            Tuple[Union[PackedSequence, torch.Tensor], RnnState]]``, required.\r\n            A function to run on the inputs. In most cases, this is a ``torch.nn.Module``.\r\n        inputs : ``torch.Tensor``, required.\r\n            A tensor of shape ``(batch_size, sequence_length, embedding_size)`` representing\r\n            the inputs to the Encoder.\r\n        mask : ``torch.Tensor``, required.\r\n            A tensor of shape ``(batch_size, sequence_length)``, representing masked and\r\n            non-masked elements of the sequence for each element in the batch.\r\n        hidden_state : ``Optional[RnnState]``, (default = None).\r\n            A single tensor of shape (num_layers, batch_size, hidden_size) representing the\r\n            state of an RNN with or a tuple of\r\n            tensors of shapes (num_layers, batch_size, hidden_size) and\r\n            (num_layers, batch_size, memory_size), representing the hidden state and memory\r\n            state of an LSTM-like RNN.\r\n        Returns\r\n        -------\r\n        module_output : ``Union[torch.Tensor, PackedSequence]``.\r\n            A Tensor or PackedSequence representing the output of the Pytorch Module.\r\n            The batch size dimension will be equal to ``num_valid``, as sequences of zero\r\n            length are clipped off before the module is called, as Pytorch cannot handle\r\n            zero length sequences.\r\n        final_states : ``Optional[RnnState]``\r\n            A Tensor representing the hidden state of the Pytorch Module. This can either\r\n            be a single tensor of shape (num_layers, num_valid, hidden_size), for instance in\r\n            the case of a GRU, or a tuple of tensors, such as those required for an LSTM.\r\n        restoration_indices : ``torch.LongTensor``\r\n            A tensor of shape ``(batch_size,)``, describing the re-indexing required to transform\r\n            the outputs back to their original batch order.\r\n        \"\"\"\r\n        # In some circumstances you may have sequences of zero length. ``pack_padded_sequence``\r\n        # requires all sequence lengths to be > 0, so remove sequences of zero length before\r\n        # calling self._module, then fill with zeros.\r\n\r\n        # First count how many sequences are empty.\r\n        batch_size = mask.size(0)\r\n        num_valid = torch.sum(mask[:, 0]).int().item()\r\n\r\n        sequence_lengths = get_lengths_from_binary_sequence_mask(mask)\r\n        sorted_inputs, sorted_sequence_lengths, restoration_indices, sorting_indices =\\\r\n            sort_batch_by_length(inputs, sequence_lengths)\r\n        # Now create a PackedSequence with only the non-empty, sorted sequences.\r\n        packed_sequence_input = pack_padded_sequence(sorted_inputs[:num_valid, :, :],\r\n                                                     sorted_sequence_lengths[:num_valid].data.tolist(),\r\n                                                     batch_first=True)\r\n        # Prepare the initial states.\r\n        if not self.stateful:\r\n            if hidden_state is None:\r\n                initial_states = hidden_state\r\n            elif isinstance(hidden_state, tuple):\r\n                initial_states = [state.index_select(1, sorting_indices)[:, :num_valid, :]\r\n                                  for state in hidden_state]\r\n            else:\r\n                initial_states = hidden_state.index_select(1, sorting_indices)[:, :num_valid, :]\r\n\r\n        else:\r\n            initial_states = self._get_initial_states(batch_size, num_valid, sorting_indices)\r\n        # Actually call the module on the sorted PackedSequence.\r\n        module_output, final_states = module(packed_sequence_input, initial_states)\r\n\r\n        return module_output, final_states, restoration_indices\r\n\r\n    def _get_initial_states(self,\r\n                            batch_size: int,\r\n                            num_valid: int,\r\n                            sorting_indices: torch.LongTensor) -> Optional[RnnState]:\r\n        \"\"\"\r\n        Returns an initial state for use in an RNN. Additionally, this method handles\r\n        the batch size changing across calls by mutating the state to append initial states\r\n        for new elements in the batch. Finally, it also handles sorting the states\r\n        with respect to the sequence lengths of elements in the batch and removing rows\r\n        which are completely padded. Importantly, this `mutates` the state if the\r\n        current batch size is larger than when it was previously called.\r\n        Parameters\r\n        ----------\r\n        batch_size : ``int``, required.\r\n            The batch size can change size across calls to stateful RNNs, so we need\r\n            to know if we need to expand or shrink the states before returning them.\r\n            Expanded states will be set to zero.\r\n        num_valid : ``int``, required.\r\n            The batch may contain completely padded sequences which get removed before\r\n            the sequence is passed through the encoder. We also need to clip these off\r\n            of the state too.\r\n        sorting_indices ``torch.LongTensor``, required.\r\n            Pytorch RNNs take sequences sorted by length. When we return the states to be\r\n            used for a given call to ``module.forward``, we need the states to match up to\r\n            the sorted sequences, so before returning them, we sort the states using the\r\n            same indices used to sort the sequences.\r\n        Returns\r\n        -------\r\n        This method has a complex return type because it has to deal with the first time it\r\n        is called, when it has no state, and the fact that types of RNN have heterogeneous\r\n        states.\r\n        If it is the first time the module has been called, it returns ``None``, regardless\r\n        of the type of the ``Module``.\r\n        Otherwise, for LSTMs, it returns a tuple of ``torch.Tensors`` with shape\r\n        ``(num_layers, num_valid, state_size)`` and ``(num_layers, num_valid, memory_size)``\r\n        respectively, or for GRUs, it returns a single ``torch.Tensor`` of shape\r\n        ``(num_layers, num_valid, state_size)``.\r\n        \"\"\"\r\n        # We don't know the state sizes the first time calling forward,\r\n        # so we let the module define what it's initial hidden state looks like.\r\n        if self._states is None:\r\n            return None\r\n\r\n        # Otherwise, we have some previous states.\r\n        if batch_size > self._states[0].size(1):\r\n            # This batch is larger than the all previous states.\r\n            # If so, resize the states.\r\n            num_states_to_concat = batch_size - self._states[0].size(1)\r\n            resized_states = []\r\n            # state has shape (num_layers, batch_size, hidden_size)\r\n            for state in self._states:\r\n                # This _must_ be inside the loop because some\r\n                # RNNs have states with different last dimension sizes.\r\n                zeros = state.data.new(state.size(0),\r\n                                       num_states_to_concat,\r\n                                       state.size(2)).fill_(0)\r\n                zeros = Variable(zeros)\r\n                resized_states.append(torch.cat([state, zeros], 1))\r\n            self._states = tuple(resized_states)\r\n            correctly_shaped_states = self._states\r\n\r\n        elif batch_size < self._states[0].size(1):\r\n            # This batch is smaller than the previous one.\r\n            correctly_shaped_states = tuple(state[:, :batch_size, :] for state in self._states)\r\n        else:\r\n            correctly_shaped_states = self._states\r\n\r\n        # At this point, our states are of shape (num_layers, batch_size, hidden_size).\r\n        # However, the encoder uses sorted sequences and additionally removes elements\r\n        # of the batch which are fully padded. We need the states to match up to these\r\n        # sorted and filtered sequences, so we do that in the next two blocks before\r\n        # returning the state/s.\r\n        if len(self._states) == 1:\r\n            # GRUs only have a single state. This `unpacks` it from the\r\n            # tuple and returns the tensor directly.\r\n            correctly_shaped_state = correctly_shaped_states[0]\r\n            sorted_state = correctly_shaped_state.index_select(1, sorting_indices)\r\n            return sorted_state[:, :num_valid, :]\r\n        else:\r\n            # LSTMs have a state tuple of (state, memory).\r\n            sorted_states = [state.index_select(1, sorting_indices)\r\n                             for state in correctly_shaped_states]\r\n            return tuple(state[:, :num_valid, :] for state in sorted_states)\r\n\r\n    def _update_states(self,\r\n                       final_states: RnnStateStorage,\r\n                       restoration_indices: torch.LongTensor) -> None:\r\n        \"\"\"\r\n        After the RNN has run forward, the states need to be updated.\r\n        This method just sets the state to the updated new state, performing\r\n        several pieces of book-keeping along the way - namely, unsorting the\r\n        states and ensuring that the states of completely padded sequences are\r\n        not updated. Finally, it also detatches the state variable from the\r\n        computational graph, such that the graph can be garbage collected after\r\n        each batch iteration.\r\n        Parameters\r\n        ----------\r\n        final_states : ``RnnStateStorage``, required.\r\n            The hidden states returned as output from the RNN.\r\n        restoration_indices : ``torch.LongTensor``, required.\r\n            The indices that invert the sorting used in ``sort_and_run_forward``\r\n            to order the states with respect to the lengths of the sequences in\r\n            the batch.\r\n        \"\"\"\r\n        # TODO(Mark): seems weird to sort here, but append zeros in the subclasses.\r\n        # which way around is best?\r\n        new_unsorted_states = [state.index_select(1, restoration_indices)\r\n                               for state in final_states]\r\n\r\n        if self._states is None:\r\n            # We don't already have states, so just set the\r\n            # ones we receive to be the current state.\r\n            self._states = tuple([torch.autograd.Variable(state.data)\r\n                                  for state in new_unsorted_states])\r\n        else:\r\n            # Now we've sorted the states back so that they correspond to the original\r\n            # indices, we need to figure out what states we need to update, because if we\r\n            # didn't use a state for a particular row, we want to preserve its state.\r\n            # Thankfully, the rows which are all zero in the state correspond exactly\r\n            # to those which aren't used, so we create masks of shape (new_batch_size,),\r\n            # denoting which states were used in the RNN computation.\r\n            current_state_batch_size = self._states[0].size(1)\r\n            new_state_batch_size = final_states[0].size(1)\r\n            # Masks for the unused states of shape (1, new_batch_size, 1)\r\n            used_new_rows_mask = [(state[0, :, :].sum(-1)\r\n                                   != 0.0).float().view(1, new_state_batch_size, 1)\r\n                                  for state in new_unsorted_states]\r\n            new_states = []\r\n            if current_state_batch_size > new_state_batch_size:\r\n                # The new state is smaller than the old one,\r\n                # so just update the indices which we used.\r\n                for old_state, new_state, used_mask in zip(self._states,\r\n                                                           new_unsorted_states,\r\n                                                           used_new_rows_mask):\r\n                    # zero out all rows in the previous state\r\n                    # which _were_ used in the current state.\r\n                    masked_old_state = old_state[:, :new_state_batch_size, :] * (1 - used_mask)\r\n                    # The old state is larger, so update the relevant parts of it.\r\n                    old_state[:, :new_state_batch_size, :] = new_state + masked_old_state\r\n                    # Detatch the Variable.\r\n                    new_states.append(torch.autograd.Variable(old_state.data))\r\n            else:\r\n                # The states are the same size, so we just have to\r\n                # deal with the possibility that some rows weren't used.\r\n                new_states = []\r\n                for old_state, new_state, used_mask in zip(self._states,\r\n                                                           new_unsorted_states,\r\n                                                           used_new_rows_mask):\r\n                    # zero out all rows which _were_ used in the current state.\r\n                    masked_old_state = old_state * (1 - used_mask)\r\n                    # The old state is larger, so update the relevant parts of it.\r\n                    new_state += masked_old_state\r\n                    # Detatch the Variable.\r\n                    new_states.append(torch.autograd.Variable(new_state.data))\r\n\r\n            # It looks like there should be another case handled here - when\r\n            # the current_state_batch_size < new_state_batch_size. However,\r\n            # this never happens, because the states themeselves are mutated\r\n            # by appending zeros when calling _get_inital_states, meaning that\r\n            # the new states are either of equal size, or smaller, in the case\r\n            # that there are some unused elements (zero-length) for the RNN computation.\r\n            self._states = tuple(new_states)\r\n\r\n    def reset_states(self):\r\n        self._states = None\r\n"
  },
  {
    "path": "utils/lele/layers/highway.py",
    "content": "\"\"\"\r\nA `Highway layer <https://arxiv.org/abs/1505.00387>`_ that does a gated combination of a linear\r\ntransformation and a non-linear transformation of its input.\r\n\"\"\"\r\n\r\nfrom typing import Callable\r\n\r\nimport torch\r\nfrom overrides import overrides\r\n\r\n\r\nclass Highway(torch.nn.Module):\r\n    \"\"\"\r\n    A `Highway layer <https://arxiv.org/abs/1505.00387>`_ does a gated combination of a linear\r\n    transformation and a non-linear transformation of its input.  :math:`y = g * x + (1 - g) *\r\n    f(A(x))`, where :math:`A` is a linear transformation, :math:`f` is an element-wise\r\n    non-linearity, and :math:`g` is an element-wise gate, computed as :math:`sigmoid(B(x))`.\r\n    This module will apply a fixed number of highway layers to its input, returning the final\r\n    result.\r\n    Parameters\r\n    ----------\r\n    input_dim : ``int``\r\n        The dimensionality of :math:`x`.  We assume the input has shape ``(batch_size,\r\n        input_dim)``.\r\n    num_layers : ``int``, optional (default=``1``)\r\n        The number of highway layers to apply to the input.\r\n    activation : ``Callable[[torch.Tensor], torch.Tensor]``, optional (default=``torch.nn.functional.relu``)\r\n        The non-linearity to use in the highway layers.\r\n    \"\"\"\r\n    def __init__(self,\r\n                 input_dim: int,\r\n                 num_layers: int = 1,\r\n                 activation: Callable[[torch.Tensor], torch.Tensor] = torch.nn.functional.relu) -> None:\r\n        super(Highway, self).__init__()\r\n        self._input_dim = input_dim\r\n        self._layers = torch.nn.ModuleList([torch.nn.Linear(input_dim, input_dim * 2)\r\n                                            for _ in range(num_layers)])\r\n        self._activation = activation\r\n        for layer in self._layers:\r\n            # We should bias the highway layer to just carry its input forward.  We do that by\r\n            # setting the bias on `B(x)` to be positive, because that means `g` will be biased to\r\n            # be high, to we will carry the input forward.  The bias on `B(x)` is the second half\r\n            # of the bias vector in each Linear layer.\r\n            layer.bias[input_dim:].data.fill_(1)\r\n\r\n    @overrides\r\n    def forward(self, inputs: torch.Tensor) -> torch.Tensor:  # pylint: disable=arguments-differ\r\n        current_input = inputs\r\n        for layer in self._layers:\r\n            projected_input = layer(current_input)\r\n            linear_part = current_input\r\n            # NOTE: if you modify this, think about whether you should modify the initialization\r\n            # above, too.\r\n            nonlinear_part = projected_input[:, (0 * self._input_dim):(1 * self._input_dim)]\r\n            gate = projected_input[:, (1 * self._input_dim):(2 * self._input_dim)]\r\n            nonlinear_part = self._activation(nonlinear_part)\r\n            gate = torch.sigmoid(gate)\r\n            current_input = gate * linear_part + (1 - gate) * nonlinear_part\r\n        return current_input\r\n"
  },
  {
    "path": "utils/lele/layers/layers.py",
    "content": "#!/usr/bin/env python3\r\n# Copyright 2018-present, HKUST-KnowComp.\r\n# All rights reserved.\r\n#\r\n# This source code is licensed under the license found in the\r\n# LICENSE file in the root directory of this source tree.\r\n\"\"\"Definitions of model layers/NN modules\"\"\"\r\n\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport math\r\nimport random\r\n\r\nimport gezi\r\nlogging = gezi.logging\r\n\r\nimport lele\r\n\r\n# ------------------------------------------------------------------------------\r\n# Modules\r\n# ------------------------------------------------------------------------------\r\n\r\nclass CudnnRnn(nn.Module):\r\n    \"\"\"Stacked Bi-directional RNNs.\r\n\r\n    Differs from standard PyTorch library in that it has the option to save\r\n    and concat the hidden states between layers. (i.e. the output hidden size\r\n    for each sequence input is num_layers * hidden_size).\r\n    for hkust tf rent, reccruent dropout, bw drop out, concat layers and rnn padding\r\n    WELL TOO SLOW 0.3hour/per epoch -> 1.5 hour..\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, hidden_size, num_layers,\r\n                 dropout_rate=0, dropout_output=False, rnn_type=nn.LSTM,\r\n                 concat_layers=False,  \r\n                 recurrent_dropout=True,\r\n                 bw_dropout=False,\r\n                 padding=False):\r\n        super(CudnnRnn, self).__init__()\r\n        self.padding = padding\r\n        self.dropout_output = dropout_output\r\n        self.dropout_rate = dropout_rate\r\n        self.num_layers = num_layers\r\n        self.concat_layers = concat_layers\r\n        self.recurrent_dropout = recurrent_dropout\r\n        self.bw_dropout = bw_dropout\r\n        self.fws = nn.ModuleList()\r\n        self.bws = nn.ModuleList()\r\n        \r\n        if type(rnn_type) == str:\r\n            rnn_type=nn.GRU if rnn_type == 'gru' else nn.LSTM\r\n\r\n        self.num_units = []\r\n        for i in range(num_layers):\r\n            input_size = input_size if i == 0 else 2 * hidden_size\r\n            self.num_units.append(input_size)\r\n            self.fws.append(rnn_type(input_size, hidden_size,\r\n                                     num_layers=1,\r\n                                     bidirectional=False))\r\n            self.bws.append(rnn_type(input_size, hidden_size,\r\n                                     num_layers=1,\r\n                                     bidirectional=False))\r\n\r\n    def forward(self, x, x_mask, fw_masks=None, bw_masks=None):\r\n        \"\"\"Encode either padded or non-padded sequences.\r\n\r\n        Can choose to either handle or ignore variable length sequences.\r\n        Always handle padding in eval.\r\n\r\n        Args:\r\n            x: batch * len * hdim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            x_encoded: batch * len * hdim_encoded\r\n        \"\"\"\r\n        # Transpose batch and sequence dims\r\n        batch_size = x.size(0)\r\n        x = x.transpose(0, 1)\r\n\r\n        length = (1 - x_mask).sum(1)\r\n\r\n        # Encode all layers\r\n        outputs = [x]\r\n        for i in range(self.num_layers):\r\n            rnn_input = outputs[-1]\r\n            mask = None\r\n            if self.dropout_rate > 0:\r\n                if not self.recurrent_dropout:              \r\n                    rnn_input_ = F.dropout(rnn_input,\r\n                                           p=self.dropout_rate,\r\n                                           training=self.training)\r\n                else:\r\n                    if fw_masks is None:\r\n                        mask = F.dropout(torch.ones(1, batch_size, self.num_units[i]).cuda(),\r\n                                         p=self.dropout_rate,\r\n                                         training=self.training)\r\n                    else:\r\n                        mask = fw_masks[i]\r\n                    rnn_input_ = rnn_input * mask\r\n                \r\n           \r\n            # Forward\r\n            fw_output = self.fws[i](rnn_input_)[0]\r\n\r\n            mask = None\r\n            if self.dropout_rate > 0 and self.bw_dropout:\r\n                if not self.recurrent_dropout:\r\n                    rnn_input_ = F.dropout(rnn_input,\r\n                                            p=self.dropout_rate,\r\n                                            training=self.training)\r\n                else:\r\n                    if bw_masks is None:\r\n                        mask = F.dropout(torch.ones(1, batch_size, self.num_units[i]).cuda(),\r\n                                                    p=self.dropout_rate,\r\n                                                    training=self.training)\r\n                    else:\r\n                        mask = bw_masks[i]\r\n                    rnn_input_ = rnn_input * mask\r\n\r\n            rnn_input_ = lele.reverse_padded_sequence(rnn_input_, length)\r\n\r\n            bw_output = self.bws[i](rnn_input_)[0]\r\n            \r\n            bw_output = lele.reverse_padded_sequence(bw_output, length)\r\n\r\n            outputs.append(torch.cat([fw_output, bw_output], 2))\r\n\r\n        # Concat hidden layers\r\n        if self.concat_layers:\r\n            output = torch.cat(outputs[1:], 2)\r\n        else:\r\n            output = outputs[-1]\r\n\r\n        # Transpose back\r\n        output = output.transpose(0, 1)\r\n\r\n        # Dropout on output layer\r\n        if self.dropout_output and self.dropout_rate > 0:\r\n            output = F.dropout(output,\r\n                               p=self.dropout_rate,\r\n                               training=self.training)\r\n        return output.contiguous()\r\n\r\n\r\n\r\n# TODO support recurrent dropout! to be similar as tf version, support shared dropout\r\nclass StackedBRNN(nn.Module):\r\n    \"\"\"Stacked Bi-directional RNNs.\r\n\r\n    Differs from standard PyTorch library in that it has the option to save\r\n    and concat the hidden states between layers. (i.e. the output hidden size\r\n    for each sequence input is num_layers * hidden_size).\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, hidden_size, num_layers,\r\n                 dropout_rate=0, recurrent_dropout=False,\r\n                 dropout_output=False, rnn_type=nn.LSTM,\r\n                 concat_layers=False, padding=False):\r\n        super(StackedBRNN, self).__init__()\r\n        self.padding = padding\r\n        self.dropout_output = dropout_output\r\n        self.dropout_rate = dropout_rate\r\n        self.num_layers = num_layers\r\n        self.concat_layers = concat_layers\r\n        self.rnns = nn.ModuleList()\r\n        self.recurrent_dropout = recurrent_dropout\r\n        if type(rnn_type) is str:\r\n            rnn_type=nn.GRU if rnn_type == 'gru' else nn.LSTM\r\n        self.num_units = []\r\n        for i in range(num_layers):\r\n            input_size = input_size if i == 0 else 2 * hidden_size\r\n            self.num_units.append(input_size)\r\n            self.rnns.append(rnn_type(input_size, hidden_size,\r\n                                      num_layers=1,\r\n                                      bidirectional=True))\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"Encode either padded or non-padded sequences.\r\n\r\n        Can choose to either handle or ignore variable length sequences.\r\n        Always handle padding in eval.\r\n\r\n        Args:\r\n            x: batch * len * hdim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            x_encoded: batch * len * hdim_encoded\r\n        \"\"\"\r\n        if x_mask.data.sum() == 0:\r\n            # No padding necessary.\r\n            output = self._forward_unpadded(x, x_mask)\r\n        elif self.padding or not self.training:\r\n            # Pad if we care or if its during eval.\r\n            output = self._forward_padded(x, x_mask)\r\n        else:\r\n            # We don't care.\r\n            output = self._forward_unpadded(x, x_mask)\r\n\r\n        return output.contiguous()\r\n\r\n    def _forward_unpadded(self, x, x_mask):\r\n        \"\"\"Faster encoding that ignores any padding.\"\"\"\r\n        # Transpose batch and sequence dims\r\n        x = x.transpose(0, 1)\r\n        batch_size = x.size(1)\r\n\r\n        # Encode all layers\r\n        outputs = [x]\r\n        for i in range(self.num_layers):\r\n            rnn_input = outputs[-1]\r\n\r\n            # Apply dropout to hidden input\r\n            if self.dropout_rate > 0:\r\n                if not self.recurrent_dropout:\r\n                    rnn_input = F.dropout(rnn_input,\r\n                                        p=self.dropout_rate,\r\n                                        training=self.training)\r\n                else:\r\n                    mask = F.dropout(torch.ones(1, batch_size, self.num_units[i]).cuda(),\r\n                                     p=self.dropout_rate,\r\n                                     training=self.training)\r\n                    rnn_input = rnn_input * mask\r\n\r\n            # Forward\r\n            rnn_output = self.rnns[i](rnn_input)[0]\r\n            outputs.append(rnn_output)\r\n\r\n        # Concat hidden layers\r\n        if self.concat_layers:\r\n            output = torch.cat(outputs[1:], 2)\r\n        else:\r\n            output = outputs[-1]\r\n\r\n        # Transpose back\r\n        output = output.transpose(0, 1)\r\n\r\n        # Dropout on output layer\r\n        if self.dropout_output and self.dropout_rate > 0:\r\n            output = F.dropout(output,\r\n                               p=self.dropout_rate,\r\n                               training=self.training)\r\n        return output\r\n\r\n    def _forward_padded(self, x, x_mask):\r\n        \"\"\"Slower (significantly), but more precise, encoding that handles\r\n        padding.\r\n        #chg I think do not need padded if you not want to use last state, last output\r\n        \"\"\"\r\n        # Compute sorted sequence lengths\r\n        #lengths = x_mask.data.eq(0).long().sum(1).squeeze()\r\n        # TODO seems not need squeeze wich might cause error when batch_size is 1\r\n        lengths = x_mask.data.eq(0).long().sum(1)\r\n        _, idx_sort = torch.sort(lengths, dim=0, descending=True)\r\n        _, idx_unsort = torch.sort(idx_sort, dim=0)\r\n\r\n        lengths = list(lengths[idx_sort])\r\n        idx_sort = Variable(idx_sort)\r\n        idx_unsort = Variable(idx_unsort)\r\n\r\n        # Sort x\r\n        x = x.index_select(0, idx_sort)\r\n\r\n        # Transpose batch and sequence dims\r\n        x = x.transpose(0, 1)\r\n        batch_size = x.size(1)\r\n\r\n        # Pack it up\r\n        rnn_input = nn.utils.rnn.pack_padded_sequence(x, lengths)\r\n\r\n        # Encode all layers\r\n        outputs = [rnn_input]\r\n        for i in range(self.num_layers):\r\n            rnn_input = outputs[-1]\r\n\r\n            # Apply dropout to input\r\n            if self.dropout_rate > 0:\r\n                if not self.recurrent_dropout:\r\n                    dropout_input = F.dropout(rnn_input.data,\r\n                                            p=self.dropout_rate,\r\n                                            training=self.training)\r\n                else:\r\n                    mask = F.dropout(torch.ones(1, batch_size, self.num_units[i]).cuda(),\r\n                                     p=self.dropout_rate,\r\n                                     training=self.training)\r\n                    dropout_input = rnn_input.data * mask\r\n                rnn_input = nn.utils.rnn.PackedSequence(dropout_input,\r\n                                                        rnn_input.batch_sizes)\r\n            outputs.append(self.rnns[i](rnn_input)[0])\r\n\r\n        # Unpack everything\r\n        for i, o in enumerate(outputs[1:], 1):\r\n            outputs[i] = nn.utils.rnn.pad_packed_sequence(o)[0]\r\n\r\n        # Concat hidden layers or take final\r\n        if self.concat_layers:\r\n            output = torch.cat(outputs[1:], 2)\r\n        else:\r\n            output = outputs[-1]\r\n\r\n        # Transpose and unsort\r\n        output = output.transpose(0, 1)\r\n        output = output.index_select(0, idx_unsort)\r\n\r\n        # Pad up to original batch sequence length\r\n        if output.size(1) != x_mask.size(1):\r\n            padding = torch.zeros(output.size(0),\r\n                                  x_mask.size(1) - output.size(1),\r\n                                  output.size(2)).type(output.data.type())\r\n            output = torch.cat([output, Variable(padding)], 1)\r\n\r\n        # Dropout on output layer\r\n        if self.dropout_output and self.dropout_rate > 0:\r\n            output = F.dropout(output,\r\n                               p=self.dropout_rate,\r\n                               training=self.training)\r\n        return output\r\n\r\n\r\n\r\nclass FeedForwardNetwork(nn.Module):\r\n    def __init__(self, input_size, hidden_size, output_size, dropout_rate=0):\r\n        super(FeedForwardNetwork, self).__init__()\r\n        self.dropout_rate = dropout_rate\r\n        self.linear1 = nn.Linear(input_size, hidden_size)\r\n        self.linear2 = nn.Linear(hidden_size, output_size)\r\n\r\n    def forward(self, x):\r\n        x_proj = F.dropout(F.relu(self.linear1(x)), p=self.dropout_rate, training=self.training)\r\n        x_proj = self.linear2(x_proj)\r\n        return x_proj\r\n            \r\n\r\nclass PointerNetwork(nn.Module):\r\n    def __init__(self, x_size, y_size, hidden_size, dropout_rate=0, cell_type=nn.GRUCell, normalize=True):\r\n        super(PointerNetwork, self).__init__()\r\n        self.normalize = normalize\r\n        self.hidden_size = hidden_size\r\n        self.dropout_rate = dropout_rate\r\n        self.linear = nn.Linear(x_size+y_size, hidden_size, bias=False)\r\n        self.weights = nn.Linear(hidden_size, 1, bias=False)\r\n        self.self_attn = NonLinearSeqAttn(y_size, hidden_size)\r\n        self.cell = cell_type(x_size, y_size)\r\n\r\n    def init_hiddens(self, y, y_mask):\r\n        attn = self.self_attn(y, y_mask)\r\n        res = attn.unsqueeze(1).bmm(y).squeeze(1) # [B, I]\r\n        return res\r\n    \r\n    def pointer(self, x, state, x_mask):\r\n        x_ = torch.cat([x, state.unsqueeze(1).repeat(1,x.size(1),1)], 2)\r\n        s0 = torch.tanh(self.linear(x_))\r\n        s = self.weights(s0).view(x.size(0), x.size(1))\r\n        s.data.masked_fill_(x_mask.data, -float('inf'))\r\n        a = F.softmax(s)\r\n        res = a.unsqueeze(1).bmm(x).squeeze(1)\r\n        if self.normalize:\r\n            if self.training:\r\n                # In training we output log-softmax for NLL\r\n                scores = F.log_softmax(s)\r\n            else:\r\n                # ...Otherwise 0-1 probabilities\r\n                scores = F.softmax(s)\r\n        else:\r\n            scores = a.exp()\r\n        return res, scores\r\n\r\n\r\n    def forward(self, x, y, x_mask, y_mask):\r\n        hiddens = self.init_hiddens(y, y_mask)\r\n        c, start_scores = self.pointer(x, hiddens, x_mask)\r\n        c_ = F.dropout(c, p=self.dropout_rate, training=self.training)\r\n        hiddens = self.cell(c_, hiddens)\r\n        c, end_scores = self.pointer(x, hiddens, x_mask)\r\n        return start_scores, end_scores\r\n\r\nclass MemoryAnsPointer(nn.Module):\r\n    def __init__(self, x_size, y_size, hidden_size, hop=1, dropout_rate=0, normalize=True):\r\n        super(MemoryAnsPointer, self).__init__()\r\n        self.normalize = normalize\r\n        self.hidden_size = hidden_size\r\n        self.hop = hop\r\n        self.dropout_rate = dropout_rate\r\n        self.FFNs_start = nn.ModuleList()\r\n        self.SFUs_start = nn.ModuleList()\r\n        self.FFNs_end = nn.ModuleList()\r\n        self.SFUs_end = nn.ModuleList()\r\n        for i in range(self.hop):\r\n            self.FFNs_start.append(FeedForwardNetwork(x_size+y_size+2*hidden_size, hidden_size, 1, dropout_rate))\r\n            self.SFUs_start.append(SFU(y_size, 2*hidden_size))\r\n            self.FFNs_end.append(FeedForwardNetwork(x_size+y_size+2*hidden_size, hidden_size, 1, dropout_rate))\r\n            self.SFUs_end.append(SFU(y_size, 2*hidden_size))\r\n    \r\n    def forward(self, x, y, x_mask, y_mask):\r\n        z_s = y[:,-1,:].unsqueeze(1) # [B, 1, I]\r\n        z_e = None\r\n        s = None\r\n        e = None\r\n        p_s = None\r\n        p_e = None\r\n        \r\n        for i in range(self.hop):\r\n            z_s_ = z_s.repeat(1,x.size(1),1) # [B, S, I]\r\n            s = self.FFNs_start[i](torch.cat([x, z_s_, x*z_s_], 2)).squeeze(2)\r\n            s.data.masked_fill_(x_mask.data, -float('inf'))\r\n            p_s = F.softmax(s, dim=1) # [B, S]\r\n            u_s = p_s.unsqueeze(1).bmm(x) # [B, 1, I]\r\n            z_e = self.SFUs_start[i](z_s, u_s) # [B, 1, I]\r\n            z_e_ = z_e.repeat(1,x.size(1),1) # [B, S, I]\r\n            e = self.FFNs_end[i](torch.cat([x, z_e_, x*z_e_], 2)).squeeze(2)\r\n            e.data.masked_fill_(x_mask.data, -float('inf'))\r\n            p_e = F.softmax(e, dim=1) # [B, S]\r\n            u_e = p_e.unsqueeze(1).bmm(x) # [B, 1, I]\r\n            z_s = self.SFUs_end[i](z_e, u_e)\r\n        if self.normalize:\r\n            if self.training:\r\n                # In training we output log-softmax for NLL\r\n                p_s = F.log_softmax(s, dim=1) # [B, S]\r\n                p_e = F.log_softmax(e, dim=1) # [B, S]\r\n            else:\r\n                # ...Otherwise 0-1 probabilities\r\n                p_s = F.softmax(s, dim=1) # [B, S]\r\n                p_e = F.softmax(e, dim=1) # [B, S]\r\n        else:\r\n            p_s = s.exp()\r\n            p_e = e.exp()\r\n        return p_s, p_e\r\n\r\n\r\n# ------------------------------------------------------------------------------\r\n# Attentions\r\n# ------------------------------------------------------------------------------\r\n\r\nclass SeqAttnMatch(nn.Module):\r\n    \"\"\"Given sequences X and Y, match sequence Y to each element in X.\r\n\r\n    * o_i = sum(alpha_j * y_j) for i in X\r\n    * alpha_j = softmax(y_j * x_i)\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, identity=False):\r\n        super(SeqAttnMatch, self).__init__()\r\n        if not identity:\r\n            self.linear = nn.Linear(input_size, input_size)\r\n        else:\r\n            self.linear = None\r\n\r\n    def forward(self, x, y, y_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len1 * hdim\r\n            y: batch * len2 * hdim\r\n            y_mask: batch * len2 (1 for padding, 0 for true)\r\n        Output:\r\n            matched_seq: batch * len1 * hdim\r\n        \"\"\"\r\n        # Project vectors\r\n        if self.linear:\r\n            x_proj = self.linear(x.view(-1, x.size(2))).view(x.size())\r\n            x_proj = F.relu(x_proj)\r\n            y_proj = self.linear(y.view(-1, y.size(2))).view(y.size())\r\n            y_proj = F.relu(y_proj)\r\n        else:\r\n            x_proj = x\r\n            y_proj = y\r\n\r\n        # Compute scores\r\n        scores = x_proj.bmm(y_proj.transpose(2, 1))\r\n\r\n        # Mask padding\r\n        y_mask = y_mask.unsqueeze(1).expand(scores.size())\r\n        scores.data.masked_fill_(y_mask.data, -float('inf'))\r\n\r\n        # Normalize with softmax\r\n        alpha = F.softmax(scores, dim=2)\r\n\r\n        # Take weighted average\r\n        matched_seq = alpha.bmm(y)\r\n        return matched_seq\r\n\r\n# like tf version DotAttention is rnet\r\nclass DotAttention(nn.Module):\r\n    \"\"\"Given sequences X and Y, match sequence Y to each element in X.\r\n\r\n    * o_i = sum(alpha_j * y_j) for i in X\r\n    * alpha_j = softmax(y_j * x_i)\r\n    \"\"\"\r\n\r\n    def __init__(self, \r\n                 input_size,  \r\n                 input_size2,\r\n                 hidden,\r\n                 dropout_rate=0.,\r\n                 combiner='gate'):\r\n        super(DotAttention, self).__init__()\r\n        self.linear = nn.Linear(input_size, hidden)\r\n        self.linear2 = nn.Linear(input_size2, hidden)\r\n\r\n        self.hidden = hidden\r\n        self.combiner = combiner\r\n        if combiner is not None:\r\n            if combiner == 'gate': \r\n                self.combine = Gate(input_size + input_size2, dropout_rate=dropout_rate)\r\n                self.output_size = input_size + input_size2\r\n            elif combiner == 'sfu':\r\n                if input_size != input_size2:\r\n                    self.sfu_linear = nn.Linear(input_size2, input_size)\r\n                else:\r\n                    self.sfu_linear = None\r\n                self.combine = SFU(input_size, 3 * input_size, dropout_rate=dropout_rate)\r\n                self.output_size = input_size\r\n            else:\r\n                raise ValueError(f'not support {combiner}')\r\n\r\n    def forward(self, x, y, y_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len1 * hdim\r\n            y: batch * len2 * hdim\r\n            y_mask: batch * len2 (1 for padding, 0 for true)\r\n        Output:\r\n            matched_seq: batch * len1 * hdim\r\n        \"\"\"\r\n        # Project vectors\r\n        x_proj = self.linear(x.view(-1, x.size(2))).view(x.size(0), x.size(1), self.hidden)\r\n        x_proj = F.relu(x_proj)\r\n        y_proj = self.linear2(y.view(-1, y.size(2))).view(y.size(0), y.size(1), self.hidden)\r\n        y_proj = F.relu(y_proj)\r\n\r\n        #print(x_proj.shape, y_proj.shape)\r\n        # Compute scores\r\n        scores = x_proj.bmm(y_proj.transpose(2, 1))\r\n\r\n        #print(scores.shape)\r\n\r\n        #print(y_mask.shape)\r\n\r\n        # Mask padding\r\n        y_mask = y_mask.unsqueeze(1).expand(scores.size())\r\n        scores.data.masked_fill_(y_mask.data, -float('inf'))\r\n\r\n        # Normalize with softmax\r\n        alpha = F.softmax(scores, dim=2)\r\n\r\n        # Take weighted average\r\n        matched_seq = alpha.bmm(y)\r\n\r\n        if self.combiner is None:\r\n            return matched_seq\r\n        else:\r\n            # TODO FIXME... why is False == True  ???\r\n            #print(self.combiner, self.combiner is 'sfu', self.combiner == 'sfu')\r\n            if self.combiner == 'gate':\r\n                return self.combine(torch.cat([x, matched_seq], 2))\r\n            elif self.combiner == 'sfu':\r\n                if self.sfu_linear is not None:\r\n                    matched_seq = self.sfu_linear(matched_seq)\r\n\r\n                return self.combine(x,  torch.cat([matched_seq, x * matched_seq, x - matched_seq], 2))\r\n\r\nclass SelfAttnMatch(nn.Module):\r\n    \"\"\"Given sequences X and Y, match sequence Y to each element in X.\r\n\r\n    * o_i = sum(alpha_j * x_j) for i in X\r\n    * alpha_j = softmax(x_j * x_i)\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, identity=False, diag=True):\r\n        super(SelfAttnMatch, self).__init__()\r\n        if not identity:\r\n            self.linear = nn.Linear(input_size, input_size)\r\n        else:\r\n            self.linear = None\r\n        self.diag = diag\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len1 * dim1\r\n            x_mask: batch * len1 (1 for padding, 0 for true)\r\n        Output:\r\n            matched_seq: batch * len1 * dim1\r\n        \"\"\"\r\n        # Project vectors\r\n        if self.linear:\r\n            x_proj = self.linear(x.view(-1, x.size(2))).view(x.size())\r\n            x_proj = F.relu(x_proj)\r\n        else:\r\n            x_proj = x\r\n\r\n        # Compute scores\r\n        scores = x_proj.bmm(x_proj.transpose(2, 1))\r\n        if not self.diag:\r\n            x_len = x.size(1)\r\n            for i in range(x_len):\r\n                scores[:, i, i] = 0\r\n\r\n        # Mask padding\r\n        x_mask = x_mask.unsqueeze(1).expand(scores.size())\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n\r\n        # Normalize with softmax\r\n        alpha = F.softmax(scores, dim=2)\r\n\r\n        #print(scores.shape, ','.join([str(x) for x in alpha.view(-1).detach().cpu().numpy()]), sep='\\t')\r\n\r\n        # Take weighted average\r\n        matched_seq = alpha.bmm(x)\r\n        return matched_seq\r\n\r\n\r\nclass BilinearSeqAttn(nn.Module):\r\n    \"\"\"A bilinear attention layer over a sequence X w.r.t y:\r\n\r\n    * o_i = softmax(x_i'Wy) for x_i in X.\r\n\r\n    Optionally don't normalize output weights.\r\n    \"\"\"\r\n\r\n    def __init__(self, x_size, y_size, identity=False, normalize=True):\r\n        super(BilinearSeqAttn, self).__init__()\r\n        self.normalize = normalize\r\n\r\n        # If identity is true, we just use a dot product without transformation.\r\n        if not identity:\r\n            self.linear = nn.Linear(y_size, x_size)\r\n        else:\r\n            self.linear = None\r\n\r\n    def forward(self, x, y, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * hdim1\r\n            y: batch * hdim2\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha = batch * len\r\n        \"\"\"\r\n        Wy = self.linear(y) if self.linear is not None else y\r\n        xWy = x.bmm(Wy.unsqueeze(2)).squeeze(2)\r\n        xWy.data.masked_fill_(x_mask.data, -float('inf'))\r\n        if self.normalize:\r\n            if self.training:\r\n                # In training we output log-softmax for NLL\r\n                alpha = F.log_softmax(xWy)\r\n            else:\r\n                # ...Otherwise 0-1 probabilities\r\n                alpha = F.softmax(xWy)\r\n        else:\r\n            alpha = xWy.exp()\r\n        return alpha\r\n\r\n\r\nclass LinearSeqAttn(nn.Module):\r\n    \"\"\"Self attention over a sequence:\r\n\r\n    * o_i = softmax(Wx_i) for x_i in X.\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size):\r\n        super(LinearSeqAttn, self).__init__()\r\n        self.linear = nn.Linear(input_size, 1)\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * hdim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha: batch * len\r\n        \"\"\"\r\n        x_flat = x.view(-1, x.size(-1))\r\n        scores = self.linear(x_flat).view(x.size(0), x.size(1))\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n        alpha = F.softmax(scores)\r\n        return alpha\r\n\r\nclass NonLinearSeqAttn(nn.Module):\r\n    \"\"\"Self attention over a sequence:\r\n\r\n    * o_i = softmax(function(Wx_i)) for x_i in X.\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, hidden_size=128):\r\n        super(NonLinearSeqAttn, self).__init__()\r\n        self.FFN = FeedForwardNetwork(input_size, hidden_size, 1)\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * dim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha: batch * len\r\n        \"\"\"\r\n        scores = self.FFN(x).squeeze(2)\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n        alpha = F.softmax(scores)\r\n        return alpha\r\n\r\nclass MaxPooling(nn.Module):\r\n    def forward(self, x, x_mask):\r\n        if x_mask is None or x_mask.data.sum() == 0:\r\n            return torch.max(x, 1)[0]\r\n        else:\r\n            x_mask = x_mask.unsqueeze(-1).expand(x.size())\r\n            x.data.masked_fill_(x_mask.data, -float('inf'))\r\n            return torch.max(x, 1)[0]\r\n            # # https://medium.com/@sonicboom8/sentiment-analysis-with-variable-length-sequences-in-pytorch-6241635ae130\r\n            # # shold be same as above or use F.adaptive_max_pool1d and slightly slower\r\n            # lengths = (1 - x_mask).sum(1)\r\n            # return torch.cat([torch.max(i[:l], dim=0)[0].view(1,-1) for i,l in zip(x, lengths)], dim=0) \r\n        \r\nclass SumPooling(nn.Module):\r\n    def forward(self, x, x_mask):\r\n        if x_mask is None or x_mask.data.sum() == 0:\r\n            return torch.sum(x, 1)\r\n        else:            \r\n            # lengths = (1 - x_mask).sum(1)\r\n            # return torch.cat([torch.sum(i[:l], dim=0).view(1,-1) for i,l in zip(x, lengths)], dim=0) \r\n            x_mask = x_mask.unsqueeze(-1).expand(x.size())\r\n            x.data.masked_fill_(x_mask.data, 0.)\r\n            return torch.sum(x, 1)\r\n\r\nclass TopKPooling(nn.Module):\r\n    def __init__(self, top_k=2):\r\n        super(TopKPooling, self).__init__()\r\n        self.top_k = top_k\r\n\r\n    def forward(self, x, x_mask):\r\n        if x_mask is None or x_mask.data.sum() == 0:\r\n            return torch.topk(x, k=self.top_k, dim=1)[0].view(x.size(0), -1)\r\n        else:\r\n            # x_mask = x_mask.unsqueeze(-1).expand(x.size())\r\n            # x.data.masked_fill_(x_mask.data, -float('inf'))\r\n            # return torch.topk(x, k=self.top_k, dim=1)[0].view(x.size(0), -1)\r\n            #FIXME below not ok\r\n            #return F.adaptive_max_pool1d(x, self.top_k).view(x.size(0), -1)\r\n            # https://medium.com/@sonicboom8/sentiment-analysis-with-variable-length-sequences-in-pytorch-6241635ae130\r\n            lengths = (1 - x_mask).sum(1)\r\n            return torch.cat([torch.topk(i[:l], k=self.top_k, dim=0)[0].view(1,-1) for i,l in zip(x, lengths)], dim=0).view(x.size(0), -1)\r\n\r\nclass LastPooling(nn.Module):\r\n    def __init__(self):\r\n        super(LastPooling, self).__init__()\r\n\r\n    def forward(self, x, x_mask):\r\n        if x_mask is None or x_mask.data.sum() == 0:\r\n            return x[:,-1,:]\r\n        else:\r\n            lengths = (1 - x_mask).sum(1)\r\n            return torch.cat([i[l - 1,:] for i,l in zip(x, lengths)], dim=0).view(x.size(0), -1)\r\n\r\nclass LinearSeqAttnPooling(nn.Module):\r\n    \"\"\"Self attention over a sequence:\r\n\r\n    * o_i = softmax(Wx_i) for x_i in X.\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size):\r\n        super(LinearSeqAttnPooling, self).__init__()\r\n        self.linear = nn.Linear(input_size, 1)\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * hdim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha: batch * len\r\n        \"\"\"\r\n        # TODO why need contiguous\r\n        x = x.contiguous() \r\n        x_flat = x.view(-1, x.size(-1))\r\n        scores = self.linear(x_flat).view(x.size(0), x.size(1))\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n        alpha = F.softmax(scores, dim=-1)\r\n        self.alpha = alpha\r\n        return alpha.unsqueeze(1).bmm(x).squeeze(1)\r\n\r\nclass LinearSeqAttnPoolings(nn.Module):\r\n    \"\"\"Self attention over a sequence:\r\n\r\n    * o_i = softmax(Wx_i) for x_i in X.\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, num_poolings):\r\n        super(LinearSeqAttnPoolings, self).__init__()\r\n        self.num_poolings = num_poolings\r\n        self.linear = nn.Linear(input_size, num_poolings)\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * hdim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha: batch * len\r\n        \"\"\"\r\n        # TODO why need contiguous\r\n        x_mask = lele.tile(x_mask.unsqueeze(-1), -1, self.num_poolings)\r\n        x = x.contiguous() \r\n        x_flat = x.view(-1, x.size(-1))\r\n        scores = self.linear(x_flat).view(x.size(0), x.size(1), self.num_poolings)\r\n        scores = scores.transpose(-2, -1)\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n        alpha = F.softmax(scores, dim=-1)\r\n        self.alpha = alpha\r\n        return alpha.bmm(x)\r\n\r\nclass NonLinearSeqAttnPooling(nn.Module):\r\n    \"\"\"Self attention over a sequence:\r\n\r\n    * o_i = softmax(function(Wx_i)) for x_i in X.\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, hidden_size=128):\r\n        super(NonLinearSeqAttnPooling, self).__init__()\r\n        self.FFN = FeedForwardNetwork(input_size, hidden_size, 1)\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * dim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha: batch * len\r\n        \"\"\"\r\n        scores = self.FFN(x).squeeze(2)\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n        alpha = F.softmax(scores, dim=-1)\r\n        self.alpha = alpha\r\n        return alpha.unsqueeze(1).bmm(x).squeeze(1)\r\n\r\nclass NonLinearSeqAttnPoolings(nn.Module):\r\n    \"\"\"Self attention over a sequence:\r\n\r\n    * o_i = softmax(function(Wx_i)) for x_i in X.\r\n    \"\"\"\r\n\r\n    def __init__(self, input_size, num_poolings, hidden_size=128):\r\n        super(NonLinearSeqAttnPoolings, self).__init__()\r\n        self.num_poolings = num_poolings\r\n        self.FFN = FeedForwardNetwork(input_size, hidden_size, num_poolings)\r\n\r\n    def forward(self, x, x_mask):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * dim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            alpha: batch * len\r\n        \"\"\"\r\n        scores = self.FFN(x)\r\n        x_mask = lele.tile(x_mask.unsqueeze(-1), -1, self.num_poolings)\r\n        scores.data.masked_fill_(x_mask.data, -float('inf'))\r\n        scores = scores.transpose(-2, -1)\r\n        alpha = F.softmax(scores, dim=-1)\r\n        self.alpha = alpha\r\n        return alpha.bmm(x)\r\n\r\nclass Pooling(nn.Module):\r\n  def __init__(self,  \r\n               name,\r\n               input_size=0,\r\n               top_k=2,\r\n               att_activation=F.relu,\r\n               **kwargs):\r\n    super(Pooling, self).__init__(**kwargs)\r\n\r\n    self.top_k = top_k\r\n\r\n    self.poolings = nn.ModuleList()\r\n    def get_pooling(name):\r\n      if name == 'max':\r\n        return MaxPooling()\r\n      elif name == 'mean':\r\n        return MeanPooling()\r\n      elif name == 'sum':\r\n        return SumPooling()\r\n      elif name == 'attention' or name == 'att':\r\n        return NonLinearSeqAttnPooling(input_size)\r\n      elif name == 'linear_attention' or name == 'linear_att' or name == 'latt':\r\n        return LinearSeqAttnPooling(input_size)\r\n      elif name == 'topk' or name == 'top_k':\r\n        return TopKPooling(top_k=top_k)\r\n      elif name =='first':\r\n        return FirstPooling()\r\n      elif name == 'last':\r\n        return LastPooling()\r\n      else:\r\n        raise f'Unsupport pooling now:{name}'\r\n\r\n    self.output_size = 0\r\n    self.names = name.split(',')\r\n    for name in self.names:\r\n      self.poolings.append(get_pooling(name))\r\n      if name == 'topk' or name == 'top_k':\r\n        self.output_size += input_size * top_k\r\n      else:\r\n        self.output_size += input_size\r\n\r\n    #logging.info('poolings:', self.poolings)\r\n  \r\n  def forward(self, x, mask=None, calc_word_scores=False):\r\n    results = []\r\n    self.word_scores = []\r\n    for i, pooling in enumerate(self.poolings):\r\n      results.append(pooling(x, mask))\r\n      if calc_word_scores:\r\n        import melt \r\n        # TODO remove from melt\r\n        self.word_scores.append(melt.get_words_importance(outputs, sequence_length, top_k=self.top_k, method=self.names[i]))\r\n    \r\n    return torch.cat(results, -1)\r\n\r\nclass Poolings(nn.Module):\r\n  def __init__(self,  \r\n               name,\r\n               input_size=0,\r\n               num_poolings=1,\r\n               top_k=2,\r\n               att_activation=F.relu,\r\n               **kwargs):\r\n    super(Poolings, self).__init__(**kwargs)\r\n\r\n    self.top_k = top_k\r\n    self.num_poolings = num_poolings\r\n\r\n    self.poolings = nn.ModuleList()\r\n    self.is_poolings_list = []\r\n    def get_pooling(name):\r\n      if name == 'max':\r\n        # TODO actually only support attention based..\r\n        return MaxPooling(), False\r\n      elif name == 'mean':\r\n        return MeanPooling(), False\r\n      elif name == 'attention' or name == 'att':\r\n        return NonLinearSeqAttnPoolings(input_size, num_poolings), True\r\n      elif name == 'linear_attention' or name == 'linear_att' or name == 'latt':\r\n        return LinearSeqAttnPoolings(input_size, num_poolings), True\r\n      elif name == 'topk' or name == 'top_k':\r\n        return TopKPooling(top_k=top_k), False\r\n      elif name =='first':\r\n        return FirstPooling(), False\r\n      elif name == 'last':\r\n        return LastPooling(), False\r\n      else:\r\n        raise f'Unsupport pooling now:{name}'\r\n\r\n    self.output_size = 0\r\n    self.names = name.split(',')\r\n    for name in self.names:\r\n      pooling, is_poolings = get_pooling(name)\r\n      self.poolings.append(pooling) \r\n      self.is_poolings_list.append(is_poolings)\r\n      if name == 'topk' or name == 'top_k':\r\n        self.output_size += input_size * top_k\r\n      else:\r\n        self.output_size += input_size\r\n\r\n    #logging.info('poolings:', self.poolings)\r\n  \r\n  def forward(self, x, mask=None, calc_word_scores=False):\r\n    results = []\r\n    self.word_scores = []\r\n    for i, pooling in enumerate(self.poolings):\r\n      result = pooling(x, mask)\r\n      if not self.is_poolings_list[i]:\r\n          result = lele.tile(result.unsqueeze(1), 1, self.num_poolings)\r\n      results.append(result)\r\n      if calc_word_scores:\r\n        self.word_scores.append(melt.get_words_importance(outputs, sequence_length, top_k=self.top_k, method=self.names[i]))\r\n\r\n    result = torch.cat(results, -1)\r\n    self.encode = result\r\n    return result\r\n\r\n# TODO can we do multiple exclusive linear simultaneously ?\r\nclass Linears(nn.Module):\r\n  def __init__(self,  \r\n               input_size,\r\n               output_size,\r\n               num,\r\n               **kwargs):\r\n    super(Linears, self).__init__(**kwargs)\r\n    self.num = num\r\n    self.linears = lele.clones(nn.Linear(input_size, output_size), num)\r\n\r\n  def forward(self, x):\r\n    inputs = x.split(1, 1)\r\n    results = []\r\n    for linear, x in zip(self.linears, inputs):\r\n      result = linear(x)\r\n      results.append(result)\r\n    result = torch.cat(results, 1)\r\n    return result\r\n    \r\n\r\n# ------------------------------------------------------------------------------\r\n# Functional Units\r\n# ------------------------------------------------------------------------------\r\n\r\nclass Gate(nn.Module):\r\n    \"\"\"Gate Unit\r\n    g = sigmoid(Wx)\r\n    x = g * x\r\n    \"\"\"\r\n    def __init__(self, input_size, dropout_rate=0.):\r\n        super(Gate, self).__init__()\r\n        self.linear = nn.Linear(input_size, input_size, bias=False)\r\n        self.dropout_rate = dropout_rate\r\n\r\n    def forward(self, x):\r\n        \"\"\"\r\n        Args:\r\n            x: batch * len * dim\r\n            x_mask: batch * len (1 for padding, 0 for true)\r\n        Output:\r\n            res: batch * len * dim\r\n        \"\"\"\r\n        if self.dropout_rate:\r\n            x = F.dropout(x, p=self.dropout_rate, training=self.training)\r\n        x_proj = self.linear(x)\r\n        gate = torch.sigmoid(x)\r\n        return x_proj * gate\r\n\r\n\r\nclass SFU(nn.Module):\r\n    \"\"\"Semantic Fusion Unit\r\n    The ouput vector is expected to not only retrieve correlative information from fusion vectors,\r\n    but also retain partly unchange as the input vector\r\n    \"\"\"\r\n    def __init__(self, input_size, fusion_size, dropout_rate=0.):\r\n        super(SFU, self).__init__()\r\n        self.linear_r = nn.Linear(input_size + fusion_size, input_size)\r\n        self.linear_g = nn.Linear(input_size + fusion_size, input_size)\r\n        self.dropout_rate = dropout_rate\r\n\r\n    def forward(self, x, fusions):\r\n        r_f = torch.cat([x, fusions], 2)\r\n        if self.dropout_rate:\r\n            r_f = F.dropout(r_f, p=self.dropout_rate, training=self.training)\r\n        r = torch.tanh(self.linear_r(r_f))\r\n        g = torch.sigmoid(self.linear_g(r_f))\r\n        o = g * r + (1-g) * x\r\n        return o\r\n\r\nclass SFUCombiner(nn.Module):\r\n    \"\"\"Semantic Fusion Unit\r\n    The ouput vector is expected to not only retrieve correlative information from fusion vectors,\r\n    but also retain partly unchange as the input vector\r\n    \"\"\"\r\n    def __init__(self, input_size, fusion_size, dropout_rate=0.):\r\n        super(SFUCombiner, self).__init__()\r\n        self.linear_r = nn.Linear(input_size + fusion_size, input_size)\r\n        self.linear_g = nn.Linear(input_size + fusion_size, input_size)\r\n        self.dropout_rate = dropout_rate\r\n\r\n    def forward(self, x, y):\r\n        r_f = torch.cat([x, y, x * y, x - y], 2)\r\n        if self.dropout_rate:\r\n            r_f = F.dropout(r_f, p=self.dropout_rate, training=self.training)\r\n        r = torch.tanh(self.linear_r(r_f))\r\n        g = torch.sigmoid(self.linear_g(r_f))\r\n        o = g * r + (1-g) * x\r\n        return o\r\n        \r\n\r\n# ------------------------------------------------------------------------------\r\n# Functional\r\n# ------------------------------------------------------------------------------\r\n\r\n\r\ndef uniform_weights(x, x_mask):\r\n    \"\"\"Return uniform weights over non-masked x (a sequence of vectors).\r\n\r\n    Args:\r\n        x: batch * len * hdim\r\n        x_mask: batch * len (1 for padding, 0 for true)\r\n    Output:\r\n        x_avg: batch * hdim\r\n    \"\"\"\r\n    alpha = Variable(torch.ones(x.size(0), x.size(1)))\r\n    if x.data.is_cuda:\r\n        alpha = alpha.cuda()\r\n    alpha = alpha * x_mask.eq(0).float()\r\n    alpha = alpha / alpha.sum(1).expand(alpha.size())\r\n    return alpha\r\n\r\n\r\ndef weighted_avg(x, weights):\r\n    \"\"\"Return a weighted average of x (a sequence of vectors).\r\n\r\n    Args:\r\n        x: batch * len * hdim\r\n        weights: batch * len, sum(dim = 1) = 1\r\n    Output:\r\n        x_avg: batch * hdim\r\n    \"\"\"\r\n    return weights.unsqueeze(1).bmm(x).squeeze(1)\r\n"
  },
  {
    "path": "utils/lele/layers/lstm.py",
    "content": "from __future__ import absolute_import\r\nfrom __future__ import unicode_literals\r\nimport logging\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport copy\r\n\r\n\r\nclass LstmbiLm(nn.Module):\r\n  def __init__(self, config, use_cuda=False):\r\n    super(LstmbiLm, self).__init__()\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n    \r\n    self.encoder = nn.LSTM(self.config['encoder']['projection_dim'],\r\n                           self.config['encoder']['dim'],\r\n                           num_layers=self.config['encoder']['n_layers'], \r\n                           bidirectional=True,\r\n                           batch_first=True, \r\n                           dropout=self.config['dropout'])\r\n    self.projection = nn.Linear(self.config['encoder']['dim'], self.config['encoder']['projection_dim'], bias=True)\r\n\r\n  def forward(self, inputs):\r\n    forward, backward = self.encoder(inputs)[0].split(self.config['encoder']['dim'], 2)\r\n    return torch.cat([self.projection(forward), self.projection(backward)], dim=2)\r\n"
  },
  {
    "path": "utils/lele/layers/lstm_cell_with_projection.py",
    "content": "\"\"\"\r\nAn LSTM with Recurrent Dropout, a hidden_state which is projected and\r\nclipping on both the hidden state and the memory state of the LSTM.\r\n\"\"\"\r\n\r\nfrom typing import Optional, Tuple, List\r\n\r\nimport torch\r\nfrom torch.autograd import Variable\r\n\r\nfrom .util import block_orthogonal, get_dropout_mask\r\n\r\nclass LstmCellWithProjection(torch.nn.Module):\r\n    \"\"\"\r\n    An LSTM with Recurrent Dropout and a projected and clipped hidden state and\r\n    memory. Note: this implementation is slower than the native Pytorch LSTM because\r\n    it cannot make use of CUDNN optimizations for stacked RNNs due to and\r\n    variational dropout and the custom nature of the cell state.\r\n    Parameters\r\n    ----------\r\n    input_size : ``int``, required.\r\n        The dimension of the inputs to the LSTM.\r\n    hidden_size : ``int``, required.\r\n        The dimension of the outputs of the LSTM.\r\n    cell_size : ``int``, required.\r\n        The dimension of the memory cell used for the LSTM.\r\n    go_forward: ``bool``, optional (default = True)\r\n        The direction in which the LSTM is applied to the sequence.\r\n        Forwards by default, or backwards if False.\r\n    recurrent_dropout_probability: ``float``, optional (default = 0.0)\r\n        The dropout probability to be used in a dropout scheme as stated in\r\n        `A Theoretically Grounded Application of Dropout in Recurrent Neural Networks\r\n        <https://arxiv.org/abs/1512.05287>`_ . Implementation wise, this simply\r\n        applies a fixed dropout mask per sequence to the recurrent connection of the\r\n        LSTM.\r\n    state_projection_clip_value: ``float``, optional, (default = None)\r\n        The magnitude with which to clip the hidden_state after projecting it.\r\n    memory_cell_clip_value: ``float``, optional, (default = None)\r\n        The magnitude with which to clip the memory cell.\r\n    Returns\r\n    -------\r\n    output_accumulator : ``torch.FloatTensor``\r\n        The outputs of the LSTM for each timestep. A tensor of shape\r\n        (batch_size, max_timesteps, hidden_size) where for a given batch\r\n        element, all outputs past the sequence length for that batch are\r\n        zero tensors.\r\n    final_state: ``Tuple[torch.FloatTensor, torch.FloatTensor]``\r\n        The final (state, memory) states of the LSTM, with shape\r\n        (1, batch_size, hidden_size) and  (1, batch_size, cell_size)\r\n        respectively. The first dimension is 1 in order to match the Pytorch\r\n        API for returning stacked LSTM states.\r\n    \"\"\"\r\n    def __init__(self,\r\n                 input_size: int,\r\n                 hidden_size: int,\r\n                 cell_size: int,\r\n                 go_forward: bool = True,\r\n                 recurrent_dropout_probability: float = 0.0,\r\n                 memory_cell_clip_value: Optional[float] = None,\r\n                 state_projection_clip_value: Optional[float] = None) -> None:\r\n        super(LstmCellWithProjection, self).__init__()\r\n        # Required to be wrapped with a :class:`PytorchSeq2SeqWrapper`.\r\n        self.input_size = input_size\r\n        self.hidden_size = hidden_size\r\n        self.cell_size = cell_size\r\n\r\n        self.go_forward = go_forward\r\n        self.state_projection_clip_value = state_projection_clip_value\r\n        self.memory_cell_clip_value = memory_cell_clip_value\r\n        self.recurrent_dropout_probability = recurrent_dropout_probability\r\n\r\n        # We do the projections for all the gates all at once.\r\n        self.input_linearity = torch.nn.Linear(input_size, 4 * cell_size, bias=False)\r\n        self.state_linearity = torch.nn.Linear(hidden_size, 4 * cell_size, bias=True)\r\n\r\n        # Additional projection matrix for making the hidden state smaller.\r\n        self.state_projection = torch.nn.Linear(cell_size, hidden_size, bias=False)\r\n        self.reset_parameters()\r\n\r\n    def reset_parameters(self):\r\n        # Use sensible default initializations for parameters.\r\n        block_orthogonal(self.input_linearity.weight.data, [self.cell_size, self.input_size])\r\n        block_orthogonal(self.state_linearity.weight.data, [self.cell_size, self.hidden_size])\r\n\r\n        self.state_linearity.bias.data.fill_(0.0)\r\n        # Initialize forget gate biases to 1.0 as per An Empirical\r\n        # Exploration of Recurrent Network Architectures, (Jozefowicz, 2015).\r\n        self.state_linearity.bias.data[self.cell_size:2 * self.cell_size].fill_(1.0)\r\n\r\n    def forward(self,  # pylint: disable=arguments-differ\r\n                inputs: torch.FloatTensor,\r\n                batch_lengths: List[int],\r\n                initial_state: Optional[Tuple[torch.Tensor, torch.Tensor]] = None):\r\n        \"\"\"\r\n        Parameters\r\n        ----------\r\n        inputs : ``torch.FloatTensor``, required.\r\n            A tensor of shape (batch_size, num_timesteps, input_size)\r\n            to apply the LSTM over.\r\n        batch_lengths : ``List[int]``, required.\r\n            A list of length batch_size containing the lengths of the sequences in batch.\r\n        initial_state : ``Tuple[torch.Tensor, torch.Tensor]``, optional, (default = None)\r\n            A tuple (state, memory) representing the initial hidden state and memory\r\n            of the LSTM. The ``state`` has shape (1, batch_size, hidden_size) and the\r\n            ``memory`` has shape (1, batch_size, cell_size).\r\n        Returns\r\n        -------\r\n        output_accumulator : ``torch.FloatTensor``\r\n            The outputs of the LSTM for each timestep. A tensor of shape\r\n            (batch_size, max_timesteps, hidden_size) where for a given batch\r\n            element, all outputs past the sequence length for that batch are\r\n            zero tensors.\r\n        final_state : ``Tuple[``torch.FloatTensor, torch.FloatTensor]``\r\n            A tuple (state, memory) representing the initial hidden state and memory\r\n            of the LSTM. The ``state`` has shape (1, batch_size, hidden_size) and the\r\n            ``memory`` has shape (1, batch_size, cell_size).\r\n        \"\"\"\r\n        batch_size = inputs.size()[0]\r\n        total_timesteps = inputs.size()[1]\r\n\r\n        # We have to use this '.data.new().fill_' pattern to create tensors with the correct\r\n        # type - forward has no knowledge of whether these are torch.Tensors or torch.cuda.Tensors.\r\n        output_accumulator = Variable(inputs.data.new(batch_size,\r\n                                                      total_timesteps,\r\n                                                      self.hidden_size).fill_(0))\r\n        if initial_state is None:\r\n            full_batch_previous_memory = Variable(inputs.data.new(batch_size,\r\n                                                                  self.cell_size).fill_(0))\r\n            full_batch_previous_state = Variable(inputs.data.new(batch_size,\r\n                                                                 self.hidden_size).fill_(0))\r\n        else:\r\n            full_batch_previous_state = initial_state[0].squeeze(0)\r\n            full_batch_previous_memory = initial_state[1].squeeze(0)\r\n\r\n        current_length_index = batch_size - 1 if self.go_forward else 0\r\n        if self.recurrent_dropout_probability > 0.0 and self.training:\r\n            dropout_mask = get_dropout_mask(self.recurrent_dropout_probability,\r\n                                            full_batch_previous_state)\r\n        else:\r\n            dropout_mask = None\r\n\r\n        for timestep in range(total_timesteps):\r\n            # The index depends on which end we start.\r\n            index = timestep if self.go_forward else total_timesteps - timestep - 1\r\n\r\n            # What we are doing here is finding the index into the batch dimension\r\n            # which we need to use for this timestep, because the sequences have\r\n            # variable length, so once the index is greater than the length of this\r\n            # particular batch sequence, we no longer need to do the computation for\r\n            # this sequence. The key thing to recognise here is that the batch inputs\r\n            # must be _ordered_ by length from longest (first in batch) to shortest\r\n            # (last) so initially, we are going forwards with every sequence and as we\r\n            # pass the index at which the shortest elements of the batch finish,\r\n            # we stop picking them up for the computation.\r\n            if self.go_forward:\r\n                while batch_lengths[current_length_index] <= index:\r\n                    current_length_index -= 1\r\n            # If we're going backwards, we are _picking up_ more indices.\r\n            else:\r\n                # First conditional: Are we already at the maximum number of elements in the batch?\r\n                # Second conditional: Does the next shortest sequence beyond the current batch\r\n                # index require computation use this timestep?\r\n                while current_length_index < (len(batch_lengths) - 1) and \\\r\n                                batch_lengths[current_length_index + 1] > index:\r\n                    current_length_index += 1\r\n\r\n            # Actually get the slices of the batch which we\r\n            # need for the computation at this timestep.\r\n            # shape (batch_size, cell_size)\r\n            previous_memory = full_batch_previous_memory[0: current_length_index + 1].clone()\r\n            # Shape (batch_size, hidden_size)\r\n            previous_state = full_batch_previous_state[0: current_length_index + 1].clone()\r\n            # Shape (batch_size, input_size)\r\n            timestep_input = inputs[0: current_length_index + 1, index]\r\n\r\n            # Do the projections for all the gates all at once.\r\n            # Both have shape (batch_size, 4 * cell_size)\r\n            projected_input = self.input_linearity(timestep_input)\r\n            projected_state = self.state_linearity(previous_state)\r\n\r\n            # Main LSTM equations using relevant chunks of the big linear\r\n            # projections of the hidden state and inputs.\r\n            input_gate = torch.sigmoid(projected_input[:, (0 * self.cell_size):(1 * self.cell_size)] +\r\n                                       projected_state[:, (0 * self.cell_size):(1 * self.cell_size)])\r\n            forget_gate = torch.sigmoid(projected_input[:, (1 * self.cell_size):(2 * self.cell_size)] +\r\n                                        projected_state[:, (1 * self.cell_size):(2 * self.cell_size)])\r\n            memory_init = torch.tanh(projected_input[:, (2 * self.cell_size):(3 * self.cell_size)] +\r\n                                     projected_state[:, (2 * self.cell_size):(3 * self.cell_size)])\r\n            output_gate = torch.sigmoid(projected_input[:, (3 * self.cell_size):(4 * self.cell_size)] +\r\n                                        projected_state[:, (3 * self.cell_size):(4 * self.cell_size)])\r\n            memory = input_gate * memory_init + forget_gate * previous_memory\r\n\r\n            # Here is the non-standard part of this LSTM cell; first, we clip the\r\n            # memory cell, then we project the output of the timestep to a smaller size\r\n            # and again clip it.\r\n\r\n            if self.memory_cell_clip_value:\r\n                # pylint: disable=invalid-unary-operand-type\r\n                memory = torch.clamp(memory, -self.memory_cell_clip_value, self.memory_cell_clip_value)\r\n\r\n            # shape (current_length_index, cell_size)\r\n            pre_projection_timestep_output = output_gate * torch.tanh(memory)\r\n\r\n            # shape (current_length_index, hidden_size)\r\n            timestep_output = self.state_projection(pre_projection_timestep_output)\r\n            if self.state_projection_clip_value:\r\n                # pylint: disable=invalid-unary-operand-type\r\n                timestep_output = torch.clamp(timestep_output,\r\n                                              -self.state_projection_clip_value,\r\n                                              self.state_projection_clip_value)\r\n\r\n            # Only do dropout if the dropout prob is > 0.0 and we are in training mode.\r\n            if dropout_mask is not None:\r\n                timestep_output = timestep_output * dropout_mask[0: current_length_index + 1]\r\n\r\n            # We've been doing computation with less than the full batch, so here we create a new\r\n            # variable for the the whole batch at this timestep and insert the result for the\r\n            # relevant elements of the batch into it.\r\n            full_batch_previous_memory = Variable(full_batch_previous_memory.data.clone())\r\n            full_batch_previous_state = Variable(full_batch_previous_state.data.clone())\r\n            full_batch_previous_memory[0:current_length_index + 1] = memory\r\n            full_batch_previous_state[0:current_length_index + 1] = timestep_output\r\n            output_accumulator[0:current_length_index + 1, index] = timestep_output\r\n\r\n        # Mimic the pytorch API by returning state in the following shape:\r\n        # (num_layers * num_directions, batch_size, ...). As this\r\n        # LSTM cell cannot be stacked, the first dimension here is just 1.\r\n        final_state = (full_batch_previous_state.unsqueeze(0),\r\n                       full_batch_previous_memory.unsqueeze(0))\r\n\r\n        return output_accumulator, final_state\r\n"
  },
  {
    "path": "utils/lele/layers/token_embedder.py",
    "content": "from __future__ import absolute_import\r\nfrom __future__ import unicode_literals\r\nimport logging\r\nimport torch\r\nimport torch.nn as nn\r\nimport torch.nn.functional as F\r\nfrom torch.autograd import Variable\r\nimport copy\r\nfrom .highway import Highway\r\n\r\n\r\nclass LstmTokenEmbedder(nn.Module):\r\n  def __init__(self, config, word_emb_layer, char_emb_layer, use_cuda=False):\r\n    super(LstmTokenEmbedder, self).__init__()\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n    self.word_emb_layer = word_emb_layer\r\n    self.char_emb_layer = char_emb_layer\r\n    self.output_dim = config['encoder']['projection_dim']\r\n    emb_dim = 0\r\n    if word_emb_layer is not None:\r\n      emb_dim += word_emb_layer.n_d\r\n\r\n    if char_emb_layer is not None:\r\n      emb_dim += char_emb_layer.n_d * 2\r\n      self.char_lstm = nn.LSTM(char_emb_layer.n_d, char_emb_layer.n_d, num_layers=1, bidirectional=True,\r\n                               batch_first=True, dropout=config['dropout'])\r\n\r\n    self.projection = nn.Linear(emb_dim, self.output_dim, bias=True)\r\n\r\n  def forward(self, word_inp, chars_inp, shape):\r\n    embs = []\r\n    batch_size, seq_len = shape\r\n    if self.word_emb_layer is not None:\r\n      word_emb = self.word_emb_layer(Variable(word_inp).cuda() if self.use_cuda else Variable(word_inp))\r\n      embs.append(word_emb)\r\n\r\n    if self.char_emb_layer is not None:\r\n      chars_inp = chars_inp.view(batch_size * seq_len, -1)\r\n      chars_emb = self.char_emb_layer(Variable(chars_inp).cuda() if self.use_cuda else Variable(chars_inp))\r\n      _, (chars_outputs, __) = self.char_lstm(chars_emb)\r\n      chars_outputs = chars_outputs.contiguous().view(-1, self.config['token_embedder']['char_dim'] * 2)\r\n      embs.append(chars_outputs)\r\n\r\n    token_embedding = torch.cat(embs, dim=2)\r\n\r\n    return self.projection(token_embedding)\r\n\r\n\r\nclass ConvTokenEmbedder(nn.Module):\r\n  def __init__(self, config, word_emb_layer, char_emb_layer, use_cuda):\r\n    super(ConvTokenEmbedder, self).__init__()\r\n    self.config = config\r\n    self.use_cuda = use_cuda\r\n\r\n    self.word_emb_layer = word_emb_layer\r\n    self.char_emb_layer = char_emb_layer\r\n\r\n    self.output_dim = config['encoder']['projection_dim']\r\n    self.emb_dim = 0\r\n    if word_emb_layer is not None:\r\n      self.emb_dim += word_emb_layer.n_d\r\n\r\n    if char_emb_layer is not None:\r\n      self.convolutions = []\r\n      cnn_config = config['token_embedder']\r\n      filters = cnn_config['filters']\r\n      char_embed_dim = cnn_config['char_dim']\r\n\r\n      for i, (width, num) in enumerate(filters):\r\n        conv = torch.nn.Conv1d(\r\n          in_channels=char_embed_dim,\r\n          out_channels=num,\r\n          kernel_size=width,\r\n          bias=True\r\n        )\r\n        self.convolutions.append(conv)\r\n\r\n      self.convolutions = nn.ModuleList(self.convolutions)\r\n      \r\n      self.n_filters = sum(f[1] for f in filters)\r\n      self.n_highway = cnn_config['n_highway']\r\n\r\n      self.highways = Highway(self.n_filters, self.n_highway, activation=torch.nn.functional.relu)\r\n      self.emb_dim += self.n_filters\r\n\r\n    self.projection = nn.Linear(self.emb_dim, self.output_dim, bias=True)\r\n    \r\n  def forward(self, word_inp, chars_inp, shape):\r\n    embs = []\r\n    batch_size, seq_len = shape\r\n    if self.word_emb_layer is not None:\r\n      batch_size, seq_len = word_inp.size(0), word_inp.size(1)\r\n      word_emb = self.word_emb_layer(Variable(word_inp).cuda() if self.use_cuda else Variable(word_inp))\r\n      embs.append(word_emb)\r\n\r\n    if self.char_emb_layer is not None:\r\n      chars_inp = chars_inp.view(batch_size * seq_len, -1)\r\n\r\n      character_embedding = self.char_emb_layer(Variable(chars_inp).cuda() if self.use_cuda else Variable(chars_inp))\r\n\r\n      character_embedding = torch.transpose(character_embedding, 1, 2)\r\n\r\n      cnn_config = self.config['token_embedder']\r\n      if cnn_config['activation'] == 'tanh':\r\n        activation = torch.nn.functional.tanh\r\n      elif cnn_config['activation'] == 'relu':\r\n        activation = torch.nn.functional.relu\r\n      else:\r\n        raise Exception(\"Unknown activation\")\r\n\r\n      convs = []\r\n      for i in range(len(self.convolutions)):\r\n        convolved = self.convolutions[i](character_embedding)\r\n        # (batch_size * sequence_length, n_filters for this width)\r\n        convolved, _ = torch.max(convolved, dim=-1)\r\n        convolved = activation(convolved)\r\n        convs.append(convolved)\r\n      char_emb = torch.cat(convs, dim=-1)\r\n      char_emb = self.highways(char_emb)\r\n\r\n      embs.append(char_emb.view(batch_size, -1, self.n_filters))\r\n      \r\n    token_embedding = torch.cat(embs, dim=2)\r\n\r\n    return self.projection(token_embedding)\r\n"
  },
  {
    "path": "utils/lele/layers/transformer/__init__.py",
    "content": "from lele.layers.transformer.transformer import *\n"
  },
  {
    "path": "utils/lele/layers/transformer/transformer.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   transformer.py\n#        \\author   chenghuige  \n#          \\date   2018-10-31 16:26:03.989448\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport numpy as np\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport math, copy, time\nfrom torch.autograd import Variable\n\n# https://github.com/harvardnlp/annotated-transformer/blob/master/The%20Annotated%20Transformer.ipynb\n\ndef clones(module, N):\n    \"Produce N identical layers.\"\n    return nn.ModuleList([copy.deepcopy(module) for _ in range(N)])\n\nclass Encoder(nn.Module):\n    \"Core encoder is a stack of N layers\"\n    def __init__(self, layer, N):\n        super(Encoder, self).__init__()\n        self.layers = clones(layer, N)\n        self.norm = LayerNorm(layer.size)\n        \n    def forward(self, x, mask):\n        \"Pass the input (and mask) through each layer in turn.\"\n        for layer in self.layers:\n            x = layer(x, mask)\n        return self.norm(x)\n\nclass LayerNorm(nn.Module):\n    \"Construct a layernorm module (See citation for details).\"\n    def __init__(self, features, eps=1e-6):\n        super(LayerNorm, self).__init__()\n        self.a_2 = nn.Parameter(torch.ones(features))\n        self.b_2 = nn.Parameter(torch.zeros(features))\n        self.eps = eps\n\n    def forward(self, x):\n        mean = x.mean(-1, keepdim=True)\n        std = x.std(-1, keepdim=True)\n        return self.a_2 * (x - mean) / (std + self.eps) + self.b_2\n\nclass SublayerConnection(nn.Module):\n    \"\"\"\n    A residual connection followed by a layer norm.\n    Note for code simplicity the norm is first as opposed to last.\n    \"\"\"\n    def __init__(self, size, dropout):\n        super(SublayerConnection, self).__init__()\n        self.norm = LayerNorm(size)\n        self.dropout = nn.Dropout(dropout)\n\n    def forward(self, x, sublayer):\n        \"Apply residual connection to any sublayer with the same size.\"\n        return x + self.dropout(sublayer(self.norm(x)))\n\n\nclass EncoderLayer(nn.Module):\n    \"Encoder is made up of self-attn and feed forward (defined below)\"\n    def __init__(self, size, self_attn, feed_forward, dropout):\n        super(EncoderLayer, self).__init__()\n        self.self_attn = self_attn\n        self.feed_forward = feed_forward\n        self.sublayer = clones(SublayerConnection(size, dropout), 2)\n        self.size = size\n\n    def forward(self, x, mask):\n        \"Follow Figure 1 (left) for connections.\"\n        # TODO FIXME not mask has problem .. just set None now\n        #x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, mask))\n        x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, None))\n        return self.sublayer[1](x, self.feed_forward)\n\ndef attention(query, key, value, mask=None, dropout=None):\n    \"Compute 'Scaled Dot Product Attention'\"\n    d_k = query.size(-1)\n    scores = torch.matmul(query, key.transpose(-2, -1)) \\\n             / math.sqrt(d_k)\n    if mask is not None:\n        #print(scores.shape)\n        #print(mask.shape)\n        scores = scores.masked_fill(mask == 0, -1e9)\n    p_attn = F.softmax(scores, dim = -1)\n    if dropout is not None:\n        p_attn = dropout(p_attn)\n    return torch.matmul(p_attn, value), p_attn\n\n\nclass MultiHeadedAttention(nn.Module):\n    def __init__(self, h, d_model, dropout=0.1):\n        \"Take in model size and number of heads.\"\n        super(MultiHeadedAttention, self).__init__()\n        assert d_model % h == 0\n        # We assume d_v always equals d_k\n        self.d_k = d_model // h\n        self.h = h\n        self.linears = clones(nn.Linear(d_model, d_model), 4)\n        self.attn = None\n        self.dropout = nn.Dropout(p=dropout)\n        \n    def forward(self, query, key, value, mask=None):\n        \"Implements Figure 2\"\n        if mask is not None:\n            # Same mask applied to all h heads.\n            mask = mask.unsqueeze(1)\n        nbatches = query.size(0)\n        \n        # 1) Do all the linear projections in batch from d_model => h x d_k \n        query, key, value = \\\n            [l(x).view(nbatches, -1, self.h, self.d_k).transpose(1, 2)\n             for l, x in zip(self.linears, (query, key, value))]\n        \n        # 2) Apply attention on all the projected vectors in batch. \n        x, self.attn = attention(query, key, value, mask=mask, \n                                 dropout=self.dropout)\n        \n        # 3) \"Concat\" using a view and apply a final linear. \n        x = x.transpose(1, 2).contiguous() \\\n             .view(nbatches, -1, self.h * self.d_k)\n        return self.linears[-1](x)\n\nclass PositionwiseFeedForward(nn.Module):\n    \"Implements FFN equation.\"\n    def __init__(self, d_model, d_ff, dropout=0.1):\n        super(PositionwiseFeedForward, self).__init__()\n        self.w_1 = nn.Linear(d_model, d_ff)\n        self.w_2 = nn.Linear(d_ff, d_model)\n        self.dropout = nn.Dropout(dropout)\n\n    def forward(self, x):\n        return self.w_2(self.dropout(F.relu(self.w_1(x))))\n\nclass Embeddings(nn.Module):\n    def __init__(self, d_model, vocab):\n        super(Embeddings, self).__init__()\n        self.lut = nn.Embedding(vocab, d_model)\n        self.d_model = d_model\n\n    def forward(self, x):\n        return self.lut(x) * math.sqrt(self.d_model)\n\n\nclass PositionalEncoding(nn.Module):\n    \"Implement the PE function.\"\n    def __init__(self, d_model, dropout, max_len=5000):\n        super(PositionalEncoding, self).__init__()\n        self.dropout = nn.Dropout(p=dropout)\n        \n        # Compute the positional encodings once in log space.\n        pe = torch.zeros(max_len, d_model)\n        #position = torch.arange(0, max_len).unsqueeze(1)\n        position = torch.arange(0, max_len).unsqueeze(1).float()\n        #https://stackoverflow.com/questions/52922445/runtimeerror-exp-not-implemented-for-torch-longtensor\n        #div_term = torch.exp(torch.arange(0, d_model, 2) *\n        #                     -(math.log(10000.0) / d_model))\n        div_term = torch.exp(torch.arange(0., d_model, 2) * -(math.log(10000.0) / d_model))        \n        pe[:, 0::2] = torch.sin(position * div_term)\n        pe[:, 1::2] = torch.cos(position * div_term)\n        pe = pe.unsqueeze(0)\n        self.register_buffer('pe', pe)\n        \n    def forward(self, x):\n        x = x + Variable(self.pe[:, :x.size(1)], \n                         requires_grad=False)\n        return self.dropout(x)\n\n\ndef make_model(src_vocab, tgt_vocab, N=6, \n               d_model=512, d_ff=2048, h=8, dropout=0.1):\n    \"Helper: Construct a model from hyperparameters.\"\n    c = copy.deepcopy\n    attn = MultiHeadedAttention(h, d_model)\n    ff = PositionwiseFeedForward(d_model, d_ff, dropout)\n    position = PositionalEncoding(d_model, dropout)\n    model = EncoderDecoder(\n        Encoder(EncoderLayer(d_model, c(attn), c(ff), dropout), N),\n        Decoder(DecoderLayer(d_model, c(attn), c(attn), \n                             c(ff), dropout), N),\n        nn.Sequential(Embeddings(d_model, src_vocab), c(position)),\n        nn.Sequential(Embeddings(d_model, tgt_vocab), c(position)),\n        Generator(d_model, tgt_vocab))\n    \n    # This was important from their code. \n    # Initialize parameters with Glorot / fan_avg.\n    for p in model.parameters():\n        if p.dim() > 1:\n            nn.init.xavier_uniform_(p)\n    return model\n\n\ndef get_encoder(src_vocab, N=6, \n               d_model=512, d_ff=2048, \n               h=8, dropout=0.1):\n    \"Helper: Construct a model from hyperparameters.\"\n    c = copy.deepcopy\n    attn = MultiHeadedAttention(h, d_model)\n    ff = PositionwiseFeedForward(d_model, d_ff, dropout)\n    position = PositionalEncoding(d_model, dropout)\n    model = Encoder(EncoderLayer(d_model, c(attn), c(ff), dropout), N)\n    # This was important from their code. \n    # Initialize parameters with Glorot / fan_avg.\n    for p in model.parameters():\n        if p.dim() > 1:\n            nn.init.xavier_uniform_(p)\n    return model\n  \n"
  },
  {
    "path": "utils/lele/layers/util.py",
    "content": "\"\"\"\r\nAssorted utilities for working with neural networks in AllenNLP.\r\n\"\"\"\r\nfrom collections import defaultdict\r\nfrom typing import Dict, List, Optional, Any, Tuple, Callable\r\nimport logging\r\nimport itertools\r\nimport math\r\nimport torch\r\nfrom torch.autograd import Variable\r\n\r\ndef get_lengths_from_binary_sequence_mask(mask: torch.Tensor):\r\n    \"\"\"\r\n    Compute sequence lengths for each batch element in a tensor using a\r\n    binary mask.\r\n    Parameters\r\n    ----------\r\n    mask : torch.Tensor, required.\r\n        A 2D binary mask of shape (batch_size, sequence_length) to\r\n        calculate the per-batch sequence lengths from.\r\n    Returns\r\n    -------\r\n    A torch.LongTensor of shape (batch_size,) representing the lengths\r\n    of the sequences in the batch.\r\n    \"\"\"\r\n    return mask.long().sum(-1)\r\n\r\n\r\ndef sort_batch_by_length(tensor: torch.autograd.Variable,\r\n                         sequence_lengths: torch.autograd.Variable):\r\n    \"\"\"\r\n    Sort a batch first tensor by some specified lengths.\r\n    Parameters\r\n    ----------\r\n    tensor : Variable(torch.FloatTensor), required.\r\n        A batch first Pytorch tensor.\r\n    sequence_lengths : Variable(torch.LongTensor), required.\r\n        A tensor representing the lengths of some dimension of the tensor which\r\n        we want to sort by.\r\n    Returns\r\n    -------\r\n    sorted_tensor : Variable(torch.FloatTensor)\r\n        The original tensor sorted along the batch dimension with respect to sequence_lengths.\r\n    sorted_sequence_lengths : Variable(torch.LongTensor)\r\n        The original sequence_lengths sorted by decreasing size.\r\n    restoration_indices : Variable(torch.LongTensor)\r\n        Indices into the sorted_tensor such that\r\n        ``sorted_tensor.index_select(0, restoration_indices) == original_tensor``\r\n    permuation_index : Variable(torch.LongTensor)\r\n        The indices used to sort the tensor. This is useful if you want to sort many\r\n        tensors using the same ordering.\r\n    \"\"\"\r\n\r\n    if not isinstance(tensor, Variable) or not isinstance(sequence_lengths, Variable):\r\n        raise Exception(\"Both the tensor and sequence lengths must be torch.autograd.Variables.\")\r\n\r\n    sorted_sequence_lengths, permutation_index = sequence_lengths.sort(0, descending=True)\r\n    sorted_tensor = tensor.index_select(0, permutation_index)\r\n\r\n    # This is ugly, but required - we are creating a new variable at runtime, so we\r\n    # must ensure it has the correct CUDA vs non-CUDA type. We do this by cloning and\r\n    # refilling one of the inputs to the function.\r\n    index_range = sequence_lengths.data.clone().copy_(torch.arange(0, len(sequence_lengths)))\r\n    # This is the equivalent of zipping with index, sorting by the original\r\n    # sequence lengths and returning the now sorted indices.\r\n    index_range = Variable(index_range.long())\r\n    _, reverse_mapping = permutation_index.sort(0, descending=False)\r\n    restoration_indices = index_range.index_select(0, reverse_mapping)\r\n    return sorted_tensor, sorted_sequence_lengths, restoration_indices, permutation_index\r\n\r\n\r\ndef get_final_encoder_states(encoder_outputs: torch.Tensor,\r\n                             mask: torch.Tensor,\r\n                             bidirectional: bool = False) -> torch.Tensor:\r\n    \"\"\"\r\n    Given the output from a ``Seq2SeqEncoder``, with shape ``(batch_size, sequence_length,\r\n    encoding_dim)``, this method returns the final hidden state for each element of the batch,\r\n    giving a tensor of shape ``(batch_size, encoding_dim)``.  This is not as simple as\r\n    ``encoder_outputs[:, -1]``, because the sequences could have different lengths.  We use the\r\n    mask (which has shape ``(batch_size, sequence_length)``) to find the final state for each batch\r\n    instance.\r\n    Additionally, if ``bidirectional`` is ``True``, we will split the final dimension of the\r\n    ``encoder_outputs`` into two and assume that the first half is for the forward direction of the\r\n    encoder and the second half is for the backward direction.  We will concatenate the last state\r\n    for each encoder dimension, giving ``encoder_outputs[:, -1, :encoding_dim/2]`` concated with\r\n    ``encoder_outputs[:, 0, encoding_dim/2:]``.\r\n    \"\"\"\r\n    # These are the indices of the last words in the sequences (i.e. length sans padding - 1).  We\r\n    # are assuming sequences are right padded.\r\n    # Shape: (batch_size,)\r\n    last_word_indices = mask.sum(1).long() - 1\r\n    batch_size, _, encoder_output_dim = encoder_outputs.size()\r\n    expanded_indices = last_word_indices.view(-1, 1, 1).expand(batch_size, 1, encoder_output_dim)\r\n    # Shape: (batch_size, 1, encoder_output_dim)\r\n    final_encoder_output = encoder_outputs.gather(1, expanded_indices)\r\n    final_encoder_output = final_encoder_output.squeeze(1)  # (batch_size, encoder_output_dim)\r\n    if bidirectional:\r\n        final_forward_output = final_encoder_output[:, :(encoder_output_dim // 2)]\r\n        final_backward_output = encoder_outputs[:, 0, (encoder_output_dim // 2):]\r\n        final_encoder_output = torch.cat([final_forward_output, final_backward_output], dim=-1)\r\n    return final_encoder_output\r\n\r\n\r\ndef get_dropout_mask(dropout_probability: float, tensor_for_masking: torch.autograd.Variable):\r\n    \"\"\"\r\n    Computes and returns an element-wise dropout mask for a given tensor, where\r\n    each element in the mask is dropped out with probability dropout_probability.\r\n    Note that the mask is NOT applied to the tensor - the tensor is passed to retain\r\n    the correct CUDA tensor type for the mask.\r\n    Parameters\r\n    ----------\r\n    dropout_probability : float, required.\r\n        Probability of dropping a dimension of the input.\r\n    tensor_for_masking : torch.Variable, required.\r\n    Returns\r\n    -------\r\n    A torch.FloatTensor consisting of the binary mask scaled by 1/ (1 - dropout_probability).\r\n    This scaling ensures expected values and variances of the output of applying this mask\r\n     and the original tensor are the same.\r\n    \"\"\"\r\n    binary_mask = tensor_for_masking.clone()\r\n    binary_mask.data.copy_(torch.rand(tensor_for_masking.size()) > dropout_probability)\r\n    # Scale mask by 1/keep_prob to preserve output statistics.\r\n    dropout_mask = binary_mask.float().div(1.0 - dropout_probability)\r\n    return dropout_mask\r\n    \r\ndef block_orthogonal(tensor: torch.Tensor,\r\n                     split_sizes: List[int],\r\n                     gain: float = 1.0) -> None:\r\n        \"\"\"\r\n        An initializer which allows initializing model parameters in \"blocks\". This is helpful\r\n        in the case of recurrent models which use multiple gates applied to linear projections,\r\n        which can be computed efficiently if they are concatenated together. However, they are\r\n        separate parameters which should be initialized independently.\r\n        Parameters\r\n        ----------\r\n        tensor : ``torch.Tensor``, required.\r\n            A tensor to initialize.\r\n        split_sizes : List[int], required.\r\n            A list of length ``tensor.ndim()`` specifying the size of the\r\n            blocks along that particular dimension. E.g. ``[10, 20]`` would\r\n            result in the tensor being split into chunks of size 10 along the\r\n            first dimension and 20 along the second.\r\n        gain : float, optional (default = 1.0)\r\n            The gain (scaling) applied to the orthogonal initialization.\r\n        \"\"\"\r\n\r\n        if isinstance(tensor, Variable):\r\n        # in pytorch 4.0, Variable equals Tensor\r\n        #    block_orthogonal(tensor.data, split_sizes, gain)\r\n        #else:\r\n            sizes = list(tensor.size())\r\n            if any([a % b != 0 for a, b in zip(sizes, split_sizes)]):\r\n                raise ConfigurationError(\"tensor dimensions must be divisible by their respective \"\r\n                                         \"split_sizes. Found size: {} and split_sizes: {}\".format(sizes, split_sizes))\r\n            indexes = [list(range(0, max_size, split))\r\n                       for max_size, split in zip(sizes, split_sizes)]\r\n            # Iterate over all possible blocks within the tensor.\r\n            for block_start_indices in itertools.product(*indexes):\r\n                # A list of tuples containing the index to start at for this block\r\n                # and the appropriate step size (i.e split_size[i] for dimension i).\r\n                index_and_step_tuples = zip(block_start_indices, split_sizes)\r\n                # This is a tuple of slices corresponding to:\r\n                # tensor[index: index + step_size, ...]. This is\r\n                # required because we could have an arbitrary number\r\n                # of dimensions. The actual slices we need are the\r\n                # start_index: start_index + step for each dimension in the tensor.\r\n                block_slice = tuple([slice(start_index, start_index + step)\r\n                                     for start_index, step in index_and_step_tuples])\r\n                tensor[block_slice] = torch.nn.init.orthogonal_(tensor[block_slice].contiguous(), gain=gain)\r\n"
  },
  {
    "path": "utils/lele/losses/__init__.py",
    "content": "from lele.losses.losses import * \n"
  },
  {
    "path": "utils/lele/losses/losses.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   losses.py\n#        \\author   chenghuige  \n#          \\date   2018-11-01 17:09:04.464856\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport torch\n\nclass BiLMCriterion(object):\n  def __init__(self):\n    self.loss_fn = torch.nn.CrossEntropyLoss(reduction='sum')\n\n  def forward(self, model, x, y, training=False):\n    fw_y = torch.zeros_like(y)\n    bw_y = torch.zeros_like(y)\n    # Notice tf not support item assignment, even eager\n    fw_y[:, 0:-1] = y[:, 1:]\n    bw_y[:, 1:] = y[:, 0:-1]\n\n    # print(fw_y)\n    # print(bw_y)\n\n    num_targets = torch.sum((fw_y > 0).long())\n    \n    fw_mask = fw_y > 0\n    bw_mask = bw_y > 0\n\n    # -1 to ignore padding index 0\n    fw_y = fw_y.masked_select(fw_mask) - 1\n    bw_y = bw_y.masked_select(bw_mask) - 1\n\n    y_ = model.encode(x, training=training)\n    fw_y_, bw_y_ = y_.chunk(2, -1)\n\n    fw_y_ = fw_y_.masked_select(fw_mask.unsqueeze(-1)).view(-1, model.num_units)\n    bw_y_ = bw_y_.masked_select(bw_mask.unsqueeze(-1)).view(-1, model.num_units)\n\n    fw_y_ = model.encode.hidden2tag(fw_y_)\n    bw_y_ = model.encode.hidden2tag(bw_y_)\n\n    if num_targets > 0:\n      fw_loss = self.loss_fn(fw_y_, fw_y)\n      bw_loss = self.loss_fn(bw_y_, bw_y)\n      loss = (fw_loss + bw_loss) / 2.\n      #print(y.shape, num_targets, fw_loss, bw_loss, loss)\n      loss = loss / num_targets.float()\n    else:\n      loss = torch.tensor(0.0).cuda()\n\n    return loss"
  },
  {
    "path": "utils/lele/ops/__init__.py",
    "content": "from lele.ops.ops import *\n"
  },
  {
    "path": "utils/lele/ops/ops.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   ops.py\n#        \\author   chenghuige  \n#          \\date   2018-09-30 21:44:39.920227\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport numpy as np\nimport torch\nfrom torch.autograd import Variable\n\n# https://github.com/rdipietro/pytorch/blob/4c00324affb8c6d53d4362e321ea0e99ede6cfde/torch/nn/utils/rnn.py\ndef reverse_padded_sequence(inputs, lengths, batch_first=False):\n    \"\"\"Reverses sequences according to their lengths.\n    Inputs should have size ``T x B x *`` if ``batch_first`` is False, or\n    ``B x T x *`` if True. T is the length of the longest sequence (or larger),\n    B is the batch size, and * is any number of dimensions (including 0).\n    Arguments:\n        inputs (Variable): padded batch of variable length sequences.\n        lengths (list[int]): list of sequence lengths\n        batch_first (bool, optional): if True, inputs should be B x T x *.\n    Returns:\n        A Variable with the same size as inputs, but with each sequence\n        reversed according to its length.\n    \"\"\"\n    if batch_first:\n        inputs = inputs.transpose(0, 1)\n    max_length, batch_size = inputs.size(0), inputs.size(1)\n    if len(lengths) != batch_size:\n        raise ValueError('inputs is incompatible with lengths.')\n    ind = [list(reversed(range(0, length))) + list(range(length, max_length))\n           for length in lengths]\n    ind = Variable(torch.LongTensor(ind).transpose(0, 1))\n    for dim in range(2, inputs.dim()):\n        ind = ind.unsqueeze(dim)\n    ind = ind.expand_as(inputs)\n    if inputs.is_cuda:\n        ind = ind.cuda(inputs.get_device())\n    reversed_inputs = torch.gather(inputs, 0, ind)\n    if batch_first:\n        reversed_inputs = reversed_inputs.transpose(0, 1)\n    return reversed_inputs\n\n\n#https://discuss.pytorch.org/t/how-to-tile-a-tensor/13853/4\ndef tile(a, dim, n_tile):\n    init_dim = a.size(dim)\n    repeat_idx = [1] * a.dim()\n    repeat_idx[dim] = n_tile\n    a = a.repeat(*(repeat_idx))\n    order_index = torch.LongTensor(np.concatenate([init_dim * np.arange(n_tile) + i for i in range(init_dim)])).cuda()\n    return torch.index_select(a, dim, order_index)\n  \n"
  },
  {
    "path": "utils/lele/training/__init__.py",
    "content": "import lele.training.optimizers\n"
  },
  {
    "path": "utils/lele/training/optimizers.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   optimizers.py\n#        \\author   chenghuige  \n#          \\date   2018-10-29 07:06:55.090940\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys \nimport os\n\n# http://nlp.seas.harvard.edu/2018/04/03/attention.html\n\nclass NoamOpt:\n    \"Optim wrapper that implements rate.\"\n    def __init__(self, model_size, factor, warmup, optimizer):\n        self.optimizer = optimizer\n        self._step = 0\n        self.warmup = warmup\n        self.factor = factor\n        self.model_size = model_size\n        self._rate = 0\n        self.param_groups = self.optimizer.param_groups\n        \n    def step(self):\n        \"Update parameters and rate\"\n        self._step += 1\n        rate = self.rate()\n        for p in self.optimizer.param_groups:\n            p['lr'] = rate\n        self._rate = rate\n        self.optimizer.step()\n        \n    def rate(self, step = None):\n        \"Implement `lrate` above\"\n        if step is None:\n            step = self._step\n        return self.factor * \\\n            (self.model_size ** (-0.5) *\n            min(step ** (-0.5), step * self.warmup ** (-1.5)))\n\n    def zero_grad(self):\n      self.optimizer.zero_grad()\n\n    def state_dict(self):\n      return self.optimizer.state_dict()\n\n    def load_state_dict(self, x):\n        return self.optimizer.load_state_dict(x)\n        \ndef get_std_opt(model):\n    return NoamOpt(model.src_embed[0].d_model, 2, 4000,\n            torch.optim.Adam(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9))  \n\ndef lr_poly(base_lr, iter, max_iter, end_learning_rate, power):\n    return max((base_lr - end_learning_rate) * ((1-float(iter)/max_iter)**(power)), end_learning_rate)\n\nclass BertOpt:\n    \"Optim wrapper that implements rate.\"\n    def __init__(self, lr, min_lr, num_train_steps, warmup, optimizer):\n        self.optimizer = optimizer\n        self._step = 0\n        self.warmup = warmup\n        self._rate = 0\n        self.lr = lr\n        self.ori_min_lr = min_lr\n        self.min_lr = min_lr\n        self.num_train_steps = num_train_steps\n        self.param_groups = self.optimizer.param_groups\n        \n    def step(self):\n        \"Update parameters and rate\"\n        self._step += 1\n        rate = self.rate()\n        for p in self.optimizer.param_groups:\n            p['lr'] = rate\n        self._rate = rate\n        self.optimizer.step()\n        \n    def rate(self, step = None):\n        \"Implement `lrate` above\"\n        if step is None:\n            step = self._step\n            \n        warmup_percent_done = step / self.warmup\n        warmup_learning_rate = self.lr * warmup_percent_done\n\n        is_warmup = step < self.warmup\n        learning_rate = lr_poly(self.lr, step, self.num_train_steps, self.min_lr, 1.)\n        learning_rate = ((1.0 - is_warmup) * learning_rate + is_warmup * warmup_learning_rate)\n        #print('-----------------', is_warmup, warmup_percent_done, warmup_learning_rate, warmup_learning_rate)\n        return learning_rate\n\n    def zero_grad(self):\n        self.optimizer.zero_grad()\n\n    def state_dict(self):\n        return self.optimizer.state_dict()\n\n    def load_state_dict(self, x):\n        return self.optimizer.load_state_dict(x)\n\nif __name__ == '__main__':\n  import matplotlib.pyplot as plt \n  import numpy as np\n\n  opts = [NoamOpt(512, 1, 4000, None), \n          NoamOpt(512, 1, 8000, None),\n          NoamOpt(256, 1, 4000, None),\n          NoamOpt(200, 2, 4000, None),\n          NoamOpt(256, 2, 4000, None),\n          NoamOpt(300, 2, 4000, None),\n          NoamOpt(128, 2, 4000, None)]\n  plt.plot(np.arange(1, 20000), [[opt.rate(i) for opt in opts] for i in range(1, 20000)])\n  plt.legend([\"512:4000\", \"512:8000\", \"256:4000\", \"200:2:4000\",  \"256:2:4000\", \"300:2:4000\", \"128:2:4000\"])\n\n  for i in range(1, 40000, 1000):\n      print(i, NoamOpt(200, 2, 2000, None).rate(i))\n\n  plt.savefig('/home/gezi/tmp/lr.png')           \n"
  },
  {
    "path": "utils/lele/util.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   util.py\n#        \\author   chenghuige  \n#          \\date   2018-10-17 06:52:08.997327\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport torch\nfrom torch import nn\n#from torch.utils.data import Dataset, ConcatDataset\n\nimport copy\nimport traceback\nimport numpy as np\n\nimport gezi \nlogging = gezi.logging\n\ndef adjust_lrs(x, ratio=None, name='learning_rate_weights'):\n  import tensorflow as tf\n  if ratio is None:\n    ratios = tf.get_collection(name)[-1].numpy()\n    # TODO will this hurt performance ? change to use learning rate weights without tf dependence?\n    ratios = torch.from_numpy(ratios).cuda()\n    x = x * ratios + x.detach() * (1 - ratios)\n  else:\n    x = x * ratio + x.detach() * (1 - ratio)\n  return x \n\n\ndef load(model, path):\n  try:\n    checkpoint = torch.load(path)\n    state = checkpoint['state_dict']   \n    \n    model_ = model.module if hasattr(model, 'module') else model\n    new_state = {}\n    for key, val in state.items():\n      if key in model_.state_dict():\n        new_state[key] = val\n\n    logging.info('Updated %d keys from checkpoint %s, eopoch:%d, step:%d' % (len(new_state), path, checkpoint['epoch'], checkpoint['step']))\n    new_params = model_.state_dict()\n    new_params.update(new_state)\n    model_.load_state_dict(new_params)\n    \n    model.eval()\n\n    updated_params = []\n    for name, param in model_.named_parameters():\n      if name in new_state:\n        updated_params.append(param)\n\n    return checkpoint, updated_params \n  except Exception:\n    logging.info(traceback.print_exc())\n    return None, []\n\ndef clones(module, N):\n    \"Produce N identical layers.\"\n    return nn.ModuleList([copy.deepcopy(module) for _ in range(N)])\n\ntry:\n  import torch \n  device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nexcept Exception:\n  pass\nimport numpy as np \n\ndef torch_(x):\n  for dim in x.shape:\n    if dim == 0:\n      return x\n\n  #x = x.numpy()\n  if x.dtype == np.int64 or x.dtype == np.int32 or x.dtype == np.float32 or x.dtype == np.float64:\n    x = torch.from_numpy(x)\n    #if torch.cuda.is_available():\n      #x = x.cuda()\n    #x = x.cuda()\n    x = x.to(device)\n\n  return x\n\ndef to_torch(x, y=None):\n  if y is not None:\n    y = torch_(y)\n\n  for key in x:\n    x[key] = torch_(x[key])\n  if y is None:\n    return x\n  else:\n    return x, y\n\n#---------------padding input data\n\n#https://discuss.pytorch.org/t/dataloader-for-various-length-of-data/6418/12\n\ndef pad_tensor(vec, pad, dim):\n    \"\"\"\n    args:\n        vec - tensor to pad\n        pad - the size to pad to\n        dim - dimension to pad\n\n    return:\n        a new tensor padded to 'pad' in dimension 'dim'\n    \"\"\"\n    pad_size = list(vec.shape)\n    pad_size[dim] = pad - vec.size(dim)\n    return torch.cat([vec, torch.zeros(*pad_size, dtype=vec.dtype)], dim=dim)\n\nclass PadCollate2:\n    \"\"\"\n    a variant of callate_fn that pads according to the longest sequence in\n    a batch of sequences\n    \"\"\"\n\n    def __init__(self, dim=0):\n        \"\"\"\n        args:\n            dim - the dimension to be padded (dimension of time in sequences)\n        \"\"\"\n        self.dim = dim\n        \n    def pad_collate(self, batch):\n        \"\"\"\n        args:\n            batch - list of (tensor, label)\n\n        reutrn:\n            xs - a tensor of all examples in 'batch' after padding\n            ys - a LongTensor of all labels in batch\n        \"\"\"\n        # find longest sequence\n        max_len = max([torch.Tensor(x[0]).shape[self.dim] for x in batch])\n        #print('----------', max_len)\n        # pad according to max_len\n        batch = [(pad_tensor(torch.Tensor(x[0]), pad=max_len, dim=self.dim), x[1]) for x in batch]\n        # stack all\n        xs = torch.stack([torch.Tensor(x[0]) for x in batch], dim=0)\n        ys = torch.Tensor([x[1] for x in batch])\n        return xs, ys\n\n    def __call__(self, batch):\n        return self.pad_collate(batch)\n      \nclass PadCollate:\n    \"\"\"\n    a variant of callate_fn that pads according to the longest sequence in\n    a batch of sequences\n    \"\"\"\n\n    def __init__(self, dim=0):\n        \"\"\"\n        args:\n            dim - the dimension to be padded (dimension of time in sequences)\n        \"\"\"\n        self.dim = dim\n        \n    def pad_collate(self, batch):\n        \"\"\"\n        args:\n            batch - list of (tensor, label)\n\n        reutrn:\n            xs - a tensor of all examples in 'batch' after padding\n            ys - a LongTensor of all labels in batch\n        \"\"\"\n        # find longest sequence\n        max_len = max([x[0].size(self.dim) for x in batch])\n        #print('----------', max_len)\n        # pad according to max_len\n        batch = [(pad_tensor(x[0], pad=max_len, dim=self.dim), x[1]) for x in batch]\n        # stack all\n        xs = torch.stack([x[0] for x in batch], dim=0)\n        ys = torch.Tensor([x[1] for x in batch])\n        return xs, ys\n\n    def __call__(self, batch):\n        return self.pad_collate(batch)\n\nclass DictPadCollate2:\n    \"\"\"\n    a variant of callate_fn that pads according to the longest sequence in\n    a batch of sequences\n    \"\"\"\n\n    def __init__(self, dim=0):\n        \"\"\"\n        args:\n            dim - the dimension to be padded (dimension of time in sequences)\n        \"\"\"\n        self.dim = dim\n        \n    def pad_collate(self, batch):\n      ys = [None] * len(batch)\n      input = {}\n      ys[0] = batch[0][1]\n      max_len = {}\n      \n      for key, val in batch[0][0].items():\n        if isinstance(val, list):\n          if type(val[0]) == int:\n            val = torch.from_numpy(np.array(val))\n          else:\n            val = torch.from_numpy(np.array(val)).float()\n          max_len[key] = len(val)\n        input[key] = [val] * len(batch)\n       \n      for i in range(1, len(batch)):\n        ys[i] = batch[i][1]\n        for key, val in batch[i][0].items():\n          if isinstance(val, list):\n            if type(val[0]) == int:\n              val = torch.from_numpy(np.array(val))\n            else:\n              val = torch.from_numpy(np.array(val)).float()\n            if len(val) > max_len[key]:\n              max_len[key] = len(val)\n          input[key][i] = val\n          \n      for key, val_list in input.items():\n        if key in max_len:\n          for i in range(len(val_list)):\n            val_list[i] = pad_tensor(val_list[i], pad=max_len[key], dim=self.dim)\n            #print(i, val_list[i].shape, max_len[key])\n    \n          input[key] = torch.stack(val_list, dim=0)\n        else:\n          #... TODO why np.arry.dtype not dp.str_ but <U3 <U4 ?\n          input[key] = np.array(input[key])\n          if type(input[key][0]) != np.str_:\n            input[key] = torch.from_numpy(input[key])\n      ys = torch.from_numpy(np.array(ys))\n      return input, ys\n        \n    def __call__(self, batch):\n        return self.pad_collate(batch)\n      \nclass DictPadCollate:\n    \"\"\"\n    a variant of callate_fn that pads according to the longest sequence in\n    a batch of sequences\n    \"\"\"\n\n    def __init__(self, dim=0):\n        \"\"\"\n        args:\n            dim - the dimension to be padded (dimension of time in sequences)\n        \"\"\"\n        self.dim = dim\n        \n    def pad_collate(self, batch):\n      ys = [None] * len(batch)\n      input = {}\n      ys[0] = batch[0][1]\n      max_len = {}\n      \n      for key, val in batch[0][0].items():\n        if not isinstance(val, str):\n          max_len[key] = val.size(self.dim)\n        input[key] = [val] * len(batch)\n       \n      for i in range(1, len(batch)):\n        ys[i] = batch[i][1]\n        for key, val in batch[i][0].items():\n          if not isinstance(val, str):\n            if len(val) > max_len[key]:\n              max_len[key] = val.size(self.dim)\n          input[key][i] = val\n          \n      for key, val_list in input.items():\n        if key in max_len:\n          for i in range(len(val_list)):\n            val_list[i] = pad_tensor(val_list[i], pad=max_len[key], dim=self.dim)  \n          input[key] = torch.stack(val_list, dim=0)\n        else:\n          input[key] = np.array(input[key])\n\n      #list of tensor ->\n      ys = torch.stack(ys, dim=0)\n      return input, ys\n        \n    def __call__(self, batch):\n        return self.pad_collate(batch)\n"
  },
  {
    "path": "utils/melt/__init__.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport warnings\nwarnings.simplefilter(\"ignore\", RuntimeWarning) \nwarnings.filterwarnings(\"ignore\", category=FutureWarning)\n\ntry:\n  import matplotlib\n  matplotlib.use('Agg')\nexcept Exception:\n  pass\n\nimport tensorflow as tf \nimport traceback\n\nimport sys\nprint('tensorflow_version:', tf.__version__, file=sys.stderr) \n\ntry:\n  import torch\n  print('torch_version:', torch.__version__, file=sys.stderr) \nexcept Exception:\n\tprint(\"torch not found\")\n\nfrom melt.training import training as train \nimport melt.training \n\nimport melt.utils\nfrom melt.utils import logging\nfrom melt.utils import EmbeddingSim\n\nfrom melt.util import *\nfrom melt.ops import *\nfrom melt.variable import * \nfrom melt.tfrecords import * \nfrom melt.tfrecords.dataset import Dataset\n\nfrom melt.inference import *\n\nimport melt.layers\n\nimport melt.slim2\n\nimport melt.flow\nfrom melt.flow import projector_config\n\nimport melt.metrics \nfrom melt.metrics import *\n\ntry:\n  import melt.apps\n  from melt.apps.train import *\nexcept Exception:\n\tprint(traceback.format_exc(), file=sys.stderr)\n\tpass\n\nimport melt.rnn \nimport melt.cnn \nimport melt.encoder \n\nimport melt.seq2seq \nimport melt.image  \nfrom melt.image import *\n\nimport melt.losses  \n\nimport melt.eager \n\nimport melt.torch \n"
  },
  {
    "path": "utils/melt/apps/__init__.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-08-17 10:28:41.619685\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n#import melt.apps.train\nfrom melt.apps.train import *\n\nimport melt.apps.image_processing \n"
  },
  {
    "path": "utils/melt/apps/image_processing.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   image_processing.py\n#        \\author   chenghuige  \n#          \\date   2017-04-07 08:49:43.118136\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport melt\n# from melt import logging\n\nflags = tf.app.flags\n#import gflags as flags\nFLAGS = flags.FLAGS\n\nimage_processing_fn = None\n\ndef init(image_model_name=None, feature_name=None, num_classes=None, preprocess_image=True, im2text_prcocessing=False):\n  global image_processing_fn\n  if image_processing_fn is None:\n    assert image_model_name is not None\n    if im2text_prcocessing:\n      raise ValueError('not use im2txt anymore')\n      image_processing_fn = melt.image.image_processing.create_image2feature_fn(image_model_name)\n    else:\n      image_processing_fn = melt.image.image_processing.create_image2feature_slim_fn(image_model_name, \n                                                                                     feature_name=feature_name,\n                                                                                     num_classes=num_classes,\n                                                                                     preprocess_image=preprocess_image)\n  return image_processing_fn\n"
  },
  {
    "path": "utils/melt/apps/read.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2016-08-17 10:30:16.621213\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport melt\n\nflags = tf.app.flags\n#import gflags as flags\nFLAGS = flags.FLAGS\n\n'''\ndeprecated not used\n'''\n\nflags.DEFINE_integer('num_epochs', 0, 'Number of epochs to run trainer.')\nflags.DEFINE_integer('num_preprocess_threads', 12, '')\nflags.DEFINE_boolean('batch_join', True, '')\nflags.DEFINE_boolean('shuffle', True, '')\nflags.DEFINE_integer('min_after_dequeue', 20000, '')\n\ndef sparse_inputs(files, decode, batch_size=64):\n  return melt.tfrecords.read_sparse.inputs(files, \n                                           decode, \n                                           batch_size=batch_size, \n                                           num_epochs=FLAGS.num_epochs,\n                                           num_preprocess_threads=FLAGS.num_preprocess_threads, \n                                           shuffle=FLAGS.shuffle,\n                                           batch_join=FLAGS.batch_join,\n                                           min_after_dequeue=FLAGS.min_after_dequeue)\n\ndef inputs(files, decode, batch_size=64):\n  return melt.tfrecords.read.inputs(files, \n                                    decode, \n                                    batch_size=batch_size, \n                                    num_epochs=FLAGS.num_epochs,\n                                    num_preprocess_threads=FLAGS.num_preprocess_threads, \n                                    shuffle=FLAGS.shuffle,\n                                    batch_join=FLAGS.batch_join,\n                                    min_after_dequeue=FLAGS.min_after_dequeue)\n\n"
  },
  {
    "path": "utils/melt/apps/train.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2016-08-17 10:30:20.286494\n#   \\Description   METRIC=1 python ....    just run metric eval\n# ==============================================================================\n\n\"\"\"\nnot supporting averaging and multi gpu yet  @TODO\n [`tf.moving_average_variables()`](../../api_docs/python/state_ops.md#moving_average_variables)\n\n here what we do is \n create train_op from loss\n and may be using multi gpu deal\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n__pacage__ = None \n\nimport sys \nimport os \nimport inspect\n\nimport gezi\nimport melt  \n\nfrom tensorflow.python import debug as tf_debug\nimport tensorflow.contrib.slim as slim\n\nfrom tqdm import tqdm\nimport numpy as np\n\n#or from melt.utils import logging\nimport melt.utils.logging as logging\n#import logging\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nos.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \ntfe = tf.contrib.eager\n\nif sys.version_info > (3,):\n  long = int\n\nimport traceback\n\n# new tf seems to try to use absl which has def of log_dir TODO\ntry:\n  flags.DEFINE_string('log_dir', None, '''if none will set to model_dir\n                                        ''')\nexcept Exception:\n  pass\n#-------input data\nflags.DEFINE_integer('batch_size', 32, 'Batch size. default as im2text default')\nflags.DEFINE_integer('eval_batch_size', None, 'Batch size fore eval')\n\n#-------flow\nflags.DEFINE_integer('num_epochs', 0, '''Number of epochs to run trainer.\n                                         0 means run forever epochs,\n                                         -1 mens you want to just run 1 step and stop!, usefull when you want to do eval all once''')\nflags.DEFINE_integer('num_steps', 0, '''Number of steps to run trainer. 0 means run forever, \n                                        -1 means you just want to build graph and save without training(changing model value)''')\n#-------model\nflags.DEFINE_string('model_dir', None, '')\nflags.DEFINE_boolean('save_model', True, '')\nflags.DEFINE_float('save_interval_epochs', 1, 'if 0 will not save, by default 1 epoch 1 model in modeldir/epoch, you can change to 2, 0.1 etc')\nflags.DEFINE_float('save_interval_seconds', 0, 'model/checkpoint save interval by n seconds, if > 0 will use this other wise use save_interval_hours')\nflags.DEFINE_float('save_interval_hours', 10000, \"\"\"model/checkpoint save interval by n hours\"\"\")\nflags.DEFINE_float('save_interval_steps', 1000, 'model/checkpoint save interval steps')\nflags.DEFINE_bool('freeze_graph', True, '''if True like image caption set this to True, will load model faster when inference,\n                                            but sometimes it is slow to freeze, might due to tf bug, then you can set it to False,\n                                            if you do not need inference also set to False to speed up training,\n                                            TODO FIXME for cudnn right now if not set feeze graph can not load, is a bug of melt ?''')\nflags.DEFINE_integer('max_models_keep', 2, 'keep recent n models, default 2 for safe')\nflags.DEFINE_boolean('restore_from_latest', True, 'more safe to restore from recent but not latest')\n\n#--------show\nflags.DEFINE_integer('interval_steps', 100, '')\nflags.DEFINE_integer('valid_interval_steps', 100,  \"\"\"for training suggest 10000, \n                                                     you can check evaluate interval time \n                                                     and evaluate once time the ratio below 0.1\"\"\")\nflags.DEFINE_integer('metric_eval_interval_steps', 0, 'if > 0 need to be valid_interval_steps * n')\nflags.DEFINE_boolean('metric_eval', True, '')\n\nflags.DEFINE_float('train_interval_epochs', 1, '')\nflags.DEFINE_float('valid_interval_epochs', 1, '')\nflags.DEFINE_float('test_interval_epochs', 1, '')\nflags.DEFINE_float('inference_interval_epochs', 1, '')\nflags.DEFINE_boolean('write_during_train', True, '')\n\nflags.DEFINE_integer('eval_loops', 1, 'set to max inorder to hack for evaluation..')\n\n#----------optimize\n#flags.DEFINE_string('optimizer', 'adadelta', 'follow squad of ukhst https://www.quora.com/Why-is-AdaDelta-not-favored-in-Deep-Learning-communities-while-AdaGrad-is-preferred-by-many-over-other-SGD-variants')\nflags.DEFINE_string('optimizer', 'adam', 'follow squad of ukhst https://www.quora.com/Why-is-AdaDelta-not-favored-in-Deep-Learning-communities-while-AdaGrad-is-preferred-by-many-over-other-SGD-variants')\nflags.DEFINE_float('momentum', 0.9, 'follow cifar10 default')\nflags.DEFINE_float('opt_epsilon', 1e-6, 'follow squad of ukhst')\n# flags.DEFINE_float('learning_rate', 0.5, \"\"\"follow squad of ukhst\n#                                             Initial learning rate. for adgrad especially, \n#                                             notice keras set for adgrad 0.01 \n#                                             but seems bad perf hard to converge for some seq2seq/lstm training\n#                                             see textsum/train/shangpinming/seq2seq-gen-copy-switch.sh\"\"\")\nflags.DEFINE_float('learning_rate', 0.001, \"\"\"adam will be 0.001\n                                         default is adam default lr\"\"\")\nflags.DEFINE_float('min_learning_rate', 1e-6, 'min learning rate used for dyanmic eval metric decay')\nflags.DEFINE_float('learning_rate_start_factor', 1., '')\n\n#flags.DEFINE_float('learning_rate_decay_factor', 0.97, 'im2txt 0.5, follow nasnet using 0.97')\nflags.DEFINE_float('learning_rate_decay_factor', 0., 'im2txt 0.5, follow nasnet using 0.97')\nflags.DEFINE_boolean('dynamic_learning_rate', False, '')\nflags.DEFINE_integer('learning_rate_patience', None, 'might be 3 for 3 times eval loss no decay')\n\nflags.DEFINE_float('decay_start_epoch', 0., 'start decay from epoch')\nflags.DEFINE_float('num_epochs_per_decay', 2.4, 'follow nasnet')\nflags.DEFINE_integer('decay_start_step', 0, 'start decay from steps')\nflags.DEFINE_integer('num_steps_per_decay', 0, 'if 0 no effect, if > 0 then will not use this instead of num_epochs_per_decay')\nflags.DEFINE_string('learning_rate_values', None, 'like 0.1,0.05,0.005')\nflags.DEFINE_string('learning_rate_step_boundaries', None, 'like 10000,20000')\nflags.DEFINE_string('learning_rate_epoch_boundaries', None, 'like 10,30 or 10.5,30.6')\nflags.DEFINE_integer('num_learning_rate_weights', 0, '')\nflags.DEFINE_float('warmup_proportion', 0.1, '0.1')\nflags.DEFINE_float('warmup_epochs', None, '')\nflags.DEFINE_integer('warmup_steps', None, 'if set then warmup proportion not on effect, can be set like 2000')\nflags.DEFINE_float('num_decay_epochs', None, '')\n\n#cosine learning rate method\nflags.DEFINE_float('learning_rate_cosine_t_mul', 2., '')\nflags.DEFINE_float('learning_rate_cosine_m_mul', 1., '')\nflags.DEFINE_float('learning_rate_cosine_alpha', 0., '')\n\nflags.DEFINE_string('learning_rate_method', 'decay', 'decay or cosine')\n\n#flags.DEFINE_string('lr_ratios', None, '0.2,1,0.2,1,1,1')\nflags.DEFINE_boolean('use_finetune_step', False, '')\nflags.DEFINE_boolean('use_finetune2_step', False, '')\n\nflags.DEFINE_float('clip_gradients', 5.0, \"\"\"follow im2text as 5.0 default, \n                                          set to 1.0 in deeipiu/image_caption try sh ./train/flickr-rnn.sh, \n                                          will show perf from 900inst/s to 870ints/s and also slow convergence\"\"\")\nflags.DEFINE_boolean('optimize_has_scope', True, '')\n\n#----------train\nflags.DEFINE_boolean('train_only', False, '')\nflags.DEFINE_boolean('train_all', False, 'use for small dataset like competetion or standard dataset where use k folds for train/valid and use all k parts if set train_all==True')\nflags.DEFINE_string('work_mode', 'train', '')\nflags.DEFINE_integer('monitor_level', 2, '1 will monitor emb, 2 will monitor gradient')\nflags.DEFINE_integer('log_level', 0, '')\nflags.DEFINE_boolean('no_log', False, '')\n#flags.DEFINE_string('mode', 'train', 'or predict')\nflags.DEFINE_boolean('freeze_graph_collections', True, '')\n\nflags.DEFINE_boolean('use_tower_loss', True, '')\n\n#----------multi gpu\n##TODO be carefull to use mult gpu mode, since for some case it will casue performance lower then single gpu mode \n##especially for finetune image model or some models that will cause sess.run summary catch exception FIXME\n##also google paper lessons from 2015 coco caption contest show and tell model will have low performance also using \n##multi gpu so they use single gpu training\nflags.DEFINE_integer('num_gpus', 0, \"\"\"How many GPUs to use. set 0 to disable multi gpu mode\"\"\")\nflags.DEFINE_boolean('log_device_placement', False, \"\"\"Whether to log device placement.\"\"\")\nflags.DEFINE_boolean('batch_size_per_gpu', False, ''' per gpu batch size should be dived by gpu num ?\n                                                      True means, if num_gpus = 2, batch_size set 128, then each gpu with batch size 128, which means batch_size is actually batch_size_per_gpu\n                                                      means 256 insts per step actually, if num_gpus == 0, will try to read env info if you set like \n                                                      CUDA_VISIABLE_DIVICES=0,1 then actually will use 2 GPUS, and 256 insts per step also \n                                                      if not find CUDA_VISIABLE_DIVICES infoep then, just use 1 GPU, single gpu mode, 128 insts per step\n                                                      if num_gpus == 1, also 1GPU, 128 insts per step, but will use tower_loss with 1 gpu(mainly for test if tower_loss ok)\n                                                      not used much, so if you want use single gpu, just set num_gpus=0 \n                                                      if batch_size_per_gpu = False, with 2gpu, then it means each GPU will be of batch size 128 / 2 = 64, total insts \n                                                      are still 128 per step\n                                                      batch_size_per_gpu False is better for debug, all program, deal same num instances so better for comparation\n                                                      batch_size_per_gpu True is better for speed up, fully use multi gpu, like one gpu can only train batch 32(OOM for\n                                                      bigger batch_size) then 2 gpu can deal 2 * 32 instances per step\n                                                      For experiment simplicity, set it to True by default, same instances per step if increase gpu num\n                                                     ''') \nflags.DEFINE_string('variable_strategy', 'cpu', '')\n\n\n#----------scope\nflags.DEFINE_boolean('add_global_scope', True, '''default will add global scope as algo name,\n                      set to False incase you want to load some old model without algo scope''')\nflags.DEFINE_string('global_scope', '', '')\nflags.DEFINE_string('restore_include', None, '')\nflags.DEFINE_string('restore_exclude', None, '')\nflags.DEFINE_string('main_scope', 'main', 'or use other main_scope like run, this is mainly graph scope for varaible reuse')\n\n#----- cross fold\nflags.DEFINE_integer('fold', None, '')\nflags.DEFINE_integer('num_folds', None, '')\n\n#---------- input reader\nif tf.__version__ > '1.5':\n  flags.DEFINE_boolean('using_dataset', True, '')\nelse:\n  flags.DEFINE_boolean('using_dataset', False, '')\n  \nflags.DEFINE_string('buckets', None, 'empty meaning not use, other wise looks like 5,10,15,30')\nflags.DEFINE_string('batch_sizes', None, '')\nflags.DEFINE_integer('length_index', 1, '')\nflags.DEFINE_string('length_key', None, '')\n\nflags.DEFINE_integer('min_after_dequeue', 0, \"\"\"by deafualt will be 500, \n                                                set to large number for production training \n                                                for better randomness\"\"\")\nflags.DEFINE_integer('buffer_size', 0, \"\"\"by deafualt will be 500, \n                                                set to large number for production training \n                                                for better randomness\"\"\")\nflags.DEFINE_integer('num_prefetch_batches', 0, '')\n\n#---------- input dirs\n#@TODO will not use input pattern but use dir since hdfs now can not support glob well\nflags.DEFINE_string('train_input', None, 'must provide')\nflags.DEFINE_string('train_input2', None, 'must provide')\nflags.DEFINE_string('valid_input', None, 'if empty will train only')\nflags.DEFINE_string('valid_input2', None, 'some applications might need another valid input')\nflags.DEFINE_string('test_input', None, 'maily for inference during train epochs')\nflags.DEFINE_string('fixed_valid_input', None, 'if empty wil  not eval fixed images')\nflags.DEFINE_string('num_records_file', None, '')\nflags.DEFINE_string('base_dir', '../../../mount', '')\n\nflags.DEFINE_boolean('run_valid_op', True, '')\nflags.DEFINE_boolean('show_eval', True, '')\nflags.DEFINE_boolean('eval_shuffle_files', True, '')\nflags.DEFINE_boolean('eval_fix_random', True, '')\nflags.DEFINE_integer('eval_seed', 1024, '')\nflags.DEFINE_integer('seed', None, '1024 input seed')\nflags.DEFINE_boolean('fix_sequence', False, '')\n\nflags.DEFINE_string('big_buckets', None, 'empty meaning not use, other wise looks like 5,10,15,30')\nflags.DEFINE_string('big_batch_sizes', None, '')\nflags.DEFINE_integer('big_batch_size', None, '')\n\nflags.DEFINE_boolean('adjust_global_step', False, '')\nflags.DEFINE_integer('global_step', None, '')\nflags.DEFINE_integer('global_epoch', None, '')\n\nflags.DEFINE_boolean('eager', False, '')\n\nflags.DEFINE_integer('num_threads', 0, \"\"\"threads for reading input tfrecords,\n                                           setting to 1 may be faster but less randomness\n                                        \"\"\")\n\nflags.DEFINE_boolean('torch', False, 'torch_model Wether use torch model, if true and not torch_only, tf eager read, torch model')\nflags.DEFINE_boolean('torch_only', False, 'torch_read Wether use torch reader, if true, torch read, torch model')\nflags.DEFINE_boolean('torch_lr', False, 'False might not work as tf learning rate problem')\nflags.DEFINE_boolean('torch_finetune', False, '')\nflags.DEFINE_boolean('torch_load_optimizer', True, '')\n\nflags.DEFINE_boolean('test_aug', False, '')\n\nflags.DEFINE_integer('batch_size_dim', 0, '')\n\nflags.DEFINE_boolean('simple_parse', False, '')\n\n# from bert run_classifier.py\nflags.DEFINE_boolean('use_tpu', False, '')\nflags.DEFINE_string(\n    \"tpu_name\", None,\n    \"The Cloud TPU to use for training. This should be either the name \"\n    \"used when creating the Cloud TPU, or a grpc://ip.address.of.tpu:8470 \"\n    \"url.\")\nflags.DEFINE_string(\n    \"tpu_zone\", None,\n    \"[Optional] GCE zone where the Cloud TPU is located in. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\nflags.DEFINE_string(\n    \"gcp_project\", None,\n    \"[Optional] Project name for the Cloud TPU-enabled project. If not \"\n    \"specified, we will attempt to automatically detect the GCE project from \"\n    \"metadata.\")\n#tf.flags.DEFINE_string(\"master\", None, \"[Optional] TensorFlow master URL.\")\nflags.DEFINE_integer(\n    \"num_tpu_cores\", 8,\n    \"Only used if `use_tpu` is True. Total number of TPU cores to use.\")\n\n# use horovod to do multiple gpu / server \nflags.DEFINE_boolean('use_horovod', False, '')\nflags.DEFINE_boolean('horovod_eval', True, 'wether using multiple gpu for eval and infer, hvd.allgather not work for tf ... currently, mpi4py ok')\nflags.DEFINE_boolean('horovod_shard', True, 'only consider train, valid/test always shard, if not shard then each rank got 1/n files')\nflags.DEFINE_boolean('horovod_scale', False, '')\n\n\ntry:\n  #import horovod.tensorflow as hvd\n  #import horovod.torch as hvd\n  #hvd.init()\n  import mpi4py\n  from mpi4py import MPI\n  comm = MPI.COMM_WORLD\nexcept Exception:\n  print(traceback.format_exc(), file=sys.stderr)\n  #print('---------no horovod support for mutliple gpu, notice we use mpi4py for some allgather op for eval')\n  pass\n\ninited = None \n\ndef init():\n  assert FLAGS.valid_interval_steps % FLAGS.interval_steps == 0\n\n  if FLAGS.torch_only:\n    FLAGS.torch = True\n\n  # TODO actually FLAGS.use_horovod is not needed as we can infer from environ\n  if 'OMPI_COMM_WORLD_RANK' in os.environ:\n    FLAGS.use_horovod = True\n\n  if FLAGS.buckets:\n    assert FLAGS.length_key, 'must set length key if using buckets'\n\n  if FLAGS.use_horovod:\n    mpi4py.rc.initialize = False\n    if not FLAGS.torch: \n      import horovod.tensorflow as hvd \n      hvd.init()\n      logging.set_hvd(hvd)\n    else:\n      import torch\n      import horovod.torch as hvd\n      hvd.init()\n      logging.set_hvd(hvd)\n      torch.cuda.set_device(hvd.local_rank())\n    assert hvd.mpi_threads_supported()\n    assert hvd.size() == comm.Get_size()\n    logging.info('In Horvod mode using %d gpus' % hvd.size())\n      \n    if FLAGS.horovod_scale:\n      FLAGS.learning_rate = FLAGS.learning_rate * hvd.size()\n      print('using horovod multipy learning rate by {} to {}'.format(hvd.size(), FLAGS.learning_rate))\n\n  if 'TPU' in os.environ and int(os.environ['TPU']) == 1:\n    FLAGS.use_tpu = True\n\n  if FLAGS.use_tpu:\n    from tensorflow.contrib.tpu.python.tpu import tpu_function\n    # Add this somewhere at the top\n    tpu_function.get_tpu_context().set_number_of_shards(FLAGS.num_tpu_cores)\n\n  if 'MODEL_DIR' in os.environ:\n    FLAGS.model_dir = os.environ['MODEL_DIR']\n\n  if 'METRIC' in os.environ and os.environ['METRIC'] == 'epoch':\n    FLAGS.model_dir = os.path.join(FLAGS.model_dir, 'epoch')\n\n  if 'DOUBLE_BATCH' in os.environ:\n    FLAGS.batch_size *= 2\n    if FLAGS.batch_sizes:\n      l = [str(int(x) * 2) for x in FLAGS.batch_sizes.split(',')]\n      FLAGS.batch_sizes = ','.join(l)\n    #FLAGS.model_dir = os.path.join(os.path.dirname(FLAGS.model_dir.rstrip('/')) + '/double', os.path.basename(FLAGS.model_dir.rstrip('/')))\n\n  if 'DOUBLE_LEN' in os.environ:\n    if FLAGS.buckets:\n      l = [str(int(x) * 2) for x in FLAGS.buckets.split(',')]\n      FLAGS.buckets = ','.join(l)\n    try:\n      FLAGS.content_limit *= 2\n    except Exception:\n      pass\n\n  if 'FOLD' in os.environ:\n    try:\n      FLAGS.fold = int(os.environ['FOLD'])\n    except Exception:\n      sub_dir = os.environ['FOLD']\n      assert os.path.isdir(FLAGS.model_dir)\n      FLAGS.model_dir = os.path.join(FLAGS.model_dir, sub_dir)\n      pass\n  \n  if not FLAGS.log_dir:\n    if 'log_dir' in os.environ and os.environ['log_dir']:\n      FLAGS.log_dir = os.environ['log_dir']\n  if not FLAGS.log_dir and FLAGS.model_dir:\n    if os.path.isfile(FLAGS.model_dir):\n     FLAGS.log_dir = os.path.dirname(FLAGS.model_dir)\n    else:\n      FLAGS.log_dir = FLAGS.model_dir\n\n  if FLAGS.model_dir:\n    if os.path.isfile(FLAGS.model_dir + '.index'):\n      FLAGS.log_dir = os.path.dirname(FLAGS.model_dir)\n\n  #assert FLAGS.log_dir, 'you need to set log_dir or model_dir'\n  os.system('mkdir -p %s' % FLAGS.log_dir)\n  logging.init(FLAGS.log_dir)\n  #logging.set_dir(FLAGS.log_dir)\n  logging.info('model_dir', FLAGS.model_dir, 'log_dir', FLAGS.log_dir)\n\n  if 'SCRATCH' in os.environ: \n    if os.path.exists(os.path.join(FLAGS.model_dir, 'log.html')):\n      if not os.path.exists(os.path.join(FLAGS.model_dir, 'log.txt')) or gezi.get_unmodify_minutes(os.path.join(FLAGS.model_dir, 'log.txt')) < 60:\n        logging.info('In scratch mode and found model_dir', FLAGS.model_dir, 'exit(0)')\n        exit(0)\n      else:\n        logging.info('In scratch mode but log.txt un modify for long time, continue running')\n    \n  if 'MODE' in os.environ:\n    FLAGS.work_mode = os.environ['MODE']\n\n  if 'PYTORCH'  in os.environ or 'PYT' in os.environ or 'TORCH' in os.environ:\n    FLAGS.torch = True\n\n  #if FLAGS.work_mode != 'train' or FLAGS.eager or 'EAGER' in os.environ and int(os.environ['EAGER']) == 1 or 'SHOW' in os.environ:\n  # well for safe just not by default use eager mode for valid and test since some a bit complex model now still has diff graph and eager, TODO FIXME\n  # TODO torch mode should use tf eager mode reading but since some bug for gpu oom.. now just use graph mode\n  if FLAGS.eager or 'EAGER' in os.environ and int(os.environ['EAGER']) == 1 or 'SHOW' in os.environ or FLAGS.torch:\n  #if FLAGS.eager or 'EAGER' in os.environ and int(os.environ['EAGER']) == 1 or 'SHOW' in os.environ:\n    # if torch and horovod can not use eager mode will conflict with torch.cuda.set_device, each process will use all gpus then \n    if not FLAGS.torch_only:\n      logging.info('-------------RUN IN EAGER MODE!')\n      if FLAGS.torch:\n        # by default tf will use all... and also set 0. not ok so set really small\n        #opts = tf.GPUOptions(per_process_gpu_memory_fraction=1e-5)\n        #conf = tf.ConfigProto(gpu_options=opts)\n        config = tf.ConfigProto(device_count={'GPU': 0})\n        # config.use_per_session_threads = False\n        # config.allow_soft_placement = False\n        # config.gpu_options.per_process_gpu_memory_fraction = 0.0\n        # config.gpu_options.allow_growth = True\n        # config.graph_options.enable_recv_scheduling = False\n        # config.graph_options.timeline_step = 0\n        # config.rpc_options.use_rpc_for_inprocess_master = False\n        # config.gpu_options.visible_device_list = str(hvd.local_rank())\n        tf.enable_eager_execution(config=config)\n      else:\n        tf.enable_eager_execution()\n\n  is_eager = tf.executing_eagerly()\n\n  if not FLAGS.torch:\n    if not is_eager:\n      logging.info('Tf dataset and Tf model train in Graph mode, support Horovod')\n    else:\n      logging.info('Tf dataset and Tf model train in Eager mode, not support Horovod now')\n  else:\n    if not FLAGS.torch_only:\n      logging.info('Tf dataset and Torch model train in Eager mode, not support Horovod now')\n    else:\n      logging.info('Torch dataset and Torch model train, support Horovod')\n\n\n  if 'BIG' in os.environ and int(os.environ['BIG']) == 1:\n    if FLAGS.big_batch_size is not None:\n      FLAGS.batch_size = FLAGS.big_batch_size\n    if FLAGS.big_buckets is not None:\n      FLAGS.buckets = FLAGS.big_buckets\n    if FLAGS.big_batch_sizes is not None:\n      FLAGS.batch_sizes = FLAGS.big_batch_sizes\n\n  # but seems not work ... still different result different run TODO FIXME\n  # looks a bit fixed but not exactly..\n  if FLAGS.seed or 'SEED' in os.environ:\n    if not FLAGS.seed:\n      FLAGS.seed = int(os.environ['SEED'])\n    tf.set_seed(FLAGS.seed)\n\n  logging.info('seed', FLAGS.seed)\n\n  if 'VLOG' in os.environ:\n    FLAGS.log_level = int(os.environ['VLOG'])\n  logging.info('log_level:', FLAGS.log_level)\n\n  if 'NUM_EPOCHS' in os.environ:\n    FLAGS.num_epochs = int(os.environ['NUM_EPOCHS'])\n    logging.info('Using num_epochs set from env as %d' % FLAGS.num_epochs)\n  \n  if 'NUM_STEPS' in os.environ:\n    FLAGS.num_steps = int(os.environ['NUM_STEPS'])\n    logging.info('Using num_steps set from env as %d' % FLAGS.num_steps)\n    if FLAGS.num_steps < 0:\n      FLAGS.train_only = True \n\n  if 'EVAL_STEP' in os.environ:\n    FLAGS.metric_eval_interval_steps = int(os.environ['EVAL_STEP'])\n    FLAGS.valid_interval_steps = int(os.environ['EVAL_STEP'])\n\n  if 'EVAL_STEPS' in os.environ:\n    FLAGS.metric_eval_interval_steps = int(os.environ['EVAL_STEPS'])\n    FLAGS.valid_interval_steps = int(os.environ['EVAL_STEPS'])\n\n  if 'LEARNING_RATE_DECAY_FACTOR' in os.environ:\n    FLAGS.learning_rate_decay_factor = int(os.environ['LEARNING_RATE_DECAY_FACTOR'])\n    logging.info('Using learning_rate_decay_factor set from env as %d' % FLAGS.learning_rate_decay_factor)\n\n  if 'BUCKETS' in os.environ:\n    FLAGS.buckets = os.environ['BUCKETS']\n    logging.info('Using buckets set from env as ', FLAGS.buckets)\n\n  if 'BATCH_SIZES' in os.environ:\n    FLAGS.batch_sizes = os.environ['BATCH_SIZES']\n    logging.info('Using batch sizes set from env as ', FLAGS.batch_sizes)\n\n  if 'NUM_LAYERS' in os.environ:\n    FLAGS.num_layers = int(os.environ['NUM_LAYERS'])\n    logging.info('Using num layers set from env as ', FLAGS.num_layers)\n\n  # TEST means also inference\n  if 'TEST_INPUT' in os.environ:\n    if int(os.environ['TEST_INPUT']) != 0:    \n      if not FLAGS.test_input:\n        assert FLAGS.train_input\n        assert 'train' in  FLAGS.train_input\n        FLAGS.test_input = FLAGS.train_input.replace('train', 'test').split(',')[0]\n    else:\n      FLAGS.test_input = None\n  # else:\n  #   if not ('TRAIN_ALL' in os.environ and int(os.environ['TRAIN_ALL']) != 0):\n  #     FLAGS.test_input = None\n\n  if FLAGS.test_input == '1':\n    assert FLAGS.train_input\n    assert 'train' in  FLAGS.train_input\n    FLAGS.test_input = FLAGS.train_input.replace('train', 'test').split(',')[0]\n  elif FLAGS.test_input == '0':\n    FLAGS.test_input = None\n\n  if FLAGS.valid_input == '1':\n    assert FLAGS.train_input\n    assert 'train' in  FLAGS.train_input\n    FLAGS.valid_input = FLAGS.train_input.replace('train', 'valid').split(',')[0]\n  elif FLAGS.valid_input == '0':\n    FLAGS.valid_input = None\n\n  if 'TRAIN_ALL' in os.environ and int(os.environ['TRAIN_ALL']) != 0:\n    FLAGS.train_all = True\n    #FLAGS.buckets = None  # no buckets for train all mode TODO might still need buket\n\n    if FLAGS.fold is not None:\n      if FLAGS.model_dir:\n        FLAGS.model_dir = os.path.join(FLAGS.model_dir, 'all')\n\n    # also evluate on fold 0 if not set fold\n    if FLAGS.fold is None:\n      FLAGS.fold = 0\n\n    if not FLAGS.test_input:\n      assert FLAGS.train_input\n      assert 'train' in  FLAGS.train_input\n      FLAGS.test_input = FLAGS.train_input.replace('train', 'test').split(',')[0]\n  \n  if 'TRAIN_ONLY' in os.environ and int(os.environ['TRAIN_ONLY']) != 0:\n    FLAGS.train_all = True\n    FLAGS.train_only = True\n\n    if FLAGS.fold is not None:\n      if FLAGS.model_dir:\n        FLAGS.model_dir = os.path.join(FLAGS.model_dir, 'all')\n\n    try:\n      FLAGS.fold = None # tf 1.4 not ok to set None\n    except Exception:\n      pass\n\n  if FLAGS.train_only:\n    FLAGS.test_input = None \n    FLAGS.valid_input = None\n    FLAGS.metric_eval = False\n    \n  if 'MIN_AFTER_DEQUEUE' in os.environ:\n    FLAGS.min_after_dequeue = int(os.environ['MIN_AFTER_DEQUEUE'])\n\n  if 'BUFFER_SIZE' in os.environ:\n    FLAGS.min_after_dequeue = int(os.environ['BUFFER_SIZE'])\n  \n  if 'BUFFER' in os.environ:\n    FLAGS.min_after_dequeue = int(os.environ['BUFFER'])\n\n  FLAGS.buffer_size = max(FLAGS.buffer_size, FLAGS.min_after_dequeue)\n  logging.info('buffer_size:{}'.format(FLAGS.buffer_size))\n  \n  if 'RANDOM_EMB' in os.environ and os.environ['RANDOM_EMB'] == '1':\n    FLAGS.word_embedding_file = None\n\n  if not FLAGS.num_gpus:\n    FLAGS.num_gpus = melt.get_num_gpus()\n\n  if not FLAGS.use_tower_loss or FLAGS.use_horovod:\n    FLAGS.num_gpus = 0\n\n  #print('======', melt.get_num_gpus(), FLAGS.num_gpus)\n  if 'FIXED_BATCH_SIZE' in os.environ and os.environ['FIXED_BATCH_SIZE'] == '1':\n    FLAGS.batch_size_per_gpu = False\n  if 'BATCH_SIZE_PER_GPU' in os.environ:\n    if os.environ['BATCH_SIZE_PER_GPU'] == '0':\n      FLAGS.batch_size_per_gpu = False\n    elif os.environ['BATCH_SIZE_PER_GPU'] == '1':\n      FLAGS.batch_size_per_gpu = True \n  \n  if not FLAGS.batch_size_per_gpu and FLAGS.num_gpus > 1:\n    print('batch size is shrink by %d for each gpu to make total insts per step still %d'%(FLAGS.num_gpus, FLAGS.batch_size), file=sys.stderr)\n    FLAGS.batch_size = int(FLAGS.batch_size / FLAGS.num_gpus)\n\n  num_gpus = FLAGS.num_gpus\n  assert num_gpus is not None, 'forget to set CUDA...? to specify the gpus?'\n  # if not num_gpus:\n  #   num_gpus = 1\n  melt.set_global('num_gpus', max(num_gpus, 1))\n\n  melt.set_global('batch_size', FLAGS.batch_size * melt.num_gpus())\n\n  # notice melt.batch_size() is actual batch size, FLAGS.batch_size is actually batch size per gpu!\n  logging.info('batch_size:', melt.batch_size(), 'batch_size_per_gpu:', FLAGS.batch_size, 'num_gpus:', melt.num_gpus())\n\n  # #HACK\n  # if FLAGS.cell == 'cudnn_gru' and tf.__version__ < '1.6':\n  #   FLAGS.eval_batch_size = FLAGS.batch_size\n\n  try:\n    if tf.__version__ < '1.5' and FLAGS.using_dataset:\n      FLAGS.using_dataset = False\n  except Exception:\n    pass\n\n  if FLAGS.learning_rate_patience:\n    FLAGS.dynamic_learning_rate = True\n    if not FLAGS.learning_rate_decay_factor:\n      FLAGS.learning_rate_decay_factor = 0.5\n\n  # TODO check if can all use tfe.Variable ?\n  if not is_eager and not FLAGS.torch_only:\n    learning_rate_weight = tf.get_variable('learning_rate_weight', initializer=tf.ones(shape=(), dtype=tf.float32), trainable=False)\n    tf.add_to_collection('learning_rate_weight', learning_rate_weight)\n    if FLAGS.num_learning_rate_weights > 0:\n      learning_rate_weights = tf.get_variable('learning_rate_weights', initializer=tf.ones(shape=(FLAGS.num_learning_rate_weights), dtype=tf.float32), trainable=False)\n      tf.add_to_collection('learning_rate_weights', learning_rate_weights)\n  else:\n    # will cause torch each process occupy all gpus...   TODO tf torch conflict!\n    if is_eager:\n      learning_rate_weight = tfe.Variable(1., name='learning_rate_weight', trainable=False)\n      #tf.add_to_collection('learning_rate_weight', learning_rate_weight)\n      melt.add_global('learning_rate_weight', learning_rate_weight)\n      if FLAGS.num_learning_rate_weights > 0:\n        learning_rate_weights = tfe.Variable(tf.ones(shape=(FLAGS.num_learning_rate_weights), dtype=tf.float32), name='learning_rate_weights', trainable=False)\n        #tf.add_to_collection('learning_rate_weights', learning_rate_weights)\n        melt.add_global('learning_rate_weights', learning_rate_weights)\n    else:\n      melt.add_global('learning_rate_weight', melt.LearningRate(1.))\n\n\n  global inited\n  inited = True\n\ndef get_global_scope():\n  global_scope = ''\n  if FLAGS.add_global_scope:\n    global_scope = FLAGS.global_scope if FLAGS.global_scope else FLAGS.algo\n  return global_scope\n\ndef gen_learning_rate(num_steps_per_epoch=None):\n  #TODO if app crash reload then we should set smaller learning rate, may adgrad can combine with exponential_decay ?\n  #copy from im2txt\\im2txt\\train.py\n  _learning_rate_decay_fn = None\n  \n  #TODO righ now not to pass float learning_rate as will be variable in optimizer.py and save\n  #if restore it will get learning rate form checkpoint, even if you give another learning rate \n  #this might be confusing, so just make it constant, if restart training you can change learning rate \n  #remeber if using decay by defualt beaviour will restore global_step from checkpoint\n  #so you can restart and get decayed learning rate direclty, restart is same as training without start\n  #you can also set smaller learning rate for example if learning_rate 0.1 before then decay learning rate is \n  #0.1 * decay you can set learning rate to 0.001 manualy after when restart training, then it means you start\n  #with 0.001 * decay (0.01 * decayed_learning_rate)\n  if not FLAGS.dynamic_learning_rate:\n    if FLAGS.learning_rate_decay_factor > 0 or FLAGS.learning_rate_method != 'decay':\n      learning_rate = tf.constant(FLAGS.learning_rate)\n      #learning_rate = FLAGS.learning_rate\n    else:\n      learning_rate = tf.get_variable(\n        \"learning_rate\", [],\n        trainable=False,\n        initializer=tf.constant_initializer(FLAGS.learning_rate),\n        collections=[])\n  else:\n    logging.info('using dyanmic learning rate')\n    learning_rate = tf.get_variable(\n      \"learning_rate\", [],\n      trainable=False,\n      initializer=tf.constant_initializer(FLAGS.learning_rate))\n\n    if FLAGS.learning_rate_patience:\n      assert FLAGS.learning_rate_decay_factor > 0\n      logging.info('adjust learning rate by patience {} and decay_factor *{}'.format(FLAGS.learning_rate_patience, FLAGS.learning_rate_decay_factor))\n      return learning_rate, None\n\n  logging.info('initial learning_rate:{}'.format(FLAGS.learning_rate))\n  \n  if not FLAGS.learning_rate > 0:\n    assert FLAGS.learning_rate_values, 'if learning rate is 0 then must set learnint rate values'\n\n  if FLAGS.learning_rate_values:\n    if not FLAGS.learning_rate:\n      learning_rate_values = [float(lr) for lr in FLAGS.learning_rate_values.split(',')]\n      assert FLAGS.learning_rate_step_boundaries or FLAGS.learning_rate_epoch_boundaries \n      if FLAGS.learning_rate_step_boundaries:\n        assert FLAGS.learning_rate_epoch_boundaries is None, 'use step boundaries or epoch boundaries?'\n        boundaries = [long(bound) for bound in FLAGS.learning_rate_step_boundaries.split(',')]\n      else:\n        assert num_steps_per_epoch is not None, 'need epoch info if using epoch boundaries'\n        boundaries = [long(float(epoch_bound) * num_steps_per_epoch) for epoch_bound in FLAGS.learning_rate_epoch_boundaries.split(',')]\n      \n      assert len(learning_rate_values) == len(boundaries) + 1, \\\n        'len_values:{} len_bouddaries:{}'.format(len(learning_rate_values), len(boundaries))\n\n      logging.info('learning rate values:{}, epoch_bounds:{} boundaries:{}'.format(\n          FLAGS.learning_rate_values, FLAGS.learning_rate_epoch_boundaries, ','.join(map(str, boundaries))))\n      def _learning_rate_decay_fn(learning_rate, global_step):\n        #return tf.train.piecewise_constant(\n        return melt.train.piecewise_constant(\n          global_step,\n          boundaries, \n          learning_rate_values)\n  elif FLAGS.learning_rate_decay_factor > 0:\n    #assert FLAGS.learning_rate_values is None, 'use exponential_decay or piecewise_constant?'\n    #NOTICE if you do finetune or other things which might change batch_size then you'd better direclty set num_steps_per_decay\n    #since global step / decay_steps will not be correct epoch as num_steps per epoch changed\n    #so if if you change batch set you have to reset global step as fixed step\n    assert FLAGS.num_steps_per_decay or (FLAGS.num_epochs_per_decay and num_steps_per_epoch), 'must set num_steps_per_epoch or num_epochs_per_decay and num_steps_per_epoch'\n    decay_steps = FLAGS.num_steps_per_decay or int(num_steps_per_epoch * FLAGS.num_epochs_per_decay)    \n    decay_start_step = FLAGS.decay_start_step or int(num_steps_per_epoch * FLAGS.decay_start_epoch)\n    # decayed_learning_rate = learning_rate * decay_rate ^ (global_step / decay_steps)\n    logging.info('learning_rate_decay_factor:{} decay_epochs:{} decay_steps:{} decay_start_epoch:{} decay_start_step:{}'.format(\n        FLAGS.learning_rate_decay_factor, FLAGS.num_epochs_per_decay, decay_steps, FLAGS.decay_start_epoch, decay_start_step))\n\n    def _learning_rate_decay_fn(learning_rate, global_step):\n      return melt.train.exponential_decay(\n          learning_rate,\n          global_step,\n          decay_steps=decay_steps,\n          decay_rate=FLAGS.learning_rate_decay_factor,\n          decay_start_step=decay_start_step,\n          staircase=True)\n  elif FLAGS.learning_rate_method == 'cosine':\n    assert FLAGS.num_steps_per_decay or (FLAGS.num_epochs_per_decay and num_steps_per_epoch), 'must set num_steps_per_epoch or num_epochs_per_decay and num_steps_per_epoch'\n    decay_steps = FLAGS.num_steps_per_decay or int(num_steps_per_epoch * FLAGS.num_epochs_per_decay)    \n    logging.info('learning_rate_decay_factor:{} decay_epochs:{} decay_steps:{}'.format(\n        FLAGS.learning_rate_decay_factor, FLAGS.num_epochs_per_decay, decay_steps))\n    def _learning_rate_decay_fn(learning_rate, global_step):\n      return tf.train.cosine_decay_restarts(\n          learning_rate,\n          global_step,\n          first_decay_steps=decay_steps,\n          t_mul=FLAGS.learning_rate_cosine_t_mul,\n          m_mul=FLAGS.learning_rate_cosine_m_mul,\n          alpha=FLAGS.learning_rate_cosine_alpha)\n  else:\n    # TODO support Slanted triangular learning rate\n    # https://medium.com/@hiromi_suenaga/deep-learning-2-part-2-lesson-10-422d87c3340c \n    logging.warning('Will ignore learning rate values since you have learning rate not 0!')\n\n  learning_rate_decay_fn = _learning_rate_decay_fn\n  return learning_rate, learning_rate_decay_fn\n\ndef train_flow(ops, \n               names=None, \n               gen_feed_dict_fn=None, \n               deal_results_fn=None, \n               eval_ops=None, \n               eval_names=None,\n               gen_eval_feed_dict_fn=None, \n               deal_eval_results_fn=melt.print_results,\n               optimizer=None, \n               learning_rate=0.1, \n               num_steps_per_epoch=None,\n               model_dir=None, \n               log_dir=None,\n               metric_eval_fn=None, \n               inference_fn=None,\n               debug=False,\n               summary_excls=None,\n               init_fn=None,\n               restore_fn=None,\n               restore_include=None,\n               restore_exclude=None,\n               save_all_scope=False,\n               variables_to_restore=None, \n               variables_to_save=None,\n               output_collection_names=None, \n               output_node_names=None,\n               num_steps=None,\n               num_epochs=None,\n               num_train_examples=None,\n               model=None,\n               sess=None):\n  \"\"\"\n   #variables_to_restore = slim.get_variables_to_restore(exclude=['fc6', 'fc7', 'fc8']) not used much \n   variables_to_save might be used but will hack here since we also want to save like seq2seq/OptimizeLoss/\n  \"\"\"\n  assert inited, 'Forget to call melt.apps.init() before using melt.apps.train_flow?'\n  if FLAGS.use_horovod:\n    import horovod.tensorflow as hvd\n  if sess is None:\n    sess = melt.get_session()\n\n  model_dir = model_dir or FLAGS.model_dir\n  log_dir = log_dir or FLAGS.log_dir\n\n  logging.info('clip_gradients:{}'.format(FLAGS.clip_gradients))\n\n  num_gpus = melt.num_gpus()\n  \n  #batch size right now not define here, but in app code like input_app.py\n  \n  #NOTICE since melt.__init__.py with from melt.flow import * then you can not \n  #use melt.flow.train.train_flow but you can always use\n  #from melt.flow.train.train_flow import train_flow\n\n  if optimizer is None:\n    optimizer = FLAGS.optimizer\n\n  # Set up the training ops.\n  #notice '' only works in tf >= 0.11, for 0.10 will always add OptimeizeLoss scope\n  #the diff is 0.10 use variable_op_scope and 0.11 use variable_scope\n  optimize_scope = None if FLAGS.optimize_has_scope else ''\n  # # NOTICE! initialzer value is step get from model check point if exits otherwise 0\n  # #will not get step value from checkpoint since you might change batch size it is safe to set step by epoch num and batch size\n  # #this is controlled by melt.apps.flow where global_step var is removed from restore var list \n  # #if set num_steps_per_decay then inital step actually the same as readding from check point global step not modify for batch size change\n  # #be realy golbal step(not fixed global step)\n  # # TODO FIXME not flexible... since if you want to use global step in classifier graph.. can not tf.train.get_or_create_global_step()\n  # initial_step = melt.get_global_step(model_dir, num_steps_per_epoch, fix_step=(not FLAGS.num_steps_per_decay)) if FLAGS.global_step is None else FLAGS.global_step\n  # logging.info('global_step init with initial_step from model_dir as %d' % initial_step)\n  # # TODO right now has global_scope above global_step might need to remove using function creator show_and_tell/global_step (DT_INT64) []\n  # # global_step = tf.get_variable(tf.GraphKeys.GLOBAL_STEP, shape=[], dtype=tf.int64, \n  # #                               initializer=tf.constant_initializer(initial_step))  \n  # # or can use get_variable(.. collections=['global_step']) but notice her is later then you build graph... \n  # # tf.add_to_collection('global_step', global_step)\n  global_step = tf.train.get_or_create_global_step()\n  #sess.run(tf.assign(global_step, tf.constant(initial_step, dtype=tf.int64)))\n\n  if FLAGS.use_finetune_step:\n    # NOTICE unlike global step this one will be save to checkpoint and read out without any change \n    finetune_start_step = tf.get_variable('finetune_start_step', shape=[], dtype=tf.int64, \n                                           initializer=tf.constant_initializer(initial_step))\n  elif FLAGS.use_finetune2_step:\n    # NOTICE if 'finetune_start_step2' then will try to load finetune_start_step2 from checkpoint.. where there only fine_start_step..\n    finetune_start_step = tf.get_variable('finetune2_start_step', shape=[], dtype=tf.int64, \n                                           initializer=tf.constant_initializer(initial_step))    \n  else:\n    finetune_start_step = 0\n\n  logging.info('num_steps_per_epoch:', num_steps_per_epoch)\n  learning_rate, learning_rate_decay_fn = gen_learning_rate(num_steps_per_epoch)\n  if learning_rate_decay_fn is not None:\n    learning_rate = learning_rate_decay_fn(learning_rate, global_step - finetune_start_step)\n\n  #do not let optimizer do decay again!\n  learning_rate_decay_fn = None \n  #or judge by FLAGS.num_gpus\n  if FLAGS.optimizer == 'momentum':\n    optimizer = lambda lr: tf.train.MomentumOptimizer(lr, momentum=FLAGS.momentum) \n  elif FLAGS.optimizer == 'adafactor':\n    from tensor2tensor.utils import adafactor\n    # let adafactor just using it's internal learning rate and default params\n    # TODO FIXME sparse not support ...\n    optimizer = adafactor.AdafactorOptimizer()\n  elif FLAGS.optimizer == 'multistep':\n    # even embedding set cpu still say resource try from device gpu to cpu WHY ?\n    from tensor2tensor.utils import multistep_optimizer\n    optimizer = multistep_optimizer.MultistepAdamOptimizer\n  elif FLAGS.optimizer == 'yellowfin':\n    # must set embedding on cpu , then can run(like adagrad adadelta) but work poorly\n    from tensor2tensor.utils import yellowfin\n    optimizer = yellowfin.YellowFinOptimizer\n  elif FLAGS.optimizer == 'bert':\n    num_train_steps = int(\n      num_steps_per_epoch * (FLAGS.num_decay_epochs or num_epochs))\n    if FLAGS.warmup_steps:\n      num_warmup_steps = FLAGS.warmup_steps \n      if FLAGS.use_horovod:\n        num_warmup_steps = max(int(num_warmup_steps / hvd.size()), 1)\n    elif FLAGS.warmup_epochs:\n      num_warmup_steps = num_steps_per_epoch * FLAGS.warmup_epochs\n    elif FLAGS.warmup_proportion:\n      num_warmup_steps = int(num_train_steps * FLAGS.warmup_proportion) \n    logging.info('num_train_steps', num_train_steps, 'num_warmup_steps', num_warmup_steps, 'warmup_proportion', FLAGS.warmup_proportion)\n    optimizer, learning_rate = melt.training.bert.optimization.create_optimizer(\n        global_step, FLAGS.learning_rate, num_train_steps, num_warmup_steps, FLAGS.min_learning_rate)\n  else:\n    optimizer = melt.util.get_optimizer(optimizer)\n  logging.info('optimizer:{} {}'.format(FLAGS.optimizer, optimizer))\n  \n  if not isinstance(ops[0], (list,tuple)):  \n    train_op = melt.layers.optimize_loss(\n      losses=[ops[0]],\n      global_step=global_step,\n      learning_rate=learning_rate,\n      optimizer=optimizer,\n      clip_gradients=FLAGS.clip_gradients,\n      learning_rate_decay_fn=learning_rate_decay_fn,\n      use_horovod=FLAGS.use_horovod,\n      name=optimize_scope)\n  else: \n    #---as in cifa10 example, put all but tower loss on cpu, wiki say, that will be faster,\n    #but here I find without setting to cpu will be faster..\n    #https://github.com/tensorflow/tensorflow/issues/4881\n    #I've noticed same thing on cirrascale GPU machines - putting parameters on gpu:0 and using gpu->gpu transfer was a bit faster. I suppose this depends on particular details of hardware -- if you don't have p2p connectivity between your video cards then keeping parameters on CPU:0 gives faster training.\n    #err but for my pc no p2p, with PHB connection nvidia-smi topo -m, still hurt by set cpu.. may be should not put cpu here\n    update_ops = ops[0][1]\n    ops[0] = ops[0][0]\n\n    if FLAGS.variable_strategy == 'cpu' and FLAGS.num_gpus and FLAGS.num_gpus > 1:\n      with tf.device('/cpu:0'):\n        train_op = melt.layers.optimize_loss(\n            losses=ops[0],\n            num_gpus=num_gpus,\n            global_step=global_step,\n            learning_rate=learning_rate,\n            optimizer=optimizer,\n            clip_gradients=FLAGS.clip_gradients,\n            learning_rate_decay_fn=learning_rate_decay_fn,\n            update_ops=update_ops,\n            name=optimize_scope,\n            use_horovod=FLAGS.use_horovod,\n            use_tpu=FLAGS.use_tpu)\n    else:\n      train_op = melt.layers.optimize_loss(\n          losses=ops[0],\n          num_gpus=num_gpus,\n          global_step=global_step,\n          learning_rate=learning_rate,\n          optimizer=optimizer,\n          clip_gradients=FLAGS.clip_gradients,\n          learning_rate_decay_fn=learning_rate_decay_fn,\n          update_ops=update_ops,\n          name=optimize_scope,\n          use_horovod=FLAGS.use_horovod,\n          use_tpu=FLAGS.use_tpu)\n\n    #set the last tower loss as loss in ops\n    # TODO FIXME how to check if ops[0] here should be scalar ?\n    ops[0] = ops[0][-1]\n    #ops[0] = ops[0][0]\n    ## cifar10 below down 3600 -> 3100 examples/s\n    # consolidation_device = '/gpu:0' if FLAGS.variable_strategy == 'gpu' else '/cpu:0'\n    # with tf.device(consolidation_device):\n    #   ops[0] = tf.reduce_mean(ops[0])\n \n  ops.insert(0, train_op)\n  ops.insert(1, learning_rate)\n\n  tf.add_to_collection('learning_rate', learning_rate)\n  logging.info('learning_rate', learning_rate)\n  \n  try:\n    sess.run(tf.variables_initializer([learning_rate]))\n  except Exception:\n    '--------------!sess.run(tf.variables_initializer([learning_rate])) fail...'\n    pass\n\n  #-----------post deal\n  save_interval_seconds = FLAGS.save_interval_seconds if FLAGS.save_interval_seconds > 0 \\\n     else FLAGS.save_interval_hours * 3600 \n\n  interval_steps=FLAGS.interval_steps\n  valid_interval_steps=FLAGS.valid_interval_steps\n  metric_eval_interval_steps=FLAGS.metric_eval_interval_steps\n  save_model=FLAGS.save_model \n  save_interval_steps = FLAGS.save_interval_steps \n  num_steps = num_steps or FLAGS.num_steps\n  num_epochs = num_epochs or FLAGS.num_epochs\n\n  if not save_interval_steps:\n    save_interval_steps = 1000000000000\n\n  if not FLAGS.metric_eval:\n    metric_eval_interval_steps = 0\n\n  if FLAGS.work_mode == 'train_only' or FLAGS.train_only:\n    eval_ops = None \n    metric_eval_fn = None\n    logging.info('running train only mode')\n  elif FLAGS.work_mode == 'train_metric':\n    eval_ops = None \n    assert metric_eval_fn is not None, 'set metric_eval to 1'\n    logging.info('running train+metric mode')\n  elif FLAGS.work_mode == 'train+valid':\n    metric_eval_fn = None\n    logging.info('running train+valid mode')\n  elif FLAGS.work_mode.startswith('test'):\n    ops = None\n    logging.info('running test only mode')\n    interval_steps = 0\n    valid_interval_steps = 1\n    metric_eval_interval_steps /= FLAGS.valid_interval_steps\n    save_model = False\n  elif FLAGS.work_mode.startswith('metric') or FLAGS.work_mode.startswith('eval') or FLAGS.work_mode.startswith('valid') or gezi.env_has('METRIC'):\n    #TODO name is a bit cofusing for mode, eval or metric means using metric evaluation\n    #test above means using eval_loss(valid_loss) as composed to train_loss for evaluation\n    ops = None \n    eval_ops = None\n    if FLAGS.work_mode == 'valid+test':\n      logging.info('runing valid and test only mode')\n    else:\n      logging.info('running metric eval only mode')\n    interval_steps = 0 \n    valid_interval_steps = 1\n    metric_eval_interval_steps /= FLAGS.valid_interval_steps    \n    save_model = False\n    assert metric_eval_fn is not None \n\n  \n  if FLAGS.work_mode.endswith('once'):\n    num_epochs = -1 #hack to make only do one step!\n\n  #TODO hack seq2seq/OptimizeLoss/seq2seq/main/decode/rnn/basic_lstm_cell/kernel/Adagrad (DT_FLOAT) [1280,4096] need to save\n  if variables_to_save is not None:\n    optimize_vars = set(slim.get_variables(get_global_scope() + '/OptimizeLoss'))\n    assert optimize_vars, 'optimizer must has scope %s'%(get_global_scope() + '/OptimizeLoss')\n    variables_to_save = list(set(variables_to_save) | optimize_vars)\n    #print('final varables_to_save', variables_to_save)\n\n  if output_collection_names is None and FLAGS.freeze_graph_collections:\n    all_keys = sess.graph.get_all_collection_keys()\n    exclude_keys = set(['variables', 'queue_runners', 'summaries', 'train_op', 'update_ops', 'model_variables', 'cond_context', 'while_context'])\n    output_collection_names = [x for x in all_keys if x not in exclude_keys and not 'train' in x and not x.endswith('_end_points')]\n  logging.info('all collection keys: {}'.format(all_keys[:100]))\n  logging.info('collection names to freeze: {}'.format(output_collection_names))\n\n  print('ops', ops, file=sys.stderr)\n  print('eval_ops', eval_ops, file=sys.stderr)\n  print('names', names, file=sys.stderr)\n  print('eval_names', eval_names, file=sys.stderr)\n\n  if FLAGS.learning_rate_patience:\n    assert metric_eval_fn is not None, 'need to use metrci eval fn to monitor and decay learning rate'\n\n  restore_include = restore_include or FLAGS.restore_include.split(',') if FLAGS.restore_include else None\n  restore_exclude = restore_exclude or FLAGS.restore_exclude.split(',') if FLAGS.restore_exclude else None\n\n  return melt.flow.train_flow(\n             ops, \n             names=names,\n             gen_feed_dict_fn=gen_feed_dict_fn,\n             deal_results_fn=deal_results_fn,\n             # TODO horovod might multiple gpu eval then reduceall mean\n             #eval_ops=eval_ops if not FLAGS.use_horovod or hvd.rank() == 0 else None,\n             eval_ops=eval_ops,\n             eval_names=eval_names,\n             gen_eval_feed_dict_fn=gen_eval_feed_dict_fn,\n             deal_eval_results_fn=deal_eval_results_fn,\n             interval_steps=interval_steps,\n             valid_interval_steps=valid_interval_steps,\n             eval_loops=FLAGS.eval_loops,\n             num_epochs=num_epochs,\n             num_steps=num_steps,\n             save_interval_seconds=save_interval_seconds,\n             save_interval_steps=save_interval_steps,\n             save_model=save_model if not FLAGS.use_horovod or hvd.rank() == 0 else False,\n             save_interval_epochs=FLAGS.save_interval_epochs,\n             freeze_graph=FLAGS.freeze_graph,\n             #optimizer=optimizer, \n             optimizer=None, #must set None since here we have done choosing optimizer\n             learning_rate=learning_rate,\n             learning_rate_patience=FLAGS.learning_rate_patience,\n             learning_rate_decay_factor=FLAGS.learning_rate_decay_factor,\n             num_steps_per_epoch=num_steps_per_epoch,\n             max_models_keep=FLAGS.max_models_keep,\n             #model_dir=model_dir if not FLAGS.use_horovod or hvd.rank() == 0 else None,\n             # still pass model dir eve hvd rank > 0 for evaluate or infer might use it \n             model_dir=model_dir,\n             log_dir=log_dir if not FLAGS.use_horovod or hvd.rank() == 0 else None,\n             restore_from_latest=FLAGS.restore_from_latest,\n             #metric_eval_fn=metric_eval_fn if not (FLAGS.use_horovod and not FLAGS.horovod_eval) or hvd.rank() == 0 else None,  \n             metric_eval_fn=metric_eval_fn,\n             metric_eval_interval_steps=metric_eval_interval_steps,\n             valid_interval_epochs=FLAGS.valid_interval_epochs,\n             #inference_fn=inference_fn if not (FLAGS.use_horovod and not FLAGS.horovod_eval) or hvd.rank() == 0 else None,\n             inference_fn=inference_fn,\n             inference_interval_epochs=FLAGS.inference_interval_epochs,\n             no_log=FLAGS.no_log,\n             summary_excls=summary_excls,\n             init_fn=init_fn,\n             restore_fn=restore_fn,\n             restore_include=restore_include,\n             restore_exclude=restore_exclude,\n             save_all_scope=save_all_scope,\n             variables_to_restore=variables_to_restore,\n             variables_to_save=variables_to_save,\n             output_collection_names=output_collection_names,\n             output_node_names=output_node_names,\n             write_during_train=FLAGS.write_during_train,\n             use_horovod=FLAGS.use_horovod,\n             model=model,\n             sess=sess)\n\n# TODO make this evaluate , infrence and melt train_flow as standard melt.apps.train \ndef evaluate(ops, iterator, num_steps, num_examples, eval_fn, \n             model_path=None, names=None, write_fn=None, write_streaming=False,\n             num_gpus=1, write=False,\n             suffix='.valid', sep=',', sess=None):\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n  if use_horovod:\n    import horovod.tensorflow as hvd\n  if not write_fn:\n    write_streaming = True\n  ids_list = []  \n  predictions_list = []\n  labels_list = []\n\n  if not sess:\n    sess = melt.get_session()\n  try:\n    sess.run(iterator.initializer)\n  except Exception:\n    pass\n\n  try:\n    for i in range(num_gpus):\n      ops[i][0] = ops[i][0]['id']\n  except Exception:\n    pass\n\n  try:\n    # here for multiple gpu (not horovod) dataset is repeate mode\n    for _ in tqdm(range(num_steps), total=num_steps, ascii=True):\n      results = sess.run(ops)\n      for i in range(num_gpus):\n        ids, labels, predictions = results[i]\n        ids = gezi.decode(ids)     \n        ids_list.append(ids)   \n        predictions_list.append(predictions)\n        labels_list.append(labels)\n  except tf.errors.OutOfRangeError:\n    pass\n\n  if FLAGS.use_horovod and FLAGS.horovod_eval:\n    #print('----------------------before hvd reduce')\n    sess.run(hvd.allreduce(tf.constant(0)))\n    ## here for horovod mutliple gpu dataset is not repeat mode \n    ids_list = comm.allgather(np.concatenate(ids_list))\n    predictions_list = comm.allgather(np.concatenate(predictions_list))\n    labels_list = comm.allgather(np.concatenate(labels_list))\n    comm.barrier()\n\n    ids2 = np.concatenate(ids_list)\n    predicts2 = np.concatenate(predictions_list)\n    labels2 = np.concatenate(labels_list)\n    #----below is for batch parse which if not repeat mode then final batch will still same size not smaller\n    # and not use repeat mode so last batch fill with id '' empty we can remove here\n    ids = []\n    predicts = []\n    labels = []\n    for i in range(len(ids2)):\n      if not ids2[i] == '':\n        ids.append(ids2[i])\n        predicts.append(predicts2[i])\n        labels.append(labels2[i])\n    ids = np.array(ids)\n    predicts = np.array(predicts)\n    labels = np.array(labels)\n    assert len(predicts) > 0, 'all ids are empty string ? we ignore these instance with empty id'\n    assert len(predicts) == num_examples\n  else:\n    try:\n      # concat list so like [[512,], [512,]...] -> [512 * num_batchs]\n      # ore [[512, 3], [512,3] ..] -> [512 * num_batchs, 3]\n      ids = np.concatenate(ids_list)[:num_examples]\n    except Exception:\n      ids = ['0'] * num_examples\n    predicts = np.concatenate(predictions_list)[:num_examples]\n    labels = np.concatenate(labels_list)[:num_examples]\n\n  if model_path and write and (not FLAGS.use_horovod or hvd.rank() == 0):\n    ofile = model_path +  suffix\n    with open(ofile, 'w') as out:\n      if write_streaming:\n          if names:\n            print(*names, sep=sep, file=out)\n          for id, label, predict in zip(ids, labels, predicts):\n            if write_fn is None:\n              if not gezi.iterable(label):\n                label = [label]\n              if not gezi.iterable(predict):\n                predict = [predict] \n              print(id, *label, *predict, sep=sep, file=out)\n            else:\n              write_fn(id, label, predict, out)\n      else:\n        write_fn(ids, labels, predicts, out)\n\n  # TODO maybe **kargs better ?\n  if len(inspect.getargspec(eval_fn).args) == 4:\n    vals, names = eval_fn(labels, predicts, ids=ids, model_path=model_path)\n  elif len(inspect.getargspec(eval_fn).args) == 3:\n    if 'ids' in inspect.getargspec(eval_fn).args:\n      vals, names = eval_fn(labels, predicts, ids)\n    else:\n      vals, names = eval_fn(labels, predicts, model_path)\n  else:\n    vals, names = eval_fn(labels, predicts)\n\n  if model_path and (not FLAGS.use_horovod or hvd.rank() == 0):\n    with open(model_path + '.valid.metrics', 'w') as out:\n      for val, name in zip(vals, names):\n        print(name, val, sep='\\t', file=out)\n\n  return vals, names\n\ndef inference(ops, iterator, num_steps, num_examples, \n              model_path, names=None, debug_names=None,\n              write_fn=None, write_streaming=False, num_gpus=1, \n              suffix='.infer', sep=',', sess=None):\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n  if use_horovod:\n    import horovod.tensorflow as hvd\n  if not write_fn:\n    write_streaming = True\n  ids_list = []  \n  predictions_list = []\n\n  if not sess:\n    sess = melt.get_session()\n  \n  sess.run(iterator.initializer)\n\n  try:\n    for i in range(num_gpus):\n      ops[i][0] = ops[i][0]['id']\n  except Exception:\n    pass\n\n  try:\n    for _ in tqdm(range(num_steps), total=num_steps, ascii=True):\n      results = sess.run(ops)\n      for i in range(num_gpus):\n        ids, predictions = results[i]\n        ids = gezi.decode(ids)     \n        ids_list.append(ids)   \n        predictions_list.append(predictions)\n  except tf.errors.OutOfRangeError:\n    pass\n\n  # TODO for infer might not need to use all gather ...\n  if FLAGS.horovod and FLAGS.horovod_eval:\n    sess.run(hvd.allreduce(tf.constant(0)))\n    ids_list = comm.allgather(np.concatenate(ids_list))\n    predictions_list = comm.allgather(np.concatenate(predictions_list))\n    comm.barrier()\n    ids2 = np.concatenate(ids_list)\n    predicts2 = np.concatenate(predictions_list)\n    ids = []\n    predicts = []\n    \n    for i in range(len(ids2)):\n      if not ids2[i] == '':\n        ids.append(ids2[i])\n        predicts.append(predicts2[i])\n    ids = np.array(ids)\n    predicts = np.array(predicts)\n\n  else:\n    ids = np.concatenate(ids_list)[:num_examples]\n    predicts = np.concatenate(predictions_list)[:num_examples]\n\n  assert len(predicts) > 0, 'all ids are empty string ? we ignore these instance with empty id'\n  if (not FLAGS.use_horovod or hvd.rank() == 0):\n    ofile = model_path +  suffix\n    ofile2 = ofile + '.debug'\n    \n    if write_streaming:\n      if write_fn and len(inspect.getargspec(write_fn).args) == 4:\n        out_debug = open(ofile2, 'w')\n      else:\n        out_debug = None\n      with open(ofile, 'w') as out:\n        if names:\n          print(*names, sep=sep, file=out)\n        if debug_names and out_debug:\n          print(*debug_names, sep=',', file=out_debug)\n        for id, predict in zip(ids, predicts):\n          if write_fn is None:\n            if not gezi.iterable(predict):\n              predict = [predict]\n            print(id, *predict, sep=sep, file=out)\n          else:\n            if out_debug:\n              write_fn(id, predict, out, out_debug)\n            else:\n              write_fn(id, predict, out)\n    else:\n      if len(inspect.getargspec(write_fn).args) == 4:\n        write_fn(ids, predicts, ofile, ofile2)\n      else:\n        write_fn(ids, predicts, ofile)\n\ndef train(model, \n          loss_fn, \n          Dataset=None,\n          dataset=None,\n          valid_dataset=None,\n          valid_dataset2=None,\n          test_dataset=None,\n          evaluate_fn=None, \n          inference_fn=None,\n          eval_fn=None,\n          init_fn=None,\n          restore_fn=None,\n          write_valid=True,\n          valid_names=None,\n          infer_names=None,\n          infer_debug_names=None,\n          valid_write_fn=None,\n          infer_write_fn=None,\n          valid_suffix='.valid',\n          infer_suffix='.infer',\n          write_streaming=False,\n          optimizer=None,\n          sep=','):\n  if Dataset is None:\n    assert dataset\n  input_ =  FLAGS.train_input \n  inputs = gezi.list_files(input_)\n  assert inputs, input_\n  inputs.sort()\n\n  all_inputs = inputs\n\n  batch_size = melt.batch_size()\n  num_gpus = melt.num_gpus()\n\n  #hack for horovod\n  if FLAGS.use_horovod: \n    num_gpus = 1\n    import horovod.tensorflow as hvd\n\n  batch_size_per_gpu = FLAGS.batch_size\n  logging.info(model, Dataset, loss_fn)\n  logging.info('batch_size', batch_size, 'batch_size_per_gpu', batch_size_per_gpu, 'num_gpus', num_gpus)\n\n  if num_gpus > 1:\n    assert not FLAGS.batch_sizes, 'Not support batch sizes for num gpus > 1, TODO'\n\n  # NOTICE if FLAGS.batch_sizes then num_gpus 1\n  batch_size_ = batch_size if not FLAGS.batch_sizes else int(FLAGS.batch_sizes.split(',')[-1])\n\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n    # if FLAGS.valid_input:\n    #   inputs += [x for x in gezi.list_files(FLAGS.valid_input) if not x.endswith('%d.record' % FLAGS.fold)]\n  logging.info('inputs', len(inputs), inputs[:100])\n\n  num_folds = FLAGS.num_folds or len(inputs) + 1\n\n  dataset = dataset or Dataset('train')\n  iter = dataset.make_batch(batch_size, inputs, repeat=True, initializable=False, hvd_shard=FLAGS.horovod_shard, simple_parse=FLAGS.simple_parse)\n\n  num_examples = dataset.num_examples_per_epoch('train') \n  num_all_examples = num_examples\n  if num_examples:\n    if FLAGS.fold is not None:\n      num_examples = int(num_examples * ((num_folds - 1) / num_folds))\n    num_steps_per_epoch = -(-num_examples // batch_size)\n  else:\n    num_steps_per_epoch = None\n  logging.info('num_train_examples:', num_examples)\n\n  valid_inputs = None\n  if FLAGS.valid_input:\n    valid_inputs = gezi.list_files(FLAGS.valid_input)\n  else:\n    if FLAGS.fold is not None:\n      #valid_inputs = [x for x in all_inputs if x not in inputs]\n      if not FLAGS.test_aug:\n        valid_inputs = [x for x in all_inputs if not 'aug' in x and x not in inputs]\n      else:\n        valid_inputs = [x for x in all_inputs if 'aug' in x and x not in inputs]\n\n  if valid_inputs:\n    valid_dataset = valid_dataset or dataset\n    valid_batch_size = FLAGS.eval_batch_size or batch_size\n    # valid iter2 for valid op\n    valid_iter2 = valid_dataset.make_batch(batch_size, valid_inputs, subset='valid', repeat=True, initializable=False, hvd_shard=False)\n    # here not set repeat to False, for if multiple gpu might repeat is True we can stop using num steps\n    valid_iter = valid_dataset.make_batch(valid_batch_size, valid_inputs, subset='valid', hvd_shard=FLAGS.horovod_eval)\n  else:\n    valid_dataset = None\n  \n  logging.info('valid_inputs', valid_inputs)\n  num_valid_examples = None\n  if FLAGS.valid_input and valid_dataset:\n    num_valid_examples = valid_dataset.num_examples_per_epoch('valid')\n    num_valid_steps_per_epoch = -(-num_valid_examples // valid_batch_size) if num_valid_examples else None    \n  else:\n    if FLAGS.fold is not None:\n      if num_examples:\n        num_valid_examples = int(num_all_examples * (1 / num_folds))\n        num_valid_steps_per_epoch = -(-num_valid_examples // valid_batch_size)\n      else:\n        num_valid_steps_per_epoch = None\n  logging.info('num_valid_examples:', num_valid_examples)\n  assert not (FLAGS.valid_input and not num_valid_examples)\n\n  if FLAGS.test_input:\n    test_inputs = gezi.list_files(FLAGS.test_input)\n    #test_inputs = [x for x in test_inputs if not 'aug' in x]\n    logging.info('test_inputs', test_inputs)\n  else:\n    test_inputs = None\n  \n  num_test_examples = None\n  if test_inputs:\n    test_dataset = test_dataset or dataset\n    test_batch_size = FLAGS.eval_batch_size or batch_size\n    test_iter = test_dataset.make_batch(test_batch_size, test_inputs, subset='test', hvd_shard=FLAGS.horovod_eval)\n    num_test_examples = test_dataset.num_examples_per_epoch('test')\n    num_test_steps_per_epoch = -(-num_test_examples // test_batch_size) if num_test_examples else None\n  else:\n    test_dataset = None\n  logging.info('num_test_examples:', num_test_examples)\n\n  scope_name = ''\n  #with tf.variable_scope('model') as scope:\n  #iter = dataset.make_batch(batch_size, inputs, repeat=True, initializable=False)\n  batch = iter.get_next()\n  x, y = melt.split_batch(batch, batch_size, num_gpus)\n  #x, y = melt.split_batch(batch, num_gpus)\n\n  # loss = loss_fn(model, x, y, training=True)\n  # loss = melt.tower(lambda i: loss_fn(model, x[i], y[i], training=True), num_gpus)\n\n  def train_fn(x, y):\n    if 'training' in inspect.getargspec(model.call).args:\n      y_ = model(x, training=True)\n    else:\n      if hasattr(model, 'train'):\n        model.train()\n      y_ = model(x)\n    loss = loss_fn(y, y_)\n    return loss\n  loss = melt.tower(lambda i: train_fn(x[i], y[i]), num_gpus)\n\n  def valid_fn(x, y):\n    y_ = model(x)\n    loss = loss_fn(y, y_)\n    return loss\n  ops = [loss]\n  #scope.reuse_variables()\n  \n  eval_ops = None \n  metric_eval_fn = None\n  if valid_dataset:\n    #valid_iter2 = valid_dataset.make_batch(batch_size_, valid_inputs, repeat=True, initializable=False)\n    valid_batch2 = valid_iter2.get_next()\n    valid_batch_size = FLAGS.eval_batch_size or batch_size\n    if FLAGS.run_valid_op:\n      valid_x2, valid_y2 = melt.split_batch(valid_batch2, valid_batch_size, num_gpus, training=False)\n      #valid_x2, valid_y2 = melt.split_batch(valid_batch2, num_gpus, training=False)\n      valid_loss = melt.tower(lambda i: valid_fn(valid_x2[i], valid_y2[i]), num_gpus, training=False)\n      valid_loss = tf.reduce_mean(valid_loss)\n      eval_ops = [valid_loss]\n\n    #valid_iter = valid_dataset.make_batch(batch_size_, valid_inputs)\n    valid_batch = valid_iter.get_next()\n    valid_x, valid_y = melt.split_batch(valid_batch, valid_batch_size, num_gpus, training=False)\n    #valid_x, valid_y = melt.split_batch(valid_batch, num_gpus, training=False)\n\n    if not valid_names and infer_names:\n      valid_names = [infer_names[0]] + [x + '_y' for x in infer_names[1:]] + infer_names[1:]\n    if eval_fn:\n      def valid_fn(i):\n        if hasattr(model, 'eval'):\n          model.eval()\n        valid_predict = model(valid_x[i])\n        return valid_x[i], valid_y[i], valid_predict\n\n      valid_ops = melt.tower(valid_fn, num_gpus, training=False)\n\n      if FLAGS.use_horovod and FLAGS.horovod_eval:\n        # multiple gpu eval\n        num_valid_steps_per_epoch = -(-num_valid_examples // (valid_batch_size * hvd.size()))\n\n      metric_eval_fn = lambda model_path=None: \\\n                                    evaluate(valid_ops, \n                                            valid_iter,\n                                            num_steps=num_valid_steps_per_epoch,\n                                            num_examples=num_valid_examples,\n                                            eval_fn=eval_fn,\n                                            names=valid_names,\n                                            write_fn=valid_write_fn,\n                                            model_path=model_path,\n                                            write=write_valid,\n                                            num_gpus=num_gpus,\n                                            suffix=valid_suffix,\n                                            write_streaming=write_streaming,\n                                            sep=sep)\n\n\n  if test_dataset:\n    #test_iter = test_dataset.make_batch(batch_size_, test_inputs)\n    test_batch = test_iter.get_next()\n    test_x, test_y = melt.split_batch(test_batch, batch_size_, num_gpus, training=False)\n\n    def infer_fn(i):\n      if hasattr(model, 'eval'):\n        model.eval()\n      test_predict = model(test_x[i])\n      return test_x[i], test_predict\n\n    test_ops = melt.tower(infer_fn, num_gpus, training=False)\n\n    if FLAGS.use_horovod and FLAGS.horovod_eval:\n      # multiple gpu infer\n      num_test_steps_per_epoch = -(-num_test_examples // (test_batch_size * hvd.size()))\n\n    inference_fn = lambda model_path=None: \\\n                                  inference(test_ops, \n                                            test_iter,\n                                            num_steps=num_test_steps_per_epoch,\n                                            num_examples=num_test_examples,\n                                            names=infer_names,\n                                            debug_names=infer_debug_names,\n                                            write_fn=infer_write_fn,\n                                            model_path=model_path,\n                                            num_gpus=num_gpus,\n                                            suffix=infer_suffix,\n                                            write_streaming=write_streaming,\n                                            sep=sep)\n  else:\n    inference_fn = None\n\n  #model.save_weights('./weight')\n\n  # checkpoint = tf.train.Checkpoint(model=model)\n        \n  # ckpt_dir = FLAGS.model_dir + '/ckpt'\n\n  # print('-----------------', ckpt_dir)\n\n  # #TODO FIXME now I just changed tf code so to not by default save only latest 5\n  # # refer to https://github.com/tensorflow/tensorflow/issues/22036\n  #   # manager = tf.contrib.checkpoint.CheckpointManager(\n  # #     checkpoint, directory=ckpt_dir, max_to_keep=5)\n  # # latest_checkpoint = manager.latest_checkpoint\n\n  # latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\n  # status = checkpoint.restore(latest_checkpoint)\n  # checkpoint_prefix = os.path.join(ckpt_dir, 'ckpt')\n\n  # with melt.get_session() as sess:\n  #   status.initialize_or_restore(sess)\n  #   checkpoint.save(checkpoint_prefix)\n\n  assert num_examples\n  if FLAGS.use_horovod:\n    num_steps_per_epoch = -(-num_examples // (batch_size * hvd.size()))\n\n  # if horovod do valid one batch will fail on next run train ops WHY ? TODO FIXME eval ops must all set to None using horovod now\n  #eval_ops = eval_ops if not FLAGS.use_horovod or hvd.rank() == 0 else None\n  #eval_ops = eval_ops if not FLAGS.use_horovod else None\n  \n  metric_eval_fn = metric_eval_fn if not (FLAGS.use_horovod and not FLAGS.horovod_eval) or hvd.rank() == 0 else None\n  inference_fn = inference_fn if not (FLAGS.use_horovod and not FLAGS.horovod_eval) or hvd.rank() == 0 else None\n\n  train_flow(ops, \n             eval_ops=eval_ops,\n             model_dir=FLAGS.model_dir,\n             metric_eval_fn=metric_eval_fn,\n             inference_fn=inference_fn,\n             num_steps_per_epoch=num_steps_per_epoch,\n             model=model,\n             init_fn=init_fn,\n             restore_fn=restore_fn,\n             num_train_examples=num_examples,\n             num_epochs=FLAGS.num_epochs,\n             optimizer=optimizer,\n             )\n\ndef get_train():\n  train = melt.eager.train if tf.executing_eagerly() or FLAGS.torch_only else melt.apps.train\n  return train\n\ndef get_fit():\n  return get_train()\n"
  },
  {
    "path": "utils/melt/cnn/__init__.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-12-23 14:00:38.403784\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom melt.cnn.cnn import * \nimport melt.cnn.conv2d \nfrom melt.cnn.qanet import *"
  },
  {
    "path": "utils/melt/cnn/cnn.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cnn.py\n#        \\author   chenghuige  \n#          \\date   2018-02-18 12:26:23.284086\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport sys, os\nimport melt\n\nfrom official.transformer.model import model_utils\n\n\n\"\"\"\nHierarchical ConvNet\n\"\"\"\n#https://arxiv.org/pdf/1705.02364.pdf\n#https://github.com/facebookresearch/InferSent/blob/master/models.py\n\n# This is simple can be cnn baseline, but easy to overfit\n\nclass ConvNet(object):\n  def __init__(self, num_layers, num_filters, \n               use_position_encoding=False, keep_prob=1.0, \n               is_train=None, scope=\"conv_net\"):\n      self.num_layers = num_layers\n      self.keep_prob = keep_prob\n      self.num_filters = num_filters\n      self.is_train = is_train\n      self.use_position_encoding = use_position_encoding\n      self.scope = scope\n\n      assert self.num_filters\n\n  # seq_len for rnn compact \n  def encode(self, seq, seq_len=None, output_method='all'):\n    with tf.variable_scope(self.scope, reuse=tf.AUTO_REUSE):\n      if self.use_position_encoding:\n        hidden_size = melt.get_shape(seq, -1)\n        # Scale embedding by the sqrt of the hidden size\n        seq *= hidden_size ** 0.5\n\n        # Create binary array of size [batch_size, length]\n        # where 1 = padding, 0 = not padding\n        padding = tf.to_float(tf.sequence_mask(seq_len))\n\n        # Set all padding embedding values to 0\n        seq *= tf.expand_dims(padding, -1)\n\n        pos_encoding = model_utils.get_position_encoding(\n            tf.shape(seq)[1], tf.shape(seq)[-1])\n        seq = seq + pos_encoding\n\n      num_filters = self.num_filters\n      seqs = [seq]\n      #batch_size = melt.get_batch_size(seq)\n     \n      #kernel_sizes = [3, 5, 7, 9, 11, 13]\n      kernel_sizes = [3] * 7\n      assert self.num_layers <= len(kernel_sizes)\n\n      for layer in range(self.num_layers):\n        #input_size_ = melt.get_shape(seq, -1) if layer == 0 else num_filters\n        seq = melt.dropout(seq, self.keep_prob, self.is_train)\n        seq = tf.layers.conv1d(seqs[-1], num_filters, kernel_size=kernel_sizes[layer], padding='same', activation=tf.nn.relu)\n        # mask = melt.dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n        #                   keep_prob=self.keep_prob, is_train=self.is_train, mode=None)\n        #seq = tf.layers.conv1d(seqs[-1] * mask, num_filters, kernel_size=3, padding='same', activation=tf.nn.relu)\n        #seq = tf.layers.conv1d(seqs[-1] * mask, num_filters, kernel_size=kernel_sizes[layer], padding='same', activation=tf.nn.relu)\n        \n        # if self.is_train and self.keep_prob < 1:\n        #   seq = tf.nn.dropout(seq, self.keep_prob)\n        #seq = melt.layers.batch_norm(seq, self.is_train, name='layer_%d' % layer)\n        seqs.append(seq)\n      \n      outputs = tf.concat(seqs[1:], 2)\n      # not do any dropout in convet just dropout outside \n      # if self.is_train and self.keep_prob < 1:\n      #   outputs = tf.nn.dropout(outputs, self.keep_prob)\n\n      # compact for rnn with sate return\n      return melt.rnn.encode_outputs(outputs, seq_len, output_method)\n\nclass ConvNet2(object):\n  def __init__(self, num_layers, num_units, keep_prob=1.0, is_train=None, scope=\"conv_net\"):\n      self.num_layers = num_layers\n      self.keep_prob = keep_prob\n      self.num_units = num_units\n      self.is_train = is_train\n      self.scope = scope\n\n  # seq_len for rnn compact \n  def encode(self, seq, seq_len=None, output_method='all'):\n    with tf.variable_scope(self.scope):\n      num_filters = self.num_units\n      seqs = [seq]\n      batch_size = melt.get_batch_size(seq)\n     \n      kernel_sizes = [3, 5, 7, 9, 11, 13]\n      #kernel_sizes = [3] * 7\n      assert self.num_layers <= len(kernel_sizes)\n\n      for layer in range(self.num_layers):\n        input_size_ = melt.get_shape(seq, -1) if layer == 0 else num_filters\n        seq = melt.dropout(seq, self.keep_prob, self.is_train)\n        seq = tf.layers.conv1d(seqs[-1], num_filters, kernel_size=kernel_sizes[layer], padding='same', activation=tf.nn.relu)\n        # mask = melt.dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n        #                   keep_prob=self.keep_prob, is_train=self.is_train, mode=None)\n        #seq = tf.layers.conv1d(seqs[-1] * mask, num_filters, kernel_size=3, padding='same', activation=tf.nn.relu)\n        #seq = tf.layers.conv1d(seqs[-1] * mask, num_filters, kernel_size=kernel_sizes[layer], padding='same', activation=tf.nn.relu)\n        \n        # if self.is_train and self.keep_prob < 1:\n        #   seq = tf.nn.dropout(seq, self.keep_prob)\n        #seq = melt.layers.batch_norm(seq, self.is_train, name='layer_%d' % layer)\n        seqs.append(seq)\n      \n      outputs = tf.concat(seqs[1:], 2)\n      # not do any dropout in convet just dropout outside \n      # if self.is_train and self.keep_prob < 1:\n      #   outputs = tf.nn.dropout(outputs, self.keep_prob)\n\n      # compact for rnn with sate return\n      return melt.rnn.encode_outputs(outputs, seq_len, output_method)\n\n"
  },
  {
    "path": "utils/melt/cnn/conv2d.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cnn.py\n#        \\author   chenghuige  \n#          \\date   2018-02-18 12:26:23.284086\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport sys\n\nimport sys, os\nimport melt\n\n#1 -------------https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/learn/text_classification_cnn.py\n#may be change the interfance to encode(inputs) ?\n#conv2d too much mem to consume!\n# this is text_cnn! TODO\n\ndef encode(word_vectors, seq_len=None, output_method='all'):\n  \"\"\"2 layer ConvNet to predict from sequence of words to a class.\"\"\"\n  ## output last dim is only N_FILTERS as tf demo default 10 so small for encoding information of text ?\n  ## also if set large will easy to OOM I have limited length to 500\n  N_FILTERS = 10 #filters is as output\n  WINDOW_SIZE = 3\n  #FILTER_SHAPE1 = [WINDOW_SIZE, EMBEDDING_SIZE]\n  FILTER_SHAPE2 = [WINDOW_SIZE, N_FILTERS]\n  POOLING_WINDOW = 4\n  POOLING_STRIDE = 2\n\n  #[batch_size, length, emb_dim]\n  word_vectors = tf.expand_dims(word_vectors, -1)\n  emb_dim = word_vectors.get_shape()[-1]\n  FILTER_SHAPE1 = [WINDOW_SIZE, emb_dim]\n  with tf.variable_scope('cnn_layer1'):\n    # Apply Convolution filtering on input sequence.\n    conv1 = tf.layers.conv2d(\n        word_vectors,\n        filters=N_FILTERS,\n        kernel_size=FILTER_SHAPE1,\n        padding='VALID',\n        # Add a ReLU for non linearity.\n        activation=tf.nn.relu)\n    print('-----conv1', conv1)\n    # Max pooling across output of Convolution+Relu.\n    pool1 = tf.layers.max_pooling2d(\n        conv1,\n        pool_size=POOLING_WINDOW,\n        strides=POOLING_STRIDE,\n        padding='SAME')\n    print('-----pool1', pool1)\n    # Transpose matrix so that n_filters from convolution becomes width.\n    pool1 = tf.transpose(pool1, [0, 1, 3, 2])\n    print('-----pool1', pool1)\n  with tf.variable_scope('cnn_layer2'):\n    # Second level of convolution filtering.\n    conv2 = tf.layers.conv2d(\n        pool1,\n        filters=N_FILTERS,\n        kernel_size=FILTER_SHAPE2,\n        padding='VALID')\n    print('-----conv2', conv2)\n    # Max across each filter to get useful features for classification.\n    #pool2 = tf.squeeze(tf.reduce_max(conv2, 1), squeeze_dims=[1])\n    #print('-----pool2', pool2)\n    #return pool2\n    output = tf.squeeze(conv2, 2)\n    print('--------output', output)\n    #return tf.layers.dense(pool2, emb_dim)\n    #return melt.rnn.encode_outputs(conv2, sequence_length=seq_len, output_method=output_method)\n    return output"
  },
  {
    "path": "utils/melt/cnn/qanet.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cnn.py\n#        \\author   chenghuige  \n#          \\date   2018-02-18 12:26:23.284086\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport numpy as np\nimport math\n\nfrom tensorflow.contrib.rnn import MultiRNNCell\nfrom tensorflow.contrib.rnn import RNNCell\n\nfrom tensorflow.python.util import nest\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import init_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import clip_ops\n\nfrom functools import reduce\nfrom operator import mul\n\nimport melt\n\n'''\nSome functions are taken directly from Tensor2Tensor Library:\nhttps://github.com/tensorflow/tensor2tensor/\nand BiDAF repository:\nhttps://github.com/allenai/bi-att-flow\n'''\n\ninitializer = lambda: tf.contrib.layers.variance_scaling_initializer(factor=1.0,\n                                                             mode='FAN_AVG',\n                                                             uniform=True,\n                                                             dtype=tf.float32)\ninitializer_relu = lambda: tf.contrib.layers.variance_scaling_initializer(factor=2.0,\n                                                             mode='FAN_IN',\n                                                             uniform=False,\n                                                             dtype=tf.float32)\nregularizer = tf.contrib.layers.l2_regularizer(scale = 3e-7)\n\ndef glu(x):\n    \"\"\"Gated Linear Units from https://arxiv.org/pdf/1612.08083.pdf\"\"\"\n    x, x_h = tf.split(x, 2, axis = -1)\n    return tf.sigmoid(x) * x_h\n\ndef noam_norm(x, epsilon=1.0, scope=None, reuse=None):\n    \"\"\"One version of layer normalization.\"\"\"\n    with tf.name_scope(scope, default_name=\"noam_norm\", values=[x]):\n        shape = x.get_shape()\n        ndims = len(shape)\n        return tf.nn.l2_normalize(x, ndims - 1, epsilon=epsilon) * tf.sqrt(tf.to_float(shape[-1]))\n\ndef layer_norm_compute_python(x, epsilon, scale, bias):\n    \"\"\"Layer norm raw computation.\"\"\"\n    mean = tf.reduce_mean(x, axis=[-1], keep_dims=True)\n    variance = tf.reduce_mean(tf.square(x - mean), axis=[-1], keep_dims=True)\n    norm_x = (x - mean) * tf.rsqrt(variance + epsilon)\n    return norm_x * scale + bias\n\ndef layer_norm(x, filters=None, epsilon=1e-6, scope=None, reuse=None):\n    \"\"\"Layer normalize the tensor x, averaging over the last dimension.\"\"\"\n    if filters is None:\n        filters = x.get_shape()[-1]\n    with tf.variable_scope(scope, default_name=\"layer_norm\", values=[x], reuse=reuse):\n        scale = tf.get_variable(\n            \"layer_norm_scale\", [filters], regularizer = regularizer, initializer=tf.ones_initializer())\n        bias = tf.get_variable(\n            \"layer_norm_bias\", [filters], regularizer = regularizer, initializer=tf.zeros_initializer())\n        result = layer_norm_compute_python(x, epsilon, scale, bias)\n        return result\n\nnorm_fn = layer_norm#tf.contrib.layers.layer_norm #tf.contrib.layers.layer_norm or noam_norm\n\ndef highway(x, size = None, activation = None,\n            num_layers = 2, scope = \"highway\", dropout = 0.0, reuse = None):\n    with tf.variable_scope(scope, reuse):\n        if size is None:\n            size = x.shape.as_list()[-1]\n        else:\n            x = conv(x, size, name = \"input_projection\", reuse = reuse)\n        for i in range(num_layers):\n            T = conv(x, size, bias = True, activation = tf.sigmoid,\n                     name = \"gate_%d\"%i, reuse = reuse)\n            H = conv(x, size, bias = True, activation = activation,\n                     name = \"activation_%d\"%i, reuse = reuse)\n            H = tf.nn.dropout(H, 1.0 - dropout)\n            x = H * T + x * (1.0 - T)\n        return x\n\ndef layer_dropout(inputs, residual, dropout):\n    pred = tf.random_uniform([]) < dropout\n    return tf.cond(pred, lambda: residual, lambda: tf.nn.dropout(inputs, 1.0 - dropout) + residual)\n\ndef residual_block(inputs, num_blocks, num_conv_layers, kernel_size, mask = None,\n                   num_filters = 128, input_projection = False, num_heads = 8,\n                   seq_len = None, scope = \"res_block\", is_training = True,\n                   reuse = None, bias = True, dropout = 0.0):\n    with tf.variable_scope(scope, reuse = reuse):\n        if input_projection:\n            inputs = conv(inputs, num_filters, name = \"input_projection\", reuse = reuse)\n        outputs = inputs\n        sublayer = 1\n        total_sublayers = (num_conv_layers + 2) * num_blocks\n        for i in range(num_blocks):\n            outputs = add_timing_signal_1d(outputs)\n            outputs, sublayer = conv_block(outputs, num_conv_layers, kernel_size, num_filters,\n                seq_len = seq_len, scope = \"encoder_block_%d\"%i,reuse = reuse, bias = bias,\n                dropout = dropout, sublayers = (sublayer, total_sublayers))\n            outputs, sublayer = self_attention_block(outputs, num_filters, seq_len, mask = mask, num_heads = num_heads,\n                scope = \"self_attention_layers%d\"%i, reuse = reuse, is_training = is_training,\n                bias = bias, dropout = dropout, sublayers = (sublayer, total_sublayers))\n        return outputs\n\ndef conv_block(inputs, num_conv_layers, kernel_size, num_filters,\n               seq_len = None, scope = \"conv_block\", is_training = True,\n               reuse = None, bias = True, dropout = 0.0, sublayers = (1, 1)):\n    with tf.variable_scope(scope, reuse = reuse):\n        outputs = tf.expand_dims(inputs,2)\n        l, L = sublayers\n        for i in range(num_conv_layers):\n            residual = outputs\n            outputs = norm_fn(outputs, scope = \"layer_norm_%d\"%i, reuse = reuse)\n            if (i) % 2 == 0:\n                outputs = tf.nn.dropout(outputs, 1.0 - dropout)\n            outputs = depthwise_separable_convolution(outputs,\n                kernel_size = (kernel_size, 1), num_filters = num_filters,\n                scope = \"depthwise_conv_layers_%d\"%i, is_training = is_training, reuse = reuse)\n            outputs = layer_dropout(outputs, residual, dropout * float(l) / L)\n            l += 1\n        return tf.squeeze(outputs,2), l\n\ndef self_attention_block(inputs, num_filters, seq_len, mask = None, num_heads = 8,\n                         scope = \"self_attention_ffn\", reuse = None, is_training = True,\n                         bias = True, dropout = 0.0, sublayers = (1, 1)):\n    with tf.variable_scope(scope, reuse = reuse):\n        l, L = sublayers\n        # Self attention\n        outputs = norm_fn(inputs, scope = \"layer_norm_1\", reuse = reuse)\n        outputs = tf.nn.dropout(outputs, 1.0 - dropout)\n        outputs = multihead_attention(outputs, num_filters,\n            num_heads = num_heads, seq_len = seq_len, reuse = reuse,\n            mask = mask, is_training = is_training, bias = bias, dropout = dropout)\n        residual = layer_dropout(outputs, inputs, dropout * float(l) / L)\n        l += 1\n        # Feed-forward\n        outputs = norm_fn(residual, scope = \"layer_norm_2\", reuse = reuse)\n        outputs = tf.nn.dropout(outputs, 1.0 - dropout)\n        outputs = conv(outputs, num_filters, True, tf.nn.relu, name = \"FFN_1\", reuse = reuse)\n        outputs = conv(outputs, num_filters, True, None, name = \"FFN_2\", reuse = reuse)\n        outputs = layer_dropout(outputs, residual, dropout * float(l) / L)\n        l += 1\n        return outputs, l\n\ndef multihead_attention(queries, units, num_heads,\n                        memory = None,\n                        seq_len = None,\n                        scope = \"Multi_Head_Attention\",\n                        reuse = None,\n                        mask = None,\n                        is_training = True,\n                        bias = True,\n                        dropout = 0.0):\n    with tf.variable_scope(scope, reuse = reuse):\n        # Self attention\n        if memory is None:\n            memory = queries\n\n        memory = conv(memory, 2 * units, name = \"memory_projection\", reuse = reuse)\n        query = conv(queries, units, name = \"query_projection\", reuse = reuse)\n        Q = split_last_dimension(query, num_heads)\n        K, V = [split_last_dimension(tensor, num_heads) for tensor in tf.split(memory,2,axis = 2)]\n\n        key_depth_per_head = units // num_heads\n        Q *= key_depth_per_head**-0.5\n        x = dot_product_attention(Q,K,V,\n                                  bias = bias,\n                                  seq_len = seq_len,\n                                  mask = mask,\n                                  is_training = is_training,\n                                  scope = \"dot_product_attention\",\n                                  reuse = reuse, dropout = dropout)\n        return combine_last_two_dimensions(tf.transpose(x,[0,2,1,3]))\n\ndef conv(inputs, output_size, bias = None, activation = None, kernel_size = 1, name = \"conv\", reuse = None):\n    with tf.variable_scope(name, reuse = reuse):\n        shapes = inputs.shape.as_list()\n        if len(shapes) > 4:\n            raise NotImplementedError\n        elif len(shapes) == 4:\n            filter_shape = [1,kernel_size,shapes[-1],output_size]\n            bias_shape = [1,1,1,output_size]\n            strides = [1,1,1,1]\n        else:\n            filter_shape = [kernel_size,shapes[-1],output_size]\n            bias_shape = [1,1,output_size]\n            strides = 1\n        conv_func = tf.nn.conv1d if len(shapes) == 3 else tf.nn.conv2d\n        kernel_ = tf.get_variable(\"kernel_\",\n                        filter_shape,\n                        dtype = tf.float32,\n                        regularizer=regularizer,\n                        initializer = initializer_relu() if activation is not None else initializer())\n        outputs = conv_func(inputs, kernel_, strides, \"VALID\")\n        if bias:\n            outputs += tf.get_variable(\"bias_\",\n                        bias_shape,\n                        regularizer=regularizer,\n                        initializer = tf.zeros_initializer())\n        if activation is not None:\n            return activation(outputs)\n        else:\n            return outputs\n\ndef mask_logits(inputs, mask, mask_value = -1e30):\n    mask = tf.cast(mask, tf.float32)\n    return inputs + mask_value * (1 - mask)\n\ndef depthwise_separable_convolution(inputs, kernel_size, num_filters,\n                                    scope = \"depthwise_separable_convolution\",\n                                    bias = True, is_training = True, reuse = None):\n    with tf.variable_scope(scope, reuse = reuse):\n        shapes = inputs.shape.as_list()\n        depthwise_filter = tf.get_variable(\"depthwise_filter\",\n                                        (kernel_size[0], kernel_size[1], shapes[-1], 1),\n                                        dtype = tf.float32,\n                                        regularizer=regularizer,\n                                        initializer = initializer_relu())\n        pointwise_filter = tf.get_variable(\"pointwise_filter\",\n                                        (1,1,shapes[-1],num_filters),\n                                        dtype = tf.float32,\n                                        regularizer=regularizer,\n                                        initializer = initializer_relu())\n        outputs = tf.nn.separable_conv2d(inputs,\n                                        depthwise_filter,\n                                        pointwise_filter,\n                                        strides = (1,1,1,1),\n                                        padding = \"SAME\")\n        if bias:\n            b = tf.get_variable(\"bias\",\n                    outputs.shape[-1],\n                    regularizer=regularizer,\n                    initializer = tf.zeros_initializer())\n            outputs += b\n        outputs = tf.nn.relu(outputs)\n        return outputs\n\ndef split_last_dimension(x, n):\n    \"\"\"Reshape x so that the last dimension becomes two dimensions.\n    The first of these two dimensions is n.\n    Args:\n    x: a Tensor with shape [..., m]\n    n: an integer.\n    Returns:\n    a Tensor with shape [..., n, m/n]\n    \"\"\"\n    old_shape = x.get_shape().dims\n    last = old_shape[-1]\n    new_shape = old_shape[:-1] + [n] + [last // n if last else None]\n    ret = tf.reshape(x, tf.concat([tf.shape(x)[:-1], [n, -1]], 0))\n    ret.set_shape(new_shape)\n    return tf.transpose(ret,[0,2,1,3])\n\ndef dot_product_attention(q,\n                          k,\n                          v,\n                          bias,\n                          seq_len = None,\n                          mask = None,\n                          is_training = True,\n                          scope=None,\n                          reuse = None,\n                          dropout = 0.0):\n    \"\"\"dot-product attention.\n    Args:\n    q: a Tensor with shape [batch, heads, length_q, depth_k]\n    k: a Tensor with shape [batch, heads, length_kv, depth_k]\n    v: a Tensor with shape [batch, heads, length_kv, depth_v]\n    bias: bias Tensor (see attention_bias())\n    is_training: a bool of training\n    scope: an optional string\n    Returns:\n    A Tensor.\n    \"\"\"\n    with tf.variable_scope(scope, default_name=\"dot_product_attention\", reuse = reuse):\n        # [batch, num_heads, query_length, memory_length]\n        logits = tf.matmul(q, k, transpose_b=True)\n        if bias:\n            b = tf.get_variable(\"bias\",\n                    logits.shape[-1],\n                    regularizer=regularizer,\n                    initializer = tf.zeros_initializer())\n            logits += b\n        if mask is not None:\n            mask = tf.expand_dims(mask, 1)\n            mask = tf.expand_dims(mask, 1)\n            logits = mask_logits(logits, mask)\n        weights = tf.nn.softmax(logits, name=\"attention_weights\")\n        # dropping out the attention links for each of the heads\n        weights = tf.nn.dropout(weights, 1.0 - dropout)\n        return tf.matmul(weights, v)\n\ndef combine_last_two_dimensions(x):\n    \"\"\"Reshape x so that the last two dimension become one.\n    Args:\n    x: a Tensor with shape [..., a, b]\n    Returns:\n    a Tensor with shape [..., ab]\n    \"\"\"\n    old_shape = x.get_shape().dims\n    a, b = old_shape[-2:]\n    new_shape = old_shape[:-2] + [a * b if a and b else None]\n    ret = tf.reshape(x, tf.concat([tf.shape(x)[:-2], [-1]], 0))\n    ret.set_shape(new_shape)\n    return ret\n\ndef add_timing_signal_1d(x, min_timescale=1.0, max_timescale=1.0e4):\n    \"\"\"Adds a bunch of sinusoids of different frequencies to a Tensor.\n    Each channel of the input Tensor is incremented by a sinusoid of a different\n    frequency and phase.\n    This allows attention to learn to use absolute and relative positions.\n    Timing signals should be added to some precursors of both the query and the\n    memory inputs to attention.\n    The use of relative position is possible because sin(x+y) and cos(x+y) can be\n    experessed in terms of y, sin(x) and cos(x).\n    In particular, we use a geometric sequence of timescales starting with\n    min_timescale and ending with max_timescale.  The number of different\n    timescales is equal to channels / 2. For each timescale, we\n    generate the two sinusoidal signals sin(timestep/timescale) and\n    cos(timestep/timescale).  All of these sinusoids are concatenated in\n    the channels dimension.\n    Args:\n    x: a Tensor with shape [batch, length, channels]\n    min_timescale: a float\n    max_timescale: a float\n    Returns:\n    a Tensor the same shape as x.\n    \"\"\"\n    length = tf.shape(x)[1]\n    channels = tf.shape(x)[2]\n    signal = get_timing_signal_1d(length, channels, min_timescale, max_timescale)\n    return x + signal\n\ndef get_timing_signal_1d(length, channels, min_timescale=1.0, max_timescale=1.0e4):\n    \"\"\"Gets a bunch of sinusoids of different frequencies.\n    Each channel of the input Tensor is incremented by a sinusoid of a different\n    frequency and phase.\n    This allows attention to learn to use absolute and relative positions.\n    Timing signals should be added to some precursors of both the query and the\n    memory inputs to attention.\n    The use of relative position is possible because sin(x+y) and cos(x+y) can be\n    experessed in terms of y, sin(x) and cos(x).\n    In particular, we use a geometric sequence of timescales starting with\n    min_timescale and ending with max_timescale.  The number of different\n    timescales is equal to channels / 2. For each timescale, we\n    generate the two sinusoidal signals sin(timestep/timescale) and\n    cos(timestep/timescale).  All of these sinusoids are concatenated in\n    the channels dimension.\n    Args:\n    length: scalar, length of timing signal sequence.\n    channels: scalar, size of timing embeddings to create. The number of\n        different timescales is equal to channels / 2.\n    min_timescale: a float\n    max_timescale: a float\n    Returns:\n    a Tensor of timing signals [1, length, channels]\n    \"\"\"\n    position = tf.to_float(tf.range(length))\n    num_timescales = channels // 2\n    log_timescale_increment = (\n        math.log(float(max_timescale) / float(min_timescale)) /\n            (tf.to_float(num_timescales) - 1))\n    inv_timescales = min_timescale * tf.exp(\n        tf.to_float(tf.range(num_timescales)) * -log_timescale_increment)\n    scaled_time = tf.expand_dims(position, 1) * tf.expand_dims(inv_timescales, 0)\n    signal = tf.concat([tf.sin(scaled_time), tf.cos(scaled_time)], axis=1)\n    signal = tf.pad(signal, [[0, 0], [0, tf.mod(channels, 2)]])\n    signal = tf.reshape(signal, [1, length, channels])\n    return signal\n\ndef ndim(x):\n    \"\"\"Copied from keras==2.0.6\n    Returns the number of axes in a tensor, as an integer.\n\n    # Arguments\n        x: Tensor or variable.\n\n    # Returns\n        Integer (scalar), number of axes.\n\n    # Examples\n    ```python\n        >>> from keras import backend as K\n        >>> inputs = K.placeholder(shape=(2, 4, 5))\n        >>> val = np.array([[1, 2], [3, 4]])\n        >>> kvar = K.variable(value=val)\n        >>> K.ndim(inputs)\n        3\n        >>> K.ndim(kvar)\n        2\n    ```\n    \"\"\"\n    dims = x.get_shape()._dims\n    if dims is not None:\n        return len(dims)\n    return None\n\ndef dot(x, y):\n    \"\"\"Modified from keras==2.0.6\n    Multiplies 2 tensors (and/or variables) and returns a *tensor*.\n\n    When attempting to multiply a nD tensor\n    with a nD tensor, it reproduces the Theano behavior.\n    (e.g. `(2, 3) * (4, 3, 5) -> (2, 4, 5)`)\n\n    # Arguments\n        x: Tensor or variable.\n        y: Tensor or variable.\n\n    # Returns\n        A tensor, dot product of `x` and `y`.\n    \"\"\"\n    if ndim(x) is not None and (ndim(x) > 2 or ndim(y) > 2):\n        x_shape = []\n        for i, s in zip(x.get_shape().as_list(), tf.unstack(tf.shape(x))):\n            if i is not None:\n                x_shape.append(i)\n            else:\n                x_shape.append(s)\n        x_shape = tuple(x_shape)\n        y_shape = []\n        for i, s in zip(y.get_shape().as_list(), tf.unstack(tf.shape(y))):\n            if i is not None:\n                y_shape.append(i)\n            else:\n                y_shape.append(s)\n        y_shape = tuple(y_shape)\n        y_permute_dim = list(range(ndim(y)))\n        y_permute_dim = [y_permute_dim.pop(-2)] + y_permute_dim\n        xt = tf.reshape(x, [-1, x_shape[-1]])\n        yt = tf.reshape(tf.transpose(y, perm=y_permute_dim), [y_shape[-2], -1])\n        return tf.reshape(tf.matmul(xt, yt),\n                          x_shape[:-1] + y_shape[:-2] + y_shape[-1:])\n    if isinstance(x, tf.SparseTensor):\n        out = tf.sparse_tensor_dense_matmul(x, y)\n    else:\n        out = tf.matmul(x, y)\n    return out\n\ndef batch_dot(x, y, axes=None):\n    \"\"\"Copy from keras==2.0.6\n    Batchwise dot product.\n\n    `batch_dot` is used to compute dot product of `x` and `y` when\n    `x` and `y` are data in batch, i.e. in a shape of\n    `(batch_size, :)`.\n    `batch_dot` results in a tensor or variable with less dimensions\n    than the input. If the number of dimensions is reduced to 1,\n    we use `expand_dims` to make sure that ndim is at least 2.\n\n    # Arguments\n        x: Keras tensor or variable with `ndim >= 2`.\n        y: Keras tensor or variable with `ndim >= 2`.\n        axes: list of (or single) int with target dimensions.\n            The lengths of `axes[0]` and `axes[1]` should be the same.\n\n    # Returns\n        A tensor with shape equal to the concatenation of `x`'s shape\n        (less the dimension that was summed over) and `y`'s shape\n        (less the batch dimension and the dimension that was summed over).\n        If the final rank is 1, we reshape it to `(batch_size, 1)`.\n    \"\"\"\n    if isinstance(axes, int):\n        axes = (axes, axes)\n    x_ndim = ndim(x)\n    y_ndim = ndim(y)\n    if x_ndim > y_ndim:\n        diff = x_ndim - y_ndim\n        y = tf.reshape(y, tf.concat([tf.shape(y), [1] * (diff)], axis=0))\n    elif y_ndim > x_ndim:\n        diff = y_ndim - x_ndim\n        x = tf.reshape(x, tf.concat([tf.shape(x), [1] * (diff)], axis=0))\n    else:\n        diff = 0\n    if ndim(x) == 2 and ndim(y) == 2:\n        if axes[0] == axes[1]:\n            out = tf.reduce_sum(tf.multiply(x, y), axes[0])\n        else:\n            out = tf.reduce_sum(tf.multiply(tf.transpose(x, [1, 0]), y), axes[1])\n    else:\n        if axes is not None:\n            adj_x = None if axes[0] == ndim(x) - 1 else True\n            adj_y = True if axes[1] == ndim(y) - 1 else None\n        else:\n            adj_x = None\n            adj_y = None\n        out = tf.matmul(x, y, adjoint_a=adj_x, adjoint_b=adj_y)\n    if diff:\n        if x_ndim > y_ndim:\n            idx = x_ndim + y_ndim - 3\n        else:\n            idx = x_ndim - 1\n        out = tf.squeeze(out, list(range(idx, idx + diff)))\n    if ndim(out) == 1:\n        out = tf.expand_dims(out, 1)\n    return out\n\ndef optimized_trilinear_for_attention(args, c_maxlen, q_maxlen, input_keep_prob=1.0,\n    scope='efficient_trilinear',\n    bias_initializer=tf.zeros_initializer(),\n    kernel_initializer=initializer()):\n    assert len(args) == 2, \"just use for computing attention with two input\"\n    arg0_shape = args[0].get_shape().as_list()\n    arg1_shape = args[1].get_shape().as_list()\n    if len(arg0_shape) != 3 or len(arg1_shape) != 3:\n        raise ValueError(\"`args` must be 3 dims (batch_size, len, dimension)\")\n    if arg0_shape[2] != arg1_shape[2]:\n        raise ValueError(\"the last dimension of `args` must equal\")\n    arg_size = arg0_shape[2]\n    dtype = args[0].dtype\n    droped_args = [tf.nn.dropout(arg, input_keep_prob) for arg in args]\n    with tf.variable_scope(scope):\n        weights4arg0 = tf.get_variable(\n            \"linear_kernel4arg0\", [arg_size, 1],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=kernel_initializer)\n        weights4arg1 = tf.get_variable(\n            \"linear_kernel4arg1\", [arg_size, 1],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=kernel_initializer)\n        weights4mlu = tf.get_variable(\n            \"linear_kernel4mul\", [1, 1, arg_size],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=kernel_initializer)\n        biases = tf.get_variable(\n            \"linear_bias\", [1],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=bias_initializer)\n        subres0 = tf.tile(dot(droped_args[0], weights4arg0), [1, 1, q_maxlen])\n        subres1 = tf.tile(tf.transpose(dot(droped_args[1], weights4arg1), perm=(0, 2, 1)), [1, c_maxlen, 1])\n        subres2 = batch_dot(droped_args[0] * weights4mlu, tf.transpose(droped_args[1], perm=(0, 2, 1)))\n        res = subres0 + subres1 + subres2\n        nn_ops.bias_add(res, biases)\n        return res\n\ndef trilinear(args,\n            output_size = 1,\n            bias = True,\n            squeeze=False,\n            wd=0.0,\n            input_keep_prob= 1.0,\n            scope = \"trilinear\"):\n    with tf.variable_scope(scope):\n        flat_args = [flatten(arg, 1) for arg in args]\n        flat_args = [tf.nn.dropout(arg, input_keep_prob) for arg in flat_args]\n        flat_out = _linear(flat_args, output_size, bias, scope=scope)\n        out = reconstruct(flat_out, args[0], 1)\n        return tf.squeeze(out, -1)\n\ndef flatten(tensor, keep):\n    fixed_shape = tensor.get_shape().as_list()\n    start = len(fixed_shape) - keep\n    left = reduce(mul, [fixed_shape[i] or tf.shape(tensor)[i] for i in range(start)])\n    out_shape = [left] + [fixed_shape[i] or tf.shape(tensor)[i] for i in range(start, len(fixed_shape))]\n    flat = tf.reshape(tensor, out_shape)\n    return flat\n\ndef reconstruct(tensor, ref, keep):\n    ref_shape = ref.get_shape().as_list()\n    tensor_shape = tensor.get_shape().as_list()\n    ref_stop = len(ref_shape) - keep\n    tensor_start = len(tensor_shape) - keep\n    pre_shape = [ref_shape[i] or tf.shape(ref)[i] for i in range(ref_stop)]\n    keep_shape = [tensor_shape[i] or tf.shape(tensor)[i] for i in range(tensor_start, len(tensor_shape))]\n    # pre_shape = [tf.shape(ref)[i] for i in range(len(ref.get_shape().as_list()[:-keep]))]\n    # keep_shape = tensor.get_shape().as_list()[-keep:]\n    target_shape = pre_shape + keep_shape\n    out = tf.reshape(tensor, target_shape)\n    return out\n\ndef _linear(args,\n            output_size,\n            bias,\n            bias_initializer=tf.zeros_initializer(),\n            scope = None,\n            kernel_initializer=initializer(),\n            reuse = None):\n  \"\"\"Linear map: sum_i(args[i] * W[i]), where W[i] is a variable.\n  Args:\n    args: a 2D Tensor or a list of 2D, batch x n, Tensors.\n    output_size: int, second dimension of W[i].\n    bias: boolean, whether to add a bias term or not.\n    bias_initializer: starting value to initialize the bias\n      (default is all zeros).\n    kernel_initializer: starting value to initialize the weight.\n  Returns:\n    A 2D Tensor with shape [batch x output_size] equal to\n    sum_i(args[i] * W[i]), where W[i]s are newly created matrices.\n  Raises:\n    ValueError: if some of the arguments has unspecified or wrong shape.\n  \"\"\"\n  if args is None or (nest.is_sequence(args) and not args):\n    raise ValueError(\"`args` must be specified\")\n  if not nest.is_sequence(args):\n    args = [args]\n  # Calculate the total size of arguments on dimension 1.\n  total_arg_size = 0\n  shapes = [a.get_shape() for a in args]\n  for shape in shapes:\n    if shape.ndims != 2:\n      raise ValueError(\"linear is expecting 2D arguments: %s\" % shapes)\n    if shape[1].value is None:\n      raise ValueError(\"linear expects shape[1] to be provided for shape %s, \"\n                       \"but saw %s\" % (shape, shape[1]))\n    else:\n      total_arg_size += shape[1].value\n\n  dtype = [a.dtype for a in args][0]\n\n  # Now the computation.\n  with tf.variable_scope(scope, reuse = reuse) as outer_scope:\n    weights = tf.get_variable(\n        \"linear_kernel\", [total_arg_size, output_size],\n        dtype=dtype,\n        regularizer=regularizer,\n        initializer=kernel_initializer)\n    if len(args) == 1:\n      res = math_ops.matmul(args[0], weights)\n    else:\n      res = math_ops.matmul(array_ops.concat(args, 1), weights)\n    if not bias:\n      return res\n    with tf.variable_scope(outer_scope) as inner_scope:\n      inner_scope.set_partitioner(None)\n      biases = tf.get_variable(\n          \"linear_bias\", [output_size],\n          dtype=dtype,\n          regularizer=regularizer,\n          initializer=bias_initializer)\n    return nn_ops.bias_add(res, biases)\n\ndef total_params():\n    total_parameters = 0\n    for variable in tf.trainable_variables():\n        shape = variable.get_shape()\n        variable_parametes = 1\n        for dim in shape:\n            variable_parametes *= dim.value\n        total_parameters += variable_parametes\n    print(\"Total number of trainable parameters: {}\".format(total_parameters))\n\n\nclass QANet(object):\n  def __init__(self, \n               num_blocks=1, \n               num_conv_layers=4,\n               kernel_size=7,\n               mask=None,\n               num_filters=128, \n               num_heads=8,\n               input_projection=False, \n               bias=False,\n               dropout=0.1,\n               is_training=None, \n               scope=\"qanet\"):\n      self.kernel_size = kernel_size\n      self.num_blocks = num_blocks\n      self.num_filters = num_filters\n      self.num_conv_layers = num_conv_layers\n      self.num_heads = num_heads\n      self.input_projection = input_projection\n      self.is_training = is_training\n      self.scope = scope\n\n      self.bias = bias\n      self.dropout = dropout\n\n      if not self.is_training:\n        self.dropout = 0.\n\n\n      assert self.num_filters\n\n  # seq_len for rnn compact \n  def encode(self, inputs, seq_len=None, output_method='all'):\n    with tf.variable_scope(self.scope, reuse=tf.AUTO_REUSE):\n      inputs = highway(inputs, size=self.num_filters, scope=\"highway\", dropout=self.dropout, reuse=tf.AUTO_REUSE)\n      if self.input_projection:\n        inputs = conv(inputs, self.num_filters, name = \"input_projection\", reuse=tf.AUTO_REUSE)\n      outputs = inputs\n      sublayer = 1\n      total_sublayers = (self.num_conv_layers + 2) * self.num_blocks\n      for i in range(self.num_blocks):\n        outputs = add_timing_signal_1d(outputs)\n        outputs, sublayer = conv_block(outputs, self.num_conv_layers, self.kernel_size, self.num_filters,\n              seq_len=seq_len, scope=\"encoder_block_%d\"%i, reuse=tf.AUTO_REUSE, bias=self.bias,\n              dropout=self.dropout, sublayers = (sublayer, total_sublayers))\n        mask = tf.sequence_mask(seq_len)\n        outputs, sublayer = self_attention_block(outputs, self.num_filters, seq_len, mask=mask, num_heads=self.num_heads,\n            scope=\"self_attention_layers%d\"%i, reuse=tf.AUTO_REUSE, is_training=self.is_training,\n            bias=self.bias, dropout=self.dropout, sublayers=(sublayer, total_sublayers))\n\n      # compact for rnn with sate return\n      return melt.rnn.encode_outputs(outputs, seq_len, output_method)\n"
  },
  {
    "path": "utils/melt/eager/__init__.py",
    "content": "import melt.eager.util \nfrom melt.eager.util import *\nfrom melt.eager.train import *"
  },
  {
    "path": "utils/melt/eager/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-09-03 15:40:04.947138\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\ntry:\n  import torch \n  device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nexcept Exception:\n  pass\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\ntfe = tf.contrib.eager\n\nimport sys \nimport os\nfrom tqdm import tqdm \nimport numpy as np\nimport inspect\nimport traceback\nimport copy\nimport itertools\n\nimport gezi\nimport melt\nlogging = melt.logging\n\ntry:\n  #import horovod.tensorflow as hvd\n  #import horovod.torch as hvd\n  #hvd.init()\n  import mpi4py\n  from mpi4py import MPI\n  comm = MPI.COMM_WORLD\nexcept Exception:\n  pass\n\n\ndef torch_(x):\n  if FLAGS.torch_only:\n    return x\n  for dim in x.shape:\n    if dim == 0:\n      return x\n\n  x = x.numpy()\n  # TODO..\n  if x.dtype == np.int64 or x.dtype == np.int32 or x.dtype == np.float32 or x.dtype == np.float64:\n  #if type(x) != np.str_:\n    x = torch.from_numpy(x)\n    #if torch.cuda.is_available():\n      #x = x.cuda()\n    x = x.to(device)\n    ## TODO FIXME support cpu\n    #x = x.cuda()\n\n  return x\n\ndef to_torch(x, y=None):\n  if FLAGS.torch_only:\n    for key in x:\n      if type(x[key][0]) != np.str_:\n      #if x.dtype == np.int64 or x.dtype == np.int32 or x.dtype == np.float32 or x.dtype == np.float64:\n        #x[key] = x[key].to(device)\n        x[key] = x[key].cuda()\n    return x, y.to(device)\n    #return x, y.cuda()\n  if y is not None:\n    y = torch_(y)\n\n  if not isinstance(x, dict):\n    x = torch_(x)\n  else:\n    for key in x:\n      x[key] = torch_(x[key])\n  if y is None:\n    return x\n  else:\n    return x, y\n\n# TODO not support multiple gpu right now!\n\ndef evaluate(model, dataset, eval_fn, model_path=None, \n             names=None, write_fn=None, write_streaming=False,\n             num_steps=None, num_examples=None,\n             suffix='.valid', sep=','):\n  if FLAGS.use_horovod:\n    if FLAGS.torch:\n      import horovod.torch as hvd\n    else:\n      import horovod.tensorflow as hvd\n\n  if hasattr(model, 'eval'):\n    model.eval()\n  if not write_fn:\n    write_streaming = True\n  predicts_list = []\n  labels_list = []\n  ids_list = []\n  ofile = model_path + suffix if model_path else None\n  if write_streaming:\n    out = open(ofile, 'w', encoding='utf-8') if ofile else None\n    if out:\n      if names is not None:\n        print(*names, sep=sep, file=out)\n  else:\n    out = None\n\n  for x, y in tqdm(dataset, total=num_steps, ascii=True):\n    if FLAGS.torch:\n      x, y = to_torch(x, y)\n\n    predicts = model(x)\n    if FLAGS.torch:\n      predicts = predicts.detach().cpu()\n      y = y.detach().cpu()\n\n    predicts_list.append(predicts)\n    labels_list.append(y)\n    if not FLAGS.torch:\n      ids = gezi.decode(x['id'].numpy())\n    else:\n      ids = gezi.decode(x['id'])\n    ids_list.append(ids)\n\n    if out:\n      for id, label, predict in zip(ids, y.numpy(), predicts.numpy()):\n        if write_fn is None:\n          if not gezi.iterable(label):\n            label = [label]\n          if not gezi.iterable(predict):\n            predict = [predict]\n          print(id, *label, *predict, sep=sep, file=out)\n        else:\n          write_fn(id, label, predict, out)\n\n  if out:\n    out.close()\n\n    # if FLAGS.torch:\n    #   predicts_list = [x.detach().numpy() for x in predicts_list]\n    #   labels_lis = [x.detach().numpy() for x in labels_list]\n\n  if FLAGS.use_horovod and FLAGS.horovod_eval:\n    #import horovod.torch as hvd\n    #print('----------------------before hvd reduce')\n    # TODO check eager mode ok...\n    tensor = tf.constant(0) if not FLAGS.torch else torch.zeros(0)\n    hvd.allreduce(tensor)\n    ## here for horovod mutliple gpu dataset is not repeat mode \n    ids_list = comm.allgather(np.concatenate(ids_list))\n    predicts_list = comm.allgather(np.concatenate(predicts_list))\n    labels_list = comm.allgather(np.concatenate(labels_list))\n    comm.barrier()\n\n    ids2 = np.concatenate(ids_list)\n    predicts2 = np.concatenate(predicts_list)\n    labels2 = np.concatenate(labels_list)\n    #----below is for batch parse which if not repeat mode then final batch will still same size not smaller\n    # and not use repeat mode so last batch fill with id '' empty we can remove here\n    ids = []\n    predicts = []\n    labels = []\n    for i in range(len(ids2)):\n      if not ids2[i] == '':\n        ids.append(ids2[i])\n        predicts.append(predicts2[i])\n        labels.append(labels2[i])\n    ids = np.array(ids)\n    predicts = np.array(predicts)\n    labels = np.array(labels)\n  else:\n    try:\n      # concat list so like [[512,], [512,]...] -> [512 * num_batchs]\n      # ore [[512, 3], [512,3] ..] -> [512 * num_batchs, 3]\n      ids = np.concatenate(ids_list)[:num_examples]\n    except Exception:\n      ids = ['0'] * num_examples\n    predicts = np.concatenate(predicts_list)[:num_examples]\n    labels = np.concatenate(labels_list)[:num_examples]\n  \n  if not write_streaming and ofile and (not FLAGS.use_horovod or hvd.rank() == 0):\n    write_fn(ids, labels, predicts, ofile)\n    \n  if len(inspect.getargspec(eval_fn).args) == 4:\n    vals, names = eval_fn(labels, predicts, ids=ids, model_path=model_path)\n  elif len(inspect.getargspec(eval_fn).args) == 3:\n    if 'ids' in inspect.getargspec(eval_fn).args:\n      vals, names = eval_fn(labels, predicts, ids)\n    else:\n      vals, names = eval_fn(labels, predicts, model_path)\n  else:\n    vals, names = eval_fn(labels, predicts)\n  \n  if model_path and (not FLAGS.use_horovod or hvd.rank() == 0):\n    with open(model_path + '.valid.metrics', 'w') as out:\n      for val, name in zip(vals, names):\n        print(name, val, sep='\\t', file=out)\n\n  return vals, names\n\ndef inference(model, dataset, model_path, \n              names=None, debug_names=None, \n              write_fn=None, write_streaming=False,\n              num_steps=None, num_examples=None,\n              suffix='.infer', sep=','):\n  if FLAGS.use_horovod:\n    if FLAGS.torch:\n      import horovod.torch as hvd\n    else:\n      import horovod.tensorflow as hvd\n  if has_attr(model, 'eval'):\n    model.eval()\n  if not write_fn:\n    write_streaming = True\n  ofile = model_path + suffix\n  ofile2 = ofile + '.debug'\n  if write_streaming:\n    if write_fn and len(inspect.getargspec(write_fn).args) == 4:\n      out_debug = open(ofile2, 'w', encoding='utf-8')\n    else:\n      out_debug = None\n    out = open(ofile, 'w', encoding='utf-8') \n  else:\n    out = None\n    out_debug = None\n  \n  if write_streaming:\n    if names is not None:\n      print(*names, sep=sep, file=out)\n    if debug_names and out_debug:\n      print(*debug_names, sep=sep, file=out_debug)\n\n  predicts_list = []\n  ids_list = []\n  for (x, _) in tqdm(dataset, total=num_steps, ascii=True):\n    if FLAGS.torch:\n      x = to_torch(x)\n    predicts = model(x)\n    if FLAGS.torch:\n      predicts = predicts.detach().cpu()\n    # here id is str in py3 will be bytes\n    if not FLAGS.torch:\n      ids = gezi.decode(x['id'].numpy())\n    else:\n      ids = gezi.decode(x['id'])\n\n    if not write_streaming:\n      predicts_list.append(predicts)\n      ids_list.append(ids)\n    else:\n      for id, predict in zip(ids, predicts.numpy()):\n        if write_fn is None:\n          if not gezi.iterable(predict):\n            predict = [predict]\n          print(id, *predict, sep=sep, file=out)\n        else:\n          if out_debug:\n            write_fn(id, predict, out, out_debug)\n          else:\n            write_fn(id, predict, out)\n  \n  if out:\n    out.close()\n  if out_debug:\n    out_debug.close()\n\n  if not write_streaming:\n    if FLAGS.use_horovod and FLAGS.horovod_eval:\n      #import horovod.torch as hvd\n      #print('----------------------before hvd reduce')\n      tensor = tf.constant(0) if not FLAGS.torch else torch.zeros(0)\n      hvd.allreduce(tensor)\n      ## here for horovod mutliple gpu dataset is not repeat mode \n      ids_list = comm.allgather(np.concatenate(ids_list))\n      predicts_list = comm.allgather(np.concatenate(predicts_list))\n      comm.barrier()\n\n      ids2 = np.concatenate(ids_list)\n      predicts2 = np.concatenate(predicts_list)\n      #----below is for batch parse which if not repeat mode then final batch will still same size not smaller\n      # and not use repeat mode so last batch fill with id '' empty we can remove here\n      ids = []\n      predicts = []\n      for i in range(len(ids2)):\n        if not ids2[i] == '':\n          ids.append(ids2[i])\n          predicts.append(predicts2[i])\n      ids = np.array(ids)\n      predicts = np.array(predicts)\n    else:\n      try:\n        # concat list so like [[512,], [512,]...] -> [512 * num_batchs]\n        # ore [[512, 3], [512,3] ..] -> [512 * num_batchs, 3]\n        ids = np.concatenate(ids_list)[:num_examples]\n      except Exception:\n        ids = ['0'] * num_examples\n      predicts = np.concatenate(predicts_list)[:num_examples]\n\n    if (not FLAGS.use_horovod or hvd.rank() == 0):\n      if len(inspect.getargspec(write_fn).args) == 4:\n        write_fn(ids, predicts, ofile, ofile2)\n      else:\n        write_fn(ids, predicts, ofile)\n\n\ndef load_torch_model(model, path):\n  checkpoint = torch.load(path)\n  state = checkpoint['state_dict']   \n  \n  new_state = {}\n  model_ = model.module if hasattr(model, 'module') else model\n\n  for key, val in state.items():\n    if key in model_.state_dict():\n      new_state[key] = val\n\n  logging.info('num updated keys from checkpoint', len(new_state), 'epoch:', checkpoint['epoch'], 'step:', checkpoint['step'])\n\n  # this is for model state has more params then loaded so just partial update mode state with key,vals from loaded     \n  new_params = model_.state_dict()\n  new_params.update(new_state)\n  model_.load_state_dict(new_params)\n\n  model.eval()\n\n  return checkpoint\n\ndef horovod_torch_deal_optimizer(optimizer, model):\n  import horovod.torch as hvd\n  #hvd.broadcast_optimizer_state(optimizer, root_rank=0)\n  optimizer = hvd.DistributedOptimizer(optimizer,\n                                       named_parameters=model.named_parameters())\n  return optimizer\n\ndef get_torch_optimizer(optimizer, model, num_steps_per_epoch=None, param_groups=None):\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n  if use_horovod:\n    import horovod.torch as hvd\n  if optimizer is None:\n    import lele\n    is_dynamic_opt = True\n    if FLAGS.optimizer == 'noam':\n      optimizer = torch.optim.Adamax(model.parameters(), lr=0)\n      if use_horovod:\n        optimizer = horovod_torch_deal_optimizer(optimizer, model)\n      optimizer = lele.training.optimizers.NoamOpt(128, 2, 4000, optimizer)\n    elif FLAGS.optimizer == 'bert':\n      num_train_steps = int(num_steps_per_epoch * (FLAGS.num_decay_epochs or FLAGS.num_epochs))\n      if FLAGS.warmup_steps and use_horovod:\n        FLAGS.warmup_steps = max(int(FLAGS.warmup_steps / hvd.size()), 1)\n      num_warmup_steps = FLAGS.warmup_steps or int(num_steps_per_epoch * FLAGS.warmup_epochs) or int(num_train_steps * FLAGS.warmup_proportion) \n      logging.info('num_train_steps', num_train_steps, 'num_warmup_steps', num_warmup_steps, 'warmup_proportion', FLAGS.warmup_proportion)\n      optimizer = torch.optim.Adamax(model.parameters(), lr=0)\n      if use_horovod:\n        optimizer = horovod_torch_deal_optimizer(optimizer, model)\n      optimizer = lele.training.optimizers.BertOpt(\n                          FLAGS.learning_rate, \n                          FLAGS.min_learning_rate,\n                          num_train_steps,\n                          num_warmup_steps,\n                          optimizer\n                          )\n  else:\n    is_dynamic_opt = False\n    optimizer = torch.optim.Adamax(param_groups if param_groups else model.parameters(), lr=FLAGS.learning_rate)\n    if use_horovod:\n      optimizer = hvd.DistributedOptimizer(optimizer,\n                                           named_parameters=model.named_parameters())\n  return optimizer, is_dynamic_opt\n\n \ndef train(model, \n          loss_fn,\n          Dataset=None,  \n          dataset=None,\n          valid_dataset=None,\n          valid_dataset2=None,\n          test_dataset=None,\n          evaluate_fn=None, \n          inference_fn=None,\n          eval_fn=None,\n          write_valid=True,\n          valid_names=None,\n          infer_names=None,\n          infer_debug_names=None,\n          valid_write_fn=None,\n          infer_write_fn=None,\n          valid_suffix='.valid',\n          infer_suffix='.infer',\n          write_streaming=False,\n          optimizer=None,\n          param_groups=None,\n          init_fn=None,\n          sep=','):\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n  is_eager = tf.executing_eagerly()\n  if use_horovod:\n    if FLAGS.torch:\n      import horovod.torch as hvd\n    else:\n      import horovod.tensorflow as hvd\n\n  if Dataset is None:\n    assert dataset\n  if not use_horovod or hvd.rank() == 0:\n    logging.info('Dataset', Dataset, 'dataset', dataset, 'valid_dataset', valid_dataset, 'test_dataset', test_dataset, loss_fn)\n\n  if FLAGS.torch:\n    if not use_horovod or hvd.rank() == 0:\n      logging.info(model) # keras will show model after first training step\n    torch.manual_seed(FLAGS.seed or 0)\n    if torch.cuda.device_count():\n      torch.cuda.manual_seed(FLAGS.seed or 0)\n    if torch.cuda.device_count() > 1 and not use_horovod:\n      model = torch.nn.DataParallel(model)\n    #model.to(device)\n    #model = model.cuda()  #move it after loading model \n    \n  input_ =  FLAGS.train_input \n  inputs = gezi.list_files(input_)\n  inputs.sort()\n\n  all_inputs = inputs\n\n  #batch_size = FLAGS.batch_size\n  batch_size = melt.batch_size()\n\n  num_gpus = melt.num_gpus()\n\n  #batch_size = max(batch_size, 1)\n  #batch_size_ = batch_size if not FLAGS.batch_sizes else int(FLAGS.batch_sizes.split(',')[-1])\n  batch_size_ = FLAGS.eval_batch_size or batch_size\n\n  if dataset is None:\n    if FLAGS.fold is not None:\n      inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold) and not x.endswith('%d.tfrecord' % FLAGS.fold)]\n      # if FLAGS.valid_input:\n      #   inputs += [x for x in gezi.list_files(FLAGS.valid_input) if not x.endswith('%d.record' % FLAGS.fold)]\n    logging.info('inputs', len(inputs), inputs[:100])\n  num_folds = FLAGS.num_folds or len(inputs) + 1\n\n  if dataset is None:\n    dataset = Dataset('train')\n    assert len(inputs) > 0\n    # for eager train, here still repat True right now, but if set None wil by defualt return False for eager similar as pytorch\n    train_dataset = dataset.make_batch(batch_size, inputs, repeat=True, simple_parse=FLAGS.simple_parse)\n    num_examples = dataset.num_examples_per_epoch('train') \n  else:\n    assert FLAGS.torch_only, 'only torch only currently support input dataset not Dataset class type, because we do not have len function there'\n    train_dataset = dataset\n    num_examples = len(train_dataset.dataset)\n\n  num_all_examples = num_examples\n\n  if valid_dataset is None:\n    valid_inputs = None\n    if FLAGS.valid_input:\n      valid_inputs = gezi.list_files(FLAGS.valid_input)\n    else:\n      if FLAGS.fold is not None:\n        #valid_inputs = [x for x in all_inputs if x not in inputs]\n        if not FLAGS.test_aug:\n          valid_inputs = [x for x in all_inputs if not 'aug' in x and x not in inputs]\n        else:\n          valid_inputs = [x for x in all_inputs if 'aug' in x and x not in inputs]\n\n    logging.info('valid_inputs', valid_inputs)\n\n  num_valid_examples = None\n  if valid_dataset is not None:\n    # mainly for torch now\n    num_valid_examples = len(valid_dataset.dataset)\n    num_valid_steps_per_epoch = -(-num_valid_examples // batch_size_) if num_valid_examples else None   \n    valid_dataset2_iter = itertools.cycle(valid_dataset2)\n  else:\n    if valid_inputs:\n      valid_dataset = dataset.make_batch(batch_size_, valid_inputs, subset='valid',  hvd_shard=FLAGS.horovod_eval )\n      valid_dataset2 = dataset.make_batch(batch_size, valid_inputs, subset='valid', repeat=True, initializable=False, hvd_shard=False)\n      valid_dataset2_iter = iter(valid_dataset2)\n    else:\n      valid_dataset = None\n      valid_dataset2 = None\n\n  if num_examples:\n    if FLAGS.fold is not None:\n      num_examples = int(num_examples * (num_folds - 1) / num_folds)\n    num_steps_per_epoch = -(-num_examples // batch_size)\n  else:\n    num_steps_per_epoch = None\n  logging.info('num_train_examples:', num_examples)\n  if use_horovod and num_examples:\n    num_steps_per_epoch = -(-num_examples // (batch_size * hvd.size()))\n\n  if num_valid_examples is None:\n    if FLAGS.valid_input:\n      num_valid_examples = dataset.num_examples_per_epoch('valid')\n      num_valid_steps_per_epoch = -(-num_valid_examples // batch_size_) if num_valid_examples else None   \n    else:\n      if FLAGS.fold is not None:\n        if num_examples:\n          num_valid_examples = int(num_all_examples * (1 / num_folds))\n          num_valid_steps_per_epoch = -(-num_valid_examples // batch_size_)\n        else:\n          num_valid_steps_per_epoch = None\n  if use_horovod and FLAGS.horovod_eval and num_valid_examples:\n      num_valid_steps_per_epoch = -(-num_valid_examples // (batch_size_ * hvd.size()))\n  logging.info('num_valid_examples:', num_valid_examples)\n\n  if test_dataset is None:\n    if FLAGS.test_input:\n      test_inputs = gezi.list_files(FLAGS.test_input)\n      #test_inputs = [x for x in test_inputs if not 'aug' in x]\n      logging.info('test_inputs', test_inputs)\n    else:\n      test_inputs = None\n  \n  num_test_examples = None\n  if test_dataset is not None:\n    num_test_examples = len(test_dataset.dataset)\n  else:\n    if test_inputs:\n      test_dataset = dataset.make_batch(batch_size_, test_inputs, subset='test') \n      num_test_examples = dataset.num_examples_per_epoch('test')\n    else:\n      test_dataset = None\n  num_test_steps_per_epoch = -(-num_test_examples // batch_size_) if num_test_examples else None\n  if use_horovod and FLAGS.horovod_eval and num_test_examples:\n      num_test_steps_per_epoch = -(-num_test_examples // (batch_size_ * hvd.size()))\n  logging.info('num_test_examples:', num_test_examples)\n  \n  if not use_horovod or hvd.rank() == 0:\n    ## this is eager mode summary.. which will not work on non eager mode\n    if is_eager:\n      summary = tf.contrib.summary\n      # writer = summary.create_file_writer(FLAGS.log_dir + '/epoch')\n      # writer_train = summary.create_file_writer(FLAGS.log_dir + '/train')\n      # writer_valid = summary.create_file_writer(FLAGS.log_dir + '/valid')\n      writer = summary.create_file_writer(FLAGS.log_dir)\n      writer_train = summary.create_file_writer(FLAGS.log_dir)\n      writer_valid = summary.create_file_writer(FLAGS.log_dir)\n    else:\n      # can not be used in eager mode but much better then above TODO see what in TF2.0\n      summary = gezi.SummaryWriter(FLAGS.log_dir)\n\n  if is_eager:\n    global_step = tf.train.get_or_create_global_step()\n  else:\n    global_step = melt.GlobalStep(0)\n  \n  ## RuntimeError: tf.summary.FileWriter is not compatible with eager execution. Use tf.contrib.summary instead.\n  #logger = gezi.SummaryWriter(FLAGS.log_dir)\n\n  if not FLAGS.torch:\n    learning_rate = tfe.Variable(FLAGS.learning_rate, name=\"learning_rate\")\n  else:\n    learning_rate = melt.LearningRate(FLAGS.learning_rate)\n  \n  #tf.add_to_collection('learning_rate', learning_rate)\n  melt.add_global('learning_rate', learning_rate)\n\n  #learning_rate_weight = tf.get_collection('learning_rate_weight')[-1]\n  learning_rate_weight = melt.get_global('learning_rate_weight')\n  try:\n    #learning_rate_weights = tf.get_collection('learning_rate_weights')[-1]\n    learning_rate_weights = melt.get_global('learning_rate_weights')\n  except Exception:\n    learning_rate_weights = None\n\n  # ckpt dir save models one per epoch\n  ckpt_dir = os.path.join(FLAGS.model_dir, 'ckpt')\n  os.system('mkdir -p %s' % ckpt_dir)\n  # HACK ckpt dir is actually save mini epoch like when you set save_interval_epochs=0.1, this is usefull when you training large dataset\n  ckpt_dir2 = os.path.join(FLAGS.model_dir, 'ckpt2')\n  os.system('mkdir -p %s' % ckpt_dir2)\n\n  #TODO FIXME now I just changed tf code so to not by default save only latest 5\n  # refer to https://github.com/tensorflow/tensorflow/issues/22036\n    # manager = tf.contrib.checkpoint.CheckpointManager(\n  #     checkpoint, directory=ckpt_dir, max_to_keep=5)\n  # latest_checkpoint = manager.latest_checkpoint\n\n  latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\n  if latest_checkpoint:\n    logging.info('Latest checkpoint:', latest_checkpoint)\n  else:\n    latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir2)\n    logging.info('Latest checkpoint:', latest_checkpoint)\n  \n  if os.path.exists(FLAGS.model_dir + '.index'):\n    latest_checkpoint = FLAGS.model_dir  \n\n  if 'test' in FLAGS.work_mode or 'valid' in FLAGS.work_mode:\n    #assert not os.path.isdir(FLAGS.model_dir), FLAGS.model_dir\n    latest_checkpoint = FLAGS.model_dir\n    #assert os.path.exists(latest_checkpoint) and os.path.isfile(latest_checkpoint)\n\n  checkpoint_prefix = os.path.join(ckpt_dir, 'ckpt')\n  checkpoint_prefix2 = os.path.join(ckpt_dir2, 'ckpt')\n\n  if not FLAGS.torch:\n    try:\n      optimizer = optimizer or melt.get_optimizer(FLAGS.optimizer)(learning_rate)\n    except Exception:\n      logging.warning(f'Fail to using {FLAGS.optimizer} use adam instead')\n      optimizer = melt.get_optimizer('adam')(learning_rate)\n    \n    # TODO...\n    if  learning_rate_weights is None:\n      checkpoint = tf.train.Checkpoint(\n            learning_rate=learning_rate, \n            learning_rate_weight=learning_rate_weight,\n            model=model,\n            optimizer=optimizer,\n            global_step=global_step)\n    else:\n      checkpoint = tf.train.Checkpoint(\n            learning_rate=learning_rate, \n            learning_rate_weight=learning_rate_weight,\n            learning_rate_weights=learning_rate_weights,\n            model=model,\n            optimizer=optimizer,\n            global_step=global_step) \n\n    checkpoint.restore(latest_checkpoint)\n    checkpoint2 = copy.deepcopy(checkpoint)\n\n    start_epoch = int(latest_checkpoint.split('-')[-1]) if latest_checkpoint and 'ckpt' in latest_checkpoint else 0\n    start_step = 0 # TODO\n  else:\n    # TODO torch with learning rate adjust\n      # https://github.com/horovod/horovod/blob/master/examples/pytorch_mnist.py\n  # TODO full support for pytorch now not work\n    optimizer, is_dynamic_opt = get_torch_optimizer(optimizer, model, num_steps_per_epoch, param_groups)\n\n    start_epoch = 0  \n    latest_path = latest_checkpoint + '.pyt' if latest_checkpoint else os.path.join(FLAGS.model_dir, 'latest.pyt')\n    if not os.path.exists(latest_path):\n      latest_path = os.path.join(FLAGS.model_dir, 'latest.pyt')\n    if os.path.exists(latest_path):\n      # NOTICE must only load 0! if all load now will OOM...\n      if not use_horovod or hvd.rank() == 0:\n        logging.info('loading torch model from', latest_path)\n        checkpoint = load_torch_model(model, latest_path)\n        if FLAGS.torch_load_optimizer:\n          optimizer.load_state_dict(checkpoint['optimizer']) \n\n      if use_horovod:  \n        hvd.broadcast_parameters(model.state_dict(), root_rank=0)\n        optimizer_ = optimizer if not hasattr(optimizer, 'optimizer') else optimizer.optimizer \n        hvd.broadcast_optimizer_state(optimizer_, root_rank=0)\n   \n      if not FLAGS.torch_finetune:\n        if not use_horovod or hvd.rank() == 0:\n          start_epoch = checkpoint['epoch']\n          step = checkpoint['step']\n        else:\n          start_epoch = 0\n          step = 0\n      \n        if use_horovod:\n          temp = np.array([start_epoch, step])\n          comm.Bcast(temp, root=0)\n          start_epoch, step = temp[0], temp[1]\n        \n        #global_step.assign(step + 1)  #why add 1 ?\n        global_step.assign(step)\n\n    if not FLAGS.torch:\n      # TODO by this way restart can not change learning rate..\n      if learning_rate_weights is None:\n        checkpoint = tf.train.Checkpoint(\n            learning_rate=learning_rate, \n            learning_rate_weight=learning_rate_weight,\n            global_step=global_step)\n      else:\n        checkpoint = tf.train.Checkpoint(\n              learning_rate=learning_rate, \n              learning_rate_weight=learning_rate_weight,\n              learning_rate_weights=learning_rate_weights,\n              global_step=global_step)\n\n    try:\n      checkpoint.restore(latest_checkpoint)\n      checkpoint2 = copy.deepcopy(checkpoint)\n    except Exception:\n      pass\n\n  if FLAGS.torch and is_dynamic_opt:\n    optimizer._step = global_step.numpy()\n    \n  #model.load_weights(os.path.join(ckpt_dir, 'ckpt-1'))\n  #model.save('./weight3.hd5')\n  logging.info('optimizer:', optimizer)\n\n  if FLAGS.torch_lr:\n    learning_rate.assign(optimizer.rate(1))\n  if FLAGS.torch:\n    learning_rate.assign(optimizer.param_groups[0]['lr'])\n    logging.info('learning rate got from pytorch latest.py as', learning_rate.numpy())\n\n  learning_rate.assign(learning_rate * FLAGS.learning_rate_start_factor)\n  if learning_rate_weights is not None:\n    learning_rate_weights.assign(learning_rate_weights * FLAGS.learning_rate_start_factor)\n\n  # TODO currently not support 0.1 epoch.. like this\n  num_epochs = FLAGS.num_epochs if FLAGS.num_epochs != 0 else 1024\n\n  will_valid = valid_dataset and not FLAGS.work_mode == 'test' and not 'SHOW' in os.environ and not 'QUICK' in os.environ\n  if global_step.numpy() == 0 :\n    will_valid = False\n\n  if gezi.get_env('EVFIRST') == '1':\n    will_valid = True\n  \n  if gezi.get_env('EVFIRST') == '0':\n    will_valid = False\n\n  if will_valid:\n    logging.info('----------valid')\n    if hasattr(model, 'eval'):\n      model.eval()\n    names = None \n    if evaluate_fn is not None:\n      vals, names = evaluate_fn(model, valid_dataset, tf.train.latest_checkpoint(ckpt_dir), num_valid_steps_per_epoch)\n    elif eval_fn:\n      model_path = None if not write_valid else latest_checkpoint\n      names = valid_names if valid_names is not None else [infer_names[0]] + [x + '_y' for x in infer_names[1:]] + infer_names[1:] if infer_names else None\n\n      logging.info('model_path:', model_path, 'model_dir:', FLAGS.model_dir)\n      vals, names = evaluate(model, valid_dataset, eval_fn, model_path, \n                             names, valid_write_fn, write_streaming,\n                             num_valid_steps_per_epoch, num_valid_examples,\n                             suffix=valid_suffix, sep=sep)\n    if names:\n      logging.info2('epoch:%.2f/%d step:%d' % (global_step.numpy() / num_steps_per_epoch, num_epochs, global_step.numpy()), \n                    ['%s:%.4f' % (name, val) for name, val in zip(names, vals)])\n  \n    if FLAGS.work_mode == 'valid' or gezi.get_env('METRIC') == '1':\n      exit(0)\n\n  if 'test' in FLAGS.work_mode or gezi.get_env('TEST') == '1' or gezi.get_env('INFER') == '1':\n    logging.info('--------test/inference')\n    if test_dataset:\n      if hasattr(model, eval):\n        model.eval()\n      if inference_fn is None:\n        # model_path = FLAGS.model_dir + '.pyt' if not latest_checkpoint else latest_checkpoint\n        # logging.info('model_path', model_path)\n        assert latest_checkpoint\n        inference(model, test_dataset, latest_checkpoint, \n                  infer_names, infer_debug_names, infer_write_fn, write_streaming,\n                  num_test_steps_per_epoch, num_test_examples, suffix=infer_suffix)\n      else:\n        inference_fn(model, test_dataset, tf.train.latest_checkpoint(ckpt_dir), num_test_steps_per_epoch)\n    exit(0)\n  \n  if 'SHOW' in os.environ:\n    num_epochs = start_epoch + 1\n\n  class PytObj(object):\n    def __init__(self, x):\n      self.x = x\n    def numpy(self):\n      return self.x\n\n  class PytMean(object):\n    def __init__(self):\n      self._val = 0. \n      self.count = 0\n\n      self.is_call = True\n\n    def clear(self):\n      self._val = 0\n      self.count = 0\n\n    def __call__(self, val):\n      if not self.is_call:\n        self.clear()\n        self.is_call = True\n      self._val += val.item()\n      self.count += 1\n\n    def result(self):\n      if self.is_call:\n        self.is_call = False\n      if not self.count:\n        val = 0\n      else:\n        val = self._val / self.count\n      # TODO just for compact with tf ..\n      return PytObj(val)\n      \n  Mean =  tfe.metrics.Mean if not FLAGS.torch else PytMean\n  \n  num_insts = 0\n\n  if FLAGS.learning_rate_decay_factor > 0:\n    #assert FLAGS.learning_rate_values is None, 'use exponential_decay or piecewise_constant?'\n    #NOTICE if you do finetune or other things which might change batch_size then you'd better direclty set num_steps_per_decay\n    #since global step / decay_steps will not be correct epoch as num_steps per epoch changed\n    #so if if you change batch set you have to reset global step as fixed step\n    assert FLAGS.num_steps_per_decay or (FLAGS.num_epochs_per_decay and num_steps_per_epoch), 'must set num_steps_per_epoch or num_epochs_per_decay and num_steps_per_epoch'\n    decay_steps = FLAGS.num_steps_per_decay or int(num_steps_per_epoch * FLAGS.num_epochs_per_decay)    \n    decay_start_step = FLAGS.decay_start_step or int(num_steps_per_epoch * FLAGS.decay_start_epoch)\n    # decayed_learning_rate = learning_rate * decay_rate ^ (global_step / decay_steps)\n    logging.info('learning_rate_decay_factor:{} decay_epochs:{} decay_steps:{} decay_start_epoch:{} decay_start_step:{}'.format(\n        FLAGS.learning_rate_decay_factor, FLAGS.num_epochs_per_decay, decay_steps, FLAGS.decay_start_epoch, decay_start_step))\n\n  #-------------------------start training\n  if hasattr(model, 'train'):\n    model.train()\n\n  if use_horovod:\n    # if using tf eager reading need to shink size \n    if not FLAGS.torch_only:\n      # if use torch dataset, can get len directly for distributed train\n      num_steps_per_epoch = -(-num_examples // (batch_size * hvd.size())) if num_examples else None  \n      if FLAGS.horovod_eval:\n        # multiple gpu eval\n        num_valid_steps_per_epoch = -(-num_valid_examples // (batch_size_ * hvd.size())) if num_valid_examples else None\n        num_test_steps_per_epoch = -(-num_test_examples // (batch_size_ * hvd.size())) if num_test_examples else None\n\n  timer = gezi.Timer()\n  loss_avg = Mean()\n\n  # for eager right now is repeat mode, so not need for epoch, but we can stop at inter loop last check global step and exit\n  if not num_epochs:\n    num_epochs = 1024 # not stop if not manu set num epochs\n\n  if FLAGS.torch:\n    model = model.to(device)\n  #----------------------------------------main loop here\n  for epoch in range(start_epoch, start_epoch + num_epochs):\n    # FLAGS.torch only will not use eager, FLAGS.torch still use eager tf reading\n    if FLAGS.torch_only:\n      if train_dataset.sampler and hasattr(train_dataset.sampler, 'set_epoch'):\n        # if not set each epoch shuffle same seed..\n        train_dataset.sampler.set_epoch(epoch)\n\n    for i, (x, y) in tqdm(enumerate(train_dataset), total=num_steps_per_epoch, ascii=True):\n      if FLAGS.torch:\n        x, y = to_torch(x, y)\n        if is_dynamic_opt:\n          learning_rate.assign(optimizer.rate())\n\n      def loss_fn_(x, y):\n        if not FLAGS.torch and 'training' in inspect.getargspec(model.call).args:\n          y_ = model(x, training=True)\n        else:\n          y_ = model(x)\n        if not FLAGS.torch:\n          return loss_fn(y, y_)\n        else:\n          return loss_fn(y_, y)\n      \n      if not FLAGS.torch:\n        loss, grads = melt.eager.grad(model, x, y, loss_fn)\n        grads, _ = tf.clip_by_global_norm(grads, FLAGS.clip_gradients)\n        #optimizer.apply_gradients(zip(grads, model.variables))\n        optimizer.apply_gradients(zip(grads, model.trainable_variables))\n        # https://github.com/horovod/horovod/blob/master/examples/tensorflow_mnist_eager.py\n        # Horovod: broadcast initial variable states from rank 0 to all other processes.\n        # This is necessary to ensure consistent initialization of all workers when\n        # training is started with random weights or restored from a checkpoint.\n        # Note: broadcast should be done after the first gradient step to ensure optimizer\n        # initialization.\n        # TODO check eager mode\n        if use_horovod and epoch == start_epoch and i == 0:\n          hvd.broadcast_variables(model.variables, root_rank=0)\n          hvd.broadcast_variables(optimizier.variables(), root_rank=0)\n      else:\n        optimizer.zero_grad()\n        loss = loss_fn_(x, y)\n        loss.backward()\n        torch.nn.utils.clip_grad_norm_(model.parameters(),\n                                        FLAGS.clip_gradients)\n        optimizer.step()\n\n      global_step.assign_add(1)\n      loss_avg(loss)\n    \n      ## https://discuss.pytorch.org/t/calling-loss-backward-reduce-memory-usage/2735\n      # if FLAGS.torch:\n      #   del loss\n\n      batch_size_ = list(x.values())[0].shape[FLAGS.batch_size_dim] if type(x) == type({}) else x.shape[FLAGS.batch_size_dim]\n      num_insts += int(batch_size_)\n      if global_step.numpy() % FLAGS.interval_steps == 0:\n        #checkpoint.save(checkpoint_prefix)\n        elapsed = timer.elapsed()\n        steps_per_second = FLAGS.interval_steps / elapsed\n        instances_per_second = num_insts / elapsed\n        num_insts = 0\n\n        if num_steps_per_epoch is None:\n          hours_per_epoch = None\n          epoch_time_info = ''\n        else:\n          hours_per_epoch = num_steps_per_epoch / FLAGS.interval_steps * elapsed / 3600\n          epoch_time_info = '1epoch:[{:.2f}h]'.format(hours_per_epoch)\n\n        if valid_dataset2:\n          # try:\n          #   x, y = next(iter(valid_dataset2))\n          # except Exception:\n          #   # TODO FIXME how.. iterate stop restart.., here hack for my iterator see projects/lm/dataset \n          #   x, y = next(iter(valid_dataset2))\n          ## valid dataset2 is repeated\n          ## NOTICE will always the first batch ... as below\n          #x, y = next(iter(valid_dataset2))\n          x, y = next(valid_dataset2_iter)\n          #print(x['id'][0])\n          if FLAGS.torch:\n            x, y = to_torch(x, y)\n          if hasattr(model, 'eval'):  \n            model.eval()\n          valid_loss = loss_fn_(x, y)\n          valid_loss = valid_loss.numpy() if not FLAGS.torch else valid_loss.item()\n          if hasattr(model, 'train'):\n            model.train()\n\n          if not use_horovod or hvd.rank() == 0:\n                        # 'train_loss:[%.4f]' % loss_avg.result().numpy(),\n                        # 'valid_loss:[%.4f]' % valid_loss_avg.result().numpy()\n            logging.info2('epoch:%.2f/%d' % ((global_step.numpy() / num_steps_per_epoch), num_epochs), \n                        'step:%d' % global_step.numpy(), \n                        'elap:[%.2f]' % elapsed,\n                        'batch:[%d]' % batch_size_,\n                        #'gpus:[%d]' % num_gpus, \n                        #'batches/s:[%.2f]' % steps_per_second,\n                        #'insts/s:[%d]' % instances_per_second,\n                        '%s' % epoch_time_info,\n                        'lr:[%.6f]' % learning_rate.numpy(),\n                        'train:[%.4f]' % loss_avg.result().numpy(),\n                        'valid:[%.4f]' % valid_loss\n                        )\n            if global_step.numpy() % FLAGS.valid_interval_steps == 0:\n              if is_eager:\n                with writer_valid.as_default(), summary.always_record_summaries():\n                  summary.scalar('loss/valid', valid_loss)\n                  writer_valid.flush()\n              else:\n                summary.scalar('loss/valid', valid_loss, global_step.numpy())\n\n        else:\n          if not use_horovod or hvd.rank() == 0:\n            #'train_loss:[%.4f]' % loss_avg.result().numpy()\n            logging.info2('epoch:%.2f/%d' % ((epoch + i / num_steps_per_epoch), num_epochs), \n                        'step:%d' % global_step.numpy(), \n                        'elap:[%.2f]' % elapsed,\n                        'batch:[%d]' % batch_size_,\n                        # 'gpus:[%d]' % num_gpus, \n                        # 'batches/s:[%.2f]' % steps_per_second,\n                        #'insts/s:[%d]' % instances_per_second,\n                        '%s' % epoch_time_info,\n                        'lr:[%.6f]' % learning_rate.numpy(),\n                        'train:[%.4f]' % loss_avg.result().numpy()\n                        )      \n\n        if not use_horovod or hvd.rank() == 0:\n          if global_step.numpy() % FLAGS.valid_interval_steps == 0:\n            if is_eager:\n              with writer_train.as_default(), summary.always_record_summaries():\n                summary.scalar('loss/train_avg', loss_avg.result().numpy())\n                summary.scalar('learning_rate', learning_rate.numpy())\n                summary.scalar('other/batch_size', batch_size_)\n                summary.scalar('other/epoch', melt.epoch())\n                if hours_per_epoch:\n                  summary.scalar('perf/hours_per_epoch', hours_per_epoch)\n                summary.scalar('perf/steps_per_second', steps_per_second)\n                summary.scalar('perf/instances_per_second', instances_per_second)\n                writer_train.flush()\n            else:\n              summary.scalar('loss/train_avg', loss_avg.result().numpy(), global_step.numpy())\n              summary.scalar('learning_rate', learning_rate.numpy(), global_step.numpy())\n              summary.scalar('other/batch_size', batch_size_, global_step.numpy())\n              summary.scalar('other/epoch', melt.epoch(), global_step.numpy())\n              if hours_per_epoch:\n                summary.scalar('perf/hours_per_epoch', hours_per_epoch, global_step.numpy())\n              summary.scalar('perf/steps_per_second', steps_per_second, global_step.numpy())\n              summary.scalar('perf/instances_per_second', instances_per_second, global_step.numpy())\n  \n      if valid_dataset and FLAGS.metric_eval_interval_steps and global_step.numpy() and global_step.numpy() % FLAGS.metric_eval_interval_steps == 0:\n        if hasattr(model, eval):\n          model.eval()\n        vals, names = None, None\n        if evaluate_fn is not None:\n          vals, names = evaluate_fn(model, valid_dataset, None, num_valid_steps_per_epoch)\n        elif eval_fn:\n          names = valid_names if valid_names is not None else [infer_names[0]] + [x + '_y' for x in infer_names[1:]] + infer_names[1:] if infer_names else None\n          vals, names = evaluate(model, valid_dataset, eval_fn, None, \n                                  names, valid_write_fn, write_streaming,\n                                  num_valid_steps_per_epoch, num_valid_examples, sep=sep)\n        if not use_horovod or hvd.rank() == 0:\n          if vals and names:\n            if is_eager:\n              with writer_valid.as_default(), summary.always_record_summaries():\n                for name, val in zip(names, vals):\n                  summary.scalar(f'step_eval/{name}', val)\n                writer_valid.flush()\n            else:\n              for name, val in zip(names, vals):\n                summary.scalar(f'step_eval/{name}', val, global_step.numpy())              \n        if FLAGS.torch:\n          if not FLAGS.torch_lr:\n            # control learning rate by tensorflow learning rate\n            for param_group in optimizer.param_groups:\n              # important learning rate decay\n              param_group['lr'] = learning_rate.numpy()\n        if hasattr(model, 'train'):  \n          model.train()\n        if not use_horovod or hvd.rank() == 0:\n          if names and vals:\n            logging.info2('epoch:%.2f/%d' % ((global_step.numpy() / num_steps_per_epoch), num_epochs),  \n                          'valid_step:%d' % global_step.numpy(),\n                          'valid_metrics',\n                          ['%s:%.5f' % (name, val) for name, val in zip(names, vals)])\n      \n      if not use_horovod or hvd.rank() == 0:\n      # TODO save ok ?\n        if global_step.numpy() % FLAGS.save_interval_steps == 0:\n          if FLAGS.torch:\n            state = {\n                    'epoch': int(global_step.numpy() / num_steps_per_epoch),\n                    'step': global_step.numpy(),\n                    'state_dict': model.state_dict() if not hasattr(model, 'module') else model.module.state_dict(),\n                    'optimizer' : optimizer.state_dict(),\n                  }\n            torch.save(state, os.path.join(FLAGS.model_dir, 'latest.pyt'))     \n\n        # TODO fixme why if both checpoint2 and chekpoint used... not ok..\n        if FLAGS.save_interval_epochs and global_step.numpy() % int(num_steps_per_epoch * FLAGS.save_interval_epochs) == 0:\n          checkpoint2.save(checkpoint_prefix2) \n          if FLAGS.torch:\n            state = {\n                    'epoch': int(global_step.numpy() / num_steps_per_epoch),\n                    'step': global_step.numpy(),\n                    'state_dict': model.state_dict() if not hasattr(model, 'module') else model.module.state_dict(),\n                    'optimizer' : optimizer.state_dict(),\n                  }\n            torch.save(state, tf.train.latest_checkpoint(ckpt_dir2) + '.pyt')\n\n      if FLAGS.learning_rate_decay_factor > 0:\n        if global_step.numpy() >= decay_start_step and global_step.numpy() % decay_steps == 0:\n          lr = max(learning_rate.numpy() * FLAGS.learning_rate_decay_factor, FLAGS.min_learning_rate)\n          if lr < learning_rate.numpy():\n            learning_rate.assign(lr)\n            if FLAGS.torch:\n              for param_group in optimizer.param_groups:\n                param_group['lr'] = learning_rate.numpy()\n\n      if i == 0 and epoch == start_epoch:\n        try:\n          if not FLAGS.torch:\n            logging.info(model.summary())\n            # #tf.keras.utils.plot_model(model, to_file='/home/gezi/model.png', show_shapes=False, show_layer_names=True, rankdir='TB')\n            # import keras\n            # keras.utils.plot_model(model, to_file='/home/gezi/model.png', show_shapes=False, show_layer_names=True, rankdir='LR', expand_nested=True, dpi=96)\n        except Exception:\n          traceback.print_exc()\n          logging.info('Fail to do model.summary() may be you have layer define in init but not used in call')\n        if 'SHOW' in os.environ:\n          exit(0)\n      \n      if valid_dataset and  global_step.numpy() % int(num_steps_per_epoch * FLAGS.valid_interval_epochs) == 0:\n        if hasattr(model, 'eval'):\n          model.eval()\n\n        vals, names = None, None\n        if evaluate_fn is not None:\n          vals, names = evaluate_fn(model, valid_dataset, tf.train.latest_checkpoint(ckpt_dir), num_valid_steps_per_epoch)\n        elif eval_fn:\n          model_path = None if not write_valid else tf.train.latest_checkpoint(ckpt_dir)\n          #print('---------metric evaluate step', global_step.numpy(), 'model_path:', model_path)\n          names = valid_names if valid_names is not None else [infer_names[0]] + [x + '_y' for x in infer_names[1:]] + infer_names[1:] if infer_names else None\n\n          vals, names = evaluate(model, valid_dataset, eval_fn, model_path, \n                                names, valid_write_fn, write_streaming,\n                                num_valid_steps_per_epoch, num_valid_examples, suffix=valid_suffix, sep=sep)\n\n        if not use_horovod or hvd.rank() == 0:\n          if vals and names:\n            logging.info2('epoch:%.2f/%d' % (global_step.numpy() / num_steps_per_epoch, num_epochs), \n                          'step:%d' % global_step.numpy(),\n                          'valid_metrics',\n                          ['%s:%.5f' % (name, val) for name, val in zip(names, vals)])\n            if is_eager:\n              with writer.as_default(), summary.always_record_summaries():\n                temp = global_step.value()\n                global_step.assign(int(global_step.numpy() / int(num_steps_per_epoch * FLAGS.valid_interval_epochs)))\n                if vals and names:\n                  for name, val in zip(names, vals):\n                    summary.scalar(f'eval/{name}', val)\n                writer.flush()\n                global_step.assign(temp)\n            else:\n              if vals and names:\n                for name, val in zip(names, vals):\n                  summary.scalar(f'eval/{name}', val, int(global_step.numpy() / int(num_steps_per_epoch * FLAGS.valid_interval_epochs)))\n\n      if test_dataset and global_step.numpy() % int(num_steps_per_epoch * FLAGS.inference_interval_epochs) == 0:\n        if hasattr(model, 'eval'):\n          model.eval()\n        if inference_fn is None:\n          inference(model, test_dataset, tf.train.latest_checkpoint(ckpt_dir), \n                    infer_names, infer_debug_names, infer_write_fn, write_streaming,\n                    num_test_steps_per_epoch, num_test_examples, suffix=infer_suffix, sep=sep)\n        else:\n          inference_fn(model, test_dataset, tf.train.latest_checkpoint(ckpt_dir), num_test_steps_per_epoch)\n\n      if num_epochs and num_steps_per_epoch and int(global_step.numpy() / num_steps_per_epoch) >= num_epochs:\n        logging.info(f'Finshed training of {num_epochs} epochs')\n        exit(0)\n\n"
  },
  {
    "path": "utils/melt/eager/util.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   util.py\n#        \\author   chenghuige  \n#          \\date   2018-09-03 12:05:03.098236\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport melt \nlogging = melt.logging\n\nimport inspect\n\ndef grad(model, x, y, loss_fn):\n  with tf.GradientTape() as tape:\n    if 'training' in inspect.getargspec(model.call).args:\n      y_ = model(x, training=True)\n    else:\n      y_ = model(x)\n    loss = loss_fn(y, y_)\n  # TODO eager or tf 2.0 support horovod\n  # tape = hvd.DistributedGradientTape(tape)\n  return loss, tape.gradient(loss, model.trainable_variables)\n\ndef clip_gradients(grads_and_vars, clip_ratio):\n  gradients, variables = zip(*grads_and_vars)\n  clipped, _ = tf.clip_by_global_norm(gradients, clip_ratio)\n  return zip(clipped, variables)\n\ndef restore(model, ckpt_dir=None):\n  if not ckpt_dir:\n    ckpt_dir = FLAGS.model_dir + '/ckpt'\n  \n  if os.path.exists(ckpt_dir + '.index'):\n    latest_checkpoint = ckpt_dir\n  else:\n    latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\n\n  logging.info('Latest checkpoint:', latest_checkpoint)\n\n  checkpoint = tf.train.Checkpoint(model=model)      \n  \n  # TODO check return value, verify if it is restore ok ?\n  checkpoint.restore(latest_checkpoint)\n"
  },
  {
    "path": "utils/melt/encoder/__init__.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-12-23 14:00:38.403784\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom melt.encoder.transformer import * \n"
  },
  {
    "path": "utils/melt/encoder/embedding_layer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Implementation of embedding layer with shared weights.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.model import model_utils\n\n\nclass EmbeddingSharedWeights(tf.layers.Layer):\n  \"\"\"Calculates input embeddings and pre-softmax linear with shared weights.\"\"\"\n\n  def __init__(self, vocab_size=1, hidden_size=128, embedding=None):\n    super(EmbeddingSharedWeights, self).__init__()\n    self.vocab_size = vocab_size\n    self.hidden_size = hidden_size\n    self.embedding = embedding\n    assert self.vocab_size or self.embedding\n\n  def build(self, _):\n    with tf.variable_scope(\"embedding_and_softmax\", reuse=tf.AUTO_REUSE):\n      if not self.embedding:\n        # Create and initialize weights. The random normal initializer was chosen\n        # randomly, and works well.\n        self.shared_weights = tf.get_variable(\n            \"weights\", [self.vocab_size, self.hidden_size],\n            initializer=tf.random_normal_initializer(\n                0., self.hidden_size ** -0.5))\n      else:\n        self.shared_weights = self.embedding\n\n    self.built = True\n\n  def call(self, x):\n    \"\"\"Get token embeddings of x.\n\n    Args:\n      x: An int64 tensor with shape [batch_size, length]\n    Returns:\n      embeddings: float32 tensor with shape [batch_size, length, embedding_size]\n      padding: float32 tensor with shape [batch_size, length] indicating the\n        locations of the padding tokens in x.\n    \"\"\"\n    with tf.name_scope(\"embedding\"):\n      embeddings = tf.gather(self.shared_weights, x)\n\n      # Scale embedding by the sqrt of the hidden size\n      embeddings *= self.hidden_size ** 0.5\n\n      # Create binary array of size [batch_size, length]\n      # where 1 = padding, 0 = not padding\n      padding = model_utils.get_padding(x)\n\n      # Set all padding embedding values to 0\n      embeddings *= tf.expand_dims(1 - padding, -1)\n      return embeddings\n\n  def linear(self, x):\n    \"\"\"Computes logits by running x through a linear layer.\n\n    Args:\n      x: A float32 tensor with shape [batch_size, length, hidden_size]\n    Returns:\n      float32 tensor with shape [batch_size, length, vocab_size].\n    \"\"\"\n    with tf.name_scope(\"presoftmax_linear\"):\n      batch_size = tf.shape(x)[0]\n      length = tf.shape(x)[1]\n\n      x = tf.reshape(x, [-1, self.hidden_size])\n      logits = tf.matmul(x, self.shared_weights, transpose_b=True)\n\n      return tf.reshape(logits, [batch_size, length, self.vocab_size])\n"
  },
  {
    "path": "utils/melt/encoder/transformer.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Defines the Transformer model, and its encoder and decoder stacks.\n\nModel paper: https://arxiv.org/pdf/1706.03762.pdf\nTransformer model code source: https://github.com/tensorflow/tensor2tensor\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf  # pylint: disable=g-bad-import-order\n\nfrom official.transformer.model import attention_layer\nfrom official.transformer.model import beam_search\n#from official.transformer.model import embedding_layer\nfrom melt.encoder import embedding_layer\nfrom official.transformer.model import ffn_layer\nfrom official.transformer.model import model_utils\nfrom official.transformer.utils.tokenizer import EOS_ID\n\n_NEG_INF = -1e9\n\n\nclass Transformer(object):\n  \"\"\"Transformer model for sequence to sequence data.\n\n  Implemented as described in: https://arxiv.org/pdf/1706.03762.pdf\n\n  The Transformer model consists of an encoder and decoder. The input is an int\n  sequence (or a batch of sequences). The encoder produces a continous\n  representation, and the decoder uses the encoder output to generate\n  probabilities for the output sequence.\n  \"\"\"\n\n  def __init__(self, params, embedding, train):\n    \"\"\"Initialize layers to build Transformer model.\n\n    Args:\n      params: hyperparameter object defining layer sizes, dropout values, etc.\n      train: boolean indicating whether the model is in training mode. Used to\n        determine if dropout layers should be added.\n    \"\"\"\n    self.train = train\n    self.params = params\n\n    self.embedding_softmax_layer = embedding_layer.EmbeddingSharedWeights(embedding=embedding)\n    self.encoder_stack = EncoderStack(params, train)\n\n  def __call__(self, inputs):\n    \"\"\"Calculate target logits or inferred target sequences.\n\n    Args:\n      inputs: int tensor with shape [batch_size, input_length].\n      targets: None or int tensor with shape [batch_size, target_length].\n\n    Returns:\n      If targets is defined, then return logits for each word in the target\n      sequence. float tensor with shape [batch_size, target_length, vocab_size]\n      If target is none, then generate output sequence one token at a time.\n        returns a dictionary {\n          output: [batch_size, decoded length]\n          score: [batch_size, float]}\n    \"\"\"\n    # Variance scaling is used here because it seems to work in many problems.\n    # Other reasonable initializers may also work just as well.\n    initializer_gain = 1.\n    initializer = tf.variance_scaling_initializer(\n        initializer_gain, mode=\"fan_avg\", distribution=\"uniform\")\n    with tf.variable_scope(\"Transformer\", initializer=initializer):\n      # Calculate attention bias for encoder self-attention and decoder\n      # multi-headed attention layers.\n      attention_bias = model_utils.get_padding_bias(inputs)\n\n      # Run the inputs through the encoder layer to map the symbol\n      # representations to continuous representations.\n      encoder_outputs = self.encode(inputs, attention_bias)\n\n      return encoder_outputs\n\n  def encode(self, inputs, attention_bias):\n    \"\"\"Generate continuous representation for inputs.\n\n    Args:\n      inputs: int tensor with shape [batch_size, input_length].\n      attention_bias: float tensor with shape [batch_size, 1, 1, input_length]\n\n    Returns:\n      float tensor with shape [batch_size, input_length, hidden_size]\n    \"\"\"\n    with tf.name_scope(\"encode\"):\n      # Prepare inputs to the layer stack by adding positional encodings and\n      # applying dropout.\n      embedded_inputs = self.embedding_softmax_layer(inputs)\n      inputs_padding = model_utils.get_padding(inputs)\n\n      with tf.name_scope(\"add_pos_encoding\"):\n        length = tf.shape(embedded_inputs)[1]\n        pos_encoding = model_utils.get_position_encoding(\n            length, self.params.hidden_size)\n        encoder_inputs = embedded_inputs + pos_encoding\n\n      if self.train:\n        encoder_inputs = tf.nn.dropout(\n            encoder_inputs, 1 - self.params.layer_postprocess_dropout)\n\n      return self.encoder_stack(encoder_inputs, attention_bias, inputs_padding)\n\n  def decode(self, targets, encoder_outputs, attention_bias):\n    \"\"\"Generate logits for each value in the target sequence.\n\n    Args:\n      targets: target values for the output sequence.\n        int tensor with shape [batch_size, target_length]\n      encoder_outputs: continuous representation of input sequence.\n        float tensor with shape [batch_size, input_length, hidden_size]\n      attention_bias: float tensor with shape [batch_size, 1, 1, input_length]\n\n    Returns:\n      float32 tensor with shape [batch_size, target_length, vocab_size]\n    \"\"\"\n    with tf.name_scope(\"decode\"):\n      # Prepare inputs to decoder layers by shifting targets, adding positional\n      # encoding and applying dropout.\n      decoder_inputs = self.embedding_softmax_layer(targets)\n      with tf.name_scope(\"shift_targets\"):\n        # Shift targets to the right, and remove the last element\n        decoder_inputs = tf.pad(\n            decoder_inputs, [[0, 0], [1, 0], [0, 0]])[:, :-1, :]\n      with tf.name_scope(\"add_pos_encoding\"):\n        length = tf.shape(decoder_inputs)[1]\n        decoder_inputs += model_utils.get_position_encoding(\n            length, self.params.hidden_size)\n      if self.train:\n        decoder_inputs = tf.nn.dropout(\n            decoder_inputs, 1 - self.params.layer_postprocess_dropout)\n\n      # Run values\n      decoder_self_attention_bias = model_utils.get_decoder_self_attention_bias(\n          length)\n      outputs = self.decoder_stack(\n          decoder_inputs, encoder_outputs, decoder_self_attention_bias,\n          attention_bias)\n      logits = self.embedding_softmax_layer.linear(outputs)\n      return logits\n\n  def _get_symbols_to_logits_fn(self, max_decode_length):\n    \"\"\"Returns a decoding function that calculates logits of the next tokens.\"\"\"\n\n    timing_signal = model_utils.get_position_encoding(\n        max_decode_length + 1, self.params.hidden_size)\n    decoder_self_attention_bias = model_utils.get_decoder_self_attention_bias(\n        max_decode_length)\n\n    def symbols_to_logits_fn(ids, i, cache):\n      \"\"\"Generate logits for next potential IDs.\n\n      Args:\n        ids: Current decoded sequences.\n          int tensor with shape [batch_size * beam_size, i + 1]\n        i: Loop index\n        cache: dictionary of values storing the encoder output, encoder-decoder\n          attention bias, and previous decoder attention values.\n\n      Returns:\n        Tuple of\n          (logits with shape [batch_size * beam_size, vocab_size],\n           updated cache values)\n      \"\"\"\n      # Set decoder input to the last generated IDs\n      decoder_input = ids[:, -1:]\n\n      # Preprocess decoder input by getting embeddings and adding timing signal.\n      decoder_input = self.embedding_softmax_layer(decoder_input)\n      decoder_input += timing_signal[i:i + 1]\n\n      self_attention_bias = decoder_self_attention_bias[:, :, i:i + 1, :i + 1]\n      decoder_outputs = self.decoder_stack(\n          decoder_input, cache.get(\"encoder_outputs\"), self_attention_bias,\n          cache.get(\"encoder_decoder_attention_bias\"), cache)\n      logits = self.embedding_softmax_layer.linear(decoder_outputs)\n      logits = tf.squeeze(logits, axis=[1])\n      return logits, cache\n    return symbols_to_logits_fn\n\n  def predict(self, encoder_outputs, encoder_decoder_attention_bias):\n    \"\"\"Return predicted sequence.\"\"\"\n    batch_size = tf.shape(encoder_outputs)[0]\n    input_length = tf.shape(encoder_outputs)[1]\n    max_decode_length = input_length + self.params.extra_decode_length\n\n    symbols_to_logits_fn = self._get_symbols_to_logits_fn(max_decode_length)\n\n    # Create initial set of IDs that will be passed into symbols_to_logits_fn.\n    initial_ids = tf.zeros([batch_size], dtype=tf.int32)\n\n    # Create cache storing decoder attention values for each layer.\n    cache = {\n        \"layer_%d\" % layer: {\n            \"k\": tf.zeros([batch_size, 0, self.params.hidden_size]),\n            \"v\": tf.zeros([batch_size, 0, self.params.hidden_size]),\n        } for layer in range(self.params.num_hidden_layers)}\n\n    # Add encoder output and attention bias to the cache.\n    cache[\"encoder_outputs\"] = encoder_outputs\n    cache[\"encoder_decoder_attention_bias\"] = encoder_decoder_attention_bias\n\n    # Use beam search to find the top beam_size sequences and scores.\n    decoded_ids, scores = beam_search.sequence_beam_search(\n        symbols_to_logits_fn=symbols_to_logits_fn,\n        initial_ids=initial_ids,\n        initial_cache=cache,\n        vocab_size=self.params.vocab_size,\n        beam_size=self.params.beam_size,\n        alpha=self.params.alpha,\n        max_decode_length=max_decode_length,\n        eos_id=EOS_ID)\n\n    # Get the top sequence for each batch element\n    top_decoded_ids = decoded_ids[:, 0, 1:]\n    top_scores = scores[:, 0]\n\n    return {\"outputs\": top_decoded_ids, \"scores\": top_scores}\n\n\nclass LayerNormalization(tf.layers.Layer):\n  \"\"\"Applies layer normalization.\"\"\"\n\n  def __init__(self, hidden_size):\n    super(LayerNormalization, self).__init__()\n    self.hidden_size = hidden_size\n\n  def build(self, _):\n    self.scale = tf.get_variable(\"layer_norm_scale\", [self.hidden_size],\n                                 initializer=tf.ones_initializer())\n    self.bias = tf.get_variable(\"layer_norm_bias\", [self.hidden_size],\n                                initializer=tf.zeros_initializer())\n    self.built = True\n\n  def call(self, x, epsilon=1e-6):\n    mean = tf.reduce_mean(x, axis=[-1], keepdims=True)\n    variance = tf.reduce_mean(tf.square(x - mean), axis=[-1], keepdims=True)\n    norm_x = (x - mean) * tf.rsqrt(variance + epsilon)\n    return norm_x * self.scale + self.bias\n\n\nclass PrePostProcessingWrapper(object):\n  \"\"\"Wrapper class that applies layer pre-processing and post-processing.\"\"\"\n\n  def __init__(self, layer, params, train):\n    self.layer = layer\n    self.postprocess_dropout = params.layer_postprocess_dropout\n    self.train = train\n\n    # Create normalization layer\n    self.layer_norm = LayerNormalization(params.hidden_size)\n\n  def __call__(self, x, *args, **kwargs):\n    # Preprocessing: apply layer normalization\n    y = self.layer_norm(x)\n\n    # Get layer output\n    y = self.layer(y, *args, **kwargs)\n\n    # Postprocessing: apply dropout and residual connection\n    if self.train:\n      y = tf.nn.dropout(y, 1 - self.postprocess_dropout)\n    return x + y\n\n\nclass EncoderStack(tf.layers.Layer):\n  \"\"\"Transformer encoder stack.\n\n  The encoder stack is made up of N identical layers. Each layer is composed\n  of the sublayers:\n    1. Self-attention layer\n    2. Feedforward network (which is 2 fully-connected layers)\n  \"\"\"\n\n  def __init__(self, params, train):\n    super(EncoderStack, self).__init__()\n    self.layers = []\n    for _ in range(params.num_hidden_layers):\n      # Create sublayers for each layer.\n      self_attention_layer = attention_layer.SelfAttention(\n          params.hidden_size, params.num_heads, params.attention_dropout, train)\n      feed_forward_network = ffn_layer.FeedFowardNetwork(\n          params.hidden_size, params.filter_size, params.relu_dropout, train)\n\n      self.layers.append([\n          PrePostProcessingWrapper(self_attention_layer, params, train),\n          PrePostProcessingWrapper(feed_forward_network, params, train)])\n\n    # Create final layer normalization layer.\n    self.output_normalization = LayerNormalization(params.hidden_size)\n\n  def call(self, encoder_inputs, attention_bias, inputs_padding):\n    \"\"\"Return the output of the encoder layer stacks.\n\n    Args:\n      encoder_inputs: tensor with shape [batch_size, input_length, hidden_size]\n      attention_bias: bias for the encoder self-attention layer.\n        [batch_size, 1, 1, input_length]\n      inputs_padding: P\n\n    Returns:\n      Output of encoder layer stack.\n      float32 tensor with shape [batch_size, input_length, hidden_size]\n    \"\"\"\n    for n, layer in enumerate(self.layers):\n      # Run inputs through the sublayers.\n      self_attention_layer = layer[0]\n      feed_forward_network = layer[1]\n\n      with tf.variable_scope(\"layer_%d\" % n):\n        with tf.variable_scope(\"self_attention\"):\n          encoder_inputs = self_attention_layer(encoder_inputs, attention_bias)\n        with tf.variable_scope(\"ffn\"):\n          encoder_inputs = feed_forward_network(encoder_inputs, inputs_padding)\n\n    return self.output_normalization(encoder_inputs)\n\n\nclass DecoderStack(tf.layers.Layer):\n  \"\"\"Transformer decoder stack.\n\n  Like the encoder stack, the decoder stack is made up of N identical layers.\n  Each layer is composed of the sublayers:\n    1. Self-attention layer\n    2. Multi-headed attention layer combining encoder outputs with results from\n       the previous self-attention layer.\n    3. Feedforward network (2 fully-connected layers)\n  \"\"\"\n\n  def __init__(self, params, train):\n    super(DecoderStack, self).__init__()\n    self.layers = []\n    for _ in range(params.num_hidden_layers):\n      self_attention_layer = attention_layer.SelfAttention(\n          params.hidden_size, params.num_heads, params.attention_dropout, train)\n      enc_dec_attention_layer = attention_layer.Attention(\n          params.hidden_size, params.num_heads, params.attention_dropout, train)\n      feed_forward_network = ffn_layer.FeedFowardNetwork(\n          params.hidden_size, params.filter_size, params.relu_dropout, train)\n\n      self.layers.append([\n          PrePostProcessingWrapper(self_attention_layer, params, train),\n          PrePostProcessingWrapper(enc_dec_attention_layer, params, train),\n          PrePostProcessingWrapper(feed_forward_network, params, train)])\n\n    self.output_normalization = LayerNormalization(params.hidden_size)\n\n  def call(self, decoder_inputs, encoder_outputs, decoder_self_attention_bias,\n           attention_bias, cache=None):\n    \"\"\"Return the output of the decoder layer stacks.\n\n    Args:\n      decoder_inputs: tensor with shape [batch_size, target_length, hidden_size]\n      encoder_outputs: tensor with shape [batch_size, input_length, hidden_size]\n      decoder_self_attention_bias: bias for decoder self-attention layer.\n        [1, 1, target_len, target_length]\n      attention_bias: bias for encoder-decoder attention layer.\n        [batch_size, 1, 1, input_length]\n      cache: (Used for fast decoding) A nested dictionary storing previous\n        decoder self-attention values. The items are:\n          {layer_n: {\"k\": tensor with shape [batch_size, i, key_channels],\n                     \"v\": tensor with shape [batch_size, i, value_channels]},\n           ...}\n\n    Returns:\n      Output of decoder layer stack.\n      float32 tensor with shape [batch_size, target_length, hidden_size]\n    \"\"\"\n    for n, layer in enumerate(self.layers):\n      self_attention_layer = layer[0]\n      enc_dec_attention_layer = layer[1]\n      feed_forward_network = layer[2]\n\n      # Run inputs through the sublayers.\n      layer_name = \"layer_%d\" % n\n      layer_cache = cache[layer_name] if cache is not None else None\n      with tf.variable_scope(layer_name):\n        with tf.variable_scope(\"self_attention\"):\n          decoder_inputs = self_attention_layer(\n              decoder_inputs, decoder_self_attention_bias, cache=layer_cache)\n        with tf.variable_scope(\"encdec_attention\"):\n          decoder_inputs = enc_dec_attention_layer(\n              decoder_inputs, encoder_outputs, attention_bias)\n        with tf.variable_scope(\"ffn\"):\n          decoder_inputs = feed_forward_network(decoder_inputs)\n\n    return self.output_normalization(decoder_inputs)\n"
  },
  {
    "path": "utils/melt/flow/__init__.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 13:01:22.325474\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom melt.flow.train import * \nfrom melt.flow.test import *\n\nfrom melt.flow.train_once import projector_config\n\n#from melt.flow.flow import *\n"
  },
  {
    "path": "utils/melt/flow/dataset_flow.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   dataset_flow.py\n#        \\author   chenghuige  \n#          \\date   2017-12-20 12:21:56.486751\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\n  \n"
  },
  {
    "path": "utils/melt/flow/flow.py",
    "content": "  #!/usr/bin/env python\r\n# ==============================================================================\r\n#          \\file   flow.py\r\n#        \\author   chenghuige  \r\n#          \\date   2016-08-17 10:48:46.141744\r\n#   \\Description  \r\n# ==============================================================================\r\n\r\n  \r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport tensorflow as tf\r\nflags = tf.app.flags\r\n#import gflags as flags\r\nFLAGS = flags.FLAGS\r\n\r\nimport tensorflow as tf\r\nflags = tf.app.flags\r\nFLAGS = flags.FLAGS\r\n\r\nimport tensorflow.contrib.slim as slim\r\nfrom tensorflow.contrib import tpu\r\ntry:\r\n  #import horovod.tensorflow as hvd\r\n  from mpi4py import MPI\r\n  comm = MPI.COMM_WORLD\r\nexcept Exception:\r\n  pass\r\n\r\nimport os, sys, traceback\r\nimport melt \r\nimport gezi\r\nfrom melt.utils import logging\r\nimport glob\r\nimport inspect\r\nimport traceback\r\nimport numpy as np\r\n\r\nfrom tqdm import tqdm\r\n\r\ndef tf_flow(process_once, model_dir=None, num_steps=None, sess=None):\r\n  \"\"\"\r\n  basic flow for tf records, allow most freedom for usage, if not tfrecords no need for flow\r\n  Args:\r\n  train_once: function with 2 inputs sess and step\r\n  \"\"\"\r\n  init_op = tf.group(tf.global_variables_initializer(),\r\n                    tf.local_variables_initializer())\r\n  if sess is None:\r\n    sess = tf.InteractiveSession()\r\n\r\n  if not model_dir:\r\n    sess.run(init_op)\r\n  else:\r\n    melt.restore(sess, model_dir)\r\n\r\n  # coord = tf.train.Coordinator()\r\n  # threads = tf.train.start_queue_runners(sess=sess, coord=coord)\r\n\r\n  # try:\r\n  #   # dataset\r\n  #   print('tf_flow using datset')\r\n  #   step = 0\r\n  #   try:\r\n  #     while True:\r\n  #       stop = process_once(sess, step)\r\n  #       if stop is True:\r\n  #         print('Early stop running %d stpes'%(step))\r\n  #         raise tf.errors.OutOfRangeError(None, None,'Early stop running %d stpes'%(step))\r\n  #       step += 1\r\n  #       if num_steps and step == num_steps:\r\n  #         raise tf.errors.OutOfRangeError(None, None, 'Reached max num steps')\r\n  #   except tf.errors.OutOfRangeError:\r\n  #     print('Done training for %d steps.' % (step))\r\n  # except Exception:\r\n  #   # old queue method\r\n  #   print('tf_flow using queue')\r\n  try:\r\n    step = 0\r\n    #while not coord.should_stop():\r\n    while True:\r\n      stop = process_once(sess, step)\r\n      if stop is True:\r\n        print('Early stop running %d stpes'%(step))\r\n        raise tf.errors.OutOfRangeError(None, None,'Early stop running %d stpes'%(step))\r\n      step += 1\r\n      if num_steps and step == num_steps:\r\n        raise tf.errors.OutOfRangeError(None, None, 'Reached max num steps')\r\n  except tf.errors.OutOfRangeError:\r\n    print('Done training for %d steps.' % (step))\r\n  # finally:\r\n  #   coord.request_stop()\r\n  # coord.join(threads)\r\n\r\n  sess.close()\r\n  return step\r\n \r\ndef _get_model_path(model_dir, save_model=False):\r\n  if os.path.exists(model_dir + '.index') and os.path.exists(model_dir + '.meta'):\r\n    # input is real model path\r\n    return model_dir\r\n  if not os.path.exists(model_dir):\r\n    if save_model:\r\n      gezi.try_mkdir(model_dir)\r\n    return None\r\n  ckpt = tf.train.get_checkpoint_state(model_dir)\r\n  if ckpt and ckpt.model_checkpoint_path:\r\n    #input valid dir and return latest model\r\n    return os.path.join(model_dir, os.path.basename(ckpt.model_checkpoint_path))\r\n  elif os.path.isdir(model_dir):\r\n    #input valid dir but no models\r\n    return None \r\n  else:\r\n    #this might be user specified model like ./model/model-100.ckpt\r\n    #the file exists and we NOTICE we do not check if it is valid model file!\r\n    return model_dir\r\n\r\ndef _get_checkpoint_path(checkpoint_path, step=None, num_steps_per_epoch=None, epoch=None):\r\n  if not num_steps_per_epoch:\r\n    return checkpoint_path\r\n  return '%s-%.2f'%(checkpoint_path, epoch or step / float(num_steps_per_epoch))\r\n\r\ndef tf_train_flow(train_once_fn, \r\n                  model_dir=None,\r\n                  log_dir=None, \r\n                  max_models_keep=1, \r\n                  save_interval_seconds=600, \r\n                  save_interval_steps=1000, \r\n                  num_epochs=None,\r\n                  num_steps=None, \r\n                  save_model=True,\r\n                  save_interval_epochs=None, \r\n                  freeze_graph=False,\r\n                  num_steps_per_epoch=0,\r\n                  restore_from_latest=True,\r\n                  metric_eval_fn=None,\r\n                  valid_interval_epochs=0,\r\n                  inference_fn=None, \r\n                  inference_interval_epochs=0,\r\n                  init_fn=None,\r\n                  restore_fn=None,\r\n                  restore_include=None,\r\n                  restore_exclude=None,\r\n                  save_all_scope=False, #TODO save load from restore scope only but svae all\r\n                  variables_to_restore=None,\r\n                  variables_to_save=None, #by default will be the same as variables_to_restore\r\n                  output_collection_names=None, \r\n                  output_node_names=None,\r\n                  learning_rate=None, #not use yet, just use in train_once\r\n                  learning_rate_patience=None,\r\n                  learning_rate_decay_factor=None,\r\n                  write_during_train=True,\r\n                  model=None,\r\n                  sess=None):\r\n  \"\"\"\r\n  similary flow as tf_flow, but add model try reload and save\r\n  \"\"\"\r\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\r\n  if use_horovod:\r\n    if FLAGS.torch:\r\n      import horovod.torch as hvd\r\n    else:\r\n      import horovod.tensorflow as hvd\r\n\r\n  model_dir_ = model_dir\r\n  if use_horovod and hvd.rank() != 0:\r\n    model_dir = None\r\n  \r\n  if sess is None:\r\n    #TODO melt.get_session is global session but may cause non close at last\r\n    sess = melt.get_session()\r\n\r\n  if FLAGS.use_tpu:\r\n    sess.run(tpu.initialize_system())\r\n  #logging.info('tf_train_flow start')\r\n  #logging.info('max_models_keep:', max_models_keep)\r\n  #logging.info('save_interval_seconds:', save_interval_seconds)\r\n\r\n  if model_dir:\r\n    if model:\r\n      checkpoint = tf.train.Checkpoint(model=model)\r\n      ckpt_dir = model_dir + '/ckpt'\r\n      checkpoint_prefix = os.path.join(ckpt_dir, 'ckpt')\r\n  \r\n    #this is usefull for you use another model with another scope, and just load and restore/save initalize your scope vars!\r\n    #this is not for finetune but mainly for like using another model as in predict like this introducing graph other model scope and ignore here\r\n\r\n    # var_list = None if not restore_scope else tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope=restore_scope)\r\n    # #logging.info('-------------var_list', var_list)\r\n    \r\n    # if not variables_to_restore:\r\n    #   variables_to_restore = var_list\r\n\r\n    if not variables_to_restore:\r\n      variables_to_restore = slim.get_variables_to_restore(include=restore_include, exclude=restore_exclude)\r\n\r\n    if not variables_to_save:\r\n      variables_to_save = variables_to_restore\r\n    if save_all_scope:\r\n      variables_to_save = None\r\n    \r\n    #if variables_to_restore is None:\r\n    logging.info('variables_to_restore from %s' % model_dir)\r\n    #load all var in checkpoint try to save all var(might more then original checkpoint) if not specifiy variables_to_save\r\n    varnames_in_checkpoint = melt.get_checkpoint_varnames(model_dir)\r\n    #logging.info('varnames_in_checkpoint: {}'.format(varnames_in_checkpoint))\r\n\r\n    # TODO has someproblem say  tf.Variable 'r_net/text_encoder/cudnn_rnn/cu_dnngru/recurrent_kernel/adam_v:0' even though in checkpoint I have renated it as ignore/rnet\r\n    variables_to_restore_from_model = slim.get_variables_to_restore(include=varnames_in_checkpoint)\r\n    #logging.info('variables_to_restore_from_model: {}'.format(variables_to_restore_from_model))\r\n    if not variables_to_restore:\r\n      variables_to_restore = variables_to_restore_from_model\r\n    else:\r\n      variables_to_restore = [v for v in variables_to_restore if v in variables_to_restore_from_model]\r\n    if restore_exclude:\r\n      for excl in restore_exclude:\r\n        variables_to_restore = [v for v in  variables_to_restore if not excl in v.name]\r\n    #--tf 1.6 adadelta will have same vars... \r\n    variables_to_restore = list(set(variables_to_restore))\r\n    #logging.info('variables_to_restore', variables_to_restore[:100])\r\n    logging.info('variables_to_restore', [x for x in variables_to_restore if not 'OptimizeLoss' in x.name][:100])\r\n\r\n  ##finally remove global_step since melt.apps.train will handle it!\r\n  global_step = tf.train.get_or_create_global_step()\r\n  \r\n  #variables_to_restore = [v for v in variables_to_restore if not tf.GraphKeys.GLOBAL_STEP in v.name]\r\n  #variables_to_restore = [v for v in variables_to_restore if not 'learning_rate' in v.name]\r\n\r\n  # TODO fixme if step, step2.. and in checkpoint step then here will be step2...\r\n  #print('------------', [v for v in variables_to_restore if 'step' in v.name])\r\n  loader = tf.train.Saver(var_list=variables_to_restore) \r\n\r\n  logging.info('max models to keep {}, keep every {} hours'.format(max_models_keep, save_interval_seconds / 3600.0))\r\n  saver = tf.train.Saver(\r\n    max_to_keep=max_models_keep, \r\n    keep_checkpoint_every_n_hours=save_interval_seconds / 3600.0,\r\n    var_list=variables_to_save) \r\n  epoch_saver = tf.train.Saver(var_list=variables_to_save, max_to_keep=1000)\r\n  best_epoch_saver = tf.train.Saver(var_list=variables_to_save) \r\n  #logging.info('variables_to_save:{}'.format(variables_to_save))\r\n\r\n  # # #TODO for safe restore all init will be ok ?\r\n  # # if variables_to_restore is None:\r\n  init_op = tf.group(tf.global_variables_initializer(), #variables_initializer(global_variables())\r\n                     tf.local_variables_initializer()) #variables_initializer(local_variables())\r\n  # # else:\r\n  # #   init_op = tf.group(tf.variables_initializer(variables_to_restore),\r\n  # #                      tf.local_variables_initializer())\r\n  \r\n  ##--mostly this will be fine except for using assistant predictor, initialize again! will make assistant predictor wrong\r\n  ##so assume to all run init op! if using assistant predictor, make sure it use another session\r\n  \r\n  # https://stackoverflow.com/questions/35164529/in-tensorflow-is-there-any-way-to-just-initialize-uninitialised-variables\r\n  # def guarantee_initialized_variables(session, list_of_variables = None):\r\n  #   if list_of_variables is None:\r\n  #       list_of_variables = tf.global_variables()\r\n  #   uninitialized_variables = list(tf.get_variable(name) for name in\r\n  #                                  session.run(tf.report_uninitialized_variables(list_of_variables)))\r\n  #   return unintialized_variables\r\n\r\n  # unintialized_variables = guarantee_initialized_variables(sess)\r\n  # init_op = tf.group(tf.initialize_variables(uninitialized_vars), tf.local_variables_initializer())\r\n\r\n  timer = gezi.Timer('sess run init_op in melt.tf_train_flow')\r\n  #model.save('./weights')\r\n\r\n  # notice \r\n  sess.run(init_op)\r\n\r\n  timer.print_elapsed()\r\n\r\n  #melt.init_uninitialized_variables(sess)\r\n\r\n  #pre_step means the step last saved, train without pretrained,then -1\r\n  pre_step = -1\r\n  fixed_pre_step = -1  #fixed pre step is for epoch num to be correct if you change batch size\r\n  #print(model_dir)\r\n  pre_epoch = None\r\n  if model_dir:\r\n    model_path = _get_model_path(model_dir, save_model)\r\n    # if not model_path:\r\n    #   model_path = _get_model_path(os.path.join(model_dir, 'epoch'))\r\n    #print(model_path)\r\n    model_dir = gezi.get_dir(model_dir) #incase you pass ./model/model-ckpt1000 -> ./model\r\n  \r\n    if model_path is not None:\r\n      if not restore_from_latest:\r\n        logging.info('using recent but not latest model')\r\n        model_path = melt.recent_checkpoint(model_dir)\r\n      model_name = os.path.basename(model_path)\r\n      timer = gezi.Timer('Loading and training from existing model [%s]' % model_path)\r\n      if restore_fn is not None:\r\n        restore_fn(sess)\r\n      loader.restore(sess, model_path)\r\n      ## not supported\r\n      #model.save()\r\n      #model.save_weights('./weights')\r\n      timer.print()\r\n      #pre_step = melt.get_model_step(model_path) - 1 if FLAGS.global_step is None else FLAGS.global_step -1\r\n      # TODO check ..\r\n      pre_step = sess.run(tf.train.get_global_step()) - 1\r\n      pre_epoch = melt.get_model_epoch(model_path) if FLAGS.global_epoch is None else FLAGS.global_epoch\r\n      fixed_pre_step = pre_step\r\n      # if pre_epoch is not None:\r\n      #   #like using batch size 32, then reload train using batch size 64\r\n      #   if abs(pre_step / num_steps_per_epoch - pre_epoch) > 0.1:\r\n      #     fixed_pre_step = int(pre_epoch * num_steps_per_epoch)\r\n      #     logging.info('Warning, epoch is diff with pre_step / num_steps_per_epoch:{}, pre_epoch:{},maybe you change batch size and we will adjust to set pre_step as {}'\\\r\n      #       .format(pre_step / num_steps_per_epoch, pre_epoch, fixed_pre_step))\r\n    else:\r\n      latest_checkpoint = None\r\n      if not use_horovod: #now will hang\r\n        try:\r\n          latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\r\n          if latest_checkpoint:\r\n            logging.info('Try start from eager trained mode, latest checkpoint:', latest_checkpoint)\r\n            checkpoint.restore(latest_checkpoint).run_restore_ops(session=sess)\r\n\r\n            pre_epoch = int(latest_checkpoint.split('-')[-1])\r\n            #pre_step = pre_epoch * num_steps_per_epoch - 1\r\n            # TODO check\r\n            pre_step = sess.run(tf.train.get_global_step()) - 1\r\n            fixed_pre_step = pre_step\r\n            logging.info('Start step is:', pre_step)\r\n        except Exception:\r\n          logging.info('Something wrong with restore from eager trained model')\r\n        if latest_checkpoint is None:\r\n          logging.info('Train all start step 0')\r\n          #https://stackoverflow.com/questions/40220201/tensorflow-tf-initialize-all-variables-vs-tf-initialize-local-variables\r\n          #tf.initialize_all_variables() is a shortcut to tf.initialize_variables(tf.all_variables()), \r\n          #tf.initialize_local_variables() is a shortcut to tf.initialize_variables(tf.local_variables()), \r\n          #which initializes variables in GraphKeys.VARIABLES and GraphKeys.LOCAL_VARIABLE collections, respectively.\r\n          #init_op = tf.group(tf.global_variables_initializer(),\r\n          #                   tf.local_variables_initializer())   \r\n          #[var for var in tf.all_variables() if var.op.name.startswith(restore_scope)] will be the same as tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope=restore_scope)\r\n          \r\n          #sess.run(init_op)\r\n\r\n          #like use image model, build image graph, reload first train, and then will go to same checkpoint all varaible just restore will ok\r\n          #for finetune from loading other model init\r\n          if init_fn is not None:\r\n            init_fn(sess)\r\n\r\n  #sess.run(tf.assign(global_step, tf.constant(global_step_val, dtype=tf.int64)))\r\n  try:\r\n    learning_rate = tf.get_collection('learning_rate')[-1]\r\n    learning_rate_weight = tf.get_collection('learning_rate_weight')[-1]\r\n    sess.run(tf.assign(learning_rate, learning_rate * learning_rate_weight))\r\n  except Exception:\r\n    # if not using weight_decay but using optimizer decay then will go here as learning rate is a tensor can not assign\r\n    pass\r\n\r\n  try:\r\n    logging.info('Actual start global step:', sess.run(global_step), 'learning rate:', sess.run(learning_rate), 'learning_rate_weight:', sess.run(learning_rate_weight))\r\n  except Exception:\r\n    pass\r\n  \r\n  if use_horovod:\r\n    bcast = hvd.broadcast_global_variables(0)\r\n    sess.run(bcast) \r\n\r\n  # before below\r\n  if gezi.has_env('METRIC'):\r\n    # safe for using horovod\r\n    model_path_ = _get_model_path(model_dir_)\r\n    l = metric_eval_fn(model_path_)\r\n    if not use_horovod or hvd.rank() == 0:\r\n      print(list(zip(l[1], l[0])))\r\n    exit(0)\r\n\r\n  if model_dir_:\r\n    #if save_interval_epochs and num_steps_per_epoch and num_steps >= 0:\r\n    epoch_dir = os.path.join(model_dir_, 'epoch')\r\n    if not use_horovod or hvd.rank() == 0:\r\n      gezi.try_mkdir(epoch_dir)\r\n    checkpoint_path = os.path.join(model_dir_, 'model.ckpt')\r\n  \r\n  # coord = tf.train.Coordinator()\r\n  # threads = tf.train.start_queue_runners(sess=sess, coord=coord)\r\n\r\n  #tf.train.write_graph(sess.graph_def, model_dir, 'train.pbtxt')\r\n  only_one_step = False\r\n  \r\n  if use_horovod:\r\n    ## TODO FIXME why bcast here not work ? simple test work see tests/bcast.py\r\n    #comm.bcast(pre_step, root=0)\r\n    temp = np.array([pre_step, fixed_pre_step])\r\n    comm.Bcast(temp, root=0)\r\n    pre_step, fixed_pre_step = temp[0], temp[1]\r\n\r\n  step = start = pre_step + 1\r\n  fixed_step = fixed_pre_step + 1 \r\n\r\n  #first = True\r\n\r\n  #hack just for save one model after load\r\n  if num_steps < 0 or (num_steps and num_steps < step):\r\n    logging.info('just load and resave then exit')\r\n    model_path_ =  _get_checkpoint_path(checkpoint_path, step, num_steps_per_epoch, epoch=pre_epoch)\r\n    saver.save(sess, model_path_, global_step=step + 1)\r\n    if freeze_graph:\r\n      melt.freeze_graph(sess, model_path_, step + 1, output_collection_names, output_node_names)\r\n    sess.close()\r\n    exit(0)\r\n  \r\n  if num_epochs < 0:\r\n    only_one_step = True\r\n    logging.info('just run one step')\r\n\r\n  if FLAGS.work_mode != 'train':\r\n    assert not os.path.isdir(FLAGS.model_dir), FLAGS.model_dir  \r\n    if 'valid' in FLAGS.work_mode:\r\n      vals, names = metric_eval_fn(FLAGS.model_dir)\r\n      logging.info(list(zip(names, vals)))\r\n    if 'test' in FLAGS.work_mode:\r\n      inference_fn(FLAGS.model_dir)\r\n    exit(0)\r\n\r\n  #early_stop = True #TODO allow config\r\n  num_bad_epochs = 0\r\n  pre_epoch_eval_loss = 1e20\r\n  best_epoch_eval_loss = 1e20\r\n  num_allowed_bad_epochs = 4 #allow 5 non decrease eval loss epochs  before stop\r\n  epoch_saved_step = 0\r\n  num_epochs = num_epochs if num_epochs else 1024\r\n\r\n  #-------------------------------main loop\r\n  try:\r\n    for epoch in range(num_epochs):\r\n      for _ in tqdm(range(num_steps_per_epoch), ascii=True):\r\n        model_step_path = None\r\n        if model_dir_:\r\n          model_path_ = os.path.join(epoch_dir,'model.ckpt-%.2f'%(fixed_step / float(num_steps_per_epoch)))\r\n          model_step_path_ = model_path_ + '-' + str(step)\r\n          if (write_during_train and metric_eval_fn is not None and valid_interval_epochs and fixed_step % int(num_steps_per_epoch * valid_interval_epochs) == 0):\r\n            model_step_path = model_step_path_\r\n          else:\r\n             model_step_path = None\r\n\r\n        if step == 0:\r\n          model_step_path = None\r\n\r\n        #print('--------------------step', step)\r\n        stop = train_once_fn(sess, \r\n                             step, \r\n                             is_start=(step==start), \r\n                             fixed_step=fixed_step,\r\n                             num_epochs=num_epochs,\r\n                             model_path=model_step_path,\r\n                             use_horovod=use_horovod,\r\n                             ## TODO FIXME this line will cause   tensorflow.python.framework.errors_impl.NotFoundError: Resource localhost/save_counter/N10tensorflow3VarE does not exist. \r\n                            )\r\n\r\n        #first = False\r\n\r\n        if only_one_step:\r\n          stop = True\r\n\r\n        step += 1\r\n        fixed_step += 1\r\n\r\n        if save_model and step and model_dir:\r\n          #step 0 is also saved! actually train one step and save\r\n          is_step_save = step % save_interval_steps == 0\r\n          is_epoch_save = save_interval_steps and num_steps_per_epoch and fixed_step % int(num_steps_per_epoch * save_interval_epochs) == 0\r\n\r\n          is_step_save = is_step_save or is_epoch_save\r\n\r\n          if is_step_save:\r\n            timer = gezi.Timer('save model step %d to %s'%(step, checkpoint_path), False)\r\n            model_path_ = _get_checkpoint_path(checkpoint_path, fixed_step, num_steps_per_epoch)\r\n            saver.save(sess, model_path_, global_step=step)\r\n            if freeze_graph:\r\n              melt.freeze_graph(sess, model_path_, step, output_collection_names, output_node_names)\r\n            if log_dir != model_dir:\r\n             assert log_dir\r\n             command = 'rsync -l -r -t %s/* %s' % (log_dir, model_dir) \r\n             print(command, file=sys.stderr)\r\n             os.system(command)\r\n            timer.print_elapsed()\r\n    \r\n          if is_epoch_save:\r\n            # TODO only epoch in name not sep ?\r\n            epoch_saved_step = step\r\n            model_path_ = os.path.join(epoch_dir,'model.ckpt-%.2f'%(fixed_step / float(num_steps_per_epoch)))\r\n            model_step_path = model_path_ + '-' + str(step)\r\n            timer = gezi.Timer('epoch save to {}'.format(model_path_))\r\n            epoch_saver.save(sess, model_path_, global_step=step)\r\n            #logging.info(timer.elapsed())\r\n            timer.print_elapsed()\r\n            \r\n            # TODO FIXME if add keras save below wil hang, might due to rank 0 save so slower then others\r\n            # fixed by adding allreduce on each loop end\r\n            # [1,0]<stderr>:Stalled ranks:\r\n            # [1,0]<stderr>:0: [HorovodAllreduce_Const_9_0]\r\n            if model and not use_horovod:\r\n            #if model:          \r\n              #model.save_weights(epoch_dir + '/ckpt-%.2f' % (fixed_step / float(num_steps_per_epoch)))\r\n              # TODO FIXME if restart will save from 1... again..\r\n              timer = gezi.Timer('keras epoch save to {}'.format(checkpoint_prefix))\r\n              checkpoint.save(checkpoint_prefix, session=sess)\r\n              #print(sess.run(checkpoint.save_counter))\r\n              #logging.info(timer.elapsed())\r\n              timer.print_elapsed()\r\n              \r\n            if freeze_graph:\r\n              melt.freeze_graph(sess, model_path_, step, output_collection_names, output_node_names)\r\n\r\n          if write_during_train:\r\n            if inference_fn is not None and inference_interval_epochs and fixed_step % int(num_steps_per_epoch * inference_interval_epochs) == 0:\r\n              model_step_path = model_path_ + '-' + str(step)\r\n              try:\r\n                #print('--------------inference fn')\r\n                inference_fn(model_path=model_step_path)\r\n              except Exception:\r\n                logging.info(traceback.format_exc())  \r\n\r\n            ## metric eval move to train_once which means you first save then eval, so might need 1 more step\r\n            # if metric_eval_fn is not None and valid_interval_epochs and fixed_step % int(num_steps_per_epoch * valid_interval_epochs) == 0:\r\n            #   model_step_path = model_path_ + '-' + str(step)\r\n            #   try:\r\n            #     metric_eval_fn(model_path=model_step_path)\r\n            #   except Exception:\r\n            #     logging.info(traceback.format_exc())  \r\n\r\n        if stop is True:\r\n          print('Early stop running %d stpes'%(step), file=sys.stderr)\r\n          raise tf.errors.OutOfRangeError(None, None,'Early stop running %d stpes'%(step))\r\n        if num_steps and (step + 1) == start + num_steps:\r\n          raise tf.errors.OutOfRangeError(None, None,'Reached max num steps')\r\n        #max_num_epochs = 1000\r\n        max_num_epochs = num_epochs\r\n        #if max_num_epochs and num_steps_per_epoch and fixed_step // num_steps_per_epoch >= max_num_epochs:\r\n        if max_num_epochs and num_steps_per_epoch and fixed_step / num_steps_per_epoch > max_num_epochs:\r\n          raise tf.errors.OutOfRangeError(None, None,'Reached max num epochs of %d'%max_num_epochs)\r\n    raise tf.errors.OutOfRangeError(None, None,'Reached max num epochs of %d'%max_num_epochs)\r\n  except tf.errors.OutOfRangeError:\r\n    # if run 2 epoch and we have just epoch saved, do not need to save only 1 step more model\r\n    if (step - epoch_saved_step > 1) and not (step==start) and save_model and step % save_interval_steps != 0 and model_dir:\r\n      model_path_ = _get_checkpoint_path(checkpoint_path, step, num_steps_per_epoch)\r\n      saver.save(sess, model_path_, global_step=step)\r\n      if freeze_graph:\r\n        melt.freeze_graph(sess, model_path_, step, output_collection_names, output_node_names)\r\n      ## this is for train which save files to hdfs then HACK (set log_dir different then model_dir log save to local and sync to model_dir when saving model)\r\n      if log_dir != model_dir:\r\n        assert log_dir\r\n        command = 'rsync -l -r -t %s/* %s' % (log_dir, model_dir) \r\n        print(command, file=sys.stderr)\r\n        os.system(command)\r\n    if only_one_step:\r\n      # TODO strange logging.info will not show to screen if using horovod\r\n      logging.info('Done one step')\r\n      exit(0)\r\n    \r\n    ## since we have saved model then eval no need to do here, expect for train with specific steps but not common use\r\n    # if (step - epoch_saved_step > 1) and metric_eval_fn is not None:\r\n    #   metric_eval_fn(model_path=model_step_path)\r\n    \r\n    if (num_epochs and fixed_step / num_steps_per_epoch >= num_epochs) or (num_steps and step == start + num_steps) :\r\n      logging.info('Done training for %.3f epochs, %d steps.' % (fixed_step / num_steps_per_epoch, step))\r\n      #FIXME becase coord.join seems not work,  RuntimeError: Coordinator stopped with threads still running: Thread-9\r\n      exit(0)\r\n    else:\r\n      logging.info('Should not stop, but stopped at epoch: %.3f'%(fixed_step / num_steps_per_epoch))\r\n      logging.info(traceback.format_exc())\r\n      #raise e\r\n  if FLAGS.use_tpu:\r\n    sess.run(tpu.shutdown_system())\r\n  sess.close()\r\n\r\n#@TODO not tested yet\r\ndef tf_test_flow(test_once, model_dir='./model', \r\n                 model_name=None, num_epochs=1, num_steps=0,\r\n                 sess=None):\r\n  \"\"\"\r\n  basic flow for tf records, allow most freedom for usage, if not tfrecords no need for flow\r\n  Args:\r\n  test_once: function with 2 inputs sess and step\r\n  model_dir: can be dir like ./model will fetch lates model in model dir , or be real model path like ./model/model.0.ckpt\r\n  \"\"\"\r\n  if sess is None:\r\n    sess = tf.InteractiveSession()\r\n\r\n  melt.restore(sess, model_dir, model_name)\r\n\r\n  if not os.path.isdir(model_dir):\r\n    model_dir = os.path.dirname(model_dir)\r\n  summary_op = tf.merge_all_summaries()\r\n  summary_writer = tf.train.SummaryWriter(model_dir, sess.graph)\r\n\r\n  # coord = tf.train.Coordinator()\r\n  # threads = tf.train.start_queue_runners(sess=sess, coord=coord)\r\n  try:\r\n    step = 0\r\n    #while not coord.should_stop():\r\n    while True:\r\n      test_once(sess, step)\r\n      step += 1\r\n      if num_steps and step == num_steps:\r\n        raise tf.errors.OutOfRangeError(None, None, 'Reached max num steps')\r\n  except tf.errors.OutOfRangeError:\r\n    print('Done testing for %d epochs, %d steps.' % (num_epochs, step))\r\n"
  },
  {
    "path": "utils/melt/flow/test.py",
    "content": "#!/usr/bin/env python\r\n# ==============================================================================\r\n#          \\file   test_tfrecord.py\r\n#        \\author   chenghuige  \r\n#          \\date   2016-08-16 13:01:09.932544\r\n#   \\Description  \r\n# ==============================================================================\r\n\r\n  \r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport os\r\nimport tensorflow as tf \r\nimport gezi\r\nfrom gezi import AvgScore\r\nimport melt\r\n#not used yet \r\nfrom melt.flow.flow import tf_test_flow\r\nlogging = melt.logging\r\n\r\ndef test_flow(ops, names=None, gen_feed_dict_fn=None, deal_results_fn=None, model_dir='./model', \r\n              model_name=None, num_epochs=1, interval_steps=100, eval_times=0,\r\n              print_avg_loss=True, sess=None):\r\n  \"\"\"\r\n  test flow, @TODO improve list result print\r\n  Args:\r\n  ops: eval ops\r\n  names: eval names\r\n  model_path: can be dir like ./model will fetch lates model in model dir , or be real model path like ./model/model.0.ckpt\r\n  @TODO num_epochs should be 1,but now has problem of loading model if set @FIXME, so now 0\r\n  \"\"\"\r\n  if sess is None:\r\n    sess = tf.InteractiveSession()\r\n  melt.restore(sess, model_dir, model_name)\r\n\r\n  if not os.path.isdir(model_dir):\r\n    model_dir = os.path.dirname(model_dir)\r\n  summary_op = tf.summary.merge_all()\r\n  summary_writer = tf.summary.FileWriter(model_dir, sess.graph)\r\n\r\n  coord = tf.train.Coordinator()\r\n  threads = tf.train.start_queue_runners(sess=sess, coord=coord)\r\n  try:\r\n    step = 0\r\n    eval_step = 0\r\n    avg_eval = AvgScore()\r\n    total_avg_eval = AvgScore()\r\n    while not coord.should_stop():\r\n      feed_dict = {} if gen_feed_dict_fn is None else gen_feed_dict_fn()\r\n      results = sess.run(ops, feed_dict=feed_dict)\r\n      if not isinstance(results, (list, tuple)):\r\n        results = [results]\r\n      \r\n      if print_avg_loss:\r\n        loss = gezi.get_singles(results)\r\n        avg_eval.add(loss)\r\n        total_avg_eval.add(loss)\r\n      \r\n      if step % interval_steps == 0:\r\n        if deal_results_fn is not None:\r\n          #@TODO may need to pass summary_writer, and step\r\n          #use **args ?\r\n          deal_results_fn(results)\r\n        average_eval = avg_eval.avg_score()\r\n        print('{}: average evals = {}'.format(gezi.now_time(), melt.value_name_list_str(average_eval, names)), 'step:', step)\r\n        summary = tf.Summary()\r\n        try:\r\n          summary_str = sess.run(summary_op, feed_dict=feed_dict)\r\n        except Exception:\r\n          print(summary_op)\r\n          if not hasattr(test_flow, 'num_summary_errors'):\r\n            logging.warning('summary_str = sess.run(train_once.summary_op, feed_dict=eval_feed_dict) fail')\r\n            test_flow.num_summary_errors = 1\r\n          summary_str = ''\r\n        summary.ParseFromString(summary_str)\r\n\r\n        results = gezi.get_singles(results)\r\n        for i in xrange(len(results)):\r\n          name = i if names is None else names[i]\r\n          summary.value.add(tag='metric{}'.format(name), simple_value=average_eval[i])\r\n        summary_writer.add_summary(summary, step)\r\n\r\n        if eval_step and eval_step == eval_times:\r\n          break\r\n        eval_step += 1\r\n      step += 1\r\n    print('Done testing for {} epochs, {} steps. AverageEvals:{}'.format(num_epochs, step, gezi.pretty_floats(total_avg_eval.avg_score())))\r\n  except tf.errors.OutOfRangeError:\r\n    print('Done testing for {} epochs, {} steps. AverageEvals:{}'.format(num_epochs, step, gezi.pretty_floats(total_avg_eval.avg_score())))\r\n  finally:\r\n    # When done, ask the threads to stop.\r\n    coord.request_stop()\r\n  # Wait for threads to finish.\r\n  coord.join(threads)\r\n"
  },
  {
    "path": "utils/melt/flow/test_once.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   test.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 12:59:40.643284\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n#@TODO test may be auc or other things try to use contrib/metric\n\n"
  },
  {
    "path": "utils/melt/flow/train.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   train_tfrecord.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 13:00:55.055143\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\n@TODO train_tfrecord.py test_tfrecord.py should be rename to train.py test.py\nsince the work flow works for tfrecord or simple feeding data flow\ntrain.py test.py right now should be rename to train_once.py test_once.py\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport gezi\nfrom gezi import Timer\nimport melt\nimport os\n\nfrom melt.flow.train_once import train_once\nfrom melt.flow.flow import tf_flow\nfrom melt.flow.flow import tf_train_flow\n\n# try:\n#   import horovod.tensorflow as hvd\n# except Exception:\n#   pass\n\n#from melt.util import print_results\n#@TODO inside melt can not use melt.print_reults must use melt.util.print_results\n#@TODO too many args, using **kwarg ?\ndef simple_train_flow(ops, \n                      names=None, \n                      gen_feed_dict_fn=None, \n                      deal_results_fn=melt.print_results, \n                      interval_steps=100, \n                      eval_ops=None, \n                      eval_names=None, \n                      gen_eval_feed_dict_fn=None, \n                      deal_eval_results_fn=melt.print_results, \n                      valid_interval_steps=100, \n                      print_time=True, \n                      print_avg_loss=True, \n                      log_dir=None, \n                      num_steps=None, \n                      num_steps_per_epoch=None,\n                      metric_eval_fn=None,\n                      metric_eval_interval_steps=0,\n                      sess=None):\n  \"\"\"\n  simple train flow for tr records, without model saving \n  just for test purpose, see examples/sparse-tensor-classification/train-melt.py\n  NOTICE: first ops must be train_op(optimizer related) which will later ignored\n  \"\"\"\n  print('Will not save model')\n  if log_dir:\n    print('Will save log to %s'%log_dir)\n  else:\n    print('Will not save log')\n  def train_once_(sess, step):\n    train_once(sess, \n               step, \n               ops, \n               names, \n               gen_feed_dict_fn, \n               deal_results_fn, \n               interval_steps, \n               eval_ops, \n               eval_names, \n               gen_eval_feed_dict_fn, \n               deal_eval_results_fn, \n               valid_interval_steps,\n               print_time, \n               print_avg_loss, \n               log_dir=log_dir,\n               num_steps_per_epoch=num_steps_per_epoch,\n               metric_eval_fn=metric_eval_fn,\n               metric_eval_interval_steps=metric_eval_interval_steps)\n  \n  tf_flow(train_once_, num_steps, sess=sess)\n\ndef train_flow(ops, \n               names=None, \n               gen_feed_dict_fn=None, \n               deal_results_fn=melt.print_results, \n               interval_steps=100, \n               eval_ops=None, \n               eval_names=None, \n               gen_eval_feed_dict_fn=None, \n               deal_eval_results_fn=melt.print_results, \n               valid_interval_steps=100, \n               eval_loops=1,\n               print_time=True, \n               print_avg_loss=True, \n               model_dir=None, \n               max_models_keep=5, \n               save_interval_seconds=600, \n               save_interval_steps=1000,\n               freeze_graph=False,\n               log_dir=None, \n               no_log=False, \n               num_epochs=None,\n               num_steps=None, \n               num_steps_per_epoch=None, \n               optimizer=None, \n               learning_rate=None,\n               learning_rate_patience=None,\n               learning_rate_decay_factor=None,\n               save_model=True, \n               save_interval_epochs=None,\n               add_train_var_histogram=False,\n               restore_from_latest=True,\n               metric_eval_fn=None,\n               metric_eval_interval_steps=0,\n               valid_interval_epochs=0,\n               inference_fn=None, \n               inference_interval_epochs=0,\n               summary_excls=None,\n               init_fn=None,\n               restore_fn=None,\n               restore_include=None,\n               restore_exclude=None,\n               save_all_scope=False,\n               variables_to_restore=None,\n               variables_to_save=None,\n               output_collection_names=None, \n               output_node_names=None,\n               write_during_train=True,\n               use_horovod=False,\n               model=None,\n               sess=None):\n  \"\"\"\n  train flow for tr records, with model saving/reload and summary considered\n  summary logs will also write to model_dir \n  see examples/sparse-tensor-classification/train-melt-savemodel.py\n  NOTICE: first ops must be train_op(optimizer related) which will later ignored\n  #@TODO allow adding momentum for optimzer\n  allow mutliple gpu\n  @TODO can we show epoch num info ?\n  \"\"\"\n  if optimizer is not None:\n    loss = ops[0]\n    if isinstance(optimizer, str):\n      train_op = melt.gen_train_op_byname(loss, learning_rate, optimizer)\n    else:\n      train_op = optimizer(learning_rate).minimize(loss) \n    ops = list(ops)\n    ops.insert(0, train_op)\n\n  if not model_dir:\n    if log_dir and no_log: \n      log_dir = None\n    if not use_horovod:\n      return simple_train_flow(ops, \n                              names, \n                              gen_feed_dict_fn,\n                              deal_results_fn,\n                              interval_steps,\n                              eval_ops,\n                              eval_names,\n                              gen_eval_feed_dict_fn,\n                              deal_eval_results_fn,\n                              valid_interval_steps,\n                              print_time,\n                              print_avg_loss, \n                              log_dir,\n                              num_steps,\n                              num_steps_per_epoch=num_steps_per_epoch,\n                              metric_eval_fn=metric_eval_fn,\n                              metric_eval_interval_steps=metric_eval_interval_steps,\n                              sess=sess)\n  \n  #if not set log dir try to use model dir to store log\n  #so defaut is write log, if only want save model but disable log, set no_log=True\n  if save_model:\n    print('Will save model to %s'%model_dir)\n  else:\n    no_log = True\n    print('Will not save model, only read model from %s if exists'%model_dir)\n  \n  if not log_dir and not no_log:\n    log_dir = gezi.get_dir(model_dir)\n  if log_dir:\n    print('Will save log to %s'%log_dir)\n    if add_train_var_histogram:\n      # Add histograms for trainable variables. \n      #this is also great for you to see all the trainable variables on tensorboard\n      #NOTICE for big model this is too slow!\n      melt.monitor_train_vars()\n  else:\n    print('Will not save log')\n\n  def train_once_(sess, step, is_start=False, fixed_step=None, \n                  num_epochs=None, model_path=None, use_horovod=False):\n    train_once(sess, \n               step, \n               ops, \n               names, \n               gen_feed_dict_fn, \n               deal_results_fn, \n               interval_steps, \n               eval_ops, \n               eval_names, \n               gen_eval_feed_dict_fn, \n               deal_eval_results_fn, \n               valid_interval_steps,\n               print_time, \n               print_avg_loss,\n               model_dir, \n               log_dir, \n               is_start, \n               num_steps_per_epoch,\n               metric_eval_fn=metric_eval_fn,\n               metric_eval_interval_steps=metric_eval_interval_steps,\n               summary_excls=summary_excls,\n               fixed_step=fixed_step,\n               eval_loops=eval_loops,\n               learning_rate=learning_rate,\n               learning_rate_patience=learning_rate_patience,\n               learning_rate_decay_factor=learning_rate_decay_factor,\n               num_epochs=num_epochs,           \n               model_path=model_path,\n               use_horovod=use_horovod\n               )\n  \n  #print('1.2--------------------OMPI_COMM_WORLD_RANK in', 'OMPI_COMM_WORLD_RANK' in os.environ, hvd.rank())\n  tf_train_flow(train_once_, \n                model_dir, \n                log_dir,\n                max_models_keep,\n                save_interval_seconds,\n                save_interval_steps,\n                num_epochs,\n                num_steps,\n                save_model=save_model,\n                save_interval_epochs=save_interval_epochs,\n                freeze_graph=freeze_graph,\n                num_steps_per_epoch=num_steps_per_epoch,\n                restore_from_latest=restore_from_latest,\n                metric_eval_fn=metric_eval_fn,\n                valid_interval_epochs=valid_interval_epochs,\n                inference_fn=inference_fn, \n                inference_interval_epochs=inference_interval_epochs,\n                init_fn=init_fn,\n                restore_fn=restore_fn,\n                restore_include=restore_include,\n                restore_exclude=restore_exclude,\n                save_all_scope=save_all_scope,\n                variables_to_restore=variables_to_restore,\n                variables_to_save=variables_to_save,\n                output_collection_names=output_collection_names,\n                output_node_names=output_node_names,\n                learning_rate=learning_rate,\n                learning_rate_patience=learning_rate_patience,\n                learning_rate_decay_factor=learning_rate_decay_factor,\n                write_during_train=write_during_train,\n                model=model,\n                sess=sess)\n"
  },
  {
    "path": "utils/melt/flow/train_once.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 12:59:29.331219\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\n@TODO better logging, using logging.info ?\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport six \nif six.PY2:\n  from io import BytesIO as IO\nelse:\n  from io import StringIO as IO \n\nimport sys, os, traceback\nimport inspect\n\nfrom melt.utils import logging\n#import logging\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom tensorflow.keras import backend as K\n\nimport gezi\nfrom gezi import Timer, AvgScore \nimport melt\n\n# try:\n#   import horovod.tensorflow as hvd\n# except Exception:\n#   pass\n\nprojector_config = tf.contrib.tensorboard.plugins.projector.ProjectorConfig()\n\ndef train_once(sess, \n               step, \n               ops, \n               names=None,\n               gen_feed_dict_fn=None, \n               deal_results_fn=None, \n               interval_steps=100,\n               eval_ops=None, \n               eval_names=None, \n               gen_eval_feed_dict_fn=None, \n               deal_eval_results_fn=melt.print_results, \n               valid_interval_steps=100, \n               print_time=True, \n               print_avg_loss=True, \n               model_dir=None, \n               log_dir=None, \n               is_start=False,\n               num_steps_per_epoch=None,\n               metric_eval_fn=None,\n               metric_eval_interval_steps=0,\n               summary_excls=None,\n               fixed_step=None,   # for epoch only, incase you change batch size\n               eval_loops=1,\n               learning_rate=None,\n               learning_rate_patience=None,\n               learning_rate_decay_factor=None,\n               num_epochs=None,\n               model_path=None,\n               use_horovod=False,\n               ):\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n  if use_horovod:\n    if FLAGS.torch:\n      import horovod.torch as hvd\n    else:\n      import horovod.tensorflow as hvd\n\n  #is_start = False # force not to evaluate at first step\n  #print('-----------------global_step', sess.run(tf.train.get_or_create_global_step()))\n  timer = gezi.Timer()\n  if print_time:\n    if not hasattr(train_once, 'timer'):\n      train_once.timer = Timer()\n      train_once.eval_timer = Timer()\n      train_once.metric_eval_timer = Timer()\n   \n  melt.set_global('step', step)\n  epoch = (fixed_step or step) / num_steps_per_epoch if num_steps_per_epoch else -1\n  if not num_epochs:\n    epoch_str = 'epoch:%.3f' % (epoch) if num_steps_per_epoch else ''\n  else:\n    epoch_str = 'epoch:%.3f/%d' % (epoch, num_epochs) if num_steps_per_epoch else ''\n  melt.set_global('epoch', '%.2f' % (epoch))\n  \n  info = IO()\n  stop = False\n    \n  if eval_names is None:\n    if names:\n      eval_names = ['eval/' + x for x in names]\n  \n  if names:\n    names = ['train/' + x for x in names]\n\n  if eval_names:\n    eval_names = ['eval/' + x for x in eval_names]\n\n  is_eval_step = is_start or valid_interval_steps and step % valid_interval_steps == 0\n  summary_str = []\n\n  eval_str = ''\n  if is_eval_step:\n    # deal with summary\n    if log_dir:\n      if not hasattr(train_once, 'summary_op'):\n        #melt.print_summary_ops()\n        if summary_excls is None:\n          train_once.summary_op = tf.summary.merge_all()\n        else:\n          summary_ops = []\n          for op in tf.get_collection(tf.GraphKeys.SUMMARIES):\n            for summary_excl in summary_excls:\n              if not summary_excl in op.name:\n                summary_ops.append(op)\n          print('filtered summary_ops:')\n          for op in summary_ops:\n            print(op)\n          train_once.summary_op = tf.summary.merge(summary_ops)\n        \n        #train_once.summary_train_op = tf.summary.merge_all(key=melt.MonitorKeys.TRAIN)\n        train_once.summary_writer = tf.summary.FileWriter(log_dir, sess.graph)\n\n        tf.contrib.tensorboard.plugins.projector.visualize_embeddings(train_once.summary_writer, projector_config)\n    \n    # if eval ops then should have bee rank 0\n    \n    if eval_ops:\n      #if deal_eval_results_fn is None and eval_names is not None:\n      #  deal_eval_results_fn = lambda x: melt.print_results(x, eval_names)\n      for i in range(eval_loops):\n        eval_feed_dict = {} if gen_eval_feed_dict_fn is None else gen_eval_feed_dict_fn()\n        #eval_feed_dict.update(feed_dict)\n        \n        # if use horovod let each rant use same sess.run!\n        if not log_dir or train_once.summary_op is None or gezi.env_has('EVAL_NO_SUMMARY') or use_horovod:\n        #if not log_dir or train_once.summary_op is None:\n          eval_results = sess.run(eval_ops, feed_dict=eval_feed_dict)\n        else:\n          eval_results = sess.run(eval_ops + [train_once.summary_op], feed_dict=eval_feed_dict)\n          summary_str = eval_results[-1]\n          eval_results = eval_results[:-1]\n        eval_loss = gezi.get_singles(eval_results)\n        #timer_.print()\n        eval_stop = False\n        if use_horovod:\n          sess.run(hvd.allreduce(tf.constant(0)))\n\n        #if not use_horovod or  hvd.local_rank() == 0:\n        # @TODO user print should also use logging as a must ?\n        #print(gezi.now_time(), epoch_str, 'eval_step: %d'%step, 'eval_metrics:', end='')  \n        eval_names_ = melt.adjust_names(eval_loss, eval_names)\n        #if not use_horovod or hvd.rank() == 0:\n        #  logging.info2('{} eval_step:{} eval_metrics:{}'.format(epoch_str, step, melt.parse_results(eval_loss, eval_names_)))\n        eval_str = 'valid:{}'.format(melt.parse_results(eval_loss, eval_names_))\n        \n        # if deal_eval_results_fn is not None:\n        #   eval_stop = deal_eval_results_fn(eval_results)\n\n        assert len(eval_loss) > 0\n        if eval_stop is True:\n          stop = True\n        eval_names_ = melt.adjust_names(eval_loss, eval_names)\n        if not use_horovod or hvd.rank() == 0:\n          melt.set_global('eval_loss', melt.parse_results(eval_loss, eval_names_))\n\n    elif interval_steps != valid_interval_steps:\n      #print()\n      pass\n\n\n  metric_evaluate = False\n\n  # if metric_eval_fn is not None \\\n  #   and (is_start \\\n  #     or (num_steps_per_epoch and step % num_steps_per_epoch == 0) \\\n  #          or (metric_eval_interval_steps \\\n  #              and step % metric_eval_interval_steps == 0)):\n  #  metric_evaluate = True\n\n  if metric_eval_fn is not None \\\n    and ((is_start or metric_eval_interval_steps \\\n         and step % metric_eval_interval_steps == 0) or model_path):\n   metric_evaluate = True\n\n  if 'EVFIRST' in os.environ:\n    if os.environ['EVFIRST'] == '0':\n        if is_start:\n          metric_evaluate = False\n    else:\n      if is_start:\n        metric_evaluate = True\n\n  if step == 0 or 'QUICK' in os.environ:\n    metric_evaluate = False\n\n  #print('------------1step', step, 'pre metric_evaluate', metric_evaluate, hvd.rank())\n  if metric_evaluate:\n    # if use_horovod:\n    #   print('------------metric evaluate step', step, model_path, hvd.rank())\n    if not model_path or 'model_path' not in inspect.getargspec(metric_eval_fn).args:\n      metric_eval_fn_ = metric_eval_fn\n    else:\n      metric_eval_fn_ = lambda: metric_eval_fn(model_path=model_path)\n    \n    try:\n      l = metric_eval_fn_()\n      if isinstance(l, tuple):\n        num_returns = len(l)    \n        if num_returns == 2:\n          evaluate_results, evaluate_names = l\n          evaluate_summaries = None\n        else:\n          assert num_returns == 3, 'retrun 1,2,3 ok 4.. not ok'\n          evaluate_results, evaluate_names, evaluate_summaries = l\n      else: #return dict\n        evaluate_results, evaluate_names = tuple(zip(*dict.items()))\n        evaluate_summaries = None\n    except Exception:\n      logging.info('Do nothing for metric eval fn with exception:\\n', traceback.format_exc())\n    \n    if not use_horovod or hvd.rank() == 0:\n      #logging.info2('{} valid_step:{} {}:{}'.format(epoch_str, step, 'valid_metrics' if model_path is None else 'epoch_valid_metrics', melt.parse_results(evaluate_results, evaluate_names)))\n      logging.info2('{} valid_step:{} {}:{}'.format(epoch_str, step, 'valid_metrics', melt.parse_results(evaluate_results, evaluate_names)))\n \n    if learning_rate is not None and (learning_rate_patience and learning_rate_patience > 0):\n      assert learning_rate_decay_factor > 0 and learning_rate_decay_factor < 1\n      valid_loss = evaluate_results[0]\n      if not hasattr(train_once, 'min_valid_loss'):\n        train_once.min_valid_loss = valid_loss\n        train_once.deacy_steps = []\n        train_once.patience = 0\n      else:\n        if valid_loss < train_once.min_valid_loss:\n          train_once.min_valid_loss = valid_loss\n          train_once.patience = 0\n        else:\n          train_once.patience += 1\n          logging.info2('{} valid_step:{} patience:{}'.format(epoch_str, step, train_once.patience))\n      \n      if learning_rate_patience and train_once.patience >= learning_rate_patience:\n        lr_op = ops[1]\n        lr = sess.run(lr_op) * learning_rate_decay_factor\n        train_once.deacy_steps.append(step)\n        logging.info2('{} valid_step:{} learning_rate_decay by *{}, learning_rate_decay_steps={}'.format(epoch_str, step, learning_rate_decay_factor, ','.join(map(str, train_once.deacy_steps))))\n        sess.run(tf.assign(lr_op, tf.constant(lr, dtype=tf.float32)))\n        train_once.patience = 0\n        train_once.min_valid_loss = valid_loss\n\n  if ops is not None:\n    #if deal_results_fn is None and names is not None:\n    #  deal_results_fn = lambda x: melt.print_results(x, names)\n    \n    feed_dict = {} if gen_feed_dict_fn is None else gen_feed_dict_fn()\n    # NOTICE ops[2] should be scalar otherwise wrong!! loss should be scalar\n    #print('---------------ops', ops) \n    if eval_ops is not None or not log_dir or not hasattr(train_once, 'summary_op') or train_once.summary_op is None or use_horovod:\n      feed_dict[K.learning_phase()] = 1\n      results = sess.run(ops, feed_dict=feed_dict) \n    else:\n      ## TODO why below ?\n      #try:\n      feed_dict[K.learning_phase()] = 1\n      results = sess.run(ops + [train_once.summary_op], feed_dict=feed_dict)\n      summary_str = results[-1]\n      results = results[:-1]\n      # except Exception:\n      #   logging.info('sess.run(ops + [train_once.summary_op], feed_dict=feed_dict) fail')\n      #   results = sess.run(ops, feed_dict=feed_dict) \n\n    #print('------------results', results)\n    # #--------trace debug\n    # if step == 210:\n    #   run_metadata = tf.RunMetadata()\n    #   results = sess.run(\n    #         ops,\n    #         feed_dict=feed_dict,\n    #         options=tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE),\n    #         run_metadata=run_metadata)\n    #   from tensorflow.python.client import timeline\n    #   trace = timeline.Timeline(step_stats=run_metadata.step_stats)\n\n    #   trace_file = open('timeline.ctf.json', 'w')\n    #   trace_file.write(trace.generate_chrome_trace_format())\n    \n    #reults[0] assume to be train_op, results[1] to be learning_rate\n    learning_rate = results[1]\n    results = results[2:]\n\n    #@TODO should support aver loss and other avg evaluations like test..\n    if print_avg_loss:\n      if not hasattr(train_once, 'avg_loss'):\n        train_once.avg_loss = AvgScore()\n      #assume results[0] as train_op return, results[1] as loss\n      loss = gezi.get_singles(results)\n      train_once.avg_loss.add(loss)\n\n    steps_per_second = None\n    instances_per_second = None \n    hours_per_epoch = None\n    #step += 1\n    #if is_start or interval_steps and step % interval_steps == 0:\n    interval_ok = not use_horovod or hvd.local_rank() == 0\n    if interval_steps and step % interval_steps == 0 and interval_ok:\n      train_average_loss = train_once.avg_loss.avg_score()\n      if print_time:\n        duration = timer.elapsed()\n        duration_str = 'duration:{:.2f} '.format(duration)\n        melt.set_global('duration', '%.2f' % duration)\n        #info.write(duration_str)\n        elapsed = train_once.timer.elapsed()\n        steps_per_second = interval_steps / elapsed\n        batch_size = melt.batch_size()\n        num_gpus = melt.num_gpus()\n        instances_per_second = interval_steps * batch_size / elapsed\n        gpu_info = '' if num_gpus <= 1 else ' gpus:[{}]'.format(num_gpus)\n        if num_steps_per_epoch is None:\n          epoch_time_info = ''\n        else:\n          hours_per_epoch = num_steps_per_epoch / interval_steps * elapsed / 3600\n          epoch_time_info = '1epoch:[{:.2f}h]'.format(hours_per_epoch)\n        # info.write('elapsed:[{:.2f}] batch_size:[{}]{} batches/s:[{:.2f}] insts/s:[{:.2f}] {} lr:[{:.6f}]'.format(\n        #               elapsed, batch_size, gpu_info, steps_per_second, instances_per_second, epoch_time_info, learning_rate))\n          info.write('elap:[{:.2f}] batch:[{}] {} lr:[{:.6f}]'.format(\n                elapsed, batch_size, epoch_time_info, learning_rate))\n\n      if print_avg_loss:\n        #info.write('train_avg_metrics:{} '.format(melt.value_name_list_str(train_average_loss, names)))\n        names_ = melt.adjust_names(train_average_loss, names)\n        #info.write('train_avg_metric:{} '.format(melt.parse_results(train_average_loss, names_)))\n        info.write(' train:{} '.format(melt.parse_results(train_average_loss, names_)))\n        #info.write('train_avg_loss: {} '.format(train_average_loss))\n      info.write(eval_str)\n      #print(gezi.now_time(), epoch_str, 'train_step:%d'%step, info.getvalue(), end=' ') \n      logging.info2('{} {} {}'.format(epoch_str, 'step:%d'%step, info.getvalue()))\n      \n      if deal_results_fn is not None:\n        stop = deal_results_fn(results)\n\n  summary_strs = gezi.to_list(summary_str)  \n  if metric_evaluate:\n    if evaluate_summaries is not None:\n      summary_strs += evaluate_summaries \n\n  if step > 1:\n    if is_eval_step:\n      # deal with summary\n      if log_dir:\n        summary = tf.Summary()\n        if eval_ops is None:\n          if train_once.summary_op is not None:\n            for summary_str in summary_strs:\n              train_once.summary_writer.add_summary(summary_str, step)\n        else:\n          for summary_str in summary_strs:\n            train_once.summary_writer.add_summary(summary_str, step)\n          suffix = 'valid' if not eval_names else ''\n          # loss/valid\n          melt.add_summarys(summary, eval_results, eval_names_, suffix=suffix)\n\n        if ops is not None:\n          try:\n            # loss/train_avg\n            melt.add_summarys(summary, train_average_loss, names_, suffix='train_avg') \n          except Exception:\n            pass\n          ##optimizer has done this also\n          melt.add_summary(summary, learning_rate, 'learning_rate')\n          melt.add_summary(summary, melt.batch_size(), 'batch_size', prefix='other')\n          melt.add_summary(summary, melt.epoch(), 'epoch', prefix='other')\n          if steps_per_second:\n            melt.add_summary(summary, steps_per_second, 'steps_per_second', prefix='perf')\n          if instances_per_second:\n            melt.add_summary(summary, instances_per_second, 'instances_per_second', prefix='perf') \n          if hours_per_epoch:\n            melt.add_summary(summary, hours_per_epoch, 'hours_per_epoch', prefix='perf')\n\n        if metric_evaluate:\n          #melt.add_summarys(summary, evaluate_results, evaluate_names, prefix='eval')\n          prefix = 'step_eval'\n          if model_path:\n            prefix = 'eval'\n            valid_interval_epochs = 1. \n            try:\n              valid_interval_epochs = FLAGS.valid_interval_epochs \n            except Exception:\n              pass\n            if not hasattr(train_once, 'epoch_step'):\n              train_once.epoch_step = 1 if melt.epoch() <= 1 else int(int(melt.epoch() * 10) / int(valid_interval_epochs * 10))\n            else:\n              train_once.epoch_step += 1\n            step = train_once.epoch_step\n          # eval/loss eval/auc ..\n          melt.add_summarys(summary, evaluate_results, evaluate_names, prefix=prefix)\n        \n        train_once.summary_writer.add_summary(summary, step)\n        train_once.summary_writer.flush()\n      return stop\n    elif metric_evaluate and log_dir:\n      summary = tf.Summary()\n      for summary_str in summary_strs:\n        train_once.summary_writer.add_summary(summary_str, step)\n      #summary.ParseFromString(evaluate_summaries)\n      summary_writer = train_once.summary_writer\n      prefix = 'step_eval'\n      if model_path:\n        prefix = 'eval'\n        if not hasattr(train_once, 'epoch_step'):\n          ## TODO.. restart will get 1 again..\n          #epoch_step = tf.Variable(0, trainable=False, name='epoch_step')\n          #epoch_step += 1\n          #train_once.epoch_step = sess.run(epoch_step) \n          valid_interval_epochs = 1. \n          try:\n            valid_interval_epochs = FLAGS.valid_interval_epochs \n          except Exception:\n            pass\n          train_once.epoch_step = 1 if melt.epoch() <= 1 else int(int(melt.epoch() * 10) / int(valid_interval_epochs * 10))\n          logging.info('train_once epoch start step is', train_once.epoch_step)\n        else:\n          #epoch_step += 1\n          train_once.epoch_step += 1\n        step = train_once.epoch_step\n      #melt.add_summarys(summary, evaluate_results, evaluate_names, prefix='eval')\n      melt.add_summarys(summary, evaluate_results, evaluate_names, prefix=prefix)\n      summary_writer.add_summary(summary, step)\n      summary_writer.flush()\n"
  },
  {
    "path": "utils/melt/image/__init__.py",
    "content": "from melt.image.image_decoder import *\nimport melt.image.image_processing\nfrom melt.image.image_processing import decode_image, read_image, create_image_model_init_fn\nfrom melt.image.image_processing import get_features_name, get_num_features, get_feature_dim, get_imagenet_from_checkpoint\nfrom melt.image.image_embedding import *\nfrom melt.image.image_model import *\n"
  },
  {
    "path": "utils/melt/image/image_decoder.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   image_decoder.py\n#        \\author   chenghuige  \n#          \\date   2017-03-31 12:08:54.242407\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n  \nclass ImageDecoder(object):\n  \"\"\"Helper class for decoding images in TensorFlow.\"\"\"\n\n  def __init__(self):\n    # Create a single TensorFlow Session for all image decoding calls.\n    self._sess = tf.Session()\n\n    # TensorFlow ops for JPEG decoding.\n    self._encoded = tf.placeholder(dtype=tf.string)\n    self._decode_jpeg = tf.image.decode_jpeg(self._encoded, channels=3)\n\n    try:\n      self._decode_bmp = tf.image.decode_bmp(self._encoded, channels=3)\n      self._decode = tf.image.decode_image(self._encoded, channels=3) \n    except Exception:\n      pass\n\n    self.num_imgs = 0\n    self.num_bad_imgs = 0\n\n  def decode_jpeg(self, encoded_jpeg):\n    try:\n      image = self._sess.run(self._decode_jpeg,\n                             feed_dict={self._encoded: encoded_jpeg})\n    except Exception:\n      image = None\n    return image\n\n  def decode(self, encoded, image_format='jpeg'):\n    if image_format == 'jpeg':\n      decode_op = self._decode_jpeg\n    elif image_format == 'bmp':\n      decode_op = self._decode_bmp\n    else:\n      decode_op = self._decode\n    self.num_imgs += 1\n    try:\n      image = self._sess.run(decode_op,\n                             feed_dict={self._encoded: encoded})\n    except Exception:\n      image = None\n      self.num_bad_imgs += 1\n    return image"
  },
  {
    "path": "utils/melt/image/image_embedding.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Image embedding ops.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\nimport tensorflow as tf\n\nfrom tensorflow.contrib.slim.python.slim.nets.inception_v3 import inception_v3_base\n\n\n#TODO check vgg to support other models maybe like cifar 10 inference example not build graph just load from pbgraph \n#and fetch op name to run (by that way will trainable or not ?)\ndef inception_v3(images,\n                 trainable=True,\n                 is_training=True,\n                 weight_decay=0.00004,\n                 stddev=0.1,\n                 dropout_keep_prob=0.8,\n                 use_batch_norm=True,\n                 batch_norm_params=None,\n                 add_summaries=True,\n                 reuse=None,\n                 scope=None):\n  \"\"\"Builds an Inception V3 subgraph for image embeddings.\n\n  Args:\n    images: A float32 Tensor of shape [batch, height, width, channels].\n    trainable: Whether the inception submodel should be trainable or not.\n    is_training: Boolean indicating training mode or not.\n    weight_decay: Coefficient for weight regularization.\n    stddev: The standard deviation of the trunctated normal weight initializer.\n    dropout_keep_prob: Dropout keep probability.\n    use_batch_norm: Whether to use batch normalization.\n    batch_norm_params: Parameters for batch normalization. See\n      tf.contrib.layers.batch_norm for details.\n    add_summaries: Whether to add activation summaries.\n    scope: Optional Variable scope.\n\n  Returns:\n    end_points: A dictionary of activations from inception_v3 layers.\n  \"\"\"\n  slim = tf.contrib.slim\n  \n  # Only consider the inception model to be in training mode if it's trainable.\n  is_inception_model_training = trainable and is_training\n\n  if use_batch_norm:\n    # Default parameters for batch normalization.\n    if not batch_norm_params:\n      batch_norm_params = {\n          \"is_training\": is_inception_model_training,\n          \"trainable\": trainable,\n          # Decay for the moving averages.\n          \"decay\": 0.9997,\n          # Epsilon to prevent 0s in variance.\n          \"epsilon\": 0.001,\n          # Collection containing the moving mean and moving variance.\n          \"variables_collections\": {\n              \"beta\": None,\n              \"gamma\": None,\n              \"moving_mean\": [\"moving_vars\"],\n              \"moving_variance\": [\"moving_vars\"],\n          }\n      }\n  else:\n    batch_norm_params = None\n\n  if trainable:\n    weights_regularizer = tf.contrib.layers.l2_regularizer(weight_decay)\n  else:\n    weights_regularizer = None\n\n  with tf.variable_scope(scope, \"InceptionV3\", [images], reuse=reuse) as scope:\n    with slim.arg_scope(\n        [slim.conv2d, slim.fully_connected],\n        weights_regularizer=weights_regularizer,\n        trainable=trainable):\n      with slim.arg_scope(\n          [slim.conv2d],\n          weights_initializer=tf.truncated_normal_initializer(stddev=stddev),\n          activation_fn=tf.nn.relu,\n          normalizer_fn=slim.batch_norm,\n          normalizer_params=batch_norm_params):\n        net, end_points = inception_v3_base(images, scope=scope)\n        with tf.variable_scope(\"logits\"):\n          shape = net.get_shape()\n          net = slim.avg_pool2d(net, shape[1:3], padding=\"VALID\", scope=\"pool\")\n          net = slim.dropout(\n              net,\n              keep_prob=dropout_keep_prob,\n              is_training=is_inception_model_training,\n              scope=\"dropout\")\n          net = slim.flatten(net, scope=\"flatten\")\n\n    #--TODO why not in effect?\n    #scope.reuse_variables()\n  # Add summaries.\n  if add_summaries:\n    for v in end_points.values():\n      tf.contrib.layers.summaries.summarize_activation(v)\n\n  return net\n"
  },
  {
    "path": "utils/melt/image/image_model.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   image_model.py\n#        \\author   chenghuige  \n#          \\date   2017-04-10 19:58:46.031602\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n#import os\nimport sys\n#import math\n\nimport tensorflow as tf\n\nimport numpy as np\n  \nimport melt\nimport gezi\n\ntry:\n  from nets import nets_factory\nexcept Exception:\n  pass\n\nslim = tf.contrib.slim\n\nclass ImageModel(object):\n  def __init__(self, \n               image_checkpoint_file=None,\n               model_name=None, \n               height=None, \n               width=None,\n               feature_name=None,\n               image_format='jpeg',\n               moving_average_decay=None,\n               num_classes=None,\n               top_k=None,\n               sess=None,\n               graph=None):\n    assert image_checkpoint_file or model_name, 'need model_name if train from scratch otherwise need image_checkpoint_file'\n    self.graph = tf.Graph() if graph is None else graph\n    self.sess = melt.gen_session(graph=self.graph) if sess is None else sess\n    self.feature_name = feature_name\n\n    if image_checkpoint_file:\n      net = melt.image.get_imagenet_from_checkpoint(image_checkpoint_file)\n      assert net is not None, image_checkpoint_file\n      model_name = model_name or net.name\n      height = height or net.default_image_size\n      width = width or net.default_image_size\n    else:\n      assert model_name is not None\n      gnu_name = gezi.to_gnu_name(model_name)\n      net = nets_factory.networks_map[gnu_name]\n      height = height or net.default_image_size\n      width = width or net.default_image_size\n\n    print('checkpoint', image_checkpoint_file, 'model_name', model_name, \n          'height', height, 'width', width, file=sys.stderr)\n\n    self.num_classes = num_classes\n    self.model_name = model_name\n    with self.sess.graph.as_default():\n      self.images_feed = tf.placeholder(tf.string, [None, ], name='images')\n      if not self.num_classes:\n        print('build graph for final one feature', file=sys.stderr)\n        self.feature = self._build_graph(model_name, height, width, image_format=image_format)\n        print('build graph for attention features', file=sys.stderr)\n        self.features = self._build_graph2(model_name, height, width, image_format=image_format)\n      else:\n        assert self.num_classes > 1\n        if feature_name != 'Logits':\n          prelogits_feature = self._build_graph(model_name, height, width, image_format=image_format)\n          #with tf.variable_scope('ImageModelLogits'):\n          self.logits = slim.fully_connected(prelogits_feature, num_classes, activation_fn=None,\n                                      scope='Logits')\n        else:\n          # directly use slim model\n          self.logits = self._build_graph(model_name, height, width, num_classes=num_classes, image_format=image_format)\n        if top_k:\n          with tf.variable_scope('ImageModelTopN'):\n            self.top_logits, self.top_indices = tf.nn.top_k(self.logits, top_k, name='TopK')\n        self.predictions = tf.nn.softmax(self.logits, name='Predictions')\n        # https://storage.googleapis.com/openimages/2017_07/oidv2-resnet_v1_101.readme.txt\n        self.multi_predictions = tf.nn.sigmoid(self.logits, name='multi_predictions')\n\n      init_op = tf.group(tf.global_variables_initializer(),\n                         tf.local_variables_initializer())\n      self.sess.run(init_op)\n      if image_checkpoint_file:\n        #---load inception model check point file\n        init_fn = melt.image.image_processing.create_image_model_init_fn(model_name, \n                                                                         image_checkpoint_file,\n                                                                         moving_average_decay=moving_average_decay)\n        init_fn(self.sess)\n\n  def _build_graph(self, model_name, height, width, num_classes=None, image_format=None):\n    melt.apps.image_processing.init(model_name, self.feature_name)\n    return melt.apps.image_processing.image_processing_fn(self.images_feed,  \n                                                          height=height, \n                                                          width=width,\n                                                          image_format=image_format,\n                                                          feature_name=self.feature_name,\n                                                          num_classes=num_classes)\n\n  def _build_graph2(self, model_name, height, width, image_format=None):\n    features_name = melt.get_features_name(self.model_name)\n    melt.apps.image_processing.init(model_name, features_name)\n    return melt.apps.image_processing.image_processing_fn(self.images_feed,  \n                                                          height=height, \n                                                          width=width,\n                                                          image_format=image_format,\n                                                          feature_name=features_name)\n\n  def process(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run(self.feature, feed_dict={self.images_feed: images})\n\n  def process2(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run(self.features, feed_dict={self.images_feed: images})\n\n  def gen_logits(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run(self.logits, feed_dict={self.images_feed: images})\n\n  def classify(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run(self.predictions, feed_dict={self.images_feed: images})\n\n  def multi_classify(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run(self.multi_predictions, feed_dict={self.images_feed: images})\n\n  def logits(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run(self.logits, feed_dict={self.images_feed: images})\n\n  def top_k(self, images):\n    if not isinstance(images, (list, tuple, np.ndarray)):\n      images = [images]\n\n    if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n      images = [melt.image.read_image(image) for image in images]\n\n    return self.sess.run([self.top_logits, self.top_indices], feed_dict={self.images_feed: images})     \n\n  def gen_feature(self, images):\n    return self.process(images)\n\n  def gen_features(self, images):\n    return self.process2(images)\n"
  },
  {
    "path": "utils/melt/image/image_processing.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"\nCopy from google im2txt\nHelper functions for image preprocessing.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tensorflow.python.framework import constant_op\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.framework import tensor_util\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import check_ops\nfrom tensorflow.python.ops import clip_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import gen_image_ops\nfrom tensorflow.python.ops import gen_nn_ops\nfrom tensorflow.python.ops import string_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import random_ops\n#from tensorflow.python.ops import variable\n\nimport tensorflow as tf\n\nimport tensorflow.contrib.slim as slim\n#TODO must set PYTHON_PATH for models/slim\ntry:\n  from preprocessing import preprocessing_factory\n  from nets import nets_factory\nexcept Exception:\n  pass\n#from melt.slim import base_nets_factory \nimport gezi\nimport melt\nfrom melt import logging\n\nimport sys\nimport os\n  \ndef read_image(image_path):\n  #with tf.device('/cpu:0'):\n  # https://blog.csdn.net/u013555719/article/details/77991010 change to use rb for python3\n  with tf.gfile.FastGFile(image_path, \"rb\") as f:\n    encoded_image = f.read()\n  return encoded_image\n\ndef get_imagenet_from_checkpoint(checkpoint_path):\n  \"\"\"\n  net = get_net_from_checkpoint(checkpoint)\n  net.func_name  # like inception_v4\n  net.default_image_size # like 299\n  \"\"\"\n  checkpoint = melt.get_model_path(checkpoint_path)\n  if not checkpoint or \\\n   (not os.path.exists(checkpoint) \\\n      and not os.path.exists(checkpoint + '.index')):\n    return None \n    \n  from tensorflow.python import pywrap_tensorflow \n  reader = pywrap_tensorflow.NewCheckpointReader(checkpoint)\n  var_to_shape_map = reader.get_variable_to_shape_map()\n  name = None\n  for key in var_to_shape_map.keys():\n    name = key.split('/')[0]\n    gnu_name = gezi.to_gnu_name(name)\n    if gnu_name in nets_factory.networks_map:\n      break\n  if name is None:\n    return None \n  else:\n    nets_factory.networks_map[gnu_name].name = name\n    return nets_factory.networks_map[gnu_name]\n\ndef get_net_from_checkpoint(checkpoint):\n  \"\"\"\n  net = get_net_from_checkpoint(checkpoint)\n  net.func_name  # like inception_v4\n  net.default_image_size # like 299\n  \"\"\"\n  from tensorflow.python import pywrap_tensorflow \n  reader = pywrap_tensorflow.NewCheckpointReader(checkpoint)\n  var_to_shape_map = reader.get_variable_to_shape_map()\n  name = None\n  for key in var_to_shape_map.keys():\n    name = key.split('/')[0]\n    gnu_name = gezi.to_gnu_name(name)\n    if gnu_name in nets_factory.networks_map:\n      break\n  if name is None:\n    return None \n  else:\n    return nets_factory.networks_map[name], name\n\ndef create_image_model_init_fn(image_model_name, image_checkpoint_file, \n                               moving_average_decay=None):\n  \"\"\"\n  NOTICE whey moving_average_decay is not None will add variables\n  so for finetune image model you may need to escape scope! \n  see train.py of image_caption\n  \"\"\"\n  # print(tf.all_variables())\n  # print(tf.get_default_graph().get_all_collection_keys())\n  # refer to slim eval_image_classifer.py\n  \n  # HACK for nasnet, also for nasnet you need to use \n  # rename-varaibles.py --checkpoint_dir=... --add_prefix=nasnet_large to add global scope \n  # and use the converted model \n  variables_to_restore = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope=image_model_name)\n\n  assert variables_to_restore, tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)\n\n  if image_model_name.startswith('nasnet') and not moving_average_decay:\n      moving_average_decay = 0.9999\n\n  print('in create_image_model_init_fn image_model_name', image_model_name, 'moving_average_decay', moving_average_decay, file=sys.stderr)\n\n  # TODO understand moving average decay and it's effect on graph...\n  if moving_average_decay:   \n    with tf.variable_scope(image_model_name):\n      tf_global_step = tf.train.get_or_create_global_step()\n    variable_averages = tf.train.ExponentialMovingAverage(moving_average_decay, tf_global_step)\n    #variables_to_restore = variable_averages.variables_to_restore(slim.get_model_variables())\n    variables_to_restore = variable_averages.variables_to_restore(variables_to_restore)\n    # well still has nont image_model_name start vars ... TODO\n    # TODO for finetune final pre_logits feature or classification need to exclude global_step other wise not found global step realated moving.. vars ..\n    # TODO need to check ignore global step will not affect caption model using nasnet\n    variables_to_restore = dict([(key, val) for key, val in variables_to_restore.items() if key.startswith(image_model_name) and not 'global_step' in key])\n    #variables_to_restore = dict([(key, val) for key, val in variables_to_restore.items() if key.startswith(image_model_name)])\n\n    # # #TODO just hack right now, we must use another like InceptionV3 to construct InceptionV3/InceptionV3\n    # #not for escaple scope, can just with scope('') but for reuse.. when predict TODO..\n    # def name_in_checkpoint(var):\n    #   return var.op.name.replace('/' + image_model_name, '')\n    # variables_to_restore = {name_in_checkpoint(var):var for var in variables_to_restore}\n\n  saver = tf.train.Saver(variables_to_restore)\n\n  def restore_fn(sess):\n    timer = gezi.Timer('restore image var from %s %s' % (image_model_name, image_checkpoint_file))\n    logging.info(\"Restoring image variables from checkpoint file %s\" % image_checkpoint_file)\n    saver.restore(sess, image_checkpoint_file)\n    timer.print()\n\n  return restore_fn\n\ndef distort_image(image, distort_color=True):\n  \"\"\"Perform random distortions on an image.\n\n  Args:\n    image: A float32 Tensor of shape [height, width, 3] with values in [0, 1).\n\n  Returns:\n    distorted_image: A float32 Tensor of shape [height, width, 3] with values in\n      [0, 1].\n  \"\"\"\n  # Randomly flip horizontally.\n  with tf.name_scope(\"flip_horizontal\", values=[image]):\n    image = tf.image.random_flip_left_right(image)\n\n  if distort_color:\n    # Randomly distort the colors based on thread id.\n    with tf.name_scope(\"distort_color\", values=[image]):\n      def _distort_image_fn1(image):\n        image = tf.image.random_brightness(image, max_delta=32. / 255.)\n        image = tf.image.random_saturation(image, lower=0.5, upper=1.5)\n        image = tf.image.random_hue(image, max_delta=0.032)\n        image = tf.image.random_contrast(image, lower=0.5, upper=1.5)\n        return image \n\n      def _distort_image_fn2(image):\n        image = tf.image.random_brightness(image, max_delta=32. / 255.)\n        image = tf.image.random_contrast(image, lower=0.5, upper=1.5)\n        image = tf.image.random_saturation(image, lower=0.5, upper=1.5)\n        image = tf.image.random_hue(image, max_delta=0.032)\n        return image \n\n      p_order = tf.random_uniform(shape=[], minval=0., maxval=1., dtype=tf.float32)\n      pred = tf.less(p_order, 0.5)\n      image = tf.cond(pred, lambda: _distort_image_fn1(image), lambda: _distort_image_fn2(image))\n\n      # The random_* ops do not necessarily clamp.\n      image = tf.clip_by_value(image, 0.0, 1.0)\n\n  return image\n\n# #--depreciated just use tf ones\n# def decode_image(contents, channels=None, name=None):\n#   \"\"\"Convenience function for `decode_gif`, `decode_jpeg`, and `decode_png`.\n#   Detects whether an image is a GIF, JPEG, or PNG, and performs the appropriate \n#   operation to convert the input bytes `string` into a `Tensor` of type `uint8`.\n\n#   Note: `decode_gif` returns a 4-D array `[num_frames, height, width, 3]`, as \n#   opposed to `decode_jpeg` and `decode_png`, which return 3-D arrays \n#   `[height, width, num_channels]`. Make sure to take this into account when \n#   constructing your graph if you are intermixing GIF files with JPEG and/or PNG \n#   files.\n\n#   Args:\n#     contents: 0-D `string`. The encoded image bytes.\n#     channels: An optional `int`. Defaults to `0`. Number of color channels for \n#       the decoded image.\n#     name: A name for the operation (optional)\n    \n#   Returns:\n#     `Tensor` with type `uint8` with shape `[height, width, num_channels]` for \n#       JPEG and PNG images and shape `[num_frames, height, width, 3]` for GIF \n#       images.\n#   \"\"\"\n#   with ops.name_scope(name, 'decode_image') as scope: \n#     #return gen_image_ops.decode_jpeg(contents, channels)\n#     if channels not in (None, 0, 1, 3):\n#       raise ValueError('channels must be in (None, 0, 1, 3)')\n#     #substr = string_ops.substr(contents, 0, 4)\n#     substr = string_ops.substr(contents, 0, 1)\n\n#     def _gif():\n#       raise ValueError('not jpeg or png')\n#       # Create assert op to check that bytes are GIF decodable\n#       #is_gif = math_ops.equal(substr, b'\\x47\\x49\\x46\\x38', name='is_gif')\n#       is_gif = math_ops.equal(substr, b'\\x47', name='is_gif')\n\n#       decode_msg = 'Unable to decode bytes as JPEG, PNG, or GIF'\n#       assert_decode = control_flow_ops.Assert(is_gif, [decode_msg])\n#       # Create assert to make sure that channels is not set to 1\n#       # Already checked above that channels is in (None, 0, 1, 3)\n#       gif_channels = 0 if channels is None else channels\n#       good_channels = math_ops.not_equal(gif_channels, 1, name='check_channels')\n#       channels_msg = 'Channels must be in (None, 0, 3) when decoding GIF images'\n#       assert_channels = control_flow_ops.Assert(good_channels, [channels_msg])\n#       with ops.control_dependencies([assert_decode, assert_channels]):\n#         return gen_image_ops.decode_gif(contents)\n    \n#     def _png():\n#       return gen_image_ops.decode_png(contents, channels)\n    \n#     def check_png():\n#       #is_png = math_ops.equal(substr, b'\\211PNG', name='is_png')\n#       is_png = math_ops.equal(substr, b'\\x89', name='is_png')\n#       return control_flow_ops.cond(is_png, _png, _gif, name='cond_png')\n    \n#     def _jpeg():\n#       return gen_image_ops.decode_jpeg(contents, channels)\n\n#     #is_jpeg = math_ops.equal(substr, b'\\xff\\xd8\\xff\\xe0', name='is_jpeg')\n#     is_jpeg = math_ops.equal(substr, b'\\xff', name='is_jpeg')\n#     try:\n#       return control_flow_ops.cond(is_jpeg, _jpeg, check_png, name='cond_jpeg')\n#     except Exception:\n#       #this is unsafe, since might not be jpeg format will raise error in c++ code, unable to catch\n#       return gen_image_ops.decode_jpeg(contents, channels, try_recover_truncated=True, acceptable_fraction=10)\n\ndef decode_image(contents, channels=3, image_format='jpeg', dtype=None):\n  with tf.name_scope(\"decode\", values=[contents]):\n    if image_format == \"jpeg\":\n      #---TODO this will cause hang.... try_recover_truncated=True, acceptable_fraction=10 will hang...\n      #image = tf.image.decode_jpeg(contents, channels=3, try_recover_truncated=True, acceptable_fraction=10)\n      image = tf.image.decode_jpeg(contents, channels=channels)\n    elif image_format == \"png\":\n      image = tf.image.decode_png(contents, channels=channels)\n    else:\n      #--why here will casue no size.. might for gif..., for safe just use image_format jpeg? TODO FIXME\n      image = tf.image.decode_image(contents, channels=3)\n    if dtype:\n      image = tf.image.convert_image_dtype(image, dtype=dtype)\n    return image\n\ndef process_image(encoded_image,\n                  is_training,\n                  height,\n                  width,\n                  resize_height=346,\n                  resize_width=346,\n                  random_crop=True,\n                  distort=True,\n                  distort_color=True,\n                  image_format=None):\n  \"\"\"Decode an image, resize and apply random distortions.\n\n  In training, images are distorted slightly differently depending on thread_id.\n\n  Args:\n    encoded_image: String Tensor containing the image.\n    is_training: Boolean; whether preprocessing for training or eval.\n    height: Height of the output image.\n    width: Width of the output image.\n    resize_height: If > 0, resize height before crop to final dimensions.\n    resize_width: If > 0, resize width before crop to final dimensions.\n    thread_id: Preprocessing thread id used to select the ordering of color\n      distortions. There should be a multiple of 2 preprocessing threads.\n    image_format: \"jpeg\" or \"png\".\n\n  Returns:\n    A float32 Tensor of shape [height, width, 3] with values in [-1, 1].\n\n  Raises:\n    ValueError: If image_format is invalid.\n  \"\"\"\n  # Helper function to log an image summary to the visualizer. Summaries are\n  # only logged in thread 0.  TODO summary\n  def image_summary(name, image):\n    tf.summary.image(name, tf.expand_dims(image, 0))\n\n  # Decode image into a float32 Tensor of shape [?, ?, 3] with values in [0, 1).\n  image = decode_image(encoded_image, channels=3, image_format=image_format, dtype=tf.float32)\n\n  #TODO summary\n  #image_summary(\"original_image\", image)\n\n  # Resize image.\n  assert (resize_height > 0) == (resize_width > 0)\n  if resize_height:\n    image = tf.image.resize_images(image,\n                                   size=[resize_height, resize_width],\n                                   method=tf.image.ResizeMethod.BILINEAR)\n\n  # Crop to final dimensions.\n  if is_training and random_crop:\n    image = tf.random_crop(image, [height, width, 3])\n  else:\n    # Central crop, assuming resize_height > height, resize_width > width.\n    image = tf.image.resize_image_with_crop_or_pad(image, height, width)\n  \n  #image_summary(\"resized_image\", image)\n\n  # Randomly distort the image.\n  if is_training and distort:\n    image = distort_image(image, distort_color)\n  \n  #image_summary(\"final_image\", image)\n\n  # Rescale to [-1,1] instead of [0, 1]\n  image = tf.subtract(image, 0.5)\n  image = tf.multiply(image, 2.0)\n  return image\n\n\nimport melt\n\n\n# Depreciated! \ndef create_image2feature_fn(name='InceptionV3'):\n  \"\"\"\n  will be depreciated just use create_image2feature_slim_fn \n  \"\"\"\n  #NOTICE how this method solve run/ scope problem, scope must before def, learn this from melt.seq2seq.attention_decoder_fn.py\n  raise TypeError('please use create_image2feature_slim_fn')\n  with tf.variable_scope(name) as scope:\n    def construct_fn(encoded_image, \n                     height, \n                     width, \n                     trainable=False,\n                     is_training=False,\n                     resize_height=346,\n                     resize_width=346,\n                     distort=True,\n                     image_format=\"jpeg\",  #for safe just use decode_jpeg\n                     reuse=None):\n      #decode image .. only accept one image so use map_fn, but seems map_fn is slow, so use as less as possible\n      #here decode image + preprocess into one\n      image = tf.map_fn(lambda img: process_image(img,\n                                                  is_training=is_training,\n                                                  height=height, \n                                                  width=width,\n                                                  resize_height=resize_height,\n                                                  resize_width=resize_width,\n                                                  distort=distort,\n                                                  image_format=image_format), \n                                encoded_image,\n                                dtype=tf.float32)\n\n\n      #this is the same as slim for inception v3, and TODO can be modified to accept other models\n      image_feature = melt.image.image_embedding.inception_v3(\n        image,\n        trainable=trainable,\n        is_training=is_training,\n        reuse=reuse,\n        scope=scope)\n\n      #if not set this eval_loss = trainer.build_train_graph(eval_image_feature, eval_text, eval_neg_text) will fail\n      #but still need to set reuse for melt.image.image_embedding.inception_v3... confused.., anyway now works..\n      #with out reuse=True score = predictor.init_predict() will fail, resue_variables not work for it..\n      #trainer create function once use it second time(same function) work here(with scope.reuse_variables)\n      #predictor create another function, though seem same name same scope, but you need to set reuse=True again!\n      #even if use tf.make_template still need this..\n      scope.reuse_variables()\n      return image_feature\n\n    return construct_fn\n\n\ninfo = {\n  'vgg_19': { \n              'feature_dim': 512,\n              'num_features': 196 \n            },\n\n  'InceptionV3': { \n                  'feature_dim': 2048 ,\n                  'width': 299,\n                  'height': 299\n                 },\n\n  'InceptionResnetV2': { \n                            'feature_dim': 1536,\n                            'feature_end_point': 'PreLogitsFlatten',\n                            'num_features': 64,  \n                            'features_end_point': 'Conv2d_7b_1x1',\n                            'width': 299,\n                            'height': 299\n                        },\n\n  'InceptionV4': {\n                    'feature_dim': 1536,\n                    'feature_end_point': 'PreLogitsFlatten',\n                    'num_features': 64, \n                    'features_end_point': 'Mixed_7d',\n                    'width': 299,\n                    'height': 299\n                 },\n  # TODO may be group as resnet_v2\n  'resnet_v2_152': {\n    'feature_dim': 2048,\n    'feature_end_point': 'PreLogits',\n    'num_features': 100,\n    'features_end_point': 'attention',\n    'width': 299,\n    'height': 299\n  },\n  'resnet_v1_101': {\n    'feature_dim': 2048,\n    'feature_end_point': 'PreLogits',\n    'num_features': 100,\n    'features_end_point': 'attention',\n    'width': 299,\n    'height': 299    \n  },\n  'nasnet_large': {\n    'feature_dim': 4032,\n    'feature_end_point': 'PreLogits',\n    'num_features': 121,\n    'features_end_point': 'attention',\n    'width': 331,\n    'height': 331\n  },\n  'nasnet_v1_large': {\n    'feature_dim': 4032,\n    'feature_end_point': 'PreLogits',\n    'num_features': 121,\n    'features_end_point': 'attention',\n    'width': 331,\n    'height': 331\n  },\n  'nasnet_v2_large': {\n    'feature_dim': 4032,\n    'feature_end_point': 'PreLogits',\n    'num_features': 121,\n    'features_end_point': 'attention',\n    'width': 331,\n    'height': 331\n  },\n  'nasnet_mobile': {\n    'feature_dim': 1056,\n    'feature_end_point': 'PreLogits',\n    'num_features': 49,\n    'features_end_point': 'attention',\n    'width': 224,\n    'height': 224\n  }\n}\n\ndef get_features_name(image_model_name):\n  return info[image_model_name]['features_end_point']\n\ndef get_num_features(image_model_name):\n  return info[image_model_name]['num_features']\n\ndef get_feature_dim(image_model_name):\n  return info[image_model_name]['feature_dim']\n\ndef OpenimageV2PreprocessImage(image, network='resnet_v1_101', image_size=299, is_training=False):\n  # If resolution is larger than 224 we need to adjust some internal resizing\n  # parameters for vgg preprocessing.\n  if any(network.startswith(x) for x in ['resnet', 'vgg']):\n    preprocessing_kwargs = {\n        'resize_side_min': int(256 * image_size / 224),\n        'resize_side_max': int(512 * image_size / 224)\n    }\n  else:\n    preprocessing_kwargs = {}\n  preprocessing_fn = preprocessing_factory.get_preprocessing(\n      name=network, is_training=is_training)\n\n  height = image_size\n  width = image_size\n  image = preprocessing_fn(image, height, width, **preprocessing_kwargs)\n  image.set_shape([height, width, 3])\n  return image\n\ndef create_image2feature_slim_fn(name=None, \n                                 feature_name=None, \n                                 preprocess_image=True, \n                                 num_classes=None,\n                                 scope=''):\n  \"\"\"\n    #NOTICE how this method solve run/ scope problem, scope must before def\n    using slim util to create image feature\n    You need to set PythonPath to include models/slim or install it if using on hdfs run TODO check\n  \"\"\"\n  #TODO '' can not work to be used as to escope scope ..., so if want to escape and call this function \n  #anywhere need to modify slim code to let slim code with scope None '' instead of name here like InceptionV3 \n  #HACK add another socpe.. to escape.. see hasky/jupter/scope.ipynb\n\n  ##notice for vgg.. scope is also in gnu format unlike IncepitonV3 -> inception_v3 or like resnet_v2_152 scope and model name all in gnu format\n  ##ValueError: Can not squeeze dim[1], expected a dimension of 1, got 3 for 'bow/main/image_text_sim/vgg_19/fc8/squeezed' (op: 'Squeeze') with input shapes: [32,3,3,1001].\n  #name = 'vgg_19' \n  \n  # HACK for nasnet which not has a nasnet_large/ top scope, I have converted the model file to add this scope \n  # so here have also add this top scope  TODO whey still add.. show and tell top scope not escape ? Now workaround is change slim code, add top scope there\n  #if name.startswith('nasnet') and not scope:\n  #  scope = name \n\n  with tf.variable_scope(scope) as scope:\n  # with tf.variable_scope(name) as scope: #name will be set in slim nets\n    def construct_fn(encoded_image, \n                     height=None, \n                     width=None, \n                     trainable=False, \n                     is_training=False,\n                     resize_height=346,\n                     resize_width=346,\n                     random_crop=True,\n                     distort=True,\n                     distort_color=True,\n                     slim_preprocessing=True,  # if image_model_name.startswith('nasnet') and not moving_average_decay:\n                     weight_decay=0.00004,\n                     finetune_end_point=None,\n                     feature_name=feature_name,\n                     num_classes=num_classes,      \n                     image_format=\"jpeg\",  #for safe just use decode_jpeg\n                     reuse=None): \n      logging.info('image model trainable:{}, is_training:{}'.format(trainable, is_training))\n\n      #allow [batch_size, 1] as input\n      #print(encoded_image.shape) #should be (?,)\n      #encoded_image = tf.squeeze(encoded_image) #this will casue problem if input batch size is 1, so squeeze seems danerous TODO check\n      #if use tf.squeeze(encoded_image, 1) also not work, out of index TODO can if len(shape) > 1 squeeze ?\n\n      #below is alos ok? TODO CHECK\n      # shape_list = encoded_image.get_shape().as_list()\n      # if len(shape_list) > 1:\n      #   encoded_image = tf.squeeze(encoded_image, -1)\n      \n      #preprocess_image\n      assert name is not None\n      net_name = gezi.to_gnu_name(name)\n\n      height = height or info[net_name]['height']\n      width = width or info[net_name]['width']\n\n      #well this is slightly slow and the result is differnt from im2txt inceptionV3 usage result, \n      #use im2txt code seems ok, not sure if slim preprocess will be better! TODO\n      #for inception related model I think im2txt process will be fine, for other models not sure TODO\n      #using slim preprocessing real 2m45.737s user  3m12.896s sys 0m10.265s \n      #using im2txt processing real 2m46.709s user  3m8.067s sys 0m8.297s  \n      #and the final feature will be slightly differnt \n      #one thing intersting is use 2 tf.map_fn(1 decode image, 1 preprocess) will be much slower then use 1 tf.map_fn (decode image+ preprocess)\n      if preprocess_image:\n        batch_size = encoded_image.get_shape()[0].value or tf.shape(encoded_image)[0]\n        encoded_image = tf.reshape(encoded_image, [batch_size,])\n        if slim_preprocessing:\n          # HACK HERE\n          # https://github.com/tensorflow/models/tree/master/research/slim\n          # ^ ResNet V2 models use Inception pre-processing and input image size of 299 (use --preprocessing_name inception \n          # --eval_image_size 299 when using eval_image_classifier.py).\n          # TODO FIXME alos seems vgg prprocessing will got similar feature for resnet_v2_152.. why?\n          # TODO also for resnet_v1_101 using openimage pretrain model, must also use 299 if using 224 then generated feature is all same for images\n          net_name_ = net_name \n\n          # HACK assume resnet101 model right now is only OpenimageV2 one  TODO\n          if net_name == 'resnet_v1_101':\n            print('HACK for resnet_v1_101 openimage checkpoint preprocess image', file=sys.stderr)\n            # TODO FIXME !! Notice set dtype=tf.float32 will casue much diff in result for resnet 101 openimage\n            # image = tf.map_fn(lambda img: OpenimageV2PreprocessImage(decode_image(img, image_format=image_format, dtype=tf.float32), is_training=(is_training and distort)),\n            #         encoded_image, dtype=tf.float32)\n            image = tf.map_fn(lambda img: OpenimageV2PreprocessImage(decode_image(img, image_format=image_format), is_training=(is_training and distort)),\n                    encoded_image, dtype=tf.float32)\n          else:\n            if net_name.startswith('resnet_v2'):\n            #if net_name.startswith('resnet'):\n              net_name_ = 'inception'\n              height = 299\n              width = 299\n              print('HACK here adjust to use inception preprocessing and inception default height and width', file=sys.stderr)\n\n            preprocessing_fn = preprocessing_factory.get_preprocessing(net_name_, is_training=(is_training and distort))        \n\n            print('preprocessing_fn net_name', net_name_, 'height', height, 'width', width, file=sys.stderr)\n            assert height is not None\n            # Iteresting for other models other then resnet101 openimage model, with or without dtype=tf.float32 is all ok\n            #with tf.device('/cpu:0'):\n            # image = tf.map_fn(lambda img: preprocessing_fn(decode_image(img, image_format=image_format, dtype=tf.float32), height, width),\n            #                   encoded_image, dtype=tf.float32)\n            # set add_image_summaries to False for tf1.5\n            # otherwise alueError: Cannot use 'show_and_tell/main/encode/map/while/distort_image/image_with_bounding_boxes' as input to 'show_and_tell_1/Merge/MergeSummary' \n            # because 'show_and_tell/main/encode/map/while/distort_image/image_with_bounding_boxes' is in a while loop. See info log for more details.\n            image = tf.map_fn(lambda img: preprocessing_fn(decode_image(img, image_format=image_format), height, width, add_image_summaries=False),\n                              encoded_image, dtype=tf.float32)\n        else:\n          raise ValueError('not use im2txt stype preprocessing any more just use slim preprocessing')\n          # im2txt style preprocessing\n          #with tf.device('/cpu:0'):\n          image = tf.map_fn(lambda img: process_image(img,\n                                                    is_training=is_training,\n                                                    height=height, \n                                                    width=width,\n                                                    resize_height=resize_height,\n                                                    resize_width=resize_width,\n                                                    random_crop=random_crop,\n                                                    distort=distort,\n                                                    distort_color=distort_color,\n                                                    image_format=image_format), \n                                                    encoded_image,\n                                                    dtype=tf.float32)\n      else:\n        image = encoded_image\n\n      # TODO like image_embedding.py add batch_norm ? fully understand!\n      is_image_model_training = trainable and is_training\n      if trainable and weight_decay:\n        weights_regularizer = tf.contrib.layers.l2_regularizer(weight_decay)\n      else:\n        weights_regularizer = None\n\n      with tf.variable_scope(scope, reuse=reuse):\n        # TODO Remove this arg scope ? since net_factory get function with proper arg scope!\n        with slim.arg_scope(\n          [slim.conv2d, slim.fully_connected],\n          weights_regularizer=weights_regularizer,\n          trainable=trainable): #should this be faster then stop_gradient? exp show this slim.arg_scope with trainable=False work\n     \n          # actually final num class layer not used for image feature purpose, but since in check point train using 1001, for simplicity here set 1001\n          # TODO might set try to use num_classes=None or 0, which will biuld graph before logits layer also without dropout, but now\n          # what I use is pre logigts feature which is after dropout layer\n          # TODO it should set num_classes default as None but slim return net just after global_pool, and for my code I used to use PreLogits \n          # after that, so here the hack is by default setting it to 1001, if you are using other pretrain model you might need to \n          # manually set num_classes like num_classes=5000(for openimage pretrain multilabel model) even if you just need the feature \n          # before fc layer(logits)  HACK! otherwise you might face problem loading model complaing wrong shape!\n          if num_classes is None:\n            num_classes = 1001 \n          # TODO might modify to let scope be '' ?\n          logging.info('pretrain image model num_classes:{}'.format(num_classes))\n          net_fn = nets_factory.get_network_fn(net_name, num_classes=num_classes, is_training=is_image_model_training)\n          logits, end_points = net_fn(image)\n\n          # from nets import inception\n          # with slim.arg_scope(inception.inception_resnet_v2_arg_scope()): \n          #   logits, end_points = inception.inception_resnet_v2(image, is_training=is_image_model_training, create_aux_logits=True)\n          \n          # for key in end_points:\n          # print(key, end_points[key].shape)\n          # print('end_points', end_points, file=sys.stderr)\n          # if feature name is None will get final feature, other wise will get final attention feature\n          # if feature in end point will directly get it other wise get from info[image_name][features_end_point]\n          # TODO final end point for feature should be global_pool ? which is btter global_pool without dropout or PreLogits?\n          # Try to finetune with using feature_name global_pool, or may be just use Logits (1001 dim as feature ?)\n\n          print('feature_name', feature_name, file=sys.stderr)\n          if feature_name and feature_name.lower() == 'logits':\n            print('using slim image model logits', file=sys.stderr)\n            image_feature = logits\n            assert num_classes\n          else:\n            if (not feature_name) or (feature_name == 'final') or (feature_name.lower == 'none'):\n              # None or empty feature name or final get final single feature\n              print('image_model feature_name is None will get PreLogits or PreLogitsFlatten', file=sys.stderr)\n              #print('end_point', end_points)\n              if 'PreLogitsFlatten' in end_points:\n                image_feature = end_points['PreLogitsFlatten']\n              elif 'PreLogits' in end_points:\n                net = end_points['PreLogits']\n                image_feature = slim.flatten(net, scope=\"flatten\")\n              else:\n                print('not found pre logits! get default final feature', file=sys.stderr)\n                feature_name = info[name]['feature_end_point']\n                print('image_model will get feature_name %s' % feature_name, file=sys.stderr)\n                net = end_points[feature_name]\n                image_feature = slim.flatten(net, scope=\"flatten\")\n            else:\n              # get attention features\n              if feature_name not in end_points:\n                feature_name = info[name]['features_end_point']\n              image_feature = end_points[feature_name]\n              image_feature = slim.flatten(image_feature)\n\n          print('image_feature:', image_feature, file=sys.stderr)\n          #TODO check is it really ok? not finetune? seems still slow as im2txt it should be much faster then fintune.. FIXME?\n          #TODO other method set not trainable, need to modify slim get_network_fn ?\n          #if not trainable: #just for safe.. actuall slim.arg_scope with train_able=False works\n          #  image_feature = tf.stop_gradient(image_feature)  \n          if finetune_end_point: #None or ''\n            logging.info('fintune image model from end point:{} {}'.format(finetune_end_point, end_points[finetune_end_point]))\n            tf.stop_gradient(end_points[finetune_end_point])\n          elif trainable:\n            logging.info('fintune all image model layers')\n\n          #--below is the same for inception v3\n          # image_feature = melt.image.image_embedding.inception_v3(\n          #   image_feature,\n          #   trainable=trainable,\n          #   is_training=is_training,\n          #   reuse=reuse,\n          #   scope=scope)\n\n          #if not set this eval_loss = trainer.build_train_graph(eval_image_feature, eval_text, eval_neg_text) will fail\n          #but still need to set reuse for melt.image.image_embedding.inception_v3... confused.., anyway now works..\n          #with out reuse=True score = predictor.init_predict() will fail, resue_variables not work for it..\n          #trainer create function once use it second time(same function) work here(with scope.reuse_variables)\n          #predictor create another function, though seem same name same scope, but you need to set reuse=True again!\n          #even if use tf.make_template still need this..\n          #got it see hasky/jupter/scope.ipynb, because train then  eval, use same fn() call again in eval scope.reuse_varaibbles() will in effect\n          #escape_fn3 = create_escape_construct_fn('XXX')\n          #escape_fn3()\n          #escape_fn3() #ok becasue scope.reuse_variables() here\n          #but for predictor escape_fn3 = create_escape_construct_fn('XXX') you call it again, then escape_fn3() will fail need reuse\n\n          scope.reuse_variables() #this is fine make function() '' scope resue, set True, but if not use function with ... will fail also\n          return image_feature\n\n    return construct_fn\n\n#TODO... not in affect... Still not very clear with make_template and create_scope_now_ (google/seq2seq set this True, default is False)\n# it is like above useing scope.reuse_variables() right after.. I suppose\n\n\"\"\"\n#encode_fn = SomeEncoderModule(...)\n\n## New variables are created in this call.\n#output1 = encode_fn(input1)\n\n## No new variables are created here. The variables from the above call are re-used.\n## Note how this is different from normal TensorFlow where you would need to use variable scopes.\n#output2 = encode_fn(input2)\n\n## Because this is a new instance a second set of variables is created.\n#encode_fn2 = SomeEncoderModule(...)\n#output3 = encode_fn2(input3)\n\"\"\"\n\n#this will be safe as build graph as root scope but has problem always building using image_processing?\n#from textsum seems not affected, will not create graph if you not use this function\n#_image2feature_fn = create_image2feature_fn()\n#make this function to be resued/share without manully set scope reuse\n#image2feature_fn = tf.make_template('image2feature', _image2feature_fn, create_scope_now_=True)\n#image2feature_fn = tf.make_template('image2feature', _image2feature_fn, create_scope_now_=False)\n#image2feature_fn =  create_image2feature_fn()\n"
  },
  {
    "path": "utils/melt/inference/__init__.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-08-17 23:56:54.148837\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nfrom melt.inference.predictor_base import * \nfrom melt.inference.predictor import Predictor, SimplePredictor, SimPredictor, RerankSimPredictor, WordsImportancePredictor, TextPredictor, EnsembleTextPredictor\n"
  },
  {
    "path": "utils/melt/inference/predictor.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   predictor.py\n#        \\author   chenghuige  \n#          \\date   2016-09-30 15:19:35.984852\n#   \\Description  \n# ==============================================================================\n\"\"\"\nThis predictor will read from checkpoint and meta graph, only depend on tensorflow\nno other code dpendences, so can help hadoop or online deploy,\nand also can run inference without code of building net/graph\n\nTODO test use tf.Session() instead of melt.get_session()\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nfrom tensorflow.python import debug as tf_debug\n\nimport os, sys, math\nimport numpy as np\nimport gezi\nimport melt \n\nimport operator \nimport traceback\n\ndef get_model_dir_and_path(model_dir, model_name=None):\n  model_path = model_dir\n  ckpt = tf.train.get_checkpoint_state(model_dir)\n  if ckpt and ckpt.model_checkpoint_path:\n    #model_path = '%s/%s'%(model_dir, os.path.basename(ckpt.model_checkpoint_path)) \n    model_path = os.path.join(model_dir, os.path.basename(ckpt.model_checkpoint_path))\n  else:\n    model_path = model_dir if model_name is None else os.path.join(model_dir, model_name)\n  #if not os.path.exists(model_path):\n  #  raise ValueError(model_path)\n  return os.path.dirname(model_path), model_path\n\n# tf.get_default_graph().get_all_collection_keys() get all keys\n# graph.get_all_collection_keys\n# TODO FIXME even without / might still be tensor key name not collection key name\ndef get_tensor_from_key(key, graph, index=-1):\n  if isinstance(key, str):\n    if not '/' in key:\n      try:\n        ops = graph.get_collection(key)\n        if len(ops) > 1:\n          #print('Warning: ops more then 1 for {}, ops:{}, index:{}'.format(key, ops, index))\n          pass\n        return ops[index]\n      except Exception:\n        print\n    else:\n      if not key.endswith(':0'):\n        key = key + ':0'\n      #print('------------', [n.name for n in graph.as_graph_def().node])\n      try:\n        op = graph.get_tensor_by_name(key)\n        return op\n      except Exception:\n        #print(traceback.format_exc())\n        key = 'prefix/' + key \n        op = graph.get_tensor_by_name(key)\n        return op\n  else:\n    return key\n\nclass Predictor(object):\n  def __init__(self, model_dir=None, meta_graph=None, model_name=None, \n               debug=False, sess=None, graph=None,\n               frozen_graph=None, frozen_graph_name='prefix',\n               no_frozen_graph=False,\n               random_seed=1234):\n    super(Predictor, self).__init__()\n    self.sess = sess\n    if self.sess is None:\n      ##---TODO tf.Session() if sess is None\n      #self.sess = tf.InteractiveSession()\n      #self.sess = melt.get_session() #make sure use one same global/share sess in your graph\n      self.graph = graph or tf.Graph()\n      self.sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True), graph=self.graph) #by default to use new Session, so not conflict with previous Predictors(like overwide values)\n      if debug:\n        self.sess = tf_debug.LocalCLIDebugWrapperSession(self.sess)\n    #ops will be map and internal list like\n    #{ text : [op1, op2], text2 : [op3, op4, op5], text3 : [op6] }\n    \n    if random_seed is not None:\n      tf.set_random_seed(random_seed)\n\n    self.frozen_graph_name = frozen_graph_name\n    self.no_frozen_graph = no_frozen_graph\n    if frozen_graph is None:\n      if model_dir is not None:\n        self.restore(model_dir, meta_graph, model_name)\n    else:\n      self.load_graph(frozen_graph, frozen_graph_name)\n\n  #by default will use last one\n  def inference(self, key, feed_dict=None, index=-1):\n    if not isinstance(key, (list, tuple)):\n      return self.sess.run(get_tensor_from_key(key, self.graph, index), feed_dict=feed_dict)\n    else:\n      keys = key \n      if not isinstance(index, (list, tuple)):\n        indexes = [index] * len(keys)\n      else:\n        indexes = index \n      keys = [get_tensor_from_key(key, self.graph, index) for key,index in zip(keys, indexes)]\n      return self.sess.run(keys, feed_dict=feed_dict)\n\n  def predict(self, key, feed_dict=None, index=-1):\n    return self.inference(key, feed_dict, index)\n\n  def run(self, key, feed_dict=None):\n    return self.sess.run(key, feed_dict)\n\n  def restore(self, model_dir, meta_graph=None, model_name=None, random_seed=None):\n    \"\"\"\n    do not need to create graph\n    restore graph from meta file then restore values from checkpoint file\n    \"\"\"\n    model_dir, model_path = get_model_dir_and_path(model_dir, model_name)\n    self.model_path = model_path\n\n    frozen_graph_file = '%s.pb' % model_path\n    if os.path.exists(frozen_graph_file) and not self.no_frozen_graph:\n      frozen_map_file = '%s.map' % model_path\n      return self.load_graph(frozen_graph_file, self.frozen_graph_name, frozen_map_file=frozen_map_file)\n\n    timer = gezi.Timer('restore meta grpah and model ok %s' % model_path)\n    if meta_graph is None:\n      meta_graph = '%s.meta' % model_path\n    ##https://github.com/tensorflow/tensorflow/issues/4603\n    #https://stackoverflow.com/questions/37649060/tensorflow-restoring-a-graph-and-model-then-running-evaluation-on-a-single-imag\n    with self.sess.graph.as_default():\n      saver = tf.train.import_meta_graph(meta_graph)\n      saver.restore(self.sess, model_path)\n    if random_seed is not None:\n      tf.set_random_seed(random_seed)\n\n    #---so maybe do not use num_epochs or not save num_epochs variable!!!! can set but input producer not use, stop by my flow loop\n    #---TODO not work remove can run but hang  FIXME add predictor + exact_predictor during train will face\n    #@gauravsindhwani , can you still run the code successfully after you remove these two collections since they are actually part of the graph. \n    #I try your way but find the program is stuck after restoring.\"\n    #https://github.com/tensorflow/tensorflow/issues/9747\n    #tf.get_default_graph().clear_collection(\"queue_runners\")\n    #tf.get_default_graph().clear_collection(\"local_variables\")\n    #--for num_epochs not 0\n    #tf.get_default_graph().clear_collection(\"local_variables\")\n    #self.sess.run(tf.local_variables_initializer())\n\n    #https://stackoverflow.com/questions/44251666/how-to-initialize-tensorflow-variable-that-wasnt-saved-other-than-with-tf-globa\n    #melt.initialize_uninitialized_vars(self.sess)\n\n    timer.print_elapsed()\n    return self.sess\n  #http://ndres.me/post/convert-caffe-to-tensorflow/\n  def load_graph(self, frozen_graph_file, frozen_graph_name='prefix', frozen_map_file=None):\n    # We load the protobuf file from the disk and parse it to retrieve the\n    # unserialized graph_def\n    timer = gezi.Timer('load frozen graph from %s with mapfile %s' % (frozen_graph_file, frozen_map_file))\n    with tf.gfile.GFile(frozen_graph_file, \"rb\") as f:\n      graph_def = tf.GraphDef()\n      graph_def.ParseFromString(f.read())\n\n    # Then, we can use again a convenient built-in function to import a graph_def into the\n    # current default Graph\n    with self.sess.graph.as_default() as graph:\n      tf.import_graph_def(\n        graph_def,\n        input_map=None,\n        return_elements=None,\n        name=frozen_graph_name,\n        #op_dict=None,\n        producer_op_list=None\n      )\n\n      if frozen_map_file is not None and os.path.exists(frozen_map_file):\n        for line in open(frozen_map_file):\n          cname, key = line.strip().split('\\t')\n          if not (key.endswith(':0') or key.endswith(':1') or key.endswith(':2')):\n            key = '%s:0' % key\n          tensor = graph.get_tensor_by_name('%s/%s' % (frozen_graph_name, key))\n          graph.add_to_collection(cname, tensor)\n\n    timer.print_elapsed()\n    return graph\n\nclass SimplePredictor(object):\n  def __init__(self, \n              model_dir, \n              key=None, \n              feed=None,\n              index=0,\n              meta_graph=None, \n              model_name=None, \n              debug=False, \n              sess=None,\n              graph=None):\n    self.predictor = Predictor(model_dir, meta_graph, model_name, debug, sess, graph)\n    self.graph = self.predictor.graph\n    key = key or 'predictions'\n    feed = feed or 'feed'\n    try:\n      self.key = self.graph.get_collection(key)[index] \n    except Exception:\n      self.key = None\n  \n    self.index = index\n    try:\n      self.feed = self.graph.get_collection(feed)[index]\n    except Exception:\n      self.feed = None\n\n    self.sess = self.predictor.sess\n\n  def inference(self, input, key=None, index=None, feed=None):\n    if key is None:\n      key = self.key\n    if index is None:\n      index = self.index\n    if feed is None:\n      feed = self.feed \n    else:\n      feed = self.graph.get_collection(feed)[index]\n\n    feed_dict = {\n        feed: input\n    }\n    \n    return self.predictor.inference(key, feed_dict=feed_dict, index=index)\n\n#TODO lfeed, rfeed .. should be named as lfeed, rfeed\nclass SimPredictor(object):\n  def __init__(self, \n              model_dir, \n              key=None, \n              lfeed=None,\n              rfeed=None,\n              index=0,\n              meta_graph=None, \n              model_name=None, \n              debug=False, \n              sess=None,\n              graph=None):\n    self.predictor = Predictor(model_dir, meta_graph, model_name, debug, sess, graph)\n    self.graph = self.predictor.graph\n    key = key or 'score'\n    lfeed = lfeed or 'lfeed'\n    rfeed = rfeed or 'rfeed'\n    #print(self.graph.get_all_collection_keys())\n    self.key = self.graph.get_collection(key)[index] \n    self.index = index\n    self.lfeed = self.graph.get_collection(lfeed)[index]\n    self.rfeed = self.graph.get_collection(rfeed)[index]\n\n    self.sess = self.predictor.sess\n\n  def inference(self, ltext, rtext=None, key=None, index=None, lfeed=None, rfeed=None):\n    if key is None:\n      key = self.key\n    if index is None:\n      index = self.index\n    if lfeed is None:\n      lfeed = self.lfeed \n    else:\n      lfeed = self.graph.get_collection(lfeed)[index]\n    if rfeed is None:\n      rfeed = self.rfeed\n    else:\n      rfeed = self.graph.get_collection(rfeed)[index]\n\n    if rtext is not None:\n      feed_dict = {\n        lfeed: ltext,\n        rfeed: rtext\n      }\n      return self.predictor.inference(key, feed_dict=feed_dict, index=index)\n    else:\n      feed_dict = {\n        lfeed: ltext\n      }\n\n    return self.predictor.inference(key, feed_dict=feed_dict, index=index)\n\n\n  def predict(self, ltext, rtext=None, key=None, index=None):\n    return self.inference(ltext, rtext, key, index)\n\n  def elementwise_predict(self, ltexts, rtexts, expand_left=True):\n    scores = []\n    #if len(rtexts) >= len(ltexts):\n    if expand_left:\n      for ltext in ltexts:\n        stacked_ltexts = np.array([ltext] * len(rtexts))\n        score = self.predict(stacked_ltexts, rtexts)\n        score = np.squeeze(score) \n        scores.append(score)\n    else:\n      for rtext in rtexts:\n        stacked_rtexts = np.array([rtext] * len(ltexts))\n        score = self.predict(ltexts, stacked_rtexts)\n        score = np.squeeze(score) \n        scores.append(score)\n    return np.array(scores) \n\n  def onebyone_predict(self, ltexts, rtexts_list):\n    scores = []\n    for ltext, rtexts in zip(ltexts, rtexts_list):\n      score = self.predict([ltext], rtexts)\n      score = np.squeeze(score)\n      scores.append(score)\n    return np.array(scores)\n\n  #def bulk_predict(self, ltexts, rtexts_list, buffer_size=512):\n  def bulk_predict(self, ltexts, rtexts_list, buffer_size=50):\n    \"\"\"\n    ltexts [batch_size,..]\n    rtexts [batch_size, num_texts,..]\n    TODO support split batch, so can avoid gpu mem issue\n    \"\"\"\n    stacked_ltexts = []\n    stacked_rtexts = []\n    boundaries = []\n    for ltext, rtexts in zip(ltexts, rtexts_list):\n      stacked_ltexts += [ltext] * len(rtexts)\n      stacked_rtexts += list(rtexts)\n      boundaries.append(len(rtexts))\n\n    stacked_ltexts = np.array(stacked_ltexts)\n    stacked_rtexts = np.array(stacked_rtexts)\n\n    if len(stacked_ltexts) <= buffer_size:\n      #[n, 1] <- [n, 1] [n, 1]\n      score = self.predict(stacked_ltexts, stacked_rtexts)\n    else:\n      start = 0\n      score_list = []\n      while start < len(stacked_ltexts):\n        end = start + buffer_size\n        score = self.predict(stacked_ltexts[start: end], stacked_rtexts[start: end])\n        score_list += list(score)\n        start += buffer_size\n      score = np.array(score_list)\n    score = np.squeeze(score)\n\n    results_list = []\n    index = 0\n    for num_rtexts in boundaries:\n      results = []\n      for i in range(num_rtexts):\n        results.append(score[index])\n        index += 1\n      results_list.append(np.array(results))\n    results_list = np.array(results_list)\n    return results_list\n\n  def top_k(self, ltext, rtext, k=1, key=None):\n    feed_dict = {\n      self.lfeed: ltext,\n      self.rfeed: rtext\n    }\n    if key is None:\n      key = 'nearby'\n    try:\n      values, indices = self.predictor.inference(key, feed_dict=feed_dict, index=self.index)\n      return values[:k], indices[:k]\n    except Exception:\n      # score = self.predict(ltext, rtext)\n      # indices = (-score).argsort()[:k]\n      # # result\n      # x = arr.shape[0]\n      # #like [0, 0, 1, 1] [1, 0, 0, 1] ->...  choose (0,1), (0, 0), (1,0), (1, 1)\n      # values = score[np.repeat(np.arange(x), N), indices.ravel()].reshape(x, k)\n      # return values, indices\n      scores = tf.get_collection(self.key)[self.index]\n      vals, indexes = tf.nn.top_k(scores, k)\n      return self.sess.run([vals, indexes], feed_dict=feed_dict)\n\n#different session for predictor and exact_predictor all using index 0! if work not correclty try to change Predictor default behave use melt.get_session() TODO\nclass RerankSimPredictor(object):\n  def __init__(self, model_dir, exact_model_dir, num_rerank=100, \n              lfeed=None, rfeed=None, exact_lfeed=None, exact_rfeed=None, \n              key=None, exact_key=None, index=0, exact_index=0, sess=None, exact_sess=None, graph=None, exact_graph=None):\n    self.predictor = SimPredictor(model_dir, index=index, lfeed=lfeed, rfeed=rfeed, key=key, sess=sess, graph=graph)\n    #TODO FIXME for safe use -1, should be 1 also ok, but not sure why dual_bow has two 'score'.. \n    #[<tf.Tensor 'dual_bow/main/dual_textsim_1/dot/MatMul:0' shape=(?, ?) dtype=float32>, <tf.Tensor 'dual_bow/main/dual_textsim_1/dot/MatMul:0' shape=(?, ?) dtype=float32>,\n    # <tf.Tensor 'seq2seq/main/Exp_4:0' shape=(?, 1) dtype=float32>]\n    #this is becasue you use evaluator(predictor + exact_predictor) when train seq2seq, so load dual_bow will add one score..\n    self.exact_predictor = SimPredictor(exact_model_dir, index=exact_index, lfeed=exact_lfeed, rfeed=exact_rfeed, key=exact_key, \n                                        sess=exact_sess, graph=exact_graph)\n\n    self.num_rerank = num_rerank\n\n  def inference(self, ltext, rtext, ratio=1.):\n    scores = self.predictor.inference(ltext, rtext)\n    if not ratio:\n      return scores\n\n    exact_scores = []\n    for i, score in enumerate(scores):\n      index= (-score).argsort()\n      top_index = index[:self.num_rerank]\n      exact_rtext = rtext[top_index]\n      exact_score = self.exact_predictor.elementwise_predict([ltext[i]], rtext)\n      exact_score = np.squeeze(exact_score)\n      if ratio < 1.:\n        for j in range(len(top_index)):\n          exact_score[j] = ratio * exact_score[j] + (1. - ratio) * score[top_index[j]]\n\n      exact_scores.append(exact_score)\n    return np.array(exact_score)\n\n  def predict(self, ltext, rtext, ratio=1.):\n    return self.predict(ltext, rtext, ratio)\n\n  #TODO do numpy has top_k ? seems argpartition will get topn but not in order\n  def top_k(self, ltext, rtext, k=1, ratio=1., sorted=True):\n    assert k <= self.num_rerank\n    #TODO speed hurt?\n    ltext = np.array(ltext)\n    rtext = np.array(rtext)\n    scores = self.predictor.predict(ltext, rtext)\n    \n    top_values = []\n    top_indices = []\n\n    if not ratio:\n      for i, score in enumerate(scores):\n        index = (-score).argsort()\n        top_values.append(score[index[:k]])\n        top_indices.append(index[:k])\n      return np.array(top_values), np.array(top_indices)\n\n    for i, score in enumerate(scores):\n      index = (-score).argsort()\n      print(index,  np.argpartition(-score, self.num_rerank))\n      if ratio:\n        top_index = index[:self.num_rerank]\n        exact_rtext = rtext[top_index]\n        exact_score = self.exact_predictor.elementwise_predict([ltext[i]], exact_rtext)\n        exact_score = np.squeeze(exact_score)\n        if ratio < 1.:\n          for j in range(len(top_index)):\n            exact_score[j] = ratio * exact_score[j] + (1. - ratio) * score[top_index[j]]\n\n        exact_index = (-exact_score).argsort()\n\n        new_index = [x for x in index]\n        for j in range(len(exact_index)):\n          new_index[j] = index[exact_index[j]]\n        index = new_index\n      \n      top_values.append(exact_score[exact_index[:k]])\n      top_indices.append(index[:k])\n\n    return np.array(top_values), np.array(top_indices)\n\nclass WordsImportancePredictor(object):\n  def __init__(self, model_dir, key=None, feed=None, index=0, sess=None):\n    self.predictor = Predictor(model_dir, sess=sess)\n    self.graph = self.predictor.graph\n    self.index = index \n\n    if key is None:\n      self.key = self.graph.get_collection('words_importance')[index]\n    else:\n      self.key = key\n\n    if feed is None:\n      self.feed = self.graph.get_collection('rfeed')[index]\n    else:\n      self.feed = feed\n\n\n  def inference(self, inputs):\n    feed_dict = {self.feed: inputs}\n    return self.predictor.inference(self.key, feed_dict=feed_dict, index=self.index)\n\n  def predict(self, inputs):\n    return self.inference(inputs)\n\nclass TextPredictor(object):\n  def __init__(self, \n              model_dir, \n              feed=None,\n              text_key='beam_text',\n              score_key='beam_text_score',\n              lfeed=None,\n              rfeed=None,\n              key=None,\n              index=0,\n              meta_graph=None, \n              model_name=None,\n              current_length_normalization_factor=None,\n              length_normalization_fator=None, \n              vocab=None,\n              debug=False, \n              sess=None,\n              graph=None):\n    self.predictor = SimPredictor(model_dir, index=index, lfeed=lfeed, rfeed=rfeed, key=key, sess=sess, graph=graph)\n    self.ori_predictor = self.predictor.predictor\n    self.graph = self.predictor.graph\n    self.index = index\n\n    self.text_key = text_key\n    self.score_key = score_key\n\n    self.current_length_normalization_factor = current_length_normalization_factor\n    self.length_normalization_fator = length_normalization_fator\n    self.vocab = vocab\n\n    assert self.vocab or (self.current_length_normalization_factor == self.length_normalization_fator)\n\n    if feed is None:\n      try:\n        self.feed = self.graph.get_collection('feed')[index]\n      except Exception:\n        self.feed = self.graph.get_collection('lfeed')[index]\n    else:\n      self.feed = feed\n\n  def _get_text_len(self, text):\n    len_ = 0\n    for wid in text:\n      len_ += 1\n      if wid == self.vocab.end_id():\n        break \n    return len_\n\n  def _get_texts_len(self, texts):\n    lens_ = [self._get_text_len(text) for text in texts]\n    return np.array(lens_)\n\n  def inference(self, inputs, text_key=None, score_key=None, index=None):\n    if text_key is None:\n      text_key = self.text_key\n\n    if score_key is None:\n      score_key = self.score_key\n\n    if index is None:\n      index = self.index\n\n    feed_dict = {\n      self.feed: inputs\n    }\n\n    texts, scores = self.ori_predictor.inference([text_key, score_key], feed_dict=feed_dict, index=index)\n\n    #not used much.. currenlty not used\n    if self.current_length_normalization_factor and self.length_normalization_fator and \\\n         self.current_length_normalization_factor != self.length_normalization_fator:\n      sequence_length = self._get_text_len(texts)\n      current_normalize_factor = tf.pow(sequence_length, self.current_normalize_factor)\n      normalize_factor = tf.pow(sequence_length, self.length_normalization_fator)\n\n      logprobs = math.log(scores)\n      logprobs = logprobs * current_normalize_factor / normalize_factor\n      scores = math.exp(logprobs)\n\n    return texts, scores\n\n  def predict(self, ltext, rtext, index=-1):\n    return self.predictor.predict(ltext, rtext, index=index)\n\n  def elementwise_predict(self, ltexts, rtexts):\n    return self.predictor.elementwise_predict(ltexts, rtexts)\n\n  def bulk_predict(self, ltexts, rtexts):\n    return self.predictor.bulk_predict(ltexts, rtexts)\n\n  def predict_text(self, inputs, text_key=None, score_key=None, index=None):\n    return self.inference(inputs, text_key, score_key, index)\n\n  def predict_full_text(self, inputs, index=None):\n    return self.inference(inputs, 'full_text', 'full_text_score', index=index)\n\nclass EnsembleTextPredictor(object):\n  \"\"\"\n  might has memory issue since, multiple model each with image model inside... TODO\n  one way is juse use nomral 1 TextPredictor and each write a file and deal with all result files merge \n  result as ensemble result\n  \"\"\"\n  def __init__(self, \n              model_dirs, \n              feed=None,\n              text_key='beam_text',\n              score_key='beam_text_score',\n              current_length_normalization_factor=1.,\n              length_normalization_fator=1.,\n              vocab=None,\n              index=0,\n              sess=None):\n    if isinstance(model_dirs, str):\n      if ',' in model_dirs:\n        model_dirs = model_dirs.split(',')\n      else:\n        model_dirs = [model_dirs]\n    self.predictors = [TextPredictor(model_dir, \n                                    feed=feed, \n                                    text_key=text_key, \n                                    score_key=score_key, \n                                    current_length_normalization_factor=current_length_normalization_factor,\n                                    length_normalization_fator=length_normalization_fator,\n                                    vocab=vocab,\n                                    index=index,\n                                    sess=sess) \\\n                       for model_dir in model_dirs]\n\n  #Not correct need to FIMXE one input image has some candidates to calc(different num for different image)\n  #need to pack calc and reassign back correctly\n  #well below to complex TODO... now just using simple method\n  # def inference(self, inputs):\n  #   text_map = {}\n  #   img2text = {}\n  #   for i, predictor in enumerate(self.predictors):\n  #     texts, scores = predictor.inference(inputs)\n  #     print('----', texts.shape, scores.shape)\n  #     for j, text in enumerate(texts):\n  #       #HACK TODO now beam search with input TEXT_MAX_WORDS will predict text with length TEXT_MAX_WORDS + 2\n  #       #should move the convertion code outside maybe change beam search code is best way\n  #       #HACK 9 for ai-chanllenger end_id\n  #       text = text[0][:-2]\n  #       text = np.array([x if x != 9 else 0 for x in text])\n  #       text_str = '\\t'.join([str(x) for x in text])\n  #       img2text.setdefault(i, set())\n  #       img2text[j].add(text_str)\n  # #       text_map[text_str] = text\n\n\n  #   texts = np.array([y for (x, y) in text_map.items()])\n\n  #   print('--------', texts, inputs[0].shape, texts.shape)\n  #   scores_list =[predictor.elementwise_predict(inputs, texts) for predictor in self.predictors]\n\n  #   scorer = gezi.AvgScore()\n  #   for scores in scores_list:\n  #     scorer.add(scores)\n  #   scores = scorer.avg_score()\n  #   scores = np.array(scores)\n  #   print(texts, scores, texts.shape, scores.shape)\n\n  #   results = sorted([(score, text) for score, text in zip(scores, texts)], reverse=True)\n  #   #https://stackoverflow.com/questions/12974474/how-to-unzip-a-list-of-tuples-into-individual-lists\n  #   scores, texts = zip(*results)\n\n  #   return np.array(texts), np.array(scores)\n\n  def inference(self, inputs):\n    ##---below is wrong.. all {} will point to one postion...\n    #results = [{}] * len(inputs)\n    results = [{} for _ in range(len(inputs))]\n    for predictor in self.predictors:\n      #[batch_size, beam_size, text]\n      texts_list, scores_list = predictor.inference(inputs)\n      print('texts_list.shape', texts_list.shape, len(texts_list))\n      for i, (texts, scores) in enumerate(zip(texts_list, scores_list)):\n        for text, score in zip(texts, scores):\n          text_str = '\\t'.join([str(x) for x in text])\n          results[i].setdefault(text_str, 0.)\n          results[i][text_str] += score \n\n    texts = []\n    scores = []\n    for result in results:\n      sorted_result = sorted(result.items(), key=operator.itemgetter(1), reverse=True)\n      texts.append([map(int, sorted_result[0][0].split('\\t'))])\n      scores.append([sorted_result[0][1]])\n\n    return np.array(texts), np.array(scores)\n\n\n  def predict(self, inputs):\n    return self.inference(inputs)\n\n  def predict_text(self, inputs):\n    return self.inference(inputs)\n"
  },
  {
    "path": "utils/melt/inference/predictor_base.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   predictor_base.py\n#        \\author   chenghuige  \n#          \\date   2016-08-17 23:57:11.987515\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\nThis is used for train predict, predictor building graph not read from meta\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport melt, gezi\n\nimport numpy as np \n\ndef get_tensor_from_key(key, index=-1):\n  if isinstance(key, str):\n    try:\n      return tf.get_collection(key)[index]\n    except Exception:\n      print('Warning:', key, ' not find in graph')\n      return tf.no_op()\n  else:\n    return key\n\nclass PredictorBase(object):\n  #TODO maybe like predictor.py need graph?\n  def __init__(self, sess=None):\n    super(PredictorBase, self).__init__()\n    if sess is None:\n      self.sess = melt.get_session()\n    else:\n      self.sess = sess\n\n  def load(self, model_dir, var_list=None, model_name=None, sess = None):\n    \"\"\"\n    only load varaibels from checkpoint file, you need to \n    create the graph before calling load\n    \"\"\"\n    if sess is not None:\n      self.sess = sess\n    self.model_path = melt.get_model_path(model_dir, model_name)\n    timer = gezi.Timer('load model ok %s' % self.model_path)\n    saver = melt.restore_from_path(self.sess, self.model_path, var_list)\n    timer.print()\n    return self.sess\n\n  def restore_from_graph(self):\n    pass\n\n  def restore(self, model_dir, model_name=None, sess=None):\n    \"\"\"\n    do not need to create graph\n    restore graph from meta file then restore values from checkpoint file\n    \"\"\"\n    if sess is not None:\n      self.sess = sess\n    self.model_path = model_path = melt.get_model_path(model_dir, model_name)\n    timer = gezi.Timer('restore meta grpah and model ok %s' % model_path)\n    meta_filename = '%s.meta'%model_path\n    saver = tf.train.import_meta_graph(meta_filename)\n    self.restore_from_graph()\n    saver.restore(self.sess, model_path)\n    #---TODO not work remove can run but hang  FIXME add predictor + exact_predictor during train will face\n    #@gauravsindhwani , can you still run the code successfully after you remove these two collections since they are actually part of the graph. \n    #I try your way but find the program is stuck after restoring.\"\n    #https://github.com/tensorflow/tensorflow/issues/9747\n    #tf.get_default_graph().clear_collection(\"queue_runners\")\n    #tf.get_default_graph().clear_collection(\"local_variables\")\n    #--for num_epochs not 0\n    #self.sess.run(tf.local_variables_initializer())\n    timer.print()\n    return self.sess\n\n  def run(self, key, feed_dict=None):\n    return self.sess.run(key, feed_dict)\n\n  def inference(self, key, feed_dict=None, index=-1):\n    if not isinstance(key, (list, tuple)):\n      return self.sess.run(get_tensor_from_key(key, index), feed_dict=feed_dict)\n    else:\n      keys = key \n      if not isinstance(index, (list, tuple)):\n        indexes = [index] * len(keys)\n      else:\n        indexes = index \n      keys = [get_tensor_from_key(key, index) for key,index in zip(keys, indexes)]\n      return self.sess.run(keys, feed_dict=feed_dict)\n\n  def elementwise_predict(self, ltexts, rtexts):\n    scores = []\n    if len(rtexts) >= len(ltexts):\n      for ltext in ltexts:\n        stacked_ltexts = np.array([ltext] * len(rtexts))\n        score = self.predict(stacked_ltexts, rtexts)\n        score = np.squeeze(score) \n        scores.append(score)\n    else:\n      for rtext in rtexts:\n        stacked_rtexts = np.array([rtext] * len(ltexts))\n        score = self.predict(ltexts, stacked_rtexts)\n        score = np.squeeze(score) \n        scores.append(score)\n    return np.array(scores)  \n"
  },
  {
    "path": "utils/melt/layers/__init__.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 16:36:38.289129\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom melt.layers.layers import *\n\nfrom melt.layers.optimizers import * \n\nfrom melt.layers.cnn import *\nfrom melt.layers.rnn import *\nfrom melt.layers.transformer import * \n\n"
  },
  {
    "path": "utils/melt/layers/cnn/__init__.py",
    "content": "from melt.layers.cnn.convnet import *\nfrom melt.layers.cnn.qanet import *\n"
  },
  {
    "path": "utils/melt/layers/cnn/cnn.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cnn.py\n#        \\author   chenghuige  \n#          \\date   2018-02-18 12:26:23.284086\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport sys, os\n\nfrom official.transformer.model import model_utils\n\nkeras = tf.keras\nlayers = tf.keras.layers\nLayer = layers.Layer\n\nimport melt\n\nfrom melt.rnn import encode_outputs, OutputMethod\n\n\n\"\"\"\nHierarchical ConvNet\n\"\"\"\n#https://arxiv.org/pdf/1705.02364.pdf\n#https://github.com/facebookresearch/InferSent/blob/master/models.py\n\n# This is simple can be cnn baseline, but easy to overfit\n\n\nclass ConvNet(melt.Model):\n  def __init__(self, \n               num_layers, \n               num_filters, \n               keep_prob=1.0,\n               kernel_sizes = [3] * 7,\n               use_position_encoding=False,\n               **kwargs):\n      super(ConvNet, self).__init__(**kwargs)\n      self.num_layers = num_layers\n      self.keep_prob = keep_prob\n      self.num_filters = num_filters\n      self.kernel_sizes = kernel_sizes # might try [3, 5, 7, 9, 11, 13] ?\n      self.use_position_encoding = use_position_encoding\n\n      assert self.num_filters\n\n      assert self.num_layers <= len(kernel_sizes)\n\n      self.conv1ds = [layers.Conv1D(filters=num_filters, kernel_size=kernel_sizes[layer], padding='same', activation=tf.nn.relu) for layer in range(self.num_layers)]\n\n  # seq_len for rnn compact \n  def call(self, seq, seq_len=None, masks=None, \n           output_method=OutputMethod.all, \n           training=False):\n    if self.use_position_encoding:\n      hidden_size = melt.get_shape(seq, -1)\n      # Scale embedding by the sqrt of the hidden size\n      seq *= hidden_size ** 0.5\n\n      # Create binary array of size [batch_size, length]\n      # where 1 = padding, 0 = not padding\n      padding = tf.to_float(tf.sequence_mask(seq_len))\n\n      # Set all padding embedding values to 0\n      seq *= tf.expand_dims(padding, -1)\n\n      pos_encoding = model_utils.get_position_encoding(\n          tf.shape(seq)[1], tf.shape(seq)[-1])\n      seq = seq + pos_encoding\n\n    num_filters = self.num_filters\n    seqs = [seq]\n    #batch_size = melt.get_batch_size(seq)\n\n    for layer in range(self.num_layers):\n      if masks is None:\n        seq_ = melt.dropout(seq, self.keep_prob, training)\n      else:\n        seq_ = seq * masks[layer]\n      seq = self.conv1ds[layer](seq_)\n      seqs.append(seq)\n    \n    outputs = tf.concat(seqs[1:], 2)\n    # not do any dropout in convet just dropout outside \n    # if self.is_train and self.keep_prob < 1:\n    #   outputs = tf.nn.dropout(outputs, self.keep_prob)\n\n    # compact for rnn with sate return\n    return melt.rnn.encode_outputs(outputs, seq_len, output_method)\n  "
  },
  {
    "path": "utils/melt/layers/cnn/convnet.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   cnn.py\n#        \\author   chenghuige  \n#          \\date   2018-02-18 12:26:23.284086\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport sys, os\n\nfrom official.transformer.model import model_utils\n\nkeras = tf.keras\nlayers = tf.keras.layers\nLayer = layers.Layer\n\nimport melt\n\nfrom melt.rnn import encode_outputs, OutputMethod\n\n\n\"\"\"\nHierarchical ConvNet\n\"\"\"\n#https://arxiv.org/pdf/1705.02364.pdf\n#https://github.com/facebookresearch/InferSent/blob/master/models.py\n\n# This is simple can be cnn baseline, but easy to overfit\n\n\nclass ConvNet(melt.Model):\n  def __init__(self, \n               num_layers, \n               num_filters, \n               keep_prob=1.0,\n               kernel_sizes = [3] * 7,\n               use_position_encoding=False,\n               **kwargs):\n      super(ConvNet, self).__init__(**kwargs)\n      self.num_layers = num_layers\n      self.keep_prob = keep_prob\n      self.num_filters = num_filters\n      self.kernel_sizes = kernel_sizes # might try [3, 5, 7, 9, 11, 13] ?\n      self.use_position_encoding = use_position_encoding\n\n      assert self.num_filters\n\n      assert self.num_layers <= len(kernel_sizes)\n\n      self.conv1ds = [layers.Conv1D(filters=num_filters, kernel_size=kernel_sizes[layer], padding='same', activation=tf.nn.relu) for layer in range(self.num_layers)]\n\n  # seq_len for rnn compact \n  def call(self, seq, seq_len=None, masks=None, \n           output_method=OutputMethod.all, \n           training=False):\n    if self.use_position_encoding:\n      hidden_size = melt.get_shape(seq, -1)\n      # Scale embedding by the sqrt of the hidden size\n      seq *= hidden_size ** 0.5\n\n      # Create binary array of size [batch_size, length]\n      # where 1 = padding, 0 = not padding\n      padding = tf.to_float(tf.sequence_mask(seq_len))\n\n      # Set all padding embedding values to 0\n      seq *= tf.expand_dims(padding, -1)\n\n      pos_encoding = model_utils.get_position_encoding(\n          tf.shape(seq)[1], tf.shape(seq)[-1])\n      seq = seq + pos_encoding\n\n    num_filters = self.num_filters\n    seqs = [seq]\n    #batch_size = melt.get_batch_size(seq)\n\n    for layer in range(self.num_layers):\n      if masks is None:\n        seq_ = melt.dropout(seq, self.keep_prob, training)\n      else:\n        seq_ = seq * masks[layer]\n      seq = self.conv1ds[layer](seq_)\n      seqs.append(seq)\n    \n    outputs = tf.concat(seqs[1:], 2)\n    # not do any dropout in convet just dropout outside \n    # if self.is_train and self.keep_prob < 1:\n    #   outputs = tf.nn.dropout(outputs, self.keep_prob)\n\n    # compact for rnn with sate return\n    return melt.rnn.encode_outputs(outputs, seq_len, output_method)\n  "
  },
  {
    "path": "utils/melt/layers/cnn/qanet.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   qanet.py\n#        \\author   chenghuige  \n#          \\date   2018-09-20 10:09:05.119302\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport numpy as np\nimport math\n\nfrom tensorflow.contrib.rnn import MultiRNNCell\nfrom tensorflow.contrib.rnn import RNNCell\n\nfrom tensorflow.python.util import nest\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import init_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import clip_ops\n\nfrom functools import reduce\nfrom operator import mul\n\nkeras = tf.keras\nlayers = tf.keras.layers\nLayer = layers.Layer\n\nimport melt\n\nfrom melt.rnn import encode_outputs, OutputMethod\n\n'''\nSome functions are taken directly from Tensor2Tensor Library:\nhttps://github.com/tensorflow/tensor2tensor/\nand BiDAF repository:\nhttps://github.com/allenai/bi-att-flow\n'''\n\ninitializer = lambda: tf.contrib.layers.variance_scaling_initializer(factor=1.0,\n                                                             mode='FAN_AVG',\n                                                             uniform=True,\n                                                             dtype=tf.float32)\ninitializer_relu = lambda: tf.contrib.layers.variance_scaling_initializer(factor=2.0,\n                                                             mode='FAN_IN',\n                                                             uniform=False,\n                                                             dtype=tf.float32)\nregularizer = tf.contrib.layers.l2_regularizer(scale = 3e-7)\n\ndef glu(x):\n    \"\"\"Gated Linear Units from https://arxiv.org/pdf/1612.08083.pdf\"\"\"\n    x, x_h = tf.split(x, 2, axis = -1)\n    return tf.sigmoid(x) * x_h\n\ndef noam_norm(x, epsilon=1.0, scope=None, reuse=None):\n    \"\"\"One version of layer normalization.\"\"\"\n    with tf.name_scope(scope, default_name=\"noam_norm\", values=[x]):\n        shape = x.get_shape()\n        ndims = len(shape)\n        return tf.nn.l2_normalize(x, ndims - 1, epsilon=epsilon) * tf.sqrt(tf.to_float(shape[-1]))\n\ndef layer_norm_compute_python(x, epsilon, scale, bias):\n    \"\"\"Layer norm raw computation.\"\"\"\n    mean = tf.reduce_mean(x, axis=[-1], keep_dims=True)\n    variance = tf.reduce_mean(tf.square(x - mean), axis=[-1], keep_dims=True)\n    norm_x = (x - mean) * tf.rsqrt(variance + epsilon)\n    return norm_x * scale + bias\n\ndef layer_norm(x, filters=None, epsilon=1e-6, scope=None, reuse=None):\n    \"\"\"Layer normalize the tensor x, averaging over the last dimension.\"\"\"\n    if filters is None:\n        filters = x.get_shape()[-1]\n    with tf.variable_scope(scope, default_name=\"layer_norm\", values=[x], reuse=reuse):\n        scale = tf.get_variable(\n            \"layer_norm_scale\", [filters], regularizer = regularizer, initializer=tf.ones_initializer())\n        bias = tf.get_variable(\n            \"layer_norm_bias\", [filters], regularizer = regularizer, initializer=tf.zeros_initializer())\n        result = layer_norm_compute_python(x, epsilon, scale, bias)\n        return result\n\nnorm_fn = layer_norm#tf.contrib.layers.layer_norm #tf.contrib.layers.layer_norm or noam_norm\n\ndef highway(x, size = None, activation = None,\n            num_layers = 2, scope = \"highway\", dropout = 0.0, reuse = None):\n    with tf.variable_scope(scope, reuse):\n        if size is None:\n            size = x.shape.as_list()[-1]\n        else:\n            x = conv(x, size, name = \"input_projection\", reuse = reuse)\n        for i in range(num_layers):\n            T = conv(x, size, bias = True, activation = tf.sigmoid,\n                     name = \"gate_%d\"%i, reuse = reuse)\n            H = conv(x, size, bias = True, activation = activation,\n                     name = \"activation_%d\"%i, reuse = reuse)\n            H = tf.nn.dropout(H, 1.0 - dropout)\n            x = H * T + x * (1.0 - T)\n        return x\n\ndef layer_dropout(inputs, residual, dropout):\n    pred = tf.random_uniform([]) < dropout\n    return tf.cond(pred, lambda: residual, lambda: tf.nn.dropout(inputs, 1.0 - dropout) + residual)\n\ndef residual_block(inputs, num_blocks, num_layers, kernel_size, mask = None,\n                   num_filters = 128, input_projection = False, num_heads = 8,\n                   seq_len = None, scope = \"res_block\", training = True,\n                   reuse = None, bias = True, dropout = 0.0):\n    with tf.variable_scope(scope, reuse = reuse):\n        if input_projection:\n            inputs = conv(inputs, num_filters, name = \"input_projection\", reuse = reuse)\n        outputs = inputs\n        sublayer = 1\n        total_sublayers = (num_layers + 2) * num_blocks\n        for i in range(num_blocks):\n            outputs = add_timing_signal_1d(outputs)\n            outputs, sublayer = conv_block(outputs, num_layers, kernel_size, num_filters,\n                seq_len = seq_len, scope = \"encoder_block_%d\"%i,reuse = reuse, bias = bias,\n                dropout = dropout, sublayers = (sublayer, total_sublayers))\n            outputs, sublayer = self_attention_block(outputs, num_filters, seq_len, mask = mask, num_heads = num_heads,\n                scope = \"self_attention_layers%d\"%i, reuse = reuse, training = training,\n                bias = bias, dropout = dropout, sublayers = (sublayer, total_sublayers))\n        return outputs\n\ndef conv_block(inputs, num_layers, kernel_size, num_filters,\n               seq_len = None, scope = \"conv_block\", training = True,\n               reuse = None, bias = True, dropout = 0.0, sublayers = (1, 1)):\n    with tf.variable_scope(scope, reuse = reuse):\n        outputs = tf.expand_dims(inputs,2)\n        l, L = sublayers\n        for i in range(num_layers):\n            residual = outputs\n            outputs = norm_fn(outputs, scope = \"layer_norm_%d\"%i, reuse = reuse)\n            if (i) % 2 == 0:\n                outputs = tf.nn.dropout(outputs, 1.0 - dropout)\n            outputs = depthwise_separable_convolution(outputs,\n                kernel_size = (kernel_size, 1), num_filters = num_filters,\n                scope = \"depthwise_conv_layers_%d\"%i, training = training, reuse = reuse)\n            outputs = layer_dropout(outputs, residual, dropout * float(l) / L)\n            l += 1\n        return tf.squeeze(outputs,2), l\n\ndef self_attention_block(inputs, num_filters, seq_len, mask = None, num_heads = 8,\n                         scope = \"self_attention_ffn\", reuse = None, training = True,\n                         bias = True, dropout = 0.0, sublayers = (1, 1)):\n    with tf.variable_scope(scope, reuse = reuse):\n        l, L = sublayers\n        # Self attention\n        outputs = norm_fn(inputs, scope = \"layer_norm_1\", reuse = reuse)\n        outputs = tf.nn.dropout(outputs, 1.0 - dropout)\n        outputs = multihead_attention(outputs, num_filters,\n            num_heads = num_heads, seq_len = seq_len, reuse = reuse,\n            mask = mask, training = training, bias = bias, dropout = dropout)\n        residual = layer_dropout(outputs, inputs, dropout * float(l) / L)\n        l += 1\n        # Feed-forward\n        outputs = norm_fn(residual, scope = \"layer_norm_2\", reuse = reuse)\n        outputs = tf.nn.dropout(outputs, 1.0 - dropout)\n        outputs = conv(outputs, num_filters, True, tf.nn.relu, name = \"FFN_1\", reuse = reuse)\n        outputs = conv(outputs, num_filters, True, None, name = \"FFN_2\", reuse = reuse)\n        outputs = layer_dropout(outputs, residual, dropout * float(l) / L)\n        l += 1\n        return outputs, l\n\ndef multihead_attention(queries, units, num_heads,\n                        memory = None,\n                        seq_len = None,\n                        scope = \"Multi_Head_Attention\",\n                        reuse = None,\n                        mask = None,\n                        training = True,\n                        bias = True,\n                        dropout = 0.0):\n    with tf.variable_scope(scope, reuse = reuse):\n        # Self attention\n        if memory is None:\n            memory = queries\n\n        memory = conv(memory, 2 * units, name = \"memory_projection\", reuse = reuse)\n        query = conv(queries, units, name = \"query_projection\", reuse = reuse)\n        Q = split_last_dimension(query, num_heads)\n        K, V = [split_last_dimension(tensor, num_heads) for tensor in tf.split(memory,2,axis = 2)]\n\n        key_depth_per_head = units // num_heads\n        Q *= key_depth_per_head**-0.5\n        x = dot_product_attention(Q,K,V,\n                                  bias = bias,\n                                  seq_len = seq_len,\n                                  mask = mask,\n                                  training = training,\n                                  scope = \"dot_product_attention\",\n                                  reuse = reuse, dropout = dropout)\n        return combine_last_two_dimensions(tf.transpose(x,[0,2,1,3]))\n\ndef conv(inputs, output_size, bias = None, activation = None, kernel_size = 1, name = \"conv\", reuse = None):\n    with tf.variable_scope(name, reuse = reuse):\n        shapes = inputs.shape.as_list()\n        if len(shapes) > 4:\n            raise NotImplementedError\n        elif len(shapes) == 4:\n            filter_shape = [1,kernel_size,shapes[-1],output_size]\n            bias_shape = [1,1,1,output_size]\n            strides = [1,1,1,1]\n        else:\n            filter_shape = [kernel_size,shapes[-1],output_size]\n            bias_shape = [1,1,output_size]\n            strides = 1\n        conv_func = tf.nn.conv1d if len(shapes) == 3 else tf.nn.conv2d\n        kernel_ = tf.get_variable(\"kernel_\",\n                        filter_shape,\n                        dtype = tf.float32,\n                        regularizer=regularizer,\n                        initializer = initializer_relu() if activation is not None else initializer())\n        outputs = conv_func(inputs, kernel_, strides, \"VALID\")\n        if bias:\n            outputs += tf.get_variable(\"bias_\",\n                        bias_shape,\n                        regularizer=regularizer,\n                        initializer = tf.zeros_initializer())\n        if activation is not None:\n            return activation(outputs)\n        else:\n            return outputs\n\ndef mask_logits(inputs, mask, mask_value = -1e30):\n    mask = tf.cast(mask, tf.float32)\n    return inputs + mask_value * (1 - mask)\n\ndef depthwise_separable_convolution(inputs, kernel_size, num_filters,\n                                    scope = \"depthwise_separable_convolution\",\n                                    bias = True, training = True, reuse = None):\n    with tf.variable_scope(scope, reuse = reuse):\n        shapes = inputs.shape.as_list()\n        depthwise_filter = tf.get_variable(\"depthwise_filter\",\n                                        (kernel_size[0], kernel_size[1], shapes[-1], 1),\n                                        dtype = tf.float32,\n                                        regularizer=regularizer,\n                                        initializer = initializer_relu())\n        pointwise_filter = tf.get_variable(\"pointwise_filter\",\n                                        (1,1,shapes[-1],num_filters),\n                                        dtype = tf.float32,\n                                        regularizer=regularizer,\n                                        initializer = initializer_relu())\n        outputs = tf.nn.separable_conv2d(inputs,\n                                        depthwise_filter,\n                                        pointwise_filter,\n                                        strides = (1,1,1,1),\n                                        padding = \"SAME\")\n        if bias:\n            b = tf.get_variable(\"bias\",\n                    outputs.shape[-1],\n                    regularizer=regularizer,\n                    initializer = tf.zeros_initializer())\n            outputs += b\n        outputs = tf.nn.relu(outputs)\n        return outputs\n\ndef split_last_dimension(x, n):\n    \"\"\"Reshape x so that the last dimension becomes two dimensions.\n    The first of these two dimensions is n.\n    Args:\n    x: a Tensor with shape [..., m]\n    n: an integer.\n    Returns:\n    a Tensor with shape [..., n, m/n]\n    \"\"\"\n    old_shape = x.get_shape().dims\n    last = old_shape[-1]\n    new_shape = old_shape[:-1] + [n] + [last // n if last else None]\n    ret = tf.reshape(x, tf.concat([tf.shape(x)[:-1], [n, -1]], 0))\n    ret.set_shape(new_shape)\n    return tf.transpose(ret,[0,2,1,3])\n\ndef dot_product_attention(q,\n                          k,\n                          v,\n                          bias,\n                          seq_len = None,\n                          mask = None,\n                          training = True,\n                          scope=None,\n                          reuse = None,\n                          dropout = 0.0):\n    \"\"\"dot-product attention.\n    Args:\n    q: a Tensor with shape [batch, heads, length_q, depth_k]\n    k: a Tensor with shape [batch, heads, length_kv, depth_k]\n    v: a Tensor with shape [batch, heads, length_kv, depth_v]\n    bias: bias Tensor (see attention_bias())\n    training: a bool of training\n    scope: an optional string\n    Returns:\n    A Tensor.\n    \"\"\"\n    with tf.variable_scope(scope, default_name=\"dot_product_attention\", reuse = reuse):\n        # [batch, num_heads, query_length, memory_length]\n        logits = tf.matmul(q, k, transpose_b=True)\n        if bias:\n            b = tf.get_variable(\"bias\",\n                    logits.shape[-1],\n                    regularizer=regularizer,\n                    initializer = tf.zeros_initializer())\n            logits += b\n        if mask is not None:\n            mask = tf.expand_dims(mask, 1)\n            mask = tf.expand_dims(mask, 1)\n            logits = mask_logits(logits, mask)\n        weights = tf.nn.softmax(logits, name=\"attention_weights\")\n        # dropping out the attention links for each of the heads\n        weights = tf.nn.dropout(weights, 1.0 - dropout)\n        return tf.matmul(weights, v)\n\ndef combine_last_two_dimensions(x):\n    \"\"\"Reshape x so that the last two dimension become one.\n    Args:\n    x: a Tensor with shape [..., a, b]\n    Returns:\n    a Tensor with shape [..., ab]\n    \"\"\"\n    old_shape = x.get_shape().dims\n    a, b = old_shape[-2:]\n    new_shape = old_shape[:-2] + [a * b if a and b else None]\n    ret = tf.reshape(x, tf.concat([tf.shape(x)[:-2], [-1]], 0))\n    ret.set_shape(new_shape)\n    return ret\n\ndef add_timing_signal_1d(x, min_timescale=1.0, max_timescale=1.0e4):\n    \"\"\"Adds a bunch of sinusoids of different frequencies to a Tensor.\n    Each channel of the input Tensor is incremented by a sinusoid of a different\n    frequency and phase.\n    This allows attention to learn to use absolute and relative positions.\n    Timing signals should be added to some precursors of both the query and the\n    memory inputs to attention.\n    The use of relative position is possible because sin(x+y) and cos(x+y) can be\n    experessed in terms of y, sin(x) and cos(x).\n    In particular, we use a geometric sequence of timescales starting with\n    min_timescale and ending with max_timescale.  The number of different\n    timescales is equal to channels / 2. For each timescale, we\n    generate the two sinusoidal signals sin(timestep/timescale) and\n    cos(timestep/timescale).  All of these sinusoids are concatenated in\n    the channels dimension.\n    Args:\n    x: a Tensor with shape [batch, length, channels]\n    min_timescale: a float\n    max_timescale: a float\n    Returns:\n    a Tensor the same shape as x.\n    \"\"\"\n    length = tf.shape(x)[1]\n    channels = tf.shape(x)[2]\n    signal = get_timing_signal_1d(length, channels, min_timescale, max_timescale)\n    return x + signal\n\ndef get_timing_signal_1d(length, channels, min_timescale=1.0, max_timescale=1.0e4):\n    \"\"\"Gets a bunch of sinusoids of different frequencies.\n    Each channel of the input Tensor is incremented by a sinusoid of a different\n    frequency and phase.\n    This allows attention to learn to use absolute and relative positions.\n    Timing signals should be added to some precursors of both the query and the\n    memory inputs to attention.\n    The use of relative position is possible because sin(x+y) and cos(x+y) can be\n    experessed in terms of y, sin(x) and cos(x).\n    In particular, we use a geometric sequence of timescales starting with\n    min_timescale and ending with max_timescale.  The number of different\n    timescales is equal to channels / 2. For each timescale, we\n    generate the two sinusoidal signals sin(timestep/timescale) and\n    cos(timestep/timescale).  All of these sinusoids are concatenated in\n    the channels dimension.\n    Args:\n    length: scalar, length of timing signal sequence.\n    channels: scalar, size of timing embeddings to create. The number of\n        different timescales is equal to channels / 2.\n    min_timescale: a float\n    max_timescale: a float\n    Returns:\n    a Tensor of timing signals [1, length, channels]\n    \"\"\"\n    position = tf.to_float(tf.range(length))\n    num_timescales = channels // 2\n    log_timescale_increment = (\n        math.log(float(max_timescale) / float(min_timescale)) /\n            (tf.to_float(num_timescales) - 1))\n    inv_timescales = min_timescale * tf.exp(\n        tf.to_float(tf.range(num_timescales)) * -log_timescale_increment)\n    scaled_time = tf.expand_dims(position, 1) * tf.expand_dims(inv_timescales, 0)\n    signal = tf.concat([tf.sin(scaled_time), tf.cos(scaled_time)], axis=1)\n    signal = tf.pad(signal, [[0, 0], [0, tf.mod(channels, 2)]])\n    signal = tf.reshape(signal, [1, length, channels])\n    return signal\n\ndef ndim(x):\n    \"\"\"Copied from keras==2.0.6\n    Returns the number of axes in a tensor, as an integer.\n\n    # Arguments\n        x: Tensor or variable.\n\n    # Returns\n        Integer (scalar), number of axes.\n\n    # Examples\n    ```python\n        >>> from keras import backend as K\n        >>> inputs = K.placeholder(shape=(2, 4, 5))\n        >>> val = np.array([[1, 2], [3, 4]])\n        >>> kvar = K.variable(value=val)\n        >>> K.ndim(inputs)\n        3\n        >>> K.ndim(kvar)\n        2\n    ```\n    \"\"\"\n    dims = x.get_shape()._dims\n    if dims is not None:\n        return len(dims)\n    return None\n\ndef dot(x, y):\n    \"\"\"Modified from keras==2.0.6\n    Multiplies 2 tensors (and/or variables) and returns a *tensor*.\n\n    When attempting to multiply a nD tensor\n    with a nD tensor, it reproduces the Theano behavior.\n    (e.g. `(2, 3) * (4, 3, 5) -> (2, 4, 5)`)\n\n    # Arguments\n        x: Tensor or variable.\n        y: Tensor or variable.\n\n    # Returns\n        A tensor, dot product of `x` and `y`.\n    \"\"\"\n    if ndim(x) is not None and (ndim(x) > 2 or ndim(y) > 2):\n        x_shape = []\n        for i, s in zip(x.get_shape().as_list(), tf.unstack(tf.shape(x))):\n            if i is not None:\n                x_shape.append(i)\n            else:\n                x_shape.append(s)\n        x_shape = tuple(x_shape)\n        y_shape = []\n        for i, s in zip(y.get_shape().as_list(), tf.unstack(tf.shape(y))):\n            if i is not None:\n                y_shape.append(i)\n            else:\n                y_shape.append(s)\n        y_shape = tuple(y_shape)\n        y_permute_dim = list(range(ndim(y)))\n        y_permute_dim = [y_permute_dim.pop(-2)] + y_permute_dim\n        xt = tf.reshape(x, [-1, x_shape[-1]])\n        yt = tf.reshape(tf.transpose(y, perm=y_permute_dim), [y_shape[-2], -1])\n        return tf.reshape(tf.matmul(xt, yt),\n                          x_shape[:-1] + y_shape[:-2] + y_shape[-1:])\n    if isinstance(x, tf.SparseTensor):\n        out = tf.sparse_tensor_dense_matmul(x, y)\n    else:\n        out = tf.matmul(x, y)\n    return out\n\ndef batch_dot(x, y, axes=None):\n    \"\"\"Copy from keras==2.0.6\n    Batchwise dot product.\n\n    `batch_dot` is used to compute dot product of `x` and `y` when\n    `x` and `y` are data in batch, i.e. in a shape of\n    `(batch_size, :)`.\n    `batch_dot` results in a tensor or variable with less dimensions\n    than the input. If the number of dimensions is reduced to 1,\n    we use `expand_dims` to make sure that ndim is at least 2.\n\n    # Arguments\n        x: Keras tensor or variable with `ndim >= 2`.\n        y: Keras tensor or variable with `ndim >= 2`.\n        axes: list of (or single) int with target dimensions.\n            The lengths of `axes[0]` and `axes[1]` should be the same.\n\n    # Returns\n        A tensor with shape equal to the concatenation of `x`'s shape\n        (less the dimension that was summed over) and `y`'s shape\n        (less the batch dimension and the dimension that was summed over).\n        If the final rank is 1, we reshape it to `(batch_size, 1)`.\n    \"\"\"\n    if isinstance(axes, int):\n        axes = (axes, axes)\n    x_ndim = ndim(x)\n    y_ndim = ndim(y)\n    if x_ndim > y_ndim:\n        diff = x_ndim - y_ndim\n        y = tf.reshape(y, tf.concat([tf.shape(y), [1] * (diff)], axis=0))\n    elif y_ndim > x_ndim:\n        diff = y_ndim - x_ndim\n        x = tf.reshape(x, tf.concat([tf.shape(x), [1] * (diff)], axis=0))\n    else:\n        diff = 0\n    if ndim(x) == 2 and ndim(y) == 2:\n        if axes[0] == axes[1]:\n            out = tf.reduce_sum(tf.multiply(x, y), axes[0])\n        else:\n            out = tf.reduce_sum(tf.multiply(tf.transpose(x, [1, 0]), y), axes[1])\n    else:\n        if axes is not None:\n            adj_x = None if axes[0] == ndim(x) - 1 else True\n            adj_y = True if axes[1] == ndim(y) - 1 else None\n        else:\n            adj_x = None\n            adj_y = None\n        out = tf.matmul(x, y, adjoint_a=adj_x, adjoint_b=adj_y)\n    if diff:\n        if x_ndim > y_ndim:\n            idx = x_ndim + y_ndim - 3\n        else:\n            idx = x_ndim - 1\n        out = tf.squeeze(out, list(range(idx, idx + diff)))\n    if ndim(out) == 1:\n        out = tf.expand_dims(out, 1)\n    return out\n\ndef optimized_trilinear_for_attention(args, c_maxlen, q_maxlen, input_keep_prob=1.0,\n    scope='efficient_trilinear',\n    bias_initializer=tf.zeros_initializer(),\n    kernel_initializer=initializer()):\n    assert len(args) == 2, \"just use for computing attention with two input\"\n    arg0_shape = args[0].get_shape().as_list()\n    arg1_shape = args[1].get_shape().as_list()\n    if len(arg0_shape) != 3 or len(arg1_shape) != 3:\n        raise ValueError(\"`args` must be 3 dims (batch_size, len, dimension)\")\n    if arg0_shape[2] != arg1_shape[2]:\n        raise ValueError(\"the last dimension of `args` must equal\")\n    arg_size = arg0_shape[2]\n    dtype = args[0].dtype\n    droped_args = [tf.nn.dropout(arg, input_keep_prob) for arg in args]\n    with tf.variable_scope(scope):\n        weights4arg0 = tf.get_variable(\n            \"linear_kernel4arg0\", [arg_size, 1],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=kernel_initializer)\n        weights4arg1 = tf.get_variable(\n            \"linear_kernel4arg1\", [arg_size, 1],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=kernel_initializer)\n        weights4mlu = tf.get_variable(\n            \"linear_kernel4mul\", [1, 1, arg_size],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=kernel_initializer)\n        biases = tf.get_variable(\n            \"linear_bias\", [1],\n            dtype=dtype,\n            regularizer=regularizer,\n            initializer=bias_initializer)\n        subres0 = tf.tile(dot(droped_args[0], weights4arg0), [1, 1, q_maxlen])\n        subres1 = tf.tile(tf.transpose(dot(droped_args[1], weights4arg1), perm=(0, 2, 1)), [1, c_maxlen, 1])\n        subres2 = batch_dot(droped_args[0] * weights4mlu, tf.transpose(droped_args[1], perm=(0, 2, 1)))\n        res = subres0 + subres1 + subres2\n        nn_ops.bias_add(res, biases)\n        return res\n\ndef trilinear(args,\n            output_size = 1,\n            bias = True,\n            squeeze=False,\n            wd=0.0,\n            input_keep_prob= 1.0,\n            scope = \"trilinear\"):\n    with tf.variable_scope(scope):\n        flat_args = [flatten(arg, 1) for arg in args]\n        flat_args = [tf.nn.dropout(arg, input_keep_prob) for arg in flat_args]\n        flat_out = _linear(flat_args, output_size, bias, scope=scope)\n        out = reconstruct(flat_out, args[0], 1)\n        return tf.squeeze(out, -1)\n\ndef flatten(tensor, keep):\n    fixed_shape = tensor.get_shape().as_list()\n    start = len(fixed_shape) - keep\n    left = reduce(mul, [fixed_shape[i] or tf.shape(tensor)[i] for i in range(start)])\n    out_shape = [left] + [fixed_shape[i] or tf.shape(tensor)[i] for i in range(start, len(fixed_shape))]\n    flat = tf.reshape(tensor, out_shape)\n    return flat\n\ndef reconstruct(tensor, ref, keep):\n    ref_shape = ref.get_shape().as_list()\n    tensor_shape = tensor.get_shape().as_list()\n    ref_stop = len(ref_shape) - keep\n    tensor_start = len(tensor_shape) - keep\n    pre_shape = [ref_shape[i] or tf.shape(ref)[i] for i in range(ref_stop)]\n    keep_shape = [tensor_shape[i] or tf.shape(tensor)[i] for i in range(tensor_start, len(tensor_shape))]\n    # pre_shape = [tf.shape(ref)[i] for i in range(len(ref.get_shape().as_list()[:-keep]))]\n    # keep_shape = tensor.get_shape().as_list()[-keep:]\n    target_shape = pre_shape + keep_shape\n    out = tf.reshape(tensor, target_shape)\n    return out\n\ndef _linear(args,\n            output_size,\n            bias,\n            bias_initializer=tf.zeros_initializer(),\n            scope = None,\n            kernel_initializer=initializer(),\n            reuse = None):\n  \"\"\"Linear map: sum_i(args[i] * W[i]), where W[i] is a variable.\n  Args:\n    args: a 2D Tensor or a list of 2D, batch x n, Tensors.\n    output_size: int, second dimension of W[i].\n    bias: boolean, whether to add a bias term or not.\n    bias_initializer: starting value to initialize the bias\n      (default is all zeros).\n    kernel_initializer: starting value to initialize the weight.\n  Returns:\n    A 2D Tensor with shape [batch x output_size] equal to\n    sum_i(args[i] * W[i]), where W[i]s are newly created matrices.\n  Raises:\n    ValueError: if some of the arguments has unspecified or wrong shape.\n  \"\"\"\n  if args is None or (nest.is_sequence(args) and not args):\n    raise ValueError(\"`args` must be specified\")\n  if not nest.is_sequence(args):\n    args = [args]\n  # Calculate the total size of arguments on dimension 1.\n  total_arg_size = 0\n  shapes = [a.get_shape() for a in args]\n  for shape in shapes:\n    if shape.ndims != 2:\n      raise ValueError(\"linear is expecting 2D arguments: %s\" % shapes)\n    if shape[1].value is None:\n      raise ValueError(\"linear expects shape[1] to be provided for shape %s, \"\n                       \"but saw %s\" % (shape, shape[1]))\n    else:\n      total_arg_size += shape[1].value\n\n  dtype = [a.dtype for a in args][0]\n\n  # Now the computation.\n  with tf.variable_scope(scope, reuse = reuse) as outer_scope:\n    weights = tf.get_variable(\n        \"linear_kernel\", [total_arg_size, output_size],\n        dtype=dtype,\n        regularizer=regularizer,\n        initializer=kernel_initializer)\n    if len(args) == 1:\n      res = math_ops.matmul(args[0], weights)\n    else:\n      res = math_ops.matmul(array_ops.concat(args, 1), weights)\n    if not bias:\n      return res\n    with tf.variable_scope(outer_scope) as inner_scope:\n      inner_scope.set_partitioner(None)\n      biases = tf.get_variable(\n          \"linear_bias\", [output_size],\n          dtype=dtype,\n          regularizer=regularizer,\n          initializer=bias_initializer)\n    return nn_ops.bias_add(res, biases)\n\ndef total_params():\n    total_parameters = 0\n    for variable in tf.trainable_variables():\n        shape = variable.get_shape()\n        variable_parametes = 1\n        for dim in shape:\n            variable_parametes *= dim.value\n        total_parameters += variable_parametes\n    print(\"Total number of trainable parameters: {}\".format(total_parameters))\n\n\n# TODO FIXME rewrite all qanet code using tf.keras...\nclass QANet(keras.Model):\n  def __init__(self, \n               num_blocks=1, \n               num_layers=4,\n               kernel_size=3,\n               num_filters=128, \n               num_heads=8,\n               input_projection=False, \n               bias=False,\n               keep_prob=0.7,\n               **kwargs):\n      super(QANet, self).__init__(**kwargs)\n      self.kernel_size = kernel_size\n      self.num_blocks = num_blocks\n      self.num_filters = num_filters\n      self.num_layers = num_layers\n      self.num_heads = num_heads\n      self.input_projection = input_projection\n\n      self.bias = bias\n      self.dropout = 1. - keep_prob\n\n      assert self.num_filters\n\n  # seq_len for rnn compact \n  def call(self, inputs, seq_len=None, masks=None, output_method='all', training=False):\n    with tf.variable_scope('qanet', reuse=tf.AUTO_REUSE):\n      dropout = self.dropout if training else 0.\n      inputs = highway(inputs, size=self.num_filters, scope=\"highway\", dropout=dropout, reuse=tf.AUTO_REUSE)\n      if self.input_projection:\n        inputs = conv(inputs, self.num_filters, name = \"input_projection\", reuse=tf.AUTO_REUSE)\n      outputs = inputs\n      sublayer = 1\n      total_sublayers = (self.num_layers + 2) * self.num_blocks\n      for i in range(self.num_blocks):\n        outputs = add_timing_signal_1d(outputs)\n        outputs, sublayer = conv_block(outputs, self.num_layers, self.kernel_size, self.num_filters,\n              seq_len=seq_len, scope=\"encoder_block_%d\"%i, reuse=tf.AUTO_REUSE, bias=self.bias,\n              dropout=dropout, sublayers = (sublayer, total_sublayers))\n        mask = tf.sequence_mask(seq_len)\n        outputs, sublayer = self_attention_block(outputs, self.num_filters, seq_len, mask=mask, num_heads=self.num_heads,\n            scope=\"self_attention_layers%d\"%i, reuse=tf.AUTO_REUSE, training=training,\n            bias=self.bias, dropout=dropout, sublayers=(sublayer, total_sublayers))\n\n      # compact for rnn with sate return\n      return melt.rnn.encode_outputs(outputs, seq_len, output_method)\n"
  },
  {
    "path": "utils/melt/layers/layers.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   layers.py\n#        \\author   chenghuige  \n#          \\date   2016-08-19 23:22:44.032101\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n#since not from melt.layers.layers import * this is safe\nfrom tensorflow.contrib.layers.python.layers import utils\nimport tensorflow.contrib.slim as slim\n\nimport functools\nimport six\n\nfrom tensorflow.contrib.framework.python.ops import add_arg_scope\nfrom tensorflow.contrib.framework.python.ops import variables\nfrom tensorflow.contrib.layers.python.layers import initializers\nfrom tensorflow.contrib.layers.python.layers import utils\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import sparse_tensor\nfrom tensorflow.python.layers import convolutional as convolutional_layers\nfrom tensorflow.python.layers import core as core_layers\nfrom tensorflow.python.layers import  normalization as normalization_layers\nfrom tensorflow.python.layers import pooling as pooling_layers\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import check_ops\nfrom tensorflow.python.ops import init_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import nn\nfrom tensorflow.python.ops import sparse_ops\nfrom tensorflow.python.ops import standard_ops\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.ops import variables as tf_variables\nfrom tensorflow.python.training import moving_averages\n\nimport melt\n\nlogging = melt.logging\n\nfrom melt import dropout, softmax_mask\nfrom melt.rnn import OutputMethod, encode_outputs\n\n# TODO -------------------------\n# just use below really layers!\n# TODO batch_dim to batch_axis\n\nkeras = tf.keras\nlayers = tf.keras.layers\nLayer = layers.Layer\n\nclass FeedForwardNetwork(keras.Model):\n  def __init__(self, hidden_size, output_size, keep_prob=1.):\n    super(FeedForwardNetwork, self).__init__()\n    self.keep_prob = keep_prob\n    self.linear1 = layers.Dense(hidden_size, activation=tf.nn.relu)\n    self.linear2 = layers.Dense(output_size)\n\n  def call(self, x, training=False):\n    x_proj = dropout(self.linear1(x), keep_prob=self.keep_prob, training=training)\n    x_proj = self.linear2(x_proj)\n    return x_proj\n            \n\nclass MaxPooling(Layer):\n  def call(self, outputs, sequence_length=None, axis=1, reduce_func=tf.reduce_max):\n    return melt.max_pooling(outputs, sequence_length, axis, reduce_func)\n\nclass SumPooling(Layer):\n  def call(self, outputs, sequence_length=None, axis=1, reduce_func=tf.reduce_sum):\n    return melt.sum_pooling(outputs, sequence_length, axis)\n\nclass MaxPooling2(Layer):\n  def call(self, outputs, sequence_length, sequence_length2, axis=1, reduce_func=tf.reduce_max):\n    return melt.max_pooling2(outputs, sequence_length, sequence_length2, axis, reduce_func)\n\nclass MeanPooling(Layer):\n  def call(self, outputs, sequence_length=None, axis=1):\n    return melt.mean_pooling(outputs, sequence_length, axis)\n\nclass FirstPooling(Layer):\n  def call(self, outputs, sequence_length=None, axis=1):\n    return outputs[:, 0, :]\n\nclass LastPooling(Layer):\n  def call(self, outputs, sequence_length=None, axis=1):\n    return melt.dynamic_last_relevant(outputs, sequence_length)\n\nclass HierEncode(Layer):\n  def call(self, outputs, sequence_length=None, window_size=3, axis=1):\n    return melt.hier_encode(outputs, sequence_length, window_size=3, axis=1)\n\nclass TopKPooling(Layer):\n  def __init__(self,  \n               top_k,\n               **kwargs):\n    super(TopKPooling, self).__init__(**kwargs)\n    self.top_k = top_k\n  \n  def call(self, outputs, sequence_length=None, axis=1):\n    x = melt.top_k_pooling(outputs, self.top_k, sequence_length, axis).values  \n    return tf.reshape(x, [-1, melt.get_shape(outputs, -1) * self.top_k])\n\nclass TopKMeanPooling(Layer):\n  def __init__(self,  \n               top_k,\n               **kwargs):\n    super(TopKMeanPooling, self).__init__(**kwargs)\n    assert top_k > 1\n    self.top_k = top_k\n  \n  def call(self, outputs, sequence_length=None, axis=1):\n    x = melt.top_k_pooling(outputs, self.top_k, sequence_length, axis).values  \n    x = tf.reduce_mean(x, -1)\n    return x\n\n# not good..\nclass TopKWeightedMeanPooling(Layer):\n  def __init__(self,  \n               top_k,\n               ratio=0.7,\n               **kwargs):\n    super(TopKWeightedMeanPooling, self).__init__(**kwargs)\n    assert top_k > 1\n    self.top_k = top_k\n    self.w = [1.] * self.top_k\n    for i in range(top_k - 1):\n      self.w[i + 1] = self.w[i]\n      self.w[i] *= ratio\n      self.w[i + 1] *= (1 - ratio)\n    self.w = tf.constant(self.w)\n  \n  def call(self, outputs, sequence_length=None, axis=1):\n    x = melt.top_k_pooling(outputs, self.top_k, sequence_length, axis).values  \n    x = tf.reduce_sum(x * self.w, -1)\n    return x\n\nclass TopKAttentionPooling(keras.Model):\n  def __init__(self,  \n               top_k,\n               **kwargs):\n    super(TopKAttentionPooling, self).__init__(**kwargs)\n    assert top_k > 1\n    self.top_k = top_k\n    self.att = AttentionPooling()\n\n  def call(self, outputs, sequence_length=None, axis=1):\n    x = melt.top_k_pooling(outputs, self.top_k, sequence_length, axis).values  \n    x = tf.transpose(x, [0, 2, 1])\n    x = self.att(x)\n    return x\n\n# TODO check which is better tf.nn.tanh or tf.nn.relu, by paper default should be tanh\n# TODO check your topk,att cases before use relu.. seems tanh worse then relu, almost eqaul but relu a bit better and stable\nclass AttentionPooling(keras.Model):\n  def __init__(self,  \n               hidden_size=128,\n               #activation=tf.nn.tanh,  \n               activation=tf.nn.relu,\n               **kwargs):\n    super(AttentionPooling, self).__init__(**kwargs)\n    self.activation = activation\n    if hidden_size is not None:\n      self.dense = layers.Dense(hidden_size, activation=activation)\n    else:\n      self.dense = None\n    self.logits = layers.Dense(1)\n    self.step = -1\n\n  def call(self, outputs, sequence_length=None, axis=1):\n    self.step += 1\n    if self.step == 0 and self.dense is None:\n      self.dense = layers.Dense(melt.get_shape(outputs, -1), activation=self.activation)\n    x = self.dense(outputs)\n    logits = self.logits(x)\n    alphas = tf.nn.softmax(logits) if sequence_length is None else  melt.masked_softmax(logits, sequence_length)\n    encoding = tf.reduce_sum(outputs * alphas, 1)\n    # [batch_size, sequence_length, 1] -> [batch_size, sequence_length]\n    self.alphas = tf.squeeze(alphas, -1)    \n    #self.alphas = alphas\n    tf.add_to_collection('self_attention', self.alphas) \n    return encoding\n\nclass LinearAttentionPooling(keras.Model):\n  def __init__(self,  \n               **kwargs):\n    super(LinearAttentionPooling, self).__init__(**kwargs)\n    self.logits = layers.Dense(1)\n\n  def call(self, x, sequence_length=None, axis=1):\n    logits = self.logits(x)\n    alphas = tf.nn.softmax(logits) if sequence_length is None else  melt.masked_softmax(logits, sequence_length)\n    encoding = tf.reduce_sum(x * alphas, 1)\n    # [batch_size, sequence_length, 1] -> [batch_size, sequence_length]\n    self.alphas = tf.squeeze(alphas, -1)    \n    #self.alphas = alphas\n    tf.add_to_collection('self_attention', self.alphas) \n    return encoding\n\nclass NonLinearAttentionPooling(keras.Model):\n  def __init__(self,  \n               hidden_size=128,\n               **kwargs):\n    super(NonLinearAttentionPooling, self).__init__(**kwargs)\n    self.FFN = FeedForwardNetwork(hidden_size, 1)\n\n  def call(self, x, sequence_length=None, axis=1):\n    logits = self.FFN(x)\n    alphas = tf.nn.softmax(logits) if sequence_length is None else  melt.masked_softmax(logits, sequence_length)\n    encoding = tf.reduce_sum(x * alphas, 1)\n    # [batch_size, sequence_length, 1] -> [batch_size, sequence_length]\n    self.alphas = tf.squeeze(alphas, -1)    \n    #self.alphas = alphas\n    tf.add_to_collection('self_attention', self.alphas) \n    return encoding\n\nclass Pooling(keras.Model):\n  def __init__(self,  \n               name,\n               top_k=2,\n               #att_activation=tf.nn.tanh,\n               att_activation=tf.nn.relu,\n               att_hidden=128,\n               **kwargs):\n    super(Pooling, self).__init__(**kwargs)\n\n    self.top_k = top_k\n\n    self.poolings = []\n    def get_pooling(name):\n      if name == 'max':\n        return MaxPooling()\n      if name == 'sum':\n        return SumPooling()\n      elif name == 'mean' or name == 'avg':\n        return MeanPooling()\n      elif name == 'attention' or name == 'att':\n        return AttentionPooling(att_hidden, activation=att_activation)\n      elif name == 'attention2' or name == 'att2':\n        return AttentionPooling(hidden_size=None, activation=att_activation)\n      elif name == 'linear_attention' or name == 'linear_att' or name == 'latt':\n        return LinearAttentionPooling()\n      elif name == 'nonlinear_attention' or name == 'nonlinear_att' or name == 'natt':\n        return NonLinearAttentionPooling()\n      elif name == 'topk' or name == 'top_k':\n        return TopKPooling(top_k)\n      elif name == 'topk_mean':\n        return TopKMeanPooling(top_k)\n      elif name == 'topk_weighted_mean':\n        return TopKWeightedMeanPooling(top_k)\n      elif name == 'topk_att':\n        return TopKAttentionPooling(top_k)\n      elif name =='first':\n        return FirstPooling()\n      elif name == 'last':\n        return LastPooling()\n      else:\n        raise ValueError('Unsupport pooling now:%s' % name)\n\n    self.names = name.split(',')\n    for name in self.names:\n      self.poolings.append(get_pooling(name))\n    \n    logging.info('poolings:', self.poolings)\n  \n  def call(self, outputs, sequence_length=None, axis=1, calc_word_scores=False):\n    results = []\n    self.word_scores = []\n    for i, pooling in enumerate(self.poolings):\n      results.append(pooling(outputs, sequence_length, axis))\n      if calc_word_scores:\n        self.word_scores.append(melt.get_words_importance(outputs, sequence_length, top_k=self.top_k, method=self.names[i]))\n    \n    return tf.concat(results, -1)\n\nclass DynamicDense(keras.Model):\n  def __init__(self,  \n               ratio,\n               activation=None,\n               use_bias=True,\n               **kwargs):\n    super(DynamicDense, self).__init__(**kwargs)\n    self.ratio = ratio  \n    self.activation = activation\n    self.use_bais = use_bias\n\n    self.step = -1\n\n  def call(self, x):\n    self.step += 1\n    if self.step == 0:\n      self.dense = layers.Dense(melt.get_shape(x, -1) * self.ratio, self.activation, self.use_bais)\n    return self.dense(x)\n\nclass Embedding(keras.layers.Layer):\n  def __init__(self, height, width, name='init_fw'):\n    super(Embedding, self).__init__()\n    initializer = 'uniform'\n    self.embedding = self.add_variable(\n        \"embedding_kernel\",\n        shape=[height, width],\n        dtype=tf.float32,\n        initializer=initializer,\n        trainable=True)\n\n  def call(self, x=None):\n    if x is not None:\n      return tf.nn.embedding_lookup(self.embedding, x)\n    else:\n      return self.embedding\n\nclass Mlp(Layer):\n  def __init__(self,  \n               dims,\n               activation=None,\n               drop_rate=None,\n               drop_indexes=None,\n               **kwargs):\n    super(Mlp, self).__init__(**kwargs)\n    self.denses = [None] * len(dims)\n    self.drops = [None] * len(dims)\n\n    for i, dim in enumerate(dims):\n      self.denses[i] = layers.Dense(dim, activation=activation)\n      if drop_rate and (not drop_indexes or i in drop_indexes):\n        self.drops[i] = layers.Dropout(drop_rate)\n  \n  def call(self, x, training=False):\n    for i in range(len(self.denses)):\n      x = self.denses[i](x)\n      if self.drops[i] is not None:\n        x = self.drops[i](x, training=training)\n    return x\n\nclass Dropout(keras.layers.Layer):\n  def __init__(self, rate, noise_shape=None, seed=None, **kwargs):\n    super(Dropout).__init__(self, **kwargs)\n    self.rate = rate \n    self.noise_shape = noise_shape\n    self.seed = seed\n  \n  def call(self, x, training=False):\n    if not training or self.rate <= 0.:\n      return x\n    else:\n      scale = 1.\n      shape = tf.shape(x)\n      if mode == 'embedding':\n        noise_shape = [shape[0], 1]\n        scale = 1 - self.rate\n      elif mode == 'recurrent' and len(x.get_shape().as_list()) == 3:\n        noise_shape = [shape[0], 1, shape[-1]] \n      return tf.nn.dropout(x, 1 - self.rate, noise_shape=noise_shape) * scale\n\n\nclass Gate(keras.Model):\n  def __init__(self,\n               keep_prob=1.0,\n               **kwargs):\n    super(Gate, self).__init__(**kwargs)\n    self.keep_prob = keep_prob\n    self.step = -1\n\n  def call(self, x, y, training=False):\n    self.step += 1\n    #with tf.variable_scope(self.scope):\n    res = tf.concat([x, y], axis=2)\n    dim = melt.get_shape(res, -1)\n    d_res = dropout(res, keep_prob=self.keep_prob, training=training)\n    if self.step == 0:\n      self.dense = layers.Dense(dim, use_bias=False, activation=tf.nn.sigmoid)\n    gate = self.dense(d_res)\n    return res * gate\n\nclass SemanticFusion(keras.Model):\n  def __init__(self,\n               keep_prob=1.0,\n               **kwargs):\n    super(SemanticFusion, self).__init__(**kwargs)\n    self.keep_prob = keep_prob\n    self.step = -1\n\n  def call(self, x, fusions, training=False):\n    self.step += 1\n    assert len(fusions) > 0\n    vectors = tf.concat([x] + fusions, axis=-1) # size = [batch_size, ..., input_dim * (len(fusion_vectors) + 1)]\n    dim = melt.get_shape(x, -1)\n    dv = dropout(vectors, keep_prob=self.keep_prob, training=training)\n    if self.step == 0:\n      self.composition_dense = layers.Dense(dim, use_bias=True, activation=tf.nn.tanh, name='compostion_dense')\n      self.gate_dense = layers.Dense(dim, use_bias=True, activation=tf.nn.sigmoid, name='gate_dense')\n    r = self.composition_dense(dv)\n    g = self.gate_dense(dv)\n    return g * r + (1 - g) * x    \n\nclass SemanticFusionCombine(keras.Model):\n  def __init__(self,\n                keep_prob=1.0,\n                **kwargs):\n      super(SemanticFusionCombine, self).__init__(**kwargs)\n      self.keep_prob = keep_prob\n      self.sfu = SemanticFusion(keep_prob=keep_prob)\n      self.step = -1\n\n  def call(self, x, y, training=False):\n    self.step += 1\n    if melt.get_shape(x, -1) != melt.get_shape(y, -1):\n      if self.step == 0:\n        self.dense = layers.Dense(melt.get_shape(x, -1), activation=None, name='sfu_dense')\n      y = self.dense(y)\n    return self.sfu(x, [y, x * y, x - y], training=training)\n  \n# TODO may be need input_keep_prob and output_keep_prob(combiner dropout)\n# TODO change keep_prob to use dropout\n# https://github.com/HKUST-KnowComp/R-Net/blob/master/func.py\nclass DotAttention(keras.Model):\n  def __init__(self,\n               hidden,\n               keep_prob=1.0,\n               combiner='gate',\n               **kwargs):\n    super(DotAttention, self).__init__(**kwargs)\n    self.hidden = hidden\n    self.keep_prob = keep_prob\n    self.combiner = combiner\n\n    self.inputs_dense = layers.Dense(hidden, use_bias=False, activation=tf.nn.relu, name='inputs_dense')\n    self.memory_dense = layers.Dense(hidden, use_bias=False, activation=tf.nn.relu, name='memory_dense')\n\n    if combiner == 'gate':\n      self.combine = Gate(keep_prob=keep_prob)\n    elif combiner == 'sfu':\n      self.combine = SemanticFusionCombine(keep_prob=keep_prob)\n    elif combiner == None:\n      self.combine = None\n    else:\n      raise ValueError(combiner)\n\n  def call(self, inputs, memory, mask, self_match=False, training=False):\n    combiner = self.combiner\n    # DotAttention already convert to dot_attention\n    #with tf.variable_scope(self.scope):\n    # TODO... here has some problem might for self match dot attention as same inputs with different dropout...Try self_match == True and verify..\n    # NOTICE self_match == False following HKUST rnet\n    d_inputs = dropout(inputs, keep_prob=self.keep_prob, training=training)\n    if not self_match:\n      d_memory = dropout(memory, keep_prob=self.keep_prob, training=training)\n    else:\n      d_memory = d_inputs\n    JX = tf.shape(inputs)[1]\n    \n    # TODO remove scope ?\n    with tf.variable_scope(\"attention\"):\n      inputs_ = self.inputs_dense(d_inputs)\n      if not self_match:\n        memory_ = self.memory_dense(d_memory)\n      else:\n        memory_ = inputs_\n\n      scores = tf.matmul(inputs_, tf.transpose(memory_, [0, 2, 1])) / (self.hidden ** 0.5)\n      \n      if mask is not None:\n        mask = tf.tile(tf.expand_dims(mask, axis=1), [1, JX, 1])\n        #print(inputs_.shape, memory_.shape, weights.shape, mask.shape)\n        # (32, 318, 100) (32, 26, 100) (32, 318, 26) (32, 318, 26)\n        scores = softmax_mask(scores, mask)\n      \n      alpha = tf.nn.softmax(scores)\n      self.alpha = alpha\n      # logits (32, 326, 326)  memory(32, 326, 200)\n      outputs = tf.matmul(alpha, memory)\n    \n    if self.combine is not None:\n      return self.combine(inputs, outputs, training=training)\n    else:\n      return outputs\n\n# https://arxiv.org/pdf/1611.01603.pdf\n# but worse result then rnet only cq att TODO FIXME bug?\nclass BiDAFAttention(keras.Model):\n  def __init__(self,\n               hidden,\n               keep_prob=1.0,\n               combiner='gate',\n               **kwargs):\n    super(BiDAFAttention, self).__init__(**kwargs)\n    self.hidden = hidden\n    self.keep_prob = keep_prob\n    self.combiner = combiner\n\n    self.inputs_dense = layers.Dense(hidden, use_bias=False, activation=tf.nn.relu, name='inputs_dense')\n    self.memory_dense = layers.Dense(hidden, use_bias=False, activation=tf.nn.relu, name='memory_dense')\n\n    if combiner == 'gate':\n      self.combine = Gate(keep_prob=keep_prob)\n    elif combiner == 'sfu':\n      self.combine = SemanticFusionCombine(keep_prob=keep_prob)\n    elif combiner == None:\n      self.combine = None\n    else:\n      raise ValueError(combiner)\n\n  def call(self, inputs, memory, inputs_mask, memory_mask, training=False):\n    combiner = self.combiner\n    # DotAttention already convert to dot_attention\n    #with tf.variable_scope(self.scope):\n    d_inputs = dropout(inputs, keep_prob=self.keep_prob, training=training)\n    d_memory = dropout(memory, keep_prob=self.keep_prob, training=training)\n    JX = tf.shape(inputs)[1]\n    \n    with tf.variable_scope(\"attention\"):\n      inputs_ = self.inputs_dense(d_inputs)\n      memory_ = self.memory_dense(d_memory)\n\n      # shared matrix for c2q and q2c attention\n      scores = tf.matmul(inputs_, tf.transpose(memory_, [0, 2, 1])) / (self.hidden ** 0.5)\n\n      # c2q attention\n      mask = memory_mask\n      if mask is not None:\n        mask = tf.tile(tf.expand_dims(mask, axis=1), [1, JX, 1])\n        scores = softmax_mask(scores, mask)\n\n      alpha = tf.nn.softmax(scores)\n      self.alpha = alpha\n      c2q = tf.matmul(alpha, memory)\n\n      # TODO check this with allennlp implementation since not good result here...\n      # q2c attention\n      # (batch_size, clen)\n      logits = tf.reduce_max(scores, -1) \n      mask = inputs_mask\n      if mask is not None:\n        logits = softmax_mask(logits, mask)\n      alpha2 = tf.nn.softmax(logits)\n      # inputs (batch_size, clen, dim), probs (batch_size, clen)\n      q2c = tf.matmul(tf.expand_dims(alpha2, 1), inputs)\n      # (batch_size, clen, dim)\n      q2c = tf.tile(q2c, [1, JX, 1])\n\n      outputs = tf.concat([c2q, q2c], -1)\n\n    if self.combine is not None:\n      return self.combine(inputs, outputs, training=training)\n    else:\n      return outputs\n\n# copy from mreader pytorch code which has good effect on machine reading\n# https://github.com/HKUST-KnowComp/MnemonicReader\nclass SeqAttnMatch(melt.Model):\n  \"\"\"Given sequences X and Y, match sequence Y to each element in X.\n\n  * o_i = sum(alpha_j * y_j) for i in X\n  * alpha_j = softmax(y_j * x_i)\n  \"\"\"\n  def __init__(self, \n                keep_prob=1.0,  \n                combiner='gate',\n                identity=False):\n    super(SeqAttnMatch, self).__init__()\n    self.keep_prob = keep_prob\n    self.identity = identity\n\n    if combiner == 'gate':\n      self.combine = Gate(keep_prob=keep_prob)\n    elif combiner == 'sfu':\n      self.combine = SemanticFusionCombine(keep_prob=keep_prob)\n    elif combiner == None:\n      self.combine = None\n    else:\n      raise ValueError(combiner)\n\n  # mask is y_mask\n  def call(self, x, y, mask, training=False):\n    self.step += 1\n    x_ = x\n\n    x = dropout(x, keep_prob=self.keep_prob, training=training)\n    y = dropout(y, keep_prob=self.keep_prob, training=training)\n\n    if self.step == 0:\n      if not self.identity:\n        self.linear = layers.Dense(melt.get_shape(x, -1), activation=tf.nn.relu)\n      else:\n        self.linear = None\n    \n    # NOTICE shared linear!\n    if self.linear is not None:\n      x = self.linear(x)\n      y = self.linear(y)\n\n    scores = tf.matmul(x, tf.transpose(y, [0, 2, 1])) \n\n    if mask is not None:\n      JX = melt.get_shape(x, 1)\n      mask = tf.tile(tf.expand_dims(mask, axis=1), [1, JX, 1])\n      scores = softmax_mask(scores, mask)\n\n    alpha = tf.nn.softmax(scores)\n    self.alpha = alpha\n\n    y = tf.matmul(alpha, y)\n\n    if self.combine is None:\n      return y\n    else:\n      return self.combine(x_, y, training=training)\n\nclass SelfAttnMatch(melt.Model):\n  \"\"\"Given sequences X and Y, match sequence Y to each element in X.\n\n  * o_i = sum(alpha_j * x_j) for i in X\n  * alpha_j = softmax(x_j * x_i)\n  \"\"\"\n  def __init__(self, \n                keep_prob=1.0,  \n                combiner='gate',\n                identity=False, \n                diag=True):\n    super(SelfAttnMatch, self).__init__()\n\n    self.keep_prob = keep_prob\n    self.identity = identity\n    self.diag = diag\n\n    if combiner == 'gate':\n      self.combine = Gate(keep_prob=keep_prob)\n    elif combiner == 'sfu':\n      self.combine = SemanticFusionCombine(keep_prob=keep_prob)\n    elif combiner == None:\n      self.combine = None\n    else:\n      raise ValueError(combiner)\n      \n      if not identity:\n          self.linear = nn.Linear(input_size, input_size)\n      else:\n          self.linear = None\n      self.diag = diag\n\n  def call(self, x, mask, training=False):\n    self.step += 1\n    x_ = x\n    x = dropout(x, keep_prob=self.keep_prob, training=training)\n\n    if self.step == 0:\n      if not self.identity:\n        self.linear = layers.Dense(melt.get_shape(x, -1), activation=tf.nn.relu)\n      else:\n        self.linear = None\n    \n    # NOTICE shared linear!\n    if self.linear is not None:\n      x = self.linear(x)\n\n    scores = tf.matmul(x, tf.transpose(x, [0, 2, 1])) \n\n    #  x = tf.constant([[[1,2,3], [4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]]], dtype=tf.float32) # shape=(2, 3, 3)\n    #  z = tf.matrix_set_diag(x, tf.zeros([2, 3]))\n    if not self.diag:\n      # TODO better dim\n      dim0 = melt.get_shape(scores, 0)\n      dim1 = melt.get_shape(scores, 1)\n      scores = tf.matrix_set_diag(scores, tf.zeros([dim0, dim1]))\n\n    if mask is not None:\n      JX = melt.get_shape(x, 1)\n      mask = tf.tile(tf.expand_dims(mask, axis=1), [1, JX, 1])\n      scores = softmax_mask(scores, mask)\n\n    alpha = tf.nn.softmax(scores)\n    self.alpha = alpha\n\n    x = tf.matmul(alpha, x)\n\n    if self.combine is None:\n      return y\n    else:\n      return self.combine(x_, x, training=training)\n      \n# https://github.com/openai/finetune-transformer-lm/blob/master/train.py\nclass LayerNorm(keras.layers.Layer):\n  def __init__(self, \n               e=1e-5, \n               axis=[1]):\n    super(BatchNorm, self).__init__()\n    self.step = -1\n    self.e, self.axis = e, axis\n\n  def call(self, x, training=False):\n    self.step += 1\n    if self.step == 0:\n      n_state = melt.get_shape(x, -1)\n      self.g = self.add_variable(\n          \"g\",\n          shape=[n_state],\n          initializer=tf.constant_initializer(1))\n      self.b = self.add_variable(\n          \"b\",\n          shape=[n_state],\n          initializer=tf.constant_initializer(1))\n    e, axis = self.e, self.axis\n    u = tf.reduce_mean(x, axis=axis, keepdims=True)\n    s = tf.reduce_mean(tf.square(x-u), axis=axis, keepdims=True)\n    x = (x - u) * tf.rsqrt(s + e)\n    x = x * self.g + self.b\n    return x\n"
  },
  {
    "path": "utils/melt/layers/optimizers.py",
    "content": "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\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\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport six\n\nfrom tensorflow.python.framework import constant_op\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import clip_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import init_ops\nfrom tensorflow.python.summary import summary\nfrom tensorflow.python.ops import random_ops\nfrom tensorflow.python.ops import variable_scope as vs\nfrom tensorflow.python.ops import variables as vars_\nfrom tensorflow.python.platform import tf_logging as logging\nfrom tensorflow.python.training import optimizer as optimizer_\nfrom tensorflow.python.training import training as train\n\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n\"\"\"\ncopy from tensorflow.contrib.layers.python.layers.optimerzers.py version 0.10\n\"\"\"\n\n\"\"\"Optimizer ops for use in layers and tf.learn.\"\"\"\n\nOPTIMIZER_CLS_NAMES = {\n    \"Adagrad\": train.AdagradOptimizer,\n    \"Adam\": train.AdamOptimizer,\n    \"Ftrl\": train.FtrlOptimizer,\n    \"Momentum\": train.MomentumOptimizer,\n    \"RMSProp\": train.RMSPropOptimizer,\n    \"SGD\": train.GradientDescentOptimizer,\n}\n\nOPTIMIZER_SUMMARIES = [\"learning_rate\",\n    \"loss\",\n    \"gradients\",\n    \"gradient_norm\",]\n\n# from cifar10_multi_gpu_train.py\ndef average_gradients(tower_grads):\n  \"\"\"Calculate the average gradient for each shared variable across all towers.\n\n  Note that this function provides a synchronization point across all towers.\n\n  Args:\n    tower_grads: List of lists of (gradient, variable) tuples. The outer list\n      is over individual gradients. The inner list is over the gradient\n      calculation for each tower.\n  Returns:\n     List of pairs of (gradient, variable) where the gradient has been averaged\n     across all towers.\n  \"\"\"\n  average_grads = []\n  for grad_and_vars in zip(*tower_grads):\n    # Note that each grad_and_vars looks like the following:\n    #   ((grad0_gpu0, var0_gpu0), ... , (grad0_gpuN, var0_gpuN))\n    grads = []\n    for g, _ in grad_and_vars:\n      # Add 0 dimension to the gradients to represent the tower.\n      expanded_g = tf.expand_dims(g, 0)\n\n      # Append on a 'tower' dimension which we will average over below.\n      grads.append(expanded_g)\n\n    # Average over the 'tower' dimension.\n    grad = tf.concat(grads, 0)\n    grad = tf.reduce_mean(grad, 0)\n\n    # Keep in mind that the Variables are redundant because they are shared\n    # across towers. So .. we will just return the first tower's pointer to\n    # the Variable.\n    v = grad_and_vars[0][1]\n    grad_and_var = (grad, v)\n    average_grads.append(grad_and_var)\n  return average_grads\n\n# ## from cifar10_estimator\n# def average_gradients(tower_gradvars):\n#   import six\n#   import itertools\n#   # Now compute global loss and gradients.\n#   gradvars = []\n#   with tf.name_scope('gradient_averaging'):\n#     all_grads = {}\n#     for grad, var in itertools.chain(*tower_gradvars):\n#       if grad is not None:\n#         all_grads.setdefault(var, []).append(grad)\n#     for var, grads in six.iteritems(all_grads):\n#       # Average gradients on the same device as the variables\n#       # to which they apply.\n#       with tf.device(var.device):\n#         if len(grads) == 1:\n#           avg_grad = grads[0]\n#         else:\n#           avg_grad = tf.multiply(tf.add_n(grads), 1. / len(grads))\n#       gradvars.append((avg_grad, var))\n#   return gradvars\n\ndef optimize_loss(losses,\n                  global_step,\n                  learning_rate,\n                  optimizer, \n                  num_gpus=1,\n                  gradient_noise_scale=None,\n                  gradient_multipliers=None,\n                  clip_gradients=None,\n                  learning_rate_decay_fn=None,\n                  update_ops=None,\n                  variables=None,\n                  name=None,\n                  summaries=[\"global_gradient_norm\"],\n                  colocate_gradients_with_ops=False,\n                  increment_global_step=True,\n                  use_tpu=False,\n                  use_horovod=False):\n  \"\"\"Given loss and parameters for optimizer, returns a training op.\n  Args:\n    loss: Tensor, 0 dimensional.\n    global_step: Tensor, step counter for each update.\n    learning_rate: float or Tensor, magnitude of update per each training step.\n    optimizer: string, class or optimizer instance, used as trainer.\n               string should be name of optimizer, like 'SGD',\n                 'Adam', 'Adagrad'. Full list in OPTIMIZER_CLS_NAMES constant.\n               class should be sub-class of tf.Optimizer that implements\n                 `compute_gradients` and `apply_gradients` functions.\n               optimizer instance should be instantion of tf.Optimizer sub-class\n                 and have `compute_gradients` and `apply_gradients` functions.\n    gradient_noise_scale: float or None, adds 0-mean normal noise scaled by this\n                          value.\n    gradient_multipliers: dict of variables or variable names to floats.\n                          If present, gradients for specified\n                          variables will be multiplied by given constant.\n    clip_gradients: float or `None`, clips gradients by this value.\n    moving_average_decay: Deprecated. float or None, takes into account previous\n                          loss to make learning smoother due to outliers.\n    learning_rate_decay_fn: function, takes `learning_rate` and `global_step`\n                            `Tensor`s, returns `Tensor`.\n                            Can be used to implement any learning rate decay\n                            functions.\n                            For example: tf.train.exponential_decay.\n    update_ops: list of update `Operation`s to execute at each step. If `None`,\n                uses elements of UPDATE_OPS collection.\n    variables: list of variables to optimize or\n               `None` to use all trainable variables.\n    name: The name for this operation is used to scope operations and summaries.\n    summaries: List of internal quantities to visualize on tensorboard. If not\n               set only the loss and the learning rate will be reported. The\n               complete list is in OPTIMIZER_SUMMARIES.\n  Returns:\n    Training op.\n  Raises:\n    ValueError: if optimizer is wrong type.\n  \"\"\"\n  with vs.variable_scope(name, \"OptimizeLoss\", losses + [global_step]):\n    # Update ops take UPDATE_OPS collection if not provided.\n    if update_ops is None:\n      update_ops = set(ops.get_collection(ops.GraphKeys.UPDATE_OPS))\n\n    #--from https://github.com/tensorflow/tensorflow/blob/28c3c5dd38e3b397c2cf0acdaa6388dcbf0349f7/tensorflow/contrib/layers/python/layers/optimizers.py\n    # Learning rate variable, with possible decay.\n    lr = None\n    if learning_rate is not None:\n      if (isinstance(learning_rate, ops.Tensor) or isinstance(learning_rate, tf.Variable) and\n          learning_rate.get_shape().ndims == 0):\n        #print('------------------optimize_loss learning rate do nothhing', learning_rate)\n        lr = learning_rate\n      elif isinstance(learning_rate, float):\n        if learning_rate < 0.0:\n          raise ValueError(\"Invalid learning_rate %s.\", learning_rate)\n        lr = vs.get_variable(\n            \"learning_rate\", [],\n            trainable=False,\n            initializer=init_ops.constant_initializer(learning_rate))\n      else:\n        raise ValueError(\"Learning rate should be 0d Tensor or float. \"\n                         \"Got %s of type %s\" % (str(learning_rate),\n                                                str(type(learning_rate))))\n\n    if learning_rate is not None and learning_rate_decay_fn is not None:\n      if global_step is None:\n        raise ValueError(\"global_step is required for learning_rate_decay_fn.\")\n      lr = learning_rate_decay_fn(lr, global_step)\n        \n    # Create optimizer, given specified parameters.\n    if isinstance(optimizer, six.string_types):\n      if lr is None:\n        raise ValueError(\"Learning rate is None, but should be specified if \"\n                         \"optimizer is string (%s).\" % optimizer)\n      if optimizer not in OPTIMIZER_CLS_NAMES:\n        raise ValueError(\n            \"Optimizer name should be one of [%s], you provided %s.\" %\n            (\", \".join(OPTIMIZER_CLS_NAMES), optimizer))\n      opt = OPTIMIZER_CLS_NAMES[optimizer](learning_rate=lr)\n    elif (isinstance(optimizer, type) and\n          issubclass(optimizer, optimizer_.Optimizer)):\n      if lr is None:\n        raise ValueError(\"Learning rate is None, but should be specified if \"\n                         \"optimizer is class (%s).\" % optimizer)\n      opt = optimizer(learning_rate=lr)\n    elif isinstance(optimizer, optimizer_.Optimizer):\n      #print('------------------optimize_loss optimizer do nothing', optimizer)\n      opt = optimizer\n    elif callable(optimizer):\n      if learning_rate is not None:\n        opt = optimizer(lr)\n      else:\n        opt = optimizer()\n      if not isinstance(opt, optimizer_.Optimizer):\n        pass\n        # TODO all tf.keras.optimizers\n        #raise ValueError(\"Unrecognized optimizer: function should return \"\n        #                 \"subclass of Optimizer. Got %s.\" % str(opt))\n    else:\n      raise ValueError(\"Unrecognized optimizer: should be string, \"\n                       \"subclass of Optimizer, instance of \"\n                       \"subclass of Optimizer or function with one argument. \"\n                       \"Got %s.\" % str(optimizer))\n\n    if use_tpu:\n      opt = tf.contrib.tpu.CrossShardOptimizer(opt)\n    assert not (use_tpu and use_horovod)\n    if use_horovod:\n      if FLAGS.torch:\n        import horovod.torch as hvd\n      else:\n        import horovod.tensorflow as hvd\n      #https://blog.csdn.net/qq_16234613/article/details/96186398\n         # we enable compression only for fp16\n      #import horovod.tensorflow as hvd\n      #from horovod.tensorflow.compression import Compression\n      # if use_fp16:\n      #     compression = Compression.fp16\n      # else:\n      #     compression = Compression.none\n      # opt = hvd.DistributedOptimizer(opt, sparse_as_dense=True,t7\n      #                                compression=compression)\n      opt = hvd.DistributedOptimizer(opt)\n\n      ## just use opt.minize 0.1 epoch 64 *  8 gpu  auc 0.717 if cmment this line using gradiens.. auc 0.7186\n      #return opt.minimize(losses[0], global_step=global_step if increment_global_step else None)\n\n    if num_gpus > 1:\n      # Calculate the gradients for each model tower.\n      # TODO check below is all ok, right now single gpu using below code will be slower then tf.contrib.optimize_loss  4.5 batch/s -> 3 batch/s\n      tower_grads = []\n      for i in range(num_gpus):\n        with tf.device('/gpu:%d' % i):\n          with tf.name_scope('%s_%d' % ('tower', i)) as name_scope:\n            # All trainable variables, if specific variables are not specified.\n            \n            #-- TODO trainable_variables affect speed ?\n            if variables is None:\n             variables = vars_.trainable_variables()\n            # Compute gradients.\n            loss = losses[i]\n            # if update_ops:\n            #   loss = control_flow_ops.with_dependencies(list(update_ops), loss)\n            #print('------------',)\n            try:\n              gradients = opt.compute_gradients(loss, \n                                                variables,\n                                                colocate_gradients_with_ops=colocate_gradients_with_ops)\n            except Exception:\n              # try:\n              #   gradients = opt.compute_gradients(loss)\n              # except Exception:\n              gradients = opt.get_updates(loss, params=variables)\n            \n            #TODO FIXME might have None for example add another predictor to graph \n            #[(None, <tf.Variable 'dual_bow/model_init/emb:0' shape=(29285, 256) dtype=float32_ref>), \n            #(None, <tf.Variable 'dual_bow/main/dual_textsim/encode/text_mlp/linear/weights:0' shape=(256, 256) dtype=float32_ref>),\n            #(<tensorflow.python.framework.ops.IndexedSlices object at 0x1b72ff50>, <tf.Variable 'seq2seq/model_init/emb:0' shape=(29285, 256) dtype=float32_ref>)\n            #print('-------gradients1', gradients)\n            #--now hack use below, TODO why dual_bow.. in introduced when compute gradient of loss as seem not related my seq2seq loss?\n            gradients = [x for x in gradients if x[0] is not None]\n            # Optionally add gradient noise.\n            if gradient_noise_scale is not None:\n              gradients = _add_scaled_noise_to_gradients(gradients, gradient_noise_scale)\n            # Multiply some gradients.\n            if gradient_multipliers is not None:\n              gradients = _multiply_gradients(gradients, gradient_multipliers)\n            # Optionally clip gradients by global norm.\n            if clip_gradients is not None:\n              gradients = _clip_gradients_by_norm(gradients, clip_gradients)\n            \n            #print('-------gradients', gradients)\n            tower_grads.append(gradients)\n                    \n      gradients = average_gradients(tower_grads)\n      if \"global_gradient_norm\" in summaries or \"gradient_norm\" in summaries:\n        summary.scalar(\"global_norm/gradient_norm\",\n                    clip_ops.global_norm(list(zip(*gradients))[0]))\n\n      # Add histograms for variables, gradients and gradient norms.\n      for gradient, variable in gradients:\n        if isinstance(gradient, ops.IndexedSlices):\n          grad_values = gradient.values\n        else:\n          grad_values = gradient\n\n        if grad_values is not None:\n          var_name = variable.name.replace(\":\", \"_\")\n          if \"gradients\" in summaries:\n            summary.histogram(\"gradients/%s\" % var_name, grad_values)\n          if \"gradient_norm\" in summaries:\n            summary.scalar(\"gradient_norm/%s\" % var_name,\n                          clip_ops.global_norm([grad_values]))\n\n      if clip_gradients is not None and (\"global_gradient_norm\" in summaries or\n                                        \"gradient_norm\" in summaries):\n        summary.scalar(\"global_norm/clipped_gradient_norm\",\n                      clip_ops.global_norm(list(zip(*gradients))[0]))\n    else:\n      loss = losses[0]\n\n      ## similar but will do do clip gradient and other things, if comment auc 0.72739 not comment 0.72634\n      #return opt.minimize(losses[0], global_step=global_step if increment_global_step else None)\n      \n      # All trainable variables, if specific variables are not specified.\n      if variables is None:\n        variables = vars_.trainable_variables()\n\n      # Compute gradients.\n      try:\n        gradients = opt.compute_gradients(\n            loss,\n            variables,\n            colocate_gradients_with_ops=colocate_gradients_with_ops)\n      except Exception:\n        # TODO not work for keras\n        gradients = opt.get_updates(loss=loss, params=variables)\n\n      # Optionally add gradient noise.\n      if gradient_noise_scale is not None:\n        gradients = _add_scaled_noise_to_gradients(gradients,\n                                                   gradient_noise_scale)\n\n      # Multiply some gradients.\n      if gradient_multipliers is not None:\n        gradients = _multiply_gradients(gradients, gradient_multipliers)\n        if not gradients:\n          raise ValueError(\n              \"Empty list of (gradient, var) pairs encountered. This is most \"\n              \"likely to be caused by an improper value of gradient_multipliers.\")\n\n      if \"global_gradient_norm\" in summaries or \"gradient_norm\" in summaries:\n        summary.scalar(\"global_norm/gradient_norm\",\n                      clip_ops.global_norm(list(zip(*gradients))[0]))\n\n      # Optionally clip gradients by global norm.\n      if isinstance(clip_gradients, float):\n        gradients = _clip_gradients_by_norm(gradients, clip_gradients)\n      elif callable(clip_gradients):\n        gradients = clip_gradients(gradients)\n      elif clip_gradients is not None:\n        raise ValueError(\n            \"Unknown type %s for clip_gradients\" % type(clip_gradients))\n\n      # # Add scalar summary for loss.\n      # if \"loss\" in summaries:\n      #   summary.scalar(\"loss\", loss)\n\n      # Add histograms for variables, gradients and gradient norms.\n      for gradient, variable in gradients:\n        if isinstance(gradient, ops.IndexedSlices):\n          grad_values = gradient.values\n        else:\n          grad_values = gradient\n\n        if grad_values is not None:\n          var_name = variable.name.replace(\":\", \"_\")\n          if \"gradients\" in summaries:\n            summary.histogram(\"gradients/%s\" % var_name, grad_values)\n          if \"gradient_norm\" in summaries:\n            summary.scalar(\"gradient_norm/%s\" % var_name,\n                          clip_ops.global_norm([grad_values]))\n\n      if clip_gradients is not None and (\"global_gradient_norm\" in summaries or\n                                        \"gradient_norm\" in summaries):\n        summary.scalar(\"global_norm/clipped_gradient_norm\",\n                      clip_ops.global_norm(list(zip(*gradients))[0]))\n\n    # Create gradient updates.\n    grad_updates = opt.apply_gradients(gradients,\n                                       global_step=global_step if increment_global_step else None,\n                                       name=\"train\")\n\n    # IMPORTANT this is needed for momentum!\n    if update_ops:\n      grad_updates = [grad_updates]\n      #print('--------------------1', grad_updates)\n      grad_updates.extend(update_ops)\n      #print('-------------------2', update_ops)\n      grad_updates = tf.group(*grad_updates)\n      #print('-----------grad updates', grad_updates)\n\n    # # Make sure total_loss is valid.\n    # final_loss = array_ops.check_numerics(loss, \"Loss is inf or nan\")\n\n    # # Ensure the train_tensor computes grad_updates.\n    # train_tensor = control_flow_ops.with_dependencies([grad_updates], final_loss)\n\n    #return train_tensor\n    return grad_updates\n\n\ndef _clip_gradients_by_norm(grads_and_vars, clip_gradients):\n  \"\"\"Clips gradients by global norm.\"\"\"\n  gradients, variables = zip(*grads_and_vars)\n  clipped_gradients, _ = clip_ops.clip_by_global_norm(gradients,\n                                                      clip_gradients)\n  return list(zip(clipped_gradients, variables))\n\n\ndef _add_scaled_noise_to_gradients(grads_and_vars, gradient_noise_scale):\n  \"\"\"Adds scaled noise from a 0-mean normal distribution to gradients.\"\"\"\n  gradients, variables = zip(*grads_and_vars)\n  noisy_gradients = []\n  for gradient in gradients:\n    if gradient is None:\n      noisy_gradients.append(None)\n      continue\n    if isinstance(gradient, ops.IndexedSlices):\n      gradient_shape = gradient.dense_shape\n    else:\n      gradient_shape = gradient.get_shape()\n    noise = random_ops.truncated_normal(gradient_shape) * gradient_noise_scale\n    noisy_gradients.append(gradient + noise)\n  return list(zip(noisy_gradients, variables))\n\n\ndef _multiply_gradients(grads_and_vars, gradient_multipliers):\n  \"\"\"Multiply specified gradients.\"\"\"\n  multiplied_grads_and_vars = []\n  for grad, var in grads_and_vars:\n    if (grad is not None and (var in gradient_multipliers or var.name in gradient_multipliers)):\n      key = var if var in gradient_multipliers else var.name\n      multiplier = constant_op.constant(gradient_multipliers[key], dtype=dtypes.float32)\n      if isinstance(grad, ops.IndexedSlices):\n        grad_values = grad.values * multiplier\n        grad = ops.IndexedSlices(grad_values, grad.indices, grad.dense_shape)\n      else:\n        grad *= multiplier\n    multiplied_grads_and_vars.append((grad, var))\n  return multiplied_grads_and_vars\n"
  },
  {
    "path": "utils/melt/layers/rnn/__init__.py",
    "content": "from melt.layers.rnn.rnn import *\n"
  },
  {
    "path": "utils/melt/layers/rnn/rnn.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   rnn.py\n#        \\author   chenghuige  \n#          \\date   2018-09-20 07:31:06.789341\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\n\nimport sys \nimport os\n\nkeras = tf.keras\nlayers = tf.keras.layers\nLayer = layers.Layer\n\nimport melt\nlogging = melt.logging\nfrom melt.rnn import encode_outputs, OutputMethod\n\nfrom melt import dropout\n\nclass InitStates(Layer):\n  def __init__(self, num_layers, num_units, name='init_fw'):\n    super(InitStates, self).__init__()\n    # problem in naming.. might use check point list ?\n    self.init = [None] * num_layers\n    for layer in range(num_layers):\n      self.init[layer] = self.add_variable(\"%s_%d\" % (name, layer), [1, num_units], initializer=tf.zeros_initializer())\n\n    self.init = tf.contrib.checkpoint.List(self.init)\n\n  def call(self, layer, batch_size=None):\n    if batch_size is None:\n      return self.init[layer]\n    else:\n      return tf.tile(self.init[layer], [batch_size, 1])\n\n\n# TODO for safe both graph and eager, do not use keep prob, just pass Dropout result to call\n# FIXME so share_dropout only work for graph mode !! and now also eager mode has droput problem... as each batch call use \n# same dropout mask if share_dropout=True..\nclass CudnnRnn(keras.Model):\n  def __init__(self,  \n                num_layers, \n                num_units, \n                keep_prob=1.0, \n                share_dropout=False,\n                recurrent_dropout=True,\n                bw_dropout=False,\n                train_init_state=True,\n                concat_layers=True, \n                output_method=OutputMethod.all, \n                return_state=False,\n                residual_connect=False,\n                cell='gru', \n                **kwargs):\n    super(CudnnRnn, self).__init__(**kwargs)\n    self.cell = cell\n    self.return_state = return_state\n    if isinstance(cell, str):\n      if cell == 'gru':\n        if tf.test.is_gpu_available():\n          self.Cell = layers.CuDNNGRU\n        else:\n          self.Cell = layers.GRU\n      elif cell == 'lstm':\n        if tf.test.is_gpu_available():\n          self.Cell = layers.CuDNNLSTM\n        else:\n          self.Cell = layers.LSTM\n      else:\n        raise ValueError(cell)\n\n    logging.info('cudnn cell:', self.cell)\n    self.num_layers = num_layers\n    self.keep_prob = keep_prob\n    assert num_units % 4 == 0, 'bad performance for units size not % 4'\n    self.num_units = num_units\n\n    # for share dropout between like context and question in squad (machine reading task)\n    # rnn = gru(num_layers=FLAGS.num_layers, num_units=d, keep_prob=keep_prob, is_train=self.is_training)\n    # c = rnn(c_emb, sequence_length=c_len)\n    # scope.reuse_variables()\n    # q = rnn(q_emb, sequence_length=q_len)\n    self.share_dropout = share_dropout\n    self.recurrent_dropout = recurrent_dropout\n    # when not using recurrent_dropout if bw_dropout will let backward rnn using different dropout then forward\n    self.bw_dropout = bw_dropout \n\n    # TODO FIXME hack for model.save try to save self.dropout_mask_fw , even though I think should not... TODO  how to NoDependency\n    # ValueError: Unable to save the object ListWrapper([<tf.Tensor: id=115958, shape=(32, 1, 300), dtype=float32, numpy=\n    #array(\n    #        1.4285715]]], dtype=float32)>]) (a list wrapper constructed to track checkpointable TensorFlow objects).\n    #  A list element was replaced (__setitem__), deleted, or inserted. In order to support restoration on object creation, tracking is exclusively for append-only data structures.\n    # if you don't need this list checkpointed, wrap it in a tf.contrib.checkpoint.NoDependency object; it will be automatically un-wrapped and subsequently ignored.\n\n    self.dropout_mask_fw = [None] * num_layers\n    self.dropout_mask_bw = [None] * num_layers \n\n    self.train_init_state = train_init_state\n    self.init_fw = [None] * num_layers\n    self.init_bw = [None] * num_layers \n\n    self.state = None\n\n    # no concat for rent will convergence slower and hurt performance\n    self.concat_layers = concat_layers\n    self.output_method = output_method\n    self.residual_connect = residual_connect\n\n    # hurt performance a lot in rnet \n    if self.residual_connect:\n      self.residual_linear = layers.Dense(self.num_units * 2)\n      self.layer_norm = melt.layers.LayerNorm()\n    \n    def gru(units):\n      # If you have a GPU, we recommend using the CuDNNGRU layer (it provides a \n      # significant speedup).\n      if tf.test.is_gpu_available():\n        return self.Cell(units, \n                         return_sequences=True, \n                         return_state=True, \n                         recurrent_initializer='glorot_uniform')\n      else:\n        return self.Cell(units, \n                         return_sequences=True, \n                         return_state=True, \n                         recurrent_activation='sigmoid', \n                         recurrent_initializer='glorot_uniform')\n\n    # well seems will only consider to save item or list ont list of tuples so self.grus = [] self.grus.append((gru_w, gru_bw)) will not save..  TODO FIXME\n    self.gru_fws = []\n    self.gru_bws = []\n    for layer in range(num_layers):\n      #with tf.variable_scope('fw'):\n      gru_fw = gru(num_units)\n      #with tf.variable_scope('bw'):\n      gru_bw = gru(num_units)\n      self.gru_fws.append(gru_fw)\n      self.gru_bws.append(gru_bw)\n\n    self.gru_fws = tf.contrib.checkpoint.List(self.gru_fws)\n    self.gru_bws = tf.contrib.checkpoint.List(self.gru_bws)\n\n    # if self.train_init_state:\n    #   for layer in range(num_layers):\n    #     # well TODO! add_variable not allowed in keras.Model but using keras.layers.Layer you should not use other layers otherwise not save them\n    #     self.init_fw[layer] = self.add_variable(\"init_fw_%d\" % layer, [1, num_units], initializer=tf.zeros_initializer())\n    #     self.init_bw[layer] = self.add_variable(\"init_bw_%d\" % layer, [1, num_units], initializer=tf.zeros_initializer()) \n\n    if self.train_init_state:\n      # well TODO! add_variable not allowed in keras.Model but using keras.layers.Layer you should not use other layers otherwise not save them\n      # TODO name is not very ok... without scope ...\n      # embedding_kernel (DT_FLOAT) [20,300]  # should in r_net\n      # global_step (DT_INT64) []\n      # init_bw_0 (DT_FLOAT) [1,200]  # should in cudnn_rnn\n      # init_bw_0_1 (DT_FLOAT) [1,200]\n      # init_bw_0_2 (DT_FLOAT) [1,200]\n      # init_bw_0_3 (DT_FLOAT) [1,200]\n      # init_bw_1 (DT_FLOAT) [1,200]\n      # init_fw_0 (DT_FLOAT) [1,200]\n      # init_fw_0_1 (DT_FLOAT) [1,200]\n      # init_fw_0_2 (DT_FLOAT) [1,200]\n      # init_fw_0_3 (DT_FLOAT) [1,200]\n      # init_fw_1 (DT_FLOAT) [1,200]\n      # learning_rate_weight (DT_FLOAT) []\n      # r_net/cudnn_rnn_2/cu_dnngru_6/bias (DT_FLOAT) [1200]\n      # r_net/cudnn_rnn_2/cu_dnngru_6/kernel (DT_FLOAT) [1100,600]\n      # r_net/cudnn_rnn_2/cu_dnngru_6/recurrent_kernel (DT_FLOAT) [200,600]\n      # r_net/cudnn_rnn_2/cu_dnngru_7/bias (DT_FLOAT) [1200]\n      # r_net/cudnn_rnn_2/cu_dnngru_7/kernel (DT_FLOAT) [1100,600]\n      # r_net/cudnn_rnn_2/cu_dnngru_7/recurrent_kernel (DT_FLOAT) [200,600]\n      # r_net/cudnn_rnn_3/cu_dnngru_8/bias (DT_FLOAT) [1200]\n\n      self.init_fw_layer = InitStates(num_layers, num_units, 'init_fw')\n      self.init_bw_layer = InitStates(num_layers, num_units, 'init_bw')\n      if self.cell == 'lstm':\n        self.init_fw2_layer = InitStates(num_layers, num_units, 'init_fw2')\n        self.init_bw2_layer = InitStates(num_layers, num_units, 'init_bw2')\n\n\n  def set_dropout_mask(self, mask_fw, mask_bw):\n    self.dropout_mask_fw = mask_fw \n    self.dropout_mask_bw = mask_bw\n\n  def set_init_states(self, init_fw, init_bw):\n    self.init_fw = init_fw\n    self.init_bw = init_bw\n\n  def reset_init_states(self):\n    self.init_fw = [None] * self.num_layers\n    self.init_bw = [None] * self.num_layers   \n\n  # @property\n  # def trainable_weights(self):\n  #   if self.trainable and self.built:\n  #     return [[self.init_fw[layer], self.init_bw[layer], self.grus[0][layer], self.grus[1][layer] for layer in range(num_layers)]\n  #   return []  \n\n  def call(self, \n           x, \n           sequence_length=None, \n           mask_fws = None,\n           mask_bws = None,\n           concat_layers=None, \n           output_method=None, \n           training=False):\n\n    concat_layers = concat_layers or self.concat_layers\n    output_mehtod = output_method or self.output_method\n\n    if self.residual_connect:\n      x = self.residual_linear(x)\n\n    outputs = [x]\n\n    #states = []\n    keep_prob = self.keep_prob\n    num_units = self.num_units\n    batch_size = melt.get_batch_size(x)\n\n    if sequence_length is None:\n      len_ = melt.get_shape(x, 1)\n      sequence_length = tf.ones([batch_size,], dtype=tf.int64) * len_\n\n    for layer in range(self.num_layers):\n      input_size_ = melt.get_shape(x, -1) if layer == 0 else 2 * num_units\n\n      gru_fw, gru_bw = self.gru_fws[layer], self.gru_bws[layer]\n      \n      if self.train_init_state:\n        #init_fw = tf.tile(self.init_fw[layer], [batch_size, 1])\n        #init_fw = tf.tile(self.init_fw_layer(layer), [batch_size, 1])\n        init_fw = self.init_fw_layer(layer, batch_size)\n        if self.cell == 'lstm':\n          init_fw = (init_fw, self.init_fw2_layer(layer, batch_size))\n      else:\n        init_fw = None\n\n      if self.recurrent_dropout:\n        if mask_fws is not None:\n          mask_fw = mask_fws[layer]\n        else:\n          if not self.share_dropout:\n            mask_fw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                          keep_prob=keep_prob, training=training, mode=None)\n          else:\n            if self.dropout_mask_fw[layer] is None or (tf.executing_eagerly() and batch_size != self.dropout_mask_fw[layer].shape[0]):\n              mask_fw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                        keep_prob=keep_prob, training=training, mode=None)\n              self.dropout_mask_fw[layer] = mask_fw\n            else:\n              mask_fw = self.dropout_mask_fw[layer]\n        \n        inputs_fw = outputs[-1] * mask_fw\n      else:\n        inputs_fw = dropout(outputs[-1], keep_prob=keep_prob, training=training, mode=None)\n\n      # https://stackoverflow.com/questions/48233400/lstm-initial-state-from-dense-layer\n      # gru and lstm different ... state lstm need tuple (,) states as input state\\\n      if self.cell == 'gru':\n        out_fw, state_fw = gru_fw(inputs_fw, init_fw)\n      else:\n        out_fw, state_fw1, state_fw2 = gru_fw(inputs_fw, init_fw)\n        state_fw = (state_fw1, state_fw2)\n\n      if self.train_init_state:\n        #init_bw = tf.tile(self.init_bw[layer], [batch_size, 1])\n        #init_bw = tf.tile(self.init_bw_layer(layer), [batch_size, 1])\n        init_bw = self.init_bw_layer(layer, batch_size)\n        if self.cell == 'lstm':\n          init_bw = (init_bw, self.init_bw2_layer(layer, batch_size))\n      else:\n        init_bw = None\n\n      if mask_bws is not None:\n        mask_bw = mask_bws[layer]\n      else:\n        if not self.share_dropout:\n          mask_bw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                    keep_prob=keep_prob, training=training, mode=None)\n        else:\n          if self.dropout_mask_bw[layer] is None or (tf.executing_eagerly() and batch_size != self.dropout_mask_bw[layer].shape[0]):\n            mask_bw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                      keep_prob=keep_prob, training=training, mode=None)\n            self.dropout_mask_bw[layer] = mask_bw\n          else:\n            mask_bw = self.dropout_mask_bw[layer]\n\n      if self.recurrent_dropout:\n        inputs_bw = outputs[-1] * mask_bw\n      else:\n        if self.bw_dropout:\n          inputs_bw = dropout(outputs[-1], keep_prob=keep_prob, training=training, mode=None)\n        else:\n          inputs_bw = inputs_fw\n\n      inputs_bw = tf.reverse_sequence(\n          inputs_bw, seq_lengths=sequence_length, seq_axis=1, batch_axis=0)\n\n      if self.cell == 'gru': \n        out_bw, state_bw = gru_bw(inputs_bw, init_bw)\n      else:\n        out_bw, state_bw1, state_bw2 = gru_bw(inputs_bw, init_bw)\n        state_bw = (state_bw1, state_bw2)\n           \n      out_bw = tf.reverse_sequence(\n          out_bw, seq_lengths=sequence_length, seq_axis=1, batch_axis=0)\n\n      outputs.append(tf.concat([out_fw, out_bw], axis=2))\n      if self.residual_connect:\n        outputs[-1] = self.batch_norm(outputs[-2] + outputs[-1])\n\n    if concat_layers:\n      res = tf.concat(outputs[1:], axis=2)\n    else:\n      res = outputs[-1]\n\n    res = encode_outputs(res, output_method=output_method, sequence_length=sequence_length)\n\n    self.state = (state_fw, state_bw)\n    if not self.return_state:\n      return res\n    else:\n      return res, self.state\n\n# depreciated..\nclass CudnnRnn2(CudnnRnn):\n  def __init__(self,  \n               **kwargs):\n    super(CudnnRnn2, self).__init__(**kwargs)\n    \n  def call(self, \n           inputs, \n           sequence_length,\n           inputs2,\n           sequence_length2, \n           mask_fws,\n           mask_bws,\n           concat_layers=True, \n           output_method=OutputMethod.all, \n           training=False):\n      \n    outputs = [inputs]\n    outputs2 = [inputs2]\n\n    keep_prob = self.keep_prob\n    num_units = self.num_units\n    batch_size = melt.get_batch_size(inputs)\n\n    for layer in range(self.num_layers):\n      input_size_ = melt.get_shape(inputs, -1) if layer == 0 else 2 * num_units\n\n      gru_fw, gru_bw = self.gru_fws[layer], self.gru_bws[layer]\n      \n      \n      if self.train_init_state:\n        init_fw = self.init_fw_layer(layer, batch_size)\n      else:\n        init_fw = None\n\n      mask_fw = mask_fws[layer]\n      out_fw, state_fw = gru_fw(outputs[-1] * mask_fw, init_fw)\n      out_fw2, state_fw2 = gru_fw(outputs2[-1] * mask_fw, state_fw)\n\n      mask_bw = mask_bws[layer]\n      inputs_bw = tf.reverse_sequence(\n          outputs[-1] * mask_bw, sequence_lengthgths=sequence_length, seq_axis=1, batch_axis=0)\n      inputs_bw2 = tf.reverse_sequence(\n          outputs2[-1] * mask_bw, sequence_lengthgths=sequence_length2, seq_axis=1, batch_axis=0)\n      \n      if self.train_init_state:\n        init_bw = self.init_bw_layer(layer, batch_size)\n      else:\n        init_bw = None\n\n      out_bw, state_bw = gru_bw(inputs_bw, init_bw)\n      out_bw2, state_bw2 = gru_bw(inputs_bw2, state_bw)\n\n      outputs.append(tf.concat([out_fw, out_bw], axis=2))\n      outputs2.append(tf.concat([out_fw2, out_bw2], axis=2))\n\n    if concat_layers:\n      res = tf.concat(outputs[1:], axis=2)\n      res2 = tf.concat(outputs2[1:], axis=2)\n    else:\n      res = outputs[-1]\n      res2 = outpus2[-1]\n\n    res = tf.concat([res, res2], axis=1)\n\n    res = encode_outputs(res, output_method=output_method, sequence_length=sequence_length)\n\n    self.state = (state_fw2, state_bw2)\n    return res\n"
  },
  {
    "path": "utils/melt/layers/transformer/__init__.py",
    "content": ""
  },
  {
    "path": "utils/melt/losses/__init__.py",
    "content": "from melt.losses.losses import *\n"
  },
  {
    "path": "utils/melt/losses/losses.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   losses.py\n#        \\author   chenghuige  \n#          \\date   2017-08-07 13:11:10.672206\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\n#from __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf \nimport melt\n\ndef reduce_loss(loss_matrix, combiner='mean'):\n  if combiner == 'mean':\n    return tf.reduce_mean(loss_matrix)\n  elif combiner == 'sum':\n    return tf.reduce_sum(loss_matrix)\n  elif combiner == 'max':\n    return tf.reduce_mean(tf.reduce_max(loss_matrix, 1))\n\n#https://stackoverflow.com/questions/37479119/doing-pairwise-distance-computation-with-tensorflow\n#https://hackernoon.com/one-shot-learning-with-siamese-networks-in-pytorch-8ddaab10340e\n#https://hackernoon.com/facial-similarity-with-siamese-networks-in-pytorch-9642aa9db2f7\n#http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf\n\n#there are different versions, one is not to use sqrt.. just square\n#input score not l2 distance withou sqrt\ndef contrastive(pos_score, neg_scores, margin=1.0, use_square=True, combiner='mean', name=None,):\n  #relu same like hinge.. tf.max..\n  #neg_scores = tf.nn.relu(margin - neg_scores)\n  neg_scores = tf.nn.relu(margin - tf.sqrt(neg_scores))\n  if use_square:  \n    neg_scores = tf.square(neg_scores)\n  else:\n    pos_score = tf.sqrt(pos_score)\n  \n  scores = tf.concat([pos_score, neg_scores], 1)\n  loss = reduce_loss(scores, combiner) * 0.5\n  return loss\n\ndef triplet(pos_score, neg_scores, margin=1.0, combiner='mean', name=None,):\n  #margin small then loss turn to zero quick, margin big better diff hard images but hard to converge\n  #if pos_score(dist) is smaller then neg_score more then margin then loss is zero\n  scores = tf.nn.relu(margin - (neg_scores - pos_score))\n  return reduce_loss(scores, combiner)\n\n#this is cross entorpy for cosine same... scores must be -1 <-> 1 TODO\ndef cross_entropy(scores, combiner='mean', name=None):\n  with tf.name_scope(name, 'cross_entropy_loss', [scores]):\n    batch_size = scores.get_shape()[0]\n    num_negs = scores.get_shape()[1] - 1\n    targets = tf.concat([tf.ones([batch_size, 1], tf.float32), tf.zeros([batch_size, num_negs], tf.float32)], 1)\n    #http://www.wildml.com/2016/07/deep-learning-for-chatbots-2-retrieval-based-model-tensorflow/ \n    #I think for binary is same for sigmoid or softmax\n    \n    #logits = tf.sigmoid(scores)\n    \n    #logits = (1. + scores) / 2.\n\n    logits = scores\n\n    loss_matrix = tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=targets)\n    #loss_matrix = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=targets)\n    loss = reduce_loss(loss_matrix, combiner)\n    return loss\n\n#---------below pairwise\ndef hinge(pos_score, neg_score, margin=0.1, combiner='mean', name=None):\n  with tf.name_scope(name, 'hinge_loss', [pos_score, neg_score]):\n    ##so if set 0.5 margin , will begin loss from 0.5 since pos and neg sore most the same at begin\n    #loss_matrix = tf.maximum(0., margin - (pos_score - neg_score))\n    loss_matrix = tf.nn.relu(margin - (pos_score - neg_score))\n    loss = reduce_loss(loss_matrix, combiner)\n    return loss\n\ndef pairwise_cross(pos_score, neg_score, combiner='mean', name=None):\n  with tf.name_scope(name, 'hinge_cross_loss', [pos_score, neg_score]):\n    score = pos_score - neg_score\n    #logits = tf.sigmoid(score)\n    logits = score\n    targets = tf.ones_like(neg_score, tf.float32)\n    loss_matrix = tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=targets)\n    loss = reduce_loss(loss_matrix, combiner)\n    return loss\n\ndef pairwise_exp(pos_score, neg_score, theta=1.,  combiner='mean', name=None):\n  with tf.name_scope(name, 'hinge_exp_loss', [pos_score, neg_score]):\n    score = pos_score - neg_score\n    loss = tf.log(1 + tf.reduce_sum(tf.exp(-theta * score)))\n    #loss = tf.log(1. + tf.exp(-theta * score))\n    #loss = reduce_loss(loss, combiner)\n    return loss\n\n# https://github.com/tflearn/tflearn/blob/184d753f8fe6ab82a5033f6cbef8edc91b40ca8c/tflearn/objectives.py\ndef roc_auc_score(y_pred, y_true):\n    \"\"\" ROC AUC Score.\n    Approximates the Area Under Curve score, using approximation based on\n    the Wilcoxon-Mann-Whitney U statistic.\n    Yan, L., Dodier, R., Mozer, M. C., & Wolniewicz, R. (2003).\n    Optimizing Classifier Performance via an Approximation to the Wilcoxon-Mann-Whitney Statistic.\n    Measures overall performance for a full range of threshold levels.\n    Arguments:\n        y_pred: `Tensor`. Predicted values.\n        y_true: `Tensor` . Targets (labels), a probability distribution.\n    \"\"\"\n    with tf.name_scope(\"RocAucScore\"):\n\n        pos = tf.boolean_mask(y_pred, tf.cast(y_true, tf.bool))\n        neg = tf.boolean_mask(y_pred, ~tf.cast(y_true, tf.bool))\n\n        pos = tf.expand_dims(pos, 0)\n        neg = tf.expand_dims(neg, 1)\n\n        # original paper suggests performance is robust to exact parameter choice\n        gamma = 0.2\n        p     = 3\n\n        difference = tf.zeros_like(pos * neg) + pos - neg - gamma\n\n        masked = tf.boolean_mask(difference, difference < 0.0)\n\n        return tf.reduce_sum(tf.pow(-masked, p))\n        #return tf.pow(-masked, p)\n\n\n\n#https://github.com/thinline72/toxic/blob/master/skolbachev/toxic/losses.py\n\ndef getClassWeights(Y, mu=0.5):\n    return np.array([w for w in np.log(mu*Y.shape[0]/Y.sum(axis=0))])\n\n# from keras import backend as K\n# def focal_loss(y_true, y_pred, alpha, gamma=0.5):\n#     alpha = K.variable(alpha)\n#     pt = K.abs(1. - y_true - y_pred)\n#     pt = K.clip(pt, K.epsilon(), 1. - K.epsilon())\n#     return K.mean(-alpha * K.pow(1. - pt, gamma) * K.log(pt), axis=-1)\n\ndef u_statistic_loss(y_true, y_pred, gamma=0.2, p=3.0):\n    \"\"\" U statistic loss\n    Approximates the Area Under Curve score, using approximation based on\n    the Wilcoxon-Mann-Whitney U statistic.\n    Yan, L., Dodier, R., Mozer, M. C., & Wolniewicz, R. (2003).\n    Optimizing Classifier Performance via an Approximation to the Wilcoxon-Mann-Whitney Statistic.\n    Measures overall performance for a full range of threshold levels.\n    Arguments:\n        y_pred: `Tensor`. Predicted values.\n        y_true: `Tensor` . Targets (labels), a probability distribution.\n    \"\"\"\n    with tf.name_scope(\"u_statistic_loss\"):\n        \n        pos = tf.boolean_mask(y_pred, tf.cast(y_true, tf.bool))\n        neg = tf.boolean_mask(y_pred, ~tf.cast(y_true, tf.bool))\n        \n        pos = tf.expand_dims(pos, 0)\n        neg = tf.expand_dims(neg, 1)\n        \n        difference = tf.zeros_like(pos * neg) + pos - neg - gamma\n        masked = tf.boolean_mask(difference, difference < 0.0)\n        return tf.reduce_sum(tf.pow(-masked, p))\n\ndef SoftAUC_loss(y_true, y_pred):\n    y_true = tf.cast(y_true, tf.int32)\n    parts = tf.dynamic_partition(y_pred, y_true, 2)\n    y_pos = parts[1]\n    y_neg = parts[0]\n    y_pos = tf.expand_dims(y_pos, 0)\n    y_neg = tf.expand_dims(y_neg, -1)\n    return tf.reduce_mean(tf.nn.sigmoid(y_neg - y_pos))\n\ndef SVMrank_loss(y_true, y_pred):\n    margin = 1.0\n    y_true = tf.cast(y_true, tf.int32)\n    parts = tf.dynamic_partition(y_pred, y_true, 2)\n    y_pos = parts[1]\n    y_neg = parts[0]\n    y_pos = tf.expand_dims(y_pos, 0)\n    y_neg = tf.expand_dims(y_neg, -1)\n    return tf.reduce_mean(tf.nn.relu(margin - y_neg - y_pos))\n\n\n###########experimental losses##############\n\ndef exp_loss(y_true, y_pred):\n    loss = u_statistic_loss(y_true,y_pred) + SoftAUC_loss(y_true, y_pred)\n    return loss\n\ndef art_loss(y_true, y_pred):\n    loss = u_statistic_loss(y_true,y_pred) + SVMrank_loss(y_true, y_pred)\n    return loss\n    \ndef roc_auc_scores(y_pred, y_true):\n  num_classes = melt.get_shape(y_pred, -1)\n  y_preds = tf.split(y_pred, num_classes, axis=1)\n  y_trues = tf.split(y_true, num_classes, axis=1)\n  losses = []\n  for y_pred, y_true in zip(y_preds, y_trues):\n    losses.append(roc_auc_score(y_pred, y_true)) \n    #losses.append(art_loss(y_pred, y_true))\n  return tf.stack(losses)\n\n\n# https://github.com/ailias/Focal-Loss-implement-on-Tensorflow/blob/master/focal_loss.py\n\nfrom tensorflow.python.ops import array_ops\ndef focal_loss(target_tensor, prediction_tensor, weights=None, alpha=0.25, gamma=2):\n    r\"\"\"Compute focal loss for predictions.\n        Multi-labels Focal loss formula:\n            FL = -alpha * (z-p)^gamma * log(p) -(1-alpha) * p^gamma * log(1-p)\n                 ,which alpha = 0.25, gamma = 2, p = sigmoid(x), z = target_tensor.\n    Args:\n     prediction_tensor: A float tensor of shape [batch_size, num_anchors,\n        num_classes] representing the predicted logits for each class\n     target_tensor: A float tensor of shape [batch_size, num_anchors,\n        num_classes] representing one-hot encoded classification targets\n     weights: A float tensor of shape [batch_size, num_anchors]\n     alpha: A scalar tensor for focal loss alpha hyper-parameter\n     gamma: A scalar tensor for focal loss gamma hyper-parameter\n    Returns:\n        loss: A (scalar) tensor representing the value of the loss function\n    \"\"\"\n    sigmoid_p = tf.nn.sigmoid(prediction_tensor)\n    zeros = array_ops.zeros_like(sigmoid_p, dtype=sigmoid_p.dtype)\n    \n    #target_tensor = tf.to_float(target_tensor)\n    target_tensor = tf.one_hot(target_tensor, melt.get_shape(prediction_tensor, -1))\n\n    # For poitive prediction, only need consider front part loss, back part is 0;\n    # target_tensor > zeros <=> z=1, so poitive coefficient = z - p.\n    pos_p_sub = array_ops.where(target_tensor > zeros, target_tensor - sigmoid_p, zeros)\n    \n    # For negative prediction, only need consider back part loss, front part is 0;\n    # target_tensor > zeros <=> z=1, so negative coefficient = 0.\n    neg_p_sub = array_ops.where(target_tensor > zeros, zeros, sigmoid_p)\n    per_entry_cross_ent = - alpha * (pos_p_sub ** gamma) * tf.log(tf.clip_by_value(sigmoid_p, 1e-8, 1.0)) \\\n                          - (1 - alpha) * (neg_p_sub ** gamma) * tf.log(tf.clip_by_value(1.0 - sigmoid_p, 1e-8, 1.0))\n    #return tf.reduce_sum(per_entry_cross_ent)\n    return tf.reduce_mean(per_entry_cross_ent)\n\ndef earth_mover_loss(y_true, y_pred):\t\n  cdf_ytrue = tf.cumsum(y_true, axis=-1)\n  cdf_ypred = tf.cumsum(y_pred, axis=-1)\n  samplewise_emd = tf.sqrt(tf.reduce_mean(tf.square(tf.abs(cdf_ytrue - cdf_ypred)), axis=-1))\n  #return samplewise_emd\n  return tf.reduce_mean(samplewise_emd)\n\ndef bilm_loss(model, x, y, training=False):\n  zero_col = tf.expand_dims(tf.zeros_like(y[:,0]), 1)\n  fw_y = tf.concat([y[:, 1:], zero_col], 1)\n  bw_y = tf.concat([zero_col, y[:, 0:-1]], 1)\n\n  fw_mask = fw_y > 0\n  bw_mask = bw_y > 0  \n\n  ## Well intersting if you just use model.encode() then you will get text_encoder/ as namespace\n  ## if you use model() then you will get like rnet/text_encoder or bi_language_model\n  ## TODO FIXME so by default should use model.encode() that but now I want to use rent pretrain only just set this..\n  # so how to better handle tf pretrain and finetune, bert code need to learn later! maybe that's best way though still a bit complex\n  #y_ = model.encode(x, training=training)\n  y_ = model(x, training=training)\n  \n  fw_y_, bw_y_ = tf.split(y_, 2, axis=-1)\n\n  fw_y_ = model.encode.hidden2tag(fw_y_)\n  bw_y_ = model.encode.hidden2tag(bw_y_)\n\n  fw_weight = tf.to_float(fw_mask)\n  bw_weight = tf.to_float(bw_mask)\n\n  fw_loss = melt.seq2seq.sequence_loss_by_example(fw_y_, fw_y, fw_weight)\n  bw_loss = melt.seq2seq.sequence_loss_by_example(bw_y_, bw_y, bw_weight)\n\n  fw_loss = tf.reduce_mean(fw_loss)\n  bw_loss = tf.reduce_mean(bw_loss)\n\n  # TODO FIXME melt should check return loss is scalar\n  loss = (fw_loss + bw_loss) / 2.\n\n  return loss\n  \n  \n"
  },
  {
    "path": "utils/melt/metrics/__init__.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-09-26 20:28:47.577482\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom melt.metrics.rank_metrics import *\n"
  },
  {
    "path": "utils/melt/metrics/rank_metrics.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\r\n#--------metrics @TODO use contrib ones\ndef precision_at_k(py_x, y, k=1, name=None):\n  with tf.name_scope(name, 'precision_at_%d'%k, [py_x, y]):\n    correct_prediction = tf.nn.in_top_k(py_x, y, k)\n    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n    return accuracy\n"
  },
  {
    "path": "utils/melt/models/__init__.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 17:12:35.563389\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport melt.models.mlp \n"
  },
  {
    "path": "utils/melt/models/mlp.py",
    "content": "#!/usr/bin/env python\r\n# ==============================================================================\r\n#          \\file   mlp.py\r\n#        \\author   chenghuige  \r\n#          \\date   2016-08-16 17:13:04.699501\r\n#   \\Description  \r\n# ==============================================================================\r\n\r\n  \r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport tensorflow as tf \r\nimport tensorflow.contrib.slim as slim\r\n\r\n#from D:\\other\\tensorflow\\tensorflow\\tensorflow\\contrib\\layers\\python\\layers\\layers.py\r\n\r\nfrom tensorflow.python.framework import tensor_shape\r\n\r\nfrom tensorflow.contrib.framework.python.ops import add_arg_scope\r\nfrom tensorflow.contrib.framework.python.ops import variables\r\nfrom tensorflow.contrib.layers.python.layers import initializers\r\nfrom tensorflow.contrib.layers.python.layers import utils\r\nfrom tensorflow.python.framework import dtypes\r\nfrom tensorflow.python.framework import ops\r\nfrom tensorflow.python.framework import sparse_tensor\r\nfrom tensorflow.python.layers import convolutional as convolutional_layers\r\nfrom tensorflow.python.layers import core as core_layers\r\nfrom tensorflow.python.layers import  normalization as normalization_layers\r\nfrom tensorflow.python.layers import pooling as pooling_layers\r\nfrom tensorflow.python.ops import array_ops\r\nfrom tensorflow.python.ops import check_ops\r\nfrom tensorflow.python.ops import init_ops\r\nfrom tensorflow.python.ops import math_ops\r\nfrom tensorflow.python.ops import nn\r\nfrom tensorflow.python.ops import sparse_ops\r\nfrom tensorflow.python.ops import standard_ops\r\nfrom tensorflow.python.ops import variable_scope\r\nfrom tensorflow.python.ops import variables as tf_variables\r\nfrom tensorflow.python.training import moving_averages\r\n\r\nimport melt\r\n\r\ndef forward(inputs,\r\n            num_outputs, \r\n            input_dim=None,\r\n            hiddens=[200], \r\n            activation_fn=tf.nn.relu,\r\n            weights_initializer=initializers.xavier_initializer(),\r\n            weights_regularizer=None,\r\n            biases_initializer=init_ops.zeros_initializer(),\r\n            biases_regularizer=None,\r\n            reuse=None,\r\n            scope=None\r\n            ):\r\n  \"\"\"\r\n  similary as melt.slim.layers.mlp but the first step(from input to first hidden adjusted so input can be sparse)\r\n  \"\"\"\r\n\r\n  scope = 'mlp' if scope is None else scope\r\n  with tf.variable_scope(scope):\r\n    if len(hiddens) == 0:\r\n      #logistic regression\r\n      return melt.linear(inputs, \r\n                     num_outputs, \r\n                     input_dim=input_dim,\r\n                     weights_initializer=weights_initializer,\r\n                     weights_regularizer=weights_regularizer,\r\n                     biases_initializer=biases_initializer,\r\n                     biases_regularizer=biases_regularizer,\r\n                     scope='linear')\r\n\r\n    outputs = melt.layers.fully_connected(inputs, \r\n                                   hiddens[0], \r\n                                   input_dim=input_dim,\r\n                                   activation_fn=activation_fn,\r\n                                   weights_initializer=weights_initializer,\r\n                                   weights_regularizer=weights_regularizer,\r\n                                   biases_initializer=biases_initializer,\r\n                                   biases_regularizer=biases_regularizer,\r\n                                   reuse=reuse,\r\n                                   scope='fc_0')\r\n\r\n   #--------other hidden layers\r\n    # for i in xrange(len(hiddens) -1):\r\n    #   outputs = slim.fully_connected(outputs, hiddens[i + 1], \r\n    #                          activation_fn=activation_fn, \r\n    #                          weights_initializer=weights_initializer,\r\n    #                          weights_regularizer=weights_regularizer,\r\n    #                          biases_initializer=biases_initializer, \r\n    #                          biases_regularizer=biases_regularizer,\r\n    #                          scope='fc_%d'%i+1)\r\n\r\n    slim.stack(outputs, slim.fully_connected, \r\n      hiddens[1:], \r\n      activation_fn=activation_fn,\r\n      weights_initializer=weights_initializer,\r\n      weights_regularizer=weights_regularizer,\r\n      biases_initializer=biases_initializer,\r\n      biases_regularizer=biases_regularizer,\r\n      scope='fc')\r\n\r\n    return slim.linear(outputs, \r\n                     num_outputs, \r\n                     weights_initializer=weights_initializer,\r\n                     weights_regularizer=weights_regularizer,\r\n                     biases_initializer=biases_initializer,\r\n                     biases_regularizer=biases_regularizer,\r\n                     scope='linear')\r\n"
  },
  {
    "path": "utils/melt/ops/__init__.py",
    "content": "import tensorflow as tf\n\nfrom melt.ops.ops import *\n\nfrom melt.ops.sparse_ops import *\n\n#import melt.ops.seq2seq \n\nfrom melt.ops import nn_impl as nn \n"
  },
  {
    "path": "utils/melt/ops/nn_impl.py",
    "content": "\r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport math\r\n\r\nfrom tensorflow.python.framework import constant_op\r\nfrom tensorflow.python.framework import dtypes\r\nfrom tensorflow.python.framework import ops\r\nfrom tensorflow.python.ops import array_ops\r\nfrom tensorflow.python.ops import candidate_sampling_ops\r\nfrom tensorflow.python.ops import embedding_ops\r\nfrom tensorflow.python.ops import gen_nn_ops\r\nfrom tensorflow.python.ops import math_ops\r\nfrom tensorflow.python.ops import nn_ops\r\nfrom tensorflow.python.ops import sparse_ops\r\nfrom tensorflow.python.ops import variables\r\n\r\ndef _sum_rows(x):\r\n  \"\"\"Returns a vector summing up each row of the matrix x.\"\"\"\r\n  # _sum_rows(x) is equivalent to math_ops.reduce_sum(x, 1) when x is\r\n  # a matrix.  The gradient of _sum_rows(x) is more efficient than\r\n  # reduce_sum(x, 1)'s gradient in today's implementation. Therefore,\r\n  # we use _sum_rows(x) in the nce_loss() computation since the loss\r\n  # is mostly used for training.\r\n  cols = array_ops.shape(x)[1]\r\n  ones_shape = array_ops.stack([cols, 1])\r\n  ones = array_ops.ones(ones_shape, x.dtype)\r\n  return array_ops.reshape(math_ops.matmul(x, ones), [-1])\r\n\r\ndef compute_sampled_ids_and_logits(weights,\r\n                            biases,\r\n                            labels,\r\n                            inputs,\r\n                            num_sampled,\r\n                            num_classes,\r\n                            num_true=1,\r\n                            sampled_values=None,\r\n                            subtract_log_q=True,\r\n                            remove_accidental_hits=False,\r\n                            partition_strategy=\"mod\",\r\n                            name=None):\r\n  \"\"\"Helper function for nce_loss and sampled_softmax_loss functions.\r\n\r\n  Computes sampled output training logits and labels suitable for implementing\r\n  e.g. noise-contrastive estimation (see nce_loss) or sampled softmax (see\r\n  sampled_softmax_loss).\r\n\r\n  Note: In the case where num_true > 1, we assign to each target class\r\n  the target probability 1 / num_true so that the target probabilities\r\n  sum to 1 per-example.\r\n\r\n  Args:\r\n    weights: A `Tensor` of shape `[num_classes, dim]`, or a list of `Tensor`\r\n        objects whose concatenation along dimension 0 has shape\r\n        `[num_classes, dim]`.  The (possibly-partitioned) class embeddings.\r\n    biases: A `Tensor` of shape `[num_classes]`.  The (possibly-partitioned)\r\n        class biases.\r\n    labels: A `Tensor` of type `int64` and shape `[batch_size,\r\n        num_true]`. The target classes.  Note that this format differs from\r\n        the `labels` argument of `nn.softmax_cross_entropy_with_logits`.\r\n    inputs: A `Tensor` of shape `[batch_size, dim]`.  The forward\r\n        activations of the input network.\r\n    num_sampled: An `int`.  The number of classes to randomly sample per batch.\r\n    num_classes: An `int`. The number of possible classes.\r\n    num_true: An `int`.  The number of target classes per training example.\r\n    sampled_values: a tuple of (`sampled_candidates`, `true_expected_count`,\r\n        `sampled_expected_count`) returned by a `*_candidate_sampler` function.\r\n        (if None, we default to `log_uniform_candidate_sampler`)\r\n    subtract_log_q: A `bool`.  whether to subtract the log expected count of\r\n        the labels in the sample to get the logits of the true labels.\r\n        Default is True.  Turn off for Negative Sampling.\r\n    remove_accidental_hits:  A `bool`.  whether to remove \"accidental hits\"\r\n        where a sampled class equals one of the target classes.  Default is\r\n        False.\r\n    partition_strategy: A string specifying the partitioning strategy, relevant\r\n        if `len(weights) > 1`. Currently `\"div\"` and `\"mod\"` are supported.\r\n        Default is `\"mod\"`. See `tf.nn.embedding_lookup` for more details.\r\n    name: A name for the operation (optional).\r\n  Returns:\r\n    out_logits, out_labels: `Tensor` objects each with shape\r\n        `[batch_size, num_true + num_sampled]`, for passing to either\r\n        `nn.sigmoid_cross_entropy_with_logits` (NCE) or\r\n        `nn.softmax_cross_entropy_with_logits` (sampled softmax).\r\n  \"\"\"\r\n\r\n  if isinstance(weights, variables.PartitionedVariable):\r\n    weights = list(weights)\r\n  if not isinstance(weights, list):\r\n    weights = [weights]\r\n\r\n  with ops.name_scope(name, \"compute_sampled_logits\",\r\n                      weights + [biases, inputs, labels]):\r\n    if labels.dtype != dtypes.int64:\r\n      labels = math_ops.cast(labels, dtypes.int64)\r\n    labels_flat = array_ops.reshape(labels, [-1])\r\n\r\n    # Sample the negative labels.\r\n    #   sampled shape: [num_sampled] tensor\r\n    #   true_expected_count shape = [batch_size, 1] tensor\r\n    #   sampled_expected_count shape = [num_sampled] tensor\r\n    if sampled_values is None:\r\n      sampled_values = candidate_sampling_ops.log_uniform_candidate_sampler(\r\n          true_classes=labels,\r\n          num_true=num_true,\r\n          num_sampled=num_sampled,\r\n          unique=True,\r\n          range_max=num_classes)\r\n    # NOTE: pylint cannot tell that 'sampled_values' is a sequence\r\n    # pylint: disable=unpacking-non-sequence\r\n    sampled, true_expected_count, sampled_expected_count = (\r\n        array_ops.stop_gradient(s) for s in sampled_values)\r\n    # pylint: enable=unpacking-non-sequence\r\n    sampled = math_ops.cast(sampled, dtypes.int64)\r\n\r\n    # labels_flat is a [batch_size * num_true] tensor\r\n    # sampled is a [num_sampled] int tensor\r\n    all_ids = array_ops.concat([labels_flat, sampled], 0)\r\n\r\n    # weights shape is [num_classes, dim]\r\n    all_w = embedding_ops.embedding_lookup(\r\n        weights, all_ids, partition_strategy=partition_strategy)\r\n    all_b = embedding_ops.embedding_lookup(\r\n        biases, all_ids, partition_strategy=partition_strategy)\r\n    # true_w shape is [batch_size * num_true, dim]\r\n    # true_b is a [batch_size * num_true] tensor\r\n    true_w = array_ops.slice(\r\n        all_w, [0, 0], array_ops.stack([array_ops.shape(labels_flat)[0], -1]))\r\n    true_b = array_ops.slice(all_b, [0], array_ops.shape(labels_flat))\r\n\r\n    # inputs shape is [batch_size, dim]\r\n    # true_w shape is [batch_size * num_true, dim]\r\n    # row_wise_dots is [batch_size, num_true, dim]\r\n    dim = array_ops.shape(true_w)[1:2]\r\n    new_true_w_shape = array_ops.concat([[-1, num_true], dim], 0)\r\n\r\n    row_wise_dots = math_ops.multiply(\r\n        array_ops.expand_dims(inputs, 1),\r\n        array_ops.reshape(true_w, new_true_w_shape))\r\n    # We want the row-wise dot plus biases which yields a\r\n    # [batch_size, num_true] tensor of true_logits.\r\n    dots_as_matrix = array_ops.reshape(row_wise_dots,\r\n                                       array_ops.concat([[-1], dim], 0))\r\n    true_logits = array_ops.reshape(_sum_rows(dots_as_matrix), [-1, num_true])\r\n    true_b = array_ops.reshape(true_b, [-1, num_true])\r\n    true_logits += true_b\r\n\r\n    # Lookup weights and biases for sampled labels.\r\n    #   sampled_w shape is [num_sampled, dim]\r\n    #   sampled_b is a [num_sampled] float tensor\r\n    sampled_w = array_ops.slice(\r\n        all_w, array_ops.stack([array_ops.shape(labels_flat)[0], 0]), [-1, -1])\r\n    sampled_b = array_ops.slice(all_b, array_ops.shape(labels_flat), [-1])\r\n\r\n    # inputs has shape [batch_size, dim]\r\n    # sampled_w has shape [num_sampled, dim]\r\n    # sampled_b has shape [num_sampled]\r\n    # Apply X*W'+B, which yields [batch_size, num_sampled]\r\n    sampled_logits = math_ops.matmul(\r\n        inputs, sampled_w, transpose_b=True) + sampled_b\r\n\r\n    if remove_accidental_hits:\r\n      acc_hits = candidate_sampling_ops.compute_accidental_hits(\r\n          labels, sampled, num_true=num_true)\r\n      acc_indices, acc_ids, acc_weights = acc_hits\r\n\r\n      # This is how SparseToDense expects the indices.\r\n      acc_indices_2d = array_ops.reshape(acc_indices, [-1, 1])\r\n      acc_ids_2d_int32 = array_ops.reshape(\r\n          math_ops.cast(acc_ids, dtypes.int32), [-1, 1])\r\n      sparse_indices = array_ops.concat([acc_indices_2d, acc_ids_2d_int32], 1,\r\n                                        \"sparse_indices\")\r\n      # Create sampled_logits_shape = [batch_size, num_sampled]\r\n      sampled_logits_shape = array_ops.concat(\r\n          [array_ops.shape(labels)[:1], array_ops.expand_dims(num_sampled, 0)],\r\n          0)\r\n      if sampled_logits.dtype != acc_weights.dtype:\r\n        acc_weights = math_ops.cast(acc_weights, sampled_logits.dtype)\r\n      sampled_logits += sparse_ops.sparse_to_dense(\r\n          sparse_indices,\r\n          sampled_logits_shape,\r\n          acc_weights,\r\n          default_value=0.0,\r\n          validate_indices=False)\r\n\r\n    if subtract_log_q:\r\n      # Subtract log of Q(l), prior probability that l appears in sampled.\r\n      true_logits -= math_ops.log(true_expected_count)\r\n      sampled_logits -= math_ops.log(sampled_expected_count)\r\n\r\n        \r\n    out_ids = array_ops.concat([labels, \r\n                                array_ops.tile(\r\n                                          array_ops.expand_dims(sampled, 0), \r\n                                            [array_ops.shape(labels)[0], 1])], 1)\r\n    # Construct output logits and labels. The true labels/logits start at col 0.\r\n    out_logits = array_ops.concat([true_logits, sampled_logits], 1)\r\n    \r\n\r\n  return out_ids, out_logits"
  },
  {
    "path": "utils/melt/ops/ops.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   ops.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 10:09:34.992292\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\nTODO\ntf.sign should be replaced by tf.unequal 0, to allow -1\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nfrom tensorflow.python.framework import constant_op\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import sparse_tensor\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.framework import tensor_util\n# 'Constant' gets imported in the module 'array_ops'.\nfrom tensorflow.python.framework.constant_op import constant\nfrom tensorflow.python.ops import gen_array_ops\nfrom tensorflow.python.ops import gen_math_ops\nfrom tensorflow.python.ops import nn\nfrom tensorflow.python.ops import standard_ops\n# go/tf-wildcard-import\n# pylint: disable=wildcard-import\nfrom tensorflow.python.ops.gen_array_ops import *\nfrom tensorflow.python.util import deprecation\nfrom tensorflow.python.util.deprecation import deprecated\n# pylint: enable=wildcard-import\n\n\n#as tf_utils in order to avoid confilict/hidden melt.utils since (from melt.ops import * will import..)\n#@NOTICE! be careful or if import uitls without rename, you need to from melt.ops not import * and use melt.ops..\nfrom tensorflow.contrib.layers.python.layers import utils as tf_utils\n\nimport numpy as np\n\n# TODO FIXME.. hurt.. WHY ? maybe due to dataset pipline...\n#def greater_then_set(x, thre, val):\n  #mask = tf.cast(x > thre, dtype=x.dtype)\n  #rmask = 1 - mask\n  #return x * rmask + mask * val\n  #return x\n\n#https://stackoverflow.com/questions/39921607/how-to-make-a-custom-activation-function-with-only-python-in-tensorflow\ndef greater_then_set(x, thre, val):\n   cond = tf.greater(x, thre)\n   return tf.where(cond, tf.ones_like(x, dtype=x.dtype) * val, x)\n   #return tf.where(cond, tf.constant(x, dtype=x.dtype, shape=x.shape) * val, x)\n  #return x\n\ndef matmul(X, w):\n  \"\"\" General matmul  that will deal both for dense and sparse input\n  hide the differnce of dense and sparse input for end users\n  Since sparse usage is much less then dense, try to use slim. or tf.contrib.layers directly if possible\n  https://github.com/tensorflow/tensorflow/issues/342\n  Args:\n  X: a tensor, or a list with two sparse tensors (index, value)\n  w: a tensor\n  \"\"\"\n  if isinstance(X, tf.Tensor):\n    return tf.matmul(X,w)\n  else: \n    #X[0] index, X[1] value\n    return tf.nn.embedding_lookup_sparse(w, X[0], X[1], combiner='sum')\n\n#@TODO try to use slim.fully_connected\ndef mlp_forward(input, hidden, hidden_bais, out, out_bias, activation=tf.nn.relu, name=None):\n  #@TODO **args?\n  with tf.name_scope(name, 'mlp_forward', [input, hidden, hidden_bais, out, out_bias, activation]):\n    hidden_output = activation(matmul(input, hidden) + hidden_bais)\n    return tf.matmul(hidden_output, out) + out_bias\n\ndef mlp_forward_nobias(input, hidden, out, activation=tf.nn.relu, name=None):\n  with tf.name_scope(name, 'mlp_forward_nobias', [input, hidden, out, activation]):\n    hidden_output = activation(matmul(input, hidden))\n    return tf.matmul(hidden_output, out) \n\ndef element_wise_dot(a, b, keep_dims=True, name=None):\n  with tf.name_scope(name, 'element_wise_cosine_nonorm', [a, b]):\n    return tf.reduce_sum(tf.multiply(a, b), -1, keep_dims=keep_dims)\n\ndef element_wise_cosine_nonorm(a, b, keep_dims=True, name=None):\n  with tf.name_scope(name, 'element_wise_cosine_nonorm', [a, b]):\n    return tf.reduce_sum(tf.multiply(a, b), -1, keep_dims=keep_dims)\n\n#[batch_size, y], [batch_size, y] => [batch_size, 1]\ndef element_wise_cosine(a, b, a_normed=False, b_normed=False, nonorm=False, keep_dims=True, name=None):\n  if nonorm:\n    return element_wise_cosine_nonorm(a, b, keep_dims, name)\n  with tf.name_scope(name, 'element_wise_cosine', [a,b]):\n    if a_normed:\n      normalized_a = a \n    else:\n      normalized_a = tf.nn.l2_normalize(a, -1)\n    if b_normed:\n      normalized_b = b \n    else:\n      normalized_b = tf.nn.l2_normalize(b, -1)\n    #return tf.matmul(normalized_a, normalized_b, transpose_b=True)\n    return tf.reduce_sum(tf.multiply(normalized_a, normalized_b), -1, keep_dims=keep_dims)\n\ndef dot(a, b, name=None):\n  with tf.name_scope(name, 'dot', [a,b]):\n    return tf.matmul(a, b, transpose_b=True)   \n\n#actually is dot..\ndef cosine_nonorm(a, b, name=None):\n  with tf.name_scope(name, 'cosine_nonorm', [a,b]):\n    return tf.matmul(a, b, transpose_b=True)  \n\n#[batch_size, y] [x, y] => [batch_size, x]\ndef cosine(a, b, a_normed=False, b_normed=False, nonorm=False, name=None):\n  if nonorm:\n    return cosine_nonorm(a, b)\n  with tf.name_scope(name, 'cosine', [a,b]):\n    if a_normed:\n      normalized_a = a \n    else:\n      normalized_a = tf.nn.l2_normalize(a, -1)\n    if b_normed:\n      normalized_b = b \n    else:\n      normalized_b = tf.nn.l2_normalize(b, -1)\n    return tf.matmul(normalized_a, normalized_b, transpose_b=True)\n\ndef reduce_mean(input_tensor,  reduction_indices=None, keep_dims=False):\n  \"\"\"\n  reduce mean with mask\n  \"\"\"\n  return tf.reduce_sum(input_tensor, reduction_indices=reduction_indices, keep_dims=keep_dims) / \\\n         tf.reduce_sum(tf.sign(input_tensor), reduction_indices=reduction_indices, keep_dims=keep_dims)\n\ndef masked_reduce_mean(input_tensor,  reduction_indices=None, keep_dims=False, mask=None):\n  \"\"\"\n  reduce mean with mask\n  [1,2,3,0] -> 2 not 1.5 as normal\n  \"\"\"\n  if mask is None:\n    mask = tf.sign(input_tensor)\n  return tf.reduce_sum(input_tensor, reduction_indices=reduction_indices, keep_dims=keep_dims) / \\\n         tf.reduce_sum(mask, reduction_indices=reduction_indices, keep_dims=keep_dims)\n\ndef reduce_mean_with_mask(input_tensor, mask, reduction_indices=None, keep_dims=False):\n  return  tf.reduce_sum(input_tensor, reduction_indices=reduction_indices, keep_dims=keep_dims) / \\\n          tf.reduce_sum(mask, reduction_indices=reduction_indices, keep_dims=keep_dims)\n\ndef embedding_lookup(emb, index, reduction_indices=None, combiner='mean', name=None):\n  with tf.name_scope(name, 'emb_lookup_%s'%combiner, [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    if combiner == 'mean':\n      return tf.reduce_mean(lookup_result, reduction_indices)\n    elif combiner == 'sum':\n      return tf.reduce_sum(lookup_result, reduction_indices)\n    else:\n      raise ValueError('Unsupported combiner: ', combiner)\n\n# TODO this mean is meaning less.. FIXME should be / real_lenght\ndef embedding_lookup_mean(emb, index, reduction_indices=None, name=None):\n  with tf.name_scope(name, 'emb_lookup_mean', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    return tf.reduce_mean(lookup_result, reduction_indices)\n\ndef embedding_lookup_sum(emb, index, reduction_indices=None, name=None):\n  with tf.name_scope(name, 'emb_lookup_sum', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    return tf.reduce_sum(lookup_result, reduction_indices)\n\ndef masked_embedding_lookup(emb, index, reduction_indices=None, combiner='mean', exclude_zero_index=True, name=None):\n  if combiner == 'mean':\n    return masked_embedding_lookup_mean(emb, index, reduction_indices, combiner, exclude_zero_index, name)\n  elif combiner == 'sum':\n    return masked_embedding_lookup_sum(emb, index, reduction_indices, combiner, exclude_zero_index, name)\n  else:\n    raise ValueError('Unsupported combiner: ', combiner)\n\ndef masked_embedding_lookup_mean(emb, index, reduction_indices=None, exclude_zero_index=True, name=None):\n  \"\"\"\n  @TODO need c++ op to really mask last dim zero feature vector\n  now assume vector should zero filtered to be zero vector @TODO\n  \"\"\"\n  with tf.name_scope(name, 'masked_emb_lookup_mean', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    if exclude_zero_index:\n      masked_emb = mask2d(emb)\n      mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index)\n      lookup_result = tf.mul(lookup_result, mask_lookup_result)\n    return reduce_mean_with_mask(lookup_result,  \n                                 tf.expand_dims(tf.cast(tf.sign(index), dtype=tf.float32), -1),\n                                 reduction_indices)\n\ndef masked_embedding_lookup_sum(emb, index, reduction_indices=None, exclude_zero_index=True, name=None):\n  \"\"\" \n  @TODO need c++ op to really mask last dim zero feature vector\n  now assume vector should zero filtered  to be zero vector\n  or to just make emb firt row zero before lookup ?\n  \"\"\"\n  with tf.name_scope(name, 'masked_emb_lookup_sum', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    if exclude_zero_index:\n      masked_emb = mask2d(emb)\n      mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index)\n      lookup_result = tf.mul(lookup_result, mask_lookup_result)\n    return tf.reduce_sum(lookup_result, reduction_indices)\n\ndef wrapped_embedding_lookup(emb, index, reduction_indices=None, combiner='mean', use_mask=False, name=None):\n  \"\"\"\n  compare to embedding_lookup\n  wrapped_embedding_lookup add use_mask\n  \"\"\"\n  if use_mask:\n    return masked_embedding_lookup(emb, index, reduction_indices, combiner, name)\n  else:\n    return embedding_lookup(emb, index, reduction_indices, combiner, name)\n\ndef batch_embedding_lookup_reduce(emb, index, combiner='mean', name=None):\n  \"\"\"\n  same as embedding_lookup but use index_dim_length - 1 as reduction_indices\n  \"\"\"\n  with tf.name_scope(name, 'batch_emb_lookup_%s'%combiner, [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    #@NOTICE for tf.nn.embedding_lookup, index can be list.. here only tensor\n    reduction_indices = len(index.get_shape()) - 1\n    if combiner == 'mean':\n      return tf.reduce_mean(lookup_result, reduction_indices)\n    elif combiner == 'sum':\n      return tf.reduce_sum(lookup_result, reduction_indices)\n    else:\n      raise ValueError('Unsupported combiner: ', combiner)\n\ndef batch_embedding_lookup_mean(emb, index, name=None):\n  with tf.name_scope(name, 'batch_emb_lookup_mean', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    reduction_indices = len(index.get_shape()) - 1\n    return tf.reduce_mean(lookup_result, reduction_indices)\n\ndef batch_embedding_lookup_sum(emb, index, name=None):\n  with tf.name_scope(name, 'batch_emb_lookup_sum', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    reduction_indices = len(index.get_shape()) - 1\n    return tf.reduce_sum(lookup_result, reduction_indices)\n\ndef batch_masked_embedding_lookup_reduce(emb, index, combiner='mean', exclude_zero_index=True, name=None):\n  if combiner == 'mean':\n    return batch_masked_embedding_lookup_mean(emb, index, exclude_zero_index, name)[1]\n  elif combiner == 'sum':\n    return batch_masked_embedding_lookup_sum(emb, index, exclude_zero_index, name)[1]\n  else:\n    raise ValueError('Unsupported combiner: ', combiner)\n\ndef batch_masked_embedding_lookup_and_reduce(emb, index, combiner='mean', exclude_zero_index=True, name=None):\n  if combiner == 'mean':\n    return batch_masked_embedding_lookup_mean(emb, index, exclude_zero_index, name)\n  elif combiner == 'sum':\n    return batch_masked_embedding_lookup_sum(emb, index, exclude_zero_index, name)\n  else:\n    raise ValueError('Unsupported combiner: ', combiner)\n\ndef batch_masked_embedding_lookup_mean(emb, index, exclude_zero_index=True, name=None):\n  \"\"\"\n  @TODO need c++ op to really mask last dim zero feature vector\n  now assume vector should zero filtered to be zero vector if not exclude_zero_index\n  or will have to do lookup twice\n  \"\"\"\n  with tf.name_scope(name, 'batch_masked_emb_lookup_mean', [emb, index]):\n    #if exclude_zero_index:\n    #-----so slow..\n    #  emb = tf.concat(0, [tf.zeros([1, emb.get_shape()[1]]), \n    #                      emb[1:, :]])\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    reduction_indices = len(index.get_shape()) - 1\n    if exclude_zero_index:\n      #@TODO this will casue 4 times slower \n      masked_emb = mask2d(emb)    \n      mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index)\n      lookup_result = tf.multiply(lookup_result, mask_lookup_result)\n    return lookup_result, reduce_mean_with_mask(lookup_result,  \n                                 tf.expand_dims(tf.cast(tf.sign(index), dtype=tf.float32), -1),\n                                 reduction_indices)\n\ndef batch_masked_embedding_lookup_sum(emb, index, exclude_zero_index=True, name=None):\n  \"\"\" \n  @TODO need c++ op to really mask last dim zero feature vector\n  now assume vector should zero filtered to be zero vector if not exclude_zero_index\n  or will have to do lookup twice\n  \"\"\"\n  with tf.name_scope(name, 'batch_masked_emb_lookup_sum', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    reduction_indices = len(index.get_shape()) - 1  \n    if exclude_zero_index:\n      masked_emb = mask2d(emb)\n      mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index)\n      lookup_result = tf.multiply(lookup_result, mask_lookup_result)\n    return lookup_result, tf.reduce_sum(lookup_result, reduction_indices)\n\ndef batch_masked_embedding_lookup(emb, index, exclude_zero_index=True, name=None):\n  \"\"\" \n  @TODO need c++ op to really mask last dim zero feature vector\n  now assume vector should zero filtered to be zero vector if not exclude_zero_index\n  or will have to do lookup twice\n  \"\"\"\n  with tf.name_scope(name, 'batch_masked_emb_lookup_sum', [emb, index]):\n    lookup_result = tf.nn.embedding_lookup(emb, index)\n    reduction_indices = len(index.get_shape()) - 1  \n    if exclude_zero_index:\n      masked_emb = mask2d(emb)\n      mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index)\n      lookup_result = tf.multiply(lookup_result, mask_lookup_result)\n    return lookup_result \n\ndef batch_wrapped_embedding_lookup(emb, index, combiner='mean', use_mask=False, exclude_zero_index=True, name=None):\n  if use_mask:\n    return batch_masked_embedding_lookup(emb, index, combiner, exclude_zero_index, name)\n  else:\n    return batch_embedding_lookup(emb, index, combiner, name)\n\ndef mask2d(emb):\n  return tf.concat([tf.zeros([1, 1]), tf.ones([emb.get_shape()[0] - 1, 1])], 0)   \n\n#-------x must >= 0  TODO  tf.not_equal(x, 0) ?\ndef length(x, dim=1):\n  #return tf.reduce_sum(tf.sign(x), dim)\n  return tf.reduce_sum(tf.to_int32(tf.sign(x)), dim)\n\ndef length2(x, dim=1):\n  #len_ = tf.reduce_sum(tf.sign(x), dim)\n  len_ = tf.reduce_sum(tf.to_int32(tf.sign(x)), dim)\n  max_len = tf.cast(tf.reduce_max(len_), dtype=tf.int32)\n  return len_, max_len\n\ndef full_length(x):\n   return tf.ones([get_batch_size(x),], dtype=tf.int32) * tf.shape(x)[1]\n\n#---------now only consider 2d @TODO\ndef dynamic_append(x, value=1):\n  length = tf.reduce_sum(tf.sign(x), 1)\n  rows = tf.range(tf.shape(x)[0])\n  rows = tf.cast(rows, x.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  shape = tf.cast(tf.shape(x), x.dtype)\n  delta = tf.sparse_to_dense(coords, shape, value)\n  return x + delta\n\ndef dynamic_append_with_mask(x, mask, value=1):\n  length = tf.reduce_sum(mask, 1)\n  rows = tf.range(tf.shape(x)[0])\n  rows = tf.cast(rows, x.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  shape = tf.cast(tf.shape(x), x.dtype)\n  delta = tf.sparse_to_dense(coords, shape, value)\n  return x + delta\n\ndef dynamic_append_with_length(x, length, value=1):\n  rows = tf.range(tf.shape(x)[0])\n  #rows = tf.cast(rows, x.dtype)\n  rows = tf.cast(rows, length.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  #shape = tf.cast(tf.shape(x), x.dtype)\n  shape = tf.cast(tf.shape(x), length.dtype)\n  delta = tf.sparse_to_dense(coords, shape, value)\n  return x + delta\n\ndef dynamic_append_with_length_float32(x, length, value=1):\n  rows = tf.range(tf.shape(x)[0])\n  rows = tf.cast(rows, length.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  shape = tf.cast(tf.shape(x), length.dtype)\n  delta = tf.sparse_to_dense(coords, shape, 1)\n  delta = tf.cast(delta, x.dtype) * value\n  return x + delta\n\n#@TODO not tested\ndef static_append(x, value=1):\n  length = tf.reduce_sum(tf.sign(x), 1)\n  rows = tf.range(x.get_shape()[0])\n  rows = tf.cast(rows, x.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  shape = tf.cast(x.get_shape(), x.dtype)\n  delta = tf.sparse_to_dense(coords, shape, value)\n  return x + delta\n\ndef static_append_with_mask(x, mask, value=1):\n  length = tf.reduce_sum(mask, 1)\n  rows = tf.range(x.get_shape()[0])\n  rows = tf.cast(rows, x.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  shape = tf.cast(x.get_shape(), x.dtype)\n  delta = tf.sparse_to_dense(coords, shape, value)\n  return x + delta\n\ndef static_append_with_length(x, length, value=1):\n  rows = tf.range(x.get_shape()[0])\n  rows = tf.cast(rows, x.dtype)\n  coords = tf.transpose(tf.stack([rows, length]))\n  shape = tf.cast(x.get_shape(), x.dtype)\n  delta = tf.sparse_to_dense(coords, shape, value)\n  return x + delta\n\ndef first_nrows(x, n):\n  #eval_scores[0:num_evaluate_examples, 1] the diff is below you do not need other dim infos\n  return tf.gather(x, range(n))\n\ndef exclude_last_col(x):\n  \"\"\"\n  @TODO just hack since dynamic x[:,:-1] is not supported \n  now just work for 2d\n  ref to https://github.com/tensorflow/tensorflow/issues/206\n  \"\"\"\n  try:\n    return x[:,:-1]\n  except Exception:\n    return tf.transpose(tf.gather(tf.transpose(x), tf.range(0, x.get_shape()[1] - 1)))\n\ndef dynamic_exclude_last_col(x):\n  \"\"\"\n  @TODO just hack since dynamic x[:,:-1] is not supported \n  now just work for 2d\n  ref to https://github.com/tensorflow/tensorflow/issues/206\n  \"\"\"\n  try:\n    #tf0.12 is ok here\n    return x[:,:-1]\n  except Exception:\n    return tf.transpose(tf.gather(tf.transpose(x), tf.range(0, tf.shape(x)[1] - 1)))\n\ndef gather2d(x, idx):\n  \"\"\"\n  from https://github.com/tensorflow/tensorflow/issues/206\n  x = tf.constant([[1, 2, 3],\n                 [4, 5, 6],\n                 [7, 8, 9]])\nidx = tf.constant([1, 0, 2])\nidx_flattened = tf.range(0, x.shape[0]) * x.shape[1] + idx\ny = tf.gather(tf.reshape(x, [-1]),  # flatten input\n              idx_flattened)  # use flattened indices\n\nwith tf.Session(''):\n  print y.eval()  # [2 4 9]\n  \"\"\"\n  #FIXME\n  try:\n    idx_flattened = tf.cast(tf.range(0, x.shape[0]) * x.shape[1], idx.dtype) + idx\n  except Exception:\n    shape_ = tf.shape(x)\n    idx_flattened = tf.cast(tf.range(0, shape_[0]) * shape_[1], idx.dtype) + idx\n  y = tf.gather(tf.reshape(x, [-1]),  # flatten input\n                idx_flattened)  # use flattened indices\n  return y\n\n#deprecated gpu mem issue, use tf.gather_nd instead\ndef dynamic_gather2d(x, idx):\n  #FIMXE\n  idx_flattened = tf.cast(tf.range(0, tf.shape(x)[0]) * tf.shape(x)[1], idx.dtype) + idx\n  y = tf.gather(tf.reshape(x, [-1]),  # flatten input\n                idx_flattened)  # \n  return y\n\ndef subtract_by_diff(x, y):\n  \"\"\"\n  [1,2, 3, 4] - [1, 2, 1, 4] = [1, 2, 2, 4]\n  assume input x, y is not the same\n  @TODO c++ op\n  \"\"\"\n  delta = tf.abs(x - y)\n  delta_bool = tf.cast(delta, tf.bool)\n  return tf.add(tf.mul(x, tf.cast(tf.logical_not(delta_bool), x.dtype)), delta)\n\n#------this can only deal with same first dimension.. if two batch different batch size not ok\n# def _align(x, y, dim):\n#   x_shape = tf.shape(x)\n#   y_shape = tf.shape(y)\n#   padding_shape = subtract_by_diff(x_shape, y_shape)\n#   x, y = tf.cond(\n#     tf.greater(x_shape[dim], y_shape[dim]), \n#     lambda: (x, tf.concat(dim, [y, tf.zeros(padding_shape, x.dtype)])), \n#     lambda: (tf.concat(dim, [x, tf.zeros(padding_shape, x.dtype)]), y))\n#   return x, y\n\n# def align(x, y, dim):\n#   \"\"\"\n#   @TODO use c++ op\n#   \"\"\"\n#   x_shape = tf.shape(x)\n#   y_shape = tf.shape(y)\n#   x, y = tf.cond(\n#     tf.equal(x_shape[dim], y_shape[dim]),\n#     lambda: (x, y),\n#     lambda: _align(x, y, dim))\n#   return x, y\n\n\ndef _align_col_padding2d(x, y):\n  x_shape = tf.shape(x)\n  y_shape = tf.shape(y)\n\n  x, y = tf.cond(\n    tf.greater(x_shape[1], y_shape[1]), \n    lambda: (x, tf.pad(y, [[0, 0], [0, x_shape[1] - y_shape[1]]])), \n    lambda: (tf.pad(x, [[0, 0], [0, y_shape[1] - x_shape[1]]]), y))\n  return x, y\n\ndef align_col_padding2d(x, y):\n  x_shape = tf.shape(x)\n  y_shape = tf.shape(y)\n  x, y = tf.cond(\n    tf.equal(x_shape[1], y_shape[1]),\n    lambda: (x, y),\n    lambda: _align_col_padding2d(x, y))\n  return x, y\n\ndef make_batch_compat(sequence):\n  sequence_length = length(sequence)\n  num_steps = tf.to_int32(tf.reduce_max(sequence_length))\n  sequence = sequence[:, :num_steps]\n  return sequence\n\ndef last_relevant(output, length):\n  \"\"\"\n  https://danijar.com/variable-sequence-lengths-in-tensorflow/\n  Select the Last Relevant Output\n  For sequence classification, we want to feed the last output of the recurrent network into a predictor, e.g. a softmax layer. While taking the last frame worked well for fixed-sized sequences, we not have to select the last relevant frame. This is a bit cumbersome in TensorFlow since it does’t support advanced slicing yet. In Numpy this would just be output[:, length - 1]. But we need the indexing to be part of the compute graph in order to train the whole system end-to-end.\n  @TODO understand below code\n  \"\"\"\n  batch_size = tf.shape(output)[0]\n  #@TODO could not use in rnn.py why even int fixed length mode?  max_length = int(output.get_shape()[1]) __int__ returned non-int (type NoneType) \n  #because even though you convert sparse to dense to make same length, that length is dynamic , if get in static will be None? So if you use FixedLen to read tfrecord like version 0 in \n  #models/image-text-sim then might ok here, but for comment seems using feed_dict mode still None why? placeholder should have fixed length! \n  #@TODO why need int otherwise in tf.reshape(output, [-1, out_size]) TypeError: Expected int32, got Dimension(1024) of type 'Dimension' instead.\n  max_length = int(output.get_shape()[1])\n  out_size = int(output.get_shape()[2])\n  #index = tf.range(0, batch_size) * max_length + (length - 1)\n  #@TODO may be it is best to convert tfrecord reading to int64 and convert to int32 to avoid unnecessary cast\n  index = tf.cast(tf.range(0, batch_size), length.dtype) * max_length + (length - 1)\n  flat = tf.reshape(output, [-1, out_size])\n  relevant = tf.gather(flat, index)\n  return relevant\n\n\n#----------for rnn\ndef dynamic_last_relevant(output, length):\n  \"\"\"\n  https://danijar.com/variable-sequence-lengths-in-tensorflow/\n  Select the Last Relevant Output\n  For sequence classification, we want to feed the last output of the recurrent network into a predictor, e.g. a softmax layer. While taking the last frame worked well for fixed-sized sequences, we not have to select the last relevant frame. This is a bit cumbersome in TensorFlow since it does’t support advanced slicing yet. In Numpy this would just be output[:, length - 1]. But we need the indexing to be part of the compute graph in order to train the whole system end-to-end. \n\n  not this will only work for 3 d, for general pupose dynamic last might consider\n  output = tf.reverse_sequence(output, seqence_lenth, 1)\n  return output[:, 0, :]\n  \"\"\"\n  shape = tf.shape(output)\n  batch_size = shape[0]\n  #max_length = shape[1]\n  max_length = tf.cast(shape[1], length.dtype)\n  #out_size = shape[2]\n  out_size = int(output.get_shape()[2])\n  #index = tf.range(0, batch_size) * max_length + (length - 1)\n  #@TODO may be it is best to convert tfrecord reading to int64 and convert to int32 to avoid unnecessary cast\n  #here length might be tf.int64 if length calced from mask of int64 type\n  index = tf.cast(tf.range(0, batch_size), length.dtype) * max_length + (length - 1)\n  flat = tf.reshape(output, [-1, out_size])\n  relevant = tf.gather(flat, index)\n  return relevant\n\ndef dynamic_last(output):\n  \"\"\"\n  https://danijar.com/variable-sequence-lengths-in-tensorflow/\n  Select the Last Relevant Output\n  For sequence classification, we want to feed the last output of the recurrent network into a predictor, e.g. a softmax layer. While taking the last frame worked well for fixed-sized sequences, we not have to select the last relevant frame. This is a bit cumbersome in TensorFlow since it does’t support advanced slicing yet. In Numpy this would just be output[:, length - 1]. But we need the indexing to be part of the compute graph in order to train the whole system end-to-end.\n  \"\"\"\n  shape = tf.shape(output)\n  batch_size = shape[0]\n  max_length = shape[1]\n  #out_size = shape[2]\n  out_size = int(output.get_shape()[2])\n  #index = tf.range(0, batch_size) * max_length + (length - 1)\n  #@TODO may be it is best to convert tfrecord reading to int64 and convert to int32 to avoid unnecessary cast\n  index = tf.range(0, batch_size) * max_length + (max_length - 1)\n  flat = tf.reshape(output, [-1, out_size])\n  relevant = tf.gather(flat, index)\n  return relevant\n\ndef static_last(output):\n  return output[:, int(output.get_shape()[1]) - 1, :]\n\n#http://stackoverflow.com/questions/37670886/gathering-columns-of-a-2d-tensor-in-tensorflow\ndef gather_cols(params, indices, name=None):\n    \"\"\"Gather columns of a 2D tensor.\n\n    Args:\n        params: A 2D tensor.\n        indices: A 1D tensor. Must be one of the following types: ``int32``, ``int64``.\n        name: A name for the operation (optional).\n\n    Returns:\n        A 2D Tensor. Has the same type as ``params``.\n    \"\"\"\n    with tf.name_scope(name, \"gather_cols\", [params, indices]) as scope:\n        # Check input\n        params = tf.convert_to_tensor(params, name=\"params\")\n        indices = tf.convert_to_tensor(indices, name=\"indices\")\n        #indices = tf.to_int32(indices)\n        try:\n            params.get_shape().assert_has_rank(2)\n        except ValueError:\n            raise ValueError('\\'params\\' must be 2D.')\n        try:\n            indices.get_shape().assert_has_rank(1)\n        except ValueError:\n            raise ValueError('\\'params\\' must be 1D.')\n\n        # Define op\n        #int64 will cause Tensor conversion requested dtype int64 for Tensor with dtype int32\n        indices = tf.to_int32(indices) \n\n        p_shape = tf.shape(params)\n        p_flat = tf.reshape(params, [-1])\n        i_flat = tf.reshape(tf.reshape(tf.range(0, p_shape[0]) * p_shape[1],\n                                       [-1, 1]) + indices, [-1])\n        return tf.reshape(tf.gather(p_flat, i_flat),\n                          [p_shape[0], -1])\n\n#[batch_size, num_steps, emb_dim] * [emb_dim, vocab_size] -> [batch_size, num_steps, vocab_size] if keep_dims\n#else [batch_size * num_steps, vocab_size]\ndef batch_matmul_embedding(x, emb, keep_dims=False):\n  batch_size = tf.shape(x)[0]\n  emb_shape = tf.shape(emb)\n  emb_dim = emb_shape[0]\n  vocab_size = emb_shape[1]\n  x = tf.reshape(x, [-1, emb_dim])\n  logits = tf.matmul(x, emb)\n  if keep_dims:\n    logits = tf.reshape(logits, [batch_size, -1, vocab_size])\n  return logits\n\n\ndef constants(value, shape, dtype=dtypes.float32, name=None):\n  \"\"\"Creates a tensor with all elements set to zero.\n\n  This operation returns a tensor of type `dtype` with shape `shape` and\n  all elements set to zero.\n\n  For example:\n\n  ```python\n  tf.zeros([3, 4], tf.int32) ==> [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]\n  ```\n\n  Args:\n    shape: Either a list of integers, or a 1-D `Tensor` of type `int32`.\n    dtype: The type of an element in the resulting `Tensor`.\n    name: A name for the operation (optional).\n\n  Returns:\n    A `Tensor` with all elements set to zero.\n  \"\"\"\n  dtype = dtypes.as_dtype(dtype).base_dtype\n  with ops.name_scope(name, \"constants\", [shape]) as name:\n    try:\n      shape = tensor_shape.as_shape(shape)\n      output = constant(value, shape=shape, dtype=dtype, name=name)\n    except (TypeError, ValueError):\n      shape = ops.convert_to_tensor(shape, dtype=dtypes.int32, name=\"shape\")\n      output = fill(shape, constant(value, dtype=dtype), name=name)\n  assert output.dtype.base_dtype == dtype\n  return output\n\n\ndef constants_like(tensor, value, dtype=None, name=None, optimize=True):\n  \"\"\"Creates a tensor with all elements set to zero.\n\n  Given a single tensor (`tensor`), this operation returns a tensor of the\n  same type and shape as `tensor` with all elements set to zero. Optionally,\n  you can use `dtype` to specify a new type for the returned tensor.\n\n  For example:\n\n  ```python\n  # 'tensor' is [[1, 2, 3], [4, 5, 6]]\n  tf.zeros_like(tensor) ==> [[0, 0, 0], [0, 0, 0]]\n  ```\n\n  Args:\n    tensor: A `Tensor`.\n    dtype: A type for the returned `Tensor`. Must be `float32`, `float64`,\n    `int8`, `int16`, `int32`, `int64`, `uint8`, `complex64`, or `complex128`.\n    name: A name for the operation (optional).\n    optimize: if true, attempt to statically determine the shape of 'tensor'\n    and encode it as a constant.\n\n  Returns:\n    A `Tensor` with all elements set to zero.\n  \"\"\"\n  with ops.name_scope(name, \"constants_like\", [tensor]) as name:\n    tensor = ops.convert_to_tensor(tensor, name=\"tensor\")\n    if dtype is not None and tensor.dtype != dtype:\n      ret = constants(value, shape_internal(tensor, optimize=optimize), dtype, name=name)\n      ret.set_shape(tensor.get_shape())\n      return ret\n    else:\n      #TODO better handle\n      return gen_array_ops._zeros_like(tensor, name=name) + value\n\n\n#-----------loss ops\n#@TODO contrib\\losses\\python\\losses\\loss_ops.py\ndef sparse_softmax_cross_entropy(x, y):\n  return tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=x, labels=y))\n\ndef softmax_cross_entropy(x, y):\n  return tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=x, labels=y))\n\ndef sigmoid_cross_entropy(x, y):\n  return tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=x, labels=y))\n\nactivations = {'sigmoid' :  tf.nn.sigmoid, 'tanh' : tf.nn.tanh, 'relu' : tf.nn.relu}\n\n\n#--@TODO other rank loss\n#Depreciated use melt.losses.\n\ndef reduce_loss(loss_matrix, combiner='mean'):\n  if combiner == 'mean':\n    return tf.reduce_mean(loss_matrix)\n  else:\n    return tf.reduce_sum(loss_matrix)\n\ndef hinge_loss(pos_score, neg_score, margin=0.1, combiner='mean', name=None):\n  with tf.name_scope(name, 'hinge_loss', [pos_score, neg_score]):\n    loss_matrix = tf.maximum(0., margin - (pos_score - neg_score))\n    loss = reduce_loss(loss_matrix, combiner)\n    return loss\n\ndef cross_entropy_loss(scores, num_negs=1, combiner='mean', name=None):\n  with tf.name_scope(name, 'cross_entropy_loss', [scores]):\n    batch_size = scores.get_shape()[0]\n    targets = tf.concat([tf.ones([batch_size, 1], tf.float32), tf.zeros([batch_size, num_negs], tf.float32)], 1)\n    #http://www.wildml.com/2016/07/deep-learning-for-chatbots-2-retrieval-based-model-tensorflow/ \n    #I think for binary is same for sigmoid or softmax\n    logits = tf.sigmoid(scores)\n    loss_matrix = tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=targets)\n    #loss_matrix = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=targets)\n    loss = reduce_loss(loss_matrix, combiner)\n    return loss\n\ndef hinge_cross_loss(pos_score, neg_score, combiner='mean', name=None):\n  with tf.name_scope(name, 'hinge_cross_loss', [pos_score, neg_score]):\n    logits = pos_score - neg_score\n    logits = tf.sigmoid(logits)\n    targets = tf.ones_like(neg_score, tf.float32)\n    loss_matrix = tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=targets)\n    loss = reduce_loss(loss_matrix, combiner)\n    return loss\n\ndef last_dimension(x):\n  return tf_utils.last_dimension(x.get_shape())\n\ndef first_dimension(x):\n  return tf_utils.first_dimension(x.get_shape())\n\ndef dimension(x, index):\n  return x.get_shape()[index].value\n\n#def batch_values_to_indices(x):\n#  shape_ = tf.shape(x)\n#  batch_size = shape_[0]\n#  num_cols = shape_[1]\n#  d = tf.transpose(tf.expand_dims(tf.range(batch_size),0))\n#  d = tf.tile(d, [1, num_cols])\n#  d_flatten = tf.reshape(d, [-1, 1])\n#  x_flatten = tf.reshape(x, [-1, 1])\n#  r_flatten = tf.concat([d_flatten, x_flatten], 1)\n#  return tf.reshape(r_flatten, [shape_[0], shape_[1], 2])\n\n#[[0,1,2], [3,4,5]] - > [[[0,0], [0,1], [0,2]], [[1,3], [1,4], [1,5]]]\ndef batch_values_to_indices(index_matrix):\n  replicated_first_indices = tf.range(tf.shape(index_matrix)[0])\n  rank = len(index_matrix.get_shape())\n  if rank == 2:\n    replicated_first_indices = tf.tile(\n        tf.expand_dims(replicated_first_indices, dim=1),\n        [1, tf.shape(index_matrix)[1]])\n  return tf.stack([replicated_first_indices, index_matrix], axis=rank)\n\ndef to_nd_indices(index_matrix):\n  replicated_first_indices = tf.range(tf.shape(index_matrix)[0])\n  rank = len(index_matrix.get_shape())\n  if rank == 2:\n    replicated_first_indices = tf.tile(\n        tf.expand_dims(replicated_first_indices, dim=1),\n        [1, tf.shape(index_matrix)[1]])\n  #print('--------', replicated_first_indices, index_matrix)\n  return tf.stack([replicated_first_indices, index_matrix], axis=rank)\n\ndef nhot(x, max_dim):\n  return tf.scatter_nd(to_nd_indices(tf.to_int32(x)), tf.ones_like(x), shape=(get_batch_size(x), max_dim))\n\ndef dense(inputs, kernel, bias=None, activation=None):\n  #inputs = ops.convert_to_tensor(inputs, dtype=dtype)\n  shape = inputs.get_shape().as_list()\n  output_shape = shape[:-1] + [kernel.get_shape().as_list()[-1]]\n  if len(output_shape) > 2:\n    # Broadcasting is required for the inputs.\n    outputs = standard_ops.tensordot(inputs, kernel, [[len(shape) - 1],\n                                                           [0]])\n    # Reshape the output back to the original ndim of the input.\n    outputs.set_shape(output_shape)\n  else:\n    outputs = standard_ops.matmul(inputs, kernel)\n  if bias is not None:\n    outputs = nn.bias_add(outputs, bias)\n  if activation is not None:\n    return activation(outputs)  # pylint: disable=not-callable\n  return outputs\n\ndef sequence_equal(x, y):\n  return tf.reduce_mean(tf.to_int32(tf.equal(x,y)), 1)\n\ndef get_batch_size(x):\n  #or .shape.as_list()[0]  or .get_shape().as_list()[0]\n  return x.get_shape()[0].value or tf.shape(x)[0]\n\ndef get_shape(x, dim):\n  return x.get_shape()[dim].value or tf.shape(x)[dim]\n\ndef get_dims(x):\n  return len(x.get_shape())\n\ndef get_weighted_outputs(outputs, sequence_length):\n  weight = -1e18\n  sequence_mask = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length, tf.shape(outputs)[1])), -1)\n  weighted_mask = sequence_mask * weight\n  weighted_outputs = outputs + weighted_mask  \n  return weighted_outputs\n\n# default axis might be -2\ndef max_pooling(outputs, sequence_length=None, axis=1, reduce_func=tf.reduce_max):\n  if sequence_length is None:\n    return reduce_func(outputs, axis)\n  weight = -1e18\n  sequence_mask = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length, tf.shape(outputs)[1])), -1)\n  weighted_mask = sequence_mask * weight\n  weighted_output = outputs + weighted_mask\n  return reduce_func(weighted_output, axis)\n\ndef max_pooling2(outputs, sequence_length, sequence_length2, axis=1, reduce_func=tf.reduce_max):\n  weight = -1e18\n  sequence_mask = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length)), -1)\n  sequence_mask2 = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length2)), -1)\n\n  sequence_mask = tf.concat([sequence_mask, sequence_mask2], 1)\n  weighted_mask = sequence_mask * weight\n  weighted_output = outputs + weighted_mask\n  return reduce_func(weighted_output, axis)\n\n# not to use it directly!\ndef top_k_pooling(outputs, top_k, sequence_length=None, axis=1):\n  assert sequence_length is not None\n  # if sequence_length is None:\n  #   sequence_length, _ = melt.length2()\n  #   #sequence_length = melt.length(outputs)\n  #   #return reduce_func(outputs, axis)\n  weight = -1e18\n  sequence_mask = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length, tf.shape(outputs)[1])), -1)\n  weighted_mask = sequence_mask * weight\n  weighted_output = outputs + weighted_mask\n  # swap last two dimensions since top_k will be applied along the last dimension\n  shifted_output = tf.transpose(weighted_output, [0, 2, 1])\n  return tf.nn.top_k(shifted_output, top_k)\n\nimport melt\ndef argtopk_pooling(outputs, top_k, sequence_length=None, axis=1):\n  x = top_k_pooling(outputs, top_k, sequence_length, axis).indices\n  #return tf.reshape(x, [melt.get_shape(outputs, 0), -1])\n  return tf.reshape(x, [-1, melt.get_shape(outputs, -1) * top_k])\n\ndef argmax_pooling(outputs, sequence_length, axis=1):\n  return max_pooling(outputs, sequence_length, axis, reduce_func=tf.argmax)\n\ndef mean_pooling(outputs, sequence_length=None, axis=1):\n  if sequence_length is None:\n    return tf.reduce_mean(outputs, axis)\n  sequence_mask = tf.to_float(tf.expand_dims(tf.sequence_mask(sequence_length, tf.shape(outputs)[1]), -1))\n  outputs = outputs * sequence_mask\n  return tf.reduce_sum(outputs, axis) / tf.to_float(tf.expand_dims(sequence_length, 1)) \n\ndef sum_pooling(outputs, sequence_length=None, axis=1):\n  if sequence_length is None:\n    return tf.reduce_sum(outputs, axis)\n  # cause problem of dim mismatch if using multiple gpu using split batch\n  # if sequence_mask not input maxlens\n  sequence_mask = tf.to_float(tf.expand_dims(tf.sequence_mask(sequence_length, tf.shape(outputs)[1]), -1))\n  outputs = outputs * sequence_mask\n  return tf.reduce_sum(outputs, axis) \n\ndef hier_encode(outputs, sequence_length, window_size=3, axis=1):\n  #weight = -1e18\n  #sequence_mask = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length, tf.shape(outputs)[1])), -1)\n  #weighted_mask = sequence_mask * weight\n  #print('before mask', outputs)\n  #outputs = outputs + weighted_mask\n  #print('before_pool', outputs)\n  sequence_mask = tf.to_float(tf.expand_dims(tf.sequence_mask(sequence_length), -1))\n  outputs = outputs * sequence_mask\n  #outputs = get_weighted_outputs(outputs, sequence_length)\n  outputs = tf.nn.pool(outputs, [window_size], 'AVG', 'SAME')\n  return outputs\n\n\ndef hier_pooling(outputs, sequence_length, window_size=3, axis=1):\n  #weight = -1e18\n  #sequence_mask = tf.expand_dims(1. - tf.to_float(tf.sequence_mask(sequence_length, tf.shape(outputs)[1])), -1)\n  #weighted_mask = sequence_mask * weight\n  #print('before mask', outputs)\n  #outputs = outputs + weighted_mask\n  #print('before_pool', outputs)\n  sequence_mask = tf.to_float(tf.expand_dims(tf.sequence_mask(sequence_length), -1))\n  outputs = outputs * sequence_mask\n  #outputs = get_weighted_outputs(outputs, sequence_length)\n  outputs = tf.nn.pool(outputs, [window_size], 'AVG', 'SAME')\n  outputs = get_weighted_outpus(outputs, sequence_length)\n  #print('------------outputs', outputs)\n  outputs = tf.reduce_max(outputs, axis)\n  return outputs\n\ndef argmax_importance(argmax_values, shape):\n  # argmax_vlalues [batch_size, emb_dim]\n  indices = batch_values_to_indices(tf.to_int32(argmax_values))\n  updates = tf.ones_like(argmax_values)\n  # actually do not need sequence mask ? since when encode has masked already\n  # TODO check\n  scores = tf.scatter_nd(indices, updates, shape=shape) \n  #scores = tf.scatter_nd(indices, updates, shape=shape) * tf.to_int64(tf.sequence_mask(self.sequence_length, shape[-1]))\n  return scores\n\ndef maxpooling_importance(outputs, sequence_length=None, axis=1):\n  argmax_values = argmax_pooling(outputs, sequence_length, axis)\n  return argmax_importance(argmax_values, [tf.shape(outputs)[0], tf.shape(outputs)[1]])\n\ndef topkpooling_importance(outputs, top_k, sequence_length=None, axis=1):\n  argtopk_values = argtopk_pooling(outputs, top_k, sequence_length, axis)\n  return argmax_importance(argtopk_values, [tf.shape(outputs)[0], tf.shape(outputs)[1] * top_k])\n\n\n# TODO like tf change from dim to axis\ndef slim_batch(sequence, sequence_length=None, dim=1):\n  if sequence_length is None:\n    sequence_length = length(sequence, dim)\n  num_steps = tf.cast(tf.reduce_max(sequence_length), dtype=tf.int32)\n  dims = get_dims(sequence)\n  starts = [0] * dims \n  lens = [-1] * dims \n  lens[dim] = num_steps\n  sequence = tf.slice(sequence, starts, lens) \n  return sequence  \n\ndef slim_batch2(sequence, sequence_length=None, dim=1):\n  if sequence_length is None:\n    sequence_length = length(sequence, dim)\n  num_steps = tf.cast(tf.reduce_max(sequence_length), dtype=tf.int32)\n  dims = get_dims(sequence)\n  starts = [0] * dims \n  lens = [-1] * dims \n  lens[dim] = num_steps\n  sequence = tf.slice(sequence, starts, lens) \n  return sequence, sequence_length  \n\n# from squad of HKUST\ndef dropout(args, keep_prob, training, mode=\"recurrent\"):\n  if keep_prob < 1.0 and training:\n    noise_shape = None\n    scale = 1.0\n    shape = tf.shape(args)\n    if mode == \"embedding\":\n      noise_shape = [shape[0], 1]\n      scale = keep_prob\n    if mode == \"recurrent\" and len(args.get_shape().as_list()) == 3:\n      noise_shape = [shape[0], 1, shape[-1]]    \n    args = tf.nn.dropout(args, keep_prob, noise_shape=noise_shape) * scale\n  return args\n\n# this is fine, but lengths should has one row without padding 0\ndef masked_softmax(values, lengths):\n  with tf.variable_scope('masked_softmax'):\n    mask = tf.expand_dims(tf.sequence_mask(lengths, dtype=tf.float32), -1)\n    # here mask 1 will get nan mask 0 -inf\n    inf_mask = (1 - mask) * -np.inf\n    # keep -inf unchanged and make nan to 0\n    inf_mask = tf.where(tf.is_nan(inf_mask), tf.zeros_like(inf_mask), inf_mask)\n    return tf.nn.softmax(tf.multiply(values, mask) + inf_mask, axis=1)\n\n# TODO \ndef softmax_mask(val, mask):\n  INF = 1e30\n  return -INF * (1 - tf.cast(mask, tf.float32)) + val\n\ndef get_words_importance(outputs=None, sequence_length=None, top_k=None, method='max'):\n  if method == 'max':\n    words_scores = maxpooling_importance(outputs, sequence_length) \n    words_scores = tf.to_float(words_scores / tf.reduce_sum(words_scores, -1)) * tf.to_float(sequence_length)\n  elif method == 'attention' or method =='att':\n    words_scores = tf.get_collection('self_attention')[-1] * tf.to_float(sequence_length)\n  elif method == 'top_k' or method == 'topk':\n    words_scores = topkpooling_importance(outputs, top_k, sequence_length) \n    words_scores = tf.to_float(words_scores / tf.reduce_sum(words_scores, -1)) * tf.to_float(sequence_length)\n  else:\n    #raise ValueError(f'unsupported method {method}')\n    words_scores = []\n  return words_scores\n\n#https://stackoverflow.com/questions/43210033/tensorflow-unsorted-segment-sum-dimension\ndef unsorted_segment_sum_emb(data, segment_ids, num_segments):\n  num_rows = tf.shape(segment_ids)[0]\n  rows_idx = tf.range(num_rows)\n  rows_idx = tf.cast(rows_idx, segment_ids.dtype)\n  segment_ids_per_row = segment_ids + num_segments * tf.expand_dims(rows_idx, axis=1)\n  seg_sums = tf.unsorted_segment_sum(data, segment_ids_per_row, num_segments * num_rows)\n  result = tf.reshape(seg_sums, [-1, num_segments, tf.shape(data)[-1]])\n  return result"
  },
  {
    "path": "utils/melt/ops/sparse_ops.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   sparse_ops.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 10:09:41.241790\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n  \ndef sparse_tensor_to_dense(input_tensor, maxlen=0):\n  \"\"\"\n  notice maxlen must > your max real index\n  otherwise runtime check error like \n  Invalid argument: indices[3] = [0,3] is out of bounds: need 0 <= index < [5,3]\n  @FIXME still face this might be tf bug, when running mutlitple tf reading same data ?\n  \"\"\"\n  if maxlen <= 0:\n    return tf.sparse_tensor_to_dense(input_tensor)\n  else:\n    return tf.sparse_to_dense(input_tensor.indices, \n                              [input_tensor.dense_shape[0], maxlen], \n                              input_tensor.values)"
  },
  {
    "path": "utils/melt/rnn/__init__.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-12-23 14:00:38.403784\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom melt.rnn.rnn import * \n"
  },
  {
    "path": "utils/melt/rnn/rnn.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   rnn.py\n#        \\author   chenghuige  \n#          \\date   2016-12-23 14:02:57.513674\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\nrnn encoding\n\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nfrom melt.ops import dynamic_last_relevant, dropout\n\nimport copy\n\nimport melt\nlogging = melt.logging\n\n#TODO change from 0, 1 .. to 'forward', 'backward' , 'sum', 'last'\nclass EncodeMethod:\n  forward = 'forward'\n  backward = 'backward'\n  bidirectional = 'bidirectional'\n  stack_bidirectional = 'stack_bidirectional'\n  stack_bidirectional_concat_layers = 'stack_bidirectional_concat_layers'\n  bidirectional_sum = 'bidirectional_sum'\n\ndef is_bidirectional(method):\n  return method == EncodeMethod.bidirectional \\\n      or method == EncodeMethod.stack_bidirectional \\\n      or method == EncodeMethod.stack_bidirectional_concat_layers \\\n      or method == EncodeMethod.bidirectional_sum \\\n\nclass OutputMethod:\n  sum = 'sum'\n  masked_sum = 'maskedsum'\n  last = 'last'\n  first = 'first'\n  all = 'all'\n  mean = 'mean'\n  masked_mean = 'maskedmean'\n  max = 'max'\n  argmax = 'argmax'\n  state = 'state'\n  attention = 'attention'\n  hier = 'hier'\n\n# native gru depreciated, only for low tf like hadoop env\nclass NativeGru:\n  def __init__(self, \n               num_layers, \n               num_units, \n               keep_prob=1.0, \n               share_dropout=True,\n               dropout_mode=None, \n               train_init_state=True,\n               is_train=None, \n               scope=\"native_gru\"):\n    self.num_layers = num_layers\n    self.keep_prob = keep_prob\n    self.num_units = num_units\n    self.is_train = is_train\n    self.train_init_state = train_init_state\n    self.scope = scope\n\n    self.share_dropout = share_dropout\n    self.dropout_mode = dropout_mode\n    self.dropout_mask_fw = [None] * num_layers\n    self.dropout_mask_bw = [None] * num_layers\n\n    self.init_fw = [None] * num_layers\n    self.init_bw = [None] * num_layers \n\n  def set_dropout_mask(self, mask_fw, mask_bw):\n    self.dropout_mask_fw = mask_fw \n    self.dropout_mask_bw = mask_bw\n\n  def set_init_states(self, init_fw, init_bw):\n    self.init_fw = init_fw\n    self.init_bw = init_bw\n\n  def reset_init_states(self):\n    self.init_fw = [None] * self.num_layers\n    self.init_bw = [None] * self.num_layers     \n\n  def encode(self, inputs, seq_len, emb=None, concat_layers=True, output_method=OutputMethod.all):\n    if emb is not None:\n      inputs = tf.nn.embedding_lookup(emb, inputs)\n\n    outputs = [inputs]\n    keep_prob = self.keep_prob\n    num_units = self.num_units\n    is_train = self.is_train\n\n    with tf.variable_scope(self.scope, reuse=tf.AUTO_REUSE):\n      for layer in range(self.num_layers):\n        input_size_ = melt.get_shape(inputs, -1) if layer == 0 else 2 * num_units\n        batch_size = melt.get_batch_size(inputs)\n        with tf.variable_scope(\"fw_{}\".format(layer)):\n          gru_fw = tf.contrib.rnn.GRUCell(num_units)\n          if not self.share_dropout:\n            mask_fw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                       keep_prob=keep_prob, is_train=is_train, mode=self.dropout_mode)\n          else:\n            if self.dropout_mask_fw[layer] is None:\n              mask_fw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                         keep_prob=keep_prob, is_train=is_train, mode=self.dropout_mode)\n              self.dropout_mask_fw[layer] = mask_fw\n            else:\n              mask_fw = self.dropout_mask_fw[layer]\n          if self.train_init_state:\n            if self.init_fw[layer] is None:\n              self.init_fw[layer] = tf.tile(tf.get_variable(\"init_state\", [1, num_units], tf.float32, tf.zeros_initializer()), [batch_size, 1])\n          out_fw, state = tf.nn.dynamic_rnn(\n                            gru_fw, outputs[-1] * mask_fw, seq_len, initial_state=self.init_fw[layer], dtype=tf.float32)\n        with tf.variable_scope(\"bw_{}\".format(layer)):\n          gru_bw = tf.contrib.rnn.GRUCell(num_units)\n          if not self.share_dropout:\n            mask_bw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                       keep_prob=keep_prob, is_train=is_train, mode=self.dropout_mode)           \n          else:\n            if self.dropout_mask_bw[layer] is None:\n              mask_bw = dropout(tf.ones([batch_size, 1, input_size_], dtype=tf.float32),\n                                         keep_prob=keep_prob, is_train=is_train, mode=self.dropout_mode)\n              self.dropout_mask_bw[layer] = mask_bw\n            else:\n              mask_bw = self.dropout_mask_bw[layer]\n          if self.train_init_state:\n            if self.init_bw[layer] is None:\n              self.init_bw[layer] = tf.tile(tf.get_variable(\"init_state\", [1, num_units], tf.float32, tf.zeros_initializer()), [batch_size, 1])\n          inputs_bw = tf.reverse_sequence(\n                        outputs[-1] * mask_bw, seq_lengths=seq_len, seq_dim=1, batch_dim=0)\n          out_bw, _ = tf.nn.dynamic_rnn(\n                        gru_bw, inputs_bw, seq_len, initial_state=self.init_bw[layer], dtype=tf.float32)\n          out_bw = tf.reverse_sequence(\n                        out_bw, seq_lengths=seq_len, seq_dim=1, batch_dim=0)\n        outputs.append(tf.concat([out_fw, out_bw], axis=2))\n    \n    if concat_layers:\n      res = tf.concat(outputs[1:], axis=2)\n    else:\n      res = outputs[-1]\n    res = encode_outputs(res, seq_len, output_method=output_method)\n    return res\n\n  def __call__(self, inputs, seq_len, emb=None, concat_layers=True, output_method=OutputMethod.all):\n    return self.encode(inputs, seq_len, emb, concat_layers, output_method)\n\n\nclass CudnnRnn:\n  def __init__(self, \n                cell, \n                num_layers, \n                num_units, \n                keep_prob=1.0, \n                share_dropout=True,\n                train_init_state=True,\n                is_train=None, \n                scope='cudnn'):\n    self.cell = cell\n    if isinstance(cell, str):\n      if cell == 'gru':\n        self.cell = tf.contrib.cudnn_rnn.CudnnGRU\n        scope = scope + '_gru'\n      elif cell == 'lstm':\n        self.cell = tf.contrib.cudnn_rnn.CudnnLSTM \n        scope = scope + '_lstm'\n      else:\n        raise ValueError(cell)\n\n    logging.info('cudnn cell:', self.cell)\n    self.num_layers = num_layers\n    self.keep_prob = keep_prob\n    assert num_units % 4 == 0, 'bad performance for units size not % 4'\n    self.num_units = num_units\n    self.is_train = is_train\n    self.scope=scope\n\n    # for share dropout between like context and question in squad (machine reading task)\n    # rnn = gru(num_layers=FLAGS.num_layers, num_units=d, keep_prob=keep_prob, is_train=self.is_training)\n    # c = rnn(c_emb, seq_len=c_len)\n    # scope.reuse_variables()\n    # q = rnn(q_emb, seq_len=q_len)\n    self.share_dropout = share_dropout\n    self.dropout_mask_fw = [None] * num_layers\n    self.dropout_mask_bw = [None] * num_layers \n\n    self.train_init_state = train_init_state\n    self.init_fw = [None] * num_layers\n    self.init_bw = [None] * num_layers \n\n    self.state = None\n\n  def set_dropout_mask(self, mask_fw, mask_bw):\n    self.dropout_mask_fw = mask_fw \n    self.dropout_mask_bw = mask_bw\n\n  def set_init_states(self, init_fw, init_bw):\n    self.init_fw = init_fw\n    self.init_bw = init_bw\n\n  def reset_init_states(self):\n    self.init_fw = [None] * self.num_layers\n    self.init_bw = [None] * self.num_layers     \n\n  def encode(self, inputs, seq_len, emb=None, concat_layers=True, output_method=OutputMethod.all):\n    if emb is not None:\n      inputs = tf.nn.embedding_lookup(emb, inputs)\n      \n    outputs = [tf.transpose(inputs, [1, 0, 2])]\n    #states = []\n    keep_prob = self.keep_prob\n    num_units = self.num_units\n    is_train = self.is_train\n\n    with tf.variable_scope(self.scope, reuse=tf.AUTO_REUSE):\n      for layer in range(self.num_layers):\n        input_size_ = melt.get_shape(inputs, -1) if layer == 0 else 2 * num_units\n        batch_size = melt.get_batch_size(inputs)\n\n        with tf.variable_scope(\"fw_{}\".format(layer)):\n          gru_fw = self.cell(num_layers=1, num_units=num_units)\n          if not self.share_dropout:\n            mask_fw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                          keep_prob=keep_prob, is_train=is_train, mode=None)\n          else:\n            if self.dropout_mask_fw[layer] is None:\n              mask_fw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                          keep_prob=keep_prob, is_train=is_train, mode=None)\n              self.dropout_mask_fw[layer] = mask_fw\n            else:\n              mask_fw = self.dropout_mask_fw[layer]\n          if self.train_init_state:\n            if self.init_fw[layer] is None:\n              self.init_fw[layer] = (tf.tile(tf.get_variable(\"init_state\", [1, 1, num_units], tf.float32, tf.zeros_initializer()), [1, batch_size, 1]),)\n          out_fw, state_fw = gru_fw(outputs[-1] * mask_fw, self.init_fw[layer])\n\n        with tf.variable_scope(\"bw_{}\".format(layer)):\n          gru_bw = self.cell(num_layers=1, num_units=num_units)\n          if not self.share_dropout:\n            mask_bw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                        keep_prob=keep_prob, is_train=is_train, mode=None)\n          else:\n            if self.dropout_mask_bw[layer] is None:\n              mask_bw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                          keep_prob=keep_prob, is_train=is_train, mode=None)\n              self.dropout_mask_bw[layer] = mask_bw\n            else:\n              mask_bw = self.dropout_mask_bw[layer]\n          inputs_bw = tf.reverse_sequence(\n              outputs[-1] * mask_bw, seq_lengths=seq_len, seq_dim=0, batch_dim=1)\n          if self.train_init_state:\n            if self.init_bw[layer] is None:\n              self.init_bw[layer] = (tf.tile(tf.get_variable(\"init_state\", [1, 1, num_units], tf.float32, tf.zeros_initializer()), [1, batch_size, 1]),)\n          out_bw, state_bw = gru_bw(inputs_bw, self.init_bw[layer])\n          out_bw = tf.reverse_sequence(\n              out_bw, seq_lengths=seq_len, seq_dim=0, batch_dim=1)\n\n        outputs.append(tf.concat([out_fw, out_bw], axis=2))\n        #states.append(tf.concat([state_fw, state_bw], axis=-1))\n\n    if concat_layers:\n      res = tf.concat(outputs[1:], axis=2)\n      #state = tf.concat(states, axis=-1)\n    else:\n      res = outputs[-1]\n      #state = states[-1]\n\n    res = tf.transpose(res, [1, 0, 2])\n    #state = tf.squeeze(state)\n    #state = tf.reshape(state, [-1, num_units * 2 * self.num_layers])\n    #res = encode_outputs(res, output_method=output_method, sequence_length=seq_len, state=state)\n    res = encode_outputs(res, output_method=output_method, sequence_length=seq_len)\n\n    self.state = (state_fw, state_bw)\n\n    return res\n\n  def __call__(self, inputs, seq_len, emb=None, concat_layers=True, output_method=OutputMethod.all):\n    return self.encode(inputs, seq_len, emb, concat_layers, output_method)\n\n# tested on tf1.6\nclass CudnnGru:\n  def __init__(self, \n                num_layers, \n                num_units, \n                keep_prob=1.0, \n                share_dropout=True, \n                train_init_state=True, \n                is_train=None, \n                scope='cudnn_gru'):\n    self.num_layers = num_layers\n    self.keep_prob = keep_prob\n    assert num_units % 4 == 0, 'bad performance for units size not % 4'\n    self.num_units = num_units\n    self.is_train = is_train\n    self.scope=scope\n\n    self.share_dropout = share_dropout\n    self.dropout_mask_fw = [None] * num_layers\n    self.dropout_mask_bw = [None] * num_layers \n\n    self.train_init_state = train_init_state\n    self.init_fw = [None] * num_layers\n    self.init_bw = [None] * num_layers \n\n    self.state = None\n\n  def set_dropout_mask(self, mask_fw, mask_bw):\n    self.dropout_mask_fw = mask_fw \n    self.dropout_mask_bw = mask_bw\n\n  def set_init_states(self, init_fw, init_bw):\n    self.init_fw = init_fw\n    self.init_bw = init_bw\n\n  def reset_init_states(self):\n    self.init_fw = [None] * self.num_layers\n    self.init_bw = [None] * self.num_layers      \n\n  def encode(self, inputs, seq_len, emb=None, concat_layers=True, output_method=OutputMethod.all):\n    if emb is not None:\n      inputs = tf.nn.embedding_lookup(emb, inputs)\n      \n    outputs = [tf.transpose(inputs, [1, 0, 2])]\n    #states = []\n    keep_prob = self.keep_prob\n    num_units = self.num_units\n    is_train = self.is_train\n\n    with tf.variable_scope(self.scope, reuse=tf.AUTO_REUSE):\n      for layer in range(self.num_layers):\n        input_size_ = melt.get_shape(inputs, -1) if layer == 0 else 2 * num_units\n        batch_size = melt.get_batch_size(inputs)\n\n        with tf.variable_scope(\"fw_{}\".format(layer)):\n          gru_fw = tf.contrib.cudnn_rnn.CudnnGRU(num_layers=1, num_units=num_units)\n          if not self.share_dropout:\n            # mode is None since by define mask.. is already recurrent mode\n            mask_fw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                        keep_prob=keep_prob, is_train=is_train, mode=None)\n          else:             \n            if self.dropout_mask_fw[layer] is None:\n              mask_fw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                          keep_prob=keep_prob, is_train=is_train, mode=None)\n              self.dropout_mask_fw[layer] = mask_fw\n            else:\n              mask_fw = self.dropout_mask_fw[layer]\n          if self.train_init_state:\n            if self.init_fw[layer] is None:\n              self.init_fw[layer] = (tf.tile(tf.get_variable(\"init_state\", [1, 1, num_units], tf.float32, tf.zeros_initializer()), [1, batch_size, 1]),)\n          out_fw, state_fw = gru_fw(outputs[-1] * mask_fw, self.init_fw[layer])\n\n        with tf.variable_scope(\"bw_{}\".format(layer)):\n          gru_bw = tf.contrib.cudnn_rnn.CudnnGRU(num_layers=1, num_units=num_units)\n          if not self.share_dropout:\n            mask_bw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                        keep_prob=keep_prob, is_train=is_train, mode=None)\n          else:              \n            if self.dropout_mask_bw[layer] is None:\n              mask_bw = dropout(tf.ones([1, batch_size, input_size_], dtype=tf.float32),\n                                          keep_prob=keep_prob, is_train=is_train, mode=None)\n              self.dropout_mask_bw[layer] = mask_bw\n            else:\n              mask_bw = self.dropout_mask_bw[layer]\n          inputs_bw = tf.reverse_sequence(\n              outputs[-1] * mask_bw, seq_lengths=seq_len, seq_dim=0, batch_dim=1)\n          if self.train_init_state:\n            if self.init_bw[layer] is None:\n              self.init_bw[layer] = (tf.tile(tf.get_variable(\"init_state\", [1, 1, num_units], tf.float32, tf.zeros_initializer()), [1, batch_size, 1]),)\n          out_bw, state_bw = gru_bw(inputs_bw, self.init_bw[layer])\n          out_bw = tf.reverse_sequence(\n              out_bw, seq_lengths=seq_len, seq_dim=0, batch_dim=1)\n        \n        outputs.append(tf.concat([out_fw, out_bw], axis=2))\n        #states.append(tf.concat([state_fw, state_bw], axis=-1))\n\n    if concat_layers:\n      res = tf.concat(outputs[1:], axis=2)\n      #state = tf.concat(states, axis=-1)\n    else:\n      res = outputs[-1]\n      #state = states[-1]\n\n    res = tf.transpose(res, [1, 0, 2])\n    #state = tf.squeeze(state)\n    #state = tf.reshape(state, [-1, num_units * 2 * self.num_layers])\n    #res = encode_outputs(res, output_method=output_method, sequence_length=seq_len, state=state)\n    res = encode_outputs(res, output_method=output_method, sequence_length=seq_len)\n\n    self.state = (state_fw, state_bw)\n    return res\n\n  def __call__(self, inputs, seq_len, emb=None, concat_layers=True, output_method=OutputMethod.all):\n    return self.encode(inputs, seq_len, emb, concat_layers, output_method)\n\n# else:\n#   logging.warning('using native_gru instead of cudnn due to low tf version then 1.5')\n#   CudnnGru = NativeGru\n\nclass NullEncoder():\n  def encode(self, inputs, sequence_length, output_method='all'):\n    return encode_outputs(inputs, sequence_length, output_method)\n\n# TODO move from rnn to general lib like ops or layers         \n# TODO add support for top_k in addtion to max pooling \n# https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge/discussion/52526#299619\n# #     def _top_k(x):\n#         x = tf.transpose(x, [0, 2, 1])\n#         k_max = tf.nn.top_k(x, k=top_k)\n#         return tf.reshape(k_max[0], (-1, 2 * num_filters * top_k))                                                                                                                                                                                                                                                                     \ndef encode_outputs(outputs, sequence_length=None, \n                   output_method=OutputMethod.last,  \n                   state=None,\n                   attention_hidden_size=128,\n                   window_size=3):\n  if output_method == OutputMethod.state:\n    assert state is not None\n    return state \n\n  #--seems slower convergence and not good result when only using last output, so change to use sum\n  if output_method == OutputMethod.sum:\n    return tf.reduce_sum(outputs, 1)\n  elif output_method == OutputMethod.masked_sum:\n    return melt.sum_pooling(outputs, sequence_length)\n  elif output_method == OutputMethod.max:\n    assert sequence_length is not None\n    #below not work.. sequence is different for each row instance\n    #return tf.reduce_max(outputs[:, :sequence_length, :], 1)\n    #return tf.reduce_max(outputs, 1) #not exclude padding embeddings\n    #return tf.reduce_max(tf.abs(outputs), 1)\n    return melt.max_pooling(outputs, sequence_length)\n  elif output_method == OutputMethod.argmax:\n    assert sequence_length is not None\n    #return tf.argmax(outputs[:, :sequence_length, :], 1)\n    #return tf.argmax(outputs, 1)\n    #return tf.argmax(tf.abs(outputs), 1)\n    return melt.argmax_pooling(outputs, sequence_length)\n  elif output_method == OutputMethod.mean:\n    assert sequence_length is not None\n    return tf.reduce_sum(outputs, 1) / tf.to_float(tf.expand_dims(sequence_length, 1)) \n  elif output_method == OutputMethod.masked_mean:\n    return melt.mean_pooling(outputs, sequence_length)\n  elif output_method == OutputMethod.last:\n    #TODO actually return state.h is last revlevant?\n    return dynamic_last_relevant(outputs, sequence_length)\n  elif output_method == OutputMethod.first:\n    return outputs[:, 0, :]\n  elif output_method == OutputMethod.attention:\n    logging.info('attention_hidden_size:', attention_hidden_size)\n    encoding, alphas = melt.layers.self_attention(outputs, sequence_length, attention_hidden_size)\n    tf.add_to_collection('self_attention', alphas)\n    return encoding\n  elif output_method == OutputMethod.hier:\n    return melt.hier_pooling(outputs, sequence_length, window_size=window_size)\n  else: # all\n    return outputs\n\ndef forward_encode(cell, inputs, sequence_length, initial_state=None, dtype=None, output_method=OutputMethod.last):\n  outputs, state = tf.nn.dynamic_rnn(\n    cell, \n    inputs, \n    initial_state=initial_state, \n    dtype=dtype,\n    sequence_length=sequence_length)\n  \n  return encode_outputs(outputs, sequence_length, output_method), state\n\n\ndef backward_encode(cell, inputs, sequence_length, initial_state=None, dtype=None, output_method=OutputMethod.last):\n  outputs, state = tf.nn.dynamic_rnn(\n    cell, \n    tf.reverse_sequence(inputs, sequence_length, 1), \n    initial_state=initial_state, \n    dtype=dtype,\n    sequence_length=sequence_length)\n\n  return encode_outputs(outputs, sequence_length, output_method), state\n\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import rnn\nfrom tensorflow.python.ops import variable_scope as vs\ndef stack_bidirectional_dynamic_rnn(cells_fw,\n                                    cells_bw,\n                                    inputs,\n                                    initial_states_fw=None,\n                                    initial_states_bw=None,\n                                    dtype=None,\n                                    sequence_length=None,\n                                    parallel_iterations=None,\n                                    time_major=False,\n                                    scope=None):\n  \"\"\"Creates a dynamic bidirectional recurrent neural network.\n\n  Stacks several bidirectional rnn layers. The combined forward and backward\n  layer outputs are used as input of the next layer. tf.bidirectional_rnn\n  does not allow to share forward and backward information between layers.\n  The input_size of the first forward and backward cells must match.\n  The initial state for both directions is zero and no intermediate states\n  are returned.\n\n  Args:\n    cells_fw: List of instances of RNNCell, one per layer,\n      to be used for forward direction.\n    cells_bw: List of instances of RNNCell, one per layer,\n      to be used for backward direction.\n    inputs: The RNN inputs. this must be a tensor of shape:\n      `[batch_size, max_time, ...]`, or a nested tuple of such elements.\n    initial_states_fw: (optional) A list of the initial states (one per layer)\n      for the forward RNN.\n      Each tensor must has an appropriate type and shape\n      `[batch_size, cell_fw.state_size]`.\n    initial_states_bw: (optional) Same as for `initial_states_fw`, but using\n      the corresponding properties of `cells_bw`.\n    dtype: (optional) The data type for the initial state.  Required if\n      either of the initial states are not provided.\n    sequence_length: (optional) An int32/int64 vector, size `[batch_size]`,\n      containing the actual lengths for each of the sequences.\n    parallel_iterations: (Default: 32).  The number of iterations to run in\n      parallel.  Those operations which do not have any temporal dependency\n      and can be run in parallel, will be.  This parameter trades off\n      time for space.  Values >> 1 use more memory but take less time,\n      while smaller values use less memory but computations take longer.\n    time_major: The shape format of the inputs and outputs Tensors. If true,\n      these Tensors must be shaped [max_time, batch_size, depth]. If false,\n      these Tensors must be shaped [batch_size, max_time, depth]. Using\n      time_major = True is a bit more efficient because it avoids transposes at\n      the beginning and end of the RNN calculation. However, most TensorFlow\n      data is batch-major, so by default this function accepts input and emits\n      output in batch-major form.\n    scope: VariableScope for the created subgraph; defaults to None.\n\n  Returns:\n    A tuple (outputs, output_state_fw, output_state_bw) where:\n      outputs: Output `Tensor` shaped:\n        `batch_size, max_time, layers_output]`. Where layers_output\n        are depth-concatenated forward and backward outputs.\n      output_states_fw is the final states, one tensor per layer,\n        of the forward rnn.\n      output_states_bw is the final states, one tensor per layer,\n        of the backward rnn.\n\n  Raises:\n    TypeError: If `cell_fw` or `cell_bw` is not an instance of `RNNCell`.\n    ValueError: If inputs is `None`.\n  \"\"\"\n  if not cells_fw:\n    raise ValueError(\"Must specify at least one fw cell for BidirectionalRNN.\")\n  if not cells_bw:\n    raise ValueError(\"Must specify at least one bw cell for BidirectionalRNN.\")\n  if not isinstance(cells_fw, list):\n    raise ValueError(\"cells_fw must be a list of RNNCells (one per layer).\")\n  if not isinstance(cells_bw, list):\n    raise ValueError(\"cells_bw must be a list of RNNCells (one per layer).\")\n  if len(cells_fw) != len(cells_bw):\n    raise ValueError(\"Forward and Backward cells must have the same depth.\")\n  if (initial_states_fw is not None and\n      (not isinstance(initial_states_fw, list) or\n       len(initial_states_fw) != len(cells_fw))):\n    raise ValueError(\n        \"initial_states_fw must be a list of state tensors (one per layer).\")\n  if (initial_states_bw is not None and\n      (not isinstance(initial_states_bw, list) or\n       len(initial_states_bw) != len(cells_bw))):\n    raise ValueError(\n        \"initial_states_bw must be a list of state tensors (one per layer).\")\n\n  states_fw = []\n  states_bw = []\n  prev_layer = inputs\n\n  outputs_list = [prev_layer]\n\n  with vs.variable_scope(scope or \"stack_bidirectional_rnn\"):\n    for i, (cell_fw, cell_bw) in enumerate(zip(cells_fw, cells_bw)):\n      initial_state_fw = None\n      initial_state_bw = None\n      if initial_states_fw:\n        initial_state_fw = initial_states_fw[i]\n      if initial_states_bw:\n        initial_state_bw = initial_states_bw[i]\n\n      with vs.variable_scope(\"cell_%d\" % i):\n        outputs, (state_fw, state_bw) = rnn.bidirectional_dynamic_rnn(\n            cell_fw,\n            cell_bw,\n            prev_layer,\n            initial_state_fw=initial_state_fw,\n            initial_state_bw=initial_state_bw,\n            sequence_length=sequence_length,\n            parallel_iterations=parallel_iterations,\n            dtype=dtype,\n            time_major=time_major)\n        # Concat the outputs to create the new input.\n        prev_layer = array_ops.concat(outputs, 2)\n        outputs_list.append(prev_layer)\n      states_fw.append(state_fw)\n      states_bw.append(state_bw)\n\n  return tf.concat(outputs_list[1:], -1), tuple(states_fw), tuple(states_bw)\n\ndef bidirectional_encode(cell_fw, \n                        cell_bw, \n                        inputs, \n                        sequence_length, \n                        initial_state_fw=None, \n                        initial_state_bw=None, \n                        dtype=None,\n                        output_method=OutputMethod.last,\n                        use_sum=False,\n                        is_stack=False,\n                        is_stack_concat_layers=False):\n  # if cell_bw is None:\n  #   cell_bw = copy.deepcopy(cell_fw)\n  assert cell_fw is not None \n  assert cell_bw is not None\n  if initial_state_bw is None:\n    initial_state_bw = initial_state_fw\n\n  if melt.is_cudnn_cell(cell_fw):\n    outputs = [tf.transpose(inputs, [1, 0, 2])]\n    for layer in range(cell_fw.num_layers):\n      with tf.variable_scope(\"fw_{}\".format(layer)):\n        out_fw, state_fw = cell_fw(outputs[-1])\n      with tf.variable_scope(\"bw_{}\".format(layer)):\n        inputs_bw = tf.reverse_sequence(\n          outputs[-1], seq_lengths=sequence_length, seq_dim=0, batch_dim=1)\n        out_bw, state_bw = cell_bw(inputs_bw)\n        out_bw = tf.reverse_sequence(\n            out_bw, seq_lengths=sequence_length, seq_dim=0, batch_dim=1)\n    outputs.append(tf.concat([out_fw, out_bw], axis=2))\n    res = tf.concat(outputs[1:], axis=2)\n    print('-------------res, state_fw', res, state_fw)\n    #print(tf.split(state_fw, cell_fw.num_layers))\n    #return res, tf.split(state_fw, cell_fw.num_layers)\n    return res, state_fw\n\n  if not is_stack:\n    outputs, states  = tf.nn.bidirectional_dynamic_rnn(\n      cell_fw=cell_fw,\n      cell_bw=cell_bw,\n      inputs=inputs,\n      initial_state_fw=initial_state_fw,\n      initial_state_bw=initial_state_bw,\n      dtype=dtype,\n      sequence_length=sequence_length)\n    output_fws, output_bws = outputs\n    output_forward = encode_outputs(output_fws, sequence_length, output_method)\n    output_backward = encode_outputs(output_bws, sequence_length, output_method)\n\n    if output_method == OutputMethod.sum:\n      output_backward = tf.reduce_sum(output_bws, 1) \n\n    if use_sum:\n      output = output_forward + output_backward\n    else:\n      output = tf.concat([output_forward, output_backward], -1)\n  else:\n    if not is_stack_concat_layers:\n      func = tf.contrib.rnn.stack_bidirectional_dynamic_rnn\n    else:\n      func = stack_bidirectional_dynamic_rnn\n    output, states_fw, states_bw = func(\n      cells_fw=melt.unpack_cell(cell_fw),\n      cells_bw=melt.unpack_cell(cell_bw),\n      inputs=inputs,\n      initial_states_fw=initial_state_fw,\n      initial_states_bw=initial_state_bw,\n      dtype=dtype,\n      sequence_length=sequence_length)\n    states = (states_fw, states_bw)\n    output = encode_outputs(output, sequence_length, output_method)\n      \n  #TODO state[0] ?\n  return output, states[0]\n\ndef encode(cell, \n           inputs, \n           sequence_length=None, \n           initial_state=None, \n           cell_bw=None, \n           inital_state_bw=None, \n           dtype=None,\n           encode_method=EncodeMethod.forward, \n           output_method=OutputMethod.last):\n    assert sequence_length is not None, 'bidrecional encoding need seq len, for safe all pass sequence_length !'\n\n    #needed for bidirectional_dynamic_rnn and backward method\n    #without it Input 'seq_lengths' of 'ReverseSequence' Op has type int32 that does not match expected type of int64.\n    #int tf.reverse_sequence seq_lengths: A `Tensor` of type `int64`.\n    if initial_state is None and dtype is None:\n      dtype = tf.float32\n    sequence_length = tf.cast(sequence_length, tf.int64)\n    if encode_method == EncodeMethod.forward:\n      return forward_encode(cell, inputs, sequence_length, initial_state, dtype, output_method)\n    elif encode_method == EncodeMethod.backward:\n      return backward_encode(cell, inputs, sequence_length, initial_state, dtype, output_method)\n    elif encode_method == EncodeMethod.bidirectional:\n      return bidirectional_encode(cell, cell_bw, inputs, sequence_length, \n                                 initial_state, inital_state_bw, dtype, output_method)\n    elif encode_method == EncodeMethod.stack_bidirectional:\n      return bidirectional_encode(cell, cell_bw, inputs, sequence_length, \n                                 initial_state, inital_state_bw, dtype, output_method, \n                                 is_stack=True)\n    elif encode_method == EncodeMethod.stack_bidirectional_concat_layers:\n      return bidirectional_encode(cell, cell_bw, inputs, sequence_length, \n                                 initial_state, inital_state_bw, dtype, output_method, \n                                 is_stack=True, is_stack_concat_layers=True)\n    elif encode_method == EncodeMethod.bidirectional_sum:\n      return bidirectional_encode(cell, cell_bw, inputs, sequence_length, \n                                 initial_state, inital_state_bw, dtype, output_method,\n                                 use_sum=True)\n    else:\n      raise ValueError('Unsupported rnn encode method:', encode_method)\n"
  },
  {
    "path": "utils/melt/seq2seq/README.md",
    "content": "similar as contrib.seq2seq\ncopy from it modify a bit for my applications\ntry to use contrib.seq2seq directly if it meets your needs\n"
  },
  {
    "path": "utils/melt/seq2seq/__init__.py",
    "content": "#import tensorflow as tf\n\n#------------new interface \nfrom melt.seq2seq.decoder import *\nfrom melt.seq2seq.helper import *  \nfrom melt.seq2seq.basic_decoder import * \nfrom melt.seq2seq.logprobs_decoder import * \nfrom melt.seq2seq.beam_search_decoder import *\nfrom melt.seq2seq.attention_wrapper import * \n\n#------------old interface, depreciated\nfrom melt.seq2seq.attention_decoder_fn import attention_decoder_fn_inference\nfrom melt.seq2seq.attention_decoder_fn import attention_decoder_fn_train\nfrom melt.seq2seq.attention_decoder_fn import prepare_attention\n\nfrom melt.seq2seq.loss import *\n\nfrom melt.seq2seq.decoder_fn import *\nfrom melt.seq2seq.beam_decoder_fn import *\nfrom melt.seq2seq.attention_decoder_fn import * \nfrom melt.seq2seq.seq2seq import *\n\nfrom melt.seq2seq.beam_decoder import *\n\nfrom melt.seq2seq.beam_search import *\n\n"
  },
  {
    "path": "utils/melt/seq2seq/attention_decoder_fn.py",
    "content": "    # Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Attention-based decoder functions. \ndepreciated using attention_wrapper instead\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tensorflow.contrib.layers.python.layers import layers\nfrom tensorflow.python.ops import rnn_cell_impl\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import function\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.util import nest\nfrom tensorflow.python.ops import tensor_array_ops\n\n__all__ = [\n    \"attention_decoder_fn_train\",\n    \"attention_decoder_fn_inference\",\n    \"init_attention\"\n]\n\nimport tensorflow as tf\nimport melt\n\ndef attention_decoder_fn_train(encoder_state,\n                               attention_keys,\n                               attention_values,\n                               attention_score_fn,\n                               attention_construct_fn,\n                               input_text=None,\n                               vocab_size=None,\n                               name=None):\n  \"\"\"Attentional decoder function for `dynamic_rnn_decoder` during training.\n\n  The `attention_decoder_fn_train` is a training function for an\n  attention-based sequence-to-sequence model. It should be used when\n  `dynamic_rnn_decoder` is in the training mode.\n\n  The `attention_decoder_fn_train` is called with a set of the user arguments\n  and returns the `decoder_fn`, which can be passed to the\n  `dynamic_rnn_decoder`, such that\n\n  ```\n  dynamic_fn_train = attention_decoder_fn_train(encoder_state)\n  outputs_train, state_train = dynamic_rnn_decoder(\n      decoder_fn=dynamic_fn_train, ...)\n  ```\n\n  Further usage can be found in the `kernel_tests/seq2seq_test.py`.\n\n  Args:\n    encoder_state: The encoded state to initialize the `dynamic_rnn_decoder`.\n    attention_keys: to be compared with target states.\n    attention_values: to be used to construct context vectors.\n    attention_score_fn: to compute similarity between key and target states.\n    attention_construct_fn: to build attention states.\n    name: (default: `None`) NameScope for the decoder function;\n      defaults to \"simple_decoder_fn_train\"\n\n  Returns:\n    A decoder function with the required interface of `dynamic_rnn_decoder`\n    intended for training.\n  \"\"\"\n  with ops.name_scope(name, \"attention_decoder_fn_train\", [\n      encoder_state, attention_keys, attention_values, attention_score_fn,\n      attention_construct_fn\n  ]):\n    pass\n\n  def decoder_fn(time, cell_state, cell_input, cell_output, context_state):\n    \"\"\"Decoder function used in the `dynamic_rnn_decoder` for training.\n\n    Args:\n      time: positive integer constant reflecting the current timestep.\n      cell_state: state of RNNCell.\n      cell_input: input provided by `dynamic_rnn_decoder`.\n      cell_output: output of RNNCell.\n      context_state: context state provided by `dynamic_rnn_decoder`.\n\n    Returns:\n      A tuple (done, next state, next input, emit output, next context state)\n      where:\n\n      done: `None`, which is used by the `dynamic_rnn_decoder` to indicate\n      that `sequence_lengths` in `dynamic_rnn_decoder` should be used.\n\n      next state: `cell_state`, this decoder function does not modify the\n      given state.\n\n      next input: `cell_input`, this decoder function does not modify the\n      given input. The input could be modified when applying e.g. attention.\n\n      emit output: `cell_output`, this decoder function does not modify the\n      given output.\n\n      next context state: `context_state`, this decoder function does not\n      modify the given context state. The context state could be modified when\n      applying e.g. beam search.\n    \"\"\"\n    with ops.name_scope(\n        name, \"attention_decoder_fn_train\",\n        [time, cell_state, cell_input, cell_output, context_state]):\n      #input_text = None\n      \n      if cell_state is None:  # first call, return encoder_state\n        cell_state = encoder_state\n\n        # init attention\n        attention = init_attention(encoder_state)\n        if input_text is not None:\n          #cell_output = array_ops.zeros([vocab_size], dtype=dtypes.float32)\n          context_state = tensor_array_ops.TensorArray(\n            dtype=tf.float32, size=0, dynamic_size=True, infer_shape=False)\n      else:\n        # construct attention\n        attention, scores, alignments = attention_construct_fn(cell_output, attention_keys,\n                                                               attention_values)\n        #attention, scores, alignments = attention_construct_fn(cell_state.h, attention_keys,\n        #                                                       attention_values)\n        cell_output = attention\n        if input_text is not None:\n          #encoder_info = nest.flatten(encoder_state)[0]\n          #batch_size = encoder_info.get_shape()[0].value\n          #if batch_size is None:\n          #  batch_size = array_ops.shape(encoder_info)[0]\n          ##ref =  tf.Variable(array_ops.zeros([batch_size, vocab_size], dtype=dtypes.float32))\n          ##https://github.com/tensorflow/tensorflow/issues/8604\n          #with tf.control_dependencies(None):\n            ##TODO... must fix batch_size right now\n          #  cell_output_ =  tf.Variable(array_ops.zeros([256, vocab_size], dtype=dtypes.float32))\n\n          #actually should use tf.scatter_nd, anyway this attention is deprecated!\n          cell_output_ =  tf.get_variable(\"cell_output_\", [256, vocab_size], dtype=dtypes.float32, initializer=tf.zeros_initializer())\n          #cell_output_ =  tf.get_variable(\"cell_output_\", [256, vocab_size], dtype=dtypes.float32, initializer=tf.ones_initializer())\n          #cell_output_.assign(array_ops.zeros([256, vocab_size]))\n          cell_output_ = tf.assign(cell_output_, array_ops.zeros([256, vocab_size]))\n          indices = melt.batch_values_to_indices(tf.to_int32(input_text))\n          updates = scores\n          #updates = alignments\n          cell_output_ = tf.scatter_nd_add(cell_output_, indices, updates)\n          cell_output_ = tf.stop_gradient(cell_output_)\n          ##print(cell_output, vocab_size)\n          ##cell_output = attention\n          ##cell_output = array_ops.zeros([batch_size, vocab_size], dtype=dtypes.float32)\n          ##cell_output = scores\n          #cell_output = tf.convert_to_tensor(cell_output)\n\n          context_state = context_state.write(time - 1, cell_output_)\n          #context_state = context_state.write(time - 1, scores)\n\n      # combine cell_input and attention\n      next_input = array_ops.concat([cell_input, attention], 1)\n      #next_input = cell_input\n\n      return (None, cell_state, next_input, cell_output, context_state)\n\n  return decoder_fn\n\ndef attention_decoder_fn_inference(output_fn,\n                                   first_input,\n                                   encoder_state,\n                                   attention_keys,\n                                   attention_values,\n                                   attention_score_fn,\n                                   attention_construct_fn,\n                                   embeddings,\n                                   end_of_sequence_id,\n                                   maximum_length,\n                                   num_decoder_symbols,\n                                   input_text=None,\n                                   dtype=dtypes.int32,\n                                   name=None):\n  \"\"\"Attentional decoder function for `dynamic_rnn_decoder` during inference.\n  The `attention_decoder_fn_inference` is a simple inference function for a\n  sequence-to-sequence model. It should be used when `dynamic_rnn_decoder` is\n  in the inference mode.\n  The `attention_decoder_fn_inference` is called with user arguments\n  and returns the `decoder_fn`, which can be passed to the\n  `dynamic_rnn_decoder`, such that\n  ```\n  dynamic_fn_inference = attention_decoder_fn_inference(...)\n  outputs_inference, state_inference = dynamic_rnn_decoder(\n      decoder_fn=dynamic_fn_inference, ...)\n  ```\n  Further usage can be found in the `kernel_tests/seq2seq_test.py`.\n  Args:\n    output_fn: An output function to project your `cell_output` onto class\n    logits.\n    An example of an output function;\n    ```\n      tf.variable_scope(\"decoder\") as varscope\n        output_fn = lambda x: layers.linear(x, num_decoder_symbols,\n                                            scope=varscope)\n        outputs_train, state_train = seq2seq.dynamic_rnn_decoder(...)\n        logits_train = output_fn(outputs_train)\n        varscope.reuse_variables()\n        logits_inference, state_inference = seq2seq.dynamic_rnn_decoder(\n            output_fn=output_fn, ...)\n    ```\n    If `None` is supplied it will act as an identity function, which\n    might be wanted when using the RNNCell `OutputProjectionWrapper`.\n    encoder_state: The encoded state to initialize the `dynamic_rnn_decoder`.\n    attention_keys: to be compared with target states.\n    attention_values: to be used to construct context vectors.\n    attention_score_fn: to compute similarity between key and target states.\n    attention_construct_fn: to build attention states.\n    embeddings: The embeddings matrix used for the decoder sized\n    `[num_decoder_symbols, embedding_size]`.\n    start_of_sequence_id: The start of sequence ID in the decoder embeddings.\n    end_of_sequence_id: The end of sequence ID in the decoder embeddings.\n    maximum_length: The maximum allowed of time steps to decode.\n    num_decoder_symbols: The number of classes to decode at each time step.\n    dtype: (default: `dtypes.int32`) The default data type to use when\n    handling integer objects.\n    name: (default: `None`) NameScope for the decoder function;\n      defaults to \"attention_decoder_fn_inference\"\n  Returns:\n    A decoder function with the required interface of `dynamic_rnn_decoder`\n    intended for inference.\n  \"\"\"\n  with ops.name_scope(name, \"attention_decoder_fn_inference\", [\n      output_fn, first_input, encoder_state, \n      attention_keys, attention_values,\n      attention_score_fn, attention_construct_fn, embeddings,\n      end_of_sequence_id, maximum_length,\n      num_decoder_symbols, dtype\n  ]):\n    first_input = ops.convert_to_tensor(first_input, dtypes.float32)\n    end_of_sequence_id = ops.convert_to_tensor(end_of_sequence_id, dtype)\n    maximum_length = ops.convert_to_tensor(maximum_length, dtype)\n    num_decoder_symbols = ops.convert_to_tensor(num_decoder_symbols, dtype)\n    encoder_info = nest.flatten(encoder_state)[0]\n    batch_size = encoder_info.get_shape()[0].value\n    if output_fn is None:\n      output_fn = lambda x: x\n    if batch_size is None:\n      batch_size = array_ops.shape(encoder_info)[0]\n\n  def decoder_fn(time, cell_state, cell_input, cell_output, context_state):\n    \"\"\"Decoder function used in the `dynamic_rnn_decoder` for inference.\n    The main difference between this decoder function and the `decoder_fn` in\n    `attention_decoder_fn_train` is how `next_cell_input` is calculated. In\n    decoder function we calculate the next input by applying an argmax across\n    the feature dimension of the output from the decoder. This is a\n    greedy-search approach. (Bahdanau et al., 2014) & (Sutskever et al., 2014)\n    use beam-search instead.\n    Args:\n      time: positive integer constant reflecting the current timestep.\n      cell_state: state of RNNCell.\n      cell_input: input provided by `dynamic_rnn_decoder`.\n      cell_output: output of RNNCell.\n      context_state: context state provided by `dynamic_rnn_decoder`.\n    Returns:\n      A tuple (done, next state, next input, emit output, next context state)\n      where:\n      done: A boolean vector to indicate which sentences has reached a\n      `end_of_sequence_id`. This is used for early stopping by the\n      `dynamic_rnn_decoder`. When `time>=maximum_length` a boolean vector with\n      all elements as `true` is returned.\n      next state: `cell_state`, this decoder function does not modify the\n      given state.\n      next input: The embedding from argmax of the `cell_output` is used as\n      `next_input`.\n      emit output: If `output_fn is None` the supplied `cell_output` is\n      returned, else the `output_fn` is used to update the `cell_output`\n      before calculating `next_input` and returning `cell_output`.\n      next context state: `context_state`, this decoder function does not\n      modify the given context state. The context state could be modified when\n      applying e.g. beam search.\n    Raises:\n      ValueError: if cell_input is not None.\n    \"\"\"\n    with ops.name_scope(\n        name, \"attention_decoder_fn_inference\",\n        [time, cell_state, cell_input, cell_output, context_state]):\n      if cell_input is not None:\n        raise ValueError(\"Expected cell_input to be None, but saw: %s\" %\n                         cell_input)\n      if cell_output is None:\n        # invariant that this is time == 0\n        next_input_id = None\n        done = array_ops.zeros([batch_size,], dtype=dtypes.bool)\n        cell_state = encoder_state\n        cell_output = array_ops.zeros(\n            [num_decoder_symbols], dtype=dtypes.float32)\n\n        context_state = tensor_array_ops.TensorArray(\n            #dtype=dtype, tensor_array_name=\"greedy_path\", size=maximum_length + 1, infer_shape=False)\n            dtype=dtype, tensor_array_name=\"greedy_attention_path\", size=0, dynamic_size=True, infer_shape=False)\n\n        # init attention\n        attention = init_attention(encoder_state)\n      else:\n        # construct attention\n        #NOTICE since dynamic.. below attention_construct_fn will be called building graph for only once\n        attention, scores, alignments = attention_construct_fn(cell_output, attention_keys,\n                                           attention_values)\n\n        #attention, scores, alignments = attention_construct_fn(cell_state.h, attention_keys,\n        #                                   attention_values)\n\n        if input_text is None:\n          cell_output = attention\n          cell_output = output_fn(cell_output)  # logits\n          next_input_id = math_ops.cast(math_ops.argmax(cell_output, 1), dtype=dtype)\n        else:\n          #encoder_info = nest.flatten(encoder_state)[0]\n          #vocab_size = num_decoder_symbols\n          ##ref =  tf.Variable(array_ops.zeros([batch_size, vocab_size], dtype=dtypes.float32))\n          ##https://github.com/tensorflow/tensorflow/issues/8604\n          #with tf.control_dependencies(None):\n          #  #TODO... must fix batch_size right now\n          #  cell_output =  tf.Variable(array_ops.zeros([256, vocab_size], dtype=dtypes.float32))\n          #indices = melt.batch_values_to_indices(tf.to_int32(input_text))\n          #updates = scores\n          #tf.scatter_nd_add(cell_output, indices, updates)\n          ##print(cell_output, vocab_size)\n          ##cell_output = attention\n          ##cell_output = array_ops.zeros([batch_size, vocab_size], dtype=dtypes.float32)\n          ##cell_output = scores\n          #cell_output = tf.convert_to_tensor(cell_output)\n          #cell_output = array_ops.zeros(\n          #  [256, num_decoder_symbols], dtype=dtypes.float32)\n          \n          cell_output = attention\n          cell_output = output_fn(cell_output)  # logit\n          #next_input_id = math_ops.cast(math_ops.argmax(cell_output, 1), dtype=dtype)\n          next_input_id = melt.gather2d(input_text, math_ops.cast(math_ops.argmax(scores, 1), dtype=dtype))\n          next_input_id = tf.to_int32(next_input_id)\n        \n        done = math_ops.equal(next_input_id, end_of_sequence_id)\n\n        context_state = context_state.write(time - 1, next_input_id)\n\n      # combine cell_input and attention\n      cell_input = array_ops.gather(embeddings, next_input_id) if next_input_id is not None else first_input\n      next_input = array_ops.concat([cell_input, attention], 1)\n      #next_input = cell_input\n\n      # if time == maxlen, return all true vector\n      done = control_flow_ops.cond(\n          math_ops.equal(time, maximum_length),\n          lambda: array_ops.ones([batch_size,], dtype=dtypes.bool),\n          lambda: done)\n\n      return (done, cell_state, next_input, cell_output, context_state)\n\n  return decoder_fn\nimport tensorflow as tf\n## Helper functions ##\ndef prepare_attention(attention_states,\n                      attention_option,\n                      num_units,\n                      reuse=False):\n  \"\"\"Prepare keys/values/functions for attention.\n\n  Args:\n    attention_states: hidden states to attend over.\n    attention_option: how to compute attention, either \"luong\" or \"bahdanau\".\n    num_units: hidden state dimension.\n    reuse: whether to reuse variable scope.\n\n  Returns:\n    attention_keys: to be compared with target states.\n    attention_values: to be used to construct context vectors.\n    attention_score_fn: to compute similarity between key and target states.\n    attention_construct_fn: to build attention states.\n  \"\"\"\n\n  # Prepare attention keys / values from attention_states\n  with variable_scope.variable_scope(\"attention_keys\", reuse=reuse) as scope:\n    attention_keys = layers.linear(\n        attention_states, num_units, biases_initializer=None, scope=scope)\n    #well here do not need ad scope reuse since you get attention_keys and use it  not call this linear again, \n    #attention_construct_fn is different, since you call that function each step during loop \n\n  attention_values = attention_states\n\n  # Attention score function\n  attention_score_fn = _create_attention_score_fn(\"attention_score\", num_units,\n                                                  attention_option, reuse)\n\n  # Attention construction function\n  attention_construct_fn = _create_attention_construct_fn(\"attention_construct\",\n                                                          num_units,\n                                                          attention_score_fn,\n                                                          reuse)\n\n  return (attention_keys, attention_values, attention_score_fn,\n          attention_construct_fn)\n\ndef init_attention(encoder_state):\n  \"\"\"Initialize attention. Handling both LSTM and GRU.\n\n  Args:\n    encoder_state: The encoded state to initialize the `dynamic_rnn_decoder`.\n\n  Returns:\n    attn: initial zero attention vector.\n  \"\"\"\n\n  # Multi- vs single-layer\n  # TODO(thangluong): is this the best way to check?\n  if isinstance(encoder_state, tuple):\n    top_state = encoder_state[-1]\n  else:\n    top_state = encoder_state\n\n  # LSTM vs GRU\n  if isinstance(top_state, rnn_cell_impl.LSTMStateTuple):\n    attn = array_ops.zeros_like(top_state.h)\n  else:\n    attn = array_ops.zeros_like(top_state)\n\n  return attn\n\n\ndef _create_attention_construct_fn(name, num_units, attention_score_fn, reuse):\n  \"\"\"Function to compute attention vectors.\n\n  Args:\n    name: to label variables.\n    num_units: hidden state dimension.\n    attention_score_fn: to compute similarity between key and target states.\n    reuse: whether to reuse variable scope.\n\n  Returns:\n    attention_construct_fn: to build attention states.\n  \"\"\"\n  with variable_scope.variable_scope(name, reuse=reuse) as scope:\n    def construct_fn(attention_query, attention_keys, attention_values):\n      context, scores, alignments = attention_score_fn(attention_query, attention_keys,\n                                   attention_values)\n      concat_input = array_ops.concat([attention_query, context], 1)\n      #NOTICE! here pass scope which is outside construct_fn func! so always not affected by using env scope, be like\n      #seq2seq/main/decode/attention_construct/weights in rnn_decoder.py not seq2seq/main/decode/rnn/loop_function/weights in beam_decoder.py\n      attention = layers.linear(\n          concat_input, num_units, biases_initializer=None, scope=scope)\n      #add this to make it safe using in loop, if only used in dynamic decode do not need this since only call above linear once\n      #this kind of witting then add reuse seems safe and elegant \n      #http://stackoverflow.com/questions/38545362/tensorflow-variable-scope-reuse-if-variable-exists\n      scope.reuse_variables()\n      return attention, scores, alignments\n\n    return construct_fn\n\n\n# keys: [batch_size, attention_length, attn_size]\n# query: [batch_size, 1, attn_size]\n# return weights [batch_size, attention_length]\n#@function.Defun(func_name=\"attn_add_fun\", noinline=True)\ndef _attn_add_fun(v, keys, query):\n  return math_ops.reduce_sum(v * math_ops.tanh(keys + query), [2])\n\n\n#TODO: with below will cause load meta graph fail, see textsum/predict.py\n#@function.Defun(func_name=\"attn_mul_fun\", noinline=True)\ndef _attn_mul_fun(keys, query):\n  return math_ops.reduce_sum(keys * query, [2])\n\n\ndef _create_attention_score_fn(name,\n                               num_units,\n                               attention_option,\n                               reuse,\n                               dtype=dtypes.float32):\n  \"\"\"Different ways to compute attention scores.\n\n  Args:\n    name: to label variables.\n    num_units: hidden state dimension.\n    attention_option: how to compute attention, either \"luong\" or \"bahdanau\".\n      \"bahdanau\": additive (Bahdanau et al., ICLR'2015)\n      \"luong\": multiplicative (Luong et al., EMNLP'2015)\n    reuse: whether to reuse variable scope.\n    dtype: (default: `dtypes.float32`) data type to use.\n\n  Returns:\n    attention_score_fn: to compute similarity between key and target states.\n  \"\"\"\n  with variable_scope.variable_scope(name, reuse=reuse) as scope:\n    if attention_option == \"bahdanau\":\n      query_w = variable_scope.get_variable(\n          \"attnW\", [num_units, num_units], dtype=dtype)\n      score_v = variable_scope.get_variable(\"attnV\", [num_units], dtype=dtype)\n      scope.reuse_variables()\n\n    def attention_score_fn(query, keys, values):\n      \"\"\"Put attention masks on attention_values using attention_keys and query.\n\n      Args:\n        query: A Tensor of shape [batch_size, num_units].\n        keys: A Tensor of shape [batch_size, attention_length, num_units].\n        values: A Tensor of shape [batch_size, attention_length, num_units].\n\n      Returns:\n        context_vector: A Tensor of shape [batch_size, num_units].\n\n      Raises:\n        ValueError: if attention_option is neither \"luong\" or \"bahdanau\".\n\n\n      \"\"\"\n      if attention_option == \"bahdanau\":\n        # transform query\n        query = math_ops.matmul(query, query_w)\n\n        # reshape query: [batch_size, 1, num_units]\n        query = array_ops.reshape(query, [-1, 1, num_units])\n\n        # attn_fun\n        scores = _attn_add_fun(score_v, keys, query)\n      elif attention_option == \"luong\":\n        # reshape query: [batch_size, 1, num_units]\n        query = array_ops.reshape(query, [-1, 1, num_units])\n\n        # attn_fun\n        scores = _attn_mul_fun(keys, query)\n      else:\n        raise ValueError(\"Unknown attention option %s!\" % attention_option)\n\n      # Compute alignment weights\n      #   scores: [batch_size, length]\n      #   alignments: [batch_size, length]\n      # TODO(thangluong): not normalize over padding positions.\n      \n      tf.add_to_collection('attention_scores', scores)\n\n      alignments = nn_ops.softmax(scores)\n\n      tf.add_to_collection('attention_alignments', alignments)\n      #will show 2 times since in outgraph decoding, first time you pass batch_size 1 then batch_size beam_size\n      #but in train evaluate mode.. will add many times!\n      #print('attention_alignments', tf.get_collection('attention_alignments'))\n\n      # Now calculate the attention-weighted vector.\n      alignments = array_ops.expand_dims(alignments, 2)\n\n      context_vector = math_ops.reduce_sum(alignments * values, [1])\n      context_vector.set_shape([None, num_units])\n\n      return context_vector, scores, alignments\n\n    return attention_score_fn\n"
  },
  {
    "path": "utils/melt/seq2seq/attention_wrapper.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"A powerful dynamic attention wrapper object.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\nimport math\n\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.layers import base as layers_base\nfrom tensorflow.python.layers import core as layers_core\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import check_ops\nfrom tensorflow.python.ops import init_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import rnn_cell_impl\nfrom tensorflow.python.ops import tensor_array_ops\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.util import nest\nfrom tensorflow.contrib.layers.python.layers import layers\n\n\n__all__ = [\n    \"AttentionMechanism\",\n    \"AttentionWrapper\",\n    \"AttentionWrapperState\",\n    \"LuongAttention\",\n    \"BahdanauAttention\",\n    \"CoverageBahdanauAttention\",\n    \"CoverageV2BahdanauAttention\",\n    \"hardmax\",\n    \"PointerAttentionWrapperState\",\n    \"PointerAttentionWrapper\",\n    \"ShowTellAttentionWrapperState\",\n    \"ShowTellAttentionWrapper\",\n    \"TwoLayersAttentionWrapperState\",\n    \"TwoLayersAttentionWrapper\",\n    \"CoverageAttentionWrapperState\",\n    \"CoverageAttentionWrapper\",\n]\n\n\n_zero_state_tensors = rnn_cell_impl._zero_state_tensors  # pylint: disable=protected-access\n\n\nclass AttentionMechanism(object):\n  pass\n\n\ndef _prepare_memory(memory, memory_sequence_length, check_inner_dims_defined):\n  \"\"\"Convert to tensor and possibly mask `memory`.\n\n  Args:\n    memory: `Tensor`, shaped `[batch_size, max_time, ...]`.\n    memory_sequence_length: `int32` `Tensor`, shaped `[batch_size]`.\n    check_inner_dims_defined: Python boolean.  If `True`, the `memory`\n      argument's shape is checked to ensure all but the two outermost\n      dimensions are fully defined.\n\n  Returns:\n    A (possibly masked), checked, new `memory`.\n\n  Raises:\n    ValueError: If `check_inner_dims_defined` is `True` and not\n      `memory.shape[2:].is_fully_defined()`.\n  \"\"\"\n  memory = nest.map_structure(\n      lambda m: ops.convert_to_tensor(m, name=\"memory\"), memory)\n  if memory_sequence_length is not None:\n    memory_sequence_length = ops.convert_to_tensor(\n        memory_sequence_length, name=\"memory_sequence_length\")\n  if check_inner_dims_defined:\n    def _check_dims(m):\n      if not m.get_shape()[2:].is_fully_defined():\n        raise ValueError(\"Expected memory %s to have fully defined inner dims, \"\n                         \"but saw shape: %s\" % (m.name, m.get_shape()))\n    nest.map_structure(_check_dims, memory)\n  if memory_sequence_length is None:\n    seq_len_mask = None\n  else:\n    seq_len_mask = array_ops.sequence_mask(\n        memory_sequence_length,\n        maxlen=array_ops.shape(nest.flatten(memory)[0])[1],\n        dtype=nest.flatten(memory)[0].dtype)\n    seq_len_batch_size = (\n        memory_sequence_length.shape[0].value\n        or array_ops.shape(memory_sequence_length)[0])\n  def _maybe_mask(m, seq_len_mask):\n    rank = m.get_shape().ndims\n    rank = rank if rank is not None else array_ops.rank(m)\n    extra_ones = array_ops.ones(rank - 2, dtype=dtypes.int32)\n    m_batch_size = m.shape[0].value or array_ops.shape(m)[0]\n    if memory_sequence_length is not None:\n      message = (\"memory_sequence_length and memory tensor batch sizes do not \"\n                 \"match.\")\n      with ops.control_dependencies([\n          check_ops.assert_equal(\n              seq_len_batch_size, m_batch_size, message=message)]):\n        seq_len_mask = array_ops.reshape(\n            seq_len_mask,\n            array_ops.concat((array_ops.shape(seq_len_mask), extra_ones), 0))\n        return m * seq_len_mask\n    else:\n      return m\n  return nest.map_structure(lambda m: _maybe_mask(m, seq_len_mask), memory)\n\n\ndef _maybe_mask_score(score, memory_sequence_length, score_mask_value):\n  if memory_sequence_length is None:\n    return score\n  message = (\"All values in memory_sequence_length must greater than zero.\")\n  with ops.control_dependencies(\n      [check_ops.assert_positive(memory_sequence_length, message=message)]):\n    score_mask = array_ops.sequence_mask(\n        memory_sequence_length, maxlen=array_ops.shape(score)[1])\n    score_mask_values = score_mask_value * array_ops.ones_like(score)\n    return array_ops.where(score_mask, score, score_mask_values)\n\n\nclass _BaseAttentionMechanism(AttentionMechanism):\n  \"\"\"A base AttentionMechanism class providing common functionality.\n\n  Common functionality includes:\n    1. Storing the query and memory layers.\n    2. Preprocessing and storing the memory.\n  \"\"\"\n\n  def __init__(self,\n               query_layer,\n               memory,\n               probability_fn,\n               memory_sequence_length=None,\n               memory_layer=None,\n               check_inner_dims_defined=True,\n               score_mask_value=float(\"-inf\"),\n               name=None):\n    \"\"\"Construct base AttentionMechanism class.\n\n    Args:\n      query_layer: Callable.  Instance of `tf.layers.Layer`.  The layer's depth\n        must match the depth of `memory_layer`.  If `query_layer` is not\n        provided, the shape of `query` must match that of `memory_layer`.\n      memory: The memory to query; usually the output of an RNN encoder.  This\n        tensor should be shaped `[batch_size, max_time, ...]`.\n      probability_fn: A `callable`.  Converts the score and previous alignments\n        to probabilities. Its signature should be:\n        `probabilities = probability_fn(score, previous_alignments)`.\n      memory_sequence_length (optional): Sequence lengths for the batch entries\n        in memory.  If provided, the memory tensor rows are masked with zeros\n        for values past the respective sequence lengths.\n      memory_layer: Instance of `tf.layers.Layer` (may be None).  The layer's\n        depth must match the depth of `query_layer`.\n        If `memory_layer` is not provided, the shape of `memory` must match\n        that of `query_layer`.\n      check_inner_dims_defined: Python boolean.  If `True`, the `memory`\n        argument's shape is checked to ensure all but the two outermost\n        dimensions are fully defined.\n      score_mask_value: (optional): The mask value for score before passing into\n        `probability_fn`. The default is -inf. Only used if\n        `memory_sequence_length` is not None.\n      name: Name to use when creating ops.\n    \"\"\"\n    if (query_layer is not None\n        and not isinstance(query_layer, layers_base.Layer)):\n      raise TypeError(\n          \"query_layer is not a Layer: %s\" % type(query_layer).__name__)\n    if (memory_layer is not None\n        and not isinstance(memory_layer, layers_base.Layer)):\n      raise TypeError(\n          \"memory_layer is not a Layer: %s\" % type(memory_layer).__name__)\n    self._query_layer = query_layer\n    self._memory_layer = memory_layer\n    if not callable(probability_fn):\n      raise TypeError(\"probability_fn must be callable, saw type: %s\" %\n                      type(probability_fn).__name__)\n    self._probability_fn = lambda score, prev: (  # pylint:disable=g-long-lambda\n        probability_fn(\n            _maybe_mask_score(score, memory_sequence_length, score_mask_value),\n            prev))\n    with ops.name_scope(\n        name, \"BaseAttentionMechanismInit\", nest.flatten(memory)):\n      self._values = _prepare_memory(\n          memory, memory_sequence_length,\n          check_inner_dims_defined=check_inner_dims_defined)\n      self._keys = (\n          self.memory_layer(self._values) if self.memory_layer  # pylint: disable=not-callable\n          else self._values)\n      self._batch_size = (\n          self._keys.shape[0].value or array_ops.shape(self._keys)[0])\n      self._alignments_size = (self._keys.shape[1].value or\n                               array_ops.shape(self._keys)[1])\n\n  @property\n  def memory_layer(self):\n    return self._memory_layer\n\n  @property\n  def query_layer(self):\n    return self._query_layer\n\n  @property\n  def values(self):\n    return self._values\n\n  @property\n  def keys(self):\n    return self._keys\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  @property\n  def alignments_size(self):\n    return self._alignments_size\n\n  def initial_alignments(self, batch_size, dtype):\n    \"\"\"Creates the initial alignment values for the `AttentionWrapper` class.\n\n    This is important for AttentionMechanisms that use the previous alignment\n    to calculate the alignment at the next time step (e.g. monotonic attention).\n\n    The default behavior is to return a tensor of all zeros.\n\n    Args:\n      batch_size: `int32` scalar, the batch_size.\n      dtype: The `dtype`.\n\n    Returns:\n      A `dtype` tensor shaped `[batch_size, alignments_size]`\n      (`alignments_size` is the values' `max_time`).\n    \"\"\"\n    max_time = self._alignments_size\n    return _zero_state_tensors(max_time, batch_size, dtype)\n\n\nclass LuongAttention(_BaseAttentionMechanism):\n  \"\"\"Implements Luong-style (multiplicative) attention scoring.\n\n  This attention has two forms.  The first is standard Luong attention,\n  as described in:\n\n  Minh-Thang Luong, Hieu Pham, Christopher D. Manning.\n  \"Effective Approaches to Attention-based Neural Machine Translation.\"\n  EMNLP 2015.  https://arxiv.org/abs/1508.04025\n\n  The second is the scaled form inspired partly by the normalized form of\n  Bahdanau attention.\n\n  To enable the second form, construct the object with parameter\n  `scale=True`.\n  \"\"\"\n\n  def __init__(self,\n               num_units,\n               memory,\n               memory_sequence_length=None,\n               scale=False,\n               probability_fn=None,\n               score_mask_value=float(\"-inf\"),\n               memory_layer_name='memory_layer',\n               name=\"LuongAttention\"):\n    \"\"\"Construct the AttentionMechanism mechanism.\n\n    Args:\n      num_units: The depth of the attention mechanism.\n      memory: The memory to query; usually the output of an RNN encoder.  This\n        tensor should be shaped `[batch_size, max_time, ...]`.\n      memory_sequence_length (optional): Sequence lengths for the batch entries\n        in memory.  If provided, the memory tensor rows are masked with zeros\n        for values past the respective sequence lengths.\n      scale: Python boolean.  Whether to scale the energy term.\n      probability_fn: (optional) A `callable`.  Converts the score to\n        probabilities.  The default is @{tf.nn.softmax}. Other options include\n        @{tf.contrib.seq2seq.hardmax} and @{tf.contrib.sparsemax.sparsemax}.\n        Its signature should be: `probabilities = probability_fn(score)`.\n      score_mask_value: (optional): The mask value for score before passing into\n        `probability_fn`. The default is -inf. Only used if\n        `memory_sequence_length` is not None.\n      name: Name to use when creating ops.\n    \"\"\"\n    # For LuongAttention, we only transform the memory layer; thus\n    # num_units **must** match expected the query depth.\n    if probability_fn is None:\n      probability_fn = nn_ops.softmax\n    wrapped_probability_fn = lambda score, _: probability_fn(score)\n    super(LuongAttention, self).__init__(\n        query_layer=None,\n        memory_layer=layers_core.Dense(\n            num_units, name=memory_layer_name, _scope=memory_layer_name, use_bias=False),\n        memory=memory,\n        probability_fn=wrapped_probability_fn,\n        memory_sequence_length=memory_sequence_length,\n        score_mask_value=score_mask_value,\n        name=name)\n    self._num_units = num_units\n    self._scale = scale\n    self._name = name\n\n  def __call__(self, query, previous_alignments):\n    \"\"\"Score the query based on the keys and values.\n\n    Args:\n      query: Tensor of dtype matching `self.values` and shape\n        `[batch_size, query_depth]`.\n      previous_alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]`\n        (`alignments_size` is memory's `max_time`).\n\n    Returns:\n      alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]` (`alignments_size` is memory's\n        `max_time`).\n\n    Raises:\n      ValueError: If `key` and `query` depths do not match.\n    \"\"\"\n    depth = query.get_shape()[-1]\n    key_units = self.keys.get_shape()[-1]\n    if depth != key_units:\n      raise ValueError(\n          \"Incompatible or unknown inner dimensions between query and keys.  \"\n          \"Query (%s) has units: %s.  Keys (%s) have units: %s.  \"\n          \"Perhaps you need to set num_units to the the keys' dimension (%s)?\"\n          % (query, depth, self.keys, key_units, key_units))\n    dtype = query.dtype\n\n    with variable_scope.variable_scope(None, \"luong_attention\", [query]):\n      ## Reshape from [batch_size, depth] to [batch_size, 1, depth]\n      ## for matmul.\n\n      query = array_ops.expand_dims(query, 1)\n\n      ## Inner product along the query units dimension.\n      ## matmul shapes: query is [batch_size, 1, depth] and\n      ##                keys is [batch_size, max_time, depth].\n      ## the inner product is asked to **transpose keys' inner shape** to get a\n      ## batched matmul on:\n      ##   [batch_size, 1, depth] . [batch_size, depth, max_time]\n      ## resulting in an output shape of:\n      ##   [batch_time, 1, max_time].\n      ## we then squeee out the center singleton dimension.\n      \n      ##score = math_ops.matmul(query, self.keys, transpose_b=True)\n      ##score = array_ops.squeeze(score, [1])\n \n      score = math_ops.reduce_sum(self.keys * query, [2])\n\n      if self._scale:\n        # Scalar used in weight scaling\n        g = variable_scope.get_variable(\n            \"attention_g\", dtype=dtype, initializer=1.)\n        score = g * score\n\n    #alignments = self._probability_fn(score, previous_alignments)\n    alignments = score\n    return alignments\n\n\nclass BahdanauAttention(_BaseAttentionMechanism):\n  \"\"\"Implements Bahdanau-style (additive) attention.\n\n  This attention has two forms.  The first is Bahdanau attention,\n  as described in:\n\n  Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio.\n  \"Neural Machine Translation by Jointly Learning to Align and Translate.\"\n  ICLR 2015. https://arxiv.org/abs/1409.0473\n\n  The second is the normalized form.  This form is inspired by the\n  weight normalization article:\n\n  Tim Salimans, Diederik P. Kingma.\n  \"Weight Normalization: A Simple Reparameterization to Accelerate\n   Training of Deep Neural Networks.\"\n  https://arxiv.org/abs/1602.07868\n\n  To enable the second form, construct the object with parameter\n  `normalize=True`.\n  \"\"\"\n\n  def __init__(self,\n               num_units,\n               memory,\n               memory_sequence_length=None,\n               normalize=False,\n               probability_fn=None,\n               score_mask_value=float(\"-inf\"),\n               memory_layer_name='memory_layer',\n               name=\"BahdanauAttention\"):\n    \"\"\"Construct the Attention mechanism.\n\n    Args:\n      num_units: The depth of the query mechanism.\n      memory: The memory to query; usually the output of an RNN encoder.  This\n        tensor should be shaped `[batch_size, max_time, ...]`.\n      memory_sequence_length (optional): Sequence lengths for the batch entries\n        in memory.  If provided, the memory tensor rows are masked with zeros\n        for values past the respective sequence lengths.\n      normalize: Python boolean.  Whether to normalize the energy term.\n      probability_fn: (optional) A `callable`.  Converts the score to\n        probabilities.  The default is @{tf.nn.softmax}. Other options include\n        @{tf.contrib.seq2seq.hardmax} and @{tf.contrib.sparsemax.sparsemax}.\n        Its signature should be: `probabilities = probability_fn(score)`.\n      score_mask_value: (optional): The mask value for score before passing into\n        `probability_fn`. The default is -inf. Only used if\n        `memory_sequence_length` is not None.\n      name: Name to use when creating ops.\n    \"\"\"\n    if probability_fn is None:\n      probability_fn = nn_ops.softmax\n    wrapped_probability_fn = lambda score, _: probability_fn(score)\n    super(BahdanauAttention, self).__init__(\n        query_layer=layers_core.Dense(\n            num_units, name=\"query_layer\", _scope=\"query_layer\", use_bias=False),\n        memory_layer=layers_core.Dense(\n            num_units, name=memory_layer_name, _scope=memory_layer_name, use_bias=False),\n        memory=memory,\n        probability_fn=wrapped_probability_fn,\n        memory_sequence_length=memory_sequence_length,\n        score_mask_value=score_mask_value,\n        name=name)\n    self._num_units = num_units\n    self._normalize = normalize\n    self._name = name\n\n  def __call__(self, query, previous_alignments):\n    \"\"\"Score the query based on the keys and values.\n\n    Args:\n      query: Tensor of dtype matching `self.values` and shape\n        `[batch_size, query_depth]`.\n      previous_alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]`\n        (`alignments_size` is memory's `max_time`).\n\n    Returns:\n      alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]` (`alignments_size` is memory's\n        `max_time`).\n    \"\"\"\n    with variable_scope.variable_scope(None, \"bahdanau_attention\", [query]):\n      processed_query = self.query_layer(query) if self.query_layer else query\n      dtype = processed_query.dtype\n      # Reshape from [batch_size, ...] to [batch_size, 1, ...] for broadcasting.\n      processed_query = array_ops.expand_dims(processed_query, 1)\n      keys = self._keys\n      v = variable_scope.get_variable(\n          \"attention_v\", [self._num_units], dtype=dtype)\n      if self._normalize:\n        # Scalar used in weight normalization\n        g = variable_scope.get_variable(\n            \"attention_g\", dtype=dtype,\n            initializer=math.sqrt((1. / self._num_units)))\n        # Bias added prior to the nonlinearity\n        b = variable_scope.get_variable(\n            \"attention_b\", [self._num_units], dtype=dtype,\n            initializer=init_ops.zeros_initializer())\n        # normed_v = g * v / ||v||\n        normed_v = g * v * math_ops.rsqrt(\n            math_ops.reduce_sum(math_ops.square(v)))\n        score = math_ops.reduce_sum(\n            normed_v * math_ops.tanh(keys + processed_query + b), [2])\n      else:\n        score = math_ops.reduce_sum(v * math_ops.tanh(keys + processed_query),\n                                    [2])\n\n    #alignments = self._probability_fn(score, previous_alignments)\n    alignments = score\n    return alignments\n\n\nclass CoverageBahdanauAttention(_BaseAttentionMechanism):\n  \"\"\"Implements Bahdanau-style (additive) attention.\n\n  This attention has two forms.  The first is Bahdanau attention,\n  as described in:\n\n  Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio.\n  \"Neural Machine Translation by Jointly Learning to Align and Translate.\"\n  ICLR 2015. https://arxiv.org/abs/1409.0473\n\n  The second is the normalized form.  This form is inspired by the\n  weight normalization article:\n\n  Tim Salimans, Diederik P. Kingma.\n  \"Weight Normalization: A Simple Reparameterization to Accelerate\n   Training of Deep Neural Networks.\"\n  https://arxiv.org/abs/1602.07868\n\n  To enable the second form, construct the object with parameter\n  `normalize=True`.\n  \"\"\"\n\n  def __init__(self,\n               num_units,\n               memory,\n               memory_sequence_length=None,\n               normalize=False,\n               probability_fn=None,\n               score_mask_value=float(\"-inf\"),\n               memory_layer_name='memory_layer',\n               name=\"CoverageBahdanauAttention\"):\n    \"\"\"Construct the Attention mechanism.\n\n    Args:\n      num_units: The depth of the query mechanism.\n      memory: The memory to query; usually the output of an RNN encoder.  This\n        tensor should be shaped `[batch_size, max_time, ...]`.\n      memory_sequence_length (optional): Sequence lengths for the batch entries\n        in memory.  If provided, the memory tensor rows are masked with zeros\n        for values past the respective sequence lengths.\n      normalize: Python boolean.  Whether to normalize the energy term.\n      probability_fn: (optional) A `callable`.  Converts the score to\n        probabilities.  The default is @{tf.nn.softmax}. Other options include\n        @{tf.contrib.seq2seq.hardmax} and @{tf.contrib.sparsemax.sparsemax}.\n        Its signature should be: `probabilities = probability_fn(score)`.\n      score_mask_value: (optional): The mask value for score before passing into\n        `probability_fn`. The default is -inf. Only used if\n        `memory_sequence_length` is not None.\n      name: Name to use when creating ops.\n    \"\"\"\n    if probability_fn is None:\n      probability_fn = nn_ops.softmax\n    wrapped_probability_fn = lambda score, _: probability_fn(score)\n    super(CoverageBahdanauAttention, self).__init__(\n        query_layer=layers_core.Dense(\n            num_units, name=\"query_layer\", _scope=\"query_layer\", use_bias=False),\n        memory_layer=layers_core.Dense(\n            num_units, name=memory_layer_name, _scope=memory_layer_name, use_bias=False),\n        memory=memory,\n        probability_fn=wrapped_probability_fn,\n        memory_sequence_length=memory_sequence_length,\n        score_mask_value=score_mask_value,\n        name=name)\n    self._num_units = num_units\n    self._normalize = normalize\n    self._name = name\n\n    self._coverage_layer = layers_core.Dense(\n            num_units, name=\"coverage_layer\", _scope=\"coverage_layer\", use_bias=False)\n\n  def __call__(self, query, coverage):\n    \"\"\"Score the query based on the keys and values.\n\n    Args:\n      query: Tensor of dtype matching `self.values` and shape\n        `[batch_size, query_depth]`.\n      previous_alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]`\n        (`alignments_size` is memory's `max_time`).\n\n    Returns:\n      alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]` (`alignments_size` is memory's\n        `max_time`).\n    \"\"\"\n    with variable_scope.variable_scope(None, \"bahdanau_attention\", [query]):\n      processed_query = self.query_layer(query) if self.query_layer else query\n      processed_coverage = self._coverage_layer(coverage)\n      dtype = processed_query.dtype\n      # Reshape from [batch_size, ...] to [batch_size, 1, ...] for broadcasting.\n      processed_query = array_ops.expand_dims(processed_query, 1)\n      processed_coverage = array_ops.expand_dims(processed_coverage, 1)\n      keys = self._keys\n      v = variable_scope.get_variable(\n          \"attention_v\", [self._num_units], dtype=dtype)\n      if self._normalize:\n        # Scalar used in weight normalization\n        g = variable_scope.get_variable(\n            \"attention_g\", dtype=dtype,\n            initializer=math.sqrt((1. / self._num_units)))\n        # Bias added prior to the nonlinearity\n        b = variable_scope.get_variable(\n            \"attention_b\", [self._num_units], dtype=dtype,\n            initializer=init_ops.zeros_initializer())\n        # normed_v = g * v / ||v||\n        normed_v = g * v * math_ops.rsqrt(\n            math_ops.reduce_sum(math_ops.square(v)))\n        score = math_ops.reduce_sum(\n            normed_v * math_ops.tanh(keys + processed_query + processed_coverage + b), [2])\n      else:\n        score = math_ops.reduce_sum(v * math_ops.tanh(keys + processed_query + processed_coverage),\n                                    [2])\n\n    #alignments = self._probability_fn(score, previous_alignments)\n    alignments = score\n    return alignments\n\nclass CoverageV2BahdanauAttention(_BaseAttentionMechanism):\n  \"\"\"Implements Bahdanau-style (additive) attention.\n\n  This attention has two forms.  The first is Bahdanau attention,\n  as described in:\n\n  Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio.\n  \"Neural Machine Translation by Jointly Learning to Align and Translate.\"\n  ICLR 2015. https://arxiv.org/abs/1409.0473\n\n  The second is the normalized form.  This form is inspired by the\n  weight normalization article:\n\n  Tim Salimans, Diederik P. Kingma.\n  \"Weight Normalization: A Simple Reparameterization to Accelerate\n   Training of Deep Neural Networks.\"\n  https://arxiv.org/abs/1602.07868\n\n  To enable the second form, construct the object with parameter\n  `normalize=True`.\n  \"\"\"\n\n  def __init__(self,\n               num_units,\n               memory,\n               memory_sequence_length=None,\n               normalize=False,\n               probability_fn=None,\n               score_mask_value=float(\"-inf\"),\n               memory_layer_name='memory_layer',\n               name=\"CoverageV2BahdanauAttention\"):\n    \"\"\"Construct the Attention mechanism.\n\n    Args:\n      num_units: The depth of the query mechanism.\n      memory: The memory to query; usually the output of an RNN encoder.  This\n        tensor should be shaped `[batch_size, max_time, ...]`.\n      memory_sequence_length (optional): Sequence lengths for the batch entries\n        in memory.  If provided, the memory tensor rows are masked with zeros\n        for values past the respective sequence lengths.\n      normalize: Python boolean.  Whether to normalize the energy term.\n      probability_fn: (optional) A `callable`.  Converts the score to\n        probabilities.  The default is @{tf.nn.softmax}. Other options include\n        @{tf.contrib.seq2seq.hardmax} and @{tf.contrib.sparsemax.sparsemax}.\n        Its signature should be: `probabilities = probability_fn(score)`.\n      score_mask_value: (optional): The mask value for score before passing into\n        `probability_fn`. The default is -inf. Only used if\n        `memory_sequence_length` is not None.\n      name: Name to use when creating ops.\n    \"\"\"\n    if probability_fn is None:\n      probability_fn = nn_ops.softmax\n    wrapped_probability_fn = lambda score, _: probability_fn(score)\n    super(CoverageV2BahdanauAttention, self).__init__(\n        query_layer=layers_core.Dense(\n            num_units, name=\"query_layer\", _scope=\"query_layer\", use_bias=False),\n        memory_layer=layers_core.Dense(\n            num_units, name=memory_layer_name, _scope=memory_layer_name, use_bias=False),\n        memory=memory,\n        probability_fn=wrapped_probability_fn,\n        memory_sequence_length=memory_sequence_length,\n        score_mask_value=score_mask_value,\n        name=name)\n    self._num_units = num_units\n    self._normalize = normalize\n    self._name = name\n\n    self._coverage_layer = layers_core.Dense(\n            num_units, name=\"coverage_layer\", _scope=\"coverage_layer\", use_bias=False)\n\n    self._pre_alignment_layer = layers_core.Dense(\n            num_units, name=\"pre_alignment_layer\", _scope=\"pre_alignment_layer\", use_bias=False)\n\n    self._input_layer = layers_core.Dense(\n            num_units, name=\"input_layer\", _scope=\"input_layer\", use_bias=False)\n\n  def __call__(self, query, coverage, pre_alignment):\n    \"\"\"Score the query based on the keys and values.\n\n    Args:\n      query: Tensor of dtype matching `self.values` and shape\n        `[batch_size, query_depth]`.\n      previous_alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]`\n        (`alignments_size` is memory's `max_time`).\n\n    Returns:\n      alignments: Tensor of dtype matching `self.values` and shape\n        `[batch_size, alignments_size]` (`alignments_size` is memory's\n        `max_time`).\n    \"\"\"\n    #print(query, coverage, pre_alignment, input)\n    with variable_scope.variable_scope(None, \"bahdanau_attention\", [query]):\n      processed_query = self.query_layer(query) if self.query_layer else query\n      processed_coverage = self._coverage_layer(coverage)\n      processed_pre_alignment = self._pre_alignment_layer(pre_alignment)\n      dtype = processed_query.dtype\n      # Reshape from [batch_size, ...] to [batch_size, 1, ...] for broadcasting.\n      processed_query = array_ops.expand_dims(processed_query, 1)\n      processed_coverage = array_ops.expand_dims(processed_coverage, 1)\n      processed_pre_alignment = array_ops.expand_dims(processed_pre_alignment, 1)\n      keys = self._keys\n      v = variable_scope.get_variable(\n          \"attention_v\", [self._num_units], dtype=dtype)\n      if self._normalize:\n        # Scalar used in weight normalization\n        g = variable_scope.get_variable(\n            \"attention_g\", dtype=dtype,\n            initializer=math.sqrt((1. / self._num_units)))\n        # Bias added prior to the nonlinearity\n        b = variable_scope.get_variable(\n            \"attention_b\", [self._num_units], dtype=dtype,\n            initializer=init_ops.zeros_initializer())\n        # normed_v = g * v / ||v||\n        normed_v = g * v * math_ops.rsqrt(\n            math_ops.reduce_sum(math_ops.square(v)))\n        score = math_ops.reduce_sum(\n            normed_v * math_ops.tanh(keys + processed_query + processed_coverage + processed_pre_alignment + b), [2])\n      else:\n        score = math_ops.reduce_sum(v * math_ops.tanh(keys + processed_query + processed_coverage + processed_pre_alignment),\n                                    [2])\n\n    #alignments = self._probability_fn(score, previous_alignments)\n    alignments = score\n    return alignments\n\nclass AttentionWrapperState(\n    collections.namedtuple(\"AttentionWrapperState\",\n                           (\"cell_state\", \"attention\", \"time\", \"alignments\",\n                            \"alignment_history\"))):\n  \"\"\"`namedtuple` storing the state of a `AttentionWrapper`.\n\n  Contains:\n\n    - `cell_state`: The state of the wrapped `RNNCell` at the previous time\n      step.\n    - `attention`: The attention emitted at the previous time step.\n    - `time`: int32 scalar containing the current time step.\n    - `alignments`: The alignment emitted at the previous time step.\n    - `alignment_history`: (if enabled) a `TensorArray` containing alignment\n       matrices from all time steps.  Call `stack()` to convert to a `Tensor`.\n  \"\"\"\n\n  def clone(self, **kwargs):\n    \"\"\"Clone this object, overriding components provided by kwargs.\n\n    Example:\n\n    ```python\n    initial_state = attention_wrapper.zero_state(dtype=..., batch_size=...)\n    initial_state = initial_state.clone(cell_state=encoder_state)\n    ```\n\n    Args:\n      **kwargs: Any properties of the state object to replace in the returned\n        `AttentionWrapperState`.\n\n    Returns:\n      A new `AttentionWrapperState` whose properties are the same as\n      this one, except any overridden properties as provided in `kwargs`.\n    \"\"\"\n    return super(AttentionWrapperState, self)._replace(**kwargs)\n\n\ndef hardmax(logits, name=None):\n  \"\"\"Returns batched one-hot vectors.\n\n  The depth index containing the `1` is that of the maximum logit value.\n\n  Args:\n    logits: A batch tensor of logit values.\n    name: Name to use when creating ops.\n  Returns:\n    A batched one-hot tensor.\n  \"\"\"\n  with ops.name_scope(name, \"Hardmax\", [logits]):\n    logits = ops.convert_to_tensor(logits, name=\"logits\")\n    if logits.get_shape()[-1].value is not None:\n      depth = logits.get_shape()[-1].value\n    else:\n      depth = array_ops.shape(logits)[-1]\n    return array_ops.one_hot(\n        math_ops.argmax(logits, -1), depth, dtype=logits.dtype)\n\n#TODO new tf version will be rnn_cell_impl.RNNCell, now temply modify for tf verison 1.1.0-rc2\n#from tensorflow.contrib.rnn import core_rnn_cell\n#class AttentionWrapper(core_rnn_cell.RNNCell):\nclass AttentionWrapper(rnn_cell_impl.RNNCell):\n  \"\"\"Wraps another `RNNCell` with attention.\n  \"\"\"\n\n  def __init__(self,\n               cell,\n               attention_mechanism,\n               attention_layer_size=None,\n               alignment_history=False,\n               cell_input_fn=None,\n               output_attention=True,\n               initial_cell_state=None,\n               no_context=False,\n               output_alignment=False,\n               probability_fn=None,\n               score_as_alignment=False,\n               name=None):\n    \"\"\"Construct the `AttentionWrapper`.\n\n    Args:\n      cell: An instance of `RNNCell`.\n      attention_mechanism: An instance of `AttentionMechanism`.\n      attention_layer_size: Python integer, the depth of the attention (output)\n        layer. If None (default), use the context as attention at each time\n        step. Otherwise, feed the context and cell output into the attention\n        layer to generate attention at each time step.\n      alignment_history: Python boolean, whether to store alignment history\n        from all time steps in the final output state (currently stored as a\n        time major `TensorArray` on which you must call `stack()`).\n      cell_input_fn: (optional) A `callable`.  The default is:\n        `lambda inputs, attention: array_ops.concat([inputs, attention], -1)`.\n      output_attention: Python bool.  If `True` (default), the output at each\n        time step is the attention value.  This is the behavior of Luong-style\n        attention mechanisms.  If `False`, the output at each time step is\n        the output of `cell`.  This is the beahvior of Bhadanau-style\n        attention mechanisms.  In both cases, the `attention` tensor is\n        propagated to the next time step via the state and is used there.\n        This flag only controls whether the attention mechanism is propagated\n        up to the next cell in an RNN stack or to the top RNN output.\n      initial_cell_state: The initial state value to use for the cell when\n        the user calls `zero_state()`.  Note that if this value is provided\n        now, and the user uses a `batch_size` argument of `zero_state` which\n        does not match the batch size of `initial_cell_state`, proper\n        behavior is not guaranteed.\n      no_context: True when use pointer network, when you only want alignments\n      name: Name to use when creating ops.\n    \"\"\"\n    super(AttentionWrapper, self).__init__(name=name)\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\n          \"cell must be an RNNCell, saw type: %s\" % type(cell).__name__)\n    if not isinstance(attention_mechanism, AttentionMechanism):\n      raise TypeError(\n          \"attention_mechanism must be a AttentionMechanism, saw type: %s\"\n          % type(attention_mechanism).__name__)\n    if cell_input_fn is None:\n      cell_input_fn = (\n          lambda inputs, attention: array_ops.concat([inputs, attention], -1))\n    else:\n      if not callable(cell_input_fn):\n        raise TypeError(\n            \"cell_input_fn must be callable, saw type: %s\"\n            % type(cell_input_fn).__name__)\n\n    if attention_layer_size is not None:\n      self._attention_layer = layers_core.Dense(\n          attention_layer_size, name=\"attention_layer\", _scope=\"attention_layer\", use_bias=False)\n      self._attention_layer_size = attention_layer_size\n    else:\n      self._attention_layer = None\n      self._attention_layer_size = attention_mechanism.values.get_shape()[\n          -1].value\n\n    self._cell = cell\n    self._attention_mechanism = attention_mechanism\n    self._cell_input_fn = cell_input_fn\n    self._output_attention = output_attention\n    self._alignment_history = alignment_history\n    self._no_context = no_context\n    self._output_alignment = output_alignment\n    self._probability_fn = nn_ops.softmax if probability_fn is None else probability_fn\n    self._score_as_alignment = score_as_alignment\n    with ops.name_scope(name, \"AttentionWrapperInit\"):\n      if initial_cell_state is None:\n        self._initial_cell_state = None\n      else:\n        final_state_tensor = nest.flatten(initial_cell_state)[-1]\n        state_batch_size = (\n            final_state_tensor.shape[0].value\n            or array_ops.shape(final_state_tensor)[0])\n        error_message = (\n            \"When constructing AttentionWrapper %s: \" % self._base_name +\n            \"Non-matching batch sizes between the memory \"\n            \"(encoder output) and initial_cell_state.  Are you using \"\n            \"the BeamSearchDecoder?  You may need to tile your initial state \"\n            \"via the tf.contrib.seq2seq.tile_batch function with argument \"\n            \"multiple=beam_width.\")\n        with ops.control_dependencies(\n            [check_ops.assert_equal(state_batch_size,\n                                    self._attention_mechanism.batch_size,\n                                    message=error_message)]):\n          self._initial_cell_state = nest.map_structure(\n              lambda s: array_ops.identity(s, name=\"check_initial_cell_state\"),\n              initial_cell_state)\n\n  @property\n  def output_size(self):\n    if self._output_alignment:\n      return self._attention_mechanism.alignments_size\n    if self._output_attention:\n      return self._attention_layer_size\n    else:\n      return self._cell.output_size\n\n  @property\n  def state_size(self):\n    return AttentionWrapperState(\n        cell_state=self._cell.state_size,\n        time=tensor_shape.TensorShape([]),\n        attention=self._attention_layer_size,\n        alignments=self._attention_mechanism.alignments_size,\n        alignment_history=())  # alignment_history is sometimes a TensorArray\n\n  def zero_state(self, batch_size, dtype):\n    with ops.name_scope(type(self).__name__ + \"ZeroState\", values=[batch_size]):\n      if self._initial_cell_state is not None:\n        cell_state = self._initial_cell_state\n      else:\n        cell_state = self._cell.zero_state(batch_size, dtype)\n      error_message = (\n          \"When calling zero_state of AttentionWrapper %s: \" % self._base_name +\n          \"Non-matching batch sizes between the memory \"\n          \"(encoder output) and the requested batch size.  Are you using \"\n          \"the BeamSearchDecoder?  If so, make sure your encoder output has \"\n          \"been tiled to beam_width via tf.contrib.seq2seq.tile_batch, and \"\n          \"the batch_size= argument passed to zero_state is \"\n          \"batch_size * beam_width.\")\n      with ops.control_dependencies(\n          [check_ops.assert_equal(batch_size,\n                                  self._attention_mechanism.batch_size,\n                                  message=error_message)]):\n        cell_state = nest.map_structure(\n            lambda s: array_ops.identity(s, name=\"checked_cell_state\"),\n            cell_state)\n      if self._alignment_history:\n        alignment_history = tensor_array_ops.TensorArray(\n            dtype=dtype, size=0, dynamic_size=True)\n      else:\n        alignment_history = ()\n      return AttentionWrapperState(\n          cell_state=cell_state,\n          time=array_ops.zeros([], dtype=dtypes.int32),\n          attention=_zero_state_tensors(self._attention_layer_size, batch_size,\n                                        dtype),\n          alignments=self._attention_mechanism.initial_alignments(\n              batch_size, dtype),\n          alignment_history=alignment_history)\n\n  def call(self, inputs, state):\n    \"\"\"Perform a step of attention-wrapped RNN.\n\n    - Step 1: Mix the `inputs` and previous step's `attention` output via\n      `cell_input_fn`.\n    - Step 2: Call the wrapped `cell` with this input and its previous state.\n    - Step 3: Score the cell's output with `attention_mechanism`.\n    - Step 4: Calculate the alignments by passing the score through the\n      `normalizer`.\n    - Step 5: Calculate the context vector as the inner product between the\n      alignments and the attention_mechanism's values (memory).\n    - Step 6: Calculate the attention output by concatenating the cell output\n      and context through the attention layer (a linear layer with\n      `attention_layer_size` outputs).\n\n    Args:\n      inputs: (Possibly nested tuple of) Tensor, the input at this time step.\n      state: An instance of `AttentionWrapperState` containing\n        tensors from the previous time step.\n\n    Returns:\n      A tuple `(attention_or_cell_output, next_state)`, where:\n\n      - `attention_or_cell_output` depending on `output_attention`.\n      - `next_state` is an instance of `AttentionWrapperState`\n         containing the state calculated at this time step.\n    \"\"\"\n    # Step 1: Calculate the true inputs to the cell based on the\n    # previous attention value.\n    cell_inputs = self._cell_input_fn(inputs, state.attention)\n    cell_state = state.cell_state\n    cell_output, next_cell_state = self._cell(cell_inputs, cell_state)\n\n    cell_batch_size = (\n        cell_output.shape[0].value or array_ops.shape(cell_output)[0])\n    error_message = (\n        \"When applying AttentionWrapper %s: \" % self.name +\n        \"Non-matching batch sizes between the memory \"\n        \"(encoder output) and the query (decoder output).  Are you using \"\n        \"the BeamSearchDecoder?  You may need to tile your memory input via \"\n        \"the tf.contrib.seq2seq.tile_batch function with argument \"\n        \"multiple=beam_width.\")\n    # TODO chg hack just remove for outgraph beam search, since attention states will change\n    #with ops.control_dependencies(\n    #    [check_ops.assert_equal(cell_batch_size,\n    #                            self._attention_mechanism.batch_size,\n    #                            message=error_message)]):\n    cell_output = array_ops.identity(\n          cell_output, name=\"checked_cell_output\")\n\n    #alignments = self._attention_mechanism(\n    #    cell_output, previous_alignments=state.alignments)\n\n    scores = self._attention_mechanism(\n        cell_output, previous_alignments=state.alignments)\n    \n    alignments = self._probability_fn(scores)\n     \n    if self._no_context:\n      attention = cell_output\n    else:\n      # Reshape from [batch_size, memory_time] to [batch_size, 1, memory_time]\n      \n      #expanded_alignments = array_ops.expand_dims(alignments, 1)\n      expanded_alignments = array_ops.expand_dims(alignments, 2)\n      \n      # Context is the inner product of alignments and values along the\n      # memory time dimension.\n      # alignments shape is\n      #   [batch_size, 1, memory_time]\n      # attention_mechanism.values shape is\n      #   [batch_size, memory_time, attention_mechanism.num_units]\n      # the batched matmul is over memory_time, so the output shape is\n      #   [batch_size, 1, attention_mechanism.num_units].\n      # we then squeeze out the singleton dim.\n      attention_mechanism_values = self._attention_mechanism.values\n      \n      #context = math_ops.matmul(expanded_alignments, attention_mechanism_values)\n      #context = array_ops.squeeze(context, [1])\n\n      context = math_ops.reduce_sum(expanded_alignments * attention_mechanism_values, [1])\n\n      if self._attention_layer is not None:\n        attention = self._attention_layer(\n            array_ops.concat([cell_output, context], 1))\n      else:\n        attention = context\n\n    if self._alignment_history:\n      alignment_history = state.alignment_history.write(\n          state.time, alignments)\n    else:\n      alignment_history = ()\n\n    if self._score_as_alignment:\n      alignments = scores\n\n    #TODO maybe outupt both alignments and scores ?\n    next_state = AttentionWrapperState(\n        time=state.time + 1,\n        cell_state=next_cell_state,\n        attention=attention,\n        alignments=alignments,\n        alignment_history=alignment_history)\n\n    #TODO why use output_alignment will be slower for dyanmic_rnn ?\n    if self._output_alignment:\n      return alignments, next_state\n\n    if self._output_attention:\n      return attention, next_state\n    else:\n      return cell_output, next_state\n\nclass PointerAttentionWrapperState(\n    collections.namedtuple(\"PointerAttentionWrapperState\",\n                           (\"cell_state\", \"attention\", \"time\", \"alignments\",\n                            \"alignment_history\", \"gen_probability\"))):\n  \"\"\"`namedtuple` storing the state of a `AttentionWrapper`.\n\n  Contains:\n\n    - `cell_state`: The state of the wrapped `RNNCell` at the previous time\n      step.\n    - `attention`: The attention emitted at the previous time step.\n    - `time`: int32 scalar containing the current time step.\n    - `alignments`: The alignment emitted at the previous time step.\n    - `alignment_history`: (if enabled) a `TensorArray` containing alignment\n       matrices from all time steps.  Call `stack()` to convert to a `Tensor`.\n  \"\"\"\n\n  def clone(self, **kwargs):\n    \"\"\"Clone this object, overriding components provided by kwargs.\n\n    Example:\n\n    ```python\n    initial_state = attention_wrapper.zero_state(dtype=..., batch_size=...)\n    initial_state = initial_state.clone(cell_state=encoder_state)\n    ```\n\n    Args:\n      **kwargs: Any properties of the state object to replace in the returned\n        `AttentionWrapperState`.\n\n    Returns:\n      A new `AttentionWrapperState` whose properties are the same as\n      this one, except any overridden properties as provided in `kwargs`.\n    \"\"\"\n    return super(PointerAttentionWrapperState, self)._replace(**kwargs)\n\nclass PointerAttentionWrapper(rnn_cell_impl.RNNCell):\n  \"\"\"Wraps another `RNNCell` with attention.\n  \"\"\"\n\n  def __init__(self,\n               cell,\n               attention_mechanism,\n               attention_layer_size=None,\n               alignment_history=False,\n               cell_input_fn=None,\n               output_attention=True,\n               initial_cell_state=None,\n               no_context=False,\n               output_alignment=False,\n               probability_fn=None,\n               score_as_alignment=False,\n               mix_pre_alignment=False,\n               name=None):\n    \"\"\"Construct the `AttentionWrapper`.\n\n    Args:\n      cell: An instance of `RNNCell`.\n      attention_mechanism: An instance of `AttentionMechanism`.\n      attention_layer_size: Python integer, the depth of the attention (output)\n        layer. If None (default), use the context as attention at each time\n        step. Otherwise, feed the context and cell output into the attention\n        layer to generate attention at each time step.\n      alignment_history: Python boolean, whether to store alignment history\n        from all time steps in the final output state (currently stored as a\n        time major `TensorArray` on which you must call `stack()`).\n      cell_input_fn: (optional) A `callable`.  The default is:\n        `lambda inputs, attention: array_ops.concat([inputs, attention], -1)`.\n      output_attention: Python bool.  If `True` (default), the output at each\n        time step is the attention value.  This is the behavior of Luong-style\n        attention mechanisms.  If `False`, the output at each time step is\n        the output of `cell`.  This is the beahvior of Bhadanau-style\n        attention mechanisms.  In both cases, the `attention` tensor is\n        propagated to the next time step via the state and is used there.\n        This flag only controls whether the attention mechanism is propagated\n        up to the next cell in an RNN stack or to the top RNN output.\n      initial_cell_state: The initial state value to use for the cell when\n        the user calls `zero_state()`.  Note that if this value is provided\n        now, and the user uses a `batch_size` argument of `zero_state` which\n        does not match the batch size of `initial_cell_state`, proper\n        behavior is not guaranteed.\n      no_context: True when use pointer network, when you only want alignments\n      name: Name to use when creating ops.\n    \"\"\"\n    super(PointerAttentionWrapper, self).__init__(name=name)\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\n          \"cell must be an RNNCell, saw type: %s\" % type(cell).__name__)\n    if not isinstance(attention_mechanism, AttentionMechanism):\n      raise TypeError(\n          \"attention_mechanism must be a AttentionMechanism, saw type: %s\"\n          % type(attention_mechanism).__name__)\n    if cell_input_fn is None:\n      cell_input_fn = (\n          lambda inputs, attention: array_ops.concat([inputs, attention], -1))\n    else:\n      if not callable(cell_input_fn):\n        raise TypeError(\n            \"cell_input_fn must be callable, saw type: %s\"\n            % type(cell_input_fn).__name__)\n\n    if attention_layer_size is not None:\n      self._attention_layer = layers_core.Dense(\n          attention_layer_size, name=\"attention_layer\", _scope=\"attention_layer\", use_bias=False)\n      self._attention_layer_size = attention_layer_size\n    else:\n      self._attention_layer = None\n      self._attention_layer_size = attention_mechanism.values.get_shape()[\n          -1].value\n\n    self._cell = cell\n    self._attention_mechanism = attention_mechanism\n    self._cell_input_fn = cell_input_fn\n    self._output_attention = output_attention\n    self._alignment_history = alignment_history\n    self._no_context = no_context\n    self._output_alignment = output_alignment\n    #chg TODO masked softmax support to make inference result stable with different padding length\n    #right now use attention will make inference result unstable, but may not hurt inference performance much\n    self._probability_fn = nn_ops.softmax if probability_fn is None else probability_fn\n    self._score_as_alignment = score_as_alignment\n    self._mix_pre_alignment = mix_pre_alignment\n    with ops.name_scope(name, \"AttentionWrapperInit\"):\n      if initial_cell_state is None:\n        self._initial_cell_state = None\n      else:\n        final_state_tensor = nest.flatten(initial_cell_state)[-1]\n        state_batch_size = (\n            final_state_tensor.shape[0].value\n            or array_ops.shape(final_state_tensor)[0])\n        error_message = (\n            \"When constructing AttentionWrapper %s: \" % self._base_name +\n            \"Non-matching batch sizes between the memory \"\n            \"(encoder output) and initial_cell_state.  Are you using \"\n            \"the BeamSearchDecoder?  You may need to tile your initial state \"\n            \"via the tf.contrib.seq2seq.tile_batch function with argument \"\n            \"multiple=beam_width.\")\n        with ops.control_dependencies(\n            [check_ops.assert_equal(state_batch_size,\n                                    self._attention_mechanism.batch_size,\n                                    message=error_message)]):\n          self._initial_cell_state = nest.map_structure(\n              lambda s: array_ops.identity(s, name=\"check_initial_cell_state\"),\n              initial_cell_state)\n\n  @property\n  def output_size(self):\n    if self._output_alignment:\n      return self._attention_mechanism.alignments_size\n    if self._output_attention:\n      return self._attention_layer_size\n    else:\n      return self._cell.output_size\n\n  @property\n  def state_size(self):\n    return PointerAttentionWrapperState(\n        cell_state=self._cell.state_size,\n        time=tensor_shape.TensorShape([]),\n        attention=self._attention_layer_size,\n        alignments=self._attention_mechanism.alignments_size,\n        alignment_history=(), # alignment_history is sometimes a TensorArray\n        gen_probability=1.)  \n\n  def zero_state(self, batch_size, dtype):\n    with ops.name_scope(type(self).__name__ + \"ZeroState\", values=[batch_size]):\n      if self._initial_cell_state is not None:\n        cell_state = self._initial_cell_state\n      else:\n        cell_state = self._cell.zero_state(batch_size, dtype)\n      error_message = (\n          \"When calling zero_state of AttentionWrapper %s: \" % self._base_name +\n          \"Non-matching batch sizes between the memory \"\n          \"(encoder output) and the requested batch size.  Are you using \"\n          \"the BeamSearchDecoder?  If so, make sure your encoder output has \"\n          \"been tiled to beam_width via tf.contrib.seq2seq.tile_batch, and \"\n          \"the batch_size= argument passed to zero_state is \"\n          \"batch_size * beam_width.\")\n      with ops.control_dependencies(\n          [check_ops.assert_equal(batch_size,\n                                  self._attention_mechanism.batch_size,\n                                  message=error_message)]):\n        cell_state = nest.map_structure(\n            lambda s: array_ops.identity(s, name=\"checked_cell_state\"),\n            cell_state)\n      if self._alignment_history:\n        alignment_history = tensor_array_ops.TensorArray(\n            dtype=dtype, size=0, dynamic_size=True)\n      else:\n        alignment_history = ()\n      return PointerAttentionWrapperState(\n          cell_state=cell_state,\n          time=array_ops.zeros([], dtype=dtypes.int32),\n          attention=_zero_state_tensors(self._attention_layer_size, batch_size,\n                                        dtype),\n          alignments=self._attention_mechanism.initial_alignments(\n              batch_size, dtype),\n          alignment_history=alignment_history,\n          gen_probability=array_ops.ones([batch_size, 1], dtype=dtypes.float32))\n\n  def call(self, inputs, state):\n    \"\"\"Perform a step of attention-wrapped RNN.\n\n    - Step 1: Mix the `inputs` and previous step's `attention` output via\n      `cell_input_fn`.\n    - Step 2: Call the wrapped `cell` with this input and its previous state.\n    - Step 3: Score the cell's output with `attention_mechanism`.\n    - Step 4: Calculate the alignments by passing the score through the\n      `normalizer`.\n    - Step 5: Calculate the context vector as the inner product between the\n      alignments and the attention_mechanism's values (memory).\n    - Step 6: Calculate the attention output by concatenating the cell output\n      and context through the attention layer (a linear layer with\n      `attention_layer_size` outputs).\n\n    Args:\n      inputs: (Possibly nested tuple of) Tensor, the input at this time step.\n      state: An instance of `AttentionWrapperState` containing\n        tensors from the previous time step.\n\n    Returns:\n      A tuple `(attention_or_cell_output, next_state)`, where:\n\n      - `attention_or_cell_output` depending on `output_attention`.\n      - `next_state` is an instance of `AttentionWrapperState`\n         containing the state calculated at this time step.\n    \"\"\"\n    # Step 1: Calculate the true inputs to the cell based on the\n    # previous attention value.\n    cell_inputs = self._cell_input_fn(inputs, state.attention)\n    cell_state = state.cell_state\n    cell_output, next_cell_state = self._cell(cell_inputs, cell_state)\n\n    cell_batch_size = (\n        cell_output.shape[0].value or array_ops.shape(cell_output)[0])\n    error_message = (\n        \"When applying AttentionWrapper %s: \" % self.name +\n        \"Non-matching batch sizes between the memory \"\n        \"(encoder output) and the query (decoder output).  Are you using \"\n        \"the BeamSearchDecoder?  You may need to tile your memory input via \"\n        \"the tf.contrib.seq2seq.tile_batch function with argument \"\n        \"multiple=beam_width.\")\n    # TODO chg hack just remove for outgraph beam search, since attention states will change\n    #with ops.control_dependencies(\n    #    [check_ops.assert_equal(cell_batch_size,\n    #                            self._attention_mechanism.batch_size,\n    #                            message=error_message)]):\n    cell_output = array_ops.identity(\n          cell_output, name=\"checked_cell_output\")\n\n    #alignments = self._attention_mechanism(\n    #    cell_output, previous_alignments=state.alignments)\n\n    scores = self._attention_mechanism(\n        cell_output, previous_alignments=state.alignments)\n    \n    alignments = self._probability_fn(scores)\n\n    if self._mix_pre_alignment:\n      gen_probability_logits = layers.linear(array_ops.concat(\n           cell_state, 1), 1, scope='gen_probability')\n      ##pointer v2\n      # gen_probability_logits = layers.linear(array_ops.concat(\n      #      [cell_state[0], cell_state[1], cell_output], 1), 1, scope='gen_probability')\n      gen_probability = math_ops.sigmoid(gen_probability_logits)\n      alignments = alignments * gen_probability + state.alignments * (1 - gen_probability)\n     \n    if self._no_context:\n      attention = cell_output\n    else:\n      # Reshape from [batch_size, memory_time] to [batch_size, 1, memory_time]\n      \n      #expanded_alignments = array_ops.expand_dims(alignments, 1)\n      expanded_alignments = array_ops.expand_dims(alignments, 2)\n      \n      # Context is the inner product of alignments and values along the\n      # memory time dimension.\n      # alignments shape is\n      #   [batch_size, 1, memory_time]\n      # attention_mechanism.values shape is\n      #   [batch_size, memory_time, attention_mechanism.num_units]\n      # the batched matmul is over memory_time, so the output shape is\n      #   [batch_size, 1, attention_mechanism.num_units].\n      # we then squeeze out the singleton dim.\n      attention_mechanism_values = self._attention_mechanism.values\n      \n      #context = math_ops.matmul(expanded_alignments, attention_mechanism_values)\n      #context = array_ops.squeeze(context, [1])\n\n      context = math_ops.reduce_sum(expanded_alignments * attention_mechanism_values, [1])\n\n      if self._attention_layer is not None:\n        attention = self._attention_layer(\n            array_ops.concat([cell_output, context], 1))\n      else:\n        attention = context\n\n    if self._alignment_history:\n      alignment_history = state.alignment_history.write(\n          state.time, alignments)\n    else:\n      alignment_history = ()\n\n    if self._score_as_alignment:\n      alignments = scores\n\n      # # Calculate p_gen\n      # if pointer_gen:\n      #   with tf.variable_scope('calculate_pgen'):\n      #     p_gen = linear([context_vector, state.c, state.h, x], 1, True) # a scalar\n      #     p_gen = tf.sigmoid(p_gen)\n      #     p_gens.append(p_gen)\n\n    if not self._mix_pre_alignment:\n      gen_probability_logits = layers.linear(array_ops.concat(\n           [context, cell_output, cell_inputs], 1), 1, scope='gen_probability')\n      gen_probability = math_ops.sigmoid(gen_probability_logits)\n\n\n    #gen_probability = array_ops.ones([array_ops.shape(cell_output)[0], 1], dtype=dtypes.float32)\n\n    #TODO maybe outupt both alignments and scores ?\n    next_state = PointerAttentionWrapperState(\n        time=state.time + 1,\n        cell_state=next_cell_state,\n        attention=attention,\n        alignments=alignments,\n        alignment_history=alignment_history,\n        gen_probability=gen_probability)\n\n    #TODO why use output_alignment will be slower for dyanmic_rnn ?\n    if self._output_alignment:\n      return alignments, next_state\n\n    if self._output_attention:\n      return attention, next_state\n    else:\n      return cell_output, next_state\n\n\n#TODO move all new wrapper code to another file extended_attention_wrapper\nclass ShowTellAttentionWrapperState(\n    collections.namedtuple(\"ShowTellAttentionWrapperState\",\n                          (\"cell_state\", \"attention\", \"pre_attention\", \"time\", \"alignments\",\n                            \"alignment_history\", \"gen_probability\"))):\n  \"\"\"`namedtuple` storing the state of a `AttentionWrapper`.\n\n  Contains:\n\n    - `cell_state`: The state of the wrapped `RNNCell` at the previous time\n      step.\n    - `attention`: The attention emitted at the previous time step.\n    - `time`: int32 scalar containing the current time step.\n    - `alignments`: The alignment emitted at the previous time step.\n    - `alignment_history`: (if enabled) a `TensorArray` containing alignment\n       matrices from all time steps.  Call `stack()` to convert to a `Tensor`.\n  \"\"\"\n\n  def clone(self, **kwargs):\n    \"\"\"Clone this object, overriding components provided by kwargs.\n\n    Example:\n\n    ```python\n    initial_state = attention_wrapper.zero_state(dtype=..., batch_size=...)\n    initial_state = initial_state.clone(cell_state=encoder_state)\n    ```\n\n    Args:\n      **kwargs: Any properties of the state object to replace in the returned\n        `AttentionWrapperState`.\n\n    Returns:\n      A new `AttentionWrapperState` whose properties are the same as\n      this one, except any overridden properties as provided in `kwargs`.\n    \"\"\"\n    return super(ShowTellAttentionWrapperState, self)._replace(**kwargs)\n\nclass ShowTellAttentionWrapper(rnn_cell_impl.RNNCell):\n  \"\"\"Wraps another `RNNCell` with attention.\n  \"\"\"\n\n  def __init__(self,\n               cell,\n               attention_mechanism,\n               attention_layer_size=None,\n               alignment_history=False,\n               cell_input_fn=None,\n               output_attention=True,\n               initial_cell_state=None,\n               no_context=False,\n               output_alignment=False,\n               probability_fn=None,\n               score_as_alignment=False,\n               use_gen_probablity=False,\n               name=None):\n    \"\"\"Construct the `AttentionWrapper`.\n\n    Args:\n      cell: An instance of `RNNCell`.\n      attention_mechanism: An instance of `AttentionMechanism`.\n      attention_layer_size: Python integer, the depth of the attention (output)\n        layer. If None (default), use the context as attention at each time\n        step. Otherwise, feed the context and cell output into the attention\n        layer to generate attention at each time step.\n      alignment_history: Python boolean, whether to store alignment history\n        from all time steps in the final output state (currently stored as a\n        time major `TensorArray` on which you must call `stack()`).\n      cell_input_fn: (optional) A `callable`.  The default is:\n        `lambda inputs, attention: array_ops.concat([inputs, attention], -1)`.\n      output_attention: Python bool.  If `True` (default), the output at each\n        time step is the attention value.  This is the behavior of Luong-style\n        attention mechanisms.  If `False`, the output at each time step is\n        the output of `cell`.  This is the beahvior of Bhadanau-style\n        attention mechanisms.  In both cases, the `attention` tensor is\n        propagated to the next time step via the state and is used there.\n        This flag only controls whether the attention mechanism is propagated\n        up to the next cell in an RNN stack or to the top RNN output.\n      initial_cell_state: The initial state value to use for the cell when\n        the user calls `zero_state()`.  Note that if this value is provided\n        now, and the user uses a `batch_size` argument of `zero_state` which\n        does not match the batch size of `initial_cell_state`, proper\n        behavior is not guaranteed.\n      no_context: True when use pointer network, when you only want alignments\n      name: Name to use when creating ops.\n    \"\"\"\n    super(ShowTellAttentionWrapper, self).__init__(name=name)\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\n          \"cell must be an RNNCell, saw type: %s\" % type(cell).__name__)\n    if not isinstance(attention_mechanism, AttentionMechanism):\n      raise TypeError(\n          \"attention_mechanism must be a AttentionMechanism, saw type: %s\"\n          % type(attention_mechanism).__name__)\n    if cell_input_fn is None:\n      cell_input_fn = (\n          lambda inputs, attention: array_ops.concat([inputs, attention], -1))\n    else:\n      if not callable(cell_input_fn):\n        raise TypeError(\n            \"cell_input_fn must be callable, saw type: %s\"\n            % type(cell_input_fn).__name__)\n\n    if attention_layer_size is not None:\n      self._attention_layer = layers_core.Dense(\n          attention_layer_size, name=\"attention_layer\", _scope=\"attention_layer\", use_bias=False)\n      self._attention_layer_size = attention_layer_size\n    else:\n      self._attention_layer = None\n      self._attention_layer_size = attention_mechanism.values.get_shape()[\n          -1].value\n\n    self._cell = cell\n    self._attention_mechanism = attention_mechanism\n    self._cell_input_fn = cell_input_fn\n    self._output_attention = output_attention\n    self._alignment_history = alignment_history\n    self._no_context = no_context\n    self._output_alignment = output_alignment\n    #chg TODO masked softmax support to make inference result stable with different padding length\n    #right now use attention will make inference result unstable, but may not hurt inference performance much\n    self._probability_fn = nn_ops.softmax if probability_fn is None else probability_fn\n    self._score_as_alignment = score_as_alignment\n    self._use_gen_probablity = use_gen_probablity\n    with ops.name_scope(name, \"AttentionWrapperInit\"):\n      if initial_cell_state is None:\n        self._initial_cell_state = None\n      else:\n        final_state_tensor = nest.flatten(initial_cell_state)[-1]\n        state_batch_size = (\n            final_state_tensor.shape[0].value\n            or array_ops.shape(final_state_tensor)[0])\n        error_message = (\n            \"When constructing AttentionWrapper %s: \" % self._base_name +\n            \"Non-matching batch sizes between the memory \"\n            \"(encoder output) and initial_cell_state.  Are you using \"\n            \"the BeamSearchDecoder?  You may need to tile your initial state \"\n            \"via the tf.contrib.seq2seq.tile_batch function with argument \"\n            \"multiple=beam_width.\")\n        with ops.control_dependencies(\n            [check_ops.assert_equal(state_batch_size,\n                                    self._attention_mechanism.batch_size,\n                                    message=error_message)]):\n          self._initial_cell_state = nest.map_structure(\n              lambda s: array_ops.identity(s, name=\"check_initial_cell_state\"),\n              initial_cell_state)\n\n  @property\n  def output_size(self):\n    if self._output_alignment:\n      return self._attention_mechanism.alignments_size\n    if self._output_attention:\n      return self._attention_layer_size\n    else:\n      return self._cell.output_size\n\n  @property\n  def state_size(self):\n    return ShowTellAttentionWrapperState(\n        cell_state=self._cell.state_size,\n        time=tensor_shape.TensorShape([]),\n        attention=self._attention_layer_size,\n        pre_attention=self._attention_layer_size,\n        alignments=self._attention_mechanism.alignments_size,\n        alignment_history=(), # alignment_history is sometimes a TensorArray\n        gen_probability=1)  \n\n  def zero_state(self, batch_size, dtype):\n    with ops.name_scope(type(self).__name__ + \"ZeroState\", values=[batch_size]):\n      if self._initial_cell_state is not None:\n        cell_state = self._initial_cell_state\n      else:\n        cell_state = self._cell.zero_state(batch_size, dtype)\n      error_message = (\n          \"When calling zero_state of AttentionWrapper %s: \" % self._base_name +\n          \"Non-matching batch sizes between the memory \"\n          \"(encoder output) and the requested batch size.  Are you using \"\n          \"the BeamSearchDecoder?  If so, make sure your encoder output has \"\n          \"been tiled to beam_width via tf.contrib.seq2seq.tile_batch, and \"\n          \"the batch_size= argument passed to zero_state is \"\n          \"batch_size * beam_width.\")\n      with ops.control_dependencies(\n          [check_ops.assert_equal(batch_size,\n                                  self._attention_mechanism.batch_size,\n                                  message=error_message)]):\n        cell_state = nest.map_structure(\n            lambda s: array_ops.identity(s, name=\"checked_cell_state\"),\n            cell_state)\n      if self._alignment_history:\n        alignment_history = tensor_array_ops.TensorArray(\n            dtype=dtype, size=0, dynamic_size=True)\n      else:\n        alignment_history = ()\n      return ShowTellAttentionWrapperState(\n          cell_state=cell_state,\n          time=array_ops.zeros([], dtype=dtypes.int32),\n          attention=_zero_state_tensors(self._attention_layer_size, batch_size,\n                                        dtype),\n          pre_attention=_zero_state_tensors(self._attention_layer_size, batch_size,\n                                        dtype),\n          alignments=self._attention_mechanism.initial_alignments(\n              batch_size, dtype),\n          alignment_history=alignment_history,\n          gen_probability=array_ops.ones([batch_size, 1], dtype=dtypes.float32))\n\n  def call(self, inputs, state):\n    \"\"\"Perform a step of attention-wrapped RNN.\n\n    - Step 1: Mix the `inputs` and previous step's `attention` output via\n      `cell_input_fn`.\n    - Step 2: Call the wrapped `cell` with this input and its previous state.\n    - Step 3: Score the cell's output with `attention_mechanism`.\n    - Step 4: Calculate the alignments by passing the score through the\n      `normalizer`.\n    - Step 5: Calculate the context vector as the inner product between the\n      alignments and the attention_mechanism's values (memory).\n    - Step 6: Calculate the attention output by concatenating the cell output\n      and context through the attention layer (a linear layer with\n      `attention_layer_size` outputs).\n\n    Args:\n      inputs: (Possibly nested tuple of) Tensor, the input at this time step.\n      state: An instance of `AttentionWrapperState` containing\n        tensors from the previous time step.\n\n    Returns:\n      A tuple `(attention_or_cell_output, next_state)`, where:\n\n      - `attention_or_cell_output` depending on `output_attention`.\n      - `next_state` is an instance of `AttentionWrapperState`\n         containing the state calculated at this time step.\n    \"\"\"\n    # Step 1: Calculate the true inputs to the cell based on the\n    # previous attention value.\n    #cell_inputs = self._cell_input_fn(inputs, state.attention)\n    #chg add change to use previous two steps attentions \n    cell_inputs = self._cell_input_fn(inputs, array_ops.concat([state.attention, state.pre_attention], -1))\n\n    cell_state = state.cell_state\n    cell_output, next_cell_state = self._cell(cell_inputs, cell_state)\n\n    cell_batch_size = (\n        cell_output.shape[0].value or array_ops.shape(cell_output)[0])\n    error_message = (\n        \"When applying AttentionWrapper %s: \" % self.name +\n        \"Non-matching batch sizes between the memory \"\n        \"(encoder output) and the query (decoder output).  Are you using \"\n        \"the BeamSearchDecoder?  You may need to tile your memory input via \"\n        \"the tf.contrib.seq2seq.tile_batch function with argument \"\n        \"multiple=beam_width.\")\n    # TODO chg hack just remove for outgraph beam search, since attention states will change\n    #with ops.control_dependencies(\n    #    [check_ops.assert_equal(cell_batch_size,\n    #                            self._attention_mechanism.batch_size,\n    #                            message=error_message)]):\n    cell_output = array_ops.identity(\n          cell_output, name=\"checked_cell_output\")\n\n    gen_probability_logits = layers.linear(array_ops.concat(\n        state.cell_state, 1), 1, scope='gen_probability')\n    gen_probability = math_ops.sigmoid(gen_probability_logits)\n\n    if not self._use_gen_probablity:\n      gen_probability = state.gen_probability #just 1.\n\n    scores = self._attention_mechanism(\n        cell_output, previous_alignments=state.alignments)\n    \n    alignments = self._probability_fn(scores)\n     \n    if self._no_context:\n      attention = cell_output\n    else:\n      # Reshape from [batch_size, memory_time] to [batch_size, 1, memory_time]\n      \n      #expanded_alignments = array_ops.expand_dims(alignments, 1)\n      expanded_alignments = array_ops.expand_dims(alignments, 2)\n      \n      # Context is the inner product of alignments and values along the\n      # memory time dimension.\n      # alignments shape is\n      #   [batch_size, 1, memory_time]\n      # attention_mechanism.values shape is\n      #   [batch_size, memory_time, attention_mechanism.num_units]\n      # the batched matmul is over memory_time, so the output shape is\n      #   [batch_size, 1, attention_mechanism.num_units].\n      # we then squeeze out the singleton dim.\n      attention_mechanism_values = self._attention_mechanism.values\n      \n      #context = math_ops.matmul(expanded_alignments, attention_mechanism_values)\n      #context = array_ops.squeeze(context, [1])\n\n      context = math_ops.reduce_sum(expanded_alignments * attention_mechanism_values, [1])\n\n      context *= gen_probability\n\n      if self._attention_layer is not None:\n        attention = self._attention_layer(\n            array_ops.concat([cell_output, context], 1))\n      else:\n        attention = context\n\n    if self._alignment_history:\n      alignment_history = state.alignment_history.write(\n          state.time, alignments)\n    else:\n      alignment_history = ()\n\n    if self._score_as_alignment:\n      alignments = scores\n\n    #TODO maybe outupt both alignments and scores ?\n    next_state = ShowTellAttentionWrapperState(\n        time=state.time + 1,\n        cell_state=next_cell_state,\n        attention=attention,\n        pre_attention=state.attention,\n        alignments=alignments,\n        alignment_history=alignment_history,\n        gen_probability=gen_probability)\n\n    #TODO why use output_alignment will be slower for dyanmic_rnn ?\n    if self._output_alignment:\n      return alignments, next_state\n\n    if self._output_attention:\n      return attention, next_state\n    else:\n      return cell_output, next_state\n\n\nclass TwoLayersAttentionWrapperState(\n    collections.namedtuple(\"TwoLayersAttentionWrapperState\",\n                           (\"cell_state\", \"attention\", \"time\", \n                            \"alignments\", \"first_layer_alignments\",\n                            \"alignment_history\", \"gen_probability\"))):\n  \"\"\"`namedtuple` storing the state of a `AttentionWrapper`.\n\n  Contains:\n\n    - `cell_state`: The state of the wrapped `RNNCell` at the previous time\n      step.\n    - `attention`: The attention emitted at the previous time step.\n    - `time`: int32 scalar containing the current time step.\n    - `alignments`: The alignment emitted at the previous time step.\n    - `alignment_history`: (if enabled) a `TensorArray` containing alignment\n       matrices from all time steps.  Call `stack()` to convert to a `Tensor`.\n  \"\"\"\n\n  def clone(self, **kwargs):\n    \"\"\"Clone this object, overriding components provided by kwargs.\n\n    Example:\n\n    ```python\n    initial_state = attention_wrapper.zero_state(dtype=..., batch_size=...)\n    initial_state = initial_state.clone(cell_state=encoder_state)\n    ```\n\n    Args:\n      **kwargs: Any properties of the state object to replace in the returned\n        `AttentionWrapperState`.\n\n    Returns:\n      A new `AttentionWrapperState` whose properties are the same as\n      this one, except any overridden properties as provided in `kwargs`.\n    \"\"\"\n    return super(TwoLayersAttentionWrapperState, self)._replace(**kwargs)\n\nclass TwoLayersAttentionWrapper(rnn_cell_impl.RNNCell):\n  \"\"\"Wraps another `RNNCell` with attention.\n  \"\"\"\n\n  def __init__(self,\n               cell,\n               attention_mechanism,\n               attention_mechanism2,\n               attention_layer_size=None,\n               alignment_history=False,\n               cell_input_fn=None,\n               output_attention=True,\n               initial_cell_state=None,\n               no_context=False,\n               output_alignment=False,\n               probability_fn=None,\n               score_as_alignment=False,\n               mix_pre_alignment=False,\n               name=None):\n    \"\"\"Construct the `AttentionWrapper`.\n\n    Args:\n      cell: An instance of `RNNCell`.\n      attention_mechanism: An instance of `AttentionMechanism`.\n      attention_layer_size: Python integer, the depth of the attention (output)\n        layer. If None (default), use the context as attention at each time\n        step. Otherwise, feed the context and cell output into the attention\n        layer to generate attention at each time step.\n      alignment_history: Python boolean, whether to store alignment history\n        from all time steps in the final output state (currently stored as a\n        time major `TensorArray` on which you must call `stack()`).\n      cell_input_fn: (optional) A `callable`.  The default is:\n        `lambda inputs, attention: array_ops.concat([inputs, attention], -1)`.\n      output_attention: Python bool.  If `True` (default), the output at each\n        time step is the attention value.  This is the behavior of Luong-style\n        attention mechanisms.  If `False`, the output at each time step is\n        the output of `cell`.  This is the beahvior of Bhadanau-style\n        attention mechanisms.  In both cases, the `attention` tensor is\n        propagated to the next time step via the state and is used there.\n        This flag only controls whether the attention mechanism is propagated\n        up to the next cell in an RNN stack or to the top RNN output.\n      initial_cell_state: The initial state value to use for the cell when\n        the user calls `zero_state()`.  Note that if this value is provided\n        now, and the user uses a `batch_size` argument of `zero_state` which\n        does not match the batch size of `initial_cell_state`, proper\n        behavior is not guaranteed.\n      no_context: True when use pointer network, when you only want alignments\n      name: Name to use when creating ops.\n    \"\"\"\n    super(TwoLayersAttentionWrapper, self).__init__(name=name)\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\n          \"cell must be an RNNCell, saw type: %s\" % type(cell).__name__)\n    if not isinstance(attention_mechanism, AttentionMechanism):\n      raise TypeError(\n          \"attention_mechanism must be a AttentionMechanism, saw type: %s\"\n          % type(attention_mechanism).__name__)\n    if cell_input_fn is None:\n      cell_input_fn = (\n          lambda inputs, attention: array_ops.concat([inputs, attention], -1))\n    else:\n      if not callable(cell_input_fn):\n        raise TypeError(\n            \"cell_input_fn must be callable, saw type: %s\"\n            % type(cell_input_fn).__name__)\n\n    if attention_layer_size is not None:\n      self._attention_layer = layers_core.Dense(\n          attention_layer_size, name=\"attention_layer\", _scope=\"attention_layer\", use_bias=False)\n      self._attention_layer_size = attention_layer_size\n    else:\n      self._attention_layer = None\n      self._attention_layer_size = attention_mechanism.values.get_shape()[\n          -1].value\n\n    self._cell = cell\n    self._attention_mechanism = attention_mechanism\n    self._attention_mechanism2 = attention_mechanism2\n    self._cell_input_fn = cell_input_fn\n    self._output_attention = output_attention\n    self._alignment_history = alignment_history\n    self._no_context = no_context\n    self._output_alignment = output_alignment\n    self._probability_fn = nn_ops.softmax if probability_fn is None else probability_fn\n    self._score_as_alignment = score_as_alignment\n    self._mix_pre_alignment = mix_pre_alignment\n    with ops.name_scope(name, \"AttentionWrapperInit\"):\n      if initial_cell_state is None:\n        self._initial_cell_state = None\n      else:\n        final_state_tensor = nest.flatten(initial_cell_state)[-1]\n        state_batch_size = (\n            final_state_tensor.shape[0].value\n            or array_ops.shape(final_state_tensor)[0])\n        error_message = (\n            \"When constructing AttentionWrapper %s: \" % self._base_name +\n            \"Non-matching batch sizes between the memory \"\n            \"(encoder output) and initial_cell_state.  Are you using \"\n            \"the BeamSearchDecoder?  You may need to tile your initial state \"\n            \"via the tf.contrib.seq2seq.tile_batch function with argument \"\n            \"multiple=beam_width.\")\n        with ops.control_dependencies(\n            [check_ops.assert_equal(state_batch_size,\n                                    self._attention_mechanism.batch_size,\n                                    message=error_message)]):\n          self._initial_cell_state = nest.map_structure(\n              lambda s: array_ops.identity(s, name=\"check_initial_cell_state\"),\n              initial_cell_state)\n\n  @property\n  def output_size(self):\n    if self._output_alignment:\n      return self._attention_mechanism.alignments_size\n    if self._output_attention:\n      return self._attention_layer_size\n    else:\n      return self._cell.output_size\n\n  @property\n  def state_size(self):\n    gen_probability = 1 if self._mix_pre_alignment else ()\n    return TwoLayersAttentionWrapperState(\n        cell_state=self._cell.state_size,\n        time=tensor_shape.TensorShape([]),\n        attention=self._attention_layer_size,\n        alignments=self._attention_mechanism2.alignments_size,\n        first_layer_alignments=self._attention_mechanism.alignments_size,\n        alignment_history=(),\n        gen_probability=gen_probability)  # alignment_history is sometimes a TensorArray\n\n  def zero_state(self, batch_size, dtype):\n    with ops.name_scope(type(self).__name__ + \"ZeroState\", values=[batch_size]):\n      if self._initial_cell_state is not None:\n        cell_state = self._initial_cell_state\n      else:\n        cell_state = self._cell.zero_state(batch_size, dtype)\n      error_message = (\n          \"When calling zero_state of AttentionWrapper %s: \" % self._base_name +\n          \"Non-matching batch sizes between the memory \"\n          \"(encoder output) and the requested batch size.  Are you using \"\n          \"the BeamSearchDecoder?  If so, make sure your encoder output has \"\n          \"been tiled to beam_width via tf.contrib.seq2seq.tile_batch, and \"\n          \"the batch_size= argument passed to zero_state is \"\n          \"batch_size * beam_width.\")\n      with ops.control_dependencies(\n          [check_ops.assert_equal(batch_size,\n                                  self._attention_mechanism.batch_size,\n                                  message=error_message)]):\n        cell_state = nest.map_structure(\n            lambda s: array_ops.identity(s, name=\"checked_cell_state\"),\n            cell_state)\n      if self._alignment_history:\n        alignment_history = tensor_array_ops.TensorArray(\n            dtype=dtype, size=0, dynamic_size=True)\n      else:\n        alignment_history = ()\n      if self._mix_pre_alignment:\n        gen_probability = array_ops.ones([batch_size, 1], dtype=dtypes.float32)\n      else:\n        gen_probability = ()\n\n      return TwoLayersAttentionWrapperState(\n          cell_state=cell_state,\n          time=array_ops.zeros([], dtype=dtypes.int32),\n          attention=_zero_state_tensors(self._attention_layer_size, batch_size,\n                                        dtype),\n          alignments=self._attention_mechanism2.initial_alignments(\n              batch_size, dtype),\n          first_layer_alignments=self._attention_mechanism.initial_alignments(\n              batch_size, dtype),\n          alignment_history=alignment_history,\n          gen_probability=gen_probability)\n\n  def call(self, inputs, state):\n    \"\"\"Perform a step of attention-wrapped RNN.\n\n    - Step 1: Mix the `inputs` and previous step's `attention` output via\n      `cell_input_fn`.\n    - Step 2: Call the wrapped `cell` with this input and its previous state.\n    - Step 3: Score the cell's output with `attention_mechanism`.\n    - Step 4: Calculate the alignments by passing the score through the\n      `normalizer`.\n    - Step 5: Calculate the context vector as the inner product between the\n      alignments and the attention_mechanism's values (memory).\n    - Step 6: Calculate the attention output by concatenating the cell output\n      and context through the attention layer (a linear layer with\n      `attention_layer_size` outputs).\n\n    Args:\n      inputs: (Possibly nested tuple of) Tensor, the input at this time step.\n      state: An instance of `AttentionWrapperState` containing\n        tensors from the previous time step.\n\n    Returns:\n      A tuple `(attention_or_cell_output, next_state)`, where:\n\n      - `attention_or_cell_output` depending on `output_attention`.\n      - `next_state` is an instance of `AttentionWrapperState`\n         containing the state calculated at this time step.\n    \"\"\"\n    # Step 1: Calculate the true inputs to the cell based on the\n    # previous attention value.\n    cell_inputs = self._cell_input_fn(inputs, state.attention)\n    cell_state = state.cell_state\n    cell_output, next_cell_state = self._cell(cell_inputs, cell_state)\n\n    cell_batch_size = (\n        cell_output.shape[0].value or array_ops.shape(cell_output)[0])\n    error_message = (\n        \"When applying AttentionWrapper %s: \" % self.name +\n        \"Non-matching batch sizes between the memory \"\n        \"(encoder output) and the query (decoder output).  Are you using \"\n        \"the BeamSearchDecoder?  You may need to tile your memory input via \"\n        \"the tf.contrib.seq2seq.tile_batch function with argument \"\n        \"multiple=beam_width.\")\n    # TODO chg hack just remove for outgraph beam search, since attention states will change\n    #with ops.control_dependencies(\n    #    [check_ops.assert_equal(cell_batch_size,\n    #                            self._attention_mechanism.batch_size,\n    #                            message=error_message)]):\n    cell_output = array_ops.identity(\n          cell_output, name=\"checked_cell_output\")\n\n\n    #alignments = self._attention_mechanism(\n    #    cell_output, previous_alignments=state.alignments)\n\n    scores = self._attention_mechanism(\n        cell_output, previous_alignments=state.alignments)\n    \n    alignments = self._probability_fn(scores)\n\n    first_layer_alignments = alignments\n\n    if self._mix_pre_alignment:\n      gen_probability_logits = layers.linear(array_ops.concat(\n          cell_state, 1), 1, scope='gen_probability')\n      # gen_probability_logits = layers.linear(array_ops.concat(\n      #      [cell_state[0], cell_state[1], cell_output], 1), 1, scope='gen_probability')\n      gen_probability = math_ops.sigmoid(gen_probability_logits)\n      alignments = alignments * gen_probability + state.first_layer_alignments * (1 - gen_probability)\n     \n    if self._no_context:\n      attention = cell_output\n    else:\n      # Reshape from [batch_size, memory_time] to [batch_size, 1, memory_time]\n      \n      #expanded_alignments = array_ops.expand_dims(alignments, 1)\n      expanded_alignments = array_ops.expand_dims(alignments, 2)\n      \n      # Context is the inner product of alignments and values along the\n      # memory time dimension.\n      # alignments shape is\n      #   [batch_size, 1, memory_time]\n      # attention_mechanism.values shape is\n      #   [batch_size, memory_time, attention_mechanism.num_units]\n      # the batched matmul is over memory_time, so the output shape is\n      #   [batch_size, 1, attention_mechanism.num_units].\n      # we then squeeze out the singleton dim.\n      attention_mechanism_values = self._attention_mechanism.values\n      \n      #context = math_ops.matmul(expanded_alignments, attention_mechanism_values)\n      #context = array_ops.squeeze(context, [1])\n\n      context = math_ops.reduce_sum(expanded_alignments * attention_mechanism_values, [1])\n\n      if self._attention_layer is not None:\n        attention = self._attention_layer(\n            array_ops.concat([cell_output, context], 1))\n      else:\n        attention = context\n\n    #----attention layer2\n    scores = self._attention_mechanism2(\n      attention, previous_alignments=state.alignments)\n\n    alignments = self._probability_fn(scores)\n\n    if self._mix_pre_alignment:\n      gen_probability_logits = layers.linear(array_ops.concat(\n           cell_state, 1), 1, scope='gen_probability')\n      # gen_probability_logits = layers.linear(array_ops.concat(\n      #      [cell_state[0], cell_state[1], attention], 1), 1, scope='gen_probability2')\n      gen_probability = math_ops.sigmoid(gen_probability_logits)\n      alignments = alignments * gen_probability + state.alignments * (1 - gen_probability)\n     \n    if self._no_context:\n      attention = cell_output\n    else:\n      # Reshape from [batch_size, memory_time] to [batch_size, 1, memory_time]\n      \n      #expanded_alignments = array_ops.expand_dims(alignments, 1)\n      expanded_alignments = array_ops.expand_dims(alignments, 2)\n      \n      # Context is the inner product of alignments and values along the\n      # memory time dimension.\n      # alignments shape is\n      #   [batch_size, 1, memory_time]\n      # attention_mechanism.values shape is\n      #   [batch_size, memory_time, attention_mechanism.num_units]\n      # the batched matmul is over memory_time, so the output shape is\n      #   [batch_size, 1, attention_mechanism.num_units].\n      # we then squeeze out the singleton dim.\n      attention_mechanism_values = self._attention_mechanism.values\n      \n      #context = math_ops.matmul(expanded_alignments, attention_mechanism_values)\n      #context = array_ops.squeeze(context, [1])\n\n      context = math_ops.reduce_sum(expanded_alignments * attention_mechanism_values, [1])\n\n      if self._attention_layer is not None:\n        attention = self._attention_layer(\n            array_ops.concat([cell_output, context], 1))\n      else:\n        attention = context\n\n    if self._alignment_history:\n      alignment_history = state.alignment_history.write(\n          state.time, alignments)\n    else:\n      alignment_history = ()\n\n    if self._score_as_alignment:\n      alignments = scores\n\n    if not self._mix_pre_alignment:\n      # gen_probability_logits = layers.linear(array_ops.concat(\n      #      [context, cell_output, cell_inputs], 1), 1, scope='gen_probability')\n      # gen_probability = math_ops.sigmoid(gen_probability_logits)\n      gen_probability = array_ops.ones([batch_size, 1], dtype=dtypes.float32)\n\n    #TODO maybe outupt both alignments and scores ?\n    next_state = TwoLayersAttentionWrapperState(\n        time=state.time + 1,\n        cell_state=next_cell_state,\n        attention=attention,\n        alignments=alignments,\n        first_layer_alignments=first_layer_alignments,\n        alignment_history=alignment_history,\n        gen_probability=gen_probability)\n\n    #TODO why use output_alignment will be slower for dyanmic_rnn ?\n    if self._output_alignment:\n      return alignments, next_state\n\n    if self._output_attention:\n      return attention, next_state\n    else:\n      return cell_output, next_state\n\n\nclass CoverageAttentionWrapperState(\n    collections.namedtuple(\"CoverageAttentionWrapperState\",\n                           (\"cell_state\", \"attention\", \"time\", \"alignments\",\n                            \"alignment_history\",  \"coverage\",))):\n  \"\"\"`namedtuple` storing the state of a `AttentionWrapper`.\n\n  Contains:\n\n    - `cell_state`: The state of the wrapped `RNNCell` at the previous time\n      step.\n    - `attention`: The attention emitted at the previous time step.\n    - `time`: int32 scalar containing the current time step.\n    - `alignments`: The alignment emitted at the previous time step.\n    - `alignment_history`: (if enabled) a `TensorArray` containing alignment\n       matrices from all time steps.  Call `stack()` to convert to a `Tensor`.\n  \"\"\"\n\n  def clone(self, **kwargs):\n    \"\"\"Clone this object, overriding components provided by kwargs.\n\n    Example:\n\n    ```python\n    initial_state = attention_wrapper.zero_state(dtype=..., batch_size=...)\n    initial_state = initial_state.clone(cell_state=encoder_state)\n    ```\n\n    Args:\n      **kwargs: Any properties of the state object to replace in the returned\n        `AttentionWrapperState`.\n\n    Returns:\n      A new `AttentionWrapperState` whose properties are the same as\n      this one, except any overridden properties as provided in `kwargs`.\n    \"\"\"\n    return super(CoverageAttentionWrapperState, self)._replace(**kwargs)\n\n\n#TODO new tf version will be rnn_cell_impl.RNNCell, now temply modify for tf verison 1.1.0-rc2\n#from tensorflow.contrib.rnn import core_rnn_cell\n#class AttentionWrapper(core_rnn_cell.RNNCell):\nclass CoverageAttentionWrapper(rnn_cell_impl.RNNCell):\n  \"\"\"Wraps another `RNNCell` with attention.\n  \"\"\"\n\n  def __init__(self,\n               cell,\n               attention_mechanism,\n               attention_layer_size=None,\n               alignment_history=False,\n               cell_input_fn=None,\n               output_attention=True,\n               initial_cell_state=None,\n               no_context=False,\n               output_alignment=False,\n               probability_fn=None,\n               score_as_alignment=False,\n               name=None):\n    \"\"\"Construct the `AttentionWrapper`.\n\n    Args:\n      cell: An instance of `RNNCell`.\n      attention_mechanism: An instance of `AttentionMechanism`.\n      attention_layer_size: Python integer, the depth of the attention (output)\n        layer. If None (default), use the context as attention at each time\n        step. Otherwise, feed the context and cell output into the attention\n        layer to generate attention at each time step.\n      alignment_history: Python boolean, whether to store alignment history\n        from all time steps in the final output state (currently stored as a\n        time major `TensorArray` on which you must call `stack()`).\n      cell_input_fn: (optional) A `callable`.  The default is:\n        `lambda inputs, attention: array_ops.concat([inputs, attention], -1)`.\n      output_attention: Python bool.  If `True` (default), the output at each\n        time step is the attention value.  This is the behavior of Luong-style\n        attention mechanisms.  If `False`, the output at each time step is\n        the output of `cell`.  This is the beahvior of Bhadanau-style\n        attention mechanisms.  In both cases, the `attention` tensor is\n        propagated to the next time step via the state and is used there.\n        This flag only controls whether the attention mechanism is propagated\n        up to the next cell in an RNN stack or to the top RNN output.\n      initial_cell_state: The initial state value to use for the cell when\n        the user calls `zero_state()`.  Note that if this value is provided\n        now, and the user uses a `batch_size` argument of `zero_state` which\n        does not match the batch size of `initial_cell_state`, proper\n        behavior is not guaranteed.\n      no_context: True when use pointer network, when you only want alignments\n      name: Name to use when creating ops.\n    \"\"\"\n    super(CoverageAttentionWrapper, self).__init__(name=name)\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\n          \"cell must be an RNNCell, saw type: %s\" % type(cell).__name__)\n    if not isinstance(attention_mechanism, AttentionMechanism):\n      raise TypeError(\n          \"attention_mechanism must be a AttentionMechanism, saw type: %s\"\n          % type(attention_mechanism).__name__)\n    if cell_input_fn is None:\n      cell_input_fn = (\n          lambda inputs, attention: array_ops.concat([inputs, attention], -1))\n    else:\n      if not callable(cell_input_fn):\n        raise TypeError(\n            \"cell_input_fn must be callable, saw type: %s\"\n            % type(cell_input_fn).__name__)\n\n    if attention_layer_size is not None:\n      self._attention_layer = layers_core.Dense(\n          attention_layer_size, name=\"attention_layer\", _scope=\"attention_layer\", use_bias=False)\n      self._attention_layer_size = attention_layer_size\n    else:\n      self._attention_layer = None\n      self._attention_layer_size = attention_mechanism.values.get_shape()[\n          -1].value\n\n    self._cell = cell\n    self._attention_mechanism = attention_mechanism\n    self._cell_input_fn = cell_input_fn\n    self._output_attention = output_attention\n    self._alignment_history = alignment_history\n    self._no_context = no_context\n    self._output_alignment = output_alignment\n    self._probability_fn = nn_ops.softmax if probability_fn is None else probability_fn\n    self._score_as_alignment = score_as_alignment\n    with ops.name_scope(name, \"AttentionWrapperInit\"):\n      if initial_cell_state is None:\n        self._initial_cell_state = None\n      else:\n        final_state_tensor = nest.flatten(initial_cell_state)[-1]\n        state_batch_size = (\n            final_state_tensor.shape[0].value\n            or array_ops.shape(final_state_tensor)[0])\n        error_message = (\n            \"When constructing AttentionWrapper %s: \" % self._base_name +\n            \"Non-matching batch sizes between the memory \"\n            \"(encoder output) and initial_cell_state.  Are you using \"\n            \"the BeamSearchDecoder?  You may need to tile your initial state \"\n            \"via the tf.contrib.seq2seq.tile_batch function with argument \"\n            \"multiple=beam_width.\")\n        with ops.control_dependencies(\n            [check_ops.assert_equal(state_batch_size,\n                                    self._attention_mechanism.batch_size,\n                                    message=error_message)]):\n          self._initial_cell_state = nest.map_structure(\n              lambda s: array_ops.identity(s, name=\"check_initial_cell_state\"),\n              initial_cell_state)\n\n  @property\n  def output_size(self):\n    if self._output_alignment:\n      return self._attention_mechanism.alignments_size\n    if self._output_attention:\n      return self._attention_layer_size\n    else:\n      return self._cell.output_size\n\n  @property\n  def state_size(self):\n    return CoverageAttentionWrapperState(\n        cell_state=self._cell.state_size,\n        time=tensor_shape.TensorShape([]),\n        attention=self._attention_layer_size,\n        alignments=self._attention_mechanism.alignments_size,\n        alignment_history=(),\n        coverage=self._attention_mechanism.alignments_size)  # alignment_history is sometimes a TensorArray\n\n  def zero_state(self, batch_size, dtype):\n    with ops.name_scope(type(self).__name__ + \"ZeroState\", values=[batch_size]):\n      if self._initial_cell_state is not None:\n        cell_state = self._initial_cell_state\n      else:\n        cell_state = self._cell.zero_state(batch_size, dtype)\n      error_message = (\n          \"When calling zero_state of AttentionWrapper %s: \" % self._base_name +\n          \"Non-matching batch sizes between the memory \"\n          \"(encoder output) and the requested batch size.  Are you using \"\n          \"the BeamSearchDecoder?  If so, make sure your encoder output has \"\n          \"been tiled to beam_width via tf.contrib.seq2seq.tile_batch, and \"\n          \"the batch_size= argument passed to zero_state is \"\n          \"batch_size * beam_width.\")\n      with ops.control_dependencies(\n          [check_ops.assert_equal(batch_size,\n                                  self._attention_mechanism.batch_size,\n                                  message=error_message)]):\n        cell_state = nest.map_structure(\n            lambda s: array_ops.identity(s, name=\"checked_cell_state\"),\n            cell_state)\n      if self._alignment_history:\n        alignment_history = tensor_array_ops.TensorArray(\n            dtype=dtype, size=0, dynamic_size=True)\n      else:\n        alignment_history = ()\n      return CoverageAttentionWrapperState(\n          cell_state=cell_state,\n          time=array_ops.zeros([], dtype=dtypes.int32),\n          attention=_zero_state_tensors(self._attention_layer_size, batch_size,\n                                        dtype),\n          alignments=self._attention_mechanism.initial_alignments(\n              batch_size, dtype),\n          alignment_history=alignment_history,\n          coverage=self._attention_mechanism.initial_alignments(\n              batch_size, dtype))\n\n  def call(self, inputs, state):\n    \"\"\"Perform a step of attention-wrapped RNN.\n\n    - Step 1: Mix the `inputs` and previous step's `attention` output via\n      `cell_input_fn`.\n    - Step 2: Call the wrapped `cell` with this input and its previous state.\n    - Step 3: Score the cell's output with `attention_mechanism`.\n    - Step 4: Calculate the alignments by passing the score through the\n      `normalizer`.\n    - Step 5: Calculate the context vector as the inner product between the\n      alignments and the attention_mechanism's values (memory).\n    - Step 6: Calculate the attention output by concatenating the cell output\n      and context through the attention layer (a linear layer with\n      `attention_layer_size` outputs).\n\n    Args:\n      inputs: (Possibly nested tuple of) Tensor, the input at this time step.\n      state: An instance of `AttentionWrapperState` containing\n        tensors from the previous time step.\n\n    Returns:\n      A tuple `(attention_or_cell_output, next_state)`, where:\n\n      - `attention_or_cell_output` depending on `output_attention`.\n      - `next_state` is an instance of `AttentionWrapperState`\n         containing the state calculated at this time step.\n    \"\"\"\n    # Step 1: Calculate the true inputs to the cell based on the\n    # previous attention value.\n    cell_inputs = self._cell_input_fn(inputs, state.attention)\n    cell_state = state.cell_state\n    cell_output, next_cell_state = self._cell(cell_inputs, cell_state)\n\n    cell_batch_size = (\n        cell_output.shape[0].value or array_ops.shape(cell_output)[0])\n    error_message = (\n        \"When applying AttentionWrapper %s: \" % self.name +\n        \"Non-matching batch sizes between the memory \"\n        \"(encoder output) and the query (decoder output).  Are you using \"\n        \"the BeamSearchDecoder?  You may need to tile your memory input via \"\n        \"the tf.contrib.seq2seq.tile_batch function with argument \"\n        \"multiple=beam_width.\")\n    # TODO chg hack just remove for outgraph beam search, since attention states will change\n    #with ops.control_dependencies(\n    #    [check_ops.assert_equal(cell_batch_size,\n    #                            self._attention_mechanism.batch_size,\n    #                            message=error_message)]):\n    cell_output = array_ops.identity(\n          cell_output, name=\"checked_cell_output\")\n\n    #alignments = self._attention_mechanism(\n    #    cell_output, previous_alignments=state.alignments)\n    try:\n      scores = self._attention_mechanism(\n          cell_output, state.coverage)\n    except Exception: \n      scores = self._attention_mechanism(\n          cell_output, state.coverage, state.alignments)\n    \n    alignments = self._probability_fn(scores)\n\n    coverage = state.coverage + alignments\n     \n    if self._no_context:\n      attention = cell_output\n    else:\n      # Reshape from [batch_size, memory_time] to [batch_size, 1, memory_time]\n      \n      #expanded_alignments = array_ops.expand_dims(alignments, 1)\n      expanded_alignments = array_ops.expand_dims(alignments, 2)\n      \n      # Context is the inner product of alignments and values along the\n      # memory time dimension.\n      # alignments shape is\n      #   [batch_size, 1, memory_time]\n      # attention_mechanism.values shape is\n      #   [batch_size, memory_time, attention_mechanism.num_units]\n      # the batched matmul is over memory_time, so the output shape is\n      #   [batch_size, 1, attention_mechanism.num_units].\n      # we then squeeze out the singleton dim.\n      attention_mechanism_values = self._attention_mechanism.values\n      \n      #context = math_ops.matmul(expanded_alignments, attention_mechanism_values)\n      #context = array_ops.squeeze(context, [1])\n\n      context = math_ops.reduce_sum(expanded_alignments * attention_mechanism_values, [1])\n\n      if self._attention_layer is not None:\n        attention = self._attention_layer(\n            array_ops.concat([cell_output, context], 1))\n      else:\n        attention = context\n\n    if self._alignment_history:\n      alignment_history = state.alignment_history.write(\n          state.time, alignments)\n    else:\n      alignment_history = ()\n\n    if self._score_as_alignment:\n      alignments = scores\n\n    #TODO maybe outupt both alignments and scores ?\n    next_state = CoverageAttentionWrapperState(\n        time=state.time + 1,\n        cell_state=next_cell_state,\n        attention=attention,\n        alignments=alignments,\n        alignment_history=alignment_history,\n        coverage=coverage)\n\n    #TODO why use output_alignment will be slower for dyanmic_rnn ?\n    if self._output_alignment:\n      return alignments, next_state\n\n    if self._output_attention:\n      return attention, next_state\n    else:\n      return cell_output, next_state"
  },
  {
    "path": "utils/melt/seq2seq/basic_decoder.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"A class of Decoders that may sample to generate the next input.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\n\nfrom tensorflow.contrib.seq2seq.python.ops import decoder\n#from tensorflow.contrib.seq2seq.python.ops import helper as helper_py\nfrom melt.seq2seq import helper as helper_py\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.layers import base as layers_base\nfrom tensorflow.python.ops import rnn_cell_impl\nfrom tensorflow.python.util import nest\n\n\nimport tensorflow as tf \n\n__all__ = [\n    \"BasicDecoderOutput\",\n    \"BasicDecoder\",\n    \"BasicTrainingDecoder\",\n]\n\n\nclass BasicDecoderOutput(\n    collections.namedtuple(\"BasicDecoderOutput\", (\"rnn_output\", \"sample_id\"))):\n  pass\n\n\nclass BasicDecoder(decoder.Decoder):\n  \"\"\"Basic sampling decoder.\"\"\"\n\n  def __init__(self, cell, helper, initial_state, vocab_size=None, output_fn=None):\n    \"\"\"Initialize BasicDecoder.\n\n    Args:\n      cell: An `RNNCell` instance.\n      helper: A `Helper` instance.\n      initial_state: A (possibly nested tuple of...) tensors and TensorArrays.\n        The initial state of the RNNCell.\n      output_fn: (Optional) An instance of `tf.layers.Layer`, i.e.,\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output prior\n        to storing the result or sampling.\n\n    Raises:\n      TypeError: if `cell`, `helper` or `output_fn` have an incorrect type.\n    \"\"\"\n    if not isinstance(cell, rnn_cell_impl.RNNCell):\n      raise TypeError(\"cell must be an RNNCell, received: %s\" % type(cell))\n    #if not isinstance(helper, helper_py.Helper):\n    #  raise TypeError(\"helper must be a Helper, received: %s\" % type(helper))\n\n    self._cell = cell\n    self._helper = helper\n    self._initial_state = initial_state\n\n    self._output_fn = None\n    if vocab_size is not None:\n      if output_fn is not None:\n        self._output_fn = output_fn\n      else:\n        self._output_fn = lambda cell_output: tf.contrib.layers.fully_connected(\n          inputs=cell_output, \n          num_outputs=vocab_size, \n          activation_fn=None)\n\n    self._vocab_size = vocab_size\n\n    self._output_size = self._vocab_size if self._vocab_size is not None else self._cell.output_size\n\n  @property\n  def batch_size(self):\n    return self._helper.batch_size\n\n  @property\n  def output_size(self):\n    return BasicDecoderOutput(\n        rnn_output=self._output_size,\n        sample_id=tf.TensorShape([]))\n\n  @property\n  def output_dtype(self):\n    return BasicDecoderOutput(\n        rnn_output=tf.float32,\n        sample_id=tf.int32)\n\n  def initialize(self, name=None):\n    \"\"\"Initialize the decoder.\n\n    Args:\n      name: Name scope for any created operations.\n\n    Returns:\n      `(finished, first_inputs, initial_state)`.\n    \"\"\"\n    return self._helper.initialize() + (self._initial_state,)\n\n  def step(self, time, inputs, state, name=None):\n    \"\"\"Perform a decoding step.\n\n    Args:\n      time: scalar `int32` tensor.\n      inputs: A (structure of) input tensors.\n      state: A (structure of) state tensors and TensorArrays.\n      name: Name scope for any created operations.\n\n    Returns:\n      `(outputs, next_state, next_inputs, finished)`.\n    \"\"\"\n    with ops.name_scope(name, \"BasicDecoderStep\", (time, inputs, state)):\n      cell_outputs, cell_state = self._cell(inputs, state)\n      if self._output_fn is not None:\n        try:\n          cell_outputs = self._output_fn(cell_outputs)\n        except Exception:\n          try:\n            cell_outputs = self._output_fn(cell_outputs, cell_state)\n          except Exception:\n            cell_outputs = self._output_fn(time, cell_outputs, cell_state)\n      sample_ids = self._helper.sample(\n          time=time, outputs=cell_outputs, state=cell_state)\n      (finished, next_inputs, next_state) = self._helper.next_inputs(\n          time=time,\n          outputs=cell_outputs,\n          state=cell_state,\n          sample_ids=sample_ids)\n    outputs = BasicDecoderOutput(cell_outputs, sample_ids)\n    return (outputs, next_state, next_inputs, finished)\n\n\nclass BasicTrainingDecoder(decoder.Decoder):\n  \"\"\"Basic sampling decoder.\"\"\"\n\n  def __init__(self, cell, helper, initial_state, vocab_size=None, output_fn=None):\n    \"\"\"Initialize BasicDecoder.\n\n    Args:\n      cell: An `RNNCell` instance.\n      helper: A `Helper` instance.\n      initial_state: A (possibly nested tuple of...) tensors and TensorArrays.\n        The initial state of the RNNCell.\n      output_fn: (Optional) An instance of `tf.layers.Layer`, i.e.,\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output prior\n        to storing the result or sampling.\n\n    Raises:\n      TypeError: if `cell`, `helper` or `output_fn` have an incorrect type.\n    \"\"\"\n    if not isinstance(cell, rnn_cell_impl.RNNCell):\n      raise TypeError(\"cell must be an RNNCell, received: %s\" % type(cell))\n    if not isinstance(helper, helper_py.Helper):\n      raise TypeError(\"helper must be a Helper, received: %s\" % type(helper))\n\n    self._cell = cell\n    self._helper = helper\n    self._initial_state = initial_state\n\n    self._output_fn = None\n    if vocab_size is not None:\n      if output_fn is not None:\n        self._output_fn = output_fn\n      else:\n        self._output_fn = lambda cell_output: tf.contrib.layers.linear(\n          inputs=cell_output, \n          num_outputs=vocab_size)\n\n    self._vocab_size = vocab_size\n\n    self._output_size = self._vocab_size if self._vocab_size is not None else self._cell.output_size\n\n  @property\n  def batch_size(self):\n    return self._helper.batch_size\n\n  @property\n  def output_size(self):\n    return self._output_size\n\n  @property\n  def output_dtype(self):\n    return tf.float32\n\n  def initialize(self, name=None):\n    \"\"\"Initialize the decoder.\n\n    Args:\n      name: Name scope for any created operations.\n\n    Returns:\n      `(finished, first_inputs, initial_state)`.\n    \"\"\"\n    return self._helper.initialize() + (self._initial_state,)\n\n  def step(self, time, inputs, state, name=None):\n    \"\"\"Perform a decoding step.\n\n    Args:\n      time: scalar `int32` tensor.\n      inputs: A (structure of) input tensors.\n      state: A (structure of) state tensors and TensorArrays.\n      name: Name scope for any created operations.\n\n    Returns:\n      `(outputs, next_state, next_inputs, finished)`.\n    \"\"\"\n    with ops.name_scope(name, \"BasicDecoderStep\", (time, inputs, state)):\n      cell_outputs, cell_state = self._cell(inputs, state)\n      if self._output_fn is not None:\n        try:\n          cell_outputs = self._output_fn(cell_outputs)\n        except Exception:\n          try:\n            cell_outputs = self._output_fn(cell_outputs, cell_state)\n          except Exception:\n            cell_outputs = self._output_fn(time, cell_outputs, cell_state)\n      (finished, next_inputs, next_state) = self._helper.next_inputs(\n          time=time,\n          outputs=cell_outputs,\n          state=cell_state)\n    return (cell_outputs, next_state, next_inputs, finished)\n"
  },
  {
    "path": "utils/melt/seq2seq/beam_decoder.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   beam_decoder.py\n#        \\author   chenghuige  \n#          \\date   2017-01-16 14:15:32.474973\n#   \\Description  \n# ==============================================================================\n\"\"\"\nNOTICE this is ingraph beam decode as opposed to melt.seq2seq.beam_search which is ougraph beam search\nbut here also not dynamic, just use loop, do all max_steps until stop, for beam search \nactually you can not early stop also since more steps results might be better. \nif length normalizer == 0. then start from same state longer path could not be better.\nso you might look at partial result if it not better then all the done beam then mark it as done TODO\nbut if length normalizer > 0 then.. you can not early stop by theory..\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.util import nest\n\nimport collections\nimport melt\n\ndef rnn_decoder(decoder_inputs, initial_state, cell, loop_function=None,\n                scope=None):\n  \"\"\"RNN decoder for the sequence-to-sequence model.\n     copy from tf contrib but modify a bit add state change\n\n  Args:\n    decoder_inputs: A list of 2D Tensors [batch_size x input_size].\n    initial_state: 2D Tensor with shape [batch_size x cell.state_size].\n    cell: rnn_cell.RNNCell defining the cell function and size.\n    loop_function: If not None, this function will be applied to the i-th output\n      in order to generate the i+1-st input, and decoder_inputs will be ignored,\n      except for the first element (\"GO\" symbol). This can be used for decoding,\n      but also for training to emulate http://arxiv.org/abs/1506.03099.\n      Signature -- loop_function(prev, i) = next\n        * prev is a 2D Tensor of shape [batch_size x output_size],\n        * i is an integer, the step number (when advanced control is needed),\n        * next is a 2D Tensor of shape [batch_size x input_size].\n    scope: VariableScope for the created subgraph; defaults to \"rnn_decoder\".\n\n  Returns:\n    A tuple of the form (outputs, state), where:\n      outputs: A list of the same length as decoder_inputs of 2D Tensors with\n        shape [batch_size x output_size] containing generated outputs.\n      state: The state of each cell at the final time-step.\n        It is a 2D Tensor of shape [batch_size x cell.state_size].\n        (Note that in some cases, like basic RNN cell or GRU cell, outputs and\n         states can be the same. They are different for LSTM cells though.)\n  \"\"\"\n  with variable_scope.variable_scope(scope or \"rnn_decoder\"):\n    state = initial_state\n    outputs = []\n    prev = None\n    for i, inp in enumerate(decoder_inputs):\n      if loop_function is not None and prev is not None:\n        with variable_scope.variable_scope(\"loop_function\", reuse=True):\n          inp, state = loop_function(i, prev, state)\n      if i > 0:\n        variable_scope.get_variable_scope().reuse_variables()\n      output, state = cell(inp, state)\n      outputs.append(output)\n      if loop_function is not None:\n        prev = output\n  return outputs, state\n\n\nclass BeamDecoderOutputs(\n    collections.namedtuple(\"BeamDecoderOutputs\",\n                           (\"paths\", \"scores\", \"decoder\"))):\n  def clone(self, **kwargs):\n    return super(BeamDecoderOutputs, self)._replace(**kwargs)\n\nclass BeamDecoderState(\n    collections.namedtuple(\"BeamDecoderState\",\n                           (\"cell_state\", \"alignment_history\"))):\n  def clone(self, **kwargs):\n    return super(BeamDecoderState, self)._replace(**kwargs)\n\ndef beam_decode(input, max_words, initial_state, cell, loop_function, scope=None,\n                beam_size=7, done_token=0, \n                output_fn=None,  length_normalization_factor=0.,\n                prob_as_score=True, topn=1, need_softmax=True,\n                logprobs_history=False, alignment_history=False, \n                fast_greedy=False):\n    \"\"\"\n    Beam search decoder\n    copy from https://gist.github.com/igormq/000add00702f09029ea4c30eba976e0a\n    make small modifications, add more comments and add topn support, and \n    length_normalization_factor\n\n    NOTICE!: not dynamic, for loop based here not tf.while_loop, so ingraph but currently static build graph  \n    TODO: consider beam search decoder from https://github.com/google/seq2seq, that implementation might be dynamic!\n    but that implementaion only allow batch size 1, so use batch[beam_size] ?\n\n    TODO:make beam_decode dynamic version, by using named_tuple, and tf.nest_map\n\n    NOTICE! fast_greedy mode not test much, just use fast_greed=False, just to calc topn even topn is 1\n\n    Args:\n      decoder_inputs: A list of 2D Tensors [batch_size x input_size].\n      initial_state: 2D Tensor with shape [batch_size x cell.state_size].\n      cell: rnn_cell.RNNCell defining the cell function and size.\n      loop_function: This function will be applied to the i-th output\n        in order to generate the i+1-st input, and decoder_inputs will be ignored,\n        except for the first element (\"GO\" symbol). \n        Signature -- loop_function(prev_symbol, i) = next\n          * prev_symbol is a 1D Tensor of shape [batch_size*beam_size]\n          * i is an integer, the step number (when advanced control is needed),\n          * next is a 2D Tensor of shape [batch_size*beam_size, input_size].\n      scope: Passed to seq2seq.rnn_decoder\n      beam_size: An integer beam size to use for each example\n      done_token: An integer token that specifies the STOP symbol\n\n      max_words: if max_words == 3, ouputs is as beow, output array len is fixed as 3\n      田地 里 </S> 1.87996e-05\n      [748  21   9] 3\n      [0.10245205285997697, 0.923504919660139, 6.374825504667079e-06]\n      一个 弯着腰 </S> 1.59349e-06\n      [ 10 415   9] 3\n      [0.4947927940753284, 0.04485648322008847, 1.055874923485485e-06] \n      田地 </S> 1.64312e-07\n      [748   9   0] 3\n      \n    Return:\n      A tensor of dimensions [batch_size, len(decoder_inputs)] that corresponds to\n      the 1-best beam for each batch.\n      \n    Known limitations:\n      * The output sequence consisting of only a STOP symbol is not considered\n        (zero-length sequences are not very useful, so this wasn't implemented)\n      * The computation graph this creates is messy and not very well-optimized\n\n    TODO: also return path lengths?\n    \"\"\"\n    decoder = BeamDecoder(input, \n                          #max_words + 2, #take step start from i==1 and need one more additional done token \n                          max_words,  #now max words inclucde done token  This is safe\n                          initial_state, \n                          beam_size=beam_size,\n                          done_token=done_token, \n                          output_fn=output_fn,\n                          length_normalization_factor=length_normalization_factor,\n                          topn=topn,\n                          need_softmax=need_softmax,\n                          logprobs_history=logprobs_history,\n                          alignment_history=alignment_history,\n                          fast_greedy=fast_greedy)\n    \n    _ = rnn_decoder(\n            decoder.decoder_inputs,\n            decoder.initial_state,\n            cell=cell,\n            loop_function = lambda i, prev, state: loop_function(i, prev, state, decoder),\n            scope=scope)\n    \n    if fast_greedy:\n      #compat with topn > 1\n      score = tf.expand_dims(decoder.logprobs_finished_beams, 1)\n      path = tf.expand_dims(decoder.finished_beams, 1)\n    else:\n      path, score = decoder.calc_topn()\n    \n    if prob_as_score:\n      score = tf.exp(score)\n\n    outputs = BeamDecoderOutputs(\n                paths=path,\n                scores=score,\n                decoder=decoder)\n\n    return outputs, decoder.final_state\n\n\n#now without beam size 10, about seq->seq 20->4 10w vocab, about 70-100ms, notice the first decode will be slow 400ms+\n#exp in deepiu/textsum/inference/infenrence.sh\n#TODO add alignments history support for ingraph beam search\nclass BeamDecoder():\n  def __init__(self, input, max_steps, initial_state, beam_size=7, done_token=0,\n              batch_size=None, num_classes=None, output_fn=None, \n              length_normalization_factor=0., topn=1, need_softmax=True,\n              logprobs_history=False, alignment_history=False, fast_greedy=False):\n    self.length_normalization_factor = length_normalization_factor\n    self.topn = topn\n    self.need_softmax = need_softmax\n    self.beam_size = beam_size\n    self.batch_size = batch_size\n    if self.batch_size is None:\n      self.batch_size = melt.get_batch_size(input)\n    self.max_len = max_steps\n    self.num_classes = num_classes\n    self.done_token = done_token\n    self.pad_token = 0\n\n    self.output_fn = output_fn\n    \n    self.past_logprobs = None\n    self.past_symbols = None\n\n    self.past_step_logprobs = None\n\n    self.fast_greedy = fast_greedy\n    if self.fast_greedy:\n      self.finished_beams = tf.zeros((self.batch_size, self.max_len), dtype=tf.int32) \n      self.logprobs_finished_beams = tf.ones((self.batch_size,), dtype=tf.float32) * -float('inf')\n    else:\n      self.path_list = []\n      self.logprobs_list = []\n      self.step_logprobs_list = []\n      self.alignments_path_list = []\n\n    #for rnn_decoder function need one more step loop, since i== 0 will not output words, take step start from i==1\n    self.decoder_inputs = [None] * (self.max_len + 1) \n    self.decoder_inputs[0] = tf.contrib.seq2seq.tile_batch(input, beam_size)\n\n    self.initial_state = initial_state\n    self.final_state = None\n\n    self.log_probs_history = None\n    self.alignment_history = None\n\n    self.need_logprobs_history = logprobs_history\n    self.need_alignment_history = alignment_history\n\n                      \n  def calc_topn(self):\n    #[batch_size, beam_size * (max_len-1)]\n    logprobs = tf.concat(self.logprobs_list, 1)\n\n    #[batch_size, topn]\n    top_logprobs, indices = tf.nn.top_k(logprobs, self.topn)\n\n    #-2 because max_words = max_len - 1  TODO\n    length = self.beam_size * (self.max_len - 1)\n\n    indice_offsets = tf.reshape(\n      (tf.range(self.batch_size * length) // length) * length,\n      [self.batch_size, length])\n\n    indice_offsets = indice_offsets[:, :self.topn]\n\n    #[batch_size, max_len(length index) - 1, beam_size, max_len]\n    paths = tf.concat(self.path_list, 1)\n    if self.need_logprobs_history:\n      step_logprobs_path = tf.concat(self.step_logprobs_list, 1)\n    need_alignments = self.need_alignment_history and hasattr(self.final_state, 'alignments')\n\n    #[batch_size * beam_size, max_len]\n    paths = tf.reshape(paths, [-1, self.max_len])\n    if self.need_logprobs_history:\n      step_logprobs_path = tf.reshape(step_logprobs_path, [-1, self.max_len])\n\n    if need_alignments:\n      alignments_path = tf.concat(self.alignments_path_list, 1)\n      alignments_path = tf.reshape(alignments_path, [self.batch_size * length, self.max_len, -1])\n\n    indices = indice_offsets + indices\n    top_paths = tf.gather(paths, indices)\n\n    if self.need_logprobs_history:\n      top_step_logprobs_path = tf.gather(step_logprobs_path, indices)\n      self.log_probs_history = top_step_logprobs_path\n\n    if need_alignments:\n      top_alignments_path = tf.gather(alignments_path, indices)\n      self.alignment_history = top_alignments_path\n      self.final_state = BeamDecoderState(cell_state=self.final_state.cell_state,\n                                          alignment_history=self.alignment_history)\n\n    return top_paths, top_logprobs\n        \n  def take_step(self, i, prev, state):\n    if self.output_fn is not None:\n      #[batch_size * beam_size, num_units] -> [batch_size * beam_size, num_classes]\n      try:\n        output = self.output_fn(prev)\n      except Exception:\n        output = self.output_fn(prev, state)\n    else:\n      output = prev\n\n    self.output = output\n\n    #[batch_size * beam_size, num_classes], here use log sofmax\n    if self.need_softmax:\n      logprobs = tf.nn.log_softmax(output)\n    else:\n      logprobs = tf.log(tf.maximum(output, 1e-12))\n    \n    if self.num_classes is None:\n      self.num_classes = tf.shape(logprobs)[1]\n\n    need_logprobs_history = self.need_logprobs_history\n\n    #->[batch_size, beam_size, num_classes]\n    logprobs_batched = tf.reshape(logprobs,\n                                  [-1, self.beam_size, self.num_classes])\n    logprobs_batched.set_shape((None, self.beam_size, None))\n    \n    # Note: masking out entries to -inf plays poorly with top_k, so just subtract out a large number.\n    nondone_mask = tf.reshape(\n        tf.cast(\n          tf.equal(tf.range(self.num_classes), self.done_token),\n          tf.float32) * -1e18,\n        [1, 1, self.num_classes])\n\n    if self.past_logprobs is None:\n      #[batch_size, beam_size, num_classes] -> [batch_size, num_classes]\n      #-> past_logprobs[batch_size, beam_size], indices[batch_size, beam_size]\n      self.past_logprobs, indices = tf.nn.top_k(\n          (logprobs_batched + nondone_mask)[:, 0, :],\n          self.beam_size)\n      if need_logprobs_history:\n        step_logprobs = self.past_logprobs\n    else:\n      #logprobs_batched [batch_size, beam_size, num_classes] -> [batch_size, beam_size, num_classes]  \n      #past_logprobs    [batch_size, beam_size] -> [batch_size, beam_size, 1]\n      if need_logprobs_history:\n        step_logprobs_batched = logprobs_batched\n      logprobs_batched = logprobs_batched + tf.expand_dims(self.past_logprobs, 2)\n\n      #get [batch_size, beam_size] each\n      self.past_logprobs, indices = tf.nn.top_k(\n          #[batch_size, beam_size * num_classes]\n          tf.reshape(logprobs_batched + nondone_mask, \n                     [-1, self.beam_size * self.num_classes]),\n          self.beam_size)  \n\n      if need_logprobs_history:\n        #get current step logprobs [batch_size, beam_size]\n        step_logprobs = tf.gather_nd(tf.reshape(step_logprobs_batched, \n                                                [-1, self.beam_size * self.num_classes]), \n                                     melt.to_nd_indices(indices))\n\n    # For continuing to the next symbols [batch_size, beam_size]\n    symbols = indices % self.num_classes\n    #from wich beam it comes  [batch_size, beam_size]\n    parent_refs = indices // self.num_classes\n\n    # NOTE: outputing a zero-length sequence is not supported for simplicity reasons\n    #hasky/jupter/tensorflow/beam-search2.ipynb below for mergeing path\n    #here when i >= 2\n    # tf.reshape(\n    #           (tf.range(3 * 5) // 5) * 5,\n    #           [3, 5]\n    #       ).eval()\n    # array([[ 0,  0,  0,  0,  0],\n    #        [ 5,  5,  5,  5,  5],\n    #        [10, 10, 10, 10, 10]], dtype=int32)\n    parent_refs_offsets = tf.reshape(\n        (tf.range(self.batch_size * self.beam_size) \n         // self.beam_size) * self.beam_size,\n        [self.batch_size, self.beam_size])\n    \n    #[batch_size, beam_size]\n    past_indices = parent_refs + parent_refs_offsets \n    #[batch_size * beam_size]\n    flattened_past_indices = tf.reshape(past_indices, [-1])\n\n\n    need_alignments = self.need_alignment_history and hasattr(state, 'alignments')\n    if need_alignments:\n      ori_alignments = tf.reshape(state.alignments, [self.batch_size, self.beam_size, -1])\n      #TODO might use nest.map_structure also\n      #[batch_size, beam_size, attention_size] <- ([batch_size * beam_size, attention_size], [batch_size, beam_size])\n      alignments = tf.gather(state.alignments,\n                             past_indices)\n\n    #TODO not support tf.TensorArray right now, can not use alignment_history in attention_wrapper\n    def try_gather(x, indices):\n      #if isinstance(x, tf.Tensor) and x.shape.ndims >= 2:\n      assert isinstance(x, tf.Tensor)\n      if x.shape.ndims >= 2:\n        return tf.gather(x, indices)\n      else:\n        return x\n    \n    #must reorder state! including attention\n    state = nest.map_structure(lambda x: try_gather(x, flattened_past_indices), state)\n\n    if self.past_symbols is None:\n      #here when i == 1, when i==0 will not do take step it just do one rnn() get output and use it for i==1 here\n      #here will not need to gather state for inital state of each beam is the same\n      #[batch_size, beam_size] -> [batch_size, beam_size, 1]\n      self.past_symbols = tf.expand_dims(symbols, 2)\n      if need_logprobs_history:\n        self.past_step_logprobs = tf.expand_dims(step_logprobs, 2)\n      if need_alignments:\n        #[batch_size, beam_size, 1, attention_size]\n        self.past_alignments = tf.expand_dims(alignments, 2)\n    else:\n      #self.past_symbols [batch_size, beam_size, i - 1] -> past_symbols_batch_major [batch_size * beam_size, i - 1]\n      past_symbols_batch_major = tf.reshape(self.past_symbols, [-1, i-1])\n      if need_logprobs_history:\n        past_step_logprobs_batch_major = tf.reshape(self.past_step_logprobs, [-1, i - 1])\n      if need_alignments:\n        past_alignments = tf.reshape(self.past_alignments, [self.batch_size * self.beam_size, i - 1, -1])\n     \n\n      #[batch_size, beam_size, i - 1]  <- ([batch_size * beam_size, i - 1], [batch_size, beam_size])\n      beam_past_symbols = tf.gather(past_symbols_batch_major, past_indices)\n      if need_logprobs_history:\n        beam_past_step_logprobs = tf.gather(past_step_logprobs_batch_major, past_indices)\n      if need_alignments:\n        beam_past_alignments = tf.gather(past_alignments, past_indices)\n\n      if not self.fast_greedy:\n        #[batch_size, beam_size, max_len]\n        path = tf.concat([self.past_symbols, \n                          tf.ones_like(tf.expand_dims(symbols, 2)) * self.done_token,\n                          tf.tile(tf.ones_like(tf.expand_dims(symbols, 2)) * self.pad_token, \n                          [1, 1, self.max_len - i])], 2)\n\n        if need_logprobs_history:\n          step_logprobs_path = tf.concat([self.past_step_logprobs, \n                                          tf.expand_dims(step_logprobs_batched[:, :, self.done_token], 2),\n                                          tf.tile(tf.ones_like(tf.expand_dims(step_logprobs, 2)) * -float('inf'), \n                                                  [1, 1, self.max_len - i])], 2)\n\n        if need_alignments:\n          #[batch_size, beam_size, max_len, attention_size]\n          #NOTICE this is not correct for done token alignments(but currently best choice tokens state) need to modify the step before\n          alignments_path = tf.concat([self.past_alignments,\n                                       tf.expand_dims(ori_alignments, 2),\n                                       tf.tile(tf.zeros_like(tf.expand_dims(alignments, 2)),\n                                       [1, 1, self.max_len - i, 1])], 2)\n          \n        #[batch_size, 1, beam_size, max_len]\n        path = tf.expand_dims(path, 1)\n        self.path_list.append(path)\n        if need_logprobs_history:\n          step_logprobs_path = tf.expand_dims(step_logprobs_path, 1)\n          self.step_logprobs_list.append(step_logprobs_path)\n        if need_alignments:\n          #[batch_size, 1, beam_size, max_len, attention_size]\n          alignments_path = tf.expand_dims(alignments_path, 1)\n          self.alignments_path_list.append(alignments_path)\n\n      #[batch_size * beam_size, i - 1] -> [batch_size, beam_size, i] the best beam_size paths until step i\n      self.past_symbols = tf.concat([beam_past_symbols, tf.expand_dims(symbols, 2)], 2)\n      if need_logprobs_history:\n        self.past_step_logprobs = tf.concat([beam_past_step_logprobs, tf.expand_dims(step_logprobs, 2)], 2)\n      if need_alignments:\n        self.past_alignments = tf.concat([beam_past_alignments, tf.expand_dims(alignments, 2)], 2)\n\n      # For finishing the beam \n      #[batch_size, beam_size]\n      logprobs_done = logprobs_batched[:, :, self.done_token]\n      \n      if not self.fast_greedy:\n        self.logprobs_list.append(logprobs_done / i ** self.length_normalization_factor)\n      else:\n        done_parent_refs = tf.cast(tf.argmax(logprobs_done, 1), tf.int32)\n        done_parent_refs_offsets = tf.range(self.batch_size) * self.beam_size\n\n        done_past_symbols = tf.gather(past_symbols_batch_major,\n                                      done_parent_refs + done_parent_refs_offsets)\n\n        #[batch_size, max_len]\n        symbols_done = tf.concat([done_past_symbols,\n                                     tf.ones_like(done_past_symbols[:,0:1]) * self.done_token,\n                                     tf.tile(tf.zeros_like(done_past_symbols[:,0:1]),\n                                             [1, self.max_len - i])\n                                    ], 1)\n\n        #[batch_size, beam_size] -> [batch_size,]\n        logprobs_done_max = tf.reduce_max(logprobs_done, 1)\n      \n        if self.length_normalization_factor > 0:\n          logprobs_done_max /= i ** self.length_normalization_factor\n\n        #[batch_size, max_len]\n        self.finished_beams = tf.where(logprobs_done_max > self.logprobs_finished_beams,\n                                       symbols_done,\n                                       self.finished_beams)\n\n        self.logprobs_finished_beams = tf.maximum(logprobs_done_max, self.logprobs_finished_beams)\n\n    #->[batch_size * beam_size,]\n    symbols_flat = tf.reshape(symbols, [-1])\n\n    self.final_state = state \n    return symbols_flat, state \n\n"
  },
  {
    "path": "utils/melt/seq2seq/beam_decoder_fn.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"\ndepreciated\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.util import nest\nfrom tensorflow.python.ops import tensor_array_ops\n\nimport tensorflow as tf\n\n__all__ = [\"beam_decoder_fn_inference\"]\n\ndef beam_decoder_fn_inference(output_fn, first_input, encoder_state, \n                                embeddings, end_of_sequence_id,\n                                maximum_length, num_decoder_symbols, decoder,\n                                dtype=dtypes.int32, name=None):\n  \"\"\" Greedy decoder function for a sequence-to-sequence model used in the\n  `dynamic_rnn_decoder`.\n\n  The `greedy_decoder_fn_inference` is a greedy inference function for a\n  sequence-to-sequence model. It should be used when `dynamic_rnn_decoder` is\n  in the inference mode.\n\n  The `greedy_decoder_fn_inference` is called with a set of the user arguments\n  and returns the `decoder_fn`, which can be passed to the\n  `dynamic_rnn_decoder`, such that\n\n  ```\n  dynamic_fn_inference = greedy_decoder_fn_inference(...)\n  outputs_inference, state_inference = dynamic_rnn_decoder(\n      decoder_fn=dynamic_fn_inference, ...)\n  ```\n\n  Further usage can be found in the `kernel_tests/seq2seq_test.py`.\n\n  Args:\n    output_fn: An output function to project your `cell_output` onto class\n    logits.\n\n    An example of an output function;\n\n    ```\n      tf.variable_scope(\"decoder\") as varscope\n        output_fn = lambda x: layers.linear(x, num_decoder_symbols,\n                                            scope=varscope)\n\n        outputs_train, state_train = seq2seq.dynamic_rnn_decoder(...)\n        logits_train = output_fn(outputs_train)\n\n        varscope.reuse_variables()\n        logits_inference, state_inference = seq2seq.dynamic_rnn_decoder(\n            output_fn=output_fn, ...)\n    ```\n\n    If `None` is supplied it will act as an identity function, which\n    might be wanted when using the RNNCell `OutputProjectionWrapper`.\n\n    encoder_state: The encoded state to initialize the `dynamic_rnn_decoder`.\n    embeddings: The embeddings matrix used for the decoder sized\n    `[num_decoder_symbols, embedding_size]`.\n    start_of_sequence_id: The start of sequence ID in the decoder embeddings.\n    end_of_sequence_id: The end of sequence ID in the decoder embeddings.\n    maximum_length: The maximum allowed of time steps to decode.\n    num_decoder_symbols: The number of classes to decode at each time step.\n    dtype: (default: `dtypes.int32`) The default data type to use when\n    handling integer objects.\n    name: (default: `None`) NameScope for the decoder function;\n      defaults to \"greedy_decoder_fn_inference\"\n\n  Returns:\n    A decoder function with the required interface of `dynamic_rnn_decoder`\n    intended for inference.\n  \"\"\"\n  with ops.name_scope(name, \"beam_decoder_fn_inference\",\n                      [output_fn, first_input, encoder_state, embeddings,\n                       end_of_sequence_id, maximum_length, num_decoder_symbols, dtype]):\n    first_input = ops.convert_to_tensor(first_input, dtypes.float32)\n    end_of_sequence_id = ops.convert_to_tensor(end_of_sequence_id, dtype)\n    maximum_length = ops.convert_to_tensor(maximum_length, dtype)\n    num_decoder_symbols = ops.convert_to_tensor(num_decoder_symbols, dtype)\n    encoder_info = nest.flatten(encoder_state)[0]\n    batch_size = encoder_info.get_shape()[0].value\n    if output_fn is None:\n      output_fn = lambda x: x\n    if batch_size is None:\n      batch_size = array_ops.shape(encoder_info)[0]\n\n  def decoder_fn(time, cell_state, cell_input, cell_output, context_state):\n    \"\"\" Decoder function used in the `dynamic_rnn_decoder` with the purpose of\n    inference.\n\n    The main difference between this decoder function and the `decoder_fn` in\n    `greedy_decoder_fn_train` is how `next_cell_input` is calculated. In this\n    decoder function we calculate the next input by applying an argmax across\n    the feature dimension of the output from the decoder. This is a\n    greedy-search approach. (Bahdanau et al., 2014) & (Sutskever et al., 2014)\n    use beam-search instead.\n\n    Args:\n      time: positive integer constant reflecting the current timestep.\n      cell_state: state of RNNCell.\n      cell_input: input provided by `dynamic_rnn_decoder`.\n      cell_output: output of RNNCell.\n      context_state: context state provided by `dynamic_rnn_decoder`.\n\n    Returns:\n      A tuple (done, next state, next input, emit output, next context state)\n      where:\n\n      done: A boolean vector to indicate which sentences has reached a\n      `end_of_sequence_id`. This is used for early stopping by the\n      `dynamic_rnn_decoder`. When `time>=maximum_length` a boolean vector with\n      all elements as `true` is returned.\n\n      next state: `cell_state`, this decoder function does not modify the\n      given state.\n\n      next input: The embedding from argmax of the `cell_output` is used as\n      `next_input`.\n\n      emit output: If `output_fn is None` the supplied `cell_output` is\n      returned, else the `output_fn` is used to update the `cell_output`\n      before calculating `next_input` and returning `cell_output`.\n\n      next context state: `context_state`, this decoder function does not\n      modify the given context state. The context state could be modified when\n      applying e.g. beam search.\n  \"\"\"\n    with ops.name_scope(name, \"greedy_decoder_fn_inference\",\n                        [time, cell_state, cell_input, cell_output,\n                         context_state]):\n      if cell_input is not None:\n        raise ValueError(\"Expected cell_input to be None, but saw: %s\" %\n                         cell_input)\n      if cell_output is None:\n        # invariant that this is time == 0\n        next_input_id = None\n        done = array_ops.zeros([batch_size,], dtype=dtypes.bool)\n        cell_state = encoder_state\n        cell_output = array_ops.zeros([num_decoder_symbols],\n                                      dtype=dtypes.float32)\n        #context_state = tensor_array_ops.TensorArray(\n        ##    #dtype=dtype, tensor_array_name=\"beam_path\", size=1, infer_shape=False)\n        #    dtype=dtype, tensor_array_name=\"beam_path\", size=0, dynamic_size=True, infer_shape=False)\n        ##context_state = None\n\n        context_state = decoder.finished_beams\n      else:\n        #cell_output, finished_beams, log_prob_finished_beams = output_fn(cell_output, time)\n        cell_output, next_input_id = output_fn(cell_output, time)\n        \n        done = math_ops.equal(next_input_id, end_of_sequence_id)\n        \n        #done = tf.zeros_like(next_input_id, dtype=tf.bool)\n\n        #context_state = context_state.write(0, best_path)\n        \n        #context_state = context_state.write(time - 1, next_input_id)\n        \n        #context_state = context_state.write(time - 1, best_path)\n        \n        #context_state = decoder.past_symbols, decoder.finished_beams, decoder.logprobs_finished_beams\n        context_state = decoder.finished_beams\n\n      next_input = array_ops.gather(embeddings, next_input_id) if next_input_id is not None else first_input\n      # if time == maxlen, return all true vector\n      done = control_flow_ops.cond(math_ops.equal(time, maximum_length),\n          lambda: array_ops.ones([batch_size,], dtype=dtypes.bool),\n          lambda: done)\n      return (done, cell_state, next_input, cell_output, context_state)\n  return decoder_fn\n\n"
  },
  {
    "path": "utils/melt/seq2seq/beam_search.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   beam_search.py\n#        \\author   chenghuige  \n#          \\date   2017-03-13 15:49:32.201102\n#   \\Description  \n# ==============================================================================\n\n\"\"\"\n now outgraph beam search copy and modify a bit from google im2txt\n TODO read and experiment https://github.com/google/seq2seq/tree/master/seq2seq for beam search\n TODO trie based selective fast beam search!\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport numpy as np\n\nfrom gezi import TopN\n\n\nclass BeamSearchState(object):\n  \"\"\"Represents a complete or partial beam search state.\"\"\"\n\n  def __init__(self, words, state, logprob, score, logprobs, alignments_list=None, metadata=None):\n    \"\"\"Initializes the Caption.\n\n    Args:\n      words: \n      state: Model state after generating the previous word.\n      logprob: Log-probability of the BeamSearchState.\n      score: Score of the BeamSearchState.\n      metadata: Optional metadata associated with the partial sentence. If not\n        None, a list of strings with the same length as 'words'.\n    \"\"\"\n    self.words = words\n    self.state = state\n    self.logprob = logprob\n    self.score = score\n    self.logprobs = logprobs\n    self.alignments_list = alignments_list\n    self.metadata = metadata\n\n  def __cmp__(self, other):\n    \"\"\"Compares BeamSearchState by score.\"\"\"\n    assert isinstance(other, BeamSearchState)\n    if self.score == other.score:\n      return 0\n    elif self.score < other.score:\n      return -1\n    else:\n      return 1\n  \n  # For Python 3 compatibility (__cmp__ is deprecated).\n  def __lt__(self, other):\n    assert isinstance(other, BeamSearchState)\n    return self.score < other.score\n  \n  # Also for Python 3 compatibility.\n  def __eq__(self, other):\n    assert isinstance(other, BeamSearchState)\n    return self.score == other.score\n\n\ndef beam_search(init_states, \n                step_func, \n                end_id, \n                max_words, \n                length_normalization_factor=0.):\n  \"\"\"\n  Runs beam search caption generation on a single input\n  notice beam size is not an input params since we encode it ingraph, and here \n  get it from graph\n\n  Args:\n    init_states is a tuple of (state, ids, logprobs)\n    max_words here means max decode length/max words ie if 3 means oly can generate: A B C\n  Returns:\n    A list of BeamSearchState sorted by descending score.\n  \"\"\"\n  # Feed in the image to get the initial state.\n  #TODO right now ingraph beam size must here equal to out graph beam size..\n\n  if len(init_states) == 4:\n    beam_size, initial_state, ids, logprobs = init_states\n    initial_alignments = []\n  else:\n    beam_size, initial_state, ids, logprobs, initial_alignments = init_states\n    assert initial_alignments is not None\n    initial_alignments = [initial_alignments[0]]\n\n  partial_beams = TopN(beam_size)\n  complete_beams = TopN(beam_size)\n  for id, logprob in zip(ids[0], logprobs[0]):\n    #assert id != end_id\n    if id != end_id:\n      #first id be done_id not allowed\n      beam = BeamSearchState(\n        words=[id],\n        state=initial_state[0],\n        logprob=logprob,\n        score=logprob,\n        logprobs=[logprob],\n        alignments_list=initial_alignments, #[] or [..]\n        metadata=[\"\"])\n      partial_beams.push(beam)\n\n  #print('init', np.shape(initial_alignments))\n  # Run beam search. max_words not - 1 for we wil consider <Done> as an additional step\n  for _ in range(max_words):\n    partial_beams_list = partial_beams.extract()\n    partial_beams.reset()\n    input_feed = np.array([c.words[-1] for c in partial_beams_list])\n    state_feed = np.array([c.state for c in partial_beams_list])\n\n    step_result = step_func(input_feed, state_feed)\n\n    if len(step_result) == 3:\n      state, ids, logprobs = step_result\n      alignments = None\n    else:\n      state, ids, logprobs, alignments = step_result\n      assert alignments is not None \n\n    #print('then', np.shape(alignments))\n    for i, partial_beam in enumerate(partial_beams_list):\n      alignments_list = partial_beam.alignments_list\n      if alignments is not None: \n        alignments_list = alignments_list + [alignments[i]] \n      \n      for w, p in zip(ids[i], logprobs[i]):\n        words = partial_beam.words + [w]\n        logprob = partial_beam.logprob + p\n        logprob_list = partial_beam.logprobs + [p]\n        score = logprob\n        #TODO: right now not consider metadata\n        #if metadata:\n        #  metadata_list = partial_caption.metadata + [metadata[i]]\n        #else:\n        #  metadata_list = None\n        metadata_list = None\n        if w == end_id:\n          if length_normalization_factor > 0:\n            score /= len(words)**length_normalization_factor\n          beam = BeamSearchState(words, state[i], logprob, score,\n                                 logprob_list, alignments_list, metadata_list)\n          complete_beams.push(beam)\n        else:\n          beam = BeamSearchState(words, state[i], logprob, score, \n                                 logprob_list, alignments_list, metadata_list)\n          partial_beams.push(beam)\n\n    if partial_beams.size() == 0:\n      # We have run out of partial candidates; happens when beam_size = 1.\n      break\n\n  # If we have no complete captions then fall back to the partial captions.\n  # But never output a mixture of complete and partial captions because a\n  # partial caption could have a higher score than all the complete captions.\n  if not complete_beams.size():\n    print('Warning no complete beam after max_words, for patial results may be one step more then max_words:', max_words) \n    complete_beams = partial_beams\n\n  return complete_beams.extract(sort=True)  \n\n"
  },
  {
    "path": "utils/melt/seq2seq/beam_search_decoder.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"A decoder that performs beam search.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\n\nfrom tensorflow.contrib.seq2seq.python.ops import beam_search_ops\nfrom tensorflow.contrib.seq2seq.python.ops import decoder\nfrom tensorflow.python.framework import constant_op\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.framework import tensor_util\nfrom tensorflow.python.layers import base as layers_base\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import embedding_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import rnn_cell_impl\nfrom tensorflow.python.ops import tensor_array_ops\nfrom tensorflow.python.util import nest\n\n\n__all__ = [\n    \"BeamSearchDecoderOutput\",\n    \"BeamSearchDecoderState\",\n    \"BeamSearchDecoder\",\n    \"FinalBeamSearchDecoderOutput\",\n    \"tile_batch\",\n]\n\n\nclass BeamSearchDecoderState(\n    collections.namedtuple(\"BeamSearchDecoderState\", (\"cell_state\", \"log_probs\",\n                                                      \"finished\", \"lengths\"))):\n  pass\n\n\nclass BeamSearchDecoderOutput(\n    collections.namedtuple(\"BeamSearchDecoderOutput\",\n                           (\"scores\", \"predicted_ids\", \"parent_ids\"))):\n  pass\n\n\nclass FinalBeamSearchDecoderOutput(\n    collections.namedtuple(\"FinalBeamDecoderOutput\",\n                           [\"predicted_ids\", \"beam_search_decoder_output\"])):\n  \"\"\"Final outputs returned by the beam search after all decoding is finished.\n\n  Args:\n    predicted_ids: The final prediction. A tensor of shape\n      `[T, batch_size, beam_width]`.\n    beam_search_decoder_output: An instance of `BeamSearchDecoderOutput` that\n      describes the state of the beam search.\n  \"\"\"\n  pass\n\n\ndef _tile_batch(t, multiplier):\n  \"\"\"Core single-tensor implementation of tile_batch.\"\"\"\n  t = ops.convert_to_tensor(t, name=\"t\")\n  shape_t = array_ops.shape(t)\n  if t.shape.ndims is None or t.shape.ndims < 1:\n    raise ValueError(\"t must have statically known rank\")\n  tiling = [1] * (t.shape.ndims + 1)\n  tiling[1] = multiplier\n  tiled_static_batch_size = (\n      t.shape[0].value * multiplier if t.shape[0].value is not None else None)\n  tiled = array_ops.tile(array_ops.expand_dims(t, 1), tiling)\n  tiled = array_ops.reshape(\n      tiled, array_ops.concat(([shape_t[0] * multiplier], shape_t[1:]), 0))\n  tiled.set_shape(\n      tensor_shape.TensorShape(\n          [tiled_static_batch_size]).concatenate(t.shape[1:]))\n  return tiled\n\n\ndef tile_batch(t, multiplier, name=None):\n  \"\"\"Tile the batch dimension of a (possibly nested structure of) tensor(s) t.\n\n  For each tensor t in a (possibly nested structure) of tensors,\n  this function takes a tensor t shaped `[batch_size, s0, s1, ...]` composed of\n  minibatch entries `t[0], ..., t[batch_size - 1]` and tiles it to have a shape\n  `[batch_size * multiplier, s0, s1, ...]` composed of minibatch entries\n  `t[0], t[0], ..., t[1], t[1], ...` where each minibatch entry is repeated\n  `multiplier` times.\n\n  Args:\n    t: `Tensor` shaped `[batch_size, ...]`.\n    multiplier: Python int.\n    name: Name scope for any created operations.\n\n  Returns:\n    A (possibly nested structure of) `Tensor` shaped\n    `[batch_size * multiplier, ...]`.\n\n  Raises:\n    ValueError: if tensor(s) `t` do not have a statically known rank or\n    the rank is < 1.\n  \"\"\"\n  flat_t = nest.flatten(t)\n  with ops.name_scope(name, \"tile_batch\", flat_t + [multiplier]):\n    return nest.map_structure(lambda t_: _tile_batch(t_, multiplier), t)\n\n\ndef _check_maybe(t):\n  if isinstance(t, tensor_array_ops.TensorArray):\n    raise TypeError(\n        \"TensorArray state is not supported by BeamSearchDecoder: %s\" % t.name)\n  if t.shape.ndims is None:\n    raise ValueError(\n        \"Expected tensor (%s) to have known rank, but ndims == None.\" % t)\n\n\nclass BeamSearchDecoder(decoder.Decoder):\n  \"\"\"BeamSearch sampling decoder.\n\n    **NOTE** If you are using the `BeamSearchDecoder` with a cell wrapped in\n    `AttentionWrapper`, then you must ensure that:\n\n    - The encoder output has been tiled to `beam_width` via\n      @{tf.contrib.seq2seq.tile_batch} (NOT `tf.tile`).\n    - The `batch_size` argument passed to the `zero_state` method of this\n      wrapper is equal to `true_batch_size * beam_width`.\n    - The initial state created with `zero_state` above contains a\n      `cell_state` value containing properly tiled final state from the\n      encoder.\n\n    An example:\n\n    ```\n    tiled_encoder_outputs = tf.contrib.seq2seq.tile_batch(\n        encoder_outputs, multiplier=beam_width)\n    tiled_encoder_final_state = tf.conrib.seq2seq.tile_batch(\n        encoder_final_state, multiplier=beam_width)\n    tiled_sequence_length = tf.contrib.seq2seq.tile_batch(\n        sequence_length, multiplier=beam_width)\n    attention_mechanism = MyFavoriteAttentionMechanism(\n        num_units=attention_depth,\n        memory=tiled_inputs,\n        memory_sequence_length=tiled_sequence_length)\n    attention_cell = AttentionWrapper(cell, attention_mechanism, ...)\n    decoder_initial_state = attention_cell.zero_state(\n        dtype, batch_size=true_batch_size * beam_width)\n    decoder_initial_state = decoder_initial_state.clone(\n        cell_state=tiled_encoder_final_state)\n    ```\n  \"\"\"\n\n  def __init__(self,\n               cell,\n               embedding,\n               first_input,\n               end_token,\n               initial_state,\n               beam_width,\n               vocab_size=None,\n               output_fn=None,\n               length_penalty_weight=0.0):\n    \"\"\"Initialize the BeamSearchDecoder.\n\n    Args:\n      cell: An `RNNCell` instance.\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\n        or the `params` argument for `embedding_lookup`.\n      start_tokens: `int32` vector shaped `[batch_size]`, the start tokens.\n      end_token: `int32` scalar, the token that marks end of decoding.\n      initial_state: A (possibly nested tuple of...) tensors and TensorArrays.\n      beam_width:  Python integer, the number of beams.\n      output_layer: (Optional) An instance of `tf.layers.Layer`, i.e.,\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output prior\n        to storing the result or sampling.\n      length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\n\n    Raises:\n      TypeError: if `cell` is not an instance of `RNNCell`,\n        or `output_layer` is not an instance of `tf.layers.Layer`.\n      ValueError: If `start_tokens` is not a vector or\n        `end_token` is not a scalar.\n    \"\"\"\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\"cell must be an RNNCell, received: %s\" % type(cell))\n\n    self._cell = cell\n    self._output_layer = output_fn\n    self._layer_output_shape = vocab_size\n\n    if callable(embedding):\n      self._embedding_fn = embedding\n    else:\n      self._embedding_fn = (\n          lambda ids: embedding_ops.embedding_lookup(embedding, ids))\n\n    self._end_token = ops.convert_to_tensor(\n        end_token, dtype=dtypes.int32, name=\"end_token\")\n    if self._end_token.get_shape().ndims != 0:\n      raise ValueError(\"end_token must be a scalar\")\n\n    self._batch_size = first_input.shape[0].value\n    if self._batch_size is None:\n      self._batch_size = array_ops.shape(first_input)[0]\n\n    self._beam_width = beam_width\n    self._length_penalty_weight = length_penalty_weight\n    self._initial_cell_state = nest.map_structure(\n        self._maybe_split_batch_beams,\n        initial_state, self._cell.state_size)\n    self._start_inputs = array_ops.tile(\n        array_ops.expand_dims(first_input, 1), [1, self._beam_width, 1])\n    self._finished = array_ops.zeros(\n        [self._batch_size, self._beam_width], dtype=dtypes.bool)\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  def _rnn_output_size(self):\n    size = self._cell.output_size\n    if self._output_layer is None:\n      return size\n    else:\n      # To use layer's compute_output_shape, we need to convert the\n      # RNNCell's output_size entries into shapes with an unknown\n      # batch size.  We then pass this through the layer's\n      # compute_output_shape and read off all but the first (batch)\n      # dimensions to get the output size of the rnn with the layer\n      # applied to the top.\n      output_shape_with_unknown_batch = nest.map_structure(\n          lambda s: tensor_shape.TensorShape([None]).concatenate(s),\n          size)\n      # layer_output_shape = self._output_layer._compute_output_shape(  # pylint: disable=protected-access\n      #     output_shape_with_unknown_batch)\n      layer_output_shape = self._layer_output_shape\n      #return nest.map_structure(lambda s: s[1:], layer_output_shape)\n      return layer_output_shape\n\n  @property\n  def output_size(self):\n    # Return the cell output and the id\n    return BeamSearchDecoderOutput(\n        scores=tensor_shape.TensorShape([self._beam_width]),\n        predicted_ids=tensor_shape.TensorShape([self._beam_width]),\n        parent_ids=tensor_shape.TensorShape([self._beam_width]))\n\n  @property\n  def output_dtype(self):\n    # Assume the dtype of the cell is the output_size structure\n    # containing the input_state's first component's dtype.\n    # Return that structure and int32 (the id)\n    dtype = nest.flatten(self._initial_cell_state)[0].dtype\n    return BeamSearchDecoderOutput(\n        scores=nest.map_structure(lambda _: dtype, self._rnn_output_size()),\n        predicted_ids=dtypes.int32,\n        parent_ids=dtypes.int32)\n\n  def initialize(self, name=None):\n    \"\"\"Initialize the decoder.\n\n    Args:\n      name: Name scope for any created operations.\n\n    Returns:\n      `(finished, start_inputs, initial_state)`.\n    \"\"\"\n    finished, start_inputs = self._finished, self._start_inputs\n\n    initial_state = BeamSearchDecoderState(\n        cell_state=self._initial_cell_state,\n        log_probs=array_ops.zeros(\n            [self._batch_size, self._beam_width],\n            dtype=nest.flatten(self._initial_cell_state)[0].dtype),\n        finished=finished,\n        lengths=array_ops.zeros(\n            [self._batch_size, self._beam_width], dtype=dtypes.int64))\n\n    return (finished, start_inputs, initial_state)\n\n  def finalize(self, outputs, final_state, sequence_lengths):\n    \"\"\"Finalize and return the predicted_ids.\n\n    Args:\n      outputs: An instance of BeamSearchDecoderOutput.\n      final_state: An instance of BeamSearchDecoderState. Passed through to the\n        output.\n      sequence_lengths: An `int64` tensor shaped `[batch_size, beam_width]`.\n        The sequence lengths determined for each beam during decode.\n\n    Returns:\n      outputs: An instance of FinalBeamSearchDecoderOutput where the\n        predicted_ids are the result of calling _gather_tree.\n      final_state: The same input instance of BeamSearchDecoderState.\n    \"\"\"\n    predicted_ids = beam_search_ops.gather_tree(\n        outputs.predicted_ids, outputs.parent_ids,\n        sequence_length=sequence_lengths)\n    outputs = FinalBeamSearchDecoderOutput(\n        beam_search_decoder_output=outputs, predicted_ids=predicted_ids)\n    return outputs, final_state\n\n  def _merge_batch_beams(self, t, s=None):\n    \"\"\"Merges the tensor from a batch of beams into a batch by beams.\n\n    More exactly, t is a tensor of dimension [batch_size, beam_width, s]. We\n    reshape this into [batch_size*beam_width, s]\n\n    Args:\n      t: Tensor of dimension [batch_size, beam_width, s]\n      s: (Possibly known) depth shape.\n\n    Returns:\n      A reshaped version of t with dimension [batch_size * beam_width, s].\n    \"\"\"\n    if isinstance(s, ops.Tensor):\n      s = tensor_shape.as_shape(tensor_util.constant_value(s))\n    else:\n      s = tensor_shape.TensorShape(s)\n    t_shape = array_ops.shape(t)\n    static_batch_size = tensor_util.constant_value(self._batch_size)\n    batch_size_beam_width = (\n        None if static_batch_size is None\n        else static_batch_size * self._beam_width)\n    reshaped_t = array_ops.reshape(\n        t, array_ops.concat(\n            ([self._batch_size * self._beam_width], t_shape[2:]), 0))\n    reshaped_t.set_shape(\n        (tensor_shape.TensorShape([batch_size_beam_width]).concatenate(s)))\n    return reshaped_t\n\n  def _split_batch_beams(self, t, s=None):\n    \"\"\"Splits the tensor from a batch by beams into a batch of beams.\n\n    More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We\n    reshape this into [batch_size, beam_width, s]\n\n    Args:\n      t: Tensor of dimension [batch_size*beam_width, s].\n      s: (Possibly known) depth shape.\n\n    Returns:\n      A reshaped version of t with dimension [batch_size, beam_width, s].\n\n    Raises:\n      ValueError: If, after reshaping, the new tensor is not shaped\n        `[batch_size, beam_width, s]` (assuming batch_size and beam_width\n        are known statically).\n    \"\"\"\n    if isinstance(s, ops.Tensor):\n      s = tensor_shape.TensorShape(tensor_util.constant_value(s))\n    else:\n      s = tensor_shape.TensorShape(s)\n    t_shape = array_ops.shape(t)\n    reshaped_t = array_ops.reshape(\n        t, array_ops.concat(\n            ([self._batch_size, self._beam_width], t_shape[1:]), 0))\n    static_batch_size = tensor_util.constant_value(self._batch_size)\n    expected_reshaped_shape = tensor_shape.TensorShape(\n        [static_batch_size, self._beam_width]).concatenate(s)\n    if not reshaped_t.shape.is_compatible_with(expected_reshaped_shape):\n      raise ValueError(\"Unexpected behavior when reshaping between beam width \"\n                       \"and batch size.  The reshaped tensor has shape: %s.  \"\n                       \"We expected it to have shape \"\n                       \"(batch_size, beam_width, depth) == %s.  Perhaps you \"\n                       \"forgot to create a zero_state with \"\n                       \"batch_size=encoder_batch_size * beam_width?\"\n                       % (reshaped_t.shape, expected_reshaped_shape))\n    reshaped_t.set_shape(expected_reshaped_shape)\n    return reshaped_t\n\n  def _maybe_split_batch_beams(self, t, s):\n    \"\"\"Maybe splits the tensor from a batch by beams into a batch of beams.\n\n    We do this so that we can use nest and not run into problems with shapes.\n\n    Args:\n      t: Tensor of dimension [batch_size*beam_width, s]\n      s: Tensor, Python int, or TensorShape.\n\n    Returns:\n      Either a reshaped version of t with dimension\n      [batch_size, beam_width, s] if t's first dimension is of size\n      batch_size*beam_width or t if not.\n\n    Raises:\n      TypeError: If t is an instance of TensorArray.\n      ValueError: If the rank of t is not statically known.\n    \"\"\"\n    _check_maybe(t)\n    if t.shape.ndims >= 1:\n      return self._split_batch_beams(t, s)\n    else:\n      return t\n\n  def _maybe_merge_batch_beams(self, t, s):\n    \"\"\"Splits the tensor from a batch by beams into a batch of beams.\n\n    More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We\n    reshape this into [batch_size, beam_width, s]\n\n    Args:\n      t: Tensor of dimension [batch_size*beam_width, s]\n      s: Tensor, Python int, or TensorShape.\n\n    Returns:\n      A reshaped version of t with dimension [batch_size, beam_width, s].\n\n    Raises:\n      TypeError: If t is an instance of TensorArray.\n      ValueError:  If the rank of t is not statically known.\n    \"\"\"\n    _check_maybe(t)\n    if t.shape.ndims >= 2:\n      return self._merge_batch_beams(t, s)\n    else:\n      return t\n\n  def step(self, time, inputs, state, name=None):\n    \"\"\"Perform a decoding step.\n\n    Args:\n      time: scalar `int32` tensor.\n      inputs: A (structure of) input tensors.\n      state: A (structure of) state tensors and TensorArrays.\n      name: Name scope for any created operations.\n\n    Returns:\n      `(outputs, next_state, next_inputs, finished)`.\n    \"\"\"\n    batch_size = self._batch_size\n    beam_width = self._beam_width\n    end_token = self._end_token\n    length_penalty_weight = self._length_penalty_weight\n\n    with ops.name_scope(name, \"BeamSearchDecoderStep\", (time, inputs, state)):\n      cell_state = state.cell_state\n      inputs = nest.map_structure(\n          lambda inp: self._merge_batch_beams(inp, s=inp.shape[2:]), inputs)\n      cell_state = nest.map_structure(\n          self._maybe_merge_batch_beams,\n          cell_state, self._cell.state_size)\n      cell_outputs, next_cell_state = self._cell(inputs, cell_state)\n      cell_outputs = nest.map_structure(\n          lambda out: self._split_batch_beams(out, out.shape[1:]), cell_outputs)\n      next_cell_state = nest.map_structure(\n          self._maybe_split_batch_beams,\n          next_cell_state, self._cell.state_size)\n\n      if self._output_layer is not None:\n        cell_outputs = self._output_layer(cell_outputs)\n\n      beam_search_output, beam_search_state = _beam_search_step(\n          time=time,\n          logits=cell_outputs,\n          next_cell_state=next_cell_state,\n          beam_state=state,\n          batch_size=batch_size,\n          beam_width=beam_width,\n          end_token=end_token,\n          length_penalty_weight=length_penalty_weight)\n\n      finished = beam_search_state.finished\n      sample_ids = beam_search_output.predicted_ids\n      next_inputs = control_flow_ops.cond(\n          math_ops.reduce_all(finished), lambda: self._start_inputs,\n          lambda: self._embedding_fn(sample_ids))\n\n    return (beam_search_output, beam_search_state, next_inputs, finished)\n\n\ndef _beam_search_step(time, logits, next_cell_state, beam_state, batch_size,\n                      beam_width, end_token, length_penalty_weight):\n  \"\"\"Performs a single step of Beam Search Decoding.\n\n  Args:\n    time: Beam search time step, should start at 0. At time 0 we assume\n      that all beams are equal and consider only the first beam for\n      continuations.\n    logits: Logits at the current time step. A tensor of shape\n      `[batch_size, beam_width, vocab_size]`\n    next_cell_state: The next state from the cell, e.g. an instance of\n      AttentionWrapperState if the cell is attentional.\n    beam_state: Current state of the beam search.\n      An instance of `BeamSearchDecoderState`.\n    batch_size: The batch size for this input.\n    beam_width: Python int.  The size of the beams.\n    end_token: The int32 end token.\n    length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\n\n  Returns:\n    A new beam state.\n  \"\"\"\n  static_batch_size = tensor_util.constant_value(batch_size)\n\n  # Calculate the current lengths of the predictions\n  prediction_lengths = beam_state.lengths\n  previously_finished = beam_state.finished\n\n  # Calculate the total log probs for the new hypotheses\n  # Final Shape: [batch_size, beam_width, vocab_size]\n  step_log_probs = nn_ops.log_softmax(logits)\n  step_log_probs = _mask_probs(step_log_probs, end_token, previously_finished)\n  total_probs = array_ops.expand_dims(beam_state.log_probs, 2) + step_log_probs\n\n  # Calculate the continuation lengths by adding to all continuing beams.\n  vocab_size = logits.shape[-1].value or array_ops.shape(logits)[-1]\n  lengths_to_add = array_ops.one_hot(\n      indices=array_ops.tile(\n          array_ops.reshape(end_token, [1, 1]), [batch_size, beam_width]),\n      depth=vocab_size,\n      on_value=constant_op.constant(0, dtype=dtypes.int64),\n      off_value=constant_op.constant(1, dtype=dtypes.int64),\n      dtype=dtypes.int64)\n  add_mask = (1 - math_ops.to_int64(previously_finished))\n  lengths_to_add = array_ops.expand_dims(add_mask, 2) * lengths_to_add\n  new_prediction_lengths = (\n      lengths_to_add + array_ops.expand_dims(prediction_lengths, 2))\n\n  # Calculate the scores for each beam\n  scores = _get_scores(\n      log_probs=total_probs,\n      sequence_lengths=new_prediction_lengths,\n      length_penalty_weight=length_penalty_weight)\n\n  time = ops.convert_to_tensor(time, name=\"time\")\n  # During the first time step we only consider the initial beam\n  scores_shape = array_ops.shape(scores)\n  scores_flat = control_flow_ops.cond(\n      time > 0,\n      lambda: array_ops.reshape(scores, [batch_size, -1]),\n      lambda: scores[:, 0])\n  num_available_beam = control_flow_ops.cond(\n      time > 0, lambda: math_ops.reduce_prod(scores_shape[1:]),\n      lambda: math_ops.reduce_prod(scores_shape[2:]))\n\n  # Pick the next beams according to the specified successors function\n  next_beam_size = math_ops.minimum(\n      ops.convert_to_tensor(beam_width, dtype=dtypes.int32, name=\"beam_width\"),\n      num_available_beam)\n  next_beam_scores, word_indices = nn_ops.top_k(scores_flat, k=next_beam_size)\n\n  next_beam_scores.set_shape([static_batch_size, beam_width])\n  word_indices.set_shape([static_batch_size, beam_width])\n\n  # Pick out the probs, beam_ids, and states according to the chosen predictions\n  next_beam_probs = _tensor_gather_helper(\n      gather_indices=word_indices,\n      gather_from=total_probs,\n      batch_size=batch_size,\n      range_size=beam_width * vocab_size,\n      gather_shape=[-1],\n      name=\"next_beam_probs\")\n  # Note: just doing the following\n  #   math_ops.to_int32(word_indices % vocab_size,\n  #       name=\"next_beam_word_ids\")\n  # would be a lot cleaner but for reasons unclear, that hides the results of\n  # the op which prevents capturing it with tfdbg debug ops.\n  raw_next_word_ids = math_ops.mod(word_indices, vocab_size,\n                                   name=\"next_beam_word_ids\")\n  next_word_ids = math_ops.to_int32(raw_next_word_ids)\n  next_beam_ids = math_ops.to_int32(word_indices / vocab_size,\n                                    name=\"next_beam_parent_ids\")\n\n  # Append new ids to current predictions\n  previously_finished = _tensor_gather_helper(\n      gather_indices=next_beam_ids,\n      gather_from=previously_finished,\n      batch_size=batch_size,\n      range_size=beam_width,\n      gather_shape=[-1])\n  next_finished = math_ops.logical_or(previously_finished,\n                                      math_ops.equal(next_word_ids, end_token),\n                                      name=\"next_beam_finished\")\n\n  # Calculate the length of the next predictions.\n  # 1. Finished beams remain unchanged\n  # 2. Beams that are now finished (EOS predicted) remain unchanged\n  # 3. Beams that are not yet finished have their length increased by 1\n  lengths_to_add = math_ops.to_int64(\n      math_ops.not_equal(next_word_ids, end_token))\n  lengths_to_add = (1 - math_ops.to_int64(next_finished)) * lengths_to_add\n  next_prediction_len = _tensor_gather_helper(\n      gather_indices=next_beam_ids,\n      gather_from=beam_state.lengths,\n      batch_size=batch_size,\n      range_size=beam_width,\n      gather_shape=[-1])\n  next_prediction_len += lengths_to_add\n\n  # Pick out the cell_states according to the next_beam_ids. We use a\n  # different gather_shape here because the cell_state tensors, i.e.\n  # the tensors that would be gathered from, all have dimension\n  # greater than two and we need to preserve those dimensions.\n  # pylint: disable=g-long-lambda\n  next_cell_state = nest.map_structure(\n      lambda gather_from: _maybe_tensor_gather_helper(\n          gather_indices=next_beam_ids,\n          gather_from=gather_from,\n          batch_size=batch_size,\n          range_size=beam_width,\n          gather_shape=[batch_size * beam_width, -1]),\n      next_cell_state)\n  # pylint: enable=g-long-lambda\n\n  next_state = BeamSearchDecoderState(\n      cell_state=next_cell_state,\n      log_probs=next_beam_probs,\n      lengths=next_prediction_len,\n      finished=next_finished)\n\n  output = BeamSearchDecoderOutput(\n      scores=next_beam_scores,\n      predicted_ids=next_word_ids,\n      parent_ids=next_beam_ids)\n\n  return output, next_state\n\n\ndef _get_scores(log_probs, sequence_lengths, length_penalty_weight):\n  \"\"\"Calculates scores for beam search hypotheses.\n\n  Args:\n    log_probs: The log probabilities with shape\n      `[batch_size, beam_width, vocab_size]`.\n    sequence_lengths: The array of sequence lengths.\n    length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\n\n  Returns:\n    The scores normalized by the length_penalty.\n  \"\"\"\n  length_penality_ = _length_penalty(\n      sequence_lengths=sequence_lengths, penalty_factor=length_penalty_weight)\n  return log_probs / length_penality_\n\n\ndef _length_penalty(sequence_lengths, penalty_factor):\n  \"\"\"Calculates the length penalty. See https://arxiv.org/abs/1609.08144.\n\n  Args:\n    sequence_lengths: The sequence length of all hypotheses, a tensor\n      of shape [beam_size, vocab_size].\n    penalty_factor: A scalar that weights the length penalty.\n\n  Returns:\n    The length penalty factor, a tensor fo shape [beam_size].\n  \"\"\"\n  penalty_factor = ops.convert_to_tensor(penalty_factor, name=\"penalty_factor\")\n  penalty_factor.set_shape(())  # penalty should be a scalar.\n  static_penalty = tensor_util.constant_value(penalty_factor)\n  if static_penalty is not None and static_penalty == 0:\n    return 1.0\n  return math_ops.div((5. + math_ops.to_float(sequence_lengths))\n                      **penalty_factor, (5. + 1.)**penalty_factor)\n\n\ndef _mask_probs(probs, eos_token, finished):\n  \"\"\"Masks log probabilities.\n\n  The result is that finished beams allocate all probability mass to eos and\n  unfinished beams remain unchanged.\n\n  Args:\n    probs: Log probabiltiies of shape `[batch_size, beam_width, vocab_size]`\n    eos_token: An int32 id corresponding to the EOS token to allocate\n      probability to.\n    finished: A boolean tensor of shape `[batch_size, beam_width]` that\n      specifies which\n      elements in the beam are finished already.\n\n  Returns:\n    A tensor of shape `[batch_size, beam_width, vocab_size]`, where unfinished\n    beams stay unchanged and finished beams are replaced with a tensor with all\n    probability on the EOS token.\n  \"\"\"\n  vocab_size = array_ops.shape(probs)[2]\n  finished_mask = array_ops.expand_dims(\n      math_ops.to_float(1. - math_ops.to_float(finished)), 2)\n  # These examples are not finished and we leave them\n  non_finished_examples = finished_mask * probs\n  # All finished examples are replaced with a vector that has all\n  # probability on EOS\n  finished_row = array_ops.one_hot(\n      eos_token,\n      vocab_size,\n      dtype=probs.dtype,\n      on_value=0.,\n      off_value=probs.dtype.min)\n  finished_examples = (1. - finished_mask) * finished_row\n  return finished_examples + non_finished_examples\n\n\ndef _maybe_tensor_gather_helper(gather_indices, gather_from, batch_size,\n                                range_size, gather_shape):\n  \"\"\"Maybe applies _tensor_gather_helper.\n\n  This applies _tensor_gather_helper when the gather_from dims is at least as\n  big as the length of gather_shape. This is used in conjunction with nest so\n  that we don't apply _tensor_gather_helper to inapplicable values like scalars.\n\n  Args:\n    gather_indices: The tensor indices that we use to gather.\n    gather_from: The tensor that we are gathering from.\n    batch_size: The batch size.\n    range_size: The number of values in each range. Likely equal to beam_width.\n    gather_shape: What we should reshape gather_from to in order to preserve the\n      correct values. An example is when gather_from is the attention from an\n      AttentionWrapperState with shape [batch_size, beam_width, attention_size].\n      There, we want to preserve the attention_size elements, so gather_shape is\n      [batch_size * beam_width, -1]. Then, upon reshape, we still have the\n      attention_size as desired.\n\n  Returns:\n    output: Gathered tensor of shape tf.shape(gather_from)[:1+len(gather_shape)]\n      or the original tensor if its dimensions are too small.\n  \"\"\"\n  _check_maybe(gather_from)\n  if gather_from.shape.ndims >= len(gather_shape):\n    return _tensor_gather_helper(\n        gather_indices=gather_indices,\n        gather_from=gather_from,\n        batch_size=batch_size,\n        range_size=range_size,\n        gather_shape=gather_shape)\n  else:\n    return gather_from\n\n\ndef _tensor_gather_helper(gather_indices, gather_from, batch_size,\n                          range_size, gather_shape, name=None):\n  \"\"\"Helper for gathering the right indices from the tensor.\n\n  This works by reshaping gather_from to gather_shape (e.g. [-1]) and then\n  gathering from that according to the gather_indices, which are offset by\n  the right amounts in order to preserve the batch order.\n\n  Args:\n    gather_indices: The tensor indices that we use to gather.\n    gather_from: The tensor that we are gathering from.\n    batch_size: The input batch size.\n    range_size: The number of values in each range. Likely equal to beam_width.\n    gather_shape: What we should reshape gather_from to in order to preserve the\n      correct values. An example is when gather_from is the attention from an\n      AttentionWrapperState with shape [batch_size, beam_width, attention_size].\n      There, we want to preserve the attention_size elements, so gather_shape is\n      [batch_size * beam_width, -1]. Then, upon reshape, we still have the\n      attention_size as desired.\n    name: The tensor name for set of operations. By default this is\n      'tensor_gather_helper'. The final output is named 'output'.\n\n  Returns:\n    output: Gathered tensor of shape tf.shape(gather_from)[:1+len(gather_shape)]\n  \"\"\"\n  with ops.name_scope(name, \"tensor_gather_helper\"):\n    range_ = array_ops.expand_dims(math_ops.range(batch_size) * range_size, 1)\n    gather_indices = array_ops.reshape(gather_indices + range_, [-1])\n    output = array_ops.gather(\n        array_ops.reshape(gather_from, gather_shape), gather_indices)\n    final_shape = array_ops.shape(gather_from)[:1 + len(gather_shape)]\n    static_batch_size = tensor_util.constant_value(batch_size)\n    final_static_shape = (tensor_shape.TensorShape([static_batch_size])\n                          .concatenate(\n                              gather_from.shape[1:1 + len(gather_shape)]))\n    output = array_ops.reshape(output, final_shape, name=\"output\")\n    output.set_shape(final_static_shape)\n    return output"
  },
  {
    "path": "utils/melt/seq2seq/decoder.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Seq2seq layer operations for use in neural networks.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport abc\nimport six\n\nfrom tensorflow.python.framework import constant_op\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.framework import tensor_util\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import rnn\nfrom tensorflow.python.ops import tensor_array_ops\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.util import nest\n\n\n__all__ = [\"Decoder\", \"dynamic_decode\"]\n\n\n_transpose_batch_time = rnn._transpose_batch_time  # pylint: disable=protected-access\n\n\n@six.add_metaclass(abc.ABCMeta)\nclass Decoder(object):\n  \"\"\"An RNN Decoder abstract interface object.\n\n  Concepts used by this interface:\n  - `inputs`: (structure of) tensors and TensorArrays that is passed as input to\n    the RNNCell composing the decoder, at each time step.\n  - `state`: (structure of) tensors and TensorArrays that is passed to the\n    RNNCell instance as the state.\n  - `finished`: boolean tensor telling whether each sequence in the batch is\n    finished.\n  - `outputs`: Instance of BasicDecoderOutput. Result of the decoding, at each\n    time step.\n  \"\"\"\n\n  @property\n  def batch_size(self):\n    \"\"\"The batch size of input values.\"\"\"\n    raise NotImplementedError\n\n  @property\n  def output_size(self):\n    \"\"\"A (possibly nested tuple of...) integer[s] or `TensorShape` object[s].\"\"\"\n    raise NotImplementedError\n\n  @property\n  def output_dtype(self):\n    \"\"\"A (possibly nested tuple of...) dtype[s].\"\"\"\n    raise NotImplementedError\n\n  @abc.abstractmethod\n  def initialize(self, name=None):\n    \"\"\"Called before any decoding iterations.\n\n    This methods must compute initial input values and initial state.\n\n    Args:\n      name: Name scope for any created operations.\n\n    Returns:\n      `(finished, initial_inputs, initial_state)`: initial values of\n      'finished' flags, inputs and state.\n    \"\"\"\n    raise NotImplementedError\n\n  @abc.abstractmethod\n  def step(self, time, inputs, state, name=None):\n    \"\"\"Called per step of decoding (but only once for dynamic decoding).\n\n    Args:\n      time: Scalar `int32` tensor. Current step number.\n      inputs: RNNCell input (possibly nested tuple of) tensor[s] for this time\n        step.\n      state: RNNCell state (possibly nested tuple of) tensor[s] from previous\n        time step.\n      name: Name scope for any created operations.\n\n    Returns:\n      `(outputs, next_state, next_inputs, finished)`: `outputs` is an instance\n      of BasicDecoderOutput, `next_state` is a (structure of) state tensors and\n      TensorArrays, `next_inputs` is the tensor that should be used as input for\n      the next step, `finished` is a boolean tensor telling whether the sequence\n      is complete, for each sequence in the batch.\n    \"\"\"\n    raise NotImplementedError\n\n  def finalize(self, outputs, final_state, sequence_lengths):\n    raise NotImplementedError\n\n\ndef _create_zero_outputs(size, dtype, batch_size):\n  \"\"\"Create a zero outputs Tensor structure.\"\"\"\n  def _t(s):\n    return (s if isinstance(s, ops.Tensor) else constant_op.constant(\n        tensor_shape.TensorShape(s).as_list(),\n        dtype=dtypes.int32,\n        name=\"zero_suffix_shape\"))\n\n  def _create(s, d):\n    return array_ops.zeros(\n        array_ops.concat(\n            ([batch_size], _t(s)), axis=0), dtype=d)\n\n  return nest.map_structure(_create, size, dtype)\n\n\ndef dynamic_decode(decoder,\n                   output_time_major=False,\n                   impute_finished=False,\n                   maximum_iterations=None,\n                   parallel_iterations=32,\n                   swap_memory=False,\n                   scope=None):\n  \"\"\"Perform dynamic decoding with `decoder`.\n\n  Calls initialize() once and step() repeatedly on the Decoder object.\n\n  Args:\n    decoder: A `Decoder` instance.\n    output_time_major: Python boolean.  Default: `False` (batch major).  If\n      `True`, outputs are returned as time major tensors (this mode is faster).\n      Otherwise, outputs are returned as batch major tensors (this adds extra\n      time to the computation).\n    impute_finished: Python boolean.  If `True`, then states for batch\n      entries which are marked as finished get copied through and the\n      corresponding outputs get zeroed out.  This causes some slowdown at\n      each time step, but ensures that the final state and outputs have\n      the correct values and that backprop ignores time steps that were\n      marked as finished.\n    maximum_iterations: `int32` scalar, maximum allowed number of decoding\n       steps.  Default is `None` (decode until the decoder is fully done).\n    parallel_iterations: Argument passed to `tf.while_loop`.\n    swap_memory: Argument passed to `tf.while_loop`.\n    scope: Optional variable scope to use.\n\n  Returns:\n    `(final_outputs, final_state, final_sequence_lengths)`.\n\n  Raises:\n    TypeError: if `decoder` is not an instance of `Decoder`.\n    ValueError: if `maximum_iterations` is provided but is not a scalar.\n  \"\"\"\n  #if not isinstance(decoder, Decoder):\n  #  raise TypeError(\"Expected decoder to be type Decoder, but saw: %s\" %\n  #                  type(decoder))\n\n  with variable_scope.variable_scope(scope, \"decoder\") as varscope:\n    # Properly cache variable values inside the while_loop\n    if varscope.caching_device is None:\n      varscope.set_caching_device(lambda op: op.device)\n\n    if maximum_iterations is not None:\n      maximum_iterations = ops.convert_to_tensor(\n          maximum_iterations, dtype=dtypes.int32, name=\"maximum_iterations\")\n      if maximum_iterations.get_shape().ndims != 0:\n        raise ValueError(\"maximum_iterations must be a scalar\")\n\n    initial_finished, initial_inputs, initial_state = decoder.initialize()\n\n    zero_outputs = _create_zero_outputs(decoder.output_size,\n                                        decoder.output_dtype,\n                                        decoder.batch_size)\n\n    if maximum_iterations is not None:\n      initial_finished = math_ops.logical_or(\n          initial_finished, 0 >= maximum_iterations)\n    initial_sequence_lengths = array_ops.zeros_like(\n        initial_finished, dtype=dtypes.int32)\n    initial_time = constant_op.constant(0, dtype=dtypes.int32)\n\n    def _shape(batch_size, from_shape):\n      if not isinstance(from_shape, tensor_shape.TensorShape):\n        return tensor_shape.TensorShape(None)\n      else:\n        batch_size = tensor_util.constant_value(\n            ops.convert_to_tensor(\n                batch_size, name=\"batch_size\"))\n        return tensor_shape.TensorShape([batch_size]).concatenate(from_shape)\n\n    def _create_ta(s, d):\n      return tensor_array_ops.TensorArray(\n          dtype=d,\n          size=0,\n          dynamic_size=True,\n          element_shape=_shape(decoder.batch_size, s))\n\n    initial_outputs_ta = nest.map_structure(_create_ta, decoder.output_size,\n                                            decoder.output_dtype)\n\n    def condition(unused_time, unused_outputs_ta, unused_state, unused_inputs,\n                  finished, unused_sequence_lengths):\n      return math_ops.logical_not(math_ops.reduce_all(finished))\n\n    def body(time, outputs_ta, state, inputs, finished, sequence_lengths):\n      \"\"\"Internal while_loop body.\n\n      Args:\n        time: scalar int32 tensor.\n        outputs_ta: structure of TensorArray.\n        state: (structure of) state tensors and TensorArrays.\n        inputs: (structure of) input tensors.\n        finished: bool tensor (keeping track of what's finished).\n        sequence_lengths: int32 tensor (keeping track of time of finish).\n\n      Returns:\n        `(time + 1, outputs_ta, next_state, next_inputs, next_finished,\n          next_sequence_lengths)`.\n        ```\n      \"\"\"\n      (next_outputs, decoder_state, next_inputs,\n       decoder_finished) = decoder.step(time, inputs, state)\n      next_finished = math_ops.logical_or(decoder_finished, finished)\n      if maximum_iterations is not None:\n        next_finished = math_ops.logical_or(\n            next_finished, time + 1 >= maximum_iterations)\n      next_sequence_lengths = array_ops.where(\n          math_ops.logical_and(math_ops.logical_not(finished), next_finished),\n          array_ops.fill(array_ops.shape(sequence_lengths), time + 1),\n          sequence_lengths)\n\n      nest.assert_same_structure(state, decoder_state)\n      nest.assert_same_structure(outputs_ta, next_outputs)\n      nest.assert_same_structure(inputs, next_inputs)\n\n      # Zero out output values past finish\n      if impute_finished:\n        emit = nest.map_structure(\n            lambda out, zero: array_ops.where(finished, zero, out),\n            next_outputs,\n            zero_outputs)\n      else:\n        emit = next_outputs\n\n      # Copy through states past finish\n      def _maybe_copy_state(new, cur):\n        # TensorArrays and scalar states get passed through.\n        if isinstance(cur, tensor_array_ops.TensorArray):\n          pass_through = True\n        else:\n          new.set_shape(cur.shape)\n          pass_through = (new.shape.ndims == 0)\n        return new if pass_through else array_ops.where(finished, cur, new)\n\n      if impute_finished:\n        next_state = nest.map_structure(\n            _maybe_copy_state, decoder_state, state)\n      else:\n        next_state = decoder_state\n\n      outputs_ta = nest.map_structure(lambda ta, out: ta.write(time, out),\n                                      outputs_ta, emit)\n      return (time + 1, outputs_ta, next_state, next_inputs, next_finished,\n              next_sequence_lengths)\n\n    #print(initial_time, initial_outputs_ta, initial_state, initial_inputs,\n    #        initial_finished, initial_sequence_lengths)\n\n    res = control_flow_ops.while_loop(\n        condition,\n        body,\n        loop_vars=[\n            initial_time, initial_outputs_ta, initial_state, initial_inputs,\n            initial_finished, initial_sequence_lengths,\n        ],\n        parallel_iterations=parallel_iterations,\n        swap_memory=swap_memory)\n\n    final_outputs_ta = res[1]\n    final_state = res[2]\n    final_sequence_lengths = res[5]\n\n    final_outputs = nest.map_structure(lambda ta: ta.stack(), final_outputs_ta)\n\n    try:\n      final_outputs, final_state = decoder.finalize(\n          final_outputs, final_state, final_sequence_lengths)\n    except NotImplementedError:\n      pass\n\n    if not output_time_major:\n      final_outputs = nest.map_structure(_transpose_batch_time, final_outputs)\n\n  return final_outputs, final_state, final_sequence_lengths\n"
  },
  {
    "path": "utils/melt/seq2seq/decoder_fn.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Seq2seq loss operations for use in neural networks.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.util import nest\nfrom tensorflow.python.ops import tensor_array_ops\n\n__all__ = [\"greedy_decoder_fn_inference\"]\n\ndef greedy_decoder_fn_inference(output_fn, first_input, encoder_state, \n                                embeddings, end_of_sequence_id,\n                                maximum_length, num_decoder_symbols, \n                                dtype=dtypes.int32, name=None):\n  \"\"\" Greedy decoder function for a sequence-to-sequence model used in the\n  `dynamic_rnn_decoder`.\n\n  The `greedy_decoder_fn_inference` is a greedy inference function for a\n  sequence-to-sequence model. It should be used when `dynamic_rnn_decoder` is\n  in the inference mode.\n\n  The `greedy_decoder_fn_inference` is called with a set of the user arguments\n  and returns the `decoder_fn`, which can be passed to the\n  `dynamic_rnn_decoder`, such that\n\n  ```\n  dynamic_fn_inference = greedy_decoder_fn_inference(...)\n  outputs_inference, state_inference = dynamic_rnn_decoder(\n      decoder_fn=dynamic_fn_inference, ...)\n  ```\n\n  Further usage can be found in the `kernel_tests/seq2seq_test.py`.\n\n  Args:\n    output_fn: An output function to project your `cell_output` onto class\n    logits.\n\n    An example of an output function;\n\n    ```\n      tf.variable_scope(\"decoder\") as varscope\n        output_fn = lambda x: layers.linear(x, num_decoder_symbols,\n                                            scope=varscope)\n\n        outputs_train, state_train = seq2seq.dynamic_rnn_decoder(...)\n        logits_train = output_fn(outputs_train)\n\n        varscope.reuse_variables()\n        logits_inference, state_inference = seq2seq.dynamic_rnn_decoder(\n            output_fn=output_fn, ...)\n    ```\n\n    If `None` is supplied it will act as an identity function, which\n    might be wanted when using the RNNCell `OutputProjectionWrapper`.\n\n    encoder_state: The encoded state to initialize the `dynamic_rnn_decoder`.\n    embeddings: The embeddings matrix used for the decoder sized\n    `[num_decoder_symbols, embedding_size]`.\n    start_of_sequence_id: The start of sequence ID in the decoder embeddings.\n    end_of_sequence_id: The end of sequence ID in the decoder embeddings.\n    maximum_length: The maximum allowed of time steps to decode.\n    num_decoder_symbols: The number of classes to decode at each time step.\n    dtype: (default: `dtypes.int32`) The default data type to use when\n    handling integer objects.\n    name: (default: `None`) NameScope for the decoder function;\n      defaults to \"greedy_decoder_fn_inference\"\n\n  Returns:\n    A decoder function with the required interface of `dynamic_rnn_decoder`\n    intended for inference.\n  \"\"\"\n  with ops.name_scope(name, \"greedy_decoder_fn_inference\",\n                      [output_fn, first_input, encoder_state, embeddings,\n                       end_of_sequence_id, maximum_length, num_decoder_symbols, dtype]):\n    first_input = ops.convert_to_tensor(first_input, dtypes.float32)\n    end_of_sequence_id = ops.convert_to_tensor(end_of_sequence_id, dtype)\n    maximum_length = ops.convert_to_tensor(maximum_length, dtype)\n    num_decoder_symbols = ops.convert_to_tensor(num_decoder_symbols, dtype)\n    encoder_info = nest.flatten(encoder_state)[0]\n    batch_size = encoder_info.get_shape()[0].value\n    if output_fn is None:\n      output_fn = lambda x: x\n    if batch_size is None:\n      batch_size = array_ops.shape(encoder_info)[0]\n\n  def decoder_fn(time, cell_state, cell_input, cell_output, context_state):\n    \"\"\" Decoder function used in the `dynamic_rnn_decoder` with the purpose of\n    inference.\n\n    The main difference between this decoder function and the `decoder_fn` in\n    `greedy_decoder_fn_train` is how `next_cell_input` is calculated. In this\n    decoder function we calculate the next input by applying an argmax across\n    the feature dimension of the output from the decoder. This is a\n    greedy-search approach. (Bahdanau et al., 2014) & (Sutskever et al., 2014)\n    use beam-search instead.\n\n    Args:\n      time: positive integer constant reflecting the current timestep.\n      cell_state: state of RNNCell.\n      cell_input: input provided by `dynamic_rnn_decoder`.\n      cell_output: output of RNNCell.\n      context_state: context state provided by `dynamic_rnn_decoder`.\n\n    Returns:\n      A tuple (done, next state, next input, emit output, next context state)\n      where:\n\n      done: A boolean vector to indicate which sentences has reached a\n      `end_of_sequence_id`. This is used for early stopping by the\n      `dynamic_rnn_decoder`. When `time>=maximum_length` a boolean vector with\n      all elements as `true` is returned.\n\n      next state: `cell_state`, this decoder function does not modify the\n      given state.\n\n      next input: The embedding from argmax of the `cell_output` is used as\n      `next_input`.\n\n      emit output: If `output_fn is None` the supplied `cell_output` is\n      returned, else the `output_fn` is used to update the `cell_output`\n      before calculating `next_input` and returning `cell_output`.\n\n      next context state: `context_state`, this decoder function does not\n      modify the given context state. The context state could be modified when\n      applying e.g. beam search.\n  \"\"\"\n    with ops.name_scope(name, \"greedy_decoder_fn_inference\",\n                        [time, cell_state, cell_input, cell_output,\n                         context_state]):\n      if cell_input is not None:\n        raise ValueError(\"Expected cell_input to be None, but saw: %s\" %\n                         cell_input)\n      if cell_output is None:\n        # invariant that this is time == 0\n        next_input_id = None\n        done = array_ops.zeros([batch_size,], dtype=dtypes.bool)\n        cell_state = encoder_state\n        cell_output = array_ops.zeros([num_decoder_symbols],\n                                      dtype=dtypes.float32)\n        context_state = tensor_array_ops.TensorArray(\n            #dtype=dtype, tensor_array_name=\"greedy_path\", size=maximum_length + 1, infer_shape=False)\n            dtype=dtype, tensor_array_name=\"greedy_path\", size=0, dynamic_size=True, infer_shape=False)\n      else:\n        cell_output = output_fn(cell_output)\n        next_input_id = math_ops.cast(\n            math_ops.argmax(cell_output, 1), dtype=dtype)\n        \n        done = math_ops.equal(next_input_id, end_of_sequence_id)\n        #done = tf.zeros_like(next_input_id, dtype=tf.bool)\n        context_state = context_state.write(time - 1, next_input_id)\n\n      next_input = array_ops.gather(embeddings, next_input_id) if next_input_id is not None else first_input\n      # if time == maxlen, return all true vector\n      done = control_flow_ops.cond(math_ops.equal(time, maximum_length),\n          lambda: array_ops.ones([batch_size,], dtype=dtypes.bool),\n          lambda: done)\n      return (done, cell_state, next_input, cell_output, context_state)\n  return decoder_fn\n\n"
  },
  {
    "path": "utils/melt/seq2seq/exp/beam_decoder.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   beam_decoder.py\n#        \\author   chenghuige  \n#          \\date   2017-01-16 14:15:32.474973\n#   \\Description  \n# ==============================================================================\n\"\"\"\nNOTICE this is ingraph beam decode as opposed to melt.seq2seq.beam_search which is ougraph beam search\nbut here also not dynamic, just use loop, do all max_steps until stop, for beam search \nactually you can not early stop also since more steps results might be better. \nif length normalizer == 0. then start from same state longer path could not be better.\nso you might look at partial result if it not better then all the done beam then mark it as done TODO\nbut if length normalizer > 0 then.. you can not early stop by theory..\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.util import nest\n\nimport collections\nimport melt\n\ndef rnn_decoder(decoder_inputs, initial_state, cell, loop_function=None,\n                scope=None):\n  \"\"\"RNN decoder for the sequence-to-sequence model.\n     copy from tf contrib but modify a bit add state change\n\n  Args:\n    decoder_inputs: A list of 2D Tensors [batch_size x input_size].\n    initial_state: 2D Tensor with shape [batch_size x cell.state_size].\n    cell: rnn_cell.RNNCell defining the cell function and size.\n    loop_function: If not None, this function will be applied to the i-th output\n      in order to generate the i+1-st input, and decoder_inputs will be ignored,\n      except for the first element (\"GO\" symbol). This can be used for decoding,\n      but also for training to emulate http://arxiv.org/abs/1506.03099.\n      Signature -- loop_function(prev, i) = next\n        * prev is a 2D Tensor of shape [batch_size x output_size],\n        * i is an integer, the step number (when advanced control is needed),\n        * next is a 2D Tensor of shape [batch_size x input_size].\n    scope: VariableScope for the created subgraph; defaults to \"rnn_decoder\".\n\n  Returns:\n    A tuple of the form (outputs, state), where:\n      outputs: A list of the same length as decoder_inputs of 2D Tensors with\n        shape [batch_size x output_size] containing generated outputs.\n      state: The state of each cell at the final time-step.\n        It is a 2D Tensor of shape [batch_size x cell.state_size].\n        (Note that in some cases, like basic RNN cell or GRU cell, outputs and\n         states can be the same. They are different for LSTM cells though.)\n  \"\"\"\n  with variable_scope.variable_scope(scope or \"rnn_decoder\"):\n    state = initial_state\n    outputs = []\n    prev = None\n    for i, inp in enumerate(decoder_inputs):\n      if loop_function is not None and prev is not None:\n        with variable_scope.variable_scope(\"loop_function\", reuse=True):\n          inp, state = loop_function(i, prev, state)\n      if i > 0:\n        variable_scope.get_variable_scope().reuse_variables()\n      output, state = cell(inp, state)\n      outputs.append(output)\n      if loop_function is not None:\n        prev = output\n  return outputs, state\n\n\nclass BeamDecoderOutputs(\n    collections.namedtuple(\"BeamDecoderOutputs\",\n                           (\"paths\", \"scores\", \"decoder\"))):\n  def clone(self, **kwargs):\n    return super(BeamDecoderOutputs, self)._replace(**kwargs)\n\ndef beam_decode(input, max_words, initial_state, cell, loop_function, scope=None,\n                beam_size=7, done_token=0, \n                output_fn=None,  length_normalization_factor=0.,\n                prob_as_score=True, topn=1, need_softmax=True,\n                fast_greedy=False):\n    \"\"\"\n    Beam search decoder\n    copy from https://gist.github.com/igormq/000add00702f09029ea4c30eba976e0a\n    make small modifications, add more comments and add topn support, and \n    length_normalization_factor\n\n    NOTICE!: not dynamic, for loop based here not tf.while_loop, so ingraph but currently static build graph  \n    TODO: consider beam search decoder from https://github.com/google/seq2seq, that implementation might be dynamic!\n    but that implementaion only allow batch size 1, so use batch[beam_size] ?\n\n    TODO:make beam_decode dynamic version, by using named_tuple, and tf.nest_map\n\n    NOTICE! fast_greedy mode not test much, just use fast_greed=False, just to calc topn even topn is 1\n\n    Args:\n      decoder_inputs: A list of 2D Tensors [batch_size x input_size].\n      initial_state: 2D Tensor with shape [batch_size x cell.state_size].\n      cell: rnn_cell.RNNCell defining the cell function and size.\n      loop_function: This function will be applied to the i-th output\n        in order to generate the i+1-st input, and decoder_inputs will be ignored,\n        except for the first element (\"GO\" symbol). \n        Signature -- loop_function(prev_symbol, i) = next\n          * prev_symbol is a 1D Tensor of shape [batch_size*beam_size]\n          * i is an integer, the step number (when advanced control is needed),\n          * next is a 2D Tensor of shape [batch_size*beam_size, input_size].\n      scope: Passed to seq2seq.rnn_decoder\n      beam_size: An integer beam size to use for each example\n      done_token: An integer token that specifies the STOP symbol\n\n      max_words: if max_words == 3, ouputs is as beow, output array len is fixed as 3\n      田地 里 </S> 1.87996e-05\n      [748  21   9] 3\n      [0.10245205285997697, 0.923504919660139, 6.374825504667079e-06]\n      一个 弯着腰 </S> 1.59349e-06\n      [ 10 415   9] 3\n      [0.4947927940753284, 0.04485648322008847, 1.055874923485485e-06] \n      田地 </S> 1.64312e-07\n      [748   9   0] 3\n      \n    Return:\n      A tensor of dimensions [batch_size, len(decoder_inputs)] that corresponds to\n      the 1-best beam for each batch.\n      \n    Known limitations:\n      * The output sequence consisting of only a STOP symbol is not considered\n        (zero-length sequences are not very useful, so this wasn't implemented)\n      * The computation graph this creates is messy and not very well-optimized\n\n    TODO: also return path lengths?\n    \"\"\"\n    decoder = BeamDecoder(input, \n                          #max_words + 2, #take step start from i==1 and need one more additional done token \n                          max_words,  #now max words inclucde done token  This is safe\n                          initial_state, \n                          beam_size=beam_size,\n                          done_token=done_token, \n                          output_fn=output_fn,\n                          length_normalization_factor=length_normalization_factor,\n                          topn=topn,\n                          need_softmax=need_softmax,\n                          fast_greedy=fast_greedy)\n    \n    _ = rnn_decoder(\n            decoder.decoder_inputs,\n            decoder.initial_state,\n            cell=cell,\n            loop_function = lambda i, prev, state: loop_function(i, prev, state, decoder),\n            scope=scope)\n    \n    if fast_greedy:\n      #compat with topn > 1\n      score = tf.expand_dims(decoder.logprobs_finished_beams, 1)\n      path = tf.expand_dims(decoder.finished_beams, 1)\n    else:\n      path, score = decoder.calc_topn()\n    \n    if prob_as_score:\n      score = tf.exp(score)\n\n    outputs = BeamDecoderOutputs(\n                paths=path,\n                scores=score,\n                decoder=decoder)\n\n    return outputs, decoder.final_state\n\n\n#now without beam size 10, about seq->seq 20->4 10w vocab, about 70-100ms, notice the first decode will be slow 400ms+\n#exp in deepiu/textsum/inference/infenrence.sh\n#TODO add alignments history support for ingraph beam search\nclass BeamDecoder():\n  def __init__(self, input, max_steps, initial_state, beam_size=7, done_token=0,\n              batch_size=None, num_classes=None, output_fn=None, \n              length_normalization_factor=0., topn=1, need_softmax=True,\n              fast_greedy=False):\n    self.length_normalization_factor = length_normalization_factor\n    self.topn = topn\n    self.need_softmax = need_softmax\n    self.beam_size = beam_size\n    self.batch_size = batch_size\n    if self.batch_size is None:\n      self.batch_size = tf.shape(input)[0]\n    self.max_len = max_steps\n    self.num_classes = num_classes\n    self.done_token = done_token\n    self.pad_token = 0\n\n    self.output_fn = output_fn\n    \n    self.past_logprobs = None\n    self.past_symbols = None\n\n    self.past_step_logprobs = None\n\n    self.fast_greedy = fast_greedy\n    if self.fast_greedy:\n      self.finished_beams = tf.zeros((self.batch_size, self.max_len), dtype=tf.int32) \n      self.logprobs_finished_beams = tf.ones((self.batch_size,), dtype=tf.float32) * -float('inf')\n    else:\n      self.paths_list = []\n      self.logprobs_list = []\n      self.step_logprobs_list = []\n\n    #for rnn_decoder function need one more step loop, since i== 0 will not output words, take step start from i==1\n    self.decoder_inputs = [None] * (self.max_len + 1) \n    self.decoder_inputs[0] = tf.contrib.seq2seq.tile_batch(input, beam_size)\n\n    self.initial_state = initial_state\n    self.final_state = None\n\n                      \n  def calc_topn(self):\n    #[batch_size, beam_size * (max_len-2)]\n    logprobs = tf.concat(self.logprobs_list, 1)\n\n    #[batch_size, topn]\n    top_logprobs, indices = tf.nn.top_k(logprobs, self.topn)\n\n    #-2 because max_words = max_len - 2  TODO\n    length = self.beam_size * (self.max_len - 2)\n\n    indice_offsets = tf.reshape(\n      (tf.range(self.batch_size * length) // length) * length,\n      [self.batch_size, length])\n\n    indice_offsets = indice_offsets[:, :self.topn]\n\n    #[batch_size, max_len(length index) - 2, beam_size, max_len]\n    paths = tf.concat(self.paths_list, 1)\n    step_logprobs_path = tf.concat(self.step_logprobs_list, 1)\n\n    #top_paths = paths[:, 0:self.topn, 2, :]\n    \n    #paths = tf.reshape(paths, [-1, (self.max_len  - 2) * self.beam_size, self.max_len])\n    #paths = tf.reshape(paths, [self.batch_size, -1, self.max_len])\n\n    paths = tf.reshape(paths, [-1, self.max_len])\n    step_logprobs_path = tf.reshape(step_logprobs_path, [-1, self.max_len])\n\n    top_paths = tf.gather(paths, indice_offsets + indices)\n    top_step_logprobs_path = tf.gather(step_logprobs_path, indice_offsets + indices)\n\n    #log probs history\n    self.log_probs_history = top_step_logprobs_path\n\n    return top_paths, top_logprobs\n\n  def _get_aligments(self, state):\n    attention_size = melt.get_shape(state.alignments, -1)\n    alignments = tf.reshape(state.alignments, [-1, self.beam_size, attention_size])\n    return alignments\n        \n  def take_step(self, i, prev, state):\n    print('-------------i', i)\n    if self.output_fn is not None:\n      #[batch_size * beam_size, num_units] -> [batch_size * beam_size, num_classes]\n      try:\n        output = self.output_fn(prev)\n      except Exception:\n        output = self.output_fn(prev, state)\n    else:\n      output = prev\n\n    self.output = output\n\n    #[batch_size * beam_size, num_classes], here use log sofmax\n    if self.need_softmax:\n      logprobs = tf.nn.log_softmax(output)\n    else:\n      logprobs = tf.log(tf.maximum(output, 1e-12))\n    \n    if self.num_classes is None:\n      self.num_classes = tf.shape(logprobs)[1]\n\n    #->[batch_size, beam_size, num_classes]\n    logprobs_batched = tf.reshape(logprobs,\n                                  [-1, self.beam_size, self.num_classes])\n    logprobs_batched.set_shape((None, self.beam_size, None))\n    \n    # Note: masking out entries to -inf plays poorly with top_k, so just subtract out a large number.\n    nondone_mask = tf.reshape(\n        tf.cast(\n          tf.equal(tf.range(self.num_classes), self.done_token),\n          tf.float32) * -1e18,\n        [1, 1, self.num_classes])\n\n    if self.past_logprobs is None:\n      #[batch_size, beam_size, num_classes] -> [batch_size, num_classes]\n      #-> past_logprobs[batch_size, beam_size], indices[batch_size, beam_size]\n      self.past_logprobs, indices = tf.nn.top_k(\n          (logprobs_batched + nondone_mask)[:, 0, :],\n          self.beam_size)\n      step_logprobs = self.past_logprobs\n    else:\n      #logprobs_batched [batch_size, beam_size, num_classes] -> [batch_size, beam_size, num_classes]  \n      #past_logprobs    [batch_size, beam_size] -> [batch_size, beam_size, 1]\n      step_logprobs_batched = logprobs_batched\n      logprobs_batched = logprobs_batched + tf.expand_dims(self.past_logprobs, 2)\n\n\n      #get [batch_size, beam_size] each\n      self.past_logprobs, indices = tf.nn.top_k(\n          #[batch_size, beam_size * num_classes]\n          tf.reshape(logprobs_batched + nondone_mask, \n                     [-1, self.beam_size * self.num_classes]),\n          self.beam_size)  \n\n      #get current step logprobs [batch_size, beam_size]\n      step_logprobs = tf.gather_nd(tf.reshape(step_logprobs_batched, \n                                              [-1, self.beam_size * self.num_classes]), \n                                   melt.batch_values_to_indices(indices))\n\n    # For continuing to the next symbols [batch_size, beam_size]\n    symbols = indices % self.num_classes\n    #from wich beam it comes  [batch_size, beam_size]\n    parent_refs = indices // self.num_classes\n\n    # NOTE: outputing a zero-length sequence is not supported for simplicity reasons\n    #hasky/jupter/tensorflow/beam-search2.ipynb below for mergeing path\n    #here when i >= 2\n    # tf.reshape(\n    #           (tf.range(3 * 5) // 5) * 5,\n    #           [3, 5]\n    #       ).eval()\n    # array([[ 0,  0,  0,  0,  0],\n    #        [ 5,  5,  5,  5,  5],\n    #        [10, 10, 10, 10, 10]], dtype=int32)\n    parent_refs_offsets = tf.reshape(\n        (tf.range(self.batch_size * self.beam_size) \n         // self.beam_size) * self.beam_size,\n        [self.batch_size, self.beam_size])\n    \n    #[batch_size, beam_size]\n    past_indices = parent_refs + parent_refs_offsets \n    flattened_past_indices = tf.reshape(past_indices, [-1])\n    \n    if self.past_symbols is None:\n      #here when i == 1, when i==0 will not do take step it just do one rnn() get output and use it for i==1 here\n      #here will not need to gather state for inital state of each beam is the same\n      #[batch_size, beam_size] -> [batch_size, beam_size, 1]\n      self.past_symbols = tf.expand_dims(symbols, 2)\n      self.past_step_logprobs = tf.expand_dims(step_logprobs, 2)\n    else:\n      #self.past_symbols [batch_size, beam_size, i - 1] -> past_symbols_batch_major [batch_size * beam_size, i - 1]\n      past_symbols_batch_major = tf.reshape(self.past_symbols, [-1, i-1])\n\n      past_step_logprobs_batch_major = tf.reshape(self.past_step_logprobs, [-1, i - 1])\n     \n\n      #-> [batch_size, beam_size, i - 1]  \n      beam_past_symbols = tf.gather(past_symbols_batch_major,            #[batch_size * beam_size, i - 1]\n                                    past_indices                         #[batch_size, beam_size]\n                                    )\n\n      beam_past_step_logprobs = tf.gather(past_step_logprobs_batch_major, past_indices)\n\n      if not self.fast_greedy:\n        #[batch_size, beam_size, max_len]\n        path = tf.concat([self.past_symbols, \n                          tf.ones_like(tf.expand_dims(symbols, 2)) * self.done_token,\n                          tf.tile(tf.ones_like(tf.expand_dims(symbols, 2)) * self.pad_token, \n                          [1, 1, self.max_len - i])], 2)\n\n        step_logprobs_path = tf.concat([self.past_step_logprobs, \n                                        tf.expand_dims(step_logprobs_batched[:, :, self.done_token], 2),\n                                        tf.tile(tf.ones_like(tf.expand_dims(step_logprobs, 2)) * -float('inf'), \n                                                [1, 1, self.max_len - i])], 2)\n\n        #[batch_size, 1, beam_size, max_len]\n        path = tf.expand_dims(path, 1)\n        step_logprobs_path = tf.expand_dims(step_logprobs_path, 1)\n        self.paths_list.append(path)\n        self.step_logprobs_list.append(step_logprobs_path)\n\n      #[batch_size * beam_size, i - 1] -> [batch_size, bam_size, i] the best beam_size paths until step i\n      self.past_symbols = tf.concat([beam_past_symbols, tf.expand_dims(symbols, 2)], 2)\n      self.past_step_logprobs = tf.concat([beam_past_step_logprobs, tf.expand_dims(step_logprobs, 2)], 2)\n\n      # For finishing the beam \n      #[batch_size, beam_size]\n      logprobs_done = logprobs_batched[:, :, self.done_token]\n      if not self.fast_greedy:\n        self.logprobs_list.append(logprobs_done / i ** self.length_normalization_factor)\n      else:\n        done_parent_refs = tf.cast(tf.argmax(logprobs_done, 1), tf.int32)\n        done_parent_refs_offsets = tf.range(self.batch_size) * self.beam_size\n\n        done_past_symbols = tf.gather(past_symbols_batch_major,\n                                      done_parent_refs + done_parent_refs_offsets)\n\n        #[batch_size, max_len]\n        symbols_done = tf.concat([done_past_symbols,\n                                     tf.ones_like(done_past_symbols[:,0:1]) * self.done_token,\n                                     tf.tile(tf.zeros_like(done_past_symbols[:,0:1]),\n                                             [1, self.max_len - i])\n                                    ], 1)\n\n        #[batch_size, beam_size] -> [batch_size,]\n        logprobs_done_max = tf.reduce_max(logprobs_done, 1)\n      \n        if self.length_normalization_factor > 0:\n          logprobs_done_max /= i ** self.length_normalization_factor\n\n        #[batch_size, max_len]\n        self.finished_beams = tf.where(logprobs_done_max > self.logprobs_finished_beams,\n                                       symbols_done,\n                                       self.finished_beams)\n\n        self.logprobs_finished_beams = tf.maximum(logprobs_done_max, self.logprobs_finished_beams)\n\n    \n    #TODO not support tf.TensorArray right now, can not use aligment_history in attention_wrapper\n    def try_gather(x, indices):\n      #if isinstance(x, tf.Tensor) and x.shape.ndims >= 2:\n      assert isinstance(x, tf.Tensor)\n      if x.shape.ndims >= 2:\n        return tf.gather(x, indices)\n      else:\n        return x\n\n    state = nest.map_structure(lambda x: try_gather(x, flattened_past_indices), state)\n    if hasattr(state, 'alignments'):\n      attention_size = melt.get_shape(state.alignments, -1)\n      alignments = tf.reshape(state.alignments, [-1, self.beam_size, attention_size])\n      print('alignments', alignments)\n\n\n    #->[batch_size * beam_size,]\n    symbols_flat = tf.reshape(symbols, [-1])\n\n    self.final_state = state \n    return symbols_flat, state \n\n"
  },
  {
    "path": "utils/melt/seq2seq/helper.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"A library of helpers for use with SamplingDecoders.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport abc\n\nimport six\n\nfrom tensorflow.contrib.seq2seq.python.ops import decoder\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.layers import base as layers_base\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import embedding_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import random_ops\nfrom tensorflow.python.ops import tensor_array_ops\nfrom tensorflow.python.ops.distributions import bernoulli\nfrom tensorflow.python.ops.distributions import categorical\nfrom tensorflow.python.util import nest\n\nimport tensorflow as tf \n\n__all__ = [\n    \"Helper\",\n    \"TrainingHelper\",\n    \"GreedyEmbeddingHelper\",\n    \"LogProbsGreedyEmbeddingHelper\",\n    \"CustomHelper\",\n    \"ScheduledEmbeddingTrainingHelper\",\n    \"ScheduledOutputTrainingHelper\",\n    \"MultinomialEmbeddingHelper\",\n    \"LoopHelper\",\n]\n\n_transpose_batch_time = decoder._transpose_batch_time  # pylint: disable=protected-access\n\n\ndef _unstack_ta(inp):\n  return tensor_array_ops.TensorArray(\n      dtype=inp.dtype, size=array_ops.shape(inp)[0],\n      element_shape=inp.get_shape()[1:]).unstack(inp)\n\n\n@six.add_metaclass(abc.ABCMeta)\nclass Helper(object):\n  \"\"\"Interface for implementing sampling in seq2seq decoders.\n\n  Helper instances are used by `BasicDecoder`.\n  \"\"\"\n\n  @abc.abstractproperty\n  def batch_size(self):\n    \"\"\"Batch size of tensor returned by `sample`.\n\n    Returns a scalar int32 tensor.\n    \"\"\"\n    raise NotImplementedError(\"batch_size has not been implemented\")\n\n  @abc.abstractmethod\n  def initialize(self, name=None):\n    \"\"\"Returns `(initial_finished, initial_inputs)`.\"\"\"\n    pass\n\n  @abc.abstractmethod\n  def sample(self, time, outputs, state, name=None):\n    \"\"\"Returns `sample_ids`.\"\"\"\n    pass\n\n  @abc.abstractmethod\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    \"\"\"Returns `(finished, next_inputs, next_state)`.\"\"\"\n    pass\n\n\nclass CustomHelper(Helper):\n  \"\"\"Base abstract class that allows the user to customize sampling.\"\"\"\n\n  def __init__(self, initialize_fn, sample_fn, next_inputs_fn):\n    \"\"\"Initializer.\n\n    Args:\n      initialize_fn: callable that returns `(finished, next_inputs)`\n        for the first iteration.\n      sample_fn: callable that takes `(time, outputs, state)`\n        and emits tensor `sample_ids`.\n      next_inputs_fn: callable that takes `(time, outputs, state, sample_ids)`\n        and emits `(finished, next_inputs, next_state)`.\n    \"\"\"\n    self._initialize_fn = initialize_fn\n    self._sample_fn = sample_fn\n    self._next_inputs_fn = next_inputs_fn\n    self._batch_size = None\n\n  @property\n  def batch_size(self):\n    if self._batch_size is None:\n      raise ValueError(\"batch_size accessed before initialize was called\")\n    return self._batch_size\n\n  def initialize(self, name=None):\n    with ops.name_scope(name, \"%sInitialize\" % type(self).__name__):\n      (finished, next_inputs) = self._initialize_fn()\n      if self._batch_size is None:\n        self._batch_size = array_ops.size(finished)\n    return (finished, next_inputs)\n\n  def sample(self, time, outputs, state, name=None):\n    with ops.name_scope(\n        name, \"%sSample\" % type(self).__name__, (time, outputs, state)):\n      return self._sample_fn(time=time, outputs=outputs, state=state)\n\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    with ops.name_scope(\n        name, \"%sNextInputs\" % type(self).__name__, (time, outputs, state)):\n      return self._next_inputs_fn(\n          time=time, outputs=outputs, state=state, sample_ids=sample_ids)\n\n\nclass TrainingHelper(Helper):\n  \"\"\"A helper for use during training.  Only reads inputs.\n\n  Returned sample_ids are the argmax of the RNN output logits.\n  \"\"\"\n\n  def __init__(self, inputs, sequence_length, time_major=False, name=None):\n    \"\"\"Initializer.\n\n    Args:\n      inputs: A (structure of) input tensors.\n      sequence_length: An int32 vector tensor.\n      time_major: Python bool.  Whether the tensors in `inputs` are time major.\n        If `False` (default), they are assumed to be batch major.\n      name: Name scope for any created operations.\n\n    Raises:\n      ValueError: if `sequence_length` is not a 1D tensor.\n    \"\"\"\n    with ops.name_scope(name, \"TrainingHelper\", [inputs, sequence_length]):\n      inputs = ops.convert_to_tensor(inputs, name=\"inputs\")\n      if not time_major:\n        inputs = nest.map_structure(_transpose_batch_time, inputs)\n\n      self._input_tas = nest.map_structure(_unstack_ta, inputs)\n      self._sequence_length = ops.convert_to_tensor(\n          sequence_length, name=\"sequence_length\")\n      if self._sequence_length.get_shape().ndims != 1:\n        raise ValueError(\n            \"Expected sequence_length to be a vector, but received shape: %s\" %\n            self._sequence_length.get_shape())\n\n      self._zero_inputs = nest.map_structure(\n          lambda inp: array_ops.zeros_like(inp[0, :]), inputs)\n\n      self._batch_size = array_ops.size(sequence_length)\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  def initialize(self, name=None):\n    with ops.name_scope(name, \"TrainingHelperInitialize\"):\n      finished = math_ops.equal(0, self._sequence_length)\n      all_finished = math_ops.reduce_all(finished)\n      next_inputs = control_flow_ops.cond(\n          all_finished, lambda: self._zero_inputs,\n          lambda: nest.map_structure(lambda inp: inp.read(0), self._input_tas))\n      return (finished, next_inputs)\n\n  def sample(self, time, outputs, name=None, **unused_kwargs):\n    with ops.name_scope(name, \"TrainingHelperSample\", [time, outputs]):\n      sample_ids = math_ops.cast(\n          math_ops.argmax(outputs, axis=-1), dtypes.int32)\n      return sample_ids\n\n  def next_inputs(self, time, outputs, state, name=None, **unused_kwargs):\n    \"\"\"next_inputs_fn for TrainingHelper.\"\"\"\n    with ops.name_scope(name, \"TrainingHelperNextInputs\",\n                        [time, outputs, state]):\n      next_time = time + 1\n      finished = (next_time >= self._sequence_length)\n      all_finished = math_ops.reduce_all(finished)\n      def read_from_ta(inp):\n        return inp.read(next_time)\n      next_inputs = control_flow_ops.cond(\n          all_finished, lambda: self._zero_inputs,\n          lambda: nest.map_structure(read_from_ta, self._input_tas))\n      return (finished, next_inputs, state)\n\n\nclass ScheduledEmbeddingTrainingHelper(TrainingHelper):\n  \"\"\"A training helper that adds scheduled sampling.\n\n  Returns -1s for sample_ids where no sampling took place; valid sample id\n  values elsewhere.\n  \"\"\"\n\n  def __init__(self, inputs, sequence_length, embedding, sampling_probability,\n               time_major=False, seed=None, scheduling_seed=None, name=None):\n    \"\"\"Initializer.\n\n    Args:\n      inputs: A (structure of) input tensors.\n      sequence_length: An int32 vector tensor.\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\n        or the `params` argument for `embedding_lookup`.\n      sampling_probability: A 0D `float32` tensor: the probability of sampling\n        categorically from the output ids instead of reading directly from the\n        inputs.\n      time_major: Python bool.  Whether the tensors in `inputs` are time major.\n        If `False` (default), they are assumed to be batch major.\n      seed: The sampling seed.\n      scheduling_seed: The schedule decision rule sampling seed.\n      name: Name scope for any created operations.\n\n    Raises:\n      ValueError: if `sampling_probability` is not a scalar or vector.\n    \"\"\"\n    with ops.name_scope(name, \"ScheduledEmbeddingSamplingWrapper\",\n                        [embedding, sampling_probability]):\n      if callable(embedding):\n        self._embedding_fn = embedding\n      else:\n        self._embedding_fn = (\n            lambda ids: embedding_ops.embedding_lookup(embedding, ids))\n      self._sampling_probability = ops.convert_to_tensor(\n          sampling_probability, name=\"sampling_probability\")\n      if self._sampling_probability.get_shape().ndims not in (0, 1):\n        raise ValueError(\n            \"sampling_probability must be either a scalar or a vector. \"\n            \"saw shape: %s\" % (self._sampling_probability.get_shape()))\n      self._seed = seed\n      self._scheduling_seed = scheduling_seed\n      super(ScheduledEmbeddingTrainingHelper, self).__init__(\n          inputs=inputs,\n          sequence_length=sequence_length,\n          time_major=time_major,\n          name=name)\n\n  def initialize(self, name=None):\n    return super(ScheduledEmbeddingTrainingHelper, self).initialize(name=name)\n\n  def sample(self, time, outputs, state, name=None):\n    with ops.name_scope(name, \"ScheduledEmbeddingTrainingHelperSample\",\n                        [time, outputs, state]):\n      # Return -1s where we did not sample, and sample_ids elsewhere\n      select_sample_noise = random_ops.random_uniform(\n          [self.batch_size], seed=self._scheduling_seed)\n      select_sample = (self._sampling_probability > select_sample_noise)\n      sample_id_sampler = categorical.Categorical(logits=outputs)\n      return array_ops.where(\n          select_sample,\n          sample_id_sampler.sample(seed=self._seed),\n          array_ops.tile([-1], [self.batch_size]))\n\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    with ops.name_scope(name, \"ScheduledEmbeddingTrainingHelperSample\",\n                        [time, outputs, state, sample_ids]):\n      (finished, base_next_inputs, state) = (\n          super(ScheduledEmbeddingTrainingHelper, self).next_inputs(\n              time=time,\n              outputs=outputs,\n              state=state,\n              sample_ids=sample_ids,\n              name=name))\n\n      def maybe_sample():\n        \"\"\"Perform scheduled sampling.\"\"\"\n        where_sampling = math_ops.cast(\n            array_ops.where(sample_ids > -1), dtypes.int32)\n        where_not_sampling = math_ops.cast(\n            array_ops.where(sample_ids <= -1), dtypes.int32)\n        where_sampling_flat = array_ops.reshape(where_sampling, [-1])\n        where_not_sampling_flat = array_ops.reshape(where_not_sampling, [-1])\n        sample_ids_sampling = array_ops.gather(sample_ids, where_sampling_flat)\n        inputs_not_sampling = array_ops.gather(\n            base_next_inputs, where_not_sampling_flat)\n        sampled_next_inputs = self._embedding_fn(sample_ids_sampling)\n        base_shape = array_ops.shape(base_next_inputs)\n        return (array_ops.scatter_nd(indices=where_sampling,\n                                     updates=sampled_next_inputs,\n                                     shape=base_shape)\n                + array_ops.scatter_nd(indices=where_not_sampling,\n                                       updates=inputs_not_sampling,\n                                       shape=base_shape))\n\n      all_finished = math_ops.reduce_all(finished)\n      next_inputs = control_flow_ops.cond(\n          all_finished, lambda: base_next_inputs, maybe_sample)\n      return (finished, next_inputs, state)\n\n\nclass ScheduledOutputTrainingHelper(TrainingHelper):\n  \"\"\"A training helper that adds scheduled sampling directly to outputs.\n\n  Returns False for sample_ids where no sampling took place; True elsewhere.\n  \"\"\"\n\n  def __init__(self, inputs, sequence_length, sampling_probability,\n               time_major=False, seed=None, next_input_layer=None,\n               auxiliary_inputs=None, name=None):\n    \"\"\"Initializer.\n\n    Args:\n      inputs: A (structure) of input tensors.\n      sequence_length: An int32 vector tensor.\n      sampling_probability: A 0D `float32` tensor: the probability of sampling\n        from the outputs instead of reading directly from the inputs.\n      time_major: Python bool.  Whether the tensors in `inputs` are time major.\n        If `False` (default), they are assumed to be batch major.\n      seed: The sampling seed.\n      next_input_layer: (Optional) An instance of `tf.layers.Layer`, i.e.,\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output to create\n        the next input.\n      auxiliary_inputs: An optional (structure of) auxiliary input tensors with\n        a shape that matches `inputs` in all but (potentially) the final\n        dimension. These tensors will be concatenated to the sampled output or\n        the `inputs` when not sampling for use as the next input.\n      name: Name scope for any created operations.\n\n    Raises:\n      ValueError: if `sampling_probability` is not a scalar or vector.\n    \"\"\"\n    with ops.name_scope(name, \"ScheduledOutputTrainingHelper\",\n                        [inputs, auxiliary_inputs, sampling_probability]):\n      self._sampling_probability = ops.convert_to_tensor(\n          sampling_probability, name=\"sampling_probability\")\n      if self._sampling_probability.get_shape().ndims not in (0, 1):\n        raise ValueError(\n            \"sampling_probability must be either a scalar or a vector. \"\n            \"saw shape: %s\" % (self._sampling_probability.get_shape()))\n\n      if auxiliary_inputs is None:\n        maybe_concatenated_inputs = inputs\n      else:\n        inputs = ops.convert_to_tensor(inputs, name=\"inputs\")\n        auxiliary_inputs = ops.convert_to_tensor(\n            auxiliary_inputs, name=\"auxiliary_inputs\")\n        maybe_concatenated_inputs = nest.map_structure(\n            lambda x, y: array_ops.concat((x, y), -1),\n            inputs, auxiliary_inputs)\n        if not time_major:\n          auxiliary_inputs = nest.map_structure(\n              _transpose_batch_time, auxiliary_inputs)\n\n      self._auxiliary_input_tas = (\n          nest.map_structure(_unstack_ta, auxiliary_inputs)\n          if auxiliary_inputs is not None else None)\n\n      self._seed = seed\n\n      if (next_input_layer is not None and not isinstance(next_input_layer,\n                                                          layers_base.Layer)):\n        raise TypeError(\"next_input_layer must be a Layer, received: %s\" %\n                        type(next_input_layer))\n      self._next_input_layer = next_input_layer\n\n      super(ScheduledOutputTrainingHelper, self).__init__(\n          inputs=maybe_concatenated_inputs,\n          sequence_length=sequence_length,\n          time_major=time_major,\n          name=name)\n\n  def initialize(self, name=None):\n    return super(ScheduledOutputTrainingHelper, self).initialize(name=name)\n\n  def sample(self, time, outputs, state, name=None):\n    with ops.name_scope(name, \"ScheduledOutputTrainingHelperSample\",\n                        [time, outputs, state]):\n      sampler = bernoulli.Bernoulli(probs=self._sampling_probability)\n      return math_ops.cast(\n          sampler.sample(sample_shape=self.batch_size, seed=self._seed),\n          dtypes.bool)\n\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    with ops.name_scope(name, \"ScheduledOutputTrainingHelperNextInputs\",\n                        [time, outputs, state, sample_ids]):\n      (finished, base_next_inputs, state) = (\n          super(ScheduledOutputTrainingHelper, self).next_inputs(\n              time=time,\n              outputs=outputs,\n              state=state,\n              sample_ids=sample_ids,\n              name=name))\n\n      def maybe_sample():\n        \"\"\"Perform scheduled sampling.\"\"\"\n\n        def maybe_concatenate_auxiliary_inputs(outputs_, indices=None):\n          \"\"\"Concatenate outputs with auxiliary inputs, if they exist.\"\"\"\n          if self._auxiliary_input_tas is None:\n            return outputs_\n\n          next_time = time + 1\n          auxiliary_inputs = nest.map_structure(\n              lambda ta: ta.read(next_time), self._auxiliary_input_tas)\n          if indices is not None:\n            auxiliary_inputs = array_ops.gather_nd(auxiliary_inputs, indices)\n          return nest.map_structure(\n              lambda x, y: array_ops.concat((x, y), -1),\n              outputs_, auxiliary_inputs)\n\n        if self._next_input_layer is None:\n          return array_ops.where(\n              sample_ids, maybe_concatenate_auxiliary_inputs(outputs),\n              base_next_inputs)\n\n        where_sampling = math_ops.cast(\n            array_ops.where(sample_ids), dtypes.int32)\n        where_not_sampling = math_ops.cast(\n            array_ops.where(math_ops.logical_not(sample_ids)), dtypes.int32)\n        outputs_sampling = array_ops.gather_nd(outputs, where_sampling)\n        inputs_not_sampling = array_ops.gather_nd(base_next_inputs,\n                                                  where_not_sampling)\n        sampled_next_inputs = maybe_concatenate_auxiliary_inputs(\n            self._next_input_layer(outputs_sampling), where_sampling)\n\n        base_shape = array_ops.shape(base_next_inputs)\n        return (array_ops.scatter_nd(indices=where_sampling,\n                                     updates=sampled_next_inputs,\n                                     shape=base_shape)\n                + array_ops.scatter_nd(indices=where_not_sampling,\n                                       updates=inputs_not_sampling,\n                                       shape=base_shape))\n\n      all_finished = math_ops.reduce_all(finished)\n      no_samples = math_ops.logical_not(math_ops.reduce_any(sample_ids))\n      next_inputs = control_flow_ops.cond(\n          math_ops.logical_or(all_finished, no_samples),\n          lambda: base_next_inputs, maybe_sample)\n      return (finished, next_inputs, state)\n\n\nclass GreedyEmbeddingHelper(Helper):\n  \"\"\"A helper for use during inference.\n\n  Uses the argmax of the output (treated as logits) and passes the\n  result through an embedding layer to get the next input.\n  \"\"\"\n\n  def __init__(self, embedding, first_input, end_token):\n    \"\"\"Initializer.\n\n    Args:\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\n        or the `params` argument for `embedding_lookup`. The returned tensor\n        will be passed to the decoder input.\n      start_tokens: `int32` vector shaped `[batch_size]`, the start tokens.\n      end_token: `int32` scalar, the token that marks end of decoding.\n\n    Raises:\n      ValueError: if `start_tokens` is not a 1D tensor or `end_token` is not a\n        scalar.\n    \"\"\"\n    if callable(embedding):\n      self._embedding_fn = embedding\n    else:\n      self._embedding_fn = (\n          lambda ids: embedding_ops.embedding_lookup(embedding, ids))\n\n    self._end_token = ops.convert_to_tensor(\n        end_token, dtype=dtypes.int32, name=\"end_token\")\n    self._batch_size = array_ops.shape(first_input)[0]\n    self._start_inputs = first_input\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  def initialize(self, name=None):\n    finished = array_ops.tile([False], [self._batch_size])\n    return (finished, self._start_inputs)\n\n  def sample(self, time, outputs, state, name=None):\n    \"\"\"sample for GreedyEmbeddingHelper.\"\"\"\n    del time, state  # unused by sample_fn\n    # Outputs are logits, use argmax to get the most probable id\n    if not isinstance(outputs, ops.Tensor):\n      raise TypeError(\"Expected outputs to be a single Tensor, got: %s\" %\n                      type(outputs))\n    sample_ids = math_ops.cast(\n        math_ops.argmax(outputs, axis=-1), dtypes.int32)\n    return sample_ids\n\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    \"\"\"next_inputs_fn for GreedyEmbeddingHelper.\"\"\"\n    del time, outputs  # unused by next_inputs_fn\n    finished = math_ops.equal(sample_ids, self._end_token)\n    all_finished = math_ops.reduce_all(finished)\n    next_inputs = control_flow_ops.cond(\n        all_finished,\n        # If we're finished, the next_inputs value doesn't matter\n        lambda: self._start_inputs,\n        lambda: self._embedding_fn(sample_ids))\n    return (finished, next_inputs, state)\n\nclass LogProbsGreedyEmbeddingHelper(Helper):\n  \"\"\"A helper for use during inference.\n\n  Uses the argmax of the output (treated as logits) and passes the\n  result through an embedding layer to get the next input.\n  \"\"\"\n\n  def __init__(self, embedding, first_input, end_token, need_softmax=True):\n    \"\"\"Initializer.\n\n    Args:\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\n        or the `params` argument for `embedding_lookup`. The returned tensor\n        will be passed to the decoder input.\n      start_tokens: `int32` vector shaped `[batch_size]`, the start tokens.\n      end_token: `int32` scalar, the token that marks end of decoding.\n\n    Raises:\n      ValueError: if `start_tokens` is not a 1D tensor or `end_token` is not a\n        scalar.\n    \"\"\"\n    if callable(embedding):\n      self._embedding_fn = embedding\n    else:\n      self._embedding_fn = (\n          lambda ids: embedding_ops.embedding_lookup(embedding, ids))\n\n    self._end_token = ops.convert_to_tensor(\n        end_token, dtype=dtypes.int32, name=\"end_token\")\n    self._batch_size = array_ops.shape(first_input)[0]\n    self._start_inputs = first_input\n    self._need_softmax = need_softmax\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  def initialize(self, name=None):\n    finished = array_ops.tile([False], [self._batch_size])\n    return (finished, self._start_inputs)\n\n  def sample(self, time, outputs, state, name=None):\n    \"\"\"sample for GreedyEmbeddingHelper.\"\"\"\n    del time, state  # unused by sample_fn\n    # Outputs are logits, use argmax to get the most probable id\n    if not isinstance(outputs, ops.Tensor):\n      raise TypeError(\"Expected outputs to be a single Tensor, got: %s\" %\n                      type(outputs))\n  \n    if self._need_softmax:\n      log_probs = tf.nn.log_softmax(outputs)\n    else:\n      log_probs = tf.log(tf.maximum(outputs, 1e-12))\n\n    sample_log_probs, sample_ids = tf.nn.top_k(log_probs)\n    sample_ids = tf.reshape(sample_ids, [self.batch_size,])\n    sample_ids = tf.to_int32(sample_ids)\n    sample_log_probs = tf.reshape(sample_log_probs, [self.batch_size,])\n\n    return sample_ids, sample_log_probs\n\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    \"\"\"next_inputs_fn for GreedyEmbeddingHelper.\"\"\"\n    del time, outputs  # unused by next_inputs_fn\n    finished = math_ops.equal(sample_ids, self._end_token)\n    all_finished = math_ops.reduce_all(finished)\n    next_inputs = control_flow_ops.cond(\n        all_finished,\n        # If we're finished, the next_inputs value doesn't matter\n        lambda: self._start_inputs,\n        lambda: self._embedding_fn(sample_ids))\n    return (finished, next_inputs, state)\n\n#--chg add\nclass MultinomialEmbeddingHelper(Helper):\n  \"\"\"A helper for use during inference.\n\n  Uses the argmax of the output (treated as logits) and passes the\n  result through an embedding layer to get the next input.\n  \"\"\"\n\n  def __init__(self, embedding, first_input, end_token, need_softmax=True):\n    \"\"\"Initializer.\n\n    Args:\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\n        or the `params` argument for `embedding_lookup`. The returned tensor\n        will be passed to the decoder input.\n      start_tokens: `int32` vector shaped `[batch_size]`, the start tokens.\n      end_token: `int32` scalar, the token that marks end of decoding.\n\n    Raises:\n      ValueError: if `start_tokens` is not a 1D tensor or `end_token` is not a\n        scalar.\n    \"\"\"\n    if callable(embedding):\n      self._embedding_fn = embedding\n    else:\n      self._embedding_fn = (\n          lambda ids: embedding_ops.embedding_lookup(embedding, ids))\n\n    self._end_token = ops.convert_to_tensor(\n        end_token, dtype=dtypes.int32, name=\"end_token\")\n    self._batch_size = array_ops.shape(first_input)[0]\n    self._start_inputs = first_input\n\n    self._need_softmax = need_softmax\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  def initialize(self, name=None):\n    finished = array_ops.tile([False], [self._batch_size])\n    return (finished, self._start_inputs)\n\n  def sample(self, time, outputs, state, name=None):\n    \"\"\"sample for GreedyEmbeddingHelper.\"\"\"\n    del time, state  # unused by sample_fn\n    # Outputs are logits, use argmax to get the most probable id\n    if not isinstance(outputs, ops.Tensor):\n      raise TypeError(\"Expected outputs to be a single Tensor, got: %s\" %\n                      type(outputs))\n  \n    if self._need_softmax:\n      log_probs = tf.nn.log_softmax(outputs)\n    else:\n      log_probs = tf.log(tf.maximum(outputs, 1e-12))\n\n    #sample_ids = tf.multinomial(log_probs, 1)\n    sample_ids = tf.multinomial(outputs, 1)\n    \n    sample_ids = tf.reshape(sample_ids, [self.batch_size,])\n    sample_ids = tf.to_int32(sample_ids)   \n    \n    batch_nums = tf.range(0, limit=self.batch_size) # shape (batch_size)\n    step_indices = tf.stack((batch_nums, sample_ids), axis=1) # shape (batch_size, 2)\n    sample_log_probs = tf.gather_nd(log_probs, step_indices) # shape (batch_size). loss on this step for each batch\n    sample_log_probs = tf.reshape(sample_log_probs, [self.batch_size,])\n\n    return sample_ids, sample_log_probs\n\n  def next_inputs(self, time, outputs, state, sample_ids, name=None):\n    \"\"\"next_inputs_fn for GreedyEmbeddingHelper.\"\"\"\n    del time, outputs  # unused by next_inputs_fn\n    finished = math_ops.equal(sample_ids, self._end_token)\n    all_finished = math_ops.reduce_all(finished)\n    next_inputs = control_flow_ops.cond(\n        all_finished,\n        # If we're finished, the next_inputs value doesn't matter\n        lambda: self._start_inputs,\n        lambda: self._embedding_fn(sample_ids))\n    return (finished, next_inputs, state)\n\n\nclass LoopHelper(Helper):\n  \"\"\"A helper for use during training.  Only reads inputs.\n\n  Returned sample_ids are the argmax of the RNN output logits.\n  \"\"\"\n\n  def __init__(self, inputs, sequence_length, time_major=False, name=None):\n    \"\"\"Initializer.\n\n    Args:\n      inputs: A (structure of) input tensors.\n      sequence_length: An int32 vector tensor.\n      time_major: Python bool.  Whether the tensors in `inputs` are time major.\n        If `False` (default), they are assumed to be batch major.\n      name: Name scope for any created operations.\n\n    Raises:\n      ValueError: if `sequence_length` is not a 1D tensor.\n    \"\"\"\n    with ops.name_scope(name, \"LoopHelper\", [inputs, sequence_length]):\n      inputs = ops.convert_to_tensor(inputs, name=\"inputs\")\n      if not time_major:\n        inputs = nest.map_structure(_transpose_batch_time, inputs)\n\n      self._input_tas = nest.map_structure(_unstack_ta, inputs)\n      self._sequence_length = ops.convert_to_tensor(\n          sequence_length, name=\"sequence_length\")\n      if self._sequence_length.get_shape().ndims != 1:\n        raise ValueError(\n            \"Expected sequence_length to be a vector, but received shape: %s\" %\n            self._sequence_length.get_shape())\n\n      self._zero_inputs = nest.map_structure(\n          lambda inp: array_ops.zeros_like(inp[0, :]), inputs)\n\n      self._batch_size = array_ops.size(sequence_length)\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  def initialize(self, name=None):\n    with ops.name_scope(name, \"LoopHelperInitialize\"):\n      finished = math_ops.equal(0, self._sequence_length)\n      all_finished = math_ops.reduce_all(finished)\n      next_inputs = control_flow_ops.cond(\n          all_finished, lambda: self._zero_inputs,\n          lambda: nest.map_structure(lambda inp: inp.read(0), self._input_tas))\n      return (finished, next_inputs)\n\n  def sample(self, time, outputs, name=None, **unused_kwargs):\n    with ops.name_scope(name, \"LoopHelperSample\", [time, outputs]):\n      return 0\n\n  def next_inputs(self, time, outputs, state, name=None, **unused_kwargs):\n    \"\"\"next_inputs_fn for TrainingHelper.\"\"\"\n    with ops.name_scope(name, \"LoopHelperNextInputs\",\n                        [time, outputs, state]):\n      next_time = time + 1\n      finished = (next_time >= self._sequence_length)\n      #all_finished = math_ops.reduce_all(finished)\n      #next_inputs = outputs.rnn_output\n      #next_inputs = 0\n      next_inputs = outputs\n      return (finished, next_inputs, state)"
  },
  {
    "path": "utils/melt/seq2seq/legacy/beam_decoder.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   beam_decoder.py\n#        \\author   chenghuige  \n#          \\date   2017-01-16 14:15:32.474973\n#   \\Description  \n# ==============================================================================\n\"\"\"\nNOTICE this is ingraph beam decode as opposed to melt.seq2seq.beam_search which is ougraph beam search\nbut here also not dynamic, just use loop, do all max_steps until stop, for beam search \nactually you can not early stop also since more steps results might be better. \nif length normalizer == 0. then start from same state longer path could not be better.\nso you might look at partial result if it not better then all the done beam then mark it as done TODO\nbut if length normalizer > 0 then.. you can not early stop by theory..\n\"\"\"\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.util import nest\n\nimport collections\nimport melt\n\ndef rnn_decoder(decoder_inputs, initial_state, cell, loop_function=None,\n                scope=None):\n  \"\"\"RNN decoder for the sequence-to-sequence model.\n     copy from tf contrib but modify a bit add state change\n\n  Args:\n    decoder_inputs: A list of 2D Tensors [batch_size x input_size].\n    initial_state: 2D Tensor with shape [batch_size x cell.state_size].\n    cell: rnn_cell.RNNCell defining the cell function and size.\n    loop_function: If not None, this function will be applied to the i-th output\n      in order to generate the i+1-st input, and decoder_inputs will be ignored,\n      except for the first element (\"GO\" symbol). This can be used for decoding,\n      but also for training to emulate http://arxiv.org/abs/1506.03099.\n      Signature -- loop_function(prev, i) = next\n        * prev is a 2D Tensor of shape [batch_size x output_size],\n        * i is an integer, the step number (when advanced control is needed),\n        * next is a 2D Tensor of shape [batch_size x input_size].\n    scope: VariableScope for the created subgraph; defaults to \"rnn_decoder\".\n\n  Returns:\n    A tuple of the form (outputs, state), where:\n      outputs: A list of the same length as decoder_inputs of 2D Tensors with\n        shape [batch_size x output_size] containing generated outputs.\n      state: The state of each cell at the final time-step.\n        It is a 2D Tensor of shape [batch_size x cell.state_size].\n        (Note that in some cases, like basic RNN cell or GRU cell, outputs and\n         states can be the same. They are different for LSTM cells though.)\n  \"\"\"\n  with variable_scope.variable_scope(scope or \"rnn_decoder\"):\n    state = initial_state\n    outputs = []\n    prev = None\n    for i, inp in enumerate(decoder_inputs):\n      if loop_function is not None and prev is not None:\n        with variable_scope.variable_scope(\"loop_function\", reuse=True):\n          inp, state = loop_function(i, prev, state)\n      if i > 0:\n        variable_scope.get_variable_scope().reuse_variables()\n      output, state = cell(inp, state)\n      outputs.append(output)\n      if loop_function is not None:\n        prev = output\n  return outputs, state\n\n\nclass BeamDecoderOutputs(\n    collections.namedtuple(\"BeamDecoderOutputs\",\n                           (\"paths\", \"scores\", \"decoder\"))):\n  def clone(self, **kwargs):\n    return super(BeamDecoderOutputs, self)._replace(**kwargs)\n\ndef beam_decode(input, max_words, initial_state, cell, loop_function, scope=None,\n                beam_size=7, done_token=0, \n                output_fn=None,  length_normalization_factor=0.,\n                prob_as_score=True, topn=1, need_softmax=True,\n                fast_greedy=False):\n    \"\"\"\n    Beam search decoder\n    copy from https://gist.github.com/igormq/000add00702f09029ea4c30eba976e0a\n    make small modifications, add more comments and add topn support, and \n    length_normalization_factor\n\n    NOTICE!: not dynamic, for loop based here not tf.while_loop, so ingraph but currently static build graph  \n    TODO: consider beam search decoder from https://github.com/google/seq2seq, that implementation might be dynamic!\n    but that implementaion only allow batch size 1, so use batch[beam_size] ?\n\n    TODO:make beam_decode dynamic version, by using named_tuple, and tf.nest_map\n\n    NOTICE! fast_greedy mode not test much, just use fast_greed=False, just to calc topn even topn is 1\n\n    Args:\n      decoder_inputs: A list of 2D Tensors [batch_size x input_size].\n      initial_state: 2D Tensor with shape [batch_size x cell.state_size].\n      cell: rnn_cell.RNNCell defining the cell function and size.\n      loop_function: This function will be applied to the i-th output\n        in order to generate the i+1-st input, and decoder_inputs will be ignored,\n        except for the first element (\"GO\" symbol). \n        Signature -- loop_function(prev_symbol, i) = next\n          * prev_symbol is a 1D Tensor of shape [batch_size*beam_size]\n          * i is an integer, the step number (when advanced control is needed),\n          * next is a 2D Tensor of shape [batch_size*beam_size, input_size].\n      scope: Passed to seq2seq.rnn_decoder\n      beam_size: An integer beam size to use for each example\n      done_token: An integer token that specifies the STOP symbol\n\n      max_words: if max_words == 3, ouputs is as beow, output array len is fixed as 3\n      田地 里 </S> 1.87996e-05\n      [748  21   9] 3\n      [0.10245205285997697, 0.923504919660139, 6.374825504667079e-06]\n      一个 弯着腰 </S> 1.59349e-06\n      [ 10 415   9] 3\n      [0.4947927940753284, 0.04485648322008847, 1.055874923485485e-06] \n      田地 </S> 1.64312e-07\n      [748   9   0] 3\n      \n    Return:\n      A tensor of dimensions [batch_size, len(decoder_inputs)] that corresponds to\n      the 1-best beam for each batch.\n      \n    Known limitations:\n      * The output sequence consisting of only a STOP symbol is not considered\n        (zero-length sequences are not very useful, so this wasn't implemented)\n      * The computation graph this creates is messy and not very well-optimized\n\n    TODO: also return path lengths?\n    \"\"\"\n    decoder = BeamDecoder(input, \n                          #max_words + 2, #take step start from i==1 and need one more additional done token \n                          max_words,  #now max words inclucde done token  This is safe\n                          initial_state, \n                          beam_size=beam_size,\n                          done_token=done_token, \n                          output_fn=output_fn,\n                          length_normalization_factor=length_normalization_factor,\n                          topn=topn,\n                          need_softmax=need_softmax,\n                          fast_greedy=fast_greedy)\n    \n    _ = rnn_decoder(\n            decoder.decoder_inputs,\n            decoder.initial_state,\n            cell=cell,\n            loop_function = lambda i, prev, state: loop_function(i, prev, state, decoder),\n            scope=scope)\n    \n    if fast_greedy:\n      #compat with topn > 1\n      score = tf.expand_dims(decoder.logprobs_finished_beams, 1)\n      path = tf.expand_dims(decoder.finished_beams, 1)\n    else:\n      path, score = decoder.calc_topn()\n    \n    if prob_as_score:\n      score = tf.exp(score)\n\n    outputs = BeamDecoderOutputs(\n                paths=path,\n                scores=score,\n                decoder=decoder)\n\n    return outputs, decoder.final_state\n\n\n#now without beam size 10, about seq->seq 20->4 10w vocab, about 70-100ms, notice the first decode will be slow 400ms+\n#exp in deepiu/textsum/inference/infenrence.sh\n#TODO add alignments history support for ingraph beam search\nclass BeamDecoder():\n  def __init__(self, input, max_steps, initial_state, beam_size=7, done_token=0,\n              batch_size=None, num_classes=None, output_fn=None, \n              length_normalization_factor=0., topn=1, need_softmax=True,\n              fast_greedy=False):\n    self.length_normalization_factor = length_normalization_factor\n    self.topn = topn\n    self.need_softmax = need_softmax\n    self.beam_size = beam_size\n    self.batch_size = batch_size\n    if self.batch_size is None:\n      self.batch_size = tf.shape(input)[0]\n    self.max_len = max_steps\n    self.num_classes = num_classes\n    self.done_token = done_token\n    self.pad_token = 0\n\n    self.output_fn = output_fn\n    \n    self.past_logprobs = None\n    self.past_symbols = None\n\n    self.past_step_logprobs = None\n\n    self.fast_greedy = fast_greedy\n    if self.fast_greedy:\n      self.finished_beams = tf.zeros((self.batch_size, self.max_len), dtype=tf.int32) \n      self.logprobs_finished_beams = tf.ones((self.batch_size,), dtype=tf.float32) * -float('inf')\n    else:\n      self.paths_list = []\n      self.logprobs_list = []\n      self.step_logprobs_list = []\n\n    #for rnn_decoder function need one more step loop, since i== 0 will not output words, take step start from i==1\n    self.decoder_inputs = [None] * (self.max_len + 1) \n    self.decoder_inputs[0] = tf.contrib.seq2seq.tile_batch(input, beam_size)\n\n    self.initial_state = initial_state\n    self.final_state = None\n\n                      \n  def calc_topn(self):\n    #[batch_size, beam_size * (max_len-2)]\n    logprobs = tf.concat(self.logprobs_list, 1)\n\n    #[batch_size, topn]\n    top_logprobs, indices = tf.nn.top_k(logprobs, self.topn)\n\n    #-2 because max_words = max_len - 2  TODO\n    length = self.beam_size * (self.max_len - 2)\n\n    indice_offsets = tf.reshape(\n      (tf.range(self.batch_size * length) // length) * length,\n      [self.batch_size, length])\n\n    indice_offsets = indice_offsets[:, :self.topn]\n\n    #[batch_size, max_len(length index) - 2, beam_size, max_len]\n    paths = tf.concat(self.paths_list, 1)\n    step_logprobs_path = tf.concat(self.step_logprobs_list, 1)\n\n    #top_paths = paths[:, 0:self.topn, 2, :]\n    \n    #paths = tf.reshape(paths, [-1, (self.max_len  - 2) * self.beam_size, self.max_len])\n    #paths = tf.reshape(paths, [self.batch_size, -1, self.max_len])\n\n    paths = tf.reshape(paths, [-1, self.max_len])\n    step_logprobs_path = tf.reshape(step_logprobs_path, [-1, self.max_len])\n\n    top_paths = tf.gather(paths, indice_offsets + indices)\n    top_step_logprobs_path = tf.gather(step_logprobs_path, indice_offsets + indices)\n\n    #log probs history\n    self.log_probs_history = top_step_logprobs_path\n\n    return top_paths, top_logprobs\n\n  def _get_aligments(self, state):\n    attention_size = melt.get_shape(state.alignments, -1)\n    alignments = tf.reshape(state.alignments, [-1, self.beam_size, attention_size])\n    return alignments\n        \n  def take_step(self, i, prev, state):\n    print('-------------i', i)\n    if self.output_fn is not None:\n      #[batch_size * beam_size, num_units] -> [batch_size * beam_size, num_classes]\n      try:\n        output = self.output_fn(prev)\n      except Exception:\n        output = self.output_fn(prev, state)\n    else:\n      output = prev\n\n    self.output = output\n\n    #[batch_size * beam_size, num_classes], here use log sofmax\n    if self.need_softmax:\n      logprobs = tf.nn.log_softmax(output)\n    else:\n      logprobs = tf.log(tf.maximum(output, 1e-12))\n    \n    if self.num_classes is None:\n      self.num_classes = tf.shape(logprobs)[1]\n\n    #->[batch_size, beam_size, num_classes]\n    logprobs_batched = tf.reshape(logprobs,\n                                  [-1, self.beam_size, self.num_classes])\n    logprobs_batched.set_shape((None, self.beam_size, None))\n    \n    # Note: masking out entries to -inf plays poorly with top_k, so just subtract out a large number.\n    nondone_mask = tf.reshape(\n        tf.cast(\n          tf.equal(tf.range(self.num_classes), self.done_token),\n          tf.float32) * -1e18,\n        [1, 1, self.num_classes])\n\n    if self.past_logprobs is None:\n      #[batch_size, beam_size, num_classes] -> [batch_size, num_classes]\n      #-> past_logprobs[batch_size, beam_size], indices[batch_size, beam_size]\n      self.past_logprobs, indices = tf.nn.top_k(\n          (logprobs_batched + nondone_mask)[:, 0, :],\n          self.beam_size)\n      step_logprobs = self.past_logprobs\n    else:\n      #logprobs_batched [batch_size, beam_size, num_classes] -> [batch_size, beam_size, num_classes]  \n      #past_logprobs    [batch_size, beam_size] -> [batch_size, beam_size, 1]\n      step_logprobs_batched = logprobs_batched\n      logprobs_batched = logprobs_batched + tf.expand_dims(self.past_logprobs, 2)\n\n\n      #get [batch_size, beam_size] each\n      self.past_logprobs, indices = tf.nn.top_k(\n          #[batch_size, beam_size * num_classes]\n          tf.reshape(logprobs_batched + nondone_mask, \n                     [-1, self.beam_size * self.num_classes]),\n          self.beam_size)  \n\n      #get current step logprobs [batch_size, beam_size]\n      step_logprobs = tf.gather_nd(tf.reshape(step_logprobs_batched, \n                                              [-1, self.beam_size * self.num_classes]), \n                                   melt.batch_values_to_indices(indices))\n\n    # For continuing to the next symbols [batch_size, beam_size]\n    symbols = indices % self.num_classes\n    #from wich beam it comes  [batch_size, beam_size]\n    parent_refs = indices // self.num_classes\n    \n    if self.past_symbols is None:\n      #here when i == 1, when i==0 will not do take step it just do one rnn() get output and use it for i==1 here\n      #here will not need to gather state for inital state of each beam is the same\n      #[batch_size, beam_size] -> [batch_size, beam_size, 1]\n      self.past_symbols = tf.expand_dims(symbols, 2)\n      self.past_step_logprobs = tf.expand_dims(step_logprobs, 2)\n    else:\n      # NOTE: outputing a zero-length sequence is not supported for simplicity reasons\n      #hasky/jupter/tensorflow/beam-search2.ipynb below for mergeing path\n      #here when i >= 2\n      # tf.reshape(\n      #           (tf.range(3 * 5) // 5) * 5,\n      #           [3, 5]\n      #       ).eval()\n      # array([[ 0,  0,  0,  0,  0],\n      #        [ 5,  5,  5,  5,  5],\n      #        [10, 10, 10, 10, 10]], dtype=int32)\n      parent_refs_offsets = tf.reshape(\n          (tf.range(self.batch_size * self.beam_size) \n           // self.beam_size) * self.beam_size,\n          [self.batch_size, self.beam_size])\n      \n      #self.past_symbols [batch_size, beam_size, i - 1] -> past_symbols_batch_major [batch_size * beam_size, i - 1]\n      past_symbols_batch_major = tf.reshape(self.past_symbols, [-1, i-1])\n\n      past_step_logprobs_batch_major = tf.reshape(self.past_step_logprobs, [-1, i - 1])\n     \n      #[batch_size, beam_size]\n      past_indices = parent_refs + parent_refs_offsets \n      #-> [batch_size, beam_size, i - 1]  \n      beam_past_symbols = tf.gather(past_symbols_batch_major,            #[batch_size * beam_size, i - 1]\n                                    past_indices                         #[batch_size, beam_size]\n                                    )\n\n      beam_past_step_logprobs = tf.gather(past_step_logprobs_batch_major, past_indices)\n\n      #we must also choose corresponding past state as new start\n      past_indices = tf.reshape(past_indices, [-1])\n\n      #TODO not support tf.TensorArray right now, can not use aligment_history in attention_wrapper\n      def try_gather(x, indices):\n        #if isinstance(x, tf.Tensor) and x.shape.ndims >= 2:\n        assert isinstance(x, tf.Tensor)\n        if x.shape.ndims >= 2:\n          return tf.gather(x, indices)\n        else:\n          return x\n\n      state = nest.map_structure(lambda x: try_gather(x, past_indices), state)\n\n      if hasattr(state, 'alignments'):\n        attention_size = melt.get_shape(state.alignments, -1)\n        alignments = tf.reshape(state.alignments, [-1, self.beam_size, attention_size])\n        print('alignments', alignments)\n\n      if not self.fast_greedy:\n        #[batch_size, beam_size, max_len]\n        path = tf.concat([self.past_symbols, \n                          tf.ones_like(tf.expand_dims(symbols, 2)) * self.done_token,\n                          tf.tile(tf.ones_like(tf.expand_dims(symbols, 2)) * self.pad_token, \n                          [1, 1, self.max_len - i])], 2)\n\n        step_logprobs_path = tf.concat([self.past_step_logprobs, \n                                        tf.expand_dims(step_logprobs_batched[:, :, self.done_token], 2),\n                                        tf.tile(tf.ones_like(tf.expand_dims(step_logprobs, 2)) * -float('inf'), \n                                                [1, 1, self.max_len - i])], 2)\n\n        #[batch_size, 1, beam_size, max_len]\n        path = tf.expand_dims(path, 1)\n        step_logprobs_path = tf.expand_dims(step_logprobs_path, 1)\n        self.paths_list.append(path)\n        self.step_logprobs_list.append(step_logprobs_path)\n\n      #[batch_size * beam_size, i - 1] -> [batch_size, bam_size, i] the best beam_size paths until step i\n      self.past_symbols = tf.concat([beam_past_symbols, tf.expand_dims(symbols, 2)], 2)\n      self.past_step_logprobs = tf.concat([beam_past_step_logprobs, tf.expand_dims(step_logprobs, 2)], 2)\n\n      # For finishing the beam \n      #[batch_size, beam_size]\n      logprobs_done = logprobs_batched[:, :, self.done_token]\n      if not self.fast_greedy:\n        self.logprobs_list.append(logprobs_done / i ** self.length_normalization_factor)\n      else:\n        done_parent_refs = tf.cast(tf.argmax(logprobs_done, 1), tf.int32)\n        done_parent_refs_offsets = tf.range(self.batch_size) * self.beam_size\n\n        done_past_symbols = tf.gather(past_symbols_batch_major,\n                                      done_parent_refs + done_parent_refs_offsets)\n\n        #[batch_size, max_len]\n        symbols_done = tf.concat([done_past_symbols,\n                                     tf.ones_like(done_past_symbols[:,0:1]) * self.done_token,\n                                     tf.tile(tf.zeros_like(done_past_symbols[:,0:1]),\n                                             [1, self.max_len - i])\n                                    ], 1)\n\n        #[batch_size, beam_size] -> [batch_size,]\n        logprobs_done_max = tf.reduce_max(logprobs_done, 1)\n      \n        if self.length_normalization_factor > 0:\n          logprobs_done_max /= i ** self.length_normalization_factor\n\n        #[batch_size, max_len]\n        self.finished_beams = tf.where(logprobs_done_max > self.logprobs_finished_beams,\n                                       symbols_done,\n                                       self.finished_beams)\n\n        self.logprobs_finished_beams = tf.maximum(logprobs_done_max, self.logprobs_finished_beams)\n\n    #->[batch_size * beam_size,]\n    symbols_flat = tf.reshape(symbols, [-1])\n\n    self.final_state = state \n    return symbols_flat, state \n\n"
  },
  {
    "path": "utils/melt/seq2seq/legacy/beam_search_decoder.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"A decoder that performs beam search.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\n\nfrom tensorflow.contrib.seq2seq.python.ops import beam_search_ops\nfrom tensorflow.contrib.seq2seq.python.ops import decoder\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.framework import tensor_util\nfrom tensorflow.python.layers import base as layers_base\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import embedding_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import rnn_cell_impl\nfrom tensorflow.python.ops import tensor_array_ops\nfrom tensorflow.python.util import nest\n\nimport tensorflow as tf\n\n__all__ = [\n    \"BeamSearchDecoderOutput\",\n    \"BeamSearchDecoderState\",\n    \"BeamSearchDecoder\",\n    \"FinalBeamSearchDecoderOutput\",\n    \"tile_batch\",\n]\n\n\nclass BeamSearchDecoderState(\n    collections.namedtuple(\"BeamSearchDecoderState\", (\"cell_state\", \"log_probs\",\n                                                      \"finished\", \"lengths\"))):\n  pass\n\n\nclass BeamSearchDecoderOutput(\n    collections.namedtuple(\"BeamSearchDecoderOutput\",\n                           (\"scores\", \"predicted_ids\", \"parent_ids\"))):\n  pass\n\n\nclass FinalBeamSearchDecoderOutput(\n    collections.namedtuple(\"FinalBeamDecoderOutput\",\n                           [\"predicted_ids\", \"beam_search_decoder_output\"])):\n  \"\"\"Final outputs returned by the beam search after all decoding is finished.\n\n  Args:\n    predicted_ids: The final prediction. A tensor of shape\n      `[T, batch_size, beam_width]`.\n    beam_search_output: An instance of `BeamSearchDecoderOutput` that describes\n      the state of the beam search.\n  \"\"\"\n  pass\n\n\ndef tile_batch(t, multiplier, name=None):\n  \"\"\"Tile the batch dimension of tensor t.\n\n  This function takes a tensor t shaped `[batch_size, s0, s1, ...]` composed of\n  minibatch entries `t[0], ..., t[batch_size - 1]` and tiles it to have a shape\n  `[batch_size * multiplier, s0, s1, ...]` composed of minibatch entries\n  `t[0], t[0], ..., t[1], t[1], ...` where each minibatch entry is repeated\n  `multiplier` times.\n\n  Args:\n    t: `Tensor` shaped `[batch_size, ...]`.\n    multiplier: Python int.\n    name: Name scope for any created operations.\n\n  Returns:\n    A `Tensor` shaped `[batch_size * multiplier, ...]`.\n\n  Raises:\n    ValueError: if `t` does not have a statically known rank or it's < 1.\n  \"\"\"\n  with ops.name_scope(name, \"tile_batch\", [t, multiplier]):\n    t = ops.convert_to_tensor(t, name=\"t\")\n    shape_t = array_ops.shape(t)\n    if t.shape.ndims is None or t.shape.ndims < 1:\n      raise ValueError(\"t must have statically known rank\")\n    tiling = [1] * (t.shape.ndims + 1)\n    tiling[1] = multiplier\n    tiled_static_batch_size = (\n        t.shape[0].value * multiplier if t.shape[0].value is not None else None)\n    tiled = array_ops.tile(array_ops.expand_dims(t, 1), tiling)\n    tiled = array_ops.reshape(\n        tiled, array_ops.concat(([shape_t[0] * multiplier], shape_t[1:]), 0))\n    tiled.set_shape(\n        tensor_shape.TensorShape(\n            [tiled_static_batch_size]).concatenate(t.shape[1:]))\n    return tiled\n\n\nclass BeamSearchDecoder(decoder.Decoder):\n  \"\"\"BeamSearch sampling decoder.\"\"\"\n\n  def __init__(self,\n               cell,\n               embedding,\n               first_input,\n               end_token,\n               initial_state,\n               beam_width,\n               vocab_size=None,\n               output_fn=None,\n               length_penalty_weight=0.0):\n    \"\"\"Initialize BeamSearchDecoder.\n\n    Args:\n      cell: An `RNNCell` instance.\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\n        or the `params` argument for `embedding_lookup`.\n      start_tokens: `int32` vector shaped `[batch_size]`, the start tokens.\n      end_token: `int32` scalar, the token that marks end of decoding.\n      initial_state: A (possibly nested tuple of...) tensors and TensorArrays.\n      beam_width:  Python integer, the number of beams.\n      output_layer: (Optional) An instance of `tf.layers.Layer`, i.e.,\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output prior\n        to storing the result or sampling.\n      length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\n\n    Raises:\n      TypeError: if `cell` is not an instance of `RNNCell`,\n        or `output_layer` is not an instance of `tf.layers.Layer`.\n      ValueError: If `start_tokens` is not a vector or\n        `end_token` is not a scalar.\n    \"\"\"\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\n      raise TypeError(\"cell must be an RNNCell, received: %s\" % type(cell))\n\n    self._cell = cell\n    self._output_layer = output_fn\n\n    if callable(embedding):\n      self._embedding_fn = embedding\n    else:\n      self._embedding_fn = (\n          lambda ids: embedding_ops.embedding_lookup(embedding, ids))\n\n    self._end_token = ops.convert_to_tensor(\n        end_token, dtype=dtypes.int32, name=\"end_token\")\n    if self._end_token.get_shape().ndims != 0:\n      raise ValueError(\"end_token must be a scalar\")\n\n    self._batch_size = first_input.shape[0].value\n    if self._batch_size is None:\n      self._batch_size = array_ops.shape(first_input)[0]\n\n    self._beam_width = beam_width\n    self._length_penalty_weight = length_penalty_weight\n    self._initial_cell_state = nest.map_structure(\n        self._maybe_split_batch_beams,\n        initial_state, self._cell.state_size)\n    self._start_inputs = array_ops.tile(\n        array_ops.expand_dims(first_input, 1), [1, self._beam_width, 1])\n    self._finished = array_ops.zeros(\n        [self._batch_size, self._beam_width], dtype=dtypes.bool)\n\n  @property\n  def batch_size(self):\n    return self._batch_size\n\n  @property\n  def output_size(self):\n    # Return the cell output and the id\n    return BeamSearchDecoderOutput(\n        scores=tensor_shape.TensorShape([self._beam_width]),\n        predicted_ids=tensor_shape.TensorShape([self._beam_width]),\n        parent_ids=tensor_shape.TensorShape([self._beam_width]))\n\n  @property\n  def output_dtype(self):\n    # Assume the dtype of the cell is the output_size structure\n    # containing the input_state's first component's dtype.\n    # Return that structure and int32 (the id)\n    dtype = nest.flatten(self._initial_cell_state)[0].dtype\n    return BeamSearchDecoderOutput(\n        scores=dtypes.float32,\n        predicted_ids=dtypes.int32,\n        parent_ids=dtypes.int32)\n\n  def initialize(self, name=None):\n    \"\"\"Initialize the decoder.\n\n    Args:\n      name: Name scope for any created operations.\n\n    Returns:\n      `(finished, start_inputs, initial_state)`.\n    \"\"\"\n    finished, start_inputs = self._finished, self._start_inputs\n\n    initial_state = BeamSearchDecoderState(\n        cell_state=self._initial_cell_state,\n        log_probs=array_ops.zeros(\n            [self._batch_size, self._beam_width],\n            dtype=nest.flatten(self._initial_cell_state)[0].dtype),\n        finished=finished,\n        lengths=array_ops.zeros(\n            [self._batch_size, self._beam_width], dtype=dtypes.int32))\n\n    return (finished, start_inputs, initial_state)\n\n  def finalize(self, outputs, final_state, sequence_lengths):\n    \"\"\"Finalize and return the predicted_ids.\n\n    Args:\n      outputs: An instance of BeamSearchDecoderOutput.\n      final_state: An instance of BeamSearchDecoderState. Passed through to the\n        output.\n      sequence_lengths: An `int32` tensor shaped `[batch_size, beam_width]`.\n        The sequence lengths determined for each beam during decode.\n\n    Returns:\n      outputs: An instance of FinalBeamSearchDecoderOutput where the\n        predicted_ids are the result of calling _gather_tree.\n      final_state: The same input instance of BeamSearchDecoderState.\n    \"\"\"\n    predicted_ids = beam_search_ops.gather_tree(\n        outputs.predicted_ids, outputs.parent_ids,\n        sequence_length=sequence_lengths)\n    outputs = FinalBeamSearchDecoderOutput(\n        beam_search_decoder_output=outputs, predicted_ids=predicted_ids)\n    return outputs, final_state\n\n  def _merge_batch_beams(self, t, s=None):\n    \"\"\"Merges the tensor from a batch of beams into a batch by beams.\n\n    More exactly, t is a tensor of dimension [batch_size, beam_width, s]. We\n    reshape this into [batch_size*beam_width, s]\n\n    Args:\n      t: Tensor of dimension [batch_size, beam_width, s]\n      s: (Possibly known) depth shape.\n\n    Returns:\n      A reshaped version of t with dimension [batch_size * beam_width, s].\n    \"\"\"\n    if isinstance(s, ops.Tensor):\n      s = tensor_util.constant_value_as_shape(s)\n    else:\n      s = tensor_shape.TensorShape(s)\n    t_shape = array_ops.shape(t)\n    if isinstance(self._batch_size, tf.Tensor):\n      static_batch_size = tensor_util.constant_value(self._batch_size)\n    else:\n      static_batch_size = self._batch_size\n    batch_size_beam_width = (\n        None if static_batch_size is None\n        else static_batch_size * self._beam_width)\n    reshaped_t = array_ops.reshape(\n        t, array_ops.concat(\n            ([self._batch_size * self._beam_width], t_shape[2:]), 0))\n    reshaped_t.set_shape(\n        (tensor_shape.TensorShape([batch_size_beam_width]).concatenate(s)))\n    return reshaped_t\n\n  def _split_batch_beams(self, t, s=None):\n    \"\"\"Splits the tensor from a batch by beams into a batch of beams.\n\n    More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We\n    reshape this into [batch_size, beam_width, s]\n\n    Args:\n      t: Tensor of dimension [batch_size*beam_width, s].\n      s: (Possibly known) depth shape.\n\n    Returns:\n      A reshaped version of t with dimension [batch_size, beam_width, s].\n\n    Raises:\n      ValueError: If, after reshaping, the new tensor is not shaped\n        `[batch_size, beam_width, s]` (assuming batch_size and beam_width\n        are known statically).\n    \"\"\"\n    if isinstance(s, ops.Tensor):\n      s = tensor_util.constant_value_as_shape(s)\n    else:\n      s = tensor_shape.TensorShape(s)\n    t_shape = array_ops.shape(t)\n    reshaped_t = array_ops.reshape(\n        t, array_ops.concat(\n            ([self._batch_size, self._beam_width], t_shape[1:]), 0))\n    if isinstance(self._batch_size, tf.Tensor):\n      static_batch_size = tensor_util.constant_value(self._batch_size)\n    else:\n      static_batch_size = self._batch_size\n    expected_reshaped_shape = tensor_shape.TensorShape(\n        [static_batch_size, self._beam_width]).concatenate(s)\n    if not reshaped_t.shape.is_compatible_with(expected_reshaped_shape):\n      raise ValueError(\"Unexpected behavior when reshaping between beam width \"\n                       \"and batch size.  The reshaped tensor has shape: %s.  \"\n                       \"We expected it to have shape \"\n                       \"(batch_size, beam_width, depth) == %s.  Perhaps you \"\n                       \"forgot to create a zero_state with \"\n                       \"batch_size=encoder_batch_size * beam_width?\"\n                       % (reshaped_t.shape, expected_reshaped_shape))\n    reshaped_t.set_shape(expected_reshaped_shape)\n    return reshaped_t\n\n  def _maybe_split_batch_beams(self, t, s):\n    \"\"\"Maybe splits the tensor from a batch by beams into a batch of beams.\n\n    We do this so that we can use nest and not run into problems with shapes.\n\n    Args:\n      t: Tensor of dimension [batch_size*beam_width, s]\n      s: Tensor, Python int, or TensorShape.\n\n    Returns:\n      Either a reshaped version of t with dimension\n      [batch_size, beam_width, s] if t's first dimension is of size\n      batch_size*beam_width or t if not.\n\n    Raises:\n      TypeError: If t is an instance of TensorArray.\n      ValueError: If the rank of t is not statically known.\n    \"\"\"\n    if isinstance(t, tensor_array_ops.TensorArray):\n      raise TypeError(\n          \"TensorArray state is not supported by BeamSearchDecoder: %s\"\n          % t.name)\n    if t.shape.ndims is None:\n      raise ValueError(\n          \"Expected tensor (%s) to have known rank, but ndims == None.\" % t)\n    if t.shape.ndims >= 1:\n      return self._split_batch_beams(t, s)\n    else:\n      return t\n\n  def _maybe_merge_batch_beams(self, t, s):\n    \"\"\"Splits the tensor from a batch by beams into a batch of beams.\n\n    More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We\n    reshape this into [batch_size, beam_width, s]\n\n    Args:\n      t: Tensor of dimension [batch_size*beam_width, s]\n      s: Tensor, Python int, or TensorShape.\n\n    Returns:\n      A reshaped version of t with dimension [batch_size, beam_width, s].\n\n    Raises:\n      TypeError: If t is an instance of TensorArray.\n      ValueError:  If the rank of t is not statically known.\n    \"\"\"\n    if isinstance(t, tensor_array_ops.TensorArray):\n      raise TypeError(\n          \"TensorArray state is not supported by BeamSearchDecoder: %s\"\n          % t.name)\n    if t.shape.ndims is None:\n      raise ValueError(\n          \"Expected tensor (%s) to have known rank, but ndims == None.\" % t)\n    if t.shape.ndims >= 2:\n      return self._merge_batch_beams(t, s)\n    else:\n      return t\n\n  def step(self, time, inputs, state, name=None):\n    \"\"\"Perform a decoding step.\n\n    Args:\n      time: scalar `int32` tensor.\n      inputs: A (structure of) input tensors.\n      state: A (structure of) state tensors and TensorArrays.\n      name: Name scope for any created operations.\n\n    Returns:\n      `(outputs, next_state, next_inputs, finished)`.\n    \"\"\"\n    batch_size = self._batch_size\n    beam_width = self._beam_width\n    end_token = self._end_token\n    length_penalty_weight = self._length_penalty_weight\n\n    with ops.name_scope(name, \"BeamSearchDecoderStep\", (time, inputs, state)):\n      cell_state = state.cell_state\n      inputs = nest.map_structure(\n          lambda inp: self._merge_batch_beams(inp, s=inp.shape[2:]), inputs)\n      cell_state = nest.map_structure(\n          self._maybe_merge_batch_beams,\n          cell_state, self._cell.state_size)\n      cell_outputs, next_cell_state = self._cell(inputs, cell_state)\n\n      cell_outputs = nest.map_structure(\n          lambda out: self._split_batch_beams(out, out.shape[1:]), cell_outputs)\n      next_cell_state = nest.map_structure(\n          self._maybe_split_batch_beams,\n          next_cell_state, self._cell.state_size)\n\n      if self._output_layer is not None:\n        cell_outputs = self._output_layer(cell_outputs)\n\n      beam_search_output, beam_search_state = _beam_search_step(\n          time=time,\n          logits=cell_outputs,\n          beam_state=state,\n          batch_size=batch_size,\n          beam_width=beam_width,\n          end_token=end_token,\n          length_penalty_weight=length_penalty_weight)\n      finished = beam_search_state.finished\n      sample_ids = beam_search_output.predicted_ids\n      next_inputs = control_flow_ops.cond(\n          math_ops.reduce_all(finished), lambda: self._start_inputs,\n          lambda: self._embedding_fn(sample_ids))\n\n    return (beam_search_output, beam_search_state, next_inputs, finished)\n\n\ndef _beam_search_step(time, logits, beam_state, batch_size, beam_width,\n                      end_token, length_penalty_weight):\n  \"\"\"Performs a single step of Beam Search Decoding.\n\n  Args:\n    time: Beam search time step, should start at 0. At time 0 we assume\n      that all beams are equal and consider only the first beam for\n      continuations.\n    logits: Logits at the current time step. A tensor of shape\n      `[batch_size, beam_width, vocab_size]`\n    beam_state: Current state of the beam search.\n      An instance of `BeamSearchDecoderState`.\n    batch_size: The batch size for this input.\n    beam_width: Python int.  The size of the beams.\n    end_token: The int32 end token.\n    length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\n\n  Returns:\n    A new beam state.\n  \"\"\"\n  #TODO why need constant_value ??\n  if isinstance(batch_size, tf.Tensor):\n    static_batch_size = tensor_util.constant_value(batch_size)\n  else:\n    static_batch_size = batch_size\n\n  # Calculate the current lengths of the predictions\n  prediction_lengths = beam_state.lengths\n  previously_finished = beam_state.finished\n\n  # Calculate the total log probs for the new hypotheses\n  # Final Shape: [batch_size, beam_width, vocab_size]\n  step_log_probs = nn_ops.log_softmax(logits)\n  step_log_probs = _mask_probs(step_log_probs, end_token, previously_finished)\n  total_probs = array_ops.expand_dims(beam_state.log_probs, 2) + step_log_probs\n\n  # Calculate the continuation lengths by adding to all continuing beams.\n  vocab_size = logits.shape[-1].value\n  lengths_to_add = array_ops.one_hot(\n      indices=array_ops.tile(\n          array_ops.reshape(end_token, [1, 1]), [batch_size, beam_width]),\n      depth=vocab_size,\n      on_value=0,\n      off_value=1)\n  add_mask = (1 - math_ops.to_int32(previously_finished))\n  lengths_to_add = array_ops.expand_dims(add_mask, 2) * lengths_to_add\n  new_prediction_lengths = (\n      lengths_to_add + array_ops.expand_dims(prediction_lengths, 2))\n\n  # Calculate the scores for each beam\n  scores = _get_scores(\n      log_probs=total_probs,\n      sequence_lengths=new_prediction_lengths,\n      length_penalty_weight=length_penalty_weight)\n\n  time = ops.convert_to_tensor(time, name=\"time\")\n  # During the first time step we only consider the initial beam\n  scores_shape = array_ops.shape(scores)\n  scores_flat = control_flow_ops.cond(\n      time > 0,\n      lambda: array_ops.reshape(scores, [batch_size, -1]),\n      lambda: scores[:, 0])\n  num_available_beam = control_flow_ops.cond(\n      time > 0, lambda: math_ops.reduce_prod(scores_shape[1:]),\n      lambda: math_ops.reduce_prod(scores_shape[2:]))\n\n  # Pick the next beams according to the specified successors function\n  next_beam_size = math_ops.minimum(\n      ops.convert_to_tensor(beam_width, dtype=dtypes.int32, name=\"beam_width\"),\n      num_available_beam)\n  next_beam_scores, word_indices = nn_ops.top_k(scores_flat, k=next_beam_size)\n  next_beam_scores.set_shape([static_batch_size, beam_width])\n  word_indices.set_shape([static_batch_size, beam_width])\n\n  # Pick out the probs, beam_ids, and states according to the chosen predictions\n  next_beam_probs = _tensor_gather_helper(\n      gather_indices=word_indices,\n      gather_from=total_probs,\n      range_input=batch_size,\n      range_size=beam_width * vocab_size,\n      final_shape=[static_batch_size, beam_width])\n\n  next_word_ids = math_ops.to_int32(word_indices % vocab_size)\n  next_beam_ids = math_ops.to_int32(word_indices / vocab_size)\n\n  # Append new ids to current predictions\n  previously_finished = _tensor_gather_helper(\n      gather_indices=next_beam_ids,\n      gather_from=previously_finished,\n      range_input=batch_size,\n      range_size=beam_width,\n      final_shape=[static_batch_size, beam_width])\n  next_finished = math_ops.logical_or(previously_finished,\n                                      math_ops.equal(next_word_ids, end_token))\n\n  # Calculate the length of the next predictions.\n  # 1. Finished beams remain unchanged\n  # 2. Beams that are now finished (EOS predicted) remain unchanged\n  # 3. Beams that are not yet finished have their length increased by 1\n  lengths_to_add = math_ops.to_int32(\n      math_ops.not_equal(next_word_ids, end_token))\n  lengths_to_add = (1 - math_ops.to_int32(next_finished)) * lengths_to_add\n  next_prediction_len = _tensor_gather_helper(\n      gather_indices=next_beam_ids,\n      gather_from=beam_state.lengths,\n      range_input=batch_size,\n      range_size=beam_width,\n      final_shape=[static_batch_size, beam_width])\n  next_prediction_len += lengths_to_add\n\n  next_state = BeamSearchDecoderState(\n      cell_state=beam_state.cell_state,\n      log_probs=next_beam_probs,\n      lengths=next_prediction_len,\n      finished=next_finished)\n\n  output = BeamSearchDecoderOutput(\n      scores=next_beam_scores,\n      predicted_ids=next_word_ids,\n      parent_ids=next_beam_ids)\n\n  return output, next_state\n\n\ndef _get_scores(log_probs, sequence_lengths, length_penalty_weight):\n  \"\"\"Calculates scores for beam search hypotheses.\n\n  Args:\n    log_probs: The log probabilities with shape\n      `[batch_size, beam_width, vocab_size]`.\n    sequence_lengths: The array of sequence lengths.\n    length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\n\n  Returns:\n    The scores normalized by the length_penalty.\n  \"\"\"\n  length_penality_ = _length_penalty(\n      sequence_lengths=sequence_lengths, penalty_factor=length_penalty_weight)\n  return log_probs / length_penality_\n\n\ndef _length_penalty(sequence_lengths, penalty_factor):\n  \"\"\"Calculates the length penalty. See https://arxiv.org/abs/1609.08144.\n\n  Args:\n    sequence_lengths: The sequence length of all hypotheses, a tensor\n      of shape [beam_size, vocab_size].\n    penalty_factor: A scalar that weights the length penalty.\n\n  Returns:\n    The length penalty factor, a tensor fo shape [beam_size].\n  \"\"\"\n  penalty_factor = ops.convert_to_tensor(penalty_factor, name=\"penalty_factor\")\n  penalty_factor.set_shape(())  # penalty should be a scalar.\n  static_penalty = tensor_util.constant_value(penalty_factor)\n  if static_penalty is not None and static_penalty == 0:\n    return 1.0\n  return math_ops.div((5. + math_ops.to_float(sequence_lengths))\n                      **penalty_factor, (5. + 1.)**penalty_factor)\n\n\ndef _mask_probs(probs, eos_token, finished):\n  \"\"\"Masks log probabilities.\n\n  The result is that finished beams allocate all probability mass to eos and\n  unfinished beams remain unchanged.\n\n  Args:\n    probs: Log probabiltiies of shape `[batch_size, beam_width, vocab_size]`\n    eos_token: An int32 id corresponding to the EOS token to allocate\n      probability to.\n    finished: A boolean tensor of shape `[batch_size, beam_width]` that\n      specifies which\n      elements in the beam are finished already.\n\n  Returns:\n    A tensor of shape `[batch_size, beam_width, vocab_size]`, where unfinished\n    beams stay unchanged and finished beams are replaced with a tensor with all\n    probability on the EOS token.\n  \"\"\"\n  vocab_size = array_ops.shape(probs)[2]\n  finished_mask = array_ops.expand_dims(\n      math_ops.to_float(1. - math_ops.to_float(finished)), 2)\n  # These examples are not finished and we leave them\n  non_finished_examples = finished_mask * probs\n  # All finished examples are replaced with a vector that has all\n  # probability on EOS\n  finished_row = array_ops.one_hot(\n      eos_token,\n      vocab_size,\n      dtype=probs.dtype,\n      on_value=0.,\n      off_value=probs.dtype.min)\n  finished_examples = (1. - finished_mask) * finished_row\n  return finished_examples + non_finished_examples\n\n\ndef _tensor_gather_helper(gather_indices, gather_from, range_input, range_size,\n                          final_shape):\n  range_ = array_ops.expand_dims(math_ops.range(range_input) * range_size, 1)\n  gather_indices = array_ops.reshape(gather_indices + range_, [-1])\n  output = array_ops.gather(\n      array_ops.reshape(gather_from, [-1]), gather_indices)\n  output = array_ops.reshape(output, final_shape)\n  output.set_shape(final_shape)\n  return output\n"
  },
  {
    "path": "utils/melt/seq2seq/logprobs_decoder.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"A class of Decoders that may sample to generate the next input.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport collections\n\nfrom tensorflow.contrib.seq2seq.python.ops import decoder\n#from tensorflow.contrib.seq2seq.python.ops import helper as helper_py\nfrom melt.seq2seq import helper as helper_py\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.framework import tensor_shape\nfrom tensorflow.python.layers import base as layers_base\nfrom tensorflow.python.ops import rnn_cell_impl\nfrom tensorflow.python.util import nest\nfrom tensorflow.python.ops import array_ops\n\n\nimport tensorflow as tf \n\n__all__ = [\n    #\"LogProbsDecoderOutput\",\n    \"LogProbsDecoderState\",\n    \"LogProbsDecoder\",\n]\n\n##TODO why wrong .. ValueError: Inconsistent shapes: saw (?, 10148) but expected (?,) (and infer_shape=True)\n##Object was never used (type <class 'tensorflow.python.ops.tensor_array_ops.TensorArray'>):\n##<tensorflow.python.ops.tensor_array_ops.TensorArray object at 0x9c97a10>\n\nclass LogProbsDecoderOutput(\n    collections.namedtuple(\"LogProbsDecoderOutput\", (\"rnn_output\", \"sample_id\", \"log_probs\"))):\n  pass\n\n# class BasicDecoderOutput(\n#     collections.namedtuple(\"BasicDecoderOutput\", (\"rnn_output\", \"sample_id\"))):\n#   pass\n\nclass LogProbsDecoderState(\n    collections.namedtuple(\"LogProbsDecoderState\", (\"cell_state\", \"log_probs\"))):\n  pass\n\nclass LogProbsDecoder(decoder.Decoder):\n  \"\"\"Basic sampling decoder.\"\"\"\n\n  def __init__(self, cell, helper, initial_state, vocab_size=None, output_fn=None):\n    \"\"\"Initialize BasicDecoder.\n\n    Args:\n      cell: An `RNNCell` instance.\n      helper: A `Helper` instance.\n      initial_state: A (possibly nested tuple of...) tensors and TensorArrays.\n        The initial state of the RNNCell.\n      output_fn: (Optional) An instance of `tf.layers.Layer`, i.e.,\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output prior\n        to storing the result or sampling.\n\n    Raises:\n      TypeError: if `cell`, `helper` or `output_fn` have an incorrect type.\n    \"\"\"\n    if not isinstance(cell, rnn_cell_impl.RNNCell):\n      raise TypeError(\"cell must be an RNNCell, received: %s\" % type(cell))\n    #if not isinstance(helper, helper_py.Helper):\n    #  raise TypeError(\"helper must be a Helper, received: %s\" % type(helper))\n\n    self._cell = cell\n    self._helper = helper\n    self._initial_state = initial_state\n\n    self._output_fn = None\n    if vocab_size is not None:\n      if output_fn is not None:\n        self._output_fn = output_fn\n      else:\n        self._output_fn = lambda cell_output: tf.contrib.layers.fully_connected(\n          inputs=cell_output, \n          num_outputs=vocab_size, \n          activation_fn=None)\n\n    self._vocab_size = vocab_size\n\n    self._output_size = self._vocab_size if self._vocab_size is not None else self._cell.output_size\n\n  @property\n  def batch_size(self):\n    return self._helper.batch_size\n\n  @property\n  def output_size(self):\n    return LogProbsDecoderOutput(\n        rnn_output=self._output_size,\n        sample_id=tf.TensorShape([]),\n        log_probs=tf.TensorShape([]))\n\n  @property\n  def output_dtype(self):\n    return LogProbsDecoderOutput(\n        rnn_output=tf.float32,\n        sample_id=tf.int32,\n        log_probs=tf.float32)\n\n  # @property\n  # def output_size(self):\n  #   return BasicDecoderOutput(\n  #       rnn_output=self._output_size,\n  #       sample_id=tf.TensorShape([]))\n\n  # @property\n  # def output_dtype(self):\n  #   return BasicDecoderOutput(\n  #       rnn_output=tf.float32,\n  #       sample_id=tf.int32)\n\n  def initialize(self, name=None):\n    \"\"\"Initialize the decoder.\n\n    Args:\n      name: Name scope for any created operations.\n\n    Returns:\n      `(finished, first_inputs, initial_state)`.\n    \"\"\"\n    initial_state = LogProbsDecoderState(\n        cell_state=self._initial_state,\n        log_probs=array_ops.zeros(\n            [self.batch_size,],\n            dtype=nest.flatten(self._initial_state)[0].dtype))\n    return self._helper.initialize() + (initial_state,)\n\n  def step(self, time, inputs, state, name=None):\n    \"\"\"Perform a decoding step.\n\n    Args:\n      time: scalar `int32` tensor.\n      inputs: A (structure of) input tensors.\n      state: A (structure of) state tensors and TensorArrays.\n      name: Name scope for any created operations.\n\n    Returns:\n      `(outputs, next_state, next_inputs, finished)`.\n    \"\"\"\n    with ops.name_scope(name, \"LogProbsDecoderStep\", (time, inputs, state)):\n      cell_outputs, cell_state = self._cell(inputs, state.cell_state)\n      if self._output_fn is not None:\n        try:\n          cell_outputs = self._output_fn(cell_outputs)\n        except Exception:\n          try:\n            cell_outputs = self._output_fn(cell_outputs, cell_state)\n          except Exception:\n            cell_outputs = self._output_fn(time, cell_outputs, cell_state)\n\n      sample_ids, log_probs = self._helper.sample(\n          time=time, outputs=cell_outputs, state=cell_state)\n\n      next_state = LogProbsDecoderState(cell_state, state.log_probs + log_probs)\n      (finished, next_inputs, next_state) = self._helper.next_inputs(\n          time=time,\n          outputs=cell_outputs,\n          state=next_state,\n          sample_ids=sample_ids)\n    \n    outputs = LogProbsDecoderOutput(cell_outputs, sample_ids, log_probs) \n    #outputs = BasicDecoderOutput(cell_outputs, sample_ids)\n    return (outputs, next_state, next_inputs, finished)\n\n"
  },
  {
    "path": "utils/melt/seq2seq/loss.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   loss.py\n#        \\author   chenghuige  \n#          \\date   2017-01-16 14:14:45.444355\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom six.moves import xrange  # pylint: disable=redefined-builtin\nfrom six.moves import zip     # pylint: disable=redefined-builtin\n\nfrom tensorflow.python import shape\nfrom tensorflow.python.framework import dtypes\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import embedding_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import nn_ops\nfrom tensorflow.python.ops import rnn\nfrom tensorflow.python.ops import variable_scope\nfrom tensorflow.python.util import nest \n  \n#-----------------------loss \n# if use tf.contrib.seq2seq.sequence_loss(which is per example if set average_across_batch=False) \n# notice the main diff here is we do  targets = array_ops.reshape(targets, [-1, 1]) \n#so in sample soft max  you do not need to do reshape  labels = tf.reshape(labels, [-1, 1])\ndef sequence_loss_by_example(logits, targets, weights,\n                             average_across_timesteps=True,\n                             softmax_loss_function=None, \n                             label_smoothing=0,\n                             name=None):\n  \"\"\"Weighted cross-entropy loss for a sequence of logits (per example).\n\n  Args:\n    logits: [batch_size, num_steps, num_decoder_symbols]. \n            if softmax_loss_function is not None then here is [batch_size, num_steps, emb_dim], \n            actually is just outputs from dynamic_rnn \n            if sotmax_loss_function is None, may be input is already [-1, num_decoder_symbols] flattened anyway, still ok\n    targets: [batch_size, num_steps]\n    weights: [batch_size, num_steps]\n    average_across_timesteps: If set, divide the returned cost by the total\n      label weight.\n    softmax_loss_function: Function (inputs-batch, labels-batch) -> loss-batch\n      to be used instead of the standard softmax (the default if this is None).\n    name: Optional name for this operation, default: \"sequence_loss_by_example\".\n\n  Returns:\n    1D batch-sized float Tensor: The log-perplexity for each sequence.\n  \"\"\"\n  with ops.name_scope(name, \"sequence_loss_by_example\",\n                      [logits, targets, weights]):\n    logits_shape = array_ops.shape(logits)\n    batch_size = logits_shape[0]\n    if softmax_loss_function is None:\n      #croosents [batch_size, num_steps]\n      #-----do not need to reshape for sparse_softmax_cross_entropy_with_logits accept both input \n      #num_classes = logits_shape[-1]\n      #logits = array_ops.reshape(logits, [-1, num_classes])\n      #targets = array_ops.reshape(targets, [-1])\n      if label_smoothing == 0:\n        crossents = nn_ops.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=targets)\n      else: \n        num_classes = logits_shape[-1]\n        # TODO FIXME strange Tensor(\"show_and_tell/main/decode/add_2:0\", shape=(?, 10148), dtype=float32)\n        #print('----------', logits)\n        #TypeError: List of Tensors when single Tensor expected\n        #logits = array_ops.reshape(logits, [-1, num_classes])\n        targets = array_ops.reshape(targets, [-1])\n        onehot_labels = array_ops.one_hot(targets, num_classes)\n        num_classes = math_ops.cast(num_classes, logits.dtype)\n        smooth_positives = 1.0 - label_smoothing\n        smooth_negatives = label_smoothing / num_classes\n        onehot_labels = onehot_labels * smooth_positives + smooth_negatives\n        crossents = nn_ops.softmax_cross_entropy_with_logits(labels=onehot_labels, logits=logits)\n      crossents = array_ops.reshape(crossents, [batch_size, -1])\n      weights = array_ops.reshape(weights, [batch_size, -1])\n    else:\n      assert label_smoothing == 0, 'not implement label smoothing for sample softmax loss yet'\n      num_classes = logits_shape[-1]\n      #need reshape because unlike sparse_softmax_cross_entropy_with_logits, \n      #tf.nn.sampled_softmax_loss now only accept 2d [batch_size, dim] as logits input\n      logits = array_ops.reshape(logits, [-1, num_classes])\n      targets = array_ops.reshape(targets, [-1, 1])\n      #croosents [batch_size * num_steps]\n      crossents = softmax_loss_function(logits, targets)\n      # croosents [batch_size, num_steps]\n      crossents = array_ops.reshape(crossents, [batch_size, -1])\n\n    log_perps = math_ops.reduce_sum(math_ops.multiply(crossents, weights), 1)\n\n    if average_across_timesteps:\n      total_size = math_ops.reduce_sum(weights, 1)\n      total_size += 1e-12  # Just to avoid division by 0 for all-0 weights.\n      log_perps /= total_size\n\n  return log_perps\n\ndef sequence_loss(logits,\n                  targets,\n                  weights,\n                  average_across_timesteps=True,\n                  average_across_batch=True,\n                  softmax_loss_function=None,\n                  name=None):\n  \"\"\"Weighted cross-entropy loss for a sequence of logits, batch-collapsed.\n\n  Args:\n    logits: [batch_size, num_steps, num_decoder_symbols]. \n            if softmax_loss_function is not None then here is [batch_size, num_steps, emb_dim], actually is just outputs from dynamic_rnn \n    targets: [batch_size, num_steps]\n    weights: [batch_size, num_steps]\n    average_across_timesteps: If set, divide the returned cost by the total\n      label weight.\n    average_across_batch: If set, divide the returned cost by the batch size.\n    softmax_loss_function: Function (inputs-batch, labels-batch) -> loss-batch\n      to be used instead of the standard softmax (the default if this is None).\n    name: Optional name for this operation, defaults to \"sequence_loss\".\n\n  Returns:\n    A scalar float Tensor: The average log-perplexity per symbol (weighted).\n  \"\"\"\n  with ops.name_scope(name, \"sequence_loss\", [logits, targets, weights]):\n    cost = math_ops.reduce_sum(\n        sequence_loss_by_example(\n            logits,\n            targets,\n            weights,\n            average_across_timesteps=average_across_timesteps,\n            softmax_loss_function=softmax_loss_function))\n    if average_across_batch:\n      batch_size = array_ops.shape(targets)[0]\n      return cost / math_ops.cast(batch_size, cost.dtype)\n    else:\n      return cost\n\nimport tensorflow as tf  \nimport melt\n\ndef exact_predict_loss(logits, targets, mask, num_steps, \n                        need_softmax=True, average_across_timesteps=False,\n                        trace_probs=True,  batch_size=None):\n  \"\"\"\n  the same as using sparse_softmax_cross_entropy_with_logits \n  here mainly for debug, comparing experimenting purpose!\n  logits  [batch_size, num_steps, vocab_size]\n  targets [batch_size, num_steps]\n  mask    [batch_size, num_steps]\n\n  return final -logprob \n  also record seqence of log probs \n\n  hasky/jupter/tensorflow/se2seq_exact_predict_loss.ipynb\n  \"\"\"\n  if batch_size is None:\n    batch_size = tf.shape(logits)[0]\n  i = tf.constant(0, dtype=tf.int32)\n  condition = lambda i, log_probs, lengths, log_probs_list: tf.less(i, num_steps)\n  log_probs = tf.zeros([batch_size,], dtype=tf.float32)\n  lengths = tf.zeros([batch_size], dtype=tf.int32)\n  #---log_probs_list is for debug purpose, actually the whole function here is for deubg purpose\n  log_probs_list = tf.TensorArray(\n            dtype=tf.float32, tensor_array_name=\"logprobs\", size=num_steps, infer_shape=False)\n            #dtype=tf.float32, tensor_array_name=\"log_probs_list\", size=0, dynamic_size=True, infer_shape=False)\n  def body(i, log_probs, lengths, log_probs_list):\n    #@TODO can we not clac softmax for mask==0 ?\n    step_logits = logits[:, i, :]\n    #step_probs = tf.nn.softmax(step_logits)\n    if need_softmax:\n      step_log_probs = tf.nn.log_softmax(step_logits)\n    else:\n      #step_log_probs = tf.log(step_logits)\n      #step_log_probs = tf.maximum(step_logits, 1e-12)\n      step_log_probs = tf.log(tf.maximum(step_logits, 1e-12))\n\n\n    step_targets = targets[:, i]\n    #selected_probs = melt.dynamic_gather2d(step_probs, step_targets)\n    #TODO is this ok? or just use tf.nn.log_softmax to replace tf.nn.softmax\n    #selected_log_probs = tf.log(tf.maximum(selected_probs, 1e-12))\n    #TODO gather_nd ?\n    \n    #selected_log_probs = melt.dynamic_gather2d(step_log_probs, step_targets)\n    batch_nums = tf.range(0, limit=batch_size) # shape (batch_size)\n    step_indices = tf.stack((batch_nums, tf.to_int32(step_targets)), axis=1) # shape (batch_size, 2)\n    selected_log_probs = tf.gather_nd(step_log_probs, step_indices) # shape (batch_size). loss on this step for each batch\n\n    #if not need_softmax:\n    #  selected_log_probs = tf.log(step_log_probs)\n\n    step_mask = mask[:, i]\n    masked_log_probs = selected_log_probs * step_mask \n    log_probs += masked_log_probs\n    lengths += tf.to_int32(step_mask)\n    if not trace_probs:\n      masked_log_probs = ()\n    log_probs_list = log_probs_list.write(i, masked_log_probs) \n    return tf.add(i, 1), tf.reshape(log_probs, [batch_size,]), tf.reshape(lengths, [batch_size,]), log_probs_list\n\n  _, log_probs, lengths, log_probs_list = tf.while_loop(condition, body, [i, log_probs, lengths, log_probs_list])\n    \n  log_probs_list = tf.transpose(log_probs_list.stack(), [1, 0])\n  tf.add_to_collection('seq2seq_logprobs', log_probs_list)\n\n  loss = -log_probs\n  if average_across_timesteps:\n    loss /= tf.to_float(lengths)\n  return loss\n\n# FIXME why negative loss?\ndef sigmoid_loss(logits, targets, mask, num_steps, vocab_size, \n                 average_across_timesteps=True, batch_size=None):\n  if batch_size is None:\n    batch_size = tf.shape(logits)[0]\n  i = tf.constant(0, dtype=tf.int32)\n  condition = lambda i, sigmoid_loss, lengths: tf.less(i, num_steps)\n  sigmoid_loss = tf.zeros([batch_size,], dtype=tf.float32)\n  lengths = tf.zeros([batch_size], dtype=tf.int32)\n\n  labels = tf.to_float(melt.nhot(targets, vocab_size))\n  print('labels', labels)\n  def body(i, sigmoid_loss, lengths):\n    step_logits = logits[:, i, :]\n\n    #step_sigmoid_loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=labels, logits=step_logits)\n    step_sigmoid_loss = step_logits\n    step_sigmoid_loss = tf.reduce_mean(step_sigmoid_loss, -1)\n    print('step_sigmoid_loss', step_sigmoid_loss)\n    step_mask = mask[:, i]\n    print('step_mask', step_mask)\n    masked_step_sigmoid_loss = step_sigmoid_loss * step_mask \n    print('masked_step_sigmoid_loss', masked_step_sigmoid_loss)\n    sigmoid_loss += masked_step_sigmoid_loss\n    lengths += tf.to_int32(step_mask)\n\n    return tf.add(i, 1), tf.reshape(sigmoid_loss, [batch_size,]), tf.reshape(lengths, [batch_size,])\n\n\n  _, sigmoid_loss, lengths = tf.while_loop(condition, body, [i, sigmoid_loss, lengths])\n  \n\n  loss = sigmoid_loss\n  if average_across_timesteps:\n    loss /= tf.to_float(lengths)\n  return loss\n\ndef gen_sampled_softmax_loss_function(num_sampled, vocab_size, \n                                      weights, biases,\n                                      log_uniform_sample=True,\n                                      is_predict=False,\n                                      sample_seed=None,\n                                      vocabulary=None):\n  #@TODO move to melt  def prepare_sampled_softmax_loss(num_sampled, vocab_size, emb_dim)\n  #return output_projection, softmax_loss_function\n  #also consider candidate sampler \n  # Sampled softmax only makes sense if we sample less than vocabulary size.\n  # FIMXE seems not work when using meta graph load predic cause segmentaion fault if add not is_predict\n  #if not is_predict and (num_sampled > 0 and num_sampled < vocab_size):\n  if num_sampled > 0 and num_sampled < vocab_size:\n    def sampled_loss(inputs, labels):\n      \"\"\"\n      inputs: [batch_size * num_steps, dim]\n      labels: [batch_size * num_steps, num_true]\n      \"\"\"\n      #with tf.device(\"/cpu:0\"):\n      #---use this since default tf.contrib.seq2seq input labels as [-1], if you use melt.seq2seq.sequence_loss do not need reshape\n      #labels = tf.reshape(labels, [-1, 1])\n\n      if log_uniform_sample:\n        #most likely go here\n        sampled_values = None\n        if is_predict:\n          sampled_values = tf.nn.log_uniform_candidate_sampler(\n            true_classes=labels,\n            num_true=1,\n            num_sampled=num_sampled,\n            unique=True,\n            range_max=vocab_size,\n            seed=sample_seed)\n      else:\n        vocab_counts_list = [vocabulary.vocab.freq(i) for i in xrange(vocab_size)]\n        vocab_counts_list[0] = 1  #  --hack..\n        #vocab_counts_list = [vocabulary.vocab.freq(i) for i in xrange(NUM_RESERVED_IDS, vocab_size)\n        #-------above is ok, do not go here\n        #@TODO find which is better log uniform or unigram sample, what's the diff with full vocab\n        #num_reserved_ids: Optionally some reserved IDs can be added in the range\n        #`[0, num_reserved_ids]` by the users. One use case is that a special\n        #unknown word token is used as ID 0. These IDs will have a sampling\n        #probability of 0.\n        #@TODO seems juse set num_reserved_ids to 1 to ignore pad, will we need to set to 2 to also ignore UNK?\n        #range_max: An `int` that is `>= 1`.\n        #The sampler will sample integers from the interval [0, range_max).\n\n        ##---@FIXME setting num_reserved_ids=NUM_RESERVED_IDS will cause Nan, why...\n        #sampled_values = tf.nn.fixed_unigram_candidate_sampler(\n        #    true_classes=labels,\n        #    num_true=1,\n        #    num_sampled=num_sampled,\n        #    unique=True,\n        #    range_max=vocab_size - NUM_RESERVED_IDS,\n        #    distortion=0.75,\n        #    num_reserved_ids=NUM_RESERVED_IDS,\n        #    unigrams=vocab_counts_list)\n        \n        #FIXME keyword app, now tested on basice 50w,\n        # sample 1000 or other num will cause nan use sampled by count or not by count\n        #flickr data is ok\n        # IMPORTANT to find out reason, data dependent right now\n        #seems ok if using dynamic_batch=1, but seems no speed gain... only 5 instance/s\n        #NOTICE 50w keyword very slow with sample(1w) not speed gain\n        #4GPU will outof mem FIXME  https://github.com/tensorflow/tensorflow/pull/4270\n        #https://github.com/tensorflow/tensorflow/issues/4138\n        sampled_values = tf.nn.fixed_unigram_candidate_sampler(\n            true_classes=labels,\n            num_true=1,\n            num_sampled=num_sampled,\n            unique=True,\n            range_max=vocab_size,\n            distortion=0.75,\n            num_reserved_ids=0,\n            unigrams=vocab_counts_list)\n\n      return tf.nn.sampled_softmax_loss(weights, \n                                        biases, \n                                        labels=labels, \n                                        inputs=inputs, \n                                        num_sampled=num_sampled, \n                                        num_classes=vocab_size,\n                                        sampled_values=sampled_values,\n                                        partition_strategy=\"div\") \n                               \n    return sampled_loss\n  else:\n    return None\n"
  },
  {
    "path": "utils/melt/seq2seq/official/beam_search_decoder.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\r\n#\r\n# Licensed under the Apache License, Version 2.0 (the \"License\");\r\n# you may not use this file except in compliance with the License.\r\n# You may obtain a copy of the License at\r\n#\r\n#     http://www.apache.org/licenses/LICENSE-2.0\r\n#\r\n# Unless required by applicable law or agreed to in writing, software\r\n# distributed under the License is distributed on an \"AS IS\" BASIS,\r\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n# See the License for the specific language governing permissions and\r\n# limitations under the License.\r\n# ==============================================================================\r\n\"\"\"A decoder that performs beam search.\"\"\"\r\n\r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport collections\r\n\r\nfrom tensorflow.contrib.seq2seq.python.ops import beam_search_ops\r\nfrom tensorflow.contrib.seq2seq.python.ops import decoder\r\nfrom tensorflow.python.framework import constant_op\r\nfrom tensorflow.python.framework import dtypes\r\nfrom tensorflow.python.framework import ops\r\nfrom tensorflow.python.framework import tensor_shape\r\nfrom tensorflow.python.framework import tensor_util\r\nfrom tensorflow.python.layers import base as layers_base\r\nfrom tensorflow.python.ops import array_ops\r\nfrom tensorflow.python.ops import control_flow_ops\r\nfrom tensorflow.python.ops import embedding_ops\r\nfrom tensorflow.python.ops import math_ops\r\nfrom tensorflow.python.ops import nn_ops\r\nfrom tensorflow.python.ops import rnn_cell_impl\r\nfrom tensorflow.python.ops import tensor_array_ops\r\nfrom tensorflow.python.util import nest\r\n\r\n\r\n__all__ = [\r\n    \"BeamSearchDecoderOutput\",\r\n    \"BeamSearchDecoderState\",\r\n    \"BeamSearchDecoder\",\r\n    \"FinalBeamSearchDecoderOutput\",\r\n    \"tile_batch\",\r\n]\r\n\r\n\r\nclass BeamSearchDecoderState(\r\n    collections.namedtuple(\"BeamSearchDecoderState\", (\"cell_state\", \"log_probs\",\r\n                                                      \"finished\", \"lengths\"))):\r\n  pass\r\n\r\n\r\nclass BeamSearchDecoderOutput(\r\n    collections.namedtuple(\"BeamSearchDecoderOutput\",\r\n                           (\"scores\", \"predicted_ids\", \"parent_ids\"))):\r\n  pass\r\n\r\n\r\nclass FinalBeamSearchDecoderOutput(\r\n    collections.namedtuple(\"FinalBeamDecoderOutput\",\r\n                           [\"predicted_ids\", \"beam_search_decoder_output\"])):\r\n  \"\"\"Final outputs returned by the beam search after all decoding is finished.\r\n\r\n  Args:\r\n    predicted_ids: The final prediction. A tensor of shape\r\n      `[T, batch_size, beam_width]`.\r\n    beam_search_decoder_output: An instance of `BeamSearchDecoderOutput` that\r\n      describes the state of the beam search.\r\n  \"\"\"\r\n  pass\r\n\r\n\r\ndef _tile_batch(t, multiplier):\r\n  \"\"\"Core single-tensor implementation of tile_batch.\"\"\"\r\n  t = ops.convert_to_tensor(t, name=\"t\")\r\n  shape_t = array_ops.shape(t)\r\n  if t.shape.ndims is None or t.shape.ndims < 1:\r\n    raise ValueError(\"t must have statically known rank\")\r\n  tiling = [1] * (t.shape.ndims + 1)\r\n  tiling[1] = multiplier\r\n  tiled_static_batch_size = (\r\n      t.shape[0].value * multiplier if t.shape[0].value is not None else None)\r\n  tiled = array_ops.tile(array_ops.expand_dims(t, 1), tiling)\r\n  tiled = array_ops.reshape(\r\n      tiled, array_ops.concat(([shape_t[0] * multiplier], shape_t[1:]), 0))\r\n  tiled.set_shape(\r\n      tensor_shape.TensorShape(\r\n          [tiled_static_batch_size]).concatenate(t.shape[1:]))\r\n  return tiled\r\n\r\n\r\ndef tile_batch(t, multiplier, name=None):\r\n  \"\"\"Tile the batch dimension of a (possibly nested structure of) tensor(s) t.\r\n\r\n  For each tensor t in a (possibly nested structure) of tensors,\r\n  this function takes a tensor t shaped `[batch_size, s0, s1, ...]` composed of\r\n  minibatch entries `t[0], ..., t[batch_size - 1]` and tiles it to have a shape\r\n  `[batch_size * multiplier, s0, s1, ...]` composed of minibatch entries\r\n  `t[0], t[0], ..., t[1], t[1], ...` where each minibatch entry is repeated\r\n  `multiplier` times.\r\n\r\n  Args:\r\n    t: `Tensor` shaped `[batch_size, ...]`.\r\n    multiplier: Python int.\r\n    name: Name scope for any created operations.\r\n\r\n  Returns:\r\n    A (possibly nested structure of) `Tensor` shaped\r\n    `[batch_size * multiplier, ...]`.\r\n\r\n  Raises:\r\n    ValueError: if tensor(s) `t` do not have a statically known rank or\r\n    the rank is < 1.\r\n  \"\"\"\r\n  flat_t = nest.flatten(t)\r\n  with ops.name_scope(name, \"tile_batch\", flat_t + [multiplier]):\r\n    return nest.map_structure(lambda t_: _tile_batch(t_, multiplier), t)\r\n\r\n\r\ndef _check_maybe(t):\r\n  if isinstance(t, tensor_array_ops.TensorArray):\r\n    raise TypeError(\r\n        \"TensorArray state is not supported by BeamSearchDecoder: %s\" % t.name)\r\n  if t.shape.ndims is None:\r\n    raise ValueError(\r\n        \"Expected tensor (%s) to have known rank, but ndims == None.\" % t)\r\n\r\n\r\nclass BeamSearchDecoder(decoder.Decoder):\r\n  \"\"\"BeamSearch sampling decoder.\r\n\r\n    **NOTE** If you are using the `BeamSearchDecoder` with a cell wrapped in\r\n    `AttentionWrapper`, then you must ensure that:\r\n\r\n    - The encoder output has been tiled to `beam_width` via\r\n      @{tf.contrib.seq2seq.tile_batch} (NOT `tf.tile`).\r\n    - The `batch_size` argument passed to the `zero_state` method of this\r\n      wrapper is equal to `true_batch_size * beam_width`.\r\n    - The initial state created with `zero_state` above contains a\r\n      `cell_state` value containing properly tiled final state from the\r\n      encoder.\r\n\r\n    An example:\r\n\r\n    ```\r\n    tiled_encoder_outputs = tf.contrib.seq2seq.tile_batch(\r\n        encoder_outputs, multiplier=beam_width)\r\n    tiled_encoder_final_state = tf.conrib.seq2seq.tile_batch(\r\n        encoder_final_state, multiplier=beam_width)\r\n    tiled_sequence_length = tf.contrib.seq2seq.tile_batch(\r\n        sequence_length, multiplier=beam_width)\r\n    attention_mechanism = MyFavoriteAttentionMechanism(\r\n        num_units=attention_depth,\r\n        memory=tiled_inputs,\r\n        memory_sequence_length=tiled_sequence_length)\r\n    attention_cell = AttentionWrapper(cell, attention_mechanism, ...)\r\n    decoder_initial_state = attention_cell.zero_state(\r\n        dtype, batch_size=true_batch_size * beam_width)\r\n    decoder_initial_state = decoder_initial_state.clone(\r\n        cell_state=tiled_encoder_final_state)\r\n    ```\r\n  \"\"\"\r\n\r\n  def __init__(self,\r\n               cell,\r\n               embedding,\r\n               start_tokens,\r\n               end_token,\r\n               initial_state,\r\n               beam_width,\r\n               output_layer=None,\r\n               length_penalty_weight=0.0):\r\n    \"\"\"Initialize the BeamSearchDecoder.\r\n\r\n    Args:\r\n      cell: An `RNNCell` instance.\r\n      embedding: A callable that takes a vector tensor of `ids` (argmax ids),\r\n        or the `params` argument for `embedding_lookup`.\r\n      start_tokens: `int32` vector shaped `[batch_size]`, the start tokens.\r\n      end_token: `int32` scalar, the token that marks end of decoding.\r\n      initial_state: A (possibly nested tuple of...) tensors and TensorArrays.\r\n      beam_width:  Python integer, the number of beams.\r\n      output_layer: (Optional) An instance of `tf.layers.Layer`, i.e.,\r\n        `tf.layers.Dense`.  Optional layer to apply to the RNN output prior\r\n        to storing the result or sampling.\r\n      length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\r\n\r\n    Raises:\r\n      TypeError: if `cell` is not an instance of `RNNCell`,\r\n        or `output_layer` is not an instance of `tf.layers.Layer`.\r\n      ValueError: If `start_tokens` is not a vector or\r\n        `end_token` is not a scalar.\r\n    \"\"\"\r\n    if not rnn_cell_impl._like_rnncell(cell):  # pylint: disable=protected-access\r\n      raise TypeError(\"cell must be an RNNCell, received: %s\" % type(cell))\r\n    if (output_layer is not None\r\n        and not isinstance(output_layer, layers_base.Layer)):\r\n      raise TypeError(\r\n          \"output_layer must be a Layer, received: %s\" % type(output_layer))\r\n    self._cell = cell\r\n    self._output_layer = output_layer\r\n\r\n    if callable(embedding):\r\n      self._embedding_fn = embedding\r\n    else:\r\n      self._embedding_fn = (\r\n          lambda ids: embedding_ops.embedding_lookup(embedding, ids))\r\n\r\n    self._start_tokens = ops.convert_to_tensor(\r\n        start_tokens, dtype=dtypes.int32, name=\"start_tokens\")\r\n    if self._start_tokens.get_shape().ndims != 1:\r\n      raise ValueError(\"start_tokens must be a vector\")\r\n    self._end_token = ops.convert_to_tensor(\r\n        end_token, dtype=dtypes.int32, name=\"end_token\")\r\n    if self._end_token.get_shape().ndims != 0:\r\n      raise ValueError(\"end_token must be a scalar\")\r\n\r\n    self._batch_size = array_ops.size(start_tokens)\r\n    self._beam_width = beam_width\r\n    self._length_penalty_weight = length_penalty_weight\r\n    self._initial_cell_state = nest.map_structure(\r\n        self._maybe_split_batch_beams,\r\n        initial_state, self._cell.state_size)\r\n    self._start_tokens = array_ops.tile(\r\n        array_ops.expand_dims(self._start_tokens, 1), [1, self._beam_width])\r\n    self._start_inputs = self._embedding_fn(self._start_tokens)\r\n    self._finished = array_ops.zeros(\r\n        [self._batch_size, self._beam_width], dtype=dtypes.bool)\r\n\r\n  @property\r\n  def batch_size(self):\r\n    return self._batch_size\r\n\r\n  def _rnn_output_size(self):\r\n    size = self._cell.output_size\r\n    if self._output_layer is None:\r\n      return size\r\n    else:\r\n      # To use layer's compute_output_shape, we need to convert the\r\n      # RNNCell's output_size entries into shapes with an unknown\r\n      # batch size.  We then pass this through the layer's\r\n      # compute_output_shape and read off all but the first (batch)\r\n      # dimensions to get the output size of the rnn with the layer\r\n      # applied to the top.\r\n      output_shape_with_unknown_batch = nest.map_structure(\r\n          lambda s: tensor_shape.TensorShape([None]).concatenate(s),\r\n          size)\r\n      layer_output_shape = self._output_layer._compute_output_shape(  # pylint: disable=protected-access\r\n          output_shape_with_unknown_batch)\r\n      return nest.map_structure(lambda s: s[1:], layer_output_shape)\r\n\r\n  @property\r\n  def output_size(self):\r\n    # Return the cell output and the id\r\n    return BeamSearchDecoderOutput(\r\n        scores=tensor_shape.TensorShape([self._beam_width]),\r\n        predicted_ids=tensor_shape.TensorShape([self._beam_width]),\r\n        parent_ids=tensor_shape.TensorShape([self._beam_width]))\r\n\r\n  @property\r\n  def output_dtype(self):\r\n    # Assume the dtype of the cell is the output_size structure\r\n    # containing the input_state's first component's dtype.\r\n    # Return that structure and int32 (the id)\r\n    dtype = nest.flatten(self._initial_cell_state)[0].dtype\r\n    return BeamSearchDecoderOutput(\r\n        scores=nest.map_structure(lambda _: dtype, self._rnn_output_size()),\r\n        predicted_ids=dtypes.int32,\r\n        parent_ids=dtypes.int32)\r\n\r\n  def initialize(self, name=None):\r\n    \"\"\"Initialize the decoder.\r\n\r\n    Args:\r\n      name: Name scope for any created operations.\r\n\r\n    Returns:\r\n      `(finished, start_inputs, initial_state)`.\r\n    \"\"\"\r\n    finished, start_inputs = self._finished, self._start_inputs\r\n\r\n    initial_state = BeamSearchDecoderState(\r\n        cell_state=self._initial_cell_state,\r\n        log_probs=array_ops.zeros(\r\n            [self._batch_size, self._beam_width],\r\n            dtype=nest.flatten(self._initial_cell_state)[0].dtype),\r\n        finished=finished,\r\n        lengths=array_ops.zeros(\r\n            [self._batch_size, self._beam_width], dtype=dtypes.int64))\r\n\r\n    return (finished, start_inputs, initial_state)\r\n\r\n  def finalize(self, outputs, final_state, sequence_lengths):\r\n    \"\"\"Finalize and return the predicted_ids.\r\n\r\n    Args:\r\n      outputs: An instance of BeamSearchDecoderOutput.\r\n      final_state: An instance of BeamSearchDecoderState. Passed through to the\r\n        output.\r\n      sequence_lengths: An `int64` tensor shaped `[batch_size, beam_width]`.\r\n        The sequence lengths determined for each beam during decode.\r\n\r\n    Returns:\r\n      outputs: An instance of FinalBeamSearchDecoderOutput where the\r\n        predicted_ids are the result of calling _gather_tree.\r\n      final_state: The same input instance of BeamSearchDecoderState.\r\n    \"\"\"\r\n    predicted_ids = beam_search_ops.gather_tree(\r\n        outputs.predicted_ids, outputs.parent_ids,\r\n        sequence_length=sequence_lengths)\r\n    outputs = FinalBeamSearchDecoderOutput(\r\n        beam_search_decoder_output=outputs, predicted_ids=predicted_ids)\r\n    return outputs, final_state\r\n\r\n  def _merge_batch_beams(self, t, s=None):\r\n    \"\"\"Merges the tensor from a batch of beams into a batch by beams.\r\n\r\n    More exactly, t is a tensor of dimension [batch_size, beam_width, s]. We\r\n    reshape this into [batch_size*beam_width, s]\r\n\r\n    Args:\r\n      t: Tensor of dimension [batch_size, beam_width, s]\r\n      s: (Possibly known) depth shape.\r\n\r\n    Returns:\r\n      A reshaped version of t with dimension [batch_size * beam_width, s].\r\n    \"\"\"\r\n    if isinstance(s, ops.Tensor):\r\n      s = tensor_shape.as_shape(tensor_util.constant_value(s))\r\n    else:\r\n      s = tensor_shape.TensorShape(s)\r\n    t_shape = array_ops.shape(t)\r\n    static_batch_size = tensor_util.constant_value(self._batch_size)\r\n    batch_size_beam_width = (\r\n        None if static_batch_size is None\r\n        else static_batch_size * self._beam_width)\r\n    reshaped_t = array_ops.reshape(\r\n        t, array_ops.concat(\r\n            ([self._batch_size * self._beam_width], t_shape[2:]), 0))\r\n    reshaped_t.set_shape(\r\n        (tensor_shape.TensorShape([batch_size_beam_width]).concatenate(s)))\r\n    return reshaped_t\r\n\r\n  def _split_batch_beams(self, t, s=None):\r\n    \"\"\"Splits the tensor from a batch by beams into a batch of beams.\r\n\r\n    More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We\r\n    reshape this into [batch_size, beam_width, s]\r\n\r\n    Args:\r\n      t: Tensor of dimension [batch_size*beam_width, s].\r\n      s: (Possibly known) depth shape.\r\n\r\n    Returns:\r\n      A reshaped version of t with dimension [batch_size, beam_width, s].\r\n\r\n    Raises:\r\n      ValueError: If, after reshaping, the new tensor is not shaped\r\n        `[batch_size, beam_width, s]` (assuming batch_size and beam_width\r\n        are known statically).\r\n    \"\"\"\r\n    if isinstance(s, ops.Tensor):\r\n      s = tensor_shape.TensorShape(tensor_util.constant_value(s))\r\n    else:\r\n      s = tensor_shape.TensorShape(s)\r\n    t_shape = array_ops.shape(t)\r\n    reshaped_t = array_ops.reshape(\r\n        t, array_ops.concat(\r\n            ([self._batch_size, self._beam_width], t_shape[1:]), 0))\r\n    static_batch_size = tensor_util.constant_value(self._batch_size)\r\n    expected_reshaped_shape = tensor_shape.TensorShape(\r\n        [static_batch_size, self._beam_width]).concatenate(s)\r\n    if not reshaped_t.shape.is_compatible_with(expected_reshaped_shape):\r\n      raise ValueError(\"Unexpected behavior when reshaping between beam width \"\r\n                       \"and batch size.  The reshaped tensor has shape: %s.  \"\r\n                       \"We expected it to have shape \"\r\n                       \"(batch_size, beam_width, depth) == %s.  Perhaps you \"\r\n                       \"forgot to create a zero_state with \"\r\n                       \"batch_size=encoder_batch_size * beam_width?\"\r\n                       % (reshaped_t.shape, expected_reshaped_shape))\r\n    reshaped_t.set_shape(expected_reshaped_shape)\r\n    return reshaped_t\r\n\r\n  def _maybe_split_batch_beams(self, t, s):\r\n    \"\"\"Maybe splits the tensor from a batch by beams into a batch of beams.\r\n\r\n    We do this so that we can use nest and not run into problems with shapes.\r\n\r\n    Args:\r\n      t: Tensor of dimension [batch_size*beam_width, s]\r\n      s: Tensor, Python int, or TensorShape.\r\n\r\n    Returns:\r\n      Either a reshaped version of t with dimension\r\n      [batch_size, beam_width, s] if t's first dimension is of size\r\n      batch_size*beam_width or t if not.\r\n\r\n    Raises:\r\n      TypeError: If t is an instance of TensorArray.\r\n      ValueError: If the rank of t is not statically known.\r\n    \"\"\"\r\n    _check_maybe(t)\r\n    if t.shape.ndims >= 1:\r\n      return self._split_batch_beams(t, s)\r\n    else:\r\n      return t\r\n\r\n  def _maybe_merge_batch_beams(self, t, s):\r\n    \"\"\"Splits the tensor from a batch by beams into a batch of beams.\r\n\r\n    More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We\r\n    reshape this into [batch_size, beam_width, s]\r\n\r\n    Args:\r\n      t: Tensor of dimension [batch_size*beam_width, s]\r\n      s: Tensor, Python int, or TensorShape.\r\n\r\n    Returns:\r\n      A reshaped version of t with dimension [batch_size, beam_width, s].\r\n\r\n    Raises:\r\n      TypeError: If t is an instance of TensorArray.\r\n      ValueError:  If the rank of t is not statically known.\r\n    \"\"\"\r\n    _check_maybe(t)\r\n    if t.shape.ndims >= 2:\r\n      return self._merge_batch_beams(t, s)\r\n    else:\r\n      return t\r\n\r\n  def step(self, time, inputs, state, name=None):\r\n    \"\"\"Perform a decoding step.\r\n\r\n    Args:\r\n      time: scalar `int32` tensor.\r\n      inputs: A (structure of) input tensors.\r\n      state: A (structure of) state tensors and TensorArrays.\r\n      name: Name scope for any created operations.\r\n\r\n    Returns:\r\n      `(outputs, next_state, next_inputs, finished)`.\r\n    \"\"\"\r\n    batch_size = self._batch_size\r\n    beam_width = self._beam_width\r\n    end_token = self._end_token\r\n    length_penalty_weight = self._length_penalty_weight\r\n\r\n    with ops.name_scope(name, \"BeamSearchDecoderStep\", (time, inputs, state)):\r\n      cell_state = state.cell_state\r\n      inputs = nest.map_structure(\r\n          lambda inp: self._merge_batch_beams(inp, s=inp.shape[2:]), inputs)\r\n      cell_state = nest.map_structure(\r\n          self._maybe_merge_batch_beams,\r\n          cell_state, self._cell.state_size)\r\n      cell_outputs, next_cell_state = self._cell(inputs, cell_state)\r\n      cell_outputs = nest.map_structure(\r\n          lambda out: self._split_batch_beams(out, out.shape[1:]), cell_outputs)\r\n      next_cell_state = nest.map_structure(\r\n          self._maybe_split_batch_beams,\r\n          next_cell_state, self._cell.state_size)\r\n\r\n      if self._output_layer is not None:\r\n        cell_outputs = self._output_layer(cell_outputs)\r\n\r\n      beam_search_output, beam_search_state = _beam_search_step(\r\n          time=time,\r\n          logits=cell_outputs,\r\n          next_cell_state=next_cell_state,\r\n          beam_state=state,\r\n          batch_size=batch_size,\r\n          beam_width=beam_width,\r\n          end_token=end_token,\r\n          length_penalty_weight=length_penalty_weight)\r\n\r\n      finished = beam_search_state.finished\r\n      sample_ids = beam_search_output.predicted_ids\r\n      next_inputs = control_flow_ops.cond(\r\n          math_ops.reduce_all(finished), lambda: self._start_inputs,\r\n          lambda: self._embedding_fn(sample_ids))\r\n\r\n    return (beam_search_output, beam_search_state, next_inputs, finished)\r\n\r\n\r\ndef _beam_search_step(time, logits, next_cell_state, beam_state, batch_size,\r\n                      beam_width, end_token, length_penalty_weight):\r\n  \"\"\"Performs a single step of Beam Search Decoding.\r\n\r\n  Args:\r\n    time: Beam search time step, should start at 0. At time 0 we assume\r\n      that all beams are equal and consider only the first beam for\r\n      continuations.\r\n    logits: Logits at the current time step. A tensor of shape\r\n      `[batch_size, beam_width, vocab_size]`\r\n    next_cell_state: The next state from the cell, e.g. an instance of\r\n      AttentionWrapperState if the cell is attentional.\r\n    beam_state: Current state of the beam search.\r\n      An instance of `BeamSearchDecoderState`.\r\n    batch_size: The batch size for this input.\r\n    beam_width: Python int.  The size of the beams.\r\n    end_token: The int32 end token.\r\n    length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\r\n\r\n  Returns:\r\n    A new beam state.\r\n  \"\"\"\r\n  static_batch_size = tensor_util.constant_value(batch_size)\r\n\r\n  # Calculate the current lengths of the predictions\r\n  prediction_lengths = beam_state.lengths\r\n  previously_finished = beam_state.finished\r\n\r\n  # Calculate the total log probs for the new hypotheses\r\n  # Final Shape: [batch_size, beam_width, vocab_size]\r\n  step_log_probs = nn_ops.log_softmax(logits)\r\n  step_log_probs = _mask_probs(step_log_probs, end_token, previously_finished)\r\n  total_probs = array_ops.expand_dims(beam_state.log_probs, 2) + step_log_probs\r\n\r\n  # Calculate the continuation lengths by adding to all continuing beams.\r\n  vocab_size = logits.shape[-1].value or array_ops.shape(logits)[-1]\r\n  lengths_to_add = array_ops.one_hot(\r\n      indices=array_ops.tile(\r\n          array_ops.reshape(end_token, [1, 1]), [batch_size, beam_width]),\r\n      depth=vocab_size,\r\n      on_value=constant_op.constant(0, dtype=dtypes.int64),\r\n      off_value=constant_op.constant(1, dtype=dtypes.int64),\r\n      dtype=dtypes.int64)\r\n  add_mask = (1 - math_ops.to_int64(previously_finished))\r\n  lengths_to_add = array_ops.expand_dims(add_mask, 2) * lengths_to_add\r\n  new_prediction_lengths = (\r\n      lengths_to_add + array_ops.expand_dims(prediction_lengths, 2))\r\n\r\n  # Calculate the scores for each beam\r\n  scores = _get_scores(\r\n      log_probs=total_probs,\r\n      sequence_lengths=new_prediction_lengths,\r\n      length_penalty_weight=length_penalty_weight)\r\n\r\n  time = ops.convert_to_tensor(time, name=\"time\")\r\n  # During the first time step we only consider the initial beam\r\n  scores_shape = array_ops.shape(scores)\r\n  scores_flat = control_flow_ops.cond(\r\n      time > 0,\r\n      lambda: array_ops.reshape(scores, [batch_size, -1]),\r\n      lambda: scores[:, 0])\r\n  num_available_beam = control_flow_ops.cond(\r\n      time > 0, lambda: math_ops.reduce_prod(scores_shape[1:]),\r\n      lambda: math_ops.reduce_prod(scores_shape[2:]))\r\n\r\n  # Pick the next beams according to the specified successors function\r\n  next_beam_size = math_ops.minimum(\r\n      ops.convert_to_tensor(beam_width, dtype=dtypes.int32, name=\"beam_width\"),\r\n      num_available_beam)\r\n  next_beam_scores, word_indices = nn_ops.top_k(scores_flat, k=next_beam_size)\r\n\r\n  next_beam_scores.set_shape([static_batch_size, beam_width])\r\n  word_indices.set_shape([static_batch_size, beam_width])\r\n\r\n  # Pick out the probs, beam_ids, and states according to the chosen predictions\r\n  next_beam_probs = _tensor_gather_helper(\r\n      gather_indices=word_indices,\r\n      gather_from=total_probs,\r\n      batch_size=batch_size,\r\n      range_size=beam_width * vocab_size,\r\n      gather_shape=[-1],\r\n      name=\"next_beam_probs\")\r\n  # Note: just doing the following\r\n  #   math_ops.to_int32(word_indices % vocab_size,\r\n  #       name=\"next_beam_word_ids\")\r\n  # would be a lot cleaner but for reasons unclear, that hides the results of\r\n  # the op which prevents capturing it with tfdbg debug ops.\r\n  raw_next_word_ids = math_ops.mod(word_indices, vocab_size,\r\n                                   name=\"next_beam_word_ids\")\r\n  next_word_ids = math_ops.to_int32(raw_next_word_ids)\r\n  next_beam_ids = math_ops.to_int32(word_indices / vocab_size,\r\n                                    name=\"next_beam_parent_ids\")\r\n\r\n  # Append new ids to current predictions\r\n  previously_finished = _tensor_gather_helper(\r\n      gather_indices=next_beam_ids,\r\n      gather_from=previously_finished,\r\n      batch_size=batch_size,\r\n      range_size=beam_width,\r\n      gather_shape=[-1])\r\n  next_finished = math_ops.logical_or(previously_finished,\r\n                                      math_ops.equal(next_word_ids, end_token),\r\n                                      name=\"next_beam_finished\")\r\n\r\n  # Calculate the length of the next predictions.\r\n  # 1. Finished beams remain unchanged\r\n  # 2. Beams that are now finished (EOS predicted) remain unchanged\r\n  # 3. Beams that are not yet finished have their length increased by 1\r\n  lengths_to_add = math_ops.to_int64(\r\n      math_ops.not_equal(next_word_ids, end_token))\r\n  lengths_to_add = (1 - math_ops.to_int64(next_finished)) * lengths_to_add\r\n  next_prediction_len = _tensor_gather_helper(\r\n      gather_indices=next_beam_ids,\r\n      gather_from=beam_state.lengths,\r\n      batch_size=batch_size,\r\n      range_size=beam_width,\r\n      gather_shape=[-1])\r\n  next_prediction_len += lengths_to_add\r\n\r\n  # Pick out the cell_states according to the next_beam_ids. We use a\r\n  # different gather_shape here because the cell_state tensors, i.e.\r\n  # the tensors that would be gathered from, all have dimension\r\n  # greater than two and we need to preserve those dimensions.\r\n  # pylint: disable=g-long-lambda\r\n  next_cell_state = nest.map_structure(\r\n      lambda gather_from: _maybe_tensor_gather_helper(\r\n          gather_indices=next_beam_ids,\r\n          gather_from=gather_from,\r\n          batch_size=batch_size,\r\n          range_size=beam_width,\r\n          gather_shape=[batch_size * beam_width, -1]),\r\n      next_cell_state)\r\n  # pylint: enable=g-long-lambda\r\n\r\n  next_state = BeamSearchDecoderState(\r\n      cell_state=next_cell_state,\r\n      log_probs=next_beam_probs,\r\n      lengths=next_prediction_len,\r\n      finished=next_finished)\r\n\r\n  output = BeamSearchDecoderOutput(\r\n      scores=next_beam_scores,\r\n      predicted_ids=next_word_ids,\r\n      parent_ids=next_beam_ids)\r\n\r\n  return output, next_state\r\n\r\n\r\ndef _get_scores(log_probs, sequence_lengths, length_penalty_weight):\r\n  \"\"\"Calculates scores for beam search hypotheses.\r\n\r\n  Args:\r\n    log_probs: The log probabilities with shape\r\n      `[batch_size, beam_width, vocab_size]`.\r\n    sequence_lengths: The array of sequence lengths.\r\n    length_penalty_weight: Float weight to penalize length. Disabled with 0.0.\r\n\r\n  Returns:\r\n    The scores normalized by the length_penalty.\r\n  \"\"\"\r\n  length_penality_ = _length_penalty(\r\n      sequence_lengths=sequence_lengths, penalty_factor=length_penalty_weight)\r\n  return log_probs / length_penality_\r\n\r\n\r\ndef _length_penalty(sequence_lengths, penalty_factor):\r\n  \"\"\"Calculates the length penalty. See https://arxiv.org/abs/1609.08144.\r\n\r\n  Args:\r\n    sequence_lengths: The sequence length of all hypotheses, a tensor\r\n      of shape [beam_size, vocab_size].\r\n    penalty_factor: A scalar that weights the length penalty.\r\n\r\n  Returns:\r\n    The length penalty factor, a tensor fo shape [beam_size].\r\n  \"\"\"\r\n  penalty_factor = ops.convert_to_tensor(penalty_factor, name=\"penalty_factor\")\r\n  penalty_factor.set_shape(())  # penalty should be a scalar.\r\n  static_penalty = tensor_util.constant_value(penalty_factor)\r\n  if static_penalty is not None and static_penalty == 0:\r\n    return 1.0\r\n  return math_ops.div((5. + math_ops.to_float(sequence_lengths))\r\n                      **penalty_factor, (5. + 1.)**penalty_factor)\r\n\r\n\r\ndef _mask_probs(probs, eos_token, finished):\r\n  \"\"\"Masks log probabilities.\r\n\r\n  The result is that finished beams allocate all probability mass to eos and\r\n  unfinished beams remain unchanged.\r\n\r\n  Args:\r\n    probs: Log probabiltiies of shape `[batch_size, beam_width, vocab_size]`\r\n    eos_token: An int32 id corresponding to the EOS token to allocate\r\n      probability to.\r\n    finished: A boolean tensor of shape `[batch_size, beam_width]` that\r\n      specifies which\r\n      elements in the beam are finished already.\r\n\r\n  Returns:\r\n    A tensor of shape `[batch_size, beam_width, vocab_size]`, where unfinished\r\n    beams stay unchanged and finished beams are replaced with a tensor with all\r\n    probability on the EOS token.\r\n  \"\"\"\r\n  vocab_size = array_ops.shape(probs)[2]\r\n  finished_mask = array_ops.expand_dims(\r\n      math_ops.to_float(1. - math_ops.to_float(finished)), 2)\r\n  # These examples are not finished and we leave them\r\n  non_finished_examples = finished_mask * probs\r\n  # All finished examples are replaced with a vector that has all\r\n  # probability on EOS\r\n  finished_row = array_ops.one_hot(\r\n      eos_token,\r\n      vocab_size,\r\n      dtype=probs.dtype,\r\n      on_value=0.,\r\n      off_value=probs.dtype.min)\r\n  finished_examples = (1. - finished_mask) * finished_row\r\n  return finished_examples + non_finished_examples\r\n\r\n\r\ndef _maybe_tensor_gather_helper(gather_indices, gather_from, batch_size,\r\n                                range_size, gather_shape):\r\n  \"\"\"Maybe applies _tensor_gather_helper.\r\n\r\n  This applies _tensor_gather_helper when the gather_from dims is at least as\r\n  big as the length of gather_shape. This is used in conjunction with nest so\r\n  that we don't apply _tensor_gather_helper to inapplicable values like scalars.\r\n\r\n  Args:\r\n    gather_indices: The tensor indices that we use to gather.\r\n    gather_from: The tensor that we are gathering from.\r\n    batch_size: The batch size.\r\n    range_size: The number of values in each range. Likely equal to beam_width.\r\n    gather_shape: What we should reshape gather_from to in order to preserve the\r\n      correct values. An example is when gather_from is the attention from an\r\n      AttentionWrapperState with shape [batch_size, beam_width, attention_size].\r\n      There, we want to preserve the attention_size elements, so gather_shape is\r\n      [batch_size * beam_width, -1]. Then, upon reshape, we still have the\r\n      attention_size as desired.\r\n\r\n  Returns:\r\n    output: Gathered tensor of shape tf.shape(gather_from)[:1+len(gather_shape)]\r\n      or the original tensor if its dimensions are too small.\r\n  \"\"\"\r\n  _check_maybe(gather_from)\r\n  if gather_from.shape.ndims >= len(gather_shape):\r\n    return _tensor_gather_helper(\r\n        gather_indices=gather_indices,\r\n        gather_from=gather_from,\r\n        batch_size=batch_size,\r\n        range_size=range_size,\r\n        gather_shape=gather_shape)\r\n  else:\r\n    return gather_from\r\n\r\n\r\ndef _tensor_gather_helper(gather_indices, gather_from, batch_size,\r\n                          range_size, gather_shape, name=None):\r\n  \"\"\"Helper for gathering the right indices from the tensor.\r\n\r\n  This works by reshaping gather_from to gather_shape (e.g. [-1]) and then\r\n  gathering from that according to the gather_indices, which are offset by\r\n  the right amounts in order to preserve the batch order.\r\n\r\n  Args:\r\n    gather_indices: The tensor indices that we use to gather.\r\n    gather_from: The tensor that we are gathering from.\r\n    batch_size: The input batch size.\r\n    range_size: The number of values in each range. Likely equal to beam_width.\r\n    gather_shape: What we should reshape gather_from to in order to preserve the\r\n      correct values. An example is when gather_from is the attention from an\r\n      AttentionWrapperState with shape [batch_size, beam_width, attention_size].\r\n      There, we want to preserve the attention_size elements, so gather_shape is\r\n      [batch_size * beam_width, -1]. Then, upon reshape, we still have the\r\n      attention_size as desired.\r\n    name: The tensor name for set of operations. By default this is\r\n      'tensor_gather_helper'. The final output is named 'output'.\r\n\r\n  Returns:\r\n    output: Gathered tensor of shape tf.shape(gather_from)[:1+len(gather_shape)]\r\n  \"\"\"\r\n  with ops.name_scope(name, \"tensor_gather_helper\"):\r\n    range_ = array_ops.expand_dims(math_ops.range(batch_size) * range_size, 1)\r\n    gather_indices = array_ops.reshape(gather_indices + range_, [-1])\r\n    output = array_ops.gather(\r\n        array_ops.reshape(gather_from, gather_shape), gather_indices)\r\n    final_shape = array_ops.shape(gather_from)[:1 + len(gather_shape)]\r\n    static_batch_size = tensor_util.constant_value(batch_size)\r\n    final_static_shape = (tensor_shape.TensorShape([static_batch_size])\r\n                          .concatenate(\r\n                              gather_from.shape[1:1 + len(gather_shape)]))\r\n    output = array_ops.reshape(output, final_shape, name=\"output\")\r\n    output.set_shape(final_static_shape)\r\n    return output"
  },
  {
    "path": "utils/melt/seq2seq/seq2seq.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"Seq2seq layer operations for use in neural networks.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tensorflow.contrib import layers\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import rnn\nfrom tensorflow.python.ops import tensor_array_ops\nfrom tensorflow.python.ops import variable_scope as vs\n\nimport tensorflow as tf\n__all__ = [\"dynamic_rnn_decoder\"]\n\ndef dynamic_rnn_decoder(cell, decoder_fn, inputs=None, sequence_length=None,\n                        parallel_iterations=None, swap_memory=False,\n                        time_major=False, scope=None, name=None):\n  \"\"\" Dynamic RNN decoder for a sequence-to-sequence model specified by\n  RNNCell and decoder function.\n\n  The `dynamic_rnn_decoder` is similar to the `tf.python.ops.rnn.dynamic_rnn`\n  as the decoder does not make any assumptions of sequence length and batch\n  size of the input.\n\n  The `dynamic_rnn_decoder` has two modes: training or inference and expects\n  the user to create seperate functions for each.\n\n  Under both training and inference, both `cell` and `decoder_fn` are expected,\n  where `cell` performs computation at every timestep using `raw_rnn`, and\n  `decoder_fn` allows modeling of early stopping, output, state, and next\n  input and context.\n\n  When training the user is expected to supply `inputs`. At every time step a\n  slice of the supplied input is fed to the `decoder_fn`, which modifies and\n  returns the input for the next time step.\n\n  `sequence_length` is needed at training time, i.e., when `inputs` is not\n  None, for dynamic unrolling. At test time, when `inputs` is None,\n  `sequence_length` is not needed.\n\n  Under inference `inputs` is expected to be `None` and the input is inferred\n  solely from the `decoder_fn`.\n\n  Args:\n    cell: An instance of RNNCell.\n    decoder_fn: A function that takes time, cell state, cell input,\n      cell output and context state. It returns a early stopping vector,\n      cell state, next input, cell output and context state.\n      Examples of decoder_fn can be found in the decoder_fn.py folder.\n    inputs: The inputs for decoding (embedded format).\n\n      If `time_major == False` (default), this must be a `Tensor` of shape:\n        `[batch_size, max_time, ...]`.\n\n      If `time_major == True`, this must be a `Tensor` of shape:\n        `[max_time, batch_size, ...]`.\n\n      The input to `cell` at each time step will be a `Tensor` with dimensions\n        `[batch_size, ...]`.\n    sequence_length: (optional) An int32/int64 vector sized `[batch_size]`.\n      if `inputs` is not None and `sequence_length` is None it is inferred\n      from the `inputs` as the maximal possible sequence length.\n    parallel_iterations: (Default: 32).  The number of iterations to run in\n      parallel.  Those operations which do not have any temporal dependency\n      and can be run in parallel, will be.  This parameter trades off\n      time for space.  Values >> 1 use more memory but take less time,\n      while smaller values use less memory but computations take longer.\n    swap_memory: Transparently swap the tensors produced in forward inference\n      but needed for back prop from GPU to CPU.  This allows training RNNs\n      which would typically not fit on a single GPU, with very minimal (or no)\n      performance penalty.\n    time_major: The shape format of the `inputs` and `outputs` Tensors.\n      If true, these `Tensors` must be shaped `[max_time, batch_size, depth]`.\n      If false, these `Tensors` must be shaped `[batch_size, max_time, depth]`.\n      Using `time_major = True` is a bit more efficient because it avoids\n      transposes at the beginning and end of the RNN calculation.  However,\n      most TensorFlow data is batch-major, so by default this function\n      accepts input and emits output in batch-major form.\n    scope: VariableScope for the `raw_rnn`;\n      defaults to None.\n    name: NameScope for the decoder;\n      defaults to \"dynamic_rnn_decoder\"\n\n  Returns:\n    A tuple (outputs, final_state, final_context_state) where:\n\n      outputs: the RNN output 'Tensor'.\n\n        If time_major == False (default), this will be a `Tensor` shaped:\n          `[batch_size, max_time, cell.output_size]`.\n\n        If time_major == True, this will be a `Tensor` shaped:\n          `[max_time, batch_size, cell.output_size]`.\n\n      final_state: The final state and will be shaped\n        `[batch_size, cell.state_size]`.\n\n      final_context_state: The context state returned by the final call\n        to decoder_fn. This is useful if the context state maintains internal\n        data which is required after the graph is run.\n        For example, one way to diversify the inference output is to use\n        a stochastic decoder_fn, in which case one would want to store the\n        decoded outputs, not just the RNN outputs. This can be done by\n        maintaining a TensorArray in context_state and storing the decoded\n        output of each iteration therein.\n\n  Raises:\n    ValueError: if inputs is not None and has less than three dimensions.\n  \"\"\"\n  with ops.name_scope(name, \"dynamic_rnn_decoder\",\n                      [cell, decoder_fn, inputs, sequence_length,\n                       parallel_iterations, swap_memory, time_major, scope]):\n    if inputs is not None:\n      # Convert to tensor\n      inputs = ops.convert_to_tensor(inputs)\n\n      # Test input dimensions\n      if inputs.get_shape().ndims is not None and (\n          inputs.get_shape().ndims < 2):\n        raise ValueError(\"Inputs must have at least two dimensions\")\n      # Setup of RNN (dimensions, sizes, length, initial state, dtype)\n      if not time_major:\n        # [batch, seq, features] -> [seq, batch, features]\n        inputs = array_ops.transpose(inputs, perm=[1, 0, 2])\n\n      dtype = inputs.dtype\n      # Get data input information\n      input_depth = int(inputs.get_shape()[2])\n      batch_depth = inputs.get_shape()[1].value\n      max_time = inputs.get_shape()[0].value\n      if max_time is None:\n        max_time = array_ops.shape(inputs)[0]\n      # Setup decoder inputs as TensorArray\n      inputs_ta = tensor_array_ops.TensorArray(dtype, size=max_time)\n      inputs_ta = inputs_ta.unstack(inputs)\n\n    def loop_fn(time, cell_output, cell_state, loop_state):\n      if cell_state is None:  # first call, before while loop (in raw_rnn)\n        if cell_output is not None:\n          raise ValueError(\"Expected cell_output to be None when cell_state \"\n                           \"is None, but saw: %s\" % cell_output)\n        if loop_state is not None:\n          raise ValueError(\"Expected loop_state to be None when cell_state \"\n                           \"is None, but saw: %s\" % loop_state)\n        context_state = None\n      else:  # subsequent calls, inside while loop, after cell excution\n        if isinstance(loop_state, tuple):\n          (done, context_state) = loop_state\n        else:\n          done = loop_state\n          context_state = None\n\n      # call decoder function\n      if inputs is not None:  # training\n        # get next_cell_input\n        if cell_state is None:\n          next_cell_input = inputs_ta.read(0)\n        else:\n          if batch_depth is not None:\n            batch_size = batch_depth\n          else:\n            batch_size = array_ops.shape(done)[0]\n          next_cell_input = control_flow_ops.cond(\n              math_ops.equal(time, max_time),\n              lambda: array_ops.zeros([batch_size, input_depth], dtype=dtype),\n              lambda: inputs_ta.read(time))\n        (next_done, next_cell_state, next_cell_input, emit_output,\n         next_context_state) = decoder_fn(time, cell_state, next_cell_input,\n                                          cell_output, context_state)\n      else:  # inference\n        # next_cell_input is obtained through decoder_fn\n        (next_done, next_cell_state, next_cell_input, emit_output,\n         next_context_state) = decoder_fn(time, cell_state, None, cell_output,\n                                          context_state)\n      # check if we are done\n      if next_done is None:  # training\n        next_done = time >= sequence_length\n\n      # build next_loop_state\n      if next_context_state is None:\n        next_loop_state = next_done\n      else:\n        next_loop_state = (next_done, next_context_state)\n\n      return (next_done, next_cell_input, next_cell_state,\n              emit_output, next_loop_state)\n\n    # Run raw_rnn function\n    outputs_ta, final_state, final_loop_state = rnn.raw_rnn(\n        cell, loop_fn, parallel_iterations=parallel_iterations,\n        swap_memory=swap_memory, scope=scope)\n    outputs = outputs_ta.stack()\n\n    # Get final context_state, if generated by user\n    if isinstance(final_loop_state, tuple):\n      final_context_state = final_loop_state[1]\n    else:\n      final_context_state = None\n\n    if not time_major:\n      # [seq, batch, features] -> [batch, seq, features]\n      outputs = array_ops.transpose(outputs, perm=[1, 0, 2])\n    return outputs, final_state, final_context_state\n"
  },
  {
    "path": "utils/melt/setup.py",
    "content": "import os\n\nimport setuptools\nfrom setuptools import setup\n\n__version__ = '0.2.0'\n\nsetup(name='melt',\n      version=__version__,\n      packages=setuptools.find_packages())\n"
  },
  {
    "path": "utils/melt/slim2/__init__.py",
    "content": "import melt.slim2.layers \nfrom melt.slim2.layers import *\n\n#import melt.slim.base_nets_factory\n#import melt.slim.preprocessing_factory\n"
  },
  {
    "path": "utils/melt/slim2/base_nets_factory.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Contains a factory for building various models.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nimport functools\n\nimport tensorflow as tf\n\nfrom nets import alexnet\nfrom nets import cifarnet\nfrom nets import inception\nfrom nets import lenet\nfrom nets import mobilenet_v1\nfrom nets import overfeat\nfrom nets import resnet_v1\nfrom nets import resnet_v2\nfrom nets import vgg\n\nslim = tf.contrib.slim\n\nbase_networks_map = {\n                'inception_v1': inception.inception_v1_base,\n                'inception_v2': inception.inception_v2_base,\n                'inception_v3': inception.inception_v3_base,\n                'inception_v4': inception.inception_v4_base,\n                'inception_resnet_v2': inception.inception_resnet_v2_base,\n               }\n\narg_scopes_map = {'alexnet_v2': alexnet.alexnet_v2_arg_scope,\n                  'cifarnet': cifarnet.cifarnet_arg_scope,\n                  'overfeat': overfeat.overfeat_arg_scope,\n                  'vgg_a': vgg.vgg_arg_scope,\n                  'vgg_16': vgg.vgg_arg_scope,\n                  'vgg_19': vgg.vgg_arg_scope,\n                  'inception_v1': inception.inception_v3_arg_scope,\n                  'inception_v2': inception.inception_v3_arg_scope,\n                  'inception_v3': inception.inception_v3_arg_scope,\n                  'inception_v4': inception.inception_v4_arg_scope,\n                  'inception_resnet_v2':\n                  inception.inception_resnet_v2_arg_scope,\n                  'lenet': lenet.lenet_arg_scope,\n                  'resnet_v1_50': resnet_v1.resnet_arg_scope,\n                  'resnet_v1_101': resnet_v1.resnet_arg_scope,\n                  'resnet_v1_152': resnet_v1.resnet_arg_scope,\n                  'resnet_v1_200': resnet_v1.resnet_arg_scope,\n                  'resnet_v2_50': resnet_v2.resnet_arg_scope,\n                  'resnet_v2_101': resnet_v2.resnet_arg_scope,\n                  'resnet_v2_152': resnet_v2.resnet_arg_scope,\n                  'resnet_v2_200': resnet_v2.resnet_arg_scope,\n                  'mobilenet_v1': mobilenet_v1.mobilenet_v1_arg_scope,\n                  'mobilenet_v1_075': mobilenet_v1.mobilenet_v1_arg_scope,\n                  'mobilenet_v1_050': mobilenet_v1.mobilenet_v1_arg_scope,\n                  'mobilenet_v1_025': mobilenet_v1.mobilenet_v1_arg_scope,\n                 }\n\n\ndef get_base_network_fn(name, weight_decay=0.0):\n  \"\"\"Returns a network_fn such as `logits, end_points = network_fn(images)`.\n\n  Args:\n    name: The name of the network.\n    weight_decay: The l2 coefficient for the model weights.\n\n  Returns:\n    base_network_fn: A function that applies the model to a batch of images. It has\n      the following signature:\n        net, end_points = network_fn(images)\n  Raises:\n    ValueError: If network `name` is not recognized.\n  \"\"\"\n  if name not in base_networks_map:\n    #raise ValueError('Name of network unknown %s' % name)\n    return None\n  func = base_networks_map[name]\n  @functools.wraps(func)\n  def base_network_fn(images):\n    arg_scope = arg_scopes_map[name](weight_decay=weight_decay)\n    with slim.arg_scope(arg_scope):\n      return func(images)\n  if hasattr(func, 'default_image_size'):\n    base_network_fn.default_image_size = func.default_image_size\n\n  return base_network_fn\n"
  },
  {
    "path": "utils/melt/slim2/layers.py",
    "content": "#!/usr/bin/env python\r\n# -*- coding: utf-8 -*-\r\n# ==============================================================================\r\n#          \\file   layers.py\r\n#        \\author   chenghuige  \r\n#          \\date   2016-08-19 23:22:44.032101\r\n#   \\Description  \r\n# ==============================================================================\r\n\r\n  \r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport tensorflow as tf\r\nimport melt\r\nfrom tensorflow.contrib.layers.python.layers import utils\r\nfrom tensorflow.contrib.layers.python.layers import initializers\r\nfrom tensorflow.python.ops import init_ops\r\nimport tensorflow.contrib.slim as slim\r\n\r\ndef mlp(inputs, \r\n        dims, \r\n        activation_fn=tf.nn.relu,\r\n        dropout=None,\r\n        training=False,\r\n        normalizer_fn=None,\r\n        normalizer_params=None,\r\n        weights_initializer=initializers.xavier_initializer(),\r\n        weights_regularizer=None,\r\n        biases_initializer=init_ops.zeros_initializer,\r\n        biases_regularizer=None,\r\n        reuse=None,\r\n        variables_collections=None,\r\n        outputs_collections=None,\r\n        trainable=True, \r\n        scope=None):\r\n  with tf.variable_scope(scope, 'mlp', [inputs], reuse=reuse):\r\n    for i in xrange(len(dims) -1):\r\n      inputs = slim.fully_connected(inputs, \r\n                               dims[i], \r\n                               activation_fn=activation_fn, \r\n                               weights_initializer=weights_initializer,\r\n                               biases_initializer=biases_initializer, \r\n                               reuse=reuse,\r\n                               scope='fc_%d'%i)\r\n      if dropout and dropout > 0.:\r\n        inputs = tf.layers.dropout(inputs, dropout, training=training)\r\n\r\n    return slim.linear(inputs, \r\n                       dims[-1], \r\n                       weights_initializer=weights_initializer,\r\n                       biases_initializer=biases_initializer,\r\n                       reuse=reuse,\r\n                       scope='linear')\r\n\r\ndef fully_connected(inputs, \r\n        dims, \r\n        activation_fn=tf.nn.relu,\r\n        dropout=None,\r\n        training=False,\r\n        normalizer_fn=None,\r\n        normalizer_params=None,\r\n        weights_initializer=initializers.xavier_initializer(),\r\n        weights_regularizer=None,\r\n        biases_initializer=init_ops.zeros_initializer,\r\n        biases_regularizer=None,\r\n        reuse=None,\r\n        variables_collections=None,\r\n        outputs_collections=None,\r\n        trainable=True, \r\n        scope=None):\r\n  with tf.variable_scope(scope, 'fully_connected', [inputs], reuse=reuse):\r\n    for i in range(len(dims)):\r\n      inputs = slim.fully_connected(inputs, \r\n                               dims[i], \r\n                               activation_fn=activation_fn, \r\n                               weights_initializer=weights_initializer,\r\n                               biases_initializer=biases_initializer, \r\n                               reuse=reuse,\r\n                               scope='fc_%d'%i)\r\n      if dropout and dropout > 0.:\r\n        inputs = tf.layers.dropout(inputs, dropout, training=training)\r\n    \r\n    return inputs\r\n"
  },
  {
    "path": "utils/melt/slim2/preprocessing_factory.py",
    "content": "# Copyright 2016 The TensorFlow Authors. All Rights Reserved.\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\"\"\"Contains a factory for building various models.\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nfrom preprocessing import cifarnet_preprocessing\nfrom preprocessing import inception_preprocessing\nfrom preprocessing import lenet_preprocessing\nfrom preprocessing import vgg_preprocessing\n\nslim = tf.contrib.slim\n\n\n# def get_preprocessing(name, is_training=False):\n#   \"\"\"Returns preprocessing_fn(image, height, width, **kwargs).\n\n#   Args:\n#     name: The name of the preprocessing function.\n#     is_training: `True` if the model is being used for training and `False`\n#       otherwise.\n\n#   Returns:\n#     preprocessing_fn: A function that preprocessing a single image (pre-batch).\n#       It has the following signature:\n#         image = preprocessing_fn(image, output_height, output_width, ...).\n\n#   Raises:\n#     ValueError: If Preprocessing `name` is not recognized.\n#   \"\"\"\n#   preprocessing_fn_map = {\n#       'cifarnet': cifarnet_preprocessing,\n#       'inception': inception_preprocessing,\n#       'inception_v1': inception_preprocessing,\n#       'inception_v2': inception_preprocessing,\n#       'inception_v3': inception_preprocessing,\n#       'inception_v4': inception_preprocessing,\n#       'inception_resnet_v2': inception_preprocessing,\n#       'lenet': lenet_preprocessing,\n#       'mobilenet_v1': inception_preprocessing,\n#       'resnet_v1_50': vgg_preprocessing,\n#       'resnet_v1_101': vgg_preprocessing,\n#       'resnet_v1_152': vgg_preprocessing,\n#       'resnet_v1_200': vgg_preprocessing,\n#       'resnet_v2_50': vgg_preprocessing,\n#       'resnet_v2_101': vgg_preprocessing,\n#       'resnet_v2_152': vgg_preprocessing,\n#       'resnet_v2_200': vgg_preprocessing,\n#       'vgg': vgg_preprocessing,\n#       'vgg_a': vgg_preprocessing,\n#       'vgg_16': vgg_preprocessing,\n#       'vgg_19': vgg_preprocessing,\n#   }\n\n#   if name not in preprocessing_fn_map:\n#     raise ValueError('Preprocessing name [%s] was not recognized' % name)\n\n#   def preprocessing_fn(image, output_height, output_width, **kwargs):\n#     return preprocessing_fn_map[name].preprocess_image(\n#         image, output_height, output_width, is_training=is_training, **kwargs)\n\n  return preprocessing_fn\n"
  },
  {
    "path": "utils/melt/tfrecords/__init__.py",
    "content": "#deprecated use decode_then_shuffle and shuffle_then_decode\nimport melt.tfrecords.read \n\nimport melt.tfrecords.libsvm_decode\n\nimport melt.tfrecords.decode_then_shuffle  \nimport melt.tfrecords.shuffle_then_decode\nimport melt.tfrecords.dataset_decode \n#import melt.tfrecords.dataset_decode as decode\n\nimport melt.tfrecords.write\nfrom melt.tfrecords.write import *\nfrom melt.tfrecords.dataset import Dataset\n"
  },
  {
    "path": "utils/melt/tfrecords/dataset.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\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\"\"\"CIFAR-10 data set.\n\nSee http://www.cs.toronto.edu/~kriz/cifar.html.\n\"\"\"\nimport os\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport gezi\nimport melt\nlogging = melt.logging\n\n# NOTICE if batc_parse, first batch then map.. you have faster speed but each batch is the same size like 256 even for the last batch with drop remind=False\n# have tested textlinedataset behavior like above TODO check tfrecord\nclass Dataset(object):\n  def __init__(self, \n               subset=None,\n               batch_size=None,\n               Type=None, \n               batch_parse=False,\n               hvd_shard=True):\n    self.subset = subset\n    self.filter_fn = None\n    self.pos_filter_fn = None\n    self.neg_filter_fn = None \n    self.count_fn = None\n    self.Type = Type\n    self.batch_parse = batch_parse\n    self.batch_size = batch_size or FLAGS.batch_size\n    self.hvd_shard = hvd_shard\n\n  def get_filenames(self, subset=None):\n    sbuset = subset or self.subset\n    try:\n      if subset in ['train', 'valid', 'test']:\n        if subset == 'train':\n          return gezi.list_files(FLAGS.train_input)\n        elif subset == 'valid':\n          return gezi.list_files(FLAGS.valid_input)\n        elif subset == 'test':\n          return gezi.list_files(FLAGS.test_input)\n      else:\n        raise ValueError('Invalid data subset \"%s\"' % subset)\n    except Exception:\n      return None\n\n  def parser(self, example):\n    raise NotImplementedError\n\n  def adjust(self, result):\n    return result\n\n  def make_batch(self, \n                 batch_size=None, \n                 filenames=None,\n                 subset=None,\n                 initializable=False,\n                 repeat=None,\n                 return_iterator=True,\n                 hvd_shard=None,\n                 simple_parse=False):\n    \"\"\"Read the images and labels from 'filenames'.\"\"\"\n    #with tf.device('/cpu:0'):\n    subset = subset or self.subset\n    hvd_shard = hvd_shard if hvd_shard is not None else self.hvd_shard\n    batch_size = batch_size or self.batch_size\n    self.batch_size = batch_size\n    filenames = filenames or self.get_filenames(subset)\n    logging.info(subset, 'num files', len(filenames))\n    assert filenames, subset\n    min_queue_examples = 20000\n    allow_smaller_final_batch = True\n    if repeat is None:\n      # if tf.executing_eagerly():\n      #   repeat = False # if True will not consider epoch stop using for... loop forever for item in dataset..\n      # else:\n      #   # for eval in num_gpus > 1 then set repeat = True so final batch with full batch\n      #   # TODO \n      num_gpus = melt.num_gpus() if not 'OMPI_COMM_WORLD_RANK' in os.environ else 1\n      if subset == 'train' or num_gpus > 1:\n        repeat = True\n      else:\n        repeat = False\n      if tf.executing_eagerly() and num_gpus == 1:\n        # let tf eager similary to pytorch\n        repeat = False\n\n    if subset == 'train':\n      shuffle_files=True \n      fix_sequence = False\n      # if self.batch_parse:\n      #   allow_smaller_final_batch = False\n    else:\n      shuffle_files = False\n      fix_sequence = True\n      # TODO try horovod metric evaluate using multiple gpu\n\n    balance_pos_neg=False\n    if self.pos_filter_fn and self.neg_filter_fn:\n      balance_pos_neg = True\n\n    logging.info('-----------dataset repeat', repeat)\n    logging.info('-----------dataset batch_parse', self.batch_parse)\n    logging.info('-----------dataset allow final small batch', allow_smaller_final_batch)\n    # for bow using cpu 69 insts/s using gpu 54 inst/s\n    with tf.device('/cpu:0'):\n      result = melt.dataset_decode.inputs(\n        filenames, \n        decode_fn=self.parse,\n        batch_size=batch_size,\n        num_threads=FLAGS.num_threads,\n        shuffle_files=shuffle_files,\n        fix_sequence=fix_sequence,\n        buffer_size=min_queue_examples + 3 * batch_size if not FLAGS.buffer_size else FLAGS.buffer_size,\n        initializable=initializable,\n        repeat=repeat,\n        allow_smaller_final_batch=allow_smaller_final_batch,\n        bucket_boundaries=FLAGS.buckets,\n        bucket_batch_sizes=FLAGS.batch_sizes,\n        length_index=FLAGS.length_index,\n        length_key=FLAGS.length_key,\n        seed=FLAGS.seed,\n        return_iterator=return_iterator,\n        filter_fn=self.filter_fn if subset == 'train' else None,\n        balance_pos_neg=balance_pos_neg,\n        pos_filter_fn=self.pos_filter_fn if subset == 'train' else None,\n        neg_filter_fn=self.neg_filter_fn if subset == 'train' else None,\n        count_fn=self.count_fn if subset == 'train' else None,\n        name=subset,\n        Dataset=self.Type,\n        batch_parse=self.batch_parse,\n        hvd_shard=hvd_shard,\n        training=subset == 'train',\n        simple_parse=simple_parse) \n\n      return self.adjust(result)\n\n\n  @staticmethod\n  def num_examples_per_epoch(subset, dir=None):\n    default_value = None\n    subset = subset or self.subset\n    if subset == 'train':\n      file = (dir or gezi.dirname(FLAGS.train_input.split(',')[0])) + '/num_records.txt'\n      return gezi.read_int_from(file, default_value)\n    elif subset == 'valid':\n      file = (dir or gezi.dirname(FLAGS.valid_input)) + '/num_records.txt'\n      return gezi.read_int_from(file, default_value)\n    elif subset == 'test':\n      file = (dir or gezi.dirname(FLAGS.test_input)) + '/num_records.txt'\n      return gezi.read_int_from(file, default_value)\n    else:\n      raise ValueError('Invalid data subset \"%s\"' % subset)\n\n"
  },
  {
    "path": "utils/melt/tfrecords/dataset_decode.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   read_sparse.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 20:13:06.751843\n#   \\Description  @TODO https://github.com/tensorflow/tensorflow/tree/r0.10/tensorflow/contrib/slim/python/slim/data/\n# ==============================================================================\n \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport gezi\nimport melt\nlogging = melt.logging\n\nimport sys\nimport os\nimport numpy as np\nimport inspect\n\n# TODO\n# #https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/data_reader.py\ndef padded_batch(d, batch_size, padded_shapes=None):\n  padded_shapes = padded_shapes or dict(\n      [(name, [None] * len(shape))\n       for name, shape in d.output_shapes.items()])\n  return d.padded_batch(batch_size, padded_shapes)\n\ndef inputs(files, \n           decode_fn, \n           batch_size=64,\n           num_epochs = None, \n           num_threads=None, \n           buffer_size = 15000, #change from 1000 to 15000\n           dynamic_pad=True,\n           shuffle_files=True, batch_join=True, shuffle_batch=True, \n           min_after_dequeue=None, seed=None, enqueue_many=False,\n           fix_random=False, no_random=False, fix_sequence=False,\n           allow_smaller_final_batch=True, \n           num_prefetch_batches=None, \n           bucket_boundaries=None,\n           length_index=None,\n           length_key=None,\n           length_fn=None,\n           bucket_batch_sizes=None,\n           repeat=True,\n           initializable=False,\n           filter_fn=None,\n           balance_pos_neg=False,\n           pos_filter_fn=None,\n           neg_filter_fn=None,\n           count_fn=None,\n           return_iterator=False,\n           Dataset=None,\n           batch_parse=False, #by default will be line parse\n           hvd_shard=True,\n           shard_by_files=False,\n           training=True,\n           simple_parse=False,\n           repeat_then_shuffle=False,\n           name='input'):\n  \"\"\"Reads input data num_epochs times.\n  for sparse input here will do:\n  1. read serialized_example\n  2. shuffle serialized_examples\n  3. decdoe batch_serialized_examples\n  notice read_sparse.inputs and also be used for dense inputs,but if you \n  only need to decode part from serialized_example, then read.inputs will \n  be better, less to put to suffle\n  #--------decode example, can refer to libsvm-decode.py\n  # def decode(batch_serialized_examples):\n  #   features = tf.parse_example(\n  #       batch_serialized_examples,\n  #       features={\n  #           'label' : tf.FixedLenFeature([], tf.int64),\n  #           'index' : tf.VarLenFeature(tf.int64),\n  #           'value' : tf.VarLenFeature(tf.float32),\n  #       })\n\n  #   label = features['label']\n  #   index = features['index']\n  #   value = features['value']\n\n  #   return label, index, value \n\n  #string_input_reducer will shuffle files\n  #shuffle will read file by file and shuffle withn file(in shuffle queue) \n  #shuffle_batch_join will read multiple files and shuffle in shuffle queue(from many files)\n\n  To get fixed sequence \n  shuffle=False  so by this way the sequence is as your data input unchange\n  or\n  shuffle=True\n  seed=1024 #set\n  batch_join=False  by this way you have fixed random, so get same result\n  NOTICE, shuffle=True,seed=1024,batch_join=True will not get same result\n  shuffle=False,seed=1024,batch_join=True also, so batch_join seems seed only control inqueue random, can not get fixed result\n\n  for no random -> fixed result set shuffle=False wihch will force batch_join=False then use batch\n  for fixed random ->  shuffle=True, seed set or  fix_random=True\n  read-records.py show above ok, but train-evaluate.py show not, only shuffle=False can get fixed result.. @FIXME strange\n  for train-evaluate.py it looks you can set shuffle in string_input_producer True, but then must use batch,\n  batch_join and shuffle_batch join all not fixed even with seed set, may be due to trainset two inputs read ?\n  for read-records.py batch_join will be fixed, shuffle_batch_join not \n\n  defualt parmas will give max random...\n\n  Args:\n  decode: user defined decode \n  min_after_dequeue: set to >2w for production train, suggesed will be 0.4 * num_instances, but also NOTICE do not exceed mem\n  #--default parmas will make most randomness\n  shuffle_files: wehter shuffle file \n  shuffle_batch: batch or shuffle_batch\n  batch_join: wether to use multiple reader or use one reader mutlitple thread\n  fix_random: if True make at most random which can fix random result\n  allow_smaller_final_batch: set True usefull if you want verify on small d\n\n  great article http://d0evi1.com/tensorflow/ds_performance/\n  https://www.tensorflow.org/versions/master/performance/ds_performance\n  \"\"\"\n  use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n  if use_horovod:\n    if FLAGS.torch:\n      import horovod.torch as hvd\n    else:\n      import horovod.tensorflow as hvd\n\n  def shard(d):\n    return d.shard(hvd.size(), hvd.rank())\n\n  # Choose to use cpu outside input function like in d.py\n  #with tf.device('/cpu:0'):\n  if isinstance(files, str):\n    files = gezi.list_files(files)\n  assert len(files) > 0\n\n  if use_horovod and not hvd_shard and training:\n    assert len(files) % hvd.size() == 0, '{} {} {}'.format(len(files), files, hvd.size())\n    files_ = []\n    for i in range(len(files)):\n      if i % hvd.size() == hvd.rank():\n        files_.append(files[i])\n    files = files_\n    print('----------train-files', files)\n    #exit(0)\n\n  if not num_threads:\n    try:\n      import multiprocessing\n      #num_threads = int(multiprocessing.cpu_count() * 0.6)\n      num_threads = multiprocessing.cpu_count() \n      logging.info('num_threads as multiprocessing.cpu_count', num_threads)\n    except Exception:\n      num_threads = 12\n      logging.info('num_threads set by default', num_threads)\n  #num_threads = 12\n\n  if 'batch_size' in inspect.getargspec(decode_fn).args:\n    decode_fn_ = decode_fn\n    def decode_function(example):\n      return decode_fn_(example, batch_size)\n    decode_fn = decode_function\n\n  if simple_parse and training:\n    # for multiple gpu horovod run seem this much better, might due to repeat then shuffle better TODO \n    d = Dataset(files)\n    if use_horovod and hvd_shard:\n      d = shard(d)\n    d = d.repeat(num_epochs).shuffle(batch_size * 1024).batch(batch_size).map(decode_fn, num_parallel_calls=num_threads).prefetch(9)\n    return d.make_one_shot_iterator()\n    \n  if not min_after_dequeue: \n    min_after_dequeue = melt.tfrecords.read.MIN_AFTER_QUEUE\n\n  if not num_epochs: \n    num_epochs = None\n\n  if fix_random:\n    if seed is None:\n      seed = 1024\n    shuffle_files = True  \n    batch_join = False  #check can be True ?\n\n    shuffle_batch = True\n    #num_threads = 1\n\n  if fix_sequence:\n    no_random = True \n    allow_smaller_final_batch = True\n    #num_threads = 1\n\n  if no_random:\n    shuffle_files = False\n    batch_join = False\n    shuffle_batch = False \n\n  drop_remainder = False if allow_smaller_final_batch else True\n  #drop_remainder = True\n\n  if not num_prefetch_batches:\n    #num_prefetch_batches = num_threads + 3\n    if buffer_size is not None:\n      num_prefetch_batches = int(buffer_size / batch_size)\n    else:\n      num_prefetch_batches = 1024\n  \n  if buffer_size is None:\n    # ... Too small ? but 1024 will cause starup slow\n    buffer_size = min_after_dequeue + num_prefetch_batches * batch_size\n    #buffer_size = 1024 * batch_size\n    \n  with tf.name_scope(name):\n    # https://github.com/tensorflow/tensorflow/issues/14857\n    Dataset = Dataset or tf.data.TFRecordDataset\n    if not shuffle_files or len(files) == 1:\n      d = Dataset(files)\n      if use_horovod and hvd_shard:\n        d = shard(d)\n    else:\n      d = tf.data.Dataset.list_files(files)\n      # here shard by files, not work good, especially for text line dataset with hrovod\n      if use_horovod and shard_by_files:\n        d = shard(d)\n      if shuffle_files:\n        d = d.shuffle(len(files), seed=seed)\n        d = d.interleave(Dataset,\n                        cycle_length=num_threads, block_length=1)\n      if use_horovod and not shard_by_files:\n        d = shard(d)\n\n      #repeat_then_shuffle = True\n      ## below on tf doc, but shard by files will cause problem, especially horovod mutlitple gpu, still not fully understand\n      # Be sure to shard before you use any randomizing operator (such as shuffle).\n      # Generally it is best if the shard operator is used early in the d pipeline. For example, when reading from a set of TFRecord files, shard before converting the d to input samples. This avoids reading every file on every worker. The following is an example of an efficient sharding strategy within a complete pipeline:\n      # d = Dataset.list_files(pattern)\n      # d = d.shard(num_workers, worker_index)\n      # d = d.repeat(num_epochs)\n      # d = d.shuffle(shuffle_buffer_size)\n      # d = d.interleave(tf.data.TFRecordDataset,\n      #                  cycle_length=num_readers, block_length=1)\n      # d = d.map(parser_fn, num_parallel_calls=num_map_threads)\n\n      # # # TODO still need shuffle here ?\n      # # #https://www.tensorflow.org/api_docs/python/tf/data/Dataset#shuffle\n      # d = d.shuffle(num_files)\\\n      #                   .apply(tf.contrib.data.parallel_interleave(\n      #                         Dataset, \n      #                         cycle_length=num_threads))\n\n    if repeat and repeat_then_shuffle:\n      d = d.repeat(num_epochs)\n\n    # must batch then map if use pyfunc which you might use batch_parse, here batch_parse means batch parse otherwise slower but simple and powerfull...\n    if not batch_parse:\n      d = d.map(decode_fn, num_parallel_calls=num_threads)\n\n    try:\n      #shapes = d._output_shapes \n      shapes = tf.data.get_output_shapes(d)\n    except Exception:\n      shapes = None\n    \n    #logging.info('datast decode shapes', shapes)\n    \n    ## Has bug.. seems as least not work with bucket not sure without bucket ok or not\n    if balance_pos_neg:\n      # https://stackoverflow.com/questions/46938530/produce-balanced-mini-batch-with-d-api/49283371#49283371\n      ds_pos = d.filter(pos_filter_fn).repeat()\n      ds_neg = d.filter(neg_filter_fn)\n\n      # def _concat(x, y):\n      #   return tf.cond(tf.random_uniform(()) > 0.5, lambda: x, lambda: y)\n      # d = tf.data.Dataset.zip((ds_pos, ds_neg))\n      # d = d.map(_concat)\n\n      d = tf.data.Dataset.zip((ds_pos, ds_neg))\n      # Each input element will be converted into a two-element `Dataset` using\n      # `Dataset.from_tensors()` and `Dataset.concatenate()`, then `Dataset.flat_map()`\n      # will flatten the resulting `Dataset`s into a single `Dataset`.\n      d = d.flat_map(\n          lambda ex_pos, ex_neg: tf.data.Dataset.from_tensors(ex_pos).concatenate(\n              tf.data.Dataset.from_tensors(ex_neg)))\n\n    #https://github.com/tensorflow/tensorflow/issues/14451\n    # count_fn for over sample\n    if count_fn is not None:\n      d = d.flat_map(\n        lambda x, y : tf.data.Dataset.from_tensors((x, y)).repeat(tf.to_int64(count_fn(x, y))))\n\n    # filter fn for under sample\n    # if under_sample_filter_fn is not None:\n    #   d = d.filter(under_sample_filter_fn)\n      \n    if filter_fn is not None:\n      d = d.filter(filter_fn)\n  \n    if shuffle_batch:\n      logging.info('shuffle with buffer_size', buffer_size, 'seed', seed)\n      d = d.shuffle(buffer_size=buffer_size, seed=seed)\n\n    # shuffle then repeat\n    if repeat and not repeat_then_shuffle:\n      d = d.repeat(num_epochs)\n\n    # d = d.interleave(Dataset,\n    #                       cycle_length=num_threads, block_length=16)\n\n\n    # https://stackoverflow.com/questions/46444018/meaning-of-buffer-size-in-d-map-d-prefetch-and-d-shuffle\n    #d = d.prefetch(buffer_size)\n    d = d.prefetch(num_prefetch_batches * batch_size)\n    #d = d.prefetch(num_prefetch_batches)\n\n    # #https://github.com/HKUST-KnowComp/R-Net/blob/master/util.py\n    # #https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/data_reader.py\n    if bucket_boundaries:\n      # TODO remove support for length index, use use length key!\n      assert length_key is not None or length_index is not None, 'forget to set length key  or length index ?'\n      if not isinstance(bucket_boundaries, (list, tuple)):\n        boundaries = [int(x) for x in bucket_boundaries.split(',') if x.strip()]\n      else:\n        boundaries = bucket_boundaries\n      logging.info('bucket_boundaries', boundaries)\n      with tf.name_scope(\"bucket_by_seq_length\"):\n        def example_to_bucket_id(*args, **kw):\n          \"\"\"Return int64 id of the length bucket for this example.\"\"\"\n          #assert length_index is not None\n          if length_key is None:\n            try:\n              x = list(args[0])[length_index]\n            except Exception:\n              x = args[length_index]\n          else:\n            try:\n              x = args[0][length_key]\n            except Exception:\n              x = args[length_key]      \n          \n          seq_length = tf.reduce_sum(tf.cast(tf.cast(x, tf.bool), tf.int32))\n          \n          buckets_min = [np.iinfo(np.int32).min] + boundaries\n          buckets_max = boundaries + [np.iinfo(np.int32).max]\n          conditions_c = tf.logical_and(\n              tf.less_equal(buckets_min, seq_length),\n              tf.less(seq_length, buckets_max))\n          bucket_id = tf.reduce_min(tf.where(conditions_c))\n          return bucket_id\n\n        if not bucket_batch_sizes:\n          def batching_fn(bucket_id, grouped_d):\n              return grouped_d.padded_batch(batch_size, padded_shapes=(shapes))\n\n          ## TODO larger window better hsku squad doing this like below, shuffle can be better ?\n          ## NOTICE!! shuffle may be slow start fill queue can remove not hurt performance ?\n          d = d.apply(tf.contrib.data.group_by_window(\n            example_to_bucket_id, batching_fn, window_size=5 * batch_size)).shuffle((len(boundaries) + 1) * 25)\n\n          ## tenor2tensor doing this, no shuffle ? also it seems like window_func for different bounds\n          ## with different batch_size ?\n          # d = d.apply(\n          #   tf.contrib.data.group_by_window(example_to_bucket_id, batching_fn, batch_size)).shuffle((len(boundaries) + 1) * 25)\n        else:\n          # TEST OK \n          # test ok ie buckets[400] batch_sizes[64, 32]\n          if not isinstance(bucket_batch_sizes, (list, tuple)):\n            bucket_batch_sizes = [int(x) for x in bucket_batch_sizes.split(',') if x.strip()]\n\n          logging.info('bucket_batche_sizes', bucket_batch_sizes)\n          assert len(boundaries) + 1 == len(bucket_batch_sizes)\n\n          def window_size_fn(bucket_id):\n            # window size = batch size\n            batch_sizes = tf.constant(bucket_batch_sizes, dtype=tf.int64)\n            window_size = batch_sizes[bucket_id]\n            # * 5 will make reading slower\n            window_size *= 5\n            return window_size\n\n          def batching_fn(bucket_id, grouped_d):\n            batch_sizes = tf.constant(bucket_batch_sizes, dtype=tf.int64)\n            batch_size = batch_sizes[bucket_id]\n            #return padded_batch(grouped_d, batch_size, padded_shapes=None)\n            return grouped_d.padded_batch(batch_size, padded_shapes=(shapes))\n\n          # shuffle will make start slower might fill\n          d = d.apply(tf.contrib.data.group_by_window(\n            example_to_bucket_id, batching_fn, None, window_size_fn)).shuffle((len(boundaries) + 1) * 25)      \n    else:\n      # no bucket\n      if dynamic_pad and not batch_parse:\n        d = d.padded_batch(batch_size, padded_shapes=(shapes), drop_remainder=drop_remainder)\n      else:\n        d = d.batch(batch_size, drop_remainder=drop_remainder)\n        if batch_parse:\n          d = d.map(decode_fn, num_parallel_calls=num_threads)\n\n    # if not allow_smaller_final_batch:\n    #   # https://github.com/tensorflow/tensorflow/issues/13745 d.apply(tf.contrib.data.batch_and_drop_remainder(10)).\n    #   d = d.filter(lambda x, *args, **kw: tf.equal(tf.shape(x)[0], batch_size))\n\n  # TODO save iterator ?\n  ## Create saveable object from iterator.\n  #saveable = tf.contrib.data.make_saveable_from_iterator(iterator)\n\n  # Save the iterator state by adding it to the saveable objects collection.\n  #tf.add_to_collection(tf.GraphKeys.SAVEABLE_OBJECTS, saveable)\n    #try:\n    if tf.executing_eagerly():\n      # TODO store iterator for eager\n      return d\n    else:\n      if repeat and not initializable:\n        iterator = d.make_one_shot_iterator() \n        saveable = tf.contrib.data.make_saveable_from_iterator(iterator)\n        tf.add_to_collection(tf.GraphKeys.SAVEABLE_OBJECTS, saveable)\n        if return_iterator:\n          return iterator\n        ops = iterator.get_next()\n        return ops\n      else:\n        iterator = d.make_initializable_iterator()\n        saveable = tf.contrib.data.make_saveable_from_iterator(iterator)\n        tf.add_to_collection(tf.GraphKeys.SAVEABLE_OBJECTS, saveable)\n        return iterator\n    # except Exception:\n    #   if repeat and not initializable:\n    #     iterator = d.make_one_shot_iterator()\n    #     saveable = tf.contrib.data.make_saveable_from_iterator(iterator)\n    #     tf.add_to_collection(tf.GraphKeys.SAVEABLE_OBJECTS, saveable)\n    #     if return_iterator:\n    #       return iterator\n    #     ops = iterator.get_next()\n    #     return ops\n    #   else:\n    #     # if not repeat then need to init iterator each epoch\n    #     iterator = d.make_initializable_iterator()\n    #     saveable = tf.contrib.data.make_saveable_from_iterator(iterator)\n    #     tf.add_to_collection(tf.GraphKeys.SAVEABLE_OBJECTS, saveable)\n    #     return iterator         \n"
  },
  {
    "path": "utils/melt/tfrecords/decode_then_shuffle.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 20:10:44.183328\n#   \\Description   Read from TFRecords\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport gezi\nimport melt\n\n# deprecated just using dataset_decode.py\n\n# TODO https://www.tensorflow.org/programmers_guide/datasets  using DATASET API instead \n\ndef _read_decode(filename_queue, decode_fn, thread_id=0):\n  reader = tf.TFRecordReader()\n  _, decoded_example = reader.read(filename_queue)\n  #TODO better handle? http://stackoverflow.com/questions/218616/getting-method-parameter-names-in-python\n  # inspect.getargspec(aMethod)\n  try:\n    values = decode_fn(decoded_example)\n  except Exception:\n    values = decode_fn(decoded_example, thread_id)\n  #---for safe, or decode can make sure this for single value turn to list []\n  if not isinstance(values, (list, tuple)):\n    values = [values]\n  return values\n\ndef inputs(files, decode_fn, batch_size=64,\n           num_epochs = None, num_threads=12, \n           shuffle_files=True, batch_join=True, shuffle_batch=True, \n           min_after_dequeue=None, seed=None, enqueue_many=False,\n           fix_random=False, no_random=False, fix_sequence=False,\n           allow_smaller_final_batch=False, \n           num_prefetch_batches=None, \n           dynamic_pad=False,\n           bucket_boundaries=None,\n           length_index=None,\n           length_fn=None,\n           keep_fn=None,\n           name='input'):\n  \"\"\"Reads input data num_epochs times.\n  for sparse input here will do:\n  1. read decode decoded_example\n  2. shuffle decoded values\n  3. return batch decoded values\n  Args:\n  decode: user defined decode #TODO should be decode_fn\n  #---decode example\n  # features = tf.parse_single_example(\n  #     decoded_example,\n  #     features={\n  #         'feature': tf.FixedLenFeature([], tf.string),\n  #         'name': tf.FixedLenFeature([], tf.string),\n  #         'comment_str': tf.FixedLenFeature([], tf.string),\n  #         'comment': tf.FixedLenFeature([], tf.string),\n  #         'num_words': tf.FixedLenFeature([], tf.int64),\n  #     })\n  # feature = tf.decode_raw(features['feature'], tf.float32)\n  # feature.set_shape([IMAGE_FEATURE_LEN])\n  # comment = tf.decode_raw(features['comment'], tf.int64)\n  # comment.set_shape([COMMENT_MAX_WORDS])\n  # name = features['name']\n  # comment_str = features['comment_str']\n  # num_words = features['num_words']\n  # return name, feature, comment_str, comment, num_words\n  Returns:\n  list of tensors\n  \"\"\"\n  #with tf.device('/cpu:0'):\n  if isinstance(files, str):\n    files = gezi.list_files(files)\n\n  assert len(files) > 0\n    \n  if not min_after_dequeue:\n    min_after_dequeue = melt.tfrecords.read.MIN_AFTER_QUEUE\n  if not num_epochs: \n    num_epochs = None\n  \n  if fix_random:\n    if seed is None:\n      seed = 1024\n    shuffle_files = True  \n    batch_join = False  #check can be True ?\n\n    #to get fix_random \n    #shuffle_batch = True  and num_threads = 1 ok\n    #shuffle_batch = False and num_threads >= 1 ok\n    #from models/iamge-text-sim/read_records shuffle_batch = True will be quick, even single thread\n    #and strange num_threas = 1 will be quicker then 12\n    \n    shuffle_batch = True\n    num_threads = 1\n\n    #shuffle_batch = False\n\n  if fix_sequence:\n    no_random = True \n    allow_smaller_final_batch = True\n   \n  if no_random:\n    shuffle_files = False\n    batch_join = False\n    shuffle_batch = False \n    num_threads = 1\n\n  if dynamic_pad:\n    #use tf.batch\n    shuffle_batch = False\n\n\n  #shuffle=True\n  #batch_join = True #setting to False can get fixed result\n  #seed = 1024\n\n  with tf.name_scope(name):\n    filename_queue = tf.train.string_input_producer(\n      files, \n      num_epochs=num_epochs,\n      shuffle=shuffle_files,\n      seed=seed)\n    \n    # min_after_dequeue defines how big a buffer we will randomly sample\n    #   from -- bigger means better shuffling but slower start up and more\n    #   memory used.\n    # capacity must be larger than min_after_dequeue and the amount larger\n    #   determines the maximum we will prefetch.  Recommendation:\n    #   min_after_dequeue + (num_threads + a small safety margin) * batch_size\n    #@TODO cifa10 always use num_prefetch_batches = 3, 3 * batch_size, check which is better\n    if not num_prefetch_batches:\n      num_prefetch_batches = num_threads + 3\n\n    capacity = min_after_dequeue + num_prefetch_batches * batch_size\n\n    if batch_join:\n      batch_list = [_read_decode(filename_queue, decode_fn, thread_id) for thread_id in xrange(num_threads)]\n      #print batch_list\n      if shuffle_batch:\n        batch = tf.train.shuffle_batch_join(\n            batch_list, \n            batch_size=batch_size, \n            capacity=capacity,\n            min_after_dequeue=min_after_dequeue,\n            seed=seed,\n            enqueue_many=enqueue_many,\n            allow_smaller_final_batch=allow_smaller_final_batch,\n            name='shuffle_batch_join_queue')\n      else:\n        batch = tf.train.batch_join(\n          batch_list, \n          batch_size=batch_size, \n          capacity=capacity,\n          enqueue_many=enqueue_many,\n          allow_smaller_final_batch=allow_smaller_final_batch,\n          dynamic_pad=dynamic_pad,\n          name='batch_join_queue')\n    else:\n      decoded_example = list(_read_decode(filename_queue, decode_fn))\n      num_threads = 1 if fix_random else num_threads\n      if bucket_boundaries:\n        if not isinstance(bucket_boundaries, (list, tuple)):\n          bucket_boundaries = [int(x) for x in bucket_boundaries.split(',') if x]\n        if length_index is not None:\n          input_length=decoded_example[length_index]\n        else:\n          assert length_fn is not None, 'you must set length_index or pass length_fn'\n          input_length = length_fn(decoded_example)\n        keep_input = input_length >= 1 if keep_fn is None else keep_fn(decoded_example)\n        _, batch = tf.contrib.training.bucket_by_sequence_length(\n              input_length=tf.to_int32(input_length),\n              bucket_boundaries=bucket_boundaries,\n              tensors=decoded_example,\n              batch_size=batch_size,\n              keep_input=keep_input,\n              num_threads=num_threads,\n              dynamic_pad=True,\n              capacity=capacity,\n              allow_smaller_final_batch=allow_smaller_final_batch,\n              name=\"bucket_queue\")\n      else:\n        if shuffle_batch:\t    \n          batch = tf.train.shuffle_batch(\t\n             decoded_example,\n             batch_size=batch_size, \n             num_threads=num_threads,\n             capacity=capacity,\n             min_after_dequeue=min_after_dequeue,\n             seed=seed,\n             enqueue_many=enqueue_many,\n             allow_smaller_final_batch=allow_smaller_final_batch,\n             name='shuffle_batch_queue')\n        else:\n          #http://honggang.io/2016/08/19/tensorflow-data-reading/\n          batch = tf.train.batch(\n             decoded_example, \n             batch_size=batch_size, \n             num_threads=num_threads,\n             capacity=capacity,\n             enqueue_many=enqueue_many,\n             allow_smaller_final_batch=allow_smaller_final_batch,\n             dynamic_pad=dynamic_pad,\n             name='batch_queue')\n\n    return batch\n"
  },
  {
    "path": "utils/melt/tfrecords/libsvm_decode.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   libsvm_decode.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 20:17:53.507796\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\n#notice heare use parse_example not parse single example for it\n#is used in sparse record reading flow, shuffle then deocde\ndef decode(batch_serialized_examples, label_type=tf.int64, index_type=tf.int64, value_type=tf.float32):\n  \"\"\"\n  decode batch_serialized_examples for use in parse libsvm fomrat sparse tf-record\n  Returns:\n  X,y\n  \"\"\"\n  features = tf.parse_example(\n      batch_serialized_examples,\n      features={\n          'label' : tf.FixedLenFeature([], label_type),\n          'index' : tf.VarLenFeature(index_type),\n          'value' : tf.VarLenFeature(value_type),\n      })\n\n  label = features['label']\n  index = features['index']\n  value = features['value']\n\n  #return as X,y\n  print(index, value)\n  return (index, value), label\n"
  },
  {
    "path": "utils/melt/tfrecords/read.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   read.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 20:10:44.183328\n#   \\Description   Read from TFRecords\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nMIN_AFTER_QUEUE = 512\n"
  },
  {
    "path": "utils/melt/tfrecords/shuffle_then_decode.py",
    "content": "#!/usr/bin/env python\n#coding=gbk\n# ==============================================================================\n#          \\file   read_sparse.py\n#        \\author   chenghuige  \n#          \\date   2016-08-15 20:13:06.751843\n#   \\Description  @TODO https://github.com/tensorflow/tensorflow/tree/r0.10/tensorflow/contrib/slim/python/slim/data/\n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nimport gezi\nimport melt\n\n# deprecated just using dataset_decode.py\n\ndef _read(filename_queue):\n  reader = tf.TFRecordReader()\n  _, serialized_example = reader.read(filename_queue)\n  return [serialized_example]\n\ndef inputs(files, decode_fn, batch_size=64,\n           num_epochs = None, num_threads=12, \n           shuffle_files=True, batch_join=True, shuffle_batch=True, \n           min_after_dequeue=None, seed=None, enqueue_many=False,\n           fix_random=False, no_random=False, fix_sequence=False,\n           allow_smaller_final_batch=False, \n           num_prefetch_batches=None, \n           dynamic_pad=False,\n           buckets=None,\n           length_index=None,\n           length_fn=None,\n           name='input'):\n  \"\"\"Reads input data num_epochs times.\n  for sparse input here will do:\n  1. read serialized_example\n  2. shuffle serialized_examples\n  3. decdoe batch_serialized_examples\n  notice read_sparse.inputs and also be used for dense inputs,but if you \n  only need to decode part from serialized_example, then read.inputs will \n  be better, less to put to suffle\n  #--------decode example, can refer to libsvm-decode.py\n  # def decode(batch_serialized_examples):\n  #   features = tf.parse_example(\n  #       batch_serialized_examples,\n  #       features={\n  #           'label' : tf.FixedLenFeature([], tf.int64),\n  #           'index' : tf.VarLenFeature(tf.int64),\n  #           'value' : tf.VarLenFeature(tf.float32),\n  #       })\n\n  #   label = features['label']\n  #   index = features['index']\n  #   value = features['value']\n\n  #   return label, index, value \n\n  #string_input_reducer will shuffle files\n  #shuffle will read file by file and shuffle withn file(in shuffle queue) \n  #shuffle_batch_join will read multiple files and shuffle in shuffle queue(from many files)\n\n  To get fixed sequence \n  shuffle=False  so by this way the sequence is as your data input unchange\n  or\n  shuffle=True\n  seed=1024 #set\n  batch_join=False  by this way you have fixed random, so get same result\n  NOTICE, shuffle=True,seed=1024,batch_join=True will not get same result\n  shuffle=False,seed=1024,batch_join=True also, so batch_join seems seed only control inqueue random, can not get fixed result\n\n  for no random -> fixed result set shuffle=False wihch will force batch_join=False then use batch\n  for fixed random ->  shuffle=True, seed set or  fix_random=True\n  read-records.py show above ok, but train-evaluate.py show not, only shuffle=False can get fixed result.. @FIXME strange\n  for train-evaluate.py it looks you can set shuffle in string_input_producer True, but then must use batch,\n  batch_join and shuffle_batch join all not fixed even with seed set, may be due to trainset two inputs read ?\n  for read-records.py batch_join will be fixed, shuffle_batch_join not \n\n  defualt parmas will give max random...\n\n  Args:\n  decode: user defined decode \n  min_after_dequeue: set to >2w for production train, suggesed will be 0.4 * num_instances, but also NOTICE do not exceed mem\n  #--default parmas will make most randomness\n  shuffle_files: wehter shuffle file \n  shuffle_batch: batch or shuffle_batch\n  batch_join: wether to use multiple reader or use one reader mutlitple thread\n  fix_random: if True make at most random which can fix random result\n  allow_smaller_final_batch: set True usefull if you want verify on small dataset\n  #but seems only works here for single epoch case\n  \"\"\"\n  #with tf.device('/cpu:0'):\n  if isinstance(files, str):\n    files = gezi.list_files(files)\n  \n  assert len(files) > 0\n\n  if not min_after_dequeue : \n    min_after_dequeue = melt.tfrecords.read.MIN_AFTER_QUEUE\n  if not num_epochs: \n    num_epochs = None\n\n  if fix_random:\n    if seed is None:\n      seed = 1024\n    shuffle_files = True  \n    batch_join = False  #check can be True ?\n\n    #to get fix_random \n    #shuffle_batch = True  and num_threads = 1 ok\n    #shuffle_batch = False and num_threads >= 1 ok\n    #from models/iamge-text-sim/read_records shuffle_batch = True will be quick, even single thread\n    #and strange num_threas = 1 will be quicker then 12\n    \n    shuffle_batch = True\n    num_threads = 1\n\n    #shuffle_batch = False\n\n  if fix_sequence:\n    no_random = True \n    allow_smaller_final_batch = True\n    num_threads = 1\n\n  if no_random:\n    shuffle_files = False\n    batch_join = False\n    shuffle_batch = False \n\n  if dynamic_pad:\n    #use tf.batch\n    shuffle_batch = False\n\n  #shuffle=True\n  #batch_join = True #setting to False can get fixed result\n  #seed = 1024\n  \n  with tf.name_scope(name):\n    filename_queue = tf.train.string_input_producer(\n      files, \n      num_epochs=num_epochs,\n      shuffle=shuffle_files,\n      seed=seed)\n    \n    # min_after_dequeue defines how big a buffer we will randomly sample\n    #   from -- bigger means better shuffling but slower start up and more\n    #   memory used.\n    # capacity must be larger than min_after_dequeue and the amount larger\n    #   determines the maximum we will prefetch.  Recommendation:\n    #   min_after_dequeue + (num_threads + a small safety margin) * batch_size\n    #@TODO cifa10 always use num_prefetch_batches = 3, 3 * batch_size, check which is better\n    if not num_prefetch_batches: \n      num_prefetch_batches = num_threads + 3\n    capacity = min_after_dequeue + num_prefetch_batches * batch_size\n    #@TODO diff between tf.batch_join and tf.batch, batch_join below means shuffle_batch_join.. TODO\n    if batch_join:\n      batch_list = [_read(filename_queue) for _ in xrange(num_threads)]\n      #print batch_list\n      if shuffle_batch:\n        batch_serialized_examples = tf.train.shuffle_batch_join(\n            batch_list, \n            batch_size=batch_size, \n            capacity=capacity,\n            min_after_dequeue=min_after_dequeue,\n            seed=seed,\n            enqueue_many=enqueue_many,\n            allow_smaller_final_batch=allow_smaller_final_batch,\n            name='shuffle_batch_join_queue')\n      else:\n        batch_serialized_examples = tf.train.batch_join(\n          batch_list, \n          batch_size=batch_size, \n          capacity=capacity,\n          enqueue_many=enqueue_many,\n          allow_smaller_final_batch=allow_smaller_final_batch,\n          dynamic_pad=dynamic_pad,\n          name='batch_join_queue')\n    else:\n      serialized_example = list(_read(filename_queue))\n      #@FIXME... for bug now can not be more random if want fix random see D:\\mine\\tensorflow-exp\\models\\image-text-sim\\train-evaluate-fixrandom.py\n      if shuffle_batch:\t      \n        batch_serialized_examples = tf.train.shuffle_batch(\t\n            serialized_example, \n            batch_size=batch_size, \n            num_threads=num_threads,\n            capacity=capacity,\n            min_after_dequeue=min_after_dequeue,\n            seed=seed,\n            enqueue_many=enqueue_many,\n            allow_smaller_final_batch=allow_smaller_final_batch,\n            name='shuffle_batch_queue')\t\t    \n      else:\t    \n        batch_serialized_examples = tf.train.batch(\n            serialized_example, \n            batch_size=batch_size, \n            #@TODO to make really fxied result use num_threads=1, may be shuffle_batch will be fix random?\n            num_threads=num_threads,\n            capacity=capacity,\n            enqueue_many=enqueue_many,\n            allow_smaller_final_batch=allow_smaller_final_batch,\n            dynamic_pad=dynamic_pad,\n            name='batch_queue')\n\n    return decode_fn(batch_serialized_examples) if decode_fn is not None else batch_serialized_examples\n\n\n"
  },
  {
    "path": "utils/melt/tfrecords/write.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   write.py\n#        \\author   chenghuige  \n#          \\date   2016-08-24 10:21:46.629992\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport random\nimport tensorflow as tf\n \nclass Writer(object):\n  def __init__(self, file, buffer_size=None):\n    random.seed(12345)\n    self.count = 0\n    self.buffer_size = buffer_size\n\n    # # Not safe multiple thread.. need lock\n    # dir = os.path.dirname(file)\n    # if not os.path.exists(dir):\n    #   print('make new dir: [%s]'%dir, file=sys.stderr)\n    #   os.makedirs(dir)\n    \n    self.writer = tf.io.TFRecordWriter(file)\n    self.buffer = [] if self.buffer_size else None\n\n  def __del__(self):\n    #print('del writer', file=sys.stderr)\n    self.close()\n\n  def __enter__(self):\n    return self  \n\n  def __exit__(self, exc_type, exc_value, traceback):\n    #print('close writer', file=sys.stderr)\n    self.close()\n\n  def close(self):\n    if self.buffer:\n      random.shuffle(self.buffer)\n      for example in self.buffer:\n        self.writer.write(example.SerializeToString())\n      self.buffer = []   \n\n  def finalize(self):\n    self.close()\n\n  def write(self, example):\n    self.count += 1\n    if self.buffer is not None:\n      self.buffer.append(example)\n      if len(self.buffer) >= self.buffer_size:\n        random.shuffle(self.buffer)\n        for example in self.buffer:\n          self.writer.write(example.SerializeToString())\n        self.buffer = []\n    else:\n      self.writer.write(example.SerializeToString())\n\n  def size(self):\n    return self.count\n\n\nclass MultiOutWriter(object):\n  \"\"\"\n  read single file output to mutlitple tfrecord\n  \"\"\"\n  def __init__(self, dir, name='train', max_lines=50000):\n     self.dir = dir\n     self.name = name \n     self.max_lines = max_lines\n     self.index = 0\n     self.count = 0\n     self.writer = self.get_tfrecord()\n  \n  def __del__(self):\n    print('del writer', file=sys.stderr)\n    self.close()\n\n  def __enter__(self):\n    return self  \n\n  def __exit__(self, exc_type, exc_value, traceback):\n    print('close writer', file=sys.stderr)\n    self.close()\n\n  def get_tfrecord(self):\n    return tf.python_io.TFRecordWriter(\n      os.path.join(dir, '{}_{}'.format(self.name, self.index)))\n  \n  def write(self, example):\n    self.writer.write(example.SerializeToString())\n    self.count += 1\n    if self.count == self.max_lines:\n      self.index += 1\n      self.writer.close()\n      self.writer = self.get_tfrecord()\n\n\nimport numpy as np\nclass RandomSplitWriter(object):\n  \"\"\"\n  read single file, random split as train, test to two files\n  \"\"\"\n  def __init__(self, train_file, test_file, train_ratio=0.8):\n    self.train_writer = Writer(train_file)\n    self.test_writer = Writer(test_file)\n    self.train_ratio = train_ratio\n\n  def __enter__(self):\n    return self  \n\n  def __del__(self):\n    print('del writer', file=sys.stderr)\n    self.close()\n\n  def __exit__(self, exc_type, exc_value, traceback):\n    print('close writer', file=sys.stderr)\n    self.close()\n    \n  def close(self):\n    self.train_writer.close()\n    self.test_writer.close()\n\n  def write(example):\n    writer = self.train_writer if np.random.random_sample() < self.train_ratio else self.test_writer()\n    writer.write(example)\n\nclass RandomSplitMultiOutWriter(object):\n  \"\"\"\n  read single file, random split as train, test each to mulitple files\n  \"\"\"\n  def __init__(self, train_dir, test_dir, train_name='train', test_name='test', max_lines=50000, train_ratio=0.8):\n    self.train_writer = MultiOutWriter(train_dir, train_name, max_lines)\n    self.test_writer = MultiOutWriter(test_dir, test_name, max_lines)\n    self.train_ratio = train_ratio\n\n  def __enter__(self):\n    return self  \n\n  def __del__(self):\n    print('del writer', file=sys.stderr)\n    self.close()\n\n  def __exit__(self, exc_type, exc_value, traceback):\n    print('close writer', file=sys.stderr)\n    self.close()\n\n  def close(self):\n    self.train_writer.close()\n    self.test_writer.close()\n\n  def write(self, example):\n    writer = self.train_writer if np.random.random_sample() < self.train_ratio else self.test_writer()\n    writer.write(example)\n\n"
  },
  {
    "path": "utils/melt/tools/count-records.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   read-records.py\n#        \\author   chenghuige  \n#          \\date   2016-07-19 17:09:07.466651\n#   \\Description  \n# ==============================================================================\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\n\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nflags.DEFINE_string('input', './*', '')\nflags.DEFINE_string('output', None, '')\nflags.DEFINE_integer('threads', 12, '') \nflags.DEFINE_bool('write_count', False, '')\n\nimport sys, os, time\nimport gezi\nimport melt \n\nimport  multiprocessing\nfrom multiprocessing import Process, Manager, Value\n\ncounter = Value('i', 0)\ndef deal_file(file):\n  try:\n    count = melt.get_num_records_single(file)\n  except Exception:\n    print('bad file:', file)\n  global counter\n  with counter.get_lock():\n    counter.value += count \n  print(file, count)\n\ndef main(_):\n  timer = gezi.Timer()\n  input = FLAGS.input \n  \n  if FLAGS.threads == 1:\n    num_records = melt.get_num_records_print(input)\n    print(timer.elapsed())\n  else:\n    files = gezi.list_files(input)\n    print(files)\n    pool = multiprocessing.Pool(processes = FLAGS.threads)\n    pool.map(deal_file, files)\n    pool.close()\n    pool.join()\n    \n    num_records = counter.value \n    print('num_records:', num_records)\n\n  if FLAGS.write_count:\n    outdir = os.path.dirname(input)  \n    output = '%s/num_records.txt' % outdir\n    print('write to %s'%output)\n    out = open(output, 'w')\n    out.write(str(num_records))\n\n\nif __name__ == '__main__':\n  tf.app.run()\n"
  },
  {
    "path": "utils/melt/tools/delete-old-models.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   delete-old-models.py\n#        \\author   chenghuige  \n#          \\date   2016-10-10 21:58:26.617674\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\"\"\"\nbin model_dir num_to_keep_of_latest_models\n\"\"\"\n\nimport sys, os, glob\n\ndef list_models(model_dir, time_descending=True):\n  \"\"\"\n  list all models in model_dir\n  \"\"\"\n  files = [file for file in glob.glob('%s/model.ckpt-*'%(model_dir)) if not (file.endswith('.meta') or file.endswith('.index'))]\n  files.sort(key=lambda x: os.path.getmtime(x), reverse=time_descending)\n  return files \n\nmodel_dir = sys.argv[1]\nmodels = list_models(model_dir)\nprint('total models now:', len(models))\nos.system('du -h %s'%model_dir)\n\nif len(sys.argv) > 2:\n  num_keeps = int(sys.argv[2])\n  print('The models to keep are', models[:num_keeps])\n  print('You want to keep only the latest %d  models, so delete %d old models'%(num_keeps, len(models) - num_keeps))\n  \n  is_first = True\n  for model in models[num_keeps:]:\n    if is_first:\n      if num_keeps <  5:\n        print('only keep %d models?'%num_keeps)\n      print('delete model older then %s ?'%model)\n      #ok = raw_input(\"y?: \")\n      #if ok != 'y' and ok != 'yes':\n      #\tbreak\n      is_first = False\n    print('delete model:', model)\n    os.remove(model)\n    try:\n      l = model.split('.')\n      if not l[-1].startswith('ckpt-'):\n        l = l[:-1]\n      model = '.'.join(l)\n      os.remove('%s.meta'%model)\n      os.remove('%s.index'%model)\n    except Exception:\n      pass\n\nmodels = list_models(model_dir)\nprint('models leave after:', models, 'num models now', len(models))\nos.system('du -h %s'%model_dir)\n"
  },
  {
    "path": "utils/melt/tools/prepare-finetune-withhistory.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   prepare-finetune.py\n#        \\author   chenghuige  \n#          \\date   2017-09-29 07:15:01.808002\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport melt  \n\nmodel_dir = sys.argv[1]\n\nmodel_dir, model_path = melt.get_model_dir_and_path(model_dir)\n\nnew_model_dir = sys.argv[2]\ncommand = 'mkdir -p %s' % new_model_dir \nprint(command, file=sys.stderr)\nos.system(command)\n\nif os.path.exists(new_model_dir):\n  command = 'rm -rf %s/*' % new_model_dir \n  print(command, file=sys.stderr)\n  os.system(command)\n\n# copy history log \ncommand = 'cp -rf %s/events* %s' % (model_dir, new_model_dir)\nprint(command, file=sys.stderr)\nos.system(command)\ncommand = 'cp -rf %s/log* %s' % (model_dir, new_model_dir)\nprint(command, file=sys.stderr)\nos.system(command)\n\ncommand = 'cp %s* %s' % (model_path, new_model_dir)\nprint(command, file=sys.stderr)\nos.system(command)\n\ncheckpoint = os.path.join(new_model_dir, 'checkpoint')\nmodel_name = os.path.basename(model_path)\n\ncheckpoint_info = 'model_checkpoint_path: \"./%s\"\\n'%model_name \n\nprint('write checkpoint_info to %s' % checkpoint, file=sys.stderr)\nwith open(checkpoint, 'w') as f:\n  f.write(checkpoint_info)\n\nold_checkpoint = os.path.join(model_dir, 'checkpoint')\nfrom_checkpoint = os.path.join(new_model_dir, 'checkpoint.from')\ncommand = 'cp %s %s' % (old_checkpoint, from_checkpoint)\nprint(command, file=sys.stderr)\nos.system(command)\n"
  },
  {
    "path": "utils/melt/tools/prepare-finetune.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   prepare-finetune.py\n#        \\author   chenghuige  \n#          \\date   2017-09-29 07:15:01.808002\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport melt  \n\nmodel_dir = sys.argv[1]\n\nmodel_dir, model_path = melt.get_model_dir_and_path(model_dir)\n\nnew_model_dir = sys.argv[2]\ncommand = 'mkdir -p %s'%new_model_dir \nprint(command, file=sys.stderr)\nos.system(command)\n\nif os.path.exists(new_model_dir):\n  command = 'rm -rf %s/*'%new_model_dir \n  print(command, file=sys.stderr)\n  os.system(command)\n\ncommand = 'cp %s* %s'%(model_path, new_model_dir)\nprint(command, file=sys.stderr)\nos.system(command)\n\ncheckpoint = os.path.join(new_model_dir, 'checkpoint')\nmodel_name = os.path.basename(model_path)\n\ncheckpoint_info = 'model_checkpoint_path: \"./%s\"\\n'%model_name \n\nprint('write checkpoint_info to %s'%checkpoint, file=sys.stderr)\nwith open(checkpoint, 'w') as f:\n  f.write(checkpoint_info)\n\nold_checkpoint = os.path.join(model_dir, 'checkpoint')\nfrom_checkpoint = os.path.join(new_model_dir, 'checkpoint.from')\ncommand = 'cp %s %s'%(old_checkpoint, from_checkpoint)\nprint(command, file=sys.stderr)\nos.system(command)\n"
  },
  {
    "path": "utils/melt/tools/rename-variables.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   rename_variables.py\n#        \\author   chenghuige  \n#          \\date   2017-08-28 17:20:39.256411\n#   \\Description  \n# ==============================================================================\n\n  \n\n  \n#https://gist.github.com/batzner/7c24802dd9c5e15870b4b56e22135c96\n\nimport sys, getopt\n\nimport tensorflow as tf\n\nusage_str = 'python tensorflow_rename_variables.py --checkpoint_dir=path/to/dir/ ' \\\n            '--replace_from=substr --replace_to=substr --add_prefix=abc --dry_run'\n\n\ndef rename(checkpoint_dir, replace_from, replace_to, add_prefix, dry_run):\n    checkpoint = tf.train.get_checkpoint_state(checkpoint_dir)\n    with tf.Session() as sess:\n        for var_name, _ in tf.contrib.framework.list_variables(checkpoint_dir):\n            # Load the variable\n            var = tf.contrib.framework.load_variable(checkpoint_dir, var_name)\n\n            # Set the new name\n            new_name = var_name\n            if None not in [replace_from, replace_to]:\n                new_name = new_name.replace(replace_from, replace_to)\n            if add_prefix:\n                new_name = add_prefix + new_name\n\n            if dry_run:\n                print('%s would be renamed to %s.' % (var_name, new_name))\n            else:\n                print('Renaming %s to %s.' % (var_name, new_name))\n                # Rename the variable\n                var = tf.Variable(var, name=new_name)\n\n        if not dry_run:\n            # Save the variables\n            saver = tf.train.Saver()\n            sess.run(tf.global_variables_initializer())\n            saver.save(sess, checkpoint.model_checkpoint_path)\n\n\ndef main(argv):\n    checkpoint_dir = None\n    replace_from = None\n    replace_to = None\n    add_prefix = None\n    dry_run = False\n\n    try:\n        opts, args = getopt.getopt(argv, 'h', ['help=', 'checkpoint_dir=', 'replace_from=',\n                                               'replace_to=', 'add_prefix=', 'dry_run'])\n    except getopt.GetoptError:\n        print(usage_str)\n        sys.exit(2)\n    for opt, arg in opts:\n        if opt in ('-h', '--help'):\n            print(usage_str)\n            sys.exit()\n        elif opt == '--checkpoint_dir':\n            checkpoint_dir = arg\n        elif opt == '--replace_from':\n            replace_from = arg\n        elif opt == '--replace_to':\n            replace_to = arg\n        elif opt == '--add_prefix':\n            add_prefix = arg\n        elif opt == '--dry_run':\n            dry_run = True\n\n    if not checkpoint_dir:\n        print('Please specify a checkpoint_dir. Usage:')\n        print(usage_str)\n        sys.exit(2)\n\n    rename(checkpoint_dir, replace_from, replace_to, add_prefix, dry_run)\n\n\nif __name__ == '__main__':\n    main(sys.argv[1:])"
  },
  {
    "path": "utils/melt/tools/reset-model-top-scope.py",
    "content": "#!/usr/bin/env python\r\n# -*- coding: utf-8 -*-\r\n# ==============================================================================\r\n#          \\file   reset-model-top-scope.py\r\n#        \\author   chenghuige  \r\n#          \\date   2016-09-29 21:20:54.473502\r\n#   \\Description  \r\n# ==============================================================================\r\n\r\n  \r\nfrom __future__ import absolute_import\r\nfrom __future__ import division\r\nfrom __future__ import print_function\r\n\r\nimport tensorflow as tf\r\nflags = tf.app.flags\r\nFLAGS = flags.FLAGS\r\ntf.app.flags.DEFINE_string(\"input_checkpoint\", \"\",\r\n                           \"\"\"TensorFlow variables file to load.\"\"\")\r\ntf.app.flags.DEFINE_string(\"model_dir\", \"\",\r\n                           \"\"\"load latest model from model dir, \r\n                           either model dir or input_checkpoint must be non empty\"\"\")\r\n\r\ntf.app.flags.DEFINE_string(\"output_checkpoint\", \"\",\r\n                           \"\"\"output checkpint with top scope changed\"\"\")\r\n\r\ntf.app.flags.DEFINE_string(\"restore_op_name\", \"save/restore_all\",\r\n                           \"\"\"The name of the master restore operator.\"\"\")\r\n\r\ntf.app.flags.DEFINE_string(\"scope\", \"\",\r\n                           \"\"\"input top scope\"\"\")\r\n\r\ntf.app.flags.DEFINE_string(\"out_scope\", \"\",\r\n                           \"\"\"out top scope\"\"\")\r\n\r\ntf.app.flags.DEFINE_integer(\"index\", 0,\r\n                            \"\"\"out index of checkpoints\"\"\")\r\n\r\n\r\nimport os, time\r\nfrom google.protobuf import text_format\r\n\r\nimport melt \r\n\r\ndef reset_model_top_scope():\r\n  assert FLAGS.input_checkpoint or FLAGS.model_dir\r\n\r\n  sess = tf.InteractiveSession()\r\n  input_checkpoint = FLAGS.input_checkpoint if FLAGS.input_checkpoint \\\r\n    else melt.latest_checkpoint(FLAGS.model_dir)\r\n  _, input_checkpoint_name = os.path.split(input_checkpoint)\r\n  print('input_checkpoint:', input_checkpoint)\r\n\r\n  meta_filename = \".\".join([input_checkpoint, \"meta\"])\r\n  while not os.path.exists(meta_filename):\r\n    print('%s:not ready yet, try again'%meta_filename)\r\n    time.sleep(3)\r\n  saver = tf.train.import_meta_graph(meta_filename)\r\n  saver.restore(sess, input_checkpoint)\r\n\r\n  print('tf.all_variables:', [v.name for v in tf.all_variables()])\r\n  scope = FLAGS.scope\r\n  out_scope = FLAGS.out_scope if FLAGS.out_scope else '%s_%d'%(scope, FLAGS.index)\r\n  output_checkpoint = FLAGS.output_checkpoint if FLAGS.output_checkpoint \\\r\n      else '/tmp/%s'%(input_checkpoint_name)\r\n  print('scope:', scope)\r\n  print('out_scope:', out_scope)\r\n\r\n  src_vars = melt.variables_with_scope(scope)\r\n  print([v.name for v in src_vars])\r\n\r\n  out_vars = {v.name[:v.name.rfind(':')].replace(scope, out_scope, 1): v for v in src_vars}\r\n  print('out_vars:', [key for key in out_vars])\r\n  tf.train.Saver(var_list=out_vars).save(sess, output_checkpoint)\r\n\r\n  print('save done to %s'%output_checkpoint)\r\n\r\n  sess.close()\r\n\r\n\r\ndef main(unused_args):\r\n  reset_model_top_scope()\r\n\r\nif __name__ == \"__main__\":\r\n  tf.app.run()\r\n"
  },
  {
    "path": "utils/melt/tools/show-records.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   show-records.py\n#        \\author   chenghuige  \n#          \\date   2018-03-29 21:55:32.616016\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\n\nimport tensorflow as tf\n\ninput = sys.argv[1]\n\nfor example in tf.python_io.tf_record_iterator(input):\n  result = tf.train.Example.FromString(example)\n  print(result)\n  break\n"
  },
  {
    "path": "utils/melt/tools/show-var-of-model.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   show-var-of-model.py\n#        \\author   chenghuige  \n#          \\date   2017-09-06 07:52:34.258312\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys, os\nimport melt\n\nfrom tensorflow.python import pywrap_tensorflow\nmodel_dir = sys.argv[1]\nvar_name = sys.argv[2]\ncheckpoint_path = melt.get_model_path(model_dir)\nreader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)\nvar_to_shape_map = reader.get_variable_to_shape_map()\nfor key in var_to_shape_map:\n  if var_name in key:\n    print(\"tensor_name: \", key)\n    print(reader.get_tensor(key))\n"
  },
  {
    "path": "utils/melt/torch/__init__.py",
    "content": "from melt.torch.train import *\n"
  },
  {
    "path": "utils/melt/torch/train.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   train.py\n#        \\author   chenghuige  \n#          \\date   2018-09-26 11:31:25.070813\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\ntry:\n  import torch\nexcept Exception:\n  pass\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\ntfe = tf.contrib.eager\n\nimport sys \nimport os\nfrom tqdm import tqdm \nimport numpy as np\nimport inspect\nimport traceback\n\nimport gezi\nimport melt\nlogging = melt.logging\n\ndef torch_(x):\n  for dim in x.shape:\n    if dim == 0:\n      return x\n\n  #x = x.numpy()\n  # if x.dtype == np.int64 or x.dtype == np.int32:\n  #   x = torch.LongTensor(x)\n    \n  #   if torch.cuda.is_available():\n  #     x = x.cuda()   \n  #     x.requires_grad = False \n  #   #x = torch.cuda.LongTensor(x)\n  # elif x.dtype == np.float32 or x.dtype == np.float64:\n  #   x = torch.FloatTensor(x)\n    \n  #   if torch.cuda.is_available():\n  #     x = x.cuda() \n  #     x.requires_grad = False   \n  #   #x = torch.cuda.FloatTensor(x)\n  if x.dtype == np.int64 or x.dtype == np.int32 or x.dtype == np.float32 or x.dtype == np.float64:\n    x = torch.from_numpy(x)\n    if torch.cuda.is_available():\n      x = x.cuda()\n\n  return x\n\n\ndef to_torch(x, y=None):\n  if y is not None:\n    y = torch_(y)\n\n  for key in x:\n    x[key] = torch_(x[key])\n  if y is None:\n    return x\n  else:\n    return x, y\n\n  \ndef train(Dataset, \n          model, \n          loss_fn, \n          evaluate_fn=None, \n          inference_fn=None,\n          eval_fn=None,\n          write_valid=True,\n          valid_names=None,\n          infer_names=None,\n          infer_debug_names=None,\n          valid_write_fn=None,\n          infer_write_fn=None,\n          valid_suffix='.valid',\n          infer_suffix='.infer',\n          write_streaming=False,\n          sep=','):\n  if FLAGS.torch:\n    if torch.cuda.is_available():\n      model.cuda()\n  \n  input_ =  FLAGS.train_input \n  inputs = gezi.list_files(input_)\n  inputs.sort()\n\n  all_inputs = inputs\n\n  batch_size = FLAGS.batch_size\n\n  num_gpus = melt.num_gpus()\n  if num_gpus > 1:\n    assert False, 'Eager mode train currently not support for num gpus > 1'\n\n  #batch_size_ = batch_size if not FLAGS.batch_sizes else int(FLAGS.batch_sizes.split(',')[-1])\n  batch_size_ = batch_size\n\n  if FLAGS.fold is not None:\n    inputs = [x for x in inputs if not x.endswith('%d.record' % FLAGS.fold)]\n\n  logging.info('inputs', inputs)\n\n  dataset = Dataset('train')\n  num_examples = dataset.num_examples_per_epoch('train') \n  num_all_examples = num_examples\n\n  # if FLAGS.fold is not None:\n  #   valid_inputs = [x for x in all_inputs if x not in inputs]\n  # else:\n  #   valid_inputs = gezi.list_files(FLAGS.valid_input)\n  \n  # logging.info('valid_inputs', valid_inputs)\n\n  # if valid_inputs:\n  #   valid_dataset_ = Dataset('valid')\n  #   valid_dataset = valid_dataset_.make_batch(batch_size_, valid_inputs)\n  #   valid_dataset2 = valid_dataset_.make_batch(batch_size_, valid_inputs, repeat=True)\n  # else:\n  #   valid_datsset = None\n  #   valid_dataset2 = None\n\n  if num_examples:\n    if FLAGS.fold is not None:\n      num_examples = int(num_examples * (len(inputs) / (len(inputs) + 1)))\n    num_steps_per_epoch = -(-num_examples // batch_size)\n  else:\n    num_steps_per_epoch = None\n\n  # if FLAGS.fold is not None:\n  #   if num_examples:\n  #     num_valid_examples = int(num_all_examples * (1 / (len(inputs) + 1)))\n  #     num_valid_steps_per_epoch = -(-num_valid_examples // batch_size_)\n  #   else:\n  #     num_valid_steps_per_epoch = None\n  # else:\n  #   num_valid_examples = valid_dataset_.num_examples_per_epoch('valid')\n  #   num_valid_steps_per_epoch = -(-num_valid_examples // batch_size_) if num_valid_examples else None\n\n  # test_inputs = gezi.list_files(FLAGS.test_input)\n  # logging.info('test_inputs', test_inputs)\n  \n  # if test_inputs:\n  #   test_dataset_ = Dataset('test')\n  #   test_dataset = test_dataset_.make_batch(batch_size_, test_inputs) \n  #   num_test_examples = test_dataset_.num_examples_per_epoch('test')\n  #   num_test_steps_per_epoch = -(-num_test_examples // batch_size_) if num_test_examples else None\n  # else:\n  #   test_dataset = None\n  \n  summary = tf.contrib.summary\n  # writer = summary.create_file_writer(FLAGS.model_dir + '/epoch')\n  # writer_train = summary.create_file_writer(FLAGS.model_dir + '/train')\n  # writer_valid = summary.create_file_writer(FLAGS.model_dir + '/valid')\n  writer = summary.create_file_writer(FLAGS.model_dir)\n  writer_train = summary.create_file_writer(FLAGS.model_dir)\n  writer_valid = summary.create_file_writer(FLAGS.model_dir)\n  global_step = tf.train.get_or_create_global_step()\n\n  learning_rate = tfe.Variable(FLAGS.learning_rate, name=\"learning_rate\")\n  tf.add_to_collection('learning_rate', learning_rate)\n\n  learning_rate_weight = tf.get_collection('learning_rate_weight')[-1]\n  try:\n    learning_rate_weights = tf.get_collection('learning_rate_weights')[-1]\n  except Exception:\n    learning_rate_weights = None\n\n  ckpt_dir = FLAGS.model_dir + '/ckpt'\n\n  #TODO FIXME now I just changed tf code so to not by default save only latest 5\n  # refer to https://github.com/tensorflow/tensorflow/issues/22036\n    # manager = tf.contrib.checkpoint.CheckpointManager(\n  #     checkpoint, directory=ckpt_dir, max_to_keep=5)\n  # latest_checkpoint = manager.latest_checkpoint\n\n  latest_checkpoint = tf.train.latest_checkpoint(ckpt_dir)\n  logging.info('Latest checkpoint:', latest_checkpoint)\n  checkpoint_prefix = os.path.join(ckpt_dir, 'ckpt')\n\n  if not FLAGS.torch:\n    optimizer = melt.get_optimizer(FLAGS.optimizer)(learning_rate)\n    \n    # TODO...\n    if  learning_rate_weights is None:\n      checkpoint = tf.train.Checkpoint(\n            learning_rate=learning_rate, \n            learning_rate_weight=learning_rate_weight,\n            model=model,\n            optimizer=optimizer,\n            global_step=global_step)\n    else:\n      checkpoint = tf.train.Checkpoint(\n            learning_rate=learning_rate, \n            learning_rate_weight=learning_rate_weight,\n            learning_rate_weights=learning_rate_weights,\n            model=model,\n            optimizer=optimizer,\n            global_step=global_step)\n      \n    if os.path.exists(FLAGS.model_dir + '.index'):\n      latest_checkpoint = FLAGS.model_dir   \n\n    checkpoint.restore(latest_checkpoint)\n\n    start_epoch = int(latest_checkpoint.split('-')[-1]) if latest_checkpoint else 0\n  else:\n    # TODO torch with learning rate adjust\n    optimizer = torch.optim.Adamax(model.parameters(), lr=FLAGS.learning_rate)\n\n    if latest_checkpoint:\n      checkpoint = torch.load(latest_checkpoint + '.pyt')\n      start_epoch = checkpoint['epoch']\n      model.load_state_dict(checkpoint['state_dict'])\n      optimizer.load_state_dict(checkpoint['optimizer'])\n      model.eval()\n    else:\n      start_epoch = 0\n\n    if learning_rate_weights is None:\n      checkpoint = tf.train.Checkpoint(\n          learning_rate=learning_rate, \n          learning_rate_weight=learning_rate_weight,\n          global_step=global_step)\n    else:\n      checkpoint = tf.train.Checkpoint(\n            learning_rate=learning_rate, \n            learning_rate_weight=learning_rate_weight,\n            learning_rate_weights=learning_rate_weights,\n            global_step=global_step)\n\n  #model.load_weights(os.path.join(ckpt_dir, 'ckpt-1'))\n  #model.save('./weight3.hd5')\n\n  # TODO currently not support 0.1 epoch.. like this\n  num_epochs = FLAGS.num_epochs\n  \n \n  class PytObj(object):\n    def __init__(self, x):\n      self.x = x\n    def numpy(self):\n      return self.x\n\n  class PytMean(object):\n    def __init__(self):\n      self._val = 0. \n      self.count = 0\n\n      self.is_call = True\n\n    def clear(self):\n      self._val = 0\n      self.count = 0\n\n    def __call__(self, val):\n      if not self.is_call:\n        self.clear()\n        self.is_call = True\n      self._val += val.item()\n      self.count += 1\n\n    def result(self):\n      if self.is_call:\n        self.is_call = False\n      if not self.count:\n        val = 0\n      else:\n        val = self._val / self.count\n      # TODO just for compact with tf ..\n      return PytObj(val)\n      \n  # TODO consider multiple gpu for torch \n\n  iter = dataset.make_batch(batch_size, inputs, repeat=False, initializable=False)\n  batch = iter.get_next()\n  #x, y = melt.split_batch(batch, batch_size, num_gpus)\n  x_, y_ = batch\n  \n  Mean =  tfe.metrics.Mean if not FLAGS.torch else PytMean\n  epoch_loss_avg = Mean()\n  epoch_valid_loss_avg = Mean()\n\n  sess = melt.get_session(device_count={'GPU': 0})\n  global_step = 0\n  for epoch in range(start_epoch, num_epochs):\n    melt.set_global('epoch', '%.4f' % (epoch))\n    sess.run(iter.initializer)\n\n    model.train()\n\n    #..... still OOM... FIXME TODO\n    try:\n      for _ in tqdm(range(num_steps_per_epoch), total=num_steps_per_epoch, ascii=True):\n        x, y = sess.run([x_, y_])\n        x, y = to_torch(x, y)\n        \n        optimizer.zero_grad()\n        loss = loss_fn(model, x, y)\n        loss.backward()\n        optimizer.step()\n\n        epoch_loss_avg(loss) \n\n        if global_step % FLAGS.interval_steps == 0:\n          print(global_step, epoch_loss_avg.result().numpy())\n\n        global_step += 1\n    except tf.errors.OutOfRangeError:\n      print('epoch:%d loss:%f' % (epoch, epoch_loss_avg.result().numpy()))\n\n\n"
  },
  {
    "path": "utils/melt/training/__init__.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2017-10-21 06:09:20.563389\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport melt.training.adamax\nimport melt.training.bert\n"
  },
  {
    "path": "utils/melt/training/adamax.py",
    "content": "# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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\n\"\"\"AdaMax for TensorFlow.\"\"\"\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom tensorflow.python.eager import context\nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import array_ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\nfrom tensorflow.python.ops import resource_variable_ops\nfrom tensorflow.python.ops import state_ops\nfrom tensorflow.python.training import adam\nfrom tensorflow.python.training import training_ops\n\n\nclass AdaMaxOptimizer(adam.AdamOptimizer):\n  \"\"\"Optimizer that implements the AdaMax algorithm.\n\n  Adamax is sometimes superior to adam, specially in models with embeddings,\n  see [Kingma et al., 2014](http://arxiv.org/abs/1412.6980)\n  ([pdf](http://arxiv.org/pdf/1412.6980.pdf)).\n  \"\"\"\n\n  def __init__(self, learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8,\n               use_locking=False, name=\"AdaMax\"):\n    \"\"\"Construct a new AdaMax optimizer.\n\n    Initialization:\n\n    ```\n    m_0 <- 0 (Initialize initial 1st moment vector)\n    v_0 <- 0 (Initialize the exponentially weighted infinity norm)\n    t <- 0 (Initialize timestep)\n    ```\n\n    The update rule for `variable` with gradient `g` uses an optimization\n    described at the end of section 7.1 of the paper:\n\n    ```\n    t <- t + 1\n\n    m_t <- beta1 * m_{t-1} + (1 - beta1) * g\n    v_t <- max(beta2 * v_{t-1}, abs(g))\n    variable <- variable - learning_rate / (1 - beta1^t) * m_t / (v_t + epsilon)\n    ```\n\n    Similar to AdamOptimizer, the epsilon is added for numerical stability\n    (especially to get rid of division by zero when v_t = 0).\n\n    Contrast to AdamOptimizer, the sparse implementation of this algorithm\n    (used when the gradient is an IndexedSlices object, typically because of\n    `tf.gather` or an embedding lookup in the forward pass) only updates\n    variable slices and corresponding `m_t`, `v_t` terms when that part of\n    the variable was used in the forward pass. This means that the sparse\n    behavior is contrast to the dense behavior (similar to some momentum\n    implementations which ignore momentum unless a variable slice was actually\n    used).\n\n    Args:\n      learning_rate: A Tensor or a floating point value.  The learning rate.\n      beta1: A float value or a constant float tensor.\n        The exponential decay rate for the 1st moment estimates.\n      beta2: A float value or a constant float tensor.\n        The exponential decay rate for the exponentially weighted infinity norm.\n      epsilon: A small constant for numerical stability.\n      use_locking: If True use locks for update operations.\n      name: Optional name for the operations created when applying gradients.\n        Defaults to \"AdaMax\".\n    \"\"\"\n    super(AdaMaxOptimizer, self).__init__(learning_rate, beta1, beta2,\n                                          epsilon, use_locking, name)\n\n  def _get_beta_accumulators(self):\n    if context.executing_eagerly():\n      graph = None\n    else:\n      graph = ops.get_default_graph()\n    return self._get_non_slot_variable(\"beta1_power\", graph=graph)\n\n  def _create_slots(self, var_list):\n    # Create the beta1 accumulators on the same device as the first\n    # variable. Sort the var_list to make sure this device is consistent across\n    # workers (these need to go on the same PS, otherwise some updates are\n    # silently ignored).\n    first_var = min(var_list, key=lambda x: x.name)\n    self._create_non_slot_variable(initial_value=self._beta1,\n                                   name=\"beta1_power\",\n                                   colocate_with=first_var)\n\n    # Create slots for the first and second moments.\n    for v in var_list:\n      self._zeros_slot(v, \"m\", self._name)\n      self._zeros_slot(v, \"v\", self._name)\n\n  def _apply_dense(self, grad, var):\n    m = self.get_slot(var, \"m\")\n    v = self.get_slot(var, \"v\")\n    beta1_power = self._get_beta_accumulators()\n    return training_ops.apply_ada_max(\n        var, m, v,\n        math_ops.cast(beta1_power, var.dtype.base_dtype),\n        math_ops.cast(self._lr_t, var.dtype.base_dtype),\n        math_ops.cast(self._beta1_t, var.dtype.base_dtype),\n        math_ops.cast(self._beta2_t, var.dtype.base_dtype),\n        math_ops.cast(self._epsilon_t, var.dtype.base_dtype),\n        grad, use_locking=self._use_locking).op\n\n  def _resource_apply_dense(self, grad, var):\n    m = self.get_slot(var, \"m\")\n    v = self.get_slot(var, \"v\")\n    beta1_power = self._get_beta_accumulators()\n    return training_ops.resource_apply_ada_max(\n        var.handle, m.handle, v.handle,\n        math_ops.cast(beta1_power, grad.dtype.base_dtype),\n        math_ops.cast(self._lr_t, grad.dtype.base_dtype),\n        math_ops.cast(self._beta1_t, grad.dtype.base_dtype),\n        math_ops.cast(self._beta2_t, grad.dtype.base_dtype),\n        math_ops.cast(self._epsilon_t, grad.dtype.base_dtype),\n        grad, use_locking=self._use_locking)\n\n  def _apply_sparse_shared(self, grad, var, indices,\n                           scatter_add, scatter_update):\n    beta1_power = self._get_beta_accumulators()\n    beta1_power = math_ops.cast(beta1_power, var.dtype.base_dtype)\n    lr_t = math_ops.cast(self._lr_t, var.dtype.base_dtype)\n    beta1_t = math_ops.cast(self._beta1_t, var.dtype.base_dtype)\n    beta2_t = math_ops.cast(self._beta2_t, var.dtype.base_dtype)\n    epsilon_t = math_ops.cast(self._epsilon_t, var.dtype.base_dtype)\n    # m_t = beta1 * m + (1 - beta1) * g_t\n    m = self.get_slot(var, \"m\")\n    m_slice = array_ops.gather(m, indices)\n    m_t_slice = m_slice * beta1_t + grad * (1 - beta1_t)\n    with ops.control_dependencies([m_t_slice]):\n      m_t = scatter_update(m, indices, m_t_slice)\n    # u_t = max(beta2 * u, abs(g_t))\n    v = self.get_slot(var, \"v\")\n    v_slice = array_ops.gather(v, indices)\n    v_t_slice = math_ops.maximum(v_slice * beta2_t, math_ops.abs(grad))\n    with ops.control_dependencies([v_t_slice]):\n      v_t = scatter_update(v, indices, v_t_slice)\n    # theta_t = theta - lr / (1 - beta1^t) * m_t / u_t\n    var_slice = -lr_t / (1 - beta1_power) * (m_t_slice /\n                                             (v_t_slice + epsilon_t))\n    with ops.control_dependencies([var_slice]):\n      var_update = scatter_add(var, indices, var_slice)\n    return control_flow_ops.group(*[var_update, m_t, v_t])\n\n  def _apply_sparse(self, grad, var):\n    return self._apply_sparse_shared(\n        grad.values, var, grad.indices,\n        lambda x, i, v: state_ops.scatter_add(  # pylint: disable=g-long-lambda\n            x, i, v, use_locking=self._use_locking),\n        lambda x, i, v: state_ops.scatter_update(  # pylint: disable=g-long-lambda\n            x, i, v, use_locking=self._use_locking))\n\n  def _resource_scatter_update(self, x, i, v):\n    with ops.control_dependencies(\n        [resource_variable_ops.resource_scatter_update(\n            x.handle, i, v)]):\n      return x.value()\n\n  def _resource_apply_sparse(self, grad, var, indices):\n    return self._apply_sparse_shared(\n        grad, var, indices,\n        self._resource_scatter_add, self._resource_scatter_update)\n\n  def _finish(self, update_ops, name_scope):\n    # Update the power accumulators.\n    with ops.control_dependencies(update_ops):\n      beta1_power = self._get_beta_accumulators()\n      with ops.colocate_with(beta1_power):\n        update_beta1 = beta1_power.assign(\n            beta1_power * self._beta1_t, use_locking=self._use_locking)\n    return control_flow_ops.group(*update_ops + [update_beta1],\n                                  name=name_scope)\n"
  },
  {
    "path": "utils/melt/training/bert/__init__.py",
    "content": "from melt.training.bert.optimization import *\n"
  },
  {
    "path": "utils/melt/training/bert/optimization.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors.\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\"\"\"Functions and classes related to optimization (weight updates).\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport re\nimport tensorflow as tf\n\ndef create_optimizer(global_step, init_lr, num_train_steps, num_warmup_steps, min_learning_rate=0.):\n  \"\"\"Creates an optimizer training op.\"\"\"\n  #global_step = tf.train.get_or_create_global_step()\n\n  learning_rate = tf.constant(value=init_lr, shape=[], dtype=tf.float32)\n\n  # Implements linear decay of the learning rate.\n  learning_rate = tf.train.polynomial_decay(\n      learning_rate,\n      global_step,\n      num_train_steps,\n      end_learning_rate=min_learning_rate,\n      power=1.0,\n      cycle=False)\n\n  min_learning_rate = tf.convert_to_tensor(min_learning_rate, dtype=tf.float32)\n  learning_rate = tf.cond(learning_rate > min_learning_rate, lambda: learning_rate, lambda: min_learning_rate)\n\n  # Implements linear warmup. I.e., if global_step < num_warmup_steps, the\n  # learning rate will be `global_step/num_warmup_steps * init_lr`.\n  if num_warmup_steps:\n    global_steps_int = tf.cast(global_step, tf.int32)\n    warmup_steps_int = tf.constant(num_warmup_steps, dtype=tf.int32)\n\n    global_steps_float = tf.cast(global_steps_int, tf.float32)\n    warmup_steps_float = tf.cast(warmup_steps_int, tf.float32)\n\n    warmup_percent_done = global_steps_float / warmup_steps_float\n    warmup_learning_rate = init_lr * warmup_percent_done\n\n    is_warmup = tf.cast(global_steps_int < warmup_steps_int, tf.float32)\n    learning_rate = (\n        (1.0 - is_warmup) * learning_rate + is_warmup * warmup_learning_rate)\n  \n  # It is recommended that you use this optimizer for fine tuning, since this\n  # is how the model was trained (note that the Adam m/v variables are NOT\n  # loaded from init_checkpoint.)\n  optimizer = AdamWeightDecayOptimizer(\n      learning_rate=learning_rate,\n      weight_decay_rate=0.01,\n      beta_1=0.9,\n      beta_2=0.999,\n      epsilon=1e-6,\n      exclude_from_weight_decay=[\"LayerNorm\", \"layer_norm\", \"bias\"])\n\n  return optimizer, learning_rate\n\n\nclass AdamWeightDecayOptimizer(tf.train.Optimizer):\n#class AdamWeightDecayOptimizer(tf.keras.optimizers.Optimizer)\n  \"\"\"A basic Adam optimizer that includes \"correct\" L2 weight decay.\"\"\"\n\n  def __init__(self,\n               learning_rate,\n               weight_decay_rate=0.0,\n               beta_1=0.9,\n               beta_2=0.999,\n               epsilon=1e-6,\n               exclude_from_weight_decay=None,\n               name=\"AdamWeightDecayOptimizer\"):\n    \"\"\"Constructs a AdamWeightDecayOptimizer.\"\"\"\n    super(AdamWeightDecayOptimizer, self).__init__(False, name)\n\n    self.learning_rate = learning_rate\n    self.weight_decay_rate = weight_decay_rate\n    self.beta_1 = beta_1\n    self.beta_2 = beta_2\n    self.epsilon = epsilon\n    self.exclude_from_weight_decay = exclude_from_weight_decay\n\n  def apply_gradients(self, grads_and_vars, global_step=None, name=None):\n    \"\"\"See base class.\"\"\"\n    assignments = []\n    for (grad, param) in grads_and_vars:\n      if grad is None or param is None:\n        continue\n\n      param_name = self._get_variable_name(param.name)\n\n      m = tf.get_variable(\n          name=param_name + \"/adam_m\",\n          shape=param.shape.as_list(),\n          dtype=tf.float32,\n          trainable=False,\n          initializer=tf.zeros_initializer())\n      v = tf.get_variable(\n          name=param_name + \"/adam_v\",\n          shape=param.shape.as_list(),\n          dtype=tf.float32,\n          trainable=False,\n          initializer=tf.zeros_initializer())\n\n      # Standard Adam update.\n      next_m = (\n          tf.multiply(self.beta_1, m) + tf.multiply(1.0 - self.beta_1, grad))\n      next_v = (\n          tf.multiply(self.beta_2, v) + tf.multiply(1.0 - self.beta_2,\n                                                    tf.square(grad)))\n\n      update = next_m / (tf.sqrt(next_v) + self.epsilon)\n\n      # Just adding the square of the weights to the loss function is *not*\n      # the correct way of using L2 regularization/weight decay with Adam,\n      # since that will interact with the m and v parameters in strange ways.\n      #\n      # Instead we want ot decay the weights in a manner that doesn't interact\n      # with the m/v parameters. This is equivalent to adding the square\n      # of the weights to the loss with plain (non-momentum) SGD.\n      if self._do_use_weight_decay(param_name):\n        update += self.weight_decay_rate * param\n\n      update_with_lr = self.learning_rate * update\n\n      next_param = param - update_with_lr\n\n      assignments.extend(\n          [param.assign(next_param),\n           m.assign(next_m),\n           v.assign(next_v)])\n\n      if global_step:\n        new_global_step = global_step + 1\n        assignments.extend([global_step.assign(new_global_step)])\n    return tf.group(*assignments, name=name)\n\n  def _do_use_weight_decay(self, param_name):\n    \"\"\"Whether to use L2 weight decay for `param_name`.\"\"\"\n    if not self.weight_decay_rate:\n      return False\n    if self.exclude_from_weight_decay:\n      for r in self.exclude_from_weight_decay:\n        if re.search(r, param_name) is not None:\n          return False\n    return True\n\n  def _get_variable_name(self, param_name):\n    \"\"\"Get the variable name from the tensor name.\"\"\"\n    m = re.match(\"^(.*):\\\\d+$\", param_name)\n    if m is not None:\n      param_name = m.group(1)\n    return param_name\n"
  },
  {
    "path": "utils/melt/training/learning_rate_decay.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   learning_rate_decay.py\n#        \\author   chenghuige  \n#          \\date   2017-10-21 06:11:06.077589\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nfrom tensorflow.python.framework import ops\nfrom tensorflow.python.ops import control_flow_ops\nfrom tensorflow.python.ops import math_ops\n\ndef exponential_decay(learning_rate, global_step, decay_steps, decay_rate,\n                      decay_start_step=0,\n                      staircase=False, name=None):\n  \"\"\"Applies exponential decay to the learning rate.\n\n  When training a model, it is often recommended to lower the learning rate as\n  the training progresses.  This function applies an exponential decay function\n  to a provided initial learning rate.  It requires a `global_step` value to\n  compute the decayed learning rate.  You can just pass a TensorFlow variable\n  that you increment at each training step.\n\n  The function returns the decayed learning rate.  It is computed as:\n\n  ```python\n  decayed_learning_rate = learning_rate *\n                          decay_rate ^ (global_step / decay_steps)\n  ```\n\n  If the argument `staircase` is `True`, then `global_step / decay_steps` is an\n  integer division and the decayed learning rate follows a staircase function.\n\n  Example: decay every 100000 steps with a base of 0.96:\n\n  ```python\n  ...\n  global_step = tf.Variable(0, trainable=False)\n  starter_learning_rate = 0.1\n  learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,\n                                             100000, 0.96, staircase=True)\n  # Passing global_step to minimize() will increment it at each step.\n  learning_step = (\n      tf.train.GradientDescentOptimizer(learning_rate)\n      .minimize(...my loss..., global_step=global_step)\n  )\n  ```\n\n  Args:\n    learning_rate: A scalar `float32` or `float64` `Tensor` or a\n      Python number.  The initial learning rate.\n    global_step: A scalar `int32` or `int64` `Tensor` or a Python number.\n      Global step to use for the decay computation.  Must not be negative.\n    decay_steps: A scalar `int32` or `int64` `Tensor` or a Python number.\n      Must be positive.  See the decay computation above.\n    decay_rate: A scalar `float32` or `float64` `Tensor` or a\n      Python number.  The decay rate.\n    staircase: Boolean.  If `True` decay the learning rate at discrete intervals\n    name: String.  Optional name of the operation.  Defaults to\n      'ExponentialDecay'.\n\n  Returns:\n    A scalar `Tensor` of the same type as `learning_rate`.  The decayed\n    learning rate.\n\n  Raises:\n    ValueError: if `global_step` is not supplied.\n  \"\"\"\n  if global_step is None:\n    raise ValueError(\"global_step is required for exponential_decay.\")\n  with ops.name_scope(name, \"ExponentialDecay\",\n                      [learning_rate, global_step,\n                       decay_steps, decay_rate,\n                       decay_start_step]) as name:\n    learning_rate = ops.convert_to_tensor(learning_rate, name=\"learning_rate\")\n    dtype = learning_rate.dtype\n    global_step = math_ops.cast(global_step, dtype)\n    decay_steps = math_ops.cast(decay_steps, dtype)\n    decay_rate = math_ops.cast(decay_rate, dtype)\n    decay_start_step = math_ops.cast(decay_start_step, dtype)\n    p = global_step / decay_steps\n    if staircase:\n      p = math_ops.floor(p)\n    return tf.cond(global_step < decay_start_step,\n                   lambda: learning_rate, \n                   lambda: math_ops.multiply(learning_rate, math_ops.pow(decay_rate, p),name=name))\n\ndef piecewise_constant(x, boundaries, values, name=None):\n  with ops.name_scope(name, \"PiecewiseConstant\",\n                      [x, boundaries, values, name]) as name:\n    x = ops.convert_to_tensor(x)  \n    #TODO hack chg change this from traing/learning_rate_decay.py\n    # Avoid explicit conversion to x's dtype. This could result in faulty\n    # comparisons, for example if floats are converted to integers.\n    boundaries = ops.convert_n_to_tensor(boundaries, tf.int64)\n    for b in boundaries:\n      if b.dtype.base_dtype != x.dtype.base_dtype:\n        raise ValueError(\n            \"Boundaries (%s) must have the same dtype as x (%s).\" % (\n                b.dtype.base_dtype, x.dtype.base_dtype))\n    # TODO(rdipietro): Ensure that boundaries' elements are strictly increasing.\n    values = ops.convert_n_to_tensor(values)\n    for v in values[1:]:\n      if v.dtype.base_dtype != values[0].dtype.base_dtype:\n        raise ValueError(\n            \"Values must have elements all with the same dtype (%s vs %s).\" % (\n                values[0].dtype.base_dtype, v.dtype.base_dtype))\n\n    pred_fn_pairs = {}\n    pred_fn_pairs[x <= boundaries[0]] = lambda: values[0]\n    pred_fn_pairs[x > boundaries[-1]] = lambda: values[-1]\n    for low, high, v in zip(boundaries[:-1], boundaries[1:], values[1:-1]):\n      # Need to bind v here; can do this with lambda v=v: ...\n      pred = (x > low) & (x <= high)\n      pred_fn_pairs[pred] = lambda v=v: v\n\n    # The default isn't needed here because our conditions are mutually\n    # exclusive and exhaustive, but tf.case requires it.\n    default = lambda: values[0]\n    return control_flow_ops.case(pred_fn_pairs, default, exclusive=True) \n"
  },
  {
    "path": "utils/melt/training/training.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   training.py\n#        \\author   chenghuige  \n#          \\date   2017-10-21 06:09:05.218921\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nfrom melt.training.learning_rate_decay import *\n  \n"
  },
  {
    "path": "utils/melt/util.py",
    "content": "﻿#!/usr/bin/env python\n# ==============================================================================\n#          \\file   util.py\n#        \\author   chenghuige  \n#          \\date   2016-08-16 19:32:41.443712\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\nfrom tensorflow.python import pywrap_tensorflow\nimport tensorflow.contrib.slim as slim\n\nimport sys, os, glob, traceback\nimport inspect\nimport six\n\nimport numpy as np\n\nimport glob\n\nimport gezi\nimport melt \n\nlogging = melt.logging\n\nkeras = tf.keras\n\n# TODO FIXME should use below but now not work\ndef create_restore_fn(checkpoint, model_name, restore_model_name):\n  model_name = gezi.pascal2gnu(model_name)\n  restore_model_name = gezi.pascal2gnu(restore_model_name)\n  \n  variables_to_restore = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope=model_name)\n  assert variables_to_restore, tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)\n\n  prefix  = '%s/%s' % (model_name, restore_model_name)\n\n  # remove model_name\n  def name_in_checkpoint(var):\n    return var.op.name.replace(prefix, restore_model_name)\n\n  variables_to_restore = {name_in_checkpoint(var):var for var in variables_to_restore if var.op.name.startswith(prefix)}\n  \n  varnames_in_checkpoint = melt.get_checkpoint_varnames(checkpoint)\n  # FIXME wrong..\n  variables_to_restore = {var2:var for var2 in varnames_in_checkpoint}\n\n  saver = tf.train.Saver(variables_to_restore)\n\n  def restore_fn(sess):\n    timer = gezi.Timer('restore var from %s %s' % (restore_model_name, checkpoint))\n    saver.restore(sess, checkpoint)\n    timer.print()\n\n  return restore_fn\n\nclass Model(keras.Model):\n  def __init__(self,  \n               **kwargs):\n    super(Model, self).__init__(**kwargs)\n    self.debug = False\n    self.step = -1\n    self.training = False\n  \n  def train(self):\n    self.training = True\n\n  def eval(self):\n    self.training = False\n\n# def reset_global_step(global_step):\n#   new_global_step = tf.train.get_global_step().assign(global_step)\n\ndef exists_model(model_dir):\n  return os.path.exists(model_dir) and (not os.path.isdir(model_dir) or glob.glob(model_dir + '/model*ckpt*'))\n\nfrom tensorflow.python.platform import gfile\nfrom tensorflow.python.framework.graph_util import convert_variables_to_constants\n\ndef adjust_lrs(x, ratio=None, name='learning_rate_weights'):\n  if ratio is None:\n    ratios = tf.get_collection(name)[-1]\n    x = x * ratios + tf.stop_gradient(x) * (1 - ratios)\n  else:\n    x = x * ratio + tf.stop_gradient(x) * (1 - ratio)\n  return x\n\ndef adjust_weights(x, ratio=None, name='learning_rate_weights'):\n  if ratio is None:\n    ratios = tf.get_collection(name)[-1]\n    x = x * ratios \n  else:\n    x = x * ratio \n  return x\n\ndef try_convert_images(images):\n  if not isinstance(images, (list, tuple, np.ndarray)):\n    images = [images]\n  if isinstance(images[0], (str, np.string_)) and len(images[0]) < 1000:\n    images = [melt.image.read_image(image) for image in images]\n  return images\n\ndef freeze_graph(sess, model_path, global_step=None, output_collection_names=None, output_node_names=None):\n  if output_collection_names is None and output_node_names is None:\n    return None  \n\n  graph_def = sess.graph_def\n  graph = sess.graph\n\n  if global_step is not None:  # allow 0\n    outfile = '%s-%d.pb' % (model_path, global_step)\n    outmapfile = '%s-%d.map' % (model_path, global_step)\n  else:\n    outfile = '%s.pb' % model_path\n    outmapfile = '%s.map' % model_path\n\n  #print('outfile', outfile, 'outmap', outmapfile)\n\n  if output_node_names is None:\n    output_node_names = []\n    outmap = open(outmapfile, 'w')\n    for cname in output_collection_names:\n      for item in graph.get_collection(cname):\n        # [TopKV2(values=<tf.Tensor 'TopKV2_1:0' shape=(1,) dtype=int32>, indices=<tf.Tensor 'TopKV2_1:1' shape=(1,) dtype=int32>)]\n        # f.get_collection('y')[0][0].name Out[17]: u'TopKV2_1:0'\n\n        # bypass :0\n        # if not hasattr(item, 'name'):\n        #   print('item no name for', item, file=sys.stderr)\n        #   continue\n        # :1 for like top_k, :2 for future usage might length 3 tuple\n        if item is None:\n          continue\n        if not (item.name.endswith(':0') or item.name.endswith(':1') or item.name.endswith(':2')):\n          continue\n        opname = item.name[:-2]\n        output_node_names.append(opname)\n        print('%s\\t%s' % (cname, item.name), file=outmap)\n  frozen_graph_def = convert_variables_to_constants(sess, graph_def, output_node_names)\n\n  #print('outfile')\n  with  tf.io.gfile.GFile (outfile, \"wb\") as f:\n    f.write(frozen_graph_def.SerializeToString())\n\n  model_dir = os.path.dirname(outfile)\n  #print('model_dir', model_dir)\n  maps = glob.glob('%s/*.map' % model_dir)\n  #print('maps', maps)\n  for map_ in maps:\n    index_file = map_.replace('.map', '.index')\n    if not os.path.exists(index_file):\n      pb_file = map_.replace('.map', '.pb')\n      #print('remove %s %s' % (map_, pb_file))\n      os.remove(map_)\n      os.remove(pb_file)\n\n  return frozen_graph_def\n\n\ndef is_raw_image(image_features):\n  return isinstance(image_features[0], np.string_)\n\n\ndef set_learning_rate(lr, sess=None, name='learning_rate'):\n  if not sess:\n    sess = melt.get_session()\n  sess.run(tf.assign(tf.get_collection(name)[-1], lr))\n\ndef multiply_learning_rate(lr, sess=None, name='learning_rate'):\n  if not sess:\n    sess = melt.get_session()\n  sess.run(tf.assign(tf.get_collection(name)[-1], tf.get_collection(name)[-1] * lr))\n\n#https://stackoverflow.com/questions/35164529/in-tensorflow-is-there-any-way-to-just-initialize-uninitialised-variables\ndef init_uninitialized_variables(sess, list_of_variables = None):\n  if list_of_variables is None:\n    list_of_variables = tf.global_variables()\n  uninitialized_variables = list(tf.get_variable(name) for name in\n                                 sess.run(tf.report_uninitialized_variables(list_of_variables)))\n  uninitialized_variables = tf.group(uninitialized_variables, tf.local_variables_initializer()) \n  sess.run(tf.variables_initializer(uninitialized_variables))\n  return uninitialized_variables\n\ndef get_global_step(model_dir, num_steps_per_epoch, fix_step=True):\n  if not model_dir:\n    return 0\n\n  checkpoint_path = get_model_path(model_dir)\n  if os.path.isdir(checkpoint_path) or not os.path.exists(checkpoint_path + '.index'):\n    return 0\n  \n  pre_step = get_model_step(checkpoint_path)\n  if not num_steps_per_epoch or not fix_step:\n    return pre_step\n\n  pre_epoch = melt.get_model_epoch(checkpoint_path)\n  if pre_epoch is None:\n    return pre_step\n  \n  fixed_pre_step = pre_step\n  if abs(pre_step / num_steps_per_epoch - pre_epoch) > 0.1:\n    fixed_pre_step = int(pre_epoch * num_steps_per_epoch)\n    return fixed_pre_step\n  else:\n    return pre_step\n\ndef checkpoint_exists(checkpoint_path):\n  return not os.path.isdir(checkpoint_path) and \\\n         os.path.exists(checkpoint_path) or os.path.exists(checkpoint_path + '.index') \n\ndef get_checkpoint_varnames(model_dir):\n  checkpoint_path = get_model_path(model_dir)\n  #if model_dir is dir then checkpoint_path should be model path not model dir like\n  #/home/gezi/new/temp/image-caption/makeup/model/bow.inceptionResnetV2.finetune.later/model.ckpt-589.5-1011000\n  #if user input model_dir is like above model path we assume it to be correct and exists not check!\n  if os.path.isdir(checkpoint_path) or not os.path.exists(checkpoint_path + '.index'):\n    return None\n  try:\n    reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)\n    var_to_shape_map = reader.get_variable_to_shape_map()\n    varnames = [var_name for var_name in var_to_shape_map]\n    return varnames\n  except Exception:\n    print(traceback.format_exc())\n    return None\n\ndef varname_in_checkpoint(varname_part, model_dir, mode='in'):\n  assert varname_part\n  varnames = get_checkpoint_varnames(model_dir)\n  if not varnames:\n    return False\n  else:\n    varnames_exists = False\n    for varname in varnames:\n      if mode == 'in':\n        if varname_part in varname:\n          varnames_exists = True\n          break\n      elif mode == 'startswith':\n        if varname.startswith(varname_part):\n          varnames_exists = True\n          break\n      elif mode == 'exact_match':\n        if varname_part == varname:\n          varnames_exists = True\n          \n    return varnames_exists\n\ndef has_image_model(model_dir, image_model_name):\n  return varname_in_checkpoint(image_model_name, model_dir)\n\ndef try_add_to_collection(name, op):\n  if not tf.get_collection(name):\n    tf.add_to_collection(name, op)\n\ndef remove_from_collection(key):\n  #must use ref get list and set to empty using [:] = [] or py3 can .clear\n  #https://stackoverflow.com/questions/850795/different-ways-of-clearing-lists\n  l = tf.get_collection_ref(key)\n  l[:] = []  \n\ndef rename_from_collection(key, to_key, index=0, scope=None):\n  l = tf.get_collection_ref(key)\n  if l:\n    tf.add_to_collection(to_key, l[index])\n    l[:] = []\n\n#https://stackoverflow.com/questions/44251666/how-to-initialize-tensorflow-variable-that-wasnt-saved-other-than-with-tf-globa\ndef initialize_uninitialized_vars(sess):\n  import itertools\n  from itertools import compress\n  global_vars = tf.global_variables()\n  is_not_initialized = sess.run([~(tf.is_variable_initialized(var)) \\\n                                  for var in global_vars])\n  not_initialized_vars = list(compress(global_vars, is_not_initialized))\n\n  if len(not_initialized_vars):\n    sess.run(tf.variables_initializer(not_initialized_vars))\n\n#In [3]: tf.contrib.layers.OPTIMIZER_CLS_NAMES\n#Out[3]: \n#{'Adagrad': tensorflow.python.training.adagrad.AdagradOptimizer,\n# 'Adam': tensorflow.python.training.adam.AdamOptimizer,\n# 'Ftrl': tensorflow.python.training.ftrl.FtrlOptimizer,\n# 'Momentum': tensorflow.python.training.momentum.MomentumOptimizer,\n# 'RMSProp': tensorflow.python.training.rmsprop.RMSPropOptimizer,\n# 'SGD': tensorflow.python.training.gradient_descent.GradientDescentOptimizer}\n\noptimizers = {\n  'grad': tf.train.GradientDescentOptimizer,\n  'sgd': tf.train.GradientDescentOptimizer,\n  'adagrad': tf.train.AdagradOptimizer,  \n  # TODO notice tensorflow adagrad no epsilon param..  See if kears optimizers better ?\n  #'adagrad': lambda lr: tf.train.AdagradOptimizer(lr, epsilon=1e-06), # keras.optimizers.Adagrad(lr=0.01, epsilon=1e-06)\n  #'adam': tf.train.AdamOptimizer,\n  #'adam': lambda lr: tf.train.AdamOptimizer(lr, beta_1=0.9, beta_2=0.999, epsilon=1e-08), #keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)\n  'adam': lambda lr: tf.train.AdamOptimizer(lr, epsilon=1e-08),\n  'adam_t2t': lambda lr: tf.train.AdamOptimizer(lr, epsilon=1e-06, beta1=0.85, beta2=0.997),\n  #'adadelta': tf.train.AdadeltaOptimizer\n  'adadelta': lambda lr: tf.train.AdadeltaOptimizer(lr, epsilon=1e-6),  #follow squad, also keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-06)\n  # still not fix https://github.com/tensorflow/tensorflow/pull/15665\n  'nadam': tf.contrib.opt.NadamOptimizer, # TODO FIXME nadam not work, InvalidArgumentError (see above for traceback): Incompatible shapes: [2737,300] vs. [91677,300] \n  #'momentum': lambda lr, momentum: tf.train.MomentumOptimizer(lr, momentum=momentum) # in melt.app.train\n  #'adamax': tf.contrib.opt.AdaMaxOptimizer, # will got NAN ...\n  #'adamax': lambda lr: tf.contrib.opt.AdaMaxOptimizer(lr, epsilon=1e-8),\n  'adamax': melt.training.adamax.AdaMaxOptimizer,\n  'ftrl': tf.train.FtrlOptimizer,\n  #'adamax': tf.keras.optimizers.Adamax,  # tf can not directly use kears optimzier...\n  }\n\nkeras_optimizers = {\n  'adagrad': tf.keras.optimizers.Adagrad,\n  'adam': tf.keras.optimizers.Adam, \n  'adadelta': tf.keras.optimizers.Adadelta,\n  'nadam': tf.keras.optimizers.Nadam,\n}\n\ndef get_session(log_device_placement=False, allow_soft_placement=True, debug=False, device_count=None):\n  \"\"\"\n  TODO FIXME get_session will casue  at last\n#Exception UnboundLocalError: \"local variable 'status' referenced before assignment\" in <bound method Session.__del__ of <tensorflow.python.client.session.Session object at 0x858af10>> ignored\n#TRACE: 03-17 08:22:26:   * 0 [clear]: tag init stat error\n\nglobal or inside function global sess will cause this but not big problem for convenience just accpet right now\n  \"\"\"\n  if not hasattr(get_session, 'sess') or get_session.sess is None:\n    if device_count is None:\n      config=tf.ConfigProto(allow_soft_placement=allow_soft_placement, \n                            log_device_placement=log_device_placement)\n    else:\n      config=tf.ConfigProto(allow_soft_placement=allow_soft_placement, \n                            log_device_placement=log_device_placement,\n                            device_count=device_count)    \n    use_horovod = 'OMPI_COMM_WORLD_RANK' in os.environ\n    if use_horovod:\n      config.gpu_options.allow_growth = True\n      import horovod.keras as hvd\n      config.gpu_options.visible_device_list = str(hvd.local_rank())  \n      # sess = tf.train.MonitoredTrainingSession(checkpoint_dir=checkpoint_dir,\n      #                                          config=config)\n    #config.operation_timeout_in_ms=600000\n    #NOTICE https://github.com/tensorflow/tensorflow/issues/2130 but 5000 will cause init problem!\n    #config.operation_timeout_in_ms=50000   # terminate on long hangs\n    #https://github.com/tensorflow/tensorflow/issues/2292 allow_soft_placement=True\n    if FLAGS.use_tpu:\n      tpu_cluster_resolver = None\n      if FLAGS.use_tpu and FLAGS.tpu_name:\n        tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(\n          FLAGS.tpu_name, zone=FLAGS.tpu_zone, project=FLAGS.gcp_project)\n      get_session.sess = tf.Session(tpu_cluster_resolver)\n    else:\n      get_session.sess = tf.Session(config=config)\n    \n    if debug:\n      from tensorflow.python import debug as tf_debug\n      get_session.sess = tf_debug.LocalCLIDebugWrapperSession(get_session.sess)\n  return get_session.sess\n\ndef gen_session(graph=None, log_device_placement=False, allow_soft_placement=True, debug=False):\n  config=tf.ConfigProto(allow_soft_placement=allow_soft_placement, \n                        log_device_placement=log_device_placement)\n  sess = tf.Session(config=config, graph=graph)\n  if debug:\n    from tensorflow.python import debug as tf_debug\n    sess = tf_debug.LocalCLIDebugWrapperSession(sess)\n  return sess\n\n#def get_session(log_device_placement=False, allow_soft_placement=True, debug=False):\n#  \"\"\"\n#  TODO FIXME get_session will casue  at last\n##Exception UnboundLocalError: \"local variable 'status' referenced before assignment\" in <bound method Session.__del__ of <tensorflow.python.client.session.Session object at 0x858af10>> ignored\n##TRACE: 03-17 08:22:26:   * 0 [clear]: tag init stat error\n\n#global or inside function global sess will cause this but not big problem for convenience just accpet right now\n#  \"\"\"\n#  if not hasattr(get_session, 'sess') or get_session.sess is None:\n#    config=tf.ConfigProto(\n#      allow_soft_placement=allow_soft_placement, \n#      log_device_placement=log_device_placement)\n#    #config.operation_timeout_in_ms=600000\n#    #NOTICE https://github.com/tensorflow/tensorflow/issues/2130 but 5000 will cause init problem!\n#    #config.operation_timeout_in_ms=50000   # terminate on long hangs\n#    sess = tf.Session(config=config)\n#    if debug:\n#      sess = tf_debug.LocalCLIDebugWrapperSession(sess)\n#  return sess\n\ndef get_optimizer(name):\n  if not isinstance(name, str):\n    return name \n  # TODO how to use keras optimizers especially like nadam ? seems different api\n  # if name.lower() in keras_optimizers:\n  #   return keras_optimizers[name.lower()]\n  # elif name.lower() in optimizers:\n  if name.lower() in optimizers:\n    return optimizers[name.lower()]\n  else:\n    return tf.contrib.layers.OPTIMIZER_CLS_NAMES[name]\n  # if name in tf.contrib.layers.OPTIMIZER_CLS_NAMES:\n  #   return tf.contrib.layers.OPTIMIZER_CLS_NAMES[name]\n  # else:\n  #   return optimizers[name.lower()]\n\ndef gen_train_op(loss, learning_rate, optimizer=tf.train.AdagradOptimizer):\n  train_op = optimizer(learning_rate).minimize(loss)  \n  return train_op  \n\ndef gen_train_op_byname(loss, learning_rate, name='adagrad'):\n  optimizer = optimizers.get(name.lower(), tf.train.AdagradOptimizer)\n  train_op = optimizer(learning_rate).minimize(loss)  \n  return train_op  \n\n#TODO add name, notice if num_gpus=1 is same as num_gpus=0\n#but for num_gpus=0 we will not consider multi gpu mode\n#so num_gpus=1 will not use much, just for mlti gpu test purpose\n#from https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py def train()\n\n# def tower(loss_function, num_gpus=1, training=True, name=''):\n#   towers = []\n#   update_ops = []\n#   for i in range(num_gpus):\n#     with tf.device('/gpu:%d' % i):\n#       #print(tf.get_variable_scope().reuse)\n#       with tf.variable_scope(tf.get_variable_scope(), reuse=bool(i != 0)): \n#         with tf.name_scope('%s_%d' % ('tower', i)) as name_scope:\n#           if 'i' in inspect.getargspec(loss_function).args:\n#             loss = loss_function(i)\n#           else:\n#             loss = loss_function()\n#           # Reuse variables for the next tower. itersting.. not work.. for cifar10 ._conv...\n#           #print(tf.get_variable_scope().reuse)\n#           #tf.get_variable_scope().reuse_variables()\n#           #print(tf.get_variable_scope().reuse)\n#           # REMIND actually for training other metrics like acc... will only record the last one, I think this is enough!\n#           if isinstance(loss, (list, tuple)) and training:\n#             loss = loss[0]\n#           towers.append(loss)\n#           if i == 0 and training:\n#             # Only trigger batch_norm moving mean and variance update from\n#             # the 1st tower. Ideally, we should grab the updates from all\n#             # towers but these stats accumulate extremely fast so we can\n#             # ignore the other stats from the other towers without\n#             # significant detriment.\n#             update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS,\n#                                             name_scope)\n#   if training:\n#     return towers, update_ops\n#   else:\n#     towers = [list(x) if isinstance(x, tuple) else x for x in towers]\n#     return towers\n\n# TODO will this be ok.. ?\ndef tower(loss_function, num_gpus=1, training=True, name=''):\n  towers = []\n  update_ops = []\n  for i in range(num_gpus):\n    with tf.device('/gpu:%d' % i):\n      #print(tf.get_variable_scope().reuse)\n      with tf.variable_scope(tf.get_variable_scope(), reuse=bool(i != 0)): \n        #with tf.name_scope('%s_%d' % ('tower', i)) as name_scope:\n        if 'i' in inspect.getargspec(loss_function).args:\n          loss = loss_function(i)\n        else:\n          loss = loss_function()\n        # Reuse variables for the next tower. itersting.. not work.. for cifar10 ._conv...\n        #print(tf.get_variable_scope().reuse)\n        #tf.get_variable_scope().reuse_variables()\n        #print(tf.get_variable_scope().reuse)\n        # REMIND actually for training other metrics like acc... will only record the last one, I think this is enough!\n        if isinstance(loss, (list, tuple)) and training:\n          loss = loss[0]\n        towers.append(loss)\n        if i == 0 and training:\n          # Only trigger batch_norm moving mean and variance update from\n          # the 1st tower. Ideally, we should grab the updates from all\n          # towers but these stats accumulate extremely fast so we can\n          # ignore the other stats from the other towers without\n          # significant detriment.\n          # update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS,\n          #                                name_scope)\n          update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)\n  if training:\n    return towers, update_ops\n  else:\n    towers = [list(x) if isinstance(x, tuple) else x for x in towers]\n    return towers\n\ntower_losses = tower\n\n# from cifar10_estimator example code\n# TODO can it be used with out input of batch_size so as can be used for buckets length ? different batch size how to ?\ndef _split_batch(batch_datas, batch_size, num_shards, training=True):\n  #with tf.device('/cpu:0'):\n  batch_datas = [tf.unstack(batch_data, num=batch_size, axis=0) for batch_data in batch_datas]\n\n  new_batch_datas = []\n  for i in range(len(batch_datas)):\n    new_batch_datas.append([[] for i in range(num_shards)])\n\n  batch_size_per_gpu = batch_size // num_shards\n  assert batch_size == batch_size_per_gpu * num_shards\n\n  for i in range(batch_size):\n    idx = i % num_shards if training else i // batch_size_per_gpu\n    for j in range(len(batch_datas)):\n      new_batch_datas[j][idx].append(batch_datas[j][i])\n\n  def stack(x):\n    try:\n      return tf.parallel_stack(x)\n    except Exception:\n      return tf.stack(x)\n\n  for i in range(len(batch_datas)):\n    #new_batch_datas[i] = [tf.parallel_stack(x) for x in new_batch_datas[i] if x]\n    new_batch_datas[i] = [stack(x) for x in new_batch_datas[i] if x]\n\n  return tuple(new_batch_datas)\n\ndef split_batch(batch_datas, batch_size, num_shards, training=True):\n  with tf.device('/cpu:0'):\n    if num_shards <= 1:\n      # No GPU available or only 1 GPU.\n      return tuple([x] for x in batch_datas)\n\n    if not isinstance(batch_datas[0], dict):\n      return _split_batch(batch_datas, batch_size, num_shards, training)\n    else:\n      # x, y (x is dict, y not)\n      assert len(batch_datas) == 2 \n      keys = batch_datas[0].keys()\n      #batch_datas = [batch_datas[0][key] for key in keys] + [batch_datas[-1]]\n      batch_datas = list(batch_datas[0].values()) + [batch_datas[-1]]\n      batch_datas = _split_batch(batch_datas, batch_size, num_shards, training)\n      # print(batch_datas)\n      # TODO... why append ok... x = [{}] * num_shards not ok..\n      # x = [{}] * num_shards\n      x = []\n      for j in range(num_shards):\n        m = {}\n        for i, key in enumerate(keys):\n          #x[j][key] = batch_datas[i][j]\n          m[key] = batch_datas[i][j]\n        x.append(m)\n\n      y = batch_datas[-1]  \n      return x, y\n\n      # for i, key in enumerate(keys):\n      #   for j in range(num_shards):\n      #     x[j][key] = batch_datas[i][j]\n      # y = batch_datas[-1]\n      # print('-----------x', x)\n      # print('-----------y', y)\n      # return x, y\n      #return batch_datas\n\n#https://stackoverflow.com/questions/38559755/how-to-get-current-available-gpus-in-tensorflow\nfrom tensorflow.python.client import device_lib\ndef get_available_gpus():\n  #local_device_protos = device_lib.list_local_devices()\n  #return [x.name for x in local_device_protos if x.device_type == 'GPU']\n  import subprocess\n  n = str(subprocess.check_output([\"nvidia-smi\", \"-L\"])).count('UUID')\n  return n\n\ndef get_num_gpus_specific():\n  if 'CUDA_VISIBLE_DEVICES' in os.environ:\n    print(\"os.environ['CUDA_VISIBLE_DEVICES']\", os.environ['CUDA_VISIBLE_DEVICES'])\n    if os.environ['CUDA_VISIBLE_DEVICES'] == '-1':\n      return 0\n    num_gpus = len(os.environ['CUDA_VISIBLE_DEVICES'].split(','))\n    logging.info('CUDA_VISIBLE_DEVICES is %s'%(os.environ['CUDA_VISIBLE_DEVICES']))\n    return num_gpus\n  else:\n    return None\n\ndef get_num_gpus():\n  num_gpus = get_num_gpus_specific()\n  if num_gpus is None:\n    num_gpus = get_available_gpus()\n  return num_gpus\n \ndef is_cudnn_cell(cell):\n  return isinstance(cell, (tf.contrib.cudnn_rnn.CudnnGRU, tf.contrib.cudnn_rnn.CudnnLSTM))\n\n# TODO now for hadoop can only run tf 1.2 \ntry:\n  rnn_cells = {\n    'basic_lstm': tf.contrib.rnn.BasicLSTMCell,\n    'lstm': tf.contrib.rnn.LSTMCell, #LSTMCell is faster then BasicLSTMCell\n    'gru': tf.contrib.rnn.GRUCell,\n    'lstm_block': tf.contrib.rnn.LSTMBlockCell, #LSTMBlockCell is faster then LSTMCell\n    'lstm_block_fused': tf.contrib.rnn.LSTMBlockFusedCell,\n    'cudnn_lstm': tf.contrib.cudnn_rnn.CudnnLSTM,\n    'cudnn_gru': tf.contrib.cudnn_rnn.CudnnGRU,\n    'cudnn_compat_lstm': tf.contrib.cudnn_rnn.CudnnCompatibleLSTMCell,\n    'cudnn_compat_gru': tf.contrib.cudnn_rnn.CudnnCompatibleGRUCell,\n    }\nexcept Exception:\n  rnn_cells = {\n    'basic_lstm': tf.contrib.rnn.BasicLSTMCell,\n    'lstm': tf.contrib.rnn.LSTMCell, #LSTMCell is faster then BasicLSTMCell\n    'gru': tf.contrib.rnn.GRUCell,\n    'lstm_block': tf.contrib.rnn.LSTMBlockCell, #LSTMBlockCell is faster then LSTMCell\n    'lstm_block_fused': tf.contrib.rnn.LSTMBlockFusedCell,\n    }\n#from https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb/ptb_word_lm.py lstm_cell()\ndef create_rnn_cell(num_units, is_training=True, initializer=None, forget_bias=1.0, num_layers=1, \n                    keep_prob=1.0, input_keep_prob=1.0, Cell=None, cell_type='lstm', scope=None):\n  with tf.variable_scope(scope or 'create_rnn_cell') as scope:\n    if initializer:\n       scope.set_initializer(initializer)\n    if Cell is None:\n      Cell = rnn_cells.get(cell_type.lower(), tf.contrib.rnn.LSTMCell)\n      print('cell:', Cell, file=sys.stderr)\n\n    if Cell is tf.contrib.cudnn_rnn.CudnnGRU or Cell is tf.contrib.cudnn_rnn.CudnnLSTM:\n      cell = Cell(num_layers=num_layers, num_units=num_units, dropout=(1. - keep_prob))\n      return cell \n\n    # Slightly better results can be obtained with forget gate biases\n    # initialized to 1 but the hyperparameters of the model would need to be\n    # different than reported in the paper.\n    def cell_():\n      # With the latest TensorFlow source code (as of Mar 27, 2017),\n      # the BasicLSTMCell will need a reuse parameter which is unfortunately not\n      # defined in TensorFlow 1.0. To maintain backwards compatibility, we add\n      # an argument check here:\n      if 'reuse' in inspect.getargspec(\n          Cell.__init__).args:\n        if 'forget_bias' in inspect.getargspec(Cell.__init__).args:\n          return Cell(\n              num_units, forget_bias=forget_bias,\n              reuse=tf.get_variable_scope().reuse)\n        else:\n          return Cell(\n              num_units, \n              reuse=tf.get_variable_scope().reuse)\n      else:\n        if 'state_is_tuple' in inspect.getargspec(\n          Cell.__init__).args:\n          if 'forget_bias' in inspect.getargspec(\n            Cell.__init__).args:\n            return Cell(num_units, forget_bias=forget_bias, state_is_tuple=True)\n          else:\n            return Cell(num_units, state_is_tuple=True)\n        else:\n          if 'forget_bias' in inspect.getargspec(\n            Cell.__init__).args:\n            return Cell(num_units, forget_bias=forget_bias)\n          else:\n            return Cell(num_units)\n\n    attn_cell = cell_\n    if is_training and (keep_prob < 1 or input_keep_prob < 1):\n      def attn_cell():\n        return tf.contrib.rnn.DropoutWrapper(\n            cell_(), \n            input_keep_prob=input_keep_prob,\n            output_keep_prob=keep_prob)\n\n    if num_layers > 1:\n      cell = tf.contrib.rnn.MultiRNNCell(\n        [attn_cell() for _ in range(num_layers)], state_is_tuple=True)\n    else:\n      cell = attn_cell()\n    #--now cell share graph by default so below is wrong.. will share cell for each layer\n    ##cell = tf.contrib.rnn.MultiRNNCell([cell] * num_layers, state_is_tuple=True) \n    return cell\n\ndef unpack_cell(cell):\n  \"\"\"Unpack the cells because the stack_bidirectional_dynamic_rnn\n  expects a list of cells, one per layer.\"\"\"\n  if isinstance(cell, tf.contrib.rnn.MultiRNNCell):\n    return cell._cells  #pylint: disable=W0212\n  else:\n    return [cell]\n\n#-------for train flow\ndef show_precision_at_k(result, k=1):\n  if len(result) == 1:\n    accuracy = result\n    print('precision@%d:'%k, '%.3f'%accuracy) \n  else:\n    loss = result[0]\n    accuracy = result[1]\n    print('loss:', '%.3f'%loss, 'precision@%d:'%k, '%.3f'%accuracy)\n\ndef print_results(results, names=None):\n  \"\"\"\n  standard result print\n  \"\"\"\n  results = gezi.get_singles(results)\n  if names is None:\n    print(gezi.pretty_floats(results))\n  else:\n    if len(names) == len(results) - 1:\n      names.insert(0, 'loss')\n    if len(names) == len(results):\n      print(gezi.get_value_name_list(results, names))\n    else:\n      print(gezi.pretty_floats(results))\n\ndef logging_results(results, names, tag=''):\\\n  logging.info('\\t'.join(\n    [tag] + ['%s:[%.4f]'%(name, result) for name, result in zip(names, results)]))\n      \ndef parse_results(results, names=None):\n  if type(results[0]) is str:\n    temp = results \n    results = names \n    names = temp\n  #only single values in results!\n  if names is None:\n    return gezi.pretty_floats(results)\n  else:\n    if len(names) == len(results) - 1:\n      names.insert(0, 'loss')\n    if len(names) == len(results):\n      return gezi.get_value_name_list(results, names)\n    else:\n      return gezi.pretty_floats(results)\n\ndef value_name_list_str(results, names=None):\n  if names is None:\n    return gezi.pretty_floats(results)\n  else:\n    return gezi.get_value_name_list(results, names)\n\n#-------model load\n#def get_model_path(model_dir, model_name=None):\n#  \"\"\"\n#  if model_dir ok return latest model in this dir\n#  else return orginal model_dir as a model path\n#  NOTICE not check if this model path is ok(assume it to be ok) \n#  \"\"\"\n#  model_path = model_dir\n#  ckpt = tf.train.get_checkpoint_state(model_dir)\n#  if ckpt and ckpt.model_checkpoint_path:\n#    #@NOTICE below code will be ok int tf 0.10 but fail int 0.11.rc tensorflow ValueError: Restore called with invalid save path\n#    #do not use  ckpt.model_checkpoint_path for we might copy the model to other path so the absolute path(you might train using absoluate path) will not match\n#    #model_path = '%s/%s'%(model_dir, os.path.basename(ckpt.model_checkpoint_path))\n#    model_path = os.path.join(model_dir, os.path.basename(ckpt.model_checkpoint_path))\n#  else:\n#    model_path = model_dir if model_name is None else os.path.join(model_dir, model_name)\n#  #assert os.path.exists(model_path), model_path\n#  #tf.logging.log_if(tf.logging.WARN, '%s not exist'%model_path, not os.path.exists(model_path))\n#  #if not os.path.exists(model_path):\n#    #model_path = None \n#    #tf.logging.WARN('%s not exist'%model_path)\n#    #raise FileNotFoundError(model_path)\n#    #raise ValueError(model_path)\n#  return model_path \n\ndef latest_checkpoint(model_dir):\n  return get_model_path(model_dir)\n\ndef get_model_dir_and_path(model_dir, model_name=None):\n  model_path = model_dir\n  ckpt = tf.train.get_checkpoint_state(model_dir)\n  if ckpt and ckpt.model_checkpoint_path:\n    #model_path = '%s/%s'%(model_dir, os.path.basename(ckpt.model_checkpoint_path)) \n    model_path = os.path.join(model_dir, os.path.basename(ckpt.model_checkpoint_path))\n  else:\n    model_path = model_dir if model_name is None else os.path.join(model_dir, model_name)\n  #if not os.path.exists(model_path+'.index'):\n  #  raise ValueError(model_path)\n  return gezi.dirname(model_path), model_path\n\ndef get_model_dir(model_dir, model_name=None):\n  model_path = model_dir\n  ckpt = tf.train.get_checkpoint_state(model_dir)\n  if ckpt and ckpt.model_checkpoint_path:\n    #model_path = '%s/%s'%(model_dir, os.path.basename(ckpt.model_checkpoint_path)) \n    model_path = os.path.join(model_dir, os.path.basename(ckpt.model_checkpoint_path))\n  else:\n    model_path = model_dir if model_name is None else os.path.join(model_dir, model_name)\n  #if not os.path.exists(model_path+'.index'):\n  #  raise ValueError(model_path)\n  return gezi.dirname(model_path)\n\ndef get_model_path(model_dir, model_name=None):\n  model_path = model_dir\n  ckpt = tf.train.get_checkpoint_state(model_dir)\n  if ckpt and ckpt.model_checkpoint_path:\n    #model_path = '%s/%s'%(model_dir, os.path.basename(ckpt.model_checkpoint_path)) \n    model_path = os.path.join(model_dir, os.path.basename(ckpt.model_checkpoint_path))\n  else:\n    model_path = model_dir if model_name is None else os.path.join(model_dir, model_name)\n  #if not os.path.exists(model_path+'.index'):\n  #  raise ValueError(model_path)\n  return model_path\n\n\n#cat checkpoint \n#model_checkpoint_path: \"/home/gezi/temp/image-caption//model.flickr.show_and_tell/model.ckpt-256000\"\n#all_model_checkpoint_paths: \"/home/gezi/temp/image-caption//model.flickr.show_and_tell/model.ckpt-252000\"\n#all_model_checkpoint_paths: \"/home/gezi/temp/image-caption//model.flickr.show_and_tell/model.ckpt-253000\"\n#all_model_checkpoint_paths: \"/home/gezi/temp/image-caption//model.flickr.show_and_tell/model.ckpt-254000\"\n#all_model_checkpoint_paths: \"/home/gezi/temp/image-caption//model.flickr.show_and_tell/model.ckpt-255000\"\n#all_model_checkpoint_paths: \"/home/gezi/temp/image-caption//model.flickr.show_and_tell/model.ckpt-256000\"\ndef recent_checkpoint(model_dir, latest=False):\n  index = -1 if latest else 1\n  return open('%s/checkpoint'%(model_dir)).readlines()[index].split()[-1].strip('\"')\n\ndef checkpoint_exists_in(model_dir):\n  if not os.path.exists(model_dir):\n    return False\n  ckpt = tf.train.get_checkpoint_state(model_dir)\n  if ckpt and ckpt.model_checkpoint_path:\n    #input valid dir and return latest model\n    return True\n  elif os.path.isdir(model_dir):\n    return False\n  else:\n    #this might be user specified model like ./model/model-100.ckpt\n    #the file exists and we NOTICE we do not check if it is valid model file!\n    return True\n\ndef get_model_step(model_path):\n  return int(model_path.split('/')[-1].split('-')[-1]) \n\ndef get_model_epoch(model_path):\n  try:\n    return float(model_path.split('/')[-1].split('-')[-2]) \n  except Exception:\n    return None\n\ndef get_model_epoch_from_dir(model_dir):\n  model_path = get_model_path(model_dir)\n  try:\n    return float(model_path.split('/')[-1].split('-')[-2]) \n  except Exception:\n    return None\n\ndef get_model_step_from_dir(model_dir):\n  model_path = get_model_path(model_dir)\n  return int(model_path.split('/')[-1].split('-')[-1]) \n\ndef save_model(sess, model_dir, step):\n  checkpoint_path = os.path.join(model_dir, 'model.ckpt')\n  tf.train.Saver().save(sess, checkpoint_path, global_step=step)\n\ndef restore(sess, model_dir, var_list=None, model_name=None):\n  assert model_dir\n  if var_list is None:\n    varnames_in_checkpoint = melt.get_checkpoint_varnames(model_dir)\n    #logging.info('varnames_in_checkpoint: {}'.format(varnames_in_checkpoint))\n    var_list = slim.get_variables_to_restore(include=varnames_in_checkpoint)\n  saver = tf.train.Saver(var_list)\n  model_path = get_model_path(model_dir, model_name)\n  #assert model_path and os.path.exists(model_path), model_path\n  saver.restore(sess, model_path)\n  #@TODO still write to file ? using >\n  print('restore ok:', model_path, file=sys.stderr)\n  sess.run(tf.local_variables_initializer())\n  return saver\n\ndef restore_from_path(sess, model_path, var_list=None):\n  if var_list is None:\n    varnames_in_checkpoint = melt.get_checkpoint_varnames(model_path)\n    #logging.info('varnames_in_checkpoint: {}'.format(varnames_in_checkpoint))\n    var_list = slim.get_variables_to_restore(include=varnames_in_checkpoint)\n  saver = tf.train.Saver(var_list)\n  saver.restore(sess, model_path)\n  print('restore ok:', model_path, file=sys.stderr)\n  sess.run(tf.local_variables_initializer())\n  return saver\n\ndef restore_scope_from_path(sess, model_path, scope):\n  variables = tf.get_collection(\n    tf.GraphKeys.GLOBAL_VARIABLES, scope=scope)\n  saver = tf.train.Saver(variables)\n  saver.restore(sess, model_path)\n  print('restore ok:', model_path, file=sys.stderr)\n  sess.run(tf.local_variables_initializer())\n  return saver\n\ndef load(model_dir, model_name=None):\n  \"\"\"\n  create sess and load from model,\n  return sess\n  use load for predictor, be sure to build all predict \n  related graph ready before calling melt.load\n  \"\"\"\n  sess = get_session()\n  restore(sess, model_dir, model_name)\n  return sess\n\ndef load_from_path(model_path):\n  \"\"\"\n  create sess and load from model,\n  return sess\n  use load for predictor, be sure to build all predict \n  related graph ready before calling melt.load\n  \"\"\"\n  sess = get_session()\n  restore_from_path(sess, model_path)\n  return sess\n\ndef list_models(model_dir, time_descending=True):\n  \"\"\"\n  list all models in model_dir\n  \"\"\"\n  # TODO check index replace meta\n  files = [file for file in glob.glob('%s/model.ckpt-*'%(model_dir)) if not file.endswith('.index')]\n  files.sort(key=lambda x: os.path.getmtime(x), reverse=time_descending)\n  return files \n\ndef variables_with_scope(scope):\n    #scope is a top scope here, otherwise change startswith part\n    return [v for v in tf.all_variables() if v.name.startswith(scope)]\n\nimport numpy \n#@TODO better\ndef npdtype2tfdtype(data_npy):\n  if data_npy.dtype == numpy.float32:\n    return tf.float32\n  if data_npy.dtype == numpy.int32:\n    return tf.int32\n  if data_npy.dtype == numpy.int64:\n    return tf.int64\n  if data_npy.dtype == numpy.float64:\n    return tf.float32\n  return tf.float32\n\ndef load_constant(data_npy, sess=None, trainable=False, \n                  dtype=None, shape=None, name=None):\n  \"\"\"\n  tf.constant only can be used for small data\n  so melt.constant means melt.large_constant and have more general usage\n  https://stackoverflow.com/questions/35687678/using-a-pre-trained-word-embedding-word2vec-or-glove-in-tensorflow\n  \"\"\"\n  name=name or 'constant_data'\n\n  if not hasattr(load_constant, 'constants'):\n    load_constant.constants = {}\n\n  if name in load_constant.constants:\n    return load_constant.constants[name]\n\n  #or if isinstance(data_npy, str)\n  if type(data_npy) is str:\n    timer = gezi.Timer('np load %s' % data_npy)\n    data_npy = np.load(data_npy)\n    timer.print_elapsed()\n\n  if dtype is None:\n    dtype = npdtype2tfdtype(data_npy)\n  #dtype = tf.float32\n\n  if shape is None:\n    shape = data_npy.shape\n  \n  # BELOW is ok but since not add to collections in tf_train_flow will not save.., if add to collections=[tf.GraphKeys.GLOBAL_VARIABLES] then sess.run(init_op) still need to feed\n  # data_init = tf.placeholder(dtype, shape)\n  # #data = tf.get_variable(name=name, dtype=dtype, initializer=data_init, trainable=trainable, collections=[tf.GraphKeys.GLOBAL_VARIABLES])\n  # data = tf.get_variable(name=name, dtype=dtype, initializer=data_init, trainable=trainable, collections=[])\n  # load_constant.constants[name] = data\n\n  # if sess is None:\n  #   sess = melt.get_session()\n  # timer = gezi.Timer('sess run initializer')\n  # sess.run(data.initializer, feed_dict={data_init: data_npy}) \n  # timer.print_elapsed()\n  # return data\n  \n  # TODO below is slow strage, some times not slow.., but should use below and above is just a ungly workaround.. and it has problem not save emb.. so just use below...\n  # NOTICE in tf_train_flow sess.run(init_op) will run this again, slow again! TODO better handel\n  timer = gezi.Timer('constant_initializer')\n  data = tf.get_variable(name, shape=shape, initializer=tf.constant_initializer(data_npy), trainable=trainable)\n  load_constant.constants[name] = data\n  timer.print_elapsed()\n  \n  return data\n\ndef load_constant_cpu(data_npy, sess=None, trainable=False, \n                      dtype=None, shape=None, name=None):\n   with tf.device('/CPU:0'):\n    return load_constant(data_npy, \n        sess=sess, \n        trainable=trainable,\n        dtype=dtype,\n        shape=shape,\n        name=name)\n\ndef reuse_variables():\n  tf.get_variable_scope().reuse_variables()\n\n#---now work.. can set attribute reuse\n#def unreuse_variables():\n#  tf.get_variable_scope().reuse=None\n\n#------------------------------------tf record save @TODO move to tfrecords\ndef int_feature(value):\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  return tf.train.Feature(int64_list=tf.train.Int64List(value=value))\n\ndef int64_feature(value):\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  return tf.train.Feature(int64_list=tf.train.Int64List(value=value))\n\ndef bytes_feature(value):\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  if not six.PY2:\n    if isinstance(value[0], str):\n      value = [x.encode() for x in value]\n  return tf.train.Feature(bytes_list=tf.train.BytesList(value=value))\n\ndef float_feature(value):\n  if not isinstance(value, (list,tuple)):\n    value = [value]\n  return tf.train.Feature(float_list=tf.train.FloatList(value=value))\n\nfeatures = lambda d: tf.train.Features(feature=d)\n\n# Helpers for creating SequenceExample objects  copy from \\tensorflow\\python\\kernel_tests\\parsing_ops_test.py\nfeature_list = lambda l: tf.train.FeatureList(feature=l)\nfeature_lists = lambda d: tf.train.FeatureLists(feature_list=d)\n\n\ndef int64_feature_list(values):\n  \"\"\"Wrapper for inserting an int64 FeatureList into a SequenceExample proto.\"\"\"\n  return tf.train.FeatureList(feature=[int64_feature(v) for v in values])\n\ndef bytes_feature_list(values):\n  \"\"\"Wrapper for inserting a bytes FeatureList into a SequenceExample proto.\"\"\"\n  return tf.train.FeatureList(feature=[bytes_feature(v) for v in values])\n\ndef float_feature_list(values):\n  \"\"\"Wrapper for inserting a bytes FeatureList into a SequenceExample proto.\"\"\"\n  return tf.train.FeatureList(feature=[float_feature(v) for v in values])\n\ndef get_num_records_single(tf_record_file):\n  return len([x for x in tf.python_io.tf_record_iterator(tf_record_file)])\n\ndef get_num_records(files):\n  if isinstance(files, str):\n    files = gezi.list_files(files) \n  return sum([get_num_records_single(file) for file in files])\n\ndef get_num_records_print(files):\n  num_records = 0\n  if isinstance(files, str):\n    files = gezi.list_files(files) \n  num_inputs = len(files)\n  index = 0\n  for file in files:\n    count = get_num_records_single(file)\n    print(file, count,  '%.3f'%(index / num_inputs))\n    num_records += count\n    index += 1\n  print('num_records:', num_records)\n  return num_records\n\ndef load_num_records(input):\n  num_records_file = os.path.dirname(input) + '/num_records.txt'\n  num_records = int(open(num_records_file).read()) if os.path.isfile(num_records_file) else 0\n  return num_records\n\ndef get_num_records_from_dir(dir_):\n  num_records_file = dir_ + '/num_records.txt'\n  num_records = int(open(num_records_file).read()) if os.path.isfile(num_records_file) else 0\n  return num_records\n\n# def get_num_records():\n#   import dconf  \n#   return dconf.NUM_RECORDS \n\n# def get_num_steps_per_epoch(batch_size):\n#   #need dconf.py with NUM_RECORDS setting 0 at first\n#   import dconf  \n#   num_records = dconf.NUM_RECORDS \n#   return num_records // batch_size \n\n#-------------histogram util \ndef monitor_train_vars(collections=None):\n  for var in tf.trainable_variables():\n    tf.histogram_summary(var.op.name, var, collections=collections)\n\nclass MonitorKeys():\n  TRAIN = 'train_monitor'\n\n#@FIXME seems not work get_collection always None\nfrom tensorflow.python.framework import ops\ndef monitor_gradients_from_loss(loss, collections=[MonitorKeys.TRAIN]):\n  grads = tf.gradients(loss, tf.trainable_variables())\n  for grad in grads:\n    if grad is not None:\n      tf.histogram_summary(grad.op.name, grad, collections=collections)\n    else:\n      raise ValueError('None grad')\n\n#TODO check op.name or .name ? diff?\ndef histogram_summary(name, tensor):\n  tf.summary.histogram('{}_{}'.format(name, tensor.op.name), tensor)\n\ndef scalar_summary(name, tensor):\n  tf.summary.scalar('{}/{}'.format(name, tensor.op.name), tensor)\n\ndef monitor_embedding(emb, vocab, vocab_size):\n  try:\n    histogram_summary('emb_0', tf.gather(emb, 0))\n    histogram_summary('emb_1', tf.gather(emb, 1))\n    histogram_summary('emb_2', tf.gather(emb, 2))\n    histogram_summary('emb_1/4', tf.gather(emb, vocab_size // 4))\n    histogram_summary('emb_middle', tf.gather(emb, vocab_size // 2))\n    histogram_summary('emb_3/4', tf.gather(emb, vocab_size // 4 * 3))\n    histogram_summary('emb_end', tf.gather(emb, vocab_size - 1))\n    histogram_summary('emb_end2', tf.gather(emb, vocab_size - 2))\n    histogram_summary('emb_start_id', tf.gather(emb, vocab.start_id()))\n    histogram_summary('emb_end_id', tf.gather(emb, vocab.end_id()))\n    histogram_summary('emb_unk_id', tf.gather(emb, vocab.unk_id()))\n  except Exception:\n    print('monitor_embedding fail', file=sys.stderr)\n\ndef visualize_embedding(emb, vocab_txt='vocab.txt'):\n  # You can add multiple embeddings. Here we add only one.\n  embedding = melt.flow.projector_config.embeddings.add()\n  embedding.tensor_name = emb.name\n  # Link this tensor to its metadata file (e.g. labels).\n  if not vocab_txt.endswith('.project'):\n    if vocab_txt.endswith('.bin'):\n      embedding.metadata_path = vocab_txt.replace('.bin', '.project')\n    elif vocab_txt.endswith('.txt'):\n      embedding.metadata_path = vocab_txt.replace('.txt', '.project')\n    else:\n      embedding.metadata_path = vocab_txt[:vocab_txt.rindex('.')] + '.project'\n\ndef get_summary_ops():\n  return ops.get_collection(ops.GraphKeys.SUMMARIES)\n\ndef print_summary_ops():\n  print('summary ops:')\n  sops = ops.get_collection(ops.GraphKeys.SUMMARIES)\n  for sop in sops:\n    print(sop)\n\ndef print_global_varaiables(sope=None):\n  for item in tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES):\n    print(item)\n\ndef print_varaiables(key, sope=None):\n  for item in tf.get_collection(key):\n    print(item)\n\ndef get_global_int(key, val=0):\n  if key not in os.environ:\n    return val\n  return int(os.environ[key])\n\ndef get_global_float(key, val=0.):\n  if key not in os.environ:\n    return val\n  return float(os.environ[key])\n\ndef get_global_str(key):\n  if key not in os.environ:\n    os.environ[key] = ''\n  return os.environ[key]\n\nglobal_dict = {}\ndef get_global(key):\n  return global_dict[key]\n\n\ndef step():\n  return get_global_int('step', 0.)\n\ndef epoch():\n  return get_global_float('epoch', 0.)\n\ndef batch_size():\n  return get_global_int('batch_size')\n\ndef num_gpus():\n  return get_global_int('num_gpus', 1)\n\ndef loss():\n  loss_ = get_global_str('eval_loss')\n  if not loss_:\n    loss_ = get_global_str('train_loss')\n  if not loss_:\n    loss_ = get_global_str('loss')\n  return loss_\n\ndef train_loss():\n  return get_global_str('train_loss')\n\ndef eval_loss():\n  return get_global_str('eval_loss')\n\ndef duration():\n  return get_global_float('duration')\n\ndef set_global(key, value):\n  os.environ[key] = str(value)\n\ndef add_global(key, value):\n  global_dict[key] = value\n\n#def step():\n#  return melt.flow.global_step\n\n#def epoch():\n#  return melt.flow.global_epoch\n\n#---------for flow\ndef default_names(length):\n  names = ['metric%d'%(i - 1) for i in range(length)]\n  names[0] = 'loss'\n  return names \n\n# TODO better handle, just use op.name , but right now has some problem\n# especially optimizer will change op.name ... not readable so now \n# you have to pass the name by yourself manully\ndef adjust_names(ops, names):\n  assert ops\n  if names is None:\n    #return [x.name.split('/')[-1].split(':')[0] for x in ops]\n    #return [x.name for x in ops]\n    return default_names(len(ops))\n  else:\n    if len(names) == len(ops):\n      return names\n    elif len(names) + 1 == len(ops):\n      names.insert(0, 'loss')\n      return names\n    elif len(names) + 2 == len(ops):\n      names.insert(0, 'loss')\n      names.insert(1, 'lr')\n    else:\n      #return [x.name.split('/')[-1].split(':')[0]for x in ops]\n      #return [x.name for x in ops]\n      return default_names(len(ops))\n\ndef add_summarys(summary, values, names, suffix='', prefix=''):\n  for value, name in zip(values, names):\n    if suffix:\n      summary.value.add(tag='%s/%s'%(name, suffix), simple_value=float(value))\n    else:\n      if prefix:\n        summary.value.add(tag='%s/%s'%(prefix, name), simple_value=float(value))\n      else:\n        summary.value.add(tag=name, simple_value=float(value))\n\ndef add_summary(summary, value, name, suffix='', prefix=''):\n  if suffix:\n    summary.value.add(tag='%s/%s'%(name, suffix), simple_value=float(value))\n  else:\n    if prefix:\n      summary.value.add(tag='%s/%s'%(prefix, name), simple_value=float(value))\n    else:\n      summary.value.add(tag=name, simple_value=float(value))\n\n#-----------deal with text  TODO move \n# TODO pad for weights start end only zero right now!\nimport melt\n\n# TODO\ndef pad_weights(text, weights, start_id=None, end_id=None, end_weight=1.0):\n  pass\n\n# TODO simplify without weights\ndef pad(text, start_id=None, end_id=None, weights=None, end_weight=1.0):\n  logging.info('Pad with start_id', start_id, ' end_id', end_id)\n  need_start_mark = start_id is not None\n  need_end_mark = end_id is not None\n  if not need_start_mark and not need_end_mark:\n    return text, melt.length(text), weights \n  \n  batch_size = tf.shape(text)[0]\n  zero_pad = tf.zeros([batch_size, 1], dtype=text.dtype)\n\n  sequence_length = melt.length(text)\n\n  if not need_start_mark:\n    text = tf.concat([text, zero_pad], 1)\n    if weights is not None:\n      weights = tf.concat([weights, tf.ones_like(zero_pad, dtype=tf.float32) * end_weight], 1)\n  else:\n    if need_start_mark:\n      start_pad = zero_pad + start_id\n      if need_end_mark:\n        text = tf.concat([start_pad, text, zero_pad], 1)\n        if weights is not None:\n          weights = tf.concat([tf.zeros_like(start_pad, dtype=tf.float32), weights, tf.ones_like(zero_pad, dtype=tf.float32) * end_weight], 1)\n      else:\n        text = tf.concat([start_pad, text], 1)\n        if weights is not None:\n          weights = tf.concat([tf.zeros_like(start_pad, dtype=tf.float32), weights], 1)\n      sequence_length += 1\n\n  if need_end_mark:\n    text = melt.dynamic_append_with_length(\n        text, \n        sequence_length, \n        tf.constant(end_id, dtype=text.dtype)) \n    if weights is not None:\n      weights = melt.dynamic_append_with_length_float32(\n        weights, \n        sequence_length, \n        tf.constant(end_weight, dtype=weights.dtype)) \n    sequence_length += 1\n\n  return text, sequence_length, weights\n\nclass GpuHanler(object):\n  def __init__(self, num_gpus=None):\n    self._cur_gpu = 0\n\n  def next_device(self):\n    \"\"\"Round robin the gpu device. (Reserve last gpu for expensive op).\"\"\"\n    if self._num_gpus == 0:\n      return ''\n    dev = '/gpu:%d' % self._cur_gpu\n    if self._num_gpus > 1:\n      self._cur_gpu = (self._cur_gpu + 1) % (self._num_gpus-1)\n    return dev\n\n\ndef count_records(files):\n  import  multiprocessing\n  from multiprocessing import Value\n\n  counter = Value('i', 0)\n  def deal_file(file):\n    try:\n      count = melt.get_num_records_single(file)\n    except Exception:\n      print('bad file:', file)\n    global counter\n    with counter.get_lock():\n      counter.value += count \n\n  pool = multiprocessing.Pool()\n  pool.map(deal_file, files)\n  pool.close()\n  pool.join()  \n\n  return counter.value\n\ndef sparse2dense(features, key=None):\n  def sparse2dense_(features, key):\n    val = features[key]\n    val = melt.sparse_tensor_to_dense(val)\n    features[key] = val   \n  if key:\n    sparse2dense(features, key)\n  else:\n    from tensorflow.python.framework.sparse_tensor import SparseTensor\n    for key, val in features.items():\n      if isinstance(val, SparseTensor):\n        sparse2dense_(features, key)\n\n\nclass GlobalStep():\n  def __init__(self, step):\n    self.step = step\n\n  def assign(self, step):\n    self.step = step\n\n  def assign_add(self, step):\n    self.step += step\n\n  def numpy(self):\n    return self.step\n\n  def value(self):\n    return self.step\n\nclass LearningRate():\n  def __init__(self, lr):\n    self.lr = lr\n\n  def assign(self, lr):\n    self.lr = lr\n\n  def numpy(self):\n    return self.lr\n\n  def value(self):\n    return self.lr\n\n  def __mul__(self, scalar):\n    return self.lr * scalar\n"
  },
  {
    "path": "utils/melt/utils/__init__.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   __init__.py\n#        \\author   chenghuige  \n#          \\date   2016-10-06 11:13:00.567854\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n#import melt.utils.logging   \nimport gezi.melt.logging \n\nfrom melt.utils.embsim import EmbeddingSim\n\nimport melt.utils.weight_decay\n\nimport melt.utils.summary"
  },
  {
    "path": "utils/melt/utils/embsim.py",
    "content": "#!/usr/bin/env python\n# ==============================================================================\n#          \\file   embsim.py\n#        \\author   chenghuige  \n#          \\date   2017-08-09 15:17:18.499275\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nimport numpy as np\nimport tensorflow as tf \nimport melt\n\ndef zero_first_row(emb):\n    #return tf.concat([tf.zeros([1, emb.get_shape()[1]]), tf.ones([emb.get_shape()[0] - 1, emb.get_shape()[1]])], 0)   \n    shape = tf.shape(emb)\n    return tf.concat([tf.zeros([1, shape[1]]), tf.ones([shape[0] - 1, shape[1]])], 0)   \n\nclass EmbeddingSim:\n  def __init__(self, emb=None, fixed_emb=None, \n              name=None, fixed_name=None, \n              model_dir=None, model_name=None, \n              sess=None):\n    self._sess = sess or tf.InteractiveSession()\n \n    if os.path.isdir(emb):\n      model_dir = emb \n\n    if model_dir is None:\n      if isinstance(emb, str):\n        emb = np.load(emb)\n        emb = melt.load_constant(emb, name=name)\n      if isinstance(fixed_emb, str):\n        #fixed_emb is corpus embeddings, all sumed and normed already\n        fixed_emb = melt.load(fixed_emb, name=fixed_emb)\n    else:\n      model_path = melt.get_model_path(model_dir, model_name)\n      emb = tf.Variable(0., name=name, validate_shape=False)\n      #emb = tf.Variable(0., name=name)\n      #like word2vec the name is 'w_in'\n      embedding_saver = tf.train.Saver({name: emb})\n      embedding_saver.restore(self._sess, model_path)\n \n    #assume 0 index not used, 0 for PAD\n    mask = zero_first_row(emb)\n    emb = tf.multiply(emb, mask)\n\n    self._emb = emb \n    self._fixed_emb = fixed_emb\n    self._normed_emb = None\n\n  def sum_emb(self, ids):\n    \"\"\"\n    ids [batch_size, max_words_per_sentence]\n    \"\"\"\n    return melt.batch_embedding_lookup_sum(self._emb, ids)\n\n  def to_feature(self, ids):\n    return tf.nn.l2_normalize(self.sum_emb(ids), -1)\n\n  def sim(self, left_ids, right_ids):\n    \"\"\"\n    [x, ..] [y, ..] -> [x, y]\n    \"\"\"\n    left_feature = self.to_feature(left_ids)\n    right_feature = self.to_feature(right_ids)\n    return melt.dot(left_feature, right_feature) \n\n  def top_sim(self, left_ids, right_ids, topn=50, sorted=True):\n    \"\"\"\n    top sim text\n    \"\"\"\n    score = self.sim(left_ids, right_ids)\n    return tf.nn.top_k(score, topn, sorted=sorted)\n\n  def all_score(self, ids):\n    feature = self.to_feature(ids)\n    if self._normed_emb is None:\n      self._normed_emb = tf.nn.l2_normalize(self._emb, -1) \n    return melt.dot(feature, self._normed_emb)\n  \n  def nearby(self, ids, topn=50, sorted=True):\n    \"\"\"\n    ids [x, ..] -> [x, vocab_size]\n    nearby word\n    \"\"\"\n    score = self.all_score(ids)\n    return tf.nn.top_k(score, topn, sorted=sorted)\n\n  def fixed_sim(self, left_ids, right_ids):\n    left_feature = tf.nn.embedding_lookup(self._fixed_emb, left_ids)\n    right_feature = tf.nn.embedding_lookup(self._fixed_emb, right_ids)\n    return melt.dot(left_feature, right_feature)\n\n  def fixed_right_sim(self, left_ids):\n    left_feature = self.to_feature(left_ids)\n    right_feature = tf.nn.embedding_lookup(self._fixed_emb, right_ids)\n    return melt.dot(left_feature, right_feature)\n\n  def fixed_all_score(self, ids):\n    feature = self.embedding_lookup(self._fixed_emb, ids)\n    return melt.dot(feature, self._fixed_emb)\n\n  def fixed_nearyby(self, ids, topn=50, sorted=True):\n    score = self.fixed_all_score(ids)\n    return tf.nn.top_k(score, topn, sorted=sorted)\n\n  def fixed_right_all_score(self, ids):\n    feature = self.to_feature(ids)\n    return melt.dot(feature, self._fixed_emb)\n\n  def fixed_right_nearyby(self, ids, topn=50, sorted=True):\n    score = self.fixed_right_all_score(ids)\n    return tf.nn.top_k(score, topn, sorted=sorted)\n    \n  def dum_fixed_emb(self, ids, ofile):\n    feature = self.to_feature(ids)\n    np.save(ofile, feature)\n\n  def dum_emb(self, ofile):\n    np.save(ofile, self._emb)\n    \n"
  },
  {
    "path": "utils/melt/utils/logging.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   logging.py\n#        \\author   chenghuige  \n#          \\date   2016-09-24 09:25:56.796006\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\nimport sys\nimport os\n\nimport logging\nimport logging.handlers\n\nimport gezi\n\n_logger = logging.getLogger('melt')\n\n_logger2 = logging.getLogger('melt2')\n   \n#_handler = logging.StreamHandler()\n#_handler.setLevel(logging.INFO)\n#_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT, None))\n#_logger.addHandler(_handler)\n#_logger.setLevel(logging.INFO)\n\nlog = _logger.log\n#debug = _logger.debug\n#error = _logger.error\n#fatal = _logger.fatal\n#info = _logger.info\n#warn = _logger.warn\n#warning = _logger.warning  \n\n#info2 = _logger2.info \n\nhvd = None\n\ndef set_hvd(hvd_):\n  global hvd \n  hvd = hvd_\n\ndef info(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.info(' '.join(\"{}\".format(a) for a in args))\n\ndef info2(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger2.info(' '.join(\"{}\".format(a) for a in args))\n\ndef fatal(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.fatal(' '.join(\"{}\".format(a) for a in args))\n\ndef error(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.error(' '.join(\"{}\".format(a) for a in args))\n\ndef debug(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.debug(' '.join(\"{}\".format(a) for a in args))\n\ndef warn(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.warn(' '.join(\"{}\".format(a) for a in args))\n\ndef warning(*args):\n  if not hvd or hvd.rank() == 0:\n    _logger.warning('WARNING: %s' % (' '.join(\"{}\".format(a) for a in args)))\n\nfrom datetime import timedelta\nimport time\n\nclass ElapsedFormatter():\n  def __init__(self):\n    self.start_time = time.time()\n  \n  def format(self, record):\n    elapsed_seconds = record.created - self.start_time\n    #using timedelta here for convenient default formatting\n    elapsed = timedelta(seconds = elapsed_seconds)\n    return \"{} {} {}\".format(gezi.now_time(), str(elapsed)[:-7], record.getMessage())\n\n_logging_file = None\n_logging_file2 = None\n\ndef _get_handler(file, formatter, split=True, split_bytime=False, mode = 'a', level=logging.INFO):\n  #setting below will set root logger write to _logging_file\n  #logging.basicConfig(filename=_logging_file, level=level, format=None)\n  #logging.basicConfig(filename=_logging_file, level=level)\n  #save one per 1024k/4, save at most 10G 1024\n  if split:\n    if not split_bytime:\n      file_handler = logging.handlers.RotatingFileHandler(file, mode=mode, maxBytes=1024*1024/4, backupCount=10240*4)\n    else:\n      file_handler = logging.handlers.TimedRotatingFileHandler(file, when='H', interval=1, backupCount=1024)\n      file_handler.suffix = \"%Y%m%d-%H%M\"\n  else:\n    file_handler = logging.FileHandler(_logging_file, mode=mode)  \n  file_handler.setLevel(level)  \n  file_handler.setFormatter(formatter)\n  return file_handler\n\ndef set_dir(path, file='log.html', logtostderr=True, logtofile=True, split=True, split_bytime=False, level=logging.INFO, mode='a'):\n  global _logger, _logging_file\n  if _logging_file is None:\n    if not path:\n      path = '/tmp/'\n    _logging_file = '%s/%s'%(path, file)\n    _logging_file2 = '%s/log.txt'%path\n    #formatter = logging.Formatter(\"%(asctime)s %(message)s\",\n    #                          \"%Y-%m-%d %H:%M:%S\")\n    formatter = ElapsedFormatter()\n    if logtofile:\n      gezi.try_mkdir(path)\n      file_handler = _get_handler(_logging_file, formatter, split, split_bytime, mode, level)\n      file_handler2 = _get_handler(_logging_file2, formatter, split, True, mode, level)\n      #file_handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT, None))\n      _logger.addHandler(file_handler)\n      _logger2.addHandler(file_handler2)\n  \n    if logtostderr:\n      handler = logging.StreamHandler()\n      handler.setLevel(logging.INFO)\n      handler.setFormatter(formatter)\n      #handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT, None))\n      _logger.addHandler(handler)\n      _logger2.addHandler(handler)\n      \n      # some how new tf cause to logg twice.. \n      # https://stackoverflow.com/questions/19561058/duplicate-output-in-simple-python-logging-configuration\n      _logger.propagate = False \n      _logger2.propagate = False\n  \n    _logger.setLevel(level)\n    _logger2.setLevel(level)\n\ndef init(path, file='log.html', logtostderr=True, logtofile=True, split=True, split_bytime=False, level=logging.INFO, mode='a'):\n  #logging.basicConfig(level=logging.INFO, stream=sys.stdout) \n  set_dir(path=path, mode=mode, file=file, logtostderr=logtostderr, logtofile=logtofile, split=split, split_bytime=split_bytime, level=level)\n\ndef vlog(level, msg, *args, **kwargs):\n  _logger.log(level, msg, *args, **kwargs)\n\ndef get_verbosity():\n  \"\"\"Return how much logging output will be produced.\"\"\"\n  return _logger.getEffectiveLevel()\n\ndef set_verbosity(verbosity):\n  \"\"\"Sets the threshold for what messages will be logged.\"\"\"\n  _logger.setLevel(verbosity)\n\ndef get_logging_file():\n  return _logging_file\n"
  },
  {
    "path": "utils/melt/utils/summary.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   summary.py\n#        \\author   chenghuige  \n#          \\date   2019-07-22 19:09:08.471338\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\n# Code referenced from https://gist.github.com/gyglim/1f8dfb1b5c82627ae3efcfbbadb9f514\nimport tensorflow as tf\nimport numpy as np\nimport scipy.misc \ntry:\n    from StringIO import StringIO  # Python 2.7\nexcept ImportError:\n    from io import BytesIO         # Python 3.x\n\nimport matplotlib.pyplot as plt\n\nimport cv2\n\n\nclass SummaryWriter(object):\n    \n    def __init__(self, log_dir):\n        \"\"\"Create a summary writer logging to log_dir.\"\"\"\n        self.writer = tf.summary.FileWriter(log_dir)\n\n    def scalar_summary(self, tag, value, step):\n        \"\"\"Log a scalar variable.\"\"\"\n        summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value)])\n        self.writer.add_summary(summary, step)\n        self.writer.flush() \n\n    def image_summary(self, tag, images, step, texts=None):\n        \"\"\"Log a list of images.\"\"\"\n\n        img_summaries = []\n        if texts:\n          assert len(images) == len(texts)\n        for i, img in enumerate(images):\n            # Write the image to a string\n            try:\n                s = StringIO()\n            except:\n                s = BytesIO()\n            \n            if not texts:\n              scipy.misc.toimage(img).save(s, format=\"png\")\n            else:\n              fig, ax = plt.subplots(nrows=1,ncols=1)\n              ax.set_title('abcdef', fontsize=40)\n              ax.imshow(img)  \n              plt.savefig(s, format='png', bbox_inches='tight')\n\n            # Create an Image object\n            img_sum = tf.Summary.Image(encoded_image_string=s.getvalue(),\n                                       height=img.shape[0],\n                                       width=img.shape[1])\n            # Create a Summary value\n            img_summaries.append(tf.Summary.Value(tag='%s/%d' % (tag, i), image=img_sum))\n\n        # Create and write Summary\n        summary = tf.Summary(value=img_summaries)\n        self.writer.add_summary(summary, step)\n        self.writer.flush() \n        \n    def history_summary(self, tag, values, step, bins=1000):\n        \"\"\"Log a histogram of the tensor of values.\"\"\"\n\n        # Create a histogram using numpy\n        counts, bin_edges = np.histogram(values, bins=bins)\n\n        # Fill the fields of the histogram proto\n        hist = tf.HistogramProto()\n        hist.min = float(np.min(values))\n        hist.max = float(np.max(values))\n        hist.num = int(np.prod(values.shape))\n        hist.sum = float(np.sum(values))\n        hist.sum_squares = float(np.sum(values**2))\n\n        # Drop the start of the first bin\n        bin_edges = bin_edges[1:]\n\n        # Add bin edges and counts\n        for edge in bin_edges:\n            hist.bucket_limit.append(edge)\n        for c in counts:\n            hist.bucket.append(c)\n\n        # Create and write Summary\n        summary = tf.Summary(value=[tf.Summary.Value(tag=tag, histo=hist)])\n        self.writer.add_summary(summary, step)\n        self.writer.flush()  \n"
  },
  {
    "path": "utils/melt/utils/weight_decay.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   util.py\n#        \\author   chenghuige  \n#          \\date   2018-02-24 11:39:22.566492\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\ntfe = tf.contrib.eager\n\n#import sys, os\nimport melt\n#logging = melt.utils.logging\n#import logging\n#print(dir(melt))\n\n# FIXME TODO Why... not found melt.utils ??!\n#import melt.utils.logging as logging\n\n#import gezi\n\nimport numpy as np\n\nclass WeightDecay(object):\n  def __init__(self, \n               weight_op='learning_rate_weight', \n               patience=3, \n               decay=0.8,  \n               cmp=None,\n               min_weight=None,\n               min_learning_rate=None,\n               initial_learning_rate=None,\n               decay_start_epoch=0,\n               sess=None):\n    import melt.utils.logging as logging\n    if not tf.executing_eagerly():\n      self.sess = sess or melt.get_session()\n    if isinstance(weight_op, str):\n      try:\n        # by default melt.apps.train will generate weight op Var named 'learning_rate_weight' TODO may be hold it just here\n        # so currently graph model will go here\n        self.weight_op = tf.get_collection(weight_op)[-1]\n        self.name = weight_op\n      except Exception:\n        raise 'TODO..'\n        # print('-------------------------Weight Decay change!')\n        # so currently eager mode will go here\n        #learning_rate_weight = tf.get_variable('learning_rate_weight', initializer= tf.ones(shape=(), dtype=tf.float32))\n        #learning_rate_weight = tf.Variable(tf.ones(shape=(), dtype=tf.float32), name='learning_rate_weight')\n        # TODO tfe.Var should only be used in keras.Model init ? notice eager mode can not use tf.Variable\n        # learning_rate_weight = tfe.Variable(tf.ones(shape=(), dtype=tf.float32), name='learning_rate_weight')\n        # tf.add_to_collection('learning_rate_weight', learning_rate_weight)\n        # self.weight_op = learning_rate_weight\n    else:\n      self.weight_op = weight_op\n      self.name = 'weight'\n\n    if cmp == 'less':\n      self.cmp = lambda x, y: x < y\n    elif cmp== 'greater':\n      self.cmp = lambda x, y: x > y  \n    else:\n      self.cmp = cmp\n    self.score = None\n\n    self.max_patience = patience\n    self.decay = decay\n    self.patience = 0\n    self.count = 0\n    self.min_weight = min_weight\n\n    if not self.min_weight:\n      self.min_weight = min_learning_rate / (initial_learning_rate or FLAGS.learning_rate)\n\n    # This is done in melt.flow\n    # weight = self.sess.run(self.weight_op)\n    # if 'learning_rate' in self.name:\n    #   melt.set_learning_rate(tf.constant(weight, dtype=tf.float32), self.sess)\n\n    self.decay_start_epoch = decay_start_epoch\n\n  def add(self, score):\n    import melt.utils.logging as logging\n\n    if not tf.executing_eagerly():\n      weight = self.sess.run(self.weight_op)\n    else:\n      weight = self.weight_op\n    #print(weight, score, self.score, self.patience)\n    \n    if (not self.cmp) and self.score:\n      if score > self.score:\n        self.cmp = lambda x, y: x > y  \n      else:\n        self.cmp = lambda x, y: x < y\n      logging.info('decay cmp:', self.cmp)\n\n    if not self.score or self.cmp(score, self.score):\n      self.score = score \n      self.patience = 0\n    else:\n      self.patience += 1\n      # epoch is set during training loop\n      epoch = melt.epoch()\n      logging.info('patience:', self.patience)\n      if epoch < self.decay_start_epoch:\n        return\n      if self.patience >= self.max_patience:\n        self.count += 1\n        self.patience = 0\n        self.score = score\n        decay = self.decay\n        pre_weight = weight\n        #weight *= decay\n        weight = weight * decay\n        \n        # decay\n        if self.min_weight and weight < self.min_weight:\n          weight = self.min_weight\n          decay = weight / pre_weight\n          if decay >  1.:\n            decay = 1.\n\n        logging.info('!decay count:', self.count, self.name, 'now:', weight)\n        if not tf.executing_eagerly():\n          self.sess.run(tf.assign(self.weight_op, tf.constant(weight, dtype=tf.float32)))\n        else:\n          self.weight_op = weight\n        \n        if 'learning_rate' in self.name:\n          if not tf.executing_eagerly():\n            melt.multiply_learning_rate(tf.constant(decay, dtype=tf.float32), self.sess)\n          else:\n            # TODO need to test eager mode\n            #learning_rate =  tf.get_collection('learning_rate')[-1]\n            #if learning_rate * decay > self.min_learning_rate:\n\n            #tf.get_collection('learning_rate')[-1] *= decay\n            tf.get_collection('learning_rate')[-1].assign(tf.get_collection('learning_rate')[-1] * decay)\n\n    return weight\n\n\nclass WeightsDecay(object):\n  def __init__(self, \n               weights_op='learning_rate_weights', \n               patience=3, \n               decay=0.8, \n               cmp=None,\n               names=None,\n               num_weights=None, \n               min_weight=None,\n               min_learning_rate=None,\n               initial_learning_rate=None,\n               initial_score=None,\n               decay_start_epoch=0,\n               sess=None):\n    import melt.utils.logging as logging\n    if not tf.executing_eagerly():\n      self.sess = sess or melt.get_session()\n\n    if num_weights is None:\n      assert names\n      num_weights = len(names)\n\n    logging.info('decay:', decay, 'cmp:', cmp)\n    assert cmp == 'less' or cmp == 'greater'\n\n    if cmp == 'less':\n      self.cmp = lambda x, y: x < y\n      self.scores = np.ones([num_weights]) * 1e10\n    elif cmp == 'greater':\n      self.cmp = lambda x, y: x > y  \n      self.scores = np.ones([num_weights]) * -1e10\n    else:\n      # TODO...\n      self.cmp = cmp\n      assert initial_score\n      self.scores = [initial_score] * num_weights\n\n    #self.scores = None\n\n    self.max_patience = patience\n    self.decay = decay\n\n    # TODO patience also varaible so can save and restore ?\n    self.patience = [0] * num_weights\n    self.count = [0] * num_weights\n    self.names = names or list(map(str, range(num_weights)))\n\n    self.min_weight = min_weight\n\n    self.decay_start_epoch = decay_start_epoch\n\n    if not self.min_weight:\n      self.min_weight = min_learning_rate / (initial_learning_rate or FLAGS.learning_rate)\n\n    if isinstance(weights_op, str):\n      try:\n        self.weights_op = tf.get_collection(weights_op)[-1]\n      except Exception:\n        #self.weights_op = tf.get_variable('lr_ratios', initializer=tf.ones([num_classes], dtype=tf.float32))\n        #tf.add_to_collection('lr_ratios', lr_ratios)\n        raise 'TODO..'\n    else:\n      self.weights_op = weights_op\n\n  def add(self, scores):\n    import melt.utils.logging as logging\n    scores = np.array(scores)\n\n    #print(scores.shape, self.scores.shape, len(self.names))\n    logging.info('diff:', list(zip(self.names, scores - self.scores)))\n\n    if not tf.executing_eagerly():\n      weights = self.sess.run(self.weights_op)\n      weights_ = weights\n    else:\n      weights = self.weights_op\n      weights_ = weights.numpy()\n\n    if (not self.cmp) and self.scores:\n      if scores[0] > self.scores[0]:\n        self.cmp = lambda x, y: x > y  \n      else:\n        self.cmp = lambda x, y: x < y\n      logging.info('decay cmp:', self.cmp)\n      \n        # epoch is set during training loop\n    epoch = melt.epoch()\n\n    for i, score in enumerate(scores):\n      if self.scores is None or self.cmp(score, self.scores[i]):\n        self.scores[i] = score \n        self.patience[i] = 0\n      else:\n        self.patience[i] += 1        \n        \n        logging.info('patience_%s %d' % (self.names[i], self.patience[i]))\n        if epoch < self.decay_start_epoch:\n          continue\n\n        if self.patience[i] >= self.max_patience:\n          self.count[i] += 1\n          self.patience[i] = 0\n          self.scores[i] = score\n          \n          decay = self.decay if not isinstance(self.decay, (list, tuple)) else self.decay[i]\n\n          weights_[i] *= decay\n\n          if not self.min_weight:\n            if weights_[i] < self.min_weight:\n              weights_[i] = self.min_weight\n\n          #logging.info('!%s decay count:%d decay ratio:%f lr ratios now:%f' % (self.names[i], self.count[i], self.decay, weights[i]))\n          if not tf.executing_eagerly():\n            self.sess.run(tf.assign(self.weights_op, tf.constant(weights_, dtype=tf.float32)))\n          else:\n            self.weights_op.assign(weights_)\n\n    return weights_\n          "
  },
  {
    "path": "utils/melt/variable/__init__.py",
    "content": "from melt.variable.variable import *"
  },
  {
    "path": "utils/melt/variable/variable.py",
    "content": "import tensorflow as tf\r\n# Model Variables\r\n#weights = slim.model_variable('weights',\r\n#                              shape=[10, 10, 3 , 3],\r\n#                              initializer=tf.truncated_normal_initializer(stddev=0.1),\r\n#                              regularizer=slim.l2_regularizer(0.05),\r\n#                              device='/CPU:0')\r\n#model_variables = slim.get_model_variables()\r\n\r\n## Regular variables\r\n#my_var = slim.variable('my_var',\r\n#                       shape=[20, 1],\r\n#                       initializer=tf.zeros_initializer)\r\n#regular_variables_and_model_variables = slim.get_variables()\r\n\r\n#@TODO use slime model_variable directly or wrapp it here\r\ndef init_weights(shape, stddev=0.01, name=None):\r\n  return tf.Variable(tf.random_normal(shape, stddev=stddev), name=name)\r\n\r\ndef init_weights_truncated(shape, stddev=1.0, name=None):\r\n  return tf.Variable(tf.truncated_normal(shape, stddev=stddev), name=name)\r\n\r\ndef init_weights_random(shape, stddev=1.0, name=None):\r\n  return tf.Variable(tf.random_normal(shape, stddev=stddev), name=name) \r\n\r\ndef init_weights_uniform(shape, minval=0, maxval=None, name=None):\r\n  return tf.Variable(tf.random_uniform(shape, minval, maxval), name=name)\r\n\r\ndef init_bias(shape, val=0.1, name=None):\r\n  if not isinstance(shape, (list, tuple)):\r\n    shape = [shape]\r\n  initial = tf.constant(val, shape=shape)\r\n  return tf.Variable(initial, name=name)\r\n\r\n#def get_weights(name, shape, stddev=0.01):\r\n#  return tf.get_variable(name, shape, initializer=tf.random_normal_initializer(stddev=stddev))\r\n\r\ndef get_weights(name, shape, minval=-0.08, maxval=0.08, trainable=True):\r\n  return tf.get_variable(name, shape, initializer=tf.random_uniform_initializer(minval, maxval), trainable=trainable)\r\n\r\ndef get_weights_truncated(name, shape, stddev=1.0, trainable=True):\r\n  return tf.get_variable(name, shape, initializer=tf.truncated_normal_initializer(stddev=stddev), trainable=trainable)\r\n\r\ndef get_weights_random(name, shape, stddev=1.0, trainable=True):\r\n  return tf.get_variable(name, shape, initializer=tf.random_normal_initializer(stddev=stddev), trainable=trainable)\r\n \r\ndef get_weights_normal(name, shape, stddev=1.0, trainable=True):\r\n  return tf.get_variable(name, shape, initializer=tf.random_normal_initializer(stddev=stddev), trainable=trainable)\r\n\r\ndef get_weights_uniform(name, shape, minval=0, maxval=None, trainable=True):\r\n  return tf.get_variable(name, shape, initializer=tf.random_uniform_initializer(minval, maxval), trainable=trainable)\r\n\r\ndef get_bias(name, shape, val=0.1, trainable=True):\r\n  if not isinstance(shape, (list, tuple)):\r\n    shape = [shape]\r\n  return tf.get_variable(name, shape, initializer=tf.constant_initializer(val), trainable=trainable)"
  },
  {
    "path": "wenzheng/__init__.py",
    "content": "import wenzheng.utils\n#try:\nimport wenzheng.embedding \nfrom wenzheng.embedding import *\nimport wenzheng.encoder\nfrom wenzheng.encoder import * \n\nimport wenzheng.pyt\n#except Exception:\n#  pass\n"
  },
  {
    "path": "wenzheng/embedding.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   embedding.py\n#        \\author   chenghuige  \n#          \\date   2016-12-24 19:55:37.327855\n#   \\Description  \n# ==============================================================================\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\n#import gflags as flags\nFLAGS = flags.FLAGS\n  \nflags.DEFINE_integer('emb_dim', 512, 'embedding dim for each word, notice for rnn bidirectional here should be acutal emb_dim * 2')\nflags.DEFINE_integer('char_emb_dim', 300, 'embedding dim for each word, notice for rnn bidirectional here should be acutal emb_dim * 2')\nflags.DEFINE_float('weight_stddev', 1e-4,  \n                                  \"\"\"weight stddev, \n                                     @Notice if use bias then small stddev like 0.01 might not lead to convergence, \n                                     causing layer weight value always be 0 with random_normal\"\"\")\nflags.DEFINE_float('initializer_scale', 0.08, 'used for weights initalize using random_uniform, default value 0.08 follow im2txt')\n\nflags.DEFINE_string('word_embedding_file', None, 'load pre trained word embedding from word2vec or glov if not None')\nflags.DEFINE_boolean('finetune_word_embedding', True, 'wether update word embedding')\n\nflags.DEFINE_string('char_embedding_file', None, 'load pre trained char embedding from word2vec or glov if not None')\nflags.DEFINE_boolean('finetune_char_embedding', True, 'wether update char embedding')\n\nflags.DEFINE_string('pinyin_embedding_file', None, 'load pre trained pinyin embedding from word2vec or glov if not None')\nflags.DEFINE_boolean('finetune_pinyin_embedding', True, 'wether update pinyin embedding')\n\nflags.DEFINE_string('ngram_embedding_file', None, 'load pre trained ngram embedding from word2vec or glov if not None')\nflags.DEFINE_boolean('finetune_ngram_embedding', True, 'wether update ngram embedding')\n\nflags.DEFINE_boolean('position_embedding', False, 'wether use postion embedding')\n\nflags.DEFINE_string('ngram_vocab', None, '')\nflags.DEFINE_string('char_vocab', None, '')\nflags.DEFINE_string('pinyin_vocab', None, '')\n\nflags.DEFINE_string('emb_init', 'uniform', 'uniform or normal normal with hidden_size ** -0.5 might perform better')\nflags.DEFINE_float('emb_stddev', 0., 'if 0 use hidden_size ** -0.5, another choice might be set to 0.01 as HKUST rnet')\n\n\n#import tensorflow.contrib.slim as slim\n\nimport sys\nimport os\n\nimport numpy as np\n\nimport melt\nlogging = melt.logging\nimport gezi\n\nfrom wenzheng.utils import vocabulary  \n\nimport glob\n\ntry:\n  import conf \n  from conf import TEXT_MAX_WORDS\nexcept Exception:\n  print('Warning, no conf.py in current path use util conf', file=sys.stderr)\n  from wenzheng.utils.conf import TEXT_MAX_WORDS\n\n\nlayers = tf.keras.layers\n\nclass Embedding(layers.Layer):\n  \"\"\"An Embedding layer.\"\"\"\n  \n  def __init__(self, vocab_size, embedding_dim=None, embedding=None, \n               trainable=True, freeze_size=None, finetune_size=None, **kwargs):\n    super(Embedding, self).__init__(**kwargs)\n    self.vocab_size = vocab_size\n    self.freeze_size = freeze_size\n    if finetune_size:\n      self.freeze_size = vocab_size - finetune_size\n    self.embedding_dim = embedding_dim if embedding_dim else FLAGS.emb_dim\n    self.trainable = trainable\n\n    self.embedding = embedding\n    self.embedding2 = None\n    if embedding is not None:\n      if type(embedding) is str:\n        if os.path.exists(embedding):\n          embedding = np.load(embedding)\n        else:\n          embedding = None\n      self.embedding = embedding\n      \n  def build(self, _):\n    initializer = 'uniform'\n    # some optimizer must use embedding on cpu \n    #with tf.device(\"/cpu:0\"):\n    if self.embedding is not None:\n      initializer = tf.constant_initializer(self.embedding)\n      logging.info('emb init from numpy pretrain and trainable:', self.trainable)\n    else:\n      if FLAGS.emb_init == 'uniform':\n        init_width = 0.5 / self.embedding_dim\n        logging.info('emb random_uniform init with width:', init_width)\n        initializer = tf.random_uniform_initializer(-init_width, init_width)\n      elif FLAGS.emb_init == 'normal' or FLAGS.emb_init == 'random':\n        stddev = FLAGS.emb_stddev or self.embedding_dim ** -0.5\n        logging.info('emb random_normal init with stddev:', stddev)\n        initializer = tf.random_normal_initializer(mean=0., stddev=stddev)\n\n    self.embedding = self.add_variable(\n        \"embedding_kernel\",\n        shape=[int(self.vocab_size), self.embedding_dim],\n        dtype=tf.float32,\n        initializer=initializer,\n        trainable=self.trainable)\n\n    if self.freeze_size:\n      assert self.trainable\n      embedding, embedding2 = tf.split(self.embedding, [self.vocab_size - self.freeze_size, self.freeze_size], 0)\n      self.embedding = tf.concat([embedding, tf.stop_gradient(embedding2)], 0)\n\n  def call(self, x):\n    #print('---------', self.embedding)\n    return tf.nn.embedding_lookup(self.embedding, x)\n\n#TODO try l2_regularizer and compare\n#weights = slim.variable('weights',\n#                             shape=[10, 10, 3 , 3],\n#                             initializer=tf.truncated_normal_initializer(stddev=0.1),\n#                             regularizer=slim.l2_regularizer(0.05),\n#                             device='/CPU:0')\ndef get_embedding(name='emb', height=None, emb_dim=None, trainable=True):\n  emb_dim = emb_dim or FLAGS.emb_dim\n  if height is None:\n    vocabulary.init()\n    height = vocabulary.get_vocab_size() \n  \n  # google transform use below\n  #initializer=tf.random_normal_initializer(\n  #            0., self.hidden_size ** -0.5)\n  # squad use np.random.normal(scale=0.01)\n\n  if FLAGS.emb_init == 'uniform':\n    init_width = 0.5 / emb_dim\n    emb = melt.variable.get_weights_uniform(name, [height, emb_dim], -init_width, init_width, trainable=trainable)\n    logging.info('emb random_uniform init with width', init_width)\n  elif FLAGS.emb_init == 'normal' or FLAGS.emb_init == 'random':\n    stddev = FLAGS.emb_stddev or emb_dim ** -0.5\n    logging.info('emb random_normal init with stddev', stddev)\n    emb = melt.variable.get_weights_random(name, [height, emb_dim], stddev, trainable=trainable)\n  else:\n    raise ValueError(FLAGS.emb_init)\n\n  #return to above code if this works not better\n  #emb = melt.variable.get_weights_truncated(name, [vocab_size, emb_dim], stddev=FLAGS.weight_stddev)\n  return emb \n\ndef get_embedding_cpu(name='emb', height=None, emb_dim=None, trainable=True):\n  with tf.device('/CPU:0'):\n    return get_embedding(name, height=height, emb_dim=emb_dim, trainable=trainable)\n\ndef get_or_restore_embedding(name='emb', embedding_file=None, trainable=None, height=None, emb_dim=None, type='word'):\n  # cpu for adgrad optimizer\n  #if (not FLAGS.word_embedding_file) or glob.glob(FLAGS.model_dir + '/model*ckpt*'):\n    # logging.info('Word embedding random init or from model_dir:{} and trainable=:{}'.format(\n    #     FLAGS.model_dir, FLAGS.finetune_word_embedding))\n  #TODO verify below is ok , above is ok but a bit complex. I assume if var in check point will later restore and cover initital const value\n  #if not FLAGS.word_embedding_file:\n  embedding_file_ = None \n  train_able_ = None\n  if type == 'word':\n    embedding_file_ = FLAGS.word_embedding_file\n    train_able_ = FLAGS.finetune_word_embedding\n  elif type == 'char':\n    embedding_file_ = FLAGS.char_embedding_file\n    train_able_ = FLAGS.finetune_char_embedding\n  elif type == 'ngram':\n    embedding_file_ = FLAGS.ngram_embedding_file\n    train_able_ = FLAGS.finetune_ngram_embedding   \n  elif type == 'pinyin':\n    embedding_file_ = FLAGS.pinyin_embedding_file\n    train_able_ = FLAGS.finetune_pinyin_embedding       \n  else:\n    raise ValueError(type)\n    \n  embedding_file = embedding_file if embedding_file is not None else embedding_file_\n  trainable = trainable if trainable is not None else train_able_\n\n  #logging.info('----------------------', type, embedding_file, height)\n  if (not embedding_file) or melt.exists_model(FLAGS.model_dir):\n    logging.info('{} random init or from model_dir and trainable=:{}'.format(name, trainable))\n    emb = get_embedding(\n        name=name, trainable=trainable, height=height, emb_dim=emb_dim)\n    #melt.try_add_to_collection('word_embedding', emb)\n  else:\n    # https://github.com/tensorflow/tensorflow/issues/1570\n    # still adgrad must cpu..\n    # if not fintue emb this will be ok if fintune restart will ok ? must not use word embedding file? os.path.exists(FLAGS.model_dir) ? judge?\n    # or will still try to load from check point ? TODO for safe you could re run by setting word_embedding_file as None or ''\n    logging.info('Loading {} from:{} and trainable=:{}'.format(\n        name, embedding_file, trainable))\n    timer = gezi.Timer('load constat')\n    emb = melt.load_constant(\n        embedding_file, name=name, trainable=trainable)\n    timer.print_elapsed()\n  return emb\n\ndef get_or_restore_embedding_cpu(name='emb', embedding_file=None, trainable=None, height=None, emb_dim=None):\n  with tf.device('/CPU:0'):\n    return get_or_restore_embedding(name, embedding_file, trainable, height, emb_dim)\n\ndef get_position_embedding(name='pos_emb', height=None):\n  if FLAGS.position_embedding:\n    logging.info('Using position embedding')\n    pos_emb = get_embedding(name, height=height or TEXT_MAX_WORDS)\n  else:\n    pos_emb = None\n  return pos_emb\n\ndef get_position_embedding_cpu(name='pos_emb', height=None):\n  with tf.device('/CPU:0'):\n    return get_position_embedding(name, height=height or TEXT_MAX_WORDS)\n\n#TODO height\ndef get_or_restore_char_embedding_cpu(name='char_emb', embedding_file=None, trainable=None):\n  with tf.device('/CPU:0'):\n    return get_or_restore_char_embedding(name, embedding_file, trainable)\n\ndef get_or_restore_char_embedding(name='char_emb', embedding_file=None, trainable=None):\n  embedding_file = embedding_file or FLAGS.char_embedding_file \n  #assert embedding_file\n  trainable = trainable or FLAGS.finetune_char_embedding\n  char_vocab = FLAGS.char_vocab or FLAGS.vocab.replace('vocab.txt', 'char_vocab.txt')\n  height = gezi.Vocabulary(char_vocab).size()\n  assert height\n  return get_or_restore_embedding(name, embedding_file, trainable, height=height, emb_dim=FLAGS.char_emb_dim, type='char')\n\ndef get_or_restore_ngram_embedding_cpu(name='ngram_emb', embedding_file=None, trainable=None):\n  with tf.device('/CPU:0'):\n    return get_or_restore_ngram_embedding(name, embedding_file, trainable)\n\ndef get_or_restore_ngram_embedding(name='ngram_emb', embedding_file=None, trainable=None):\n  embedding_file = embedding_file or FLAGS.ngram_embedding_file \n  #assert embedding_file\n  trainable = trainable or FLAGS.finetune_ngram_embedding\n  ngram_vocab = FLAGS.ngram_vocab or FLAGS.vocab.replace('vocab.txt', 'ngram_vocab.txt')\n  height = gezi.Vocabulary(ngram_vocab).size()\n  assert height\n  return get_or_restore_embedding(name, embedding_file, trainable, height=height, emb_dim=FLAGS.ngram_emb_dim, type='ngram')\n\ndef get_or_restore_pinyin_embedding_cpu(name='pinyin_emb', embedding_file=None, trainable=None):\n  with tf.device('/CPU:0'):\n    return get_or_restore_pinyin_embedding(name, embedding_file, trainable)\n\ndef get_or_restore_pinyin_embedding(name='pinyin_emb', embedding_file=None, trainable=None):\n  embedding_file = embedding_file or FLAGS.pinyin_embedding_file \n  #assert embedding_file\n  trainable = trainable or FLAGS.finetune_pinyin_embedding\n  pinyin_vocab = FLAGS.pinyin_vocab or FLAGS.vocab.replace('vocab.txt', 'pinyin_vocab.txt')\n  height = gezi.Vocabulary(pinyin_vocab).size()\n  assert height\n  return get_or_restore_embedding(name, embedding_file, trainable, height=height, emb_dim=FLAGS.ngram_emb_dim, type='pinyin')\n\n"
  },
  {
    "path": "wenzheng/encoder.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   encoder.pyt\n#        \\author   chenghuige  \n#          \\date   2018-09-20 07:04:55.883159\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n\n#flags.DEFINE_string('input', '', '')\n#flags.DEFINE_string('output', '', '')\nflags.DEFINE_string('bert_dir', None, '')\nflags.DEFINE_string('bert_config_file', None, '')\n\n\nimport sys \nimport os\n\nfrom tensorflow import keras\n\nimport gezi\nimport melt\nlogging = melt.logging\nimport numpy as np\n\nimport wenzheng.utils.input_flags\nimport wenzheng.utils.rnn_flags\n\nclass Encoder(melt.Model):\n  def __init__(self, type='gru', keep_prob=None):\n    super(Encoder, self).__init__()\n    \n    self.num_layers = FLAGS.num_layers\n    self.num_units = FLAGS.rnn_hidden_size\n    self.keep_prob = keep_prob or FLAGS.keep_prob\n    self.recurrent_dropout = FLAGS.recurrent_dropout\n    self.bw_dropout = FLAGS.bw_dropout\n    self.concat_layers = FLAGS.concat_layers\n    self.residual_connect = FLAGS.encoder_residual_connect\n\n    logging.info(f'encoder:{type}')\n    logging.info('encoder recurrent dropout:{}'.format(self.recurrent_dropout))\n    logging.info('encoder concat layers:{}'.format(self.concat_layers))\n    logging.info('encoder residual connect:{}'.format(self.residual_connect))\n    logging.info('encoder bw dropout:{}'.format(self.bw_dropout))\n    logging.info('encoder num_layers:{}'.format(self.num_layers))\n    logging.info('encoder num_units:{}'.format(self.num_units))\n    logging.info('encoder keep_prob:{}'.format(self.keep_prob))\n\n    def get_encode(type):\n      if type == 'bow' or type == 'none':\n        encode = None\n      elif type == 'gru' or type == 'rnn' or type == 'lstm':\n        if type == 'rnn':\n          type = FLAGS.cell or 'gru'\n        encode = melt.layers.CudnnRnn(num_layers=self.num_layers, \n                                      num_units=self.num_units, \n                                      keep_prob=self.keep_prob,\n                                      share_dropout=False,\n                                      recurrent_dropout=self.recurrent_dropout,\n                                      concat_layers=self.concat_layers,\n                                      bw_dropout=self.bw_dropout,\n                                      residual_connect=self.residual_connect,\n                                      train_init_state=FLAGS.rnn_train_init_state,\n                                      cell=type)\n      elif type == 'cnn' or type == 'convnet':\n        logging.info('encoder num_filters:{}'.format(FLAGS.num_filters))\n        num_layers = FLAGS.num_layers if not ',' in type else 4\n        encode = melt.layers.ConvNet(num_layers=num_layers,\n                                     num_filters=FLAGS.num_filters,\n                                     keep_prob=FLAGS.keep_prob,\n                                     use_position_encoding=FLAGS.use_position_encoding)\n      elif type == 'qanet':\n        num_layers = FLAGS.num_layers if not ',' in type else 4\n        encode = melt.layers.QANet(num_layers=num_layers,\n                                   num_filters=FLAGS.num_filters,\n                                   keep_prob=0.5,\n                                   kernel_size=3,\n                                   num_heads=4)\n      else:\n        raise ValueError('not support {} now'.format(type))\n      if encode is not None:\n        encode.bidirectional = False\n      if type == 'gru' or type == 'rnn' or type == 'lstm':\n        encode.bidirectional = True\n      return encode\n\n    self.encodes = []\n    for type in type.split(','):\n      #print(type, get_encode(type))\n      # TODO FIMXE tensorflow 1.1 fail layer_utils.py weights += layer.trainable_weights 'property' object is not iterable\n      self.encodes.append(get_encode(type))\n\n    logging.info(self.encodes)\n\n\n  def call(self, seq, seq_len, mask_fws=None, mask_bws=None, training=False):\n    for encode in self.encodes:\n      if encode is None:\n        if mask_fws is None:\n          pass\n        else:\n          seq = seq * mask_fws[0]\n        continue\n      if encode.bidirectional:\n        seq = encode(seq, seq_len, mask_fws, mask_fws, training=training)\n      elif mask_fws is not None:\n        seq = encode(seq, seq_len, mask_fws, training=training)\n      else:\n        seq = encode(seq, seq_len, training=training)\n    return seq\n\n#-----------------Both TexEncoder and BertEncoder are for pretraining then loading for finetune\nclass TextEncoder(melt.Model):\n  \"\"\"\n  Bidirectional Encoder \n  can be used for Language Model and also for text classification or others \n  input is batch of sentence ids [batch_size, num_steps]\n  output is [batch_size, num_steps, 2 * hidden_dim]\n  for text classification you can use pooling to get [batch_size, dim] as text resprestation\n  for language model you can just add fc layer to convert 2 * hidden_dim to vocab_size -1 and calc cross entropy loss\n  Notice you must oututs hidden_dim(forward) and hidden_dim(back_ward) concated at last dim as 2 * hidden dim, so MUST be bidirectional\n  \"\"\"\n  def __init__(self,\n               config, \n               embedding_weight=None,\n               use_char=False,\n               use_char_emb=True,\n               use_pos=False,\n               use_ner=False,\n               lm_model=False,\n              ):\n    super(TextEncoder, self).__init__()\n\n    Rnn = melt.layers.CudnnRnn\n\n    word_config = config['word']\n    vocab_file = word_config['vocab']\n    vocab = gezi.Vocabulary(vocab_file)\n    vocab_size = vocab.size()\n    word_config['vocab_size'] = vocab_size\n    num_layers = word_config['num_layers']\n    hidden_size = word_config['hidden_size']\n    emb_dim = word_config['emb_dim']\n    word_embedding_file = word_config['embedding_file']\n    finetune_word_embedding = word_config['trainable']\n    num_finetune_words = word_config['num_finetune']\n    embedding_weight = embedding_weight if embedding_weight is not None else word_embedding_file\n\n    # vocab2_size = 0\n    # if num_finetune_words:\n    #   vocab2_size = vocab_size - num_finetune_words\n    #   vocab_size = num_finetune_words\n    \n    # # TODO FIXME TypeError: Eager execution of tf.constant with unsupported shape (value has 2039400 elements, shape is (144299, 300) with 43289700 elements).\n    # # For large vocab not Eager mode not ok..\n    # self.embedding = wenzheng.Embedding(vocab_size, \n    #                                     emb_dim, \n    #                                     embedding_weight, \n    #                                     trainable=finetune_word_embedding,\n    #                                     vocab2_size=vocab2_size)\n    num_freeze_words = 0\n    if num_finetune_words:\n      num_freeze_words = vocab_size - num_finetune_words\n    self.embedding = wenzheng.Embedding(vocab_size, \n                                        emb_dim, \n                                        embedding_weight, \n                                        trainable=finetune_word_embedding,\n                                        freeze_size=num_freeze_words)\n\n    self.char_embedding = None\n    if use_char:\n      char_config = config['char']\n      char_config['use_char_emb'] = use_char_emb\n      if use_char_emb:\n        char_vocab_file = vocab_file.replace('vocab.txt', 'char_vocab.txt')\n        assert os.path.exists(char_vocab_file)\n        char_config['vocab'] = char_vocab_file\n        char_vocab = gezi.Vocabulary(char_vocab_file)\n        char_vocab_size = char_vocab.size()\n        char_config['char_vocab_size'] = char_vocab_size\n        char_emb_dim = char_config['emb_dim']\n        char_embedding_weight = word_embedding_file.replace('emb.npy', 'char_emb.npy') if word_embedding_file else None\n        char_config['embedding_weight'] = char_embedding_weight\n        finetune_char_embedding = char_config['trainable']\n        num_finetune_chars = char_config['num_finetune']\n        num_freeze_chars = 0\n        if num_finetune_chars:\n          num_freeze_chars = char_vocab_size - num_finetune_chars\n        self.char_embedding = wenzheng.Embedding(char_vocab_size, \n                                                 char_emb_dim, \n                                                 char_embedding_weight, \n                                                 trainable=finetune_char_embedding,\n                                                 freeze_size=num_freeze_chars)\n      else:\n        self.char_embedding = self.embedding\n\n    dropout_rate = config['dropout_rate']\n    self.keep_prob = 1 - dropout_rate\n    recurrent_dropout = config['recurrent_dropout']\n    cell = config['cell']\n    rnn_padding = config['rnn_padding']\n    rnn_no_padding = config['rnn_no_padding']\n    concat_layers = config['concat_layers']\n    train_init_state = config['rnn_train_init_state']\n\n    if use_char:\n      char_hidden_size = char_config['hidden_size']\n      self.char_hidden_size = char_hidden_size\n      char_output_method = char_config['output_method']\n      char_combiner = char_config['combiner']\n      self.char_combiner = char_combiner\n      char_padding = char_config['padding']\n      self.char_padding = char_padding\n      self.char_limit = char_config['limit']\n      self.char_encode = Rnn(\n            num_layers=1,\n            num_units=char_hidden_size,\n            keep_prob=1 - dropout_rate,\n            recurrent_dropout=recurrent_dropout,\n            concat_layers=False,\n            train_init_state=False if lm_model else train_init_state,\n            cell=cell,\n        )    \n\n      self.char_pooling = melt.layers.Pooling(char_output_method)\n      if char_combiner == 'sfu':\n        self.char_sfu_combine = melt.layers.SemanticFusionCombine(keep_prob=self.keep_prob)\n\n    self.pos_embedding = None\n    if use_pos:\n      pos_config = config['pos']\n      tag_emb_dim = pos_config['emb_dim']\n      pos_vocab_file = vocab_file.replace('vocab.txt', 'pos_vocab.txt')\n      assert os.path.exists(pos_vocab_file)\n      pos_config['vocab'] = pos_vocab_file\n      pos_vocab = gezi.Vocabulary(pos_vocab_file)\n      self.pos_embedding = wenzheng.Embedding(pos_vocab.size(), tag_emb_dim)\n\n    self.ner_embedding = None\n    if use_ner:\n      ner_config = config['ner']\n      tag_emb_dim = ner_config['emb_dim']\n      ner_vocab_file = vocab_file.replace('vocab.txt', 'ner_vocab.txt')\n      assert os.path.exists(ner_vocab_file)\n      ner_config['vocab'] = ner_vocab_file\n      ner_vocab = gezi.Vocabulary(ner_vocab_file)\n      self.ner_embedding = wenzheng.Embedding(ner_vocab.size(), tag_emb_dim)\n\n    hidden_size = word_config['hidden_size']\n    num_layers = word_config['num_layers']\n\n    if lm_model:\n      assert config['encoder'] == 'rnn'\n\n    if not lm_model and config['encoder'] != 'rnn':\n      self.encode = Encoder(config['encoder'])   \n    else:\n      self.encode = Rnn(\n            num_layers=num_layers,\n            num_units=hidden_size,\n            keep_prob=1 - dropout_rate,\n            recurrent_dropout=recurrent_dropout,\n            concat_layers=concat_layers,\n            # just for simple finetune... since now init state var scope has some problem\n            train_init_state=False,\n            cell=cell,\n      )\n\n    factor = num_layers if concat_layers else 1\n    output_size = 2 * hidden_size * factor\n\n    self.vocab_size = vocab_size\n    self.output_size = output_size\n    self.rnn_no_padding = rnn_no_padding\n    self.use_char = use_char \n    self.use_pos, self.use_ner = use_pos, use_ner\n    self.num_units = hidden_size\n\n    if lm_model:\n      # -1 for excluding padding  0\n      self.hidden2tag = keras.layers.Dense(self.vocab_size - 1)\n    \n    self.lm_model = lm_model\n\n    try:\n      import yaml \n      logging.info('config\\n', yaml.dump(config, default_flow_style=False))\n    except Exception:\n      logging.info('config', config)\n\n  # TODO training not needed, since pytorch has model.eval model.train here just compact for tensorflow\n  def call(self, input, c_len=None, max_c_len=None, training=False):\n    assert isinstance(input, dict)\n    x = input['content'] \n\n    batch_size = melt.get_shape(x, 0)\n    if c_len is None or max_c_len is None:\n      c_len, max_c_len = melt.length2(x)\n\n    if self.rnn_no_padding:\n      logging.info('------------------no padding! train or eval')\n      c_len = max_c_len\n\n    x = self.embedding(x)\n\n    if FLAGS.use_char:\n      cx = input['char']\n\n      cx = tf.reshape(cx, [batch_size * max_c_len, FLAGS.char_limit])\n      chars_len = melt.length(cx)\n      cx = self.char_embedding(cx)\n      cx = self.char_encode(cx, chars_len, training=training)\n      cx = self.char_pooling(cx, chars_len)\n      cx = tf.reshape(cx, [batch_size, max_c_len, 2 * self.num_units])\n\n      if self.char_combiner == 'concat':\n        x = tf.concat([x, cx], axis=2)\n      elif self.char_combiner == 'sfu':\n        x = self.char_sfu_combine(x, cx, training=training)\n\n    if FLAGS.use_pos:\n      px = input['pos']      \n      px = self.pos_embedding(px)\n      x = tf.concat([x, px], axis=2)\n\n    if FLAGS.use_ner:\n      nx = input['ner']      \n      nx = self.ner_embedding(nx)\n      x = tf.concat([x, nx], axis=2)\n\n    x = self.encode(x, c_len, training=training)\n\n    return x\n\nfrom third.bert import modeling\nclass BertEncoder(melt.Model):\n #embedding not used just for compatct with TextEncoder\n  def __init__(self, embedding=None):\n    super(BertEncoder, self).__init__(embedding)\n\n    self.init_checkpoint = None\n    \n    if FLAGS.bert_dir:\n      bert_dir = FLAGS.bert_dir\n      bert_config_file = f'{bert_dir}/bert_config.json' \n      bert_config = modeling.BertConfig.from_json_file(bert_config_file)\n      self.init_checkpoint= f'{bert_dir}/bert_model.ckpt' \n    elif FLAGS.bert_config_file:\n      bert_config = modeling.BertConfig.from_json_file(FLAGS.bert_config_file)\n    else:\n      bert_config = {\n        \"attention_probs_dropout_prob\": 0.1, \n        \"directionality\": \"bidi\", \n        \"hidden_act\": \"gelu\", \n        \"hidden_dropout_prob\": 0.1, \n        \"hidden_size\": 768, \n        \"initializer_range\": 0.02, \n        \"intermediate_size\": 3072, \n        \"max_position_embeddings\": 512, \n        \"num_attention_heads\": 12, \n        \"num_hidden_layers\": 12, \n        \"pooler_fc_size\": 768, \n        \"pooler_num_attention_heads\": 12, \n        \"pooler_num_fc_layers\": 3, \n        \"pooler_size_per_head\": 128, \n        \"pooler_type\": \"first_token_transform\", \n        \"type_vocab_size\": 2, \n        \"vocab_size\": gezi.Vocabulary(FLAGS.vocab).size()\n      }\n      bert_config = modeling.BertConfig.from_dict(bert_config)\n\n    self.bert_config = bert_config\n\n  def restore(self):\n    tvars = tf.trainable_variables()\n    (assignment_map,\n    initialized_variable_names) = modeling.get_assigment_map_from_checkpoint(\n        tvars, self.init_checkpoint)\n\n    tf.train.init_from_checkpoint(self.init_checkpoint, assignment_map)\n\n    logging.info(\"**** Trainable Variables ****\")\n    for var in tvars:\n      init_string = \"\"\n      if var.name in initialized_variable_names:\n        init_string = \", *INIT_FROM_CKPT*\"\n      logging.info(\"  name = %s, shape = %s%s\", var.name, var.shape,\n                      init_string)  \n\n  def call(self, input, c_len=None, max_c_len=None, training=False):\n    self.step += 1\n    x = input['content'] if isinstance(input, dict) else input\n    batch_size = melt.get_shape(x, 0) \n    model = modeling.BertModel(\n      config=self.bert_config,\n      is_training=training,\n      input_ids=x,\n      input_mask=(x > 0) if c_len is not None else None)\n\n    if self.step == 0 and self.init_checkpoint:\n      self.restore()\n    x = model.get_sequence_output()\n    return x\n"
  },
  {
    "path": "wenzheng/pyt/__init__.py",
    "content": "from wenzheng.pyt.embedding import *\nfrom wenzheng.pyt.encoder import *\n"
  },
  {
    "path": "wenzheng/pyt/embedding.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   embedding.py\n#        \\author   chenghuige  \n#          \\date   2018-09-29 07:39:46.517047\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport numpy as np\n\nimport torch\nfrom torch import nn\n\nimport gezi\nlogging = gezi.logging\n\ndef get_embedding(vocab_size, \n                  embedding_dim=None, \n                  embedding_weight=None, \n                  trainable=True, \n                  padding_idx=0,\n                  vocab2_size=0, \n                  vocab2_trainable=False):\n  logging.info('vocab_size:', vocab_size, 'embedding_weight', embedding_weight)\n  embedding = nn.Embedding(vocab_size,\n                           embedding_dim,\n                           padding_idx=padding_idx)\n\n  if embedding_weight is not None:\n    if type(embedding_weight) is str:\n      if os.path.exists(embedding_weight):\n        embedding_weight = np.load(embedding_weight)\n      else:\n        embedding_weight = None\n    if embedding_weight is not None:    \n      embedding.weight.data.copy_(torch.from_numpy(embedding_weight))\n  \n  embedding.weight.requires_grad = trainable\n\n  return embedding\n"
  },
  {
    "path": "wenzheng/pyt/encoder.py",
    "content": "#!/usr/bin/env python \n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   encoder.py\n#        \\author   chenghuige  \n#          \\date   2018-09-29 07:39:50.763448\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport sys \nimport os\n\nimport torch\nfrom torch import nn\n\nimport gezi\nlogging = gezi.logging\n\nimport lele\nimport wenzheng\n\nclass TextEncoder(nn.Module):\n  \"\"\"\n  Bidirectional Encoder \n  can be used for Language Model and also for text classification or others \n  input is batch of sentence ids [batch_size, num_steps]\n  output is [batch_size, num_steps, 2 * hidden_dim]\n  for text classification you can use pooling to get [batch_size, dim] as text resprestation\n  for language model you can just add fc layer to convert 2 * hidden_dim to vocab_size -1 and calc cross entropy loss\n  Notice you must outputs hidden_dim(forward) and hidden_dim(back_ward) concated at last dim as 2 * hidden dim, so MUST be bidirectional\n  \"\"\"\n  def __init__(self,\n               config, \n               embedding_weight=None,\n               use_char=False,\n               use_char_emb=True,\n               use_pos=False,\n               use_ner=False,\n               lm_model=False,\n              ):\n    super(TextEncoder, self).__init__()\n\n    Rnn = lele.layers.StackedBRNN\n\n    word_config = config['word']\n    vocab_file = word_config['vocab']\n    vocab = gezi.Vocabulary(vocab_file)\n    vocab_size = vocab.size()\n    word_config['vocab_size'] = vocab_size\n    num_layers = word_config['num_layers']\n    hidden_size = word_config['hidden_size']\n    emb_dim = word_config['emb_dim']\n    word_embedding_file = word_config['embedding_file']\n    finetune_word_embedding = word_config['trainable']\n    embedding_weight = embedding_weight if embedding_weight is not None else word_embedding_file\n\n    self.embedding = wenzheng.pyt.get_embedding(vocab_size, \n                                                emb_dim, \n                                                embedding_weight, \n                                                trainable=finetune_word_embedding)\n\n    self.char_embedding = None\n    if use_char:\n      char_config = config['char']\n      char_config['use_char_emb'] = use_char_emb\n      if use_char_emb:\n        char_vocab_file = vocab_file.replace('vocab.txt', 'char_vocab.txt')\n        assert os.path.exists(char_vocab_file)\n        char_config['vocab'] = char_vocab_file\n        char_vocab = gezi.Vocabulary(char_vocab_file)\n        char_vocab_size = char_vocab.size()\n        char_config['char_vocab_size'] = char_vocab_size\n        char_emb_dim = char_config['emb_dim']\n        char_embedding_weight = word_embedding_file.replace('emb.npy', 'char_emb.npy') if word_embedding_file else None\n        char_config['embedding_weight'] = char_embedding_weight\n        finetune_char_embedding = char_config['trainable']\n        self.char_embedding = wenzheng.pyt.get_embedding(char_vocab_size, \n                                                         char_emb_dim, \n                                                         char_embedding_weight,  \n                                                         trainable=finetune_char_embedding)\n      else:\n        self.char_embedding = self.embedding\n\n    dropout_rate = config['dropout_rate']\n    recurrent_dropout = config['recurrent_dropout']\n    cell = config['cell']\n    rnn_padding = config['rnn_padding']\n    rnn_no_padding = config['rnn_no_padding']\n    concat_layers = config['concat_layers']\n\n    if use_char:\n      char_hidden_size = char_config['hidden_size']\n      self.char_hidden_size = char_hidden_size\n      char_output_method = char_config['output_method']\n      char_combiner = char_config['combiner']\n      self.char_combiner = char_combiner\n      char_padding = char_config['padding']\n      self.char_padding = char_padding\n      self.char_limit = char_config['limit']\n      self.char_encode = Rnn(\n            input_size=char_emb_dim,\n            hidden_size=char_hidden_size,\n            num_layers=1,\n            dropout_rate=1 - dropout_rate,\n            dropout_output=False,\n            recurrent_dropout=recurrent_dropout,\n            concat_layers=False,\n            rnn_type=cell,\n            padding=rnn_padding,\n        )    \n\n      self.char_pooling = lele.layers.Pooling(char_output_method, input_size= 2 * char_hidden_size)\n      if char_combiner == 'sfu':\n        self.char_fc = nn.Linear(2 * char_hidden_size, emb_dim)\n        self.char_sfu_combine = lele.layers.SFUCombiner(emb_dim, 3 * emb_dim, dropout_rate=dropout_rate)\n        encode_input_size = emb_dim\n      else:\n        # concat\n        encode_input_size = emb_dim + 2 * char_hidden_size\n    else:\n      encode_input_size = emb_dim\n\n    self.pos_embedding = None\n    if use_pos:\n      pos_config = config['pos']\n      tag_emb_dim = pos_config['emb_dim']\n      pos_vocab_file = vocab_file.replace('vocab.txt', 'pos_vocab.txt')\n      assert os.path.exists(pos_vocab_file)\n      pos_config['vocab'] = pos_vocab_file\n      pos_vocab = gezi.Vocabulary(pos_vocab_file)\n      self.pos_embedding = wenzheng.pyt.get_embedding(pos_vocab.size(), tag_emb_dim)\n      encode_input_size += tag_emb_dim\n\n    self.ner_embedding = None\n    if use_ner:\n      ner_config = config['ner']\n      tag_emb_dim = ner_config['emb_dim']\n      ner_vocab_file = vocab_file.replace('vocab.txt', 'ner_vocab.txt')\n      assert os.path.exists(ner_vocab_file)\n      ner_config['vocab'] = ner_vocab_file\n      ner_vocab = gezi.Vocabulary(ner_vocab_file)\n      self.ner_embedding = wenzheng.pyt.get_embedding(ner_vocab.size(), tag_emb_dim)\n      encode_input_size += tag_emb_dim\n\n    hidden_size = word_config['hidden_size']\n    num_layers = word_config['num_layers']\n    self.encode = Rnn(\n            input_size=encode_input_size,\n            hidden_size=hidden_size,\n            num_layers=num_layers,\n            dropout_rate=dropout_rate,\n            dropout_output=False,\n            recurrent_dropout=recurrent_dropout,\n            concat_layers=concat_layers,\n            rnn_type=cell,\n            padding=rnn_padding,\n        )    \n\n    factor = num_layers if concat_layers else 1\n    output_size = 2 * hidden_size * factor\n\n    self.vocab_size = vocab_size\n    self.output_size = output_size\n    self.rnn_no_padding = rnn_no_padding\n    self.use_char = use_char \n    self.use_pos, self.use_ner = use_pos, use_ner\n\n    if lm_model:\n      # -1 for excluding padding  0\n      self.hidden2tag = nn.Linear(hidden_size * factor, self.vocab_size - 1)\n    \n    self.lm_model = lm_model\n\n    try:\n      import yaml \n      logging.info('config\\n', yaml.dump(config, default_flow_style=False))\n    except Exception:\n      logging.info('config', config)\n\n  def get_mask(self, x):\n    if self.rnn_no_padding:\n      x_mask = torch.zeros_like(x, dtype=torch.uint8)   \n    else:\n      x_mask = x.eq(0)\n\n    return x_mask\n\n  # TODO training not needed, since pytorch has model.eval model.train here just compact for tensorflow\n  def forward(self, input, mask=None, training=False):\n    assert isinstance(input, dict)\n    x = input['content'] \n    #print(x.shape)\n    #print(input['source'])\n\n    x_mask = mask if mask is not None else self.get_mask(x)\n    batch_size = x.size(0)\n    max_c_len = x.size(1)\n\n    x = self.embedding(x)\n\n    if self.use_char:\n      cx = input['char']\n      cx = cx.view(batch_size * max_c_len, self.char_limit)\n      if self.char_padding:\n        # HACK for pytorch rnn not allow all 0, TODO Too slow...\n        cx = torch.cat([torch.ones([batch_size * max_c_len, 1], dtype=torch.int64).cuda(), cx], 1)\n        cx_mask = cx.eq(0)\n      else:\n        cx_mask = torch.zeros_like(cx, dtype=torch.uint8)\n\n      cx = self.char_embedding(cx)\n      cx = self.char_encode(cx, cx_mask)\n      cx = self.char_pooling(cx, cx_mask)\n      cx = cx.view(batch_size, max_c_len, 2 * self.char_hidden_size)\n\n      if self.char_combiner == 'concat':\n        x = torch.cat([x, cx], 2)\n      elif self.char_combiner == 'sfu':\n        cx = self.char_fc(cx)\n        x = self.char_sfu_combine(x, cx)\n      else:\n        raise ValueError(self.char_combiner)\n\n    if self.use_pos:\n      px = input['pos']\n      px = self.pos_embedding(px)\n      x = torch.cat([x, px], 2)\n\n    if self.use_ner:\n      nx = input['ner']\n      nx = self.ner_embedding(nx)\n      x = torch.cat([x, nx], 2)\n\n    x = self.encode(x, x_mask)\n\n    return x"
  },
  {
    "path": "wenzheng/utils/__init__.py",
    "content": "from wenzheng.utils.rnn_flags import *\nfrom wenzheng.utils.input_flags import *\n"
  },
  {
    "path": "wenzheng/utils/conf.py",
    "content": "IMAGE_FEATURE_LEN = 1536\nMAX_EMB_WORDS = 200000\nTEXT_MAX_WORDS = 100\nWORDS_SEP = ' '\nNUM_RESERVED_IDS = 1\nENCODE_UNK = 1\n"
  },
  {
    "path": "wenzheng/utils/ids2text.py",
    "content": "#!/usr/bin/env python\n# -*- coding: gbk -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2016-08-29 15:26:15.418566\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport numpy as np\n\nimport sys\nimport gezi\n\nfrom wenzheng.utils import vocabulary \n#TODO-- remove conf.py using gfalgs or yaxml\n\ntry:\n  import conf\n  from conf import TEXT_MAX_WORDS, ENCODE_UNK\nexcept Exception:\n  print('Warning: no conf.py in current path use util conf', file=sys.stderr)\n  from wenzheng.utils.conf import TEXT_MAX_WORDS, ENCODE_UNK\n\nvocab = None \n\nNUM_MARK = '<NUM>'\n\ndef init(vocab_path=None):\n  global vocab, Segmentor\n  if vocab is None:\n    vocabulary.init(vocab_path)\n    print('ENCODE_UNK', ENCODE_UNK, file=sys.stderr)\n    vocab = vocabulary.get_vocab()\n\ndef ids2words(text_ids, print_end=True):\n  #print('@@@@@@@@@@text_ids', text_ids)\n  #NOTICE int64 will be ok\n#  Boost.Python.ArgumentError: Python argument types in\n#    Identifer.key(Vocabulary, numpy.int32)\n#did not match C++ signature:\n#    key(gezi::Identifer {lvalue}, int id, std::string defualtKey)\n#    key(gezi::Identifer {lvalue}, int id)\n  #words = [vocab.key(int(id)) for id in text_ids if id > 0 and id < vocab.size()]\n  words = []\n  for id in text_ids:\n    if id > 0 and id < vocab.size():\n      #@NOTICE! must has end id, @TODO deal with UNK word\n      if id != vocab.end_id():\n        word = vocab.key(int(id))\n        words.append(word)\n      else:\n        if print_end:\n          words.append('</S>')\n        break\n    else:\n      break\n  return words\n\ndef ids2text(text_ids, sep=' ', print_end=True):\n  return sep.join(ids2words(text_ids, print_end=print_end))\n\ndef idslist2texts(text_ids_list, sep=' ', print_end=True):\n  return [ids2text(text_ids, sep=sep, print_end=print_end) for text_ids in text_ids_list]\n  #return [sep.join([vocab.key(int(id)) for id in text_ids if id > 0 and id < vocab.size()]) for text_ids in text_ids_list]\n\ndef translate(text_ids):\n  return ids2text(text_ids, sep='', print_end=False)\n\ndef translates(text_ids_list):\n  return [translate(text_ids) for text_ids in text_ids_list]\n\ndef start_id():\n  return vocab.end_id()\n\ndef end_id():\n  return vocab.end_id()\n\ndef unk_id():\n  return vocab.unk_id()\n"
  },
  {
    "path": "wenzheng/utils/input_flags.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   input_flags.py\n#        \\author   chenghuige  \n#          \\date   2016-12-25 00:17:18.268341\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\n#import gflags as flags\nFLAGS = flags.FLAGS\n  \n#-------- train\nflags.DEFINE_integer('min_records', 0, '')\nflags.DEFINE_integer('num_records', 0, 'if not 0, will check equal')\n\n#--------- read data\nflags.DEFINE_integer('fixed_eval_batch_size', 30, \"\"\"must >= num_fixed_evaluate_examples\n                                                     if == real dataset len then fix sequence show\n                                                     if not == can be show different fixed each time\n                                                     usefull if you want only show see 2 and \n                                                     be different each time\n                                                     if you want see 2 by 2 seq\n                                                     then num_fixed_evaluate_example = 2\n                                                          fixed_eval_batch_size = 2\n                                                  \"\"\")\n\nflags.DEFINE_integer('num_fixed_evaluate_examples', 30, '')\nflags.DEFINE_integer('num_evaluate_examples', 1, '')\n\n#flags.DEFINE_integer('num_threads', 12, \"\"\"threads for reading input tfrecords,\n#                                           setting to 1 may be faster but less randomness\n#                                        \"\"\")\n\nflags.DEFINE_boolean('shuffle_files', True, '')\nflags.DEFINE_boolean('batch_join', True, '')\nflags.DEFINE_boolean('shuffle_batch', True, '')\n\nflags.DEFINE_boolean('shuffle_then_decode', True, \n                     \"\"\" actually this is decided by is_sequence_example.. \n                     if is_sequence_example then False, if just example not sequence then True since is sparse\n                     TODO remove this\n                     \"\"\")\nflags.DEFINE_boolean('is_sequence_example', False, '')\n\nflags.DEFINE_boolean('dynamic_batch_length', True, \n                     \"\"\"very important False means all batch same size! \n                        otherwise use dynamic batch size\n                        Now only not sequence_example data will support dyanmic_batch_length=False\n                        Also for cnn you might need to set to False to make all equal length batch used\n                        \"\"\")\n\nflags.DEFINE_boolean('use_weights', False, '''from tfrecord per example word, usaually tf*idf weight, \n                                              same word has difference score in different example/instances''')\nflags.DEFINE_string('weights', None, '')\nflags.DEFINE_boolean('use_idf_weights', False, 'idf only weight vocab based fixed for each vocab word')\n\nflags.DEFINE_boolean('use_inst_weights', False, 'use per instantce weights')\n  \nflags.DEFINE_boolean('feed_dict', False, 'depreciated, too complex, just prepare your data at first for simple')\n\n\n#--for scene\nflags.DEFINE_string('scene_train_input', None, '')\nflags.DEFINE_string('scene_valid_input', None, '')\nflags.DEFINE_boolean('use_scene_embedding', True, '')\n\n#----------eval\nflags.DEFINE_boolean('legacy_rnn_decoder', False, '')\nflags.DEFINE_boolean('experiment_rnn_decoder', False, '')\n\n#----------strategy \n\nflags.DEFINE_string('seg_method', 'basic', '')\n#flags.DEFINE_boolean('feed_single', False, '')\n\nflags.DEFINE_boolean('gen_predict', True, '')\n\n\nflags.DEFINE_string('decode_name', 'text', '')\nflags.DEFINE_string('decode_str_name', 'text_str', '')\n\nflags.DEFINE_boolean('reinforcement_learning', False, '')\nflags.DEFINE_float('reinforcement_ratio', 1., '')\n\n#--------for image caption  TODO move to image_caption/input_flags.py ?\n#--if use image dir already info in image_features\nflags.DEFINE_string('image_dir', None, 'input images dir')\n\nflags.DEFINE_boolean('pre_calc_image_feature', False, 'will set to true if not has image model auto in train.py')\nflags.DEFINE_boolean('has_image_model', False, '')\n\nflags.DEFINE_string('image_checkpoint_file', '/home/gezi/data/image_model_check_point/inception_resnet_v2_2016_08_30.ckpt', '''None means image model from scratch''')\nflags.DEFINE_boolean('finetune_image_model', True, '''by default will be finetune otherwise\n                                                   why not pre calc image feature much faster\n                                                   but we also support''')\nflags.DEFINE_float('image_lr_ratio', 0.1, '')\n\nflags.DEFINE_string('finetune_end_point', None, 'if not None, only finetune from some ende point layers before will freeze')\n                                                   \nflags.DEFINE_boolean('distort_image', True, 'training option')\nflags.DEFINE_boolean('random_crop_image', True, 'training option')\n\nflags.DEFINE_string('image_model_name', None, 'InceptionResnetV2 might be by default but can get from checkpoint direclty')\nflags.DEFINE_string('image_endpoint_feature_name', None, 'mostly None for showandtell, not None for show attend and tell features if not in endpoint dict')\nflags.DEFINE_integer('image_attention_size', None, 'InceptionResnetV2 will be 64')\nflags.DEFINE_integer('image_feature_len', None, '')\nflags.DEFINE_integer('image_feature_len_decode', None, 'if image_feature len means final output image_feature_len then use image_feature_len_input as input image feature len')\nflags.DEFINE_integer('image_width', None, 'default width of inception 299, resnet 224 but google pretrain resnet v2 models also 299')\nflags.DEFINE_integer('image_height', None, 'default height of inception 299, resnet 224 but google pretrain resnet v2 models also 299')\nflags.DEFINE_boolean('image_features2feature', False, '''for show and tell if input is pre calc atteniton features input\n                                                                    here set True will process attention features \n                                                                    to generate and use final feature jus similar like input without \n                                                                    attention vectors''')\n\n# for image classification\nflags.DEFINE_integer('num_image_classes', None, '')\nflags.DEFINE_integer('num_pretrain_image_classes', None, 'HACK for using pretrain image models where class num is not 1001 as imagenet 1k label models')\nflags.DEFINE_integer('image_top_k', 3, '')\n\nflags.DEFINE_string('scene_model', None, 'if not None will use scene_model otherwise it is scene_model path')\nflags.DEFINE_string('scene_cats', '/home/gezi/mine/hasky/deepiu/scene/place365/cat_names_cn.txt', '')\nflags.DEFINE_integer('scene_feature_len', 15, '')\n\n                                                  \n#---in melt.apps.image_processing.py\n#flags.DEFINE_string('image_model_name', 'InceptionV3', '')\nflags.DEFINE_string('one_image', '/home/gezi/data/flickr/flickr30k-images/1000092795.jpg', '')\n\nflags.DEFINE_string('image_feature_name', 'image_feature', 'for decoding tfrecord')\n\n\n#---------negative smapling\nflags.DEFINE_integer('num_negs', 1, '0 means no neg')\nflags.DEFINE_integer('num_eval_negs', 1, '0 means no neg')\nflags.DEFINE_boolean('neg_left', False, 'ltext or image')\nflags.DEFINE_boolean('neg_right', True, 'rtext or text')\nflags.DEFINE_boolean('neg_correct_ratio', True, '')\n\n\n#---------discriminant trainer\n\nflags.DEFINE_string('activation', 'relu', \n                    \"\"\"relu/tanh/sigmoid  seems sigmoid will not work here not convergent\n                    and relu slightly better than tanh and convrgence speed faster\"\"\")\nflags.DEFINE_boolean('bias', False, 'wether to use bias. Not using bias can speedup a bit')\n\nflags.DEFINE_boolean('elementwise_predict', False, '')\n\n\nflags.DEFINE_float('keep_prob', 1., 'or 0.9 0.8 0.5')\nflags.DEFINE_float('dropout', 0., 'or 0.9 0.8 0.5')\n\nflags.DEFINE_string('trainer_scope', None, '')\n\n\n#----- encoder \nflags.DEFINE_string('encoder_type', None, '')\nflags.DEFINE_string('image_encoder', 'ShowAndTell', '')\nflags.DEFINE_string('text_encoder', None, '')\nflags.DEFINE_string('mlp_dims', None, 'like 512 128,32')\nflags.DEFINE_float('mlp_keep_prob', 1., '')\nflags.DEFINE_string('encoder_output_method', 'max', '')\n\nflags.DEFINE_integer('top_k', 3, '')\n\n# text\nflags.DEFINE_bool('add_start_end', False, '')\n\n#----- cnn  TODO\nflags.DEFINE_integer('num_filters', 128, '')\n\n#----- other\nflags.DEFINE_float('label_smoothing', 0, '')\n\nflags.DEFINE_integer('finetune_emb_step', None, 'might be 45000 toxic 20 epoch')\n\n\nflags.DEFINE_bool('mask_pooling', True, '')\nflags.DEFINE_integer('hop', 2, '')\nflags.DEFINE_integer('label_hop', 1, '')\n\n#--------------------\nflags.DEFINE_integer('num_finetune_words', None, '')\nflags.DEFINE_integer('num_finetune_chars', None, '')\n\nflags.DEFINE_string('lm_path', None, '')\nflags.DEFINE_float('lm_lr_factor', 1., '')\nflags.DEFINE_bool('lm_model', False, '')\nflags.DEFINE_bool('dynamic_finetune', False, '')\nflags.DEFINE_string('char_encoder', 'rnn', '')\n\nflags.DEFINE_bool('use_char_emb', True, 'if use char and not use char emb then use another char emb different from emb other wise share to use one emb')\nflags.DEFINE_bool('use_simple_ngrams', False, '')\nflags.DEFINE_string('char_combiner', 'concat', '')\nflags.DEFINE_bool('char_padding', False, '')\n\nflags.DEFINE_bool('use_ngrams', False, '')\nflags.DEFINE_bool('use_fngrams', False, '')\nflags.DEFINE_integer('ngram_emb_dim', 300, '')\nflags.DEFINE_string('ngram_combiner', 'sum', 'sum or concat or dsfu')\nflags.DEFINE_string('ngram_self_combiner', 'sum', 'sum or concat')\nflags.DEFINE_bool('ngram_only', False, '')"
  },
  {
    "path": "wenzheng/utils/rnn_flags.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   rnn_flags.py\n#        \\author   chenghuige  \n#          \\date   2016-12-24 17:02:28.330058\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nflags = tf.app.flags\n#import gflags as flags\nFLAGS = flags.FLAGS\n \nflags.DEFINE_string('rnn_method', 'forward', '0 forward, 1 backward, 2 bidirectional')\nflags.DEFINE_string('rnn_output_method', 'max', '0 sumed vec, 1 last vector, 2 first vector, 3 all here first means first to original sequence')\n\nflags.DEFINE_string('cell', 'gru', 'might set to lstm_block which is faster, or lstm_block_fused, cudnn_lstm even faster')\nflags.DEFINE_string('cudnn_cell', None, 'gru or lstm')\nflags.DEFINE_string('encoder_cell',  None, 'might set to lstm_block which is faster, or lstm_block_fused, cudnn_lstm even faster')\nflags.DEFINE_string('decoder_cell', None, 'might set to lstm_block which is faster, or lstm_block_fused, cudnn_lstm even faster')\nflags.DEFINE_integer('num_layers', 1, 'or > 1')\nflags.DEFINE_integer('encoder_num_layers', None, 'or > 1')\nflags.DEFINE_float('encoder_keep_prob', None, '')\nflags.DEFINE_integer('decoder_num_layers', None, 'or > 1')\nflags.DEFINE_float('decoder_keep_prob', None, '')\n\nflags.DEFINE_boolean('feed_initial_sate', False, \"\"\"set true just like ptb_word_lm to feed \n                                                  last batch final state to be inital state \n                                                  but experiments not show better result(similar)\"\"\")\nflags.DEFINE_integer('rnn_hidden_size', 512, 'rnn cell state hidden size, follow im2txt set default as 512')\nflags.DEFINE_integer('encoder_rnn_hidden_size', None, '')\nflags.DEFINE_integer('decoder_rnn_hidden_size', None, '')\n\nflags.DEFINE_bool('recurrent_dropout', False, '')\nflags.DEFINE_bool('bw_dropout', False, '')\n\nflags.DEFINE_bool('rnn_train_init_state', True, '')\nflags.DEFINE_bool('rnn_padding', False, 'if True padding when train, eval always padding')\nflags.DEFINE_bool('rnn_no_padding', False, 'if True always no padding, train or eval')\nflags.DEFINE_bool('pooling_no_padding', False, 'if True always not consider padding when pooling')\nflags.DEFINE_bool('encoder_residual_connect', False, '')\n\n# for pytorch..\nflags.DEFINE_bool('torch_cudnn_rnn', False, 'pytorch using CudnnRnn or StackRnn')\n\nflags.DEFINE_bool('concat_layers', True, 'by default concat layers as hkust rnet did')\n"
  },
  {
    "path": "wenzheng/utils/text2ids.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf8 -*-\n# ==============================================================================\n#          \\file   text2ids.py\n#        \\author   chenghuige  \n#          \\date   2016-08-29 15:26:15.418566\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport tensorflow as tf\nimport numpy as np\n\nimport sys\nimport gezi\n\nfrom wenzheng.utils import vocabulary \n#TODO-- remove conf.py using gfalgs or yaxml\n##well ids2text use it's own vocab..\n#from wenzheng.utils.ids2text import ids2words, ids2text, idslist2texts, translate, translates\n\ntry:\n  import conf\n  from conf import TEXT_MAX_WORDS, ENCODE_UNK\n  try:\n    from conf import MULTI_GRID \n  except Exception:\n    MULTI_GRID = True\nexcept Exception:\n  print('Warning: no conf.py in current path use util conf', file=sys.stderr)\n  from wenzheng.utils.conf import TEXT_MAX_WORDS, ENCODE_UNK\n  try:\n    from wenzheng.utils.conf import MULTI_GRID \n  except Exception:\n    MULTI_GRID = True\n\nvocab = None \nSegmentor = None \n\nNUM_MARK = '<NUM>'\nEN_MRAK = '<EN>'\n\ndef init(vocab_path=None, append=None):\n  global vocab, Segmentor\n  if vocab is None:\n    vocabulary.init(vocab_path, append=append)\n    print('ENCODE_UNK', ENCODE_UNK, file=sys.stderr)\n    vocab = vocabulary.get_vocab()\n    Segmentor = gezi.Segmentor()\n\ndef get_id(word, unk_vocab_size=None):\n  if unk_vocab_size and not vocab.has(word):\n    return gezi.hash(word) % unk_vocab_size + vocab.size()\n  return vocab.id(word)\n  \n#@TODO gen-records should use text2ids\n#TODO ENCODE_UNK might not be in conf.py but to pass as param encode_unk=False\ndef words2ids(words, feed_single=True, allow_all_zero=False, \n              pad=True, append_start=False, append_end=False,\n              max_words=None, norm_digit=True, norm_all_digit=False,\n              multi_grid=None, encode_unk=None, feed_single_en=False,\n              digit_to_chars=False,\n              unk_vocab_size=None):\n  \"\"\"\n  default params is suitable for bow\n  for sequence method may need seg_method prhase and feed_single=True,\n  @TODO feed_single is for simplicity, the best strategy may be try to use one level lower words\n  like new-word -> phrase -> basic -> single cn\n\n  #@TODO feed_single move to Segmentor.py to add support for seg with vocab \n  norm_all_digit is not used mostly, since you can control this behavior when gen vocab \n  \"\"\"\n  multi_grid = multi_grid or MULTI_GRID\n  encode_unk = encode_unk or ENCODE_UNK\n    \n  new_words = []\n  if not feed_single:\n    word_ids = [get_id(word, unk_vocab_size) for word in words if vocab.has(word) or encode_unk]\n  else:\n    word_ids = []\n    for word in words:\n      if digit_to_chars and any(char.isdigit() for char in word):\n        for w in word:\n          if not vocab.has(w) and unk_vocab_size:\n              word_ids.append(gezi.hash(w) % unk_vocab_size + vocab.size())\n              new_words.append(w)\n          else:\n            if vocab.has(w) or encode_unk:\n              word_ids.append(vocab.id(w))\n              new_words.append(w)\n        continue\n      elif norm_all_digit and word.isdigit():\n        word_ids.append(vocab.id(NUM_MARK))\n        new_words.append(word)\n        continue\n      if vocab.has(word):\n        word_ids.append(vocab.id(word))\n        new_words.append(word)\n      elif not norm_all_digit and norm_digit and word.isdigit():\n        word_ids.append(vocab.id(NUM_MARK))\n        new_words.append(word)\n      else:\n        #TODO might use trie to speed up longest match segment\n        if (not multi_grid) or feed_single_en:\n          if not feed_single_en:\n            chars = gezi.get_single_cns(word)\n          else:\n            chars = word\n          if chars:\n            for w in chars:\n              if not vocab.has(w) and unk_vocab_size:\n                word_ids.append(gezi.hash(w) % unk_vocab_size + vocab.size())\n                new_words.append(w)\n              else:\n                if vocab.has(w) or encode_unk:\n                  word_ids.append(vocab.id(w))\n                  new_words.append(w)\n          else:\n            if unk_vocab_size:\n              word_ids.append(gezi.hash(word) % unk_vocab_size + vocab.size())\n              new_words.append(word)\n            else:\n              if encode_unk:\n                word_ids.append(vocab.unk_id())\n                new_words.append(word)\n        else:\n          #test it!  print text2ids.ids2text(text2ids.text2ids('匍匐前进'))\n          word_ids += gezi.loggest_match_seg(word, vocab, encode_unk=encode_unk, unk_vocab_size=unk_vocab_size, vocab_size=vocab.size())\n          # NOTICE new_words lost here!\n\n  if append_start:\n    word_ids = [vocab.start_id()] + word_ids\n\n  if append_end:\n    word_ids = word_ids + [vocab.end_id()]\n\n  if not allow_all_zero and  not word_ids:\n    word_ids.append(vocab.end_id())\n\n  if pad:\n    word_ids = gezi.pad(word_ids, max_words or TEXT_MAX_WORDS, 0)  \n\n  return word_ids, new_words\n\n# TODO might change to set pad default as False\ndef text2ids(text, seg_method='basic', feed_single=True, allow_all_zero=False, \n            pad=True, append_start=False, append_end=False, to_lower=True,\n            max_words=None, norm_digit=True, norm_all_digit=False,\n            multi_grid=None, remove_space=True, encode_unk=None, feed_single_en=False,\n            digit_to_chars=False, unk_vocab_size=None, return_words=False):\n  \"\"\"\n  default params is suitable for bow\n  for sequence method may need seg_method prhase and feed_single=True,\n  @TODO feed_single is for simplicity, the best strategy may be try to use one level lower words\n  like new-word -> phrase -> basic -> single cn\n\n  #@TODO feed_single move to Segmentor.py to add support for seg with vocab \n  \"\"\"\n  if to_lower:\n    text = text.lower()\n  words = Segmentor.Segment(text, seg_method)\n  if remove_space:\n    #words = [x for x in words if x.strip()]\n    # change to remove duplicate space\n    words = [x for i, x in enumerate(words) if not (i < len(words) - 1 and not(x.strip()) and not(words[i + 1].strip()))]\n\n  ids, new_words = words2ids(words, \n                            feed_single=feed_single, \n                            allow_all_zero=allow_all_zero, \n                            pad=pad, \n                            append_start=append_start, \n                            append_end=append_end, \n                            max_words=max_words, \n                            norm_digit=norm_digit,\n                            norm_all_digit=norm_all_digit,\n                            multi_grid=multi_grid,\n                            encode_unk=encode_unk,\n                            feed_single_en=feed_single_en,\n                            digit_to_chars=digit_to_chars,\n                            unk_vocab_size=unk_vocab_size)\n  if not return_words:\n    return ids \n  else:\n    return ids, new_words\n\ndef ids2words(text_ids, print_end=True):\n  #print('@@@@@@@@@@text_ids', text_ids)\n  #NOTICE int64 will be ok\n#  Boost.Python.ArgumentError: Python argument types in\n#    Identifer.key(Vocabulary, numpy.int32)\n#did not match C++ signature:\n#    key(gezi::Identifer {lvalue}, int id, std::string defualtKey)\n#    key(gezi::Identifer {lvalue}, int id)\n  #words = [vocab.key(int(id)) for id in text_ids if id > 0 and id < vocab.size()]\n  words = []\n  for id in text_ids:\n    if id > 0 and id < vocab.size():\n      #@NOTICE! must has end id, @TODO deal with UNK word\n      if id != vocab.end_id():\n        word = vocab.key(int(id))\n        words.append(word)\n      else:\n        if print_end:\n          words.append('</S>')\n        break\n    else:\n      break\n  return words\n\ndef text2segtext(text, seg_method='basic', feed_single=True, allow_all_zero=False, pad=True, sep=' '):\n  return ids2text(text2ids(text, seg_method=seg_method, feed_single=feed_single, allow_all_zero=allow_all_zero))\n\ndef texts2segtexts(texts, seg_method='basic', feed_single=True, allow_all_zero=False, pad=True, sep=' '):\n  return idslist2texts(texts2ids(texts,seg_method=seg_method, feed_single=feed_single, allow_all_zero=allow_all_zero))\n\ndef segment(text, seg_method='basic'):\n  return Segmentor.Segment(text, seg_method=seg_method)\n\ndef texts2ids(texts, seg_method='basic', feed_single=True, allow_all_zero=False, pad=True):\n  return np.array([text2ids(text, seg_method, feed_single, allow_all_zero, pad) for text in texts])\n\ndef start_id():\n  return vocab.end_id()\n\ndef end_id():\n  return vocab.end_id()\n\ndef unk_id():\n  return vocab.unk_id()\n\n\n#TODO duplicate with ids2text\ndef ids2words(text_ids, print_end=True):\n  #print('@@@@@@@@@@text_ids', text_ids)\n  #NOTICE int64 will be ok\n#  Boost.Python.ArgumentError: Python argument types in\n#    Identifer.key(Vocabulary, numpy.int32)\n#did not match C++ signature:\n#    key(gezi::Identifer {lvalue}, int id, std::string defualtKey)\n#    key(gezi::Identifer {lvalue}, int id)\n  #words = [vocab.key(int(id)) for id in text_ids if id > 0 and id < vocab.size()]\n  words = []\n  for id in text_ids:\n    if id > 0 and id < vocab.size():\n      #@NOTICE! must has end id, @TODO deal with UNK word\n      if id != vocab.end_id():\n        word = vocab.key(int(id))\n        words.append(word)\n      else:\n        if print_end:\n          words.append('</S>')\n        break\n    else:\n      #break\n      words.append('<UNK:{}>'.format(id))\n  return words\n\ndef ids2text(text_ids, sep=' ', print_end=True):\n  return sep.join(ids2words(text_ids, print_end=print_end))\n\ndef idslist2texts(text_ids_list, sep=' ', print_end=True):\n  return [ids2text(text_ids, sep=sep, print_end=print_end) for text_ids in text_ids_list]\n  #return [sep.join([vocab.key(int(id)) for id in text_ids if id > 0 and id < vocab.size()]) for text_ids in text_ids_list]\n\ndef translate(text_ids):\n  return ids2text(text_ids, sep='', print_end=False)\n\ndef translates(text_ids_list):\n  return [translate(text_ids) for text_ids in text_ids_list]\n\ndef start_id():\n  return vocab.end_id()\n\ndef end_id():\n  return vocab.end_id()\n\ndef unk_id():\n  return vocab.unk_id()\n"
  },
  {
    "path": "wenzheng/utils/vocabulary.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# ==============================================================================\n#          \\file   vocab.py\n#        \\author   chenghuige  \n#          \\date   2016-08-19 20:19:09.138521\n#   \\Description  \n# ==============================================================================\n\n  \nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n#@TODO----remove this ? only need vocab_size\n#@FIXME work around to be safe in virtual env for hadoop, if import not at first will segmentation fault after finishing double free core\n# import gezi.nowarning\n# from libword_counter import Vocabulary\n\nfrom gezi import Vocabulary\n\nimport tensorflow as tf \nflags = tf.app.flags\nFLAGS = flags.FLAGS\n#NOTICE move this to useage app code\nflags.DEFINE_string('vocab', None, 'vocabulary txt file')\nflags.DEFINE_integer('vocab_buckets', None, '')\nflags.DEFINE_integer('num_reserved_ids', 1, 'reserve one for pad, so to make unk as 1, diff from pad')\nflags.DEFINE_integer('vocab_size', 0, '')\nflags.DEFINE_bool('vocab_append', False, '')\nflags.DEFINE_integer('vocab_max_words', None, '')\nflags.DEFINE_integer('vocab_min_count', None, '')\nflags.DEFINE_string('vocab_unk', '<UNK>', '[UNK] for bert')\nflags.DEFINE_string('vocab_start', '<S>', '[CLS] for bert')\nflags.DEFINE_string('vocab_end', '</S>', '[SEP] for bert')\n\nimport gezi\nlogging = gezi.logging\n\nvocab = None \nvocab_size = None\nvocab_path = None\n\n#@TODO one big problem is <unk> now just filterd should use it and let 0 be padding\n#Also gen vocab must add start <s> and end </s>, but for bow you can ignore them when encoding text\n#you have <unk> in rnn method not ignore and may be in bow you ignore it but it should in vocabulary\n#and have index > 1, num_reserved_ids > 0 pad, pad1, pad2 ..., at least to have 0 pad occupied\ndef get_vocab():\n  init()\n  return vocab\n\ndef get_vocab_size():\n  init()\n  return vocab_size\n\ndef end_id():\n  init()\n  return vocab.end_id() \n\ndef start_id():\n  init()\n  return vocab.start_id()\n\ndef go_id():\n  init()\n  return vocab.id('<GO>') \n  \ndef init(vocab_path_=None, append=None):\n  global vocab, vocab_size, vocab_path\n  if vocab is None:\n    if not FLAGS.vocab_buckets:\n      vocab_path = vocab_path_ or FLAGS.vocab or gezi.dirname(FLAGS.model_dir) + '/vocab.txt'\n      FLAGS.vocab = vocab_path\n      logging.info('vocab:{}'.format(vocab_path))\n      logging.info('NUM_RESERVED_IDS:{}'.format(FLAGS.num_reserved_ids))\n      if append is None:\n        append = FLAGS.vocab_append\n        if gezi.env_has('VOCAB_APPEND'):\n          append = True\n      vocab = Vocabulary(vocab_path, FLAGS.num_reserved_ids, append=append,\n                         max_words=FLAGS.vocab_max_words, min_count=FLAGS.vocab_min_count)\n    else:\n      vocab = Vocabulary(buckets=FLAGS.vocab_buckets)\n    vocab_size = vocab.size() if not FLAGS.vocab_size else min(vocab.size(), FLAGS.vocab_size)\n    logging.info('vocab_size:{}'.format(vocab_size))\n    assert vocab_size > FLAGS.num_reserved_ids, 'empty vocab, wrong vocab path? %s'%FLAGS.vocab\n    logging.info('vocab_start:{} id:{}'.format(vocab.key(vocab.start_id()), vocab.start_id()))\n    logging.info('vocab_end:{} id:{}'.format(vocab.key(vocab.end_id()), vocab.end_id()))\n    logging.info('vocab_unk:{} id:{}'.format(vocab.key(vocab.unk_id()), vocab.unk_id()))\n\n"
  }
]